From xen-devel-bounces@lists.xenproject.org Mon Jul 01 01:56:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 01:56:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751220.1159096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sO6H2-0004Zh-2k; Mon, 01 Jul 2024 01:56:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751220.1159096; Mon, 01 Jul 2024 01: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 1sO6H1-0004Za-WE; Mon, 01 Jul 2024 01:56:08 +0000
Received: by outflank-mailman (input) for mailman id 751220;
 Mon, 01 Jul 2024 01:56:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sO6H0-0004ZQ-2W; Mon, 01 Jul 2024 01:56:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sO6H0-0004uN-0t; Mon, 01 Jul 2024 01:56:06 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sO6Gz-0001Wp-F0; Mon, 01 Jul 2024 01:56:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sO6Gz-0005tg-ES; Mon, 01 Jul 2024 01:56: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=L83rrwp9UnwsoIgk1zaO1tDsvnACnFaaH2tCcBP7WzU=; b=0a5yYLO3SW6D3cSmfMR9J68wb+
	XA+1oDIddtZLHuq1St3muN0F0XBvY1+VG3XruDSF3ySCxt66YXd7ct0TMFA562025UzDfnxvLSZ+2
	q4umvuQ8LQvThaPId24W2ksWFJvunKQVnCh+nBKndDYUpoZYzOqHGHaeKENzKasUgc+0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186612-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186612: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=8c09d862bfb034e00b6b3bc37fe37243c866dd3a
X-Osstest-Versions-That:
    ovmf=3b2025969e6e8a2f6542996182cd4132868641c6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Jul 2024 01:56:05 +0000

flight 186612 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186612/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 8c09d862bfb034e00b6b3bc37fe37243c866dd3a
baseline version:
 ovmf                 3b2025969e6e8a2f6542996182cd4132868641c6

Last test of basis   186553  2024-06-28 15:11:18 Z    2 days
Testing same since   186612  2024-07-01 00:11:24 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Joey Vagedes <joey.vagedes@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   3b2025969e..8c09d862bf  8c09d862bfb034e00b6b3bc37fe37243c866dd3a -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 04:36:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 04:36:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751231.1159105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sO8m5-00045W-MI; Mon, 01 Jul 2024 04:36:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751231.1159105; Mon, 01 Jul 2024 04:36: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 1sO8m5-00045P-Jh; Mon, 01 Jul 2024 04:36:21 +0000
Received: by outflank-mailman (input) for mailman id 751231;
 Mon, 01 Jul 2024 04:36:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ufHl=OB=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1sO8m4-00045J-DT
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 04:36:20 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 754b86a0-3763-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 06:36:18 +0200 (CEST)
Received: by verein.lst.de (Postfix, from userid 2407)
 id 86AF568BEB; Mon,  1 Jul 2024 06:36: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: 754b86a0-3763-11ef-90a4-e314d9c70b13
Date: Mon, 1 Jul 2024 06:36:15 +0200
From: "hch@lst.de" <hch@lst.de>
To: Michael Kelley <mhklinux@outlook.com>
Cc: "hch@lst.de" <hch@lst.de>,
	Petr =?utf-8?B?VGVzYcWZw61r?= <petr@tesarici.cz>,
	"robin.murphy@arm.com" <robin.murphy@arm.com>,
	"joro@8bytes.org" <joro@8bytes.org>,
	"will@kernel.org" <will@kernel.org>,
	"jgross@suse.com" <jgross@suse.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>,
	"oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
	"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC 1/1] swiotlb: Reduce calls to swiotlb_find_pool()
Message-ID: <20240701043615.GB26372@lst.de>
References: <20240627060251.GA15590@lst.de> <20240627085216.556744c1@meshulam.tesarici.cz> <SN6PR02MB4157E61B49C8435E38AC968DD4D72@SN6PR02MB4157.namprd02.prod.outlook.com> <20240627152513.GA23497@lst.de> <SN6PR02MB4157D9B1A64FF78461D6A7EDD4D72@SN6PR02MB4157.namprd02.prod.outlook.com> <20240628060129.GA26206@lst.de> <20240628094708.3a454619@meshulam.tesarici.cz> <SN6PR02MB415781789CBD6597142BEC68D4D12@SN6PR02MB4157.namprd02.prod.outlook.com> <20240630055542.GA5379@lst.de> <SN6PR02MB415735CA2F5487AE3FD74FFED4D22@SN6PR02MB4157.namprd02.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <SN6PR02MB415735CA2F5487AE3FD74FFED4D22@SN6PR02MB4157.namprd02.prod.outlook.com>
User-Agent: Mutt/1.5.17 (2007-11-01)

On Sun, Jun 30, 2024 at 02:02:52PM +0000, Michael Kelley wrote:
> 1) Rename is_swiotlb_buffer() to swiotlb_find_pool(), since it
> now returns a pool.  A NULL return value indicates that the
> paddr is not an swiotlb buffer.
> 
> 2) Similarly, rename is_xen_swiotlb_buffer() to
> xen_swiotlb_find_pool()
> 
> 3) The existing swiotlb_find_pool() has the same function signature,
> but it is used only where the paddr is known to be an swiotlb buffer
> and hence always succeeds. Rename it to __swiotlb_find_pool() as
> the "internal" version of swiotlb_find_pool().

Sounds good.

> 4) Do you still want is_swiotlb_buffer() as a trivial wrapper around
> the new swiotlb_find_pool(), for use solely in dma_direct_need_sync()
> where only a Boolean is needed and not the pool?

If there is really just a single caller left we can skip the wrapper,
otherwise it might be handy.



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 05:48:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 05:48:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751237.1159116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sO9tB-00043D-Hx; Mon, 01 Jul 2024 05:47:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751237.1159116; Mon, 01 Jul 2024 05: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 1sO9tB-000436-FG; Mon, 01 Jul 2024 05:47:45 +0000
Received: by outflank-mailman (input) for mailman id 751237;
 Mon, 01 Jul 2024 05:47: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=wz0W=OB=tesarici.cz=petr@srs-se1.protection.inumbo.net>)
 id 1sO9t8-00041V-1z
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 05:47:43 +0000
Received: from bee.tesarici.cz (bee.tesarici.cz [37.205.15.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d3c0b82-376d-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 07:47:40 +0200 (CEST)
Received: from meshulam.tesarici.cz
 (dynamic-2a00-1028-83b8-1e7a-4427-cc85-6706-c595.ipv6.o2.cz
 [IPv6:2a00:1028:83b8:1e7a:4427:cc85:6706:c595])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 by bee.tesarici.cz (Postfix) with ESMTPSA id 8D62F1D0C85;
 Mon,  1 Jul 2024 07:47: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: 6d3c0b82-376d-11ef-90a4-e314d9c70b13
Authentication-Results: mail.tesarici.cz; dmarc=fail (p=quarantine dis=none) header.from=tesarici.cz
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tesarici.cz; s=mail;
	t=1719812858; bh=e8FYNZRZuI5kI/HMQrEY/5s1bjxIxOJVytBhx8+lpm8=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=w7telH3Y2yZsreZaX7KSVk1w+95a7tKP427OnWftl4f6LLVJ9S2TqidF9RqdpPlbH
	 WVrhcczr8OMR+CX8QIJSYRgg8jTathu3ayX3TH6uigHYGfHOJLpMchcYYoPImGbfUC
	 Bi2pYXmhxJ5pQ1NyAAioYXA4/fA2DKMut3/ukI3VLX/pPIhN/2seJnL5mwrcy7HFa0
	 qa9xDy4Z3oEdz/Zl6tOtf16vZaLypjrBmxXNxr1b+rS20/NvHbvhqYKYHIO31Routj
	 xXg0ar05+IS+/5+xYd3DR1RCy9+1cxFDwBlXJ7Dc/3E+ypRkuKxSDpp+9TLnmx7V4e
	 9H6Una8P8iusg==
Date: Mon, 1 Jul 2024 07:47:37 +0200
From: Petr =?UTF-8?B?VGVzYcWZw61r?= <petr@tesarici.cz>
To: "hch@lst.de" <hch@lst.de>
Cc: Michael Kelley <mhklinux@outlook.com>, "robin.murphy@arm.com"
 <robin.murphy@arm.com>, "joro@8bytes.org" <joro@8bytes.org>,
 "will@kernel.org" <will@kernel.org>, "jgross@suse.com" <jgross@suse.com>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 "oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
 "m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
 "iommu@lists.linux.dev" <iommu@lists.linux.dev>,
 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC 1/1] swiotlb: Reduce calls to swiotlb_find_pool()
Message-ID: <20240701072140.182aa267@meshulam.tesarici.cz>
In-Reply-To: <20240701043615.GB26372@lst.de>
References: <20240627060251.GA15590@lst.de>
	<20240627085216.556744c1@meshulam.tesarici.cz>
	<SN6PR02MB4157E61B49C8435E38AC968DD4D72@SN6PR02MB4157.namprd02.prod.outlook.com>
	<20240627152513.GA23497@lst.de>
	<SN6PR02MB4157D9B1A64FF78461D6A7EDD4D72@SN6PR02MB4157.namprd02.prod.outlook.com>
	<20240628060129.GA26206@lst.de>
	<20240628094708.3a454619@meshulam.tesarici.cz>
	<SN6PR02MB415781789CBD6597142BEC68D4D12@SN6PR02MB4157.namprd02.prod.outlook.com>
	<20240630055542.GA5379@lst.de>
	<SN6PR02MB415735CA2F5487AE3FD74FFED4D22@SN6PR02MB4157.namprd02.prod.outlook.com>
	<20240701043615.GB26372@lst.de>
X-Mailer: Claws Mail 4.3.0 (GTK 3.24.42; x86_64-suse-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Mon, 1 Jul 2024 06:36:15 +0200
"hch@lst.de" <hch@lst.de> wrote:

> On Sun, Jun 30, 2024 at 02:02:52PM +0000, Michael Kelley wrote:
> > 1) Rename is_swiotlb_buffer() to swiotlb_find_pool(), since it
> > now returns a pool.  A NULL return value indicates that the
> > paddr is not an swiotlb buffer.
> > 
> > 2) Similarly, rename is_xen_swiotlb_buffer() to
> > xen_swiotlb_find_pool()
> > 
> > 3) The existing swiotlb_find_pool() has the same function signature,
> > but it is used only where the paddr is known to be an swiotlb buffer
> > and hence always succeeds. Rename it to __swiotlb_find_pool() as
> > the "internal" version of swiotlb_find_pool().  
> 
> Sounds good.

Agreed. Most importantly, the "nice" name swiotlb_find_pool() is used
for external users. The difference between swiotlb_find_pool() and
__swiotlb_find_pool() is that the former can be used with any device,
and the latter (internal) only with devices that make some use of
swiotlb. The main reason to keep them separate is that the internal
function should not be inlined if CONFIG_SWIOTLB_DYNAMIC=y.

I hope somebody finds my explanation useful when they touch the code
again in a few years from now. ;-)

> > 4) Do you still want is_swiotlb_buffer() as a trivial wrapper around
> > the new swiotlb_find_pool(), for use solely in dma_direct_need_sync()
> > where only a Boolean is needed and not the pool?  
> 
> If there is really just a single caller left we can skip the wrapper,
> otherwise it might be handy.

AFAICS dma_direct_need_sync() is the only such place.

Petr T


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 05:53:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 05:53:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751242.1159125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sO9yg-0005Vz-4X; Mon, 01 Jul 2024 05:53:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751242.1159125; Mon, 01 Jul 2024 05: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 1sO9yg-0005Vs-1s; Mon, 01 Jul 2024 05:53:26 +0000
Received: by outflank-mailman (input) for mailman id 751242;
 Mon, 01 Jul 2024 05:53:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sO9ye-0005Vi-Pj; Mon, 01 Jul 2024 05:53:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sO9ye-0006rq-KQ; Mon, 01 Jul 2024 05:53:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sO9ye-0002KT-8A; Mon, 01 Jul 2024 05:53:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sO9ye-00073X-7k; Mon, 01 Jul 2024 05:53: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=tecJkUDziBoqIjrYn0wBbX9gYbgM/2OAvhilwlLEamw=; b=IkDngc1N7v9H7lwagfRTt/HSZV
	A37QGGEhAcEdc+A8tD3RYrL5MJYrK5hFDPhv7X/CGXCQmNGUZOZ8I361tmCvHgEQViQUKr/AMRV/i
	7G6Tfmh3hG5+VkGmXUrIFdaUbs9JmW+hkbzZRIhjqh1kKc3xc3qvMVUGcujPxsJsDnfE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186608-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186608: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-arndale:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-raw:host-ping-check-xen:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-qcow2:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=e0b668b070348c36e0ab83af12987b6390f9ec26
X-Osstest-Versions-That:
    linux=de0a9f4486337d0eabacc23bd67ff73146eacdc0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Jul 2024 05:53:24 +0000

flight 186608 linux-linus real [real]
flight 186614 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186608/
http://logs.test-lab.xenproject.org/osstest/logs/186614/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-arndale   8 xen-boot            fail pass in 186614-retest
 test-armhf-armhf-xl-raw      10 host-ping-check-xen fail pass in 186614-retest
 test-armhf-armhf-xl-qcow2     8 xen-boot            fail pass in 186614-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt   16 saverestore-support-check fail blocked in 186562
 test-armhf-armhf-xl-arndale 15 migrate-support-check fail in 186614 never pass
 test-armhf-armhf-xl-arndale 16 saverestore-support-check fail in 186614 never pass
 test-armhf-armhf-xl-raw     14 migrate-support-check fail in 186614 never pass
 test-armhf-armhf-xl-raw 15 saverestore-support-check fail in 186614 never pass
 test-armhf-armhf-xl-qcow2   14 migrate-support-check fail in 186614 never pass
 test-armhf-armhf-xl-qcow2 15 saverestore-support-check fail in 186614 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186562
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186562
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186562
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186562
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186562
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass

version targeted for testing:
 linux                e0b668b070348c36e0ab83af12987b6390f9ec26
baseline version:
 linux                de0a9f4486337d0eabacc23bd67ff73146eacdc0

Last test of basis   186562  2024-06-29 00:44:01 Z    2 days
Failing since        186578  2024-06-29 16:40:32 Z    1 days    5 attempts
Testing same since   186608  2024-06-30 21:10:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adrian Hunter <adrian.hunter@intel.com>
  Agathe Boutmy <agathe@boutmy.com>
  Alexander Sverdlin <alexander.sverdlin@siemens.com>
  Andi Shyti <andi.shyti@kernel.org>
  Anna-Maria Behnsen <anna-maria@linutronix.de>
  Armin Wolf <W_Armin@gmx.de>
  Arnd Bergmann <arnd@arndb.de>
  Bernhard Rosenkränzer <bero@baylibre.com>
  Chandan Babu R <chandanbabu@kernel.org>
  Chen Ni <nichen@iscas.ac.cn>
  Christoph Hellwig <hch@lst.de>
  Chuck Lever <chuck.lever@oracle.com>
  Crescent Hsieh <crescentcy.hsieh@moxa.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Darrick J. Wong <djwong@kernel.org>
  David Lechner <dlechner@baylibre.com>
  Dimitri Fedrau <dima.fedrau@gmail.com>
  Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
  Doug Brown <doug@schmorgal.com>
  Douglas Anderson <dianders@chromium.org>
  Dragan Simic <dsimic@manjaro.org>
  Fabrice Gasnier <fabrice.gasnier@foss.st.com>
  Fernando Yang <hagisf@usp.br>
  Ferry Toth <fntoth@gmail.com>
  Ferry Toth <ftoth@exalondelft.nl>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Guenter Roeck <linux@roeck-us.net>
  Hans de Goede <hdegoede@redhat.com>
  Hans Hu <HansHu-oc@zhaoxin.com>
  Huacai Chen <chenhuacai@loongson.cn>
  Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
  Javier Carrasco <javier.carrasco.cruz@gmail.com>
  Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>
  Jeff Johnson <quic_jjohnson@quicinc.com>
  Jeremy Kerr <jk@codeconstruct.com.au>
  Joel Granados <j.granados@samsung.com>
  Jonas Gorski <jonas.gorski@gmail.com>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Jos Wang <joswang@lenovo.com>
  Kamal Dasu <kamal.dasu@broadcom.com>
  Ke Sun <sunke@kylinos.cn>
  Kieran Bingham <kieran.bingham@ideasonboard.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linus Walleij <linus.walleij@linaro.org>
  Mark-PK Tsai <mark-pk.tsai@mediatek.com>
  Masahiro Yamada <masahiroy@kernel.org>
  Meng Li <Meng.Li@windriver.com>
  Mostafa Saleh <smostafa@google.com>
  Nicolas Schier <n.schier@avm.de>
  Nikita Zhandarovich <n.zhandarovich@fintech.ru>
  Oliver Neukum <oneukum@suse.com>
  Phil Chang <phil.chang@mediatek.com>
  Rolf Eike Beer <eb@emlix.com>
  Sean Anderson <sean.anderson@linux.dev>
  Stefan Eichenberger <stefan.eichenberger@toradex.com>
  Thayne Harbaugh <thayne@mastodonlabs.com>
  Thinh Nguyen <Thinh.Nguyen@synopsys.com>
  Thomas Gleixner <tglx@linutronix.de>
  Tianli Xiong <xiongtianli@loongson.cn>
  Trond Myklebust <trond.myklebust@hammerspace.com>
  Udit Kumar <u-kumar1@ti.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Vasileios Amoiridis <vassilisamir@gmail.com>
  William Breathitt Gray <wbg@kernel.org>
  Wim Van Sebroeck <wim@linux-watchdog.org>
  Wolfram Sang <wsa+renesas@sang-engineering.com>
  Yuntao Wang <ytcoode@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   de0a9f448633..e0b668b07034  e0b668b070348c36e0ab83af12987b6390f9ec26 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 07:19:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 07:19:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751256.1159135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOBJG-0006jQ-Ae; Mon, 01 Jul 2024 07:18:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751256.1159135; Mon, 01 Jul 2024 07: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 1sOBJG-0006jJ-82; Mon, 01 Jul 2024 07:18:46 +0000
Received: by outflank-mailman (input) for mailman id 751256;
 Mon, 01 Jul 2024 07: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOBJE-0006jB-Kf
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 07:18:44 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2554c7cf-377a-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 09:18:42 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2ebe40673e8so30266421fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 00:18: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
 d9443c01a7336-1fac10c8b3fsm57226085ad.5.2024.07.01.00.18.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 00:18: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: 2554c7cf-377a-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719818322; x=1720423122; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tvCiRdTRGyJYGi39yP1JH4SMFwTJbeAB3/n34q2JhjM=;
        b=dt891CQqJvW51BokxPwNCr5Bf6U4Ux9P3pJoL5O785JF7bFxhOCVfr8OOV80IVC6f5
         Z5I5lpXoy+QEr53TXVkygtsCkQctwD41Gi+Z4wlZYlVWDY8s8In38En9PKHOsm5lNuGA
         TQodhke+GkaDXppk/NuzR0LouWwFy54dOxtriZoLsGFD6tmlw8Mb15FmBtcscGry9C6x
         Ip5/wNr9q6naqNxs83ORpALx5zmVOkhYpfcvQUHfznGsJtAilmVpVpmjGmgmse2/FtW7
         +fdp0eHZvY46Bf0j4eB5SIJvhoeM2iDn0TosYEUaQnDiRI/2EiZztDACoWIwd6NxrSWm
         vcYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719818322; x=1720423122;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tvCiRdTRGyJYGi39yP1JH4SMFwTJbeAB3/n34q2JhjM=;
        b=B2EVjNnF7/0Y0FaMANQnGXY+53HyY0XgEoGIVfRYY59aYFQh3035ONslxPg15ooaqS
         Q+K5eM4E9t34wekaf2q6YHIWDYZaUmbSIfgovX6LUVv2eKaRe64K764sMdkkJjH2Q6yC
         9NDNIg28CR0AOsryUxbnGrgWx/HCkMyl3eTCPGTWMd1oOv7qKDjmPJov/hlb2p58/DBY
         nBPFx0+VeOIX7R4McbOHoNgK7N9H9BY10IPYQm12ZUozasuyw/q/S8fKIfRxauNjA+Rq
         wfsKoavx+QqVnQSQzx2ad8joE7o/Mq6+2N6KOY32whLlFrw7EHtY/izm0w2oWhBEZSmF
         pppQ==
X-Forwarded-Encrypted: i=1; AJvYcCU+we6lKVRgtllInRv8sYZGljX/DDRiJ9MltLQywQXaYlL3pdKv2zA9+HwE7kVIsacSYKeDmdBzEk2BeG1315AyGBD+ArjrhB13zrDLlec=
X-Gm-Message-State: AOJu0Yx+FEXc9G4EauA8PYymOq15UBmy3bZHSoSVPcIhxrsuyeVuiCPv
	aXyg6oNzEChft6ZV/6MPTkBydzEdZJtIiWv8OQmoRL00UyibMMnL+efcU+riIg==
X-Google-Smtp-Source: AGHT+IElv9umRtY26VEEYTXyfVZSc1RpMh0Ve5/TuLQzbOAoqDEw3Pam4KoqQ8KZCpo08ct7knj2sQ==
X-Received: by 2002:a2e:9dcd:0:b0:2ec:5102:4a6b with SMTP id 38308e7fff4ca-2ee5e6ca03bmr26333881fa.53.1719818321994;
        Mon, 01 Jul 2024 00:18:41 -0700 (PDT)
Message-ID: <d145f307-2c66-4a2b-8a1f-d969ed4f2e6d@suse.com>
Date: Mon, 1 Jul 2024 09:18:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v11 1/8] xen/vpci: Clear all vpci status of device
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <Ray.Huang@amd.com>, xen-devel@lists.xenproject.org
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-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: <20240630123344.20623-2-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.06.2024 14:33, Jiqian Chen wrote:
> When a device has been reset on dom0 side, the vpci on Xen
> side won't get notification, so the cached state in vpci is
> all out of date compare with the real device state.
> To solve that problem, add a new hypercall to clear all vpci
> device state. When the state of device is reset on dom0 side,
> dom0 can call this hypercall to notify vpci.

While the description properly talks about all of this being about device
reset, the title suggests otherwise (leaving open what the context is, thus
- to me at least - suggesting it's during vPCI init for a particular
device).

> @@ -67,6 +68,63 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          break;
>      }
>  
> +    case PHYSDEVOP_pci_device_state_reset:
> +    {
> +        struct pci_device_state_reset dev_reset;
> +        struct pci_dev *pdev;
> +        pci_sbdf_t sbdf;
> +
> +        ret = -EOPNOTSUPP;
> +        if ( !is_pci_passthrough_enabled() )
> +            break;
> +
> +        ret = -EFAULT;
> +        if ( copy_from_guest(&dev_reset, arg, 1) != 0 )
> +            break;
> +
> +        sbdf = PCI_SBDF(dev_reset.dev.seg,
> +                        dev_reset.dev.bus,
> +                        dev_reset.dev.devfn);
> +
> +        ret = xsm_resource_setup_pci(XSM_PRIV, sbdf.sbdf);
> +        if ( ret )
> +            break;
> +
> +        pcidevs_lock();
> +        pdev = pci_get_pdev(NULL, sbdf);
> +        if ( !pdev )
> +        {
> +            pcidevs_unlock();
> +            ret = -ENODEV;
> +            break;
> +        }
> +
> +        write_lock(&pdev->domain->pci_lock);
> +        pcidevs_unlock();
> +        /* Implement FLR, other reset types may be implemented in future */

The comment isn't in sync with the code anymore.

> +        switch ( dev_reset.reset_type )
> +        {
> +        case PCI_DEVICE_STATE_RESET_COLD:
> +        case PCI_DEVICE_STATE_RESET_WARM:
> +        case PCI_DEVICE_STATE_RESET_HOT:
> +        case PCI_DEVICE_STATE_RESET_FLR:
> +        {

This brace isn't needed while at the same time it is confusing.

> +            ret = vpci_reset_device_state(pdev, dev_reset.reset_type);
> +            if ( ret )
> +                dprintk(XENLOG_ERR,
> +                        "%pp: failed to reset vPCI device state\n", &sbdf);

I question the need for a log message here.

> --- a/xen/include/public/physdev.h
> +++ b/xen/include/public/physdev.h
> @@ -296,6 +296,13 @@ DEFINE_XEN_GUEST_HANDLE(physdev_pci_device_add_t);
>   */
>  #define PHYSDEVOP_prepare_msix          30
>  #define PHYSDEVOP_release_msix          31
> +/*
> + * Notify the hypervisor that a PCI device has been reset, so that any
> + * internally cached state is regenerated.  Should be called after any
> + * device reset performed by the hardware domain.
> + */
> +#define PHYSDEVOP_pci_device_state_reset 32
> +
>  struct physdev_pci_device {
>      /* IN */
>      uint16_t seg;
> @@ -305,6 +312,19 @@ struct physdev_pci_device {
>  typedef struct physdev_pci_device physdev_pci_device_t;
>  DEFINE_XEN_GUEST_HANDLE(physdev_pci_device_t);
>  
> +struct pci_device_state_reset {
> +    physdev_pci_device_t dev;
> +#define _PCI_DEVICE_STATE_RESET_COLD 0
> +#define PCI_DEVICE_STATE_RESET_COLD  (1U<<_PCI_DEVICE_STATE_RESET_COLD)
> +#define _PCI_DEVICE_STATE_RESET_WARM 1
> +#define PCI_DEVICE_STATE_RESET_WARM  (1U<<_PCI_DEVICE_STATE_RESET_WARM)
> +#define _PCI_DEVICE_STATE_RESET_HOT  2
> +#define PCI_DEVICE_STATE_RESET_HOT   (1U<<_PCI_DEVICE_STATE_RESET_HOT)
> +#define _PCI_DEVICE_STATE_RESET_FLR  3
> +#define PCI_DEVICE_STATE_RESET_FLR   (1U<<_PCI_DEVICE_STATE_RESET_FLR)
> +    uint32_t reset_type;
> +};

Do we really need the _PCI_DEVICE_STATE_RESET_* bit positions as separate
#define-s? I can't spot any use anywhere.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 07:22:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 07:22:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751261.1159147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOBN7-0008BK-RM; Mon, 01 Jul 2024 07:22:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751261.1159147; Mon, 01 Jul 2024 07: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 1sOBN7-0008BD-NA; Mon, 01 Jul 2024 07:22:45 +0000
Received: by outflank-mailman (input) for mailman id 751261;
 Mon, 01 Jul 2024 07:22: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=8Yp2=OB=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sOBN6-0008B5-1D
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 07:22:44 +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 b3347fe0-377a-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 09:22:41 +0200 (CEST)
Received: from MW4PR04CA0387.namprd04.prod.outlook.com (2603:10b6:303:81::32)
 by PH8PR12MB7025.namprd12.prod.outlook.com (2603:10b6:510:1bc::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.29; Mon, 1 Jul
 2024 07:22:38 +0000
Received: from MWH0EPF000989EC.namprd02.prod.outlook.com
 (2603:10b6:303:81:cafe::92) by MW4PR04CA0387.outlook.office365.com
 (2603:10b6:303:81::32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.32 via Frontend
 Transport; Mon, 1 Jul 2024 07:22:38 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000989EC.mail.protection.outlook.com (10.167.241.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7741.18 via Frontend Transport; Mon, 1 Jul 2024 07:22:37 +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, 1 Jul
 2024 02:22:37 -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, 1 Jul
 2024 02:22:37 -0500
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 1 Jul 2024 02:22: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: b3347fe0-377a-11ef-b4bb-af5377834399
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BOnhsj/73+JSBq9LU3p5ENHyL0PjxKJPjbHoFCCmfOC0v34pF/mP7ijlQXDuA9P1seUdgP+xFLccxWbzxZE2HpLtY16tRVKyuN37rTdze7zK3avwI2EOJ1VqYMnbUwM8NvIcnC5AIvT+n6zKBR/Ai1FdQzVruxOFwnz+L79U95euWORJqn5UMh2BuU1W76hmhAJoYD05yJJWm5D/P/aVSjDkSMenRz6pajDxTySW1xU4VwyrLZChUyKn58z44wZpriAuYi6aFF+csThrfG91UXryaHDFXsZcsx9TlNKcrxRKbUOm8YdApWlycstgDAyPyHFVhtl2bsc9HJ5oxmqNBg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pYkdXjYaArJWI8mrkdJOkyZpmTVWqrido83lu/309xY=;
 b=bDmwjRcKJSvhUgeM84AlT25Hwx5iYMXjrZqKmpQ+yKpf228hTPb8YdEk9Vs5BTGK/RXVmlJXsAE2YALhRp0vyczZtouOhe6rGyxzddYhjFy6PaIFT0ArpStTE32SDX9QDn3Z38/tg/cHOf/jUiCkOYIw2RYEQmfIw4IDP5euv7w9d2rkCSP2aJf7OpJZKcvvZASeyx0/gvkm6vZMgCZZg5s8//UL2D0bEfdwGGv3QtlmIvso71DILLEIhInlGcXqe7uYr+MVGyK6d3LC7s+Hk2Bt8sVkkmuxx7zBB4tL5IfAGfUYBd+CNZ9Hr4Cyr83g/OqTUf0/KAjHplwLqSYUsw==
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=pYkdXjYaArJWI8mrkdJOkyZpmTVWqrido83lu/309xY=;
 b=rVXdXObTBeZ96G4WrxDaRBnvYPCGT3vmI+ViJjUrroMawgTNnDXMQT05yjNui+t6jfiD22uU8cfvnBroiRdNzJ3wahp/5UlPyfU+Q5zqwASZoKIHThC1t2lTt3mj2z6M9s0Bjp4qWJWCPBCBvcZ+odQ6Wr4ZO7CSV1mDL4Y2ziw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <dcc805c6-6d34-4495-a778-3146e56ff319@amd.com>
Date: Mon, 1 Jul 2024 09:22:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] xen/bitops: Rename for_each_set_bit() to
 bitmap_for_each()
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>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>
References: <20240625190719.788643-1-andrew.cooper3@citrix.com>
 <20240625190719.788643-3-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20240625190719.788643-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989EC:EE_|PH8PR12MB7025:EE_
X-MS-Office365-Filtering-Correlation-Id: eec5ee2e-87b1-419f-6f5b-08dc999e9600
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?cTBDWXdhME9zbEFveitHL3FhbkZzRnhPT3lHeEE2RFRuRm0rbjRBTXFvaGQ2?=
 =?utf-8?B?NjlLNHdzRWMxOUJpaGN0WXNkejJBOG9YUEpRdTNvT05ENnNRcTBacENKZlZ0?=
 =?utf-8?B?bUlBdDlFck9CbFRPWFVmUmJPYkVZUTFDQlloZ2hwMXRmOGRWRFllWVEyb0xO?=
 =?utf-8?B?L1Vxd2tTWEFzalYvbjF0eDBNcitMeUthM3ZoSkpXeHJ5WWc4My9IVENvMFdW?=
 =?utf-8?B?STRXejR1azVLQ2hEeVl1ZVFOR2NWWWZRYlJCVTk4QWh0TWU3d0xwRVExV2NZ?=
 =?utf-8?B?TE8wTVVsQjcveE9MWUMxY3VrcVpZN0oyTGxFU09xbEFld2RVOHo1MklHT1Fr?=
 =?utf-8?B?QjNpSjl4cUNkMHlVUEVVSytOalJqdnJYZGx5YUNlU1VPUGIxU3pvZFNMZW5o?=
 =?utf-8?B?R3FBUkFQNDg1Y0pPYWlRZlhyMXZEdG9LUnB0TFE0cEEzM3AwV2F1OFpuWUtz?=
 =?utf-8?B?MWVvRVoyWHlqaUpTY2M0Q2RHbXF5RHBFTE5HUjBKN2oyR0FMc3RvVFpINnBn?=
 =?utf-8?B?ckFKWEFxYWt3NG56Ukhtdk5pZGJicVlvQUZNanJGbUx6MlNaZTBqVDlYbE1L?=
 =?utf-8?B?UGQwNWcvWGdLTC9KMW5reDlLWkdSbzR1OFplenBrRzhqQWMxSFFEUitKandn?=
 =?utf-8?B?VXVvU0hBTDVRczdFU1VYMFplcGJRTlhIT0N3eTlOQmNkNlBhMk1sTDRQUGFv?=
 =?utf-8?B?Z0k1eGJzSUlDQ3VjR0xXaWUzcmtqc012MXFxaXlNYXdZWlFwOU9PclVzdkxz?=
 =?utf-8?B?TDl4aE4xNDR1bzcyTHdmQWpNVzJTT2RPUFRtdE9ScUJwVnJxYkl5MS9lTHNz?=
 =?utf-8?B?SXU0N3AyR0FONDFCQU1zZFpNTkoxSGNxL29ER2NqVDN3bXB2Zm5YcFppZGpl?=
 =?utf-8?B?SDFFWU5EMWZsVnBRcG1KcFdzbk0xM1Z5S09XM3RjeDFZU212SkdUUUNGbnJT?=
 =?utf-8?B?b05LR1NQdmY0WFdZMEpVN1RXVUdjbnJpVi9WQ3VxNjFLcDBvTG1BQXFaZWo0?=
 =?utf-8?B?YTA4NW1lcFplM3RBYVpFMmJSU1pCSjRRSE1tbWs2b0VScU9YQUt0TXVmb1kx?=
 =?utf-8?B?RjcrV1lpVzZFdmhxZkRJNytwMS9lT3BMWU51UzBITXEzYmE5OWRjbERnZmdu?=
 =?utf-8?B?YTZ1T1VLNHlhOXBvVlMrc09KcTFEY3duWVQ4d2l5Yno3Z0RDVDBDMlFaYUlq?=
 =?utf-8?B?MnJtWkFqcnZjM3NkbkxvekdSTFgrU2FqRUJJZ3k0d3NlSE93ckdVcG1vamg0?=
 =?utf-8?B?b1B1THRYR1h3aEZ2RWt2Wm55V2RZdUg3Y2w5RjNlQUVTcEFySFZZVzJ5VFNV?=
 =?utf-8?B?ZHdoTmdOMkh2SkF4NDRZZndEbERCK0Vla2svQklQQkdlTXNwTWtqOTBhbmlw?=
 =?utf-8?B?d1VTT0U0Q0s4QnZaeWNZN0RmSW9CcGtYQm9jUlN0ZDYrOFAyTE4rN0h2ckli?=
 =?utf-8?B?OWdoOVNqNTBNNjZkclNEV09qTEpnUGZEcGxhSXhOMElSOGZEY1ZabjNneHNW?=
 =?utf-8?B?VGU0KzkwMGt3NERFeW1ReFJSMW9Zc0FRdGpCZzZuVlVTT21UM1Zqa3RLM1NG?=
 =?utf-8?B?OHYyK2NFekNKb09WRngyRHozRndDelFxeDBINm0wZkxjU24rR3M0SDJCb3oy?=
 =?utf-8?B?bThBM25qOWlDaGp3U0pzbE40WlZJUnZ0Y0RXRnZBSkdLWGU2RWM5dXI0am5m?=
 =?utf-8?B?VjR2a2kra0dHSEU3R0dYSkY3bGRBcUdyeUtzaCtpRFlSWDFnS3VNaHVNd2JR?=
 =?utf-8?B?U2hHdExZb0k4Q01IdWFuRk5XRzAwRG5TeFl0V2YxaGFDR2RzdHYyMTViVDdS?=
 =?utf-8?B?eDl5U1E5WExxc0FoakxWTG5jdU11aTd6YjIrTDZsTndhYmNoTy9tSTVQM2xl?=
 =?utf-8?B?M0VObC9JOTJsL3NjSTVkbzZCOGpCaEcrRXg5VUhsb1VXSE90U216ZzM4bWpB?=
 =?utf-8?Q?Z3HgtsBrYxYKa8rOaBryRIEIzs3ds5SW?=
X-Forefront-Antispam-Report:
	CIP:165.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: 01 Jul 2024 07:22:37.8542
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eec5ee2e-87b1-419f-6f5b-08dc999e9600
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989EC.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7025



On 25/06/2024 21:07, Andrew Cooper wrote:
> 
> 
> The current implementation wants to take an in-memory bitmap.  However, all
> ARM callers and all-but-1 x86 callers spill a scalar to the stack in order to
> use the "generic arbitrary bitmap" helpers under the hood.
> 
> This functions, but it's far from ideal.
> 
> Rename the construct and move it into bitmap.h, because having an iterator for
> an arbitrary bitmap is a useful thing.
> 
> This will allow us to re-implement for_each_set_bit() to be more appropriate
> for scalar values.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 07:23:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 07:23:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751264.1159156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOBNc-0000A4-22; Mon, 01 Jul 2024 07:23:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751264.1159156; Mon, 01 Jul 2024 07:23:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOBNb-00009v-VX; Mon, 01 Jul 2024 07:23:15 +0000
Received: by outflank-mailman (input) for mailman id 751264;
 Mon, 01 Jul 2024 07:23:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8Yp2=OB=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sOBNa-00009f-M8
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 07:23:14 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20621.outbound.protection.outlook.com
 [2a01:111:f403:2414::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c6735a21-377a-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 09:23:12 +0200 (CEST)
Received: from SJ0PR13CA0221.namprd13.prod.outlook.com (2603:10b6:a03:2c1::16)
 by PH8PR12MB8431.namprd12.prod.outlook.com (2603:10b6:510:25a::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.35; Mon, 1 Jul
 2024 07:23:09 +0000
Received: from MWH0EPF000989E6.namprd02.prod.outlook.com
 (2603:10b6:a03:2c1:cafe::5c) by SJ0PR13CA0221.outlook.office365.com
 (2603:10b6:a03:2c1::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21 via Frontend
 Transport; Mon, 1 Jul 2024 07:23:08 +0000
Received: from SATLEXMB04.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.7741.18 via Frontend Transport; Mon, 1 Jul 2024 07:23:08 +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, 1 Jul
 2024 02:23:07 -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; Mon, 1 Jul
 2024 02:23:07 -0500
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 1 Jul 2024 02:23: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: c6735a21-377a-11ef-b4bb-af5377834399
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iG0txPOfVT2yfB5sxU5X562irZmKR1Z/yy9Ptf1a2XRCbJ3DH11+8x/6jnRoXzG1/knIbp7cGLxaC7+rkuI3SvP2lksboTS3P/VwPKhHDR9LyUwHhlH6rm+YPVgKoLa1RBOpwApfutkr7h/BXNEy8DRg4kbeN6sME/aYCrrsrVcL1tY925H93ivkDV+vIuW6BD+PKlmvV+byLsY56V+5dGAMVvj5FvAqf1Da+xV50JR3eo99V33lCrHDRo7qEKohyiQHyt4aP4/8RzdBHvbOApqqT4Xzst34d9S+pBQgFL7JnyYbEnwN7SukNJhEzphSPAncoHEfsKpfDzwvGWr3EQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=08HJ77tSgDOBOa1xuE2ClWZn+GiCr8E/WjS3yuoIMEc=;
 b=MN4R8WqVXMB1hXKQsd1YB0sPeaUmb/FB9ZYu8Q5IGTXjzhtktr6zvGvmgz0bmGyEVnZkvSIrNRpdJJihgD9GJAk8ng0HqWAre3a4osJfz+fLcVE3KUjUlJwxKLmclioWc0WuLq3rdT2GxsIXF8xHaH+Z8kuJJ44imM24YTfAjtx+k+zulc0jDjQzLMJtvUIPZYjADfot5QWtagq82BaOWDllKUUZhe6vgwyyLDn1IBZm1dt+TM54evZdA3uCeR3W+VDanOsJ9RCRCPjhnKHVX1TEw77pUJrbPA3LMQ2a3S77JiLGktJl6AQipr5jE6pqfqMkmap8QZEVzXXYLQs2pg==
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=08HJ77tSgDOBOa1xuE2ClWZn+GiCr8E/WjS3yuoIMEc=;
 b=TWH6IW91pTbDmsQIhQ+6KXgjqxU8BTtFgKIOmYhMUkRlqWF1hf0EQ2w2ljUjT795bZ4G97UKw4VqqApyT5BqVDRE/X83+jWogKCeuOiToG0kuv8Hx8JpIkm1kDV/FbWYk/6HulJueYlvS34U3Sz8EHHp+vgaom7yDBK1PnYOcZc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <1f35e857-0ecf-420b-850a-e5694bda49ec@amd.com>
Date: Mon, 1 Jul 2024 09:23:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/6] ARM/vgic: Use for_each_set_bit() in
 vgic_set_irqs_pending()
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>
References: <20240625190719.788643-1-andrew.cooper3@citrix.com>
 <20240625190719.788643-6-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20240625190719.788643-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989E6:EE_|PH8PR12MB8431:EE_
X-MS-Office365-Filtering-Correlation-Id: d826716d-4322-4dd6-9fca-08dc999ea867
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?aXJIb2FnZ0VnMTJBK2Q1dWE0NExzcithM0gwYXZrb29KNlZ4SU9xNVJVbzRF?=
 =?utf-8?B?d3gvZDhBVzJFOHppTjJIV3VnckYzamMwazlvNEhnZE15SXd0ckE5aThjNFAv?=
 =?utf-8?B?TTYrZzJMVGgxbTYrQ0Q5MXRSeGVaR3VjTG82MWJuN2ZJUzB3QmN1WjFKVGJu?=
 =?utf-8?B?VHBTakp6QWI3WkpaZlE0NG1jeXVHRUpFRzFtdG9OYnpqVkJxVGt6SE5FcXdI?=
 =?utf-8?B?K0JFN01oekFRWGhoUUdwdmdGWjRwWk9QN012TTIxUlhxYnJOOTdSUWVjZUM1?=
 =?utf-8?B?OEsrL3pTQ0RjZ2ZlWGpqYk9IRmlhYWppRUczR0IrUVpmN3cyL3JuOVVtNWdl?=
 =?utf-8?B?NFdvTENwcjJKUWc0Z2F0MVRPOWQxR2tuZzkvTVJkcENRbGdibEt4WHlxay9z?=
 =?utf-8?B?S0VLWDJ4MUQ5RFJES3VPTGlybUt6MnpsT29VUGFjNDhQdlpYbDAwSkpIcGhn?=
 =?utf-8?B?MGVrYjhJS0NmcGg0djQvU25pYVhiQmZDdkZHVFFqWGRXUzBrZ1ErNnZJQWg1?=
 =?utf-8?B?R2d6S0VmUzdiVWxOc3hWZFhkakp2QjlpblYxVnVPK0drV3BBbWdpZ2FWT0NF?=
 =?utf-8?B?MHFhYXlnZFBnelJmdTl4WmgzaHQ2cWU3UlBSR1pHU1hvVFVXZXIreHZFbWxW?=
 =?utf-8?B?T051T1c4VnlUeGFPeGRPTXEvSnVkMWFNRUlsTmR2SW9raVl1VEJIKzMyeW1W?=
 =?utf-8?B?ZjMrbld3bTlCK0RGczljRWpZWFRueGJHclhja3hiOXVpSUxqVTAvbzU5Q3Vo?=
 =?utf-8?B?d1FIVVdDdmtDbzNzcGhYdWlLMjcyekhJcXV3ck80QzFUNk5XVWV6NUg5WXc3?=
 =?utf-8?B?UHdmblFqc3hHWUtOREFaNURjajA4YlY4cDdtcnFjd2JwcnphRWMxSG5jaWxz?=
 =?utf-8?B?aTdUbng5WHN5YkNKcnd1cUdkQ3BvV3ZzRzR1MXFESTFzZlRSRTNhTVVrSzFo?=
 =?utf-8?B?V1VmQm03MStKLzZ4ZlZpNFFHSllSVTdpNTZIWVZ4UmNFclliOGhuN1VZTzVX?=
 =?utf-8?B?czgrLzdLbXRFeUdNUU5tcTd4SS9oMTNoNTNKdWFKa2J5QXNsYUtmQVQzbkR6?=
 =?utf-8?B?dlZRZENzSXVHdXlwZTUxZXd6bWdZMzVwWXBOVTR1N0diU2pwQUl2Vkk5WVlo?=
 =?utf-8?B?UDB6MkxpempGOFQvRWREbTYrWGZNWEpWeGdYRFNTd0J5NHk4ZWpZM0t3NEF2?=
 =?utf-8?B?MlM2M25jS2VmNzVMSUpuU09KeEdKa296aEhrbHd1MUYvdkVISGtSaldGdDRq?=
 =?utf-8?B?eEpQY0g5TFEreFhBcFc0RHFHVTQvT3ZvQTE0Z0daZFhVbmxOTnN2VWhabExr?=
 =?utf-8?B?K2Rwd1pRTWFMOFdDS01WZFdPZlVoa1ZLUHBnVitOc3RWRE1hQ1F5b2F1bXRT?=
 =?utf-8?B?QldoeXVpZVFtakhQZDVER1U4NWRjZjhWOUxTVWRwYjdNdzg3UkJoT1ZDbTF0?=
 =?utf-8?B?R2gyRXdSa0tsRm5VcmR1L050eUwxY2ZiMVVOMHViYmJvWE1HS2QvMlgyaldH?=
 =?utf-8?B?S2VxSzZuQ2tRaThWYjlwWng0WkxoUW9YbWw1MjRFbnRjeklEenc4Y2ZmNzFC?=
 =?utf-8?B?QWJoZzd2Tk1VUVJnM1REQ09FQVBnUmFwQXpGT1NRTlVja1VvMmNjcDFVTmJO?=
 =?utf-8?B?NTRjREU5NGZRQmZpTUs1UE9sQWpIZG5rcmg4NXF4K2FoVU5pUUZvWFRwbXdE?=
 =?utf-8?B?U0hnMXVJWEJWTHVUVjUzQlZMc1h6aUN0Z2xaVlRIR0VZeGk4U2hXcW9tcGRB?=
 =?utf-8?B?bm12UUpxamgvd2hzUjhma0xIbG1nWnZGem10K2JBeGVOdGpucnVBcG5RUDVu?=
 =?utf-8?B?WFBCYlVvN2dkbUVrSGFaUnhSSUFSa0ttbXlPYlplTFkrL01IUkpkaVFmOXVC?=
 =?utf-8?B?NU1HUUhxMVVVc1hTQlEwZlg4bDhKemxaTDE4VXhMZU1weDkxdEtCMFVFOXlz?=
 =?utf-8?Q?kt4WTEQRqp2tYj/fBJC8TCMVEOjAdNiw?=
X-Forefront-Antispam-Report:
	CIP:165.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: 01 Jul 2024 07:23:08.7451
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d826716d-4322-4dd6-9fca-08dc999ea867
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.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: PH8PR12MB8431



On 25/06/2024 21:07, Andrew Cooper wrote:
> 
> 
> ... which is better optimised for scalar values, rather than using the
> arbitrary-sized bitmap helpers.
> 
> For ARM32:
> 
>   add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-16 (-16)
>   Function                                     old     new   delta
>   vgic_set_irqs_pending                        284     268     -16
> 
> including removing calls to _find_{first,next}_bit_le(), and two stack-spilled
> words too.
> 
> For ARM64:
> 
>   add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-40 (-40)
>   Function                                     old     new   delta
>   vgic_set_irqs_pending                        268     228     -40
> 
> including removing three calls to find_next_bit().
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 07:32:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 07:32:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751275.1159165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOBWU-000287-1N; Mon, 01 Jul 2024 07:32:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751275.1159165; Mon, 01 Jul 2024 07:32:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOBWT-000280-V3; Mon, 01 Jul 2024 07:32:25 +0000
Received: by outflank-mailman (input) for mailman id 751275;
 Mon, 01 Jul 2024 07: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOBWT-00027s-7V
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 07:32:25 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e6e65cd-377c-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 09:32:23 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-52e8cdc6a89so205334e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 00:32: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
 98e67ed59e1d1-2c91d3e2cd3sm6035030a91.49.2024.07.01.00.32.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 00:32: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: 0e6e65cd-377c-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719819142; x=1720423942; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=g/Rt9slov6tqTVpwOXfyHzGrdTlGusarrkfUDF6/WbM=;
        b=OYFCzq9icjqLck417JcnQ9tlD8YDf3VGhgiC6Sjp86xKdrdtWzsU75ezFoWNe7zGzg
         HcKYhk+AN7NJzWzxbAvIlA/0ja5ZDfQb1i4V3Wiv/a66p5KeLh0VpD7PGjzZEDNz1S+s
         dI19OQuavp354pq+StWYy0XcVE7K6VO0x9or57QIk7gQZ8uAkIbZ0G+Py75hdnQLobp8
         zqG6BOJbkIjU43NKKp26WoGoRTbIuOesoyU+PoCh2TaFC5ydoHXNP0JTCM+mef39s9Oc
         Ls4hjqerukm8/EogU+HgcYd4vCNuPaa0/Qtwlj0HFjSRQFWemx5EPJfs6KuMedzld4zo
         1N4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719819142; x=1720423942;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g/Rt9slov6tqTVpwOXfyHzGrdTlGusarrkfUDF6/WbM=;
        b=nD5AbY8nkekOcDsmUfj0T6lsSRiidZdMeoTTjOvYWwwVeQ1NtuDTysJZhp/198EEmI
         l5+YTK9SiSeGXoUZqR2HjE9YQtXcWJgPWfrpR6PXkPsdhwsnWHr2NANzRo6j0yGRzLB6
         emoj3MDIkIKDaxj+1FiMG3XiIQd4AwqdT5Jg/d6jXBzgYuI2AwIcKrIotsaa2lTR/m0A
         Z/hyWlRgJXJbaUS4DNQOtUzB61PeuVprhrmFBpCCe6VapzyhmuyD5E1JwZWy+tRNV8xX
         Bn/17TrqytaDXTvkCtaPfUAKMSTwSu4lfdDFZPFqp69kSm0Xs2zyZebQ07GIVr/f7rQJ
         OfWg==
X-Forwarded-Encrypted: i=1; AJvYcCWOQ7eVRxqifAd6toofyzSw3is4VUAI3E77YEb7g+Nn402dqWir9ASnbG0spf4UOaBV3Dl9BAV+VHPgFnUIoiuTtjsQI7Lzx3T7O+aYrxk=
X-Gm-Message-State: AOJu0Yzix4vI8dgQea7f/qVswmNasj/Mn9w5ZnkPMa4rUT78rqXAcUh4
	UiPHY4i54PfdtUeQH7o9NnplOf/WiDZJ/n49EBjxEh/jW69MxtxgQkDIexacQA==
X-Google-Smtp-Source: AGHT+IEVkMhvSIV6KB1YSMdHgvlsgGCzZUExzXxh1wYffV/DyCya/EU+136LjNU/CvmB2FCllc2NcA==
X-Received: by 2002:a2e:b889:0:b0:2ec:3d2e:2408 with SMTP id 38308e7fff4ca-2ee5e6bc703mr30507441fa.33.1719819142447;
        Mon, 01 Jul 2024 00:32:22 -0700 (PDT)
Message-ID: <ff827def-743c-4312-88fb-dbd1b87bb85d@suse.com>
Date: Mon, 1 Jul 2024 09:32:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v11 7/8] tools: Add new function to get gsi from
 dev
To: Jiqian Chen <Jiqian.Chen@amd.com>, Anthony PERARD <anthony@xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <Ray.Huang@amd.com>, xen-devel@lists.xenproject.org
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-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: <20240630123344.20623-8-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.06.2024 14:33, Jiqian Chen wrote:
> --- a/tools/libs/ctrl/xc_physdev.c
> +++ b/tools/libs/ctrl/xc_physdev.c
> @@ -111,3 +111,38 @@ int xc_physdev_unmap_pirq(xc_interface *xch,
>      return rc;
>  }
>  
> +int xc_physdev_gsi_from_pcidev(xc_interface *xch, uint32_t sbdf)
> +{
> +    int rc = -1;
> +
> +#if defined(__linux__)
> +    int fd;
> +    privcmd_gsi_from_pcidev_t dev_gsi = {
> +        .sbdf = sbdf,
> +        .gsi = 0,
> +    };
> +
> +    fd = open("/dev/xen/privcmd", O_RDWR);
> +
> +    if (fd < 0 && (errno == ENOENT || errno == ENXIO || errno == ENODEV)) {
> +        /* Fallback to /proc/xen/privcmd */
> +        fd = open("/proc/xen/privcmd", O_RDWR);
> +    }
> +
> +    if (fd < 0) {
> +        PERROR("Could not obtain handle on privileged command interface");
> +        return rc;
> +    }
> +
> +    rc = ioctl(fd, IOCTL_PRIVCMD_GSI_FROM_PCIDEV, &dev_gsi);
> +    close(fd);
> +
> +    if (rc) {
> +        PERROR("Failed to get gsi from dev");
> +    } else {
> +        rc = dev_gsi.gsi;
> +    }
> +#endif
> +
> +    return rc;
> +}

I realize Anthony had asked to move this out of libxencall, yet doing it like
this (without really abstracting away the OS specifics) doesn't look quite
right either. In particular the opening of /dev/xen/privcmd looks questionable
to now have yet another instance in yet another library. Couldn't we split
osdep_xencall_open(), making available its former half for use here and in the
other two libraries? Of course that'll still leave the ioctl() invocation,
which necessarily is OS-specific, too.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 07:45:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 07:45:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751282.1159176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOBiZ-00048F-33; Mon, 01 Jul 2024 07:44:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751282.1159176; Mon, 01 Jul 2024 07:44: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 1sOBiZ-000488-0Q; Mon, 01 Jul 2024 07:44:55 +0000
Received: by outflank-mailman (input) for mailman id 751282;
 Mon, 01 Jul 2024 07:44: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOBiY-00047j-14
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 07:44:54 +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 ccb41b76-377d-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 09:44:51 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ebeefb9a7fso31182901fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 00:44: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
 d9443c01a7336-1fad2083614sm49044035ad.87.2024.07.01.00.44.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 00:44: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: ccb41b76-377d-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719819891; x=1720424691; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jJnvJPrqAh80QDNe7H8jTKZXt4Y2zS2GZKiEVrPAnNM=;
        b=di2+3sWZpsmpYZKpamkQIRKFU7kfXInqejWRS4P8P1JnWuliWk2JgLDzgiFGNTpmmd
         QJz/ftytiTq7U0ZY4/BwrIgwznIh4HyIsrULge+mWnIlExS/Xuu28B4riSRtMOiBakD8
         Vl5nDmY5oeX8N9kTjILMHu91ajQHam7nk5QuquxyexzaBGijfsitdQ4UwP1d1kZ0NW3i
         2oMlvxISflVx1smqpUTR06bpPtg/7Z27tLPg73YPdbq51P37bAZG0rIp1uAHiYaKQhAh
         AAu5du7K7oQ3mc9VUW6M6vtVdk3jNiShCc7WeP03vzwYeTHI8ujKMkatg4rQ9fKXWcX/
         kKxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719819891; x=1720424691;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jJnvJPrqAh80QDNe7H8jTKZXt4Y2zS2GZKiEVrPAnNM=;
        b=IbeWMlazl5xQ4iQC3MLMruin7zLrqPfHHzhzualRRoDd+1NnSk6jrA7JqiDIjUGArK
         xMQfmwAU4Ex2m3PWXskWP/Id/GMUYE/g9P2b42jbbqseAS14x3AvH3SkqibA4d2Gu9Rl
         GJNS5nbgQ+HAXmLLwrrP1DkgEy9zklOalFb/zLLzqwSgOyIlvzEHJ4WPAyjJFHS2JBIj
         Wr4wnhbzl/c7nAFKlMyXb8C+Q2CjDgN5nZHQ0htjGGv829fDD9Fo6perzz6/UoCxymed
         z7FGP5AOXxoxjXfkqvwjB16btFAN+e71a2zy3N1uVGKv43bVB1tmE7x1KcG+4hwD9Ek6
         t9tg==
X-Forwarded-Encrypted: i=1; AJvYcCWpZhi7SX7/2Trg1DGxeMAxDIlB+4nMv9q7Y5TYudNWkbvlvBXk+AYRP3uLcX5NWq9j+CnldOtyTRHvVSiYWzsFTjJvfle1auAi02Nt6rw=
X-Gm-Message-State: AOJu0Yxw9Smarql5Y1pbcxhzkqtQB0kP0MDRT2PntKiA8Kdo4EVmppM7
	7kebsR/EHDXzpst9ToB3jZ+iAsnwi/hhjfF/kvsS1Y12avFetOuhxpe4Lti16g==
X-Google-Smtp-Source: AGHT+IEo0T8AebkVClj/rji8LebsKRGu7CO6hJUvMldOVV/bYTmvHxsiQVHOYOb26kPzOg0xuyGTAA==
X-Received: by 2002:a05:651c:507:b0:2ed:2765:2491 with SMTP id 38308e7fff4ca-2ee5e3c3652mr41103181fa.28.1719819891122;
        Mon, 01 Jul 2024 00:44:51 -0700 (PDT)
Message-ID: <9a311ee0-dcf2-4609-aced-7f57b322da5f@suse.com>
Date: Mon, 1 Jul 2024 09:44:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v11 2/8] x86/pvh: Allow (un)map_pirq when dom0 is PVH
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <Ray.Huang@amd.com>, xen-devel@lists.xenproject.org
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-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: <20240630123344.20623-3-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.06.2024 14:33, Jiqian Chen wrote:
> If run Xen with PVH dom0 and hvm domU, hvm will map a pirq for
> a passthrough device by using gsi, see qemu code
> xen_pt_realize->xc_physdev_map_pirq and libxl code
> pci_add_dm_done->xc_physdev_map_pirq. Then xc_physdev_map_pirq
> will call into Xen, but in hvm_physdev_op, PHYSDEVOP_map_pirq
> is not allowed because currd is PVH dom0 and PVH has no
> X86_EMU_USE_PIRQ flag, it will fail at has_pirq check.
> 
> So, allow PHYSDEVOP_map_pirq when dom0 is PVH and also allow
> PHYSDEVOP_unmap_pirq for the removal device path to unmap pirq.
> And add a new check to prevent (un)map when the subject domain
> has no X86_EMU_USE_PIRQ flag.
> 
> So that the interrupt of a passthrough device can be
> successfully mapped to pirq for domU with X86_EMU_USE_PIRQ flag
> when dom0 is PVH
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

You keep carrying this R-b, despite making functional changes. This can't be
quite right.

While functionally I'm now okay with the change, I still have a code structure
concern:

> --- a/xen/arch/x86/physdev.c
> +++ b/xen/arch/x86/physdev.c
> @@ -323,6 +323,13 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          if ( !d )
>              break;
>  
> +        /* Prevent mapping when the subject domain has no X86_EMU_USE_PIRQ */
> +        if ( is_hvm_domain(d) && !has_pirq(d) )
> +        {
> +            rcu_unlock_domain(d);
> +            return -EOPNOTSUPP;
> +        }
> +
>          ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
>  
>          rcu_unlock_domain(d);
> @@ -346,6 +353,13 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          if ( !d )
>              break;
>  
> +        /* Prevent unmapping when the subject domain has no X86_EMU_USE_PIRQ */
> +        if ( is_hvm_domain(d) && !has_pirq(d) )
> +        {
> +            rcu_unlock_domain(d);
> +            return -EOPNOTSUPP;
> +        }
> +
>          ret = physdev_unmap_pirq(d, unmap.pirq);
>  
>          rcu_unlock_domain(d);

If you did go look, you will have noticed that we use "return" in the middle
of this function only very sparingly (when alternatives would result in more
complicated code elsewhere). I think you want to avoid "return" here, too,
and probably go even further and avoid the extra rcu_unlock_domain() as well.
That's easily possible to arrange for (taking the latter case as example):

        /* Prevent unmapping when the subject domain has no X86_EMU_USE_PIRQ */
        if ( !is_hvm_domain(d) || has_pirq(d) )
            ret = physdev_unmap_pirq(d, unmap.pirq);
        else
            ret = -EOPNOTSUPP;

        rcu_unlock_domain(d);

Personally I would even use a conditional operator here, but I believe
others might dislike its use in situations like this one.

The re-arrangement make a little more noticeable though that the comment
isn't quite right either: PV domains necessarily have no
X86_EMU_USE_PIRQ. Maybe "... has no notion of pIRQ"?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 07:52:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 07:52:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751288.1159185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOBpy-0005xB-Mg; Mon, 01 Jul 2024 07:52:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751288.1159185; Mon, 01 Jul 2024 07:52: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 1sOBpy-0005x4-K0; Mon, 01 Jul 2024 07:52:34 +0000
Received: by outflank-mailman (input) for mailman id 751288;
 Mon, 01 Jul 2024 07:52: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOBpx-0005wu-2S
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 07:52:33 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dee775d0-377e-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 09:52:31 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2eaafda3b5cso25406501fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 00:52: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
 98e67ed59e1d1-2c91ce433c0sm6203883a91.16.2024.07.01.00.52.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 00:52: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: dee775d0-377e-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719820351; x=1720425151; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gWtsr+5693wwdKq5WM7bTGsLq1SE4caI1ccwLmyEATU=;
        b=MHrFVQsqDCwwbbm5CUPx6hF00CHFbXz3lT+LojgLy1n7VrIF2ZtYJ5jxihfTNi5Te2
         uihnV1X8KpT/Y3LWQCaHV7OMfOTDx8G5Ofb3FT8PSiJNrs44L16msnf7A+HX7KglJCNM
         0dZSHGI+NjJcoOd82kHWcty6/MFzPy+zBvkPmureWF7i/EQWwIR9fEg12MfZVCkHgfaj
         xZZx2ttuBsoBxy4ht3NBu+m0zLPBeexcpD3gzrbbGElRSrk+L+Aa9VF8fwZ8WKZfpuz5
         ATRj2kKU5PiB+bIyuvxPu6EPe5lWzHGfhgqlsIPxtXUu+40Aww+Q7cGgu/0Db1xqywza
         W9nA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719820351; x=1720425151;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gWtsr+5693wwdKq5WM7bTGsLq1SE4caI1ccwLmyEATU=;
        b=mdEClOzAfTLQNz7An7fTSx80dWAWDCJnZVbxWLPhIkQbirKGg+YuWcKLcwltvQglz6
         OkxwINDRfYVKIzFzZsqlGeS9XuL5Qj3cgfUbkHZa657GoTfFEsKiNHprMHELmvD50XYK
         1goWilTZ+MLulnR++ji0n2laTzMTwBR1toKqTKUTnXytETX9plYvQVEsPCLlrUOhd7NN
         eyo35dGFeEs7amu4f+889mJ+KBeN3e2KBIUYVa6r6SA616cYPH4vPbxAe2QVVEOtnn+1
         4r/tbCK527h7zRxbDOGJtwweH9qNxG57UunuW2mfEB4W47HSOrss3MfhjjKTWNd83j/T
         EKJQ==
X-Forwarded-Encrypted: i=1; AJvYcCVpsA25I71m+29lmWTqSHnhahdx24ayYS4Ii29fjrDI52Kl+IYq6TkYDbuaDNlNVKhMyn+mT21UrIHarZYh/jqFTr2gnT1bIfINs+FrpCM=
X-Gm-Message-State: AOJu0YyCW9XSLGj82X2KXedZ/jrwDq2B4AILRUAnztgjJKOqW88TMU2c
	fWFJAmYjsLcjUCLoNGLmnOQGw5wpV/adSC++qX2EwEnG2fxmOlP0/3wT7phk2Q==
X-Google-Smtp-Source: AGHT+IHft7ufbA9oK6MyS2nzRM4US2isPaPXJqjP+B3O5uYzC9+1cpfZ4CgqmgsfdZ4KwIh87Ellzw==
X-Received: by 2002:a2e:9556:0:b0:2eb:ebcd:fc1c with SMTP id 38308e7fff4ca-2ee5e38d301mr29424891fa.26.1719820351244;
        Mon, 01 Jul 2024 00:52:31 -0700 (PDT)
Message-ID: <cdb1890c-a66d-4fa9-9ab6-b678e062e085@suse.com>
Date: Mon, 1 Jul 2024 09:52:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v11 3/8] x86/pvh: Add PHYSDEVOP_setup_gsi for PVH dom0
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <Ray.Huang@amd.com>, xen-devel@lists.xenproject.org
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-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: <20240630123344.20623-4-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.06.2024 14:33, Jiqian Chen wrote:
> The gsi of a passthrough device must be configured for it to be
> able to be mapped into a hvm domU.
> But When dom0 is PVH, the gsis don't get registered, it causes

As per below, it's not "don't" but "may not". As the details don't
follow right away, you may also want to add something like "(see
below)".

> the info of apic, pin and irq not be added into irq_2_pin list,
> and the handler of irq_desc is not set, then when passthrough a
> device, setting ioapic affinity and vector will fail.
> 
> To fix above problem, on Linux kernel side, a new code will
> need to call PHYSDEVOP_setup_gsi for passthrough devices to
> register gsi when dom0 is PVH.
> 
> So, add PHYSDEVOP_setup_gsi into hvm_physdev_op for above
> purpose.
> 
> Clarify two questions:
> First, why the gsi of devices belong to PVH dom0 can work?
> Because when probe a driver to a normal device, it calls(on linux
> kernel side) pci_device_probe-> request_threaded_irq->
> irq_startup-> __unmask_ioapic-> io_apic_write, then trap into xen
> side hvmemul_do_io-> hvm_io_intercept-> hvm_process_io_intercept->
> vioapic_write_indirect-> vioapic_hwdom_map_gsi-> mp_register_gsi.
> So that the gsi can be registered.
> 
> Second, why the gsi of passthrough device can't work when dom0
> is PVH?
> Because when assign a device to passthrough, it uses pciback to
> probe the device, and it calls pcistub_probe->pcistub_seize->
> pcistub_init_device-> xen_pcibk_reset_device->
> xen_pcibk_control_isr->isr_on, but isr_on is not set, so that the
> fake IRQ handler is not installed, then the gsi isn't unmasked.
> What's more, we can see on Xen side, the function
> vioapic_hwdom_map_gsi-> mp_register_gsi will be called only when
> the gsi is unmasked, so that the gsi can't work for passthrough
> device.

While this provides the requested detail (thanks), personally I find
this pretty hard to follow. It would likely be easier if it was
written to a larger part in English, rather than in call chain
terminology. But I'm not going to insist, unless others would agree
with that view of mine.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 07:54:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 07:54:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751293.1159195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOBs3-0006Wo-2z; Mon, 01 Jul 2024 07:54:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751293.1159195; Mon, 01 Jul 2024 07:54: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 1sOBs3-0006Wh-01; Mon, 01 Jul 2024 07:54:43 +0000
Received: by outflank-mailman (input) for mailman id 751293;
 Mon, 01 Jul 2024 07:54: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOBs1-0006Wb-84
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 07:54:41 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b8cf649-377f-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 09:54:40 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ec52fbb50cso26155121fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 00: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
 d9443c01a7336-1fac1535b6esm57765905ad.156.2024.07.01.00.54.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 00: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: 2b8cf649-377f-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719820480; x=1720425280; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NtitmhcGkR4aduE0oddPnCJgC63Dpz8GO10jhuaQeF8=;
        b=eeb/4eLXP6iM2soupOGEAhaBWXuD+EbawIqH3EoGlp8t/K4X+u2fwXkeppH+voBG/+
         Q8mTuNdSrMxh01cqKmeVrUhvCW3keNgaqeWCe/QAqAtOwq+5VXbqTFOH/qikt4q6rppL
         TK1zEUVqi4i10r4TTEOjIidLdICOOXAnXmTgkqi0ZAjYDH+NFw6ZDoASVqNGVAz77w6G
         OV1JkBrH7A2YLWpSjHFj9AUKpuJgIefkCF+/u1G8pZZLjI9KCmErU1sAPKzT4K10kFuG
         WICrcnINOEHMxIWO4ExNHsDtaP691V7rf2sv3EgAdzbCobiXTcypFKzokgcf2sjRxRC6
         xqWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719820480; x=1720425280;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NtitmhcGkR4aduE0oddPnCJgC63Dpz8GO10jhuaQeF8=;
        b=Ra1kaaUiOT33c+cj41h3qmb2AJTcq5z1FrPyChFNwAly1vKmsVgE4Eog1pMI5ZpYMB
         x1uVNEbizESQihivxnzch5Zeq20jl2/FbtgsdMnnbJzbgrrH1U9UBzS01Mx80T3+pAlW
         1M8Dea+f3RA5rx47BkGIPCA5wFfNWC1agOqzl59QWmkejzUTH1DomiPe8egoATxcVtB/
         Re68K4vNAcVyCgL49HAb4bm3Y3ZJzkNyuKoRnMibwLTwmp++XkpYJUquW5pqoCZh6w4U
         Wap0sECRBx2fS1AtMYQXJaANayOpY83TK5264rDvRYOPAdPLmAo40LIJnn95QiSRE09E
         x8sg==
X-Forwarded-Encrypted: i=1; AJvYcCWtNfckrXzJVP1DnTPvZ3KVmkGYx+DqNr5tvLLC8FoAZjI9sG+DcI3HQMuCB55W8cF5gEhkR36MDalCdTGfOmvrNkQnF+87WSkZ78/28H8=
X-Gm-Message-State: AOJu0YyV25qdfBiJdU/INKbPXSMW4QLht77ja/J4kRvfO4alHNyOO+YC
	aDaqkcsENS04LdkrDv+RUnAsz4cxfirtkI24f82OWyKKP9tXAzt1KOQt6zsBEA==
X-Google-Smtp-Source: AGHT+IHPQQLmVXBHQc0Fyib8uD1vDL6tFWxiArIvY+0V9+ggrdM6eyEpoWnOzXCBO5LDCG3O89mx+Q==
X-Received: by 2002:a05:651c:88a:b0:2ee:6cda:6380 with SMTP id 38308e7fff4ca-2ee6cda6544mr8980571fa.18.1719820479945;
        Mon, 01 Jul 2024 00:54:39 -0700 (PDT)
Message-ID: <64af8165-2456-48f4-b784-ed3e6eb2c456@suse.com>
Date: Mon, 1 Jul 2024 09:54:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v11 6/8] tools/libxc: Allow gsi be mapped into a free
 pirq
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <Ray.Huang@amd.com>, xen-devel@lists.xenproject.org
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-7-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: <20240630123344.20623-7-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.06.2024 14:33, Jiqian Chen wrote:
> Hypercall PHYSDEVOP_map_pirq support to map a gsi into a specific
> pirq or a free pirq, it depends on the parameter pirq(>0 or <0).
> But in current xc_physdev_map_pirq, it set *pirq=index when
> parameter pirq is <0, it causes to force all cases to be mapped
> to a specific pirq. That has some problems, one is caller can't
> get a free pirq value, another is that once the pecific pirq was
> already mapped to other gsi, then it will fail.
> 
> So, change xc_physdev_map_pirq to allow to pass negative parameter
> in and then get a free pirq.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
>  tools/libs/ctrl/xc_physdev.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/libs/ctrl/xc_physdev.c b/tools/libs/ctrl/xc_physdev.c
> index 460a8e779ce8..e9fcd755fa62 100644
> --- a/tools/libs/ctrl/xc_physdev.c
> +++ b/tools/libs/ctrl/xc_physdev.c
> @@ -50,7 +50,7 @@ int xc_physdev_map_pirq(xc_interface *xch,
>      map.domid = domid;
>      map.type = MAP_PIRQ_TYPE_GSI;
>      map.index = index;
> -    map.pirq = *pirq < 0 ? index : *pirq;
> +    map.pirq = *pirq;
>  
>      rc = do_physdev_op(xch, PHYSDEVOP_map_pirq, &map, sizeof(map));
>  

This is a functional change to existing callers, without any kind of
clarification whether this changed behavior is actually okay for them.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 07:56:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 07:56:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751302.1159205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOBu5-00079L-JQ; Mon, 01 Jul 2024 07:56:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751302.1159205; Mon, 01 Jul 2024 07: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 1sOBu5-00079E-Go; Mon, 01 Jul 2024 07:56:49 +0000
Received: by outflank-mailman (input) for mailman id 751302;
 Mon, 01 Jul 2024 07: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=fTSe=OB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOBu4-00078i-6U
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 07:56:48 +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 77738d88-377f-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 09:56:47 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-57d05e0017aso3096836a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 00:56:47 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58612c835b9sm4089111a12.3.2024.07.01.00.56.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 00: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: 77738d88-377f-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719820606; x=1720425406; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yZLVEs+H0pV0pxmzMOuQZdCFz7cdk84JgxRFnD5XsLg=;
        b=A0Xw1bnsss8KEyeOc6buyOuXwOqFj0mfflbY5LFbJk3nEKzixktWbzdd8iZ0fhCn2v
         4nDDgSQdhVZVWoW4J8Q5vwLuyArqSsUBRGqaSYtC1cXBr80VMChdcxScpy8BVbMCk3mt
         wmoJlR8ZfTBG4HoxFjF9eXZ8Nts1ipdBL4uDI02VLCfEFt366+s9CQlZ/M6zkBdk4SwP
         uWEa85Hb1bWw1qr8FmW6QVVunPHDCSBzlxQgyZe4fOWQibiNlKIsJgb/2fkBU2CB4TV/
         IIS3JgH9DnTilrZn5V6SkvgoSrMh4SxMwo3llUr7iqoHT4flu4lbzRqT0Cdc24S8BZeI
         cjdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719820606; x=1720425406;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yZLVEs+H0pV0pxmzMOuQZdCFz7cdk84JgxRFnD5XsLg=;
        b=aWpACQe5HJ1mqHV4HSVnrS/U4zIYe41OTe83Mk8C/K8hnC+x/w7Z3shYObJSG4H0KK
         EGqLN0lI9TcaTga9v/1d2Nd3a9ztTNUrTZsp0njEUILP1rqBc6EpmzXNVMBp/LeoJYus
         xI2friw7/uZl29G9b/n4IGp0rytg7Cinb/HlXh1fayCaCpfLixWcXCkAEUA9GhLCWgPK
         dJX6kuNIQ7LTY6yAFwvG+MJ6zKiMIQ1GscfpZNvXfA4VcSNAFq9kv9uVqkASA4B1rg7B
         oOgdAI+7wbjBSk6oHS9LXJhnOSoYDdljcAT3f+pkXrN317/n+A6q/qeseWLSokqwR93o
         rSMA==
X-Gm-Message-State: AOJu0YwhE+Y+TIHITa0VYHiBMbgcsSr+SqoPsu6DY5LRlbWjiK2/zEuG
	jlf0y0Oi5Z2p+gzPRPDZqHG9MZbEY+mMQxLdzmuJ93hJsYailx/IscfNfSIt
X-Google-Smtp-Source: AGHT+IHRzD+Aux7yKogE8cjMvfYT2DahtZD2c6vki+f4NFPsqugBhNWj717SPt0wq+8HWxjDZ9OyOA==
X-Received: by 2002:a05:6402:190e:b0:57c:71a4:3142 with SMTP id 4fb4d7f45d1cf-5879efce812mr3731679a12.11.1719820606247;
        Mon, 01 Jul 2024 00:56:46 -0700 (PDT)
Message-ID: <ebe33baa922f6a3fbcb675e9819716e5c85b2daf.camel@gmail.com>
Subject: Hard code freeze date for Xen 4.19 is 01.07.2024
From: Oleksii <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: committers@xenproject.org, community.manager@xenproject.org, Kelly Choi
	 <kelly.choi@cloud.com>
Date: Mon, 01 Jul 2024 09:56:45 +0200
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

Hi all,

I would like to remind you that the code freeze date for Xen 4.19 is
today ( 01.07.2024 ).

Have a nice week!

Best regards,
 Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:16:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:16:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751314.1159215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCCw-0002mh-5J; Mon, 01 Jul 2024 08:16:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751314.1159215; Mon, 01 Jul 2024 08:16:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCCw-0002ma-2c; Mon, 01 Jul 2024 08:16:18 +0000
Received: by outflank-mailman (input) for mailman id 751314;
 Mon, 01 Jul 2024 08:16:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOCCu-0002mU-J0
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:16:16 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2ec3138c-3782-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 10:16:14 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2eaae2a6dc1so34274181fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01:16: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
 98e67ed59e1d1-2c91d3bcb30sm6131518a91.41.2024.07.01.01.16.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 01: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: 2ec3138c-3782-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719821774; x=1720426574; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6yXVr6w+0VZGpOuJfCDBEjv+7S2U2lpZLUn/HwVs0DM=;
        b=Rwm/696DkAsrqI+XbSwXaMcp9nqExOKwkpKIrofc7SjQxcscnEa8PgpmoO1pKwZeF0
         jlA9UGWm3Vz3SXnNoSNjNg/eSZ20sRSPJi2sDumt55Sc8kvKGKKupBLJMCG5inS3dRZv
         XIlfIh6ODXmI6Zxo3HZWcF0C0pfYOj+jtFXSmRWvZbi9Ektu4NKhtxkeJt7iO3yYxCAr
         gIkP4ncZkYk1QY8jDGhmaTtvmZf3DvLrOd2cAuzOUQv+rreEDS34IGeKACop06zEqBOo
         iw9c/XZuoaqt/UidJaAFLWH3vuDgKoGqKOiTeLHt5tVD+/UCwBS35IN592SUN5xOXHmz
         fJhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719821774; x=1720426574;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6yXVr6w+0VZGpOuJfCDBEjv+7S2U2lpZLUn/HwVs0DM=;
        b=eUYOeRfBVQfjSG5SVUL4T598WDfihXjT2VrWp2tCbdYTNPuJ+zfPiTu8i/guMTr2zG
         80iaOi7pJJBtzttEbclmcB0t4ECEtvsCP23xvZlAX60n4cUvY5qmrVCiR9JgLeF2V6/g
         nNNy8fJZOHnMDpyrFnsAhaByfw2Pfn6l//8GCctm5ikUl26S6BrsCUyyCmsqBc5/pgmY
         AeP5SfPvlU8dLbg/L2rMhAlA4/qjpoGFc9V9ZRemym4Qc7Uayk81tko+0yRhzM7OP+Zv
         fysqu+zCXD514tGCt3Iim3ia0JLW3FVT+gQbqIcwxZxNKLDwR92WZFQ/5NekjLkAChI/
         CNbQ==
X-Forwarded-Encrypted: i=1; AJvYcCU6NTj+bRvBLuz2SN/LYPhTAwg02N0bSK4QuM3H3C82gz5OB/8X4R0GJTeyRBISdkpKYTzxD7xBpeId0LzFQYkGWunDBnZjzmqbCHY75d0=
X-Gm-Message-State: AOJu0YyJHgo+2sMX3eXWShxhO6EyIfLQUnsfKUenrDvG3m8ElZcUttM/
	ycggZcZeWoFzRppCyauQah/lBR4mTSgQtx1o5sRfabkW2V0UlsVSwXrDHok6uQ==
X-Google-Smtp-Source: AGHT+IHAtwEjQ0l0t+LIOhkchHi7UX39oMDo/mLkAN9bQwJp5Obil4grkVSzAjvVYLZpgPhFkoHlZA==
X-Received: by 2002:a05:651c:2223:b0:2ee:4d37:91df with SMTP id 38308e7fff4ca-2ee5e3bb7fdmr48235211fa.27.1719821773668;
        Mon, 01 Jul 2024 01:16:13 -0700 (PDT)
Message-ID: <6e4b7711-5017-49a8-9f7d-e20c497f2561@suse.com>
Date: Mon, 1 Jul 2024 10:16:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] xen/event: address violation of MISRA C Rule 13.6
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1719308599.git.alessandro.zucchelli@bugseng.com>
 <d48b73a3c5c569f95da424fe9e14a7690b1c69f8.1719308599.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d48b73a3c5c569f95da424fe9e14a7690b1c69f8.1719308599.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.06.2024 12:14, Alessandro Zucchelli wrote:
> --- a/xen/include/xen/event.h
> +++ b/xen/include/xen/event.h
> @@ -183,13 +183,14 @@ static bool evtchn_usable(const struct evtchn *evtchn)
>  /* Wait on a Xen-attached event channel. */
>  #define wait_on_xen_event_channel(port, condition)                      \
>      do {                                                                \
> +        struct vcpu *v = current;                                       \

First: As recently indicated elsewhere, any new latching of "current" into
a local var should use "curr" or something derived from it (see below), not
"v".

Second: Macro local variables are at (certain) risk of colliding with outer
scope variables. Therefore the common thing we do is add an underscore.
Disagreement continues to exist for whether to prefix them or have them be
suffixes. An affirmative statement as to Misra's take on underscore-prefixed
variables in situations like these would be appreciated. Sadly what the C
standard has is somewhat tied to the C library, and hence leaves room for
interpretation (and hence for disagreement).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:23:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:23:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751319.1159226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCJE-0004nP-Rf; Mon, 01 Jul 2024 08:22:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751319.1159226; Mon, 01 Jul 2024 08:22:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCJE-0004nI-OZ; Mon, 01 Jul 2024 08:22:48 +0000
Received: by outflank-mailman (input) for mailman id 751319;
 Mon, 01 Jul 2024 08:22:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VStT=OB=intel.com=oliver.sang@srs-se1.protection.inumbo.net>)
 id 1sOCJD-0004nC-D9
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:22:47 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1620d407-3783-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 10:22:44 +0200 (CEST)
Received: from orviesa003.jf.intel.com ([10.64.159.143])
 by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 01 Jul 2024 01:22:42 -0700
Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83])
 by orviesa003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384;
 01 Jul 2024 01:22:41 -0700
Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by
 fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.39; Mon, 1 Jul 2024 01:22:40 -0700
Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by
 fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.39; Mon, 1 Jul 2024 01:22:39 -0700
Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by
 fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.39 via Frontend Transport; Mon, 1 Jul 2024 01:22:39 -0700
Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.169)
 by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.39; Mon, 1 Jul 2024 01:22:39 -0700
Received: from LV3PR11MB8603.namprd11.prod.outlook.com (2603:10b6:408:1b6::9)
 by BL1PR11MB5301.namprd11.prod.outlook.com (2603:10b6:208:309::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.29; Mon, 1 Jul
 2024 08:22:37 +0000
Received: from LV3PR11MB8603.namprd11.prod.outlook.com
 ([fe80::4622:29cf:32b:7e5c]) by LV3PR11MB8603.namprd11.prod.outlook.com
 ([fe80::4622:29cf:32b:7e5c%2]) with mapi id 15.20.7719.029; Mon, 1 Jul 2024
 08:22:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1620d407-3783-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1719822165; x=1751358165;
  h=date:from:to:cc:subject:message-id:references:
   in-reply-to:mime-version;
  bh=MFcVXUwoUwE+MZo1Atwoe6rRlxKOPawCw+svxWuKTtk=;
  b=Tl7oshi3RaHBJ4gXGwtO7U3HL9rbHtx/qOvUvVDI1ohngqv1AU/lpb4w
   wIfinHkCcdbU8Uv4hbl9BO/gcDkkKUVEWtPrs8d28Pr3BAjo+P5BMAcOW
   XeU8pkM1rVgQ/N4qVSWjppjpo61RJBv2luXgbJYQj+Rr+iETFYC6QmZ2a
   Mg9ERFqFyB3f0Ds7jEZ4RY6fGpGbyuPRTbIjFEcp3mKrvuTjVbZ4c5nzl
   1+NKaFdFjZbRz0y77A9GjvztpJ9C1aRxc7PZQR7Q87c+NBAnWpN+8j7GT
   JMP9QFUUBZkZfhR/tU6qk2gCvJXGyUxeSo5D2lxO7F0A0gDZTUk3QqbIL
   A==;
X-CSE-ConnectionGUID: X17K8XvGQr240CsP3nfAYQ==
X-CSE-MsgGUID: TfOXIoB8Q1OPb7Z45RCB+Q==
X-IronPort-AV: E=McAfee;i="6700,10204,11119"; a="39439700"
X-IronPort-AV: E=Sophos;i="6.09,175,1716274800"; 
   d="scan'208";a="39439700"
X-CSE-ConnectionGUID: 1q7LWps/TdKknyhkLjxNYA==
X-CSE-MsgGUID: 0/zSkuBlTrqDtIZdaV2zlg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.09,175,1716274800"; 
   d="scan'208";a="50321254"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lXin0o5m2b3EmPrOtdqn3BtydlwQJZtcO7HEtW/Wz9tqIUviLn9XO8Sf0W2DTxT4G2YxsNOIJ52ARhofhxFGNsV3mKohFXiC4WOy10E5bi9vKxhxx8zYe+dSbEPYxvbjoTsaL/u4gM5LouF2LxpyXPxdDTxTKcNOcUkXlbt3EnRYr3oFec9ZtOrFXETSfrDlZxjjfBPdRuM7V2Kgl5xuXmqoWMjDrHvjqS7ebDK85gi205XZapOejPrDF9MRZznABvrzzBr2OBqoY5O6coQI5ILxm6rN4PVZRhAKlLp3HOsiPZyQG4TKylXMdB+PrhAF3F62YiEzFtGNCWAgh3vmCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Bo4XGzN3eeUO9cndA08KgF2hORIOMKadIdOFygq1Lhg=;
 b=H187AIGhdgC0dLBOgJmfLf0cAPL5e+UIP/grUyvyG50L0wlMxfEb7cg3PztvX4ti6T5TLevO8mCIoDv/Z1n3Wg/8oYfD2GzdFGfutI6mwDucFE/b6BUlk0B2B4NtqQN5DOsKFay0edq4W3azc4Iua6IlzWpebciZCWlJHQZgdvqHveAgSrSs2zD4ld+UgSYaB6Z12hBIsN2yoiYKBGf7JXTjP9qDDairqHg3ItrjafB7Gam4WlWntK9rLTzWK1YrZewavHP5YBvFfTgUulTeognT+HHWws/shea3FXRja+FT0ZqIJejdYjOOERBD2/fBA5HaAEf+vR1u7CeWFbPzoQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
Date: Mon, 1 Jul 2024 16:22:19 +0800
From: Oliver Sang <oliver.sang@intel.com>
To: Christoph Hellwig <hch@infradead.org>
CC: <oe-lkp@lists.linux.dev>, <lkp@intel.com>, Jens Axboe <axboe@kernel.dk>,
	Ulf Hansson <ulf.hansson@linaro.org>, Damien Le Moal <dlemoal@kernel.org>,
	Hannes Reinecke <hare@suse.de>, <linux-block@vger.kernel.org>,
	<linux-um@lists.infradead.org>, <drbd-dev@lists.linbit.com>,
	<nbd@other.debian.org>, <linuxppc-dev@lists.ozlabs.org>,
	<virtualization@lists.linux.dev>, <xen-devel@lists.xenproject.org>,
	<linux-bcache@vger.kernel.org>, <dm-devel@lists.linux.dev>,
	<linux-raid@vger.kernel.org>, <linux-mmc@vger.kernel.org>,
	<linux-mtd@lists.infradead.org>, <nvdimm@lists.linux.dev>,
	<linux-nvme@lists.infradead.org>, <linux-scsi@vger.kernel.org>,
	<ying.huang@intel.com>, <feng.tang@intel.com>, <fengwei.yin@intel.com>,
	<oliver.sang@intel.com>
Subject: Re: [axboe-block:for-next] [block]  1122c0c1cc:  aim7.jobs-per-min
 22.6% improvement
Message-ID: <ZoJnO09LBj6kApY7@xsang-OptiPlex-9020>
References: <202406250948.e0044f1d-oliver.sang@intel.com>
 <ZnqGf49cvy6W-xWf@infradead.org>
 <Znt4qTr/NdeIPyNp@xsang-OptiPlex-9020>
 <ZnuNhkH26nZi8fz6@infradead.org>
 <ZnzP+nUrk8+9bANK@xsang-OptiPlex-9020>
 <ZnzwbYSaIlT0SIEy@infradead.org>
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <ZnzwbYSaIlT0SIEy@infradead.org>
X-ClientProxiedBy: SG2PR01CA0196.apcprd01.prod.exchangelabs.com
 (2603:1096:4:189::23) To LV3PR11MB8603.namprd11.prod.outlook.com
 (2603:10b6:408:1b6::9)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: LV3PR11MB8603:EE_|BL1PR11MB5301:EE_
X-MS-Office365-Filtering-Correlation-Id: f8750f7a-deaa-4246-f7e0-08dc99a6f60f
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|366016|1800799024;
X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?lAbrgDi/pIjh+6U0H0ujoJ9UWRpXetFUz8NjAWECuvih3NlawwHt5+kWIuLL?=
 =?us-ascii?Q?XAn5GTLeOmqnwDwCLMQeA1ZcS73SQorY6WteoB3CaEhJPqDB80FqP/yLjRAA?=
 =?us-ascii?Q?mXCiN1gRcNre58Z9Bq6EadccYUC7yV2qqbFd2v5e1dt9YcrUdEugVm2kZifb?=
 =?us-ascii?Q?u99Fu6SvFGdg3XPd2JUDNQVpyZi7R44skrlOYEbuEVjwauVqkLaixKpZ5qTY?=
 =?us-ascii?Q?pIsEKuzQvSMToijPpZ3JRZoBwAnAnjFzz/m2FsartjUvleDTIDDnft7gDSt2?=
 =?us-ascii?Q?n8I83IphqNcsxK5k5c8/l5sMm2r4Pqhv/a3Kfd6FWYfYWzGUV/yxCRI4gD+l?=
 =?us-ascii?Q?9ojyf5FarqIlRvL+N9P59MR6Pw7zqpta2XNz2usQLT5sqdFc+BfuVymmlpFQ?=
 =?us-ascii?Q?A3O9KpplVKh+0YJFOSLnJXgq9Kk4SVeGFkOp/Zt6spQGKSA7cLfZgflWyhDZ?=
 =?us-ascii?Q?0mYsv82HPe43ExpLg5/hxSksez64RtXvYr/g/+yTYn4UZJDR9/6Q3S5+D+Y3?=
 =?us-ascii?Q?jC/icAUn93mlWIMqtHGZtNwaeHwWuWYz6RePXoQqKVwfTIPIZM4epbtX7fkG?=
 =?us-ascii?Q?qAzfP7aRyzglOKvpp9K1NTWoMhcJ5VUVtivxxZbQoeYyUKDbMJgiqU97il+z?=
 =?us-ascii?Q?vEx0b8/P3cRroEWloqTaXcPZEGMPGXrHz1FZXc8RiJcjk2rPlpYx7Rz1HDoh?=
 =?us-ascii?Q?8K3ehq/dvz9L1x07ILHlktkpC6Z8+5sV4BoJeIdrDOlV7Omq9VKkoDoAH2Um?=
 =?us-ascii?Q?1YTE/VY6+7L2bmCUlvH7MPBUFYibw9k5KNV1FxKZG8eAEMhAJGe5ynpcNAbI?=
 =?us-ascii?Q?9Jm12D/Xsh98FO/xvT4FXcG3wFvZfxp0nZBIsJDTR2KzYXxbbWrSizA95bQ1?=
 =?us-ascii?Q?RnJ99+O6y9cglp9ZNZqHtZASoDsvUk/ct0hSgk8RlPnHsqDCJsLDQLBhfMqN?=
 =?us-ascii?Q?zzQJE3oKLgF4nnJn/mV+1ViLGMykVdGckkgkMUdwzVrZ2en33wVBYA5XZo0u?=
 =?us-ascii?Q?Qof6QSzZlHjV2dxu2VsUFN+sxb6vJrOrg7AFcsjZnqE0+vcLFpGWUTbE8eyC?=
 =?us-ascii?Q?DV1nyYT4oIjn1/3n+MVCIE6YHGbHr7d8ix2p01tGznvZQV1d3smR6Q0CO32I?=
 =?us-ascii?Q?iUwZ1jehJ/WP4uRIze+1rzzCV0yTMLQPPhCiJXD1sUeiZkvYJnLw5tNMPaiS?=
 =?us-ascii?Q?aV6y6T/tQ9aOjSQwfTydyQUVsEjriyDN1SPqAx2Y449KKThc5RdRO0DKAYAn?=
 =?us-ascii?Q?ppE1voNOEN9fBJ9+VvbCqCFNL//7T/E35AQ2JWdREwMw6nEwOmAljHDIo/zh?=
 =?us-ascii?Q?bys=3D?=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR11MB8603.namprd11.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: =?us-ascii?Q?BHXQ0tud/VLmoZu5Vh1R4afLEky2csE+fU7LE6wcyUHCFuk7QS4lCXVCIJbW?=
 =?us-ascii?Q?cJUL3/2rT98nOQxKO0TLPdriSuEcvRENm5+yDBA3/TP8MCRKkYsXBwnsxOpe?=
 =?us-ascii?Q?9IvZUITlj9PRis6MEutJcF0tSzVKNS+2MqdQxpAnt+ELytYcSszyaTTd2UTP?=
 =?us-ascii?Q?G1IWtmLt1vZ71kpdi5qFrPNc/lOYJLZcP/KrHOucvR8hse2Go4+fm+gKEkVS?=
 =?us-ascii?Q?DgQwWYwft33PVnUy7faLgNQ4vS4SFptp1fHD1gjNeCZnSX75ilawGPQ4jUsd?=
 =?us-ascii?Q?Mk97MoJt+/HVCnVDbQW3WT9NdaM0R6xLgj6spfWcIPnC1RHGT1172GiLph1T?=
 =?us-ascii?Q?SH1vM/3ZQPW3/NpiBBDuBijofnVqzeetITH+Nd2vywzHqtnZ4nC+MR9S/r+x?=
 =?us-ascii?Q?EG16H5E0s8sDnxhbYvUl+DNvIqyXFtT3TMi8sYJkOKC1rnsSDyNpUpcCcmfc?=
 =?us-ascii?Q?VO8UYhi4GrdKykGKJ4rsT3IJIj6Xgu5/xo34KQPLC3UuUbbl0CxPnilDJMrA?=
 =?us-ascii?Q?mPEgPz1xZGYLwSj8cyPItS+NGuXkY5UrSu/ON3sh8JqqOix8o3nPLcwcm3L/?=
 =?us-ascii?Q?kzewfuuNag+8Q6jFKtBVdii3s2yXEM+jExUJhdEEL0EZASc2cDVFK2uyIfrw?=
 =?us-ascii?Q?Ge36ZvJJpK7QgrScAlElGtK72KcNlI3sc5jDz336d92xyY/hpHpAn7yENtqe?=
 =?us-ascii?Q?z5NTJITAr4c2ptB36ggWqfQBDoN9J6ou+Te9ImeqAV6iWV6mUMAcXOKOpb8l?=
 =?us-ascii?Q?1FTGHroZJttb/we3E75WdTpG+PYB7fa8woiCRqN4RF42eXlvsniH7lKI/77z?=
 =?us-ascii?Q?fs5DAv6pR+pExPY8MdAZpNb0StQmxhHL/nAV24qbIbL6CUsujrxe4bocKMRl?=
 =?us-ascii?Q?8EDcpwFuZMYJUIvbwQ9rSvPGS4x5VN1y+bjFZeHIZJBAwbNRgtRwFFDMU5wR?=
 =?us-ascii?Q?90fAuhomphD2qE61jEA0adJR1VBuOzvbRsbQHOyZ037sVtjF7VMYfgr25SMm?=
 =?us-ascii?Q?r+xyCqmC8I56cFe0uQTpPjZBfUUNjGubzshElE7He+9kxiLV65azqnFvoa1M?=
 =?us-ascii?Q?tFIT3ZMvH5mPDU1wR1C4/fH/8nX7UF4LA0yz3QBsOIS7QZfPQ+YC+TXulUND?=
 =?us-ascii?Q?ID2rZ26eG+cOi/T31m9+PN+BTdK1w1xrwAy9sDMF2D/UHTxoIFG2OaJBPNJD?=
 =?us-ascii?Q?jycK5CWedEGQ4WSCuPzA1q+xg3R09glCVGdftvhGDT2kAbbcrmFsV5NMi9MC?=
 =?us-ascii?Q?hRchM4pmUWLVstTOFGO2q6NKzANuabta2qKcaeQUxwOnjU7WqgfmzBI0ug0X?=
 =?us-ascii?Q?LLr1yHB3+XN4DdHhFTe8hKZznmU76zyn6NUm2vK2mVkWg4p0nVGvBAUzsVcQ?=
 =?us-ascii?Q?1FlQgfNcfiDs1FQ2Bz73vKvm1C4ZyKM+IE9hjvwmD+/D19q6GdambGd2Ov7y?=
 =?us-ascii?Q?MNyn5VVgwKS7jnGiBAWnKtETxKNLRLywot3xIjjs3kbFVOWiYO8TOUKeJgs2?=
 =?us-ascii?Q?zyG7CLeRoXeUexNriW3BgXJ8oW5GQD+/lxNDCuXvAr/n4YdTVOFiHKXX4jFZ?=
 =?us-ascii?Q?72W47yPvvx7fBOKnpIEPPg1OjHEeYenNd0gALkkHw5cD06pOl/V6eDt+B9sr?=
 =?us-ascii?Q?Pw=3D=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: f8750f7a-deaa-4246-f7e0-08dc99a6f60f
X-MS-Exchange-CrossTenant-AuthSource: LV3PR11MB8603.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2024 08:22:35.6234
 (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: hoAUe/v3DmtzV8cKInT0I62Jy+Kv79UMUXBa+5EQZ/S/Plwbvm1L4f9nXoa5Aa4Vfqw0JjFtv85N3J3C3ZYjwQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5301
X-OriginatorOrg: intel.com

hi, Christoph Hellwig,

On Wed, Jun 26, 2024 at 09:54:05PM -0700, Christoph Hellwig wrote:
> On Thu, Jun 27, 2024 at 10:35:38AM +0800, Oliver Sang wrote:
> > 
> > I failed to apply patch in your previous reply to 1122c0c1cc or current tip
> > of axboe-block/for-next:
> > c1440ed442a58 (axboe-block/for-next) Merge branch 'for-6.11/block' into for-next
> 
> That already includes it.

for the patch in your previous reply [1]
the bot applied it automatically as:
* 5c683739f6c2f patch in [1]
* 0fc4bfab2cd45 (tag: next-20240625) Add linux-next specific files for 20240625

for patch set [2], the bot applied it as:
* 6490f979767736 block: move dma_pad_mask into queue_limits
* 278817f42e219b block: remove the fallback case in queue_dma_alignment
* 81afb19d619a04 block: remove disk_update_readahead
* 037d85402b8b83 block: conding style fixup for blk_queue_max_guaranteed_bio
* 4fe67425ae31a8 block: convert features and flags to __bitwise types
* e3c2d2ad4136f2 block: rename BLK_FLAG_MISALIGNED
* 33ead159243d1c block: correctly report cache type
* 6725109120e0ba md: set md-specific flags for all queue limits
*   e6d130064a02f5 Merge branch 'for-6.11/block' into for-next


but both build failed with the error:
  - "ERROR: modpost: \"md_init_stacking_limits\" [drivers/md/raid456.ko] undefined!"
  - "ERROR: modpost: \"md_init_stacking_limits\" [drivers/md/raid1.ko] undefined!"
  - "ERROR: modpost: \"md_init_stacking_limits\" [drivers/md/raid0.ko] undefined!"
  - "ERROR: modpost: \"md_init_stacking_limits\" [drivers/md/raid10.ko] undefined!"


since you mentioned the axboe-block/for-next branch has already includes the
patch-set, I got a snapshot of the branch as below several days ago:

*   bc512ae8cb934 (axboe-block/for-next) Merge branch 'for-6.11/block' into for-next   <-----------
|\
| * 18048c1af7836 (axboe-block/for-6.11/block) loop: Fix a race between loop detach and loop open
| * 63db4a1f795a1 block: Delete blk_queue_flag_test_and_set()
* | e21d05740862c Merge branch 'for-6.11/block' into for-next
|\|
| * e269537e491da block: clean up the check in blkdev_iomap_begin()
* | 9c6e1f8702d51 Merge branch 'for-6.11/block' into for-next
|\|
| * 69b6517687a4b block: use the right type for stub rq_integrity_vec()
* | c1440ed442a58 Merge branch 'for-6.11/block' into for-next
|\|
| * e94b45d08b5d1 block: move dma_pad_mask into queue_limits          <----------------
| * abfc9d810926d block: remove the fallback case in queue_dma_alignment
| * 73781b3b81e76 block: remove disk_update_readahead
| * 3302f6f090522 block: conding style fixup for blk_queue_max_guaranteed_bio
| * fcf865e357f80 block: convert features and flags to __bitwise types
| * ec9b1cf0b0ebf block: rename BLK_FEAT_MISALIGNED
| * 78887d004fb2b block: correctly report cache type
| * 573d5abf3df00 md: set md-specific flags for all queue limits       <----------------
* | 72e9cd924fccc Merge branch 'for-6.11/block' into for-next
|\|
| * cf546dd289e0f block: change rq_integrity_vec to respect the iterator  <-------------

from below, it seems the patchset doesn't introduce any performance improvement
but a regression now. is this expected?

=========================================================================================
compiler/cpufreq_governor/disk/fs/kconfig/load/md/rootfs/tbox_group/test/testcase:
  gcc-13/performance/4BRD_12G/xfs/x86_64-rhel-8.3/300/RAID0/debian-12-x86_64-20240206.cgz/lkp-csl-2sp3/sync_disk_rw/aim7

cf546dd289e0f6d2 573d5abf3df00c879fbd25774e4 e94b45d08b5d1c230c0f59c3eed bc512ae8cb934ac31470bc825fa
---------------- --------------------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \          |                \
     21493           -19.6%      17278           -19.2%      17371           -19.7%      17264        aim7.jobs-per-min



[1] https://lore.kernel.org/all/ZnqGf49cvy6W-xWf@infradead.org/
[2] https://lore.kernel.org/all/20240625145955.115252-2-hch@lst.de/

> 
> > 
> > but it's ok to apply upon next:
> > * 0fc4bfab2cd45 (tag: next-20240625) Add linux-next specific files for 20240625
> > 
> > I've already started the test based on this applyment.
> > is the expectation that patch should not introduce performance change comparing
> > to 0fc4bfab2cd45?
> > 
> > or if this applyment is not ok, please just give me guidance. Thanks!
> 
> The expectation is that the latest block branch (and thus linux-next)
> doesn't see this performance change.
> 


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:23:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:23:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751320.1159235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCJR-00054R-3w; Mon, 01 Jul 2024 08:23:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751320.1159235; Mon, 01 Jul 2024 08:23:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCJR-00054K-0k; Mon, 01 Jul 2024 08:23:01 +0000
Received: by outflank-mailman (input) for mailman id 751320;
 Mon, 01 Jul 2024 08:22:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOCJP-00053c-35; Mon, 01 Jul 2024 08:22:59 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOCJO-0001lR-VB; Mon, 01 Jul 2024 08:22:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOCJO-0000DZ-Jd; Mon, 01 Jul 2024 08:22:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOCJO-00020y-J1; Mon, 01 Jul 2024 08:22: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hsIZIOhIkhvc2Qr5KQOfenSNJofC1L/pOVT3C2fYdq0=; b=5HyMDef29HLCT7apHQhN3cjbEt
	mH3uwPrMfl9c1ZvLqRpmPKbmGuIYFxb1plnm6BR8yiTqti1XVIO4QDAJjVXZQsANKjCDMH265acTL
	19BoKVjEY+MGHS6sbpGcWc2L0DPLV7dVSvm5Fzlv1PJZ7nIhqndXGMgWdyWNsjNCaHNM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186613-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186613: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl-rtds:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=08f9b1dd9c9435d4cca006e43917245710b39be3
X-Osstest-Versions-That:
    xen=08f9b1dd9c9435d4cca006e43917245710b39be3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Jul 2024 08:22:58 +0000

flight 186613 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186613/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                   fail pass in 186588

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-rtds    15 migrate-support-check fail in 186588 never pass
 test-armhf-armhf-xl-rtds 16 saverestore-support-check fail in 186588 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186588
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186588
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186588
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186588
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186588
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186588
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  08f9b1dd9c9435d4cca006e43917245710b39be3
baseline version:
 xen                  08f9b1dd9c9435d4cca006e43917245710b39be3

Last test of basis   186613  2024-07-01 01:53:59 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:23:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:23:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751328.1159247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCJs-0005lU-LK; Mon, 01 Jul 2024 08:23:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751328.1159247; Mon, 01 Jul 2024 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 1sOCJs-0005lN-Gr; Mon, 01 Jul 2024 08:23:28 +0000
Received: by outflank-mailman (input) for mailman id 751328;
 Mon, 01 Jul 2024 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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOCJr-0004nC-2k
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:23:27 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 30759591-3783-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 10:23:26 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2ee4ae13aabso27884841fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01:23: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-70804a96a7asm5873436b3a.218.2024.07.01.01.23.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 01:23: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: 30759591-3783-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719822206; x=1720427006; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BGu0AV2x54mCK1wCYLxNLB8J9YcYsMIfFMDz0uvBAKc=;
        b=HiT5o8SPiBjoi7kc3pU56mltrgJm9VB77SkgXEeKg8PDOY5mlThEoEN41CCXxZb8qc
         p+nQX2YzBJrcaEsBAifzp10r0bpXITDrgOGJyAbljCLmsETtJJPYLJQYP29JnN3tSppQ
         UVmPSuHqgFVAewV/07yokP3UZFNwWjZKF+6PxqJAcgLT3yYdYw5cvVEGlLIPA97WKmCQ
         8w1WSFQaj280grmS+9vnP18f68mJsFDodypV8AWqzlcpLhn7URWRcqtw1GgOj1v9Gs78
         quYEfh6GsW6i6Uh2Y2kMuSb3kV9uDGfNElGt+k4PBHl4AGkcjqr8+pQ9ZMf79z01UkJE
         Pi7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719822206; x=1720427006;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BGu0AV2x54mCK1wCYLxNLB8J9YcYsMIfFMDz0uvBAKc=;
        b=IGMXZT+pYfezv5TBlePHUacxihlSHoEAE5jeopxY0aMuAZBcBHLiJmSbrm67lAd5ot
         RBn6BSJWgKglBk+MHFvqojuahNSYkDgqSzDOabNxtg1NJyZsf5iqPLLocjWDfDzIjz8C
         sp5QBp+vjQ102nGiyMsdIDYPXz5PuLtc/xh8ssVJi3pv+7EH0m6ZvA6C2xwYtM7sKUdU
         a/877AAw/rrOxRfrWHxzqf1f3XYEqXi7zwcYUVOK6HfPgbsdjS0lt9qgk8wf+VEYireA
         PxcxmqQC920LvzkJpp1mLsK+9ezUPXsZjA3ZpKbCbef9kG3PKbau2kvI0IudNjb6nUkK
         p8vg==
X-Forwarded-Encrypted: i=1; AJvYcCVRsJDZjkGLRpkI6Sdn0CrPwT4nKKpXUlIfszkPxIwu6atfPtdqBgoMQM44cvkuHJe1ZhxL1JiZHB2o9bIapafvKlRV9fEaBQhpzp+tPGE=
X-Gm-Message-State: AOJu0YweD8xyA6pJUCnNmqg6hhsoDWWY/RPo9Fwl7qWsGUsTGA2D/jm8
	9ulAjKrn9O+VKopIUn4rNCnXXZce9pTUGraJHTOlqLxkINqfMKuNiKWgXUrIpQ==
X-Google-Smtp-Source: AGHT+IGE4ql/li6qInGXUqm8YaBYhHyxoQcvfAGIB3Ri0tOr5ZVtad+eZoJ5yNKW277tVQgHoFYvdg==
X-Received: by 2002:a05:651c:1509:b0:2ec:5603:41a with SMTP id 38308e7fff4ca-2ee5e345927mr32460501fa.2.1719822206047;
        Mon, 01 Jul 2024 01:23:26 -0700 (PDT)
Message-ID: <9e629240-dd9e-476c-93ea-81086bb73f91@suse.com>
Date: Mon, 1 Jul 2024 10:23:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] common/softirq: address violation of MISRA C Rule
 13.6
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1719308599.git.alessandro.zucchelli@bugseng.com>
 <ab8b527c775fbb7681a4658828d53e7e3419be10.1719308599.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ab8b527c775fbb7681a4658828d53e7e3419be10.1719308599.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.06.2024 12:14, Alessandro Zucchelli wrote:
> In the file common/softirq macro set_bit is called with argument
> smp_processor_id.
> Once expanded this set_bit's argument is used in sizeof operations
> and thus 'smp_processor_id', being a macro that expands to a
> function call with potential side effects, generates a violation.

Noticing only now, but applicable also to patch 2: "expands" isn't quite
right, is it? That's true for x86, but apparently not for Arm. Unless I
managed to overlook something there. So perhaps "may expand" instead?

> --- a/xen/common/softirq.c
> +++ b/xen/common/softirq.c
> @@ -139,7 +139,8 @@ void cpu_raise_softirq_batch_finish(void)
>  
>  void raise_softirq(unsigned int nr)
>  {
> -    set_bit(nr, &softirq_pending(smp_processor_id()));
> +    unsigned int cpu = smp_processor_id();
> +    set_bit(nr, &softirq_pending(cpu));
>  }

Nit (style): Blank line between declaration(s) and statement(s) please.

I guess both aspects could be taken care of while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:25:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:25:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751339.1159255 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCLf-0006Rm-V6; Mon, 01 Jul 2024 08:25:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751339.1159255; Mon, 01 Jul 2024 08: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 1sOCLf-0006RE-SF; Mon, 01 Jul 2024 08:25:19 +0000
Received: by outflank-mailman (input) for mailman id 751339;
 Mon, 01 Jul 2024 08:25: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=1OIh=OB=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sOCLe-0006R3-Mx
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:25:18 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70e2b01a-3783-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 10:25:16 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id E4BFD19E1B;
 Mon,  1 Jul 2024 04:25:13 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id DD30B19E1A;
 Mon,  1 Jul 2024 04:25:13 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [46.211.5.251])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id 7E52C19E19;
 Mon,  1 Jul 2024 04:25:10 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70e2b01a-3783-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:mime-version:content-transfer-encoding;
	 s=sasl; bh=zjWAT/kxmJqbEXZbahfspC9tyZt5NOyCrJQMNAB7xII=; b=QKhg
	b2EyWYiV6veseM4oqBBaR4p97pnzokLTOTvbidu8KkEjntBDqozb0TJVEX0x8uTk
	fOEheJWizca+89NkMVWzi7EWX4uNlMXrEMprYuMeXgnlVSM8Jwwuq4jurIo8bSU1
	lP+vbuhh7Sho9AoUIahIdU/F3mB3LHfbG4c7B5Q=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v2] x86/intel: optional build of TSX support
Date: Mon,  1 Jul 2024 11:25:06 +0300
Message-Id: <20240701082506.190941-1-Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
X-Pobox-Relay-ID:
 6E77753A-3783-11EF-BE1A-C38742FD603B-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

Transactional Synchronization Extensions are supported on certain Intel's
CPUs only, hence can be put under CONFIG_INTEL build option.

The whole TSX support, even if supported by CPU, may need to be disabled =
via
options, by microcode or through spec-ctrl, depending on a set of specifi=
c
conditions. To make sure nothing gets accidentally runtime-broken all
modifications of global TSX configuration variables is secured by #ifdef'=
s,
while variables themselves redefined to 0, so that ones can't mistakenly =
be
written to.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v2:
 - updated command line doc
 - updated patch description
 - make tsx_init() stub one line
---
 docs/misc/xen-command-line.pandoc    | 2 +-
 xen/arch/x86/Makefile                | 2 +-
 xen/arch/x86/include/asm/processor.h | 6 ++++++
 xen/arch/x86/spec_ctrl.c             | 4 ++++
 4 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-li=
ne.pandoc
index 1dea7431fa..2dc946a35d 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2584,7 +2584,7 @@ pages) must also be specified via the tbuf_size par=
ameter.
 ### tsx
     =3D <bool>
=20
-    Applicability: x86
+    Applicability: x86 with CONFIG_INTEL active
     Default: false on parts vulnerable to TAA, true otherwise
=20
 Controls for the use of Transactional Synchronization eXtensions.
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index d902fb7acc..286c003ec3 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -67,7 +67,7 @@ obj-y +=3D srat.o
 obj-y +=3D string.o
 obj-y +=3D time.o
 obj-y +=3D traps.o
-obj-y +=3D tsx.o
+obj-$(CONFIG_INTEL) +=3D tsx.o
 obj-y +=3D usercopy.o
 obj-y +=3D x86_emulate.o
 obj-$(CONFIG_TBOOT) +=3D tboot.o
diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/=
asm/processor.h
index c26ef9090c..66463f6a6d 100644
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -503,9 +503,15 @@ static inline uint8_t get_cpu_family(uint32_t raw, u=
int8_t *model,
     return fam;
 }
=20
+#ifdef CONFIG_INTEL
 extern int8_t opt_tsx;
 extern bool rtm_disabled;
 void tsx_init(void);
+#else
+#define opt_tsx      0     /* explicitly indicate TSX is off */
+#define rtm_disabled false /* RTM was not force-disabled */
+static inline void tsx_init(void) {}
+#endif
=20
 void update_mcu_opt_ctrl(void);
 void set_in_mcu_opt_ctrl(uint32_t mask, uint32_t val);
diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index 40f6ae0170..6b3631e375 100644
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -116,8 +116,10 @@ static int __init cf_check parse_spec_ctrl(const cha=
r *s)
             if ( opt_pv_l1tf_domu < 0 )
                 opt_pv_l1tf_domu =3D 0;
=20
+#ifdef CONFIG_INTEL
             if ( opt_tsx =3D=3D -1 )
                 opt_tsx =3D -3;
+#endif
=20
         disable_common:
             opt_rsb_pv =3D false;
@@ -2264,6 +2266,7 @@ void __init init_speculation_mitigations(void)
      * plausibly value TSX higher than Hyperthreading...), disable TSX t=
o
      * mitigate TAA.
      */
+#ifdef CONFIG_INTEL
     if ( opt_tsx =3D=3D -1 && cpu_has_bug_taa && cpu_has_tsx_ctrl &&
          ((hw_smt_enabled && opt_smt) ||
           !boot_cpu_has(X86_FEATURE_SC_VERW_IDLE)) )
@@ -2271,6 +2274,7 @@ void __init init_speculation_mitigations(void)
         opt_tsx =3D 0;
         tsx_init();
     }
+#endif
=20
     /*
      * On some SRBDS-affected hardware, it may be safe to relax srb-lock=
 by
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:25:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:25:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751342.1159266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCM2-0006tP-6F; Mon, 01 Jul 2024 08:25:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751342.1159266; Mon, 01 Jul 2024 08:25: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 1sOCM2-0006tG-3C; Mon, 01 Jul 2024 08:25:42 +0000
Received: by outflank-mailman (input) for mailman id 751342;
 Mon, 01 Jul 2024 08:25: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=VC/5=OB=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sOCM0-0006R3-L7
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:25:40 +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 7f6cc712-3783-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 10:25:39 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a6fe617966fso227516166b.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01:25:39 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72aaf18c99sm308790966b.2.2024.07.01.01.25.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 01:25: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: 7f6cc712-3783-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719822338; x=1720427138; 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=P2HT4hATmlGuJxaDUc5KV1URVwYIGXkgBvqpIWR1IlU=;
        b=czzzStDKalPFCdbAyXOXHL7rl3rXeETLkVkdG+MSzoe1EJHmHop04gFfv/e6clH8Sd
         E57jb4KfAnZWiucroi4jQt7wt7M9/C8R/XqSy4mCzoAOkD7+XDHTRXD7xCKFOk5m7kjv
         MzYXtR9rCuM5gZuIWaPm/U8Ee+aAwJvOi2f5YjVAsVsng+Q4W4eZiSCHZjW2tEFv3v1j
         eG9IGo4Lzi3OYy2hcDmgRXKqTh40oQ4LaJLQBKaUrQ5VJ2T+A6Q/g0EKPf0NToAbRa2f
         vep8oARz2GHzfswSTM/ptXguxzLVwe+alA6bbZpc0HuRofOg7MtGbligM46ycITS3nTd
         kCzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719822338; x=1720427138;
        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=P2HT4hATmlGuJxaDUc5KV1URVwYIGXkgBvqpIWR1IlU=;
        b=EsgVGz0C7MYJo/0EbCyTS6+KZ6i4lzTHQiyCtqKHXtGfBKiTn19Z3gMrsvH/Uweruz
         N1JlD+HciWj5XnkpbReMbZJvXLlPVyRPseded1iI1eYcCExn8IYEexUliB0Crycd2K1h
         JufhD9D9rp4vW0nBTDn/5T/Q9lraGf9mupLSHtCbTj8fD0mknuRT5X+PnTxi4jMz6ytU
         y+3rrrS7uj8uQ4SbMqIGq1gdlK2SQc6/o6PFxo05alxk7rMjEW1qlrydchdYBud3+a5n
         J3UdRjUdX3sHfozsqGAWTI4ojrrOzKuCw/284hnXxSw+9UvN5Jn3dAf4nZrdqBgc0mxL
         Wsng==
X-Forwarded-Encrypted: i=1; AJvYcCWSeOMoOGGQ4Ii7rEXnvMCRpzjd54SEe4voAdGIcO883vIcBamNCUYHJQiOZMK3ld9byyJrsiWhXQ+8WFH5rW7qjda+YADsm2vAIDrWcGE=
X-Gm-Message-State: AOJu0YydrnpaN7x1V9xZeaTEM3J9G7kfQ9zDO+P3yqyRKoM2ieSmCL36
	BCj+1t0db87jNeCrFkXY/PhNwVRRrKvIOveZSFHQwkx60Oqp6z+MLldmNL3RDnk=
X-Google-Smtp-Source: AGHT+IFNIGavJzId+B0jfQxw7gW2PaPV3S5uawQ3l+IpGLodohtrkmAXLbHIsdTAntg4ZVBTEfEO8Q==
X-Received: by 2002:a17:906:d78a:b0:a6e:ffa2:3cce with SMTP id a640c23a62f3a-a7514498cb1mr267074666b.41.1719822338499;
        Mon, 01 Jul 2024 01:25:38 -0700 (PDT)
Message-ID: <098c5197-bd3e-439a-ae4c-72e05a06a9a7@suse.com>
Date: Mon, 1 Jul 2024 10:25:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/xen/time: Reduce Xen timer tick
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>, x86@kernel.org,
 Dave Hansen <dave.hansen@linux.intel.com>, Borislav Petkov <bp@alien8.de>,
 Ingo Molnar <mingo@redhat.com>, Thomas Gleixner <tglx@linutronix.de>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
References: <20240619104015.30477-1-frediano.ziglio@cloud.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240619104015.30477-1-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 19.06.24 12:40, Frediano Ziglio wrote:
> Current timer tick is causing some deadline to fail.
> The current high value constant was probably due to an old
> bug in the Xen timer implementation causing errors if the
> deadline was in the future.
> 
> This was fixed in Xen commit:
> 19c6cbd90965 xen/vcpu: ignore VCPU_SSHOTTMR_future
> 
> Usage of VCPU_SSHOTTMR_future in Linux kernel was removed by:
> c06b6d70feb3 xen/x86: don't lose event interrupts
> 
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:28:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:28:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751355.1159276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCOP-0007rF-I9; Mon, 01 Jul 2024 08:28:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751355.1159276; Mon, 01 Jul 2024 08: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 1sOCOP-0007r8-FA; Mon, 01 Jul 2024 08:28:09 +0000
Received: by outflank-mailman (input) for mailman id 751355;
 Mon, 01 Jul 2024 08: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOCOO-0007r2-EN
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:28:08 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7d25faa-3783-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 10:28:07 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2ec3f875e68so29517251fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01:28: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
 98e67ed59e1d1-2c91ce58877sm6214299a91.24.2024.07.01.01.28.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 01:28: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: d7d25faa-3783-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719822487; x=1720427287; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DYOZ3ba9S50aybfiuJn0F5npBITmXzlQJcK+ppIxMxM=;
        b=cyfiCfsMuF3LFhwm5IMY2EsQrPGFoIPoqQvw6+QuBl55amaOoNwsP6Su6DksjW2A8S
         633uhjzjWiol5c2PTRgM4OQndRzp6Ovpkza89CNG1l6DabCyih44V722Swb2stlpwJuY
         1rVyweCffnAmm++q+/Ib4842WlQUnDG6sqyjZ8DYwGyjZEEqlFENPVzAt+ixMykvRmDb
         iNRTjUdEyUts8CfizC9XNkNN4D66o80+NchX5TMdrXEDiR5m535UczSnlsHfKFPyX9YF
         uQXpHnzXI4BevjNRGql+la89SShO1EA03p3F0IsKcDcAE4LLMEU96OSi+ml805QFAGz4
         HY7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719822487; x=1720427287;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DYOZ3ba9S50aybfiuJn0F5npBITmXzlQJcK+ppIxMxM=;
        b=plA8kKvY9ussfL5zmDwLoO/lZpXZQDPLbQ8JsW/1cGKzBossr31YgzPmUN2t7VfuDT
         8l2s/4WQC8h73kxBzohltfKXAdyKdkrXlEJ96uSlNc7d6HiGU8HhhDGy6v9NSgIsnJOg
         fhrJlhd5suru2B7/2jlLXxZj5YYWWjOsV2/2exNTnn+XzUskJKs4zP3QaafRJU/epYXg
         PQo15/lMOizFmIRZ1wvGViGVoV3SVfGK3bf6z9tXBfcj8xRsJ6AylK/MakTOt35nXVvI
         1spw8Vot5HhOnUsYO+3SawbIwOfFXcrRTy6Uy423TFt77YK/sHNjvlLcYFR7iNaHOnxy
         id6w==
X-Gm-Message-State: AOJu0Yw+Z2+i4zRpq3WTVytW8bZPJ/Bc3yqtiS9apkDQRws9ekRPZxNR
	eZTcuNLSt4wh1+FKiWY0dNAhSAv5qtO9Q2QVFoTu9VtnDXvjJcoP7nyhiHezhQ==
X-Google-Smtp-Source: AGHT+IHh78yMd0+moK9L22taZZ2RMB/zzILelwlxZkHEeiYLgWuPVLCH80df+J+n8VtX4IESste45g==
X-Received: by 2002:a05:651c:2203:b0:2ec:557b:f8a0 with SMTP id 38308e7fff4ca-2ee5e6ba61emr37471451fa.38.1719822486894;
        Mon, 01 Jul 2024 01:28:06 -0700 (PDT)
Message-ID: <37478823-39d1-44a9-8e73-1afa40554a4d@suse.com>
Date: Mon, 1 Jul 2024 10:27:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2] x86/mctelem: address violations of MISRA C: 2012
 Rule 5.3
To: 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,
 Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <94752f77597b05ef9b8a387bf29512b11c0d1e15.1719398571.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2406261757480.3635@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.2406261757480.3635@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.06.2024 02:57, Stefano Stabellini wrote:
> On Wed, 26 Jun 2024, Nicola Vetrini wrote:
>> From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
>>
>> This addresses violations of MISRA C:2012 Rule 5.3 which states as
>> following: An identifier declared in an inner scope shall not hide an
>> identifier declared in an outer scope.
>>
>> In this case the gloabl variable being shadowed is the global static struct
>> mctctl in this file, therefore the local variables are renamed to avoid this.

"global" and "static" contradict one another; I think you mean "file scope".
While there (nit) also s/gloabl/global/ or perhaps even s/gloabl// to deal
with the conflict with "static" also there (without writing "file scope"
twice).

>> No functional change.
>>
>> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Nice one!
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

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

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:37:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:37:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751360.1159285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCX6-0001Xk-Bc; Mon, 01 Jul 2024 08:37:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751360.1159285; Mon, 01 Jul 2024 08: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 1sOCX6-0001Xd-92; Mon, 01 Jul 2024 08:37:08 +0000
Received: by outflank-mailman (input) for mailman id 751360;
 Mon, 01 Jul 2024 08:37: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOCX4-0001XX-U8
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:37:06 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18ad9a18-3785-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 10:37:06 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2ec10324791so29954291fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01:37: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
 d9443c01a7336-1fac10d1b56sm58838335ad.41.2024.07.01.01.37.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 01:37: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: 18ad9a18-3785-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719823025; x=1720427825; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rqmjRYPX55NC1VdfXv+gSUiQiNh1rFhMeD27+CCOB7U=;
        b=G4hdG1KdazuFWK+JiGC8hlHDKVKkVEOhQAxgPKBFjYb9jrwxCt1Dj7ijPDNxyKlnBK
         o1SL6fO45eLyyvEfKVcbRCNF0a88EktFKR+VfEZXOoozm7ezhNGUoOgbHUpjIkqcKADm
         2tggxEsBJO9kY94Q7OQd9VqZ9XRjIDgMWpWkwWpXthX2n8CLenJ0NC5Ssmgr2FmJdgiK
         Dah/WYls5D4MjoKdQVBhzgOLp/RoUKG1Ma8Ejl3aJasawV+UNXQB1HmwPUmgjvdC55bn
         lelDcudu4YELwO+yKOW+eRS7cfDC9JUhgJepTmulfLe8ERe/nqdYJmnKDjoUGJ17oDD2
         jsew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719823025; x=1720427825;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rqmjRYPX55NC1VdfXv+gSUiQiNh1rFhMeD27+CCOB7U=;
        b=NuOQsoycLBqzx7J5RNDdoxOt8nBoqnxKs2UpIIUiZCYqlQmWeFEWkl2y1js/IEv8jx
         eMesfzh0JHyqM6ar/752XJmXYXm9k1AAq3uFruMlOKWC99ROK8CvYnleZ02yYnMfigrk
         KjqYTTuojUQMsp2sAkclMnOXN6jUPPUBMbCvo8ugJkV7NyHpjZvvMfslPr7gZzCY83+k
         x2psDYUoTGjuFzkygAlUs7FzUUO1FqJ2gD++/mtixVU/ksZhOHHB/rUsm5mroA4d4/Dx
         EHeG0e/vpcbMri3FuPboTirSgoHS9V63Orh7eM36QHlSU4u2irCRUQrKtmiEhOYa0YFa
         qhTw==
X-Forwarded-Encrypted: i=1; AJvYcCUrKrvmkyMDBs1f2zHkxN+6EGWRSEVy5Y8Rz7LCss4iCzrymXuauyubyykStPQ8i5IVaCfq/DEn5y3/WShf0VvA6Q3NDQT9XofLY2UnKdo=
X-Gm-Message-State: AOJu0YzCMnyJ2OIvAYdgNwlE1RZ13nGdu14BM0Yjf/hFwV2MVLa+VJuY
	8hNh7+9145jZEBpQzNK6+8tN59gEgbdShxvLvRn7/Cl2eT/6gDTqlUAWzt7ZYg==
X-Google-Smtp-Source: AGHT+IFSe2/0wjlXeosT6AybjaRDblBBqLYzSTq/pghMZUSFXaoYJaYUUu+wks1Pjo3vEOz64TkZAw==
X-Received: by 2002:a05:651c:807:b0:2ec:5258:e890 with SMTP id 38308e7fff4ca-2ee5e6cd9f0mr22383351fa.44.1719823025021;
        Mon, 01 Jul 2024 01:37:05 -0700 (PDT)
Message-ID: <38b57a6f-187c-440a-b3b4-9e7e124e1802@suse.com>
Date: Mon, 1 Jul 2024 10:36:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2] x86: p2m-pod: address violation of MISRA C Rule
 2.1
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: sstabellini@kernel.org, michal.orzel@amd.com, xenia.ragiadakou@amd.com,
 ayan.kumar.halder@amd.com, consulting@bugseng.com,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <43b3a42f9d323cc3f9747c56e8f59f9dffa69321.1719556140.git.nicola.vetrini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <43b3a42f9d323cc3f9747c56e8f59f9dffa69321.1719556140.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.06.2024 08:30, Nicola Vetrini wrote:
> The label 'out_unmap' is only reachable after ASSERT_UNREACHABLE,
> so the code below is only executed upon erroneously reaching that
> program point and calling domain_crash, thus resulting in the
> for loop after 'out_unmap' to become unreachable in some configurations.

First: As you have come to be used to, briefly stating the rule itself
(rather than just its number, requiring people like me - who have not
memorized all the rule numbers - to go look up what rule this is) would
be nice.

This being about unreachable code, why are the domain_crash() not the
crucial points of "unreachability"? And even if they weren't there, why
wouldn't it be the goto or ...

> --- a/xen/arch/x86/mm/p2m-pod.c
> +++ b/xen/arch/x86/mm/p2m-pod.c
> @@ -1040,6 +1040,7 @@ out_unmap:
>       * Something went wrong, probably crashing the domain.  Unmap
>       * everything and return.
>       */
> +    /* SAF-8-safe Rule 2.1: defensive programming */
>      for ( i = 0; i < count; i++ )
>          if ( map[i] )
>              unmap_domain_page(map[i]);

... the label (just out of context) where the comment needs to go?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:40:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:40:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751367.1159295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCa2-0003uU-V3; Mon, 01 Jul 2024 08:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751367.1159295; Mon, 01 Jul 2024 08:40:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCa2-0003uN-SQ; Mon, 01 Jul 2024 08:40:10 +0000
Received: by outflank-mailman (input) for mailman id 751367;
 Mon, 01 Jul 2024 08:40:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOCa2-0003uH-5P
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:40:10 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8561053e-3785-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 10:40:08 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2ec50a5e230so26999221fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01:40: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
 d2e1a72fcca58-708043b7100sm6106809b3a.142.2024.07.01.01.40.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 01:40: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: 8561053e-3785-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719823207; x=1720428007; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=T02acu+fGaoZC0noiV85EPLSUSsf1TLhR67ONqWJsMw=;
        b=fdFQ8njRgoT6jGCQyJGKXXmF6mYuQjG/m35zGy7OKjMJXt+O8CLO5kZz7BQ9P80HTW
         p+f9woSoDZ9+7+W8YfMeosooKfWkvoTvmqbcQleUR7uI7HsoPYe2hGHnna29jc5EFsRS
         03lE3pGUxELgjka49ih9Fj2RE0Zv+4BGxU22HynHGZVBSGpzVLOxwPXXCCvqfXjRvtYw
         lHhhRDzJucBznj0sJqc7/n4gsrGW+8zZ7pXUBMMjQFatTHZm/QoeD/GmkbzURVPYLEni
         8ck+5ZfZJh00E3qe9QIHh3bJV8vQoNgMkPZGXLGDs3uSxYSd66DhL+97QqKdTN5MKZ2w
         H7UQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719823207; x=1720428007;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=T02acu+fGaoZC0noiV85EPLSUSsf1TLhR67ONqWJsMw=;
        b=rcCp1Uh/TZqb6RQQcg6LtoH2qw+lcSQA4+fjpkIbLHPFbtsZHJqhG9d87/19tBLuZ5
         3+pebKVLpkmdHoJ5EwdMariwLs7Lr1GpfRx1fRlq/nmDHftvVnFiXcEwRTXH9KDeJaYA
         LktEt1QMp6mPOjxrfKNLi0vjGThuCHbc5cWWfD6NSBl06+sCtpodkMR4QcbBzA46Tkcf
         23z4yHQAfsfLyx5gnZK49I1vmEQrwV6usINnUQqTRqStcwLq0O/GtturWky1WRlnZIoE
         0bOKU3ZrJ1SYVeTYaWwc9dlLF7Tn4CeN5xGQfgkd/aHqTYXhI3LMawENo+bag14p6X05
         5Biw==
X-Forwarded-Encrypted: i=1; AJvYcCUdhym/Z21CAKyAwTfPL18dfdR9BeaZX/XAgUE4kjAyTr6tDKc4omm4WcPV9XYFXPsPUeK2a62qRyy5n5rR+5KYwAdUmbzVBZfphx3ABHg=
X-Gm-Message-State: AOJu0YzHq0eerT3+gtwbEvQO5WSN0pGjiVX2V87W3rVcnY0hN/TB8CX/
	AavDy/adEmSQl8NA4rSAPj7/DeYmyvBcP4CnpYr5ybS5bpxAD1F0HOMtpOF+4g==
X-Google-Smtp-Source: AGHT+IHj4SyNwMPatOYxONxiSH4xMYA0AxL9VGX8nw14dBHz8ab6fUc4d7hDZ5E9xiHWhl6ZUzEmeQ==
X-Received: by 2002:a2e:bc19:0:b0:2eb:d924:43fb with SMTP id 38308e7fff4ca-2ee5e6bc6f7mr38313781fa.41.1719823207503;
        Mon, 01 Jul 2024 01:40:07 -0700 (PDT)
Message-ID: <ab694645-1c38-43a6-8f4e-1c7a8470b0e7@suse.com>
Date: Mon, 1 Jul 2024 10:40:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 04/12] x86/vpmu: address violations of MISRA C Rule
 16.3
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719383180.git.federico.serafini@bugseng.com>
 <b42004216d547e24f6537450a1c98176a821f704.1719383180.git.federico.serafini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b42004216d547e24f6537450a1c98176a821f704.1719383180.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.06.2024 11:27, Federico Serafini wrote:
> Add missing break statements to address violations of MISRA C Rule
> 16.3: "An unconditional `break' statement shall terminate every
> switch-clause".
> 
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:42:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:42:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751371.1159306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCbq-0004RF-AD; Mon, 01 Jul 2024 08:42:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751371.1159306; Mon, 01 Jul 2024 08: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 1sOCbq-0004R4-7X; Mon, 01 Jul 2024 08:42:02 +0000
Received: by outflank-mailman (input) for mailman id 751371;
 Mon, 01 Jul 2024 08: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOCbo-0004Qy-Ks
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:42:00 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c75b98fd-3785-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 10:41:58 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2eaa89464a3so28482091fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01: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
 d9443c01a7336-1fac15389a8sm59308365ad.176.2024.07.01.01.41.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 01: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: c75b98fd-3785-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719823318; x=1720428118; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MpdFJkUFLFW/PgH6rB/uLN09yl1+avOBdQMVhFfoCXk=;
        b=U5gKBhqmRnEtY31QNakTRxFjnVsQRJkwd1Hcx9a9Grk7zftJdGlumnOqSbHskW3HqP
         FT6Xb5uMgdqtY5w0nGRVXQ+UFpZtuY9cKRu7z6MB552vpPvOa9d75J7S7uGNgqHlBdJq
         iAF8gIowPW7eUOqCtd+J+ZYwsQann/ej4jtbpZPgeGb9G1kmdpkq8KDJ1HOpqJ6rU4yS
         rIS2hSXTG46o8UuxiZ3ns/szzhiTQlwA2sr84zAyo30TJqThTk1vCy4cWOQ1WYEOMk/c
         zWI00fSO2Qsu2BQWCnf36HC7AE0o+rqDyZZSZLnWWi9PAwEBE2MhiX0AeZsg/sRzZSWU
         wfqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719823318; x=1720428118;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MpdFJkUFLFW/PgH6rB/uLN09yl1+avOBdQMVhFfoCXk=;
        b=EOs/KSi+QF6Dsaeg+jPfBEt6bJnW/RSnxNvQhWcCgBlssSjEd0cppq6KRjjq858dPp
         AOJk9ioPW6IsP2A3/Bqto/akzwi1M0ZkFJZynsAuypJpfELJQddlgv/Bj+ACpPF1MfJe
         5UE0++tMEepqXW/JUDo67Vsz3aJjQ/FTtvPy8/esyMJ4N79kK7IQRv9XJxtecE96kBLJ
         pG+utxU8PneTu2FaCoEzPAacSuqm5H0jxgBClHYvV/KO9gwFMr+kx9UBa9JpEgJ59nEd
         dCyXV5SSWdHB3UGQVTnsYAIblMWMVi43kPffb1uUHMMwMfy9k1UgaR7NwAx3FAdcAOfy
         oTkA==
X-Gm-Message-State: AOJu0YysdXhGMZo3dbK1547pO1ZIpUan4tHHwX4OE67+/B8i36SNWW4F
	Ao0U6nK1dKfhMztgBoAai2GrqFe2Jij69i4cyreO/tHiEtKXqw0IDG9P0nyB3QjV0UYGA11zpkY
	=
X-Google-Smtp-Source: AGHT+IGOcvpBNc9EXevNoo5ThUmu6uhZTXedeYFaKZAFplmtoycdGzr8bj5IAd6NDJeP0aKPLttkqw==
X-Received: by 2002:a2e:a605:0:b0:2ec:559d:991 with SMTP id 38308e7fff4ca-2ee5e6f7af0mr26743011fa.50.1719823318236;
        Mon, 01 Jul 2024 01:41:58 -0700 (PDT)
Message-ID: <9871db38-0274-4267-a4fd-eb2c6dbdd5ea@suse.com>
Date: Mon, 1 Jul 2024 10:41:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 05/12] x86/traps: address violations of MISRA C
 Rule 16.3
To: Stefano Stabellini <sstabellini@kernel.org>,
 Federico Serafini <federico.serafini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1719383180.git.federico.serafini@bugseng.com>
 <e7aea6bacb9c914a06a929dfe3606f7cc360588f.1719383180.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2406261751370.3635@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.2406261751370.3635@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.06.2024 02:52, Stefano Stabellini wrote:
> On Wed, 26 Jun 2024, Federico Serafini wrote:
>> Add break or pseudo keyword fallthrough to address violations of
>> MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
>> every switch-clause".
>>
>> No functional change.
>>
>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>> ---
>> Changes in v3:
>> - use break instead of fallthrough.
>> ---
>>  xen/arch/x86/traps.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
>> index 9906e874d5..d62598a4c2 100644
>> --- a/xen/arch/x86/traps.c
>> +++ b/xen/arch/x86/traps.c
>> @@ -1186,6 +1186,7 @@ void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
>>  
>>      default:
>>          ASSERT_UNREACHABLE();
>> +        break;
> 
> FYI the ASSERT_UNREACHABLE is still being discussed

Could you clarify what this means for this patch and you R-b? Is it somehow
conditional upon the outcome of that discussion, and hence you'd rather not
see this patch go in yet?

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

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

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:47:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:47:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751378.1159316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOChT-00058j-Ua; Mon, 01 Jul 2024 08:47:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751378.1159316; Mon, 01 Jul 2024 08: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 1sOChT-00058c-RZ; Mon, 01 Jul 2024 08:47:51 +0000
Received: by outflank-mailman (input) for mailman id 751378;
 Mon, 01 Jul 2024 08:47:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOChS-00057h-Em
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:47:50 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97c7b17c-3786-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 10:47:48 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2ebe0a81dc8so36988381fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01:47: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
 41be03b00d2f7-72c69b53bf2sm3957364a12.2.2024.07.01.01.47.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 01:47: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: 97c7b17c-3786-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719823668; x=1720428468; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3N44dv4jm8TiQG5tTnIpJMOe6ZctV9pz5x1SDWPXP+Y=;
        b=bDf8BA1w1kSXJEcRNk3BEk/zeuF/SJwaP2aeS5JUqxcuaVBp2sgCDS4X91Tcu9d9HD
         B3aqUG1jSn3kNvm0Tx8VadMm6Y/40rgJP7u2LJI7CWvFCJfxFJGdvssFK3OkQsh4W8rO
         xDgnOLWAzo+iVZPrtrlhYK67IL7vTbJ2otGRQtei18Ns7SBWgF9l9q+X8HZ94MyoVKGv
         7MReMqeO453uE71JKrjwKM7wtopLiQbc8gRqe3jl6srIo4bG72Ul60IOSqrqsQtpucTe
         3/jzMmfXZd0LboNPL1/Mc5kiJOXd60+zEJMOvzK4ZhwoMWHBMwrStDvcH7bCbjJYro9c
         n8Lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719823668; x=1720428468;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3N44dv4jm8TiQG5tTnIpJMOe6ZctV9pz5x1SDWPXP+Y=;
        b=h1WQ8s1SD6RGkElfYKeSY3S48+mb/eXMBQIYaP5SGDdeJh5iO6gGqoHbXJTfYczm8c
         5eTs3Jl3TDkxH4ViQH5zyBySesrFa5exnsPfsWSAlspMAV8+APnubeWl3g/rYuV/isfN
         WHgI9N+Htq9f7faM8OmCP4pzIRgtxVll3RHf+Ug9JwzLYYmHg5jA2gw0sN4dtaN+Onfa
         2irKewCob1k74gE02U7plt5D6sWSdLxgZsoxio8M5ItW7808DiLYZd9NRZVpe4sixv5k
         +nXmo2D9t76Ntjo3eVh/X6e5BKIjoFZNVbn20HEnFpX3iLheQQlg0sUVpTfn6uaRRGCk
         aYrw==
X-Forwarded-Encrypted: i=1; AJvYcCWhYreZtJP1W+Rrg57CGrp1tYYPzHM+iRB4CNhTMT2cMwOFLrY0LoU0GPHRoODGYRYVmANyeTOmteLhQ+u+Z1caxe8g7qyHKrNkNgqPF4k=
X-Gm-Message-State: AOJu0Yw+7XmUJgjqKtEWL7X0HjjJ+0eOESF7vwiJ6rhs6KhIrZxFEdtv
	lPl16AI9tXpKfN0XxI2fA+PGGIioui/UwORQGdeymzI3tz1P2MwbxWeG1xlg8g==
X-Google-Smtp-Source: AGHT+IGL/E46BFvOgFXyUotFUORaiWMTGjzSDFj8mvqxD6k3zxX0Bww7f12V9+1KJ+LK3TEJVS2hlA==
X-Received: by 2002:a2e:b00e:0:b0:2ec:5785:ee97 with SMTP id 38308e7fff4ca-2ee5e707ddemr35225031fa.53.1719823667888;
        Mon, 01 Jul 2024 01:47:47 -0700 (PDT)
Message-ID: <2c60ef16-e17c-48dd-911a-d1734aed6da5@suse.com>
Date: Mon, 1 Jul 2024 10:47:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 07/12] x86/hvm: address violations of MISRA C Rule
 16.3
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719383180.git.federico.serafini@bugseng.com>
 <87cfe4d3e75c3a7d4174393a31aaaf80e0e60633.1719383180.git.federico.serafini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <87cfe4d3e75c3a7d4174393a31aaaf80e0e60633.1719383180.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.06.2024 11:28, Federico Serafini wrote:
> @@ -2798,11 +2800,12 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
>          hvio->mmio_insn_bytes = sizeof(hvio->mmio_insn);
>          memcpy(hvio->mmio_insn, curr->arch.vm_event->emul.insn.data,
>                 hvio->mmio_insn_bytes);
> +        fallthrough;
>      }
> -    /* Fall-through */
>      default:

Can you clarify for me please whether this arrangement actually helps?
I'm pretty sure it'll result in a Coverity complaint, as my understanding
is that for them the marker (comment or pseudo-keyword) has to immediately
precede the subsequent label. IOW even if you confirmed that Eclair is
smarter in this regard, it may still need converting to

        hvio->mmio_insn_bytes = sizeof(hvio->mmio_insn);
        memcpy(hvio->mmio_insn, curr->arch.vm_event->emul.insn.data,
               hvio->mmio_insn_bytes);
    }
        fallthrough;
    default:

> --- a/xen/arch/x86/hvm/hypercall.c
> +++ b/xen/arch/x86/hvm/hypercall.c
> @@ -111,6 +111,7 @@ int hvm_hypercall(struct cpu_user_regs *regs)
>      case 8:
>          eax = regs->rax;
>          /* Fallthrough to permission check. */
> +        fallthrough;
>      case 4:
>      case 2:
>          if ( currd->arch.monitor.guest_request_userspace_enabled &&

Arguably the comment could then be dropped in exchange. Yet I won't
insist on you doing so (and others may also disagree).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:49:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:49:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751383.1159325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCj6-000648-7c; Mon, 01 Jul 2024 08:49:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751383.1159325; Mon, 01 Jul 2024 08: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 1sOCj6-000641-57; Mon, 01 Jul 2024 08:49:32 +0000
Received: by outflank-mailman (input) for mailman id 751383;
 Mon, 01 Jul 2024 08:49:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOCj4-00062v-By
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:49:30 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3da3cbd-3786-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 10:49:29 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2eaafda3b5cso25910781fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01:49: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
 d2e1a72fcca58-708043b710fsm5929927b3a.156.2024.07.01.01.49.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 01:49: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: d3da3cbd-3786-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719823769; x=1720428569; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WQbQXMm8A72ixdc3TmyKYnso+AE/QKcfaMsMLFepZyA=;
        b=FR+XxGEEcPRSmO8erIFg8rjpTKu425g1va4gRqwkI+Gb1U8RUjv4KB84ydKjsaqXGq
         peevegGEOyROIReC3dcEuCuGK8Pdf2OqAaIK+xz3vaeukWj00TWiRCyichrqbw0wXIy3
         Pa/VnwZs41gDNZDnZur3UB9V7gjON5FfL8xmhtpqjANYLxu6yehDsIwlMzI536E/kfAi
         ZBV45QTZGRUiXtAUwfK3uNyyIOZzSHFbvYWliDfXH8X5jwZ/W+8zP/sNvHjuO53/yW/K
         aqPSgdy13gYf0x+jEEnToziJdV0nY8stTQegtmYwmLwQUVdgMceBa/H+LXVGvnhGYZl9
         B8HQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719823769; x=1720428569;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WQbQXMm8A72ixdc3TmyKYnso+AE/QKcfaMsMLFepZyA=;
        b=FpBiRoU6U3uALBOGq6aL6aY9ifC7c/Gl976b3dopv6vzuavgl46+hYmYN1tQLKyYNe
         u96Qt+lZOzYfI6dBW8rGhgZv2/g6+OpFXNgoNXmuowU3dz/qKljdyyBjJFlCJ2FXKFJv
         tr7TU3nXMBa9P2+1L9lnnoBffm1e7bOp8Z+X+u3BXb7xbsfBqsz5OcBkaVrOYoz2koFV
         7ldaZNOAmkFIGKiT5XS1LHIeztSl1E3Vz3xwZOkyFUrs2M4aw8sjtYFxBXhQL4ud8rpm
         dYTUyXN2/0rykWIfX1TOGKmW1NnxQIBaQuRzMyuH1p5J+tPiwTdmvSmB2N/47NRhTl49
         7bBQ==
X-Forwarded-Encrypted: i=1; AJvYcCXcGYPCPObtbHJtvb5fWeovPgfOFHN5ZU1nL8/EF18bM5u5zGQb0wJ0lePdJiUPJMM/Ee6+BX1HBQ7i+zyBkMbzW1/OxV7XyWDZL2QtmEU=
X-Gm-Message-State: AOJu0YxjZDe4bBXP7IrIc4LS1djEk0wui2AjAUBTapjXAR29VbHmRqTt
	I/df4r30RbaO6B8PfUEDpmQ2vdiLaGr1f7mECIVfoIZOE0ygHUsO+yFCBZ/Bew==
X-Google-Smtp-Source: AGHT+IHWBOp97N9D+HZdfF0f3wwXDiQFw9ubXWdYtQjBSYSDFGDGj2MHGkvn1/GA43W5j9JaAb8mpw==
X-Received: by 2002:a05:651c:b28:b0:2ec:561f:9605 with SMTP id 38308e7fff4ca-2ee5e3595bemr39013581fa.5.1719823768682;
        Mon, 01 Jul 2024 01:49:28 -0700 (PDT)
Message-ID: <6237453c-b07d-4aad-af33-099b4cc37838@suse.com>
Date: Mon, 1 Jul 2024 10:49:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 08/12] x86/vpt: address a violation of MISRA C Rule
 16.3
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719383180.git.federico.serafini@bugseng.com>
 <453ef39f5a2a1871d8b0c74d921ed6a413b179b4.1719383180.git.federico.serafini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <453ef39f5a2a1871d8b0c74d921ed6a413b179b4.1719383180.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.06.2024 11:28, Federico Serafini wrote:
> --- a/xen/arch/x86/hvm/vpt.c
> +++ b/xen/arch/x86/hvm/vpt.c
> @@ -118,9 +118,11 @@ static int pt_irq_masked(struct periodic_time *pt)
>              return 0;
>  
>          gsi = hvm_isa_irq_to_gsi(pt->irq);
> +
> +        /* Fallthrough to check if the interrupt is masked on the IO APIC. */
> +        fallthrough;
>      }
>  
> -    /* Fallthrough to check if the interrupt is masked on the IO APIC. */
>      case PTSRC_ioapic:
>      {
>          int mask = vioapic_get_mask(v->domain, gsi);

See question on patch 7. Plus the blank line may want purging here along
with the comment, to be consistent with what you're doing elsewhere.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:55:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:55:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751388.1159335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCp1-00083A-Tr; Mon, 01 Jul 2024 08:55:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751388.1159335; Mon, 01 Jul 2024 08: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 1sOCp1-000833-QV; Mon, 01 Jul 2024 08:55:39 +0000
Received: by outflank-mailman (input) for mailman id 751388;
 Mon, 01 Jul 2024 08:55:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BFf9=OB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sOCp1-00082w-F6
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:55:39 +0000
Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com
 [2607:f8b0:4864:20::72c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aef368e8-3787-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 10:55:37 +0200 (CEST)
Received: by mail-qk1-x72c.google.com with SMTP id
 af79cd13be357-79c03abfb18so178597385a.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01:55:37 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-79d69279476sm328246485a.34.2024.07.01.01.55.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 01:55: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: aef368e8-3787-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719824136; x=1720428936; 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=W0pzrC4jdyTTHUHIKPwsWoUUKJhxKelE+9MLJTDWTgE=;
        b=WnTAE3ztv0JW7yZ5PF48KERslh9Lvss0VrP6VsBInDNJNqnyJH5ub8PO6sCt3zJNOu
         b+JyHPZICINwGZhv4OEOCALu0k+kryOowOxlD2Wnk0SZyuMpYPmhcAt+XtBIj62sZbH1
         N46HK3Y4tsa2DwpSZ8EGBrUAa8IqrglVewS+8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719824136; x=1720428936;
        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=W0pzrC4jdyTTHUHIKPwsWoUUKJhxKelE+9MLJTDWTgE=;
        b=jya35gKzhNycvTtZ7E46Q2yc44kGsov3IfcPt65zgWxQuEiLAeeswQkYpXGDxAlBOH
         xKzgb0t4EJIE+vCwT6XN+8O5vxVuSKO96UA6U6q0MdTC7i/65CmH0kArNyrar9Yj0/w+
         32pmfraOpo82BgNA+hJlgtZ9kqbicQMHRAhY5Lnj5NLWgUy5V5XHT6v0v2xXsHPW4Stf
         p+ozHV41xEVRgM32rxfy148nlfvTIoPaqocx/VnNQOwAMr+KR8zFRzsnBIKIRsXDg9b/
         14MUFlNrxp+PkhzMWhIGzr/RalhKXG+zjPdi/d8VqQDkWiC4ICA7hdO85JKx71hL6xE7
         0Ovw==
X-Gm-Message-State: AOJu0YyShSWVvwLWsbFn12I/x8At9MByLZCnl7W2m7MXGW75xM4mnwXQ
	A7SAKdd/kyrvNBvvSwG+UJEa4x4uO0Ix5LDGOkXV48x0hfCXiKk8CO/maHLI8I4=
X-Google-Smtp-Source: AGHT+IF8NWYjHjXsa2xUzVJV5aGQiwh8wD7sjAqUplJ+AeAiR7wDdXQc+My8AtPz5OIEfDNa+F9wxQ==
X-Received: by 2002:a05:620a:2688:b0:79d:5c9e:f7b9 with SMTP id af79cd13be357-79d7b9b0eefmr674971585a.14.1719824136012;
        Mon, 01 Jul 2024 01:55:36 -0700 (PDT)
Date: Mon, 1 Jul 2024 10:55:33 +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>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 2/3] pirq_cleanup_check() leaks
Message-ID: <ZoJu3jcsiCWwOhBl@macbook>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <5641f8eb-5736-8ccc-122b-b3b47c1bac28@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <5641f8eb-5736-8ccc-122b-b3b47c1bac28@suse.com>

On Thu, Jul 27, 2023 at 09:38:29AM +0200, Jan Beulich wrote:
> Its original introduction had two issues: For one the "common" part of
> the checks (carried out in the macro) was inverted.

Is the current logic in evtchn_close() really malfunctioning?

pirq->evtchn = 0;
pirq_cleanup_check(pirq, d1); <- cleanup for PV domains
if ( is_hvm_domain(d1) && domain_pirq_to_irq(d1, pirq->pirq) > 0 )
    unmap_domain_pirq_emuirq(d1, pirq->pirq); <- cleanup for HVM domains

It would seem to me the pirq_cleanup_check() call just after setting
evtchn = 0 was done to account for PV domains, while the second
(hidden) pirq_cleanup_check() call in unmap_domain_pirq_emuirq() would
do the cleanup for HVM domains.

Maybe there's something that I'm missing, I have to admit the PIRQ
logic is awfully complicated, even more when we mix the HVM PIRQ
stuff.

> And then after
> removal from the radix tree the structure wasn't scheduled for freeing.
> (All structures still left in the radix tree would be freed upon domain
> destruction, though.)

So if my understanding is correct, we didn't have a leak due to the
missing free_pirq_struct() because the inverted check in
pirq_cleanup_check() macro prevented the removal from the radix tree,
and so stale entries would be left there and freed at domain
destruction?

> For the freeing to be safe even if it didn't use RCU (i.e. to avoid use-
> after-free), re-arrange checks/operations in evtchn_close(), such that
> the pointer wouldn't be used anymore after calling pirq_cleanup_check()
> (noting that unmap_domain_pirq_emuirq() itself calls the function in the
> success case).
> 
> Fixes: c24536b636f2 ("replace d->nr_pirqs sized arrays with radix tree")
> Fixes: 79858fee307c ("xen: fix hvm_domain_use_pirq's behavior")

See the comment above about the call to pirq_cleanup_check() in
unmap_domain_pirq_emuirq(), which might imply 79858fee307c is not
wrong, just confusing.

> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> This is fallout from me looking into whether the function and macro of
> the same name could be suitably split, to please Misra rule 5.5. The
> idea was apparently that the check done in the macro is the "common"
> part, and the actual function would be per-architecture. Pretty clearly
> this, if need be, could also be achieved by naming the actual function
> e.g. arch_pirq_cleanup_check().
> 
> Despite my testing of this (to a certain degree), I'm wary of the
> change, since the code has been the way it was for about 12 years. It
> feels like I'm overlooking something crucial ...
> 
> The wrong check is also what explains why Arm got away without
> implementing the function (prior to "restrict concept of pIRQ to x86"):
> The compiler simply eliminated the two calls from event_channel.c.
> ---
> v3: New.
> 
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -1349,6 +1349,7 @@ void (pirq_cleanup_check)(struct pirq *p
>  
>      if ( radix_tree_delete(&d->pirq_tree, pirq->pirq) != pirq )
>          BUG();
> +    free_pirq_struct(pirq);
>  }
>  
>  /* Flush all ready EOIs from the top of this CPU's pending-EOI stack. */
> --- a/xen/common/event_channel.c
> +++ b/xen/common/event_channel.c
> @@ -711,9 +711,10 @@ int evtchn_close(struct domain *d1, int
>              if ( !is_hvm_domain(d1) )
>                  pirq_guest_unbind(d1, pirq);
>              pirq->evtchn = 0;
> -            pirq_cleanup_check(pirq, d1);
> -            if ( is_hvm_domain(d1) && domain_pirq_to_irq(d1, pirq->pirq) > 0 )
> -                unmap_domain_pirq_emuirq(d1, pirq->pirq);
> +            if ( !is_hvm_domain(d1) ||
> +                 domain_pirq_to_irq(d1, pirq->pirq) <= 0 ||
> +                 unmap_domain_pirq_emuirq(d1, pirq->pirq) < 0 )

pirq_cleanup_check() already calls pirq_cleanup_check() itself.  Could
you please add a comment to note that unmap_domain_pirq_emuirq()
succeeding implies the call to pirq_cleanup_check() has already been
done?

Otherwise the logic here looks unbalanced by skipping the
pirq_cleanup_check() when unmap_domain_pirq_emuirq() succeeds.

> +                pirq_cleanup_check(pirq, d1);
>          }
>          unlink_pirq_port(chn1, d1->vcpu[chn1->notify_vcpu_id]);
>          break;
> --- a/xen/include/xen/irq.h
> +++ b/xen/include/xen/irq.h
> @@ -158,7 +158,7 @@ extern struct pirq *pirq_get_info(struct
>  void pirq_cleanup_check(struct pirq *, struct domain *);
>  
>  #define pirq_cleanup_check(pirq, d) \
> -    ((pirq)->evtchn ? pirq_cleanup_check(pirq, d) : (void)0)
> +    (!(pirq)->evtchn ? pirq_cleanup_check(pirq, d) : (void)0)

Not that you need to fix it here, but why not place this check in
pirq_cleanup_check() itself?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:56:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751394.1159345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCpb-00007M-7Q; Mon, 01 Jul 2024 08:56:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751394.1159345; Mon, 01 Jul 2024 08: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 1sOCpb-00007E-4n; Mon, 01 Jul 2024 08:56:15 +0000
Received: by outflank-mailman (input) for mailman id 751394;
 Mon, 01 Jul 2024 08: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=VC/5=OB=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sOCpa-0008NN-3y
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:56:14 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c47f119a-3787-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 10:56:12 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2ec52fbb50cso26713381fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01:56:12 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44651419af9sm29473511cf.33.2024.07.01.01.56.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 01: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: c47f119a-3787-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719824172; x=1720428972; 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=Ma+zp6lbzPmS/ImoX77dWIaIKr3G+nN2+myF1peEfd8=;
        b=UME4CKObGMi6PqVJXzikOcqetBT46okyjzTTSFa0YJvZdbx2+07NABPQXgnALOhh6M
         gcXtwzr1/MmG3WTCzceEHgvWhUfAQ08+tNVog5rD55cw/GHSEoBQSlOBI33hxCZ6/n24
         PxXzvP5U8HJc44RQNi7GGqAQ7QxrIEzu8Bj7G/pDpD9dOF0kSFVRUNshZeM8xOQO10Tr
         MVHj5xPhw3Zw7GS5iSkUMOjphN40gZs+py1VN5Qv5wwWKTyEvga358MkLWns5PuiT6WG
         0c8Re1lR9AtFCgfirlK0jQbEiEWVqxzYaO0mX3/5lZQW/BECezj1QWrlm9PPvTSrADRH
         sN3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719824172; x=1720428972;
        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=Ma+zp6lbzPmS/ImoX77dWIaIKr3G+nN2+myF1peEfd8=;
        b=DtYPNqCWDFRd8DmszEV86QqBkWCRm5sDowg1Vslr7XBSGzOmW9mlrIFY//pn0ewO0l
         GAzdFMB17G9Z6DuluFJZULZIrZ0J44c5AHi/fp6tPOg3MBtzLHPl1owbunvHlog9AnDz
         n4AlfMgTe0BvJcHE6HOXJOfx3fooXFR3qe0WvBFtPs0KIfcTJ3vwDisH9XLzLBSYsOcv
         DR+tQpMMVfQYOUVU6qpgxYnvRT5XS5Qf48t/3BqBVh1M7bkXsZfdUcNr2U4slUb5y1KY
         WH1d1bwFeVlLLo1Ockk93nmgtl+05oW3PjuQdiI3U5btUpR/sTiQArU26tVVmS0bI0db
         e51A==
X-Forwarded-Encrypted: i=1; AJvYcCX+a9L1MlR2J0EOlDZe6JzMl3OjyScjiQ6Bo2EfY0+xkwFSstEHb49RyXgZN6JjQtwGBERhQoS+UvqeWX2Xmca+Lm49Tc3QqWgFrVUyTRU=
X-Gm-Message-State: AOJu0YwUkFD34lFAmmQncsC78kDnmGN2ahR30bDYidiG3CXx6paLa/kb
	Btivxw38ngvhYdqxFWokenW8C2dj0nYwu4eU7tw1QDpHe5fzSpQw/A+j2IBuD4Y=
X-Google-Smtp-Source: AGHT+IFAzjFAXnXzD+3+EdzsgdvUq9SvQZVSibwERysULtYVLA4tq/Em+6EBqMpRnKokLL1YMUQe7g==
X-Received: by 2002:a2e:b8c3:0:b0:2ec:54f3:7b65 with SMTP id 38308e7fff4ca-2ee5e6e02f1mr43141821fa.36.1719824172411;
        Mon, 01 Jul 2024 01:56:12 -0700 (PDT)
Message-ID: <aee9533e-0138-4e9e-8de8-4d998883cc48@suse.com>
Date: Mon, 1 Jul 2024 10:56:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] tools/libxs: Drop XSTEST
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony@xenproject.org>
References: <20240628150853.1048006-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240628150853.1048006-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 28.06.24 17:08, Andrew Cooper wrote:
> Appears to been missed from the previous attempt in 2007.
> 
> Fixes: fed194611785 ("xenstore: Remove broken and unmaintained test code")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 08:57:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 08:57:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751402.1159356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCr6-0000nR-I0; Mon, 01 Jul 2024 08:57:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751402.1159356; Mon, 01 Jul 2024 08:57:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCr6-0000nK-EG; Mon, 01 Jul 2024 08:57:48 +0000
Received: by outflank-mailman (input) for mailman id 751402;
 Mon, 01 Jul 2024 08:57:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOCr4-0000n7-Ry
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 08:57:46 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fc0a5a4f-3787-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 10:57:46 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2e72224c395so30297001fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 01:57: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
 d2e1a72fcca58-7080256afb5sm5958027b3a.79.2024.07.01.01.57.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 01:57: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: fc0a5a4f-3787-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719824265; x=1720429065; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pF6GHpIlhAXYM7R/16+MysgWYBsHsZeHRu5IpiScw3A=;
        b=Lyb23x+iaK8vqL2roBejuULKssP4OhUjGj/kSJ1KZSrV2K5l+drQ8ge2hcLrtlO3sj
         lqUxr/zPdYvz/QkHhmyMIhAWwb0PE4Vy5OaQ8fw59MscyI9XFlG3xtkAxoGJ/+FfSqF0
         zGCytWqF8fBv083weoIVNqoX5Z61CpmdG1mTnFKYsyX7H9J/AOVH0XpZO8q7VCpCF1ug
         AkQ803I7+ofzKbrIiD+MaRGJrd89Nuurhoiek5V7T9kHMVcBp28/nInkS8F/oNITZ8fB
         tdUxWJdk+kpZwisGeMaqCCOekLINEznkanMFu98nwQ4WRhZ8XJiaKTgFUDI0ZUArWKT5
         URVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719824265; x=1720429065;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pF6GHpIlhAXYM7R/16+MysgWYBsHsZeHRu5IpiScw3A=;
        b=sXZ7kXygvraDRaNXWRyjm2JOIjUvgzvQKMJiGaGqDhxt5zMiVMqtpid7DRPIkKan6V
         oUgazUewAj021tC8kIezmfF56YWblg35zq+oo3sHY+vYTu75lD0slcuXTrEz83vdbHNu
         ZdZsl0pGWyL9VEDBHLh7lA/lKyIsmlWin4cSFhtzO7JU1keXi+dI8J45oDZU/64WDcWY
         FveeSrXYs+PVbv+mZZrKxPcfWlT3nJvlhg711nEOFdhuAWV3WHG8kdELJaQ7MAkuiFZM
         iKhUlwSmrepH8QGD2cC2F1IJNP517lj/ltdzEOsaVVTJBSvpL4CQhCWvE94B+j6xqpDa
         ep6w==
X-Forwarded-Encrypted: i=1; AJvYcCX4QVRNypNx+g0631Dw7SZFemeuF0b1hfLPJhI0CSRxnqXXK/vRxQKtQuZP5EBWgzbDcL5ZXjRA+5Tic4fK0UnOiYwIA+DC4+3Q9PYYqCs=
X-Gm-Message-State: AOJu0YxgNO2hfVmSY1mpkmeof2qV9jAOSec2vq0EA9qwYOVk4ZmDq3MD
	bWumZShboh35IEvSzUGT9g/OEBu52UeTwog2zSjOiCJtodZFL2yCvtU1lQjBa/Se0T+Qs1SqX5Y
	=
X-Google-Smtp-Source: AGHT+IE4W3MmL2KDSVsGyPYGsF6+s8zABiHMNW5cAweIWWhJAN6qGo38f+F6H578d9S/NMEJHsAC8w==
X-Received: by 2002:a2e:9613:0:b0:2ec:5b10:685a with SMTP id 38308e7fff4ca-2ee5e35db6emr31987791fa.17.1719824265592;
        Mon, 01 Jul 2024 01:57:45 -0700 (PDT)
Message-ID: <4cc9a5c7-df57-4a90-8164-cf3002596870@suse.com>
Date: Mon, 1 Jul 2024 10:57:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 09/12] x86/mm: add defensive return
To: Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: consulting@bugseng.com, xen-devel@lists.xenproject.org
References: <cover.1719383180.git.federico.serafini@bugseng.com>
 <acb26329a980809dda100825f52b05d0cc295315.1719383180.git.federico.serafini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acb26329a980809dda100825f52b05d0cc295315.1719383180.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.06.2024 11:28, Federico Serafini wrote:
> Add defensive return statement at the end of an unreachable
> default case. Other than improve safety, this meets the requirements
> to deviate a violation of MISRA C Rule 16.3: "An unconditional `break'
> statement shall terminate every switch-clause".
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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

> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -916,6 +916,7 @@ get_page_from_l1e(
>                  return 0;
>              default:
>                  ASSERT_UNREACHABLE();
> +                return -EPERM;
>              }
>          }
>          else if ( l1f & _PAGE_RW )

I don't like the use of -EPERM here very much, but I understand that there's
no really suitable errno value. I wonder though whether something far more
"exotic" wouldn't be better in such a case, say -EBADMSG or -EADDRNOTAVAIL.
Just to mention it: -EPERM is what failed XSM checks would typically yield,
so from that perspective alone even switching to -EACCES might be a little
bit better.

I further wonder whether, with the assertion catching an issue with the
implementation, we shouldn't consider using BUG() here instead. Input from
in particular the other x86 maintainers appreciated.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 09:03:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 09:03:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751409.1159366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOCwF-0003QK-5o; Mon, 01 Jul 2024 09:03:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751409.1159366; Mon, 01 Jul 2024 09: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 1sOCwF-0003QD-1D; Mon, 01 Jul 2024 09:03:07 +0000
Received: by outflank-mailman (input) for mailman id 751409;
 Mon, 01 Jul 2024 09:03:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VC/5=OB=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sOCwE-0003Q7-0X
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 09:03:06 +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 ba1e47f0-3788-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 11:03:05 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-57d251b5fccso3150703a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 02:03:05 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58614f3d51asm4142782a12.81.2024.07.01.02.03.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 02: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: ba1e47f0-3788-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719824584; x=1720429384; 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=L9hrnj3X9YJ6RmYhA9fCWShdvWHdojozvuAsN8WzM0E=;
        b=YRdwBItOWkRhOrh7HuAHEsZs6uUw+gvCsZfQwW1ZXVbeG91KLXKPX4WMNBgfp6vHIF
         KbhSyPa4r+V85VGjfm26EBSsqwfPa5EK0A/IsU1jdtgtC0CElCqTcq5S/tVbyrseRA6V
         Z94+1RQFKe4Kxdea1rXJko/kV4XMef6DycFYrFXdk6g4lFQ7YYAtnq96ZOLEX9K80L7o
         zM8EeVdE/L7CIW3uG82NOaMxKnx7HLoXtOZ0YyJ6OVHd+vvdjNarI3qqItxVkS+E6PcY
         eIk27hQqO/tWJuBIHM2kiK2xQRGweAjMYr5SHPndYUZSBN/H2oy+QOmPp25Mf5KoW3z5
         DOFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719824584; x=1720429384;
        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=L9hrnj3X9YJ6RmYhA9fCWShdvWHdojozvuAsN8WzM0E=;
        b=bJT0pGR976BGV1I6Y5fqfzkUQd5CPjDCZ81He88FbFlpwZ6Ef9x+3uZgziijqHxiGM
         aeVPQZbOgJ558tZ6q4nbhC0tOdu+XAzMviH1pH3xwpzgWpSQCEWZel5ImB1TVqphdyZf
         fDbE4KpLgXwkb0ZNPQUx4DSst0crUXwBYuR3nKfKC6fo70mYT+rHIqOHFjADf2KUnws1
         yudL0vqtZkVZMfQlSo029XVuqvF8fm5lwVxQROIVyySltbDexeFutxl3vVu9jMl3iBnc
         i89/OM3klcICnuVYullIBcg4tTgYGLK1YIT6uZtQItdhOZXs1TyLcvsyR2TKiSsew5Vl
         x2kw==
X-Forwarded-Encrypted: i=1; AJvYcCXBsj8BJn4HePRFJek/Exfq0SILvbmaLh5Ia9YmhpeSrDmezHMWhGG77IaWyYhC8XW3dh0udvGm9xjmNQi+Ri5DVtyYh765kaPXdiwFVcg=
X-Gm-Message-State: AOJu0YxDtPqhVxTLq/LE2hGbr1sNGMmzeSi/1veRfNS+pZTNlygHxWWm
	jRZO0C/5r+AmeBu5XLuUirenBgwhTpAT2aj0IkR2P59x0zdpi75WMZbCCfUjXyU=
X-Google-Smtp-Source: AGHT+IFqs1SsnE/tipEeOkAm9Nw8ZWlueCc6NO5iG3s0jWfyz+g1vTBgr7kdvT8fvOcPjj6sg2rOTQ==
X-Received: by 2002:a05:6402:1941:b0:57d:456:e838 with SMTP id 4fb4d7f45d1cf-587a0b037ebmr3425835a12.31.1719824584377;
        Mon, 01 Jul 2024 02:03:04 -0700 (PDT)
Message-ID: <db3b0608-6ca6-4fbd-a56d-343ba480e86c@suse.com>
Date: Mon, 1 Jul 2024 11:03:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19(?) 0/3] tools/libxs: More CLOEXEC fixes
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony@xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240628143116.1044976-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240628143116.1044976-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 28.06.24 16:31, Andrew Cooper wrote:
> More fixes to CLOEXEC handling in libxenstore.  For 4.19, because the first
> attempt to fix this wasn't complete.
> 
> libxl is far worse, but I don't have time to get started on that mess.
> 
> Andrew Cooper (3):
>    tools/libxs: Fix CLOEXEC handling in get_dev()
>    tools/libxs: Fix CLOEXEC handling in get_socket()
>    tools/libxs: Fix CLOEXEC handling in xs_fileno()
> 
>   tools/config.h.in     |  3 ++
>   tools/configure       | 12 ++++++++
>   tools/configure.ac    |  2 ++
>   tools/libs/store/xs.c | 68 ++++++++++++++++++++++++++++++++++---------
>   4 files changed, 72 insertions(+), 13 deletions(-)
> 

For the series:

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 09:20:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 09:20:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751416.1159375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sODCY-0006hB-GB; Mon, 01 Jul 2024 09:19:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751416.1159375; Mon, 01 Jul 2024 09:19: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 1sODCY-0006h4-DG; Mon, 01 Jul 2024 09:19:58 +0000
Received: by outflank-mailman (input) for mailman id 751416;
 Mon, 01 Jul 2024 09:19: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=dpbD=OB=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1sODCX-0006gy-3V
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 09:19:57 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 148aada4-378b-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 11:19:55 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 4D8D84EE0746;
 Mon,  1 Jul 2024 11:19: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: 148aada4-378b-11ef-90a4-e314d9c70b13
MIME-Version: 1.0
Date: Mon, 01 Jul 2024 11:19:55 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, michal.orzel@amd.com,
 xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, consulting@bugseng.com,
 Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2] x86/mctelem: address violations of MISRA C: 2012
 Rule 5.3
In-Reply-To: <37478823-39d1-44a9-8e73-1afa40554a4d@suse.com>
References: <94752f77597b05ef9b8a387bf29512b11c0d1e15.1719398571.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2406261757480.3635@ubuntu-linux-20-04-desktop>
 <37478823-39d1-44a9-8e73-1afa40554a4d@suse.com>
Message-ID: <c639b5e00f027ec599aa007eb1826f70@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-01 10:27, Jan Beulich wrote:
> On 27.06.2024 02:57, Stefano Stabellini wrote:
>> On Wed, 26 Jun 2024, Nicola Vetrini wrote:
>>> From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
>>> 
>>> This addresses violations of MISRA C:2012 Rule 5.3 which states as
>>> following: An identifier declared in an inner scope shall not hide an
>>> identifier declared in an outer scope.
>>> 
>>> In this case the gloabl variable being shadowed is the global static 
>>> struct
>>> mctctl in this file, therefore the local variables are renamed to 
>>> avoid this.
> 
> "global" and "static" contradict one another; I think you mean "file 
> scope".

Yes.

> While there (nit) also s/gloabl/global/ or perhaps even s/gloabl// to 
> deal
> with the conflict with "static" also there (without writing "file 
> scope"
> twice).
> 
>>> No functional change.
>>> 
>>> Signed-off-by: Alessandro Zucchelli 
>>> <alessandro.zucchelli@bugseng.com>
>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> 
>> Nice one!
>> 
>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> With the adjustment:
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Jan

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 09:29:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 09:29:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751423.1159386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sODLA-0000MF-BS; Mon, 01 Jul 2024 09:28:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751423.1159386; Mon, 01 Jul 2024 09: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 1sODLA-0000M8-8C; Mon, 01 Jul 2024 09:28:52 +0000
Received: by outflank-mailman (input) for mailman id 751423;
 Mon, 01 Jul 2024 09:28:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wowx=OB=bounce.vates.tech=bounce-md_30504962.668276ce.v1-1ca19e15b41746609e875dc740e26355@srs-se1.protection.inumbo.net>)
 id 1sODL9-0000Lz-Gy
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 09:28:51 +0000
Received: from mail145-25.atl61.mandrillapp.com
 (mail145-25.atl61.mandrillapp.com [198.2.145.25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 513ad37d-378c-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 11:28:47 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-25.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4WCLML0fDtz35hTN1
 for <xen-devel@lists.xenproject.org>; Mon,  1 Jul 2024 09:28:46 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1ca19e15b41746609e875dc740e26355; Mon, 01 Jul 2024 09:28: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: 513ad37d-378c-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1719826126; x=1720086626;
	bh=TQ7aJ58mmsoGmEKN9OokKingdVNq3WsiR6vkD999r4E=;
	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=fg0hy1adxKJC9mo+jkF5RPJrr8IG1Y2rmyQeE8Dq4hG/dCnz1hfs9wGo5WQHAPBmF
	 KcIZacPVE/VSIEQ+J0rxH6VuYkRXEKGTU150fmPoGy20B9JetFP07OM9z3Kc1iuwUR
	 HuaDvThg3buwOO4YEfRnhoPSfCTzlnh9uzSPPp6SSMJPDM7eKJDw8dTCue4DCgslOk
	 zYwGmEJWdTgspDBHIlz++6WlrYz3DQnxu3jryf9UO5zCu0FddSO06M1TM2vlQSgWMi
	 OcL17MSSvArwg1QJQYHJrNRdslSNhK2S5fhxhPtvkmJ3B2Sb9Pj4nw4yXN/OtxA9/7
	 dAe65ea+h8yxw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1719826126; x=1720086626; i=anthony.perard@vates.tech;
	bh=TQ7aJ58mmsoGmEKN9OokKingdVNq3WsiR6vkD999r4E=;
	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=PRM+iUxSaOqi4aXK8GQCgJvtOr5XQq9vGGyGk6eriE288txrF/kBStLvtUlYNX9/F
	 lM4IsCn5oBdP87QsLjmT1uGoxsNHdoBa3CTqCsWMJ5dy+VC8OOxiWrG8C+eWub3Xbe
	 9kO7TOvi2udiRvrcvxWcS16qHgSXJfW5kEXyuLEQSI2+5LRvXdrAQ1Uz2ylbcUI3dO
	 4K97ztetnOdS90pjVsopU2ZNPA4m++dDdt81wgGmyRGe3ExMl0efv+4phhreDDApKM
	 ri1X7sKJ9BJy1SSbViNFaYaY1maNLE4cZMkkKZf0fsigRWzrSnZJdRC5Fylatdv8il
	 4PaLAsNdgj1/g==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20for-4.19(=3F)=200/3]=20tools/libxs:=20More=20CLOEXEC=20fixes?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1719826124665
To: =?utf-8?Q?J=C3=BCrgen=20Gro=C3=9F?= <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Frediano Ziglio <frediano.ziglio@cloud.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Message-Id: <ZoJ2jbis3JyhR+EV@l14>
References: <20240628143116.1044976-1-andrew.cooper3@citrix.com> <db3b0608-6ca6-4fbd-a56d-343ba480e86c@suse.com>
In-Reply-To: <db3b0608-6ca6-4fbd-a56d-343ba480e86c@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.1ca19e15b41746609e875dc740e26355?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240701:md
Date: Mon, 01 Jul 2024 09:28:46 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 01, 2024 at 11:03:02AM +0200, J=C3=BCrgen Gro=C3=9F wrote:
> On 28.06.24 16:31, Andrew Cooper wrote:
> > More fixes to CLOEXEC handling in libxenstore.  For 4.19, because the f=
irst
> > attempt to fix this wasn't complete.
> > 
> > libxl is far worse, but I don't have time to get started on that mess.
> > 
> > Andrew Cooper (3):
> >    tools/libxs: Fix CLOEXEC handling in get_dev()
> >    tools/libxs: Fix CLOEXEC handling in get_socket()
> >    tools/libxs: Fix CLOEXEC handling in xs_fileno()
> > 
> >   tools/config.h.in     |  3 ++
> >   tools/configure       | 12 ++++++++
> >   tools/configure.ac    |  2 ++
> >   tools/libs/store/xs.c | 68 ++++++++++++++++++++++++++++++++++--------=
-
> >   4 files changed, 72 insertions(+), 13 deletions(-)
> > 
> 
> For the series:
> 
> Reviewed-by: Juergen Gross <jgross@suse.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 Jul 01 09:47:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 09:47:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751430.1159396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sODdR-0004Hq-QH; Mon, 01 Jul 2024 09:47:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751430.1159396; Mon, 01 Jul 2024 09: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 1sODdR-0004Hj-Ng; Mon, 01 Jul 2024 09:47:45 +0000
Received: by outflank-mailman (input) for mailman id 751430;
 Mon, 01 Jul 2024 09:47: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sODdQ-0004Hd-Ab
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 09:47:44 +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 f54a7596-378e-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 11:47:41 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2ebe40673d8so37047351fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 02:47: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
 d2e1a72fcca58-708044ad3besm6054508b3a.169.2024.07.01.02.47.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 02:47: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: f54a7596-378e-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719827261; x=1720432061; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xf6NF9iMzfu10kt6HawSJXyeo3TJT7kEaO923RRnFWI=;
        b=CNUox3aTGYsUf5xmDBBZ9Q2k/NgkvrsCZVAYQHW9pmbwgDUjwx3Zj8LiafcWTnoM7h
         P+FXgnoJPDJYHa25A+/A8fofaNwOHqlo4RBl4Kw/QtJPW7fVBJZF+o1UUnstrgWxdZR9
         QuHHeWcjSHVt9QuX4GVn3jntWutHzRtUbXEaIKuKJVyUdGzw0X9NNvbtRIfBx0WoZ/Vd
         pOGsq5EFrXlcaB3BhwGb8dyM0UZwU/NMEIUb5We3dUee7LeaNC2dYD4urQJvH7ZIJhhL
         gFWeMfjE/JrH8Urv4/9UbKnh+vllFcgWqJnfxmuykF1yWjJopqvplmdIpjchGM77EV96
         +jgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719827261; x=1720432061;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xf6NF9iMzfu10kt6HawSJXyeo3TJT7kEaO923RRnFWI=;
        b=qiBf1MP8GMflfFW0n3O85PQaFBFFaxF+AmvIi5LifR8vKf2Nzutdm5JIeN7ynr59Fz
         qqxnoIbkrZLlLEzrCprl+Wh2E64Pgd6r+ERIjDukp4nXnzuAAmY5wztVjuZn6uIdkDPO
         kBmG1t1lPHmv0h5EDHeI89plAWCQSaJA4jbLOPuoLNapJNcr8+wI0q9h77KOUrA+gViB
         qWoVQFna/cQ2Czli8hK+9rVOGx6T+Xz87inwXwC76goygJozarxNIk2AeGV0J2DLrT3c
         zcFgBXAsFhMuFOgACRwJXyQaR68e1TlOWaTKIrRRr7BmchQFF4ZUgDWOW6oUqA15XSA0
         WUwA==
X-Gm-Message-State: AOJu0YxKjt6e+rnBN9I+q5wNaQzeCwwMJloPtiK61G8rYHOKSpp9/36Y
	W3mlhCOzTvrZcWCQdzEQEtKopFICBr/sETvXV8+K/uFVzqGEuDbNvePJx00Xmw==
X-Google-Smtp-Source: AGHT+IFOG9G0ZwaUpVL7OdpUqK0cPuALRkf4PGUH9kGx+8sP1Cw91CzMKO0xhp6v0MWWsLMZ0YzjOg==
X-Received: by 2002:a2e:a7c6:0:b0:2ee:5969:e454 with SMTP id 38308e7fff4ca-2ee5e33a48bmr41713651fa.1.1719827260659;
        Mon, 01 Jul 2024 02:47:40 -0700 (PDT)
Message-ID: <7d51b6b7-affb-46fd-98dc-b54d3842f6c2@suse.com>
Date: Mon, 1 Jul 2024 11:47:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/3] pirq_cleanup_check() leaks
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <5641f8eb-5736-8ccc-122b-b3b47c1bac28@suse.com> <ZoJu3jcsiCWwOhBl@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZoJu3jcsiCWwOhBl@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.07.2024 10:55, Roger Pau Monné wrote:
> On Thu, Jul 27, 2023 at 09:38:29AM +0200, Jan Beulich wrote:
>> Its original introduction had two issues: For one the "common" part of
>> the checks (carried out in the macro) was inverted.
> 
> Is the current logic in evtchn_close() really malfunctioning?

First: I'm getting the impression that this entire comment doesn't relate
to the part of the description above, but to the 2nd paragraph further
down. Otherwise I'm afraid I may not properly understand your question,
and hence my response below may not make any sense at all.

> pirq->evtchn = 0;
> pirq_cleanup_check(pirq, d1); <- cleanup for PV domains
> if ( is_hvm_domain(d1) && domain_pirq_to_irq(d1, pirq->pirq) > 0 )
>     unmap_domain_pirq_emuirq(d1, pirq->pirq); <- cleanup for HVM domains
> 
> It would seem to me the pirq_cleanup_check() call just after setting
> evtchn = 0 was done to account for PV domains, while the second
> (hidden) pirq_cleanup_check() call in unmap_domain_pirq_emuirq() would
> do the cleanup for HVM domains.
> 
> Maybe there's something that I'm missing, I have to admit the PIRQ
> logic is awfully complicated, even more when we mix the HVM PIRQ
> stuff.

If you look at pirq_cleanup_check() you'll notice that it takes care
of one HVM case as well (the not emuirq one, i.e. particularly PVH,
but note also how physdev_hvm_map_pirq() calls map_domain_emuirq_pirq()
only conditionally). Plus the crucial aspect of the 2nd paragraph of
the description is that past calling pirq_cleanup_check() it is not
really valid anymore to (blindly) de-reference the struct pirq pointer
we hold in hands. The is_hvm_domain() qualification wasn't enough,
since - as said - it's only one of the possibilities that would allow
the pirq to remain legal to use past the call, when having taken the
function's

        if ( pirq->arch.hvm.emuirq != IRQ_UNBOUND )
            return;

path. A 2nd would be taking the

        if ( !pt_pirq_cleanup_check(&pirq->arch.hvm.dpci) )
            return;

path (i.e. a still in use pass-through IRQ), but the 3rd would still
end in the struct pirq being purged even for HVM.

>> And then after
>> removal from the radix tree the structure wasn't scheduled for freeing.
>> (All structures still left in the radix tree would be freed upon domain
>> destruction, though.)
> 
> So if my understanding is correct, we didn't have a leak due to the
> missing free_pirq_struct() because the inverted check in
> pirq_cleanup_check() macro prevented the removal from the radix tree,
> and so stale entries would be left there and freed at domain
> destruction?

That's the understanding I had come to, yes. What I wasn't entirely
sure about (see the 2nd post-commit-message remark) is why the entry
being left in the radix tree never caused any problems. Presumably
that's a result of pirq_get_info() first checking whether an entry is
already there, allocating a new one only for previously empty slots.

>> --- a/xen/common/event_channel.c
>> +++ b/xen/common/event_channel.c
>> @@ -711,9 +711,10 @@ int evtchn_close(struct domain *d1, int
>>              if ( !is_hvm_domain(d1) )
>>                  pirq_guest_unbind(d1, pirq);
>>              pirq->evtchn = 0;
>> -            pirq_cleanup_check(pirq, d1);
>> -            if ( is_hvm_domain(d1) && domain_pirq_to_irq(d1, pirq->pirq) > 0 )
>> -                unmap_domain_pirq_emuirq(d1, pirq->pirq);
>> +            if ( !is_hvm_domain(d1) ||
>> +                 domain_pirq_to_irq(d1, pirq->pirq) <= 0 ||
>> +                 unmap_domain_pirq_emuirq(d1, pirq->pirq) < 0 )
> 
> pirq_cleanup_check() already calls pirq_cleanup_check() itself.  Could
> you please add a comment to note that unmap_domain_pirq_emuirq()
> succeeding implies the call to pirq_cleanup_check() has already been
> done?
> 
> Otherwise the logic here looks unbalanced by skipping the
> pirq_cleanup_check() when unmap_domain_pirq_emuirq() succeeds.

Sure, added:

                /*
                 * The successful path of unmap_domain_pirq_emuirq() will have
                 * called pirq_cleanup_check() already.
                 */

>> --- a/xen/include/xen/irq.h
>> +++ b/xen/include/xen/irq.h
>> @@ -158,7 +158,7 @@ extern struct pirq *pirq_get_info(struct
>>  void pirq_cleanup_check(struct pirq *, struct domain *);
>>  
>>  #define pirq_cleanup_check(pirq, d) \
>> -    ((pirq)->evtchn ? pirq_cleanup_check(pirq, d) : (void)0)
>> +    (!(pirq)->evtchn ? pirq_cleanup_check(pirq, d) : (void)0)
> 
> Not that you need to fix it here, but why not place this check in
> pirq_cleanup_check() itself?

See the first of the post-commit-message remarks: The goal was to not
require every arch to replicate that check. At the time it wasn't
clear (to me at least) that the entire concept of pIRQ would likely
remain an x86 special thing anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 09:55:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 09:55:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751438.1159406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sODkp-0006R1-Ks; Mon, 01 Jul 2024 09:55:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751438.1159406; Mon, 01 Jul 2024 09:55:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sODkp-0006Qu-HT; Mon, 01 Jul 2024 09:55:23 +0000
Received: by outflank-mailman (input) for mailman id 751438;
 Mon, 01 Jul 2024 09:55: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=BFf9=OB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sODko-0006Qo-EQ
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 09:55:22 +0000
Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com
 [2607:f8b0:4864:20::836])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 07487a22-3790-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 11:55:21 +0200 (CEST)
Received: by mail-qt1-x836.google.com with SMTP id
 d75a77b69052e-4463b71d5b0so22315471cf.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 02:55:21 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-446513d42d3sm29627571cf.20.2024.07.01.02.55.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 02:55: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: 07487a22-3790-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719827720; x=1720432520; 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=APxz1MJtTXBoGBpS2Haof9kQS1XVMkzRZUquA3K6WGU=;
        b=nZulPUEK/mLcFVDH4TgFGUs2ksj3Y2go+zpc6MFqZx+ogV2z2vq2qTNZqdR7LZNWjC
         qkrhdXVVBfJy8XeJfwP36DX6f1oW0EGVDIV3UMoaNSi4JU8RvOAyJXaqnSVOAcQpBr+z
         ILIDEpWpqGEbqWhErrTXgeIWZBqf3aorNEDsI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719827720; x=1720432520;
        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=APxz1MJtTXBoGBpS2Haof9kQS1XVMkzRZUquA3K6WGU=;
        b=O6m++XkiEhCuIX4kTD2mHGfiYUpq7lk8bK+f+LrnppACX4VgXcEToyd3JHmie9rNT+
         gv+64nNjyEIPK1qzCWI8yT6eXXauhH2G3AR2h+BYcrSIj+JflBr+4TWS3mxiYGavXPjO
         qIIjyHQ4Hnkn0m3CpPtVhRPmVmiK137dKVUCL3cKmsp2/QWiR2msFOKEkF1KBgvOkTNL
         a97dMFNvdWiZL4Soi4+nmvLYyIw1fQyQb37jDYKoWkLDlOIMSyfvMbGap7E8DxCJME3H
         r/T+U0Qlh7SuKtOCs9dWJlTlgVqv3UXFwr/2Nk2qYNZtZY7onA7FTIA4mEiaBSyhKC6v
         tTgg==
X-Gm-Message-State: AOJu0YxEllBdYMpglIlyn4117TBteA/ubJWqUFfiVYw3hJr5T1egxtkX
	jX7fy3zwO+DjF3O8iw3cKlXjw+HF/h26vP7jlJ8araGBz8aKHJHiiNnPAsoQYMk=
X-Google-Smtp-Source: AGHT+IE+f2/PT6AYJ1/ZPTtr4ZjGBdtibTSdyzg7EzFo2RVX8+PxDwfWx/N9jDoChKfyl78MLyugaw==
X-Received: by 2002:ac8:57d2:0:b0:43f:f615:c5d6 with SMTP id d75a77b69052e-446556c265fmr168289221cf.21.1719827720148;
        Mon, 01 Jul 2024 02:55:20 -0700 (PDT)
Date: Mon, 1 Jul 2024 11:55:17 +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>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 3/3] cmdline: document and enforce "extra_guest_irqs"
 upper bounds
Message-ID: <ZoJ9Bd2kg3IQ0Z28@macbook>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <3c3a1d0c-06f2-a392-b2f9-381bed5c5e7b@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <3c3a1d0c-06f2-a392-b2f9-381bed5c5e7b@suse.com>

On Thu, Jul 27, 2023 at 09:38:55AM +0200, Jan Beulich wrote:
> PHYSDEVOP_pirq_eoi_gmfn_v<N> accepting just a single GFN implies that no
> more than 32k pIRQ-s can be used by a domain on x86. Document this upper
> bound.
> 
> To also enforce the limit, (ab)use both arch_hwdom_irqs() (changing its
> parameter type) and setup_system_domains(). This is primarily to avoid
> exposing the two static variables or introducing yet further arch hooks.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Instead of passing dom_xen into arch_hwdom_irqs(), NULL could also be
> used. That would make the connection to setup_system_domains() yet more
> weak, though.
> 
> Passing the domain pointer instead of the domain ID would also allow
> to return a possibly different value if sensible for PVH Dom0 (which
> presently has no access to PHYSDEVOP_pirq_eoi_gmfn_v<N> in the first
> place).
> ---
> v2: Also enforce these bounds. Adjust doc to constrain the bound to x86
>     only. Re-base over new earlier patch.
> 
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -1146,7 +1146,8 @@ common for all domUs, while the optional
>  is for dom0.  Changing the setting for domU has no impact on dom0 and vice
>  versa.  For example to change dom0 without changing domU, use
>  `extra_guest_irqs=,512`.  The default value for Dom0 and an eventual separate
> -hardware domain is architecture dependent.
> +hardware domain is architecture dependent.  The upper limit for both values on
> +x86 is such that the resulting total number of IRQs can't be higher than 32768.
>  Note that specifying zero as domU value means zero, while for dom0 it means
>  to use the default.
>  
> --- a/xen/arch/x86/io_apic.c
> +++ b/xen/arch/x86/io_apic.c
> @@ -2663,18 +2663,21 @@ void __init ioapic_init(void)
>             nr_irqs_gsi, nr_irqs - nr_irqs_gsi);
>  }
>  
> -unsigned int arch_hwdom_irqs(domid_t domid)
> +unsigned int arch_hwdom_irqs(const struct domain *d)

While at it, should this be __hwdom_init?

I'm fine with changing the function to take a domain parameter...

>  {
>      unsigned int n = fls(num_present_cpus());
>  
> -    if ( !domid )
> +    if ( is_system_domain(d) )
> +        return PAGE_SIZE * BITS_PER_BYTE;

... but why do we need a function call just to get a constant value?
Wouldn't this better be a define in a header?

> +
> +    if ( !d->domain_id )
>          n = min(n, dom0_max_vcpus());
>      n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, nr_irqs);
>  
>      /* Bounded by the domain pirq eoi bitmap gfn. */
>      n = min_t(unsigned int, n, PAGE_SIZE * BITS_PER_BYTE);

So that could also use the same constant here?

> -    printk("Dom%d has maximum %u PIRQs\n", domid, n);
> +    printk("%pd has maximum %u PIRQs\n", d, n);
>  
>      return n;
>  }
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -693,7 +693,7 @@ struct domain *domain_create(domid_t dom
>              d->nr_pirqs = nr_static_irqs + extra_domU_irqs;
>          else
>              d->nr_pirqs = extra_hwdom_irqs ? nr_static_irqs + extra_hwdom_irqs
> -                                           : arch_hwdom_irqs(domid);
> +                                           : arch_hwdom_irqs(d);
>          d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
>  
>          radix_tree_init(&d->pirq_tree);
> @@ -819,6 +819,24 @@ void __init setup_system_domains(void)
>      if ( IS_ERR(dom_xen) )
>          panic("Failed to create d[XEN]: %ld\n", PTR_ERR(dom_xen));
>  
> +#ifdef CONFIG_HAS_PIRQ
> +    /* Bound-check values passed via "extra_guest_irqs=". */
> +    {
> +        unsigned int n = max(arch_hwdom_irqs(dom_xen), nr_static_irqs);
> +
> +        if ( extra_hwdom_irqs > n - nr_static_irqs )
> +        {
> +            extra_hwdom_irqs = n - nr_static_irqs;
> +            printk(XENLOG_WARNING "hwdom IRQs bounded to %u\n", n);
> +        }
> +        if ( extra_domU_irqs > max(32U, n - nr_static_irqs) )
> +        {
> +            extra_domU_irqs = n - nr_static_irqs;
> +            printk(XENLOG_WARNING "domU IRQs bounded to %u\n", n);
> +        }
> +    }
> +#endif

IMO this is kind of a weird placement. Wouldn't this be more naturally
handled in parse_extra_guest_irqs()?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 10:41:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 10:41:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751463.1159425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOESk-0006Q4-2G; Mon, 01 Jul 2024 10:40:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751463.1159425; Mon, 01 Jul 2024 10:40:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOESj-0006Px-Tf; Mon, 01 Jul 2024 10:40:45 +0000
Received: by outflank-mailman (input) for mailman id 751463;
 Mon, 01 Jul 2024 10:40:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOESi-0006Pr-FV
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 10:40:44 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5df03a10-3796-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 12:40:43 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2ebe40673e8so32612261fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 03:40: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
 d2e1a72fcca58-708044b0de3sm6373824b3a.179.2024.07.01.03.40.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 03:40: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: 5df03a10-3796-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719830443; x=1720435243; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qs0G5cPaHeS95sBdCNtXtGqbsyVK4iUJhqx0QMmTsk8=;
        b=OEwcCEtwGh2lK2pjXFVjmFWkBoHaCceeNjygJ2mwofuo3ZzQ+v0URFg3GgjO/fckhC
         plWf5kN/E95N1tt4OIHZkoPVtg1mDPLUQz8txRaNGGRoHPtgqwlgP0fRueBKzINCXOKM
         9WEe4sm3y2WvBGEZz5qMrGbvqxN6iveBC8+Tae9o6OprWJ1021LmpN9QtZpZxLViQKf3
         vvzKpT9cYO7kwN3J8dsh+h8obMmujfX0+36xGEcdQKqzbQ3pl5dDMIr92GWzksZu3yrr
         twcDOAWOo0s72smPWLlvVGtY8Q8fra7XYtjqNqQGnCCUEsnJC/dZemuCCvr8SvLSbHL+
         IMKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719830443; x=1720435243;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qs0G5cPaHeS95sBdCNtXtGqbsyVK4iUJhqx0QMmTsk8=;
        b=c4wC0QSwfXl+23ahOl3XBMXescHHcjvROMDziDS6J226RbAZSeuXq7kr/JAYyk0Puc
         utht8APrlIUuSkYuPFYWUDO1fNd5M3Z8s4RtbRBtwLBMwbUbDwk5BqL8UszmjstguP6t
         6lazsTmIG7YRSvP8G3b/edkdeZ/3/73w9eSV4Em8TFGHj51CZo2hFP5fGfR6AyQqMphe
         v1kI2VSqlu2VZFDrGVGd5kmJ2oBK5lV/wnDSX77MJuJtCczem5pmu0sVb0jdq5zCmJJG
         9lOPJB0uU9Oi10ox3uw/2GuD6N43FvW5G2612ve/5/9B5jridAdrCUY/kdBNdwRZUuxH
         buUg==
X-Gm-Message-State: AOJu0YxYWzSGlvXYhVz5j/YXtnJAZibFcSbFWf//EjFNuMNgRMZGpxcV
	wOGQHr4143zU5We7XlSRtAXE7bGbRcan10x8RfBaLOCcSzPCLrUczi2PDIxo/w==
X-Google-Smtp-Source: AGHT+IGWCBz9q4PdCH4AcnlG6hXPwpH2odmzYlS9YcSA7Y8uQV9lvhjMNqPt5CMDijQDD+N05SdUWg==
X-Received: by 2002:a2e:3e15:0:b0:2ec:3c55:3056 with SMTP id 38308e7fff4ca-2ee5e6c9951mr28785561fa.44.1719830442576;
        Mon, 01 Jul 2024 03:40:42 -0700 (PDT)
Message-ID: <8ab71a85-6056-4c4f-8513-a21c061a176d@suse.com>
Date: Mon, 1 Jul 2024 12:40:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] cmdline: document and enforce "extra_guest_irqs"
 upper bounds
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>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <3c3a1d0c-06f2-a392-b2f9-381bed5c5e7b@suse.com> <ZoJ9Bd2kg3IQ0Z28@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZoJ9Bd2kg3IQ0Z28@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.07.2024 11:55, Roger Pau Monné wrote:
> On Thu, Jul 27, 2023 at 09:38:55AM +0200, Jan Beulich wrote:
>> --- a/xen/arch/x86/io_apic.c
>> +++ b/xen/arch/x86/io_apic.c
>> @@ -2663,18 +2663,21 @@ void __init ioapic_init(void)
>>             nr_irqs_gsi, nr_irqs - nr_irqs_gsi);
>>  }
>>  
>> -unsigned int arch_hwdom_irqs(domid_t domid)
>> +unsigned int arch_hwdom_irqs(const struct domain *d)
> 
> While at it, should this be __hwdom_init?

It indeed can be, so I've done this for v4.

> I'm fine with changing the function to take a domain parameter...
> 
>>  {
>>      unsigned int n = fls(num_present_cpus());
>>  
>> -    if ( !domid )
>> +    if ( is_system_domain(d) )
>> +        return PAGE_SIZE * BITS_PER_BYTE;
> 
> ... but why do we need a function call just to get a constant value?
> Wouldn't this better be a define in a header?

Would be an option, but would result in parts of the logic living is
distinct places.

>> +
>> +    if ( !d->domain_id )
>>          n = min(n, dom0_max_vcpus());
>>      n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, nr_irqs);
>>  
>>      /* Bounded by the domain pirq eoi bitmap gfn. */
>>      n = min_t(unsigned int, n, PAGE_SIZE * BITS_PER_BYTE);
> 
> So that could also use the same constant here?
> 
>> -    printk("Dom%d has maximum %u PIRQs\n", domid, n);
>> +    printk("%pd has maximum %u PIRQs\n", d, n);
>>  
>>      return n;
>>  }
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -693,7 +693,7 @@ struct domain *domain_create(domid_t dom
>>              d->nr_pirqs = nr_static_irqs + extra_domU_irqs;
>>          else
>>              d->nr_pirqs = extra_hwdom_irqs ? nr_static_irqs + extra_hwdom_irqs
>> -                                           : arch_hwdom_irqs(domid);
>> +                                           : arch_hwdom_irqs(d);
>>          d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
>>  
>>          radix_tree_init(&d->pirq_tree);
>> @@ -819,6 +819,24 @@ void __init setup_system_domains(void)
>>      if ( IS_ERR(dom_xen) )
>>          panic("Failed to create d[XEN]: %ld\n", PTR_ERR(dom_xen));
>>  
>> +#ifdef CONFIG_HAS_PIRQ
>> +    /* Bound-check values passed via "extra_guest_irqs=". */
>> +    {
>> +        unsigned int n = max(arch_hwdom_irqs(dom_xen), nr_static_irqs);
>> +
>> +        if ( extra_hwdom_irqs > n - nr_static_irqs )
>> +        {
>> +            extra_hwdom_irqs = n - nr_static_irqs;
>> +            printk(XENLOG_WARNING "hwdom IRQs bounded to %u\n", n);
>> +        }
>> +        if ( extra_domU_irqs > max(32U, n - nr_static_irqs) )
>> +        {
>> +            extra_domU_irqs = n - nr_static_irqs;
>> +            printk(XENLOG_WARNING "domU IRQs bounded to %u\n", n);
>> +        }
>> +    }
>> +#endif
> 
> IMO this is kind of a weird placement. Wouldn't this be more naturally
> handled in parse_extra_guest_irqs()?

Indeed it is and yes it would, but no, it can't. We shouldn't rely on
the particular behavior of arch_hwdom_irqs(), and in the general case
we can't call it as early as when command line arguments are parsed. I
couldn't think of a neater way of doing this, and it not being pretty
is why I'm saying "(ab)use" in the description.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 11:11:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 11:11:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751472.1159447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOEwB-0002Yd-8X; Mon, 01 Jul 2024 11:11:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751472.1159447; Mon, 01 Jul 2024 11: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 1sOEwB-0002YW-5l; Mon, 01 Jul 2024 11:11:11 +0000
Received: by outflank-mailman (input) for mailman id 751472;
 Mon, 01 Jul 2024 11: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOEwA-0002K1-E4
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 11:11:10 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9e1091ed-379a-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 13:11:08 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id D8DF14EE0749;
 Mon,  1 Jul 2024 13:11: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: 9e1091ed-379a-11ef-b4bb-af5377834399
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 01/17] misra: add deviation for headers that explicitly avoid guards
Date: Mon,  1 Jul 2024 13:10:19 +0200
Message-Id: <e7e61b4486c025a1014ad09aa774dfd392f858b8.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Some headers, under specific circumstances (documented in a comment at
the beginning of the file), explicitly avoid inclusion guards: the caller
is responsible for including them correctly.

These files are not supposed to comply with Directive 4.10:
"Precautions shall be taken in order to prevent the contents of a header
file being included more than once"

This patch adds deviation cooments for headers that avoid guards.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- rebased against current staging tree
Changes in v3:
- fix inconsistent deviation ID
- change comment-based deviation text
Changes in v2:
- use the format introduced with doc/misra/safe.json instead of
  a generic text-based deviation
---
 docs/misra/safe.json                        | 8 ++++++++
 xen/include/public/arch-x86/cpufeatureset.h | 1 +
 xen/include/public/errno.h                  | 1 +
 3 files changed, 10 insertions(+)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index 3f18ef401c..b865caac73 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -68,6 +68,14 @@
         },
         {
             "id": "SAF-8-safe",
+            "analyser": {
+                "eclair": "MC3R1.D4.10"
+            },
+            "name": "Dir 4.10: headers that leave it up to the caller to include them correctly",
+            "text": "Headers that deliberatively avoid inclusion guards explicitly leaving responsibility to the caller are allowed."
+        },
+        {
+            "id": "SAF-9-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index d9eba5e9a7..0d2adfdc3a 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -23,6 +23,7 @@
  * their XEN_CPUFEATURE() being appropriate in the included context.
  */
 
+/* SAF-8-safe omitted inclusion guard */
 #ifndef XEN_CPUFEATURE
 
 /*
diff --git a/xen/include/public/errno.h b/xen/include/public/errno.h
index 5a78a7607c..ccd5023c3a 100644
--- a/xen/include/public/errno.h
+++ b/xen/include/public/errno.h
@@ -17,6 +17,7 @@
  * will unilaterally #undef XEN_ERRNO().
  */
 
+/* SAF-8-safe omitted inclusion guard */
 #ifndef XEN_ERRNO
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 11:11:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 11:11:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751471.1159438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOEw9-0002KE-3o; Mon, 01 Jul 2024 11:11:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751471.1159438; Mon, 01 Jul 2024 11: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 1sOEw8-0002K7-Vk; Mon, 01 Jul 2024 11:11:08 +0000
Received: by outflank-mailman (input) for mailman id 751471;
 Mon, 01 Jul 2024 11:11: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOEw8-0002K1-DF
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 11:11:08 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c74d8ee-379a-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 13:11:06 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id 58E974EE0746;
 Mon,  1 Jul 2024 13:11: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: 9c74d8ee-379a-11ef-b4bb-af5377834399
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 00/17] xen: address violation of MISRA C:2012 Directive 4.10
Date: Mon,  1 Jul 2024 13:10:18 +0200
Message-Id: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The Xen sources contain violations of MISRA C:2012 Directive 4.10 whose headline states:
"Precautions shall be taken in order to prevent the contents of a header file
being included more than once".

Following V2 and V3, here are all the rules that have been applied:
- private headers -> <dir>_<filename>_H
- asm-generic headers -> ASM_GENERIC_<filename>_H
- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
- include/generated/<subdir>/<filename>.h-> GENERATED_<subdir>_<filename>_H
- arch/<architecture>/include/generated/asm/<filename>.h-> <arch>_GENERATED_ASM_<name>_H

Links to the discussions:
https://lists.xenproject.org/archives/html/xen-devel/2023-09/msg01928.html
https://lists.xenproject.org/archives/html/xen-devel/2023-10/msg01784.html
https://lists.xenproject.org/archives/html/xen-devel/2023-10/msg02073.html

Furthermore, the violations arising from the autogenerated header files
include/xen/compile.h and xen/hypercall-defs.h are addressed.

Patch 17/17 adds a new section for CODING_STYLE with the aforementioned naming
conventions. 
this is just a draft, please give us a feedback on whether something similar may
be appreciated. 

Changes in v4:
 add/amend inclusion guards to address violations of the Directive and the new naming convention.
 drop teh XEN_ prefix when needed, according to the feedback received.
 add inclusion guard naming convention section in CODING_STYLE

Changes in v3:
Add/amend inclusion guards to address violations of the Directive and the new naming convention.
Remove trailing underscores.
Modify creation rule for asm-offsets.h to conform to the new standard and to not generate conflicting
guards between architectures (which is a violation of the Directive).

Alessandro Zucchelli (2):
  xen/build: address violation of MISRA C Directive 4.10
  CODING_STYLE: Add a section on header guards naming conventions

Maria Celeste Cesario (3):
  xen/arm: address violations of MISRA C:2012 Directive 4.10
  xen: address violations of MISRA C:2012 Directive 4.10
  xen/x86: rename inclusion guards for consistency

Nicola Vetrini (2):
  xen: add deviations for MISRA C 2012 Dir D4.10
  xen: add SAF deviation for MISRA C Dir 4.10

Simone Ballarin (10):
  misra: add deviation for headers that explicitly avoid guards
  misra: modify deviations for empty and generated headers
  misra: add deviations for direct inclusion guards
  xen/arm: address violations of MISRA C:2012 Directive 4.10
  xen/x86: address violations of MISRA C:2012 Directive 4.10
  x86/EFI: address violations of MISRA C:2012 Directive 4.10
  xen/common: address violations of MISRA C:2012 Directive 4.10
  xen/efi: address violations of MISRA C:2012 Directive 4.10
  xen: address violations of MISRA C:2012 Directive 4.10
  x86/asm: address violations of MISRA C:2012 Directive 4.10

 CODING_STYLE                                  | 19 +++++++++
 .../eclair_analysis/ECLAIR/deviations.ecl     | 12 +++---
 docs/misra/deviations.rst                     |  7 ++++
 docs/misra/safe.json                          | 40 +++++++++++++++++++
 xen/arch/arm/efi/efi-boot.h                   |  6 +++
 xen/arch/arm/efi/runtime.h                    |  1 +
 xen/arch/arm/include/asm/domain.h             |  6 +--
 xen/arch/arm/include/asm/efibind.h            |  5 +++
 xen/arch/arm/include/asm/event.h              |  6 +--
 xen/arch/arm/include/asm/grant_table.h        |  6 +--
 xen/arch/arm/include/asm/hypercall.h          |  1 +
 xen/arch/arm/include/asm/io.h                 |  6 +--
 xen/arch/arm/include/asm/irq.h                |  6 +--
 xen/arch/arm/include/asm/smp.h                |  6 +--
 xen/arch/arm/include/asm/spinlock.h           |  6 +--
 xen/arch/arm/include/asm/system.h             |  6 +--
 xen/arch/x86/Makefile                         |  9 +++--
 xen/arch/x86/cpu/cpu.h                        |  5 +++
 xen/arch/x86/efi/efi-boot.h                   |  7 ++++
 xen/arch/x86/efi/runtime.h                    |  5 +++
 xen/arch/x86/include/asm/compat.h             |  5 +++
 xen/arch/x86/include/asm/cpufeatures.h        |  5 +--
 xen/arch/x86/include/asm/domain.h             |  6 +--
 xen/arch/x86/include/asm/efibind.h            |  5 +++
 xen/arch/x86/include/asm/event.h              |  6 +--
 xen/arch/x86/include/asm/grant_table.h        |  6 +--
 xen/arch/x86/include/asm/hypercall.h          |  1 +
 xen/arch/x86/include/asm/io.h                 |  6 +--
 xen/arch/x86/include/asm/irq.h                |  6 +--
 xen/arch/x86/include/asm/smp.h                |  6 +--
 xen/arch/x86/include/asm/spinlock.h           |  6 +--
 xen/arch/x86/include/asm/system.h             |  6 +--
 xen/arch/x86/x86_64/mmconfig.h                |  5 +++
 xen/arch/x86/x86_emulate/private.h            |  5 +++
 xen/build.mk                                  | 13 ++++--
 xen/common/decompress.h                       |  5 +++
 xen/common/efi/efi.h                          |  5 +++
 xen/common/event_channel.h                    |  5 +++
 xen/include/Makefile                          | 18 +++++++--
 xen/include/public/arch-x86/cpufeatureset.h   |  1 +
 xen/include/public/arch-x86/xen.h             |  1 +
 xen/include/public/errno.h                    |  1 +
 xen/include/xen/err.h                         |  8 ++--
 xen/include/xen/pci_ids.h                     |  5 +++
 xen/include/xen/softirq.h                     |  8 ++--
 xen/include/xen/vmap.h                        |  8 ++--
 xen/scripts/Makefile.asm-generic              |  8 +++-
 47 files changed, 244 insertions(+), 81 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 11:11:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 11:11:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751473.1159457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOEwF-0002pw-Ja; Mon, 01 Jul 2024 11:11:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751473.1159457; Mon, 01 Jul 2024 11: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 1sOEwF-0002po-FT; Mon, 01 Jul 2024 11:11:15 +0000
Received: by outflank-mailman (input) for mailman id 751473;
 Mon, 01 Jul 2024 11:11: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOEwE-0002K1-84
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 11:11:14 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a043f2b6-379a-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 13:11:12 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id 792724EE0747;
 Mon,  1 Jul 2024 13:11: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: a043f2b6-379a-11ef-b4bb-af5377834399
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	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>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 02/17] misra: modify deviations for empty and generated headers
Date: Mon,  1 Jul 2024 13:10:20 +0200
Message-Id: <ec512e73b739d0d1c83de559bdab2e461a214644.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

This patch modifies deviations for Directive 4.10:
"Precautions shall be taken in order to prevent the contents of
a header file being included more than once"

This patch avoids the file-based deviation for empty headers, and
replaces it with a comment-based one using the format specified in
docs/misra/safe.json.

Generated headers are not generally safe against multi-inclusions,
whether a header is safe depends on the nature of the generated code
in the header. For that reason, this patch drops the deviation for
generated headers.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- rebased against current staging tree

Changes in v2:
- use the format introduced with doc/misra/safe.json instead of
  a file-based deviation for empty headers
- remove deviation for generated headers

The reason of moving the comment-based deviation in "runtime.h" is that
it should appear immediatly before the violation and, for files with no
tokens,	the location is the the last line of the file.
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 7 -------
 docs/misra/safe.json                             | 8 ++++++++
 xen/arch/arm/efi/runtime.h                       | 1 +
 xen/include/Makefile                             | 2 +-
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 0af1cb93d1..1c39a9a16d 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -72,13 +72,6 @@ they are not instances of commented-out code."
 -config=MC3R1.D4.3,reports+={deliberate, "any_area(any_loc(file(arm64_bitops))&&context(name(int_clear_mask16)))"}
 -doc_end
 
--doc_begin="This header file is autogenerated or empty, therefore it poses no
-risk if included more than once."
--file_tag+={empty_header, "^xen/arch/arm/efi/runtime\\.h$"}
--file_tag+={autogen_headers, "^xen/include/xen/compile\\.h$||^xen/include/generated/autoconf.h$||^xen/include/xen/hypercall-defs.h$"}
--config=MC3R1.D4.10,reports+={safe, "all_area(all_loc(file(empty_header||autogen_headers)))"}
--doc_end
-
 -doc_begin="Files that are intended to be included more than once do not need to
 conform to the directive."
 -config=MC3R1.D4.10,reports+={safe, "first_area(text(^/\\* This file is legitimately included multiple times\\. \\*/$, begin-4))"}
diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index b865caac73..282013aa4e 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -76,6 +76,14 @@
         },
         {
             "id": "SAF-9-safe",
+            "analyser": {
+                "eclair": "MC3R1.D4.10"
+            },
+            "name": "Dir 4.10: empty headers",
+            "text": "Empty headers pose no risk if included more than once."
+        },
+        {
+            "id": "SAF-10-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/arch/arm/efi/runtime.h b/xen/arch/arm/efi/runtime.h
index 25afcebed1..4d2d40bf3c 100644
--- a/xen/arch/arm/efi/runtime.h
+++ b/xen/arch/arm/efi/runtime.h
@@ -1 +1,2 @@
 /* Placeholder for ARM-specific runtime include/declarations */
+/* SAF-9-safe empty header */
diff --git a/xen/include/Makefile b/xen/include/Makefile
index 2e61b50139..058b0a566b 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -53,7 +53,7 @@ cmd_compat_h = \
     mv -f $@.new $@
 
 quiet_cmd_stub_h = GEN     $@
-cmd_stub_h = echo '/* empty */' >$@
+cmd_stub_h = echo '/* SAF-9-safe empty header */' >$@
 
 quiet_cmd_compat_i = CPP     $@
 cmd_compat_i = $(CPP) $(filter-out -Wa$(comma)% -include %/include/xen/config.h,$(XEN_CFLAGS)) $(cppflags-y) -o $@ $<
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 11:11:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 11:11:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751476.1159468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOEwJ-00038Y-RU; Mon, 01 Jul 2024 11:11:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751476.1159468; Mon, 01 Jul 2024 11:11: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 1sOEwJ-00038R-Mu; Mon, 01 Jul 2024 11:11:19 +0000
Received: by outflank-mailman (input) for mailman id 751476;
 Mon, 01 Jul 2024 11:11:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOEwI-0002K1-CX
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 11:11:18 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2d06428-379a-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 13:11:16 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id 2BCA94EE0746;
 Mon,  1 Jul 2024 13:11: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: a2d06428-379a-11ef-b4bb-af5377834399
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 03/17] misra: add deviations for direct inclusion guards
Date: Mon,  1 Jul 2024 13:10:21 +0200
Message-Id: <64e80abfaa68d87e8cb4fee67bc2624eda4f466a.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add deviation comments to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Inclusion guards must appear at the beginning of the headers
(comments are permitted anywhere).

This patch adds deviation comments using the format specified
in docs/misra/safe.json for headers with just the direct
inclusion guard before the inclusion guard since they are
safe and not supposed to comply with the directive.

Note that with SAF-9-safe in place, failures to have proper guards later
in the header files will not be reported

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- Added comment clarifying that no further checks will be performed
on a file that has a SAF-9-safe deviation against missing inclusion
guards.
- rebased against the current staging tree

Changes in v3:
- fix inconsistent deviation ID
The patch has been introduced in v2.
---
 docs/misra/safe.json                 | 8 ++++++++
 xen/arch/arm/include/asm/hypercall.h | 1 +
 xen/arch/x86/include/asm/hypercall.h | 1 +
 3 files changed, 10 insertions(+)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index 282013aa4e..3e9ebff8fe 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -84,6 +84,14 @@
         },
         {
             "id": "SAF-10-safe",
+            "analyser": {
+                "eclair": "MC3R1.D4.10"
+            },
+            "name": "Dir 4.10: direct inclusion guard before",
+            "text": "Headers with just the direct inclusion guard before the inclusion guard are safe."
+        },
+        {
+            "id": "SAF-11-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/arch/arm/include/asm/hypercall.h b/xen/arch/arm/include/asm/hypercall.h
index ccd26c5184..07e231f8b5 100644
--- a/xen/arch/arm/include/asm/hypercall.h
+++ b/xen/arch/arm/include/asm/hypercall.h
@@ -1,3 +1,4 @@
+/* SAF-10-safe direct inclusion guard before */
 #ifndef __XEN_HYPERCALL_H__
 #error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead"
 #endif
diff --git a/xen/arch/x86/include/asm/hypercall.h b/xen/arch/x86/include/asm/hypercall.h
index ec2edc771e..389fa62af2 100644
--- a/xen/arch/x86/include/asm/hypercall.h
+++ b/xen/arch/x86/include/asm/hypercall.h
@@ -2,6 +2,7 @@
  * asm-x86/hypercall.h
  */
 
+/* SAF-10-safe direct inclusion guard before */
 #ifndef __XEN_HYPERCALL_H__
 #error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead"
 #endif
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 11:13:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 11:13:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751493.1159477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOEyg-0004QZ-78; Mon, 01 Jul 2024 11:13:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751493.1159477; Mon, 01 Jul 2024 11: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 1sOEyg-0004QS-4J; Mon, 01 Jul 2024 11:13:46 +0000
Received: by outflank-mailman (input) for mailman id 751493;
 Mon, 01 Jul 2024 11: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=BFf9=OB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sOEye-0004QM-3s
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 11:13:44 +0000
Received: from mail-qt1-x829.google.com (mail-qt1-x829.google.com
 [2607:f8b0:4864:20::829])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f8e19d5b-379a-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 13:13:41 +0200 (CEST)
Received: by mail-qt1-x829.google.com with SMTP id
 d75a77b69052e-44639872fd4so22747581cf.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 04:13:41 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-4465149beafsm30108801cf.74.2024.07.01.04.13.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 04:13: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: f8e19d5b-379a-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719832420; x=1720437220; 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=Zfh0Vje5EhtXUwiUR0sYJwb4Nms0c5JIBo7Os/ZHbpQ=;
        b=AtCebFMzz1YBiel2ygceiS+UZCzXIQMxaRuU54ioxkim63vE9bBNYXck1ZtcrmyTnK
         thMMsfZEJnhxqhM8mKvEk4bm+9Z+PHIjig388TP1ypQIlgCvXf9Mgll3ImbYHE9t3hvi
         QUh4w79oIfWtsodG8AoJuiNlHHVhD11uldB84=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719832420; x=1720437220;
        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=Zfh0Vje5EhtXUwiUR0sYJwb4Nms0c5JIBo7Os/ZHbpQ=;
        b=Bk+KF8bsggWcjrsqMi525I1jgMzG+URMkM9IzspCIVkLyZZ171YbPUxWsLDIhw2An+
         2JeR306FfInFZJk8jJdFyK661FtLTszyvc/P3WCPLj3ACK2pN3AGYC58ApyI1MTVWXu7
         1GHMsZHtyuvTlY4cY3zIUfI0YFuqx/ZGnY/9Pr5uqrs94lmK0DFBHYmIcdAoQlXUvy7r
         Eqt0pnieNPS4bakkAEb2jM5s22xZIVN97VHwiXxaXu/plgvkaWspqaFUV0dFADTTFQV/
         omm1Q1se0eOrLERdugod85tNlUVNZe8Us1WW3YzXrCOS9NSuop9mYgnUhw7JH6H5qiix
         FuyA==
X-Gm-Message-State: AOJu0YzC5/cFkRdowEibxtlRgU4cjrts3h5Np1Z7zxTjdHjeUaVho8rv
	vRYiTeL3XZwP7Cg0Fb6Kj67yWIWE+MZAJvT9iB3AAXSPkadjSdNq3NkpAw3wF0E=
X-Google-Smtp-Source: AGHT+IEZEVIzlx87eEmP6qKbxEFZuZB1a4bgWTYXD5ukTRwGldCkpSfZiigidpjlj32UOwmYo2RG6A==
X-Received: by 2002:a05:622a:1a86:b0:445:32b:df03 with SMTP id d75a77b69052e-44662e03e50mr56752561cf.33.1719832420533;
        Mon, 01 Jul 2024 04:13:40 -0700 (PDT)
Date: Mon, 1 Jul 2024 13:13:22 +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>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 2/3] pirq_cleanup_check() leaks
Message-ID: <ZoKPUotSg4HOlRzJ@macbook>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <5641f8eb-5736-8ccc-122b-b3b47c1bac28@suse.com>
 <ZoJu3jcsiCWwOhBl@macbook>
 <7d51b6b7-affb-46fd-98dc-b54d3842f6c2@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7d51b6b7-affb-46fd-98dc-b54d3842f6c2@suse.com>

On Mon, Jul 01, 2024 at 11:47:34AM +0200, Jan Beulich wrote:
> On 01.07.2024 10:55, Roger Pau Monné wrote:
> > On Thu, Jul 27, 2023 at 09:38:29AM +0200, Jan Beulich wrote:
> >> Its original introduction had two issues: For one the "common" part of
> >> the checks (carried out in the macro) was inverted.
> > 
> > Is the current logic in evtchn_close() really malfunctioning?
> 
> First: I'm getting the impression that this entire comment doesn't relate
> to the part of the description above, but to the 2nd paragraph further
> down. Otherwise I'm afraid I may not properly understand your question,
> and hence my response below may not make any sense at all.
> 
> > pirq->evtchn = 0;
> > pirq_cleanup_check(pirq, d1); <- cleanup for PV domains
> > if ( is_hvm_domain(d1) && domain_pirq_to_irq(d1, pirq->pirq) > 0 )
> >     unmap_domain_pirq_emuirq(d1, pirq->pirq); <- cleanup for HVM domains
> > 
> > It would seem to me the pirq_cleanup_check() call just after setting
> > evtchn = 0 was done to account for PV domains, while the second
> > (hidden) pirq_cleanup_check() call in unmap_domain_pirq_emuirq() would
> > do the cleanup for HVM domains.
> > 
> > Maybe there's something that I'm missing, I have to admit the PIRQ
> > logic is awfully complicated, even more when we mix the HVM PIRQ
> > stuff.
> 
> If you look at pirq_cleanup_check() you'll notice that it takes care
> of one HVM case as well (the not emuirq one, i.e. particularly PVH,
> but note also how physdev_hvm_map_pirq() calls map_domain_emuirq_pirq()
> only conditionally). Plus the crucial aspect of the 2nd paragraph of
> the description is that past calling pirq_cleanup_check() it is not
> really valid anymore to (blindly) de-reference the struct pirq pointer
> we hold in hands. The is_hvm_domain() qualification wasn't enough,
> since - as said - it's only one of the possibilities that would allow
> the pirq to remain legal to use past the call, when having taken the
> function's
> 
>         if ( pirq->arch.hvm.emuirq != IRQ_UNBOUND )
>             return;
> 
> path. A 2nd would be taking the
> 
>         if ( !pt_pirq_cleanup_check(&pirq->arch.hvm.dpci) )
>             return;
> 
> path (i.e. a still in use pass-through IRQ), but the 3rd would still
> end in the struct pirq being purged even for HVM.

Right, I was missing that if pirq is properly freed then further
usages of it after the pirq_cleanup_check() would be use after free.

> >> And then after
> >> removal from the radix tree the structure wasn't scheduled for freeing.
> >> (All structures still left in the radix tree would be freed upon domain
> >> destruction, though.)
> > 
> > So if my understanding is correct, we didn't have a leak due to the
> > missing free_pirq_struct() because the inverted check in
> > pirq_cleanup_check() macro prevented the removal from the radix tree,
> > and so stale entries would be left there and freed at domain
> > destruction?
> 
> That's the understanding I had come to, yes. What I wasn't entirely
> sure about (see the 2nd post-commit-message remark) is why the entry
> being left in the radix tree never caused any problems. Presumably
> that's a result of pirq_get_info() first checking whether an entry is
> already there, allocating a new one only for previously empty slots.

Yes, I came to the same conclusion, that not freeing wasn't an issue
as Xen would re-use the old entry.  Hopefully it's clean enough to not
cause issues when re-using.

> >> --- a/xen/common/event_channel.c
> >> +++ b/xen/common/event_channel.c
> >> @@ -711,9 +711,10 @@ int evtchn_close(struct domain *d1, int
> >>              if ( !is_hvm_domain(d1) )
> >>                  pirq_guest_unbind(d1, pirq);
> >>              pirq->evtchn = 0;
> >> -            pirq_cleanup_check(pirq, d1);
> >> -            if ( is_hvm_domain(d1) && domain_pirq_to_irq(d1, pirq->pirq) > 0 )
> >> -                unmap_domain_pirq_emuirq(d1, pirq->pirq);
> >> +            if ( !is_hvm_domain(d1) ||
> >> +                 domain_pirq_to_irq(d1, pirq->pirq) <= 0 ||
> >> +                 unmap_domain_pirq_emuirq(d1, pirq->pirq) < 0 )
> > 
> > pirq_cleanup_check() already calls pirq_cleanup_check() itself.  Could
> > you please add a comment to note that unmap_domain_pirq_emuirq()
> > succeeding implies the call to pirq_cleanup_check() has already been
> > done?
> > 
> > Otherwise the logic here looks unbalanced by skipping the
> > pirq_cleanup_check() when unmap_domain_pirq_emuirq() succeeds.
> 
> Sure, added:
> 
>                 /*
>                  * The successful path of unmap_domain_pirq_emuirq() will have
>                  * called pirq_cleanup_check() already.
>                  */

With that added:

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

> >> --- a/xen/include/xen/irq.h
> >> +++ b/xen/include/xen/irq.h
> >> @@ -158,7 +158,7 @@ extern struct pirq *pirq_get_info(struct
> >>  void pirq_cleanup_check(struct pirq *, struct domain *);
> >>  
> >>  #define pirq_cleanup_check(pirq, d) \
> >> -    ((pirq)->evtchn ? pirq_cleanup_check(pirq, d) : (void)0)
> >> +    (!(pirq)->evtchn ? pirq_cleanup_check(pirq, d) : (void)0)
> > 
> > Not that you need to fix it here, but why not place this check in
> > pirq_cleanup_check() itself?
> 
> See the first of the post-commit-message remarks: The goal was to not
> require every arch to replicate that check. At the time it wasn't
> clear (to me at least) that the entire concept of pIRQ would likely
> remain an x86 special thing anyway.

Anyway, such change would better be done in a separate commit anyway.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 11:44:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 11:44:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751507.1159487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOFS2-0008Po-BX; Mon, 01 Jul 2024 11:44:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751507.1159487; Mon, 01 Jul 2024 11:44:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOFS2-0008Ph-89; Mon, 01 Jul 2024 11:44:06 +0000
Received: by outflank-mailman (input) for mailman id 751507;
 Mon, 01 Jul 2024 11:44:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOFS1-0008PX-Dq; Mon, 01 Jul 2024 11:44:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOFS1-0005EE-A7; Mon, 01 Jul 2024 11:44:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOFS0-0006Xi-Vs; Mon, 01 Jul 2024 11:44:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOFS0-00068l-VP; Mon, 01 Jul 2024 11:44:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=U2gBuh7mnSNohsnbJog2zTjiRLaXhaqlofBDW77CBrc=; b=SQMvcchb/gZaaCy5xs7tLXBqUo
	jj5bWV4NJEWqOnzrwwFbJAgde0VjLklrS1Eg9gosGk98XJjYwrhcEUW1ZQX4SyeDfJ23S1Nk5OOSu
	HbmJjx+3dI4jw+bErI54v/cT7qPw696alj46+TnSj9oVUC+EwEh8PoC9wkXEv5PIoAFo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186616-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186616: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=8bf27965dbb94ecccc453c60de3270acf238ea3d
X-Osstest-Versions-That:
    ovmf=8c09d862bfb034e00b6b3bc37fe37243c866dd3a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Jul 2024 11:44:04 +0000

flight 186616 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186616/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 8bf27965dbb94ecccc453c60de3270acf238ea3d
baseline version:
 ovmf                 8c09d862bfb034e00b6b3bc37fe37243c866dd3a

Last test of basis   186612  2024-07-01 00:11:24 Z    0 days
Testing same since   186616  2024-07-01 09:44:55 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jeshua Smith <jeshuas@nvidia.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   8c09d862bf..8bf27965db  8bf27965dbb94ecccc453c60de3270acf238ea3d -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 12:01:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 12:01:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751519.1159498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOFiZ-0002mo-KY; Mon, 01 Jul 2024 12:01:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751519.1159498; Mon, 01 Jul 2024 12:01: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 1sOFiZ-0002mh-Ge; Mon, 01 Jul 2024 12:01:11 +0000
Received: by outflank-mailman (input) for mailman id 751519;
 Mon, 01 Jul 2024 12:01: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=1OIh=OB=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sOFiY-0002jY-6s
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 12:01:10 +0000
Received: from pb-smtp1.pobox.com (pb-smtp1.pobox.com [64.147.108.70])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98e2c7df-37a1-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 14:01:07 +0200 (CEST)
Received: from pb-smtp1.pobox.com (unknown [127.0.0.1])
 by pb-smtp1.pobox.com (Postfix) with ESMTP id CFECC3793D;
 Mon,  1 Jul 2024 08:01:05 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1])
 by pb-smtp1.pobox.com (Postfix) with ESMTP id ADC1D3793C;
 Mon,  1 Jul 2024 08:01:05 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [46.211.3.74])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp1.pobox.com (Postfix) with ESMTPSA id 06E773793B;
 Mon,  1 Jul 2024 08:01:04 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 98e2c7df-37a1-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:mime-version:content-transfer-encoding;
	 s=sasl; bh=sLFUZ1LCg0ZS7rmyYNp2DcwZHpYfA6VaUqJFXaKesDw=; b=Yd8/
	qVTFhKXSSC+74FOtBR01ynqjUVJpiIn0fhY6ZIcSg3NnyJdV0vSYIXmylO+4GJ2v
	1HNgH7o6gzye+V3Y0LXCYpZZGdsAepKLTQ/uRB4ba7zZaXsKsUmqHzr7NVx/tH4D
	Melb8kfjPXVy5rAaUNqnOCc94hY/OTJ+Bnn2+DI=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 0/2] x86: separate powernow/hwp/acpi cpufreq code
Date: Mon,  1 Jul 2024 15:01:00 +0300
Message-Id: <cover.1719832871.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
X-Pobox-Relay-ID:
 975D1400-37A1-11EF-A70C-5B6DE52EC81B-90055647!pb-smtp1.pobox.com
Content-Transfer-Encoding: quoted-printable

This short series aims to make platform-specific parts of cpufreq optiona=
l
and dependant on INTEL & AMD config options. This is to allow for tuning
the build for either AMD or Intel platform exclusively and hence to drop
the code that would be left unused.

The initial v1 patch has been extended to not only cover HWP & Powernow
drivers, but additionally ACPI driver is moved outside of cpufreq generic=
 code
and as Intel-dependant piece is put under CONFIG_INTEL option.

Patch v1 & related discussion are here:
https://lore.kernel.org/xen-devel/20240604093406.2448552-1-Sergiy_Kibrik@=
epam.com/

Sergiy Kibrik (2):
  x86/cpufreq: move ACPI cpufreq driver into separate file
  x86/cpufreq: separate powernow/hwp/acpi cpufreq code

 xen/arch/x86/acpi/cpufreq/Makefile  |   5 +-
 xen/arch/x86/acpi/cpufreq/acpi.c    | 622 ++++++++++++++++++++++++++++
 xen/arch/x86/acpi/cpufreq/cpufreq.c | 598 +-------------------------
 xen/drivers/acpi/pmstat.c           |   2 +-
 xen/drivers/cpufreq/cpufreq.c       |   3 +-
 xen/drivers/cpufreq/utility.c       |   2 +-
 xen/include/acpi/cpufreq/cpufreq.h  |  10 +
 7 files changed, 644 insertions(+), 598 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/acpi.c

--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 12:03:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 12:03:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751525.1159507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOFkY-0003Ko-Ug; Mon, 01 Jul 2024 12:03:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751525.1159507; Mon, 01 Jul 2024 12:03: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 1sOFkY-0003Kh-Ry; Mon, 01 Jul 2024 12:03:14 +0000
Received: by outflank-mailman (input) for mailman id 751525;
 Mon, 01 Jul 2024 12:03: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=1OIh=OB=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sOFkX-0003Jy-Lw
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 12:03:13 +0000
Received: from pb-smtp2.pobox.com (pb-smtp2.pobox.com [64.147.108.71])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e2b1f911-37a1-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 14:03:11 +0200 (CEST)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id CA95E28AAD;
 Mon,  1 Jul 2024 08:03:09 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id C1CAE28AAC;
 Mon,  1 Jul 2024 08:03:09 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [46.211.3.74])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp2.pobox.com (Postfix) with ESMTPSA id BE31A28AAB;
 Mon,  1 Jul 2024 08:03:07 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e2b1f911-37a1-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=qkU0yxHmSOO39KkkibZBAXr0v
	HgOxT78WcDDzQyzrDQ=; b=FcGuJkmFBLPFoqO9GufsGYMoA8s+39cYkHxgpPH75
	jhhWJfykhdogaiY0PPmaJV1Qc84/kCDa44WOuQBud4Ua6I7NVqhag5vFFKc2osL2
	z0Ujvya029vGfOvYUFQtplM1ymGZHYjwHJsSWr1xA5zCo66Y9glSTQVjrvHSv6mJ
	AY=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 1/2] x86/cpufreq: move ACPI cpufreq driver into separate file
Date: Mon,  1 Jul 2024 15:03:05 +0300
Message-Id: <d8a13eb8c53d8cde99d7fa1d8e4fce2a597f02fd.1719832871.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1719832871.git.Sergiy_Kibrik@epam.com>
References: <cover.1719832871.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 E11F87B2-37A1-11EF-98E2-965B910A682E-90055647!pb-smtp2.pobox.com
Content-Transfer-Encoding: quoted-printable

Separate ACPI driver from generic initialization cpufreq code.
This way acpi-cpufreq can become optional in the future and be disabled
from non-Intel builds.

Other than acpi_register_driver() helper added and clean up a list of
included headers no changes to code were introduced.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
---
 xen/arch/x86/acpi/cpufreq/Makefile  |   1 +
 xen/arch/x86/acpi/cpufreq/acpi.c    | 622 ++++++++++++++++++++++++++++
 xen/arch/x86/acpi/cpufreq/cpufreq.c | 592 +-------------------------
 xen/include/acpi/cpufreq/cpufreq.h  |   1 +
 4 files changed, 625 insertions(+), 591 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/acpi.c

diff --git a/xen/arch/x86/acpi/cpufreq/Makefile b/xen/arch/x86/acpi/cpufr=
eq/Makefile
index db83aa6b14..44d4c0b497 100644
--- a/xen/arch/x86/acpi/cpufreq/Makefile
+++ b/xen/arch/x86/acpi/cpufreq/Makefile
@@ -1,3 +1,4 @@
+obj-y +=3D acpi.o
 obj-y +=3D cpufreq.o
 obj-y +=3D hwp.o
 obj-y +=3D powernow.o
diff --git a/xen/arch/x86/acpi/cpufreq/acpi.c b/xen/arch/x86/acpi/cpufreq=
/acpi.c
new file mode 100644
index 0000000000..bf4e964377
--- /dev/null
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -0,0 +1,622 @@
+/*
+ *  cpufreq.c - ACPI Processor P-States Driver ($Revision: 1.4 $)
+ *
+ *  Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
+ *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.=
com>
+ *  Copyright (C) 2002 - 2004 Dominik Brodowski <linux@brodo.de>
+ *  Copyright (C) 2006        Denis Sadykov <denis.m.sadykov@intel.com>
+ *
+ *  Feb 2008 - Liu Jinsong <jinsong.liu@intel.com>
+ *      porting acpi-cpufreq.c from Linux 2.6.23 to Xen hypervisor
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=
~~~~~
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or (a=
t
+ *  your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful, but
+ *  WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License al=
ong
+ *  with this program; If not, see <http://www.gnu.org/licenses/>.
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=
~~~~~
+ */
+
+#include <xen/types.h>
+#include <xen/errno.h>
+#include <xen/delay.h>
+#include <xen/param.h>
+#include <acpi/acpi.h>
+#include <acpi/cpufreq/cpufreq.h>
+
+
+enum {
+    UNDEFINED_CAPABLE =3D 0,
+    SYSTEM_INTEL_MSR_CAPABLE,
+    SYSTEM_IO_CAPABLE,
+};
+
+#define INTEL_MSR_RANGE         (0xffffull)
+
+static bool __read_mostly acpi_pstate_strict;
+boolean_param("acpi_pstate_strict", acpi_pstate_strict);
+
+static unsigned extract_io(u32 value, struct acpi_cpufreq_data *data)
+{
+    struct processor_performance *perf;
+    int i;
+
+    perf =3D data->acpi_data;
+
+    for (i=3D0; i<perf->state_count; i++) {
+        if (value =3D=3D perf->states[i].status)
+            return data->freq_table[i].frequency;
+    }
+    return 0;
+}
+
+static unsigned extract_msr(u32 msr, struct acpi_cpufreq_data *data)
+{
+    int i;
+    struct processor_performance *perf;
+
+    msr &=3D INTEL_MSR_RANGE;
+    perf =3D data->acpi_data;
+
+    for (i=3D0; data->freq_table[i].frequency !=3D CPUFREQ_TABLE_END; i+=
+) {
+        if (msr =3D=3D perf->states[data->freq_table[i].index].status)
+            return data->freq_table[i].frequency;
+    }
+    return data->freq_table[0].frequency;
+}
+
+static unsigned extract_freq(u32 val, struct acpi_cpufreq_data *data)
+{
+    switch (data->arch_cpu_flags) {
+    case SYSTEM_INTEL_MSR_CAPABLE:
+        return extract_msr(val, data);
+    case SYSTEM_IO_CAPABLE:
+        return extract_io(val, data);
+    default:
+        return 0;
+    }
+}
+
+struct msr_addr {
+    u32 reg;
+};
+
+struct io_addr {
+    u16 port;
+    u8 bit_width;
+};
+
+typedef union {
+    struct msr_addr msr;
+    struct io_addr io;
+} drv_addr_union;
+
+struct drv_cmd {
+    unsigned int type;
+    const cpumask_t *mask;
+    drv_addr_union addr;
+    u32 val;
+};
+
+static void cf_check do_drv_read(void *drvcmd)
+{
+    struct drv_cmd *cmd;
+
+    cmd =3D (struct drv_cmd *)drvcmd;
+
+    switch (cmd->type) {
+    case SYSTEM_INTEL_MSR_CAPABLE:
+        rdmsrl(cmd->addr.msr.reg, cmd->val);
+        break;
+    case SYSTEM_IO_CAPABLE:
+        acpi_os_read_port((acpi_io_address)cmd->addr.io.port,
+            &cmd->val, (u32)cmd->addr.io.bit_width);
+        break;
+    default:
+        break;
+    }
+}
+
+static void cf_check do_drv_write(void *drvcmd)
+{
+    struct drv_cmd *cmd;
+    uint64_t msr_content;
+
+    cmd =3D (struct drv_cmd *)drvcmd;
+
+    switch (cmd->type) {
+    case SYSTEM_INTEL_MSR_CAPABLE:
+        rdmsrl(cmd->addr.msr.reg, msr_content);
+        msr_content =3D (msr_content & ~INTEL_MSR_RANGE)
+            | (cmd->val & INTEL_MSR_RANGE);
+        wrmsrl(cmd->addr.msr.reg, msr_content);
+        break;
+    case SYSTEM_IO_CAPABLE:
+        acpi_os_write_port((acpi_io_address)cmd->addr.io.port,
+            cmd->val, (u32)cmd->addr.io.bit_width);
+        break;
+    default:
+        break;
+    }
+}
+
+static void drv_read(struct drv_cmd *cmd)
+{
+    cmd->val =3D 0;
+
+    ASSERT(cpumask_weight(cmd->mask) =3D=3D 1);
+
+    /* to reduce IPI for the sake of performance */
+    if (likely(cpumask_test_cpu(smp_processor_id(), cmd->mask)))
+        do_drv_read((void *)cmd);
+    else
+        on_selected_cpus(cmd->mask, do_drv_read, cmd, 1);
+}
+
+static void drv_write(struct drv_cmd *cmd)
+{
+    if (cpumask_equal(cmd->mask, cpumask_of(smp_processor_id())))
+        do_drv_write((void *)cmd);
+    else
+        on_selected_cpus(cmd->mask, do_drv_write, cmd, 1);
+}
+
+static u32 get_cur_val(const cpumask_t *mask)
+{
+    struct cpufreq_policy *policy;
+    struct processor_performance *perf;
+    struct drv_cmd cmd;
+    unsigned int cpu =3D smp_processor_id();
+
+    if (unlikely(cpumask_empty(mask)))
+        return 0;
+
+    if (!cpumask_test_cpu(cpu, mask))
+        cpu =3D cpumask_first(mask);
+    if (cpu >=3D nr_cpu_ids || !cpu_online(cpu))
+        return 0;
+
+    policy =3D per_cpu(cpufreq_cpu_policy, cpu);
+    if (!policy || !cpufreq_drv_data[policy->cpu])
+        return 0;
+
+    switch (cpufreq_drv_data[policy->cpu]->arch_cpu_flags) {
+    case SYSTEM_INTEL_MSR_CAPABLE:
+        cmd.type =3D SYSTEM_INTEL_MSR_CAPABLE;
+        cmd.addr.msr.reg =3D MSR_IA32_PERF_STATUS;
+        break;
+    case SYSTEM_IO_CAPABLE:
+        cmd.type =3D SYSTEM_IO_CAPABLE;
+        perf =3D cpufreq_drv_data[policy->cpu]->acpi_data;
+        cmd.addr.io.port =3D perf->control_register.address;
+        cmd.addr.io.bit_width =3D perf->control_register.bit_width;
+        break;
+    default:
+        return 0;
+    }
+
+    cmd.mask =3D cpumask_of(cpu);
+
+    drv_read(&cmd);
+    return cmd.val;
+}
+
+struct perf_pair {
+    union {
+        struct {
+            uint32_t lo;
+            uint32_t hi;
+        } split;
+        uint64_t whole;
+    } aperf, mperf;
+};
+static DEFINE_PER_CPU(struct perf_pair, gov_perf_pair);
+static DEFINE_PER_CPU(struct perf_pair, usr_perf_pair);
+
+static void cf_check read_measured_perf_ctrs(void *_readin)
+{
+    struct perf_pair *readin =3D _readin;
+
+    rdmsrl(MSR_IA32_APERF, readin->aperf.whole);
+    rdmsrl(MSR_IA32_MPERF, readin->mperf.whole);
+}
+
+/*
+ * Return the measured active (C0) frequency on this CPU since last call
+ * to this function.
+ * Input: cpu number
+ * Return: Average CPU frequency in terms of max frequency (zero on erro=
r)
+ *
+ * We use IA32_MPERF and IA32_APERF MSRs to get the measured performance
+ * over a period of time, while CPU is in C0 state.
+ * IA32_MPERF counts at the rate of max advertised frequency
+ * IA32_APERF counts at the rate of actual CPU frequency
+ * Only IA32_APERF/IA32_MPERF ratio is architecturally defined and
+ * no meaning should be associated with absolute values of these MSRs.
+ */
+unsigned int get_measured_perf(unsigned int cpu, unsigned int flag)
+{
+    struct cpufreq_policy *policy;
+    struct perf_pair readin, cur, *saved;
+    unsigned int perf_percent;
+
+    if (!cpu_online(cpu))
+        return 0;
+
+    policy =3D per_cpu(cpufreq_cpu_policy, cpu);
+    if ( !policy || !cpu_has_aperfmperf )
+        return 0;
+
+    switch (flag)
+    {
+    case GOV_GETAVG:
+    {
+        saved =3D &per_cpu(gov_perf_pair, cpu);
+        break;
+    }
+    case USR_GETAVG:
+    {
+        saved =3D &per_cpu(usr_perf_pair, cpu);
+        break;
+    }
+    default:
+        return 0;
+    }
+
+    if (cpu =3D=3D smp_processor_id()) {
+        read_measured_perf_ctrs((void *)&readin);
+    } else {
+        on_selected_cpus(cpumask_of(cpu), read_measured_perf_ctrs,
+                        &readin, 1);
+    }
+
+    cur.aperf.whole =3D readin.aperf.whole - saved->aperf.whole;
+    cur.mperf.whole =3D readin.mperf.whole - saved->mperf.whole;
+    saved->aperf.whole =3D readin.aperf.whole;
+    saved->mperf.whole =3D readin.mperf.whole;
+
+    if (unlikely(((unsigned long)(-1) / 100) < cur.aperf.whole)) {
+        int shift_count =3D 7;
+        cur.aperf.whole >>=3D shift_count;
+        cur.mperf.whole >>=3D shift_count;
+    }
+
+    if (cur.aperf.whole && cur.mperf.whole)
+        perf_percent =3D (cur.aperf.whole * 100) / cur.mperf.whole;
+    else
+        perf_percent =3D 0;
+
+    return policy->cpuinfo.perf_freq * perf_percent / 100;
+}
+
+static unsigned int cf_check get_cur_freq_on_cpu(unsigned int cpu)
+{
+    struct cpufreq_policy *policy;
+    struct acpi_cpufreq_data *data;
+
+    if (!cpu_online(cpu))
+        return 0;
+
+    policy =3D per_cpu(cpufreq_cpu_policy, cpu);
+    if (!policy)
+        return 0;
+
+    data =3D cpufreq_drv_data[policy->cpu];
+    if (unlikely(data =3D=3D NULL ||
+        data->acpi_data =3D=3D NULL || data->freq_table =3D=3D NULL))
+        return 0;
+
+    return extract_freq(get_cur_val(cpumask_of(cpu)), data);
+}
+
+void intel_feature_detect(struct cpufreq_policy *policy)
+{
+    unsigned int eax;
+
+    eax =3D cpuid_eax(6);
+    if (eax & 0x2) {
+        policy->turbo =3D CPUFREQ_TURBO_ENABLED;
+        if (cpufreq_verbose)
+            printk(XENLOG_INFO "CPU%u: Turbo Mode detected and enabled\n=
",
+                   smp_processor_id());
+    }
+}
+
+static void cf_check feature_detect(void *info)
+{
+    intel_feature_detect(info);
+}
+
+static unsigned int check_freqs(const cpumask_t *mask, unsigned int freq=
,
+                                struct acpi_cpufreq_data *data)
+{
+    unsigned int cur_freq;
+    unsigned int i;
+
+    for (i=3D0; i<100; i++) {
+        cur_freq =3D extract_freq(get_cur_val(mask), data);
+        if (cur_freq =3D=3D freq)
+            return 1;
+        udelay(10);
+    }
+    return 0;
+}
+
+static int cf_check acpi_cpufreq_target(
+    struct cpufreq_policy *policy,
+    unsigned int target_freq, unsigned int relation)
+{
+    struct acpi_cpufreq_data *data =3D cpufreq_drv_data[policy->cpu];
+    struct processor_performance *perf;
+    struct cpufreq_freqs freqs;
+    cpumask_t online_policy_cpus;
+    struct drv_cmd cmd;
+    unsigned int next_state =3D 0; /* Index into freq_table */
+    unsigned int next_perf_state =3D 0; /* Index into perf table */
+    unsigned int j;
+    int result =3D 0;
+
+    if (unlikely(data =3D=3D NULL ||
+        data->acpi_data =3D=3D NULL || data->freq_table =3D=3D NULL)) {
+        return -ENODEV;
+    }
+
+    if (policy->turbo =3D=3D CPUFREQ_TURBO_DISABLED)
+        if (target_freq > policy->cpuinfo.second_max_freq)
+            target_freq =3D policy->cpuinfo.second_max_freq;
+
+    perf =3D data->acpi_data;
+    result =3D cpufreq_frequency_table_target(policy,
+                                            data->freq_table,
+                                            target_freq,
+                                            relation, &next_state);
+    if (unlikely(result))
+        return -ENODEV;
+
+    cpumask_and(&online_policy_cpus, &cpu_online_map, policy->cpus);
+
+    next_perf_state =3D data->freq_table[next_state].index;
+    if (perf->state =3D=3D next_perf_state) {
+        if (unlikely(policy->resume))
+            policy->resume =3D 0;
+        else
+            return 0;
+    }
+
+    switch (data->arch_cpu_flags) {
+    case SYSTEM_INTEL_MSR_CAPABLE:
+        cmd.type =3D SYSTEM_INTEL_MSR_CAPABLE;
+        cmd.addr.msr.reg =3D MSR_IA32_PERF_CTL;
+        cmd.val =3D (u32) perf->states[next_perf_state].control;
+        break;
+    case SYSTEM_IO_CAPABLE:
+        cmd.type =3D SYSTEM_IO_CAPABLE;
+        cmd.addr.io.port =3D perf->control_register.address;
+        cmd.addr.io.bit_width =3D perf->control_register.bit_width;
+        cmd.val =3D (u32) perf->states[next_perf_state].control;
+        break;
+    default:
+        return -ENODEV;
+    }
+
+    if (policy->shared_type !=3D CPUFREQ_SHARED_TYPE_ANY)
+        cmd.mask =3D &online_policy_cpus;
+    else
+        cmd.mask =3D cpumask_of(policy->cpu);
+
+    freqs.old =3D perf->states[perf->state].core_frequency * 1000;
+    freqs.new =3D data->freq_table[next_state].frequency;
+
+    drv_write(&cmd);
+
+    if (acpi_pstate_strict && !check_freqs(cmd.mask, freqs.new, data)) {
+        printk(KERN_WARNING "Fail transfer to new freq %d\n", freqs.new)=
;
+        return -EAGAIN;
+    }
+
+    for_each_cpu(j, &online_policy_cpus)
+        cpufreq_statistic_update(j, perf->state, next_perf_state);
+
+    perf->state =3D next_perf_state;
+    policy->cur =3D freqs.new;
+
+    return result;
+}
+
+static int cf_check acpi_cpufreq_verify(struct cpufreq_policy *policy)
+{
+    struct acpi_cpufreq_data *data;
+    struct processor_performance *perf;
+
+    if (!policy || !(data =3D cpufreq_drv_data[policy->cpu]) ||
+        !processor_pminfo[policy->cpu])
+        return -EINVAL;
+
+    perf =3D &processor_pminfo[policy->cpu]->perf;
+
+    cpufreq_verify_within_limits(policy, 0,
+        perf->states[perf->platform_limit].core_frequency * 1000);
+
+    return cpufreq_frequency_table_verify(policy, data->freq_table);
+}
+
+static unsigned long
+acpi_cpufreq_guess_freq(struct acpi_cpufreq_data *data, unsigned int cpu=
)
+{
+    struct processor_performance *perf =3D data->acpi_data;
+
+    if (cpu_khz) {
+        /* search the closest match to cpu_khz */
+        unsigned int i;
+        unsigned long freq;
+        unsigned long freqn =3D perf->states[0].core_frequency * 1000;
+
+        for (i=3D0; i<(perf->state_count-1); i++) {
+            freq =3D freqn;
+            freqn =3D perf->states[i+1].core_frequency * 1000;
+            if ((2 * cpu_khz) > (freqn + freq)) {
+                perf->state =3D i;
+                return freq;
+            }
+        }
+        perf->state =3D perf->state_count-1;
+        return freqn;
+    } else {
+        /* assume CPU is at P0... */
+        perf->state =3D 0;
+        return perf->states[0].core_frequency * 1000;
+    }
+}
+
+static int cf_check acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
+{
+    unsigned int i;
+    unsigned int valid_states =3D 0;
+    unsigned int cpu =3D policy->cpu;
+    struct acpi_cpufreq_data *data;
+    unsigned int result =3D 0;
+    struct cpuinfo_x86 *c =3D &cpu_data[policy->cpu];
+    struct processor_performance *perf;
+
+    data =3D xzalloc(struct acpi_cpufreq_data);
+    if (!data)
+        return -ENOMEM;
+
+    cpufreq_drv_data[cpu] =3D data;
+
+    data->acpi_data =3D &processor_pminfo[cpu]->perf;
+
+    perf =3D data->acpi_data;
+    policy->shared_type =3D perf->shared_type;
+
+    switch (perf->control_register.space_id) {
+    case ACPI_ADR_SPACE_SYSTEM_IO:
+        if (cpufreq_verbose)
+            printk("xen_pminfo: @acpi_cpufreq_cpu_init,"
+                   "SYSTEM IO addr space\n");
+        data->arch_cpu_flags =3D SYSTEM_IO_CAPABLE;
+        break;
+    case ACPI_ADR_SPACE_FIXED_HARDWARE:
+        if (cpufreq_verbose)
+            printk("xen_pminfo: @acpi_cpufreq_cpu_init,"
+                   "HARDWARE addr space\n");
+        if (!cpu_has(c, X86_FEATURE_EIST)) {
+            result =3D -ENODEV;
+            goto err_unreg;
+        }
+        data->arch_cpu_flags =3D SYSTEM_INTEL_MSR_CAPABLE;
+        break;
+    default:
+        result =3D -ENODEV;
+        goto err_unreg;
+    }
+
+    data->freq_table =3D xmalloc_array(struct cpufreq_frequency_table,
+                                    (perf->state_count+1));
+    if (!data->freq_table) {
+        result =3D -ENOMEM;
+        goto err_unreg;
+    }
+
+    /* detect transition latency */
+    policy->cpuinfo.transition_latency =3D 0;
+    for (i=3D0; i<perf->state_count; i++) {
+        if ((perf->states[i].transition_latency * 1000) >
+            policy->cpuinfo.transition_latency)
+            policy->cpuinfo.transition_latency =3D
+                perf->states[i].transition_latency * 1000;
+    }
+
+    policy->governor =3D cpufreq_opt_governor ? : CPUFREQ_DEFAULT_GOVERN=
OR;
+
+    /* table init */
+    for (i=3D0; i<perf->state_count; i++) {
+        if (i>0 && perf->states[i].core_frequency >=3D
+            data->freq_table[valid_states-1].frequency / 1000)
+            continue;
+
+        data->freq_table[valid_states].index =3D i;
+        data->freq_table[valid_states].frequency =3D
+            perf->states[i].core_frequency * 1000;
+        valid_states++;
+    }
+    data->freq_table[valid_states].frequency =3D CPUFREQ_TABLE_END;
+    perf->state =3D 0;
+
+    result =3D cpufreq_frequency_table_cpuinfo(policy, data->freq_table)=
;
+    if (result)
+        goto err_freqfree;
+
+    switch (perf->control_register.space_id) {
+    case ACPI_ADR_SPACE_SYSTEM_IO:
+        /* Current speed is unknown and not detectable by IO port */
+        policy->cur =3D acpi_cpufreq_guess_freq(data, policy->cpu);
+        break;
+    case ACPI_ADR_SPACE_FIXED_HARDWARE:
+        cpufreq_driver.get =3D get_cur_freq_on_cpu;
+        policy->cur =3D get_cur_freq_on_cpu(cpu);
+        break;
+    default:
+        break;
+    }
+
+    /* Check for APERF/MPERF support in hardware
+     * also check for boost support */
+    if (c->x86_vendor =3D=3D X86_VENDOR_INTEL && c->cpuid_level >=3D 6)
+        on_selected_cpus(cpumask_of(cpu), feature_detect, policy, 1);
+
+    /*
+     * the first call to ->target() should result in us actually
+     * writing something to the appropriate registers.
+     */
+    policy->resume =3D 1;
+
+    return result;
+
+err_freqfree:
+    xfree(data->freq_table);
+err_unreg:
+    xfree(data);
+    cpufreq_drv_data[cpu] =3D NULL;
+
+    return result;
+}
+
+static int cf_check acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)
+{
+    struct acpi_cpufreq_data *data =3D cpufreq_drv_data[policy->cpu];
+
+    if (data) {
+        cpufreq_drv_data[policy->cpu] =3D NULL;
+        xfree(data->freq_table);
+        xfree(data);
+    }
+
+    return 0;
+}
+
+static const struct cpufreq_driver __initconst_cf_clobber
+acpi_cpufreq_driver =3D {
+    .name   =3D "acpi-cpufreq",
+    .verify =3D acpi_cpufreq_verify,
+    .target =3D acpi_cpufreq_target,
+    .init   =3D acpi_cpufreq_cpu_init,
+    .exit   =3D acpi_cpufreq_cpu_exit,
+    .get    =3D get_cur_freq_on_cpu,
+};
+
+
+int __init acpi_register_driver(void)
+{
+    return cpufreq_register_driver(&acpi_cpufreq_driver);
+}
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpuf=
req/cpufreq.c
index a341f2f020..c1a842e959 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -26,604 +26,14 @@
  *
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=
~~~~~
  */
-
 #include <xen/types.h>
 #include <xen/errno.h>
-#include <xen/delay.h>
-#include <xen/cpumask.h>
 #include <xen/param.h>
 #include <xen/sched.h>
-#include <xen/timer.h>
-#include <xen/xmalloc.h>
-#include <asm/msr.h>
-#include <asm/io.h>
-#include <asm/processor.h>
-#include <asm/cpufeature.h>
-#include <acpi/acpi.h>
 #include <acpi/cpufreq/cpufreq.h>
=20
-enum {
-    UNDEFINED_CAPABLE =3D 0,
-    SYSTEM_INTEL_MSR_CAPABLE,
-    SYSTEM_IO_CAPABLE,
-};
-
-#define INTEL_MSR_RANGE         (0xffffull)
-
 struct acpi_cpufreq_data *cpufreq_drv_data[NR_CPUS];
=20
-static bool __read_mostly acpi_pstate_strict;
-boolean_param("acpi_pstate_strict", acpi_pstate_strict);
-
-static unsigned extract_io(u32 value, struct acpi_cpufreq_data *data)
-{
-    struct processor_performance *perf;
-    int i;
-
-    perf =3D data->acpi_data;
-
-    for (i=3D0; i<perf->state_count; i++) {
-        if (value =3D=3D perf->states[i].status)
-            return data->freq_table[i].frequency;
-    }
-    return 0;
-}
-
-static unsigned extract_msr(u32 msr, struct acpi_cpufreq_data *data)
-{
-    int i;
-    struct processor_performance *perf;
-
-    msr &=3D INTEL_MSR_RANGE;
-    perf =3D data->acpi_data;
-
-    for (i=3D0; data->freq_table[i].frequency !=3D CPUFREQ_TABLE_END; i+=
+) {
-        if (msr =3D=3D perf->states[data->freq_table[i].index].status)
-            return data->freq_table[i].frequency;
-    }
-    return data->freq_table[0].frequency;
-}
-
-static unsigned extract_freq(u32 val, struct acpi_cpufreq_data *data)
-{
-    switch (data->arch_cpu_flags) {
-    case SYSTEM_INTEL_MSR_CAPABLE:
-        return extract_msr(val, data);
-    case SYSTEM_IO_CAPABLE:
-        return extract_io(val, data);
-    default:
-        return 0;
-    }
-}
-
-struct msr_addr {
-    u32 reg;
-};
-
-struct io_addr {
-    u16 port;
-    u8 bit_width;
-};
-
-typedef union {
-    struct msr_addr msr;
-    struct io_addr io;
-} drv_addr_union;
-
-struct drv_cmd {
-    unsigned int type;
-    const cpumask_t *mask;
-    drv_addr_union addr;
-    u32 val;
-};
-
-static void cf_check do_drv_read(void *drvcmd)
-{
-    struct drv_cmd *cmd;
-
-    cmd =3D (struct drv_cmd *)drvcmd;
-
-    switch (cmd->type) {
-    case SYSTEM_INTEL_MSR_CAPABLE:
-        rdmsrl(cmd->addr.msr.reg, cmd->val);
-        break;
-    case SYSTEM_IO_CAPABLE:
-        acpi_os_read_port((acpi_io_address)cmd->addr.io.port,
-            &cmd->val, (u32)cmd->addr.io.bit_width);
-        break;
-    default:
-        break;
-    }
-}
-
-static void cf_check do_drv_write(void *drvcmd)
-{
-    struct drv_cmd *cmd;
-    uint64_t msr_content;
-
-    cmd =3D (struct drv_cmd *)drvcmd;
-
-    switch (cmd->type) {
-    case SYSTEM_INTEL_MSR_CAPABLE:
-        rdmsrl(cmd->addr.msr.reg, msr_content);
-        msr_content =3D (msr_content & ~INTEL_MSR_RANGE)
-            | (cmd->val & INTEL_MSR_RANGE);
-        wrmsrl(cmd->addr.msr.reg, msr_content);
-        break;
-    case SYSTEM_IO_CAPABLE:
-        acpi_os_write_port((acpi_io_address)cmd->addr.io.port,
-            cmd->val, (u32)cmd->addr.io.bit_width);
-        break;
-    default:
-        break;
-    }
-}
-
-static void drv_read(struct drv_cmd *cmd)
-{
-    cmd->val =3D 0;
-
-    ASSERT(cpumask_weight(cmd->mask) =3D=3D 1);
-
-    /* to reduce IPI for the sake of performance */
-    if (likely(cpumask_test_cpu(smp_processor_id(), cmd->mask)))
-        do_drv_read((void *)cmd);
-    else
-        on_selected_cpus(cmd->mask, do_drv_read, cmd, 1);
-}
-
-static void drv_write(struct drv_cmd *cmd)
-{
-    if (cpumask_equal(cmd->mask, cpumask_of(smp_processor_id())))
-        do_drv_write((void *)cmd);
-    else
-        on_selected_cpus(cmd->mask, do_drv_write, cmd, 1);
-}
-
-static u32 get_cur_val(const cpumask_t *mask)
-{
-    struct cpufreq_policy *policy;
-    struct processor_performance *perf;
-    struct drv_cmd cmd;
-    unsigned int cpu =3D smp_processor_id();
-
-    if (unlikely(cpumask_empty(mask)))
-        return 0;
-
-    if (!cpumask_test_cpu(cpu, mask))
-        cpu =3D cpumask_first(mask);
-    if (cpu >=3D nr_cpu_ids || !cpu_online(cpu))
-        return 0;
-
-    policy =3D per_cpu(cpufreq_cpu_policy, cpu);
-    if (!policy || !cpufreq_drv_data[policy->cpu])
-        return 0;   =20
-
-    switch (cpufreq_drv_data[policy->cpu]->arch_cpu_flags) {
-    case SYSTEM_INTEL_MSR_CAPABLE:
-        cmd.type =3D SYSTEM_INTEL_MSR_CAPABLE;
-        cmd.addr.msr.reg =3D MSR_IA32_PERF_STATUS;
-        break;
-    case SYSTEM_IO_CAPABLE:
-        cmd.type =3D SYSTEM_IO_CAPABLE;
-        perf =3D cpufreq_drv_data[policy->cpu]->acpi_data;
-        cmd.addr.io.port =3D perf->control_register.address;
-        cmd.addr.io.bit_width =3D perf->control_register.bit_width;
-        break;
-    default:
-        return 0;
-    }
-
-    cmd.mask =3D cpumask_of(cpu);
-
-    drv_read(&cmd);
-    return cmd.val;
-}
-
-struct perf_pair {
-    union {
-        struct {
-            uint32_t lo;
-            uint32_t hi;
-        } split;
-        uint64_t whole;
-    } aperf, mperf;
-};
-static DEFINE_PER_CPU(struct perf_pair, gov_perf_pair);
-static DEFINE_PER_CPU(struct perf_pair, usr_perf_pair);
-
-static void cf_check read_measured_perf_ctrs(void *_readin)
-{
-    struct perf_pair *readin =3D _readin;
-
-    rdmsrl(MSR_IA32_APERF, readin->aperf.whole);
-    rdmsrl(MSR_IA32_MPERF, readin->mperf.whole);
-}
-
-/*
- * Return the measured active (C0) frequency on this CPU since last call
- * to this function.
- * Input: cpu number
- * Return: Average CPU frequency in terms of max frequency (zero on erro=
r)
- *
- * We use IA32_MPERF and IA32_APERF MSRs to get the measured performance
- * over a period of time, while CPU is in C0 state.
- * IA32_MPERF counts at the rate of max advertised frequency
- * IA32_APERF counts at the rate of actual CPU frequency
- * Only IA32_APERF/IA32_MPERF ratio is architecturally defined and
- * no meaning should be associated with absolute values of these MSRs.
- */
-unsigned int get_measured_perf(unsigned int cpu, unsigned int flag)
-{
-    struct cpufreq_policy *policy;   =20
-    struct perf_pair readin, cur, *saved;
-    unsigned int perf_percent;
-
-    if (!cpu_online(cpu))
-        return 0;
-
-    policy =3D per_cpu(cpufreq_cpu_policy, cpu);
-    if ( !policy || !cpu_has_aperfmperf )
-        return 0;
-
-    switch (flag)
-    {
-    case GOV_GETAVG:
-    {
-        saved =3D &per_cpu(gov_perf_pair, cpu);
-        break;
-    }
-    case USR_GETAVG:
-    {
-        saved =3D &per_cpu(usr_perf_pair, cpu);
-        break;
-    }
-    default:
-        return 0;
-    }
-
-    if (cpu =3D=3D smp_processor_id()) {
-        read_measured_perf_ctrs((void *)&readin);
-    } else {
-        on_selected_cpus(cpumask_of(cpu), read_measured_perf_ctrs,
-                        &readin, 1);
-    }
-
-    cur.aperf.whole =3D readin.aperf.whole - saved->aperf.whole;
-    cur.mperf.whole =3D readin.mperf.whole - saved->mperf.whole;
-    saved->aperf.whole =3D readin.aperf.whole;
-    saved->mperf.whole =3D readin.mperf.whole;
-
-    if (unlikely(((unsigned long)(-1) / 100) < cur.aperf.whole)) {
-        int shift_count =3D 7;
-        cur.aperf.whole >>=3D shift_count;
-        cur.mperf.whole >>=3D shift_count;
-    }
-
-    if (cur.aperf.whole && cur.mperf.whole)
-        perf_percent =3D (cur.aperf.whole * 100) / cur.mperf.whole;
-    else
-        perf_percent =3D 0;
-
-    return policy->cpuinfo.perf_freq * perf_percent / 100;
-}
-
-static unsigned int cf_check get_cur_freq_on_cpu(unsigned int cpu)
-{
-    struct cpufreq_policy *policy;
-    struct acpi_cpufreq_data *data;
-
-    if (!cpu_online(cpu))
-        return 0;
-
-    policy =3D per_cpu(cpufreq_cpu_policy, cpu);
-    if (!policy)
-        return 0;
-
-    data =3D cpufreq_drv_data[policy->cpu];
-    if (unlikely(data =3D=3D NULL ||
-        data->acpi_data =3D=3D NULL || data->freq_table =3D=3D NULL))
-        return 0;
-
-    return extract_freq(get_cur_val(cpumask_of(cpu)), data);
-}
-
-void intel_feature_detect(struct cpufreq_policy *policy)
-{
-    unsigned int eax;
-
-    eax =3D cpuid_eax(6);
-    if (eax & 0x2) {
-        policy->turbo =3D CPUFREQ_TURBO_ENABLED;
-        if (cpufreq_verbose)
-            printk(XENLOG_INFO "CPU%u: Turbo Mode detected and enabled\n=
",
-                   smp_processor_id());
-    }
-}
-
-static void cf_check feature_detect(void *info)
-{
-    intel_feature_detect(info);
-}
-
-static unsigned int check_freqs(const cpumask_t *mask, unsigned int freq=
,
-                                struct acpi_cpufreq_data *data)
-{
-    unsigned int cur_freq;
-    unsigned int i;
-
-    for (i=3D0; i<100; i++) {
-        cur_freq =3D extract_freq(get_cur_val(mask), data);
-        if (cur_freq =3D=3D freq)
-            return 1;
-        udelay(10);
-    }
-    return 0;
-}
-
-static int cf_check acpi_cpufreq_target(
-    struct cpufreq_policy *policy,
-    unsigned int target_freq, unsigned int relation)
-{
-    struct acpi_cpufreq_data *data =3D cpufreq_drv_data[policy->cpu];
-    struct processor_performance *perf;
-    struct cpufreq_freqs freqs;
-    cpumask_t online_policy_cpus;
-    struct drv_cmd cmd;
-    unsigned int next_state =3D 0; /* Index into freq_table */
-    unsigned int next_perf_state =3D 0; /* Index into perf table */
-    unsigned int j;
-    int result =3D 0;
-
-    if (unlikely(data =3D=3D NULL ||
-        data->acpi_data =3D=3D NULL || data->freq_table =3D=3D NULL)) {
-        return -ENODEV;
-    }
-
-    if (policy->turbo =3D=3D CPUFREQ_TURBO_DISABLED)
-        if (target_freq > policy->cpuinfo.second_max_freq)
-            target_freq =3D policy->cpuinfo.second_max_freq;
-
-    perf =3D data->acpi_data;
-    result =3D cpufreq_frequency_table_target(policy,
-                                            data->freq_table,
-                                            target_freq,
-                                            relation, &next_state);
-    if (unlikely(result))
-        return -ENODEV;
-
-    cpumask_and(&online_policy_cpus, &cpu_online_map, policy->cpus);
-
-    next_perf_state =3D data->freq_table[next_state].index;
-    if (perf->state =3D=3D next_perf_state) {
-        if (unlikely(policy->resume))
-            policy->resume =3D 0;
-        else
-            return 0;
-    }
-
-    switch (data->arch_cpu_flags) {
-    case SYSTEM_INTEL_MSR_CAPABLE:
-        cmd.type =3D SYSTEM_INTEL_MSR_CAPABLE;
-        cmd.addr.msr.reg =3D MSR_IA32_PERF_CTL;
-        cmd.val =3D (u32) perf->states[next_perf_state].control;
-        break;
-    case SYSTEM_IO_CAPABLE:
-        cmd.type =3D SYSTEM_IO_CAPABLE;
-        cmd.addr.io.port =3D perf->control_register.address;
-        cmd.addr.io.bit_width =3D perf->control_register.bit_width;
-        cmd.val =3D (u32) perf->states[next_perf_state].control;
-        break;
-    default:
-        return -ENODEV;
-    }
-
-    if (policy->shared_type !=3D CPUFREQ_SHARED_TYPE_ANY)
-        cmd.mask =3D &online_policy_cpus;
-    else
-        cmd.mask =3D cpumask_of(policy->cpu);
-
-    freqs.old =3D perf->states[perf->state].core_frequency * 1000;
-    freqs.new =3D data->freq_table[next_state].frequency;
-
-    drv_write(&cmd);
-
-    if (acpi_pstate_strict && !check_freqs(cmd.mask, freqs.new, data)) {
-        printk(KERN_WARNING "Fail transfer to new freq %d\n", freqs.new)=
;
-        return -EAGAIN;
-    }
-
-    for_each_cpu(j, &online_policy_cpus)
-        cpufreq_statistic_update(j, perf->state, next_perf_state);
-
-    perf->state =3D next_perf_state;
-    policy->cur =3D freqs.new;
-
-    return result;
-}
-
-static int cf_check acpi_cpufreq_verify(struct cpufreq_policy *policy)
-{
-    struct acpi_cpufreq_data *data;
-    struct processor_performance *perf;
-
-    if (!policy || !(data =3D cpufreq_drv_data[policy->cpu]) ||
-        !processor_pminfo[policy->cpu])
-        return -EINVAL;
-
-    perf =3D &processor_pminfo[policy->cpu]->perf;
-
-    cpufreq_verify_within_limits(policy, 0,=20
-        perf->states[perf->platform_limit].core_frequency * 1000);
-
-    return cpufreq_frequency_table_verify(policy, data->freq_table);
-}
-
-static unsigned long
-acpi_cpufreq_guess_freq(struct acpi_cpufreq_data *data, unsigned int cpu=
)
-{
-    struct processor_performance *perf =3D data->acpi_data;
-
-    if (cpu_khz) {
-        /* search the closest match to cpu_khz */
-        unsigned int i;
-        unsigned long freq;
-        unsigned long freqn =3D perf->states[0].core_frequency * 1000;
-
-        for (i=3D0; i<(perf->state_count-1); i++) {
-            freq =3D freqn;
-            freqn =3D perf->states[i+1].core_frequency * 1000;
-            if ((2 * cpu_khz) > (freqn + freq)) {
-                perf->state =3D i;
-                return freq;
-            }
-        }
-        perf->state =3D perf->state_count-1;
-        return freqn;
-    } else {
-        /* assume CPU is at P0... */
-        perf->state =3D 0;
-        return perf->states[0].core_frequency * 1000;
-    }
-}
-
-static int cf_check acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
-{
-    unsigned int i;
-    unsigned int valid_states =3D 0;
-    unsigned int cpu =3D policy->cpu;
-    struct acpi_cpufreq_data *data;
-    unsigned int result =3D 0;
-    struct cpuinfo_x86 *c =3D &cpu_data[policy->cpu];
-    struct processor_performance *perf;
-
-    data =3D xzalloc(struct acpi_cpufreq_data);
-    if (!data)
-        return -ENOMEM;
-
-    cpufreq_drv_data[cpu] =3D data;
-
-    data->acpi_data =3D &processor_pminfo[cpu]->perf;
-
-    perf =3D data->acpi_data;
-    policy->shared_type =3D perf->shared_type;
-
-    switch (perf->control_register.space_id) {
-    case ACPI_ADR_SPACE_SYSTEM_IO:
-        if (cpufreq_verbose)
-            printk("xen_pminfo: @acpi_cpufreq_cpu_init,"
-                   "SYSTEM IO addr space\n");
-        data->arch_cpu_flags =3D SYSTEM_IO_CAPABLE;
-        break;
-    case ACPI_ADR_SPACE_FIXED_HARDWARE:
-        if (cpufreq_verbose)
-            printk("xen_pminfo: @acpi_cpufreq_cpu_init,"
-                   "HARDWARE addr space\n");
-        if (!cpu_has(c, X86_FEATURE_EIST)) {
-            result =3D -ENODEV;
-            goto err_unreg;
-        }
-        data->arch_cpu_flags =3D SYSTEM_INTEL_MSR_CAPABLE;
-        break;
-    default:
-        result =3D -ENODEV;
-        goto err_unreg;
-    }
-
-    data->freq_table =3D xmalloc_array(struct cpufreq_frequency_table,=20
-                                    (perf->state_count+1));
-    if (!data->freq_table) {
-        result =3D -ENOMEM;
-        goto err_unreg;
-    }
-
-    /* detect transition latency */
-    policy->cpuinfo.transition_latency =3D 0;
-    for (i=3D0; i<perf->state_count; i++) {
-        if ((perf->states[i].transition_latency * 1000) >
-            policy->cpuinfo.transition_latency)
-            policy->cpuinfo.transition_latency =3D
-                perf->states[i].transition_latency * 1000;
-    }
-
-    policy->governor =3D cpufreq_opt_governor ? : CPUFREQ_DEFAULT_GOVERN=
OR;
-
-    /* table init */
-    for (i=3D0; i<perf->state_count; i++) {
-        if (i>0 && perf->states[i].core_frequency >=3D
-            data->freq_table[valid_states-1].frequency / 1000)
-            continue;
-
-        data->freq_table[valid_states].index =3D i;
-        data->freq_table[valid_states].frequency =3D
-            perf->states[i].core_frequency * 1000;
-        valid_states++;
-    }
-    data->freq_table[valid_states].frequency =3D CPUFREQ_TABLE_END;
-    perf->state =3D 0;
-
-    result =3D cpufreq_frequency_table_cpuinfo(policy, data->freq_table)=
;
-    if (result)
-        goto err_freqfree;
-
-    switch (perf->control_register.space_id) {
-    case ACPI_ADR_SPACE_SYSTEM_IO:
-        /* Current speed is unknown and not detectable by IO port */
-        policy->cur =3D acpi_cpufreq_guess_freq(data, policy->cpu);
-        break;
-    case ACPI_ADR_SPACE_FIXED_HARDWARE:
-        cpufreq_driver.get =3D get_cur_freq_on_cpu;
-        policy->cur =3D get_cur_freq_on_cpu(cpu);
-        break;
-    default:
-        break;
-    }
-
-    /* Check for APERF/MPERF support in hardware
-     * also check for boost support */
-    if (c->x86_vendor =3D=3D X86_VENDOR_INTEL && c->cpuid_level >=3D 6)
-        on_selected_cpus(cpumask_of(cpu), feature_detect, policy, 1);
-
-    /*
-     * the first call to ->target() should result in us actually
-     * writing something to the appropriate registers.
-     */
-    policy->resume =3D 1;
-
-    return result;
-
-err_freqfree:
-    xfree(data->freq_table);
-err_unreg:
-    xfree(data);
-    cpufreq_drv_data[cpu] =3D NULL;
-
-    return result;
-}
-
-static int cf_check acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)
-{
-    struct acpi_cpufreq_data *data =3D cpufreq_drv_data[policy->cpu];
-
-    if (data) {
-        cpufreq_drv_data[policy->cpu] =3D NULL;
-        xfree(data->freq_table);
-        xfree(data);
-    }
-
-    return 0;
-}
-
-static const struct cpufreq_driver __initconst_cf_clobber
-acpi_cpufreq_driver =3D {
-    .name   =3D "acpi-cpufreq",
-    .verify =3D acpi_cpufreq_verify,
-    .target =3D acpi_cpufreq_target,
-    .init   =3D acpi_cpufreq_cpu_init,
-    .exit   =3D acpi_cpufreq_cpu_exit,
-    .get    =3D get_cur_freq_on_cpu,
-};
-
 static int __init cf_check cpufreq_driver_init(void)
 {
     int ret =3D 0;
@@ -640,7 +50,7 @@ static int __init cf_check cpufreq_driver_init(void)
                 switch ( cpufreq_xen_opts[i] )
                 {
                 case CPUFREQ_xen:
-                    ret =3D cpufreq_register_driver(&acpi_cpufreq_driver=
);
+                    ret =3D acpi_register_driver();
                     break;
                 case CPUFREQ_hwp:
                     ret =3D hwp_register_driver();
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufre=
q/cpufreq.h
index 443427153b..1a8ba3756c 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -260,4 +260,5 @@ int get_hwp_para(unsigned int cpu,
 int set_hwp_para(struct cpufreq_policy *policy,
                  struct xen_set_cppc_para *set_cppc);
=20
+int acpi_register_driver(void);
 #endif /* __XEN_CPUFREQ_PM_H__ */
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 12:19:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 12:19:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751536.1159518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOG0G-0005Ps-EP; Mon, 01 Jul 2024 12:19:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751536.1159518; Mon, 01 Jul 2024 12:19:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOG0G-0005Pl-9j; Mon, 01 Jul 2024 12:19:28 +0000
Received: by outflank-mailman (input) for mailman id 751536;
 Mon, 01 Jul 2024 12:19:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1OIh=OB=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sOG0F-0005Pf-12
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 12:19:27 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 26f0f8d7-37a4-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 14:19:25 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 56B841B416;
 Mon,  1 Jul 2024 08:19:23 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 4FB291B415;
 Mon,  1 Jul 2024 08:19:23 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [46.211.3.74])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id 32D531B40B;
 Mon,  1 Jul 2024 08:19:19 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26f0f8d7-37a4-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=RUg7MohI2O8rEHGBoMjQlSjZ0
	0nvzmvTzmlYoLHBthQ=; b=xkbMy+3enbrKZ5W7aky3WCeijiiweYugT9ZcNciTf
	jkkh9snwYbOlUe5cA4AJjLKcWTFvaZYlF7PWyjpJSRuJtgQwusMzclrSasdhomut
	QC9tnaEee5JuvflPExCZOTW2UF7V4/KMnbKnbb2UzTtK/m7gGM9XS4sfQpNF6Wxi
	YI=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v2 2/2] x86/cpufreq: separate powernow/hwp/acpi cpufreq code
Date: Mon,  1 Jul 2024 15:19:15 +0300
Message-Id: <0f6e8a602fb3106d6b064582ca50d3d5fd4f1174.1719832871.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1719832871.git.Sergiy_Kibrik@epam.com>
References: <cover.1719832871.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 242385C0-37A4-11EF-9A25-C38742FD603B-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

Build AMD Architectural P-state driver when CONFIG_AMD is on, and
Intel Hardware P-States driver together with ACPI Processor P-States driv=
er
when CONFIG_INTEL is on respectively, allowing for a platform-specific bu=
ild.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Jason Andryuk <jason.andryuk@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v2:
 - disable acpi-cpufreq driver as well when !INTEL
 - leave a stub for hwp_active() only when !INTEL
 - updated patch description
---
 xen/arch/x86/acpi/cpufreq/Makefile  | 6 +++---
 xen/arch/x86/acpi/cpufreq/cpufreq.c | 8 +++++---
 xen/drivers/acpi/pmstat.c           | 2 +-
 xen/drivers/cpufreq/cpufreq.c       | 3 ++-
 xen/drivers/cpufreq/utility.c       | 2 +-
 xen/include/acpi/cpufreq/cpufreq.h  | 9 +++++++++
 6 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/Makefile b/xen/arch/x86/acpi/cpufr=
eq/Makefile
index 44d4c0b497..e7dbe434a8 100644
--- a/xen/arch/x86/acpi/cpufreq/Makefile
+++ b/xen/arch/x86/acpi/cpufreq/Makefile
@@ -1,4 +1,4 @@
-obj-y +=3D acpi.o
+obj-$(CONFIG_INTEL) +=3D acpi.o
 obj-y +=3D cpufreq.o
-obj-y +=3D hwp.o
-obj-y +=3D powernow.o
+obj-$(CONFIG_INTEL) +=3D hwp.o
+obj-$(CONFIG_AMD) +=3D powernow.o
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpuf=
req/cpufreq.c
index c1a842e959..59ea1f41d4 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -50,10 +50,12 @@ static int __init cf_check cpufreq_driver_init(void)
                 switch ( cpufreq_xen_opts[i] )
                 {
                 case CPUFREQ_xen:
-                    ret =3D acpi_register_driver();
+                    ret =3D IS_ENABLED(CONFIG_INTEL) ?
+                          acpi_register_driver() : -ENODEV;
                     break;
                 case CPUFREQ_hwp:
-                    ret =3D hwp_register_driver();
+                    ret =3D IS_ENABLED(CONFIG_INTEL) ?
+                          hwp_register_driver() : -ENODEV;
                     break;
                 case CPUFREQ_none:
                     ret =3D 0;
@@ -67,7 +69,7 @@ static int __init cf_check cpufreq_driver_init(void)
=20
         case X86_VENDOR_AMD:
         case X86_VENDOR_HYGON:
-            ret =3D powernow_register_driver();
+            ret =3D IS_ENABLED(CONFIG_AMD) ? powernow_register_driver() =
: -ENODEV;
             break;
         }
     }
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 998d2e3c65..ff6b930794 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -255,7 +255,7 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *=
op)
         strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_L=
EN);
=20
     if ( !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
-                      CPUFREQ_NAME_LEN) )
+                      CPUFREQ_NAME_LEN) && IS_ENABLED(CONFIG_INTEL) )
         ret =3D get_hwp_para(policy->cpu, &op->u.get_para.u.cppc_para);
     else
     {
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.=
c
index 8659ad3aee..e61482e5b0 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -120,7 +120,8 @@ static int __init cf_check setup_cpufreq_option(const=
 char *str)
             if ( arg[0] && arg[1] )
                 ret =3D cpufreq_cmdline_parse(arg + 1, end);
         }
-        else if ( choice < 0 && !cmdline_strcmp(str, "hwp") )
+        else if ( choice < 0 && !cmdline_strcmp(str, "hwp") &&
+                  IS_ENABLED(CONFIG_INTEL) )
         {
             xen_processor_pmbits |=3D XEN_PROCESSOR_PM_PX;
             cpufreq_controller =3D FREQCTL_xen;
diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.=
c
index e690a484f1..aab0b78454 100644
--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -379,7 +379,7 @@ int cpufreq_driver_getavg(unsigned int cpu, unsigned =
int flag)
     if (!cpu_online(cpu) || !(policy =3D per_cpu(cpufreq_cpu_policy, cpu=
)))
         return 0;
=20
-    freq_avg =3D get_measured_perf(cpu, flag);
+    freq_avg =3D IS_ENABLED(CONFIG_INTEL) ? get_measured_perf(cpu, flag)=
 : 0;
     if ( freq_avg > 0 )
         return freq_avg;
=20
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufre=
q/cpufreq.h
index 1a8ba3756c..b2e7a592df 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -254,11 +254,20 @@ void intel_feature_detect(struct cpufreq_policy *po=
licy);
=20
 int hwp_cmdline_parse(const char *s, const char *e);
 int hwp_register_driver(void);
+#ifdef CONFIG_INTEL
 bool hwp_active(void);
+#else
+static inline bool hwp_active(void)
+{
+    return false;
+}
+#endif
+
 int get_hwp_para(unsigned int cpu,
                  struct xen_cppc_para *cppc_para);
 int set_hwp_para(struct cpufreq_policy *policy,
                  struct xen_set_cppc_para *set_cppc);
=20
 int acpi_register_driver(void);
+
 #endif /* __XEN_CPUFREQ_PM_H__ */
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 12:29:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 12:29:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751543.1159527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOGA6-0007Bl-9i; Mon, 01 Jul 2024 12:29:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751543.1159527; Mon, 01 Jul 2024 12:29: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 1sOGA6-0007Be-5a; Mon, 01 Jul 2024 12:29:38 +0000
Received: by outflank-mailman (input) for mailman id 751543;
 Mon, 01 Jul 2024 12:29: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=0Zhz=OB=bounce.vates.tech=bounce-md_30504962.6682a12c.v1-67ff1999aabb4b26b70ba007a130aac8@srs-se1.protection.inumbo.net>)
 id 1sOGA4-0007BY-6N
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 12:29:36 +0000
Received: from mail137-26.atl71.mandrillapp.com
 (mail137-26.atl71.mandrillapp.com [198.2.137.26])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9245d9c1-37a5-11ef-90a4-e314d9c70b13;
 Mon, 01 Jul 2024 14:29:34 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-26.atl71.mandrillapp.com (Mailchimp) with ESMTP id
 4WCQMw1k4WzJKFKVg
 for <xen-devel@lists.xenproject.org>; Mon,  1 Jul 2024 12:29:32 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 67ff1999aabb4b26b70ba007a130aac8; Mon, 01 Jul 2024 12:29: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: 9245d9c1-37a5-11ef-90a4-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1719836972; x=1720097472;
	bh=OT8ctyaM66k0G56mqx0roUr+TADRdL10IAfJSELRmic=;
	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=j9tN7X+PRjM5V4R5HtaQWQ9dkAuXlOb1jeMKh+Afl3163TzjWv5cvAIXSXJjXamBg
	 jIaI7/SJa/gHmrVdA8TDPVcXZLmn9+QdYF2aKLrpCVPe6PAs+//32x5n/z69m7uzpt
	 2icy4U4oaYNMFajkqwpk/UNUiflJxjqdgK3CziPIRCpUO2wKJefse6UU3+6ohqHoeu
	 Veix3U1vPB4DwN8ob21N2iyd+A0s1wbIuozctppLyXIa5d0Xy7HvyIxsthu43asQup
	 yGJuJmmTbE/asd3cwyo8ab6xMOONmy1E8TULklkIqj78LHIQ1ev1L3g+VA97gcRYeq
	 IQF7qfiMiJ8Xg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1719836972; x=1720097472; i=anthony.perard@vates.tech;
	bh=OT8ctyaM66k0G56mqx0roUr+TADRdL10IAfJSELRmic=;
	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=GK05kfPdFZPZDaxWtviLU6J/4+7zfEN94aDN1sZtoDeri3CqxEFfJbNX/6QaXoWTh
	 IrpQPAC2mk1kFOd0anZn2R1JQ41oNFHp7rofgilLrzeTgpvwlqdhD6ZpH61hoW1hoH
	 eRxID1MM8OLDVdb0qt4AD5R79JBqHhzVXGHOc9jQRQUPeT2Q5LiVOuIKeMfebIxvJV
	 fxJtgob9mXoVyy9J0KtvBYHAPH6KFqB5RTO5FORIfX/1Zohlwpc2haOoFOJZ1sg/0w
	 JdnDqnbxVWYb09pNM2yX3V4VJ34MrgSyiwsLRXp9pN3ne/WGYtx1pQITVFWr66a8oc
	 P1IOeup5smCXg==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v8=2006/13]=20tools:=20add=20support=20for=20cache=20coloring=20configuration?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1719836971740
To: Carlo Nonato <carlo.nonato@minervasys.tech>
Cc: xen-devel@lists.xenproject.org, andrea.bastoni@minervasys.tech, Juergen Gross <jgross@suse.com>, Marco Solieri <marco.solieri@minervasys.tech>
Message-Id: <ZoKhK5uIk9P5XpcZ@l14>
References: <20240502165533.319988-1-carlo.nonato@minervasys.tech> <20240502165533.319988-7-carlo.nonato@minervasys.tech>
In-Reply-To: <20240502165533.319988-7-carlo.nonato@minervasys.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.67ff1999aabb4b26b70ba007a130aac8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240701:md
Date: Mon, 01 Jul 2024 12:29:32 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, May 02, 2024 at 06:55:26PM +0200, Carlo Nonato wrote:
> diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
> index 41252ec553..ff80625bd6 100644
> --- a/tools/libs/light/libxl_create.c
> +++ b/tools/libs/light/libxl_create.c
> @@ -726,6 +726,19 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
>              /* A new domain now exists */
>              *domid = local_domid;
>  
> +            ret = xc_domain_set_llc_colors(ctx->xch, local_domid,
> +                                           b_info->llc_colors,
> +                                           b_info->num_llc_colors);
> +            if (ret < 0 && errno == EOPNOTSUPP) {
> +                if (b_info->num_llc_colors > 0)
> +                    LOGED(WARN, local_domid,
> +                          "LLC coloring not enabled in the hypervisor");

Why is this only a "warning"?

> +            } else if (ret < 0) {
> +                LOGED(ERROR, local_domid, "LLC colors allocation failed");
> +                rc = ERROR_FAIL;
> +                goto out;
> +            }
> +
>              rc = libxl__is_domid_recent(gc, local_domid, &recent);
>              if (rc)
>                  goto out;

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 Jul 01 12:55:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 12:55:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751561.1159541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOGZD-0002mT-5t; Mon, 01 Jul 2024 12:55:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751561.1159541; Mon, 01 Jul 2024 12: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 1sOGZD-0002mM-3C; Mon, 01 Jul 2024 12:55:35 +0000
Received: by outflank-mailman (input) for mailman id 751561;
 Mon, 01 Jul 2024 12: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=11xR=OB=bounce.vates.tech=bounce-md_30504962.6682a742.v1-4d888e4430054bc7b76d34bed385642a@srs-se1.protection.inumbo.net>)
 id 1sOGZB-0002mG-Q4
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 12:55:33 +0000
Received: from mail137-26.atl71.mandrillapp.com
 (mail137-26.atl71.mandrillapp.com [198.2.137.26])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 32dcffef-37a9-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 14:55:32 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-26.atl71.mandrillapp.com (Mailchimp) with ESMTP id
 4WCQxt45dgzJKF6VS
 for <xen-devel@lists.xenproject.org>; Mon,  1 Jul 2024 12:55:30 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 4d888e4430054bc7b76d34bed385642a; Mon, 01 Jul 2024 12:55: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: 32dcffef-37a9-11ef-90a5-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1719838530; x=1720099030;
	bh=VpP23dnSGMr3v2CEKMNAe5zKPZgSu5ZxiHq/Xs24dYc=;
	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=Ny83Y58m6oWh5I6f3VeENNyv3VxXEXSW24lNptMduvW4qTVrjEA/fxVJNto/58P/S
	 mQaIkHgH06OJNaPo4/6v1wWBj4bNSByv1fpFQWLVo2LzMgy57fk2kjep3dJlMnknct
	 /PnGSu1kSfY8s32Z5OctqjPRuNry9mlbWy3trEjZsqaCsfO3l0MHiaGIrQvnqW9OK7
	 QY3E3+6Nq/5Es8I4meZCQfxwQxsuWpBxXO0g/E5PA64n0F8WdZ6BjyWK+XNfK7Cfxb
	 ttJeyuXLAYTk0ShXDWsTHibrngnb9fK09YQk9i+MDIpbBeW1KlfLdu/+fnRo/6MNg7
	 4QpPL187QVfyA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1719838530; x=1720099030; i=anthony.perard@vates.tech;
	bh=VpP23dnSGMr3v2CEKMNAe5zKPZgSu5ZxiHq/Xs24dYc=;
	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=crfnrwXanFZzzSdUZuH07VYdfXSaI4knD3yJ8OMVtpslUNeomgrJHcvlWhezwlGj8
	 4NywvViCMP86r7o/pJcasi8uB2o/+S1ZWBqDlCJtSaSrFHG+gebNeZf+ZI3mwn3gfH
	 GRKp9t/INgxMMBCooj3Schu9RP3mg4m49kaslan72HRXHIKMFAu+4LAYql1J4G2jxG
	 zAtuyk7+r68Aj+Ian56o0soN8laHSLB6bWd6SsKD15O8nUj8snCdYjmctXHMYiFB2P
	 5RZBXRlddaOsRhFXIIdMzJIMfW+4lP0AZkoM0FQ4eeJgf+SFaVWe0KHGOs3WVi5umz
	 GZtBHi5ZK7gSQ==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v8=202/8]=20xen:=20mapcache:=20Unmap=20first=20entries=20in=20buckets?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1719838529271
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: qemu-devel@nongnu.org, sstabellini@kernel.org, jgross@suse.com, "Edgar E. Iglesias" <edgar.iglesias@amd.com>, Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Message-Id: <ZoKnQLBwIwh004yy@l14>
References: <20240529140739.1387692-1-edgar.iglesias@gmail.com> <20240529140739.1387692-3-edgar.iglesias@gmail.com>
In-Reply-To: <20240529140739.1387692-3-edgar.iglesias@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.4d888e4430054bc7b76d34bed385642a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240701:md
Date: Mon, 01 Jul 2024 12:55:30 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi all,

Following this commit, a test which install Debian in a guest with OVMF
as firmware started to fail. QEMU exit with an error when GRUB is
running on the freshly installed Debian (I don't know if GRUB is
starting Linux or not).
The error is:
    Bad ram offset ffffffffffffffff

Some logs:
http://logs.test-lab.xenproject.org/osstest/logs/186611/test-amd64-amd64-xl-qemuu-ovmf-amd64/info.html

Any idea? Something is trying to do something with the address "-1" when
it shouldn't?

Cheers,

Anthony

On Wed, May 29, 2024 at 04:07:33PM +0200, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> When invalidating memory ranges, if we happen to hit the first
> entry in a bucket we were never unmapping it. This was harmless
> for foreign mappings but now that we're looking to reuse the
> mapcache for transient grant mappings, we must unmap entries
> when invalidated.
> 
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
>  hw/xen/xen-mapcache.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> index bc860f4373..ec95445696 100644
> --- a/hw/xen/xen-mapcache.c
> +++ b/hw/xen/xen-mapcache.c
> @@ -491,18 +491,23 @@ static void xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
>          return;
>      }
>      entry->lock--;
> -    if (entry->lock > 0 || pentry == NULL) {
> +    if (entry->lock > 0) {
>          return;
>      }
>  
> -    pentry->next = entry->next;
>      ram_block_notify_remove(entry->vaddr_base, entry->size, entry->size);
>      if (munmap(entry->vaddr_base, entry->size) != 0) {
>          perror("unmap fails");
>          exit(-1);
>      }
> +
>      g_free(entry->valid_mapping);
> -    g_free(entry);
> +    if (pentry) {
> +        pentry->next = entry->next;
> +        g_free(entry);
> +    } else {
> +        memset(entry, 0, sizeof *entry);
> +    }
>  }
>  
>  typedef struct XenMapCacheData {
> -- 
> 2.40.1
> 
> 
-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:14:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:14:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751567.1159551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOGrc-0005qz-NQ; Mon, 01 Jul 2024 13:14:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751567.1159551; Mon, 01 Jul 2024 13:14: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 1sOGrc-0005qs-Ku; Mon, 01 Jul 2024 13:14:36 +0000
Received: by outflank-mailman (input) for mailman id 751567;
 Mon, 01 Jul 2024 13:14:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOGrb-0005qi-UP; Mon, 01 Jul 2024 13:14:35 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOGrb-0006ji-QC; Mon, 01 Jul 2024 13:14:35 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOGrb-0000Cm-90; Mon, 01 Jul 2024 13:14:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOGrb-0005Wc-8f; Mon, 01 Jul 2024 13:14:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=MxFfDafNP0uHpKBFiF2V0o7pWc/KRxTlpWs4oGXsKK8=; b=es/1wa0IXjzWPh5u8wvC31ZzJP
	seafLyDBTt7trPnrJw/YuKQDqci5ZW8P4na48EtEdkWuw79YwT1ACj1x/pcydHMx/HjtD3upTNdPr
	A8wFY0FmstPS/npcRA60wmzoi07KjybekCV1VkX966PS67yiwq98kLQoTFVSPSmMgGnw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186615-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186615: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=22a40d14b572deb80c0648557f4bd502d7e83826
X-Osstest-Versions-That:
    linux=e0b668b070348c36e0ab83af12987b6390f9ec26
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Jul 2024 13:14:35 +0000

flight 186615 linux-linus real [real]
flight 186618 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186615/
http://logs.test-lab.xenproject.org/osstest/logs/186618/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt      8 xen-boot            fail pass in 186618-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 186618 like 186608
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 186618 never pass
 test-armhf-armhf-xl-arndale   8 xen-boot                     fail  like 186608
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186608
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186608
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186608
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186608
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186608
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                22a40d14b572deb80c0648557f4bd502d7e83826
baseline version:
 linux                e0b668b070348c36e0ab83af12987b6390f9ec26

Last test of basis   186608  2024-06-30 21:10:06 Z    0 days
Testing same since   186615  2024-07-01 05:56:24 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Linus Torvalds <torvalds@linux-foundation.org>
  Niklas Cassel <cassel@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   e0b668b07034..22a40d14b572  22a40d14b572deb80c0648557f4bd502d7e83826 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:21:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:21:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751577.1159560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOGy8-0007e5-FW; Mon, 01 Jul 2024 13:21:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751577.1159560; Mon, 01 Jul 2024 13: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 1sOGy8-0007dy-D4; Mon, 01 Jul 2024 13:21:20 +0000
Received: by outflank-mailman (input) for mailman id 751577;
 Mon, 01 Jul 2024 13:21: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOGy7-0007dq-E1
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:21:19 +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 cbe7d5d6-37ac-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 15:21:16 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ec1620a956so34458421fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 06:21: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
 d9443c01a7336-1fac1535cc8sm64114565ad.122.2024.07.01.06.21.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 06:21: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: cbe7d5d6-37ac-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719840076; x=1720444876; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zA357/1thq8qnsdzOuqvNaZwN61oqv2FZcEQA0Yinh8=;
        b=bD5aqwVXroMQP09jI/VpRPIrqUZEPuLM6QE+2V1jvTpkYp3Y02q8n6mip7AUPIcrGO
         ZpBM8zesodlzZqj/pm+avA/0Q6Z7i+ohmwzNN9tdav4GLmQpy2rMOtmXebRkdlhRlctd
         pzNjZdZFk8b5rIbBHW4YhhWGFRX6um2ehsKAbYGn+yvMGm8jcU22UuHs1LiJvdezPUU2
         rgs8U4NJ4V+Rwlxz5yf/quQibeATzp6q11Lydun/0ap2b+4chmmaHiNfI7NIIfVmcyxS
         DIPnP/Me0E1rCC2j6u0Wes1bIwvNHMRg+KiqnnZWJJD+yuv1+xv10K4d8bwnlhpm8ugC
         HGtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719840076; x=1720444876;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zA357/1thq8qnsdzOuqvNaZwN61oqv2FZcEQA0Yinh8=;
        b=K7Xe/lQDzbHo3bG88tvRLm9QnsRjVaZwS3GeQz/Tz72xoBs3946ny3TrAgWh+7aItk
         obzCivX9sPPH+kRc1uq9jvPzXUHSGKMoE0H4cxaf08oAVKknUttcdB3OSTRSpAO3O8Q5
         wOD+OYNSOgMlY3eTDXsKOlWvJpMeixiyqJzEAZzp0b2g77yGKnuoI41R8bsTrcWpgUE+
         Rwp2rYeM1tw2nHVaiNMv+IBbsYvkWn7qBrI5MRnXGt+tg3UuXrLrNHwa/EpJ+OZiaUUW
         CM9p1mBEzDrt5xXNN7BYnGdv9F9eEu7zhRUgW1OXuqugQ0vTnJeTSod48utAurRk41/X
         ccQA==
X-Gm-Message-State: AOJu0YwTCmXQuIa2EGmrA1Af73WF5fCmQuv6v1eeGL5bMQ/12/pvFrsi
	QN4ru4yk5+TiLarkmxWOk683JhsX4V1AX6+Z4lkib2XcF2D47zjP+ZLP9G7t6w==
X-Google-Smtp-Source: AGHT+IELJKPKOyPBjwnGTtAqjFbtIWjaZoRZyJJjQ3Jk3qootecqdqrU4F1n48k/UKnGo3HigL/5YA==
X-Received: by 2002:a05:651c:4d2:b0:2ec:5467:dcb6 with SMTP id 38308e7fff4ca-2ee5e6bd1cfmr34554701fa.52.1719840076135;
        Mon, 01 Jul 2024 06:21:16 -0700 (PDT)
Message-ID: <2d5e700c-22a1-47ad-912f-d242c9fe122f@suse.com>
Date: Mon, 1 Jul 2024 15:21:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 for-4.19 2/3] pirq_cleanup_check() leaks
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <5641f8eb-5736-8ccc-122b-b3b47c1bac28@suse.com> <ZoJu3jcsiCWwOhBl@macbook>
 <7d51b6b7-affb-46fd-98dc-b54d3842f6c2@suse.com> <ZoKPUotSg4HOlRzJ@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZoKPUotSg4HOlRzJ@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.07.2024 13:13, Roger Pau Monné wrote:
> On Mon, Jul 01, 2024 at 11:47:34AM +0200, Jan Beulich wrote:
>> On 01.07.2024 10:55, Roger Pau Monné wrote:
>>> On Thu, Jul 27, 2023 at 09:38:29AM +0200, Jan Beulich wrote:
>>>> Its original introduction had two issues: For one the "common" part of
>>>> the checks (carried out in the macro) was inverted.
>>>
>>> Is the current logic in evtchn_close() really malfunctioning?
>>
>> First: I'm getting the impression that this entire comment doesn't relate
>> to the part of the description above, but to the 2nd paragraph further
>> down. Otherwise I'm afraid I may not properly understand your question,
>> and hence my response below may not make any sense at all.
>>
>>> pirq->evtchn = 0;
>>> pirq_cleanup_check(pirq, d1); <- cleanup for PV domains
>>> if ( is_hvm_domain(d1) && domain_pirq_to_irq(d1, pirq->pirq) > 0 )
>>>     unmap_domain_pirq_emuirq(d1, pirq->pirq); <- cleanup for HVM domains
>>>
>>> It would seem to me the pirq_cleanup_check() call just after setting
>>> evtchn = 0 was done to account for PV domains, while the second
>>> (hidden) pirq_cleanup_check() call in unmap_domain_pirq_emuirq() would
>>> do the cleanup for HVM domains.
>>>
>>> Maybe there's something that I'm missing, I have to admit the PIRQ
>>> logic is awfully complicated, even more when we mix the HVM PIRQ
>>> stuff.
>>
>> If you look at pirq_cleanup_check() you'll notice that it takes care
>> of one HVM case as well (the not emuirq one, i.e. particularly PVH,
>> but note also how physdev_hvm_map_pirq() calls map_domain_emuirq_pirq()
>> only conditionally). Plus the crucial aspect of the 2nd paragraph of
>> the description is that past calling pirq_cleanup_check() it is not
>> really valid anymore to (blindly) de-reference the struct pirq pointer
>> we hold in hands. The is_hvm_domain() qualification wasn't enough,
>> since - as said - it's only one of the possibilities that would allow
>> the pirq to remain legal to use past the call, when having taken the
>> function's
>>
>>         if ( pirq->arch.hvm.emuirq != IRQ_UNBOUND )
>>             return;
>>
>> path. A 2nd would be taking the
>>
>>         if ( !pt_pirq_cleanup_check(&pirq->arch.hvm.dpci) )
>>             return;
>>
>> path (i.e. a still in use pass-through IRQ), but the 3rd would still
>> end in the struct pirq being purged even for HVM.
> 
> Right, I was missing that if pirq is properly freed then further
> usages of it after the pirq_cleanup_check() would be use after free.
> 
>>>> And then after
>>>> removal from the radix tree the structure wasn't scheduled for freeing.
>>>> (All structures still left in the radix tree would be freed upon domain
>>>> destruction, though.)
>>>
>>> So if my understanding is correct, we didn't have a leak due to the
>>> missing free_pirq_struct() because the inverted check in
>>> pirq_cleanup_check() macro prevented the removal from the radix tree,
>>> and so stale entries would be left there and freed at domain
>>> destruction?
>>
>> That's the understanding I had come to, yes. What I wasn't entirely
>> sure about (see the 2nd post-commit-message remark) is why the entry
>> being left in the radix tree never caused any problems. Presumably
>> that's a result of pirq_get_info() first checking whether an entry is
>> already there, allocating a new one only for previously empty slots.
> 
> Yes, I came to the same conclusion, that not freeing wasn't an issue
> as Xen would re-use the old entry.  Hopefully it's clean enough to not
> cause issues when re-using.
> 
>>>> --- a/xen/common/event_channel.c
>>>> +++ b/xen/common/event_channel.c
>>>> @@ -711,9 +711,10 @@ int evtchn_close(struct domain *d1, int
>>>>              if ( !is_hvm_domain(d1) )
>>>>                  pirq_guest_unbind(d1, pirq);
>>>>              pirq->evtchn = 0;
>>>> -            pirq_cleanup_check(pirq, d1);
>>>> -            if ( is_hvm_domain(d1) && domain_pirq_to_irq(d1, pirq->pirq) > 0 )
>>>> -                unmap_domain_pirq_emuirq(d1, pirq->pirq);
>>>> +            if ( !is_hvm_domain(d1) ||
>>>> +                 domain_pirq_to_irq(d1, pirq->pirq) <= 0 ||
>>>> +                 unmap_domain_pirq_emuirq(d1, pirq->pirq) < 0 )
>>>
>>> pirq_cleanup_check() already calls pirq_cleanup_check() itself.  Could
>>> you please add a comment to note that unmap_domain_pirq_emuirq()
>>> succeeding implies the call to pirq_cleanup_check() has already been
>>> done?
>>>
>>> Otherwise the logic here looks unbalanced by skipping the
>>> pirq_cleanup_check() when unmap_domain_pirq_emuirq() succeeds.
>>
>> Sure, added:
>>
>>                 /*
>>                  * The successful path of unmap_domain_pirq_emuirq() will have
>>                  * called pirq_cleanup_check() already.
>>                  */
> 
> With that added:
> 
> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks Roger.

Oleksii - would you please consider giving this long-standing bug fix a
release ack?

Thanks, Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:29:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:29:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751583.1159570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOH6F-000063-9J; Mon, 01 Jul 2024 13:29:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751583.1159570; Mon, 01 Jul 2024 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 1sOH6F-00005v-6F; Mon, 01 Jul 2024 13:29:43 +0000
Received: by outflank-mailman (input) for mailman id 751583;
 Mon, 01 Jul 2024 13: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=BFf9=OB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sOH6D-00005p-DU
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:29:41 +0000
Received: from mail-vs1-xe32.google.com (mail-vs1-xe32.google.com
 [2607:f8b0:4864:20::e32])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f7c3ce07-37ad-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 15:29:40 +0200 (CEST)
Received: by mail-vs1-xe32.google.com with SMTP id
 ada2fe7eead31-48f96299046so1116314137.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 06:29:40 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-79d692613e0sm348720285a.9.2024.07.01.06.29.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 06:29: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: f7c3ce07-37ad-11ef-90a5-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719840579; x=1720445379; 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=FFlsDpCIS+Yt+GUBlXKxtNMYwdSM9Fh/6AqqZmrr8gU=;
        b=FXQhB0CyeBsdJ0FuKw2XLYQhQcF2omjNOPWKiVxtsgH1L+6AL6S23NsncrDRDxut+7
         yV4ozivoeWFnzp7s+vIW2L779DWV3Mgw7MXMlOWBcYkF2AFDdLyTV15OGDAnxGTXMRsd
         Rr8Oaz6ukoXFU6kEaV7mXCPQsoB08hx1UkmoY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719840579; x=1720445379;
        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=FFlsDpCIS+Yt+GUBlXKxtNMYwdSM9Fh/6AqqZmrr8gU=;
        b=H6XomSJ3LrK0K82z55m12yBaXEmKBJOMWEQY/wwabr965P7r+JGL6fl2EIB6sttIXV
         R6xio3eBamjTGp266adxPCOU5ZfOn/10OWnoHUONUBvh7ivRvPlmReSQz2RGlvz4lKwR
         Tim9Dip9uItKUK89pQ1uoD1bDt1WZ+BSaAW//p2Wvu9HbIT9XVMqa4XYNNfj4Xn88fkW
         bDkM88Rmz6sz/w0qf9jR7cDs1gdLxV8p95H8Pln5AbJxeppsxFydmShMkT/ImdmN6Wmk
         6iJ6+LPwfE5oNZq4Cd0aZMBDJ3ssagO+nPiCRpNESf4YzBf2kNCw4G1HPcWisiDLS37S
         GhhA==
X-Gm-Message-State: AOJu0YzPAPQjEePj5fuZmJyCb5dr8FRbRQ5nXiPzfoY2HGNfTcykGBs7
	KFQmQ8rN5q5bBaYcuufTmG33GfOIvAPE9rDHfx/og8nhFpF8h7JPR8wd3LcSmms=
X-Google-Smtp-Source: AGHT+IEaa1YYUQEkfrxNc8X7Njjp3jQcsuBnT9eU+scp0dfdflq9aPKRoOEnHzOOjoppi+TtslLhgQ==
X-Received: by 2002:a05:6102:114e:b0:48f:3f9a:7609 with SMTP id ada2fe7eead31-48faf06a565mr5775538137.5.1719840579079;
        Mon, 01 Jul 2024 06:29:39 -0700 (PDT)
Date: Mon, 1 Jul 2024 15:29:35 +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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 3/3] cmdline: document and enforce "extra_guest_irqs"
 upper bounds
Message-ID: <ZoKvP6StEbMTgjrY@macbook>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <3c3a1d0c-06f2-a392-b2f9-381bed5c5e7b@suse.com>
 <ZoJ9Bd2kg3IQ0Z28@macbook>
 <8ab71a85-6056-4c4f-8513-a21c061a176d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8ab71a85-6056-4c4f-8513-a21c061a176d@suse.com>

On Mon, Jul 01, 2024 at 12:40:35PM +0200, Jan Beulich wrote:
> On 01.07.2024 11:55, Roger Pau Monné wrote:
> > On Thu, Jul 27, 2023 at 09:38:55AM +0200, Jan Beulich wrote:
> >> --- a/xen/arch/x86/io_apic.c
> >> +++ b/xen/arch/x86/io_apic.c
> >> @@ -2663,18 +2663,21 @@ void __init ioapic_init(void)
> >>             nr_irqs_gsi, nr_irqs - nr_irqs_gsi);
> >>  }
> >>  
> >> -unsigned int arch_hwdom_irqs(domid_t domid)
> >> +unsigned int arch_hwdom_irqs(const struct domain *d)
> > 
> > While at it, should this be __hwdom_init?
> 
> It indeed can be, so I've done this for v4.
> 
> > I'm fine with changing the function to take a domain parameter...
> > 
> >>  {
> >>      unsigned int n = fls(num_present_cpus());
> >>  
> >> -    if ( !domid )
> >> +    if ( is_system_domain(d) )
> >> +        return PAGE_SIZE * BITS_PER_BYTE;
> > 
> > ... but why do we need a function call just to get a constant value?
> > Wouldn't this better be a define in a header?
> 
> Would be an option, but would result in parts of the logic living is
> distinct places.
> 
> >> +
> >> +    if ( !d->domain_id )
> >>          n = min(n, dom0_max_vcpus());
> >>      n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, nr_irqs);
> >>  
> >>      /* Bounded by the domain pirq eoi bitmap gfn. */
> >>      n = min_t(unsigned int, n, PAGE_SIZE * BITS_PER_BYTE);
> > 
> > So that could also use the same constant here?

I would have a slight preference for PAGE_SIZE * BITS_PER_BYTE being
defined inside of this function as:

/* Bounded by the domain pirq eoi bitmap gfn. */
const unsigned int max_irqs = PAGE_SIZE * BITS_PER_BYTE;

Or similar for clarity purposes.

While at it, I've noticed that PHYSDEVOP_pirq_eoi_gmfn_v{1,2} is not
available to HVM guests (not even when exposing PIRQ support) and
hence I wonder if we should special case PVH dom0, but maybe it's best
to deal with this properly rather than hacking something special
just for PVH dom0.  At the end of the day the current limit is high
enough to not cause issues on current systems I would expect.

> >> -    printk("Dom%d has maximum %u PIRQs\n", domid, n);
> >> +    printk("%pd has maximum %u PIRQs\n", d, n);
> >>  
> >>      return n;
> >>  }
> >> --- a/xen/common/domain.c
> >> +++ b/xen/common/domain.c
> >> @@ -693,7 +693,7 @@ struct domain *domain_create(domid_t dom
> >>              d->nr_pirqs = nr_static_irqs + extra_domU_irqs;
> >>          else
> >>              d->nr_pirqs = extra_hwdom_irqs ? nr_static_irqs + extra_hwdom_irqs
> >> -                                           : arch_hwdom_irqs(domid);
> >> +                                           : arch_hwdom_irqs(d);
> >>          d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
> >>  
> >>          radix_tree_init(&d->pirq_tree);
> >> @@ -819,6 +819,24 @@ void __init setup_system_domains(void)
> >>      if ( IS_ERR(dom_xen) )
> >>          panic("Failed to create d[XEN]: %ld\n", PTR_ERR(dom_xen));
> >>  
> >> +#ifdef CONFIG_HAS_PIRQ
> >> +    /* Bound-check values passed via "extra_guest_irqs=". */
> >> +    {
> >> +        unsigned int n = max(arch_hwdom_irqs(dom_xen), nr_static_irqs);
> >> +
> >> +        if ( extra_hwdom_irqs > n - nr_static_irqs )
> >> +        {
> >> +            extra_hwdom_irqs = n - nr_static_irqs;
> >> +            printk(XENLOG_WARNING "hwdom IRQs bounded to %u\n", n);
> >> +        }
> >> +        if ( extra_domU_irqs > max(32U, n - nr_static_irqs) )
> >> +        {
> >> +            extra_domU_irqs = n - nr_static_irqs;
> >> +            printk(XENLOG_WARNING "domU IRQs bounded to %u\n", n);
> >> +        }
> >> +    }
> >> +#endif
> > 
> > IMO this is kind of a weird placement. Wouldn't this be more naturally
> > handled in parse_extra_guest_irqs()?
> 
> Indeed it is and yes it would, but no, it can't. We shouldn't rely on
> the particular behavior of arch_hwdom_irqs(), and in the general case
> we can't call it as early as when command line arguments are parsed. I
> couldn't think of a neater way of doing this, and it not being pretty
> is why I'm saying "(ab)use" in the description.

I see, nr_static_irqs is an alias of nr_irqs_gsi, which is not properly
set by the time we evaluate command line arguments.

My only possible suggestion would be to do it as a presmp initcall,
and define/register such initcall for x86 only, the only benefit would
be that such inicall could be defined in the same translation unit as
arch_hwdom_irqs() then.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:36:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:36:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751592.1159580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHCq-0001bZ-UZ; Mon, 01 Jul 2024 13:36:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751592.1159580; Mon, 01 Jul 2024 13: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 1sOHCq-0001bS-S3; Mon, 01 Jul 2024 13:36:32 +0000
Received: by outflank-mailman (input) for mailman id 751592;
 Mon, 01 Jul 2024 13:36: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHCp-0001bF-SC
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:36:31 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec461882-37ae-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 15:36:30 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id ECA6B4EE0738;
 Mon,  1 Jul 2024 15:36: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: ec461882-37ae-11ef-b4bb-af5377834399
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.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>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 04/17] xen/arm: address violations of MISRA C:2012 Directive 4.10
Date: Mon,  1 Jul 2024 15:35:59 +0200
Message-Id: <5646033a5e15c44fa6eb441690f36254d068ddee.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add inclusion guard to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Mechanical change.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- Drop ARCH_ string from the guard, according to the feedback received
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- drop changes in xen/arch/arm/include/asm/hypercall.h
- drop changes in xen/arch/arm/include/asm/iocap.h since they are
  not related with the directive
---
 xen/arch/arm/efi/efi-boot.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 199f526022..947166905f 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -3,6 +3,10 @@
  * is intended to be included by common/efi/boot.c _only_, and
  * therefore can define arch specific global variables.
  */
+
+#ifndef ARM_EFI_EFI_BOOT_H
+#define ARM_EFI_EFI_BOOT_H
+
 #include <xen/device_tree.h>
 #include <xen/libfdt/libfdt.h>
 #include <asm/setup.h>
@@ -992,6 +996,8 @@ static void __init efi_arch_flush_dcache_area(const void *vaddr, UINTN size)
     __flush_dcache_area(vaddr, size);
 }
 
+#endif /* ARM_EFI_EFI_BOOT_H */
+
 /*
  * Local variables:
  * mode: C
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:36:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:36:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751593.1159590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHCs-0001po-59; Mon, 01 Jul 2024 13:36:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751593.1159590; Mon, 01 Jul 2024 13:36: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 1sOHCs-0001ph-2H; Mon, 01 Jul 2024 13:36:34 +0000
Received: by outflank-mailman (input) for mailman id 751593;
 Mon, 01 Jul 2024 13:36: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHCr-0001b4-Dn
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:36:33 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ede646af-37ae-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 15:36:32 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id DF3A54EE0747;
 Mon,  1 Jul 2024 15:36: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: ede646af-37ae-11ef-90a5-e314d9c70b13
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 05/17] xen/x86: address violations of MISRA C:2012 Directive 4.10
Date: Mon,  1 Jul 2024 15:36:00 +0200
Message-Id: <d67d06849732fea11391afd61ff9891ed11795e5.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add or move inclusion guards to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Inclusion guards must appear at the beginning of the headers
(comments are permitted anywhere).

Note that in x86_64/mmconfig.h we slightly deviate from the naming
convention in place: instead of having the inclusion guard as
X86_X86_64_MMCONFIG_H we shortened the directory prefix as X86_64 for
the sake of readability.

Mechanical change.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- modified inclusion guards and makefile.
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- remove extra blanks
- drop changes in C files

Note:
Changes in Makefile were not strictly necessary in v1 and a maintainer
asked to removing them since there was a deviation for generated headers.
Now, in v2, they are required since the deviation has been removed by
another patch of this series.
---
 xen/arch/x86/Makefile              | 9 +++++----
 xen/arch/x86/cpu/cpu.h             | 5 +++++
 xen/arch/x86/x86_64/mmconfig.h     | 5 +++++
 xen/arch/x86/x86_emulate/private.h | 5 +++++
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index d902fb7acc..06d1bab43c 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -260,17 +260,18 @@ $(objtree)/arch/x86/include/asm/asm-macros.h: $(obj)/asm-macros.i $(src)/Makefil
 	$(call filechk,asm-macros.h)
 
 define filechk_asm-macros.h
+	guard=$$(echo ASM_${SRCARCH}_ASM_MACROS_H | tr a-z A-Z);  \
+    echo '#ifndef $$guard'; \
+    echo '#define $$guard'; \
     echo '#if 0'; \
     echo '.if 0'; \
     echo '#endif'; \
-    echo '#ifndef __ASM_MACROS_H__'; \
-    echo '#define __ASM_MACROS_H__'; \
     echo 'asm ( ".include \"$@\"" );'; \
-    echo '#endif /* __ASM_MACROS_H__ */'; \
     echo '#if 0'; \
     echo '.endif'; \
     cat $<; \
-    echo '#endif'
+    echo '#endif'; \
+    echo '#endif /* $$guard */'
 endef
 
 $(obj)/efi.lds: AFLAGS-y += -DEFI
diff --git a/xen/arch/x86/cpu/cpu.h b/xen/arch/x86/cpu/cpu.h
index 8be65e975a..ee1c176ca4 100644
--- a/xen/arch/x86/cpu/cpu.h
+++ b/xen/arch/x86/cpu/cpu.h
@@ -1,3 +1,6 @@
+#ifndef X86_CPU_CPU_H
+#define X86_CPU_CPU_H
+
 /* attempt to consolidate cpu attributes */
 struct cpu_dev {
 	void		(*c_early_init)(struct cpuinfo_x86 *c);
@@ -26,3 +29,5 @@ void amd_init_spectral_chicken(void);
 void detect_zen2_null_seg_behaviour(void);
 
 void intel_unlock_cpuid_leaves(struct cpuinfo_x86 *c);
+
+#endif /* X86_CPU_CPU_H */
diff --git a/xen/arch/x86/x86_64/mmconfig.h b/xen/arch/x86/x86_64/mmconfig.h
index 3da4b21e9b..722bf67975 100644
--- a/xen/arch/x86/x86_64/mmconfig.h
+++ b/xen/arch/x86/x86_64/mmconfig.h
@@ -5,6 +5,9 @@
  * Author: Allen Kay <allen.m.kay@intel.com> - adapted from linux
  */
 
+#ifndef X86_64_MMCONFIG_H
+#define X86_64_MMCONFIG_H
+
 #define PCI_DEVICE_ID_INTEL_E7520_MCH    0x3590
 #define PCI_DEVICE_ID_INTEL_82945G_HB    0x2770
 
@@ -72,3 +75,5 @@ int pci_mmcfg_reserved(uint64_t address, unsigned int segment,
 int pci_mmcfg_arch_init(void);
 int pci_mmcfg_arch_enable(unsigned int idx);
 void pci_mmcfg_arch_disable(unsigned int idx);
+
+#endif /* X86_64_MMCONFIG_H */
diff --git a/xen/arch/x86/x86_emulate/private.h b/xen/arch/x86/x86_emulate/private.h
index 0fa26ba00a..8429b30b5e 100644
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -6,6 +6,9 @@
  * Copyright (c) 2005-2007 XenSource Inc.
  */
 
+#ifndef X86_X86_EMULATE_PRIVATE_H
+#define X86_X86_EMULATE_PRIVATE_H
+
 #ifdef __XEN__
 
 # include <xen/bug.h>
@@ -836,3 +839,5 @@ static inline int read_ulong(enum x86_segment seg,
     *val = 0;
     return ops->read(seg, offset, val, bytes, ctxt);
 }
+
+#endif /* X86_X86_EMULATE_PRIVATE_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:36:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:36:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751594.1159601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHCx-00027Z-Bp; Mon, 01 Jul 2024 13:36:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751594.1159601; Mon, 01 Jul 2024 13:36: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 1sOHCx-00027S-93; Mon, 01 Jul 2024 13:36:39 +0000
Received: by outflank-mailman (input) for mailman id 751594;
 Mon, 01 Jul 2024 13:36: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHCv-0001bF-V3
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:36:37 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f01c384e-37ae-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 15:36:36 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id D773C4EE0748;
 Mon,  1 Jul 2024 15:36: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: f01c384e-37ae-11ef-b4bb-af5377834399
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 06/17] x86/EFI: address violations of MISRA C:2012 Directive 4.10
Date: Mon,  1 Jul 2024 15:36:01 +0200
Message-Id: <0267af93ae969b67a77c3a9aca9f4ad6525de1b9.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add inclusion guard to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Mechanical change.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- Modified inclusion guard.
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- remove changes in "xen/arch/x86/efi/efi-boot.h"

Note:
Changes in efi-boot.h have been removed since the file is
intenteded to be included by common/efi/boot.c only. This motivation
is not enough to raise a deviation record, so the violation is
still present.
---
 xen/arch/x86/efi/efi-boot.h | 7 +++++++
 xen/arch/x86/efi/runtime.h  | 5 +++++
 2 files changed, 12 insertions(+)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index f282358435..c6be744f2b 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -3,6 +3,11 @@
  * is intended to be included by common/efi/boot.c _only_, and
  * therefore can define arch specific global variables.
  */
+
+#ifndef X86_EFI_EFI_BOOT_H
+#define X86_EFI_EFI_BOOT_H
+
+
 #include <xen/vga.h>
 #include <asm/e820.h>
 #include <asm/edd.h>
@@ -912,6 +917,8 @@ void asmlinkage __init efi_multiboot2(EFI_HANDLE ImageHandle,
     efi_exit_boot(ImageHandle, SystemTable);
 }
 
+#endif /* X86_EFI_EFI_BOOT_H */
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/efi/runtime.h b/xen/arch/x86/efi/runtime.h
index 77866c5f21..88ab5651e9 100644
--- a/xen/arch/x86/efi/runtime.h
+++ b/xen/arch/x86/efi/runtime.h
@@ -1,3 +1,6 @@
+#ifndef X86_EFI_RUNTIME_H
+#define X86_EFI_RUNTIME_H
+
 #include <xen/domain_page.h>
 #include <xen/mm.h>
 #include <asm/atomic.h>
@@ -17,3 +20,5 @@ void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e)
     }
 }
 #endif
+
+#endif /* X86_EFI_RUNTIME_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:36:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:36:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751597.1159611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHD0-0002QP-Q6; Mon, 01 Jul 2024 13:36:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751597.1159611; Mon, 01 Jul 2024 13:36:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHD0-0002QE-ML; Mon, 01 Jul 2024 13:36:42 +0000
Received: by outflank-mailman (input) for mailman id 751597;
 Mon, 01 Jul 2024 13:36:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHCz-0001bF-HB
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:36:41 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f22be3b9-37ae-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 15:36:40 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id 133A84EE0738;
 Mon,  1 Jul 2024 15:36: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: f22be3b9-37ae-11ef-b4bb-af5377834399
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 07/17] xen/common: address violations of MISRA C:2012 Directive 4.10
Date: Mon,  1 Jul 2024 15:36:02 +0200
Message-Id: <431bb9460df122ffa9f34c5f5ea4d13d6ca00963.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add inclusion guards to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Mechanical change.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- drop XEN_ prefix from inclusion guard, according to the feedback received
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- drop changes in C files
---
 xen/common/decompress.h    | 5 +++++
 xen/common/event_channel.h | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/xen/common/decompress.h b/xen/common/decompress.h
index e8195b353a..9bf20e6a2d 100644
--- a/xen/common/decompress.h
+++ b/xen/common/decompress.h
@@ -1,3 +1,6 @@
+#ifndef COMMON_DECOMPRESS_H
+#define COMMON_DECOMPRESS_H
+
 #ifdef __XEN__
 
 #include <xen/cache.h>
@@ -23,3 +26,5 @@
 #define large_free free
 
 #endif
+
+#endif /* COMMON_DECOMPRESS_H */
diff --git a/xen/common/event_channel.h b/xen/common/event_channel.h
index 45219ca67c..502ac39a48 100644
--- a/xen/common/event_channel.h
+++ b/xen/common/event_channel.h
@@ -1,5 +1,8 @@
 /* Event channel handling private header. */
 
+#ifndef COMMON_EVENT_CHANNEL_H
+#define COMMON_EVENT_CHANNEL_H
+
 #include <xen/event.h>
 
 static inline unsigned int max_evtchns(const struct domain *d)
@@ -52,6 +55,8 @@ int evtchn_fifo_init_control(struct evtchn_init_control *init_control);
 int evtchn_fifo_expand_array(const struct evtchn_expand_array *expand_array);
 void evtchn_fifo_destroy(struct domain *d);
 
+#endif /* COMMON_EVENT_CHANNEL_H */
+
 /*
  * Local variables:
  * mode: C
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:36:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:36:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751598.1159621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHD3-0002jM-2o; Mon, 01 Jul 2024 13:36:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751598.1159621; Mon, 01 Jul 2024 13: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 1sOHD2-0002jE-Ub; Mon, 01 Jul 2024 13:36:44 +0000
Received: by outflank-mailman (input) for mailman id 751598;
 Mon, 01 Jul 2024 13:36: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHD0-0001b4-V9
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:36:42 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3a04365-37ae-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 15:36:42 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id 260C84EE0747;
 Mon,  1 Jul 2024 15:36: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: f3a04365-37ae-11ef-90a5-e314d9c70b13
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 08/17] xen/efi: address violations of MISRA C:2012 Directive 4.10
Date: Mon,  1 Jul 2024 15:36:03 +0200
Message-Id: <01f9273031e37d8e4621ca509a83c61ae4725822.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add inclusion guards to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Mechanical change.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- drop XEN_ prefix from inclusion guard, according to the feedback received
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- drop changes in C files
---
 xen/common/efi/efi.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/xen/common/efi/efi.h b/xen/common/efi/efi.h
index c02fbb7b69..e5eae8f78a 100644
--- a/xen/common/efi/efi.h
+++ b/xen/common/efi/efi.h
@@ -1,3 +1,6 @@
+#ifndef COMMON_EFI_EFI_H
+#define COMMON_EFI_EFI_H
+
 #include <asm/efibind.h>
 #include <efi/efidef.h>
 #include <efi/efierr.h>
@@ -51,3 +54,5 @@ void free_ebmalloc_unused_mem(void);
 
 const void *pe_find_section(const void *image, const UINTN image_size,
                             const CHAR16 *section_name, UINTN *size_out);
+
+#endif /* COMMON_EFI_EFI_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:36:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751600.1159631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHD5-00034K-B7; Mon, 01 Jul 2024 13:36:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751600.1159631; Mon, 01 Jul 2024 13: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 1sOHD5-00034D-5i; Mon, 01 Jul 2024 13:36:47 +0000
Received: by outflank-mailman (input) for mailman id 751600;
 Mon, 01 Jul 2024 13:36:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHD4-0001bF-KZ
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:36:46 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f53efcd7-37ae-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 15:36:45 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id A91854EE0748;
 Mon,  1 Jul 2024 15: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: f53efcd7-37ae-11ef-b4bb-af5377834399
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <jgrall@amazon.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 09/17] xen: address violations of MISRA C:2012 Directive 4.10
Date: Mon,  1 Jul 2024 15:36:04 +0200
Message-Id: <76caa62c49a7aa02e43892f9edd72d90e9f39243.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Amend inclusion guards to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Inclusion guards must appear at the beginning of the headers
(comments are permitted anywhere) and the #if directive cannot
be used for other checks.

Mechanical change.

Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Acked-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- drop XEN_ prefix from inclusion guard, according to the feedback received
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- drop changes in xen/include/xen/unaligned.h since this second
  series adds a comment-based deviation in a separate patch
- use #ifndef instead of #if !defined()
---
 xen/include/xen/err.h     | 8 +++++---
 xen/include/xen/pci_ids.h | 5 +++++
 xen/include/xen/softirq.h | 8 +++++---
 xen/include/xen/vmap.h    | 8 +++++---
 4 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/xen/include/xen/err.h b/xen/include/xen/err.h
index cbdd1bf7f8..65549caac2 100644
--- a/xen/include/xen/err.h
+++ b/xen/include/xen/err.h
@@ -1,5 +1,6 @@
-#if !defined(__XEN_ERR_H__) && !defined(__ASSEMBLY__)
-#define __XEN_ERR_H__
+#ifndef INCLUDE_XEN_ERR_H
+#define INCLUDE_XEN_ERR_H
+#ifndef __ASSEMBLY__
 
 #include <xen/compiler.h>
 #include <xen/errno.h>
@@ -41,4 +42,5 @@ static inline int __must_check PTR_RET(const void *ptr)
 	return IS_ERR(ptr) ? PTR_ERR(ptr) : 0;
 }
 
-#endif /* __XEN_ERR_H__ */
+#endif /* __ASSEMBLY__ */
+#endif /* INCLUDE_XEN_ERR_H */
diff --git a/xen/include/xen/pci_ids.h b/xen/include/xen/pci_ids.h
index e798477a7e..8e40c78db7 100644
--- a/xen/include/xen/pci_ids.h
+++ b/xen/include/xen/pci_ids.h
@@ -1,3 +1,6 @@
+#ifndef INCLUDE_XEN_PCI_IDS_H
+#define INCLUDE_XEN_PCI_IDS_H
+
 #define PCI_VENDOR_ID_AMD                0x1022
 
 #define PCI_VENDOR_ID_NVIDIA             0x10de
@@ -11,3 +14,5 @@
 #define PCI_VENDOR_ID_BROADCOM           0x14e4
 
 #define PCI_VENDOR_ID_INTEL              0x8086
+
+#endif /* INCLUDE_XEN_PCI_IDS_H */
diff --git a/xen/include/xen/softirq.h b/xen/include/xen/softirq.h
index 33d6f2ecd2..90d4875df7 100644
--- a/xen/include/xen/softirq.h
+++ b/xen/include/xen/softirq.h
@@ -1,5 +1,6 @@
-#if !defined(__XEN_SOFTIRQ_H__) && !defined(__ASSEMBLY__)
-#define __XEN_SOFTIRQ_H__
+#ifndef INCLUDE_XEN_SOFTIRQ_H
+#define INCLUDE_XEN_SOFTIRQ_H
+#ifndef __ASSEMBLY__
 
 /* Low-latency softirqs come first in the following list. */
 enum {
@@ -40,4 +41,5 @@ void cpu_raise_softirq_batch_finish(void);
  */
 void process_pending_softirqs(void);
 
-#endif /* __XEN_SOFTIRQ_H__ */
+#endif /* __ASSEMBLY__ */
+#endif /* INCLUDE_XEN_SOFTIRQ_H */
diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index 0c16baa85f..ec1b6b05e9 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -1,5 +1,6 @@
-#if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
-#define __XEN_VMAP_H__
+#ifndef INCLUDE_XEN_VMAP_H
+#define INCLUDE_XEN_VMAP_H
+#ifdef VMAP_VIRT_START
 
 #include <xen/mm-frame.h>
 #include <xen/page-size.h>
@@ -42,4 +43,5 @@ static inline void vm_init(void)
     vm_init_type(VMAP_DEFAULT, (void *)VMAP_VIRT_START, arch_vmap_virt_end());
 }
 
-#endif /* __XEN_VMAP_H__ */
+#endif /* VMAP_VIRT_START */
+#endif /* INCLUDE_XEN_VMAP_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:36:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:36:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751605.1159641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHD9-0003Z5-JO; Mon, 01 Jul 2024 13:36:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751605.1159641; Mon, 01 Jul 2024 13: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 1sOHD9-0003Yu-Fu; Mon, 01 Jul 2024 13:36:51 +0000
Received: by outflank-mailman (input) for mailman id 751605;
 Mon, 01 Jul 2024 13: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHD8-0001bF-L7
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:36:50 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f78958ec-37ae-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 15:36:49 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id 5B9064EE0749;
 Mon,  1 Jul 2024 15:36: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: f78958ec-37ae-11ef-b4bb-af5377834399
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 10/17] x86/asm: address violations of MISRA C:2012 Directive 4.10
Date: Mon,  1 Jul 2024 15:36:05 +0200
Message-Id: <efb272c9eaad24875f34b396a75fed9577dedbda.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Amend generation script, add inclusion guards to address violations
of MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

This patch amends the Makefile adding the required inclusion guards
for xlat.h.

Add deviation comment for files intended for multiple inclusion.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- changed guard creation for autogenerated headers in Makefile
Changes in v3:
- fix inconsistent deviation ID
- remove trailing underscores
Changes in v2:
- merge patches 7/13 and 13/13 of v1 as they had the same
  commit message
- amend the Makefile to produce the required inclusion guard
- use the format introduced with doc/misra/safe.json instead of
  a generic text-based deviation
---
 docs/misra/safe.json                   |  8 ++++++++
 xen/arch/x86/include/asm/compat.h      |  5 +++++
 xen/arch/x86/include/asm/cpufeatures.h |  5 +----
 xen/arch/x86/include/asm/efibind.h     |  5 +++++
 xen/include/Makefile                   | 11 +++++++++--
 5 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index 3e9ebff8fe..0739eac806 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -90,6 +90,14 @@
             "name": "Dir 4.10: direct inclusion guard before",
             "text": "Headers with just the direct inclusion guard before the inclusion guard are safe."
         },
+        {
+            "id": "SAF-11-safe",
+            "analyser": {
+                "eclair": "MC3R1.D4.10"
+            },
+            "name": "Dir 4.10: file intended for multiple inclusion",
+            "text": "Files intended for multiple inclusion are not supposed to comply with D4.10."
+        },
         {
             "id": "SAF-11-safe",
             "analyser": {},
diff --git a/xen/arch/x86/include/asm/compat.h b/xen/arch/x86/include/asm/compat.h
index 818cad87db..36e7750843 100644
--- a/xen/arch/x86/include/asm/compat.h
+++ b/xen/arch/x86/include/asm/compat.h
@@ -2,6 +2,9 @@
  * compat.h
  */
 
+#ifndef ASM_X86_COMPAT_H
+#define ASM_X86_COMPAT_H
+
 #ifdef CONFIG_COMPAT
 
 #define COMPAT_BITS_PER_LONG 32
@@ -18,3 +21,5 @@ int switch_compat(struct domain *);
 #include <xen/errno.h>
 static inline int switch_compat(struct domain *d) { return -EOPNOTSUPP; }
 #endif
+
+#endif /* ASM_X86_COMPAT_H */
diff --git a/xen/arch/x86/include/asm/cpufeatures.h b/xen/arch/x86/include/asm/cpufeatures.h
index ba3df174b7..d590fe31ea 100644
--- a/xen/arch/x86/include/asm/cpufeatures.h
+++ b/xen/arch/x86/include/asm/cpufeatures.h
@@ -1,7 +1,4 @@
-/*
- * Explicitly intended for multiple inclusion.
- */
-
+/* SAF-11-safe file intended for multiple inclusion */
 #include <xen/lib/x86/cpuid-autogen.h>
 
 /* Number of capability words covered by the featureset words. */
diff --git a/xen/arch/x86/include/asm/efibind.h b/xen/arch/x86/include/asm/efibind.h
index bce02f3707..75684742be 100644
--- a/xen/arch/x86/include/asm/efibind.h
+++ b/xen/arch/x86/include/asm/efibind.h
@@ -1,2 +1,7 @@
+#ifndef ASM_X86_EFIBIND_H
+#define ASM_X86_EFIBIND_H
+
 #include <xen/types.h>
 #include <asm/x86_64/efibind.h>
+
+#endif /* ASM_X86_EFIBIND_H */
diff --git a/xen/include/Makefile b/xen/include/Makefile
index 058b0a566b..eccc2e017a 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -104,10 +104,17 @@ $(obj)/compat/.xlat/%.lst: $(srcdir)/xlat.lst FORCE
 xlat-y := $(shell sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,^[?!][[:blank:]]+[^[:blank:]]+[[:blank:]]+,,p' $(srcdir)/xlat.lst | uniq)
 xlat-y := $(filter $(patsubst compat/%,%,$(headers-y)),$(xlat-y))
 
+ARCHDIR = $(shell echo $(SRCARCH) | tr a-z A-Z)
+
 quiet_cmd_xlat_h = GEN     $@
-cmd_xlat_h = \
-	cat $(filter %.h,$^) >$@.new; \
+define cmd_xlat_h
+	guard=$$(echo ASM_${SRCARCH}_COMPAT_XLAT_H | tr a-z A-Z); \
+	echo "#ifndef $$guard" > $@.new; \
+	echo "#define $$guard" >> $@.new; \
+	cat $(filter %.h,$^) >> $@.new; \
+	echo "#endif /* $$guard */" >> $@.new; \
 	mv -f $@.new $@
+endef
 
 $(obj)/compat/xlat.h: $(addprefix $(obj)/compat/.xlat/,$(xlat-y)) FORCE
 	$(call if_changed,xlat_h)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:43:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:43:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751637.1159651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHJR-0006bg-B9; Mon, 01 Jul 2024 13:43:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751637.1159651; Mon, 01 Jul 2024 13:43: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 1sOHJR-0006bZ-6r; Mon, 01 Jul 2024 13:43:21 +0000
Received: by outflank-mailman (input) for mailman id 751637;
 Mon, 01 Jul 2024 13: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHJP-0006bT-Kz
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:43:19 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df458d27-37af-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 15:43:17 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id E353F4EE0738;
 Mon,  1 Jul 2024 15:43: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: df458d27-37af-11ef-b4bb-af5377834399
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Maria Celeste Cesario <maria.celeste.cesario@bugseng.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 11/17] xen/arm: address violations of MISRA C:2012 Directive 4.10
Date: Mon,  1 Jul 2024 15:43:00 +0200
Message-Id: <8e9fee0a3dac64c0c7e49489f55256a37cab7a76.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>

Add or modify inclusion guards to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order to
prevent the contents of a header file being included more than once").
Mechanical change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
Signed-off-by: Nicola Vetrini  <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

--
Changes in v4:
- fix typo in include guard for arm efibind.

Commit introduced in v3
---
 xen/arch/arm/include/asm/domain.h      | 6 +++---
 xen/arch/arm/include/asm/efibind.h     | 5 +++++
 xen/arch/arm/include/asm/event.h       | 6 +++---
 xen/arch/arm/include/asm/grant_table.h | 6 +++---
 xen/arch/arm/include/asm/io.h          | 6 +++---
 xen/arch/arm/include/asm/irq.h         | 6 +++---
 xen/arch/arm/include/asm/smp.h         | 6 +++---
 xen/arch/arm/include/asm/spinlock.h    | 6 +++---
 xen/arch/arm/include/asm/system.h      | 6 +++---
 9 files changed, 29 insertions(+), 24 deletions(-)

diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index f1d72c6e48..e5f011c2fa 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_DOMAIN_H__
-#define __ASM_DOMAIN_H__
+#ifndef ASM_ARM_DOMAIN_H
+#define ASM_ARM_DOMAIN_H
 
 #include <xen/cache.h>
 #include <xen/timer.h>
@@ -310,7 +310,7 @@ static inline void update_guest_memory_policy(struct vcpu *v,
                                               struct guest_memory_policy *gmp)
 {}
 
-#endif /* __ASM_DOMAIN_H__ */
+#endif /* ASM_ARM_DOMAIN_H */
 
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/efibind.h b/xen/arch/arm/include/asm/efibind.h
index 09dca7a8c9..61e23c6510 100644
--- a/xen/arch/arm/include/asm/efibind.h
+++ b/xen/arch/arm/include/asm/efibind.h
@@ -1,2 +1,7 @@
+#ifndef ASM_ARM_EFIBIND_H
+#define ASM_ARM_EFIBIND_H
+
 #include <xen/types.h>
 #include <asm/arm64/efibind.h>
+
+#endif /* ASM_ARM_EFIBIND_H */
diff --git a/xen/arch/arm/include/asm/event.h b/xen/arch/arm/include/asm/event.h
index b14c166ad6..db5d5ea37a 100644
--- a/xen/arch/arm/include/asm/event.h
+++ b/xen/arch/arm/include/asm/event.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_EVENT_H__
-#define __ASM_EVENT_H__
+#ifndef ASM_ARM_EVENT_H
+#define ASM_ARM_EVENT_H
 
 #include <asm/domain.h>
 
@@ -52,7 +52,7 @@ static inline bool arch_virq_is_global(unsigned int virq)
     return true;
 }
 
-#endif
+#endif /* ASM_ARM_EVENT_H */
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/include/asm/grant_table.h b/xen/arch/arm/include/asm/grant_table.h
index d3c518a926..0363c6aa1e 100644
--- a/xen/arch/arm/include/asm/grant_table.h
+++ b/xen/arch/arm/include/asm/grant_table.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_GRANT_TABLE_H__
-#define __ASM_GRANT_TABLE_H__
+#ifndef ASM_ARM_GRANT_TABLE_H
+#define ASM_ARM_GRANT_TABLE_H
 
 #include <xen/grant_table.h>
 #include <xen/kernel.h>
@@ -76,7 +76,7 @@ int replace_grant_host_mapping(uint64_t gpaddr, mfn_t frame,
 #define gnttab_need_iommu_mapping(d)                    \
     (is_domain_direct_mapped(d) && is_iommu_enabled(d))
 
-#endif /* __ASM_GRANT_TABLE_H__ */
+#endif /* ASM_ARM_GRANT_TABLE_H */
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/include/asm/io.h b/xen/arch/arm/include/asm/io.h
index e426804424..8b5f811ec8 100644
--- a/xen/arch/arm/include/asm/io.h
+++ b/xen/arch/arm/include/asm/io.h
@@ -1,5 +1,5 @@
-#ifndef _ASM_IO_H
-#define _ASM_IO_H
+#ifndef ASM_ARM_IO_H
+#define ASM_ARM_IO_H
 
 #if defined(CONFIG_ARM_32)
 # include <asm/arm32/io.h>
@@ -9,7 +9,7 @@
 # error "unknown ARM variant"
 #endif
 
-#endif
+#endif /* ASM_ARM_IO_H */
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.h
index ec437add09..5a1b2cd5ba 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -1,5 +1,5 @@
-#ifndef _ASM_HW_IRQ_H
-#define _ASM_HW_IRQ_H
+#ifndef ASM_ARM_IRQ_H
+#define ASM_ARM_IRQ_H
 
 #include <xen/device_tree.h>
 #include <public/device_tree_defs.h>
@@ -101,7 +101,7 @@ bool irq_type_set_by_domain(const struct domain *d);
 void irq_end_none(struct irq_desc *irq);
 #define irq_end_none irq_end_none
 
-#endif /* _ASM_HW_IRQ_H */
+#endif /* ASM_ARM_IRQ_H */
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/include/asm/smp.h b/xen/arch/arm/include/asm/smp.h
index e99a3a3f53..44e4183470 100644
--- a/xen/arch/arm/include/asm/smp.h
+++ b/xen/arch/arm/include/asm/smp.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_SMP_H
-#define __ASM_SMP_H
+#ifndef ASM_ARM_SMP_H
+#define ASM_ARM_SMP_H
 
 #ifndef __ASSEMBLY__
 #include <xen/cpumask.h>
@@ -39,7 +39,7 @@ extern unsigned int smp_get_max_cpus(void);
 
 #define cpu_physical_id(cpu) cpu_logical_map(cpu)
 
-#endif
+#endif /* ASM_ARM_SMP_H */
 
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/spinlock.h b/xen/arch/arm/include/asm/spinlock.h
index 42b0f584fe..326005c39a 100644
--- a/xen/arch/arm/include/asm/spinlock.h
+++ b/xen/arch/arm/include/asm/spinlock.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_SPINLOCK_H
-#define __ASM_SPINLOCK_H
+#ifndef ASM_ARM_SPINLOCK_H
+#define ASM_ARM_SPINLOCK_H
 
 #define arch_lock_acquire_barrier() smp_mb()
 #define arch_lock_release_barrier() smp_mb()
@@ -12,4 +12,4 @@
 
 #define arch_lock_signal_wmb()  arch_lock_signal()
 
-#endif /* __ASM_SPINLOCK_H */
+#endif /* ASM_ARM_SPINLOCK_H */
diff --git a/xen/arch/arm/include/asm/system.h b/xen/arch/arm/include/asm/system.h
index 65d5c8e423..faf9227f53 100644
--- a/xen/arch/arm/include/asm/system.h
+++ b/xen/arch/arm/include/asm/system.h
@@ -1,6 +1,6 @@
 /* Portions taken from Linux arch arm */
-#ifndef __ASM_SYSTEM_H
-#define __ASM_SYSTEM_H
+#ifndef ASM_ARM_SYSTEM_H
+#define ASM_ARM_SYSTEM_H
 
 #include <xen/lib.h>
 #include <public/arch-arm.h>
@@ -62,7 +62,7 @@ static inline int local_abort_is_enabled(void)
 
 extern struct vcpu *__context_switch(struct vcpu *prev, struct vcpu *next);
 
-#endif
+#endif /* ASM_ARM_SYSTEM_H */
 /*
  * Local variables:
  * mode: C
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:44:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:44:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751642.1159661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHKC-000770-Ik; Mon, 01 Jul 2024 13:44:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751642.1159661; Mon, 01 Jul 2024 13:44: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 1sOHKC-00076t-G2; Mon, 01 Jul 2024 13:44:08 +0000
Received: by outflank-mailman (input) for mailman id 751642;
 Mon, 01 Jul 2024 13:44: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHKA-0006bT-OL
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:44:06 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb967457-37af-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 15:44:05 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id 6CDC44EE0738;
 Mon,  1 Jul 2024 15:44: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: fb967457-37af-11ef-b4bb-af5377834399
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 12/17] xen: address violations of MISRA C:2012 Directive 4.10
Date: Mon,  1 Jul 2024 15:43:59 +0200
Message-Id: <8305a914d1f1ee01d1b0b83cb86c2a48a2a2be0b.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>

Modify creation rule for asm-offsets.h to conform to
the new standard and to not generate conflicting guards
between architectures (which is a violation of the directive).
Modify generic-y creation rule to generate code without violations
and to conform to the new standard.

Mechanical change.
---
Changes in v4:
- improve inclusion guard generation

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
 xen/build.mk                     | 7 ++++---
 xen/scripts/Makefile.asm-generic | 8 +++++++-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/xen/build.mk b/xen/build.mk
index 0f490ca71b..bbd4c2970f 100644
--- a/xen/build.mk
+++ b/xen/build.mk
@@ -47,6 +47,7 @@ asm-offsets.s: arch/$(SRCARCH)/$(ARCH)/asm-offsets.c
 
 arch/$(SRCARCH)/include/asm/asm-offsets.h: asm-offsets.s
 	@(set -e; \
+	  guard=$$(echo ASM_${SRCARCH}_ASM_OFFSETS_H | tr a-z A-Z); \
 	  echo "/*"; \
 	  echo " * DO NOT MODIFY."; \
 	  echo " *"; \
@@ -54,12 +55,12 @@ arch/$(SRCARCH)/include/asm/asm-offsets.h: asm-offsets.s
 	  echo " *"; \
 	  echo " */"; \
 	  echo ""; \
-	  echo "#ifndef __ASM_OFFSETS_H__"; \
-	  echo "#define __ASM_OFFSETS_H__"; \
+	  echo "#ifndef $$guard"; \
+	  echo "#define $$guard"; \
 	  echo ""; \
 	  sed -rne "/^[^#].*==>/{s:.*==>(.*)<==.*:\1:; s: [\$$#]: :; p;}"; \
 	  echo ""; \
-	  echo "#endif") <$< >$@
+	  echo "#endif /* $$guard */") <$< >$@
 
 build-dirs := $(patsubst %/built_in.o,%,$(filter %/built_in.o,$(ALL_OBJS) $(ALL_LIBS)))
 
diff --git a/xen/scripts/Makefile.asm-generic b/xen/scripts/Makefile.asm-generic
index b0d356bfa3..5775acf44b 100644
--- a/xen/scripts/Makefile.asm-generic
+++ b/xen/scripts/Makefile.asm-generic
@@ -32,7 +32,13 @@ old-headers := $(wildcard $(obj)/*.h)
 unwanted    := $(filter-out $(generic-y) $(generated-y),$(old-headers))
 
 quiet_cmd_wrap = WRAP    $@
-      cmd_wrap = echo "\#include <asm-generic/$*.h>" > $@
+cmd_wrap = \
+    guard=$$(echo ASM_GENERIC_${SRCARCH}_$*_H | tr a-z A-Z); \
+    echo "\#ifndef $$guard" >$@.new; \
+    echo "\#define $$guard" >>$@.new; \
+    echo "\#include <asm-generic/$*.h>" >>$@.new; \
+    echo "\#endif /* $$guard */" >>$@.new; \
+    mv -f $@.new $@
 
 quiet_cmd_remove = REMOVE  $(unwanted)
       cmd_remove = rm -f $(unwanted)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:45:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:45:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751651.1159670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHLP-0007iz-0M; Mon, 01 Jul 2024 13:45:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751651.1159670; Mon, 01 Jul 2024 13:45: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 1sOHLO-0007is-U5; Mon, 01 Jul 2024 13:45:22 +0000
Received: by outflank-mailman (input) for mailman id 751651;
 Mon, 01 Jul 2024 13:45: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHLN-0007ig-Ic
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:45:21 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 28897f44-37b0-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 15:45:20 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id CCD434EE0738;
 Mon,  1 Jul 2024 15:45: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: 28897f44-37b0-11ef-90a5-e314d9c70b13
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 13/17] xen: add deviations for MISRA C 2012 Dir D4.10
Date: Mon,  1 Jul 2024 15:45:14 +0200
Message-Id: <f26c90dc93a3862e472afbe630dabfec30e51ffe.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Nicola Vetrini <nicola.vetrini@bugseng.com>

Add safe deviation for *.c files, as estabilished in past discussion.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- split the commit from the unrelated SAF deviation

Link to the discussion thread:
https://lists.xenproject.org/archives/html/xen-devel/2023-09/msg00239.html
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 5 +++++
 docs/misra/deviations.rst                        | 7 +++++++
 2 files changed, 12 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 1c39a9a16d..c6b1a10bcf 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -78,6 +78,11 @@ conform to the directive."
 -config=MC3R1.D4.10,reports+={safe, "first_area(text(^/\\* Generated file, do not edit! \\*/$, begin-3))"}
 -doc_end
 
+-doc_begin="Including multiple times a .c file is safe because every function or data item
+it defines would (in the common case) be already defined. Peer reviewed by the community."
+-config=MC3R1.D4.10,reports+={safe, "all_area(all_loc(^.*\\.c$))"}
+-doc_end
+
 #
 # Series 5.
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 1ecce1469a..a5dac38bb3 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -30,6 +30,13 @@ Deviations related to MISRA C:2012 Directives:
        not to add an additional encapsulation layer.
      - Tagged as `deliberate` for ECLAIR.
 
+   * - D4.10
+     - Including multiple times a .c file is safe because every function or data item
+       it defines would in (the common case) be already defined.
+       Peer reviewed by the community.
+     - Tagged as `safe` for ECLAIR.
+
+
 Deviations related to MISRA C:2012 Rules:
 -----------------------------------------
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:45:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:45:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751655.1159680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHLt-0008Bf-7H; Mon, 01 Jul 2024 13:45:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751655.1159680; Mon, 01 Jul 2024 13:45:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHLt-0008BY-4h; Mon, 01 Jul 2024 13:45:53 +0000
Received: by outflank-mailman (input) for mailman id 751655;
 Mon, 01 Jul 2024 13: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHLs-0007ig-IC
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:45:52 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3b36b6b0-37b0-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 15:45:52 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id 641124EE0738;
 Mon,  1 Jul 2024 15:45: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: 3b36b6b0-37b0-11ef-90a5-e314d9c70b13
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [PATCH 14/17] xen: add SAF deviation for MISRA C Dir 4.10
Date: Mon,  1 Jul 2024 15:45:30 +0200
Message-Id: <b64a6b53de8bcf14c91a1534bb57b001efc12cce.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Nicola Vetrini <nicola.vetrini@bugseng.com>

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
 docs/misra/safe.json              | 10 +++++++++-
 xen/include/public/arch-x86/xen.h |  1 +
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index 0739eac806..a1cd821aea 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -99,7 +99,15 @@
             "text": "Files intended for multiple inclusion are not supposed to comply with D4.10."
         },
         {
-            "id": "SAF-11-safe",
+            "id": "SAF-12-safe",
+            "analyser": {
+                "eclair": "MC3R1.D4.10"
+            },
+            "name": "Dir 4.10: arch-x86/xen.h include before guard",
+            "text": "This file needs to start with #include ../xen.h to generate preprocessed code in the correct order."
+        },
+        {
+            "id": "SAF-13-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
index a9a87d9b50..d8ad935af3 100644
--- a/xen/include/public/arch-x86/xen.h
+++ b/xen/include/public/arch-x86/xen.h
@@ -7,6 +7,7 @@
  * Copyright (c) 2004-2006, K A Fraser
  */
 
+/* SAF-12-safe include before guard needed for correct code generation */
 #include "../xen.h"
 
 #ifndef __XEN_PUBLIC_ARCH_X86_XEN_H__
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:46:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:46:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751659.1159690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHME-0000C5-Di; Mon, 01 Jul 2024 13:46:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751659.1159690; Mon, 01 Jul 2024 13: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 1sOHME-0000Bw-BD; Mon, 01 Jul 2024 13:46:14 +0000
Received: by outflank-mailman (input) for mailman id 751659;
 Mon, 01 Jul 2024 13: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHMD-0007ig-Gn
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:46:13 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 479c5417-37b0-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 15:46:12 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id 3ECFB4EE0738;
 Mon,  1 Jul 2024 15:46:10 +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: 479c5417-37b0-11ef-90a5-e314d9c70b13
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 15/17] xen/x86: rename inclusion guards for consistency
Date: Mon,  1 Jul 2024 15:46:04 +0200
Message-Id: <cc0189e1db211ae73aa419f4bc956872220d8d3c.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>

Edit inclusion guards in order to make them consistent with the
estabilished naming conventions.

No functional change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v4:
- improved commit message
- change inclusion guards names
Commit introduced in v3
---
 xen/arch/x86/include/asm/domain.h      | 6 +++---
 xen/arch/x86/include/asm/event.h       | 6 +++---
 xen/arch/x86/include/asm/grant_table.h | 6 +++---
 xen/arch/x86/include/asm/io.h          | 6 +++---
 xen/arch/x86/include/asm/irq.h         | 6 +++---
 xen/arch/x86/include/asm/smp.h         | 6 +++---
 xen/arch/x86/include/asm/spinlock.h    | 6 +++---
 xen/arch/x86/include/asm/system.h      | 6 +++---
 8 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index f5daeb182b..ddf0a28f48 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_DOMAIN_H__
-#define __ASM_DOMAIN_H__
+#ifndef ASM_X86_DOMAIN_H
+#define ASM_X86_DOMAIN_H
 
 #include <xen/mm.h>
 #include <xen/radix-tree.h>
@@ -779,7 +779,7 @@ struct arch_vcpu_io {
 /* Maxphysaddr supportable by the paging infrastructure. */
 unsigned int domain_max_paddr_bits(const struct domain *d);
 
-#endif /* __ASM_DOMAIN_H__ */
+#endif /* ASM_X86_DOMAIN_H */
 
 /*
  * Local variables:
diff --git a/xen/arch/x86/include/asm/event.h b/xen/arch/x86/include/asm/event.h
index 5e09ede6d7..c0b6088c91 100644
--- a/xen/arch/x86/include/asm/event.h
+++ b/xen/arch/x86/include/asm/event.h
@@ -6,8 +6,8 @@
  *
  */
 
-#ifndef __ASM_EVENT_H__
-#define __ASM_EVENT_H__
+#ifndef ASM_X86_EVENT_H
+#define ASM_X86_EVENT_H
 
 #include <xen/shared.h>
 
@@ -53,4 +53,4 @@ static inline bool arch_virq_is_global(unsigned int virq)
              (pv_shim && (chn)->port && (chn)->state == ECS_RESERVED)
 #endif
 
-#endif
+#endif /* ASM_X86_EVENT_H */
diff --git a/xen/arch/x86/include/asm/grant_table.h b/xen/arch/x86/include/asm/grant_table.h
index 5c23cec90c..2468f21ad6 100644
--- a/xen/arch/x86/include/asm/grant_table.h
+++ b/xen/arch/x86/include/asm/grant_table.h
@@ -4,8 +4,8 @@
  * Copyright (c) 2004-2005 K A Fraser
  */
 
-#ifndef __ASM_GRANT_TABLE_H__
-#define __ASM_GRANT_TABLE_H__
+#ifndef ASM_X86_GRANT_TABLE_H
+#define ASM_X86_GRANT_TABLE_H
 
 #include <asm/paging.h>
 
@@ -72,4 +72,4 @@ static inline void gnttab_clear_flags(struct domain *d,
 #define gnttab_need_iommu_mapping(d)                \
     (!paging_mode_translate(d) && need_iommu_pt_sync(d))
 
-#endif /* __ASM_GRANT_TABLE_H__ */
+#endif /* ASM_X86_GRANT_TABLE_H */
diff --git a/xen/arch/x86/include/asm/io.h b/xen/arch/x86/include/asm/io.h
index 1cb4217cff..afa1a9e69d 100644
--- a/xen/arch/x86/include/asm/io.h
+++ b/xen/arch/x86/include/asm/io.h
@@ -1,5 +1,5 @@
-#ifndef _ASM_IO_H
-#define _ASM_IO_H
+#ifndef ASM_X86_IO_H
+#define ASM_X86_IO_H
 
 #include <xen/vmap.h>
 #include <xen/types.h>
@@ -57,4 +57,4 @@ struct cpu_user_regs;
 unsigned int ioemul_handle_proliant_quirk(
     uint8_t opcode, char *io_emul_stub, const struct cpu_user_regs *regs);
 
-#endif
+#endif /* ASM_X86_IO_H */
diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
index 5f445299be..aa8e4f3900 100644
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -1,5 +1,5 @@
-#ifndef _ASM_HW_IRQ_H
-#define _ASM_HW_IRQ_H
+#ifndef ASM_X86_IRQ_H
+#define ASM_X86_IRQ_H
 
 /* (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar */
 
@@ -231,4 +231,4 @@ int allocate_and_map_gsi_pirq(struct domain *d, int index, int *pirq_p);
 int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,
                               int type, struct msi_info *msi);
 
-#endif /* _ASM_HW_IRQ_H */
+#endif /* ASM_X86_IRQ_H */
diff --git a/xen/arch/x86/include/asm/smp.h b/xen/arch/x86/include/asm/smp.h
index c8c7960134..cdfe9ea96f 100644
--- a/xen/arch/x86/include/asm/smp.h
+++ b/xen/arch/x86/include/asm/smp.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_SMP_H
-#define __ASM_SMP_H
+#ifndef ASM_X86_SMP_H
+#define ASM_X86_SMP_H
 
 /*
  * We need the APIC definitions automatically as part of 'smp.h'
@@ -81,4 +81,4 @@ void *cpu_alloc_stack(unsigned int cpu);
 
 #endif /* !__ASSEMBLY__ */
 
-#endif
+#endif /* ASM_X86_SMP_H */
diff --git a/xen/arch/x86/include/asm/spinlock.h b/xen/arch/x86/include/asm/spinlock.h
index 56f6095752..2a86560343 100644
--- a/xen/arch/x86/include/asm/spinlock.h
+++ b/xen/arch/x86/include/asm/spinlock.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_SPINLOCK_H
-#define __ASM_SPINLOCK_H
+#ifndef ASM_X86_SPINLOCK_H
+#define ASM_X86_SPINLOCK_H
 
 #define _raw_read_unlock(l) \
     BUILD_BUG_ON(sizeof((l)->lock) != 4); /* Clang doesn't support %z in asm. */ \
@@ -24,4 +24,4 @@
     arch_lock_signal();             \
 })
 
-#endif /* __ASM_SPINLOCK_H */
+#endif /* ASM_X86_SPINLOCK_H */
diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
index 73cb16ca68..12e8b974b1 100644
--- a/xen/arch/x86/include/asm/system.h
+++ b/xen/arch/x86/include/asm/system.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_SYSTEM_H
-#define __ASM_SYSTEM_H
+#ifndef ASM_X86_SYSTEM_H
+#define ASM_X86_SYSTEM_H
 
 #include <xen/bitops.h>
 #include <xen/bug.h>
@@ -269,4 +269,4 @@ void load_system_tables(void);
 void percpu_traps_init(void);
 void subarch_percpu_traps_init(void);
 
-#endif
+#endif /* ASM_X86_SYSTEM_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:47:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:47:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751676.1159700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHNd-0000wP-Mr; Mon, 01 Jul 2024 13:47:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751676.1159700; Mon, 01 Jul 2024 13:47: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 1sOHNd-0000wI-KF; Mon, 01 Jul 2024 13:47:41 +0000
Received: by outflank-mailman (input) for mailman id 751676;
 Mon, 01 Jul 2024 13:47:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHMg-0007ig-H7
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:46:42 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 58efca8a-37b0-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 15:46:41 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id 947DA4EE0738;
 Mon,  1 Jul 2024 15:46: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: 58efca8a-37b0-11ef-90a5-e314d9c70b13
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 16/17] xen/build: address violation of MISRA C Directive 4.10
Date: Mon,  1 Jul 2024 15:46:34 +0200
Message-Id: <c3d0eb70d894a1dc0ddd53cacd6a525bc10577ce.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This addresses violations of MISRA C:2012 Rule 4.10 which states as
following: Precautions shall be taken in order to prevent the contents
of a header file being included more than once.

Added inclusion guards for autogenerated header files: include/xen/compile.h
and include/xen/hypercall-defs.h.

No functional change.

Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
---
 xen/build.mk         | 6 +++++-
 xen/include/Makefile | 5 ++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/xen/build.mk b/xen/build.mk
index bbd4c2970f..c83882c949 100644
--- a/xen/build.mk
+++ b/xen/build.mk
@@ -18,6 +18,8 @@ quiet_cmd_compile.h = UPD     $@
 define cmd_compile.h
     if [ ! -r $@ -o -O $@ ]; then \
 	cat .banner; \
+	echo '#ifndef INCLUDE_XEN_COMPILE_H' >> $(dot-target).tmp; \
+	echo '#define INCLUDE_XEN_COMPILE_H' >> $(dot-target).tmp; \
 	sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \
 	    -e 's/@@time@@/$(XEN_BUILD_TIME)/g' \
 	    -e 's/@@whoami@@/$(XEN_WHOAMI)/g' \
@@ -28,8 +30,9 @@ define cmd_compile.h
 	    -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
 	    -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
 	    -e 's!@@changeset@@!$(shell $(srctree)/tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \
-	    < $< > $(dot-target).tmp; \
+	    < $< >> $(dot-target).tmp; \
 	sed -rf $(srctree)/tools/process-banner.sed < .banner >> $(dot-target).tmp; \
+	echo '#endif /* INCLUDE_XEN_COMPILE_H */' >> $(dot-target).tmp; \
 	mv -f $(dot-target).tmp $@; \
     fi
 endef
@@ -40,6 +43,7 @@ include/xen/compile.h: include/xen/compile.h.in .banner FORCE
 
 targets += include/xen/compile.h
 
+
 -include $(wildcard .asm-offsets.s.d)
 asm-offsets.s: arch/$(SRCARCH)/$(ARCH)/asm-offsets.c
 	$(CC) $(call cpp_flags,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
diff --git a/xen/include/Makefile b/xen/include/Makefile
index eccc2e017a..34e133949c 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -121,7 +121,10 @@ $(obj)/compat/xlat.h: $(addprefix $(obj)/compat/.xlat/,$(xlat-y)) FORCE
 
 quiet_cmd_genhyp = GEN     $@
 define cmd_genhyp
-    awk -f $(srctree)/scripts/gen_hypercall.awk <$< >$@
+    echo "#ifndef XEN_HYPERCALL_DEFS_H" >$@; \
+    echo "#define XEN_HYPERCALL_DEFS_H" >>$@; \
+    awk -f $(srctree)/scripts/gen_hypercall.awk <$< >>$@; \
+    echo "#endif /* XEN_HYPERCALL_DEFS_H */" >>$@
 endef
 
 all: $(obj)/xen/hypercall-defs.h
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:48:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:48:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751680.1159710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHNw-0001OU-TG; Mon, 01 Jul 2024 13:48:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751680.1159710; Mon, 01 Jul 2024 13:48: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 1sOHNw-0001ON-Qo; Mon, 01 Jul 2024 13:48:00 +0000
Received: by outflank-mailman (input) for mailman id 751680;
 Mon, 01 Jul 2024 13:47: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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOHMi-0007ig-ES
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:46:44 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a14d170-37b0-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 15:46:43 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-60-221-62.business.telecomitalia.it [79.60.221.62])
 by support.bugseng.com (Postfix) with ESMTPSA id 19E4F4EE0746;
 Mon,  1 Jul 2024 15:46: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: 5a14d170-37b0-11ef-90a5-e314d9c70b13
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards naming conventions
Date: Mon,  1 Jul 2024 15:46:35 +0200
Message-Id: <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This section explains which format should be followed by header
inclusion guards via a drop-down list of rules.

No functional change.

Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
---
 CODING_STYLE | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/CODING_STYLE b/CODING_STYLE
index 7f6e9ad065..87836c97d4 100644
--- a/CODING_STYLE
+++ b/CODING_STYLE
@@ -167,3 +167,22 @@ the end of files.  It should be:
  * indent-tabs-mode: nil
  * End:
  */
+
+Header inclusion guards
+-----------------------
+
+Unless differently specified all header files should have proper inclusion
+guards in order to avoid being included multiple times.
+The following naming conventions have been devised:
+- private headers -> <dir>_<filename>_H
+- asm-generic headers -> ASM_GENERIC_<filename>_H
+    - #ifndef ASM_GENERIC_X86_PERCPU_H
+      #define ASM_GENERIC_X86_PERCPU_H
+      //...
+      #endif /* ASM_GENERIC_X86_PERCPU_H */
+- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
+    - #ifndef ASM_X86_DOMAIN_H
+      #define ASM_X86_DOMAIN_H
+      //...
+      #endif /* ASM_X86_DOMAIN_H */
+
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 13:59:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 13:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751697.1159721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHYY-0003MM-Rg; Mon, 01 Jul 2024 13:58:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751697.1159721; Mon, 01 Jul 2024 13:58: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 1sOHYY-0003MF-Og; Mon, 01 Jul 2024 13:58:58 +0000
Received: by outflank-mailman (input) for mailman id 751697;
 Mon, 01 Jul 2024 13:58: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=K0KN=OB=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1sOHYX-0003Lq-2m
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 13:58:57 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0dba1f1d-37b2-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 15:58:54 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a6cb130027aso165075266b.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 06:58: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: 0dba1f1d-37b2-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719842334; x=1720447134; 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=2l6Wd4cvO4L+9S28hCH23khCgRnt+TeEyOTCmlDi2/8=;
        b=ElMtruEeY56HtHngb291Xtud+o1rKLFj1NyE+IPHb8TEkNTBfc42nS/Ktnt3sq51fg
         Yl5Bt5X8refV0rMEjDkrdiNmJsGoH8SBT2/MM2NN5gdYEgjBK0ze4FWuC2cRdaAapiw2
         yqRk11W69xG6RuHGzM5cxMQ7iNKdZ1JmFA5ixzX5r9pF0kJJHm4OrbGUuni5bxyY4nzm
         cRzUQSIX6W3iUcGuQj50iNuVbPbJX735BQhgtlc9xd060ul8TZJgZka4xfeHBhBUx9oV
         +F4bIoXYgGJ9xCydRB8w7GP89sJna/FR6+TpXstpQm3Dc7gyz7BpkhWaMXsR238g91fY
         Jo3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719842334; x=1720447134;
        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=2l6Wd4cvO4L+9S28hCH23khCgRnt+TeEyOTCmlDi2/8=;
        b=iXIrJkENnBXjABTK44rMEx5P+biCuX8/kgwBS/4QeW0D3snZesonGWVitJvdJqGztt
         uqyM9meK6KDYV1sZsWSRQI3Jb+M+YvikrNiStMBbfoREevh7XF/NWoz37tkwRlF2TSgi
         wyhjrudn4tvDMXJmM89tKCIgi8Rv30+hMIwYS0/q+kiZ1b3CujSZ6knL4dG38bKqn/7B
         Lh5I3/WyL6NPrUq3vp0jIwJ0TtlyFQ374gVbCH3L23KhWcffUNN6WfuEE9QHDhu1xBi2
         s2JdhaSWlUAk/oKqTjS22MOmXvhA3mvL8HnJVQfRdCJPN1WnZMDv6PMBnMxCc4PlmjDd
         Fs4w==
X-Forwarded-Encrypted: i=1; AJvYcCUnA8LgDFA+b94ltCnpv56xhOBbx8pLBeEIzn6UIu73nEmCgxjGVdaDa6ahsVocL0p0Dtc/Wxr3zAT6JmeQhnjbwzfC3ReAYk/K8kT3Xkg=
X-Gm-Message-State: AOJu0YzD5DhE1PTjrB/t73/QOt00EQcESwXAXRGGOyXSUgzeSSkXmJww
	NQ+mda/bvLysWZ8HUXDxkLYx2eBaXpIsHKjGmivsd9zpJ+lX11fzEyGrHF/aViZ8c0v6CSnmr2A
	kkCxHaDs147/WN6EhnsnnD8x2OiE=
X-Google-Smtp-Source: AGHT+IHPkJGi6sKvrK3ZL/jjJi7NohZrE0FEhPTBDfBZ4RV4H+qPLVgghHFMsp/qQP+s7uD7YxRUc87cEK7UFQjhJAE=
X-Received: by 2002:a05:6402:358a:b0:582:8746:6534 with SMTP id
 4fb4d7f45d1cf-587a0822baemr4766634a12.28.1719842333548; Mon, 01 Jul 2024
 06:58:53 -0700 (PDT)
MIME-Version: 1.0
References: <20240529140739.1387692-1-edgar.iglesias@gmail.com>
 <20240529140739.1387692-3-edgar.iglesias@gmail.com> <ZoKnQLBwIwh004yy@l14>
In-Reply-To: <ZoKnQLBwIwh004yy@l14>
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Date: Mon, 1 Jul 2024 15:58:41 +0200
Message-ID: <CAJy5ezqdxQ_y_sCyP243yTfgOJfLh1COzN9Eg+PxxoaVeOh-mQ@mail.gmail.com>
Subject: Re: [PATCH v8 2/8] xen: mapcache: Unmap first entries in buckets
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: qemu-devel@nongnu.org, sstabellini@kernel.org, jgross@suse.com, 
	"Edgar E. Iglesias" <edgar.iglesias@amd.com>, Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000005c6c64061c2fffef"

--0000000000005c6c64061c2fffef
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 1, 2024 at 2:55=E2=80=AFPM Anthony PERARD <anthony.perard@vates=
.tech>
wrote:

> Hi all,
>
> Following this commit, a test which install Debian in a guest with OVMF
> as firmware started to fail. QEMU exit with an error when GRUB is
> running on the freshly installed Debian (I don't know if GRUB is
> starting Linux or not).
> The error is:
>     Bad ram offset ffffffffffffffff
>
> Some logs:
>
> http://logs.test-lab.xenproject.org/osstest/logs/186611/test-amd64-amd64-=
xl-qemuu-ovmf-amd64/info.html
>
> Any idea? Something is trying to do something with the address "-1" when
> it shouldn't?
>
>
Hi Anothny,

Yes, it looks like something is calling qemu_get_ram_block() on something
that isn't mapped.
One possible path is in qemu_ram_block_from_host() but there may be others.

The following patch may help.
Any chance you could try to get a backtrace from QEMU when it failed?

diff --git a/system/physmem.c b/system/physmem.c
index 33d09f7571..2669c4dbbb 100644
--- a/system/physmem.c
+++ b/system/physmem.c
@@ -2277,6 +2277,9 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool
round_offset,
         ram_addr_t ram_addr;
         RCU_READ_LOCK_GUARD();
         ram_addr =3D xen_ram_addr_from_mapcache(ptr);
+        if (ram_addr =3D=3D RAM_ADDR_INVALID) {
+            return NULL;
+        }
         block =3D qemu_get_ram_block(ram_addr);
         if (block) {
             *offset =3D ram_addr - block->offset;





> Cheers,
>
> Anthony
>
> On Wed, May 29, 2024 at 04:07:33PM +0200, Edgar E. Iglesias wrote:
> > From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> >
> > When invalidating memory ranges, if we happen to hit the first
> > entry in a bucket we were never unmapping it. This was harmless
> > for foreign mappings but now that we're looking to reuse the
> > mapcache for transient grant mappings, we must unmap entries
> > when invalidated.
> >
> > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> > ---
> >  hw/xen/xen-mapcache.c | 11 ++++++++---
> >  1 file changed, 8 insertions(+), 3 deletions(-)
> >
> > diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> > index bc860f4373..ec95445696 100644
> > --- a/hw/xen/xen-mapcache.c
> > +++ b/hw/xen/xen-mapcache.c
> > @@ -491,18 +491,23 @@ static void
> xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
> >          return;
> >      }
> >      entry->lock--;
> > -    if (entry->lock > 0 || pentry =3D=3D NULL) {
> > +    if (entry->lock > 0) {
> >          return;
> >      }
> >
> > -    pentry->next =3D entry->next;
> >      ram_block_notify_remove(entry->vaddr_base, entry->size,
> entry->size);
> >      if (munmap(entry->vaddr_base, entry->size) !=3D 0) {
> >          perror("unmap fails");
> >          exit(-1);
> >      }
> > +
> >      g_free(entry->valid_mapping);
> > -    g_free(entry);
> > +    if (pentry) {
> > +        pentry->next =3D entry->next;
> > +        g_free(entry);
> > +    } else {
> > +        memset(entry, 0, sizeof *entry);
> > +    }
> >  }
> >
> >  typedef struct XenMapCacheData {
> > --
> > 2.40.1
> >
> >
> --
>
> Anthony Perard | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>

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

<div dir=3D"ltr"><div dir=3D"ltr">On Mon, Jul 1, 2024 at 2:55=E2=80=AFPM An=
thony PERARD &lt;anthony.perard@vates.tech&gt; wrote:<br></div><div class=
=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi all,<=
br>
<br>
Following this commit, a test which install Debian in a guest with OVMF<br>
as firmware started to fail. QEMU exit with an error when GRUB is<br>
running on the freshly installed Debian (I don&#39;t know if GRUB is<br>
starting Linux or not).<br>
The error is:<br>
=C2=A0 =C2=A0 Bad ram offset ffffffffffffffff<br>
<br>
Some logs:<br>
<a href=3D"http://logs.test-lab.xenproject.org/osstest/logs/186611/test-amd=
64-amd64-xl-qemuu-ovmf-amd64/info.html" rel=3D"noreferrer" target=3D"_blank=
">http://logs.test-lab.xenproject.org/osstest/logs/186611/test-amd64-amd64-=
xl-qemuu-ovmf-amd64/info.html</a><br>
<br>
Any idea? Something is trying to do something with the address &quot;-1&quo=
t; when<br>
it shouldn&#39;t?<br>
<br></blockquote><div><br></div><div>Hi Anothny,</div><div><br></div><div>Y=
es, it looks like something is calling=C2=A0qemu_get_ram_block() on somethi=
ng that isn&#39;t mapped.</div><div>One possible path is in=C2=A0qemu_ram_b=
lock_from_host() but there may be others.</div><div><br></div><div>The=C2=
=A0following patch may help.</div><div>Any chance you could try to get a ba=
cktrace from QEMU when it failed?</div><div><br></div><div>diff --git a/sys=
tem/physmem.c b/system/physmem.c<br>index 33d09f7571..2669c4dbbb 100644<br>=
--- a/system/physmem.c<br>+++ b/system/physmem.c<br>@@ -2277,6 +2277,9 @@ R=
AMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,<br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0ram_addr_t ram_addr;<br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0RCU_READ_LOCK_GUARD();<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ram_a=
ddr =3D xen_ram_addr_from_mapcache(ptr);<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0if=
 (ram_addr =3D=3D RAM_ADDR_INVALID) {<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0return NULL;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0block =3D qemu_get_ram_block(ram_addr);<br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0if (block) {<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0*offset =3D ram_addr - block-&gt;offset;<br></div><div><br></d=
iv><div><br></div><div><br></div><div>=C2=A0</div><blockquote class=3D"gmai=
l_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,20=
4,204);padding-left:1ex">
Cheers,<br>
<br>
Anthony<br>
<br>
On Wed, May 29, 2024 at 04:07:33PM +0200, Edgar E. Iglesias wrote:<br>
&gt; From: &quot;Edgar E. Iglesias&quot; &lt;<a href=3D"mailto:edgar.iglesi=
as@amd.com" target=3D"_blank">edgar.iglesias@amd.com</a>&gt;<br>
&gt; <br>
&gt; When invalidating memory ranges, if we happen to hit the first<br>
&gt; entry in a bucket we were never unmapping it. This was harmless<br>
&gt; for foreign mappings but now that we&#39;re looking to reuse the<br>
&gt; mapcache for transient grant mappings, we must unmap entries<br>
&gt; when invalidated.<br>
&gt; <br>
&gt; Signed-off-by: Edgar E. Iglesias &lt;<a href=3D"mailto:edgar.iglesias@=
amd.com" target=3D"_blank">edgar.iglesias@amd.com</a>&gt;<br>
&gt; Reviewed-by: Stefano Stabellini &lt;<a href=3D"mailto:sstabellini@kern=
el.org" target=3D"_blank">sstabellini@kernel.org</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 hw/xen/xen-mapcache.c | 11 ++++++++---<br>
&gt;=C2=A0 1 file changed, 8 insertions(+), 3 deletions(-)<br>
&gt; <br>
&gt; diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c<br>
&gt; index bc860f4373..ec95445696 100644<br>
&gt; --- a/hw/xen/xen-mapcache.c<br>
&gt; +++ b/hw/xen/xen-mapcache.c<br>
&gt; @@ -491,18 +491,23 @@ static void xen_invalidate_map_cache_entry_unloc=
ked(MapCache *mc,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 entry-&gt;lock--;<br>
&gt; -=C2=A0 =C2=A0 if (entry-&gt;lock &gt; 0 || pentry =3D=3D NULL) {<br>
&gt; +=C2=A0 =C2=A0 if (entry-&gt;lock &gt; 0) {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 <br>
&gt; -=C2=A0 =C2=A0 pentry-&gt;next =3D entry-&gt;next;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 ram_block_notify_remove(entry-&gt;vaddr_base, entr=
y-&gt;size, entry-&gt;size);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 if (munmap(entry-&gt;vaddr_base, entry-&gt;size) !=
=3D 0) {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 perror(&quot;unmap fails&quot;);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 exit(-1);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0 =C2=A0 g_free(entry-&gt;valid_mapping);<br>
&gt; -=C2=A0 =C2=A0 g_free(entry);<br>
&gt; +=C2=A0 =C2=A0 if (pentry) {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 pentry-&gt;next =3D entry-&gt;next;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 g_free(entry);<br>
&gt; +=C2=A0 =C2=A0 } else {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 memset(entry, 0, sizeof *entry);<br>
&gt; +=C2=A0 =C2=A0 }<br>
&gt;=C2=A0 }<br>
&gt;=C2=A0 <br>
&gt;=C2=A0 typedef struct XenMapCacheData {<br>
&gt; -- <br>
&gt; 2.40.1<br>
&gt; <br>
&gt; <br>
-- <br>
<br>
Anthony Perard | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
</blockquote></div></div>

--0000000000005c6c64061c2fffef--


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 14:09:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 14:09:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751706.1159731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHiR-0005AZ-Re; Mon, 01 Jul 2024 14:09:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751706.1159731; Mon, 01 Jul 2024 14: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 1sOHiR-0005AS-Nj; Mon, 01 Jul 2024 14:09:11 +0000
Received: by outflank-mailman (input) for mailman id 751706;
 Mon, 01 Jul 2024 14: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=HDGj=OB=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sOHiQ-0005AM-Ss
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 14:09:11 +0000
Received: from fout3-smtp.messagingengine.com (fout3-smtp.messagingengine.com
 [103.168.172.146]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7b655ef9-37b3-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 16:09:08 +0200 (CEST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailfout.nyi.internal (Postfix) with ESMTP id 71C791380114;
 Mon,  1 Jul 2024 10:09:07 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute5.internal (MEProxy); Mon, 01 Jul 2024 10:09:07 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 1 Jul 2024 10:09: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: 7b655ef9-37b3-11ef-90a5-e314d9c70b13
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=1719842947;
	 x=1719929347; bh=ruUcI0SUdJIg/bv1IEy2C83ssbLeKuWaDkVkPwjnlUs=; b=
	kTI9tRROY9pna3IZcQIYArNTyzPtQzuDC1xkqfGc1WcHPBMBwvLQsHUF28XP/V2L
	fjnMl+kKsSj8dJOc58lBkoUIdt6Ybaz4cQlwV00s1i8CWt+FzS+iogKVuElvErRr
	O+MJQ1PhDpaqF36GHFvge/aLQVHkcq8qLQgHV7C8+TvUcz3YCTB9sHHk2qp39sZI
	TuR02OMWxvCW7bzifawMedSePrv7qeq09ORU/F1y+H1Hyrd9tMKuuKdAYzVAO1Ov
	WHR1tDtkaTJ8b4y3wm7DPuQzWyZjxyc4EsoLRXdpcC/pe8x76DTMvUcg8n5zIJIt
	n4DYrck4L8fRPl2By1x3DA==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm2; t=1719842947; x=1719929347; bh=ruUcI0SUdJIg/bv1IEy2C83ssbLe
	KuWaDkVkPwjnlUs=; b=bZq3Jy7V8oS1+ERm8oIaaY7fo5l1+CngGNaGi8XWl5mJ
	fTkIEIWWcrdjOanfVSUQbYZv4ElBFVuv4jlX0eQNpLAFNdfiM8g2TTmF50YHxMny
	/P4aCLMflueWCMrYnWxDwy1g9utDnGa9wGjwiO3VhGaVHU+Vf1NV/QBxQ2FrTe04
	hnETpK5TLz8cCBrqFHG1B/lM+HD+j8oEqSxjCW4Q5chRV7A1pe1j05wpmGC65W2c
	dWKb+8tI3zJhqm2E7rqeTeerqtj07oWWcPgg9aN/DbADXslWVaGRejZB4jv5+Jps
	kvepo4GCXmHDigYuoxsNRoa2UgrkqG0D1xrgSp2ydw==
X-ME-Sender: <xms:griCZo20l__j8A8f4OIJwoXpyQrMzXazJRjvuIZVpI6Lw8DWxG_xzQ>
    <xme:griCZjGqwB8jsl6clnbd3EnJYe4tJaU-c6DYXg7ieoqM9cP2q68eb6vvtYrgTNAlJ
    JcFJ-VdlDntUA>
X-ME-Received: <xmr:griCZg7VfPhy6INTn0I7tZtwpTcbQE_GT9Tw6boimKriO3e1CYJ_5mxHLs3XYTHOmFlpbtjMMeOp-1g69FYp6oVWjhUrUOx-hg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudefgdejvdcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudel
    teefvefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:griCZh23XMZMaaSRNIe6yzEcgx9s0kUR-EtyG8du7d4KWKl_7OR01w>
    <xmx:griCZrHJ_fLS5raAKOLylCXbLKpojqLvzbNXSe7guWoMhXUXmRGYbw>
    <xmx:griCZq-CVmcI6oBK1t11DhN-kcIhKHLXVF8Lw8F8Qj-liAReT9IgDA>
    <xmx:griCZglwMGdJBU3dgx8uKLmiIeuexGO9WX_fPMDQaFf0r_2M9xyD_A>
    <xmx:g7iCZhYdYxMYqyCEVnSJUyL3tlMG65FlBXuKngdUIvfJvJ3ZiZod3Ypm>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 1 Jul 2024 16:09:03 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: xen-devel@lists.xenproject.org, nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 06/17] x86/EFI: address violations of MISRA C:2012
 Directive 4.10
Message-ID: <ZoK4f8wUdusqW_fA@mail-itl>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <0267af93ae969b67a77c3a9aca9f4ad6525de1b9.1719829101.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Jpi0/n/DkIAqI9zs"
Content-Disposition: inline
In-Reply-To: <0267af93ae969b67a77c3a9aca9f4ad6525de1b9.1719829101.git.alessandro.zucchelli@bugseng.com>


--Jpi0/n/DkIAqI9zs
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 1 Jul 2024 16:09:03 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: xen-devel@lists.xenproject.org, nicola.vetrini@bugseng.com,
	consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 06/17] x86/EFI: address violations of MISRA C:2012
 Directive 4.10

On Mon, Jul 01, 2024 at 03:36:01PM +0200, Alessandro Zucchelli wrote:
> From: Simone Ballarin <simone.ballarin@bugseng.com>
>=20
> Add inclusion guard to address violations of
> MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
> to prevent the contents of a header file being included more than
> once").
>=20
> Mechanical change.
>=20
> Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
> Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
>=20
> ---
> Changes in v4:
> - Modified inclusion guard.
> Changes in v3:
> - remove trailing underscores
> - change inclusion guard name to adhere to the new standard
> Changes in v2:
> - remove changes in "xen/arch/x86/efi/efi-boot.h"
>=20
> Note:
> Changes in efi-boot.h have been removed since the file is
> intenteded to be included by common/efi/boot.c only. This motivation
> is not enough to raise a deviation record, so the violation is
> still present.

I'm confused by this comment. It says changes in efi-boot.h have been
removed, yet the patch does include them.

> ---
>  xen/arch/x86/efi/efi-boot.h | 7 +++++++
>  xen/arch/x86/efi/runtime.h  | 5 +++++
>  2 files changed, 12 insertions(+)
>=20
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index f282358435..c6be744f2b 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -3,6 +3,11 @@
>   * is intended to be included by common/efi/boot.c _only_, and
>   * therefore can define arch specific global variables.
>   */
> +
> +#ifndef X86_EFI_EFI_BOOT_H
> +#define X86_EFI_EFI_BOOT_H
> +
> +
>  #include <xen/vga.h>
>  #include <asm/e820.h>
>  #include <asm/edd.h>
> @@ -912,6 +917,8 @@ void asmlinkage __init efi_multiboot2(EFI_HANDLE Imag=
eHandle,
>      efi_exit_boot(ImageHandle, SystemTable);
>  }
> =20
> +#endif /* X86_EFI_EFI_BOOT_H */
> +
>  /*
>   * Local variables:
>   * mode: C
> diff --git a/xen/arch/x86/efi/runtime.h b/xen/arch/x86/efi/runtime.h
> index 77866c5f21..88ab5651e9 100644
> --- a/xen/arch/x86/efi/runtime.h
> +++ b/xen/arch/x86/efi/runtime.h
> @@ -1,3 +1,6 @@
> +#ifndef X86_EFI_RUNTIME_H
> +#define X86_EFI_RUNTIME_H
> +
>  #include <xen/domain_page.h>
>  #include <xen/mm.h>
>  #include <asm/atomic.h>
> @@ -17,3 +20,5 @@ void efi_update_l4_pgtable(unsigned int l4idx, l4_pgent=
ry_t l4e)
>      }
>  }
>  #endif
> +
> +#endif /* X86_EFI_RUNTIME_H */
> --=20
> 2.34.1
>=20

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

--Jpi0/n/DkIAqI9zs
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmaCuH8ACgkQ24/THMrX
1yyGQwf/bwmHJM+skKaasqaSPSJwVr/HNjgt1MMLykdqYPSWvgdpav8vZ5qD+nUZ
rdFMxdPRzi5aMRkDU4VmgtnD1wBb35v5vQjEcBzEfqGMF74pa0H5loli2Hpx04tU
3NPuHO+XijQuZzT+BWblQTOl8nTRjqVBDbRoNY2do4nTLluuspq4jpy4Sf1KIsRD
L/KyA3zmejdM9c83O1OnB6Un1DEu26XDBeZ/ngZ5cPunda0vGxKRBehaaRgRUv/P
H0jZ2jPvWOkjTi0WzGtnzBDy0SoNU9/h/jIcNgmN1CY+nC0X9JSjiFaFAfSnXFKp
u4oBlX9Kyt4qMa50SOGOvzKX/uw9zw==
=Qf7P
-----END PGP SIGNATURE-----

--Jpi0/n/DkIAqI9zs--


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 14:11:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 14:11:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751711.1159741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHka-0006a9-6J; Mon, 01 Jul 2024 14:11:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751711.1159741; Mon, 01 Jul 2024 14:11:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHka-0006a2-2z; Mon, 01 Jul 2024 14:11:24 +0000
Received: by outflank-mailman (input) for mailman id 751711;
 Mon, 01 Jul 2024 14:11:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOHkZ-0006Zw-1I
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 14:11:23 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca71814b-37b3-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 16:11:20 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2ec0f3b9cfeso36243641fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 07:11: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
 41be03b00d2f7-73aba14b007sm2856709a12.85.2024.07.01.07.11.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 07:11: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: ca71814b-37b3-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719843080; x=1720447880; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kLLmKrCv/xlyFN0iGWWF1FaWX+anc+UtteN1Vq13fy0=;
        b=JDv6aQ28EutMUrdFZ93eDgAdQIWyoM22R3RPteQycmF7xAMyXa+dkPupK8k+y3ZMW7
         5KuxPUoSNRlQWQqezV3BkDKJrdajXI6h0QYcjRY+KLxDTRqnm4qnSUxKRpe2dlC0HUn1
         W8YOH5LT25dlfgAhUDhgBhghw0Nucj0hi6QIrtO27XysSYY8z9vHsTfRZcgEnjdXvpHc
         c8czSAbetr23JWIDgGdFtU0jk7wwTv43Fzej2Pdaj3wg8oiQBUJMVCBosSCAR5Q1Aove
         7WujDobY7GMgTm5R06AUzUYTkbokN7LfyEPGALDOlOkTc9FAgKnwee4HjFd8MaVcPQHQ
         HT7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719843080; x=1720447880;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kLLmKrCv/xlyFN0iGWWF1FaWX+anc+UtteN1Vq13fy0=;
        b=c7qk0baBPa4hbE4haVlCFRur6273zRon5KPcBPLDFv/iHW8F2YglFXtTv0+zQGRv79
         iPiVliGP2sWvcAbhPR5rrVcf5oA8QfbCf75fJJ2wU9oMQQOC9nHHxLqgHA1bf/FNjobs
         blHszmJ3UwE40BSrtW8mWUU96jaCPTUg9Bs4TO6NIfaVzNhQ84coP2ruIf2XW18W6lhO
         N16p4FnprzG5j5IsVZZv622HD+iu2BwD+kkXRYY+3Iu9Fbv85nD0kUsxa5UE23ioB6m/
         YVrt5wLSRLutrWBoIDfSlH4OI1N0MF8gPVg1MmES6qBYBIbvLDLNT4Yqh+RyhbSq4llu
         +CxA==
X-Forwarded-Encrypted: i=1; AJvYcCXGzGMI0gfPJl7yxVrFVp03PEVL8PhC7yWhtsuhkTyuAotq3J2xjG2XKP7HQWqfXR6RfUNiLJs2IA0CbwxXxcdJYISFQUGBTwpZfgtvKLo=
X-Gm-Message-State: AOJu0YyKjJV3Ht66MlkFlpkTtyZ7TFHLluMnyVGJQ3pv5V51PsQ5dLWX
	lljRjt8kto3aT97MP6W5mDNGybh+PukMBgYIuz0Ta92P2SAIu/lGatcpQPWdSQ==
X-Google-Smtp-Source: AGHT+IGe9Ktv+W+afuwwSj3TxEUHxLAbPG/nCL5BVEs8BGPygXK+7DWLObjawXpvfyybpJhBia6sqw==
X-Received: by 2002:a05:651c:893:b0:2ee:6277:a888 with SMTP id 38308e7fff4ca-2ee6277a9f3mr35070051fa.38.1719843080056;
        Mon, 01 Jul 2024 07:11:20 -0700 (PDT)
Message-ID: <a02442b6-b286-4fda-8814-cb939f29a355@suse.com>
Date: Mon, 1 Jul 2024 16:11:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/17] x86/EFI: address violations of MISRA C:2012
 Directive 4.10
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: nicola.vetrini@bugseng.com, consulting@bugseng.com,
 Simone Ballarin <simone.ballarin@bugseng.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <0267af93ae969b67a77c3a9aca9f4ad6525de1b9.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0267af93ae969b67a77c3a9aca9f4ad6525de1b9.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 15:36, Alessandro Zucchelli wrote:
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -3,6 +3,11 @@
>   * is intended to be included by common/efi/boot.c _only_, and
>   * therefore can define arch specific global variables.
>   */
> +
> +#ifndef X86_EFI_EFI_BOOT_H
> +#define X86_EFI_EFI_BOOT_H
> +
> +
>  #include <xen/vga.h>
>  #include <asm/e820.h>
>  #include <asm/edd.h>

Nit: No double blank lines please, anywhere.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 14:16:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 14:16:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751716.1159751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHpT-0007BJ-Nt; Mon, 01 Jul 2024 14:16:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751716.1159751; Mon, 01 Jul 2024 14: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 1sOHpT-0007BC-Ki; Mon, 01 Jul 2024 14:16:27 +0000
Received: by outflank-mailman (input) for mailman id 751716;
 Mon, 01 Jul 2024 14:16: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOHpS-0007Ay-JI
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 14:16:26 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7fb08cc0-37b4-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 16:16:24 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2ec52fbb50aso35922521fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 07:16: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
 41be03b00d2f7-743148a5acfsm2201655a12.48.2024.07.01.07.16.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 07: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: 7fb08cc0-37b4-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719843384; x=1720448184; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XANTur0bQEROZt2M8ETI6tgbdcdpVr9a8rKqMnJcvBc=;
        b=OGBUZTGkhgE0FGJ+mBilpeFKdz/3YYi8rSpLXr/IngtgLgAJBOPAQf0n8NaiZNAzx6
         Nfkpo2Z0gZzWp9XGzwP4BX3BUeI8HTZna2DVo8kZD7p2BFjgi4Xj5VXSeimoHYgNwLYf
         oN1pJqwRPj4cA+kQHBiBF5T2R2bwN15p3t2aJU1cCucd4rN+LGEG8Shl/4twin9MepXs
         HcxhoBwQXyzVCr2C021S6lxAVbqR6F/BnueV+xatqRKWGYLnhLTLSaAucQRemX8UoEK0
         J1GtD/9vE/RNGGppnGFRjdh1baUIL4Uv+pxIB+K14aFHgWDDh6OG/qZsbj2mp3xYInLH
         8y9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719843384; x=1720448184;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XANTur0bQEROZt2M8ETI6tgbdcdpVr9a8rKqMnJcvBc=;
        b=pZ/BOJFNJtVyArvOfTGbNuy3DcR3t0tAhaZT8a+Ps55grT2NXb9xidzeKUrc4UYqm3
         fLHg+3GFo5oOkXggkIAeZsrxdCJDktOMS972fRSozG8TKBfg8XcMLAmU6xdTZ2sWyKUn
         6ZTF0BBlYRqjExYm+n76v77gk0LVtKRC+OYoMoRJytDdB1hK5oILOxG78QyD+4mWzK63
         HJ+I7q3QzdMctvB6T+xad8eVcLdA4WSgYAWyXgyAdinrIAN3805xBSMrzZdcR/2Rd7ya
         EQqB6I2w0lpJlGz3bcNY0Poh4YSVB/sXzGaNrWEgNXxxdOjBOeS3qpg1NvV+mvUJsMX8
         Ow3Q==
X-Forwarded-Encrypted: i=1; AJvYcCVmxjHFxQIHU0TQ30JM5M1l4WPR/PzMDwYJAmOzsqKzc5DLsFP4o0Q8uc0z7Yxe4R9w1rZB0g4dISls9lKK5+W+pIYa7ylv+4k6GTNvCJ4=
X-Gm-Message-State: AOJu0YxfS2AybB/cNKXcZwXbjQ+T1spqrQYz0GiMSk9d2+IyKlwJGx3Q
	0E2CxQ+jo6NnGTeTDUwAcgcsh5T8IcIUyNsSvYzFjZo12Vd2kJZ/6NLDbNk5Fw==
X-Google-Smtp-Source: AGHT+IESh34zxs4K0U6uM1j43f0tuzuORlGoFQfLhrFMKekJzegWiHLesPEUQxjlOhvD2KXxdNnsAQ==
X-Received: by 2002:a2e:be1a:0:b0:2ec:5255:b4d9 with SMTP id 38308e7fff4ca-2ee5e380a0fmr49738561fa.7.1719843384187;
        Mon, 01 Jul 2024 07:16:24 -0700 (PDT)
Message-ID: <a9133a97-d874-48ae-8ee4-83d752dcedd7@suse.com>
Date: Mon, 1 Jul 2024 16:16:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/17] misra: add deviations for direct inclusion guards
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.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>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <64e80abfaa68d87e8cb4fee67bc2624eda4f466a.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <64e80abfaa68d87e8cb4fee67bc2624eda4f466a.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 13:10, Alessandro Zucchelli wrote:
> From: Simone Ballarin <simone.ballarin@bugseng.com>
> 
> Add deviation comments to address violations of
> MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
> to prevent the contents of a header file being included more than
> once").
> 
> Inclusion guards must appear at the beginning of the headers
> (comments are permitted anywhere).
> 
> This patch adds deviation comments using the format specified
> in docs/misra/safe.json for headers with just the direct
> inclusion guard before the inclusion guard since they are
> safe and not supposed to comply with the directive.
> 
> Note that with SAF-9-safe in place, failures to have proper guards later
> in the header files will not be reported

Rebasing mistake, seeing that it's ...

> --- a/docs/misra/safe.json
> +++ b/docs/misra/safe.json
> @@ -84,6 +84,14 @@
>          },
>          {
>              "id": "SAF-10-safe",
> +            "analyser": {
> +                "eclair": "MC3R1.D4.10"
> +            },
> +            "name": "Dir 4.10: direct inclusion guard before",
> +            "text": "Headers with just the direct inclusion guard before the inclusion guard are safe."
> +        },
> +        {
> +            "id": "SAF-11-safe",
>              "analyser": {},
>              "name": "Sentinel",
>              "text": "Next ID to be used"

... SFA-10-safe that's being added and ...

> --- a/xen/arch/arm/include/asm/hypercall.h
> +++ b/xen/arch/arm/include/asm/hypercall.h
> @@ -1,3 +1,4 @@
> +/* SAF-10-safe direct inclusion guard before */
>  #ifndef __XEN_HYPERCALL_H__
>  #error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead"
>  #endif
> --- a/xen/arch/x86/include/asm/hypercall.h
> +++ b/xen/arch/x86/include/asm/hypercall.h
> @@ -2,6 +2,7 @@
>   * asm-x86/hypercall.h
>   */
>  
> +/* SAF-10-safe direct inclusion guard before */
>  #ifndef __XEN_HYPERCALL_H__
>  #error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead"
>  #endif

... used here?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 14:21:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 14:21:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751723.1159760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOHuk-0000H2-8q; Mon, 01 Jul 2024 14:21:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751723.1159760; Mon, 01 Jul 2024 14:21: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 1sOHuk-0000Gv-6K; Mon, 01 Jul 2024 14:21:54 +0000
Received: by outflank-mailman (input) for mailman id 751723;
 Mon, 01 Jul 2024 14: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOHui-0000Gp-NP
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 14:21:52 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 425b681f-37b5-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 16:21:51 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2ec17eb4493so44704401fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 07:21: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
 d9443c01a7336-1fac1598576sm64927035ad.278.2024.07.01.07.21.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 07:21: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: 425b681f-37b5-11ef-90a5-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719843711; x=1720448511; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kyQK9uKtsYeY4iwhdia4uY660USAw70uwNsh3a3JE5I=;
        b=cK6wb2X9hLOgWn32tF0ht1VlMj3Kzgb0KGoCCeXtvswyezTYzMeT4m97gdV4DqwGIq
         Ixb7L7SkerzHX/UB7Un6ydJBEl2PInjGderP5JsmXQoDcIAhqOcL291tbvtFzp4lOWMc
         qiH22C4XG19j4iwYok6O8Kpv3tBdc5bYcpnNWUCibdLb7gt+T5wFD6nxTqBanvdhQoq+
         GYfo+CNGgbjmhRl29Z/NlQ70GlAJRUB4OH30P/7j/7yyxXhvN9cpvm3EJrqtCQ8J9y91
         PhK6kfZDzMgwajtwGw5KMsj+mmH4WcEzsr/NsZApnAccxubIz5ueiUnh9+nmkydoNnaZ
         cVsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719843711; x=1720448511;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kyQK9uKtsYeY4iwhdia4uY660USAw70uwNsh3a3JE5I=;
        b=AGJovlO0jgwtSnRVVLhF4hliccoxI0yrEpxEjLVOqdWmYIXXcdwqT6iw53aDWmuLzD
         xcAeU55UiUBsVOjKUa0YucPjBOiojAxCILH4ojNSYeBLF3NhuEX7HFWdfQwasvF8W8hs
         5SQz4TOW63gr2hswoVYDQbLIQ9NpfswC4vejKOI3O1MncKGd8uoh7KOsySHZrkWH8t1z
         FHtJy78/j3KOLdZANnQu+VLrTnhp2kycBJATsdHX0MK5Hpf6t3v6pUgiIX2p48sap/34
         6wyU3aZXmALIpLI0YbCogfHa43FcFfPx1bXSMm86bepjrj6AUnuxaqGRf7AC0BolmrnC
         5ddQ==
X-Forwarded-Encrypted: i=1; AJvYcCUdTyre05IxEannv1AEK6G5WEssS6KMRjECQnvSsTfaI8iYEUreNqg5mDCGorLIRzOicIl5OtE29bWT1dQXIAkcm+nOxa+Yr7mfeX5ByaQ=
X-Gm-Message-State: AOJu0Yx9Fh2JvZyDxDVVF46/dTtKjjBNm835dPIpmk4m2yVj337wtg6h
	6eM85IjK9ab57u6kSRzVHGys9ZXNDk7cuzgWRKObqYOoswrCMM9ErGzcxhg+6A==
X-Google-Smtp-Source: AGHT+IGAUVRyZ3hOWTlXeXVJb/pt+4ap0ReFALCBybTG2QewmF6z20CEDgcwA4zZBxKGvRHFqfnbgQ==
X-Received: by 2002:a05:651c:1186:b0:2ec:72ff:cdf1 with SMTP id 38308e7fff4ca-2ee5e393888mr41671641fa.16.1719843710946;
        Mon, 01 Jul 2024 07:21:50 -0700 (PDT)
Message-ID: <09bc4d2e-b4fb-428b-b0e3-266952ebd3c5@suse.com>
Date: Mon, 1 Jul 2024 16:21:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/17] xen/x86: address violations of MISRA C:2012
 Directive 4.10
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: nicola.vetrini@bugseng.com, consulting@bugseng.com,
 Simone Ballarin <simone.ballarin@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <d67d06849732fea11391afd61ff9891ed11795e5.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d67d06849732fea11391afd61ff9891ed11795e5.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 15:36, Alessandro Zucchelli wrote:
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -260,17 +260,18 @@ $(objtree)/arch/x86/include/asm/asm-macros.h: $(obj)/asm-macros.i $(src)/Makefil
>  	$(call filechk,asm-macros.h)
>  
>  define filechk_asm-macros.h
> +	guard=$$(echo ASM_${SRCARCH}_ASM_MACROS_H | tr a-z A-Z);  \

Nit: Hard tab slipped in.

> +    echo '#ifndef $$guard'; \
> +    echo '#define $$guard'; \
>      echo '#if 0'; \
>      echo '.if 0'; \
>      echo '#endif'; \
> -    echo '#ifndef __ASM_MACROS_H__'; \
> -    echo '#define __ASM_MACROS_H__'; \
>      echo 'asm ( ".include \"$@\"" );'; \
> -    echo '#endif /* __ASM_MACROS_H__ */'; \
>      echo '#if 0'; \
>      echo '.endif'; \
>      cat $<; \
> -    echo '#endif'
> +    echo '#endif'; \
> +    echo '#endif /* $$guard */'
>  endef
>  
>  $(obj)/efi.lds: AFLAGS-y += -DEFI
> --- a/xen/arch/x86/cpu/cpu.h
> +++ b/xen/arch/x86/cpu/cpu.h
> @@ -1,3 +1,6 @@
> +#ifndef X86_CPU_CPU_H
> +#define X86_CPU_CPU_H

This, ...

> --- a/xen/arch/x86/x86_64/mmconfig.h
> +++ b/xen/arch/x86/x86_64/mmconfig.h
> @@ -5,6 +5,9 @@
>   * Author: Allen Kay <allen.m.kay@intel.com> - adapted from linux
>   */
>  
> +#ifndef X86_64_MMCONFIG_H
> +#define X86_64_MMCONFIG_H

... this, and ...

> --- a/xen/arch/x86/x86_emulate/private.h
> +++ b/xen/arch/x86/x86_emulate/private.h
> @@ -6,6 +6,9 @@
>   * Copyright (c) 2005-2007 XenSource Inc.
>   */
>  
> +#ifndef X86_X86_EMULATE_PRIVATE_H
> +#define X86_X86_EMULATE_PRIVATE_H

... this guard can't possibly all follow the same proposed naming scheme
(wherever the final version of that is being recorded; I don't recall it
having gone in, and I didn't spot anything earlier in the series); at
least one must be wrong.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 14:30:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 14:30:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751732.1159770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOI3I-0002Sz-61; Mon, 01 Jul 2024 14:30:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751732.1159770; Mon, 01 Jul 2024 14:30:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOI3I-0002Ss-3N; Mon, 01 Jul 2024 14:30:44 +0000
Received: by outflank-mailman (input) for mailman id 751732;
 Mon, 01 Jul 2024 14:30: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=K0KN=OB=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1sOI3G-0002Sm-Dg
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 14:30:42 +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 7d60000d-37b6-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 16:30:40 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-57d07464aa9so409581a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 07:30: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: 7d60000d-37b6-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719844239; x=1720449039; 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=Mx1BbZNoFXKbNgK2rGGxef64/Fo+sAmrJZLodx+tDP4=;
        b=iZwPCjXb1w6efA1k+byVxXFAE8xYUtjtojRva5h/sctzDtkemY46VZ77NKf9xK0C7f
         DsMvtFFXAHqXvXPNfVIlyC+M2zdsQXkd0pu+MFxwufTEcEwuat908WrdF2F00ZaPBlUm
         QBj0ogRSoyjYAM14Uz6S7qa6PJxfH8xAKbKVmguzZw+OMWP6sXCzqhgwBdjemgM1+7YP
         Wvydg62J3iHspXW65X9itdnkQKfmd85Yy4eOzkkHppqukb+1S3ZcTQ+i8A3F13dqc3l8
         d4xjEwLW032YaqRmYrOmQDBjUYzeH1Zd8DcQS+hQKFhAYRMq2zNcz+P7HPY6bgMFEaha
         qFmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719844239; x=1720449039;
        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=Mx1BbZNoFXKbNgK2rGGxef64/Fo+sAmrJZLodx+tDP4=;
        b=OL9lU0MOgLGp5v0U8TrPvertAFWE8CX++RVnWYWLDSaj9kAtUmEUxY405xSNcJu6Dp
         khx51pJmsndIGF2jfSpT/oMc9SmPuRxIc1R6PPBMOrIuz9Jcpv+h+/f3hXfodaLiOaHq
         ASZ0iQKl9CvFUI6nVMimJHyiK1EqIlOY6DRxrtvuRQ9yoS92mAB3ZpdV5rukoHziG22f
         O82BX5x2xYrXKe1DPP6/Kk0dFUJUVlRdLIq/3tzcF7hXCxD9w7bMd/AbjTbEZNLI5Q9L
         qo7PhoZUraM7teGDgl7gXDA8NZmjytm25WeFij2W473Fo0I4yQykvYao/emUws38dW5C
         Wrwg==
X-Forwarded-Encrypted: i=1; AJvYcCVX0bLnBmb+7XObky1zqBWmrl8JGjjqgArgU1NAd+gw5Q9VPeDhoL0PHjfj+be8rFOUoJoTDfBbhNqgCc/Fc/eVxXnxxaGLK6YOCasFxsw=
X-Gm-Message-State: AOJu0Yw2VwVjtB3Cg6hUgqo6vp78UeYgr3nKTmzsqBncJffiGSgB7jbP
	1bexB484A3uU0AeYEwfmjg2ReaeZar242YIUjw4a6uCpoXb3qOzlYocoNvKQTIzU4OW2h0WazPI
	AfxqCMPTECCldTm1azQNxkgVBPksn3k551IA=
X-Google-Smtp-Source: AGHT+IFfW/3Gj/TvJuH+0cyH3oL2sUBonnIH8EmEbqpFq7+OqmDQFW6b0kk26I/bgkc5lT9UrN5vHJS+BdRtuYWs8Ko=
X-Received: by 2002:a05:6402:524a:b0:57d:72e:5b3a with SMTP id
 4fb4d7f45d1cf-587a053e309mr3872445a12.33.1719844239082; Mon, 01 Jul 2024
 07:30:39 -0700 (PDT)
MIME-Version: 1.0
References: <20240529140739.1387692-1-edgar.iglesias@gmail.com>
 <20240529140739.1387692-3-edgar.iglesias@gmail.com> <ZoKnQLBwIwh004yy@l14> <CAJy5ezqdxQ_y_sCyP243yTfgOJfLh1COzN9Eg+PxxoaVeOh-mQ@mail.gmail.com>
In-Reply-To: <CAJy5ezqdxQ_y_sCyP243yTfgOJfLh1COzN9Eg+PxxoaVeOh-mQ@mail.gmail.com>
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Date: Mon, 1 Jul 2024 16:30:27 +0200
Message-ID: <CAJy5ezrSs8r=ibTgb_oURdFTDW07sVVBeU6Rw7jsM+iaqPLNgg@mail.gmail.com>
Subject: Re: [PATCH v8 2/8] xen: mapcache: Unmap first entries in buckets
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: qemu-devel@nongnu.org, sstabellini@kernel.org, jgross@suse.com, 
	"Edgar E. Iglesias" <edgar.iglesias@amd.com>, Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000f08b0c061c3070a6"

--000000000000f08b0c061c3070a6
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 1, 2024 at 3:58=E2=80=AFPM Edgar E. Iglesias <edgar.iglesias@gm=
ail.com>
wrote:

> On Mon, Jul 1, 2024 at 2:55=E2=80=AFPM Anthony PERARD <anthony.perard@vat=
es.tech>
> wrote:
>
>> Hi all,
>>
>> Following this commit, a test which install Debian in a guest with OVMF
>> as firmware started to fail. QEMU exit with an error when GRUB is
>> running on the freshly installed Debian (I don't know if GRUB is
>> starting Linux or not).
>> The error is:
>>     Bad ram offset ffffffffffffffff
>>
>> Some logs:
>>
>> http://logs.test-lab.xenproject.org/osstest/logs/186611/test-amd64-amd64=
-xl-qemuu-ovmf-amd64/info.html
>>
>> Any idea? Something is trying to do something with the address "-1" when
>> it shouldn't?
>>
>>
> Hi Anothny,
>
> Yes, it looks like something is calling qemu_get_ram_block() on something
> that isn't mapped.
> One possible path is in qemu_ram_block_from_host() but there may be other=
s.
>
> The following patch may help.
> Any chance you could try to get a backtrace from QEMU when it failed?
>
> diff --git a/system/physmem.c b/system/physmem.c
> index 33d09f7571..2669c4dbbb 100644
> --- a/system/physmem.c
> +++ b/system/physmem.c
> @@ -2277,6 +2277,9 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool
> round_offset,
>          ram_addr_t ram_addr;
>          RCU_READ_LOCK_GUARD();
>          ram_addr =3D xen_ram_addr_from_mapcache(ptr);
> +        if (ram_addr =3D=3D RAM_ADDR_INVALID) {
> +            return NULL;
> +        }
>          block =3D qemu_get_ram_block(ram_addr);
>          if (block) {
>              *offset =3D ram_addr - block->offset;
>
>
>
One more thing, regarding this specific patch. I don't think we should
clear the
entire entry, the next field should be kept, otherwise we'll disconnect
following
mappings that will never be found again. IIUC, this could very well be
causing the problem you see.

Does the following make sense?

diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 5f23b0adbe..e9df53c19d 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -597,7 +597,14 @@ static void
xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
         pentry->next =3D entry->next;
         g_free(entry);
     } else {
-        memset(entry, 0, sizeof *entry);
+        /* Invalidate mapping.  */
+        entry->paddr_index =3D 0;
+        entry->vaddr_base =3D NULL;
+        entry->size =3D 0;
+        g_free(entry->valid_mapping);
+        entry->valid_mapping =3D NULL;
+        entry->flags =3D 0;
+        /* Keep entry->next pointing to the rest of the list.  */
     }
 }









>
>
>> Cheers,
>>
>> Anthony
>>
>> On Wed, May 29, 2024 at 04:07:33PM +0200, Edgar E. Iglesias wrote:
>> > From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
>> >
>> > When invalidating memory ranges, if we happen to hit the first
>> > entry in a bucket we were never unmapping it. This was harmless
>> > for foreign mappings but now that we're looking to reuse the
>> > mapcache for transient grant mappings, we must unmap entries
>> > when invalidated.
>> >
>> > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
>> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>> > ---
>> >  hw/xen/xen-mapcache.c | 11 ++++++++---
>> >  1 file changed, 8 insertions(+), 3 deletions(-)
>> >
>> > diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
>> > index bc860f4373..ec95445696 100644
>> > --- a/hw/xen/xen-mapcache.c
>> > +++ b/hw/xen/xen-mapcache.c
>> > @@ -491,18 +491,23 @@ static void
>> xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
>> >          return;
>> >      }
>> >      entry->lock--;
>> > -    if (entry->lock > 0 || pentry =3D=3D NULL) {
>> > +    if (entry->lock > 0) {
>> >          return;
>> >      }
>> >
>> > -    pentry->next =3D entry->next;
>> >      ram_block_notify_remove(entry->vaddr_base, entry->size,
>> entry->size);
>> >      if (munmap(entry->vaddr_base, entry->size) !=3D 0) {
>> >          perror("unmap fails");
>> >          exit(-1);
>> >      }
>> > +
>> >      g_free(entry->valid_mapping);
>> > -    g_free(entry);
>> > +    if (pentry) {
>> > +        pentry->next =3D entry->next;
>> > +        g_free(entry);
>> > +    } else {
>> > +        memset(entry, 0, sizeof *entry);
>> > +    }
>> >  }
>> >
>> >  typedef struct XenMapCacheData {
>> > --
>> > 2.40.1
>> >
>> >
>> --
>>
>> Anthony Perard | Vates XCP-ng Developer
>>
>> XCP-ng & Xen Orchestra - Vates solutions
>>
>> web: https://vates.tech
>>
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Mon, Jul 1, 2024 at 3:58=E2=80=AFP=
M Edgar E. Iglesias &lt;<a href=3D"mailto:edgar.iglesias@gmail.com">edgar.i=
glesias@gmail.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);p=
adding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr">On Mon, Jul 1, 2024 at 2=
:55=E2=80=AFPM Anthony PERARD &lt;anthony.perard@vates.tech&gt; wrote:<br><=
/div><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"=
margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-lef=
t:1ex">Hi all,<br>
<br>
Following this commit, a test which install Debian in a guest with OVMF<br>
as firmware started to fail. QEMU exit with an error when GRUB is<br>
running on the freshly installed Debian (I don&#39;t know if GRUB is<br>
starting Linux or not).<br>
The error is:<br>
=C2=A0 =C2=A0 Bad ram offset ffffffffffffffff<br>
<br>
Some logs:<br>
<a href=3D"http://logs.test-lab.xenproject.org/osstest/logs/186611/test-amd=
64-amd64-xl-qemuu-ovmf-amd64/info.html" rel=3D"noreferrer" target=3D"_blank=
">http://logs.test-lab.xenproject.org/osstest/logs/186611/test-amd64-amd64-=
xl-qemuu-ovmf-amd64/info.html</a><br>
<br>
Any idea? Something is trying to do something with the address &quot;-1&quo=
t; when<br>
it shouldn&#39;t?<br>
<br></blockquote><div><br></div><div>Hi Anothny,</div><div><br></div><div>Y=
es, it looks like something is calling=C2=A0qemu_get_ram_block() on somethi=
ng that isn&#39;t mapped.</div><div>One possible path is in=C2=A0qemu_ram_b=
lock_from_host() but there may be others.</div><div><br></div><div>The=C2=
=A0following patch may help.</div><div>Any chance you could try to get a ba=
cktrace from QEMU when it failed?</div><div><br></div><div>diff --git a/sys=
tem/physmem.c b/system/physmem.c<br>index 33d09f7571..2669c4dbbb 100644<br>=
--- a/system/physmem.c<br>+++ b/system/physmem.c<br>@@ -2277,6 +2277,9 @@ R=
AMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,<br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0ram_addr_t ram_addr;<br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0RCU_READ_LOCK_GUARD();<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ram_a=
ddr =3D xen_ram_addr_from_mapcache(ptr);<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0if=
 (ram_addr =3D=3D RAM_ADDR_INVALID) {<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0return NULL;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0block =3D qemu_get_ram_block(ram_addr);<br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0if (block) {<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0*offset =3D ram_addr - block-&gt;offset;<br></div><div><br></d=
iv><div><br></div></div></div></blockquote><div><br></div><div>One more thi=
ng, regarding this specific patch. I don&#39;t think we should clear the</d=
iv><div>entire entry, the next field should be kept, otherwise we&#39;ll di=
sconnect following</div><div>mappings that will never be found again. IIUC,=
 this could very well be causing the problem you see.</div><div><br></div><=
div>Does the following make sense?</div><div class=3D"gmail_quote"><br></di=
v>diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c<br>index 5f23b=
0adbe..e9df53c19d 100644<br>--- a/hw/xen/xen-mapcache.c<br>+++ b/hw/xen/xen=
-mapcache.c<br>@@ -597,7 +597,14 @@ static void xen_invalidate_map_cache_en=
try_unlocked(MapCache *mc,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pentry-&gt;=
next =3D entry-&gt;next;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0g_free(entry)=
;<br>=C2=A0 =C2=A0 =C2=A0} else {<br>- =C2=A0 =C2=A0 =C2=A0 =C2=A0memset(en=
try, 0, sizeof *entry);<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Invalidate mappi=
ng. =C2=A0*/<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0entry-&gt;paddr_index =3D 0;<b=
r>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0entry-&gt;vaddr_base =3D NULL;<br>+ =C2=A0 =
=C2=A0 =C2=A0 =C2=A0entry-&gt;size =3D 0;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0g=
_free(entry-&gt;valid_mapping);<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0entry-&gt;v=
alid_mapping =3D NULL;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0entry-&gt;flags =3D =
0;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Keep entry-&gt;next pointing to the r=
est of the list. =C2=A0*/<br>=C2=A0 =C2=A0 =C2=A0}<br>=C2=A0}<br><div>=C2=
=A0<br></div><div><br></div><div><br></div><div><br></div><div><br></div><d=
iv><br></div><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quo=
te" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204=
);padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div></div>=
<div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Cheers,<br>
<br>
Anthony<br>
<br>
On Wed, May 29, 2024 at 04:07:33PM +0200, Edgar E. Iglesias wrote:<br>
&gt; From: &quot;Edgar E. Iglesias&quot; &lt;<a href=3D"mailto:edgar.iglesi=
as@amd.com" target=3D"_blank">edgar.iglesias@amd.com</a>&gt;<br>
&gt; <br>
&gt; When invalidating memory ranges, if we happen to hit the first<br>
&gt; entry in a bucket we were never unmapping it. This was harmless<br>
&gt; for foreign mappings but now that we&#39;re looking to reuse the<br>
&gt; mapcache for transient grant mappings, we must unmap entries<br>
&gt; when invalidated.<br>
&gt; <br>
&gt; Signed-off-by: Edgar E. Iglesias &lt;<a href=3D"mailto:edgar.iglesias@=
amd.com" target=3D"_blank">edgar.iglesias@amd.com</a>&gt;<br>
&gt; Reviewed-by: Stefano Stabellini &lt;<a href=3D"mailto:sstabellini@kern=
el.org" target=3D"_blank">sstabellini@kernel.org</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 hw/xen/xen-mapcache.c | 11 ++++++++---<br>
&gt;=C2=A0 1 file changed, 8 insertions(+), 3 deletions(-)<br>
&gt; <br>
&gt; diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c<br>
&gt; index bc860f4373..ec95445696 100644<br>
&gt; --- a/hw/xen/xen-mapcache.c<br>
&gt; +++ b/hw/xen/xen-mapcache.c<br>
&gt; @@ -491,18 +491,23 @@ static void xen_invalidate_map_cache_entry_unloc=
ked(MapCache *mc,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 entry-&gt;lock--;<br>
&gt; -=C2=A0 =C2=A0 if (entry-&gt;lock &gt; 0 || pentry =3D=3D NULL) {<br>
&gt; +=C2=A0 =C2=A0 if (entry-&gt;lock &gt; 0) {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 <br>
&gt; -=C2=A0 =C2=A0 pentry-&gt;next =3D entry-&gt;next;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 ram_block_notify_remove(entry-&gt;vaddr_base, entr=
y-&gt;size, entry-&gt;size);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 if (munmap(entry-&gt;vaddr_base, entry-&gt;size) !=
=3D 0) {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 perror(&quot;unmap fails&quot;);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 exit(-1);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0 =C2=A0 g_free(entry-&gt;valid_mapping);<br>
&gt; -=C2=A0 =C2=A0 g_free(entry);<br>
&gt; +=C2=A0 =C2=A0 if (pentry) {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 pentry-&gt;next =3D entry-&gt;next;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 g_free(entry);<br>
&gt; +=C2=A0 =C2=A0 } else {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 memset(entry, 0, sizeof *entry);<br>
&gt; +=C2=A0 =C2=A0 }<br>
&gt;=C2=A0 }<br>
&gt;=C2=A0 <br>
&gt;=C2=A0 typedef struct XenMapCacheData {<br>
&gt; -- <br>
&gt; 2.40.1<br>
&gt; <br>
&gt; <br>
-- <br>
<br>
Anthony Perard | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
</blockquote></div></div>
</blockquote></div></div>

--000000000000f08b0c061c3070a6--


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 14:35:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 14:35:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751738.1159780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOI7Z-000339-Mt; Mon, 01 Jul 2024 14:35:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751738.1159780; Mon, 01 Jul 2024 14:35: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 1sOI7Z-000332-Ju; Mon, 01 Jul 2024 14:35:09 +0000
Received: by outflank-mailman (input) for mailman id 751738;
 Mon, 01 Jul 2024 14:35: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=K0KN=OB=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1sOI7Y-00032w-EE
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 14:35:08 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c391ace-37b7-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 16:35:06 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a6fe61793e2so152706266b.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 07:35: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: 1c391ace-37b7-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719844506; x=1720449306; 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=eZww6N4FXnwd+gMZy4Nk8A9I2Qib6HFNI65vtKUOJiY=;
        b=cC9NyvdWzVE+jrYKpHZvB8H8LSxfdbXV7DSyuFaCokz2Bnl7Jh4PbVg40llSCHsZ8a
         SbXEhwjZalwZjqlUKipQk7irI1t25Rb2Rh0BKANeAvu9fwQfJAnTAIpEn++BslsZhfB/
         qkrk6gjFPQeqx4qO8FEbpWDP5wXs53C4HD4eOgNgswU0arOV4Yjkjm4ufpADIHlptFib
         izXQ54ln7FGCBcWrt9aBym44J2onav2NzTRADkkNUOyGWTg6TrWlefx/BNMFJIQN4RDT
         20xXMbrPVH0hnACk/no/hSvOKtaspJsbxR3cJ/EDZJZAwGUtW8Ccr4Yv4rM+WdlMLSah
         2BOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719844506; x=1720449306;
        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=eZww6N4FXnwd+gMZy4Nk8A9I2Qib6HFNI65vtKUOJiY=;
        b=jGwA87z/t8uos8HAwfcBCbrz28+Ui/MST43/Fhzn94bt05kQ+tobQsGo8uhaEKGfvJ
         4AS/w7uvQ6bCe1zBf5Al+V/BOIoyDMTw5rVhEv7E3N5AhGeSe9kfkOOtD7enD7F1vJsd
         aB5AQDQQe2etMqGcRb36e7ph23+A1Tq2lO8GtcyR7m5uwaEZwkmM1ZFQjFzLUfwgPzl3
         UtyEVZX3ow/xKaxSFLKR3zYFRMi0n+CvKD1pi+DL0XQ74pK7LlsK/kqvR2tshcFCj+2V
         c3Z/jXvbRL46EhVMtnIldqJWVWcQ5SybYv6bgr3SvedxGNtaIk1W7JERoQKK2g4lyljP
         QbGg==
X-Forwarded-Encrypted: i=1; AJvYcCXOTJolgd+/qDZ0Rn1bOblx44mOOGhThmZ1l/WyperI6KSoBYZuyB+Dztr0SZXUwKOiR6LroUTfUkfF8EWx/bBH6u6+ZJqy0Pi5PFd7nsA=
X-Gm-Message-State: AOJu0Ywc631G6j5wbUxJUYHuoGeE9KFkYIB9D2tmixEJ3ICDh9+ZJSEW
	Qr1fRQG/s/06lU3IPBHgKtXU74ofcXjdW2DhkCKy4guWJw90duFlgc4ysbSuxTGTVGctogK5RDC
	q3EW9/qc5XvsBSg6JcZdmnZY5b+g=
X-Google-Smtp-Source: AGHT+IHRLrN6RbgnMhN+GP4BrC6L0LhuTVoWZrJC+PAQoWWAqLNzUu/TDjwQ6ko3aN82hro5kiwQGWdRDG4be7Jle5o=
X-Received: by 2002:a05:6402:1e88:b0:57c:6d89:eaef with SMTP id
 4fb4d7f45d1cf-5879f3ac701mr5577176a12.18.1719844505325; Mon, 01 Jul 2024
 07:35:05 -0700 (PDT)
MIME-Version: 1.0
References: <20240529140739.1387692-1-edgar.iglesias@gmail.com>
 <20240529140739.1387692-3-edgar.iglesias@gmail.com> <ZoKnQLBwIwh004yy@l14>
 <CAJy5ezqdxQ_y_sCyP243yTfgOJfLh1COzN9Eg+PxxoaVeOh-mQ@mail.gmail.com> <CAJy5ezrSs8r=ibTgb_oURdFTDW07sVVBeU6Rw7jsM+iaqPLNgg@mail.gmail.com>
In-Reply-To: <CAJy5ezrSs8r=ibTgb_oURdFTDW07sVVBeU6Rw7jsM+iaqPLNgg@mail.gmail.com>
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Date: Mon, 1 Jul 2024 16:34:53 +0200
Message-ID: <CAJy5ezrPgUR3-gWK3Mfnc7iAgV3MEStSardY+0kkvHB+PHbe4w@mail.gmail.com>
Subject: Re: [PATCH v8 2/8] xen: mapcache: Unmap first entries in buckets
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: qemu-devel@nongnu.org, sstabellini@kernel.org, jgross@suse.com, 
	"Edgar E. Iglesias" <edgar.iglesias@amd.com>, Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000cf1678061c30803d"

--000000000000cf1678061c30803d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 1, 2024 at 4:30=E2=80=AFPM Edgar E. Iglesias <edgar.iglesias@gm=
ail.com>
wrote:

>
>
> On Mon, Jul 1, 2024 at 3:58=E2=80=AFPM Edgar E. Iglesias <edgar.iglesias@=
gmail.com>
> wrote:
>
>> On Mon, Jul 1, 2024 at 2:55=E2=80=AFPM Anthony PERARD <anthony.perard@va=
tes.tech>
>> wrote:
>>
>>> Hi all,
>>>
>>> Following this commit, a test which install Debian in a guest with OVMF
>>> as firmware started to fail. QEMU exit with an error when GRUB is
>>> running on the freshly installed Debian (I don't know if GRUB is
>>> starting Linux or not).
>>> The error is:
>>>     Bad ram offset ffffffffffffffff
>>>
>>> Some logs:
>>>
>>> http://logs.test-lab.xenproject.org/osstest/logs/186611/test-amd64-amd6=
4-xl-qemuu-ovmf-amd64/info.html
>>>
>>> Any idea? Something is trying to do something with the address "-1" whe=
n
>>> it shouldn't?
>>>
>>>
>> Hi Anothny,
>>
>> Yes, it looks like something is calling qemu_get_ram_block() on somethin=
g
>> that isn't mapped.
>> One possible path is in qemu_ram_block_from_host() but there may be
>> others.
>>
>> The following patch may help.
>> Any chance you could try to get a backtrace from QEMU when it failed?
>>
>> diff --git a/system/physmem.c b/system/physmem.c
>> index 33d09f7571..2669c4dbbb 100644
>> --- a/system/physmem.c
>> +++ b/system/physmem.c
>> @@ -2277,6 +2277,9 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool
>> round_offset,
>>          ram_addr_t ram_addr;
>>          RCU_READ_LOCK_GUARD();
>>          ram_addr =3D xen_ram_addr_from_mapcache(ptr);
>> +        if (ram_addr =3D=3D RAM_ADDR_INVALID) {
>> +            return NULL;
>> +        }
>>          block =3D qemu_get_ram_block(ram_addr);
>>          if (block) {
>>              *offset =3D ram_addr - block->offset;
>>
>>
>>
> One more thing, regarding this specific patch. I don't think we should
> clear the
> entire entry, the next field should be kept, otherwise we'll disconnect
> following
> mappings that will never be found again. IIUC, this could very well be
> causing the problem you see.
>
> Does the following make sense?
>
> diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> index 5f23b0adbe..e9df53c19d 100644
> --- a/hw/xen/xen-mapcache.c
> +++ b/hw/xen/xen-mapcache.c
> @@ -597,7 +597,14 @@ static void
> xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
>          pentry->next =3D entry->next;
>          g_free(entry);
>      } else {
> -        memset(entry, 0, sizeof *entry);
> +        /* Invalidate mapping.  */
> +        entry->paddr_index =3D 0;
> +        entry->vaddr_base =3D NULL;
> +        entry->size =3D 0;
> +        g_free(entry->valid_mapping);
> +        entry->valid_mapping =3D NULL;
> +        entry->flags =3D 0;
> +        /* Keep entry->next pointing to the rest of the list.  */
>      }
>  }
>
>
>

And here without double-freeing entry->valid_mapping:

diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 5f23b0adbe..667807b3b6 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -597,7 +597,13 @@ static void
xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
         pentry->next =3D entry->next;
         g_free(entry);
     } else {
-        memset(entry, 0, sizeof *entry);
+        /* Invalidate mapping.  */
+        entry->paddr_index =3D 0;
+        entry->vaddr_base =3D NULL;
+        entry->size =3D 0;
+        entry->valid_mapping =3D NULL;
+        entry->flags =3D 0;
+        /* Keep entry->next pointing to the rest of the list.  */
     }
 }

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Mon, Jul 1, 2024 at 4:30=E2=80=AFP=
M Edgar E. Iglesias &lt;<a href=3D"mailto:edgar.iglesias@gmail.com">edgar.i=
glesias@gmail.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);p=
adding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=
=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, Jul 1, 2024 =
at 3:58=E2=80=AFPM Edgar E. Iglesias &lt;<a href=3D"mailto:edgar.iglesias@g=
mail.com" target=3D"_blank">edgar.iglesias@gmail.com</a>&gt; wrote:<br></di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div d=
ir=3D"ltr">On Mon, Jul 1, 2024 at 2:55=E2=80=AFPM Anthony PERARD &lt;anthon=
y.perard@vates.tech&gt; wrote:<br></div><div class=3D"gmail_quote"><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px=
 solid rgb(204,204,204);padding-left:1ex">Hi all,<br>
<br>
Following this commit, a test which install Debian in a guest with OVMF<br>
as firmware started to fail. QEMU exit with an error when GRUB is<br>
running on the freshly installed Debian (I don&#39;t know if GRUB is<br>
starting Linux or not).<br>
The error is:<br>
=C2=A0 =C2=A0 Bad ram offset ffffffffffffffff<br>
<br>
Some logs:<br>
<a href=3D"http://logs.test-lab.xenproject.org/osstest/logs/186611/test-amd=
64-amd64-xl-qemuu-ovmf-amd64/info.html" rel=3D"noreferrer" target=3D"_blank=
">http://logs.test-lab.xenproject.org/osstest/logs/186611/test-amd64-amd64-=
xl-qemuu-ovmf-amd64/info.html</a><br>
<br>
Any idea? Something is trying to do something with the address &quot;-1&quo=
t; when<br>
it shouldn&#39;t?<br>
<br></blockquote><div><br></div><div>Hi Anothny,</div><div><br></div><div>Y=
es, it looks like something is calling=C2=A0qemu_get_ram_block() on somethi=
ng that isn&#39;t mapped.</div><div>One possible path is in=C2=A0qemu_ram_b=
lock_from_host() but there may be others.</div><div><br></div><div>The=C2=
=A0following patch may help.</div><div>Any chance you could try to get a ba=
cktrace from QEMU when it failed?</div><div><br></div><div>diff --git a/sys=
tem/physmem.c b/system/physmem.c<br>index 33d09f7571..2669c4dbbb 100644<br>=
--- a/system/physmem.c<br>+++ b/system/physmem.c<br>@@ -2277,6 +2277,9 @@ R=
AMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,<br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0ram_addr_t ram_addr;<br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0RCU_READ_LOCK_GUARD();<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ram_a=
ddr =3D xen_ram_addr_from_mapcache(ptr);<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0if=
 (ram_addr =3D=3D RAM_ADDR_INVALID) {<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0return NULL;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0block =3D qemu_get_ram_block(ram_addr);<br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0if (block) {<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0*offset =3D ram_addr - block-&gt;offset;<br></div><div><br></d=
iv><div><br></div></div></div></blockquote><div><br></div><div>One more thi=
ng, regarding this specific patch. I don&#39;t think we should clear the</d=
iv><div>entire entry, the next field should be kept, otherwise we&#39;ll di=
sconnect following</div><div>mappings that will never be found again. IIUC,=
 this could very well be causing the problem you see.</div><div><br></div><=
div>Does the following make sense?</div><div class=3D"gmail_quote"><br></di=
v>diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c<br>index 5f23b=
0adbe..e9df53c19d 100644<br>--- a/hw/xen/xen-mapcache.c<br>+++ b/hw/xen/xen=
-mapcache.c<br>@@ -597,7 +597,14 @@ static void xen_invalidate_map_cache_en=
try_unlocked(MapCache *mc,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pentry-&gt;=
next =3D entry-&gt;next;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0g_free(entry)=
;<br>=C2=A0 =C2=A0 =C2=A0} else {<br>- =C2=A0 =C2=A0 =C2=A0 =C2=A0memset(en=
try, 0, sizeof *entry);<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Invalidate mappi=
ng. =C2=A0*/<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0entry-&gt;paddr_index =3D 0;<b=
r>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0entry-&gt;vaddr_base =3D NULL;<br>+ =C2=A0 =
=C2=A0 =C2=A0 =C2=A0entry-&gt;size =3D 0;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0g=
_free(entry-&gt;valid_mapping);<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0entry-&gt;v=
alid_mapping =3D NULL;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0entry-&gt;flags =3D =
0;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Keep entry-&gt;next pointing to the r=
est of the list. =C2=A0*/<br>=C2=A0 =C2=A0 =C2=A0}<br>=C2=A0}<br><div>=C2=
=A0<br></div><div><br></div></div></div></blockquote><div><br></div><div><b=
r></div><div>And here without double-freeing entry-&gt;valid_mapping:</div>=
<div><br></div><div>diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcach=
e.c<br>index 5f23b0adbe..667807b3b6 100644<br>--- a/hw/xen/xen-mapcache.c<b=
r>+++ b/hw/xen/xen-mapcache.c<br>@@ -597,7 +597,13 @@ static void xen_inval=
idate_map_cache_entry_unlocked(MapCache *mc,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0pentry-&gt;next =3D entry-&gt;next;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0g_free(entry);<br>=C2=A0 =C2=A0 =C2=A0} else {<br>- =C2=A0 =C2=A0 =C2=
=A0 =C2=A0memset(entry, 0, sizeof *entry);<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0=
/* Invalidate mapping. =C2=A0*/<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0entry-&gt;p=
addr_index =3D 0;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0entry-&gt;vaddr_base =3D =
NULL;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0entry-&gt;size =3D 0;<br>+ =C2=A0 =C2=
=A0 =C2=A0 =C2=A0entry-&gt;valid_mapping =3D NULL;<br>+ =C2=A0 =C2=A0 =C2=
=A0 =C2=A0entry-&gt;flags =3D 0;<br>+ =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Keep en=
try-&gt;next pointing to the rest of the list. =C2=A0*/<br>=C2=A0 =C2=A0 =
=C2=A0}<br>=C2=A0}</div><div><br></div></div></div>

--000000000000cf1678061c30803d--


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 14:36:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 14:36:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751745.1159791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOI8j-0003cB-4q; Mon, 01 Jul 2024 14:36:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751745.1159791; Mon, 01 Jul 2024 14:36: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 1sOI8j-0003c4-1S; Mon, 01 Jul 2024 14:36:21 +0000
Received: by outflank-mailman (input) for mailman id 751745;
 Mon, 01 Jul 2024 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=FOPt=OB=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sOI8h-0003bw-T4
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 14:36:19 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4746e310-37b7-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 16:36:18 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 02F8F4EE0738;
 Mon,  1 Jul 2024 16:36: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: 4746e310-37b7-11ef-90a5-e314d9c70b13
MIME-Version: 1.0
Date: Mon, 01 Jul 2024 16:36:17 +0200
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, nicola.vetrini@bugseng.com,
 consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 "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>
Subject: Re: [PATCH 06/17] x86/EFI: address violations of MISRA C:2012
 Directive 4.10
Reply-To: alessandro.zucchelli@bugseng.com
Mail-Reply-To: alessandro.zucchelli@bugseng.com
In-Reply-To: <ZoK4f8wUdusqW_fA@mail-itl>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <0267af93ae969b67a77c3a9aca9f4ad6525de1b9.1719829101.git.alessandro.zucchelli@bugseng.com>
 <ZoK4f8wUdusqW_fA@mail-itl>
Message-ID: <a61beb685bea459c0035ae77a5d05fbc@bugseng.com>
X-Sender: alessandro.zucchelli@bugseng.com
Organization: BUGSENG Srl
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2024-07-01 16:09, Marek Marczykowski-Górecki wrote:
> On Mon, Jul 01, 2024 at 03:36:01PM +0200, Alessandro Zucchelli wrote:
>> From: Simone Ballarin <simone.ballarin@bugseng.com>
>> 
>> Add inclusion guard to address violations of
>> MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
>> to prevent the contents of a header file being included more than
>> once").
>> 
>> Mechanical change.
>> 
>> Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
>> Signed-off-by: Maria Celeste Cesario 
>> <maria.celeste.cesario@bugseng.com>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
>> 
>> ---
>> Changes in v4:
>> - Modified inclusion guard.
>> Changes in v3:
>> - remove trailing underscores
>> - change inclusion guard name to adhere to the new standard
>> Changes in v2:
>> - remove changes in "xen/arch/x86/efi/efi-boot.h"
>> 
>> Note:
>> Changes in efi-boot.h have been removed since the file is
>> intenteded to be included by common/efi/boot.c only. This motivation
>> is not enough to raise a deviation record, so the violation is
>> still present.
> 
> I'm confused by this comment. It says changes in efi-boot.h have been
> removed, yet the patch does include them.

The note referes to the "Changes in v2".
You can ignore it.

> 
>> ---
>>  xen/arch/x86/efi/efi-boot.h | 7 +++++++
>>  xen/arch/x86/efi/runtime.h  | 5 +++++
>>  2 files changed, 12 insertions(+)
>> 
>> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
>> index f282358435..c6be744f2b 100644
>> --- a/xen/arch/x86/efi/efi-boot.h
>> +++ b/xen/arch/x86/efi/efi-boot.h
>> @@ -3,6 +3,11 @@
>>   * is intended to be included by common/efi/boot.c _only_, and
>>   * therefore can define arch specific global variables.
>>   */
>> +
>> +#ifndef X86_EFI_EFI_BOOT_H
>> +#define X86_EFI_EFI_BOOT_H
>> +
>> +
>>  #include <xen/vga.h>
>>  #include <asm/e820.h>
>>  #include <asm/edd.h>
>> @@ -912,6 +917,8 @@ void asmlinkage __init efi_multiboot2(EFI_HANDLE 
>> ImageHandle,
>>      efi_exit_boot(ImageHandle, SystemTable);
>>  }
>> 
>> +#endif /* X86_EFI_EFI_BOOT_H */
>> +
>>  /*
>>   * Local variables:
>>   * mode: C
>> diff --git a/xen/arch/x86/efi/runtime.h b/xen/arch/x86/efi/runtime.h
>> index 77866c5f21..88ab5651e9 100644
>> --- a/xen/arch/x86/efi/runtime.h
>> +++ b/xen/arch/x86/efi/runtime.h
>> @@ -1,3 +1,6 @@
>> +#ifndef X86_EFI_RUNTIME_H
>> +#define X86_EFI_RUNTIME_H
>> +
>>  #include <xen/domain_page.h>
>>  #include <xen/mm.h>
>>  #include <asm/atomic.h>
>> @@ -17,3 +20,5 @@ void efi_update_l4_pgtable(unsigned int l4idx, 
>> l4_pgentry_t l4e)
>>      }
>>  }
>>  #endif
>> +
>> +#endif /* X86_EFI_RUNTIME_H */
>> --
>> 2.34.1
>> 

-- 
Alessandro Zucchelli, B.Sc.

Software Engineer, BUGSENG (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 14:47:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 14:47:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751755.1159801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOIJh-0005i0-5n; Mon, 01 Jul 2024 14:47:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751755.1159801; Mon, 01 Jul 2024 14:47: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 1sOIJh-0005ht-1S; Mon, 01 Jul 2024 14:47:41 +0000
Received: by outflank-mailman (input) for mailman id 751755;
 Mon, 01 Jul 2024 14: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=Bf3o=OB=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sOIJf-0005gv-BD
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 14:47:39 +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 dbccd4ac-37b8-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 16:47:37 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-57d1d45ba34so527696a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 07:47:37 -0700 (PDT)
Received: from EMEAENGAAD91498.citrite.net ([193.240.71.118])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72aaf63390sm338228166b.69.2024.07.01.07.47.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 07:47: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: dbccd4ac-37b8-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1719845256; x=1720450056; 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=WKR4EGxyBOkPJYDl2bmrKCnjrBiSKq+/tdH401KYhs4=;
        b=O3rdkwZzqLD5C/Purq4LquwjtXh80rqxWCLprKH07jiAHPopOUOkrQRaibmbTyKCol
         pZgUrkede+YKzXIDk1sonmXOmGhCHVLYfSJ0U99JQYsySeq4/pHEHmF1WK/dsGCIv+nG
         kh8dcZAaJ4tMVdxDnzKVjvLqqDfMrncbilx1E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719845256; x=1720450056;
        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=WKR4EGxyBOkPJYDl2bmrKCnjrBiSKq+/tdH401KYhs4=;
        b=iLdxmS/G94xZej2lIs11rHpqWwEuyESC2W+tLIFUdu2Cx/xwMv16Q/9Yqi9n04lGvp
         pedamGQHwjv54kteMsynpjavkquVitE+ufbP+ab8epumDnr+4fgMvJP2bESDRtSmzDCT
         ADq0DJ2I3Ypn+eSx/Tx5+rDjV3n7DDrUlVAOhdSL5I4Wc/ILdtxR9pOOWdRD1r613pat
         JIcuaHWhV2CdAtksGXfxYIV2iQhDhy2Sop44uNhBb2NXDO3ypQyl3uqktdGlpHg6qJyZ
         dEWEtggop7KEZzs+M5m1J5z2AeKKpOwta9SXlrCjr+H+p/ef4k/eIbu04Sv5MdsAplqP
         L24A==
X-Gm-Message-State: AOJu0YxQZ17xa86lMeTImW4yvLo7hkVA9hUI+o9yG5uioc7xkdYOrTp1
	CgCoHebeHxmgGk1lH9s5uLzhUKASbO4Wj4vzOhpQYl7wzwDo5l27NQWxefk4lqdWFMHLNgifOaY
	Z
X-Google-Smtp-Source: AGHT+IHzNfxepJc4K7x3+wQfr+a9nNcTvTR10adLcblwMSyl1ZRP+VMbrXv+H0arsbjkgxKlOSFEAg==
X-Received: by 2002:a17:907:2d08:b0:a6f:5fc2:fe8b with SMTP id a640c23a62f3a-a75143e71c8mr516507266b.32.1719845256012;
        Mon, 01 Jul 2024 07:47:36 -0700 (PDT)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [XEN PATCH v2] tools/misc: xen-hvmcrash: Inject #DF instead of overwriting RIP
Date: Mon,  1 Jul 2024 15:47:17 +0100
Message-Id: <2cd2f12d49f75b8870c964fa86d29f0e4e18b155.1719840698.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Bcc: Matthew Barnes <matthew.barnes@cloud.com>
Content-Transfer-Encoding: 8bit

xen-hvmcrash would previously save records, overwrite the instruction
pointer with a bogus value, and then restore them to crash a domain
just enough to cause the guest OS to memdump.

This approach is found to be unreliable when tested on a guest running
Windows 10 x64, with some executions doing nothing at all.

Another approach would be to trigger NMIs. This approach is found to be
unreliable when tested on Linux (Ubuntu 22.04), as Linux will ignore
NMIs if it is not configured to handle such.

Injecting a double fault abort to all vCPUs is found to be more
reliable at crashing and invoking memdumps from Windows and Linux
domains.

This patch modifies the xen-hvmcrash tool to inject #DF to all vCPUs
belonging to the specified domain, instead of overwriting RIP.

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
Changes in v2:
- Use xendevicemodel API instead of legacy devicemodel API
- Return error status code if no vcpus could be injected
- Use existing exception vector macro defined in `x86-defns.h`
- Clean up unnecessary headers
- Fix NULL build errors
---
 tools/misc/Makefile       |  2 +-
 tools/misc/xen-hvmcrash.c | 90 ++++++++-------------------------------
 2 files changed, 19 insertions(+), 73 deletions(-)

diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index 66d0d6b09029..c26e544e8393 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -81,7 +81,7 @@ xen-hvmctx: xen-hvmctx.o
 	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
 
 xen-hvmcrash: xen-hvmcrash.o
-	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
+	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxendevicemodel) $(APPEND_LDFLAGS)
 
 xen-memshare: xen-memshare.o
 	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
diff --git a/tools/misc/xen-hvmcrash.c b/tools/misc/xen-hvmcrash.c
index 1d058fa40a47..efa47c9dfec8 100644
--- a/tools/misc/xen-hvmcrash.c
+++ b/tools/misc/xen-hvmcrash.c
@@ -24,36 +24,25 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#include <inttypes.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <unistd.h>
 #include <string.h>
 #include <errno.h>
-#include <limits.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <arpa/inet.h>
 
 #include <xenctrl.h>
-#include <xen/xen.h>
-#include <xen/domctl.h>
-#include <xen/hvm/save.h>
+#include <xendevicemodel.h>
+
+#include <xen/asm/x86-defns.h>
 
 int
 main(int argc, char **argv)
 {
     int domid;
     xc_interface *xch;
+    xendevicemodel_handle *dmod;
     xc_domaininfo_t dominfo;
-    int ret;
-    uint32_t len;
-    uint8_t *buf;
-    uint32_t off;
-    struct hvm_save_descriptor *descriptor;
+    int vcpu_id, ret;
+    bool injected = false;
 
     if (argc != 2 || !argv[1] || (domid = atoi(argv[1])) < 0) {
         fprintf(stderr, "usage: %s <domid>\n", argv[0]);
@@ -77,65 +66,22 @@ main(int argc, char **argv)
         exit(1);
     }
 
-    ret = xc_domain_pause(xch, domid);
-    if (ret < 0) {
-        perror("xc_domain_pause");
-        exit(-1);
-    }
-
-    /*
-     * Calling with zero buffer length should return the buffer length
-     * required.
-     */
-    ret = xc_domain_hvm_getcontext(xch, domid, 0, 0);
-    if (ret < 0) {
-        perror("xc_domain_hvm_getcontext");
-        exit(1);
-    }
-    
-    len = ret;
-    buf = malloc(len);
-    if (buf == NULL) {
-        perror("malloc");
-        exit(1);
-    }
-
-    ret = xc_domain_hvm_getcontext(xch, domid, buf, len);
-    if (ret < 0) {
-        perror("xc_domain_hvm_getcontext");
-        exit(1);
-    }
-
-    off = 0;
-
-    while (off < len) {
-        descriptor = (struct hvm_save_descriptor *)(buf + off);
-
-        off += sizeof (struct hvm_save_descriptor);
-
-        if (descriptor->typecode == HVM_SAVE_CODE(CPU)) {
-            HVM_SAVE_TYPE(CPU) *cpu;
+    dmod = xc_interface_dmod_handle(xch);
 
-            /* Overwrite EIP/RIP with some recognisable but bogus value */
-            cpu = (HVM_SAVE_TYPE(CPU) *)(buf + off);
-            printf("CPU[%d]: RIP = %" PRIx64 "\n", descriptor->instance, cpu->rip);
-            cpu->rip = 0xf001;
-        } else if (descriptor->typecode == HVM_SAVE_CODE(END)) {
-            break;
+    for (vcpu_id = 0; vcpu_id <= dominfo.max_vcpu_id; vcpu_id++) {
+        printf("Injecting #DF to vcpu ID #%d...\n", vcpu_id);
+        ret = xendevicemodel_inject_event(dmod, domid, vcpu_id,
+                                X86_EXC_DF,
+                                XEN_DMOP_EVENT_hw_exc, 0, 0, 0);
+        if (ret < 0) {
+            fprintf(stderr, "Could not inject #DF to vcpu ID #%d: %s\n", vcpu_id, strerror(errno));
+            continue;
         }
-
-        off += descriptor->length;
-    }
-
-    ret = xc_domain_hvm_setcontext(xch, domid, buf, len);
-    if (ret < 0) {
-        perror("xc_domain_hvm_setcontext");
-        exit(1);
+        injected = true;
     }
 
-    ret = xc_domain_unpause(xch, domid);
-    if (ret < 0) {
-        perror("xc_domain_unpause");
+    if (!injected) {
+        fprintf(stderr, "Could not inject #DF to any vcpu!\n");
         exit(1);
     }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 15:05:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 15:05:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751762.1159810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOIar-0000nu-Fg; Mon, 01 Jul 2024 15:05:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751762.1159810; Mon, 01 Jul 2024 15: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 1sOIar-0000nn-Cy; Mon, 01 Jul 2024 15:05:25 +0000
Received: by outflank-mailman (input) for mailman id 751762;
 Mon, 01 Jul 2024 15: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=fTSe=OB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOIap-0000nh-7Z
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 15:05:23 +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 566a4482-37bb-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 17:05:22 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a7194ce90afso360228066b.2
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 08:05:22 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72ab08d0ccsm347237366b.177.2024.07.01.08.05.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 08:05: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: 566a4482-37bb-11ef-90a5-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719846321; x=1720451121; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=uDZCfJL8PUA0fPA8bheB0jCWGv7RkfhMHMjt+3SbwdA=;
        b=SgTKzOAat7sSxhWsFtCVbT++Vx0w8mPF3MRjulD6FnwWbNuOLgJXCTdmcEK5tVrMMW
         wXFs9cwwAnifjLdztmySNRr6Nfu6CZIr02fRz2pDyAmXUerAqCNAMXgITzYDqOsob/ko
         asJ1zmY/kh1BOGV0tUg+L2WmFPdQ+0+NKThPSqEEUpZn302D+d234ENGxVzeOd2/hIe0
         1q0K2L5LTWLinhbru3b9ReRg5BB7SZPGAVpT8/3MYAsbtNDd9izPlh+39NDT0WehrnIn
         LQA1qWq9Umxvpwwp50VfMpwkXM3jrqpaxr3S8Pzt5awjI/9ohUhEleoC2ZKZ1pQJ3XV/
         cdiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719846321; x=1720451121;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=uDZCfJL8PUA0fPA8bheB0jCWGv7RkfhMHMjt+3SbwdA=;
        b=o2fApsusqjeOqNM5L8bWNT8rhgpwj4EYcXjJCvWtgbzl7P6SOgGjMswif0HdcTgY/5
         Gix1lJS+zpGBT0vxZ3H5nmNAqJRRny6WFgveDTuNGr3AQT+YAZHugWOp7NN/cl4CIBP+
         DOW/mRmN4fnKrW3UYyehkY76FFtt80n4QVGmdKCuTp7Ckykko5KDlrZE0wsJe1bYrn2/
         1ZGbAACCoBAbKQlbqDbj9PGES3vjCwdxY8Cvl6AUmXBnN6jOh4IbDg1OVly1QN/74YYB
         /qYJG0MCSYGMvgRuGfiUnSgn+2unqhIDD9AD87DpfMqd9BoAYEmABk+sRc4oRCZXqrBE
         YJoA==
X-Gm-Message-State: AOJu0YzXaPl/nLmR+VuO+uzlmEBKNupapMY8vPe1bHFWCrJ8fDEwz1yU
	Rk8m92qmDcY/AsQL0Dm1rrS1kGQ/euiUX67+e6oyc1FctB9sUcFd
X-Google-Smtp-Source: AGHT+IGgyenmxdWZ18csOy+hdpNaXUiWTz+D5x3kMPUpkIdclWgyei12CRvqiJtRb3UctdmRdQjOIw==
X-Received: by 2002:a17:906:c798:b0:a72:5967:b3a with SMTP id a640c23a62f3a-a751441ea13mr309577266b.22.1719846321076;
        Mon, 01 Jul 2024 08:05:21 -0700 (PDT)
Message-ID: <47c0825308c588ab5089ecde81ceaed8334ec01f.camel@gmail.com>
Subject: Re: [PATCH v3 for-4.19 2/3] pirq_cleanup_check() leaks
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Roger Pau =?ISO-8859-1?Q?Monn=E9?=
	 <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Date: Mon, 01 Jul 2024 17:05:19 +0200
In-Reply-To: <2d5e700c-22a1-47ad-912f-d242c9fe122f@suse.com>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
	 <5641f8eb-5736-8ccc-122b-b3b47c1bac28@suse.com> <ZoJu3jcsiCWwOhBl@macbook>
	 <7d51b6b7-affb-46fd-98dc-b54d3842f6c2@suse.com> <ZoKPUotSg4HOlRzJ@macbook>
	 <2d5e700c-22a1-47ad-912f-d242c9fe122f@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-01 at 15:21 +0200, Jan Beulich wrote:
> On 01.07.2024 13:13, Roger Pau Monn=C3=A9 wrote:
> > On Mon, Jul 01, 2024 at 11:47:34AM +0200, Jan Beulich wrote:
> > > On 01.07.2024 10:55, Roger Pau Monn=C3=A9 wrote:
> > > > On Thu, Jul 27, 2023 at 09:38:29AM +0200, Jan Beulich wrote:
> > > > > Its original introduction had two issues: For one the
> > > > > "common" part of
> > > > > the checks (carried out in the macro) was inverted.
> > > >=20
> > > > Is the current logic in evtchn_close() really malfunctioning?
> > >=20
> > > First: I'm getting the impression that this entire comment
> > > doesn't relate
> > > to the part of the description above, but to the 2nd paragraph
> > > further
> > > down. Otherwise I'm afraid I may not properly understand your
> > > question,
> > > and hence my response below may not make any sense at all.
> > >=20
> > > > pirq->evtchn =3D 0;
> > > > pirq_cleanup_check(pirq, d1); <- cleanup for PV domains
> > > > if ( is_hvm_domain(d1) && domain_pirq_to_irq(d1, pirq->pirq) >
> > > > 0 )
> > > > =C2=A0=C2=A0=C2=A0 unmap_domain_pirq_emuirq(d1, pirq->pirq); <- cle=
anup for
> > > > HVM domains
> > > >=20
> > > > It would seem to me the pirq_cleanup_check() call just after
> > > > setting
> > > > evtchn =3D 0 was done to account for PV domains, while the second
> > > > (hidden) pirq_cleanup_check() call in
> > > > unmap_domain_pirq_emuirq() would
> > > > do the cleanup for HVM domains.
> > > >=20
> > > > Maybe there's something that I'm missing, I have to admit the
> > > > PIRQ
> > > > logic is awfully complicated, even more when we mix the HVM
> > > > PIRQ
> > > > stuff.
> > >=20
> > > If you look at pirq_cleanup_check() you'll notice that it takes
> > > care
> > > of one HVM case as well (the not emuirq one, i.e. particularly
> > > PVH,
> > > but note also how physdev_hvm_map_pirq() calls
> > > map_domain_emuirq_pirq()
> > > only conditionally). Plus the crucial aspect of the 2nd paragraph
> > > of
> > > the description is that past calling pirq_cleanup_check() it is
> > > not
> > > really valid anymore to (blindly) de-reference the struct pirq
> > > pointer
> > > we hold in hands. The is_hvm_domain() qualification wasn't
> > > enough,
> > > since - as said - it's only one of the possibilities that would
> > > allow
> > > the pirq to remain legal to use past the call, when having taken
> > > the
> > > function's
> > >=20
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( pirq->arch.hvm.emuirq=
 !=3D IRQ_UNBOUND )
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 re=
turn;
> > >=20
> > > path. A 2nd would be taking the
> > >=20
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( !pt_pirq_cleanup_chec=
k(&pirq->arch.hvm.dpci) )
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 re=
turn;
> > >=20
> > > path (i.e. a still in use pass-through IRQ), but the 3rd would
> > > still
> > > end in the struct pirq being purged even for HVM.
> >=20
> > Right, I was missing that if pirq is properly freed then further
> > usages of it after the pirq_cleanup_check() would be use after
> > free.
> >=20
> > > > > And then after
> > > > > removal from the radix tree the structure wasn't scheduled
> > > > > for freeing.
> > > > > (All structures still left in the radix tree would be freed
> > > > > upon domain
> > > > > destruction, though.)
> > > >=20
> > > > So if my understanding is correct, we didn't have a leak due to
> > > > the
> > > > missing free_pirq_struct() because the inverted check in
> > > > pirq_cleanup_check() macro prevented the removal from the radix
> > > > tree,
> > > > and so stale entries would be left there and freed at domain
> > > > destruction?
> > >=20
> > > That's the understanding I had come to, yes. What I wasn't
> > > entirely
> > > sure about (see the 2nd post-commit-message remark) is why the
> > > entry
> > > being left in the radix tree never caused any problems.
> > > Presumably
> > > that's a result of pirq_get_info() first checking whether an
> > > entry is
> > > already there, allocating a new one only for previously empty
> > > slots.
> >=20
> > Yes, I came to the same conclusion, that not freeing wasn't an
> > issue
> > as Xen would re-use the old entry.=C2=A0 Hopefully it's clean enough to
> > not
> > cause issues when re-using.
> >=20
> > > > > --- a/xen/common/event_channel.c
> > > > > +++ b/xen/common/event_channel.c
> > > > > @@ -711,9 +711,10 @@ int evtchn_close(struct domain *d1, int
> > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 if ( !is_hvm_domain(d1) )
> > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pirq_guest_unbind(d1, pirq);
> > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 pirq->evtchn =3D 0;
> > > > > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 pirq_cleanup_check(pirq, d1);
> > > > > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 if ( is_hvm_domain(d1) && domain_pirq_to_irq(d1,
> > > > > pirq->pirq) > 0 )
> > > > > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 unmap_domain_pirq_emuirq(d1, pirq->pirq);
> > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 if ( !is_hvm_domain(d1) ||
> > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 domain_pirq_to_irq(d1, pirq->pirq) <=3D 0=
 ||
> > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unmap_domain_pirq_emuirq(d1, pirq->pirq) =
<
> > > > > 0 )
> > > >=20
> > > > pirq_cleanup_check() already calls pirq_cleanup_check()
> > > > itself.=C2=A0 Could
> > > > you please add a comment to note that
> > > > unmap_domain_pirq_emuirq()
> > > > succeeding implies the call to pirq_cleanup_check() has already
> > > > been
> > > > done?
> > > >=20
> > > > Otherwise the logic here looks unbalanced by skipping the
> > > > pirq_cleanup_check() when unmap_domain_pirq_emuirq() succeeds.
> > >=20
> > > Sure, added:
> > >=20
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 /*
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 * The successful path of
> > > unmap_domain_pirq_emuirq() will have
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 * called pirq_cleanup_check() already.
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 */
> >=20
> > With that added:
> >=20
> > Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>=20
> Thanks Roger.
>=20
> Oleksii - would you please consider giving this long-standing bug fix
> a
> release ack?
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 15:06:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 15:06:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751766.1159821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOIbr-0001Hj-PL; Mon, 01 Jul 2024 15:06:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751766.1159821; Mon, 01 Jul 2024 15:06: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 1sOIbr-0001Hc-MN; Mon, 01 Jul 2024 15:06:27 +0000
Received: by outflank-mailman (input) for mailman id 751766;
 Mon, 01 Jul 2024 15:06: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=fTSe=OB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOIbq-0001FV-I6
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 15:06:26 +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 7c867e78-37bb-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 17:06:26 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-57cb9a370ddso587038a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 08:06:26 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58612c834ecsm4492325a12.12.2024.07.01.08.06.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 08:06: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: 7c867e78-37bb-11ef-90a5-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719846385; x=1720451185; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=ZH1ldReEuoEkEkYtz/pblFKwQj/JF1FyCey2xzRmtKY=;
        b=f7bUbASmULwn+bCZKVuFjUfPGZL/rqgjcKpYatHJv8ivOZn0dwCPzUTJZ7YLFekEt5
         qBtNz54gb5oNzKFXwnhCC/B4NwD3nzkZ/SmZzdPYyeVppHTDc0SN/0xDtq6Q/TbAtF7k
         tpVR0fsujE6Pjy+NbS9PW0juBFNjeSEKYvlen/tZkB8m2hlElsaO3y4XKnxP3i+i/jL2
         J2ph8tpmDHtl7bQr+KDgwZtZ2Cf8vV3ScxIMmc97/eYtfTCKf4ONZasNTwR48wZLTEr3
         Wf6/5G+GUfhkFpGN321e2TLEDIssaMZOolzTW9I9lGxVM9DFCDnKel0PTmbyP9EWoVzw
         BXEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719846385; x=1720451185;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ZH1ldReEuoEkEkYtz/pblFKwQj/JF1FyCey2xzRmtKY=;
        b=LD0C/o3Q68ZP3wf7oZ1mGFewElFkdjDU9SL9O0Oht/Y6c2l2MhQ2ArKHs3TKg17rO8
         BqUSjPIxVheAWF6+0Z9PaC4zolWuq07X/Gkiwxjy1J6qC9c/3yLFkmdsJi1/g0doCZXi
         4ojotn191T3K7lw+Y0rl9c2cu3MqU/Zr+MKt7evuXOkWpPbOakc2rZLeDBLeUDWdpK7a
         +LPzi0/RU0RA4w7KmSX3VsUIP6mnQq+5zoGBgZSMpL0N6LmG0VharhkipOQF3sa29qxY
         VpiyyKzo5I+W5jdqq9rF8hF0fGJpELcuQtD2UGfdt9YLMqNx4omCc/Sk/fe1JYOPlqGg
         GUTQ==
X-Forwarded-Encrypted: i=1; AJvYcCVbqmc5RqTmvneSEnHzXYqKn96wJlUGULbzT0jPxYAU9N9UjC5oiHLLTx7C6fkkAwOt5Xys/MFugqbO6BZ80VbTnzqAivBNr0UFm0nm9aw=
X-Gm-Message-State: AOJu0Yw5tti25D5aT9xCtC8SeW8ZbkbfvTjo0dQcEhxZmeTftxv+kckG
	yURmMMdre+rynKdzts+SKpbOU1A7Pil3M8NMoyt5GXUCZbNrb0tn
X-Google-Smtp-Source: AGHT+IGPW80uyCnRyaAuyv1t/9vvhWajwTUNUHLRUBVckQPdEZJEvkJXNUoSB/lTxcwIg1hj/wY0SQ==
X-Received: by 2002:a05:6402:1ec3:b0:584:a6f8:c0c5 with SMTP id 4fb4d7f45d1cf-5879be9ac58mr4867343a12.0.1719846384891;
        Mon, 01 Jul 2024 08:06:24 -0700 (PDT)
Message-ID: <d4bbec5001a49c4032a8418373edb06fd17d1e65.camel@gmail.com>
Subject: Re: [PATCH for-4.19(?) 0/3] tools/libxs: More CLOEXEC fixes
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony@xenproject.org>, Juergen Gross
 <jgross@suse.com>,  Roger Pau =?ISO-8859-1?Q?Monn=E9?=
 <roger.pau@citrix.com>, Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Mon, 01 Jul 2024 17:06:23 +0200
In-Reply-To: <20240628143116.1044976-1-andrew.cooper3@citrix.com>
References: <20240628143116.1044976-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Fri, 2024-06-28 at 15:31 +0100, Andrew Cooper wrote:
> More fixes to CLOEXEC handling in libxenstore.=C2=A0 For 4.19, because th=
e
> first
> attempt to fix this wasn't complete.
>=20
> libxl is far worse, but I don't have time to get started on that
> mess.
>=20
> Andrew Cooper (3):
> =C2=A0 tools/libxs: Fix CLOEXEC handling in get_dev()
> =C2=A0 tools/libxs: Fix CLOEXEC handling in get_socket()
> =C2=A0 tools/libxs: Fix CLOEXEC handling in xs_fileno()
>=20
> =C2=A0tools/config.h.in=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 3 ++
> =C2=A0tools/configure=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 12 ++++++++
> =C2=A0tools/configure.ac=C2=A0=C2=A0=C2=A0 |=C2=A0 2 ++
> =C2=A0tools/libs/store/xs.c | 68 ++++++++++++++++++++++++++++++++++------=
-
> --
> =C2=A04 files changed, 72 insertions(+), 13 deletions(-)
>=20
For the whole series:
 Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 15:07:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 15:07:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751774.1159831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOIcq-0001sq-4j; Mon, 01 Jul 2024 15:07:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751774.1159831; Mon, 01 Jul 2024 15:07:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOIcq-0001sj-1Y; Mon, 01 Jul 2024 15:07:28 +0000
Received: by outflank-mailman (input) for mailman id 751774;
 Mon, 01 Jul 2024 15:07: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=kQX2=OB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOIcp-0001FV-2s
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 15:07:27 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a06fbf57-37bb-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 17:07:26 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ebe6495aedso32688841fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 08:07: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
 d9443c01a7336-1fac11d8c52sm65750745ad.112.2024.07.01.08.07.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 08:07: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: a06fbf57-37bb-11ef-90a5-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719846446; x=1720451246; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Wubt1F8koOluR+s4Dac+btsWfhFN0kpyqeEKNbAtqRM=;
        b=g899cMlOuE/V1B785/HgqSb8Xf7hxfBPi4H96/y77BXedlAgASmm2+CKkMjsdKuO4a
         w4dKeNn5nvZN3il3YBmNSmSrp5eq+IXjfRJiDD0hXvdX8m7zQYARKKWIFcNkGw0+zLrD
         Q/hZqoTG5SFg/s4E9HVyJNP91H4zsH68mOWVBKh6AiWI4VkxJCGb1fwTVTT/SgTAdBWY
         fe2VIWo6DrBReYHdcb/St815oz9yxR+uHFt3+Muj4xfJrnWEuTp0CoK04iierwdZzBD9
         r5PpnrKEAW9NReaOAFa/4gfxY4lm6fQ6ennca03No8JiiJfu1nQB0y2GGC4tD5p6cygX
         DlFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719846446; x=1720451246;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Wubt1F8koOluR+s4Dac+btsWfhFN0kpyqeEKNbAtqRM=;
        b=H0qPD+wdaw10RGcoosPRwuV6XMVHoa5xwaomsfEqDJVVYpJ4WanO7K6OOK7STYtyXP
         AAKGjUBFGfJIEnshnhV6Qim5RWgE43Qs39HyOTRkrVKxi3PpLgWk8bQ3kJ1MkiAoh/sa
         qLuU1yhSe5hA52m4FKARwpHIktntt8gj/N8SiJULSXVKTjd2kdRFjehb/vL5egtITWDY
         yDTiOUO6JApXl7RR/8qDvstVxcK3qFCOksexJURAxOrPzcs1VNKNiqxfKnBgfFOvdaVd
         aHymxk3s/s61bZt39zk/mhUlVBvRxiikt3MH1BVnz6NN858omxz4ONTRhWXJaSINQWtC
         /i3g==
X-Gm-Message-State: AOJu0Yyh8OO68NNwsN1e1pIqqKgCww/zzaUs92fBi7wOBoCDnA9OeM69
	fimC6FTjft5l98RPBi7xv1Iim99+WDk4lkOmehnLwSxTk43BUn/skEWraPapIA==
X-Google-Smtp-Source: AGHT+IGbLN4Bm0AgJFWlPAMYbJ7Myoz/BYcjtb6W0Htqmk7n5PdXscjKH/8bRygEzII/+OnXhqzKsg==
X-Received: by 2002:a05:651c:2c6:b0:2ee:5b64:b471 with SMTP id 38308e7fff4ca-2ee5e3b3313mr33655631fa.30.1719846445701;
        Mon, 01 Jul 2024 08:07:25 -0700 (PDT)
Message-ID: <938e5bd1-4523-4b49-80fa-1c3331587972@suse.com>
Date: Mon, 1 Jul 2024 17:07:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] cmdline: document and enforce "extra_guest_irqs"
 upper bounds
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>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <3c3a1d0c-06f2-a392-b2f9-381bed5c5e7b@suse.com> <ZoJ9Bd2kg3IQ0Z28@macbook>
 <8ab71a85-6056-4c4f-8513-a21c061a176d@suse.com> <ZoKvP6StEbMTgjrY@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZoKvP6StEbMTgjrY@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.07.2024 15:29, Roger Pau Monné wrote:
> On Mon, Jul 01, 2024 at 12:40:35PM +0200, Jan Beulich wrote:
>> On 01.07.2024 11:55, Roger Pau Monné wrote:
>>> On Thu, Jul 27, 2023 at 09:38:55AM +0200, Jan Beulich wrote:
>>>> --- a/xen/arch/x86/io_apic.c
>>>> +++ b/xen/arch/x86/io_apic.c
>>>> @@ -2663,18 +2663,21 @@ void __init ioapic_init(void)
>>>>             nr_irqs_gsi, nr_irqs - nr_irqs_gsi);
>>>>  }
>>>>  
>>>> -unsigned int arch_hwdom_irqs(domid_t domid)
>>>> +unsigned int arch_hwdom_irqs(const struct domain *d)
>>>
>>> While at it, should this be __hwdom_init?
>>
>> It indeed can be, so I've done this for v4.
>>
>>> I'm fine with changing the function to take a domain parameter...
>>>
>>>>  {
>>>>      unsigned int n = fls(num_present_cpus());
>>>>  
>>>> -    if ( !domid )
>>>> +    if ( is_system_domain(d) )
>>>> +        return PAGE_SIZE * BITS_PER_BYTE;
>>>
>>> ... but why do we need a function call just to get a constant value?
>>> Wouldn't this better be a define in a header?
>>
>> Would be an option, but would result in parts of the logic living is
>> distinct places.
>>
>>>> +
>>>> +    if ( !d->domain_id )
>>>>          n = min(n, dom0_max_vcpus());
>>>>      n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, nr_irqs);
>>>>  
>>>>      /* Bounded by the domain pirq eoi bitmap gfn. */
>>>>      n = min_t(unsigned int, n, PAGE_SIZE * BITS_PER_BYTE);
>>>
>>> So that could also use the same constant here?
> 
> I would have a slight preference for PAGE_SIZE * BITS_PER_BYTE being
> defined inside of this function as:
> 
> /* Bounded by the domain pirq eoi bitmap gfn. */
> const unsigned int max_irqs = PAGE_SIZE * BITS_PER_BYTE;
> 
> Or similar for clarity purposes.

Can do, sure.

> While at it, I've noticed that PHYSDEVOP_pirq_eoi_gmfn_v{1,2} is not
> available to HVM guests (not even when exposing PIRQ support) and
> hence I wonder if we should special case PVH dom0, but maybe it's best
> to deal with this properly rather than hacking something special
> just for PVH dom0.  At the end of the day the current limit is high
> enough to not cause issues on current systems I would expect.

Oh, so entirely the other way around than mentioned when we talked, once
again due to the filtering in hvm/hypercall.h that I keep forgetting. So
in principle we could avoid the bounding for HVM. Just that right now
extra_domU_irqs covers both PV and HVM, and would hence need splitting
first.

>>>> --- a/xen/common/domain.c
>>>> +++ b/xen/common/domain.c
>>>> @@ -693,7 +693,7 @@ struct domain *domain_create(domid_t dom
>>>>              d->nr_pirqs = nr_static_irqs + extra_domU_irqs;
>>>>          else
>>>>              d->nr_pirqs = extra_hwdom_irqs ? nr_static_irqs + extra_hwdom_irqs
>>>> -                                           : arch_hwdom_irqs(domid);
>>>> +                                           : arch_hwdom_irqs(d);
>>>>          d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
>>>>  
>>>>          radix_tree_init(&d->pirq_tree);
>>>> @@ -819,6 +819,24 @@ void __init setup_system_domains(void)
>>>>      if ( IS_ERR(dom_xen) )
>>>>          panic("Failed to create d[XEN]: %ld\n", PTR_ERR(dom_xen));
>>>>  
>>>> +#ifdef CONFIG_HAS_PIRQ
>>>> +    /* Bound-check values passed via "extra_guest_irqs=". */
>>>> +    {
>>>> +        unsigned int n = max(arch_hwdom_irqs(dom_xen), nr_static_irqs);
>>>> +
>>>> +        if ( extra_hwdom_irqs > n - nr_static_irqs )
>>>> +        {
>>>> +            extra_hwdom_irqs = n - nr_static_irqs;
>>>> +            printk(XENLOG_WARNING "hwdom IRQs bounded to %u\n", n);
>>>> +        }
>>>> +        if ( extra_domU_irqs > max(32U, n - nr_static_irqs) )
>>>> +        {
>>>> +            extra_domU_irqs = n - nr_static_irqs;
>>>> +            printk(XENLOG_WARNING "domU IRQs bounded to %u\n", n);
>>>> +        }
>>>> +    }
>>>> +#endif
>>>
>>> IMO this is kind of a weird placement. Wouldn't this be more naturally
>>> handled in parse_extra_guest_irqs()?
>>
>> Indeed it is and yes it would, but no, it can't. We shouldn't rely on
>> the particular behavior of arch_hwdom_irqs(), and in the general case
>> we can't call it as early as when command line arguments are parsed. I
>> couldn't think of a neater way of doing this, and it not being pretty
>> is why I'm saying "(ab)use" in the description.
> 
> I see, nr_static_irqs is an alias of nr_irqs_gsi, which is not properly
> set by the time we evaluate command line arguments.
> 
> My only possible suggestion would be to do it as a presmp initcall,
> and define/register such initcall for x86 only, the only benefit would
> be that such inicall could be defined in the same translation unit as
> arch_hwdom_irqs() then.

Which then would require making extra_{hwdom,domU}_irqs available to
x86/io_apic.c, which also wouldn't be very nice. To be honest, I'd prefer
to keep the logic where it is, until such time where perhaps we move pIRQ
stuff wholesale to x86-only files.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 15:11:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 15:11:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751780.1159841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOIh8-0003zn-M6; Mon, 01 Jul 2024 15:11:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751780.1159841; Mon, 01 Jul 2024 15: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 1sOIh8-0003zg-JG; Mon, 01 Jul 2024 15:11:54 +0000
Received: by outflank-mailman (input) for mailman id 751780;
 Mon, 01 Jul 2024 15:11:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fTSe=OB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOIh7-0003za-8c
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 15:11:53 +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 3e4d5e16-37bc-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 17:11:51 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-57cbc66a0a6so639369a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 08:11:51 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58614d50409sm4477926a12.68.2024.07.01.08.11.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 08:11: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: 3e4d5e16-37bc-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719846710; x=1720451510; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=jgnHJ5Y58C1RC6pwwu2MqeJ9YmmthzZBE20Xh0GGb8M=;
        b=QdPmx+C7FCFnQK2B44XXpX8+eTs2aGzCeoSHWGlC+/3UR5WBzMAxxyQ5TrvEfpTIhI
         cATiqQzmhm3/vgjM6H+Ogk3Ad1Oigi4CBdUdszgFLj/99Bw+Q7MiKKu0P4eWQAvLS7dH
         QxQzts5N9ubsSCVqKdJxHjJDwBEAuZHq5ZgDuth4HSLDwOrfO202cN5Hwz2jpBSvg4dq
         4NvJ5VqmtI0bRIRGnu4FpLv78MaeAeqPq7u7DVYMwiz+KCKOTEIQtkUpli9Jzw7FXLmB
         6h6r/5onmPddXXmke/ElL5UALmMUr+rRbJJetd6Sf/XyV1XyLFMBpw6bo9xzF8XaQjnH
         Sayg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719846710; x=1720451510;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jgnHJ5Y58C1RC6pwwu2MqeJ9YmmthzZBE20Xh0GGb8M=;
        b=VFsAHdPXmaHJ+vUn9YcKiUzF7Okd47h3z9FEaJ/0rc3HPel4XkAuF6QGraJILwvdgo
         0MdXeXadPsPmkkhHqSdLGfRCHmx957sJ5Apk8rwGtm98W90qXVenotgh7xflAy95uxM4
         IVTOD4cvNYPHx+OtnALL4dWdvtKQ0QYRoIbOF79xjVpqzwD4bYUeSOAaefxrxza3UU41
         nJaqrWTL0139kOtDRd9jnS23eiJruNtvZcRYnqim7vGzXraczjnfOOP8kaEzhRsignNH
         hXFqokP6W2uVMjWo9p8KLhkS5uAe6LzS40hxxdyqNNDWiwcw1RVoA9pMzWou3o+mD2ki
         Qftg==
X-Forwarded-Encrypted: i=1; AJvYcCUq2ll+ugUmzBlpBvyVCT9XBg4hq0EnsbIWQgJfLay/nMf27o5eWqoy0dDWtB/h0ehbJ/nFf3xkfIWH0oN4AC60LN/QATDKvR5Qu4Tm60U=
X-Gm-Message-State: AOJu0YxmY7/MXAgexWtmRl3npMu0YA93dBIIO+OrlY649cWq3kgMR+Ko
	p2aLEcqclPHTG2Y3n9HnoflPHMmy0i3/69eiC8COX499iUQH/jXR
X-Google-Smtp-Source: AGHT+IHX7xWO8g0RwdLW6+qpnRcZr2RPfJc74hVjT5BbmId8sk5IlyRKXg9nvWW/Mk4THpKwCjMQ+A==
X-Received: by 2002:a05:6402:3494:b0:585:2924:1569 with SMTP id 4fb4d7f45d1cf-5865e026b63mr7782414a12.21.1719846710408;
        Mon, 01 Jul 2024 08:11:50 -0700 (PDT)
Message-ID: <fabbfa80ab4cfd516f4ac1e03c6318f672dad546.camel@gmail.com>
Subject: Re: [PATCH for-4.19? 3/6] xen/macros: Introduce BUILD_ERROR()
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, Roger Pau =?ISO-8859-1?Q?Monn=E9?=
 <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>
Date: Mon, 01 Jul 2024 17:11:49 +0200
In-Reply-To: <20240625190719.788643-4-andrew.cooper3@citrix.com>
References: <20240625190719.788643-1-andrew.cooper3@citrix.com>
	 <20240625190719.788643-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

T24gVHVlLCAyMDI0LTA2LTI1IGF0IDIwOjA3ICswMTAwLCBBbmRyZXcgQ29vcGVyIHdyb3RlOgo+
IC4uLiBhbmQgdXNlIGl0IGluIHNlbGYtdGVzdHMuaC4KPiAKPiBUaGlzIGlzIGludGVuZGVkIHRv
IHJlcGxhY2UgY29uc3RydWN0cyBzdWNoIGFzIF9fYml0b3BfYmFkX3NpemUoKS7CoAo+IEl0Cj4g
cHJvZHVjZXMgYSBiZXR0ZXIgZGlhZ25vc3RpYywgYW5kIGlzIE1JU1JBLWZyaWVuZGx5Lgo+IAo+
IFNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+
Cj4gLS0tCj4gQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KPiBDQzogUm9nZXIg
UGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Cj4gQ0M6IFN0ZWZhbm8gU3RhYmVsbGlu
aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KPiBDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVu
Lm9yZz4KPiBDQzogVm9sb2R5bXlyIEJhYmNodWsgPFZvbG9keW15cl9CYWJjaHVrQGVwYW0uY29t
Pgo+IENDOiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+Cj4gQ0M6
IE1pY2hhbCBPcnplbCA8bWljaGFsLm9yemVsQGFtZC5jb20+Cj4gQ0M6IE9sZWtzaWkgS3Vyb2No
a28gPG9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29tPgo+IAo+IFJGQyBmb3ItNC4xOS7CoCBUaGlz
IGNhbiBiZSB1c2VkIHRvIG5vdCBpbnRyb2R1Y2UgbmV3IE1JU1JBIHZpb2xhdGlvbnMKPiB3aGVu
Cj4gYWRqdXN0aW5nIF9fYml0b3BfYmFkX3NpemUoKS7CoCBJdCdzIHNhZmUgdG8gcHVsbCBvdXQg
b2YgdGhpcyBzZXJpZXMuCldlIGNhbiBjb25zaWRlciB0aGlzIHBhdGNoIHRvIGJlIGluIDQuMTkg
cmVsZWFzZSBpZiBuZWNlc3NhcnkgQWNrZWQKd2lsbCBiZSByZWNpZXZlZDoKIFJlbGVhc2UtQWNr
ZWQtQnk6IE9sZWtzaWkgS3Vyb2Noa28gPG9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29tPgoKfiBP
bGVrc2lpCgo+IAo+IC0tLQo+IMKgeGVuL2luY2x1ZGUveGVuL21hY3Jvcy5owqDCoMKgwqAgfCAy
ICsrCj4gwqB4ZW4vaW5jbHVkZS94ZW4vc2VsZi10ZXN0cy5oIHwgNCArKy0tCj4gwqAyIGZpbGVz
IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0
IGEveGVuL2luY2x1ZGUveGVuL21hY3Jvcy5oIGIveGVuL2luY2x1ZGUveGVuL21hY3Jvcy5oCj4g
aW5kZXggZWM4OWY0NjU0ZmNmLi44NDQxZDdlN2Q2NmEgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1
ZGUveGVuL21hY3Jvcy5oCj4gKysrIGIveGVuL2luY2x1ZGUveGVuL21hY3Jvcy5oCj4gQEAgLTU5
LDYgKzU5LDggQEAKPiDCoCNkZWZpbmUgQlVJTERfQlVHX09OKGNvbmQpICgodm9pZClCVUlMRF9C
VUdfT05fWkVSTyhjb25kKSkKPiDCoCNlbmRpZgo+IMKgCj4gKyNkZWZpbmUgQlVJTERfRVJST1Io
bXNnKSBhc20gKCAiLmVycm9yIFwiIiBtc2cgIlwiIiApCj4gKwo+IMKgLyogSGlkZSBhIHZhbHVl
IGZyb20gdGhlIG9wdGltaXNlci4gKi8KPiDCoCNkZWZpbmUgSElERSh4KcKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+IMKg
wqDCoMKgICh7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gZGlmZiAtLWdpdCBhL3hlbi9p
bmNsdWRlL3hlbi9zZWxmLXRlc3RzLmggYi94ZW4vaW5jbHVkZS94ZW4vc2VsZi0KPiB0ZXN0cy5o
Cj4gaW5kZXggNDJhNGNjNGQxN2ZlLi40YmMzMjJiN2YyYTYgMTAwNjQ0Cj4gLS0tIGEveGVuL2lu
Y2x1ZGUveGVuL3NlbGYtdGVzdHMuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9zZWxmLXRlc3Rz
LmgKPiBAQCAtMjIsOSArMjIsOSBAQAo+IMKgwqDCoMKgwqDCoMKgwqAgdHlwZW9mKGZuKHZhbCkp
IHJlYWwgPQo+IGZuKHZhbCk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4g
wqDCoMKgIFwKPiDCoMKgwqDCoMKgwqDCoMKgIGlmICggIV9fYnVpbHRpbl9jb25zdGFudF9wKHJl
YWwpCj4gKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgXAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFzbSAoICIuZXJyb3IgXCInIiBT
VFIoZm4odmFsKSkgIicgbm90IGNvbXBpbGUtdGltZQo+IGNvbnN0YW50XCIiICk7IFwKPiArwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBCVUlMRF9FUlJPUigiJyIgU1RSKGZuKHZhbCkpICInIG5vdCBj
b21waWxlLXRpbWUKPiBjb25zdGFudCIpOyBcCj4gwqDCoMKgwqDCoMKgwqDCoCBlbHNlIGlmICgg
cmVhbCAhPSByZXMKPiApwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+IC3CoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIGFzbSAoICIuZXJyb3IgXCJDb21waWxlIHRpbWUgY2hlY2sgJyIgU1RSKGZuKHZh
bCkgPT0KPiByZXMpICInIGZhaWxlZFwiIiApOyBcCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
QlVJTERfRVJST1IoIkNvbXBpbGUgdGltZSBjaGVjayAnIiBTVFIoZm4odmFsKSA9PSByZXMpCj4g
IicgZmFpbGVkIik7IFwKPiDCoMKgwqDCoCB9IHdoaWxlICggMCApCj4gwqAjZWxzZQo+IMKgI2Rl
ZmluZSBDT01QSUxFX0NIRUNLKGZuLCB2YWwsIHJlcykKCg==



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 15:15:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 15:15:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751785.1159851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOIkl-0004Zf-4L; Mon, 01 Jul 2024 15:15:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751785.1159851; Mon, 01 Jul 2024 15: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 1sOIkl-0004ZY-0w; Mon, 01 Jul 2024 15:15:39 +0000
Received: by outflank-mailman (input) for mailman id 751785;
 Mon, 01 Jul 2024 15:15: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=AicS=OB=aepfle.de=olaf@srs-se1.protection.inumbo.net>)
 id 1sOIkj-0004ZS-2f
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 15:15:37 +0000
Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de
 [81.169.146.217]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c36d5e70-37bc-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 17:15:34 +0200 (CEST)
Received: from sender by smtp.strato.de (RZmta 50.5.0 AUTH)
 with ESMTPSA id D05b2e061FFK4IO
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate);
 Mon, 1 Jul 2024 17:15: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: c36d5e70-37bc-11ef-b4bb-af5377834399
ARC-Seal: i=1; a=rsa-sha256; t=1719846920; cv=none;
    d=strato.com; s=strato-dkim-0002;
    b=NfGJEFgOQeMhtW75r6Yt8k5KrZ//HpIhNTPfoUBaU2x2d6F3THxqDF7Qg+oLCo+EDo
    Byi0ttLXvLKFeayRvF0YKU5laPwL6b23nIf4KIhx3l+kdC/Oswf0BoiaXvpT+NR2gyY6
    DIzNhUMaHndXWXz1cTD8IxbhowvTLHefSIDynlpaL27AAl618sROoF4cw+xVAWAw7Jcc
    1D3hBGj1Eapvh3lnumizXOK209jwc+ALnvLT25StYdqbtLRN/2J8GX6TQwK/JWWEwyc1
    FZZltwZcoyDtGaQN3WH6s3AdyhD4cG8En62Dll8DUct89NPszROk73btDbmcTnYR/4R2
    Cj1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1719846920;
    s=strato-dkim-0002; d=strato.com;
    h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=uJiBvu+hRQwDsB2UAz0MIQ0TDFuj6+MY2d7PtVNHFqY=;
    b=U5d/kFXEwklWtu97ubHRQYLhBtiuXNA/IKNmvuNULcBCxluRqbOHJmOXfZWcIHkGgb
    2qM+I6YH15Cr4YFNtnBFYZOORLp+LcBD4IJPmLHb6GAi/jTQPvjpaqFbqludIbdY8c9B
    oGU48W7T/TrWtna2ALls2DahUGRaV2AlaI/MHpgQmmQka8GNGuvtFyFQNeX1crvjeQc0
    zfhPK7W99CXWve29Rpwwu1uQkQqmMlHV6z98o0aa8Zb5fmyu5PBXW0gjInzsx/TJjwlD
    QfXVtzRXiXKDy5wWNH63LErC/HZPgFCD+Pc3JCCr3qsbQYIzhuZfeKeVNjHY9p+TbP6c
    mFmQ==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1719846920;
    s=strato-dkim-0002; d=aepfle.de;
    h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=uJiBvu+hRQwDsB2UAz0MIQ0TDFuj6+MY2d7PtVNHFqY=;
    b=Q0upiTUXow7iZdpc1B3/r6lMYAyjCiHCh0B7R/BLY2LMTcFp2h5h8ryFkRkrsZ20ic
    ZVCYASfQqr+82HTfMxI+Y8bReeLgT9JCVvOyqUgQdz1kCa017dxmPNVSKwnPLLjzdJr+
    4OJ/qjBFudiscVmtbe2y30KTgQqkiyRHq3M916L9p+2L9pF2KE2qXcUl2StomDxkp5GG
    7fMg98dWTCLbxLcLk8oy6FW5QBGXspdgVRHsl8riFVHhHteUlf3HsX2NIWhBODtH1HRU
    mWtv+UFnteK2fG/ItDJkXOtI08sBSnDwICz8Ps9fp8taJuh/V2YCfxQ3p9dc6tn602uL
    WLGQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1719846920;
    s=strato-dkim-0003; d=aepfle.de;
    h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=uJiBvu+hRQwDsB2UAz0MIQ0TDFuj6+MY2d7PtVNHFqY=;
    b=YsLoizHoA07OO26J/Dk0ZN+wkqF1i6j6x2n2hygaQuFdEQV1vBvjotB1YPT5BqACVL
    +/8zXsEZjw/q0qG5K9Dw==
X-RZG-AUTH: ":P2EQZWCpfu+qG7CngxMFH1J+3q8wa/QXkBR9MXjAuzpIG0mv9coXAg4w9Fn7FJotZZVcwVP8B1Lhzkl9HG5EATJPpni8Vg=="
From: Olaf Hering <olaf@aepfle.de>
To: xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1] automation: add findutils to suse images
Date: Mon,  1 Jul 2024 17:15:12 +0200
Message-Id: <20240701151512.10187-1-olaf@aepfle.de>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="us-ascii"

The build system uses find(1). Make sure it is available.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
---
 automation/build/suse/opensuse-leap.dockerfile       | 1 +
 automation/build/suse/opensuse-tumbleweed.dockerfile | 1 +
 2 files changed, 2 insertions(+)

diff --git a/automation/build/suse/opensuse-leap.dockerfile b/automation/build/suse/opensuse-leap.dockerfile
index 3ef33458a0..1344cbb0d1 100644
--- a/automation/build/suse/opensuse-leap.dockerfile
+++ b/automation/build/suse/opensuse-leap.dockerfile
@@ -20,6 +20,7 @@ RUN zypper install -y --no-recommends \
         dev86 \
         diffutils \
         discount \
+        findutils \
         flex \
         gawk \
         gcc \
diff --git a/automation/build/suse/opensuse-tumbleweed.dockerfile b/automation/build/suse/opensuse-tumbleweed.dockerfile
index a793601c87..2587a3fa4f 100644
--- a/automation/build/suse/opensuse-tumbleweed.dockerfile
+++ b/automation/build/suse/opensuse-tumbleweed.dockerfile
@@ -18,6 +18,7 @@ RUN zypper install -y --no-recommends \
         cmake \
         diffutils \
         discount \
+        findutils \
         flex \
         gawk \
         gcc \


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 15:18:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 15:18:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751797.1159861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOInA-0005Ql-Gy; Mon, 01 Jul 2024 15:18:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751797.1159861; Mon, 01 Jul 2024 15:18: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 1sOInA-0005Qe-DD; Mon, 01 Jul 2024 15:18:08 +0000
Received: by outflank-mailman (input) for mailman id 751797;
 Mon, 01 Jul 2024 15:18: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=BFf9=OB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sOIn8-0005Ef-I2
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 15:18:06 +0000
Received: from mail-yw1-x1132.google.com (mail-yw1-x1132.google.com
 [2607:f8b0:4864:20::1132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1cb4c0f4-37bd-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 17:18:04 +0200 (CEST)
Received: by mail-yw1-x1132.google.com with SMTP id
 00721157ae682-64a6bf15db9so25958507b3.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 08:18:04 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 00721157ae682-64a9bf316fesm13790607b3.104.2024.07.01.08.18.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 08:18: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: 1cb4c0f4-37bd-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719847083; x=1720451883; 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=PZHPE3JqGjRltPPWv6ZW701bFz8qQubCu87rQyzXOfE=;
        b=M7uhUxfAjnkNqdvNOvvbYY48gM4305jyx2um0nWe2TdO4TDzLD/bDkpN9dnQK6eDI7
         EJODr6B/SaqKNRWJUR1NHeeP0KRgmc1a45yISBnxlnV0q7RiXeAdroEe6IxMLx0blET8
         X6RVUi3XErtJ1znp4vY+EVC70eeHufqqY7C6Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719847083; x=1720451883;
        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=PZHPE3JqGjRltPPWv6ZW701bFz8qQubCu87rQyzXOfE=;
        b=PjxgvjewWs+FPBezXtNJy62Z9SnJaAN0ILZVLN7Q0hF/LAovx/hAKy4fcSZTx7sTy8
         2/a+xFr8BShIq71z9VgEt8pnBfHx4Uej08F6iKdesVqEVlG3uTN11luljoB99UG/hdzL
         ATdr2aQkiebGuAmJ6cCKBOYjF7EwCS579FRwelTEBlVU43hFUB8ouZ9bll6UvfuZ1Pxr
         j6qpHCAn532OLee4zzn2ISYQdvype5nYjST9P7a9r7dBfBPog73lzIrhiI9bpcsUPRbR
         t6lQ6/GIuy9N5Ej3eDMhmBIOmQiwUHVBGUXNgZcHr9Haoi6XEHhJnkejPQS/YWL2sCNO
         oFRA==
X-Gm-Message-State: AOJu0YwIKbTrtx4qYWXr2qqOapm19wKgIKj3lSPTmPMQxEwk6MLs8eFG
	+ziWe0FPsUQgFzJtEhEoGv0ZkYnLSfUgrcbhftA1Hp50W0qKl1+RsRKviq1e1Bc=
X-Google-Smtp-Source: AGHT+IGwqfanbSMJGubtd6gcIPavyjAnyq83KbOA58g+MHhB8zxb72AUnVOd/w+DpW9bAhIv+2w9hQ==
X-Received: by 2002:a81:918d:0:b0:61b:33e1:9641 with SMTP id 00721157ae682-64c716190bfmr43765197b3.13.1719847083424;
        Mon, 01 Jul 2024 08:18:03 -0700 (PDT)
Date: Mon, 1 Jul 2024 17:17:58 +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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 3/3] cmdline: document and enforce "extra_guest_irqs"
 upper bounds
Message-ID: <ZoLIpulcC7dqtxYR@macbook>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <3c3a1d0c-06f2-a392-b2f9-381bed5c5e7b@suse.com>
 <ZoJ9Bd2kg3IQ0Z28@macbook>
 <8ab71a85-6056-4c4f-8513-a21c061a176d@suse.com>
 <ZoKvP6StEbMTgjrY@macbook>
 <938e5bd1-4523-4b49-80fa-1c3331587972@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <938e5bd1-4523-4b49-80fa-1c3331587972@suse.com>

On Mon, Jul 01, 2024 at 05:07:19PM +0200, Jan Beulich wrote:
> On 01.07.2024 15:29, Roger Pau Monné wrote:
> > On Mon, Jul 01, 2024 at 12:40:35PM +0200, Jan Beulich wrote:
> >> On 01.07.2024 11:55, Roger Pau Monné wrote:
> >>> On Thu, Jul 27, 2023 at 09:38:55AM +0200, Jan Beulich wrote:
> >>>> --- a/xen/arch/x86/io_apic.c
> >>>> +++ b/xen/arch/x86/io_apic.c
> >>>> @@ -2663,18 +2663,21 @@ void __init ioapic_init(void)
> >>>>             nr_irqs_gsi, nr_irqs - nr_irqs_gsi);
> >>>>  }
> >>>>  
> >>>> -unsigned int arch_hwdom_irqs(domid_t domid)
> >>>> +unsigned int arch_hwdom_irqs(const struct domain *d)
> >>>
> >>> While at it, should this be __hwdom_init?
> >>
> >> It indeed can be, so I've done this for v4.
> >>
> >>> I'm fine with changing the function to take a domain parameter...
> >>>
> >>>>  {
> >>>>      unsigned int n = fls(num_present_cpus());
> >>>>  
> >>>> -    if ( !domid )
> >>>> +    if ( is_system_domain(d) )
> >>>> +        return PAGE_SIZE * BITS_PER_BYTE;
> >>>
> >>> ... but why do we need a function call just to get a constant value?
> >>> Wouldn't this better be a define in a header?
> >>
> >> Would be an option, but would result in parts of the logic living is
> >> distinct places.
> >>
> >>>> +
> >>>> +    if ( !d->domain_id )
> >>>>          n = min(n, dom0_max_vcpus());
> >>>>      n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, nr_irqs);
> >>>>  
> >>>>      /* Bounded by the domain pirq eoi bitmap gfn. */
> >>>>      n = min_t(unsigned int, n, PAGE_SIZE * BITS_PER_BYTE);
> >>>
> >>> So that could also use the same constant here?
> > 
> > I would have a slight preference for PAGE_SIZE * BITS_PER_BYTE being
> > defined inside of this function as:
> > 
> > /* Bounded by the domain pirq eoi bitmap gfn. */
> > const unsigned int max_irqs = PAGE_SIZE * BITS_PER_BYTE;
> > 
> > Or similar for clarity purposes.
> 
> Can do, sure.
> 
> > While at it, I've noticed that PHYSDEVOP_pirq_eoi_gmfn_v{1,2} is not
> > available to HVM guests (not even when exposing PIRQ support) and
> > hence I wonder if we should special case PVH dom0, but maybe it's best
> > to deal with this properly rather than hacking something special
> > just for PVH dom0.  At the end of the day the current limit is high
> > enough to not cause issues on current systems I would expect.
> 
> Oh, so entirely the other way around than mentioned when we talked, once
> again due to the filtering in hvm/hypercall.h that I keep forgetting. So
> in principle we could avoid the bounding for HVM. Just that right now
> extra_domU_irqs covers both PV and HVM, and would hence need splitting
> first.

Yes, we would need to split, that's why I'm OK with what you propose
here.  We can do the split as a later change.

> >>>> --- a/xen/common/domain.c
> >>>> +++ b/xen/common/domain.c
> >>>> @@ -693,7 +693,7 @@ struct domain *domain_create(domid_t dom
> >>>>              d->nr_pirqs = nr_static_irqs + extra_domU_irqs;
> >>>>          else
> >>>>              d->nr_pirqs = extra_hwdom_irqs ? nr_static_irqs + extra_hwdom_irqs
> >>>> -                                           : arch_hwdom_irqs(domid);
> >>>> +                                           : arch_hwdom_irqs(d);
> >>>>          d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
> >>>>  
> >>>>          radix_tree_init(&d->pirq_tree);
> >>>> @@ -819,6 +819,24 @@ void __init setup_system_domains(void)
> >>>>      if ( IS_ERR(dom_xen) )
> >>>>          panic("Failed to create d[XEN]: %ld\n", PTR_ERR(dom_xen));
> >>>>  
> >>>> +#ifdef CONFIG_HAS_PIRQ
> >>>> +    /* Bound-check values passed via "extra_guest_irqs=". */
> >>>> +    {
> >>>> +        unsigned int n = max(arch_hwdom_irqs(dom_xen), nr_static_irqs);
> >>>> +
> >>>> +        if ( extra_hwdom_irqs > n - nr_static_irqs )
> >>>> +        {
> >>>> +            extra_hwdom_irqs = n - nr_static_irqs;
> >>>> +            printk(XENLOG_WARNING "hwdom IRQs bounded to %u\n", n);
> >>>> +        }
> >>>> +        if ( extra_domU_irqs > max(32U, n - nr_static_irqs) )
> >>>> +        {
> >>>> +            extra_domU_irqs = n - nr_static_irqs;
> >>>> +            printk(XENLOG_WARNING "domU IRQs bounded to %u\n", n);
> >>>> +        }
> >>>> +    }
> >>>> +#endif
> >>>
> >>> IMO this is kind of a weird placement. Wouldn't this be more naturally
> >>> handled in parse_extra_guest_irqs()?
> >>
> >> Indeed it is and yes it would, but no, it can't. We shouldn't rely on
> >> the particular behavior of arch_hwdom_irqs(), and in the general case
> >> we can't call it as early as when command line arguments are parsed. I
> >> couldn't think of a neater way of doing this, and it not being pretty
> >> is why I'm saying "(ab)use" in the description.
> > 
> > I see, nr_static_irqs is an alias of nr_irqs_gsi, which is not properly
> > set by the time we evaluate command line arguments.
> > 
> > My only possible suggestion would be to do it as a presmp initcall,
> > and define/register such initcall for x86 only, the only benefit would
> > be that such inicall could be defined in the same translation unit as
> > arch_hwdom_irqs() then.
> 
> Which then would require making extra_{hwdom,domU}_irqs available to
> x86/io_apic.c, which also wouldn't be very nice. To be honest, I'd prefer
> to keep the logic where it is, until such time where perhaps we move pIRQ
> stuff wholesale to x86-only files.

Fine by me.

I think we are in agreement about what needs doing.  I can provide:

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

With the changes we have agreed to arch_hwdom_irqs().

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 15:20:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 15:20:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751805.1159870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOIpo-0007KW-0i; Mon, 01 Jul 2024 15:20:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751805.1159870; Mon, 01 Jul 2024 15:20: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 1sOIpn-0007KP-To; Mon, 01 Jul 2024 15:20:51 +0000
Received: by outflank-mailman (input) for mailman id 751805;
 Mon, 01 Jul 2024 15:20:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ypwj=OB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sOIpm-0007KJ-M3
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 15:20:50 +0000
Received: from mail-qv1-xf2b.google.com (mail-qv1-xf2b.google.com
 [2607:f8b0:4864:20::f2b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ef83f39-37bd-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 17:20:49 +0200 (CEST)
Received: by mail-qv1-xf2b.google.com with SMTP id
 6a1803df08f44-6b5031d696dso16711896d6.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 08:20:49 -0700 (PDT)
Received: from [10.125.226.166] ([160.101.139.1])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b59e613c82sm34080486d6.117.2024.07.01.08.20.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 08:20: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: 7ef83f39-37bd-11ef-90a5-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719847248; x=1720452048; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JyJI4RuSOKiRBGBoMY/1X2h1xsUsszHhpt/vMx+eiNw=;
        b=v1Mq7GUECRFWkG6Ij7jjLeM/XQC58kK3hb0xPPPLaeH1FCkJJmUcpu5QQTTETggNGP
         KJbnGa63GHL4/yDkXtItEhUBGOS+SgYevq7qhxjbUHsIrxHZGE3+2MGCNY7EKIWHkXg4
         QwxqOvVUZwERnObaHtwiXq2qEz7G1uBudnPD0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719847248; x=1720452048;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JyJI4RuSOKiRBGBoMY/1X2h1xsUsszHhpt/vMx+eiNw=;
        b=YEBeJLWwCafNikVCE0Z9yJJQNPXlb/F94nLpDZz0NwpsYxHIZvgmeA6hjtNGBS7XzL
         Ylz2d8WyIZmYC+uFPx/i81EYxNB4i8iQlvmw+j3dt5D9n+27twhU3cn8OOZSyAneFl87
         Bw6FfaJ0tgPaKema/7hSX7kYKAJDo+FjDx817142FcRnmEIJv0Pu1+7TowPpH+p+r1fk
         a0PVQ8RvUXwu9FYqiJ2oPQHD90T0O+XVw/1r+ZMGTMAySwg0D8Hw2oJtSxJxth+tIaUy
         9f8Xd+3pTcO3DC/4na6FXeWspi7cuOhkfQa/MctU3EhR76oobupDEDjLbHQkJn0XvGoR
         nUbg==
X-Forwarded-Encrypted: i=1; AJvYcCXzh0SYfUiZvtFjgT6F6eT0XuJU4wXIVBo7HAnoyODa9tHY5Lsja9T/9mX8R/1amfpG/b5A0GqKL/+Yfmm4O1IAnkVxTR/jY3fxAPIGGr8=
X-Gm-Message-State: AOJu0Yyz96De67ZrUeDMap/YWhNSYazUYYcyQjSAwih9WKsRHfhagqVZ
	TAZrKTNX11RICxlQMqQlowhtyVJehl3qdY1nb/KnTnUL46n7Ip+Khch+uHaygmM=
X-Google-Smtp-Source: AGHT+IGaltnMPP1TaKeIBc0BgVSCFr45BgPw+2TqCDmhq5Rqn3X+rJmZfPthmV/WNk+mKkC7quKLRg==
X-Received: by 2002:a05:6214:500a:b0:6b0:74f5:8b1d with SMTP id 6a1803df08f44-6b5b70b6606mr72739166d6.25.1719847248597;
        Mon, 01 Jul 2024 08:20:48 -0700 (PDT)
Message-ID: <6231910f-b4c9-4604-83dc-c53e53d30409@citrix.com>
Date: Mon, 1 Jul 2024 16:20:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] automation: add findutils to suse images
To: Olaf Hering <olaf@aepfle.de>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240701151512.10187-1-olaf@aepfle.de>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240701151512.10187-1-olaf@aepfle.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/07/2024 4:15 pm, Olaf Hering wrote:
> The build system uses find(1). Make sure it is available.
>
> Signed-off-by: Olaf Hering <olaf@aepfle.de>

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

CC Oleksii.  This is probably non-optional to take.

I suspect it means we can't rebuild the OpenSUSE dockerfiles any more...

~Andrew

> ---
>  automation/build/suse/opensuse-leap.dockerfile       | 1 +
>  automation/build/suse/opensuse-tumbleweed.dockerfile | 1 +
>  2 files changed, 2 insertions(+)
>
> diff --git a/automation/build/suse/opensuse-leap.dockerfile b/automation/build/suse/opensuse-leap.dockerfile
> index 3ef33458a0..1344cbb0d1 100644
> --- a/automation/build/suse/opensuse-leap.dockerfile
> +++ b/automation/build/suse/opensuse-leap.dockerfile
> @@ -20,6 +20,7 @@ RUN zypper install -y --no-recommends \
>          dev86 \
>          diffutils \
>          discount \
> +        findutils \
>          flex \
>          gawk \
>          gcc \
> diff --git a/automation/build/suse/opensuse-tumbleweed.dockerfile b/automation/build/suse/opensuse-tumbleweed.dockerfile
> index a793601c87..2587a3fa4f 100644
> --- a/automation/build/suse/opensuse-tumbleweed.dockerfile
> +++ b/automation/build/suse/opensuse-tumbleweed.dockerfile
> @@ -18,6 +18,7 @@ RUN zypper install -y --no-recommends \
>          cmake \
>          diffutils \
>          discount \
> +        findutils \
>          flex \
>          gawk \
>          gcc \
>



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 15:21:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 15:21:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751809.1159880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOIqe-0007oO-8X; Mon, 01 Jul 2024 15:21:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751809.1159880; Mon, 01 Jul 2024 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 1sOIqe-0007oH-5N; Mon, 01 Jul 2024 15:21:44 +0000
Received: by outflank-mailman (input) for mailman id 751809;
 Mon, 01 Jul 2024 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=VHQ6=OB=gmail.com=milandjokic1995@srs-se1.protection.inumbo.net>)
 id 1sOIqc-0007KJ-SK
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 15:21:42 +0000
Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com
 [2607:f8b0:4864:20::f33])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e394008-37bd-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 17:21:42 +0200 (CEST)
Received: by mail-qv1-xf33.google.com with SMTP id
 6a1803df08f44-6b4febddfd3so16766926d6.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 08:21: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: 9e394008-37bd-11ef-90a5-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719847301; x=1720452101; 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=R3XHp78JCEbA8g/B/rFJ5z9YEOkqtp4W2vM53xBiJrs=;
        b=nE49cO4ADQ41VH6DplvycccDV3t3m0L3N/8yW6+kAAdxhefe4seJrXJh59fnE4m7ka
         QO8NN3FPRBnrbNUBRteyAktR4WDx0j8SbL7Ty0Y6bsImS91hTxIUN6ZqVlYqGoPmNFPZ
         UXY03iR4wa+zT7cuvYp07i2/QUKWNwTrlPrS2r5f7E/25UJTu4ZHUIHF39iiewZcCzY8
         ehPO4Nkc3MCFEOXgQdKRtjON6b5Yqfs9QjrgByiZu2dByPJQcyJeF5lgu8JuL4WYavSJ
         7zhomlouKDDgg1VmDKjhsElqGm/bwwwQM69uq3j37wkVLpBCGaAtARK1TpTIzDZrb02v
         tnoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719847301; x=1720452101;
        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=R3XHp78JCEbA8g/B/rFJ5z9YEOkqtp4W2vM53xBiJrs=;
        b=j2CJccg4Rabt70iktJlKdGKiZCdPCJn2Cn7GmJdr3w/pgg6KWzKNRFpJ68Nkb4VHHD
         EALZAZKqptcLA4MW8AlZJPnfAjkOAGW6YgfoNQBuAWewPvDppsKQ962aGso9n4fsYzXP
         9obYiS8NaIfGRETtIuPyCBYFSKeu1WSNPWStpwmCbUVyhl1Sf41x6bd61kHgQmhp+U+4
         HYeRoW05j7jv0rL+quH1u5oS77Et0afXi5NFl1OpiCj8J41bg8rzz/ywGNJNYryebOXT
         55BzLkCzyVj2zbQV/FgKWoW5GOG0qEcpiZVPrOTZK8LWy+G4wszca3U7IaYdNl2LNAn6
         13ig==
X-Forwarded-Encrypted: i=1; AJvYcCXmo5RV3k/8aRqCnwLw2bBCf7m1/gi28ELDkalgQ21llaGVKD2RXSKgSSBTNsgnC8auA43CzuGh0thZVV6H4v2QThGIBmcFFFBmkinSCDI=
X-Gm-Message-State: AOJu0YzciQS/k1NXA+iBe3N+jK25EUNx3pJMvr8ueykil8sW1s406OG7
	tKfiohudAw233TvG7rgtAa3cyhl9rft0iZNxDgFQsgDWe0MMrc1ZxmTAt4TisLxR+IQMsODi33E
	AK8hJrpUBtD72RkU3Ks7d3COYz5I=
X-Google-Smtp-Source: AGHT+IFCJPXCRJpnYEtnF7N5mzx9Ltq3FuLn/g/X+mL02usXSr/CHVH2YDfbFyG+sdRttPEvFGAo9yBqa6Kq5MalmKU=
X-Received: by 2002:a05:6214:ace:b0:6b0:6400:3b6f with SMTP id
 6a1803df08f44-6b5b7057b19mr78763396d6.8.1719847300841; Mon, 01 Jul 2024
 08:21:40 -0700 (PDT)
MIME-Version: 1.0
References: <87b5e458498bbff2e54ac011a50ff1f9555c3613.1717354932.git.milan.djokic@rt-rk.com>
 <0e10ee9c215269b577321ba44f5d038a5eb299a7.1718193326.git.milan.djokic@rt-rk.com>
 <8112bee8-efdc-4db9-b0d4-58b160b4e923@suse.com> <DU5PR08MB103973ABF5E6F12853F5D24E1CEC12@DU5PR08MB10397.eurprd08.prod.outlook.com>
 <b508c1b8-1bdd-4378-a76d-7056452406d3@suse.com>
In-Reply-To: <b508c1b8-1bdd-4378-a76d-7056452406d3@suse.com>
From: =?UTF-8?B?TWlsYW4gxJBva2nEhw==?= <milandjokic1995@gmail.com>
Date: Mon, 1 Jul 2024 17:21:30 +0200
Message-ID: <CAKp59VGq08+wr3D-wJ_9VEGzv-Z0ThAU7TYqY6fcY-jUOh_bzA@mail.gmail.com>
Subject: Re: [PATCH] xen/riscv: PE/COFF image header for RISC-V target
To: Jan Beulich <jbeulich@suse.com>
Cc: Nikola Jelic <nikola.jelic@rt-rk.com>, Alistair Francis <alistair.francis@wdc.com>, 
	Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
	"milan.djokic" <Milan.Djokic@rt-rk.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jun 27, 2024 at 10:55=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 26.06.2024 18:16, Milan Djokic wrote:
> >> +config RISCV_EFI
> >> +     bool "UEFI boot service support"
> >> +     depends on RISCV_64
> >> +     default n
> >
> > Nit: This line can be omitted (and if I'm not mistaken we generally do =
omit
> > such).
> >
> > If we remove the default value, EFI header shall be included into xen i=
mage by default.
>
> Why's this? Or in other words, what are you deriving this from? Not speci=
fying
> a default implicitly means "n", from all I know.
>
My assumption regarding option value when default is not specified was
wrong. You're correct, we'll omit the default line.

>
> > Currently PE/COFF header is directly embedded into
> > head.S for arm/x86
> >
> >> +    char     name[8];                /* name or "/12\0" string tbl of=
fset */
> >
> > Why 12?
> >
> > Either section name is specified in this field or string table offset i=
f section name can't fit into 8 bytes, which is the case here.
>
> Well, yes, I'm certainly aware of that. But the question wasn't about the
> format, it was specifically about the hardcoded value 12. Why not 11 or 1=
3?
>
I've misinterpreted your original question here. I realize now that
this comment ("name or /12/0") is confusing (and incorrect). It was
taken over from linux kernel which on the other hand took this over
from pesign package,  so I assume that pesign had its own string table
layout and thus hardcoded 12 offset for its specific usecase. Since in
general we can have different offsets and even more than one (if e.g.
2 section names exceed 8-byte size) we'll change this comment not to
contain 12 offset hint.

>
> >> + * struct riscv_image_header - riscv xen image header
> >
> > You saying "xen": Is there anything Xen-specific in this struct?
> >
> > Not really related to xen, this is generic riscv PE image header, comme=
nt fixed in new version
> >
> >> +        .long   0                                       /* LoaderFlag=
s */
> >> +        .long   (section_table - .) / 8                 /* NumberOfRv=
aAndSizes */
> >> +        .quad   0                                       /* ExportTabl=
e */
> >> +        .quad   0                                       /* ImportTabl=
e */
> >> +        .quad   0                                       /* ResourceTa=
ble */
> >> +        .quad   0                                       /* ExceptionT=
able */
> >> +        .quad   0                                       /* Certificat=
ionTable */
> >> +        .quad   0                                       /* BaseReloca=
tionTable */
> >
> > Would you mind clarifying on what basis this set of 6 entries was
> > chosen?
> >
> > These fields and their sizes are defined in official PE format, see det=
ails from specification bellow
> >
> > [cid:542690de-3bb0-4708-a447-996a03277578]
>
> Again, I'm aware of the specification. Yet like the 12 above the 6 here
> looks arbitrarily chosen. There are more entries in this table which
> are permitted to be present (and well-defined). There could also be
> fewer of them; any absent entry is implicitly holding the value 0 afaia.
>
We can omit all of them since directories are not used at all in this
case. Even those 6 are set to 0 (which means not used according to
PE). One more case where we wanted to align with linux kernel / xen
arm implementation, but it is redundant in our case

> >> +/* Section table */
> >> +section_table:
> >> +        .ascii  ".text\0\0\0"
> >> +        .long   0
> >> +        .long   0
> >> +        .long   0                                       /* SizeOfRawD=
ata */
> >> +        .long   0                                       /* PointerToR=
awData */
> >> +        .long   0                                       /* PointerToR=
elocations */
> >> +        .long   0                                       /* PointerToL=
ineNumbers */
> >> +        .short  0                                       /* NumberOfRe=
locations */
> >> +        .short  0                                       /* NumberOfLi=
neNumbers */
> >> +        .long   IMAGE_SCN_CNT_CODE | \
> >> +                IMAGE_SCN_MEM_READ | \
> >> +                IMAGE_SCN_MEM_EXECUTE                   /* Characteri=
stics */
> >> +
> >> +        .ascii  ".data\0\0\0"
> >> +        .long   _end - xen_start                        /* VirtualSiz=
e */
> >> +        .long   xen_start - efi_head                    /* VirtualAdd=
ress */
> >> +        .long   __init_end_efi - xen_start              /* SizeOfRawD=
ata */
> >> +        .long   xen_start - efi_head                    /* PointerToR=
awData */
> >> +        .long   0                                       /* PointerToR=
elocations */
> >> +        .long   0                                       /* PointerToL=
ineNumbers */
> >> +        .short  0                                       /* NumberOfRe=
locations */
> >> +        .short  0                                       /* NumberOfLi=
neNumbers */
> >> +        .long   IMAGE_SCN_CNT_INITIALIZED_DATA | \
> >> +                IMAGE_SCN_MEM_READ | \
> >> +                IMAGE_SCN_MEM_WRITE                    /* Characteris=
tics */
> >
> > IOW no code and the entire image expressed as data. Interesting.
> > No matter whether that has a reason or is completely arbitrary, I
> > think it, too, wants commenting on.
> >
> > This is correct, currently we have extended image with PE/COFF (EFI) he=
ader which allows xen boot from EFI loader (or U-boot) environment. And the=
se updates are pure data. We are actively working on the implementation of =
Boot/Runtime services which shall be in the code section part and enable fu=
ll UEFI compatible xen application for riscv.
>
> Such a choice, even if transient, needs explaining in the description
> (or maybe even a code comment) then.
We'll clarify this part in code directly

>
> > Why does the blank line disappear? And why is ...
> >
> >>      . =3D ALIGN(POINTER_ALIGN);
> >>      __init_end =3D .;
> >
> > ... __init_end not good enough? (I think I can guess the answer, but
> > then I further think the name of the symbol is misleading. )
> >
> > Init_end_efi is used only when EFI sections are included into image.
>
> Again, my question was different: I asked why a symbol we have already
> isn't good enough, i.e. why another one needs adding.
>
Similar as for data directories fields above, _init_end_efi is also
redundant for RISC-V case, we'll use _init_end directly instead.

> > We have aligned with arm implementation here, you can take a look also =
there.
>
> And yet again, as per above, you need to be able to explain your decision=
s.
> You can't just say "it's done this way elsewhere as well". What if that
> "elsewhere" has an obvious or maybe just subtle bug?
This is perfectly clear. We'll restructure our changes in the next
version in that manner.

BR,
Milan


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 15:35:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 15:35:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751821.1159891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOJ4H-0001pc-EF; Mon, 01 Jul 2024 15:35:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751821.1159891; Mon, 01 Jul 2024 15:35: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 1sOJ4H-0001pV-BI; Mon, 01 Jul 2024 15:35:49 +0000
Received: by outflank-mailman (input) for mailman id 751821;
 Mon, 01 Jul 2024 15:35: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=Ypwj=OB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sOJ4G-0001pP-D2
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 15:35:48 +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 95705c37-37bf-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 17:35:46 +0200 (CEST)
Received: by mail-qk1-x731.google.com with SMTP id
 af79cd13be357-79c069554f8so124066485a.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 08:35:46 -0700 (PDT)
Received: from [10.125.226.166] ([160.101.139.1])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-79d692f064esm357668085a.89.2024.07.01.08.35.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 08: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: 95705c37-37bf-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719848145; x=1720452945; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/vAiAQO2Cggt3dxwvEwn2y0Wx6GoDzfj8YvIYDi0Z+A=;
        b=ETA/xwDim93q/NUybuP96YJOVReqJd9u/axCJ9EXq/DYQxVUHAXyiFQeC0pKP3dVly
         wYb9eBvkAvkSdt4XdeCaYFKEmO2i1pcfG244W7Y6eHfHUSxPQ6UXFO3S0l7Z2rQEI0UK
         /J8ZSiYwHMZTn9X38g20fnTQ8w8DKRTJvkwvs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719848145; x=1720452945;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/vAiAQO2Cggt3dxwvEwn2y0Wx6GoDzfj8YvIYDi0Z+A=;
        b=sRcnLJfcaHPjHJCOdpk7Q8cx4Ib/jIF5dt0ie6rbuV123Lv5fhXK+NP/ZrdeD0lU3o
         gcnDsG3AHgsAXcIagYRGdiFEuejJIhImj5d+UMTNMGY9bnD81RpQtybw8w5YaaNeKbpm
         lYZb6qAlV7gtpHHY5SnA4tfz3qtSXg10HPgG6pbV+P22oB1z2FTrnU4Mba+8j+NX+4lF
         juCoUqm/BI85yJjE4AcsFoaZ2guRYsATJXLFMk5Uu3oinCrI9sSp1GDRx7FBqexzBRnf
         RORZorYpG+SOtUTdWGAy0Dc19IYIhiJGhPaQaKlh8+J541dWHHivtNvrhwniO0w5pD84
         YGPw==
X-Forwarded-Encrypted: i=1; AJvYcCXtNq4ojHArJYNCVx/hqgJ8lkXMBwBwTSclHY22yhIcUuKV0OxSo4UysmNZ1oi5w9b3gJSXGj0bqG0g2I1teHnXROW491ZFsWH4IJVnbXQ=
X-Gm-Message-State: AOJu0YyZ0idV0TiHUMOpXOo01HwI5eO8+x/cAXhJIehS/LCsHTocpw/X
	VZlECayhCKfSq8jcBjjDs1EH2/z0REeKT6waTQ/NnCi0o7BM29+u+uz98zfhgnQ=
X-Google-Smtp-Source: AGHT+IGPdrbEBV0CeeCZNeTrRgNgJf7aHqaEJBRKpNuH0WmTph6aSccbMzRMxPdK2WuLUOoTdgv8Ig==
X-Received: by 2002:a05:620a:450c:b0:79d:8000:b2e0 with SMTP id af79cd13be357-79d8000b4dcmr821286485a.6.1719848145257;
        Mon, 01 Jul 2024 08:35:45 -0700 (PDT)
Message-ID: <378af810-02ea-4a66-b003-c1303f599e2a@citrix.com>
Date: Mon, 1 Jul 2024 16:35:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] x86/entry: don't clear DF when raising #UD for
 lack of syscall handler
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <36cf1c15-faa5-4e25-8fdd-9c52076f4ca2@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <36cf1c15-faa5-4e25-8fdd-9c52076f4ca2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/03/2024 1:44 pm, Jan Beulich wrote:
> --- a/xen/arch/x86/x86_64/entry.S
> +++ b/xen/arch/x86/x86_64/entry.S
> @@ -47,12 +55,13 @@ UNLIKELY_START(z, syscall_no_callback) /
>          testb $4, X86_EXC_UD * TRAPINFO_sizeof + TRAPINFO_flags(%rdi)
>          setnz %cl
>          lea   TBF_EXCEPTION(, %rcx, TBF_INTERRUPT), %ecx
> +        or    $~0, %esi                 # don't clear DF

Our predominant comment style is /* */

>  UNLIKELY_END(syscall_no_callback)
>  
>          movq  %rax,TRAPBOUNCE_eip(%rdx)
>          movb  %cl,TRAPBOUNCE_flags(%rdx)
>          call  create_bounce_frame
> -        andl  $~X86_EFLAGS_DF,UREGS_eflags(%rsp)
> +        and   %esi, UREGS_eflags(%rsp)

Could we gain a /* Conditionally clear DF */ comment here?

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

CC Oleksii for 4.19.  This fixes a subtle regression in the PV ABI
caused by a post-XSA fix a few years ago.

It's a low-risk fix to take; while I still don't have an XTF test
covering this, the corner case it's changing used to be completely fatal
to guests, so it's a corner unused in practice.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 15:36:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 15:36:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751823.1159901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOJ4m-0002Fs-NX; Mon, 01 Jul 2024 15:36:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751823.1159901; Mon, 01 Jul 2024 15: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 1sOJ4m-0002F4-KH; Mon, 01 Jul 2024 15:36:20 +0000
Received: by outflank-mailman (input) for mailman id 751823;
 Mon, 01 Jul 2024 15: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=Ypwj=OB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sOJ4l-0002DD-3H
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 15:36:19 +0000
Received: from mail-qt1-x829.google.com (mail-qt1-x829.google.com
 [2607:f8b0:4864:20::829])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a83866e6-37bf-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 17:36:17 +0200 (CEST)
Received: by mail-qt1-x829.google.com with SMTP id
 d75a77b69052e-446427c5923so30706931cf.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 08:36:17 -0700 (PDT)
Received: from [10.125.226.166] ([160.101.139.1])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b59e5f26b6sm34101266d6.95.2024.07.01.08.36.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 08: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: a83866e6-37bf-11ef-90a5-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719848177; x=1720452977; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Do2HFC7DM3iiayLzVb3+MIhQmUeBgWluU1vXilLnJJ4=;
        b=f4WbquxHliOEj+GtIybwISTNW8pvIbvrIh0UMi6QSSMvgDziML7lRQLOUv8vToEhnm
         qDIiVAkuj7vAKE55wbPATXaE7BiLGTMLdaekzv+qZjve0GKtkvYhkIg19V9FSbnUiM1d
         E34siwVMt8BrL/U2BWbEDAT83WieiLN7KY+Hg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719848177; x=1720452977;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Do2HFC7DM3iiayLzVb3+MIhQmUeBgWluU1vXilLnJJ4=;
        b=YHSOCPWIUeHWKxkdG06vSKPmFr6KQGjvpzTexUCIfcFqJDZf81b6rbKxjwWwJsU9x5
         Rd5IkkeGuKeFzSoDebGfrhpM3KVnOUltpowWl/XidLkPdkLi7M6OstMJFck73IN4t5PA
         URgs6EzUU+nRlLPtuJz/WXOAFyGfbRY9SPbgTLq29+IUCql4+ApTl4M7gJOZxQvorNSi
         3+XitEqxfy2ZYZGiRp50iUPKxkWPLBnLwuYEaN31+wty0sd9KjRcopNrahrHM+F8BKLx
         yOwvAt7a/t60Y4X7jve7tdO9Dfdke+9hkVE5cjrvbQdpZZLZkKtMZQjKhfjDA/nmnH2Z
         nPeA==
X-Forwarded-Encrypted: i=1; AJvYcCUfap+ujixzN30SHO5z04TU6RGmh8HGkGJElEz3rRvLn9AagqcCBOsc2LcclnoLLr7NRLgGZsmf00B/I5x7AfUEDlyS/HKvIvAeEM1LUME=
X-Gm-Message-State: AOJu0YxszI/RPwqk7mnrWiWa2JVvRKO/dZqcI1kAMIImsRpCC8dq8Vn2
	/wgDi8Tbqd4PyG2uZPOKdTWN2qSHxxDfLQzhh81dHks0vKV7sGSaLMNio4W02+I=
X-Google-Smtp-Source: AGHT+IFhHCrbWZg3nltlNQ3mUHt3fbWSObZeoxugNA3GTeH8FCyHRkSblPshB5z3KatkblUrkM8+Ng==
X-Received: by 2002:a05:6214:d83:b0:6b5:9183:b435 with SMTP id 6a1803df08f44-6b5a542f294mr139018426d6.15.1719848176805;
        Mon, 01 Jul 2024 08:36:16 -0700 (PDT)
Message-ID: <0ef2392a-0da8-4cf6-b795-7a704e2ff396@citrix.com>
Date: Mon, 1 Jul 2024 16:36:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19?] xen: avoid UB in guest handle field accessors
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <d0b9a1e0-5c70-42c5-9c63-2e3af82487b2@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <d0b9a1e0-5c70-42c5-9c63-2e3af82487b2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24/06/2024 1:28 pm, Jan Beulich wrote:
> Much like noted in 43d5c5d5f70b ("xen: avoid UB in guest handle
> arithmetic"), address calculations involved in accessing a struct field
> can overflow, too. Cast respective pointers to "unsigned long" and
> convert type checking accordingly. Remaining arithmetic is, despite
> there possibly being mathematical overflow, okay as per the C99 spec:
> "A computation involving unsigned operands can never overflow, because a
> result that cannot be represented by the resulting unsigned integer type
> is reduced modulo the number that is one greater than the largest value
> that can be represented by the resulting type." The overflow that we
> need to guard against is checked for in array_access_ok().
>
> While there add the missing (see {,__}copy_to_guest_offset()) is-not-
> const checks to {,__}copy_field_to_guest().
>
> Typically, but not always, no change to generated code; code generation
> (register allocation) is different for at least common/grant_table.c.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 16:21:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 16:21:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751838.1159911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOJmO-0002jj-3q; Mon, 01 Jul 2024 16:21:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751838.1159911; Mon, 01 Jul 2024 16: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 1sOJmO-0002jc-1E; Mon, 01 Jul 2024 16:21:24 +0000
Received: by outflank-mailman (input) for mailman id 751838;
 Mon, 01 Jul 2024 16: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=geB4=OB=bounce.vates.tech=bounce-md_30504962.6682d77d.v1-0705d1d3cc834a03985c17a25c975ae7@srs-se1.protection.inumbo.net>)
 id 1sOJmN-0002jW-Dx
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 16:21:23 +0000
Received: from mail145-25.atl61.mandrillapp.com
 (mail145-25.atl61.mandrillapp.com [198.2.145.25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f1fd6761-37c5-11ef-b4bb-af5377834399;
 Mon, 01 Jul 2024 18:21:18 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-25.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4WCWWK2BcMz35hdVW
 for <xen-devel@lists.xenproject.org>; Mon,  1 Jul 2024 16:21:17 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0705d1d3cc834a03985c17a25c975ae7; Mon, 01 Jul 2024 16:21: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: f1fd6761-37c5-11ef-b4bb-af5377834399
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1719850877; x=1720111377;
	bh=D6Xn07DWPt6RLLyPEmJr9xUKep84FjQeTYDK7N3xyWk=;
	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=p5XT8UAkd4rMqJNjeXEC1QbkpFw2fva655dmDQTwIpG273WEj6D/thEMbm0tIfrc3
	 Qc5/Bl2jTln/8zilENvyOBoYG1CMeg20rmHCTB0pw2mzynItV7hyfD87fQSEBMu0qE
	 ig2JpTYEdWqiQKpcLb57wJmWbE2asiHBCZ+mJffFR3nDIL1d2GzqofxbZHCLYKiIpw
	 rGGPq268B1lga0z8cERJsfsTMIKvddDYCf947KcC+0Ovz7HMBvy1j6AENkDDTxKp3C
	 QJNtNFCM0EcfMAalW61+rvWnj9fXG+O0FQmINrPy5/WfDpD2X2VHpkzN2vD5jtAFqA
	 NkELdraIt64Gg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1719850877; x=1720111377; i=anthony.perard@vates.tech;
	bh=D6Xn07DWPt6RLLyPEmJr9xUKep84FjQeTYDK7N3xyWk=;
	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=O2K7riaI4Y/+QypTIMksg3Fi/e2/kTgDbEM6/AW9qqgZzYLWp6zNCx/qChKvHrCYe
	 j+iljCTYsekMI5UrFgMMuUXtoFjcj2gb1JjMecXYbNJKgRB1c8kGtRjkTHp4f2Uy8U
	 ek8i2KOiQQGlTyS/Poc3fib7tAdLfIO//ULsEVG1WB5QdnbFwQG0/8JjZ9zLAh/T+v
	 RUfrgFfxCxkno0aYBJ7KOzVNeypWpmA6JoE14UZ5ApjzZZshDBOEwFZDD5BnWVoh4M
	 3fXnX+OnUIu0A2s1icT4g299sjG8ORse9DoJXqqI9WBpTxGraIw3D8Pv3dbzVdt8KL
	 HFAH9AXm06FwA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v8=202/8]=20xen:=20mapcache:=20Unmap=20first=20entries=20in=20buckets?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1719850876152
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: qemu-devel@nongnu.org, sstabellini@kernel.org, jgross@suse.com, "Edgar E. Iglesias" <edgar.iglesias@amd.com>, Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Message-Id: <ZoLXe9wjyXCU88Y0@l14>
References: <20240529140739.1387692-1-edgar.iglesias@gmail.com> <20240529140739.1387692-3-edgar.iglesias@gmail.com> <ZoKnQLBwIwh004yy@l14> <CAJy5ezqdxQ_y_sCyP243yTfgOJfLh1COzN9Eg+PxxoaVeOh-mQ@mail.gmail.com> <CAJy5ezrSs8r=ibTgb_oURdFTDW07sVVBeU6Rw7jsM+iaqPLNgg@mail.gmail.com> <CAJy5ezrPgUR3-gWK3Mfnc7iAgV3MEStSardY+0kkvHB+PHbe4w@mail.gmail.com>
In-Reply-To: <CAJy5ezrPgUR3-gWK3Mfnc7iAgV3MEStSardY+0kkvHB+PHbe4w@mail.gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.0705d1d3cc834a03985c17a25c975ae7?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240701:md
Date: Mon, 01 Jul 2024 16:21:17 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 01, 2024 at 04:34:53PM +0200, Edgar E. Iglesias wrote:
> On Mon, Jul 1, 2024 at 4:30=E2=80=AFPM Edgar E. Iglesias <edgar.iglesias@=
gmail.com>
> wrote:
> > On Mon, Jul 1, 2024 at 3:58=E2=80=AFPM Edgar E. Iglesias <edgar.iglesia=
s@gmail.com>
> > wrote:
> >> Any chance you could try to get a backtrace from QEMU when it failed?

Here it is:


#3  0x00007fa8762f4472 in __GI_abort () at ./stdlib/abort.c:79
        save_stage =3D 1
        act =3D {__sigaction_handler =3D {sa_handler =3D 0x20, sa_sigaction=
 =3D 0x20}, sa_mask =3D {__val =3D {94603440166168, 18446744073709551615, 9=
4603406369640, 0, 0, 94603406346720, 94603440166168, 140361486774256, 0, 14=
0361486773376, 94603401285536, 140361496232688, 94603440166096, 14036148677=
3456, 94603401289576, 140360849280256}}, sa_flags =3D -1804462896, sa_resto=
rer =3D 0x748f2d40}
#4  0x0000560a92230f0d in qemu_get_ram_block (addr=3D18446744073709551615) =
at ../system/physmem.c:801
        block =3D 0x0
#5  0x0000560a922350ab in qemu_ram_block_from_host (ptr=3D0x7fa84e8fcd00, r=
ound_offset=3Dfalse, offset=3D0x7fa8748f2de8) at ../system/physmem.c:2280
        ram_addr =3D 18446744073709551615
        _rcu_read_auto =3D 0x1
        block =3D 0x0
        host =3D 0x7fa84e8fcd00 ""
        _rcu_read_auto =3D 0x7fa8751f8288
#6  0x0000560a92229669 in memory_region_from_host (ptr=3D0x7fa84e8fcd00, of=
fset=3D0x7fa8748f2de8) at ../system/memory.c:2440
        block =3D 0x0
#7  0x0000560a92237418 in address_space_unmap (as=3D0x560a94b05a20, buffer=
=3D0x7fa84e8fcd00, len=3D32768, is_write=3Dtrue, access_len=3D32768) at ../=
system/physmem.c:3246
        mr =3D 0x0
        addr1 =3D 0
        __PRETTY_FUNCTION__ =3D "address_space_unmap"
#8  0x0000560a91fd6cd3 in dma_memory_unmap (as=3D0x560a94b05a20, buffer=3D0=
x7fa84e8fcd00, len=3D32768, dir=3DDMA_DIRECTION_FROM_DEVICE, access_len=3D3=
2768) at /root/build/qemu/include/sysemu/dma.h:236
#9  0x0000560a91fd763d in dma_blk_unmap (dbs=3D0x560a94d87400) at ../system=
/dma-helpers.c:93
        i =3D 1
#10 0x0000560a91fd76e6 in dma_complete (dbs=3D0x560a94d87400, ret=3D0) at .=
./system/dma-helpers.c:105
        __PRETTY_FUNCTION__ =3D "dma_complete"
#11 0x0000560a91fd781c in dma_blk_cb (opaque=3D0x560a94d87400, ret=3D0) at =
../system/dma-helpers.c:129
        dbs =3D 0x560a94d87400
        ctx =3D 0x560a9448da90
        cur_addr =3D 0
        cur_len =3D 0
        mem =3D 0x0
        __PRETTY_FUNCTION__ =3D "dma_blk_cb"
#12 0x0000560a9232e974 in blk_aio_complete (acb=3D0x560a9448d5f0) at ../blo=
ck/block-backend.c:1555
#13 0x0000560a9232ebd1 in blk_aio_read_entry (opaque=3D0x560a9448d5f0) at .=
./block/block-backend.c:1610
        acb =3D 0x560a9448d5f0
        rwco =3D 0x560a9448d618
        qiov =3D 0x560a94d87460
        __PRETTY_FUNCTION__ =3D "blk_aio_read_entry"

> > One more thing, regarding this specific patch. I don't think we should
> > clear the
> > entire entry, the next field should be kept, otherwise we'll disconnect
> > following
> > mappings that will never be found again. IIUC, this could very well be
> > causing the problem you see.
> >
> > Does the following make sense?
> >
> And here without double-freeing entry->valid_mapping:
> 
> diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> index 5f23b0adbe..667807b3b6 100644
> --- a/hw/xen/xen-mapcache.c
> +++ b/hw/xen/xen-mapcache.c
> @@ -597,7 +597,13 @@ static void
> xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
>          pentry->next =3D entry->next;
>          g_free(entry);
>      } else {
> -        memset(entry, 0, sizeof *entry);
> +        /* Invalidate mapping.  */
> +        entry->paddr_index =3D 0;
> +        entry->vaddr_base =3D NULL;
> +        entry->size =3D 0;
> +        entry->valid_mapping =3D NULL;
> +        entry->flags =3D 0;
> +        /* Keep entry->next pointing to the rest of the list.  */
>      }
>  }

I've tried this patch, and that fix the issue I've seen. I'll run more
tests on it, just in case, but there's no reason that would break
something else.

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 Jul 01 16:58:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 16:58:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751844.1159921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOKLt-0007Qu-RQ; Mon, 01 Jul 2024 16:58:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751844.1159921; Mon, 01 Jul 2024 16:58: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 1sOKLt-0007Qn-Oa; Mon, 01 Jul 2024 16:58:05 +0000
Received: by outflank-mailman (input) for mailman id 751844;
 Mon, 01 Jul 2024 16:58: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=A8Qz=OB=gmail.com=mhkelley58@srs-se1.protection.inumbo.net>)
 id 1sOKLs-0007Qh-Vq
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 16:58:05 +0000
Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com
 [2607:f8b0:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 137c6606-37cb-11ef-90a5-e314d9c70b13;
 Mon, 01 Jul 2024 18:58:02 +0200 (CEST)
Received: by mail-pg1-x52a.google.com with SMTP id
 41be03b00d2f7-71884eda768so1701538a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 09:58:02 -0700 (PDT)
Received: from localhost.localdomain (c-67-161-114-176.hsd1.wa.comcast.net.
 [67.161.114.176]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-1fac1535cbdsm67264315ad.134.2024.07.01.09.57.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 09:58: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: 137c6606-37cb-11ef-90a5-e314d9c70b13
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719853081; x=1720457881; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:reply-to:message-id:date
         :subject:to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=9mex+pNJlMWaxi1/bUYSvLhS6pWvK+lqCIzgcWFWVK8=;
        b=cYkcCMGsqk2CAtWZdUAg8jhUAazuBziW9B6ERXt6bO1TjS5vei1Fv/v93wtfggJJ4n
         vvIo6RhrjN8lsjsmpGpoROq9l0G8Xw/k2/oqb7v2wezFC7vbFyJ8G4z7KsSruj3+sLew
         451vpCS/018RYhs+GPKboEKMky6q4ImQ+9AOFpgPozuoshYL0emjl8aGr9KKnX4Ll6uM
         54e/xuW4gV/PMCpyaoCD8JPrcEOHN2LkZEJux0CzUlTGUfCigMd4QTlHoGhRX9ztGhhc
         0sGPOLR5JNd3ZJAlKnDM2+AzCHiIGCpLTNVouxjmMU8wAzD3L+BsiqoSj7YBdyxwc825
         gawA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719853081; x=1720457881;
        h=content-transfer-encoding:mime-version:reply-to:message-id:date
         :subject:to:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9mex+pNJlMWaxi1/bUYSvLhS6pWvK+lqCIzgcWFWVK8=;
        b=gOOo97GaykM6K+fNNsP/UgYa5WHdGGESh5Ma2PncsmdIBLLmig1EtqJyGbtvPe3FKe
         Z54ntDA97AmiEOCXNr+fBXLiU80zDHgcpnqaec6kxj8zVRu8d3BHszp72aQianC4wTAz
         pkRx+UoKt5nfmZjk/Ab45wk285T9aHE1ZY9RWdE+NZGYArqHvn+oHNSgnxoovBlsrLdL
         GLtIXOcGU8xki+lFLHNgA21kXd5xjR9jhw4384GNQ3JgjVHVU7Ih9Dy4pv96q6ni7AL9
         NbggtVOSnnCm0Xn1zxcIt3eo3KCRvh/JQRgcnJJnQjl6dmuUP5s222NYIpVqT9w7ykCE
         ODYw==
X-Forwarded-Encrypted: i=1; AJvYcCXyvOUjD1Ab/g8yIj6+M7Iz53GJiGjNLphPQi28n/EWEvulXNet3J/NXDV7/8N9PJqnxTBuuSYD2WfAgXgzroTi9IFqhklpdz3kpqxBMz0=
X-Gm-Message-State: AOJu0YyWe+IrCYtu5mxqTo/KlszghS+mGrUkPWlDTPQn3f+2PJuvdnWy
	7GoGmbPfcKmqIuxJOc1cOHt8tfeXawqUplOE3Iq3r+e9NKM0asN1
X-Google-Smtp-Source: AGHT+IG6unF3jKkTvyh72Ua499kz3xQuKyG6mZzZGyfnI3dJZYiNuxzn12IJCfiJmIAFi1o7d3x2iQ==
X-Received: by 2002:a05:6a21:99a5:b0:1bd:1aca:2b39 with SMTP id adf61e73a8af0-1bef60e3bcdmr5729800637.8.1719853080572;
        Mon, 01 Jul 2024 09:58:00 -0700 (PDT)
From: mhkelley58@gmail.com
X-Google-Original-From: mhklinux@outlook.com
To: robin.murphy@arm.com,
	joro@8bytes.org,
	will@kernel.org,
	jgross@suse.com,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	petr@tesarici.cz,
	iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 1/1] swiotlb: Reduce swiotlb pool lookups
Date: Mon,  1 Jul 2024 09:57:46 -0700
Message-Id: <20240701165746.1358-1-mhklinux@outlook.com>
X-Mailer: git-send-email 2.25.1
Reply-To: mhklinux@outlook.com
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Michael Kelley <mhklinux@outlook.com>

With CONFIG_SWIOTLB_DYNAMIC enabled, each round-trip map/unmap pair
in the swiotlb results in 6 calls to swiotlb_find_pool(). In multiple
places, the pool is found and used in one function, and then must
found again in the next function that is called because only the
tlb_addr is passed as an argument. These are the six call sites:

dma_direct_map_page:
1. swiotlb_map->swiotlb_tbl_map_single->swiotlb_bounce

dma_direct_unmap_page:
2. dma_direct_sync_single_for_cpu->is_swiotlb_buffer
3. dma_direct_sync_single_for_cpu->swiotlb_sync_single_for_cpu->
	swiotlb_bounce
4. is_swiotlb_buffer
5. swiotlb_tbl_unmap_single->swiotlb_del_transient
6. swiotlb_tbl_unmap_single->swiotlb_release_slots

Reduce the number of calls by finding the pool at a higher level, and
passing it as an argument instead of searching again. A key change is
for is_swiotlb_buffer() to return a pool pointer instead of a boolean,
and then pass this pool pointer to subsequent swiotlb functions.

Since is_swiotlb_buffer() no longer returns a boolean, rename some
functions to reflect the change:
* swiotlb_find_pool() becomes __swiotlb_find_pool()
* is_swiotlb_buffer() becomes swiotlb_find_pool()
* is_xen_swiotlb_buffer() becomes xen_swiotlb_find_pool()

With these changes, a round-trip map/unmap pair requires only 2 pool
lookups (listed using the new names):

dma_direct_unmap_page:
1. dma_direct_sync_single_for_cpu->swiotlb_find_pool
2. swiotlb_find_pool

These changes come from noticing the inefficiencies in a code review,
not from performance measurements. With CONFIG_SWIOTLB_DYNAMIC,
__swiotlb_find_pool() is not trivial, and it uses an RCU read lock,
so avoiding the redundant calls helps performance in a hot path.
When CONFIG_SWIOTLB_DYNAMIC is *not* set, the code size reduction
is minimal and the perf benefits are likely negligible, but no
harm is done.

No functional change is intended.

Signed-off-by: Michael Kelley <mhklinux@outlook.com>
---
Changes in v2 vs. RFC version[1]:
* In swiotlb_find_pool(), use __swiotlb_find_pool() instead of open
  coding when CONFIG_SWIOTLB_DYNAMIC is not set [Petr Tesařík]
* Rename functions as described in the commit message to reflect that
  is_swiotlb_buffer() no longer returns a boolean [Petr Tesařík,
  Christoph Hellwig]
* Updated commit message and patch Subject

[1] https://lore.kernel.org/linux-iommu/20240607031421.182589-1-mhklinux@outlook.com/

 drivers/iommu/dma-iommu.c   | 27 ++++++++++-----
 drivers/xen/swiotlb-xen.c   | 27 +++++++++------
 include/linux/scatterlist.h |  2 +-
 include/linux/swiotlb.h     | 68 ++++++++++++++++++++-----------------
 kernel/dma/direct.c         | 14 +++++---
 kernel/dma/direct.h         | 18 ++++++----
 kernel/dma/swiotlb.c        | 53 +++++++++++++++--------------
 7 files changed, 122 insertions(+), 87 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 43520e7275cc..0e2a9b043ca6 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1073,6 +1073,7 @@ static void iommu_dma_sync_single_for_cpu(struct device *dev,
 		dma_addr_t dma_handle, size_t size, enum dma_data_direction dir)
 {
 	phys_addr_t phys;
+	struct io_tlb_pool *pool;
 
 	if (dev_is_dma_coherent(dev) && !dev_use_swiotlb(dev, size, dir))
 		return;
@@ -1081,21 +1082,25 @@ static void iommu_dma_sync_single_for_cpu(struct device *dev,
 	if (!dev_is_dma_coherent(dev))
 		arch_sync_dma_for_cpu(phys, size, dir);
 
-	if (is_swiotlb_buffer(dev, phys))
-		swiotlb_sync_single_for_cpu(dev, phys, size, dir);
+	pool = swiotlb_find_pool(dev, phys);
+	if (pool)
+		swiotlb_sync_single_for_cpu(dev, phys, size, dir, pool);
 }
 
 static void iommu_dma_sync_single_for_device(struct device *dev,
 		dma_addr_t dma_handle, size_t size, enum dma_data_direction dir)
 {
 	phys_addr_t phys;
+	struct io_tlb_pool *pool;
 
 	if (dev_is_dma_coherent(dev) && !dev_use_swiotlb(dev, size, dir))
 		return;
 
 	phys = iommu_iova_to_phys(iommu_get_dma_domain(dev), dma_handle);
-	if (is_swiotlb_buffer(dev, phys))
-		swiotlb_sync_single_for_device(dev, phys, size, dir);
+
+	pool = swiotlb_find_pool(dev, phys);
+	if (pool)
+		swiotlb_sync_single_for_device(dev, phys, size, dir, pool);
 
 	if (!dev_is_dma_coherent(dev))
 		arch_sync_dma_for_device(phys, size, dir);
@@ -1189,8 +1194,12 @@ static dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
 		arch_sync_dma_for_device(phys, size, dir);
 
 	iova = __iommu_dma_map(dev, phys, size, prot, dma_mask);
-	if (iova == DMA_MAPPING_ERROR && is_swiotlb_buffer(dev, phys))
-		swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs);
+	if (iova == DMA_MAPPING_ERROR) {
+		struct io_tlb_pool *pool = swiotlb_find_pool(dev, phys);
+
+		if (pool)
+			swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs, pool);
+	}
 	return iova;
 }
 
@@ -1199,6 +1208,7 @@ static void iommu_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
 {
 	struct iommu_domain *domain = iommu_get_dma_domain(dev);
 	phys_addr_t phys;
+	struct io_tlb_pool *pool;
 
 	phys = iommu_iova_to_phys(domain, dma_handle);
 	if (WARN_ON(!phys))
@@ -1209,8 +1219,9 @@ static void iommu_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
 
 	__iommu_dma_unmap(dev, dma_handle, size);
 
-	if (unlikely(is_swiotlb_buffer(dev, phys)))
-		swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs);
+	pool = swiotlb_find_pool(dev, phys);
+	if (unlikely(pool))
+		swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs, pool);
 }
 
 /*
diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
index 6579ae3f6dac..1696941634f1 100644
--- a/drivers/xen/swiotlb-xen.c
+++ b/drivers/xen/swiotlb-xen.c
@@ -88,7 +88,7 @@ static inline int range_straddles_page_boundary(phys_addr_t p, size_t size)
 	return 0;
 }
 
-static int is_xen_swiotlb_buffer(struct device *dev, dma_addr_t dma_addr)
+static struct io_tlb_pool *xen_swiotlb_find_pool(struct device *dev, dma_addr_t dma_addr)
 {
 	unsigned long bfn = XEN_PFN_DOWN(dma_to_phys(dev, dma_addr));
 	unsigned long xen_pfn = bfn_to_local_pfn(bfn);
@@ -99,8 +99,8 @@ static int is_xen_swiotlb_buffer(struct device *dev, dma_addr_t dma_addr)
 	 * in our domain. Therefore _only_ check address within our domain.
 	 */
 	if (pfn_valid(PFN_DOWN(paddr)))
-		return is_swiotlb_buffer(dev, paddr);
-	return 0;
+		return swiotlb_find_pool(dev, paddr);
+	return NULL;
 }
 
 #ifdef CONFIG_X86
@@ -228,7 +228,8 @@ static dma_addr_t xen_swiotlb_map_page(struct device *dev, struct page *page,
 	 */
 	if (unlikely(!dma_capable(dev, dev_addr, size, true))) {
 		swiotlb_tbl_unmap_single(dev, map, size, dir,
-				attrs | DMA_ATTR_SKIP_CPU_SYNC);
+				attrs | DMA_ATTR_SKIP_CPU_SYNC,
+				__swiotlb_find_pool(dev, map));
 		return DMA_MAPPING_ERROR;
 	}
 
@@ -254,6 +255,7 @@ static void xen_swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 	phys_addr_t paddr = xen_dma_to_phys(hwdev, dev_addr);
+	struct io_tlb_pool *pool;
 
 	BUG_ON(dir == DMA_NONE);
 
@@ -265,8 +267,9 @@ static void xen_swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr,
 	}
 
 	/* NOTE: We use dev_addr here, not paddr! */
-	if (is_xen_swiotlb_buffer(hwdev, dev_addr))
-		swiotlb_tbl_unmap_single(hwdev, paddr, size, dir, attrs);
+	pool = xen_swiotlb_find_pool(hwdev, dev_addr);
+	if (pool)
+		swiotlb_tbl_unmap_single(hwdev, paddr, size, dir, attrs, pool);
 }
 
 static void
@@ -274,6 +277,7 @@ xen_swiotlb_sync_single_for_cpu(struct device *dev, dma_addr_t dma_addr,
 		size_t size, enum dma_data_direction dir)
 {
 	phys_addr_t paddr = xen_dma_to_phys(dev, dma_addr);
+	struct io_tlb_pool *pool;
 
 	if (!dev_is_dma_coherent(dev)) {
 		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dma_addr))))
@@ -282,8 +286,9 @@ xen_swiotlb_sync_single_for_cpu(struct device *dev, dma_addr_t dma_addr,
 			xen_dma_sync_for_cpu(dev, dma_addr, size, dir);
 	}
 
-	if (is_xen_swiotlb_buffer(dev, dma_addr))
-		swiotlb_sync_single_for_cpu(dev, paddr, size, dir);
+	pool = xen_swiotlb_find_pool(dev, dma_addr);
+	if (pool)
+		swiotlb_sync_single_for_cpu(dev, paddr, size, dir, pool);
 }
 
 static void
@@ -291,9 +296,11 @@ xen_swiotlb_sync_single_for_device(struct device *dev, dma_addr_t dma_addr,
 		size_t size, enum dma_data_direction dir)
 {
 	phys_addr_t paddr = xen_dma_to_phys(dev, dma_addr);
+	struct io_tlb_pool *pool;
 
-	if (is_xen_swiotlb_buffer(dev, dma_addr))
-		swiotlb_sync_single_for_device(dev, paddr, size, dir);
+	pool = xen_swiotlb_find_pool(dev, dma_addr);
+	if (pool)
+		swiotlb_sync_single_for_device(dev, paddr, size, dir, pool);
 
 	if (!dev_is_dma_coherent(dev)) {
 		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dma_addr))))
diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
index 77df3d7b18a6..e61d164622db 100644
--- a/include/linux/scatterlist.h
+++ b/include/linux/scatterlist.h
@@ -332,7 +332,7 @@ static inline void sg_dma_unmark_bus_address(struct scatterlist *sg)
  * Description:
  *   Returns true if the scatterlist was marked for SWIOTLB bouncing. Not all
  *   elements may have been bounced, so the caller would have to check
- *   individual SG entries with is_swiotlb_buffer().
+ *   individual SG entries with swiotlb_find_pool().
  */
 static inline bool sg_dma_is_swiotlb(struct scatterlist *sg)
 {
diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
index 14bc10c1bb23..486882fe3752 100644
--- a/include/linux/swiotlb.h
+++ b/include/linux/swiotlb.h
@@ -42,24 +42,6 @@ int swiotlb_init_late(size_t size, gfp_t gfp_mask,
 	int (*remap)(void *tlb, unsigned long nslabs));
 extern void __init swiotlb_update_mem_attributes(void);
 
-phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, phys_addr_t phys,
-		size_t mapping_size,
-		unsigned int alloc_aligned_mask, enum dma_data_direction dir,
-		unsigned long attrs);
-
-extern void swiotlb_tbl_unmap_single(struct device *hwdev,
-				     phys_addr_t tlb_addr,
-				     size_t mapping_size,
-				     enum dma_data_direction dir,
-				     unsigned long attrs);
-
-void swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_addr,
-		size_t size, enum dma_data_direction dir);
-void swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_addr,
-		size_t size, enum dma_data_direction dir);
-dma_addr_t swiotlb_map(struct device *dev, phys_addr_t phys,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
-
 #ifdef CONFIG_SWIOTLB
 
 /**
@@ -145,11 +127,11 @@ struct io_tlb_mem {
 
 #ifdef CONFIG_SWIOTLB_DYNAMIC
 
-struct io_tlb_pool *swiotlb_find_pool(struct device *dev, phys_addr_t paddr);
+struct io_tlb_pool *__swiotlb_find_pool(struct device *dev, phys_addr_t paddr);
 
 #else
 
-static inline struct io_tlb_pool *swiotlb_find_pool(struct device *dev,
+static inline struct io_tlb_pool *__swiotlb_find_pool(struct device *dev,
 						    phys_addr_t paddr)
 {
 	return &dev->dma_io_tlb_mem->defpool;
@@ -158,22 +140,23 @@ static inline struct io_tlb_pool *swiotlb_find_pool(struct device *dev,
 #endif
 
 /**
- * is_swiotlb_buffer() - check if a physical address belongs to a swiotlb
+ * swiotlb_find_pool() - find the swiotlb pool to which a physical address belongs
  * @dev:        Device which has mapped the buffer.
  * @paddr:      Physical address within the DMA buffer.
  *
- * Check if @paddr points into a bounce buffer.
+ * Find the swiotlb pool that @paddr points into.
  *
  * Return:
- * * %true if @paddr points into a bounce buffer
- * * %false otherwise
+ * * pool address if @paddr points into a bounce buffer
+ * * NULL if @paddr does not point into a bounce buffer. As such, this function
+ *   can be used to determine if @paddr denotes a swiotlb bounce buffer.
  */
-static inline bool is_swiotlb_buffer(struct device *dev, phys_addr_t paddr)
+static inline struct io_tlb_pool *swiotlb_find_pool(struct device *dev, phys_addr_t paddr)
 {
 	struct io_tlb_mem *mem = dev->dma_io_tlb_mem;
 
 	if (!mem)
-		return false;
+		return NULL;
 
 #ifdef CONFIG_SWIOTLB_DYNAMIC
 	/*
@@ -182,16 +165,18 @@ static inline bool is_swiotlb_buffer(struct device *dev, phys_addr_t paddr)
 	 * If a SWIOTLB address is checked on another CPU, then it was
 	 * presumably loaded by the device driver from an unspecified private
 	 * data structure. Make sure that this load is ordered before reading
-	 * dev->dma_uses_io_tlb here and mem->pools in swiotlb_find_pool().
+	 * dev->dma_uses_io_tlb here and mem->pools in __swiotlb_find_pool().
 	 *
 	 * This barrier pairs with smp_mb() in swiotlb_find_slots().
 	 */
 	smp_rmb();
-	return READ_ONCE(dev->dma_uses_io_tlb) &&
-		swiotlb_find_pool(dev, paddr);
+	if (!READ_ONCE(dev->dma_uses_io_tlb))
+		return NULL;
 #else
-	return paddr >= mem->defpool.start && paddr < mem->defpool.end;
+	if (paddr < mem->defpool.start || paddr >= mem->defpool.end)
+		return NULL;
 #endif
+	return __swiotlb_find_pool(dev, paddr);
 }
 
 static inline bool is_swiotlb_force_bounce(struct device *dev)
@@ -201,6 +186,25 @@ static inline bool is_swiotlb_force_bounce(struct device *dev)
 	return mem && mem->force_bounce;
 }
 
+phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, phys_addr_t phys,
+		size_t mapping_size,
+		unsigned int alloc_aligned_mask, enum dma_data_direction dir,
+		unsigned long attrs);
+
+extern void swiotlb_tbl_unmap_single(struct device *hwdev,
+				     phys_addr_t tlb_addr,
+				     size_t mapping_size,
+				     enum dma_data_direction dir,
+				     unsigned long attrs,
+				     struct io_tlb_pool *pool);
+
+void swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_addr,
+		size_t size, enum dma_data_direction dir, struct io_tlb_pool *pool);
+void swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_addr,
+		size_t size, enum dma_data_direction dir, struct io_tlb_pool *pool);
+dma_addr_t swiotlb_map(struct device *dev, phys_addr_t phys,
+		size_t size, enum dma_data_direction dir, unsigned long attrs);
+
 void swiotlb_init(bool addressing_limited, unsigned int flags);
 void __init swiotlb_exit(void);
 void swiotlb_dev_init(struct device *dev);
@@ -219,9 +223,9 @@ static inline void swiotlb_dev_init(struct device *dev)
 {
 }
 
-static inline bool is_swiotlb_buffer(struct device *dev, phys_addr_t paddr)
+static inline struct io_tlb_pool *swiotlb_find_pool(struct device *dev, phys_addr_t paddr)
 {
-	return false;
+	return NULL;
 }
 static inline bool is_swiotlb_force_bounce(struct device *dev)
 {
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index 4d543b1e9d57..edb126179390 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -399,14 +399,16 @@ void dma_direct_sync_sg_for_device(struct device *dev,
 		struct scatterlist *sgl, int nents, enum dma_data_direction dir)
 {
 	struct scatterlist *sg;
+	struct io_tlb_pool *pool;
 	int i;
 
 	for_each_sg(sgl, sg, nents, i) {
 		phys_addr_t paddr = dma_to_phys(dev, sg_dma_address(sg));
 
-		if (unlikely(is_swiotlb_buffer(dev, paddr)))
+		pool = swiotlb_find_pool(dev, paddr);
+		if (unlikely(pool))
 			swiotlb_sync_single_for_device(dev, paddr, sg->length,
-						       dir);
+						       dir, pool);
 
 		if (!dev_is_dma_coherent(dev))
 			arch_sync_dma_for_device(paddr, sg->length,
@@ -422,6 +424,7 @@ void dma_direct_sync_sg_for_cpu(struct device *dev,
 		struct scatterlist *sgl, int nents, enum dma_data_direction dir)
 {
 	struct scatterlist *sg;
+	struct io_tlb_pool *pool;
 	int i;
 
 	for_each_sg(sgl, sg, nents, i) {
@@ -430,9 +433,10 @@ void dma_direct_sync_sg_for_cpu(struct device *dev,
 		if (!dev_is_dma_coherent(dev))
 			arch_sync_dma_for_cpu(paddr, sg->length, dir);
 
-		if (unlikely(is_swiotlb_buffer(dev, paddr)))
+		pool = swiotlb_find_pool(dev, paddr);
+		if (unlikely(pool))
 			swiotlb_sync_single_for_cpu(dev, paddr, sg->length,
-						    dir);
+						    dir, pool);
 
 		if (dir == DMA_FROM_DEVICE)
 			arch_dma_mark_clean(paddr, sg->length);
@@ -640,7 +644,7 @@ size_t dma_direct_max_mapping_size(struct device *dev)
 bool dma_direct_need_sync(struct device *dev, dma_addr_t dma_addr)
 {
 	return !dev_is_dma_coherent(dev) ||
-	       is_swiotlb_buffer(dev, dma_to_phys(dev, dma_addr));
+	       swiotlb_find_pool(dev, dma_to_phys(dev, dma_addr));
 }
 
 /**
diff --git a/kernel/dma/direct.h b/kernel/dma/direct.h
index 18d346118fe8..6067120d7a42 100644
--- a/kernel/dma/direct.h
+++ b/kernel/dma/direct.h
@@ -57,9 +57,11 @@ static inline void dma_direct_sync_single_for_device(struct device *dev,
 		dma_addr_t addr, size_t size, enum dma_data_direction dir)
 {
 	phys_addr_t paddr = dma_to_phys(dev, addr);
+	struct io_tlb_pool *pool;
 
-	if (unlikely(is_swiotlb_buffer(dev, paddr)))
-		swiotlb_sync_single_for_device(dev, paddr, size, dir);
+	pool = swiotlb_find_pool(dev, paddr);
+	if (unlikely(pool))
+		swiotlb_sync_single_for_device(dev, paddr, size, dir, pool);
 
 	if (!dev_is_dma_coherent(dev))
 		arch_sync_dma_for_device(paddr, size, dir);
@@ -69,14 +71,16 @@ static inline void dma_direct_sync_single_for_cpu(struct device *dev,
 		dma_addr_t addr, size_t size, enum dma_data_direction dir)
 {
 	phys_addr_t paddr = dma_to_phys(dev, addr);
+	struct io_tlb_pool *pool;
 
 	if (!dev_is_dma_coherent(dev)) {
 		arch_sync_dma_for_cpu(paddr, size, dir);
 		arch_sync_dma_for_cpu_all();
 	}
 
-	if (unlikely(is_swiotlb_buffer(dev, paddr)))
-		swiotlb_sync_single_for_cpu(dev, paddr, size, dir);
+	pool = swiotlb_find_pool(dev, paddr);
+	if (unlikely(pool))
+		swiotlb_sync_single_for_cpu(dev, paddr, size, dir, pool);
 
 	if (dir == DMA_FROM_DEVICE)
 		arch_dma_mark_clean(paddr, size);
@@ -117,12 +121,14 @@ static inline void dma_direct_unmap_page(struct device *dev, dma_addr_t addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 	phys_addr_t phys = dma_to_phys(dev, addr);
+	struct io_tlb_pool *pool;
 
 	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
 		dma_direct_sync_single_for_cpu(dev, addr, size, dir);
 
-	if (unlikely(is_swiotlb_buffer(dev, phys)))
+	pool = swiotlb_find_pool(dev, phys);
+	if (unlikely(pool))
 		swiotlb_tbl_unmap_single(dev, phys, size, dir,
-					 attrs | DMA_ATTR_SKIP_CPU_SYNC);
+					 attrs | DMA_ATTR_SKIP_CPU_SYNC, pool);
 }
 #endif /* _KERNEL_DMA_DIRECT_H */
diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
index fe1ccb53596f..9e58ceca3d0b 100644
--- a/kernel/dma/swiotlb.c
+++ b/kernel/dma/swiotlb.c
@@ -763,16 +763,18 @@ static void swiotlb_dyn_free(struct rcu_head *rcu)
 }
 
 /**
- * swiotlb_find_pool() - find the IO TLB pool for a physical address
+ * __swiotlb_find_pool() - find the IO TLB pool for a physical address
  * @dev:        Device which has mapped the DMA buffer.
  * @paddr:      Physical address within the DMA buffer.
  *
  * Find the IO TLB memory pool descriptor which contains the given physical
- * address, if any.
+ * address, if any. This function is for use only when the dev is known to
+ * be using swiotlb. Use swiotlb_find_pool() for the more general case
+ * when this condition is not met.
  *
  * Return: Memory pool which contains @paddr, or %NULL if none.
  */
-struct io_tlb_pool *swiotlb_find_pool(struct device *dev, phys_addr_t paddr)
+struct io_tlb_pool *__swiotlb_find_pool(struct device *dev, phys_addr_t paddr)
 {
 	struct io_tlb_mem *mem = dev->dma_io_tlb_mem;
 	struct io_tlb_pool *pool;
@@ -855,9 +857,8 @@ static unsigned int swiotlb_align_offset(struct device *dev,
  * Bounce: copy the swiotlb buffer from or back to the original dma location
  */
 static void swiotlb_bounce(struct device *dev, phys_addr_t tlb_addr, size_t size,
-			   enum dma_data_direction dir)
+			   enum dma_data_direction dir, struct io_tlb_pool *mem)
 {
-	struct io_tlb_pool *mem = swiotlb_find_pool(dev, tlb_addr);
 	int index = (tlb_addr - mem->start) >> IO_TLB_SHIFT;
 	phys_addr_t orig_addr = mem->slots[index].orig_addr;
 	size_t alloc_size = mem->slots[index].alloc_size;
@@ -1243,7 +1244,7 @@ static int swiotlb_find_slots(struct device *dev, phys_addr_t orig_addr,
 	 * that was made by swiotlb_dyn_alloc() on a third CPU (cf. multicopy
 	 * atomicity).
 	 *
-	 * See also the comment in is_swiotlb_buffer().
+	 * See also the comment in swiotlb_find_pool().
 	 */
 	smp_mb();
 
@@ -1435,13 +1436,13 @@ phys_addr_t swiotlb_tbl_map_single(struct device *dev, phys_addr_t orig_addr,
 	 * hardware behavior.  Use of swiotlb is supposed to be transparent,
 	 * i.e. swiotlb must not corrupt memory by clobbering unwritten bytes.
 	 */
-	swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_TO_DEVICE);
+	swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_TO_DEVICE, pool);
 	return tlb_addr;
 }
 
-static void swiotlb_release_slots(struct device *dev, phys_addr_t tlb_addr)
+static void swiotlb_release_slots(struct device *dev, phys_addr_t tlb_addr,
+				  struct io_tlb_pool *mem)
 {
-	struct io_tlb_pool *mem = swiotlb_find_pool(dev, tlb_addr);
 	unsigned long flags;
 	unsigned int offset = swiotlb_align_offset(dev, 0, tlb_addr);
 	int index, nslots, aindex;
@@ -1505,11 +1506,9 @@ static void swiotlb_release_slots(struct device *dev, phys_addr_t tlb_addr)
  *
  * Return: %true if @tlb_addr belonged to a transient pool that was released.
  */
-static bool swiotlb_del_transient(struct device *dev, phys_addr_t tlb_addr)
+static bool swiotlb_del_transient(struct device *dev, phys_addr_t tlb_addr,
+				  struct io_tlb_pool *pool)
 {
-	struct io_tlb_pool *pool;
-
-	pool = swiotlb_find_pool(dev, tlb_addr);
 	if (!pool->transient)
 		return false;
 
@@ -1522,7 +1521,8 @@ static bool swiotlb_del_transient(struct device *dev, phys_addr_t tlb_addr)
 #else  /* !CONFIG_SWIOTLB_DYNAMIC */
 
 static inline bool swiotlb_del_transient(struct device *dev,
-					 phys_addr_t tlb_addr)
+					 phys_addr_t tlb_addr,
+					 struct io_tlb_pool *pool)
 {
 	return false;
 }
@@ -1534,34 +1534,34 @@ static inline bool swiotlb_del_transient(struct device *dev,
  */
 void swiotlb_tbl_unmap_single(struct device *dev, phys_addr_t tlb_addr,
 			      size_t mapping_size, enum dma_data_direction dir,
-			      unsigned long attrs)
+			      unsigned long attrs, struct io_tlb_pool *pool)
 {
 	/*
 	 * First, sync the memory before unmapping the entry
 	 */
 	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC) &&
 	    (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL))
-		swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_FROM_DEVICE);
+		swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_FROM_DEVICE, pool);
 
-	if (swiotlb_del_transient(dev, tlb_addr))
+	if (swiotlb_del_transient(dev, tlb_addr, pool))
 		return;
-	swiotlb_release_slots(dev, tlb_addr);
+	swiotlb_release_slots(dev, tlb_addr, pool);
 }
 
 void swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_addr,
-		size_t size, enum dma_data_direction dir)
+		size_t size, enum dma_data_direction dir, struct io_tlb_pool *pool)
 {
 	if (dir == DMA_TO_DEVICE || dir == DMA_BIDIRECTIONAL)
-		swiotlb_bounce(dev, tlb_addr, size, DMA_TO_DEVICE);
+		swiotlb_bounce(dev, tlb_addr, size, DMA_TO_DEVICE, pool);
 	else
 		BUG_ON(dir != DMA_FROM_DEVICE);
 }
 
 void swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_addr,
-		size_t size, enum dma_data_direction dir)
+		size_t size, enum dma_data_direction dir, struct io_tlb_pool *pool)
 {
 	if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL)
-		swiotlb_bounce(dev, tlb_addr, size, DMA_FROM_DEVICE);
+		swiotlb_bounce(dev, tlb_addr, size, DMA_FROM_DEVICE, pool);
 	else
 		BUG_ON(dir != DMA_TO_DEVICE);
 }
@@ -1586,7 +1586,8 @@ dma_addr_t swiotlb_map(struct device *dev, phys_addr_t paddr, size_t size,
 	dma_addr = phys_to_dma_unencrypted(dev, swiotlb_addr);
 	if (unlikely(!dma_capable(dev, dma_addr, size, true))) {
 		swiotlb_tbl_unmap_single(dev, swiotlb_addr, size, dir,
-			attrs | DMA_ATTR_SKIP_CPU_SYNC);
+			attrs | DMA_ATTR_SKIP_CPU_SYNC,
+			__swiotlb_find_pool(dev, swiotlb_addr));
 		dev_WARN_ONCE(dev, 1,
 			"swiotlb addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
 			&dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
@@ -1774,11 +1775,13 @@ struct page *swiotlb_alloc(struct device *dev, size_t size)
 bool swiotlb_free(struct device *dev, struct page *page, size_t size)
 {
 	phys_addr_t tlb_addr = page_to_phys(page);
+	struct io_tlb_pool *pool;
 
-	if (!is_swiotlb_buffer(dev, tlb_addr))
+	pool = swiotlb_find_pool(dev, tlb_addr);
+	if (!pool)
 		return false;
 
-	swiotlb_release_slots(dev, tlb_addr);
+	swiotlb_release_slots(dev, tlb_addr, pool);
 
 	return true;
 }
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 18:08:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 18:08:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751855.1159938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOLRr-0007xZ-Nc; Mon, 01 Jul 2024 18:08:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751855.1159938; Mon, 01 Jul 2024 18: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 1sOLRr-0007xS-L1; Mon, 01 Jul 2024 18:08:19 +0000
Received: by outflank-mailman (input) for mailman id 751855;
 Mon, 01 Jul 2024 18:08:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7g3A=OB=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1sOLRq-0007xM-9t
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 18:08:18 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e18057f6-37d4-11ef-a59d-41c015c667e1;
 Mon, 01 Jul 2024 20:08:15 +0200 (CEST)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.17.1/8.17.1) with ESMTPS id 461I7x29069790
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Mon, 1 Jul 2024 14:08:05 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.17.1/8.15.2/Submit) id 461I7voU069789;
 Mon, 1 Jul 2024 11:07:57 -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: e18057f6-37d4-11ef-a59d-41c015c667e1
Date: Mon, 1 Jul 2024 11:07:57 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org,
        Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
        Kelly Choi <kelly.choi@cloud.com>
Subject: Re: Serious AMD-Vi(?) issue
Message-ID: <ZoLwfUsSEJzcQ4kI@mattapan.m5p.com>
References: <ZgRXHQpamLIdu7dk@mattapan.m5p.com>
 <c2ce4002-58d5-48a3-949c-3c361c78c0ac@suse.com>
 <ZhdNxWNpM0KCzz8E@mattapan.m5p.com>
 <2aa4d1f4-ff37-4f12-bfbb-3ef5ad3f6fdd@suse.com>
 <ZiDBc3ye2wqmBAfq@mattapan.m5p.com>
 <f0bdb386-0870-4468-846c-6c8a91eaf806@suse.com>
 <ZiH0G5kN6m+wlNjn@mattapan.m5p.com>
 <Zj7vkp4r0EY9rxT4@mattapan.m5p.com>
 <ZkHTC4RpUSpKj4wf@macbook>
 <Zn4BRxTcXKufonw5@mattapan.m5p.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <Zn4BRxTcXKufonw5@mattapan.m5p.com>
X-Spam-Status: No, score=0.0 required=10.0 tests=KHOP_HELO_FCRDNS
	autolearn=unavailable autolearn_force=no version=4.0.0
X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on mattapan.m5p.com

On Thu, Jun 27, 2024 at 05:18:15PM -0700, Elliott Mitchell wrote:
> I'm rather surprised it was so long before the next system restart.  
> Seems a quiet period as far as security updates go.  Good news is I made
> several new observations, but I don't know how valuable these are.
> 
> On Mon, May 13, 2024 at 10:44:59AM +0200, Roger Pau Monn wrote:
> > 
> > Does booting with `iommu=no-intremap` lead to any issues being
> > reported?
> 
> On boot there was in fact less.  Notably the "AMD-Vi" messages haven't
> shown up at all.  I haven't stressed it very much yet, but previous
> boots a message showed up the moment the MD-RAID1 driver was loaded.
> 
> 
> I am though seeing two different messages now:
> 
> (XEN) CPU#: No irq handler for vector # (IRQ -#, LAPIC)
> (XEN) IRQ# a=#[#,#] v=#[#] t=PCI-MSI s=#
> 
> These are to be appearing in pairs.  Multiple values show for each field,
> though each field appears to vary between 2-3 different values.  There
> are thousands of these messages showing up.

Some lucky timing so I've done some more experimentation and sampling.

The "(XEN) IRQ" line almost always shows up with the "(XEN) CPU" line.
I notice it is possible to generate the first without the second, so this
seems notable.  Every single "(XEN) CPU" line mentioned "LAPIC".

The small number (20) of lines where "(XEN) IRQ" did not show up, the
"(XEN) CPU" line always ended with "(IRQ -2147483648, LAPIC)"

For the "t=" value out of 316 samples, 94 listed "PCI-MSI" while 222
listed "PCI-MSI/-X".

For the IRQ, 72 occurred 126 times.  71, 73 and 108 occurred roughly 50
times each. 109 and 111 occurred under 10 times.  Almost no other IRQ
values appeared.

The "s=" value was "00000030" slightly more often than "00000010".  No
other values have been observed so far.

The other values were didn't show too many patterns.

Most processors were mentioned roughly equally.  Several had fewer
mentions, but not enough to seem significant.  I discovered processor 1
did NOT show up.  Whereas processor 0 had an above average number of
occurrences.  This seems notable as these 2 processors are both reserved
exclusively for domain 0.

There have also been a few "spurious 8259A interrupt" lines.  So far
there haven't been very many of these.  The processor and IRQ listed
don't yet appear to show any patterns.  So far no IRQ has been listed
twice.


-- 
(\___(\___(\______          --=> 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 Jul 01 21:03:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 21:03:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751864.1159948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOOAn-0001ml-Eg; Mon, 01 Jul 2024 21:02:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751864.1159948; Mon, 01 Jul 2024 21: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 1sOOAn-0001me-Bv; Mon, 01 Jul 2024 21:02:53 +0000
Received: by outflank-mailman (input) for mailman id 751864;
 Mon, 01 Jul 2024 21:02:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOOAl-0001mU-OW; Mon, 01 Jul 2024 21:02:51 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOOAl-0007n3-L3; Mon, 01 Jul 2024 21:02:51 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOOAl-0001Uj-AE; Mon, 01 Jul 2024 21:02:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOOAl-0000oI-9k; Mon, 01 Jul 2024 21:02:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=gu/4+onr7Vb6W1ObDpa60+YNtpFsa5FyFB+P/Z8EV88=; b=cXArjMl6TLmrJg0ZC4o1sQ218a
	2uVlE5+g5GWEMMXPgDPlPXHT0SnoR4pYoorcacQnPxDJNE1qQU4jBfnscpQPOehxSPrLIVVa4SYtr
	TK5CNfSDD6iyxTInBd2WcTerBp+WPvlFlEc8sKjJywDsCfDBmM0Dee6y0Es/SqqdFVIA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186621-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186621: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b
X-Osstest-Versions-That:
    xen=08f9b1dd9c9435d4cca006e43917245710b39be3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 01 Jul 2024 21:02:51 +0000

flight 186621 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186621/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b
baseline version:
 xen                  08f9b1dd9c9435d4cca006e43917245710b39be3

Last test of basis   186552  2024-06-28 15:02:16 Z    3 days
Testing same since   186621  2024-07-01 18:02:16 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   08f9b1dd9c..4a73eb4c20  4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b -> smoke


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 21:28:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 21:28:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751873.1159959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOOZZ-0004QS-DQ; Mon, 01 Jul 2024 21:28:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751873.1159959; Mon, 01 Jul 2024 21:28:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOOZZ-0004QL-8s; Mon, 01 Jul 2024 21:28:29 +0000
Received: by outflank-mailman (input) for mailman id 751873;
 Mon, 01 Jul 2024 21:28:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K0KN=OB=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1sOOZY-0004QE-Bt
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 21:28:28 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d9d9942d-37f0-11ef-a59d-41c015c667e1;
 Mon, 01 Jul 2024 23:28:26 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2ebeefb9a7fso40336161fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 14: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: d9d9942d-37f0-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719869305; x=1720474105; 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=Z47rrp19EOR62kU/hDwPlQ1816uy8bL5lJvENesMmgY=;
        b=RTIRry9sUX17x5XyYKtkaAMXkgmRT4gFHX1tS2f/8wnEs4197xJ5XQ/Ug6fMXPFC9i
         C/CT3wsgrWs42uADd4It9ax+hmCWJE8qOzQ4xQlt8trjjOhQm8U81h7KWV6HqNWBZb4+
         oDAtvuZ2VEQEndG8WH6OlwhTO+aaDp2Z3wdIvX9Nf28z708FNKK7DCfXqewFkiSA7d8l
         7A37UH/pHzvCpvAQUDiG/J9aYQVhgWHuMRbjw0v41r+XtyHApxmTWqZ9qYIa1CDrDWXe
         SHKqn3OMNZPNLe16G5nd18NUY4qMkDrFy1LELqgpVL3HEIKZGeaYhmO0kuBRHzOKQuVM
         9QDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719869305; x=1720474105;
        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=Z47rrp19EOR62kU/hDwPlQ1816uy8bL5lJvENesMmgY=;
        b=Qnj2vSptx0jOfS8k9cD7wBv6f8v+Ht9l7lct9RC5G8lF0LDw7/lh8tDlx9jJJy1z3K
         84RV/k6liw5ZlltSeg0olET3Y0c/i//7WujIkfKLl2OV7LibqP2h53eSz9QrkH+pGiRq
         YluNZcDUzzZP8MLIPV7d1LMo3E+WHW2baaMCOZw6zZcG2vCsTFt4nmZD0i6j78FDW05o
         l54albOzkRJYYEfQjT4j17EbhIt12A6P6niBqhv1iQ2hH6IXLhGCSu4PW2gZtw5fbgzF
         xd4goKtBBP4DV0phOFWJWgJOHbzr/cuyIZrk+MYkWM4gDZlfAFTlaXf4sHJyldc9SNJ8
         +lVw==
X-Forwarded-Encrypted: i=1; AJvYcCWqyzygviuwgELowdsIZd1++FiqF4Gd82GHAKRr6T+qwINLJagfTvo5xSjvA56SO2mDcqMYWtDFyJpgHQpHzrCXIQny8Mu79119+BxaiHY=
X-Gm-Message-State: AOJu0YyeLSIzwfdXTmxDhqd7c5xUec9oxwbsKIUPou64s5Q5T/hVqvdn
	vhPyRbRLxzhNDkmj6ZeMkrx3jYVqKLYoGCZnsDiLFootZm3i0l6ohKjMOkXgyLXYfcBjSPiN5em
	U7USsDRye2Syn2fZ58sPlxAD4VUs=
X-Google-Smtp-Source: AGHT+IGn6UXqDPbj97fDpIgnnXUu/Lf1rP+lX4sbufQ99fwsUqIs7xnpg1D8xQYFasR5QGaGQdiYgEwIGSii1OkkBRY=
X-Received: by 2002:a2e:a58a:0:b0:2eb:ef78:29c8 with SMTP id
 38308e7fff4ca-2ee5e39400cmr46083061fa.14.1719869304619; Mon, 01 Jul 2024
 14:28:24 -0700 (PDT)
MIME-Version: 1.0
References: <20240529140739.1387692-1-edgar.iglesias@gmail.com>
 <20240529140739.1387692-3-edgar.iglesias@gmail.com> <ZoKnQLBwIwh004yy@l14>
 <CAJy5ezqdxQ_y_sCyP243yTfgOJfLh1COzN9Eg+PxxoaVeOh-mQ@mail.gmail.com>
 <CAJy5ezrSs8r=ibTgb_oURdFTDW07sVVBeU6Rw7jsM+iaqPLNgg@mail.gmail.com>
 <CAJy5ezrPgUR3-gWK3Mfnc7iAgV3MEStSardY+0kkvHB+PHbe4w@mail.gmail.com> <ZoLXe9wjyXCU88Y0@l14>
In-Reply-To: <ZoLXe9wjyXCU88Y0@l14>
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Date: Mon, 1 Jul 2024 23:28:12 +0200
Message-ID: <CAJy5ezqO=YX-z6qN4U_jkrxw=y-4a4buv3GYnWDNafKKn+EqgQ@mail.gmail.com>
Subject: Re: [PATCH v8 2/8] xen: mapcache: Unmap first entries in buckets
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: qemu-devel@nongnu.org, sstabellini@kernel.org, jgross@suse.com, 
	"Edgar E. Iglesias" <edgar.iglesias@amd.com>, Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000f64895061c3646e5"

--000000000000f64895061c3646e5
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 1, 2024 at 6:21=E2=80=AFPM Anthony PERARD <anthony.perard@vates=
.tech>
wrote:

> On Mon, Jul 01, 2024 at 04:34:53PM +0200, Edgar E. Iglesias wrote:
> > On Mon, Jul 1, 2024 at 4:30=E2=80=AFPM Edgar E. Iglesias <
> edgar.iglesias@gmail.com>
> > wrote:
> > > On Mon, Jul 1, 2024 at 3:58=E2=80=AFPM Edgar E. Iglesias <
> edgar.iglesias@gmail.com>
> > > wrote:
> > >> Any chance you could try to get a backtrace from QEMU when it failed=
?
>
> Here it is:
>
>
> #3  0x00007fa8762f4472 in __GI_abort () at ./stdlib/abort.c:79
>         save_stage =3D 1
>         act =3D {__sigaction_handler =3D {sa_handler =3D 0x20, sa_sigacti=
on =3D
> 0x20}, sa_mask =3D {__val =3D {94603440166168, 18446744073709551615,
> 94603406369640, 0, 0, 94603406346720, 94603440166168, 140361486774256, 0,
> 140361486773376, 94603401285536, 140361496232688, 94603440166096,
> 140361486773456, 94603401289576, 140360849280256}}, sa_flags =3D -1804462=
896,
> sa_restorer =3D 0x748f2d40}
> #4  0x0000560a92230f0d in qemu_get_ram_block (addr=3D18446744073709551615=
)
> at ../system/physmem.c:801
>         block =3D 0x0
> #5  0x0000560a922350ab in qemu_ram_block_from_host (ptr=3D0x7fa84e8fcd00,
> round_offset=3Dfalse, offset=3D0x7fa8748f2de8) at ../system/physmem.c:228=
0
>         ram_addr =3D 18446744073709551615
>         _rcu_read_auto =3D 0x1
>         block =3D 0x0
>         host =3D 0x7fa84e8fcd00 ""
>         _rcu_read_auto =3D 0x7fa8751f8288
> #6  0x0000560a92229669 in memory_region_from_host (ptr=3D0x7fa84e8fcd00,
> offset=3D0x7fa8748f2de8) at ../system/memory.c:2440
>         block =3D 0x0
> #7  0x0000560a92237418 in address_space_unmap (as=3D0x560a94b05a20,
> buffer=3D0x7fa84e8fcd00, len=3D32768, is_write=3Dtrue, access_len=3D32768=
) at
> ../system/physmem.c:3246
>         mr =3D 0x0
>         addr1 =3D 0
>         __PRETTY_FUNCTION__ =3D "address_space_unmap"
> #8  0x0000560a91fd6cd3 in dma_memory_unmap (as=3D0x560a94b05a20,
> buffer=3D0x7fa84e8fcd00, len=3D32768, dir=3DDMA_DIRECTION_FROM_DEVICE,
> access_len=3D32768) at /root/build/qemu/include/sysemu/dma.h:236
> #9  0x0000560a91fd763d in dma_blk_unmap (dbs=3D0x560a94d87400) at
> ../system/dma-helpers.c:93
>         i =3D 1
> #10 0x0000560a91fd76e6 in dma_complete (dbs=3D0x560a94d87400, ret=3D0) at
> ../system/dma-helpers.c:105
>         __PRETTY_FUNCTION__ =3D "dma_complete"
> #11 0x0000560a91fd781c in dma_blk_cb (opaque=3D0x560a94d87400, ret=3D0) a=
t
> ../system/dma-helpers.c:129
>         dbs =3D 0x560a94d87400
>         ctx =3D 0x560a9448da90
>         cur_addr =3D 0
>         cur_len =3D 0
>         mem =3D 0x0
>         __PRETTY_FUNCTION__ =3D "dma_blk_cb"
> #12 0x0000560a9232e974 in blk_aio_complete (acb=3D0x560a9448d5f0) at
> ../block/block-backend.c:1555
> #13 0x0000560a9232ebd1 in blk_aio_read_entry (opaque=3D0x560a9448d5f0) at
> ../block/block-backend.c:1610
>         acb =3D 0x560a9448d5f0
>         rwco =3D 0x560a9448d618
>         qiov =3D 0x560a94d87460
>         __PRETTY_FUNCTION__ =3D "blk_aio_read_entry"
>
> > > One more thing, regarding this specific patch. I don't think we shoul=
d
> > > clear the
> > > entire entry, the next field should be kept, otherwise we'll disconne=
ct
> > > following
> > > mappings that will never be found again. IIUC, this could very well b=
e
> > > causing the problem you see.
> > >
> > > Does the following make sense?
> > >
> > And here without double-freeing entry->valid_mapping:
> >
> > diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> > index 5f23b0adbe..667807b3b6 100644
> > --- a/hw/xen/xen-mapcache.c
> > +++ b/hw/xen/xen-mapcache.c
> > @@ -597,7 +597,13 @@ static void
> > xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
> >          pentry->next =3D entry->next;
> >          g_free(entry);
> >      } else {
> > -        memset(entry, 0, sizeof *entry);
> > +        /* Invalidate mapping.  */
> > +        entry->paddr_index =3D 0;
> > +        entry->vaddr_base =3D NULL;
> > +        entry->size =3D 0;
> > +        entry->valid_mapping =3D NULL;
> > +        entry->flags =3D 0;
> > +        /* Keep entry->next pointing to the rest of the list.  */
> >      }
> >  }
>
> I've tried this patch, and that fix the issue I've seen. I'll run more
> tests on it, just in case, but there's no reason that would break
> something else.
>
> Cheers,
>

Thanks Anthony, I'll send out a proper patch tomorrow.

Cheers,
Edgar

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Mon, Jul 1, 2024 at 6:21=E2=80=AFP=
M Anthony PERARD &lt;anthony.perard@vates.tech&gt; wrote:<br></div><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px=
 solid rgb(204,204,204);padding-left:1ex">On Mon, Jul 01, 2024 at 04:34:53P=
M +0200, Edgar E. Iglesias wrote:<br>
&gt; On Mon, Jul 1, 2024 at 4:30=E2=80=AFPM Edgar E. Iglesias &lt;<a href=
=3D"mailto:edgar.iglesias@gmail.com" target=3D"_blank">edgar.iglesias@gmail=
.com</a>&gt;<br>
&gt; wrote:<br>
&gt; &gt; On Mon, Jul 1, 2024 at 3:58=E2=80=AFPM Edgar E. Iglesias &lt;<a h=
ref=3D"mailto:edgar.iglesias@gmail.com" target=3D"_blank">edgar.iglesias@gm=
ail.com</a>&gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt;&gt; Any chance you could try to get a backtrace from QEMU when it=
 failed?<br>
<br>
Here it is:<br>
<br>
<br>
#3=C2=A0 0x00007fa8762f4472 in __GI_abort () at ./stdlib/abort.c:79<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 save_stage =3D 1<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 act =3D {__sigaction_handler =3D {sa_handler =
=3D 0x20, sa_sigaction =3D 0x20}, sa_mask =3D {__val =3D {94603440166168, 1=
8446744073709551615, 94603406369640, 0, 0, 94603406346720, 94603440166168, =
140361486774256, 0, 140361486773376, 94603401285536, 140361496232688, 94603=
440166096, 140361486773456, 94603401289576, 140360849280256}}, sa_flags =3D=
 -1804462896, sa_restorer =3D 0x748f2d40}<br>
#4=C2=A0 0x0000560a92230f0d in qemu_get_ram_block (addr=3D18446744073709551=
615) at ../system/physmem.c:801<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 block =3D 0x0<br>
#5=C2=A0 0x0000560a922350ab in qemu_ram_block_from_host (ptr=3D0x7fa84e8fcd=
00, round_offset=3Dfalse, offset=3D0x7fa8748f2de8) at ../system/physmem.c:2=
280<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ram_addr =3D 18446744073709551615<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 _rcu_read_auto =3D 0x1<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 block =3D 0x0<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 host =3D 0x7fa84e8fcd00 &quot;&quot;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 _rcu_read_auto =3D 0x7fa8751f8288<br>
#6=C2=A0 0x0000560a92229669 in memory_region_from_host (ptr=3D0x7fa84e8fcd0=
0, offset=3D0x7fa8748f2de8) at ../system/memory.c:2440<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 block =3D 0x0<br>
#7=C2=A0 0x0000560a92237418 in address_space_unmap (as=3D0x560a94b05a20, bu=
ffer=3D0x7fa84e8fcd00, len=3D32768, is_write=3Dtrue, access_len=3D32768) at=
 ../system/physmem.c:3246<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 mr =3D 0x0<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 addr1 =3D 0<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 __PRETTY_FUNCTION__ =3D &quot;address_space_unm=
ap&quot;<br>
#8=C2=A0 0x0000560a91fd6cd3 in dma_memory_unmap (as=3D0x560a94b05a20, buffe=
r=3D0x7fa84e8fcd00, len=3D32768, dir=3DDMA_DIRECTION_FROM_DEVICE, access_le=
n=3D32768) at /root/build/qemu/include/sysemu/dma.h:236<br>
#9=C2=A0 0x0000560a91fd763d in dma_blk_unmap (dbs=3D0x560a94d87400) at ../s=
ystem/dma-helpers.c:93<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 i =3D 1<br>
#10 0x0000560a91fd76e6 in dma_complete (dbs=3D0x560a94d87400, ret=3D0) at .=
./system/dma-helpers.c:105<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 __PRETTY_FUNCTION__ =3D &quot;dma_complete&quot=
;<br>
#11 0x0000560a91fd781c in dma_blk_cb (opaque=3D0x560a94d87400, ret=3D0) at =
../system/dma-helpers.c:129<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 dbs =3D 0x560a94d87400<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ctx =3D 0x560a9448da90<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 cur_addr =3D 0<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 cur_len =3D 0<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 mem =3D 0x0<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 __PRETTY_FUNCTION__ =3D &quot;dma_blk_cb&quot;<=
br>
#12 0x0000560a9232e974 in blk_aio_complete (acb=3D0x560a9448d5f0) at ../blo=
ck/block-backend.c:1555<br>
#13 0x0000560a9232ebd1 in blk_aio_read_entry (opaque=3D0x560a9448d5f0) at .=
./block/block-backend.c:1610<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 acb =3D 0x560a9448d5f0<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 rwco =3D 0x560a9448d618<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 qiov =3D 0x560a94d87460<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 __PRETTY_FUNCTION__ =3D &quot;blk_aio_read_entr=
y&quot;<br>
<br>
&gt; &gt; One more thing, regarding this specific patch. I don&#39;t think =
we should<br>
&gt; &gt; clear the<br>
&gt; &gt; entire entry, the next field should be kept, otherwise we&#39;ll =
disconnect<br>
&gt; &gt; following<br>
&gt; &gt; mappings that will never be found again. IIUC, this could very we=
ll be<br>
&gt; &gt; causing the problem you see.<br>
&gt; &gt;<br>
&gt; &gt; Does the following make sense?<br>
&gt; &gt;<br>
&gt; And here without double-freeing entry-&gt;valid_mapping:<br>
&gt; <br>
&gt; diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c<br>
&gt; index 5f23b0adbe..667807b3b6 100644<br>
&gt; --- a/hw/xen/xen-mapcache.c<br>
&gt; +++ b/hw/xen/xen-mapcache.c<br>
&gt; @@ -597,7 +597,13 @@ static void<br>
&gt; xen_invalidate_map_cache_entry_unlocked(MapCache *mc,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pentry-&gt;next =3D entry-&gt;next;<=
br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 g_free(entry);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 } else {<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 memset(entry, 0, sizeof *entry);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* Invalidate mapping.=C2=A0 */<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 entry-&gt;paddr_index =3D 0;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 entry-&gt;vaddr_base =3D NULL;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 entry-&gt;size =3D 0;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 entry-&gt;valid_mapping =3D NULL;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 entry-&gt;flags =3D 0;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* Keep entry-&gt;next pointing to the re=
st of the list.=C2=A0 */<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 }<br>
<br>
I&#39;ve tried this patch, and that fix the issue I&#39;ve seen. I&#39;ll r=
un more<br>
tests on it, just in case, but there&#39;s no reason that would break<br>
something else.<br>
<br>
Cheers,<br></blockquote><div><br></div><div>Thanks Anthony, I&#39;ll send o=
ut a proper patch tomorrow.</div><div><br></div><div>Cheers,</div><div>Edga=
r=C2=A0</div></div></div>

--000000000000f64895061c3646e5--


From xen-devel-bounces@lists.xenproject.org Mon Jul 01 22:44:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 22:44:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751882.1159989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOPlC-0005sP-3Z; Mon, 01 Jul 2024 22:44:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751882.1159989; Mon, 01 Jul 2024 22:44:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOPlC-0005sI-0p; Mon, 01 Jul 2024 22:44:34 +0000
Received: by outflank-mailman (input) for mailman id 751882;
 Mon, 01 Jul 2024 22:44: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=K0KN=OB=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1sOPlA-0005qM-9u
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 22:44:32 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79e4c322-37fb-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 00:44:29 +0200 (CEST)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-52caebc6137so2912186e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 15:44:29 -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-52e7ab27b8csm1586825e87.139.2024.07.01.15.44.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 15:44: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: 79e4c322-37fb-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719873869; x=1720478669; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sf82CyGT2KHh8k/j9sWHzVKPUD8ck5NskBySCFiD0JQ=;
        b=KK8iPbhwTnLo5zXaeW6u7c8YMHh/MGjizsgbx3F/CAcBiGAzp1k5AyrvA0pUJAEpoI
         Vs/DUqQ+vQTf+k0SHsQjMYlttBq1SKOVJMMv7Eo4GKcdStrzwu244WouqL+bzMRuHiFe
         8LVYnmhizL4hH/AOmAB3f3Cmny4CB82rDJGgj0MGomWaHQD3/UhSkCexzk25/ClgSoZ0
         /eruCY7/Qi892xNL7zGP697XeN3DnG7J5BRhXHG8YLv5x0voRz5RHzCAzeq0cD8xnX3t
         gNxcfTSmfvw2DqMtFcrQquESi+9ApzuOZqOwl2GPXssz06DIQ3+KYWkaYchk0g79ofjv
         q8zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719873869; x=1720478669;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=sf82CyGT2KHh8k/j9sWHzVKPUD8ck5NskBySCFiD0JQ=;
        b=wLavzjObE7xEpvKrwU2jNWMzNsKo46jaJpbxCzjwJAIaJ+oBRkjED1Y7fuAEVBQWvJ
         Ofgn7lW6a5G9rwz9BdGRpcHS1RHsL5rpWqzemB7e0E1ED5hRDp/lQRRfJQFloKEwxjPq
         sTSQbv9mkZLA94LP5Y4D7aQ3j1zounjl9woOjEXikKqb00LVUtwzmxn2XgVQ5c8DUXFX
         9D6xDl78SDuVjFtN6D2xANtPNQYkoMQTvpnl9R/K0VVatPDXKhhizggsypzJX+k2uTdT
         HfA6pkKmCbx1+Tq5BvKAvO7Z6RPRuvOG3RmvqyJ3Gs/rPq1mm9zOkdZ+rzIrAVOaHb87
         k7Qg==
X-Forwarded-Encrypted: i=1; AJvYcCU/zrQcqfwI0/uaQzw9SbLSZ342MTMFraBG0WpUnyhq6dLmVci6gpcsI0K+FqTK65KFCWHMT58NwP8OroVla7Jvdda8SfO+JQ8mtHIrPYo=
X-Gm-Message-State: AOJu0Yw2lDE/sw0QzkLh5vIrYGSucN66frzXUVt3j88wASi7hA3Bkws4
	iNZuUrJBccKSo41+mr49R0xjLUnP1N7+ymn7YQe55HUcDzhX0RbC
X-Google-Smtp-Source: AGHT+IHWKetgrLPhxdzv9x0e7HCZWLzAzA+Cb1d+CG0m2IxNg7Q00FAe96b6YrkGhExYpUzmQX4I4Q==
X-Received: by 2002:a05:6512:3b2c:b0:52e:7f16:96b6 with SMTP id 2adb3069b0e04-52e82687e16mr4837805e87.37.1719873867477;
        Mon, 01 Jul 2024 15:44:27 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org
Cc: sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v1 2/2] xen: mapcache: Fix unmapping of first entries in buckets
Date: Tue,  2 Jul 2024 00:44:21 +0200
Message-ID: <20240701224421.1432654-3-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240701224421.1432654-1-edgar.iglesias@gmail.com>
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

This fixes the clobbering of the entry->next pointer when
unmapping the first entry in a bucket of a mapcache.

Fixes: 123acd816d ("xen: mapcache: Unmap first entries in buckets")
Reported-by: Anthony PERARD <anthony.perard@vates.tech>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
---
 hw/xen/xen-mapcache.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 5f23b0adbe..18ba7b1d8f 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -597,7 +597,17 @@ static void xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
         pentry->next = entry->next;
         g_free(entry);
     } else {
-        memset(entry, 0, sizeof *entry);
+        /*
+         * Invalidate mapping but keep entry->next pointing to the rest
+         * of the list.
+         *
+         * Note that lock is already zero here, otherwise we don't unmap.
+         */
+        entry->paddr_index = 0;
+        entry->vaddr_base = NULL;
+        entry->valid_mapping = NULL;
+        entry->flags = 0;
+        entry->size = 0;
     }
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 22:44:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 22:44:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751881.1159973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOPl6-0005Pc-PE; Mon, 01 Jul 2024 22:44:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751881.1159973; Mon, 01 Jul 2024 22:44:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOPl6-0005PF-LF; Mon, 01 Jul 2024 22:44:28 +0000
Received: by outflank-mailman (input) for mailman id 751881;
 Mon, 01 Jul 2024 22:44:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K0KN=OB=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1sOPl6-0005NO-3F
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 22:44:28 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77f84e11-37fb-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 00:44:26 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-52cf4ca8904so5695733e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 15:44:26 -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-52e7ab2776bsm1553637e87.175.2024.07.01.15.44.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 15:44: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: 77f84e11-37fb-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719873866; x=1720478666; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z7pJOgWYTohoN9bNh+FuLDvV+CzujybNoWiwTHb5R5U=;
        b=PQgXQD7fdD7RCeeMGCqLpoy/QQjYc3NuSmH79e+MYTy5FiVPu/K4iLR2jrR5SwIZy0
         b4O0X8jtdNpTg+K/By4TxL855PDL94CvgKECTnoP5znR3kELMCwBW3cFHgZT7TCYn7NV
         j6febmad97FFeYvjj5p+3Dqwr0nSQBI9QVZi4M2E1I09UuAs3OTQsPMbHPugVhUZQ2xc
         +LstDIuDUVfsO1Gsw04X8mMYZTHelH9SHreyxepS3UPrJfU7IqwEPGzmKw4+Krj34PVi
         SSKpvGnPmPKU9/fTeFGrDXK/Pvhg5ipIx/4GiJ8+BBQxaIh+dSLOsZxk8e101M01UKhs
         yjmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719873866; x=1720478666;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=z7pJOgWYTohoN9bNh+FuLDvV+CzujybNoWiwTHb5R5U=;
        b=d5Vgl88Wg3xJFijYE6KyZh4qf5EkiVktqFQfq6ipRB7CDYP4DPD5upB1WAS7wv1o67
         hLy5VF20q7Ci6AcvXMM2lyX7zXnejFU9sF3R9kBV6cUSi5EJ6qHquWUSUnvv1EpOHUhp
         +yrVpIi1Ds/YfrQ14Ce8c+eFSkUhhq0syvtFCcCpXPMeo42CjSmDY9q3lwbgLPKVd+el
         8qfIoe/QjGBdyNUNRapal4d68EHGoKAFrIDmYz+VS/nvcwrZ8JhWDl+CyEwBzSEBbs2n
         3Ehf9qlqL7evB8LyUI7j2v1bIAbhioAFCm3uoZZbG4ECZxvRBW84PIBHZLu/KHieupXG
         rSdw==
X-Forwarded-Encrypted: i=1; AJvYcCWvjHWcMLtGY6+T6W0ZDHdqPUally8jqpeq7HgUNyNtgxbxp5HHfaHNEd2Kr62A0r2rwxgTWUfNX5U0SE/CkHRYxvPWXqyDw9w2LJFuK9E=
X-Gm-Message-State: AOJu0YzVKWq71z0IRdmMUJlBizYJnVhEB6nIAHhFTXb4+beElqn61QE4
	Dx4Lu8KKz5igTZWirsUCk27DGl9V83pA/+ABhFSoO7NAn5cofwFh
X-Google-Smtp-Source: AGHT+IEVWqn6yL477AvOLH/6tDs+0UcgfhXgHVrF+nz3cT7y9bdDM7hCDuZsRYNQLIieDX2+ijBF8Q==
X-Received: by 2002:a05:6512:3b29:b0:52c:d9f8:b033 with SMTP id 2adb3069b0e04-52e8264bcb5mr4335217e87.3.1719873865019;
        Mon, 01 Jul 2024 15:44:25 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org
Cc: sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Peter Xu <peterx@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH v1 1/2] physmem: Bail out qemu_ram_block_from_host() for invalid ram addrs
Date: Tue,  2 Jul 2024 00:44:20 +0200
Message-ID: <20240701224421.1432654-2-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240701224421.1432654-1-edgar.iglesias@gmail.com>
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Bail out in qemu_ram_block_from_host() when
xen_ram_addr_from_mapcache() does not find an existing
mapping.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
---
 system/physmem.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/system/physmem.c b/system/physmem.c
index 33d09f7571..59d1576c2b 100644
--- a/system/physmem.c
+++ b/system/physmem.c
@@ -2277,6 +2277,10 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,
         ram_addr_t ram_addr;
         RCU_READ_LOCK_GUARD();
         ram_addr = xen_ram_addr_from_mapcache(ptr);
+        if (ram_addr == RAM_ADDR_INVALID) {
+            return NULL;
+        }
+
         block = qemu_get_ram_block(ram_addr);
         if (block) {
             *offset = ram_addr - block->offset;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 01 22:44:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Jul 2024 22:44:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751880.1159969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOPl6-0005Ng-Hy; Mon, 01 Jul 2024 22:44:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751880.1159969; Mon, 01 Jul 2024 22:44:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOPl6-0005NZ-FF; Mon, 01 Jul 2024 22:44:28 +0000
Received: by outflank-mailman (input) for mailman id 751880;
 Mon, 01 Jul 2024 22:44: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=K0KN=OB=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1sOPl5-0005NO-Qq
 for xen-devel@lists.xenproject.org; Mon, 01 Jul 2024 22:44:27 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77509bde-37fb-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 00:44:25 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-52cf4ca8904so5695707e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 15:44:25 -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-52e7ab3b154sm1590903e87.259.2024.07.01.15.44.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jul 2024 15:44: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: 77509bde-37fb-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719873864; x=1720478664; 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=P5PrX7Mf/uUnupEbVW+b7PDHyiggb6/C3MHTxe8hmSs=;
        b=nWxUTJBZzh+E03uF7T6bDE3afXojUBfCfKkl3lPT978p/kwk+78gqKO5SjUELqq1Fs
         EdsBwF0tiRl33gKoosb54h+9e+tUl5UP1XJci1SaBn0W7831M5AQQJI1v4FDPeUcRoHK
         lsqL1p0dJBozRpiaFayY7pDASWf8YZFrsIpaSpjdLNbT6Kx01qNtPx7W6D2Foeelg1I3
         un6ldJVrqE04OOFKDYhS+2nfZ7c84KzD0gF6oLt+dWuuogCDM5qCS9JQ04UCWqMnIuov
         oxfSF8EattXDC2ipG55ozfBrCxU8lKswvfUb0Ib0C1R986FUgTGhup1dS4gCONvd0GBD
         REZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719873864; x=1720478664;
        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=P5PrX7Mf/uUnupEbVW+b7PDHyiggb6/C3MHTxe8hmSs=;
        b=VtX/pIuU2Vj0tBdL3DQQsmQShuBW+8ED+k7VPDpXjJu/8qAfAOZItqDaGLlzfSmuzc
         DzwwTukDUly7ZrlQs8/V2v/9awWuCGfCRFTS3tWOrDuo0n24YaFf0tk6/WpCEDkyPefX
         6kDzPhLGSSEWbm1Kv5DwdEW8EogycsnHvGlB/YH7r5t0IwSNP7Nfm2MPLNTd34QfsJnf
         X/lMo/nbEigBp3OXIp1vxQyUUXmHbBgwMuD3+4Zz9vwdeRI09SaJlwEpSvPMWlMxxxf/
         hSGvDL2sbtJJk8nSe84wmaxuda3CmlGVv85dht6Yd3SdVhv63+4wnRe14A66zpvO+F4U
         YcFQ==
X-Forwarded-Encrypted: i=1; AJvYcCXI/dmXwcgWduI6jDNMRXgsUdr1OO9iv0e6goIzWJ34jKgmH9fPEt2YlPJeN8hAaZfP4Jkm+kGDpyo8dpH0RO41Efk3SW3BK4jcQwqJ7p0=
X-Gm-Message-State: AOJu0YwkdP4w/mtnkMoTE8liFUMMdBOcXT5p2v9k51jHxb8pwi37Eejs
	X2em0cM10ByzyjKJknWJ+Oy/J/Vg4IG77Q0VBMNAyCuBIUX/z2LE
X-Google-Smtp-Source: AGHT+IGCO1KLkxlsTsh8WUidlGFP1OF4KX+DPy6pH829DSJkzsU8858klanFcWRr8vEYi1+YHzFmuQ==
X-Received: by 2002:a05:6512:2315:b0:52c:db75:9640 with SMTP id 2adb3069b0e04-52e82701721mr4566344e87.48.1719873864067;
        Mon, 01 Jul 2024 15:44:24 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@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/2] xen: mapcache: Fix unmapping of first the entry in a bucket
Date: Tue,  2 Jul 2024 00:44:19 +0200
Message-ID: <20240701224421.1432654-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 the unmapping of the first mapping in a bucket of a mapcache.

We also add error handling to qemu_ram_block_from_host() to bail out when
xen_ram_addr_from_mapcache() doesn't find an existing mapping.

Cheers,
Edgar

Edgar E. Iglesias (2):
  physmem: Bail out qemu_ram_block_from_host() for invalid ram addrs
  xen: mapcache: Fix unmapping of first entries in buckets

 hw/xen/xen-mapcache.c | 12 +++++++++++-
 system/physmem.c      |  4 ++++
 2 files changed, 15 insertions(+), 1 deletion(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 03:00:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 03:00:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751904.1159998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOTkS-0000Om-Qd; Tue, 02 Jul 2024 03:00:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751904.1159998; Tue, 02 Jul 2024 03:00:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOTkS-0000OK-O6; Tue, 02 Jul 2024 03:00:04 +0000
Received: by outflank-mailman (input) for mailman id 751904;
 Tue, 02 Jul 2024 03:00: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=EMB5=OC=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sOTkS-0000Bm-1u
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 03:00:04 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20600.outbound.protection.outlook.com
 [2a01:111:f403:2416::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b9897f0-381f-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 05:00:01 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by MN0PR12MB6365.namprd12.prod.outlook.com (2603:10b6:208:3c2::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.32; Tue, 2 Jul
 2024 02:59:56 +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.7719.029; Tue, 2 Jul 2024
 02:59: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: 2b9897f0-381f-11ef-958a-bbd156597b9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TlknwJ6JWNNXvuZbqixGox4blGBnKHvaI0HBRYaUHkX8FWy4o1mBAxPPM3vQc8rk/BigeKaUtwyIIT04m5M5ov03Haov57tG5i15OMePoK21ARQOtUm6QsqfCjKVifYYmg54H1Hc9DYUDUBlje2s6wlwDBhxPAKbXjTneANVQv7IM1JSZvKwoLSjJoCtovucOyv3xbZYTboGuVDzjx37ECouuHa1A6uQatUHmfmeytal3nV3qtVMEos44wZvhkvIot6Jcgv+/zMbfh3mwtYnZpQzFJZtCl98GaJHCOhjZMQbH0If2+027im9/LwdpCx7loYk2vooDy6ZYs4SkMJYXw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wLwLI26ur7cPX2ydCSUD1i+m2BSAhtJIdDFALZOz1TA=;
 b=TndQDb9DQ094aQDYOD9WCIkiL/CkFH3zMg16xEFum6NauD/3PwqA1or0O475b8WPJIQz75Z3q1if32FSdv4zS9aWwWv0IIN5KXsXrvVI4gRyZAH86y0xljujibuMr15wMtVyeV9qRp9WXE8BoiGWzpaZWCpos5AvSXO4KGKJkqCTw0sJ0cW1ZXM+86G2EsS0XvXEbU5B5I2ASyLaAVpaszo+tAGWiwJhXY+g2yZ2O0Pem5zNKH08kKVt9icAdtfc94KQ5Bnfq5CEYq6lKliOozZOLGyYOfAJ85acBckD7uNTM0gNwIVQu+9Ubm2xXd2QVbDhBoOrZ36s/ELVgjKMyQ==
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=wLwLI26ur7cPX2ydCSUD1i+m2BSAhtJIdDFALZOz1TA=;
 b=2nYEo0N0g743tdmz7wdsrL997r02tV9qRg9eZ1iQkrboBW/5CuXnxiEAY8g0Pw81km+sA4T2zdaXDZLgb3q4cde14cPundBnaYjuXS+APneg4gxcjQ6JHjnaimwF+YWc5a9o0AvgVJOo37byqHDi82zJxnOZkI+vl67B3g9xhHg=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, George Dunlap <george.dunlap@citrix.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v11 1/8] xen/vpci: Clear all vpci status of device
Thread-Topic: [XEN PATCH v11 1/8] xen/vpci: Clear all vpci status of device
Thread-Index: AQHayunNcO2Cg2N4oU+RLFI6zlmQRbHhd/AAgAHKnwA=
Date: Tue, 2 Jul 2024 02:59:56 +0000
Message-ID:
 <BL1PR12MB58494BFDE98D3CDAEB157AC7E7DC2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-2-Jiqian.Chen@amd.com>
 <d145f307-2c66-4a2b-8a1f-d969ed4f2e6d@suse.com>
In-Reply-To: <d145f307-2c66-4a2b-8a1f-d969ed4f2e6d@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.7719.007)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|MN0PR12MB6365:EE_
x-ms-office365-filtering-correlation-id: bf6b822d-df17-4848-2854-08dc9a430dba
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?RFphVEhOQVFIeUE4OTF0S2ZNQ09tVW5TTk1ZU1k0SG1FT2FoWWIyS0g3aDVG?=
 =?utf-8?B?a2RnV2JPdVBtZzV1N3RFcEZjMDFlVnJ6Z1A4RFhGRzRuZ2RheDZwZGJhc1ZM?=
 =?utf-8?B?MEZ2cHVJVkJvLzErNEx1aVd1aDdoaWJjVVV4dU5zbGs0S1BKNUp5dS9ibEkz?=
 =?utf-8?B?Mk9TR1pVVzhZMERueTFVeHJjOGZLNHUzeFVzWnFveVEyMVRwdDRWaU1FTkVR?=
 =?utf-8?B?SnlCeFArUlR3K3VRVHh3MDFiQ3ZoWUlnMDlabHg5OC9xa0UrelI4Q2ZwejQ1?=
 =?utf-8?B?TWxQM2ZXZExXa0puY0JMTlFYK0E5UTVvNFpTcVZ0RHNLQlJkYzZvOGs3c21u?=
 =?utf-8?B?U2xJNWZWbnoxYnN5RXFnV1dRRHBGM1Y4RkJTRVIzRDhxTkNsaUxQMkhleWJO?=
 =?utf-8?B?dEczbmZaVFpLUExLVkIwUkJSWmpwTGdHUTlIaDlRR3ZlTGFjWUZ4Mk5SRGlj?=
 =?utf-8?B?Ri9SdVRHeHhKcGpPaFpHSHFpUGNsRXZMTXp2NVpIV1hBK3ZXYUNla0VNYkpP?=
 =?utf-8?B?RG90bTl0aVZOVHAwREdaRk9ZWExFM1FIRU9NeFYxOGxneGQ3a2FjZDZzZFZ2?=
 =?utf-8?B?ZmUzcitEai9FR2o5VEtzUGxJdHhBQTVPUjJ2aTFxVnk1M2hnaGVSeXF1QXp1?=
 =?utf-8?B?UVFjMHlKSE1NVXNGMUVxbDZNVkIvaGtTdFBQTHZFTW1jUnhFTjRTc3h0N1ox?=
 =?utf-8?B?Y01HMUhYOU9xWFBsNEl2eHl4NEtjeVJKSGZVcUZUalNkemlKK1ZhY0JLRjF3?=
 =?utf-8?B?Sm9lQzVIRVIwbGZQUlQvSitLT3VPa1lqMWo5K0VDVmJ4ekszVUExOXdJK1RM?=
 =?utf-8?B?T0U2ODdTL3lGYUh6eW1TcFJFQVZjNkhOVDZXNjlxK094KzBhbTR5RTBMOXVX?=
 =?utf-8?B?cFhGcW80emZ4alRZayt2RHdNVlZra2xBa2dVU3lld1VoN0ozMGQ0Q3VNbkZr?=
 =?utf-8?B?UGtMTkE5Qk1ZSlVtS3NHZzAvNzVSR3NtL1VYbVg2U2xjU3FtRnNIK09NL21Q?=
 =?utf-8?B?TWxFQWh0SE5BaS9XK2Q4NE5sTmlodXRPT0cyMkl3Q1pFaGltYTRyT1NkS0Nk?=
 =?utf-8?B?aXdDS0NhVE0rbThzNHd0d3JTajJYZFBmNFB3SytGTjVUbVhKTGkwNFozalpE?=
 =?utf-8?B?Umoxa1JtWTBZVy80c2pPSkp4N0pid0JTUGdaKzNvWkNSUUlpaER3VFhlWnN4?=
 =?utf-8?B?VzZaVzJSSmJ3ekN1cEs0UDZsV3hqZlJ6L3U2ejUwZ0tKeHhOTjhCNlZLNzJH?=
 =?utf-8?B?MWxRajhVYVRlM2lxdFlMb2tSRmI1WDQ1TGNBY3I1OTJscjNPekVVQWUwbU1T?=
 =?utf-8?B?T2ZuaXJudkRPKzhrbXYySXZmUjNXdjU3Q2w0eTVFRjZjUHYwc05OS3lvbnZB?=
 =?utf-8?B?M2l5Ui92VkM3SUZGajJLN1NGZFM0MG42aEliRzVBSnFSa1k3T1pxNVJuVWZR?=
 =?utf-8?B?c3dMdk1ZY0RQKzJsaHdQWit3cGs5MU80My8wdjBPUU1vNWQvNjlhYm1Yd0Ju?=
 =?utf-8?B?OEIySFZ2OXh6MS8yeWdkYm5wcURsUnFHMnBCa1BZSGhlUG0rSExvYTFlNFE4?=
 =?utf-8?B?MkpteExOdWlJSXc5c21md0hEcmhlOWE0ekNmVmlOYWtocUUwZ3d5S2J3QW5U?=
 =?utf-8?B?eHo4YTdVcTZFTSttR2FzVS9aRnEySHhQcEk1N0dML2lhRExocGJCaHlKenFT?=
 =?utf-8?B?VjVKTnhnS0l4eXgyZU1aNE1GV0Z1RjMrQkE2bmVRS2F6aHJRaWFvbGxrc3FB?=
 =?utf-8?B?T2R2QjBpTEovS1cydzZJT3lXQ2FkV285VlArSWVoeC9oWmlBcUs5TnBYVlhj?=
 =?utf-8?B?dGY0a1cvU2dwN0JsTmdQRHYwdUJwcXZmVXo3eFF5eWRXYldQc3M5aDRsRGVY?=
 =?utf-8?B?ZXZOcU5qRWpOL3FpRUVBeURZWnJJcHd2R0RKdGJuWjdrWFE9PQ==?=
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)(7416014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WWRWbzBZWmVZOWsrNWZSS1BFRDJuNDhUdjFCcVlJZHpSZ3JaSjM3NmN2TDhu?=
 =?utf-8?B?bHVTazVJTkwxSmdzT2NKeVpWSmd4VjdKUWZsakxvOVFjRVkxYkFGNzBSb0Rh?=
 =?utf-8?B?aW9CbzM1dFdoRzhFak5Pc0FWNjVSZi9hbGl3c215Vms4OVVJSkhUS1l5RWRH?=
 =?utf-8?B?SEF5Wmp5MnBOaWhwSmt2VjhrQ1Vpd0k0L1JKSm4zakpnN0NDQ0VDRFNrZEZT?=
 =?utf-8?B?d1YvaXNOUERVQnFIdkY5NTl0YkFVLzVEOEtMaEd0R0dOSGJ3cktCZnJtWXpI?=
 =?utf-8?B?d1hkZXNQcWltWXFnZlVRc2lTZ1cxeGZDbTBybWZnMnJBMTJvcStDL1ZEcmdj?=
 =?utf-8?B?elFQZVQzZmtIMm1LSmVVT293SWZ6MHNjQU5nc09YSVN3RHVnQ3lxZU9WNnpr?=
 =?utf-8?B?Wlg3YlFXd3V3aVdEZEZaNUxsQTZqdk5UZ1RIOHVKMFFGK2RlNU90V3NTNWZK?=
 =?utf-8?B?b0puMDZXQTV2cXdoWkxBbXcrK3kvTzlLdnZJc0ZhQ0VMUFdJRWlQRUFVWDFG?=
 =?utf-8?B?MzlMcnBGMDFBUHM3eG9DTmlmbk9TUWphME1BVjdGQ2dERUNvYlJDRjdxY095?=
 =?utf-8?B?ekNSSkMydmdQL1o5aUg1RXAzbFVDNmdlSDhEbUF2QXVLdkJsQjhvUE9JRnJB?=
 =?utf-8?B?MWVwYmxvMEc5RXluTXp0T3VNWDgyY0N3RitDYlFjelpwYUJtUFpjRHlqelJo?=
 =?utf-8?B?VmZMYmdkQm41dVNQbXRQSzc1eXlKOWtYY21zekpkbmxnRWUxNU04dzArTnBu?=
 =?utf-8?B?U2lTWU01YXlIaCsvQ3VLTE5zTEJKRWhxYUVBUDFqWUN4d3h1ZnV5V0lyS2xo?=
 =?utf-8?B?d3pNKzB4UHZtZU5jNHh3Qy9uejZOMFcxS3BUTldXYmpIOXVCNWlWdk85S2Fx?=
 =?utf-8?B?WmpiOFV0OHo3ZExhRzZYY1lkQzh2bWFXNXhPYUZhQTRSQTFlYXlKdmhuRTFZ?=
 =?utf-8?B?TTN4TzRDK21kOU9xeGdsUzFJbXlvVkNGRU1IaUhqdmdZSUpnQTNwNXB5K1M4?=
 =?utf-8?B?aWtlUzNmUXBYb3R2YTVMZzJUc2lLK0x4UmJ2dXpCNWJieWV6M2x0OTJxQWNm?=
 =?utf-8?B?bmdmNlRKUWRvMDBHeWx6T1FFSmZjbzUwcFVpYWRzL0tCcWw2QnV1OTR1cmE1?=
 =?utf-8?B?TGtBQzV2TmVobEkzVnJZZGh1czhUdHhpU0hnQjBpdDhoSTE1Y0tsZTJXK2J0?=
 =?utf-8?B?ekxFeU9IOThISzdKNjd6c29JWSs5eitlQVYwMG9sWk1WU2p1RjRRQlROVkFX?=
 =?utf-8?B?QjVIcWpLQ3JSMkc3dlNuUk5pWkRJd2hpL0RrRUVVN2RpZU9LZ1ZYRTRZOTFh?=
 =?utf-8?B?WnJ3ZVlXeU11cUxuUTB6QUNNYmVsZ3VKQkkyM0dHRmd3SG45eHRnWnpXYmpE?=
 =?utf-8?B?NVgyR3o2dXZrMkQvc0E4UEVrM0RXVFVrRHNPWG4vb2doYUpDZ2NpdkhTYm9T?=
 =?utf-8?B?b3U1dGZZM1hUbktkSENXTXZYeEFiUGEvTUtDRnNpVzVHTUM4Vi9rVGpmZUE5?=
 =?utf-8?B?aWNUdXB3Yy9WM0djVWwzNlpMZTliK1RIeDZCK3BweWVOQUVlNzc3SWQ5TWpT?=
 =?utf-8?B?VUZ0R1R6RkZtWVdjUTNCd3k3d3NVZktTK2tVYWtzSXRKS3l1QXNEYTdFNWhI?=
 =?utf-8?B?d2pkQUJmMHhkbTVzcWc3bFBvTm5OZDBGS21Cam1GL291aGNCd3BneVpBTXdE?=
 =?utf-8?B?YTByOHgvRjJrT1VqYlNSYkhwWmg5dEU1UTJ5MHZsTkZibm9HZVozYlcwT1hU?=
 =?utf-8?B?WnVFRkZPanIyUmtjWnl4WDFzdXlQbFRIbWJpQ3FLY254aWRSNWRpanJHTCt4?=
 =?utf-8?B?L2pldFBvenRwZHhQQlovbnN3ZGx6U0RKbStxdkZwZGZyYkZYTDVHUnRuazAz?=
 =?utf-8?B?TjkrVHJXcjk0WjkvRmxCaW01TkR0R3pBb0huTG9tbmEzc2hyTzNaQzJWY0xP?=
 =?utf-8?B?L1A4OENBM2Y2UElialRkOFpnMktoSEJ4Vk5ZQUpncU1LMXFaTFc4ZHNJMUs5?=
 =?utf-8?B?L1FjaWlFa0pkajJBR24waW9ZWDdRejdYTTJ0eWwwV1AraUF1bTFDc3FQcjY3?=
 =?utf-8?B?MkZNcjkxTElsdDIzczlQYjlLcWtKVTU5YXNXT1JUalN2OWVKcGpNclA4d3dm?=
 =?utf-8?Q?iVOs=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <803F06DF572266438842DB6AFA2CF205@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: bf6b822d-df17-4848-2854-08dc9a430dba
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 02:59:56.3141
 (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: oLQG1r4b1CJ0LVac6k8hn9Xf/WFtBz6MICryo6joK61j8mbyzehcwpEYuGziYjtapWVXKso/sbEkxiKdeAinPw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6365

T24gMjAyNC83LzEgMTU6MTgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAzMC4wNi4yMDI0IDE0
OjMzLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IFdoZW4gYSBkZXZpY2UgaGFzIGJlZW4gcmVzZXQg
b24gZG9tMCBzaWRlLCB0aGUgdnBjaSBvbiBYZW4NCj4+IHNpZGUgd29uJ3QgZ2V0IG5vdGlmaWNh
dGlvbiwgc28gdGhlIGNhY2hlZCBzdGF0ZSBpbiB2cGNpIGlzDQo+PiBhbGwgb3V0IG9mIGRhdGUg
Y29tcGFyZSB3aXRoIHRoZSByZWFsIGRldmljZSBzdGF0ZS4NCj4+IFRvIHNvbHZlIHRoYXQgcHJv
YmxlbSwgYWRkIGEgbmV3IGh5cGVyY2FsbCB0byBjbGVhciBhbGwgdnBjaQ0KPj4gZGV2aWNlIHN0
YXRlLiBXaGVuIHRoZSBzdGF0ZSBvZiBkZXZpY2UgaXMgcmVzZXQgb24gZG9tMCBzaWRlLA0KPj4g
ZG9tMCBjYW4gY2FsbCB0aGlzIGh5cGVyY2FsbCB0byBub3RpZnkgdnBjaS4NCj4gDQo+IFdoaWxl
IHRoZSBkZXNjcmlwdGlvbiBwcm9wZXJseSB0YWxrcyBhYm91dCBhbGwgb2YgdGhpcyBiZWluZyBh
Ym91dCBkZXZpY2UNCj4gcmVzZXQsIHRoZSB0aXRsZSBzdWdnZXN0cyBvdGhlcndpc2UgKGxlYXZp
bmcgb3BlbiB3aGF0IHRoZSBjb250ZXh0IGlzLCB0aHVzDQo+IC0gdG8gbWUgYXQgbGVhc3QgLSBz
dWdnZXN0aW5nIGl0J3MgZHVyaW5nIHZQQ0kgaW5pdCBmb3IgYSBwYXJ0aWN1bGFyDQo+IGRldmlj
ZSkuDQpDaGFuZ2UgdGl0bGUgdG8gInhlbi9wY2k6IEFkZCBoeXBlcmNhbGwgdG8gc3VwcG9ydCBy
ZXNldCBvZiBwY2lkZXYiID8NCg0KPiANCj4+IEBAIC02Nyw2ICs2OCw2MyBAQCByZXRfdCBwY2lf
cGh5c2Rldl9vcChpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykNCj4+
ICAgICAgICAgIGJyZWFrOw0KPj4gICAgICB9DQo+PiAgDQo+PiArICAgIGNhc2UgUEhZU0RFVk9Q
X3BjaV9kZXZpY2Vfc3RhdGVfcmVzZXQ6DQo+PiArICAgIHsNCj4+ICsgICAgICAgIHN0cnVjdCBw
Y2lfZGV2aWNlX3N0YXRlX3Jlc2V0IGRldl9yZXNldDsNCj4+ICsgICAgICAgIHN0cnVjdCBwY2lf
ZGV2ICpwZGV2Ow0KPj4gKyAgICAgICAgcGNpX3NiZGZfdCBzYmRmOw0KPj4gKw0KPj4gKyAgICAg
ICAgcmV0ID0gLUVPUE5PVFNVUFA7DQo+PiArICAgICAgICBpZiAoICFpc19wY2lfcGFzc3Rocm91
Z2hfZW5hYmxlZCgpICkNCj4+ICsgICAgICAgICAgICBicmVhazsNCj4+ICsNCj4+ICsgICAgICAg
IHJldCA9IC1FRkFVTFQ7DQo+PiArICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmZGV2X3Jl
c2V0LCBhcmcsIDEpICE9IDAgKQ0KPj4gKyAgICAgICAgICAgIGJyZWFrOw0KPj4gKw0KPj4gKyAg
ICAgICAgc2JkZiA9IFBDSV9TQkRGKGRldl9yZXNldC5kZXYuc2VnLA0KPj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgIGRldl9yZXNldC5kZXYuYnVzLA0KPj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRldl9yZXNldC5kZXYuZGV2Zm4pOw0KPj4gKw0KPj4gKyAgICAgICAgcmV0ID0geHNtX3Jl
c291cmNlX3NldHVwX3BjaShYU01fUFJJViwgc2JkZi5zYmRmKTsNCj4+ICsgICAgICAgIGlmICgg
cmV0ICkNCj4+ICsgICAgICAgICAgICBicmVhazsNCj4+ICsNCj4+ICsgICAgICAgIHBjaWRldnNf
bG9jaygpOw0KPj4gKyAgICAgICAgcGRldiA9IHBjaV9nZXRfcGRldihOVUxMLCBzYmRmKTsNCj4+
ICsgICAgICAgIGlmICggIXBkZXYgKQ0KPj4gKyAgICAgICAgew0KPj4gKyAgICAgICAgICAgIHBj
aWRldnNfdW5sb2NrKCk7DQo+PiArICAgICAgICAgICAgcmV0ID0gLUVOT0RFVjsNCj4+ICsgICAg
ICAgICAgICBicmVhazsNCj4+ICsgICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAgIHdyaXRlX2xv
Y2soJnBkZXYtPmRvbWFpbi0+cGNpX2xvY2spOw0KPj4gKyAgICAgICAgcGNpZGV2c191bmxvY2so
KTsNCj4+ICsgICAgICAgIC8qIEltcGxlbWVudCBGTFIsIG90aGVyIHJlc2V0IHR5cGVzIG1heSBi
ZSBpbXBsZW1lbnRlZCBpbiBmdXR1cmUgKi8NCj4gDQo+IFRoZSBjb21tZW50IGlzbid0IGluIHN5
bmMgd2l0aCB0aGUgY29kZSBhbnltb3JlLg0KQ2hhbmdlIHRvICIvKiB2cGNpX3Jlc2V0X2Rldmlj
ZV9zdGF0ZSBpcyBjYWxsZWQgYnkgZGVmYXVsdCBmb3IgYWxsIHJlc2V0IHR5cGVzLCBvdGhlciBz
cGVjaWZpYyBvcGVyYXRpb25zIGNhbiBiZSBhZGRlZCBsYXRlciBhcyBuZWVkZWQgKi8iID8NCg0K
PiANCj4+ICsgICAgICAgIHN3aXRjaCAoIGRldl9yZXNldC5yZXNldF90eXBlICkNCj4+ICsgICAg
ICAgIHsNCj4+ICsgICAgICAgIGNhc2UgUENJX0RFVklDRV9TVEFURV9SRVNFVF9DT0xEOg0KPj4g
KyAgICAgICAgY2FzZSBQQ0lfREVWSUNFX1NUQVRFX1JFU0VUX1dBUk06DQo+PiArICAgICAgICBj
YXNlIFBDSV9ERVZJQ0VfU1RBVEVfUkVTRVRfSE9UOg0KPj4gKyAgICAgICAgY2FzZSBQQ0lfREVW
SUNFX1NUQVRFX1JFU0VUX0ZMUjoNCj4+ICsgICAgICAgIHsNCj4gDQo+IFRoaXMgYnJhY2UgaXNu
J3QgbmVlZGVkIHdoaWxlIGF0IHRoZSBzYW1lIHRpbWUgaXQgaXMgY29uZnVzaW5nLg0KPiANCj4+
ICsgICAgICAgICAgICByZXQgPSB2cGNpX3Jlc2V0X2RldmljZV9zdGF0ZShwZGV2LCBkZXZfcmVz
ZXQucmVzZXRfdHlwZSk7DQo+PiArICAgICAgICAgICAgaWYgKCByZXQgKQ0KPj4gKyAgICAgICAg
ICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAg
IiVwcDogZmFpbGVkIHRvIHJlc2V0IHZQQ0kgZGV2aWNlIHN0YXRlXG4iLCAmc2JkZik7DQo+IA0K
PiBJIHF1ZXN0aW9uIHRoZSBuZWVkIGZvciBhIGxvZyBtZXNzYWdlIGhlcmUuDQpPSywgd2lsbCBk
ZWxldGUgaXQgaW4gbmV4dCB2ZXJzaW9uLg0KDQo+IA0KPj4gLS0tIGEveGVuL2luY2x1ZGUvcHVi
bGljL3BoeXNkZXYuaA0KPj4gKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3BoeXNkZXYuaA0KPj4g
QEAgLTI5Niw2ICsyOTYsMTMgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9wY2lf
ZGV2aWNlX2FkZF90KTsNCj4+ICAgKi8NCj4+ICAjZGVmaW5lIFBIWVNERVZPUF9wcmVwYXJlX21z
aXggICAgICAgICAgMzANCj4+ICAjZGVmaW5lIFBIWVNERVZPUF9yZWxlYXNlX21zaXggICAgICAg
ICAgMzENCj4+ICsvKg0KPj4gKyAqIE5vdGlmeSB0aGUgaHlwZXJ2aXNvciB0aGF0IGEgUENJIGRl
dmljZSBoYXMgYmVlbiByZXNldCwgc28gdGhhdCBhbnkNCj4+ICsgKiBpbnRlcm5hbGx5IGNhY2hl
ZCBzdGF0ZSBpcyByZWdlbmVyYXRlZC4gIFNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgYW55DQo+PiAr
ICogZGV2aWNlIHJlc2V0IHBlcmZvcm1lZCBieSB0aGUgaGFyZHdhcmUgZG9tYWluLg0KPj4gKyAq
Lw0KPj4gKyNkZWZpbmUgUEhZU0RFVk9QX3BjaV9kZXZpY2Vfc3RhdGVfcmVzZXQgMzINCj4+ICsN
Cj4+ICBzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlIHsNCj4+ICAgICAgLyogSU4gKi8NCj4+ICAg
ICAgdWludDE2X3Qgc2VnOw0KPj4gQEAgLTMwNSw2ICszMTIsMTkgQEAgc3RydWN0IHBoeXNkZXZf
cGNpX2RldmljZSB7DQo+PiAgdHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlIHBoeXNk
ZXZfcGNpX2RldmljZV90Ow0KPj4gIERFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfcGNp
X2RldmljZV90KTsNCj4+ICANCj4+ICtzdHJ1Y3QgcGNpX2RldmljZV9zdGF0ZV9yZXNldCB7DQo+
PiArICAgIHBoeXNkZXZfcGNpX2RldmljZV90IGRldjsNCj4+ICsjZGVmaW5lIF9QQ0lfREVWSUNF
X1NUQVRFX1JFU0VUX0NPTEQgMA0KPj4gKyNkZWZpbmUgUENJX0RFVklDRV9TVEFURV9SRVNFVF9D
T0xEICAoMVU8PF9QQ0lfREVWSUNFX1NUQVRFX1JFU0VUX0NPTEQpDQo+PiArI2RlZmluZSBfUENJ
X0RFVklDRV9TVEFURV9SRVNFVF9XQVJNIDENCj4+ICsjZGVmaW5lIFBDSV9ERVZJQ0VfU1RBVEVf
UkVTRVRfV0FSTSAgKDFVPDxfUENJX0RFVklDRV9TVEFURV9SRVNFVF9XQVJNKQ0KPj4gKyNkZWZp
bmUgX1BDSV9ERVZJQ0VfU1RBVEVfUkVTRVRfSE9UICAyDQo+PiArI2RlZmluZSBQQ0lfREVWSUNF
X1NUQVRFX1JFU0VUX0hPVCAgICgxVTw8X1BDSV9ERVZJQ0VfU1RBVEVfUkVTRVRfSE9UKQ0KPj4g
KyNkZWZpbmUgX1BDSV9ERVZJQ0VfU1RBVEVfUkVTRVRfRkxSICAzDQo+PiArI2RlZmluZSBQQ0lf
REVWSUNFX1NUQVRFX1JFU0VUX0ZMUiAgICgxVTw8X1BDSV9ERVZJQ0VfU1RBVEVfUkVTRVRfRkxS
KQ0KPj4gKyAgICB1aW50MzJfdCByZXNldF90eXBlOw0KPj4gK307DQo+IA0KPiBEbyB3ZSByZWFs
bHkgbmVlZCB0aGUgX1BDSV9ERVZJQ0VfU1RBVEVfUkVTRVRfKiBiaXQgcG9zaXRpb25zIGFzIHNl
cGFyYXRlDQo+ICNkZWZpbmUtcz8gSSBjYW4ndCBzcG90IGFueSB1c2UgYW55d2hlcmUuDQpJIHRo
b3VnaHQgaXQgd2FzIGEgY29kaW5nIHN0eWxlLg0KSSB3aWxsIGRlbGV0ZSB0aGVtIGluIG5leHQg
dmVyc2lvbi4NCg0KPiANCj4gSmFuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4u
DQo=


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 03:15:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 03:15:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751913.1160009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOTzC-0002IT-48; Tue, 02 Jul 2024 03:15:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751913.1160009; Tue, 02 Jul 2024 03: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 1sOTzB-0002IM-VY; Tue, 02 Jul 2024 03:15:17 +0000
Received: by outflank-mailman (input) for mailman id 751913;
 Tue, 02 Jul 2024 03: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=EMB5=OC=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sOTzA-0002IG-LJ
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 03:15:16 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on2060d.outbound.protection.outlook.com
 [2a01:111:f400:7ea9::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4c96643a-3821-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 05:15:15 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DS7PR12MB5958.namprd12.prod.outlook.com (2603:10b6:8:7d::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.29; Tue, 2 Jul
 2024 03:15:10 +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.7719.029; Tue, 2 Jul 2024
 03:15:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c96643a-3821-11ef-958a-bbd156597b9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MG+jCdwNrC46xRLOhFEHwFsARyfyD2PVrvwRzeNMlQD0cjj9ryqkZ4RqjZlHkZPVYDE40phMG9RdcKVo0giTopNU3Mg56eY0C5JB203wR7ZjPs73UGIgDXvRBeMz4bQXxYi46P8k0fXVCBBOOP2IuT5nla9fTlsBRv5BRSaHtueR7a5YJaH3AtEZ0+g15kpmyXYbRvhuzhY39xwEASxZcysre9RgVdD6p4FiZndsMymS6WLjmK1PejmzhUc4lB72KxtjRgJspBI867CcTYMPi3c5zWbcZCY9BC2hWLHd+5M2fm8tY+DgtIk1fgkIgX/NqSrOP3mgfbt1Dvq2U6EceA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YMi2Yu33QD6WkYPr8eFtjTL15W+yfB+/sJ1/MknNhT0=;
 b=gwtwDwsLzHVQmMhS4blKCTveOrGKlXbE6VHn1BDvfW5jFEexiAeeen0ZF/BJIe1EvVkPJogcUzgR30yrVg6icPhwomrCj65ictqxCV/oB+uk9NBwoxx7/i/rYLGC1CHWsmsvVUtvhT4yz/TLp8tYEM6pHvfOCrRC7vEVNDb6N6b4Y+O83K7vAZGNzpqJvzX1F1Y3s96msrjWHc9mFnOSo6FoPe4rYqY6aujz7mVUUHhvGe6sCxFPUoKyTPN6yQvXJ8sw8CiHNA632YdGDy4gCtizlcsi+ISx6O8g/uVdlp8R4lUKPI+TgAcWiEfZqGXava4ZAd/9ym7ar6OVzHI1kQ==
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=YMi2Yu33QD6WkYPr8eFtjTL15W+yfB+/sJ1/MknNhT0=;
 b=kutc5Vq3RYCSY+XJmtaLIPTOMndTBpf6ZvubR4ug4rzA0c1OdplbsVGNCUfxh2WGGgtxwuneYdCif0lpbx0YuQjldmP1Zi9xR84V2/EFx4v3dR5O2sQBU5RfQ1BVneX9nTNLuw/5ZD0FfVuIgW8QEQ5aM6MogrxOakSH1JTlSlw=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v11 2/8] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Topic: [XEN PATCH v11 2/8] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Index: AQHayunRhQS+lhfPgk6PWMYxsBafhLHhf0AAgAHJ+4A=
Date: Tue, 2 Jul 2024 03:15:10 +0000
Message-ID:
 <BL1PR12MB5849C3882D31620ADAC55ADAE7DC2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-3-Jiqian.Chen@amd.com>
 <9a311ee0-dcf2-4609-aced-7f57b322da5f@suse.com>
In-Reply-To: <9a311ee0-dcf2-4609-aced-7f57b322da5f@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.7719.007)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|DS7PR12MB5958:EE_
x-ms-office365-filtering-correlation-id: 913c4559-1c78-4aed-b5c7-08dc9a452e87
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?eTZpY3RrN1RWZ3c4dDNuemIzUGZiaXF5WlcvTXo4TUhXZC9JWW1TYm5iQVBN?=
 =?utf-8?B?cWl1ZWNPQzNsRDJhblFxQ0xpYml3c0FnRDI4ZHNPZks0SGZORUFIdU1CSGVF?=
 =?utf-8?B?QjU0ZTdpSk1heXMvaUl4RkhEMGRSbXFBV0NxUkx0QklLeEcvMXZoOXBSaTlV?=
 =?utf-8?B?cHJhVERHZW85bmFRSytSV0oxcEJ6aE8xT0lLY2RHYW5mVU9SMFh3VUw0YWhL?=
 =?utf-8?B?NFJwNlRPemxzYmxKUGZIdWNTOGVpRVl3K2tUR01pdG9sMHNyZXZrbjhXY0Mw?=
 =?utf-8?B?L21vc0FMRTBJaHdxdjl6K1piSmRqbVhac3U5SzlTdERKQlMvQ003L2xZbmF5?=
 =?utf-8?B?UHRHS3NlcStpWXpQYlRvV1ZPdHFzUGlZWG5VUHlSYzUwTkwvNEN3M1ZneFlz?=
 =?utf-8?B?MHp1VjhnMDRPQkt2cm9rbS9tTEpESUdweVRYcGhPUGloUm03MEtVak9aeG9M?=
 =?utf-8?B?UzJOck51djB3ckV2SmlsekpBdzZjK29vRUIrS1dwdk42Q0FFQUplSUhpV0tU?=
 =?utf-8?B?cmViazNYZUg1bG5FaFBWQVdKM2xHdGJ1VEhzZTU1NlZ2LzhlbHhKVGRMWCtN?=
 =?utf-8?B?NDNMYWRhR0VzQ1pUL0liQTBQQll6YWg1dmNvR0ZzTSs2eGdKVWl5THE0Lzd5?=
 =?utf-8?B?OFBkeXQya3ZGMzdSVTNZdDBLREduOXo5bkgvN1MyTERYZUNabmg2cU5CaXhP?=
 =?utf-8?B?SmJtUlB5Z0wvRzFsNFNJVGlOL0MrcmNndzhEWWRVeVNXZ3IrRzdJV2JqUTJX?=
 =?utf-8?B?RGFtOXdhcG96eTIzUUJZbVNvalJhaTYzdGd5dDYvRE1tZndxdUhEdkpqVDZP?=
 =?utf-8?B?ek9DUWFJRW1ZSGY2VW9FRnlQN3VUMnZQMVllNlgzYml4aWpXbHh2WDEycjZY?=
 =?utf-8?B?UFRZemVqSXF4dEMwTDBleVl1dHVORkU4T3hKNStRU0twWTVWSTZ2Vzh6MFE3?=
 =?utf-8?B?SnBmR09tRjhXZGN0OVRxa2g2clFVV21BYXZRdndBelhuN2ZteXFkZnowT2xp?=
 =?utf-8?B?NnUwZTJxb1k5QnVZS2ZZbnR2a1Y5bTRHZGRlRmlYSFowMmJuT29SM0c5Uk9z?=
 =?utf-8?B?aXlYcTJxQlN4aEFVcmJFSU9CR1VndEJwRTQyckdyaUNjU3hJdWN2UVoydzYw?=
 =?utf-8?B?dDFRUGkya3A3WEhEZlNQVjhwTzFUY2V6cURQNHI4RUhibjNGcUswcm1WWmZ1?=
 =?utf-8?B?WHNHeGdGTGVYSDFtQVBsTTFjWDlCTVltZnV6Zkx4TGNIdTVLUi9YNDI3UURh?=
 =?utf-8?B?eTdzUTRRcDhpMmxIUTRWRnl3N1V1RGpySVJQZUhFSDN2MnZjT2NkdTJ5TnNM?=
 =?utf-8?B?cGJTWkRTdVhoUkZZK1oxTmh0Z3ZmYWQ4UDFyMndRSURraDRGRWpubVFza0JR?=
 =?utf-8?B?Q0t2VGNVd2MzUkFnWGRESVdOeS9PUEFmeVY5a3VtNVUzcDNNdThUV1N4MGdk?=
 =?utf-8?B?YThLekttS3dJaXBneWthc0RsT3JucUM2MGdIdUFMZlJZdlhxMHV5S2FNRXZY?=
 =?utf-8?B?a0RwWmNYSmVGUmZ2clQrVk1iWG9WSXJFRzJub1owTWFBNDJKTFR0bFFLZlY3?=
 =?utf-8?B?cHBia04xK0hEbENOMVRraFFQWktCUjRHVWlUSitDTExhaTg1Mmx1YmxETlZV?=
 =?utf-8?B?cXY0eFI0Zi9RaUlaTmp1MmtEMWUwTkpIS3ZYWnBSSTNieXNlbWJrTkQ4eCt5?=
 =?utf-8?B?VUdObXVQRUVhTnhtNkJtTXZOeHNudjN3OFZWVkd6Snh1OUkreS9BUVlHYm4r?=
 =?utf-8?B?em40c1hOR2pxL2lJWlQwaFRFOHdCSVFFakwyd0gydzFWUEw5bnBJU3p4Z2k3?=
 =?utf-8?B?eWZDeENLb0pCYTREU3lJZk5SaFZiUlU0WXRiNytrbFJ5bXk5ckhWVGV1dkFl?=
 =?utf-8?B?Y1FsNlRBc3ZSWU94Q09uaGhjcXJiK0NIWXZrc2RjWlNoTlE9PQ==?=
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)(7416014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?K3ZrWG5hRVNoODB6QUdIbVR0TWttV0dad08rVVcxNzVaVFBLNUZwZGxIVEsy?=
 =?utf-8?B?UGlKTVVlRndXaGJHYzJLeTFkeVc1VlJTVVlDaXducWdoMkl1MkhpVnZsMU1v?=
 =?utf-8?B?NGpBRmoybXZqTlIyaFc5MTlsdFRrYUZxYUNQcHJxL3NEa0lZK1VVQnZDc1pL?=
 =?utf-8?B?QWNMWksyWE1jMlp5Wks4c3E2c1lLNitvTTVkT0owSmpDUUJHZ1lKSExWbURD?=
 =?utf-8?B?YWNVRHl4VU5iMGVQTEh4ZnhXcGhrSDJmOVVBUStIZlJucmJTUFZvanNLdURN?=
 =?utf-8?B?SFpnYzdyb3c0ZlVVeWlDUnpweUtBMTc3SzZLR2lKZE1CWU5tb29wVE1OM1Ry?=
 =?utf-8?B?bWJ0cGFzTzV1SUlMNGFpUTB0ajdndThoOFdWNG1KK3pUby9DakNvUXd3dUxG?=
 =?utf-8?B?NU5aY2RLZmJZMTV5WTdQcXgweDd5ZnlpSXhIMTJ0WXcwRStCb0tlOW41d3o4?=
 =?utf-8?B?R2o2OHlERnJpdElKUis5YTNLNkIvS0E2aFMrZ0JBcEJKKzdYc2RPc3pVS3Bx?=
 =?utf-8?B?RjFISFpLTjVnSkJUSURLUHo5TStDVTl6MTF3b2JPMFd0b3Z5OFZsUitmdVU5?=
 =?utf-8?B?UDcycHlSWnM4WWlqVDAxblVpOEd0VGw5eHo5akZxUWZFVDk1Q2NwWXU2cC9O?=
 =?utf-8?B?TW1vZkhlQ1ZwN0E5aTNCSFdEL3N4MUkvbDJtSCtjNXdwaGVnU0xjZXVGUTR4?=
 =?utf-8?B?RnM4OWM5Q2plOTNmK3pUT3I4WmFsNnpxd25BTHIwSmdFZTRMbW44YXRWZDM0?=
 =?utf-8?B?N1BGdHBSNmZZQW54cWNzUEFTK1NJYzhuby9oTlYwK1o5NndzOUFHVUF2bFov?=
 =?utf-8?B?cXp4YWttWXVIcmF1cmVhVmlEQWI4M2o2c2VhUStOeSsydnh1dnJ2YUZYd2dU?=
 =?utf-8?B?ZHo0SnY4T1R2bFNqZDVqUFI1ZEFrR244Um1Qa3N3Z1gwY3N4RWsyMnl4Rnh0?=
 =?utf-8?B?L3ROMzNsT2ZqTHZJZThFV2N2aGZ5c0NUYVhVcHQ1aFJIeTE4QXFMR1FuVFpD?=
 =?utf-8?B?UXlGK2h0VUJmL1IzckoxcUVZUFlrS3I3OGlLc1RWVGRrZVpvUmhQK2ZWazlJ?=
 =?utf-8?B?OWl5OEw5SG9tVkUxdVB6UEY0YlJNVy9HaW4vMFAyVVZST2xNemI3THc2TmRr?=
 =?utf-8?B?d2ZEUGJ5Uk5NbStvOWdHeDFldHlQUWpMcGVISlZndSt5aWdOSkxoUlhrdFlx?=
 =?utf-8?B?b202TlpZWDg4aWlQRHZrYk9oU3Q0R3Naam1QRjYybHlLK1R3ZFdpQlY5eUxk?=
 =?utf-8?B?dFkwNTV6MDNLZG5PeE9ka0JWTXF0MlRGQkxUcmJuVmlQQVowM0F5NEFVN0t2?=
 =?utf-8?B?YzhFTmxLMFAwUHFGVDVxTThrRkdwcnBHb0xaT09tL3R2bFA3TGNyT1hEd2k4?=
 =?utf-8?B?Wk1VVkVQZmVpN000YTBualBVRTByM09JeEk1OVEwUy8wK1pxRzQ2UHArZUFP?=
 =?utf-8?B?Skh4aGU4dGlKUis3N24yc1lrSE5MejltT0F0dDU0Y3lXeFRGcFdvK1NBTGVv?=
 =?utf-8?B?WVc5RzQ0Rk1RQjRxV0xremFXbUprSEhjOCtXQzJJd0YrTHFDRkR0QjJSWWls?=
 =?utf-8?B?TGUrSVhFdm92Y0xnMS9wZW0xeHhaWGIybHd2VmVScWdMb0VZS00vc3NOcGZj?=
 =?utf-8?B?eFhzZ240Q2k2ZEFFd1A0ZC9GSWNpOTJVcXNBMzlTdFdhL0Jka045UlQzWWl6?=
 =?utf-8?B?c3BhTEZHdlJVR1dJTTBpZnNxUmdaL05aTFhxMVFJR0pvV1NLVGtTZW1NbFJF?=
 =?utf-8?B?QjIrM1gxc3AwQXhRTzFVeTlNbUl1UVZyYXY2b2xmRlE5ZVdoa2cyTnE5SWsv?=
 =?utf-8?B?bUJocmpUakhHVVpJcFdLZGJWOHloZVQ5dC9uL25NNWtQM3pmY1NUR0xiNCtS?=
 =?utf-8?B?d0k0bmQxSHFnbWErVWNVQ09FY0dTM1NBN2dnalRxZFZoa1haZ0EwNzNraTAz?=
 =?utf-8?B?VFBFRzRkTWJScnNDdnZWeDR0d3RFS0NwRlB4THFaMGxORWp5eEtoWjVuTC9h?=
 =?utf-8?B?aGNZRzgzK0R2MGp2RWtuMmpJRVZJOFg2Y2JRNDVyRkMyQVRybDJvRVc5R1Nj?=
 =?utf-8?B?elRWZDhyK09nTUR1TFFlbWMwWjlaQU1iWjdvOXpFZXNBUTNKRFkvNlh3aFEw?=
 =?utf-8?Q?Pb9Q=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D80B69E0697BC1419440A9088C182B5D@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: 913c4559-1c78-4aed-b5c7-08dc9a452e87
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 03:15:10.3214
 (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: mBExDZtPVu8Yr4XaV60KX5lMPlkX2ew8ydDUBmMP2SNIx4PlKJpyk2D6f1w1EUrQcUsOvKJKV7/jSqH4z0mEzA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5958

T24gMjAyNC83LzEgMTU6NDQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAzMC4wNi4yMDI0IDE0
OjMzLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IElmIHJ1biBYZW4gd2l0aCBQVkggZG9tMCBhbmQg
aHZtIGRvbVUsIGh2bSB3aWxsIG1hcCBhIHBpcnEgZm9yDQo+PiBhIHBhc3N0aHJvdWdoIGRldmlj
ZSBieSB1c2luZyBnc2ksIHNlZSBxZW11IGNvZGUNCj4+IHhlbl9wdF9yZWFsaXplLT54Y19waHlz
ZGV2X21hcF9waXJxIGFuZCBsaWJ4bCBjb2RlDQo+PiBwY2lfYWRkX2RtX2RvbmUtPnhjX3BoeXNk
ZXZfbWFwX3BpcnEuIFRoZW4geGNfcGh5c2Rldl9tYXBfcGlycQ0KPj4gd2lsbCBjYWxsIGludG8g
WGVuLCBidXQgaW4gaHZtX3BoeXNkZXZfb3AsIFBIWVNERVZPUF9tYXBfcGlycQ0KPj4gaXMgbm90
IGFsbG93ZWQgYmVjYXVzZSBjdXJyZCBpcyBQVkggZG9tMCBhbmQgUFZIIGhhcyBubw0KPj4gWDg2
X0VNVV9VU0VfUElSUSBmbGFnLCBpdCB3aWxsIGZhaWwgYXQgaGFzX3BpcnEgY2hlY2suDQo+Pg0K
Pj4gU28sIGFsbG93IFBIWVNERVZPUF9tYXBfcGlycSB3aGVuIGRvbTAgaXMgUFZIIGFuZCBhbHNv
IGFsbG93DQo+PiBQSFlTREVWT1BfdW5tYXBfcGlycSBmb3IgdGhlIHJlbW92YWwgZGV2aWNlIHBh
dGggdG8gdW5tYXAgcGlycS4NCj4+IEFuZCBhZGQgYSBuZXcgY2hlY2sgdG8gcHJldmVudCAodW4p
bWFwIHdoZW4gdGhlIHN1YmplY3QgZG9tYWluDQo+PiBoYXMgbm8gWDg2X0VNVV9VU0VfUElSUSBm
bGFnLg0KPj4NCj4+IFNvIHRoYXQgdGhlIGludGVycnVwdCBvZiBhIHBhc3N0aHJvdWdoIGRldmlj
ZSBjYW4gYmUNCj4+IHN1Y2Nlc3NmdWxseSBtYXBwZWQgdG8gcGlycSBmb3IgZG9tVSB3aXRoIFg4
Nl9FTVVfVVNFX1BJUlEgZmxhZw0KPj4gd2hlbiBkb20wIGlzIFBWSA0KPj4NCj4+IFNpZ25lZC1v
ZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29tPg0KPj4gU2lnbmVkLW9mZi1i
eTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlh
biBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29tPg0KPj4gUmV2aWV3ZWQtYnk6IFN0ZWZhbm8gU3Rh
YmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4NCj4gDQo+IFlvdSBrZWVwIGNhcnJ5aW5n
IHRoaXMgUi1iLCBkZXNwaXRlIG1ha2luZyBmdW5jdGlvbmFsIGNoYW5nZXMuIFRoaXMgY2FuJ3Qg
YmUNCj4gcXVpdGUgcmlnaHQuDQpXaWxsIHJlbW92ZSBpbiBuZXh0IHZlcnNpb24uDQoNCj4gDQo+
IFdoaWxlIGZ1bmN0aW9uYWxseSBJJ20gbm93IG9rYXkgd2l0aCB0aGUgY2hhbmdlLCBJIHN0aWxs
IGhhdmUgYSBjb2RlIHN0cnVjdHVyZQ0KPiBjb25jZXJuOg0KPiANCj4+IC0tLSBhL3hlbi9hcmNo
L3g4Ni9waHlzZGV2LmMNCj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMNCj4+IEBAIC0z
MjMsNiArMzIzLDEzIEBAIHJldF90IGRvX3BoeXNkZXZfb3AoaW50IGNtZCwgWEVOX0dVRVNUX0hB
TkRMRV9QQVJBTSh2b2lkKSBhcmcpDQo+PiAgICAgICAgICBpZiAoICFkICkNCj4+ICAgICAgICAg
ICAgICBicmVhazsNCj4+ICANCj4+ICsgICAgICAgIC8qIFByZXZlbnQgbWFwcGluZyB3aGVuIHRo
ZSBzdWJqZWN0IGRvbWFpbiBoYXMgbm8gWDg2X0VNVV9VU0VfUElSUSAqLw0KPj4gKyAgICAgICAg
aWYgKCBpc19odm1fZG9tYWluKGQpICYmICFoYXNfcGlycShkKSApDQo+PiArICAgICAgICB7DQo+
PiArICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7DQo+PiArICAgICAgICAgICAgcmV0
dXJuIC1FT1BOT1RTVVBQOw0KPj4gKyAgICAgICAgfQ0KPj4gKw0KPj4gICAgICAgICAgcmV0ID0g
cGh5c2Rldl9tYXBfcGlycShkLCBtYXAudHlwZSwgJm1hcC5pbmRleCwgJm1hcC5waXJxLCAmbXNp
KTsNCj4+ICANCj4+ICAgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOw0KPj4gQEAgLTM0Niw2
ICszNTMsMTMgQEAgcmV0X3QgZG9fcGh5c2Rldl9vcChpbnQgY21kLCBYRU5fR1VFU1RfSEFORExF
X1BBUkFNKHZvaWQpIGFyZykNCj4+ICAgICAgICAgIGlmICggIWQgKQ0KPj4gICAgICAgICAgICAg
IGJyZWFrOw0KPj4gIA0KPj4gKyAgICAgICAgLyogUHJldmVudCB1bm1hcHBpbmcgd2hlbiB0aGUg
c3ViamVjdCBkb21haW4gaGFzIG5vIFg4Nl9FTVVfVVNFX1BJUlEgKi8NCj4+ICsgICAgICAgIGlm
ICggaXNfaHZtX2RvbWFpbihkKSAmJiAhaGFzX3BpcnEoZCkgKQ0KPj4gKyAgICAgICAgew0KPj4g
KyAgICAgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOw0KPj4gKyAgICAgICAgICAgIHJldHVy
biAtRU9QTk9UU1VQUDsNCj4+ICsgICAgICAgIH0NCj4+ICsNCj4+ICAgICAgICAgIHJldCA9IHBo
eXNkZXZfdW5tYXBfcGlycShkLCB1bm1hcC5waXJxKTsNCj4+ICANCj4+ICAgICAgICAgIHJjdV91
bmxvY2tfZG9tYWluKGQpOw0KPiANCj4gSWYgeW91IGRpZCBnbyBsb29rLCB5b3Ugd2lsbCBoYXZl
IG5vdGljZWQgdGhhdCB3ZSB1c2UgInJldHVybiIgaW4gdGhlIG1pZGRsZQ0KPiBvZiB0aGlzIGZ1
bmN0aW9uIG9ubHkgdmVyeSBzcGFyaW5nbHkgKHdoZW4gYWx0ZXJuYXRpdmVzIHdvdWxkIHJlc3Vs
dCBpbiBtb3JlDQo+IGNvbXBsaWNhdGVkIGNvZGUgZWxzZXdoZXJlKS4gSSB0aGluayB5b3Ugd2Fu
dCB0byBhdm9pZCAicmV0dXJuIiBoZXJlLCB0b28sDQo+IGFuZCBwcm9iYWJseSBnbyBldmVuIGZ1
cnRoZXIgYW5kIGF2b2lkIHRoZSBleHRyYSByY3VfdW5sb2NrX2RvbWFpbigpIGFzIHdlbGwuDQo+
IFRoYXQncyBlYXNpbHkgcG9zc2libGUgdG8gYXJyYW5nZSBmb3IgKHRha2luZyB0aGUgbGF0dGVy
IGNhc2UgYXMgZXhhbXBsZSk6DQo+IA0KPiAgICAgICAgIC8qIFByZXZlbnQgdW5tYXBwaW5nIHdo
ZW4gdGhlIHN1YmplY3QgZG9tYWluIGhhcyBubyBYODZfRU1VX1VTRV9QSVJRICovDQo+ICAgICAg
ICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSB8fCBoYXNfcGlycShkKSApDQo+ICAgICAgICAgICAg
IHJldCA9IHBoeXNkZXZfdW5tYXBfcGlycShkLCB1bm1hcC5waXJxKTsNCj4gICAgICAgICBlbHNl
DQo+ICAgICAgICAgICAgIHJldCA9IC1FT1BOT1RTVVBQOw0KPiANCj4gICAgICAgICByY3VfdW5s
b2NrX2RvbWFpbihkKTsNCj4gDQo+IFBlcnNvbmFsbHkgSSB3b3VsZCBldmVuIHVzZSBhIGNvbmRp
dGlvbmFsIG9wZXJhdG9yIGhlcmUsIGJ1dCBJIGJlbGlldmUNCj4gb3RoZXJzIG1pZ2h0IGRpc2xp
a2UgaXRzIHVzZSBpbiBzaXR1YXRpb25zIGxpa2UgdGhpcyBvbmUuDQo+IA0KPiBUaGUgcmUtYXJy
YW5nZW1lbnQgbWFrZSBhIGxpdHRsZSBtb3JlIG5vdGljZWFibGUgdGhvdWdoIHRoYXQgdGhlIGNv
bW1lbnQNCj4gaXNuJ3QgcXVpdGUgcmlnaHQgZWl0aGVyOiBQViBkb21haW5zIG5lY2Vzc2FyaWx5
IGhhdmUgbm8NCj4gWDg2X0VNVV9VU0VfUElSUS4gTWF5YmUgIi4uLiBoYXMgbm8gbm90aW9uIG9m
IHBJUlEiPw0KDQpPciBqdXN0IGxpa2UgYmVsb3c/DQoNCiAgICAgICAgLyoNCiAgICAgICAgICog
UHJldmVudCB1bm1hcHBpbmcgd2hlbiB0aGUgc3ViamVjdCBodm0gZG9tYWluIGhhcyBubw0KICAg
ICAgICAgKiBYODZfRU1VX1VTRV9QSVJRDQogICAgICAgICAqLw0KICAgICAgICBpZiAoIGlzX2h2
bV9kb21haW4oZCkgJiYgIWhhc19waXJxKGQpICkNCiAgICAgICAgICAgIHJldCA9IC1FT1BOT1RT
VVBQOw0KICAgICAgICBlbHNlDQogICAgICAgICAgICByZXQgPSBwaHlzZGV2X3VubWFwX3BpcnEo
ZCwgdW5tYXAucGlycSk7DQoNCj4gDQo+IEphbg0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlh
biBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 03:21:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 03:21:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751921.1160019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOU5C-00041W-Sh; Tue, 02 Jul 2024 03:21:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751921.1160019; Tue, 02 Jul 2024 03: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 1sOU5C-00041P-Ot; Tue, 02 Jul 2024 03:21:30 +0000
Received: by outflank-mailman (input) for mailman id 751921;
 Tue, 02 Jul 2024 03: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=EMB5=OC=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sOU5B-00041J-C1
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 03:21:29 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062c.outbound.protection.outlook.com
 [2a01:111:f400:7e88::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ad084e7-3822-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 05:21:28 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DS7PR12MB5958.namprd12.prod.outlook.com (2603:10b6:8:7d::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.29; Tue, 2 Jul
 2024 03:21:24 +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.7719.029; Tue, 2 Jul 2024
 03:21: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: 2ad084e7-3822-11ef-958a-bbd156597b9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=foOMtWG7ezYCM/Wba2PoltaeyF02CbhZv1numWUyDFFXEeiV8fAeAsRUXg0zlvyofoda938yVL11HTl/HkEzewLYsVN+NJGOaeXzXKo2xMWN/9K+vjeY4XO0aX8EkwveeLRZyy3mzCR6lE97Zz88Xe+y2gl5CLE1Pv+BiwiHVQl5rjYMBZGt8yqA7LfHi6resKYkhUQatho0hp0o52Kux4XKEEBD5ymFHTMz9WnBWH+4+VqV4IJFK02zKPyeK+9pPw1FbKlaEMOx+JNHNWEZFDNl3es4w/9C14AlZ2IfBzHcvO+HWnS440a3blq4CoAZFh1Kz+WIQ1r2GbiX+o2DVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6WqwWOw6C2S4SJz4TZ4gFgeUIe5AJzotDG3ClA/ur5Q=;
 b=eByU7POq5T3rfu50Y8Q5kkq7MbwQ3Qsu11cEoytlRRpNlZ4k0mj0GQpu7swVK9RehxJcI0KHT3lrb3dRr1gpAxLK1Mwnp3CpekNSJS52SEJeMlswVSniUYkaTf9LdXZGpaYVisqOx6h2Xhd9NpcgqZY71rIy7qI99+ZDqMQPRUi0Uf77PrXPhHToJjMlogVnbP0/sVkCskomScSJJQgK2l2FimAshZhHjps/l1fmV3guVio6QjRqkfC89eW9VIdaUAbgKJLlh0V2PfKcbcfZUKqD1E1OOKJNdRFvgTzZ7SJjUZgkColWeIi6YeIGZMNR5SF7TlnLWDqYod/T7aOKyw==
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=6WqwWOw6C2S4SJz4TZ4gFgeUIe5AJzotDG3ClA/ur5Q=;
 b=LlMhY1TTkJ4ddm1PET1kUZWSWkzUHtbKsPNTK4FbXCHTu0z2D8htx3CiCC99E9KDp/u5h5UDeut/vm5v1AjAT2ECzu/ZL+PO/KQrVtBuMWuEXy9GCxLGV0fmZOgs97NopGmkue+VoEz9pEDgx4X28S9ne77P07deWckxDUwElAc=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v11 3/8] x86/pvh: Add PHYSDEVOP_setup_gsi for PVH dom0
Thread-Topic: [XEN PATCH v11 3/8] x86/pvh: Add PHYSDEVOP_setup_gsi for PVH
 dom0
Thread-Index: AQHayunS8nbcvspfBk+lqNcbWKdXtLHhgWOAgAHLUwA=
Date: Tue, 2 Jul 2024 03:21:24 +0000
Message-ID:
 <BL1PR12MB584940FD9212349774E3A445E7DC2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-4-Jiqian.Chen@amd.com>
 <cdb1890c-a66d-4fa9-9ab6-b678e062e085@suse.com>
In-Reply-To: <cdb1890c-a66d-4fa9-9ab6-b678e062e085@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.7719.007)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|DS7PR12MB5958:EE_
x-ms-office365-filtering-correlation-id: c801edf4-dab3-4a3c-9193-08dc9a460d71
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?dDlIREcyWUpnblNpTno4bEFxditiWHI1WHVhRGNMWUlJdFV6RmdQbTNwWElK?=
 =?utf-8?B?MW5IUkppZUVGZXBTWTlkbjNGRnRteThRS1BnWFZkVkd0eHpPN3NUbVA3WEFi?=
 =?utf-8?B?RGo2Nm5aVXRoSDJEZFNYNWQyNGpDZElhWWN2N3l1YjZRcXMvSHY4bitaRkxR?=
 =?utf-8?B?QzFFT1dTaVIwYTc1bEsxWGNOTTlOdExSNngvM0M4ZEdLRnNZUWxGYzJSNHJs?=
 =?utf-8?B?Vm1lb25FWDNMN2Q2VnJEazQySGhOU2JCSG1xeGVqN3M0TnBEdWN4bHlldDNo?=
 =?utf-8?B?YktmWXArQ2VSUzNaelZyWmxDZ3h3c2QwRkNodzFISnZwanZyZzdsU2tLVG55?=
 =?utf-8?B?b3Rxd3VmMVJLN0RVNkJSamJIeCsvSnJPUlMzNVRQK214VHArbE96S1dvZVhn?=
 =?utf-8?B?TE41Z1VHUVFaRkNUY1pnTkViRUJYVVdEcFJLK0lMVVJGbTdEQXZVWDY5ZlRx?=
 =?utf-8?B?NXl6YWxhQ3RPcW1KSHA5N2xpZFVWQWVNT1FLTlphcVBMd1lDVjNMd1UrWk4r?=
 =?utf-8?B?a0RaY3ViUTZwWTlMVU1GVlRaVXhlQzhPZUpMbWpxT3JsbXdmcG5ZRVc2cStN?=
 =?utf-8?B?UnExRHdxMXBHdDAzSG9mQnFXRjJTM294TUxucXVHRmpGMmdNKy9Ec1hZZ0xV?=
 =?utf-8?B?TnFrOFlNN3ZoVmFKSVNPL092aW5LdWI4MW80WTJmb2tlbDhOdnNDS1lRb1Zm?=
 =?utf-8?B?ZkpnQjk2dkgrS0d1eDR1M3VmZ05VSk9BQ0FidjRNa3NDdVoxUnlORGZXcStu?=
 =?utf-8?B?emF5UTM5cENPWVMxYWEyZEJGUUI4UUJ2Vkd5T21maVVUM1RZdlF1anRQekRJ?=
 =?utf-8?B?eFlSblZzVWdwQUQ4UGxqNzhiNjVnZW5HZTRjbmZ4NmZab3JQajhFNWswRHR5?=
 =?utf-8?B?MEJJckQ2WFp3eXRlMUhsa1d5dDFzMWpyK2M3T1lNQnJhSUo4SVhZcE56d1hD?=
 =?utf-8?B?V2MxRmcwMENrTkx0VE5EZ3c4NnI4cXdzNFYxTU1wekoxNHI4SW1mQnZNQTR0?=
 =?utf-8?B?YzN6US80WWpEY0cycll2YkZKaEpzTzZ5Y3V0WEU0eTVBNVlsU1Juem9TZm1s?=
 =?utf-8?B?cHU3S3dLWjJuTTRyQllFcWxxTmg4bWlpeU1zSmNJcmtKRVJTbmgwYzNoZkRB?=
 =?utf-8?B?LzlwQnczVkdkZmNtcitSeTdqTVpEL3lxM3ZaVHVzdGYzOFF3RkVZTEpzcmZH?=
 =?utf-8?B?N1JScFdBZVU5RXlmdncra0NXMis1OVJxZ0xFM1dZeUxPMFlWUjZ6QmxwVFRw?=
 =?utf-8?B?bmVHemhCVVM3eXptQlJGRFFIejU4TEJ6TFF3emRVd0E1Q29Ra3VEWTBqMjdQ?=
 =?utf-8?B?Nk9vYWx1dUkraFZiY1dySnRCa2VORGpUOXRFZ04rUzU0M09JQ2pySXFyUWlz?=
 =?utf-8?B?TW5SSHlrYXF5eFpyVDBEQ0NiT0RwcklqQXFEbW4zMzFoUk1XWENCUzJLUGNl?=
 =?utf-8?B?OXIvSWsvNUFITDd6OUYrVUR1a3FTZXI3WFA4a0M5bHV2aG1aYmMyMHJvYXZ0?=
 =?utf-8?B?Ni9lN1d6dnlaTVlUT1Z3STRTTXM4eTU0clB1S2g3RDhYejE0TkNCTy9Dc1NL?=
 =?utf-8?B?K3A3UEJvQUliZlgwTklKdWo2b2ZRR1BZY0ZiQVdnR1lON2RCNzhMcXRyMU5J?=
 =?utf-8?B?bno2MGQwSHk1OUJ4RW9XdEFGNmdzaE5XZGJXQzVLY1VyWjVWRm5USkJBSTRF?=
 =?utf-8?B?Q1hmTVBYdHdxcWdrNjRNY21qNXhJUURMNnZYbjBWOStOZCs2cFdqSE95YnlM?=
 =?utf-8?B?cmpWWnc2bVFta1d3WUNYUG1WbmdJRlJmckl2M3c3aFgwYzMxSnJYMG1Wc1lk?=
 =?utf-8?B?emVic05hR2lWSmVuWFovSnBCN2NuRWF1ZHBCTXVFR0xEL1l1SWo1NzY4b0VO?=
 =?utf-8?B?Q1hOV0JBZXgyZW9nbmpkU3NTSEtYQkxQTm83NXRRTGx3a0E9PQ==?=
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)(7416014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NE5ZUFVUUi9laHJZWUdtOXcraWRvdVZlYlFKVXg5VkhRU2dJMlV0T3JUTkFt?=
 =?utf-8?B?bDUxNHJnWEhRZGk2ZjU0M1YzK051aEtvNitJelQ3bzM1WWJ1aCtKcnVLSzB5?=
 =?utf-8?B?Mlo4VjRHUVhidm4wN2x5dGJocjJKYytHUTJ4dG5HN0pOY0tsY1lIcjduNTJL?=
 =?utf-8?B?UEFJY0VOVE0ya1FnUUg4Sm1xRElmK3lYRFV1VHA0VlU3YUk1VWpsTHJLaHVx?=
 =?utf-8?B?eTlUZjNMK3lqdzNiTkZkNVRDaVZRQThydm0vSHBFWEJUTlNxQk9VOGZtdXlX?=
 =?utf-8?B?clhUemRHdm5aMjNoaHZod0VxeW8vTWgwMWpCNURzTitTTkxzM2RFdkVtYWJl?=
 =?utf-8?B?WHFQdlJCeE9KMEgvREo0dmxKeVRPaWY5VGpXQWd0ZkI5a3Zma0U1dnA2RllY?=
 =?utf-8?B?cEV1QVR4dE9QOUtrM3VXV2tQNG1scytkc3l4QWZyOGl3M214YTF3SVNxdTdy?=
 =?utf-8?B?a0ZBaFN1RG40c0xNNEhqN1dLeDBUWHVNYnFoQlNodDVuWUZEam5FVi9nYkl3?=
 =?utf-8?B?UnBIQVpTbzRCUFJVK1FGODhnZHJnMkhRcjBtZm5NSEhuaHpDbU50QkM1QWxi?=
 =?utf-8?B?aU5MTUh6NjhCTUNqSkVlM05ORC8wWlpHOHRhRzlKQXYvL3NSMlZOWlU1WXp4?=
 =?utf-8?B?QmZZbjdHUW5KY09uc2ZvVG5ZRVpsRmFPWDJNa3R1T3hNVjROakdrc3FlRSt4?=
 =?utf-8?B?cm0vSkVWb2ZCOTlLdTR3WEJ1T0pDQlZFbWJydlBXRjkxRGZIVW5IWTRjdXFP?=
 =?utf-8?B?MytJNXk4SnRKL3BhbHpTMURWeFhDWUJlaGtxYlhuVU1wR0czZzVZME1qZElB?=
 =?utf-8?B?S1NlNVg0bitzMmo4YXZmQlVaTlRrQWh5ZDVPTk5sTG9Ra0FhVkk2N3hVTHVq?=
 =?utf-8?B?QXp3Z3ZudUswdk9DTDdqTEZBNWZ3N2FJbWM4QmlmS1F5ektxVmNIek1GU212?=
 =?utf-8?B?WUp2NWkvT1JFQytBdXZHOEtWcHZkUDljN1JidXEyT1htQk84TmlQSTJGaFM3?=
 =?utf-8?B?OEpTQXQ3UUptYWJsWFB5Y2NZRmF0K0Vud0M3NjMzNHVpYkJENzJVdzlnVVNB?=
 =?utf-8?B?T0IwbjNXQlRWR2ZjV0dFZFZWRzlSb1NsL0hLRTJVS3F6bmRqc0tKaHd3NHpr?=
 =?utf-8?B?cVQrVURFdVE0eW0yZ0t2MTdGUjBVQWNwbjlSQ2lOSWRTMFNRM3JMRmZXaEVu?=
 =?utf-8?B?UDhQSGdTdFEydkRZaTNJU1NBZGRnZlJzRVF1b254TktDQ2ZxOUc4aXNMZGQ1?=
 =?utf-8?B?dEQvT01MaW1JZjByTHVJRGRKTnhPbkMyM1lGSVlQOXZCbldLZ2JVSjZibU5h?=
 =?utf-8?B?Q2tQVkdTdVA4bU9RcE5meHdybTVNRGZHR01EWDNZdGdZR3NTb29yQjhZbFhV?=
 =?utf-8?B?Znd0MENwNzRyZWs2Sk91ZUljM21RYWJWbVM0eEt5eUR1b0diSWlvNkNzbVV0?=
 =?utf-8?B?U2lad0ZwUmlZSkFxWHlPb0dOSitRZU5tRnhxNUZuYjJObllTTXhhbFppOHBY?=
 =?utf-8?B?cU11WjZZa3MzYmwwMkF0RFNPOVF6WVJOR0NNZWRwNnpFdlFibU9rRnY3V0Yr?=
 =?utf-8?B?WXRpWUZFeUZheTl0YTYwNjFDaHA3VGt1T29Ib3pMbzNlc0xabDVoM1dPWkxs?=
 =?utf-8?B?T3ZUdFVZeHgxaHVkWEZFT2cwbXQ1ZEkva0tsdHNrTytJTERuRWUvdjgxcUdZ?=
 =?utf-8?B?d0o4aTFCUjdUUUZnTnN2cjZiU2JmaU5xMFhXeWd4aUlkT3lhcUVmeG5pUGtl?=
 =?utf-8?B?cUZYUUNCNmNFMU1vY3YxOXZUSnhtWkZEZmRGeTBEWUpRVjFGK05vYjZGei9l?=
 =?utf-8?B?dFJpcENYdGhPQVZSNWozWko2WStrcTNBbjZyaWQ5L2FabmhsazJLQ3ZGMmkv?=
 =?utf-8?B?SU1yQXVFUWoyUTJRTlVDYk43STZiNWIvL3RBZnRDQlhsMmZEWUJJRG5Xb1VV?=
 =?utf-8?B?OXBxL1Y4U1dhVEpVLzRQN1hla0Y1UklZQ3E0OEdja2FHcHEzdjhhTm0vd0U4?=
 =?utf-8?B?OFpOTEY3S0hSeEFsWENOdzZoUmZCOE5kOWFNbFpJRmJKSlc2bzUwT21BanNB?=
 =?utf-8?B?QVJuL3hGZTZOR3dDaXZUdk16QWE1NGRyREVnQzRJZTV3TjZJelRNMFc3S2hq?=
 =?utf-8?Q?7u/Q=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <56E15BAFBBADC34FAC93204C73B6973A@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: c801edf4-dab3-4a3c-9193-08dc9a460d71
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 03:21:24.3482
 (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: uWx6aTTA5AXMU7B4hX+v+brYgAKPglMQtfiPbgVRyF+PTJEputXDlcZNznY57m0fncPcQh/vhO6QsW/fzaOppg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5958

T24gMjAyNC83LzEgMTU6NTIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAzMC4wNi4yMDI0IDE0
OjMzLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IFRoZSBnc2kgb2YgYSBwYXNzdGhyb3VnaCBkZXZp
Y2UgbXVzdCBiZSBjb25maWd1cmVkIGZvciBpdCB0byBiZQ0KPj4gYWJsZSB0byBiZSBtYXBwZWQg
aW50byBhIGh2bSBkb21VLg0KPj4gQnV0IFdoZW4gZG9tMCBpcyBQVkgsIHRoZSBnc2lzIGRvbid0
IGdldCByZWdpc3RlcmVkLCBpdCBjYXVzZXMNCj4gDQo+IEFzIHBlciBiZWxvdywgaXQncyBub3Qg
ImRvbid0IiBidXQgIm1heSBub3QiLiBBcyB0aGUgZGV0YWlscyBkb24ndA0KPiBmb2xsb3cgcmln
aHQgYXdheSwgeW91IG1heSBhbHNvIHdhbnQgdG8gYWRkIHNvbWV0aGluZyBsaWtlICIoc2VlDQo+
IGJlbG93KSIuDQpPSywgd2lsbCBjaGFuZ2UgaW4gbmV4dCB2ZXJzaW9uLg0KDQo+IA0KPj4gdGhl
IGluZm8gb2YgYXBpYywgcGluIGFuZCBpcnEgbm90IGJlIGFkZGVkIGludG8gaXJxXzJfcGluIGxp
c3QsDQo+PiBhbmQgdGhlIGhhbmRsZXIgb2YgaXJxX2Rlc2MgaXMgbm90IHNldCwgdGhlbiB3aGVu
IHBhc3N0aHJvdWdoIGENCj4+IGRldmljZSwgc2V0dGluZyBpb2FwaWMgYWZmaW5pdHkgYW5kIHZl
Y3RvciB3aWxsIGZhaWwuDQo+Pg0KPj4gVG8gZml4IGFib3ZlIHByb2JsZW0sIG9uIExpbnV4IGtl
cm5lbCBzaWRlLCBhIG5ldyBjb2RlIHdpbGwNCj4+IG5lZWQgdG8gY2FsbCBQSFlTREVWT1Bfc2V0
dXBfZ3NpIGZvciBwYXNzdGhyb3VnaCBkZXZpY2VzIHRvDQo+PiByZWdpc3RlciBnc2kgd2hlbiBk
b20wIGlzIFBWSC4NCj4+DQo+PiBTbywgYWRkIFBIWVNERVZPUF9zZXR1cF9nc2kgaW50byBodm1f
cGh5c2Rldl9vcCBmb3IgYWJvdmUNCj4+IHB1cnBvc2UuDQo+Pg0KPj4gQ2xhcmlmeSB0d28gcXVl
c3Rpb25zOg0KPj4gRmlyc3QsIHdoeSB0aGUgZ3NpIG9mIGRldmljZXMgYmVsb25nIHRvIFBWSCBk
b20wIGNhbiB3b3JrPw0KPj4gQmVjYXVzZSB3aGVuIHByb2JlIGEgZHJpdmVyIHRvIGEgbm9ybWFs
IGRldmljZSwgaXQgY2FsbHMob24gbGludXgNCj4+IGtlcm5lbCBzaWRlKSBwY2lfZGV2aWNlX3By
b2JlLT4gcmVxdWVzdF90aHJlYWRlZF9pcnEtPg0KPj4gaXJxX3N0YXJ0dXAtPiBfX3VubWFza19p
b2FwaWMtPiBpb19hcGljX3dyaXRlLCB0aGVuIHRyYXAgaW50byB4ZW4NCj4+IHNpZGUgaHZtZW11
bF9kb19pby0+IGh2bV9pb19pbnRlcmNlcHQtPiBodm1fcHJvY2Vzc19pb19pbnRlcmNlcHQtPg0K
Pj4gdmlvYXBpY193cml0ZV9pbmRpcmVjdC0+IHZpb2FwaWNfaHdkb21fbWFwX2dzaS0+IG1wX3Jl
Z2lzdGVyX2dzaS4NCj4+IFNvIHRoYXQgdGhlIGdzaSBjYW4gYmUgcmVnaXN0ZXJlZC4NCj4+DQo+
PiBTZWNvbmQsIHdoeSB0aGUgZ3NpIG9mIHBhc3N0aHJvdWdoIGRldmljZSBjYW4ndCB3b3JrIHdo
ZW4gZG9tMA0KPj4gaXMgUFZIPw0KPj4gQmVjYXVzZSB3aGVuIGFzc2lnbiBhIGRldmljZSB0byBw
YXNzdGhyb3VnaCwgaXQgdXNlcyBwY2liYWNrIHRvDQo+PiBwcm9iZSB0aGUgZGV2aWNlLCBhbmQg
aXQgY2FsbHMgcGNpc3R1Yl9wcm9iZS0+cGNpc3R1Yl9zZWl6ZS0+DQo+PiBwY2lzdHViX2luaXRf
ZGV2aWNlLT4geGVuX3BjaWJrX3Jlc2V0X2RldmljZS0+DQo+PiB4ZW5fcGNpYmtfY29udHJvbF9p
c3ItPmlzcl9vbiwgYnV0IGlzcl9vbiBpcyBub3Qgc2V0LCBzbyB0aGF0IHRoZQ0KPj4gZmFrZSBJ
UlEgaGFuZGxlciBpcyBub3QgaW5zdGFsbGVkLCB0aGVuIHRoZSBnc2kgaXNuJ3QgdW5tYXNrZWQu
DQo+PiBXaGF0J3MgbW9yZSwgd2UgY2FuIHNlZSBvbiBYZW4gc2lkZSwgdGhlIGZ1bmN0aW9uDQo+
PiB2aW9hcGljX2h3ZG9tX21hcF9nc2ktPiBtcF9yZWdpc3Rlcl9nc2kgd2lsbCBiZSBjYWxsZWQg
b25seSB3aGVuDQo+PiB0aGUgZ3NpIGlzIHVubWFza2VkLCBzbyB0aGF0IHRoZSBnc2kgY2FuJ3Qg
d29yayBmb3IgcGFzc3Rocm91Z2gNCj4+IGRldmljZS4NCj4gDQo+IFdoaWxlIHRoaXMgcHJvdmlk
ZXMgdGhlIHJlcXVlc3RlZCBkZXRhaWwgKHRoYW5rcyksIHBlcnNvbmFsbHkgSSBmaW5kDQo+IHRo
aXMgcHJldHR5IGhhcmQgdG8gZm9sbG93LiBJdCB3b3VsZCBsaWtlbHkgYmUgZWFzaWVyIGlmIGl0
IHdhcw0KPiB3cml0dGVuIHRvIGEgbGFyZ2VyIHBhcnQgaW4gRW5nbGlzaCwgcmF0aGVyIHRoYW4g
aW4gY2FsbCBjaGFpbg0KPiB0ZXJtaW5vbG9neS4gQnV0IEknbSBub3QgZ29pbmcgdG8gaW5zaXN0
LCB1bmxlc3Mgb3RoZXJzIHdvdWxkIGFncmVlDQo+IHdpdGggdGhhdCB2aWV3IG9mIG1pbmUuDQpJ
IHdpbGwgYWRkIHRoZSBsYW5ndWFnZSBkZXNjcmlwdGlvbiBpbiBuZXh0IHZlcnNpb24sIGFuZCBh
bHNvIGtlZXAgdGhlIGNhbGwgc3RhY2sgaWYgbm90IG5lY2Vzc2FyeSB0byByZW1vdmUuDQoNCj4g
DQo+IEphbg0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 03:41:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 03:41:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751927.1160030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOUOp-00075U-Gd; Tue, 02 Jul 2024 03:41:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751927.1160030; Tue, 02 Jul 2024 03: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 1sOUOp-00075N-Ba; Tue, 02 Jul 2024 03:41:47 +0000
Received: by outflank-mailman (input) for mailman id 751927;
 Tue, 02 Jul 2024 03:41:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EMB5=OC=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sOUOo-00075F-2F
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 03:41:46 +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 ffc4008c-3824-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 05:41:44 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CH3PR12MB9079.namprd12.prod.outlook.com (2603:10b6:610:1a1::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.29; Tue, 2 Jul
 2024 03:41:39 +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.7719.029; Tue, 2 Jul 2024
 03:41: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: ffc4008c-3824-11ef-958a-bbd156597b9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=f+rYbNzbR1LQqo9cYFKXd0Voccs6seUdmtvmi84oXj/CiiVqB1i3iQuYZLD96auRSw7sp4CZ09zXiMt8CpUPY25+/Y5/d0Fqyj4+Zuw8TH5bYBYYE7xMjAhy8rVbwR+LCKV6pzNkp3ilKv+nqubNXFXp2FFUemii0IXdz1MFfDSzZksOVEZGQhivrlpXlA8iNVzJ6PnvODVBwlp/E53Wd3nwBkoQ7Ygdj+XXjqm5Iu1k5jsklfUSMaFgFOlKnMgR91j9Nxofc8PX4Mf68zKg80ZQ29veLhlKNYJf1lBBkisX6HXzrG8crJKxQSVXcPAWme3ZEjpN9EpHBSSGpD5PDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jmPT1YJvmPzNg9RBdRHkwJQrmw0IZGZF67Vw17Zr1/8=;
 b=jyp2Ve2rfMCDAtNyjw07s+gEK8L47g6UqizJpF3i9rjcFYFQhh95dIwS8XcydhkzpwpGZzkU6CMXAWjDLKMXYniYTj6JShBy+buwMoibYrqsFVZZRazbkjBNgKfpOdweDva0mvHUsV2uqzXz8J3AEgfdRtEqnKpRnm+zkKYWaavwLOgSfTd4MZANT2aFf7lLB4EGTfPzxOn8ZK5ZFRXWvaQ8krdC+hLlNqYHoRDrw4/YZyYU+FjeLyOCZI55t1upyBjwl/oQ/Bpe6WG9q0DA87fhPEV4cMkDq2zJEuztQrRkeAGU4WbDrHf65FC298aKam4USRaUNhgli5ePE4tnNw==
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=jmPT1YJvmPzNg9RBdRHkwJQrmw0IZGZF67Vw17Zr1/8=;
 b=m4+7CRr4USk+Ya1dtvZTkb7TySFiO5IgXJ8Wd0SRkEa3MPfSCx3JN9rIrFB9PZSVEyCOs3VtobiuntWZUCpb0hM1OkyYePpbeUXYcSDrr/SG+G0BpdyT9p1U44BBapRlQg8fAGMnu41V5UOUFIlKLXJsJDxfL8Bga2J7hKmpGy4=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v11 6/8] tools/libxc: Allow gsi be mapped into a free
 pirq
Thread-Topic: [XEN PATCH v11 6/8] tools/libxc: Allow gsi be mapped into a free
 pirq
Thread-Index: AQHayunZQYBg9v9t9kyJNwcunL3OKbHhgf6AgAHPpIA=
Date: Tue, 2 Jul 2024 03:41:39 +0000
Message-ID:
 <BL1PR12MB5849674C8CA5675AE53829BAE7DC2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-7-Jiqian.Chen@amd.com>
 <64af8165-2456-48f4-b784-ed3e6eb2c456@suse.com>
In-Reply-To: <64af8165-2456-48f4-b784-ed3e6eb2c456@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.7719.007)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|CH3PR12MB9079:EE_
x-ms-office365-filtering-correlation-id: 2044e853-f63f-4a15-552a-08dc9a48e1c5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MitiT01mZkZSeG15Z0tUa3VsMnRlZEtEK2lZZ0YxaFdmd1pHdDZkQjhtSDYv?=
 =?utf-8?B?eUFrRlF1QVRiOWcvUTNFTkpWTWkzb21UV09rOVdpV0NYUXRPUXYxSCtuckxp?=
 =?utf-8?B?am8xWmtadnpxWUh4S0NFcDJNa3dOa29XNmpFSExYZW05Wmltd3hSMFdDTVVr?=
 =?utf-8?B?RE9OZndWWkpjVFF0RW9nejhuZzRvdzZtelZnN3h1K3h5YmppZHN2QjNBVnU2?=
 =?utf-8?B?emxkeXBFRWtYQ3dVWUZsRUhJdjVNSDFJT1o0UFBtQUZPWk82V2VtTDNUYlRz?=
 =?utf-8?B?d0dUNHhKd3JwYTVuOG5Da0RsM0ZWTlphUGxZRmNWQlM1RVBQZEFZQXNUYm0v?=
 =?utf-8?B?eEdlR2IrQnpLZEFaNGlIdVJNZlY3bkh4TFc3NzJqOE92amNrb29SV0NNWWRk?=
 =?utf-8?B?TGErbHpjTnYxaUVDbE0rNzN1aGZVRFdGem9vcGdvUm80bVpFeWFlWUR3dzJq?=
 =?utf-8?B?bHNTazJjakVXUGpvakxaaEYweTJZV2NUQTBhZ1B2OTRtNVM1UEk3RDBLSU9s?=
 =?utf-8?B?NXR0WXk0MjJ3RGxFV0VjbHc4dzdoUzUwSGVvZVhlaE5HL2VMT2ZWRVhTeTZB?=
 =?utf-8?B?WTdpb0lhNE9EVDBPYThzQ3BRYmplVlNFeGdOZWRmS1RtYzBRd3hHc3lkbjg1?=
 =?utf-8?B?bXRGQjJhZERYN1hnWWo1cEhZWlQxdklUS2c3cVlqU0dsMWJqUjY3aG1JVTZT?=
 =?utf-8?B?ZjdTcHUwSFZUMFNpZ2ZPZWlsVmdDUGx6TUxwQ0RoaE1ieWo4WERpQXpBakZL?=
 =?utf-8?B?cjNudGRreTlDSkk5V2NzZFltc0JFbWQ3NmQveHFJSUlubkhrczRpNzREbVRG?=
 =?utf-8?B?Q2FDZE8zQWZuU0Y2NC81MzMwNE5pYTc3dXpPR3JacVV3Z2dYdWw5ZnRRYkQx?=
 =?utf-8?B?aGFPbEthUVdIS0dCNkhqMEY0YUlBZDVsK3F4Q096YnB6ZmJzaUpSWXRXQk5L?=
 =?utf-8?B?c25OaDhoYWljcFhVSGpMVk5mUlo1TWFzZzV5RUkrc0xCYytMY1M0OTZIT0FW?=
 =?utf-8?B?amZlOXBRQ0FuKzZYSHl0R2o3YlU3ODZHSDFlK2FOQy9sRzZlQWZ6c3lrR3ha?=
 =?utf-8?B?NEJ5U0Q4TXlSYmtFd3l0eC9xRzlqbG83Smt3YktYQ2xKZXk4OWcrUEgvK1ZS?=
 =?utf-8?B?WVNrcTdrak1wYmdUdUFUR2E4SzRINXpkV1BlbklxZ3BneWtON1Y2d3JteTB2?=
 =?utf-8?B?enpGb1pSeUpMWGY4cWM1cmR4ZldYZ25vRWVCUTNuZ29lbm52TVZ6bmdrLzRK?=
 =?utf-8?B?L2dUREtDVG41alAwam9MVkpZckhVbExvMHBtN0hScG5kdXJ2VUZVRWdiVXAv?=
 =?utf-8?B?dDdMaTlUS0tJamN2NjlVR3Z2d1F0bkprQWljSVRudzA4aVVhbnk3eVdVUENK?=
 =?utf-8?B?MW9pU21rQUh6RXh5SU5Da3hVVEYzRWIwaU1IUlVKL3BNUmVTRGNFeHR6N21T?=
 =?utf-8?B?R1dYTmgyK1p2ckQyUWIyTWNBQm9ZNEJseFFpTVgva0pQSHVxb2dab0VLT3l2?=
 =?utf-8?B?Qy83SkQ3SVhxNU1acGh6UWI4SlJIb3FuVTNMVTc3djNaaWg5eXRhZ3Z3OHVF?=
 =?utf-8?B?dmx4WnlxdkNoVU1xM2VtZjFJUTdnZ04yQ0txQng0RTlGeUVUVmRLbHB4enhv?=
 =?utf-8?B?c2Fra2gyWmlmSWtIZTV3YnQ4dHVsQnhZRGNCbmxldHRmZFVrQ1RDL0pXdmFm?=
 =?utf-8?B?bUxuQzlxWHB2dFZRbGxteVJLUTVzUHNwL2xLdStwTlUzTGdnRUg1ZmFNc0kz?=
 =?utf-8?B?dTZQVldVQ3VOS1d4OEpOOU8zWkxKVk1PMVNZakpOY0hxdSttbzBWU2dQU3lY?=
 =?utf-8?B?d3BXaFA2RGZIQjBEcURzS3dJNFlKT0NZUTc1TFNNZGY3RUNHU3J1YzZ1a1VS?=
 =?utf-8?B?U3ptV0ZlUFMvNExWR0grNnpqMkNZc1ZDVHBvYjRwT0Rpdmc9PQ==?=
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)(7416014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?LzQyT25rZXRjWTgvZWNTOUtma3ljL3dFSm92ZXJIVEFPZlBLZ003bnZEMXpy?=
 =?utf-8?B?NTI5UTBZYXViSExvaExQQTl1OTE1bWM0RFRtbWp5enF4dHhib3dvSXRha2Vk?=
 =?utf-8?B?QUt6Nlc2VmZsbDhvbVh3dGRaRG04Zmp3VldTejBlSE1lOUcxT2YzYUQrWk1X?=
 =?utf-8?B?a2tHZmJUV0haMU1QRVlkaDV0TmRsOE5VRVg2dzNDU2ZRTWZHNkxSczZKeU44?=
 =?utf-8?B?aVN5WkJmMkhidFY2MWlzdTluclBpY0tDUWNBUW9JeHEyL1hLT2hnRnZ3U2wr?=
 =?utf-8?B?MmFKbnNMaVRiZ1BEdXFwNlRDVVp5ME1lKyt4VkgxazVQTm9UR1RERFN0QXZN?=
 =?utf-8?B?a2pSd0UvRWdKVFozSnlKMjg0WldRSGFOZFJwL1RMVmtBWDNIcEwvVlhEOVVu?=
 =?utf-8?B?UUNGS0E4REZLK0ExdVJxUHpqWHZKckNYN0JJUWtseForajhMeS94cGpCd3Ex?=
 =?utf-8?B?dGpHZWljTm5rNHpxbUQraVVLc0JXdGkyMEhzUTF5TUtIbkYrZHRkTlpvQTln?=
 =?utf-8?B?ZHhMYjFGam5LZ2tzRmNQQXdMcDdOTUdwZkQ3MVBFMTQ5RDdIcG5TT2cwVXJF?=
 =?utf-8?B?Qzd5SFhPUTlYNmFWa3liLzRUYmVlWUFHaEgxMGdsQWlpeXI2T2JlbVNRMit5?=
 =?utf-8?B?NW9zNjlqV3VqWDFIWGRkeHZUTjNpaWNjRXEwUUZucUdFa3p6bDc3SzNySmk5?=
 =?utf-8?B?cHJKb3djZERqWVIzNjEvSDY2UElTTDRYSFVzM1FQaDlOZi9xWnRQbTNIVEp2?=
 =?utf-8?B?UFNLNHcyd2VSSnhNWWRXYlZTeFdJem9rcTVyWDNjMFhJem5GdVIwaWFoaFdx?=
 =?utf-8?B?TVROd2xuMUxta2R3VXJJZkpNTU13R0pIOGVzVzduZFJZbk5tRkRLeEhwcTNB?=
 =?utf-8?B?MmhqVDBVRVNkVCtrdGpQL1JXOWMya3pPY0lwRUE1OHRqdGRCVG10WUw5R250?=
 =?utf-8?B?WG5ybU1DNEFCNVhvaDdpdWg5d3hlakRuWGJKMTNXNFZHdzhiNDRWQTBCU054?=
 =?utf-8?B?MjYxZFhuTTJKTE4xbW44ZHRwTk9YYjh5VmNXY0FOd1NrdHl5am91SlcraElo?=
 =?utf-8?B?eFJRL0RPUGNLZUp0R1ZvakFkeXlRdkhpTlBFNk4vclowL2lWcGt0d3ZMWU9K?=
 =?utf-8?B?cTJGNjR5TkNDSSsrc2ZMSmFQQ1JEMWFOUFNCa1FlOXFFVy9ZY0xTd25Bc1Uz?=
 =?utf-8?B?UWxvbVBwUDg2UWdhSC9uQTk3THV2QXA0ZnU4TXV3N1loU2NYd1NobWE4eWJF?=
 =?utf-8?B?cTZPNHJoa1JzcTMvOTE3NGZrbXBDelhudVhiWkdMK29ld1lhVVdlS1BXeng3?=
 =?utf-8?B?WlIya1preld5QmM2U3Q4OUQ4MUFBTXc1Yml0NnUrT1pxRWRKK2VwU0U4cThy?=
 =?utf-8?B?bjYwcmJWVmp3bFFEVDc4L05SVVBMMFVKaEJoQWhBOEE4cEhNV1NDK28xeDBD?=
 =?utf-8?B?bnlWRmpXVk5KSEV3QnZEZFd1SXdheFlaVzlIT25MQ1JlMzVidk4yK1V3MFBJ?=
 =?utf-8?B?RkpQaHo2Sm5xblNlOEhLcmhQNk1DY0t1SnJPQnVtaWhZcTNHM09xdkFuTi81?=
 =?utf-8?B?R1plNjJsMDZRczV5RGthWDdjK3RuaGVFcmNCNnZtY1R5ZHcrcWwzTlo0R2lF?=
 =?utf-8?B?QnV1b3J6VGs5UWMwWEkxTEcrZHVPOGlJT28yY3JXYko0WWJ4aXNTSWdVbEs1?=
 =?utf-8?B?clk3cXdueFBacklZbERjZStiMy9paEZETTZCUnRsZ2R6OVpRc3pTVGRZL2tw?=
 =?utf-8?B?TEdRckJ1b3dYbWVzeklrR2QxMlo1UDkvWDdDc20vOHllZUVCOGhER09GcVVv?=
 =?utf-8?B?bFZUNE5JS081RW5nZDhJaFVocTJlNzZyQytnSWtoS3dqNDRRNFBmSzBkY00w?=
 =?utf-8?B?eVZCVktXUGVQWTYxNHdvc2tLMGFuK0hqblJROTRXWVMzeldQYS9EdkFjdmlI?=
 =?utf-8?B?YU5qNmRMZytkNllHaWlxcDVTaGdNYjBSR3RKMklScjhNSTA0ZGFkaCtPeUF6?=
 =?utf-8?B?UzkzbmNZTjJPREV3Y2x6dG9aNFk2TzIwNDZnOFYwL25ETlVGbXBvNXFxWEgr?=
 =?utf-8?B?M3BWeUM4ZkNvRkcvcnMxbkNJQzlpT3JFNnVxL0ZxM2ZWN3pzTHdlU2xXL3lF?=
 =?utf-8?Q?begQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <25D22CFC0677B648A39F091923A2B780@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: 2044e853-f63f-4a15-552a-08dc9a48e1c5
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 03:41:39.5759
 (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: fpC0ffbjPqA/ZadVEC/nFKucfvk4Rz3pNB1KrRiKwMG/08NJgWkwL8W6CS968+e/xGqnI5T/Fe7CojEzLCIIYg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9079

T24gMjAyNC83LzEgMTU6NTQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAzMC4wNi4yMDI0IDE0
OjMzLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IEh5cGVyY2FsbCBQSFlTREVWT1BfbWFwX3BpcnEg
c3VwcG9ydCB0byBtYXAgYSBnc2kgaW50byBhIHNwZWNpZmljDQo+PiBwaXJxIG9yIGEgZnJlZSBw
aXJxLCBpdCBkZXBlbmRzIG9uIHRoZSBwYXJhbWV0ZXIgcGlycSg+MCBvciA8MCkuDQo+PiBCdXQg
aW4gY3VycmVudCB4Y19waHlzZGV2X21hcF9waXJxLCBpdCBzZXQgKnBpcnE9aW5kZXggd2hlbg0K
Pj4gcGFyYW1ldGVyIHBpcnEgaXMgPDAsIGl0IGNhdXNlcyB0byBmb3JjZSBhbGwgY2FzZXMgdG8g
YmUgbWFwcGVkDQo+PiB0byBhIHNwZWNpZmljIHBpcnEuIFRoYXQgaGFzIHNvbWUgcHJvYmxlbXMs
IG9uZSBpcyBjYWxsZXIgY2FuJ3QNCj4+IGdldCBhIGZyZWUgcGlycSB2YWx1ZSwgYW5vdGhlciBp
cyB0aGF0IG9uY2UgdGhlIHBlY2lmaWMgcGlycSB3YXMNCj4+IGFscmVhZHkgbWFwcGVkIHRvIG90
aGVyIGdzaSwgdGhlbiBpdCB3aWxsIGZhaWwuDQo+Pg0KPj4gU28sIGNoYW5nZSB4Y19waHlzZGV2
X21hcF9waXJxIHRvIGFsbG93IHRvIHBhc3MgbmVnYXRpdmUgcGFyYW1ldGVyDQo+PiBpbiBhbmQg
dGhlbiBnZXQgYSBmcmVlIHBpcnEuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogSmlxaWFuIENoZW4g
PEppcWlhbi5DaGVuQGFtZC5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBIdWFuZyBSdWkgPHJheS5o
dWFuZ0BhbWQuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVu
QGFtZC5jb20+DQo+PiAtLS0NCj4+ICB0b29scy9saWJzL2N0cmwveGNfcGh5c2Rldi5jIHwgMiAr
LQ0KPj4gIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQ0KPj4N
Cj4+IGRpZmYgLS1naXQgYS90b29scy9saWJzL2N0cmwveGNfcGh5c2Rldi5jIGIvdG9vbHMvbGli
cy9jdHJsL3hjX3BoeXNkZXYuYw0KPj4gaW5kZXggNDYwYThlNzc5Y2U4Li5lOWZjZDc1NWZhNjIg
MTAwNjQ0DQo+PiAtLS0gYS90b29scy9saWJzL2N0cmwveGNfcGh5c2Rldi5jDQo+PiArKysgYi90
b29scy9saWJzL2N0cmwveGNfcGh5c2Rldi5jDQo+PiBAQCAtNTAsNyArNTAsNyBAQCBpbnQgeGNf
cGh5c2Rldl9tYXBfcGlycSh4Y19pbnRlcmZhY2UgKnhjaCwNCj4+ICAgICAgbWFwLmRvbWlkID0g
ZG9taWQ7DQo+PiAgICAgIG1hcC50eXBlID0gTUFQX1BJUlFfVFlQRV9HU0k7DQo+PiAgICAgIG1h
cC5pbmRleCA9IGluZGV4Ow0KPj4gLSAgICBtYXAucGlycSA9ICpwaXJxIDwgMCA/IGluZGV4IDog
KnBpcnE7DQo+PiArICAgIG1hcC5waXJxID0gKnBpcnE7DQo+PiAgDQo+PiAgICAgIHJjID0gZG9f
cGh5c2Rldl9vcCh4Y2gsIFBIWVNERVZPUF9tYXBfcGlycSwgJm1hcCwgc2l6ZW9mKG1hcCkpOw0K
Pj4gIA0KPiANCj4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGV4aXN0aW5nIGNhbGxl
cnMsIHdpdGhvdXQgYW55IGtpbmQgb2YNCj4gY2xhcmlmaWNhdGlvbiB3aGV0aGVyIHRoaXMgY2hh
bmdlZCBiZWhhdmlvciBpcyBhY3R1YWxseSBva2F5IGZvciB0aGVtLg0KTWFrZSBzZW5zZS4NClRo
ZXJlIGFyZSB0aHJlZSBjYWxsZXJzIHBjaV9hZGRfZG1fZG9uZSwgbGlieGxfX2FyY2hfZG9tYWlu
X21hcF9pcnEgYW5kIHB5eGNfcGh5c2Rldl9tYXBfcGlycSwNCkkga25vdyBob3cgdG8gY2xhcmlm
eSB0aGUgZmlyc3QgdHdvLCBidXQgdGhlIGxhc3Qgb25lLCBJIGhhdmUgbm8gaWRlYS4NCg0KSGkg
TWFyZWssDQpXaWxsIHRoaXMgcGF0Y2ggYnJlYWsgdGhlIGV4aXN0aW5nIGJlaGF2aW9yIG9mIHB5
eGNfcGh5c2Rldl9tYXBfcGlycSwgYW5kIHdoeT8NCg0KPiANCj4gSmFuDQoNCi0tIA0KQmVzdCBy
ZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 03:47:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 03:47:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751933.1160038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOUUG-0007g3-0z; Tue, 02 Jul 2024 03:47:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751933.1160038; Tue, 02 Jul 2024 03:47:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOUUF-0007fw-UX; Tue, 02 Jul 2024 03:47:23 +0000
Received: by outflank-mailman (input) for mailman id 751933;
 Tue, 02 Jul 2024 03: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=EMB5=OC=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sOUUF-0007fq-4s
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 03:47:23 +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 c871b4d4-3825-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 05:47:21 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH7PR12MB9221.namprd12.prod.outlook.com (2603:10b6:510:2e8::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.29; Tue, 2 Jul
 2024 03:47: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%3]) with mapi id 15.20.7719.029; Tue, 2 Jul 2024
 03:47: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: c871b4d4-3825-11ef-a59d-41c015c667e1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ey4Jx+jcZNoOU9xvd1ke9hOC4XPMfe9A2bX+EM3ypo8Axh9Qbs4BK3TLPU0dmFhH+Y4HggaLtN14WRxJ9RzdXfVxwH7LHK3L673sS32r2vclWOJvjS0bzGHX3/UYf8Q2rNUeoTePSaf3UWQedyy9igtzhbATLrTcswKarnW3PZ10wXUvQtRadGXlUrqLF8ZqtqaYC64/iLNWfBbGLM22y9vDbQ/l0CYGMMgCt957eXm8d5Y/nNf0jkJdMI8O3BeB64KPqkl7DaY80TZr/ReGOJxZ2RiAO6K13olwxmie5b4Sq6ZhOVOnBtZmpOpmqS6AHB0ve8uVm00UN0nOtJSorQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IHdu5GcmkebxRQZ0aYi0oYSvbp/gjzeigQkEObYZF6Y=;
 b=FkqFC4tXphduiNLaLxR1BMFx4jCvvXbj/EUFUC9l+7CydJkthRFti2tE/G4FPdJuXgTwrxyZNeAG/LPFncmXtT7UhozqIvI8omg2MQETdxgAZ4xLyNuozXpIThH5pvOoEHCDOHwcCzD/ndoJqf6El7dXzK398bFkbrfizvgzzD+OnsYUV8TBi/CMf88quVpg52zy0Cl71rG4+7bug2C5YElEJsnZHFe7WSFpav1Iz3tcd7Pn9jiwOB1fW4nw3xOFu+gLGhtVDCG7L5qk6zhs5kL5mEoRdzAO+2KiKi/m0WgiQqCF3T7TU1aLYI97xKva7U4AD8k5BOhnNUX0L8tKzg==
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=IHdu5GcmkebxRQZ0aYi0oYSvbp/gjzeigQkEObYZF6Y=;
 b=g2Yqo1NFdnuiRVfPpqTHSTYYNjLA/TbTNrvwm9hRLoRjt2WqXfcH0ry5W8LukHFvRL1ZRgPvsz68W+sByCt3Ajw6Dffs/DA2yDHvA03a+/suh1kZ4nUpXCYJ3Oc5QaZW1ha83gwtxWVwuU6OC+ULVuQ0YkGvxjrPMkX1ZOXbeaU=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Anthony PERARD <anthony@xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap
	<gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v11 7/8] tools: Add new function to get gsi from
 dev
Thread-Topic: [RFC XEN PATCH v11 7/8] tools: Add new function to get gsi from
 dev
Thread-Index: AQHayundYHEz4Kn0sEizSQnui4wvzbHhe8EAgAHYIoA=
Date: Tue, 2 Jul 2024 03:47:16 +0000
Message-ID:
 <BL1PR12MB5849626196B8DE37E0BA4F20E7DC2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-8-Jiqian.Chen@amd.com>
 <ff827def-743c-4312-88fb-dbd1b87bb85d@suse.com>
In-Reply-To: <ff827def-743c-4312-88fb-dbd1b87bb85d@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.7719.007)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|PH7PR12MB9221:EE_
x-ms-office365-filtering-correlation-id: c646c635-14a7-4cb6-8937-08dc9a49aadd
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?Qk0wbnFtdjZEcExsZ3hDREhPWG11a2xRMHJQVStKRkI5Q3N0cmV5S3ZlZDRp?=
 =?utf-8?B?eHpxQ1JvWjVURW9oSEdnbjloaTU1Tjh0cXlSbDZkK09JbC9DbVAzS0F6cUlV?=
 =?utf-8?B?UzRMYkJPS0dwQ1hndGVNZUJYYklqY2tzMkl1eS9uakVKSERidlFYTUR4Um1r?=
 =?utf-8?B?dEpNaVA1dERHUWQvNEVWSkpHM1pFKzZkb0EvY3FzWFBHakpVcTVPdXRGMmpY?=
 =?utf-8?B?MU9ZTmhmVkEvMmgxTjhkRHpJL2djT2Z3REJkMnJ6MmdRWFhFYmFuOG5mMWRF?=
 =?utf-8?B?K0lsRTV5UmZSREt0NVZHU3FrK1VUSUtQcDk2TTBvK3JaVUoydCt1MlduSXFJ?=
 =?utf-8?B?UytaaUVZbnlqNTIzUU4yYkltSW5iTTVYdzhPSE9SUkgySGcrV3A5b2lYaWZL?=
 =?utf-8?B?d1l3QXhKaEpDL2laTXN4eFl1cXRCS2hyalRxWGZjR2VyOTR5WG52MDI4UHJG?=
 =?utf-8?B?cWh6azNWcWQrNEN3VWFUa202ZmxHUHNxVFo0VzA1ME90T3pJMW9IVExXN1dQ?=
 =?utf-8?B?dWRxMDYvOTJITGhocDR5TU1QM1ZrZG9OL3NEZmo2UkFReG9LS0pFb1NENkdL?=
 =?utf-8?B?bkxvU0hSaFROSnFzTGgvQ05EWFpIRzIrRlpQd013RlRzWTdSVWFEYSs2cFJn?=
 =?utf-8?B?a0xsN0V0SlZrNThpUmIyR0lLd0dqM0VaeVRHaVErenlyeHRXQ2p6VmlTKy9I?=
 =?utf-8?B?MmNwajRwNEF4NUwyYkczL3FBZ1AyRG9wUjkrYzVUTExpRnBOZEl4Ym14RlZ3?=
 =?utf-8?B?MElpRjcxRjExVzF1RXJuNStwbEtQWmZwZ014cUwwREt5eFE4OXBiUTVEa0Qy?=
 =?utf-8?B?ak50V2daRVF1WGR2M2d2VmdOanBCRGFvMm5pL05reC9QaWFwaDF0ZlBOdytG?=
 =?utf-8?B?U29obTI4QTRQMUlKYmpKUU0zVzZUb0VjNEVNNmZnazBEYy9MQ05wSUpMa1Qw?=
 =?utf-8?B?cTRubDZRSVVoTkR2WFlhN3Yrc1dxWTNYVURFOERjSkNadVdFS1dSVDIwZDFC?=
 =?utf-8?B?V3JaVDFWQ1kxZTFNQ2RpOUwvUm1GNjVFamRKanA0Q0s1NzZIY2duU3Juampw?=
 =?utf-8?B?L2drOW1Wbnh1OHdMRnVZZVA2eHZCU2paWnJmUGt6Z2VlVFFGRndsOENjdXVP?=
 =?utf-8?B?aDBOeVJBSmk4RVVHbzdheDVmL3A4NUJUTzhLTHJsNVZzZ2ZPQmVXUUQ3RVF3?=
 =?utf-8?B?SXBvenpPM2R4WnZ0UDZ1SytKYXNQV2hOaDlYbThvbDI5SmNtTVNnVHNOaEFH?=
 =?utf-8?B?SGI1OW5HUkdEMExJNW9hbHNsUy9OeG1KZGpTNmpwR3laTVJVazhjMGd0cERK?=
 =?utf-8?B?alJKRzFsTnhlTmJuLzZkb1V6WTVLM2lwVGV2UFBFZjkrSG11NVNza0JmQlll?=
 =?utf-8?B?cTJiOG5aQmJUK2RNc1JBT3RrK1ZVMndUS0hSc1RwYTBEYS9GNjYwaldsUnVN?=
 =?utf-8?B?ekZMZVN5d0EyLzd4ZkdGUE8zM3BueXBXV2xUMWNEbVU5MGdmQ0d0THV0RTFa?=
 =?utf-8?B?WWJ5Q0o4RnZpcUFiMjV6Q0ZiWjZxdGtxNC9iSmlibVlCMGw4Z1RaTWZwZVdv?=
 =?utf-8?B?eWhBSnZjNzhZNkZVWml6Rnp3ZlRMSDgyYzlGSkQxVSs0enJ4WkN2bjhYbnYz?=
 =?utf-8?B?ZEhkYnEvUU01SnRpaTdEc1piZU0rK0p3YWlYeXJFbm94TlgvN0NiNlROK3Va?=
 =?utf-8?B?U05FM0J5ZVE2ZTRKNHN4L0tydFVyUm55akZMZm1XV1ZKOGpReEx6cTY2cE4y?=
 =?utf-8?B?NWErdEIxeTBaUnBBdmNCcE9vNzIvbEZVNFJETUxhdnl4eHcrNGhXQ1VudUVr?=
 =?utf-8?B?NE9kWFNJdjZ0NmY3UElCa0RaOWovOGtnb1o5RXdRcXZVMEo4Q05kb21VQ0Zz?=
 =?utf-8?B?NUcyYU8xVlVYYTl1L3NjSm01TUgrRG5veEc4RWZvZjJPUHc9PQ==?=
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)(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?NXBmTEVuMjhqdE9lVGU5REt4cmYyaHVTbWhnendQbTlGMDVDT1k2VDN4bkdU?=
 =?utf-8?B?ZlVQaFZtMkszQmxpNXNpNitFTmNTbGFrM1BPUlZaWVRqUFNTV3Q0ZUFkMFIr?=
 =?utf-8?B?VnRMWVdtcWNUYW9tTjdDTkgzSEV0ZUgzclo3N0xXSFBqcW8rYVRRMmpCZ3VN?=
 =?utf-8?B?N2dONUVrcmNWUmlWMlJYQi9kcUlPc002UHpwTHRMYlBpMjNZbnNRYk91R3NQ?=
 =?utf-8?B?WDNSdGhUbkJGLzFPK2laNXplWkJJSzlKN3YyTDlSKytWL1pEa2xjYTdLUjdn?=
 =?utf-8?B?U3ZJNjRjOUY4K1ZydHc0UjUvcTAzZVJtcWFmM0UwMzA5WXpLTTFBZSt5VUhG?=
 =?utf-8?B?YlZ0MkM3WHN0UU0rVFVvNnNaWUluMmU5VExRaG1FKzg3bEtWYm5sVWRIcTZv?=
 =?utf-8?B?eUlJWlB0cmQrMUk2MDcvVWxxUmh5Q1JzbmRneUltcGtYd2EvWXVxd0VPbloz?=
 =?utf-8?B?QlQzOTVKRmtGb0ZGNkE0bHAvR3c2cEhWV1VhbEcvQnRlblcxWk1GbWhmU1RT?=
 =?utf-8?B?R084Z1ZETWNNam5lSERPMnp1V29lNVJmcUh6MGhGQmFTYjVTb3kvTkwyTklU?=
 =?utf-8?B?Q2c0cFJPbGJCVzBvQVphQ1RKc2FKaDljak4xVHp6NjJOdk5sWlk5UVRpZEVD?=
 =?utf-8?B?S2x1MS8xVUczdDFQU2hYTVpNUmsrU3dobUxYZWoxOWE1WFJQOEhHWEVjdk45?=
 =?utf-8?B?dGhWdjY4dThtVUtWWnJmT2ZPcGtveGpNQ2QySVRYM3JZVkV1c2VFVC9pOTRB?=
 =?utf-8?B?em93c3ExUHhBUVJ2R01pNlZJRUx5b3lSeWpjQm9jRnVQYmdUSWNvWi9iZ0NZ?=
 =?utf-8?B?aTR1OWJwaUV2Rm5PUWhHUkFSZFFiYUQwNy9KRnBLR3ZyREExcW9WQjUzdFZt?=
 =?utf-8?B?V25OTlhvWjR0a2ROZkcvRXh6MmxZYXR4RmJPT08rbW1VN05saGIrUjBnZURw?=
 =?utf-8?B?UzR4R29VWk5GaG94RHFVaFV6NllFaHFFK1VONVIrVjl3ZS9oZjJPR3IzU2cv?=
 =?utf-8?B?MlRlbDhzYWVZSVJiZTBkaXVFTGtYeDhXRWZRUmE5T0lBWjJ3TVludFlpWVg5?=
 =?utf-8?B?MTNJN1RaK005aVlCUXNNd1ZVQkJVZ2krdkowc2Q2TjdNK2crV3dOUlhQTEgv?=
 =?utf-8?B?MEJJT2NlenhTTXNYUDhwVW11dkJHeUdjanZMeEU3UDlFdUZ4VEVCVHNhcTk3?=
 =?utf-8?B?UVZWSTd3eGw2SkZmNG5MRFB4ejZVcEErQWwwTjB4NitlRCswQlZySTJLS0Ex?=
 =?utf-8?B?VnJSYzF0WmZDSHlWbElsY3lncmw5SEEzeHhJK3EvT1NLMk5YS2RDYUd1QXAx?=
 =?utf-8?B?YWNtMEd0MnVIekFKM1NEQjhWdEZPUGFmYWRUQkVZNmJIQ2pmTzgxYzRsM3Ri?=
 =?utf-8?B?bGhCMGdjZlN1ZnZGQUhEdlFDeXFFNDRFNmxObnI2OUJjeEczelJFUWxyVHhE?=
 =?utf-8?B?UnI4RUVaTWZOWTlWbEcySXh1RFZBcklGUjF4M2oySHlsSHBKZHZVaGhwZllM?=
 =?utf-8?B?WjZpTmxuQzJPbFIxcjViUTNjVzN4UHB2SThrUHJvNFRlY0gxMjAwbDI1T1pp?=
 =?utf-8?B?c3RWTnhpSHBrdTgreld3TnhCRG1sZXNVWkppRWNtSW1qYzFyVWpVa00zRUkv?=
 =?utf-8?B?L3VoMTBSb29jL0FsYklTMFpHYlMvdDRmVlBBWDVRYkQ0MXdIbG1lUVA4WWht?=
 =?utf-8?B?UjMxNjRYTitRUDRhY3hSa09pU3pkbjdqRzZma2hGNUN2ZVJjTFA1Znhha3J2?=
 =?utf-8?B?UCtUUFd0THpSdmtGc012VEtzNnBkL1J5WUpaY0ZSa1Nrdy9hS3JEaDl6b1hB?=
 =?utf-8?B?Rk54Q1ZlVnMvaGphZDNvQ0lUVmwydGltMWRuSkVSSnNUd3JsT0svVFR2UDRk?=
 =?utf-8?B?Y1FkcEt3MnZuelR2TnRobHZVSFZramQ2NVVLR2hOWE0xbVQxa250U2c4T0pK?=
 =?utf-8?B?STRoYklaOWh6RmdKbXVwakF3L0YyREZJN0xPV1lEejBaUjdKYlNUamNvMTdV?=
 =?utf-8?B?bTUvTWdVa1NjUFRXQ2pWcmVEa3BwbWNFSFVoNkRka1l0MUVoZWJUdC94V3Bj?=
 =?utf-8?B?VHBYQnhJci9xcVRwMmcrc0lPaktUemwzam1YUWtFVWI4dVAxendub2l0VWdt?=
 =?utf-8?Q?7nic=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A71C65E03140FC4C9FE17358703DEEEC@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: c646c635-14a7-4cb6-8937-08dc9a49aadd
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 03:47:16.9211
 (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: 3fhKOCX9OnA1ibyJxW2CbZWGHapW22vELcVayvYAyTOAe1M2OwA0LS6yNv+y/+0uPmC0l9mHNQP9795AdJMWJg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9221

T24gMjAyNC83LzEgMTU6MzIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAzMC4wNi4yMDI0IDE0
OjMzLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IC0tLSBhL3Rvb2xzL2xpYnMvY3RybC94Y19waHlz
ZGV2LmMNCj4+ICsrKyBiL3Rvb2xzL2xpYnMvY3RybC94Y19waHlzZGV2LmMNCj4+IEBAIC0xMTEs
MyArMTExLDM4IEBAIGludCB4Y19waHlzZGV2X3VubWFwX3BpcnEoeGNfaW50ZXJmYWNlICp4Y2gs
DQo+PiAgICAgIHJldHVybiByYzsNCj4+ICB9DQo+PiAgDQo+PiAraW50IHhjX3BoeXNkZXZfZ3Np
X2Zyb21fcGNpZGV2KHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBzYmRmKQ0KPj4gK3sNCj4+
ICsgICAgaW50IHJjID0gLTE7DQo+PiArDQo+PiArI2lmIGRlZmluZWQoX19saW51eF9fKQ0KPj4g
KyAgICBpbnQgZmQ7DQo+PiArICAgIHByaXZjbWRfZ3NpX2Zyb21fcGNpZGV2X3QgZGV2X2dzaSA9
IHsNCj4+ICsgICAgICAgIC5zYmRmID0gc2JkZiwNCj4+ICsgICAgICAgIC5nc2kgPSAwLA0KPj4g
KyAgICB9Ow0KPj4gKw0KPj4gKyAgICBmZCA9IG9wZW4oIi9kZXYveGVuL3ByaXZjbWQiLCBPX1JE
V1IpOw0KPj4gKw0KPj4gKyAgICBpZiAoZmQgPCAwICYmIChlcnJubyA9PSBFTk9FTlQgfHwgZXJy
bm8gPT0gRU5YSU8gfHwgZXJybm8gPT0gRU5PREVWKSkgew0KPj4gKyAgICAgICAgLyogRmFsbGJh
Y2sgdG8gL3Byb2MveGVuL3ByaXZjbWQgKi8NCj4+ICsgICAgICAgIGZkID0gb3BlbigiL3Byb2Mv
eGVuL3ByaXZjbWQiLCBPX1JEV1IpOw0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIGlmIChmZCA8
IDApIHsNCj4+ICsgICAgICAgIFBFUlJPUigiQ291bGQgbm90IG9idGFpbiBoYW5kbGUgb24gcHJp
dmlsZWdlZCBjb21tYW5kIGludGVyZmFjZSIpOw0KPj4gKyAgICAgICAgcmV0dXJuIHJjOw0KPj4g
KyAgICB9DQo+PiArDQo+PiArICAgIHJjID0gaW9jdGwoZmQsIElPQ1RMX1BSSVZDTURfR1NJX0ZS
T01fUENJREVWLCAmZGV2X2dzaSk7DQo+PiArICAgIGNsb3NlKGZkKTsNCj4+ICsNCj4+ICsgICAg
aWYgKHJjKSB7DQo+PiArICAgICAgICBQRVJST1IoIkZhaWxlZCB0byBnZXQgZ3NpIGZyb20gZGV2
Iik7DQo+PiArICAgIH0gZWxzZSB7DQo+PiArICAgICAgICByYyA9IGRldl9nc2kuZ3NpOw0KPj4g
KyAgICB9DQo+PiArI2VuZGlmDQo+PiArDQo+PiArICAgIHJldHVybiByYzsNCj4+ICt9DQo+IA0K
PiBJIHJlYWxpemUgQW50aG9ueSBoYWQgYXNrZWQgdG8gbW92ZSB0aGlzIG91dCBvZiBsaWJ4ZW5j
YWxsLCB5ZXQgZG9pbmcgaXQgbGlrZQ0KPiB0aGlzICh3aXRob3V0IHJlYWxseSBhYnN0cmFjdGlu
ZyBhd2F5IHRoZSBPUyBzcGVjaWZpY3MpIGRvZXNuJ3QgbG9vayBxdWl0ZQ0KPiByaWdodCBlaXRo
ZXIuIEluIHBhcnRpY3VsYXIgdGhlIG9wZW5pbmcgb2YgL2Rldi94ZW4vcHJpdmNtZCBsb29rcyBx
dWVzdGlvbmFibGUNCj4gdG8gbm93IGhhdmUgeWV0IGFub3RoZXIgaW5zdGFuY2UgaW4geWV0IGFu
b3RoZXIgbGlicmFyeS4gQ291bGRuJ3Qgd2Ugc3BsaXQNCj4gb3NkZXBfeGVuY2FsbF9vcGVuKCks
IG1ha2luZyBhdmFpbGFibGUgaXRzIGZvcm1lciBoYWxmIGZvciB1c2UgaGVyZSBhbmQgaW4gdGhl
DQo+IG90aGVyIHR3byBsaWJyYXJpZXM/IA0KSGkgQW50aG9ueSwgd2hhdCBhYm91dCB5b3VyIG9w
aW5pb24/DQoNCj4gT2YgY291cnNlIHRoYXQnbGwgc3RpbGwgbGVhdmUgdGhlIGlvY3RsKCkgaW52
b2NhdGlvbiwgd2hpY2ggbmVjZXNzYXJpbHkgaXMgT1Mtc3BlY2lmaWMsIHRvby4NCj4gDQo+IEph
bg0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 05:31:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 05:31:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751911.1160049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOW76-000505-9Q; Tue, 02 Jul 2024 05:31:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751911.1160049; Tue, 02 Jul 2024 05:31:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOW76-0004zy-6U; Tue, 02 Jul 2024 05:31:36 +0000
Received: by outflank-mailman (input) for mailman id 751911;
 Tue, 02 Jul 2024 03:11: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=5wZ1=OC=iscas.ac.cn=nichen@srs-se1.protection.inumbo.net>)
 id 1sOTvX-0002ES-IS
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 03:11:31 +0000
Received: from cstnet.cn (smtp81.cstnet.cn [159.226.251.81])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c170c4a2-3820-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 05:11:25 +0200 (CEST)
Received: from localhost (unknown [124.16.138.129])
 by APP-03 (Coremail) with SMTP id rQCowAAXHZnIb4NmPq6XEw--.36219S2;
 Tue, 02 Jul 2024 11:11:04 +0800 (CST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c170c4a2-3820-11ef-a59d-41c015c667e1
From: Chen Ni <nichen@iscas.ac.cn>
To: jgross@suse.com,
	boris.ostrovsky@oracle.com,
	tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	jbeulich@suse.com
Cc: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	Chen Ni <nichen@iscas.ac.cn>
Subject: [PATCH] x86/xen: Convert comma to semicolon
Date: Tue,  2 Jul 2024 11:10:10 +0800
Message-Id: <20240702031010.1411875-1-nichen@iscas.ac.cn>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:rQCowAAXHZnIb4NmPq6XEw--.36219S2
X-Coremail-Antispam: 1UD129KBjvJXoW7Jw4UZF1rGF4UKF1UuF18Grg_yoW8JrWUpF
	12kwnxCrykWrWqg3ZxG3WYgr13Cwn5KryrAFZ7Wa42y3ZxXryIkrW8Ka1Utr1UJa13ZF45
	Ja9Yq3WrK3y3tw7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUvE14x267AKxVW8JVW5JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26ryj6F1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4j
	6r4UJwA2z4x0Y4vEx4A2jsIE14v26r4UJVWxJr1l84ACjcxK6I8E87Iv6xkF7I0E14v26F
	4UJVW0owAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv
	7VC0I7IYx2IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r
	1j6r4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02
	628vn2kIc2xKxwCY02Avz4vE14v_Gr4l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7
	v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF
	1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIx
	AIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI
	42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWI
	evJa73UjIFyTuYvjfU8gAwDUUUU
X-Originating-IP: [124.16.138.129]
X-CM-SenderInfo: xqlfxv3q6l2u1dvotugofq/

Replace a comma between expression statements by a semicolon.

Fixes: 8310b77b48c5 ("Xen/gnttab: handle p2m update errors on a per-slot basis")
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
---
 arch/x86/xen/p2m.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index 99918beccd80..6bcbdf3b7999 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -730,7 +730,7 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
 		 * immediate unmapping.
 		 */
 		map_ops[i].status = GNTST_general_error;
-		unmap[0].host_addr = map_ops[i].host_addr,
+		unmap[0].host_addr = map_ops[i].host_addr;
 		unmap[0].handle = map_ops[i].handle;
 		map_ops[i].handle = INVALID_GRANT_HANDLE;
 		if (map_ops[i].flags & GNTMAP_device_map)
@@ -740,7 +740,7 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
 
 		if (kmap_ops) {
 			kmap_ops[i].status = GNTST_general_error;
-			unmap[1].host_addr = kmap_ops[i].host_addr,
+			unmap[1].host_addr = kmap_ops[i].host_addr;
 			unmap[1].handle = kmap_ops[i].handle;
 			kmap_ops[i].handle = INVALID_GRANT_HANDLE;
 			if (kmap_ops[i].flags & GNTMAP_device_map)
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 05:32:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 05:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751947.1160058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOW8C-0005WG-IQ; Tue, 02 Jul 2024 05:32:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751947.1160058; Tue, 02 Jul 2024 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 1sOW8C-0005W9-Ft; Tue, 02 Jul 2024 05:32:44 +0000
Received: by outflank-mailman (input) for mailman id 751947;
 Tue, 02 Jul 2024 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=H732=OC=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sOW8B-0005Vu-3S
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 05:32:43 +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 7fc503f3-3834-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 07:32:40 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-57cc1c00ba6so1460880a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jul 2024 22:32:40 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58614d503b1sm5172349a12.67.2024.07.01.22.32.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 01 Jul 2024 22: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: 7fc503f3-3834-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719898360; x=1720503160; 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=7RQmNimGTwbyU0lMcgMTmjU9W8YZSy3um1R4GV8sDAQ=;
        b=VPaZUyFg+Gf2HNOmxE/PnUrncRQiPxdYQnCJG+Aa/yij1fEW+ByxWNGsTZ34XuZygg
         h8OdXz3AqzZozd3M+o2t7gNfH2XwaVMUGn+A/Z2OI0MKPhTLqfodGFvnPhejc82YC0Ig
         VuIXgi4LxAk6T9kzkKK97cV2ne81dODdSPHc1KdP/940Tj0J5/VmZPccmOI96/TonUIa
         TyowrezKO1nM+aN57Ek27Gstklggt8B2PvIEdnmoDhsCEIppI0gDopfk2ma/nVkXhzIt
         2XISVCtyNYTgJQFfwpvefV6fo/LOCkDbA0I2JTX3DUR3WNqB+EVUH+16Vmlt32rZS/hV
         /jkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719898360; x=1720503160;
        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=7RQmNimGTwbyU0lMcgMTmjU9W8YZSy3um1R4GV8sDAQ=;
        b=eYoByYjArYIBWo37BKY8EgDemAq5qYEAhlqBSAsH7SCtSENpUvTVrA6KZnb5tPh9iI
         /DXQc+YA8EzDJ/fpWrjHcx6FE6OYEphIQU2IItcynjR3NhbjmL03chgK1Ioih0hY1LS0
         CQOf9YVk45wc/ACpFNApH6INR0PgpwfnZOx531wBec2CT8mwjm4hrr5BCpk+9oncTJjU
         +6dLTqxtnD43k+jRRIeze+ndESBluphRze+f7UGCWBrhM2VWcq2L0AGEbz8bmqXu3bSd
         lD5I8ab3Dtqx9yWhdFRrbzkEW+ceR09FHTcfykCm8V50cb+hoyZ6mFkY29FCv5dLslw/
         2mig==
X-Gm-Message-State: AOJu0YwQ4hj6Ogne5VJuJEY1vmbsq3qCOMzc9vrlhgTnwHShedQaDV9O
	4pFT1mA33Pm2i+0Pec6GmlTrqsyIA2QAZ+G0vBwnvBSJ9wBCN1LGs3jmsvGic2E=
X-Google-Smtp-Source: AGHT+IG7s/PANsQ9QBr6GFjCz2u7TSS1xPzmScR7zZMqRAiIi0fE1lWFC3LJwuAC5VdzYjnW+FNGsA==
X-Received: by 2002:a05:6402:84f:b0:57c:f091:f607 with SMTP id 4fb4d7f45d1cf-587a0b0379emr5364857a12.29.1719898360020;
        Mon, 01 Jul 2024 22:32:40 -0700 (PDT)
Message-ID: <001b72ce-8ffe-49bd-9f63-f10eebe61745@suse.com>
Date: Tue, 2 Jul 2024 07:32:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Convert comma to semicolon
To: Chen Ni <nichen@iscas.ac.cn>, boris.ostrovsky@oracle.com,
 tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, jbeulich@suse.com
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20240702031010.1411875-1-nichen@iscas.ac.cn>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240702031010.1411875-1-nichen@iscas.ac.cn>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 02.07.24 05:10, Chen Ni wrote:
> Replace a comma between expression statements by a semicolon.
> 
> Fixes: 8310b77b48c5 ("Xen/gnttab: handle p2m update errors on a per-slot basis")
> Signed-off-by: Chen Ni <nichen@iscas.ac.cn>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 05:40:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 05:40:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751952.1160069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOWFS-0007Cf-9G; Tue, 02 Jul 2024 05:40:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751952.1160069; Tue, 02 Jul 2024 05:40: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 1sOWFS-0007CY-67; Tue, 02 Jul 2024 05:40:14 +0000
Received: by outflank-mailman (input) for mailman id 751952;
 Tue, 02 Jul 2024 05:40:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOWFQ-0007CO-FK; Tue, 02 Jul 2024 05:40:12 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOWFQ-0007IG-CI; Tue, 02 Jul 2024 05:40:12 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOWFP-0001YI-Di; Tue, 02 Jul 2024 05:40:11 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOWFP-00045g-Cu; Tue, 02 Jul 2024 05:40: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=tswDrqEy4OrcZZWFsngdPEVuiYdzMeIxR7Z4h7IMb5U=; b=BonkEMqhK6GAArKuw5TBMT5ejK
	xr85UPW9xw9ic/a4MOIvnD7DaS2oWym48nqwVuYAipGvb502DB/VcFyJxj7y0vW4bLSRTwb4Gt/dx
	id0br44Ren/w0kKdYqo3R6tIxW0zX9p+Bep5WVB22o+E0NCNujda62WUwU1TeVnxdauI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186620-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186620: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=9903efbddba0d14133b5a3c75088b558d2e34ac3
X-Osstest-Versions-That:
    linux=22a40d14b572deb80c0648557f4bd502d7e83826
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Jul 2024 05:40:11 +0000

flight 186620 linux-linus real [real]
flight 186623 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186620/
http://logs.test-lab.xenproject.org/osstest/logs/186623/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-raw       8 xen-boot            fail pass in 186623-retest
 test-armhf-armhf-xl-credit1   8 xen-boot            fail pass in 186623-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt   16 saverestore-support-check fail blocked in 186615
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 186623 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 186623 never pass
 test-armhf-armhf-xl-raw     14 migrate-support-check fail in 186623 never pass
 test-armhf-armhf-xl-raw 15 saverestore-support-check fail in 186623 never pass
 test-armhf-armhf-xl-arndale   8 xen-boot                     fail  like 186615
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186615
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186615
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186615
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186615
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186615
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                9903efbddba0d14133b5a3c75088b558d2e34ac3
baseline version:
 linux                22a40d14b572deb80c0648557f4bd502d7e83826

Last test of basis   186615  2024-07-01 05:56:24 Z    0 days
Testing same since   186620  2024-07-01 17:14:02 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Bee <knaerzche@gmail.com>
  Andy Yan <andyshrk@163.com>
  Arnd Bergmann <arnd@arndb.de>
  Christian Brauner <brauner@kernel.org>
  Conor Dooley <conor.dooley@microchip.com>
  David Howells <dhowells@redhat.com>
  Diederik de Haas <didi.debian@cknow.org>
  Dragan Simic <dsimic@manjaro.org>
  Drew Fustini <drew@pdp7.com>
  FUKAUMI Naoki <naoki@radxa.com>
  Geert Uytterhoeven <geert+renesas@glider.be>
  Heiko Stuebner <heiko.stuebner@cherry.de>
  Heiko Stuebner <heiko@sntech.de>
  Hsin-Te Yuan <yuanhsinte@chromium.org>
  James Clark <james.clark@arm.com>
  Jan Kara <jack@suse.cz>
  Jean Delvare <jdelvare@suse.de>
  Jeff Johnson <quic_jjohnson@quicinc.com>
  Jens Wiklander <jens.wiklander@linaro.org>
  Jisheng Zhang <jszhang@kernel.org>
  Johan Jonker <jbx6244@gmail.com>
  Jonas Karlman <jonas@kwiboo.se>
  Linus Torvalds <torvalds@linux-foundation.org>
  Mark Brown <broonie@kernel.org>
  Mark-PK Tsai <mark-pk.tsai@mediatek.com>
  ming-jen.chang <ming-jen.chang@mediatek.com>
  Miquel Raynal <miquel.raynal@bootlin.com>
  NeilBrown <neilb@suse.de>
  Philipp Zabel <p.zabel@pengutronix.de>
  Sascha Hauer <s.hauer@pengutronix.de>
  Shengyu Qu <wiagn233@outlook.com>
  Val Packett <val@packett.cool>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   22a40d14b572..9903efbddba0  9903efbddba0d14133b5a3c75088b558d2e34ac3 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 05:41:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 05:41:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751958.1160078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOWGC-0007gv-Hi; Tue, 02 Jul 2024 05:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751958.1160078; Tue, 02 Jul 2024 05: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 1sOWGC-0007go-FB; Tue, 02 Jul 2024 05:41:00 +0000
Received: by outflank-mailman (input) for mailman id 751958;
 Tue, 02 Jul 2024 05:40:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOWGB-0007gZ-A0; Tue, 02 Jul 2024 05:40:59 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOWGB-0007Im-9G; Tue, 02 Jul 2024 05:40:59 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOWGB-0001as-1O; Tue, 02 Jul 2024 05:40:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOWGB-0005cS-0t; Tue, 02 Jul 2024 05:40: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=GxFI3OycxPXbVjq2uGL2fdk3mwFnA3xFKfM48aSjDEE=; b=OOSByJvnQ8dZjpOTHEIpkYdK/7
	WSvd8Hq/iS7ypQHfK5LgMk0GFWxhPqltsanoeHazLAx0ql5bkeEkE4JMqDWDprCH4j7iS68d9ds5A
	sakawr5xHSm8vC9WJwMTESnsZf6FHxHFzt6BKXhwhgjFsqQF65KXckGhJWHrWslHpku4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186624-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186624: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=e939ecf6c19f932535d073e383d016e8bf2e8ee7
X-Osstest-Versions-That:
    ovmf=8bf27965dbb94ecccc453c60de3270acf238ea3d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Jul 2024 05:40:59 +0000

flight 186624 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186624/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 e939ecf6c19f932535d073e383d016e8bf2e8ee7
baseline version:
 ovmf                 8bf27965dbb94ecccc453c60de3270acf238ea3d

Last test of basis   186616  2024-07-01 09:44:55 Z    0 days
Testing same since   186624  2024-07-02 03:41:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dun Tan <dun.tan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   8bf27965db..e939ecf6c1  e939ecf6c19f932535d073e383d016e8bf2e8ee7 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 07:27:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 07:27:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751977.1160096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOXvD-0002UA-56; Tue, 02 Jul 2024 07:27:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751977.1160096; Tue, 02 Jul 2024 07:27: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 1sOXvD-0002U3-1b; Tue, 02 Jul 2024 07:27:27 +0000
Received: by outflank-mailman (input) for mailman id 751977;
 Tue, 02 Jul 2024 07:27:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOXvC-0002Tt-5M; Tue, 02 Jul 2024 07:27:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOXvC-0000vP-3R; Tue, 02 Jul 2024 07:27:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOXvB-0004OE-Jl; Tue, 02 Jul 2024 07:27:25 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOXvB-0006oR-JJ; Tue, 02 Jul 2024 07:27: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=aUq+PjH+z+HByPHo/iRJ+5aukTFbN4wodaIID9PrqR4=; b=rQTCV6CVjwxZr+kC83HgnrxmB3
	1GuzF7OznjrGy8+lsZd1hYiRES3I/YVPe5Vbmrhjrtqxs3ZR5cjZWjDqmR6mjwXw68Q2BYaHcbmyV
	qnrVXGt8bUkzJxUWRCGU2xM6RQqyuYWFePqXAxrxvSajU4ZoTAs2Xi70/quVqetf6nms=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186622-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186622: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b
X-Osstest-Versions-That:
    xen=08f9b1dd9c9435d4cca006e43917245710b39be3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Jul 2024 07:27:25 +0000

flight 186622 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186622/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186613
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186613
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186613
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186613
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186613
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186613
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b
baseline version:
 xen                  08f9b1dd9c9435d4cca006e43917245710b39be3

Last test of basis   186613  2024-07-01 01:53:59 Z    1 days
Testing same since   186622  2024-07-01 21:06:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   08f9b1dd9c..4a73eb4c20  4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b -> master


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 07:28:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 07:28:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751982.1160106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOXvp-0002xh-DQ; Tue, 02 Jul 2024 07:28:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751982.1160106; Tue, 02 Jul 2024 07:28: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 1sOXvp-0002xa-Ab; Tue, 02 Jul 2024 07:28:05 +0000
Received: by outflank-mailman (input) for mailman id 751982;
 Tue, 02 Jul 2024 07:28: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=H732=OC=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sOXvn-0002vY-OH
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 07:28:03 +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 9d28bd44-3844-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 09:28:02 +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 E61171FB83;
 Tue,  2 Jul 2024 07:28:00 +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 B50BE1395F;
 Tue,  2 Jul 2024 07:28:00 +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 esipKgCsg2ZvBQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 02 Jul 2024 07:28: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: 9d28bd44-3844-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1719905281; 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=hA5FYs6uTTD03pPn48xWjU6hYjk2IClLmlPghIPpL5U=;
	b=hI0C8ZRWsB8slvaIb5REjYiBrJYuludQ4KepotgKrbOmggtNFcLvF+xI4bLzUwzQbwiD9c
	/Pv0v9yH4Bryzqp83FezN5Np8vw3RmjEc1M309rXJ/S17AnGibf7sqxkn+lRiB2ej3iE1G
	5KOqI/3KCM+5QREdUXIz6F6sonvyHWk=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1719905280; 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=hA5FYs6uTTD03pPn48xWjU6hYjk2IClLmlPghIPpL5U=;
	b=rnyaq8LB/n4CML4kngkqJf5tTLW8E4Ife8KnVfAKQUFC6cy0DmkdEy3Pew913QJg9bVyel
	MKEbDX6yWAygaYmW273Ukf9FGATI8MyuaW3Fxv/gt9Mf8k3gEkS6HE9b4B+Z6isusZn5XN
	UMYz6dkMNQRopFObkpJn5pTBZYvZiaI=
Message-ID: <e7618b21-f643-49b3-abb8-58fa572ea196@suse.com>
Date: Tue, 2 Jul 2024 09:27:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: add missing MODULE_DESCRIPTION() macros
To: Jeff Johnson <quic_jjohnson@quicinc.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 kernel-janitors@vger.kernel.org
References: <20240611-md-drivers-xen-v1-1-1eb677364ca6@quicinc.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: <20240611-md-drivers-xen-v1-1-1eb677364ca6@quicinc.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------63veP1APteBUT2Im0gLaOHJV"
X-Spam-Score: -5.06
X-Spam-Level: 
X-Spam-Flag: NO
X-Spamd-Result: default: False [-5.06 / 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];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	NEURAL_HAM_SHORT(-0.07)[-0.327];
	XM_UA_NO_VERSION(0.01)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	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)[quicinc.com:email,suse.com:email];
	RCPT_COUNT_FIVE(0.00)[6];
	HAS_ATTACHMENT(0.00)[]

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------63veP1APteBUT2Im0gLaOHJV
Content-Type: multipart/mixed; boundary="------------a4DeivGtDdCJCm6zerdwOElD";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jeff Johnson <quic_jjohnson@quicinc.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 kernel-janitors@vger.kernel.org
Message-ID: <e7618b21-f643-49b3-abb8-58fa572ea196@suse.com>
Subject: Re: [PATCH] xen: add missing MODULE_DESCRIPTION() macros
References: <20240611-md-drivers-xen-v1-1-1eb677364ca6@quicinc.com>
In-Reply-To: <20240611-md-drivers-xen-v1-1-1eb677364ca6@quicinc.com>

--------------a4DeivGtDdCJCm6zerdwOElD
Content-Type: multipart/mixed; boundary="------------2GOBh3z5sj0j9mRn23rlFUbc"

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

T24gMTIuMDYuMjQgMDE6NTQsIEplZmYgSm9obnNvbiB3cm90ZToNCj4gV2l0aCBBUkNIPXg4
NiwgbWFrZSBhbGxtb2Rjb25maWcgJiYgbWFrZSBXPTEgQz0xIHJlcG9ydHM6DQo+IFdBUk5J
Tkc6IG1vZHBvc3Q6IG1pc3NpbmcgTU9EVUxFX0RFU0NSSVBUSU9OKCkgaW4gZHJpdmVycy94
ZW4veGVuLXBjaWJhY2sveGVuLXBjaWJhY2subw0KPiBXQVJOSU5HOiBtb2Rwb3N0OiBtaXNz
aW5nIE1PRFVMRV9ERVNDUklQVElPTigpIGluIGRyaXZlcnMveGVuL3hlbi1ldnRjaG4ubw0K
PiBXQVJOSU5HOiBtb2Rwb3N0OiBtaXNzaW5nIE1PRFVMRV9ERVNDUklQVElPTigpIGluIGRy
aXZlcnMveGVuL3hlbi1wcml2Y21kLm8NCj4gDQo+IEFkZCB0aGUgbWlzc2luZyBpbnZvY2F0
aW9ucyBvZiB0aGUgTU9EVUxFX0RFU0NSSVBUSU9OKCkgbWFjcm8uDQo+IA0KPiBTaWduZWQt
b2ZmLWJ5OiBKZWZmIEpvaG5zb24gPHF1aWNfampvaG5zb25AcXVpY2luYy5jb20+DQoNClJl
dmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0KSnVlcmdl
bg0KDQo=
--------------2GOBh3z5sj0j9mRn23rlFUbc
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-----

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
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------2GOBh3z5sj0j9mRn23rlFUbc--

--------------a4DeivGtDdCJCm6zerdwOElD--

--------------63veP1APteBUT2Im0gLaOHJV
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/Ey8FAmaDrAAFAwAAAAAACgkQsN6d1ii/Ey/E
Ngf+IrT17FhHuW4v/qk0FHOd+5EY+BdQlsq/7IQwyewyIOlv5iQ5Skqp84ggJAFbHkM/m2VU+E4O
dde+MCTQIrmHkMHjIQw/q571KAK9iW/pPwX/EJfVehR6Aqb+obOIRQ09w3cVN7sKVZeXN95Ud9R1
DAsY7Qs4lLEgxJ9me50TMxTvuKDs2+oW1AKZAt+Vl6KXaFaylcLr6S23Q4ihnIBYsBSlBo0rg6Yq
8DhaXwE3mLIj6Q3snEopHhRcFsBVPpQMdhlyCSdJ1pn7Z4a0n9PJpC8/ZZnxTVFTebiK9itTs7ZA
/rzYjup0h1/IH35+SX1P8/JcGMGM26cPUzwMum1xOQ==
=oBbf
-----END PGP SIGNATURE-----

--------------63veP1APteBUT2Im0gLaOHJV--


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 07:32:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 07:32:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751992.1160117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOY01-0004bA-0l; Tue, 02 Jul 2024 07:32:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751992.1160117; Tue, 02 Jul 2024 07: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 1sOY00-0004b3-Tz; Tue, 02 Jul 2024 07:32:24 +0000
Received: by outflank-mailman (input) for mailman id 751992;
 Tue, 02 Jul 2024 07:32:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=COXF=OC=bombadil.srs.infradead.org=BATV+a6dac4ac77a4219ad85f+7618+infradead.org+hch@srs-se1.protection.inumbo.net>)
 id 1sOXzx-0004ax-Qy
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 07:32:22 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 356ea55a-3845-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 09:32:19 +0200 (CEST)
Received: from hch by bombadil.infradead.org with local (Exim 4.97.1 #2 (Red
 Hat Linux)) id 1sOXzk-00000005s56-0D5a;
 Tue, 02 Jul 2024 07:32: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: 356ea55a-3845-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=bombadil.20210309; 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=yRJduJ4b13YGEVnBaImf8MBMoj+rPcyZfPfJ5uybrn0=; b=nxBkkv5533e0ibSUtWu/FWqca9
	T02UNeMXerA742jTnmxcJDpprQYJhN+AB5mjSyF1tkFtaC9NWv/DI0JPbLwQgi37wPeed5cA37c0e
	+2f4q+qCCkqKwjebfWNgYqdh3KcmHS4SeimB2eXIojre3wqBiKfJ74iCTIY0nzAi/62xdvvQQ9QVV
	ggumCBVJg78P9RdScYdX17RSGD42SxwMGXnk/F0Te2sI20BEGRBsqQOtoGA/KEqDDyMxAk9wtOs1O
	z/1WMLlWsZ6latPxKW85ISPYOrT1dPDdYNH/mzAspCJntQyhFPayqTd56frrg1OjYGXYjfO03yN/a
	E+Zh4hIw==;
Date: Tue, 2 Jul 2024 00:32:07 -0700
From: Christoph Hellwig <hch@infradead.org>
To: Oliver Sang <oliver.sang@intel.com>
Cc: Christoph Hellwig <hch@infradead.org>, oe-lkp@lists.linux.dev,
	lkp@intel.com, Jens Axboe <axboe@kernel.dk>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Damien Le Moal <dlemoal@kernel.org>, Hannes Reinecke <hare@suse.de>,
	linux-block@vger.kernel.org, linux-um@lists.infradead.org,
	drbd-dev@lists.linbit.com, nbd@other.debian.org,
	linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux.dev,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	dm-devel@lists.linux.dev, linux-raid@vger.kernel.org,
	linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org,
	nvdimm@lists.linux.dev, linux-nvme@lists.infradead.org,
	linux-scsi@vger.kernel.org, ying.huang@intel.com,
	feng.tang@intel.com, fengwei.yin@intel.com
Subject: Re: [axboe-block:for-next] [block]  1122c0c1cc:  aim7.jobs-per-min
 22.6% improvement
Message-ID: <ZoOs9wdR1yBPB-7J@infradead.org>
References: <202406250948.e0044f1d-oliver.sang@intel.com>
 <ZnqGf49cvy6W-xWf@infradead.org>
 <Znt4qTr/NdeIPyNp@xsang-OptiPlex-9020>
 <ZnuNhkH26nZi8fz6@infradead.org>
 <ZnzP+nUrk8+9bANK@xsang-OptiPlex-9020>
 <ZnzwbYSaIlT0SIEy@infradead.org>
 <ZoJnO09LBj6kApY7@xsang-OptiPlex-9020>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ZoJnO09LBj6kApY7@xsang-OptiPlex-9020>
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch@infradead.org> by bombadil.infradead.org. See http://www.infradead.org/rpr.html

On Mon, Jul 01, 2024 at 04:22:19PM +0800, Oliver Sang wrote:
> from below, it seems the patchset doesn't introduce any performance improvement
> but a regression now. is this expected?

Not having the improvement at least alleviate my concerns about data
integrity.  I'm still curious where it comes from as it isn't exactly
expected.



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 07:33:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 07:33:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.751998.1160135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOY0o-0005AZ-Dm; Tue, 02 Jul 2024 07:33:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 751998.1160135; Tue, 02 Jul 2024 07:33: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 1sOY0o-0005AS-9Y; Tue, 02 Jul 2024 07:33:14 +0000
Received: by outflank-mailman (input) for mailman id 751998;
 Tue, 02 Jul 2024 07:33: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=H732=OC=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sOY0n-0005A2-1u
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 07:33:13 +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 556e5040-3845-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 09:33:11 +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 287B4218A1;
 Tue,  2 Jul 2024 07:33:10 +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 D8D2F13A9A;
 Tue,  2 Jul 2024 07:33:09 +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 mr84MzWtg2YRBwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 02 Jul 2024 07:33: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: 556e5040-3845-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1719905590; 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=tY7K+pH0pf2NBmAQQMF6GpFNtBpEOZ1lI3zfjxyydbY=;
	b=GQIniZCeymw+WUzw18CGj3faY6fL805Tq+vW1QGDYkqtoRt9NbCPorL1dC2jOEEsnNDltl
	hL4NpKfN3unoBPgYExkEfA8gxzfuUu53/ohRWHZnjwgA9h/zBO47Mll4bWFW9C+BWhgLjK
	D0XyuDToUFWM+ol0rFh+m9m/ux3gh1Y=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1719905590; 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=tY7K+pH0pf2NBmAQQMF6GpFNtBpEOZ1lI3zfjxyydbY=;
	b=GQIniZCeymw+WUzw18CGj3faY6fL805Tq+vW1QGDYkqtoRt9NbCPorL1dC2jOEEsnNDltl
	hL4NpKfN3unoBPgYExkEfA8gxzfuUu53/ohRWHZnjwgA9h/zBO47Mll4bWFW9C+BWhgLjK
	D0XyuDToUFWM+ol0rFh+m9m/ux3gh1Y=
Message-ID: <a51b4a89-96da-41be-9f11-bcca4d9ff74c@suse.com>
Date: Tue, 2 Jul 2024 09:33:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen-blkfront: fix sector_size propagation to the block
 layer
To: Christoph Hellwig <hch@lst.de>, roger.pau@citrix.com
Cc: marmarek@invisiblethingslab.com, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, Rusty Bird <rustybird@net-c.com>
References: <20240625055238.7934-1-hch@lst.de>
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: <20240625055238.7934-1-hch@lst.de>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------UDW51T09nJAuxcwdHWNDeLWU"
X-Spamd-Result: default: False [-6.12 / 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];
	NEURAL_HAM_SHORT(-0.13)[-0.673];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	XM_UA_NO_VERSION(0.01)[];
	RCVD_TLS_ALL(0.00)[];
	ARC_NA(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[net-c.com];
	RCPT_COUNT_FIVE(0.00)[6];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_CC(0.00)[invisiblethingslab.com,lists.xenproject.org,vger.kernel.org,net-c.com];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	FROM_EQ_ENVFROM(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	HAS_ATTACHMENT(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.12
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------UDW51T09nJAuxcwdHWNDeLWU
Content-Type: multipart/mixed; boundary="------------0XXh5l6PLNt6f9rcvWr7GCnV";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Christoph Hellwig <hch@lst.de>, roger.pau@citrix.com
Cc: marmarek@invisiblethingslab.com, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, Rusty Bird <rustybird@net-c.com>
Message-ID: <a51b4a89-96da-41be-9f11-bcca4d9ff74c@suse.com>
Subject: Re: [PATCH] xen-blkfront: fix sector_size propagation to the block
 layer
References: <20240625055238.7934-1-hch@lst.de>
In-Reply-To: <20240625055238.7934-1-hch@lst.de>

--------------0XXh5l6PLNt6f9rcvWr7GCnV
Content-Type: multipart/mixed; boundary="------------xrRqeSbyQJm5rOQa3lHqHUMy"

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

T24gMjUuMDYuMjQgMDc6NTIsIENocmlzdG9waCBIZWxsd2lnIHdyb3RlOg0KPiBFbnN1cmUg
dGhhdCBpbmZvLT5zZWN0b3Jfc2l6ZSBhbmQgaW5mby0+cGh5c2ljYWxfc2VjdG9yX3NpemUg
YXJlIHNldA0KPiBiZWZvcmUgdGhlIGNhbGwgdG8gYmxraWZfc2V0X3F1ZXVlX2xpbWl0cyBi
eSBkb2luZyBhd2F5IHdpdGggdGhlDQo+IGxvY2FsIHZhcmlhYmxlcyBhbmQgYXJndW1lbnRz
IHRoYXQgcHJvcGFnYXRlIHRoZW0uDQo+IA0KPiBUaGFua3MgdG8gTWFyZWsgTWFyY3p5a293
c2tpLUfDs3JlY2tpIGFuZCBKw7xyZ2VuIEdyb8OfIGZvciByb290IGNhdXNpbmcNCj4gdGhl
IGlzc3VlLg0KPiANCj4gRml4ZXM6IGJhM2Y2N2MxMTYzOCAoInhlbi1ibGtmcm9udDogYXRv
bWljYWxseSB1cGRhdGUgcXVldWUgbGltaXRzIikNCj4gUmVwb3J0ZWQtYnk6IFJ1c3R5IEJp
cmQgPHJ1c3R5YmlyZEBuZXQtYy5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBI
ZWxsd2lnIDxoY2hAbHN0LmRlPg0KDQpJIGd1ZXNzIHRoaXMgc2hvdWxkIGdvIHRocm91Z2gg
dGhlIGJsb2NrIHRyZWU/DQoNCg0KSnVlcmdlbg0K
--------------xrRqeSbyQJm5rOQa3lHqHUMy
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-----

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
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------xrRqeSbyQJm5rOQa3lHqHUMy--

--------------0XXh5l6PLNt6f9rcvWr7GCnV--

--------------UDW51T09nJAuxcwdHWNDeLWU
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/Ey8FAmaDrTUFAwAAAAAACgkQsN6d1ii/Ey/4
Mgf/WvNeeFB/TLMzcRlTxFkPsluM4XV8661oBQolIw7VF9Et8dqQLw68TlA+HcnsJ+Tw+8VUGQZW
SOLidhIHbCr0b0UcOc/ribI/O4ISJ5x735TYBtMkbrMzskd/uqVY6yZtBbSztUzujVvDuiPOoPWz
Ko1ZitvUOccSgcYN0+3pAFXA2AZM8visjFXSAluADM00AL7Jy94k9l0vq0wX7Y4S+YK1FGQzROBt
HmVBIRByxHu9z/2le0IoOm45OuNzqBuO5nPHPYtxpDPmRerpRVCOCyh8Vw3X6E0+KkeFO58l9wGG
qBxez1edREHVmy6ZSUqFHXbwZZV26cnDaoSLDdHkcQ==
=8+Zs
-----END PGP SIGNATURE-----

--------------UDW51T09nJAuxcwdHWNDeLWU--


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 07:51:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 07:51:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752009.1160145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOYIC-0007vp-QT; Tue, 02 Jul 2024 07:51:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752009.1160145; Tue, 02 Jul 2024 07: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 1sOYIC-0007vi-NR; Tue, 02 Jul 2024 07:51:12 +0000
Received: by outflank-mailman (input) for mailman id 752009;
 Tue, 02 Jul 2024 07: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=73HO=OC=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sOYIB-0007vc-JE
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 07:51:11 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d7e935e3-3847-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 09:51:09 +0200 (CEST)
Received: from [192.168.99.204] (unknown [91.85.33.231])
 by support.bugseng.com (Postfix) with ESMTPSA id 0F33C4EE0738;
 Tue,  2 Jul 2024 09:51: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: d7e935e3-3847-11ef-a59d-41c015c667e1
Message-ID: <f4eb47f2-ba7e-4326-b2c3-5d1c97cadd5b@bugseng.com>
Date: Tue, 2 Jul 2024 09:51:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 07/12] x86/hvm: address violations of MISRA C Rule
 16.3
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719383180.git.federico.serafini@bugseng.com>
 <87cfe4d3e75c3a7d4174393a31aaaf80e0e60633.1719383180.git.federico.serafini@bugseng.com>
 <2c60ef16-e17c-48dd-911a-d1734aed6da5@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG
In-Reply-To: <2c60ef16-e17c-48dd-911a-d1734aed6da5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 01/07/24 10:47, Jan Beulich wrote:
> On 26.06.2024 11:28, Federico Serafini wrote:
>> @@ -2798,11 +2800,12 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
>>           hvio->mmio_insn_bytes = sizeof(hvio->mmio_insn);
>>           memcpy(hvio->mmio_insn, curr->arch.vm_event->emul.insn.data,
>>                  hvio->mmio_insn_bytes);
>> +        fallthrough;
>>       }
>> -    /* Fall-through */
>>       default:
> 
> Can you clarify for me please whether this arrangement actually helps?
> I'm pretty sure it'll result in a Coverity complaint, as my understanding
> is that for them the marker (comment or pseudo-keyword) has to immediately
> precede the subsequent label. IOW even if you confirmed that Eclair is
> smarter in this regard, it may still need converting to
> 
>          hvio->mmio_insn_bytes = sizeof(hvio->mmio_insn);
>          memcpy(hvio->mmio_insn, curr->arch.vm_event->emul.insn.data,
>                 hvio->mmio_insn_bytes);
>      }
>          fallthrough;
>      default:
>

Yes, this is ok for ECLAIR.

-- 
Federico Serafini, M.Sc.

Software Engineer, BUGSENG (http://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 07:58:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 07:58:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752017.1160155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOYPH-0000Dn-HP; Tue, 02 Jul 2024 07:58:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752017.1160155; Tue, 02 Jul 2024 07:58:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOYPH-0000Dg-EH; Tue, 02 Jul 2024 07:58:31 +0000
Received: by outflank-mailman (input) for mailman id 752017;
 Tue, 02 Jul 2024 07:58:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=73HO=OC=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sOYPG-0000Da-F1
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 07:58:30 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de77210a-3848-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 09:58:29 +0200 (CEST)
Received: from [192.168.99.204] (unknown [91.85.33.231])
 by support.bugseng.com (Postfix) with ESMTPSA id 426824EE0738;
 Tue,  2 Jul 2024 09:58: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: de77210a-3848-11ef-958a-bbd156597b9e
Message-ID: <b9a53e02-1bdc-465a-bb3f-cb7f477737d0@bugseng.com>
Date: Tue, 2 Jul 2024 09:58:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 08/12] x86/vpt: address a violation of MISRA C Rule
 16.3
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719383180.git.federico.serafini@bugseng.com>
 <453ef39f5a2a1871d8b0c74d921ed6a413b179b4.1719383180.git.federico.serafini@bugseng.com>
 <6237453c-b07d-4aad-af33-099b4cc37838@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG
In-Reply-To: <6237453c-b07d-4aad-af33-099b4cc37838@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 01/07/24 10:49, Jan Beulich wrote:
> On 26.06.2024 11:28, Federico Serafini wrote:
>> --- a/xen/arch/x86/hvm/vpt.c
>> +++ b/xen/arch/x86/hvm/vpt.c
>> @@ -118,9 +118,11 @@ static int pt_irq_masked(struct periodic_time *pt)
>>               return 0;
>>   
>>           gsi = hvm_isa_irq_to_gsi(pt->irq);
>> +
>> +        /* Fallthrough to check if the interrupt is masked on the IO APIC. */
>> +        fallthrough;
>>       }
>>   
>> -    /* Fallthrough to check if the interrupt is masked on the IO APIC. */
>>       case PTSRC_ioapic:
>>       {
>>           int mask = vioapic_get_mask(v->domain, gsi);
> 
> See question on patch 7. Plus the blank line may want purging here along
> with the comment, to be consistent with what you're doing elsewhere.

When in doubt, I think it is better to clarify rather than not,
however, if no one has anything to say, I will follow your instruction.

--
Federico Serafini, M.Sc.

Software Engineer, BUGSENG (http://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 08:26:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 08:26:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752042.1160169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOYqZ-0004V5-Oq; Tue, 02 Jul 2024 08:26:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752042.1160169; Tue, 02 Jul 2024 08:26:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOYqZ-0004Uy-Lz; Tue, 02 Jul 2024 08:26:43 +0000
Received: by outflank-mailman (input) for mailman id 752042;
 Tue, 02 Jul 2024 08: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=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOYqY-0004Un-KN
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 08:26:42 +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 ceaf4d2a-384c-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 10:26:41 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-362f62ae4c5so2212155f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 01:26: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
 d9443c01a7336-1fac159f502sm77726355ad.294.2024.07.02.01.26.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 01: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: ceaf4d2a-384c-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719908800; x=1720513600; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FrMZtI+BXJx6wV2rVmh5LFK5v0yqRcfhEliJ+2Lzkck=;
        b=WOFX2fGHLWUDT/4bk0DjPcLf5vB1qk3D8EpXutyxByRj32ibuY4qGgwPPb0RJORnW8
         3chGiD69rxFWJe1PHD6tsVAlpHQAdh2kL/11Dl5tw7vZRcNo2guEV+GPaewkCz0cBe8s
         KJijm320modoBjBgDd/Yi8SXN6s+30dxqXeC+5+pGB8e2DLEGd72iG0aixoPHY3H0tbk
         P8hZNzoY6cixorWaF+jSsDb4eh+AzUbqFlxYTyuBF0RMGq5/g99n7JxVFP5fBpBTTleK
         tIKWSgQq+KOFUkvMd9pq2bXnbaEKvKWYw0ftnXC+ae9qjNLNftAQMsQXcAloNXDano6L
         YOaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719908800; x=1720513600;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FrMZtI+BXJx6wV2rVmh5LFK5v0yqRcfhEliJ+2Lzkck=;
        b=hkzChtBk/7QhpRr2Gf5+T1QP+tnOuZm/ccD4vuVHwkXuirV4R2FBPZZQdagdVH41YQ
         nT6rHm0dcayCFdijqSbW1/LzrjkrjasLX1jzMKH/W6Xd7Oqn20JLgqx7wo4o56JfifVa
         X7LLNosWceguzl8286/nNSwMy0TEvecxnSbYf5EIongT4i/W9QMkXKfWaJ3jrKxPmua9
         rvccVFvQWB6JAh7RXSMh1GHdretFP/IfyETi6e2uZmU97EKx++2bEonWuVUCSqtpRtuR
         WkUPqJ8iJB4Tl7k1ouIndtNpWAzHAssxOW9KRLKiBPahqGLK7Uw7Oa9xyiWHy33n+9ZI
         ZnCw==
X-Gm-Message-State: AOJu0YwQhSDk7z4HIVyt/6htwPxxFvKG7LP/Uxzx2xNUkZlvxP+wP4BP
	kMa0MiUyhcdtNnINpGLIbSMkOgzrVDEDWI07deEzUuvFFJvzOKvlwjBAcwTuJg==
X-Google-Smtp-Source: AGHT+IFJY+1pfxt0JFmwybTn1EUM4vrgE3RZh8jpcOec9s+6+0h8Z4JdhfG7Qv+wIqmTep80oFiIVQ==
X-Received: by 2002:adf:f64c:0:b0:366:8d90:84c3 with SMTP id ffacd0b85a97d-36760a72555mr8597876f8f.14.1719908800441;
        Tue, 02 Jul 2024 01:26:40 -0700 (PDT)
Message-ID: <a733033f-e456-4488-a9f8-845a7874268d@suse.com>
Date: Tue, 2 Jul 2024 10:26:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 for-4.19? 3/3] cmdline: document and enforce
 "extra_guest_irqs" upper bounds
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <3c3a1d0c-06f2-a392-b2f9-381bed5c5e7b@suse.com> <ZoJ9Bd2kg3IQ0Z28@macbook>
 <8ab71a85-6056-4c4f-8513-a21c061a176d@suse.com> <ZoKvP6StEbMTgjrY@macbook>
 <938e5bd1-4523-4b49-80fa-1c3331587972@suse.com> <ZoLIpulcC7dqtxYR@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZoLIpulcC7dqtxYR@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.07.2024 17:17, Roger Pau Monné wrote:
> I think we are in agreement about what needs doing.  I can provide:
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> With the changes we have agreed to arch_hwdom_irqs().

Yet another request for considering for a release-ack.

Thanks, Jan



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 08:29:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 08:29:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752049.1160178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOYt3-0005GK-88; Tue, 02 Jul 2024 08:29:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752049.1160178; Tue, 02 Jul 2024 08: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 1sOYt3-0005GD-5T; Tue, 02 Jul 2024 08:29:17 +0000
Received: by outflank-mailman (input) for mailman id 752049;
 Tue, 02 Jul 2024 08:29: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOYt2-0005G2-PK
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 08:29:16 +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 2a0edd60-384d-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 10:29:15 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a72477a60fbso459692566b.2; 
 Tue, 02 Jul 2024 01:29:14 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72ab0b84d5sm396596466b.223.2024.07.02.01.29.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 01:29: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: 2a0edd60-384d-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719908953; x=1720513753; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=u1lrZR3lXTld0yG1mwu1WQ84fBBuSrC1ZjxB5m6Syhk=;
        b=U+4rIXtJe86SUJsFFcZydROdqiijyaPSb5C99KfaMHLM/Zt3qGS3hKBfCl1c7KfALW
         +nAMZj/6h9XiLFFJY4BKdUieYujByjx6x66IBsX84GypGyxeck1a/JeIFPiCmcUQSCVf
         DbdoPe1JTURMi1xRx5jdd7ReLsGgYhfjcPPloPlZy2BBxgpN4XRA31A5KfjIZ5g01Mkj
         fdqSVyn5FRYX4m1z6TrLWY6Qbg4GR65BMyg5496a0GQ7VLYu1lDtHYK2FfHOW78UB5Is
         gP8B+vzs93VPH04YTWnaDCjtDmXc2Hz69R2bGJcvv5xMp6Cm+XCb9FELuUOFPRLAsWVm
         e2vg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719908953; x=1720513753;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u1lrZR3lXTld0yG1mwu1WQ84fBBuSrC1ZjxB5m6Syhk=;
        b=b85gO36w/F1MfqdzGfJg8zGrigk+AbdfI9ZOcqdEb5K4N0F+WsbNMF1IMtB25qt4OI
         VJyNMbOvXFc0gT+OIdGXsuckGUEMeJYCAfgu3Fc54dhlW6XbA4O/04K/eOc1wvS1xyUO
         Iz9s8XvmBW2NZ+vInhrXiHrpcCu/ZZ/+rCpCI///X75aqkkQZwEfYsj1JoOagCBu63GI
         Ko4if9YUCJbrPSCwn8MZfjb3LE1VRoFWtPBMxYqJ20v1UoJlGe8jjKINZKqiiQqCFLSX
         UlC1lnsSpb7/53fHynM2f2rYTeyZVlccWYwwbMs9ZLtiE+Fd10KI7zlvQMaLjgSRkesv
         Tz+w==
X-Forwarded-Encrypted: i=1; AJvYcCWFj1Vy6RK3SG09A58rxkSRN+67GHl4qbD+f9ZlLj25jSIOOmAitKigO2/slKGLJ5rwMnCcvUXqzRuy9ngiXoMYKGawtVwZ61ddjbFzZ5ZfyaU=
X-Gm-Message-State: AOJu0Yx8c2/srQttvIjyBmKKkRIJXCFVjOwMA1pK3m/p3F+hYhq/RUoN
	A8tgTCN8PBSTdgLMl1S9fRFzhYWPMzr3Do5rKVj8fWz74cy7y/PaB38n3DS6
X-Google-Smtp-Source: AGHT+IGgnw05706l5f8ftgxQx2/12CCbmUzvgz7BnnKbKxpE5QfagLVWa7ep2rOe5QaqSSqhtelkrQ==
X-Received: by 2002:a17:906:c141:b0:a6f:73df:15d1 with SMTP id a640c23a62f3a-a751441f05dmr541846766b.7.1719908952756;
        Tue, 02 Jul 2024 01:29:12 -0700 (PDT)
Message-ID: <979c22a8a9c253d490fd87cdc825962cb905f3e2.camel@gmail.com>
Subject: Xen 4.19 rc1
From: Oleksii <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: xen-users@lists.xenproject.org, xen-announce@lists.xenproject.org
Date: Tue, 02 Jul 2024 10:29:12 +0200
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

Hi all,

Xen 4.19 rc1 is tagged. You can check that out from xen.git:

git://xenbits.xen.org/xen.git 4.19.0-rc1

For your convenience there is also a tarball and the signature at:
https://downloads.xenproject.org/release/xen/4.19.0-rc1/xen-4.19.0-rc1.tar.=
gz

And the signature is at:
https://downloads.xenproject.org/release/xen/4.19.0-rc1/xen-4.19.0-rc1.tar.=
gz.sig

Please send bug reports and test reports to
xen-devel@lists.xenproject.org<mailto:xen-devel@lists.xenproject.org>.
When sending bug reports, please CC relevant maintainers and me
(oleskii.kurochko@gmail.com<mailto:oleskii.kurochko@gmail.com).

Best regards,
 Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 08:30:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 08:30:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752055.1160188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOYtx-0006ev-LF; Tue, 02 Jul 2024 08:30:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752055.1160188; Tue, 02 Jul 2024 08: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 1sOYtx-0006eo-Id; Tue, 02 Jul 2024 08:30:13 +0000
Received: by outflank-mailman (input) for mailman id 752055;
 Tue, 02 Jul 2024 08:30: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=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOYtw-0006eV-LM
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 08:30:12 +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 4c35b08d-384d-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 10:30:11 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3678aa359b7so66065f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 01:30: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-70802667401sm7882171b3a.77.2024.07.02.01.30.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 01: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: 4c35b08d-384d-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719909011; x=1720513811; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eS4922ee9vhdY0Z7W3boei1kzE+VTeOt8yIu/nXjBMY=;
        b=bVN6w1w7sIbH8hU5lNE2qJsqnbwL/vbDQqTbHehwQxtXKFyvfGDHXFBxE6Z7v4GMTJ
         RXxjmWn2GbnODv+Nu/OqmhIAAwJlhIJwVyFlmuzsmmhNhhg51Xs/PgzChncvjWrhuz2R
         D+w9WDgPaBcr+DcH6pcWXDzM8IKAncdDplY9a5vSbRD7QAM3LgqRVs58UwQZzu93NTFl
         nKoWjBV3ANG0IHN04rBQY71+fWU5CxQuqY14hGraB8Q5BnqebySV2y1FeBn+KenTJa0u
         SwY5waRJ6uXYKp5bOZS/vtr4H3EKxL6JV537Z/CMMR+l6KSHt91bkpxx6UOb9Wfc/HuB
         hUQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719909011; x=1720513811;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eS4922ee9vhdY0Z7W3boei1kzE+VTeOt8yIu/nXjBMY=;
        b=k8J/SPLXPshHEgvepd7En7qG4HAuNmvYTWZYS2JNrcsv5G9FdyRiRE9Cf0dPNsJOPk
         cZLwRNX05C+MoBrmoUrJLT0gu2ymoucqGMApkt1UZ1yjU7hG2NVsg0YxS59HhQ+Awthp
         esu4kPFRFFSjzF7qUzAW5Y+ub4G040B8d/h+RMf1xD67aa2xNCzVlK2+ZRl00t50kvCK
         n18fvr2zFjdxKXUVlJJhe8SxVO7NfwMrY03/25fw3SK5dKS2P2oRiGhp7PAE7PavkGBq
         +snIPWeBodSTpO19t+34oq8FD9kp/sVgw0Sqpbt9OBXrJF0r4ocyQ5RwT9gvv/g4xSDM
         AUhQ==
X-Gm-Message-State: AOJu0YxrMkWLuQedg8Iln2+vbfAQZ9puKKpZpgN0/ZNZ3l/AzbBohMRP
	OZNSBYcnh/iT8JbAV/5GxjHlV60EKlbcp/DvYA+Vr3zdmPVvvKlwpvHE8n7iXw==
X-Google-Smtp-Source: AGHT+IHzOv/cTLGxzx9/L03mq6fHDKtgfb9hj1R7nbw+63TzEislTA/opcEWL0KRYyR13pZcoXo/oQ==
X-Received: by 2002:a5d:5987:0:b0:363:776:821b with SMTP id ffacd0b85a97d-3676045b4a0mr11365926f8f.0.1719909010965;
        Tue, 02 Jul 2024 01:30:10 -0700 (PDT)
Message-ID: <a7df11bc-ab68-4ee2-9b96-53f3890a9803@suse.com>
Date: Tue, 2 Jul 2024 10:30:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] cmdline: document and enforce "extra_guest_irqs"
 upper bounds
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>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <3c3a1d0c-06f2-a392-b2f9-381bed5c5e7b@suse.com> <ZoJ9Bd2kg3IQ0Z28@macbook>
 <8ab71a85-6056-4c4f-8513-a21c061a176d@suse.com> <ZoKvP6StEbMTgjrY@macbook>
 <938e5bd1-4523-4b49-80fa-1c3331587972@suse.com> <ZoLIpulcC7dqtxYR@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZoLIpulcC7dqtxYR@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.07.2024 17:17, Roger Pau Monné wrote:
> On Mon, Jul 01, 2024 at 05:07:19PM +0200, Jan Beulich wrote:
>> On 01.07.2024 15:29, Roger Pau Monné wrote:
>>> On Mon, Jul 01, 2024 at 12:40:35PM +0200, Jan Beulich wrote:
>>>> On 01.07.2024 11:55, Roger Pau Monné wrote:
>>>>> On Thu, Jul 27, 2023 at 09:38:55AM +0200, Jan Beulich wrote:
>>>>>> --- a/xen/common/domain.c
>>>>>> +++ b/xen/common/domain.c
>>>>>> @@ -693,7 +693,7 @@ struct domain *domain_create(domid_t dom
>>>>>>              d->nr_pirqs = nr_static_irqs + extra_domU_irqs;
>>>>>>          else
>>>>>>              d->nr_pirqs = extra_hwdom_irqs ? nr_static_irqs + extra_hwdom_irqs
>>>>>> -                                           : arch_hwdom_irqs(domid);
>>>>>> +                                           : arch_hwdom_irqs(d);
>>>>>>          d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
>>>>>>  
>>>>>>          radix_tree_init(&d->pirq_tree);
>>>>>> @@ -819,6 +819,24 @@ void __init setup_system_domains(void)
>>>>>>      if ( IS_ERR(dom_xen) )
>>>>>>          panic("Failed to create d[XEN]: %ld\n", PTR_ERR(dom_xen));
>>>>>>  
>>>>>> +#ifdef CONFIG_HAS_PIRQ
>>>>>> +    /* Bound-check values passed via "extra_guest_irqs=". */
>>>>>> +    {
>>>>>> +        unsigned int n = max(arch_hwdom_irqs(dom_xen), nr_static_irqs);
>>>>>> +
>>>>>> +        if ( extra_hwdom_irqs > n - nr_static_irqs )
>>>>>> +        {
>>>>>> +            extra_hwdom_irqs = n - nr_static_irqs;
>>>>>> +            printk(XENLOG_WARNING "hwdom IRQs bounded to %u\n", n);
>>>>>> +        }
>>>>>> +        if ( extra_domU_irqs > max(32U, n - nr_static_irqs) )
>>>>>> +        {
>>>>>> +            extra_domU_irqs = n - nr_static_irqs;
>>>>>> +            printk(XENLOG_WARNING "domU IRQs bounded to %u\n", n);
>>>>>> +        }
>>>>>> +    }
>>>>>> +#endif
>>>>>
>>>>> IMO this is kind of a weird placement. Wouldn't this be more naturally
>>>>> handled in parse_extra_guest_irqs()?
>>>>
>>>> Indeed it is and yes it would, but no, it can't. We shouldn't rely on
>>>> the particular behavior of arch_hwdom_irqs(), and in the general case
>>>> we can't call it as early as when command line arguments are parsed. I
>>>> couldn't think of a neater way of doing this, and it not being pretty
>>>> is why I'm saying "(ab)use" in the description.
>>>
>>> I see, nr_static_irqs is an alias of nr_irqs_gsi, which is not properly
>>> set by the time we evaluate command line arguments.
>>>
>>> My only possible suggestion would be to do it as a presmp initcall,
>>> and define/register such initcall for x86 only, the only benefit would
>>> be that such inicall could be defined in the same translation unit as
>>> arch_hwdom_irqs() then.
>>
>> Which then would require making extra_{hwdom,domU}_irqs available to
>> x86/io_apic.c, which also wouldn't be very nice. To be honest, I'd prefer
>> to keep the logic where it is, until such time where perhaps we move pIRQ
>> stuff wholesale to x86-only files.
> 
> Fine by me.
> 
> I think we are in agreement about what needs doing.

Hmm, after further thinking I'm not sure splitting would be the way to go.
We should rather properly remove the concept of pIRQ from PVH, i.e. not
only not have them visible to the kernel, but also not use e.g. ->nr_pirqs
and ->pirq_tree internally. Then we could presumably drop the constraining
via this command line option (documenting it as inapplicable to PVH).

>  I can provide:
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> With the changes we have agreed to arch_hwdom_irqs().

Thanks; changes done locally.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 08:40:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 08:40:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752079.1160202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOZ3w-0000JG-KC; Tue, 02 Jul 2024 08:40:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752079.1160202; Tue, 02 Jul 2024 08:40:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOZ3w-0000J9-HI; Tue, 02 Jul 2024 08:40:32 +0000
Received: by outflank-mailman (input) for mailman id 752079;
 Tue, 02 Jul 2024 08:40: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=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOZ3v-0000J3-4R
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 08:40:31 +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 bd06edc7-384e-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 10:40:30 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52e7d2278d8so5270058e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 01: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
 41be03b00d2f7-72c6c7f6dacsm5222964a12.70.2024.07.02.01.40.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 01: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: bd06edc7-384e-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719909630; x=1720514430; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZJwzROFMrAAl5kAagTuqDXB/4UF5fFuFQBHzYepZFtI=;
        b=cjIQVr2e/0OYbKR4UkQBWe6l5DAOZSd2YOIdFKYudF4cdNwN0ZviCuIajLij++NS88
         fvIcmKYoe50Ep9JB7x4yJM3aC7ViaZqIMf+Vn2USsbaZ2p8gQ51sr07hzC/jkO8KLyxW
         ONWP4O64FWNZPNj6Do6nY7U9G2dTt7/YwxtY3wyvPrvokwJJ4EByzKuCwbzDzfW5c8rN
         6H5UTeZeYY7Y3dgCuyUn7yBlyL3y5iDwINL2RqMMJM5GFUa5LdVe4wMiRN1M/Ib0Ehen
         HiMiUudkXw+8RVyXOTdRmsDmPtDSsL58jfjqbWVdbXl6bWrHWBgYM5rDgzxI5wCFpFWL
         Gv7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719909630; x=1720514430;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZJwzROFMrAAl5kAagTuqDXB/4UF5fFuFQBHzYepZFtI=;
        b=JCIVEQooG6tvNb4vjhqLaOXrUC/SrkAPRky33iS+b3oYCLNYM3znCv1l5+tUNGffxh
         gJ8jhXelzm9QJ6Y1EylGYtJTdEeufLZL48JIFHUxJlTVAhIPiKM/GhLR1UwyNc536Lr1
         n0BIiQkDQR+r8p8IY01rCw07R+KoaZeR+B/zAU+piBVHBUeJlu6evc2ufu3jBOf3i/cQ
         nxfY2cNwKQZn4JMcpn3BvN5FIEPrRebgpeZ77ZHBsKUv1dAGoeTp5ZX4TjLvjJxdU6Yt
         73y41442RUWia6BKNdQLZZy4ZtWbCZDKZERlJpy4a5QsXlkINeoOzuDtJH7H/7esBDq7
         HSJw==
X-Forwarded-Encrypted: i=1; AJvYcCUHDFDYqGIsds1HJmGmdDBroR3UPaSueYXBxczmCz5mY7zhiM6qaEe9BTsACZiw7UpxtzQfj9TMzfNJM83ehvR8E3XQ+JctilZUWZr4UwQ=
X-Gm-Message-State: AOJu0Yys1+6uYDwynxmA6a68Asb7Q1r9AYurWAIwWiTdDanFKUKVEWq/
	+Xsv83x2QcUrmn/NHtYkWwih3sbH3yXS3JfNB5N9NBnSSaNyJcm4yHq++9j9bg==
X-Google-Smtp-Source: AGHT+IFzfAyUM080VLLkDLIEeA+pb8fLGgNuo+zPbS+OOXc+NDB+bMJdwsK+1bvgz54YciyZT5AmiQ==
X-Received: by 2002:a2e:240a:0:b0:2ec:a022:880c with SMTP id 38308e7fff4ca-2ee5e3b36e3mr58780961fa.22.1719909629619;
        Tue, 02 Jul 2024 01:40:29 -0700 (PDT)
Message-ID: <de0f185a-52a8-435e-8afd-630c1bfc55d8@suse.com>
Date: Tue, 2 Jul 2024 10:40:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v11 1/8] xen/vpci: Clear all vpci status of device
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-2-Jiqian.Chen@amd.com>
 <d145f307-2c66-4a2b-8a1f-d969ed4f2e6d@suse.com>
 <BL1PR12MB58494BFDE98D3CDAEB157AC7E7DC2@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: <BL1PR12MB58494BFDE98D3CDAEB157AC7E7DC2@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 04:59, Chen, Jiqian wrote:
> On 2024/7/1 15:18, Jan Beulich wrote:
>> On 30.06.2024 14:33, Jiqian Chen wrote:
>>> When a device has been reset on dom0 side, the vpci on Xen
>>> side won't get notification, so the cached state in vpci is
>>> all out of date compare with the real device state.
>>> To solve that problem, add a new hypercall to clear all vpci
>>> device state. When the state of device is reset on dom0 side,
>>> dom0 can call this hypercall to notify vpci.
>>
>> While the description properly talks about all of this being about device
>> reset, the title suggests otherwise (leaving open what the context is, thus
>> - to me at least - suggesting it's during vPCI init for a particular
>> device).
> Change title to "xen/pci: Add hypercall to support reset of pcidev" ?

Perhaps.

>>> @@ -67,6 +68,63 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>          break;
>>>      }
>>>  
>>> +    case PHYSDEVOP_pci_device_state_reset:
>>> +    {
>>> +        struct pci_device_state_reset dev_reset;
>>> +        struct pci_dev *pdev;
>>> +        pci_sbdf_t sbdf;
>>> +
>>> +        ret = -EOPNOTSUPP;
>>> +        if ( !is_pci_passthrough_enabled() )
>>> +            break;
>>> +
>>> +        ret = -EFAULT;
>>> +        if ( copy_from_guest(&dev_reset, arg, 1) != 0 )
>>> +            break;
>>> +
>>> +        sbdf = PCI_SBDF(dev_reset.dev.seg,
>>> +                        dev_reset.dev.bus,
>>> +                        dev_reset.dev.devfn);
>>> +
>>> +        ret = xsm_resource_setup_pci(XSM_PRIV, sbdf.sbdf);
>>> +        if ( ret )
>>> +            break;
>>> +
>>> +        pcidevs_lock();
>>> +        pdev = pci_get_pdev(NULL, sbdf);
>>> +        if ( !pdev )
>>> +        {
>>> +            pcidevs_unlock();
>>> +            ret = -ENODEV;
>>> +            break;
>>> +        }
>>> +
>>> +        write_lock(&pdev->domain->pci_lock);
>>> +        pcidevs_unlock();
>>> +        /* Implement FLR, other reset types may be implemented in future */
>>
>> The comment isn't in sync with the code anymore.
> Change to "/* vpci_reset_device_state is called by default for all reset types, other specific operations can be added later as needed */" ?

Counter question: Is such a comment really adding any value?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 08:44:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 08:44:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752085.1160213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOZ86-0000tW-4i; Tue, 02 Jul 2024 08:44:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752085.1160213; Tue, 02 Jul 2024 08:44:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOZ86-0000tP-0h; Tue, 02 Jul 2024 08:44:50 +0000
Received: by outflank-mailman (input) for mailman id 752085;
 Tue, 02 Jul 2024 08:44: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=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOZ84-0000tJ-9x
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 08:44:48 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 559916f0-384f-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 10:44:46 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2eaae2a6dc1so51287991fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 01:44: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
 d9443c01a7336-1fad58f5f1dsm65612565ad.54.2024.07.02.01.44.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 01:44: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: 559916f0-384f-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719909886; x=1720514686; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Uxjq6ObVcuKBDxQRvpbX/yQKx09IVAzZODL5DefPg9g=;
        b=ab7ZTT1SfvR38U9K/8SgxbN4rAolvHBenDXFikkKCkUlztkZe3TLMLjpYoWshNBn+z
         KVqUmO9/LZhe4kULH66ABxCQXFzwR9uiVFEvHIxc8NFPC3jLIaaAgbiwfQkGYCWLmmjd
         +hzBv/OUk+rU8WrFGpUZrdqYtOlEp3mXegkCwSXchS79ofyon8hEAVE1I0QQ7mWVWz2Y
         UBGGuoHkvzzMgK4bQTbG+qjR+EjIzQ4alDSO0GMbg2t0HM5Y38VIV9+fXNT01R2udVVY
         1yDEdyn8cf4h1008mOICQG1qz0ROJGXIWK4R/TIWGEhCPG8eomi496XKexhIrGiN76WP
         huKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719909886; x=1720514686;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Uxjq6ObVcuKBDxQRvpbX/yQKx09IVAzZODL5DefPg9g=;
        b=OZ2fGv7kaeQF4UMM6jRR+bWugF35CsO91ZuOk1oXYzrEqhWnZNigYZSR9BTnCERzXy
         0hqc986+t8GKknmziA9Vjfuuq73PzK/zoyBTS8PwN1X/lyID7tO8SR4kBaD3eS1fji0X
         bTZygFbVdUv/88ceg8qgk3AaqjZTflaFAb9PQbdarspZFhwReMXAY4bGBsMwlGmL6DqO
         hzHqaJcGUMseU9tu5fCPEUedGsUo5Qr9BGZAJwBqI6K9UKgwbiqDqnaQ2B04uiaMHLkT
         Yz6n4ikqC9qHXcPbSPrUpOFYI0ogeUjfvePi+ZGKMz/DmJHXyCqln9iJzRPIgNqJHoIs
         7yTA==
X-Forwarded-Encrypted: i=1; AJvYcCXG3GbeJ7U6cECQDwgDrGaUvx6olS7g+G71zbULoDKUbq+/V4xjXNYqrHnIXSamkNlxO1d7qewRiViFaXdM0SK4sURs+IJxFEZpmUwUjJ4=
X-Gm-Message-State: AOJu0Yyxj8AIxUC5FpTJrnqGA0AomJo/qmMNwdWfurg34kBp0vPvXjDm
	YtFO9r2AXvOB+IGYwJqkB1LI8mIuVWA3JVseoC0grJL1kyS+estJL/GWnwALfQ==
X-Google-Smtp-Source: AGHT+IE7Uy08cpVdCW2nMjUoNB0Hq23JbGEC81eA8OVHFavR5+uKS5aK5neX5Si5mNskIvxfyj7fyA==
X-Received: by 2002:a2e:a418:0:b0:2ec:557b:f895 with SMTP id 38308e7fff4ca-2ee5e4b91cdmr65157301fa.31.1719909885596;
        Tue, 02 Jul 2024 01:44:45 -0700 (PDT)
Message-ID: <d1b22fa7-870e-4968-ba5d-c5d6fccb0af7@suse.com>
Date: Tue, 2 Jul 2024 10:44:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v11 2/8] x86/pvh: Allow (un)map_pirq when dom0 is PVH
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-3-Jiqian.Chen@amd.com>
 <9a311ee0-dcf2-4609-aced-7f57b322da5f@suse.com>
 <BL1PR12MB5849C3882D31620ADAC55ADAE7DC2@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: <BL1PR12MB5849C3882D31620ADAC55ADAE7DC2@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 05:15, Chen, Jiqian wrote:
> On 2024/7/1 15:44, Jan Beulich wrote:
>> On 30.06.2024 14:33, Jiqian Chen wrote:
>>> If run Xen with PVH dom0 and hvm domU, hvm will map a pirq for
>>> a passthrough device by using gsi, see qemu code
>>> xen_pt_realize->xc_physdev_map_pirq and libxl code
>>> pci_add_dm_done->xc_physdev_map_pirq. Then xc_physdev_map_pirq
>>> will call into Xen, but in hvm_physdev_op, PHYSDEVOP_map_pirq
>>> is not allowed because currd is PVH dom0 and PVH has no
>>> X86_EMU_USE_PIRQ flag, it will fail at has_pirq check.
>>>
>>> So, allow PHYSDEVOP_map_pirq when dom0 is PVH and also allow
>>> PHYSDEVOP_unmap_pirq for the removal device path to unmap pirq.
>>> And add a new check to prevent (un)map when the subject domain
>>> has no X86_EMU_USE_PIRQ flag.
>>>
>>> So that the interrupt of a passthrough device can be
>>> successfully mapped to pirq for domU with X86_EMU_USE_PIRQ flag
>>> when dom0 is PVH
>>>
>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>>> Signed-off-by: Huang Rui <ray.huang@amd.com>
>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>>
>> You keep carrying this R-b, despite making functional changes. This can't be
>> quite right.
> Will remove in next version.
> 
>>
>> While functionally I'm now okay with the change, I still have a code structure
>> concern:
>>
>>> --- a/xen/arch/x86/physdev.c
>>> +++ b/xen/arch/x86/physdev.c
>>> @@ -323,6 +323,13 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>          if ( !d )
>>>              break;
>>>  
>>> +        /* Prevent mapping when the subject domain has no X86_EMU_USE_PIRQ */
>>> +        if ( is_hvm_domain(d) && !has_pirq(d) )
>>> +        {
>>> +            rcu_unlock_domain(d);
>>> +            return -EOPNOTSUPP;
>>> +        }
>>> +
>>>          ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
>>>  
>>>          rcu_unlock_domain(d);
>>> @@ -346,6 +353,13 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>          if ( !d )
>>>              break;
>>>  
>>> +        /* Prevent unmapping when the subject domain has no X86_EMU_USE_PIRQ */
>>> +        if ( is_hvm_domain(d) && !has_pirq(d) )
>>> +        {
>>> +            rcu_unlock_domain(d);
>>> +            return -EOPNOTSUPP;
>>> +        }
>>> +
>>>          ret = physdev_unmap_pirq(d, unmap.pirq);
>>>  
>>>          rcu_unlock_domain(d);
>>
>> If you did go look, you will have noticed that we use "return" in the middle
>> of this function only very sparingly (when alternatives would result in more
>> complicated code elsewhere). I think you want to avoid "return" here, too,
>> and probably go even further and avoid the extra rcu_unlock_domain() as well.
>> That's easily possible to arrange for (taking the latter case as example):
>>
>>         /* Prevent unmapping when the subject domain has no X86_EMU_USE_PIRQ */
>>         if ( !is_hvm_domain(d) || has_pirq(d) )
>>             ret = physdev_unmap_pirq(d, unmap.pirq);
>>         else
>>             ret = -EOPNOTSUPP;
>>
>>         rcu_unlock_domain(d);
>>
>> Personally I would even use a conditional operator here, but I believe
>> others might dislike its use in situations like this one.
>>
>> The re-arrangement make a little more noticeable though that the comment
>> isn't quite right either: PV domains necessarily have no
>> X86_EMU_USE_PIRQ. Maybe "... has no notion of pIRQ"?
> 
> Or just like below?
> 
>         /*
>          * Prevent unmapping when the subject hvm domain has no
>          * X86_EMU_USE_PIRQ
>          */
>         if ( is_hvm_domain(d) && !has_pirq(d) )
>             ret = -EOPNOTSUPP;
>         else
>             ret = physdev_unmap_pirq(d, unmap.pirq);

No objection to the slightly changed comment. The code alternative you
present is of course functionally identical, yet personally I prefer to
have the "good" case on the "if" branch and the "bad" one following
"else". I wouldn't insist, though.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 08:45:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 08:45:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752092.1160222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOZ8q-0001RL-GD; Tue, 02 Jul 2024 08:45:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752092.1160222; Tue, 02 Jul 2024 08: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 1sOZ8q-0001RE-DZ; Tue, 02 Jul 2024 08:45:36 +0000
Received: by outflank-mailman (input) for mailman id 752092;
 Tue, 02 Jul 2024 08:45: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=IzxX=OC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sOZ8o-0000tJ-Rq
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 08:45:34 +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 716fbe1a-384f-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 10:45:33 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-366e70d0330so2461735f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 01:45:33 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3675a103e5esm12509189f8f.108.2024.07.02.01.45.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 01:45: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: 716fbe1a-384f-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719909932; x=1720514732; 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=OJv3H9wfwWYfqvs89ZyOnJSbY2pxhP8diuBe6G8tqO4=;
        b=Mz8kMYuSpj3RZ42zm7GR1DW0Uc34MT4Wz9lPDqgbdw4qftdl+c1Y3eauyRxFpipq9l
         gqxvhMPhJVcRlOQGY2PMj1bBrl+Hq1CTzPCPv1SWCoGmb2jEBSPKczMgfohsGEIvWaT9
         gDs3NVMlr33yN7VSjRtyPt6n2sJLtJ8jwIvKk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719909932; x=1720514732;
        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=OJv3H9wfwWYfqvs89ZyOnJSbY2pxhP8diuBe6G8tqO4=;
        b=mOfkewf8yCPm3ddhrakRLqvVZyqXhfBNvRvrTuxdB7A5AM7N56DfbcaZ8AGfufhfwB
         AbN2g30AE2AMoVA8/mcN93D9lVAD4Xm9W3tGoP7ErWBLavx5u3gvsKEXttRhMEoOtXej
         8MyGr2cTWbObDVH/1ceTkJZFB3C/Dyhje+f4YaiDpxtuy5U8i1byBkvk+ecfGXRAXys/
         e1UAf+MJ42m4OwXWlc/yEU8CU9FA9/Mjp8/1iLqhJDYVidxBJzZtwxn417i+1CTJsngW
         T864sVICOrJNkk3nlwU6JlbWD21SwAYgPIsLFwK0YgJ22gx9VadbBX2+qEUW7OX+hOrk
         iFxA==
X-Gm-Message-State: AOJu0Yw8bIVsgReJd4ykh4U/7X9CV4mvUAkAL7ynJIn+mhakZ6c281h0
	LCqMZZ8R2sRYe0kxABvhylx/qaW0sVq+kcGYz0XTlaraOvVXYZBMXI+sad8y/pc=
X-Google-Smtp-Source: AGHT+IFY2g9wy4Q/S3fuqe2cM2KISazdEdxhZhWoK9lPBWLQJs87FSt4k2SLrVbOeJswsfE3pggY8w==
X-Received: by 2002:adf:f98a:0:b0:35f:b03:bf45 with SMTP id ffacd0b85a97d-367756adf42mr5398950f8f.24.1719909932128;
        Tue, 02 Jul 2024 01:45:32 -0700 (PDT)
Date: Tue, 2 Jul 2024 10:45:31 +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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 3/3] cmdline: document and enforce "extra_guest_irqs"
 upper bounds
Message-ID: <ZoO-K9ll9XW2gFFM@macbook>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <3c3a1d0c-06f2-a392-b2f9-381bed5c5e7b@suse.com>
 <ZoJ9Bd2kg3IQ0Z28@macbook>
 <8ab71a85-6056-4c4f-8513-a21c061a176d@suse.com>
 <ZoKvP6StEbMTgjrY@macbook>
 <938e5bd1-4523-4b49-80fa-1c3331587972@suse.com>
 <ZoLIpulcC7dqtxYR@macbook>
 <a7df11bc-ab68-4ee2-9b96-53f3890a9803@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <a7df11bc-ab68-4ee2-9b96-53f3890a9803@suse.com>

On Tue, Jul 02, 2024 at 10:30:03AM +0200, Jan Beulich wrote:
> On 01.07.2024 17:17, Roger Pau Monné wrote:
> > On Mon, Jul 01, 2024 at 05:07:19PM +0200, Jan Beulich wrote:
> >> On 01.07.2024 15:29, Roger Pau Monné wrote:
> >>> On Mon, Jul 01, 2024 at 12:40:35PM +0200, Jan Beulich wrote:
> >>>> On 01.07.2024 11:55, Roger Pau Monné wrote:
> >>>>> On Thu, Jul 27, 2023 at 09:38:55AM +0200, Jan Beulich wrote:
> >>>>>> --- a/xen/common/domain.c
> >>>>>> +++ b/xen/common/domain.c
> >>>>>> @@ -693,7 +693,7 @@ struct domain *domain_create(domid_t dom
> >>>>>>              d->nr_pirqs = nr_static_irqs + extra_domU_irqs;
> >>>>>>          else
> >>>>>>              d->nr_pirqs = extra_hwdom_irqs ? nr_static_irqs + extra_hwdom_irqs
> >>>>>> -                                           : arch_hwdom_irqs(domid);
> >>>>>> +                                           : arch_hwdom_irqs(d);
> >>>>>>          d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
> >>>>>>  
> >>>>>>          radix_tree_init(&d->pirq_tree);
> >>>>>> @@ -819,6 +819,24 @@ void __init setup_system_domains(void)
> >>>>>>      if ( IS_ERR(dom_xen) )
> >>>>>>          panic("Failed to create d[XEN]: %ld\n", PTR_ERR(dom_xen));
> >>>>>>  
> >>>>>> +#ifdef CONFIG_HAS_PIRQ
> >>>>>> +    /* Bound-check values passed via "extra_guest_irqs=". */
> >>>>>> +    {
> >>>>>> +        unsigned int n = max(arch_hwdom_irqs(dom_xen), nr_static_irqs);
> >>>>>> +
> >>>>>> +        if ( extra_hwdom_irqs > n - nr_static_irqs )
> >>>>>> +        {
> >>>>>> +            extra_hwdom_irqs = n - nr_static_irqs;
> >>>>>> +            printk(XENLOG_WARNING "hwdom IRQs bounded to %u\n", n);
> >>>>>> +        }
> >>>>>> +        if ( extra_domU_irqs > max(32U, n - nr_static_irqs) )
> >>>>>> +        {
> >>>>>> +            extra_domU_irqs = n - nr_static_irqs;
> >>>>>> +            printk(XENLOG_WARNING "domU IRQs bounded to %u\n", n);
> >>>>>> +        }
> >>>>>> +    }
> >>>>>> +#endif
> >>>>>
> >>>>> IMO this is kind of a weird placement. Wouldn't this be more naturally
> >>>>> handled in parse_extra_guest_irqs()?
> >>>>
> >>>> Indeed it is and yes it would, but no, it can't. We shouldn't rely on
> >>>> the particular behavior of arch_hwdom_irqs(), and in the general case
> >>>> we can't call it as early as when command line arguments are parsed. I
> >>>> couldn't think of a neater way of doing this, and it not being pretty
> >>>> is why I'm saying "(ab)use" in the description.
> >>>
> >>> I see, nr_static_irqs is an alias of nr_irqs_gsi, which is not properly
> >>> set by the time we evaluate command line arguments.
> >>>
> >>> My only possible suggestion would be to do it as a presmp initcall,
> >>> and define/register such initcall for x86 only, the only benefit would
> >>> be that such inicall could be defined in the same translation unit as
> >>> arch_hwdom_irqs() then.
> >>
> >> Which then would require making extra_{hwdom,domU}_irqs available to
> >> x86/io_apic.c, which also wouldn't be very nice. To be honest, I'd prefer
> >> to keep the logic where it is, until such time where perhaps we move pIRQ
> >> stuff wholesale to x86-only files.
> > 
> > Fine by me.
> > 
> > I think we are in agreement about what needs doing.
> 
> Hmm, after further thinking I'm not sure splitting would be the way to go.
> We should rather properly remove the concept of pIRQ from PVH, i.e. not
> only not have them visible to the kernel, but also not use e.g. ->nr_pirqs
> and ->pirq_tree internally. Then we could presumably drop the constraining
> via this command line option (documenting it as inapplicable to PVH).

Removing it from PVH would also imply removing from HVM AFAICT (unless
it's HVM with explicitly pIRQ support).  I think the main issue there
would be dealing with the change in all the interfaces that currently
take pIRQ parameters, albeit I could be wrong.  Seems like a
worthwhile improvement.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 08:56:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 08:56:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752113.1160240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOZJL-0003aW-C6; Tue, 02 Jul 2024 08:56:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752113.1160240; Tue, 02 Jul 2024 08: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 1sOZJL-0003aP-9d; Tue, 02 Jul 2024 08:56:27 +0000
Received: by outflank-mailman (input) for mailman id 752113;
 Tue, 02 Jul 2024 08:56: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=Cybj=OC=aepfle.de=olaf@srs-se1.protection.inumbo.net>)
 id 1sOZJK-0003aE-L0
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 08:56:26 +0000
Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de
 [81.169.146.163]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f5d68751-3850-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 10:56:25 +0200 (CEST)
Received: from sender by smtp.strato.de (RZmta 50.5.0 AUTH)
 with ESMTPSA id D05b2e0628uA6j7
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate);
 Tue, 2 Jul 2024 10:56:10 +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: f5d68751-3850-11ef-958a-bbd156597b9e
ARC-Seal: i=1; a=rsa-sha256; t=1719910570; cv=none;
    d=strato.com; s=strato-dkim-0002;
    b=X1Chy8gsUBYWg9sUq+UPu00Xrp63smdO1Y0qlpi0ZLqP118AZDlZEtWtiTbbI8v1Kx
    GFxV8D0Vo80yvTRBd81nR4PycuWZtNYQE3nRvQJivukIOZwIhU6Pk3MQejPnMTJ48un4
    bpzSZyVlBRRy/aFeIMyaEa17/19kmFi3Qg5DXjA5YA3t04m5MXnZE+BU1s8xxW1wKTMR
    7E8ajAsPFlzyy6ZSzfbXXhKhDzOuTLXeb+YqObaiKlMxpU3igWwp1vRQGfjHb/1SUeNP
    r2SiHJTgChp11XVIMvBG4ce7X8qEBwYzR8UZN0WWxxBbVg5lOk098JGmZL2HV6reyvya
    3LHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1719910570;
    s=strato-dkim-0002; d=strato.com;
    h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=k6iXn1DFM7GI0kwzUJdFy5LNSyTfcJ6+z4wH8gquviY=;
    b=HmS2DqaKqIP1yr2cmU0rf0w7PIlW0d5r/drLcS3Tr1aP1VuD3H93mmfp2kQHmYJFTI
    7TY1wA92IX/vccUxM5bqJYTCxNB1zESM8IYwlOW52bwbi87hHDpmWe5cOF29Lu+aSFMx
    OpR2ZCZeLpL0iXDbkX209fKy69qRvsuCFIJFbKUAMoOeZMAC3yMrjTrqYfZep14LlVcE
    Esq/8Rsup5GiwzolOUtrNcMqshUCuGGKVTEPwoS3IqyC58SmZ58sgH4BcmLbEMbrrSlF
    9AO6Z1T+LRMSNFmyJrXjeLxw8M172tiH33giylZ/cJmgtljDs8EvZvEmcz3MJ2CQc/ae
    XP9g==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1719910570;
    s=strato-dkim-0002; d=aepfle.de;
    h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=k6iXn1DFM7GI0kwzUJdFy5LNSyTfcJ6+z4wH8gquviY=;
    b=D3UwwyR+zyeJ+QAqU/NPLqzm8u8CRj2NKS4azHvEITcVYIS9PM8B2K5FxSxVnnN5oS
    BtMZlT8cQkZav65hWUrLNttIfxG1iO0VSTrwRoNYKRWjxBaP6asphF8pDWBsMXr/YNuc
    ljUd8drSfDzzN4i63+kHtl4cCwtZq6Dx6xPj6mLMYMHM8WxJun7lUD0T1/MnY5OvAG50
    i8U/fdXRrqx7fLsfIQWiqYGx5oiaxb8NpcTZ/eF7w5AKYsvFcvlTvWoq5tBZzjMJPu+L
    PMATt3dsJG5R7fjF2nPiduvDHnhVmewacuaMX5+a7eHnc8fVeMxlZDHv1wv6IGK3ncSE
    V/iw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1719910570;
    s=strato-dkim-0003; d=aepfle.de;
    h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=k6iXn1DFM7GI0kwzUJdFy5LNSyTfcJ6+z4wH8gquviY=;
    b=az+WgZVCeKM43PB9AinGjww1PoWlhuiTinyUlSIUwGvlvj/iUI1vY+fM/3ac36velG
    wLCZo2pojUl9V6p7QRDw==
X-RZG-AUTH: ":P2EQZWCpfu+qG7CngxMFH1J+3q8wa/QXkBR9MXjAuzpIG0mv9coXAg4w9Fn7FJotZZVcwVP8B1Lhzkl9HG5EATJPpni8Vg=="
From: Olaf Hering <olaf@aepfle.de>
To: xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1] automation: add python3-packaging to suse images
Date: Tue,  2 Jul 2024 10:56:08 +0200
Message-Id: <20240702085608.3612-1-olaf@aepfle.de>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="us-ascii"

The qemu-xen build system uses gdbus-codegen, which relies on 'packaging'.
Make sure it is available.

[188/2647] Generating ui/dbus-display gdbus-codegen with a custom command
FAILED: ui/dbus-display1.h ui/dbus-display1.c
/usr/bin/gdbus-codegen ../qemu-xen-dir-remote/ui/dbus-display1.xml
  --glib-min-required 2.64 --output-directory /build/tools/qemu-xen-build/ui
  --interface-prefix org.qemu. --c-namespace QemuDBus
  --generate-c-code dbus-display1
Traceback (most recent call last):
  File "/usr/bin/gdbus-codegen", line 53, in <module>
    from codegen import codegen_main
  File "/usr/share/glib-2.0/codegen/codegen_main.py", line 30, in <module>
    from . import dbustypes
  File "/usr/share/glib-2.0/codegen/dbustypes.py", line 22, in <module>
    from . import utils
  File "/usr/share/glib-2.0/codegen/utils.py", line 22, in <module>
    import packaging.version
ModuleNotFoundError: No module named 'packaging'

Signed-off-by: Olaf Hering <olaf@aepfle.de>
---
 automation/build/suse/opensuse-leap.dockerfile       | 1 +
 automation/build/suse/opensuse-tumbleweed.dockerfile | 1 +
 2 files changed, 2 insertions(+)

diff --git a/automation/build/suse/opensuse-leap.dockerfile b/automation/build/suse/opensuse-leap.dockerfile
index 1344cbb0d1..0eea74be15 100644
--- a/automation/build/suse/opensuse-leap.dockerfile
+++ b/automation/build/suse/opensuse-leap.dockerfile
@@ -59,6 +59,7 @@ RUN zypper install -y --no-recommends \
         'pkgconfig(sdl)' \
         'pkgconfig(sdl2)' \
         python3-devel \
+        python3-packaging \
         python3-setuptools \
         # systemd-devel for Xen < 4.19
         systemd-devel \
diff --git a/automation/build/suse/opensuse-tumbleweed.dockerfile b/automation/build/suse/opensuse-tumbleweed.dockerfile
index 2587a3fa4f..caf0d42ce1 100644
--- a/automation/build/suse/opensuse-tumbleweed.dockerfile
+++ b/automation/build/suse/opensuse-tumbleweed.dockerfile
@@ -60,6 +60,7 @@ RUN zypper install -y --no-recommends \
         'pkgconfig(sdl)' \
         'pkgconfig(sdl2)' \
         python3-devel \
+        python3-packaging \
         python3-setuptools \
         # systemd-devel for Xen < 4.19
         systemd-devel \


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 09:20:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 09:20:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752141.1160254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOZgS-0008EN-9Q; Tue, 02 Jul 2024 09:20:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752141.1160254; Tue, 02 Jul 2024 09:20:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOZgS-0008EG-6m; Tue, 02 Jul 2024 09:20:20 +0000
Received: by outflank-mailman (input) for mailman id 752141;
 Tue, 02 Jul 2024 09:20:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=H732=OC=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sOZgR-0008EA-I0
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 09:20:19 +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 4c18bab8-3854-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 11:20:17 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-58b0beaf703so1107890a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 02:20:17 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58614d50464sm5374524a12.69.2024.07.02.02.20.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 02:20: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: 4c18bab8-3854-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719912017; x=1720516817; 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=Am5AKU5CYVlzXMlBULleGZdt7dqJl3EdYaCR7jwAFu8=;
        b=Nk3Bln95iU6/o3QpAMpZDHl0Ik/7fORguYuWAVj8QX/lL4ZdadBjQtGvaOWpju2K86
         vceSWR7dyzcdEZcBUTeSne9LZJn+18liwSJBG1LBM79NMyx6qZFR6xktvXqGWcuPFp3k
         v2abIWD5rKkdmwo1ErobNHc5NmXUg6hNbiBEiwsfugSQcRZDckTEU+zCEi6+l9z7juhr
         r+da+ga7fQC2axmrH/4Kldk2L7Q1l03H655UwZYZhl3G1X5sWRuol5U8fiwah30PbCy1
         SyFPEn7s2h+mfCccO5GsiWMsGpt5mXHBWOVO6TZGrS7jujTGzNaWN8PDZw2ZovI0GyJZ
         OXug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719912017; x=1720516817;
        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=Am5AKU5CYVlzXMlBULleGZdt7dqJl3EdYaCR7jwAFu8=;
        b=cLmFBHrFrsKvKcx5kz9OhlZnlIlIF7MqSd34hI6jkzDxB7vYUTYmqis2UTVHkdx8Bq
         5ipSAtgktunFewApEf0XG+wzeZuQ3usDiZjadyLimHpRsyYvfbZps9IFzLhOtgE37FPD
         ezAoaD3OI7dOHQiDr6qgEK2EvRuydQwje1sg6IKa0pByp0NC+/5U1dZsyEIV3CLW0nGL
         AwkCG4HVFGS7lSbmNDmWY5WUlNW3MHikIU4XuXnnK5I02zctxlpSmo3n5YrPjTx63/LE
         ICD+We9WgyD43F9qT4E7VYUrVVs+sbeOV25/KDmYcghboiushf5F9HRybvYA5sWBVg2B
         Tedw==
X-Gm-Message-State: AOJu0YzvI4aMm3nwbOJDora+7CmJzb9jpmM4GnTM4TAVLtWrWnDlLJeb
	YUE6fzud4zBHq0C7ojXNaQVDGPb6/NaGMIeQYXIy1CljWFePDmiXXVvnm7JXlcc=
X-Google-Smtp-Source: AGHT+IEoCb87+tFLwRVVwSSbEyVxUK6Qfov0xOk39+vIaDdYOByLb4JEhPWggGYmh2GtQFsbWQdvgw==
X-Received: by 2002:a05:6402:2786:b0:582:7e6d:6816 with SMTP id 4fb4d7f45d1cf-5879f0c6348mr5915930a12.8.1719912017377;
        Tue, 02 Jul 2024 02:20:17 -0700 (PDT)
Message-ID: <e31d626f-d806-41ad-bc5a-82eb5fe68ea1@suse.com>
Date: Tue, 2 Jul 2024 11:20:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: add missing MODULE_DESCRIPTION() macros
To: Jeff Johnson <quic_jjohnson@quicinc.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 kernel-janitors@vger.kernel.org
References: <20240611-md-drivers-xen-v1-1-1eb677364ca6@quicinc.com>
 <2ecfd10e-c8f2-458c-bf07-e4472d22bcfe@quicinc.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <2ecfd10e-c8f2-458c-bf07-e4472d22bcfe@quicinc.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 26.06.24 18:46, Jeff Johnson wrote:
> On 6/11/2024 4:54 PM, Jeff Johnson wrote:
>> With ARCH=x86, make allmodconfig && make W=1 C=1 reports:
>> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/xen/xen-pciback/xen-pciback.o
>> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/xen/xen-evtchn.o
>> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/xen/xen-privcmd.o
>>
>> Add the missing invocations of the MODULE_DESCRIPTION() macro.
>>
>> Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com>
>> ---
>> Corrections to these descriptions are welcomed. I'm not an expert in
>> this code so in most cases I've taken these descriptions directly from
>> code comments, Kconfig descriptions, or git logs.  History has shown
>> that in some cases these are originally wrong due to cut-n-paste
>> errors, and in other cases the drivers have evolved such that the
>> original information is no longer accurate.
>> ---
>>   drivers/xen/evtchn.c               | 1 +
>>   drivers/xen/privcmd-buf.c          | 1 +
>>   drivers/xen/privcmd.c              | 1 +
>>   drivers/xen/xen-pciback/pci_stub.c | 1 +
>>   4 files changed, 4 insertions(+)
>>
>> diff --git a/drivers/xen/evtchn.c b/drivers/xen/evtchn.c
>> index f6a2216c2c87..9b7fcc7dbb38 100644
>> --- a/drivers/xen/evtchn.c
>> +++ b/drivers/xen/evtchn.c
>> @@ -729,4 +729,5 @@ static void __exit evtchn_cleanup(void)
>>   module_init(evtchn_init);
>>   module_exit(evtchn_cleanup);
>>   
>> +MODULE_DESCRIPTION("Xen /dev/xen/evtchn device driver");
>>   MODULE_LICENSE("GPL");
>> diff --git a/drivers/xen/privcmd-buf.c b/drivers/xen/privcmd-buf.c
>> index 2fa10ca5be14..0f0dad427d7e 100644
>> --- a/drivers/xen/privcmd-buf.c
>> +++ b/drivers/xen/privcmd-buf.c
>> @@ -19,6 +19,7 @@
>>   
>>   #include "privcmd.h"
>>   
>> +MODULE_DESCRIPTION("Xen Mmap of hypercall buffers");
>>   MODULE_LICENSE("GPL");
>>   
>>   struct privcmd_buf_private {
>> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
>> index 67dfa4778864..b9b784633c01 100644
>> --- a/drivers/xen/privcmd.c
>> +++ b/drivers/xen/privcmd.c
>> @@ -48,6 +48,7 @@
>>   
>>   #include "privcmd.h"
>>   
>> +MODULE_DESCRIPTION("Xen hypercall passthrough driver");
>>   MODULE_LICENSE("GPL");
>>   
>>   #define PRIV_VMA_LOCKED ((void *)1)
>> diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
>> index e34b623e4b41..4faebbb84999 100644
>> --- a/drivers/xen/xen-pciback/pci_stub.c
>> +++ b/drivers/xen/xen-pciback/pci_stub.c
>> @@ -1708,5 +1708,6 @@ static void __exit xen_pcibk_cleanup(void)
>>   module_init(xen_pcibk_init);
>>   module_exit(xen_pcibk_cleanup);
>>   
>> +MODULE_DESCRIPTION("Xen PCI-device stub driver");
>>   MODULE_LICENSE("Dual BSD/GPL");
>>   MODULE_ALIAS("xen-backend:pci");
>>
>> ---
>> base-commit: 83a7eefedc9b56fe7bfeff13b6c7356688ffa670
>> change-id: 20240611-md-drivers-xen-522fc8e7ef08
>>
> 
> Following up to see if anything else is needed from me. Hoping to see this in
> linux-next so I can remove it from my tracking spreadsheet :)

I've pushed the patch to the xen/tip.git for-next branch.


Juergen


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 09:45:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 09:45:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752151.1160265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOa4u-000398-2M; Tue, 02 Jul 2024 09:45:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752151.1160265; Tue, 02 Jul 2024 09: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 1sOa4t-000391-Vm; Tue, 02 Jul 2024 09:45:35 +0000
Received: by outflank-mailman (input) for mailman id 752151;
 Tue, 02 Jul 2024 09:45: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=jWIE=OC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sOa4s-00038v-Pb
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 09:45:34 +0000
Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com
 [2607:f8b0:4864:20::72f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d360aba0-3857-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 11:45:33 +0200 (CEST)
Received: by mail-qk1-x72f.google.com with SMTP id
 af79cd13be357-79c06a06a8eso253268885a.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 02:45:33 -0700 (PDT)
Received: from [10.125.226.166] ([160.101.139.1])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-79d6932c4d0sm430776185a.130.2024.07.02.02.45.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 02:45: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: d360aba0-3857-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719913533; x=1720518333; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ggeOy6WYeXxjc+ugYM8nxhyvF0NE3P/XnvKREEwY8ZA=;
        b=q1OHhNV8nmRLNIrnaotstL66ZQjdHDy/P+U37fCjP0GVU8SO85GSH7jMRFlsSWQxuB
         GTm3JSMMJo0ng5Fgw7UO1P0ntn5JJvp/JpSf4TzIIEHUn8KCqRcQUJQHJBb0ILvdBpVs
         ZSm5JknGjiJL9JkBU+ernxQgU8g5oj4MchGo8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719913533; x=1720518333;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ggeOy6WYeXxjc+ugYM8nxhyvF0NE3P/XnvKREEwY8ZA=;
        b=dQ4dke+Xmo6Thk4de1GOgXJlB45jZj4nYzfoPQVrHyVFCjHi4uO7dXEqa48Xq8+hTJ
         tGXcYmrGuzyl7SP83ZUMh3TW5Pjslj4hJqpFR3rEPNCxt/vZDi8Nb0IACsuwhv3rJMgJ
         tkGDeTjG382vXBD2+sC8vxF5RdUB0klbU84ij95pKWgLD6mnR33wat7e3AIiHd4a3iQL
         T90IIIO7JKnGWvnmnx6DV63nh1eq02m8qKe72Q/XlOWP9T/I5/Eij6PQMVeinTvkSpCw
         1sBTi6MdDolP30ZGR1XzYwWjeJd0OfCOzL38WdiLVF607YyRREhXrhPEdHTang7RrrGc
         4eMA==
X-Forwarded-Encrypted: i=1; AJvYcCWDX3AsLn1zjzg6DiQJpeDLQ9xhc37cDn5BvXPikrwTG+39KR+mYl1unakiHgWqMCm0qOYfMCyTN1KVOO74Wc7RCmNZAtW+Br7iTKaYD3g=
X-Gm-Message-State: AOJu0YxiQ9eRzG6b4ZaVTC38ZAI2hf/M8589WnDEqnPtSerDSyU5/SJy
	Y5hYv5/9X9SVeHSllKMK8Jem8REiTMH0tfI8E/Xkd+45UvyL0YRp/KVEL/T2SRE=
X-Google-Smtp-Source: AGHT+IHysWhDj/uQttrKvo2I0di9oLNdmMWOVKJeaKZwuQ8Jke//NgaL6vI2l1H63Hj3aQA0JNFJvA==
X-Received: by 2002:a05:620a:4510:b0:79d:5fce:5928 with SMTP id af79cd13be357-79d7ba789famr1142377385a.52.1719913532684;
        Tue, 02 Jul 2024 02:45:32 -0700 (PDT)
Message-ID: <93b0cc94-019a-4731-91e0-5cc54ec1c6f8@citrix.com>
Date: Tue, 2 Jul 2024 10:45:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 v1] automation: add python3-packaging to suse
 images
To: Olaf Hering <olaf@aepfle.de>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240702085608.3612-1-olaf@aepfle.de>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240702085608.3612-1-olaf@aepfle.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02/07/2024 9:56 am, Olaf Hering wrote:
> The qemu-xen build system uses gdbus-codegen, which relies on 'packaging'.
> Make sure it is available.
>
> [188/2647] Generating ui/dbus-display gdbus-codegen with a custom command
> FAILED: ui/dbus-display1.h ui/dbus-display1.c
> /usr/bin/gdbus-codegen ../qemu-xen-dir-remote/ui/dbus-display1.xml
>   --glib-min-required 2.64 --output-directory /build/tools/qemu-xen-build/ui
>   --interface-prefix org.qemu. --c-namespace QemuDBus
>   --generate-c-code dbus-display1
> Traceback (most recent call last):
>   File "/usr/bin/gdbus-codegen", line 53, in <module>
>     from codegen import codegen_main
>   File "/usr/share/glib-2.0/codegen/codegen_main.py", line 30, in <module>
>     from . import dbustypes
>   File "/usr/share/glib-2.0/codegen/dbustypes.py", line 22, in <module>
>     from . import utils
>   File "/usr/share/glib-2.0/codegen/utils.py", line 22, in <module>
>     import packaging.version
> ModuleNotFoundError: No module named 'packaging'
>
> Signed-off-by: Olaf Hering <olaf@aepfle.de>

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

Again, CC Oleksii for 4.19.

~Andrew

> ---
>  automation/build/suse/opensuse-leap.dockerfile       | 1 +
>  automation/build/suse/opensuse-tumbleweed.dockerfile | 1 +
>  2 files changed, 2 insertions(+)
>
> diff --git a/automation/build/suse/opensuse-leap.dockerfile b/automation/build/suse/opensuse-leap.dockerfile
> index 1344cbb0d1..0eea74be15 100644
> --- a/automation/build/suse/opensuse-leap.dockerfile
> +++ b/automation/build/suse/opensuse-leap.dockerfile
> @@ -59,6 +59,7 @@ RUN zypper install -y --no-recommends \
>          'pkgconfig(sdl)' \
>          'pkgconfig(sdl2)' \
>          python3-devel \
> +        python3-packaging \
>          python3-setuptools \
>          # systemd-devel for Xen < 4.19
>          systemd-devel \
> diff --git a/automation/build/suse/opensuse-tumbleweed.dockerfile b/automation/build/suse/opensuse-tumbleweed.dockerfile
> index 2587a3fa4f..caf0d42ce1 100644
> --- a/automation/build/suse/opensuse-tumbleweed.dockerfile
> +++ b/automation/build/suse/opensuse-tumbleweed.dockerfile
> @@ -60,6 +60,7 @@ RUN zypper install -y --no-recommends \
>          'pkgconfig(sdl)' \
>          'pkgconfig(sdl2)' \
>          python3-devel \
> +        python3-packaging \
>          python3-setuptools \
>          # systemd-devel for Xen < 4.19
>          systemd-devel \
>



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 09:50:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 09:50:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752163.1160275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOa9T-0004xg-Lq; Tue, 02 Jul 2024 09:50:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752163.1160275; Tue, 02 Jul 2024 09: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 1sOa9T-0004xZ-Iz; Tue, 02 Jul 2024 09:50:19 +0000
Received: by outflank-mailman (input) for mailman id 752163;
 Tue, 02 Jul 2024 09:50: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOa9S-0004xT-1u
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 09:50:18 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7c0a1bd0-3858-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 11:50:16 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2ec52fbb50cso38956041fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 02:50:16 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ee5168c73bsm16151411fa.113.2024.07.02.02.50.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 02: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: 7c0a1bd0-3858-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719913816; x=1720518616; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=LUzOwqpfo6g4gd0h64JKbH28vYKv9WbOfOTaCjENmb4=;
        b=M9uVQmvyq60e2loa8kyNCwdqe6EpafX55fGlGsYEcK/RCGMkJ5T4qoAKq90+DwT00k
         QT9KHJjBqdBmrStNM4BYXhHAo8UI+E+1jWV6nqDiG982k5/agjl2vTPC6Ev7qFnoq6GD
         5Yn6Z0UpmL666P1EjoK9pxcOoeCpTZBJLLVuewTxVBmEq/fRGZ+NAAjoQIv4aJ2+CVCK
         U2dRZlz1tVdm5+v0+7vt0p2GL55ElM116BbcD0GFBpy/pGDnGQYbHf2ybKB24toch9RE
         uFYxSn5A71AiAuV47GuM3xA1aZX8RXOo5X0j15XC5SWzsC4sBxwlfwRSrXSLwR+VCkSO
         L8PQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719913816; x=1720518616;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=LUzOwqpfo6g4gd0h64JKbH28vYKv9WbOfOTaCjENmb4=;
        b=CSrykTnxD5jk9S8GrVkPMoeVAdV2GocmdHvNyF1ulX5QUU9BafON3/PcgsN/Y69fqI
         HttaBMa2y5QCPmDDoPPeoFVA2ccPxCboSIdYvmP8/m860RyNZJ+etIZ2eUoh5PakSdFE
         Q5mhxi6+m+l2XjCF+aWLth3V3DCJLvAvzOhhFf2Fui3XWp+3GOAQgLW3L2dZgyLhXizo
         IEAqMbUeBnmK3qja1wfttp8WrHBGb2msCxqugAlBMW4hd+BGk9C1hK41CTNoHfdebZNm
         3816ScMwmtag1WPxm8Ua4oH/jTOJUqtUJI5qq6zhVw6k6+vsCvnsCCayYekoyVsXDL8c
         yr7g==
X-Gm-Message-State: AOJu0YyU65Z8qyV4/1fUtxi58ZZ31upbJ+XgiJId51qfa/dzqeV2t7K6
	ipGOxitVaTsDhrGg2+gKnpVn5JMPHXxgBWos195L3O1/08w/2bVj
X-Google-Smtp-Source: AGHT+IGY/TuWCLTFSjvAtZ/kB5U66kkENN7Q13ohr7vAAorjQogYYOtRDuCzSdCWJA7+1ZxtJHzk6Q==
X-Received: by 2002:a2e:a7c2:0:b0:2ec:3dd4:75f4 with SMTP id 38308e7fff4ca-2ee5e6e0221mr52769461fa.38.1719913815347;
        Tue, 02 Jul 2024 02:50:15 -0700 (PDT)
Message-ID: <f4ea9d1e7fd17e8ca64461b3df29735c0ee5998c.camel@gmail.com>
Subject: Re: [PATCH v3 for-4.19? 3/3] cmdline: document and enforce
 "extra_guest_irqs" upper bounds
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Roger
 Pau =?ISO-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Date: Tue, 02 Jul 2024 11:50:14 +0200
In-Reply-To: <a733033f-e456-4488-a9f8-845a7874268d@suse.com>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
	 <3c3a1d0c-06f2-a392-b2f9-381bed5c5e7b@suse.com> <ZoJ9Bd2kg3IQ0Z28@macbook>
	 <8ab71a85-6056-4c4f-8513-a21c061a176d@suse.com> <ZoKvP6StEbMTgjrY@macbook>
	 <938e5bd1-4523-4b49-80fa-1c3331587972@suse.com> <ZoLIpulcC7dqtxYR@macbook>
	 <a733033f-e456-4488-a9f8-845a7874268d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-02 at 10:26 +0200, Jan Beulich wrote:
> On 01.07.2024 17:17, Roger Pau Monn=C3=A9 wrote:
> > I think we are in agreement about what needs doing.=C2=A0 I can provide=
:
> >=20
> > Acked-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> >=20
> > With the changes we have agreed to arch_hwdom_irqs().
>=20
> Yet another request for considering for a release-ack.
It doesn't fix any real issue, does it? It just provides limitation of
how many pIRQs can be used by domain.

Anyway this change is low-risk so:
 Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 09:50:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 09:50:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752166.1160285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaA1-0005RP-TP; Tue, 02 Jul 2024 09:50:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752166.1160285; Tue, 02 Jul 2024 09: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 1sOaA1-0005RG-QN; Tue, 02 Jul 2024 09:50:53 +0000
Received: by outflank-mailman (input) for mailman id 752166;
 Tue, 02 Jul 2024 09: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=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOaA0-0005OH-Dv
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 09:50:52 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9101a6b0-3858-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 11:50:51 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2e72224c395so44703061fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 02:50: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
 d2e1a72fcca58-708043b7ef1sm8300023b3a.146.2024.07.02.02.50.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 02:50: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: 9101a6b0-3858-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719913851; x=1720518651; 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=xlU3JLGYsPTMg+fdYDnoNfQQGvLgpez333kOy85g32M=;
        b=OflER6dTcIuniHWAX7KH4JnPoI/BFj5Pxh0lSmDP+2wl/3UCoRY8J7JHJGCjfRe4ut
         2qSZPdA2/XMSGuH/9beVGVPnAUnAUbyQe/GNkiDs7CH6N5UGd8uFiFwTwKs4RKvkUtru
         +aqNhYEoV8/1SzKlhbF+zG91qZ6wZ2h2tJz+DRmLq9XU1bzJj0U2YrCQcB1aiVqAhhtx
         UHpTcRcLM5X1zPBZ9YVYNXSTn8wCbdr3XRTLnrT6CigcCpABqjgBtLM17yiLJajG/039
         e+FZCSXqo8AsNSfYGep6cLnMaQ0ERV2hvUQtuJbMWM6LLbAbmbsja2H1pY8/R9kMSOpC
         LS3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719913851; x=1720518651;
        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=xlU3JLGYsPTMg+fdYDnoNfQQGvLgpez333kOy85g32M=;
        b=G/HZgNkN/vHebSn20m5BFD0qFk4yUNsVyESF5dpr92hJ03/c38vF/wH7DhMVahLyhy
         evS2Oc+AYE/a61bDBYkYihOaHkD5ijclRKxW6A75TeDErXK3ZQQncxclLv1EAlUQXszd
         O3pK6Mt0F0QM8sIJ2J3jDW/Yqz3vMSLm5Y34+pIP5G04NU6pIzzzRdL5Y2EI1T5yWTz6
         wvSzXnwFNyg3er8qLgetVgYKvfkzKy74j84r74ZX6rM38/RlkccYeKzJqbqpy0p8seYx
         AMLjoumvdm6pKuRTB0EyvhzcmRi3F0G7ZosYNqxygfomGD7bchAeaDBpQ3k9SGfktaKE
         tFdQ==
X-Gm-Message-State: AOJu0Yz7uBa6j1/6gfCHqPsHlzc+79+wK9o96UvXm7261c3dzDx6NU4u
	4Et+jk8wZMjlXGtnj90AXL8PCuCN0IWPtJiexPe5LAjRCxbT+AF3JIzWqe4DWdLSH83Ynjy2lXY
	=
X-Google-Smtp-Source: AGHT+IGIz8lvTryiEQ/GBSdLJD1UTP9/gYbaTiE46SoqNogKphMj58bDsO+pJAaHhKscC4Bke9TDMA==
X-Received: by 2002:a2e:91d4:0:b0:2ec:47fa:b0af with SMTP id 38308e7fff4ca-2ee5e36ee9emr49170411fa.22.1719913850946;
        Tue, 02 Jul 2024 02:50:50 -0700 (PDT)
Message-ID: <03f6674c-f2d1-4ec1-995e-a3e25278ceac@suse.com>
Date: Tue, 2 Jul 2024 11:50:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v4 for-4.19? 0/2] new extra_guest_irqs adjustment
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>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.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

New patch 2 addresses a concern raised by Roger when reviewing what is
now patch 1.

1: cmdline: document and enforce "extra_guest_irqs" upper bounds
2: cmdline: "extra_guest_irqs" is inapplicable to PVH

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 09:52:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 09:52:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752172.1160294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaBL-00060s-6k; Tue, 02 Jul 2024 09:52:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752172.1160294; Tue, 02 Jul 2024 09:52:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaBL-00060l-4C; Tue, 02 Jul 2024 09:52:15 +0000
Received: by outflank-mailman (input) for mailman id 752172;
 Tue, 02 Jul 2024 09:52:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOaBJ-00060d-TY
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 09:52:13 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1335896-3858-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 11:52:12 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ec61eeed8eso49284311fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 02:52: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
 d2e1a72fcca58-70803ecf8cdsm8019882b3a.126.2024.07.02.02.52.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 02:52: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: c1335896-3858-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719913932; x=1720518732; 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=UTwYfh4+dc9yq+apCt2SE7M4PIFKpjWEAQB5n6LxZxE=;
        b=aoB83JcOKAarJAWakqAdfazrUkcPL1xAXE5nxFlrLUJzK+xpvboca7tz27u4ohwqxf
         SFB7hjlSylRDiapnzzZnxDe95BF5kjKY9GSh1zLRDKBsXz9Kzj0DjTLB3leoGkoHEJkT
         8Y2YbLKqTjOeolyUsS1VXRXWcz+SEKMxEjRQjJ648tmbNoMTVmHAQkorwhmjbWMcQSz4
         6VIck2Yikspw27nSyQXBDNnrmIXxJw7ZeQQ18UNn08oTMwGrtTspTMj9K5z5MEGkaMoO
         KkrmZEsYE5qgGAJ4UGtlO5YXCqVUE2zlRucY4wCH1UDD1wMUFQTte9lNp4XJErEiEMFW
         aLIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719913932; x=1720518732;
        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=UTwYfh4+dc9yq+apCt2SE7M4PIFKpjWEAQB5n6LxZxE=;
        b=vFX7I91g5Smcpzaipuj12NoeArwUkpASDqIyhvmvH1MTdWbhNBYXixwZ68GqwX+lWH
         DES9dKsPPnbcF/jR/fQ+hoS2nKfwQfGClfr7B4CV/Y0G2hYFtyQAw7/gXluqyhUF2/Ym
         IVf/vAVFGPUhWPO5O2SN+18JgIXPXFCgNV6aWbrjYurZu/U98RCrAJXhpexzJ3mLftKj
         n0A9d222ZZa0zZCT5Z7usoiWKvFC0dPx1hJF6I7Q0cP6SU5ntVlCqwrg5JQdMQSjIwWX
         JbDnUjiwzfW+YzCQnBpNHDdlM0KeO3JxJAWwLoUxmiByL3BgYarCyK8Eri1jHKASwLpk
         r8ow==
X-Gm-Message-State: AOJu0YzRmYIe/N/ArjUa+nNZ/M8kUuFiVKF3qncLCJahM8hRKUk3eenE
	MvGfZaVv3y+SuKHnpEn37NqjdbDHX+GHxXOXGrMgzpzfm6C23ksV2IzH1x2OOP5Ye3JKW1Cpcf4
	=
X-Google-Smtp-Source: AGHT+IHVX7g1f6mraouK3efgcoKG6wstLSIFTOInGxA/V+QOE5vPYhuAU6RGJNiw5UizGFzI+v2pNg==
X-Received: by 2002:a05:651c:1038:b0:2ec:661e:e83e with SMTP id 38308e7fff4ca-2ee5e37537cmr43705131fa.23.1719913931775;
        Tue, 02 Jul 2024 02:52:11 -0700 (PDT)
Message-ID: <c76a60c9-c491-44bd-a6be-0199f0022e3d@suse.com>
Date: Tue, 2 Jul 2024 11:52:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 for-4.19? 1/2] cmdline: document and enforce
 "extra_guest_irqs" upper bounds
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>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <03f6674c-f2d1-4ec1-995e-a3e25278ceac@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: <03f6674c-f2d1-4ec1-995e-a3e25278ceac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

PHYSDEVOP_pirq_eoi_gmfn_v<N> accepting just a single GFN implies that no
more than 32k pIRQ-s can be used by a domain on x86. Document this upper
bound.

To also enforce the limit, (ab)use both arch_hwdom_irqs() (changing its
parameter type) and setup_system_domains(). This is primarily to avoid
exposing the two static variables or introducing yet further arch hooks.

While touching arch_hwdom_irqs() also mark it hwdom-init.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
---
Instead of passing dom_xen into arch_hwdom_irqs(), NULL could also be
used. That would make the connection to setup_system_domains() yet more
weak, though.
---
v4: arch_hwdom_irqs() -> __hwdom_init. Local constant for upper bound in
    arch_hwdom_irqs(). Re-base.
v2: Also enforce these bounds. Adjust doc to constrain the bound to x86
    only. Re-base over new earlier patch.

--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1175,7 +1175,8 @@ common for all domUs, while the optional
 is for dom0.  Changing the setting for domU has no impact on dom0 and vice
 versa.  For example to change dom0 without changing domU, use
 `extra_guest_irqs=,512`.  The default value for Dom0 and an eventual separate
-hardware domain is architecture dependent.
+hardware domain is architecture dependent.  The upper limit for both values on
+x86 is such that the resulting total number of IRQs can't be higher than 32768.
 Note that specifying zero as domU value means zero, while for dom0 it means
 to use the default.
 
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2660,18 +2660,20 @@ void __init ioapic_init(void)
            nr_irqs_gsi, nr_irqs - nr_irqs_gsi);
 }
 
-unsigned int arch_hwdom_irqs(domid_t domid)
+unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d)
 {
     unsigned int n = fls(num_present_cpus());
+    /* Bounded by the domain pirq EOI bitmap gfn. */
+    const unsigned int max_irqs = PAGE_SIZE * BITS_PER_BYTE;
 
-    if ( !domid )
-        n = min(n, dom0_max_vcpus());
-    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, nr_irqs);
+    if ( is_system_domain(d) )
+        return max_irqs;
 
-    /* Bounded by the domain pirq eoi bitmap gfn. */
-    n = min_t(unsigned int, n, PAGE_SIZE * BITS_PER_BYTE);
+    if ( !d->domain_id )
+        n = min(n, dom0_max_vcpus());
+    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, min(nr_irqs, max_irqs));
 
-    printk("Dom%d has maximum %u PIRQs\n", domid, n);
+    printk("%pd has maximum %u PIRQs\n", d, n);
 
     return n;
 }
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -695,7 +695,7 @@ struct domain *domain_create(domid_t dom
             d->nr_pirqs = nr_static_irqs + extra_domU_irqs;
         else
             d->nr_pirqs = extra_hwdom_irqs ? nr_static_irqs + extra_hwdom_irqs
-                                           : arch_hwdom_irqs(domid);
+                                           : arch_hwdom_irqs(d);
         d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
 
         radix_tree_init(&d->pirq_tree);
@@ -829,6 +829,24 @@ void __init setup_system_domains(void)
     if ( IS_ERR(dom_xen) )
         panic("Failed to create d[XEN]: %ld\n", PTR_ERR(dom_xen));
 
+#ifdef CONFIG_HAS_PIRQ
+    /* Bound-check values passed via "extra_guest_irqs=". */
+    {
+        unsigned int n = max(arch_hwdom_irqs(dom_xen), nr_static_irqs);
+
+        if ( extra_hwdom_irqs > n - nr_static_irqs )
+        {
+            extra_hwdom_irqs = n - nr_static_irqs;
+            printk(XENLOG_WARNING "hwdom IRQs bounded to %u\n", n);
+        }
+        if ( extra_domU_irqs > max(32U, n - nr_static_irqs) )
+        {
+            extra_domU_irqs = n - nr_static_irqs;
+            printk(XENLOG_WARNING "domU IRQs bounded to %u\n", n);
+        }
+    }
+#endif
+
     /*
      * Initialise our DOMID_IO domain.
      * This domain owns I/O pages that are within the range of the page_info
--- a/xen/include/xen/irq.h
+++ b/xen/include/xen/irq.h
@@ -202,8 +202,9 @@ extern struct irq_desc *pirq_spin_lock_i
 
 unsigned int set_desc_affinity(struct irq_desc *desc, const cpumask_t *mask);
 
+/* When passed a system domain, this returns the maximum permissible value. */
 #ifndef arch_hwdom_irqs
-unsigned int arch_hwdom_irqs(domid_t domid);
+unsigned int arch_hwdom_irqs(const struct domain *d);
 #endif
 
 #ifndef arch_evtchn_bind_pirq



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 09:52:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 09:52:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752175.1160305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaBt-0006Vh-Fl; Tue, 02 Jul 2024 09:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752175.1160305; Tue, 02 Jul 2024 09:52:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaBt-0006Va-Cd; Tue, 02 Jul 2024 09:52:49 +0000
Received: by outflank-mailman (input) for mailman id 752175;
 Tue, 02 Jul 2024 09:52: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=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOaBs-0006Mf-CT
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 09:52:48 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d5c80c31-3858-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 11:52:46 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2ed5ac077f5so47366021fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 02:52: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
 98e67ed59e1d1-2c91ce74143sm8335506a91.27.2024.07.02.02.52.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 02:52: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: d5c80c31-3858-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719913966; x=1720518766; 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=VBnX+/6xKiRjRhYUk2OK7XDquzH63Fev2vip1fFNQ0g=;
        b=N/pjRku4unzKGj+ToWAM1LwGxASPFFTYvHPTFrHyiYtPV0o5BofZF98cyAjV077bI2
         c7lpDcouhXNFiUJqz+5UAmu4K5whQDbHx1LMgcF1OvoTfMlXQN+mm3SNHoc2xoJu18hP
         ZriUx2zRnUiR7zw7FQ9Z/z2nybNWvBCiAoTyzKM8e7jpai9pH/29fJ1FVWbVyao6P6t7
         BvvoN1/0+xfKRiDom6zS8m5bBQj4ZKCqs/plZZSFQP0PFA8aLKFFr4SOsY+7nSHK3HpN
         dbwG/ORTcnlaYUrStc4myy42ST3rwPoo9GTmM4mBAPTXF4f2U1aVYIzfVs67f1CsNm0w
         RI6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719913966; x=1720518766;
        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=VBnX+/6xKiRjRhYUk2OK7XDquzH63Fev2vip1fFNQ0g=;
        b=nb+rf3DVo0Pqfcf1UZx6VTZZqY9PRkTnn9fzEA+G+UAHPSC0tihAr1SBPJaFUXVM/7
         bI5MtZtmQUGVecn2YDJw1DL1zqJwvpaFwY+KNdIfa/G7oLumjlTEX+Z/tmpqFKcgZ2Pk
         6evrHrIa5lGnYFBr8x07ux/q6RDN1qcdqVqawohfHK7zRncU6IKTOZsgvz9euLQkY4sD
         0mRn0TTTjH8FBbInlqwtk+5cREetMsK1Mmjqs4qGuaAAzezLa+QHz/LRVt9yUubZ+9pQ
         zhlpKNbXRx76mnjQkgPNl+fnuLykdVp0wxFvkXCtjZenQt7pqq+cCJ+Kc/7MA1hGoy4b
         rqXg==
X-Gm-Message-State: AOJu0YyigEKq3xNQq7F7Suv1Ng5DXLOPBrElBXomeU0OWfMCD1H7kpgm
	grICUUyABGvjoMVxens2bPs81T+V6OLiWBi7xXTWtj+n7cS5E3UiVsNdPTK5MGoe96ugWKlgh5U
	=
X-Google-Smtp-Source: AGHT+IEUH28Gz5xnXXUx/qzd6MW8bOSAS/W1n595bfE4XxmfPpYtjztY6wn6swH9magR0Myz5taPEA==
X-Received: by 2002:a05:651c:4cf:b0:2ec:5921:bb21 with SMTP id 38308e7fff4ca-2ee5e3594f0mr57341331fa.10.1719913966250;
        Tue, 02 Jul 2024 02:52:46 -0700 (PDT)
Message-ID: <e95ea1ea-dd11-4994-9d50-308db4c3772e@suse.com>
Date: Tue, 2 Jul 2024 11:52:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 for-4.19? 2/2] cmdline: "extra_guest_irqs" is inapplicable
 to PVH
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>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <03f6674c-f2d1-4ec1-995e-a3e25278ceac@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: <03f6674c-f2d1-4ec1-995e-a3e25278ceac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

PVH in particular has no (externally visible) notion of pIRQ-s. Mention
that in the description of the respective command line option and have
arch_hwdom_irqs() also reflect this (thus suppressing the log message
there as well, as being pretty meaningless in this case anyway).

Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Since the EOI map physdevop-s aren't available to HVM no matter whether
the PVH sub-flavor is meant, the condition could in principle be without
the has_pirq() part. Just that there really isn't any "pure HVM" Dom0.
---
v4: New.

--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1178,7 +1178,8 @@ versa.  For example to change dom0 witho
 hardware domain is architecture dependent.  The upper limit for both values on
 x86 is such that the resulting total number of IRQs can't be higher than 32768.
 Note that specifying zero as domU value means zero, while for dom0 it means
-to use the default.
+to use the default.  Note further that the Dom0 setting has no useful meaning
+for the PVH case; use of the option may have an adverse effect there, though.
 
 ### ext_regions (Arm)
 > `= <boolean>`
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2669,6 +2669,10 @@ unsigned int __hwdom_init arch_hwdom_irq
     if ( is_system_domain(d) )
         return max_irqs;
 
+    /* PVH isn't constrained by the EOI map. */
+    if ( is_hvm_domain(d) && !has_pirq(d) )
+        return nr_irqs;
+
     if ( !d->domain_id )
         n = min(n, dom0_max_vcpus());
     n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, min(nr_irqs, max_irqs));



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 09:53:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 09:53:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752177.1160315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaC6-0006rb-OP; Tue, 02 Jul 2024 09:53:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752177.1160315; Tue, 02 Jul 2024 09:53:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaC6-0006rS-Kp; Tue, 02 Jul 2024 09:53:02 +0000
Received: by outflank-mailman (input) for mailman id 752177;
 Tue, 02 Jul 2024 09:53:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOaC5-0006Mf-Em
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 09:53:01 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dd99214d-3858-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 11:52:59 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52cdbc20faeso5710678e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 02:52:59 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52e7ab3b21esm1750630e87.285.2024.07.02.02.52.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 02:52: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: dd99214d-3858-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719913979; x=1720518779; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=SOpZdXuXKegN/w3QmLeYdMRDXF8OFepEE3JBiJYY1Y0=;
        b=Mi1DKyVHrtPXKhR6UxwU+agWJrtCIt/TYEdlv9LWZ0lA6M3p6HdfBZ0elXzpvw+MAR
         +iwUl8p5h+CVNgAKsXYorpVYQooH6BLIS7Fr6NEPF6W7PSHzmyIxuBeNGVYaRovWawvV
         0V4COogJlX0BlmlRi4XWqDb+Y2DuCCrDLmywv/wN0hdeVIctzhcL2N9IMuu57Pzk885K
         9BkkkQCW6KvbY1tKhkVELL4zigzM0KGLEglXsArYmR1xNGPitZDu68+FrF4PZImbBtM0
         OcR7L6IIyvqYbwOY7WDNqEH/s5u70b3cErO45+rCYKtGmL10dmz1aSb3GtP/MEQNN2YW
         Ii9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719913979; x=1720518779;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SOpZdXuXKegN/w3QmLeYdMRDXF8OFepEE3JBiJYY1Y0=;
        b=HWwi/2BTCpbveJSHVssIb0FdBXOLh09gmrmb5jTigodJLhT1fw+JbdmMoWo6l7yLxc
         1O1yKWH0KuPABFL1J1DzYzR1tTUfgBd17QZ9pKmpknbzXjdW1zbbBgbulQyvow3BaTz4
         pEwUTWyD6puC1E4FxRUcN5K7USywKvW3PaQLvzgfJiFP5C1VyJGkLsiIehZMB0UgKZFh
         zIxRYgn201mwOGcH1EOa3kEG6au1we4SF3tzf28uWmAP/Jq9cPl55qWfvPnQqqlPrb4W
         buss+3bcAFnLJNHKmR1YSwJHFDAn/oaS7F+36ZjwjT7ADLGaycVhT8/qAhmROlI3JKVz
         R4QQ==
X-Forwarded-Encrypted: i=1; AJvYcCWYnZuD+ycE6mcsNuDdRgWcM4jpfb+mpdIlxGTNHOiKPffJ8iTerJJ7Dq0IhlK4FSer2FznRcPqFwA5TuLdBDAh4AS0vpOgok246BSP94I=
X-Gm-Message-State: AOJu0YyGnU4vg1rmugAVeJCcXp4+dcemFWh9vnGqpeDAVSjDpqRAFuJy
	CY/Poii8Ye3ZZ3XgvhHQZsmT7a/zj7Kg2yd6IksFRsS9L5hAy/+A
X-Google-Smtp-Source: AGHT+IH3Ou6I+bA0F1KXq5LY0AsOVjQ6pyZ4xwe+KZqzhGb5sh6gRsezm0YKuSzcqIdfRk6c7nnqZw==
X-Received: by 2002:a05:6512:3d08:b0:52c:dcd4:8953 with SMTP id 2adb3069b0e04-52e8268884amr6644800e87.36.1719913978081;
        Tue, 02 Jul 2024 02:52:58 -0700 (PDT)
Message-ID: <f3a735be19793ebd42f181e650f959e6b32919cd.camel@gmail.com>
Subject: Re: [PATCH for-4.19?] xen: avoid UB in guest handle field accessors
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,  "xen-devel@lists.xenproject.org"
 <xen-devel@lists.xenproject.org>
Cc: George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
  Stefano Stabellini <sstabellini@kernel.org>
Date: Tue, 02 Jul 2024 11:52:57 +0200
In-Reply-To: <0ef2392a-0da8-4cf6-b795-7a704e2ff396@citrix.com>
References: <d0b9a1e0-5c70-42c5-9c63-2e3af82487b2@suse.com>
	 <0ef2392a-0da8-4cf6-b795-7a704e2ff396@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-01 at 16:36 +0100, Andrew Cooper wrote:
> On 24/06/2024 1:28 pm, Jan Beulich wrote:
> > Much like noted in 43d5c5d5f70b ("xen: avoid UB in guest handle
> > arithmetic"), address calculations involved in accessing a struct
> > field
> > can overflow, too. Cast respective pointers to "unsigned long" and
> > convert type checking accordingly. Remaining arithmetic is, despite
> > there possibly being mathematical overflow, okay as per the C99
> > spec:
> > "A computation involving unsigned operands can never overflow,
> > because a
> > result that cannot be represented by the resulting unsigned integer
> > type
> > is reduced modulo the number that is one greater than the largest
> > value
> > that can be represented by the resulting type." The overflow that
> > we
> > need to guard against is checked for in array_access_ok().
> >=20
> > While there add the missing (see {,__}copy_to_guest_offset()) is-
> > not-
> > const checks to {,__}copy_field_to_guest().
> >=20
> > Typically, but not always, no change to generated code; code
> > generation
> > (register allocation) is different for at least
> > common/grant_table.c.
> >=20
> > Signed-off-by: Jan Beulich <jbeulich@suse.com>
>=20
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 09:54:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 09:54:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752190.1160325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaDL-0007dG-6M; Tue, 02 Jul 2024 09:54:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752190.1160325; Tue, 02 Jul 2024 09: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 1sOaDL-0007d9-2L; Tue, 02 Jul 2024 09:54:19 +0000
Received: by outflank-mailman (input) for mailman id 752190;
 Tue, 02 Jul 2024 09: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOaDJ-0007d3-ET
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 09:54:17 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ab7f3d3-3859-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 11:54:15 +0200 (CEST)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-5295e488248so5056183e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 02:54:15 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52e7ab10032sm1755525e87.70.2024.07.02.02.54.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 02:54: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: 0ab7f3d3-3859-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719914055; x=1720518855; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=gURZLjQedFdRgRZH7hmw9O0YrnVLnTjmRqB06Mf0L+g=;
        b=jatWDhGU3uPdXaQtzqPS4cudHNx19Q66Ln5nwXDx7+htDzimB4V6WADtoAl3mlmti3
         5b1D3czosw7RJzW28eoMXlZ+t6iPxEbHv/CS5udWP65sD5MwcCxEU0DHzz/tK+5cZM3l
         QSa4ssWakr8IjDAe3t4qJ6QsH9Db80KoCFYYVo2fqM9lUFKeFOiov88SparZn8pGpRNT
         teNyKMYQjSsefXLV6/7A9c8Ww8VaMRBooGInfRILNsku3SBPUDhqwbKfbD3lbkMgBSEW
         uk+ZX3x1rVsVAhfajzaRpEHA3Q+/A/8GyLgBdtzTIIZHFce8DuufAUIfWtBs+2V5OQpA
         kyDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719914055; x=1720518855;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gURZLjQedFdRgRZH7hmw9O0YrnVLnTjmRqB06Mf0L+g=;
        b=XkunttvOHiX/C3EMpQLowweIlbPMaxr9Vj/eVQz+F7cHid9UfVZoP/ANJFmvGXW7dy
         6uUXfnd1DCy2rh3V7Z7CU+FYSMn6mmHCg4N1FTItpuoTF/wovgbqHZeg3AO8hn6BOOjO
         9xAkf+j4Q1L6AfsS9Tw+yiJ1sBv3EzW9CMJecuUPm+6YEtOIfCghBLmIzqlrzr4Jwid4
         m02zVWFnOHq8FZpJufLOwhIwgwfltVi3g15sQ4rNvXACfHa4p/94RGT4H2uf60tEiMjS
         tmJABlw40bwHP1iht5Ypy/nJU8GfehJgVOT8aqEIJqBbtSjrb94eoZolJ5VrA95d8mhI
         FqDw==
X-Forwarded-Encrypted: i=1; AJvYcCUSgxwjRaij9jXsqTyCQarFHsTrL/Zmrq/U/6uiuEvfGAxa5VVPzc6CgjCjGxJnjH0hP9kJ0bdB7vJuDw0n7pMbR18+HW4vZlwaRCI1gZY=
X-Gm-Message-State: AOJu0YzIGgwhZ1pyIVzPo5okFYMI6XZTiyVVpaIwKP7KmyHZChujXgEZ
	Exe4kDzJoQQwmgWkeivKDP+vBrFYwQsTHQ404sp6IYjZ7zaB19l3
X-Google-Smtp-Source: AGHT+IHcpu07EQMyi69IjlRkzh3FOKOw5w7jUHYZy26TLHoSA36QuuscbeJnByWgPAOGsUvXxezgsw==
X-Received: by 2002:a05:6512:b8c:b0:52c:e171:ba2 with SMTP id 2adb3069b0e04-52e8267191amr5667896e87.17.1719914054915;
        Tue, 02 Jul 2024 02:54:14 -0700 (PDT)
Message-ID: <196a92b89db9935ea6b0adecd10de3277b978dff.camel@gmail.com>
Subject: Re: [PATCH for-4.19] x86/entry: don't clear DF when raising #UD for
 lack of syscall handler
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,  "xen-devel@lists.xenproject.org"
 <xen-devel@lists.xenproject.org>
Cc: Wei Liu <wl@xen.org>, Roger Pau =?ISO-8859-1?Q?Monn=E9?=
	 <roger.pau@citrix.com>
Date: Tue, 02 Jul 2024 11:54:14 +0200
In-Reply-To: <378af810-02ea-4a66-b003-c1303f599e2a@citrix.com>
References: <36cf1c15-faa5-4e25-8fdd-9c52076f4ca2@suse.com>
	 <378af810-02ea-4a66-b003-c1303f599e2a@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-01 at 16:35 +0100, Andrew Cooper wrote:
> On 06/03/2024 1:44 pm, Jan Beulich wrote:
> > --- a/xen/arch/x86/x86_64/entry.S
> > +++ b/xen/arch/x86/x86_64/entry.S
> > @@ -47,12 +55,13 @@ UNLIKELY_START(z, syscall_no_callback) /
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 testb $4, X86_EXC_UD *=
 TRAPINFO_sizeof +
> > TRAPINFO_flags(%rdi)
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 setnz %cl
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 lea=C2=A0=C2=A0 TBF_EX=
CEPTION(, %rcx, TBF_INTERRUPT), %ecx
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 or=C2=A0=C2=A0=C2=A0 $~0, %=
esi=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 # don't clear DF
>=20
> Our predominant comment style is /* */
>=20
> > =C2=A0UNLIKELY_END(syscall_no_callback)
> > =C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 movq=C2=A0 %rax,TRAPBO=
UNCE_eip(%rdx)
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 movb=C2=A0 %cl,TRAPBOU=
NCE_flags(%rdx)
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 call=C2=A0 create_boun=
ce_frame
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 andl=C2=A0 $~X86_EFLAGS_DF,=
UREGS_eflags(%rsp)
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 and=C2=A0=C2=A0 %esi, UREGS=
_eflags(%rsp)
>=20
> Could we gain a /* Conditionally clear DF */ comment here?
>=20
> Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>=20
> CC Oleksii for 4.19.=C2=A0 This fixes a subtle regression in the PV ABI
> caused by a post-XSA fix a few years ago.
>=20
> It's a low-risk fix to take; while I still don't have an XTF test
> covering this, the corner case it's changing used to be completely
> fatal
> to guests, so it's a corner unused in practice.
>=20
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 09:56:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 09:56:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752195.1160335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaEv-0008CY-FD; Tue, 02 Jul 2024 09:55:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752195.1160335; Tue, 02 Jul 2024 09:55:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaEv-0008CR-CP; Tue, 02 Jul 2024 09:55:57 +0000
Received: by outflank-mailman (input) for mailman id 752195;
 Tue, 02 Jul 2024 09:55:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOaEt-0008C8-Ji
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 09:55:55 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45bd28a5-3859-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 11:55:54 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2ec52fbb50aso47041541fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 02:55: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
 d2e1a72fcca58-70802466aedsm8073157b3a.46.2024.07.02.02.55.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 02: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: 45bd28a5-3859-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719914154; x=1720518954; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ju3vLadfwD2kGsscFhv9lR9Kmb/82EFBsN9CfYrynyk=;
        b=aCgSa7UPA9LjaVTsOlREUM062Bp0mAAjTdoUqJ2YoCBtOz7RD01bbk2VnnKtDz3Fyc
         fihepn8Q8N0uM4Df2j1Dc4JkwCGmZzhH/SYbbw5u00I4iUGcNzS2ZMTI2/8ENiiTdJwu
         pF8aKehxeq5J5GW7C64hot99ciBM6HhrsN/yWBeXK7weh3Ya3WvbQipo1ARMxSJgYDmz
         w/5ZzxLseA0cxJtnoBfmSpAntCFF4PPi+HU/yckHBOFMHPQ+KCbJbEPTBHuO9x+9UB+U
         Wazo6EmhAGxzm5YQNOPYBbV5UhARLeZzs+UPJTNd/TpxHKC/1/eptifCFz/OyxG1nn76
         dECA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719914154; x=1720518954;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ju3vLadfwD2kGsscFhv9lR9Kmb/82EFBsN9CfYrynyk=;
        b=TMNShBlBKTCdFqjFlxaA0/Kg1TxqSzsntG0sqDnY/v0FjPvMD5eg2bKvplOT25oWbD
         jV5N/Fe52gPATsg3Hv4AN+C4aAwZ/krwX3Kcp9WGKYq48ZZdh7zKzY5N4hLfrUQfwuz4
         FH5eNKetXIxClSEfAm1qZj3EZdZPJaZdZHiL4izseXAx3TPpAS58XH+FWqR7Tlnfp8Ib
         0zhSTt/nI1HOWIl7rweGGI9cqk8+XO3kc/wHVvBRiPeXn81WbP4mD0LC4ZLmgra131Z/
         Zg9iIESqsFABV3XKg8z8dPp0pIvv67hhx7SKwlP6jjodgTca+MsBpO1zPkt14ZM0EF6N
         RB3A==
X-Gm-Message-State: AOJu0YxL2+IVOfdVn7SAXidtrsoaEubizInZZjmsM/UOGHb4EG8yLvc8
	hZOdD47/l6hU/7GRJE0aPGswcgodY4hXZWgGxKVai5DcUujqvMsJ5Pet7nzc+Q==
X-Google-Smtp-Source: AGHT+IG0mDlsPCiysXwjz4JHRmbXQwLDwJkwmTTrZDq5alw8HP6AOtRjGGDL0/fofRLGuPjPh1Qy9w==
X-Received: by 2002:a2e:9156:0:b0:2ee:493f:d751 with SMTP id 38308e7fff4ca-2ee5e3bef51mr55461621fa.23.1719914154138;
        Tue, 02 Jul 2024 02:55:54 -0700 (PDT)
Message-ID: <ee0f4549-822c-4364-baba-934693d766a2@suse.com>
Date: Tue, 2 Jul 2024 11:55:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 for-4.19? 3/3] cmdline: document and enforce
 "extra_guest_irqs" upper bounds
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7cb0d24e-2bda-dcda-4874-2c01ba179947@suse.com>
 <3c3a1d0c-06f2-a392-b2f9-381bed5c5e7b@suse.com> <ZoJ9Bd2kg3IQ0Z28@macbook>
 <8ab71a85-6056-4c4f-8513-a21c061a176d@suse.com> <ZoKvP6StEbMTgjrY@macbook>
 <938e5bd1-4523-4b49-80fa-1c3331587972@suse.com> <ZoLIpulcC7dqtxYR@macbook>
 <a733033f-e456-4488-a9f8-845a7874268d@suse.com>
 <f4ea9d1e7fd17e8ca64461b3df29735c0ee5998c.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f4ea9d1e7fd17e8ca64461b3df29735c0ee5998c.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.07.2024 11:50, Oleksii wrote:
> On Tue, 2024-07-02 at 10:26 +0200, Jan Beulich wrote:
>> On 01.07.2024 17:17, Roger Pau Monné wrote:
>>> I think we are in agreement about what needs doing.  I can provide:
>>>
>>> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
>>>
>>> With the changes we have agreed to arch_hwdom_irqs().
>>
>> Yet another request for considering for a release-ack.
> It doesn't fix any real issue, does it?

It does address a bug report we had, by folks specifying excessively large
values with that command line option.

> It just provides limitation of how many pIRQs can be used by domain.
> 
> Anyway this change is low-risk so:
>  Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 09:56:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 09:56:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752204.1160345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaFf-0000Iz-PA; Tue, 02 Jul 2024 09:56:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752204.1160345; Tue, 02 Jul 2024 09: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 1sOaFf-0000Is-MN; Tue, 02 Jul 2024 09:56:43 +0000
Received: by outflank-mailman (input) for mailman id 752204;
 Tue, 02 Jul 2024 09:56:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOaFe-0008C8-Pj
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 09:56:42 +0000
Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com
 [2607:f8b0:4864:20::836])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 61a8953a-3859-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 11:56:42 +0200 (CEST)
Received: by mail-qt1-x836.google.com with SMTP id
 d75a77b69052e-44639c3d8e7so23086511cf.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 02:56:42 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-446514cdd81sm38854311cf.97.2024.07.02.02.56.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 02:56: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: 61a8953a-3859-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719914201; x=1720519001; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=gffgVbdNigongINpAx1TItOgFzDT1kwTcILI218UL0A=;
        b=bV4LHPMHpXHdyYQTp4ObNQGbNf92Gc5HVotYMWWDTBB4EnGrncf4IkuSMCm6VD1tIL
         wKQwM6nygg8rw/RseSlukkIVjS9KdZ9tRE7nQvA3pDcI/eq13G6elaRU3M9NpQsJR7tS
         n67Hwfb5bcvZXIQZ1wGyX298KJNjNYjOcoIeAbv7GOq2HON2oYItCrNTYwIGpnqBSTLw
         UpsXjXY9DcZGz+QsWF1MEBVgWRTPLjgX+EpqZg2lHibZkEsL6rGCKWfp8H/lsPf+oTrn
         JIydAFYSdodOvm0ve4Xav+6dZlvisB80Dx/sKDvuT1H7j6mrYipHbWt7bPoC0wCE6df9
         dtXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719914201; x=1720519001;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gffgVbdNigongINpAx1TItOgFzDT1kwTcILI218UL0A=;
        b=gpSkilDuMEIJJufgsx7qjcGKMyYyQZhP2XxMlaYi4geD6947wx/Z4UQZp40QvUHKFb
         LZtBNBptSw8eoz+bXXzp9zPALAA4CLtBMi/1vUhHk5+e88aRZ6ba7qMM/oBnkhLhI+Fr
         HtW22B6J0yJqp5bZTk/RBbGrv73Xz3W6o2tYkhbzYaRIq6JZtR/aVBDi02U5PYAZ+A25
         zTEcnR71DLJThKPDLQAHR895hh7H4CFOy+quo5/y0yb/VGL2rEEuzOFEiujvilKabrS0
         BJh2E29KfreXzJ2SsSXnkmBCrSm1jDGxKnz5xiM9Qnj7LGCi8NCc08oYu41iDGy1ae+g
         z7VQ==
X-Forwarded-Encrypted: i=1; AJvYcCXyiGFKuLWK6dY3KS5YSwUp6dDgbSVW8pD4Zz4xGx2HFVx//gI2W9Ii9ZKnL9CuWgbohppUBddXSdPju6zAI42wqmMYRXWTJyL3puUndnI=
X-Gm-Message-State: AOJu0Yx34L9bFjDRxLf9c0hddmmy/nepe08Tlq0V0z/sK4GcGdMbJsYl
	nRzwhQLQ0uRHmhn8D/NC0V6/62RW9JapUtdgHCwSsobAYoaynTED
X-Google-Smtp-Source: AGHT+IGx0MHJ5c7Pt2TBcarogedOld/1sNI+cXwqTWi3CuNYqmAyd1fmxSBJdKP40PQZGRaxEHBESQ==
X-Received: by 2002:a05:622a:1a29:b0:446:493b:d2b9 with SMTP id d75a77b69052e-44662dfccacmr102846501cf.11.1719914200859;
        Tue, 02 Jul 2024 02:56:40 -0700 (PDT)
Message-ID: <0551e31b19bbdad8aeacb6c76e7651abe1b8ca4d.camel@gmail.com>
Subject: Re: [PATCH v1] automation: add findutils to suse images
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Olaf Hering <olaf@aepfle.de>,
  xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	 <sstabellini@kernel.org>
Date: Tue, 02 Jul 2024 11:56:37 +0200
In-Reply-To: <6231910f-b4c9-4604-83dc-c53e53d30409@citrix.com>
References: <20240701151512.10187-1-olaf@aepfle.de>
	 <6231910f-b4c9-4604-83dc-c53e53d30409@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-01 at 16:20 +0100, Andrew Cooper wrote:
> On 01/07/2024 4:15 pm, Olaf Hering wrote:
> > The build system uses find(1). Make sure it is available.
> >=20
> > Signed-off-by: Olaf Hering <olaf@aepfle.de>
>=20
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>=20
> CC Oleksii.=C2=A0 This is probably non-optional to take.
>=20
> I suspect it means we can't rebuild the OpenSUSE dockerfiles any
> more...
Are we going to rebuild the OpenSUSE dockerfiles in this release?

~ Oleksii
>=20
> > ---
> > =C2=A0automation/build/suse/opensuse-leap.dockerfile=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 | 1 +
> > =C2=A0automation/build/suse/opensuse-tumbleweed.dockerfile | 1 +
> > =C2=A02 files changed, 2 insertions(+)
> >=20
> > diff --git a/automation/build/suse/opensuse-leap.dockerfile
> > b/automation/build/suse/opensuse-leap.dockerfile
> > index 3ef33458a0..1344cbb0d1 100644
> > --- a/automation/build/suse/opensuse-leap.dockerfile
> > +++ b/automation/build/suse/opensuse-leap.dockerfile
> > @@ -20,6 +20,7 @@ RUN zypper install -y --no-recommends \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dev86 \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 diffutils \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 discount \
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 findutils \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 flex \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 gawk \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 gcc \
> > diff --git a/automation/build/suse/opensuse-tumbleweed.dockerfile
> > b/automation/build/suse/opensuse-tumbleweed.dockerfile
> > index a793601c87..2587a3fa4f 100644
> > --- a/automation/build/suse/opensuse-tumbleweed.dockerfile
> > +++ b/automation/build/suse/opensuse-tumbleweed.dockerfile
> > @@ -18,6 +18,7 @@ RUN zypper install -y --no-recommends \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cmake \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 diffutils \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 discount \
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 findutils \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 flex \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 gawk \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 gcc \
> >=20
>=20



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 10:02:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 10:02:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752215.1160370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaKu-0002up-G1; Tue, 02 Jul 2024 10:02:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752215.1160370; Tue, 02 Jul 2024 10:02: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 1sOaKu-0002ui-DV; Tue, 02 Jul 2024 10:02:08 +0000
Received: by outflank-mailman (input) for mailman id 752215;
 Tue, 02 Jul 2024 10:02:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jWIE=OC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sOaKt-0002uc-0W
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 10:02:07 +0000
Received: from mail-qk1-x72e.google.com (mail-qk1-x72e.google.com
 [2607:f8b0:4864:20::72e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 22191ad9-385a-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 12:02:04 +0200 (CEST)
Received: by mail-qk1-x72e.google.com with SMTP id
 af79cd13be357-79c0b73b109so265406985a.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 03:02:04 -0700 (PDT)
Received: from [10.125.226.166] ([160.101.139.1])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-79d6932c935sm432906085a.132.2024.07.02.03.02.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 03:02: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: 22191ad9-385a-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719914524; x=1720519324; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=W5VTcDV6K3FYu/B8FkxqAEo4Le5NpRIuvgvDc93GQQY=;
        b=oaFMRg1Gcjpuok4dO6H5YXe3/MD70YtKp42EIbYyMBXCanqT7wU7w+GCKvTweaFGyQ
         ipEQWzgQhCWb7nm6yuWNtHnRwbgdEazU44EeAYyeGbqQaA+cTEiv6ASXpvLD306QLzrd
         zsxt7xZMOFEA8lHYrZbqy88+Bq8hfZxmILmMU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719914524; x=1720519324;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=W5VTcDV6K3FYu/B8FkxqAEo4Le5NpRIuvgvDc93GQQY=;
        b=gojSsAqm+z/rDjta/hgTfSL3uIzNi8F8hu//FEskIZJeWXf3SSD4zmbVp1mEVNT3mi
         grHfVXq6+0lRtLm3veIrYDI+i7y+5WolzhjNWmqX3W2j+Y3T3WIHBUn9BsT3iXn2AKl2
         bl340G2kPzBoOcnj+T+d5zaxbGzRiXPmzAZLtMDZ93y4tm+u94m8cC3u6gmveR199xMH
         RydWilEmfhgmFO4CfeKb1tlC/hFhyoJ3G72dmvmGbb9UHaoYcZcUe1eIfYs8OvDopEEK
         4VP+RuBdbBfBHk0sZx9KvZWUH7+ylfKo6Lu4U7j53TXBJ0yu6xPgftrGXdDoc/Md+jO5
         3xBQ==
X-Forwarded-Encrypted: i=1; AJvYcCUDQ00JdZHzqupBHT29Ko2K7LCsA3jxF0DaWcEsrYMqJnONAIor3BV5H5ODw80h3C0fi445XDizUXxdmWfXxDbEupK4TvyyYHIOgQjvfhg=
X-Gm-Message-State: AOJu0YwK0RV4Lhx0tbslaRi1U15DwPoAGLXaHsTDat3K2wn5r4hvAMXU
	fEwPHHVs5SmsCgM5JePTIhCJNRBxmKJYGnTDvKG6RaAonIPWxl9IXQw90Vco4AQ=
X-Google-Smtp-Source: AGHT+IG08K+s8ZgGJjqaVAxzX5dTyNw37W4zfRGd1QDksUtELZLju6+mIiKrQqqbku0xO0UrCuVEnQ==
X-Received: by 2002:a05:620a:4509:b0:79d:7084:1240 with SMTP id af79cd13be357-79d7b9ac2e5mr965616785a.6.1719914523273;
        Tue, 02 Jul 2024 03:02:03 -0700 (PDT)
Message-ID: <b6f3001f-6ad9-4833-a0cd-3742df49acb7@citrix.com>
Date: Tue, 2 Jul 2024 11:02:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] automation: add findutils to suse images
To: Oleksii <oleksii.kurochko@gmail.com>, Olaf Hering <olaf@aepfle.de>,
 xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20240701151512.10187-1-olaf@aepfle.de>
 <6231910f-b4c9-4604-83dc-c53e53d30409@citrix.com>
 <0551e31b19bbdad8aeacb6c76e7651abe1b8ca4d.camel@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <0551e31b19bbdad8aeacb6c76e7651abe1b8ca4d.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02/07/2024 10:56 am, Oleksii wrote:
> On Mon, 2024-07-01 at 16:20 +0100, Andrew Cooper wrote:
>> On 01/07/2024 4:15 pm, Olaf Hering wrote:
>>> The build system uses find(1). Make sure it is available.
>>>
>>> Signed-off-by: Olaf Hering <olaf@aepfle.de>
>> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>
>> CC Oleksii.  This is probably non-optional to take.
>>
>> I suspect it means we can't rebuild the OpenSUSE dockerfiles any
>> more...
> Are we going to rebuild the OpenSUSE dockerfiles in this release?

They get rebuilt at arbitrary points.

This patch is about keeping Gitlab CI running smoothly.  It's not
related to Xen 4.19, except by chance.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 10:11:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 10:11:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752221.1160384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaTd-0005CY-A6; Tue, 02 Jul 2024 10:11:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752221.1160384; Tue, 02 Jul 2024 10:11:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaTd-0005CR-7V; Tue, 02 Jul 2024 10:11:09 +0000
Received: by outflank-mailman (input) for mailman id 752221;
 Tue, 02 Jul 2024 10:11:07 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOaTb-0005CB-My; Tue, 02 Jul 2024 10:11:07 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOaTb-0004LX-MD; Tue, 02 Jul 2024 10:11:07 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOaTb-0005ZC-AV; Tue, 02 Jul 2024 10:11:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOaTb-00032H-9V; Tue, 02 Jul 2024 10:11: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=chIMRtlsUnlmL/J7a/ZV9265aQo8CDLenP+C5ayNg4U=; b=y+RAXdXKG12xAymyNVo3g72UcH
	npmT+YjWMeqmZ2QbOYxoiqPLBNj7k9CZ9qMtshj2iiWB+h+bUMfasgPB/i9VAZrJAqJGKiSo6FsUb
	CTnbLS0osg0FzcY9R/Nw3VoY0nzJ16GQ54KudbbVWOHNhu8tu7OfMLl/yyh7IFTs0afw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186625-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186625: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=5eebe58f9e8d6c2901fc6fc8911b6bf2d9a08a92
X-Osstest-Versions-That:
    libvirt=67fdc636bfa14df6e72981717777f1f1aef2a987
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Jul 2024 10:11:07 +0000

flight 186625 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186625/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186565
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              5eebe58f9e8d6c2901fc6fc8911b6bf2d9a08a92
baseline version:
 libvirt              67fdc636bfa14df6e72981717777f1f1aef2a987

Last test of basis   186565  2024-06-29 04:20:25 Z    3 days
Testing same since   186625  2024-07-02 04:18:42 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Göran Uddeborg <goeran@uddeborg.se>
  Jiri Denemark <jdenemar@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Peter Krempa <pkrempa@redhat.com>
  김인수 <simmon@nplob.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   67fdc636bf..5eebe58f9e  5eebe58f9e8d6c2901fc6fc8911b6bf2d9a08a92 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 10:11:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 10:11:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752232.1160402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaUN-0005rq-Pd; Tue, 02 Jul 2024 10:11:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752232.1160402; Tue, 02 Jul 2024 10:11:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaUN-0005rj-N3; Tue, 02 Jul 2024 10:11:55 +0000
Received: by outflank-mailman (input) for mailman id 752232;
 Tue, 02 Jul 2024 10:11:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Cybj=OC=aepfle.de=olaf@srs-se1.protection.inumbo.net>)
 id 1sOaUM-0005jo-7S
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 10:11:54 +0000
Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de
 [81.169.146.218]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 804975f4-385b-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 12:11:52 +0200 (CEST)
Received: from sender by smtp.strato.de (RZmta 50.5.0 AUTH)
 with ESMTPSA id D05b2e062ABc78A
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate);
 Tue, 2 Jul 2024 12:11: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: 804975f4-385b-11ef-a59d-41c015c667e1
ARC-Seal: i=1; a=rsa-sha256; t=1719915098; cv=none;
    d=strato.com; s=strato-dkim-0002;
    b=AmbsJ242lAVe6OuNUJVwuZf28KntQQxaFA8ZtQ5uquN4/lYZy/2p8Ldk1/TiVTVKTI
    FFLHYMpsfA1mhfwW+UjFyj2YUBlpOXAA+RvQZI0wiDRspW54lqu3frMEZC5Rm+KcCU7o
    XchhGw2zHUU5QuusLUYOCbXu/b1P4jKa4n1XtaicHyE30BT0O6nf9Mq7UPIqHDaAunIm
    pBPhkhDbRqLP43aVeTQvOGL3qEXamqDPhIj8uj0qCBk9b82+ZjsEPBWrQkeY1sZZyJAE
    IVXR/cvPTmetbulF4srKsx9LxkDcXjVrn92h91mQNY4npxK0AIkmQzPn8HxiLbOIpVPw
    cTow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1719915098;
    s=strato-dkim-0002; d=strato.com;
    h=References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Cc:Date:
    From:Subject:Sender;
    bh=MXIpvH+UsyUajywBv8eacNPmS83RaqL8sBDhu2M2AsY=;
    b=GtXPgNtUzvNrPcFL2dmZpNw7Xfs4d9Ls6fM/0jSuoiZgXUog5sOtaubm0JGpromdFQ
    B2NNh+N4Dl3NRSEUMIygkQpkb/H5zfi4juAu7Cv1StbNZOrH0KoBBXDJinRu2oj0QgRb
    W5WKlNNUYqhgXkZDtHVhze6hBZ2+S7bJCEQHXs0ftPerKwJTAqB5Q8mKan9UNsngykXE
    nR0lfwIdS96rB/Qd2a7hqh+QQ3crHoQ/b7TQARPb9W8l0kE0nLLORYo9Fv4QVI/EzMPK
    fBGerkZSH5rZFxrNYR4IZjXPW/Eb7sU3dGbsQLaiIQsvvrXldjkKjHoeqhwD8smg1Ptw
    XHJg==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1719915098;
    s=strato-dkim-0002; d=aepfle.de;
    h=References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Cc:Date:
    From:Subject:Sender;
    bh=MXIpvH+UsyUajywBv8eacNPmS83RaqL8sBDhu2M2AsY=;
    b=in8q6dP8tm5JhJ8Otz7UGN5U09iwjn3qD2+13uEZ4U82IVFj5HTQvV/unzkZh9DSMS
    9YC4QI3s6ZITPZ/D5zKxU0h3XA0ZzkLzgSXzimzQVsjOfA+Jy0YP5WQlgOPH72KI7mQG
    rNbEnCjgE75aJGnG37ZfXjfzUNdGshpjpwLh8zsbP896brWNHwNLMEdljsjxnifozqPG
    OcsJ6BvDRrpxCB4ZGjIvjirLOIQuO0qzB2PGp5Vgr+Yuv86uH8iU/v/tfz74Wb8UN7vb
    eTRmuFmIjC1/kMwR9hT0yY7obo9iWTWBHyvdjY7ENV0R0OC+ZvIBFwdBBxGjJTVOPeyY
    xyWg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1719915098;
    s=strato-dkim-0003; d=aepfle.de;
    h=References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Cc:Date:
    From:Subject:Sender;
    bh=MXIpvH+UsyUajywBv8eacNPmS83RaqL8sBDhu2M2AsY=;
    b=1WQfS9CSWx854Bvu6L2j1HtYjh8pSd5u/ZW8jOiXG96OY6R9bMiMs4oK2tCRUCvNga
    EsdYl8eAQWuAjM80RICw==
X-RZG-AUTH: ":P2EQZWCpfu+qG7CngxMFH1J+3q8wa/QLpd5ylWvMDX3y/OuD5rXVisR5WhGIbRzste6KTBtrm2+bHoqLihuNINg5CX8XJw=="
Date: Tue, 2 Jul 2024 12:11:29 +0200
From: Olaf Hering <olaf@aepfle.de>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Oleksii <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org,
 Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
 <sstabellini@kernel.org>
Subject: Re: [PATCH v1] automation: add findutils to suse images
Message-ID: <20240702121129.201a677f.olaf@aepfle.de>
In-Reply-To: <b6f3001f-6ad9-4833-a0cd-3742df49acb7@citrix.com>
References: <20240701151512.10187-1-olaf@aepfle.de>
	<6231910f-b4c9-4604-83dc-c53e53d30409@citrix.com>
	<0551e31b19bbdad8aeacb6c76e7651abe1b8ca4d.camel@gmail.com>
	<b6f3001f-6ad9-4833-a0cd-3742df49acb7@citrix.com>
X-Mailer: Claws Mail (olh) 20240408T134401.7adfa8f7 hat ein Softwareproblem, kann man nichts machen.
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/sZwy_FO6epfsLHFAcIbeH/H";
 protocol="application/pgp-signature"; micalg=pgp-sha256
Content-Transfer-Encoding: 7bit

--Sig_/sZwy_FO6epfsLHFAcIbeH/H
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Tue, 2 Jul 2024 11:02:00 +0100 Andrew Cooper <andrew.cooper3@citrix.com>:

> This patch is about keeping Gitlab CI running smoothly.=C2=A0 It's not
> related to Xen 4.19, except by chance.

It seems the automation/build directory needs to be purged from
non-staging branches, to make it obvious that images need to be
rebuilt from the staging branch only.


Olaf

--Sig_/sZwy_FO6epfsLHFAcIbeH/H
Content-Type: application/pgp-signature
Content-Description: Digitale Signatur von OpenPGP

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

iQIzBAEBCAAdFiEE97o7Um30LT3B+5b/86SN7mm1DoAFAmaD0lEACgkQ86SN7mm1
DoBEkA/9Fmd2znvuX6l0oLEO/hKjxnhxc81Qj8DmGRuC2DVTIU21NLLPDNczTJfu
ZIsBRekQj22SAOVHqeicUsWIw16OXn76LGge+M10caZl+oM322SHdX+09MZQvWgf
kSX7I9Wyz3z0s8RQPndZbe6wXOaLQJku/racVm9mIcBQ79TwsUJgGB5CWMNFbXOt
Va7Tn5v7GyfGVEjV753QeV8s7WRbVIvevU12LENgy16tiSz4Im+34+IqYewPRqp4
YiPr+FOxr2J+BFN2GucxIGC6tUoe6ond3vBgEKyFUC+u4C/51unpy0Amv78ubM7+
Dj1IG6Cynf3rJkH/3WADAM+5qW9pd6rNDwakmVLlTMZrNlBsOKiySNz30D0oRH2z
G8nMOFoaez/wJ4XTM0sEHwbwFOKYb4RjwicHdsnTM2tSq7JmJzV/sxX8R8SFRWH5
Iy39Zr6NfRC85fveUxF3nO0f+Pi4xaG+FAGdbbs4KrcORDKqMkURjQd17CvMhK9m
KbXGLTfZGjzxUx8IKflXJVTalXvcfpvLksbZABx1/X2XqpkVS0b53jb7qrYOI07p
1TsvEmkcHIx8kOaOcxPNuBz0I5owXhd/i46m/sHcjLa9EnlSdsI+9ig8UvYIJ8aM
Ws0DekQUWJnigCW7WFqIFThMajW56M14FlEfCYh6sEGUgiLc1Kk=
=w5eE
-----END PGP SIGNATURE-----

--Sig_/sZwy_FO6epfsLHFAcIbeH/H--


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 10:12:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 10:12:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752238.1160412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaVG-0006Py-35; Tue, 02 Jul 2024 10:12:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752238.1160412; Tue, 02 Jul 2024 10:12:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaVF-0006Pr-W6; Tue, 02 Jul 2024 10:12:49 +0000
Received: by outflank-mailman (input) for mailman id 752238;
 Tue, 02 Jul 2024 10:12: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=H732=OC=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sOaVE-0006Pl-O2
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 10:12:48 +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 a1601ba9-385b-11ef-958a-bbd156597b9e;
 Tue, 02 Jul 2024 12:12:47 +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 B76901FB8F;
 Tue,  2 Jul 2024 10:12: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 61C3913A9A;
 Tue,  2 Jul 2024 10:12:46 +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 eotKFp7Sg2bZPAAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 02 Jul 2024 10:12: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: a1601ba9-385b-11ef-958a-bbd156597b9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1719915166; 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=amqA7d6SNzXfCuotIepj6pkO/m9NKawDxULsnh+YJ7M=;
	b=Vooq79VXQVMyzESvAlFJKYtjRV/5n5dHlALr951xA/ws7VdiiFpBTfJJst8ZZSPyCzp+eY
	AxQK6DjesUhNZI/txY2Beu5IpaeL/AAcSJ0ANq1iwhTw32wbT9ozFmmsSvVBu1zjwaOB0x
	33ArtY/MeYM804w8UbCuaH7aXWqyuJs=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1719915166; 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=amqA7d6SNzXfCuotIepj6pkO/m9NKawDxULsnh+YJ7M=;
	b=Vooq79VXQVMyzESvAlFJKYtjRV/5n5dHlALr951xA/ws7VdiiFpBTfJJst8ZZSPyCzp+eY
	AxQK6DjesUhNZI/txY2Beu5IpaeL/AAcSJ0ANq1iwhTw32wbT9ozFmmsSvVBu1zjwaOB0x
	33ArtY/MeYM804w8UbCuaH7aXWqyuJs=
Message-ID: <17aa46c3-89e9-40aa-bb15-817230712f07@suse.com>
Date: Tue, 2 Jul 2024 12:12:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: privcmd: Switch from mutex to spinlock for
 irqfds
To: Viresh Kumar <viresh.kumar@linaro.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>,
 =?UTF-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
 Manos Pitsidianakis <manos.pitsidianakis@linaro.org>,
 Paolo Bonzini <pbonzini@redhat.com>, Al Viro <viro@zeniv.linux.org.uk>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <a66d7a7a9001424d432f52a9fc3931a1f345464f.1718703669.git.viresh.kumar@linaro.org>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <a66d7a7a9001424d432f52a9fc3931a1f345464f.1718703669.git.viresh.kumar@linaro.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------bwSRyRlr9X9bbK5RyRnvDpgm"
X-Spamd-Result: default: False [-5.18 / 50.00];
	BAYES_HAM(-2.99)[99.94%];
	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];
	NEURAL_HAM_SHORT(-0.20)[-0.997];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	XM_UA_NO_VERSION(0.01)[];
	MID_RHS_MATCH_FROM(0.00)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	RCPT_COUNT_SEVEN(0.00)[10];
	RCVD_TLS_ALL(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	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)[imap1.dmz-prg2.suse.org:helo];
	TO_DN_SOME(0.00)[];
	HAS_ATTACHMENT(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -5.18
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------bwSRyRlr9X9bbK5RyRnvDpgm
Content-Type: multipart/mixed; boundary="------------XbicjrxknHrgY0Dmx8Pxez32";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Viresh Kumar <viresh.kumar@linaro.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>,
 =?UTF-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
 Manos Pitsidianakis <manos.pitsidianakis@linaro.org>,
 Paolo Bonzini <pbonzini@redhat.com>, Al Viro <viro@zeniv.linux.org.uk>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <17aa46c3-89e9-40aa-bb15-817230712f07@suse.com>
Subject: Re: [PATCH 1/2] xen: privcmd: Switch from mutex to spinlock for
 irqfds
References: <a66d7a7a9001424d432f52a9fc3931a1f345464f.1718703669.git.viresh.kumar@linaro.org>
In-Reply-To: <a66d7a7a9001424d432f52a9fc3931a1f345464f.1718703669.git.viresh.kumar@linaro.org>

--------------XbicjrxknHrgY0Dmx8Pxez32
Content-Type: multipart/mixed; boundary="------------dirje0y05bPUMX0EZM5pQS6v"

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

T24gMTguMDYuMjQgMTE6NDIsIFZpcmVzaCBLdW1hciB3cm90ZToNCj4gaXJxZmRfd2FrZXVw
KCkgZ2V0cyBFUE9MTEhVUCwgd2hlbiBpdCBpcyBjYWxsZWQgYnkNCj4gZXZlbnRmZF9yZWxl
YXNlKCkgYnkgd2F5IG9mIHdha2VfdXBfcG9sbCgmY3R4LT53cWgsIEVQT0xMSFVQKSwgd2hp
Y2gNCj4gZ2V0cyBjYWxsZWQgdW5kZXIgc3Bpbl9sb2NrX2lycXNhdmUoKS4gV2UgY2FuJ3Qg
dXNlIGEgbXV0ZXggaGVyZSBhcyBpdA0KPiB3aWxsIGxlYWQgdG8gYSBkZWFkbG9jay4NCj4g
DQo+IEZpeCBpdCBieSBzd2l0Y2hpbmcgb3ZlciB0byBhIHNwaW4gbG9jay4NCj4gDQo+IFJl
cG9ydGVkLWJ5OiBBbCBWaXJvIDx2aXJvQHplbml2LmxpbnV4Lm9yZy51az4NCj4gU2lnbmVk
LW9mZi1ieTogVmlyZXNoIEt1bWFyIDx2aXJlc2gua3VtYXJAbGluYXJvLm9yZz4NCj4gLS0t
DQo+ICAgZHJpdmVycy94ZW4vcHJpdmNtZC5jIHwgMjYgKysrKysrKysrKysrKysrLS0tLS0t
LS0tLS0NCj4gICAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRp
b25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vcHJpdmNtZC5jIGIvZHJp
dmVycy94ZW4vcHJpdmNtZC5jDQo+IGluZGV4IDY3ZGZhNDc3ODg2NC4uNWNlYjZjNTZjZjNl
IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3hlbi9wcml2Y21kLmMNCj4gKysrIGIvZHJpdmVy
cy94ZW4vcHJpdmNtZC5jDQo+IEBAIC0xMyw3ICsxMyw2IEBADQo+ICAgI2luY2x1ZGUgPGxp
bnV4L2ZpbGUuaD4NCj4gICAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+DQo+ICAgI2luY2x1
ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiAtI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+DQoNCkkg
ZG9uJ3QgdGhpbmsgeW91IGNhbiBkcm9wIHRoYXQuIFRoZXJlIGlzIHN0aWxsIHRoZSBpb3Jl
cV9sb2NrIG11dGV4Lg0KDQpJIGNhbiBmaXggdGhhdCB1cCB3aGlsZSBjb21taXR0aW5nLCB3
aXRoIHRoYXQ6DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5j
b20+DQoNCg0KSnVlcmdlbg0K
--------------dirje0y05bPUMX0EZM5pQS6v
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-----

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
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------dirje0y05bPUMX0EZM5pQS6v--

--------------XbicjrxknHrgY0Dmx8Pxez32--

--------------bwSRyRlr9X9bbK5RyRnvDpgm
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/Ey8FAmaD0p0FAwAAAAAACgkQsN6d1ii/Ey/G
TAgAgxymc8CQF5CYediZ4vITMBb9Fg4dKQJ8RmYYdSmCdwfXd66VClavxj2Fm1mzMnzctBhmMaUK
iGjHE3vD5n45nhB0nMLt/8KmMkgTNmakptsRc4TQrMHdwHtlJyfvS7U6kb+oIrf+ZQK7zxAC7V73
dkMcemthSzuGMveWxGd8LYko/amY4S8DRe5xqQvSxj2c1xZYiq/+fO94FnA5AL+Mv+8iEAzTPinn
we3sag+P8mWnJ7cp7ooICrDeadExts9AlDk2EpaWsVMhQT2/5THIdLOO4o8vRb+46d8V3P+uqgG6
qBWhjlzh5D8PqSPGG3nmgwKC9b2m0/hb+9WfFjvU4Q==
=/xXf
-----END PGP SIGNATURE-----

--------------bwSRyRlr9X9bbK5RyRnvDpgm--


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 10:16:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 10:16:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752244.1160423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaYM-0006zz-HC; Tue, 02 Jul 2024 10:16:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752244.1160423; Tue, 02 Jul 2024 10:16: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 1sOaYM-0006zs-EO; Tue, 02 Jul 2024 10:16:02 +0000
Received: by outflank-mailman (input) for mailman id 752244;
 Tue, 02 Jul 2024 10:16: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=H732=OC=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sOaYL-0006zi-KO
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 10:16:01 +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 13c67c65-385c-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 12:15:59 +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 C4DC11FB8F;
 Tue,  2 Jul 2024 10:15:58 +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 79E5E13A9A;
 Tue,  2 Jul 2024 10:15:58 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id V0xSHF7Tg2b/PQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 02 Jul 2024 10:15: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: 13c67c65-385c-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1719915358; 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=5c6FpzIti+eWfNRszsnnTIHx6kEkMn5q+rAztyN+OOc=;
	b=OD5+jMBxeUVuhLxJFaYkBls4ZTPaWREW0qrdFtsJutsp9bE21X/iySl7dVco3IEyUHaMpE
	oai22Jmzrml6WIEoDl2/LV7RlDCNdTdgHy+MaFIXSn2hL3ZU0IoKmd5h2niamf8VTs/Iz6
	a7a28bLc4SfvE50z0IFoT86xy8KqtYw=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1719915358; 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=5c6FpzIti+eWfNRszsnnTIHx6kEkMn5q+rAztyN+OOc=;
	b=OD5+jMBxeUVuhLxJFaYkBls4ZTPaWREW0qrdFtsJutsp9bE21X/iySl7dVco3IEyUHaMpE
	oai22Jmzrml6WIEoDl2/LV7RlDCNdTdgHy+MaFIXSn2hL3ZU0IoKmd5h2niamf8VTs/Iz6
	a7a28bLc4SfvE50z0IFoT86xy8KqtYw=
Message-ID: <caa4f006-6c74-4e16-961f-23ea90e26606@suse.com>
Date: Tue, 2 Jul 2024 12:15:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen: privcmd: Fix possible access to a freed kirqfd
 instance
To: Viresh Kumar <viresh.kumar@linaro.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>,
 =?UTF-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
 Manos Pitsidianakis <manos.pitsidianakis@linaro.org>,
 Paolo Bonzini <pbonzini@redhat.com>, Al Viro <viro@zeniv.linux.org.uk>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <a66d7a7a9001424d432f52a9fc3931a1f345464f.1718703669.git.viresh.kumar@linaro.org>
 <9e884af1f1f842eacbb7afc5672c8feb4dea7f3f.1718703669.git.viresh.kumar@linaro.org>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <9e884af1f1f842eacbb7afc5672c8feb4dea7f3f.1718703669.git.viresh.kumar@linaro.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------vNbPq7aM1m304EPqGEZJw5CF"
X-Spamd-Result: default: False [-5.19 / 50.00];
	BAYES_HAM(-3.00)[99.98%];
	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];
	NEURAL_HAM_SHORT(-0.20)[-0.997];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	XM_UA_NO_VERSION(0.01)[];
	MID_RHS_MATCH_FROM(0.00)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	RCPT_COUNT_SEVEN(0.00)[10];
	RCVD_TLS_ALL(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	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)[imap1.dmz-prg2.suse.org:helo];
	TO_DN_SOME(0.00)[];
	HAS_ATTACHMENT(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -5.19
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------vNbPq7aM1m304EPqGEZJw5CF
Content-Type: multipart/mixed; boundary="------------bfEDlRNX409QIsoi0YiGkMmp";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Viresh Kumar <viresh.kumar@linaro.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>,
 =?UTF-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
 Manos Pitsidianakis <manos.pitsidianakis@linaro.org>,
 Paolo Bonzini <pbonzini@redhat.com>, Al Viro <viro@zeniv.linux.org.uk>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <caa4f006-6c74-4e16-961f-23ea90e26606@suse.com>
Subject: Re: [PATCH 2/2] xen: privcmd: Fix possible access to a freed kirqfd
 instance
References: <a66d7a7a9001424d432f52a9fc3931a1f345464f.1718703669.git.viresh.kumar@linaro.org>
 <9e884af1f1f842eacbb7afc5672c8feb4dea7f3f.1718703669.git.viresh.kumar@linaro.org>
In-Reply-To: <9e884af1f1f842eacbb7afc5672c8feb4dea7f3f.1718703669.git.viresh.kumar@linaro.org>

--------------bfEDlRNX409QIsoi0YiGkMmp
Content-Type: multipart/mixed; boundary="------------LcRNsKzCVhVRgiby5Uy30j3B"

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

T24gMTguMDYuMjQgMTE6NDIsIFZpcmVzaCBLdW1hciB3cm90ZToNCj4gTm90aGluZyBwcmV2
ZW50cyBzaW11bHRhbmVvdXMgaW9jdGwgY2FsbHMgdG8gcHJpdmNtZF9pcnFmZF9hc3NpZ24o
KSBhbmQNCj4gcHJpdmNtZF9pcnFmZF9kZWFzc2lnbigpLiBJZiB0aGF0IGhhcHBlbnMsIGl0
IGlzIHBvc3NpYmxlIHRoYXQgYSBraXJxZmQNCj4gY3JlYXRlZCBhbmQgYWRkZWQgdG8gdGhl
IGlycWZkc19saXN0IGJ5IHByaXZjbWRfaXJxZmRfYXNzaWduKCkgbWF5IGdldA0KPiByZW1v
dmVkIGJ5IGFub3RoZXIgdGhyZWFkIGV4ZWN1dGluZyBwcml2Y21kX2lycWZkX2RlYXNzaWdu
KCksIHdoaWxlIHRoZQ0KPiBmb3JtZXIgaXMgc3RpbGwgdXNpbmcgaXQgYWZ0ZXIgZHJvcHBp
bmcgdGhlIGxvY2tzLg0KPiANCj4gVGhpcyBjYW4gbGVhZCB0byBhIHNpdHVhdGlvbiB3aGVy
ZSBhbiBhbHJlYWR5IGZyZWVkIGtpcnFmZCBpbnN0YW5jZSBtYXkNCj4gYmUgYWNjZXNzZWQg
YW5kIGNhdXNlIGtlcm5lbCBvb3BzLg0KPiANCj4gVXNlIFNSQ1UgbG9ja2luZyB0byBwcmV2
ZW50IHRoZSBzYW1lLCBhcyBpcyBkb25lIGZvciB0aGUgS1ZNDQo+IGltcGxlbWVudGF0aW9u
IGZvciBpcnFmZHMuDQo+IA0KPiBSZXBvcnRlZC1ieTogQWwgVmlybyA8dmlyb0B6ZW5pdi5s
aW51eC5vcmcudWs+DQo+IFN1Z2dlc3RlZC1ieTogUGFvbG8gQm9uemluaSA8cGJvbnppbmlA
cmVkaGF0LmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogVmlyZXNoIEt1bWFyIDx2aXJlc2gua3Vt
YXJAbGluYXJvLm9yZz4NCg0KUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0Bz
dXNlLmNvbT4NCg0KDQpKdWVyZ2VuDQoNCg==
--------------LcRNsKzCVhVRgiby5Uy30j3B
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-----

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
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------LcRNsKzCVhVRgiby5Uy30j3B--

--------------bfEDlRNX409QIsoi0YiGkMmp--

--------------vNbPq7aM1m304EPqGEZJw5CF
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/Ey8FAmaD014FAwAAAAAACgkQsN6d1ii/Ey9F
2Af9G2bTYkaQWX7eoG1traTfwVEXh2kaT6N+v0acS4SKEcvcCd8kpao7Q3S21Ldk71bcI/Wy2Kgy
2sggiVBjbf6RuwiZAs+0RXQ1eG1N7L8J2RQj37T1cQ3ruTlNv7sWO7l9GxDrV6PUVFFJPbXDbrmw
Bq5iFG1KXoLfSoAjCZNMM0dVaKPsa4/IVkGqgd4TBGHD+vq33LdaUB59Jsw59942rrRBnNzRtQg8
mLw/OA8szcAWjaFujuSbqm6Ig1F3Se1LTnVFf9uhxCbVqd9crFxmszTjyd+ZwDpMQD54wvROlO5D
UlXLAtz/YoQ862q+S4PCWqkr/awaWyzRYF3B5bNQEw==
=sUU/
-----END PGP SIGNATURE-----

--------------vNbPq7aM1m304EPqGEZJw5CF--


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 10:17:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 10:17:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752252.1160432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaZr-0007b5-UN; Tue, 02 Jul 2024 10:17:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752252.1160432; Tue, 02 Jul 2024 10:17:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOaZr-0007ay-Re; Tue, 02 Jul 2024 10:17:35 +0000
Received: by outflank-mailman (input) for mailman id 752252;
 Tue, 02 Jul 2024 10:17:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FvPd=OC=linaro.org=viresh.kumar@srs-se1.protection.inumbo.net>)
 id 1sOaZq-0007ao-BB
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 10:17:34 +0000
Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com
 [2607:f8b0:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4aac15fb-385c-11ef-a59d-41c015c667e1;
 Tue, 02 Jul 2024 12:17:32 +0200 (CEST)
Received: by mail-pl1-x62c.google.com with SMTP id
 d9443c01a7336-1f9cd92b146so25955035ad.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 03:17:32 -0700 (PDT)
Received: from localhost ([122.172.82.13]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-1fac1549e59sm82771525ad.179.2024.07.02.03.17.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 03:17: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: 4aac15fb-385c-11ef-a59d-41c015c667e1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1719915450; x=1720520250; 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=4pKTTPmrnQobxgE7l8dU8flNulXP3EKlbQMbrPlJki0=;
        b=atVXrH5p2fMLTF3AMsNrx6H49uTAapb7wDwEp6iTri/9/XZ9iMzPpCDYzE8wqzqvSY
         fD37YioAP1z4ckzibx07ygcZAAeo3IdB0X/p3nVhNxdQJODevYLkt00CUmpgK0wXiPQ3
         /9ME8i8y+jPn6FPU16BL2W7a10lxYFK2e+/LPerJ5ECVWb9tpx/4I70R9z6Wmx1h04GP
         WX0q1B9tP04qZG7N1e3suvUBj6/Mr7Fl7UBYf1OGd06xGSXmKkkqmPUkATZPGXchGV1N
         /m8B4yM9f6OnvfcC4MeoT3QXcto+ad6BzPVQtyQvUquvdL/mt/1of+m+7VgYzFmnue6z
         /Ipw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719915450; x=1720520250;
        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=4pKTTPmrnQobxgE7l8dU8flNulXP3EKlbQMbrPlJki0=;
        b=uMlXOGJYrO3+tYSyFZBj98osa0rCfeS3+AIPitVNTtDq6DtYghCAx7ZAFaoA8YnZpx
         RpsE6VbwMk7sd1/+yIXAsZN+JuGxogF05IDeSKHm/+8jsvVREvFasf8cPaVVsKw9WhgB
         /gS6LgquPHi/HrHQUVmoHbBsn55rC8OGvoNFeb79xZubZGh5kDw5S+KT43u1TkA6szYk
         gUW+vKshdPaUSqUKactjV+fh0Vi2TerAyI142+n4vMmDAU0Ev7pNvKO7ayHNQLNrO849
         D7uzFtbW5JIH8XFLWomDCgcRJjeKbzOlgiacJUhEoOlOJq6fb3N2FAtUWvxyUQOn7oRB
         c+zw==
X-Forwarded-Encrypted: i=1; AJvYcCVFyJPnh8Tr6DLxw7PBrZgA/T3zHviN991piuhJRDH+U4Z7PiZATCWbDSvUcyEnTtZGa+gtc018/cJBUlahZY17S70w5V4Y0RmoCm8yGv4=
X-Gm-Message-State: AOJu0YyZBj1wY2F7pKYkFtPBdLx5OsOfcxrU8qW5AIV7yoZYq3f6+46q
	u5xNGfVXrLn0L9VzqR8f89RuHkFCLs42tbJfz666vLlHSuvHjgM25/2XCKWNF3o=
X-Google-Smtp-Source: AGHT+IHMrBbMSgnyrBXJhkELUhdwwa1R4OK+0ew1rSLs2lXmY8A6OkIB5/dasHrqflqjUaIo8Xz5rw==
X-Received: by 2002:a17:902:c40c:b0:1f9:b1a4:d43e with SMTP id d9443c01a7336-1fadbc96accmr80929285ad.20.1719915450474;
        Tue, 02 Jul 2024 03:17:30 -0700 (PDT)
Date: Tue, 2 Jul 2024 15:47:27 +0530
From: Viresh Kumar <viresh.kumar@linaro.org>
To: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Alex =?utf-8?Q?Benn=C3=A9e?= <alex.bennee@linaro.org>,
	Manos Pitsidianakis <manos.pitsidianakis@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Al Viro <viro@zeniv.linux.org.uk>, xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] xen: privcmd: Switch from mutex to spinlock for
 irqfds
Message-ID: <20240702101727.nytmrgdzcebtinbt@vireshk-i7>
References: <a66d7a7a9001424d432f52a9fc3931a1f345464f.1718703669.git.viresh.kumar@linaro.org>
 <17aa46c3-89e9-40aa-bb15-817230712f07@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <17aa46c3-89e9-40aa-bb15-817230712f07@suse.com>

On 02-07-24, 12:12, Juergen Gross wrote:
> On 18.06.24 11:42, Viresh Kumar wrote:
> > irqfd_wakeup() gets EPOLLHUP, when it is called by
> > eventfd_release() by way of wake_up_poll(&ctx->wqh, EPOLLHUP), which
> > gets called under spin_lock_irqsave(). We can't use a mutex here as it
> > will lead to a deadlock.
> > 
> > Fix it by switching over to a spin lock.
> > 
> > Reported-by: Al Viro <viro@zeniv.linux.org.uk>
> > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> > ---
> >   drivers/xen/privcmd.c | 26 +++++++++++++++-----------
> >   1 file changed, 15 insertions(+), 11 deletions(-)
> > 
> > diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
> > index 67dfa4778864..5ceb6c56cf3e 100644
> > --- a/drivers/xen/privcmd.c
> > +++ b/drivers/xen/privcmd.c
> > @@ -13,7 +13,6 @@
> >   #include <linux/file.h>
> >   #include <linux/kernel.h>
> >   #include <linux/module.h>
> > -#include <linux/mutex.h>
> 
> I don't think you can drop that. There is still the ioreq_lock mutex.

You are right. The header got included from somewhere else I believe
since the build didn't fail for me.

> I can fix that up while committing, with that:
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>

Thanks.

-- 
viresh


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:01:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752280.1160456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGc-0000Z3-HR; Tue, 02 Jul 2024 11:01:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752280.1160456; Tue, 02 Jul 2024 11: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 1sObGc-0000Yv-D3; Tue, 02 Jul 2024 11:01:46 +0000
Received: by outflank-mailman (input) for mailman id 752280;
 Tue, 02 Jul 2024 11:01:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObGa-0000Yf-Kn
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:01:44 +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 76849f6b-3862-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 13:01:42 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a72988749f0so605710066b.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:01:41 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7516310768sm269306866b.218.2024.07.02.04.01.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04: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: 76849f6b-3862-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719918101; x=1720522901; 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=VseXVwK7PdqYilTQ2Brl9sl5/J9tRpKpCtSSq7n/V58=;
        b=fqu4U82iWzJXUk10zR2rkGMZHhkrJ4wm8zKzPl4nNz92PDQHtQRvyPs0KK3VCbfJ3e
         l49aYXE6v5VZ0/Qyl9MIWSO8E/zyexchYEXkbHCCv5XIISM+4VyXg+9Aaj9jQizv2/9u
         kgsfsf0BV97cPZnw8/GNtdJTWn2NFLVvdivNOeA7CYISgruV+r+PAhkevV8v3VkoJGQK
         5A4PVJDFFImCamsK1XCkzbC7PIKoI2nLH71Fnhz5zaj+8789L+S/A7m+aenj/+X1jJjf
         rr7yt/eDJBwaJUVWrosB+xyNRtAkRC/Al0Ae7ZO/MF6HP5rHRMdTTAXYnOAHSYi5JJZ3
         zDHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719918101; x=1720522901;
        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=VseXVwK7PdqYilTQ2Brl9sl5/J9tRpKpCtSSq7n/V58=;
        b=KIoUlEo5Hd9dxVaUWRg0yYsMpksED3v/inyE/w2/+MMvMgw3uiB8LkQX0neNcN2jXc
         0OdsdBTh/IoPRZZBWCHaRzwXia6cGvQI6R7E9Cepy7i//CHA7TNM994OLE//cn8+l3YJ
         HjQLWGnQNvIJnU/y+6C/rLUfIMegSOSZqJTKhRYgH0I8g9VGXt1EZryD3L/99zB8+Dsd
         6D7rAZ8I7qQ+Hp0Cb0nDkGlF0oLLeolch7dwFAu1H6yogJH/WMf0j+Ffo+9NFQSiw2dc
         I47OX0C4QAtT0SlWzK7F35eCwinlExnz9R+cHglngh+IZHSqZVH2ovl3fWtp8SVQZ/FK
         Dlew==
X-Gm-Message-State: AOJu0YxgaC2rFV1mcE59/y8s0OoQ6MKtLdxwUQVpfAG52zLbMjVua+Zm
	WmeHaAjXEk9+VTGmz4nr2SdO9UwRzDRA+m6ikDIJclyXRvE7WssGPuUJb/CS
X-Google-Smtp-Source: AGHT+IGk64DbJh7RWACrFPqxxx/LhzPUXBzkFo5wjGPgm/YkGa/v8iX+lzh5+4w3I18mQvB77ZXZ7g==
X-Received: by 2002:a17:906:1ece:b0:a72:8c15:c73e with SMTP id a640c23a62f3a-a75144f638dmr495444566b.55.1719918100586;
        Tue, 02 Jul 2024 04:01:40 -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>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.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>
Subject: [PATCH for 4.20 v14 0/9] Enable build of full Xen for RISC-V
Date: Tue,  2 Jul 2024 13:01:27 +0200
Message-ID: <cover.1719917348.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch series performs all of the additions necessary to drop the
build overrides for RISCV and enable the full Xen build. Except in cases
where compatibile implementations already exist (e.g. atomic.h and
bitops.h), the newly added definitions are simple.

The patch series is based on the following patch series:
 - [PATCH 3/3] xen/ppc: Avoid using the legacy __read_mostly/__ro_after_init definitions [1]

The link to the branch with rebased patches on top of [1] could be found here:
  https://gitlab.com/xen-project/people/olkur/xen/-/commits/riscv-full-xen-build-v13

[1] https://lore.kernel.org/xen-devel/20240621201928.319293-4-andrew.cooper3@citrix.com/

---
Changes in V14:
 - Update the cover letter message ( add tag 4.20 and drop a request to have this
   patch series in 4.19 ).
 - The following patch were merged to staging:
     [PATCH v13 07/10] xen/common: fix build issue for common/trace.c
 - Other changes are specific to specific patches. Please look at changes for
   specific patch.   
---
Changes in V13:
 - Patch was merged to staging:
   - [PATCH v12 ] xen/riscv: Update Kconfig in preparation for a full
 - Rebase on top of the current staging.
 - Update cover letter message
 - It was added 2 new patches ( patches 8 and 9 ) which are not necessary for testing environment we
   have in CI but they improves compatability with older gcc and binutils.
 - It was added patch 10 as a clean up of [PATCH v12 2/8] xen: introduce generic non-atomic test_*bit()
   for x86.
 - Drop [PATCH v12 4/8] xen/riscv: add definition of __read_mostly as it was defined as generic now
   for all architectures.
 - It was added the patch [PATCH v13 07/10] xen/common: fix build issue for common/trace.c
   to resolve compilation issue for RISC-V after reabsing on top of current staging.
 - Other changes are specific to specific patches. Please look at changes for
   specific patch.
---
Changes in V12:
 - Rebase the patch series on top of [1] mentioned above.
 - Update the cover letter message.
 - "[PATCH v11 3/9] xen/bitops: implement fls{l}() in common logic" was droped
   as it is a part of patch series [1] mentioned above.
 - Other changes are specific to specific patches. Please look at changes for
   specific patch.
---
Changes in V11:
  - Patch was merged to staging:
    - [PATCH v10 05/14] xen/riscv: introduce cmpxchg.h
	  - [PATCH v10 06/14] xen/riscv: introduce atomic.h
	  - [PATCH v10 07/14] xen/riscv: introduce monitor.h
	  - [PATCH v10 09/14] xen/riscv: add required things to current.h
	  - [PATCH v10 11/14] xen/riscv: introduce vm_event_*() functions
 - Other changes are specific to specific patches. Please look at changes for
   specific patch.
---
Changes in V10:
  - Patch was merged to staging:
    - [PATCH v9 04/15] xen/bitops: put __ffs() into linux compatible header
 - Other changes are specific to specific patches. Please look at changes for
   specific patch.
---
Changes in V9:
 - Patch was merged to staging:
    - [PATCH v8 07/17] xen/riscv: introduce io.h
  	- [PATCH v7 14/19] xen/riscv: add minimal stuff to page.h to build full Xen
 - Other changes are specific to specific patches. Please look at changes for
   specific patch.
---
Changes in V8:
 - Patch was merged to staging:
    - [PATCH v7 01/19] automation: introduce fixed randconfig for RISC-V
    - [PATCH v7 03/19] xen/riscv: introduce extenstion support check by compiler
 - Other changes are specific to specific patches. Please look at changes for
   specific patch.
 - Update the commit message:
     - drop the dependency from STATIC_ASSERT_UNREACHABLE() implementation.
     - Add suggestion to merge arch-specific changes related to __read_mostly.
---
Changes in V7:
 - Patch was merged to staging:
   [PATCH v6 15/20] xen/riscv: add minimal stuff to processor.h to build full Xen.
 - Other changes are specific to specific patches. Please look at changes for
   specific patch.
---
Changes in V6:
 - Update the cover letter message: drop already merged dependecies and add
   a new one.
 - Patches were merged to staging:
   - [PATCH v5 02/23] xen/riscv: use some asm-generic headers ( even v4 was
     merged to staging branch, I just wasn't apply changes on top of the latest staging branch )
   - [PATCH v5 03/23] xen/riscv: introduce nospec.h
   - [PATCH v5 10/23] xen/riscv: introduces acrquire, release and full barriers
 - Introduce new patches:
   - xen/riscv: introduce extenstion support check by compiler
   - xen/bitops: put __ffs() and ffz() into linux compatible header
   - xen/bitops: implement fls{l}() in common logic
 - The following patches were dropped:
   - drop some patches related to bitops operations as they were introduced in another
     patch series [...]
   - introduce new version for generic __ffs(), ffz() and fls{l}().
 - Merge patch from patch series "[PATCH v9 0/7]  Introduce generic headers" to this patch
   series as only one patch left in the generic headers patch series and it is more about
   RISC-V.
 - Other changes are specific to specific patches. please look at specific patch.
---
Changes in V5:
 - Update the cover letter as one of the dependencies were merged to staging.
 - Was introduced asm-generic for atomic ops and separate patches for asm-generic bit ops
 - Moved fence.h to separate patch to deal with some patches dependecies on fence.h
 - Patches were dropped as they were merged to staging:
   * [PATCH v4 03/30] xen: add support in public/hvm/save.h for PPC and RISC-V
   * [PATCH v4 04/30] xen/riscv: introduce cpufeature.h
   * [PATCH v4 05/30] xen/riscv: introduce guest_atomics.h
   * [PATCH v4 06/30] xen: avoid generation of empty asm/iommu.h
   * [PATCH v4 08/30] xen/riscv: introduce setup.h
   * [PATCH v4 10/30] xen/riscv: introduce flushtlb.h
   * [PATCH v4 11/30] xen/riscv: introduce smp.h
   * [PATCH v4 15/30] xen/riscv: introduce irq.h
   * [PATCH v4 16/30] xen/riscv: introduce p2m.h
   * [PATCH v4 17/30] xen/riscv: introduce regs.h
   * [PATCH v4 18/30] xen/riscv: introduce time.h
   * [PATCH v4 19/30] xen/riscv: introduce event.h
   * [PATCH v4 22/30] xen/riscv: define an address of frame table
 - Other changes are specific to specific patches. please look at specific patch
---
Changes in V4:
 - Update the cover letter message: new patch series dependencies.
 - Some patches were merged to staging, so they were dropped in this patch series:
     [PATCH v3 09/34] xen/riscv: introduce system.h
     [PATCH v3 18/34] xen/riscv: introduce domain.h
     [PATCH v3 19/34] xen/riscv: introduce guest_access.h
 - Was sent out of this patch series:
     [PATCH v3 16/34] xen/lib: introduce generic find next bit operations
 - [PATCH v3 17/34] xen/riscv: add compilation of generic find-next-bit.c was
   droped as CONFIG_GENERIC_FIND_NEXT_BIT was dropped.
 - All other changes are specific to a specific patch.
---
Changes in V3:
 - Update the cover letter message
 - The following patches were dropped as they were merged to staging:
    [PATCH v2 03/39] xen/riscv:introduce asm/byteorder.h
    [PATCH v2 04/39] xen/riscv: add public arch-riscv.h
    [PATCH v2 05/39] xen/riscv: introduce spinlock.h
    [PATCH v2 20/39] xen/riscv: define bug frame tables in xen.lds.S
    [PATCH v2 34/39] xen: add RISCV support for pmu.h
    [PATCH v2 35/39] xen: add necessary headers to common to build full Xen for RISC-V
 - Instead of the following patches were introduced new:
    [PATCH v2 10/39] xen/riscv: introduce asm/iommu.h
    [PATCH v2 11/39] xen/riscv: introduce asm/nospec.h
 - remove "asm/"  for commit messages which start with "xen/riscv:"
 - code style updates.
 - add emulation of {cmp}xchg_* for 1 and 2 bytes types.
 - code style fixes.
 - add SPDX and footer for the newly added headers.
 - introduce generic find-next-bit.c.
 - some other mionor changes. ( details please find in a patch )
---
Changes in V2:
  - Drop the following patches as they are the part of [2]:
      [PATCH v1 06/57] xen/riscv: introduce paging.h
      [PATCH v1 08/57] xen/riscv: introduce asm/device.h
      [PATCH v1 10/57] xen/riscv: introduce asm/grant_table.h
      [PATCH v1 12/57] xen/riscv: introduce asm/hypercall.h
      [PATCH v1 13/57] xen/riscv: introduce asm/iocap.h
      [PATCH v1 15/57] xen/riscv: introduce asm/mem_access.h
      [PATCH v1 18/57] xen/riscv: introduce asm/random.h
      [PATCH v1 21/57] xen/riscv: introduce asm/xenoprof.h
      [PATCH v1 24/57] xen/riscv: introduce asm/percpu.h
      [PATCH v1 29/57] xen/riscv: introduce asm/hardirq.h
      [PATCH v1 33/57] xen/riscv: introduce asm/altp2m.h
      [PATCH v1 38/57] xen/riscv: introduce asm/monitor.h
      [PATCH v1 39/57] xen/riscv: introduce asm/numa.h
      [PATCH v1 42/57] xen/riscv: introduce asm/softirq.h
  - xen/lib.h in most of the cases were changed to xen/bug.h as
    mostly functionilty of bug.h is used.
  - align arch-riscv.h with Arm's version of it.
  - change the Author of commit with introduction of asm/atomic.h.
  - update some definition from spinlock.h.
  - code style changes.
---

Oleksii Kurochko (9):
  xen: introduce generic non-atomic test_*bit()
  xen/riscv: introduce bitops.h
  xen/riscv: add minimal stuff to mm.h to build full Xen
  xen/riscv: add minimal amount of stubs to build full Xen
  xen/riscv: enable full Xen build
  xen/README: add compiler and binutils versions for RISC-V64
  xen/riscv: use .insn with operands to support the older gas
  xen/riscv: introduce ANDN_INSN
  xen/x86: drop constanst_test_bit() in asm/bitops.h

 README                                 |   3 +
 xen/arch/arm/include/asm/bitops.h      |  69 ----
 xen/arch/ppc/include/asm/bitops.h      |  54 ----
 xen/arch/ppc/include/asm/page.h        |   2 +-
 xen/arch/ppc/mm-radix.c                |   2 +-
 xen/arch/riscv/Makefile                |  17 +-
 xen/arch/riscv/arch.mk                 |   4 -
 xen/arch/riscv/early_printk.c          | 168 ----------
 xen/arch/riscv/include/asm/bitops.h    | 137 ++++++++
 xen/arch/riscv/include/asm/cmpxchg.h   |  15 +-
 xen/arch/riscv/include/asm/mm.h        | 235 ++++++++++++++
 xen/arch/riscv/include/asm/processor.h |   2 +-
 xen/arch/riscv/mm.c                    |  43 ++-
 xen/arch/riscv/setup.c                 |  10 +-
 xen/arch/riscv/stubs.c                 | 418 +++++++++++++++++++++++++
 xen/arch/riscv/traps.c                 |  25 ++
 xen/arch/x86/include/asm/bitops.h      |  39 +--
 xen/include/xen/bitops.h               | 182 +++++++++++
 18 files changed, 1094 insertions(+), 331 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/bitops.h
 create mode 100644 xen/arch/riscv/stubs.c

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:01:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752285.1160500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGh-0001Zu-2l; Tue, 02 Jul 2024 11:01:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752285.1160500; Tue, 02 Jul 2024 11:01:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGg-0001ZN-Qp; Tue, 02 Jul 2024 11:01:50 +0000
Received: by outflank-mailman (input) for mailman id 752285;
 Tue, 02 Jul 2024 11:01:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObGe-0000Yl-Od
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:01:48 +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 7a48722b-3862-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 13:01:48 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a724b3a32d2so462552766b.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:01:48 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7516310768sm269306866b.218.2024.07.02.04.01.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:01: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: 7a48722b-3862-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719918107; x=1720522907; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2DnJInSJN8kZvos4JQuL1FC8EmJIQZBsSv+me/5mw1g=;
        b=gqzHaWcTCSmKiwC9CuijUZN4OUsmS826ygYOE/CjfI7PNUsEN6Yx5h37sb4r7kkX/J
         ++h2SnTwsm0hqcu/m/GIHgPlLcYugs+E1byRN/VzRZ7WenlJw1y5Qr4LAvCnKwCTPRL4
         zTWy+9wxdBoUhPhK8ey6BXfTxv3hjD63ZvTnSCuQnA4k16aVkoeaJW/kF9gFxcbwxom3
         G8Dn3U5bD0Zt+m/1TxKn3lzClmXo/MBJE5vVNxFFz8GiIM4BEJ8Mktox3xOiUILY3gGU
         qwlcV5lpEMVhYWKcDSbhf7s0pmlJ1gtO3B50pbdp117JP9CGdeF23SwgZRFZ6hPIaQbS
         Ekhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719918107; x=1720522907;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2DnJInSJN8kZvos4JQuL1FC8EmJIQZBsSv+me/5mw1g=;
        b=IfvNjHRKoCZTJafdHFQ+YPfUTZRCcWtegj0XjqdqO/mKnVqWy/yqKjcJRBg62euKhu
         cv5/ZlObjS5Cb4EAQeaRrreE3fn6bEEde/a8utaP3IYe2N0sSVelGYzD7nN1o0hanbJs
         fxQSUnMcZ0ZeYsiGOGFxBSuoZjXnONXu3/yAaVJSIisueG/yEJ3E7805poYma/oCaP9P
         9x4EfBhFXwCcXh3DcReQUNdCIedlWLNRL8wKZBFrfdbHZBC8+38snC/9bPcD/7bbk4WW
         Mxtj2v7JSVHEvN88OZHQFn9wx4h3whdRLIaCwQ7W4SPzgIP16pLu1nnSpHSwzJZ5J3SW
         26sQ==
X-Gm-Message-State: AOJu0YwEF8QC5nsP9MKI41uWhQKSJMvIOT+C51LiGpWhQecvdrahtl5R
	9CaBsd1R0tdSPZj0T37RXVxqP57mAY5Rt6UM2Ka5ylVql+0DJ/Fxkzy2Av9R
X-Google-Smtp-Source: AGHT+IFnYPcwToUXYD9LIAiRICiuu5UcdmHkImriuFMkrBcBDyNRTdzo8sbcKlrHP1mU2yVzGL8nRg==
X-Received: by 2002:a17:906:d930:b0:a6f:cf64:a5d9 with SMTP id a640c23a62f3a-a75144f66abmr476198566b.49.1719918107211;
        Tue, 02 Jul 2024 04:01:47 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v14 6/9] xen/README: add compiler and binutils versions for RISC-V64
Date: Tue,  2 Jul 2024 13:01:33 +0200
Message-ID: <f1665e62197804af592833572b03b64a7947e914.1719917348.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719917348.git.oleksii.kurochko@gmail.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch doesn't represent a strict lower bound for GCC and
GNU Binutils; rather, these versions are specifically employed by
the Xen RISC-V container and are anticipated to undergo continuous
testing. Older GCC and GNU Binutils would work,
but this is not a guarantee.

While it is feasible to utilize Clang, it's important to note that,
currently, there is no Xen RISC-V CI job in place to verify the
seamless functioning of the build with Clang.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
--
Changes in V13:
 - Nothing changed. Only rebase.
--
Changes in V13:
 - drop the line "Older GCC and GNU Binutils would work, but this is not a guarantee."
   in README
 - add Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
--
Changes in V5-V12:
 - Nothing changed. Only rebase.
---
 Changes in V6:
  - update the message in README.
---
 Changes in V5:
  - update the commit message and README file with additional explanation about GCC and
    GNU Binutils version. Additionally, it was added information about Clang.
---
 Changes in V4:
  - Update version of GCC (12.2) and GNU Binutils (2.39) to the version
    which are in Xen's contrainter for RISC-V
---
 Changes in V3:
  - new patch
---
 README | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/README b/README
index 428e45549a..67e07a4a97 100644
--- a/README
+++ b/README
@@ -48,6 +48,9 @@ provided by your OS distributor:
       - For ARM 64-bit:
         - GCC 5.1 or later
         - GNU Binutils 2.24 or later
+      - For RISC-V 64-bit:
+        - GCC 12.2 or later
+        - GNU Binutils 2.39 or later
     * POSIX compatible awk
     * Development install of zlib (e.g., zlib-dev)
     * Development install of Python 2.7 or later (e.g., python-dev)
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:01:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752286.1160505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGh-0001iD-Fy; Tue, 02 Jul 2024 11:01:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752286.1160505; Tue, 02 Jul 2024 11:01:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGh-0001gg-BN; Tue, 02 Jul 2024 11:01:51 +0000
Received: by outflank-mailman (input) for mailman id 752286;
 Tue, 02 Jul 2024 11: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObGf-0000Yl-Op
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:01:49 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a28d4cc-3862-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 13:01:48 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e37feeso604803a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:01:48 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7516310768sm269306866b.218.2024.07.02.04.01.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:01: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: 7a28d4cc-3862-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719918107; x=1720522907; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JRZ/nCXNdfp/8aMKgDc8v2QqVIkEno6CGrBauxQBWcg=;
        b=BR/DC2Ss5mz5K27Vs85C/uhuitBeB5v1lkG8+j3XJ2iNMdUNkUvZ30jCukqpc5gzTU
         K82DN3F+fhruuDK55ye9z/b6N+FVDikUqR6EgPVsTtfpBa/d5W5QVMVN6+XWFM/XmAW+
         BzWFko2OBYz5hyu4exmNu9/ByNIPVHk2pUECTIfrFuDiOkEPiclwnQ8MRgLVuzhu/Dke
         VlrLClFm6AoCIuGYZlwWkKPlJnMJNg5BYj03wfrUOQIH23b4hw6/MLEJoMYB4BERTeqX
         b8tIZOTqMszL0TlXiVM9gy6uvZvg9USSWV4afefaT78GtAkaD2Qj8YiFEdhvlgMfsaBU
         3Zlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719918107; x=1720522907;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=JRZ/nCXNdfp/8aMKgDc8v2QqVIkEno6CGrBauxQBWcg=;
        b=oPa+5nWgAIXyp9Ywu7kTIeYv980Iomb5FKkn6zZPgS6IDXoWKRLYm0wF/nepZNrgtj
         QumsdgG2q4BNiYosBuUB9nekuC9iIkkJH+7hEwt7S75BEBru0C0ys732bdUFvmA7iRaR
         uhq9R5EVSKSIauFRSe4kLYLI/hZCKSJttBEJ+ObUrxL5BZkJTg+AvMSH52dX3B9LJtqS
         LiA6zZiBNi0WvJxKjxN4YTu2IuePCb4FrSbN+FnvzrIsZybvmGS5zaaSRQ04ndVFVeZb
         mx1qeo1SRGT+kMNEToFbVwohgSd6ia4GmJUpBa6yacIMedWcPVt/xGB6auLSksRr/8LC
         x7zQ==
X-Gm-Message-State: AOJu0Yz00W07d5Nza8IDJNP5QceOwfMB9AeecLehpQ/exkKTONGnTxgq
	uXt/K/SKGOnHfjAGX2PBigfD/rKwU9MNlXoD8QmLg+mWMWxJnepTzpCztffG
X-Google-Smtp-Source: AGHT+IHgB0ui/z2qNpGq1fKiW1kds1/IGj/CXbe3pmIU4fz2WLFDhTQqnaFaYqjXub3fD1kQcSrP2w==
X-Received: by 2002:a17:906:6a1a:b0:a72:4c32:7d89 with SMTP id a640c23a62f3a-a7514440048mr691387966b.54.1719918106508;
        Tue, 02 Jul 2024 04:01:46 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v14 5/9] xen/riscv: enable full Xen build
Date: Tue,  2 Jul 2024 13:01:32 +0200
Message-ID: <8ea6ebdeb3df9332f95f4ccfe42d9e439d674ae3.1719917348.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719917348.git.oleksii.kurochko@gmail.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V14:
 - Nothing changed. Only rebase.
 - Update the the text in "changes in v13" by dropping some changes as they were done in
   different patch
---
 Changes in V13:
  - drop the footer after R-by as Andrews patch series were merged to staging.
---
Changes in V5-V12:
 - Nothing changed. Only rebase.
 - Add the footer after Signed-off section.
---
Changes in V4:
 - drop stubs for irq_actor_none() and irq_actor_none() as common/irq.c is compiled now.
 - drop defintion of max_page in stubs.c as common/page_alloc.c is compiled now.
 - drop printk() related changes in riscv/early_printk.c as common version will be used.
---
Changes in V3:
 - Reviewed-by: Jan Beulich <jbeulich@suse.com>
 - unrealted change dropped in tiny64_defconfig
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/Makefile       |  16 +++-
 xen/arch/riscv/arch.mk        |   4 -
 xen/arch/riscv/early_printk.c | 168 ----------------------------------
 3 files changed, 15 insertions(+), 173 deletions(-)

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 60afbc0ad9..81b77b13d6 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -12,10 +12,24 @@ $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
 
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) -o $@
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
+	    $(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 $< \
+	    $(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) \
+	    $(dot-target).1.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
+	rm -f $(@D)/.$(@F).[0-9]*
 
 $(obj)/xen.lds: $(src)/xen.lds.S FORCE
 	$(call if_changed_dep,cpp_lds_S)
diff --git a/xen/arch/riscv/arch.mk b/xen/arch/riscv/arch.mk
index 8c071aff65..17827c302c 100644
--- a/xen/arch/riscv/arch.mk
+++ b/xen/arch/riscv/arch.mk
@@ -38,7 +38,3 @@ extensions := $(subst $(space),,$(extensions))
 # -mcmodel=medlow would force Xen into the lower half.
 
 CFLAGS += $(riscv-generic-flags)$(extensions) -mstrict-align -mcmodel=medany
-
-# TODO: Drop override when more of the build is working
-override ALL_OBJS-y = arch/$(SRCARCH)/built_in.o
-override ALL_LIBS-y =
diff --git a/xen/arch/riscv/early_printk.c b/xen/arch/riscv/early_printk.c
index 60742a042d..610c814f54 100644
--- a/xen/arch/riscv/early_printk.c
+++ b/xen/arch/riscv/early_printk.c
@@ -40,171 +40,3 @@ void early_printk(const char *str)
         str++;
     }
 }
-
-/*
- * The following #if 1 ... #endif should be removed after printk
- * and related stuff are ready.
- */
-#if 1
-
-#include <xen/stdarg.h>
-#include <xen/string.h>
-
-/**
- * strlen - Find the length of a string
- * @s: The string to be sized
- */
-size_t (strlen)(const char * s)
-{
-    const char *sc;
-
-    for (sc = s; *sc != '\0'; ++sc)
-        /* nothing */;
-    return sc - s;
-}
-
-/**
- * memcpy - Copy one area of memory to another
- * @dest: Where to copy to
- * @src: Where to copy from
- * @count: The size of the area.
- *
- * You should not use this function to access IO space, use memcpy_toio()
- * or memcpy_fromio() instead.
- */
-void *(memcpy)(void *dest, const void *src, size_t count)
-{
-    char *tmp = (char *) dest, *s = (char *) src;
-
-    while (count--)
-        *tmp++ = *s++;
-
-    return dest;
-}
-
-int vsnprintf(char* str, size_t size, const char* format, va_list args)
-{
-    size_t i = 0; /* Current position in the output string */
-    size_t written = 0; /* Total number of characters written */
-    char* dest = str;
-
-    while ( format[i] != '\0' && written < size - 1 )
-    {
-        if ( format[i] == '%' )
-        {
-            i++;
-
-            if ( format[i] == '\0' )
-                break;
-
-            if ( format[i] == '%' )
-            {
-                if ( written < size - 1 )
-                {
-                    dest[written] = '%';
-                    written++;
-                }
-                i++;
-                continue;
-            }
-
-            /*
-             * Handle format specifiers.
-             * For simplicity, only %s and %d are implemented here.
-             */
-
-            if ( format[i] == 's' )
-            {
-                char* arg = va_arg(args, char*);
-                size_t arglen = strlen(arg);
-
-                size_t remaining = size - written - 1;
-
-                if ( arglen > remaining )
-                    arglen = remaining;
-
-                memcpy(dest + written, arg, arglen);
-
-                written += arglen;
-                i++;
-            }
-            else if ( format[i] == 'd' )
-            {
-                int arg = va_arg(args, int);
-
-                /* Convert the integer to string representation */
-                char numstr[32]; /* Assumes a maximum of 32 digits */
-                int numlen = 0;
-                int num = arg;
-                size_t remaining;
-
-                if ( arg < 0 )
-                {
-                    if ( written < size - 1 )
-                    {
-                        dest[written] = '-';
-                        written++;
-                    }
-
-                    num = -arg;
-                }
-
-                do
-                {
-                    numstr[numlen] = '0' + num % 10;
-                    num = num / 10;
-                    numlen++;
-                } while ( num > 0 );
-
-                /* Reverse the string */
-                for (int j = 0; j < numlen / 2; j++)
-                {
-                    char tmp = numstr[j];
-                    numstr[j] = numstr[numlen - 1 - j];
-                    numstr[numlen - 1 - j] = tmp;
-                }
-
-                remaining = size - written - 1;
-
-                if ( numlen > remaining )
-                    numlen = remaining;
-
-                memcpy(dest + written, numstr, numlen);
-
-                written += numlen;
-                i++;
-            }
-        }
-        else
-        {
-            if ( written < size - 1 )
-            {
-                dest[written] = format[i];
-                written++;
-            }
-            i++;
-        }
-    }
-
-    if ( size > 0 )
-        dest[written] = '\0';
-
-    return written;
-}
-
-void printk(const char *format, ...)
-{
-    static char buf[1024];
-
-    va_list args;
-    va_start(args, format);
-
-    (void)vsnprintf(buf, sizeof(buf), format, args);
-
-    early_printk(buf);
-
-    va_end(args);
-}
-
-#endif
-
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:01:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752289.1160545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGk-0002lV-P7; Tue, 02 Jul 2024 11:01:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752289.1160545; Tue, 02 Jul 2024 11:01: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 1sObGk-0002k2-Fb; Tue, 02 Jul 2024 11:01:54 +0000
Received: by outflank-mailman (input) for mailman id 752289;
 Tue, 02 Jul 2024 11:01: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObGj-0000Yf-6q
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:01:53 +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 7c5e04bc-3862-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 13:01:51 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a724958f118so488330966b.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:01:51 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7516310768sm269306866b.218.2024.07.02.04.01.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:01: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: 7c5e04bc-3862-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719918110; x=1720522910; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cXRTusB4zdDIQb1xw+ddCF02nNWGT9px/ZuZuuKSvAg=;
        b=Ls3gRZUPWwmU2+8EXBXboUGUw1ibUnudc3e+Q9SP5c33xVMD4HmeufgpexZmlTwpVH
         4HGQmhvy7ec22PxoG/1KoPI4Jnx25z6stwfawhsRghMsroAlyDkbM1OBrOMkkRqyclHs
         FTJxdZlnyM25YOWZg6IGHJk+muL4W2hDm/95lYZST3M+Jtk9qjB2AUMQZrpAZ0qrR4Cj
         0L6LyBzO4i3yZ3tlkkclsefaAP4L68ykRfcyiB7twOBYd/HpenGgLkgYhK5f27NxizVT
         /UWGaa3We/rR+m+6Drm1dw8UrspZnjus3c3lTexDGGY7oZti1ZTjqMdPXJ3TSaJ2b9Xc
         PJgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719918110; x=1720522910;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cXRTusB4zdDIQb1xw+ddCF02nNWGT9px/ZuZuuKSvAg=;
        b=bPYqMU5t8snV4VunXekr9VtUBFrF6AJS9ZqtQWVwmwj52NEDgZ+ht01+qmCHChPirY
         29LjZnIbPElBirl1Rw6/jpmC20al+ud7aJbtDNApFlZ9RyFDdyLxgdhAl5lVHy1EQM37
         v5l6oWklHo/fhKZU7m3Aa9FAi+GzfoUn2n9+WMQO7vn+/9IPesJJjVzuiZyQTVl2jmJm
         tXb5ZPAzO+5yRdAUOUPIFWWrE3DRQFqB2VdsBwMHtrhZAKrEUsGBEc1ravq3t/8R2N9c
         9ozOJp44zniRU31HBsNZk2ZJRtbe+Ms27xmkWm+52v6LU7o8PtszJG3zMGUuoBFnEx3Y
         orpQ==
X-Gm-Message-State: AOJu0YwnZmRTxFYRlkDJv5d3EBz9eNa8GWmOhZiE91XX/utsS5HvJhkp
	jkbVZc3Rh6F3Krbd19Y6d8r+XCS4X6DiNzgCOyiWdIsOhdDjxRifSEYDImZh
X-Google-Smtp-Source: AGHT+IG2pHgxImgAkUq4VXk4SSwVc1DND2SRw0rdx3tt+E8v6anp+jp0TghkfiqxNfhdDjpKP2bvtA==
X-Received: by 2002:a17:906:7313:b0:a6f:1111:bd8 with SMTP id a640c23a62f3a-a7514475b3emr521361866b.46.1719918110343;
        Tue, 02 Jul 2024 04:01:50 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v14 9/9] xen/x86: drop constanst_test_bit() in asm/bitops.h
Date: Tue,  2 Jul 2024 13:01:36 +0200
Message-ID: <ad139232c39ad67246233a9b001f07b289491788.1719917348.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719917348.git.oleksii.kurochko@gmail.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

constant_test_bit() is functionally the same as generic_test_bit(),
so constant_test_bit() can be dropped and replaced with
generic_test_bit().

Requested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 Changes in V14:
  - Add Requested-by: Jan Beulich <jbeulich@suse.com>
  - Add Acked-by: Jan Beulich <jbeulich@suse.com>
---
 Changes in V13:
  - new patch
---
 xen/arch/x86/include/asm/bitops.h | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/xen/arch/x86/include/asm/bitops.h b/xen/arch/x86/include/asm/bitops.h
index f9aa60111f..8c0403405a 100644
--- a/xen/arch/x86/include/asm/bitops.h
+++ b/xen/arch/x86/include/asm/bitops.h
@@ -277,12 +277,6 @@ static inline int test_and_change_bit(int nr, volatile void *addr)
     test_and_change_bit(nr, addr);                      \
 })
 
-static inline int constant_test_bit(int nr, const volatile void *addr)
-{
-    return ((1U << (nr & 31)) &
-            (((const volatile unsigned int *)addr)[nr >> 5])) != 0;
-}
-
 static inline int variable_test_bit(int nr, const volatile void *addr)
 {
     int oldbit;
@@ -297,7 +291,7 @@ static inline int variable_test_bit(int nr, const volatile void *addr)
 
 #define arch_test_bit(nr, addr) ({                      \
     __builtin_constant_p(nr) ?                          \
-        constant_test_bit(nr, addr) :                   \
+        generic_test_bit(nr, addr) :                    \
         variable_test_bit(nr, addr);                    \
 })
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:01:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752288.1160530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGj-0002Jp-93; Tue, 02 Jul 2024 11:01:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752288.1160530; Tue, 02 Jul 2024 11:01: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 1sObGj-0002Ia-1r; Tue, 02 Jul 2024 11:01:53 +0000
Received: by outflank-mailman (input) for mailman id 752288;
 Tue, 02 Jul 2024 11:01:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObGg-0000Yf-Og
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:01:50 +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 7adea768-3862-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 13:01:49 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-57cc1c00ba6so1876455a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:01:49 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7516310768sm269306866b.218.2024.07.02.04.01.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04: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: 7adea768-3862-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719918108; x=1720522908; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n4YKogXXS7rS2JSgnMwZtKdSycY+deBCwnIxeHuH4q0=;
        b=QC3O8ud4+LAkGD6kdgJ+WMBDlC6V0IVK/tKr6zpS0RwSUeYU0Idkrs2fu9RtB0GjJY
         inrwiQf8lMV5tt75ingNWfXsJrZ1Ox9w2o0S2EAg4lI0XiciaGxQBWixXv7+BUpXM/gr
         ofw8FYnxcmMTXkQLJmOKOpJCqYpnFwolDQLs2YKGRUsMX6CfcaFyNdrRuUqbSAH21U1n
         cVj4fQy11uoz8Eu4NzfBcHMuSgXamR168ULzG4uOb4wR71+zg7mvabCGWCoVCn/S/BhS
         mjewBOo7u+dMix9BDpo2Ynw0P9xUq0RVMtTEIKI93+9eRUXVSTkBdK5xl/TECGkapMlb
         rjyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719918108; x=1720522908;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=n4YKogXXS7rS2JSgnMwZtKdSycY+deBCwnIxeHuH4q0=;
        b=fUhuFxnnIfxsS33KZqGAWUR6H43Lhrizkdrq/TWUANRJh0LnV5sHa18fiwuKgHcpp1
         sMDuK2UU4z5JaSg+QIdBQ+gianbFLCd+IvpUxrFQjdsrjixbYhaicysr5p+42ZNmt2ZY
         EYcZa8joubQcXmlcmUt7E32XTtHH7ClYiNoOriRtKwyUkoIS+pdOQmactEEpQNI/jGMF
         I1FWx8BIGj8L0ThFdXc5yYpnP1ZYLmImm+Ym/rUT95biu0SizKjrnjjn96dmfiIStwC6
         pnce3tJXyTbOAr/mFKjoTxS/Tjd7Rf4xfK7ooiA6ldUrlUemO9YxbsaVNkd0Mt56HNGQ
         NJMw==
X-Gm-Message-State: AOJu0YwWsijanRVswIzZnmwHM+U1r028Tt2cxQzVld4cqVdFsp4uG5Or
	dk7Y3Ip3HBdwNN56BNPbmUS79bH43h3kOB41BupZwWNMfTdl/d5Qy20QPqUx
X-Google-Smtp-Source: AGHT+IGqNXfWgqImukvmT5IpRYfbs6JmqV/ewaj6kuxq94Zed2YFP8frKYYYNA8qMllgIkwuMwKJ3g==
X-Received: by 2002:a17:906:730d:b0:a75:110d:fa51 with SMTP id a640c23a62f3a-a75144a2774mr662750166b.58.1719918108267;
        Tue, 02 Jul 2024 04:01:48 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v14 7/9] xen/riscv: use .insn with operands to support the older gas
Date: Tue,  2 Jul 2024 13:01:34 +0200
Message-ID: <a64f0de38fe32da9154d1944195ff6b852ae3310.1719917348.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719917348.git.oleksii.kurochko@gmail.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Support for specifying "raw" insns was added only in 2.38.
To support older version it would be better switch to .insn
with operands.

The following compilation error occurs:
  ./arch/riscv/include/asm/processor.h: Assembler messages:
  ./arch/riscv/include/asm/processor.h:70: Error: unrecognized opcode `0x0100000F'
In case of the following Binutils:
  $ riscv64-linux-gnu-as --version
  GNU assembler (GNU Binutils for Debian) 2.35.2

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Suggested-by: Jan Beulich <jbeulich@suse.com>
---
Andrew,

Could you please take a look if you are okay with suggested
changes.

Thanks in advance.
---
 Changes in V14:
  - add Suggested-By: Jan Beulich <jbeulich@suse.com>
  - switch from "raw" insn to .insn with operands to support older gas.
---
 Changes in V13:
  - new patch
---
 xen/arch/riscv/include/asm/processor.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/processor.h b/xen/arch/riscv/include/asm/processor.h
index 6846151717..3ae164c265 100644
--- a/xen/arch/riscv/include/asm/processor.h
+++ b/xen/arch/riscv/include/asm/processor.h
@@ -67,7 +67,7 @@ static inline void cpu_relax(void)
     __asm__ __volatile__ ( "pause" );
 #else
     /* Encoding of the pause instruction */
-    __asm__ __volatile__ ( ".insn 0x0100000F" );
+    __asm__ __volatile__ ( ".insn r MISC_MEM, 0, 0, x0, x0, x16" );
 #endif
 
     barrier();
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:01:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752283.1160484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGf-0001Hj-D6; Tue, 02 Jul 2024 11:01:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752283.1160484; Tue, 02 Jul 2024 11:01: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 1sObGf-0001Hc-AD; Tue, 02 Jul 2024 11:01:49 +0000
Received: by outflank-mailman (input) for mailman id 752283;
 Tue, 02 Jul 2024 11:01: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObGd-0000Yf-Mv
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:01:47 +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 7881c0cf-3862-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 13:01:45 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a7523f0870cso274018666b.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:01:45 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7516310768sm269306866b.218.2024.07.02.04.01.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:01: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: 7881c0cf-3862-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719918104; x=1720522904; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L2HB8kISgEQxHB19vfnvvWdb/HZQrT7j+/jxHr+fWwQ=;
        b=fS15BAIsLpJ3Mh3x0EOBCzxQkWfZQo88S91NVs3bo7WJz3KVqVDwv6DJ5ijw8X0E2G
         BFAuvnUCS4MC2a0LSE1OyrzRIHB8uWHkNIlquQJcPKGVKuCvd6ypIzumZavIihtijIhs
         20K+DR+QbbZhhGHuz1Ls7tunEVEOvLNAxBg96FO3jFsTDhe0hSKGCAGoc+/BehyFd/Wy
         AMpRLI5SdHZFU5wFOE2IqDqyHmQ4VIBh5+boD6VMbN51rMjgnIi3c87X7R5Mbq0RpNSK
         wuTj9ByBMrh4ZfcPK9pSzwmf+ouO/HTUupy1028cl1tGCzRqF7RtEdliBvv9ni7P27wH
         G7VQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719918104; x=1720522904;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=L2HB8kISgEQxHB19vfnvvWdb/HZQrT7j+/jxHr+fWwQ=;
        b=BXAd+Mr78EQWwS7n2wqGatDdF94MCrqgAm1ZF+BwaTfPfVbF5HooATjM/5Rhads4gY
         aWP8m9KWKM5y8t9doevCYz+PL5U6d0ieqWXselCVVRu3zzUbBm5XFCF0EPJFjqstufbu
         s3aIjC+l5ZoHtbi4fxgBFaK0Oi9lj3ysp69wC/60+eXOSvYU05ERpEqKrEnLvZ0ryAD0
         SyGskjecOTn8watfgsYo146Y9+poXd1LqlKkKrEqAO4Er4s9DAmbaNz7G2SsFbusbdSH
         cPafjGCuyESgosjn/hWgiEMA4k2IHjYJ/tFS2FzbIt11nYtlFExeCs73ZJQWPRJvgUNe
         CyQg==
X-Gm-Message-State: AOJu0Yy0bWbTRZ0zoy9qBl+KnVp5Fl5w27EOftDyVwbALQZgku8lR2rk
	VsFkBVks+k2Fo0KrswsqpIReRPf0hLDPeQ+PndlqR8m1wwQni5svLp3M0XOk
X-Google-Smtp-Source: AGHT+IHOBJGgdbIkMGLcyfLC77OKjeKeY19WVIUbkb4p7VvDouRDc5C3qRAfjIFjdZqkzzTwuu4Yvw==
X-Received: by 2002:a17:906:5619:b0:a6f:4fc8:265f with SMTP id a640c23a62f3a-a751442416cmr501101366b.42.1719918103691;
        Tue, 02 Jul 2024 04:01:43 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v14 3/9] xen/riscv: add minimal stuff to mm.h to build full Xen
Date: Tue,  2 Jul 2024 13:01:30 +0200
Message-ID: <297d508d639a766c2c47c4d0f554d9d2597ebfb7.1719917348.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719917348.git.oleksii.kurochko@gmail.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V14:
 - drop cast in defintion of page_to_mfn(pg).
 - reword first change in "Changes in V13".
---
Changes in V13:
 - redefine page_to_mfn() and mfn_to_page().
 - add inclusion of <xen/section.h> after rebasing on top of staging.
---
Changes in V8-V12:
 - Nothing changed only rebase.
---
Changes in V7:
 - update argument type of maddr_to_virt() function: unsigned long -> paddr_t
 - rename argument of PFN_ORDER(): pfn -> pg.
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V6:
 - drop __virt_to_maddr() ( transform to macro ) and __maddr_to_virt ( rename to maddr_to_virt ).
 - parenthesize va in definition of vmap_to_mfn().
 - Code style fixes.
---
Changes in V5:
 - update the comment around "struct domain *domain;" : zero -> NULL
 - fix ident. for unsigned long val;
 - put page_to_virt() and virt_to_page() close to each other.
 - drop unnessary leading underscore
 - drop a space before the comment: /* Count of uses of this frame as its current type. */
 - drop comment about a page 'not as a shadow'. it is not necessary for RISC-V
---
Changes in V4:
 - update an argument name of PFN_ORDERN macros.
 - drop pad at the end of 'struct page_info'.
 - Change message -> subject in "Changes in V3"
 - delete duplicated macros from riscv/mm.h
 - fix identation in struct page_info
 - align comment for PGC_ macros
 - update definitions of domain_set_alloc_bitsize() and domain_clamp_alloc_bitsize()
 - drop unnessary comments.
 - s/BUG/BUG_ON("...")
 - define __virt_to_maddr, __maddr_to_virt as stubs
 - add inclusion of xen/mm-frame.h for mfn_x and others
 - include "xen/mm.h" instead of "asm/mm.h" to fix compilation issues:
	 In file included from arch/riscv/setup.c:7:
	./arch/riscv/include/asm/mm.h:60:28: error: field 'list' has incomplete type
	   60 |     struct page_list_entry list;
	      |                            ^~~~
	./arch/riscv/include/asm/mm.h:81:43: error: 'MAX_ORDER' undeclared here (not in a function)
	   81 |                 unsigned long first_dirty:MAX_ORDER + 1;
	      |                                           ^~~~~~~~~
	./arch/riscv/include/asm/mm.h:81:31: error: bit-field 'first_dirty' width not an integer constant
	   81 |                 unsigned long first_dirty:MAX_ORDER + 1;
 - Define __virt_to_mfn() and __mfn_to_virt() using maddr_to_mfn() and mfn_to_maddr().
---
Changes in V3:
 - update the commit title
 - introduce DIRECTMAP_VIRT_START.
 - drop changes related pfn_to_paddr() and paddr_to_pfn as they were remvoe in
   [PATCH v2 32/39] xen/riscv: add minimal stuff to asm/page.h to build full Xen
 - code style fixes.
 - drop get_page_nr  and put_page_nr as they don't need for time being
 - drop CONFIG_STATIC_MEMORY related things
 - code style fixes
---
Changes in V2:
 - define stub for arch_get_dma_bitsize(void)
---
 xen/arch/riscv/include/asm/mm.h | 235 ++++++++++++++++++++++++++++++++
 xen/arch/riscv/mm.c             |   2 +-
 xen/arch/riscv/setup.c          |   2 +-
 3 files changed, 237 insertions(+), 2 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 07c7a0abba..25af9e1aaa 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -3,11 +3,241 @@
 #ifndef _ASM_RISCV_MM_H
 #define _ASM_RISCV_MM_H
 
+#include <public/xen.h>
+#include <xen/bug.h>
+#include <xen/mm-frame.h>
+#include <xen/pdx.h>
+#include <xen/types.h>
+
 #include <asm/page-bits.h>
 
 #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))
+#define maddr_to_mfn(ma)    _mfn(paddr_to_pfn(ma))
+#define vmap_to_mfn(va)     maddr_to_mfn(virt_to_maddr((vaddr_t)(va)))
+#define vmap_to_page(va)    mfn_to_page(vmap_to_mfn(va))
+
+static inline void *maddr_to_virt(paddr_t ma)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
+#define virt_to_maddr(va) ({ BUG_ON("unimplemented"); 0; })
+
+/* Convert between Xen-heap virtual addresses and machine frame numbers. */
+#define __virt_to_mfn(va)  mfn_x(maddr_to_mfn(virt_to_maddr(va)))
+#define __mfn_to_virt(mfn) maddr_to_virt(mfn_to_maddr(_mfn(mfn)))
+
+/*
+ * We define non-underscored wrappers for above conversion functions.
+ * These are overriden in various source files while underscored version
+ * remain intact.
+ */
+#define virt_to_mfn(va)     __virt_to_mfn(va)
+#define mfn_to_virt(mfn)    __mfn_to_virt(mfn)
+
+struct page_info
+{
+    /* Each frame can be threaded onto a doubly-linked list. */
+    struct page_list_entry list;
+
+    /* Reference count and various PGC_xxx flags and fields. */
+    unsigned long count_info;
+
+    /* Context-dependent fields follow... */
+    union {
+        /* Page is in use: ((count_info & PGC_count_mask) != 0). */
+        struct {
+            /* Type reference count and various PGT_xxx flags and fields. */
+            unsigned long type_info;
+        } inuse;
+
+        /* Page is on a free list: ((count_info & PGC_count_mask) == 0). */
+        union {
+            struct {
+                /*
+                 * Index of the first *possibly* unscrubbed page in the buddy.
+                 * One more bit than maximum possible order to accommodate
+                 * INVALID_DIRTY_IDX.
+                 */
+#define INVALID_DIRTY_IDX ((1UL << (MAX_ORDER + 1)) - 1)
+                unsigned long first_dirty:MAX_ORDER + 1;
+
+                /* Do TLBs need flushing for safety before next page use? */
+                bool need_tlbflush:1;
+
+#define BUDDY_NOT_SCRUBBING    0
+#define BUDDY_SCRUBBING        1
+#define BUDDY_SCRUB_ABORT      2
+                unsigned long scrub_state:2;
+            };
+
+            unsigned long val;
+        } free;
+    } u;
+
+    union {
+        /* Page is in use */
+        struct {
+            /* Owner of this page (NULL if page is anonymous). */
+            struct domain *domain;
+        } inuse;
+
+        /* Page is on a free list. */
+        struct {
+            /* Order-size of the free chunk this page is the head of. */
+            unsigned int order;
+        } free;
+    } v;
+
+    union {
+        /*
+         * Timestamp from 'TLB clock', used to avoid extra safety flushes.
+         * Only valid for: a) free pages, and b) pages with zero type count
+         */
+        uint32_t tlbflush_timestamp;
+    };
+};
+
+#define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
+
+/* Convert between machine frame numbers and page-info structures. */
+#define mfn_to_page(mfn)    (frame_table + mfn_x(mfn))
+#define page_to_mfn(pg)     _mfn((pg) - frame_table)
+
+static inline void *page_to_virt(const struct page_info *pg)
+{
+    return mfn_to_virt(mfn_x(page_to_mfn(pg)));
+}
+
+/* Convert between Xen-heap virtual addresses and page-info structures. */
+static inline struct page_info *virt_to_page(const void *v)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
+/*
+ * Common code requires get_page_type and put_page_type.
+ * We don't care about typecounts so we just do the minimum to make it
+ * happy.
+ */
+static inline int get_page_type(struct page_info *page, unsigned long type)
+{
+    return 1;
+}
+
+static inline void put_page_type(struct page_info *page)
+{
+}
+
+static inline void put_page_and_type(struct page_info *page)
+{
+    put_page_type(page);
+    put_page(page);
+}
+
+/*
+ * RISC-V does not have an M2P, but common code expects a handful of
+ * M2P-related defines and functions. Provide dummy versions of these.
+ */
+#define INVALID_M2P_ENTRY        (~0UL)
+#define SHARED_M2P_ENTRY         (~0UL - 1UL)
+#define SHARED_M2P(_e)           ((_e) == SHARED_M2P_ENTRY)
+
+#define set_gpfn_from_mfn(mfn, pfn) do { (void)(mfn), (void)(pfn); } while (0)
+#define mfn_to_gfn(d, mfn) ((void)(d), _gfn(mfn_x(mfn)))
+
+#define PDX_GROUP_SHIFT (PAGE_SHIFT + VPN_BITS)
+
+static inline unsigned long domain_get_maximum_gpfn(struct domain *d)
+{
+    BUG_ON("unimplemented");
+    return 0;
+}
+
+static inline long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+{
+    BUG_ON("unimplemented");
+    return 0;
+}
+
+/*
+ * On RISCV, all the RAM is currently direct mapped in Xen.
+ * Hence return always true.
+ */
+static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
+{
+    return true;
+}
+
+#define PG_shift(idx)   (BITS_PER_LONG - (idx))
+#define PG_mask(x, idx) (x ## UL << PG_shift(idx))
+
+#define PGT_none          PG_mask(0, 1)  /* no special uses of this page   */
+#define PGT_writable_page PG_mask(1, 1)  /* has writable mappings?         */
+#define PGT_type_mask     PG_mask(1, 1)  /* Bits 31 or 63.                 */
+
+/* Count of uses of this frame as its current type. */
+#define PGT_count_width   PG_shift(2)
+#define PGT_count_mask    ((1UL << PGT_count_width) - 1)
+
+/*
+ * Page needs to be scrubbed. Since this bit can only be set on a page that is
+ * free (i.e. in PGC_state_free) we can reuse PGC_allocated bit.
+ */
+#define _PGC_need_scrub   _PGC_allocated
+#define PGC_need_scrub    PGC_allocated
+
+/* Cleared when the owning guest 'frees' this page. */
+#define _PGC_allocated    PG_shift(1)
+#define PGC_allocated     PG_mask(1, 1)
+/* Page is Xen heap? */
+#define _PGC_xen_heap     PG_shift(2)
+#define PGC_xen_heap      PG_mask(1, 2)
+/* Page is broken? */
+#define _PGC_broken       PG_shift(7)
+#define PGC_broken        PG_mask(1, 7)
+/* Mutually-exclusive page states: { inuse, offlining, offlined, free }. */
+#define PGC_state         PG_mask(3, 9)
+#define PGC_state_inuse   PG_mask(0, 9)
+#define PGC_state_offlining PG_mask(1, 9)
+#define PGC_state_offlined PG_mask(2, 9)
+#define PGC_state_free    PG_mask(3, 9)
+#define page_state_is(pg, st) (((pg)->count_info&PGC_state) == PGC_state_##st)
+
+/* Count of references to this frame. */
+#define PGC_count_width   PG_shift(9)
+#define PGC_count_mask    ((1UL << PGC_count_width) - 1)
+
+#define _PGC_extra        PG_shift(10)
+#define PGC_extra         PG_mask(1, 10)
+
+#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)))
+
+#define is_xen_fixed_mfn(mfn)                                   \
+    ((mfn_to_maddr(mfn) >= virt_to_maddr((vaddr_t)_start)) &&   \
+     (mfn_to_maddr(mfn) <= virt_to_maddr((vaddr_t)_end - 1)))
+
+#define page_get_owner(p)    (p)->v.inuse.domain
+#define page_set_owner(p, d) ((p)->v.inuse.domain = (d))
+
+/* TODO: implement */
+#define mfn_valid(mfn) ({ (void)(mfn); 0; })
+
+#define domain_set_alloc_bitsize(d) ((void)(d))
+#define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
+
+#define PFN_ORDER(pg) ((pg)->v.free.order)
+
 extern unsigned char cpu0_boot_stack[];
 
 void setup_initial_pagetables(void);
@@ -20,4 +250,9 @@ unsigned long calc_phys_offset(void);
 
 void turn_on_mmu(unsigned long ra);
 
+static inline unsigned int arch_get_dma_bitsize(void)
+{
+    return 32; /* TODO */
+}
+
 #endif /* _ASM_RISCV_MM_H */
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 3ebaf6da01..ae381e9581 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -4,13 +4,13 @@
 #include <xen/init.h>
 #include <xen/kernel.h>
 #include <xen/macros.h>
+#include <xen/mm.h>
 #include <xen/pfn.h>
 #include <xen/sections.h>
 
 #include <asm/early_printk.h>
 #include <asm/csr.h>
 #include <asm/current.h>
-#include <asm/mm.h>
 #include <asm/page.h>
 #include <asm/processor.h>
 
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 6593f601c1..98a94c4c48 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -2,9 +2,9 @@
 
 #include <xen/compile.h>
 #include <xen/init.h>
+#include <xen/mm.h>
 
 #include <asm/early_printk.h>
-#include <asm/mm.h>
 
 /* Xen stack for bringing up the first CPU. */
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:01:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752282.1160466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGd-0000kQ-2t; Tue, 02 Jul 2024 11:01:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752282.1160466; Tue, 02 Jul 2024 11:01:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGc-0000ig-VI; Tue, 02 Jul 2024 11:01:46 +0000
Received: by outflank-mailman (input) for mailman id 752282;
 Tue, 02 Jul 2024 11:01: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObGc-0000Yf-80
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:01:46 +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 780f8084-3862-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 13:01:44 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a724958f118so488316966b.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:01:44 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7516310768sm269306866b.218.2024.07.02.04.01.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:01: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: 780f8084-3862-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719918103; x=1720522903; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=it/Xvn+hqYGMFo5+OSvi4mDaWEXL+/Hw4Puvwh6HQxs=;
        b=J80Cth1BQKohWZL2hBVxC7uPXf/1XdKNoLGz/W2tDTTZBzzlBzUyCcnaONqwa2sS3r
         QcHHVAqolPUhhn/Q4j2xdbh5Hufmd2yDpyTUylPn4xfnp7qd6fg+PiSFD4Rvmbb+LkE7
         bqOU3oag8cLkvotUAmsAhe3Q8RRDzHA+Kpf3ctDQAeUMD6RCnjgtUyOn0W2R3dkw2dit
         d8u18+TpjWpCcQQI50XTRgrE8Mep3EQW6/8V650NG5muuPJ/ONRx5+YGrAu62a3FNCiq
         2OdtQUhLcYyOAOziGj4vItbETgF2ZFEE3aoO9RGRpwOEITVlvzU6so2njAW3guSBwQSg
         Q2Lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719918103; x=1720522903;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=it/Xvn+hqYGMFo5+OSvi4mDaWEXL+/Hw4Puvwh6HQxs=;
        b=FeHhaTJZxuPfiPVSYthYcUMmXbt8Gaap6naVokrV9f9ZXdJ2Mnu3tSE4KI1DfXSoPL
         lpjoy9qpN3c1U7LPIx1IdZVMR+9L+rp2tBElDs/Ho59G8+9oy0s9+89xvySIeoO0hck6
         ZkuRJrh5MKuuL7HIq4py/fOP2HyNp201C/P+kPZqXVPcd6/zdwA78KdUHkutMvxfM1bl
         jqRc6VYgWh6Y7AcU59WD2RjEiBKFZukRDnjcfG9NuzpqlGo8lBBzh+77o9ywof0genJJ
         XzrZOFqByhLFmsuLktgCDueGE2vb0vxaTJxhyhh/bcvl2iah41/BDLqu3dyLPBP0iVC2
         +7xw==
X-Gm-Message-State: AOJu0Yw96tRHJt4ttNpfsi+x/ZRuD+BVQLSRXc3nfBfEdFcNaMUFq2Af
	iYNF4zEHr1oypTrO+dSBM+CnpSVb4VjoHqJ3wdr9IbnK7qkNUbqyaRRtfiov
X-Google-Smtp-Source: AGHT+IHWCRiSHIPvPndQQbtJ/ceB5BbrBB0wp9NOPR/6NFV3LWM5oXIt2CXY3Zg6cSYFQO6b3Lepuw==
X-Received: by 2002:a17:906:da85:b0:a6f:33d6:2d49 with SMTP id a640c23a62f3a-a75144bade6mr599775566b.52.1719918102696;
        Tue, 02 Jul 2024 04:01:42 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v14 2/9] xen/riscv: introduce bitops.h
Date: Tue,  2 Jul 2024 13:01:29 +0200
Message-ID: <fa98e36d85b5e7408c74310e0896c88fb5652e0f.1719917348.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719917348.git.oleksii.kurochko@gmail.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Taken from Linux-6.4.0-rc1

Xen's bitops.h consists of several Linux's headers:
* linux/arch/include/asm/bitops.h:
  * The following function were removed as they aren't used in Xen:
        * test_and_set_bit_lock
        * clear_bit_unlock
        * __clear_bit_unlock
  * The following functions were renamed in the way how they are
    used by common code:
        * __test_and_set_bit
        * __test_and_clear_bit
  * The declaration and implementation of the following functios
    were updated to make Xen build happy:
        * clear_bit
        * set_bit
        * __test_and_clear_bit
        * __test_and_set_bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V11-V14:
 - Nothing changed. Only rebase was done.
---
Changes in V10:
 - update the error message BITS_PER_LONG -> BITOP_BITS_PER_WORD
---
Changes in V9:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
 - drop redefinition of bitop_uint_t in asm/types.h as some operation in Xen common code expects
   to work with 32-bit quantities.
 - s/BITS_PER_LONG/BITOP_BITS_PER_WORD in asm/bitops.h around __AMO() macros.
---
Changes in V8:
 - define bitop_uint_t in <asm/types.h> after the changes in patch related to introduction of
   "introduce generic non-atomic test_*bit()".
 - drop duplicated __set_bit() and __clear_bit().
 - drop duplicated comment: /* Based on linux/arch/include/asm/bitops.h */.
 - update type of res and mask in test_and_op_bit_ord(): unsigned long -> bitop_uint_t.
 - drop 1 padding blank in test_and_op_bit_ord().
 - update definition of test_and_set_bit(),test_and_clear_bit(),test_and_change_bit:
   change return type to bool.
 - change addr argument type of test_and_change_bit(): unsigned long * -> void *.
 - move test_and_change_bit() closer to other test_and-s function.
 - Code style fixes: tabs -> space.
 - s/#undef __op_bit/#undef op_bit.
 - update the commit message: delete information about generic-non-atomic.h changes as now
   it is a separate patch.
---
Changes in V7:
 - Update the commit message.
 - Drop "__" for __op_bit and __op_bit_ord as they are atomic.
 - add comment above __set_bit and __clear_bit about why they are defined as atomic.
 - align bitops_uint_t with __AMO().
 - make changes after  generic non-atomic test_*bit() were changed.
 - s/__asm__ __volatile__/asm volatile
---
Changes in V6:
 - rebase clean ups were done: drop unused asm-generic includes
---
 Changes in V5:
   - new patch
---
 xen/arch/riscv/include/asm/bitops.h | 137 ++++++++++++++++++++++++++++
 1 file changed, 137 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/bitops.h

diff --git a/xen/arch/riscv/include/asm/bitops.h b/xen/arch/riscv/include/asm/bitops.h
new file mode 100644
index 0000000000..7f7af3fda1
--- /dev/null
+++ b/xen/arch/riscv/include/asm/bitops.h
@@ -0,0 +1,137 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (C) 2012 Regents of the University of California */
+
+#ifndef _ASM_RISCV_BITOPS_H
+#define _ASM_RISCV_BITOPS_H
+
+#include <asm/system.h>
+
+#if BITOP_BITS_PER_WORD == 64
+#define __AMO(op)   "amo" #op ".d"
+#elif BITOP_BITS_PER_WORD == 32
+#define __AMO(op)   "amo" #op ".w"
+#else
+#error "Unexpected BITOP_BITS_PER_WORD"
+#endif
+
+/* Based on linux/arch/include/asm/bitops.h */
+
+/*
+ * Non-atomic bit manipulation.
+ *
+ * Implemented using atomics to be interrupt safe. Could alternatively
+ * implement with local interrupt masking.
+ */
+#define __set_bit(n, p)      set_bit(n, p)
+#define __clear_bit(n, p)    clear_bit(n, p)
+
+#define test_and_op_bit_ord(op, mod, nr, addr, ord)     \
+({                                                      \
+    bitop_uint_t res, mask;                             \
+    mask = BITOP_MASK(nr);                              \
+    asm volatile (                                      \
+        __AMO(op) #ord " %0, %2, %1"                    \
+        : "=r" (res), "+A" (addr[BITOP_WORD(nr)])       \
+        : "r" (mod(mask))                               \
+        : "memory");                                    \
+    ((res & mask) != 0);                                \
+})
+
+#define op_bit_ord(op, mod, nr, addr, ord)      \
+    asm volatile (                              \
+        __AMO(op) #ord " zero, %1, %0"          \
+        : "+A" (addr[BITOP_WORD(nr)])           \
+        : "r" (mod(BITOP_MASK(nr)))             \
+        : "memory");
+
+#define test_and_op_bit(op, mod, nr, addr)    \
+    test_and_op_bit_ord(op, mod, nr, addr, .aqrl)
+#define op_bit(op, mod, nr, addr) \
+    op_bit_ord(op, mod, nr, addr, )
+
+/* Bitmask modifiers */
+#define NOP(x)    (x)
+#define NOT(x)    (~(x))
+
+/**
+ * test_and_set_bit - Set a bit and return its old value
+ * @nr: Bit to set
+ * @addr: Address to count from
+ */
+static inline bool test_and_set_bit(int nr, volatile void *p)
+{
+    volatile bitop_uint_t *addr = p;
+
+    return test_and_op_bit(or, NOP, nr, addr);
+}
+
+/**
+ * test_and_clear_bit - Clear a bit and return its old value
+ * @nr: Bit to clear
+ * @addr: Address to count from
+ */
+static inline bool test_and_clear_bit(int nr, volatile void *p)
+{
+    volatile bitop_uint_t *addr = p;
+
+    return test_and_op_bit(and, NOT, nr, addr);
+}
+
+/**
+ * test_and_change_bit - Toggle (change) a bit and return its old value
+ * @nr: Bit to change
+ * @addr: Address to count from
+ *
+ * This operation is atomic and cannot be reordered.
+ * It also implies a memory barrier.
+ */
+static inline bool test_and_change_bit(int nr, volatile void *p)
+{
+    volatile bitop_uint_t *addr = p;
+
+    return test_and_op_bit(xor, NOP, nr, addr);
+}
+
+/**
+ * set_bit - Atomically set a bit in memory
+ * @nr: the bit to set
+ * @addr: the address to start counting from
+ *
+ * Note that @nr may be almost arbitrarily large; this function is not
+ * restricted to acting on a single-word quantity.
+ */
+static inline void set_bit(int nr, volatile void *p)
+{
+    volatile bitop_uint_t *addr = p;
+
+    op_bit(or, NOP, nr, addr);
+}
+
+/**
+ * clear_bit - Clears a bit in memory
+ * @nr: Bit to clear
+ * @addr: Address to start counting from
+ */
+static inline void clear_bit(int nr, volatile void *p)
+{
+    volatile bitop_uint_t *addr = p;
+
+    op_bit(and, NOT, nr, addr);
+}
+
+#undef test_and_op_bit
+#undef op_bit
+#undef NOP
+#undef NOT
+#undef __AMO
+
+#endif /* _ASM_RISCV_BITOPS_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:01:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752287.1160522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGi-0002DQ-Oi; Tue, 02 Jul 2024 11:01:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752287.1160522; Tue, 02 Jul 2024 11:01:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGi-0002B7-Kb; Tue, 02 Jul 2024 11:01:52 +0000
Received: by outflank-mailman (input) for mailman id 752287;
 Tue, 02 Jul 2024 11:01: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObGg-0000Yl-P8
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:01:50 +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 7b7479ea-3862-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 13:01:50 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-57cf8880f95so1613980a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:01:50 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7516310768sm269306866b.218.2024.07.02.04.01.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:01: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: 7b7479ea-3862-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719918109; x=1720522909; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vXjBrtu/mn1eJNJdFhT1OrmNKZhkrDBzpy+oMb6YDGA=;
        b=WRU82DuMVuDosncPfJcnZKmpEFDRvDondSvNkQ4Fi81hM0YiKMKMREVzmB4IqNXhgX
         7rau8SS+ASueN8HsuQ4NJ4Z3VTFPmkzzOkiQ0XDqVyl5dMhUq0n7Iavc6ZmoTzeONbu1
         oGCU9SW+GSIvK8rH3lky8+lK/5aGAohMIwmRY7DHt32OekQcBPSzZwh1PiDxOROzlHvF
         /KBbE71J1eRfmlzFmsownVO0Jnm1LZef5WyNf5Qav/tdAGeF9IGEecMy4TUBxRR2HKXk
         FCRE4RLVEKFxwXLs3jsi8Cgt4v4aH+uFpqdtC9Gg2g8xh6vaPW4UmGU0lWCXZo0WgrMo
         dP2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719918109; x=1720522909;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=vXjBrtu/mn1eJNJdFhT1OrmNKZhkrDBzpy+oMb6YDGA=;
        b=uCCNe7EczaBUKJctOTR0dj/r+CQ8ju5rZVpa5rghSWGvy/KhlRNADFh3ZItczDxrfw
         ceMx15ZRaFjSambQyS7C76Fs+s5zoRtNQ5bpPbseC88CtIc3IcjHF9RVUVoriOVolQcX
         PpwMHC9C/aubKonWGVh4tdeDh95wgYPObaSjnBe0PMcVKdyhztpBXaYwKGqfmDn2y3Uy
         nz4AKWpvGqjjyGg3sJ29jwmaxQPzoL9zdtK/W2lVROv+5DhISHZVxan59d0GuPTzSyHL
         0U2cxRJKo5y6WYQIqGtSf+4NCT9Ft1FKrXRdC8OAC+wZXIfVBccdre2wjB2cFWop+jgG
         8Syw==
X-Gm-Message-State: AOJu0YzeJoeVGoSWSRXO8v+GGvJd/xtCxjIUg8B8R4dV4tskioa5bIz3
	N/7veUZjXdrGX5U80HL/+bilH9gXsnFUwGZWViP50gh+cfxPBMjn+Y6bA1wf
X-Google-Smtp-Source: AGHT+IG1ElP8oExQdN2JZHAW7nJhQL+Q2M1vGiJZplWF++xD9hrNbas2UoMVjgjJXs7kodnWkRIKbg==
X-Received: by 2002:a17:906:eece:b0:a75:20f7:2c71 with SMTP id a640c23a62f3a-a7520f733b6mr605166966b.38.1719918109416;
        Tue, 02 Jul 2024 04:01:49 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v14 8/9] xen/riscv: introduce ANDN_INSN
Date: Tue,  2 Jul 2024 13:01:35 +0200
Message-ID: <07c628e8552f6e31a07e4261b273553cb4a3669b.1719917348.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719917348.git.oleksii.kurochko@gmail.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

RISC-V does a conditional toolchain for the Zbb extension
(xen/arch/riscv/rules.mk), but unconditionally uses the
ANDN instruction in emulate_xchg_1_2().

Fixes: 51dabd6312c ("xen/riscv: introduce cmpxchg.h")

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Suggested-By: Jan Beulich <jbeulich@suse.com>
---
Andrew,

Could you please take a look if you are okay with suggested
changes.

Thanks in advance.
---
 Changes in V14:
  - update the commit on top of ANDN definition.
  - use .insn instead of andn to support gas which doesn't understand
    andn instruction.
  - add Suggested-By: Jan Beulich <jbeulich@suse.com>
---
 Changes in V13:
  - new patch
---
 xen/arch/riscv/include/asm/cmpxchg.h | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/cmpxchg.h b/xen/arch/riscv/include/asm/cmpxchg.h
index d5e678c036..34d5bd48b3 100644
--- a/xen/arch/riscv/include/asm/cmpxchg.h
+++ b/xen/arch/riscv/include/asm/cmpxchg.h
@@ -18,6 +18,19 @@
         : "r" (new) \
         : "memory" );
 
+/*
+ * To not face an issue that gas doesn't understand ANDN instruction
+ * it is encoded using .insn directive.
+ */
+#ifdef __riscv_zbb
+#define ANDN_INSN(rd, rs1, rs2)                 \
+    ".insn r 0x33, 0x7, 0x20, " rd ", " rs1 ", " rs2 "\n"
+#else
+#define ANDN_INSN(rd, rs1, rs2)                 \
+    "not " rd ", " rs2 "\n"                     \
+    "and " rd ", " rs1 ", " rd "\n"
+#endif
+
 /*
  * For LR and SC, the A extension requires that the address held in rs1 be
  * naturally aligned to the size of the operand (i.e., eight-byte aligned
@@ -48,7 +61,7 @@
     \
     asm volatile ( \
         "0: lr.w" lr_sfx " %[old], %[ptr_]\n" \
-        "   andn  %[scratch], %[old], %[mask]\n" \
+        ANDN_INSN("%[scratch]", "%[old]", "%[mask]") \
         "   or   %[scratch], %[scratch], %z[new_]\n" \
         "   sc.w" sc_sfx " %[scratch], %[scratch], %[ptr_]\n" \
         "   bnez %[scratch], 0b\n" \
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:01:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752281.1160461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGc-0000cI-PJ; Tue, 02 Jul 2024 11:01:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752281.1160461; Tue, 02 Jul 2024 11: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 1sObGc-0000c8-Ky; Tue, 02 Jul 2024 11:01:46 +0000
Received: by outflank-mailman (input) for mailman id 752281;
 Tue, 02 Jul 2024 11:01: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObGb-0000Yl-8M
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:01:45 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 778ebf9e-3862-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 13:01:43 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52db11b1d31so5642077e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:01:43 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7516310768sm269306866b.218.2024.07.02.04.01.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:01: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: 778ebf9e-3862-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719918102; x=1720522902; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hqKpyboE7tWF7PWd9CeoA+EhM5ccJlbOY2elCP5bC/s=;
        b=eDKl2TfKYuNYR3VkgCIG/TlcMlGiaxVmlAffgk233KnErFKiKTAGVWfbsv+1o/Zlcc
         02X7c1MTsYiAeyahRy3g1twZd9IrbQ0Fpl5xafmJ1e3o0JkKR623pP1lj/QY3/1/En0R
         KAK4KomBgvSwJdRA692YLGqmRxIma9WWxWs/CCAVPdXh0cMkYpY+OyxlHZpBhpj50SXx
         tweWqlUTJw6/XitD7ZXGMqLsPu36arUAdNSGGFdZ6VMByjGNivjzGIK1ltYfsltKaaTg
         I9f3njKTerrzAvFcNemmcwrtOAFa72iDJdWKFijIPyLoVa2RKCIF/WQtWLeTW4BDLoYJ
         OFtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719918102; x=1720522902;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hqKpyboE7tWF7PWd9CeoA+EhM5ccJlbOY2elCP5bC/s=;
        b=uhiFKxnDJLKbDid97eH27qmB1yJemhqFbtAAhnvxzhZb6fE3zNXBSSZH6CDBh2+D1o
         Xn6WEJJTIa5TMGmJqBMVblxdBFObU8El7ERHsYtXxUlCksMlB66JXFq/GWDi1ehHLX93
         4wCdfKhOHWzXJ3HeQi8wj6zw8QD747t9wZFzXbf5Eln6zvo532mWAovK/rTeDNj7I5U9
         jBfIla75MpHG2HBJeh9s6p5icoJMzSF5vTZYuukJkBSQRwj2qJVD0E53E6voIMUOERKd
         G4bop1mN78fCsmyTkqvchQGKdIdfYKEX15o+iS7WDuiVDdzH6uJ0OCAPVKD1MMRB3pVO
         iUWQ==
X-Gm-Message-State: AOJu0YydP7BLoiR9CsofGCbaj+hB2aAsieMyYuTbiWFWd7W4InxY+ZNW
	nvdQh7n+cFND/EgXemuG3f0NrOeKT6mL+dj9zcavlUEC4Cg9OBPd9nPQY2wu
X-Google-Smtp-Source: AGHT+IG8tPIWzmPpWKtRBU14f4lxe94t3/47nhTs//yLUzC01QZ4fu+LclromPDoQq9XdS/FnnUnIA==
X-Received: by 2002:a05:6512:1246:b0:52c:8024:1db with SMTP id 2adb3069b0e04-52e827364d9mr6402711e87.63.1719918101862;
        Tue, 02 Jul 2024 04:01:41 -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>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v14 1/9] xen: introduce generic non-atomic test_*bit()
Date: Tue,  2 Jul 2024 13:01:28 +0200
Message-ID: <2f60d1fd7b3ac7d603486ce03a112d58352bf16d.1719917348.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719917348.git.oleksii.kurochko@gmail.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The following generic functions were introduced:
* test_bit
* generic__test_and_set_bit
* generic__test_and_clear_bit
* generic__test_and_change_bit

These functions and macros can be useful for architectures
that don't have corresponding arch-specific instructions.

Also, the patch introduces the following generics which are
used by the functions mentioned above:
* BITOP_BITS_PER_WORD
* BITOP_MASK
* BITOP_WORD
* BITOP_TYPE

The following approach was chosen for generic*() and arch*() bit
operation functions:
If the bit operation function that is going to be generic starts
with the prefix "__", then the corresponding generic/arch function
will also contain the "__" prefix. For example:
 * test_bit() will be defined using arch_test_bit() and
   generic_test_bit().
 * __test_and_set_bit() will be defined using
   arch__test_and_set_bit() and generic__test_and_set_bit().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V14:
 - Nothing changed. Only Rebase.
---
Changes in V13:
 - add Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V12:
 - revert change of moving the definition of BITS_PER_BYTE from <arch>/bitops.h to xen/bitops.h.
   ( a separate patch will be provided to put BITS_PER_BYTE to proper place )
 - drop comments on top of generic_*() functions and update the comments above __test_*() and test_bit().
 - update how static inline __test_*() are defined ( drop pointless fallback #define ) and test_bit().
 - drop the footer after Signed-off-by.
Changes in V11:
 - fix identation in generic_test_bit() function.
 - move definition of BITS_PER_BYTE from <arch>/bitops.h to xen/bitops.h
 - drop the changes in arm64/livepatch.c.
 - update the the comments on top of functions: generic__test_and_set_bit(), generic__test_and_clear_bit(),  generic__test_and_change_bit(),
   generic_test_bit().
 - Update footer after Signed-off section.
 - Rebase the patch on top of staging branch, so it can be merged when necessary approves will be given.
 - add Reviewed-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V10:
 - update the commit message. ( re-order paragraphs and add explanation usage of prefix "__" in bit
   operation function names )
 - add  parentheses around the whole expression of bitop_bad_size() macros.
 - move macros bitop_bad_size() above asm/bitops.h as it is not arch-specific anymore and there is
   no need for overriding it.
 - drop macros check_bitop_size() and use "if ( bitop_bad_size(addr) ) __bitop_bad_size();" implictly
   where it is needed.
 - in <xen/bitops.h> use 'int' as a first parameter for __test_and_*(), generic__test_and_*() to be
   consistent with how the mentioned functions were declared in the original per-arch functions.
 - add 'const' to p variable in generic_test_bit().
 - move definition of BITOP_BITS_PER_WORD and bitop_uint_t to xen/bitops.h as we don't allow for arch
   overrides these definitions anymore.
---
Changes in V9:
  - move up xen/bitops.h in ppc/asm/page.h.
  - update defintion of arch_check_bitop_size.
    And drop correspondent macros from x86/asm/bitops.h
  - drop parentheses in generic__test_and_set_bit() for definition of
    local variable p.
  - fix indentation inside #ifndef BITOP_TYPE...#endif
  - update the commit message.
---
 Changes in V8:
  - drop __pure for function which uses volatile.
  - drop unnessary () in generic__test_and_change_bit() for addr casting.
  - update prototype of generic_test_bit() and test_bit(): now it returns bool
    instead of int.
  - update generic_test_bit() to use BITOP_MASK().
  - Deal with fls{l} changes: it should be in the patch with introduced generic fls{l}.
  - add a footer with explanation of dependency on an uncommitted patch after Signed-off.
  - abstract bitop_size().
  - move BITOP_TYPE define to <xen/types.h>.
---
 Changes in V7:
  - move everything to xen/bitops.h to follow the same approach for all generic
    bit ops.
  - put together BITOP_BITS_PER_WORD and bitops_uint_t.
  - make BITOP_MASK more generic.
  - drop #ifdef ... #endif around BITOP_MASK, BITOP_WORD as they are generic
    enough.
  - drop "_" for generic__{test_and_set_bit,...}().
  - drop " != 0" for functions which return bool.
  - add volatile during the cast for generic__{...}().
  - update the commit message.
  - update arch related code to follow the proposed generic approach.
---
 Changes in V6:
  - Nothing changed ( only rebase )
---
 Changes in V5:
   - new patch
---
 xen/arch/arm/include/asm/bitops.h |  69 -----------
 xen/arch/ppc/include/asm/bitops.h |  54 ---------
 xen/arch/ppc/include/asm/page.h   |   2 +-
 xen/arch/ppc/mm-radix.c           |   2 +-
 xen/arch/x86/include/asm/bitops.h |  31 ++---
 xen/include/xen/bitops.h          | 182 ++++++++++++++++++++++++++++++
 6 files changed, 193 insertions(+), 147 deletions(-)

diff --git a/xen/arch/arm/include/asm/bitops.h b/xen/arch/arm/include/asm/bitops.h
index 8f4bdc09d1..db23d7edc3 100644
--- a/xen/arch/arm/include/asm/bitops.h
+++ b/xen/arch/arm/include/asm/bitops.h
@@ -22,11 +22,6 @@
 #define __set_bit(n,p)            set_bit(n,p)
 #define __clear_bit(n,p)          clear_bit(n,p)
 
-#define BITOP_BITS_PER_WORD     32
-#define BITOP_MASK(nr)          (1UL << ((nr) % BITOP_BITS_PER_WORD))
-#define BITOP_WORD(nr)          ((nr) / BITOP_BITS_PER_WORD)
-#define BITS_PER_BYTE           8
-
 #define ADDR (*(volatile int *) addr)
 #define CONST_ADDR (*(const volatile int *) addr)
 
@@ -76,70 +71,6 @@ bool test_and_change_bit_timeout(int nr, volatile void *p,
 bool clear_mask16_timeout(uint16_t mask, volatile void *p,
                           unsigned int max_try);
 
-/**
- * __test_and_set_bit - Set a bit and return its old value
- * @nr: Bit to set
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail.  You must protect multiple accesses with a lock.
- */
-static inline int __test_and_set_bit(int nr, volatile void *addr)
-{
-        unsigned int mask = BITOP_MASK(nr);
-        volatile unsigned int *p =
-                ((volatile unsigned int *)addr) + BITOP_WORD(nr);
-        unsigned int old = *p;
-
-        *p = old | mask;
-        return (old & mask) != 0;
-}
-
-/**
- * __test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail.  You must protect multiple accesses with a lock.
- */
-static inline int __test_and_clear_bit(int nr, volatile void *addr)
-{
-        unsigned int mask = BITOP_MASK(nr);
-        volatile unsigned int *p =
-                ((volatile unsigned int *)addr) + BITOP_WORD(nr);
-        unsigned int old = *p;
-
-        *p = old & ~mask;
-        return (old & mask) != 0;
-}
-
-/* WARNING: non atomic and it can be reordered! */
-static inline int __test_and_change_bit(int nr,
-                                            volatile void *addr)
-{
-        unsigned int mask = BITOP_MASK(nr);
-        volatile unsigned int *p =
-                ((volatile unsigned int *)addr) + BITOP_WORD(nr);
-        unsigned int old = *p;
-
-        *p = old ^ mask;
-        return (old & mask) != 0;
-}
-
-/**
- * test_bit - Determine whether a bit is set
- * @nr: bit number to test
- * @addr: Address to start counting from
- */
-static inline int test_bit(int nr, const volatile void *addr)
-{
-        const volatile unsigned int *p = (const volatile unsigned int *)addr;
-        return 1UL & (p[BITOP_WORD(nr)] >> (nr & (BITOP_BITS_PER_WORD-1)));
-}
-
 #define arch_ffs(x)  ((x) ? 1 + __builtin_ctz(x) : 0)
 #define arch_ffsl(x) ((x) ? 1 + __builtin_ctzl(x) : 0)
 #define arch_fls(x)  ((x) ? 32 - __builtin_clz(x) : 0)
diff --git a/xen/arch/ppc/include/asm/bitops.h b/xen/arch/ppc/include/asm/bitops.h
index 8119b5ace8..ee0e58e2e8 100644
--- a/xen/arch/ppc/include/asm/bitops.h
+++ b/xen/arch/ppc/include/asm/bitops.h
@@ -15,11 +15,6 @@
 #define __set_bit(n, p)         set_bit(n, p)
 #define __clear_bit(n, p)       clear_bit(n, p)
 
-#define BITOP_BITS_PER_WORD     32
-#define BITOP_MASK(nr)          (1U << ((nr) % BITOP_BITS_PER_WORD))
-#define BITOP_WORD(nr)          ((nr) / BITOP_BITS_PER_WORD)
-#define BITS_PER_BYTE           8
-
 /* PPC bit number conversion */
 #define PPC_BITLSHIFT(be)    (BITS_PER_LONG - 1 - (be))
 #define PPC_BIT(bit)         (1UL << PPC_BITLSHIFT(bit))
@@ -69,17 +64,6 @@ static inline void clear_bit(int nr, volatile void *addr)
     clear_bits(BITOP_MASK(nr), (volatile unsigned int *)addr + BITOP_WORD(nr));
 }
 
-/**
- * test_bit - Determine whether a bit is set
- * @nr: bit number to test
- * @addr: Address to start counting from
- */
-static inline int test_bit(int nr, const volatile void *addr)
-{
-    const volatile unsigned int *p = addr;
-    return 1 & (p[BITOP_WORD(nr)] >> (nr & (BITOP_BITS_PER_WORD - 1)));
-}
-
 static inline unsigned int test_and_clear_bits(
     unsigned int mask,
     volatile unsigned int *p)
@@ -133,44 +117,6 @@ static inline int test_and_set_bit(unsigned int nr, volatile void *addr)
         (volatile unsigned int *)addr + BITOP_WORD(nr)) != 0;
 }
 
-/**
- * __test_and_set_bit - Set a bit and return its old value
- * @nr: Bit to set
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail.  You must protect multiple accesses with a lock.
- */
-static inline int __test_and_set_bit(int nr, volatile void *addr)
-{
-    unsigned int mask = BITOP_MASK(nr);
-    volatile unsigned int *p = (volatile unsigned int *)addr + BITOP_WORD(nr);
-    unsigned int old = *p;
-
-    *p = old | mask;
-    return (old & mask) != 0;
-}
-
-/**
- * __test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail.  You must protect multiple accesses with a lock.
- */
-static inline int __test_and_clear_bit(int nr, volatile void *addr)
-{
-    unsigned int mask = BITOP_MASK(nr);
-    volatile unsigned int *p = (volatile unsigned int *)addr + BITOP_WORD(nr);
-    unsigned int old = *p;
-
-    *p = old & ~mask;
-    return (old & mask) != 0;
-}
-
 #define arch_ffs(x)  ((x) ? 1 + __builtin_ctz(x) : 0)
 #define arch_ffsl(x) ((x) ? 1 + __builtin_ctzl(x) : 0)
 #define arch_fls(x)  ((x) ? 32 - __builtin_clz(x) : 0)
diff --git a/xen/arch/ppc/include/asm/page.h b/xen/arch/ppc/include/asm/page.h
index 890e285051..6d4cd2611c 100644
--- a/xen/arch/ppc/include/asm/page.h
+++ b/xen/arch/ppc/include/asm/page.h
@@ -2,9 +2,9 @@
 #ifndef _ASM_PPC_PAGE_H
 #define _ASM_PPC_PAGE_H
 
+#include <xen/bitops.h>
 #include <xen/types.h>
 
-#include <asm/bitops.h>
 #include <asm/byteorder.h>
 
 #define PDE_VALID     PPC_BIT(0)
diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
index ab5a10695c..9055730997 100644
--- a/xen/arch/ppc/mm-radix.c
+++ b/xen/arch/ppc/mm-radix.c
@@ -1,11 +1,11 @@
 /* SPDX-License-Identifier: GPL-2.0-or-later */
+#include <xen/bitops.h>
 #include <xen/init.h>
 #include <xen/kernel.h>
 #include <xen/mm.h>
 #include <xen/types.h>
 #include <xen/lib.h>
 
-#include <asm/bitops.h>
 #include <asm/byteorder.h>
 #include <asm/early_printk.h>
 #include <asm/page.h>
diff --git a/xen/arch/x86/include/asm/bitops.h b/xen/arch/x86/include/asm/bitops.h
index aa71542e7b..f9aa60111f 100644
--- a/xen/arch/x86/include/asm/bitops.h
+++ b/xen/arch/x86/include/asm/bitops.h
@@ -19,9 +19,6 @@
 #define ADDR (*(volatile int *) addr)
 #define CONST_ADDR (*(const volatile int *) addr)
 
-extern void __bitop_bad_size(void);
-#define bitop_bad_size(addr) (sizeof(*(addr)) < 4)
-
 /**
  * set_bit - Atomically set a bit in memory
  * @nr: the bit to set
@@ -175,7 +172,7 @@ static inline int test_and_set_bit(int nr, volatile void *addr)
 })
 
 /**
- * __test_and_set_bit - Set a bit and return its old value
+ * arch__test_and_set_bit - Set a bit and return its old value
  * @nr: Bit to set
  * @addr: Address to count from
  *
@@ -183,7 +180,7 @@ static inline int test_and_set_bit(int nr, volatile void *addr)
  * If two examples of this operation race, one can appear to succeed
  * but actually fail.  You must protect multiple accesses with a lock.
  */
-static inline int __test_and_set_bit(int nr, void *addr)
+static inline int arch__test_and_set_bit(int nr, volatile void *addr)
 {
     int oldbit;
 
@@ -194,10 +191,7 @@ static inline int __test_and_set_bit(int nr, void *addr)
 
     return oldbit;
 }
-#define __test_and_set_bit(nr, addr) ({                 \
-    if ( bitop_bad_size(addr) ) __bitop_bad_size();     \
-    __test_and_set_bit(nr, addr);                       \
-})
+#define arch__test_and_set_bit arch__test_and_set_bit
 
 /**
  * test_and_clear_bit - Clear a bit and return its old value
@@ -224,7 +218,7 @@ static inline int test_and_clear_bit(int nr, volatile void *addr)
 })
 
 /**
- * __test_and_clear_bit - Clear a bit and return its old value
+ * arch__test_and_clear_bit - Clear a bit and return its old value
  * @nr: Bit to set
  * @addr: Address to count from
  *
@@ -232,7 +226,7 @@ static inline int test_and_clear_bit(int nr, volatile void *addr)
  * If two examples of this operation race, one can appear to succeed
  * but actually fail.  You must protect multiple accesses with a lock.
  */
-static inline int __test_and_clear_bit(int nr, void *addr)
+static inline int arch__test_and_clear_bit(int nr, volatile void *addr)
 {
     int oldbit;
 
@@ -243,13 +237,10 @@ static inline int __test_and_clear_bit(int nr, void *addr)
 
     return oldbit;
 }
-#define __test_and_clear_bit(nr, addr) ({               \
-    if ( bitop_bad_size(addr) ) __bitop_bad_size();     \
-    __test_and_clear_bit(nr, addr);                     \
-})
+#define arch__test_and_clear_bit arch__test_and_clear_bit
 
 /* WARNING: non atomic and it can be reordered! */
-static inline int __test_and_change_bit(int nr, void *addr)
+static inline int arch__test_and_change_bit(int nr, volatile void *addr)
 {
     int oldbit;
 
@@ -260,10 +251,7 @@ static inline int __test_and_change_bit(int nr, void *addr)
 
     return oldbit;
 }
-#define __test_and_change_bit(nr, addr) ({              \
-    if ( bitop_bad_size(addr) ) __bitop_bad_size();     \
-    __test_and_change_bit(nr, addr);                    \
-})
+#define arch__test_and_change_bit arch__test_and_change_bit
 
 /**
  * test_and_change_bit - Change a bit and return its new value
@@ -307,8 +295,7 @@ static inline int variable_test_bit(int nr, const volatile void *addr)
     return oldbit;
 }
 
-#define test_bit(nr, addr) ({                           \
-    if ( bitop_bad_size(addr) ) __bitop_bad_size();     \
+#define arch_test_bit(nr, addr) ({                      \
     __builtin_constant_p(nr) ?                          \
         constant_test_bit(nr, addr) :                   \
         variable_test_bit(nr, addr);                    \
diff --git a/xen/include/xen/bitops.h b/xen/include/xen/bitops.h
index 6a5e28730a..cc09d273c9 100644
--- a/xen/include/xen/bitops.h
+++ b/xen/include/xen/bitops.h
@@ -4,6 +4,19 @@
 #include <xen/compiler.h>
 #include <xen/types.h>
 
+#define BITOP_BITS_PER_WORD 32
+typedef uint32_t bitop_uint_t;
+
+#define BITOP_MASK(nr)  ((bitop_uint_t)1 << ((nr) % BITOP_BITS_PER_WORD))
+
+#define BITOP_WORD(nr)  ((nr) / BITOP_BITS_PER_WORD)
+
+#define BITS_PER_BYTE 8
+
+extern void __bitop_bad_size(void);
+
+#define bitop_bad_size(addr) (sizeof(*(addr)) < sizeof(bitop_uint_t))
+
 #include <asm/bitops.h>
 
 /*
@@ -24,6 +37,175 @@
 unsigned int __pure generic_ffsl(unsigned long x);
 unsigned int __pure generic_flsl(unsigned long x);
 
+/**
+ * generic__test_and_set_bit - Set a bit and return its old value
+ * @nr: Bit to set
+ * @addr: Address to count from
+ *
+ * This operation is non-atomic and can be reordered.
+ * If two examples of this operation race, one can appear to succeed
+ * but actually fail.  You must protect multiple accesses with a lock.
+ */
+static always_inline bool
+generic__test_and_set_bit(int nr, volatile void *addr)
+{
+    bitop_uint_t mask = BITOP_MASK(nr);
+    volatile bitop_uint_t *p = (volatile bitop_uint_t *)addr + BITOP_WORD(nr);
+    bitop_uint_t old = *p;
+
+    *p = old | mask;
+    return (old & mask);
+}
+
+/**
+ * generic__test_and_clear_bit - Clear a bit and return its old value
+ * @nr: Bit to clear
+ * @addr: Address to count from
+ *
+ * This operation is non-atomic and can be reordered.
+ * If two examples of this operation race, one can appear to succeed
+ * but actually fail.  You must protect multiple accesses with a lock.
+ */
+static always_inline bool
+generic__test_and_clear_bit(int nr, volatile void *addr)
+{
+    bitop_uint_t mask = BITOP_MASK(nr);
+    volatile bitop_uint_t *p = (volatile bitop_uint_t *)addr + BITOP_WORD(nr);
+    bitop_uint_t old = *p;
+
+    *p = old & ~mask;
+    return (old & mask);
+}
+
+/**
+ * generic__test_and_change_bit - Change a bit and return its old value
+ * @nr: Bit to change
+ * @addr: Address to count from
+ *
+ * This operation is non-atomic and can be reordered.
+ * If two examples of this operation race, one can appear to succeed
+ * but actually fail.  You must protect multiple accesses with a lock.
+ */
+static always_inline bool
+generic__test_and_change_bit(int nr, volatile void *addr)
+{
+    bitop_uint_t mask = BITOP_MASK(nr);
+    volatile bitop_uint_t *p = (volatile bitop_uint_t *)addr + BITOP_WORD(nr);
+    bitop_uint_t old = *p;
+
+    *p = old ^ mask;
+    return (old & mask);
+}
+
+/**
+ * generic_test_bit - Determine whether a bit is set
+ * @nr: bit number to test
+ * @addr: Address to start counting from
+ *
+ * This operation is non-atomic and can be reordered.
+ * If two examples of this operation race, one can appear to succeed
+ * but actually fail.  You must protect multiple accesses with a lock.
+ */
+static always_inline bool generic_test_bit(int nr, const volatile void *addr)
+{
+    bitop_uint_t mask = BITOP_MASK(nr);
+    const volatile bitop_uint_t *p =
+        (const volatile bitop_uint_t *)addr + BITOP_WORD(nr);
+
+    return (*p & mask);
+}
+
+/**
+ * __test_and_set_bit - Set a bit and return its old value
+ * @nr: Bit to set
+ * @addr: Address to count from
+ *
+ * This operation is non-atomic and can be reordered.
+ * If two examples of this operation race, one can appear to succeed
+ * but actually fail.  You must protect multiple accesses with a lock.
+ */
+static always_inline bool
+__test_and_set_bit(int nr, volatile void *addr)
+{
+#ifndef arch__test_and_set_bit
+#define arch__test_and_set_bit generic__test_and_set_bit
+#endif
+
+    return arch__test_and_set_bit(nr, addr);
+}
+#define __test_and_set_bit(nr, addr) ({             \
+    if ( bitop_bad_size(addr) ) __bitop_bad_size(); \
+    __test_and_set_bit(nr, addr);                   \
+})
+
+/**
+ * __test_and_clear_bit - Clear a bit and return its old value
+ * @nr: Bit to clear
+ * @addr: Address to count from
+ *
+ * This operation is non-atomic and can be reordered.
+ * If two examples of this operation race, one can appear to succeed
+ * but actually fail.  You must protect multiple accesses with a lock.
+ */
+static always_inline bool
+__test_and_clear_bit(int nr, volatile void *addr)
+{
+#ifndef arch__test_and_clear_bit
+#define arch__test_and_clear_bit generic__test_and_clear_bit
+#endif
+
+    return arch__test_and_clear_bit(nr, addr);
+}
+#define __test_and_clear_bit(nr, addr) ({           \
+    if ( bitop_bad_size(addr) ) __bitop_bad_size(); \
+    __test_and_clear_bit(nr, addr);                 \
+})
+
+/**
+ * __test_and_change_bit - Change a bit and return its old value
+ * @nr: Bit to change
+ * @addr: Address to count from
+ *
+ * This operation is non-atomic and can be reordered.
+ * If two examples of this operation race, one can appear to succeed
+ * but actually fail.  You must protect multiple accesses with a lock.
+ */
+static always_inline bool
+__test_and_change_bit(int nr, volatile void *addr)
+{
+#ifndef arch__test_and_change_bit
+#define arch__test_and_change_bit generic__test_and_change_bit
+#endif
+
+    return arch__test_and_change_bit(nr, addr);
+}
+#define __test_and_change_bit(nr, addr) ({              \
+    if ( bitop_bad_size(addr) ) __bitop_bad_size();     \
+    __test_and_change_bit(nr, addr);                    \
+})
+
+/**
+ * test_bit - Determine whether a bit is set
+ * @nr: bit number to test
+ * @addr: Address to start counting from
+ *
+ * This operation is non-atomic and can be reordered.
+ * If two examples of this operation race, one can appear to succeed
+ * but actually fail.  You must protect multiple accesses with a lock.
+ */
+static always_inline bool test_bit(int nr, const volatile void *addr)
+{
+#ifndef arch_test_bit
+#define arch_test_bit generic_test_bit
+#endif
+
+    return arch_test_bit(nr, addr);
+}
+#define test_bit(nr, addr) ({                           \
+    if ( bitop_bad_size(addr) ) __bitop_bad_size();     \
+    test_bit(nr, addr);                                 \
+})
+
 static always_inline __pure unsigned int ffs(unsigned int x)
 {
     if ( __builtin_constant_p(x) )
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:01:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752284.1160495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObGg-0001XO-Kp; Tue, 02 Jul 2024 11:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752284.1160495; Tue, 02 Jul 2024 11: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 1sObGg-0001X9-H5; Tue, 02 Jul 2024 11:01:50 +0000
Received: by outflank-mailman (input) for mailman id 752284;
 Tue, 02 Jul 2024 11:01:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObGe-0000Yf-9Z
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:01:48 +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 7932dc43-3862-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 13:01:46 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a728f74c23dso456865166b.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:01:46 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7516310768sm269306866b.218.2024.07.02.04.01.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:01: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: 7932dc43-3862-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719918106; x=1720522906; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dpvlbHk8NcYflQScXvllWu7mq9hw8lJB3mPUY5Yk6zc=;
        b=BI6pYfhN3KgD7TAj2LhLaqJbT7Kg3SoYxMb0VarwNIdXH3Oximc70acWiEQY/BhG+S
         BWxlKYtkdW0QRpLb8jSGgDg4D3ogdCH1zuJ3GLBhVS+w/6wiEeu70lPqxBz2QkRRVzQp
         iyfuyDA49HkPJimN1dPv+uqvP/TSfpJq7epkHHKIbQgwh/2fRpQK3PG60j5FBbbP8WQ8
         mzQfqaLsNkF8viHFtfeGziMeRLjwYdZqxibbxOccgb0LZX9jfAqfkAvgeK9khU1wRo/7
         th3+O2z8LpRqjDvMo+rh4mO+vJo7wQJ51MMSLS3mjmlzLUEondsX5EmMyP4d4Z+c7Szw
         dsGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719918106; x=1720522906;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dpvlbHk8NcYflQScXvllWu7mq9hw8lJB3mPUY5Yk6zc=;
        b=oxY8GYoNopQR9JCeVjizEDxgYbXxt2UW+VhHYBknvwD76fzIDN0gRbNixSPjdQN4CP
         mL9uK3cCCsXSmb+Wg4zltuLWIAWtOjJd5TeTx4iMQEzq4KAdTew33wtNe6u5SLJ0X8Uw
         4YY7+ta7jL+3ilWE3EE9P13OGTlq17F3S7XM26lyIuaHc+8Wu32FE9wtvQaU8sFlCnN2
         Ppf3wPD3iqj9zfK85kN4YKNjwwz8uaAH9Yc3oo7P3o4dwUBb17oaBIuVoaj2M3v70drj
         Z0ShNrWPrd8fJ+aCw5BWQ+KSqp21U6r93noYVP+BcjmWhXybwQiCUpfxOsiu4ynWAFai
         iZDw==
X-Gm-Message-State: AOJu0Yx25qBE0M2n5E7dMNTrJqh9j0oNBmIXHcM9hWR73EB/k3aCB+kY
	dx3pga09Ns2fizk2lBQXygjCmqncneH0xw3Kf7r6YDFJtPV5nXxsXPoQEUQU
X-Google-Smtp-Source: AGHT+IHxYo5fAAXQt6h6399DHbHYkuUFBNXSmQK+K1+cZsl6cdcxfcdie2sDeajGYULsonTn6GNqXA==
X-Received: by 2002:a17:906:30ce:b0:a6f:59dc:4ed2 with SMTP id a640c23a62f3a-a751441f068mr541946466b.12.1719918105346;
        Tue, 02 Jul 2024 04:01:45 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v14 4/9] xen/riscv: add minimal amount of stubs to build full Xen
Date: Tue,  2 Jul 2024 13:01:31 +0200
Message-ID: <132066f2926716a759d4e13f0359c10173d09f71.1719917348.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719917348.git.oleksii.kurochko@gmail.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V14:
 - Nothing changed. Only rebase.
---
Changes in V13:
 - drop no_irq_type because of the patch series ( [PATCH for-4.19 0/2] arch/irq: Untangle no_irq_type )
   which was merged to staging.
 - Drop unnessary stubs after rebasing on top of staging ( [PATCH for-4.19 0/2] arch/irq: Untangle no_irq_type )
 - implement get_upper_mfn_bound() as BUG_ON("unimplemented") to not introduce max_page which will be dropped
   in the next patch ( xen/riscv: enable full Xen build )
 - remove trainling space in stubs.c after the comment /* guest_access.h */
 - drop frametable_base_pdx
 - drop frametable_virt_end
---
Changes in V7-V12:
 - Only rebase was done.
---
Changes in V6:
 - update the commit in stubs.c around /* ... common/irq.c ... */
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V5:
 - drop unrelated changes
 - assert_failed("unimplmented...") change to BUG_ON()
---
Changes in V4:
  - added new stubs which are necessary for compilation after rebase: __cpu_up(), __cpu_disable(), __cpu_die()
    from smpboot.c
  - back changes related to printk() in early_printk() as they should be removed in the next patch to avoid
    compilation error.
  - update definition of cpu_khz: __read_mostly -> __ro_after_init.
  - drop vm_event_reset_vmtrace(). It is defibed in asm-generic/vm_event.h.
  - move vm_event_*() functions from stubs.c to riscv/vm_event.c.
  - s/BUG/BUG_ON("unimplemented") in stubs.c
  - back irq_actor_none() and irq_actor_none() as common/irq.c isn't compiled at this moment,
    so this function are needed to avoid compilation error.
  - defined max_page to avoid compilation error, it will be removed as soon as common/page_alloc.c will
    be compiled.
---
Changes in V3:
 - code style fixes.
 - update attribute for frametable_base_pdx  and frametable_virt_end to __ro_after_init.
   insteaf of read_mostly.
 - use BUG() instead of assert_failed/WARN for newly introduced stubs.
 - drop "#include <public/vm_event.h>" in stubs.c and use forward declaration instead.
 - drop ack_node() and end_node() as they aren't used now.
---
Changes in V2:
 - define udelay stub
 - remove 'select HAS_PDX' from RISC-V Kconfig because of
   https://lore.kernel.org/xen-devel/20231006144405.1078260-1-andrew.cooper3@citrix.com/
---
 xen/arch/riscv/Makefile |   1 +
 xen/arch/riscv/mm.c     |  41 ++++
 xen/arch/riscv/setup.c  |   8 +
 xen/arch/riscv/stubs.c  | 418 ++++++++++++++++++++++++++++++++++++++++
 xen/arch/riscv/traps.c  |  25 +++
 5 files changed, 493 insertions(+)
 create mode 100644 xen/arch/riscv/stubs.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 1ed1a8369b..60afbc0ad9 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -4,6 +4,7 @@ obj-y += mm.o
 obj-$(CONFIG_RISCV_64) += riscv64/
 obj-y += sbi.o
 obj-y += setup.o
+obj-y += stubs.o
 obj-y += traps.o
 obj-y += vm_event.o
 
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index ae381e9581..7d09e781bf 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bug.h>
 #include <xen/compiler.h>
 #include <xen/init.h>
 #include <xen/kernel.h>
@@ -294,3 +295,43 @@ unsigned long __init calc_phys_offset(void)
     phys_offset = load_start - XEN_VIRT_START;
     return phys_offset;
 }
+
+void put_page(struct page_info *page)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_dump_shared_mem_info(void)
+{
+    BUG_ON("unimplemented");
+}
+
+int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
+{
+    BUG_ON("unimplemented");
+    return -1;
+}
+
+int xenmem_add_to_physmap_one(struct domain *d, unsigned int space,
+                              union add_to_physmap_extra extra,
+                              unsigned long idx, gfn_t gfn)
+{
+    BUG_ON("unimplemented");
+
+    return 0;
+}
+
+int destroy_xen_mappings(unsigned long s, unsigned long e)
+{
+    BUG_ON("unimplemented");
+    return -1;
+}
+
+int map_pages_to_xen(unsigned long virt,
+                     mfn_t mfn,
+                     unsigned long nr_mfns,
+                     unsigned int flags)
+{
+    BUG_ON("unimplemented");
+    return -1;
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 98a94c4c48..8bb5bdb2ae 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -1,11 +1,19 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bug.h>
 #include <xen/compile.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 
+#include <public/version.h>
+
 #include <asm/early_printk.h>
 
+void arch_get_xen_caps(xen_capabilities_info_t *info)
+{
+    BUG_ON("unimplemented");
+}
+
 /* Xen stack for bringing up the first CPU. */
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
     __aligned(STACK_SIZE);
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
new file mode 100644
index 0000000000..b67d99729f
--- /dev/null
+++ b/xen/arch/riscv/stubs.c
@@ -0,0 +1,418 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include <xen/cpumask.h>
+#include <xen/domain.h>
+#include <xen/irq.h>
+#include <xen/nodemask.h>
+#include <xen/sections.h>
+#include <xen/time.h>
+#include <public/domctl.h>
+
+#include <asm/current.h>
+
+/* 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);
+/* representing HT and core siblings of each logical CPU */
+DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_mask);
+
+nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
+
+/* time.c */
+
+unsigned long __ro_after_init cpu_khz;  /* CPU clock frequency in kHz. */
+
+s_time_t get_s_time(void)
+{
+    BUG_ON("unimplemented");
+}
+
+int reprogram_timer(s_time_t timeout)
+{
+    BUG_ON("unimplemented");
+}
+
+void send_timer_event(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
+{
+    BUG_ON("unimplemented");
+}
+
+/* shutdown.c */
+
+void machine_restart(unsigned int delay_millisecs)
+{
+    BUG_ON("unimplemented");
+}
+
+void machine_halt(void)
+{
+    BUG_ON("unimplemented");
+}
+
+/* domctl.c */
+
+long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
+                    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_get_domain_info(const struct domain *d,
+                          struct xen_domctl_getdomaininfo *info)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
+{
+    BUG_ON("unimplemented");
+}
+
+/* monitor.c */
+
+int arch_monitor_domctl_event(struct domain *d,
+                              struct xen_domctl_monitor_op *mop)
+{
+    BUG_ON("unimplemented");
+}
+
+/* smp.c */
+
+void arch_flush_tlb_mask(const cpumask_t *mask)
+{
+    BUG_ON("unimplemented");
+}
+
+void smp_send_event_check_mask(const cpumask_t *mask)
+{
+    BUG_ON("unimplemented");
+}
+
+void smp_send_call_function_mask(const cpumask_t *mask)
+{
+    BUG_ON("unimplemented");
+}
+
+/* irq.c */
+
+struct pirq *alloc_pirq_struct(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
+{
+    BUG_ON("unimplemented");
+}
+
+void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
+{
+    BUG_ON("unimplemented");
+}
+
+void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
+{
+    BUG_ON("unimplemented");
+}
+
+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");
+}
+
+/* domain.c */
+
+DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
+unsigned long __per_cpu_offset[NR_CPUS];
+
+void context_switch(struct vcpu *prev, struct vcpu *next)
+{
+    BUG_ON("unimplemented");
+}
+
+void continue_running(struct vcpu *same)
+{
+    BUG_ON("unimplemented");
+}
+
+void sync_local_execstate(void)
+{
+    BUG_ON("unimplemented");
+}
+
+void sync_vcpu_execstate(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+void startup_cpu_idle_loop(void)
+{
+    BUG_ON("unimplemented");
+}
+
+void free_domain_struct(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+void dump_pageframe_info(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+void free_vcpu_struct(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+int arch_vcpu_create(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_vcpu_destroy(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+void vcpu_switch_to_aarch64_mode(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
+{
+    BUG_ON("unimplemented");
+}
+
+int arch_domain_create(struct domain *d,
+                       struct xen_domctl_createdomain *config,
+                       unsigned int flags)
+{
+    BUG_ON("unimplemented");
+}
+
+int arch_domain_teardown(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_domain_destroy(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_domain_shutdown(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_domain_pause(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_domain_unpause(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+int arch_domain_soft_reset(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_domain_creation_finished(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
+{
+    BUG_ON("unimplemented");
+}
+
+int arch_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
+{
+    BUG_ON("unimplemented");
+}
+
+int arch_vcpu_reset(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+int domain_relinquish_resources(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_dump_domain_info(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_dump_vcpu_info(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+void vcpu_mark_events_pending(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+void vcpu_update_evtchn_irq(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+void vcpu_block_unless_event_pending(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+void vcpu_kick(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+struct domain *alloc_domain_struct(void)
+{
+    BUG_ON("unimplemented");
+}
+
+struct vcpu *alloc_vcpu_struct(const struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+unsigned long
+hypercall_create_continuation(unsigned int op, const char *format, ...)
+{
+    BUG_ON("unimplemented");
+}
+
+int __init parse_arch_dom0_param(const char *s, const char *e)
+{
+    BUG_ON("unimplemented");
+}
+
+/* guestcopy.c */
+
+unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len)
+{
+    BUG_ON("unimplemented");
+}
+
+unsigned long raw_copy_from_guest(void *to, const void __user *from,
+                                  unsigned int len)
+{
+    BUG_ON("unimplemented");
+}
+
+/* sysctl.c */
+
+long arch_do_sysctl(struct xen_sysctl *sysctl,
+                    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
+{
+    BUG_ON("unimplemented");
+}
+
+void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
+{
+    BUG_ON("unimplemented");
+}
+
+/* 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,
+                       mfn_t mfn)
+{
+    BUG_ON("unimplemented");
+}
+
+int map_mmio_regions(struct domain *d,
+                     gfn_t start_gfn,
+                     unsigned long nr,
+                     mfn_t mfn)
+{
+    BUG_ON("unimplemented");
+}
+
+int set_foreign_p2m_entry(struct domain *d, const struct domain *fd,
+                          unsigned long gfn, mfn_t mfn)
+{
+    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");
+}
+
+/* delay.c */
+
+void udelay(unsigned long usecs)
+{
+    BUG_ON("unimplemented");
+}
+
+/* guest_access.h */
+
+static inline unsigned long raw_clear_guest(void *to, unsigned int len)
+{
+    BUG_ON("unimplemented");
+}
+
+/* smpboot.c */
+
+int __cpu_up(unsigned int cpu)
+{
+    BUG_ON("unimplemented");
+}
+
+void __cpu_disable(void)
+{
+    BUG_ON("unimplemented");
+}
+
+void __cpu_die(unsigned int cpu)
+{
+    BUG_ON("unimplemented");
+}
+
+unsigned long get_upper_mfn_bound(void)
+{
+    BUG_ON("unimplemented");
+}
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index ccd3593f5a..5415cf8d90 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -4,6 +4,10 @@
  *
  * RISC-V Trap handlers
  */
+
+#include <xen/lib.h>
+#include <xen/sched.h>
+
 #include <asm/processor.h>
 #include <asm/traps.h>
 
@@ -11,3 +15,24 @@ void do_trap(struct cpu_user_regs *cpu_regs)
 {
     die();
 }
+
+void vcpu_show_execution_state(struct vcpu *v)
+{
+    BUG_ON("unimplemented");
+}
+
+void show_execution_state(const struct cpu_user_regs *regs)
+{
+    printk("implement show_execution_state(regs)\n");
+}
+
+void arch_hypercall_tasklet_result(struct vcpu *v, long res)
+{
+    BUG_ON("unimplemented");
+}
+
+enum mc_disposition arch_do_multicall_call(struct mc_state *state)
+{
+    BUG_ON("unimplemented");
+    return mc_continue;
+}
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:24:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:24:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752360.1160566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObc7-0001ta-8V; Tue, 02 Jul 2024 11:23:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752360.1160566; Tue, 02 Jul 2024 11: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 1sObc7-0001sI-1G; Tue, 02 Jul 2024 11:23:59 +0000
Received: by outflank-mailman (input) for mailman id 752360;
 Tue, 02 Jul 2024 11: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObc6-0001mD-6q
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:23:58 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 926905be-3865-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 13:23:57 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ebec2f11b7so45956101fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:23:57 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ee5161fb73sm16149981fa.33.2024.07.02.04.23.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:23: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: 926905be-3865-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719919436; x=1720524236; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6BfiwtMm7MMPr/ZmXTaMofeIOTWuXGENJ246OGl6NYg=;
        b=dMtL2tnglFBNrmRoRv5TFaItaRMEjA3wu9lb4oKY/UIN3VlccZtqwE1V3CEz57zA8Q
         cc65CIiDCVV3HvRJasz10BW5XBbJV8xkgCVdxwWzrmpZfaA0trlXmSl5EeiUx75+zRxs
         aqXBAhcjwl0anf/OUbWoiQISUxaeY6qg1guodLbl2x7dZmdLiRd+N6mwUEbofJWKo2xi
         cB7eD35l9RX6GUgBHemd75lGpPyZ3wf+MuGboGqL0V7itCr6cYcL3XDym7MdbjhFfjTQ
         H/XIe3U+qe9wZ26pZvS102WqcEC5NkkrjtGWeWypPTgaOrthyGb5DUFECAxT6FnsoeA7
         nvFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719919436; x=1720524236;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=6BfiwtMm7MMPr/ZmXTaMofeIOTWuXGENJ246OGl6NYg=;
        b=mcpy+DukeU32IaFekFATMQBRjXUUctkLo4PHMVcSHK1sdcavt4WvHvq5TdZS9+Rf5B
         fYLQ4Is+jajB71eZYePSG3RqUynrmxNEgeF/86FJVfoZUb7WubV4zocfHZKu5c9i7Y84
         Md8husjirQ/xLcFNlUzbohhbzRr90SkhWw91a1PQOI5M5ZqczdvslymTTv30i6LV8Mi9
         zAUsXQLyTdXzjcMiFSB9krL2ZVYfI494EsjYkFuQwzhm5RtXh41U6bXeiXZE/sgjT7Fp
         hTZxmyXuiSHCWAaG9ImVrTgsvLeuSah+cu4b1olYgwG5nliGD6DnXY0cExRuOiczd2zx
         qNjQ==
X-Gm-Message-State: AOJu0Yzc0a1Uop4NyTtzZnbigte+cXlUl6LkFTQDj9LlfDdbBVXbipng
	4ZzMRJtF9Ksv5qvDwXyMPHvU2Zg1/iLPl+ihpkUpsVl39WkGKiSymP26PynO
X-Google-Smtp-Source: AGHT+IE9KF4lKKQ4RhAW0d6YuxQEKRwjd6S/Nb4rUg3IYT13YDl7SwK6mzVEMwNlpXGw5adVrtjj4g==
X-Received: by 2002:a05:651c:1511:b0:2ec:4d82:9e93 with SMTP id 38308e7fff4ca-2ee5e6bcb43mr62237861fa.44.1719919436370;
        Tue, 02 Jul 2024 04:23:56 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v9 2/5] xen/riscv: introduce decode_cause() stuff
Date: Tue,  2 Jul 2024 13:23:47 +0200
Message-ID: <3b93bb33b42cb6e86a38cd95a098e60447666e2e.1719918148.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719918148.git.oleksii.kurochko@gmail.com>
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The patch introduces stuff needed to decode a reason of an
exception.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
---
 xen/arch/riscv/traps.c | 80 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 79 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 5415cf8d90..37cec40dfa 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -9,13 +9,91 @@
 #include <xen/sched.h>
 
 #include <asm/processor.h>
+#include <asm/riscv_encoding.h>
 #include <asm/traps.h>
 
-void do_trap(struct cpu_user_regs *cpu_regs)
+static const char *decode_trap_cause(unsigned long cause)
+{
+    static const char *const trap_causes[] = {
+        [CAUSE_MISALIGNED_FETCH] = "Instruction Address Misaligned",
+        [CAUSE_FETCH_ACCESS] = "Instruction Access Fault",
+        [CAUSE_ILLEGAL_INSTRUCTION] = "Illegal Instruction",
+        [CAUSE_BREAKPOINT] = "Breakpoint",
+        [CAUSE_MISALIGNED_LOAD] = "Load Address Misaligned",
+        [CAUSE_LOAD_ACCESS] = "Load Access Fault",
+        [CAUSE_MISALIGNED_STORE] = "Store/AMO Address Misaligned",
+        [CAUSE_STORE_ACCESS] = "Store/AMO Access Fault",
+        [CAUSE_USER_ECALL] = "Environment Call from U-Mode",
+        [CAUSE_SUPERVISOR_ECALL] = "Environment Call from S-Mode",
+        [CAUSE_MACHINE_ECALL] = "Environment Call from M-Mode",
+        [CAUSE_FETCH_PAGE_FAULT] = "Instruction Page Fault",
+        [CAUSE_LOAD_PAGE_FAULT] = "Load Page Fault",
+        [CAUSE_STORE_PAGE_FAULT] = "Store/AMO Page Fault",
+        [CAUSE_FETCH_GUEST_PAGE_FAULT] = "Instruction Guest Page Fault",
+        [CAUSE_LOAD_GUEST_PAGE_FAULT] = "Load Guest Page Fault",
+        [CAUSE_VIRTUAL_INST_FAULT] = "Virtualized Instruction Fault",
+        [CAUSE_STORE_GUEST_PAGE_FAULT] = "Guest Store/AMO Page Fault",
+    };
+
+    if ( cause < ARRAY_SIZE(trap_causes) && trap_causes[cause] )
+        return trap_causes[cause];
+    return "UNKNOWN";
+}
+
+static const char *decode_reserved_interrupt_cause(unsigned long irq_cause)
+{
+    switch ( irq_cause )
+    {
+    case IRQ_M_SOFT:
+        return "M-mode Software Interrupt";
+    case IRQ_M_TIMER:
+        return "M-mode Timer Interrupt";
+    case IRQ_M_EXT:
+        return "M-mode External Interrupt";
+    default:
+        return "UNKNOWN IRQ type";
+    }
+}
+
+static const char *decode_interrupt_cause(unsigned long cause)
+{
+    unsigned long irq_cause = cause & ~CAUSE_IRQ_FLAG;
+
+    switch ( irq_cause )
+    {
+    case IRQ_S_SOFT:
+        return "Supervisor Software Interrupt";
+    case IRQ_S_TIMER:
+        return "Supervisor Timer Interrupt";
+    case IRQ_S_EXT:
+        return "Supervisor External Interrupt";
+    default:
+        return decode_reserved_interrupt_cause(irq_cause);
+    }
+}
+
+static const char *decode_cause(unsigned long cause)
+{
+    if ( cause & CAUSE_IRQ_FLAG )
+        return decode_interrupt_cause(cause);
+
+    return decode_trap_cause(cause);
+}
+
+static void do_unexpected_trap(const struct cpu_user_regs *regs)
 {
+    unsigned long cause = csr_read(CSR_SCAUSE);
+
+    printk("Unhandled exception: %s\n", decode_cause(cause));
+
     die();
 }
 
+void do_trap(struct cpu_user_regs *cpu_regs)
+{
+    do_unexpected_trap(cpu_regs);
+}
+
 void vcpu_show_execution_state(struct vcpu *v)
 {
     BUG_ON("unimplemented");
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:24:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:24:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752358.1160554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObc6-0001mV-Ln; Tue, 02 Jul 2024 11:23:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752358.1160554; Tue, 02 Jul 2024 11:23: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 1sObc6-0001mO-JJ; Tue, 02 Jul 2024 11:23:58 +0000
Received: by outflank-mailman (input) for mailman id 752358;
 Tue, 02 Jul 2024 11:23:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObc5-0001m7-G4
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:23:57 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 914bb0cd-3865-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 13:23:55 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2eaafda3b5cso39513081fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:23:55 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ee5161fb73sm16149981fa.33.2024.07.02.04.23.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:23: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: 914bb0cd-3865-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719919434; x=1720524234; 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=iYIw6PrAlaN9W8hvNxbXZNFyJo9LoXimbSCaQ0+315c=;
        b=UufXK9ANzl/3x8cd0AgqmBP9n5J8HGmQxgUrNYaldn/p0We7iL9uW/fqTS5h2kBK4h
         0b4bOU9rMCcfvyIT8WFKXfJehl4KFo63qxQpGDWGwMItKGMj15JEbvUhFEZ7UJGfFukL
         Ck76eOrLYenZE7J8LScOkVVun+b4XJ1KUO0g3dJZ1vbgBfFDBe4Fbcb4ZjftRqHCqhGE
         8CNd42trYEDw+eMQehZf1WpoeFv5eoLNkjdVrTMRG+SSCQKD3dHBl3vOupDuw5SQV78G
         LbE88W00Sfp7dPIXbi9+MeM1E6hJm/qptI+YDBMxiiaItL9fTE5eZxWGPrksLZ9g1fk5
         a35Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719919434; x=1720524234;
        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=iYIw6PrAlaN9W8hvNxbXZNFyJo9LoXimbSCaQ0+315c=;
        b=f3/KkWMtIA5p8Fd+igOTyHqY9AFwPD35wiRPLdfVFOn+DjrADnJ4HoBZmlrgbiQE3D
         BgVMMVx86M/KEyJHKED+C6kJw8AeEw9FcWvVZ1Rqj/wdEMngx3j65HtABJwTu8/juUI+
         CFABz+8TmFKZnKn31JWlziAstcPuZ4ktPXVGAsN5zClYNzo2GAyCCJEILrEO2dL/nlYF
         iOhVq/3/ImsuLpQ6jzI/Wsd25D08JQDhx04+kO+Y6ZweOn040WYx7p8M4/YIaAYoShW5
         YaCNbjb9k3U7fFipk5k4Jjt4HSbv+DcdlD9TbCW2UULUviWaFk+mfGuOOroWxEnIMNdp
         BfhQ==
X-Gm-Message-State: AOJu0YxS3946wy5X506HZRP7xXjZiKvKPyqARgy3cIRSZANlu3qQEkf9
	F/kThcEFv1AkN25H8wHSWCF9+PE6CLDiHir10hCF6E5QcrV+kNpTJpORPg8B
X-Google-Smtp-Source: AGHT+IFjbaRcGhDWKjnNGOUL5pMoubI/0kR78HXjxRq6xQtZrLbcHhPOddabrIvOA92ZPhJOxMSNMQ==
X-Received: by 2002:a2e:8684:0:b0:2ee:4c2e:3d35 with SMTP id 38308e7fff4ca-2ee5e38c978mr47149971fa.23.1719919433980;
        Tue, 02 Jul 2024 04:23: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH for 4.20 v9 0/5] RISCV basic exception handling implementation
Date: Tue,  2 Jul 2024 13:23:45 +0200
Message-ID: <cover.1719918148.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The patch series is based on:
    Enable build of full Xen for RISC-V [1]
which haven't fully been merged yet.

The patch series provides a basic implementation of exception handling.
It can do only basic things such as decode a cause of an exception,
save/restore registers and execute "wfi" instruction if an exception
can not be handled.

To verify that exception handling works well it was used macros
from <asm/bug.h> such as BUG/WARN/run_in_exception/assert_failed.

It wasn't implemented show_execution_state() and stack trace discovering
as it's not necessary now.

[1] https://lore.kernel.org/xen-devel/cover.1719917348.git.oleksii.kurochko@gmail.com/T/#m8ee766297511fb6fb4a38b7753ab6b792361be04

---
Changes in V9:
 - Update the cover letter message.
 - s/early_printk/printk.
 - use GENERIC_BUG_FRAME instead of arch-specific implementation of do_bug_frame().
 - Rebase on top of current staging and riscv-full-xen-build-v14.
---
Changes in V8:
 - Update the commit message of the cover letter.
 - Remove the patch with an introduction of dummy asm/bug.h and introduce
   normal asm/bug.h
 - Fix typo in return string from decode_reserved_interrupt_cause
 - Add "Acked-by: Alistair Francis <alistair.francis@wdc.com>" for the patch
   "xen/riscv: introduce decode_cause() stuff"
 - Remove Pointless initializer of id in do_bug_frame().
 - Make bug_frames[] array constant in do_bug_frame().
 - Remove cast_to_bug_frame(addr).
 - Rename is_valig_bugaddr to is_valid_bug_insn().
 - Add check that read_instr is used only on Xen code
 - Update the commit message.
---
Changes in V7:
 - Update the depenency ( mentioned in the cover letter message ) of the current
   patch series.
 - clean up comments.
 - code style fixes.
 - move definition of cast_to_bug_frame() from patch 4 to 5.
---
Changes in V6:
 - Update the cover letter message: the patch set is based on MMU patch series.
 - Introduce new patch with temporary printk functionality. ( it will be
   removed when Xen common code will be ready )
 - Change early_printk() to printk().
 - Remove usage of LINK_TO_LOAD() due to the MMU being enabled first.
 - Add additional explanatory comments.
 - Remove patch "xen/riscv: initialize boot_info structure" from the patch
   series.
---
Changes in V5:
 - Rebase on top of [1] and [2]
 - Add new patch which introduces stub for <asm/bug.h> to keep Xen compilable
   as in the patch [xen/riscv: introduce decode_cause() stuff] is used
   header <xen/lib.h> which requires <asm/bug.h>.
 - Remove <xen/error.h> from riscv/traps/c as nothing would require
   inclusion.
 - decode_reserved_interrupt_cause(), decode_interrupt_cause(),
   decode_cause, do_unexpected_trap() were made as static they are expected
   to be used only in traps.c
 - Remove "#include <xen/types.h>" from <asm/bug.h> as there is no any need in it anymore
 - Update macros GET_INSN_LENGTH: remove UL and 'unsigned int len;' from it
 - Remove " include <xen/bug.h>" from risc/setup.c. it is not needed in the current version of
   the patch
 - change an argument type from vaddr_t to uint32_t for is_valid_bugaddr and introduce 
   read_instr() to read instruction properly as the length of qinstruction can be
   either 32 or 16 bits.
 - Code style fixes
 - update the comments before do_bug_frame() in riscv/trap.c
 - [[PATCH v4 5/5] automation: modify RISC-V smoke test ] was dropped as it was provided
   more simple solution by Andrew.  CI: Simplify RISCV smoke testing
 - Refactor is_valid_bugaddr() function.
 - 2 new patches ([PATCH v5 {1-2}/7]) were introduced, the goal of which is to recalculate
   addresses used in traps.c, which can be linker time relative. It is needed as we don't
   have enabled MMU yet.
---
Changes in V4:
  - Rebase the patch series on top of new version of [introduce generic
    implementation of macros from bug.h] patch series.
  - Update the cover letter message as 'Early printk' was merged and
    the current one patch series is based only on [introduce generic
    implementation of macros from bug.h] which hasn't been commited yet.
  - The following patches of the patch series were merged to staging:
      [PATCH v3 01/14] xen/riscv: change ISA to r64G
      [PATCH v3 02/14] xen/riscv: add <asm/asm.h> header
      [PATCH v3 03/14] xen/riscv: add <asm/riscv_encoding.h header
      [PATCH v3 04/14] xen/riscv: add <asm/csr.h> header
      [PATCH v3 05/14] xen/riscv: introduce empty <asm/string.h>
      [PATCH v3 06/14] xen/riscv: introduce empty <asm/cache.h>
      [PATCH v3 07/14] xen/riscv: introduce exception context
      [PATCH v3 08/14] xen/riscv: introduce exception handlers implementation
      [PATCH v3 10/14] xen/riscv: mask all interrupts
  - Fix addressed comments in xen-devel mailing list.

---
Changes in V3:
  - Change the name of config RISCV_ISA_RV64IMA to RISCV_ISA_RV64G
    as instructions from Zicsr and Zifencei extensions aren't part of
    I extension any more.
  - Rebase the patch "xen/riscv: introduce an implementation of macros
    from <asm/bug.h>" on top of patch series [introduce generic implementation
    of macros from bug.h]
  - Update commit messages
---
Changes in V2:
  - take the latest riscv_encoding.h from OpenSBI, update it with Xen
    related changes, and update the commit message with "Origin:"
    tag and the commit message itself.
  - add "Origin:" tag to the commit messag of the patch
    [xen/riscv: add <asm/csr.h> header].
  - Remove the patch [xen/riscv: add early_printk_hnum() function] as the
    functionality provided by the patch isn't used now.
  - Refactor prcoess.h: move structure offset defines to asm-offsets.c,
    change register_t to unsigned long.
  - Refactor entry.S to use offsets defined in asm-offsets.C
  - Rename {__,}handle_exception to handle_trap() and do_trap() to be more
    consistent with RISC-V spec.
  - Merge the pathc which introduces do_unexpected_trap() with the patch
    [xen/riscv: introduce exception handlers implementation].
  - Rename setup_trap_handler() to trap_init() and update correspondingly
    the patches in the patch series.
  - Refactor bug.h, remove bug_instr_t type from it.
  - Refactor decode_trap_cause() function to be more optimization-friendly.
  - Add two new empty headers: <cache.h> and <string.h> as they are needed to
    include <xen/lib.h> which provides ARRAY_SIZE and other macros.
  - Code style fixes.
---

Oleksii Kurochko (5):
  xen/riscv: use printk() instead of early_printk()
  xen/riscv: introduce decode_cause() stuff
  xen/riscv: introduce trap_init()
  xen/riscv: enable GENERIC_BUG_FRAME
  xen/riscv: test basic handling stuff

 xen/arch/riscv/Kconfig             |   1 +
 xen/arch/riscv/include/asm/traps.h |   1 +
 xen/arch/riscv/setup.c             |  21 ++++-
 xen/arch/riscv/traps.c             | 123 ++++++++++++++++++++++++++++-
 xen/common/bug.c                   |   1 +
 5 files changed, 144 insertions(+), 3 deletions(-)

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:24:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:24:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752359.1160561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObc6-0001ph-Ul; Tue, 02 Jul 2024 11:23:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752359.1160561; Tue, 02 Jul 2024 11:23: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 1sObc6-0001ov-Pb; Tue, 02 Jul 2024 11:23:58 +0000
Received: by outflank-mailman (input) for mailman id 752359;
 Tue, 02 Jul 2024 11:23:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObc6-0001m7-45
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:23:58 +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 91c2d0fe-3865-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 13:23:56 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ec61eeed8eso50369231fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:23:56 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ee5161fb73sm16149981fa.33.2024.07.02.04.23.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:23: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: 91c2d0fe-3865-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719919435; x=1720524235; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L0kvZbIwg1P0mhVOPWpS762W5yQg7NFjtIVmRuw6584=;
        b=Le+N02QphNp+Hx8OufdExGBj9V7pWqGKf7IlKXmnZbr9kwBIbiKqyJWfE/t59W7zrt
         zvkrsnfCpekcnwajcSJFMwRbBEISca8+QxZwOGaU803ebO+rpu8ZavSuoTOtmnEt1GDI
         gCAy61J3vdIenWDvcOf8pEXMqcKN0NO0wt+SHfexZcf1cNixkyyZ2VSJHtc1THwXL74/
         Ybd2VJY2vYo9086ofHjougrEGa5fH9n0EuC6VrfmSIrEZYypAchEomwTHuaSL9HF864E
         kYf+IepKOROmp6XjzcWGG2YjzrEKIHcua9TVxTmLtXusmyTiSY1n0PJA8S8SH9Ze/kfh
         ylHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719919435; x=1720524235;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=L0kvZbIwg1P0mhVOPWpS762W5yQg7NFjtIVmRuw6584=;
        b=tE8eBbjObEFVClUk/lir69mWw4nWQguIPB0GmNUTktm8vFEBkRQ+HmL9gv6LSegk8h
         RltxdQ0+15oBE8erMZmrEbR8W7rNsUIPsBxI2e/FV7P5qezTm9cAwMD6IUcU0+OQaNFz
         l6YYeGawaosCNA+J2aDwtTXKAaVLTRdqlHBOu5xaxG3EPMDV7qGcofG54xn3YQ/9U0xt
         34X04taHmLShxagHyemalZ3hKT5MtqUidpuPahmnOQabOH2U3x7E8/wQUQ0VxemxfTZa
         FTy08GIIl7Mmw8fnwe5+53ebxX5CjPr6UedD04cpS0xVpA0b/iXqXBkTHkZ5Ho8YuRhq
         ct6A==
X-Gm-Message-State: AOJu0Yyqe1SpJZrqxPqCLDj0mqLxBmcBImnsl6dU+geY0QYlsxyXaTCv
	atE7qpEqszrY0C8DJxhTW/Xft4mr1Bk5vG1S6zsbo/1OMyNldqDk7w8iFiFx
X-Google-Smtp-Source: AGHT+IFziYw3KhCffJR57gsm6MaJhnTZA0BJrtpkAe2mBdjSNoxtUVxNMMYxY/bGE0g8qR5naBzYMA==
X-Received: by 2002:a2e:a548:0:b0:2ec:6639:120a with SMTP id 38308e7fff4ca-2ee5e33a582mr60578951fa.10.1719919435018;
        Tue, 02 Jul 2024 04:23:55 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v9 1/5] xen/riscv: use printk() instead of early_printk()
Date: Tue,  2 Jul 2024 13:23:46 +0200
Message-ID: <22c78705e4559a049e72950dc311513f1c15e489.1719918148.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719918148.git.oleksii.kurochko@gmail.com>
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As common code is available it is better to use printk() instead
of early_printk().

Also the printing of "Hello from RISC-V world" is dropped as
it is useless and "All set up is enough".

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/setup.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 8bb5bdb2ae..e3cb0866d5 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -23,9 +23,7 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 {
     remove_identity_mapping();
 
-    early_printk("Hello from C env\n");
-
-    early_printk("All set up\n");
+    printk("All set up\n");
 
     for ( ;; )
         asm volatile ("wfi");
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:24:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:24:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752361.1160585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObc8-0002T8-Bq; Tue, 02 Jul 2024 11:24:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752361.1160585; Tue, 02 Jul 2024 11: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 1sObc8-0002SL-89; Tue, 02 Jul 2024 11:24:00 +0000
Received: by outflank-mailman (input) for mailman id 752361;
 Tue, 02 Jul 2024 11: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObc6-0001mD-SC
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:23:58 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9323a9f8-3865-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 13:23:58 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2ebec2f11b7so45956341fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:23:58 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ee5161fb73sm16149981fa.33.2024.07.02.04.23.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04: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: 9323a9f8-3865-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719919437; x=1720524237; darn=lists.xenproject.org;
        h=content-transfer-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+B8xBmNcCIo57qB2YroROGMOiu001L1f4uYSEWgPoA=;
        b=bgKaLRPNnH/6HUYQnndymQoCV5ohNXL/yKk3DYegs3suvOFZctZMb3pdr+2QbCFObw
         X0tYsSmxt2tVxQnwqXkfm2KpcU+sVXceqqDa1U0yWwTvjnGG43Tybz84cPSFDFoYvB2V
         lrNhFgIktXB9X57p9HzWLCCzX251GAW/0i/ZDRY+Y0zHKnFgCoo5fuQ2kqTMWkeSaZYV
         P4bxyIlliSxFJ9GwHkH0NkSt4B/o1kFOYGxdYotZuzc1S3aCoJK3F6ntsFdRFvYqWeuB
         4s3BFClai6Lnd8Sb8LR/og+/BM4Wu9ickCXsgYC3es9KlfI56ROAFtkjDFKPDLKOLQG2
         UQdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719919437; x=1720524237;
        h=content-transfer-encoding:mime-version:references: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+B8xBmNcCIo57qB2YroROGMOiu001L1f4uYSEWgPoA=;
        b=TgSLL0cn2yEaD2RPxf0kOnaTkAb5tIm7DFEn5hGPq5AZu+OkEG1E/6IyYD2YalQLe3
         TgSmvpYH3yub/Py3FukWPhmKQygb24phYuXVX1Vyd0x/YwGamdEQ8kozHzR83eg1pRv5
         BZqGWVKmVLz5wOPqra0MdDYYIpjO0iMyLOyxD8X/58kKFtHq4l0Y/vStxz2QHo0GmBBe
         9SESatzYsnki9093iE+UoZgQpTvRG0sV/HEAMvjZBdal+LIBIj4mdbMq1wYETSCSMJ0X
         XtjMDeVbrWdgcuAGF4sW+Z2PwFxn/en5r3AvJBGsahzk7zTcW7cHCGhlIO40ed5cJbsC
         LuTg==
X-Gm-Message-State: AOJu0YyHG6uF8xo+G+74ioGtU8Dg6q32xQmqioBARGSgM/shiR0v/b4w
	wzIcrOB0VyL61Ys0AKo81ZOzPNQDIBrX5JBNRITFrUuPP35i2+DsX5jIxz+M
X-Google-Smtp-Source: AGHT+IE1gKqgEzNkm0qflfc256ah5L6MMRtuh9OLgISEUhbAFxZEdVP2dp1xg0TjdcTzEurdxB+7vQ==
X-Received: by 2002:a2e:a813:0:b0:2ee:7a3e:4728 with SMTP id 38308e7fff4ca-2ee7a3e48d9mr1958171fa.53.1719919437437;
        Tue, 02 Jul 2024 04:23: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v9 3/5] xen/riscv: introduce trap_init()
Date: Tue,  2 Jul 2024 13:23:48 +0200
Message-ID: <83b9053330e4dae38e926c99f47d0ef11d9dd31d.1719918148.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719918148.git.oleksii.kurochko@gmail.com>
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
---
 xen/arch/riscv/include/asm/traps.h |  1 +
 xen/arch/riscv/setup.c             |  3 +++
 xen/arch/riscv/traps.c             | 12 ++++++++++++
 3 files changed, 16 insertions(+)

diff --git a/xen/arch/riscv/include/asm/traps.h b/xen/arch/riscv/include/asm/traps.h
index 3fef318478..c30118e095 100644
--- a/xen/arch/riscv/include/asm/traps.h
+++ b/xen/arch/riscv/include/asm/traps.h
@@ -9,6 +9,7 @@
 
 void do_trap(struct cpu_user_regs *cpu_regs);
 void handle_trap(void);
+void trap_init(void);
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index e3cb0866d5..a6a29a1508 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -8,6 +8,7 @@
 #include <public/version.h>
 
 #include <asm/early_printk.h>
+#include <asm/traps.h>
 
 void arch_get_xen_caps(xen_capabilities_info_t *info)
 {
@@ -23,6 +24,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 {
     remove_identity_mapping();
 
+    trap_init();
+
     printk("All set up\n");
 
     for ( ;; )
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 37cec40dfa..cb18b30ff2 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -12,6 +12,18 @@
 #include <asm/riscv_encoding.h>
 #include <asm/traps.h>
 
+/*
+ * Initialize the trap handling.
+ *
+ * The function is called after MMU is enabled.
+ */
+void trap_init(void)
+{
+    unsigned long addr = (unsigned long)&handle_trap;
+
+    csr_write(CSR_STVEC, addr);
+}
+
 static const char *decode_trap_cause(unsigned long cause)
 {
     static const char *const trap_causes[] = {
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:24:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:24:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752362.1160594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObcA-0002kQ-Hy; Tue, 02 Jul 2024 11:24:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752362.1160594; Tue, 02 Jul 2024 11:24: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 1sObcA-0002kF-Ev; Tue, 02 Jul 2024 11:24:02 +0000
Received: by outflank-mailman (input) for mailman id 752362;
 Tue, 02 Jul 2024 11: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObc9-0001m7-4r
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:24:01 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 93ce3950-3865-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 13:23:59 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2ed5ac077f5so48545841fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:23:59 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ee5161fb73sm16149981fa.33.2024.07.02.04.23.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04: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: 93ce3950-3865-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719919439; x=1720524239; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hEIsWsvrlXl4/YcR0JMfIfMbkJsSh1CWtuRxJ27QKeY=;
        b=mjYufUq8+mgghRdUihQLdQ0QnbXlkHXJSv9e0o6nrDCYcw791Kzu3xKovS/0zeEXlj
         QJ33KUDfBCNjND+qW9OPqxrE4LOZ79vSbU1oKg77SNUNJk9sRCWi4xXUVsSsESvGH0v0
         cv5uEsgqAA/TDH+QthfLbWEui/PS5+G473IA7AUK1MTJxjucV/2KNbknhtHn3IP7g9E8
         Goa+7BMuSM69dXypYNLHvWqq+Y/3jpTolmXI1kbtJd2h2JkHXisnfNsYlEfyOaWVmLI+
         SYOev5peLkzXgp71KZu7H1YMCQDLU/HSXNkuvrhoo6WJAvaXoXXtryzS+nkT11vLhO+3
         uxQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719919439; x=1720524239;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hEIsWsvrlXl4/YcR0JMfIfMbkJsSh1CWtuRxJ27QKeY=;
        b=htoUUvAAzK91VDoqOvmMYOcPenriscTdSirenftkYN7iGHh9y5LB6FI9QylKt1xllw
         xkxK9IBFw+ljN22gdr88M8Y1BJKgdzkQW4iZr8cyuSBYGNmEQoufjmRj1PanAXWVH0B1
         ByAOpVK77Fd2MhjbtM7gNfLwr6uorKQgy2jfSERn5Zr/0NRfqiiAURkJlhAuujY7bxmo
         Pumx0wy+QoiiGowbcV7gLUy9m2qpdRdffnnXqGcjVoNTOWs4hY8fgJkBbHN1gVVTBO7J
         3gCUcpK4UdGuU6Xff0Rs6pzca+pNydFQlbuOuRLqGWnnP4nQ8U6GvIBS2kMlS8udJug0
         b1SQ==
X-Gm-Message-State: AOJu0YwljEgJRx7YDdUxhca8ie07DeZofp/RB6m4l03vDsCx4j5ciNWX
	r/DndHseimIsCV90EO9UTVfIQ+81m7CDldYIAZsdctBg8b2CqQwQYRsm7Jbp
X-Google-Smtp-Source: AGHT+IEClPxEScxTwOZDx/lM2//DicvvbS2F0zthvwNfRMHFUtUpJW46VjOET/t7OoKVDOZ/OVSDLQ==
X-Received: by 2002:a05:651c:893:b0:2ee:6277:a888 with SMTP id 38308e7fff4ca-2ee6277a9f3mr53920421fa.38.1719919438650;
        Tue, 02 Jul 2024 04:23:58 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v9 4/5] xen/riscv: enable GENERIC_BUG_FRAME
Date: Tue,  2 Jul 2024 13:23:49 +0200
Message-ID: <c51c485bac43b7589961aabec8af1b82d4673b94.1719918148.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719918148.git.oleksii.kurochko@gmail.com>
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Kconfig |  1 +
 xen/arch/riscv/traps.c | 31 +++++++++++++++++++++++++++++++
 xen/common/bug.c       |  1 +
 3 files changed, 33 insertions(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index b4b354a778..74ad019fe7 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -5,6 +5,7 @@ config RISCV
 config RISCV_64
 	def_bool y
 	select 64BIT
+	select GENERIC_BUG_FRAME
 
 config ARCH_DEFCONFIG
 	string
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index cb18b30ff2..7ba16252fc 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -5,6 +5,7 @@
  * RISC-V Trap handlers
  */
 
+#include <xen/bug.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
 
@@ -101,8 +102,38 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
     die();
 }
 
+static bool is_valid_bug_insn(uint32_t insn)
+{
+    return insn == BUG_INSN_32 ||
+           (insn & COMPRESSED_INSN_MASK) == BUG_INSN_16;
+}
+
+/* Should be used only on Xen code */
+static uint32_t read_instr(unsigned long pc)
+{
+    uint16_t instr16 = *(uint16_t *)pc;
+
+    ASSERT(is_kernel_text(pc + 1) || is_kernel_inittext(pc + 1));
+
+    if ( GET_INSN_LENGTH(instr16) == 2 )
+        return instr16;
+
+    ASSERT(is_kernel_text(pc + 3) || is_kernel_inittext(pc + 3));
+
+    return *(uint32_t *)pc;
+}
+
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
+    register_t pc = cpu_regs->sepc;
+    uint32_t instr = read_instr(pc);
+
+    if ( ( is_valid_bug_insn(instr) ) && ( do_bug_frame(cpu_regs, pc) >= 0 ) )
+    {
+        cpu_regs->sepc += GET_INSN_LENGTH(instr);
+        return;
+    }
+
     do_unexpected_trap(cpu_regs);
 }
 
diff --git a/xen/common/bug.c b/xen/common/bug.c
index b7c5d8fd4d..75cb35fcfa 100644
--- a/xen/common/bug.c
+++ b/xen/common/bug.c
@@ -1,6 +1,7 @@
 #include <xen/bug.h>
 #include <xen/errno.h>
 #include <xen/kernel.h>
+#include <xen/lib.h>
 #include <xen/livepatch.h>
 #include <xen/string.h>
 #include <xen/types.h>
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:24:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:24:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752363.1160605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sObcC-00032C-3E; Tue, 02 Jul 2024 11:24:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752363.1160605; Tue, 02 Jul 2024 11:24: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 1sObcB-000323-VD; Tue, 02 Jul 2024 11:24:03 +0000
Received: by outflank-mailman (input) for mailman id 752363;
 Tue, 02 Jul 2024 11:24: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sObcA-0001m7-Gs
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 11:24:02 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94aa26d5-3865-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 13:24:01 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2ec52fbb50aso48157091fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 04:24:00 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ee5161fb73sm16149981fa.33.2024.07.02.04.23.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 04:23: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: 94aa26d5-3865-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719919440; x=1720524240; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EYmnnYmgVza05GF6fpOBaADbngQ5M4w1OoEJiW0icp8=;
        b=W5ZTzFUQOux2RJ8Buswq9fw9famJXf03G1CKqiPuWxOMJpLNaeIbsDvWj5udzivTKV
         iGwrMIdOIKQKr2C+EL6eY9pdXb5Gu2kYHTq1IfXg5iJJ6F7sXrls3mOSBxqIwqUxvFbu
         QrAVpam1A5+tCe5UCVDTpp8okCfhT75WWTjK93zOLSaXDgt71GhzfIfwgWFMNI0+WLzP
         RMt1dW94yJLIkYs9xa1P2crQY9cXI2cc8/HOyTM5CJVSXyhricIrFLPaONrsXz0yPmtm
         vHA66EEh9/oeC7YdfQf+/fEOWgOObyuTXfPDX9KlBioshHAlZmdG2mK5PCkYbfvQKJcq
         daYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719919440; x=1720524240;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=EYmnnYmgVza05GF6fpOBaADbngQ5M4w1OoEJiW0icp8=;
        b=asovltt8sBDXsIVo6tx1m0tA1lk/BoHeOZ9efMFBhUMn1Ys5nSvInrNjb5KWVIK7/r
         CGpcyfw/Mqx3e16zOidxr1RWAeImiW63xaalCwp7zV2b08iqhNWWoocDKqOeiB3zJNDj
         wCQtPsuqFQRNRtRFflzpIQbDkkdqw7kOX5V6EC4sJjkM+kwwkBsI67ivVCJ8aSq29FwG
         MZl+TiLCNhvCheFZEH21Mp1/4gQ1DjgxbWabfA1zzGqWPEE9duuG7yxBYkbD87LAUpdR
         lI1lVNe304Irx32biwxsaJb0uKQnIFzIwq7DoTV6YN6x5om+q2CYkpR6Fnu1aesbN17h
         QNmw==
X-Gm-Message-State: AOJu0YzD9llM92ze8HYYJmwqdwgYO7T8zN24NX1I4JMuQKxKp05JWfoH
	0h70G9N1MYz90Oyo/vl/Jpho4xwJRTNBgTqY7xFFahMIp5ESYROD9SiEDEkk
X-Google-Smtp-Source: AGHT+IHYTf6HF0P3BWYkFwBSVYHBFrWyjoQVEpopSu2ldqdVn8B7GSlePCb+UyIE/s1epVk5jRn+fA==
X-Received: by 2002:a2e:a5c4:0:b0:2ee:5ec1:1838 with SMTP id 38308e7fff4ca-2ee5ec11928mr75360291fa.30.1719919439742;
        Tue, 02 Jul 2024 04:23:59 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v9 5/5] xen/riscv: test basic handling stuff
Date: Tue,  2 Jul 2024 13:23:50 +0200
Message-ID: <62cce91351f00f80cb1c7701906e2d8cd3301ec1.1719918148.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1719918148.git.oleksii.kurochko@gmail.com>
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
---
 xen/arch/riscv/setup.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index a6a29a1508..4f06203b46 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -19,6 +19,20 @@ void arch_get_xen_caps(xen_capabilities_info_t *info)
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
     __aligned(STACK_SIZE);
 
+static void test_run_in_exception(const struct cpu_user_regs *regs)
+{
+    printk("If you see this message, ");
+    printk("run_in_exception_handler is most likely working\n");
+}
+
+static void test_macros_from_bug_h(void)
+{
+    run_in_exception_handler(test_run_in_exception);
+    WARN();
+    printk("If you see this message, ");
+    printk("WARN is most likely working\n");
+}
+
 void __init noreturn start_xen(unsigned long bootcpu_id,
                                paddr_t dtb_addr)
 {
@@ -26,6 +40,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     trap_init();
 
+    test_macros_from_bug_h();
+
     printk("All set up\n");
 
     for ( ;; )
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 11:53:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 11:53:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752399.1160615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOc4k-0002gf-5H; Tue, 02 Jul 2024 11:53:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752399.1160615; Tue, 02 Jul 2024 11:53:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOc4k-0002gY-27; Tue, 02 Jul 2024 11:53:34 +0000
Received: by outflank-mailman (input) for mailman id 752399;
 Tue, 02 Jul 2024 11:53:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOc4i-0002gO-TA; Tue, 02 Jul 2024 11:53:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOc4i-00066Y-Qh; Tue, 02 Jul 2024 11:53:32 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOc4i-00018Y-39; Tue, 02 Jul 2024 11:53:32 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOc4i-0002Ox-2a; Tue, 02 Jul 2024 11:53: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+bhb7ak+Y/8Wfao76PeQKTMtuzEuypuCfKupfGvStFs=; b=4EDDXNHS2XW4Sx+hZla6wVtnB/
	UhrlRaQUzlILVB71ZN1HOMAYh5lNmNNTpr7dPe2rKgyE1sUKOIy0RNGVYoBpG8MZ9+FWAUUYxhqAk
	wKVLBlt0rhh1zA1zFq2K6rd0hfe5xMTdNuA97+IW0p6kVyPhRZEYKOHeqHwga2tg40fY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186627-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186627: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9ec74bdb2582dc5b0517e05a3650d24745889c2b
X-Osstest-Versions-That:
    xen=4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Jul 2024 11:53:32 +0000

flight 186627 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186627/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  9ec74bdb2582dc5b0517e05a3650d24745889c2b
baseline version:
 xen                  4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b

Last test of basis   186621  2024-07-01 18:02:16 Z    0 days
Testing same since   186627  2024-07-02 07:06:25 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  George Dunlap <george.dunlap@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   4a73eb4c20..9ec74bdb25  9ec74bdb2582dc5b0517e05a3650d24745889c2b -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 12:02:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 12:02:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752415.1160624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOcDM-00059O-8j; Tue, 02 Jul 2024 12:02:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752415.1160624; Tue, 02 Jul 2024 12: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 1sOcDM-00059H-6G; Tue, 02 Jul 2024 12:02:28 +0000
Received: by outflank-mailman (input) for mailman id 752415;
 Tue, 02 Jul 2024 12:02: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=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOcDK-00058o-Sh
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 12:02:26 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f20781a8-386a-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 14:02:25 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2ed5ac077f5so49034751fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 05: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
 41be03b00d2f7-74a3594c5ffsm2101027a12.35.2024.07.02.05.02.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 05: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: f20781a8-386a-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719921744; x=1720526544; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hPN+NgNxGX71qkx6oL/bjsu+a0u+uwKgosyIn7osejE=;
        b=ZlH3ycj2AcbepngGWHP5T3xg0yw8rB95UHG3x4O6MDHneDCjWyTQXRI9U4R3VWsi8I
         pVoGsCKeNjlDR1kp7XwO6IQEqgPoDEpS8/vlppuAFlpxcoBphV9vJA9+wVNM/cfBDa4O
         JbXBF4EZLuuibD9x+09SQpagfMfL9Mz5lh4lxtRFSWQ8gjxtm1My0G11+C7cld31e2Wl
         7+0LU0q7nox9WvghqWF6r+VZro3Q7Q726xfjZDSNuPrdPmNDTVrFdVEb9cGjNCuIyRSQ
         sQx4jMh01WAiUrJCjnVvZGv9y9wJufvS8rtGlG7YiS1KCrtUCQYYxMRS5jWtIWE1ydMM
         T6Pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719921744; x=1720526544;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hPN+NgNxGX71qkx6oL/bjsu+a0u+uwKgosyIn7osejE=;
        b=apD1HzKLvGKMDr7MZ/RkOhxFr2x75ki4uM00YhNKaWqIWtmoM8z4BPk0clNaaDoliO
         bwdH2LSjE0/7okg6/AaLHTLQZlQTpg2k3Alj2gjDXT5MLKqJxAbSxVYpDE5hL1wD7W/L
         rKucvGUXXr2YmwF7oYWm9YXIj+4Wpvex+vSSUcIjDh1HEtlwRjw3tvmjGcEoZifkkGrF
         lVY8oYlKuF87tcl4a6ar9cK8zpkDJbUkR2oqKWH7igRDKGrXnCxFsAyFxpFenEb2SJiU
         1eoNZwuJ2EPletP1j77Si66D9rYIBifyc5iM3wLfxNsPO0ReyIpjf284RoKvVNGcHWJT
         emLA==
X-Forwarded-Encrypted: i=1; AJvYcCXPqrQvetp6gVSolOJ+oD/27doUMt8zLEiCGjAgka+Dk8y7Ykt7TWBTb+mc3npaV2m7iof3W9dEe8MqK7jlKnrS175TRJGEtOYHuooM894=
X-Gm-Message-State: AOJu0YzOdM3Gc9KVNWQ3zyjFHZN+ZN1f63ytZOT/7X9r8lzcHwSi/Aiw
	av3AusEUbCjjLW52mManWb96a8JyCo/sN/Du/h/MEn2VTtrC/1SL/l/NL3sx5g==
X-Google-Smtp-Source: AGHT+IFcxSaN7jQ1+K3mjUw/WtdscYaPDOhB4/lqR4vB4ziQRYSzLUHt38g+I27kTWY5Oy7Z9/rIww==
X-Received: by 2002:a2e:9306:0:b0:2eb:68d0:88be with SMTP id 38308e7fff4ca-2ee5e375c0amr47332191fa.12.1719921744537;
        Tue, 02 Jul 2024 05:02:24 -0700 (PDT)
Message-ID: <51b4aab3-c62f-4365-9b66-12e1d073bc6b@suse.com>
Date: Tue, 2 Jul 2024 14:02:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 7/9] xen/riscv: use .insn with operands to support the
 older gas
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
 <a64f0de38fe32da9154d1944195ff6b852ae3310.1719917348.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: <a64f0de38fe32da9154d1944195ff6b852ae3310.1719917348.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 13:01, Oleksii Kurochko wrote:
> Support for specifying "raw" insns was added only in 2.38.
> To support older version it would be better switch to .insn
> with operands.
> 
> The following compilation error occurs:
>   ./arch/riscv/include/asm/processor.h: Assembler messages:
>   ./arch/riscv/include/asm/processor.h:70: Error: unrecognized opcode `0x0100000F'
> In case of the following Binutils:
>   $ riscv64-linux-gnu-as --version
>   GNU assembler (GNU Binutils for Debian) 2.35.2
> 
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Suggested-by: Jan Beulich <jbeulich@suse.com>

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

> Andrew,
> 
> Could you please take a look if you are okay with suggested
> changes.
> 
> Thanks in advance.

I won't wait for too long for a reply here (perhaps until EOD tomorrow), as
I expect the change to be pretty uncontroversial. However, to put it in at
this point I'll need a release ack first anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 12:07:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 12:07:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752422.1160634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOcIA-0005km-RT; Tue, 02 Jul 2024 12:07:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752422.1160634; Tue, 02 Jul 2024 12: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 1sOcIA-0005kf-Oe; Tue, 02 Jul 2024 12:07:26 +0000
Received: by outflank-mailman (input) for mailman id 752422;
 Tue, 02 Jul 2024 12: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=jWIE=OC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sOcI9-0005kZ-Ss
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 12:07:25 +0000
Received: from mail-qv1-xf34.google.com (mail-qv1-xf34.google.com
 [2607:f8b0:4864:20::f34])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a39e0220-386b-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 14:07:23 +0200 (CEST)
Received: by mail-qv1-xf34.google.com with SMTP id
 6a1803df08f44-6b4fced5999so18999166d6.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 05:07:23 -0700 (PDT)
Received: from [10.125.226.166] ([160.101.139.1])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b59e368b42sm42818666d6.24.2024.07.02.05.07.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 05:07: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: a39e0220-386b-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719922042; x=1720526842; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=R4HWPtFvGjxHBmjEVusfslXJRBDefKRSHPZmc2YYzhQ=;
        b=UI1H4Yz6GYpp5e1OfbQX+Ysb4sdsVSu3ARgalgBrkbdYKQI8RSC4mKpab9VYLHVF3b
         IWFQ5/jjbUzTtjXhNB1P0RdixqOh7oJx/+G9i7aRoYqf+fOH1m9cr5atso5yP7/dRlsa
         t7p8zQS9Lm+Ag4hmDMWDttJK7NWesQhq9dVUw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719922042; x=1720526842;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R4HWPtFvGjxHBmjEVusfslXJRBDefKRSHPZmc2YYzhQ=;
        b=GDozf42nv+kwcvVqcicfkoZyzAa44d0p/YfCmexYdYo/7GmkpsQ4pqWz7WBZJ7jXZ/
         tFLwOsP172fv6fOUSjaJMnZmHZP38oV63H5+Kv1yaCOaWqsMrXCuPy4+ecehWhlfBHU3
         M1giTYz+nFjdBbd0dDGZWtDBnv/PnogpegcrGTgsgyH/UsFno/xe4tlL0c7QZoT7/NS/
         VO51FsbLTqisPe/xqIqpY5Kt0LV3qbbtvjQar68jktQs8afO7N2Sahl6Dlvee12Jy3En
         TfWu3s9/boHmkDhk/KcC2ro+1lb9cUFbiDc/jpn2Bc95kd1E0q1q/p5+gn9e2ksenD+O
         WNAA==
X-Forwarded-Encrypted: i=1; AJvYcCXIorS+br3oufCkIHO46rc1ULmE1gbnjxh+NGR+MWF7j3AegMmVHTdoeqYymS0x3pjRMT2QcKm+xBY+ZmHWL+skGUViMP51sR3OiSdjigc=
X-Gm-Message-State: AOJu0YxP/mLsCsEJHuR+Vdki9wKdcrwA0AXv/MqDn0zmy/rZr6NTl92m
	TtjqwteeLZxFx8aofxzNZuIR9qW8nYizxtOXkh1pCU3cn6xptePcQoc0yvtvDhQ=
X-Google-Smtp-Source: AGHT+IH1dhE4GBCTWkiz+2+IjQK+3t5TAtsxWquA4kpzz2hy6KwsLU/iLO4hNx+JO2WXRoYY9Goyng==
X-Received: by 2002:ad4:5dc5:0:b0:6b5:cfba:10c7 with SMTP id 6a1803df08f44-6b5cfba141dmr17626206d6.30.1719922042407;
        Tue, 02 Jul 2024 05:07:22 -0700 (PDT)
Message-ID: <f5ab5541-8230-4bee-bdd1-cd086e783659@citrix.com>
Date: Tue, 2 Jul 2024 13:07:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2] tools/misc: xen-hvmcrash: Inject #DF instead of
 overwriting RIP
To: Matthew Barnes <matthew.barnes@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony@xenproject.org>
References: <2cd2f12d49f75b8870c964fa86d29f0e4e18b155.1719840698.git.matthew.barnes@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <2cd2f12d49f75b8870c964fa86d29f0e4e18b155.1719840698.git.matthew.barnes@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01/07/2024 3:47 pm, Matthew Barnes wrote:
> diff --git a/tools/misc/xen-hvmcrash.c b/tools/misc/xen-hvmcrash.c
> index 1d058fa40a47..efa47c9dfec8 100644
> --- a/tools/misc/xen-hvmcrash.c
> +++ b/tools/misc/xen-hvmcrash.c
> @@ -77,65 +66,22 @@ main(int argc, char **argv)
>          exit(1);
>      }
>  
> -    ret = xc_domain_pause(xch, domid);
> -    if (ret < 0) {
> -        perror("xc_domain_pause");
> -        exit(-1);
> -    }

You can't really drop the xc_domain_{un,}pause() calls.

Previously, from the point of view of the guest, we atomically corrupted
all vCPUs at once.

Without the pause, we're corrupting each vCPU in turn, with the guest
able to run in the meantime.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 12:09:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 12:09:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752427.1160646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOcJk-0006Ql-6r; Tue, 02 Jul 2024 12:09:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752427.1160646; Tue, 02 Jul 2024 12: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 1sOcJk-0006Qe-1q; Tue, 02 Jul 2024 12:09:04 +0000
Received: by outflank-mailman (input) for mailman id 752427;
 Tue, 02 Jul 2024 12:09: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=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOcJi-0006QW-SO
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 12:09:02 +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 de8c3425-386b-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 14:09:01 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2ee794ebffbso5157461fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 05:09: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
 98e67ed59e1d1-2c91d3eb9bbsm8610400a91.57.2024.07.02.05.08.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 05: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: de8c3425-386b-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719922141; x=1720526941; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+B5UEdBNB8m8SCNDBeeR4SjGQqZb2u8/uqsY1b2HPdQ=;
        b=CBJZPzskuS+43MiGfi1iNtD1hWc477qQcvBlV1crzO/sc1WcHFk6EpMXwQTXTmaW4l
         FNqbwtX9OYVYBq4P1zE66PxJ8Q3XaBY7TIlrkCdhCXBWN/4HWMoVUoSOJ7iopdrZ0oCq
         UVLNGfB1mKZ19dh2JA8JAiJtVSbfOcov02zKS8fX4Xq9T2zs3uIGg1uq9At9adhxQFpR
         j5UIMPQxhitzmdM/P3JPr6HW1DCIcB3dD/kT3H9Z0hrHxutrpOzf1QjgKdRRp8eoFaMl
         jMS51eSPl6TOFxpV6W7BGlIEUCSognBh0HwMDcRaiilfFx+0M99nxSI1ExvGD21+v1Y+
         Hhww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719922141; x=1720526941;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+B5UEdBNB8m8SCNDBeeR4SjGQqZb2u8/uqsY1b2HPdQ=;
        b=Z/7sCQysldo0vBAwSvrjeNMPGgcbOLF6OYm8VWat/2HpflKxyzyClVCHcfGVB4IGjd
         E7uCon3wibYN/l0Fy4TobYv6DaFEqveLyLyiY1cCgNNtuFuTWiwnxIVI+VhHu3GTnzKY
         WglG1Gc3N9M3NfFY1UiVTXlH/EQ1aUBN2tDsTdeYNa6PhRIlztCBelRaK2yFIYDAksYn
         w0NHdErKYn5e8ISpdzPe9IovlijR3ATRdFQd2wk56rXPGRv3zVVjF4rQwLcze0JS3ggR
         3JtHhgqbV+KdCF7MK1/6zf1eTHYvvJhlHgbAwzb9Z315jBibg/R7XvOa9+Ups0ETwvCY
         JQzw==
X-Forwarded-Encrypted: i=1; AJvYcCWwROOJguDEohViSR+30FZ2BDlYGy5Cv9qb37vg+lJn6RtnAXXZjATuEdT23x8LV31UqwuXi1ofApTVXrAKHZfM5Bi+j0sleDIVmkcnYOM=
X-Gm-Message-State: AOJu0YyUl9sU6Sv7WhlwfwfXrg0NAH8zOkBoSN4NKHS2J+/r66eJiv9p
	CJsYc3iMW+gg2pSRTXUoerqR+nXAfZG/J3weN3Zdu99qrYzOizVgOOl3heTlEA==
X-Google-Smtp-Source: AGHT+IGr0o8B6CJyIMM6yMJGvZuX3uJ/YBIUx0UkexKQSbmYj2R61sV9/pwI+QiQwoJ5ge5Hssmr7g==
X-Received: by 2002:a2e:87cb:0:b0:2ec:5843:2fb8 with SMTP id 38308e7fff4ca-2ee5e6f6144mr63562531fa.42.1719922141240;
        Tue, 02 Jul 2024 05:09:01 -0700 (PDT)
Message-ID: <15d42265-0aec-40c1-b468-e6ebaabffbeb@suse.com>
Date: Tue, 2 Jul 2024 14:08:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 8/9] xen/riscv: introduce ANDN_INSN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
 <07c628e8552f6e31a07e4261b273553cb4a3669b.1719917348.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: <07c628e8552f6e31a07e4261b273553cb4a3669b.1719917348.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 13:01, Oleksii Kurochko wrote:
> RISC-V does a conditional toolchain for the Zbb extension
> (xen/arch/riscv/rules.mk), but unconditionally uses the
> ANDN instruction in emulate_xchg_1_2().
> 
> Fixes: 51dabd6312c ("xen/riscv: introduce cmpxchg.h")
> 
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Suggested-By: Jan Beulich <jbeulich@suse.com>

Hmm, meant to say that for the earlier patch already: A Suggested-by:
after an S-o-b is somewhat odd. You can't have signed off a change
before it was suggested, as you can't possibly have written it then.
Otoh I'm not sure tagging me is appropriate here anyway.

> --- a/xen/arch/riscv/include/asm/cmpxchg.h
> +++ b/xen/arch/riscv/include/asm/cmpxchg.h
> @@ -18,6 +18,19 @@
>          : "r" (new) \
>          : "memory" );
>  
> +/*
> + * To not face an issue that gas doesn't understand ANDN instruction
> + * it is encoded using .insn directive.
> + */
> +#ifdef __riscv_zbb
> +#define ANDN_INSN(rd, rs1, rs2)                 \
> +    ".insn r 0x33, 0x7, 0x20, " rd ", " rs1 ", " rs2 "\n"

Why 0x33? Just like in the other patch you used MISC_MEM (as suggested,
for being more descriptive), you want to use OP here. Then
Reviewed-by: Jan Beulich <jbeulich@suse.com>
(and I'd certainly be okay making the change while committing)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 13:04:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 13:04:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752445.1160659 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOdAm-0007yO-1O; Tue, 02 Jul 2024 13:03:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752445.1160659; Tue, 02 Jul 2024 13: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 1sOdAl-0007yH-T0; Tue, 02 Jul 2024 13:03:51 +0000
Received: by outflank-mailman (input) for mailman id 752445;
 Tue, 02 Jul 2024 13:03: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=sQ9e=OC=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sOdAk-0007y8-KQ
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 13:03:50 +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 83ea7ab1-3873-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 15:03:45 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a6cb130027aso239027266b.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 06:03:45 -0700 (PDT)
Received: from EMEAENGAAD19049.citrite.net ([160.101.139.1])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5861324f036sm5625496a12.34.2024.07.02.06.03.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 06:03: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: 83ea7ab1-3873-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1719925425; x=1720530225; 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=4AWlEyGxZfZi6Jz3s6/CNY+kNFhjrm2ODyfXc/oCv00=;
        b=TXoCRbPXMOsTFDGvnicmV0/YHAnZEduBJM+XVTP5BZMvUKx7m4EpLuRVXxHlLSvEjp
         5aP9YDtM8QaWvRfHhHhhT46FldEpIYiKyf/QkPKcx/f4sMKH7ROUwBTSCJ+Mwio5zF2Q
         xVLbGTdOE2elA7gKZlWCIsYZS2hbxA6LOuDLc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719925425; x=1720530225;
        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=4AWlEyGxZfZi6Jz3s6/CNY+kNFhjrm2ODyfXc/oCv00=;
        b=Dc2yFLWIp095Q1uSVVlHLW1+4xNo7dWtcfUCoXYd8LRzcpvfz6LTl8hcNTIW8lImtV
         /X+FOaEnzqJQYAH/gWX8VAFlOuy654z5ToyS8KwlAF5gDhVPO38t0uMoY/oEtWqDqCPK
         jhBrqa+Qp2cYL62CDInLe/QwXs8n1Frs76VXx1sSLpAZWD4y1Mx/D8fIFt15FtPQvjqW
         4HdOZ3YbCBi5APq2Lt+FpABjuFeBtp3GB4mwBzcP7XAMx4/+/7iBhr6s4Tqz+wTOS4gZ
         SFntK8m0mL+J+BwxcDOJTHVnIMfs2/EOPOZW+Mpjo6wWAWws8h8nP3zVCAhXpUSzIwu/
         qNmw==
X-Gm-Message-State: AOJu0YxI8rR/eZTJ/cTdDZi1AQIXpmNDZ1XSvc1tUzEkCXHYStSlDWKA
	Dc78UDK6y7zzC/8KbweDA4OcHQt9dd4/Phdo/ZNeTI6ks7jv+2OxhaKZQTgzk6yMuEaXRG42CMm
	bEBI=
X-Google-Smtp-Source: AGHT+IFYmeDf73XTYBvQYwinSpcD/DBSCP968BB9mVJ9rqU6Sau7jS9gkjGPHpDcZ0MY+1Y8mqGeQA==
X-Received: by 2002:a05:6402:84b:b0:57c:5f77:1136 with SMTP id 4fb4d7f45d1cf-5879f69b7bemr7532495a12.24.1719925424763;
        Tue, 02 Jul 2024 06:03:44 -0700 (PDT)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH for-4.19?] xen/vmap: Document the vmap header
Date: Tue,  2 Jul 2024 14:03:41 +0100
Message-Id: <b19a5ca7abd27bd4f31a0d87573687297dd7df58.1719849287.git.alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

In it's current form it's rather cryptic for uninitiated, so this patch
documents everything in there to make it more palatable.

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 xen/include/xen/vmap.h | 100 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 100 insertions(+)

diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index 0c16baa85f31..2ab8030d6d00 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -1,34 +1,131 @@
+/*
+ * Interface to map physical memory onto contiguous virtual memory areas.
+ *
+ * Two ranges of linear address space are reserved for this purpose: A general
+ * purpose area (VMAP_DEFAULT) and a livepatch-specific area (VMAP_XEN). The
+ * latter is used when loading livepatches and the former for everything else.
+ */
 #if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
 #define __XEN_VMAP_H__
 
 #include <xen/mm-frame.h>
 #include <xen/page-size.h>
 
+/** Identifiers for the linear ranges tracked by vmap */
 enum vmap_region {
+    /*
+     * Region used for general purpose RW mappings. Mapping/allocating memory
+     * here can induce extra allocations for the supporting page tables.
+     */
     VMAP_DEFAULT,
+    /**
+     * Region used for loading livepatches. Can't use VMAP_DEFAULT because it
+     * must live close to the running Xen image. The caller also ensures all
+     * page tables are already in place with adequate PTE flags.
+     */
     VMAP_XEN,
+    /** Sentinel value for bounds checking */
     VMAP_REGION_NR,
 };
 
+/**
+ * Runtime initialiser for each vmap region type
+ *
+ * Must only be called once per vmap region type.
+ *
+ * @param type  Designation of the region to initialise.
+ * @param start Start address of the `type` region.
+ * @param end   End address (not inclusive) of the `type` region
+ */
 void vm_init_type(enum vmap_region type, void *start, void *end);
 
+/**
+ * Maps a range of physical ranges onto a single virtual range
+ *
+ * `mfn` is an array of `nr` physical ranges, each of which is `granularity`
+ * pages wide. `type` defines which vmap region to use for the mapping and
+ * `flags` is the PTE flags the page table leaves are meant to have.
+ *
+ * Typically used via the vmap() and vmap_contig() helpers.
+ *
+ * @param mfn          Array of mfns
+ * @param granularity  Number of contiguous pages each mfn represents
+ * @param nr           Number of mfns in the `mfn` array
+ * @param align        Alignment of the virtual area to map
+ * @param flags        PTE flags for the leaves of the PT tree.
+ * @param type         Which region to create the mappings on
+ */
 void *__vmap(const mfn_t *mfn, unsigned int granularity, unsigned int nr,
              unsigned int align, unsigned int flags, enum vmap_region type);
+
+/**
+ * Map an arrray of pages contiguously into the VMAP_DEFAULT vmap region
+ *
+ * @param[in] mfn Pointer to the base of an array of mfns
+ * @param[in] nr  Number of mfns in the array
+ */
 void *vmap(const mfn_t *mfn, unsigned int nr);
+
+/**
+ * Maps physically contiguous pages onto the VMAP_DEFAULT vmap region
+ *
+ * Used when the directmap is unavailable (i.e: due to secret hiding)
+ *
+ * @param mfn Base mfn of the physical region
+ * @param nr  Number of mfns in the physical region
+ */
 void *vmap_contig(mfn_t mfn, unsigned int nr);
+
+/**
+ * Unmaps a range of virtually contiguous memory from one of the vmap regions
+ *
+ * The system remembers internally how wide the mapping is and unmaps it all.
+ * It also can determine the vmap region type from the `va`.
+ *
+ * @param va Virtual base address of the range to unmap
+ */
 void vunmap(const void *va);
 
+/**
+ * Allocate `size` octets of possibly non-contiguous physical memory and map
+ * them contiguously in the VMAP_DEFAULT vmap region
+ *
+ * The system remembers internally how wide the mapping is and unmaps it all.
+ *
+ * @param size Pointer to the base of an array of mfns
+ * @return Pointer to the mapped area on success; NULL otherwise.
+ */
 void *vmalloc(size_t size);
+
+/** Same as vmalloc(), but for the VMAP_XEN vmap region. */
 void *vmalloc_xen(size_t size);
 
+/** Same as vmalloc(), but set the contents to zero before returning */
 void *vzalloc(size_t size);
+
+/**
+ * Unmap and free memory from vmalloc(), vmalloc_xen() or vzalloc()
+ *
+ * @param va Virtual base address of the range to free and unmap
+ */
 void vfree(void *va);
 
+/**
+ * Analogous to vmap_contig(), but for IO memory
+ *
+ * Unlike vmap_contig(), it ensures architecturally correct cacheability
+ * settings are set for the mapped IO memory.
+ *
+ * @param pa  Physical base address of the MMIO region.
+ * @param len Length of the MMIO region in octets.
+ * @return Pointer to the mapped area on success; NULL otherwise.
+ */
 void __iomem *ioremap(paddr_t pa, size_t len);
 
 /* Return the number of pages in the mapping starting at address 'va' */
 unsigned int vmap_size(const void *va);
 
+/** Analogous to vunmap(), but for IO memory mapped via ioremap() */
 static inline void iounmap(void __iomem *va)
 {
     unsigned long addr = (unsigned long)(void __force *)va;
@@ -36,7 +133,10 @@ static inline void iounmap(void __iomem *va)
     vunmap((void *)(addr & PAGE_MASK));
 }
 
+/** Pointer to 1 octet past the end of the VMAP_DEFAULT virtual area */
 void *arch_vmap_virt_end(void);
+
+/** Initialises the VMAP_DEFAULT virtual range */
 static inline void vm_init(void)
 {
     vm_init_type(VMAP_DEFAULT, (void *)VMAP_VIRT_START, arch_vmap_virt_end());
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 13:11:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 13:11:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752455.1160668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOdI1-0001Pi-Pk; Tue, 02 Jul 2024 13:11:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752455.1160668; Tue, 02 Jul 2024 13:11: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 1sOdI1-0001Pb-N0; Tue, 02 Jul 2024 13:11:21 +0000
Received: by outflank-mailman (input) for mailman id 752455;
 Tue, 02 Jul 2024 13:11: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=A3J5=OC=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sOdI0-0001PT-FC
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 13:11:20 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20607.outbound.protection.outlook.com
 [2a01:111:f403:2414::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 916ce287-3874-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 15:11:18 +0200 (CEST)
Received: from SN4PR0501CA0061.namprd05.prod.outlook.com
 (2603:10b6:803:41::38) by DS0PR12MB7875.namprd12.prod.outlook.com
 (2603:10b6:8:14d::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.32; Tue, 2 Jul
 2024 13:11:11 +0000
Received: from SN1PEPF000252A0.namprd05.prod.outlook.com
 (2603:10b6:803:41:cafe::49) by SN4PR0501CA0061.outlook.office365.com
 (2603:10b6:803:41::38) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21 via Frontend
 Transport; Tue, 2 Jul 2024 13:11:11 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF000252A0.mail.protection.outlook.com (10.167.242.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7741.18 via Frontend Transport; Tue, 2 Jul 2024 13:11:11 +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, 2 Jul
 2024 08:11:07 -0500
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 2 Jul 2024 08:11: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: 916ce287-3874-11ef-92e8-0d9d20120eaa
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cUK7oA9iSOfv6ozm9mUpeEzjo1AHxx9sHtzqmcKA6MxMu3H2UYbZYGR9g4ZTL7EdbXT78iQ3p0Es8GRCFtHzlfYgLPMQ6RIWHVn7UcWXvuhdPNOThKjy3nmfUdxKr2rfcxDIoCNAdB+4IT2WzPPTwqLjXYO2qR0pCKUaYxexCrNVKgTyXpLXvuhZIgrw+7pLiSumYBZe3kWGJ6I4EQmW/uSXMIvpDq5ApOY31QCUtbcrsu9/dAubH9pSx8O9Qkix3INLF+jARj1BAIE8UJ0iaRFD7iXp1ytjbO1Le3QoRkK2wZLJvfQwKoxY3U5W9zg+4+vRG9v04yPLNvVsDHzt+w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PeWdMwVCY3f6tmMWnRqlf2QOlbDIcDm8kK0e0AHA6s4=;
 b=UClKFA4ceThDIMMc21fo/nPbeXpGJz7ZuKF/C+tVb4MT9PQoaobdfWIIifGBTZwcVJtO1tHgLSMO/gcXMz6FCX9+qcyTsN8Vcx2WbgQRyerS4laXE3E4DWyBBzCRwbhaO0lKUHJ7LsSHfYijcBvLS/Z3vuen8TRCSbbY92kPSrof9k9LY77IQdPLhGboxEjOyyl9XhcFkdh8187xr0vzWaI93yGvLwnVSCjgV8iaBl9r71QcXEMr+XsB/Z+eNI/6jXfTpuu7kzYveb+i4RogkzLH7i8YEGmSQF0iiOmBmho4JRiNYw+lF/uLTAKiauhZhlHO3jjkRs8k0PcXJ3lqvw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PeWdMwVCY3f6tmMWnRqlf2QOlbDIcDm8kK0e0AHA6s4=;
 b=WsAZfKVAgmmr8rGl3r+uz17v7OJ+ICAyv6VNH0ZBRg2u+06hwxuAzb20Oc3ETzbhRiupyroxxS4wZ7ZZgFM5QPHkHZ4QVAHtfKZJOCGOgFwZfQDbpg6dWkhzjNwg2Y5GlU7GTrmd5M2M7VLC3NGJbKES8ML9iRxpLUGQxpesinI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <baae2108-675a-4e83-84b3-c791e57c3509@amd.com>
Date: Tue, 2 Jul 2024 15:11:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 1/9] xen: introduce generic non-atomic test_*bit()
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>, Jan Beulich <jbeulich@suse.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
 <2f60d1fd7b3ac7d603486ce03a112d58352bf16d.1719917348.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <2f60d1fd7b3ac7d603486ce03a112d58352bf16d.1719917348.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000252A0:EE_|DS0PR12MB7875:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f2bdfd8-7dfe-4d7e-aec1-08dc9a9871da
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|7416014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QWhET21tWXl6VlFSb2x5Y3FCWFNkZS9nT1d4cmJVb1NuY0dXQmJ2b0FFcy9X?=
 =?utf-8?B?d1lmeW5wV3NVNUpldjJPSWE3WUdhYjYxVlg3YnJiRVRIRVNPSzErTzJZa1lG?=
 =?utf-8?B?NDZ6LzlLVFExN2o0dHB2THdVUDJGcXBNREZOZDdPekZYUkEwdDhkbmZDUTl2?=
 =?utf-8?B?bW5IRVJRN1A4ZG9WUXFXRWdmMW5hQkVhNlQwS2p5S3owbE9tdGVKMTlWakR0?=
 =?utf-8?B?T20xZ3RZUlJiYmV4dHdsQkd5VWtueXorY1JQOWt6ekZjV1dxNitJbFJMRzBj?=
 =?utf-8?B?Z3JqWEpXM29VeVR5cDlXV0Nld2tBVTVkYUNXdUMvaXk3T3VhZlpLaXMwODRy?=
 =?utf-8?B?TkxXdkRjeEtuN1NPaFpIM3NCZEoydGJYT3JhR0NwY1JqcytPdzZZU2FVaXUv?=
 =?utf-8?B?cXduV1VSd0s4QzZKaGloNVVGOVN1aWQwMEt2d3BUNkt2L0ovaDNZSERMdExP?=
 =?utf-8?B?Zzh0R3VON0ZqOVUvN1ZBWk5JSUZNMDRrOFo0VkFURWxxMmlaTnlCVGZKOUp4?=
 =?utf-8?B?NmJFc1NyZXZQeHE1cVJKMDRtWm1lR1h0Q21HRFVuY0tseERpYUlsM1NUOG43?=
 =?utf-8?B?clJmVzFHWURLTTRmWjNZUWQrU3lQS1lSSWZsVldJOEcrVWdJc3dHUVlWTlRy?=
 =?utf-8?B?bFhEOThpaUl5OEhKMllTSTVQQ1FUL0RGSUkyNWNudVJIWEN4QmtDM0FQbzlV?=
 =?utf-8?B?T1FCQWpFMDYraDYzYmswME5XS3RLdEVtbzdabE11SFNuQTY0WWJlWFMxWitH?=
 =?utf-8?B?bjRKdkZhV2ZmS1h5a20rYStCSXFhZnRCVFQzamE5anVJaUx5NTNsNDZ6T0Yz?=
 =?utf-8?B?VkEyQVFMT1V1Z0dpS2ppS0FjQmxmWmJkVHpueVBtT2Z2ZnZvRSs5cFc3NkMv?=
 =?utf-8?B?L1VwKzc4Vit4UnFOeDNicmhlWUVYNXRta0tFZGdKNUpIME9tR0VEYWRpSUkv?=
 =?utf-8?B?RTVvL1B2ZldHMlJBaGIvTDJNNytTbW1QYU4rbzNZTjAyWXpFTzhsUG1LYUdS?=
 =?utf-8?B?eVpPK01EYklZWXE2Wm82dEZMZkxMemhiUUFIeUhRREQrZ2JMS1RaTDM4V1h0?=
 =?utf-8?B?TkZWMGZ0RkZyL21kb25hdHlqTXN1RU51ZHNQQXhUT0FFY0VYOGVHT2txOVZy?=
 =?utf-8?B?aFJ2TUdBUldYeVJJb3ZCOUhkMEY2NXJOMUJ3TE5YSFpJa3NHRVlydHlVRHlL?=
 =?utf-8?B?VXBlcXBaYXNVdFJUZHArZ1M2dU5YK2ZGR25VY3M1Ymc5R29sQUtYb0l5Mito?=
 =?utf-8?B?SE0vME44aXhQTEZjU2lOTEhPVXNTY2JDVHRncXYvaWZFK2xRVm0zMVVPcy8r?=
 =?utf-8?B?a1Z0QXNhTmZTQmdHMDI0LzZEYXZJQkx5Z2tBSWkrRERjMkthU1B1aWhmT2Fp?=
 =?utf-8?B?SXVXM3ZKR1B3cThsZmprZUNHL1k1M2t1bUMzTWh3UG1SaDNuTzZraW1CendJ?=
 =?utf-8?B?U005M0QwcWJTT0Z3QXFJWktNRzcrbitKSmpmLzFjNC8xVEpPU0NaTk91T2Ns?=
 =?utf-8?B?NGU0REdMcEVIVGFiWU9sWjA0ZFVsbFQyZ041YUxhMWt6Qm9PZnB6b3UzeVJQ?=
 =?utf-8?B?ZE16TFpHZzhIK0lZZTZyZTRERG5JSm5NN2p3anVnajZFL01xbWNaMVFPRnVF?=
 =?utf-8?B?WUoybEd6b3A4b1ArNUtGaXprM1pFclFjRFkyZ3JZSVFBbnUwTlZ6bmdNTzB1?=
 =?utf-8?B?RURSNjdEMWZIaksrV3h1ZnowK1hJN1Y1ZHR6TjVEb0dNbUQwMmtwK0o3Zlg3?=
 =?utf-8?B?ZHliNzVOS3FVL0d2Yk8zT0x1VzBwNERHTkh0K21QSU1FUTExWkYwMytGd1ZS?=
 =?utf-8?B?N2pUZStYMmJLRFF1YndDaXZHN0toeC9rN3N1VTFDWlFTMFVrdlpuYzJaOE53?=
 =?utf-8?B?VmtMRk5GdVBKWVNhQTFSR0pjR2Q0SndMakhyT01uZ1FPNmV3dGltc3ZqUVdt?=
 =?utf-8?Q?sI68pEFu/j44/kzt3NSbots4E0H54Op0?=
X-Forefront-Antispam-Report:
	CIP:165.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)(7416014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2024 13:11:11.4850
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f2bdfd8-7dfe-4d7e-aec1-08dc9a9871da
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000252A0.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7875

Hi Oleksii,

On 02/07/2024 13:01, Oleksii Kurochko wrote:
> 
> 
> The following generic functions were introduced:
> * test_bit
> * generic__test_and_set_bit
> * generic__test_and_clear_bit
> * generic__test_and_change_bit
> 
> These functions and macros can be useful for architectures
> that don't have corresponding arch-specific instructions.
> 
> Also, the patch introduces the following generics which are
> used by the functions mentioned above:
> * BITOP_BITS_PER_WORD
> * BITOP_MASK
> * BITOP_WORD
> * BITOP_TYPE
> 
> The following approach was chosen for generic*() and arch*() bit
> operation functions:
> If the bit operation function that is going to be generic starts
> with the prefix "__", then the corresponding generic/arch function
> will also contain the "__" prefix. For example:
>  * test_bit() will be defined using arch_test_bit() and
>    generic_test_bit().
>  * __test_and_set_bit() will be defined using
>    arch__test_and_set_bit() and generic__test_and_set_bit().
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

with one question...

[...]

> diff --git a/xen/include/xen/bitops.h b/xen/include/xen/bitops.h
> index 6a5e28730a..cc09d273c9 100644
> --- a/xen/include/xen/bitops.h
> +++ b/xen/include/xen/bitops.h
> @@ -4,6 +4,19 @@
>  #include <xen/compiler.h>
>  #include <xen/types.h>
> 
> +#define BITOP_BITS_PER_WORD 32
> +typedef uint32_t bitop_uint_t;
> +
> +#define BITOP_MASK(nr)  ((bitop_uint_t)1 << ((nr) % BITOP_BITS_PER_WORD))
> +
> +#define BITOP_WORD(nr)  ((nr) / BITOP_BITS_PER_WORD)
> +
> +#define BITS_PER_BYTE 8
Shouldn't you remove the same macros from riscv and x86 config.h ?

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 13:25:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 13:25:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752462.1160678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOdVe-0003Nt-0F; Tue, 02 Jul 2024 13:25:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752462.1160678; Tue, 02 Jul 2024 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 1sOdVd-0003Nm-TM; Tue, 02 Jul 2024 13:25:25 +0000
Received: by outflank-mailman (input) for mailman id 752462;
 Tue, 02 Jul 2024 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=jWIE=OC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sOdVc-0003Nf-Gj
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 13:25:24 +0000
Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com
 [2607:f8b0:4864:20::735])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 888268a5-3876-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 15:25:22 +0200 (CEST)
Received: by mail-qk1-x735.google.com with SMTP id
 af79cd13be357-79c06c08149so270126285a.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 06:25:22 -0700 (PDT)
Received: from [10.125.226.166] ([160.101.139.1])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-79d69303cf7sm456346985a.110.2024.07.02.06.25.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 06:25: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: 888268a5-3876-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719926721; x=1720531521; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fArfLueTogK3CnphpQLna5oeSDXaai+pwnV3ZqaAasg=;
        b=fx3ed9kxXcOtCx95/U+lMUF+6qa6MF2QI5fn823S8rIs+LUvEjkmlUd3apj8sqgO2U
         zCZXwUOjCcNnF3vymw8pn3p+HoxNh86O0JvQz9KAE8naoX3karmYwENZcPY5Santicta
         x0X9DeHhAJ7gk7TcPgK/5eGnSYZ/cGHlmqHn4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719926721; x=1720531521;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fArfLueTogK3CnphpQLna5oeSDXaai+pwnV3ZqaAasg=;
        b=bGXjReRG1C+tPcQfE6uvBxJtSwWZv25lwTEy281l5G2HV/FdcIniuJzsG87z57cMyZ
         haYvIAoFKhpQsdAESoHFrwxW6qEfdmMrha5RvbuLgErALD7qKvVHgu6l5NCyyiBCDNuF
         hHK9RvlFMvl3uJ41KIShx93i5MD48/EG3+zoJ31Pcee/ZoIq6a/XxJ+tdIZJvGfAEK9B
         os8yd9AlucojZm8vQjXKr3DYbCYBKF1Nu1FDqWqNrSlnU7V8K73SwIs+1yRqANDue577
         Crrd4dCHlC+pTH++ecwDXY0zM5CGaIO1kTgATlw/O60HMB3rA19LIS5Ujum/Ftb9ENll
         EBYg==
X-Forwarded-Encrypted: i=1; AJvYcCUuo6xlAbRoiPBou22g95f7zhS8h0cgk9bNcMpG5xO2dWahO1Vj0y+rLe2q0TGymgoZceIh0H6xlhd6vzoYA6JNsbEP12Mij+5wjwBGkDo=
X-Gm-Message-State: AOJu0YytGpIsNNEz7dizRxW8AxpNWMa8l9ZGpAAcX2H8ybX3gd/2Vzf1
	0eh/UnEUesZt+ZZp9JXWCrr3XZEnELiL47OsxjqhA/hfd4a5Vp2fEBEOq0o91cI=
X-Google-Smtp-Source: AGHT+IEZ/3UNFEq1xhlrvA2FfrJK9nsjYsr6gUMJtWd6Dyljw7qI8XR4Rs53Q9fKOoX8mSkisyxcMQ==
X-Received: by 2002:a05:620a:1359:b0:79d:5b4c:7bce with SMTP id af79cd13be357-79d7ba14a08mr996092785a.43.1719926721474;
        Tue, 02 Jul 2024 06:25:21 -0700 (PDT)
Message-ID: <a94ddb39-0bb1-42a6-9cf4-8c05f92a5cb0@citrix.com>
Date: Tue, 2 Jul 2024 14:25:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] automation: add findutils to suse images
To: Olaf Hering <olaf@aepfle.de>
Cc: Oleksii <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20240701151512.10187-1-olaf@aepfle.de>
 <6231910f-b4c9-4604-83dc-c53e53d30409@citrix.com>
 <0551e31b19bbdad8aeacb6c76e7651abe1b8ca4d.camel@gmail.com>
 <b6f3001f-6ad9-4833-a0cd-3742df49acb7@citrix.com>
 <20240702121129.201a677f.olaf@aepfle.de>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240702121129.201a677f.olaf@aepfle.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02/07/2024 11:11 am, Olaf Hering wrote:
> Tue, 2 Jul 2024 11:02:00 +0100 Andrew Cooper <andrew.cooper3@citrix.com>:
>
>> This patch is about keeping Gitlab CI running smoothly.  It's not
>> related to Xen 4.19, except by chance.
> It seems the automation/build directory needs to be purged from
> non-staging branches, to make it obvious that images need to be
> rebuilt from the staging branch only.

In an ideal world, yes.  Sadly there's one problem.

It breaks the use of ./automation/scripts/containerize locally in the
older branches.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 13:43:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 13:43:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752471.1160688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOdmu-0006i4-Dm; Tue, 02 Jul 2024 13:43:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752471.1160688; Tue, 02 Jul 2024 13: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 1sOdmu-0006hx-BB; Tue, 02 Jul 2024 13:43:16 +0000
Received: by outflank-mailman (input) for mailman id 752471;
 Tue, 02 Jul 2024 13: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=jWIE=OC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sOdmt-0006hr-OH
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 13:43:15 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 072a1644-3879-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 15:43:13 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a751ed17b1eso436799666b.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 06:43:13 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([160.101.139.1])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72aaf61f69sm422119666b.67.2024.07.02.06.43.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 06:43: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: 072a1644-3879-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719927792; x=1720532592; 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=4ysxzaW7zBA0aHmVDbuDm4bmqYBDZxIKNlD/R+YAdNs=;
        b=ejkdTrtxkN/5TBE3MfUVplt/+h+5x+9tF5lpQsK86uvdiiOmk2f2qJOTMx0ubTh4D1
         FaEQahPt6ph854xdofICmYWr1BpgZ3AfFuo9BObz6b42Bm4NXHVi5XZsXGeQtguQHxAy
         mh57f6L8SjC0EG2LO/jZOdueHVQbudZOPeUqU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719927792; x=1720532592;
        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=4ysxzaW7zBA0aHmVDbuDm4bmqYBDZxIKNlD/R+YAdNs=;
        b=s845HGSfoh4T6qMTj4uR2+vHqa0C6LCaOPvGzMz7wTNPbj8wvkbWXmY3lS27zAkEj2
         JYOzRmHmuE9Y3ppKJAgQKNkblEoHTBwy0k22KNgormB1ZQxoDLSkaPw22ocOz95UG6Va
         g1dJjaCYC7gII/+X5gIuBRvHTeqEePUB/8M6CCyaCQdOT3VZ8AxVZL3Hxz0Yj9XvV05v
         TwYS+lpA0bRvyrGJnVvf4FGj9+dmLBKT1TGEo6FPZQebIC6oj9jSqyHS4Szb1Uu7mORi
         9+IclfXOMewpGqp2YYOIcV8WFXArw6M1MezXGtIBaOg6WLhrNk4pVZtlsL5oX4c8Yqu2
         /5oQ==
X-Gm-Message-State: AOJu0Yx5HCXCjchZMJ++1Cr5MN9f7tCM+igySxaWvX29c4OLTw47BBtA
	9Hp6L0TzHWXUQx9uZma7GTRrAHwdHa42GRHmcIjRJqYjU2KfdOjmog4WxXoI1uKpQk8iKCmmRSC
	N7UA=
X-Google-Smtp-Source: AGHT+IGjUA7IDqvAHJg26XAb4ugBXlO7C9RYCvYxQJtZWs0ayNYOeo4donIXYwowBNvbZREsBJSuBA==
X-Received: by 2002:a17:906:c1c2:b0:a6f:9643:e8b8 with SMTP id a640c23a62f3a-a7513953c11mr662493866b.32.1719927792391;
        Tue, 02 Jul 2024 06:43: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>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] xen: Fix XEN_EXTRAVERSION after 4.19-rc1
Date: Tue,  2 Jul 2024 14:43:10 +0100
Message-Id: <20240702134310.1307657-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

EXTRAVERSION needs a . separator for numbers.  Currently, the banner reports:

  __  __            _  _    _  ___   ___
  \ \/ /___ _ __   | || |  / |/ _ \ / _ \    _ __ ___
   \  // _ \ '_ \  | || |_ | | (_) | | | |__| '__/ __|
   /  \  __/ | | | |__   _|| |\__, | |_| |__| | | (__
  /_/\_\___|_| |_|    |_|(_)_|  /_/ \___/   |_|  \___|

and xl reports:

  # xl info xen_version
  4.190-rc

Fixes: 4a73eb4c205d ("Update Xen version to 4.19-rc")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

For 4.19.  This is a minor mistake when creating Xen-4.19-rc1.
---
 xen/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/Makefile b/xen/Makefile
index 58ce6e468eab..037c49f83d39 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -6,7 +6,7 @@ this-makefile := $(call lastword,$(MAKEFILE_LIST))
 # All other places this is stored (eg. compile.h) should be autogenerated.
 export XEN_VERSION       = 4
 export XEN_SUBVERSION    = 19
-export XEN_EXTRAVERSION ?= 0-rc$(XEN_VENDORVERSION)
+export XEN_EXTRAVERSION ?= .0-rc$(XEN_VENDORVERSION)
 export XEN_FULLVERSION   = $(XEN_VERSION).$(XEN_SUBVERSION)$(XEN_EXTRAVERSION)
 -include xen-version
 

base-commit: 08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 14:00:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 14:00:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752479.1160697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOe3p-0001VR-Km; Tue, 02 Jul 2024 14:00:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752479.1160697; Tue, 02 Jul 2024 14:00:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOe3p-0001VK-I4; Tue, 02 Jul 2024 14:00:45 +0000
Received: by outflank-mailman (input) for mailman id 752479;
 Tue, 02 Jul 2024 14:00: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=jWIE=OC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sOe3o-0001VE-JZ
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 14:00:44 +0000
Received: from mail-qv1-xf32.google.com (mail-qv1-xf32.google.com
 [2607:f8b0:4864:20::f32])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 783e8883-387b-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 16:00:43 +0200 (CEST)
Received: by mail-qv1-xf32.google.com with SMTP id
 6a1803df08f44-6b05c9db85fso20306696d6.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 07:00:42 -0700 (PDT)
Received: from [10.125.226.166] ([160.101.139.1])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b59e73897dsm43953126d6.139.2024.07.02.07.00.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 07: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: 783e8883-387b-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719928841; x=1720533641; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uUOm565QMe2SFPJSZ1fT2IZlQUNLxQtlYjHvaXA17rg=;
        b=wQkuIKflXkul3k6tV97/C+M1BsozE/3UaBY75d8daT52zg0tITH0sL2LZxTE5XDyXf
         xLe/xz915dx3I3oySPVyYCcFOHqYWHuc04baN2nEOFXXYdzXzljsFRQ9n2YKB5NaBx5R
         FQ1SPf0A6ZLshqTFzWWj+2RhRCMvYCChgGLco=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719928841; x=1720533641;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uUOm565QMe2SFPJSZ1fT2IZlQUNLxQtlYjHvaXA17rg=;
        b=QDKLl8tEx8aKDBQ4oUvAUGyxkmEi+Add8BORIK7VRJpoGwjh5IKterdtus70LyDVEM
         +LLsZO3bMNoIpmp1EKyblMh0dn5AToghbXt3YxNrmfQ06Me7M2VtR2qduzcSNdVlp99s
         aN4iFhugS7qldO2vwnKxGmiMvHQqUciZxNRfrx1c10DlyZjI/gqW2Kb/jt/9uaM0Zdg8
         GjmmAG9XfCEjj/zHqwAsIWnOcyK2FLB28r1SMsQaC3sjUSp+AbbiE9Qly7m9K4fM8Ko1
         oE5fMKUq+cdKgUxKuE3YfSuNH/MsU0/YYJfWuVVmLHyCw+eZoIC+C9vxNXtaG2cbvPIr
         OFMA==
X-Gm-Message-State: AOJu0YyCx0VjWqHniaD+6J1KZKPuWoYx4CNyXj8RviWNgf4oCsfWZDzQ
	faMwOB3lxGnr8o1IEhAHQczYoA9WYqfeRrduqwCIfWUuOh7U01Gvj/9I8zTrX6QLVHIlVKtxL3f
	fWAA=
X-Google-Smtp-Source: AGHT+IGNfy/FowtW3jDTgMdbkMoj8rs5HEfdz/D9IojXMjkGycLk0ORy8P1fsI5kf2Ssn774f6W2Qg==
X-Received: by 2002:a05:6214:528a:b0:6b5:dac7:14cf with SMTP id 6a1803df08f44-6b5dac716d7mr9423706d6.20.1719928840701;
        Tue, 02 Jul 2024 07:00:40 -0700 (PDT)
Message-ID: <57564801-0a48-49e1-bb2d-1997ba2c7472@citrix.com>
Date: Tue, 2 Jul 2024 15:00:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] xen: Fix XEN_EXTRAVERSION after 4.19-rc1
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240702134310.1307657-1-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240702134310.1307657-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

I forgot the for-4.19 in the subject.

Hopefully it's obvious why...

~Andrew

On 02/07/2024 2:43 pm, Andrew Cooper wrote:
> EXTRAVERSION needs a . separator for numbers.  Currently, the banner reports:
>
>   __  __            _  _    _  ___   ___
>   \ \/ /___ _ __   | || |  / |/ _ \ / _ \    _ __ ___
>    \  // _ \ '_ \  | || |_ | | (_) | | | |__| '__/ __|
>    /  \  __/ | | | |__   _|| |\__, | |_| |__| | | (__
>   /_/\_\___|_| |_|    |_|(_)_|  /_/ \___/   |_|  \___|
>
> and xl reports:
>
>   # xl info xen_version
>   4.190-rc
>
> Fixes: 4a73eb4c205d ("Update Xen version to 4.19-rc")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>
> For 4.19.  This is a minor mistake when creating Xen-4.19-rc1.
> ---
>  xen/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/Makefile b/xen/Makefile
> index 58ce6e468eab..037c49f83d39 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -6,7 +6,7 @@ this-makefile := $(call lastword,$(MAKEFILE_LIST))
>  # All other places this is stored (eg. compile.h) should be autogenerated.
>  export XEN_VERSION       = 4
>  export XEN_SUBVERSION    = 19
> -export XEN_EXTRAVERSION ?= 0-rc$(XEN_VENDORVERSION)
> +export XEN_EXTRAVERSION ?= .0-rc$(XEN_VENDORVERSION)
>  export XEN_FULLVERSION   = $(XEN_VERSION).$(XEN_SUBVERSION)$(XEN_EXTRAVERSION)
>  -include xen-version
>  
>
> base-commit: 08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 14:12:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 14:12:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752500.1160711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOeEX-0003V1-Oj; Tue, 02 Jul 2024 14:11:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752500.1160711; Tue, 02 Jul 2024 14: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 1sOeEX-0003Uu-M8; Tue, 02 Jul 2024 14:11:49 +0000
Received: by outflank-mailman (input) for mailman id 752500;
 Tue, 02 Jul 2024 14:11: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=a6qz=OC=redhat.com=mst@srs-se1.protection.inumbo.net>)
 id 1sOeEW-0003Uo-QQ
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 14:11:48 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 047ff95b-387d-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 16:11:47 +0200 (CEST)
Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com
 [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-77-99-dBIGcNRKfi_jPvfNpRg-1; Tue, 02 Jul 2024 10:11:44 -0400
Received: by mail-wm1-f71.google.com with SMTP id
 5b1f17b1804b1-4248fa5daacso29582955e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 07:11:44 -0700 (PDT)
Received: from redhat.com ([2a02:14f:1f5:eadd:8c31:db01:9d01:7604])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4256b061006sm197706495e9.22.2024.07.02.07.11.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 07:11: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: 047ff95b-387d-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1719929506;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=bN0cTm8m+n/A4V5Tgbpm0TUAfWebEt6LcyWQbTcpz4g=;
	b=GRmGD+wLttvKEcDK7gCieolbWjxD+zUWycmfkcBcVvwe8kY8lCjOrH70g627MdoGRxVz14
	UqkQ64K91XfN2gY7dps7uu3kBmEtjB36AvphOseBIrij0fBute3MKSXSkaqVy1rTlmLzw2
	reU6FDAIK77hFJtxIMCc156HuTbMLUc=
X-MC-Unique: 99-dBIGcNRKfi_jPvfNpRg-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719929503; x=1720534303;
        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=bN0cTm8m+n/A4V5Tgbpm0TUAfWebEt6LcyWQbTcpz4g=;
        b=dMB3AF3gzCkt9kZ+ROp55HNmixEukSI6KzB9TSY4tmXr5JBL/BTPTumgc6PZxLY78G
         K7bIs+KPEkcISi9aJrCjqZk3x6e7WBcAPxDrKzU6juEUm5UuHpQijjE1bC42kyWQDenf
         3Nqku+aoSs5tQ/Q5VsM6kRHYXqpLBnumhdIscSVr4xB7Gg2YCFHEI+CeGqXYVpJWaxiR
         MMfDHJwNZlCHqKagmW5Y2Z46MYZ7i8T+EFVFkAbRhxgGsgPvM3i8I5C4ANDz7dxHkZLT
         g5B7f8/P6B0jtmteiy54sJxOBy9UQ1dLYOlAQv5dCW1xrN7iIE0rPBhlPwHqguflQFin
         xJ5A==
X-Forwarded-Encrypted: i=1; AJvYcCXe5lm+GeLJrSN8jG7JX/NIamHwOKN6xTkKGrzAuzkwdKSNnsiPr4caV5cJlv/HhP+lG1QdhEZWT5YoW4Ax5CARfKnn3MS4BbVw+py3b00=
X-Gm-Message-State: AOJu0Yw16xGXqf28o2nP0KhTjlXwz3DZrHnl0lrx0gqu2pvx+qs9DITU
	HrmCR/nqUjXueELObSRh9RV0WiZy13tylIBQ6sCXfWUzID7sJ6mo9P8ClqeudP4w7JSBDOKGYCy
	nu+2QHHHePoBarMA+C1v2yo6n+14XBoekc5o/FpQhamYJcCWznpWc8zsbTYPTkYtl
X-Received: by 2002:a05:600c:47cf:b0:425:7c18:df9f with SMTP id 5b1f17b1804b1-4257c18e0dfmr38909155e9.40.1719929503643;
        Tue, 02 Jul 2024 07:11:43 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IEF+bg8BPn83l1dihyVUeV27Pe6P0ZNHE/VD3ClUbZT2uoj6UcFuruOQIL6CEMxWRsrxnjA+g==
X-Received: by 2002:a05:600c:47cf:b0:425:7c18:df9f with SMTP id 5b1f17b1804b1-4257c18e0dfmr38908905e9.40.1719929503038;
        Tue, 02 Jul 2024 07:11:43 -0700 (PDT)
Date: Tue, 2 Jul 2024 10:11:40 -0400
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Akihiko Odaki <akihiko.odaki@daynix.com>,
	Markus Armbruster <armbru@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Subject: [PULL 91/91] hw/pci: Replace -1 with UINT32_MAX for romsize
Message-ID: <a323ad3c8a8f12ee180d0582d7fffa8098b1a962.1719929191.git.mst@redhat.com>
References: <cover.1719929191.git.mst@redhat.com>
MIME-Version: 1.0
In-Reply-To: <cover.1719929191.git.mst@redhat.com>
X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1
X-Mutt-Fcc: =sent
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

From: Akihiko Odaki <akihiko.odaki@daynix.com>

romsize is an uint32_t variable. Specifying -1 as an uint32_t value is
obscure way to denote UINT32_MAX.

Worse, if int is wider than 32-bit, it will change the behavior of a
construct like the following:
romsize = -1;
if (romsize != -1) {
    ...
}

When -1 is assigned to romsize, -1 will be implicitly casted into
uint32_t, resulting in UINT32_MAX. On contrary, when evaluating
romsize != -1, romsize will be casted into int, and it will be a
comparison of UINT32_MAX and -1, and result in false.

Replace -1 with UINT32_MAX for statements involving the variable to
clarify the intent and prevent potential breakage.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20240627-reuse-v10-10-7ca0b8ed3d9f@daynix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/pci/pci.c             | 8 ++++----
 hw/xen/xen_pt_load_rom.c | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index fa85f87b1c..4c7be52951 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -70,7 +70,7 @@ static bool pcie_has_upstream_port(PCIDevice *dev);
 static Property pci_props[] = {
     DEFINE_PROP_PCI_DEVFN("addr", PCIDevice, devfn, -1),
     DEFINE_PROP_STRING("romfile", PCIDevice, romfile),
-    DEFINE_PROP_UINT32("romsize", PCIDevice, romsize, -1),
+    DEFINE_PROP_UINT32("romsize", PCIDevice, romsize, UINT32_MAX),
     DEFINE_PROP_UINT32("rombar",  PCIDevice, rom_bar, 1),
     DEFINE_PROP_BIT("multifunction", PCIDevice, cap_present,
                     QEMU_PCI_CAP_MULTIFUNCTION_BITNR, false),
@@ -2073,7 +2073,7 @@ static void pci_qdev_realize(DeviceState *qdev, Error **errp)
                                  g_cmp_uint32, NULL);
     }
 
-    if (pci_dev->romsize != -1 && !is_power_of_2(pci_dev->romsize)) {
+    if (pci_dev->romsize != UINT32_MAX && !is_power_of_2(pci_dev->romsize)) {
         error_setg(errp, "ROM size %u is not a power of two", pci_dev->romsize);
         return;
     }
@@ -2359,7 +2359,7 @@ static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom,
         return;
     }
 
-    if (load_file || pdev->romsize == -1) {
+    if (load_file || pdev->romsize == UINT32_MAX) {
         path = qemu_find_file(QEMU_FILE_TYPE_BIOS, pdev->romfile);
         if (path == NULL) {
             path = g_strdup(pdev->romfile);
@@ -2378,7 +2378,7 @@ static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom,
                        pdev->romfile);
             return;
         }
-        if (pdev->romsize != -1) {
+        if (pdev->romsize != UINT_MAX) {
             if (size > pdev->romsize) {
                 error_setg(errp, "romfile \"%s\" (%u bytes) "
                            "is too large for ROM size %u",
diff --git a/hw/xen/xen_pt_load_rom.c b/hw/xen/xen_pt_load_rom.c
index 03422a8a71..6bc64acd33 100644
--- a/hw/xen/xen_pt_load_rom.c
+++ b/hw/xen/xen_pt_load_rom.c
@@ -53,7 +53,7 @@ void *pci_assign_dev_load_option_rom(PCIDevice *dev,
     }
     fseek(fp, 0, SEEK_SET);
 
-    if (dev->romsize != -1) {
+    if (dev->romsize != UINT_MAX) {
         if (st.st_size > dev->romsize) {
             error_report("ROM BAR \"%s\" (%ld bytes) is too large for ROM size %u",
                          rom_file, (long) st.st_size, dev->romsize);
-- 
MST



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 14:14:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 14:14:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752506.1160722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOeHT-00044A-4v; Tue, 02 Jul 2024 14:14:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752506.1160722; Tue, 02 Jul 2024 14: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 1sOeHT-000443-2P; Tue, 02 Jul 2024 14:14:51 +0000
Received: by outflank-mailman (input) for mailman id 752506;
 Tue, 02 Jul 2024 14: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=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOeHR-00043v-TP
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 14:14:49 +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 7018ffc4-387d-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 16:14:47 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ed5ac077f5so51182301fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 07:14: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
 41be03b00d2f7-72c6a31f5dfsm6618314a12.23.2024.07.02.07.14.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 07: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: 7018ffc4-387d-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719929687; x=1720534487; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt: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+UJLD5ndf6sP6FlphP9ppBld82PXJa+rDdTT6dNg18=;
        b=QoZeSxoSZ0LrvJuO84AzH/yXcQtenmhaT/ssbdt2wLUIBeDgnbVOmvNmHmK9E08Q/5
         +b8OU94sPyHsR7xDz9F273WlqXYFlCTPqL5aNyEi/BcgLGMf1wj+0MrK39qhn1sescPb
         brf4dre1jmXC7n8tk++Re84dNuZ+wEoJoQh56n/4zeyT17M2fb65R6PJIwQDQkmNQelP
         kJVBCw37QX32GFYG4EpPxR3YPjssG2yxson7w3L1MUtb5C7OQlBtqnxfZoEuioWXkPlf
         VVpNLvn9dKkFLH1U1Pl9PXvxPSpa4xP2OqaQp5o0GOLDYh/LBwJZSaOmAUL5stXuyPxA
         iM5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719929687; x=1720534487;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references: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+UJLD5ndf6sP6FlphP9ppBld82PXJa+rDdTT6dNg18=;
        b=AUDK7l6p3MKPXwgLPxvW81DNFBVhMxGK8NZg86fFcwGSqTLoEB7nHzwocU5JH/DYyf
         5N6OFDSdf7mf3bIw4Tf8UTzJUJVA653NNAN6ZUbQcJuwUXq9C3XLTsS9p4vlq7Rns5Ku
         cIKd7AIpaq2zEZ6PNfmDmgygFPJ1JoNf+yd7eBQrZptM959IatyGGepZNee/imfN7OE4
         uCGoc2lwSkl3BzKs63Ik4ZoY/awhR/qSZH1Pj1lke8XR9LQZCksYD6Ohuwi8x+HCLGiy
         ItCoN6+vJz18GQzpIqONepXZ7F+kvD01d8TgtSXp7TQyUkod7x8D8KbwPywlSHmhaimu
         GJnw==
X-Forwarded-Encrypted: i=1; AJvYcCUbDNEuEqncYsTzkjw5pcuPxMVsBQQy/Z/tPJIQS3lVobjlnx4JJSdhswZ/v8Eokq796Diztq0Kg9x9EJfeN3Igta0QEMNew4/70lzrWo4=
X-Gm-Message-State: AOJu0Yzn74KeRZqmJccHa0UPdhmFTJGb06Rh1QGedmRGsKtyx2EZN/2B
	J7FTxLZHoI5rnTknNWXFJqvkPomcjGYvmgpRrINUXD3pRYJCmbTF4FIZ0Mecag==
X-Google-Smtp-Source: AGHT+IEyj41OQ9cMD40hd9Xec8lwsR1QvVpygObFL6tXFfSfCa7hmJyL4wUDxJphod8/oTynEHP72w==
X-Received: by 2002:a2e:b889:0:b0:2ec:1042:fb04 with SMTP id 38308e7fff4ca-2ee5e6cd745mr59871621fa.35.1719929686959;
        Tue, 02 Jul 2024 07:14:46 -0700 (PDT)
Message-ID: <643ada7e-b265-4283-9c52-f6cf6239fe26@suse.com>
Date: Tue, 2 Jul 2024 16:14:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] xen: Fix XEN_EXTRAVERSION after 4.19-rc1
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240702134310.1307657-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: <20240702134310.1307657-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 15:43, Andrew Cooper wrote:
> EXTRAVERSION needs a . separator for numbers.

Not exactly. It needs the 0 dropped, if we follow what we've done in the
past. Then ...

>  Currently, the banner reports:
> 
>   __  __            _  _    _  ___   ___
>   \ \/ /___ _ __   | || |  / |/ _ \ / _ \    _ __ ___
>    \  // _ \ '_ \  | || |_ | | (_) | | | |__| '__/ __|
>    /  \  __/ | | | |__   _|| |\__, | |_| |__| | | (__
>   /_/\_\___|_| |_|    |_|(_)_|  /_/ \___/   |_|  \___|
> 
> and xl reports:
> 
>   # xl info xen_version
>   4.190-rc
> 
> Fixes: 4a73eb4c205d ("Update Xen version to 4.19-rc")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> For 4.19.  This is a minor mistake when creating Xen-4.19-rc1.
> ---
>  xen/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/Makefile b/xen/Makefile
> index 58ce6e468eab..037c49f83d39 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -6,7 +6,7 @@ this-makefile := $(call lastword,$(MAKEFILE_LIST))
>  # All other places this is stored (eg. compile.h) should be autogenerated.
>  export XEN_VERSION       = 4
>  export XEN_SUBVERSION    = 19
> -export XEN_EXTRAVERSION ?= 0-rc$(XEN_VENDORVERSION)
> +export XEN_EXTRAVERSION ?= .0-rc$(XEN_VENDORVERSION)
>  export XEN_FULLVERSION   = $(XEN_VERSION).$(XEN_SUBVERSION)$(XEN_EXTRAVERSION)
>  -include xen-version
>  
> 
> base-commit: 08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 14:16:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 14:16:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752512.1160732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOeIh-0004aF-Do; Tue, 02 Jul 2024 14:16:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752512.1160732; Tue, 02 Jul 2024 14:16: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 1sOeIh-0004a8-Aw; Tue, 02 Jul 2024 14:16:07 +0000
Received: by outflank-mailman (input) for mailman id 752512;
 Tue, 02 Jul 2024 14:16: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=jWIE=OC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sOeIg-0004a0-4I
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 14:16:06 +0000
Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com
 [2607:f8b0:4864:20::82a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c2a8a91-387d-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 16:16:02 +0200 (CEST)
Received: by mail-qt1-x82a.google.com with SMTP id
 d75a77b69052e-4466884aadfso12508231cf.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 07:16:02 -0700 (PDT)
Received: from [10.125.226.166] ([160.101.139.1])
 by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-4465144505esm41570971cf.56.2024.07.02.07.15.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 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: 9c2a8a91-387d-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719929761; x=1720534561; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jNsPV/tq7eAyprZ6ckvBHQT0Gv/qBLe0Z2hyPTDnYtk=;
        b=NBSMSCPuUiAp766daC+pVRk5hKHk2Fy7rSWyKaWmxHvdlLqyPGodIBN4D+VW6SA+KM
         vj+AykRFbGE5sQpL6vvLdT2bxDPlO46TxXU6Hn+sD253kqrkhPIaNMcWLSjvw0b5CK/m
         Lk+3mIQBU6n53eT5o2mVk3fcJow+i7C3iSr2M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719929761; x=1720534561;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jNsPV/tq7eAyprZ6ckvBHQT0Gv/qBLe0Z2hyPTDnYtk=;
        b=OIFtqiEF13a3XOruklBUtBemgFAqIFDMjIg8h1iENrKeuer2erbGTm3J9RcBlPtmj4
         QXSNo2JVtl0b4FbxrhDon1zaYkV+XvSu1Qr9nVM2XH4J2R+8LR1a8mBV5A+VWMD5kVt6
         C8NgJ3Uo1IvHVRdFN+f4wZq0V6mTWdPFpmp7QimXeZQoZlXp2EqsU57axhPgXACEWrEx
         MdhIuPpWFYk4Z5QJjyXojzAdgPpo4YSkRvPjqHMPcpSGuya5IKcYv3PjsM9dE7CQPgNB
         ks+T8gP9WbUbdChwt2lGKkLa6cW9HkslY0+od+IAF29Zm1pJks78gN9QaftJxiLDF/rb
         +SMg==
X-Forwarded-Encrypted: i=1; AJvYcCX9xsQxaWdINza54Rio4HpuW38LRU0zYlRH86JaBSRU6mBSRpgSUwJVSbiwqV3uDOWWNkdMRK/BiXZMAaDO8RiS28i1nUy2IAtEbwKKn5c=
X-Gm-Message-State: AOJu0Ywgf2IlsT66pG3MHzezGegL0LgUl5CS7+pdakEzavIjrko+YTfg
	8FhPDyDhhxu3YUgTFsilIuXgr4vFYr8Zq65PngPo4QHVHDgGrM5UxOsJREEazuw=
X-Google-Smtp-Source: AGHT+IGmcUXuN87O7rzl0P07YI77grmybtgDRGona7eTEv0k/X997SzRaTwCBC1fi2dXEMAcwnhYEg==
X-Received: by 2002:a05:622a:7b89:b0:446:63e9:dc81 with SMTP id d75a77b69052e-44663e9dd9amr116273371cf.63.1719929760834;
        Tue, 02 Jul 2024 07:16:00 -0700 (PDT)
Message-ID: <0f719364-4125-46bb-bcea-35ad3b4a0f32@citrix.com>
Date: Tue, 2 Jul 2024 15:15:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] xen: Fix XEN_EXTRAVERSION after 4.19-rc1
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240702134310.1307657-1-andrew.cooper3@citrix.com>
 <643ada7e-b265-4283-9c52-f6cf6239fe26@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <643ada7e-b265-4283-9c52-f6cf6239fe26@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02/07/2024 3:14 pm, Jan Beulich wrote:
> On 02.07.2024 15:43, Andrew Cooper wrote:
>> EXTRAVERSION needs a . separator for numbers.
> Not exactly. It needs the 0 dropped, if we follow what we've done in the
> past. Then ...
>
>>  Currently, the banner reports:
>>
>>   __  __            _  _    _  ___   ___
>>   \ \/ /___ _ __   | || |  / |/ _ \ / _ \    _ __ ___
>>    \  // _ \ '_ \  | || |_ | | (_) | | | |__| '__/ __|
>>    /  \  __/ | | | |__   _|| |\__, | |_| |__| | | (__
>>   /_/\_\___|_| |_|    |_|(_)_|  /_/ \___/   |_|  \___|
>>
>> and xl reports:
>>
>>   # xl info xen_version
>>   4.190-rc
>>
>> Fixes: 4a73eb4c205d ("Update Xen version to 4.19-rc")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

I'm happy either way, but it definitely needs changing from what is here
now.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 14:16:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 14:16:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752514.1160742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOeJ4-0004yo-Ku; Tue, 02 Jul 2024 14:16:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752514.1160742; Tue, 02 Jul 2024 14:16: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 1sOeJ4-0004yg-IJ; Tue, 02 Jul 2024 14:16:30 +0000
Received: by outflank-mailman (input) for mailman id 752514;
 Tue, 02 Jul 2024 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=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOeJ2-0004wm-Kf
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 14:16:28 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ab1a42f1-387d-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 16:16:26 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ebe6495aedso45768491fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 07:16: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
 d9443c01a7336-1fb0e3326f7sm1132955ad.105.2024.07.02.07.16.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 07:16: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: ab1a42f1-387d-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719929786; x=1720534586; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WjHVNV/Z3Z6hFdefiRUGPfdlh8VnrTiKVM95SieSxcQ=;
        b=fG3/eNAXoBbUalp34m4GmcXP7586sd+7gpcyp5mwNOKu/fuprw7YtJjdOuCSaDwDi5
         IU/g8OnnDbjwR7pSMff7FGzytE6CLO8byC/GGx44oBvCr/1VSOlVa5GKzp+T/9Eoolg2
         +zuUxRYRpUNRiRLr8lm1HIjwdox/xGPtyvEVdR+mZUebIi8d1ahRAAqg3ev/f0gF+Oq9
         Eq3Xvr8SeAiWEf/rdiaArh0hZT/Vt3fzj57EG6eXgPDhJ07icczJVWi9L3m+IuXcxOJ5
         4MgKAFeXo1qbATR+wpFiuReAhYAc5O8xtleVIR1Z3vFTUM9ZFyyXvVh/vTG5GFf++BQp
         nwCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719929786; x=1720534586;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WjHVNV/Z3Z6hFdefiRUGPfdlh8VnrTiKVM95SieSxcQ=;
        b=IVdgJmDJ9DAa+9su2ElceYGn5inJrkFfeQynqPKW5vapE1zBeaw3wSv3uaimLAmC3q
         gtSeM2CyOa9YySb1UKr/hfK9gcmYzrpfkVrWBQR90POhZVUDhCwlZpeDcjVBUxg1Q1WN
         kObWVvi5QoGwRoF1weB0On3wKYPlyhpdiLmGrCi/M8ePQGEY0hmCZUsijwUDY2IdX4MR
         BwX1MSfB13jWNc2W6X13ZVxaubj6FuXJ6afL59giR1RCpuPaeANlLt/9nMzvBncGKsDN
         XptzCdV6FQKAVnm5LKVGmdVKsftj4i1BK+1jtg9VNWelmjRxuWPxVaNF0JS8F5RxyyQ0
         jCdw==
X-Forwarded-Encrypted: i=1; AJvYcCWPWZWeknpNuGjuSINeqjtL7T5k7G5mkrGmi1qDTa+E5iH2Mk0jKBM9/Y9DubhtrCm6XYbX2Gqf5KbgCWReSA1lhWR4jQxBeGR69P+k3Vo=
X-Gm-Message-State: AOJu0YxR1ajRDoyIqFvjBuyqyecZnalRdTyUdOBbSW692DSQ7k3Cgilh
	xmxr1CeqTqGTtuJx3URbMbjw/jETogveZWptguqYplTnDu/3IBRqhDx+DbPn0w==
X-Google-Smtp-Source: AGHT+IGtu6zHCV6++NlrrhOY18SUMpI3cGi2m20b2MTgudO3noR7Pdbe5Z4iR8iQJ13LetJYM3rH9A==
X-Received: by 2002:a05:651c:54a:b0:2ec:5172:dbbc with SMTP id 38308e7fff4ca-2ee5e37e7acmr74742771fa.5.1719929785931;
        Tue, 02 Jul 2024 07:16:25 -0700 (PDT)
Message-ID: <2e284cad-d5de-467a-9d5a-19a1a31615cf@suse.com>
Date: Tue, 2 Jul 2024 16:16:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 1/9] xen: introduce generic non-atomic test_*bit()
To: Michal Orzel <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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
 <2f60d1fd7b3ac7d603486ce03a112d58352bf16d.1719917348.git.oleksii.kurochko@gmail.com>
 <baae2108-675a-4e83-84b3-c791e57c3509@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: <baae2108-675a-4e83-84b3-c791e57c3509@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 15:11, Michal Orzel wrote:
> Hi Oleksii,
> 
> On 02/07/2024 13:01, Oleksii Kurochko wrote:
>>
>>
>> The following generic functions were introduced:
>> * test_bit
>> * generic__test_and_set_bit
>> * generic__test_and_clear_bit
>> * generic__test_and_change_bit
>>
>> These functions and macros can be useful for architectures
>> that don't have corresponding arch-specific instructions.
>>
>> Also, the patch introduces the following generics which are
>> used by the functions mentioned above:
>> * BITOP_BITS_PER_WORD
>> * BITOP_MASK
>> * BITOP_WORD
>> * BITOP_TYPE
>>
>> The following approach was chosen for generic*() and arch*() bit
>> operation functions:
>> If the bit operation function that is going to be generic starts
>> with the prefix "__", then the corresponding generic/arch function
>> will also contain the "__" prefix. For example:
>>  * test_bit() will be defined using arch_test_bit() and
>>    generic_test_bit().
>>  * __test_and_set_bit() will be defined using
>>    arch__test_and_set_bit() and generic__test_and_set_bit().
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> 
> with one question...
> 
> [...]
> 
>> diff --git a/xen/include/xen/bitops.h b/xen/include/xen/bitops.h
>> index 6a5e28730a..cc09d273c9 100644
>> --- a/xen/include/xen/bitops.h
>> +++ b/xen/include/xen/bitops.h
>> @@ -4,6 +4,19 @@
>>  #include <xen/compiler.h>
>>  #include <xen/types.h>
>>
>> +#define BITOP_BITS_PER_WORD 32
>> +typedef uint32_t bitop_uint_t;
>> +
>> +#define BITOP_MASK(nr)  ((bitop_uint_t)1 << ((nr) % BITOP_BITS_PER_WORD))
>> +
>> +#define BITOP_WORD(nr)  ((nr) / BITOP_BITS_PER_WORD)
>> +
>> +#define BITS_PER_BYTE 8
> Shouldn't you remove the same macros from riscv and x86 config.h ?

Oh, good that you spotted that: This wasn't supposed to be here anymore.
Iirc we settled on this specifically wanting setting by each arch.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 14:59:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 14:59:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752544.1160755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOeyB-0003Kk-T4; Tue, 02 Jul 2024 14:58:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752544.1160755; Tue, 02 Jul 2024 14: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 1sOeyB-0003Kd-Ps; Tue, 02 Jul 2024 14:58:59 +0000
Received: by outflank-mailman (input) for mailman id 752544;
 Tue, 02 Jul 2024 14:58: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=Fm4M=OC=kernel.dk=axboe@srs-se1.protection.inumbo.net>)
 id 1sOey9-0003KX-Th
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 14:58:58 +0000
Received: from mail-oi1-x22f.google.com (mail-oi1-x22f.google.com
 [2607:f8b0:4864:20::22f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 99e9ce44-3883-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 16:58:55 +0200 (CEST)
Received: by mail-oi1-x22f.google.com with SMTP id
 5614622812f47-3d5b2963b04so232129b6e.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 07:58:55 -0700 (PDT)
Received: from [127.0.0.1] ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id
 5614622812f47-3d62fb48ab1sm1698965b6e.54.2024.07.02.07.58.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 07:58: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: 99e9ce44-3883-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1719932334; x=1720537134; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:date:message-id:subject
         :references:in-reply-to:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YLJvrCKp8MLcu/+RMIXBzlT9gAnXUofdIoGhevdTams=;
        b=FvBvBmK0z6peR6NEAkdlU/OUOWjnKEKccP9SgOC5UsBsjq4YtAe7qrmDZLSHah6w1a
         RcElviB4LRig7RKQFQTsvU+UPnYZtIwa/dgtjKgR8Tbfa/CSfGmPVo91XQF9nADAdkL8
         2OnOkh206oJ8huiBlm6qT95t4l0ZANBgRa5aQKjjYgofaeCUkf9yoa/U3Ulz3mUfiw9S
         vDBK3ikh4vp5zmtAtMglwVOauXNKydnL8rN//rcyV/Dcdu8fXtgPhVBBgl0RAZn2t2RK
         f0iOngNx2s2BqjYa3npX4651SeKcUTgxN6gmM+u0W7LIeso/EbcPkm4gSGvnkl/6pIU1
         VsjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719932334; x=1720537134;
        h=content-transfer-encoding:mime-version:date:message-id:subject
         :references:in-reply-to:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YLJvrCKp8MLcu/+RMIXBzlT9gAnXUofdIoGhevdTams=;
        b=LRAmIO22ucxF5RMZ8aUhqyaZTtKSNOzqYaYstRGts6BaSiB49+aR3TBGSMZlkKy/R8
         y2IplzJFJuLJ6NmRm5y90QvBLxsvEYlBM662Rg+wPMuYxazQuC9oqbMQI61GPDPj7yre
         YOYJrje68NvZa1xJF2ShPgcYVduRaNMcZCS0wZ6bAiCXOj/T8JA6mhkc0to0NaY8s/xz
         z/fo3cQwAtEAvCYKnTyrO/TwD7rWbPd+fccDqnLO8iCWZiEd3KCt75YDCrHEpWL4vxLU
         4WJ4WTfPMRpGLxQYscetQ51krujDgzW+uRvmt1+CmQbYJnStxwSdGysy4Us9SG0HidFc
         gyFQ==
X-Forwarded-Encrypted: i=1; AJvYcCUbQH2fdB0F2SjGQ1KtCTM7U91Sx8VcvufqPZY7QIksqKmZVrlfsJE5DAQbm1ARM2l6+Ct1cBuP824vZ3HL0jCkRtvbZHATeHvOwG0NvgM=
X-Gm-Message-State: AOJu0YyTK5r6ODcHAMsD30a2gwjDJ8A8sODh3IhR7GqCGqDlBJWQnqip
	6d+9WoZmV/OrocVDmNIJELJa/PTbB0SM6zoAYR4gjwhjSQzE3WwaWBBQvE3TGMo=
X-Google-Smtp-Source: AGHT+IEyS9oKtRMN8bwuH7h258UqecHYDZYqumNvgtOD1xV0BYd67tKCeRFF+kfE9D14plOte1qhsw==
X-Received: by 2002:a05:6808:210c:b0:3d6:303f:5989 with SMTP id 5614622812f47-3d6afcbd885mr9690375b6e.0.1719932334045;
        Tue, 02 Jul 2024 07:58:54 -0700 (PDT)
From: Jens Axboe <axboe@kernel.dk>
To: roger.pau@citrix.com, Christoph Hellwig <hch@lst.de>
Cc: jgross@suse.com, marmarek@invisiblethingslab.com, 
 xen-devel@lists.xenproject.org, linux-block@vger.kernel.org, 
 Rusty Bird <rustybird@net-c.com>
In-Reply-To: <20240625055238.7934-1-hch@lst.de>
References: <20240625055238.7934-1-hch@lst.de>
Subject: Re: [PATCH] xen-blkfront: fix sector_size propagation to the block
 layer
Message-Id: <171993233260.107674.762169022819526197.b4-ty@kernel.dk>
Date: Tue, 02 Jul 2024 08:58:52 -0600
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
X-Mailer: b4 0.14.0


On Tue, 25 Jun 2024 07:52:38 +0200, Christoph Hellwig wrote:
> Ensure that info->sector_size and info->physical_sector_size are set
> before the call to blkif_set_queue_limits by doing away with the
> local variables and arguments that propagate them.
> 
> Thanks to Marek Marczykowski-Górecki and Jürgen Groß for root causing
> the issue.
> 
> [...]

Applied, thanks!

[1/1] xen-blkfront: fix sector_size propagation to the block layer
      commit: 98d34c087249d39838874b83e17671e7d5eb1ca7

Best regards,
-- 
Jens Axboe





From xen-devel-bounces@lists.xenproject.org Tue Jul 02 15:17:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 15:17:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752552.1160765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOfFe-0006XT-AQ; Tue, 02 Jul 2024 15:17:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752552.1160765; Tue, 02 Jul 2024 15:17:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOfFe-0006XM-7z; Tue, 02 Jul 2024 15:17:02 +0000
Received: by outflank-mailman (input) for mailman id 752552;
 Tue, 02 Jul 2024 15:17:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOfFc-0006XC-BP; Tue, 02 Jul 2024 15:17:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOfFc-0001Gp-5m; Tue, 02 Jul 2024 15:17:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOfFb-0006O4-PX; Tue, 02 Jul 2024 15:16:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOfFb-0000QR-P6; Tue, 02 Jul 2024 15:16: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=DTrOXwNA6DLz8dL0QXKK98yAV7Y/5X20TcfSV7qfio8=; b=YJlDFRu9SmATb+aTgzOdcj7dV8
	QjPEYYY1YKLMlNRQSOJ/ruC5EKOFKBRHeP7ardTKERTFh+3h3orIdJnz55spct7MCbbjX+pY1KMVV
	CamSBcoA9pMOxN6X4c0rC+pHzyU8dyjfzzS7T4YzyPnesKQbAFd/PLNKyw+K1WRVhE5Q=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186630-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186630: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=b2216427ca7b0d31a36616e2876d362629de926d
X-Osstest-Versions-That:
    ovmf=e939ecf6c19f932535d073e383d016e8bf2e8ee7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Jul 2024 15:16:59 +0000

flight 186630 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186630/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 b2216427ca7b0d31a36616e2876d362629de926d
baseline version:
 ovmf                 e939ecf6c19f932535d073e383d016e8bf2e8ee7

Last test of basis   186624  2024-07-02 03:41:13 Z    0 days
Testing same since   186630  2024-07-02 13:11:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Leif Lindholm <quic_llindhol@quicinc.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   e939ecf6c1..b2216427ca  b2216427ca7b0d31a36616e2876d362629de926d -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 15:43:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 15:43:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752566.1160776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOffA-0002HY-C1; Tue, 02 Jul 2024 15:43:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752566.1160776; Tue, 02 Jul 2024 15: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 1sOffA-0002HR-8p; Tue, 02 Jul 2024 15:43:24 +0000
Received: by outflank-mailman (input) for mailman id 752566;
 Tue, 02 Jul 2024 15: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOff9-0002HL-BL
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 15:43:23 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf77f1f4-3889-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 17:43:21 +0200 (CEST)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-52e7ad786dfso3716479e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 08:43:21 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52e7ab101e7sm1802027e87.90.2024.07.02.08.43.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 08:43: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: cf77f1f4-3889-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719935001; x=1720539801; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=fInPk7e/oSflLeFe2AjLjwKnGFC8W3dJmONx+yRuP8g=;
        b=WlkrXIeDDMVl+y9XUcZXS/zP7uSe78nybgjBYR7MV7n0zfRARCcPPWFDgo/2WwsmKW
         njB+raBXzRi5K9MNd4XIqYIqDmVkvrFbu+CLRlXAVkznDU3ZBhiUkDjvxEJZRBL3Ruk7
         6AO5STh/K83bTk7Vp/zfOaPiSFdXw/CtkSdCXJB0gxxy1KN2DeZMR+PqldJcWb1EWVYW
         gMLYMmd53Ze3kjNJFdmrzYnk8uuSwYMvQNglLJE3FD+SCZ4eYIREwUjaDY1V3G+Cj5dM
         7n7LzbkM3M1ZbgU6MJktVXmyadYX8TD6V6rX/NtpaKb3jA9Sk5UihhphncrpKLyVvIU6
         5TiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719935001; x=1720539801;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=fInPk7e/oSflLeFe2AjLjwKnGFC8W3dJmONx+yRuP8g=;
        b=XZ73a5Q+89QSu+kZCBc6Ts8pHkmAjELw6YpxxD1xKDFUTzH/sY6nQ8Kpckx6EUd/is
         lJF7vWnJTOV13m4IWPCwPULI5Ys45E01rgV2DQ98Hd6Em6JciLKRWN+esEwbHwgMNz1v
         MJ4uQjhrlDLHOYUWvuUM4ISFa2ApojHWy7jTO8LvVNXGO5VvwVdIaezhrE6wWF+2Ot+C
         fzCM9QQL4z11JEZNua5E6TYci9SybHMQyggH56yzb+Nh4bZ9L1Ner/Siwa3k8xFhfUR8
         FaOZUdTTOEFq60hFhVp79av7GMqKKvPEtynuMMfr5R2N0Z6hF4UIs/lx/4bIaB25bVN7
         tSvQ==
X-Forwarded-Encrypted: i=1; AJvYcCUNd/dOmMsgCFGuO4cXPiG3Mqk/tUnBLfr+K8YaF9sLOOCbnoT0ZR6iY2bzKItWedbVWgXCL25EeMPRgLBirDGOLk4R7T6pnp7LCGpK03I=
X-Gm-Message-State: AOJu0Yznvpw8bQQWEmjw4TiYJ/DjyJ4bI1TUWPBgqW7BBBMz0hsDjLiu
	cSgIwQsUIUMlTV8OeD1ndVwshASUvBPLz5NFJkyArR1oH+UL1wtv
X-Google-Smtp-Source: AGHT+IH0cl/7g1ZJ42GFMWUzvpk1FF2rFOoxHh/LSm7w28JTRw3CKnBfY49Wa54lD6nX1lex9OsiMw==
X-Received: by 2002:a05:6512:e95:b0:52e:8919:2fe9 with SMTP id 2adb3069b0e04-52e891930cemr2143651e87.11.1719935000638;
        Tue, 02 Jul 2024 08:43:20 -0700 (PDT)
Message-ID: <8acd342ca784e14f9a7d22f5c2dd25ab24dce5bb.camel@gmail.com>
Subject: Re: [PATCH for-4.19] xen: Fix XEN_EXTRAVERSION after 4.19-rc1
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>,  Xen-devel <xen-devel@lists.xenproject.org>
Date: Tue, 02 Jul 2024 17:43:19 +0200
In-Reply-To: <0f719364-4125-46bb-bcea-35ad3b4a0f32@citrix.com>
References: <20240702134310.1307657-1-andrew.cooper3@citrix.com>
	 <643ada7e-b265-4283-9c52-f6cf6239fe26@suse.com>
	 <0f719364-4125-46bb-bcea-35ad3b4a0f32@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-02 at 15:15 +0100, Andrew Cooper wrote:
> On 02/07/2024 3:14 pm, Jan Beulich wrote:
> > On 02.07.2024 15:43, Andrew Cooper wrote:
> > > EXTRAVERSION needs a . separator for numbers.
> > Not exactly. It needs the 0 dropped, if we follow what we've done
> > in the
> > past. Then ...
> >=20
> > > =C2=A0Currently, the banner reports:
> > >=20
> > > =C2=A0 __=C2=A0 __=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 _=C2=A0 _=C2=A0=C2=A0=C2=A0 _=C2=A0 ___=C2=A0=C2=A0 ___
> > > =C2=A0 \ \/ /___ _ __=C2=A0=C2=A0 | || |=C2=A0 / |/ _ \ / _ \=C2=A0=
=C2=A0=C2=A0 _ __ ___
> > > =C2=A0=C2=A0 \=C2=A0 // _ \ '_ \=C2=A0 | || |_ | | (_) | | | |__| '__=
/ __|
> > > =C2=A0=C2=A0 /=C2=A0 \=C2=A0 __/ | | | |__=C2=A0=C2=A0 _|| |\__, | |_=
| |__| | | (__
> > > =C2=A0 /_/\_\___|_| |_|=C2=A0=C2=A0=C2=A0 |_|(_)_|=C2=A0 /_/ \___/=C2=
=A0=C2=A0 |_|=C2=A0 \___|
> > >=20
> > > and xl reports:
> > >=20
> > > =C2=A0 # xl info xen_version
> > > =C2=A0 4.190-rc
> > >=20
> > > Fixes: 4a73eb4c205d ("Update Xen version to 4.19-rc")
> > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Acked-by: Jan Beulich <jbeulich@suse.com>
>=20
> I'm happy either way, but it definitely needs changing from what is
> here
> now.
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 15:51:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 15:51:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752572.1160785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOfmc-0003x4-22; Tue, 02 Jul 2024 15:51:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752572.1160785; Tue, 02 Jul 2024 15:51: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 1sOfmb-0003wx-Vm; Tue, 02 Jul 2024 15:51:05 +0000
Received: by outflank-mailman (input) for mailman id 752572;
 Tue, 02 Jul 2024 15:51: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=/Tas=OC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOfmb-0003wr-8f
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 15:51:05 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e33e5c3c-388a-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 17:51:04 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-52cdebf9f53so4563761e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 08:51:04 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52e7ab3b24asm1841450e87.271.2024.07.02.08.51.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 08:51: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: e33e5c3c-388a-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719935463; x=1720540263; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=pnKnL/YkY7ozqDYH/QXfMK319NiqCdyY7Mwn+3rP8Xw=;
        b=f7FhgPXN4mkF7567QwD9JYRXw6Rn0OVVM06LobEbulZeNlINYe3fOesWLmkowAirCP
         Nvg0CzRwdwFDRmWOvZvFnKvsQoQV06X3IQ8a6Arx6jCCY9s4TlLwNYny45ohGdAs8pvy
         j/mrx+V8MYlPQA7jRNn6Jhu/j513tP+fbJQ4ssPCAJuOUUs61rEMe7MLSrI/9DNl8sV2
         Hg6VvixwaaUsQfO3p6XL5EL7ZDGEEgWviiEmext8mnX+1tchMmkpISBodZjeC7bv/oJj
         QcPvQTcxTWBWENbTWw/D7l8VIH/LavF5DvcUaFETFEx2n4JQE3w115i/l1LIiTepa1zw
         wMxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719935464; x=1720540264;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=pnKnL/YkY7ozqDYH/QXfMK319NiqCdyY7Mwn+3rP8Xw=;
        b=hC2Hj+ltHd4JAZ5V//Adk3lQ48x1w9FyfBtcgi/VBy5fATRjMEaSQ/kn5qhyD3jXmr
         Ov9Wy/TrOOOstBxnjuC+35i2O0kPzx120b9pv1o05qqmxkGjK2EZZnxnteKgBfXt8fQr
         aamY2thprdMbs5l9LuIwSd0JWiwTi31U0ODLgXGwVezWspWJRrUEcmR8VgaTCUWdp08z
         8zTvdO7r4ir8b7dl/mclRBmfmm9ONVoAUDukobtIdwOg1jtT9PG+9Gs4KR9pefAf1FOE
         eA8Fc8c4+t9yUnbHsWuIga3mW9fua65TIMzKOj4McUN8fM/LEm/NIJ2g5iOvRHs/dulL
         gAEw==
X-Forwarded-Encrypted: i=1; AJvYcCXDpefaGWlhomso4WEAqrv3uyHtoXD8q3STGt9TP6IXcK0/8oQRYcB00p4vUWCsrSL4vo3OgKqUkAxNcEiEnaT/hH5CA8KukH2kZ5a+w7Q=
X-Gm-Message-State: AOJu0YyFbbaUD2Qth1t0acFHz7puT3KcwrYtEMz0vV/fPQchY2Y4jI1g
	+taaJkrK0qEvW/0atZDXWc8xdhNabaw5Z2IyOmIM1025DEAqEm3Q
X-Google-Smtp-Source: AGHT+IGcG0sL0SplPebQo3Nklkfkyori0YSQpIxD9KrxXFzYEm3Sy3iyrcNlnAy5reOtxpBowYQYyw==
X-Received: by 2002:a05:6512:acd:b0:52e:7674:b51d with SMTP id 2adb3069b0e04-52e8264bf35mr6094774e87.12.1719935463339;
        Tue, 02 Jul 2024 08:51:03 -0700 (PDT)
Message-ID: <06ab486e46148281eda3abf08d43811a4cb2ac85.camel@gmail.com>
Subject: Re: [PATCH v14 8/9] xen/riscv: introduce ANDN_INSN
From: Oleksii <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>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
Date: Tue, 02 Jul 2024 17:51:02 +0200
In-Reply-To: <15d42265-0aec-40c1-b468-e6ebaabffbeb@suse.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
	 <07c628e8552f6e31a07e4261b273553cb4a3669b.1719917348.git.oleksii.kurochko@gmail.com>
	 <15d42265-0aec-40c1-b468-e6ebaabffbeb@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-02 at 14:08 +0200, Jan Beulich wrote:
> > --- a/xen/arch/riscv/include/asm/cmpxchg.h
> > +++ b/xen/arch/riscv/include/asm/cmpxchg.h
> > @@ -18,6 +18,19 @@
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : "r" (new) \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : "memory" );
> > =C2=A0=20
> > +/*
> > + * To not face an issue that gas doesn't understand ANDN
> > instruction
> > + * it is encoded using .insn directive.
> > + */
> > +#ifdef __riscv_zbb
> > +#define ANDN_INSN(rd, rs1, rs2)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > +=C2=A0=C2=A0=C2=A0 ".insn r 0x33, 0x7, 0x20, " rd ", " rs1 ", " rs2 "\=
n"
>=20
> Why 0x33? Just like in the other patch you used MISC_MEM (as
> suggested,
> for being more descriptive), you want to use OP here. Then
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> (and I'd certainly be okay making the change while committing)

According to Volume 1, Unprivileged Specification version 20240411 the
andn instruction looks
like:
31          25 24 20 19 15 14   12 11 7 6           0
0 1 0 0 0 0 0   rs2   rs1   1 1 1   rd  0 1 1 0 0 1 1
                                               OP

This instruction is R-type. According to the gcc manual
( https://sourceware.org/binutils/docs/as/RISC_002dV_002dFormats.html
):
R type: .insn r opcode6, func3, func7, rd, rs1, rs2
+-------+-----+-----+-------+----+---------+
| func7 | rs2 | rs1 | func3 | rd | opcode6 |
+-------+-----+-----+-------+----+---------+
31      25    20    15      12   7        0

so opcode6 in case of andn is 0x33 (0110011)

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 15:54:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 15:54:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752577.1160796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOfpX-0004WP-Fa; Tue, 02 Jul 2024 15:54:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752577.1160796; Tue, 02 Jul 2024 15: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 1sOfpX-0004WI-Cv; Tue, 02 Jul 2024 15:54:07 +0000
Received: by outflank-mailman (input) for mailman id 752577;
 Tue, 02 Jul 2024 15:54: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=WXFQ=OC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOfpV-0004WC-Vd
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 15:54:05 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4edf2fc5-388b-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 17:54:04 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2ebe785b234so44684171fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 08:54: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
 d9443c01a7336-1fac15991bbsm85539525ad.286.2024.07.02.08.53.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 02 Jul 2024 08: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: 4edf2fc5-388b-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719935644; x=1720540444; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cj+P4TnLhHmQBItLm/RdCTrxQwfHZNG8ZUGCmip9Buo=;
        b=X80LGu5M4Zuihti3u3R65qlWnCDQXz+WJt0poMTcGe67WlnzTrZBPx94lEFax29pL5
         K7IlXz1S0JrkqQVqkrI9OyEP5egGLBB3zrScTE8Cp40UHjD2zYjHyDTquIcDdth65tF3
         m2QVPdiFUGFAJmxxV4vaHsFN2lpiAsKK3bQ4EgpvkUWOpHzGgBZL9ML4mX/ixTcRW7Z7
         e+TfhdS3VXkTI8j/FZpJP5J1iOiyo90gJLuBVCqM2XDxrgySAs17+GzwsAwuISAKnbEi
         qupcfr9iSl4mdLhs2g4RDp5gOQMsjWGMSiqtZb9O3virsLRrj3+1XjABUupug1BTpiEI
         kHPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719935644; x=1720540444;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cj+P4TnLhHmQBItLm/RdCTrxQwfHZNG8ZUGCmip9Buo=;
        b=l3ITRmthMIAh5+RKpRAni+c3u1VO+4gSRIbq1xHO0BH3aiRWmbLCCLiOoBpQAGkRX+
         we7GwJyC1dQMlScQy2ITVuZ46iesTvSTV1t29X8RUslVWp8SDXcBDYKOpAGJH2AuZuTW
         dvr35UOJBu1AbdwsiW9Mvc5MkkjUZoanPmkcn8Qc6IKPczEy/XXpTHbFXoS1nR+KpGrd
         PNZIhM6AJUk9G/sgBbUHfQnck1HVKOhayAGeX8hNju4Y/HusKHoRe/dmMwemr3L/RWya
         JXr3OdKs+D0H+E3y/W/LT15ABtKi9SF/6zJMiFCOXpjHgUf+V6oc36/RIligjsp6Xebz
         WdqQ==
X-Forwarded-Encrypted: i=1; AJvYcCVTLknR/JOIqM8aP0gXvL2asShJd9NyPe1UGL9ZDGX+MLIgVvsKO8vAXltlxss7cxk/Cj2OHe3cb/ImFZSOzhQt4oHrFcSbvN1wkzLbha4=
X-Gm-Message-State: AOJu0YzSxM5q+a9uxIcIoz3KVoxkztuamdGPLDQ+85manVr/VjBvONY9
	rCsyHX2P2R7mC22lJqTxAwqfps0x9lyelpgrbwiaHPsmVbV5gWrBFNWqQxFqwA==
X-Google-Smtp-Source: AGHT+IE2LDqw/JiXUkP/J+hg+pP1s0s8ZvDTZoAuG8dI9T0X2X8V+2mS0dO+BD5OL+rGVwSV4tsHQw==
X-Received: by 2002:a2e:a889:0:b0:2e9:8a0a:ea05 with SMTP id 38308e7fff4ca-2ee5e3ad756mr70220541fa.17.1719935642169;
        Tue, 02 Jul 2024 08:54:02 -0700 (PDT)
Message-ID: <e60ef504-2617-4593-8ad3-4b570c820022@suse.com>
Date: Tue, 2 Jul 2024 17:53:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 8/9] xen/riscv: introduce ANDN_INSN
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
 <07c628e8552f6e31a07e4261b273553cb4a3669b.1719917348.git.oleksii.kurochko@gmail.com>
 <15d42265-0aec-40c1-b468-e6ebaabffbeb@suse.com>
 <06ab486e46148281eda3abf08d43811a4cb2ac85.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <06ab486e46148281eda3abf08d43811a4cb2ac85.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.07.2024 17:51, Oleksii wrote:
> On Tue, 2024-07-02 at 14:08 +0200, Jan Beulich wrote:
>>> --- a/xen/arch/riscv/include/asm/cmpxchg.h
>>> +++ b/xen/arch/riscv/include/asm/cmpxchg.h
>>> @@ -18,6 +18,19 @@
>>>           : "r" (new) \
>>>           : "memory" );
>>>   
>>> +/*
>>> + * To not face an issue that gas doesn't understand ANDN
>>> instruction
>>> + * it is encoded using .insn directive.
>>> + */
>>> +#ifdef __riscv_zbb
>>> +#define ANDN_INSN(rd, rs1, rs2)                 \
>>> +    ".insn r 0x33, 0x7, 0x20, " rd ", " rs1 ", " rs2 "\n"
>>
>> Why 0x33? Just like in the other patch you used MISC_MEM (as
>> suggested,
>> for being more descriptive), you want to use OP here. Then
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>> (and I'd certainly be okay making the change while committing)
> 
> According to Volume 1, Unprivileged Specification version 20240411 the
> andn instruction looks
> like:
> 31          25 24 20 19 15 14   12 11 7 6           0
> 0 1 0 0 0 0 0   rs2   rs1   1 1 1   rd  0 1 1 0 0 1 1
>                                                OP
> 
> This instruction is R-type. According to the gcc manual
> ( https://sourceware.org/binutils/docs/as/RISC_002dV_002dFormats.html
> ):
> R type: .insn r opcode6, func3, func7, rd, rs1, rs2
> +-------+-----+-----+-------+----+---------+
> | func7 | rs2 | rs1 | func3 | rd | opcode6 |
> +-------+-----+-----+-------+----+---------+
> 31      25    20    15      12   7        0
> 
> so opcode6 in case of andn is 0x33 (0110011)

Right. And "OP" is the identifier you can use with .insn to get 0x33
without needing to write 0x33. As said - the requested replacement is
solely to help readability a little.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 16:51:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 16:51:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752594.1160805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOgib-0004Tf-Lf; Tue, 02 Jul 2024 16:51:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752594.1160805; Tue, 02 Jul 2024 16: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 1sOgib-0004TY-IT; Tue, 02 Jul 2024 16:51:01 +0000
Received: by outflank-mailman (input) for mailman id 752594;
 Tue, 02 Jul 2024 16:51:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOgia-0004TO-3a; Tue, 02 Jul 2024 16:51:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOgia-0003RV-04; Tue, 02 Jul 2024 16:51:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOgiZ-0000H6-Ih; Tue, 02 Jul 2024 16:50:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOgiZ-0003oA-IG; Tue, 02 Jul 2024 16:50: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=fwYPyRTVDvxiM/ntxSXYAn5gN+qEaW5zvJTPxhMjrQE=; b=WrTF1AEid1CBrDJP0i5tGT/Sq+
	htxsOJ9DoYjsGNZtNAHWf1unWBj3+w3McTqHfl8KS7PaIKlh0rMWf81gJGWP10AMzZpNa1jJpFwde
	VAD4MooBLq/mGiIsF2pr4/ayveUtFZvGovIQpN75CwwuK+OBvRPqJitAYF0Cqo58CeN0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186629-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186629: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b
X-Osstest-Versions-That:
    xen=9ec74bdb2582dc5b0517e05a3650d24745889c2b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Jul 2024 16:50:59 +0000

flight 186629 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186629/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b
baseline version:
 xen                  9ec74bdb2582dc5b0517e05a3650d24745889c2b

Last test of basis   186627  2024-07-02 07:06:25 Z    0 days
Testing same since   186629  2024-07-02 12:04:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@vates.tech>
  Jan Beulich <jbeulich@suse.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   9ec74bdb25..08daa72cdc  08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 17:58:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 17:58:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752610.1160817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOhlz-0003IC-MJ; Tue, 02 Jul 2024 17:58:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752610.1160817; Tue, 02 Jul 2024 17: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 1sOhlz-0003I5-Hd; Tue, 02 Jul 2024 17:58:35 +0000
Received: by outflank-mailman (input) for mailman id 752610;
 Tue, 02 Jul 2024 17: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=w9fb=OC=gmail.com=milandjokic1995@srs-se1.protection.inumbo.net>)
 id 1sOhly-0003Hz-Nk
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 17:58:35 +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 b1f3d6ca-389c-11ef-92e8-0d9d20120eaa;
 Tue, 02 Jul 2024 19:58:32 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-424aa70fbc4so31450745e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 10:58:32 -0700 (PDT)
Received: from Xen-host.domain.local ([89.216.37.146])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4256af5b66csm203543145e9.18.2024.07.02.10.58.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 10:58: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: b1f3d6ca-389c-11ef-92e8-0d9d20120eaa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719943112; x=1720547912; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+4w3jgdJX+yO9pRn/V01aM9S+TaV2R8XM0G2nnjQWiA=;
        b=VWng1ncILUMAU3wOxmwdgZTVgmha0yrlgHg3kX/OB8BgZD9KgQPAGnudGJ6If63hUv
         m67dcg/ftj7t9X8iysrkfFhqT+FJyAt4pFwoCewLTfdQoYRjX/JAyhzV2j7cOM8dtIeb
         neDvrm6HO0NDAxKjQFHvyNEr8Wt2RT+x9zjprIHbOQ05R8IbWl06yj0Vkh7XUcvsm8gs
         E6tfWGpETETW6rqmWW6wJiWyQEI2Wya2KMja3wWBuFgzFyt5l4dD52oMi79hj2P1dqee
         MefiYfGQir+sCUsrVOKTuLG7RroZPUjmzhWeUfaLIOiIarNoomZOWMDKdygLpLEB5Cnd
         PP+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719943112; x=1720547912;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+4w3jgdJX+yO9pRn/V01aM9S+TaV2R8XM0G2nnjQWiA=;
        b=sxSLI4Hbjkp/IgC6wTks98SkL5AKSOc3puiHo8LYAMXV4u4dG7a70z1vSP2ql8ihnP
         lGNKXoVa/AgSdTnc0BxvIL4DqMxfJ98dRz6pNVP10sK32r54oTjdvfhYG1R8PM0heEYP
         fmY9Alcbaj7tcPx94QR3qiQajKUxh/7KA7mY2DU/hDqWuc56MiAn5CJqFQud+kKZRjnb
         JPcyJ/0JBB12ODzemN1QTKALOw/VNEhzo0kfmiglg2OT9ojnp/vPPoyPthIPGHbtQHu8
         cen8STOi9Cun3fodL3m+1R6tLzFCf5VSWPWGI5204HLE6rlSCMCOtTpbfi0Kpyq8kq8T
         Bg3g==
X-Gm-Message-State: AOJu0YwUWOFrWA+PA5mtFL9Dr8wlUhBiIFP6KlpaUzaOJnBSfDpavr1R
	MblATr/0uWak0q5H8+KWxGTQl6axNt3jfMXUn7XNPwtpwnd/BQ0xYQLpU8Wz
X-Google-Smtp-Source: AGHT+IEmHrqq3zPeph8OkEAC2RrRFa/3vJ0zpATmZK4ZIA0+v3adw+5LZ4CO8E0ytGqeMuvavA6xAw==
X-Received: by 2002:a7b:c4cd:0:b0:425:6385:83bc with SMTP id 5b1f17b1804b1-4257a034fa2mr80365825e9.15.1719943111171;
        Tue, 02 Jul 2024 10:58:31 -0700 (PDT)
From: Milan Djokic <milandjokic1995@gmail.com>
X-Google-Original-From: Milan Djokic <milan.djokic@rt-rk.com>
To: xen-devel@lists.xenproject.org
Cc: milan.djokic@rt-rk.com,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Nikola Jelic <nikola.jelic@rt-rk.com>
Subject: 
Date: Tue,  2 Jul 2024 19:57:11 +0200
Message-Id: <2bbb65fcda57f2609f0967f9050a91415059026c.1719942341.git.milan.djokic@rt-rk.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <87b5e458498bbff2e54ac011a50ff1f9555c3613.1717354932.git.milan.djokic@rt-rk.com>
References: <87b5e458498bbff2e54ac011a50ff1f9555c3613.1717354932.git.milan.djokic@rt-rk.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Date: Tue, 2 Jul 2024 16:17:22 +0200
Subject: [PATCH v3] xen/riscv: PE/COFF image header for RISC-V target

Added riscv image header to enable boot from second stage bootloaders (e.g. uboot. Image header defined in riscv-image-header.h)
Additionally, RISC-V xen image is extended with PE/COFF headers, introducing EFI application format.
PE/COFF header is optionally included (with CONFIG_RISCV_EFI) so
both plain ELF and image with PE/COFF header can now be generated as build artifacts.
Note that this patch represents initial EFI application format support (image
contains EFI application header embeded into binary when CONFIG_RISCV_EFI
is enabled). For full EFI application Xen support, boot/runtime services
and system table handling are yet to be implemented.

Tested on both QEMU and StarFive VisionFive 2 with OpenSBI->U-Boot->xen->dom0 boot chain.

Signed-off-by: Nikola Jelic <nikola.jelic@rt-rk.com>
Signed-off-by: Milan Djokic <milan.djokic@rt-rk.com>

---
Changes since v2:
  * Restructured EFI image headers - generic PE/COFF headers moved to xen/include/efi/pe.h, riscv image header left in arch specific dir (riscv/include/asm/riscv-image-header.h)
  * EFI PE/COFF header section moved to separate file (efi-header.S) and optionally included into image (head.S) if CONFIG_RISCV_EFI is enabled
  * Removed explicit usage of compressed (c.*) instructions where not necessary to avoid dependency on C extension.
  * Removed redundant parts of code which were originally taken over from linux kernel, but not used in this case
(data directories definition in optional PE header, _init_end_efi in linker script)
  * Removed nested code, explained pe header fields mapping and current EFI support status
  * Clarified riscv image header which is inserted into image regardless EFI option value (in order to support boot from second stage bootloaders for both ELF and EFI image format)
---
Changes since v1 (following review comments from Jan Beulich):
  * Fix coding style
  * Extended image header with all the necessary
    PE/COFF (EFI) fields (instead of only those used by U-boot)
  * Removed usage of deprecated types
---
 xen/arch/riscv/Kconfig                        |  10 +
 .../riscv/include/asm/riscv-image-header.h    |  57 +++
 xen/arch/riscv/riscv64/efi-header.S           |  99 ++++
 xen/arch/riscv/riscv64/head.S                 |  45 +-
 xen/arch/riscv/xen.lds.S                      |   3 +
 xen/include/efi/pe.h                          | 460 ++++++++++++++++++
 6 files changed, 672 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/riscv-image-header.h
 create mode 100644 xen/arch/riscv/riscv64/efi-header.S
 create mode 100644 xen/include/efi/pe.h

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index f382b36f6c..ec1e2b1386 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -9,6 +9,16 @@ config ARCH_DEFCONFIG
 	string
 	default "arch/riscv/configs/tiny64_defconfig"
 
+config RISCV_EFI
+	bool "UEFI boot service support"
+	depends on RISCV_64 && RISCV_ISA_C
+	help
+	  This option provides support for boot services through
+	  UEFI firmware. A UEFI stub is provided to allow Xen to
+	  be booted as an EFI application. Currently, only EFI PE/COFF application
+	  header is included into RISC-V image. Boot/Runtime services as part
+	  of EFI application stub are yet to be implemented.
+
 menu "Architecture Features"
 
 source "arch/Kconfig"
diff --git a/xen/arch/riscv/include/asm/riscv-image-header.h b/xen/arch/riscv/include/asm/riscv-image-header.h
new file mode 100644
index 0000000000..eebca47620
--- /dev/null
+++ b/xen/arch/riscv/include/asm/riscv-image-header.h
@@ -0,0 +1,57 @@
+#ifndef _ASM_RISCV_IMAGE_H
+#define _ASM_RISCV_IMAGE_H
+
+#define RISCV_IMAGE_MAGIC  "RISCV\0\0\0"
+#define RISCV_IMAGE_MAGIC2 "RSC\x05"
+
+#define RISCV_IMAGE_FLAG_BE_SHIFT 0
+
+#define RISCV_IMAGE_FLAG_LE 0
+#define RISCV_IMAGE_FLAG_BE 1
+
+#define __HEAD_FLAG_BE RISCV_IMAGE_FLAG_LE
+
+#define __HEAD_FLAG(field)                                                     \
+    (__HEAD_FLAG_##field << RISCV_IMAGE_FLAG_##field##_SHIFT)
+
+#define __HEAD_FLAGS (__HEAD_FLAG(BE))
+
+#define RISCV_HEADER_VERSION_MAJOR 0
+#define RISCV_HEADER_VERSION_MINOR 2
+
+#define RISCV_HEADER_VERSION                                                   \
+    (RISCV_HEADER_VERSION_MAJOR << 16 | RISCV_HEADER_VERSION_MINOR)
+
+#ifndef __ASSEMBLY__
+/**
+ * struct riscv_image_header - riscv image header
+ * @code0:      Executable code
+ * @code1:      Executable code
+ * @text_offset:    Image load offset (little endian)
+ * @image_size:     Effective Image size (little endian)
+ * @flags:      kernel flags (little endian)
+ * @version:    version
+ * @res1:       reserved
+ * @res2:       reserved
+ * @magic:      Magic number (RISC-V specific; deprecated)
+ * @magic2:     Magic number 2 (to match the ARM64 'magic' field pos)
+ * @res3:       reserved (will be used for PE COFF offset)
+ *
+ * The intention is for this header format to be shared between multiple
+ * architectures to avoid a proliferation of image header formats.
+ */
+struct riscv_image_header {
+    uint32_t code0;
+    uint32_t code1;
+    uint64_t text_offset;
+    uint64_t image_size;
+    uint64_t flags;
+    uint64_t version;
+    uint32_t res1;
+    uint64_t res2;
+    uint64_t magic;
+    uint32_t magic2;
+    uint32_t res3;
+};
+#endif /* __ASSEMBLY__ */
+#endif /* _ASM_RISCV_IMAGE_H */
diff --git a/xen/arch/riscv/riscv64/efi-header.S b/xen/arch/riscv/riscv64/efi-header.S
new file mode 100644
index 0000000000..87cd591a96
--- /dev/null
+++ b/xen/arch/riscv/riscv64/efi-header.S
@@ -0,0 +1,99 @@
+#include <efi/pe.h>
+#include <xen/sizes.h>
+
+        .macro __EFI_PE_HEADER
+        .long PE_MAGIC
+coff_header:
+#ifdef CONFIG_RISCV_64
+        .short  IMAGE_FILE_MACHINE_RISCV64              /* Machine */
+#else
+        .short  IMAGE_FILE_MACHINE_RISCV32              /* Machine */
+#endif
+        .short  section_count                           /* NumberOfSections */
+        .long   0                                       /* TimeDateStamp */
+        .long   0                                       /* PointerToSymbolTable */
+        .long   0                                       /* NumberOfSymbols */
+        .short  section_table - optional_header         /* SizeOfOptionalHeader */
+        .short  IMAGE_FILE_DEBUG_STRIPPED | \
+                IMAGE_FILE_EXECUTABLE_IMAGE | \
+                IMAGE_FILE_LINE_NUMS_STRIPPED           /* Characteristics */
+
+optional_header:
+#ifdef CONFIG_RISCV_64
+        .short  PE_OPT_MAGIC_PE32PLUS                   /* PE32+ format */
+#else
+        .short  PE_OPT_MAGIC_PE32                       /* PE32 format */
+#endif
+        .byte   0x02                                    /* MajorLinkerVersion */
+        .byte   0x14                                    /* MinorLinkerVersion */
+        .long   _end - xen_start                        /* SizeOfCode */
+        .long   0                                       /* SizeOfInitializedData */
+        .long   0                                       /* SizeOfUninitializedData */
+        .long   0                                       /* AddressOfEntryPoint */
+        .long   xen_start - _start                      /* BaseOfCode */
+#ifdef CONFIG_RISCV_32
+        .long  _end - _start                            /* BaseOfData */
+#endif
+
+extra_header_fields:
+        .quad   0                                       /* ImageBase */
+        .long   PECOFF_SECTION_ALIGNMENT                /* SectionAlignment */
+        .long   PECOFF_FILE_ALIGNMENT                   /* FileAlignment */
+        .short  0                                       /* MajorOperatingSystemVersion */
+        .short  0                                       /* MinorOperatingSystemVersion */
+        .short  LINUX_EFISTUB_MAJOR_VERSION             /* MajorImageVersion */
+        .short  LINUX_EFISTUB_MINOR_VERSION             /* MinorImageVersion */
+        .short  0                                       /* MajorSubsystemVersion */
+        .short  0                                       /* MinorSubsystemVersion */
+        .long   0                                       /* Win32VersionValue */
+        .long   _end - _start                           /* SizeOfImage */
+
+        /* Everything before the xen image is considered part of the header */
+        .long   xen_start - _start                      /* SizeOfHeaders */
+        .long   0                                       /* CheckSum */
+        .short  IMAGE_SUBSYSTEM_EFI_APPLICATION         /* Subsystem */
+        .short  0                                       /* DllCharacteristics */
+        .quad   0                                       /* SizeOfStackReserve */
+        .quad   0                                       /* SizeOfStackCommit */
+        .quad   0                                       /* SizeOfHeapReserve */
+        .quad   0                                       /* SizeOfHeapCommit */
+        .long   0                                       /* LoaderFlags */
+        .long   (section_table - .) / 8                 /* NumberOfRvaAndSizes */
+        /*
+         * Data directories are not used in this case, therefore not defined to reduce header size.
+         */
+
+        /* Section table */
+section_table:
+        /* Currently code/data sections are not used since EFI stub implementation is not yet finalized */
+        .ascii  ".text\0\0\0"
+        .long   0                                       /* VirtualSize */
+        .long   0                                       /* VirtualAddress */
+        .long   0                                       /* SizeOfRawData */
+        .long   0                                       /* PointerToRawData */
+        .long   0                                       /* PointerToRelocations */
+        .long   0                                       /* PointerToLineNumbers */
+        .short  0                                       /* NumberOfRelocations */
+        .short  0                                       /* NumberOfLineNumbers */
+        .long   IMAGE_SCN_CNT_CODE | \
+                IMAGE_SCN_MEM_READ | \
+                IMAGE_SCN_MEM_EXECUTE                   /* Characteristics */
+
+        .ascii  ".data\0\0\0"
+        .long   0                                       /* VirtualSize */
+        .long   0                                       /* VirtualAddress */
+        .long   0                                       /* SizeOfRawData */
+        .long   0                                       /* PointerToRawData */
+        .long   0                                       /* PointerToRelocations */
+        .long   0                                       /* PointerToLineNumbers */
+        .short  0                                       /* NumberOfRelocations */
+        .short  0                                       /* NumberOfLineNumbers */
+        .long   IMAGE_SCN_CNT_INITIALIZED_DATA | \
+                IMAGE_SCN_MEM_READ | \
+                IMAGE_SCN_MEM_WRITE                    /* Characteristics */
+
+        .set    section_count, (. - section_table) / 40
+
+        .balign  0x1000
+efi_header_end:
+        .endm
\ No newline at end of file
diff --git a/xen/arch/riscv/riscv64/head.S b/xen/arch/riscv/riscv64/head.S
index 3261e9fce8..5669e5df20 100644
--- a/xen/arch/riscv/riscv64/head.S
+++ b/xen/arch/riscv/riscv64/head.S
@@ -1,14 +1,54 @@
 #include <asm/asm.h>
 #include <asm/riscv_encoding.h>
+#include <asm/riscv-image-header.h>
+#ifdef CONFIG_RISCV_EFI
+#include "efi-header.S"
+#endif
 
         .section .text.header, "ax", %progbits
-
         /*
          * OpenSBI pass to start():
          *   a0 -> hart_id ( bootcpu_id )
-         *   a1 -> dtb_base 
+         *   a1 -> dtb_base
          */
 FUNC(start)
+/* Image header expected by second stage bootloaders (format defined in asm/riscv-image-header.h) */
+#ifdef CONFIG_RISCV_EFI
+        /*
+         * This instruction decodes to "MZ" ASCII required by UEFI.
+         */
+        c.li s4,-13
+        c.j xen_start
+#else
+        /* jump to start kernel */
+        jal xen_start
+#endif
+        .balign 8
+#ifdef CONFIG_RISCV_64
+        /* Image load offset(2MB) from start of RAM */
+        .quad 0x200000
+#else
+        /* Image load offset(4MB) from start of RAM */
+        .quad 0x400000
+#endif
+        .quad _end - _start              /* Effective Image size */
+        .quad __HEAD_FLAGS
+        .long RISCV_HEADER_VERSION
+        .long 0                          /* reserved */
+        .quad 0                          /* reserved */
+        .ascii RISCV_IMAGE_MAGIC         /* Magic number (RISC-V specific; deprecated) */
+        .balign 4
+        .ascii RISCV_IMAGE_MAGIC2        /* Magic number 2 (to match the ARM64 'magic' field pos) */
+#ifdef CONFIG_RISCV_EFI
+        .long pe_head_start - _start     /* reserved (PE COFF offset) */
+pe_head_start:
+
+        __EFI_PE_HEADER
+#else
+        .long 0                          /* 0 means no PE header. */
+#endif
+
+xen_start:
         /* Mask all interrupts */
         csrw    CSR_SIE, zero
 
@@ -60,6 +100,7 @@ FUNC(start)
         mv      a1, s1
 
         tail    start_xen
+
 END(start)
 
         .section .text, "ax", %progbits
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 8510a87c4d..c36d76baf3 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -12,6 +12,9 @@ PHDRS
 #endif
 }
 
+PECOFF_SECTION_ALIGNMENT = 0x1000;
+PECOFF_FILE_ALIGNMENT = 0x200;
+
 SECTIONS
 {
     . = XEN_VIRT_START;
diff --git a/xen/include/efi/pe.h b/xen/include/efi/pe.h
new file mode 100644
index 0000000000..71fd7e3126
--- /dev/null
+++ b/xen/include/efi/pe.h
@@ -0,0 +1,460 @@
+#ifndef __PE_H
+#define __PE_H
+
+/*
+ * Linux EFI stub v1.0 adds the following functionality:
+ * - Loading initrd from the LINUX_EFI_INITRD_MEDIA_GUID device path,
+ * - Loading/starting the kernel from firmware that targets a different
+ *   machine type, via the entrypoint exposed in the .compat PE/COFF section.
+ *
+ * The recommended way of loading and starting v1.0 or later kernels is to use
+ * the LoadImage() and StartImage() EFI boot services, and expose the initrd
+ * via the LINUX_EFI_INITRD_MEDIA_GUID device path.
+ *
+ * Versions older than v1.0 support initrd loading via the image load options
+ * (using initrd=, limited to the volume from which the kernel itself was
+ * loaded), or via arch specific means (bootparams, DT, etc).
+ *
+ * On x86, LoadImage() and StartImage() can be omitted if the EFI handover
+ * protocol is implemented, which can be inferred from the version,
+ * handover_offset and xloadflags fields in the bootparams structure.
+ */
+#define LINUX_EFISTUB_MAJOR_VERSION 0x1
+#define LINUX_EFISTUB_MINOR_VERSION 0x0
+
+#define MZ_MAGIC 0x5a4d /* "MZ" */
+
+#define PE_MAGIC              0x00004550 /* "PE\0\0" */
+#define PE_OPT_MAGIC_PE32     0x010b
+#define PE_OPT_MAGIC_PE32_ROM 0x0107
+#define PE_OPT_MAGIC_PE32PLUS 0x020b
+
+/* machine type */
+#define IMAGE_FILE_MACHINE_UNKNOWN   0x0000
+#define IMAGE_FILE_MACHINE_AM33      0x01d3
+#define IMAGE_FILE_MACHINE_AMD64     0x8664
+#define IMAGE_FILE_MACHINE_ARM       0x01c0
+#define IMAGE_FILE_MACHINE_ARMV7     0x01c4
+#define IMAGE_FILE_MACHINE_ARM64     0xaa64
+#define IMAGE_FILE_MACHINE_EBC       0x0ebc
+#define IMAGE_FILE_MACHINE_I386      0x014c
+#define IMAGE_FILE_MACHINE_IA64      0x0200
+#define IMAGE_FILE_MACHINE_M32R      0x9041
+#define IMAGE_FILE_MACHINE_MIPS16    0x0266
+#define IMAGE_FILE_MACHINE_MIPSFPU   0x0366
+#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
+#define IMAGE_FILE_MACHINE_POWERPC   0x01f0
+#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1
+#define IMAGE_FILE_MACHINE_R4000     0x0166
+#define IMAGE_FILE_MACHINE_RISCV32   0x5032
+#define IMAGE_FILE_MACHINE_RISCV64   0x5064
+#define IMAGE_FILE_MACHINE_RISCV128  0x5128
+#define IMAGE_FILE_MACHINE_SH3       0x01a2
+#define IMAGE_FILE_MACHINE_SH3DSP    0x01a3
+#define IMAGE_FILE_MACHINE_SH3E      0x01a4
+#define IMAGE_FILE_MACHINE_SH4       0x01a6
+#define IMAGE_FILE_MACHINE_SH5       0x01a8
+#define IMAGE_FILE_MACHINE_THUMB     0x01c2
+#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
+
+/* flags */
+#define IMAGE_FILE_RELOCS_STRIPPED         0x0001
+#define IMAGE_FILE_EXECUTABLE_IMAGE        0x0002
+#define IMAGE_FILE_LINE_NUMS_STRIPPED      0x0004
+#define IMAGE_FILE_LOCAL_SYMS_STRIPPED     0x0008
+#define IMAGE_FILE_AGGRESSIVE_WS_TRIM      0x0010
+#define IMAGE_FILE_LARGE_ADDRESS_AWARE     0x0020
+#define IMAGE_FILE_16BIT_MACHINE           0x0040
+#define IMAGE_FILE_BYTES_REVERSED_LO       0x0080
+#define IMAGE_FILE_32BIT_MACHINE           0x0100
+#define IMAGE_FILE_DEBUG_STRIPPED          0x0200
+#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
+#define IMAGE_FILE_NET_RUN_FROM_SWAP       0x0800
+#define IMAGE_FILE_SYSTEM                  0x1000
+#define IMAGE_FILE_DLL                     0x2000
+#define IMAGE_FILE_UP_SYSTEM_ONLY          0x4000
+#define IMAGE_FILE_BYTES_REVERSED_HI       0x8000
+
+#define IMAGE_FILE_OPT_ROM_MAGIC       0x107
+#define IMAGE_FILE_OPT_PE32_MAGIC      0x10b
+#define IMAGE_FILE_OPT_PE32_PLUS_MAGIC 0x20b
+
+#define IMAGE_SUBSYSTEM_UNKNOWN                 0
+#define IMAGE_SUBSYSTEM_NATIVE                  1
+#define IMAGE_SUBSYSTEM_WINDOWS_GUI             2
+#define IMAGE_SUBSYSTEM_WINDOWS_CUI             3
+#define IMAGE_SUBSYSTEM_POSIX_CUI               7
+#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI          9
+#define IMAGE_SUBSYSTEM_EFI_APPLICATION         10
+#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
+#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
+#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE           13
+#define IMAGE_SUBSYSTEM_XBOX                    14
+
+#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         0x0040
+#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      0x0080
+#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            0x0100
+#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          0x0200
+#define IMAGE_DLLCHARACTERISTICS_NO_SEH                0x0400
+#define IMAGE_DLLCHARACTERISTICS_NO_BIND               0x0800
+#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            0x2000
+#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
+
+/* they actually defined 0x00000000 as well, but I think we'll skip that one. */
+#define IMAGE_SCN_RESERVED_0             0x00000001
+#define IMAGE_SCN_RESERVED_1             0x00000002
+#define IMAGE_SCN_RESERVED_2             0x00000004
+#define IMAGE_SCN_TYPE_NO_PAD            0x00000008 /* don't pad - obsolete */
+#define IMAGE_SCN_RESERVED_3             0x00000010
+#define IMAGE_SCN_CNT_CODE               0x00000020 /* .text */
+#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040 /* .data */
+#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* .bss */
+#define IMAGE_SCN_LNK_OTHER              0x00000100 /* reserved */
+#define IMAGE_SCN_LNK_INFO               0x00000200 /* .drectve comments */
+#define IMAGE_SCN_RESERVED_4             0x00000400
+#define IMAGE_SCN_LNK_REMOVE             0x00000800 /* .o only - scn to be rm'd*/
+#define IMAGE_SCN_LNK_COMDAT             0x00001000 /* .o only - COMDAT data */
+#define IMAGE_SCN_RESERVED_5             0x00002000 /* spec omits this */
+#define IMAGE_SCN_RESERVED_6             0x00004000 /* spec omits this */
+#define IMAGE_SCN_GPREL                  0x00008000 /* global pointer referenced data */
+/* spec lists 0x20000 twice, I suspect they meant 0x10000 for one of them */
+#define IMAGE_SCN_MEM_PURGEABLE 0x00010000 /* reserved for "future" use */
+#define IMAGE_SCN_16BIT         0x00020000 /* reserved for "future" use */
+#define IMAGE_SCN_LOCKED        0x00040000 /* reserved for "future" use */
+#define IMAGE_SCN_PRELOAD       0x00080000 /* reserved for "future" use */
+/* and here they just stuck a 1-byte integer in the middle of a bitfield */
+#define IMAGE_SCN_ALIGN_1BYTES    0x00100000 /* it does what it says on the box */
+#define IMAGE_SCN_ALIGN_2BYTES    0x00200000
+#define IMAGE_SCN_ALIGN_4BYTES    0x00300000
+#define IMAGE_SCN_ALIGN_8BYTES    0x00400000
+#define IMAGE_SCN_ALIGN_16BYTES   0x00500000
+#define IMAGE_SCN_ALIGN_32BYTES   0x00600000
+#define IMAGE_SCN_ALIGN_64BYTES   0x00700000
+#define IMAGE_SCN_ALIGN_128BYTES  0x00800000
+#define IMAGE_SCN_ALIGN_256BYTES  0x00900000
+#define IMAGE_SCN_ALIGN_512BYTES  0x00a00000
+#define IMAGE_SCN_ALIGN_1024BYTES 0x00b00000
+#define IMAGE_SCN_ALIGN_2048BYTES 0x00c00000
+#define IMAGE_SCN_ALIGN_4096BYTES 0x00d00000
+#define IMAGE_SCN_ALIGN_8192BYTES 0x00e00000
+#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* extended relocations */
+#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 /* scn can be discarded */
+#define IMAGE_SCN_MEM_NOT_CACHED  0x04000000 /* cannot be cached */
+#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000 /* not pageable */
+#define IMAGE_SCN_MEM_SHARED      0x10000000 /* can be shared */
+#define IMAGE_SCN_MEM_EXECUTE     0x20000000 /* can be executed as code */
+#define IMAGE_SCN_MEM_READ        0x40000000 /* readable */
+#define IMAGE_SCN_MEM_WRITE       0x80000000 /* writeable */
+
+#define IMAGE_DEBUG_TYPE_CODEVIEW 2
+
+#ifndef __ASSEMBLY__
+
+struct mz_hdr {
+    uint16_t magic;              /* MZ_MAGIC */
+    uint16_t lbsize;             /* size of last used block */
+    uint16_t blocks;             /* pages in file, 0x3 */
+    uint16_t relocs;             /* relocations */
+    uint16_t hdrsize;            /* header size in "paragraphs" */
+    uint16_t min_extra_pps;      /* .bss */
+    uint16_t max_extra_pps;      /* runtime limit for the arena size */
+    uint16_t ss;                 /* relative stack segment */
+    uint16_t sp;                 /* initial %sp register */
+    uint16_t checksum;           /* word checksum */
+    uint16_t ip;                 /* initial %ip register */
+    uint16_t cs;                 /* initial %cs relative to load segment */
+    uint16_t reloc_table_offset; /* offset of the first relocation */
+    uint16_t overlay_num;        /* overlay number.  set to 0. */
+    uint16_t reserved0[4];       /* reserved */
+    uint16_t oem_id;             /* oem identifier */
+    uint16_t oem_info;           /* oem specific */
+    uint16_t reserved1[10];      /* reserved */
+    uint32_t peaddr;             /* address of pe header */
+    char     message[];          /* message to print */
+};
+
+struct mz_reloc {
+    uint16_t offset;
+    uint16_t segment;
+};
+
+struct pe_hdr {
+    uint32_t magic;        /* PE magic */
+    uint16_t machine;      /* machine type */
+    uint16_t sections;     /* number of sections */
+    uint32_t timestamp;    /* time_t */
+    uint32_t symbol_table; /* symbol table offset */
+    uint32_t symbols;      /* number of symbols */
+    uint16_t opt_hdr_size; /* size of optional header */
+    uint16_t flags;        /* flags */
+};
+
+/* the fact that pe32 isn't padded where pe32+ is 64-bit means union won't
+ * work right.  vomit. */
+struct pe32_opt_hdr {
+    /* "standard" header */
+    uint16_t magic;       /* file type */
+    uint8_t  ld_major;    /* linker major version */
+    uint8_t  ld_minor;    /* linker minor version */
+    uint32_t text_size;   /* size of text section(s) */
+    uint32_t data_size;   /* size of data section(s) */
+    uint32_t bss_size;    /* size of bss section(s) */
+    uint32_t entry_point; /* file offset of entry point */
+    uint32_t code_base;   /* relative code addr in ram */
+    uint32_t data_base;   /* relative data addr in ram */
+    /* "windows" header */
+    uint32_t image_base;     /* preferred load address */
+    uint32_t section_align;  /* alignment in bytes */
+    uint32_t file_align;     /* file alignment in bytes */
+    uint16_t os_major;       /* major OS version */
+    uint16_t os_minor;       /* minor OS version */
+    uint16_t image_major;    /* major image version */
+    uint16_t image_minor;    /* minor image version */
+    uint16_t subsys_major;   /* major subsystem version */
+    uint16_t subsys_minor;   /* minor subsystem version */
+    uint32_t win32_version;  /* reserved, must be 0 */
+    uint32_t image_size;     /* image size */
+    uint32_t header_size;    /* header size rounded up to
+                   file_align */
+    uint32_t csum;           /* checksum */
+    uint16_t subsys;         /* subsystem */
+    uint16_t dll_flags;      /* more flags! */
+    uint32_t stack_size_req; /* amt of stack requested */
+    uint32_t stack_size;     /* amt of stack required */
+    uint32_t heap_size_req;  /* amt of heap requested */
+    uint32_t heap_size;      /* amt of heap required */
+    uint32_t loader_flags;   /* reserved, must be 0 */
+    uint32_t data_dirs;      /* number of data dir entries */
+};
+
+struct pe32plus_opt_hdr {
+    uint16_t magic;       /* file type */
+    uint8_t  ld_major;    /* linker major version */
+    uint8_t  ld_minor;    /* linker minor version */
+    uint32_t text_size;   /* size of text section(s) */
+    uint32_t data_size;   /* size of data section(s) */
+    uint32_t bss_size;    /* size of bss section(s) */
+    uint32_t entry_point; /* file offset of entry point */
+    uint32_t code_base;   /* relative code addr in ram */
+    /* "windows" header */
+    uint64_t image_base;     /* preferred load address */
+    uint32_t section_align;  /* alignment in bytes */
+    uint32_t file_align;     /* file alignment in bytes */
+    uint16_t os_major;       /* major OS version */
+    uint16_t os_minor;       /* minor OS version */
+    uint16_t image_major;    /* major image version */
+    uint16_t image_minor;    /* minor image version */
+    uint16_t subsys_major;   /* major subsystem version */
+    uint16_t subsys_minor;   /* minor subsystem version */
+    uint32_t win32_version;  /* reserved, must be 0 */
+    uint32_t image_size;     /* image size */
+    uint32_t header_size;    /* header size rounded up to
+                   file_align */
+    uint32_t csum;           /* checksum */
+    uint16_t subsys;         /* subsystem */
+    uint16_t dll_flags;      /* more flags! */
+    uint64_t stack_size_req; /* amt of stack requested */
+    uint64_t stack_size;     /* amt of stack required */
+    uint64_t heap_size_req;  /* amt of heap requested */
+    uint64_t heap_size;      /* amt of heap required */
+    uint32_t loader_flags;   /* reserved, must be 0 */
+    uint32_t data_dirs;      /* number of data dir entries */
+};
+
+struct data_dirent {
+    uint32_t virtual_address; /* relative to load address */
+    uint32_t size;
+};
+
+struct data_directory {
+    struct data_dirent exports;          /* .edata */
+    struct data_dirent imports;          /* .idata */
+    struct data_dirent resources;        /* .rsrc */
+    struct data_dirent exceptions;       /* .pdata */
+    struct data_dirent certs;            /* certs */
+    struct data_dirent base_relocations; /* .reloc */
+    struct data_dirent debug;            /* .debug */
+    struct data_dirent arch;             /* reservered */
+    struct data_dirent global_ptr;       /* global pointer reg. Size=0 */
+    struct data_dirent tls;              /* .tls */
+    struct data_dirent load_config;      /* load configuration structure */
+    struct data_dirent bound_imports;    /* no idea */
+    struct data_dirent import_addrs;     /* import address table */
+    struct data_dirent delay_imports;    /* delay-load import table */
+    struct data_dirent clr_runtime_hdr;  /* .cor (object only) */
+    struct data_dirent reserved;
+};
+
+struct section_header {
+    char     name[8];         /* name or "/12\0" string tbl offset */
+    uint32_t virtual_size;    /* size of loaded section in ram */
+    uint32_t virtual_address; /* relative virtual address */
+    uint32_t raw_data_size;   /* size of the section */
+    uint32_t data_addr;       /* file pointer to first page of sec */
+    uint32_t relocs;          /* file pointer to relocation entries */
+    uint32_t line_numbers;    /* line numbers! */
+    uint16_t num_relocs;      /* number of relocations */
+    uint16_t num_lin_numbers; /* srsly. */
+    uint32_t flags;
+};
+
+enum x64_coff_reloc_type {
+    IMAGE_REL_AMD64_ABSOLUTE = 0,
+    IMAGE_REL_AMD64_ADDR64,
+    IMAGE_REL_AMD64_ADDR32,
+    IMAGE_REL_AMD64_ADDR32N,
+    IMAGE_REL_AMD64_REL32,
+    IMAGE_REL_AMD64_REL32_1,
+    IMAGE_REL_AMD64_REL32_2,
+    IMAGE_REL_AMD64_REL32_3,
+    IMAGE_REL_AMD64_REL32_4,
+    IMAGE_REL_AMD64_REL32_5,
+    IMAGE_REL_AMD64_SECTION,
+    IMAGE_REL_AMD64_SECREL,
+    IMAGE_REL_AMD64_SECREL7,
+    IMAGE_REL_AMD64_TOKEN,
+    IMAGE_REL_AMD64_SREL32,
+    IMAGE_REL_AMD64_PAIR,
+    IMAGE_REL_AMD64_SSPAN32,
+};
+
+enum arm_coff_reloc_type {
+    IMAGE_REL_ARM_ABSOLUTE,
+    IMAGE_REL_ARM_ADDR32,
+    IMAGE_REL_ARM_ADDR32N,
+    IMAGE_REL_ARM_BRANCH2,
+    IMAGE_REL_ARM_BRANCH1,
+    IMAGE_REL_ARM_SECTION,
+    IMAGE_REL_ARM_SECREL,
+};
+
+enum sh_coff_reloc_type {
+    IMAGE_REL_SH3_ABSOLUTE,
+    IMAGE_REL_SH3_DIRECT16,
+    IMAGE_REL_SH3_DIRECT32,
+    IMAGE_REL_SH3_DIRECT8,
+    IMAGE_REL_SH3_DIRECT8_WORD,
+    IMAGE_REL_SH3_DIRECT8_LONG,
+    IMAGE_REL_SH3_DIRECT4,
+    IMAGE_REL_SH3_DIRECT4_WORD,
+    IMAGE_REL_SH3_DIRECT4_LONG,
+    IMAGE_REL_SH3_PCREL8_WORD,
+    IMAGE_REL_SH3_PCREL8_LONG,
+    IMAGE_REL_SH3_PCREL12_WORD,
+    IMAGE_REL_SH3_STARTOF_SECTION,
+    IMAGE_REL_SH3_SIZEOF_SECTION,
+    IMAGE_REL_SH3_SECTION,
+    IMAGE_REL_SH3_SECREL,
+    IMAGE_REL_SH3_DIRECT32_NB,
+    IMAGE_REL_SH3_GPREL4_LONG,
+    IMAGE_REL_SH3_TOKEN,
+    IMAGE_REL_SHM_PCRELPT,
+    IMAGE_REL_SHM_REFLO,
+    IMAGE_REL_SHM_REFHALF,
+    IMAGE_REL_SHM_RELLO,
+    IMAGE_REL_SHM_RELHALF,
+    IMAGE_REL_SHM_PAIR,
+    IMAGE_REL_SHM_NOMODE,
+};
+
+enum ppc_coff_reloc_type {
+    IMAGE_REL_PPC_ABSOLUTE,
+    IMAGE_REL_PPC_ADDR64,
+    IMAGE_REL_PPC_ADDR32,
+    IMAGE_REL_PPC_ADDR24,
+    IMAGE_REL_PPC_ADDR16,
+    IMAGE_REL_PPC_ADDR14,
+    IMAGE_REL_PPC_REL24,
+    IMAGE_REL_PPC_REL14,
+    IMAGE_REL_PPC_ADDR32N,
+    IMAGE_REL_PPC_SECREL,
+    IMAGE_REL_PPC_SECTION,
+    IMAGE_REL_PPC_SECREL16,
+    IMAGE_REL_PPC_REFHI,
+    IMAGE_REL_PPC_REFLO,
+    IMAGE_REL_PPC_PAIR,
+    IMAGE_REL_PPC_SECRELLO,
+    IMAGE_REL_PPC_GPREL,
+    IMAGE_REL_PPC_TOKEN,
+};
+
+enum x86_coff_reloc_type {
+    IMAGE_REL_I386_ABSOLUTE,
+    IMAGE_REL_I386_DIR16,
+    IMAGE_REL_I386_REL16,
+    IMAGE_REL_I386_DIR32,
+    IMAGE_REL_I386_DIR32NB,
+    IMAGE_REL_I386_SEG12,
+    IMAGE_REL_I386_SECTION,
+    IMAGE_REL_I386_SECREL,
+    IMAGE_REL_I386_TOKEN,
+    IMAGE_REL_I386_SECREL7,
+    IMAGE_REL_I386_REL32,
+};
+
+enum ia64_coff_reloc_type {
+    IMAGE_REL_IA64_ABSOLUTE,
+    IMAGE_REL_IA64_IMM14,
+    IMAGE_REL_IA64_IMM22,
+    IMAGE_REL_IA64_IMM64,
+    IMAGE_REL_IA64_DIR32,
+    IMAGE_REL_IA64_DIR64,
+    IMAGE_REL_IA64_PCREL21B,
+    IMAGE_REL_IA64_PCREL21M,
+    IMAGE_REL_IA64_PCREL21F,
+    IMAGE_REL_IA64_GPREL22,
+    IMAGE_REL_IA64_LTOFF22,
+    IMAGE_REL_IA64_SECTION,
+    IMAGE_REL_IA64_SECREL22,
+    IMAGE_REL_IA64_SECREL64I,
+    IMAGE_REL_IA64_SECREL32,
+    IMAGE_REL_IA64_DIR32NB,
+    IMAGE_REL_IA64_SREL14,
+    IMAGE_REL_IA64_SREL22,
+    IMAGE_REL_IA64_SREL32,
+    IMAGE_REL_IA64_UREL32,
+    IMAGE_REL_IA64_PCREL60X,
+    IMAGE_REL_IA64_PCREL60B,
+    IMAGE_REL_IA64_PCREL60F,
+    IMAGE_REL_IA64_PCREL60I,
+    IMAGE_REL_IA64_PCREL60M,
+    IMAGE_REL_IA64_IMMGPREL6,
+    IMAGE_REL_IA64_TOKEN,
+    IMAGE_REL_IA64_GPREL32,
+    IMAGE_REL_IA64_ADDEND,
+};
+
+struct coff_reloc {
+    uint32_t virtual_address;
+    uint32_t symbol_table_index;
+
+    union {
+        enum x64_coff_reloc_type  x64_type;
+        enum arm_coff_reloc_type  arm_type;
+        enum sh_coff_reloc_type   sh_type;
+        enum ppc_coff_reloc_type  ppc_type;
+        enum x86_coff_reloc_type  x86_type;
+        enum ia64_coff_reloc_type ia64_type;
+        uint16_t                  data;
+    };
+};
+
+/*
+ * Definitions for the contents of the certs data block
+ */
+#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002
+#define WIN_CERT_TYPE_EFI_OKCS115      0x0EF0
+#define WIN_CERT_TYPE_EFI_GUID         0x0EF1
+
+#define WIN_CERT_REVISION_1_0 0x0100
+#define WIN_CERT_REVISION_2_0 0x0200
+
+struct win_certificate {
+    uint32_t length;
+    uint16_t revision;
+    uint16_t cert_type;
+};
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __PE_H */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 18:08:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 18:08:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752618.1160825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOhvX-00053R-NX; Tue, 02 Jul 2024 18:08:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752618.1160825; Tue, 02 Jul 2024 18:08:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOhvX-00053K-KR; Tue, 02 Jul 2024 18:08:27 +0000
Received: by outflank-mailman (input) for mailman id 752618;
 Tue, 02 Jul 2024 18:08:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOhvW-00053A-1O; Tue, 02 Jul 2024 18:08:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOhvV-0004mI-TV; Tue, 02 Jul 2024 18:08:25 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOhvV-0002KR-GZ; Tue, 02 Jul 2024 18:08:25 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOhvV-0008Er-G5; Tue, 02 Jul 2024 18:08: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=LZv6qk1pivUbyGC6LTVENK44nXB7nw2l4FYIOqpEH0k=; b=k+BNXzJDlcKd02Sp0mKTPMB1bY
	RNaxLjBBwWb2eZuUAX4Io9ZavoyzMAhHh2a+ZLbQiUWf5mnvcxmRSCTEeIgNY3WwsJpZYItk8XMRo
	Dn1izpr5vBDR6L8h7wSu3Mh1KPzsSmyZ6gU6NKG4KeuXCM9uiTWbi7OYzs88qLa+sMkk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186626-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186626: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:host-ping-check-xen:fail:regression
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=73e931504f8e0d42978bfcda37b323dbbd1afc08
X-Osstest-Versions-That:
    linux=9903efbddba0d14133b5a3c75088b558d2e34ac3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Jul 2024 18:08:25 +0000

flight 186626 linux-linus real [real]
flight 186631 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186626/
http://logs.test-lab.xenproject.org/osstest/logs/186631/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-qcow2     8 xen-boot                 fail REGR. vs. 186620
 test-armhf-armhf-xl-credit2 10 host-ping-check-xen fail in 186631 REGR. vs. 186620

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit2   8 xen-boot            fail pass in 186631-retest
 test-armhf-armhf-libvirt-vhd  8 xen-boot            fail pass in 186631-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check fail in 186631 never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check fail in 186631 never pass
 test-armhf-armhf-xl-arndale   8 xen-boot                     fail  like 186620
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186620
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186620
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                73e931504f8e0d42978bfcda37b323dbbd1afc08
baseline version:
 linux                9903efbddba0d14133b5a3c75088b558d2e34ac3

Last test of basis   186620  2024-07-01 17:14:02 Z    1 days
Testing same since   186626  2024-07-02 05:45:15 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alison Schofield <alison.schofield@intel.com>
  Dan Williams <dan.j.williams@intel.com>
  Dave Jiang <dave.jiang@intel.com>
  David Sterba <dsterba@suse.com>
  Li Ming <ming4.li@intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Naohiro Aota <naohiro.aota@wdc.com>
  Yao Xingtao <yaoxt.fnst@fujitsu.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 73e931504f8e0d42978bfcda37b323dbbd1afc08
Merge: cfbc0ffea88c a0f39d51dbf7
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Jul 1 13:03:30 2024 -0700

    Merge tag 'cxl-fixes-6.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl
    
    Pull cxl fixes from Dave Jiang:
    
     - Fix no cxl_nvd during pmem region auto-assemble
    
     - Avoid NULLL pointer dereference in region lookup
    
     - Add missing checks to interleave capability
    
     - Add cxl kdoc fix to address document compilation error
    
    * tag 'cxl-fixes-6.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl:
      cxl: documentation: add missing files to cxl driver-api
      cxl/region: check interleave capability
      cxl/region: Avoid null pointer dereference in region lookup
      cxl/mem: Fix no cxl_nvd during pmem region auto-assembling

commit cfbc0ffea88c764d23f69efe6ecb74918e0f588e
Merge: 9903efbddba0 48f091fd50b2
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Jul 1 12:48:28 2024 -0700

    Merge tag 'for-6.10-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
    
    Pull btrfs fix from David Sterba:
     "A fixup for a recent fix that prevents an infinite loop during block
      group reclaim.
    
      Unfortunately it introduced an unsafe way of updating block group list
      and could race with relocation. This could be hit on fast devices when
      relocation/balance does not have enough space"
    
    * tag 'for-6.10-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
      btrfs: fix adding block group to a reclaim list and the unused list during reclaim

commit 48f091fd50b2eb33ae5eaea9ed3c4f81603acf38
Author: Naohiro Aota <naohiro.aota@wdc.com>
Date:   Fri Jun 28 13:32:24 2024 +0900

    btrfs: fix adding block group to a reclaim list and the unused list during reclaim
    
    There is a potential parallel list adding for retrying in
    btrfs_reclaim_bgs_work and adding to the unused list. Since the block
    group is removed from the reclaim list and it is on a relocation work,
    it can be added into the unused list in parallel. When that happens,
    adding it to the reclaim list will corrupt the list head and trigger
    list corruption like below.
    
    Fix it by taking fs_info->unused_bgs_lock.
    
      [177.504][T2585409] BTRFS error (device nullb1): error relocating ch= unk 2415919104
      [177.514][T2585409] list_del corruption. next->prev should be ff1100= 0344b119c0, but was ff11000377e87c70. (next=3Dff110002390cd9c0)
      [177.529][T2585409] ------------[ cut here ]------------
      [177.537][T2585409] kernel BUG at lib/list_debug.c:65!
      [177.545][T2585409] Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI
      [177.555][T2585409] CPU: 9 PID: 2585409 Comm: kworker/u128:2 Tainted: G        W          6.10.0-rc5-kts #1
      [177.568][T2585409] Hardware name: Supermicro SYS-520P-WTR/X12SPW-TF, BIOS 1.2 02/14/2022
      [177.579][T2585409] Workqueue: events_unbound btrfs_reclaim_bgs_work[btrfs]
      [177.589][T2585409] RIP: 0010:__list_del_entry_valid_or_report.cold+0x70/0x72
      [177.624][T2585409] RSP: 0018:ff11000377e87a70 EFLAGS: 00010286
      [177.633][T2585409] RAX: 000000000000006d RBX: ff11000344b119c0 RCX:0000000000000000
      [177.644][T2585409] RDX: 000000000000006d RSI: 0000000000000008 RDI:ffe21c006efd0f40
      [177.655][T2585409] RBP: ff110002e0509f78 R08: 0000000000000001 R09:ffe21c006efd0f08
      [177.665][T2585409] R10: ff11000377e87847 R11: 0000000000000000 R12:ff110002390cd9c0
      [177.676][T2585409] R13: ff11000344b119c0 R14: ff110002e0508000 R15:dffffc0000000000
      [177.687][T2585409] FS:  0000000000000000(0000) GS:ff11000fec880000(0000) knlGS:0000000000000000
      [177.700][T2585409] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [177.709][T2585409] CR2: 00007f06bc7b1978 CR3: 0000001021e86005 CR4:0000000000771ef0
      [177.720][T2585409] DR0: 0000000000000000 DR1: 0000000000000000 DR2:0000000000000000
      [177.731][T2585409] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:0000000000000400
      [177.742][T2585409] PKRU: 55555554
      [177.748][T2585409] Call Trace:
      [177.753][T2585409]  <TASK>
      [177.759][T2585409]  ? __die_body.cold+0x19/0x27
      [177.766][T2585409]  ? die+0x2e/0x50
      [177.772][T2585409]  ? do_trap+0x1ea/0x2d0
      [177.779][T2585409]  ? __list_del_entry_valid_or_report.cold+0x70/0x72
      [177.788][T2585409]  ? do_error_trap+0xa3/0x160
      [177.795][T2585409]  ? __list_del_entry_valid_or_report.cold+0x70/0x72
      [177.805][T2585409]  ? handle_invalid_op+0x2c/0x40
      [177.812][T2585409]  ? __list_del_entry_valid_or_report.cold+0x70/0x72
      [177.820][T2585409]  ? exc_invalid_op+0x2d/0x40
      [177.827][T2585409]  ? asm_exc_invalid_op+0x1a/0x20
      [177.834][T2585409]  ? __list_del_entry_valid_or_report.cold+0x70/0x72
      [177.843][T2585409]  btrfs_delete_unused_bgs+0x3d9/0x14c0 [btrfs]
    
    There is a similar retry_list code in btrfs_delete_unused_bgs(), but it is
    safe, AFAICS. Since the block group was in the unused list, the used bytes
    should be 0 when it was added to the unused list. Then, it checks
    block_group->{used,reserved,pinned} are still 0 under the
    block_group->lock. So, they should be still eligible for the unused list,
    not the reclaim list.
    
    The reason it is safe there it's because because we're holding
    space_info->groups_sem in write mode.
    
    That means no other task can allocate from the block group, so while we
    are at deleted_unused_bgs() it's not possible for other tasks to
    allocate and deallocate extents from the block group, so it can't be
    added to the unused list or the reclaim list by anyone else.
    
    The bug can be reproduced by btrfs/166 after a few rounds. In practice
    this can be hit when relocation cannot find more chunk space and ends
    with ENOSPC.
    
    Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki@wdc.com>
    Suggested-by: Johannes Thumshirn <Johannes.Thumshirn@wdc.com>
    Fixes: 4eb4e85c4f81 ("btrfs: retry block group reclaim without infinite loop")
    CC: stable@vger.kernel.org # 5.15+
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>

commit a0f39d51dbf72c28283bd201b97559ed82bc0fe5
Author: Yao Xingtao <yaoxt.fnst@fujitsu.com>
Date:   Fri Jun 14 04:47:55 2024 -0400

    cxl: documentation: add missing files to cxl driver-api
    
    Add the missing files into cxl driver api and fix the compile warning.
    
    Suggested-by: Dan Williams <dan.j.williams@intel.com>
    Suggested-by: Alison Schofield <alison.schofield@intel.com>
    Signed-off-by: Yao Xingtao <yaoxt.fnst@fujitsu.com>
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Link: https://patch.msgid.link/20240614084755.59503-3-yaoxt.fnst@fujitsu.com
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>

commit 84328c5acebc10c8cdcf17283ab6c6d548885bfc
Author: Yao Xingtao <yaoxt.fnst@fujitsu.com>
Date:   Fri Jun 14 04:47:54 2024 -0400

    cxl/region: check interleave capability
    
    Since interleave capability is not verified, if the interleave
    capability of a target does not match the region need, committing decoder
    should have failed at the device end.
    
    In order to checkout this error as quickly as possible, driver needs
    to check the interleave capability of target during attaching it to
    region.
    
    Per CXL specification r3.1(8.2.4.20.1 CXL HDM Decoder Capability Register),
    bits 11 and 12 indicate the capability to establish interleaving in 3, 6,
    12 and 16 ways. If these bits are not set, the target cannot be attached to
    a region utilizing such interleave ways.
    
    Additionally, bits 8 and 9 represent the capability of the bits used for
    interleaving in the address, Linux tracks this in the cxl_port
    interleave_mask.
    
    Per CXL specification r3.1(8.2.4.20.13 Decoder Protection):
      eIW means encoded Interleave Ways.
      eIG means encoded Interleave Granularity.
    
      in HPA:
      if eIW is 0 or 8 (interleave ways: 1, 3), all the bits of HPA are used,
      the interleave bits are none, the following check is ignored.
    
      if eIW is less than 8 (interleave ways: 2, 4, 8, 16), the interleave bits
      start at bit position eIG + 8 and end at eIG + eIW + 8 - 1.
    
      if eIW is greater than 8 (interleave ways: 6, 12), the interleave bits
      start at bit position eIG + 8 and end at eIG + eIW - 1.
    
      if the interleave mask is insufficient to cover the required interleave
      bits, the target cannot be attached to the region.
    
    Fixes: 384e624bb211 ("cxl/region: Attach endpoint decoders")
    Signed-off-by: Yao Xingtao <yaoxt.fnst@fujitsu.com>
    Reviewed-by: Dan Williams <dan.j.williams@intel.com>
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Link: https://patch.msgid.link/20240614084755.59503-2-yaoxt.fnst@fujitsu.com
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>

commit 285f2a08841432fc3e498b1cd00cce5216cdf189
Author: Alison Schofield <alison.schofield@intel.com>
Date:   Mon Jun 3 17:36:09 2024 -0700

    cxl/region: Avoid null pointer dereference in region lookup
    
    cxl_dpa_to_region() looks up a region based on a memdev and DPA.
    It wrongly assumes an endpoint found mapping the DPA is also of
    a fully assembled region. When not true it leads to a null pointer
    dereference looking up the region name.
    
    This appears during testing of region lookup after a failure to
    assemble a BIOS defined region or if the lookup raced with the
    assembly of the BIOS defined region.
    
    Failure to clean up BIOS defined regions that fail assembly is an
    issue in itself and a fix to that problem will alleviate some of
    the impact. It will not alleviate the race condition so let's harden
    this path.
    
    The behavior change is that the kernel oops due to a null pointer
    dereference is replaced with a dev_dbg() message noting that an
    endpoint was mapped.
    
    Additional comments are added so that future users of this function
    can more clearly understand what it provides.
    
    Fixes: 0a105ab28a4d ("cxl/memdev: Warn of poison inject or clear to a mapped region")
    Signed-off-by: Alison Schofield <alison.schofield@intel.com>
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Link: https://patch.msgid.link/20240604003609.202682-1-alison.schofield@intel.com
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>

commit 84ec985944ef34a34a1605b93ce401aa8737af96
Author: Li Ming <ming4.li@intel.com>
Date:   Wed Jun 12 14:44:23 2024 +0800

    cxl/mem: Fix no cxl_nvd during pmem region auto-assembling
    
    When CXL subsystem is auto-assembling a pmem region during cxl
    endpoint port probing, always hit below calltrace.
    
     BUG: kernel NULL pointer dereference, address: 0000000000000078
     #PF: supervisor read access in kernel mode
     #PF: error_code(0x0000) - not-present page
     RIP: 0010:cxl_pmem_region_probe+0x22e/0x360 [cxl_pmem]
     Call Trace:
      <TASK>
      ? __die+0x24/0x70
      ? page_fault_oops+0x82/0x160
      ? do_user_addr_fault+0x65/0x6b0
      ? exc_page_fault+0x7d/0x170
      ? asm_exc_page_fault+0x26/0x30
      ? cxl_pmem_region_probe+0x22e/0x360 [cxl_pmem]
      ? cxl_pmem_region_probe+0x1ac/0x360 [cxl_pmem]
      cxl_bus_probe+0x1b/0x60 [cxl_core]
      really_probe+0x173/0x410
      ? __pfx___device_attach_driver+0x10/0x10
      __driver_probe_device+0x80/0x170
      driver_probe_device+0x1e/0x90
      __device_attach_driver+0x90/0x120
      bus_for_each_drv+0x84/0xe0
      __device_attach+0xbc/0x1f0
      bus_probe_device+0x90/0xa0
      device_add+0x51c/0x710
      devm_cxl_add_pmem_region+0x1b5/0x380 [cxl_core]
      cxl_bus_probe+0x1b/0x60 [cxl_core]
    
    The cxl_nvd of the memdev needs to be available during the pmem region
    probe. Currently the cxl_nvd is registered after the endpoint port probe.
    The endpoint probe, in the case of autoassembly of regions, can cause a
    pmem region probe requiring the not yet available cxl_nvd. Adjust the
    sequence so this dependency is met.
    
    This requires adding a port parameter to cxl_find_nvdimm_bridge() that
    can be used to query the ancestor root port. The endpoint port is not
    yet available, but will share a common ancestor with its parent, so
    start the query from there instead.
    
    Fixes: f17b558d6663 ("cxl/pmem: Refactor nvdimm device registration, delete the workqueue")
    Co-developed-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Li Ming <ming4.li@intel.com>
    Tested-by: Alison Schofield <alison.schofield@intel.com>
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Alison Schofield <alison.schofield@intel.com>
    Link: https://patch.msgid.link/20240612064423.2567625-1-ming4.li@intel.com
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 18:09:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 18:09:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752624.1160835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOhwJ-0005Xq-0A; Tue, 02 Jul 2024 18:09:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752624.1160835; Tue, 02 Jul 2024 18: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 1sOhwI-0005Xj-Tw; Tue, 02 Jul 2024 18:09:14 +0000
Received: by outflank-mailman (input) for mailman id 752624;
 Tue, 02 Jul 2024 18:09:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOhwH-0005XT-KP; Tue, 02 Jul 2024 18:09:13 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOhwH-0004oZ-Iq; Tue, 02 Jul 2024 18:09:13 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOhwH-0002L7-8t; Tue, 02 Jul 2024 18:09:13 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOhwH-0001Ex-8G; Tue, 02 Jul 2024 18:09:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=HJQuRM9Z79lREPsIjstiIcdgms/tDg9lxFVBtDGnG+M=; b=sThU0mkFSCOvMwE3gwUtX5p/vT
	k846JDW8ZDIeiHnhqREDGlJE69h4HJNKD4UsJXkrl/rQx/tQQ/9omcQlbZLWiLBnlr5IfbOX3XC7r
	5lhETzHX0UljGKL6nrWqhR6tZDmcIPCXB4yxL+7ZNGQIR6RTySR+rAAesQf1xPXkf5UU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186632-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186632: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=6b256cef01825fd597ce31ec9343ea280c6114c9
X-Osstest-Versions-That:
    ovmf=b2216427ca7b0d31a36616e2876d362629de926d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Jul 2024 18:09:13 +0000

flight 186632 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186632/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 6b256cef01825fd597ce31ec9343ea280c6114c9
baseline version:
 ovmf                 b2216427ca7b0d31a36616e2876d362629de926d

Last test of basis   186630  2024-07-02 13:11:12 Z    0 days
Testing same since   186632  2024-07-02 16:11:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dionna Glaze <dionnaglaze@google.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   b2216427ca..6b256cef01  6b256cef01825fd597ce31ec9343ea280c6114c9 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 02 18:09:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 18:09:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752633.1160845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOhwy-00068g-Bx; Tue, 02 Jul 2024 18:09:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752633.1160845; Tue, 02 Jul 2024 18: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 1sOhwy-00068Z-9R; Tue, 02 Jul 2024 18:09:56 +0000
Received: by outflank-mailman (input) for mailman id 752633;
 Tue, 02 Jul 2024 18:09: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=w9fb=OC=gmail.com=milandjokic1995@srs-se1.protection.inumbo.net>)
 id 1sOhwx-0005Rd-GM
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 18:09:55 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4765c2a8-389e-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 20:09:53 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4255fc43f1cso31574655e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 11:09:53 -0700 (PDT)
Received: from Xen-host.domain.local ([89.216.37.146])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4257cdf4982sm128582115e9.47.2024.07.02.11.09.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 11:09: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: 4765c2a8-389e-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719943792; x=1720548592; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cQbQgf81XnMi57bKXvjsjU8Nkk0HHc5GJc2NIF4bd7M=;
        b=KJILj9NmipVG4k4vW8wXbPgH6UrANX34KVw6+Yfoz3RFY4mvhGlNi/AMUphrZ548Xr
         R9gl9WnW3gqyLGZEJBfpDtlxvXM/2BqxuVHGSpfcbHVstjMfcRMsRjEsYCBK5CqkZjgR
         oqWfRuyTAS5k8bJSLL0RL8fYoiQApfRsRh2ReTQMY/ZGOZ292L1qneXTGcsnG7MWqTND
         rsZf0YIIrF+fpuo9a+UCKqCM9MQXQ0lwbB8hhZdmLRFSdvny8gbQSjrquAZtAw3450aZ
         Q+DHPP7E4b8vNnOxD1neMb756w9BtmAoOOUHAR/7AH7RMbdwZGEEoUoJlEY6yefpdaMS
         kp2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719943792; x=1720548592;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cQbQgf81XnMi57bKXvjsjU8Nkk0HHc5GJc2NIF4bd7M=;
        b=py3goKVxebACOkeJIEu2baWmDkYUsAcLxqSWVOSgWDSmhA7M4Q6IWxrI8pCPOl8ETa
         JcBLgcxSGS+VGJ0XaLcW8n0JrJBr48REZBL4pA1IllQtLdH5wxSvzLAqj/UHdlJWh6bu
         NS6D+hh6dLP7cBunAKmoe4eFdVC/m8VlUMl/MDqmkPCycc/yAk+kEkfjYZd9PH1BNyjO
         kA+oByoGBnQrQ3L26gkTcy7JaxGJWb2UdOaV5RbbaZsF9LKtYNX2N2EhYo/8Zk5KyEjj
         yHFIFM/f07nA6qMxxWpXcsV7f2Ul7olyMuBvauSuQltR5huZFkpGsCT/PDV/cTZ3iqb4
         FoRQ==
X-Gm-Message-State: AOJu0YzU3XosPVRZxVT0rh2q6K1WgKxxqdcnWI0pD//Ht/qnTBkkPUFy
	RxVNcOoQi/7NTDF4a4nN4qzn+3bmDL5LTFLndakhsLzss3sBzYug2rJx/eqo
X-Google-Smtp-Source: AGHT+IEp6n1F/rPX863tgYOKlORmX/3yrrtlvG3t2Ez7nQENquvhySPxFCA/kbwd3Ez1kdlVqsiBCA==
X-Received: by 2002:a7b:c4cd:0:b0:425:6385:83bc with SMTP id 5b1f17b1804b1-4257a034fa2mr80581135e9.15.1719943791552;
        Tue, 02 Jul 2024 11:09:51 -0700 (PDT)
From: Milan Djokic <milandjokic1995@gmail.com>
X-Google-Original-From: Milan Djokic <milan.djokic@rt-rk.com>
To: xen-devel@lists.xenproject.org
Cc: milan.djokic@rt-rk.com,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Nikola Jelic <nikola.jelic@rt-rk.com>
Subject: [PATCH v3] xen/riscv: PE/COFF image header for RISC-V target
Date: Tue,  2 Jul 2024 20:09:20 +0200
Message-Id: <2bbb65fcda57f2609f0967f9050a91415059026c.1719942341.git.milan.djokic@rt-rk.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <87b5e458498bbff2e54ac011a50ff1f9555c3613.1717354932.git.milan.djokic@rt-rk.com>
References: <87b5e458498bbff2e54ac011a50ff1f9555c3613.1717354932.git.milan.djokic@rt-rk.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Added riscv image header to enable boot from second stage bootloaders (e.g. uboot. Image header defined in riscv-image-header.h)
Additionally, RISC-V xen image is extended with PE/COFF headers, introducing EFI application format.
PE/COFF header is optionally included (with CONFIG_RISCV_EFI) so
both plain ELF and image with PE/COFF header can now be generated as build artifacts.
Note that this patch represents initial EFI application format support (image
contains EFI application header embeded into binary when CONFIG_RISCV_EFI
is enabled). For full EFI application Xen support, boot/runtime services
and system table handling are yet to be implemented.

Tested on both QEMU and StarFive VisionFive 2 with OpenSBI->U-Boot->xen->dom0 boot chain.

Signed-off-by: Nikola Jelic <nikola.jelic@rt-rk.com>
Signed-off-by: Milan Djokic <milan.djokic@rt-rk.com>

---
Changes since v2:
  * Restructured EFI image headers - generic PE/COFF headers moved to xen/include/efi/pe.h, riscv image header left in arch specific dir (riscv/include/asm/riscv-image-header.h)
  * EFI PE/COFF header section moved to separate file (efi-header.S) and optionally included into image (head.S) if CONFIG_RISCV_EFI is enabled
  * Removed explicit usage of compressed (c.*) instructions where not necessary to avoid dependency on C extension.
  * Removed redundant parts of code which were originally taken over from linux kernel, but not used in this case
(data directories definition in optional PE header, _init_end_efi in linker script)
  * Removed nested code, explained pe header fields mapping and current EFI support status
  * Clarified riscv image header which is inserted into image regardless EFI option value (in order to support boot from second stage bootloaders for both ELF and EFI image format)
---
Changes since v1 (following review comments from Jan Beulich):
  * Fix coding style
  * Extended image header with all the necessary
    PE/COFF (EFI) fields (instead of only those used by U-boot)
  * Removed usage of deprecated types
---
 xen/arch/riscv/Kconfig                        |  10 +
 .../riscv/include/asm/riscv-image-header.h    |  57 +++
 xen/arch/riscv/riscv64/efi-header.S           |  99 ++++
 xen/arch/riscv/riscv64/head.S                 |  45 +-
 xen/arch/riscv/xen.lds.S                      |   3 +
 xen/include/efi/pe.h                          | 460 ++++++++++++++++++
 6 files changed, 672 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/riscv-image-header.h
 create mode 100644 xen/arch/riscv/riscv64/efi-header.S
 create mode 100644 xen/include/efi/pe.h

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index f382b36f6c..ec1e2b1386 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -9,6 +9,16 @@ config ARCH_DEFCONFIG
 	string
 	default "arch/riscv/configs/tiny64_defconfig"
 
+config RISCV_EFI
+	bool "UEFI boot service support"
+	depends on RISCV_64 && RISCV_ISA_C
+	help
+	  This option provides support for boot services through
+	  UEFI firmware. A UEFI stub is provided to allow Xen to
+	  be booted as an EFI application. Currently, only EFI PE/COFF application
+	  header is included into RISC-V image. Boot/Runtime services as part
+	  of EFI application stub are yet to be implemented.
+
 menu "Architecture Features"
 
 source "arch/Kconfig"
diff --git a/xen/arch/riscv/include/asm/riscv-image-header.h b/xen/arch/riscv/include/asm/riscv-image-header.h
new file mode 100644
index 0000000000..eebca47620
--- /dev/null
+++ b/xen/arch/riscv/include/asm/riscv-image-header.h
@@ -0,0 +1,57 @@
+#ifndef _ASM_RISCV_IMAGE_H
+#define _ASM_RISCV_IMAGE_H
+
+#define RISCV_IMAGE_MAGIC  "RISCV\0\0\0"
+#define RISCV_IMAGE_MAGIC2 "RSC\x05"
+
+#define RISCV_IMAGE_FLAG_BE_SHIFT 0
+
+#define RISCV_IMAGE_FLAG_LE 0
+#define RISCV_IMAGE_FLAG_BE 1
+
+#define __HEAD_FLAG_BE RISCV_IMAGE_FLAG_LE
+
+#define __HEAD_FLAG(field)                                                     \
+    (__HEAD_FLAG_##field << RISCV_IMAGE_FLAG_##field##_SHIFT)
+
+#define __HEAD_FLAGS (__HEAD_FLAG(BE))
+
+#define RISCV_HEADER_VERSION_MAJOR 0
+#define RISCV_HEADER_VERSION_MINOR 2
+
+#define RISCV_HEADER_VERSION                                                   \
+    (RISCV_HEADER_VERSION_MAJOR << 16 | RISCV_HEADER_VERSION_MINOR)
+
+#ifndef __ASSEMBLY__
+/**
+ * struct riscv_image_header - riscv image header
+ * @code0:      Executable code
+ * @code1:      Executable code
+ * @text_offset:    Image load offset (little endian)
+ * @image_size:     Effective Image size (little endian)
+ * @flags:      kernel flags (little endian)
+ * @version:    version
+ * @res1:       reserved
+ * @res2:       reserved
+ * @magic:      Magic number (RISC-V specific; deprecated)
+ * @magic2:     Magic number 2 (to match the ARM64 'magic' field pos)
+ * @res3:       reserved (will be used for PE COFF offset)
+ *
+ * The intention is for this header format to be shared between multiple
+ * architectures to avoid a proliferation of image header formats.
+ */
+struct riscv_image_header {
+    uint32_t code0;
+    uint32_t code1;
+    uint64_t text_offset;
+    uint64_t image_size;
+    uint64_t flags;
+    uint64_t version;
+    uint32_t res1;
+    uint64_t res2;
+    uint64_t magic;
+    uint32_t magic2;
+    uint32_t res3;
+};
+#endif /* __ASSEMBLY__ */
+#endif /* _ASM_RISCV_IMAGE_H */
diff --git a/xen/arch/riscv/riscv64/efi-header.S b/xen/arch/riscv/riscv64/efi-header.S
new file mode 100644
index 0000000000..87cd591a96
--- /dev/null
+++ b/xen/arch/riscv/riscv64/efi-header.S
@@ -0,0 +1,99 @@
+#include <efi/pe.h>
+#include <xen/sizes.h>
+
+        .macro __EFI_PE_HEADER
+        .long PE_MAGIC
+coff_header:
+#ifdef CONFIG_RISCV_64
+        .short  IMAGE_FILE_MACHINE_RISCV64              /* Machine */
+#else
+        .short  IMAGE_FILE_MACHINE_RISCV32              /* Machine */
+#endif
+        .short  section_count                           /* NumberOfSections */
+        .long   0                                       /* TimeDateStamp */
+        .long   0                                       /* PointerToSymbolTable */
+        .long   0                                       /* NumberOfSymbols */
+        .short  section_table - optional_header         /* SizeOfOptionalHeader */
+        .short  IMAGE_FILE_DEBUG_STRIPPED | \
+                IMAGE_FILE_EXECUTABLE_IMAGE | \
+                IMAGE_FILE_LINE_NUMS_STRIPPED           /* Characteristics */
+
+optional_header:
+#ifdef CONFIG_RISCV_64
+        .short  PE_OPT_MAGIC_PE32PLUS                   /* PE32+ format */
+#else
+        .short  PE_OPT_MAGIC_PE32                       /* PE32 format */
+#endif
+        .byte   0x02                                    /* MajorLinkerVersion */
+        .byte   0x14                                    /* MinorLinkerVersion */
+        .long   _end - xen_start                        /* SizeOfCode */
+        .long   0                                       /* SizeOfInitializedData */
+        .long   0                                       /* SizeOfUninitializedData */
+        .long   0                                       /* AddressOfEntryPoint */
+        .long   xen_start - _start                      /* BaseOfCode */
+#ifdef CONFIG_RISCV_32
+        .long  _end - _start                            /* BaseOfData */
+#endif
+
+extra_header_fields:
+        .quad   0                                       /* ImageBase */
+        .long   PECOFF_SECTION_ALIGNMENT                /* SectionAlignment */
+        .long   PECOFF_FILE_ALIGNMENT                   /* FileAlignment */
+        .short  0                                       /* MajorOperatingSystemVersion */
+        .short  0                                       /* MinorOperatingSystemVersion */
+        .short  LINUX_EFISTUB_MAJOR_VERSION             /* MajorImageVersion */
+        .short  LINUX_EFISTUB_MINOR_VERSION             /* MinorImageVersion */
+        .short  0                                       /* MajorSubsystemVersion */
+        .short  0                                       /* MinorSubsystemVersion */
+        .long   0                                       /* Win32VersionValue */
+        .long   _end - _start                           /* SizeOfImage */
+
+        /* Everything before the xen image is considered part of the header */
+        .long   xen_start - _start                      /* SizeOfHeaders */
+        .long   0                                       /* CheckSum */
+        .short  IMAGE_SUBSYSTEM_EFI_APPLICATION         /* Subsystem */
+        .short  0                                       /* DllCharacteristics */
+        .quad   0                                       /* SizeOfStackReserve */
+        .quad   0                                       /* SizeOfStackCommit */
+        .quad   0                                       /* SizeOfHeapReserve */
+        .quad   0                                       /* SizeOfHeapCommit */
+        .long   0                                       /* LoaderFlags */
+        .long   (section_table - .) / 8                 /* NumberOfRvaAndSizes */
+        /*
+         * Data directories are not used in this case, therefore not defined to reduce header size.
+         */
+
+        /* Section table */
+section_table:
+        /* Currently code/data sections are not used since EFI stub implementation is not yet finalized */
+        .ascii  ".text\0\0\0"
+        .long   0                                       /* VirtualSize */
+        .long   0                                       /* VirtualAddress */
+        .long   0                                       /* SizeOfRawData */
+        .long   0                                       /* PointerToRawData */
+        .long   0                                       /* PointerToRelocations */
+        .long   0                                       /* PointerToLineNumbers */
+        .short  0                                       /* NumberOfRelocations */
+        .short  0                                       /* NumberOfLineNumbers */
+        .long   IMAGE_SCN_CNT_CODE | \
+                IMAGE_SCN_MEM_READ | \
+                IMAGE_SCN_MEM_EXECUTE                   /* Characteristics */
+
+        .ascii  ".data\0\0\0"
+        .long   0                                       /* VirtualSize */
+        .long   0                                       /* VirtualAddress */
+        .long   0                                       /* SizeOfRawData */
+        .long   0                                       /* PointerToRawData */
+        .long   0                                       /* PointerToRelocations */
+        .long   0                                       /* PointerToLineNumbers */
+        .short  0                                       /* NumberOfRelocations */
+        .short  0                                       /* NumberOfLineNumbers */
+        .long   IMAGE_SCN_CNT_INITIALIZED_DATA | \
+                IMAGE_SCN_MEM_READ | \
+                IMAGE_SCN_MEM_WRITE                    /* Characteristics */
+
+        .set    section_count, (. - section_table) / 40
+
+        .balign  0x1000
+efi_header_end:
+        .endm
\ No newline at end of file
diff --git a/xen/arch/riscv/riscv64/head.S b/xen/arch/riscv/riscv64/head.S
index 3261e9fce8..5669e5df20 100644
--- a/xen/arch/riscv/riscv64/head.S
+++ b/xen/arch/riscv/riscv64/head.S
@@ -1,14 +1,54 @@
 #include <asm/asm.h>
 #include <asm/riscv_encoding.h>
+#include <asm/riscv-image-header.h>
+#ifdef CONFIG_RISCV_EFI
+#include "efi-header.S"
+#endif
 
         .section .text.header, "ax", %progbits
-
         /*
          * OpenSBI pass to start():
          *   a0 -> hart_id ( bootcpu_id )
-         *   a1 -> dtb_base 
+         *   a1 -> dtb_base
          */
 FUNC(start)
+/* Image header expected by second stage bootloaders (format defined in asm/riscv-image-header.h) */
+#ifdef CONFIG_RISCV_EFI
+        /*
+         * This instruction decodes to "MZ" ASCII required by UEFI.
+         */
+        c.li s4,-13
+        c.j xen_start
+#else
+        /* jump to start kernel */
+        jal xen_start
+#endif
+        .balign 8
+#ifdef CONFIG_RISCV_64
+        /* Image load offset(2MB) from start of RAM */
+        .quad 0x200000
+#else
+        /* Image load offset(4MB) from start of RAM */
+        .quad 0x400000
+#endif
+        .quad _end - _start              /* Effective Image size */
+        .quad __HEAD_FLAGS
+        .long RISCV_HEADER_VERSION
+        .long 0                          /* reserved */
+        .quad 0                          /* reserved */
+        .ascii RISCV_IMAGE_MAGIC         /* Magic number (RISC-V specific; deprecated) */
+        .balign 4
+        .ascii RISCV_IMAGE_MAGIC2        /* Magic number 2 (to match the ARM64 'magic' field pos) */
+#ifdef CONFIG_RISCV_EFI
+        .long pe_head_start - _start     /* reserved (PE COFF offset) */
+pe_head_start:
+
+        __EFI_PE_HEADER
+#else
+        .long 0                          /* 0 means no PE header. */
+#endif
+
+xen_start:
         /* Mask all interrupts */
         csrw    CSR_SIE, zero
 
@@ -60,6 +100,7 @@ FUNC(start)
         mv      a1, s1
 
         tail    start_xen
+
 END(start)
 
         .section .text, "ax", %progbits
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 8510a87c4d..c36d76baf3 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -12,6 +12,9 @@ PHDRS
 #endif
 }
 
+PECOFF_SECTION_ALIGNMENT = 0x1000;
+PECOFF_FILE_ALIGNMENT = 0x200;
+
 SECTIONS
 {
     . = XEN_VIRT_START;
diff --git a/xen/include/efi/pe.h b/xen/include/efi/pe.h
new file mode 100644
index 0000000000..71fd7e3126
--- /dev/null
+++ b/xen/include/efi/pe.h
@@ -0,0 +1,460 @@
+#ifndef __PE_H
+#define __PE_H
+
+/*
+ * Linux EFI stub v1.0 adds the following functionality:
+ * - Loading initrd from the LINUX_EFI_INITRD_MEDIA_GUID device path,
+ * - Loading/starting the kernel from firmware that targets a different
+ *   machine type, via the entrypoint exposed in the .compat PE/COFF section.
+ *
+ * The recommended way of loading and starting v1.0 or later kernels is to use
+ * the LoadImage() and StartImage() EFI boot services, and expose the initrd
+ * via the LINUX_EFI_INITRD_MEDIA_GUID device path.
+ *
+ * Versions older than v1.0 support initrd loading via the image load options
+ * (using initrd=, limited to the volume from which the kernel itself was
+ * loaded), or via arch specific means (bootparams, DT, etc).
+ *
+ * On x86, LoadImage() and StartImage() can be omitted if the EFI handover
+ * protocol is implemented, which can be inferred from the version,
+ * handover_offset and xloadflags fields in the bootparams structure.
+ */
+#define LINUX_EFISTUB_MAJOR_VERSION 0x1
+#define LINUX_EFISTUB_MINOR_VERSION 0x0
+
+#define MZ_MAGIC 0x5a4d /* "MZ" */
+
+#define PE_MAGIC              0x00004550 /* "PE\0\0" */
+#define PE_OPT_MAGIC_PE32     0x010b
+#define PE_OPT_MAGIC_PE32_ROM 0x0107
+#define PE_OPT_MAGIC_PE32PLUS 0x020b
+
+/* machine type */
+#define IMAGE_FILE_MACHINE_UNKNOWN   0x0000
+#define IMAGE_FILE_MACHINE_AM33      0x01d3
+#define IMAGE_FILE_MACHINE_AMD64     0x8664
+#define IMAGE_FILE_MACHINE_ARM       0x01c0
+#define IMAGE_FILE_MACHINE_ARMV7     0x01c4
+#define IMAGE_FILE_MACHINE_ARM64     0xaa64
+#define IMAGE_FILE_MACHINE_EBC       0x0ebc
+#define IMAGE_FILE_MACHINE_I386      0x014c
+#define IMAGE_FILE_MACHINE_IA64      0x0200
+#define IMAGE_FILE_MACHINE_M32R      0x9041
+#define IMAGE_FILE_MACHINE_MIPS16    0x0266
+#define IMAGE_FILE_MACHINE_MIPSFPU   0x0366
+#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
+#define IMAGE_FILE_MACHINE_POWERPC   0x01f0
+#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1
+#define IMAGE_FILE_MACHINE_R4000     0x0166
+#define IMAGE_FILE_MACHINE_RISCV32   0x5032
+#define IMAGE_FILE_MACHINE_RISCV64   0x5064
+#define IMAGE_FILE_MACHINE_RISCV128  0x5128
+#define IMAGE_FILE_MACHINE_SH3       0x01a2
+#define IMAGE_FILE_MACHINE_SH3DSP    0x01a3
+#define IMAGE_FILE_MACHINE_SH3E      0x01a4
+#define IMAGE_FILE_MACHINE_SH4       0x01a6
+#define IMAGE_FILE_MACHINE_SH5       0x01a8
+#define IMAGE_FILE_MACHINE_THUMB     0x01c2
+#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
+
+/* flags */
+#define IMAGE_FILE_RELOCS_STRIPPED         0x0001
+#define IMAGE_FILE_EXECUTABLE_IMAGE        0x0002
+#define IMAGE_FILE_LINE_NUMS_STRIPPED      0x0004
+#define IMAGE_FILE_LOCAL_SYMS_STRIPPED     0x0008
+#define IMAGE_FILE_AGGRESSIVE_WS_TRIM      0x0010
+#define IMAGE_FILE_LARGE_ADDRESS_AWARE     0x0020
+#define IMAGE_FILE_16BIT_MACHINE           0x0040
+#define IMAGE_FILE_BYTES_REVERSED_LO       0x0080
+#define IMAGE_FILE_32BIT_MACHINE           0x0100
+#define IMAGE_FILE_DEBUG_STRIPPED          0x0200
+#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
+#define IMAGE_FILE_NET_RUN_FROM_SWAP       0x0800
+#define IMAGE_FILE_SYSTEM                  0x1000
+#define IMAGE_FILE_DLL                     0x2000
+#define IMAGE_FILE_UP_SYSTEM_ONLY          0x4000
+#define IMAGE_FILE_BYTES_REVERSED_HI       0x8000
+
+#define IMAGE_FILE_OPT_ROM_MAGIC       0x107
+#define IMAGE_FILE_OPT_PE32_MAGIC      0x10b
+#define IMAGE_FILE_OPT_PE32_PLUS_MAGIC 0x20b
+
+#define IMAGE_SUBSYSTEM_UNKNOWN                 0
+#define IMAGE_SUBSYSTEM_NATIVE                  1
+#define IMAGE_SUBSYSTEM_WINDOWS_GUI             2
+#define IMAGE_SUBSYSTEM_WINDOWS_CUI             3
+#define IMAGE_SUBSYSTEM_POSIX_CUI               7
+#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI          9
+#define IMAGE_SUBSYSTEM_EFI_APPLICATION         10
+#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
+#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
+#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE           13
+#define IMAGE_SUBSYSTEM_XBOX                    14
+
+#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         0x0040
+#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      0x0080
+#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            0x0100
+#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          0x0200
+#define IMAGE_DLLCHARACTERISTICS_NO_SEH                0x0400
+#define IMAGE_DLLCHARACTERISTICS_NO_BIND               0x0800
+#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            0x2000
+#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
+
+/* they actually defined 0x00000000 as well, but I think we'll skip that one. */
+#define IMAGE_SCN_RESERVED_0             0x00000001
+#define IMAGE_SCN_RESERVED_1             0x00000002
+#define IMAGE_SCN_RESERVED_2             0x00000004
+#define IMAGE_SCN_TYPE_NO_PAD            0x00000008 /* don't pad - obsolete */
+#define IMAGE_SCN_RESERVED_3             0x00000010
+#define IMAGE_SCN_CNT_CODE               0x00000020 /* .text */
+#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040 /* .data */
+#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* .bss */
+#define IMAGE_SCN_LNK_OTHER              0x00000100 /* reserved */
+#define IMAGE_SCN_LNK_INFO               0x00000200 /* .drectve comments */
+#define IMAGE_SCN_RESERVED_4             0x00000400
+#define IMAGE_SCN_LNK_REMOVE             0x00000800 /* .o only - scn to be rm'd*/
+#define IMAGE_SCN_LNK_COMDAT             0x00001000 /* .o only - COMDAT data */
+#define IMAGE_SCN_RESERVED_5             0x00002000 /* spec omits this */
+#define IMAGE_SCN_RESERVED_6             0x00004000 /* spec omits this */
+#define IMAGE_SCN_GPREL                  0x00008000 /* global pointer referenced data */
+/* spec lists 0x20000 twice, I suspect they meant 0x10000 for one of them */
+#define IMAGE_SCN_MEM_PURGEABLE 0x00010000 /* reserved for "future" use */
+#define IMAGE_SCN_16BIT         0x00020000 /* reserved for "future" use */
+#define IMAGE_SCN_LOCKED        0x00040000 /* reserved for "future" use */
+#define IMAGE_SCN_PRELOAD       0x00080000 /* reserved for "future" use */
+/* and here they just stuck a 1-byte integer in the middle of a bitfield */
+#define IMAGE_SCN_ALIGN_1BYTES    0x00100000 /* it does what it says on the box */
+#define IMAGE_SCN_ALIGN_2BYTES    0x00200000
+#define IMAGE_SCN_ALIGN_4BYTES    0x00300000
+#define IMAGE_SCN_ALIGN_8BYTES    0x00400000
+#define IMAGE_SCN_ALIGN_16BYTES   0x00500000
+#define IMAGE_SCN_ALIGN_32BYTES   0x00600000
+#define IMAGE_SCN_ALIGN_64BYTES   0x00700000
+#define IMAGE_SCN_ALIGN_128BYTES  0x00800000
+#define IMAGE_SCN_ALIGN_256BYTES  0x00900000
+#define IMAGE_SCN_ALIGN_512BYTES  0x00a00000
+#define IMAGE_SCN_ALIGN_1024BYTES 0x00b00000
+#define IMAGE_SCN_ALIGN_2048BYTES 0x00c00000
+#define IMAGE_SCN_ALIGN_4096BYTES 0x00d00000
+#define IMAGE_SCN_ALIGN_8192BYTES 0x00e00000
+#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* extended relocations */
+#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 /* scn can be discarded */
+#define IMAGE_SCN_MEM_NOT_CACHED  0x04000000 /* cannot be cached */
+#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000 /* not pageable */
+#define IMAGE_SCN_MEM_SHARED      0x10000000 /* can be shared */
+#define IMAGE_SCN_MEM_EXECUTE     0x20000000 /* can be executed as code */
+#define IMAGE_SCN_MEM_READ        0x40000000 /* readable */
+#define IMAGE_SCN_MEM_WRITE       0x80000000 /* writeable */
+
+#define IMAGE_DEBUG_TYPE_CODEVIEW 2
+
+#ifndef __ASSEMBLY__
+
+struct mz_hdr {
+    uint16_t magic;              /* MZ_MAGIC */
+    uint16_t lbsize;             /* size of last used block */
+    uint16_t blocks;             /* pages in file, 0x3 */
+    uint16_t relocs;             /* relocations */
+    uint16_t hdrsize;            /* header size in "paragraphs" */
+    uint16_t min_extra_pps;      /* .bss */
+    uint16_t max_extra_pps;      /* runtime limit for the arena size */
+    uint16_t ss;                 /* relative stack segment */
+    uint16_t sp;                 /* initial %sp register */
+    uint16_t checksum;           /* word checksum */
+    uint16_t ip;                 /* initial %ip register */
+    uint16_t cs;                 /* initial %cs relative to load segment */
+    uint16_t reloc_table_offset; /* offset of the first relocation */
+    uint16_t overlay_num;        /* overlay number.  set to 0. */
+    uint16_t reserved0[4];       /* reserved */
+    uint16_t oem_id;             /* oem identifier */
+    uint16_t oem_info;           /* oem specific */
+    uint16_t reserved1[10];      /* reserved */
+    uint32_t peaddr;             /* address of pe header */
+    char     message[];          /* message to print */
+};
+
+struct mz_reloc {
+    uint16_t offset;
+    uint16_t segment;
+};
+
+struct pe_hdr {
+    uint32_t magic;        /* PE magic */
+    uint16_t machine;      /* machine type */
+    uint16_t sections;     /* number of sections */
+    uint32_t timestamp;    /* time_t */
+    uint32_t symbol_table; /* symbol table offset */
+    uint32_t symbols;      /* number of symbols */
+    uint16_t opt_hdr_size; /* size of optional header */
+    uint16_t flags;        /* flags */
+};
+
+/* the fact that pe32 isn't padded where pe32+ is 64-bit means union won't
+ * work right.  vomit. */
+struct pe32_opt_hdr {
+    /* "standard" header */
+    uint16_t magic;       /* file type */
+    uint8_t  ld_major;    /* linker major version */
+    uint8_t  ld_minor;    /* linker minor version */
+    uint32_t text_size;   /* size of text section(s) */
+    uint32_t data_size;   /* size of data section(s) */
+    uint32_t bss_size;    /* size of bss section(s) */
+    uint32_t entry_point; /* file offset of entry point */
+    uint32_t code_base;   /* relative code addr in ram */
+    uint32_t data_base;   /* relative data addr in ram */
+    /* "windows" header */
+    uint32_t image_base;     /* preferred load address */
+    uint32_t section_align;  /* alignment in bytes */
+    uint32_t file_align;     /* file alignment in bytes */
+    uint16_t os_major;       /* major OS version */
+    uint16_t os_minor;       /* minor OS version */
+    uint16_t image_major;    /* major image version */
+    uint16_t image_minor;    /* minor image version */
+    uint16_t subsys_major;   /* major subsystem version */
+    uint16_t subsys_minor;   /* minor subsystem version */
+    uint32_t win32_version;  /* reserved, must be 0 */
+    uint32_t image_size;     /* image size */
+    uint32_t header_size;    /* header size rounded up to
+                   file_align */
+    uint32_t csum;           /* checksum */
+    uint16_t subsys;         /* subsystem */
+    uint16_t dll_flags;      /* more flags! */
+    uint32_t stack_size_req; /* amt of stack requested */
+    uint32_t stack_size;     /* amt of stack required */
+    uint32_t heap_size_req;  /* amt of heap requested */
+    uint32_t heap_size;      /* amt of heap required */
+    uint32_t loader_flags;   /* reserved, must be 0 */
+    uint32_t data_dirs;      /* number of data dir entries */
+};
+
+struct pe32plus_opt_hdr {
+    uint16_t magic;       /* file type */
+    uint8_t  ld_major;    /* linker major version */
+    uint8_t  ld_minor;    /* linker minor version */
+    uint32_t text_size;   /* size of text section(s) */
+    uint32_t data_size;   /* size of data section(s) */
+    uint32_t bss_size;    /* size of bss section(s) */
+    uint32_t entry_point; /* file offset of entry point */
+    uint32_t code_base;   /* relative code addr in ram */
+    /* "windows" header */
+    uint64_t image_base;     /* preferred load address */
+    uint32_t section_align;  /* alignment in bytes */
+    uint32_t file_align;     /* file alignment in bytes */
+    uint16_t os_major;       /* major OS version */
+    uint16_t os_minor;       /* minor OS version */
+    uint16_t image_major;    /* major image version */
+    uint16_t image_minor;    /* minor image version */
+    uint16_t subsys_major;   /* major subsystem version */
+    uint16_t subsys_minor;   /* minor subsystem version */
+    uint32_t win32_version;  /* reserved, must be 0 */
+    uint32_t image_size;     /* image size */
+    uint32_t header_size;    /* header size rounded up to
+                   file_align */
+    uint32_t csum;           /* checksum */
+    uint16_t subsys;         /* subsystem */
+    uint16_t dll_flags;      /* more flags! */
+    uint64_t stack_size_req; /* amt of stack requested */
+    uint64_t stack_size;     /* amt of stack required */
+    uint64_t heap_size_req;  /* amt of heap requested */
+    uint64_t heap_size;      /* amt of heap required */
+    uint32_t loader_flags;   /* reserved, must be 0 */
+    uint32_t data_dirs;      /* number of data dir entries */
+};
+
+struct data_dirent {
+    uint32_t virtual_address; /* relative to load address */
+    uint32_t size;
+};
+
+struct data_directory {
+    struct data_dirent exports;          /* .edata */
+    struct data_dirent imports;          /* .idata */
+    struct data_dirent resources;        /* .rsrc */
+    struct data_dirent exceptions;       /* .pdata */
+    struct data_dirent certs;            /* certs */
+    struct data_dirent base_relocations; /* .reloc */
+    struct data_dirent debug;            /* .debug */
+    struct data_dirent arch;             /* reservered */
+    struct data_dirent global_ptr;       /* global pointer reg. Size=0 */
+    struct data_dirent tls;              /* .tls */
+    struct data_dirent load_config;      /* load configuration structure */
+    struct data_dirent bound_imports;    /* no idea */
+    struct data_dirent import_addrs;     /* import address table */
+    struct data_dirent delay_imports;    /* delay-load import table */
+    struct data_dirent clr_runtime_hdr;  /* .cor (object only) */
+    struct data_dirent reserved;
+};
+
+struct section_header {
+    char     name[8];         /* name or "/12\0" string tbl offset */
+    uint32_t virtual_size;    /* size of loaded section in ram */
+    uint32_t virtual_address; /* relative virtual address */
+    uint32_t raw_data_size;   /* size of the section */
+    uint32_t data_addr;       /* file pointer to first page of sec */
+    uint32_t relocs;          /* file pointer to relocation entries */
+    uint32_t line_numbers;    /* line numbers! */
+    uint16_t num_relocs;      /* number of relocations */
+    uint16_t num_lin_numbers; /* srsly. */
+    uint32_t flags;
+};
+
+enum x64_coff_reloc_type {
+    IMAGE_REL_AMD64_ABSOLUTE = 0,
+    IMAGE_REL_AMD64_ADDR64,
+    IMAGE_REL_AMD64_ADDR32,
+    IMAGE_REL_AMD64_ADDR32N,
+    IMAGE_REL_AMD64_REL32,
+    IMAGE_REL_AMD64_REL32_1,
+    IMAGE_REL_AMD64_REL32_2,
+    IMAGE_REL_AMD64_REL32_3,
+    IMAGE_REL_AMD64_REL32_4,
+    IMAGE_REL_AMD64_REL32_5,
+    IMAGE_REL_AMD64_SECTION,
+    IMAGE_REL_AMD64_SECREL,
+    IMAGE_REL_AMD64_SECREL7,
+    IMAGE_REL_AMD64_TOKEN,
+    IMAGE_REL_AMD64_SREL32,
+    IMAGE_REL_AMD64_PAIR,
+    IMAGE_REL_AMD64_SSPAN32,
+};
+
+enum arm_coff_reloc_type {
+    IMAGE_REL_ARM_ABSOLUTE,
+    IMAGE_REL_ARM_ADDR32,
+    IMAGE_REL_ARM_ADDR32N,
+    IMAGE_REL_ARM_BRANCH2,
+    IMAGE_REL_ARM_BRANCH1,
+    IMAGE_REL_ARM_SECTION,
+    IMAGE_REL_ARM_SECREL,
+};
+
+enum sh_coff_reloc_type {
+    IMAGE_REL_SH3_ABSOLUTE,
+    IMAGE_REL_SH3_DIRECT16,
+    IMAGE_REL_SH3_DIRECT32,
+    IMAGE_REL_SH3_DIRECT8,
+    IMAGE_REL_SH3_DIRECT8_WORD,
+    IMAGE_REL_SH3_DIRECT8_LONG,
+    IMAGE_REL_SH3_DIRECT4,
+    IMAGE_REL_SH3_DIRECT4_WORD,
+    IMAGE_REL_SH3_DIRECT4_LONG,
+    IMAGE_REL_SH3_PCREL8_WORD,
+    IMAGE_REL_SH3_PCREL8_LONG,
+    IMAGE_REL_SH3_PCREL12_WORD,
+    IMAGE_REL_SH3_STARTOF_SECTION,
+    IMAGE_REL_SH3_SIZEOF_SECTION,
+    IMAGE_REL_SH3_SECTION,
+    IMAGE_REL_SH3_SECREL,
+    IMAGE_REL_SH3_DIRECT32_NB,
+    IMAGE_REL_SH3_GPREL4_LONG,
+    IMAGE_REL_SH3_TOKEN,
+    IMAGE_REL_SHM_PCRELPT,
+    IMAGE_REL_SHM_REFLO,
+    IMAGE_REL_SHM_REFHALF,
+    IMAGE_REL_SHM_RELLO,
+    IMAGE_REL_SHM_RELHALF,
+    IMAGE_REL_SHM_PAIR,
+    IMAGE_REL_SHM_NOMODE,
+};
+
+enum ppc_coff_reloc_type {
+    IMAGE_REL_PPC_ABSOLUTE,
+    IMAGE_REL_PPC_ADDR64,
+    IMAGE_REL_PPC_ADDR32,
+    IMAGE_REL_PPC_ADDR24,
+    IMAGE_REL_PPC_ADDR16,
+    IMAGE_REL_PPC_ADDR14,
+    IMAGE_REL_PPC_REL24,
+    IMAGE_REL_PPC_REL14,
+    IMAGE_REL_PPC_ADDR32N,
+    IMAGE_REL_PPC_SECREL,
+    IMAGE_REL_PPC_SECTION,
+    IMAGE_REL_PPC_SECREL16,
+    IMAGE_REL_PPC_REFHI,
+    IMAGE_REL_PPC_REFLO,
+    IMAGE_REL_PPC_PAIR,
+    IMAGE_REL_PPC_SECRELLO,
+    IMAGE_REL_PPC_GPREL,
+    IMAGE_REL_PPC_TOKEN,
+};
+
+enum x86_coff_reloc_type {
+    IMAGE_REL_I386_ABSOLUTE,
+    IMAGE_REL_I386_DIR16,
+    IMAGE_REL_I386_REL16,
+    IMAGE_REL_I386_DIR32,
+    IMAGE_REL_I386_DIR32NB,
+    IMAGE_REL_I386_SEG12,
+    IMAGE_REL_I386_SECTION,
+    IMAGE_REL_I386_SECREL,
+    IMAGE_REL_I386_TOKEN,
+    IMAGE_REL_I386_SECREL7,
+    IMAGE_REL_I386_REL32,
+};
+
+enum ia64_coff_reloc_type {
+    IMAGE_REL_IA64_ABSOLUTE,
+    IMAGE_REL_IA64_IMM14,
+    IMAGE_REL_IA64_IMM22,
+    IMAGE_REL_IA64_IMM64,
+    IMAGE_REL_IA64_DIR32,
+    IMAGE_REL_IA64_DIR64,
+    IMAGE_REL_IA64_PCREL21B,
+    IMAGE_REL_IA64_PCREL21M,
+    IMAGE_REL_IA64_PCREL21F,
+    IMAGE_REL_IA64_GPREL22,
+    IMAGE_REL_IA64_LTOFF22,
+    IMAGE_REL_IA64_SECTION,
+    IMAGE_REL_IA64_SECREL22,
+    IMAGE_REL_IA64_SECREL64I,
+    IMAGE_REL_IA64_SECREL32,
+    IMAGE_REL_IA64_DIR32NB,
+    IMAGE_REL_IA64_SREL14,
+    IMAGE_REL_IA64_SREL22,
+    IMAGE_REL_IA64_SREL32,
+    IMAGE_REL_IA64_UREL32,
+    IMAGE_REL_IA64_PCREL60X,
+    IMAGE_REL_IA64_PCREL60B,
+    IMAGE_REL_IA64_PCREL60F,
+    IMAGE_REL_IA64_PCREL60I,
+    IMAGE_REL_IA64_PCREL60M,
+    IMAGE_REL_IA64_IMMGPREL6,
+    IMAGE_REL_IA64_TOKEN,
+    IMAGE_REL_IA64_GPREL32,
+    IMAGE_REL_IA64_ADDEND,
+};
+
+struct coff_reloc {
+    uint32_t virtual_address;
+    uint32_t symbol_table_index;
+
+    union {
+        enum x64_coff_reloc_type  x64_type;
+        enum arm_coff_reloc_type  arm_type;
+        enum sh_coff_reloc_type   sh_type;
+        enum ppc_coff_reloc_type  ppc_type;
+        enum x86_coff_reloc_type  x86_type;
+        enum ia64_coff_reloc_type ia64_type;
+        uint16_t                  data;
+    };
+};
+
+/*
+ * Definitions for the contents of the certs data block
+ */
+#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002
+#define WIN_CERT_TYPE_EFI_OKCS115      0x0EF0
+#define WIN_CERT_TYPE_EFI_GUID         0x0EF1
+
+#define WIN_CERT_REVISION_1_0 0x0100
+#define WIN_CERT_REVISION_2_0 0x0200
+
+struct win_certificate {
+    uint32_t length;
+    uint16_t revision;
+    uint16_t cert_type;
+};
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __PE_H */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 19:48:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 19:48:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752652.1160856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOjTf-0001VE-CN; Tue, 02 Jul 2024 19:47:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752652.1160856; Tue, 02 Jul 2024 19:47:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOjTf-0001V7-8t; Tue, 02 Jul 2024 19:47:47 +0000
Received: by outflank-mailman (input) for mailman id 752652;
 Tue, 02 Jul 2024 19:47:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOjTd-0001Ux-Hn; Tue, 02 Jul 2024 19:47:45 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOjTd-0006qN-DO; Tue, 02 Jul 2024 19:47:45 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOjTd-0004wL-0j; Tue, 02 Jul 2024 19:47:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOjTd-0006bP-0L; Tue, 02 Jul 2024 19:47: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ygQEzYvvPnQAlUkg5dlOJktSB1N4K4T6BMQTcZ5ugbk=; b=dCpPfRGP48nLpji7N2Pu+lpZra
	CKsT7t6ZXIEg8qlYokZ5U0v1N6M22SU/GAO6Ivy3pP6sWZL32sygPEAACwuzYsMbngzduumbmGiyF
	ieKVQLde+U+UleV93ZP4xLmVvu9hABz8S6muu7lZCL2c0mkv1CxFzyrFbHmeG/Foi2Is=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186628-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186628: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b
X-Osstest-Versions-That:
    xen=4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 02 Jul 2024 19:47:45 +0000

flight 186628 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186628/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186622
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186622
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186622
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186622
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186622
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186622
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b
baseline version:
 xen                  4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b

Last test of basis   186628  2024-07-02 07:30:04 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Tue Jul 02 20:21:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 02 Jul 2024 20:21:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752660.1160866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOk07-0006R4-Qq; Tue, 02 Jul 2024 20:21:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752660.1160866; Tue, 02 Jul 2024 20: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 1sOk07-0006Qx-OK; Tue, 02 Jul 2024 20:21:19 +0000
Received: by outflank-mailman (input) for mailman id 752660;
 Tue, 02 Jul 2024 20:21: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=a6qz=OC=redhat.com=mst@srs-se1.protection.inumbo.net>)
 id 1sOk06-0006QX-1Z
 for xen-devel@lists.xenproject.org; Tue, 02 Jul 2024 20:21:18 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a197e419-38b0-11ef-aaf1-7f3abd7486c0;
 Tue, 02 Jul 2024 22:21:15 +0200 (CEST)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-328-zpPOJ6xQMhOE5Nc8ILKk8Q-1; Tue, 02 Jul 2024 16:21:13 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 5b1f17b1804b1-4256809ae27so30274595e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 13:21:13 -0700 (PDT)
Received: from redhat.com ([2a02:14f:1f5:eadd:8c31:db01:9d01:7604])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4257fb4fabdsm118041955e9.46.2024.07.02.13.21.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 13: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: a197e419-38b0-11ef-aaf1-7f3abd7486c0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1719951674;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=bN0cTm8m+n/A4V5Tgbpm0TUAfWebEt6LcyWQbTcpz4g=;
	b=cSr/w1GatYXhJFSXjqzY4SkxA7sI3RlElXs0bjID/oN4/5UoAbljBwnA+9BjromK6M8+90
	8y7jeGQfp9CxfP48Fj+NJx4aIg6vjnmoOqshcun8BgI92RXcywVYzBeIzHsOjr33yMLhkG
	EQPGv5dOAaXPwk4ef01rTotuBJnSWhc=
X-MC-Unique: zpPOJ6xQMhOE5Nc8ILKk8Q-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719951672; x=1720556472;
        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=bN0cTm8m+n/A4V5Tgbpm0TUAfWebEt6LcyWQbTcpz4g=;
        b=nN4D3ya9+/qETmDSqsKDbX2UdYFzko95nQYmR7dt7KpxsLMqjdMs1EA19moDh4MVKt
         BW6g+/CD/GJlDVL6K3PS0CeLajt2wFQ7itDcNchJldCCXaD/tdWHy2XBEL0y4fqzC8Lq
         v1ERsfAM9yhKLnIeSEgkeYV6HpKm43SLdPniYB5ukj5T4KhLfj0WHkWWdAOlISerbiXM
         1FrPmCaRAksAN6PsleBTGeA/0SdMnf34ac5QrZdm52jrCYeR4eLmEloz3YoQv1T1VIlI
         w2j/X0UGipSxuSOOYE4E+JT24XN/XQalUYI3J3XUHi63Tm4igNKQLQhme/OoWS9tbVZp
         S7pQ==
X-Forwarded-Encrypted: i=1; AJvYcCXp72C4HP9UCCxmIgwlfH58mgL6uKprudGgC4NTsq1vduFVOcIxN5C2dZcgBpjmhbNq8kqZ9/VxUKHsnedhxQXPm7ox9Q1E4mECbU6Yt/c=
X-Gm-Message-State: AOJu0YzqLJ+97aCSiu4hF5k7V9OT5ZuBjwsQFGw1dFMdq4R0D4OYE8lZ
	uAhrMKV0bGSQtdbtIRuOmlRPSxpz48T5070SytRPatUqFZ64DqR+fmtJ++FP9zZgaxAFrrs2LE+
	Rr0o9MW5MOjX5ZpPXi/U+xERRBwcDHNeFkgj4AJ+L9FMpgbsvQvY86keuPT9dC5vn
X-Received: by 2002:a7b:c458:0:b0:424:a2d9:67c5 with SMTP id 5b1f17b1804b1-4257a02b78emr66004435e9.16.1719951672116;
        Tue, 02 Jul 2024 13:21:12 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IEnSmGzWNyqHAWJCiaHjOD7gy47xRmHiiMjxtp0t7enIiEWnVy98KL0ZlXTqzKa+H5HjHidjQ==
X-Received: by 2002:a7b:c458:0:b0:424:a2d9:67c5 with SMTP id 5b1f17b1804b1-4257a02b78emr66004285e9.16.1719951671589;
        Tue, 02 Jul 2024 13:21:11 -0700 (PDT)
Date: Tue, 2 Jul 2024 16:21:03 -0400
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Akihiko Odaki <akihiko.odaki@daynix.com>,
	Markus Armbruster <armbru@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Subject: [PULL v2 88/88] hw/pci: Replace -1 with UINT32_MAX for romsize
Message-ID: <29e45afd8d6abf7a67dab5db0ab1cfbc388daefe.1719951168.git.mst@redhat.com>
References: <cover.1719951168.git.mst@redhat.com>
MIME-Version: 1.0
In-Reply-To: <cover.1719951168.git.mst@redhat.com>
X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1
X-Mutt-Fcc: =sent
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

From: Akihiko Odaki <akihiko.odaki@daynix.com>

romsize is an uint32_t variable. Specifying -1 as an uint32_t value is
obscure way to denote UINT32_MAX.

Worse, if int is wider than 32-bit, it will change the behavior of a
construct like the following:
romsize = -1;
if (romsize != -1) {
    ...
}

When -1 is assigned to romsize, -1 will be implicitly casted into
uint32_t, resulting in UINT32_MAX. On contrary, when evaluating
romsize != -1, romsize will be casted into int, and it will be a
comparison of UINT32_MAX and -1, and result in false.

Replace -1 with UINT32_MAX for statements involving the variable to
clarify the intent and prevent potential breakage.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20240627-reuse-v10-10-7ca0b8ed3d9f@daynix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/pci/pci.c             | 8 ++++----
 hw/xen/xen_pt_load_rom.c | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index fa85f87b1c..4c7be52951 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -70,7 +70,7 @@ static bool pcie_has_upstream_port(PCIDevice *dev);
 static Property pci_props[] = {
     DEFINE_PROP_PCI_DEVFN("addr", PCIDevice, devfn, -1),
     DEFINE_PROP_STRING("romfile", PCIDevice, romfile),
-    DEFINE_PROP_UINT32("romsize", PCIDevice, romsize, -1),
+    DEFINE_PROP_UINT32("romsize", PCIDevice, romsize, UINT32_MAX),
     DEFINE_PROP_UINT32("rombar",  PCIDevice, rom_bar, 1),
     DEFINE_PROP_BIT("multifunction", PCIDevice, cap_present,
                     QEMU_PCI_CAP_MULTIFUNCTION_BITNR, false),
@@ -2073,7 +2073,7 @@ static void pci_qdev_realize(DeviceState *qdev, Error **errp)
                                  g_cmp_uint32, NULL);
     }
 
-    if (pci_dev->romsize != -1 && !is_power_of_2(pci_dev->romsize)) {
+    if (pci_dev->romsize != UINT32_MAX && !is_power_of_2(pci_dev->romsize)) {
         error_setg(errp, "ROM size %u is not a power of two", pci_dev->romsize);
         return;
     }
@@ -2359,7 +2359,7 @@ static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom,
         return;
     }
 
-    if (load_file || pdev->romsize == -1) {
+    if (load_file || pdev->romsize == UINT32_MAX) {
         path = qemu_find_file(QEMU_FILE_TYPE_BIOS, pdev->romfile);
         if (path == NULL) {
             path = g_strdup(pdev->romfile);
@@ -2378,7 +2378,7 @@ static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom,
                        pdev->romfile);
             return;
         }
-        if (pdev->romsize != -1) {
+        if (pdev->romsize != UINT_MAX) {
             if (size > pdev->romsize) {
                 error_setg(errp, "romfile \"%s\" (%u bytes) "
                            "is too large for ROM size %u",
diff --git a/hw/xen/xen_pt_load_rom.c b/hw/xen/xen_pt_load_rom.c
index 03422a8a71..6bc64acd33 100644
--- a/hw/xen/xen_pt_load_rom.c
+++ b/hw/xen/xen_pt_load_rom.c
@@ -53,7 +53,7 @@ void *pci_assign_dev_load_option_rom(PCIDevice *dev,
     }
     fseek(fp, 0, SEEK_SET);
 
-    if (dev->romsize != -1) {
+    if (dev->romsize != UINT_MAX) {
         if (st.st_size > dev->romsize) {
             error_report("ROM BAR \"%s\" (%ld bytes) is too large for ROM size %u",
                          rom_file, (long) st.st_size, dev->romsize);
-- 
MST



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 00:06:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 00:06:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752678.1160876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOnVJ-00065b-At; Wed, 03 Jul 2024 00:05:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752678.1160876; Wed, 03 Jul 2024 00:05: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 1sOnVJ-00065U-79; Wed, 03 Jul 2024 00:05:45 +0000
Received: by outflank-mailman (input) for mailman id 752678;
 Wed, 03 Jul 2024 00:05: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=TM78=OD=gmail.com=milandjokic1995@srs-se1.protection.inumbo.net>)
 id 1sOnVH-00065O-F3
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 00:05:43 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fc11a12b-38cf-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 02:05:41 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-58b3fee65d8so1908819a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 02 Jul 2024 17:05:41 -0700 (PDT)
Received: from Xen-host.myguest.virtualbox.org ([89.216.37.146])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72aaf58cc0sm458535666b.47.2024.07.02.17.05.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 02 Jul 2024 17:05: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: fc11a12b-38cf-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719965140; x=1720569940; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6WNgodCAII7HiRsiU65qxSm/VeVdZnfB2Aq4uZkghcE=;
        b=QfrN5EmUX9kF24JFiZO6ko4nS1yLmISMUWOtonExVeTzysDEGkfVSNEC8IZ45UiL6q
         WZOovODPHQ9sMYQvACGbMzStp6Yfwm4Q1kNh3x15UY2jeFUNLH6Wj/h/qOGNl9ZrTFku
         KTah1C2KsjgUUyzF5PpvLYRWhIN9RKgKbskOsaNj7ewDIoKKTxEVeOMjjb44Z3NUjVoS
         MWDE3S4eCFm5NBBlIVpLV5vrlTTWm8091KqwadNgJk8NeHOeF3ScD3KWluYQdyf+Y0W5
         T1uy7s3isK8xgGFq2g04iWbufRx42beovFE6NxcxzWK9vt/i8St6j/Ib6xbWbuNuI6Ae
         GP1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719965140; x=1720569940;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=6WNgodCAII7HiRsiU65qxSm/VeVdZnfB2Aq4uZkghcE=;
        b=ehQP3yFywH3POHfNVKb0sew6b2kqYKP2aQpmqz9EtdgZ6Ae0dtXtWSCiyi9xBXb+/g
         ApZlpgaKH7xSjYZmY8BDyC26ogR6HcwOQILHmF9lC4+V6kZHsC7TvdpgyrZOtIUvTGjl
         2L0BjtiUfCOktCpmgaJ2fPik8sjhyQHj12V6o4g0iO17djNefQBWCnpy4srAA9MvJKwz
         OIGT7vO2IRLmjgldAU9bE5338rIWy4pVsvEi/IL3qa3kUXf9zkMwfBsVBfsDMxbzBAhx
         vY8htjGonK82EbSNTvvO+MCBPMHhI9LdvoaqyezCAjExUdyAWmLLyYOO9s4Ei1Et4SyJ
         IRRw==
X-Gm-Message-State: AOJu0Yw9H6ViJEurHVX3W5kQmlgXrKoPhdMJSlBh489tv3H6kZ+i4HnN
	/3XeY92df1YsMUbVJiOKp61saFX1KoHEwmbHVrW7qwb+BQK88NqgvWukV+2Z
X-Google-Smtp-Source: AGHT+IGnyegKOnsVxaysW422iRGuVgNZtwGSHz+yvt9UoXFAeE4/BSePsT+inq6CtE5wJCkqRG2SKQ==
X-Received: by 2002:a17:906:b858:b0:a72:6416:5cba with SMTP id a640c23a62f3a-a7514438b2emr605895966b.19.1719965139861;
        Tue, 02 Jul 2024 17:05:39 -0700 (PDT)
From: Milan Djokic <milandjokic1995@gmail.com>
X-Google-Original-From: Milan Djokic <milan.djokic@rt-rk.com>
To: xen-devel@lists.xenproject.org
Cc: milan.djokic@rt-rk.com,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Nikola Jelic <nikola.jelic@rt-rk.com>
Subject: [PATCH v4] xen/riscv: PE/COFF image header for RISC-V target
Date: Wed,  3 Jul 2024 02:04:38 +0200
Message-Id: <21a1bbe9308b72eac6d218235f5211c7a1c90454.1719964980.git.milan.djokic@rt-rk.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <2bbb65fcda57f2609f0967f9050a91415059026c.1719942341.git.milan.djokic@rt-rk.com>
References: <2bbb65fcda57f2609f0967f9050a91415059026c.1719942341.git.milan.djokic@rt-rk.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Added riscv image header to enable boot from second stage bootloaders (e.g. uboot. Image header defined in riscv-image-header.h)
Additionally, RISC-V xen image is extended with PE/COFF headers, introducing EFI application format.
PE/COFF header is optionally included (with CONFIG_RISCV_EFI) so
both plain ELF and image with PE/COFF header can now be generated as build artifacts.
Note that this patch represents initial EFI application format support (image
contains EFI application header embeded into binary when CONFIG_RISCV_EFI
is enabled). For full EFI application Xen support, boot/runtime services
and system table handling are yet to be implemented.

Tested on both QEMU and StarFive VisionFive 2 with OpenSBI->U-Boot->xen->dom0 boot chain.

Signed-off-by: Nikola Jelic <nikola.jelic@rt-rk.com>
Signed-off-by: Milan Djokic <milan.djokic@rt-rk.com>

---
Changes since v3:
  * pe.h structures clarification
---
Changes since v2:
  * Restructured EFI image headers - generic PE/COFF headers moved to xen/include/efi/pe.h, riscv image header left in arch specific dir (riscv/include/asm/riscv-image-header.h)
  * EFI PE/COFF header section moved to separate file (efi-header.S) and optionally included into image (head.S) if CONFIG_RISCV_EFI is enabled
  * Removed explicit usage of compressed (c.*) instructions where not necessary to avoid dependency on C extension.
  * Removed redundant parts of code which were originally taken over from linux kernel, but not used in this case
(data directories definition in optional PE header, _init_end_efi in linker script)
  * Removed nested code, explained pe header fields mapping and current EFI support status
  * Clarified riscv image header which is inserted into image regardless EFI option value (in order to support boot from second stage bootloaders for both ELF and EFI image format)
---
Changes since v1 (following review comments from Jan Beulich):
  * Fix coding style
  * Extended image header with all the necessary
    PE/COFF (EFI) fields (instead of only those used by U-boot)
  * Removed usage of deprecated types
---
 xen/arch/riscv/Kconfig                        |  10 +
 .../riscv/include/asm/riscv-image-header.h    |  57 +++
 xen/arch/riscv/riscv64/efi-header.S           |  99 ++++
 xen/arch/riscv/riscv64/head.S                 |  45 +-
 xen/arch/riscv/xen.lds.S                      |   3 +
 xen/include/efi/pe.h                          | 458 ++++++++++++++++++
 6 files changed, 670 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/riscv-image-header.h
 create mode 100644 xen/arch/riscv/riscv64/efi-header.S
 create mode 100644 xen/include/efi/pe.h

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index f382b36f6c..ec1e2b1386 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -9,6 +9,16 @@ config ARCH_DEFCONFIG
 	string
 	default "arch/riscv/configs/tiny64_defconfig"
 
+config RISCV_EFI
+	bool "UEFI boot service support"
+	depends on RISCV_64 && RISCV_ISA_C
+	help
+	  This option provides support for boot services through
+	  UEFI firmware. A UEFI stub is provided to allow Xen to
+	  be booted as an EFI application. Currently, only EFI PE/COFF application
+	  header is included into RISC-V image. Boot/Runtime services as part
+	  of EFI application stub are yet to be implemented.
+
 menu "Architecture Features"
 
 source "arch/Kconfig"
diff --git a/xen/arch/riscv/include/asm/riscv-image-header.h b/xen/arch/riscv/include/asm/riscv-image-header.h
new file mode 100644
index 0000000000..eebca47620
--- /dev/null
+++ b/xen/arch/riscv/include/asm/riscv-image-header.h
@@ -0,0 +1,57 @@
+#ifndef _ASM_RISCV_IMAGE_H
+#define _ASM_RISCV_IMAGE_H
+
+#define RISCV_IMAGE_MAGIC  "RISCV\0\0\0"
+#define RISCV_IMAGE_MAGIC2 "RSC\x05"
+
+#define RISCV_IMAGE_FLAG_BE_SHIFT 0
+
+#define RISCV_IMAGE_FLAG_LE 0
+#define RISCV_IMAGE_FLAG_BE 1
+
+#define __HEAD_FLAG_BE RISCV_IMAGE_FLAG_LE
+
+#define __HEAD_FLAG(field)                                                     \
+    (__HEAD_FLAG_##field << RISCV_IMAGE_FLAG_##field##_SHIFT)
+
+#define __HEAD_FLAGS (__HEAD_FLAG(BE))
+
+#define RISCV_HEADER_VERSION_MAJOR 0
+#define RISCV_HEADER_VERSION_MINOR 2
+
+#define RISCV_HEADER_VERSION                                                   \
+    (RISCV_HEADER_VERSION_MAJOR << 16 | RISCV_HEADER_VERSION_MINOR)
+
+#ifndef __ASSEMBLY__
+/**
+ * struct riscv_image_header - riscv image header
+ * @code0:      Executable code
+ * @code1:      Executable code
+ * @text_offset:    Image load offset (little endian)
+ * @image_size:     Effective Image size (little endian)
+ * @flags:      kernel flags (little endian)
+ * @version:    version
+ * @res1:       reserved
+ * @res2:       reserved
+ * @magic:      Magic number (RISC-V specific; deprecated)
+ * @magic2:     Magic number 2 (to match the ARM64 'magic' field pos)
+ * @res3:       reserved (will be used for PE COFF offset)
+ *
+ * The intention is for this header format to be shared between multiple
+ * architectures to avoid a proliferation of image header formats.
+ */
+struct riscv_image_header {
+    uint32_t code0;
+    uint32_t code1;
+    uint64_t text_offset;
+    uint64_t image_size;
+    uint64_t flags;
+    uint64_t version;
+    uint32_t res1;
+    uint64_t res2;
+    uint64_t magic;
+    uint32_t magic2;
+    uint32_t res3;
+};
+#endif /* __ASSEMBLY__ */
+#endif /* _ASM_RISCV_IMAGE_H */
diff --git a/xen/arch/riscv/riscv64/efi-header.S b/xen/arch/riscv/riscv64/efi-header.S
new file mode 100644
index 0000000000..87cd591a96
--- /dev/null
+++ b/xen/arch/riscv/riscv64/efi-header.S
@@ -0,0 +1,99 @@
+#include <efi/pe.h>
+#include <xen/sizes.h>
+
+        .macro __EFI_PE_HEADER
+        .long PE_MAGIC
+coff_header:
+#ifdef CONFIG_RISCV_64
+        .short  IMAGE_FILE_MACHINE_RISCV64              /* Machine */
+#else
+        .short  IMAGE_FILE_MACHINE_RISCV32              /* Machine */
+#endif
+        .short  section_count                           /* NumberOfSections */
+        .long   0                                       /* TimeDateStamp */
+        .long   0                                       /* PointerToSymbolTable */
+        .long   0                                       /* NumberOfSymbols */
+        .short  section_table - optional_header         /* SizeOfOptionalHeader */
+        .short  IMAGE_FILE_DEBUG_STRIPPED | \
+                IMAGE_FILE_EXECUTABLE_IMAGE | \
+                IMAGE_FILE_LINE_NUMS_STRIPPED           /* Characteristics */
+
+optional_header:
+#ifdef CONFIG_RISCV_64
+        .short  PE_OPT_MAGIC_PE32PLUS                   /* PE32+ format */
+#else
+        .short  PE_OPT_MAGIC_PE32                       /* PE32 format */
+#endif
+        .byte   0x02                                    /* MajorLinkerVersion */
+        .byte   0x14                                    /* MinorLinkerVersion */
+        .long   _end - xen_start                        /* SizeOfCode */
+        .long   0                                       /* SizeOfInitializedData */
+        .long   0                                       /* SizeOfUninitializedData */
+        .long   0                                       /* AddressOfEntryPoint */
+        .long   xen_start - _start                      /* BaseOfCode */
+#ifdef CONFIG_RISCV_32
+        .long  _end - _start                            /* BaseOfData */
+#endif
+
+extra_header_fields:
+        .quad   0                                       /* ImageBase */
+        .long   PECOFF_SECTION_ALIGNMENT                /* SectionAlignment */
+        .long   PECOFF_FILE_ALIGNMENT                   /* FileAlignment */
+        .short  0                                       /* MajorOperatingSystemVersion */
+        .short  0                                       /* MinorOperatingSystemVersion */
+        .short  LINUX_EFISTUB_MAJOR_VERSION             /* MajorImageVersion */
+        .short  LINUX_EFISTUB_MINOR_VERSION             /* MinorImageVersion */
+        .short  0                                       /* MajorSubsystemVersion */
+        .short  0                                       /* MinorSubsystemVersion */
+        .long   0                                       /* Win32VersionValue */
+        .long   _end - _start                           /* SizeOfImage */
+
+        /* Everything before the xen image is considered part of the header */
+        .long   xen_start - _start                      /* SizeOfHeaders */
+        .long   0                                       /* CheckSum */
+        .short  IMAGE_SUBSYSTEM_EFI_APPLICATION         /* Subsystem */
+        .short  0                                       /* DllCharacteristics */
+        .quad   0                                       /* SizeOfStackReserve */
+        .quad   0                                       /* SizeOfStackCommit */
+        .quad   0                                       /* SizeOfHeapReserve */
+        .quad   0                                       /* SizeOfHeapCommit */
+        .long   0                                       /* LoaderFlags */
+        .long   (section_table - .) / 8                 /* NumberOfRvaAndSizes */
+        /*
+         * Data directories are not used in this case, therefore not defined to reduce header size.
+         */
+
+        /* Section table */
+section_table:
+        /* Currently code/data sections are not used since EFI stub implementation is not yet finalized */
+        .ascii  ".text\0\0\0"
+        .long   0                                       /* VirtualSize */
+        .long   0                                       /* VirtualAddress */
+        .long   0                                       /* SizeOfRawData */
+        .long   0                                       /* PointerToRawData */
+        .long   0                                       /* PointerToRelocations */
+        .long   0                                       /* PointerToLineNumbers */
+        .short  0                                       /* NumberOfRelocations */
+        .short  0                                       /* NumberOfLineNumbers */
+        .long   IMAGE_SCN_CNT_CODE | \
+                IMAGE_SCN_MEM_READ | \
+                IMAGE_SCN_MEM_EXECUTE                   /* Characteristics */
+
+        .ascii  ".data\0\0\0"
+        .long   0                                       /* VirtualSize */
+        .long   0                                       /* VirtualAddress */
+        .long   0                                       /* SizeOfRawData */
+        .long   0                                       /* PointerToRawData */
+        .long   0                                       /* PointerToRelocations */
+        .long   0                                       /* PointerToLineNumbers */
+        .short  0                                       /* NumberOfRelocations */
+        .short  0                                       /* NumberOfLineNumbers */
+        .long   IMAGE_SCN_CNT_INITIALIZED_DATA | \
+                IMAGE_SCN_MEM_READ | \
+                IMAGE_SCN_MEM_WRITE                    /* Characteristics */
+
+        .set    section_count, (. - section_table) / 40
+
+        .balign  0x1000
+efi_header_end:
+        .endm
\ No newline at end of file
diff --git a/xen/arch/riscv/riscv64/head.S b/xen/arch/riscv/riscv64/head.S
index 3261e9fce8..5669e5df20 100644
--- a/xen/arch/riscv/riscv64/head.S
+++ b/xen/arch/riscv/riscv64/head.S
@@ -1,14 +1,54 @@
 #include <asm/asm.h>
 #include <asm/riscv_encoding.h>
+#include <asm/riscv-image-header.h>
+#ifdef CONFIG_RISCV_EFI
+#include "efi-header.S"
+#endif
 
         .section .text.header, "ax", %progbits
-
         /*
          * OpenSBI pass to start():
          *   a0 -> hart_id ( bootcpu_id )
-         *   a1 -> dtb_base 
+         *   a1 -> dtb_base
          */
 FUNC(start)
+/* Image header expected by second stage bootloaders (format defined in asm/riscv-image-header.h) */
+#ifdef CONFIG_RISCV_EFI
+        /*
+         * This instruction decodes to "MZ" ASCII required by UEFI.
+         */
+        c.li s4,-13
+        c.j xen_start
+#else
+        /* jump to start kernel */
+        jal xen_start
+#endif
+        .balign 8
+#ifdef CONFIG_RISCV_64
+        /* Image load offset(2MB) from start of RAM */
+        .quad 0x200000
+#else
+        /* Image load offset(4MB) from start of RAM */
+        .quad 0x400000
+#endif
+        .quad _end - _start              /* Effective Image size */
+        .quad __HEAD_FLAGS
+        .long RISCV_HEADER_VERSION
+        .long 0                          /* reserved */
+        .quad 0                          /* reserved */
+        .ascii RISCV_IMAGE_MAGIC         /* Magic number (RISC-V specific; deprecated) */
+        .balign 4
+        .ascii RISCV_IMAGE_MAGIC2        /* Magic number 2 (to match the ARM64 'magic' field pos) */
+#ifdef CONFIG_RISCV_EFI
+        .long pe_head_start - _start     /* reserved (PE COFF offset) */
+pe_head_start:
+
+        __EFI_PE_HEADER
+#else
+        .long 0                          /* 0 means no PE header. */
+#endif
+
+xen_start:
         /* Mask all interrupts */
         csrw    CSR_SIE, zero
 
@@ -60,6 +100,7 @@ FUNC(start)
         mv      a1, s1
 
         tail    start_xen
+
 END(start)
 
         .section .text, "ax", %progbits
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 8510a87c4d..c36d76baf3 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -12,6 +12,9 @@ PHDRS
 #endif
 }
 
+PECOFF_SECTION_ALIGNMENT = 0x1000;
+PECOFF_FILE_ALIGNMENT = 0x200;
+
 SECTIONS
 {
     . = XEN_VIRT_START;
diff --git a/xen/include/efi/pe.h b/xen/include/efi/pe.h
new file mode 100644
index 0000000000..bc42c3d85e
--- /dev/null
+++ b/xen/include/efi/pe.h
@@ -0,0 +1,458 @@
+#ifndef __PE_H
+#define __PE_H
+
+/*
+ * Linux EFI stub v1.0 adds the following functionality:
+ * - Loading initrd from the LINUX_EFI_INITRD_MEDIA_GUID device path,
+ * - Loading/starting the kernel from firmware that targets a different
+ *   machine type, via the entrypoint exposed in the .compat PE/COFF section.
+ *
+ * The recommended way of loading and starting v1.0 or later kernels is to use
+ * the LoadImage() and StartImage() EFI boot services, and expose the initrd
+ * via the LINUX_EFI_INITRD_MEDIA_GUID device path.
+ *
+ * Versions older than v1.0 support initrd loading via the image load options
+ * (using initrd=, limited to the volume from which the kernel itself was
+ * loaded), or via arch specific means (bootparams, DT, etc).
+ *
+ * On x86, LoadImage() and StartImage() can be omitted if the EFI handover
+ * protocol is implemented, which can be inferred from the version,
+ * handover_offset and xloadflags fields in the bootparams structure.
+ */
+#define LINUX_EFISTUB_MAJOR_VERSION 0x1
+#define LINUX_EFISTUB_MINOR_VERSION 0x0
+
+#define MZ_MAGIC 0x5a4d /* "MZ" */
+
+#define PE_MAGIC              0x00004550 /* "PE\0\0" */
+#define PE_OPT_MAGIC_PE32     0x010b
+#define PE_OPT_MAGIC_PE32_ROM 0x0107
+#define PE_OPT_MAGIC_PE32PLUS 0x020b
+
+/* machine type */
+#define IMAGE_FILE_MACHINE_UNKNOWN   0x0000
+#define IMAGE_FILE_MACHINE_AM33      0x01d3
+#define IMAGE_FILE_MACHINE_AMD64     0x8664
+#define IMAGE_FILE_MACHINE_ARM       0x01c0
+#define IMAGE_FILE_MACHINE_ARMV7     0x01c4
+#define IMAGE_FILE_MACHINE_ARM64     0xaa64
+#define IMAGE_FILE_MACHINE_EBC       0x0ebc
+#define IMAGE_FILE_MACHINE_I386      0x014c
+#define IMAGE_FILE_MACHINE_IA64      0x0200
+#define IMAGE_FILE_MACHINE_M32R      0x9041
+#define IMAGE_FILE_MACHINE_MIPS16    0x0266
+#define IMAGE_FILE_MACHINE_MIPSFPU   0x0366
+#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
+#define IMAGE_FILE_MACHINE_POWERPC   0x01f0
+#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1
+#define IMAGE_FILE_MACHINE_R4000     0x0166
+#define IMAGE_FILE_MACHINE_RISCV32   0x5032
+#define IMAGE_FILE_MACHINE_RISCV64   0x5064
+#define IMAGE_FILE_MACHINE_RISCV128  0x5128
+#define IMAGE_FILE_MACHINE_SH3       0x01a2
+#define IMAGE_FILE_MACHINE_SH3DSP    0x01a3
+#define IMAGE_FILE_MACHINE_SH3E      0x01a4
+#define IMAGE_FILE_MACHINE_SH4       0x01a6
+#define IMAGE_FILE_MACHINE_SH5       0x01a8
+#define IMAGE_FILE_MACHINE_THUMB     0x01c2
+#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
+
+/* flags */
+#define IMAGE_FILE_RELOCS_STRIPPED         0x0001
+#define IMAGE_FILE_EXECUTABLE_IMAGE        0x0002
+#define IMAGE_FILE_LINE_NUMS_STRIPPED      0x0004
+#define IMAGE_FILE_LOCAL_SYMS_STRIPPED     0x0008
+#define IMAGE_FILE_AGGRESSIVE_WS_TRIM      0x0010
+#define IMAGE_FILE_LARGE_ADDRESS_AWARE     0x0020
+#define IMAGE_FILE_16BIT_MACHINE           0x0040
+#define IMAGE_FILE_BYTES_REVERSED_LO       0x0080
+#define IMAGE_FILE_32BIT_MACHINE           0x0100
+#define IMAGE_FILE_DEBUG_STRIPPED          0x0200
+#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
+#define IMAGE_FILE_NET_RUN_FROM_SWAP       0x0800
+#define IMAGE_FILE_SYSTEM                  0x1000
+#define IMAGE_FILE_DLL                     0x2000
+#define IMAGE_FILE_UP_SYSTEM_ONLY          0x4000
+#define IMAGE_FILE_BYTES_REVERSED_HI       0x8000
+
+#define IMAGE_FILE_OPT_ROM_MAGIC       0x107
+#define IMAGE_FILE_OPT_PE32_MAGIC      0x10b
+#define IMAGE_FILE_OPT_PE32_PLUS_MAGIC 0x20b
+
+#define IMAGE_SUBSYSTEM_UNKNOWN                 0
+#define IMAGE_SUBSYSTEM_NATIVE                  1
+#define IMAGE_SUBSYSTEM_WINDOWS_GUI             2
+#define IMAGE_SUBSYSTEM_WINDOWS_CUI             3
+#define IMAGE_SUBSYSTEM_POSIX_CUI               7
+#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI          9
+#define IMAGE_SUBSYSTEM_EFI_APPLICATION         10
+#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
+#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
+#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE           13
+#define IMAGE_SUBSYSTEM_XBOX                    14
+
+#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         0x0040
+#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      0x0080
+#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            0x0100
+#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          0x0200
+#define IMAGE_DLLCHARACTERISTICS_NO_SEH                0x0400
+#define IMAGE_DLLCHARACTERISTICS_NO_BIND               0x0800
+#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            0x2000
+#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
+
+/* they actually defined 0x00000000 as well, but I think we'll skip that one. */
+#define IMAGE_SCN_RESERVED_0             0x00000001
+#define IMAGE_SCN_RESERVED_1             0x00000002
+#define IMAGE_SCN_RESERVED_2             0x00000004
+#define IMAGE_SCN_TYPE_NO_PAD            0x00000008 /* don't pad - obsolete */
+#define IMAGE_SCN_RESERVED_3             0x00000010
+#define IMAGE_SCN_CNT_CODE               0x00000020 /* .text */
+#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040 /* .data */
+#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* .bss */
+#define IMAGE_SCN_LNK_OTHER              0x00000100 /* reserved */
+#define IMAGE_SCN_LNK_INFO               0x00000200 /* .drectve comments */
+#define IMAGE_SCN_RESERVED_4             0x00000400
+#define IMAGE_SCN_LNK_REMOVE             0x00000800 /* .o only - scn to be rm'd*/
+#define IMAGE_SCN_LNK_COMDAT             0x00001000 /* .o only - COMDAT data */
+#define IMAGE_SCN_RESERVED_5             0x00002000 /* spec omits this */
+#define IMAGE_SCN_RESERVED_6             0x00004000 /* spec omits this */
+#define IMAGE_SCN_GPREL                  0x00008000 /* global pointer referenced data */
+/* spec lists 0x20000 twice, I suspect they meant 0x10000 for one of them */
+#define IMAGE_SCN_MEM_PURGEABLE 0x00010000 /* reserved for "future" use */
+#define IMAGE_SCN_16BIT         0x00020000 /* reserved for "future" use */
+#define IMAGE_SCN_LOCKED        0x00040000 /* reserved for "future" use */
+#define IMAGE_SCN_PRELOAD       0x00080000 /* reserved for "future" use */
+/* and here they just stuck a 1-byte integer in the middle of a bitfield */
+#define IMAGE_SCN_ALIGN_1BYTES    0x00100000 /* it does what it says on the box */
+#define IMAGE_SCN_ALIGN_2BYTES    0x00200000
+#define IMAGE_SCN_ALIGN_4BYTES    0x00300000
+#define IMAGE_SCN_ALIGN_8BYTES    0x00400000
+#define IMAGE_SCN_ALIGN_16BYTES   0x00500000
+#define IMAGE_SCN_ALIGN_32BYTES   0x00600000
+#define IMAGE_SCN_ALIGN_64BYTES   0x00700000
+#define IMAGE_SCN_ALIGN_128BYTES  0x00800000
+#define IMAGE_SCN_ALIGN_256BYTES  0x00900000
+#define IMAGE_SCN_ALIGN_512BYTES  0x00a00000
+#define IMAGE_SCN_ALIGN_1024BYTES 0x00b00000
+#define IMAGE_SCN_ALIGN_2048BYTES 0x00c00000
+#define IMAGE_SCN_ALIGN_4096BYTES 0x00d00000
+#define IMAGE_SCN_ALIGN_8192BYTES 0x00e00000
+#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* extended relocations */
+#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 /* scn can be discarded */
+#define IMAGE_SCN_MEM_NOT_CACHED  0x04000000 /* cannot be cached */
+#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000 /* not pageable */
+#define IMAGE_SCN_MEM_SHARED      0x10000000 /* can be shared */
+#define IMAGE_SCN_MEM_EXECUTE     0x20000000 /* can be executed as code */
+#define IMAGE_SCN_MEM_READ        0x40000000 /* readable */
+#define IMAGE_SCN_MEM_WRITE       0x80000000 /* writeable */
+
+#define IMAGE_DEBUG_TYPE_CODEVIEW 2
+
+#ifndef __ASSEMBLY__
+
+struct mz_hdr {
+    uint16_t magic;              /* MZ_MAGIC */
+    uint16_t lbsize;             /* size of last used block */
+    uint16_t blocks;             /* pages in file, 0x3 */
+    uint16_t relocs;             /* relocations */
+    uint16_t hdrsize;            /* header size in "paragraphs" */
+    uint16_t min_extra_pps;      /* .bss */
+    uint16_t max_extra_pps;      /* runtime limit for the arena size */
+    uint16_t ss;                 /* relative stack segment */
+    uint16_t sp;                 /* initial %sp register */
+    uint16_t checksum;           /* word checksum */
+    uint16_t ip;                 /* initial %ip register */
+    uint16_t cs;                 /* initial %cs relative to load segment */
+    uint16_t reloc_table_offset; /* offset of the first relocation */
+    uint16_t overlay_num;        /* overlay number.  set to 0. */
+    uint16_t reserved0[4];       /* reserved */
+    uint16_t oem_id;             /* oem identifier */
+    uint16_t oem_info;           /* oem specific */
+    uint16_t reserved1[10];      /* reserved */
+    uint32_t peaddr;             /* address of pe header */
+    char     message[];          /* message to print */
+};
+
+struct mz_reloc {
+    uint16_t offset;
+    uint16_t segment;
+};
+
+struct pe_hdr {
+    uint32_t magic;        /* PE magic */
+    uint16_t machine;      /* machine type */
+    uint16_t sections;     /* number of sections */
+    uint32_t timestamp;    /* time_t */
+    uint32_t symbol_table; /* symbol table offset */
+    uint32_t symbols;      /* number of symbols */
+    uint16_t opt_hdr_size; /* size of optional header */
+    uint16_t flags;        /* flags */
+};
+
+/* the fact that pe32 isn't padded where pe32+ is 64-bit means union won't
+ * work right.  vomit. */
+struct pe32_opt_hdr {
+    /* "standard" header */
+    uint16_t magic;       /* file type */
+    uint8_t  ld_major;    /* linker major version */
+    uint8_t  ld_minor;    /* linker minor version */
+    uint32_t text_size;   /* size of text section(s) */
+    uint32_t data_size;   /* size of data section(s) */
+    uint32_t bss_size;    /* size of bss section(s) */
+    uint32_t entry_point; /* file offset of entry point */
+    uint32_t code_base;   /* relative code addr in ram */
+    uint32_t data_base;   /* relative data addr in ram */
+    /* "windows" header */
+    uint32_t image_base;     /* preferred load address */
+    uint32_t section_align;  /* alignment in bytes */
+    uint32_t file_align;     /* file alignment in bytes */
+    uint16_t os_major;       /* major OS version */
+    uint16_t os_minor;       /* minor OS version */
+    uint16_t image_major;    /* major image version */
+    uint16_t image_minor;    /* minor image version */
+    uint16_t subsys_major;   /* major subsystem version */
+    uint16_t subsys_minor;   /* minor subsystem version */
+    uint32_t win32_version;  /* reserved, must be 0 */
+    uint32_t image_size;     /* image size */
+    uint32_t header_size;    /* header size rounded up to file_align */
+    uint32_t csum;           /* checksum */
+    uint16_t subsys;         /* subsystem */
+    uint16_t dll_flags;      /* executable characteristics */
+    uint32_t stack_size_req; /* amt of stack requested */
+    uint32_t stack_size;     /* amt of stack required */
+    uint32_t heap_size_req;  /* amt of heap requested */
+    uint32_t heap_size;      /* amt of heap required */
+    uint32_t loader_flags;   /* reserved, must be 0 */
+    uint32_t data_dirs;      /* number of data dir entries */
+};
+
+struct pe32plus_opt_hdr {
+    uint16_t magic;       /* file type */
+    uint8_t  ld_major;    /* linker major version */
+    uint8_t  ld_minor;    /* linker minor version */
+    uint32_t text_size;   /* size of text section(s) */
+    uint32_t data_size;   /* size of data section(s) */
+    uint32_t bss_size;    /* size of bss section(s) */
+    uint32_t entry_point; /* file offset of entry point */
+    uint32_t code_base;   /* relative code addr in ram */
+    /* "windows" header */
+    uint64_t image_base;     /* preferred load address */
+    uint32_t section_align;  /* alignment in bytes */
+    uint32_t file_align;     /* file alignment in bytes */
+    uint16_t os_major;       /* major OS version */
+    uint16_t os_minor;       /* minor OS version */
+    uint16_t image_major;    /* major image version */
+    uint16_t image_minor;    /* minor image version */
+    uint16_t subsys_major;   /* major subsystem version */
+    uint16_t subsys_minor;   /* minor subsystem version */
+    uint32_t win32_version;  /* reserved, must be 0 */
+    uint32_t image_size;     /* image size */
+    uint32_t header_size;    /* header size rounded up to file_align */
+    uint32_t csum;           /* checksum */
+    uint16_t subsys;         /* subsystem */
+    uint16_t dll_flags;      /* executable characteristics */
+    uint64_t stack_size_req; /* amt of stack requested */
+    uint64_t stack_size;     /* amt of stack required */
+    uint64_t heap_size_req;  /* amt of heap requested */
+    uint64_t heap_size;      /* amt of heap required */
+    uint32_t loader_flags;   /* reserved, must be 0 */
+    uint32_t data_dirs;      /* number of data dir entries */
+};
+
+struct data_dirent {
+    uint32_t virtual_address; /* relative to load address */
+    uint32_t size;
+};
+
+struct data_directory {
+    struct data_dirent exports;          /* .edata */
+    struct data_dirent imports;          /* .idata */
+    struct data_dirent resources;        /* .rsrc */
+    struct data_dirent exceptions;       /* .pdata */
+    struct data_dirent certs;            /* certs */
+    struct data_dirent base_relocations; /* .reloc */
+    struct data_dirent debug;            /* .debug */
+    struct data_dirent arch;             /* reservered */
+    struct data_dirent global_ptr;       /* global pointer reg. Size=0 */
+    struct data_dirent tls;              /* .tls */
+    struct data_dirent load_config;      /* load configuration structure */
+    struct data_dirent bound_imports;    /* no idea */
+    struct data_dirent import_addrs;     /* import address table */
+    struct data_dirent delay_imports;    /* delay-load import table */
+    struct data_dirent clr_runtime_hdr;  /* .cor (object only) */
+    struct data_dirent reserved;
+};
+
+struct section_header {
+    char     name[8];         /* name or string tbl offset */
+    uint32_t virtual_size;    /* size of loaded section in ram */
+    uint32_t virtual_address; /* relative virtual address */
+    uint32_t raw_data_size;   /* size of the section */
+    uint32_t data_addr;       /* file pointer to first page of sec */
+    uint32_t relocs;          /* file pointer to relocation entries */
+    uint32_t line_numbers;    /* line numbers */
+    uint16_t num_relocs;      /* number of relocations */
+    uint16_t num_lin_numbers; /* COFF line count. */
+    uint32_t flags;
+};
+
+enum x64_coff_reloc_type {
+    IMAGE_REL_AMD64_ABSOLUTE = 0,
+    IMAGE_REL_AMD64_ADDR64,
+    IMAGE_REL_AMD64_ADDR32,
+    IMAGE_REL_AMD64_ADDR32N,
+    IMAGE_REL_AMD64_REL32,
+    IMAGE_REL_AMD64_REL32_1,
+    IMAGE_REL_AMD64_REL32_2,
+    IMAGE_REL_AMD64_REL32_3,
+    IMAGE_REL_AMD64_REL32_4,
+    IMAGE_REL_AMD64_REL32_5,
+    IMAGE_REL_AMD64_SECTION,
+    IMAGE_REL_AMD64_SECREL,
+    IMAGE_REL_AMD64_SECREL7,
+    IMAGE_REL_AMD64_TOKEN,
+    IMAGE_REL_AMD64_SREL32,
+    IMAGE_REL_AMD64_PAIR,
+    IMAGE_REL_AMD64_SSPAN32,
+};
+
+enum arm_coff_reloc_type {
+    IMAGE_REL_ARM_ABSOLUTE,
+    IMAGE_REL_ARM_ADDR32,
+    IMAGE_REL_ARM_ADDR32N,
+    IMAGE_REL_ARM_BRANCH2,
+    IMAGE_REL_ARM_BRANCH1,
+    IMAGE_REL_ARM_SECTION,
+    IMAGE_REL_ARM_SECREL,
+};
+
+enum sh_coff_reloc_type {
+    IMAGE_REL_SH3_ABSOLUTE,
+    IMAGE_REL_SH3_DIRECT16,
+    IMAGE_REL_SH3_DIRECT32,
+    IMAGE_REL_SH3_DIRECT8,
+    IMAGE_REL_SH3_DIRECT8_WORD,
+    IMAGE_REL_SH3_DIRECT8_LONG,
+    IMAGE_REL_SH3_DIRECT4,
+    IMAGE_REL_SH3_DIRECT4_WORD,
+    IMAGE_REL_SH3_DIRECT4_LONG,
+    IMAGE_REL_SH3_PCREL8_WORD,
+    IMAGE_REL_SH3_PCREL8_LONG,
+    IMAGE_REL_SH3_PCREL12_WORD,
+    IMAGE_REL_SH3_STARTOF_SECTION,
+    IMAGE_REL_SH3_SIZEOF_SECTION,
+    IMAGE_REL_SH3_SECTION,
+    IMAGE_REL_SH3_SECREL,
+    IMAGE_REL_SH3_DIRECT32_NB,
+    IMAGE_REL_SH3_GPREL4_LONG,
+    IMAGE_REL_SH3_TOKEN,
+    IMAGE_REL_SHM_PCRELPT,
+    IMAGE_REL_SHM_REFLO,
+    IMAGE_REL_SHM_REFHALF,
+    IMAGE_REL_SHM_RELLO,
+    IMAGE_REL_SHM_RELHALF,
+    IMAGE_REL_SHM_PAIR,
+    IMAGE_REL_SHM_NOMODE,
+};
+
+enum ppc_coff_reloc_type {
+    IMAGE_REL_PPC_ABSOLUTE,
+    IMAGE_REL_PPC_ADDR64,
+    IMAGE_REL_PPC_ADDR32,
+    IMAGE_REL_PPC_ADDR24,
+    IMAGE_REL_PPC_ADDR16,
+    IMAGE_REL_PPC_ADDR14,
+    IMAGE_REL_PPC_REL24,
+    IMAGE_REL_PPC_REL14,
+    IMAGE_REL_PPC_ADDR32N,
+    IMAGE_REL_PPC_SECREL,
+    IMAGE_REL_PPC_SECTION,
+    IMAGE_REL_PPC_SECREL16,
+    IMAGE_REL_PPC_REFHI,
+    IMAGE_REL_PPC_REFLO,
+    IMAGE_REL_PPC_PAIR,
+    IMAGE_REL_PPC_SECRELLO,
+    IMAGE_REL_PPC_GPREL,
+    IMAGE_REL_PPC_TOKEN,
+};
+
+enum x86_coff_reloc_type {
+    IMAGE_REL_I386_ABSOLUTE,
+    IMAGE_REL_I386_DIR16,
+    IMAGE_REL_I386_REL16,
+    IMAGE_REL_I386_DIR32,
+    IMAGE_REL_I386_DIR32NB,
+    IMAGE_REL_I386_SEG12,
+    IMAGE_REL_I386_SECTION,
+    IMAGE_REL_I386_SECREL,
+    IMAGE_REL_I386_TOKEN,
+    IMAGE_REL_I386_SECREL7,
+    IMAGE_REL_I386_REL32,
+};
+
+enum ia64_coff_reloc_type {
+    IMAGE_REL_IA64_ABSOLUTE,
+    IMAGE_REL_IA64_IMM14,
+    IMAGE_REL_IA64_IMM22,
+    IMAGE_REL_IA64_IMM64,
+    IMAGE_REL_IA64_DIR32,
+    IMAGE_REL_IA64_DIR64,
+    IMAGE_REL_IA64_PCREL21B,
+    IMAGE_REL_IA64_PCREL21M,
+    IMAGE_REL_IA64_PCREL21F,
+    IMAGE_REL_IA64_GPREL22,
+    IMAGE_REL_IA64_LTOFF22,
+    IMAGE_REL_IA64_SECTION,
+    IMAGE_REL_IA64_SECREL22,
+    IMAGE_REL_IA64_SECREL64I,
+    IMAGE_REL_IA64_SECREL32,
+    IMAGE_REL_IA64_DIR32NB,
+    IMAGE_REL_IA64_SREL14,
+    IMAGE_REL_IA64_SREL22,
+    IMAGE_REL_IA64_SREL32,
+    IMAGE_REL_IA64_UREL32,
+    IMAGE_REL_IA64_PCREL60X,
+    IMAGE_REL_IA64_PCREL60B,
+    IMAGE_REL_IA64_PCREL60F,
+    IMAGE_REL_IA64_PCREL60I,
+    IMAGE_REL_IA64_PCREL60M,
+    IMAGE_REL_IA64_IMMGPREL6,
+    IMAGE_REL_IA64_TOKEN,
+    IMAGE_REL_IA64_GPREL32,
+    IMAGE_REL_IA64_ADDEND,
+};
+
+struct coff_reloc {
+    uint32_t virtual_address;
+    uint32_t symbol_table_index;
+
+    union {
+        enum x64_coff_reloc_type  x64_type;
+        enum arm_coff_reloc_type  arm_type;
+        enum sh_coff_reloc_type   sh_type;
+        enum ppc_coff_reloc_type  ppc_type;
+        enum x86_coff_reloc_type  x86_type;
+        enum ia64_coff_reloc_type ia64_type;
+        uint16_t                  data;
+    };
+};
+
+/*
+ * Definitions for the contents of the certs data block
+ */
+#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002
+#define WIN_CERT_TYPE_EFI_OKCS115      0x0EF0
+#define WIN_CERT_TYPE_EFI_GUID         0x0EF1
+
+#define WIN_CERT_REVISION_1_0 0x0100
+#define WIN_CERT_REVISION_2_0 0x0200
+
+struct win_certificate {
+    uint32_t length;
+    uint16_t revision;
+    uint16_t cert_type;
+};
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __PE_H */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 04:26:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 04:26:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752694.1160885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOrYw-0003vF-8J; Wed, 03 Jul 2024 04:25:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752694.1160885; Wed, 03 Jul 2024 04:25:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOrYw-0003v8-5P; Wed, 03 Jul 2024 04:25:46 +0000
Received: by outflank-mailman (input) for mailman id 752694;
 Wed, 03 Jul 2024 04:25:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOrYv-0003uy-Ln; Wed, 03 Jul 2024 04:25:45 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOrYv-00039E-FZ; Wed, 03 Jul 2024 04:25:45 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOrYv-0007vO-28; Wed, 03 Jul 2024 04:25:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOrYv-00041t-1C; Wed, 03 Jul 2024 04:25:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=G/5nXuKfJs0g4fFwF+Rb0/3UpWt804YnxUAD5ZJbL/I=; b=ndh+J98I9k0I+lv5YcYJVLHhrS
	yJnPGaYgQoEdJTl0TEg/zNZSJpcz+0yQ021kx+XOVk0w7sloXqQcv41e9fqk6MtP38sON2wbFXopO
	o8LZo/0YQhjVSwshCvXB8Fig2CUQDH2lVPN2j6LO+7Cksfq4a9pN+Tk04BZ5VhJnw4Bk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186633-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186633: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-qcow2:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=1dfe225e9af5bd3399a1dbc6a4df6a6041ff9c23
X-Osstest-Versions-That:
    linux=9903efbddba0d14133b5a3c75088b558d2e34ac3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Jul 2024 04:25:45 +0000

flight 186633 linux-linus real [real]
flight 186635 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186633/
http://logs.test-lab.xenproject.org/osstest/logs/186635/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 186620

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-qcow2     8 xen-boot            fail pass in 186635-retest

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 186620

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-qcow2   14 migrate-support-check fail in 186635 never pass
 test-armhf-armhf-xl-qcow2 15 saverestore-support-check fail in 186635 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186620
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186620
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                1dfe225e9af5bd3399a1dbc6a4df6a6041ff9c23
baseline version:
 linux                9903efbddba0d14133b5a3c75088b558d2e34ac3

Last test of basis   186620  2024-07-01 17:14:02 Z    1 days
Failing since        186626  2024-07-02 05:45:15 Z    0 days    2 attempts
Testing same since   186633  2024-07-02 18:12:15 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alison Schofield <alison.schofield@intel.com>
  Dan Williams <dan.j.williams@intel.com>
  Dave Jiang <dave.jiang@intel.com>
  David Sterba <dsterba@suse.com>
  Li Ming <ming4.li@intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Ming Lei <ming.lei@redhat.com>
  Naohiro Aota <naohiro.aota@wdc.com>
  Wenchao Hao <haowenchao22@gmail.com>
  Xingui Yang <yangxingui@huawei.com>
  Yao Xingtao <yaoxt.fnst@fujitsu.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 346 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 04:33:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 04:33:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752702.1160896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOrg1-0005SA-T3; Wed, 03 Jul 2024 04:33:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752702.1160896; Wed, 03 Jul 2024 04: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 1sOrg1-0005S3-Py; Wed, 03 Jul 2024 04:33:05 +0000
Received: by outflank-mailman (input) for mailman id 752702;
 Wed, 03 Jul 2024 04:33:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOrg1-0005Rt-7y; Wed, 03 Jul 2024 04:33:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOrg1-0003GS-4X; Wed, 03 Jul 2024 04:33:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOrg0-000852-PL; Wed, 03 Jul 2024 04:33:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOrg0-0006my-Om; Wed, 03 Jul 2024 04:33:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=whqg78idX2bkclxHqfkO6SvTY0utz1bWB6k5w6xfK0U=; b=J5v7Rb0MgQkZAvsp+6vZDtRGMy
	eomxBup7i5Kn7YJI36IAlYSFa1HASvh9rLkZuwNiY+tmUZLW634HdXeIuTE9aulaWet5cXI8T0lo8
	O469VckBH+o+KSpvDLO6GSjvZkJ05haz3WaqL9Xky8cIPhJ5vdFnHLkF4YkM+DyKnH/U=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186636-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186636: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=4f174696fd8fbd9cc29c9f172e8e83fe6da5b070
X-Osstest-Versions-That:
    ovmf=6b256cef01825fd597ce31ec9343ea280c6114c9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Jul 2024 04:33:04 +0000

flight 186636 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186636/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 4f174696fd8fbd9cc29c9f172e8e83fe6da5b070
baseline version:
 ovmf                 6b256cef01825fd597ce31ec9343ea280c6114c9

Last test of basis   186632  2024-07-02 16:11:10 Z    0 days
Testing same since   186636  2024-07-03 03:11:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Joey Vagedes <joey.vagedes@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   6b256cef01..4f174696fd  4f174696fd8fbd9cc29c9f172e8e83fe6da5b070 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 05:41:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 05:41:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752715.1160906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOsk2-0005I3-PY; Wed, 03 Jul 2024 05:41:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752715.1160906; Wed, 03 Jul 2024 05: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 1sOsk2-0005Hw-Mo; Wed, 03 Jul 2024 05:41:18 +0000
Received: by outflank-mailman (input) for mailman id 752715;
 Wed, 03 Jul 2024 05:41:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOsk0-0005Hk-TJ; Wed, 03 Jul 2024 05:41:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOsk0-0004jW-PA; Wed, 03 Jul 2024 05:41:16 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOsk0-0001Ot-AZ; Wed, 03 Jul 2024 05:41:16 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOsk0-0007Ig-A7; Wed, 03 Jul 2024 05:41:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=8iQRz+sLRQ0/hpmYSZD6o8CBFYOK0jt+eQkn9V0GqvQ=; b=so6l1gOUJlRBxJX/U7v66iGdQb
	b1ddgYKKsAejLj2Kosvgj0rYAKW2j3ULcFX9i1EDCG5dHqPoJr81C6KYL13LjNYEr6kbmUTKMK7Av
	FmyJxUETZI3rS/d4LrZ/UHuGN9EXk9Yfr7vn1g+t8qQPL6fbpHq3qWwt9X3MkIsnPeAk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186634-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186634: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b
X-Osstest-Versions-That:
    xen=4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Jul 2024 05:41:16 +0000

flight 186634 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186634/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186628
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186628
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186628
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186628
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186628
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186628
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b
baseline version:
 xen                  4a73eb4c205d6b2d3e44f3f9ec98dc0e44481f7b

Last test of basis   186628  2024-07-02 07:30:04 Z    0 days
Testing same since   186634  2024-07-02 20:10:55 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@vates.tech>
  George Dunlap <george.dunlap@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   4a73eb4c20..08daa72cdc  08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b -> master


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 07:15:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 07:15:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752736.1160952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOuDJ-0007RB-Ec; Wed, 03 Jul 2024 07:15:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752736.1160952; Wed, 03 Jul 2024 07: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 1sOuDJ-0007R4-BZ; Wed, 03 Jul 2024 07:15:37 +0000
Received: by outflank-mailman (input) for mailman id 752736;
 Wed, 03 Jul 2024 07:15:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mAj5=OD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOuDH-0007Qy-HB
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 07:15: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 09c4c968-390c-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 09:15:34 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a689ad8d1f6so585136366b.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 00:15:33 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72ab0651dfsm490982766b.142.2024.07.03.00.15.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 00: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: 09c4c968-390c-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719990933; x=1720595733; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=oYkyjmcMSkbHI3m3v9yGfFEyUD8JC6zkZ2u1hcB7s1g=;
        b=PWlQNSvLSvR4zW3B43x+nBeRNdi4pAAdr3IaRW/ISyyYW2zm+lRLZtFyD9D7m3hKVw
         LMI2Y4uvBzQVsY10Y8nRqJ5lRjUvEvLApAin/pJfFmSFoJllB6ocIZbFIrFtpwuorOPW
         raadaxFIoEgy92xcGoHd/oH4cS18ORTrExAhdZQLcwKrebJMSbF/rbpO9D8Sxfh9sJnE
         X5QLrRZS/RRZA4M7bTubAJtTuGAy/ds1fHLGl4094dcqq9cLb3EoKQV4xn2yc5tcwNce
         yZLr2VyHzUDzIYVvD16temIYUn6tXeF7n6cbc/ssSC5vsnXez8vXsByiHA5/gE7Yns5k
         lqrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719990933; x=1720595733;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=oYkyjmcMSkbHI3m3v9yGfFEyUD8JC6zkZ2u1hcB7s1g=;
        b=G8hKf2Fq2VRCCL+K5NhlfH5kUilOMtywLDi06PlGSHE+mnNJisEcrEG22Uoh92PjTg
         NRQ+vZAyD0U4zBIRhvyDZNpFsRxohC4TAvaHd/0zheThC4ouPueIhKl86ZmQlZFjFvxp
         AfbkB9c4qSTt/XqUoDZQRl990hhlQkWTPxWtn2aKlA2G4xu62L7XZBPb2YwEXKaAqKW1
         i/zghPPeTLB2GSWz7nLNGLPNMO+KBf4jp4UIlYNTz8DxRzSst1wLyFlexMZWTcloT7OI
         oz5wdCPhBJxXldEqMHPaEeEmc6wvKeUfIAckmM5NZ3ygV1TZkTi5lsLo7l86qzl1MMMM
         zOKg==
X-Forwarded-Encrypted: i=1; AJvYcCW4ljQ/YKxpA8kEsli1oYB3WzziRmMlxdl6RLOSgSXQ003r16vrJrpLhOu/NZf/Nmi9lPJ/4FdOCD7ZBj9BALvyhBXLSLN+2qC0o53OWW0=
X-Gm-Message-State: AOJu0YyE2C86eA9rJmpkqT0P/QlskWrNMkgMxa0igot2SeD4fMCTZAWp
	hZ2h9vBctNmqgY8o/bxeGo3sQiZ+edYi3iYUBZoY4DMpVfgJMDD4
X-Google-Smtp-Source: AGHT+IFCSPX2cMrckuoRAO/+PkFQop9yTRTelbZH5pzCBTekPympAvDrYs1+7jZHhDsTxUpPxa23wQ==
X-Received: by 2002:a17:907:728e:b0:a6f:9b06:6b42 with SMTP id a640c23a62f3a-a75142d855bmr755448566b.5.1719990933051;
        Wed, 03 Jul 2024 00:15:33 -0700 (PDT)
Message-ID: <0eda8cef4ae661e85e72c3731067b0350ff5ed28.camel@gmail.com>
Subject: Re: [PATCH v14 7/9] xen/riscv: use .insn with operands to support
 the older gas
From: Oleksii <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>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
Date: Wed, 03 Jul 2024 09:15:32 +0200
In-Reply-To: <51b4aab3-c62f-4365-9b66-12e1d073bc6b@suse.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
	 <a64f0de38fe32da9154d1944195ff6b852ae3310.1719917348.git.oleksii.kurochko@gmail.com>
	 <51b4aab3-c62f-4365-9b66-12e1d073bc6b@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-02 at 14:02 +0200, Jan Beulich wrote:
> On 02.07.2024 13:01, Oleksii Kurochko wrote:
> > Support for specifying "raw" insns was added only in 2.38.
> > To support older version it would be better switch to .insn
> > with operands.
> >=20
> > The following compilation error occurs:
> > =C2=A0 ./arch/riscv/include/asm/processor.h: Assembler messages:
> > =C2=A0 ./arch/riscv/include/asm/processor.h:70: Error: unrecognized
> > opcode `0x0100000F'
> > In case of the following Binutils:
> > =C2=A0 $ riscv64-linux-gnu-as --version
> > =C2=A0 GNU assembler (GNU Binutils for Debian) 2.35.2
> >=20
> > Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > Suggested-by: Jan Beulich <jbeulich@suse.com>
>=20
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>=20
> > Andrew,
> >=20
> > Could you please take a look if you are okay with suggested
> > changes.
> >=20
> > Thanks in advance.
>=20
> I won't wait for too long for a reply here (perhaps until EOD
> tomorrow), as
> I expect the change to be pretty uncontroversial. However, to put it
> in at
> this point I'll need a release ack first anyway.
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 07:24:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 07:24:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752742.1160962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOuLi-0000dL-8q; Wed, 03 Jul 2024 07:24:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752742.1160962; Wed, 03 Jul 2024 07: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 1sOuLi-0000dE-5h; Wed, 03 Jul 2024 07:24:18 +0000
Received: by outflank-mailman (input) for mailman id 752742;
 Wed, 03 Jul 2024 07:24: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOuLh-0000d8-9l
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 07:24:17 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4107571f-390d-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 09:24:16 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2ebe6495aedso54808131fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 00:24: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
 d2e1a72fcca58-708044adb16sm10036432b3a.171.2024.07.03.00.24.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 00: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: 4107571f-390d-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719991455; x=1720596255; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ap6akTOkQuOKPK8gR7bTK+B4Jw1qtcFu2IqYB2NX1uI=;
        b=bOh33N8J2T0dFbmu025MvHwojLfHnjSX4NPg5z+EB5HuUYM72DafnzW51HAkxcZCPL
         fMLULRUtYtTMDpBhOW5al/MVOgiZAcWrv7VBGFeEgnhvrnrwfbWDzXXbGwifY2Otwf7w
         /oWwQqir7DoXRpruLORj0XSrfWmzAOScXTwQG4Rd8mQ5XjwDIRfkchsWSyAx1YgAuvPk
         pB/jVjKTztSk9dLUKI/gkDVziGtZ4BQHsd08ZtYCuquSqfuy5m9wstYQtBclTO6iDPwp
         Hbt/p0/N/iLbXjg6lV/rmcly4rq87Gy3OxgdZElR3+LpZUoPC+TEskEU8WHlTLiwdtt9
         aY8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719991455; x=1720596255;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ap6akTOkQuOKPK8gR7bTK+B4Jw1qtcFu2IqYB2NX1uI=;
        b=N0vAMGD4Kr5BORG3rz0B9HFcTNxLPcqR5560JrUttdCStiJxgJplGFJJMnoLewT7mG
         R3f1TrwSQdumL8ougLP3cP4jGJoEG86nMOz1XqWJCwqyHr/P5Syxe38z0lHFfKxh0UEc
         Lsde0KvhgrzjmtI/N0HtxMdV70awEfKCS3EyxDhzd0qMMZ+qMokCJkx43PG8hau4qnbT
         5oam/ibsk65aAfQgK0WNM4delmzBvBaF8IOPrfuJojk4IYa/329WawSON2FOQhzHaqcD
         UCnQueXiCpIKKZer+ELBdfSeE6/0XPoxdx9wUEAqoSmXqXPTuG7a2DYTXlFjTX5cjDSY
         gq+Q==
X-Forwarded-Encrypted: i=1; AJvYcCXMqnxZlBl1kFGpIOkfAVkY8xKbSHHQU0e7X5gFgDosHetGJcyXYTF9B5pK0piLaDalk9xEBTOLiSxtALg6blcfOoP3G0matMeezia7exs=
X-Gm-Message-State: AOJu0Yzq3cbIKYckBbOp1e70QivdOF/Pz+qugb1OQZj+faXsgooxCyat
	VgPcpD9rVgS+yvoq1srKXBHIporYh0skoabmM6tgihOMfgUaJ7BUpYWJxzUGOg==
X-Google-Smtp-Source: AGHT+IF59u4vPzgixtBiTZ2CtdI4vwzjybd8UGJ38TVD2aFaIrLxyLwysNPVVX/7NKlKpzrvpuWUyA==
X-Received: by 2002:a2e:bc88:0:b0:2ee:6b86:b0aa with SMTP id 38308e7fff4ca-2ee6b86b2c6mr61380081fa.17.1719991454491;
        Wed, 03 Jul 2024 00:24:14 -0700 (PDT)
Message-ID: <630de29e-e350-47ee-b451-5312befde5ce@suse.com>
Date: Wed, 3 Jul 2024 09:24:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 1/9] xen: introduce generic non-atomic test_*bit()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
 <2f60d1fd7b3ac7d603486ce03a112d58352bf16d.1719917348.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: <2f60d1fd7b3ac7d603486ce03a112d58352bf16d.1719917348.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 13:01, Oleksii Kurochko wrote:
> The following generic functions were introduced:
> * test_bit
> * generic__test_and_set_bit
> * generic__test_and_clear_bit
> * generic__test_and_change_bit
> 
> These functions and macros can be useful for architectures
> that don't have corresponding arch-specific instructions.
> 
> Also, the patch introduces the following generics which are
> used by the functions mentioned above:
> * BITOP_BITS_PER_WORD
> * BITOP_MASK
> * BITOP_WORD
> * BITOP_TYPE
> 
> The following approach was chosen for generic*() and arch*() bit
> operation functions:
> If the bit operation function that is going to be generic starts
> with the prefix "__", then the corresponding generic/arch function
> will also contain the "__" prefix. For example:
>  * test_bit() will be defined using arch_test_bit() and
>    generic_test_bit().
>  * __test_and_set_bit() will be defined using
>    arch__test_and_set_bit() and generic__test_and_set_bit().
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> ---
> Changes in V14:
>  - Nothing changed. Only Rebase.
> ---
> Changes in V13:
>  - add Reviewed-by: Jan Beulich <jbeulich@suse.com>
> ---
> Changes in V12:
>  - revert change of moving the definition of BITS_PER_BYTE from <arch>/bitops.h to xen/bitops.h.
>    ( a separate patch will be provided to put BITS_PER_BYTE to proper place )

Oleksii - seeing that this wasn't actually done (as noticed by Michal), my
intention would be to adjust the patch while committing. Please let me know
shortly if there is anything I'm overlooking, possibly implying the intended
adjustment shouldn't be done (and further suggesting that the revision log
then is wrong and/or incomplete). As indicated, I'll need another reply of
yours here (and for subsequent patches; maybe simply the entire series)
anyway, as a release-ack is still missing.

Andrew - this is going to be the last time I ask that you please come forward
with any concrete objections to this or any other patch in the series, if
indeed there were any. Without you doing so, I'm going to commit this series
(or the parts thereof that are properly ready) as soon as a release ack has
arrived, but - to allow a little bit of time - no earlier than tomorrow
morning. That'll be on the basis that so far possible objections of yours are
purely hearsay; you never voiced any on the list, and even on Matrix it was
only along the lines of "there is something".

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 07:42:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 07:42:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752750.1160971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOuct-0003Xq-KP; Wed, 03 Jul 2024 07:42:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752750.1160971; Wed, 03 Jul 2024 07:42:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOuct-0003Xj-HV; Wed, 03 Jul 2024 07:42:03 +0000
Received: by outflank-mailman (input) for mailman id 752750;
 Wed, 03 Jul 2024 07: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOucs-0003Xd-LW
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 07:42:02 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bbf42d23-390f-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 09:42:01 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2ebeefb9a7fso56518811fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 00:42: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
 98e67ed59e1d1-2c91ce71017sm10091360a91.29.2024.07.03.00.41.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 00: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: bbf42d23-390f-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719992521; x=1720597321; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=p1sP2K7YXMH4jd33k7k5WMbazo+yPTKRcHxYXbiiBEA=;
        b=cnO9Nev/gwyd8lhOruD5IZrmL1BikbbK8omMs4kAEuqRrv3NlVeejqSVflCPBOGoSs
         1czszP2L/p1onES4pEDwX4RUGmNtNl6X4A6nocpx6IAO/5WLKIuEcuvc0qUC4cXToHVQ
         lHbUXgs0VWk+UJSPRlxGZ/XzJG0S4NY3tesmi7JzrbwCTkIPo4bnjy7i79YR6WhGlCo0
         dxFwo9gCIxcSeY+ticDEfKWLqC+YkpNDEsJEM/x/ALmVXHj6c8+lrzTVNVhsV5dmhiLK
         xT6SpIvNWQ1HPxnvZueB1LNBnXtDL8ApTpg+jofJyAV7W/ETAWVt6y2qvjbA7R/1BKrN
         F5Aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719992521; x=1720597321;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=p1sP2K7YXMH4jd33k7k5WMbazo+yPTKRcHxYXbiiBEA=;
        b=N8AVLI+gEK5eJivclPxYHLraWwdfQF2XQFRqtYShoqNzhORU8IlUZsKlXws9eT6CnN
         a5w/KDICFy6x9j6gYEq/WlhXceLWTTIZaNm81FZo75VOgoxF59U0VpySrN2IPpj7SeRj
         0ZxKCQhzWnutpQ9WmK/Sd2hH4AZe2c2+aMuXB/aMNylSQQj1S9bFaDV238I8xUXSV5By
         jZXG4McewhxNQ74oMXfifVMwPTH1RE6qIDAZgQgUzKH4L08SSHZ7oEZgaaLmcApu4Zk+
         xZKDsFtOU+Z85jAb9YbEmtknsl2vWcz6HP+In7uYbF7vePh7JghpLQ5/0JJ2t7wcl53D
         2ITg==
X-Forwarded-Encrypted: i=1; AJvYcCV4Ip/5cSKp4VNGS8S0xodcM5BIZxN7HN0XEvbu00ymg+Z/c9noO1QVwu/1Iwiovsio4xQMg1+Md/FJ6pN50LcpByKIeo0uZ6Ni4q7YGPY=
X-Gm-Message-State: AOJu0Yx4/8/JoNJ0inj5/LS1FY3Dh8joOFfR2Tcu3MbM3vn86afqyq5I
	+xkTMtbzN6B7vAUEhTVjbxRE+jYD2Ppj9TnLpXZCgdn35cT6bnznfKKkXV8QaA==
X-Google-Smtp-Source: AGHT+IGS/fcjAa+WzqKD4srbxPZHyYW/6YZmSb2Xs6rzgNXisToYPV7Uh9lJ5wbUshAYqqyrck0DjA==
X-Received: by 2002:a2e:8907:0:b0:2ec:1810:e50a with SMTP id 38308e7fff4ca-2ee5e6e71e5mr64110251fa.32.1719992520707;
        Wed, 03 Jul 2024 00:42:00 -0700 (PDT)
Message-ID: <95f8c522-f66e-48cd-bf7c-6033614e7bbf@suse.com>
Date: Wed, 3 Jul 2024 09:41:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19?] xen/vmap: Document the vmap header
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <b19a5ca7abd27bd4f31a0d87573687297dd7df58.1719849287.git.alejandro.vallejo@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b19a5ca7abd27bd4f31a0d87573687297dd7df58.1719849287.git.alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 15:03, Alejandro Vallejo wrote:
> --- a/xen/include/xen/vmap.h
> +++ b/xen/include/xen/vmap.h
> @@ -1,34 +1,131 @@
> +/*
> + * Interface to map physical memory onto contiguous virtual memory areas.
> + *
> + * Two ranges of linear address space are reserved for this purpose: A general
> + * purpose area (VMAP_DEFAULT) and a livepatch-specific area (VMAP_XEN). The
> + * latter is used when loading livepatches and the former for everything else.
> + */
>  #if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
>  #define __XEN_VMAP_H__
>  
>  #include <xen/mm-frame.h>
>  #include <xen/page-size.h>
>  
> +/** Identifiers for the linear ranges tracked by vmap */

Here and below: Why /** ? Seeing ...

>  enum vmap_region {
> +    /*
> +     * Region used for general purpose RW mappings. Mapping/allocating memory
> +     * here can induce extra allocations for the supporting page tables.
> +     */

... this vs ...

>      VMAP_DEFAULT,
> +    /**
> +     * Region used for loading livepatches. Can't use VMAP_DEFAULT because it
> +     * must live close to the running Xen image. The caller also ensures all
> +     * page tables are already in place with adequate PTE flags.
> +     */

... this, it's not even looking to be consistent.

>      VMAP_XEN,
> +    /** Sentinel value for bounds checking */
>      VMAP_REGION_NR,
>  };
>  
> +/**
> + * Runtime initialiser for each vmap region type
> + *
> + * Must only be called once per vmap region type.
> + *
> + * @param type  Designation of the region to initialise.
> + * @param start Start address of the `type` region.
> + * @param end   End address (not inclusive) of the `type` region
> + */
>  void vm_init_type(enum vmap_region type, void *start, void *end);
>  
> +/**
> + * Maps a range of physical ranges onto a single virtual range

Largely related to it not really being clear what "a range of physical ranges"
actually is, maybe "a set of physical ranges"?

> + * `mfn` is an array of `nr` physical ranges, each of which is `granularity`
> + * pages wide. `type` defines which vmap region to use for the mapping and
> + * `flags` is the PTE flags the page table leaves are meant to have.
> + *
> + * Typically used via the vmap() and vmap_contig() helpers.
> + *
> + * @param mfn          Array of mfns
> + * @param granularity  Number of contiguous pages each mfn represents
> + * @param nr           Number of mfns in the `mfn` array
> + * @param align        Alignment of the virtual area to map
> + * @param flags        PTE flags for the leaves of the PT tree.
> + * @param type         Which region to create the mappings on
> + */
>  void *__vmap(const mfn_t *mfn, unsigned int granularity, unsigned int nr,
>               unsigned int align, unsigned int flags, enum vmap_region type);
> +
> +/**
> + * Map an arrray of pages contiguously into the VMAP_DEFAULT vmap region

Nit: One r too many in "array".

> + * @param[in] mfn Pointer to the base of an array of mfns
> + * @param[in] nr  Number of mfns in the array
> + */
>  void *vmap(const mfn_t *mfn, unsigned int nr);
> +
> +/**
> + * Maps physically contiguous pages onto the VMAP_DEFAULT vmap region
> + *
> + * Used when the directmap is unavailable (i.e: due to secret hiding)

Please omit this. There's no reason to suggest it can't also be used for
other purposes.

> + * @param mfn Base mfn of the physical region
> + * @param nr  Number of mfns in the physical region
> + */
>  void *vmap_contig(mfn_t mfn, unsigned int nr);
> +
> +/**
> + * Unmaps a range of virtually contiguous memory from one of the vmap regions
> + *
> + * The system remembers internally how wide the mapping is and unmaps it all.
> + * It also can determine the vmap region type from the `va`.
> + *
> + * @param va Virtual base address of the range to unmap
> + */
>  void vunmap(const void *va);
>  
> +/**
> + * Allocate `size` octets of possibly non-contiguous physical memory and map
> + * them contiguously in the VMAP_DEFAULT vmap region
> + *
> + * The system remembers internally how wide the mapping is and unmaps it all.

This is a verbatim copy of what you say for vunmap(), yet it looks unrelated
here. Maybe you meant to edit it after copy-and-paste? Or maybe this was
meant to go ...

> + * @param size Pointer to the base of an array of mfns
> + * @return Pointer to the mapped area on success; NULL otherwise.
> + */
>  void *vmalloc(size_t size);
> +
> +/** Same as vmalloc(), but for the VMAP_XEN vmap region. */
>  void *vmalloc_xen(size_t size);
>  
> +/** Same as vmalloc(), but set the contents to zero before returning */
>  void *vzalloc(size_t size);
> +
> +/**
> + * Unmap and free memory from vmalloc(), vmalloc_xen() or vzalloc()
> + *
> + * @param va Virtual base address of the range to free and unmap
> + */
>  void vfree(void *va);

... here?

Also, if you want this to be considered for 4.19, please don't forget to Cc
Oleksii.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 07:47:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 07:47:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752757.1160982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOuho-000483-6s; Wed, 03 Jul 2024 07:47:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752757.1160982; Wed, 03 Jul 2024 07: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 1sOuho-00047w-3n; Wed, 03 Jul 2024 07:47:08 +0000
Received: by outflank-mailman (input) for mailman id 752757;
 Wed, 03 Jul 2024 07: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=znpO=OD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sOuhm-00047q-RY
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 07:47:06 +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 71442730-3910-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 09:47:05 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-36794da7c96so137768f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 00:47:05 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3675f9dfbdbsm14822862f8f.103.2024.07.03.00.47.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 00: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: 71442730-3910-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719992825; x=1720597625; 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=vrdL3QcJU/kD06YheeMtMz4eXLJavNhafGT420lqN1U=;
        b=fnVCZHZ0poAyxK0ldYuQO//u9NoliPam2TOoyNdi29LJHHW73thLmJsuqvoquu4r4f
         YH8XcuEe+MuZhNSPrOa/zGEH808kLsvGugLlAnKBu/O1d3tm7BP56wDajeXzVfjoSltK
         1OFDsa/qp51WyGH9Th7/cKXl7NyZL1AF7YLoQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719992825; x=1720597625;
        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=vrdL3QcJU/kD06YheeMtMz4eXLJavNhafGT420lqN1U=;
        b=q80cMcaP88Opkyyg21maTi6DE7H5iWaz/7BCRkP4AhC1sBs3+kXiwDftgb5jKNi272
         zwrReSWWgl5qM/CpwZ9NdNNAN9DQYtuopssw2O9KOLeZata19sfGlzoLVAe2iU1ctngA
         5uFuilMcIuV3sb+6FnRBrgaW2ayE85/PhjRSmGraXxBKqv+3hS9MvW98CzUnIQkgwgN4
         GHu2GzzFo0oneHkdag7d0E9IwdaLBA7dPkCK76lE9qclgN/UtIxqmFAU3TG1/uBPd1lr
         cRLR6HTu32ZjiP6fibaDqQ+jFX6wzWLE9MGOl6xVUMqBoCdiyVnPmoP2u/xByVLZdH2P
         V/lw==
X-Gm-Message-State: AOJu0Yzbd5GBwoMSwRi3tH7XH2m2wvlC2SKRRdaWqzl1JgbwmJzdcdOI
	7OjDp5CLUN8PB3Bv8M0GR5b2hqsXpRxKWkdhy5AbbbPCI4BGOE8rUb0fpsWxuPc=
X-Google-Smtp-Source: AGHT+IERHY/zFmd182jAfhjIGe4w8ObwB1Hbuk0mxYXdVZzLSTQ++rY2mjQwNY0hHXXt7K5QqhRIfg==
X-Received: by 2002:a5d:5581:0:b0:362:d875:6dab with SMTP id ffacd0b85a97d-367756a8c60mr7605884f8f.25.1719992824648;
        Wed, 03 Jul 2024 00:47:04 -0700 (PDT)
Date: Wed, 3 Jul 2024 09:47:03 +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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v4 for-4.19? 1/2] cmdline: document and enforce
 "extra_guest_irqs" upper bounds
Message-ID: <ZoUB90zfNiTfy7G-@macbook.local>
References: <03f6674c-f2d1-4ec1-995e-a3e25278ceac@suse.com>
 <c76a60c9-c491-44bd-a6be-0199f0022e3d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c76a60c9-c491-44bd-a6be-0199f0022e3d@suse.com>

On Tue, Jul 02, 2024 at 11:52:04AM +0200, Jan Beulich wrote:
> PHYSDEVOP_pirq_eoi_gmfn_v<N> accepting just a single GFN implies that no
> more than 32k pIRQ-s can be used by a domain on x86. Document this upper
> bound.
> 
> To also enforce the limit, (ab)use both arch_hwdom_irqs() (changing its
> parameter type) and setup_system_domains(). This is primarily to avoid
> exposing the two static variables or introducing yet further arch hooks.
> 
> While touching arch_hwdom_irqs() also mark it hwdom-init.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Instead of passing dom_xen into arch_hwdom_irqs(), NULL could also be
> used. That would make the connection to setup_system_domains() yet more
> weak, though.
> ---
> v4: arch_hwdom_irqs() -> __hwdom_init. Local constant for upper bound in
>     arch_hwdom_irqs(). Re-base.
> v2: Also enforce these bounds. Adjust doc to constrain the bound to x86
>     only. Re-base over new earlier patch.
> 
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -1175,7 +1175,8 @@ common for all domUs, while the optional
>  is for dom0.  Changing the setting for domU has no impact on dom0 and vice
>  versa.  For example to change dom0 without changing domU, use
>  `extra_guest_irqs=,512`.  The default value for Dom0 and an eventual separate
> -hardware domain is architecture dependent.
> +hardware domain is architecture dependent.  The upper limit for both values on
> +x86 is such that the resulting total number of IRQs can't be higher than 32768.
>  Note that specifying zero as domU value means zero, while for dom0 it means
>  to use the default.
>  
> --- a/xen/arch/x86/io_apic.c
> +++ b/xen/arch/x86/io_apic.c
> @@ -2660,18 +2660,20 @@ void __init ioapic_init(void)
>             nr_irqs_gsi, nr_irqs - nr_irqs_gsi);
>  }
>  
> -unsigned int arch_hwdom_irqs(domid_t domid)
> +unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d)
>  {
>      unsigned int n = fls(num_present_cpus());
> +    /* Bounded by the domain pirq EOI bitmap gfn. */
> +    const unsigned int max_irqs = PAGE_SIZE * BITS_PER_BYTE;

Seeing next patch where we return nr_irqs for PVH, should max_irqs be
min(nr_irqs, PAGE_SIZE * BITS_PER_BYTE)?

As that has the bonus of avoiding the nested min() in the expression
below.

>  
> -    if ( !domid )
> -        n = min(n, dom0_max_vcpus());
> -    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, nr_irqs);
> +    if ( is_system_domain(d) )
> +        return max_irqs;
>  
> -    /* Bounded by the domain pirq eoi bitmap gfn. */
> -    n = min_t(unsigned int, n, PAGE_SIZE * BITS_PER_BYTE);
> +    if ( !d->domain_id )
> +        n = min(n, dom0_max_vcpus());
> +    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, min(nr_irqs, max_irqs));
>  
> -    printk("Dom%d has maximum %u PIRQs\n", domid, n);
> +    printk("%pd has maximum %u PIRQs\n", d, n);
>  
>      return n;
>  }
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -695,7 +695,7 @@ struct domain *domain_create(domid_t dom
>              d->nr_pirqs = nr_static_irqs + extra_domU_irqs;
>          else
>              d->nr_pirqs = extra_hwdom_irqs ? nr_static_irqs + extra_hwdom_irqs
> -                                           : arch_hwdom_irqs(domid);
> +                                           : arch_hwdom_irqs(d);
>          d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
>  
>          radix_tree_init(&d->pirq_tree);
> @@ -829,6 +829,24 @@ void __init setup_system_domains(void)
>      if ( IS_ERR(dom_xen) )
>          panic("Failed to create d[XEN]: %ld\n", PTR_ERR(dom_xen));
>  
> +#ifdef CONFIG_HAS_PIRQ
> +    /* Bound-check values passed via "extra_guest_irqs=". */
> +    {
> +        unsigned int n = max(arch_hwdom_irqs(dom_xen), nr_static_irqs);
> +
> +        if ( extra_hwdom_irqs > n - nr_static_irqs )
> +        {
> +            extra_hwdom_irqs = n - nr_static_irqs;
> +            printk(XENLOG_WARNING "hwdom IRQs bounded to %u\n", n);
> +        }
> +        if ( extra_domU_irqs > max(32U, n - nr_static_irqs) )

FWIW; I fear the open-coded 32 here and the one in the
extra_domU_irqs initialization can go out of sync.  It might be
helpful to define this as a constant close to the extra_domU_irqs
definition.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 07:51:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 07:51:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752765.1160992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOum4-0005xG-QN; Wed, 03 Jul 2024 07:51:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752765.1160992; Wed, 03 Jul 2024 07: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 1sOum4-0005x9-Mi; Wed, 03 Jul 2024 07:51:32 +0000
Received: by outflank-mailman (input) for mailman id 752765;
 Wed, 03 Jul 2024 07: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=znpO=OD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sOum3-0005x3-7H
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 07:51:31 +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 0e7e898a-3911-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 09:51:29 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-36796bbf687so28200f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 00:51:29 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-36783e9faa8sm4024108f8f.64.2024.07.03.00.51.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 00:51: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: 0e7e898a-3911-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719993089; x=1720597889; 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=w88dUZqiR9ZiZraGVAuwULR3Vj5iSFh61YZSK8mvFTU=;
        b=S9cO7srpOs4Sie1BmMMyZyxP7quviMjWQyEwnm6CjQsvXUxGNYBhKY4kfotif9Vdke
         i5NwqQEy31wusVPoE7osb8p9Q78ds3I2PqlPMWxsTkfMABVQQZRjmzOYNDQxjBThk+pF
         gjfj/u2AkWWJA+hZhUPlNu5AzzPnTSGAUdLjM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719993089; x=1720597889;
        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=w88dUZqiR9ZiZraGVAuwULR3Vj5iSFh61YZSK8mvFTU=;
        b=D4QjtlS0XNaCue3yAmDWIrgYClJGvwX0t0P+yy37QzIUUUlGwgo8dv6ueQjKXiZ+4V
         82RhBtCCR5HOkYD0D/aA8E2uUxvBIJ8yV0V3G/Mbn4Mtwr6O93pGKTVHa6rNKxZELQNj
         gMkYqJqRYD3olIG1lh79gRTfmhLVGtZqfjlrQIKFFiRP1VDQ2iGdx1nHRD5DPC4M/3pn
         9DqASGMjpP9Aw4fXLI/pkQZtiRZ2gX1hgtm4uoygvZMeVqxVdfTLq94WwvhNZ9sWFSm2
         3AAP2WYjOVyOW7X/yedyR/hYNQoFyDs3ixslmOTGhb6kU3mpC6Y8j+LOuMUEa6YKmjtg
         gZpA==
X-Gm-Message-State: AOJu0Yxk5lBLzDsfOPpdbHUF6ZmugnTqP37aD2b35GUyywP4O4AIcNLK
	WaUGHVFrIBnwW8xEgPKnwyJ/qaRGs2oMFZklD3M4e75ziVzY/4wAEYZwj0qXLJE=
X-Google-Smtp-Source: AGHT+IEj29jTe4DmKJ7WOUHAnoSYS1Cg1Pg5lt1HgxFMsH3eqhi6QPEATx1vuB91C25U7haR7erqmQ==
X-Received: by 2002:adf:f343:0:b0:367:88e8:fed1 with SMTP id ffacd0b85a97d-36788e902demr2457042f8f.25.1719993088535;
        Wed, 03 Jul 2024 00:51:28 -0700 (PDT)
Date: Wed, 3 Jul 2024 09:51:27 +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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v4 for-4.19? 2/2] cmdline: "extra_guest_irqs" is
 inapplicable to PVH
Message-ID: <ZoUC_5FuwYLXdfDv@macbook.local>
References: <03f6674c-f2d1-4ec1-995e-a3e25278ceac@suse.com>
 <e95ea1ea-dd11-4994-9d50-308db4c3772e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <e95ea1ea-dd11-4994-9d50-308db4c3772e@suse.com>

On Tue, Jul 02, 2024 at 11:52:38AM +0200, Jan Beulich wrote:
> PVH in particular has no (externally visible) notion of pIRQ-s. Mention
> that in the description of the respective command line option and have
> arch_hwdom_irqs() also reflect this (thus suppressing the log message
> there as well, as being pretty meaningless in this case anyway).
> 
> Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Since the EOI map physdevop-s aren't available to HVM no matter whether
> the PVH sub-flavor is meant, the condition could in principle be without
> the has_pirq() part. Just that there really isn't any "pure HVM" Dom0.
> ---
> v4: New.
> 
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -1178,7 +1178,8 @@ versa.  For example to change dom0 witho
>  hardware domain is architecture dependent.  The upper limit for both values on
>  x86 is such that the resulting total number of IRQs can't be higher than 32768.
>  Note that specifying zero as domU value means zero, while for dom0 it means
> -to use the default.
> +to use the default.  Note further that the Dom0 setting has no useful meaning
> +for the PVH case; use of the option may have an adverse effect there, though.

I would maybe remove the has_pirq() check and just mention in the
comment added ahead of the is_hvm_domain() check that PVH/HVM guests
never have access to the PHYSDEVOP_pirq_eoi_gmfn_v{1,2} hypercall,
regardless of whether XENFEAT_hvm_pirqs is exposed.

Would that be OK with you?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 08:01:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 08:01:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752777.1161002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOuvL-0008QE-Rl; Wed, 03 Jul 2024 08:01:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752777.1161002; Wed, 03 Jul 2024 08:01: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 1sOuvL-0008Q7-Oh; Wed, 03 Jul 2024 08:01:07 +0000
Received: by outflank-mailman (input) for mailman id 752777;
 Wed, 03 Jul 2024 08:01: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOuvL-0008Q1-79
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 08:01:07 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 62e39f2e-3912-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 10:01:00 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52cf4ca8904so8305761e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 01:01: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
 d2e1a72fcca58-70804a95fc4sm9745282b3a.215.2024.07.03.01.00.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 01:00: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: 62e39f2e-3912-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719993660; x=1720598460; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=O2Jm6t1cLsyW64uhwjDOis+9KRtVEjq1Ra7yGz6jylk=;
        b=TTuK2ZrWWlrBQ/sg+CJicNt27AB4gOrDWzghuPstoLp3pEYA3E6742Bq/ibBOUe5jM
         ruWyZmxh0hs/+ZFKnFubFXs7z7vIAUrjJafYf56XLSmHfXT2ZBi15pqZoXMfXKNs/b11
         rsTqiBETbmmLRyf6IlJTLIvHkp6hWVCH8I8bshr+S147kaiOde4oQfhDMDVftynf0GLF
         7UAxB1qoFmL3U4NJzAQqJXGFpcL3KtRtgdPcpIsKVCVPH2Ws6w4dzCZdOVbDGwI2Y4Rt
         7vC0wN457dSeb2d/cXbsb5EPpueGzksMxrXVef6jJzaJhcjn7fpDMkZC4rVQjHjQsoWk
         7ILA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719993660; x=1720598460;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O2Jm6t1cLsyW64uhwjDOis+9KRtVEjq1Ra7yGz6jylk=;
        b=spojS117hNLNepBmb9vuDLhZdjsqaZPf/Bge3E6LTyldRHDYF80Pn//W0kZs3ZdeRl
         GnTpyil243tVpdiDQJYd4KXRNkRUTgMy1kc+FV29YRVoEE3rlHjauysb8Ywlv845gZlZ
         iCKxjyB3FQZ186ctsQBPnMFdYyoVPvDDdvFr0y4UWrCxjbyx0Jr3KJ5SXiw5+x4QVEDs
         0sLTAPrfl/bY8B8INeKubYCmKfeEYTi7jK5XzMxgAXQeDivZNPxP1ig18dIgA1v2eIh1
         xGOCustLZiUsg1NRrUNi1NGX4rj72wJ9MQ1lBVw6VCnVdtH/0ZRIZXQeZuGvhgHDGNid
         z2tQ==
X-Gm-Message-State: AOJu0Yxve/rJUEjQPK3gONhwqrpmX60xNDT4Pxow5pYn8hFzMTCt6Skr
	tCiWYVHNzpUpfxyWMREcVZ3Oe75JJf/9CQ2Mv48ZjbqQEmKS2+UdCuM1cEt8Vg==
X-Google-Smtp-Source: AGHT+IHS4Rs7j/m1k66RO2IxMJE76orshBdeD2urJ4KH7gUHf03MnFmT+uMq6lpaRd4agCXNiXc18Q==
X-Received: by 2002:a05:6512:519:b0:52c:d639:dd4b with SMTP id 2adb3069b0e04-52e8266eab5mr6088290e87.23.1719993659760;
        Wed, 03 Jul 2024 01:00:59 -0700 (PDT)
Message-ID: <c1e981e2-a8fe-42ed-882a-5a8714ff654c@suse.com>
Date: Wed, 3 Jul 2024 10:00:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 for-4.19? 2/2] cmdline: "extra_guest_irqs" is
 inapplicable to PVH
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>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <03f6674c-f2d1-4ec1-995e-a3e25278ceac@suse.com>
 <e95ea1ea-dd11-4994-9d50-308db4c3772e@suse.com>
 <ZoUC_5FuwYLXdfDv@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: <ZoUC_5FuwYLXdfDv@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.07.2024 09:51, Roger Pau Monné wrote:
> On Tue, Jul 02, 2024 at 11:52:38AM +0200, Jan Beulich wrote:
>> PVH in particular has no (externally visible) notion of pIRQ-s. Mention
>> that in the description of the respective command line option and have
>> arch_hwdom_irqs() also reflect this (thus suppressing the log message
>> there as well, as being pretty meaningless in this case anyway).
>>
>> Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Since the EOI map physdevop-s aren't available to HVM no matter whether
>> the PVH sub-flavor is meant, the condition could in principle be without
>> the has_pirq() part. Just that there really isn't any "pure HVM" Dom0.
>> ---
>> v4: New.
>>
>> --- a/docs/misc/xen-command-line.pandoc
>> +++ b/docs/misc/xen-command-line.pandoc
>> @@ -1178,7 +1178,8 @@ versa.  For example to change dom0 witho
>>  hardware domain is architecture dependent.  The upper limit for both values on
>>  x86 is such that the resulting total number of IRQs can't be higher than 32768.
>>  Note that specifying zero as domU value means zero, while for dom0 it means
>> -to use the default.
>> +to use the default.  Note further that the Dom0 setting has no useful meaning
>> +for the PVH case; use of the option may have an adverse effect there, though.
> 
> I would maybe remove the has_pirq() check and just mention in the
> comment added ahead of the is_hvm_domain() check that PVH/HVM guests
> never have access to the PHYSDEVOP_pirq_eoi_gmfn_v{1,2} hypercall,
> regardless of whether XENFEAT_hvm_pirqs is exposed.
> 
> Would that be OK with you?

Okay-ish. That's why I had the post-commit-message remark on this very aspect.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 08:18:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 08:18:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752786.1161011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOvCL-00026x-91; Wed, 03 Jul 2024 08:18:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752786.1161011; Wed, 03 Jul 2024 08:18:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOvCL-00026q-6R; Wed, 03 Jul 2024 08:18:41 +0000
Received: by outflank-mailman (input) for mailman id 752786;
 Wed, 03 Jul 2024 08:18: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=znpO=OD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sOvCK-00026k-Fe
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 08:18:40 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d8f9ae42-3914-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 10:18:37 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-52e764bb3fbso6838493e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 01:18:37 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3678c379cc6sm2873123f8f.49.2024.07.03.01.18.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 01:18: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: d8f9ae42-3914-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719994717; x=1720599517; 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=TOZyxlS/Noxst2/gNExI/arop/PCwkaNAvZtpITBPRA=;
        b=Ss/QDBGIXj5HVqasjmyiMX98NvmtrnK5jH8ah3uYLUzgfrcasgwu1fPyBSuwA0RlHD
         BqjiKuUBpWgP0aEWcigbydWnZQ52xpjLzwDWqbiE5SwKmFQXClWZr6rsQ7pnDaKevGNb
         x4rsf281/QAMr6cdQD6ElVgL+Y40No5PfAHZ4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719994717; x=1720599517;
        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=TOZyxlS/Noxst2/gNExI/arop/PCwkaNAvZtpITBPRA=;
        b=UlpdR0sA/9OVcQ5wviqHWOx12AE34v5+RUpN2sYC/J5gGjd2k/uUJpr3wzRrSuRWW+
         Yh+fv3yEB2RRM5oV84FWqQaxhpSEmOZ/qz0SIgVC6oLBsgf/cMlyJCJWnOjAkIE1N4si
         6GzZgwOcMmS8+4B58NDJy2q2ECU6YITzwDE90XLUrdMvOr6auR7oLp78RKtUB9A+4kad
         rVG8OsZY/LgZoxeiat5QR/LOtgeOnnZpCzmng1KqecSipS44wgm0vricuBtzv5atEIu1
         VlLpR/9WwmWo8KYm/zkSjnWj8uMMvUXruZoHfwSCJQB9TWN8QzxB1g9ixjtBLJVA0FWZ
         UQYQ==
X-Gm-Message-State: AOJu0YzXdHpplW8itQ1o6r/cCKLGUkGWaNs4xZ7nSZNPFAHDiGdeowHx
	5qxUyvTmbNzbejWPWvYqTlfKCh1dTjjzCwWB5cygP0TKOe7BIXCeJgsrJGwu6k8=
X-Google-Smtp-Source: AGHT+IFslHO1Ik6gGQPwnDjGwuE+S/XsP1kdXU21bVE8suOp3XU1LWj29jX0pPQjv8Qo8AVcL2eTRw==
X-Received: by 2002:a05:6512:ac4:b0:52e:7684:a385 with SMTP id 2adb3069b0e04-52e826fc38dmr6576067e87.52.1719994716580;
        Wed, 03 Jul 2024 01:18:36 -0700 (PDT)
Date: Wed, 3 Jul 2024 10:18:35 +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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v4 for-4.19? 2/2] cmdline: "extra_guest_irqs" is
 inapplicable to PVH
Message-ID: <ZoUJW0bUOf-QJFP9@macbook.local>
References: <03f6674c-f2d1-4ec1-995e-a3e25278ceac@suse.com>
 <e95ea1ea-dd11-4994-9d50-308db4c3772e@suse.com>
 <ZoUC_5FuwYLXdfDv@macbook.local>
 <c1e981e2-a8fe-42ed-882a-5a8714ff654c@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c1e981e2-a8fe-42ed-882a-5a8714ff654c@suse.com>

On Wed, Jul 03, 2024 at 10:00:51AM +0200, Jan Beulich wrote:
> On 03.07.2024 09:51, Roger Pau Monné wrote:
> > On Tue, Jul 02, 2024 at 11:52:38AM +0200, Jan Beulich wrote:
> >> PVH in particular has no (externally visible) notion of pIRQ-s. Mention
> >> that in the description of the respective command line option and have
> >> arch_hwdom_irqs() also reflect this (thus suppressing the log message
> >> there as well, as being pretty meaningless in this case anyway).
> >>
> >> Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> Since the EOI map physdevop-s aren't available to HVM no matter whether
> >> the PVH sub-flavor is meant, the condition could in principle be without
> >> the has_pirq() part. Just that there really isn't any "pure HVM" Dom0.
> >> ---
> >> v4: New.
> >>
> >> --- a/docs/misc/xen-command-line.pandoc
> >> +++ b/docs/misc/xen-command-line.pandoc
> >> @@ -1178,7 +1178,8 @@ versa.  For example to change dom0 witho
> >>  hardware domain is architecture dependent.  The upper limit for both values on
> >>  x86 is such that the resulting total number of IRQs can't be higher than 32768.
> >>  Note that specifying zero as domU value means zero, while for dom0 it means
> >> -to use the default.
> >> +to use the default.  Note further that the Dom0 setting has no useful meaning
> >> +for the PVH case; use of the option may have an adverse effect there, though.
> > 
> > I would maybe remove the has_pirq() check and just mention in the
> > comment added ahead of the is_hvm_domain() check that PVH/HVM guests
> > never have access to the PHYSDEVOP_pirq_eoi_gmfn_v{1,2} hypercall,
> > regardless of whether XENFEAT_hvm_pirqs is exposed.
> > 
> > Would that be OK with you?
> 
> Okay-ish. That's why I had the post-commit-message remark on this very aspect.

I think adding the has_pirq() check is confusing, as the option is not
available to PVH.  Even if it was available it won't change the fact
that PHYSDEVOP_pirq_eoi_gmfn_v{1,2} hypercall is not reachable.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 08:44:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 08:44:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752794.1161021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOvai-0006dY-5p; Wed, 03 Jul 2024 08:43:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752794.1161021; Wed, 03 Jul 2024 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 1sOvai-0006dR-3L; Wed, 03 Jul 2024 08:43:52 +0000
Received: by outflank-mailman (input) for mailman id 752794;
 Wed, 03 Jul 2024 08: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOvah-0006dL-Aa
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 08:43: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 5dee1559-3918-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 10:43:49 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-362f62ae4c5so213888f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 01: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
 d2e1a72fcca58-70aee2bbf17sm649963b3a.29.2024.07.03.01.43.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 01: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: 5dee1559-3918-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719996228; x=1720601028; 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=gZzNfk2HuwNPdiQxm9q03aWIREj2JhAxXzJk5x19kaY=;
        b=EBVHQtLjWaTztBj+DdDNFi0EsZAZYrK+RdtsMbMwnylzXPH0fCQC+N7bfRoAe3xfYo
         q8FjqCgY9hxtl6JIqtMGn3hI7CA2L5Ehx4ZBrI5z0a2tpR3gQo2KydWh7bgB2EurlBHS
         dslspRl/iLi/kC7j4zc3nIPjGJ7sDc2oPyMg9tVBH0KYeWP+sOUSYJIaTRS/nBsrPJOI
         V6wEHR4ATGwOLKjFF9wFzxkX1E54Jz/QeqzRQ7ri1iWC5vZueFPW7Lrb2WtLKVpQ9GU6
         rErycT9Wf8I8h5V1svlVK+2zNoJiU11++zdrP49dgzSws/XZQ11Fp7D2P+r9SqgA8pwF
         dbaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719996228; x=1720601028;
        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=gZzNfk2HuwNPdiQxm9q03aWIREj2JhAxXzJk5x19kaY=;
        b=dK+KvHbLNU5ZWGZvyr3RU1jOEsGrDUkYJRxzrzhQRate8UJtVLupUil52wof8AvIL0
         0sQ31avOq0mxASQjtp5UsoFrk+XY3PLFlYzK5Y2OjCF2gKya60aTvzqPiDBSypW1XriB
         P10RqGeuOpfMnFxEZn6fztKBPIOBpm2FKy9k30PM2c5KIQkQVV0TzgM+kSRX2M+KRdm9
         w2RSrUf296I3cXDrRZNO6cSvKUjNldgm6YffS8eIbGhv5j9DCE393msCFAOaJ4Aca9OM
         /tQmTiFML9Iak6SLdQvN115kAb0pGuhzSmBUgpdFsX6jqzKopaFIzqwpk2iu/iQBTY7g
         RAMw==
X-Gm-Message-State: AOJu0Yzd47Zsqa7UDs8Nuw657qm1UyFcnSybp4MGGqQ5HQu0HQ8SduCL
	516IO3pJQ+Q3QY5dwVm9I1mTBQ/jrvVGR0Bx/GHOh5rvcyKLlpzJikXAycl4pYwGvtj85LWjb/E
	=
X-Google-Smtp-Source: AGHT+IFf5dDqprezV+7XEqWt4TdsI9OzI5wSLS5kaGIpaiTOSdOA/keVEOwaMNjwltHplRBXftpoAQ==
X-Received: by 2002:a5d:4f8e:0:b0:360:7856:fa62 with SMTP id ffacd0b85a97d-367947a35e3mr820279f8f.15.1719996228493;
        Wed, 03 Jul 2024 01:43:48 -0700 (PDT)
Message-ID: <789d567b-db3a-4c4d-9eac-f73232777244@suse.com>
Date: Wed, 3 Jul 2024 10:43:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v5 for-4.19? 0/2] new extra_guest_irqs adjustment
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>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.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

New patch 1 addresses late review comments raised by Roger for a change
that was already committed.

1: amend 'cmdline: document and enforce "extra_guest_irqs" upper bounds'
2: cmdline: "extra_guest_irqs" is inapplicable to PVH

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 08:45:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 08:45:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752799.1161032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOvbu-000794-Ff; Wed, 03 Jul 2024 08:45:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752799.1161032; Wed, 03 Jul 2024 08:45:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOvbu-00078x-CF; Wed, 03 Jul 2024 08:45:06 +0000
Received: by outflank-mailman (input) for mailman id 752799;
 Wed, 03 Jul 2024 08:45:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOvbt-00078r-Am
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 08:45:05 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ab25bf8-3918-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 10:45:04 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2ebeefb9a7fso57136661fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 01:45: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
 98e67ed59e1d1-2c91ce6ec5fsm10147186a91.26.2024.07.03.01.44.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 01:45: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: 8ab25bf8-3918-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719996304; x=1720601104; 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=BDCTqSs87S2kysd0+eBbmLOryx1PJ7tmmOJyFjEQ740=;
        b=XlWxVrO8JmUSAFvmQvsQm8kel0r2S34ibosBiZh43NjhzBboM1Kj6lVEQIMFW6GdM2
         19dFEgU29C6Ms0V41E42lFFUYDwKP6tOx96NlFUZAFSqsv+4ngkw3oXBlXgll/0lOd+m
         RkVfSUEU0+EgNiZFHzl0IXfATdtr6PPcwnwuS9zFpt26khUPJI6IIVGn3BNU1jnpCqcZ
         bHdRhyGtDWxi+fuerlZIQXltvfko59WSqCv5dVdVowheyOhTABSQtAQNMIEEbxlx/giA
         VKJaKB+EEJIYLn+biCFXv2FSiE2G+hNR8Hnyh2SCNyOvNOwmqhhlclb6Q7jUDUNOSaSD
         7Fpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719996304; x=1720601104;
        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=BDCTqSs87S2kysd0+eBbmLOryx1PJ7tmmOJyFjEQ740=;
        b=ZCkomMZJCoHIpNzXQv7kW+nFQFlY8UjUm/K5af6WNe1BgdVfZllHowzR8Zaeaw01Yj
         zwVtDqI1Y0k+EnPlkUYguF0uR39C4V0QxwKzWBEYfih2xpBUjjYCDxvNqh9IE+GJ9kUa
         +vRoHNoDG7wjZu+Rl0HZj1w9HS1CVCcQ+6fmoex61xGXDfTCLEyH/SNpvBupiVJr7gmH
         rees7cjIoMKNtiEN1Q+6YopiCGuGAbbciCgiimfFx6wvRlmgh0UE8vdQsYGhOp959dwR
         mU1MIlISBVzICZwaF64sWRY8VqzqoSaw4/U/vdv/aifphl9q1ye9AW0VOOV1eXERamZV
         2FIw==
X-Gm-Message-State: AOJu0Yz+qaaTvr8xmpxh7zIa0ZZW1GLT3k7zsy+0lVJ0LbOM+J6us3Fx
	7jDk0q0XpsSAXRtDmkZmMue6TGxtejilHI55vmaFsMvuBEMEUOuKlZ22mrRubwtxjYNZ5ms++/4
	=
X-Google-Smtp-Source: AGHT+IFEwk7u3df4uuhAhO2F1q0i6rVdNomzjaSGpN+BulGdnLpCKVFksGcn1z6S/PSl9XdwtVmyEQ==
X-Received: by 2002:a2e:ab1b:0:b0:2ee:7a54:3b08 with SMTP id 38308e7fff4ca-2ee7a543b70mr19006461fa.3.1719996303772;
        Wed, 03 Jul 2024 01:45:03 -0700 (PDT)
Message-ID: <37f1a5b8-9b54-42f1-845f-dddcf0b0401e@suse.com>
Date: Wed, 3 Jul 2024 10:44:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v5 for-4.19? 1/2] amend 'cmdline: document and enforce
 "extra_guest_irqs" upper bounds'
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>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <789d567b-db3a-4c4d-9eac-f73232777244@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: <789d567b-db3a-4c4d-9eac-f73232777244@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Address late review comments for what is now commit 17f6d398f765:
- bound max_irqs right away against nr_irqs
- introduce a #define for a constant used twice

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

--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2663,15 +2663,16 @@ void __init ioapic_init(void)
 unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d)
 {
     unsigned int n = fls(num_present_cpus());
-    /* Bounded by the domain pirq EOI bitmap gfn. */
-    const unsigned int max_irqs = PAGE_SIZE * BITS_PER_BYTE;
+    /* Bounding by the domain pirq EOI bitmap capacity. */
+    const unsigned int max_irqs = min_t(unsigned int, nr_irqs,
+                                        PAGE_SIZE * BITS_PER_BYTE);
 
     if ( is_system_domain(d) )
         return max_irqs;
 
     if ( !d->domain_id )
         n = min(n, dom0_max_vcpus());
-    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, min(nr_irqs, max_irqs));
+    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, max_irqs);
 
     printk("%pd has maximum %u PIRQs\n", d, n);
 
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -353,7 +353,8 @@ static int late_hwdom_init(struct domain
 #ifdef CONFIG_HAS_PIRQ
 
 static unsigned int __read_mostly extra_hwdom_irqs;
-static unsigned int __read_mostly extra_domU_irqs = 32;
+#define DEFAULT_EXTRA_DOMU_IRQS 32U
+static unsigned int __read_mostly extra_domU_irqs = DEFAULT_EXTRA_DOMU_IRQS;
 
 static int __init cf_check parse_extra_guest_irqs(const char *s)
 {
@@ -839,7 +840,8 @@ void __init setup_system_domains(void)
             extra_hwdom_irqs = n - nr_static_irqs;
             printk(XENLOG_WARNING "hwdom IRQs bounded to %u\n", n);
         }
-        if ( extra_domU_irqs > max(32U, n - nr_static_irqs) )
+        if ( extra_domU_irqs >
+             max(DEFAULT_EXTRA_DOMU_IRQS, n - nr_static_irqs) )
         {
             extra_domU_irqs = n - nr_static_irqs;
             printk(XENLOG_WARNING "domU IRQs bounded to %u\n", n);



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 08:45:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 08:45:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752806.1161041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOvcc-0007iI-SH; Wed, 03 Jul 2024 08:45:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752806.1161041; Wed, 03 Jul 2024 08:45:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOvcc-0007iB-PW; Wed, 03 Jul 2024 08:45:50 +0000
Received: by outflank-mailman (input) for mailman id 752806;
 Wed, 03 Jul 2024 08:45:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOvcb-00078r-Iw
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 08:45:49 +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 a562c64e-3918-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 10:45:48 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2ec3f875e68so57024141fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 01:45: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
 d9443c01a7336-1fac1598cfbsm97873805ad.250.2024.07.03.01.45.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 01:45: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: a562c64e-3918-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719996348; x=1720601148; 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=EcfcQ+bs+vIY1uuTMe6ACJLGBx+6P+7pissTcD0vBvA=;
        b=WyFiO969rwhEPZulsGDHL1rQpuclQyvtyvnHPuPOVmdg7mX1dNAwLk6IY6wnYkaOeq
         T53Pa7Tm8huBQhEYPYHNDG7Za+eTLp4fTRg2tJ2LG7u+HlX2QHcuDPPd6Stbg2pI27I7
         q7yScyYq5jLJW4aOHeAC5+w71Vh6XivKxb7rL/XZukN+cgEzOWv8pMXwq3gHiWHlyMwZ
         evHWloottmdTPtvFuEhQ+SGBDiODzOvBFqV4w93Nz8FJLWIRvUBzyqfPHL6mHlzrC65H
         j0Ms/w1x/LxORUhGmcsUO9KT7WvxJB6o4+jiCOY/36VWuP3YHpJ3b7MArvy4xvBLdogr
         0doQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719996348; x=1720601148;
        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=EcfcQ+bs+vIY1uuTMe6ACJLGBx+6P+7pissTcD0vBvA=;
        b=pl+yytNZAPbY4rMBsQcerqOVMbYX4/k0HrlljbqCx+8eavdnfZzGmtsGfIeRqjeBK6
         BjB1MT6BV/4YPnfOjYQYI/gTagk75fTClA0FQlvXWjCTwoCvHleA+5u0ci47sPpiCfYk
         6m1KStrup7fohQV8d4Gd902v/qqdj1FP0jCSS574DqCuqg81eC8RzLzEA6r9zwEa7orz
         BwaPdKhZm1pqNJ56M1i0dkQf2PrIQSBRXD+QSzl0+rJvaIMyhVe0U2DFQJp4NRWQOhDx
         tzWKrHOvKHG8TxYtvnzAfJ6MAnKxZGiWLJdoP1I9qpKsV5LHvWJTUtdztDrLkPy6Vk9E
         QlHg==
X-Gm-Message-State: AOJu0YyKtYpwDFn1OGqMRvSSN4wce3KCoOcduCfwuG0BpJsOErFDVI4K
	Dr1XMx1WGtdKTND9RxhrWxZWbcM9+8J95vH89UPE6lxiXVzLHLU6otOi+mzeSuBJrnKLHnpAbrI
	=
X-Google-Smtp-Source: AGHT+IH6KfGmXMpNReMTfMlwQy8KMoTvARYUf9ANCuVa5uDQa0xWUqbHuISwmiGfR0RRf0AW/X+4YQ==
X-Received: by 2002:a2e:be9b:0:b0:2ec:3dd4:75f7 with SMTP id 38308e7fff4ca-2ee5e6c9a24mr75032071fa.47.1719996348594;
        Wed, 03 Jul 2024 01:45:48 -0700 (PDT)
Message-ID: <de22beee-bd51-4169-b84d-88f4b452473a@suse.com>
Date: Wed, 3 Jul 2024 10:45:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v5 for-4.19? 2/2] cmdline: "extra_guest_irqs" is inapplicable
 to PVH
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>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <789d567b-db3a-4c4d-9eac-f73232777244@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: <789d567b-db3a-4c4d-9eac-f73232777244@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

PVH in particular has no (externally visible) notion of pIRQ-s. Mention
that in the description of the respective command line option and have
arch_hwdom_irqs() also reflect this (thus suppressing the log message
there as well, as being pretty meaningless in this case anyway).

Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v5: Remove has_pirq() check; update comment accordingly.
v4: New.

--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1183,7 +1183,8 @@ versa.  For example to change dom0 witho
 hardware domain is architecture dependent.  The upper limit for both values on
 x86 is such that the resulting total number of IRQs can't be higher than 32768.
 Note that specifying zero as domU value means zero, while for dom0 it means
-to use the default.
+to use the default.  Note further that the Dom0 setting has no useful meaning
+for the PVH case; use of the option may have an adverse effect there, though.
 
 ### ext_regions (Arm)
 > `= <boolean>`
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2670,6 +2670,10 @@ unsigned int __hwdom_init arch_hwdom_irq
     if ( is_system_domain(d) )
         return max_irqs;
 
+    /* PVH (generally: HVM) can't use PHYSDEVOP_pirq_eoi_gmfn_v{1,2}. */
+    if ( is_hvm_domain(d) )
+        return nr_irqs;
+
     if ( !d->domain_id )
         n = min(n, dom0_max_vcpus());
     n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, max_irqs);



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 08:47:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 08:47:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752819.1161052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOveU-0008O8-7e; Wed, 03 Jul 2024 08:47:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752819.1161052; Wed, 03 Jul 2024 08:47: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 1sOveU-0008O1-4o; Wed, 03 Jul 2024 08:47:46 +0000
Received: by outflank-mailman (input) for mailman id 752819;
 Wed, 03 Jul 2024 08:47: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOveT-0008Nv-K1
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 08:47:45 +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 e9b5e098-3918-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 10:47:43 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2eabd22d3f4so51247271fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 01:47: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
 d9443c01a7336-1fac10d20c1sm97649595ad.30.2024.07.03.01.47.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 01:47: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: e9b5e098-3918-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719996463; x=1720601263; 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=TXPVmiae5JlIZDhZS6lJxRwLBbSAAG6pDUgsS72qZek=;
        b=SXu34zf/oIcCJNS/9Hr2FPC25tSbF4gQQFjDQJbpJQ+f2Guz6z+GydGbDBhiDJbHC7
         9aaiKTZEpWKINb3XTw/f1yM1wZbpw7i7XurB5KQ+auAtZUANfpYej66JijcVgbnHzKZw
         7rgec+Gb2uMvKCePCgH5QBYZTchDol08AOqnRIzwVwir8BWt1+vRgu/PxJPU1geVQPXv
         6hro6/2sB4+32aDkttV6DD3ubl8HC9Q7bNnuiEKbqur0PZ8SPXBHWVb/5K4SxtjU00NF
         iSl2zAAS5FVoCOGW/wWH8zxr4WE0DQYnK3LmDreWHafkXrtQpr3s4ZxvFbbBVsCQEY5W
         UKjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719996463; x=1720601263;
        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=TXPVmiae5JlIZDhZS6lJxRwLBbSAAG6pDUgsS72qZek=;
        b=aKrXZ7F3oDqoTCQysQSKxu+ImOUQtT+VdYaE/w9AdCazJLD9lHVuASlRTtkgOTuqil
         /eIBap9gAT2HyhJ9jVZYDt07kusPCWoQXxdBgRsRlvs6rXCRzgSNKGZczYmoHdZFUXFT
         ncj+A1JFU7wJyTy5DLZ9YYhQ26bq15P8H9pvjR+uhqooHxLu53Xt2sy68Hljw8JxTS4/
         9gkmI7JP2qZZEgR4ZkDa7HRB9WufS7Fs1v5aFGhPtH6//mpu2V0AEyxUA77xM9KQyzhs
         mecCJMQfeFGMew1HHlKHaOvKiuLsN4h8G36ma18VWGm+Jx0vrjiDQCfKDTyYBupJ5iGq
         F2ow==
X-Gm-Message-State: AOJu0YxrGbXtUnscVRF2A6OyiEPhxEA46wFPEyQryJ0n6SRqAHoTCVXd
	zkQIEaWuq26VH+I+l2N3tyPD5W4ixmiw8KDJMOCByqp4ByFz0RcjRqqkxbeFS71YbniXQJtAkvQ
	=
X-Google-Smtp-Source: AGHT+IEa+A69UTkkpvxJCGfR9GWDmolgynmzYM6cj2/wSRoRphL7ueaSV2iNB5njrGFjSni3cb9efw==
X-Received: by 2002:a2e:240a:0:b0:2ec:1708:4daf with SMTP id 38308e7fff4ca-2ee5e6f542emr61016051fa.47.1719996463066;
        Wed, 03 Jul 2024 01:47:43 -0700 (PDT)
Message-ID: <0d0eb666-fc0b-4775-99ce-61f74b6c584b@suse.com>
Date: Wed, 3 Jul 2024 10:47:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 for-4.19? 1/2] amend 'cmdline: document and enforce
 "extra_guest_irqs" upper bounds'
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>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <789d567b-db3a-4c4d-9eac-f73232777244@suse.com>
 <37f1a5b8-9b54-42f1-845f-dddcf0b0401e@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: <37f1a5b8-9b54-42f1-845f-dddcf0b0401e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.07.2024 10:44, Jan Beulich wrote:
> Address late review comments for what is now commit 17f6d398f765:
> - bound max_irqs right away against nr_irqs
> - introduce a #define for a constant used twice
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Actually should also have added

Requested-by: Roger Pau Monné <roger.pau@citrix.com>

above the S-o-b.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 08:47:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 08:47:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752820.1161062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOveX-0000CJ-FU; Wed, 03 Jul 2024 08:47:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752820.1161062; Wed, 03 Jul 2024 08:47:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOveX-0000CA-CH; Wed, 03 Jul 2024 08:47:49 +0000
Received: by outflank-mailman (input) for mailman id 752820;
 Wed, 03 Jul 2024 08:47:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mAj5=OD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOveW-0000Bd-Fg
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 08:47:48 +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 ebdce20f-3918-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 10:47:47 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5854ac817afso3080690a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 01:47:47 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72aaf188afsm486739466b.24.2024.07.03.01.47.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 01:47: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: ebdce20f-3918-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1719996467; x=1720601267; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=g282Etc/lucc/LAGc4Tu1MqJLAdGFp+q8jN+uKR5CmE=;
        b=MsG0rYYkSGp03M70RuEVHS9XG3/cNN8GEDWazCDTj7h3ZNgFq1k5mcGKI6NEJHPPIL
         4lgh4ctkusbLQeMH0uPqQFeA/qrLlYOz4gf0GbKznzv6pPe/1f56sGUeAt+vFnKj9TPZ
         Ivibt+RavjVTjJwGQR3ZRexqS81dZeBVULLNzRa6arU1iKnEVBfCwK6+8dKd2SSYSDy/
         4jZzxZ/1r8F5LI448dLsNSVmAyh7w3RcK7/2iDLbxuW98za62yQiqWrngGobDqCzNkF0
         ZAstvk4+Kz0zktcBmKGYCGGT5CJjsFGpM81mRTib7ro3ti+vLWd+RIJxm26mYKyvrGz8
         Wuyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719996467; x=1720601267;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=g282Etc/lucc/LAGc4Tu1MqJLAdGFp+q8jN+uKR5CmE=;
        b=LALSqmY0+Bbq8Mgk2ud8G7ZnyMv5mAgP5T4knzak/XMH7jbixf3GXwhPRk/kJH5IrB
         E9s4nHqOCJlIu782FeZxao3E+tACX/7Dq6t2bxD+DRDGB5nJ17YwPq48qE3r5YraUaYe
         tVmg+DFUhw76a8scb2hZ0v0xOLjQtBs0UWhApf41xr2MojmZv+JTUfi9g7DshD0aE4lq
         4/1+o91OOXrjWnB9/E+DzMJu/CTd5zgqg5j1I5KbBMAKRPwcmg+kKjQoE7JWRyPZ0rjM
         OlMUf5ZffrsqCB7cYDzJzinPCZucspGAqr2+hILiJYqomhXnyDixRj7Ywnul0pE8p2vU
         hBIw==
X-Forwarded-Encrypted: i=1; AJvYcCVS9sb0vKgJXs6OH/DqoZX4udHaMKAc2PF+lkwxYCPmYczyeoEaEMGmbJf1iinHodiD8kWU8Sa7KUTDqFy7HdO7ZKViorrbTNCVja+dTgA=
X-Gm-Message-State: AOJu0YxVi05T9gsuBPvOvP7quLgav5nmlCJS8Py6GX35pN2BSxYhTF1N
	qmOVJF1zKERfl5A8DvrvC2BkylOFaPd53YG/ztUUPWgreEH4G0QB
X-Google-Smtp-Source: AGHT+IGPzGxDOveHMzkGS67sicRveuuFI1uzRAqNi96SayCAWCTyTSfTAoB22G+jC6gfyEvxioUltA==
X-Received: by 2002:a17:906:229b:b0:a72:4281:bc72 with SMTP id a640c23a62f3a-a75144dd493mr740986166b.63.1719996466451;
        Wed, 03 Jul 2024 01:47:46 -0700 (PDT)
Message-ID: <ad6835dad7bee82bbe0aa66ca9a5070412fcd826.camel@gmail.com>
Subject: Re: [PATCH v14 1/9] xen: introduce generic non-atomic test_*bit()
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.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>, Shawn Anastasio
 <sanastasio@raptorengineering.com>,  Roger Pau =?ISO-8859-1?Q?Monn=E9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Date: Wed, 03 Jul 2024 10:47:45 +0200
In-Reply-To: <630de29e-e350-47ee-b451-5312befde5ce@suse.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
	 <2f60d1fd7b3ac7d603486ce03a112d58352bf16d.1719917348.git.oleksii.kurochko@gmail.com>
	 <630de29e-e350-47ee-b451-5312befde5ce@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-03 at 09:24 +0200, Jan Beulich wrote:
> On 02.07.2024 13:01, Oleksii Kurochko wrote:
> > The following generic functions were introduced:
> > * test_bit
> > * generic__test_and_set_bit
> > * generic__test_and_clear_bit
> > * generic__test_and_change_bit
> >=20
> > These functions and macros can be useful for architectures
> > that don't have corresponding arch-specific instructions.
> >=20
> > Also, the patch introduces the following generics which are
> > used by the functions mentioned above:
> > * BITOP_BITS_PER_WORD
> > * BITOP_MASK
> > * BITOP_WORD
> > * BITOP_TYPE
> >=20
> > The following approach was chosen for generic*() and arch*() bit
> > operation functions:
> > If the bit operation function that is going to be generic starts
> > with the prefix "__", then the corresponding generic/arch function
> > will also contain the "__" prefix. For example:
> > =C2=A0* test_bit() will be defined using arch_test_bit() and
> > =C2=A0=C2=A0 generic_test_bit().
> > =C2=A0* __test_and_set_bit() will be defined using
> > =C2=A0=C2=A0 arch__test_and_set_bit() and generic__test_and_set_bit().
> >=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > Reviewed-by: Jan Beulich <jbeulich@suse.com>
> > ---
> > Changes in V14:
> > =C2=A0- Nothing changed. Only Rebase.
> > ---
> > Changes in V13:
> > =C2=A0- add Reviewed-by: Jan Beulich <jbeulich@suse.com>
> > ---
> > Changes in V12:
> > =C2=A0- revert change of moving the definition of BITS_PER_BYTE from
> > <arch>/bitops.h to xen/bitops.h.
> > =C2=A0=C2=A0 ( a separate patch will be provided to put BITS_PER_BYTE t=
o
> > proper place )
>=20
> Oleksii - seeing that this wasn't actually done (as noticed by
> Michal), my
> intention would be to adjust the patch while committing. Please let
> me know
> shortly if there is anything I'm overlooking, possibly implying the
> intended
> adjustment shouldn't be done (and further suggesting that the
> revision log
> then is wrong and/or incomplete). As indicated, I'll need another
> reply of
> yours here (and for subsequent patches; maybe simply the entire
> series)
> anyway, as a release-ack is still missing.
The changes log is correct.

If we are going to drop BITS_PER_BYTE in xen/bitops.h, then it will
need to be added back to <arm>/bitops.h as it was done in "Changes in
V12". (This change was lost somewhere due to an incorrect rebase by
me.).

Regarding Release-Acked-By, I was okay to have this patch series during
Soft Code Freeze but now we are in Hard Code Freeze state where I am
expecting to see only bug/security fixes.

Unfortunately, it would be better based on current state of release to
wait 4.20 staging branch.

Based on that let me know if you want me to sent a new patch series
version with BITS_PER_BYTE adjustments or it still could be fix during
the commit when 4.20 staging will be available?

~ Oleksii

>=20
> Andrew - this is going to be the last time I ask that you please come
> forward
> with any concrete objections to this or any other patch in the
> series, if
> indeed there were any. Without you doing so, I'm going to commit this
> series
> (or the parts thereof that are properly ready) as soon as a release
> ack has
> arrived, but - to allow a little bit of time - no earlier than
> tomorrow
> morning. That'll be on the basis that so far possible objections of
> yours are
> purely hearsay; you never voiced any on the list, and even on Matrix
> it was
> only along the lines of "there is something".
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 09:20:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 09:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752836.1161071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOwA7-0006qz-Re; Wed, 03 Jul 2024 09:20:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752836.1161071; Wed, 03 Jul 2024 09:20: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 1sOwA7-0006qs-P5; Wed, 03 Jul 2024 09:20:27 +0000
Received: by outflank-mailman (input) for mailman id 752836;
 Wed, 03 Jul 2024 09:20: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOwA6-0006qW-Uy
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 09:20:26 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79d65ced-391d-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 11:20:23 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-52cecba8d11so6274568e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 02:20: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
 d2e1a72fcca58-708045abc8csm9906522b3a.180.2024.07.03.02.20.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 02:20: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: 79d65ced-391d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1719998423; x=1720603223; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ne0A+c0yF9QVLUQeQAORx9Q7T7ApyGXfazDGupnRYvU=;
        b=eIhYkJrjNfWGSjCXLlkikzp9iSPv4BmKx3krg11Pa+RxfrcCR/vpw1gLLu+JSm1VNj
         v1tAKiZjBh+8j1vnpnM1WAfVQJ1xPdkDH4qubiVGRJQoN7ZVrJamdJPyMDhraX1qyKYp
         lOmjkKly+0mQMC7fBhkg7DVEn+7/+R5MrGEzq0lohmYGHZBa2Y4FPYF6xiAbiiR2pSSi
         33zvxYf87fygS0wNi4X1YBH88VAluNHJ7Tvj7d2OZSoPKj0gDpRXafopuP7SnJpRCdov
         vlIXoxPFdYSDlDODusnj2MtZlxLqed+irSr+JCzYRNFBm0ruqqCIDx20QBmGRpMi0/Va
         Vxeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719998423; x=1720603223;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ne0A+c0yF9QVLUQeQAORx9Q7T7ApyGXfazDGupnRYvU=;
        b=SWzKz5/kTmUs4rergNrruyQ5cnck02X6x+JSkKS8uU5NABNoRqXjoZK2r+Sr6eG+/n
         eIXB4IgqsqKiD+JWfJP4QXhCbTlwP+94k9B1bSe/2TH4DQVSQtTgrtiQkTQeazbRpZRn
         56sUi2HPywWbES+nMWb/cxgrCThdC2Dqxh3HntUoOj/O7E4no9c1mntmUTQYvAIMWiOD
         +s8QQ0j78XCAZxxQCD81XobcIsCnOT6dQqX4JQS/JpAnArvA94W6eQ5X+S/gUa0ydp3L
         JRJHU69I9ar4uC8UDCO2qyWp1JtbgiiKLMrFpQ3z+uhUdXM6bu22ao85omOSBqToRSc6
         Apcw==
X-Forwarded-Encrypted: i=1; AJvYcCXe7xKEKFNfmsdthUE4ks3OmDmUa15WuUlTXrs9YejPg6QUH0310ChSy32bOHnAUeNwA70HcAdahurZjasyvusIDqyXgbBNVVgJ6GtE/B8=
X-Gm-Message-State: AOJu0Yxh+Zg9OSia4MQx0zMedc5Xt6dKq0bh+K6XcQPB4iQoODC9g3ak
	MuOIjqP4ydTXzoXpWGANFzjw8qQr28B6yldmSMf+BuHAjx9vc2jHxFMkHh0vrA==
X-Google-Smtp-Source: AGHT+IEJfJ/RAF96iuDLs/QOX2ndAfAe8cSb2TM2kz4MyafxgAmvBS/+Rw1OuiQAW2Rgx0S8w8bPGw==
X-Received: by 2002:a05:6512:4014:b0:52e:7f23:5d8d with SMTP id 2adb3069b0e04-52e82685f67mr7306447e87.30.1719998422771;
        Wed, 03 Jul 2024 02:20:22 -0700 (PDT)
Message-ID: <02cf1ef7-a0d8-41ce-aa1a-f4ba3ce98ba0@suse.com>
Date: Wed, 3 Jul 2024 11:20:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 1/9] xen: introduce generic non-atomic test_*bit()
To: Oleksii <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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1719917348.git.oleksii.kurochko@gmail.com>
 <2f60d1fd7b3ac7d603486ce03a112d58352bf16d.1719917348.git.oleksii.kurochko@gmail.com>
 <630de29e-e350-47ee-b451-5312befde5ce@suse.com>
 <ad6835dad7bee82bbe0aa66ca9a5070412fcd826.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ad6835dad7bee82bbe0aa66ca9a5070412fcd826.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.07.2024 10:47, Oleksii wrote:
> On Wed, 2024-07-03 at 09:24 +0200, Jan Beulich wrote:
>> On 02.07.2024 13:01, Oleksii Kurochko wrote:
>>> The following generic functions were introduced:
>>> * test_bit
>>> * generic__test_and_set_bit
>>> * generic__test_and_clear_bit
>>> * generic__test_and_change_bit
>>>
>>> These functions and macros can be useful for architectures
>>> that don't have corresponding arch-specific instructions.
>>>
>>> Also, the patch introduces the following generics which are
>>> used by the functions mentioned above:
>>> * BITOP_BITS_PER_WORD
>>> * BITOP_MASK
>>> * BITOP_WORD
>>> * BITOP_TYPE
>>>
>>> The following approach was chosen for generic*() and arch*() bit
>>> operation functions:
>>> If the bit operation function that is going to be generic starts
>>> with the prefix "__", then the corresponding generic/arch function
>>> will also contain the "__" prefix. For example:
>>>  * test_bit() will be defined using arch_test_bit() and
>>>    generic_test_bit().
>>>  * __test_and_set_bit() will be defined using
>>>    arch__test_and_set_bit() and generic__test_and_set_bit().
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> Changes in V14:
>>>  - Nothing changed. Only Rebase.
>>> ---
>>> Changes in V13:
>>>  - add Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> Changes in V12:
>>>  - revert change of moving the definition of BITS_PER_BYTE from
>>> <arch>/bitops.h to xen/bitops.h.
>>>    ( a separate patch will be provided to put BITS_PER_BYTE to
>>> proper place )
>>
>> Oleksii - seeing that this wasn't actually done (as noticed by
>> Michal), my
>> intention would be to adjust the patch while committing. Please let
>> me know
>> shortly if there is anything I'm overlooking, possibly implying the
>> intended
>> adjustment shouldn't be done (and further suggesting that the
>> revision log
>> then is wrong and/or incomplete). As indicated, I'll need another
>> reply of
>> yours here (and for subsequent patches; maybe simply the entire
>> series)
>> anyway, as a release-ack is still missing.
> The changes log is correct.
> 
> If we are going to drop BITS_PER_BYTE in xen/bitops.h, then it will
> need to be added back to <arm>/bitops.h as it was done in "Changes in
> V12". (This change was lost somewhere due to an incorrect rebase by
> me.).
> 
> Regarding Release-Acked-By, I was okay to have this patch series during
> Soft Code Freeze but now we are in Hard Code Freeze state where I am
> expecting to see only bug/security fixes.
> 
> Unfortunately, it would be better based on current state of release to
> wait 4.20 staging branch.
> 
> Based on that let me know if you want me to sent a new patch series
> version with BITS_PER_BYTE adjustments or it still could be fix during
> the commit when 4.20 staging will be available?

I'm okay either way.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 09:22:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 09:22:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752845.1161081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOwC3-0007Qh-AJ; Wed, 03 Jul 2024 09:22:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752845.1161081; Wed, 03 Jul 2024 09:22: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 1sOwC3-0007Qa-7Z; Wed, 03 Jul 2024 09:22:27 +0000
Received: by outflank-mailman (input) for mailman id 752845;
 Wed, 03 Jul 2024 09:22: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=znpO=OD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sOwC1-0007QS-QZ
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 09:22:25 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0ac04b8-391d-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 11:22:22 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-42562fde108so36882535e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 02:22:22 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4256b063485sm225971115e9.21.2024.07.03.02.22.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 02:22: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: c0ac04b8-391d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719998542; x=1720603342; 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=GxfiErWVKvpb8SbTCs5z3SCJx3ZO0EpZtwQ+tXaZMNs=;
        b=EGyO+9FE7yCVDYr/pwRo6yPBU/mwZgDEU74Ie0djVAm0CJLkkwTfMcWYiYOSb33Wgu
         sdTfoWYg7z2o0UB4PyAlgB5Qn7kSphHFovd3mwdRaaT0KrYSsJLhl1mXGguAhFEuf0pX
         Yu+Saak39ARAnt6Q6PtSija4hu2f5DNa6zYKQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719998542; x=1720603342;
        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=GxfiErWVKvpb8SbTCs5z3SCJx3ZO0EpZtwQ+tXaZMNs=;
        b=Spsvny7Zw50Nfcc/YwHD/u5KbFY+kSFFjvOv4hGaSGjJoD/dArHbqum7zmzWhCxzDg
         w2GNWmuisgLCZA+OfPAiRcfLmgYj5qcSLY72q4MEgjxlqzFKIafff6g3tqtYAjEfA7aT
         loVxVrlkefQsz5RqwXQZ1kQpRSEY693ylZTATQnWF9x2thlBjDqQp2XhS9pVN6D5mDTQ
         2SNnQoDNQjd/y5AgMMVT3XNLfVP2JezthwE+47mb6Uph6xas67GQsExUHtSY1uzXIn/V
         Xn1SCH0TMEwnPcneywvWUbHt9hhcyhsgzbq6v0aG42YTjb4CjJ1ISER1BJBWMPZ6Ayx5
         8v0Q==
X-Gm-Message-State: AOJu0YxahnpyNzuimjIyhqby0QAd1ukWR/t1CXUTtqA1qAUJV9F7bDKl
	9E0MhR6OM87ALvlWiaQxpb2kxoBQhYcnoKdwpk5z4hxMum+RRS6xhGdAtJ3fIhk=
X-Google-Smtp-Source: AGHT+IHwaJQt2vAL1T6U9em+Lp5PKSn5v3vsgDjU+hOsaQwH/FPP747dFfBEUpalSicW9NvcyVlnIg==
X-Received: by 2002:a05:600c:4206:b0:425:680b:a6a8 with SMTP id 5b1f17b1804b1-4257a02f79emr83044095e9.15.1719998541438;
        Wed, 03 Jul 2024 02:22:21 -0700 (PDT)
Date: Wed, 3 Jul 2024 11:22:20 +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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v5 for-4.19? 1/2] amend 'cmdline: document and enforce
 "extra_guest_irqs" upper bounds'
Message-ID: <ZoUYTO1SzQhDBTg6@macbook.local>
References: <789d567b-db3a-4c4d-9eac-f73232777244@suse.com>
 <37f1a5b8-9b54-42f1-845f-dddcf0b0401e@suse.com>
 <0d0eb666-fc0b-4775-99ce-61f74b6c584b@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0d0eb666-fc0b-4775-99ce-61f74b6c584b@suse.com>

On Wed, Jul 03, 2024 at 10:47:36AM +0200, Jan Beulich wrote:
> On 03.07.2024 10:44, Jan Beulich wrote:
> > Address late review comments for what is now commit 17f6d398f765:
> > - bound max_irqs right away against nr_irqs
> > - introduce a #define for a constant used twice
> > 
> > Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Actually should also have added
> 
> Requested-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> above the S-o-b.

Sorry, didn't realize this was already committed.

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks for addressing the comments!


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 09:23:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 09:23:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752847.1161091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOwCl-0007xQ-Hc; Wed, 03 Jul 2024 09:23:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752847.1161091; Wed, 03 Jul 2024 09: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 1sOwCl-0007wR-Ey; Wed, 03 Jul 2024 09:23:11 +0000
Received: by outflank-mailman (input) for mailman id 752847;
 Wed, 03 Jul 2024 09:23: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=znpO=OD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sOwCk-0007QS-1G
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 09:23:10 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc36b51f-391d-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 11:23:08 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-52e98087e32so498312e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 02:23:08 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-42577a0d108sm98628925e9.0.2024.07.03.02.23.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 02: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: dc36b51f-391d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1719998588; x=1720603388; 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=DQkPuqWcqS+mGrFDKfkCK3gbYauNjQZNcgpdAfZlNjI=;
        b=EWNB0mg35PsD+i3tTR5fUmCV0rvViSWPb69ulHwNkVdaRkmeXWwmDA6TivAz8TAgQU
         N1/HMsWKVtig/bNTB1MtMv0CRfHxuDKN4+6e+brd76NMDB7lyPM//II7ruE9aKwhKuom
         lUIRtkBBc/cHf5poqn+7TAhUNS7k0z6LuHKAo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1719998588; x=1720603388;
        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=DQkPuqWcqS+mGrFDKfkCK3gbYauNjQZNcgpdAfZlNjI=;
        b=A+Ord5uCiZ7n+J6I43JW9vOURPrECtaSaIpO2gkxftrF9hiUwR623cEld6mSbDCPZF
         7gkz9dpEP1dMeayVM990jaQPKSkrYxobLQB+Vwf4s9QrBOSKnU0pO99WW5xfxWthOskK
         RBX1lFeaytrUQB8ocNMjZdVBMmyHK5GFGSbp/AjjumjPZqKbKzzvz3zKHyj550otszAV
         tdfqrQujJlsjIg0+z/HVnC5BAL2fbTRf9uf6A9yON4wgnwDPk+w4CeFyBvU1H5jz4Pb5
         tZhAXQPR3Dt2J0funla8rVoSykgyRVBak8zXP7StdfbsElx6VetMyRTSAHMgN6jQpqsV
         fOcw==
X-Gm-Message-State: AOJu0Yym+anF3FvtpDqTXP5wsp67zb26bhgvbfIUGvGQU6g1FGN3UD+x
	Ceub9ujZyuLwrSHlq7/6xjnY7m2KbRlg0duGlyAP2JGu0MajMhRB52+Frn/WBwk=
X-Google-Smtp-Source: AGHT+IHw5aYhrzOVfBPOW91zy+SthZP3ew1+Tn14XYrgQ3epd/iyuyB1+lvEa7R7EoVZv/LzjMzZzQ==
X-Received: by 2002:a05:6512:10ce:b0:52e:93d1:57a6 with SMTP id 2adb3069b0e04-52e93d15965mr1642572e87.6.1719998587626;
        Wed, 03 Jul 2024 02:23:07 -0700 (PDT)
Date: Wed, 3 Jul 2024 11:23:06 +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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v5 for-4.19? 2/2] cmdline: "extra_guest_irqs" is
 inapplicable to PVH
Message-ID: <ZoUYej0joXn2-8r3@macbook.local>
References: <789d567b-db3a-4c4d-9eac-f73232777244@suse.com>
 <de22beee-bd51-4169-b84d-88f4b452473a@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <de22beee-bd51-4169-b84d-88f4b452473a@suse.com>

On Wed, Jul 03, 2024 at 10:45:41AM +0200, Jan Beulich wrote:
> PVH in particular has no (externally visible) notion of pIRQ-s. Mention
> that in the description of the respective command line option and have
> arch_hwdom_irqs() also reflect this (thus suppressing the log message
> there as well, as being pretty meaningless in this case anyway).
> 
> Suggested-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 Wed Jul 03 10:00:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 10:00:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752867.1161102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOwmi-00060q-88; Wed, 03 Jul 2024 10:00:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752867.1161102; Wed, 03 Jul 2024 10:00: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 1sOwmi-00060j-3k; Wed, 03 Jul 2024 10:00:20 +0000
Received: by outflank-mailman (input) for mailman id 752867;
 Wed, 03 Jul 2024 10:00:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOwmg-00060Z-Sy; Wed, 03 Jul 2024 10:00:18 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOwmg-0001fm-Q4; Wed, 03 Jul 2024 10:00:18 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sOwmg-00069F-Cs; Wed, 03 Jul 2024 10:00:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sOwmg-0006HO-CM; Wed, 03 Jul 2024 10:00:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=LUEL+9Xt6r4l3x7W/sb6s3xJVeDyy3UszU5QwrU9AS8=; b=f+cRl2KgZa/Wm4upktym4tNK0z
	kS2L+ux6ZoDB4NawPhP2qVDOPFIW9cDiBHtW1avT6g7/woN0Znxm5BDpNGdp1QLJV9zIJp7Vg9S2P
	iB2nG5SQy2CohHoH+YTUvbgMSGnhx5M9LIx9XwLnu1ThgSeZMTTL6T91uzxx7xa4e8UI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186637-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186637: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=738b201aad48dd0f1af8465adbda0d056213d521
X-Osstest-Versions-That:
    libvirt=5eebe58f9e8d6c2901fc6fc8911b6bf2d9a08a92
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Jul 2024 10:00:18 +0000

flight 186637 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186637/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186625
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              738b201aad48dd0f1af8465adbda0d056213d521
baseline version:
 libvirt              5eebe58f9e8d6c2901fc6fc8911b6bf2d9a08a92

Last test of basis   186625  2024-07-02 04:18:42 Z    1 days
Testing same since   186637  2024-07-03 04:20:27 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  John Levon <john.levon@nutanix.com>
  Michal Privoznik <mprivozn@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   5eebe58f9e..738b201aad  738b201aad48dd0f1af8465adbda0d056213d521 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 10:21:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 10:21:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752882.1161112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOx6z-0000fq-SV; Wed, 03 Jul 2024 10:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752882.1161112; Wed, 03 Jul 2024 10: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 1sOx6z-0000fj-Ou; Wed, 03 Jul 2024 10:21:17 +0000
Received: by outflank-mailman (input) for mailman id 752882;
 Wed, 03 Jul 2024 10:21: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=mAj5=OD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOx6z-0000fd-3l
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 10:21:17 +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 f9cfde13-3925-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 12:21:14 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a7245453319so79095266b.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 03:21:14 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72ab090575sm491872666b.184.2024.07.03.03.21.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 03:21: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: f9cfde13-3925-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720002073; x=1720606873; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Y2Pyq5c3UEJKSaNSA8/1Hzf8ynek822m9GVz1fTyUXE=;
        b=dEUiERvAQGqa4aXCQ3ZamN9r9ikRGV2ZMPLIC97n3osKPKmJmBtqI/lOOS7vUlsub7
         GofA8OCwx5Q2qke9n/QB0T79C8EcVN/t5PqYPaToh764e4tBPR7+XfntUI5KB/+YJqN3
         xMrYTv4xEiR6n71N3NNi54aeW6k8GFKTGiF3fVo0ELyzoDtNkX5939ZeKmPqRz/hgHYC
         HcbysoiV/DLX2AacvCaV1e5VkAmIpIxINBCjV+NiMyHRvMnysmLxaXuVxiX53aiyHwnX
         xV1RhpriL1whe1+bbadKkq0UuAMK35Q867UJbJq+AMiAftcNAKL93dBsGxbavXrbpgAL
         EbIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720002073; x=1720606873;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Y2Pyq5c3UEJKSaNSA8/1Hzf8ynek822m9GVz1fTyUXE=;
        b=oJTLvYvFccjB+3EDZVDTe//nVWiFviet34l5RqEHPJdnc/GhHeR2HPPXTrWA7Ahjdi
         qvusPNIiq1tbbhQXjs2XpfFxv6kyx4Eg1nW5RVelHZr00IyB3AJAnPbLcOyn2ldMPpNM
         iT5XOKR0Npfl5FAtvSlDjs5i2w3AKEX7/zOO7iSvJyOAR35/E7r8wnYioMnZ2INb/XAu
         vv4YO7pFnk4RAwEWPctSjRMSef5untxdQ/zTA69b/Tg5O64KmTqfI7K2RjcwyglK7zrD
         vs7UxVUnglW6GKP2VXtG1Hx28Z2yMwHDH6SIFvJa3+bRXoLHib1JJsqn54c2jdClXiXr
         B7ng==
X-Forwarded-Encrypted: i=1; AJvYcCXJE0hftJWIJOMlcVrlfQ++XOTJC+yMcxXZgers3beR9JuBzBl4mOGIHLAyMiePwPM9wjN5t4fMLhY6DW4fKKRrhMS7aHi/MpBKBOttss8=
X-Gm-Message-State: AOJu0YwJ5GCsxMtRqyZPbirScZSsKl17cyBJh4aeEMWkO+4y521HO/A+
	biKjQIqbfeJEnABEZ0ATPlbZXUK7YrPoC0+GOl2j7vTFFvXxJRkL
X-Google-Smtp-Source: AGHT+IELXcHGRs3hMtJ43riKDrPmc8o+HSnQ+VJgbhAVx4j0pXvn+Xl/+emiPYFGO6F4fyKzMEr+3w==
X-Received: by 2002:a17:907:97c9:b0:a72:64f0:552e with SMTP id a640c23a62f3a-a77a2441edbmr108986866b.19.1720002073123;
        Wed, 03 Jul 2024 03:21:13 -0700 (PDT)
Message-ID: <a6cdd3605a42be3eaeae1af743e3e3d2670af237.camel@gmail.com>
Subject: Re: [PATCH v5 for-4.19? 0/2] new extra_guest_irqs adjustment
From: Oleksii <oleksii.kurochko@gmail.com>
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>, Wei Liu
 <wl@xen.org>, Roger Pau =?ISO-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Date: Wed, 03 Jul 2024 12:21:12 +0200
In-Reply-To: <789d567b-db3a-4c4d-9eac-f73232777244@suse.com>
References: <789d567b-db3a-4c4d-9eac-f73232777244@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-03 at 10:43 +0200, Jan Beulich wrote:
> New patch 1 addresses late review comments raised by Roger for a
> change
> that was already committed.
>=20
> 1: amend 'cmdline: document and enforce "extra_guest_irqs" upper
> bounds'
> 2: cmdline: "extra_guest_irqs" is inapplicable to PVH
>=20
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 10:43:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 10:43:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752891.1161142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOxS3-0004Fs-3o; Wed, 03 Jul 2024 10:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752891.1161142; Wed, 03 Jul 2024 10: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 1sOxS3-0004Fl-0y; Wed, 03 Jul 2024 10:43:03 +0000
Received: by outflank-mailman (input) for mailman id 752891;
 Wed, 03 Jul 2024 10: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=mAj5=OD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOxS1-0003zy-0H
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 10:43: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 0391a4ad-3929-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 12:42:59 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a70c0349b64so684727366b.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 03:42:58 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72b92985desm414590066b.78.2024.07.03.03.42.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 03:42: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: 0391a4ad-3929-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720003378; x=1720608178; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/G/A7NPWRh6mPuP+ZzOUK2A1wKjvppqVXw3/IEnVJxs=;
        b=ak0tmmX/ZQjBL43Gvuil5z1AQUKmCbHBd+EiPiJGmMW+rD2czkAm1kBE2H8LE6mo9O
         IcroTJ2MA9ni0HdxvZBzsp54pw+XllDChjw1guzTAytis3iFxwlEaYmCd+7Dw0s31KQW
         uGxpkHCD9GxAzLrro75gzeS6GxeCvb5fdm4vbQMLK7O0As9Ceq80W+KOap4tL1HJrXCL
         dtMVcYaUQ1dYGd5+KaIsNdb2M7GCTiHRDLZQGvjTJg0yyhuwKbv0VqrU+2WBZ6LhmUix
         tUMSnT9DHPQf1W7sha7Vm7n76pSmaN9eaytxsYzILRoDzbMrDhXX9FDiuQlJThpBJeLW
         zaIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720003378; x=1720608178;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=/G/A7NPWRh6mPuP+ZzOUK2A1wKjvppqVXw3/IEnVJxs=;
        b=qfRYYmUQP7jJwFnpTJdBZMeIR43NjoTsDAFt/fVJ+8wX7UgfFNmD7SX2/EDZJygxZI
         W+DOsy0yE8QA7c44mgp6pGTiQJuZWSNOpqYnNNpf8JUjBGkstYQjz4CYV0kdZ8UFwfJc
         XTJgcNYMBXeA5cdp2+YtPAuXibln1wWA4S3WiYLZFhXx4c7yG8OA3V0LJxY9o9Piypql
         /EBCfi8cZAILuDEOO5+yCiahBAKwmbShDKyaLu6BuWUe5425wmIFL2ERpjLBiffktVEQ
         qHzBnU4SZuxqSPs4AzpOGwU8DmlN+oJwpaKX/b4F8wL8U4A55YOxfPG1CaFZP90F68He
         hRxQ==
X-Gm-Message-State: AOJu0YzTqR3LEqHrLr0eyAhysexhjSF/1AHOuRkbvurpHau0STCJQ0B/
	QdY/wIRVPBbY81aD5vcGty/1J5aLJRWtxrGE/W/i7LUXPHrWZ85kt4SKIQXK
X-Google-Smtp-Source: AGHT+IF0e8OlBOffvF4PdyITNIFA1vPC47T7cI8Tz6isT4NspLNQ0rQK8izoqHNJIJNzCDw7uMtKsw==
X-Received: by 2002:a17:907:6e9f:b0:a72:7d5c:ace0 with SMTP id a640c23a62f3a-a751440bbaemr799692866b.11.1720003377862;
        Wed, 03 Jul 2024 03:42: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 3/5] xen/riscv: enable CONFIG_HAS_DEVICE_TREE
Date: Wed,  3 Jul 2024 12:42:49 +0200
Message-ID: <8861be6624f50c927a8dadbcf056aff2dc0576ab.1720002425.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720002425.git.oleksii.kurochko@gmail.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 74ad019fe7..1863a5d117 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -5,6 +5,7 @@ config RISCV
 config RISCV_64
 	def_bool y
 	select 64BIT
+	select HAS_DEVICE_TREE
 	select GENERIC_BUG_FRAME
 
 config ARCH_DEFCONFIG
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 10:43:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 10:43:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752892.1161146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOxS3-0004JR-EA; Wed, 03 Jul 2024 10:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752892.1161146; Wed, 03 Jul 2024 10: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 1sOxS3-0004I8-9l; Wed, 03 Jul 2024 10:43:03 +0000
Received: by outflank-mailman (input) for mailman id 752892;
 Wed, 03 Jul 2024 10: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=mAj5=OD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOxS1-0003zy-Lw
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 10:43:01 +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 03f34818-3929-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 12:42:59 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e38028so2460041a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 03:42:59 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72b92985desm414590066b.78.2024.07.03.03.42.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 03: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: 03f34818-3929-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720003379; x=1720608179; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tu9SsKtiznAxphg8ImBUJ4LDe0odH7NePw+yOiQLnos=;
        b=TTRBC95WAVrH0I7uCBpXqM+UR19zPGL/AusvlzwnmULEZSMJmUlbldye7GWB4CWVVo
         sump2aF68JRVZV99vyHmesDAvbpfcnXPN1RpgBRehLiAb/6RfS4YXaISunN+gGx2R+vV
         krh87V23Y7syC+q6Hbxb+BXxlEVcZoR49bro2+7ZdWMVn5scjiQ5tbNI24s4ah6wLsCU
         XYHXmngcPRBzrYW7jRM+AdQZVFedpokTMpHPYgnGj3agRddTHZ2x9m5LHB2lglGlPIVg
         66iD0aLvD/Xpwvp8UYFXecs3jjbonTzyp0QoZ4u1Azxh0uqNwUSgC+nR9kqKGmB5hmoT
         Se8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720003379; x=1720608179;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=tu9SsKtiznAxphg8ImBUJ4LDe0odH7NePw+yOiQLnos=;
        b=Jk1vMJCKNeuc+DAVyDdZdIC3R8de/n0MqtzVGPZjE4M42H63xMosnQOQJniKDIT1DY
         ZaEfPQwQpz4c+Edm9lbZOFxQcvehB2k9WzxtXP+ml199RyXtlqpEZwHSBme7prAYtGuq
         7k5DmjgOljH0UNgHREvRhyKtpX2964YCn03aFM+ywosIzrhmXBTFtMhoUQ8srWwxTdD8
         HYDetBLGN/Lbl9LXXPMePmZN5T1Ie6grqRXZcmQ1GD/kB34FMgTLg9RUJ37QpwFk0Ts2
         b9Y6e2J3yP0kQlDhWqGQO+vpNkwS1qFw3pI6ub+wfTmz+cxAMvPU06qG+IGXyrSTj5Mv
         lcJg==
X-Gm-Message-State: AOJu0YzXN1yorC277OrfAy/xuApBmHvcYgH3whSrOyZvSSJKh2LoWeep
	cwyYrzY71xps8kwrppJy6TXntwIfcLhovI0g+qlUTWhtdAqoKAVEfb9g0/Iv
X-Google-Smtp-Source: AGHT+IGHFzWtbpQR0TiayLGdPj8/iujdHG2bgkx0p85h3ZkZ5gOHJEfMVe9W00emubq6I0kI9BvLEg==
X-Received: by 2002:a17:906:d9c6:b0:a6f:b400:4751 with SMTP id a640c23a62f3a-a751447b06cmr635791366b.22.1720003378604;
        Wed, 03 Jul 2024 03:42:58 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 4/5] xen/riscv: introduce device tree maping function
Date: Wed,  3 Jul 2024 12:42:50 +0200
Message-ID: <efd3e6a8c526d227f8db06779c65ffda42a695d6.1720002425.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720002425.git.oleksii.kurochko@gmail.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/config.h |  6 +++++
 xen/arch/riscv/include/asm/mm.h     |  2 ++
 xen/arch/riscv/mm.c                 | 37 +++++++++++++++++++++++++----
 3 files changed, 40 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 50583aafdc..2395bafb91 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -74,6 +74,9 @@
 #error "unsupported RV_STAGE1_MODE"
 #endif
 
+#define XEN_SIZE                MB(2)
+#define XEN_VIRT_END            (XEN_VIRT_START + XEN_SIZE)
+
 #define DIRECTMAP_SLOT_END      509
 #define DIRECTMAP_SLOT_START    200
 #define DIRECTMAP_VIRT_START    SLOTN(DIRECTMAP_SLOT_START)
@@ -99,6 +102,9 @@
 #define VMAP_VIRT_START         SLOTN(VMAP_SLOT_START)
 #define VMAP_VIRT_SIZE          GB(1)
 
+#define BOOT_FDT_VIRT_START     XEN_VIRT_END
+#define BOOT_FDT_VIRT_SIZE      MB(4)
+
 #else
 #error "RV32 isn't supported"
 #endif
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 25af9e1aaa..d1db7ce098 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -255,4 +255,6 @@ static inline unsigned int arch_get_dma_bitsize(void)
     return 32; /* TODO */
 }
 
+void* early_fdt_map(paddr_t fdt_paddr);
+
 #endif /* _ASM_RISCV_MM_H */
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 7d09e781bf..ccc91f9a01 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bootfdt.h>
 #include <xen/bug.h>
 #include <xen/compiler.h>
 #include <xen/init.h>
@@ -7,7 +8,9 @@
 #include <xen/macros.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/sections.h>
+#include <xen/sizes.h>
 
 #include <asm/early_printk.h>
 #include <asm/csr.h>
@@ -20,7 +23,7 @@ struct mmu_desc {
     unsigned int pgtbl_count;
     pte_t *next_pgtbl;
     pte_t *pgtbl_base;
-};
+} mmu_desc = { CONFIG_PAGING_LEVELS, 0, NULL, 0 };
 
 static unsigned long __ro_after_init phys_offset;
 
@@ -39,9 +42,11 @@ static unsigned long __ro_after_init phys_offset;
  * isn't 2 MB aligned.
  *
  * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
- * except that the root page table is shared with the initial mapping
+ * except that the root page table is shared with the initial mapping.
+ *
+ * CONFIG_PAGING_LEVELS page tables are needed for device tree mapping.
  */
-#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
+#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 3 + 1 + 1)
 
 pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
 stage1_pgtbl_root[PAGETABLE_ENTRIES];
@@ -207,8 +212,6 @@ static bool __init check_pgtbl_mode_support(struct mmu_desc *mmu_desc,
  */
 void __init setup_initial_pagetables(void)
 {
-    struct mmu_desc mmu_desc = { CONFIG_PAGING_LEVELS, 0, NULL, NULL };
-
     /*
      * Access to _start, _end is always PC-relative thereby when access
      * them we will get load adresses of start and end of Xen.
@@ -296,6 +299,30 @@ unsigned long __init calc_phys_offset(void)
     return phys_offset;
 }
 
+void* __init early_fdt_map(paddr_t fdt_paddr)
+{
+    unsigned long dt_phys_base = fdt_paddr;
+    unsigned long dt_virt_base;
+    unsigned long dt_virt_size;
+
+    BUILD_BUG_ON(MIN_FDT_ALIGN < 8);
+    if ( !fdt_paddr || fdt_paddr % MIN_FDT_ALIGN || fdt_paddr % SZ_2M ||
+         fdt_totalsize(fdt_paddr) > BOOT_FDT_VIRT_SIZE )
+        return NULL;
+
+    BUILD_BUG_ON(BOOT_FDT_VIRT_START % SZ_2M);
+
+    dt_virt_base = BOOT_FDT_VIRT_START;
+    dt_virt_size = BOOT_FDT_VIRT_SIZE;
+
+    /* Map device tree */
+    setup_initial_mapping(&mmu_desc, dt_virt_base,
+                    dt_virt_base + dt_virt_size,
+                    dt_phys_base);
+
+    return (void *)dt_virt_base;
+}
+
 void put_page(struct page_info *page)
 {
     BUG_ON("unimplemented");
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 10:43:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 10:43:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752889.1161121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOxRy-0003li-Hg; Wed, 03 Jul 2024 10:42:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752889.1161121; Wed, 03 Jul 2024 10: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 1sOxRy-0003lb-F5; Wed, 03 Jul 2024 10:42:58 +0000
Received: by outflank-mailman (input) for mailman id 752889;
 Wed, 03 Jul 2024 10:42: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=mAj5=OD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOxRx-0003lU-4t
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 10:42: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 01dcb6da-3929-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 12:42:56 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a724958f118so639867866b.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 03:42:56 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72b92985desm414590066b.78.2024.07.03.03.42.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 03: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: 01dcb6da-3929-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720003375; x=1720608175; 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=fjcW/rouMpf5sb7CrnSsvYvO1gwUChDP6us7A12ze+E=;
        b=PlMcTA2cPKSQHP6Rj/00ZWVZCfuwhSJRQwXPeZg85MG0nitjEvSat/DAd+XG0KPNK+
         KbkaJPiq+FtjYiAzZYqu/oTaI3AsZr5B7QhZ9M2wdb9B7No4uokj+8DKw9pkx2sOizhm
         5ZspTKBdA740CFWGmb8rg1FiMNtqITAut4nNcBk77GPYFt8dIsI6DdU782SpUx1t88aJ
         r/KX73GbAnwSDfdbcyYkDplGgPN+0aMEXBP9p6U1WzMwE73nHp300eWSMMc3OjbWiqeP
         6H4mZWilHxQL7nM3Em5T9t7OiV8BI4SGcU7/dxzHIY1NDA9pYmY0tCzya1dt2zhgwd/+
         +1XA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720003375; x=1720608175;
        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=fjcW/rouMpf5sb7CrnSsvYvO1gwUChDP6us7A12ze+E=;
        b=bmHHU2b3IVgz38YatdndYKibZ4eSbEgj+iKsH2wcvD1XviwbkXrlLnrkYijo/dROuG
         p36SvrBX2sJ7mIOAHmsXImG1AsAEdY+YkqWpUJh8+yQ7JveJYvC4O8+mTuUugbVIPavs
         3YLTQ/5yj/ZXudixOC2aD+m9XoRW4rXyDdLz/bRydXj6SPdHOgOgGGi8VUdjd5rqRjKO
         YFrU8EZBhMQOt/axMJCX0bWx2Ql2dki5MWrbnLu8hUpjFOwfs1mozAThEXtO8Vp96hWX
         yt2OGMqeOB5UtNhNfHuvfu1wmIYzDUEmHNs6xgkBl6NguLrDf0dXgGEPfOM7Rwhz1Vb7
         T/Wg==
X-Gm-Message-State: AOJu0YyBJmXoNwh0IVc4vS1Guw4F8UKojby2InOHwITfXlg32Plp9QGc
	kXJ50OirIs21zYr8djcZaq4YS4yX9fWEnm00N87fXFKl8X86LIkVzl6CD5KR
X-Google-Smtp-Source: AGHT+IFvj6h6M1zt8SRfh8lzhOwp/IviwQgQXyhyc43gubK8p0S7nD+Q9B+U9KrgHB2nlG3vpbgpXw==
X-Received: by 2002:a17:907:7f15:b0:a6e:fb9b:6769 with SMTP id a640c23a62f3a-a75144de327mr937292866b.75.1720003374412;
        Wed, 03 Jul 2024 03:42:54 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH for 4.20 v1 0/5] RISCV device tree mapping
Date: Wed,  3 Jul 2024 12:42:46 +0200
Message-ID: <cover.1720002425.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Current patch series introduces device tree mapping for RISC-V.

Also, it introduces common stuff for working with fdt which is
based on the patches from [1]:
  [PATCH v4 2/6] xen/device-tree: Move Arm's setup.c bootinfo functions to common
  [PATCH v4 3/6] xen/common: Move Arm's bootfdt.c
All changes which were done on top of Shawn's patches please find in "Changes" section
of each patch.

[1] https://lore.kernel.org/xen-devel/cover.1712893887.git.sanastasio@raptorengineering.com/

Oleksii Kurochko (3):
  xen/riscv: enable CONFIG_HAS_DEVICE_TREE
  xen/riscv: introduce device tree maping function
  xen/riscv: map FDT

Shawn Anastasio (2):
  xen/device-tree: Move Arm's setup.c bootinfo functions to common
  xen/common: Move Arm's bootfdt.c to common

 MAINTAINERS                         |   2 +
 xen/arch/arm/Makefile               |   1 -
 xen/arch/arm/bootfdt.c              | 622 ---------------------------
 xen/arch/arm/include/asm/setup.h    | 200 +--------
 xen/arch/arm/setup.c                | 432 -------------------
 xen/arch/riscv/Kconfig              |   1 +
 xen/arch/riscv/include/asm/config.h |   6 +
 xen/arch/riscv/include/asm/mm.h     |   2 +
 xen/arch/riscv/mm.c                 |  37 +-
 xen/arch/riscv/riscv64/head.S       |   3 +
 xen/arch/riscv/setup.c              |  21 +
 xen/common/Makefile                 |   1 +
 xen/common/device-tree/Makefile     |   2 +
 xen/common/device-tree/bootfdt.c    | 635 ++++++++++++++++++++++++++++
 xen/common/device-tree/bootinfo.c   | 459 ++++++++++++++++++++
 xen/include/xen/bootfdt.h           | 210 +++++++++
 16 files changed, 1375 insertions(+), 1259 deletions(-)
 delete mode 100644 xen/arch/arm/bootfdt.c
 create mode 100644 xen/common/device-tree/Makefile
 create mode 100644 xen/common/device-tree/bootfdt.c
 create mode 100644 xen/common/device-tree/bootinfo.c
 create mode 100644 xen/include/xen/bootfdt.h

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 10:43:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 10:43:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752893.1161154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOxS3-0004Oo-Nx; Wed, 03 Jul 2024 10:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752893.1161154; Wed, 03 Jul 2024 10: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 1sOxS3-0004OA-J8; Wed, 03 Jul 2024 10:43:03 +0000
Received: by outflank-mailman (input) for mailman id 752893;
 Wed, 03 Jul 2024 10:43:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mAj5=OD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOxS1-0003lU-HK
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 10:43:01 +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 034d3f08-3929-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 12:42:58 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a72510ebc3fso779356966b.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 03:42:58 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72b92985desm414590066b.78.2024.07.03.03.42.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 03:42: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: 034d3f08-3929-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720003377; x=1720608177; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S+mmgGHkom1l7cI0McTp9fFuVf4sNnNnUkwvunhTG0Y=;
        b=ZvsTNERvTIZLc3ib+aZSYJeXNty4K0fT3HQe+e57LUCZttucm8WDeel1S8JcehvmW/
         iiK5jWOZIWE08J6vOWjua8z9wgKSv5tpj/xewnuVUcP/le662RNzRb/NTRlDzll7cMSx
         8lZxKruRF3UAM9YP8oq6FTOhq2OJi2tLDJCzzSNzHlMIwTDK1+BNdAXjE5dgrNBQsap6
         UJOh2IaTqmLvjj6qux/biV8HeOucw3VLdcHOoVgWWV8+Wenn0YPG2dNJj7p9T3/oZzpM
         IOFzI+35VPRnzTQy7sZgZsVJNMwMFLsZpL1NO6925HSliBkasKODZ/S8iJucf//eJo0q
         qbqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720003377; x=1720608177;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=S+mmgGHkom1l7cI0McTp9fFuVf4sNnNnUkwvunhTG0Y=;
        b=X6/mJuIxXWIdXnTbOQO2Os0mCelkNDparRzUvDKqqkKmwRV5olzwWiN5t2TbQWmhII
         zHr61UuM4ys7IcE4sfng0jPGNARnpI+b/yn9QNf6FVZo1Y/DNxvRHgaSZO64m4u4pMpa
         VI3Vwz4Ae2gw4aENRr9Uq+Ip+JFofmQBZrhMC8+tDy1hbzjz/LWfG5Dxb6hJtnUpoOHr
         1BQ7iPVYwmSTmE14CytpQGO84/wgL14VWX9VFZ+BZEFosLkd4z3fUORMN1YnepKiPljy
         SnHN+x4LT3yZLKreKZRDOka7rfD4iRhP8bMdVbzLQrXdmDrFhrDPyd8Wu+JkFIirkTmj
         6BfA==
X-Gm-Message-State: AOJu0YwKJFh045ScFjOaO6pF9LtSAW0IxIL3EybdFbRpgf5kWCDMkvZ+
	TnQ2I1cobYcNNaVFf25mK0mZLQi3clZgivNJgjkL0PIf8/ozeKYDZU17iol1
X-Google-Smtp-Source: AGHT+IHo5wfe88NVcKg1QTI0+ivZkcs5iviIbnSNAj5T6oz5egI7thHfnYgeJ3GbwNv0rlRSFNNaBw==
X-Received: by 2002:a17:907:7242:b0:a69:67e3:57f6 with SMTP id a640c23a62f3a-a751443c678mr881716566b.5.1720003377078;
        Wed, 03 Jul 2024 03:42:57 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Shawn Anastasio <sanastasio@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>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v1 2/5] xen/common: Move Arm's bootfdt.c to common
Date: Wed,  3 Jul 2024 12:42:48 +0200
Message-ID: <c7f446b73038a4153f9e8c3e931f29630232e472.1720002425.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720002425.git.oleksii.kurochko@gmail.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Shawn Anastasio <sanastasio@raptorengineering.com>

Move Arm's bootfdt.c to xen/common so that it can be used by other
device tree architectures like PPC and RISCV.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
Acked-by: Julien Grall <julien@xen.org>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v5:
 - add guard #ifdef CONFIG_STATIC_SHM around inclusion of <asm/static-shmem.h>
   in common/device-tree/bootfdt.c.
 - add stub for process_shm_node() in case CONFIG_STATIC_SHM isn't enabled.
 - add guard around #ifdef CONFIG_STATIC_SHM aroud early_print_info_shmem() in
   early_print_info().
---
Changes in v4:
  - move function prototypes to patch 2's xen/include/bootfdt.h
  - clean up #includes
---
 xen/arch/arm/Makefile            |   1 -
 xen/arch/arm/bootfdt.c           | 622 ------------------------------
 xen/arch/arm/include/asm/setup.h |  13 -
 xen/common/device-tree/Makefile  |   1 +
 xen/common/device-tree/bootfdt.c | 635 +++++++++++++++++++++++++++++++
 xen/include/xen/bootfdt.h        |  14 +
 6 files changed, 650 insertions(+), 636 deletions(-)
 delete mode 100644 xen/arch/arm/bootfdt.c
 create mode 100644 xen/common/device-tree/bootfdt.c

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 45dc29ea53..da9c979dc4 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -10,7 +10,6 @@ obj-$(CONFIG_TEE) += tee/
 obj-$(CONFIG_HAS_VPCI) += vpci.o
 
 obj-$(CONFIG_HAS_ALTERNATIVE) += alternative.o
-obj-y += bootfdt.init.o
 obj-y += cpuerrata.o
 obj-y += cpufeature.o
 obj-y += decode.o
diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
deleted file mode 100644
index 6e060111d9..0000000000
--- a/xen/arch/arm/bootfdt.c
+++ /dev/null
@@ -1,622 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Early Device Tree
- *
- * Copyright (C) 2012-2014 Citrix Systems, Inc.
- */
-#include <xen/types.h>
-#include <xen/lib.h>
-#include <xen/kernel.h>
-#include <xen/init.h>
-#include <xen/efi.h>
-#include <xen/device_tree.h>
-#include <xen/lib.h>
-#include <xen/libfdt/libfdt-xen.h>
-#include <xen/sort.h>
-#include <xsm/xsm.h>
-#include <asm/setup.h>
-#include <asm/static-shmem.h>
-
-static void __init __maybe_unused build_assertions(void)
-{
-    /*
-     * Check that no padding is between struct membanks "bank" flexible array
-     * member and struct meminfo "bank" member
-     */
-    BUILD_BUG_ON((offsetof(struct membanks, bank) !=
-                 offsetof(struct meminfo, bank)));
-    /* Ensure "struct membanks" is 8-byte aligned */
-    BUILD_BUG_ON(alignof(struct membanks) != 8);
-}
-
-static bool __init device_tree_node_is_available(const void *fdt, int node)
-{
-    const char *status;
-    int len;
-
-    status = fdt_getprop(fdt, node, "status", &len);
-    if ( !status )
-        return true;
-
-    if ( len > 0 )
-    {
-        if ( !strcmp(status, "ok") || !strcmp(status, "okay") )
-            return true;
-    }
-
-    return false;
-}
-
-static bool __init device_tree_node_matches(const void *fdt, int node,
-                                            const char *match)
-{
-    const char *name;
-    size_t match_len;
-
-    name = fdt_get_name(fdt, node, NULL);
-    match_len = strlen(match);
-
-    /* Match both "match" and "match@..." patterns but not
-       "match-foo". */
-    return strncmp(name, match, match_len) == 0
-        && (name[match_len] == '@' || name[match_len] == '\0');
-}
-
-static bool __init device_tree_node_compatible(const void *fdt, int node,
-                                               const char *match)
-{
-    int len, l;
-    const void *prop;
-
-    prop = fdt_getprop(fdt, node, "compatible", &len);
-    if ( prop == NULL )
-        return false;
-
-    while ( len > 0 ) {
-        if ( !dt_compat_cmp(prop, match) )
-            return true;
-        l = strlen(prop) + 1;
-        prop += l;
-        len -= l;
-    }
-
-    return false;
-}
-
-void __init device_tree_get_reg(const __be32 **cell, uint32_t address_cells,
-                                uint32_t size_cells, paddr_t *start,
-                                paddr_t *size)
-{
-    uint64_t dt_start, dt_size;
-
-    /*
-     * dt_next_cell will return uint64_t whereas paddr_t may not be 64-bit.
-     * Thus, there is an implicit cast from uint64_t to paddr_t.
-     */
-    dt_start = dt_next_cell(address_cells, cell);
-    dt_size = dt_next_cell(size_cells, cell);
-
-    if ( dt_start != (paddr_t)dt_start )
-    {
-        printk("Physical address greater than max width supported\n");
-        WARN();
-    }
-
-    if ( dt_size != (paddr_t)dt_size )
-    {
-        printk("Physical size greater than max width supported\n");
-        WARN();
-    }
-
-    /*
-     * Xen will truncate the address/size if it is greater than the maximum
-     * supported width and it will give an appropriate warning.
-     */
-    *start = dt_start;
-    *size = dt_size;
-}
-
-static int __init device_tree_get_meminfo(const void *fdt, int node,
-                                          const char *prop_name,
-                                          u32 address_cells, u32 size_cells,
-                                          struct membanks *mem,
-                                          enum membank_type type)
-{
-    const struct fdt_property *prop;
-    unsigned int i, banks;
-    const __be32 *cell;
-    u32 reg_cells = address_cells + size_cells;
-    paddr_t start, size;
-
-    if ( !device_tree_node_is_available(fdt, node) )
-        return 0;
-
-    if ( address_cells < 1 || size_cells < 1 )
-    {
-        printk("fdt: property `%s': invalid #address-cells or #size-cells",
-               prop_name);
-        return -EINVAL;
-    }
-
-    prop = fdt_get_property(fdt, node, prop_name, NULL);
-    if ( !prop )
-        return -ENOENT;
-
-    cell = (const __be32 *)prop->data;
-    banks = fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32));
-
-    for ( i = 0; i < banks && mem->nr_banks < mem->max_banks; i++ )
-    {
-        device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
-        if ( mem == bootinfo_get_reserved_mem() &&
-             check_reserved_regions_overlap(start, size) )
-            return -EINVAL;
-        /* Some DT may describe empty bank, ignore them */
-        if ( !size )
-            continue;
-        mem->bank[mem->nr_banks].start = start;
-        mem->bank[mem->nr_banks].size = size;
-        mem->bank[mem->nr_banks].type = type;
-        mem->nr_banks++;
-    }
-
-    if ( i < banks )
-    {
-        printk("Warning: Max number of supported memory regions reached.\n");
-        return -ENOSPC;
-    }
-
-    return 0;
-}
-
-u32 __init device_tree_get_u32(const void *fdt, int node,
-                               const char *prop_name, u32 dflt)
-{
-    const struct fdt_property *prop;
-
-    prop = fdt_get_property(fdt, node, prop_name, NULL);
-    if ( !prop || prop->len < sizeof(u32) )
-        return dflt;
-
-    return fdt32_to_cpu(*(uint32_t*)prop->data);
-}
-
-/**
- * device_tree_for_each_node - iterate over all device tree sub-nodes
- * @fdt: flat device tree.
- * @node: parent node to start the search from
- * @func: function to call for each sub-node.
- * @data: data to pass to @func.
- *
- * Any nodes nested at DEVICE_TREE_MAX_DEPTH or deeper are ignored.
- *
- * Returns 0 if all nodes were iterated over successfully.  If @func
- * returns a value different from 0, that value is returned immediately.
- */
-int __init device_tree_for_each_node(const void *fdt, int node,
-                                     device_tree_node_func func,
-                                     void *data)
-{
-    /*
-     * We only care about relative depth increments, assume depth of
-     * node is 0 for simplicity.
-     */
-    int depth = 0;
-    const int first_node = node;
-    u32 address_cells[DEVICE_TREE_MAX_DEPTH];
-    u32 size_cells[DEVICE_TREE_MAX_DEPTH];
-    int ret;
-
-    do {
-        const char *name = fdt_get_name(fdt, node, NULL);
-        u32 as, ss;
-
-        if ( depth >= DEVICE_TREE_MAX_DEPTH )
-        {
-            printk("Warning: device tree node `%s' is nested too deep\n",
-                   name);
-            continue;
-        }
-
-        as = depth > 0 ? address_cells[depth-1] : DT_ROOT_NODE_ADDR_CELLS_DEFAULT;
-        ss = depth > 0 ? size_cells[depth-1] : DT_ROOT_NODE_SIZE_CELLS_DEFAULT;
-
-        address_cells[depth] = device_tree_get_u32(fdt, node,
-                                                   "#address-cells", as);
-        size_cells[depth] = device_tree_get_u32(fdt, node,
-                                                "#size-cells", ss);
-
-        /* skip the first node */
-        if ( node != first_node )
-        {
-            ret = func(fdt, node, name, depth, as, ss, data);
-            if ( ret != 0 )
-                return ret;
-        }
-
-        node = fdt_next_node(fdt, node, &depth);
-    } while ( node >= 0 && depth > 0 );
-
-    return 0;
-}
-
-static int __init process_memory_node(const void *fdt, int node,
-                                      const char *name, int depth,
-                                      u32 address_cells, u32 size_cells,
-                                      struct membanks *mem)
-{
-    return device_tree_get_meminfo(fdt, node, "reg", address_cells, size_cells,
-                                   mem, MEMBANK_DEFAULT);
-}
-
-static int __init process_reserved_memory_node(const void *fdt, int node,
-                                               const char *name, int depth,
-                                               u32 address_cells,
-                                               u32 size_cells,
-                                               void *data)
-{
-    int rc = process_memory_node(fdt, node, name, depth, address_cells,
-                                 size_cells, data);
-
-    if ( rc == -ENOSPC )
-        panic("Max number of supported reserved-memory regions reached.\n");
-    else if ( rc != -ENOENT )
-        return rc;
-    return 0;
-}
-
-static int __init process_reserved_memory(const void *fdt, int node,
-                                          const char *name, int depth,
-                                          u32 address_cells, u32 size_cells)
-{
-    return device_tree_for_each_node(fdt, node,
-                                     process_reserved_memory_node,
-                                     bootinfo_get_reserved_mem());
-}
-
-static void __init process_multiboot_node(const void *fdt, int node,
-                                          const char *name,
-                                          u32 address_cells, u32 size_cells)
-{
-    static int __initdata kind_guess = 0;
-    const struct fdt_property *prop;
-    const __be32 *cell;
-    bootmodule_kind kind;
-    paddr_t start, size;
-    int len;
-    /* sizeof("/chosen/") + DT_MAX_NAME + '/' + DT_MAX_NAME + '/0' => 92 */
-    char path[92];
-    int parent_node, ret;
-    bool domU;
-
-    parent_node = fdt_parent_offset(fdt, node);
-    ASSERT(parent_node >= 0);
-
-    /* Check that the node is under "/chosen" (first 7 chars of path) */
-    ret = fdt_get_path(fdt, node, path, sizeof (path));
-    if ( ret != 0 || strncmp(path, "/chosen", 7) )
-        return;
-
-    prop = fdt_get_property(fdt, node, "reg", &len);
-    if ( !prop )
-        panic("node %s missing `reg' property\n", name);
-
-    if ( len < dt_cells_to_size(address_cells + size_cells) )
-        panic("fdt: node `%s': `reg` property length is too short\n",
-                    name);
-
-    cell = (const __be32 *)prop->data;
-    device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
-
-    if ( fdt_node_check_compatible(fdt, node, "xen,linux-zimage") == 0 ||
-         fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )
-        kind = BOOTMOD_KERNEL;
-    else if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") == 0 ||
-              fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") == 0 )
-        kind = BOOTMOD_RAMDISK;
-    else if ( fdt_node_check_compatible(fdt, node, "xen,xsm-policy") == 0 )
-        kind = BOOTMOD_XSM;
-    else if ( fdt_node_check_compatible(fdt, node, "multiboot,device-tree") == 0 )
-        kind = BOOTMOD_GUEST_DTB;
-    else
-        kind = BOOTMOD_UNKNOWN;
-
-    /**
-     * Guess the kind of these first two unknowns respectively:
-     * (1) The first unknown must be kernel.
-     * (2) Detect the XSM Magic from the 2nd unknown:
-     *     a. If it's XSM, set the kind as XSM, and that also means we
-     *     won't load ramdisk;
-     *     b. if it's not XSM, set the kind as ramdisk.
-     *     So if user want to load ramdisk, it must be the 2nd unknown.
-     * We also detect the XSM Magic for the following unknowns,
-     * then set its kind according to the return value of has_xsm_magic.
-     */
-    if ( kind == BOOTMOD_UNKNOWN )
-    {
-        switch ( kind_guess++ )
-        {
-        case 0: kind = BOOTMOD_KERNEL; break;
-        case 1: kind = BOOTMOD_RAMDISK; break;
-        default: break;
-        }
-        if ( kind_guess > 1 && has_xsm_magic(start) )
-            kind = BOOTMOD_XSM;
-    }
-
-    domU = fdt_node_check_compatible(fdt, parent_node, "xen,domain") == 0;
-    add_boot_module(kind, start, size, domU);
-
-    prop = fdt_get_property(fdt, node, "bootargs", &len);
-    if ( !prop )
-        return;
-    add_boot_cmdline(fdt_get_name(fdt, parent_node, &len), prop->data,
-                     kind, start, domU);
-}
-
-static int __init process_chosen_node(const void *fdt, int node,
-                                      const char *name,
-                                      u32 address_cells, u32 size_cells)
-{
-    const struct fdt_property *prop;
-    paddr_t start, end;
-    int len;
-
-    if ( fdt_get_property(fdt, node, "xen,static-heap", NULL) )
-    {
-        int rc;
-
-        printk("Checking for static heap in /chosen\n");
-
-        rc = device_tree_get_meminfo(fdt, node, "xen,static-heap",
-                                     address_cells, size_cells,
-                                     bootinfo_get_reserved_mem(),
-                                     MEMBANK_STATIC_HEAP);
-        if ( rc )
-            return rc;
-
-        bootinfo.static_heap = true;
-    }
-
-    printk("Checking for initrd in /chosen\n");
-
-    prop = fdt_get_property(fdt, node, "linux,initrd-start", &len);
-    if ( !prop )
-        /* No initrd present. */
-        return 0;
-    if ( len != sizeof(u32) && len != sizeof(u64) )
-    {
-        printk("linux,initrd-start property has invalid length %d\n", len);
-        return -EINVAL;
-    }
-    start = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
-
-    prop = fdt_get_property(fdt, node, "linux,initrd-end", &len);
-    if ( !prop )
-    {
-        printk("linux,initrd-end not present but -start was\n");
-        return -EINVAL;
-    }
-    if ( len != sizeof(u32) && len != sizeof(u64) )
-    {
-        printk("linux,initrd-end property has invalid length %d\n", len);
-        return -EINVAL;
-    }
-    end = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
-
-    if ( start >= end )
-    {
-        printk("linux,initrd limits invalid: %"PRIpaddr" >= %"PRIpaddr"\n",
-                  start, end);
-        return -EINVAL;
-    }
-
-    printk("Initrd %"PRIpaddr"-%"PRIpaddr"\n", start, end);
-
-    add_boot_module(BOOTMOD_RAMDISK, start, end-start, false);
-
-    return 0;
-}
-
-static int __init process_domain_node(const void *fdt, int node,
-                                      const char *name,
-                                      u32 address_cells, u32 size_cells)
-{
-    const struct fdt_property *prop;
-
-    printk("Checking for \"xen,static-mem\" in domain node\n");
-
-    prop = fdt_get_property(fdt, node, "xen,static-mem", NULL);
-    if ( !prop )
-        /* No "xen,static-mem" present. */
-        return 0;
-
-    return device_tree_get_meminfo(fdt, node, "xen,static-mem", address_cells,
-                                   size_cells, bootinfo_get_reserved_mem(),
-                                   MEMBANK_STATIC_DOMAIN);
-}
-
-static int __init early_scan_node(const void *fdt,
-                                  int node, const char *name, int depth,
-                                  u32 address_cells, u32 size_cells,
-                                  void *data)
-{
-    int rc = 0;
-
-    /*
-     * If Xen has been booted via UEFI, the memory banks are
-     * populated. So we should skip the parsing.
-     */
-    if ( !efi_enabled(EFI_BOOT) &&
-         device_tree_node_matches(fdt, node, "memory") )
-        rc = process_memory_node(fdt, node, name, depth,
-                                 address_cells, size_cells, bootinfo_get_mem());
-    else if ( depth == 1 && !dt_node_cmp(name, "reserved-memory") )
-        rc = process_reserved_memory(fdt, node, name, depth,
-                                     address_cells, size_cells);
-    else if ( depth <= 3 && (device_tree_node_compatible(fdt, node, "xen,multiboot-module" ) ||
-              device_tree_node_compatible(fdt, node, "multiboot,module" )))
-        process_multiboot_node(fdt, node, name, address_cells, size_cells);
-    else if ( depth == 1 && device_tree_node_matches(fdt, node, "chosen") )
-        rc = process_chosen_node(fdt, node, name, address_cells, size_cells);
-    else if ( depth == 2 && device_tree_node_compatible(fdt, node, "xen,domain") )
-        rc = process_domain_node(fdt, node, name, address_cells, size_cells);
-    else if ( depth <= 3 && device_tree_node_compatible(fdt, node, "xen,domain-shared-memory-v1") )
-        rc = process_shm_node(fdt, node, address_cells, size_cells);
-
-    if ( rc < 0 )
-        printk("fdt: node `%s': parsing failed\n", name);
-    return rc;
-}
-
-static void __init early_print_info(void)
-{
-    const struct membanks *mi = bootinfo_get_mem();
-    const struct membanks *mem_resv = bootinfo_get_reserved_mem();
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootcmdlines *cmds = &bootinfo.cmdlines;
-    unsigned int i;
-
-    for ( i = 0; i < mi->nr_banks; i++ )
-        printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n",
-                mi->bank[i].start,
-                mi->bank[i].start + mi->bank[i].size - 1);
-    printk("\n");
-    for ( i = 0 ; i < mods->nr_mods; i++ )
-        printk("MODULE[%d]: %"PRIpaddr" - %"PRIpaddr" %-12s\n",
-                i,
-                mods->module[i].start,
-                mods->module[i].start + mods->module[i].size,
-                boot_module_kind_as_string(mods->module[i].kind));
-
-    for ( i = 0; i < mem_resv->nr_banks; i++ )
-    {
-        printk(" RESVD[%u]: %"PRIpaddr" - %"PRIpaddr"\n", i,
-               mem_resv->bank[i].start,
-               mem_resv->bank[i].start + mem_resv->bank[i].size - 1);
-    }
-    early_print_info_shmem();
-    printk("\n");
-    for ( i = 0 ; i < cmds->nr_mods; i++ )
-        printk("CMDLINE[%"PRIpaddr"]:%s %s\n", cmds->cmdline[i].start,
-               cmds->cmdline[i].dt_name,
-               &cmds->cmdline[i].cmdline[0]);
-    printk("\n");
-}
-
-/* This function assumes that memory regions are not overlapped */
-static int __init cmp_memory_node(const void *key, const void *elem)
-{
-    const struct membank *handler0 = key;
-    const struct membank *handler1 = elem;
-
-    if ( handler0->start < handler1->start )
-        return -1;
-
-    if ( handler0->start >= (handler1->start + handler1->size) )
-        return 1;
-
-    return 0;
-}
-
-static void __init swap_memory_node(void *_a, void *_b, size_t size)
-{
-    struct membank *a = _a, *b = _b;
-
-    SWAP(*a, *b);
-}
-
-/**
- * boot_fdt_info - initialize bootinfo from a DTB
- * @fdt: flattened device tree binary
- *
- * Returns the size of the DTB.
- */
-size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
-{
-    struct membanks *reserved_mem = bootinfo_get_reserved_mem();
-    struct membanks *mem = bootinfo_get_mem();
-    unsigned int i;
-    int nr_rsvd;
-    int ret;
-
-    ret = fdt_check_header(fdt);
-    if ( ret < 0 )
-        panic("No valid device tree\n");
-
-    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
-
-    nr_rsvd = fdt_num_mem_rsv(fdt);
-    if ( nr_rsvd < 0 )
-        panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
-
-    for ( i = 0; i < nr_rsvd; i++ )
-    {
-        struct membank *bank;
-        paddr_t s, sz;
-
-        if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
-            continue;
-
-        if ( reserved_mem->nr_banks < reserved_mem->max_banks )
-        {
-            bank = &reserved_mem->bank[reserved_mem->nr_banks];
-            bank->start = s;
-            bank->size = sz;
-            bank->type = MEMBANK_FDT_RESVMEM;
-            reserved_mem->nr_banks++;
-        }
-        else
-            panic("Cannot allocate reserved memory bank\n");
-    }
-
-    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
-    if ( ret )
-        panic("Early FDT parsing failed (%d)\n", ret);
-
-    /*
-     * On Arm64 setup_directmap_mappings() expects to be called with the lowest
-     * bank in memory first. There is no requirement that the DT will provide
-     * the banks sorted in ascending order. So sort them through.
-     */
-    sort(mem->bank, mem->nr_banks, sizeof(struct membank),
-         cmp_memory_node, swap_memory_node);
-
-    early_print_info();
-
-    return fdt_totalsize(fdt);
-}
-
-const __init char *boot_fdt_cmdline(const void *fdt)
-{
-    int node;
-    const struct fdt_property *prop;
-
-    node = fdt_path_offset(fdt, "/chosen");
-    if ( node < 0 )
-        return NULL;
-
-    prop = fdt_get_property(fdt, node, "xen,xen-bootargs", NULL);
-    if ( prop == NULL )
-    {
-        struct bootcmdline *dom0_cmdline =
-            boot_cmdline_find_by_kind(BOOTMOD_KERNEL);
-
-        if (fdt_get_property(fdt, node, "xen,dom0-bootargs", NULL) ||
-            ( dom0_cmdline && dom0_cmdline->cmdline[0] ) )
-            prop = fdt_get_property(fdt, node, "bootargs", NULL);
-    }
-    if ( prop == NULL )
-        return NULL;
-
-    return prop->data;
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 051e796716..5ee690aeb2 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -39,19 +39,6 @@ void fw_unreserved_regions(paddr_t s, paddr_t e,
                            void (*cb)(paddr_t ps, paddr_t pe),
                            unsigned int first);
 
-bool check_reserved_regions_overlap(paddr_t region_start, paddr_t region_size);
-
-struct bootmodule *add_boot_module(bootmodule_kind kind,
-                                   paddr_t start, paddr_t size, bool domU);
-struct bootmodule *boot_module_find_by_kind(bootmodule_kind kind);
-struct bootmodule * boot_module_find_by_addr_and_kind(bootmodule_kind kind,
-                                                             paddr_t start);
-void add_boot_cmdline(const char *name, const char *cmdline,
-                      bootmodule_kind kind, paddr_t start, bool domU);
-struct bootcmdline *boot_cmdline_find_by_kind(bootmodule_kind kind);
-struct bootcmdline * boot_cmdline_find_by_name(const char *name);
-const char *boot_module_kind_as_string(bootmodule_kind kind);
-
 void init_pdx(void);
 void setup_mm(void);
 
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index 947bad979c..ff2de71c96 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -1 +1,2 @@
+obj-y += bootfdt.init.o
 obj-y += bootinfo.init.o
diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
new file mode 100644
index 0000000000..748b5f7c69
--- /dev/null
+++ b/xen/common/device-tree/bootfdt.c
@@ -0,0 +1,635 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Early Device Tree
+ *
+ * Copyright (C) 2012-2014 Citrix Systems, Inc.
+ */
+
+#include <xen/bootfdt.h>
+#include <xen/device_tree.h>
+#include <xen/efi.h>
+#include <xen/init.h>
+#include <xen/kernel.h>
+#include <xen/libfdt/libfdt-xen.h>
+#include <xen/sort.h>
+#include <xsm/xsm.h>
+#include <asm/setup.h>
+#ifdef CONFIG_STATIC_SHM
+#include <asm/static-shmem.h>
+#endif
+
+static void __init __maybe_unused build_assertions(void)
+{
+    /*
+     * Check that no padding is between struct membanks "bank" flexible array
+     * member and struct meminfo "bank" member
+     */
+    BUILD_BUG_ON((offsetof(struct membanks, bank) !=
+                 offsetof(struct meminfo, bank)));
+    /* Ensure "struct membanks" is 8-byte aligned */
+    BUILD_BUG_ON(alignof(struct membanks) != 8);
+}
+
+static bool __init device_tree_node_is_available(const void *fdt, int node)
+{
+    const char *status;
+    int len;
+
+    status = fdt_getprop(fdt, node, "status", &len);
+    if ( !status )
+        return true;
+
+    if ( len > 0 )
+    {
+        if ( !strcmp(status, "ok") || !strcmp(status, "okay") )
+            return true;
+    }
+
+    return false;
+}
+
+static bool __init device_tree_node_matches(const void *fdt, int node,
+                                            const char *match)
+{
+    const char *name;
+    size_t match_len;
+
+    name = fdt_get_name(fdt, node, NULL);
+    match_len = strlen(match);
+
+    /* Match both "match" and "match@..." patterns but not
+       "match-foo". */
+    return strncmp(name, match, match_len) == 0
+        && (name[match_len] == '@' || name[match_len] == '\0');
+}
+
+static bool __init device_tree_node_compatible(const void *fdt, int node,
+                                               const char *match)
+{
+    int len, l;
+    const void *prop;
+
+    prop = fdt_getprop(fdt, node, "compatible", &len);
+    if ( prop == NULL )
+        return false;
+
+    while ( len > 0 ) {
+        if ( !dt_compat_cmp(prop, match) )
+            return true;
+        l = strlen(prop) + 1;
+        prop += l;
+        len -= l;
+    }
+
+    return false;
+}
+
+void __init device_tree_get_reg(const __be32 **cell, uint32_t address_cells,
+                                uint32_t size_cells, paddr_t *start,
+                                paddr_t *size)
+{
+    uint64_t dt_start, dt_size;
+
+    /*
+     * dt_next_cell will return uint64_t whereas paddr_t may not be 64-bit.
+     * Thus, there is an implicit cast from uint64_t to paddr_t.
+     */
+    dt_start = dt_next_cell(address_cells, cell);
+    dt_size = dt_next_cell(size_cells, cell);
+
+    if ( dt_start != (paddr_t)dt_start )
+    {
+        printk("Physical address greater than max width supported\n");
+        WARN();
+    }
+
+    if ( dt_size != (paddr_t)dt_size )
+    {
+        printk("Physical size greater than max width supported\n");
+        WARN();
+    }
+
+    /*
+     * Xen will truncate the address/size if it is greater than the maximum
+     * supported width and it will give an appropriate warning.
+     */
+    *start = dt_start;
+    *size = dt_size;
+}
+
+static int __init device_tree_get_meminfo(const void *fdt, int node,
+                                          const char *prop_name,
+                                          u32 address_cells, u32 size_cells,
+                                          struct membanks *mem,
+                                          enum membank_type type)
+{
+    const struct fdt_property *prop;
+    unsigned int i, banks;
+    const __be32 *cell;
+    u32 reg_cells = address_cells + size_cells;
+    paddr_t start, size;
+
+    if ( !device_tree_node_is_available(fdt, node) )
+        return 0;
+
+    if ( address_cells < 1 || size_cells < 1 )
+    {
+        printk("fdt: property `%s': invalid #address-cells or #size-cells",
+               prop_name);
+        return -EINVAL;
+    }
+
+    prop = fdt_get_property(fdt, node, prop_name, NULL);
+    if ( !prop )
+        return -ENOENT;
+
+    cell = (const __be32 *)prop->data;
+    banks = fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32));
+
+    for ( i = 0; i < banks && mem->nr_banks < mem->max_banks; i++ )
+    {
+        device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
+        if ( mem == bootinfo_get_reserved_mem() &&
+             check_reserved_regions_overlap(start, size) )
+            return -EINVAL;
+        /* Some DT may describe empty bank, ignore them */
+        if ( !size )
+            continue;
+        mem->bank[mem->nr_banks].start = start;
+        mem->bank[mem->nr_banks].size = size;
+        mem->bank[mem->nr_banks].type = type;
+        mem->nr_banks++;
+    }
+
+    if ( i < banks )
+    {
+        printk("Warning: Max number of supported memory regions reached.\n");
+        return -ENOSPC;
+    }
+
+    return 0;
+}
+
+u32 __init device_tree_get_u32(const void *fdt, int node,
+                               const char *prop_name, u32 dflt)
+{
+    const struct fdt_property *prop;
+
+    prop = fdt_get_property(fdt, node, prop_name, NULL);
+    if ( !prop || prop->len < sizeof(u32) )
+        return dflt;
+
+    return fdt32_to_cpu(*(uint32_t*)prop->data);
+}
+
+/**
+ * device_tree_for_each_node - iterate over all device tree sub-nodes
+ * @fdt: flat device tree.
+ * @node: parent node to start the search from
+ * @func: function to call for each sub-node.
+ * @data: data to pass to @func.
+ *
+ * Any nodes nested at DEVICE_TREE_MAX_DEPTH or deeper are ignored.
+ *
+ * Returns 0 if all nodes were iterated over successfully.  If @func
+ * returns a value different from 0, that value is returned immediately.
+ */
+int __init device_tree_for_each_node(const void *fdt, int node,
+                                     device_tree_node_func func,
+                                     void *data)
+{
+    /*
+     * We only care about relative depth increments, assume depth of
+     * node is 0 for simplicity.
+     */
+    int depth = 0;
+    const int first_node = node;
+    u32 address_cells[DEVICE_TREE_MAX_DEPTH];
+    u32 size_cells[DEVICE_TREE_MAX_DEPTH];
+    int ret;
+
+    do {
+        const char *name = fdt_get_name(fdt, node, NULL);
+        u32 as, ss;
+
+        if ( depth >= DEVICE_TREE_MAX_DEPTH )
+        {
+            printk("Warning: device tree node `%s' is nested too deep\n",
+                   name);
+            continue;
+        }
+
+        as = depth > 0 ? address_cells[depth-1] : DT_ROOT_NODE_ADDR_CELLS_DEFAULT;
+        ss = depth > 0 ? size_cells[depth-1] : DT_ROOT_NODE_SIZE_CELLS_DEFAULT;
+
+        address_cells[depth] = device_tree_get_u32(fdt, node,
+                                                   "#address-cells", as);
+        size_cells[depth] = device_tree_get_u32(fdt, node,
+                                                "#size-cells", ss);
+
+        /* skip the first node */
+        if ( node != first_node )
+        {
+            ret = func(fdt, node, name, depth, as, ss, data);
+            if ( ret != 0 )
+                return ret;
+        }
+
+        node = fdt_next_node(fdt, node, &depth);
+    } while ( node >= 0 && depth > 0 );
+
+    return 0;
+}
+
+static int __init process_memory_node(const void *fdt, int node,
+                                      const char *name, int depth,
+                                      u32 address_cells, u32 size_cells,
+                                      struct membanks *mem)
+{
+    return device_tree_get_meminfo(fdt, node, "reg", address_cells, size_cells,
+                                   mem, MEMBANK_DEFAULT);
+}
+
+static int __init process_reserved_memory_node(const void *fdt, int node,
+                                               const char *name, int depth,
+                                               u32 address_cells,
+                                               u32 size_cells,
+                                               void *data)
+{
+    int rc = process_memory_node(fdt, node, name, depth, address_cells,
+                                 size_cells, data);
+
+    if ( rc == -ENOSPC )
+        panic("Max number of supported reserved-memory regions reached.\n");
+    else if ( rc != -ENOENT )
+        return rc;
+    return 0;
+}
+
+static int __init process_reserved_memory(const void *fdt, int node,
+                                          const char *name, int depth,
+                                          u32 address_cells, u32 size_cells)
+{
+    return device_tree_for_each_node(fdt, node,
+                                     process_reserved_memory_node,
+                                     bootinfo_get_reserved_mem());
+}
+
+static void __init process_multiboot_node(const void *fdt, int node,
+                                          const char *name,
+                                          u32 address_cells, u32 size_cells)
+{
+    static int __initdata kind_guess = 0;
+    const struct fdt_property *prop;
+    const __be32 *cell;
+    bootmodule_kind kind;
+    paddr_t start, size;
+    int len;
+    /* sizeof("/chosen/") + DT_MAX_NAME + '/' + DT_MAX_NAME + '/0' => 92 */
+    char path[92];
+    int parent_node, ret;
+    bool domU;
+
+    parent_node = fdt_parent_offset(fdt, node);
+    ASSERT(parent_node >= 0);
+
+    /* Check that the node is under "/chosen" (first 7 chars of path) */
+    ret = fdt_get_path(fdt, node, path, sizeof (path));
+    if ( ret != 0 || strncmp(path, "/chosen", 7) )
+        return;
+
+    prop = fdt_get_property(fdt, node, "reg", &len);
+    if ( !prop )
+        panic("node %s missing `reg' property\n", name);
+
+    if ( len < dt_cells_to_size(address_cells + size_cells) )
+        panic("fdt: node `%s': `reg` property length is too short\n",
+                    name);
+
+    cell = (const __be32 *)prop->data;
+    device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
+
+    if ( fdt_node_check_compatible(fdt, node, "xen,linux-zimage") == 0 ||
+         fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )
+        kind = BOOTMOD_KERNEL;
+    else if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") == 0 ||
+              fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") == 0 )
+        kind = BOOTMOD_RAMDISK;
+    else if ( fdt_node_check_compatible(fdt, node, "xen,xsm-policy") == 0 )
+        kind = BOOTMOD_XSM;
+    else if ( fdt_node_check_compatible(fdt, node, "multiboot,device-tree") == 0 )
+        kind = BOOTMOD_GUEST_DTB;
+    else
+        kind = BOOTMOD_UNKNOWN;
+
+    /**
+     * Guess the kind of these first two unknowns respectively:
+     * (1) The first unknown must be kernel.
+     * (2) Detect the XSM Magic from the 2nd unknown:
+     *     a. If it's XSM, set the kind as XSM, and that also means we
+     *     won't load ramdisk;
+     *     b. if it's not XSM, set the kind as ramdisk.
+     *     So if user want to load ramdisk, it must be the 2nd unknown.
+     * We also detect the XSM Magic for the following unknowns,
+     * then set its kind according to the return value of has_xsm_magic.
+     */
+    if ( kind == BOOTMOD_UNKNOWN )
+    {
+        switch ( kind_guess++ )
+        {
+        case 0: kind = BOOTMOD_KERNEL; break;
+        case 1: kind = BOOTMOD_RAMDISK; break;
+        default: break;
+        }
+        if ( kind_guess > 1 && has_xsm_magic(start) )
+            kind = BOOTMOD_XSM;
+    }
+
+    domU = fdt_node_check_compatible(fdt, parent_node, "xen,domain") == 0;
+    add_boot_module(kind, start, size, domU);
+
+    prop = fdt_get_property(fdt, node, "bootargs", &len);
+    if ( !prop )
+        return;
+    add_boot_cmdline(fdt_get_name(fdt, parent_node, &len), prop->data,
+                     kind, start, domU);
+}
+
+static int __init process_chosen_node(const void *fdt, int node,
+                                      const char *name,
+                                      u32 address_cells, u32 size_cells)
+{
+    const struct fdt_property *prop;
+    paddr_t start, end;
+    int len;
+
+    if ( fdt_get_property(fdt, node, "xen,static-heap", NULL) )
+    {
+        int rc;
+
+        printk("Checking for static heap in /chosen\n");
+
+        rc = device_tree_get_meminfo(fdt, node, "xen,static-heap",
+                                     address_cells, size_cells,
+                                     bootinfo_get_reserved_mem(),
+                                     MEMBANK_STATIC_HEAP);
+        if ( rc )
+            return rc;
+
+        bootinfo.static_heap = true;
+    }
+
+    printk("Checking for initrd in /chosen\n");
+
+    prop = fdt_get_property(fdt, node, "linux,initrd-start", &len);
+    if ( !prop )
+        /* No initrd present. */
+        return 0;
+    if ( len != sizeof(u32) && len != sizeof(u64) )
+    {
+        printk("linux,initrd-start property has invalid length %d\n", len);
+        return -EINVAL;
+    }
+    start = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
+
+    prop = fdt_get_property(fdt, node, "linux,initrd-end", &len);
+    if ( !prop )
+    {
+        printk("linux,initrd-end not present but -start was\n");
+        return -EINVAL;
+    }
+    if ( len != sizeof(u32) && len != sizeof(u64) )
+    {
+        printk("linux,initrd-end property has invalid length %d\n", len);
+        return -EINVAL;
+    }
+    end = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
+
+    if ( start >= end )
+    {
+        printk("linux,initrd limits invalid: %"PRIpaddr" >= %"PRIpaddr"\n",
+                  start, end);
+        return -EINVAL;
+    }
+
+    printk("Initrd %"PRIpaddr"-%"PRIpaddr"\n", start, end);
+
+    add_boot_module(BOOTMOD_RAMDISK, start, end-start, false);
+
+    return 0;
+}
+
+static int __init process_domain_node(const void *fdt, int node,
+                                      const char *name,
+                                      u32 address_cells, u32 size_cells)
+{
+    const struct fdt_property *prop;
+
+    printk("Checking for \"xen,static-mem\" in domain node\n");
+
+    prop = fdt_get_property(fdt, node, "xen,static-mem", NULL);
+    if ( !prop )
+        /* No "xen,static-mem" present. */
+        return 0;
+
+    return device_tree_get_meminfo(fdt, node, "xen,static-mem", address_cells,
+                                   size_cells, bootinfo_get_reserved_mem(),
+                                   MEMBANK_STATIC_DOMAIN);
+}
+
+#ifndef CONFIG_STATIC_SHM
+static inline int process_shm_node(const void *fdt, int node,
+                                   uint32_t address_cells, uint32_t size_cells)
+{
+    printk("CONFIG_STATIC_SHM must be enabled for parsing static shared"
+            " memory nodes\n");
+    return -EINVAL;
+}
+#endif
+
+static int __init early_scan_node(const void *fdt,
+                                  int node, const char *name, int depth,
+                                  u32 address_cells, u32 size_cells,
+                                  void *data)
+{
+    int rc = 0;
+
+    /*
+     * If Xen has been booted via UEFI, the memory banks are
+     * populated. So we should skip the parsing.
+     */
+    if ( !efi_enabled(EFI_BOOT) &&
+         device_tree_node_matches(fdt, node, "memory") )
+        rc = process_memory_node(fdt, node, name, depth,
+                                 address_cells, size_cells, bootinfo_get_mem());
+    else if ( depth == 1 && !dt_node_cmp(name, "reserved-memory") )
+        rc = process_reserved_memory(fdt, node, name, depth,
+                                     address_cells, size_cells);
+    else if ( depth <= 3 && (device_tree_node_compatible(fdt, node, "xen,multiboot-module" ) ||
+              device_tree_node_compatible(fdt, node, "multiboot,module" )))
+        process_multiboot_node(fdt, node, name, address_cells, size_cells);
+    else if ( depth == 1 && device_tree_node_matches(fdt, node, "chosen") )
+        rc = process_chosen_node(fdt, node, name, address_cells, size_cells);
+    else if ( depth == 2 && device_tree_node_compatible(fdt, node, "xen,domain") )
+        rc = process_domain_node(fdt, node, name, address_cells, size_cells);
+    else if ( depth <= 3 && device_tree_node_compatible(fdt, node, "xen,domain-shared-memory-v1") )
+        rc = process_shm_node(fdt, node, address_cells, size_cells);
+
+    if ( rc < 0 )
+        printk("fdt: node `%s': parsing failed\n", name);
+    return rc;
+}
+
+static void __init early_print_info(void)
+{
+    const struct membanks *mi = bootinfo_get_mem();
+    const struct membanks *mem_resv = bootinfo_get_reserved_mem();
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootcmdlines *cmds = &bootinfo.cmdlines;
+    unsigned int i;
+
+    for ( i = 0; i < mi->nr_banks; i++ )
+        printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n",
+                mi->bank[i].start,
+                mi->bank[i].start + mi->bank[i].size - 1);
+    printk("\n");
+    for ( i = 0 ; i < mods->nr_mods; i++ )
+        printk("MODULE[%d]: %"PRIpaddr" - %"PRIpaddr" %-12s\n",
+                i,
+                mods->module[i].start,
+                mods->module[i].start + mods->module[i].size,
+                boot_module_kind_as_string(mods->module[i].kind));
+
+    for ( i = 0; i < mem_resv->nr_banks; i++ )
+    {
+        printk(" RESVD[%u]: %"PRIpaddr" - %"PRIpaddr"\n", i,
+               mem_resv->bank[i].start,
+               mem_resv->bank[i].start + mem_resv->bank[i].size - 1);
+    }
+#ifdef CONFIG_STATIC_SHM
+    early_print_info_shmem();
+#endif
+    printk("\n");
+    for ( i = 0 ; i < cmds->nr_mods; i++ )
+        printk("CMDLINE[%"PRIpaddr"]:%s %s\n", cmds->cmdline[i].start,
+               cmds->cmdline[i].dt_name,
+               &cmds->cmdline[i].cmdline[0]);
+    printk("\n");
+}
+
+/* This function assumes that memory regions are not overlapped */
+static int __init cmp_memory_node(const void *key, const void *elem)
+{
+    const struct membank *handler0 = key;
+    const struct membank *handler1 = elem;
+
+    if ( handler0->start < handler1->start )
+        return -1;
+
+    if ( handler0->start >= (handler1->start + handler1->size) )
+        return 1;
+
+    return 0;
+}
+
+static void __init swap_memory_node(void *_a, void *_b, size_t size)
+{
+    struct membank *a = _a, *b = _b;
+
+    SWAP(*a, *b);
+}
+
+/**
+ * boot_fdt_info - initialize bootinfo from a DTB
+ * @fdt: flattened device tree binary
+ *
+ * Returns the size of the DTB.
+ */
+size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
+{
+    struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+    struct membanks *mem = bootinfo_get_mem();
+    unsigned int i;
+    int nr_rsvd;
+    int ret;
+
+    ret = fdt_check_header(fdt);
+    if ( ret < 0 )
+        panic("No valid device tree\n");
+
+    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
+
+    nr_rsvd = fdt_num_mem_rsv(fdt);
+    if ( nr_rsvd < 0 )
+        panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
+
+    for ( i = 0; i < nr_rsvd; i++ )
+    {
+        struct membank *bank;
+        paddr_t s, sz;
+
+        if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
+            continue;
+
+        if ( reserved_mem->nr_banks < reserved_mem->max_banks )
+        {
+            bank = &reserved_mem->bank[reserved_mem->nr_banks];
+            bank->start = s;
+            bank->size = sz;
+            bank->type = MEMBANK_FDT_RESVMEM;
+            reserved_mem->nr_banks++;
+        }
+        else
+            panic("Cannot allocate reserved memory bank\n");
+    }
+
+    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
+    if ( ret )
+        panic("Early FDT parsing failed (%d)\n", ret);
+
+    /*
+     * On Arm64 setup_directmap_mappings() expects to be called with the lowest
+     * bank in memory first. There is no requirement that the DT will provide
+     * the banks sorted in ascending order. So sort them through.
+     */
+    sort(mem->bank, mem->nr_banks, sizeof(struct membank),
+         cmp_memory_node, swap_memory_node);
+
+    early_print_info();
+
+    return fdt_totalsize(fdt);
+}
+
+const __init char *boot_fdt_cmdline(const void *fdt)
+{
+    int node;
+    const struct fdt_property *prop;
+
+    node = fdt_path_offset(fdt, "/chosen");
+    if ( node < 0 )
+        return NULL;
+
+    prop = fdt_get_property(fdt, node, "xen,xen-bootargs", NULL);
+    if ( prop == NULL )
+    {
+        struct bootcmdline *dom0_cmdline =
+            boot_cmdline_find_by_kind(BOOTMOD_KERNEL);
+
+        if (fdt_get_property(fdt, node, "xen,dom0-bootargs", NULL) ||
+            ( dom0_cmdline && dom0_cmdline->cmdline[0] ) )
+            prop = fdt_get_property(fdt, node, "bootargs", NULL);
+    }
+    if ( prop == NULL )
+        return NULL;
+
+    return prop->data;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
index 7cd45b3d4b..5943bc5fe3 100644
--- a/xen/include/xen/bootfdt.h
+++ b/xen/include/xen/bootfdt.h
@@ -158,6 +158,20 @@ struct bootinfo {
 
 extern struct bootinfo bootinfo;
 
+bool check_reserved_regions_overlap(paddr_t region_start,
+                                    paddr_t region_size);
+
+struct bootmodule *add_boot_module(bootmodule_kind kind,
+                                   paddr_t start, paddr_t size, bool domU);
+struct bootmodule *boot_module_find_by_kind(bootmodule_kind kind);
+struct bootmodule * boot_module_find_by_addr_and_kind(bootmodule_kind kind,
+                                                             paddr_t start);
+void add_boot_cmdline(const char *name, const char *cmdline,
+                      bootmodule_kind kind, paddr_t start, bool domU);
+struct bootcmdline *boot_cmdline_find_by_kind(bootmodule_kind kind);
+struct bootcmdline * boot_cmdline_find_by_name(const char *name);
+const char *boot_module_kind_as_string(bootmodule_kind kind);
+
 void populate_boot_allocator(void);
 
 size_t boot_fdt_info(const void *fdt, paddr_t paddr);
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 10:43:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 10:43:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752890.1161132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOxS0-000404-Ow; Wed, 03 Jul 2024 10:43:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752890.1161132; Wed, 03 Jul 2024 10:43: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 1sOxS0-0003zw-Ly; Wed, 03 Jul 2024 10:43:00 +0000
Received: by outflank-mailman (input) for mailman id 752890;
 Wed, 03 Jul 2024 10:42: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=mAj5=OD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOxRz-0003lU-Kk
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 10:42:59 +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 02af6d02-3929-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 12:42:57 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a7527afa23cso385213866b.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 03:42:57 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72b92985desm414590066b.78.2024.07.03.03.42.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 03:42: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: 02af6d02-3929-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720003376; x=1720608176; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xuAQ+9rgv2lGpU1y0rgNrIbtbNMzynV4e2QZTX1RPRg=;
        b=hsS1/cwp3F0ifoDFJ7mKiW73nYcVKeM9ULcZjBCOvER0hqsJxlTzzJwQl1/puMsxVm
         a5Nw2vQTNY64nkkYH5gRY+4pOwIrF6fokOBcVKNhTuwqUhWeSrdqowVfrD1DqL/sPqsG
         gERK5xToD0JAbUld/bNXp12BWhPEeayta9d9kby9p2DHfw4rcXPqKpxBD+YWhOdyWS/Z
         jcTJoTMgC8w+N392qp2VG+GsnmI4jMpRecAcmM6WBWeyD1sRGXzl3vjNSU5DfRPBECnm
         34aRxpwe41z7pMsxZZsJtEfWY/LhR4I0RhNZeHRDbcx13NMyiGKh/8GOs8uRJuDXYeh3
         pLqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720003376; x=1720608176;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xuAQ+9rgv2lGpU1y0rgNrIbtbNMzynV4e2QZTX1RPRg=;
        b=k0G4PQSALwPYGZYDxR2XPiI/gt5niBDAQL2O5Zz6zEGbpq5v9uRPxjYB48m+xzj4X2
         TE0en1bF7iBnpqDIfp2OkqsvZPk9a+FB/u65pQBzt3b+WSpX5sJJKQHBeqh7grzduffD
         jBNiev82D2yVVmbO6Q4D0ITHhXmirWkOTUDbYahvNGqGPq+IiqLlXLxnsDtc/3l2Eo98
         /TvikR/yocEQ94DB8Pnrl08kLdwxZ9F37q0xijQucs7h66x9JigAqGZNCJ2uZB+jIeu6
         UZTXEDi9NFOgki6ojzi/tQOql6smni0Hlspt/QnDj0Efp7pH7BuFAcoMmSfjICUPgM+a
         sJLQ==
X-Gm-Message-State: AOJu0YyK9xE9HmGHQ+JaQ/hxHuZ/pPPMdADbx/00iBzDp4kmCMH+Q5KG
	KrzwkmCjhEqR5DLiY9Q2y1S1ZUrq3rYW9E6FzE3Ubcf18rCVtBw7fUqKaTdC
X-Google-Smtp-Source: AGHT+IHyzEpNXkLx/qcyOkqo7H9v4TlEh+u9QQnhx/g9aH4FLGjNPWl2yGb4sTuXKSG5F3BNRxIOqw==
X-Received: by 2002:a17:906:81cd:b0:a6f:5f8f:6c43 with SMTP id a640c23a62f3a-a751451373bmr878552966b.56.1720003376101;
        Wed, 03 Jul 2024 03:42:56 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Shawn Anastasio <sanastasio@raptorengineering.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>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v1 1/5] xen/device-tree: Move Arm's setup.c bootinfo functions to common
Date: Wed,  3 Jul 2024 12:42:47 +0200
Message-ID: <c656f0d08d4c4b515c99848b84db4171ab132f19.1720002425.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720002425.git.oleksii.kurochko@gmail.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Shawn Anastasio <sanastasio@raptorengineering.com>

Arm's setup.c contains a collection of functions for parsing memory map
and other boot information from a device tree. Since these routines are
generally useful on any architecture that supports device tree booting,
move them into xen/common/device-tree.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V5:
 - add xen/include/xen/bootfdt.h to MAINTAINERS file.
 - drop message "Early device tree parsing and".
 - After rebase on top of the current staging the following changes were done:
   - init bootinfo variable in <common/device-tree/bootinfo.c> with BOOTINFO_INIT;
   - update the code of dt_unreserved_regions():
       CONFIG_STATIC_SHM related changes and getting of reserved_mem
       bootinfo_get_shmem() ??
   - update the code of meminfo_overlap_check():
       add check ( INVALID_PADDR == bank_start ) to if case.
   - update the code of check_reserved_regions_overlap():
       CONFIG_STATIC_SHM related changes.
   - struct bootinfo was updated ( CONFIG_STATIC_SHM changes )
   - add shared_meminfo ( because of CONFIG_STATIC_SHM )
   - struct struct membanks was update with __struct group so <xen/kernel> is
     neeeded to be included in bootfdt.h
   - move BOOTINFO_ACPI_INIT, BOOTINFO_SHMEM_INIT, BOOTINFO_INIT to generic bootfdt.h
   - bootinfo_get_reserved_mem(), bootinfo_get_mem(), bootinfo_get_acpi(),
     bootinfo_get_shmem() and bootinfo_get_shmem_extra() were moved to xen/bootfdt.h
 - s/arm32/CONFIG_SEPARATE_XENHEAP/
 - add inclusion of <xen/macros.h> because there are function in <xen/bootfdt.h> which
   are using container_of().
 ---
Changes in v4:
  - create new xen/include/bootinfo.h rather than relying on arch's
    asm/setup.h to provide required definitions for bootinfo.c
  - build bootinfo.c as .init.o
  - clean up and sort bootinfo.c's #includes
  - use CONFIG_SEPARATE_XENHEAP rather than CONFIG_ARM_32 to guard
    xenheap-specific behavior of populate_boot_allocator
  - (MAINTAINERS) include all of common/device-tree rather than just
    bootinfo.c
---
 MAINTAINERS                       |   2 +
 xen/arch/arm/include/asm/setup.h  | 187 +-----------
 xen/arch/arm/setup.c              | 432 ----------------------------
 xen/common/Makefile               |   1 +
 xen/common/device-tree/Makefile   |   1 +
 xen/common/device-tree/bootinfo.c | 459 ++++++++++++++++++++++++++++++
 xen/include/xen/bootfdt.h         | 196 +++++++++++++
 7 files changed, 660 insertions(+), 618 deletions(-)
 create mode 100644 xen/common/device-tree/Makefile
 create mode 100644 xen/common/device-tree/bootinfo.c
 create mode 100644 xen/include/xen/bootfdt.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 2b0c894527..505915b6b6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -295,9 +295,11 @@ M:	Stefano Stabellini <sstabellini@kernel.org>
 M:	Julien Grall <julien@xen.org>
 S:	Supported
 F:	xen/common/libfdt/
+F:	xen/common/device-tree/
 F:	xen/common/device_tree.c
 F:	xen/common/dt-overlay.c
 F:	xen/include/xen/libfdt/
+F:	xen/include/xen/bootfdt.h
 F:	xen/include/xen/device_tree.h
 F:	xen/drivers/passthrough/device_tree.c
 
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index c34179da93..051e796716 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -3,159 +3,9 @@
 
 #include <public/version.h>
 #include <asm/p2m.h>
+#include <xen/bootfdt.h>
 #include <xen/device_tree.h>
 
-#define MIN_FDT_ALIGN 8
-#define MAX_FDT_SIZE SZ_2M
-
-#define NR_MEM_BANKS 256
-#define NR_SHMEM_BANKS 32
-
-#define MAX_MODULES 32 /* Current maximum useful modules */
-
-typedef enum {
-    BOOTMOD_XEN,
-    BOOTMOD_FDT,
-    BOOTMOD_KERNEL,
-    BOOTMOD_RAMDISK,
-    BOOTMOD_XSM,
-    BOOTMOD_GUEST_DTB,
-    BOOTMOD_UNKNOWN
-}  bootmodule_kind;
-
-enum membank_type {
-    /*
-     * The MEMBANK_DEFAULT type refers to either reserved memory for the
-     * device/firmware (when the bank is in 'reserved_mem') or any RAM (when
-     * the bank is in 'mem').
-     */
-    MEMBANK_DEFAULT,
-    /*
-     * The MEMBANK_STATIC_DOMAIN type is used to indicate whether the memory
-     * bank is bound to a static Xen domain. It is only valid when the bank
-     * is in reserved_mem.
-     */
-    MEMBANK_STATIC_DOMAIN,
-    /*
-     * The MEMBANK_STATIC_HEAP type is used to indicate whether the memory
-     * bank is reserved as static heap. It is only valid when the bank is
-     * in reserved_mem.
-     */
-    MEMBANK_STATIC_HEAP,
-    /*
-     * The MEMBANK_FDT_RESVMEM type is used to indicate whether the memory
-     * bank is from the FDT reserve map.
-     */
-    MEMBANK_FDT_RESVMEM,
-};
-
-/* Indicates the maximum number of characters(\0 included) for shm_id */
-#define MAX_SHM_ID_LENGTH 16
-
-struct shmem_membank_extra {
-    char shm_id[MAX_SHM_ID_LENGTH];
-    unsigned int nr_shm_borrowers;
-};
-
-struct membank {
-    paddr_t start;
-    paddr_t size;
-    union {
-        enum membank_type type;
-#ifdef CONFIG_STATIC_SHM
-        struct shmem_membank_extra *shmem_extra;
-#endif
-    };
-};
-
-struct membanks {
-    __struct_group(membanks_hdr, common, ,
-        unsigned int nr_banks;
-        unsigned int max_banks;
-    );
-    struct membank bank[];
-};
-
-struct meminfo {
-    struct membanks_hdr common;
-    struct membank bank[NR_MEM_BANKS];
-};
-
-struct shared_meminfo {
-    struct membanks_hdr common;
-    struct membank bank[NR_SHMEM_BANKS];
-    struct shmem_membank_extra extra[NR_SHMEM_BANKS];
-};
-
-/*
- * The domU flag is set for kernels and ramdisks of "xen,domain" nodes.
- * The purpose of the domU flag is to avoid getting confused in
- * kernel_probe, where we try to guess which is the dom0 kernel and
- * initrd to be compatible with all versions of the multiboot spec. 
- */
-#define BOOTMOD_MAX_CMDLINE 1024
-struct bootmodule {
-    bootmodule_kind kind;
-    bool domU;
-    paddr_t start;
-    paddr_t size;
-};
-
-/* DT_MAX_NAME is the node name max length according the DT spec */
-#define DT_MAX_NAME 41
-struct bootcmdline {
-    bootmodule_kind kind;
-    bool domU;
-    paddr_t start;
-    char dt_name[DT_MAX_NAME];
-    char cmdline[BOOTMOD_MAX_CMDLINE];
-};
-
-struct bootmodules {
-    int nr_mods;
-    struct bootmodule module[MAX_MODULES];
-};
-
-struct bootcmdlines {
-    unsigned int nr_mods;
-    struct bootcmdline cmdline[MAX_MODULES];
-};
-
-struct bootinfo {
-    struct meminfo mem;
-    /* The reserved regions are only used when booting using Device-Tree */
-    struct meminfo reserved_mem;
-    struct bootmodules modules;
-    struct bootcmdlines cmdlines;
-#ifdef CONFIG_ACPI
-    struct meminfo acpi;
-#endif
-#ifdef CONFIG_STATIC_SHM
-    struct shared_meminfo shmem;
-#endif
-    bool static_heap;
-};
-
-#ifdef CONFIG_ACPI
-#define BOOTINFO_ACPI_INIT .acpi.common.max_banks = NR_MEM_BANKS,
-#else
-#define BOOTINFO_ACPI_INIT
-#endif
-
-#ifdef CONFIG_STATIC_SHM
-#define BOOTINFO_SHMEM_INIT .shmem.common.max_banks = NR_SHMEM_BANKS,
-#else
-#define BOOTINFO_SHMEM_INIT
-#endif
-
-#define BOOTINFO_INIT                               \
-{                                                   \
-    .mem.common.max_banks = NR_MEM_BANKS,           \
-    .reserved_mem.common.max_banks = NR_MEM_BANKS,  \
-    BOOTINFO_ACPI_INIT                              \
-    BOOTINFO_SHMEM_INIT                             \
-}
-
 struct map_range_data
 {
     struct domain *d;
@@ -167,39 +17,8 @@ struct map_range_data
     struct rangeset *irq_ranges;
 };
 
-extern struct bootinfo bootinfo;
-
 extern domid_t max_init_domid;
 
-static inline struct membanks *bootinfo_get_mem(void)
-{
-    return container_of(&bootinfo.mem.common, struct membanks, common);
-}
-
-static inline struct membanks *bootinfo_get_reserved_mem(void)
-{
-    return container_of(&bootinfo.reserved_mem.common, struct membanks, common);
-}
-
-#ifdef CONFIG_ACPI
-static inline struct membanks *bootinfo_get_acpi(void)
-{
-    return container_of(&bootinfo.acpi.common, struct membanks, common);
-}
-#endif
-
-#ifdef CONFIG_STATIC_SHM
-static inline struct membanks *bootinfo_get_shmem(void)
-{
-    return container_of(&bootinfo.shmem.common, struct membanks, common);
-}
-
-static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void)
-{
-    return bootinfo.shmem.extra;
-}
-#endif
-
 void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
 
 size_t estimate_efi_size(unsigned int mem_nr_banks);
@@ -220,9 +39,6 @@ void fw_unreserved_regions(paddr_t s, paddr_t e,
                            void (*cb)(paddr_t ps, paddr_t pe),
                            unsigned int first);
 
-size_t boot_fdt_info(const void *fdt, paddr_t paddr);
-const char *boot_fdt_cmdline(const void *fdt);
-
 bool check_reserved_regions_overlap(paddr_t region_start, paddr_t region_size);
 
 struct bootmodule *add_boot_module(bootmodule_kind kind,
@@ -237,7 +53,6 @@ struct bootcmdline * boot_cmdline_find_by_name(const char *name);
 const char *boot_module_kind_as_string(bootmodule_kind kind);
 
 void init_pdx(void);
-void populate_boot_allocator(void);
 void setup_mm(void);
 
 extern uint32_t hyp_traps_vector[];
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 0c2fdaceaf..cb2c0a16b8 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -48,8 +48,6 @@
 #include <xsm/xsm.h>
 #include <asm/acpi.h>
 
-struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
-
 /*
  * Sanitized version of cpuinfo containing only features available on all
  * cores (only on arm64 as there is no sanitization support on arm32).
@@ -203,321 +201,6 @@ static void __init processor_id(void)
     processor_setup();
 }
 
-static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
-                                         void (*cb)(paddr_t ps, paddr_t pe),
-                                         unsigned int first)
-{
-    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
-#ifdef CONFIG_STATIC_SHM
-    const struct membanks *shmem = bootinfo_get_shmem();
-    unsigned int offset;
-#endif
-    unsigned int i;
-
-    /*
-     * i is the current bootmodule we are evaluating across all possible
-     * kinds.
-     */
-    for ( i = first; i < reserved_mem->nr_banks; i++ )
-    {
-        paddr_t r_s = reserved_mem->bank[i].start;
-        paddr_t r_e = r_s + reserved_mem->bank[i].size;
-
-        if ( s < r_e && r_s < e )
-        {
-            dt_unreserved_regions(r_e, e, cb, i + 1);
-            dt_unreserved_regions(s, r_s, cb, i + 1);
-            return;
-        }
-    }
-
-#ifdef CONFIG_STATIC_SHM
-    /*
-     * When retrieving the corresponding shared memory addresses
-     * below, we need to index the shmem->bank starting from 0, hence
-     * we need to use i - reserved_mem->nr_banks.
-    */
-    offset = reserved_mem->nr_banks;
-    for ( ; i - offset < shmem->nr_banks; i++ )
-    {
-        paddr_t r_s, r_e;
-
-        r_s = shmem->bank[i - offset].start;
-
-        /* Shared memory banks can contain INVALID_PADDR as start */
-        if ( INVALID_PADDR == r_s )
-            continue;
-
-        r_e = r_s + shmem->bank[i - offset].size;
-
-        if ( s < r_e && r_s < e )
-        {
-            dt_unreserved_regions(r_e, e, cb, i + 1);
-            dt_unreserved_regions(s, r_s, cb, i + 1);
-            return;
-        }
-    }
-#endif
-
-    cb(s, e);
-}
-
-/*
- * TODO: '*_end' could be 0 if the bank/region is at the end of the physical
- * address space. This is for now not handled as it requires more rework.
- */
-static bool __init meminfo_overlap_check(const struct membanks *mem,
-                                         paddr_t region_start,
-                                         paddr_t region_size)
-{
-    paddr_t bank_start = INVALID_PADDR, bank_end = 0;
-    paddr_t region_end = region_start + region_size;
-    unsigned int i, bank_num = mem->nr_banks;
-
-    for ( i = 0; i < bank_num; i++ )
-    {
-        bank_start = mem->bank[i].start;
-        bank_end = bank_start + mem->bank[i].size;
-
-        if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
-             region_start >= bank_end )
-            continue;
-        else
-        {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
-                   region_start, region_end, i, bank_start, bank_end);
-            return true;
-        }
-    }
-
-    return false;
-}
-
-/*
- * TODO: '*_end' could be 0 if the module/region is at the end of the physical
- * address space. This is for now not handled as it requires more rework.
- */
-static bool __init bootmodules_overlap_check(struct bootmodules *bootmodules,
-                                             paddr_t region_start,
-                                             paddr_t region_size)
-{
-    paddr_t mod_start = INVALID_PADDR, mod_end = 0;
-    paddr_t region_end = region_start + region_size;
-    unsigned int i, mod_num = bootmodules->nr_mods;
-
-    for ( i = 0; i < mod_num; i++ )
-    {
-        mod_start = bootmodules->module[i].start;
-        mod_end = mod_start + bootmodules->module[i].size;
-
-        if ( region_end <= mod_start || region_start >= mod_end )
-            continue;
-        else
-        {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with mod[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
-                   region_start, region_end, i, mod_start, mod_end);
-            return true;
-        }
-    }
-
-    return false;
-}
-
-void __init fw_unreserved_regions(paddr_t s, paddr_t e,
-                                  void (*cb)(paddr_t ps, paddr_t pe),
-                                  unsigned int first)
-{
-    if ( acpi_disabled )
-        dt_unreserved_regions(s, e, cb, first);
-    else
-        cb(s, e);
-}
-
-/*
- * Given an input physical address range, check if this range is overlapping
- * with the existing reserved memory regions defined in bootinfo.
- * Return true if the input physical address range is overlapping with any
- * existing reserved memory regions, otherwise false.
- */
-bool __init check_reserved_regions_overlap(paddr_t region_start,
-                                           paddr_t region_size)
-{
-    const struct membanks *mem_banks[] = {
-        bootinfo_get_reserved_mem(),
-#ifdef CONFIG_ACPI
-        bootinfo_get_acpi(),
-#endif
-#ifdef CONFIG_STATIC_SHM
-        bootinfo_get_shmem(),
-#endif
-    };
-    unsigned int i;
-
-    /*
-     * Check if input region is overlapping with reserved memory banks or
-     * ACPI EfiACPIReclaimMemory (when ACPI feature is enabled) or static
-     * shared memory banks (when static shared memory feature is enabled)
-     */
-    for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
-        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size) )
-            return true;
-
-    /* Check if input region is overlapping with bootmodules */
-    if ( bootmodules_overlap_check(&bootinfo.modules,
-                                   region_start, region_size) )
-        return true;
-
-    return false;
-}
-
-struct bootmodule __init *add_boot_module(bootmodule_kind kind,
-                                          paddr_t start, paddr_t size,
-                                          bool domU)
-{
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootmodule *mod;
-    unsigned int i;
-
-    if ( mods->nr_mods == MAX_MODULES )
-    {
-        printk("Ignoring %s boot module at %"PRIpaddr"-%"PRIpaddr" (too many)\n",
-               boot_module_kind_as_string(kind), start, start + size);
-        return NULL;
-    }
-
-    if ( check_reserved_regions_overlap(start, size) )
-        return NULL;
-
-    for ( i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->module[i];
-        if ( mod->kind == kind && mod->start == start )
-        {
-            if ( !domU )
-                mod->domU = false;
-            return mod;
-        }
-    }
-
-    mod = &mods->module[mods->nr_mods++];
-    mod->kind = kind;
-    mod->start = start;
-    mod->size = size;
-    mod->domU = domU;
-
-    return mod;
-}
-
-/*
- * boot_module_find_by_kind can only be used to return Xen modules (e.g
- * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
- * modules.
- */
-struct bootmodule * __init boot_module_find_by_kind(bootmodule_kind kind)
-{
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootmodule *mod;
-    int i;
-    for (i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->module[i];
-        if ( mod->kind == kind && !mod->domU )
-            return mod;
-    }
-    return NULL;
-}
-
-void __init add_boot_cmdline(const char *name, const char *cmdline,
-                             bootmodule_kind kind, paddr_t start, bool domU)
-{
-    struct bootcmdlines *cmds = &bootinfo.cmdlines;
-    struct bootcmdline *cmd;
-
-    if ( cmds->nr_mods == MAX_MODULES )
-    {
-        printk("Ignoring %s cmdline (too many)\n", name);
-        return;
-    }
-
-    cmd = &cmds->cmdline[cmds->nr_mods++];
-    cmd->kind = kind;
-    cmd->domU = domU;
-    cmd->start = start;
-
-    ASSERT(strlen(name) <= DT_MAX_NAME);
-    safe_strcpy(cmd->dt_name, name);
-
-    if ( strlen(cmdline) > BOOTMOD_MAX_CMDLINE )
-        panic("module %s command line too long\n", name);
-    safe_strcpy(cmd->cmdline, cmdline);
-}
-
-/*
- * boot_cmdline_find_by_kind can only be used to return Xen modules (e.g
- * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
- * modules.
- */
-struct bootcmdline * __init boot_cmdline_find_by_kind(bootmodule_kind kind)
-{
-    struct bootcmdlines *cmds = &bootinfo.cmdlines;
-    struct bootcmdline *cmd;
-    int i;
-
-    for ( i = 0 ; i < cmds->nr_mods ; i++ )
-    {
-        cmd = &cmds->cmdline[i];
-        if ( cmd->kind == kind && !cmd->domU )
-            return cmd;
-    }
-    return NULL;
-}
-
-struct bootcmdline * __init boot_cmdline_find_by_name(const char *name)
-{
-    struct bootcmdlines *mods = &bootinfo.cmdlines;
-    struct bootcmdline *mod;
-    unsigned int i;
-
-    for (i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->cmdline[i];
-        if ( strcmp(mod->dt_name, name) == 0 )
-            return mod;
-    }
-    return NULL;
-}
-
-struct bootmodule * __init boot_module_find_by_addr_and_kind(bootmodule_kind kind,
-                                                             paddr_t start)
-{
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootmodule *mod;
-    unsigned int i;
-
-    for (i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->module[i];
-        if ( mod->kind == kind && mod->start == start )
-            return mod;
-    }
-    return NULL;
-}
-
-const char * __init boot_module_kind_as_string(bootmodule_kind kind)
-{
-    switch ( kind )
-    {
-    case BOOTMOD_XEN:     return "Xen";
-    case BOOTMOD_FDT:     return "Device Tree";
-    case BOOTMOD_KERNEL:  return "Kernel";
-    case BOOTMOD_RAMDISK: return "Ramdisk";
-    case BOOTMOD_XSM:     return "XSM";
-    case BOOTMOD_GUEST_DTB:     return "DTB";
-    case BOOTMOD_UNKNOWN: return "Unknown";
-    default: BUG();
-    }
-}
-
 void __init discard_initial_modules(void)
 {
     struct bootmodules *mi = &bootinfo.modules;
@@ -556,40 +239,6 @@ static void * __init relocate_fdt(paddr_t dtb_paddr, size_t dtb_size)
     return fdt;
 }
 
-/*
- * Return the end of the non-module region starting at s. In other
- * words return s the start of the next modules after s.
- *
- * On input *end is the end of the region which should be considered
- * and it is updated to reflect the end of the module, clipped to the
- * end of the region if it would run over.
- */
-static paddr_t __init next_module(paddr_t s, paddr_t *end)
-{
-    struct bootmodules *mi = &bootinfo.modules;
-    paddr_t lowest = ~(paddr_t)0;
-    int i;
-
-    for ( i = 0; i < mi->nr_mods; i++ )
-    {
-        paddr_t mod_s = mi->module[i].start;
-        paddr_t mod_e = mod_s + mi->module[i].size;
-
-        if ( !mi->module[i].size )
-            continue;
-
-        if ( mod_s < s )
-            continue;
-        if ( mod_s > lowest )
-            continue;
-        if ( mod_s > *end )
-            continue;
-        lowest = mod_s;
-        *end = min(*end, mod_e);
-    }
-    return lowest;
-}
-
 void __init init_pdx(void)
 {
     const struct membanks *mem = bootinfo_get_mem();
@@ -635,87 +284,6 @@ void __init init_pdx(void)
     }
 }
 
-/*
- * Populate the boot allocator.
- * If a static heap was not provided by the admin, all the RAM but the
- * following regions will be added:
- *  - Modules (e.g., Xen, Kernel)
- *  - Reserved regions
- *  - Xenheap (arm32 only)
- * If a static heap was provided by the admin, populate the boot
- * allocator with the corresponding regions only, but with Xenheap excluded
- * on arm32.
- */
-void __init populate_boot_allocator(void)
-{
-    unsigned int i;
-    const struct membanks *banks = bootinfo_get_mem();
-    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
-    paddr_t s, e;
-
-    if ( bootinfo.static_heap )
-    {
-        for ( i = 0 ; i < reserved_mem->nr_banks; i++ )
-        {
-            if ( reserved_mem->bank[i].type != MEMBANK_STATIC_HEAP )
-                continue;
-
-            s = reserved_mem->bank[i].start;
-            e = s + reserved_mem->bank[i].size;
-#ifdef CONFIG_ARM_32
-            /* Avoid the xenheap, note that the xenheap cannot across a bank */
-            if ( s <= mfn_to_maddr(directmap_mfn_start) &&
-                 e >= mfn_to_maddr(directmap_mfn_end) )
-            {
-                init_boot_pages(s, mfn_to_maddr(directmap_mfn_start));
-                init_boot_pages(mfn_to_maddr(directmap_mfn_end), e);
-            }
-            else
-#endif
-                init_boot_pages(s, e);
-        }
-
-        return;
-    }
-
-    for ( i = 0; i < banks->nr_banks; i++ )
-    {
-        const struct membank *bank = &banks->bank[i];
-        paddr_t bank_end = bank->start + bank->size;
-
-        s = bank->start;
-        while ( s < bank_end )
-        {
-            paddr_t n = bank_end;
-
-            e = next_module(s, &n);
-
-            if ( e == ~(paddr_t)0 )
-                e = n = bank_end;
-
-            /*
-             * Module in a RAM bank other than the one which we are
-             * not dealing with here.
-             */
-            if ( e > bank_end )
-                e = bank_end;
-
-#ifdef CONFIG_ARM_32
-            /* Avoid the xenheap */
-            if ( s < mfn_to_maddr(directmap_mfn_end) &&
-                 mfn_to_maddr(directmap_mfn_start) < e )
-            {
-                e = mfn_to_maddr(directmap_mfn_start);
-                n = mfn_to_maddr(directmap_mfn_end);
-            }
-#endif
-
-            fw_unreserved_regions(s, e, init_boot_pages, 0);
-            s = n;
-        }
-    }
-}
-
 size_t __read_mostly dcache_line_bytes;
 
 /* C entry point for boot CPU */
diff --git a/xen/common/Makefile b/xen/common/Makefile
index f12a474d40..21359bab02 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -77,6 +77,7 @@ obj-$(CONFIG_UBSAN) += ubsan/
 
 obj-$(CONFIG_NEEDS_LIBELF) += libelf/
 obj-$(CONFIG_HAS_DEVICE_TREE) += libfdt/
+obj-$(CONFIG_HAS_DEVICE_TREE) += device-tree/
 
 CONF_FILE := $(if $(patsubst /%,,$(KCONFIG_CONFIG)),$(objtree)/)$(KCONFIG_CONFIG)
 $(obj)/config.gz: $(CONF_FILE)
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
new file mode 100644
index 0000000000..947bad979c
--- /dev/null
+++ b/xen/common/device-tree/Makefile
@@ -0,0 +1 @@
+obj-y += bootinfo.init.o
diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
new file mode 100644
index 0000000000..dcac9a40a0
--- /dev/null
+++ b/xen/common/device-tree/bootinfo.c
@@ -0,0 +1,459 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Derived from $xen/arch/arm/setup.c.
+ *
+ * bookkeeping routines.
+ *
+ * Tim Deegan <tim@xen.org>
+ * Copyright (c) 2011 Citrix Systems.
+ * Copyright (c) 2024 Raptor Engineering LLC
+ */
+
+#include <xen/acpi.h>
+#include <xen/bootfdt.h>
+#include <xen/bug.h>
+#include <xen/device_tree.h>
+#include <xen/init.h>
+#include <xen/libfdt/libfdt-xen.h>
+#include <xen/mm.h>
+
+struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
+
+const char * __init boot_module_kind_as_string(bootmodule_kind kind)
+{
+    switch ( kind )
+    {
+    case BOOTMOD_XEN:     return "Xen";
+    case BOOTMOD_FDT:     return "Device Tree";
+    case BOOTMOD_KERNEL:  return "Kernel";
+    case BOOTMOD_RAMDISK: return "Ramdisk";
+    case BOOTMOD_XSM:     return "XSM";
+    case BOOTMOD_GUEST_DTB:     return "DTB";
+    case BOOTMOD_UNKNOWN: return "Unknown";
+    default: BUG();
+    }
+}
+
+static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
+                                         void (*cb)(paddr_t ps, paddr_t pe),
+                                         unsigned int first)
+{
+    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+#ifdef CONFIG_STATIC_SHM
+    const struct membanks *shmem = bootinfo_get_shmem();
+    unsigned int offset;
+#endif
+    unsigned int i;
+
+    /*
+     * i is the current bootmodule we are evaluating across all possible
+     * kinds.
+     */
+    for ( i = first; i < reserved_mem->nr_banks; i++ )
+    {
+        paddr_t r_s = reserved_mem->bank[i].start;
+        paddr_t r_e = r_s + reserved_mem->bank[i].size;
+
+        if ( s < r_e && r_s < e )
+        {
+            dt_unreserved_regions(r_e, e, cb, i + 1);
+            dt_unreserved_regions(s, r_s, cb, i + 1);
+            return;
+        }
+    }
+
+#ifdef CONFIG_STATIC_SHM
+    /*
+     * When retrieving the corresponding shared memory addresses
+     * below, we need to index the shmem->bank starting from 0, hence
+     * we need to use i - reserved_mem->nr_banks.
+    */
+    offset = reserved_mem->nr_banks;
+    for ( ; i - offset < shmem->nr_banks; i++ )
+    {
+        paddr_t r_s, r_e;
+
+        r_s = shmem->bank[i - offset].start;
+
+        /* Shared memory banks can contain INVALID_PADDR as start */
+        if ( INVALID_PADDR == r_s )
+            continue;
+
+        r_e = r_s + shmem->bank[i - offset].size;
+
+        if ( s < r_e && r_s < e )
+        {
+            dt_unreserved_regions(r_e, e, cb, i + 1);
+            dt_unreserved_regions(s, r_s, cb, i + 1);
+            return;
+        }
+    }
+#endif
+
+    cb(s, e);
+}
+
+/*
+ * TODO: '*_end' could be 0 if the bank/region is at the end of the physical
+ * address space. This is for now not handled as it requires more rework.
+ */
+static bool __init meminfo_overlap_check(const struct membanks *mem,
+                                         paddr_t region_start,
+                                         paddr_t region_size)
+{
+    paddr_t bank_start = INVALID_PADDR, bank_end = 0;
+    paddr_t region_end = region_start + region_size;
+    unsigned int i, bank_num = mem->nr_banks;
+
+    for ( i = 0; i < bank_num; i++ )
+    {
+        bank_start = mem->bank[i].start;
+        bank_end = bank_start + mem->bank[i].size;
+
+        if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
+             region_start >= bank_end )
+            continue;
+        else
+        {
+            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
+                   region_start, region_end, i, bank_start, bank_end);
+            return true;
+        }
+    }
+
+    return false;
+}
+
+/*
+ * TODO: '*_end' could be 0 if the module/region is at the end of the physical
+ * address space. This is for now not handled as it requires more rework.
+ */
+static bool __init bootmodules_overlap_check(struct bootmodules *bootmodules,
+                                             paddr_t region_start,
+                                             paddr_t region_size)
+{
+    paddr_t mod_start = INVALID_PADDR, mod_end = 0;
+    paddr_t region_end = region_start + region_size;
+    unsigned int i, mod_num = bootmodules->nr_mods;
+
+    for ( i = 0; i < mod_num; i++ )
+    {
+        mod_start = bootmodules->module[i].start;
+        mod_end = mod_start + bootmodules->module[i].size;
+
+        if ( region_end <= mod_start || region_start >= mod_end )
+            continue;
+        else
+        {
+            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with mod[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
+                   region_start, region_end, i, mod_start, mod_end);
+            return true;
+        }
+    }
+
+    return false;
+}
+
+void __init fw_unreserved_regions(paddr_t s, paddr_t e,
+                                  void (*cb)(paddr_t ps, paddr_t pe),
+                                  unsigned int first)
+{
+    if ( acpi_disabled )
+        dt_unreserved_regions(s, e, cb, first);
+    else
+        cb(s, e);
+}
+
+/*
+ * Given an input physical address range, check if this range is overlapping
+ * with the existing reserved memory regions defined in bootinfo.
+ * Return true if the input physical address range is overlapping with any
+ * existing reserved memory regions, otherwise false.
+ */
+bool __init check_reserved_regions_overlap(paddr_t region_start,
+                                           paddr_t region_size)
+{
+    const struct membanks *mem_banks[] = {
+        bootinfo_get_reserved_mem(),
+#ifdef CONFIG_ACPI
+        bootinfo_get_acpi(),
+#endif
+#ifdef CONFIG_STATIC_SHM
+        bootinfo_get_shmem(),
+#endif
+    };
+    unsigned int i;
+
+    /*
+     * Check if input region is overlapping with reserved memory banks or
+     * ACPI EfiACPIReclaimMemory (when ACPI feature is enabled) or static
+     * shared memory banks (when static shared memory feature is enabled)
+     */
+    for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
+        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size) )
+            return true;
+
+    /* Check if input region is overlapping with bootmodules */
+    if ( bootmodules_overlap_check(&bootinfo.modules,
+                                   region_start, region_size) )
+        return true;
+
+    return false;
+}
+
+struct bootmodule __init *add_boot_module(bootmodule_kind kind,
+                                          paddr_t start, paddr_t size,
+                                          bool domU)
+{
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootmodule *mod;
+    unsigned int i;
+
+    if ( mods->nr_mods == MAX_MODULES )
+    {
+        printk("Ignoring %s boot module at %"PRIpaddr"-%"PRIpaddr" (too many)\n",
+               boot_module_kind_as_string(kind), start, start + size);
+        return NULL;
+    }
+
+    if ( check_reserved_regions_overlap(start, size) )
+        return NULL;
+
+    for ( i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->module[i];
+        if ( mod->kind == kind && mod->start == start )
+        {
+            if ( !domU )
+                mod->domU = false;
+            return mod;
+        }
+    }
+
+    mod = &mods->module[mods->nr_mods++];
+    mod->kind = kind;
+    mod->start = start;
+    mod->size = size;
+    mod->domU = domU;
+
+    return mod;
+}
+
+/*
+ * boot_module_find_by_kind can only be used to return Xen modules (e.g
+ * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
+ * modules.
+ */
+struct bootmodule * __init boot_module_find_by_kind(bootmodule_kind kind)
+{
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootmodule *mod;
+    int i;
+    for (i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->module[i];
+        if ( mod->kind == kind && !mod->domU )
+            return mod;
+    }
+    return NULL;
+}
+
+void __init add_boot_cmdline(const char *name, const char *cmdline,
+                             bootmodule_kind kind, paddr_t start, bool domU)
+{
+    struct bootcmdlines *cmds = &bootinfo.cmdlines;
+    struct bootcmdline *cmd;
+
+    if ( cmds->nr_mods == MAX_MODULES )
+    {
+        printk("Ignoring %s cmdline (too many)\n", name);
+        return;
+    }
+
+    cmd = &cmds->cmdline[cmds->nr_mods++];
+    cmd->kind = kind;
+    cmd->domU = domU;
+    cmd->start = start;
+
+    ASSERT(strlen(name) <= DT_MAX_NAME);
+    safe_strcpy(cmd->dt_name, name);
+
+    if ( strlen(cmdline) > BOOTMOD_MAX_CMDLINE )
+        panic("module %s command line too long\n", name);
+    safe_strcpy(cmd->cmdline, cmdline);
+}
+
+/*
+ * boot_cmdline_find_by_kind can only be used to return Xen modules (e.g
+ * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
+ * modules.
+ */
+struct bootcmdline * __init boot_cmdline_find_by_kind(bootmodule_kind kind)
+{
+    struct bootcmdlines *cmds = &bootinfo.cmdlines;
+    struct bootcmdline *cmd;
+    int i;
+
+    for ( i = 0 ; i < cmds->nr_mods ; i++ )
+    {
+        cmd = &cmds->cmdline[i];
+        if ( cmd->kind == kind && !cmd->domU )
+            return cmd;
+    }
+    return NULL;
+}
+
+struct bootcmdline * __init boot_cmdline_find_by_name(const char *name)
+{
+    struct bootcmdlines *mods = &bootinfo.cmdlines;
+    struct bootcmdline *mod;
+    unsigned int i;
+
+    for (i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->cmdline[i];
+        if ( strcmp(mod->dt_name, name) == 0 )
+            return mod;
+    }
+    return NULL;
+}
+
+struct bootmodule * __init boot_module_find_by_addr_and_kind(bootmodule_kind kind,
+                                                             paddr_t start)
+{
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootmodule *mod;
+    unsigned int i;
+
+    for (i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->module[i];
+        if ( mod->kind == kind && mod->start == start )
+            return mod;
+    }
+    return NULL;
+}
+
+/*
+ * Return the end of the non-module region starting at s. In other
+ * words return s the start of the next modules after s.
+ *
+ * On input *end is the end of the region which should be considered
+ * and it is updated to reflect the end of the module, clipped to the
+ * end of the region if it would run over.
+ */
+static paddr_t __init next_module(paddr_t s, paddr_t *end)
+{
+    struct bootmodules *mi = &bootinfo.modules;
+    paddr_t lowest = ~(paddr_t)0;
+    int i;
+
+    for ( i = 0; i < mi->nr_mods; i++ )
+    {
+        paddr_t mod_s = mi->module[i].start;
+        paddr_t mod_e = mod_s + mi->module[i].size;
+
+        if ( !mi->module[i].size )
+            continue;
+
+        if ( mod_s < s )
+            continue;
+        if ( mod_s > lowest )
+            continue;
+        if ( mod_s > *end )
+            continue;
+        lowest = mod_s;
+        *end = min(*end, mod_e);
+    }
+    return lowest;
+}
+
+/*
+ * Populate the boot allocator.
+ * If a static heap was not provided by the admin, all the RAM but the
+ * following regions will be added:
+ *  - Modules (e.g., Xen, Kernel)
+ *  - Reserved regions
+ *  - Xenheap (CONFIG_SEPARATE_XENHEAP only)
+ * If a static heap was provided by the admin, populate the boot
+ * allocator with the corresponding regions only, but with Xenheap excluded
+ * on CONFIG_SEPARATE_XENHEAP.
+ */
+void __init populate_boot_allocator(void)
+{
+    unsigned int i;
+    const struct membanks *banks = bootinfo_get_mem();
+    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+    paddr_t s, e;
+
+    if ( bootinfo.static_heap )
+    {
+        for ( i = 0 ; i < reserved_mem->nr_banks; i++ )
+        {
+            if ( reserved_mem->bank[i].type != MEMBANK_STATIC_HEAP )
+                continue;
+
+            s = reserved_mem->bank[i].start;
+            e = s + reserved_mem->bank[i].size;
+#ifdef CONFIG_SEPARATE_XENHEAP
+            /* Avoid the xenheap, note that the xenheap cannot across a bank */
+            if ( s <= mfn_to_maddr(directmap_mfn_start) &&
+                 e >= mfn_to_maddr(directmap_mfn_end) )
+            {
+                init_boot_pages(s, mfn_to_maddr(directmap_mfn_start));
+                init_boot_pages(mfn_to_maddr(directmap_mfn_end), e);
+            }
+            else
+#endif
+                init_boot_pages(s, e);
+        }
+
+        return;
+    }
+
+    for ( i = 0; i < banks->nr_banks; i++ )
+    {
+        const struct membank *bank = &banks->bank[i];
+        paddr_t bank_end = bank->start + bank->size;
+
+        s = bank->start;
+        while ( s < bank_end )
+        {
+            paddr_t n = bank_end;
+
+            e = next_module(s, &n);
+
+            if ( e == ~(paddr_t)0 )
+                e = n = bank_end;
+
+            /*
+             * Module in a RAM bank other than the one which we are
+             * not dealing with here.
+             */
+            if ( e > bank_end )
+                e = bank_end;
+
+#ifdef CONFIG_SEPARATE_XENHEAP
+            /* Avoid the xenheap */
+            if ( s < mfn_to_maddr(directmap_mfn_end) &&
+                 mfn_to_maddr(directmap_mfn_start) < e )
+            {
+                e = mfn_to_maddr(directmap_mfn_start);
+                n = mfn_to_maddr(directmap_mfn_end);
+            }
+#endif
+
+            fw_unreserved_regions(s, e, init_boot_pages, 0);
+            s = n;
+        }
+    }
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
new file mode 100644
index 0000000000..7cd45b3d4b
--- /dev/null
+++ b/xen/include/xen/bootfdt.h
@@ -0,0 +1,196 @@
+#ifndef __XEN_BOOTFDT_H__
+#define __XEN_BOOTFDT_H__
+
+#include <xen/types.h>
+#include <xen/kernel.h>
+#include <xen/macros.h>
+
+#define MIN_FDT_ALIGN 8
+#define MAX_FDT_SIZE SZ_2M
+
+#define NR_MEM_BANKS 256
+#define NR_SHMEM_BANKS 32
+
+#define MAX_MODULES 32 /* Current maximum useful modules */
+
+typedef enum {
+    BOOTMOD_XEN,
+    BOOTMOD_FDT,
+    BOOTMOD_KERNEL,
+    BOOTMOD_RAMDISK,
+    BOOTMOD_XSM,
+    BOOTMOD_GUEST_DTB,
+    BOOTMOD_UNKNOWN
+}  bootmodule_kind;
+
+enum membank_type {
+    /*
+     * The MEMBANK_DEFAULT type refers to either reserved memory for the
+     * device/firmware (when the bank is in 'reserved_mem') or any RAM (when
+     * the bank is in 'mem').
+     */
+    MEMBANK_DEFAULT,
+    /*
+     * The MEMBANK_STATIC_DOMAIN type is used to indicate whether the memory
+     * bank is bound to a static Xen domain. It is only valid when the bank
+     * is in reserved_mem.
+     */
+    MEMBANK_STATIC_DOMAIN,
+    /*
+     * The MEMBANK_STATIC_HEAP type is used to indicate whether the memory
+     * bank is reserved as static heap. It is only valid when the bank is
+     * in reserved_mem.
+     */
+    MEMBANK_STATIC_HEAP,
+    /*
+     * The MEMBANK_FDT_RESVMEM type is used to indicate whether the memory
+     * bank is from the FDT reserve map.
+     */
+    MEMBANK_FDT_RESVMEM,
+};
+
+/* Indicates the maximum number of characters(\0 included) for shm_id */
+#define MAX_SHM_ID_LENGTH 16
+
+struct shmem_membank_extra {
+    char shm_id[MAX_SHM_ID_LENGTH];
+    unsigned int nr_shm_borrowers;
+};
+
+struct membank {
+    paddr_t start;
+    paddr_t size;
+    union {
+        enum membank_type type;
+#ifdef CONFIG_STATIC_SHM
+        struct shmem_membank_extra *shmem_extra;
+#endif
+    };
+};
+
+struct membanks {
+    __struct_group(membanks_hdr, common, ,
+        unsigned int nr_banks;
+        unsigned int max_banks;
+    );
+    struct membank bank[];
+};
+
+struct meminfo {
+    struct membanks_hdr common;
+    struct membank bank[NR_MEM_BANKS];
+};
+
+struct shared_meminfo {
+    struct membanks_hdr common;
+    struct membank bank[NR_SHMEM_BANKS];
+    struct shmem_membank_extra extra[NR_SHMEM_BANKS];
+};
+
+/*
+ * The domU flag is set for kernels and ramdisks of "xen,domain" nodes.
+ * The purpose of the domU flag is to avoid getting confused in
+ * kernel_probe, where we try to guess which is the dom0 kernel and
+ * initrd to be compatible with all versions of the multiboot spec.
+ */
+#define BOOTMOD_MAX_CMDLINE 1024
+struct bootmodule {
+    bootmodule_kind kind;
+    bool domU;
+    paddr_t start;
+    paddr_t size;
+};
+
+/* DT_MAX_NAME is the node name max length according the DT spec */
+#define DT_MAX_NAME 41
+struct bootcmdline {
+    bootmodule_kind kind;
+    bool domU;
+    paddr_t start;
+    char dt_name[DT_MAX_NAME];
+    char cmdline[BOOTMOD_MAX_CMDLINE];
+};
+
+struct bootmodules {
+    int nr_mods;
+    struct bootmodule module[MAX_MODULES];
+};
+
+struct bootcmdlines {
+    unsigned int nr_mods;
+    struct bootcmdline cmdline[MAX_MODULES];
+};
+
+struct bootinfo {
+    struct meminfo mem;
+    /* The reserved regions are only used when booting using Device-Tree */
+    struct meminfo reserved_mem;
+    struct bootmodules modules;
+    struct bootcmdlines cmdlines;
+#ifdef CONFIG_ACPI
+    struct meminfo acpi;
+#endif
+#ifdef CONFIG_STATIC_SHM
+    struct shared_meminfo shmem;
+#endif
+    bool static_heap;
+};
+
+#ifdef CONFIG_ACPI
+#define BOOTINFO_ACPI_INIT .acpi.common.max_banks = NR_MEM_BANKS,
+#else
+#define BOOTINFO_ACPI_INIT
+#endif
+
+#ifdef CONFIG_STATIC_SHM
+#define BOOTINFO_SHMEM_INIT .shmem.common.max_banks = NR_SHMEM_BANKS,
+#else
+#define BOOTINFO_SHMEM_INIT
+#endif
+
+#define BOOTINFO_INIT                               \
+{                                                   \
+    .mem.common.max_banks = NR_MEM_BANKS,           \
+    .reserved_mem.common.max_banks = NR_MEM_BANKS,  \
+    BOOTINFO_ACPI_INIT                              \
+    BOOTINFO_SHMEM_INIT                             \
+}
+
+extern struct bootinfo bootinfo;
+
+void populate_boot_allocator(void);
+
+size_t boot_fdt_info(const void *fdt, paddr_t paddr);
+
+const char *boot_fdt_cmdline(const void *fdt);
+
+static inline struct membanks *bootinfo_get_reserved_mem(void)
+{
+    return container_of(&bootinfo.reserved_mem.common, struct membanks, common);
+}
+
+static inline struct membanks *bootinfo_get_mem(void)
+{
+    return container_of(&bootinfo.mem.common, struct membanks, common);
+}
+
+#ifdef CONFIG_ACPI
+static inline struct membanks *bootinfo_get_acpi(void)
+{
+    return container_of(&bootinfo.acpi.common, struct membanks, common);
+}
+#endif
+
+#ifdef CONFIG_STATIC_SHM
+static inline struct membanks *bootinfo_get_shmem(void)
+{
+    return container_of(&bootinfo.shmem.common, struct membanks, common);
+}
+
+static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void)
+{
+    return bootinfo.shmem.extra;
+}
+#endif
+
+#endif /* __XEN_BOOTFDT_H__ */
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 10:43:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 10:43:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752894.1161164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOxS4-0004hb-G1; Wed, 03 Jul 2024 10:43:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752894.1161164; Wed, 03 Jul 2024 10:43:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOxS4-0004fz-80; Wed, 03 Jul 2024 10:43:04 +0000
Received: by outflank-mailman (input) for mailman id 752894;
 Wed, 03 Jul 2024 10:43: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=mAj5=OD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOxS2-0003zy-MD
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 10:43:02 +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 04cf92dc-3929-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 12:43:01 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a7241b2fe79so575648766b.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 03:43:01 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72b92985desm414590066b.78.2024.07.03.03.42.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 03:42: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: 04cf92dc-3929-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720003380; x=1720608180; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+pLr0uyErdUGlpbnK/HxLvapfSaB11DzNANAbBgSYDg=;
        b=NCKRIFPiJ76VtuonhrfZH0ldTMo+Y7bFBAa3pw0jvXUcCk5cXj6Kisoxcf89HQAg73
         0zLnCNoSGKRJiZ1Zy0LCE5ta6PMgGwbnWpg7lvk+AhH5hv5MMMxR6t1RjjSrz0QJFSOP
         0ZBmIJfxi6LglSuXYTR7czr+td0C5oapkiXa3/E6h7ficUzzR3uF709l3u9WMXK+nZOa
         UvzootZCTA5yqr+s8EokIvppjGR/74Xk815vCDkEZg/d+c8VZXW4TiYbgjRttg4kiLAq
         IOj984Twlr1o2HHBHddIJUs0Q9FCFxeMMt2Ts0hAuD7nXWVsu/oJVC0cNSpWHXSeqeXX
         RTMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720003380; x=1720608180;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+pLr0uyErdUGlpbnK/HxLvapfSaB11DzNANAbBgSYDg=;
        b=rmLgeUhhP/4wQwWac5HxueJTFMnt7BQmUkKNbMnCoy9ET/zsUZgzfphv0pjAqA1JRP
         15tfyK/H3bLvZ7hXq1ZAAK1lHpvCfqLp1gthGv11MKGJf2oaht9mRBZAyjVGqTvdJ+/I
         g53I2PlCREMfbkkmoCWzeTZfNgUVjJugqPbDLY8quszCs3yaV3wpKTheYd38vSyg0o0c
         Cir7cBpDDZaU2Clhzc5906k4syvcJOTKG6EsNgt/7Jkzvk8EPbuX5gDbfBKc0Hg17Z8x
         oTJK/c0EMVDCJg+OXa1tLY4KmJOT911EH9J/HPDl7ejrw8nRpqXxR9VoscGk0EFjw0qg
         SbkQ==
X-Gm-Message-State: AOJu0YxQb8NaxdLmwDuZMRuHSUdgJ5ZaGXaJOfZawLdaKgR02I0WZXee
	KwLkOXA3snOnErrB8omUiiKFYTCktp5ETtBUlpSri3FKtNE/Une9KUYnihm5
X-Google-Smtp-Source: AGHT+IH3O6KWGvDg2t91/NyMVCFCqzBu4loX4h2mF+Jp6kwL5bKL+02NZHeN4ouuhErBQnF9C49v+g==
X-Received: by 2002:a17:907:7295:b0:a72:7bf4:694c with SMTP id a640c23a62f3a-a751443c582mr1021317066b.16.1720003379590;
        Wed, 03 Jul 2024 03:42:59 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 5/5] xen/riscv: map FDT
Date: Wed,  3 Jul 2024 12:42:51 +0200
Message-ID: <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720002425.git.oleksii.kurochko@gmail.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Except mapping of FDT, it is also printing command line passed by
a DTB and initialize bootinfo from a DTB.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/riscv64/head.S |  3 +++
 xen/arch/riscv/setup.c        | 21 +++++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/xen/arch/riscv/riscv64/head.S b/xen/arch/riscv/riscv64/head.S
index 3261e9fce8..22fb36a861 100644
--- a/xen/arch/riscv/riscv64/head.S
+++ b/xen/arch/riscv/riscv64/head.S
@@ -41,6 +41,9 @@ FUNC(start)
 
         jal     setup_initial_pagetables
 
+        mv      a0, s1
+        jal     fdt_map
+
         /* Calculate proper VA after jump from 1:1 mapping */
         la      a0, .L_primary_switched
         sub     a0, a0, s2
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 4f06203b46..b346956e06 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -1,7 +1,9 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bootfdt.h>
 #include <xen/bug.h>
 #include <xen/compile.h>
+#include <xen/device_tree.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 
@@ -33,15 +35,34 @@ static void test_macros_from_bug_h(void)
     printk("WARN is most likely working\n");
 }
 
+void __init fdt_map(paddr_t dtb_addr)
+{
+    device_tree_flattened = early_fdt_map(dtb_addr);
+    if ( !device_tree_flattened )
+    {
+        printk("wrong FDT\n");
+        die();
+    }
+}
+
 void __init noreturn start_xen(unsigned long bootcpu_id,
                                paddr_t dtb_addr)
 {
+    size_t fdt_size;
+    const char *cmdline;
+
     remove_identity_mapping();
 
     trap_init();
 
     test_macros_from_bug_h();
 
+    fdt_size = boot_fdt_info(device_tree_flattened, dtb_addr);
+
+    cmdline = boot_fdt_cmdline(device_tree_flattened);
+    printk("Command line: %s\n", cmdline);
+    cmdline_parse(cmdline);
+
     printk("All set up\n");
 
     for ( ;; )
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 10:53:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 10:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752934.1161181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOxbh-0000BI-DB; Wed, 03 Jul 2024 10:53:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752934.1161181; Wed, 03 Jul 2024 10:53:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOxbh-0000BB-AJ; Wed, 03 Jul 2024 10:53:01 +0000
Received: by outflank-mailman (input) for mailman id 752934;
 Wed, 03 Jul 2024 10:53:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mAj5=OD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sOxbg-0000B5-Lc
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 10:53:00 +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 6906b913-392a-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 12:52:58 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e38028so2476518a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 03:52:58 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77a3aa4bd4sm35654966b.104.2024.07.03.03.52.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 03:52: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: 6906b913-392a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720003977; x=1720608777; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=9mhonVAVC2+IQURbShxcBBFE4VtPExjfjps0/b/bgHE=;
        b=bEQ1ROM5KUlXMdqw49MTbuNpCG4T4w1TMhFvGvaVhLGVNMQULuUpSVHIubtSihhnC6
         QrOMdimwCiRNEXESieQ1Vp+0MNYW/BkUpu0HcydtgG+2cbB1otD3xUvcMjtNrCp3jyOw
         snHtObwz7IRSsPWB/pk0uRUrHVXzNxX0RpYeO6PYiG4aV9AFsbKrwu2oZtCTTQ0IvCSV
         mgi0I2Pik8C/zTTOlhXP1sBIOAWn1k0g5rW3w0EhBqk2vH09zD3Q4WeZhl+jwJEUIBfZ
         2Lqpb5nxAmCZUrXdeLfkr9ToY3D79EeH0TpWcSJ93Z357GvikA2+ZC5JmrhjTzWxViID
         sI3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720003977; x=1720608777;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=9mhonVAVC2+IQURbShxcBBFE4VtPExjfjps0/b/bgHE=;
        b=s9n9NXKetihqLymYbdQUkgjEhrq8yH9jgbbNT2u4iCW5Raa1V05j/Quq4HHcyp/Azj
         nJb52KRtbH1oYbTeUBeNVlVcDFerLczOiCtnDcoXgztdL9fm4rOz3Vfr4YTTlbEpeGdk
         F28w9/ewIDt5iRUXwIcZIblT3z1yELxrHGOQZ5XKldzaP+VxlHV6BkHihU34VU2fSDGI
         oed97I2yPX4pCECV0VV3nddCtVq/SEQHzAHjRjW4pBCJPNmYcmpTCW5z3c6Yv6phlxRY
         z77NmhPAh1BZ/5oWSS8BbvUIwbd7YL48qRcd8oxXvFDaBqpWwmnrmi1NK7S6xE1FN/0+
         +hNA==
X-Gm-Message-State: AOJu0YxUDGRDpGDeZ8YI+wT19dNwPyIVqflGpO4R67NURhr/UX0BUd+y
	1Mi670LKT4ePUQEdiZXrBqtd/epQICj7N5+zYPjCv5Goutecz/V7GXnB8OnU
X-Google-Smtp-Source: AGHT+IEcjyPEimZpzGqNQnxNv1cdnHkMKw9TJLfIgo2xP7ulJBhH0QXSvZFhU4huATdXgPukYg/lZg==
X-Received: by 2002:a17:906:3b9a:b0:a72:5fe6:3f49 with SMTP id a640c23a62f3a-a7514512e14mr688407866b.75.1720003977233;
        Wed, 03 Jul 2024 03:52:57 -0700 (PDT)
Message-ID: <d735b1ff67ccdd097930b23d490f00f09c11465f.camel@gmail.com>
Subject: Re: [PATCH for 4.20 v1 0/5] RISCV device tree mapping
From: Oleksii <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,  Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>,  Alistair Francis
 <alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>
Date: Wed, 03 Jul 2024 12:52:56 +0200
In-Reply-To: <cover.1720002425.git.oleksii.kurochko@gmail.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0


Missed to write in the cover letter that this patch series is based on:
  [PATCH for 4.20 v9 0/5] RISCV basic exception handling implementation

~ Oleksii
On Wed, 2024-07-03 at 12:42 +0200, Oleksii Kurochko wrote:
> Current patch series introduces device tree mapping for RISC-V.
>=20
> Also, it introduces common stuff for working with fdt which is
> based on the patches from [1]:
> =C2=A0 [PATCH v4 2/6] xen/device-tree: Move Arm's setup.c bootinfo
> functions to common
> =C2=A0 [PATCH v4 3/6] xen/common: Move Arm's bootfdt.c
> All changes which were done on top of Shawn's patches please find in
> "Changes" section
> of each patch.
>=20
> [1]
> https://lore.kernel.org/xen-devel/cover.1712893887.git.sanastasio@raptore=
ngineering.com/
>=20
> Oleksii Kurochko (3):
> =C2=A0 xen/riscv: enable CONFIG_HAS_DEVICE_TREE
> =C2=A0 xen/riscv: introduce device tree maping function
> =C2=A0 xen/riscv: map FDT
>=20
> Shawn Anastasio (2):
> =C2=A0 xen/device-tree: Move Arm's setup.c bootinfo functions to common
> =C2=A0 xen/common: Move Arm's bootfdt.c to common
>=20
> =C2=A0MAINTAINERS=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 2 +
> =C2=A0xen/arch/arm/Makefile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 1 -
> =C2=A0xen/arch/arm/bootfdt.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 622 --------------------------
> -
> =C2=A0xen/arch/arm/include/asm/setup.h=C2=A0=C2=A0=C2=A0 | 200 +--------
> =C2=A0xen/arch/arm/setup.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 432 -------------------
> =C2=A0xen/arch/riscv/Kconfig=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 1 +
> =C2=A0xen/arch/riscv/include/asm/config.h |=C2=A0=C2=A0 6 +
> =C2=A0xen/arch/riscv/include/asm/mm.h=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=
=A0 2 +
> =C2=A0xen/arch/riscv/mm.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 37 +-
> =C2=A0xen/arch/riscv/riscv64/head.S=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0=C2=A0 3 +
> =C2=A0xen/arch/riscv/setup.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 21 +
> =C2=A0xen/common/Makefile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 1 +
> =C2=A0xen/common/device-tree/Makefile=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=
=A0 2 +
> =C2=A0xen/common/device-tree/bootfdt.c=C2=A0=C2=A0=C2=A0 | 635
> ++++++++++++++++++++++++++++
> =C2=A0xen/common/device-tree/bootinfo.c=C2=A0=C2=A0 | 459 +++++++++++++++=
+++++
> =C2=A0xen/include/xen/bootfdt.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 | 210 +++++++++
> =C2=A016 files changed, 1375 insertions(+), 1259 deletions(-)
> =C2=A0delete mode 100644 xen/arch/arm/bootfdt.c
> =C2=A0create mode 100644 xen/common/device-tree/Makefile
> =C2=A0create mode 100644 xen/common/device-tree/bootfdt.c
> =C2=A0create mode 100644 xen/common/device-tree/bootinfo.c
> =C2=A0create mode 100644 xen/include/xen/bootfdt.h
>=20



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 11:03:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 11:03:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752945.1161192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOxlZ-0002MF-Bv; Wed, 03 Jul 2024 11:03:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752945.1161192; Wed, 03 Jul 2024 11: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 1sOxlZ-0002M8-7c; Wed, 03 Jul 2024 11:03:13 +0000
Received: by outflank-mailman (input) for mailman id 752945;
 Wed, 03 Jul 2024 11: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=Xq3e=OD=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sOxlY-0002Lx-Ec
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 11:03:12 +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 d671aedc-392b-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 13:03:11 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-58b447c519eso2654380a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 04:03:11 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72ab065213sm501358766b.132.2024.07.03.04.03.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 04:03: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: d671aedc-392b-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720004591; x=1720609391; 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=eSr/TpptrSrF5qBNkDNHmTEXSX1VMYrO/UeSz7uqPWY=;
        b=fHSL1qy7KPrwxd+IgJPJOIeFRIorvQM4TnoykE8VQqtmemZbKqNEZv5BCIyKV4WdJw
         Ga1XpX7NdZeA+wObOqXnPh6Iqx0sg4UCEPjT8eG1SJlJ54bWRMOpbeKW5EERP6jSUfP4
         qat2y4F+Locydnv0kZk+U+LJOB/M6+lPGe8Yc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720004591; x=1720609391;
        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=eSr/TpptrSrF5qBNkDNHmTEXSX1VMYrO/UeSz7uqPWY=;
        b=MOOzZ8MNUKIRr7qCio6wTuQ64jaKUNO8/5pG9Tu/l99abcsx2cRFAR935BYZeWZyHT
         qviX4VVvEGzuNZw7Fe4dwHIM/UFtiiejLpxbW5K9WRlRfLYzHEpUgpSUh3i35JDMwqlR
         rzDwy0daKe8UuhPfgJah3RiCi3kCPqe8p/4hg68Xe/UqEARQJ7S+426bkhGgtJux3m17
         V7XrMLxlOKQSHYsPdJmnsCNunYhPkcOVoMBVC59bTCGHkIwdHLJ7hY16qN5iX61INUYx
         GAEJS3yFMjGkehKUgsUI2gjGXJi9djKzCQs/PAmM6iVdtI2jWp+WbBWxuH4xJWjn3IK3
         tKpg==
X-Forwarded-Encrypted: i=1; AJvYcCUZ/fpKi4z7SK9QRMGz3+VNXGv9nM8hKPv1PlrP/N4pzq2vjvfxZmQsFw0WvqUZsKRNNxKOgj+8+jlW73QJeEsbgIxKF56sxAPRE0MZylU=
X-Gm-Message-State: AOJu0YwXX8Jd/QrMYq4p1WrTENZNUGES1Q38FfGC+uCk46jQ9iOvd3ju
	1oWTd+alFnSrTfPAe4vvx1IVw9pmAHu3YiuXPvrjZbCPXoX+cZvewVBOrEGA/JY=
X-Google-Smtp-Source: AGHT+IFMD9pNQaiC3o6i36Z8SdWM/VZtga4/mMv3zQwWG5r8NLtNs8d4NzxMm0Zi43cD/AjW2fV5BQ==
X-Received: by 2002:a17:906:b287:b0:a70:978c:fe51 with SMTP id a640c23a62f3a-a75144f62d9mr645799366b.53.1720004591026;
        Wed, 03 Jul 2024 04:03:11 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Wed, 03 Jul 2024 12:03:08 +0100
Message-Id: <D2FUQNREKW6A.1RX24HQ9XJBA7@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Julien Grall"
 <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>,
 "Xen-devel" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.19?] xen/vmap: Document the vmap header
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>
X-Mailer: aerc 0.17.0
References: <b19a5ca7abd27bd4f31a0d87573687297dd7df58.1719849287.git.alejandro.vallejo@cloud.com> <95f8c522-f66e-48cd-bf7c-6033614e7bbf@suse.com>
In-Reply-To: <95f8c522-f66e-48cd-bf7c-6033614e7bbf@suse.com>

On Wed Jul 3, 2024 at 8:41 AM BST, Jan Beulich wrote:
> On 02.07.2024 15:03, Alejandro Vallejo wrote:
> > --- a/xen/include/xen/vmap.h
> > +++ b/xen/include/xen/vmap.h
> > @@ -1,34 +1,131 @@
> > +/*
> > + * Interface to map physical memory onto contiguous virtual memory are=
as.
> > + *
> > + * Two ranges of linear address space are reserved for this purpose: A=
 general
> > + * purpose area (VMAP_DEFAULT) and a livepatch-specific area (VMAP_XEN=
). The
> > + * latter is used when loading livepatches and the former for everythi=
ng else.
> > + */
> >  #if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
> >  #define __XEN_VMAP_H__
> > =20
> >  #include <xen/mm-frame.h>
> >  #include <xen/page-size.h>
> > =20
> > +/** Identifiers for the linear ranges tracked by vmap */
>
> Here and below: Why /** ? Seeing ...
>
> >  enum vmap_region {
> > +    /*
> > +     * Region used for general purpose RW mappings. Mapping/allocating=
 memory
> > +     * here can induce extra allocations for the supporting page table=
s.
> > +     */
>
> ... this vs ...
>
> >      VMAP_DEFAULT,
> > +    /**
> > +     * Region used for loading livepatches. Can't use VMAP_DEFAULT bec=
ause it
> > +     * must live close to the running Xen image. The caller also ensur=
es all
> > +     * page tables are already in place with adequate PTE flags.
> > +     */
>
> ... this, it's not even looking to be consistent.
>
> >      VMAP_XEN,
> > +    /** Sentinel value for bounds checking */
> >      VMAP_REGION_NR,
> >  };

Double stars are Doxygen style for documenting interfaces. I don't mind get=
ting
rid of those. Some functions exhibit them in the arm port, but it's true
virtually nothing in common Xen does. VMAP_XEN's comment was meant to have =
it
too, I just missed it :)

> > =20
> > +/**
> > + * Runtime initialiser for each vmap region type
> > + *
> > + * Must only be called once per vmap region type.
> > + *
> > + * @param type  Designation of the region to initialise.
> > + * @param start Start address of the `type` region.
> > + * @param end   End address (not inclusive) of the `type` region
> > + */
> >  void vm_init_type(enum vmap_region type, void *start, void *end);
> > =20
> > +/**
> > + * Maps a range of physical ranges onto a single virtual range
>
> Largely related to it not really being clear what "a range of physical ra=
nges"
> actually is, maybe "a set of physical ranges"?

Ack. I like your phrasing better.

>
> > + * `mfn` is an array of `nr` physical ranges, each of which is `granul=
arity`
> > + * pages wide. `type` defines which vmap region to use for the mapping=
 and
> > + * `flags` is the PTE flags the page table leaves are meant to have.
> > + *
> > + * Typically used via the vmap() and vmap_contig() helpers.
> > + *
> > + * @param mfn          Array of mfns
> > + * @param granularity  Number of contiguous pages each mfn represents
> > + * @param nr           Number of mfns in the `mfn` array
> > + * @param align        Alignment of the virtual area to map
> > + * @param flags        PTE flags for the leaves of the PT tree.
> > + * @param type         Which region to create the mappings on
> > + */
> >  void *__vmap(const mfn_t *mfn, unsigned int granularity, unsigned int =
nr,
> >               unsigned int align, unsigned int flags, enum vmap_region =
type);
> > +
> > +/**
> > + * Map an arrray of pages contiguously into the VMAP_DEFAULT vmap regi=
on
>
> Nit: One r too many in "array".

Sure.

>
> > + * @param[in] mfn Pointer to the base of an array of mfns
> > + * @param[in] nr  Number of mfns in the array
> > + */
> >  void *vmap(const mfn_t *mfn, unsigned int nr);
> > +
> > +/**
> > + * Maps physically contiguous pages onto the VMAP_DEFAULT vmap region
> > + *
> > + * Used when the directmap is unavailable (i.e: due to secret hiding)
>
> Please omit this. There's no reason to suggest it can't also be used for
> other purposes.

Sure.

>
> > + * @param mfn Base mfn of the physical region
> > + * @param nr  Number of mfns in the physical region
> > + */
> >  void *vmap_contig(mfn_t mfn, unsigned int nr);
> > +
> > +/**
> > + * Unmaps a range of virtually contiguous memory from one of the vmap =
regions
> > + *
> > + * The system remembers internally how wide the mapping is and unmaps =
it all.
> > + * It also can determine the vmap region type from the `va`.
> > + *
> > + * @param va Virtual base address of the range to unmap
> > + */
> >  void vunmap(const void *va);
> > =20
> > +/**
> > + * Allocate `size` octets of possibly non-contiguous physical memory a=
nd map
> > + * them contiguously in the VMAP_DEFAULT vmap region
> > + *
> > + * The system remembers internally how wide the mapping is and unmaps =
it all.
>
> This is a verbatim copy of what you say for vunmap(), yet it looks unrela=
ted
> here. Maybe you meant to edit it after copy-and-paste? Or maybe this was
> meant to go ...

Yeah, that shouldn't be there and was meant to go...

>
> > + * @param size Pointer to the base of an array of mfns
> > + * @return Pointer to the mapped area on success; NULL otherwise.
> > + */
> >  void *vmalloc(size_t size);
> > +
> > +/** Same as vmalloc(), but for the VMAP_XEN vmap region. */
> >  void *vmalloc_xen(size_t size);
> > =20
> > +/** Same as vmalloc(), but set the contents to zero before returning *=
/
> >  void *vzalloc(size_t size);
> > +
> > +/**
> > + * Unmap and free memory from vmalloc(), vmalloc_xen() or vzalloc()
> > + *
> > + * @param va Virtual base address of the range to free and unmap
> > + */
> >  void vfree(void *va);
>
> ... here?

... there.

>
> Also, if you want this to be considered for 4.19, please don't forget to =
Cc
> Oleksii.
>
> Jan

Will do on v2.

Cheers,
Alejandro



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 11:19:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 11:19:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752954.1161201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOy1L-0004iH-M2; Wed, 03 Jul 2024 11:19:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752954.1161201; Wed, 03 Jul 2024 11: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 1sOy1L-0004iA-JA; Wed, 03 Jul 2024 11:19:31 +0000
Received: by outflank-mailman (input) for mailman id 752954;
 Wed, 03 Jul 2024 11:19: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=Xq3e=OD=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sOy1J-0004i4-Qd
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 11:19:29 +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 1cc225af-392e-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 13:19:28 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-58bac81f419so2368152a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 04:19:28 -0700 (PDT)
Received: from EMEAENGAAD19049.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72ab08cf7csm501651566b.155.2024.07.03.04.19.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 04:19: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: 1cc225af-392e-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720005568; x=1720610368; 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=pP+GzuzwiUPFuVA4wabuMu0yHI34+ezkA5qv9mNcZfc=;
        b=lpho/iVyzVwndaxKphnwZjnFamQ2RCZjYc2elbZtVQqHleqY3zWuLAbn7sQ/BzwnUa
         vCRaH5HfkMcsEWiRuDp6DuegTcMfo4sDzJxIIlK8n0ZMGzIfN75jXfauTz5sS+m/ENuK
         YJc3fiWSP+KIkCARxGDCbEzRIdJeYjEkKArrA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720005568; x=1720610368;
        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=pP+GzuzwiUPFuVA4wabuMu0yHI34+ezkA5qv9mNcZfc=;
        b=IWxxZq5r/Pcgnk/FxsYAF7XjkjCtHi+48drGmgZeHi4IJbnxnuAZI8qoQ6nrjzrDUN
         75dpew5rDJ6QD+Esr8O0Gs1lbFcx3lLfPRVfQLqFWe3i8wMhdOfqLdky4CNQJfJxxPK2
         zIdx3okMlW98/Wo8cROQMP5ls4lRtfLqRI6E0JyMzYOAMu8bSwKeCPYndX9LfBQ1cwxJ
         CgTxwAQYa8qBPzfZPX2B3pcF6f09taP0DDokPD3D+eYQgH9WoLTwJk/fxIHGmLiOt7kt
         l7jVpk+S8gw5lZEaA2urpS3dHIcX4zQ3aV4wnS3/3lQ8WTpq9nuadbH3vvdH3NgAi7sr
         61UA==
X-Gm-Message-State: AOJu0YwvF0gVq0PyIQqwYx2nAxtGg+xtJl+B/Fog20ptv7Ini4xBGEO1
	2RaAFeuWh2fWigkSRCAvBEBQeg1FcJR0iN+aH/dXdvZ9t5y80SEMBhI+R/rHMalwHRPDPvlOxKN
	olyA=
X-Google-Smtp-Source: AGHT+IHjdpnXQmKNDKCj+3CegtCwTs2s51KNawg8qs47brVRkxkOtOmo0SzUxSkAtndGjQh1i7CSlw==
X-Received: by 2002:a17:906:3ac2:b0:a72:b26c:7792 with SMTP id a640c23a62f3a-a751445f854mr661760066b.69.1720005567604;
        Wed, 03 Jul 2024 04:19:27 -0700 (PDT)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 v2] xen/vmap: Document the vmap header
Date: Wed,  3 Jul 2024 12:19:17 +0100
Message-Id: <f8bcfe757b45ce59e1a1203c2675a4266cc15f20.1720005327.git.alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

In it's current form it's rather cryptic for uninitiated, so this patch
documents everything in there to make it more palatable.

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * Removed Doxygen-style markers on comments.
  * Added some missing documentations for the return types of __vmap().
  * s/range of ranges/set of ranges/ in __vmap()
  * Removed rationale from vmap_contig()
  * Fixed "arrray" typo.
  * Moved misplaced comment to vfree()
---
 xen/include/xen/vmap.h | 101 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 101 insertions(+)

diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index 0c16baa85f31..1864e1ccfe82 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -1,34 +1,132 @@
+/*
+ * Interface to map physical memory onto contiguous virtual memory areas.
+ *
+ * Two ranges of linear address space are reserved for this purpose: A general
+ * purpose area (VMAP_DEFAULT) and a livepatch-specific area (VMAP_XEN). The
+ * latter is used when loading livepatches and the former for everything else.
+ */
 #if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
 #define __XEN_VMAP_H__
 
 #include <xen/mm-frame.h>
 #include <xen/page-size.h>
 
+/* Identifiers for the linear ranges tracked by vmap */
 enum vmap_region {
+    /*
+     * Region used for general purpose RW mappings. Mapping/allocating memory
+     * here can induce extra allocations for the supporting page tables.
+     */
     VMAP_DEFAULT,
+    /*
+     * Region used for loading livepatches. Can't use VMAP_DEFAULT because it
+     * must live close to the running Xen image. The caller also ensures all
+     * page tables are already in place with adequate PTE flags.
+     */
     VMAP_XEN,
+    /* Sentinel value for bounds checking */
     VMAP_REGION_NR,
 };
 
+/*
+ * Runtime initialiser for each vmap region type
+ *
+ * Must only be called once per vmap region type.
+ *
+ * @param type  Designation of the region to initialise.
+ * @param start Start address of the `type` region.
+ * @param end   End address (not inclusive) of the `type` region
+ */
 void vm_init_type(enum vmap_region type, void *start, void *end);
 
+/*
+ * Maps a set of physical ranges onto a single virtual range
+ *
+ * `mfn` is an array of `nr` physical ranges, each of which is `granularity`
+ * pages wide. `type` defines which vmap region to use for the mapping and
+ * `flags` is the PTE flags the page table leaves are meant to have.
+ *
+ * Typically used via the vmap() and vmap_contig() helpers.
+ *
+ * @param mfn          Array of mfns
+ * @param granularity  Number of contiguous pages each mfn represents
+ * @param nr           Number of mfns in the `mfn` array
+ * @param align        Alignment of the virtual area to map
+ * @param flags        PTE flags for the leaves of the PT tree.
+ * @param type         Which region to create the mappings on
+ * @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);
+
+/*
+ * Map an array of pages contiguously into the VMAP_DEFAULT vmap region
+ *
+ * @param[in] mfn Pointer to the base of an array of mfns
+ * @param[in] nr  Number of mfns in the array
+ * @return Pointer to the mapped area on success; NULL otherwise.
+ */
 void *vmap(const mfn_t *mfn, unsigned int nr);
+
+/*
+ * Maps physically contiguous pages onto the VMAP_DEFAULT vmap region
+ *
+ * @param mfn Base mfn of the physical region
+ * @param nr  Number of mfns in the physical region
+ * @return Pointer to the mapped area on success; NULL otherwise.
+ */
 void *vmap_contig(mfn_t mfn, unsigned int nr);
+
+/*
+ * Unmaps a range of virtually contiguous memory from one of the vmap regions
+ *
+ * The system remembers internally how wide the mapping is and unmaps it all.
+ * It also can determine the vmap region type from the `va`.
+ *
+ * @param va Virtual base address of the range to unmap
+ */
 void vunmap(const void *va);
 
+/*
+ * Allocate `size` octets of possibly non-contiguous physical memory and map
+ * them contiguously in the VMAP_DEFAULT vmap region
+ *
+ * @param size Pointer to the base of an array of mfns
+ * @return Pointer to the mapped area on success; NULL otherwise.
+ */
 void *vmalloc(size_t size);
+
+/* Same as vmalloc(), but for the VMAP_XEN vmap region. */
 void *vmalloc_xen(size_t size);
 
+/* Same as vmalloc(), but set the contents to zero before returning */
 void *vzalloc(size_t size);
+
+/*
+ * Unmap and free memory from vmalloc(), vmalloc_xen() or vzalloc()
+ *
+ * The system remembers internally how wide the mapping is and unmaps it all.
+ *
+ * @param va Virtual base address of the range to free and unmap
+ */
 void vfree(void *va);
 
+/*
+ * Analogous to vmap_contig(), but for IO memory
+ *
+ * Unlike vmap_contig(), it ensures architecturally correct cacheability
+ * settings are set for the mapped IO memory.
+ *
+ * @param pa  Physical base address of the MMIO region.
+ * @param len Length of the MMIO region in octets.
+ * @return Pointer to the mapped area on success; NULL otherwise.
+ */
 void __iomem *ioremap(paddr_t pa, size_t len);
 
 /* Return the number of pages in the mapping starting at address 'va' */
 unsigned int vmap_size(const void *va);
 
+/* Analogous to vunmap(), but for IO memory mapped via ioremap() */
 static inline void iounmap(void __iomem *va)
 {
     unsigned long addr = (unsigned long)(void __force *)va;
@@ -36,7 +134,10 @@ static inline void iounmap(void __iomem *va)
     vunmap((void *)(addr & PAGE_MASK));
 }
 
+/* Pointer to 1 octet past the end of the VMAP_DEFAULT virtual area */
 void *arch_vmap_virt_end(void);
+
+/* Initialises the VMAP_DEFAULT virtual range */
 static inline void vm_init(void)
 {
     vm_init_type(VMAP_DEFAULT, (void *)VMAP_VIRT_START, arch_vmap_virt_end());
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 11:56:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 11:56:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752970.1161211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOyb4-0001uF-In; Wed, 03 Jul 2024 11:56:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752970.1161211; Wed, 03 Jul 2024 11:56:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOyb4-0001u8-GA; Wed, 03 Jul 2024 11:56:26 +0000
Received: by outflank-mailman (input) for mailman id 752970;
 Wed, 03 Jul 2024 11:56: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=huvW=OD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sOyb3-0001u2-C4
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 11:56:25 +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 44cfcbae-3933-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 13:56:23 +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 CF0AD21BBA;
 Wed,  3 Jul 2024 11:56:22 +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 6DB5013974;
 Wed,  3 Jul 2024 11:56:22 +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 F36yGGY8hWYhDwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 03 Jul 2024 11:56: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: 44cfcbae-3933-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720007783; 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=XzAsO4d1d00dRfQB1nR62M6eaIXlE3bQZcqYbGriBsU=;
	b=pTQzAAcDqJmole7r5v4jQwXVeryo/tA+4yahr8+LZeJKq92VIczvqcR4lYyept6nG6F0lI
	Yw1uVagsZEAwIs5o81m7zCPE3xXMvNIwNPMoHzV53/vGS9pwD1l5UUspEGdWHoNfH/yFjE
	djQY6ETiNJmhdqrLUniSW6PwTDCrmkk=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=Kr3j+wlE
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720007782; 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=XzAsO4d1d00dRfQB1nR62M6eaIXlE3bQZcqYbGriBsU=;
	b=Kr3j+wlE/+h4wDKMXy1ATwP3RAF2pXLjM6KGxWF76GHX2hAEZL6sRt3OX1hXS56Sjpcu29
	dCg7CL686RjZX9Ru6p9TCp5oaBz+YLuuNGCfv5WRCyOVGa4SyAfJI7ne6SrSyK2S5xdqkL
	8nHe7UhQdvW9Ii/buZXo1O5djP8Mge8=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	linux-doc@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH] xen: make multicall debug boot time selectable
Date: Wed,  3 Jul 2024 13:56:20 +0200
Message-Id: <20240703115620.25772-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
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)[];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[12];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:email,suse.com:dkim];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Queue-Id: CF0AD21BBA
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Today Xen multicall debugging needs to be enabled via modifying a
define in a source file for getting debug data of multicall errors
encountered by users.

Switch multicall debugging to depend on a boot parameter "xen_mc_debug"
instead, enabling affected users to boot with the new parameter set in
order to get better diagnostics.

Add printing all arguments of a single call for better diagnostics.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 .../admin-guide/kernel-parameters.txt         |   6 +
 arch/x86/xen/multicalls.c                     | 120 ++++++++++++++----
 2 files changed, 99 insertions(+), 27 deletions(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 27ec49af1bf2..b33d048e01d8 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -7427,6 +7427,12 @@
 			Crash from Xen panic notifier, without executing late
 			panic() code such as dumping handler.
 
+	xen_mc_debug	[X86,XEN,EARLY]
+			Enable multicall debugging when running as a Xen PV guest.
+			Enabling this feature will reduce performance a little
+			bit, so it should only be enabled for obtaining extended
+			debug data in case of multicall errors.
+
 	xen_msr_safe=	[X86,XEN,EARLY]
 			Format: <bool>
 			Select whether to always use non-faulting (safe) MSR
diff --git a/arch/x86/xen/multicalls.c b/arch/x86/xen/multicalls.c
index 07054572297f..abea216f07f4 100644
--- a/arch/x86/xen/multicalls.c
+++ b/arch/x86/xen/multicalls.c
@@ -23,6 +23,8 @@
 #include <linux/percpu.h>
 #include <linux/hardirq.h>
 #include <linux/debugfs.h>
+#include <linux/jump_label.h>
+#include <linux/printk.h>
 
 #include <asm/xen/hypercall.h>
 
@@ -31,18 +33,12 @@
 
 #define MC_BATCH	32
 
-#define MC_DEBUG	0
-
 #define MC_ARGS		(MC_BATCH * 16)
 
 
 struct mc_buffer {
 	unsigned mcidx, argidx, cbidx;
 	struct multicall_entry entries[MC_BATCH];
-#if MC_DEBUG
-	struct multicall_entry debug[MC_BATCH];
-	void *caller[MC_BATCH];
-#endif
 	unsigned char args[MC_ARGS];
 	struct callback {
 		void (*fn)(void *);
@@ -50,13 +46,84 @@ struct mc_buffer {
 	} callbacks[MC_BATCH];
 };
 
+struct mc_debug_data {
+	struct multicall_entry debug[MC_BATCH];
+	void *caller[MC_BATCH];
+	size_t argsz[MC_BATCH];
+};
+
 static DEFINE_PER_CPU(struct mc_buffer, mc_buffer);
+static struct mc_debug_data __percpu *mc_debug_data;
+static struct mc_debug_data mc_debug_data_early __initdata;
 DEFINE_PER_CPU(unsigned long, xen_mc_irq_flags);
 
+static struct static_key mc_debug __ro_after_init;
+static bool mc_debug_enabled __initdata;
+
+static int __init xen_parse_mc_debug(char *arg)
+{
+	mc_debug_enabled = true;
+	static_key_slow_inc(&mc_debug);
+
+	return 0;
+}
+early_param("xen_mc_debug", xen_parse_mc_debug);
+
+static int __init mc_debug_enable(void)
+{
+	struct mc_debug_data __percpu *mcdb;
+	unsigned long flags;
+
+	if (!mc_debug_enabled)
+		return 0;
+
+	mcdb = alloc_percpu(struct mc_debug_data);
+	if (!mcdb) {
+		pr_err("xen_mc_debug inactive\n");
+		static_key_slow_dec(&mc_debug);
+		return -ENOMEM;
+	}
+
+	/* Be careful when switching to percpu debug data. */
+	local_irq_save(flags);
+	xen_mc_flush();
+	mc_debug_data = mcdb;
+	local_irq_restore(flags);
+
+	pr_info("xen_mc_debug active\n");
+
+	return 0;
+}
+early_initcall(mc_debug_enable);
+
+static void print_debug_data(struct mc_buffer *b, struct mc_debug_data *mcdb,
+			     int idx)
+{
+	unsigned int arg;
+
+	pr_err("  call %2d: op=%lu result=%ld caller=%pS", idx + 1,
+	       mcdb->debug[idx].op, b->entries[idx].result, mcdb->caller[idx]);
+	if (mcdb->argsz[idx]) {
+		pr_cont(" args=");
+		for (arg = 0; arg < mcdb->argsz[idx] / 8; arg++)
+			pr_cont("%lx ", mcdb->debug[idx].args[arg]);
+	}
+	pr_cont("\n");
+}
+
+static struct mc_debug_data * __ref get_mc_debug_ptr(void)
+{
+	if (likely(mc_debug_data))
+		return this_cpu_ptr(mc_debug_data);
+
+	return &mc_debug_data_early;
+}
+
 void xen_mc_flush(void)
 {
 	struct mc_buffer *b = this_cpu_ptr(&mc_buffer);
 	struct multicall_entry *mc;
+	struct mc_debug_data *mcdb = NULL;
 	int ret = 0;
 	unsigned long flags;
 	int i;
@@ -69,10 +136,11 @@ void xen_mc_flush(void)
 
 	trace_xen_mc_flush(b->mcidx, b->argidx, b->cbidx);
 
-#if MC_DEBUG
-	memcpy(b->debug, b->entries,
-	       b->mcidx * sizeof(struct multicall_entry));
-#endif
+	if (static_key_false(&mc_debug)) {
+		mcdb = get_mc_debug_ptr();
+		memcpy(mcdb->debug, b->entries,
+		       b->mcidx * sizeof(struct multicall_entry));
+	}
 
 	switch (b->mcidx) {
 	case 0:
@@ -104,20 +172,15 @@ void xen_mc_flush(void)
 		       ret, b->mcidx, smp_processor_id());
 		for (i = 0; i < b->mcidx; i++) {
 			if (b->entries[i].result < 0) {
-#if MC_DEBUG
-				pr_err("  call %2d: op=%lu arg=[%lx] result=%ld\t%pS\n",
-				       i + 1,
-				       b->debug[i].op,
-				       b->debug[i].args[0],
-				       b->entries[i].result,
-				       b->caller[i]);
-#else
-				pr_err("  call %2d: op=%lu arg=[%lx] result=%ld\n",
-				       i + 1,
-				       b->entries[i].op,
-				       b->entries[i].args[0],
-				       b->entries[i].result);
-#endif
+				if (static_key_false(&mc_debug)) {
+					print_debug_data(b, mcdb, i);
+				} else {
+					pr_err("  call %2d: op=%lu arg=[%lx] result=%ld\n",
+					       i + 1,
+					       b->entries[i].op,
+					       b->entries[i].args[0],
+					       b->entries[i].result);
+				}
 			}
 		}
 	}
@@ -155,9 +218,12 @@ struct multicall_space __xen_mc_entry(size_t args)
 	}
 
 	ret.mc = &b->entries[b->mcidx];
-#if MC_DEBUG
-	b->caller[b->mcidx] = __builtin_return_address(0);
-#endif
+	if (static_key_false(&mc_debug)) {
+		struct mc_debug_data *mcdb = get_mc_debug_ptr();
+
+		mcdb->caller[b->mcidx] = __builtin_return_address(0);
+		mcdb->argsz[b->mcidx] = args;
+	}
 	b->mcidx++;
 	ret.args = &b->args[argidx];
 	b->argidx = argidx + args;
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 11:58:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 11:58:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752975.1161222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOycx-0002l1-Uo; Wed, 03 Jul 2024 11:58:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752975.1161222; Wed, 03 Jul 2024 11:58:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOycx-0002kf-R6; Wed, 03 Jul 2024 11:58:23 +0000
Received: by outflank-mailman (input) for mailman id 752975;
 Wed, 03 Jul 2024 11:58:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOycx-0002kV-5e
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 11:58:23 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b9ac926-3933-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 13:58:22 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ee7885aa5fso18591271fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 04:58: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
 98e67ed59e1d1-2c977b2b7c9sm1278106a91.15.2024.07.03.04.58.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 04:58: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: 8b9ac926-3933-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720007901; x=1720612701; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=u3fw+/JTUfjvs3NsaRJjuadFFvjc3DRk9BEIaj/5iSE=;
        b=R+Duo2ttNb3qWo23zK3lYJP6gFB98c/gXXsRZlHG6B0IfMomtnLUkIZ9dF40IurQ/I
         bqa3cg2PdUIeczFQocuFlrTjXaN8FWWKyVwyUWPLKsYpwk7jS4/XwIUa8SZNw/qSNvYw
         ++VJZuNWwI2E5vbzBulxBD9IRz88I9vBBexHUqvsBC+6dDH78ToXrOHQtgmscMbPkmIN
         8Is5m3e0UxjceOUQPYDy5wTtu7PvFZf2MqhwE/qyUUNYpnX853m9FUb8ojokP4PkBjxf
         JqC9Cwfr1fWFILyrzh6Hf2a5db7njg2rh0JbS55v3Vvc8MxrMcPN7/ORwLhZyrc71XJZ
         C6+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720007901; x=1720612701;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u3fw+/JTUfjvs3NsaRJjuadFFvjc3DRk9BEIaj/5iSE=;
        b=cNkpqBxGkoKmTezo7otQqSnd7h+6vlkBYxFCyeiJ8acXgc/RfrpJrbkQPwXYOodN4C
         I6x9qhnN4hrE77jDGiJ6rk7P3nmUZV09GVaGQ+lw7207IsINn1Rz+Dias28S1cLJ2FC4
         vdKtWEHxR00XEw2giUizJAJUAOp2YSVW6Y4EndA5yM2Kryfg7Ic6KsTawlfUf9Z05kUQ
         BcgOUFO9OHVBXmIma7pQc7YjAQozh8hxz1Jhkoq13GkJTUZ9inQUvgEcHxrJ18dWKrQM
         LimX5rk9szhSqwjcLUBBGUL0TWNEqG/7C8k71OQc4Haysg1mGqev1jvKJlFNOmH2/Lr2
         kzEQ==
X-Forwarded-Encrypted: i=1; AJvYcCVsvqpDQc/U+spVDX76qhoRjkYSi5xByaYNXZ0bOTWxGc6z2Q8tYJUsf5mClvnxTTF+ctEBHYn2xJq3NCL7u0V9aH97CyHRE9oidJxzyRo=
X-Gm-Message-State: AOJu0YwScSq7aBRsK0bhiAKDAV4nwygXPxQlPseyrzPZPz7Apk+SM8r0
	3p0fCJxup6UfkMXjNOS5OjkFFOrZwCMT+gFcS8JUaN4Cj6Si9uIRNevtzCCV+Q==
X-Google-Smtp-Source: AGHT+IEYiaasGinwAJKK4F/8VMO2DUDmqZHYM0D31Z5ZDlgLg8NQsohvlz7HGX1sUc4CXKiDSqcaEg==
X-Received: by 2002:a2e:a1c5:0:b0:2ec:4eda:6b55 with SMTP id 38308e7fff4ca-2ee5e6d74c4mr68932401fa.50.1720007901589;
        Wed, 03 Jul 2024 04:58:21 -0700 (PDT)
Message-ID: <7772dc9e-b9e2-4af7-af43-fa5cbe651488@suse.com>
Date: Wed, 3 Jul 2024 13:58:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 v2] xen/vmap: Document the vmap header
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <f8bcfe757b45ce59e1a1203c2675a4266cc15f20.1720005327.git.alejandro.vallejo@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f8bcfe757b45ce59e1a1203c2675a4266cc15f20.1720005327.git.alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.07.2024 13:19, Alejandro Vallejo wrote:
> +/*
> + * Unmaps a range of virtually contiguous memory from one of the vmap regions
> + *
> + * The system remembers internally how wide the mapping is and unmaps it all.

Seeing this is still taken verbatim ...

> + * It also can determine the vmap region type from the `va`.
> + *
> + * @param va Virtual base address of the range to unmap
> + */
>  void vunmap(const void *va);
>  
> +/*
> + * Allocate `size` octets of possibly non-contiguous physical memory and map
> + * them contiguously in the VMAP_DEFAULT vmap region
> + *
> + * @param size Pointer to the base of an array of mfns
> + * @return Pointer to the mapped area on success; NULL otherwise.
> + */
>  void *vmalloc(size_t size);
> +
> +/* Same as vmalloc(), but for the VMAP_XEN vmap region. */
>  void *vmalloc_xen(size_t size);
>  
> +/* Same as vmalloc(), but set the contents to zero before returning */
>  void *vzalloc(size_t size);
> +
> +/*
> + * Unmap and free memory from vmalloc(), vmalloc_xen() or vzalloc()
> + *
> + * The system remembers internally how wide the mapping is and unmaps it all.
> + *
> + * @param va Virtual base address of the range to free and unmap
> + */
>  void vfree(void *va);

... here (just moved to the proper place now), I further wonder: Why just
"mapping" and "unmap". The function is also (one might even say primarily)
about freeing. IOW perhaps "how wide the allocation is and unmaps/frees it
all"?

Happy to adjust while committing, at which point:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 12:30:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 12:30:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.752994.1161239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOz81-0008WT-CQ; Wed, 03 Jul 2024 12:30:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 752994.1161239; Wed, 03 Jul 2024 12:30:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOz81-0008WM-9s; Wed, 03 Jul 2024 12:30:29 +0000
Received: by outflank-mailman (input) for mailman id 752994;
 Wed, 03 Jul 2024 12:30:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOz80-0008WG-1k
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 12:30:28 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06b632ea-3938-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 14:30:26 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ee794ebffbso24191101fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 05:30: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-708043b703fsm10626228b3a.145.2024.07.03.05.30.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 05:30: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: 06b632ea-3938-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720009826; x=1720614626; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jIs/RD86rfiEWfOtxTqw8StoW+1prqpqUXKoTVtcBZY=;
        b=Gm2inqs7FOyhnNvz9bMnYFiV+qECeGVknSdUCDpMvn1XAUZyDJhJf22kKy+D6jBf4N
         59jyR9NBw3S+Ta+yTU0YFjeSfuu3itAydo+wsb1P+NCcZXIdgfXv8XBSnLyz3UclWaLI
         QnEJBQGo5DEmlsJy+wIK2+xB6kDSJ1Zlh73F8uw1bGhDI2fNjNRrC11dWa9C59LySjqW
         Tw9AAR+YSPjIxGwai0cTEN+ghclyu3vuDreHhasDUGsis/eGNWf/b0LLRKFu9miB8X0D
         qHy7I8U9O5M7ZI+lN8veEigkFNILwNNkpHwr6j+vRbpSQiT6BeoMKLSWycQK8/F4a6aI
         n6ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720009826; x=1720614626;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jIs/RD86rfiEWfOtxTqw8StoW+1prqpqUXKoTVtcBZY=;
        b=jmkUk5/5DogtIXXMGHenTDpz2MZKVUezkwBpU8wcrjvXrDiaSpl6NvmD77aF54j5RC
         UGmNV/+aQMkx163LL+lBdSxDh0f+Udi0ejglfPR+z+kSWvrFl1ovbpolExRVrzMHp7Tb
         hpI/J4t6UwwVzGYOna/f4qL+GJ5poswxbGRVIBn31WOJQ86/BtJ4OkJ1fNzr9Cb6JlpK
         jlAeWNYfWBtnor226JG+bqBxcmVFDHxNq900t16ZmaQQ89V7q6BVxdmz9joP9s5gzPmJ
         nDGYmjleSvEjVzzjqZqDicC2FhV52gMaEqA4st2WLSvrZnGlORE0ZLeL7hihmXRJEddj
         qe4g==
X-Forwarded-Encrypted: i=1; AJvYcCUqymjdDqJHOKFBvjQH65uN2tT24Ol2tPwaMdGjLfRrmcITo1rxadCCUlGFKtIY+RNj2Ze7jajnTGeldBqk2eXFJvXWoATz8Rp6aP56vf8=
X-Gm-Message-State: AOJu0YwcdaEaEwbzlGhQt+95aj13d27/QePdQtNvnhirvngtxrQk9Qs4
	XhGXkzCxd7Fo6UifZDQa6imYN/uRlOPgSiDUkuBo3rfN2W6RqD6pEFl2TvpejA==
X-Google-Smtp-Source: AGHT+IGL/jzsUxno5yOuxoOWN5UDyggTx7dZS7tAzY9YM3TdlmKG4hQOtW5clDzewpQxuFJ0GqCoQQ==
X-Received: by 2002:a05:651c:549:b0:2ec:1e6e:13f9 with SMTP id 38308e7fff4ca-2ee5e707c78mr94189351fa.52.1720009826194;
        Wed, 03 Jul 2024 05:30:26 -0700 (PDT)
Message-ID: <5f31aa96-52a8-413a-8c10-0ad01d095be9@suse.com>
Date: Wed, 3 Jul 2024 14:30:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/17] xen: address violations of MISRA C:2012 Directive
 4.10
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: nicola.vetrini@bugseng.com, consulting@bugseng.com,
 Simone Ballarin <simone.ballarin@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <jgrall@amazon.com>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <76caa62c49a7aa02e43892f9edd72d90e9f39243.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <76caa62c49a7aa02e43892f9edd72d90e9f39243.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 15:36, Alessandro Zucchelli wrote:
> --- a/xen/include/xen/err.h
> +++ b/xen/include/xen/err.h
> @@ -1,5 +1,6 @@
> -#if !defined(__XEN_ERR_H__) && !defined(__ASSEMBLY__)
> -#define __XEN_ERR_H__
> +#ifndef INCLUDE_XEN_ERR_H
> +#define INCLUDE_XEN_ERR_H

There once was a document (or was it a patch description) describing the
naming system for these guards. Where did that go? With include files
typically living under include/, seeing INCLUDE_ as a prefix is, well,
odd and unnecessary baggage. I also don't recall there having been
agreement to use names like the ones presented here.

Jan

> +#ifndef __ASSEMBLY__
>  
>  #include <xen/compiler.h>
>  #include <xen/errno.h>
> @@ -41,4 +42,5 @@ static inline int __must_check PTR_RET(const void *ptr)
>  	return IS_ERR(ptr) ? PTR_ERR(ptr) : 0;
>  }
>  
> -#endif /* __XEN_ERR_H__ */
> +#endif /* __ASSEMBLY__ */
> +#endif /* INCLUDE_XEN_ERR_H */
> diff --git a/xen/include/xen/pci_ids.h b/xen/include/xen/pci_ids.h
> index e798477a7e..8e40c78db7 100644
> --- a/xen/include/xen/pci_ids.h
> +++ b/xen/include/xen/pci_ids.h
> @@ -1,3 +1,6 @@
> +#ifndef INCLUDE_XEN_PCI_IDS_H
> +#define INCLUDE_XEN_PCI_IDS_H
> +
>  #define PCI_VENDOR_ID_AMD                0x1022
>  
>  #define PCI_VENDOR_ID_NVIDIA             0x10de
> @@ -11,3 +14,5 @@
>  #define PCI_VENDOR_ID_BROADCOM           0x14e4
>  
>  #define PCI_VENDOR_ID_INTEL              0x8086
> +
> +#endif /* INCLUDE_XEN_PCI_IDS_H */
> diff --git a/xen/include/xen/softirq.h b/xen/include/xen/softirq.h
> index 33d6f2ecd2..90d4875df7 100644
> --- a/xen/include/xen/softirq.h
> +++ b/xen/include/xen/softirq.h
> @@ -1,5 +1,6 @@
> -#if !defined(__XEN_SOFTIRQ_H__) && !defined(__ASSEMBLY__)
> -#define __XEN_SOFTIRQ_H__
> +#ifndef INCLUDE_XEN_SOFTIRQ_H
> +#define INCLUDE_XEN_SOFTIRQ_H
> +#ifndef __ASSEMBLY__
>  
>  /* Low-latency softirqs come first in the following list. */
>  enum {
> @@ -40,4 +41,5 @@ void cpu_raise_softirq_batch_finish(void);
>   */
>  void process_pending_softirqs(void);
>  
> -#endif /* __XEN_SOFTIRQ_H__ */
> +#endif /* __ASSEMBLY__ */
> +#endif /* INCLUDE_XEN_SOFTIRQ_H */
> diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
> index 0c16baa85f..ec1b6b05e9 100644
> --- a/xen/include/xen/vmap.h
> +++ b/xen/include/xen/vmap.h
> @@ -1,5 +1,6 @@
> -#if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
> -#define __XEN_VMAP_H__
> +#ifndef INCLUDE_XEN_VMAP_H
> +#define INCLUDE_XEN_VMAP_H
> +#ifdef VMAP_VIRT_START
>  
>  #include <xen/mm-frame.h>
>  #include <xen/page-size.h>
> @@ -42,4 +43,5 @@ static inline void vm_init(void)
>      vm_init_type(VMAP_DEFAULT, (void *)VMAP_VIRT_START, arch_vmap_virt_end());
>  }
>  
> -#endif /* __XEN_VMAP_H__ */
> +#endif /* VMAP_VIRT_START */
> +#endif /* INCLUDE_XEN_VMAP_H */



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 12:47:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 12:47:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753003.1161250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOzO8-0001wg-O6; Wed, 03 Jul 2024 12:47:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753003.1161250; Wed, 03 Jul 2024 12: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 1sOzO8-0001wZ-L6; Wed, 03 Jul 2024 12:47:08 +0000
Received: by outflank-mailman (input) for mailman id 753003;
 Wed, 03 Jul 2024 12:47: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOzO7-0001wT-1K
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 12:47:07 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59a324bb-393a-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 14:47:04 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2ebe40673d8so70673361fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 05:47: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
 d9443c01a7336-1fac10e3832sm105380515ad.91.2024.07.03.05.46.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 05:47: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: 59a324bb-393a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720010824; x=1720615624; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=G8etuKWEHdiOjpRweShg+hHTVGpxKEHBN9I0fSPl9GI=;
        b=bHUM5XsgzdCLn1R0hbFogC5XgY/s227IvynZAXg+8Ov7wcu/e07k9nrFragX1p+8wT
         JE/zysfKmdu5ayekgO7ruI20YZRwDpK1IrfBdJKtviYZOi8FDmiPIhpjpJDhp4miDSAU
         5A+m+pmF/xTA1555FwgeEU6D7t2XQP4DRYe929OgGO02D3gaVqi39jd062QrNJNZtP36
         okWSoeepPjZm2WDmkK+oF99yuQAnXzLeVl60pGgBLhaQjLh/sZtl1uURaj8pX1bNiwTg
         MiWFKqUmzz8UTrVrTSo8ZL7DQ7hwvdo+svvccbQeKAZFUhmPw6xPXzA8EOocT18iiVEa
         JoHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720010824; x=1720615624;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=G8etuKWEHdiOjpRweShg+hHTVGpxKEHBN9I0fSPl9GI=;
        b=EmRcfPnpI4VUusic2ILxoaETuAyuET5aejsk13DmK6uORmqAPKuY8SpEk4WFeNFiQ0
         Ybjel1fcL5MFfd2dC0w9fW69YTiMub23HyoCU+ba0tUs/6Pj4wNvscRDOueh0PYoRC7z
         PdF7bOegOPKx5dsWxKkigF0NpzwsSrdZzs/QrUS+CFcc9aqSB1YNgeESsCePAToCOE4d
         9U+i6/nJUDZikioEw+nI3On9GnPbyveN0GMBY00dR9ffPAO45rXA+lBQ2wV1Q3MnCGNS
         UUWXvcbQNmcHsPtQMJLyrzQduv/Q/Lk9AiWuoAauO7nK+NfRHW+uwL70/tMTAZpuWSMa
         rMIQ==
X-Forwarded-Encrypted: i=1; AJvYcCV4ytuFM5yacSoi0lD01JZ6U8XvVQ35Nx+R+o4NdVd3kjbLaLpL5MfZ2hVKEo8K7piHMkCK0FO+60ns8rwVU6loJmbVCpivoWYLyeHDZy0=
X-Gm-Message-State: AOJu0YzjTlWArxq38gq02MXpQAzE7A5gNNa+pprtxiqBkLTJn6KFDCjq
	9X5RUgJg65TfpKG8F59onwfk2e3X7drJnj8A2tE84ygirIip3dR7SrbTmHXbow==
X-Google-Smtp-Source: AGHT+IESFPwtIc6Pj/u24obY3+aN+2gmZjPgl2bJuGN+/MX2zcWrgbsRPLZkVmWsHzg4gUr8xhgRfg==
X-Received: by 2002:a2e:be03:0:b0:2ec:5abf:f3ae with SMTP id 38308e7fff4ca-2ee5e35902bmr95162981fa.19.1720010824178;
        Wed, 03 Jul 2024 05:47:04 -0700 (PDT)
Message-ID: <2d8d87dc-a364-4230-85c4-3aa803d01c71@suse.com>
Date: Wed, 3 Jul 2024 14:46:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/17] misra: add deviation for headers that explicitly
 avoid guards
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <e7e61b4486c025a1014ad09aa774dfd392f858b8.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e7e61b4486c025a1014ad09aa774dfd392f858b8.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 13:10, Alessandro Zucchelli wrote:
> --- a/docs/misra/safe.json
> +++ b/docs/misra/safe.json
> @@ -68,6 +68,14 @@
>          },
>          {
>              "id": "SAF-8-safe",
> +            "analyser": {
> +                "eclair": "MC3R1.D4.10"
> +            },
> +            "name": "Dir 4.10: headers that leave it up to the caller to include them correctly",
> +            "text": "Headers that deliberatively avoid inclusion guards explicitly leaving responsibility to the caller are allowed."
> +        },
> +        {
> +            "id": "SAF-9-safe",
>              "analyser": {},
>              "name": "Sentinel",
>              "text": "Next ID to be used"

Patch 10 adds another entry here, targeted at headers which are intended to be
possible to include more than once. Both headers here also fit that criteria,
even if right now they aren't used that way (iirc). Do we really need two
SAF-* markers for effectively all the same kind of headers?

> --- a/xen/include/public/arch-x86/cpufeatureset.h
> +++ b/xen/include/public/arch-x86/cpufeatureset.h
> @@ -23,6 +23,7 @@
>   * their XEN_CPUFEATURE() being appropriate in the included context.
>   */
>  
> +/* SAF-8-safe omitted inclusion guard */
>  #ifndef XEN_CPUFEATURE
>  
>  /*
> diff --git a/xen/include/public/errno.h b/xen/include/public/errno.h
> index 5a78a7607c..ccd5023c3a 100644
> --- a/xen/include/public/errno.h
> +++ b/xen/include/public/errno.h
> @@ -17,6 +17,7 @@
>   * will unilaterally #undef XEN_ERRNO().
>   */
>  
> +/* SAF-8-safe omitted inclusion guard */
>  #ifndef XEN_ERRNO
>  
>  /*

Further both of these headers have guards (to cover the default case), so
"omitted" certainly isn't correct. Much like the "name" line in the SAF
entry also isn't quite correct, as in the common case it's not left to
the use sites.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 12:49:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 12:49:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753008.1161260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOzQs-0002lT-5K; Wed, 03 Jul 2024 12:49:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753008.1161260; Wed, 03 Jul 2024 12:49: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 1sOzQs-0002lM-1O; Wed, 03 Jul 2024 12:49:58 +0000
Received: by outflank-mailman (input) for mailman id 753008;
 Wed, 03 Jul 2024 12:49: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOzQq-0002lG-D3
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 12:49:56 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id becfc5eb-393a-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 14:49:54 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2ebec2f11b7so60780091fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 05:49: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-2c91ce43303sm10639293a91.17.2024.07.03.05.49.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 05:49: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: becfc5eb-393a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720010994; x=1720615794; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9yd5C9Xr32LXKl0cflASgwZpvQP4LBEFfFgrl2/EHUY=;
        b=ThlW4buDGMqcnLF9bhBhLTZVDtPivipSqK6xYarm/YvYM7NXpQ3blN3VW5du9rS8eq
         oveNmZ9l3BKYChVXFR7TbLlN01akJ2LolOSKK6Y2oAoBc4Tw2pKvE8ehaVpU/U+MN7Ms
         BTvwbAZKcNglTVuSjCzXib4gxVrRvGExlxibYeLpjm1A0bcBcmG/+A0GnEQ9JqrngrLy
         D6O3c4R3T6DFTkrqkP+wEeeXXbuA0mdeuoX1SO8h6e/g5S0U+dwH5zfhTLI4ury7iRY1
         eeruPQrAHdFZYWuPVU4lyLSuRIZ0Ku5k/xvw+Xs1VTJW/L4FXxNJoum7rkg7pBV8WVar
         zykw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720010994; x=1720615794;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9yd5C9Xr32LXKl0cflASgwZpvQP4LBEFfFgrl2/EHUY=;
        b=gnc5/VWxzZ9gkqIfDX8JAEtn0nShg1Zk1LbBB1aYtG/h+TnHSYyAIku7fR3y+dK2fE
         Z5Ifzb1ZczEEM38LIASKvJvcpJqR27JDrNVjiITaC1sEOCHt8ylidYFL04Tn41kWjMU4
         Px3RwYgjuQcJDFKcFbqwB/PG3dRAP+8fdSJ7gNrB2502pJFBdN0FxMED0oEgSU6IHENy
         bZ86r1WM6b5nR9stJSZsy4y+AnaCyKbm/c+MPq8OqsSa6M79cbkKk3pORSdk9FcZdE68
         y9fxQtbIgq+lS3r5xjmIpmLRBOaR3YpusRlMIt06aBtu7xgBYA65yaGxk1a8WufOj1lB
         97aA==
X-Forwarded-Encrypted: i=1; AJvYcCV6fVynXhK7KVe4T+8VFTJVQX6pPijNABVgAwvisuKX2CsZRkn7GcT+1E9qWtPYRVV+un5wqYi28M35yhcuGPGAbuzOuKkfps8a1jrB8sk=
X-Gm-Message-State: AOJu0Yw1pC7vVKyqIpkonXTNpdYmkLO/koGzNDWNz3fna/O2Q1kq2zpE
	v+v2T0+9RIwzE0BYRxLbjv8hcU3mVz3Vc0GbTUu/Pp4LuubU7y0ndUpTpXe4eQ==
X-Google-Smtp-Source: AGHT+IGxsNEXcCpTuwFPPtdwYIWmf1FliweBaJR1t6KPozXApI+rpdx25tBggVnkeuc7PwmjF3St3A==
X-Received: by 2002:a05:651c:1308:b0:2ee:8407:2f58 with SMTP id 38308e7fff4ca-2ee84073000mr9646441fa.17.1720010992898;
        Wed, 03 Jul 2024 05:49:52 -0700 (PDT)
Message-ID: <8a0c0cec-c168-471f-88ad-228ddcdd4f0a@suse.com>
Date: Wed, 3 Jul 2024 14:49:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/17] x86/asm: address violations of MISRA C:2012
 Directive 4.10
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: nicola.vetrini@bugseng.com, consulting@bugseng.com,
 Simone Ballarin <simone.ballarin@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <efb272c9eaad24875f34b396a75fed9577dedbda.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <efb272c9eaad24875f34b396a75fed9577dedbda.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 15:36, Alessandro Zucchelli wrote:
> --- a/docs/misra/safe.json
> +++ b/docs/misra/safe.json
> @@ -90,6 +90,14 @@
>              "name": "Dir 4.10: direct inclusion guard before",
>              "text": "Headers with just the direct inclusion guard before the inclusion guard are safe."
>          },
> +        {
> +            "id": "SAF-11-safe",
> +            "analyser": {
> +                "eclair": "MC3R1.D4.10"
> +            },
> +            "name": "Dir 4.10: file intended for multiple inclusion",
> +            "text": "Files intended for multiple inclusion are not supposed to comply with D4.10."
> +        },
>          {
>              "id": "SAF-11-safe",

This can't be right; the sentinel must have its number changed.

> --- a/xen/include/Makefile
> +++ b/xen/include/Makefile
> @@ -104,10 +104,17 @@ $(obj)/compat/.xlat/%.lst: $(srcdir)/xlat.lst FORCE
>  xlat-y := $(shell sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,^[?!][[:blank:]]+[^[:blank:]]+[[:blank:]]+,,p' $(srcdir)/xlat.lst | uniq)
>  xlat-y := $(filter $(patsubst compat/%,%,$(headers-y)),$(xlat-y))
>  
> +ARCHDIR = $(shell echo $(SRCARCH) | tr a-z A-Z)

Why is this being added here? It's not used ...

>  quiet_cmd_xlat_h = GEN     $@
> -cmd_xlat_h = \
> -	cat $(filter %.h,$^) >$@.new; \
> +define cmd_xlat_h
> +	guard=$$(echo ASM_${SRCARCH}_COMPAT_XLAT_H | tr a-z A-Z); \
> +	echo "#ifndef $$guard" > $@.new; \
> +	echo "#define $$guard" >> $@.new; \
> +	cat $(filter %.h,$^) >> $@.new; \
> +	echo "#endif /* $$guard */" >> $@.new; \
>  	mv -f $@.new $@
> +endef
>  
>  $(obj)/compat/xlat.h: $(addprefix $(obj)/compat/.xlat/,$(xlat-y)) FORCE
>  	$(call if_changed,xlat_h)

... anywhere. Did you mean to use it in place of ${SRCARCH}?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 12:52:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 12:52:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753014.1161270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOzSx-0004Ax-Gk; Wed, 03 Jul 2024 12:52:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753014.1161270; Wed, 03 Jul 2024 12:52:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOzSx-0004Aq-DC; Wed, 03 Jul 2024 12:52:07 +0000
Received: by outflank-mailman (input) for mailman id 753014;
 Wed, 03 Jul 2024 12:52: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOzSw-0004Ai-HG
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 12:52:06 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0cb9e5bb-393b-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 14:52:05 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2ebed33cb65so59822511fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 05:52: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
 d9443c01a7336-1fac1598d35sm102457675ad.285.2024.07.03.05.52.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 05:52: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: 0cb9e5bb-393b-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720011125; x=1720615925; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yWJft89OUvjJ2DNfmsxFb/6eIYWoRUGx9ZU0U7exwxY=;
        b=A+zEEUJFJ2FHrtDVAjRLFRmVoJW5pqMo2w8yZlplkVyU/Q4EFpCfvDeMRVA69T8epu
         hTYCRm+2+ITE8Dq5pYkzxv+KjmwBA+Khjums7S+ben6Mx7JW6NDRv/nqtK5ydhbNDwW5
         GoW7gxzTdVuyIwN6H9c+o/10WETWooLnw9+pW5M8AsH5GD376plmO2x+DtzikPaB7oci
         5L+YBU5ZO3sjEK5Cn6Jo+EzGAezjyE+XH5mXBV4er84BfuYh34i+nEpryrDeXu472tvt
         N9LdlR/TSg3JieXiWA7tsZUPPpg4/uonwd083oTKp+48jYUpV5D+Fixt71h/kpJ++b5c
         QdXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720011125; x=1720615925;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yWJft89OUvjJ2DNfmsxFb/6eIYWoRUGx9ZU0U7exwxY=;
        b=KdlZx7kLGHEyt016Xr1Jwmbs2uYnx8oa5tTD2yo99dj3mgWR6pjtayG/kUOtV3Yn+k
         HPRNvL+dqkxzRSIvwpAFUbfXCaATeJZD4kUj6aiOjPs5MLemplf0KtGwLX2FhHMPFT1U
         uEcafLKJCrtCSisljEqwfD+T9rni3O40N0g9MaxaSO2GOv2iHIEfCVxg5dgLk810jcH7
         iQfLZZp203i95Ob1um2O2dyV9B6kC3zzyGt9Oh9jFbvMYNGfc2aYfQVPkrkW/UrFcilm
         Jw+UIIThjNsE2GZ1dHpXdMv79cZHnC3k2Z5oMDfCfJQoc5wo0xop8RJiI1lPfUsY5BWL
         H03g==
X-Forwarded-Encrypted: i=1; AJvYcCUvaigcrHPtXSgfsT0AD6JjI5+FcrfPZ19Q90DuBR4q192ari4uGEGTf/iuwJOZReCy6+IAABemdkDxVeg+tM/QoufNYkdRXe4/jAr6grQ=
X-Gm-Message-State: AOJu0YxHEV9mLr165CTHOAmkAZJ0K1odpfhpkKzv74QjcGheth+bBoIo
	IuMpLl/wa1fzC3V9HSxGM8brRu/VDyFWbGiP7yPDrjtghyl3W63R8sYzLcp3AA==
X-Google-Smtp-Source: AGHT+IEzCFzbCG7gi8Lxa38rtXXEzepGJetetKRQemHeAoiIjTGgdp9NNr7hHPXZNZZgvrCp7EGuzg==
X-Received: by 2002:a2e:a549:0:b0:2ee:4a63:e927 with SMTP id 38308e7fff4ca-2ee5e6f2be5mr94450961fa.39.1720011124772;
        Wed, 03 Jul 2024 05:52:04 -0700 (PDT)
Message-ID: <ac3885eb-ae04-4362-b94d-117694fbdaac@suse.com>
Date: Wed, 3 Jul 2024 14:51:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 12/17] xen: address violations of MISRA C:2012 Directive
 4.10
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: nicola.vetrini@bugseng.com, consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <8305a914d1f1ee01d1b0b83cb86c2a48a2a2be0b.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8305a914d1f1ee01d1b0b83cb86c2a48a2a2be0b.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 15:43, Alessandro Zucchelli wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> Modify creation rule for asm-offsets.h to conform to
> the new standard and to not generate conflicting guards
> between architectures (which is a violation of the directive).
> Modify generic-y creation rule to generate code without violations
> and to conform to the new standard.
> 
> Mechanical change.
> ---
> Changes in v4:
> - improve inclusion guard generation
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
> 
> ---
>  xen/build.mk                     | 7 ++++---
>  xen/scripts/Makefile.asm-generic | 8 +++++++-
>  2 files changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/build.mk b/xen/build.mk
> index 0f490ca71b..bbd4c2970f 100644
> --- a/xen/build.mk
> +++ b/xen/build.mk
> @@ -47,6 +47,7 @@ asm-offsets.s: arch/$(SRCARCH)/$(ARCH)/asm-offsets.c
>  
>  arch/$(SRCARCH)/include/asm/asm-offsets.h: asm-offsets.s
>  	@(set -e; \
> +	  guard=$$(echo ASM_${SRCARCH}_ASM_OFFSETS_H | tr a-z A-Z); \

Was this and ...

> --- a/xen/scripts/Makefile.asm-generic
> +++ b/xen/scripts/Makefile.asm-generic
> @@ -32,7 +32,13 @@ old-headers := $(wildcard $(obj)/*.h)
>  unwanted    := $(filter-out $(generic-y) $(generated-y),$(old-headers))
>  
>  quiet_cmd_wrap = WRAP    $@
> -      cmd_wrap = echo "\#include <asm-generic/$*.h>" > $@
> +cmd_wrap = \
> +    guard=$$(echo ASM_GENERIC_${SRCARCH}_$*_H | tr a-z A-Z); \

... this mean to be using $(ARCHDIR) as well then?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 12:53:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 12:53:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753022.1161281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOzUN-0004mw-Td; Wed, 03 Jul 2024 12:53:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753022.1161281; Wed, 03 Jul 2024 12:53: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 1sOzUN-0004mp-Ox; Wed, 03 Jul 2024 12:53:35 +0000
Received: by outflank-mailman (input) for mailman id 753022;
 Wed, 03 Jul 2024 12:53: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=Xq3e=OD=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sOzUM-0004mh-AB
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 12:53:34 +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 409a4edb-393b-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 14:53:32 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a6fe7a0cb58so290969766b.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 05:53:32 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58612c835c4sm6975883a12.11.2024.07.03.05.53.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 05:53: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: 409a4edb-393b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720011212; x=1720616012; 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=AQgFjrlIgun8v6O0rZZ0sdnzWdJyWSdXWVuoVh27hFA=;
        b=EvpmvtiJJhMs7xrotmQP07k9J3dobU7ylxBRl2tsh3rFMwxvOZAZRGN1p9t6NtN9Li
         tmhKQyJyi1d3u3h7nNCaXVJfU2vEH5y6KO5HkMGtT4W3Cs6JAT/wtTCM+cEvwv64LPX5
         s79W66GzmS26y96PrUV66bDeqc/arXm5Au3A4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720011212; x=1720616012;
        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=AQgFjrlIgun8v6O0rZZ0sdnzWdJyWSdXWVuoVh27hFA=;
        b=dEALh7SP0XvRugk4V/yUvbL+e2uMwIcRrFutnWvrHsG49WD0VZUVriuXDO5kI3ZXOW
         ipH97SwYA0ApNjt16dJJnpPaTMcO0nSoOhQPVYEa6epJp7SDwdVh2vZATIY5ecmvVV6B
         4nENYYA9bhNZ/mXaL4KyyGo+bwAH0iToCHfXjNu3sW7Z9a7YCVgA4SCqoxEd2coPNzOr
         CwlAdZe1nhZsw/aRTjCvI/B6ywiXbRdwiUb2KVqJuqtH9byxtW8Y4hzOXziLYetZz21B
         ZWAWGHVWO/BqzpD1x2FcvlxnPLH5MFjDTqdqkuE2saY/0SxThoGBUE8HiGqu1b/tdLAE
         5lDw==
X-Forwarded-Encrypted: i=1; AJvYcCWQmw7GG2rsTcAXrV9dRfCAuToltEPf92UrdlAUls0uckhS9iS/Q7p5pymj5e0FSHvXevsQwMUwqC8vo8CQz/FF3yIBiwy5BM3laRat0ek=
X-Gm-Message-State: AOJu0Yz/i37K1c5YAAyDxi+ObD0xJcjlHuhp+xABVJHyiGdIDDQYteGD
	FocTMMkjL53jlqGlpOMvklnb6jQCLOo1i5sOL4y+7ftpJEHVX/2EpSjtOEIkJqQ=
X-Google-Smtp-Source: AGHT+IGcxxTWiVvKKFtyrEySScVG/aQsebWlakBCPkBsZWcngE2s3k3ZPWonzvkpOBe54D78Il1t4g==
X-Received: by 2002:a05:6402:5cd:b0:57d:55a2:73f1 with SMTP id 4fb4d7f45d1cf-587a0822c41mr9048890a12.34.1720011211730;
        Wed, 03 Jul 2024 05:53:31 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Wed, 03 Jul 2024 13:53:29 +0100
Message-Id: <D2FX357XBWXQ.1NEA9S1RT53QY@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Julien Grall"
 <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Oleksii
 Kurochko" <oleksii.kurochko@gmail.com>, "Xen-devel"
 <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.19 v2] xen/vmap: Document the vmap header
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>
X-Mailer: aerc 0.17.0
References: <f8bcfe757b45ce59e1a1203c2675a4266cc15f20.1720005327.git.alejandro.vallejo@cloud.com> <7772dc9e-b9e2-4af7-af43-fa5cbe651488@suse.com>
In-Reply-To: <7772dc9e-b9e2-4af7-af43-fa5cbe651488@suse.com>

On Wed Jul 3, 2024 at 12:58 PM BST, Jan Beulich wrote:
> On 03.07.2024 13:19, Alejandro Vallejo wrote:
> > +/*
> > + * Unmaps a range of virtually contiguous memory from one of the vmap =
regions
> > + *
> > + * The system remembers internally how wide the mapping is and unmaps =
it all.
>
> Seeing this is still taken verbatim ...
>
> > + * It also can determine the vmap region type from the `va`.
> > + *
> > + * @param va Virtual base address of the range to unmap
> > + */
> >  void vunmap(const void *va);
> > =20
> > +/*
> > + * Allocate `size` octets of possibly non-contiguous physical memory a=
nd map
> > + * them contiguously in the VMAP_DEFAULT vmap region
> > + *
> > + * @param size Pointer to the base of an array of mfns
> > + * @return Pointer to the mapped area on success; NULL otherwise.
> > + */
> >  void *vmalloc(size_t size);
> > +
> > +/* Same as vmalloc(), but for the VMAP_XEN vmap region. */
> >  void *vmalloc_xen(size_t size);
> > =20
> > +/* Same as vmalloc(), but set the contents to zero before returning */
> >  void *vzalloc(size_t size);
> > +
> > +/*
> > + * Unmap and free memory from vmalloc(), vmalloc_xen() or vzalloc()
> > + *
> > + * The system remembers internally how wide the mapping is and unmaps =
it all.
> > + *
> > + * @param va Virtual base address of the range to free and unmap
> > + */
> >  void vfree(void *va);
>
> ... here (just moved to the proper place now), I further wonder: Why just
> "mapping" and "unmap". The function is also (one might even say primarily=
)
> about freeing. IOW perhaps "how wide the allocation is and unmaps/frees i=
t
> all"?
>
> Happy to adjust while committing, at which point:
> Acked-by: Jan Beulich <jbeulich@suse.com>
>
> Jan

Sounds good to me.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 13:23:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 13:23:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753036.1161290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOzx6-0001E0-29; Wed, 03 Jul 2024 13:23:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753036.1161290; Wed, 03 Jul 2024 13:23:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sOzx5-0001Dt-Vn; Wed, 03 Jul 2024 13:23:15 +0000
Received: by outflank-mailman (input) for mailman id 753036;
 Wed, 03 Jul 2024 13:23: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sOzx4-0001Dn-RJ
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 13:23:14 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6666077f-393f-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 15:23:13 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-52cdcd26d61so6020015e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 06:23: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
 d2e1a72fcca58-70801e57aa0sm10381702b3a.28.2024.07.03.06.23.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 06:23: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: 6666077f-393f-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720012993; x=1720617793; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2quV5rnAfwvDcfKhpQJUfAoP6PfhuasR6/ZGEPFV34w=;
        b=fmLEG/H2ro3T+rXQau6I6CDeewKZIHGlFSwL9aExooCEwBDCO94bEtlGyV7IKoaPPT
         4tdikn2cwev2/nL1/vErbIpypSeuJ0CN8xtpt0gTJmemIjVNKWWWczYZVllAiPrls7sE
         hsM7/dqa6C43J0fCAved8GFp6BgVhSTJXllHDp4ZRRzje1/5grAopQa2J/+5Gkpk9o3l
         AwmrOcnLcD4gAxZSgMCyKnsYsZBWckrgOn6xL4NDhq/sGB48WNcga1VCHevv7ukkglUU
         Pr1iyq1FjB7sVP8MVauJqx7B3Pr+F+r4BmJ2Po9VN/2DV4TPhiuQewNNYGZb2hGyyWwe
         WtAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720012993; x=1720617793;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2quV5rnAfwvDcfKhpQJUfAoP6PfhuasR6/ZGEPFV34w=;
        b=NbHhma93KuKgHDlRendozuqLwgemWqhy6SDsTkkzpynlzNXiGdphmhv4P+nUuVZopf
         mg0CQxa8OXCqWk8PQdsjqLoa+aHO+hNxa0jCT4aRRxgP1E3BpHaWT+gnj6nLvCed4WTJ
         E5KI4HGxAGgn2AUm5OfI+exqTNVoKmYbzW7XFwBswvknq+gDdciCo+aE6kxfqwSGx0RL
         BhQrJXa+mZcUZmJy9AzfEYnaF24CCK1pGDH/XdyHVvHAXl0B1/RL4lKVe/jHVioJnUak
         /uwCugtoK9sAka/Q+qFoyh5P4rDzUGcdjQhBk335RlvpRGtocSnQaCliwrUrrNoGihDd
         gb0Q==
X-Forwarded-Encrypted: i=1; AJvYcCUFP1N6QtZYVMJn9nPc1RZVTBSeFRPmS0Y+vH0+mZKOKV4kX8Qo2ew9M/AQszdWDxzzeoCu0TUqKOZnSP2zRy6w9DMPHr1+JSXqEBAqrWo=
X-Gm-Message-State: AOJu0Yx4s0ZmTas7mdCIApdb1CcdOCACu4DIGPp5ywSBNT6PXDDvG9Fn
	T+0+LxVqzbTeGzKeveRU1FZ+2GdKpfIl3zoGYyxFEOe0jFOaDwN3ld6mORtnVQ==
X-Google-Smtp-Source: AGHT+IGRSel4F7Ys2tiBoTN95mTZZx1ntPydssNNV2TDLn9XiyHytjb283rx1/Di+wKhJc2U4/cczw==
X-Received: by 2002:a05:6512:318e:b0:52e:7542:f471 with SMTP id 2adb3069b0e04-52e82686a97mr8344599e87.29.1720012993027;
        Wed, 03 Jul 2024 06:23:13 -0700 (PDT)
Message-ID: <d6c313e5-19c6-4775-8d9c-0742a37032b4@suse.com>
Date: Wed, 3 Jul 2024 15:23:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 14/17] xen: add SAF deviation for MISRA C Dir 4.10
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <b64a6b53de8bcf14c91a1534bb57b001efc12cce.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b64a6b53de8bcf14c91a1534bb57b001efc12cce.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 15:45, Alessandro Zucchelli wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

So no description at all for a somewhat unobvious issue with, I think,
a pretty obvious (but entirely different) solution? And that (obvious)
alternative not even being mentioned, together with why it was not
possible to use? Neither ...

> --- a/docs/misra/safe.json
> +++ b/docs/misra/safe.json
> @@ -99,7 +99,15 @@
>              "text": "Files intended for multiple inclusion are not supposed to comply with D4.10."
>          },
>          {
> -            "id": "SAF-11-safe",
> +            "id": "SAF-12-safe",
> +            "analyser": {
> +                "eclair": "MC3R1.D4.10"
> +            },
> +            "name": "Dir 4.10: arch-x86/xen.h include before guard",
> +            "text": "This file needs to start with #include ../xen.h to generate preprocessed code in the correct order."

... here nor ...

> +        },
> +        {
> +            "id": "SAF-13-safe",
>              "analyser": {},
>              "name": "Sentinel",
>              "text": "Next ID to be used"
> --- a/xen/include/public/arch-x86/xen.h
> +++ b/xen/include/public/arch-x86/xen.h
> @@ -7,6 +7,7 @@
>   * Copyright (c) 2004-2006, K A Fraser
>   */
>  
> +/* SAF-12-safe include before guard needed for correct code generation */
>  #include "../xen.h"
>  
>  #ifndef __XEN_PUBLIC_ARCH_X86_XEN_H__

... here is really becomes clear what "correct" is, or what breaks if this
was moved. However, thinking of moving as the first obvious alternative I
checked other arch-specific headers. None includes ../xen.h (really just
xen.h, as the others all live right in public/) like this. Which made me
conclude that maybe there's something wrong with the x86 header doing so.
And indeed, according to my build testing the #include can simple be
dropped, with just one further change elsewhere; see below.

Jan

public/x86: don't include common xen.h from arch-specific one

No other arch-*.h does so, and arch-x86/xen.h really just takes the role
of arch-x86_32.h and arch-x86_64.h (by those two forwarding there). With
xen.h itself including the per-arch headers, doing so is also kind of
backwards anyway, and just calling for problems. There's exactly one
place where arch-x86/xen.h is included when really xen.h is meant (for
wanting XEN_GUEST_HANDLE_64() to be made available, the default
definition of which lives in the common xen.h).

This then addresses a violation of Misra C:2012 Directive 4.10
("Precautions shall be taken in order to prevent the contents of a
header file being included more than once").

Reported-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/include/public/arch-x86/xen.h
+++ b/xen/include/public/arch-x86/xen.h
@@ -7,8 +7,6 @@
  * Copyright (c) 2004-2006, K A Fraser
  */
 
-#include "../xen.h"
-
 #ifndef __XEN_PUBLIC_ARCH_X86_XEN_H__
 #define __XEN_PUBLIC_ARCH_X86_XEN_H__
 
--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -525,7 +525,7 @@ void x86_cpu_policy_bound_max_leaves(str
 void x86_cpu_policy_shrink_max_leaves(struct cpu_policy *p);
 
 #ifdef __XEN__
-#include <public/arch-x86/xen.h>
+#include <public/xen.h>
 typedef XEN_GUEST_HANDLE_64(xen_cpuid_leaf_t) cpuid_leaf_buffer_t;
 typedef XEN_GUEST_HANDLE_64(xen_msr_entry_t) msr_entry_buffer_t;
 #else



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 13:26:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 13:26:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753041.1161300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP00V-0001kn-GW; Wed, 03 Jul 2024 13:26:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753041.1161300; Wed, 03 Jul 2024 13:26:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP00V-0001kg-Dr; Wed, 03 Jul 2024 13:26:47 +0000
Received: by outflank-mailman (input) for mailman id 753041;
 Wed, 03 Jul 2024 13:26: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sP00T-0001kY-Mw
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 13:26:45 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e41d488f-393f-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 15:26:44 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2ec1ac1aed2so63853041fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 06:26: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
 98e67ed59e1d1-2c91ce4526esm10718900a91.20.2024.07.03.06.26.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 06:26: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: e41d488f-393f-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720013204; x=1720618004; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BTgp217jkGxA3qd5eePlwnG7B0Q2D097KFwdsCIW5oc=;
        b=S6Sbjco2ck5ISVnm16P8mgyj72RGCwFgjKqOAoabXwI34hXVX+WYOUEZZderCYvwRF
         727OsZ9Pc2eWS3uUjUExjJOYCcfYzCcIZqzIoyT8g/Tp7mhXj9g5K+i9wlPSZ/+IoE/N
         vHOn7UcAWdsjki4lPI1lmEwvXwpwdK8X3fppkK58V8ztIzCONK7hj2+at1IZidrqN4w5
         Wg7AR+CuQDyn+YfJFPObs0U6LMQ1DUfpIs1ZUMYfmyhUbNXtTAMtpI1sjDZoqdiCwN8X
         qzQledpCysOTjXzY9UA6HmkqW+v1JV4gKID566A2dFOtaAvkry88Eat/eE4q/zzMC2xQ
         xcGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720013204; x=1720618004;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BTgp217jkGxA3qd5eePlwnG7B0Q2D097KFwdsCIW5oc=;
        b=QCBHgTgQcM0aXIFLa2GSehDZrKzkyPxZp4dU9s4M6RrpKG5q13ySN0YPP2E59iSJEM
         X731CMU+EZSX/YczhdMlwBBJJfd6slUbBVloruCzCngBU6uUf6i72+N09BUzh0fq/4Jh
         MHjzW2SuttVona+q0TUoZpzBYIKJuM/jLMrm0z5fPSto/TDdEwVeCf+2JHk1YbiyHYiD
         CJLlYoBrxSNUuX13+KnGSMKmgEcs16PkY5JwCuW98zMWobxtLkQhidJMvY9oqCE0kMp2
         nZ1H03dlmO8mJMPRdoz20xnKWlD6Ah37kkrJ30GFuzNowGIzonUtZF5HED+N9eW2QAv1
         dxfg==
X-Forwarded-Encrypted: i=1; AJvYcCX6EBwG2ip6jQhVB1uXvJ5tyhqxJv4Q+6aV+FU/YiK+AnWKnn/yPd3UfzqRmX+Q56XlZcQKfNMGIvr27bv+K+ZH2/4cSY05iuV98wIlt+g=
X-Gm-Message-State: AOJu0YxaXJbW7MokI8p+lVbUyAMEJr6zqjfZvTqLhXH2CDQyeWfGjmO6
	snufVD3ciWMfqMeD6DHxSoDmqTMKCE5ERxVq3JNh5IRg1cqyS+wKHphka5ACyA==
X-Google-Smtp-Source: AGHT+IHHMFYk2h7UOwxq6emDfddnW6gy6VFgDR7jwLUJRtotVVQtnl/yk3kMBR91K08pG7Uk/VaURg==
X-Received: by 2002:a2e:240a:0:b0:2ec:1708:4daf with SMTP id 38308e7fff4ca-2ee5e6f542emr64729991fa.47.1720013203938;
        Wed, 03 Jul 2024 06:26:43 -0700 (PDT)
Message-ID: <031bc8af-99cc-45fb-84db-eb9429f00083@suse.com>
Date: Wed, 3 Jul 2024 15:26:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 15/17] xen/x86: rename inclusion guards for consistency
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: nicola.vetrini@bugseng.com, consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <cc0189e1db211ae73aa419f4bc956872220d8d3c.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cc0189e1db211ae73aa419f4bc956872220d8d3c.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 15:46, Alessandro Zucchelli wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> Edit inclusion guards in order to make them consistent with the
> estabilished naming conventions.

The code changes all look okay to me, but as before: Where did those
"established naming conventions" go? Grep-ing for "guard" under
docs/misra/ yields only a single hit, which is unrelated.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 13:32:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 13:32:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753048.1161310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP06P-0003lD-3s; Wed, 03 Jul 2024 13:32:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753048.1161310; Wed, 03 Jul 2024 13:32: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 1sP06P-0003l6-0w; Wed, 03 Jul 2024 13:32:53 +0000
Received: by outflank-mailman (input) for mailman id 753048;
 Wed, 03 Jul 2024 13:32:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sP06N-0003l0-Pl
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 13:32:51 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd8ecc7d-3940-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 15:32:49 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-52cdc4d221eso6026332e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 06:32: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
 d2e1a72fcca58-708044adc38sm10733327b3a.170.2024.07.03.06.32.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 06:32: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: bd8ecc7d-3940-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720013569; x=1720618369; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SR95aC3yCJp/ZP5AJgIu1r9QKXGg4iWOks4t3pW9ZCI=;
        b=eMDPI1O7AvcseXhwJ//4VY1kC8xaEtHbur0UGkiEVjQBpIY7ecYmIN4pn+bs1Tkjfb
         QQemtd53SStpN/Yn8tmP9Cm6Pe78II/R+d9AH4200a4B7iJhfe6xCAU7F+H8md82g3w4
         lSGUMYijns2X2h7b3IF7ImQEjPfSlJNNKF/VOzm6Tnnf+sF8DyK+PVQOtJMZYFSufeFw
         bBpV96dYycHYOoMPOTgWOMRnhs0PmE4bZU29tZPQY76NdrkAVM97GrRBdzx0SgEy5XAO
         gXz4jJ90AU9ziwrO+1FC72Bsrt7WRwO9PpwxZAPLWO4PQBFrjUQhbQFYuSNOW3sbBU7u
         Eilw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720013569; x=1720618369;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SR95aC3yCJp/ZP5AJgIu1r9QKXGg4iWOks4t3pW9ZCI=;
        b=ZoxDp8g9nANkFnF1AHDCUZP5bPZbRQIeatKEMdjDBtKQ+01k50DrtyA2H3BlmEuQ6y
         69jMWrrjrAxIAr5jwZCrVIbhVeLD1jSXZg5Zp+LxIDcjceUVV/CGVvb7WBsZ0nPVwsa0
         WXOq23qSgMU7r3SbFYx1QR7xp/4azixCD0rMrMGiUzN0ROJ2zNLCw/XPgjtJl/7Onufr
         BIQomLpWi4PZ+DvwmyXoPbDCH6n+LMcNuxQ1c/kCy7flXuV4BlAkoWhayvWJ4jqeJpgQ
         lcVMcTR/JP76ULHBuQro2GpXB3j4460m5ztn9HY0tLzeZP043VPyHF/w9SAFWmtHb8va
         uOQQ==
X-Forwarded-Encrypted: i=1; AJvYcCWRT2QDxeX3DwgInw7O9UNDzASsSXkrU1bFDZk6JpaNjbT1sSaZqYI5RPyDNRJviCqDUTZbcHYmx79VqGykERs7QvbyCHTRaRjO1bSIeYA=
X-Gm-Message-State: AOJu0Yy35e82uE2TYGYkY5JYFdBvFLsMszQsYRdWjwzQq2MRLfEIjeJk
	oIQ8D6Z6KiGZvPJEam4SJWlZmhe09CMWGpV7d5w+ruX6k4EX0rx2jLWBi5xeog==
X-Google-Smtp-Source: AGHT+IEIWNfK93Y/yHb39tqSx214dxaHw3/JuvysntnLhaOM7j9qdjdWq09xdagbLFPixLVbk4kz1A==
X-Received: by 2002:a05:6512:3083:b0:52c:e19c:ed90 with SMTP id 2adb3069b0e04-52e826fac53mr8196826e87.46.1720013568768;
        Wed, 03 Jul 2024 06:32:48 -0700 (PDT)
Message-ID: <d9f94662-92b7-492b-84cd-a7e6b1ab68b6@suse.com>
Date: Wed, 3 Jul 2024 15:32:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 16/17] xen/build: address violation of MISRA C Directive
 4.10
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <c3d0eb70d894a1dc0ddd53cacd6a525bc10577ce.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c3d0eb70d894a1dc0ddd53cacd6a525bc10577ce.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 15:46, Alessandro Zucchelli wrote:
> --- a/xen/build.mk
> +++ b/xen/build.mk
> @@ -18,6 +18,8 @@ quiet_cmd_compile.h = UPD     $@
>  define cmd_compile.h
>      if [ ! -r $@ -o -O $@ ]; then \
>  	cat .banner; \
> +	echo '#ifndef INCLUDE_XEN_COMPILE_H' >> $(dot-target).tmp; \

Leaving aside the question on the INCLUDE_ prefix (see earlier comments
on another patch in this series), I wonder what good a guard does here
in the first place. But anyway, I expect this again gets us into "we
need to mechanically and slavishly follow the rules" territory.

However, shouldn't this first "echo" use > in place of >>, to prevent
surprises when e.g. an earlier build was interrupted at exactly the
"right" point?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 13:49:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 13:49:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753059.1161324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP0MA-00062q-GU; Wed, 03 Jul 2024 13:49:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753059.1161324; Wed, 03 Jul 2024 13: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 1sP0MA-00062j-Cp; Wed, 03 Jul 2024 13:49:10 +0000
Received: by outflank-mailman (input) for mailman id 753059;
 Wed, 03 Jul 2024 13:49: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sP0M9-00062d-Mq
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 13:49:09 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0507f6a6-3943-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 15:49:08 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2ec4eefbaf1so58059161fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 06:49: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
 41be03b00d2f7-754b5cda258sm2215226a12.16.2024.07.03.06.49.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 06: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: 0507f6a6-3943-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720014548; x=1720619348; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=H2MRtvs6Q+T29lDr2TcZ175P/dLKJDWyZ7JT+WcGmtM=;
        b=hDv5HjchkLcqP8Bk8oxoejuQaLwp+3nMc428eF0RCHwnR/bugKAnaaQkul49fMIYSH
         yehIR1VPDDmNeFLyPEHmyF15nSNIfAvQTvP++ssVOAXPS/yjKs+E45a1AcLs6XemIpQc
         nu2ETrm9YliSWo7eTS52SUD/42yWHNRdz5UfjvhxJq+eS/aXA03eSb4T8kuojM+xXsZz
         0bCbovC7xj+hFpkOSG5kxxNfvdB3ip4s7AEz5WDLxsqTyfc8uIxl9lPIinFoDeLz2AEf
         zMiz38viDI4Ol9+6za2z56r0TYBCmLnll450E7hzGIMJvoJrlzIrIOV4r275+Z9hej/o
         DyJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720014548; x=1720619348;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=H2MRtvs6Q+T29lDr2TcZ175P/dLKJDWyZ7JT+WcGmtM=;
        b=xKLgiOhsswB6KlCIxrl2fI0nu+JtFwHSq7imxln1IEYAwvf+tMEcGi9Ut80//PU1as
         rJv9DYTVZ5v7hONir1YpNVzAXm+1gShCm/6D9buX2FjqC2FShC7N9fsxJzWirHnNe++d
         fdzsK07DnW+BBw607nouunIvubiv/gQ4Q70c5Gf+KIp00wNgfdF2Wq+DPJH5TzhnD94T
         WoSFRABcYWNLgY/+bvgf+LGXKkiS6e8WuKRis2f12pQnYjgLhO/O3Fqxd/nXTXILv+Dk
         53/eKzdro5R8gRp3wW0YfwaY5jL1TDk+CqSd/hLbvR5S28WJRbhMqy6Oep7A5Mea2/OI
         ucAA==
X-Forwarded-Encrypted: i=1; AJvYcCXbqvp3Hlo3ts63jARc0XYs72OcAZaR9Rt3X807o5Bl5QmqN6c0T5qzxQF//KFigoSjVG/FWYGCyIOiPZulfdneJK9dvAGTt95VjdR6MO0=
X-Gm-Message-State: AOJu0Yz5UWl8b3aMLrPF+NlK9Qhq7VFU/gjL6mLDGyeSd4qHH+UttwjI
	/bLGVDORMBg6ro20vWVNWci2S3bK5JayrhcG/yb6i5bG8Y4bq2k/2rXWALD0Vw==
X-Google-Smtp-Source: AGHT+IGcKfhMIFw5LJV6m8bq1DHLmSpc6J1hs+1e/aNULySiK8QyuqF8M8Ia5Kk5EawzLECsmL52Gw==
X-Received: by 2002:a2e:bcc2:0:b0:2ee:7caf:db5d with SMTP id 38308e7fff4ca-2ee7cafdc57mr19579171fa.51.1720014547696;
        Wed, 03 Jul 2024 06:49:07 -0700 (PDT)
Message-ID: <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com>
Date: Wed, 3 Jul 2024 15:48:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 15:46, Alessandro Zucchelli wrote:
> This section explains which format should be followed by header
> inclusion guards via a drop-down list of rules.

Ah, so this answers my earlier question regarding where the naming
rules are spelled out. Yet why is this not much earlier in the series,
/before/ anything trying to follow these rules?

> --- a/CODING_STYLE
> +++ b/CODING_STYLE
> @@ -167,3 +167,22 @@ the end of files.  It should be:
>   * indent-tabs-mode: nil
>   * End:
>   */

This footer is not just an example; it also serves that function here.
While not strictly needed in this file, I think it should still remain
last.

> +
> +Header inclusion guards
> +-----------------------
> +
> +Unless differently specified all header files should have proper inclusion
> +guards in order to avoid being included multiple times.
> +The following naming conventions have been devised:
> +- private headers -> <dir>_<filename>_H
> +- asm-generic headers -> ASM_GENERIC_<filename>_H
> +    - #ifndef ASM_GENERIC_X86_PERCPU_H
> +      #define ASM_GENERIC_X86_PERCPU_H
> +      //...
> +      #endif /* ASM_GENERIC_X86_PERCPU_H */

GENERIC contradicts X86. Please try to avoid giving confusing / possibly
misleading examples.

> +- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
> +    - #ifndef ASM_X86_DOMAIN_H
> +      #define ASM_X86_DOMAIN_H
> +      //...
> +      #endif /* ASM_X86_DOMAIN_H */

I'm afraid I can't connect the example to the filename pattern given:
The example has 4 components separated by 3 underscores, when the
pattern suggests 5 and 4 respectively.

> +

Please avoid empty lines at the bottom of files.

Having reached the end, I don't see common headers (the ones under
xen/include/ in the tree) covered. I can only conclude that the odd
INCLUDE_ prefixes I had asked about were derived from the "private
headers" rule. Yet what's in xen/include/ aren't private headers.

I further have to note that, as indicated during the earlier discussion,
I still cannot see how occasional ambiguity is going to be dealt with.
IOW from the rules above two different headers could still end up with
the same guard identifier.

Finally, it shouldn't be silently assumed that all name components are
to be converted to upper case; everything wants spelling out imo.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 13:51:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 13:51:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753066.1161333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP0Oq-0007fs-VY; Wed, 03 Jul 2024 13:51:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753066.1161333; Wed, 03 Jul 2024 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 1sP0Oq-0007fl-Sx; Wed, 03 Jul 2024 13:51:56 +0000
Received: by outflank-mailman (input) for mailman id 753066;
 Wed, 03 Jul 2024 13:51: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=mAj5=OD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sP0Oq-0007ff-6V
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 13:51:56 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6891a001-3943-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 15:51:55 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2ebeefb9a7fso60556541fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 06:51:55 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58bce1922c8sm1907140a12.13.2024.07.03.06.51.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 06: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: 6891a001-3943-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720014715; x=1720619515; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=zY0LbkTabeUXU+vUQ/HHe6zEIYM+kDyKmdN+gjlg7/s=;
        b=S9cw9Sw7MfAlKmHBq01o14C2kJTT64rvmCrCiapnUhRVD6b4osyhK6LMUmVEGq6cMI
         8PTsD4+QSAtwueU4lrdkll2MqUIP7yHQzXMJEmAD7N3QgtyMt5bgH7GxcW2Pf3+XJ70d
         sttYIf7blVwzOz8UgN2FgFUcBBQF/gTJjVft47gXPsW/d1QR/617/5gdTkxRDWNwYnkS
         HXZE2k7eFDbUAILVVCC8P7zN4yEIPGzmVDgW9J+l/8ky2QxsAjVccNmDasEAYQRoI4XF
         Rsb0fkhZFu7JvR6xT2/rhyjZxKVzljuJ+zSq9Zd02q8y2qvX5+Vd9klJYnyUYW5/59/I
         9yqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720014715; x=1720619515;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=zY0LbkTabeUXU+vUQ/HHe6zEIYM+kDyKmdN+gjlg7/s=;
        b=QwybgAmP7gDPYiJoBVbjOQy4rkM8o4uVMSsknMjUF0C7shOiVS7jt1Yl3Jg0g1yGm0
         pbM2NosxBCFwYPwLiXRPw29MMXeOIBRTWIrX49lXNmTk24z5SMQateuRS9UncW58a+nJ
         MMXsRcf7QeQnDc91MLHHIdmBpkL+0b8UR93o1+6nEWuTDmzAQKcDF7dvagmflLerXG48
         ned3aUZnd6ZCB25ugJ+VqZzk2Ek0jNvJM//hlJx2dQr9C6hFNziXR7yosAYjk3nV+3F0
         ZXITIrjQ/odYEJIUKjVCuN052Mj6HInHFJ2W+9nzVzUmrxbsX12Tj0EHJsMLQ2eGCAQr
         g8Yw==
X-Forwarded-Encrypted: i=1; AJvYcCX4EuaD9vDA3jQJYzOEhrfjBKa75PFODJgnqrKQsyRd46ho2W5GM6nrV1hWx7Sgt6mEQ7huNMO0Io66DojKsfdHu16bPCTQWdcmeNL/Jk8=
X-Gm-Message-State: AOJu0Ywmy+Nh92Tvjwg+MxnXzGnyZUotuUdYmWQspIzk3mo6FdCMM3rx
	cJ62EOH1/hla3xikgk5pMwQCqYR19nOZd3prX9bbnzlAg32xRzL43o1XRV5E
X-Google-Smtp-Source: AGHT+IHDNwc2+kUcVlhem1MQ4CSUDzoaupwqLaMKMXIL5kUBEKVIY/4N3V+MPd/5TCBEUupHm7gh/A==
X-Received: by 2002:a05:651c:b0b:b0:2ec:5c94:3d99 with SMTP id 38308e7fff4ca-2ee5e3810b7mr78832801fa.2.1720014714455;
        Wed, 03 Jul 2024 06:51:54 -0700 (PDT)
Message-ID: <45983cc81600dd0bcc804504f61a582cf709c9a5.camel@gmail.com>
Subject: Re: [PATCH for-4.19 v2] xen/vmap: Document the vmap header
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Alejandro Vallejo
	 <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall
 <julien@xen.org>,  Stefano Stabellini <sstabellini@kernel.org>, Xen-devel
 <xen-devel@lists.xenproject.org>
Date: Wed, 03 Jul 2024 15:51:53 +0200
In-Reply-To: <7772dc9e-b9e2-4af7-af43-fa5cbe651488@suse.com>
References: 
	<f8bcfe757b45ce59e1a1203c2675a4266cc15f20.1720005327.git.alejandro.vallejo@cloud.com>
	 <7772dc9e-b9e2-4af7-af43-fa5cbe651488@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-03 at 13:58 +0200, Jan Beulich wrote:
> On 03.07.2024 13:19, Alejandro Vallejo wrote:
> > +/*
> > + * Unmaps a range of virtually contiguous memory from one of the
> > vmap regions
> > + *
> > + * The system remembers internally how wide the mapping is and
> > unmaps it all.
>=20
> Seeing this is still taken verbatim ...
>=20
> > + * It also can determine the vmap region type from the `va`.
> > + *
> > + * @param va Virtual base address of the range to unmap
> > + */
> > =C2=A0void vunmap(const void *va);
> > =C2=A0
> > +/*
> > + * Allocate `size` octets of possibly non-contiguous physical
> > memory and map
> > + * them contiguously in the VMAP_DEFAULT vmap region
> > + *
> > + * @param size Pointer to the base of an array of mfns
> > + * @return Pointer to the mapped area on success; NULL otherwise.
> > + */
> > =C2=A0void *vmalloc(size_t size);
> > +
> > +/* Same as vmalloc(), but for the VMAP_XEN vmap region. */
> > =C2=A0void *vmalloc_xen(size_t size);
> > =C2=A0
> > +/* Same as vmalloc(), but set the contents to zero before
> > returning */
> > =C2=A0void *vzalloc(size_t size);
> > +
> > +/*
> > + * Unmap and free memory from vmalloc(), vmalloc_xen() or
> > vzalloc()
> > + *
> > + * The system remembers internally how wide the mapping is and
> > unmaps it all.
> > + *
> > + * @param va Virtual base address of the range to free and unmap
> > + */
> > =C2=A0void vfree(void *va);
>=20
> ... here (just moved to the proper place now), I further wonder: Why
> just
> "mapping" and "unmap". The function is also (one might even say
> primarily)
> about freeing. IOW perhaps "how wide the allocation is and
> unmaps/frees it
> all"?
>=20
> Happy to adjust while committing, at which point:
> Acked-by: Jan Beulich <jbeulich@suse.com>
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleskii


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:20:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:20:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753085.1161366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP0qD-0004Zz-2Z; Wed, 03 Jul 2024 14:20:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753085.1161366; Wed, 03 Jul 2024 14:20: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 1sP0qC-0004XD-ST; Wed, 03 Jul 2024 14:20:12 +0000
Received: by outflank-mailman (input) for mailman id 753085;
 Wed, 03 Jul 2024 14:20: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=i9qc=OD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sP0qC-00047s-6p
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:20:12 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5b1b7683-3947-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 16:20:10 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ee794ec014so18165041fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 07:20:10 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5861324f036sm7114707a12.34.2024.07.03.07.20.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 07:20: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: 5b1b7683-3947-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720016410; x=1720621210; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Lb9zIjpdzbIG9uZJrlfskajIoTEnVCNUYPBFJFnVoHw=;
        b=Eq2I9+5S6b/o8YLmnrpE/mFHaWay0QXxFLOkEZoIj+7mNONp/okVDm8NTCoXhDGsi4
         ESfdLSP1c2CIcjz43/CiKUdVBeBfvsmRT0Lfhu3hdGDb//SIy65xwZ2NL6Ta03troPxS
         F6wcmTcthFZj83g88+lTPZ4za1RS7ccQYdouE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720016410; x=1720621210;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Lb9zIjpdzbIG9uZJrlfskajIoTEnVCNUYPBFJFnVoHw=;
        b=m+bHlj9U8jm9vNP3nTmhoqBgTYq6oAnph2CAg1MBagZ6QjhLZuTBPJ79dh8QuYTCjb
         HTWfcZdpHUZDkRfe4nzu6yEmO1JBbrkAgzrl8qHENJHP7Gg9YiRH36PysBSuq1O1Nfv3
         qLOoaYJfBRr4mrsDx+OShL90n9KWZy9RRnGQlpi1UQz63spzh1FfrdQXnlMYROIDdNoy
         nQUP4DCS+D749AVVzAviU87ea4W7mY+DdEoU+D57jBOjbSgOrgLl/stH06dHO9Xm8BUM
         X+XrKVKiaC/44EvzjIb2OcTrZMf0B/Yad8menR8RK0tsZzYkI5bhxs/EaoNyXsKndD98
         VWnA==
X-Gm-Message-State: AOJu0YyswT6h+PT/iS6WQN8tN2ax2Vciup662vdz4VX5Sd+wfTGnfP0G
	DdDieFUOUbrEvNdnyZixXei5l98CU9xt2UCswQ15C4M/N7zi4ylaLHEQ9WF/hRZ7fkDsn9X+4xV
	ZF+0=
X-Google-Smtp-Source: AGHT+IGoVb58lDyzwPW1lCAVOWyXOeRtDEU7EFwWe6dpZNqkqMntE/OoIykqSAbrcBDP9D8uDC1Jzw==
X-Received: by 2002:a05:6512:282c:b0:52c:e01f:3665 with SMTP id 2adb3069b0e04-52e8266ef2bmr9209184e87.25.1720016409741;
        Wed, 03 Jul 2024 07:20: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>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 3/4] CI: Drop bin86/dev86 from archlinux container
Date: Wed,  3 Jul 2024 15:20:01 +0100
Message-Id: <20240703142002.1662874-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

These packages have moved out of main to AUR, and are not easily accessable
any more.  Drop them, because they're only needed for RomBIOS which is very
legacy these days.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 automation/build/archlinux/current.dockerfile | 2 --
 1 file changed, 2 deletions(-)

diff --git a/automation/build/archlinux/current.dockerfile b/automation/build/archlinux/current.dockerfile
index 8929e9b5f022..657ddd77a85c 100644
--- a/automation/build/archlinux/current.dockerfile
+++ b/automation/build/archlinux/current.dockerfile
@@ -6,10 +6,8 @@ LABEL maintainer.name="The Xen Project" \
 RUN pacman-key --init
 
 RUN pacman -S --refresh --sysupgrade --noconfirm --noprogressbar --needed \
-        bin86 \
         bridge-utils \
         bzip2 \
-        dev86 \
         discount \
         dtc \
         e2fsprogs \
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:20:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:20:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753083.1161354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP0qC-0004MS-Ar; Wed, 03 Jul 2024 14:20:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753083.1161354; Wed, 03 Jul 2024 14:20: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 1sP0qC-0004MH-6t; Wed, 03 Jul 2024 14:20:12 +0000
Received: by outflank-mailman (input) for mailman id 753083;
 Wed, 03 Jul 2024 14: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=i9qc=OD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sP0qA-00047x-Cx
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:20:10 +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 5a1adb1f-3947-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 16:20:09 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-58b5f7bf3edso1396543a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 07:20:09 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5861324f036sm7114707a12.34.2024.07.03.07.20.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 07: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: 5a1adb1f-3947-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720016408; x=1720621208; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8Aqdfs/AvdoZx8uAWY1WwixoePkTnNArRhMfydyClSo=;
        b=ugI+BswBnnzcQeaGasZP37mXqf70D3luqOX9DD0yxVH/fxbDsTgDlBdfEcln5Cz9Gz
         agrzHygh9DOKp0OIiDzI/zL02bS37rteadH4yOsMEDdd80VSjtgf6YAzhuG9plAq5Yqg
         PUAvy5npJolQOvh0nq2icdewvmQcDVj3BxVms=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720016408; x=1720621208;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=8Aqdfs/AvdoZx8uAWY1WwixoePkTnNArRhMfydyClSo=;
        b=VYu237ZayrrXTE0/a5IMweLE4PmXLLto/IFRmPGQsnkExT6mTuuX3azTuJMGJXc9/w
         REsYhAWmkws58j2gpRgVIsozrrypzY4+hwqaJPVKPo2tCRbz9X5s1XZTNcBdkMPPwv39
         ++IzQwE6csk3gTJy9g4fJqqXFp6e0Z6KgiE8eypSvBNayAVQjT754sBIAD7Cg6zc98tL
         l9J1MUT08v3hpV0Pp6Q+ZMoMaMoNcrgeFKGPq2VBnQL/nXpr90ItmMfV/Uj+RjPq0SPv
         8LtxS2y9RMiaqx1uzcoV1ilZYhMW/99fetqvB/3OpHy/Rtxfpv2iYxfPBSHbypwL68J+
         gNEg==
X-Gm-Message-State: AOJu0YxzuURsYMBFmCA2iEFPymxgJkSYDeg8Vx6cpSWu9QeZwGx0wQQv
	r628koKDHtakLrwn/yIE0ZgOoVi8gIoiYuTFgLvTiCXGf/XhJFvnzKd4HSUmg5v2dzpLjeANJGF
	lZSw=
X-Google-Smtp-Source: AGHT+IG61/F5ONI0k0FJTm+23+yClcR035t48vCY4szzixkKpIusBv5GONFhW4YDklSrdIh6ezZEbQ==
X-Received: by 2002:a05:6402:13c2:b0:57d:4f47:d9f7 with SMTP id 4fb4d7f45d1cf-5879c08e17emr11392257a12.0.1720016407812;
        Wed, 03 Jul 2024 07:20: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 1/4] CI: Formalise the use of heredocs
Date: Wed,  3 Jul 2024 15:19:59 +0100
Message-Id: <20240703142002.1662874-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Commit b5739330d7f4 introduced the use of heredocs in the jessie/stretch
dockerfiles.

It turns out this was introduced by BuildKit in 2018 along with a
standardisation of Dockerfile syntax, and has subsequently been adopted by the
docker community.

Annotate all dockerfiles with a statement of the syntax in use, and extend
README.md details including how to activate BuildKit when it's available but
off by default.

This allows the containers to be rebuilt following commit a0e29b316363 ("CI:
Drop glibc-i386 from the build containers").

Fixes: b5739330d7f4 ("automation: fix jessie/stretch images to use archive.debian.org apt repos")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 automation/build/README.md                             | 10 +++++++++-
 automation/build/alpine/3.18-arm64v8.dockerfile        |  1 +
 automation/build/alpine/3.18.dockerfile                |  1 +
 automation/build/archlinux/current-riscv64.dockerfile  |  1 +
 automation/build/archlinux/current.dockerfile          |  1 +
 automation/build/centos/7.dockerfile                   |  1 +
 .../build/debian/bookworm-arm64v8-arm32-gcc.dockerfile |  1 +
 automation/build/debian/bookworm-arm64v8.dockerfile    |  1 +
 automation/build/debian/bookworm-cppcheck.dockerfile   |  1 +
 automation/build/debian/bookworm-i386.dockerfile       |  1 +
 automation/build/debian/bookworm.dockerfile            |  1 +
 automation/build/debian/bullseye-ppc64le.dockerfile    |  1 +
 automation/build/debian/buster-gcc-ibt.dockerfile      |  1 +
 automation/build/debian/jessie-i386.dockerfile         |  1 +
 automation/build/debian/jessie.dockerfile              |  1 +
 automation/build/debian/stretch-i386.dockerfile        |  1 +
 automation/build/debian/stretch.dockerfile             |  1 +
 automation/build/fedora/29.dockerfile                  |  1 +
 automation/build/suse/opensuse-leap.dockerfile         |  1 +
 automation/build/suse/opensuse-tumbleweed.dockerfile   |  1 +
 automation/build/ubuntu/bionic.dockerfile              |  1 +
 automation/build/ubuntu/focal.dockerfile               |  1 +
 automation/build/ubuntu/trusty.dockerfile              |  1 +
 automation/build/ubuntu/xenial-xilinx.dockerfile       |  1 +
 automation/build/ubuntu/xenial.dockerfile              |  1 +
 automation/build/yocto/yocto.dockerfile.in             |  2 ++
 .../tests-artifacts/alpine/3.18-arm64v8.dockerfile     |  1 +
 automation/tests-artifacts/alpine/3.18.dockerfile      |  1 +
 .../tests-artifacts/kernel/5.19-arm64v8.dockerfile     |  1 +
 automation/tests-artifacts/kernel/6.1.19.dockerfile    |  1 +
 .../qemu-system-aarch64/6.0.0-arm64v8.dockerfile       |  1 +
 .../qemu-system-ppc64/8.1.0-ppc64.dockerfile           |  1 +
 32 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/automation/build/README.md b/automation/build/README.md
index 1c040533fdd8..12a2b4af1807 100644
--- a/automation/build/README.md
+++ b/automation/build/README.md
@@ -81,7 +81,14 @@ Building a container
 
 There is a makefile to make this process easier. You should be
 able to run `make DISTRO/VERSION` to have Docker build the container
-for you. If you define the `PUSH` environment variable when running the
+for you.
+
+Xen's dockerfiles use heredocs, which depend on the standardised dockerfile
+syntax introduced by [BuiltKit].  This should work by default starting with
+docker 23.0, or podman/buildah v1.33.  For older versions of docker, it can be
+activated with `DOCKER_BUILDKIT=1` in the environment.
+
+If you define the `PUSH` environment variable when running the
 former `make` command, it will push the container to the [registry] if
 you have access to do so and have your Docker logged into the registry.
 
@@ -101,6 +108,7 @@ env CONTAINER_NO_PULL=1 \
 make -C automation/build suse/opensuse-tumbleweed PUSH=1
 ```
 
+[BuildKit]: https://docs.docker.com/build/buildkit/
 [registry]: https://gitlab.com/xen-project/xen/container_registry
 [registry help]: https://gitlab.com/help/user/project/container_registry
 
diff --git a/automation/build/alpine/3.18-arm64v8.dockerfile b/automation/build/alpine/3.18-arm64v8.dockerfile
index 91e90220240f..19fe46f8418f 100644
--- a/automation/build/alpine/3.18-arm64v8.dockerfile
+++ b/automation/build/alpine/3.18-arm64v8.dockerfile
@@ -1,3 +1,4 @@
+# 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"
diff --git a/automation/build/alpine/3.18.dockerfile b/automation/build/alpine/3.18.dockerfile
index 8d5dac05b01f..263e9e90d888 100644
--- a/automation/build/alpine/3.18.dockerfile
+++ b/automation/build/alpine/3.18.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 alpine:3.18
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/archlinux/current-riscv64.dockerfile b/automation/build/archlinux/current-riscv64.dockerfile
index af75b5c720ce..f7770bf82a78 100644
--- a/automation/build/archlinux/current-riscv64.dockerfile
+++ b/automation/build/archlinux/current-riscv64.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 archlinux
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/archlinux/current.dockerfile b/automation/build/archlinux/current.dockerfile
index d29f1358c2bd..8929e9b5f022 100644
--- a/automation/build/archlinux/current.dockerfile
+++ b/automation/build/archlinux/current.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 archlinux:base-devel
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/centos/7.dockerfile b/automation/build/centos/7.dockerfile
index 1cdc16fc05f9..657550f308bb 100644
--- a/automation/build/centos/7.dockerfile
+++ b/automation/build/centos/7.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 centos:7
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile b/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
index a05ffeac04f9..95b3f0428372 100644
--- a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
+++ b/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/debian/bookworm-arm64v8.dockerfile b/automation/build/debian/bookworm-arm64v8.dockerfile
index 2c432aacb765..3ab426a082d3 100644
--- a/automation/build/debian/bookworm-arm64v8.dockerfile
+++ b/automation/build/debian/bookworm-arm64v8.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/debian/bookworm-cppcheck.dockerfile b/automation/build/debian/bookworm-cppcheck.dockerfile
index 633268376d56..fe4cd4a1aaab 100644
--- a/automation/build/debian/bookworm-cppcheck.dockerfile
+++ b/automation/build/debian/bookworm-cppcheck.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 debian:bookworm AS builder
 
 ENV DEBIAN_FRONTEND=noninteractive
diff --git a/automation/build/debian/bookworm-i386.dockerfile b/automation/build/debian/bookworm-i386.dockerfile
index 89a650338566..9a54bd7293dc 100644
--- a/automation/build/debian/bookworm-i386.dockerfile
+++ b/automation/build/debian/bookworm-i386.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/i386 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/debian/bookworm.dockerfile b/automation/build/debian/bookworm.dockerfile
index d893218fc4bd..bef44dd75300 100644
--- a/automation/build/debian/bookworm.dockerfile
+++ b/automation/build/debian/bookworm.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/debian/bullseye-ppc64le.dockerfile b/automation/build/debian/bullseye-ppc64le.dockerfile
index 6fdfb6bc2b40..e166d205f38c 100644
--- a/automation/build/debian/bullseye-ppc64le.dockerfile
+++ b/automation/build/debian/bullseye-ppc64le.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:bullseye-slim
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/debian/buster-gcc-ibt.dockerfile b/automation/build/debian/buster-gcc-ibt.dockerfile
index 6a3e50ef6b3f..ed9367aafbec 100644
--- a/automation/build/debian/buster-gcc-ibt.dockerfile
+++ b/automation/build/debian/buster-gcc-ibt.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:buster-slim AS builder
 
 ENV DEBIAN_FRONTEND=noninteractive
diff --git a/automation/build/debian/jessie-i386.dockerfile b/automation/build/debian/jessie-i386.dockerfile
index a8dec82bb299..f6eaa94ee523 100644
--- a/automation/build/debian/jessie-i386.dockerfile
+++ b/automation/build/debian/jessie-i386.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/i386 debian/eol:jessie
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/debian/jessie.dockerfile b/automation/build/debian/jessie.dockerfile
index 308675cac150..a870e743fcaf 100644
--- a/automation/build/debian/jessie.dockerfile
+++ b/automation/build/debian/jessie.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian/eol:jessie
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/debian/stretch-i386.dockerfile b/automation/build/debian/stretch-i386.dockerfile
index da93fed8ea68..ad8db692aaf2 100644
--- a/automation/build/debian/stretch-i386.dockerfile
+++ b/automation/build/debian/stretch-i386.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/i386 debian:stretch
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/debian/stretch.dockerfile b/automation/build/debian/stretch.dockerfile
index 59794ed4677b..4dfd40b54277 100644
--- a/automation/build/debian/stretch.dockerfile
+++ b/automation/build/debian/stretch.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:stretch
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/fedora/29.dockerfile b/automation/build/fedora/29.dockerfile
index f473ae13e7c1..08edf70838f9 100644
--- a/automation/build/fedora/29.dockerfile
+++ b/automation/build/fedora/29.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 fedora:29
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/suse/opensuse-leap.dockerfile b/automation/build/suse/opensuse-leap.dockerfile
index 3ef33458a07c..28d333881233 100644
--- a/automation/build/suse/opensuse-leap.dockerfile
+++ b/automation/build/suse/opensuse-leap.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 opensuse/leap
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/suse/opensuse-tumbleweed.dockerfile b/automation/build/suse/opensuse-tumbleweed.dockerfile
index a793601c876d..077fed22260c 100644
--- a/automation/build/suse/opensuse-tumbleweed.dockerfile
+++ b/automation/build/suse/opensuse-tumbleweed.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 opensuse/tumbleweed
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/ubuntu/bionic.dockerfile b/automation/build/ubuntu/bionic.dockerfile
index 910d3c4b5315..cc43fc4ade12 100644
--- a/automation/build/ubuntu/bionic.dockerfile
+++ b/automation/build/ubuntu/bionic.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 ubuntu:18.04
 LABEL maintainer.name="The Xen Project " \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/ubuntu/focal.dockerfile b/automation/build/ubuntu/focal.dockerfile
index 078abd56d56f..cb8bb2f6faee 100644
--- a/automation/build/ubuntu/focal.dockerfile
+++ b/automation/build/ubuntu/focal.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 ubuntu:20.04
 LABEL maintainer.name="The Xen Project " \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/ubuntu/trusty.dockerfile b/automation/build/ubuntu/trusty.dockerfile
index 8bd8c085a781..e2a1bda7c3a8 100644
--- a/automation/build/ubuntu/trusty.dockerfile
+++ b/automation/build/ubuntu/trusty.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 ubuntu:14.04
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/ubuntu/xenial-xilinx.dockerfile b/automation/build/ubuntu/xenial-xilinx.dockerfile
index 49f27b322995..f03d62e8bd3f 100644
--- a/automation/build/ubuntu/xenial-xilinx.dockerfile
+++ b/automation/build/ubuntu/xenial-xilinx.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 ubuntu:16.04
 LABEL maintainer.name="The Xen Project " \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/ubuntu/xenial.dockerfile b/automation/build/ubuntu/xenial.dockerfile
index f6296d32925c..168bc70ffad8 100644
--- a/automation/build/ubuntu/xenial.dockerfile
+++ b/automation/build/ubuntu/xenial.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 ubuntu:16.04
 LABEL maintainer.name="The Xen Project " \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/build/yocto/yocto.dockerfile.in b/automation/build/yocto/yocto.dockerfile.in
index b0892d420377..fbaa4e191caa 100644
--- a/automation/build/yocto/yocto.dockerfile.in
+++ b/automation/build/yocto/yocto.dockerfile.in
@@ -1,3 +1,5 @@
+# syntax=docker/dockerfile:1
+
 # Docker file to create an environment to build yocto with virtualization
 #
 # Arguments that can be passed during image creation using --build-arg:
diff --git a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
index 0e5ae7f2b4d8..a4542f703997 100644
--- a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
+++ b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
@@ -1,3 +1,4 @@
+# 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"
diff --git a/automation/tests-artifacts/alpine/3.18.dockerfile b/automation/tests-artifacts/alpine/3.18.dockerfile
index 9cde6c9ad4da..311a92889b87 100644
--- a/automation/tests-artifacts/alpine/3.18.dockerfile
+++ b/automation/tests-artifacts/alpine/3.18.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 alpine:3.18
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile b/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile
index b0875ca0ddd1..22359c906630 100644
--- a/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile
+++ b/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/tests-artifacts/kernel/6.1.19.dockerfile b/automation/tests-artifacts/kernel/6.1.19.dockerfile
index 021bde26c790..5cf53d290c6f 100644
--- a/automation/tests-artifacts/kernel/6.1.19.dockerfile
+++ b/automation/tests-artifacts/kernel/6.1.19.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile b/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile
index fb7b7b506e94..e9f5576be7a6 100644
--- a/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile
+++ b/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile b/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile
index 65857147bf4f..e28d68649239 100644
--- a/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile
+++ b/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:bullseye-slim
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:20:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753084.1161359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP0qC-0004PJ-LJ; Wed, 03 Jul 2024 14:20:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753084.1161359; Wed, 03 Jul 2024 14:20: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 1sP0qC-0004NU-Dj; Wed, 03 Jul 2024 14:20:12 +0000
Received: by outflank-mailman (input) for mailman id 753084;
 Wed, 03 Jul 2024 14:20: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=i9qc=OD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sP0qB-00047x-2S
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:20:11 +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 5a70b626-3947-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 16:20:09 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-57cc30eaf0aso1869514a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 07:20:09 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5861324f036sm7114707a12.34.2024.07.03.07.20.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 07:20: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: 5a70b626-3947-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720016408; x=1720621208; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QvtNDTqYHADux5W5ocofKnMkBGfiU5QPPfJXj51wIBM=;
        b=drRurYpwNJGU6MJwYl6R5wMUD9WD7/Vh0m5hYhEArAyEU7VCitn54X8CN4evLigLd+
         e9Qmetaa/rys/BaIIbOGfn6Pg/TLX6pmvDxWJa8Mbtiip608nG45Suomk07kDqbmF/Dp
         IFTi1npCjdyOREi1tnziGuu+Qf7KdL4CXdzgo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720016408; x=1720621208;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=QvtNDTqYHADux5W5ocofKnMkBGfiU5QPPfJXj51wIBM=;
        b=qfsd/oAHfilIKvk4QPox1bmEu3cFWQa4XdLdtsXQL7N51mSYCubCEZd0sT7caKY1qw
         3u+O0a3QVkeYm+XA7JYKimzhkS1IO0XH54kao+FpdutkwaFKoeULiPESGbBoGvDaylU1
         2ljDP7tAys6h7BOCfZE8I7Pw/AplDGceDr3Bq9oPWmBd+41jny2pJQ8pRitWR7kiYUib
         pIOTtVoAADTzn6bpJGYcTrONUW95UUXd6EFtog7PEpzyLBeB8ugLKW7S1HHM7Eo8tP2B
         9yiiqfUKBSVuucOGFb/IGky9M2V097EoOu0y8nnZyCa/DGISrFSsuLnHTtM8PZ/4qsOQ
         378g==
X-Gm-Message-State: AOJu0YwXnJVYj+UDNCgR9liARUgrlS16ipWtmjFHbNyRqT2wI7JnPV9X
	GFw9a/NXevQvT7CPAwm3bNzzBohHmlGFqW7rBqT8c5gxf9NT1XWKOuFynsZfJDStPJ0O9slmqjq
	3H64=
X-Google-Smtp-Source: AGHT+IFqmUSdJZCkTH4i1WdxPdXjaDXOvrWfDnUPTz+/TvaNRmkBILQn52UweyaMVG0TeClF2LUWeQ==
X-Received: by 2002:a05:6402:5203:b0:57d:1696:fd14 with SMTP id 4fb4d7f45d1cf-5879ede2704mr11274311a12.8.1720016408500;
        Wed, 03 Jul 2024 07:20: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 2/4] CI: Adjust the usage of inline files
Date: Wed,  3 Jul 2024 15:20:00 +0100
Message-Id: <20240703142002.1662874-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

As per:

  https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/reference.md#here-documents

For inline files, use COPY with a heredoc, rather than opencoding it through
/bin/sh.

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: Doug Goldstein <cardoe@cardoe.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 automation/build/debian/jessie-i386.dockerfile  | 2 +-
 automation/build/debian/jessie.dockerfile       | 2 +-
 automation/build/debian/stretch-i386.dockerfile | 2 +-
 automation/build/debian/stretch.dockerfile      | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/automation/build/debian/jessie-i386.dockerfile b/automation/build/debian/jessie-i386.dockerfile
index f6eaa94ee523..1eb7ff11c7d3 100644
--- a/automation/build/debian/jessie-i386.dockerfile
+++ b/automation/build/debian/jessie-i386.dockerfile
@@ -12,7 +12,7 @@ WORKDIR /build
 ENTRYPOINT ["linux32"]
 
 # replace repos in archive as release is EOL
-RUN cat <<"END" > /etc/apt/sources.list
+COPY <<"END" /etc/apt/sources.list
 deb http://archive.debian.org/debian/ jessie main contrib non-free
 deb http://archive.debian.org/debian/ jessie-backports main contrib non-free
 deb http://archive.debian.org/debian-security/ jessie/updates main contrib non-free
diff --git a/automation/build/debian/jessie.dockerfile b/automation/build/debian/jessie.dockerfile
index a870e743fcaf..4c0ffe66f8fe 100644
--- a/automation/build/debian/jessie.dockerfile
+++ b/automation/build/debian/jessie.dockerfile
@@ -10,7 +10,7 @@ RUN mkdir /build
 WORKDIR /build
 
 # replace repos in archive as release is EOL
-RUN cat <<"END" > /etc/apt/sources.list
+COPY <<"END" /etc/apt/sources.list
 deb http://archive.debian.org/debian/ jessie main contrib non-free
 deb http://archive.debian.org/debian/ jessie-backports main contrib non-free
 deb http://archive.debian.org/debian-security/ jessie/updates main contrib non-free
diff --git a/automation/build/debian/stretch-i386.dockerfile b/automation/build/debian/stretch-i386.dockerfile
index ad8db692aaf2..8ec9c3a24667 100644
--- a/automation/build/debian/stretch-i386.dockerfile
+++ b/automation/build/debian/stretch-i386.dockerfile
@@ -12,7 +12,7 @@ WORKDIR /build
 ENTRYPOINT ["linux32"]
 
 # replace repos in archive as release is EOL
-RUN cat <<"END" > /etc/apt/sources.list
+COPY <<"END" /etc/apt/sources.list
 deb http://archive.debian.org/debian/ stretch main contrib non-free
 deb http://archive.debian.org/debian/ stretch-backports main contrib non-free
 deb http://archive.debian.org/debian-security/ stretch/updates main contrib non-free
diff --git a/automation/build/debian/stretch.dockerfile b/automation/build/debian/stretch.dockerfile
index 4dfd40b54277..2db4552662de 100644
--- a/automation/build/debian/stretch.dockerfile
+++ b/automation/build/debian/stretch.dockerfile
@@ -10,7 +10,7 @@ RUN mkdir /build
 WORKDIR /build
 
 # replace repos in archive as release is EOL
-RUN cat <<"END" > /etc/apt/sources.list
+COPY <<"END" /etc/apt/sources.list
 deb http://archive.debian.org/debian/ stretch main contrib non-free
 deb http://archive.debian.org/debian/ stretch-backports main contrib non-free
 deb http://archive.debian.org/debian-security/ stretch/updates main contrib non-free
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:20:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753086.1161384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP0qE-00054Z-9i; Wed, 03 Jul 2024 14:20:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753086.1161384; Wed, 03 Jul 2024 14:20: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 1sP0qE-00053a-5z; Wed, 03 Jul 2024 14:20:14 +0000
Received: by outflank-mailman (input) for mailman id 753086;
 Wed, 03 Jul 2024 14:20: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=i9qc=OD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sP0qC-00047x-DL
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:20:12 +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 5bd6dfb8-3947-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 16:20:11 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e38027so2422295a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 07:20:11 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5861324f036sm7114707a12.34.2024.07.03.07.20.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 07:20: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: 5bd6dfb8-3947-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720016411; x=1720621211; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9D47f17k0eWnVPOyYgELEIOXuEmzzN+VDIAEXj1vpPQ=;
        b=O8x84oyLdlyWlnvbqO+1f3x4yOfri05IZjPnD0l+nEpNcjoSvCmArq9uKbzhIW14X9
         mQXki1fASNHaKxVP/MZI3jbJ0s446Lunqm2XrDYdqjF4OvdCCsPmqCsMVs2qNE4LBlM1
         Mcb6rVZSl79iq+RoCnbr4i2buVoqUhbNNDKBI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720016411; x=1720621211;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=9D47f17k0eWnVPOyYgELEIOXuEmzzN+VDIAEXj1vpPQ=;
        b=bbzSQyQRlg7UBXZtM2UODmETDoXx5Rcna21LWXkqS3gp3ZunHkCAw3zM2IIiVb8o7V
         j5BEwoQugOrR8GfDlX/eZ1P+sL+8FOc/bkNLjPWtxvDk8MeL+g37nmglUxQZrsMAdRgP
         CPzGGon8F9I0llSfjTyDBr38fgiJCKeyxYUUT9C/JTxUhYdSxPiqU4E/rS4lI4+eQH2l
         bWnfmtJWbWSe4RtQCMMpCA0iYl5qFpFeirSCSwjC1HmDLuB9G66K+Ca99noHYV97KYmi
         DTdTc3A89FNAtaB+EgSTaVusk+XbyoLrRSyX0QrbridjlaumVR5K+Z3/X0aKDxlbe+w4
         49gw==
X-Gm-Message-State: AOJu0YyeFgQQgk6alk+BOUTtCKO6/j+lkaTL+tZuncJi7Qrk3k8ilCFu
	/k81rnGhv33+AwUNjqUSvV9dvPku4NQmEF8fYcufA+wALTE+f3Dypxq1rTZotH76xH8DbVCn8h8
	LiDo=
X-Google-Smtp-Source: AGHT+IGWWOVGP2we9jH3vEZEr5UZXzsR4iV4LLvrc9gpKb7HCwr01s27knTyH/lqEHZ1BTsGm8OBgg==
X-Received: by 2002:a05:6402:42c8:b0:58c:34cb:16a9 with SMTP id 4fb4d7f45d1cf-58c34cb1aeamr2572465a12.16.1720016411055;
        Wed, 03 Jul 2024 07:20: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>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 4/4] CI: Rework the CentOS7 container
Date: Wed,  3 Jul 2024 15:20:02 +0100
Message-Id: <20240703142002.1662874-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

CentOS 7 is fully End-of-life as of 2024-06-30, and the Yum repo configuration
points at URLs which have become non-existent.

First, start by using a heredoc RUN for legibility.  It's important to use
`set -e` to offset the fact that we're no longer chaining every command
together with an &&.

Also, because we're using a single RUN command to perform all RPM operations,
we no longer need to work around the OverlayFS bug.

Adjust the CentOS-*.repo files to point at vault.centos.org.

Take the opportunity to split the Xen deps from Tools deps, and to adjust the
other packages we use:

 * We need bzip2-devel for the dombuilder, not just bzip2.
 * zstd-devel is another optional dependency since the last time this package
   list was refreshed.
 * openssl-devel hasn't been a dependency since Xen 4.6.
 * We long ago ceased being able to build Qemu and SeaBIOS in this container,
   so drop their dependencies too.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 automation/build/centos/7.dockerfile | 70 +++++++++++++++-------------
 1 file changed, 37 insertions(+), 33 deletions(-)

diff --git a/automation/build/centos/7.dockerfile b/automation/build/centos/7.dockerfile
index 657550f308bb..9e66d72a5bd5 100644
--- a/automation/build/centos/7.dockerfile
+++ b/automation/build/centos/7.dockerfile
@@ -6,44 +6,48 @@ LABEL maintainer.name="The Xen Project" \
 RUN mkdir /build
 WORKDIR /build
 
-# work around https://github.com/moby/moby/issues/10180
-# and add EPEL for dev86
-RUN rpm --rebuilddb && \
-    yum -y install \
-        yum-plugin-ovl \
-        epel-release \
-    && yum clean all && \
-    rm -rf /var/cache/yum
+RUN <<EOF
+    set -e
+
+    # Fix up Yum config now that mirror.centos.org doesn't exist
+    sed -e 's/mirror.centos.org/vault.centos.org/g' \
+        -e 's/^#.*baseurl=https\?/baseurl=https/g' \
+        -e 's/^mirrorlist=https\?/#mirrorlist=https/g' \
+        -i /etc/yum.repos.d/*.repo
+
+    # Add the EPEL repo to get dev86
+    yum -y install epel-release
+
+    yum -y update
 
-# install Xen depends
-RUN yum -y update \
-    && yum -y install \
+    # Xen deps
+    yum -y install \
+        bison \
+        binutils \
+        checkpolicy \
+        flex \
         gcc \
+        make \
+
+    # Tools/stubdom/docs deps
+    yum -y install \
+        acpica-tools \
+        bzip2-devel \
+        dev86 \
         gcc-c++ \
-        ncurses-devel \
-        zlib-devel \
-        openssl-devel \
-        python-devel \
+        git \
         libuuid-devel \
+        ncurses-devel \
+        patch \
         pkgconfig \
-        flex \
-        bison \
-        libaio-devel \
-        glib2-devel \
-        yajl-devel \
-        pixman-devel \
-        glibc-devel \
-        make \
-        binutils \
-        git \
-        wget \
-        acpica-tools \
+        python-devel \
         python-markdown \
-        patch \
-        checkpolicy \
-        dev86 \
+        wget \
         xz-devel \
-        bzip2 \
-        nasm \
-    && yum clean all && \
+        yajl-devel \
+        zlib-devel \
+        zstd-devel \
+
+    yum clean all
     rm -rf /var/cache/yum
+EOF
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:20:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753082.1161343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP0qB-00048B-2p; Wed, 03 Jul 2024 14:20:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753082.1161343; Wed, 03 Jul 2024 14:20:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP0qB-000484-00; Wed, 03 Jul 2024 14:20:11 +0000
Received: by outflank-mailman (input) for mailman id 753082;
 Wed, 03 Jul 2024 14:20:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i9qc=OD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sP0q9-00047s-V9
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:20:09 +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 593e2ae7-3947-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 16:20:07 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-57cb9a370ddso3866843a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 07:20:07 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5861324f036sm7114707a12.34.2024.07.03.07.20.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 07:20: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: 593e2ae7-3947-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720016407; x=1720621207; 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=N0VPZpVmpbFI8i8fQpd8fSbKeeEW0XdlJBIH/+k/nGY=;
        b=sQ6OoXGGncudnuBcNXo5vh6wD6O8/FdCam1nni1HPlmB14jRAt6kNLkSrZ2cJpirtt
         9jv+9P7dXdbsKnX2u1cKaar496vv8t3w46lGYlDIddXfEe2cssAO7oF5d85Gw9ir0qxq
         CVP5HKDBVYlqmDGZqP4W9SFAxQJMhNC0xVozM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720016407; x=1720621207;
        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=N0VPZpVmpbFI8i8fQpd8fSbKeeEW0XdlJBIH/+k/nGY=;
        b=L2i71x2vlSR/PuG7ZwiGYwiQGavDPK+PD3FK294sx0b2/5HcVclF5yNQhDw1cK/w5U
         x4rvTDyZWh+nKC7ZKrGWtPYtMOgBA4+HJ7gcfEZ37zZmPqovWw4Zd+6i53XOkd/G5akh
         uTs8g40QR7EHUxF0Ygn3e5mnRAt4fs3olQtD3HbKnudy6Qsd1ukIyxTWzWKejaFrtiFg
         UtTQAzGoBgetq5S1z0mJ+4HwyxMITt/WLUg9Jkk0OBFePv2HIJHaUlaxRgj1evi+ZXcR
         TqrkXizME52a+wrCI4Yyhcby7NJlePa/Yk+ArexlBknQLaU2kzChXuyuAeRJADPA4HNp
         WhrA==
X-Gm-Message-State: AOJu0YytclWWI2+ijBn4Udfr8vF0nqeqFckBfN4HX+YfXTSK8nZzGEd7
	eTcC/L8Visql7W3fpQtR9dMdqbxDZvWgXxgoBHo+qSHP/IDm6tJOka61pfmuTnUrXhIu+h5CKBe
	6yx8=
X-Google-Smtp-Source: AGHT+IFOanZmtiSFWG6jY3SSfUHrS9vuuPcdeHtZhMzHNrwCy5NGkv6Eo1A4TxSxkE07aXDEwzxqoA==
X-Received: by 2002:a05:6402:2109:b0:58c:ccc1:17ec with SMTP id 4fb4d7f45d1cf-58cccc11b43mr1335063a12.13.1720016406443;
        Wed, 03 Jul 2024 07:20: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>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 0/4] CI: Fixes, part 1
Date: Wed,  3 Jul 2024 15:19:58 +0100
Message-Id: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Minimum fixes to rebuild the containers, following the HEREDOC problems.

Unrelated to the HEREDOC problems, Archlinux and CentOS 7 need aditional
chagnes to rebuild.

There will be subsequent work to make some improvements to CI for 4.19, so in
particular we're testing with up-to-date LTS distros.

Andrew Cooper (4):
  CI: Formalise the use of heredocs
  CI: Adjust the usage of inline files
  CI: Drop bin86/dev86 from archlinux container
  CI: Rework the CentOS7 container

 automation/build/README.md                    | 10 ++-
 .../build/alpine/3.18-arm64v8.dockerfile      |  1 +
 automation/build/alpine/3.18.dockerfile       |  1 +
 .../archlinux/current-riscv64.dockerfile      |  1 +
 automation/build/archlinux/current.dockerfile |  3 +-
 automation/build/centos/7.dockerfile          | 71 ++++++++++---------
 .../bookworm-arm64v8-arm32-gcc.dockerfile     |  1 +
 .../build/debian/bookworm-arm64v8.dockerfile  |  1 +
 .../build/debian/bookworm-cppcheck.dockerfile |  1 +
 .../build/debian/bookworm-i386.dockerfile     |  1 +
 automation/build/debian/bookworm.dockerfile   |  1 +
 .../build/debian/bullseye-ppc64le.dockerfile  |  1 +
 .../build/debian/buster-gcc-ibt.dockerfile    |  1 +
 .../build/debian/jessie-i386.dockerfile       |  3 +-
 automation/build/debian/jessie.dockerfile     |  3 +-
 .../build/debian/stretch-i386.dockerfile      |  3 +-
 automation/build/debian/stretch.dockerfile    |  3 +-
 automation/build/fedora/29.dockerfile         |  1 +
 .../build/suse/opensuse-leap.dockerfile       |  1 +
 .../build/suse/opensuse-tumbleweed.dockerfile |  1 +
 automation/build/ubuntu/bionic.dockerfile     |  1 +
 automation/build/ubuntu/focal.dockerfile      |  1 +
 automation/build/ubuntu/trusty.dockerfile     |  1 +
 .../build/ubuntu/xenial-xilinx.dockerfile     |  1 +
 automation/build/ubuntu/xenial.dockerfile     |  1 +
 automation/build/yocto/yocto.dockerfile.in    |  2 +
 .../alpine/3.18-arm64v8.dockerfile            |  1 +
 .../tests-artifacts/alpine/3.18.dockerfile    |  1 +
 .../kernel/5.19-arm64v8.dockerfile            |  1 +
 .../tests-artifacts/kernel/6.1.19.dockerfile  |  1 +
 .../6.0.0-arm64v8.dockerfile                  |  1 +
 .../qemu-system-ppc64/8.1.0-ppc64.dockerfile  |  1 +
 32 files changed, 82 insertions(+), 40 deletions(-)


base-commit: fb76e08a8f7a61dfbc07d0f335f1623bca650d7f
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:34:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:34:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753122.1161395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP13k-00009B-El; Wed, 03 Jul 2024 14:34:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753122.1161395; Wed, 03 Jul 2024 14:34:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP13k-000094-Aq; Wed, 03 Jul 2024 14:34:12 +0000
Received: by outflank-mailman (input) for mailman id 753122;
 Wed, 03 Jul 2024 14:34: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=znpO=OD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sP13i-00008y-JX
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:34:10 +0000
Received: from mail-qt1-x830.google.com (mail-qt1-x830.google.com
 [2607:f8b0:4864:20::830])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4dcf4eca-3949-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 16:34:07 +0200 (CEST)
Received: by mail-qt1-x830.google.com with SMTP id
 d75a77b69052e-447bfa82882so3728931cf.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 07:34:07 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-446513d40eesm50700491cf.16.2024.07.03.07.34.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 07:34: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: 4dcf4eca-3949-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720017247; x=1720622047; 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=OkEU2sTfiwkSw/DcBnlzRIrZKfsk6Ni21u8FMS/6uz4=;
        b=mHOqriXlIodZXYsnO8w91WmBNQqDwHn/Pg7ovCVaC1cFHk3gsrOFSKZAlXVSKmd022
         dRW8tE3I7yJ4c+GSRP9XxlYbNUpbKBnpNnTAyCYMC50+SO84cVfGwLZH5VjFbZTOK4KZ
         8ntoo+iTpP73/OYOA+s2E3L2QDYQqGM9yBmT8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720017247; x=1720622047;
        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=OkEU2sTfiwkSw/DcBnlzRIrZKfsk6Ni21u8FMS/6uz4=;
        b=pmbg29ipSFGMNIL0RmxYGQtMCkXe+W6zlNJmz0qN7Z+A2VupD6QhgtgD043+1VH4Ps
         uewf/aipKkpeyZTbFFUKmGhzHsoF4ZTf6QO3uLWk/FvP2yNGxigJg5+lCN9JBJJjRj1O
         V5lqqsFjulo2fdy8hlDZT5khQVKGZqwkwYQ0KSSMilZE/6j2owivo8c82NbZo1h9xIIF
         OAaSxS5T0rcnlD/IfOezjNtXT6JJAEjkTNwWefKKLnLb9TuujZairQeU00CS8F4zCFdQ
         15agTv/VzEhvO5g7f1hoBqKlNqxC8EZ+Qkuf3kFYWTNo3cG0Z0RHM9Lg7vfxQtbMqZTf
         rBPg==
X-Gm-Message-State: AOJu0Yz1Hr2ion8vdJWAznxxvXslMb5s9oBTlYwQeBIveNF/vE9O2D6l
	Wrwy5bJgkY/Tz19TSlJLR/T/qzjTl4hjzEzlvC1mPqLtyO+eQrs9Kis4ZMfHFiQ=
X-Google-Smtp-Source: AGHT+IH9tyviVXYTncO3rVq1kMfK07kJOZY5PbG/Bfi88dBvAq8uigjl9Xx7DyP54xxD48TJC+MDsQ==
X-Received: by 2002:ac8:7fcd:0:b0:446:59dd:b574 with SMTP id d75a77b69052e-44662e5749emr141855961cf.41.1720017246472;
        Wed, 03 Jul 2024 07:34:06 -0700 (PDT)
Date: Wed, 3 Jul 2024 16:34:04 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 1/4] CI: Formalise the use of heredocs
Message-ID: <ZoVhXGF7sknROnS0@macbook.local>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
 <20240703142002.1662874-2-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20240703142002.1662874-2-andrew.cooper3@citrix.com>

On Wed, Jul 03, 2024 at 03:19:59PM +0100, Andrew Cooper wrote:
> Commit b5739330d7f4 introduced the use of heredocs in the jessie/stretch
> dockerfiles.
> 
> It turns out this was introduced by BuildKit in 2018 along with a
> standardisation of Dockerfile syntax, and has subsequently been adopted by the
> docker community.
> 
> Annotate all dockerfiles with a statement of the syntax in use, and extend
> README.md details including how to activate BuildKit when it's available but
> off by default.
> 
> This allows the containers to be rebuilt following commit a0e29b316363 ("CI:
> Drop glibc-i386 from the build containers").
> 
> Fixes: b5739330d7f4 ("automation: fix jessie/stretch images to use archive.debian.org apt repos")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Doug Goldstein <cardoe@cardoe.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  automation/build/README.md                             | 10 +++++++++-
>  automation/build/alpine/3.18-arm64v8.dockerfile        |  1 +
>  automation/build/alpine/3.18.dockerfile                |  1 +
>  automation/build/archlinux/current-riscv64.dockerfile  |  1 +
>  automation/build/archlinux/current.dockerfile          |  1 +
>  automation/build/centos/7.dockerfile                   |  1 +
>  .../build/debian/bookworm-arm64v8-arm32-gcc.dockerfile |  1 +
>  automation/build/debian/bookworm-arm64v8.dockerfile    |  1 +
>  automation/build/debian/bookworm-cppcheck.dockerfile   |  1 +
>  automation/build/debian/bookworm-i386.dockerfile       |  1 +
>  automation/build/debian/bookworm.dockerfile            |  1 +
>  automation/build/debian/bullseye-ppc64le.dockerfile    |  1 +
>  automation/build/debian/buster-gcc-ibt.dockerfile      |  1 +
>  automation/build/debian/jessie-i386.dockerfile         |  1 +
>  automation/build/debian/jessie.dockerfile              |  1 +
>  automation/build/debian/stretch-i386.dockerfile        |  1 +
>  automation/build/debian/stretch.dockerfile             |  1 +
>  automation/build/fedora/29.dockerfile                  |  1 +
>  automation/build/suse/opensuse-leap.dockerfile         |  1 +
>  automation/build/suse/opensuse-tumbleweed.dockerfile   |  1 +
>  automation/build/ubuntu/bionic.dockerfile              |  1 +
>  automation/build/ubuntu/focal.dockerfile               |  1 +
>  automation/build/ubuntu/trusty.dockerfile              |  1 +
>  automation/build/ubuntu/xenial-xilinx.dockerfile       |  1 +
>  automation/build/ubuntu/xenial.dockerfile              |  1 +
>  automation/build/yocto/yocto.dockerfile.in             |  2 ++
>  .../tests-artifacts/alpine/3.18-arm64v8.dockerfile     |  1 +
>  automation/tests-artifacts/alpine/3.18.dockerfile      |  1 +
>  .../tests-artifacts/kernel/5.19-arm64v8.dockerfile     |  1 +
>  automation/tests-artifacts/kernel/6.1.19.dockerfile    |  1 +
>  .../qemu-system-aarch64/6.0.0-arm64v8.dockerfile       |  1 +
>  .../qemu-system-ppc64/8.1.0-ppc64.dockerfile           |  1 +
>  32 files changed, 41 insertions(+), 1 deletion(-)
> 
> diff --git a/automation/build/README.md b/automation/build/README.md
> index 1c040533fdd8..12a2b4af1807 100644
> --- a/automation/build/README.md
> +++ b/automation/build/README.md
> @@ -81,7 +81,14 @@ Building a container
>  
>  There is a makefile to make this process easier. You should be
>  able to run `make DISTRO/VERSION` to have Docker build the container
> -for you. If you define the `PUSH` environment variable when running the
> +for you.
> +
> +Xen's dockerfiles use heredocs, which depend on the standardised dockerfile
> +syntax introduced by [BuiltKit].  This should work by default starting with
> +docker 23.0, or podman/buildah v1.33.  For older versions of docker, it can be
> +activated with `DOCKER_BUILDKIT=1` in the environment.
> +
> +If you define the `PUSH` environment variable when running the
>  former `make` command, it will push the container to the [registry] if
>  you have access to do so and have your Docker logged into the registry.
>  
> @@ -101,6 +108,7 @@ env CONTAINER_NO_PULL=1 \
>  make -C automation/build suse/opensuse-tumbleweed PUSH=1
>  ```
>  
> +[BuildKit]: https://docs.docker.com/build/buildkit/
>  [registry]: https://gitlab.com/xen-project/xen/container_registry
>  [registry help]: https://gitlab.com/help/user/project/container_registry
>  
> diff --git a/automation/build/alpine/3.18-arm64v8.dockerfile b/automation/build/alpine/3.18-arm64v8.dockerfile
> index 91e90220240f..19fe46f8418f 100644
> --- a/automation/build/alpine/3.18-arm64v8.dockerfile
> +++ b/automation/build/alpine/3.18-arm64v8.dockerfile
> @@ -1,3 +1,4 @@
> +# syntax=docker/dockerfile:1

Will this fail to parse if not using BuildKit?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:37:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:37:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753128.1161403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP16n-0000hk-RJ; Wed, 03 Jul 2024 14:37:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753128.1161403; Wed, 03 Jul 2024 14: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 1sP16n-0000hd-Oq; Wed, 03 Jul 2024 14:37:21 +0000
Received: by outflank-mailman (input) for mailman id 753128;
 Wed, 03 Jul 2024 14: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=znpO=OD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sP16l-0000hX-Ru
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:37:19 +0000
Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com
 [2607:f8b0:4864:20::736])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf1bfda8-3949-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 16:37:18 +0200 (CEST)
Received: by mail-qk1-x736.google.com with SMTP id
 af79cd13be357-79c0abd3eaaso410222585a.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 07:37:17 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b59e368a1csm54529026d6.16.2024.07.03.07.37.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 07:37: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: bf1bfda8-3949-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720017437; x=1720622237; 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=6hcMq7fg6hE4X05d+5KudbbYczuS0IaJ/p0Ip8jZS6o=;
        b=p6Gpj6TJGnGAS9lueqs3q04gjnjg3svN6/CtPFVl5NAKVHML+aa6faUVtA2SNwXUkw
         UBcxrZ6BXqfiHEphBorcQ8w1Gvf5HjAFpbuoxp1M8h2BPrQiV99MAhhmJnYuOlosTQjB
         kgHYkAGtSPHC5xLLTQwq5U7WtfuUQNiCS1CL8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720017437; x=1720622237;
        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=6hcMq7fg6hE4X05d+5KudbbYczuS0IaJ/p0Ip8jZS6o=;
        b=eKVRynt54Uq4B52h8B8m5m+cPRohFB+/ZkUZZ8ROnOwAUvIdgCD13Fc6rK/xS+7Iqh
         pGb5oALnOT1LH8ypFDtYm8IHDLxGBZ1edE1PjZ6SUL80ieshMmWsAjcghnhaofWCcx7c
         nz9h1wFlzx3Q3wAodMeVupXLCByHr6o4GerSkuqnf1WrXmTO9kdjYQL3wXGxBQgiolOS
         HxjrkpDm1we7J6qCE8Drauk0X+ywPfZIFnRTYkGoJAEnYAYHOQmFjYZnqBUqP98rQAM4
         7NrfAopV7Quuoo6VTWr6H4JHdh92TMNoXjUjXSqV9buSm+cppLEVnLibrnVLLIkKCzc7
         wsgg==
X-Gm-Message-State: AOJu0YySgX0QnlAfLAP4UCGngsec4Va4kcBOk0LLSg8dcHbkm3jU7qXl
	JV3IyyUO4v1ubf2SytKEh202fHiDm7qbWY1MumbxFK8EiVJsq9IaOJcFWZSam3s=
X-Google-Smtp-Source: AGHT+IHTy5jBNOoO2wovyZGKR8mXhUoonThIZWp3wcnUBHIkcchHkfGRA3/jfL5XSP1PCu+Zc8Wejw==
X-Received: by 2002:ad4:5ecc:0:b0:6b0:729c:5efc with SMTP id 6a1803df08f44-6b5b71aecdbmr148383026d6.56.1720017436768;
        Wed, 03 Jul 2024 07:37:16 -0700 (PDT)
Date: Wed, 3 Jul 2024 16:37:11 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 2/4] CI: Adjust the usage of inline files
Message-ID: <ZoViF7KLRbV3qB4k@macbook.local>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
 <20240703142002.1662874-3-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20240703142002.1662874-3-andrew.cooper3@citrix.com>

On Wed, Jul 03, 2024 at 03:20:00PM +0100, Andrew Cooper wrote:
> As per:
> 
>   https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/reference.md#here-documents
> 
> For inline files, use COPY with a heredoc, rather than opencoding it through
> /bin/sh.
> 
> No practical change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:39:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:39:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753135.1161413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP18b-0001sT-AT; Wed, 03 Jul 2024 14:39:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753135.1161413; Wed, 03 Jul 2024 14: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 1sP18b-0001sM-7Y; Wed, 03 Jul 2024 14:39:13 +0000
Received: by outflank-mailman (input) for mailman id 753135;
 Wed, 03 Jul 2024 14: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=utZJ=OD=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1sP18a-0001sE-2e
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:39:12 +0000
Received: from ppsw-31.srv.uis.cam.ac.uk (ppsw-31.srv.uis.cam.ac.uk
 [131.111.8.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01ac6ec9-394a-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 16:39:09 +0200 (CEST)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:34454)
 by ppsw-31.srv.uis.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.137]:25)
 with esmtps (TLS1.3:TLS_AES_256_GCM_SHA384:256)
 id 1sP18W-00000003hgD-LZiK (Exim 4.97.1)
 (return-path <amc96@srcf.net>); Wed, 03 Jul 2024 15:39:08 +0100
Received: from [10.125.226.166] (unknown [185.25.67.249])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id E96101FAE1;
 Wed,  3 Jul 2024 15:39:07 +0100 (BST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01ac6ec9-394a-11ef-8776-851b0ebba9a2
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <12c328db-6a1c-4365-9b84-2b5dfe1f550c@srcf.net>
Date: Wed, 3 Jul 2024 15:38:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 1/4] CI: Formalise the use of heredocs
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 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>,
 Doug Goldstein <cardoe@cardoe.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
 <20240703142002.1662874-2-andrew.cooper3@citrix.com>
 <ZoVhXGF7sknROnS0@macbook.local>
Content-Language: en-GB
From: Andrew Cooper <amc96@srcf.net>
Autocrypt: addr=amc96@srcf.net; keydata=
 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
 14JdDDHUX2Rs6+ahAA==
In-Reply-To: <ZoVhXGF7sknROnS0@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/07/2024 3:34 pm, Roger Pau Monné wrote:
> On Wed, Jul 03, 2024 at 03:19:59PM +0100, Andrew Cooper wrote:
>> Commit b5739330d7f4 introduced the use of heredocs in the jessie/stretch
>> dockerfiles.
>>
>> It turns out this was introduced by BuildKit in 2018 along with a
>> standardisation of Dockerfile syntax, and has subsequently been adopted by the
>> docker community.
>>
>> Annotate all dockerfiles with a statement of the syntax in use, and extend
>> README.md details including how to activate BuildKit when it's available but
>> off by default.
>>
>> This allows the containers to be rebuilt following commit a0e29b316363 ("CI:
>> Drop glibc-i386 from the build containers").
>>
>> Fixes: b5739330d7f4 ("automation: fix jessie/stretch images to use archive.debian.org apt repos")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>
>> ---
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Doug Goldstein <cardoe@cardoe.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>>  automation/build/README.md                             | 10 +++++++++-
>>  automation/build/alpine/3.18-arm64v8.dockerfile        |  1 +
>>  automation/build/alpine/3.18.dockerfile                |  1 +
>>  automation/build/archlinux/current-riscv64.dockerfile  |  1 +
>>  automation/build/archlinux/current.dockerfile          |  1 +
>>  automation/build/centos/7.dockerfile                   |  1 +
>>  .../build/debian/bookworm-arm64v8-arm32-gcc.dockerfile |  1 +
>>  automation/build/debian/bookworm-arm64v8.dockerfile    |  1 +
>>  automation/build/debian/bookworm-cppcheck.dockerfile   |  1 +
>>  automation/build/debian/bookworm-i386.dockerfile       |  1 +
>>  automation/build/debian/bookworm.dockerfile            |  1 +
>>  automation/build/debian/bullseye-ppc64le.dockerfile    |  1 +
>>  automation/build/debian/buster-gcc-ibt.dockerfile      |  1 +
>>  automation/build/debian/jessie-i386.dockerfile         |  1 +
>>  automation/build/debian/jessie.dockerfile              |  1 +
>>  automation/build/debian/stretch-i386.dockerfile        |  1 +
>>  automation/build/debian/stretch.dockerfile             |  1 +
>>  automation/build/fedora/29.dockerfile                  |  1 +
>>  automation/build/suse/opensuse-leap.dockerfile         |  1 +
>>  automation/build/suse/opensuse-tumbleweed.dockerfile   |  1 +
>>  automation/build/ubuntu/bionic.dockerfile              |  1 +
>>  automation/build/ubuntu/focal.dockerfile               |  1 +
>>  automation/build/ubuntu/trusty.dockerfile              |  1 +
>>  automation/build/ubuntu/xenial-xilinx.dockerfile       |  1 +
>>  automation/build/ubuntu/xenial.dockerfile              |  1 +
>>  automation/build/yocto/yocto.dockerfile.in             |  2 ++
>>  .../tests-artifacts/alpine/3.18-arm64v8.dockerfile     |  1 +
>>  automation/tests-artifacts/alpine/3.18.dockerfile      |  1 +
>>  .../tests-artifacts/kernel/5.19-arm64v8.dockerfile     |  1 +
>>  automation/tests-artifacts/kernel/6.1.19.dockerfile    |  1 +
>>  .../qemu-system-aarch64/6.0.0-arm64v8.dockerfile       |  1 +
>>  .../qemu-system-ppc64/8.1.0-ppc64.dockerfile           |  1 +
>>  32 files changed, 41 insertions(+), 1 deletion(-)
>>
>> diff --git a/automation/build/README.md b/automation/build/README.md
>> index 1c040533fdd8..12a2b4af1807 100644
>> --- a/automation/build/README.md
>> +++ b/automation/build/README.md
>> @@ -81,7 +81,14 @@ Building a container
>>  
>>  There is a makefile to make this process easier. You should be
>>  able to run `make DISTRO/VERSION` to have Docker build the container
>> -for you. If you define the `PUSH` environment variable when running the
>> +for you.
>> +
>> +Xen's dockerfiles use heredocs, which depend on the standardised dockerfile
>> +syntax introduced by [BuiltKit].  This should work by default starting with
>> +docker 23.0, or podman/buildah v1.33.  For older versions of docker, it can be
>> +activated with `DOCKER_BUILDKIT=1` in the environment.
>> +
>> +If you define the `PUSH` environment variable when running the
>>  former `make` command, it will push the container to the [registry] if
>>  you have access to do so and have your Docker logged into the registry.
>>  
>> @@ -101,6 +108,7 @@ env CONTAINER_NO_PULL=1 \
>>  make -C automation/build suse/opensuse-tumbleweed PUSH=1
>>  ```
>>  
>> +[BuildKit]: https://docs.docker.com/build/buildkit/
>>  [registry]: https://gitlab.com/xen-project/xen/container_registry
>>  [registry help]: https://gitlab.com/help/user/project/container_registry
>>  
>> diff --git a/automation/build/alpine/3.18-arm64v8.dockerfile b/automation/build/alpine/3.18-arm64v8.dockerfile
>> index 91e90220240f..19fe46f8418f 100644
>> --- a/automation/build/alpine/3.18-arm64v8.dockerfile
>> +++ b/automation/build/alpine/3.18-arm64v8.dockerfile
>> @@ -1,3 +1,4 @@
>> +# syntax=docker/dockerfile:1
> Will this fail to parse if not using BuildKit?

No.  To "the legacy builder" (the pre-BuildKit thing), it's just a comment.

But to anything semi recent, it defines the version of the dockerfile
syntax we intend to use, and in particular will prevent you from
accidentally using newer syntax in an older dockerfile.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:43:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:43:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753145.1161424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP1Ca-0003X1-QY; Wed, 03 Jul 2024 14:43:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753145.1161424; Wed, 03 Jul 2024 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 1sP1Ca-0003Wu-Nm; Wed, 03 Jul 2024 14:43:20 +0000
Received: by outflank-mailman (input) for mailman id 753145;
 Wed, 03 Jul 2024 14:43: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=znpO=OD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sP1CZ-0003Wo-S6
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:43:19 +0000
Received: from mail-qk1-x729.google.com (mail-qk1-x729.google.com
 [2607:f8b0:4864:20::729])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 964e046d-394a-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 16:43:19 +0200 (CEST)
Received: by mail-qk1-x729.google.com with SMTP id
 af79cd13be357-79d5d1a54fcso46140585a.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 07:43:19 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-79d69297ef3sm573156485a.61.2024.07.03.07.43.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 07: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: 964e046d-394a-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720017798; x=1720622598; 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=pr98WiVlZuUOlJExOJXizhXm2cJTOhNY040aB8qgXR0=;
        b=RHRkeNShXsPIpbuysiq1kQ13wIvmnr89GiUzod0IQQxXFhOGcOOGtBh6/cyg+m3g1p
         bBjfOCWkR70wCagxVSag55cr2pBWXOkkQMdIolOzbOaOJ+sXqLTO58K+2BEFRfa54R7V
         LXrLjr7MIy9ITlDcWNUhnvMqrmdW1FhVMa/fA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720017798; x=1720622598;
        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=pr98WiVlZuUOlJExOJXizhXm2cJTOhNY040aB8qgXR0=;
        b=uHDiOFN472VW1xfRGELIMfo1tXwUuWp0bPaStbLH9VPSwC1qdSvT82t0eKYauzNpFk
         cw1vGsMbFhr20x8Wbjm6s1a61syCvd8TBiPj67Zc2IPb0vywmAW1yWeN6e3ejq2cgiuR
         45+ZiU31PbnwkuLyLL33bUNxO+xFWn2aqOxvky3odVNa7CX9WJ8++AzfTDspCBOaX3lD
         7YwEBtlb0UuSRfKHIpGQPBPUPneDUkDpkBKyZgYygKbaZpU9BB+0THj/0P+8VRceDt4Q
         M7g07TV9q5IYIlKiC1KhlKPtCotj3NIaR37S/30LjaslblCE0b82iUmClPzzHVZNOju8
         4Xlg==
X-Gm-Message-State: AOJu0YxSigMtE82FZL+DCiUXGlz6fzt05ITbnmdPxcIgj68QHsJaCzrH
	ozradz0j1Weyc/V86hc19mpipi3GXG4bhNf8D5ZgD2Y2+baLOIGUhoJHgEkCk7EEaCDlDGHZCn6
	t
X-Google-Smtp-Source: AGHT+IFfOkvUh5iK0wQHsfANbDdMPkD+KyC4vCi5oGG+6PBXmG7fOLMHoS6itK5JEcuQrkLhmA6u3A==
X-Received: by 2002:a05:620a:57a:b0:795:5de4:6625 with SMTP id af79cd13be357-79ee314a6c5mr284597885a.5.1720017797797;
        Wed, 03 Jul 2024 07:43:17 -0700 (PDT)
Date: Wed, 3 Jul 2024 16:43:15 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 3/4] CI: Drop bin86/dev86 from archlinux
 container
Message-ID: <ZoVjg-HBZdoa-B5A@macbook.local>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
 <20240703142002.1662874-4-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: <20240703142002.1662874-4-andrew.cooper3@citrix.com>

On Wed, Jul 03, 2024 at 03:20:01PM +0100, Andrew Cooper wrote:
> These packages have moved out of main to AUR, and are not easily accessable
                                                                   ^ accessible?
> any more.  Drop them, because they're only needed for RomBIOS which is very
> legacy these days.

Is there no need to modify any build script in order to prevent
building QEMU trad (and thus rombios), or it has never been built on
Arch in the first place?

(or maybe all releases that we support no longer build QEMU trad by
default?)

> 
> 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 Jul 03 14:46:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:46:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753150.1161434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP1Fe-00044q-7T; Wed, 03 Jul 2024 14:46:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753150.1161434; Wed, 03 Jul 2024 14:46:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP1Fe-00044j-4W; Wed, 03 Jul 2024 14:46:30 +0000
Received: by outflank-mailman (input) for mailman id 753150;
 Wed, 03 Jul 2024 14:46:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP1Fc-00044Z-JY; Wed, 03 Jul 2024 14:46:28 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP1Fc-0006eF-Go; Wed, 03 Jul 2024 14:46:28 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP1Fc-0005Mx-1P; Wed, 03 Jul 2024 14:46:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sP1Fc-0001nh-0u; Wed, 03 Jul 2024 14:46: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=fNaOc7iN+p+Y8PMq2MEaQ0xbJ9z/Al9BEUQzT0758k8=; b=rKZTCZ6Rr8ffYgNiGxVEkkkQXb
	EJbSsrVUe/4e8UKHboZ7/KbRT4uLfbfJ2fZXM9MPucKVnbdkfNtL64hS89EtGNnZubTqIAiNnX/Dl
	4rn0LjOIGA7PhTQ8XtgsEAra1FH9t6zDRrS9eT8IowK/wNPNvH/MFHXlzfyMb/XNqYWU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186640-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186640: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=ed07a2bb11b358fdece44a760fc193d56f22cfb2
X-Osstest-Versions-That:
    ovmf=4f174696fd8fbd9cc29c9f172e8e83fe6da5b070
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Jul 2024 14:46:28 +0000

flight 186640 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186640/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 ed07a2bb11b358fdece44a760fc193d56f22cfb2
baseline version:
 ovmf                 4f174696fd8fbd9cc29c9f172e8e83fe6da5b070

Last test of basis   186636  2024-07-03 03:11:14 Z    0 days
Testing same since   186640  2024-07-03 12:44:49 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Britton Chesley <Brit.Chesley@amd.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   4f174696fd..ed07a2bb11  ed07a2bb11b358fdece44a760fc193d56f22cfb2 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:53:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:53:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753161.1161443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP1Ls-0006Rq-S6; Wed, 03 Jul 2024 14:52:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753161.1161443; Wed, 03 Jul 2024 14: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 1sP1Ls-0006Rj-PC; Wed, 03 Jul 2024 14:52:56 +0000
Received: by outflank-mailman (input) for mailman id 753161;
 Wed, 03 Jul 2024 14:52: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=i9qc=OD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sP1Lr-0006Rd-IZ
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:52:55 +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 ec983f3c-394b-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 16:52:53 +0200 (CEST)
Received: by mail-qk1-x72d.google.com with SMTP id
 af79cd13be357-79c072af217so414953985a.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 07:52:53 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b59e3699edsm54324506d6.3.2024.07.03.07.52.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 07:52: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: ec983f3c-394b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720018372; x=1720623172; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5y07oGoQriSa75lz2aYy+xFi65mOsfj21SReRJAYAH0=;
        b=VZObGjBltrk7p98qCm+2c3aRAAsZOjs4CmJ6qZxSr1pPAqIeslHJBWsEPirUj81ScB
         G/UkLpJzKkggKxn9apDeHSz9+21h9lN0r54TwQhyNb+xecQluQwhdwRKkIyqSK8a8MdU
         oVvRVu450gqdr/SsYnDa44Eb5u678CUYI+STs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720018372; x=1720623172;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5y07oGoQriSa75lz2aYy+xFi65mOsfj21SReRJAYAH0=;
        b=oitEbWwlX2Y7/NVwjsaBtwW/Q4BYOPI0n5U5xcYax9MjMItyjghqT2sDFmKtwj2+mB
         804UxieRdE5QNlZYUhyXSmIUiU2T13qV75Ay6EEIIgvhn7EfybYAUH1Mqx9+rADQ+E/R
         Oxke/j+Nm3k4Vsgw0sPJKzdvbymVFYNI6mlGJ43E7u+uqJ0GKVenX/dhmFiB9HS9zPiC
         Bqcb8MVZv7fWeBMlM0vNts/XdrHVdJ9Dkgcn1weRjwsh0mVkhrQUP96HxTPG5EtImlKe
         A3LCBkLdQrP+eEdJw42u8xQDCelVhBvczhhYeL6PcA/8MPQe+wErL/4rE1vHyzt2KN3u
         hJpA==
X-Gm-Message-State: AOJu0YyE8y16+6Wj7b3sllRjJtfniXkVIsb4S4sgBwyhZiin/WVB85Q2
	KfJN8xmBsMGC+hCiLJwP+aFsKaN9rYBmnu8RK3UgxnerUSpcev5JvFU+Qwh2KNY=
X-Google-Smtp-Source: AGHT+IFZsTnjC8HrxYV23imo1Yxk8qOxfPSYJNoYsem/h3kF5fDF/HIzQVD/h/rn6AuIs3iwB1LG+g==
X-Received: by 2002:ad4:5aee:0:b0:6b5:db40:8dba with SMTP id 6a1803df08f44-6b5db408febmr58056346d6.11.1720018372159;
        Wed, 03 Jul 2024 07:52:52 -0700 (PDT)
Message-ID: <6b05b04d-e2a8-42ba-b040-78638fa7b51f@citrix.com>
Date: Wed, 3 Jul 2024 15:52:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 3/4] CI: Drop bin86/dev86 from archlinux
 container
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
 <20240703142002.1662874-4-andrew.cooper3@citrix.com>
 <ZoVjg-HBZdoa-B5A@macbook.local>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZoVjg-HBZdoa-B5A@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/07/2024 3:43 pm, Roger Pau Monné wrote:
> On Wed, Jul 03, 2024 at 03:20:01PM +0100, Andrew Cooper wrote:
>> These packages have moved out of main to AUR, and are not easily accessable
>                                                                    ^ accessible?

Fixed.

>> any more.  Drop them, because they're only needed for RomBIOS which is very
>> legacy these days.
> Is there no need to modify any build script in order to prevent
> building QEMU trad (and thus rombios), or it has never been built on
> Arch in the first place?
>
> (or maybe all releases that we support no longer build QEMU trad by
> default?)

Qemu trad is off by default now, but the ./configure script will sanity
check too.

Also, Archlinux is nonblocking because it's a rolling distro and
periodically breaks older trees because of an updated GCC.

>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:55:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:55:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753165.1161453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP1O3-0006z1-71; Wed, 03 Jul 2024 14:55:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753165.1161453; Wed, 03 Jul 2024 14:55:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP1O3-0006yu-4N; Wed, 03 Jul 2024 14:55:11 +0000
Received: by outflank-mailman (input) for mailman id 753165;
 Wed, 03 Jul 2024 14:55: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=znpO=OD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sP1O1-0006yi-Ub
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:55:09 +0000
Received: from mail-oi1-x232.google.com (mail-oi1-x232.google.com
 [2607:f8b0:4864:20::232])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d4c4667-394c-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 16:55:08 +0200 (CEST)
Received: by mail-oi1-x232.google.com with SMTP id
 5614622812f47-3d55e2e0327so2868236b6e.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 07:55:08 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b59e368b6esm54851556d6.15.2024.07.03.07.55.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 07:55: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: 3d4c4667-394c-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720018507; x=1720623307; 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=rGnDI6SGzWfccGnKzBf/NyaQsaVpF3wD7JkSnyudEK4=;
        b=tKeQmQQuKKno2sjSxKDMmQuyoE5u8eXd+4mDTh9Zj+4AGP1ague/TC/+FOqoYamFpP
         Rq7grZnYKV4kV7EsePpoGRJTVTCsY9rQgpbqpFf6pGUt4Y8eji/KmLBCFaE8tOEbz6KP
         Oq2afhuj7rl1HeDUUlfzh/PkpNBVNO383UBeU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720018507; x=1720623307;
        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=rGnDI6SGzWfccGnKzBf/NyaQsaVpF3wD7JkSnyudEK4=;
        b=TQxxL2fkSy6gpNVsfhEpbOUd2h0FsLYI3C734kAOX2YjwTj9hDj3V1pWqPySdqRqmr
         NbKakUYyE35dRYIxiuSL1rDoCdc/S6eubKbXSKgfchtejQq9Y2njsjFv5f+/UYjU4lZU
         ukqjp0kz3kLFhPiGaOY5vj8dPJ9vUshNyK2aNSJFaexh9BizjV5AtSmlbossc+xpQ1oU
         Uyz62maVhoUaT85Bma7QKO7i3GGAtXZF8HtWAKfuS7LIOKJ8OBmKvLedOgAP8QeiaMce
         ftlhHR6XsCPb5Dfx67FKIlwnpe/tBQGSH8cnOgCaoG4BuCPs0j1E9jLLAuFo3QeIL1bt
         5H8w==
X-Gm-Message-State: AOJu0YzBnBH/Z0eJZUAwSd0DvtHqzsKA6ei8Fyd7s31EhABkSa6eO29A
	3/FjGgy8248LRCXJkdeYy1lDNm0J87VdxElG7SQeRPz+AD90hb3OEFhlg1IH97Q=
X-Google-Smtp-Source: AGHT+IGIRgSYQWMWe0Vx/mGRYMZZxhmWzYE/SyBAgkzX97xt+AHeJ6B+4TNrhBeIsx3FRwMTfzhQBQ==
X-Received: by 2002:a05:6808:1b12:b0:3d5:6266:eb6a with SMTP id 5614622812f47-3d6b283dafbmr14659271b6e.8.1720018507378;
        Wed, 03 Jul 2024 07:55:07 -0700 (PDT)
Date: Wed, 3 Jul 2024 16:55:05 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 4/4] CI: Rework the CentOS7 container
Message-ID: <ZoVmSWt9bwxDNMuF@macbook.local>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
 <20240703142002.1662874-5-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: <20240703142002.1662874-5-andrew.cooper3@citrix.com>

On Wed, Jul 03, 2024 at 03:20:02PM +0100, Andrew Cooper wrote:
> CentOS 7 is fully End-of-life as of 2024-06-30, and the Yum repo configuration
> points at URLs which have become non-existent.
> 
> First, start by using a heredoc RUN for legibility.  It's important to use
> `set -e` to offset the fact that we're no longer chaining every command
> together with an &&.
> 
> Also, because we're using a single RUN command to perform all RPM operations,
> we no longer need to work around the OverlayFS bug.
> 
> Adjust the CentOS-*.repo files to point at vault.centos.org.
> 
> Take the opportunity to split the Xen deps from Tools deps, and to adjust the
> other packages we use:
> 
>  * We need bzip2-devel for the dombuilder, not just bzip2.
>  * zstd-devel is another optional dependency since the last time this package
>    list was refreshed.
>  * openssl-devel hasn't been a dependency since Xen 4.6.
>  * We long ago ceased being able to build Qemu and SeaBIOS in this container,
>    so drop their dependencies too.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Roger Pau Monné <roiger.pau@citrix.com>

> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Doug Goldstein <cardoe@cardoe.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  automation/build/centos/7.dockerfile | 70 +++++++++++++++-------------
>  1 file changed, 37 insertions(+), 33 deletions(-)
> 
> diff --git a/automation/build/centos/7.dockerfile b/automation/build/centos/7.dockerfile
> index 657550f308bb..9e66d72a5bd5 100644
> --- a/automation/build/centos/7.dockerfile
> +++ b/automation/build/centos/7.dockerfile
> @@ -6,44 +6,48 @@ LABEL maintainer.name="The Xen Project" \
>  RUN mkdir /build
>  WORKDIR /build
>  
> -# work around https://github.com/moby/moby/issues/10180
> -# and add EPEL for dev86
> -RUN rpm --rebuilddb && \
> -    yum -y install \
> -        yum-plugin-ovl \
> -        epel-release \
> -    && yum clean all && \
> -    rm -rf /var/cache/yum
> +RUN <<EOF
> +    set -e
> +
> +    # Fix up Yum config now that mirror.centos.org doesn't exist
> +    sed -e 's/mirror.centos.org/vault.centos.org/g' \
> +        -e 's/^#.*baseurl=https\?/baseurl=https/g' \
> +        -e 's/^mirrorlist=https\?/#mirrorlist=https/g' \

Why do you also need to uncomment baseurl and comment mirrorlist?
Isn't baseurl already enabled, and having extra mirrorlist won't harm
as it's just extra location to search for packages? (IOW: even if they
don't exist it shouldn't be an issue).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 14:58:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 14:58:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753178.1161465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP1RU-00080L-QZ; Wed, 03 Jul 2024 14:58:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753178.1161465; Wed, 03 Jul 2024 14:58: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 1sP1RU-00080E-Ls; Wed, 03 Jul 2024 14:58:44 +0000
Received: by outflank-mailman (input) for mailman id 753178;
 Wed, 03 Jul 2024 14:58: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sP1RU-0007ys-87
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 14:58:44 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bd8717bc-394c-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 16:58:43 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2ec5fad1984so75482631fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 07:58: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
 d9443c01a7336-1fac15693e8sm104327845ad.217.2024.07.03.07.58.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 07:58: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: bd8717bc-394c-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720018723; x=1720623523; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kRw9znZlnI6jm8th1Pv0UU9ORD6y2czHbelRNdjt9HU=;
        b=ZtJwzKMhG/E8H1HRA8JO4ZZlbaMc7W1YXWAJrPbx/9gARYYgr3phyktrPwiP4s1mB1
         hQPLHeZXcHEkiN/bdpnx1xVtkY8KMLbKsv1cgz7lFmJ84R9mSb159pY6/ZJ1yKsnZJNW
         ph/Q3S+aZKoT21hGC7wA5ULBM+Onf9OTlVyFrT+v+i8bFucGsL8m26Pzz4tvCygn0Exp
         iud3uO1HtIdZWP0rGbbnP4T5OpC+/UcHnjXbrdfK+aN7gYsbWX6JtPZ5mn/T2Tm9VeK7
         5n4mTLo9FsJeey2SojyOSu4xwOyQGW5FBfYs3jt9Jstc1zWaHonwJiBtFI9LeIKOUUAR
         S80A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720018723; x=1720623523;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kRw9znZlnI6jm8th1Pv0UU9ORD6y2czHbelRNdjt9HU=;
        b=sVNh1b121o4pwvBIPuXFfDnkLL/hiYnk3LCEG+EKU37W+nHOIWSDaq50ywVa0PSSEP
         M+AVsmV4ZPD4BD7+6pPz99qs/nUOjY3f5O2wDk3QSjuSM1W+HJB2Q/07dFP+NH92NiUn
         gO+46EyzJ8kfSodaULB7mIRrpwxOcLWpYniLb/D6q08TOus6Sv4CjjZFxT05wIYtDFlP
         ck3GPo8Evm+xiaopiDRu3th21L2gVgf1bBRx4VcCzNi2/go7kS48ZIyYMmTTxY8jgw0F
         r3ylUyezy2k1awIaJ464DsrdhVv0+zEzT3DDZUIyASJlLZ6nKxXPWy3iUOPp1iVaV7dz
         6tmw==
X-Forwarded-Encrypted: i=1; AJvYcCXF4FS+gIgMWWuD4folX8nHlTSZxBGd3St/FUbTndCB9Gbb2GB07lpVOJk+15fxWS88/JulG6oYtdmcVvfnU2AS2Qlc/jqnoMVdmU+h004=
X-Gm-Message-State: AOJu0YzNggLGHF4mjm1ZF2jJ4dUNPIWS0uOoCrwiGjuQS18raPX/qZwS
	p7aGhAYpGPl3K+osIxQVOMUd0yLjLPV3fmKYg9fod0mUzShUE3pbFq7t4rC2RQ==
X-Google-Smtp-Source: AGHT+IHMVPNS+DrQEvs7sPXifZKblKy/TMKczmf9s7RZLjkkAtwJ8HkERLwZE/GTH294ddEaIqdxfQ==
X-Received: by 2002:a2e:a5c4:0:b0:2ee:5ec1:1838 with SMTP id 38308e7fff4ca-2ee5ec11928mr103850441fa.30.1720018722726;
        Wed, 03 Jul 2024 07:58:42 -0700 (PDT)
Message-ID: <08a33c85-419c-45c9-a54e-1198304fc6a1@suse.com>
Date: Wed, 3 Jul 2024 16:58:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2] x86/intel: optional build of TSX support
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20240701082506.190941-1-Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240701082506.190941-1-Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 10:25, Sergiy Kibrik wrote:
> Transactional Synchronization Extensions are supported on certain Intel's
> CPUs only, hence can be put under CONFIG_INTEL build option.
> 
> The whole TSX support, even if supported by CPU, may need to be disabled via
> options, by microcode or through spec-ctrl, depending on a set of specific
> conditions. To make sure nothing gets accidentally runtime-broken all
> modifications of global TSX configuration variables is secured by #ifdef's,
> while variables themselves redefined to 0, so that ones can't mistakenly be
> written to.
> 
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>

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

Btw - any reason you didn't Cc Roger?

Jan



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 15:07:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 15:07:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753186.1161475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP1Zs-0001Wz-Jw; Wed, 03 Jul 2024 15:07:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753186.1161475; Wed, 03 Jul 2024 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 1sP1Zs-0001Ws-FT; Wed, 03 Jul 2024 15:07:24 +0000
Received: by outflank-mailman (input) for mailman id 753186;
 Wed, 03 Jul 2024 15:07:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sP1Zr-0001Wm-6P
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 15:07:23 +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 f2e4d8b6-394d-11ef-bbf9-fd08da9f4363;
 Wed, 03 Jul 2024 17:07:22 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2ec1ac1aed2so65229911fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 08:07: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
 41be03b00d2f7-753c2f79474sm2568226a12.44.2024.07.03.08.07.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 08: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: f2e4d8b6-394d-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720019242; x=1720624042; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UrcB9AB+XlFI1B1hsgVUbIM3kgiMsC2mWiMD5eSt+hI=;
        b=YCWV1EXC+6lZ7g716q0Ls55t3jUF7HJWoAd0wYJZxk9KE7HkBRPk0u3VDNmqlOyCI5
         HX8kXz/3GtmLe/T7rTl10sWqejm5jA4raZBBTPo39Pr6ZJjp7TsIoapto5Yx2iUJyuJk
         wC30XgfKJHhpfsEVOHEOB2Ip4YS2mdN1npseTShnvvgL9ngnWG1+XFcSPURPvSaNggSh
         Hgg5NzXwoWMhmBiWKb9V5LeSv4IqvrePonar2VN+3IvVDbRgnBpbKSezkag//D0M8t4u
         yZ6DU27FcYouNmDn5KdyH4dAPGrMW3eu/SEHPrxcnOkja/DT9oig3JaiCU7LLedrjFWr
         IXKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720019242; x=1720624042;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UrcB9AB+XlFI1B1hsgVUbIM3kgiMsC2mWiMD5eSt+hI=;
        b=Soh7/ROCX8bmsJY+15r9/sLFhJqlkbSGht6IswXYWBY/NqL8hsc9EhxbhlvKUq9djU
         rvKW6b8Gc9DMyeD0HFL4GLgguaho/WYEDt8BwnmRyEgW5lJ5uTX+DH0obFuGRdVmTFnR
         G4dFbsFnmcplJ9RHRQAAEoNeaWiUN6EZ7JTLaTVeQZEIwX7qiH9Q1TyLzUYL3EzZgYbD
         rOJEmVYzBXpFzu/tUi92lkAj3yBLgVa95WjHJRulNtC3QTJJ90UDoQLP6kAml4VlUoiB
         znonuJy3hotbyooytwwBSvNVo8Oa/Xs4H50gNP0Sm4GLdWone9IfnV746MbYAW09ZH2d
         dVEA==
X-Forwarded-Encrypted: i=1; AJvYcCUHNA9/k3+7pb0hATuuw7D0/sezgSoHMS9/ZJJWuwfHtHr4OnczcBoScH8sP9X3U7BNrQFuEb9+WEzEA4z6pbtneYzg66JmVKsbOK1p6XQ=
X-Gm-Message-State: AOJu0YyAAHlC7rfLQhT5tOoC7ykcW6IEp4RMxY56S3s5EQeBMGGLjK4g
	ziVNHcAruYSEz0eRYnO6++0hrfr3IRXoPKA2oX7zlZrfPr6MQ8cPj58MQglGNQ==
X-Google-Smtp-Source: AGHT+IEEkse3/CFRrR8yE7PdeVYpA5Dwaniutvuq9TWjOBUqLeowr+5wa9BSxC5S8BkSeIIwpJh9WQ==
X-Received: by 2002:a2e:8687:0:b0:2ec:4d48:75f3 with SMTP id 38308e7fff4ca-2ee5e6f4bb6mr67590391fa.45.1720019241630;
        Wed, 03 Jul 2024 08:07:21 -0700 (PDT)
Message-ID: <0f883617-f4c0-43af-895f-3f70d4143a34@suse.com>
Date: Wed, 3 Jul 2024 17:07:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/2] x86/cpufreq: move ACPI cpufreq driver into
 separate file
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1719832871.git.Sergiy_Kibrik@epam.com>
 <d8a13eb8c53d8cde99d7fa1d8e4fce2a597f02fd.1719832871.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d8a13eb8c53d8cde99d7fa1d8e4fce2a597f02fd.1719832871.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 14:03, Sergiy Kibrik wrote:
> Separate ACPI driver from generic initialization cpufreq code.
> This way acpi-cpufreq can become optional in the future and be disabled
> from non-Intel builds.
> 
> Other than acpi_register_driver() helper added and clean up a list of
> included headers no changes to code were introduced.

And perhaps that's okay despite the many style violations that you move
around. However, acpi_register_driver() is too generic a name. How
about acpi_cpufreq_register() (not not have it grow overly long)? Plus

> --- /dev/null
> +++ b/xen/arch/x86/acpi/cpufreq/acpi.c
> @@ -0,0 +1,622 @@
> +/*
> + *  cpufreq.c - ACPI Processor P-States Driver ($Revision: 1.4 $)
> + *
> + *  Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
> + *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
> + *  Copyright (C) 2002 - 2004 Dominik Brodowski <linux@brodo.de>
> + *  Copyright (C) 2006        Denis Sadykov <denis.m.sadykov@intel.com>
> + *
> + *  Feb 2008 - Liu Jinsong <jinsong.liu@intel.com>
> + *      porting acpi-cpufreq.c from Linux 2.6.23 to Xen hypervisor
> + *
> + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> + *
> + *  This program is free software; you can redistribute it and/or modify
> + *  it under the terms of the GNU General Public License as published by
> + *  the Free Software Foundation; either version 2 of the License, or (at
> + *  your option) any later version.
> + *
> + *  This program is distributed in the hope that it will be useful, but
> + *  WITHOUT ANY WARRANTY; without even the implied warranty of
> + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + *  General Public License for more details.
> + *
> + *  You should have received a copy of the GNU General Public License along
> + *  with this program; If not, see <http://www.gnu.org/licenses/>.
> + *
> + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> + */

... I expect this should be transformed into an SPDX line. I expect the
one in cpufreq.c wasn't picked up when the conversion was done because
it doesn't fully match whatever pattern was looked for at the time.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 15:09:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 15:09:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753191.1161484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP1cK-00029B-Tg; Wed, 03 Jul 2024 15:09:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753191.1161484; Wed, 03 Jul 2024 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 1sP1cK-000294-R2; Wed, 03 Jul 2024 15:09:56 +0000
Received: by outflank-mailman (input) for mailman id 753191;
 Wed, 03 Jul 2024 15:09: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=i9qc=OD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sP1cJ-00028y-AO
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 15:09:55 +0000
Received: from mail-qv1-xf2a.google.com (mail-qv1-xf2a.google.com
 [2607:f8b0:4864:20::f2a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c9db59d-394e-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 17:09:53 +0200 (CEST)
Received: by mail-qv1-xf2a.google.com with SMTP id
 6a1803df08f44-6b4fced5999so25169626d6.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 08:09:53 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b5dd211482sm11258236d6.103.2024.07.03.08.09.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 08:09: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: 4c9db59d-394e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720019392; x=1720624192; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yK65ezmHxIY1GHr6MrXhbA9wVpwufgowh9NaOjJJJbI=;
        b=t3pvnJFbCPGlyIvLgFrguJx/D/8S5YGyw+nVqFP2vf8gaWr+PtgPUxQIycZg6yEOzC
         UU7G+Afruj3QNkdHS1ZZq1qg7SiKz92G6Fx0nhw8tV2GMqYBSzl5IpWiieGpdSbkbbLu
         X/AAImhsOYMd+M0UXfssxlpdjMuxTW1mthCHQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720019392; x=1720624192;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yK65ezmHxIY1GHr6MrXhbA9wVpwufgowh9NaOjJJJbI=;
        b=qCBrNPB7PH8xDnV2/vMQHjZzv912CARSZga9ggbJ8HMGP4UGLEYpuUrHV2OENBozyh
         TP7tgkSHxUJsSSylJ5DmCAoplujNJnANQTMX/ntq285nxbDlx9/exI3iK4Q8PoyAsFAE
         dsU1+TNvQYhWd4yCBhY5iSpqFBFGQjTKYOMwQt4Yca6mcGsp6TKxQCw+yRTJWaK+lTm4
         DzXu2WnNrs2HK47Xw70DwGOUqdhj5+8qk+P9YSk1HnI3H1xZ1IuVeC/g7JbB/CLszRSZ
         XYcq5e5oWXy4gF6AYNBZPaARMYK2KMpha7X8LO5sW5XDA3VxKllAF/w5GXdRa1t9MeKY
         NYrg==
X-Gm-Message-State: AOJu0YzhZfQZKBIA2R+oXxFx6aB7Ei0YahxGsb6ltbfXgYDlGplo4/wR
	0+pc42sDe3WVd/0gvQhR9UKWjhW9m7RLax2u77CGnoS9E4PK7xQRLjB3uIT+hxk=
X-Google-Smtp-Source: AGHT+IFz2tdlqXADkfHdv1B1Bxgvb3kLvCXt7eGqWh4SU+5YVMNtRflkzKIl5qXBGEBF/yGcOREt2g==
X-Received: by 2002:a05:6214:518c:b0:6b0:6d7c:da02 with SMTP id 6a1803df08f44-6b5b707fff9mr143945796d6.11.1720019391983;
        Wed, 03 Jul 2024 08:09:51 -0700 (PDT)
Message-ID: <b10061e7-1bf7-4bac-83d9-fe621cbad65a@citrix.com>
Date: Wed, 3 Jul 2024 16:09:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 4/4] CI: Rework the CentOS7 container
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
 <20240703142002.1662874-5-andrew.cooper3@citrix.com>
 <ZoVmSWt9bwxDNMuF@macbook.local>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZoVmSWt9bwxDNMuF@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/07/2024 3:55 pm, Roger Pau Monné wrote:
> On Wed, Jul 03, 2024 at 03:20:02PM +0100, Andrew Cooper wrote:
>> CentOS 7 is fully End-of-life as of 2024-06-30, and the Yum repo configuration
>> points at URLs which have become non-existent.
>>
>> First, start by using a heredoc RUN for legibility.  It's important to use
>> `set -e` to offset the fact that we're no longer chaining every command
>> together with an &&.
>>
>> Also, because we're using a single RUN command to perform all RPM operations,
>> we no longer need to work around the OverlayFS bug.
>>
>> Adjust the CentOS-*.repo files to point at vault.centos.org.
>>
>> Take the opportunity to split the Xen deps from Tools deps, and to adjust the
>> other packages we use:
>>
>>  * We need bzip2-devel for the dombuilder, not just bzip2.
>>  * zstd-devel is another optional dependency since the last time this package
>>    list was refreshed.
>>  * openssl-devel hasn't been a dependency since Xen 4.6.
>>  * We long ago ceased being able to build Qemu and SeaBIOS in this container,
>>    so drop their dependencies too.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Roger Pau Monné <roiger.pau@citrix.com>

Thanks.

>
>> ---
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Doug Goldstein <cardoe@cardoe.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>>  automation/build/centos/7.dockerfile | 70 +++++++++++++++-------------
>>  1 file changed, 37 insertions(+), 33 deletions(-)
>>
>> diff --git a/automation/build/centos/7.dockerfile b/automation/build/centos/7.dockerfile
>> index 657550f308bb..9e66d72a5bd5 100644
>> --- a/automation/build/centos/7.dockerfile
>> +++ b/automation/build/centos/7.dockerfile
>> @@ -6,44 +6,48 @@ LABEL maintainer.name="The Xen Project" \
>>  RUN mkdir /build
>>  WORKDIR /build
>>  
>> -# work around https://github.com/moby/moby/issues/10180
>> -# and add EPEL for dev86
>> -RUN rpm --rebuilddb && \
>> -    yum -y install \
>> -        yum-plugin-ovl \
>> -        epel-release \
>> -    && yum clean all && \
>> -    rm -rf /var/cache/yum
>> +RUN <<EOF
>> +    set -e
>> +
>> +    # Fix up Yum config now that mirror.centos.org doesn't exist
>> +    sed -e 's/mirror.centos.org/vault.centos.org/g' \
>> +        -e 's/^#.*baseurl=https\?/baseurl=https/g' \
>> +        -e 's/^mirrorlist=https\?/#mirrorlist=https/g' \
> Why do you also need to uncomment baseurl and comment mirrorlist?
> Isn't baseurl already enabled, and having extra mirrorlist won't harm
> as it's just extra location to search for packages? (IOW: even if they
> don't exist it shouldn't be an issue).

It appears that having an uncontactable mirror list, as opposed to no
mirror list, is fatal.

I didn't end up with this because I like the look of the sed expression.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 15:14:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 15:14:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753201.1161494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP1ge-0004Lw-Dw; Wed, 03 Jul 2024 15:14:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753201.1161494; Wed, 03 Jul 2024 15:14: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 1sP1ge-0004Lp-BB; Wed, 03 Jul 2024 15:14:24 +0000
Received: by outflank-mailman (input) for mailman id 753201;
 Wed, 03 Jul 2024 15:14: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=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sP1gc-0004Lh-Lq
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 15:14:22 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec0993b2-394e-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 17:14:20 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52e9c55febcso226861e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 08:14: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
 41be03b00d2f7-72c6c8ec943sm8204317a12.69.2024.07.03.08.14.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 08:14: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: ec0993b2-394e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720019660; x=1720624460; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3bJfYb8w6yDf1yhEaKYVhazCPpRHCVXEXDnVqm3Gb9Y=;
        b=TUod8/gIeuxOymhHm6HjbXJdcN0BD+H+pGJJmZuerVFGIqDJPm1czGVjIJgn8b6uef
         bya1W4kKQFFrBlRy9rqaviDoeWIqFqDIEVkbrsJeCAKrlDy6rcICUQjjdhW3uoTRE9G5
         nprcno3ILqSCeP7V7o2YZUtYyAN8wRbKrzoFSDFo/2l02LGUbaaRuumkvFbc8lYoj3OO
         QbHWIhEbDZ3h8iunkbeec3Ms2OYtLBVth16U4oQtKy+dGkHvcYLzlZsPX4czb60bb0da
         XRp7fR7TOY16hKBF96J+iqI06IMFrhw+RenVgxMZ9Dp5t9MZgFtyFAUUb+zLzoEBHoY2
         H1rA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720019660; x=1720624460;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3bJfYb8w6yDf1yhEaKYVhazCPpRHCVXEXDnVqm3Gb9Y=;
        b=lkhDnsr2ZkRyhvaxOg9ZoDO+CD096IeM1YYgwL7qf7tgwLttUeD+JL9y9xJKoXDezc
         UzJMq7dQhMsjosunvABFLFfbpZPLmrNK6Iv/vc3PLE+CspZbT8GcTtNHx3cYMXQ5/u4i
         iG0COC5epedPmq5jdGOs4DvsFCI5qs2D3J7hqsTM5h1V8Xzaw7BGGTmPdCUApY+jtYwg
         g5Wzpm2irmQM90gPsLDmlxR5wh6V/QOoemTaqxAsRhcsUnGSjRJLKBY+XuPG+vKlb94v
         pr6DufsS35TuxO7eWg7pS0qRlgLgBh1RtRvL9KlfzXZ9Jt8Uj0SfRwTlEN8g0FXzweMi
         by2A==
X-Forwarded-Encrypted: i=1; AJvYcCXNef49qkV9LU9/5BZ7bUfrQhx/HChe8FRgQBdWYLd0gDPFxdQOuuKs1DAxwJnRP9ow/FyrmfTChSm6wy43gCr8qIZKT0x/FTGHAvAYN84=
X-Gm-Message-State: AOJu0Yy6uAlKld/WCQ7/5mPgfItGS/iBX7ynCDFT9IlXGNHpeceqd2VN
	u17NvLcEF87gcLCCSblGma9by4U2xd+XfJVXpJ0SCxqK9/TzfmQyKiBf7n8SLw==
X-Google-Smtp-Source: AGHT+IHjPQPkL0ONNKuSRBx+eq/OXAyLqGYo+xSIik/LF1eqrxDRzhb/WfCHxS6j/LendR5ALIyAeQ==
X-Received: by 2002:a05:6512:1384:b0:52c:86d6:e8d7 with SMTP id 2adb3069b0e04-52e8264733dmr9091385e87.13.1720019659719;
        Wed, 03 Jul 2024 08:14:19 -0700 (PDT)
Message-ID: <22cd30f6-3a66-4dc7-8805-86a6daad5700@suse.com>
Date: Wed, 3 Jul 2024 17:14:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 2/2] x86/cpufreq: separate powernow/hwp/acpi
 cpufreq code
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1719832871.git.Sergiy_Kibrik@epam.com>
 <0f6e8a602fb3106d6b064582ca50d3d5fd4f1174.1719832871.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0f6e8a602fb3106d6b064582ca50d3d5fd4f1174.1719832871.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 14:19, Sergiy Kibrik wrote:
> --- a/xen/drivers/acpi/pmstat.c
> +++ b/xen/drivers/acpi/pmstat.c
> @@ -255,7 +255,7 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
>          strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
>  
>      if ( !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
> -                      CPUFREQ_NAME_LEN) )
> +                      CPUFREQ_NAME_LEN) && IS_ENABLED(CONFIG_INTEL) )

Wrapping like this is confusing, not just because of the flawed indentation.
Please can this be

    if ( !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
                  CPUFREQ_NAME_LEN) &&
         IS_ENABLED(CONFIG_INTEL) )

? Perhaps the IS_ENABLED() would also better be first (not just here).

> --- a/xen/drivers/cpufreq/utility.c
> +++ b/xen/drivers/cpufreq/utility.c
> @@ -379,7 +379,7 @@ int cpufreq_driver_getavg(unsigned int cpu, unsigned int flag)
>      if (!cpu_online(cpu) || !(policy = per_cpu(cpufreq_cpu_policy, cpu)))
>          return 0;
>  
> -    freq_avg = get_measured_perf(cpu, flag);
> +    freq_avg = IS_ENABLED(CONFIG_INTEL) ? get_measured_perf(cpu, flag) : 0;
>      if ( freq_avg > 0 )
>          return freq_avg;

Why is this? APERF/MPERF aren't Intel-only MSRs.

> --- a/xen/include/acpi/cpufreq/cpufreq.h
> +++ b/xen/include/acpi/cpufreq/cpufreq.h
> @@ -254,11 +254,20 @@ void intel_feature_detect(struct cpufreq_policy *policy);
>  
>  int hwp_cmdline_parse(const char *s, const char *e);
>  int hwp_register_driver(void);
> +#ifdef CONFIG_INTEL
>  bool hwp_active(void);
> +#else
> +static inline bool hwp_active(void)
> +{
> +    return false;
> +}
> +#endif
> +
>  int get_hwp_para(unsigned int cpu,
>                   struct xen_cppc_para *cppc_para);
>  int set_hwp_para(struct cpufreq_policy *policy,
>                   struct xen_set_cppc_para *set_cppc);
>  
>  int acpi_register_driver(void);
> +
>  #endif /* __XEN_CPUFREQ_PM_H__ */

Nit: This adding of a blank line should be part of the earlier patch.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 15:56:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 15:56:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753250.1161504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP2Ks-0003eL-Kz; Wed, 03 Jul 2024 15:55:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753250.1161504; Wed, 03 Jul 2024 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 1sP2Ks-0003eE-H8; Wed, 03 Jul 2024 15:55:58 +0000
Received: by outflank-mailman (input) for mailman id 753250;
 Wed, 03 Jul 2024 15:55:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NzTd=OD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sP2Kr-0003e8-G5
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 15:55:57 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id baa99186-3954-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 17:55:54 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ebeefb9a7fso62151891fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 08:55: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
 41be03b00d2f7-72c6afb9042sm8389229a12.41.2024.07.03.08.55.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 08:55: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: baa99186-3954-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720022154; x=1720626954; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9jRKi/7D5k0UycUtsttL79RUViaaP6QUxMZOrxjXXx8=;
        b=FEMRlDnxHaDBPtbvoaJOibO7D86sMgmrmK7gXeqGnmlhKpgP5iJ7uj6wMsDtIRGt/c
         b1yLCOZHV1iqCDVsEdhCG/jOP7F5G/wijnSxuxxcxFxCl4u7FXMNqLfvAUSl39t+Sct3
         5A7SRipGAfzse7T5EI4ufnID6kEHAoUTundYuRIC1kUqxzc0Xsu/nxFiN5BvaXhayUWX
         PPsoI5tlydBAYC3rt2JP9E+C20U/Cb4dSN9WnP0lyXk7Fw9LIZNly8si6mpyVqacjd/x
         iekaQRnaUGhpg9cyIoKU7w+hd5loL4aRO63AlR6Q+c5hHbqwtEjv/m8sI3iFBkX9nHo9
         GCeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720022154; x=1720626954;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9jRKi/7D5k0UycUtsttL79RUViaaP6QUxMZOrxjXXx8=;
        b=hoCTjyRGgDZVhixeHiu72fnUmeRvXjSloHtlYxZnvItrvrO4gKVkI+oTudZdkBqToi
         zUN8jeEKvUNKmHGp54w1dxYZ8zUtaMrhhw9wIpkQFKjeX8Esv8fpHUzi/Tu2hqKCt7Zr
         0AaAKzXGrOwSerk5l4/8bwMsGhaHmCbkJod19wBjFkizeooNb+hsgxlOwLe6gyo8cwBK
         FRP+fCK842zHvS7VTnhdpCk+C4Q/rEaC3i7KVmm5pdkybOeaAofLDQXwEGcF+RGUl0P4
         26RzyNFv9M4+3utSK9bt4228bpgt39vcyX9Hy9aCgexK+8SlQZT8AJIbxkRwlMiBbsvO
         2TbQ==
X-Forwarded-Encrypted: i=1; AJvYcCWVT2tLbJNzulykWc3RFnvte+ujhmc9XfegF35weq4dsO+O54ZPEnqNcbYI9w3IiQh62HMjnZnMmhsv+SwmBpIDCTjNicmbBmv7oy7Vbjc=
X-Gm-Message-State: AOJu0YzAyQGGgk0+cWlvOVDwp8dA0Y1YFbgbnjZXZ0l2GQoq5wc2tmmT
	8h8C7kPRHVaFGujY1D67P2K2MP1nPxY9WM5jeYEsobdGv07vFaYbg7v6Gezx9Q==
X-Google-Smtp-Source: AGHT+IHw/U/NmqxumJFzHOhF2AIQCC74UKmma89mbyb1qi6sjsqH2CCoqrVkO1dRwL9Lub927GYlVA==
X-Received: by 2002:a2e:be95:0:b0:2eb:e634:fee6 with SMTP id 38308e7fff4ca-2ee5e39e57cmr93401381fa.18.1720022153700;
        Wed, 03 Jul 2024 08:55:53 -0700 (PDT)
Message-ID: <0481c78f-ccad-4c65-b104-6b787b79f1d8@suse.com>
Date: Wed, 3 Jul 2024 17:55:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/riscv: PE/COFF image header for RISC-V target
To: Milan Djokic <milandjokic1995@gmail.com>
Cc: milan.djokic@rt-rk.com, Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Nikola Jelic <nikola.jelic@rt-rk.com>,
 xen-devel@lists.xenproject.org, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <2bbb65fcda57f2609f0967f9050a91415059026c.1719942341.git.milan.djokic@rt-rk.com>
 <21a1bbe9308b72eac6d218235f5211c7a1c90454.1719964980.git.milan.djokic@rt-rk.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <21a1bbe9308b72eac6d218235f5211c7a1c90454.1719964980.git.milan.djokic@rt-rk.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.07.2024 02:04, Milan Djokic wrote:
> Added riscv image header to enable boot from second stage bootloaders (e.g. uboot. Image header defined in riscv-image-header.h)
> Additionally, RISC-V xen image is extended with PE/COFF headers, introducing EFI application format.
> PE/COFF header is optionally included (with CONFIG_RISCV_EFI) so
> both plain ELF and image with PE/COFF header can now be generated as build artifacts.
> Note that this patch represents initial EFI application format support (image
> contains EFI application header embeded into binary when CONFIG_RISCV_EFI
> is enabled). For full EFI application Xen support, boot/runtime services
> and system table handling are yet to be implemented.

So, first: Please Cc all applicable maintainers. It would probably be prudent
to also Cc Oleksii, who's doing most of the RISC-V work now (but Oleksii,
please correct me if you don't want to be Cc-ed).

With Oleksii in the audience, second: I tink I've seen that in binutils work
is being done to actually allow to create EFI applications "properly" for
RISC-V. Was it firmly determined that you/we do not want to go that route?

> --- a/xen/arch/riscv/Kconfig
> +++ b/xen/arch/riscv/Kconfig
> @@ -9,6 +9,16 @@ config ARCH_DEFCONFIG
>  	string
>  	default "arch/riscv/configs/tiny64_defconfig"
>  
> +config RISCV_EFI
> +	bool "UEFI boot service support"
> +	depends on RISCV_64 && RISCV_ISA_C
> +	help
> +	  This option provides support for boot services through
> +	  UEFI firmware. A UEFI stub is provided to allow Xen to
> +	  be booted as an EFI application. Currently, only EFI PE/COFF application
> +	  header is included into RISC-V image. Boot/Runtime services as part
> +	  of EFI application stub are yet to be implemented.

The first sentence in particular worries me. What it says is basically all
taken back by what follows. I think this help text wants reducing to a
minimum, andthen wants replacing once proper EFI support is in place.

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/riscv-image-header.h
> @@ -0,0 +1,57 @@
> +#ifndef _ASM_RISCV_IMAGE_H
> +#define _ASM_RISCV_IMAGE_H
> +
> +#define RISCV_IMAGE_MAGIC  "RISCV\0\0\0"
> +#define RISCV_IMAGE_MAGIC2 "RSC\x05"
> +
> +#define RISCV_IMAGE_FLAG_BE_SHIFT 0
> +
> +#define RISCV_IMAGE_FLAG_LE 0
> +#define RISCV_IMAGE_FLAG_BE 1
> +
> +#define __HEAD_FLAG_BE RISCV_IMAGE_FLAG_LE
> +
> +#define __HEAD_FLAG(field)                                                     \
> +    (__HEAD_FLAG_##field << RISCV_IMAGE_FLAG_##field##_SHIFT)

Nit: Generally we treat ## as a binary operator, too. Which means it also
wants to be surrounded by blanks.

> +#define __HEAD_FLAGS (__HEAD_FLAG(BE))

Nit: The outer pair of parentheses isn't needed here, is it?

> +#define RISCV_HEADER_VERSION_MAJOR 0
> +#define RISCV_HEADER_VERSION_MINOR 2
> +
> +#define RISCV_HEADER_VERSION                                                   \
> +    (RISCV_HEADER_VERSION_MAJOR << 16 | RISCV_HEADER_VERSION_MINOR)

Nit: Please parenthesize the << against the |.

> --- /dev/null
> +++ b/xen/arch/riscv/riscv64/efi-header.S
> @@ -0,0 +1,99 @@
> +#include <efi/pe.h>
> +#include <xen/sizes.h>
> +
> +        .macro __EFI_PE_HEADER
> +        .long PE_MAGIC
> +coff_header:
> +#ifdef CONFIG_RISCV_64
> +        .short  IMAGE_FILE_MACHINE_RISCV64              /* Machine */
> +#else
> +        .short  IMAGE_FILE_MACHINE_RISCV32              /* Machine */
> +#endif
> +        .short  section_count                           /* NumberOfSections */
> +        .long   0                                       /* TimeDateStamp */
> +        .long   0                                       /* PointerToSymbolTable */
> +        .long   0                                       /* NumberOfSymbols */
> +        .short  section_table - optional_header         /* SizeOfOptionalHeader */
> +        .short  IMAGE_FILE_DEBUG_STRIPPED | \
> +                IMAGE_FILE_EXECUTABLE_IMAGE | \
> +                IMAGE_FILE_LINE_NUMS_STRIPPED           /* Characteristics */
> +
> +optional_header:
> +#ifdef CONFIG_RISCV_64
> +        .short  PE_OPT_MAGIC_PE32PLUS                   /* PE32+ format */
> +#else
> +        .short  PE_OPT_MAGIC_PE32                       /* PE32 format */
> +#endif
> +        .byte   0x02                                    /* MajorLinkerVersion */
> +        .byte   0x14                                    /* MinorLinkerVersion */
> +        .long   _end - xen_start                        /* SizeOfCode */
> +        .long   0                                       /* SizeOfInitializedData */
> +        .long   0                                       /* SizeOfUninitializedData */
> +        .long   0                                       /* AddressOfEntryPoint */
> +        .long   xen_start - _start                      /* BaseOfCode */
> +#ifdef CONFIG_RISCV_32
> +        .long  _end - _start                            /* BaseOfData */
> +#endif

As requested before, the decision to represent all of .text/.data/.bss
as code (with no data at all) wants explaining in a (possibly brief)
comment.

> +extra_header_fields:
> +        .quad   0                                       /* ImageBase */
> +        .long   PECOFF_SECTION_ALIGNMENT                /* SectionAlignment */
> +        .long   PECOFF_FILE_ALIGNMENT                   /* FileAlignment */
> +        .short  0                                       /* MajorOperatingSystemVersion */
> +        .short  0                                       /* MinorOperatingSystemVersion */
> +        .short  LINUX_EFISTUB_MAJOR_VERSION             /* MajorImageVersion */
> +        .short  LINUX_EFISTUB_MINOR_VERSION             /* MinorImageVersion */
> +        .short  0                                       /* MajorSubsystemVersion */
> +        .short  0                                       /* MinorSubsystemVersion */
> +        .long   0                                       /* Win32VersionValue */
> +        .long   _end - _start                           /* SizeOfImage */
> +
> +        /* Everything before the xen image is considered part of the header */
> +        .long   xen_start - _start                      /* SizeOfHeaders */
> +        .long   0                                       /* CheckSum */
> +        .short  IMAGE_SUBSYSTEM_EFI_APPLICATION         /* Subsystem */
> +        .short  0                                       /* DllCharacteristics */
> +        .quad   0                                       /* SizeOfStackReserve */
> +        .quad   0                                       /* SizeOfStackCommit */
> +        .quad   0                                       /* SizeOfHeapReserve */
> +        .quad   0                                       /* SizeOfHeapCommit */
> +        .long   0                                       /* LoaderFlags */
> +        .long   (section_table - .) / 8                 /* NumberOfRvaAndSizes */
> +        /*
> +         * Data directories are not used in this case, therefore not defined to reduce header size.
> +         */
> +
> +        /* Section table */
> +section_table:
> +        /* Currently code/data sections are not used since EFI stub implementation is not yet finalized */
> +        .ascii  ".text\0\0\0"
> +        .long   0                                       /* VirtualSize */
> +        .long   0                                       /* VirtualAddress */
> +        .long   0                                       /* SizeOfRawData */
> +        .long   0                                       /* PointerToRawData */
> +        .long   0                                       /* PointerToRelocations */
> +        .long   0                                       /* PointerToLineNumbers */
> +        .short  0                                       /* NumberOfRelocations */
> +        .short  0                                       /* NumberOfLineNumbers */
> +        .long   IMAGE_SCN_CNT_CODE | \
> +                IMAGE_SCN_MEM_READ | \
> +                IMAGE_SCN_MEM_EXECUTE                   /* Characteristics */
> +
> +        .ascii  ".data\0\0\0"
> +        .long   0                                       /* VirtualSize */
> +        .long   0                                       /* VirtualAddress */
> +        .long   0                                       /* SizeOfRawData */
> +        .long   0                                       /* PointerToRawData */
> +        .long   0                                       /* PointerToRelocations */
> +        .long   0                                       /* PointerToLineNumbers */
> +        .short  0                                       /* NumberOfRelocations */
> +        .short  0                                       /* NumberOfLineNumbers */
> +        .long   IMAGE_SCN_CNT_INITIALIZED_DATA | \
> +                IMAGE_SCN_MEM_READ | \
> +                IMAGE_SCN_MEM_WRITE                    /* Characteristics */
> +
> +        .set    section_count, (. - section_table) / 40
> +
> +        .balign  0x1000
> +efi_header_end:
> +        .endm
> \ No newline at end of file

Please take care of this.

> --- a/xen/arch/riscv/riscv64/head.S
> +++ b/xen/arch/riscv/riscv64/head.S
> @@ -1,14 +1,54 @@
>  #include <asm/asm.h>
>  #include <asm/riscv_encoding.h>
> +#include <asm/riscv-image-header.h>
> +#ifdef CONFIG_RISCV_EFI
> +#include "efi-header.S"
> +#endif
>  
>          .section .text.header, "ax", %progbits
> -
>          /*

I see no reason for removing this blank line.

>           * OpenSBI pass to start():
>           *   a0 -> hart_id ( bootcpu_id )
> -         *   a1 -> dtb_base 
> +         *   a1 -> dtb_base
>           */
>  FUNC(start)
> +/* Image header expected by second stage bootloaders (format defined in asm/riscv-image-header.h) */

Nit: Overlong line (and not the only one).

> +#ifdef CONFIG_RISCV_EFI
> +        /*
> +         * This instruction decodes to "MZ" ASCII required by UEFI.
> +         */
> +        c.li s4,-13
> +        c.j xen_start
> +#else
> +        /* jump to start kernel */
> +        jal xen_start

JAL, not J? Why?

> +#endif
> +        .balign 8

This won't do what you want unless "start" itself is also suitably aligned.
It'll be as long as it's first in the section, but better make such explicit.

> +#ifdef CONFIG_RISCV_64
> +        /* Image load offset(2MB) from start of RAM */
> +        .quad 0x200000
> +#else
> +        /* Image load offset(4MB) from start of RAM */
> +        .quad 0x400000
> +#endif

What these constants derive from? I expect they aren't really "magic".

> +        .quad _end - _start              /* Effective Image size */
> +        .quad __HEAD_FLAGS
> +        .long RISCV_HEADER_VERSION

In the C struct this is a 64-bit field. Why .long here? Or perhaps the C
struct is wrong, actually also leaving unspecified padding there after
...

> +        .long 0                          /* reserved */

... this field then.

> +        .quad 0                          /* reserved */
> +        .ascii RISCV_IMAGE_MAGIC         /* Magic number (RISC-V specific; deprecated) */
> +        .balign 4

RISCV_IMAGE_MAGIC is already nul-padded to 8 bytes. I therefore find
the .balign here somewhat confusing.

> +        .ascii RISCV_IMAGE_MAGIC2        /* Magic number 2 (to match the ARM64 'magic' field pos) */
> +#ifdef CONFIG_RISCV_EFI
> +        .long pe_head_start - _start     /* reserved (PE COFF offset) */
> +pe_head_start:
> +
> +        __EFI_PE_HEADER

Using a macro for a single, simple purpose is somewhat unexpected.
Can't you simply

#include "efi-header.S"

here? That would also make it more straightforward to find the use /
purpose of that file.

> +#else
> +        .long 0                          /* 0 means no PE header. */
> +#endif
> +
> +xen_start:
>          /* Mask all interrupts */
>          csrw    CSR_SIE, zero
>  
> @@ -60,6 +100,7 @@ FUNC(start)
>          mv      a1, s1
>  
>          tail    start_xen
> +
>  END(start)
>  
>          .section .text, "ax", %progbits

What is this hunk about?

> --- a/xen/arch/riscv/xen.lds.S
> +++ b/xen/arch/riscv/xen.lds.S
> @@ -12,6 +12,9 @@ PHDRS
>  #endif
>  }
>  
> +PECOFF_SECTION_ALIGNMENT = 0x1000;
> +PECOFF_FILE_ALIGNMENT = 0x200;

What are these about? I see you use them in efi-header.S, but why do
they need supplying from the linker script?

> --- /dev/null
> +++ b/xen/include/efi/pe.h
> @@ -0,0 +1,458 @@
> +#ifndef __PE_H

This probably wants (needs?) to gain an SPDX line.

> +#define __PE_H
> +
> +/*
> + * Linux EFI stub v1.0 adds the following functionality:
> + * - Loading initrd from the LINUX_EFI_INITRD_MEDIA_GUID device path,
> + * - Loading/starting the kernel from firmware that targets a different
> + *   machine type, via the entrypoint exposed in the .compat PE/COFF section.
> + *
> + * The recommended way of loading and starting v1.0 or later kernels is to use
> + * the LoadImage() and StartImage() EFI boot services, and expose the initrd
> + * via the LINUX_EFI_INITRD_MEDIA_GUID device path.
> + *
> + * Versions older than v1.0 support initrd loading via the image load options
> + * (using initrd=, limited to the volume from which the kernel itself was
> + * loaded), or via arch specific means (bootparams, DT, etc).
> + *
> + * On x86, LoadImage() and StartImage() can be omitted if the EFI handover
> + * protocol is implemented, which can be inferred from the version,
> + * handover_offset and xloadflags fields in the bootparams structure.
> + */
> +#define LINUX_EFISTUB_MAJOR_VERSION 0x1
> +#define LINUX_EFISTUB_MINOR_VERSION 0x0
> +
> +#define MZ_MAGIC 0x5a4d /* "MZ" */
> +
> +#define PE_MAGIC              0x00004550 /* "PE\0\0" */
> +#define PE_OPT_MAGIC_PE32     0x010b
> +#define PE_OPT_MAGIC_PE32_ROM 0x0107
> +#define PE_OPT_MAGIC_PE32PLUS 0x020b
> +
> +/* machine type */
> +#define IMAGE_FILE_MACHINE_UNKNOWN   0x0000
> +#define IMAGE_FILE_MACHINE_AM33      0x01d3
> +#define IMAGE_FILE_MACHINE_AMD64     0x8664
> +#define IMAGE_FILE_MACHINE_ARM       0x01c0
> +#define IMAGE_FILE_MACHINE_ARMV7     0x01c4
> +#define IMAGE_FILE_MACHINE_ARM64     0xaa64
> +#define IMAGE_FILE_MACHINE_EBC       0x0ebc
> +#define IMAGE_FILE_MACHINE_I386      0x014c
> +#define IMAGE_FILE_MACHINE_IA64      0x0200
> +#define IMAGE_FILE_MACHINE_M32R      0x9041
> +#define IMAGE_FILE_MACHINE_MIPS16    0x0266
> +#define IMAGE_FILE_MACHINE_MIPSFPU   0x0366
> +#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
> +#define IMAGE_FILE_MACHINE_POWERPC   0x01f0
> +#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1
> +#define IMAGE_FILE_MACHINE_R4000     0x0166
> +#define IMAGE_FILE_MACHINE_RISCV32   0x5032
> +#define IMAGE_FILE_MACHINE_RISCV64   0x5064
> +#define IMAGE_FILE_MACHINE_RISCV128  0x5128
> +#define IMAGE_FILE_MACHINE_SH3       0x01a2
> +#define IMAGE_FILE_MACHINE_SH3DSP    0x01a3
> +#define IMAGE_FILE_MACHINE_SH3E      0x01a4
> +#define IMAGE_FILE_MACHINE_SH4       0x01a6
> +#define IMAGE_FILE_MACHINE_SH5       0x01a8
> +#define IMAGE_FILE_MACHINE_THUMB     0x01c2
> +#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
> +
> +/* flags */
> +#define IMAGE_FILE_RELOCS_STRIPPED         0x0001
> +#define IMAGE_FILE_EXECUTABLE_IMAGE        0x0002
> +#define IMAGE_FILE_LINE_NUMS_STRIPPED      0x0004
> +#define IMAGE_FILE_LOCAL_SYMS_STRIPPED     0x0008
> +#define IMAGE_FILE_AGGRESSIVE_WS_TRIM      0x0010
> +#define IMAGE_FILE_LARGE_ADDRESS_AWARE     0x0020
> +#define IMAGE_FILE_16BIT_MACHINE           0x0040
> +#define IMAGE_FILE_BYTES_REVERSED_LO       0x0080
> +#define IMAGE_FILE_32BIT_MACHINE           0x0100
> +#define IMAGE_FILE_DEBUG_STRIPPED          0x0200
> +#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
> +#define IMAGE_FILE_NET_RUN_FROM_SWAP       0x0800
> +#define IMAGE_FILE_SYSTEM                  0x1000
> +#define IMAGE_FILE_DLL                     0x2000
> +#define IMAGE_FILE_UP_SYSTEM_ONLY          0x4000
> +#define IMAGE_FILE_BYTES_REVERSED_HI       0x8000
> +
> +#define IMAGE_FILE_OPT_ROM_MAGIC       0x107
> +#define IMAGE_FILE_OPT_PE32_MAGIC      0x10b
> +#define IMAGE_FILE_OPT_PE32_PLUS_MAGIC 0x20b
> +
> +#define IMAGE_SUBSYSTEM_UNKNOWN                 0
> +#define IMAGE_SUBSYSTEM_NATIVE                  1
> +#define IMAGE_SUBSYSTEM_WINDOWS_GUI             2
> +#define IMAGE_SUBSYSTEM_WINDOWS_CUI             3
> +#define IMAGE_SUBSYSTEM_POSIX_CUI               7
> +#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI          9
> +#define IMAGE_SUBSYSTEM_EFI_APPLICATION         10
> +#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
> +#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
> +#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE           13
> +#define IMAGE_SUBSYSTEM_XBOX                    14
> +
> +#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         0x0040
> +#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      0x0080
> +#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            0x0100
> +#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          0x0200
> +#define IMAGE_DLLCHARACTERISTICS_NO_SEH                0x0400
> +#define IMAGE_DLLCHARACTERISTICS_NO_BIND               0x0800
> +#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            0x2000
> +#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
> +
> +/* they actually defined 0x00000000 as well, but I think we'll skip that one. */
> +#define IMAGE_SCN_RESERVED_0             0x00000001
> +#define IMAGE_SCN_RESERVED_1             0x00000002
> +#define IMAGE_SCN_RESERVED_2             0x00000004
> +#define IMAGE_SCN_TYPE_NO_PAD            0x00000008 /* don't pad - obsolete */
> +#define IMAGE_SCN_RESERVED_3             0x00000010
> +#define IMAGE_SCN_CNT_CODE               0x00000020 /* .text */
> +#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040 /* .data */
> +#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* .bss */
> +#define IMAGE_SCN_LNK_OTHER              0x00000100 /* reserved */
> +#define IMAGE_SCN_LNK_INFO               0x00000200 /* .drectve comments */
> +#define IMAGE_SCN_RESERVED_4             0x00000400
> +#define IMAGE_SCN_LNK_REMOVE             0x00000800 /* .o only - scn to be rm'd*/
> +#define IMAGE_SCN_LNK_COMDAT             0x00001000 /* .o only - COMDAT data */
> +#define IMAGE_SCN_RESERVED_5             0x00002000 /* spec omits this */
> +#define IMAGE_SCN_RESERVED_6             0x00004000 /* spec omits this */
> +#define IMAGE_SCN_GPREL                  0x00008000 /* global pointer referenced data */
> +/* spec lists 0x20000 twice, I suspect they meant 0x10000 for one of them */
> +#define IMAGE_SCN_MEM_PURGEABLE 0x00010000 /* reserved for "future" use */
> +#define IMAGE_SCN_16BIT         0x00020000 /* reserved for "future" use */
> +#define IMAGE_SCN_LOCKED        0x00040000 /* reserved for "future" use */
> +#define IMAGE_SCN_PRELOAD       0x00080000 /* reserved for "future" use */
> +/* and here they just stuck a 1-byte integer in the middle of a bitfield */
> +#define IMAGE_SCN_ALIGN_1BYTES    0x00100000 /* it does what it says on the box */
> +#define IMAGE_SCN_ALIGN_2BYTES    0x00200000
> +#define IMAGE_SCN_ALIGN_4BYTES    0x00300000
> +#define IMAGE_SCN_ALIGN_8BYTES    0x00400000
> +#define IMAGE_SCN_ALIGN_16BYTES   0x00500000
> +#define IMAGE_SCN_ALIGN_32BYTES   0x00600000
> +#define IMAGE_SCN_ALIGN_64BYTES   0x00700000
> +#define IMAGE_SCN_ALIGN_128BYTES  0x00800000
> +#define IMAGE_SCN_ALIGN_256BYTES  0x00900000
> +#define IMAGE_SCN_ALIGN_512BYTES  0x00a00000
> +#define IMAGE_SCN_ALIGN_1024BYTES 0x00b00000
> +#define IMAGE_SCN_ALIGN_2048BYTES 0x00c00000
> +#define IMAGE_SCN_ALIGN_4096BYTES 0x00d00000
> +#define IMAGE_SCN_ALIGN_8192BYTES 0x00e00000
> +#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* extended relocations */
> +#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 /* scn can be discarded */
> +#define IMAGE_SCN_MEM_NOT_CACHED  0x04000000 /* cannot be cached */
> +#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000 /* not pageable */
> +#define IMAGE_SCN_MEM_SHARED      0x10000000 /* can be shared */
> +#define IMAGE_SCN_MEM_EXECUTE     0x20000000 /* can be executed as code */
> +#define IMAGE_SCN_MEM_READ        0x40000000 /* readable */
> +#define IMAGE_SCN_MEM_WRITE       0x80000000 /* writeable */
> +
> +#define IMAGE_DEBUG_TYPE_CODEVIEW 2
> +
> +#ifndef __ASSEMBLY__
> +
> +struct mz_hdr {
> +    uint16_t magic;              /* MZ_MAGIC */
> +    uint16_t lbsize;             /* size of last used block */
> +    uint16_t blocks;             /* pages in file, 0x3 */
> +    uint16_t relocs;             /* relocations */
> +    uint16_t hdrsize;            /* header size in "paragraphs" */
> +    uint16_t min_extra_pps;      /* .bss */
> +    uint16_t max_extra_pps;      /* runtime limit for the arena size */
> +    uint16_t ss;                 /* relative stack segment */
> +    uint16_t sp;                 /* initial %sp register */
> +    uint16_t checksum;           /* word checksum */
> +    uint16_t ip;                 /* initial %ip register */
> +    uint16_t cs;                 /* initial %cs relative to load segment */
> +    uint16_t reloc_table_offset; /* offset of the first relocation */
> +    uint16_t overlay_num;        /* overlay number.  set to 0. */
> +    uint16_t reserved0[4];       /* reserved */
> +    uint16_t oem_id;             /* oem identifier */
> +    uint16_t oem_info;           /* oem specific */
> +    uint16_t reserved1[10];      /* reserved */
> +    uint32_t peaddr;             /* address of pe header */
> +    char     message[];          /* message to print */
> +};

We already have an instance of this struct in common/efi/pe.c. I think
it wouldn't be very desirable to have two (different) instances.

> +struct mz_reloc {
> +    uint16_t offset;
> +    uint16_t segment;
> +};

We aren't going to need this anywhere, are we?

> +struct pe_hdr {
> +    uint32_t magic;        /* PE magic */
> +    uint16_t machine;      /* machine type */
> +    uint16_t sections;     /* number of sections */
> +    uint32_t timestamp;    /* time_t */
> +    uint32_t symbol_table; /* symbol table offset */
> +    uint32_t symbols;      /* number of symbols */
> +    uint16_t opt_hdr_size; /* size of optional header */
> +    uint16_t flags;        /* flags */
> +};

And again another (different) instance of this and further struct-s
already exists. Same for the section header further down.

> +/* the fact that pe32 isn't padded where pe32+ is 64-bit means union won't
> + * work right.  vomit. */

Noticing here in particular, but being an issue elsewhere as well:
Unless this file is to be a verbatim copy taken from somewhere (in
which case it should probably be introduced in a separate commit
with an Origin: tag), comments want to adhere of ./CODING_STYLE.

> +struct pe32_opt_hdr {
> +    /* "standard" header */
> +    uint16_t magic;       /* file type */
> +    uint8_t  ld_major;    /* linker major version */
> +    uint8_t  ld_minor;    /* linker minor version */
> +    uint32_t text_size;   /* size of text section(s) */
> +    uint32_t data_size;   /* size of data section(s) */
> +    uint32_t bss_size;    /* size of bss section(s) */
> +    uint32_t entry_point; /* file offset of entry point */
> +    uint32_t code_base;   /* relative code addr in ram */
> +    uint32_t data_base;   /* relative data addr in ram */
> +    /* "windows" header */
> +    uint32_t image_base;     /* preferred load address */
> +    uint32_t section_align;  /* alignment in bytes */
> +    uint32_t file_align;     /* file alignment in bytes */
> +    uint16_t os_major;       /* major OS version */
> +    uint16_t os_minor;       /* minor OS version */
> +    uint16_t image_major;    /* major image version */
> +    uint16_t image_minor;    /* minor image version */
> +    uint16_t subsys_major;   /* major subsystem version */
> +    uint16_t subsys_minor;   /* minor subsystem version */
> +    uint32_t win32_version;  /* reserved, must be 0 */
> +    uint32_t image_size;     /* image size */
> +    uint32_t header_size;    /* header size rounded up to file_align */
> +    uint32_t csum;           /* checksum */
> +    uint16_t subsys;         /* subsystem */
> +    uint16_t dll_flags;      /* executable characteristics */
> +    uint32_t stack_size_req; /* amt of stack requested */
> +    uint32_t stack_size;     /* amt of stack required */
> +    uint32_t heap_size_req;  /* amt of heap requested */
> +    uint32_t heap_size;      /* amt of heap required */
> +    uint32_t loader_flags;   /* reserved, must be 0 */
> +    uint32_t data_dirs;      /* number of data dir entries */
> +};
> +
> +struct pe32plus_opt_hdr {
> +    uint16_t magic;       /* file type */
> +    uint8_t  ld_major;    /* linker major version */
> +    uint8_t  ld_minor;    /* linker minor version */
> +    uint32_t text_size;   /* size of text section(s) */
> +    uint32_t data_size;   /* size of data section(s) */
> +    uint32_t bss_size;    /* size of bss section(s) */
> +    uint32_t entry_point; /* file offset of entry point */
> +    uint32_t code_base;   /* relative code addr in ram */
> +    /* "windows" header */
> +    uint64_t image_base;     /* preferred load address */
> +    uint32_t section_align;  /* alignment in bytes */
> +    uint32_t file_align;     /* file alignment in bytes */
> +    uint16_t os_major;       /* major OS version */
> +    uint16_t os_minor;       /* minor OS version */
> +    uint16_t image_major;    /* major image version */
> +    uint16_t image_minor;    /* minor image version */
> +    uint16_t subsys_major;   /* major subsystem version */
> +    uint16_t subsys_minor;   /* minor subsystem version */
> +    uint32_t win32_version;  /* reserved, must be 0 */
> +    uint32_t image_size;     /* image size */
> +    uint32_t header_size;    /* header size rounded up to file_align */
> +    uint32_t csum;           /* checksum */
> +    uint16_t subsys;         /* subsystem */
> +    uint16_t dll_flags;      /* executable characteristics */
> +    uint64_t stack_size_req; /* amt of stack requested */
> +    uint64_t stack_size;     /* amt of stack required */
> +    uint64_t heap_size_req;  /* amt of heap requested */
> +    uint64_t heap_size;      /* amt of heap required */
> +    uint32_t loader_flags;   /* reserved, must be 0 */
> +    uint32_t data_dirs;      /* number of data dir entries */
> +};
> +
> +struct data_dirent {
> +    uint32_t virtual_address; /* relative to load address */
> +    uint32_t size;
> +};

Will we need this and ...

> +struct data_directory {
> +    struct data_dirent exports;          /* .edata */
> +    struct data_dirent imports;          /* .idata */
> +    struct data_dirent resources;        /* .rsrc */
> +    struct data_dirent exceptions;       /* .pdata */
> +    struct data_dirent certs;            /* certs */
> +    struct data_dirent base_relocations; /* .reloc */
> +    struct data_dirent debug;            /* .debug */
> +    struct data_dirent arch;             /* reservered */
> +    struct data_dirent global_ptr;       /* global pointer reg. Size=0 */
> +    struct data_dirent tls;              /* .tls */
> +    struct data_dirent load_config;      /* load configuration structure */
> +    struct data_dirent bound_imports;    /* no idea */
> +    struct data_dirent import_addrs;     /* import address table */
> +    struct data_dirent delay_imports;    /* delay-load import table */
> +    struct data_dirent clr_runtime_hdr;  /* .cor (object only) */
> +    struct data_dirent reserved;
> +};

... this?

> +struct section_header {
> +    char     name[8];         /* name or string tbl offset */
> +    uint32_t virtual_size;    /* size of loaded section in ram */
> +    uint32_t virtual_address; /* relative virtual address */
> +    uint32_t raw_data_size;   /* size of the section */
> +    uint32_t data_addr;       /* file pointer to first page of sec */
> +    uint32_t relocs;          /* file pointer to relocation entries */
> +    uint32_t line_numbers;    /* line numbers */
> +    uint16_t num_relocs;      /* number of relocations */
> +    uint16_t num_lin_numbers; /* COFF line count. */
> +    uint32_t flags;
> +};
> +
> +enum x64_coff_reloc_type {
> +    IMAGE_REL_AMD64_ABSOLUTE = 0,
> +    IMAGE_REL_AMD64_ADDR64,
> +    IMAGE_REL_AMD64_ADDR32,
> +    IMAGE_REL_AMD64_ADDR32N,
> +    IMAGE_REL_AMD64_REL32,
> +    IMAGE_REL_AMD64_REL32_1,
> +    IMAGE_REL_AMD64_REL32_2,
> +    IMAGE_REL_AMD64_REL32_3,
> +    IMAGE_REL_AMD64_REL32_4,
> +    IMAGE_REL_AMD64_REL32_5,
> +    IMAGE_REL_AMD64_SECTION,
> +    IMAGE_REL_AMD64_SECREL,
> +    IMAGE_REL_AMD64_SECREL7,
> +    IMAGE_REL_AMD64_TOKEN,
> +    IMAGE_REL_AMD64_SREL32,
> +    IMAGE_REL_AMD64_PAIR,
> +    IMAGE_REL_AMD64_SSPAN32,
> +};
> +
> +enum arm_coff_reloc_type {
> +    IMAGE_REL_ARM_ABSOLUTE,
> +    IMAGE_REL_ARM_ADDR32,
> +    IMAGE_REL_ARM_ADDR32N,
> +    IMAGE_REL_ARM_BRANCH2,
> +    IMAGE_REL_ARM_BRANCH1,
> +    IMAGE_REL_ARM_SECTION,
> +    IMAGE_REL_ARM_SECREL,
> +};
> +
> +enum sh_coff_reloc_type {
> +    IMAGE_REL_SH3_ABSOLUTE,
> +    IMAGE_REL_SH3_DIRECT16,
> +    IMAGE_REL_SH3_DIRECT32,
> +    IMAGE_REL_SH3_DIRECT8,
> +    IMAGE_REL_SH3_DIRECT8_WORD,
> +    IMAGE_REL_SH3_DIRECT8_LONG,
> +    IMAGE_REL_SH3_DIRECT4,
> +    IMAGE_REL_SH3_DIRECT4_WORD,
> +    IMAGE_REL_SH3_DIRECT4_LONG,
> +    IMAGE_REL_SH3_PCREL8_WORD,
> +    IMAGE_REL_SH3_PCREL8_LONG,
> +    IMAGE_REL_SH3_PCREL12_WORD,
> +    IMAGE_REL_SH3_STARTOF_SECTION,
> +    IMAGE_REL_SH3_SIZEOF_SECTION,
> +    IMAGE_REL_SH3_SECTION,
> +    IMAGE_REL_SH3_SECREL,
> +    IMAGE_REL_SH3_DIRECT32_NB,
> +    IMAGE_REL_SH3_GPREL4_LONG,
> +    IMAGE_REL_SH3_TOKEN,
> +    IMAGE_REL_SHM_PCRELPT,
> +    IMAGE_REL_SHM_REFLO,
> +    IMAGE_REL_SHM_REFHALF,
> +    IMAGE_REL_SHM_RELLO,
> +    IMAGE_REL_SHM_RELHALF,
> +    IMAGE_REL_SHM_PAIR,
> +    IMAGE_REL_SHM_NOMODE,
> +};
> +
> +enum ppc_coff_reloc_type {
> +    IMAGE_REL_PPC_ABSOLUTE,
> +    IMAGE_REL_PPC_ADDR64,
> +    IMAGE_REL_PPC_ADDR32,
> +    IMAGE_REL_PPC_ADDR24,
> +    IMAGE_REL_PPC_ADDR16,
> +    IMAGE_REL_PPC_ADDR14,
> +    IMAGE_REL_PPC_REL24,
> +    IMAGE_REL_PPC_REL14,
> +    IMAGE_REL_PPC_ADDR32N,
> +    IMAGE_REL_PPC_SECREL,
> +    IMAGE_REL_PPC_SECTION,
> +    IMAGE_REL_PPC_SECREL16,
> +    IMAGE_REL_PPC_REFHI,
> +    IMAGE_REL_PPC_REFLO,
> +    IMAGE_REL_PPC_PAIR,
> +    IMAGE_REL_PPC_SECRELLO,
> +    IMAGE_REL_PPC_GPREL,
> +    IMAGE_REL_PPC_TOKEN,
> +};
> +
> +enum x86_coff_reloc_type {
> +    IMAGE_REL_I386_ABSOLUTE,
> +    IMAGE_REL_I386_DIR16,
> +    IMAGE_REL_I386_REL16,
> +    IMAGE_REL_I386_DIR32,
> +    IMAGE_REL_I386_DIR32NB,
> +    IMAGE_REL_I386_SEG12,
> +    IMAGE_REL_I386_SECTION,
> +    IMAGE_REL_I386_SECREL,
> +    IMAGE_REL_I386_TOKEN,
> +    IMAGE_REL_I386_SECREL7,
> +    IMAGE_REL_I386_REL32,
> +};
> +
> +enum ia64_coff_reloc_type {
> +    IMAGE_REL_IA64_ABSOLUTE,
> +    IMAGE_REL_IA64_IMM14,
> +    IMAGE_REL_IA64_IMM22,
> +    IMAGE_REL_IA64_IMM64,
> +    IMAGE_REL_IA64_DIR32,
> +    IMAGE_REL_IA64_DIR64,
> +    IMAGE_REL_IA64_PCREL21B,
> +    IMAGE_REL_IA64_PCREL21M,
> +    IMAGE_REL_IA64_PCREL21F,
> +    IMAGE_REL_IA64_GPREL22,
> +    IMAGE_REL_IA64_LTOFF22,
> +    IMAGE_REL_IA64_SECTION,
> +    IMAGE_REL_IA64_SECREL22,
> +    IMAGE_REL_IA64_SECREL64I,
> +    IMAGE_REL_IA64_SECREL32,
> +    IMAGE_REL_IA64_DIR32NB,
> +    IMAGE_REL_IA64_SREL14,
> +    IMAGE_REL_IA64_SREL22,
> +    IMAGE_REL_IA64_SREL32,
> +    IMAGE_REL_IA64_UREL32,
> +    IMAGE_REL_IA64_PCREL60X,
> +    IMAGE_REL_IA64_PCREL60B,
> +    IMAGE_REL_IA64_PCREL60F,
> +    IMAGE_REL_IA64_PCREL60I,
> +    IMAGE_REL_IA64_PCREL60M,
> +    IMAGE_REL_IA64_IMMGPREL6,
> +    IMAGE_REL_IA64_TOKEN,
> +    IMAGE_REL_IA64_GPREL32,
> +    IMAGE_REL_IA64_ADDEND,
> +};

All sorts of relocation types, but none for RISC-V? Are we going to need
any of this?

> +struct coff_reloc {
> +    uint32_t virtual_address;
> +    uint32_t symbol_table_index;
> +
> +    union {
> +        enum x64_coff_reloc_type  x64_type;
> +        enum arm_coff_reloc_type  arm_type;
> +        enum sh_coff_reloc_type   sh_type;
> +        enum ppc_coff_reloc_type  ppc_type;
> +        enum x86_coff_reloc_type  x86_type;
> +        enum ia64_coff_reloc_type ia64_type;
> +        uint16_t                  data;
> +    };
> +};
> +
> +/*
> + * Definitions for the contents of the certs data block
> + */
> +#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002
> +#define WIN_CERT_TYPE_EFI_OKCS115      0x0EF0
> +#define WIN_CERT_TYPE_EFI_GUID         0x0EF1
> +
> +#define WIN_CERT_REVISION_1_0 0x0100
> +#define WIN_CERT_REVISION_2_0 0x0200
> +
> +struct win_certificate {
> +    uint32_t length;
> +    uint16_t revision;
> +    uint16_t cert_type;
> +};

Or any of this?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 16:19:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 16:19:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753263.1161517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP2hQ-0008Jp-Hl; Wed, 03 Jul 2024 16:19:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753263.1161517; Wed, 03 Jul 2024 16:19:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP2hQ-0008Ji-Ee; Wed, 03 Jul 2024 16:19:16 +0000
Received: by outflank-mailman (input) for mailman id 753263;
 Wed, 03 Jul 2024 16:19:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vcdk=OD=bounce.vates.tech=bounce-md_30504962.668579fc.v1-b826b61cf4fb41abbbb48b7f4c5dd523@srs-se1.protection.inumbo.net>)
 id 1sP2hO-0008Ja-QA
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 16:19:15 +0000
Received: from mail145-25.atl61.mandrillapp.com
 (mail145-25.atl61.mandrillapp.com [198.2.145.25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb3d65fc-3957-11ef-8776-851b0ebba9a2;
 Wed, 03 Jul 2024 18:19:12 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-25.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4WDlMw3vlJz35ksGp
 for <xen-devel@lists.xenproject.org>; Wed,  3 Jul 2024 16:19:08 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b826b61cf4fb41abbbb48b7f4c5dd523; Wed, 03 Jul 2024 16:19: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: fb3d65fc-3957-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720023548; x=1720284048;
	bh=Exz/4ZrpWCeqjSYxt8r/qBZvrM65bapKOn+U6eWIQT0=;
	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=BBp189MTmUylXhQqXv+QIHhZv6zSksg+9mkteB1eAtzmp2ECx6Cccs3I+RPx+WUma
	 sfXI9FwbFRlqIfOD+X5zDy63TOyKqsR5S+2+sgjvDKa2+C5eFq2frVftKNr0XyyEMY
	 qIfekRF7HNZTamThDG+ughDyCxpQ9qBKn+6l9wGJEYV+GprI1av+WyY1TPfSdh/JKT
	 HAT7pvfPRYZd+oPn2FSVSmIdMm6XJZ/1UFOJ48z8bMIo5S83iZP482R4e/ynotj8sZ
	 7Q4eZx4XNW1XGDUh1+xVUW/Bbe69SMQ1NH3yh2qKUWotZ6JlZKxmd5olmLwmKpQDIE
	 l6aITGvbtKiow==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720023548; x=1720284048; i=anthony.perard@vates.tech;
	bh=Exz/4ZrpWCeqjSYxt8r/qBZvrM65bapKOn+U6eWIQT0=;
	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=qdubq0UHCd0esNUeszxIFyMRjz5YLJH1WIy/7x8J8PeDxYNAJb8+i0tSAGgBFsjGD
	 /KDFhR4eB+KCJtKe3J6y3zJexzhtJSu7EXiXy43A3n79CousFup2o1+P9eMw37Q52s
	 wsLI3KIjHSdD2JPl0/4vJjlGYczrW1mqqPLYGM1cUg9dES39uJVl7WB9/yEUvYWJIL
	 7QFssa9bTv2MygUR1gDPBNgUI3E68GWq5DbgXBEgpmzz2Ij+MQH4ZYYr2MDiE0xa+b
	 qC8dp/FC/5mqePbnjs8A+Arjaqww1ljF/xSTC5Cx6zYJgx/CrMDZ7Lkv9OaZvWhctE
	 vWCqajaTwqrdA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20for-4.19=203/4]=20CI:=20Drop=20bin86/dev86=20from=20archlinux=20container?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720023546920
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>, Stefano Stabellini <sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Message-Id: <ZoV5+RT0JOqFCW7d@l14>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com> <20240703142002.1662874-4-andrew.cooper3@citrix.com> <ZoVjg-HBZdoa-B5A@macbook.local> <6b05b04d-e2a8-42ba-b040-78638fa7b51f@citrix.com>
In-Reply-To: <6b05b04d-e2a8-42ba-b040-78638fa7b51f@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.b826b61cf4fb41abbbb48b7f4c5dd523?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240703:md
Date: Wed, 03 Jul 2024 16:19:08 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Wed, Jul 03, 2024 at 03:52:48PM +0100, Andrew Cooper wrote:
> Also, Archlinux is nonblocking because it's a rolling distro and
> periodically breaks older trees because of an updated GCC.

Correction: It should be nonblocking, it's not at the moment ;-).

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 16:40:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 16:40:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753272.1161526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP327-0003tK-6c; Wed, 03 Jul 2024 16:40:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753272.1161526; Wed, 03 Jul 2024 16: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 1sP327-0003tD-3t; Wed, 03 Jul 2024 16:40:39 +0000
Received: by outflank-mailman (input) for mailman id 753272;
 Wed, 03 Jul 2024 16:40:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP326-0003t3-6i; Wed, 03 Jul 2024 16:40:38 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP326-0000dh-3b; Wed, 03 Jul 2024 16:40:38 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP325-0003KJ-HV; Wed, 03 Jul 2024 16:40:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sP325-0006XY-H0; Wed, 03 Jul 2024 16:40:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=jNBDDvgk8wLqGWL5zZnwZIOx4WqUOXLL4pcsTknm24M=; b=2CP/1OxtyHlIJ2mQ9xHVxUVwrO
	djGud1vybOqqEelSu/BwDvYd1ihhjq1qHA+Nck+5J1GIUrKat/337lK1f98VxvmB652UpScrc19ty
	FeOxFojnmhDfYUj6rzY5IVdsXzR2SbuAdat4f/xFWM6deO2dqNAJTDKrXJCNwhMU+i3A=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186638-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186638: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:host-ping-check-xen:fail:allowable
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=e9d22f7a6655941fc8b2b942ed354ec780936b3e
X-Osstest-Versions-That:
    linux=9903efbddba0d14133b5a3c75088b558d2e34ac3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Jul 2024 16:40:37 +0000

flight 186638 linux-linus real [real]
flight 186642 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186638/
http://logs.test-lab.xenproject.org/osstest/logs/186642/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-libvirt-vhd  8 xen-boot                 fail REGR. vs. 186620

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt      8 xen-boot            fail pass in 186642-retest
 test-armhf-armhf-xl-multivcpu  8 xen-boot           fail pass in 186642-retest

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds     10 host-ping-check-xen      fail REGR. vs. 186620

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 186642 like 186620
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 186642 never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check fail in 186642 never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check fail in 186642 never pass
 test-armhf-armhf-xl-raw       8 xen-boot                     fail  like 186620
 test-armhf-armhf-xl-credit1   8 xen-boot                     fail  like 186620
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186620
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                e9d22f7a6655941fc8b2b942ed354ec780936b3e
baseline version:
 linux                9903efbddba0d14133b5a3c75088b558d2e34ac3

Last test of basis   186620  2024-07-01 17:14:02 Z    1 days
Failing since        186626  2024-07-02 05:45:15 Z    1 days    3 attempts
Testing same since   186638  2024-07-03 04:29:20 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alison Schofield <alison.schofield@intel.com>
  Babu Moger <babu.moger@amd.com>
  Chen Ni <nichen@iscas.ac.cn>
  Christian Brauner <brauner@kernel.org>
  Dan Williams <dan.j.williams@intel.com>
  Dave Jiang <dave.jiang@intel.com>
  David Howells <dhowells@redhat.com>
  David Sterba <dsterba@suse.com>
  Gao Xiang <hsiangkao@linux.alibaba.com>
  Huang Xiaojia <huangxiaojia2@huawei.com>
  Jann Horn <jannh@google.com>
  Li Ming <ming4.li@intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Ming Lei <ming.lei@redhat.com>
  Naohiro Aota <naohiro.aota@wdc.com>
  Sandeep Dhavale <dhavale@google.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Wenchao Hao <haowenchao22@gmail.com>
  Xingui Yang <yangxingui@huawei.com>
  Yao Xingtao <yaoxt.fnst@fujitsu.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 566 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 16:41:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 16:41:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753277.1161537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP32i-0004Ns-GJ; Wed, 03 Jul 2024 16:41:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753277.1161537; Wed, 03 Jul 2024 16: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 1sP32i-0004Nj-D1; Wed, 03 Jul 2024 16:41:16 +0000
Received: by outflank-mailman (input) for mailman id 753277;
 Wed, 03 Jul 2024 16:41:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP32g-0004NX-TX; Wed, 03 Jul 2024 16:41:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP32g-0000eY-Sj; Wed, 03 Jul 2024 16:41:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP32g-0003Lf-HG; Wed, 03 Jul 2024 16:41:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sP32g-0007NZ-Gn; Wed, 03 Jul 2024 16:41:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Lxd2H8fqKhDwwA6YTimhHA+1oEzt6aYGMVdQ+iHMSYc=; b=yUtYr7rvdmWLCp6Q41O7mUmXAN
	LyRdKoRIrxb7k3dJfUpBaCWhesGRVrdi5q4UT3ojBVagFV4reS2Jp+mm6hwPXPuo2uncpeZA5n/9e
	5j4+otYTeQBJqA0vUbgp70tkulldC8KES/T6Ngw6ATPvOjgnU4ajK2ftCn1jeV0EJp3w=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186641-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186641: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=fb76e08a8f7a61dfbc07d0f335f1623bca650d7f
X-Osstest-Versions-That:
    xen=08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Jul 2024 16:41:14 +0000

flight 186641 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186641/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  fb76e08a8f7a61dfbc07d0f335f1623bca650d7f
baseline version:
 xen                  08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b

Last test of basis   186629  2024-07-02 12:04:14 Z    1 days
Testing same since   186641  2024-07-03 13:00:24 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   08daa72cdc..fb76e08a8f  fb76e08a8f7a61dfbc07d0f335f1623bca650d7f -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 20:43:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 20:43:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753308.1161549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP6pI-0005S2-DE; Wed, 03 Jul 2024 20:43:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753308.1161549; Wed, 03 Jul 2024 20:43: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 1sP6pI-0005Rv-Am; Wed, 03 Jul 2024 20:43:40 +0000
Received: by outflank-mailman (input) for mailman id 753308;
 Wed, 03 Jul 2024 20:43:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP6pH-0005Rl-SJ; Wed, 03 Jul 2024 20:43:39 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP6pH-0005AZ-NN; Wed, 03 Jul 2024 20:43:39 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP6pH-0003ev-9K; Wed, 03 Jul 2024 20:43:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sP6pH-0005op-8f; Wed, 03 Jul 2024 20:43:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=cchSMN/AVDH8A+9NDJeqV6A1sNyuMCqAraBd6I3C/aQ=; b=XaDv9B9YG5UvTRvVUur7kDT8XG
	b+0ucgu3oq6LRf/XEMFyvqp+LKebDzmxQ01ellPSrptZtN1HrPjKxo+Ctj7z/WpmU24OQzES7ofGC
	JnkEVz5HKlbLMCnjwWmfag3xAECNZj5mIZBqDWgy9inZSIHyUL5N0jIqVPcn/gZEgtE8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186644-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186644: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=63c66274d9934e0df7f4e3725c868ff2251b705f
X-Osstest-Versions-That:
    xen=fb76e08a8f7a61dfbc07d0f335f1623bca650d7f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Jul 2024 20:43:39 +0000

flight 186644 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186644/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  63c66274d9934e0df7f4e3725c868ff2251b705f
baseline version:
 xen                  fb76e08a8f7a61dfbc07d0f335f1623bca650d7f

Last test of basis   186641  2024-07-03 13:00:24 Z    0 days
Testing same since   186644  2024-07-03 17:04:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   fb76e08a8f..63c66274d9  63c66274d9934e0df7f4e3725c868ff2251b705f -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Jul 03 22:03:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 22:03:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753321.1161560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP83p-0005oc-Me; Wed, 03 Jul 2024 22:02:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753321.1161560; Wed, 03 Jul 2024 22:02: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 1sP83p-0005oV-J1; Wed, 03 Jul 2024 22:02:45 +0000
Received: by outflank-mailman (input) for mailman id 753321;
 Wed, 03 Jul 2024 22:02:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP83o-0005oL-L2; Wed, 03 Jul 2024 22:02:44 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP83o-0006q3-IG; Wed, 03 Jul 2024 22:02:44 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sP83o-0006JD-7d; Wed, 03 Jul 2024 22:02:44 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sP83o-0007Ek-7D; Wed, 03 Jul 2024 22:02:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Pf7hJP6Jx6GA4VqLCXBuiDlCD68fFaXsvySnQco8cig=; b=kQQb73RcxTS6lgym7Yrtmx/ELs
	d2G8pUYVBtIpXuZ6B8N3VF9uslXodW0kuGjI6uppJ6YccolbTronsYk9gYzcATc6K8KUcuBOPip5n
	H39bY7n0ud5qDQ6VO+xNXw0Gcg1NrJpqYKMuKVeK6+jLkgvmZbTWyfnn5UAvtOuASybI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186639-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186639: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-credit2:guest-start/debian.repeat:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b
X-Osstest-Versions-That:
    xen=08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 03 Jul 2024 22:02:44 +0000

flight 186639 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186639/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-credit2  22 guest-start/debian.repeat  fail pass in 186634
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186634

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186634
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186634
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186634
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186634
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186634
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186634
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b
baseline version:
 xen                  08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b

Last test of basis   186639  2024-07-03 05:44:01 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  fail    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 22:36:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 22:36:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753337.1161570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP8aL-00011e-7t; Wed, 03 Jul 2024 22:36:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753337.1161570; Wed, 03 Jul 2024 22:36: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 1sP8aL-00011X-4V; Wed, 03 Jul 2024 22:36:21 +0000
Received: by outflank-mailman (input) for mailman id 753337;
 Wed, 03 Jul 2024 22:36:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i9qc=OD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sP8aK-00011R-Cu
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 22:36:20 +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 a9b403a3-398c-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 00:36:17 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a727d9dd367so743866b.3
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 15:36:17 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72aaf6336csm544875166b.70.2024.07.03.15.36.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 15:36: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: a9b403a3-398c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720046176; x=1720650976; 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=qartpj94QO9IIjwcNKztD+etg1loQQXr0SUDN4EHJJo=;
        b=sMi7d7TMyGg8Ml2jqL8aEGOLzFmiIMAvy0zBXfsw3qVG0epmOFnkKB/77gcZovnMss
         wksxJTeQsyHBgWAY2+u4IImQ1KRVPKrKkEaME6RDED9sMh/TyTN9drZ/RkshzwTUrLID
         Kbutj2KqBfSaAeEXxg/Lpn/qtzguiuECCk3gI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720046176; x=1720650976;
        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=qartpj94QO9IIjwcNKztD+etg1loQQXr0SUDN4EHJJo=;
        b=adevRxh2zl5bEJ2UqRs5+xrA3BlvF6leTYQ0AiZ41bDXfzlu9dq1cum71vAa+3nx9R
         a8UjQw9jHaPVtXJx5e+ZVgUugprPxumrdlImcvlxZ3v7YwoCQpc0rPFpURrajLISJRD0
         PDNMp7yGtCqmMupFBCrvm8UKupifGC5v4rK/GB4EJ7PDc/QBRpR9fRjOB4GlLE09W+tg
         qqXYIHW3OR9vW3HtgL4A4Fo0Lxb5nXn29E2kK2ai5yEm6xJ+2zEgvKTvUQsilW2noC/9
         uC3HfobSRVuhl+c1motvmYhI+m0wXKqT2h+2BF8/wTbx0c2Fco7bOuDwgs4d2pXQzAf2
         vbqw==
X-Gm-Message-State: AOJu0YxdalsDGME5eUG2HK5k9R5/QrSTEjRlgLYSaq4LkvGrDXn3Xo3u
	CuNkp3gklgjseldpMDWaJKuQUCUEiNHFT+MLkWujS4yz2rWih7utI47OWP3YKs5jM7GbjkkjJyj
	j
X-Google-Smtp-Source: AGHT+IExX5Nv+LsC1H8bO2T30R1oXX3JKM+1DztHjEm/4lrMkXRq0laGW2wrpRu5eTpZS/ReS8DqOA==
X-Received: by 2002:a17:907:9407:b0:a6f:bf0f:4209 with SMTP id a640c23a62f3a-a7514475b49mr1121407666b.42.1720046175886;
        Wed, 03 Jul 2024 15:36: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>,
	Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19] tools/xs-clients: Fix `make clean` rule
Date: Wed,  3 Jul 2024 23:36:11 +0100
Message-Id: <20240703223611.1754927-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Prior to the split, "the clients" used tools/xenstored/Makefile.common whose
clean rule includes *.o whereas after the split, the removal of *.o was lost
by virtule of not including Makefile.common any more.

This is the bug behind the following build error:

  make[2]: Entering directory '/local/xen.git/tools/xs-clients'
  gcc     xenstore_client.o    (snip)
  /usr/bin/ld: xenstore_client.o: relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIE
  /usr/bin/ld: failed to set dynamic section sizes: bad value
  collect2: error: ld returned 1 exit status
  make[2]: *** [Makefile:35: xenstore] Error 1

which was caused by `make clean` not properly cleaning the tree as I was
swapping between various build containers.

Switch to a plain single-colon clean rule.

Fixes: 5c293058b130 ("tools/xenstore: move xenstored sources into dedicated directory")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

For 4.19.  It's a minor build system corner case, but is also very safe too.

Ultimately it needs backporting to 4.18 too.
---
 tools/xs-clients/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/xs-clients/Makefile b/tools/xs-clients/Makefile
index 4e78d365e0df..5415c441920a 100644
--- a/tools/xs-clients/Makefile
+++ b/tools/xs-clients/Makefile
@@ -38,8 +38,8 @@ xenstore-control: xenstore_control.o
 	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ $(APPEND_LDFLAGS)
 
 .PHONY: clean
-clean::
-	$(RM) $(TARGETS) $(DEPS_RM)
+clean:
+	$(RM) *.o $(TARGETS) $(DEPS_RM)
 
 .PHONY: distclean
 distclean: clean
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 22:50:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 22:50:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753345.1161579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP8oP-0003h5-At; Wed, 03 Jul 2024 22:50:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753345.1161579; Wed, 03 Jul 2024 22: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 1sP8oP-0003gy-7x; Wed, 03 Jul 2024 22:50:53 +0000
Received: by outflank-mailman (input) for mailman id 753345;
 Wed, 03 Jul 2024 22: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=H1e/=OD=redhat.com=mst@srs-se1.protection.inumbo.net>)
 id 1sP8oO-0003gs-5h
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 22:50:52 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b0fb5e8a-398e-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 00:50:50 +0200 (CEST)
Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com
 [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-634-tEDDPEE8Oqa6ndQ0GzYykg-1; Wed, 03 Jul 2024 18:50:47 -0400
Received: by mail-wm1-f70.google.com with SMTP id
 5b1f17b1804b1-42566e8a995so82435e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 15:50:47 -0700 (PDT)
Received: from redhat.com ([2a0d:6fc7:441:91a8:a47d:5a9:c02f:92f2])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3675a0cd634sm17094726f8f.9.2024.07.03.15.50.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 15: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: b0fb5e8a-398e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1720047048;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=bN0cTm8m+n/A4V5Tgbpm0TUAfWebEt6LcyWQbTcpz4g=;
	b=BHTZpIauCueBBEpmH+PwftXR3iHliIEEkYmbrTNhSIYcViMg0Owskfkf/MORwMsvTw6Fi/
	jEnVg8NNLOVVOe9TvbCo193OEnGu2DW4xC62amaFAvkMJKQAXMrDHzVjmc3/caE3rTdLN/
	IorjhgrAqjpZ7uSost1RTwu3NAonMtI=
X-MC-Unique: tEDDPEE8Oqa6ndQ0GzYykg-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720047046; x=1720651846;
        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=bN0cTm8m+n/A4V5Tgbpm0TUAfWebEt6LcyWQbTcpz4g=;
        b=uFkDmf9o/E/v5+uOr5MJ9bc23dIfhcuZLQfO8ajerLPY8FhnkKkYPB8uqjaxM8whm0
         X8ud8P4qo7AdeuopyLKBxfeIaZfsBdCjHPjsfg62ON97xSP+EdLKLZox6KUvZYY/nVKw
         gPhJ2HZIpw1XYLt5mukUOdljq+DVIkMmF+miR7ChmbzR6hcNsP8gijezo20Fm7wkraet
         iae+v/nfk2f+xq/iflxxBS4vjdt0sZ4qLFC8McslvtrZiOnhkIUgdHuXE+VL23InzCYG
         ULDxI431X4DayRsRyOuwkQLb9FNqQylWDFviV1K1HLM7o+5JdH93FCBYurhWwmVHl3vu
         KAyg==
X-Forwarded-Encrypted: i=1; AJvYcCUIL9nT6l2BVcOCesj+EO4B0d6QVhwDAp9bOp7C64xs3yw8NDhSSg6hyAvn1QV7kZHfuhdsYAkQe656eWxqr0YMAb0FviOUUeDOzP4OE1s=
X-Gm-Message-State: AOJu0YyRAN2+zO/L/zmsgOHhlNolhKOjF7dA4FnGaWVlNi59zTJFVY8d
	aRnXoK4k3FL90fPP6i0Ne795Fj9uWotuB9/bP6zrRKUw0bm56eN6tjZdhlLDDkvWVCyw1qQmC5e
	UUA/A5o9S8BBYoj/VZixmaDZM926PhelI+1KHnGJO8v2kLdENEp2fr8sclzTjY1+w
X-Received: by 2002:a7b:cd95:0:b0:425:6dce:8c54 with SMTP id 5b1f17b1804b1-4264a48c4e0mr219895e9.33.1720047046480;
        Wed, 03 Jul 2024 15:50:46 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IHOSRByIk9k3rv668VG4ZZgH3goxRYz4rLRrmCDty5VxwTtGnPAQNDI+3zjtturXDoaidQjDg==
X-Received: by 2002:a7b:cd95:0:b0:425:6dce:8c54 with SMTP id 5b1f17b1804b1-4264a48c4e0mr219825e9.33.1720047046024;
        Wed, 03 Jul 2024 15:50:46 -0700 (PDT)
Date: Wed, 3 Jul 2024 18:50:42 -0400
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Akihiko Odaki <akihiko.odaki@daynix.com>,
	Markus Armbruster <armbru@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Subject: [PULL v3 85/85] hw/pci: Replace -1 with UINT32_MAX for romsize
Message-ID: <6a67577d8003428bdbeba61d32a9f8158f12624b.1720046570.git.mst@redhat.com>
References: <cover.1720046570.git.mst@redhat.com>
MIME-Version: 1.0
In-Reply-To: <cover.1720046570.git.mst@redhat.com>
X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1
X-Mutt-Fcc: =sent
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

From: Akihiko Odaki <akihiko.odaki@daynix.com>

romsize is an uint32_t variable. Specifying -1 as an uint32_t value is
obscure way to denote UINT32_MAX.

Worse, if int is wider than 32-bit, it will change the behavior of a
construct like the following:
romsize = -1;
if (romsize != -1) {
    ...
}

When -1 is assigned to romsize, -1 will be implicitly casted into
uint32_t, resulting in UINT32_MAX. On contrary, when evaluating
romsize != -1, romsize will be casted into int, and it will be a
comparison of UINT32_MAX and -1, and result in false.

Replace -1 with UINT32_MAX for statements involving the variable to
clarify the intent and prevent potential breakage.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20240627-reuse-v10-10-7ca0b8ed3d9f@daynix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/pci/pci.c             | 8 ++++----
 hw/xen/xen_pt_load_rom.c | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index fa85f87b1c..4c7be52951 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -70,7 +70,7 @@ static bool pcie_has_upstream_port(PCIDevice *dev);
 static Property pci_props[] = {
     DEFINE_PROP_PCI_DEVFN("addr", PCIDevice, devfn, -1),
     DEFINE_PROP_STRING("romfile", PCIDevice, romfile),
-    DEFINE_PROP_UINT32("romsize", PCIDevice, romsize, -1),
+    DEFINE_PROP_UINT32("romsize", PCIDevice, romsize, UINT32_MAX),
     DEFINE_PROP_UINT32("rombar",  PCIDevice, rom_bar, 1),
     DEFINE_PROP_BIT("multifunction", PCIDevice, cap_present,
                     QEMU_PCI_CAP_MULTIFUNCTION_BITNR, false),
@@ -2073,7 +2073,7 @@ static void pci_qdev_realize(DeviceState *qdev, Error **errp)
                                  g_cmp_uint32, NULL);
     }
 
-    if (pci_dev->romsize != -1 && !is_power_of_2(pci_dev->romsize)) {
+    if (pci_dev->romsize != UINT32_MAX && !is_power_of_2(pci_dev->romsize)) {
         error_setg(errp, "ROM size %u is not a power of two", pci_dev->romsize);
         return;
     }
@@ -2359,7 +2359,7 @@ static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom,
         return;
     }
 
-    if (load_file || pdev->romsize == -1) {
+    if (load_file || pdev->romsize == UINT32_MAX) {
         path = qemu_find_file(QEMU_FILE_TYPE_BIOS, pdev->romfile);
         if (path == NULL) {
             path = g_strdup(pdev->romfile);
@@ -2378,7 +2378,7 @@ static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom,
                        pdev->romfile);
             return;
         }
-        if (pdev->romsize != -1) {
+        if (pdev->romsize != UINT_MAX) {
             if (size > pdev->romsize) {
                 error_setg(errp, "romfile \"%s\" (%u bytes) "
                            "is too large for ROM size %u",
diff --git a/hw/xen/xen_pt_load_rom.c b/hw/xen/xen_pt_load_rom.c
index 03422a8a71..6bc64acd33 100644
--- a/hw/xen/xen_pt_load_rom.c
+++ b/hw/xen/xen_pt_load_rom.c
@@ -53,7 +53,7 @@ void *pci_assign_dev_load_option_rom(PCIDevice *dev,
     }
     fseek(fp, 0, SEEK_SET);
 
-    if (dev->romsize != -1) {
+    if (dev->romsize != UINT_MAX) {
         if (st.st_size > dev->romsize) {
             error_report("ROM BAR \"%s\" (%ld bytes) is too large for ROM size %u",
                          rom_file, (long) st.st_size, dev->romsize);
-- 
MST



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 22:55:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 22:55:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753355.1161601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP8sz-0004a4-5C; Wed, 03 Jul 2024 22:55:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753355.1161601; Wed, 03 Jul 2024 22:55:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP8sz-0004Zv-11; Wed, 03 Jul 2024 22:55:37 +0000
Received: by outflank-mailman (input) for mailman id 753355;
 Wed, 03 Jul 2024 22:55:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i9qc=OD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sP8sx-0004Kt-Ml
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 22:55:35 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5b515ba4-398f-11ef-bbf9-fd08da9f4363;
 Thu, 04 Jul 2024 00:55:34 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-36799a67d9cso68760f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 15:55:34 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72aaf638f3sm549984566b.89.2024.07.03.15.55.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 15:55: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: 5b515ba4-398f-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720047333; x=1720652133; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nc6jPiNiL6yKZZqXuTh5pDooCk6e0PT5O2QbWpQhSHI=;
        b=n5xbw8LzwNYaG65SL2RdRRtR8U0mrwTTmLapG0dmPhFQxbhq897S981Xk/G5AzhyFr
         iX1RPJILXbYW75/NnwHv3iH6tqwcdCIR11O1m4z4L2jTYkYKO7HX/qhQt+EXxr1n8YbY
         CVayakmKUdwjvO1HIOSDI0uvWQ3wgr3/eQgxk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720047333; x=1720652133;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=nc6jPiNiL6yKZZqXuTh5pDooCk6e0PT5O2QbWpQhSHI=;
        b=G/i0UVABQeRuVKGBHwEv8xuUdxmMEy4TLP3IcO7hxcr80+5qxa20W+Z3dtoNCP4x8L
         inb7sC171p3FkZYp9csByDYowv6YsSOE0HbJytz8tlghs3m+xGR1Ssczu8aWcsPduBAu
         iYXfSYjIHuxylxpW1GVjL/sAY8ywBV0BtoKnQBpXbgr+31/Q9hA+jhVT23Lz1u75tnmx
         4DBvGg117sTOA/Km4bib2nn/kHnzdXTdyC8qQrvBQ5Hj0uq7BmjaYJHrld1xDYIWibf1
         GzmB/f1tKH945R2Y+0XI9p02KHjrwO4NzDDJjxGq3Blm8PJ1Son6Ev4zakuaPWtfkVkO
         QItA==
X-Gm-Message-State: AOJu0Ywllm0pB+BNBalVT2v+39LqKl6DhURFhd2w3WEoAKteN/ITc8m8
	27gqLMKDOntVzuMWDMVfn7fN5daFMmkwNc59P1JymM6PnbW58xdk88XTO1ZGicpSVpV78tbixui
	2
X-Google-Smtp-Source: AGHT+IHK6dAz6/ClADPFpho9/pZFjPiB4wEg0e0Rt8mllSGYd2/Wv6a8YnlFCR+ELQkPE1R23gSDYw==
X-Received: by 2002:a5d:4a45:0:b0:367:9114:4693 with SMTP id ffacd0b85a97d-3679dd31348mr18355f8f.31.1720047333205;
        Wed, 03 Jul 2024 15:55:33 -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>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 1/2] build/mkheader: Remove C-isms from the code
Date: Wed,  3 Jul 2024 23:55:24 +0100
Message-Id: <20240703225525.1759907-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240703225525.1759907-1-andrew.cooper3@citrix.com>
References: <20240703225525.1759907-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This was clearly written by a C programmer, rather than a python programmer.
Drop all the useless semi-colons.

The very final line of the script simply references f.close, rather than
calling the function.  Switch to using a with: statement, as python does care
about unclosed files if you enable enough warnings.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 tools/include/xen-foreign/mkheader.py | 104 +++++++++++++-------------
 1 file changed, 51 insertions(+), 53 deletions(-)

diff --git a/tools/include/xen-foreign/mkheader.py b/tools/include/xen-foreign/mkheader.py
index 081b57f842a2..3a33df4984a2 100644
--- a/tools/include/xen-foreign/mkheader.py
+++ b/tools/include/xen-foreign/mkheader.py
@@ -2,21 +2,21 @@
 
 from __future__ import print_function
 
-import sys, re;
-from structs import unions, structs, defines;
+import sys, re
+from structs import unions, structs, defines
 
 # command line arguments
-arch    = sys.argv[1];
-outfile = sys.argv[2];
-infiles = sys.argv[3:];
+arch    = sys.argv[1]
+outfile = sys.argv[2]
+infiles = sys.argv[3:]
 
 
 ###########################################################################
 # configuration #2: architecture information
 
-inttypes = {};
-header = {};
-footer = {};
+inttypes = {}
+header = {}
+footer = {}
 
 #arm
 inttypes["arm32"] = [
@@ -35,7 +35,7 @@ header["arm32"] = """
 # define __DECL_REG(n64, n32) uint64_t n64
 # define __align8__ FIXME
 #endif
-""";
+"""
 footer["arm32"] = """
 #undef __DECL_REG
 """
@@ -56,7 +56,7 @@ header["arm64"] = """
 # define __DECL_REG(n64, n32) uint64_t n64
 # define __align8__ FIXME
 #endif
-""";
+"""
 footer["arm64"] = """
 #undef __DECL_REG
 """
@@ -73,12 +73,12 @@ header["x86_32"] = """
 #define __DECL_REG_LO16(name) uint32_t e ## name
 #define __i386___X86_32 1
 #pragma pack(4)
-""";
+"""
 footer["x86_32"] = """
 #undef __DECL_REG_LO8
 #undef __DECL_REG_LO16
 #pragma pack()
-""";
+"""
 
 # x86_64
 inttypes["x86_64"] = [
@@ -100,7 +100,7 @@ header["x86_64"] = """
 #define __DECL_REG_LO16       __DECL_REG
 #define __DECL_REG_HI         __DECL_REG
 #define __x86_64___X86_64 1
-""";
+"""
 footer["x86_64"] = """
 #undef __DECL_REG
 #undef __DECL_REG_LOHI
@@ -112,12 +112,12 @@ footer["x86_64"] = """
 ###########################################################################
 # main
 
-input  = "";
-output = "";
-fileid = re.sub("[-.]", "_", "__FOREIGN_%s__" % outfile.upper());
+input  = ""
+output = ""
+fileid = re.sub("[-.]", "_", "__FOREIGN_%s__" % outfile.upper())
 
 for name in infiles:
-    f = open(name, "r");
+    f = open(name, "r")
 
     # Sanity check the licence of the input file(s)
     line = f.readline()
@@ -126,8 +126,8 @@ for name in infiles:
               (sys.argv[0], name, line.strip()), file=sys.stderr)
         exit(1)
 
-    input += f.read();
-    f.close();
+    input += f.read()
+    f.close()
 
 # replace path in "infiles" by path in '/usr/include' to avoid exposing the
 # build directory path in the generated headers.
@@ -151,83 +151,81 @@ output += """/* SPDX-License-Identifier: MIT */
 """ % (arch, headers_name_list, sys.argv[0], fileid, fileid)
 
 if arch in header:
-    output += header[arch];
-    output += "\n";
+    output += header[arch]
+    output += "\n"
 
 defined = {}
 
 # add defines to output
 for line in re.findall("#define[^\n]+", input):
     for define in defines:
-        regex = "#define\s+%s\\b" % define;
-        match = re.search(regex, line);
+        regex = "#define\s+%s\\b" % define
+        match = re.search(regex, line)
         if None == match:
-            continue;
+            continue
         defined[define] = 1
         if define.upper()[0] == define[0]:
-            replace = define + "_" + arch.upper();
+            replace = define + "_" + arch.upper()
         else:
-            replace = define + "_" + arch;
-        regex = "\\b%s\\b" % define;
-        output += re.sub(regex, replace, line) + "\n";
-output += "\n";
+            replace = define + "_" + arch
+        regex = "\\b%s\\b" % define
+        output += re.sub(regex, replace, line) + "\n"
+output += "\n"
 
 # delete defines, comments, empty lines
-input = re.sub("#define[^\n]+\n", "", input);
+input = re.sub("#define[^\n]+\n", "", input)
 input = re.compile("/\*(.*?)\*/", re.S).sub("", input)
-input = re.compile("\n\s*\n", re.S).sub("\n", input);
+input = re.compile("\n\s*\n", re.S).sub("\n", input)
 
 # add unions to output
 for union in unions:
-    regex = "union\s+%s\s*\{(.*?)\n\};" % union;
+    regex = "union\s+%s\s*\{(.*?)\n\};" % union
     match = re.search(regex, input, re.S)
     if None == match:
-        output += "#define %s_has_no_%s 1\n" % (arch, union);
+        output += "#define %s_has_no_%s 1\n" % (arch, union)
     else:
-        output += "union %s_%s {%s\n};\n" % (union, arch, match.group(1));
-    output += "\n";
+        output += "union %s_%s {%s\n};\n" % (union, arch, match.group(1))
+    output += "\n"
 
 # add structs to output
 for struct in structs:
-    regex = "(?:#ifdef ([A-Z_]+))?\nstruct\s+%s\s*\{(.*?)\n\};" % struct;
+    regex = "(?:#ifdef ([A-Z_]+))?\nstruct\s+%s\s*\{(.*?)\n\};" % struct
     match = re.search(regex, input, re.S)
     if None == match or \
            (match.group(1) is not None and match.group(1) not in defined):
-        output += "#define %s_has_no_%s 1\n" % (arch, struct);
+        output += "#define %s_has_no_%s 1\n" % (arch, struct)
     else:
-        output += "struct %s_%s {%s\n};\n" % (struct, arch, match.group(2));
-        output += "typedef struct %s_%s %s_%s_t;\n" % (struct, arch, struct, arch);
-    output += "\n";
+        output += "struct %s_%s {%s\n};\n" % (struct, arch, match.group(2))
+        output += "typedef struct %s_%s %s_%s_t;\n" % (struct, arch, struct, arch)
+    output += "\n"
 
 # add footer
 if arch in footer:
-    output += footer[arch];
-    output += "\n";
-output += "#endif /* %s */\n" % fileid;
+    output += footer[arch]
+    output += "\n"
+output += "#endif /* %s */\n" % fileid
 
 # replace: defines
 for define in defines:
     if define.upper()[0] == define[0]:
-        replace = define + "_" + arch.upper();
+        replace = define + "_" + arch.upper()
     else:
-        replace = define + "_" + arch;
-    output = re.sub("\\b%s\\b" % define, replace, output);
+        replace = define + "_" + arch
+    output = re.sub("\\b%s\\b" % define, replace, output)
 
 # replace: unions
 for union in unions:
-    output = re.sub("\\b(union\s+%s)\\b" % union, "\\1_%s" % arch, output);
+    output = re.sub("\\b(union\s+%s)\\b" % union, "\\1_%s" % arch, output)
 
 # replace: structs + struct typedefs
 for struct in structs:
-    output = re.sub("\\b(struct\s+%s)\\b" % struct, "\\1_%s" % arch, output);
-    output = re.sub("\\b(%s)_t\\b" % struct, "\\1_%s_t" % arch, output);
+    output = re.sub("\\b(struct\s+%s)\\b" % struct, "\\1_%s" % arch, output)
+    output = re.sub("\\b(%s)_t\\b" % struct, "\\1_%s_t" % arch, output)
 
 # replace: integer types
 for old, new in inttypes[arch]:
     output = re.sub("\\b%s\\b" % old, new, output)
 
 # print results
-f = open(outfile, "w");
-f.write(output);
-f.close;
-
+with open(outfile, "w") as f:
+    f.write(output)
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 22:55:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 22:55:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753354.1161590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP8sw-0004L6-TX; Wed, 03 Jul 2024 22:55:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753354.1161590; Wed, 03 Jul 2024 22:55: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 1sP8sw-0004Kz-QQ; Wed, 03 Jul 2024 22:55:34 +0000
Received: by outflank-mailman (input) for mailman id 753354;
 Wed, 03 Jul 2024 22: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=i9qc=OD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sP8sv-0004Kt-35
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 22:55:33 +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 5954058a-398f-11ef-bbf9-fd08da9f4363;
 Thu, 04 Jul 2024 00:55:31 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-58b0dddab8cso20899a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 15:55:31 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72aaf638f3sm549984566b.89.2024.07.03.15.55.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 15:55: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: 5954058a-398f-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720047330; x=1720652130; 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=xNUcg+74yo1LZXA7SrhNeHIJmGxigv4IommGW56xp0A=;
        b=GV/6xALTND81lh6Fvta9lGwAV+aBgpl6n0VUnoEay0tAhUATSXcgR2eiIiry7x+gvi
         ru37Mdqr3VhU08qDpSeoxNoq5n9UOcVxFKG3qpHDgLR9DQR4zlqnVWI9yazEmDNCF/wH
         dY9DotpjXeScHc8bKurQWC5nJkjUpRcq+4nYU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720047330; x=1720652130;
        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=xNUcg+74yo1LZXA7SrhNeHIJmGxigv4IommGW56xp0A=;
        b=rr/T0u3BKOrzHPDePQthEJSMpdzc1bzYcwv05yQ63IkDPBATNanR8RCRHI9V0EeXAC
         IhqyRpGPAqJr0n4+3TMN8KdfVOuInpcTrsjbBDLjZ9t0rj141aVDKQgcTC46HTXztCE2
         4z69ehieVIc/Q+KrNvaw/OAn+1K+Fgudlzs4noSFYVNIhz9J1EYY4ejmax9BbsbcC+/r
         iYtQvgd77vMOW7uxaAeY5fr1OI99/TQvejYyQQntFsd5yrMYhFTAT8f4c6UBiZ0celmv
         T6CrcPWhVmf/eguEE2p1VdUgzftHwmw+wxIJbVG1AhDFo+97iJ1g8B9FOOwkYVNFs7lP
         HXyA==
X-Gm-Message-State: AOJu0YzlaTljI7Q40etL1APT1qHepES0MBKPKlCWhZ7q0oF2GkyDx2Zh
	TActKOPNKQBAGa398No80xji27XMZ6CWjmy5iM+PPMZuUS+VnfcpZq3QA/EdnHa1LkBQPHnNXak
	O
X-Google-Smtp-Source: AGHT+IHz12w/BXciCsA/NEklP5zwdjQGhruZ7XJg6uhpo1RWrskbviq0d4qM0PSt/EPhk+ovOcx8uw==
X-Received: by 2002:a17:906:d1cf:b0:a77:aea8:a793 with SMTP id a640c23a62f3a-a77aea8abb8mr79319466b.45.1720047329841;
        Wed, 03 Jul 2024 15:55: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>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19? 0/2] build/mkheader: Fixes
Date: Wed,  3 Jul 2024 23:55:23 +0100
Message-Id: <20240703225525.1759907-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

For 4.19?  Noticed while staring at build logs.  Low risk, as the build system
contains a cross-check that mkheader generates the same layout.

Not the end of the world if these fixes delay to 4.20.

Andrew Cooper (2):
  build/mkheader: Remove C-isms from the code
  build/mkheader: Fix Syntax/DeprecationWarnings

 tools/include/xen-foreign/mkheader.py | 108 +++++++++++++-------------
 1 file changed, 53 insertions(+), 55 deletions(-)

-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 03 22:55:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Jul 2024 22:55:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753356.1161610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP8t0-0004pf-B8; Wed, 03 Jul 2024 22:55:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753356.1161610; Wed, 03 Jul 2024 22:55:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sP8t0-0004pW-7d; Wed, 03 Jul 2024 22:55:38 +0000
Received: by outflank-mailman (input) for mailman id 753356;
 Wed, 03 Jul 2024 22:55:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i9qc=OD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sP8sz-0004Kt-Mt
 for xen-devel@lists.xenproject.org; Wed, 03 Jul 2024 22:55:37 +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 5ca5a0bf-398f-11ef-bbf9-fd08da9f4363;
 Thu, 04 Jul 2024 00:55:37 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7194ce90afso1946666b.2
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 15:55:37 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72aaf638f3sm549984566b.89.2024.07.03.15.55.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jul 2024 15: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: 5ca5a0bf-398f-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720047335; x=1720652135; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AFUGiegqbMuC9H9PbqyiLhEoErZkG5s/nrc/O3c/qqA=;
        b=OxGXtAVJ4Nv5v67J+5JiaUB/8NAldl+flItHWUuPHqRHBjrpVZDA4KGltCfcWd7oNW
         NJs8AAjQuXDD5BMy5OKoCPheo6W14jKvIeWWQq6g/xl13EYHaIrnliC+7zJ0ulXxQdwc
         7+k+S8mlkP5ZkkNZLkWBsuQg12Mqn934cTA+I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720047335; x=1720652135;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=AFUGiegqbMuC9H9PbqyiLhEoErZkG5s/nrc/O3c/qqA=;
        b=AQmDgDnyO7CQc22kjkmO75bn8pdiqn6L/WoXqoDJPl8dRU7+mRxl83PaBsCwBi5k2i
         J3DE4+KCenjGK+0IS/vHUas7Y5Uu0xPrUoJP++9jdqVa3xDpLwlTvS8jzaDoMncEx7+V
         ziwQC0Ua7aLKPfpVL9rdcHLNGu4+I1wAYUe6pCe0HjuyJCgW7K0dwd07UdeccdVi+yXL
         IrQVgRLpmgcHTTI12RaMnToY/0sA5h2Z99YYQCVQQOQF6nBFcnQje2Z/ZuVnTz0oQAb2
         NfttDK67NiSmJf9hw2xJM9TmQ/J6/V6xSRe0MYe3HhCA5JodFhIaDMq3vNWHLkExnlvJ
         S/eg==
X-Gm-Message-State: AOJu0Yy+6VUpCzflH4zg9x3KQ2Qr3jNSq/z7PYrxF7rdvi5CcXvNrgDF
	iOcaXvsUFUD0YSwQUGEwa4SjaMtxlfB97pedlIOgGWW76oQBTL+l5x9CO3EKVCD7ROHwdIxZ0kd
	w
X-Google-Smtp-Source: AGHT+IETyXGsHmaw2eGrnOW4zIkrlxRNxnzOyZgqrp1bog7Onu2fsOpqcWadq5jB2XvIpNO5yxp0ww==
X-Received: by 2002:a17:907:31c6:b0:a72:b340:8827 with SMTP id a640c23a62f3a-a75144398c7mr1014444966b.41.1720047335609;
        Wed, 03 Jul 2024 15:55:35 -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>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 2/2] build/mkheader: Fix Syntax/DeprecationWarnings
Date: Wed,  3 Jul 2024 23:55:25 +0100
Message-Id: <20240703225525.1759907-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240703225525.1759907-1-andrew.cooper3@citrix.com>
References: <20240703225525.1759907-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With Python 3.11, the following is emitted during a build:

  tools/include/xen-foreign/mkheader.py:162: DeprecationWarning: invalid escape sequence '\s'
    regex = "#define\s+%s\\b" % define;
  tools/include/xen-foreign/mkheader.py:177: DeprecationWarning: invalid escape sequence '\*'
    input = re.compile("/\*(.*?)\*/", re.S).sub("", input)
  tools/include/xen-foreign/mkheader.py:178: DeprecationWarning: invalid escape sequence '\s'
    input = re.compile("\n\s*\n", re.S).sub("\n", input);
  tools/include/xen-foreign/mkheader.py:182: DeprecationWarning: invalid escape sequence '\s'
    regex = "union\s+%s\s*\{(.*?)\n\};" % union;
  tools/include/xen-foreign/mkheader.py:192: DeprecationWarning: invalid escape sequence '\s'
    regex = "(?:#ifdef ([A-Z_]+))?\nstruct\s+%s\s*\{(.*?)\n\};" % struct;
  tools/include/xen-foreign/mkheader.py:218: DeprecationWarning: invalid escape sequence '\s'
    output = re.sub("\\b(union\s+%s)\\b" % union, "\\1_%s" % arch, output);
  tools/include/xen-foreign/mkheader.py:222: DeprecationWarning: invalid escape sequence '\s'
    output = re.sub("\\b(struct\s+%s)\\b" % struct, "\\1_%s" % arch, output);

Python regexes should use raw strings.  Convert all regexes, and drop escaped
backslashes.  Note that regular escape sequences are interpreted normally when
parsing a regex, so \n even in a raw-string regex is a newline.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 tools/include/xen-foreign/mkheader.py | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/tools/include/xen-foreign/mkheader.py b/tools/include/xen-foreign/mkheader.py
index 3a33df4984a2..128b0f3014c2 100644
--- a/tools/include/xen-foreign/mkheader.py
+++ b/tools/include/xen-foreign/mkheader.py
@@ -159,7 +159,7 @@ defined = {}
 # add defines to output
 for line in re.findall("#define[^\n]+", input):
     for define in defines:
-        regex = "#define\s+%s\\b" % define
+        regex = r"#define\s+%s\b" % define
         match = re.search(regex, line)
         if None == match:
             continue
@@ -168,18 +168,18 @@ for line in re.findall("#define[^\n]+", input):
             replace = define + "_" + arch.upper()
         else:
             replace = define + "_" + arch
-        regex = "\\b%s\\b" % define
+        regex = r"\b%s\b" % define
         output += re.sub(regex, replace, line) + "\n"
 output += "\n"
 
 # delete defines, comments, empty lines
 input = re.sub("#define[^\n]+\n", "", input)
-input = re.compile("/\*(.*?)\*/", re.S).sub("", input)
-input = re.compile("\n\s*\n", re.S).sub("\n", input)
+input = re.compile(r"/\*(.*?)\*/", re.S).sub("", input)
+input = re.compile(r"\n\s*\n", re.S).sub("\n", input)
 
 # add unions to output
 for union in unions:
-    regex = "union\s+%s\s*\{(.*?)\n\};" % union
+    regex = r"union\s+%s\s*\{(.*?)\n\};" % union
     match = re.search(regex, input, re.S)
     if None == match:
         output += "#define %s_has_no_%s 1\n" % (arch, union)
@@ -189,7 +189,7 @@ for union in unions:
 
 # add structs to output
 for struct in structs:
-    regex = "(?:#ifdef ([A-Z_]+))?\nstruct\s+%s\s*\{(.*?)\n\};" % struct
+    regex = r"(?:#ifdef ([A-Z_]+))?\nstruct\s+%s\s*\{(.*?)\n\};" % struct
     match = re.search(regex, input, re.S)
     if None == match or \
            (match.group(1) is not None and match.group(1) not in defined):
@@ -211,20 +211,20 @@ for define in defines:
         replace = define + "_" + arch.upper()
     else:
         replace = define + "_" + arch
-    output = re.sub("\\b%s\\b" % define, replace, output)
+    output = re.sub(r"\b%s\b" % define, replace, output)
 
 # replace: unions
 for union in unions:
-    output = re.sub("\\b(union\s+%s)\\b" % union, "\\1_%s" % arch, output)
+    output = re.sub(r"\b(union\s+%s)\b" % union, r"\1_%s" % arch, output)
 
 # replace: structs + struct typedefs
 for struct in structs:
-    output = re.sub("\\b(struct\s+%s)\\b" % struct, "\\1_%s" % arch, output)
-    output = re.sub("\\b(%s)_t\\b" % struct, "\\1_%s_t" % arch, output)
+    output = re.sub(r"\b(struct\s+%s)\b" % struct, r"\1_%s" % arch, output)
+    output = re.sub(r"\b(%s)_t\b" % struct, r"\1_%s_t" % arch, output)
 
 # replace: integer types
 for old, new in inttypes[arch]:
-    output = re.sub("\\b%s\\b" % old, new, output)
+    output = re.sub(r"\b%s\b" % old, new, output)
 
 # print results
 with open(outfile, "w") as f:
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 02:57:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 02:57:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753392.1161621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPCeR-0004KO-JO; Thu, 04 Jul 2024 02:56:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753392.1161621; Thu, 04 Jul 2024 02: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 1sPCeR-0004KH-ER; Thu, 04 Jul 2024 02:56:51 +0000
Received: by outflank-mailman (input) for mailman id 753392;
 Thu, 04 Jul 2024 02:56: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=IA8J=OE=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sPCeQ-0004KB-4d
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 02:56:50 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20600.outbound.protection.outlook.com
 [2a01:111:f403:2416::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0bc9fca8-39b1-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 04:56:47 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH7PR12MB9075.namprd12.prod.outlook.com (2603:10b6:510:2f0::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.25; Thu, 4 Jul
 2024 02:56: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.7719.029; Thu, 4 Jul 2024
 02:56: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: 0bc9fca8-39b1-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=b7lsSfhtICO37qih6cjdqKFH4kJMcD39HdfCs1JWpNmky6iJV3TFgcptiLbGnnecENW4s4DaH6hcHnl2xNjNWztcGBHtinUrIkDoI6kpwSxJr2B9gQhWzYborHwsyqUyHKItZbj5F5WzoNUiyDo0GUXmtAv82UFjVdQSgrpqMJhQRPLcRpP7hm7G3IOl0qCxsUojtLBaOn2024WkPuY9MujP63tZF0cFovA50B22Lu9Uv2qBlcsBuU386+U4fc4pUBs4DYN4iZWFIrtFMbSySPExq9kL6SkmhsC8EsWpjpKSCpmbupYgFmLN8DWVcKgkh+3ukOo9yBjit2zmFwHEig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EgItmVizOQUNebkE99hyaAXfDoqWtU6pkcyCZhfI7TI=;
 b=DyST0RL69DRDGHvemH8MFo50aE1+1I59YR9BgIETZaxjpWzf+lj4xMR/Xa0LI+LnyyF4uKvZDvwCHv/ZW+3Dr6be+e1Vg+GsB49YAKdQlWdrJLOclLr4PhnSBlrc7AKUMSZ7vFDVaZgh+D1PpK1eT1zA0Ne6btfEghTXPRz+hSfROsWG0eAbJvmPjkRdyANWhzHfTSeqwTvisxcLe1asf6IDL05+61WpSoRNBXakcrOMF90OeuM1P0Acy0c4ddonVImXSkGIbfJniMuDsk/Z7PyZlLXk+SrYPZDJhjCKvmu0WggNoPu2BYkqjRJ8DaWJOpo9opxSKcSqJXgjqXPxuw==
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=EgItmVizOQUNebkE99hyaAXfDoqWtU6pkcyCZhfI7TI=;
 b=J3zcm1dS6E89+GagV1CA05LmpaJWVALqMl4uRkopZafIxL4SxgNm39PAS6vReKD2e1y/XRKSG2/OsuqWPqInHA335V35TFPgRRTpAxY28BfBRMdgffj9ZidaJ4j5hzNRKjed3nX1WMiNJ/X1shuhKrmGL8UibFmVgfbrwq0fwps=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, Juergen
 Gross <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v11 2/8] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Topic: [XEN PATCH v11 2/8] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Index: AQHayunRhQS+lhfPgk6PWMYxsBafhLHhf0AAgAHJ+4D//9kSgIADSGaA
Date: Thu, 4 Jul 2024 02:56:40 +0000
Message-ID:
 <BL1PR12MB5849C0E9310A505E95937BDEE7DE2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-3-Jiqian.Chen@amd.com>
 <9a311ee0-dcf2-4609-aced-7f57b322da5f@suse.com>
 <BL1PR12MB5849C3882D31620ADAC55ADAE7DC2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <d1b22fa7-870e-4968-ba5d-c5d6fccb0af7@suse.com>
In-Reply-To: <d1b22fa7-870e-4968-ba5d-c5d6fccb0af7@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.7719.007)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|PH7PR12MB9075:EE_
x-ms-office365-filtering-correlation-id: d985f108-783f-4bd2-8bbc-08dc9bd4edba
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|7416014|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?cDVuM3lUTVJZbTdXaGtia2R6UGhqNUcrTnJPZ0tURTlPSlZFN1pLMkdwMmtX?=
 =?utf-8?B?TjZJa3ZWbStQVlVBWDFsMGg5enU2cWhtdzZ3cS9tUW5sKzFUMzh0K3UrZW1j?=
 =?utf-8?B?WThEUlA0eW9Pd2VSOUJXZzN6dWsvcStVOGNQcDJNU3VUS2Z0ZFVKTVFNbzk0?=
 =?utf-8?B?YlM0K1ppb2NkZG9meW4zbzhNb2RiZ1pDK1o2aVpSYkdINy82dHpiZUpicnF5?=
 =?utf-8?B?ZlhRbG55MC8zWGN1TE1YdmIvRXhYVTZSWVlQL1JIbWpnbjJHY0hnVHRZS3cr?=
 =?utf-8?B?SHFhcktncmppNHo4Z2lkdW5WYTZOcHlYY0hSWmtETWdsWFI4cnk5aUdwNkM3?=
 =?utf-8?B?NG9lWlJIZ1dqQ1FPeDF5YzlMMG9SK3pIM2RWSEYxbVI0Mm5vVzRST0hMRHZT?=
 =?utf-8?B?NGRqQWU0ZExKa21lK2R5K3NTZHB6RFpsdkhWd2MzaUpGQU1SUFJmQ3hVdDZP?=
 =?utf-8?B?MFdyNFFERDFBYWpkWUVLckxmZ2RWV25YeE5QRnhUbnA2aTQxb3VGanhVc2Jm?=
 =?utf-8?B?WllKL2t1clRFZDRoZW9aNUxEVjJTTE9wd2VWbWtDbVZLUE1SQ253NTJqUlgw?=
 =?utf-8?B?MTNhbVdKeG9udmlXdFNvdSttRGhabk1nam1UNThyTEtQUDUrMHVOYzg2WXdy?=
 =?utf-8?B?SDN1eTlrT0NSOEFzUFBjb1l1azUzWDIvYURmTll1OStzUnhLMDFtWHBjaXFJ?=
 =?utf-8?B?UlN2ODZmL3BrSUN6dlJVTVd6SnlZRFhBQTVNbU4wbWZSTVlQb3VuRjZuWWZR?=
 =?utf-8?B?TnBrTEM0bmdwdEd0TnJoOTYrQnd3UlBSUi9QVHIwREdtQ0FTU0cyclNLNmwx?=
 =?utf-8?B?RWI5V2VGbGZOR0RJNEgwaFp3Mmt2bVJQdEVqekVqdFBBTlVZdStSRVpLUmJZ?=
 =?utf-8?B?NC9MM1d5eGp3RldnQ09DSEsvYkQwbWlZbGFydTBrL2Rsc3JNTUN1Rkl5dExT?=
 =?utf-8?B?dnk4UThHdVY5RGoySEtjU214ZTJ5ZkU3YmFpcDBWbWRIL2t5OGY0dFV0dllY?=
 =?utf-8?B?Q1YxV3BVbkhTMWRlUXgvN0dBTTJTNmpISkdWVk5FSzZTOVVFVUJ2MlBjMmhD?=
 =?utf-8?B?Z2U5V1lsbnR1aE1DalVpVVVON1pjbUVPeGJzVWlRY2dHd0o4L3NUM2IwV0JW?=
 =?utf-8?B?TnF4Y1k2OVRrZGhhMklIRUg5T1RDKzVHVzdEcVJvUnJySXo2cktWRWYrZWZY?=
 =?utf-8?B?WUo1Nit0czVrck5teUt6Rm53ZHR4akwycVNHZUx2a3c2R3lmZnd4cmtiYncy?=
 =?utf-8?B?QlplczdKS3g0SWRhT1JGVjNFUzVwdnl3dUhZUjZoMFZHQ3pRZmliWGR6N1ZY?=
 =?utf-8?B?ZjdZRDBmSXl3Z2U5a0svd2Z0VHhDbXlCS3d3TzVpSVZzTDhWZmo5SnI4MmQz?=
 =?utf-8?B?b2pyUWJ6eW9ubjBvcFJBYk9lSHhpV1hoWFg0REN5Mi9UbkswdFNacVZYYTNF?=
 =?utf-8?B?cy9tYjBLbGhIenh4cU1HeVhORGVYY0Z5SDY3UThVcHR6cE9DSXZPQm5CKzBm?=
 =?utf-8?B?NjZDVW53aWR4QWZsUVlWcmRrNXA0cmR3YTdqdU5maEEvUjAyMXIrY3QwdHF2?=
 =?utf-8?B?c3hPTUNnUmVFMWEwQTZhUjdXazBjVExrZWZLemQ5VGhneEJnN25abExhVDNU?=
 =?utf-8?B?VGJmU0o3UzZGaEJlbU5JNkdLVC8rcTZhWUw0b3JrWi92SjhlT29NUGxvYUh4?=
 =?utf-8?B?dlpobmxlQTVqckF5UWd4b2FQUDU1b0FxL2diZ3BVejN6Tmd0NmFUZjZvdTNC?=
 =?utf-8?B?OGdBTi8yVVFMdS9hcHA2U0JuUTN5L3RsdC9sbk9OSjBseTVvUk5aN2FTb2tp?=
 =?utf-8?B?TUtVbEZ5RStVSDEzWWlDVmsrK2VIUW5EbXEvaW5JUkx0eWhUQmxTWFN5M1Ru?=
 =?utf-8?B?Mkl3WkJLMGt1ZHpkd0ZMT05kZ1RVWnl2WW1OM2d1L0U4ckE9PQ==?=
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)(7416014)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WjRLNldEUDlUMXIwMVA0SlgwZHlhNS9VMSswd1dINkFtZFIxUlY0cnhzcXZy?=
 =?utf-8?B?ak5VeEFWL0dmNm0rUHV4YVpUMjI2Nm9vNGxub3RyS29yMDVPYkhkNGs3RjRB?=
 =?utf-8?B?ODlyaVl1N3UwazFMR3lRQ3pYVFlqSUlhR2VORndNQVB5RWdkRkJjeFE4TXBv?=
 =?utf-8?B?SGN5RlFmZkttb3BOQzFzVi8rREx0ZENkQUI2bTB4QlZqbko4aFVDRWQ0eE5I?=
 =?utf-8?B?cEtZSXN4T0ZTaWhYVGJHVE1YYWtrWGF1M0liZUpHalhRVXJUY2lvY1N4Vmdo?=
 =?utf-8?B?NlFremRnbjRPRUw2R3FSWVdsUGhlbmdWaWI2dHBxclpmRnVyZWg0SlZCZDFW?=
 =?utf-8?B?T0luREFSd202YmlPL1ozTjBNL0lUdktMb0FRSmxPdUpyQTh2YUtHaG9WKzBP?=
 =?utf-8?B?bTNJOWx5ZExWeG9GWDBaOEVyYWl2Q20zT1JMclc4LzROUDZWalorYlEwK2Ry?=
 =?utf-8?B?OVE3TG11RVdOeUtaMkFORVNTS3gybmFsb1hOWngvbGdMVWFwUGRUMmpMemVi?=
 =?utf-8?B?N25TbVAzSUVsY1hkRUd5b0xaTWRXT3NvTDMxT1RNYkdnVnNyTTZTMURQeldS?=
 =?utf-8?B?bThPcWs3VDM2Ry9uRXdvVE1vdGVienRLc2kwN21xTUtoVHNYZERoQXd4R0tC?=
 =?utf-8?B?anMzQld5V2xHQVhmdy9uR1hUMC96dktjUGkxcmQxQW1rUFRlWEgyT3Y5ajZr?=
 =?utf-8?B?Q1BFZ0tkTjFzUUppMm5SSnFsdjVDRGV1clhjamxFUTVFQjNMYmNtL2poNndM?=
 =?utf-8?B?RXU0c1BoTDd4QytRbXFqaWRGaWZJYjFsRFVLbG9iRjdIa1JsSUEraVNhSDhp?=
 =?utf-8?B?Z2VIaWx2M2NtQ2pPZmt1MUdQZ3hkcHBQL0NQTmVzcE9hSkRWRFZWZXJYSVhr?=
 =?utf-8?B?RTNDcWdkeGZWVnp0TG1tekpoY2NnOW5CczlhT3d0Wms3V3hOUkNXUzFFUnMv?=
 =?utf-8?B?ZmFWUk1STCtSdVdjS3JGQ2RQVlFQN3NSemZWRzdrTjY1cXlyeWlCZ2d0LzNr?=
 =?utf-8?B?OU9sMU8rcVdPMWFKaEYyTFIrdEpld1BlUWpPSmVqd3lWMmVuV2tOUTVQUmRN?=
 =?utf-8?B?ZjYrblJheEtheE5WckM4TjFjNDhQNnRDZkdJL3pGZitOM0RoNzVoai91MWpa?=
 =?utf-8?B?QTdUNnRsbHE4VjhCQ3VjWnZjaVZWMVdpTENDN3FKTm9sMXFkSnp4VUxGUUU3?=
 =?utf-8?B?ODN1SStTblB6a1dtdUtVYklaVHZFV2ZYQi9TbVFxOExQN2N1UDVHVDd6aEdC?=
 =?utf-8?B?amcwdm91bmZpN3JYbWMzU0d0OUpxY3oxMWJDV2c1TFNPMFU2SDR3T1FVbEg2?=
 =?utf-8?B?Z2NQcWd5WVFGdllNa1JHYitCb3p2eDlPcy9DRkZwMjlJb3pvMGc1c1RZOFFI?=
 =?utf-8?B?eFJzRUc2OFpWaHRMYi9vanNpMm9McEwxbUxtb2J4S2V2UG43TmUzRnEvYzRQ?=
 =?utf-8?B?dWdMSS9YM2xzOWRjZE9UU1JiRUFwVVB6TEt4bW5DUVdRUWdCUGQ5ay9GTlpG?=
 =?utf-8?B?OHdEKzBCaHl3SkdnR3gxZTZEZHRHc2hFQWxSbDVaYVc2cXNrdjllKzY3VzVp?=
 =?utf-8?B?aWRoaTFpeW8xejdVRnExTjU5b09mc2JkZjFtL0E0bW1pT2FhZTlMN1BicXdG?=
 =?utf-8?B?b3V2TXNDcTEyOXJnbkZZbUZ5bmR6dUZBNmJWTnBrZyszOGpBQjdxWUttT1Nw?=
 =?utf-8?B?RVdIWVI4T1JrTFlpRVZGMDIzSnZhVjlCNFI0SmJyWkFuai84amQxSWlHa0Zv?=
 =?utf-8?B?UXJvdVBpd0pQQWhjeWt0VkhqQ1l1WGR0djJZZkM2WEJsYUMwU25paVBQZGVP?=
 =?utf-8?B?SlZ2YjAxcXc1ZitpYUFMV3lMUk5YZjIzMHBHQ3BCWWNDNGVUMk9VYXFiSzNo?=
 =?utf-8?B?TXRnWjNqcDRzMytwVTE5VnZTbURDakZnWHZ1MU5qNTNBVGltU3RyYjcxMXF6?=
 =?utf-8?B?QU0rQStab2lybVhBQmttZVQ4WHI4aVdMd0VBMHFoYzVaVkIxclpWZU9hbWxY?=
 =?utf-8?B?MThnZDE4Vm1TYkNoZldHSWFNWFlkK3ZqSkp3WGhXQmw4Y2JQSVM3QXovOFdG?=
 =?utf-8?B?aVhUM0UzMitSM0xZbWF3azNGaWo2ZHRBL0JDSk5LcklGRWdoVTB0SlNYTXZU?=
 =?utf-8?Q?XLlg=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <10B2F35870B49A4CA8DE48CCC0C734C6@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: d985f108-783f-4bd2-8bbc-08dc9bd4edba
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jul 2024 02:56:40.3512
 (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: ZTPcop6ucfkwu9ugUZ9uzl0TOEdCLeCMfXsga49M7guQGNq5WAZcpwsbgkeoAxJeLIJslBCXFxEdCaUvrhva6A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9075

T24gMjAyNC83LzIgMTY6NDQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwMi4wNy4yMDI0IDA1
OjE1LCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+PiBPbiAyMDI0LzcvMSAxNTo0NCwgSmFuIEJldWxp
Y2ggd3JvdGU6DQo+Pj4gT24gMzAuMDYuMjAyNCAxNDozMywgSmlxaWFuIENoZW4gd3JvdGU6DQo+
Pj4+IElmIHJ1biBYZW4gd2l0aCBQVkggZG9tMCBhbmQgaHZtIGRvbVUsIGh2bSB3aWxsIG1hcCBh
IHBpcnEgZm9yDQo+Pj4+IGEgcGFzc3Rocm91Z2ggZGV2aWNlIGJ5IHVzaW5nIGdzaSwgc2VlIHFl
bXUgY29kZQ0KPj4+PiB4ZW5fcHRfcmVhbGl6ZS0+eGNfcGh5c2Rldl9tYXBfcGlycSBhbmQgbGli
eGwgY29kZQ0KPj4+PiBwY2lfYWRkX2RtX2RvbmUtPnhjX3BoeXNkZXZfbWFwX3BpcnEuIFRoZW4g
eGNfcGh5c2Rldl9tYXBfcGlycQ0KPj4+PiB3aWxsIGNhbGwgaW50byBYZW4sIGJ1dCBpbiBodm1f
cGh5c2Rldl9vcCwgUEhZU0RFVk9QX21hcF9waXJxDQo+Pj4+IGlzIG5vdCBhbGxvd2VkIGJlY2F1
c2UgY3VycmQgaXMgUFZIIGRvbTAgYW5kIFBWSCBoYXMgbm8NCj4+Pj4gWDg2X0VNVV9VU0VfUElS
USBmbGFnLCBpdCB3aWxsIGZhaWwgYXQgaGFzX3BpcnEgY2hlY2suDQo+Pj4+DQo+Pj4+IFNvLCBh
bGxvdyBQSFlTREVWT1BfbWFwX3BpcnEgd2hlbiBkb20wIGlzIFBWSCBhbmQgYWxzbyBhbGxvdw0K
Pj4+PiBQSFlTREVWT1BfdW5tYXBfcGlycSBmb3IgdGhlIHJlbW92YWwgZGV2aWNlIHBhdGggdG8g
dW5tYXAgcGlycS4NCj4+Pj4gQW5kIGFkZCBhIG5ldyBjaGVjayB0byBwcmV2ZW50ICh1biltYXAg
d2hlbiB0aGUgc3ViamVjdCBkb21haW4NCj4+Pj4gaGFzIG5vIFg4Nl9FTVVfVVNFX1BJUlEgZmxh
Zy4NCj4+Pj4NCj4+Pj4gU28gdGhhdCB0aGUgaW50ZXJydXB0IG9mIGEgcGFzc3Rocm91Z2ggZGV2
aWNlIGNhbiBiZQ0KPj4+PiBzdWNjZXNzZnVsbHkgbWFwcGVkIHRvIHBpcnEgZm9yIGRvbVUgd2l0
aCBYODZfRU1VX1VTRV9QSVJRIGZsYWcNCj4+Pj4gd2hlbiBkb20wIGlzIFBWSA0KPj4+Pg0KPj4+
PiBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4+Pj4g
U2lnbmVkLW9mZi1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4NCj4+Pj4gU2lnbmVk
LW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+Pj4+IFJldmlld2Vk
LWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+DQo+Pj4NCj4+
PiBZb3Uga2VlcCBjYXJyeWluZyB0aGlzIFItYiwgZGVzcGl0ZSBtYWtpbmcgZnVuY3Rpb25hbCBj
aGFuZ2VzLiBUaGlzIGNhbid0IGJlDQo+Pj4gcXVpdGUgcmlnaHQuDQo+PiBXaWxsIHJlbW92ZSBp
biBuZXh0IHZlcnNpb24uDQo+Pg0KPj4+DQo+Pj4gV2hpbGUgZnVuY3Rpb25hbGx5IEknbSBub3cg
b2theSB3aXRoIHRoZSBjaGFuZ2UsIEkgc3RpbGwgaGF2ZSBhIGNvZGUgc3RydWN0dXJlDQo+Pj4g
Y29uY2VybjoNCj4+Pg0KPj4+PiAtLS0gYS94ZW4vYXJjaC94ODYvcGh5c2Rldi5jDQo+Pj4+ICsr
KyBiL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMNCj4+Pj4gQEAgLTMyMyw2ICszMjMsMTMgQEAgcmV0
X3QgZG9fcGh5c2Rldl9vcChpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFy
ZykNCj4+Pj4gICAgICAgICAgaWYgKCAhZCApDQo+Pj4+ICAgICAgICAgICAgICBicmVhazsNCj4+
Pj4gIA0KPj4+PiArICAgICAgICAvKiBQcmV2ZW50IG1hcHBpbmcgd2hlbiB0aGUgc3ViamVjdCBk
b21haW4gaGFzIG5vIFg4Nl9FTVVfVVNFX1BJUlEgKi8NCj4+Pj4gKyAgICAgICAgaWYgKCBpc19o
dm1fZG9tYWluKGQpICYmICFoYXNfcGlycShkKSApDQo+Pj4+ICsgICAgICAgIHsNCj4+Pj4gKyAg
ICAgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOw0KPj4+PiArICAgICAgICAgICAgcmV0dXJu
IC1FT1BOT1RTVVBQOw0KPj4+PiArICAgICAgICB9DQo+Pj4+ICsNCj4+Pj4gICAgICAgICAgcmV0
ID0gcGh5c2Rldl9tYXBfcGlycShkLCBtYXAudHlwZSwgJm1hcC5pbmRleCwgJm1hcC5waXJxLCAm
bXNpKTsNCj4+Pj4gIA0KPj4+PiAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsNCj4+Pj4g
QEAgLTM0Niw2ICszNTMsMTMgQEAgcmV0X3QgZG9fcGh5c2Rldl9vcChpbnQgY21kLCBYRU5fR1VF
U1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykNCj4+Pj4gICAgICAgICAgaWYgKCAhZCApDQo+Pj4+
ICAgICAgICAgICAgICBicmVhazsNCj4+Pj4gIA0KPj4+PiArICAgICAgICAvKiBQcmV2ZW50IHVu
bWFwcGluZyB3aGVuIHRoZSBzdWJqZWN0IGRvbWFpbiBoYXMgbm8gWDg2X0VNVV9VU0VfUElSUSAq
Lw0KPj4+PiArICAgICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgJiYgIWhhc19waXJxKGQpICkN
Cj4+Pj4gKyAgICAgICAgew0KPj4+PiArICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7
DQo+Pj4+ICsgICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQo+Pj4+ICsgICAgICAgIH0N
Cj4+Pj4gKw0KPj4+PiAgICAgICAgICByZXQgPSBwaHlzZGV2X3VubWFwX3BpcnEoZCwgdW5tYXAu
cGlycSk7DQo+Pj4+ICANCj4+Pj4gICAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7DQo+Pj4N
Cj4+PiBJZiB5b3UgZGlkIGdvIGxvb2ssIHlvdSB3aWxsIGhhdmUgbm90aWNlZCB0aGF0IHdlIHVz
ZSAicmV0dXJuIiBpbiB0aGUgbWlkZGxlDQo+Pj4gb2YgdGhpcyBmdW5jdGlvbiBvbmx5IHZlcnkg
c3BhcmluZ2x5ICh3aGVuIGFsdGVybmF0aXZlcyB3b3VsZCByZXN1bHQgaW4gbW9yZQ0KPj4+IGNv
bXBsaWNhdGVkIGNvZGUgZWxzZXdoZXJlKS4gSSB0aGluayB5b3Ugd2FudCB0byBhdm9pZCAicmV0
dXJuIiBoZXJlLCB0b28sDQo+Pj4gYW5kIHByb2JhYmx5IGdvIGV2ZW4gZnVydGhlciBhbmQgYXZv
aWQgdGhlIGV4dHJhIHJjdV91bmxvY2tfZG9tYWluKCkgYXMgd2VsbC4NCj4+PiBUaGF0J3MgZWFz
aWx5IHBvc3NpYmxlIHRvIGFycmFuZ2UgZm9yICh0YWtpbmcgdGhlIGxhdHRlciBjYXNlIGFzIGV4
YW1wbGUpOg0KPj4+DQo+Pj4gICAgICAgICAvKiBQcmV2ZW50IHVubWFwcGluZyB3aGVuIHRoZSBz
dWJqZWN0IGRvbWFpbiBoYXMgbm8gWDg2X0VNVV9VU0VfUElSUSAqLw0KPj4+ICAgICAgICAgaWYg
KCAhaXNfaHZtX2RvbWFpbihkKSB8fCBoYXNfcGlycShkKSApDQo+Pj4gICAgICAgICAgICAgcmV0
ID0gcGh5c2Rldl91bm1hcF9waXJxKGQsIHVubWFwLnBpcnEpOw0KPj4+ICAgICAgICAgZWxzZQ0K
Pj4+ICAgICAgICAgICAgIHJldCA9IC1FT1BOT1RTVVBQOw0KPj4+DQo+Pj4gICAgICAgICByY3Vf
dW5sb2NrX2RvbWFpbihkKTsNCj4+Pg0KPj4+IFBlcnNvbmFsbHkgSSB3b3VsZCBldmVuIHVzZSBh
IGNvbmRpdGlvbmFsIG9wZXJhdG9yIGhlcmUsIGJ1dCBJIGJlbGlldmUNCj4+PiBvdGhlcnMgbWln
aHQgZGlzbGlrZSBpdHMgdXNlIGluIHNpdHVhdGlvbnMgbGlrZSB0aGlzIG9uZS4NCj4+Pg0KPj4+
IFRoZSByZS1hcnJhbmdlbWVudCBtYWtlIGEgbGl0dGxlIG1vcmUgbm90aWNlYWJsZSB0aG91Z2gg
dGhhdCB0aGUgY29tbWVudA0KPj4+IGlzbid0IHF1aXRlIHJpZ2h0IGVpdGhlcjogUFYgZG9tYWlu
cyBuZWNlc3NhcmlseSBoYXZlIG5vDQo+Pj4gWDg2X0VNVV9VU0VfUElSUS4gTWF5YmUgIi4uLiBo
YXMgbm8gbm90aW9uIG9mIHBJUlEiPw0KPj4NCj4+IE9yIGp1c3QgbGlrZSBiZWxvdz8NCj4+DQo+
PiAgICAgICAgIC8qDQo+PiAgICAgICAgICAqIFByZXZlbnQgdW5tYXBwaW5nIHdoZW4gdGhlIHN1
YmplY3QgaHZtIGRvbWFpbiBoYXMgbm8NCj4+ICAgICAgICAgICogWDg2X0VNVV9VU0VfUElSUQ0K
Pj4gICAgICAgICAgKi8NCj4+ICAgICAgICAgaWYgKCBpc19odm1fZG9tYWluKGQpICYmICFoYXNf
cGlycShkKSApDQo+PiAgICAgICAgICAgICByZXQgPSAtRU9QTk9UU1VQUDsNCj4+ICAgICAgICAg
ZWxzZQ0KPj4gICAgICAgICAgICAgcmV0ID0gcGh5c2Rldl91bm1hcF9waXJxKGQsIHVubWFwLnBp
cnEpOw0KPiANCj4gTm8gb2JqZWN0aW9uIHRvIHRoZSBzbGlnaHRseSBjaGFuZ2VkIGNvbW1lbnQu
IFRoZSBjb2RlIGFsdGVybmF0aXZlIHlvdQ0KPiBwcmVzZW50IGlzIG9mIGNvdXJzZSBmdW5jdGlv
bmFsbHkgaWRlbnRpY2FsLCB5ZXQgcGVyc29uYWxseSBJIHByZWZlciB0bw0KPiBoYXZlIHRoZSAi
Z29vZCIgY2FzZSBvbiB0aGUgImlmIiBicmFuY2ggYW5kIHRoZSAiYmFkIiBvbmUgZm9sbG93aW5n
DQo+ICJlbHNlIi4gSSB3b3VsZG4ndCBpbnNpc3QsIHRob3VnaC4NCk9LLCB3aWxsIGNoYW5nZSAi
Z29vZCIgY2FzZSBvbiB0aGUgImlmIiBicmFuY2guDQpEbyBJIG5lZWQgdG8gY2hhbmdlICIhaXNf
aHZtX2RvbWFpbihkKSIgdG8gImlzX3B2X2RvbWFpbihkKSIgPw0KQW5kIHRoZW4gaGF2ZToNCg0K
ICAgICAgICAvKiBPbmx5IHVubWFwcGluZyB3aGVuIHRoZSBzdWJqZWN0IGRvbWFpbiBoYXMgYSBu
b3Rpb24gb2YgUElSUSAqLw0KICAgICAgICBpZiAoIGlzX3B2X2RvbWFpbihkKSB8fCBoYXNfcGly
cShkKSApDQogICAgICAgICAgICByZXQgPSBwaHlzZGV2X3VubWFwX3BpcnEoZCwgdW5tYXAucGly
cSk7DQogICAgICAgIGVsc2UNCiAgICAgICAgICAgIHJldCA9IC1FT1BOT1RTVVBQOw0KDQo+IA0K
PiBKYW4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 03:03:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 03:03:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753399.1161631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPCl5-00060g-Ef; Thu, 04 Jul 2024 03:03:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753399.1161631; Thu, 04 Jul 2024 03: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 1sPCl5-00060Z-9r; Thu, 04 Jul 2024 03:03:43 +0000
Received: by outflank-mailman (input) for mailman id 753399;
 Thu, 04 Jul 2024 03:03:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IA8J=OE=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sPCl4-00060T-LG
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 03:03:42 +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 02f4b065-39b2-11ef-bbf9-fd08da9f4363;
 Thu, 04 Jul 2024 05:03:41 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DS0PR12MB9348.namprd12.prod.outlook.com (2603:10b6:8:1a0::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.25; Thu, 4 Jul
 2024 03:03:33 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.7719.029; Thu, 4 Jul 2024
 03:03: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: 02f4b065-39b2-11ef-bbf9-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RdW1GDJJb99V8mQtbx/VAq7Tx1vWoYMydRH5Ybg/3qdqe2isWQ5XPO1zkbxdVJKD8yIDN3o0pXUWJ10qyWMNdDxIVFXu6tjmgdd3XA6X3YewEbtkQrX8pc50BgvRTE3vpsmCdYnrpnoM2y+ugOIvX5Nr7SGut4zw0puIpROzsqSrOQCiqH+LfN+Z1+V3TZIPW09mzGgoQVYr4dth4r2hAhVLR0rn7n7wttSNICSCRUAGWeonA8oLO0uWKSEp2+L1FDdlW4LH0m5hWzM3DoxSyemju3SF+fn4dzQnXFndaWU1DTYzdzIBenRF9MtWb+F6AY5cPPAStpr854gpcWyc8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0ZYjynGsoSFoz0htLmbACSNtfQnTyz8AgRZKLv/fBn4=;
 b=COBGS/mG7eFBEypceJaritB9OJ2/vCbc4fGAjrTyIxyjpzr2jlvGmDbEbyuN7jfNyIhJdWzbHgypfogZ6wyrV1Snw2BYilbzsTK9FDObhGOjkPS4bHRd5VwMrDPt8AHRwCuBGNGAftESGABsttNtJDwTZpCS8/UhaZnLPPECp478PNibqMzovi7S+dEdBkJ7xzDEk98OZ3mXC7ZlaE+XM1Ng3ACfoTaurpfNVxOn9woGPJGfHxbqnjVoD3W7pppWBWa875a0iZ0Er+hX+JhVkt3+vs/o9e2v01ZCVT+/30JEuaCeBRYXEKvB9iXns/AhANdVXzKVwPw37grQlv360w==
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=0ZYjynGsoSFoz0htLmbACSNtfQnTyz8AgRZKLv/fBn4=;
 b=4SqdZohyI4WFJGlf2A60MK9BeTk/q1Q19uj9o8+38hzMa57vnfgKkHY5G8oLJuSqZgBIsKCkl0xCq6nh1msaxZaZwwwNtbfJkZ6jzFxR/7FWu8qUS9PDGXik++zmmw9gaPGvxHtuHP8eJ8lNCJt1ICwk+8NZf7gL/pqlIRbIovo=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Anthony PERARD <anthony@xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap
	<gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v11 7/8] tools: Add new function to get gsi from
 dev
Thread-Topic: [RFC XEN PATCH v11 7/8] tools: Add new function to get gsi from
 dev
Thread-Index: AQHayundYHEz4Kn0sEizSQnui4wvzbHhe8EAgAHYIoCAAxhTAA==
Date: Thu, 4 Jul 2024 03:03:33 +0000
Message-ID:
 <BL1PR12MB5849FCBC958FA5F52262489EE7DE2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-8-Jiqian.Chen@amd.com>
 <ff827def-743c-4312-88fb-dbd1b87bb85d@suse.com>
 <BL1PR12MB5849626196B8DE37E0BA4F20E7DC2@BL1PR12MB5849.namprd12.prod.outlook.com>
In-Reply-To:
 <BL1PR12MB5849626196B8DE37E0BA4F20E7DC2@BL1PR12MB5849.namprd12.prod.outlook.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.7719.007)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|DS0PR12MB9348:EE_
x-ms-office365-filtering-correlation-id: 2374e4f0-fb58-4323-19ed-08dc9bd5e40d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|7416014|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Y2w2YjIrSHpqYlp2ZndydmZXWWNJZDJTTnlUa3MxM3JTSEhWaE4yNTFYSEVK?=
 =?utf-8?B?RFlSYVFkZEZlaGZFTFNzMitxb2NNMklpTHdSRkE0Z2oxa2t5akxyYWZESjkx?=
 =?utf-8?B?RGhTVEZ0d3BET0ZPaVFoUzR5SG1rOExpZXZROFlFblQ1WjVGcmluVU9QRzl5?=
 =?utf-8?B?MlRJR2VWMUZYQXZiWkhwWHBrL2F4N29rdXJYN3NoRjNRa3B6Q0pIRU9JbE8x?=
 =?utf-8?B?aGVXMHhGOGJWa3pYZzVlWHA4VjBiQ2FuaXVtZ05IY2VoZFEwWWNVMmFhTmp1?=
 =?utf-8?B?WDJmTFhSZitBeUZTMGlicW1RbUJ6My9nTm9ua3N3Tk45RkNtd2hCS1J0S3Ft?=
 =?utf-8?B?YVdoM1hERmY2UE9oSGFjMHF4OFhVTHRBOVRhNDdtMDhMd1BXd3A3Wk45K095?=
 =?utf-8?B?RkJCSTh5dXdJd3N5c1dBUUEyYVQwSHdaOTlNdFh3QVJNejZoZGFvK2VhaFpi?=
 =?utf-8?B?dDRzS1czbDNmWHB5OVIvVFNwTGJjTGZkcjBzVDU3ZnE2OTIzbjdRMVVoUVpt?=
 =?utf-8?B?UUtheXBKL0NPN3pHKy9GcW9MUGh5d1F2Z2dqUUdKNHljQU1EVTNMbUxlNmZm?=
 =?utf-8?B?L1JjLzVvT21FbkRBMmtUbDZ3WEpWL3N5aCt5ZVhsZjlmNjN0UWZQQThQek1X?=
 =?utf-8?B?ME1sUm1BV3AwbmRkK3VpeW5MOS83R1ZTTGN0R0EzVEJhUXM4Nk5BbWNDemMx?=
 =?utf-8?B?ekQ0QitPNkgvUXVSb0xWY0NMMzBRcTlra3JYM3YwSlJ6cGx5UERUKzVmUHJP?=
 =?utf-8?B?aEpLOTk1WjFXOFRRUXBlUFRJaHQ2bTZLVGc3eVBYMTBmY255eTdySkxsSzRB?=
 =?utf-8?B?R3JNRU9lWElNTElaZkZQQ1Fpb3NCdEhSRVpQdDJwSHlUK0VjZ1AzVURrTCtz?=
 =?utf-8?B?UEpFQ0RNb2JVRmcyelAxTlBrd0pLeG9EclpoUXlwTnlmeFlGTmtQUEVleDFF?=
 =?utf-8?B?bG9HRjh4R3J4SEtQZ0VZNHBiNFVmRHkzc3U4UGpuMDlkUUdLMU4xRmZwdHl1?=
 =?utf-8?B?eGhVRFl0ZTdNLzgydzNDYzZWYVpwMGZvS0JTdkJoMVZIWElQeFYxUVlNMjIv?=
 =?utf-8?B?KzkyNDhYdlBEZm12TFZkZXN6UDZ1VGRDaHZiM2xhOHVJVGVCeFhNMHBlclIv?=
 =?utf-8?B?VWYrMjgxSDlldkM1UEFWaERja1VYTlFyNHFOSk1QZnZJd0I3M3Z6eW5KOTJP?=
 =?utf-8?B?M0pmVHpZOTlKc3VBNmFwVWJzK2M0bDA2akZ2ZkczN0NFWXV4V1RySWkwRDFR?=
 =?utf-8?B?TllJVUxRZVVjbFpGTUM0Yk5EbHZkaW9tOTVtK0RtUTFzbWpSRmxnUW84VGI2?=
 =?utf-8?B?NkVjZDM5L1VLQ3RGR2NlbmZqV0pLNXJmUTRZUEx2SVAyS29iQVZvbzhSTHFa?=
 =?utf-8?B?eFhPelNBUDRSSGx1QjlhWmZheDUyT2NjcUE4SzZuNU96L1drWTBUOUpZQTJt?=
 =?utf-8?B?WE5sK1B4NkZlOFpTeUt1dVJlUXV0NFM2Q3BOZURQQUxCay85QUloRGlyNTk5?=
 =?utf-8?B?R21MUUNCUGQzWG1kRGZtMDRmaGhNQjRiNFA1cGhqdnYxeEdlaFJRQ09lYThB?=
 =?utf-8?B?TmxPVkJsSG9KUFVRMjBIYUNTMnc4dUVaVFlDZm9FbW1HUFVTbnVDWEdzL2E0?=
 =?utf-8?B?RURDSE1ocThseldVN1kyTWlmdm40WWdNUTNaYUw0Vkp6NVdLcXBVelIwMW5m?=
 =?utf-8?B?M0gzV3E3Z0pHZXZ2Q1JRWW9iNzZSNnNJR1RmZ3lqUEVoaTJoVWwxcW10dUlT?=
 =?utf-8?B?WU1udG52RE1TY1Q0Qmh3NHZTeVFHc1pyR1ZjMmk1TTZndXh5V0JZUkt3eVJl?=
 =?utf-8?B?bkkxTzJ3b0Y3QVRkMUFqaWJidVU4c0NlTEgrRnYyNXRoa2V6blI2czlIc3k2?=
 =?utf-8?B?eDZzY1pJb0d2Qzl4SXN6Q2UwditpQVBLNy94V3A3Qjhucmc9PQ==?=
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)(7416014)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TVI4MndlVjBMVVJHNlZIa29mamRmZnBBa2U5U2xnSk8vMlVVNVg5YVdHbWxs?=
 =?utf-8?B?WWExcDN6UGF6Q21VWloxcDlGTjhTRHR0YXNEMXRscGRqVGthbTN0enpOVDhC?=
 =?utf-8?B?MzIvWFdqYldsRG1XVjZNWFlWa0Iwb3cyREFpTWM1RTByRVBMdWxnblh0RWtD?=
 =?utf-8?B?U3g2bzhlV2pIc3ZrNmNLYVNRY0dwc3BZVUQvcHV5T0ZyV1pIeGM1MDJnaVI3?=
 =?utf-8?B?bG1tdERROGJWSmkrVlBUTDdlTm5ISU85VHB3ZXpxaUoxTWd4NUUxRWFMMnBT?=
 =?utf-8?B?VVBEUUlmaU03akRqN005SDBHMTVvWGtqQWl3ZTUxa25ZaGx6UXdkSURmcFdE?=
 =?utf-8?B?Q0l1N2htcFNCVmljZjhnT0V0Sm1NdTdXanRsVGp6TkVEa3Bwb3lSVVI5b0ps?=
 =?utf-8?B?Nm1WbUtuNlcrZ09oUjVJbkJDSGw3czhFekhVaHBuQXZwOE5rQ01sTXoxS3p5?=
 =?utf-8?B?U2hXOEdLTmpvWEZuMk91TVJmaVNlWTVOa2l4ZElINTFrc1p5SE9ISm85enBZ?=
 =?utf-8?B?K0RtSHIyV2VHaFY4cXFCMGorMDU1MTVPcktDZFJWMGk0S3pRd3dsa3czV1Nr?=
 =?utf-8?B?QkF4aVZoMmljWVBBRGVZelN6K0VIanZDYXlKMXhEeUZjemZ5QmxsZHhiL3hP?=
 =?utf-8?B?TDZkaUl2cDlkOW42MytqZDJlY0RseTBSdmFxemR0ajVXZ1FPOVBOR0hlOGNu?=
 =?utf-8?B?c3BBNngyWXlyTlluWkFDcGx6RThUcC9CUWoveGh6NHJSRm5rSFNzQzA4RDdG?=
 =?utf-8?B?cjcrTGl4b3RZVGNmOWxZMklqNGVTaUVYV1ErdEhSdnFNUFZ3aGNNQ2VTa2Fu?=
 =?utf-8?B?clUwam83REZ6dUtJNW1kRU1NMEloY1F6elpYK2h2blJCVWxQakRseERaZ3pC?=
 =?utf-8?B?YjhKZ0Q0VEI4VzhVVEpLdjkxMTlxZm5wWFZiTU9RNUZJZ25ONTU0VVdPSmFh?=
 =?utf-8?B?SWdjcFZ4QnIzVTNDRzlVSld4bWc2bGFTZzNzekFYdzl6Y1VoM3lqbWFJQzBs?=
 =?utf-8?B?dmFOTzZYWHQ4aVNoN0c5ZEw0b2NDUUtKQzVpT1laaFN2VVBTZFA5bFlVQkhU?=
 =?utf-8?B?cFc0bVpZbGloVjBvdGpzMVZoYTlmVmdUNUZQQ0hvNW5GMmF0YzlDQ2k5eFcv?=
 =?utf-8?B?Yi9ueURNU0ZNWnFVZ25VOFp3UVNabTB6RTlIWm04NFJUYTRNM0ZjWC9XWUx3?=
 =?utf-8?B?V1kxM1lvK1ZhNHpCVTNMZGUvSVdLUEJvRXQrdjM4akRwRlRJZnNtVjVPYVhG?=
 =?utf-8?B?akFFZFZEdHhSWllNZmQxUEQzd1o2UEtzQW5jTVpmdXA5TzRuOExDK3pDbGVs?=
 =?utf-8?B?SXRiUk5aei9OQnROaUdKTkFRdExteVlGOTdUaVc3VEJtN2hhVVVJa2NieWFx?=
 =?utf-8?B?bmMzd29ScEZWS2FxSkNyODI4cHpXQ01Td0szWFdvV1FPbEdOUlMyN1N1TGZT?=
 =?utf-8?B?M09zbmxQbk00eTNaQ3hxNmhOdUJCNFU5UW5jdExlaUdZNW9DYVJtT1Z0SzRt?=
 =?utf-8?B?amszNVdRR2djTkkrYm1oM2hmaWR2dndVWUNjN0RpVmk2dE9aZzhtRkF5ZXpH?=
 =?utf-8?B?bGFDWDQzZmhIcXQ4MHNDci96MHlnQmk3dEhyNGlsTDBmRWlUVklrV1U5aHdF?=
 =?utf-8?B?SDBvQU1ralRrTkNrbkV3bndUMStuVmZpaGJsTEJPNDUzMCtTRms5REdnekpj?=
 =?utf-8?B?cUVsSlRrZEZMamRkaVk0YTM0SWVpTkZYdFI1cnkwcGY3Njd1ZElOZTlVYnVz?=
 =?utf-8?B?cnIvVld6Vk9qYzB3ell4RDZ1ZkQvTmlIeDRqbHNqcjNtRDk1VFZTWUZCbDlW?=
 =?utf-8?B?cmpudk9OZUVUWmpHUGdNS1hWQldBOFBhUHphaXZoWmxlNERDN1JETHRCYkJa?=
 =?utf-8?B?Z0Mxd2VWbGxFSFhTOGFCWmNCZ2R5b09UenBXdThJbmtaWE96WENpYU42Nlc1?=
 =?utf-8?B?T0Y4dllQSVB1c2lJQW84aVNWeWtqRyt3MTVMNU5reHBySzhzU2QxNXRhMElZ?=
 =?utf-8?B?cjRtdHBLSjVPR1hrTFA5a0ZMQm4xQUFFNW5ML0RnR3J6OStlTEU0UzJuVy9n?=
 =?utf-8?B?Ti8vaUx6TnVmV0I4bU9QYU91dWUxU1lNVFZrZVJxamwyMDdNRHA0VmxjZ09C?=
 =?utf-8?Q?SaUM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <29D4B964F6996D48AA4B356CC950C41D@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: 2374e4f0-fb58-4323-19ed-08dc9bd5e40d
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jul 2024 03:03:33.5896
 (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: aRVsE/VVldAg3ViCG3GfX1Tny54Q21pcCJ7cr4Kt7cWkGxrtOXo95EX6CE/+j/+05DRx5lN0iCIg4gZm+sejgA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9348

SGkgQW50aG9ueSwNCg0KT24gMjAyNC83LzIgMTE6NDcsIENoZW4sIEppcWlhbiB3cm90ZToNCj4g
T24gMjAyNC83LzEgMTU6MzIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gT24gMzAuMDYuMjAyNCAx
NDozMywgSmlxaWFuIENoZW4gd3JvdGU6DQo+Pj4gLS0tIGEvdG9vbHMvbGlicy9jdHJsL3hjX3Bo
eXNkZXYuYw0KPj4+ICsrKyBiL3Rvb2xzL2xpYnMvY3RybC94Y19waHlzZGV2LmMNCj4+PiBAQCAt
MTExLDMgKzExMSwzOCBAQCBpbnQgeGNfcGh5c2Rldl91bm1hcF9waXJxKHhjX2ludGVyZmFjZSAq
eGNoLA0KPj4+ICAgICAgcmV0dXJuIHJjOw0KPj4+ICB9DQo+Pj4gIA0KPj4+ICtpbnQgeGNfcGh5
c2Rldl9nc2lfZnJvbV9wY2lkZXYoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IHNiZGYpDQo+
Pj4gK3sNCj4+PiArICAgIGludCByYyA9IC0xOw0KPj4+ICsNCj4+PiArI2lmIGRlZmluZWQoX19s
aW51eF9fKQ0KPj4+ICsgICAgaW50IGZkOw0KPj4+ICsgICAgcHJpdmNtZF9nc2lfZnJvbV9wY2lk
ZXZfdCBkZXZfZ3NpID0gew0KPj4+ICsgICAgICAgIC5zYmRmID0gc2JkZiwNCj4+PiArICAgICAg
ICAuZ3NpID0gMCwNCj4+PiArICAgIH07DQo+Pj4gKw0KPj4+ICsgICAgZmQgPSBvcGVuKCIvZGV2
L3hlbi9wcml2Y21kIiwgT19SRFdSKTsNCj4+PiArDQo+Pj4gKyAgICBpZiAoZmQgPCAwICYmIChl
cnJubyA9PSBFTk9FTlQgfHwgZXJybm8gPT0gRU5YSU8gfHwgZXJybm8gPT0gRU5PREVWKSkgew0K
Pj4+ICsgICAgICAgIC8qIEZhbGxiYWNrIHRvIC9wcm9jL3hlbi9wcml2Y21kICovDQo+Pj4gKyAg
ICAgICAgZmQgPSBvcGVuKCIvcHJvYy94ZW4vcHJpdmNtZCIsIE9fUkRXUik7DQo+Pj4gKyAgICB9
DQo+Pj4gKw0KPj4+ICsgICAgaWYgKGZkIDwgMCkgew0KPj4+ICsgICAgICAgIFBFUlJPUigiQ291
bGQgbm90IG9idGFpbiBoYW5kbGUgb24gcHJpdmlsZWdlZCBjb21tYW5kIGludGVyZmFjZSIpOw0K
Pj4+ICsgICAgICAgIHJldHVybiByYzsNCj4+PiArICAgIH0NCj4+PiArDQo+Pj4gKyAgICByYyA9
IGlvY3RsKGZkLCBJT0NUTF9QUklWQ01EX0dTSV9GUk9NX1BDSURFViwgJmRldl9nc2kpOw0KPj4+
ICsgICAgY2xvc2UoZmQpOw0KPj4+ICsNCj4+PiArICAgIGlmIChyYykgew0KPj4+ICsgICAgICAg
IFBFUlJPUigiRmFpbGVkIHRvIGdldCBnc2kgZnJvbSBkZXYiKTsNCj4+PiArICAgIH0gZWxzZSB7
DQo+Pj4gKyAgICAgICAgcmMgPSBkZXZfZ3NpLmdzaTsNCj4+PiArICAgIH0NCj4+PiArI2VuZGlm
DQo+Pj4gKw0KPj4+ICsgICAgcmV0dXJuIHJjOw0KPj4+ICt9DQo+Pg0KPj4gSSByZWFsaXplIEFu
dGhvbnkgaGFkIGFza2VkIHRvIG1vdmUgdGhpcyBvdXQgb2YgbGlieGVuY2FsbCwgeWV0IGRvaW5n
IGl0IGxpa2UNCj4+IHRoaXMgKHdpdGhvdXQgcmVhbGx5IGFic3RyYWN0aW5nIGF3YXkgdGhlIE9T
IHNwZWNpZmljcykgZG9lc24ndCBsb29rIHF1aXRlDQo+PiByaWdodCBlaXRoZXIuIEluIHBhcnRp
Y3VsYXIgdGhlIG9wZW5pbmcgb2YgL2Rldi94ZW4vcHJpdmNtZCBsb29rcyBxdWVzdGlvbmFibGUN
Cj4+IHRvIG5vdyBoYXZlIHlldCBhbm90aGVyIGluc3RhbmNlIGluIHlldCBhbm90aGVyIGxpYnJh
cnkuIENvdWxkbid0IHdlIHNwbGl0DQo+PiBvc2RlcF94ZW5jYWxsX29wZW4oKSwgbWFraW5nIGF2
YWlsYWJsZSBpdHMgZm9ybWVyIGhhbGYgZm9yIHVzZSBoZXJlIGFuZCBpbiB0aGUNCj4+IG90aGVy
IHR3byBsaWJyYXJpZXM/IA0KPiBIaSBBbnRob255LCB3aGF0IGFib3V0IHlvdXIgb3Bpbmlvbj8N
CldoYXQncyB5b3VyIG9waW5pb24gYWJvdXQgdGFraW5nICIgb3BlbmluZyBvZiAvZGV2L3hlbi9w
cml2Y21kICIgYXMgYSBzaW5nbGUgZnVuY3Rpb24sIHRoZW4gdXNlIGl0IGluIHRoaXMgcGF0Y2gg
YW5kIG90aGVyIGxpYnJhcmllcz8NCg0KPiANCj4+IE9mIGNvdXJzZSB0aGF0J2xsIHN0aWxsIGxl
YXZlIHRoZSBpb2N0bCgpIGludm9jYXRpb24sIHdoaWNoIG5lY2Vzc2FyaWx5IGlzIE9TLXNwZWNp
ZmljLCB0b28uDQo+Pg0KPj4gSmFuDQo+IA0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBD
aGVuLg0K


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 03:05:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 03:05:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753405.1161640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPCn7-0006X7-Nv; Thu, 04 Jul 2024 03:05:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753405.1161640; Thu, 04 Jul 2024 03:05: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 1sPCn7-0006X0-LL; Thu, 04 Jul 2024 03:05:49 +0000
Received: by outflank-mailman (input) for mailman id 753405;
 Thu, 04 Jul 2024 03:05:48 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPCn6-0006Wq-9E; Thu, 04 Jul 2024 03:05:48 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPCn6-0007Lj-6U; Thu, 04 Jul 2024 03:05:48 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPCn5-00006Z-NA; Thu, 04 Jul 2024 03:05:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPCn5-0007jO-L1; Thu, 04 Jul 2024 03:05:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=0XvOOZyc/hv1qzLrHBf3FIAph33n//8euEEYLvBJVug=; b=pmY7cYRIvXjdk5DYxgI2tcD3u0
	ZzAV7KybtZbopCHA6+c3x6jqzAkXwN6mEwose3y+XdGTLDE5vtN112wuOZ9s6rFvnc42wGL2LOl4r
	yYTqNsiprWiGLbfm+d6m7mmC4+PtHrtNTTbcLqhwXcroz8zieS7sfdr5t4ulxcr+El6U=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186645-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186645: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:host-ping-check-xen:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-qcow2:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=e9d22f7a6655941fc8b2b942ed354ec780936b3e
X-Osstest-Versions-That:
    linux=9903efbddba0d14133b5a3c75088b558d2e34ac3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 03:05:47 +0000

flight 186645 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186645/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 186620

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-rtds  10 host-ping-check-xen fail in 186638 pass in 186645
 test-armhf-armhf-xl-multivcpu  8 xen-boot        fail in 186638 pass in 186645
 test-armhf-armhf-libvirt-vhd  8 xen-boot         fail in 186638 pass in 186645
 test-armhf-armhf-xl-qcow2     8 xen-boot                   fail pass in 186638

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-qcow2   14 migrate-support-check fail in 186638 never pass
 test-armhf-armhf-xl-qcow2 15 saverestore-support-check fail in 186638 never pass
 test-armhf-armhf-xl-raw       8 xen-boot                     fail  like 186620
 test-armhf-armhf-xl-credit1   8 xen-boot                     fail  like 186620
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186620
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                e9d22f7a6655941fc8b2b942ed354ec780936b3e
baseline version:
 linux                9903efbddba0d14133b5a3c75088b558d2e34ac3

Last test of basis   186620  2024-07-01 17:14:02 Z    2 days
Failing since        186626  2024-07-02 05:45:15 Z    1 days    4 attempts
Testing same since   186638  2024-07-03 04:29:20 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alison Schofield <alison.schofield@intel.com>
  Babu Moger <babu.moger@amd.com>
  Chen Ni <nichen@iscas.ac.cn>
  Christian Brauner <brauner@kernel.org>
  Dan Williams <dan.j.williams@intel.com>
  Dave Jiang <dave.jiang@intel.com>
  David Howells <dhowells@redhat.com>
  David Sterba <dsterba@suse.com>
  Gao Xiang <hsiangkao@linux.alibaba.com>
  Huang Xiaojia <huangxiaojia2@huawei.com>
  Jann Horn <jannh@google.com>
  Li Ming <ming4.li@intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Ming Lei <ming.lei@redhat.com>
  Naohiro Aota <naohiro.aota@wdc.com>
  Sandeep Dhavale <dhavale@google.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Wenchao Hao <haowenchao22@gmail.com>
  Xingui Yang <yangxingui@huawei.com>
  Yao Xingtao <yaoxt.fnst@fujitsu.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 566 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 05:54:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 05:54:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753518.1161697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPFQP-00052b-NP; Thu, 04 Jul 2024 05:54:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753518.1161697; Thu, 04 Jul 2024 05: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 1sPFQP-00052U-Kf; Thu, 04 Jul 2024 05:54:33 +0000
Received: by outflank-mailman (input) for mailman id 753518;
 Thu, 04 Jul 2024 05:54:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8exS=OE=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sPFQO-00052O-EF
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 05:54:32 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e1358b5d-39c9-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 07:54:30 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a72b3e1c14cso27011566b.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 22:54:30 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72ab08fe92sm564774366b.167.2024.07.03.22.54.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 22:54: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: e1358b5d-39c9-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720072470; x=1720677270; 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=BHTP9Pb69J4FJa1GFtxUQaE5wBMKsB5TTew6MzAdF3A=;
        b=JY5iV9rQzJtkvpXTrqtAOVty45cu0Z0X2m9mHHkegyQsdVMJq9/QL8VVa10teks80c
         xRLQpRiwH9d1Mjcf8UzbgkB+jKRkzEz3/xEdbqh0PSLydO4Ja3SMGkwOx5weNKjZzlXk
         WwFdr+WSwLudOPGK1Ua0Gsuu3DoSZdtxGcU20VOSix7Phmtlw08wpTVy7OfUUEH1566d
         5eK/X447iDgI35D1wNxV+eIO1YNGZqf2Snn3CWFfZ0BBr9ptR0Pybcyec5inPauLza0F
         zhhdgwYJqANozBwb/aswm9X9itWIJsSF+FZqCdJgNvBffza9RVzQ0QfLtF0YHV2pxOzI
         a0qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720072470; x=1720677270;
        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=BHTP9Pb69J4FJa1GFtxUQaE5wBMKsB5TTew6MzAdF3A=;
        b=Ii4P5h4qZ8Eq4EFjpvdlyPD4aa0QgAkh+dfnFeR5hoO5AI30DbF08Fz7URBioJBFxM
         J8q422QJr7F0QeOPgac75Y7oh6Ic2+Lvs9pIDj8OH7Y2barTMg1Ppqd4X1+N5ZoZz3Ml
         ZAZzxroS7ZUSPeWxOxWok+q5YBcCTFSUdmwXrd/w5Sh2QfU12EW8IS2n0U0kpaiKZQZM
         f7bF1M7tu88li9Q14Q4a2P+cJ+PLy/vYO+O3guLuE1xE9LXgVS0+f0R8R2lmrkF45cQn
         5bCxckI8xgIPPiUpkBHOVgDL78lajKgZofJZdveeeqx3b5rGElmsY3O3kj3VbULV51mk
         LJpA==
X-Forwarded-Encrypted: i=1; AJvYcCXnkfaMpg9HMkJT/xx+dN9zjWUkKDoUkLL1NzpMgC34uSQHIdut232yA9Z4Iu3bK9QGY0uum6XQSVOPI+pMdWiZ4+0fLZfrupCscSApKgk=
X-Gm-Message-State: AOJu0YyocwDrGVzopzpTAE+Dps9VG+G7PWta1gdsJS4l2ZAN44blTKT/
	oRaCqguhQBzvmFQXat8d2tmy3XVYUUXfsdnoFmt40Suhv2ov8QkzyDTtEEAOo0rxEtkmkcpbCtm
	X
X-Google-Smtp-Source: AGHT+IECblegWoH+FIegRrtHQ1K81nXXK8wGwkjKX8MvGeZeDNhTgV+tsEWI9RgpMLosZOS6RVvdpA==
X-Received: by 2002:a17:907:3d9f:b0:a75:410c:ecb0 with SMTP id a640c23a62f3a-a77ba72d72cmr44123966b.67.1720072469672;
        Wed, 03 Jul 2024 22:54:29 -0700 (PDT)
Message-ID: <bef12206-8cf3-45dc-896d-53b6c3d28c68@suse.com>
Date: Thu, 4 Jul 2024 07:54:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] tools/xs-clients: Fix `make clean` rule
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240703223611.1754927-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240703223611.1754927-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 04.07.24 00:36, Andrew Cooper wrote:
> Prior to the split, "the clients" used tools/xenstored/Makefile.common whose
> clean rule includes *.o whereas after the split, the removal of *.o was lost
> by virtule of not including Makefile.common any more.
> 
> This is the bug behind the following build error:
> 
>    make[2]: Entering directory '/local/xen.git/tools/xs-clients'
>    gcc     xenstore_client.o    (snip)
>    /usr/bin/ld: xenstore_client.o: relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIE
>    /usr/bin/ld: failed to set dynamic section sizes: bad value
>    collect2: error: ld returned 1 exit status
>    make[2]: *** [Makefile:35: xenstore] Error 1
> 
> which was caused by `make clean` not properly cleaning the tree as I was
> swapping between various build containers.
> 
> Switch to a plain single-colon clean rule.
> 
> Fixes: 5c293058b130 ("tools/xenstore: move xenstored sources into dedicated directory")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 06:38:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 06:38:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753530.1161707 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPG6u-00028g-RD; Thu, 04 Jul 2024 06:38:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753530.1161707; Thu, 04 Jul 2024 06:38:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPG6u-00028Z-OS; Thu, 04 Jul 2024 06:38:28 +0000
Received: by outflank-mailman (input) for mailman id 753530;
 Thu, 04 Jul 2024 06:38: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=V0d6=OE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sPG6u-00028T-6e
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 06:38:28 +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 04313c00-39d0-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 08:38:26 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3678aa359b7so862831f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 03 Jul 2024 23: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
 d2e1a72fcca58-7080256af5asm11454597b3a.56.2024.07.03.23.38.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 03 Jul 2024 23:38: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: 04313c00-39d0-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720075105; x=1720679905; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=avJyP+Quku7VqET8tmEwXfNBzilUGwWXw5ynaA0tX8Y=;
        b=XASo+Qi5+/sv/DiCIV2ShZPxzba7sATeCAKs2Sdv6vAwDvWv1+RnjXoV9ueP+yc9Av
         uXRcvqdlZuK809CEs62NzsVoLWi7By26htTG03XYpwb4c3j2kmFHBj4nl2ndJWGwZrxf
         Fh9H3YTNMiYujNZu8C87anU3spIIRkQzSjXJG2v5Zr6/pUolnf+NUkN5Euop+uvDDx3C
         H8KjuvQP1xR0ufzmfBlXwDqiGU1LuSD9tnWVoS/4om7m1ggwMuuj0jHIPZYNriN/Eqbh
         ldkOOz7EmmsVIAxTRywugaSOehi9D0/Z+CNp/hJAHeO9PDz4UjrH+r91lB8FMsEKkHH+
         /6kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720075105; x=1720679905;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=avJyP+Quku7VqET8tmEwXfNBzilUGwWXw5ynaA0tX8Y=;
        b=sOI3EzAzOIRIIqazM7gkfccloXboWix9dke5U69BjBI34QKXjdwJfd++WAihAl5cFM
         TqZN0cNaGvMkHrF09OVjn37SPWhNwCeTnOTNAfCenMr4tMt06+s1GgHQ5od3Lo+pd2JF
         Nj0mqx8ebym5KiAJo2YaQKNHQ1qTIqc6QojQr4a2qSxFtOUwpldBVrCd/7pn3xDPCrYy
         FOqGYk1ZP7mHg6DYEF92WGY8R+pXOAhnnaucf+2j+3btTlhu6ZH24W0QE4y3zJA14eL6
         6R/wmGPHWEQASl9UCxuBzeAzBwlOxXOXF1HNGFS7OCQu1H7xy5yDczfWB6JorJylToId
         1NaA==
X-Forwarded-Encrypted: i=1; AJvYcCXVjeOOEEMVMtrfL9hutVNem8opZgegUDclTwsWyQe1SIhthkaxv78Zl53dwn3HgydK/xj5Uog1PsrdSfr8mjusMWYqj77ez9P9C+2/Hsk=
X-Gm-Message-State: AOJu0YxIl56veYFlPrcFI0eLrSi+Zj7kyVO1ZXIseWXkRv2Pa/AiQoUR
	8IB9C74IeeclD3eyeKKY/Xn3AXNLEr7v2aY38U5vEJNNlPZV92Ir1QJ8EKGEEA==
X-Google-Smtp-Source: AGHT+IHxJCvK4HX6pFwdfsHmLcBzFkKKN/1sADlncuMGX3+BTvm+o+saOEy/I5U3YAkWh63yGCEIew==
X-Received: by 2002:adf:ab08:0:b0:363:1c9d:d853 with SMTP id ffacd0b85a97d-3679f76ff77mr440935f8f.32.1720075105277;
        Wed, 03 Jul 2024 23:38:25 -0700 (PDT)
Message-ID: <a3721ce4-b474-45d3-b2e7-4f2fd72544bf@suse.com>
Date: Thu, 4 Jul 2024 08:38:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v11 2/8] x86/pvh: Allow (un)map_pirq when dom0 is PVH
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-3-Jiqian.Chen@amd.com>
 <9a311ee0-dcf2-4609-aced-7f57b322da5f@suse.com>
 <BL1PR12MB5849C3882D31620ADAC55ADAE7DC2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <d1b22fa7-870e-4968-ba5d-c5d6fccb0af7@suse.com>
 <BL1PR12MB5849C0E9310A505E95937BDEE7DE2@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: <BL1PR12MB5849C0E9310A505E95937BDEE7DE2@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.07.2024 04:56, Chen, Jiqian wrote:
> On 2024/7/2 16:44, Jan Beulich wrote:
>> On 02.07.2024 05:15, Chen, Jiqian wrote:
>>> On 2024/7/1 15:44, Jan Beulich wrote:
>>>> On 30.06.2024 14:33, Jiqian Chen wrote:
>>>>> --- a/xen/arch/x86/physdev.c
>>>>> +++ b/xen/arch/x86/physdev.c
>>>>> @@ -323,6 +323,13 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>>>          if ( !d )
>>>>>              break;
>>>>>  
>>>>> +        /* Prevent mapping when the subject domain has no X86_EMU_USE_PIRQ */
>>>>> +        if ( is_hvm_domain(d) && !has_pirq(d) )
>>>>> +        {
>>>>> +            rcu_unlock_domain(d);
>>>>> +            return -EOPNOTSUPP;
>>>>> +        }
>>>>> +
>>>>>          ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
>>>>>  
>>>>>          rcu_unlock_domain(d);
>>>>> @@ -346,6 +353,13 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>>>          if ( !d )
>>>>>              break;
>>>>>  
>>>>> +        /* Prevent unmapping when the subject domain has no X86_EMU_USE_PIRQ */
>>>>> +        if ( is_hvm_domain(d) && !has_pirq(d) )
>>>>> +        {
>>>>> +            rcu_unlock_domain(d);
>>>>> +            return -EOPNOTSUPP;
>>>>> +        }
>>>>> +
>>>>>          ret = physdev_unmap_pirq(d, unmap.pirq);
>>>>>  
>>>>>          rcu_unlock_domain(d);
>>>>
>>>> If you did go look, you will have noticed that we use "return" in the middle
>>>> of this function only very sparingly (when alternatives would result in more
>>>> complicated code elsewhere). I think you want to avoid "return" here, too,
>>>> and probably go even further and avoid the extra rcu_unlock_domain() as well.
>>>> That's easily possible to arrange for (taking the latter case as example):
>>>>
>>>>         /* Prevent unmapping when the subject domain has no X86_EMU_USE_PIRQ */
>>>>         if ( !is_hvm_domain(d) || has_pirq(d) )
>>>>             ret = physdev_unmap_pirq(d, unmap.pirq);
>>>>         else
>>>>             ret = -EOPNOTSUPP;
>>>>
>>>>         rcu_unlock_domain(d);
>>>>
>>>> Personally I would even use a conditional operator here, but I believe
>>>> others might dislike its use in situations like this one.
>>>>
>>>> The re-arrangement make a little more noticeable though that the comment
>>>> isn't quite right either: PV domains necessarily have no
>>>> X86_EMU_USE_PIRQ. Maybe "... has no notion of pIRQ"?
>>>
>>> Or just like below?
>>>
>>>         /*
>>>          * Prevent unmapping when the subject hvm domain has no
>>>          * X86_EMU_USE_PIRQ
>>>          */
>>>         if ( is_hvm_domain(d) && !has_pirq(d) )
>>>             ret = -EOPNOTSUPP;
>>>         else
>>>             ret = physdev_unmap_pirq(d, unmap.pirq);
>>
>> No objection to the slightly changed comment. The code alternative you
>> present is of course functionally identical, yet personally I prefer to
>> have the "good" case on the "if" branch and the "bad" one following
>> "else". I wouldn't insist, though.
> OK, will change "good" case on the "if" branch.
> Do I need to change "!is_hvm_domain(d)" to "is_pv_domain(d)" ?
> And then have:
> 
>         /* Only unmapping when the subject domain has a notion of PIRQ */
>         if ( is_pv_domain(d) || has_pirq(d) )
>             ret = physdev_unmap_pirq(d, unmap.pirq);
>         else
>             ret = -EOPNOTSUPP;

I for one would prefer if you kept using is_hvm_domain(), for being more
precise in this situation.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 06:51:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 06:51:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753537.1161718 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPGJP-0004sr-UH; Thu, 04 Jul 2024 06:51:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753537.1161718; Thu, 04 Jul 2024 06:51:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPGJP-0004sk-RV; Thu, 04 Jul 2024 06:51:23 +0000
Received: by outflank-mailman (input) for mailman id 753537;
 Thu, 04 Jul 2024 06:51: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=IA8J=OE=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sPGJO-0004se-O9
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 06:51:22 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20600.outbound.protection.outlook.com
 [2a01:111:f403:2417::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d168a090-39d1-11ef-bbf9-fd08da9f4363;
 Thu, 04 Jul 2024 08:51:20 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 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.7741.26; Thu, 4 Jul
 2024 06:51: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%3]) with mapi id 15.20.7719.029; Thu, 4 Jul 2024
 06: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: d168a090-39d1-11ef-bbf9-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WLpsVJ2TCtyrNsoLHg9NsIAhrzCGiiPZjDRKKN1InjVbdT6LB86xqfWJsGYgnVsNI1cUdlcILKIHZZHLv4Rxim0JcvRzNKMFtiuf8qjrBPAxqk6wVZVaHVKM5TUW2uRD3TOvPiUKKy/c3I7iY/UQuO6/v1OOp+svl4Fi2UdeXcnLUqph8HOW6Ol9xMi+/1T/lIpRd9cgbaU5U5UfnFchkEvjTxTKYo6xi7HjE3aiiP4GExEIHKFl1DXDMpL61t9RGTBXH7cjxEjU6YsZSBjV0iPVBu97KbkG1BRjdmHtaVc3tQRpv+jiqUw14ZrhLowC+DXXYLakl4QS9dbg1nE9DQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yKe0UYjYqbi6NU5nU6YnuY/41cFqKiyH4edeqP67hNQ=;
 b=IF1vg2Lcm89G+o9w8E3EyZq4RahhkhC+3iGlTTOMC5xJdi8Mh74VAVbtdiPYNilhV/GdGQBQ/mjwAuUh80EMYFspxRG1GBegwEK++8bWd9YAAq68Y2iRaOiU9/oXbqyXXe4X04XtUId70hU7mjq1KSeqIQQ6D0HXDpRK+UOG00PWxsfeL0q1NwGs1ci6pjaGx+k3Jnldb2Hi5aul0mJI+EwxSxMt8wyzBEuFgccghblINlYAQ/34Efp/9SK4sEC3M/cpMAXUKXfSmdDd9ORLb8YYaApUO/zdTw55jchH5Jhz2iapOVnvXGLj5vlMiHDA2rph0qyLus38FGvjx6/cSg==
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=yKe0UYjYqbi6NU5nU6YnuY/41cFqKiyH4edeqP67hNQ=;
 b=OhPBShR6yZGxAV3YTp/qTyVqGpcVFcXwVtI6Mt2VhymyCQ0znw1lbI1ak4QhYz5tQskGNA4kaaBIAxRvLappWd4rYSRNq7MraqGVFWbrkgaLCeN9yygAFwZEpxdcNZN6AwmE5p/M8Lj08qMd/GH8ATotHuosi7HFzy4UpKfmJEU=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, Juergen
 Gross <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v11 2/8] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Topic: [XEN PATCH v11 2/8] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Index:
 AQHayunRhQS+lhfPgk6PWMYxsBafhLHhf0AAgAHJ+4D//9kSgIADSGaA//+49wCAAImYAA==
Date: Thu, 4 Jul 2024 06:51:16 +0000
Message-ID:
 <BL1PR12MB5849BAE95305BDA357FEFB67E7DE2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-3-Jiqian.Chen@amd.com>
 <9a311ee0-dcf2-4609-aced-7f57b322da5f@suse.com>
 <BL1PR12MB5849C3882D31620ADAC55ADAE7DC2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <d1b22fa7-870e-4968-ba5d-c5d6fccb0af7@suse.com>
 <BL1PR12MB5849C0E9310A505E95937BDEE7DE2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <a3721ce4-b474-45d3-b2e7-4f2fd72544bf@suse.com>
In-Reply-To: <a3721ce4-b474-45d3-b2e7-4f2fd72544bf@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.7719.007)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|DS0PR12MB6608:EE_
x-ms-office365-filtering-correlation-id: 9d0937b8-0cf3-42e9-26ea-08dc9bf5b3a8
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:
 =?utf-8?B?bzJJNjRTQjVlcGJ0aEZBZGhWbWhKc3ZjS3RYT0VXaDUveTIrT2hUczNpOXdl?=
 =?utf-8?B?MFVDYncvRkhhemQ2M214WlpiemdqYkFSeHY4NitCeXIyeStuQmdjN2ZtSU4r?=
 =?utf-8?B?MlJyTUpxaTJKb0hCRklHUUFLdXZveTZjT1J4azg0Z3NkSENwTXNLb0MyUHdq?=
 =?utf-8?B?Wlc3MFNCQ2VMRmF1dDdzRmtpN1hOMEt4QXJpT3JNdTBZeWEvRjZobXdWNjhF?=
 =?utf-8?B?UDFPZHVMZDdvTVliVTZjNWFTakdQL2lnNHl2My9Eenl6OFBkd0tSUEsxQXhj?=
 =?utf-8?B?ZHYxaHAwM2VkN2NjRWp6N1RCdHdwY0c5WWdreW1GSHMvRjNUcE04Z0F1RU1N?=
 =?utf-8?B?MVZhL1lQUWNrcWJHcTNMUnNiZ2tPVmtJWlpTdEZJaWJRV3lMbTl6U1FFUTJD?=
 =?utf-8?B?U25PZ2hVTWpxMWxpRXkxYTNNSU9GT2U2ZzBXZ2VlUGhJYmdHVVZBaTFYNnl5?=
 =?utf-8?B?Q2cralpMaFhTdDBra01WdzBYRHVObm9kS0xQcEE5RlVrYkRuUHhFcEZtazJy?=
 =?utf-8?B?U1ZRWEc5Y3BBRC9qVHI2S0dobUYzcnY1am5VL0ozbEJjV056S2tiOTl4OXlV?=
 =?utf-8?B?em04c2ZtakRwQ29UYnhGV0N5eEhpdlBocXVpRk1BakxXRVVEQzlrdDBBUklh?=
 =?utf-8?B?UmgzUXBncXY3Q1NwR1JoS3hYUWh0SmgyN0Y3NFAwMGlVSXAwUnU3UWVqN3Er?=
 =?utf-8?B?TkFidjBacXphc3ZNbTVhN0RiN2owbmhLbjRUNGJSUjFUTEhWVElWT0owQnd5?=
 =?utf-8?B?dFZ1aHYrNWtzcHphT1hwN0RySjA1YWpZUElxR28wdk4vK1RxOFh0OTVrQm5B?=
 =?utf-8?B?MC9MNFE4U053NUYwdWkxdUpYU1FYSGZXY0lHYW43eDAvT3BDVWJoRHRoZnE1?=
 =?utf-8?B?UmVjT3RXelVhQklsQlRIeUh4Q3Yya0ZBOWI0aFoyZHNweHVvaWdvL1VVbTRm?=
 =?utf-8?B?UzdWK1d3UFZqNHhzSVY0dU52cG05VnlCRFlib2hFdkdOQktRaG9IdmxCOVd6?=
 =?utf-8?B?UEFLMUc2dUM1dE83MHlac0w1bHFEUG12UmpwTkRoa2w0S2Foc1JWVG1hcTZo?=
 =?utf-8?B?QXNPTWQzNVcvQ2d2ZXJRb1c1Znh1b1NxUm5jMC9YQXFOMUhYbHFQbTVhQzNi?=
 =?utf-8?B?b29oK2JOVzFhL0VlZkNsTHAzVWNSSUNoYjU2aDR5RDR3UXJWSWJxZC9QSzNs?=
 =?utf-8?B?a0RBQk53QUg0akQvVXZhWnVkWXVlQlFHTktMK1hnVkVYNjBvM0xodVlhc1Nu?=
 =?utf-8?B?QXI1UGhkb0hLdUlyeTBzMzkvcFl1RjhMajk1QnRac05ONDBGT3F0MWVoQ0xo?=
 =?utf-8?B?Y1Z6d0t5dXBlWEpIQkI5S3NhSVpGbjd5VWE4TW5QQytYbzlNRFpUd2JXU3pS?=
 =?utf-8?B?bS9yYU5IZ2VwdTNYSWFmVENZYmRuVDh4L3JUZmY3VUN3ZlNmUnJEM2xpMW5T?=
 =?utf-8?B?ZDBUeU0ydU5Qa3Y2eU5hNzhWTFdMUW9TSjZ1N3RLTzZBZHowaEF0TnEzVVVy?=
 =?utf-8?B?TG12U1pQSzlKYjdqNnRWV1RNMFltNGRVaWpQYmo5aER4VnBVVmdFNWx2VTBM?=
 =?utf-8?B?THBVU2YvSStFTkpsdVUxdmhIdi9IT2s4TTN1V0VwdXRFajJXY2JFMHp1cFVR?=
 =?utf-8?B?NDJTOHpycWtRaWxLcUQyZ3piNmE3dDlIVEwyaVI4SjkwWjBZNCs1MW9zYlBo?=
 =?utf-8?B?L0hyM1IxWGdhSGhvZFp2bmlYNHcydTE5SmxIelpLVktiQ0RXc2UzMyt0ZS9M?=
 =?utf-8?B?anA4Zk9FZ2lLV2ZQQUxNYWl1YkxPTEZMaWVyNjVYK3M4dEZDWG5pWDZ4SU5T?=
 =?utf-8?B?dmtONTVKL2RtWDRkcGJ4Y1M1Y25SQ2NCeXhCK3JtRUNpc3ZCL0JCWWhYMDZX?=
 =?utf-8?B?eUtQeFNYcnJDbGFQZURqSEk4aHJIdDZtYkdGclZBcnJONHc9PQ==?=
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)(7416014)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cFZOZHhqaThFL21zOUlVeG9BK2VqOXg5Q1VEYTVoQ3hPQk50djVSZi9tVFIw?=
 =?utf-8?B?aVRlUy92ZFZuQit2U1JYUEJ5WmhyS2ZBcU43MEtBT2pJa3JFcGpibEdLaVJQ?=
 =?utf-8?B?TTZYZC9Qemx4Ykg4aHBkekNKZjNvU3JPY2dpVGZmUDNETEFxUlRFcm9IUXQ3?=
 =?utf-8?B?MnlqWDBIZDljWXpmMFpjVDJUVnBuTVc2WVUyN0lFWkllVFM0QlowS2ZVR3Yv?=
 =?utf-8?B?RUpnQW5ZRkpOK2tHOUlORFhUYUdzR0RtWnlGUm5tUDZyZ2tyNDR5N1FiZy9X?=
 =?utf-8?B?VU1OSGVST0w4dnlmWmliWTJ1VXQ1TGlCU1BpYXd4WWVZRlExaUw3T2JnTzVB?=
 =?utf-8?B?dGQwMjhjKzJUdkZZaENKeUlyRnZSL1haUzJUdktpekFOWWN2QVdod29xeFRy?=
 =?utf-8?B?OXlWTGJ5UE5odDlPaGpoNWZuYjZ1TFQrTmtQWGtCVGxXZGpnTGgra2RuZmdX?=
 =?utf-8?B?NUhyNnEyMTNuMjNuUHpsOHRPUDFGdTV0bVFVRytWb0VTSmJ4cnJKNGRBMCtv?=
 =?utf-8?B?YmJCNUF5OS9uYXZobFdRUWxNNTJqelN1dTZ6VHU3YlBxYzdzR2R2c21zTytj?=
 =?utf-8?B?TldwSXRvS0J4YzJPWHQ0QXY0Nm1PTFJSWDRvd0tjU243U1Ivck5qWmRCMGRS?=
 =?utf-8?B?UlJvSjhmVXVWRWlLL040STBSY1hIUHc2NTBaVXZIaUJ0bUw3ekRiYXdFU2Zr?=
 =?utf-8?B?L0ZuRVhrYjNPWjZZZUtTemEvRVY0bTBxeGdrNk50YzlOUWZjSnlDNTAzMTIw?=
 =?utf-8?B?QmZDeWRvaVdZOHdQakVhcUZtdmhOaXpqVk0xb2FXTmpaSGlxcUw1Wm9sbmJw?=
 =?utf-8?B?UDBrTC9hL2JQcHdqL2s2b2NrbnkwcUdOOC9BNlBiSXdUU294TjRRaTFjNlYx?=
 =?utf-8?B?UEJDOFdjMXlpSHI5N01pQ1RRRDN6NUlDK0ZaYWxlVldEQ3pYQjE0UDhKczNj?=
 =?utf-8?B?bENDdlJqOUNQRGI4OXFlNE85NGdpY2tVN3pQRzdzbDFKTnNKN0pwWSttUHgz?=
 =?utf-8?B?RlgxQjhYU29QRGZhb2tDSW95MVhrSExRUGI4a1ZxcHlVY0ljNDVmK0grUkNW?=
 =?utf-8?B?aENaT2pNdklKd00rc0VlQ3c5N3VkQmVuMS90MUNpSUY0MmdmY01UK3VEcVNM?=
 =?utf-8?B?dUpIV0pSVU96SGhKeE1LUGxWZE4xMTVkNlVqRVA1KzZKZFlWWU11RE8vcGQ4?=
 =?utf-8?B?VFZZdEZHWk5ZU0ppVlUvRXBrTEVrSW5uRmMzNDNNdVEyNWJpUlRjRDZKa2RW?=
 =?utf-8?B?K21DY1oxaHRsY0w4WEU5RzZ2a0lFTnNDUjZnaTNwclBDMWUzeVBGN1VJd3NW?=
 =?utf-8?B?M1RuSXVnbHRIZ3lqeUpWbDhPZEJ0Tmh3WXlwVDJGNW9CNEFJclhVNDhRakUr?=
 =?utf-8?B?UzcrbkkvTXQzbUVseis5NlNPU0JuTmZVc2cwUkxkc2s0NEZ5OXJVQy8xUmxG?=
 =?utf-8?B?aWtXd2JWZlIweDZWK0RBL1RxejFIbUUyV0JrM0RJejVwWmtyckF3OGU3aUQ1?=
 =?utf-8?B?a2pyM0ZubCszL2daTjB0NmgrSWUxSXRsTGUvYlJicG04aGNGVnBuVjVTcXlm?=
 =?utf-8?B?UDVlN2llTVlQV3JUbmJaMEhRbEg1Y3hsTWF3M1kxZkZlMG5QVzhlZjMzaFN0?=
 =?utf-8?B?MUxJQ0c3ZFVOTERtU0pubGdWSHJUaVY3OXdGNGtpeVd3Q2pxOXNlSFVjWEJu?=
 =?utf-8?B?bk81SjdQbmd6QlViS1dmQmJQaUR3VXFiV2xSU3hLcjU4cmo0MjljSHB5ckVS?=
 =?utf-8?B?VVJpSzgxMUR4NXlldDZVZzV1QnYvbno5VjBZRGcxRS9uWTd2ano4bysvTWRz?=
 =?utf-8?B?Q21lSE95bWFGcGtlb1ZIK1h6M0QvbTV6dmZ1K2ZtMnFPbXV5QWpPMmtybXlP?=
 =?utf-8?B?YktNaEZ1T0FLeElqVnR2NDlHZXVZWUU5bzNqK3NPVWlEUWVpUnZ3d2ZvL29F?=
 =?utf-8?B?Q1NDRXQ5a3dLS001R3QzdmJILzJxYjVESmpsbmN3L29GTE9RQ2FqSE4zb1g1?=
 =?utf-8?B?M016TGxhRy9WKzhHMXMyN0pHRU1xVisrZnJVMlVWbGVZQ2l2Z1d2UHhyWUxB?=
 =?utf-8?B?UHJKZVhMK28zNjR0KysveVZZc1h1ZW1sWkpjNFA0K0l6Mk5zQVFnVTZId1B5?=
 =?utf-8?Q?ksQc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B744E6A1066DFC4BA533370F3C21C54E@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: 9d0937b8-0cf3-42e9-26ea-08dc9bf5b3a8
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jul 2024 06:51:16.2669
 (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: poixtiMEMH/atkY7Bz24vO+6qsSOgNO477f+dB1UTgT2iSH7zh/OgFq6e3KvyCTgUbH74yqTNLjURIKv19woIg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6608

T24gMjAyNC83LzQgMTQ6MzgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNC4wNy4yMDI0IDA0
OjU2LCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+PiBPbiAyMDI0LzcvMiAxNjo0NCwgSmFuIEJldWxp
Y2ggd3JvdGU6DQo+Pj4gT24gMDIuMDcuMjAyNCAwNToxNSwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0K
Pj4+PiBPbiAyMDI0LzcvMSAxNTo0NCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+PiBPbiAzMC4w
Ni4yMDI0IDE0OjMzLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+Pj4+PiAtLS0gYS94ZW4vYXJjaC94
ODYvcGh5c2Rldi5jDQo+Pj4+Pj4gKysrIGIveGVuL2FyY2gveDg2L3BoeXNkZXYuYw0KPj4+Pj4+
IEBAIC0zMjMsNiArMzIzLDEzIEBAIHJldF90IGRvX3BoeXNkZXZfb3AoaW50IGNtZCwgWEVOX0dV
RVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpDQo+Pj4+Pj4gICAgICAgICAgaWYgKCAhZCApDQo+
Pj4+Pj4gICAgICAgICAgICAgIGJyZWFrOw0KPj4+Pj4+ICANCj4+Pj4+PiArICAgICAgICAvKiBQ
cmV2ZW50IG1hcHBpbmcgd2hlbiB0aGUgc3ViamVjdCBkb21haW4gaGFzIG5vIFg4Nl9FTVVfVVNF
X1BJUlEgKi8NCj4+Pj4+PiArICAgICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgJiYgIWhhc19w
aXJxKGQpICkNCj4+Pj4+PiArICAgICAgICB7DQo+Pj4+Pj4gKyAgICAgICAgICAgIHJjdV91bmxv
Y2tfZG9tYWluKGQpOw0KPj4+Pj4+ICsgICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQo+
Pj4+Pj4gKyAgICAgICAgfQ0KPj4+Pj4+ICsNCj4+Pj4+PiAgICAgICAgICByZXQgPSBwaHlzZGV2
X21hcF9waXJxKGQsIG1hcC50eXBlLCAmbWFwLmluZGV4LCAmbWFwLnBpcnEsICZtc2kpOw0KPj4+
Pj4+ICANCj4+Pj4+PiAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsNCj4+Pj4+PiBAQCAt
MzQ2LDYgKzM1MywxMyBAQCByZXRfdCBkb19waHlzZGV2X29wKGludCBjbWQsIFhFTl9HVUVTVF9I
QU5ETEVfUEFSQU0odm9pZCkgYXJnKQ0KPj4+Pj4+ICAgICAgICAgIGlmICggIWQgKQ0KPj4+Pj4+
ICAgICAgICAgICAgICBicmVhazsNCj4+Pj4+PiAgDQo+Pj4+Pj4gKyAgICAgICAgLyogUHJldmVu
dCB1bm1hcHBpbmcgd2hlbiB0aGUgc3ViamVjdCBkb21haW4gaGFzIG5vIFg4Nl9FTVVfVVNFX1BJ
UlEgKi8NCj4+Pj4+PiArICAgICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgJiYgIWhhc19waXJx
KGQpICkNCj4+Pj4+PiArICAgICAgICB7DQo+Pj4+Pj4gKyAgICAgICAgICAgIHJjdV91bmxvY2tf
ZG9tYWluKGQpOw0KPj4+Pj4+ICsgICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQo+Pj4+
Pj4gKyAgICAgICAgfQ0KPj4+Pj4+ICsNCj4+Pj4+PiAgICAgICAgICByZXQgPSBwaHlzZGV2X3Vu
bWFwX3BpcnEoZCwgdW5tYXAucGlycSk7DQo+Pj4+Pj4gIA0KPj4+Pj4+ICAgICAgICAgIHJjdV91
bmxvY2tfZG9tYWluKGQpOw0KPj4+Pj4NCj4+Pj4+IElmIHlvdSBkaWQgZ28gbG9vaywgeW91IHdp
bGwgaGF2ZSBub3RpY2VkIHRoYXQgd2UgdXNlICJyZXR1cm4iIGluIHRoZSBtaWRkbGUNCj4+Pj4+
IG9mIHRoaXMgZnVuY3Rpb24gb25seSB2ZXJ5IHNwYXJpbmdseSAod2hlbiBhbHRlcm5hdGl2ZXMg
d291bGQgcmVzdWx0IGluIG1vcmUNCj4+Pj4+IGNvbXBsaWNhdGVkIGNvZGUgZWxzZXdoZXJlKS4g
SSB0aGluayB5b3Ugd2FudCB0byBhdm9pZCAicmV0dXJuIiBoZXJlLCB0b28sDQo+Pj4+PiBhbmQg
cHJvYmFibHkgZ28gZXZlbiBmdXJ0aGVyIGFuZCBhdm9pZCB0aGUgZXh0cmEgcmN1X3VubG9ja19k
b21haW4oKSBhcyB3ZWxsLg0KPj4+Pj4gVGhhdCdzIGVhc2lseSBwb3NzaWJsZSB0byBhcnJhbmdl
IGZvciAodGFraW5nIHRoZSBsYXR0ZXIgY2FzZSBhcyBleGFtcGxlKToNCj4+Pj4+DQo+Pj4+PiAg
ICAgICAgIC8qIFByZXZlbnQgdW5tYXBwaW5nIHdoZW4gdGhlIHN1YmplY3QgZG9tYWluIGhhcyBu
byBYODZfRU1VX1VTRV9QSVJRICovDQo+Pj4+PiAgICAgICAgIGlmICggIWlzX2h2bV9kb21haW4o
ZCkgfHwgaGFzX3BpcnEoZCkgKQ0KPj4+Pj4gICAgICAgICAgICAgcmV0ID0gcGh5c2Rldl91bm1h
cF9waXJxKGQsIHVubWFwLnBpcnEpOw0KPj4+Pj4gICAgICAgICBlbHNlDQo+Pj4+PiAgICAgICAg
ICAgICByZXQgPSAtRU9QTk9UU1VQUDsNCj4+Pj4+DQo+Pj4+PiAgICAgICAgIHJjdV91bmxvY2tf
ZG9tYWluKGQpOw0KPj4+Pj4NCj4+Pj4+IFBlcnNvbmFsbHkgSSB3b3VsZCBldmVuIHVzZSBhIGNv
bmRpdGlvbmFsIG9wZXJhdG9yIGhlcmUsIGJ1dCBJIGJlbGlldmUNCj4+Pj4+IG90aGVycyBtaWdo
dCBkaXNsaWtlIGl0cyB1c2UgaW4gc2l0dWF0aW9ucyBsaWtlIHRoaXMgb25lLg0KPj4+Pj4NCj4+
Pj4+IFRoZSByZS1hcnJhbmdlbWVudCBtYWtlIGEgbGl0dGxlIG1vcmUgbm90aWNlYWJsZSB0aG91
Z2ggdGhhdCB0aGUgY29tbWVudA0KPj4+Pj4gaXNuJ3QgcXVpdGUgcmlnaHQgZWl0aGVyOiBQViBk
b21haW5zIG5lY2Vzc2FyaWx5IGhhdmUgbm8NCj4+Pj4+IFg4Nl9FTVVfVVNFX1BJUlEuIE1heWJl
ICIuLi4gaGFzIG5vIG5vdGlvbiBvZiBwSVJRIj8NCj4+Pj4NCj4+Pj4gT3IganVzdCBsaWtlIGJl
bG93Pw0KPj4+Pg0KPj4+PiAgICAgICAgIC8qDQo+Pj4+ICAgICAgICAgICogUHJldmVudCB1bm1h
cHBpbmcgd2hlbiB0aGUgc3ViamVjdCBodm0gZG9tYWluIGhhcyBubw0KPj4+PiAgICAgICAgICAq
IFg4Nl9FTVVfVVNFX1BJUlENCj4+Pj4gICAgICAgICAgKi8NCj4+Pj4gICAgICAgICBpZiAoIGlz
X2h2bV9kb21haW4oZCkgJiYgIWhhc19waXJxKGQpICkNCj4+Pj4gICAgICAgICAgICAgcmV0ID0g
LUVPUE5PVFNVUFA7DQo+Pj4+ICAgICAgICAgZWxzZQ0KPj4+PiAgICAgICAgICAgICByZXQgPSBw
aHlzZGV2X3VubWFwX3BpcnEoZCwgdW5tYXAucGlycSk7DQo+Pj4NCj4+PiBObyBvYmplY3Rpb24g
dG8gdGhlIHNsaWdodGx5IGNoYW5nZWQgY29tbWVudC4gVGhlIGNvZGUgYWx0ZXJuYXRpdmUgeW91
DQo+Pj4gcHJlc2VudCBpcyBvZiBjb3Vyc2UgZnVuY3Rpb25hbGx5IGlkZW50aWNhbCwgeWV0IHBl
cnNvbmFsbHkgSSBwcmVmZXIgdG8NCj4+PiBoYXZlIHRoZSAiZ29vZCIgY2FzZSBvbiB0aGUgImlm
IiBicmFuY2ggYW5kIHRoZSAiYmFkIiBvbmUgZm9sbG93aW5nDQo+Pj4gImVsc2UiLiBJIHdvdWxk
bid0IGluc2lzdCwgdGhvdWdoLg0KPj4gT0ssIHdpbGwgY2hhbmdlICJnb29kIiBjYXNlIG9uIHRo
ZSAiaWYiIGJyYW5jaC4NCj4+IERvIEkgbmVlZCB0byBjaGFuZ2UgIiFpc19odm1fZG9tYWluKGQp
IiB0byAiaXNfcHZfZG9tYWluKGQpIiA/DQo+PiBBbmQgdGhlbiBoYXZlOg0KPj4NCj4+ICAgICAg
ICAgLyogT25seSB1bm1hcHBpbmcgd2hlbiB0aGUgc3ViamVjdCBkb21haW4gaGFzIGEgbm90aW9u
IG9mIFBJUlEgKi8NCj4+ICAgICAgICAgaWYgKCBpc19wdl9kb21haW4oZCkgfHwgaGFzX3BpcnEo
ZCkgKQ0KPj4gICAgICAgICAgICAgcmV0ID0gcGh5c2Rldl91bm1hcF9waXJxKGQsIHVubWFwLnBp
cnEpOw0KPj4gICAgICAgICBlbHNlDQo+PiAgICAgICAgICAgICByZXQgPSAtRU9QTk9UU1VQUDsN
Cj4gDQo+IEkgZm9yIG9uZSB3b3VsZCBwcmVmZXIgaWYgeW91IGtlcHQgdXNpbmcgaXNfaHZtX2Rv
bWFpbigpLCBmb3IgYmVpbmcgbW9yZQ0KPiBwcmVjaXNlIGluIHRoaXMgc2l0dWF0aW9uLg0KT0ss
IHRoYW5rcy4gV2lsbCBjaGFuZ2UgaW4gbmV4dCB2ZXJzaW9uLg0KDQo+IA0KPiBKYW4NCg0KLS0g
DQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 07:44:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 07:44:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753555.1161740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPH8j-0002qN-QT; Thu, 04 Jul 2024 07:44:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753555.1161740; Thu, 04 Jul 2024 07:44:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPH8j-0002qE-Na; Thu, 04 Jul 2024 07:44:25 +0000
Received: by outflank-mailman (input) for mailman id 753555;
 Thu, 04 Jul 2024 07:44:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPH8h-0002pa-Tu; Thu, 04 Jul 2024 07:44:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPH8h-0004Ge-SJ; Thu, 04 Jul 2024 07:44:23 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPH8h-00034H-Dm; Thu, 04 Jul 2024 07:44:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPH8h-0005Pt-DF; Thu, 04 Jul 2024 07:44: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ZwdA9M2FcJwSBD0r1Y9EVTlXhhA+SmN1gDe3hwUessI=; b=4CA3vBHhoZ5PX2d8hw4KsKw8JI
	QKQZRTkFplXPnXd9xFOK2seUKKg+drQeBLppJt92Hm8ooM1eyNaFM7QYBWwsqyaN+VaodJpNWSxBh
	1UH9ZpjQqaMYdwjKzdAEIzrsTfc0xAOpcWfGYQUE7G8Tnop839TKYhoJx5C0EmVNeVcc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186646-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186646: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=63c66274d9934e0df7f4e3725c868ff2251b705f
X-Osstest-Versions-That:
    xen=08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 07:44:23 +0000

flight 186646 xen-unstable real [real]
flight 186649 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186646/
http://logs.test-lab.xenproject.org/osstest/logs/186649/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl           8 xen-boot            fail pass in 186649-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl         15 migrate-support-check fail in 186649 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 186649 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186639
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186639
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186639
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186639
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186639
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186639
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  63c66274d9934e0df7f4e3725c868ff2251b705f
baseline version:
 xen                  08daa72cdcb660c2f0aef52ee76a3704e2dd1b5b

Last test of basis   186639  2024-07-03 05:44:01 Z    1 days
Testing same since   186646  2024-07-03 22:11:04 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   08daa72cdc..63c66274d9  63c66274d9934e0df7f4e3725c868ff2251b705f -> master


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 07:50:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 07:50:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753569.1161757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPHEV-0004VI-IC; Thu, 04 Jul 2024 07:50:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753569.1161757; Thu, 04 Jul 2024 07:50:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPHEV-0004VB-FY; Thu, 04 Jul 2024 07:50:23 +0000
Received: by outflank-mailman (input) for mailman id 753569;
 Thu, 04 Jul 2024 07: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=PC/7=OE=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sPHET-0004V5-Tp
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 07:50:21 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ffab665-39da-11ef-bbf9-fd08da9f4363;
 Thu, 04 Jul 2024 09:50:20 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id D0DDD4EE0739;
 Thu,  4 Jul 2024 09:50: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: 0ffab665-39da-11ef-bbf9-fd08da9f4363
MIME-Version: 1.0
Date: Thu, 04 Jul 2024 09:50:19 +0200
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: nicola.vetrini@bugseng.com, consulting@bugseng.com, Simone Ballarin
 <simone.ballarin@bugseng.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>, =?UTF-8?Q?Marek_Marczykowski-G=C3=B3re?=
 =?UTF-8?Q?cki?= <marmarek@invisiblethingslab.com>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH 10/17] x86/asm: address violations of MISRA C:2012
 Directive 4.10
Reply-To: alessandro.zucchelli@bugseng.com
Mail-Reply-To: alessandro.zucchelli@bugseng.com
In-Reply-To: <8a0c0cec-c168-471f-88ad-228ddcdd4f0a@suse.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <efb272c9eaad24875f34b396a75fed9577dedbda.1719829101.git.alessandro.zucchelli@bugseng.com>
 <8a0c0cec-c168-471f-88ad-228ddcdd4f0a@suse.com>
Message-ID: <5f68a556c6bc263fe958a105b87dcf1e@bugseng.com>
X-Sender: alessandro.zucchelli@bugseng.com
Organization: BUGSENG Srl
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-03 14:49, Jan Beulich wrote:
> On 01.07.2024 15:36, Alessandro Zucchelli wrote:
>> --- a/docs/misra/safe.json
>> +++ b/docs/misra/safe.json
>> @@ -90,6 +90,14 @@
>>              "name": "Dir 4.10: direct inclusion guard before",
>>              "text": "Headers with just the direct inclusion guard 
>> before the inclusion guard are safe."
>>          },
>> +        {
>> +            "id": "SAF-11-safe",
>> +            "analyser": {
>> +                "eclair": "MC3R1.D4.10"
>> +            },
>> +            "name": "Dir 4.10: file intended for multiple inclusion",
>> +            "text": "Files intended for multiple inclusion are not 
>> supposed to comply with D4.10."
>> +        },
>>          {
>>              "id": "SAF-11-safe",
> 
> This can't be right; the sentinel must have its number changed.

Yes, this must have been overlooked during the rebasing of the previous 
patch version's commits.

> 
>> --- a/xen/include/Makefile
>> +++ b/xen/include/Makefile
>> @@ -104,10 +104,17 @@ $(obj)/compat/.xlat/%.lst: $(srcdir)/xlat.lst 
>> FORCE
>>  xlat-y := $(shell sed -ne 's,@arch@,$(compat-arch-y),g' -re 
>> 's,^[?!][[:blank:]]+[^[:blank:]]+[[:blank:]]+,,p' $(srcdir)/xlat.lst | 
>> uniq)
>>  xlat-y := $(filter $(patsubst compat/%,%,$(headers-y)),$(xlat-y))
>> 
>> +ARCHDIR = $(shell echo $(SRCARCH) | tr a-z A-Z)
> 
> Why is this being added here? It's not used ...

It was mistakenly left here from the previous version of the patch 
series.

> 
>>  quiet_cmd_xlat_h = GEN     $@
>> -cmd_xlat_h = \
>> -	cat $(filter %.h,$^) >$@.new; \
>> +define cmd_xlat_h
>> +	guard=$$(echo ASM_${SRCARCH}_COMPAT_XLAT_H | tr a-z A-Z); \
>> +	echo "#ifndef $$guard" > $@.new; \
>> +	echo "#define $$guard" >> $@.new; \
>> +	cat $(filter %.h,$^) >> $@.new; \
>> +	echo "#endif /* $$guard */" >> $@.new; \
>>  	mv -f $@.new $@
>> +endef
>> 
>>  $(obj)/compat/xlat.h: $(addprefix $(obj)/compat/.xlat/,$(xlat-y)) 
>> FORCE
>>  	$(call if_changed,xlat_h)
> 
> ... anywhere. Did you mean to use it in place of ${SRCARCH}?

No, SRCARCH is correct, as ARCHDIR was supposed to be removed.

-- 
Alessandro Zucchelli, B.Sc.

Software Engineer, BUGSENG (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 07:54:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 07:54:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753577.1161767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPHIW-00055I-0v; Thu, 04 Jul 2024 07:54:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753577.1161767; Thu, 04 Jul 2024 07:54:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPHIV-00055B-UC; Thu, 04 Jul 2024 07:54:31 +0000
Received: by outflank-mailman (input) for mailman id 753577;
 Thu, 04 Jul 2024 07: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=axFx=OE=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sPHIT-000555-TQ
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 07:54:29 +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 a2cecf28-39da-11ef-bbf9-fd08da9f4363;
 Thu, 04 Jul 2024 09:54:28 +0200 (CEST)
Received: from BL1PR13CA0023.namprd13.prod.outlook.com (2603:10b6:208:256::28)
 by PH7PR12MB8825.namprd12.prod.outlook.com (2603:10b6:510:26a::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul
 2024 07:54:24 +0000
Received: from BL6PEPF00022570.namprd02.prod.outlook.com
 (2603:10b6:208:256:cafe::32) by BL1PR13CA0023.outlook.office365.com
 (2603:10b6:208:256::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.8 via Frontend
 Transport; Thu, 4 Jul 2024 07:54:23 +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.7741.18 via Frontend Transport; Thu, 4 Jul 2024 07:54:23 +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, 4 Jul
 2024 02:54:22 -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, 4 Jul 2024 02:54: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: a2cecf28-39da-11ef-bbf9-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QaDRFcVD2YSMincS0EwP3v0FhY4sn4VMuhaIHoaD7bypT37aHrCL4N+qf3UmgpBLn/ZlWbl4j652jiEMlS3z8F+Z4oRJvrrqT5IgTlPUW/hp3t4pMEWcZHy55hQqWYjAtpdjcEcLJ0amQh4CAw+1D5jWVNyICnlmyl0Z4OX36OW/D0IRfjJICxLOuW69vmYte+nbKbkPCC2TljerpGZT2yauIdp5UDPqACBzH7QtoRcUAn88GH2TiOSsbZv9/1jTRZ4AMqXZjPiUlpbFvLzt/hnVEwOYu9iD9rf3BFUXHHr3nYeOvhR11ifo7IN/sjkVu+qzacHpMlSsgWGfA2ueag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Cn0TjFAKHF8HGar+yx4yKFzfxkU7wFq9wqkb/IYEq0o=;
 b=jsrX9pxiAUCkBMsVQKUfLvsF1eqf3BdJgNv99FIjw9eQF4Zv7nniPq+JDQpmEaEcvfWny12nYatjg81QTQp7hpqQK7VjQIi4ssrLZXNd/ZAkEebSJJTP50OOYATTCj7fRO/SKKyOKZ+FOjCBysh3p+fMtowhEwRYlI5gTu5W+ovJ9MkCfX1h7KYmky3UtV5MeeVdA/c9m7m2Pu4+Ir/nW8ma9j8pFyTqLUWoaFr7sGDHw77cubLg1vQSVoxLRrmC/NTnKwnLpAGZ4sCTWby7PCxCOTQZqbgJUMcaKgzbO9KeNpPchJnPd5P7xQ+i9GmhyytYJgfZ2e3qpOkl3AqSWA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Cn0TjFAKHF8HGar+yx4yKFzfxkU7wFq9wqkb/IYEq0o=;
 b=nSdTPfNn7MuSHNV7A4iN0jE+OnSztP6+WyWatdL/ZMrvizl6uL5Vkt14uELf7xhAIHg9+FH/7e49aQHuNVIjHd/U4hJmquESFtcTmIjKvnqmMEZrdYOal66hUYpgr/Gwngz/B8VBP8TYS1TieUzcFGarM0c5QbpLvQ4RKv+AdH8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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 for-4.20] xen/arm: dom0less: Add #redistributor-regions property to GICv3 node
Date: Thu, 4 Jul 2024 09:54:19 +0200
Message-ID: <20240704075419.34966-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: BL6PEPF00022570:EE_|PH7PR12MB8825:EE_
X-MS-Office365-Filtering-Correlation-Id: f350c216-bbb5-40a0-efb5-08dc9bfe84e6
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?PUr3hA9CYk7APx55LE9dCVWZQ+dCaCgEw0NjSn+q0qyKbiB+XA5mtqYmS5dn?=
 =?us-ascii?Q?I3HpPpDv5F1slwqEQnkH168sadGUkV495ky8k76SCixjPfIQ0PPhEorcxzh7?=
 =?us-ascii?Q?GEgqWmzVIvBfxrXelohnIu+aEgG+rQMg7jbJ5StwTyWav1/7dGXtXAu5+f1a?=
 =?us-ascii?Q?5DPZ0CD/5CYlGc24Qcp7J2m3wnB8KFIbsFVpBACkEPVdWKMEF7DqvUxzSalh?=
 =?us-ascii?Q?dXYqrZTBbN7lPvEtOk1QWu+O7vJa/pzIx7Xq/yAiH0+FvqJypFZ/QwRONH7g?=
 =?us-ascii?Q?o0qIPmmmQ3BaWAD9R+T66Gdr26eGdMTFGQIZIYrQuiLpaE80f9c2DaUULOIQ?=
 =?us-ascii?Q?POtqaO4SYO6JCiu02l/TEDjqfjP6PJ8uxy6BuEgrwGuzvxEeYGfcJXKjqwE2?=
 =?us-ascii?Q?95bfxqAr9sXGmUuRh31EPEEYHOzaX7amGeLP+P2K7VdVd7fK2a1L8HfA6CFQ?=
 =?us-ascii?Q?9Ahhiomo5O6B7fkJLGDiZb2UA3TWFUIARnz3vdwqUY8cGal+QSu5RKEGQkZx?=
 =?us-ascii?Q?YVCF7JYJ7jgrJehQN1PnP51dYFGMX5YK9QONe8+m0jVkxPCwyXTUt9mW6Bv0?=
 =?us-ascii?Q?OKkN3+kQM4F73oQJFjgqo2guanuDKwZOBZsV+Y/DKnJMH4HQeN9WuVg0aKen?=
 =?us-ascii?Q?OZwcnQzh8YyKx741sPOZTvx4A1AtTi9w4h9pAJzT0cX6WbcwvolbFVvPnIhu?=
 =?us-ascii?Q?RLDXg46NVbi5ak46sCWYkLYBWV6t4bkaYrBrKOIKdTgFbdQn93F/1VlkANx2?=
 =?us-ascii?Q?2PtNS5l/5KIw3PO6x2Q2CYbgwqyPW2ouhyRZJR4uywHS1TNGvdZDGNphaR0Y?=
 =?us-ascii?Q?1Y71OkNQ19sDYuyKlJ0Er4qG3XK1P7MZwspA2uVYKcKeJmPrMsesYQr/BLkk?=
 =?us-ascii?Q?CfReoSquLCLrTKhbqackaVxgX1ISljOKmV7eZ70V0v+lyoKz5YkgCwFK4+45?=
 =?us-ascii?Q?ebRDTzOt4u/m0lkIvqPcdpLiMCMoGSfy3M0eI7ogin+DeRLELIvtpZ1zOhQH?=
 =?us-ascii?Q?D6tSHdn/ivaiuCQ1wFQLrysVWC9ArBGeCSIaf9gdK90Xggd2MhDlVFfP5oVd?=
 =?us-ascii?Q?/BepZXoW5otFrKfRQTHurinqTzcyyv7h58p51xTZpNEMCQWURDJ5ywC+vXr8?=
 =?us-ascii?Q?/yj3+GXzzJ55wqArIRYBongMxUz3z1LAueQjCHYBrufSicb3gplxwXP+RLNa?=
 =?us-ascii?Q?qvvomIAStA0mVOPSW5jLFSMohF45+qjiBAmC+DQSDOzDT4bS6VRVVMKp08oY?=
 =?us-ascii?Q?u8ekmihSpNiDdWWApvePFbwd6I+bWilSidilkB2yrprvGeYDj9TDuBV2lioe?=
 =?us-ascii?Q?gAS+30ISNzVuyOJMDuUYpRCmam3twafEHKWhF2+J48K8C10KqVQxiH4iYo4K?=
 =?us-ascii?Q?YbjrLdpilNReAskvOsp2JAO7q2iAeJuSgPJJuPFr+uJrAz+h3y1wVyhOeBqa?=
 =?us-ascii?Q?Dho5uuaaY31BfPOpOledcyspWXWeup0x?=
X-Forefront-Antispam-Report:
	CIP:165.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: 04 Jul 2024 07:54:23.2555
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f350c216-bbb5-40a0-efb5-08dc9bfe84e6
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: PH7PR12MB8825

Dom0less domain using host memory layout may use more than one
re-distributor region (d->arch.vgic.nr_regions > 1). In that case Xen
will add them in a "reg" property of a GICv3 domU node. Guest needs to
know how many regions to search for, and therefore the GICv3 dt binding
[1] specifies that "#redistributor-regions" property is required if more
than one redistributor region is present. However, Xen does not add this
property which makes guest believe, there is just one such region. This
can lead to guest boot failure when doing GIC SMP initialization. Fix it
by adding this property, which matches what we do for hwdom.

[1] Linux: Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml

Fixes: 4809f9ec7d71 ("xen/arm: if direct-map domain use native addresses for GICv3")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
Tested with Qemu 8.2, virt machine with nr cpus > 123 which requires to use a
second redistributor region.
---
 xen/arch/arm/dom0less-build.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index f919d3acf976..09b65e44aed3 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -176,6 +176,11 @@ static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
     if ( res )
         return res;
 
+    res = fdt_property_cell(fdt, "#redistributor-regions",
+                            d->arch.vgic.nr_regions);
+    if ( res )
+        return res;
+
     /* reg specifies all re-distributors and Distributor. */
     len = (GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS) *
           (d->arch.vgic.nr_regions + 1) * sizeof(__be32);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 08:14:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 08:14:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753591.1161777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPHbp-00005k-Mt; Thu, 04 Jul 2024 08:14:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753591.1161777; Thu, 04 Jul 2024 08: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 1sPHbp-00005d-Jo; Thu, 04 Jul 2024 08:14:29 +0000
Received: by outflank-mailman (input) for mailman id 753591;
 Thu, 04 Jul 2024 08: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=PC/7=OE=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sPHbo-00005X-Ej
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 08:14:28 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6d988c2f-39dd-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 10:14:26 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 7894B4EE0739;
 Thu,  4 Jul 2024 10:14: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: 6d988c2f-39dd-11ef-8776-851b0ebba9a2
MIME-Version: 1.0
Date: Thu, 04 Jul 2024 10:14:25 +0200
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: nicola.vetrini@bugseng.com, consulting@bugseng.com, Maria Celeste
 Cesario <maria.celeste.cesario@bugseng.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 12/17] xen: address violations of MISRA C:2012 Directive
 4.10
Reply-To: alessandro.zucchelli@bugseng.com
Mail-Reply-To: alessandro.zucchelli@bugseng.com
In-Reply-To: <ac3885eb-ae04-4362-b94d-117694fbdaac@suse.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <8305a914d1f1ee01d1b0b83cb86c2a48a2a2be0b.1719829101.git.alessandro.zucchelli@bugseng.com>
 <ac3885eb-ae04-4362-b94d-117694fbdaac@suse.com>
Message-ID: <6b066505be32b7b22974fca8217ade93@bugseng.com>
X-Sender: alessandro.zucchelli@bugseng.com
Organization: BUGSENG Srl
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-03 14:51, Jan Beulich wrote:
> On 01.07.2024 15:43, Alessandro Zucchelli wrote:
>> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
>> 
>> Modify creation rule for asm-offsets.h to conform to
>> the new standard and to not generate conflicting guards
>> between architectures (which is a violation of the directive).
>> Modify generic-y creation rule to generate code without violations
>> and to conform to the new standard.
>> 
>> Mechanical change.
>> ---
>> Changes in v4:
>> - improve inclusion guard generation
>> 
>> Signed-off-by: Maria Celeste Cesario  
>> <maria.celeste.cesario@bugseng.com>
>> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
>> 
>> ---
>>  xen/build.mk                     | 7 ++++---
>>  xen/scripts/Makefile.asm-generic | 8 +++++++-
>>  2 files changed, 11 insertions(+), 4 deletions(-)
>> 
>> diff --git a/xen/build.mk b/xen/build.mk
>> index 0f490ca71b..bbd4c2970f 100644
>> --- a/xen/build.mk
>> +++ b/xen/build.mk
>> @@ -47,6 +47,7 @@ asm-offsets.s: arch/$(SRCARCH)/$(ARCH)/asm-offsets.c
>> 
>>  arch/$(SRCARCH)/include/asm/asm-offsets.h: asm-offsets.s
>>  	@(set -e; \
>> +	  guard=$$(echo ASM_${SRCARCH}_ASM_OFFSETS_H | tr a-z A-Z); \
> 
> Was this and ...
> 
>> --- a/xen/scripts/Makefile.asm-generic
>> +++ b/xen/scripts/Makefile.asm-generic
>> @@ -32,7 +32,13 @@ old-headers := $(wildcard $(obj)/*.h)
>>  unwanted    := $(filter-out $(generic-y) 
>> $(generated-y),$(old-headers))
>> 
>>  quiet_cmd_wrap = WRAP    $@
>> -      cmd_wrap = echo "\#include <asm-generic/$*.h>" > $@
>> +cmd_wrap = \
>> +    guard=$$(echo ASM_GENERIC_${SRCARCH}_$*_H | tr a-z A-Z); \
> 
> ... this mean to be using $(ARCHDIR) as well then?

The introduction of ARCHDIR is a slip-up from amending the previous 
version of the patch series.
This script is correct as it is.

-- 
Alessandro Zucchelli, B.Sc.

Software Engineer, BUGSENG (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 08:15:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 08:15:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753597.1161787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPHd2-0000ce-W2; Thu, 04 Jul 2024 08:15:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753597.1161787; Thu, 04 Jul 2024 08:15:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPHd2-0000cX-TY; Thu, 04 Jul 2024 08:15:44 +0000
Received: by outflank-mailman (input) for mailman id 753597;
 Thu, 04 Jul 2024 08:15:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+PiT=OE=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sPHd1-0000cN-Df
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 08:15:43 +0000
Received: from mail-yw1-x1136.google.com (mail-yw1-x1136.google.com
 [2607:f8b0:4864:20::1136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a5a897c-39dd-11ef-bbf9-fd08da9f4363;
 Thu, 04 Jul 2024 10:15:42 +0200 (CEST)
Received: by mail-yw1-x1136.google.com with SMTP id
 00721157ae682-650cef35de3so3216857b3.1
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 01:15:42 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-79d69260561sm656038785a.25.2024.07.04.01.15.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Jul 2024 01:15:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a5a897c-39dd-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720080940; x=1720685740; 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=JcbOHyVZoFB/vPv30n4nbPVBNdfV0vjCuMQn/fbdyCM=;
        b=rG3qFJlq1Jzmu+CgmNb3YLXsVOkyCg9eJgUdiix1ne2Z7w6vZUvobE6f+RC/hBirbs
         woXSrHemUErrmIm6IqBUJ0xl8/JHGMA1abB2Ze3yc+DkWGHoVKsqSvvvX9AqEpyfBhZU
         Ddd38n2sY3h35pNbpy74doU+wt8OfHvN/v5h0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720080940; x=1720685740;
        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=JcbOHyVZoFB/vPv30n4nbPVBNdfV0vjCuMQn/fbdyCM=;
        b=OIswIoLUVIWCbeyfaGYQMNzqriik8of4eD2CXz04S6oDfqaQQxSdmmHE4RWX/YOSqs
         yjVivxVWYaf8RQV6KzRzq2khPX2d8ogJb9Iass03dQ3lsr7KrlDMPW0y06dg6M1UqYlR
         ZbQntqnZmG2RJmRytao9UiVsnJV7eI/xBxfNADh/bfjKWGvCPIMEVpADuBclSDgQx/lx
         w8PoAOvfCwB1Jv31A2qVS6oFMaDpTs64g+pdd4oINZZToJxFFCR5UWJrYsWccYLNQrkB
         kKo6WvEHt0uJe0Pk0c5iSpi5msv6wf7lo6abpRAjaNY8smIG1v67Ojg16UWn3wHMLNKq
         VWPA==
X-Gm-Message-State: AOJu0Yx0678QDps+v3P2yhsH8PecTHUoifJA4ycpaip8A0HiuvjFUdDL
	89W3u8zpc03HqblQlysV1fQdvtih9ynxK33vCZ32/ib5TmouDwHyU7THRO6YOLw=
X-Google-Smtp-Source: AGHT+IHwQzCFSlcnmNFapR/+msSQr+26dVtuu7ZyhwWvKlzwXWdzHLWOyGEZhJRRQak2U/LFdzODJA==
X-Received: by 2002:a81:8386:0:b0:64a:d5fd:f19f with SMTP id 00721157ae682-652d5917b98mr7982427b3.18.1720080940467;
        Thu, 04 Jul 2024 01:15:40 -0700 (PDT)
Date: Thu, 4 Jul 2024 10:15:37 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 4/4] CI: Rework the CentOS7 container
Message-ID: <ZoZaKeEJR1ekqPk8@macbook.local>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
 <20240703142002.1662874-5-andrew.cooper3@citrix.com>
 <ZoVmSWt9bwxDNMuF@macbook.local>
 <b10061e7-1bf7-4bac-83d9-fe621cbad65a@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b10061e7-1bf7-4bac-83d9-fe621cbad65a@citrix.com>

On Wed, Jul 03, 2024 at 04:09:48PM +0100, Andrew Cooper wrote:
> On 03/07/2024 3:55 pm, Roger Pau Monné wrote:
> > On Wed, Jul 03, 2024 at 03:20:02PM +0100, Andrew Cooper wrote:
> >> CentOS 7 is fully End-of-life as of 2024-06-30, and the Yum repo configuration
> >> points at URLs which have become non-existent.
> >>
> >> First, start by using a heredoc RUN for legibility.  It's important to use
> >> `set -e` to offset the fact that we're no longer chaining every command
> >> together with an &&.
> >>
> >> Also, because we're using a single RUN command to perform all RPM operations,
> >> we no longer need to work around the OverlayFS bug.
> >>
> >> Adjust the CentOS-*.repo files to point at vault.centos.org.
> >>
> >> Take the opportunity to split the Xen deps from Tools deps, and to adjust the
> >> other packages we use:
> >>
> >>  * We need bzip2-devel for the dombuilder, not just bzip2.
> >>  * zstd-devel is another optional dependency since the last time this package
> >>    list was refreshed.
> >>  * openssl-devel hasn't been a dependency since Xen 4.6.
> >>  * We long ago ceased being able to build Qemu and SeaBIOS in this container,
> >>    so drop their dependencies too.
> >>
> >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Acked-by: Roger Pau Monné <roiger.pau@citrix.com>
> 
> Thanks.
> 
> >
> >> ---
> >> CC: Anthony PERARD <anthony.perard@vates.tech>
> >> CC: Stefano Stabellini <sstabellini@kernel.org>
> >> CC: Doug Goldstein <cardoe@cardoe.com>
> >> CC: Roger Pau Monné <roger.pau@citrix.com>
> >> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> >> ---
> >>  automation/build/centos/7.dockerfile | 70 +++++++++++++++-------------
> >>  1 file changed, 37 insertions(+), 33 deletions(-)
> >>
> >> diff --git a/automation/build/centos/7.dockerfile b/automation/build/centos/7.dockerfile
> >> index 657550f308bb..9e66d72a5bd5 100644
> >> --- a/automation/build/centos/7.dockerfile
> >> +++ b/automation/build/centos/7.dockerfile
> >> @@ -6,44 +6,48 @@ LABEL maintainer.name="The Xen Project" \
> >>  RUN mkdir /build
> >>  WORKDIR /build
> >>  
> >> -# work around https://github.com/moby/moby/issues/10180
> >> -# and add EPEL for dev86
> >> -RUN rpm --rebuilddb && \
> >> -    yum -y install \
> >> -        yum-plugin-ovl \
> >> -        epel-release \
> >> -    && yum clean all && \
> >> -    rm -rf /var/cache/yum
> >> +RUN <<EOF
> >> +    set -e
> >> +
> >> +    # Fix up Yum config now that mirror.centos.org doesn't exist
> >> +    sed -e 's/mirror.centos.org/vault.centos.org/g' \
> >> +        -e 's/^#.*baseurl=https\?/baseurl=https/g' \
> >> +        -e 's/^mirrorlist=https\?/#mirrorlist=https/g' \
> > Why do you also need to uncomment baseurl and comment mirrorlist?
> > Isn't baseurl already enabled, and having extra mirrorlist won't harm
> > as it's just extra location to search for packages? (IOW: even if they
> > don't exist it shouldn't be an issue).
> 
> It appears that having an uncontactable mirror list, as opposed to no
> mirror list, is fatal.
> 
> I didn't end up with this because I like the look of the sed expression.

I wouldn't mind a comment to note the above, but it might be obvious
for people more familiar to yum than myself, hence no strong
request.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 08:40:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 08:40:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753616.1161797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPI0c-0004l3-Qc; Thu, 04 Jul 2024 08:40:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753616.1161797; Thu, 04 Jul 2024 08: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 1sPI0c-0004kw-O0; Thu, 04 Jul 2024 08:40:06 +0000
Received: by outflank-mailman (input) for mailman id 753616;
 Thu, 04 Jul 2024 08:40: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=TWvH=OE=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1sPI0b-0004bR-EV
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 08:40:05 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20621.outbound.protection.outlook.com
 [2a01:111:f403:2612::621])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 01d05d87-39e1-11ef-bbf9-fd08da9f4363;
 Thu, 04 Jul 2024 10:40:03 +0200 (CEST)
Received: from AM6PR05CA0035.eurprd05.prod.outlook.com (2603:10a6:20b:2e::48)
 by DU0PR08MB8833.eurprd08.prod.outlook.com (2603:10a6:10:478::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul
 2024 08:40:00 +0000
Received: from AMS0EPF000001A8.eurprd05.prod.outlook.com
 (2603:10a6:20b:2e:cafe::7) by AM6PR05CA0035.outlook.office365.com
 (2603:10a6:20b:2e::48) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.25 via Frontend
 Transport; Thu, 4 Jul 2024 08:40:00 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF000001A8.mail.protection.outlook.com (10.167.16.148) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7741.18
 via Frontend Transport; Thu, 4 Jul 2024 08:40:00 +0000
Received: ("Tessian outbound b61e5184672a:v359");
 Thu, 04 Jul 2024 08:39:59 +0000
Received: from 17062c7f126f.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 46721410-7F70-40BC-8A1D-2C48CD58070F.1; 
 Thu, 04 Jul 2024 08:39:48 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 17062c7f126f.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 04 Jul 2024 08:39:48 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com (2603:10a6:20b:8f::22)
 by DB4PR08MB9862.eurprd08.prod.outlook.com (2603:10a6:10:3f1::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Thu, 4 Jul
 2024 08:39:45 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::6204:b901:9cc6:bf2b]) by AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::6204:b901:9cc6:bf2b%3]) with mapi id 15.20.7741.027; Thu, 4 Jul 2024
 08:39: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: 01d05d87-39e1-11ef-bbf9-fd08da9f4363
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=AT5T1blVBQcJ1wkXKZeuORYX+IfGITmSe4ecOYISwiIZ3YdkW2R2/B7ZFSONt0FtvwdmGHk3dgJo1/94KA1A7RLGKQQm8Ddz7sWnhx2LgQXj5JJi4RTP31JPMpR+YS1Y1b4bldtDqbbu2CDgtq6MTle6jCO84d/qH5tNBu+ZT0pIHGZfx0MJP652HUxKZimq0l9WZHf2V6f7yN3RL1Ep7DNYsOknVqeCSc2Ik9aTLwud1BUfNMHbB3JfhklfmRKgLCIW8GAk+PYmP68slCbkHRbOsly9r7pUZazxz6wSuHScWb5DEXyz/1FK/1uRNAe9khcvOjfUoG6wM2TAeml56Q==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=t7wv1gyWKHNKDF+fHFoQBtFgIc3ke44LpXbpRzajLlQ=;
 b=SHPhcM+7kh8BlISdPFCslqQG2CEPrVu9hn2PEN28YhRNP3iTtzYqnVLJfN3ZYRhGQlBgnMcLM6qj4R3VhsQqIh9YrnkcL8k2K2M/VoQI+7qDNcv49Ql1gdK6YRa2A7MEI5gcou099cB8iLlxx5ki1E4++V4FiVX0sKnDZXK8e7/3L9rRT/3ZnkItx2J+c/Dm+EWBxq+ySQwXOCYKQKLpbPqAOaDNFlNOP2uYUGpkP98xMpp8wf31pDHQ9y7xkayN87mWrknr0UsWw7YHi2tUFLIlfnRVPqbBbU5RvPscvDczoMqCT1jgX8Iokm90yQ/pPdEhZUUE1zT1kUt+3GM3ug==
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=t7wv1gyWKHNKDF+fHFoQBtFgIc3ke44LpXbpRzajLlQ=;
 b=hXTyZyRzZ/JX2/hlpph+f0aoeTuPlbhDSqegLNutdh8TdqKAx8D3BOESgTP9V25QdRzEugEfQJNvMMwJHqeY7sprs0l6Kby2eSq4OrMVLlNtMgSGEGx5ssn466+qaBZEucgn5EYxQp5gnBpDv2nsvm5Ka+OVh3ooBXXlAkpS8gM=
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: cd5fa9cea8a6741f
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PQ5Q/Q5HQJn+ikiDYZLgQTKSA0hBZObwRWoWmK3tssyd9X67ADag2OQLv9yxmi81ZrvCSjWRgtkZE2WWT4VeaalkXxwaTVIr7i19RCHy7LDckfmKKphptz4VBtegSUQ39TZU0WRBgmDO+0HLnVMV6+ptCM741sWAihaqM1jDWAF7LQKbqG9nDW669AMVqaZHz7wjKygI+ZUPuDA9acLWutvrNjuoAZrmcAzLdkl/Gi3y96yQhfxRUSbA0E4W8CCqDZ6fK9ooaZluFgINn0+dflhzJ1z8MRzZu9Uiv9m9W07K7hlv/xXJeiA78q2eOigIA5s++QNIu2zKUuB0iQMSfA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=t7wv1gyWKHNKDF+fHFoQBtFgIc3ke44LpXbpRzajLlQ=;
 b=jh2/1SrbJgddVWN8tDkgYG57vw8zzrsHOPEvTBJHwGfZCU25LY1Avs2lQNXT7m01cqPyus0WJOsfz5xbrmk8AluJeIN7jQ0X43zkxvVXVWdkd0StBrleeK/UQh99mjUGDofeDumjXwW0TyPvW/cTy5sKP4//o0YhUf+ILUVfrvJ5MXjJUQ6jm85so9h37VQTXVmy4YkDOc1nw4kYy2+MTxUw39U3++CxRSPcD4TRTMPhGFtDqk6sovhOUH7TzovH73xVHzPE/kUlNHcDyBxXcXeKqeN2wqRC6gqAoov5t+3NBmivpSsV2ysODo4CR3Zcw7aCWF77sZNnrRossat9Kg==
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=t7wv1gyWKHNKDF+fHFoQBtFgIc3ke44LpXbpRzajLlQ=;
 b=hXTyZyRzZ/JX2/hlpph+f0aoeTuPlbhDSqegLNutdh8TdqKAx8D3BOESgTP9V25QdRzEugEfQJNvMMwJHqeY7sprs0l6Kby2eSq4OrMVLlNtMgSGEGx5ssn466+qaBZEucgn5EYxQp5gnBpDv2nsvm5Ka+OVh3ooBXXlAkpS8gM=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: Xen-devel <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 for-4.20] xen/arm: dom0less: Add #redistributor-regions
 property to GICv3 node
Thread-Topic: [PATCH for-4.20] xen/arm: dom0less: Add #redistributor-regions
 property to GICv3 node
Thread-Index: AQHazed12zZt44Ds3ki/zr1lurRVMbHmP5UA
Date: Thu, 4 Jul 2024 08:39:44 +0000
Message-ID: <19A039ED-1B56-4C16-B1D0-72F28AA123C5@arm.com>
References: <20240704075419.34966-1-michal.orzel@amd.com>
In-Reply-To: <20240704075419.34966-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.3774.600.62)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM6PR08MB3749:EE_|DB4PR08MB9862:EE_|AMS0EPF000001A8:EE_|DU0PR08MB8833:EE_
X-MS-Office365-Filtering-Correlation-Id: 719603d8-e5ab-4eaf-58bf-08dc9c04e442
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?nu3eMbRKHwNBAXbaQquShje3Z0Vqu4AeNdb+zS0NyVo7U2UgD6+RndmiJ/D4?=
 =?us-ascii?Q?Qp+fFcR/R5cxzFZpT/nvfWC3V5vwOIriPfmYWB+Mr92dFHr9OacySrTmYZCg?=
 =?us-ascii?Q?ooprFmpPgnX7mla+6+UlKeLdxZFqRF6Yo0ae6DkKQFsQLIXXtI3PabJqT2f3?=
 =?us-ascii?Q?6ekerNbNUMTQah1/ymaWiFnz2V0WSczG7qZtSujmGAHQJDIlb7e32D9Os69F?=
 =?us-ascii?Q?NEa2EcIVuLi7GK+XfqTqkD7yyglt4oUnF26bGitk6C+EShyoCbLby3cK5gwW?=
 =?us-ascii?Q?c6QVyBPNmQr1pDa78ZnIcMT0Pcn8HR0NXIQGXm7/MA2YZA6SpAfvF3Xka7ex?=
 =?us-ascii?Q?yg0+cOVJZcRVQNZf1oj4qBT2B35hMsZCiWqB8HyV5Ix/MKP4CHKwJAOMduIE?=
 =?us-ascii?Q?NKLjvURReaYjY1v8V17USF+taYw9gkC6eRtIaFd9UNnmZ0XS2uC2GWpTzAcv?=
 =?us-ascii?Q?efOIyCax29xVdDTnVD9asGxCwxx0Z9zJsN8gSSY3SssrvnOL8zGi28BKEQnx?=
 =?us-ascii?Q?V3shiF6aCvTSMkkZuDyHylnXM9zZrCBuLBSNKMq39eq6z/SIWzvecG+Z3dOE?=
 =?us-ascii?Q?2GUaBqlSu47AH13R7poz3ToDrTFLj65nR62WUcooIo/46NN4+87E+El/h+V6?=
 =?us-ascii?Q?Z/2Q3Puh1LXjLxKbqACQQmuiZbuosAEbnoA+VHR5NyuJJIEBM6UXctG9bmdW?=
 =?us-ascii?Q?jy4d5RCCqTOwqMLwx5iSZ2H1laDq5fHoPdlBo1vlteZhCNn+GCgnaHny/rrr?=
 =?us-ascii?Q?ATWNUOKGQIZ+0edn6ZUXdSibqZgsnR1hRppR86RPd96uR1cdoKv6Z/2tqgc7?=
 =?us-ascii?Q?tSbzvPRSe5CpSEPlnk+gZElHH2eZMn3Z3if2W5F14X1objiQ93VsjPGZzci7?=
 =?us-ascii?Q?8qXK6TwYDc36XdhAMxOphyn9YSKx/Lwe3aRPRz5jLaijyMk1NzVfxFD3oskB?=
 =?us-ascii?Q?3+u+UVAPVURPDpUk5Hb3lK53HnPnPYQFpWM1UnMDh1toju51/w9XhnRg+oTY?=
 =?us-ascii?Q?/ybkOMZ813eM6fn4paW7DLmV8LroWruFEHY/NE4meUdvgugJOX7gq3MqLsxZ?=
 =?us-ascii?Q?XvSI6/QAgohK0TqKpMu1nGCpVj5jQKZcVxgTQiQr2mv/2rha3pUGOogo/jE2?=
 =?us-ascii?Q?rgfvSVebXu9RzLHKvVdKQKFvL7BR3qIOJpjRaWAD5tGYFgKZx7DQHshr20Ct?=
 =?us-ascii?Q?G/q47bXprIWSTfCbLlIXP9dibeTLa9EqCfLzNChZZP0G1e83BXj/Q8f1GCz1?=
 =?us-ascii?Q?k3BLvjYjtjLCkionX3PgEb4ZZ1ZGb53qliUOKVXyHMm6C0YoalcgVfHwUzWf?=
 =?us-ascii?Q?0roBg6fAsUkIDkJl+FGs2L2Y3+7L2krc59kVvsQOgLGtPZrumS5AU4ZvD9Yj?=
 =?us-ascii?Q?wm0YU4MPLgAVeFAXeNiiMg0RUIz280iAdB3AiOLUgrp1L/JDew=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3749.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: <EA83E3203B65FC448DD290DF0B3E7AB8@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB9862
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-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A8.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f7f98709-ab39-4e2e-4870-08dc9c04db20
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|35042699022|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ZZtL98S5HlsQeAU02SbyJOfjfR3GXKnCTsMyEBph52mv/P3ofoDgj1cldpLb?=
 =?us-ascii?Q?NtDvlsZEAZEEkW2/7yCgRhVWSWeQHBedTsqE3VoHMzIDP4qoNpThZgZaMHaz?=
 =?us-ascii?Q?XA73mS84hFGu1OyLlHD/pjhTHm/nNHILIqFQvcM1JAaBrAUn2z4J0xE0sfcm?=
 =?us-ascii?Q?KmjQGvJSYiZdoBfaMYBOd77fv/MVhvWGRufRKAqbSOs876Zg/ziR+MW9TNLe?=
 =?us-ascii?Q?bMw4CvxYv7ZUKk0GTvrFF3Lc1C3lw76NiY7jR9TTzKOeItEDMHvLgli69Mk0?=
 =?us-ascii?Q?cKoFoXV9hEST1loisTApBLCCAOwjrUcc1X0AfTDFVx9Jb5+g4d+7lDCzwOkJ?=
 =?us-ascii?Q?mjGkHDwIJ4VAaS0pYirOOziEB8gCtJPPsbf0jGstqUdGbI0SVm7/BuajT6Bo?=
 =?us-ascii?Q?9s6qT3Z1vWQkYcx8FRrSaDddhXW5vTRPbq/SXNQn+0U0ZgIPvFdg8NIHISOm?=
 =?us-ascii?Q?xn3/Z89Vsxnponz12K8gEuvEJ/shP/X+X0xsQrg/slPf0qshGJgTnE0tBB2X?=
 =?us-ascii?Q?Ej7N7Pfu7/7tE2U/eYAmAIkGxQ/5UtbcompPEH3XCu/9C0IhCHGVxhyWB1MZ?=
 =?us-ascii?Q?U+nS+kb1IndMouJsOf7M0ejRTLzDUesGaGVrr0m/CPB8/duiX7LSwP5cvw4M?=
 =?us-ascii?Q?7Mz/Yk31jryfmfQ060Yv0ZosXnGq9e0/ZcqihOebOVmXfdRpcG0qKxRwuXe1?=
 =?us-ascii?Q?B0VwZvA/bGD/t8Sg7ue7eUJ+CZp/xNgDUKa9MgpEq5/Mg2igphC0hmJQ3bAH?=
 =?us-ascii?Q?pCyWyaVL+FkPkzM113M7IgPEjJdD6hrwMdxnRYvOM1oRlP0t3bCSNngn5M6x?=
 =?us-ascii?Q?zpSoux+Wid/PJnRAHFsYSTsdCVtLNG8t7cGAZn7xnBWv5zc9u0kRNqILImQ2?=
 =?us-ascii?Q?cfNE+naYTBckZ9GMHDbIU2pht1JF78/hVMMgAD6749btiaRqVWR121w87ToI?=
 =?us-ascii?Q?yp/n2lpoIQ7/AOkGPKO3eqyuee8FDe7t5oB0zJgq5myFdk0rGaUc/o+OmQsp?=
 =?us-ascii?Q?bAdzrBM0E6MTEFGlab3NoT+BGSfAa/0AR0fWJM+u6D1L9gBVWavrHnwsn08p?=
 =?us-ascii?Q?Y3iMsIAeMIP0+tcP+MxS8Ssce66kM9EclqDZ+47saG1uHl/r2Lw7hwSz3GgM?=
 =?us-ascii?Q?GaM1GOZ4v+AKiO9NWso7s4KQONt+L0oqtW/Xwypk7PVxm7Si9AepWXTD3haW?=
 =?us-ascii?Q?ymapp5l6+83y3KFfvg42zjI7s6Oj/HZHeP/mpf8YCIa805XKQwpbjbgmfnHW?=
 =?us-ascii?Q?mVttR8KJivm76hiMLFHAjF5ded5z7TTEw1/9C79N6RasW/O0OWO4tZMk46cI?=
 =?us-ascii?Q?Y+xSWs4qrp9+RL9mQeUHWRUX4F8cAS/vvY/3Rp3c/BvCoGcanh9+zL/JwzHX?=
 =?us-ascii?Q?hLynN4SaXdr/bIeNMcB0OxKUF0nLdXrRkO+K6p6Q8UIO9CfQol9v867o3xTd?=
 =?us-ascii?Q?5AF/kWhECF8nqNOBRqJtzxrPkIXPTJAb?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(35042699022)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2024 08:40:00.2654
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 719603d8-e5ab-4eaf-58bf-08dc9c04e442
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:
	AMS0EPF000001A8.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8833



> On 4 Jul 2024, at 08:54, Michal Orzel <michal.orzel@amd.com> wrote:
>=20
> Dom0less domain using host memory layout may use more than one
> re-distributor region (d->arch.vgic.nr_regions > 1). In that case Xen
> will add them in a "reg" property of a GICv3 domU node. Guest needs to
> know how many regions to search for, and therefore the GICv3 dt binding
> [1] specifies that "#redistributor-regions" property is required if more
> than one redistributor region is present. However, Xen does not add this
> property which makes guest believe, there is just one such region. This
> can lead to guest boot failure when doing GIC SMP initialization. Fix it
> by adding this property, which matches what we do for hwdom.
>=20
> [1] Linux: Documentation/devicetree/bindings/interrupt-controller/arm,gic=
-v3.yaml
>=20
> Fixes: 4809f9ec7d71 ("xen/arm: if direct-map domain use native addresses =
for GICv3")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> ---

Looks good to me!

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>





From xen-devel-bounces@lists.xenproject.org Thu Jul 04 08:41:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 08:41:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753621.1161808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPI1t-0005GW-4W; Thu, 04 Jul 2024 08:41:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753621.1161808; Thu, 04 Jul 2024 08:41: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 1sPI1t-0005GN-0y; Thu, 04 Jul 2024 08:41:25 +0000
Received: by outflank-mailman (input) for mailman id 753621;
 Thu, 04 Jul 2024 08:41: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=6IYk=OE=bounce.vates.tech=bounce-md_30504962.6686602e.v1-d0001d61f498441db65f8dfc174bbf2c@srs-se1.protection.inumbo.net>)
 id 1sPI1r-0005GH-Mj
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 08:41:23 +0000
Received: from mail145-25.atl61.mandrillapp.com
 (mail145-25.atl61.mandrillapp.com [198.2.145.25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2f8e5a0b-39e1-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 10:41:20 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-25.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4WF99C0mn7z35hYbw
 for <xen-devel@lists.xenproject.org>; Thu,  4 Jul 2024 08:41:19 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d0001d61f498441db65f8dfc174bbf2c; Thu, 04 Jul 2024 08:41: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: 2f8e5a0b-39e1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720082479; x=1720342979;
	bh=7O573AZm1Kh9wV2KaCajqtMZbo71gXpjVbYEO+3OHbQ=;
	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=d/Ta6fdbpBWGmiBOleHvGlmdPQT2rpzU2egviyr3dfEwVk3pK2EyvKylrx6jJTVPI
	 sLj3vnj0alIgKWEuB30RjmYlrvL/LmzTW/3PX5bP12+PI6OIiT527mb25BWHGjNSyK
	 ffQugylZqOgXG/T3TOJIexF2clD/xR+dyapk+tbA3bErKLyijTi9HYdRub+eiz97sk
	 TT9qz7orv/YfIUZdrjzna3sTpltnHNs/LYbqASpi6nNxGpUWSqwrHCrx3vSTBW3tkK
	 yvKjoYfKTZBm83MI59jsSTPNW7QMlX2dbfX3XxaiWMozSdtXr0uIWcw77sjgZG+0lT
	 jgtxGYxPbSnug==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720082479; x=1720342979; i=anthony.perard@vates.tech;
	bh=7O573AZm1Kh9wV2KaCajqtMZbo71gXpjVbYEO+3OHbQ=;
	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=1TC5xpw/sQAv0X6kezGT63GaT/Ix+YGSc2vws+JGTYAejTq2rQisPQjmwNiOaD/rl
	 3DDDXUdMuzErPOW0mXHSm8fneg8WbwTtlyZWGWWVT+iieYwVFVGPQ12hbmTFxDh7E9
	 6D89kIVpOw4YCxXq8xP0olbtIVZKSnP3LFdvsexq8AEz3AkCdAZIshXP8yThNNj+xF
	 HC+Q7zJclpN97+MQ2QQdBtNkewxFHgUMR1JIjSeLGIeuWmuCNkLkEYroJFSb9Fe11k
	 VW+TLdILHfCW90/JlawfzoAFSI4rc/noGtQcUXZHRuyjXKAh5iadero4F81hZHzkGl
	 gI8O85yzI23bQ==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=201/2]=20build/mkheader:=20Remove=20C-isms=20from=20the=20code?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720082477913
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Message-Id: <ZoZgLXXqzpDt+iML@l14>
References: <20240703225525.1759907-1-andrew.cooper3@citrix.com> <20240703225525.1759907-2-andrew.cooper3@citrix.com>
In-Reply-To: <20240703225525.1759907-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.d0001d61f498441db65f8dfc174bbf2c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240704:md
Date: Thu, 04 Jul 2024 08:41:18 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Wed, Jul 03, 2024 at 11:55:24PM +0100, Andrew Cooper wrote:
> This was clearly written by a C programmer, rather than a python programmer.
> Drop all the useless semi-colons.
> 
> The very final line of the script simply references f.close, rather than
> calling the function.  Switch to using a with: statement, as python does care
> about unclosed files if you enable enough warnings.
> 
> No functional change.
> 
> 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 Jul 04 08:53:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 08:53:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753635.1161818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPIDC-0007Ey-6B; Thu, 04 Jul 2024 08:53:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753635.1161818; Thu, 04 Jul 2024 08:53:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPIDC-0007Er-3R; Thu, 04 Jul 2024 08:53:06 +0000
Received: by outflank-mailman (input) for mailman id 753635;
 Thu, 04 Jul 2024 08:53:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SxKa=OE=bounce.vates.tech=bounce-md_30504962.668662ee.v1-c2cd77b6ed8f426fa34785880f8b2220@srs-se1.protection.inumbo.net>)
 id 1sPIDA-0007El-Tw
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 08:53:05 +0000
Received: from mail137-26.atl71.mandrillapp.com
 (mail137-26.atl71.mandrillapp.com [198.2.137.26])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d26f1c51-39e2-11ef-bbf9-fd08da9f4363;
 Thu, 04 Jul 2024 10:53:03 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-26.atl71.mandrillapp.com (Mailchimp) with ESMTP id
 4WF9Qk0w2dzJKGtpn
 for <xen-devel@lists.xenproject.org>; Thu,  4 Jul 2024 08:53:02 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c2cd77b6ed8f426fa34785880f8b2220; Thu, 04 Jul 2024 08:53: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: d26f1c51-39e2-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720083182; x=1720343682;
	bh=jcH3AJhU2VpWtFTY2C3mwtLqSTGbwTq1w99ijPBqKmQ=;
	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=cSJ9ekErMejLxq2xmhNhl1q2aorBjfXJWZACtBgOIFdLE3hN7BcRf8zM3MxIpxs5h
	 uDKvAr2+ztjFH4TVSMlFfn/LjhUclQZcuzpkERlNbbkqI5H+l5KHYHVwcP7RrixI4e
	 91Tk0eBtGoawXnNxvqBkZAum1UsARw5jKxvAgyZ9x+rkF8NWnDve4wpN1G4ko/66xa
	 KdHiAgpoY6IpzgUWqwOvLKU1O/EK7oGyhkcN3001bTCZCPK2foBR+rtFbIUufaZk8N
	 J5p+pNzAKLIzpKRsc5KJnU6Yy0HDbv5rY++mnEAklbIDt5fCQxnbKQXdb3qyu3YywJ
	 b/9mGppT4B6Fg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720083182; x=1720343682; i=anthony.perard@vates.tech;
	bh=jcH3AJhU2VpWtFTY2C3mwtLqSTGbwTq1w99ijPBqKmQ=;
	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=cQqpWZ4DxGwB9hLKO2gG8rM37G5oRkK0FzIDnGhP/g/EMJ/+uHtNw3pBARGmTvrF8
	 gY9ENZFF/Ij9IVUA4KtSMIwl0XzywP7iItGKKfcocrMGA+pPBNkF83InT1wFj+mrF5
	 +U2wXcegCL8PvncyL4ZO1sKdmJCIwD8F+F5djohG+pJCKmvUJkQQs0aa/Ivhn4SDRF
	 8IlcoewegwvOjcT2g1wAL91GXVD6MZrf7lM0U9nzC6LCXR6z6Srbt8oxem5gbG73af
	 TwjslNgqtRHwTR3QTXzsmpDUQTcYMr5roX7fmZOg/nRf4SdVOEAfMi7mkhTt85plHw
	 u+A/vlUdkcoaA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=202/2]=20build/mkheader:=20Fix=20Syntax/DeprecationWarnings?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720083181042
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Message-Id: <ZoZi7IN+5/foveF5@l14>
References: <20240703225525.1759907-1-andrew.cooper3@citrix.com> <20240703225525.1759907-3-andrew.cooper3@citrix.com>
In-Reply-To: <20240703225525.1759907-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.c2cd77b6ed8f426fa34785880f8b2220?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240704:md
Date: Thu, 04 Jul 2024 08:53:02 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Wed, Jul 03, 2024 at 11:55:25PM +0100, Andrew Cooper wrote:
> With Python 3.11, the following is emitted during a build:
> 
>   tools/include/xen-foreign/mkheader.py:162: DeprecationWarning: invalid escape sequence '\s'
>     regex = "#define\s+%s\\b" % define;
>   tools/include/xen-foreign/mkheader.py:177: DeprecationWarning: invalid escape sequence '\*'
>     input = re.compile("/\*(.*?)\*/", re.S).sub("", input)
>   tools/include/xen-foreign/mkheader.py:178: DeprecationWarning: invalid escape sequence '\s'
>     input = re.compile("\n\s*\n", re.S).sub("\n", input);
>   tools/include/xen-foreign/mkheader.py:182: DeprecationWarning: invalid escape sequence '\s'
>     regex = "union\s+%s\s*\{(.*?)\n\};" % union;
>   tools/include/xen-foreign/mkheader.py:192: DeprecationWarning: invalid escape sequence '\s'
>     regex = "(?:#ifdef ([A-Z_]+))?\nstruct\s+%s\s*\{(.*?)\n\};" % struct;
>   tools/include/xen-foreign/mkheader.py:218: DeprecationWarning: invalid escape sequence '\s'
>     output = re.sub("\\b(union\s+%s)\\b" % union, "\\1_%s" % arch, output);
>   tools/include/xen-foreign/mkheader.py:222: DeprecationWarning: invalid escape sequence '\s'
>     output = re.sub("\\b(struct\s+%s)\\b" % struct, "\\1_%s" % arch, output);
> 
> Python regexes should use raw strings.  Convert all regexes, and drop escaped
> backslashes.  Note that regular escape sequences are interpreted normally when
> parsing a regex, so \n even in a raw-string regex is a newline.
> 
> No functional change.
> 
> 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 Jul 04 10:26:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 10:26:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753651.1161827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPJfH-0001bu-EU; Thu, 04 Jul 2024 10:26:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753651.1161827; Thu, 04 Jul 2024 10: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 1sPJfH-0001bn-Bv; Thu, 04 Jul 2024 10:26:11 +0000
Received: by outflank-mailman (input) for mailman id 753651;
 Thu, 04 Jul 2024 10:26:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=puvF=OE=linaro.org=alex.bennee@srs-se1.protection.inumbo.net>)
 id 1sPJfF-0001be-Ro
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 10:26: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 d14cc884-39ef-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 12:26:04 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-57cb9a370ddso631673a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 03:26:04 -0700 (PDT)
Received: from draig.lan ([85.9.250.243]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72ab0b7f9asm583320566b.219.2024.07.04.03.26.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Jul 2024 03:26:03 -0700 (PDT)
Received: from draig (localhost [IPv6:::1])
 by draig.lan (Postfix) with ESMTP id 40F8F5F839;
 Thu,  4 Jul 2024 11:26:02 +0100 (BST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d14cc884-39ef-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1720088764; x=1720693564; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:references
         :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xC48v9f71+5BEv8BfLMiTZ3HX5Rc0SmAOdizqpMZ2xE=;
        b=MAIqOjdoneXeCTGjpXMjhi2VfK194q9Pftxk5HRsIPslTwHilHQIZgkcsUG41eB51m
         Wm5Zc2rQNRd5WPXis/tzEQXddhuXO6G8d2PctTJRlJxWABvw5H2xdmoddCtbz4V1SaFa
         sgCoWN19NugqZblL5Btctr9ceIsqW8djGocVGsVzBZjg2AjxBmuaD3xP+cMiK4wqRrfK
         hLAa76BI1HtR7Bv/VRyfcFTOA9cNsMvqjmjPDpkR6IyZA4+D6flp0uWGCQOnsASTDnEg
         RQbutu5CsGaSSJhH0NQ4ooP+jKLblW5d0W+BwINI5r29AmfUuP2xM3XmqJOMyeSjV+W4
         yAJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720088764; x=1720693564;
        h=content-transfer-encoding:mime-version:message-id:date:references
         :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xC48v9f71+5BEv8BfLMiTZ3HX5Rc0SmAOdizqpMZ2xE=;
        b=Byg8+b1grp0KFK6JfJk0mRujDQtj6wYsp1xT4VHLM5rcxPD3QqmEWGDOAArVSdxTbb
         k8UJjyIzNUAglb2MTqO4xRpfKmSQtdPabODIFfUN73FrkbobA+IpSFrrVGrXpGcvFBMq
         8UMFiX1tHVn5GW9KpnlQ2yaAhr6rbQ1G5OWIXdzq6UH1sNELTCir6yYt2sy6yV9+H4+Z
         4F7jPifd2dnGiN6UHDwDOPn9rpuebVVpKx6yb/UGCd8icTKFPkkEKzO1nEGGiKPG7qt/
         R/rLzH4fEwbRIOXSrHr007c+AXkQpMLyfYgliLZ0LEJF3apZV2IA+UUQxo0gApMiv3zA
         bQoA==
X-Forwarded-Encrypted: i=1; AJvYcCX1BjkX9m/BVq/ESY4gcb3cA0tmtmyXqqGVLSXz391P6GtK/fc+efbRrNHWNrxmut9iQJpmR6+P5dRZC1p2/2KP+sPVp2VxSmAjeuwzZyU=
X-Gm-Message-State: AOJu0Yze5vnHMkoHH29fQhCBvSPnGh/dNkd6nCKzTUO4dMpyKPOrRWAY
	eB7tPQfNKB87zfYWPI5+uoMfDJDS97BaoEveXaftMw0uRNkh9KzJ+Gf9gQWEOiQ=
X-Google-Smtp-Source: AGHT+IHz64s8lodGRvZkkyNhfG4JyZctTRVpw00+kq525U939ceTRawQk+CRkLio36MJ6fWXBYmhlg==
X-Received: by 2002:a17:906:618:b0:a72:b493:85f6 with SMTP id a640c23a62f3a-a77ba6fbd0amr79084666b.24.1720088763597;
        Thu, 04 Jul 2024 03:26:03 -0700 (PDT)
From: =?utf-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: qemu-devel@nongnu.org,  sstabellini@kernel.org,  anthony@xenproject.org,
  paul@xen.org,  edgar.iglesias@amd.com,  xen-devel@lists.xenproject.org,
  Paolo Bonzini <pbonzini@redhat.com>,  Peter Xu <peterx@redhat.com>,
  David Hildenbrand <david@redhat.com>,  Philippe =?utf-8?Q?Mathieu-Daud?=
 =?utf-8?Q?=C3=A9?=
 <philmd@linaro.org>
Subject: Re: [PATCH v1 1/2] physmem: Bail out qemu_ram_block_from_host() for
 invalid ram addrs
In-Reply-To: <20240701224421.1432654-2-edgar.iglesias@gmail.com> (Edgar E.
	Iglesias's message of "Tue, 2 Jul 2024 00:44:20 +0200")
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com>
	<20240701224421.1432654-2-edgar.iglesias@gmail.com>
Date: Thu, 04 Jul 2024 11:26:02 +0100
Message-ID: <87ikxlo3lx.fsf@draig.linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

"Edgar E. Iglesias" <edgar.iglesias@gmail.com> writes:

> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
>
> Bail out in qemu_ram_block_from_host() when
> xen_ram_addr_from_mapcache() does not find an existing
> mapping.
>
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> ---
>  system/physmem.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/system/physmem.c b/system/physmem.c
> index 33d09f7571..59d1576c2b 100644
> --- a/system/physmem.c
> +++ b/system/physmem.c
> @@ -2277,6 +2277,10 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool=
 round_offset,
>          ram_addr_t ram_addr;
>          RCU_READ_LOCK_GUARD();
>          ram_addr =3D xen_ram_addr_from_mapcache(ptr);
> +        if (ram_addr =3D=3D RAM_ADDR_INVALID) {
> +            return NULL;
> +        }
> +

Isn't this indicative of a failure? Should there at least be a trace
point for failed mappings?

>          block =3D qemu_get_ram_block(ram_addr);
>          if (block) {
>              *offset =3D ram_addr - block->offset;

--=20
Alex Benn=C3=A9e
Virtualisation Tech Lead @ Linaro


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 10:30:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 10:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753660.1161838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPJjm-0003Db-WE; Thu, 04 Jul 2024 10:30:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753660.1161838; Thu, 04 Jul 2024 10:30: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 1sPJjm-0003DU-TF; Thu, 04 Jul 2024 10:30:50 +0000
Received: by outflank-mailman (input) for mailman id 753660;
 Thu, 04 Jul 2024 10:30: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=EPo+=OE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sPJjl-0003DM-DC
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 10:30:49 +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 7a0beb82-39f0-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 12:30:47 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-58d24201934so850933a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 03:30:47 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58ebce189d0sm287924a12.97.2024.07.04.03.30.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Jul 2024 03:30: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: 7a0beb82-39f0-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720089047; x=1720693847; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=SdI35+PphY3lQkQzcGi9WQtoQ5J6YgV32H84xZ/h2tM=;
        b=kv0CwZG6WczfgfQj2WbzoiL72nFheKeCc7TR8FpqpidorZdlOn+0Rwf+MlMR8KAbME
         mG+2MHNZvhE2rqMsAK6+tHM8AMTf4KW2nlc7RExc1/JBzGMy1m0ce2mmmuVVOzxvKcPH
         qG7MOLFjUmFwcfLwTcQ6kDqyzETU5wKET7vS1GpX0pidlATwiUxzp+2rEWiyY6S7x+zr
         8L0k8G/dQfqvaQalYrSuO1SayGcxqf/DHbbI4ngIH19wLrdoyYJSwSEs6G6aYAdMu4Rc
         pyhJaHi2Expz1Hdk2UO54mJsbDdrfhpJ/9vgvbKi1IqhgeLTDrWUQeVxgC2f9fIQ72rQ
         h9pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720089047; x=1720693847;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SdI35+PphY3lQkQzcGi9WQtoQ5J6YgV32H84xZ/h2tM=;
        b=HBLONTPouCXLApHhjl532CYsX6lRuqdFZzTaBRb0EJcOVhgxD503xQVu8n5A7IECfM
         LcdCoby10Y38nEx157/U1lAmTozVgOFFSnpyO71CkFvBckneD4R/bVJVIdPT5zfLkvV1
         XGiI6bTdYQHNSn92azR3W1tMJ4Cp9XVDFxsCAzQGMwxVg2+4KzAsk9iP1stQsDGXdVFO
         sN0+8IjaJLveyGxParLJ0e2P6IHbw/wSZ8JQD9HPuU5eZDjst2JCw7FNa/3jKwy+b0UQ
         jbWHl2dRZFsP/icpeZwiVia6z5kU9Z4NC0C5Xnu6oH+b8dA+UuYHTDLwTzSIqmkRL/mv
         VjlQ==
X-Forwarded-Encrypted: i=1; AJvYcCXFMt+gSodExE32CbMFHHO8QqdCb8Shcn3+TnOU/lBLwQxg7hzUqMDq44nVUUt6dKZuTl6VYkMjjhGk6HvhV6Vm/je2i3XzSwkunJkdHpo=
X-Gm-Message-State: AOJu0Ywo+Jmpv4zMfqE0hAmL7596YS7rcpwP+VJoxlBuJAA8v+W6ctD6
	1soXgzU4YyX7HqXBg2VBbkQI5W+EUv+X4FfR6HlGz8G0xG9i2pme
X-Google-Smtp-Source: AGHT+IGKRI1BANmlgYGIFEPzNLt59aV/MwYiolBBaBjS0OsBBMueu7j9L8aga1HMmDYiKi6y0gIdZw==
X-Received: by 2002:a05:6402:2696:b0:57c:7f3a:6c81 with SMTP id 4fb4d7f45d1cf-58e7b1198dbmr776507a12.8.1720089046732;
        Thu, 04 Jul 2024 03:30:46 -0700 (PDT)
Message-ID: <ba59aeea0adeb0768ab5273790b837864eef1e5b.camel@gmail.com>
Subject: Re: [PATCH v4] xen/riscv: PE/COFF image header for RISC-V target
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Milan Djokic <milandjokic1995@gmail.com>
Cc: milan.djokic@rt-rk.com, Alistair Francis <alistair.francis@wdc.com>, Bob
 Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>,
 Nikola Jelic <nikola.jelic@rt-rk.com>, xen-devel@lists.xenproject.org
Date: Thu, 04 Jul 2024 12:30:45 +0200
In-Reply-To: <0481c78f-ccad-4c65-b104-6b787b79f1d8@suse.com>
References: 
	<2bbb65fcda57f2609f0967f9050a91415059026c.1719942341.git.milan.djokic@rt-rk.com>
	 <21a1bbe9308b72eac6d218235f5211c7a1c90454.1719964980.git.milan.djokic@rt-rk.com>
	 <0481c78f-ccad-4c65-b104-6b787b79f1d8@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-03 at 17:55 +0200, Jan Beulich wrote:
> So, first: Please Cc all applicable maintainers. It would probably be
> prudent
> to also Cc Oleksii, who's doing most of the RISC-V work now (but
> Oleksii,
> please correct me if you don't want to be Cc-ed).
Thanks for adding me and I will be happy for be Cc-ed for RISC-V
related patches.

I will take a look at the patch next week. Sorry for delay.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 10:32:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 10:32:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753665.1161848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPJl1-0003kU-9M; Thu, 04 Jul 2024 10:32:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753665.1161848; Thu, 04 Jul 2024 10: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 1sPJl1-0003kN-5s; Thu, 04 Jul 2024 10:32:07 +0000
Received: by outflank-mailman (input) for mailman id 753665;
 Thu, 04 Jul 2024 10:32: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=EPo+=OE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sPJkz-0003kH-Jk
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 10:32:05 +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 a80d6683-39f0-11ef-bbf9-fd08da9f4363;
 Thu, 04 Jul 2024 12:32:04 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7527afa23cso55240966b.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 03:32:04 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72aaf1bb6bsm586019666b.30.2024.07.04.03.32.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Jul 2024 03: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: a80d6683-39f0-11ef-bbf9-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720089124; x=1720693924; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=1XApMi+8DvodCrfCf9LIdZCQ4QD7cfsXASSmgnXh8bU=;
        b=IL2iHaefCeWamaFaTpMK8Af7HNIdExHpsUCz4k4W5MjrwO6ps3FS3jdiTJiDSjO2BZ
         vDrDnFmCpl8lgo1rZo+pIS6irWWTJYl4y7kt5XwwZ1fh+Yao2qI/9itF03boRL4ZP7Ad
         TpK26fIs41rGU172X3RBWI87rmFZ5Z1ixJyw6FsjEu0wyc9SX25ikxLCPhccDvBXyyYJ
         rktxrCUeWpfGp1r0gE8hdc9zjORJsEza6JA9c9oJDq9CF5Y3BgLcsSJS8AWnSW/FS7Li
         bSvsYaSkH8M1BH46Gz8mWPE+yV/vitOSV0XUfj5tBZt9TMMdrcm0KCiUy3PiGwrEJ9bB
         hSuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720089124; x=1720693924;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1XApMi+8DvodCrfCf9LIdZCQ4QD7cfsXASSmgnXh8bU=;
        b=Rp31uImy45X2vB7q1zlmHtrBJ/I35nE54qSRDbteb18qEosH5z0FWBaf+iNtOgbZ+S
         CB8dFG5y9tA4Aijv3JuPq2uQUmgx0O5qdOJdaIYw9MH9cwe78Jt8Pzm1Vzs/ciA0R1k2
         28P4cDwF6BWPz6vGoLFxycXlsGMERGyGRq597fz8yWfMTmdp8TzN5upC+dekM7f+tvOM
         qDZCN+ceL7NkA7+sd4TeInrcoDRPs9Y3se09rWykZYezGaxq7X7ovq77mypS4SfpyKYK
         IrlUbPRDu1VD1U0FAQcycMErl8r4Vq+wpkwkSVozvWArY+e4RH48/9hnFfZwdmfZ/xvF
         beig==
X-Forwarded-Encrypted: i=1; AJvYcCUSv0gYPiNK5g2QvgBm9XccZy8PEoqiF9lX2U1hTM92vChiRihI7nw4CzxNHCY2jL3zj6xnisUkLa6IND9MKq/Yz7mKjLOvOnNHV5Nko4s=
X-Gm-Message-State: AOJu0YzH2bzNOSgca+Fnx0ePHWIcO5FgA5Zg74muo3NnLO01goGL7XVI
	p2YVU0CZSLrnh5o3C4ypPXyMsuiF3eaxM8d5NP+FVWL8JspMDoWl
X-Google-Smtp-Source: AGHT+IEc7Z68otNh5EKMEwQciaGVMlu6Pmmh0fBrxweNa3B4n4dBpkzUcnR28lAtVAhlOVv5cJvjOA==
X-Received: by 2002:a17:906:adca:b0:a72:9d25:8ad7 with SMTP id a640c23a62f3a-a77ba455795mr93497366b.1.1720089123909;
        Thu, 04 Jul 2024 03:32:03 -0700 (PDT)
Message-ID: <a1ed996df2afbc423f141dbd20a0881c321d4e9b.camel@gmail.com>
Subject: Re: [PATCH for-4.19] tools/xs-clients: Fix `make clean` rule
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
 <jgross@suse.com>
Date: Thu, 04 Jul 2024 12:32:03 +0200
In-Reply-To: <20240703223611.1754927-1-andrew.cooper3@citrix.com>
References: <20240703223611.1754927-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-03 at 23:36 +0100, Andrew Cooper wrote:
> Prior to the split, "the clients" used
> tools/xenstored/Makefile.common whose
> clean rule includes *.o whereas after the split, the removal of *.o
> was lost
> by virtule of not including Makefile.common any more.
>=20
> This is the bug behind the following build error:
>=20
> =C2=A0 make[2]: Entering directory '/local/xen.git/tools/xs-clients'
> =C2=A0 gcc=C2=A0=C2=A0=C2=A0=C2=A0 xenstore_client.o=C2=A0=C2=A0=C2=A0 (s=
nip)
> =C2=A0 /usr/bin/ld: xenstore_client.o: relocation R_X86_64_32S against
> `.rodata' can not be used when making a PIE object; recompile with -
> fPIE
> =C2=A0 /usr/bin/ld: failed to set dynamic section sizes: bad value
> =C2=A0 collect2: error: ld returned 1 exit status
> =C2=A0 make[2]: *** [Makefile:35: xenstore] Error 1
>=20
> which was caused by `make clean` not properly cleaning the tree as I
> was
> swapping between various build containers.
>=20
> Switch to a plain single-colon clean rule.
>=20
> Fixes: 5c293058b130 ("tools/xenstore: move xenstored sources into
> dedicated directory")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Juergen Gross <jgross@suse.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> For 4.19.=C2=A0 It's a minor build system corner case, but is also very
> safe too.
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii

>=20
> Ultimately it needs backporting to 4.18 too.
> ---
> =C2=A0tools/xs-clients/Makefile | 4 ++--
> =C2=A01 file changed, 2 insertions(+), 2 deletions(-)
>=20
> diff --git a/tools/xs-clients/Makefile b/tools/xs-clients/Makefile
> index 4e78d365e0df..5415c441920a 100644
> --- a/tools/xs-clients/Makefile
> +++ b/tools/xs-clients/Makefile
> @@ -38,8 +38,8 @@ xenstore-control: xenstore_control.o
> =C2=A0	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ $(APPEND_LDFLAGS)
> =C2=A0
> =C2=A0.PHONY: clean
> -clean::
> -	$(RM) $(TARGETS) $(DEPS_RM)
> +clean:
> +	$(RM) *.o $(TARGETS) $(DEPS_RM)
> =C2=A0
> =C2=A0.PHONY: distclean
> =C2=A0distclean: clean



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 10:38:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 10:38:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753675.1161857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPJqf-0004Wc-Rr; Thu, 04 Jul 2024 10:37:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753675.1161857; Thu, 04 Jul 2024 10: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 1sPJqf-0004WV-PG; Thu, 04 Jul 2024 10:37:57 +0000
Received: by outflank-mailman (input) for mailman id 753675;
 Thu, 04 Jul 2024 10: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=EPo+=OE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sPJqd-0004U6-Mq
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 10:37:55 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7815ddb5-39f1-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 12:37:53 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-57cc1c00ba6so690411a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 03:37:53 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77c2af0352sm7771066b.198.2024.07.04.03.37.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Jul 2024 03: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: 7815ddb5-39f1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720089473; x=1720694273; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=K0lvMKBkSqvA2f2PHATgT7oRI14ofErtTMmxoggzJyc=;
        b=IITyVtEFA/oWvT9sWmOjf5b99cHyPS+abAvEDb4CnV/QZWmBXULjYuT20dG+SVjL5E
         guNM9a3n/TpvO0U5OG/3DqShuaZyn+jC03x+w++g9+gG8gfp8KgU9d6Xl4Rpa0IvwTVX
         VdPPcnkYubCUeR48kexgT62kq5YwFQrSzaX+fpaiZisk3mzjNJP4dBePbVT3wttmR5zS
         fLFIOq5mKK1XfZqznyF0OpVqgPZ/adrgXFHNWtAEYnHR40T/GMsUcBTSqSZndVtHZdg/
         RWu2rWo1Nrrb5mRI35VmsbbrToaBoF+MknORu9viuAb13gIyJwnlvW6rLVrWQqV/aeAR
         ErGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720089473; x=1720694273;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=K0lvMKBkSqvA2f2PHATgT7oRI14ofErtTMmxoggzJyc=;
        b=A6P6dT8LvOTYjvximdM3SfoKicvyhSNCEOCwZu2uuOhEqm4jP1gGwT5zXyqLyegCaI
         sQRlDnHHuVo4ZIvCdi1D7g7HGjrhTP4WQIqH7tw/C9x8HsnDE31J46fMIA5Cw1rYKb6y
         XTEK+TFBoQV6bwUKLeIaSE3bQsCx2QJCgbOz2JLGGvfXZ914oCXN+vASICPbubML7gQf
         8SadM5HYRkvHF3bhc0WODeO53yohff0wslbp9wEZYLX8tK8nccyCEmeIgHZGoiqh3Uhc
         PyE70XniGm337v/FhdEKDOVFLfUl49BcV0IDZ9ky8fWoNCJ3EPvhjJO10ZopJbMGHE9W
         oVRA==
X-Forwarded-Encrypted: i=1; AJvYcCUzVbnb1GukSKqG1jAlHUKSaCTU91D6xinIe6+C8pYYF5td/l1lOrlN94CywDaUxcg1KQgx2oX230Tz124NXiX1Z0yAq0cFV2I071BOBiE=
X-Gm-Message-State: AOJu0YxXcQ4UkcZ2SVgsZl+K2mryiQUr9Zx6uSDRL1L+Zbooyg1UGeHO
	sZh9rg6oWvo3xbtxRlLzQHV7It81rNAwvt83cVAGPi3QgiS5nLUw
X-Google-Smtp-Source: AGHT+IES1uSxCFKhC4pMNW1t3h+zu+wT4sbQanMhgaGUiN2tAGzhh6QmI2coPSejRxN5XzwDtfoXbA==
X-Received: by 2002:a17:906:2c1a:b0:a72:64ca:4668 with SMTP id a640c23a62f3a-a77ba460c0fmr85690666b.13.1720089472964;
        Thu, 04 Jul 2024 03:37:52 -0700 (PDT)
Message-ID: <2a6a3697a9896107a8f317686fb2e2572d0ba332.camel@gmail.com>
Subject: Re: [PATCH for-4.19 0/4] CI: Fixes, part 1
From: Oleksii <oleksii.kurochko@gmail.com>
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>, Doug Goldstein <cardoe@cardoe.com>, Roger Pau
 =?ISO-8859-1?Q?Monn=E9?=
	 <roger.pau@citrix.com>
Date: Thu, 04 Jul 2024 12:37:52 +0200
In-Reply-To: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-03 at 15:19 +0100, Andrew Cooper wrote:
> Minimum fixes to rebuild the containers, following the HEREDOC
> problems.
>=20
> Unrelated to the HEREDOC problems, Archlinux and CentOS 7 need
> aditional
> chagnes to rebuild.
>=20
> There will be subsequent work to make some improvements to CI for
> 4.19, so in
> particular we're testing with up-to-date LTS distros.
If we really want to test with up-to-date LTS distros in 4.19 then it
probably make sense to postpone release date to July 29 to be sure that
everything is okay. July 29 is still fit in our 2 times release cycle
per year.

~ Oleksii=20
>=20
> Andrew Cooper (4):
> =C2=A0 CI: Formalise the use of heredocs
> =C2=A0 CI: Adjust the usage of inline files
> =C2=A0 CI: Drop bin86/dev86 from archlinux container
> =C2=A0 CI: Rework the CentOS7 container
>=20
> =C2=A0automation/build/README.md=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 | 10 ++-
> =C2=A0.../build/alpine/3.18-arm64v8.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 |=C2=A0 1 +
> =C2=A0automation/build/alpine/3.18.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 |=C2=A0 1 +
> =C2=A0.../archlinux/current-riscv64.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 |=C2=A0 1 +
> =C2=A0automation/build/archlinux/current.dockerfile |=C2=A0 3 +-
> =C2=A0automation/build/centos/7.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 | 71 ++++++++++-------
> --
> =C2=A0.../bookworm-arm64v8-arm32-gcc.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0 1 +
> =C2=A0.../build/debian/bookworm-arm64v8.dockerfile=C2=A0 |=C2=A0 1 +
> =C2=A0.../build/debian/bookworm-cppcheck.dockerfile |=C2=A0 1 +
> =C2=A0.../build/debian/bookworm-i386.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0 1 +
> =C2=A0automation/build/debian/bookworm.dockerfile=C2=A0=C2=A0 |=C2=A0 1 +
> =C2=A0.../build/debian/bullseye-ppc64le.dockerfile=C2=A0 |=C2=A0 1 +
> =C2=A0.../build/debian/buster-gcc-ibt.dockerfile=C2=A0=C2=A0=C2=A0 |=C2=
=A0 1 +
> =C2=A0.../build/debian/jessie-i386.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 |=C2=A0 3 +-
> =C2=A0automation/build/debian/jessie.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0 3 +-
> =C2=A0.../build/debian/stretch-i386.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 |=C2=A0 3 +-
> =C2=A0automation/build/debian/stretch.dockerfile=C2=A0=C2=A0=C2=A0 |=C2=
=A0 3 +-
> =C2=A0automation/build/fedora/29.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 |=C2=A0 1 +
> =C2=A0.../build/suse/opensuse-leap.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 |=C2=A0 1 +
> =C2=A0.../build/suse/opensuse-tumbleweed.dockerfile |=C2=A0 1 +
> =C2=A0automation/build/ubuntu/bionic.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0 1 +
> =C2=A0automation/build/ubuntu/focal.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 |=C2=A0 1 +
> =C2=A0automation/build/ubuntu/trusty.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0 1 +
> =C2=A0.../build/ubuntu/xenial-xilinx.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0 1 +
> =C2=A0automation/build/ubuntu/xenial.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0 1 +
> =C2=A0automation/build/yocto/yocto.dockerfile.in=C2=A0=C2=A0=C2=A0 |=C2=
=A0 2 +
> =C2=A0.../alpine/3.18-arm64v8.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 1 +
> =C2=A0.../tests-artifacts/alpine/3.18.dockerfile=C2=A0=C2=A0=C2=A0 |=C2=
=A0 1 +
> =C2=A0.../kernel/5.19-arm64v8.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 1 +
> =C2=A0.../tests-artifacts/kernel/6.1.19.dockerfile=C2=A0 |=C2=A0 1 +
> =C2=A0.../6.0.0-arm64v8.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 1 +
> =C2=A0.../qemu-system-ppc64/8.1.0-ppc64.dockerfile=C2=A0 |=C2=A0 1 +
> =C2=A032 files changed, 82 insertions(+), 40 deletions(-)
>=20
>=20
> base-commit: fb76e08a8f7a61dfbc07d0f335f1623bca650d7f



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 10:42:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 10:42:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753683.1161867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPJvD-00067Y-FF; Thu, 04 Jul 2024 10:42:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753683.1161867; Thu, 04 Jul 2024 10:42:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPJvD-00067R-Cl; Thu, 04 Jul 2024 10:42:39 +0000
Received: by outflank-mailman (input) for mailman id 753683;
 Thu, 04 Jul 2024 10:42:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EPo+=OE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sPJvC-00067L-Pj
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 10:42:38 +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 20b3ca41-39f2-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 12:42:36 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-58b447c511eso640846a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 03:42:36 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58b5225d687sm3528381a12.23.2024.07.04.03.42.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Jul 2024 03: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: 20b3ca41-39f2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720089756; x=1720694556; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=9U0I/1jp1To09b4azXL/OFAaEUOGqYcs9CEU9FIzn4k=;
        b=ivvO0I565ZQkCdAdArCQDskcxZfvKtKZsbtGEI5i3g2f3t6POeeVSSIWHcieXT7WQ/
         T/n78ONyc876p3q9WdEWrgM9MPJ6yWNbtroeKqd4zSBWng3aTe4dNl+gxv5P3yfkW8uk
         V4/F/d0KsAWid7BkiSnxwVY60aotDbYK7Rt13+MUJ4Pa/b9T07AonLGvJRvwbbrspJ+q
         NtlxfbCT12iK4Bie28uzKQk2wcnyyvFTI1ayMviv5LqtJdtXwhWZnyGSLRBGoHT6Et8Y
         7/M8Blc8arr1qorEWpgY05SQ9iHsbrxoQ0lq66LHkUChwnJQsFzw0toX+JuV/0za2gJr
         5jFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720089756; x=1720694556;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=9U0I/1jp1To09b4azXL/OFAaEUOGqYcs9CEU9FIzn4k=;
        b=asVztjwMHnt7glBhopmHkSD9Q47/lEhRcCvjUYsZqy3u4hoYH+TyawKXyyHqAptUcs
         qBzVCEM0299EtYaO+qNaNV0mj0ZVZsdOSvxtpNVNVgj6u765HPTEQn79Wolc4cnbphcT
         /fq1tSVfqz3UbAQP7+ZPD/lazNqXVAsnGvGMHS5savO3JG1u8ywXUb41ZtM6WE8W+rfM
         LsJqm2ATOxIZG3R9D7uW72ueCIBpFL5eevJwHZhCb5QLxItkcAMtAmzJ8aRiz33Gw6Yu
         TxC7jQmfuTeQ314n6+u4/yjLxhG0YKwtXOhMhA76CdaH+0lY1bh2sOoTsGkLhinuujWv
         Obcw==
X-Forwarded-Encrypted: i=1; AJvYcCXhX0kI9N1rlO6Bf1whxFkgmS+UeFZidZl9ldcibgNrkV42JP7ECmmTqAeHO30LeyiKfOfDbv7rTjQEcwDCRUlF68IwRBLPcSPLN7Is4UY=
X-Gm-Message-State: AOJu0YxUx6IRU+ptcUFZekjE+MTMg28um+jU+mME4PvmzuHfeftaMEda
	QdRrOdMrimM8mmxaUaZh/NO14pLKZk8EacxCqilVHm1gk7Xiq1ESUW3bl0Gz
X-Google-Smtp-Source: AGHT+IEhQDWhl5Rhb1baSUcckYfmf7sGslACFUhkP5CVKA8nQ0IJAdkPnmNkHPb+ck5JXxyQvTN9uw==
X-Received: by 2002:a05:6402:11ca:b0:57c:6d1c:3cee with SMTP id 4fb4d7f45d1cf-58e5aec845fmr903802a12.14.1720089755929;
        Thu, 04 Jul 2024 03:42:35 -0700 (PDT)
Message-ID: <7674f561af40d8ce126f457e0acb9ad40de13ea3.camel@gmail.com>
Subject: Re: [PATCH for-4.19? 0/2] build/mkheader: Fixes
From: Oleksii <oleksii.kurochko@gmail.com>
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>,  Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>
Date: Thu, 04 Jul 2024 12:42:35 +0200
In-Reply-To: <20240703225525.1759907-1-andrew.cooper3@citrix.com>
References: <20240703225525.1759907-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-03 at 23:55 +0100, Andrew Cooper wrote:
> For 4.19?=C2=A0 Noticed while staring at build logs.=C2=A0 Low risk, as t=
he
> build system
> contains a cross-check that mkheader generates the same layout.
>=20
> Not the end of the world if these fixes delay to 4.20.
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii
>=20
> Andrew Cooper (2):
> =C2=A0 build/mkheader: Remove C-isms from the code
> =C2=A0 build/mkheader: Fix Syntax/DeprecationWarnings
>=20
> =C2=A0tools/include/xen-foreign/mkheader.py | 108 +++++++++++++----------=
-
> --
> =C2=A01 file changed, 53 insertions(+), 55 deletions(-)
>=20



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 10:51:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 10:51:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753694.1161880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPK3U-00081Y-9g; Thu, 04 Jul 2024 10:51:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753694.1161880; Thu, 04 Jul 2024 10: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 1sPK3U-00081R-77; Thu, 04 Jul 2024 10:51:12 +0000
Received: by outflank-mailman (input) for mailman id 753694;
 Thu, 04 Jul 2024 10: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=cQU9=OE=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPK3S-00081L-Uq
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 10:51:10 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51975052-39f3-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 12:51:08 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a77c25beae1so21396766b.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 03:51:08 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77b8eb56c1sm39521066b.176.2024.07.04.03.51.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Jul 2024 03:51: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: 51975052-39f3-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720090268; x=1720695068; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8YO8d+O47nLClzJkj9111ZbQq3ZINAf4CxKyeXR+WqI=;
        b=ukGIAR+1QCcyulW+K4upYI+t1/yVmBqyRXhYzHclz2PJPGqmQtB3wmFQu8hetzr9oK
         Ksks3Ik8Xnb8yFZ0Tem244h3sFehQSuiiHlcZGDHzCuNvppDiPglmrwUKNcVgb4nOJKW
         3IjW0wJzw2FQfk/ywZn1FCr+x6eZpkLr8Qizg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720090268; x=1720695068;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8YO8d+O47nLClzJkj9111ZbQq3ZINAf4CxKyeXR+WqI=;
        b=GCsg6xRQZxOXfUUoBYflw7EvKZHgba36i7t2lsjLrdBw/YnaTu+OMJOsulYLCuIC/0
         MFcpCEExZ7fS/+ahnvzhgsnZ9sZa5aqginY6tiasjsDuYdwCSvmGWgkR1JiZAl0wbeh8
         AXCI4PvdvxGVG2+AZ2wsj5rDoj6U5Wjt3k5e3/z+TXAnOEtZLESj2C/gDgh7JyxCcPJg
         lxi75LGzXuDQz18qiRHJmy8y/WxmDTGkwOu1BsrUYSWM+RIzdNaqtQyc1gJpH0o78Ffm
         UZnYBH9ic5T7CpSpEAcoAuegtub4UdGVk06Rm1SXboQ0+7uZ+Pw06cikpm/CHXQQ6xCL
         6zRg==
X-Forwarded-Encrypted: i=1; AJvYcCUbLmXH3onxt1+1yQf93SyMWgd6sRmjYyc4bVjg4dQUCQuMomxAIgEVUkVMzONtgyCpTE2bb2fm3MgpZ//qHj/O8izfRs3k06cxGLXNtbM=
X-Gm-Message-State: AOJu0Ywmm3vOBMR9JGkf+Y6CoNZMWtpB5v4dey9v5lkVFKAzvkLwXOdw
	3lez4gk9PXJ7D4lzufVN3y5QgCOyOCTbvqKKLjGW6/hc8x8d3+g8lauh0cAnJ5w=
X-Google-Smtp-Source: AGHT+IFrblraUrX3HxE46USSR5jrzbDsa51YL5vqSXLdEnnpEP5rTqMP4qwenK1MVNIE2mw3CZnTMw==
X-Received: by 2002:a17:907:7e89:b0:a72:5d75:6337 with SMTP id a640c23a62f3a-a77ba706ad2mr97963266b.53.1720090267619;
        Thu, 04 Jul 2024 03:51:07 -0700 (PDT)
Message-ID: <627365c7-83b8-4b33-aefc-a8c0e4301c7a@citrix.com>
Date: Thu, 4 Jul 2024 11:51:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 0/4] CI: Fixes, part 1
To: Oleksii <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
 <2a6a3697a9896107a8f317686fb2e2572d0ba332.camel@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <2a6a3697a9896107a8f317686fb2e2572d0ba332.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04/07/2024 11:37 am, Oleksii wrote:
> On Wed, 2024-07-03 at 15:19 +0100, Andrew Cooper wrote:
>> Minimum fixes to rebuild the containers, following the HEREDOC
>> problems.
>>
>> Unrelated to the HEREDOC problems, Archlinux and CentOS 7 need
>> aditional
>> chagnes to rebuild.
>>
>> There will be subsequent work to make some improvements to CI for
>> 4.19, so in
>> particular we're testing with up-to-date LTS distros.
> If we really want to test with up-to-date LTS distros in 4.19 then it
> probably make sense to postpone release date to July 29 to be sure that
> everything is okay. July 29 is still fit in our 2 times release cycle
> per year.

Testing with up-to-date distros is trivial, when I can rebuild the
containers.

I've already got "CI: Fixes, part 2" and "part 3" in progress, hoping to
post today, all for 4.19.

What matters, specifically for 4.19 at this point, is that we put in
place testing such that {staging,stable}-4.19 branches are tested
suitably after release.

It would be really embarrassing for the Xen 4.19 release if it didn't
work with e.g. Ubuntu Noble.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 11:11:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 11:11:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753704.1161902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPKN1-0002yp-W3; Thu, 04 Jul 2024 11:11:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753704.1161902; Thu, 04 Jul 2024 11: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 1sPKN1-0002yi-TL; Thu, 04 Jul 2024 11:11:23 +0000
Received: by outflank-mailman (input) for mailman id 753704;
 Thu, 04 Jul 2024 11:11:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=coJv=OE=gmail.com=fernandez.simon@srs-se1.protection.inumbo.net>)
 id 1sPKN0-0002yc-7a
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 11:11:22 +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 23f72d23-39f6-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 13:11:20 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-36796d2e5a9so358758f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 04:11:20 -0700 (PDT)
Received: from [10.14.0.2] ([139.28.176.164]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-36787db4d12sm6821051f8f.110.2024.07.04.04.11.17
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 04 Jul 2024 04: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: 23f72d23-39f6-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720091479; x=1720696279; darn=lists.xenproject.org;
        h=to:references:message-id:content-transfer-encoding:cc:date
         :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qwBmB9TZGFjcG5R2+2N2tz93DvezoEGxh6PsIk8IO/w=;
        b=gpvtI8uVysg2Uy06tFQBomNURfRtiSv/GnY73veCDgub0iX/OsrfWYi/25cKYq0T77
         pTH5zCWjOirzcU0jXclvaKG6INPn1YB98y0f9sLfzAAoznxFOdo+T2XeIhGL4jZd2T4A
         AkpU1OjF5WFj/c/Bp4TxFfNyhuKNtZzasSjXOiynE+Tk5pVpHEJMg4ZAAVzDVPdzsXuI
         eCd35cRoLFxn3qlNDEPv3BDuKhfX7PR1alN10QsvN7khzX8QvhoCxxcAUlGiX0Vu0rom
         EFDjl3+ZXhXky42xIA0crpuPbu0C8PUi37wtvNqmxBo7epBuoGghBPN55Y//LNCXrDxG
         iKfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720091479; x=1720696279;
        h=to:references:message-id:content-transfer-encoding:cc:date
         :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=qwBmB9TZGFjcG5R2+2N2tz93DvezoEGxh6PsIk8IO/w=;
        b=cCbVB2p0VGUhL87f6U8RZ7j9E3gdEbJmD57/4If2/lcRMtRFbrgdqbgPatYip/ccL9
         eEk0S6t/h8LGp7nvkXr7I89JqhnaprD8Mlk2j3x8rIpft5X4fz+MmGUowWIRRiQzAGeM
         p9zOFNp9gMiBO4dgDQw7uI/4YOqJ7Rf07ESf7ReY69YoPL5ZXs3nqlOgYepVK00Yokfp
         93muvBQvK2MDr3U6nopDgBFO+R6F2DiAps9Ej7XP8S2yt8G6GNCj6pH0O5wdrk9/kOu5
         Xde6mA04myW/n2PIKDYZInh3cTUgjosq+dwjcY0tPLa22mA5Rzk2Gv75iCwwFon1IafI
         4OlA==
X-Forwarded-Encrypted: i=1; AJvYcCX8icR4bJfUJCk91CVjOCiqBU1xRMQTBEOMuhw1VOfXyihvBpaNNcl1RODGqmCrai01wra+vWoT8SIdwPmRRV+jrG9i3JizPMIO8N/S9As=
X-Gm-Message-State: AOJu0YzqZtS1u0hq/gRdPDyszo6lC/f2V27FeoCxl13NGikqOmxMzIBd
	03x8Op+9WKShUgm9IEBheD6cHUp+QqCE8LjFlx1YSbhTHT+NE7fD
X-Google-Smtp-Source: AGHT+IFEzvL2jC2faLe/uaMvaq/UCJ26KrH1XFm9Ol6h8w0Rebt6hjx4X+gdY7pIVUfbtqQYexMuPw==
X-Received: by 2002:a5d:5712:0:b0:367:94e7:958a with SMTP id ffacd0b85a97d-3679dd17ec1mr1153338f8f.6.1720091479417;
        Thu, 04 Jul 2024 04:11:19 -0700 (PDT)
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\))
Subject: Re: [PATCH 14/26] block: move the nonrot flag to queue_limits
From: Simon Fernandez <fernandez.simon@gmail.com>
In-Reply-To: <ZnmoANp0TgpxWuF-@kbusch-mbp.dhcp.thefacebook.com>
Date: Thu, 4 Jul 2024 12:11:16 +0100
Cc: Christoph Hellwig <hch@lst.de>,
 Jens Axboe <axboe@kernel.dk>,
 Geert Uytterhoeven <geert@linux-m68k.org>,
 Richard Weinberger <richard@nod.at>,
 Philipp Reisner <philipp.reisner@linbit.com>,
 Lars Ellenberg <lars.ellenberg@linbit.com>,
 =?utf-8?Q?Christoph_B=C3=B6hmwalder?= <christoph.boehmwalder@linbit.com>,
 Josef Bacik <josef@toxicpanda.com>,
 Ming Lei <ming.lei@redhat.com>,
 "Michael S. Tsirkin" <mst@redhat.com>,
 Jason Wang <jasowang@redhat.com>,
 =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alasdair Kergon <agk@redhat.com>,
 Mike Snitzer <snitzer@kernel.org>,
 Mikulas Patocka <mpatocka@redhat.com>,
 Song Liu <song@kernel.org>,
 Yu Kuai <yukuai3@huawei.com>,
 Vineeth Vijayan <vneethv@linux.ibm.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 linux-m68k@lists.linux-m68k.org,
 linux-um@lists.infradead.org,
 drbd-dev@lists.linbit.com,
 nbd@other.debian.org,
 linuxppc-dev@lists.ozlabs.org,
 ceph-devel@vger.kernel.org,
 virtualization@lists.linux.dev,
 xen-devel@lists.xenproject.org,
 linux-bcache@vger.kernel.org,
 dm-devel@lists.linux.dev,
 linux-raid@vger.kernel.org,
 linux-mmc@vger.kernel.org,
 linux-mtd@lists.infradead.org,
 nvdimm@lists.linux.dev,
 linux-nvme@lists.infradead.org,
 linux-s390@vger.kernel.org,
 linux-scsi@vger.kernel.org,
 linux-block@vger.kernel.org,
 Damien Le Moal <dlemoal@kernel.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <78BDDF6A-1FC7-4DD7-AABF-E0B055772CBF@gmail.com>
References: <20240617060532.127975-1-hch@lst.de>
 <20240617060532.127975-15-hch@lst.de>
 <ZnmoANp0TgpxWuF-@kbusch-mbp.dhcp.thefacebook.com>
To: Keith Busch <kbusch@kernel.org>
X-Mailer: Apple Mail (2.3608.120.23.2.7)

Hi folks, how can I unsubscribe from this group.?
Thanks in advance.
S

> On 24 Jun 2024, at 18:08, Keith Busch <kbusch@kernel.org> wrote:
>=20
> On Mon, Jun 17, 2024 at 08:04:41AM +0200, Christoph Hellwig wrote:
>> -#define blk_queue_nonrot(q)	test_bit(QUEUE_FLAG_NONROT, =
&(q)->queue_flags)
>> +#define blk_queue_nonrot(q)	((q)->limits.features & =
BLK_FEAT_ROTATIONAL)
>=20
> This is inverted. Should be:
>=20
> #define blk_queue_nonrot(q)	(!((q)->limits.features & =
BLK_FEAT_ROTATIONAL))
>=20



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 11:13:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 11:13:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753710.1161913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPKPO-0003Xz-Bj; Thu, 04 Jul 2024 11:13:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753710.1161913; Thu, 04 Jul 2024 11: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 1sPKPO-0003Xs-8X; Thu, 04 Jul 2024 11:13:50 +0000
Received: by outflank-mailman (input) for mailman id 753710;
 Thu, 04 Jul 2024 11:13: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=EPo+=OE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sPKPN-0003Xk-2R
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 11:13:49 +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 7b2e4018-39f6-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 13:13:47 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a729d9d7086so289481466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 04:13:47 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58d0bfeec43sm1981651a12.48.2024.07.04.04.13.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Jul 2024 04: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: 7b2e4018-39f6-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720091626; x=1720696426; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=RqV4LrVwqGGyv4Sy1obfjHlYLsLcYJ4PG7/pxwbR+QM=;
        b=JWzY3arjrOTPrJvcefOVA6mafpasvGMbhp2yuCFwLlqaXCdMCsm7GIRHWrLgz08IIN
         UNu3cY+iEv313dPwoLw+jG1XWIluywqZ5Pk/DTCx9XpL6V7r5b6R3gEpGbI2iLO16Rly
         HGyRhusp7XTIatMpV+tbS0YaYGHTScf/UVebWjGcUYQCQD1fFSnqHTMG8J0hWvI/nqmN
         baB2vRXmNQ/7QIfVrc8Ax/o10zTClnjnq9D+Xqe1FMbvIhQ3I0Cj0NmZK73u5o1AXK+z
         spkPp/jfRSYDp8pOzUaVY2bdI+//wJjO/TMvS+ZYnit9pA5oMA39IpOF0o5Z/scMx105
         pXSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720091626; x=1720696426;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=RqV4LrVwqGGyv4Sy1obfjHlYLsLcYJ4PG7/pxwbR+QM=;
        b=jkyauhIo2gwWUAVxUE4EUEPX3PZk1kVNcCbCYU8OCzEmDnSNAzwBjD1c5Koibtnmf7
         EQIZGjxOB8QzvnRcwEmT2PeNlvZT+UVW5GJSLSjYl7c13g/m6b5MqviRfs1XiMbJ40IZ
         Pz25UxkKoKjW6O2p4hZtViDigiKkuqt7YWyGT8gp6d8EApzyV716PBNpFgD+v011ns2g
         FPVQljsms3cfyiNAS9hYxNifkiv2TMm4s++WFseSoKcY5KgXfLGEIxP+2mEEbcygRl1z
         rpl92Z5RCnqbWFuL42mO8PiY6q3riBVXK/twM/TALz8mDaTLTvjGRvAnAosR9PMpxGQX
         z1Qg==
X-Forwarded-Encrypted: i=1; AJvYcCUB/uykUwdl9p7DQo5qapZ9k5VFDK/rczn0uPtylGeEULCEZKd2g9MIAb5gJayw2aGTpJC6scANgUUktt4aBRZPi51o0U6//vZ0W8mshgw=
X-Gm-Message-State: AOJu0YyPQr8RoqB+hRxFFDQbW4AIhFbeKQN49O1Yh6Siaudsqhwww+Jb
	/QpqViEguQr/7pN4bLtlh4JCRaquSlieFSslxlxP9b3J7mhkPyQTJjgIxtKc
X-Google-Smtp-Source: AGHT+IFkUeN3EVz/da44gGaynP/citiSIhMdON/oyy6EDwYCNC/ukHYaJ+EcuuVTZ/6YppkOsWU8Og==
X-Received: by 2002:a17:906:414:b0:a6f:dcb6:223d with SMTP id a640c23a62f3a-a77bd99f39cmr99441266b.8.1720091625729;
        Thu, 04 Jul 2024 04:13:45 -0700 (PDT)
Message-ID: <6d4e4ecff57195c2832f874f5b3b7f5634e03ecf.camel@gmail.com>
Subject: Re: [PATCH for-4.19 0/4] CI: Fixes, part 1
From: Oleksii <oleksii.kurochko@gmail.com>
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>, Doug Goldstein <cardoe@cardoe.com>, Roger Pau
 =?ISO-8859-1?Q?Monn=E9?=
	 <roger.pau@citrix.com>
Date: Thu, 04 Jul 2024 13:13:44 +0200
In-Reply-To: <627365c7-83b8-4b33-aefc-a8c0e4301c7a@citrix.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
	 <2a6a3697a9896107a8f317686fb2e2572d0ba332.camel@gmail.com>
	 <627365c7-83b8-4b33-aefc-a8c0e4301c7a@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Thu, 2024-07-04 at 11:51 +0100, Andrew Cooper wrote:
> On 04/07/2024 11:37 am, Oleksii wrote:
> > On Wed, 2024-07-03 at 15:19 +0100, Andrew Cooper wrote:
> > > Minimum fixes to rebuild the containers, following the HEREDOC
> > > problems.
> > >=20
> > > Unrelated to the HEREDOC problems, Archlinux and CentOS 7 need
> > > aditional
> > > chagnes to rebuild.
> > >=20
> > > There will be subsequent work to make some improvements to CI for
> > > 4.19, so in
> > > particular we're testing with up-to-date LTS distros.
> > If we really want to test with up-to-date LTS distros in 4.19 then
> > it
> > probably make sense to postpone release date to July 29 to be sure
> > that
> > everything is okay. July 29 is still fit in our 2 times release
> > cycle
> > per year.
>=20
> Testing with up-to-date distros is trivial, when I can rebuild the
> containers.
>=20
> I've already got "CI: Fixes, part 2" and "part 3" in progress, hoping
> to
> post today, all for 4.19.
>=20
> What matters, specifically for 4.19 at this point, is that we put in
> place testing such that {staging,stable}-4.19 branches are tested
> suitably after release.
>=20
> It would be really embarrassing for the Xen 4.19 release if it didn't
> work with e.g. Ubuntu Noble.
Agree, it makes sense.

Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 11:27:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 11:27:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753719.1161922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPKcS-0005bn-DV; Thu, 04 Jul 2024 11:27:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753719.1161922; Thu, 04 Jul 2024 11:27: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 1sPKcS-0005bg-AV; Thu, 04 Jul 2024 11:27:20 +0000
Received: by outflank-mailman (input) for mailman id 753719;
 Thu, 04 Jul 2024 11:27:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPKcR-0005bW-HM; Thu, 04 Jul 2024 11:27:19 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPKcR-0000iT-Ev; Thu, 04 Jul 2024 11:27:19 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPKcR-0002z6-4g; Thu, 04 Jul 2024 11:27:19 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPKcR-0004Tj-4A; Thu, 04 Jul 2024 11:27:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=DeMFwNrAPQF8JsqJd4sYi9HiKrGuNqOEEBAWC8cZCwo=; b=P/ZZw/dOUXRutdFIMGzlyl+SdF
	8wA5gvDbbINuNKfYCvMXceBr+4zfXffwXqGNFaaX2EHMc/Vh1ZXIb7u/XsUttJBM/yyaogzAml7ot
	lZOqKNOixqPrW8qmaUENf1//rChUPZMPnEPFSspxSO6IfKHbzLugcP4r5Dihq0Dnatks=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186651-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186651: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=7e3701b6ce0347c8b906967e223fa846f23e71d4
X-Osstest-Versions-That:
    xen=63c66274d9934e0df7f4e3725c868ff2251b705f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 11:27:19 +0000

flight 186651 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186651/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  7e3701b6ce0347c8b906967e223fa846f23e71d4
baseline version:
 xen                  63c66274d9934e0df7f4e3725c868ff2251b705f

Last test of basis   186644  2024-07-03 17:04:06 Z    0 days
Testing same since   186651  2024-07-04 08:00:24 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alejandro Vallejo <alejandro.vallejo@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   63c66274d9..7e3701b6ce  7e3701b6ce0347c8b906967e223fa846f23e71d4 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 11:42:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 11:42:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753731.1161932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPKrJ-0000gD-Ob; Thu, 04 Jul 2024 11:42:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753731.1161932; Thu, 04 Jul 2024 11:42: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 1sPKrJ-0000g6-Ly; Thu, 04 Jul 2024 11:42:41 +0000
Received: by outflank-mailman (input) for mailman id 753731;
 Thu, 04 Jul 2024 11:42:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VMFS=OE=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1sPKrI-0000g0-UF
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 11:42:40 +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 83b513d0-39fa-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 13:42:38 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e38028so730479a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 04:42: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: 83b513d0-39fa-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720093358; x=1720698158; 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=HzfFhpY9wpDm0aoDe9W7snDRqUECUqFzPYV35L92RvU=;
        b=OQMa9iS5BclEo0Y+BeUWfy5wuBJn89DbSJDbf4+cZY1RNs+gtLF6kMinTKJ3nrmdDv
         Xui0I++EnzIblhwRn07ClDSbsODHP9kX/NlaJmZf6JcDDK9FWR2XBMxO3TMysQGlomjE
         0YjAN6qkJRFK/OZehnqC+ao0CHMPFowcLL5q6d/StUH9YQX/6lSmT+ilDYsuleAINpld
         Cm2rFoLH4EZesLuEAvGOcDLJn/1/CvI/d9CZ6o3jaWid66WkCDrF1Xf43qLwVSJCWgcP
         r3XJ5tfGg4Ic/Eeo0Iz/tDqIqo/w3I3mzzpvCAIZeH0ZRkKTj5qXddj4W8qPmGJYkvxS
         rlcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720093358; x=1720698158;
        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=HzfFhpY9wpDm0aoDe9W7snDRqUECUqFzPYV35L92RvU=;
        b=GBRNP8IaYF0FShZ6UlgFBPjWJrz05YGJIMiIPr514QNFDUsXcvVZJZOG7BYauhJbKM
         kKDYtn/1W6zVYYDENnoKSJaO7JIBwBtkKF3WnLuEpq9djkB228HuYMH9y+cAuEnNM+Hr
         dAnqY7ESaw1ZUXZYvumljcSq+mP2i3tb5e9zFdt8+DWjUd/+Y/sfkBAcXA3b6ER/agJ2
         i/N5E5BtgOmrIPlmG2ZBD6EJ0Uj9iYZISLoiNmlxcsMCxHrVaToA/oQD+7LZ2sCYXiLx
         FcAkg1b1R+m9S4PWtImWLqEZnzvm/rRISTs7xkFII0s0Cyf2Cs+IUm+yCvsQDJv216wA
         bxZQ==
X-Forwarded-Encrypted: i=1; AJvYcCVdxn6OsZLXHhnvixBUG/DTL2bkiuQShuBj3a/1QEMQ2iVvsRdlIpldvNED1uClFSVOo4j4VIJrFTVELLZ6IavVTplaPK5fPtPcErhcG08=
X-Gm-Message-State: AOJu0Yw9gFu4r55doaLoMo9ukVd8g5j+m3gnPxZwEApy2SbMTi80yFfY
	OozABbJ/Ce2t9kDKdPDEWr1o/SAM7dK/hCXJZ9OlYb/FA3XkB0clrx+drJudD7ONBWknNiGGf1H
	zk+Q133oGx1QXFk4dDlWkowmCtrQ=
X-Google-Smtp-Source: AGHT+IHasBEGIlgvaru77AmnEamynOyBIUI9Gcvx3G8Hln78yqQw9r5HACJZLDYiclHUBv3xStP7OftQm8aV8lp5t9E=
X-Received: by 2002:a05:6402:34c2:b0:58d:e458:1310 with SMTP id
 4fb4d7f45d1cf-58e5acd87ccmr827965a12.13.1720093357631; Thu, 04 Jul 2024
 04:42:37 -0700 (PDT)
MIME-Version: 1.0
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com>
 <20240701224421.1432654-2-edgar.iglesias@gmail.com> <87ikxlo3lx.fsf@draig.linaro.org>
In-Reply-To: <87ikxlo3lx.fsf@draig.linaro.org>
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Date: Thu, 4 Jul 2024 14:42:25 +0300
Message-ID: <CAJy5ezpD6i3Fc9K-i58=V0e1uxrB-VZ2sd+gtoOc4TnbkWHSZQ@mail.gmail.com>
Subject: Re: [PATCH v1 1/2] physmem: Bail out qemu_ram_block_from_host() for
 invalid ram addrs
To: =?UTF-8?B?QWxleCBCZW5uw6ll?= <alex.bennee@linaro.org>
Cc: qemu-devel@nongnu.org, sstabellini@kernel.org, anthony@xenproject.org, 
	paul@xen.org, edgar.iglesias@amd.com, xen-devel@lists.xenproject.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Peter Xu <peterx@redhat.com>, 
	David Hildenbrand <david@redhat.com>, =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= <philmd@linaro.org>
Content-Type: multipart/alternative; boundary="0000000000008fef90061c6a7180"

--0000000000008fef90061c6a7180
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 4, 2024 at 1:26=E2=80=AFPM Alex Benn=C3=A9e <alex.bennee@linaro=
.org> wrote:

> "Edgar E. Iglesias" <edgar.iglesias@gmail.com> writes:
>
> > From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> >
> > Bail out in qemu_ram_block_from_host() when
> > xen_ram_addr_from_mapcache() does not find an existing
> > mapping.
> >
> > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> > ---
> >  system/physmem.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/system/physmem.c b/system/physmem.c
> > index 33d09f7571..59d1576c2b 100644
> > --- a/system/physmem.c
> > +++ b/system/physmem.c
> > @@ -2277,6 +2277,10 @@ RAMBlock *qemu_ram_block_from_host(void *ptr,
> bool round_offset,
> >          ram_addr_t ram_addr;
> >          RCU_READ_LOCK_GUARD();
> >          ram_addr =3D xen_ram_addr_from_mapcache(ptr);
> > +        if (ram_addr =3D=3D RAM_ADDR_INVALID) {
> > +            return NULL;
> > +        }
> > +
>
> Isn't this indicative of a failure? Should there at least be a trace
> point for failed mappings?
>
>
Yes but there are already trace points for the failure cases inside
xen_ram_addr_from_mapcache().
Do those address your concerns or do you think we need additional trace
points?

Cheers,
Edgar


> >          block =3D qemu_get_ram_block(ram_addr);
> >          if (block) {
> >              *offset =3D ram_addr - block->offset;
>
> --
> Alex Benn=C3=A9e
> Virtualisation Tech Lead @ Linaro
>

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

<div dir=3D"ltr"><div dir=3D"ltr">On Thu, Jul 4, 2024 at 1:26=E2=80=AFPM Al=
ex Benn=C3=A9e &lt;<a href=3D"mailto:alex.bennee@linaro.org">alex.bennee@li=
naro.org</a>&gt; wrote:<br></div><div class=3D"gmail_quote"><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex">&quot;Edgar E. Iglesias&quot; &lt;<a hre=
f=3D"mailto:edgar.iglesias@gmail.com" target=3D"_blank">edgar.iglesias@gmai=
l.com</a>&gt; writes:<br>
<br>
&gt; From: &quot;Edgar E. Iglesias&quot; &lt;<a href=3D"mailto:edgar.iglesi=
as@amd.com" target=3D"_blank">edgar.iglesias@amd.com</a>&gt;<br>
&gt;<br>
&gt; Bail out in qemu_ram_block_from_host() when<br>
&gt; xen_ram_addr_from_mapcache() does not find an existing<br>
&gt; mapping.<br>
&gt;<br>
&gt; Signed-off-by: Edgar E. Iglesias &lt;<a href=3D"mailto:edgar.iglesias@=
amd.com" target=3D"_blank">edgar.iglesias@amd.com</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 system/physmem.c | 4 ++++<br>
&gt;=C2=A0 1 file changed, 4 insertions(+)<br>
&gt;<br>
&gt; diff --git a/system/physmem.c b/system/physmem.c<br>
&gt; index 33d09f7571..59d1576c2b 100644<br>
&gt; --- a/system/physmem.c<br>
&gt; +++ b/system/physmem.c<br>
&gt; @@ -2277,6 +2277,10 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, b=
ool round_offset,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ram_addr_t ram_addr;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 RCU_READ_LOCK_GUARD();<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ram_addr =3D xen_ram_addr_from_mapca=
che(ptr);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (ram_addr =3D=3D RAM_ADDR_INVALID) {<b=
r>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return NULL;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt; +<br>
<br>
Isn&#39;t this indicative of a failure? Should there at least be a trace<br=
>
point for failed mappings?<br>
<br></blockquote><div><br></div><div>Yes but there are already trace points=
 for the failure cases inside xen_ram_addr_from_mapcache().</div><div>Do th=
ose address your concerns or do you think we need additional trace points?<=
/div><div><br></div><div>Cheers,</div><div>Edgar</div><div>=C2=A0</div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left=
:1px solid rgb(204,204,204);padding-left:1ex">
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 block =3D qemu_get_ram_block(ram_add=
r);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (block) {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 *offset =3D ram_addr -=
 block-&gt;offset;<br>
<br>
-- <br>
Alex Benn=C3=A9e<br>
Virtualisation Tech Lead @ Linaro<br>
</blockquote></div></div>

--0000000000008fef90061c6a7180--


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 11:46:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 11:46:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753738.1161943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPKug-0001GA-7t; Thu, 04 Jul 2024 11:46:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753738.1161943; Thu, 04 Jul 2024 11:46:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPKug-0001G3-3v; Thu, 04 Jul 2024 11:46:10 +0000
Received: by outflank-mailman (input) for mailman id 753738;
 Thu, 04 Jul 2024 11:46:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EPo+=OE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sPKue-0001Fu-K3
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 11:46:08 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ffa78cd6-39fa-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 13:46:06 +0200 (CEST)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-52e97e5a84bso745028e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 04:46:06 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72ab08cf7csm592555366b.155.2024.07.04.04.46.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Jul 2024 04:46: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: ffa78cd6-39fa-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720093566; x=1720698366; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=ycLgS7NlynHELHJt6cPJK/WunF/Q/Fyf49pSd1USCzE=;
        b=O0auDqdDvuskqShK7+mx3NNME8NhKHxt7zDGBq5MikDwOae7ggVynFmkwj3HfMuV6a
         D0+HNPYhnovTuAj/VicPYqrJm3WRXJoXs2Vsq0LhGtl3v3R2oFlMc6Tt3VXp5+BC37c4
         2K3iFHMfmzgv3zuMH6lhL6OA7cyxXtrhq1v5oEZ2o9BpAUvs54g7ZrPgF3zpkV1+bVUs
         0ZWV8QAxUKVVAAFVCoM46h7GqZPajP8Xu1/8t0zcYfq7klMmR5Ppeb9xb0VvKMkVMNIj
         d46mkCPPuMmCfQqojAo79/EPlRqpTJ/xRTdjjUZ2r7GsXkJqRzz1px6a0JoU3ENu7ptV
         giFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720093566; x=1720698366;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ycLgS7NlynHELHJt6cPJK/WunF/Q/Fyf49pSd1USCzE=;
        b=tUyapJiqCLsW9sEq1l4N6V5cqBywK4FbZhnxGnKMSug9QcwbzZxG1KbVso8JG4GOVV
         Mj4RJM8hHl0IN1PJoyctNylnc8AtIyNvQIDR2ABH5ZVVLv4df5D2AH9mLllbygGT/hRf
         tc/HoexSrkIcgyos4bYeqOdlH93huurXzzdz73eAk00vFU4SSAFSnQukWSCK78eQAUGQ
         6ntOOS5pszvr4it7U0mqvCURKrrCWsZz4sHrbXluc1/bGt0DW7hobCO7y5bpcq7FYCf5
         2TDAFr8atbbddRD4aEe0DZ845r96W8AeKv/TR1X7i+TNxrORRsXOyVkv96tY0Bqf4bsU
         f9Qg==
X-Forwarded-Encrypted: i=1; AJvYcCWerozxghC5FedZini/vfNJP2hi5lE3XiVTIu1VIDFJbW9Npz6YomYUcoBZ1Qfx6Bsh7Vk7N6Y2rehBEXIKZVD2Wf1p3fPAAhYzXzY5iII=
X-Gm-Message-State: AOJu0YxVCCsea4VpfklNSHxFnT4HnLdN/UGw3GeY+pDxdLmBifM3L+qK
	o1xuBAcqhYT/GI/c+VdQNw4WLvF9BqCnpdsm2br1W0UcJTBhGNfe
X-Google-Smtp-Source: AGHT+IH5S4NR1PbUyXZGAJgd5it52SracPMtFOjllkbfJsO2iDz9+uo+eZyBZJiQ17gE4pYdM9fQmg==
X-Received: by 2002:a19:8c04:0:b0:52c:9ae0:beed with SMTP id 2adb3069b0e04-52ea06a5995mr1151177e87.52.1720093565722;
        Thu, 04 Jul 2024 04:46:05 -0700 (PDT)
Message-ID: <7dce3f2175bed81ddc3ffb373e7c001422c7e5ce.camel@gmail.com>
Subject: Re: [PATCH for-4.19 4/4] CI: Rework the CentOS7 container
From: Oleksii <oleksii.kurochko@gmail.com>
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>, Doug Goldstein <cardoe@cardoe.com>, Roger Pau
 =?ISO-8859-1?Q?Monn=E9?=
	 <roger.pau@citrix.com>
Date: Thu, 04 Jul 2024 13:46:04 +0200
In-Reply-To: <20240703142002.1662874-5-andrew.cooper3@citrix.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
	 <20240703142002.1662874-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

T24gV2VkLCAyMDI0LTA3LTAzIGF0IDE1OjIwICswMTAwLCBBbmRyZXcgQ29vcGVyIHdyb3RlOgo+
IENlbnRPUyA3IGlzIGZ1bGx5IEVuZC1vZi1saWZlIGFzIG9mIDIwMjQtMDYtMzAsIGFuZCB0aGUg
WXVtIHJlcG8KPiBjb25maWd1cmF0aW9uCj4gcG9pbnRzIGF0IFVSTHMgd2hpY2ggaGF2ZSBiZWNv
bWUgbm9uLWV4aXN0ZW50Lgo+IAo+IEZpcnN0LCBzdGFydCBieSB1c2luZyBhIGhlcmVkb2MgUlVO
IGZvciBsZWdpYmlsaXR5LsKgIEl0J3MgaW1wb3J0YW50Cj4gdG8gdXNlCj4gYHNldCAtZWAgdG8g
b2Zmc2V0IHRoZSBmYWN0IHRoYXQgd2UncmUgbm8gbG9uZ2VyIGNoYWluaW5nIGV2ZXJ5Cj4gY29t
bWFuZAo+IHRvZ2V0aGVyIHdpdGggYW4gJiYuCj4gCj4gQWxzbywgYmVjYXVzZSB3ZSdyZSB1c2lu
ZyBhIHNpbmdsZSBSVU4gY29tbWFuZCB0byBwZXJmb3JtIGFsbCBSUE0KPiBvcGVyYXRpb25zLAo+
IHdlIG5vIGxvbmdlciBuZWVkIHRvIHdvcmsgYXJvdW5kIHRoZSBPdmVybGF5RlMgYnVnLgo+IAo+
IEFkanVzdCB0aGUgQ2VudE9TLSoucmVwbyBmaWxlcyB0byBwb2ludCBhdCB2YXVsdC5jZW50b3Mu
b3JnLgo+IAo+IFRha2UgdGhlIG9wcG9ydHVuaXR5IHRvIHNwbGl0IHRoZSBYZW4gZGVwcyBmcm9t
IFRvb2xzIGRlcHMsIGFuZCB0bwo+IGFkanVzdCB0aGUKPiBvdGhlciBwYWNrYWdlcyB3ZSB1c2U6
Cj4gCj4gwqAqIFdlIG5lZWQgYnppcDItZGV2ZWwgZm9yIHRoZSBkb21idWlsZGVyLCBub3QganVz
dCBiemlwMi4KPiDCoCogenN0ZC1kZXZlbCBpcyBhbm90aGVyIG9wdGlvbmFsIGRlcGVuZGVuY3kg
c2luY2UgdGhlIGxhc3QgdGltZSB0aGlzCj4gcGFja2FnZQo+IMKgwqAgbGlzdCB3YXMgcmVmcmVz
aGVkLgo+IMKgKiBvcGVuc3NsLWRldmVsIGhhc24ndCBiZWVuIGEgZGVwZW5kZW5jeSBzaW5jZSBY
ZW4gNC42Lgo+IMKgKiBXZSBsb25nIGFnbyBjZWFzZWQgYmVpbmcgYWJsZSB0byBidWlsZCBRZW11
IGFuZCBTZWFCSU9TIGluIHRoaXMKPiBjb250YWluZXIsCj4gwqDCoCBzbyBkcm9wIHRoZWlyIGRl
cGVuZGVuY2llcyB0b28uCj4gCj4gU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT4KPiAtLS0KPiBDQzogQW50aG9ueSBQRVJBUkQgPGFudGhvbnku
cGVyYXJkQHZhdGVzLnRlY2g+Cj4gQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlA
a2VybmVsLm9yZz4KPiBDQzogRG91ZyBHb2xkc3RlaW4gPGNhcmRvZUBjYXJkb2UuY29tPgo+IEND
OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KPiBDQzogT2xla3NpaSBL
dXJvY2hrbyA8b2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20+ClJlbGVhc2UtQWNrZWQtYnk6IE9s
ZWtzaWkgS3Vyb2Noa28gPG9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29tPgoKfiBPbGVrc2lpCgo+
IC0tLQo+IMKgYXV0b21hdGlvbi9idWlsZC9jZW50b3MvNy5kb2NrZXJmaWxlIHwgNzAgKysrKysr
KysrKysrKysrLS0tLS0tLS0tLS0KPiAtLQo+IMKgMSBmaWxlIGNoYW5nZWQsIDM3IGluc2VydGlv
bnMoKyksIDMzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9hdXRvbWF0aW9uL2J1aWxk
L2NlbnRvcy83LmRvY2tlcmZpbGUKPiBiL2F1dG9tYXRpb24vYnVpbGQvY2VudG9zLzcuZG9ja2Vy
ZmlsZQo+IGluZGV4IDY1NzU1MGYzMDhiYi4uOWU2NmQ3MmE1YmQ1IDEwMDY0NAo+IC0tLSBhL2F1
dG9tYXRpb24vYnVpbGQvY2VudG9zLzcuZG9ja2VyZmlsZQo+ICsrKyBiL2F1dG9tYXRpb24vYnVp
bGQvY2VudG9zLzcuZG9ja2VyZmlsZQo+IEBAIC02LDQ0ICs2LDQ4IEBAIExBQkVMIG1haW50YWlu
ZXIubmFtZT0iVGhlIFhlbiBQcm9qZWN0IiBcCj4gwqBSVU4gbWtkaXIgL2J1aWxkCj4gwqBXT1JL
RElSIC9idWlsZAo+IMKgCj4gLSMgd29yayBhcm91bmQgaHR0cHM6Ly9naXRodWIuY29tL21vYnkv
bW9ieS9pc3N1ZXMvMTAxODAKPiAtIyBhbmQgYWRkIEVQRUwgZm9yIGRldjg2Cj4gLVJVTiBycG0g
LS1yZWJ1aWxkZGIgJiYgXAo+IC3CoMKgwqAgeXVtIC15IGluc3RhbGwgXAo+IC3CoMKgwqDCoMKg
wqDCoCB5dW0tcGx1Z2luLW92bCBcCj4gLcKgwqDCoMKgwqDCoMKgIGVwZWwtcmVsZWFzZSBcCj4g
LcKgwqDCoCAmJiB5dW0gY2xlYW4gYWxsICYmIFwKPiAtwqDCoMKgIHJtIC1yZiAvdmFyL2NhY2hl
L3l1bQo+ICtSVU4gPDxFT0YKPiArwqDCoMKgIHNldCAtZQo+ICsKPiArwqDCoMKgICMgRml4IHVw
IFl1bSBjb25maWcgbm93IHRoYXQgbWlycm9yLmNlbnRvcy5vcmcgZG9lc24ndCBleGlzdAo+ICvC
oMKgwqAgc2VkIC1lICdzL21pcnJvci5jZW50b3Mub3JnL3ZhdWx0LmNlbnRvcy5vcmcvZycgXAo+
ICvCoMKgwqDCoMKgwqDCoCAtZSAncy9eIy4qYmFzZXVybD1odHRwc1w/L2Jhc2V1cmw9aHR0cHMv
ZycgXAo+ICvCoMKgwqDCoMKgwqDCoCAtZSAncy9ebWlycm9ybGlzdD1odHRwc1w/LyNtaXJyb3Js
aXN0PWh0dHBzL2cnIFwKPiArwqDCoMKgwqDCoMKgwqAgLWkgL2V0Yy95dW0ucmVwb3MuZC8qLnJl
cG8KPiArCj4gK8KgwqDCoCAjIEFkZCB0aGUgRVBFTCByZXBvIHRvIGdldCBkZXY4Ngo+ICvCoMKg
wqAgeXVtIC15IGluc3RhbGwgZXBlbC1yZWxlYXNlCj4gKwo+ICvCoMKgwqAgeXVtIC15IHVwZGF0
ZQo+IMKgCj4gLSMgaW5zdGFsbCBYZW4gZGVwZW5kcwo+IC1SVU4geXVtIC15IHVwZGF0ZSBcCj4g
LcKgwqDCoCAmJiB5dW0gLXkgaW5zdGFsbCBcCj4gK8KgwqDCoCAjIFhlbiBkZXBzCj4gK8KgwqDC
oCB5dW0gLXkgaW5zdGFsbCBcCj4gK8KgwqDCoMKgwqDCoMKgIGJpc29uIFwKPiArwqDCoMKgwqDC
oMKgwqAgYmludXRpbHMgXAo+ICvCoMKgwqDCoMKgwqDCoCBjaGVja3BvbGljeSBcCj4gK8KgwqDC
oMKgwqDCoMKgIGZsZXggXAo+IMKgwqDCoMKgwqDCoMKgwqAgZ2NjIFwKPiArwqDCoMKgwqDCoMKg
wqAgbWFrZSBcCj4gKwo+ICvCoMKgwqAgIyBUb29scy9zdHViZG9tL2RvY3MgZGVwcwo+ICvCoMKg
wqAgeXVtIC15IGluc3RhbGwgXAo+ICvCoMKgwqDCoMKgwqDCoCBhY3BpY2EtdG9vbHMgXAo+ICvC
oMKgwqDCoMKgwqDCoCBiemlwMi1kZXZlbCBcCj4gK8KgwqDCoMKgwqDCoMKgIGRldjg2IFwKPiDC
oMKgwqDCoMKgwqDCoMKgIGdjYy1jKysgXAo+IC3CoMKgwqDCoMKgwqDCoCBuY3Vyc2VzLWRldmVs
IFwKPiAtwqDCoMKgwqDCoMKgwqAgemxpYi1kZXZlbCBcCj4gLcKgwqDCoMKgwqDCoMKgIG9wZW5z
c2wtZGV2ZWwgXAo+IC3CoMKgwqDCoMKgwqDCoCBweXRob24tZGV2ZWwgXAo+ICvCoMKgwqDCoMKg
wqDCoCBnaXQgXAo+IMKgwqDCoMKgwqDCoMKgwqAgbGlidXVpZC1kZXZlbCBcCj4gK8KgwqDCoMKg
wqDCoMKgIG5jdXJzZXMtZGV2ZWwgXAo+ICvCoMKgwqDCoMKgwqDCoCBwYXRjaCBcCj4gwqDCoMKg
wqDCoMKgwqDCoCBwa2djb25maWcgXAo+IC3CoMKgwqDCoMKgwqDCoCBmbGV4IFwKPiAtwqDCoMKg
wqDCoMKgwqAgYmlzb24gXAo+IC3CoMKgwqDCoMKgwqDCoCBsaWJhaW8tZGV2ZWwgXAo+IC3CoMKg
wqDCoMKgwqDCoCBnbGliMi1kZXZlbCBcCj4gLcKgwqDCoMKgwqDCoMKgIHlhamwtZGV2ZWwgXAo+
IC3CoMKgwqDCoMKgwqDCoCBwaXhtYW4tZGV2ZWwgXAo+IC3CoMKgwqDCoMKgwqDCoCBnbGliYy1k
ZXZlbCBcCj4gLcKgwqDCoMKgwqDCoMKgIG1ha2UgXAo+IC3CoMKgwqDCoMKgwqDCoCBiaW51dGls
cyBcCj4gLcKgwqDCoMKgwqDCoMKgIGdpdCBcCj4gLcKgwqDCoMKgwqDCoMKgIHdnZXQgXAo+IC3C
oMKgwqDCoMKgwqDCoCBhY3BpY2EtdG9vbHMgXAo+ICvCoMKgwqDCoMKgwqDCoCBweXRob24tZGV2
ZWwgXAo+IMKgwqDCoMKgwqDCoMKgwqAgcHl0aG9uLW1hcmtkb3duIFwKPiAtwqDCoMKgwqDCoMKg
wqAgcGF0Y2ggXAo+IC3CoMKgwqDCoMKgwqDCoCBjaGVja3BvbGljeSBcCj4gLcKgwqDCoMKgwqDC
oMKgIGRldjg2IFwKPiArwqDCoMKgwqDCoMKgwqAgd2dldCBcCj4gwqDCoMKgwqDCoMKgwqDCoCB4
ei1kZXZlbCBcCj4gLcKgwqDCoMKgwqDCoMKgIGJ6aXAyIFwKPiAtwqDCoMKgwqDCoMKgwqAgbmFz
bSBcCj4gLcKgwqDCoCAmJiB5dW0gY2xlYW4gYWxsICYmIFwKPiArwqDCoMKgwqDCoMKgwqAgeWFq
bC1kZXZlbCBcCj4gK8KgwqDCoMKgwqDCoMKgIHpsaWItZGV2ZWwgXAo+ICvCoMKgwqDCoMKgwqDC
oCB6c3RkLWRldmVsIFwKPiArCj4gK8KgwqDCoCB5dW0gY2xlYW4gYWxsCj4gwqDCoMKgwqAgcm0g
LXJmIC92YXIvY2FjaGUveXVtCj4gK0VPRgoK



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 12:33:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 12:33:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753799.1162081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPLeC-00044V-Az; Thu, 04 Jul 2024 12:33:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753799.1162081; Thu, 04 Jul 2024 12: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 1sPLeC-00044O-7o; Thu, 04 Jul 2024 12:33:12 +0000
Received: by outflank-mailman (input) for mailman id 753799;
 Thu, 04 Jul 2024 12:33:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=puvF=OE=linaro.org=alex.bennee@srs-se1.protection.inumbo.net>)
 id 1sPLeA-00044E-Op
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 12:33: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 91a9d354-3a01-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 14:33:08 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a725041ad74so22389666b.3
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 05:33:08 -0700 (PDT)
Received: from draig.lan ([85.9.250.243]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58d50c4dad9sm1817894a12.10.2024.07.04.05.33.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Jul 2024 05:33:06 -0700 (PDT)
Received: from draig (localhost [IPv6:::1])
 by draig.lan (Postfix) with ESMTP id 9AD645F839;
 Thu,  4 Jul 2024 13:33:05 +0100 (BST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 91a9d354-3a01-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1720096388; x=1720701188; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:references
         :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=f19Bs9ZT0OpY9y4aYpk3+UQ7z4NKFudecNznbxwtnC0=;
        b=ZN/lW55Vw7dkemLJoF8Iyq2gsL7VlJiwWOWmaRpUksBNuKOLtUoAd7YTYOaWIzdRPZ
         uQfi3eZ7zC4s3jnaCnviAmqDjcaUt6HQx0/s93Q7mLd+LlVj33p8L11ZXkI3xYACK5YI
         19TPlftwiuJFPq6by8haxkmtMia5hiQ8/IkgyAVCwWqzRHpfm2fhdGOgVAGVMAdeCf4A
         KldPpRVwhXnEw5AAdyMXgoRWFaVwiPUGSOjUUrHokLrrzgGuOJrdWFrWSJxV/II1ugfv
         a5Ia8ZZr/63aCzhwqz48Myi5klkN1JPLv76+92h3f1ggWd19sbKyYRSqXdHHj4OubY10
         I7EA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720096388; x=1720701188;
        h=content-transfer-encoding:mime-version:message-id:date:references
         :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=f19Bs9ZT0OpY9y4aYpk3+UQ7z4NKFudecNznbxwtnC0=;
        b=ZPodZfV6mNlPXBzlvS/lvVRlJB/DwxDgX1+DRkfmCAoo8fGtbBpLb3uEwtjQQG/IMC
         E/j2tuSBy6N0mLcAOVEVE8t4iD3FUj3PsU6Co+L56qpOdwpWcYjwPzSSVwTjaEZoY+b/
         5hFfIT8C7fnEQ7EhJ7J+mDHZAsQu/BaDoBQhS8abQuMbV7YVBXUgRbo1JPrn0Usb2EPx
         us3OtFWwpABWofG9TaJ7Vn5EFQobO7/AeixKlnXBPt32RwW0zq70kBP6S4N5Q4A6FzFz
         39G2rE2jg3Q43d162/qsy1uScwdMVwE0BKMNspH28PLluqxUcIh5xjZTm+gkP/uBgg4J
         0s9g==
X-Forwarded-Encrypted: i=1; AJvYcCUFhchBaeZRlcYP9/ia6kVB7ycc2AQY2yojprDfuJPhiCliHoRx2l5MQKAfHW08Fsx6XFJ0ODgEC+rnEOS8UIIupOG1bEEJLXMUb+GERyU=
X-Gm-Message-State: AOJu0YzMqn33/cy1EECk2IneRZT3u9ABhYEdYorydMwzGmLOMkaLXj9q
	x3mwSmEFqoSsBjQMe5vxzQXtDdLkRdyRqfjSPpn3ryUSmyLsAj89UmVAP1SnrrI=
X-Google-Smtp-Source: AGHT+IHJ3ZLpuxYytL1DyxnCP+DvoaUgRS13CTvCqP8SY1N58Wkfb2LrCUmoL6UbQ+1/8ezcXP5vYQ==
X-Received: by 2002:a05:6402:22f0:b0:58c:8c63:22ee with SMTP id 4fb4d7f45d1cf-58e5be72411mr1004212a12.42.1720096387662;
        Thu, 04 Jul 2024 05:33:07 -0700 (PDT)
From: =?utf-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: qemu-devel@nongnu.org,  sstabellini@kernel.org,  anthony@xenproject.org,
  paul@xen.org,  edgar.iglesias@amd.com,  xen-devel@lists.xenproject.org,
  Paolo Bonzini <pbonzini@redhat.com>,  Peter Xu <peterx@redhat.com>,
  David Hildenbrand <david@redhat.com>,  Philippe =?utf-8?Q?Mathieu-Daud?=
 =?utf-8?Q?=C3=A9?=
 <philmd@linaro.org>
Subject: Re: [PATCH v1 1/2] physmem: Bail out qemu_ram_block_from_host() for
 invalid ram addrs
In-Reply-To: <CAJy5ezpD6i3Fc9K-i58=V0e1uxrB-VZ2sd+gtoOc4TnbkWHSZQ@mail.gmail.com>
	(Edgar E. Iglesias's message of "Thu, 4 Jul 2024 14:42:25 +0300")
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com>
	<20240701224421.1432654-2-edgar.iglesias@gmail.com>
	<87ikxlo3lx.fsf@draig.linaro.org>
	<CAJy5ezpD6i3Fc9K-i58=V0e1uxrB-VZ2sd+gtoOc4TnbkWHSZQ@mail.gmail.com>
Date: Thu, 04 Jul 2024 13:33:05 +0100
Message-ID: <875xtlnxq6.fsf@draig.linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

"Edgar E. Iglesias" <edgar.iglesias@gmail.com> writes:

> On Thu, Jul 4, 2024 at 1:26=E2=80=AFPM Alex Benn=C3=A9e <alex.bennee@lina=
ro.org> wrote:
>
>  "Edgar E. Iglesias" <edgar.iglesias@gmail.com> writes:
>
>  > From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
>  >
>  > Bail out in qemu_ram_block_from_host() when
>  > xen_ram_addr_from_mapcache() does not find an existing
>  > mapping.
>  >
>  > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
>  > ---
>  >  system/physmem.c | 4 ++++
>  >  1 file changed, 4 insertions(+)
>  >
>  > diff --git a/system/physmem.c b/system/physmem.c
>  > index 33d09f7571..59d1576c2b 100644
>  > --- a/system/physmem.c
>  > +++ b/system/physmem.c
>  > @@ -2277,6 +2277,10 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, b=
ool round_offset,
>  >          ram_addr_t ram_addr;
>  >          RCU_READ_LOCK_GUARD();
>  >          ram_addr =3D xen_ram_addr_from_mapcache(ptr);
>  > +        if (ram_addr =3D=3D RAM_ADDR_INVALID) {
>  > +            return NULL;
>  > +        }
>  > +
>
>  Isn't this indicative of a failure? Should there at least be a trace
>  point for failed mappings?
>
> Yes but there are already trace points for the failure cases inside xen_r=
am_addr_from_mapcache().
> Do those address your concerns or do you think we need additional
> trace points?

Ahh that will do.

I am curious for the reasons why we might not have an entry in the
mapcache. I guess the trace_xen_map_cache() covers all insertions into
the cache although you need to check trace_xen_map_cache_return() to see
if anything failed.

Anyway:

Reviewed-by: Alex Benn=C3=A9e <alex.bennee@linaro.org>

--=20
Alex Benn=C3=A9e
Virtualisation Tech Lead @ Linaro


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 12:36:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 12:36:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753804.1162091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPLgq-0004hp-OA; Thu, 04 Jul 2024 12:35:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753804.1162091; Thu, 04 Jul 2024 12:35:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPLgq-0004hi-KK; Thu, 04 Jul 2024 12:35:56 +0000
Received: by outflank-mailman (input) for mailman id 753804;
 Thu, 04 Jul 2024 12:35:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPLgp-0004hV-GN; Thu, 04 Jul 2024 12:35:55 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPLgp-00024p-DQ; Thu, 04 Jul 2024 12:35:55 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPLgp-0005RS-0T; Thu, 04 Jul 2024 12:35:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPLgo-0005Ve-WE; Thu, 04 Jul 2024 12:35:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=7ax6cRe10kBGXqo/ZoRjoj/ymN93fvICg9gAlXhI/ko=; b=KN2i+BdpxUGc3YWhG4E/GTUBrH
	sBazCxkEczdjVFQmwqaC6ihYE0SlrzM6lN26suXxqrJLYZBOq4R1J5I/oPpPJHmmWr1uNTAku6pq3
	nENt0rRIJGcNMEsvclDFxrdPaJ+rWuBtuG02whI8PHnS5CZ6QYce+l3vYwd8KvOzVA0Y=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186652-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186652: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=592725d2291b9844cfd9187111e904c6383e2000
X-Osstest-Versions-That:
    ovmf=ed07a2bb11b358fdece44a760fc193d56f22cfb2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 12:35:54 +0000

flight 186652 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186652/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 592725d2291b9844cfd9187111e904c6383e2000
baseline version:
 ovmf                 ed07a2bb11b358fdece44a760fc193d56f22cfb2

Last test of basis   186640  2024-07-03 12:44:49 Z    0 days
Testing same since   186652  2024-07-04 08:13:09 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Joey Vagedes <joey.vagedes@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   ed07a2bb11..592725d229  592725d2291b9844cfd9187111e904c6383e2000 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 12:48:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 12:48:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753816.1162100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPLsY-0007DT-Oj; Thu, 04 Jul 2024 12:48:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753816.1162100; Thu, 04 Jul 2024 12: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 1sPLsY-0007DM-M6; Thu, 04 Jul 2024 12:48:02 +0000
Received: by outflank-mailman (input) for mailman id 753816;
 Thu, 04 Jul 2024 12:48: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=V0d6=OE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sPLsX-0007Bs-Hp
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 12:48:01 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a47e67a5-3a03-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 14:47:59 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2ebe40673d8so7057941fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 05:47: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
 d9443c01a7336-1fac1596728sm121860785ad.256.2024.07.04.05.47.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Jul 2024 05:47: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: a47e67a5-3a03-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720097278; x=1720702078; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9dEQaZiYtNk0ubS+AwZLZmSSSs6O6DyhdQE8fyruKF4=;
        b=XVz4CCDHbVF/9GBpU/KBkX/XCQZqpQFJoToBGBqQxth+kfE8F3U33v5ilkZ7Oy4AVY
         ugByfvk4JT1pNND2rj/FxBnwCuhf1fr1r1Dv1R9svpP2a7J1l5HghAAS8fJM+PXEVyKX
         liufVwGZIWp3d7fUgiqwDmbiOeYJiVEYSX7AhVIEDQdsKgA05zEAXBT2D+wEy8Jq0Z0d
         My026JDTr2VrlUbuQp3AL3fx3bkKmi4fyuIJN0axLluUraK8WZlcKrqfEoXYiahSKGJ/
         kYH0GfdKdBlLjQ0eX6i+z3rvcTXV905e5jhPl3bgp4nPb9XEVBhNGzQy1kosWAQyl3pp
         vVtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720097278; x=1720702078;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9dEQaZiYtNk0ubS+AwZLZmSSSs6O6DyhdQE8fyruKF4=;
        b=AR0COZw2Yp950MiKnQgwOblDl+E8p23eefWDLK+C0ywUVB5XvUvGnIv+5AMk2+2nSk
         oj535R8JIr4K6bOM9tzAPPltf2d7jrHZR6y/JCer5y/pMUh5trrtlL3H7jGjVL9gmIHv
         bS0UU3p0TVtnmFcPHHIYGqK7vJZJLDBrygXfzmmgwcXOCLA+mdn7ShQTGtzxq3GZi0Lp
         qwIr3aGny++u72T1VAwgCMncUIZbCRZbNCMdH7zdzzenpamLH7VgH53Jt+XLGVXP/K4k
         buFo1icCcGSyudF6tSltkjfDdkLkDeI3YGNuKkBTbN1EX63L1rHV0soNQgJLjcYODD3H
         4JBQ==
X-Forwarded-Encrypted: i=1; AJvYcCU5HAbE3LoKoDHEr+PCzyoGfyIvnNGhbiHBJ4/ItEDgOI+lnXdOEyINNbJ0GwAuRrKz+Vf+I6fdzoGh1xUFQRWORCl1l438hyPwRRm6vfU=
X-Gm-Message-State: AOJu0YwBzth/RljFDe6XyKPGWW+CzgPCw704o1khm/YawB675YnH/Rjx
	BhWaoNLla5mK1lTDTbs4CoFCG/513oE7aeOhapWs7UrYcjX3YvKluFKXohDvQw==
X-Google-Smtp-Source: AGHT+IGDA9WDWCoRnD5fdp3D9l5yVw88+GiCjvhH9hiErwE7+uxgh2hIeR3lwVsnAeMlrccbNcivHQ==
X-Received: by 2002:a05:651c:2226:b0:2ec:5061:d7d2 with SMTP id 38308e7fff4ca-2ee8ed5ee10mr13724611fa.18.1720097277486;
        Thu, 04 Jul 2024 05:47:57 -0700 (PDT)
Message-ID: <9dc7f974-de7b-408a-915c-ee0724eaebcd@suse.com>
Date: Thu, 4 Jul 2024 14:47:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v11 4/8] x86/physdev: Return pirq that irq was already
 mapped to
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <Ray.Huang@amd.com>, xen-devel@lists.xenproject.org
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-5-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: <20240630123344.20623-5-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.06.2024 14:33, Jiqian Chen wrote:
> allocate_pirq is to allocate a pirq for a irq, and it supports to
> allocate a free pirq(pirq parameter is <0) or a specific pirq (pirq
> parameter is > 0).
> 
> For current code, it has four usecases.
> 
> First, pirq>0 and current_pirq>0, (current_pirq means if irq already
> has a mapped pirq), if pirq==current_pirq means the irq already has
> mapped to the pirq expected by the caller, it successes, if
> pirq!=current_pirq means the pirq expected by the caller has been
> mapped into other irq, it fails.
> 
> Second, pirq>0 and current_pirq<0, it means pirq expected by the
> caller has not been allocated to any irqs, so it can be allocated to
> caller, it successes.
> 
> Third, pirq<0 and current_pirq<0, it means caller want to allocate a
> free pirq for irq and irq has no mapped pirq, it successes.
> 
> Fourth, pirq<0 and current_pirq>0, it means caller want to allocate
> a free pirq for irq but irq has a mapped pirq, then it returns the
> negative pirq, so it fails.
> 
> The problem is in Fourth, since the irq has a mapped pirq(current_pirq),
> and the caller doesn't want to allocate a specified pirq to the irq, so
> the current_pirq should be returned directly in this case, indicating
> that the allocation is successful. That can help caller to success when
> caller just want to allocate a free pirq but doesn't know if the irq
> already has a mapped pirq or not.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

I think the change is correct, and actually fixes a regression. You want

Fixes: 0762e2502f1f ("x86/physdev: factor out the code to allocate and map a pirq")

which would also have helped reviewing quite a bit. And it likely would
also have helped you write a description which is easier to follow.
Enumerating all the cases isn't really needed here; what is needed is
an explanation of what went wrong in that re-factoring.

> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -2897,6 +2897,8 @@ static int allocate_pirq(struct domain *d, int index, int pirq, int irq,
>                      d->domain_id, index, pirq, current_pirq);
>              if ( current_pirq < 0 )
>                  return -EBUSY;
> +            else
> +                return current_pirq;

Please can this be simply

            pirq = current_pirq;

without any "else", and then taking the normal return path. That again is
(imo) closer to what was there before.

I would further suggest that you split this fix out of this series and
re-submit soon with a for-4.19 tag and with Oleksii Cc-ed, so that this
can be considered for inclusion in 4.19.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 13:33:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 13:33:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753826.1162110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPMaN-0007U3-Us; Thu, 04 Jul 2024 13:33:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753826.1162110; Thu, 04 Jul 2024 13:33: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 1sPMaN-0007Tw-SH; Thu, 04 Jul 2024 13:33:19 +0000
Received: by outflank-mailman (input) for mailman id 753826;
 Thu, 04 Jul 2024 13:33: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=V0d6=OE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sPMaM-0007Tj-5v
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 13:33:18 +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 f784b5a7-3a09-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 15:33:15 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ee794ec046so6897741fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 06:33: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
 d9443c01a7336-1fb1eb121b0sm28774955ad.253.2024.07.04.06.33.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Jul 2024 06:33: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: f784b5a7-3a09-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720099995; x=1720704795; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KkT7W1sHe6ybpqjBROrJ+KxnIUBZQGM5oguo2XXQQAE=;
        b=TssKD3+0hZbwm+ii0j2vghOMl1M2r4yDSse0qoYwiZpc3KnHshh/OWPP2TikUeX5i3
         QdNnGkIefFNXLAEvjcxyrCGE2FJ565rQ7j601MuoCY2WhmrnYgljvPkOnWysOQ2iU9fz
         rpSzt/AJaMDV+wb+UuSeYn0GgxZFQoyiqLwHCcrgoseiCb5j+8QF0MWl9/ovIGaIQt7U
         rPdvmTUBmxskPK/ZFxALB8I36Q7LBFJCzRMlwfB/XfIkpJOdMyNo4b9XAEjrjwqWH8yC
         /pk4Res7L1FV3lsHMqWl3+vESa2dDXDfhF/3ZNONCaqFzdjq26S6tlpwe/ppJXouwKna
         QE0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720099995; x=1720704795;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KkT7W1sHe6ybpqjBROrJ+KxnIUBZQGM5oguo2XXQQAE=;
        b=jnNOK//x2305B9ixEfwm/SBmmUGEyH+UKAYazq5btoQBG+pvHwVDLK0YsCw8bGU/sg
         W8w0S3hNI/F8wQgGA2MPmxw73rNKxERSC+UXDsbMqBmBXlFfSQaByUrqogv1N/ZjsSjL
         RPjaXp59I78wiq+bzkEUniXADRO7oqnuvPZUlHHFKKhcLO5vJXvpjYCMZvWBSbYNRtlM
         z5/f43nDmzx2vvpcXF4ZG+sgqZ+dqjVV47uWY+jy3FBo0C60Pr2y4JnRAhAO6I8p7jSi
         Cui/eJsRqIadKmPQcflvF1+VRgU7m8SwNPaEkpxtFNGj9CBVQ35cK5bo77SkSRyXv3TY
         RRXg==
X-Forwarded-Encrypted: i=1; AJvYcCW2F4NoZEbXu9yK7RTJVHb92IWnVA7Ips9KiW81mWnlCRqFLGR+zp8kXifNFdrcYH0ECqU/kMwhxhyJcCjdTuJDopMCGpQq8D36ABSnkCI=
X-Gm-Message-State: AOJu0Yz8RLHPWdi+V+WqoPP0b7u+z4r68V7kR3SobPR/dgmldcxWZjRk
	YQzGPT2sFbbm3Sfx3D6yqf1R7tevyEyafKzGtiTrE9ZeN3N3/ZngwBk2XEpISg==
X-Google-Smtp-Source: AGHT+IEz5Z6ObJcfJMB7YkPh+/nGVIJxBiwW7Tra+wNVJMB98UF721eThyAoGRqTRAs9EI2sNkKenw==
X-Received: by 2002:a05:651c:2120:b0:2ee:4b17:dab9 with SMTP id 38308e7fff4ca-2ee8ed62e47mr10950021fa.4.1720099994876;
        Thu, 04 Jul 2024 06:33:14 -0700 (PDT)
Message-ID: <a02cea93-b04b-484c-b3e0-dd5f6823196e@suse.com>
Date: Thu, 4 Jul 2024 15:33:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v11 5/8] x86/domctl: Add XEN_DOMCTL_gsi_permission to
 grant gsi
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <Ray.Huang@amd.com>, xen-devel@lists.xenproject.org
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-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: <20240630123344.20623-6-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.06.2024 14:33, Jiqian Chen wrote:
> @@ -237,6 +238,38 @@ long arch_do_domctl(
>          break;
>      }
>  
> +    case XEN_DOMCTL_gsi_permission:
> +    {
> +        int irq;
> +        uint8_t mask = 1;
> +        unsigned int gsi = domctl->u.gsi_permission.gsi;
> +        bool allow = domctl->u.gsi_permission.allow_access;
> +
> +        /* Check all bits and pads are zero except lowest bit */
> +        ret = -EINVAL;
> +        if ( domctl->u.gsi_permission.allow_access & ( !mask ) )
> +            goto gsi_permission_out;

I'm pretty sure that if you had, as would have been expected, added a
#define to the public header for just the low bit you assign meaning to,
you wouldn't have caused yourself problems here. For one, the
initializer for "allow" will be easy to miss if meaning is assigned to
another of the bits. It sadly _still_ takes the full 8 bits and
converts those to a boolean. And then the check here won't work either.
I don't see what use the local variable "mask" is, but at the very
least I expect in place of ! you mean ~ really.

> +        for ( i = 0; i < ARRAY_SIZE(domctl->u.gsi_permission.pad); ++i )
> +            if ( domctl->u.gsi_permission.pad[i] )
> +                goto gsi_permission_out;
> +
> +        if ( gsi >= nr_irqs_gsi || ( irq = gsi_2_irq(gsi) ) < 0 )

nr_irqs_gsi is the upper bound on IRQs representing a GSI; as said before,
GSIs and IRQs are different number spaces, and hence you can't compare
gsi against nr_irqs_gsi. The (inclusive) upper bound on (valid) GSIs is
mp_ioapic_routing[nr_ioapics - 1].gsi_end, or the return value of
highest_gsi().

Also, style nit: Blanks belong immediately inside parentheses only for the
outer pair of control statements; no inner expressions should have them this
way.

Finally I'd like to ask that you use "<= 0", as we do in various places
elsewhere. IRQ0 is the timer interrupt; we never want to have that used by
any entity outside of Xen itself.

> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -464,6 +464,12 @@ struct xen_domctl_irq_permission {
>      uint8_t pad[3];
>  };
>  
> +/* XEN_DOMCTL_gsi_permission */
> +struct xen_domctl_gsi_permission {
> +    uint32_t gsi;
> +    uint8_t allow_access;    /* flag to specify enable/disable of x86 gsi access */

See above. It's not the field that serves as a flag for the purpose you
state, but just the low bit. You want to rename the field (flags?) and
#define a suitable constant.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 14:23:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 14:23:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753844.1162121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPNNC-0006gm-CJ; Thu, 04 Jul 2024 14:23:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753844.1162121; Thu, 04 Jul 2024 14:23: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 1sPNNC-0006gf-9N; Thu, 04 Jul 2024 14:23:46 +0000
Received: by outflank-mailman (input) for mailman id 753844;
 Thu, 04 Jul 2024 14:23: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=OMPH=OE=bounce.vates.tech=bounce-md_30504962.6686b06d.v1-69c81d6661b648e2ba70a77e14f739b9@srs-se1.protection.inumbo.net>)
 id 1sPNNB-0006gZ-FL
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 14:23:45 +0000
Received: from mail186-1.suw21.mandrillapp.com
 (mail186-1.suw21.mandrillapp.com [198.2.186.1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 03af0b9b-3a11-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 16:23:43 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-1.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4WFJmF458TzBsTtc2
 for <xen-devel@lists.xenproject.org>; Thu,  4 Jul 2024 14:23:41 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 69c81d6661b648e2ba70a77e14f739b9; Thu, 04 Jul 2024 14:23: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: 03af0b9b-3a11-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720103021; x=1720363521;
	bh=Y8SexkBRBt7YwEfELRilHLlo5h8DYOLSv0Svo/E0N60=;
	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=KygdiHlOYa3v+a6qwoVGZDP96JHS0jnjtCuygaTUX9Gxu7RvMRO8F9yLbTl+M9hil
	 fTeIWWo/fz2Ow1kqw/FF6oFbK6hXn0RfFW8MZ5nCTQfLQtV+7bsjz8rS+PZMrYizF/
	 PGr9y5MRitoxApjhfCgFUoBoVBCv3PqrjKD6kCScASXfHDe9SUB5qaj25SB3guxRUV
	 kWkWPHZudNLAVkG4FP2wWf4fU8HCoFuQnpd3k3XGjAeFwJPczxP0knqFHqBkHXPdq1
	 I4dvdhbRxli4U91zBG9v4ik/dCyGYgp8+73FAHXKGlmrKwBuaWv9Qr+PgNiBoc1YpO
	 Lux/n3ruTtFtA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720103021; x=1720363521; i=anthony.perard@vates.tech;
	bh=Y8SexkBRBt7YwEfELRilHLlo5h8DYOLSv0Svo/E0N60=;
	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=GczBzefL/OH+ljVSeZt928hgYLlZIjylT2YalqBsYQEKcCCgrOzbh2HAi4aT1vR9N
	 5upkmX/65T1MSi1tuOcTqZ3ENumFiDd4gUdfzXvNscm8L4mdZyWC8jrx7Ip1W/y0yY
	 0xiqniT5eao2HhecBg0mypoxtKg3Rdh357o9sjAcOrU+BWQWNmCmUWyT/8ATBNgi1o
	 g/rAj4NGgNlhOkS6eppMNqreK7YRzEeMc4gL9qcvDm2/IXLvlQU/v3mhzrWWyFhZai
	 v4yD8ff2axqMt90/6fKN8fGg3HtwsHhIuheDBP0DyhW/2+xKYhZW1EIQ7WpZGnHh/c
	 C0OlyrfPVIoMA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v1=202/2]=20xen:=20mapcache:=20Fix=20unmapping=20of=20first=20entries=20in=20buckets?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720103020458
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: qemu-devel@nongnu.org, sstabellini@kernel.org, paul@xen.org, edgar.iglesias@amd.com, xen-devel@lists.xenproject.org
Message-Id: <ZoawbAnukIBkYWCw@l14>
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com> <20240701224421.1432654-3-edgar.iglesias@gmail.com>
In-Reply-To: <20240701224421.1432654-3-edgar.iglesias@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.69c81d6661b648e2ba70a77e14f739b9?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240704:md
Date: Thu, 04 Jul 2024 14:23:41 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Tue, Jul 02, 2024 at 12:44:21AM +0200, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> This fixes the clobbering of the entry->next pointer when
> unmapping the first entry in a bucket of a mapcache.
> 
> Fixes: 123acd816d ("xen: mapcache: Unmap first entries in buckets")
> Reported-by: Anthony PERARD <anthony.perard@vates.tech>
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> ---
>  hw/xen/xen-mapcache.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> index 5f23b0adbe..18ba7b1d8f 100644
> --- a/hw/xen/xen-mapcache.c
> +++ b/hw/xen/xen-mapcache.c
> @@ -597,7 +597,17 @@ static void xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
>          pentry->next = entry->next;
>          g_free(entry);
>      } else {
> -        memset(entry, 0, sizeof *entry);
> +        /*
> +         * Invalidate mapping but keep entry->next pointing to the rest
> +         * of the list.
> +         *
> +         * Note that lock is already zero here, otherwise we don't unmap.
> +         */
> +        entry->paddr_index = 0;
> +        entry->vaddr_base = NULL;
> +        entry->valid_mapping = NULL;
> +        entry->flags = 0;
> +        entry->size = 0;

This kind of feels like mc->entry should be an array of pointer rather
than an array of MapCacheEntry but that seems to work well enough and
not the first time entries are been cleared like that.

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 Jul 04 14:55:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 14:55:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753862.1162131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPNs4-0002Qe-SW; Thu, 04 Jul 2024 14:55:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753862.1162131; Thu, 04 Jul 2024 14:55: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 1sPNs4-0002QX-Oa; Thu, 04 Jul 2024 14:55:40 +0000
Received: by outflank-mailman (input) for mailman id 753862;
 Thu, 04 Jul 2024 14:55:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPNs3-0002QN-Hu; Thu, 04 Jul 2024 14:55:39 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPNs3-0004Uj-FF; Thu, 04 Jul 2024 14:55:39 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPNs3-0001jy-1H; Thu, 04 Jul 2024 14:55:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPNs2-0001qv-Uz; Thu, 04 Jul 2024 14:55:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4Whd/cIuZwec4eBpQ/eRbLLsd8/JGlwmfdX4wegiW3Y=; b=U/tBd6lA32hEqpbFgIdw5yjsMB
	qGbqL2i8VQM+xOgi/NAkvMhxdh8yLgGnh9hskEh5Zj2HKmybp4Jf7IT4DhobJemS99sfz4Lk340vc
	3Ojqac3M+NYTiYpF/DPlr12RpyjGkaHuqyo/75dZQmXBH+mukworYu0eBOnDHrnSPHWE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186656-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186656: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=6b9307192bf590b3136e690a07196d4255051fdc
X-Osstest-Versions-That:
    ovmf=592725d2291b9844cfd9187111e904c6383e2000
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 14:55:38 +0000

flight 186656 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186656/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 6b9307192bf590b3136e690a07196d4255051fdc
baseline version:
 ovmf                 592725d2291b9844cfd9187111e904c6383e2000

Last test of basis   186652  2024-07-04 08:13:09 Z    0 days
Testing same since   186656  2024-07-04 12:41:11 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Joey Vagedes <Joey.Vagedes@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   592725d229..6b9307192b  6b9307192bf590b3136e690a07196d4255051fdc -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 14:56:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 14:56:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753870.1162140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPNt9-0002vk-4H; Thu, 04 Jul 2024 14:56:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753870.1162140; Thu, 04 Jul 2024 14:56: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 1sPNt9-0002vd-1a; Thu, 04 Jul 2024 14:56:47 +0000
Received: by outflank-mailman (input) for mailman id 753870;
 Thu, 04 Jul 2024 14:56: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=V0d6=OE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sPNt7-0002uB-Tv
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 14:56:45 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a0ca475a-3a15-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 16:56:43 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52e9b9fb3dcso783603e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 07:56: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
 d2e1a72fcca58-70b0238331csm1253803b3a.170.2024.07.04.07.56.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Jul 2024 07:56: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: a0ca475a-3a15-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720105003; x=1720709803; 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=IprdpCOjKePeAHKeym3dolTDmwOmylzxtDVEpyghEYE=;
        b=dZ984znaaxrP9LPCUiDsrD5XepUkegvu0vzKHW0d01w1xnbrOjGzf15zs4ChHSKPLY
         oHoXb8nggr+m7x5TDhVPIKzwichSB6kJFyS0R421HosoK74osqFfaWyZrehaAIVdZDWz
         N4pRIwbwP9vH1wOPUPfr4osxwTcECZK9pQ2B81EF7SfoRbuS/6hrth2W836aaDEN0eMz
         sxnMYBnnSPrcF3T1LNjRaChXZA6gKmWJuwFyHCEqHKpYlhfL6J5GR/bF/Mg4l0bDEw2+
         4UUJ7JSt2j7MxoXGclsYLoK6DfVX4wOzBfwq6XiMsOJ00j/OlSVLf3BMgd/f8vzc/Wxh
         RM6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720105003; x=1720709803;
        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=IprdpCOjKePeAHKeym3dolTDmwOmylzxtDVEpyghEYE=;
        b=juXBUZkiY5l5B4mFlG04wL8KOrWwXqnVZh94JOkjETmQ1+xc6nUdZB1BGGtZq9IkhV
         yOyKM0T7wsT5ItZRSdScKj7M0MH/jltYdPzW8gWBZfBdpdaHzxCzCAYUO18FUU0LYlG5
         G86TuuJeynhJE+8GbCS41jjPMNFS3YyqdsLEVc9uUqf0s5oFFoRfh02tW8jNDdq/SrtY
         q9TL3F8GYNqBlutCya3cNm0M6Tc6Qf6DS09HEdttV/imk7asyH9/LrcEnk8fNq8gMtCq
         sEV1CAtsrD84ew4qxE3t5a76NKwB1k2wzPApSlOGuSPAn+mOBhQDjMjE7sBd9FkRoJ/K
         9FIg==
X-Gm-Message-State: AOJu0YyqjRICSGJwGdBFCbLZuGlMx92eMg+O8yVo5n+/KFE6FsTv3n6L
	25lDJCDNtmaIZLA4TwjSmazRibqK0vnKQP5pKJ6ZYJnqIW3zKm3dCQ38wsiieN38ExKDYp9wteE
	=
X-Google-Smtp-Source: AGHT+IHI8Z+/W5zx6wMRbkJ3YeXjjMMM/Q1JOVdPxRFeTJfVYQiXid0/zzsD0zqWGqrumAINYHMjjg==
X-Received: by 2002:ac2:484d:0:b0:52c:dbe7:cfd5 with SMTP id 2adb3069b0e04-52ea063e47cmr1226560e87.32.1720105003221;
        Thu, 04 Jul 2024 07:56:43 -0700 (PDT)
Message-ID: <52133dfd-9e05-40d2-9a9c-dba361ec4c25@suse.com>
Date: Thu, 4 Jul 2024 16:56: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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH for-4.{17,18}] evtchn: build fix for Arm
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

When backporting daa90dfea917 ("pirq_cleanup_check() leaks") I neglected
to pay attention to it depending on 13a7b0f9f747 ("restrict concept of
pIRQ to x86"). That one doesn't want backporting imo, so use / adjust
custom #ifdef-ary to address the immediate issue of pirq_cleanup_check()
not being available on Arm.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Sending here just for completeness; I don't think I'll be waiting for
any acks or alike.

--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -643,7 +643,9 @@
     if ( rc != 0 )
     {
         info->evtchn = 0;
+#ifdef CONFIG_X86
         pirq_cleanup_check(info, d);
+#endif
         goto out;
     }
 
@@ -713,8 +715,8 @@
                  * The successful path of unmap_domain_pirq_emuirq() will have
                  * called pirq_cleanup_check() already.
                  */
-#endif
                 pirq_cleanup_check(pirq, d1);
+#endif
         }
         unlink_pirq_port(chn1, d1->vcpu[chn1->notify_vcpu_id]);
         break;


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 15:00:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 15:00:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753876.1162151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPNwh-0004ed-Jx; Thu, 04 Jul 2024 15:00:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753876.1162151; Thu, 04 Jul 2024 15:00: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 1sPNwh-0004eW-Gx; Thu, 04 Jul 2024 15:00:27 +0000
Received: by outflank-mailman (input) for mailman id 753876;
 Thu, 04 Jul 2024 15:00:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPNwg-0004eM-EW; Thu, 04 Jul 2024 15:00:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPNwg-0004cC-Cw; Thu, 04 Jul 2024 15:00:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPNwg-0002Au-2p; Thu, 04 Jul 2024 15:00:26 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPNwg-0004h3-2P; Thu, 04 Jul 2024 15:00:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ZIfrz3dLTGhQI1/9HqAGAyQHsUIP5OFYxTFLM6B8yfA=; b=ztbfG0uqSgcTOvabGguLGkJBEf
	INPMzS242dA3Q5biFwocEtQ+JRJbAPW289y5ac64Ws3/EJndw8UbSCLcm7wnAqqRkVKjnC0FGQgRX
	seluIq39HHJ1OmYpIUC7ZvCkuP83pEQYUHXuCORSDFfbH/H0NCg7whDMy29/6iNxPmMM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186653-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186653: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=56b77d7db03775b0abcfb23476f0abecb51f1de7
X-Osstest-Versions-That:
    xen=7e3701b6ce0347c8b906967e223fa846f23e71d4
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 15:00:26 +0000

flight 186653 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186653/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  56b77d7db03775b0abcfb23476f0abecb51f1de7
baseline version:
 xen                  7e3701b6ce0347c8b906967e223fa846f23e71d4

Last test of basis   186651  2024-07-04 08:00:24 Z    0 days
Testing same since   186653  2024-07-04 12:02:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   7e3701b6ce..56b77d7db0  56b77d7db03775b0abcfb23476f0abecb51f1de7 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 15:33:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 15:33:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753893.1162169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPOST-0000QY-66; Thu, 04 Jul 2024 15:33:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753893.1162169; Thu, 04 Jul 2024 15:33: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 1sPOST-0000QR-2M; Thu, 04 Jul 2024 15:33:17 +0000
Received: by outflank-mailman (input) for mailman id 753893;
 Thu, 04 Jul 2024 15:33:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPOSS-0000QF-5M; Thu, 04 Jul 2024 15:33:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPOSS-00057i-2g; Thu, 04 Jul 2024 15:33:16 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPOSR-0004Nw-Lj; Thu, 04 Jul 2024 15:33:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPOSR-0007Lz-LF; Thu, 04 Jul 2024 15:33: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=OcLOSySoYHSpcXkziKkixpWOwWox2/44lggJRLHwUYo=; b=Otqxhne4D4N0ze4zec+AhAXXvo
	4zvG8bXlSNNtV23f8hXO6Pn12jEkWyHinjck2LWbS994laCY2E8F0/CmoA3PIPmFAOZ984x3ib08x
	kvReMpX2Kbq2n8UKElfgmnLc+X7YHzoh555vdg+kA8xv4YqQv1RkM6EWByg0lZkodS+o=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186648-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186648: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=f67b12ba35e7a59c64163c41943ab37a00f052f0
X-Osstest-Versions-That:
    libvirt=738b201aad48dd0f1af8465adbda0d056213d521
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 15:33:15 +0000

flight 186648 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186648/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186637
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              f67b12ba35e7a59c64163c41943ab37a00f052f0
baseline version:
 libvirt              738b201aad48dd0f1af8465adbda0d056213d521

Last test of basis   186637  2024-07-03 04:20:27 Z    1 days
Testing same since   186648  2024-07-04 04:18:45 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adam Julis <ajulis@redhat.com>
  Andi Chandler <andi@gowling.com>
  Michal Privoznik <mprivozn@redhat.com>
  Rayhan Faizel <rayhan.faizel@gmail.com>
  Tim Wiederhake <twiederh@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   738b201aad..f67b12ba35  f67b12ba35e7a59c64163c41943ab37a00f052f0 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 15:42:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 15:42:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753903.1162179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPOas-00029J-Vv; Thu, 04 Jul 2024 15:41:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753903.1162179; Thu, 04 Jul 2024 15:41:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPOas-00029C-TC; Thu, 04 Jul 2024 15:41:58 +0000
Received: by outflank-mailman (input) for mailman id 753903;
 Thu, 04 Jul 2024 15:41:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPOar-000292-M3; Thu, 04 Jul 2024 15:41:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPOar-0005GS-Go; Thu, 04 Jul 2024 15:41:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPOar-0004ky-4l; Thu, 04 Jul 2024 15:41:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPOar-0004RW-4D; Thu, 04 Jul 2024 15:41: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=2W1QuO7mJ3+KB7qFxFDM/fkvM4KjzBfksDyXLj9mvmU=; b=XfFcQ9AMVUiQp5Cn79SlZP0X2Q
	86pe1lkYR1+++dR3TM+GP4Q9MdWnGwO/sMY1E2cDMsEc0KMlfR9buWz84+URT01w/+2e4XXp0H340
	hEe5AR+FMz8yr9NMLkBBaVhtdsS6xKj/6Ufh0aVUPcV3yT2rGCEFw+5P86yLsQF35zNw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186647-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186647: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=795c58e4c7fc6163d8fb9f2baa86cfe898fa4b19
X-Osstest-Versions-That:
    linux=9903efbddba0d14133b5a3c75088b558d2e34ac3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 15:41:57 +0000

flight 186647 linux-linus real [real]
flight 186657 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186647/
http://logs.test-lab.xenproject.org/osstest/logs/186657/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-libvirt-vhd  8 xen-boot                 fail REGR. vs. 186620

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-multivcpu  8 xen-boot           fail pass in 186657-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check fail in 186657 never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check fail in 186657 never pass
 test-armhf-armhf-xl-raw       8 xen-boot                     fail  like 186620
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186620
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186620
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                795c58e4c7fc6163d8fb9f2baa86cfe898fa4b19
baseline version:
 linux                9903efbddba0d14133b5a3c75088b558d2e34ac3

Last test of basis   186620  2024-07-01 17:14:02 Z    2 days
Failing since        186626  2024-07-02 05:45:15 Z    2 days    5 attempts
Testing same since   186647  2024-07-04 03:11:35 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alison Schofield <alison.schofield@intel.com>
  Babu Moger <babu.moger@amd.com>
  Chen Ni <nichen@iscas.ac.cn>
  Christian Brauner <brauner@kernel.org>
  Dan Williams <dan.j.williams@intel.com>
  Dave Jiang <dave.jiang@intel.com>
  David Howells <dhowells@redhat.com>
  David Sterba <dsterba@suse.com>
  Gao Xiang <hsiangkao@linux.alibaba.com>
  Hans Verkuil <hverkuil-cisco@xs4all.nl>
  Hao Ge <gehao@kylinos.cn>
  Huang Xiaojia <huangxiaojia2@huawei.com>
  Jann Horn <jannh@google.com>
  Jens Axboe <axboe@kernel.dk>
  Li Ming <ming4.li@intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Ming Lei <ming.lei@redhat.com>
  Naohiro Aota <naohiro.aota@wdc.com>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Sandeep Dhavale <dhavale@google.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Steven Rostedt (Google) <rostedt@goodmis.org>
  Wenchao Hao <haowenchao22@gmail.com>
  Xingui Yang <yangxingui@huawei.com>
  Yao Xingtao <yaoxt.fnst@fujitsu.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 718 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 16:45:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 16:45:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753922.1162188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPPZq-0001gv-74; Thu, 04 Jul 2024 16:44:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753922.1162188; Thu, 04 Jul 2024 16: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 1sPPZq-0001go-4I; Thu, 04 Jul 2024 16:44:58 +0000
Received: by outflank-mailman (input) for mailman id 753922;
 Thu, 04 Jul 2024 16:44:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=puvF=OE=linaro.org=alex.bennee@srs-se1.protection.inumbo.net>)
 id 1sPPZp-0001gi-4K
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 16:44:57 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be198506-3a24-11ef-bbfa-fd08da9f4363;
 Thu, 04 Jul 2024 18:44:55 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5854ac817afso1066046a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 09:44:55 -0700 (PDT)
Received: from draig.lan ([85.9.250.243]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77c3edb9f0sm23954366b.121.2024.07.04.09.44.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Jul 2024 09:44:53 -0700 (PDT)
Received: from draig (localhost [IPv6:::1])
 by draig.lan (Postfix) with ESMTP id DB6495F839;
 Thu,  4 Jul 2024 17:44:52 +0100 (BST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be198506-3a24-11ef-bbfa-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1720111495; x=1720716295; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:references
         :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=7e+9jaG3i6h3581y6bfnNWzVuXNbsmJ9Fdj9t0MGtE0=;
        b=ELBNPugmRSYt9J6MF6wKWSEnHotSfTlmtV7IZBc6lq+AIPgy87k9zsg13cURI/v7Yz
         K2BuL+t7kv1k8LA8ljPmnF6AtXK7UQhj/c6ohSbNbaSgZkz+AdYXDMiUdLmlq2F0mMXK
         aTO5NHsGYevkQC46M0bmD7KbgUA2CHMv7PyPOx1lUNnCk4oGPJMs/ns4tONVX2LkW9dB
         4lfM/9L2/P60n1ycngv4MBshxDAfif0e5CfmOmnRhYddBjZLSWd7WFtNeLq8VmuzmSMQ
         to73xZeoL6DjSTd5ik3iLDLQIr7u5lTI5LAbw/8qszoCHuIgdfIOBpzxz8E9zpJLCkjp
         DuAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720111495; x=1720716295;
        h=content-transfer-encoding:mime-version:message-id:date:references
         :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=7e+9jaG3i6h3581y6bfnNWzVuXNbsmJ9Fdj9t0MGtE0=;
        b=M+qrB6DhJCYAZ7qv2v2sW6hjH330OF8pnQPuszqV2AEW5VhkOGro3IRqk0//Iz5xpj
         x8Ek4h5KniqL8a1L2QoVg+T8c9kKVhGYV4zTY12mcaf/m5/ZMulz1Jgj0rtHLdGeo988
         bjXYxbunZmNe2lqj3it/tQPYFC6ZdKWIt5oZKQQh9WActsQd0qXUfXJDKvY+NCnXIqdK
         zxV4JjF2TxS8OJayowKa3J146f77dTYLB9t0diXY15ZrpL8oMBDmXqg0iSVLEn2wid8I
         9QFYhT0Vab6mdXp1rNOj5YjDXMAh15InglxxiX24y/za+XOMroQXwvOCwae9ExeeWaU2
         NE9g==
X-Forwarded-Encrypted: i=1; AJvYcCXdhML9fpoBFdK1T8USSIn5QAnA+4T074frHEApVSMXIDU9Zsk2a7+2H+rirDjkMB2JQKbKxvaVtaihIoeRdieHSxv9i6DkxS6SK3ygQxk=
X-Gm-Message-State: AOJu0YwpMOFvhKTYtRDuS/yiwXwlqIUy7dzJaSjxTPy0M+KDUzYniQyr
	YGvc5kIXfmWsK6o6XlD7OwGCX1j8jJZnt5YZcwBf3O9+cnR5zrxgJneo+oDmCUI=
X-Google-Smtp-Source: AGHT+IGTp3ymlZkKAcuX3mwvsyprJa2baN85p7ojMJg+tCz5V1oNIF9d7xmATIYbzE9cGXc8GE/tow==
X-Received: by 2002:a17:907:9620:b0:a72:4281:bc72 with SMTP id a640c23a62f3a-a77ba72781fmr186692266b.63.1720111494577;
        Thu, 04 Jul 2024 09:44:54 -0700 (PDT)
From: =?utf-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,  qemu-devel@nongnu.org,
  sstabellini@kernel.org,  paul@xen.org,  edgar.iglesias@amd.com,
  xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 2/2] xen: mapcache: Fix unmapping of first entries in
 buckets
In-Reply-To: <ZoawbAnukIBkYWCw@l14> (Anthony PERARD's message of "Thu, 04 Jul
	2024 14:23:41 +0000")
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com>
	<20240701224421.1432654-3-edgar.iglesias@gmail.com>
	<ZoawbAnukIBkYWCw@l14>
Date: Thu, 04 Jul 2024 17:44:52 +0100
Message-ID: <87wmm1m7i3.fsf@draig.linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Anthony PERARD <anthony.perard@vates.tech> writes:

> On Tue, Jul 02, 2024 at 12:44:21AM +0200, Edgar E. Iglesias wrote:
>> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
>>=20
>> This fixes the clobbering of the entry->next pointer when
>> unmapping the first entry in a bucket of a mapcache.
>>=20
>> Fixes: 123acd816d ("xen: mapcache: Unmap first entries in buckets")
>> Reported-by: Anthony PERARD <anthony.perard@vates.tech>
>> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
>> ---
>>  hw/xen/xen-mapcache.c | 12 +++++++++++-
>>  1 file changed, 11 insertions(+), 1 deletion(-)
>>=20
>> diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
>> index 5f23b0adbe..18ba7b1d8f 100644
>> --- a/hw/xen/xen-mapcache.c
>> +++ b/hw/xen/xen-mapcache.c
>> @@ -597,7 +597,17 @@ static void xen_invalidate_map_cache_entry_unlocked=
(MapCache *mc,
>>          pentry->next =3D entry->next;
>>          g_free(entry);
>>      } else {
>> -        memset(entry, 0, sizeof *entry);
>> +        /*
>> +         * Invalidate mapping but keep entry->next pointing to the rest
>> +         * of the list.
>> +         *
>> +         * Note that lock is already zero here, otherwise we don't unma=
p.
>> +         */
>> +        entry->paddr_index =3D 0;
>> +        entry->vaddr_base =3D NULL;
>> +        entry->valid_mapping =3D NULL;
>> +        entry->flags =3D 0;
>> +        entry->size =3D 0;
>
> This kind of feels like mc->entry should be an array of pointer rather
> than an array of MapCacheEntry but that seems to work well enough and
> not the first time entries are been cleared like that.

The use of a hand rolled list is a bit of a concern considering QEMU and
Glib both provide various abstractions used around the rest of the code
base. The original patch that introduces the mapcache doesn't tell me
much about access patterns for the cache, just that it is trying to
solve memory exhaustion issues with lots of dynamic small mappings.

Maybe a simpler structure is desirable?

We also have an interval tree implementation ("qemu/interval-tree.h") if
what we really want is a sorted tree of memory that can be iterated
locklessly.

--=20
Alex Benn=C3=A9e
Virtualisation Tech Lead @ Linaro


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 17:19:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 17:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753929.1162199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPQ6k-0005uk-N5; Thu, 04 Jul 2024 17:18:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753929.1162199; Thu, 04 Jul 2024 17: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 1sPQ6k-0005ud-Jq; Thu, 04 Jul 2024 17:18:58 +0000
Received: by outflank-mailman (input) for mailman id 753929;
 Thu, 04 Jul 2024 17:18:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPQ6j-0005uT-BO; Thu, 04 Jul 2024 17:18:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPQ6j-0007YC-9a; Thu, 04 Jul 2024 17:18:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPQ6i-0001Au-UJ; Thu, 04 Jul 2024 17:18:56 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPQ6i-0002O1-Ti; Thu, 04 Jul 2024 17: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=sZ0lsiNT5Z1HKCYB2t7Bab+xXAjVdiDCIlbKL80ZoqY=; b=qyBNetV67xLHzRMNlqReSgt8qk
	vnhnIMbGuJUdPa8C5t3rDJScC+Uca1rmQwvBrWf+TCe84ej4e4ofTYnvAFppu4/xZ1aX6sPBBKgqu
	4dGSnbxn8iB76LH496QDZz5l3kM5eG1t0Oc2JYN1OnNRn9NlXY0yUfCMj//xPWhHvfj8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186658-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186658: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=4e36bed8128f67fc73f41acb1beaffd77ef76e90
X-Osstest-Versions-That:
    ovmf=6b9307192bf590b3136e690a07196d4255051fdc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 17:18:56 +0000

flight 186658 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186658/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 4e36bed8128f67fc73f41acb1beaffd77ef76e90
baseline version:
 ovmf                 6b9307192bf590b3136e690a07196d4255051fdc

Last test of basis   186656  2024-07-04 12:41:11 Z    0 days
Testing same since   186658  2024-07-04 15:15:09 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Mike Maslenkin <mike.maslenkin@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   6b9307192b..4e36bed812  4e36bed8128f67fc73f41acb1beaffd77ef76e90 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 17:21:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 17:21:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753936.1162209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPQ95-0007Kf-3A; Thu, 04 Jul 2024 17:21:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753936.1162209; Thu, 04 Jul 2024 17:21:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPQ95-0007KY-0Q; Thu, 04 Jul 2024 17:21:23 +0000
Received: by outflank-mailman (input) for mailman id 753936;
 Thu, 04 Jul 2024 17: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=Hg2H=OE=gmail.com=milandjokic1995@srs-se1.protection.inumbo.net>)
 id 1sPQ93-0007KS-Lr
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 17:21:21 +0000
Received: from mail-qv1-xf2c.google.com (mail-qv1-xf2c.google.com
 [2607:f8b0:4864:20::f2c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d38ed38e-3a29-11ef-bbfa-fd08da9f4363;
 Thu, 04 Jul 2024 19:21:19 +0200 (CEST)
Received: by mail-qv1-xf2c.google.com with SMTP id
 6a1803df08f44-6b5f4c7f4fbso78416d6.2
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 10:21: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: d38ed38e-3a29-11ef-bbfa-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720113678; x=1720718478; 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=n8pyi3ezNHQWYrhC7E4E4FpI/uJSM0aiUKnTLLo0iH8=;
        b=PAveZB2Ae/WvPdPcVD4Olh1d1jO6z7TJjvv8PteAb6cbExhrnCIgjPMZp525lDM+Gf
         GlfEjzHFfKtQH3hyGvoYJ9b3KP0CeMoxnsBVMNBXYQVtf2uJMAsq4mpNd/jfKjO+GRai
         emOWK+SqdNMVqYr0SiaEwcxzVoMP0f930kS54pYgtjK0LgQL80ysxyXjq5MGTdSyaGiz
         bsnVzZV7VrqEODFdPMKOpjPp5w4JZOy+vQYW2nUZAabCnRgcTcpnlRve6O2IN8qhLWvV
         +IgO9FCnj++zKa3fDloyVgBp6epbEMK1FXHWmeP1UBxE7DdjnR778rj8Ww6ycUO8yxTT
         p4Uw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720113678; x=1720718478;
        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=n8pyi3ezNHQWYrhC7E4E4FpI/uJSM0aiUKnTLLo0iH8=;
        b=TbuAsLno/Uad8UsHhgZO5j8fRR5El/089BKK+pGFNy+T01lKhnaVoJZz6ynTAlD18q
         xhfeLpXKVyuMbO9/NFcncJIqEvKXhQ7zpzg5mHkhEfDyDJDZ+iAtEl/8rw4yhjKE/anj
         2gEPcVKLIR/vp1AzbyMK4aw0HG5g+AubzGk6vdbuDQQF8OnXgBxLTSDRLVySfAQYfLKC
         kQNRmfQc2Q07vb0uMdFuNH4iboRW8ht0iuZMzdVIS1NvoEm/kXDLJK9Nv+w5q9knH9jO
         LWHKqQQOrMVlx7ceTQj7pQHS/ec1CE8TyZvWNiebyTbWYOkFY18AkMlASBIKrWyXRipj
         b8eg==
X-Forwarded-Encrypted: i=1; AJvYcCUQL7RNdLZ7Zwswu6P2XeO2nxsYvaLjw2OtdK5TDQ9nvgUcNB3fUHMlXavPfu9SjX6IbdwIkqMhT2WQr51Ms08EtAqaSnT8kPKnVVt/A7A=
X-Gm-Message-State: AOJu0Yy2MFHGPTuuR0HZ2vRYGsX2rlfQLFpKCndYHEsGig+UQuaD4rQJ
	mPqMplSSlOlzfs9YM9CZisd4sSMF+8QUf8gNhE6lS8Cqaplhzm2fLWl/aew6+Vxq7L6qy4uy0w8
	oKulRjqSJVyVKonwYIQ+XuVL0EHk=
X-Google-Smtp-Source: AGHT+IGJ6oa3qKe97qOBZw4PMaXx4A+CFY+EH3hXI7PN5AFCgs4iKCyJKtCJs6GEXYDlTcGhlYd89DFb8wiDcvh55d0=
X-Received: by 2002:a05:6214:319d:b0:6b5:148:736a with SMTP id
 6a1803df08f44-6b5ed1c1c27mr24134146d6.57.1720113678093; Thu, 04 Jul 2024
 10:21:18 -0700 (PDT)
MIME-Version: 1.0
References: <2bbb65fcda57f2609f0967f9050a91415059026c.1719942341.git.milan.djokic@rt-rk.com>
 <21a1bbe9308b72eac6d218235f5211c7a1c90454.1719964980.git.milan.djokic@rt-rk.com>
 <0481c78f-ccad-4c65-b104-6b787b79f1d8@suse.com>
In-Reply-To: <0481c78f-ccad-4c65-b104-6b787b79f1d8@suse.com>
From: =?UTF-8?B?TWlsYW4gxJBva2nEhw==?= <milandjokic1995@gmail.com>
Date: Thu, 4 Jul 2024 19:21:07 +0200
Message-ID: <CAKp59VHkEpKMNpA18xjHp4n_XxA4Fbo121v5ApoTseyhirkM+g@mail.gmail.com>
Subject: Re: [PATCH v4] xen/riscv: PE/COFF image header for RISC-V target
To: Jan Beulich <jbeulich@suse.com>
Cc: milan.djokic@rt-rk.com, Alistair Francis <alistair.francis@wdc.com>, 
	Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, 
	Nikola Jelic <nikola.jelic@rt-rk.com>, xen-devel@lists.xenproject.org, 
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Jul 3, 2024 at 5:55=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 03.07.2024 02:04, Milan Djokic wrote:
> > Added riscv image header to enable boot from second stage bootloaders (=
e.g. uboot. Image header defined in riscv-image-header.h)
> > Additionally, RISC-V xen image is extended with PE/COFF headers, introd=
ucing EFI application format.
> > PE/COFF header is optionally included (with CONFIG_RISCV_EFI) so
> > both plain ELF and image with PE/COFF header can now be generated as bu=
ild artifacts.
> > Note that this patch represents initial EFI application format support =
(image
> > contains EFI application header embeded into binary when CONFIG_RISCV_E=
FI
> > is enabled). For full EFI application Xen support, boot/runtime service=
s
> > and system table handling are yet to be implemented.
>
> So, first: Please Cc all applicable maintainers. It would probably be pru=
dent
> to also Cc Oleksii, who's doing most of the RISC-V work now (but Oleksii,
> please correct me if you don't want to be Cc-ed).
>
Sure, we'll make sure to keep Oleksii in CC

> With Oleksii in the audience, second: I tink I've seen that in binutils w=
ork
> is being done to actually allow to create EFI applications "properly" for
> RISC-V. Was it firmly determined that you/we do not want to go that route=
?
>
We'll wait for Oleksii opinion on this one. I assume that there's no
reason to send updated versions
of our patch until it's cleared out if this feature is needed upstream.

> > --- a/xen/arch/riscv/Kconfig
> > +++ b/xen/arch/riscv/Kconfig
> > @@ -9,6 +9,16 @@ config ARCH_DEFCONFIG
> >       string
> >       default "arch/riscv/configs/tiny64_defconfig"
> >
> > +config RISCV_EFI
> > +     bool "UEFI boot service support"
> > +     depends on RISCV_64 && RISCV_ISA_C
> > +     help
> > +       This option provides support for boot services through
> > +       UEFI firmware. A UEFI stub is provided to allow Xen to
> > +       be booted as an EFI application. Currently, only EFI PE/COFF ap=
plication
> > +       header is included into RISC-V image. Boot/Runtime services as =
part
> > +       of EFI application stub are yet to be implemented.
>
> The first sentence in particular worries me. What it says is basically al=
l
> taken back by what follows. I think this help text wants reducing to a
> minimum, andthen wants replacing once proper EFI support is in place.
>
I agree, we'll rephrase this description to only short description of
what's included so far

> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/riscv-image-header.h
> > @@ -0,0 +1,57 @@
> > +#ifndef _ASM_RISCV_IMAGE_H
> > +#define _ASM_RISCV_IMAGE_H
> > +
> > +#define RISCV_IMAGE_MAGIC  "RISCV\0\0\0"
> > +#define RISCV_IMAGE_MAGIC2 "RSC\x05"
> > +
> > +#define RISCV_IMAGE_FLAG_BE_SHIFT 0
> > +
> > +#define RISCV_IMAGE_FLAG_LE 0
> > +#define RISCV_IMAGE_FLAG_BE 1
> > +
> > +#define __HEAD_FLAG_BE RISCV_IMAGE_FLAG_LE
> > +
> > +#define __HEAD_FLAG(field)                                            =
         \
> > +    (__HEAD_FLAG_##field << RISCV_IMAGE_FLAG_##field##_SHIFT)
>
> Nit: Generally we treat ## as a binary operator, too. Which means it also
> wants to be surrounded by blanks.
>
> > +#define __HEAD_FLAGS (__HEAD_FLAG(BE))
>
> Nit: The outer pair of parentheses isn't needed here, is it?
>
> > +#define RISCV_HEADER_VERSION_MAJOR 0
> > +#define RISCV_HEADER_VERSION_MINOR 2
> > +
> > +#define RISCV_HEADER_VERSION                                          =
         \
> > +    (RISCV_HEADER_VERSION_MAJOR << 16 | RISCV_HEADER_VERSION_MINOR)
>
> Nit: Please parenthesize the << against the |.
>
We'll fix formatting for this section

> > --- /dev/null
> > +++ b/xen/arch/riscv/riscv64/efi-header.S
> > @@ -0,0 +1,99 @@
> > +#include <efi/pe.h>
> > +#include <xen/sizes.h>
> > +
> > +        .macro __EFI_PE_HEADER
> > +        .long PE_MAGIC
> > +coff_header:
> > +#ifdef CONFIG_RISCV_64
> > +        .short  IMAGE_FILE_MACHINE_RISCV64              /* Machine */
> > +#else
> > +        .short  IMAGE_FILE_MACHINE_RISCV32              /* Machine */
> > +#endif
> > +        .short  section_count                           /* NumberOfSec=
tions */
> > +        .long   0                                       /* TimeDateSta=
mp */
> > +        .long   0                                       /* PointerToSy=
mbolTable */
> > +        .long   0                                       /* NumberOfSym=
bols */
> > +        .short  section_table - optional_header         /* SizeOfOptio=
nalHeader */
> > +        .short  IMAGE_FILE_DEBUG_STRIPPED | \
> > +                IMAGE_FILE_EXECUTABLE_IMAGE | \
> > +                IMAGE_FILE_LINE_NUMS_STRIPPED           /* Characteris=
tics */
> > +
> > +optional_header:
> > +#ifdef CONFIG_RISCV_64
> > +        .short  PE_OPT_MAGIC_PE32PLUS                   /* PE32+ forma=
t */
> > +#else
> > +        .short  PE_OPT_MAGIC_PE32                       /* PE32 format=
 */
> > +#endif
> > +        .byte   0x02                                    /* MajorLinker=
Version */
> > +        .byte   0x14                                    /* MinorLinker=
Version */
> > +        .long   _end - xen_start                        /* SizeOfCode =
*/
> > +        .long   0                                       /* SizeOfIniti=
alizedData */
> > +        .long   0                                       /* SizeOfUnini=
tializedData */
> > +        .long   0                                       /* AddressOfEn=
tryPoint */
> > +        .long   xen_start - _start                      /* BaseOfCode =
*/
> > +#ifdef CONFIG_RISCV_32
> > +        .long  _end - _start                            /* BaseOfData =
*/
> > +#endif
>
> As requested before, the decision to represent all of .text/.data/.bss
> as code (with no data at all) wants explaining in a (possibly brief)
> comment.
>
We're not using .data and .bss for risc-v, since all "data" is part of
the PE header and embedded directly into section.text.header. Of
course, if at some point the program is updated with actual non-PE
header data, initialized/uninitialized data size members should be
updated. We'll clarify this part in code.

> > +extra_header_fields:
> > +        .quad   0                                       /* ImageBase *=
/
> > +        .long   PECOFF_SECTION_ALIGNMENT                /* SectionAlig=
nment */
> > +        .long   PECOFF_FILE_ALIGNMENT                   /* FileAlignme=
nt */
> > +        .short  0                                       /* MajorOperat=
ingSystemVersion */
> > +        .short  0                                       /* MinorOperat=
ingSystemVersion */
> > +        .short  LINUX_EFISTUB_MAJOR_VERSION             /* MajorImageV=
ersion */
> > +        .short  LINUX_EFISTUB_MINOR_VERSION             /* MinorImageV=
ersion */
> > +        .short  0                                       /* MajorSubsys=
temVersion */
> > +        .short  0                                       /* MinorSubsys=
temVersion */
> > +        .long   0                                       /* Win32Versio=
nValue */
> > +        .long   _end - _start                           /* SizeOfImage=
 */
> > +
> > +        /* Everything before the xen image is considered part of the h=
eader */
> > +        .long   xen_start - _start                      /* SizeOfHeade=
rs */
> > +        .long   0                                       /* CheckSum */
> > +        .short  IMAGE_SUBSYSTEM_EFI_APPLICATION         /* Subsystem *=
/
> > +        .short  0                                       /* DllCharacte=
ristics */
> > +        .quad   0                                       /* SizeOfStack=
Reserve */
> > +        .quad   0                                       /* SizeOfStack=
Commit */
> > +        .quad   0                                       /* SizeOfHeapR=
eserve */
> > +        .quad   0                                       /* SizeOfHeapC=
ommit */
> > +        .long   0                                       /* LoaderFlags=
 */
> > +        .long   (section_table - .) / 8                 /* NumberOfRva=
AndSizes */
> > +        /*
> > +         * Data directories are not used in this case, therefore not d=
efined to reduce header size.
> > +         */
> > +
> > +        /* Section table */
> > +section_table:
> > +        /* Currently code/data sections are not used since EFI stub im=
plementation is not yet finalized */
> > +        .ascii  ".text\0\0\0"
> > +        .long   0                                       /* VirtualSize=
 */
> > +        .long   0                                       /* VirtualAddr=
ess */
> > +        .long   0                                       /* SizeOfRawDa=
ta */
> > +        .long   0                                       /* PointerToRa=
wData */
> > +        .long   0                                       /* PointerToRe=
locations */
> > +        .long   0                                       /* PointerToLi=
neNumbers */
> > +        .short  0                                       /* NumberOfRel=
ocations */
> > +        .short  0                                       /* NumberOfLin=
eNumbers */
> > +        .long   IMAGE_SCN_CNT_CODE | \
> > +                IMAGE_SCN_MEM_READ | \
> > +                IMAGE_SCN_MEM_EXECUTE                   /* Characteris=
tics */
> > +
> > +        .ascii  ".data\0\0\0"
> > +        .long   0                                       /* VirtualSize=
 */
> > +        .long   0                                       /* VirtualAddr=
ess */
> > +        .long   0                                       /* SizeOfRawDa=
ta */
> > +        .long   0                                       /* PointerToRa=
wData */
> > +        .long   0                                       /* PointerToRe=
locations */
> > +        .long   0                                       /* PointerToLi=
neNumbers */
> > +        .short  0                                       /* NumberOfRel=
ocations */
> > +        .short  0                                       /* NumberOfLin=
eNumbers */
> > +        .long   IMAGE_SCN_CNT_INITIALIZED_DATA | \
> > +                IMAGE_SCN_MEM_READ | \
> > +                IMAGE_SCN_MEM_WRITE                    /* Characterist=
ics */
> > +
> > +        .set    section_count, (. - section_table) / 40
> > +
> > +        .balign  0x1000
> > +efi_header_end:
> > +        .endm
> > \ No newline at end of file
>
> Please take care of this.
>
> > --- a/xen/arch/riscv/riscv64/head.S
> > +++ b/xen/arch/riscv/riscv64/head.S
> > @@ -1,14 +1,54 @@
> >  #include <asm/asm.h>
> >  #include <asm/riscv_encoding.h>
> > +#include <asm/riscv-image-header.h>
> > +#ifdef CONFIG_RISCV_EFI
> > +#include "efi-header.S"
> > +#endif
> >
> >          .section .text.header, "ax", %progbits
> > -
> >          /*
>
> I see no reason for removing this blank line.
>
> >           * OpenSBI pass to start():
> >           *   a0 -> hart_id ( bootcpu_id )
> > -         *   a1 -> dtb_base
> > +         *   a1 -> dtb_base
> >           */
> >  FUNC(start)
> > +/* Image header expected by second stage bootloaders (format defined i=
n asm/riscv-image-header.h) */
>
> Nit: Overlong line (and not the only one).
>
We'll fix formatting for these parts

> > +#ifdef CONFIG_RISCV_EFI
> > +        /*
> > +         * This instruction decodes to "MZ" ASCII required by UEFI.
> > +         */
> > +        c.li s4,-13
> > +        c.j xen_start
> > +#else
> > +        /* jump to start kernel */
> > +        jal xen_start
>
> JAL, not J? Why?
>
We use jal explicitly here to highlight that we want to occupy 32 bits
in order to align with header format (and EFI case where we use two
16-bits instructions). Although it will also work by using "j"
directly, it could be implicitly compressed to 16 bits (if C extension
is available) which would make header layout less obvious imo.

> > +#endif
> > +        .balign 8
>
> This won't do what you want unless "start" itself is also suitably aligne=
d.
> It'll be as long as it's first in the section, but better make such expli=
cit.
>
I understand, we'll also explicitly align "start"

> > +#ifdef CONFIG_RISCV_64
> > +        /* Image load offset(2MB) from start of RAM */
> > +        .quad 0x200000
> > +#else
> > +        /* Image load offset(4MB) from start of RAM */
> > +        .quad 0x400000
> > +#endif
>
> What these constants derive from? I expect they aren't really "magic" .
>
These offsets are commonly used for RISCV SOCs. In general, these can
have different values, depending on memory layout, but in order to be
compatible with
linux bootloaders we just followed the common practice.

> > +        .quad _end - _start              /* Effective Image size */
> > +        .quad __HEAD_FLAGS
> > +        .long RISCV_HEADER_VERSION
>
> In the C struct this is a 64-bit field. Why .long here? Or perhaps the C
> struct is wrong, actually also leaving unspecified padding there after
> ...
>
> > +        .long 0                          /* reserved */
>
> ... this field then.
>
> > +        .quad 0                          /* reserved */
> > +        .ascii RISCV_IMAGE_MAGIC         /* Magic number (RISC-V speci=
fic; deprecated) */
> > +        .balign 4
>
> RISCV_IMAGE_MAGIC is already nul-padded to 8 bytes. I therefore find
> the .balign here somewhat confusing.
>
Yes, regarding RISCV_HEADER_VERSION, the C struct field has the wrong
type (should be uint_32 instead of uint_64). We'll fix this one. We'll
also remove explicit .balign, since it's not needed.


> > +        .ascii RISCV_IMAGE_MAGIC2        /* Magic number 2 (to match t=
he ARM64 'magic' field pos) */
> > +#ifdef CONFIG_RISCV_EFI
> > +        .long pe_head_start - _start     /* reserved (PE COFF offset) =
*/
> > +pe_head_start:
> > +
> > +        __EFI_PE_HEADER
>
> Using a macro for a single, simple purpose is somewhat unexpected.
> Can't you simply
>
> #include "efi-header.S"
>
> here? That would also make it more straightforward to find the use /
> purpose of that file.
>
Leftover from the previous version when we had everything embedded in
head.S. We'll remove the macro and use explicit include here.

> > +#else
> > +        .long 0                          /* 0 means no PE header. */
> > +#endif
> > +
> > +xen_start:
> >          /* Mask all interrupts */
> >          csrw    CSR_SIE, zero
> >
> > @@ -60,6 +100,7 @@ FUNC(start)
> >          mv      a1, s1
> >
> >          tail    start_xen
> > +
> >  END(start)
> >
> >          .section .text, "ax", %progbits
>
> What is this hunk about?
>
Not sure which part of the code you refer to here. This section is
part of the original riscv implementation. We only grouped this
section under the new, xen_start label since we have different
handling for EFI and ELF formats  in the beginning of "start" function
before jumping to xen_start.

> > --- a/xen/arch/riscv/xen.lds.S
> > +++ b/xen/arch/riscv/xen.lds.S
> > @@ -12,6 +12,9 @@ PHDRS
> >  #endif
> >  }
> >
> > +PECOFF_SECTION_ALIGNMENT =3D 0x1000;
> > +PECOFF_FILE_ALIGNMENT =3D 0x200;
>
> What are these about? I see you use them in efi-header.S, but why do
> they need supplying from the linker script?
>
Actually there is no specific reason to supply these constants from
linker scripts, we can embed those as macros directly in code.

> > --- /dev/null
> > +++ b/xen/include/efi/pe.h
> > @@ -0,0 +1,458 @@
> > +#ifndef __PE_H
>
> This probably wants (needs?) to gain an SPDX line.
>
Yes, it was originally taken over from the linux kernel (with some
modifications from our side), but we omitted the SPDX line by mistake.

> > +#define __PE_H
> > +
> > +/*
> > + * Linux EFI stub v1.0 adds the following functionality:
> > + * - Loading initrd from the LINUX_EFI_INITRD_MEDIA_GUID device path,
> > + * - Loading/starting the kernel from firmware that targets a differen=
t
> > + *   machine type, via the entrypoint exposed in the .compat PE/COFF s=
ection.
> > + *
> > + * The recommended way of loading and starting v1.0 or later kernels i=
s to use
> > + * the LoadImage() and StartImage() EFI boot services, and expose the =
initrd
> > + * via the LINUX_EFI_INITRD_MEDIA_GUID device path.
> > + *
> > + * Versions older than v1.0 support initrd loading via the image load =
options
> > + * (using initrd=3D, limited to the volume from which the kernel itsel=
f was
> > + * loaded), or via arch specific means (bootparams, DT, etc).
> > + *
> > + * On x86, LoadImage() and StartImage() can be omitted if the EFI hand=
over
> > + * protocol is implemented, which can be inferred from the version,
> > + * handover_offset and xloadflags fields in the bootparams structure.
> > + */
> > +#define LINUX_EFISTUB_MAJOR_VERSION 0x1
> > +#define LINUX_EFISTUB_MINOR_VERSION 0x0
> > +
> > +#define MZ_MAGIC 0x5a4d /* "MZ" */
> > +
> > +#define PE_MAGIC              0x00004550 /* "PE\0\0" */
> > +#define PE_OPT_MAGIC_PE32     0x010b
> > +#define PE_OPT_MAGIC_PE32_ROM 0x0107
> > +#define PE_OPT_MAGIC_PE32PLUS 0x020b
> > +
> > +/* machine type */
> > +#define IMAGE_FILE_MACHINE_UNKNOWN   0x0000
> > +#define IMAGE_FILE_MACHINE_AM33      0x01d3
> > +#define IMAGE_FILE_MACHINE_AMD64     0x8664
> > +#define IMAGE_FILE_MACHINE_ARM       0x01c0
> > +#define IMAGE_FILE_MACHINE_ARMV7     0x01c4
> > +#define IMAGE_FILE_MACHINE_ARM64     0xaa64
> > +#define IMAGE_FILE_MACHINE_EBC       0x0ebc
> > +#define IMAGE_FILE_MACHINE_I386      0x014c
> > +#define IMAGE_FILE_MACHINE_IA64      0x0200
> > +#define IMAGE_FILE_MACHINE_M32R      0x9041
> > +#define IMAGE_FILE_MACHINE_MIPS16    0x0266
> > +#define IMAGE_FILE_MACHINE_MIPSFPU   0x0366
> > +#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
> > +#define IMAGE_FILE_MACHINE_POWERPC   0x01f0
> > +#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1
> > +#define IMAGE_FILE_MACHINE_R4000     0x0166
> > +#define IMAGE_FILE_MACHINE_RISCV32   0x5032
> > +#define IMAGE_FILE_MACHINE_RISCV64   0x5064
> > +#define IMAGE_FILE_MACHINE_RISCV128  0x5128
> > +#define IMAGE_FILE_MACHINE_SH3       0x01a2
> > +#define IMAGE_FILE_MACHINE_SH3DSP    0x01a3
> > +#define IMAGE_FILE_MACHINE_SH3E      0x01a4
> > +#define IMAGE_FILE_MACHINE_SH4       0x01a6
> > +#define IMAGE_FILE_MACHINE_SH5       0x01a8
> > +#define IMAGE_FILE_MACHINE_THUMB     0x01c2
> > +#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
> > +
> > +/* flags */
> > +#define IMAGE_FILE_RELOCS_STRIPPED         0x0001
> > +#define IMAGE_FILE_EXECUTABLE_IMAGE        0x0002
> > +#define IMAGE_FILE_LINE_NUMS_STRIPPED      0x0004
> > +#define IMAGE_FILE_LOCAL_SYMS_STRIPPED     0x0008
> > +#define IMAGE_FILE_AGGRESSIVE_WS_TRIM      0x0010
> > +#define IMAGE_FILE_LARGE_ADDRESS_AWARE     0x0020
> > +#define IMAGE_FILE_16BIT_MACHINE           0x0040
> > +#define IMAGE_FILE_BYTES_REVERSED_LO       0x0080
> > +#define IMAGE_FILE_32BIT_MACHINE           0x0100
> > +#define IMAGE_FILE_DEBUG_STRIPPED          0x0200
> > +#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
> > +#define IMAGE_FILE_NET_RUN_FROM_SWAP       0x0800
> > +#define IMAGE_FILE_SYSTEM                  0x1000
> > +#define IMAGE_FILE_DLL                     0x2000
> > +#define IMAGE_FILE_UP_SYSTEM_ONLY          0x4000
> > +#define IMAGE_FILE_BYTES_REVERSED_HI       0x8000
> > +
> > +#define IMAGE_FILE_OPT_ROM_MAGIC       0x107
> > +#define IMAGE_FILE_OPT_PE32_MAGIC      0x10b
> > +#define IMAGE_FILE_OPT_PE32_PLUS_MAGIC 0x20b
> > +
> > +#define IMAGE_SUBSYSTEM_UNKNOWN                 0
> > +#define IMAGE_SUBSYSTEM_NATIVE                  1
> > +#define IMAGE_SUBSYSTEM_WINDOWS_GUI             2
> > +#define IMAGE_SUBSYSTEM_WINDOWS_CUI             3
> > +#define IMAGE_SUBSYSTEM_POSIX_CUI               7
> > +#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI          9
> > +#define IMAGE_SUBSYSTEM_EFI_APPLICATION         10
> > +#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
> > +#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
> > +#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE           13
> > +#define IMAGE_SUBSYSTEM_XBOX                    14
> > +
> > +#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         0x0040
> > +#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      0x0080
> > +#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            0x0100
> > +#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          0x0200
> > +#define IMAGE_DLLCHARACTERISTICS_NO_SEH                0x0400
> > +#define IMAGE_DLLCHARACTERISTICS_NO_BIND               0x0800
> > +#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            0x2000
> > +#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
> > +
> > +/* they actually defined 0x00000000 as well, but I think we'll skip th=
at one. */
> > +#define IMAGE_SCN_RESERVED_0             0x00000001
> > +#define IMAGE_SCN_RESERVED_1             0x00000002
> > +#define IMAGE_SCN_RESERVED_2             0x00000004
> > +#define IMAGE_SCN_TYPE_NO_PAD            0x00000008 /* don't pad - obs=
olete */
> > +#define IMAGE_SCN_RESERVED_3             0x00000010
> > +#define IMAGE_SCN_CNT_CODE               0x00000020 /* .text */
> > +#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040 /* .data */
> > +#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* .bss */
> > +#define IMAGE_SCN_LNK_OTHER              0x00000100 /* reserved */
> > +#define IMAGE_SCN_LNK_INFO               0x00000200 /* .drectve commen=
ts */
> > +#define IMAGE_SCN_RESERVED_4             0x00000400
> > +#define IMAGE_SCN_LNK_REMOVE             0x00000800 /* .o only - scn t=
o be rm'd*/
> > +#define IMAGE_SCN_LNK_COMDAT             0x00001000 /* .o only - COMDA=
T data */
> > +#define IMAGE_SCN_RESERVED_5             0x00002000 /* spec omits this=
 */
> > +#define IMAGE_SCN_RESERVED_6             0x00004000 /* spec omits this=
 */
> > +#define IMAGE_SCN_GPREL                  0x00008000 /* global pointer =
referenced data */
> > +/* spec lists 0x20000 twice, I suspect they meant 0x10000 for one of t=
hem */
> > +#define IMAGE_SCN_MEM_PURGEABLE 0x00010000 /* reserved for "future" us=
e */
> > +#define IMAGE_SCN_16BIT         0x00020000 /* reserved for "future" us=
e */
> > +#define IMAGE_SCN_LOCKED        0x00040000 /* reserved for "future" us=
e */
> > +#define IMAGE_SCN_PRELOAD       0x00080000 /* reserved for "future" us=
e */
> > +/* and here they just stuck a 1-byte integer in the middle of a bitfie=
ld */
> > +#define IMAGE_SCN_ALIGN_1BYTES    0x00100000 /* it does what it says o=
n the box */
> > +#define IMAGE_SCN_ALIGN_2BYTES    0x00200000
> > +#define IMAGE_SCN_ALIGN_4BYTES    0x00300000
> > +#define IMAGE_SCN_ALIGN_8BYTES    0x00400000
> > +#define IMAGE_SCN_ALIGN_16BYTES   0x00500000
> > +#define IMAGE_SCN_ALIGN_32BYTES   0x00600000
> > +#define IMAGE_SCN_ALIGN_64BYTES   0x00700000
> > +#define IMAGE_SCN_ALIGN_128BYTES  0x00800000
> > +#define IMAGE_SCN_ALIGN_256BYTES  0x00900000
> > +#define IMAGE_SCN_ALIGN_512BYTES  0x00a00000
> > +#define IMAGE_SCN_ALIGN_1024BYTES 0x00b00000
> > +#define IMAGE_SCN_ALIGN_2048BYTES 0x00c00000
> > +#define IMAGE_SCN_ALIGN_4096BYTES 0x00d00000
> > +#define IMAGE_SCN_ALIGN_8192BYTES 0x00e00000
> > +#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* extended relocations *=
/
> > +#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 /* scn can be discarded *=
/
> > +#define IMAGE_SCN_MEM_NOT_CACHED  0x04000000 /* cannot be cached */
> > +#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000 /* not pageable */
> > +#define IMAGE_SCN_MEM_SHARED      0x10000000 /* can be shared */
> > +#define IMAGE_SCN_MEM_EXECUTE     0x20000000 /* can be executed as cod=
e */
> > +#define IMAGE_SCN_MEM_READ        0x40000000 /* readable */
> > +#define IMAGE_SCN_MEM_WRITE       0x80000000 /* writeable */
> > +
> > +#define IMAGE_DEBUG_TYPE_CODEVIEW 2
> > +
> > +#ifndef __ASSEMBLY__
> > +
> > +struct mz_hdr {
> > +    uint16_t magic;              /* MZ_MAGIC */
> > +    uint16_t lbsize;             /* size of last used block */
> > +    uint16_t blocks;             /* pages in file, 0x3 */
> > +    uint16_t relocs;             /* relocations */
> > +    uint16_t hdrsize;            /* header size in "paragraphs" */
> > +    uint16_t min_extra_pps;      /* .bss */
> > +    uint16_t max_extra_pps;      /* runtime limit for the arena size *=
/
> > +    uint16_t ss;                 /* relative stack segment */
> > +    uint16_t sp;                 /* initial %sp register */
> > +    uint16_t checksum;           /* word checksum */
> > +    uint16_t ip;                 /* initial %ip register */
> > +    uint16_t cs;                 /* initial %cs relative to load segme=
nt */
> > +    uint16_t reloc_table_offset; /* offset of the first relocation */
> > +    uint16_t overlay_num;        /* overlay number.  set to 0. */
> > +    uint16_t reserved0[4];       /* reserved */
> > +    uint16_t oem_id;             /* oem identifier */
> > +    uint16_t oem_info;           /* oem specific */
> > +    uint16_t reserved1[10];      /* reserved */
> > +    uint32_t peaddr;             /* address of pe header */
> > +    char     message[];          /* message to print */
> > +};
>
> We already have an instance of this struct in common/efi/pe.c. I think
> it wouldn't be very desirable to have two (different) instances.
>
> > +struct mz_reloc {
> > +    uint16_t offset;
> > +    uint16_t segment;
> > +};
>
> We aren't going to need this anywhere, are we?
>
> > +struct pe_hdr {
> > +    uint32_t magic;        /* PE magic */
> > +    uint16_t machine;      /* machine type */
> > +    uint16_t sections;     /* number of sections */
> > +    uint32_t timestamp;    /* time_t */
> > +    uint32_t symbol_table; /* symbol table offset */
> > +    uint32_t symbols;      /* number of symbols */
> > +    uint16_t opt_hdr_size; /* size of optional header */
> > +    uint16_t flags;        /* flags */
> > +};
>
> And again another (different) instance of this and further struct-s
> already exists. Same for the section header further down.
>
> > +/* the fact that pe32 isn't padded where pe32+ is 64-bit means union w=
on't
> > + * work right.  vomit. */
>
> Noticing here in particular, but being an issue elsewhere as well:
> Unless this file is to be a verbatim copy taken from somewhere (in
> which case it should probably be introduced in a separate commit
> with an Origin: tag), comments want to adhere of ./CODING_STYLE.
>
> > +struct pe32_opt_hdr {
> > +    /* "standard" header */
> > +    uint16_t magic;       /* file type */
> > +    uint8_t  ld_major;    /* linker major version */
> > +    uint8_t  ld_minor;    /* linker minor version */
> > +    uint32_t text_size;   /* size of text section(s) */
> > +    uint32_t data_size;   /* size of data section(s) */
> > +    uint32_t bss_size;    /* size of bss section(s) */
> > +    uint32_t entry_point; /* file offset of entry point */
> > +    uint32_t code_base;   /* relative code addr in ram */
> > +    uint32_t data_base;   /* relative data addr in ram */
> > +    /* "windows" header */
> > +    uint32_t image_base;     /* preferred load address */
> > +    uint32_t section_align;  /* alignment in bytes */
> > +    uint32_t file_align;     /* file alignment in bytes */
> > +    uint16_t os_major;       /* major OS version */
> > +    uint16_t os_minor;       /* minor OS version */
> > +    uint16_t image_major;    /* major image version */
> > +    uint16_t image_minor;    /* minor image version */
> > +    uint16_t subsys_major;   /* major subsystem version */
> > +    uint16_t subsys_minor;   /* minor subsystem version */
> > +    uint32_t win32_version;  /* reserved, must be 0 */
> > +    uint32_t image_size;     /* image size */
> > +    uint32_t header_size;    /* header size rounded up to file_align *=
/
> > +    uint32_t csum;           /* checksum */
> > +    uint16_t subsys;         /* subsystem */
> > +    uint16_t dll_flags;      /* executable characteristics */
> > +    uint32_t stack_size_req; /* amt of stack requested */
> > +    uint32_t stack_size;     /* amt of stack required */
> > +    uint32_t heap_size_req;  /* amt of heap requested */
> > +    uint32_t heap_size;      /* amt of heap required */
> > +    uint32_t loader_flags;   /* reserved, must be 0 */
> > +    uint32_t data_dirs;      /* number of data dir entries */
> > +};
> > +
> > +struct pe32plus_opt_hdr {
> > +    uint16_t magic;       /* file type */
> > +    uint8_t  ld_major;    /* linker major version */
> > +    uint8_t  ld_minor;    /* linker minor version */
> > +    uint32_t text_size;   /* size of text section(s) */
> > +    uint32_t data_size;   /* size of data section(s) */
> > +    uint32_t bss_size;    /* size of bss section(s) */
> > +    uint32_t entry_point; /* file offset of entry point */
> > +    uint32_t code_base;   /* relative code addr in ram */
> > +    /* "windows" header */
> > +    uint64_t image_base;     /* preferred load address */
> > +    uint32_t section_align;  /* alignment in bytes */
> > +    uint32_t file_align;     /* file alignment in bytes */
> > +    uint16_t os_major;       /* major OS version */
> > +    uint16_t os_minor;       /* minor OS version */
> > +    uint16_t image_major;    /* major image version */
> > +    uint16_t image_minor;    /* minor image version */
> > +    uint16_t subsys_major;   /* major subsystem version */
> > +    uint16_t subsys_minor;   /* minor subsystem version */
> > +    uint32_t win32_version;  /* reserved, must be 0 */
> > +    uint32_t image_size;     /* image size */
> > +    uint32_t header_size;    /* header size rounded up to file_align *=
/
> > +    uint32_t csum;           /* checksum */
> > +    uint16_t subsys;         /* subsystem */
> > +    uint16_t dll_flags;      /* executable characteristics */
> > +    uint64_t stack_size_req; /* amt of stack requested */
> > +    uint64_t stack_size;     /* amt of stack required */
> > +    uint64_t heap_size_req;  /* amt of heap requested */
> > +    uint64_t heap_size;      /* amt of heap required */
> > +    uint32_t loader_flags;   /* reserved, must be 0 */
> > +    uint32_t data_dirs;      /* number of data dir entries */
> > +};
> > +
> > +struct data_dirent {
> > +    uint32_t virtual_address; /* relative to load address */
> > +    uint32_t size;
> > +};
>
> Will we need this and ...
>
> > +struct data_directory {
> > +    struct data_dirent exports;          /* .edata */
> > +    struct data_dirent imports;          /* .idata */
> > +    struct data_dirent resources;        /* .rsrc */
> > +    struct data_dirent exceptions;       /* .pdata */
> > +    struct data_dirent certs;            /* certs */
> > +    struct data_dirent base_relocations; /* .reloc */
> > +    struct data_dirent debug;            /* .debug */
> > +    struct data_dirent arch;             /* reservered */
> > +    struct data_dirent global_ptr;       /* global pointer reg. Size=
=3D0 */
> > +    struct data_dirent tls;              /* .tls */
> > +    struct data_dirent load_config;      /* load configuration structu=
re */
> > +    struct data_dirent bound_imports;    /* no idea */
> > +    struct data_dirent import_addrs;     /* import address table */
> > +    struct data_dirent delay_imports;    /* delay-load import table */
> > +    struct data_dirent clr_runtime_hdr;  /* .cor (object only) */
> > +    struct data_dirent reserved;
> > +};
>
> ... this?
>
> > +struct section_header {
> > +    char     name[8];         /* name or string tbl offset */
> > +    uint32_t virtual_size;    /* size of loaded section in ram */
> > +    uint32_t virtual_address; /* relative virtual address */
> > +    uint32_t raw_data_size;   /* size of the section */
> > +    uint32_t data_addr;       /* file pointer to first page of sec */
> > +    uint32_t relocs;          /* file pointer to relocation entries */
> > +    uint32_t line_numbers;    /* line numbers */
> > +    uint16_t num_relocs;      /* number of relocations */
> > +    uint16_t num_lin_numbers; /* COFF line count. */
> > +    uint32_t flags;
> > +};
> > +
> > +enum x64_coff_reloc_type {
> > +    IMAGE_REL_AMD64_ABSOLUTE =3D 0,
> > +    IMAGE_REL_AMD64_ADDR64,
> > +    IMAGE_REL_AMD64_ADDR32,
> > +    IMAGE_REL_AMD64_ADDR32N,
> > +    IMAGE_REL_AMD64_REL32,
> > +    IMAGE_REL_AMD64_REL32_1,
> > +    IMAGE_REL_AMD64_REL32_2,
> > +    IMAGE_REL_AMD64_REL32_3,
> > +    IMAGE_REL_AMD64_REL32_4,
> > +    IMAGE_REL_AMD64_REL32_5,
> > +    IMAGE_REL_AMD64_SECTION,
> > +    IMAGE_REL_AMD64_SECREL,
> > +    IMAGE_REL_AMD64_SECREL7,
> > +    IMAGE_REL_AMD64_TOKEN,
> > +    IMAGE_REL_AMD64_SREL32,
> > +    IMAGE_REL_AMD64_PAIR,
> > +    IMAGE_REL_AMD64_SSPAN32,
> > +};
> > +
> > +enum arm_coff_reloc_type {
> > +    IMAGE_REL_ARM_ABSOLUTE,
> > +    IMAGE_REL_ARM_ADDR32,
> > +    IMAGE_REL_ARM_ADDR32N,
> > +    IMAGE_REL_ARM_BRANCH2,
> > +    IMAGE_REL_ARM_BRANCH1,
> > +    IMAGE_REL_ARM_SECTION,
> > +    IMAGE_REL_ARM_SECREL,
> > +};
> > +
> > +enum sh_coff_reloc_type {
> > +    IMAGE_REL_SH3_ABSOLUTE,
> > +    IMAGE_REL_SH3_DIRECT16,
> > +    IMAGE_REL_SH3_DIRECT32,
> > +    IMAGE_REL_SH3_DIRECT8,
> > +    IMAGE_REL_SH3_DIRECT8_WORD,
> > +    IMAGE_REL_SH3_DIRECT8_LONG,
> > +    IMAGE_REL_SH3_DIRECT4,
> > +    IMAGE_REL_SH3_DIRECT4_WORD,
> > +    IMAGE_REL_SH3_DIRECT4_LONG,
> > +    IMAGE_REL_SH3_PCREL8_WORD,
> > +    IMAGE_REL_SH3_PCREL8_LONG,
> > +    IMAGE_REL_SH3_PCREL12_WORD,
> > +    IMAGE_REL_SH3_STARTOF_SECTION,
> > +    IMAGE_REL_SH3_SIZEOF_SECTION,
> > +    IMAGE_REL_SH3_SECTION,
> > +    IMAGE_REL_SH3_SECREL,
> > +    IMAGE_REL_SH3_DIRECT32_NB,
> > +    IMAGE_REL_SH3_GPREL4_LONG,
> > +    IMAGE_REL_SH3_TOKEN,
> > +    IMAGE_REL_SHM_PCRELPT,
> > +    IMAGE_REL_SHM_REFLO,
> > +    IMAGE_REL_SHM_REFHALF,
> > +    IMAGE_REL_SHM_RELLO,
> > +    IMAGE_REL_SHM_RELHALF,
> > +    IMAGE_REL_SHM_PAIR,
> > +    IMAGE_REL_SHM_NOMODE,
> > +};
> > +
> > +enum ppc_coff_reloc_type {
> > +    IMAGE_REL_PPC_ABSOLUTE,
> > +    IMAGE_REL_PPC_ADDR64,
> > +    IMAGE_REL_PPC_ADDR32,
> > +    IMAGE_REL_PPC_ADDR24,
> > +    IMAGE_REL_PPC_ADDR16,
> > +    IMAGE_REL_PPC_ADDR14,
> > +    IMAGE_REL_PPC_REL24,
> > +    IMAGE_REL_PPC_REL14,
> > +    IMAGE_REL_PPC_ADDR32N,
> > +    IMAGE_REL_PPC_SECREL,
> > +    IMAGE_REL_PPC_SECTION,
> > +    IMAGE_REL_PPC_SECREL16,
> > +    IMAGE_REL_PPC_REFHI,
> > +    IMAGE_REL_PPC_REFLO,
> > +    IMAGE_REL_PPC_PAIR,
> > +    IMAGE_REL_PPC_SECRELLO,
> > +    IMAGE_REL_PPC_GPREL,
> > +    IMAGE_REL_PPC_TOKEN,
> > +};
> > +
> > +enum x86_coff_reloc_type {
> > +    IMAGE_REL_I386_ABSOLUTE,
> > +    IMAGE_REL_I386_DIR16,
> > +    IMAGE_REL_I386_REL16,
> > +    IMAGE_REL_I386_DIR32,
> > +    IMAGE_REL_I386_DIR32NB,
> > +    IMAGE_REL_I386_SEG12,
> > +    IMAGE_REL_I386_SECTION,
> > +    IMAGE_REL_I386_SECREL,
> > +    IMAGE_REL_I386_TOKEN,
> > +    IMAGE_REL_I386_SECREL7,
> > +    IMAGE_REL_I386_REL32,
> > +};
> > +
> > +enum ia64_coff_reloc_type {
> > +    IMAGE_REL_IA64_ABSOLUTE,
> > +    IMAGE_REL_IA64_IMM14,
> > +    IMAGE_REL_IA64_IMM22,
> > +    IMAGE_REL_IA64_IMM64,
> > +    IMAGE_REL_IA64_DIR32,
> > +    IMAGE_REL_IA64_DIR64,
> > +    IMAGE_REL_IA64_PCREL21B,
> > +    IMAGE_REL_IA64_PCREL21M,
> > +    IMAGE_REL_IA64_PCREL21F,
> > +    IMAGE_REL_IA64_GPREL22,
> > +    IMAGE_REL_IA64_LTOFF22,
> > +    IMAGE_REL_IA64_SECTION,
> > +    IMAGE_REL_IA64_SECREL22,
> > +    IMAGE_REL_IA64_SECREL64I,
> > +    IMAGE_REL_IA64_SECREL32,
> > +    IMAGE_REL_IA64_DIR32NB,
> > +    IMAGE_REL_IA64_SREL14,
> > +    IMAGE_REL_IA64_SREL22,
> > +    IMAGE_REL_IA64_SREL32,
> > +    IMAGE_REL_IA64_UREL32,
> > +    IMAGE_REL_IA64_PCREL60X,
> > +    IMAGE_REL_IA64_PCREL60B,
> > +    IMAGE_REL_IA64_PCREL60F,
> > +    IMAGE_REL_IA64_PCREL60I,
> > +    IMAGE_REL_IA64_PCREL60M,
> > +    IMAGE_REL_IA64_IMMGPREL6,
> > +    IMAGE_REL_IA64_TOKEN,
> > +    IMAGE_REL_IA64_GPREL32,
> > +    IMAGE_REL_IA64_ADDEND,
> > +};
>
> All sorts of relocation types, but none for RISC-V? Are we going to need
> any of this?
>
> > +struct coff_reloc {
> > +    uint32_t virtual_address;
> > +    uint32_t symbol_table_index;
> > +
> > +    union {
> > +        enum x64_coff_reloc_type  x64_type;
> > +        enum arm_coff_reloc_type  arm_type;
> > +        enum sh_coff_reloc_type   sh_type;
> > +        enum ppc_coff_reloc_type  ppc_type;
> > +        enum x86_coff_reloc_type  x86_type;
> > +        enum ia64_coff_reloc_type ia64_type;
> > +        uint16_t                  data;
> > +    };
> > +};
> > +
> > +/*
> > + * Definitions for the contents of the certs data block
> > + */
> > +#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002
> > +#define WIN_CERT_TYPE_EFI_OKCS115      0x0EF0
> > +#define WIN_CERT_TYPE_EFI_GUID         0x0EF1
> > +
> > +#define WIN_CERT_REVISION_1_0 0x0100
> > +#define WIN_CERT_REVISION_2_0 0x0200
> > +
> > +struct win_certificate {
> > +    uint32_t length;
> > +    uint16_t revision;
> > +    uint16_t cert_type;
> > +};
>
> Or any of this?
>
Regarding pe.h file content, we wanted to keep it as generic as
possible (structures definition according to PE format which can be
used for multiple architectures). Specifically for RISC-V as you
noticed, we are not using lots of structures (data directories,
relocation structures, certificates, etc.). Therefore, we can reduce
it to only those used atm, but in that case we won't have a generic PE
header definition anymore. Regarding structures which are already
defined in common/efi/pe.c, meaning that with our change we have two
versions of same structures, we can remove those, but in that case it
could be confusing for someone who is trying to map fields from pe.h
to actual image header in assembly code. Summary I would keep this
header with its original content, but if you think that it contains
too much overhead we can reduce it to relevant structures only.

BR,
Milan


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 18:07:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 18:07:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753947.1162218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPQr4-0004Bz-Bq; Thu, 04 Jul 2024 18:06:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753947.1162218; Thu, 04 Jul 2024 18:06:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPQr4-0004Bs-9K; Thu, 04 Jul 2024 18:06:50 +0000
Received: by outflank-mailman (input) for mailman id 753947;
 Thu, 04 Jul 2024 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=cQU9=OE=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPQr2-0004BW-KD
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 18:06:48 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2d441604-3a30-11ef-bbfa-fd08da9f4363;
 Thu, 04 Jul 2024 20:06:46 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ee75ffce77so10916221fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 11:06:46 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72b5abddaesm568850366b.140.2024.07.04.11.06.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Jul 2024 11: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: 2d441604-3a30-11ef-bbfa-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720116406; x=1720721206; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tM0HL8E8Z38QJguA49EEBzuKyC8O3mtfm0XbZ+mw21U=;
        b=rGMmW2PTzycmgp0vERaDXtLqnZsyot7ZGZ5FT7B9YAMg7fhLOi6dYRdK4lvfnU/nm3
         WIi1hVUc9pYNeRgQjTsvuJJb1DMWLHuASbp453GJ1e2ERpjZBpI8mcmy6c5c4rJMSm4W
         Z5WGOvn+WQ/dXQ9Hv6oT7ZGv+/pqS5fK14oSI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720116406; x=1720721206;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tM0HL8E8Z38QJguA49EEBzuKyC8O3mtfm0XbZ+mw21U=;
        b=uJWuUMK3Wj1uVtdgLJe3M6UHGcUjqXDDwEqeBAu39gN6lETIHQu52qoYRh1Nk5xqHf
         rI3OhkO/o8CrOPbELDHEtLE6i2F1jMmZrbPUsaO5LbYuE0e0/Sphx7ShE2y4kcZUGVRV
         WeIwNOfeAvV0XJ3iIeW/r0wpx9ER0+sI4WfZW4i+EfCcZp3J1U/bBw1AGT56rzqBhyQA
         ul0ixIViYi7MNU5EzmTMhZhmvwktuafToPO3FaKlooh33rEMfY8VGOnGALpyydiXpu7Z
         umhqSQv5nRg5y9v0JgCBK8K4RJ/TiCvsVJZoMxDCMJdui0JNSmWTTKZQmTS2LpIdHjvu
         phyw==
X-Forwarded-Encrypted: i=1; AJvYcCXobBQFIXRZZxLiU13wx3qUDrL409zexYAVrNXECjbApx+hrrwBwb89QVWF3tdZ3K90DjriCGwDVHrtx3tM3/u3sFNKE/KadHZEDVC7arI=
X-Gm-Message-State: AOJu0YxXR3NmRadpuFjLJD2Htg5+oPW8MqyMy1Ea7qvBSqUwakCJr7e9
	N7UiOk9FEToE5y3sfwrrOt9tjEOWoN+EZ/By4NQ7d8O0Ux6ZpRvpmNbJ/X5VniM=
X-Google-Smtp-Source: AGHT+IGsGwqU0zrnIT2Kcas+CDBRfosfPX6YhSATjxgB8W+C9OakX3LvUNdYId5pfQ3EVkcDlbJEtw==
X-Received: by 2002:a2e:6a18:0:b0:2ed:59af:ecb4 with SMTP id 38308e7fff4ca-2ee8ee0e975mr19824441fa.41.1720116405906;
        Thu, 04 Jul 2024 11:06:45 -0700 (PDT)
Message-ID: <d3b0c081-d197-4c18-adcb-a6cdfca22826@citrix.com>
Date: Thu, 4 Jul 2024 19:06:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 3/4] CI: Drop bin86/dev86 from archlinux
 container
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
 <20240703142002.1662874-4-andrew.cooper3@citrix.com>
 <ZoVjg-HBZdoa-B5A@macbook.local>
 <6b05b04d-e2a8-42ba-b040-78638fa7b51f@citrix.com> <ZoV5+RT0JOqFCW7d@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZoV5+RT0JOqFCW7d@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03/07/2024 5:19 pm, Anthony PERARD wrote:
> On Wed, Jul 03, 2024 at 03:52:48PM +0100, Andrew Cooper wrote:
>> Also, Archlinux is nonblocking because it's a rolling distro and
>> periodically breaks older trees because of an updated GCC.
> Correction: It should be nonblocking, it's not at the moment ;-).

And it turns out to explode in stubdom because newlib has K&R functions
which the new GCC doesn't tolerate.

I'll need to do a prep patch before this rebuild is safe.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 18:58:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 18:58:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753966.1162237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPRel-0002HW-3Q; Thu, 04 Jul 2024 18:58:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753966.1162237; Thu, 04 Jul 2024 18: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 1sPRel-0002HP-0h; Thu, 04 Jul 2024 18:58:11 +0000
Received: by outflank-mailman (input) for mailman id 753966;
 Thu, 04 Jul 2024 18:58: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=cQU9=OE=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPRek-0002HJ-0g
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 18:58:10 +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 59c4f8fb-3a37-11ef-8776-851b0ebba9a2;
 Thu, 04 Jul 2024 20:58:07 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-57cbc2a2496so1147483a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 11:58:07 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58614d50da0sm8817406a12.59.2024.07.04.11.58.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 04 Jul 2024 11:58: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: 59c4f8fb-3a37-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720119486; x=1720724286; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yAUXhW8ljvb1GC/0KvYwnZVvso8UaX0no4JxO0uGauw=;
        b=bICbmw7Q+adnzYinvgYArhTsPvumh2ada/kgV0aDM+mFnwa5wsjCyDS0qnHOckzgPb
         TYLxq7P96pnYnX1Xd3kZVeZucWf+8z0p19hBticn47gDiHYiF69aVh1UBjYazHXWAfno
         OZ7IhZAAZoDTiIe2jNZ15P3tB8KLCYJE3WdjE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720119486; x=1720724286;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=yAUXhW8ljvb1GC/0KvYwnZVvso8UaX0no4JxO0uGauw=;
        b=u/E69o5wkEAWCHVgrb/lYLDEAL8y9OUTTbD+kyesY0ofGxNrwmAbxOp8205GnyxQHo
         oBuTyXObLXiJ140aKZ1kRzLIdwSvLlx1qyi8ykzqPolLc7ANTnXT5zvLoXF+Ur9hcWgJ
         w0EHkyGQUX/F2La5LMsCO+o7/6k9Dlp5x50xWExkI8YPCanz12OTxPn4LsU/GOeuKjlr
         OiU4LbD4jrgku8Am0p/0Lbf4nTWz0TcJdqXykBnFO6+W4ay62ysz5Y+a2XIs46oNXUZf
         9Hs6MdUuC7WhvWWl0i2nXTmgR9hiP79ysIxWY3Ur5x7zWsJGJNShB9T1HWmDsKffo5yO
         zR0Q==
X-Gm-Message-State: AOJu0YzosHeAuSon3/pIZN7rPKkMS7Nzh4MWROVMnDhBbGH4BQdZ/XoS
	0KRy0x94oTH4ArDp9HJ6oikb2yrN3a0CLtwD+r8gRyWRXEDjrt/GTL/JkYr19o6K4N/nKKje4bW
	b
X-Google-Smtp-Source: AGHT+IFEnshHogOMkHyzf6cKdXD1vr/xLF/kh65QrkuBx5mABgIQoVKBIhvdqh60jUkyQTEwssRp8w==
X-Received: by 2002:a05:6402:1cc1:b0:58b:9363:97e2 with SMTP id 4fb4d7f45d1cf-58e5cd16134mr1882542a12.35.1720119486342;
        Thu, 04 Jul 2024 11:58: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?= <roiger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.19 v2 4/4] CI: Rework the CentOS7 container
Date: Thu,  4 Jul 2024 19:58:03 +0100
Message-Id: <20240704185803.1833259-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240703142002.1662874-5-andrew.cooper3@citrix.com>
References: <20240703142002.1662874-5-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

CentOS 7 is fully End-of-life as of 2024-06-30, and the Yum repo configuration
points at URLs which have become non-existent.

First, start by using a heredoc RUN for legibility.  It's important to use
`set -e` to offset the fact that we're no longer chaining every command
together with an &&.

Also, because we're using a single RUN command to perform all RPM operations,
we no longer need to work around the OverlayFS bug.

Adjust the CentOS-*.repo files to point at vault.centos.org.  This also
involves swapping mirrorlist= for baseurl= in the yum config.

Use a minor bashism to express the dependenices more coherently, and identify
why we have certain dependencies.  Some adjustments are:

 * We need bzip2-devel for the dombuilder.  bzip2 needs retaining stubdom or
   `tar` fails to unpack the .bz2 archives.
 * {lzo,lz4,ztd}-devel are new optional dependency since the last time this
   package list was refreshed.
 * openssl-devel hasn't been a dependency since Xen 4.6.
 * We long ago ceased being able to build Qemu and SeaBIOS in this container,
   so drop their dependencies too.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Roger Pau Monné <roiger.pau@citrix.com>
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

v2:
 * Expand on the sed required to fix the config
 * Adjust the package list to actually build.  Passing job:
     https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7268879932
---
 automation/build/centos/7.dockerfile | 101 ++++++++++++++++-----------
 1 file changed, 62 insertions(+), 39 deletions(-)

diff --git a/automation/build/centos/7.dockerfile b/automation/build/centos/7.dockerfile
index 657550f308bb..f41dda732084 100644
--- a/automation/build/centos/7.dockerfile
+++ b/automation/build/centos/7.dockerfile
@@ -6,44 +6,67 @@ LABEL maintainer.name="The Xen Project" \
 RUN mkdir /build
 WORKDIR /build
 
-# work around https://github.com/moby/moby/issues/10180
-# and add EPEL for dev86
-RUN rpm --rebuilddb && \
-    yum -y install \
-        yum-plugin-ovl \
-        epel-release \
-    && yum clean all && \
-    rm -rf /var/cache/yum
+RUN <<EOF
+    set -e
+
+    # Fix up Yum config now that mirror.centos.org doesn't exist
+    sed -e 's/mirror.centos.org/vault.centos.org/g' \
+        -e 's/^#.*baseurl=https\?/baseurl=https/g' \
+        -e 's/^mirrorlist=https\?/#mirrorlist=https/g' \
+        -i /etc/yum.repos.d/*.repo
+
+    # Add the EPEL repo to get dev86
+    yum -y install epel-release
+
+    # Update everything (Base container is out of date)
+    yum -y update
+
+    DEPS=(
+        # Xen
+        binutils
+        gcc
+        make
+        python
+        # Kconfig
+        bison
+        flex
+        # Flask
+        checkpolicy
+
+        # Tools (general)
+        git
+        gzip
+        patch
+        perl
+        pkgconfig
+        wget
+        # libxenguest dombuilder
+        bzip2-devel
+        lz4-devel
+        lzo-devel
+        xz-devel
+        zlib-devel
+        zstd-devel
+        # libacpi
+        acpica-tools
+        # libxl
+        libuuid-devel
+        yajl-devel
+        # RomBIOS
+        dev86
+        # Header Check
+        gcc-c++
+        # xentop
+        ncurses-devel
+        # Python bindings
+        python-devel
+
+        # Stubdom download/extract
+        bzip2
+    )
+
+    yum -y install "${DEPS[@]}"
 
-# install Xen depends
-RUN yum -y update \
-    && yum -y install \
-        gcc \
-        gcc-c++ \
-        ncurses-devel \
-        zlib-devel \
-        openssl-devel \
-        python-devel \
-        libuuid-devel \
-        pkgconfig \
-        flex \
-        bison \
-        libaio-devel \
-        glib2-devel \
-        yajl-devel \
-        pixman-devel \
-        glibc-devel \
-        make \
-        binutils \
-        git \
-        wget \
-        acpica-tools \
-        python-markdown \
-        patch \
-        checkpolicy \
-        dev86 \
-        xz-devel \
-        bzip2 \
-        nasm \
-    && yum clean all && \
+    yum clean all
     rm -rf /var/cache/yum
+EOF
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 18:59:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 18:59:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753971.1162247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPRgU-0002oH-FF; Thu, 04 Jul 2024 18:59:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753971.1162247; Thu, 04 Jul 2024 18:59:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPRgU-0002oA-C3; Thu, 04 Jul 2024 18:59:58 +0000
Received: by outflank-mailman (input) for mailman id 753971;
 Thu, 04 Jul 2024 18:59: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=cQU9=OE=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPRgT-0002o4-HT
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 18:59:57 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9aa915ad-3a37-11ef-bbfa-fd08da9f4363;
 Thu, 04 Jul 2024 20:59:56 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-52cd80e55efso1575107e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 04 Jul 2024 11:59:56 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72b4280d6bsm574347166b.206.2024.07.04.11.59.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 04 Jul 2024 11:59: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: 9aa915ad-3a37-11ef-bbfa-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720119596; x=1720724396; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=reBifhFLnajBu+yOPGpgIeaA808rZZcEVohWjkQ6RaY=;
        b=GDnium4qvuwNUHYA+xC1pnGFUKglnya1CrtqphI2I6FsFY8gPtfyDXPWYx4C4B0K8C
         58xK66F4WPMqBf4MtEh2lfHQfNwqjW10B0OqeIvI8f4rjLKApv8dfrbApcsmz5aRlC5j
         WugcbNtXeJhwi38Q7X96dK+zqkfZLhxUAtEPM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720119596; x=1720724396;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=reBifhFLnajBu+yOPGpgIeaA808rZZcEVohWjkQ6RaY=;
        b=YxJgN1lFKsfkfCcx5zs+OW/erf1cuj355623EZtLKjZu/791XmkK30rMCeBFHOclrw
         GbSzpRzy5VUvDF3jlLiw92gmyCkOLAWag+s5kuSt1CdRMqiKki/4VLkof89wHuLeY4GD
         Hp1J2zFQWrTVrN/2jPUjKhaxT3eF48xKDojTir/k5GP/dFabdC+wcZyG52xEluSIkN7x
         Rs7FFRjEnndbTY3BlXG4YF10SuVoraVV1+LUtgZuMVoqUA6Bz0RXkUaVieeLngR9nqdf
         jT0MVOK3nJ45aVPhoJm3w4XgSKx3Yq0TXvK5un1uYpn4UaIJRTBw4Shuk22Np1rPsear
         oFsQ==
X-Gm-Message-State: AOJu0YwSlkNHnIukLvTdgau6kSVJc0XfuHT4Y9OPJnvwAGfnX1oNNABh
	bu3nk4gQ35wd5T8pjt+vl0OkQawp6HMln6Ntr+M0cHQizJgVVIt80ZA335nwzds=
X-Google-Smtp-Source: AGHT+IEsnrDQTmQ5Y6MkGtZeZ7/xKE1IssNFrc/A2GHFoj5OmKmX9RQvmhVukc5eCHjv3GEY4oz7Dw==
X-Received: by 2002:ac2:5332:0:b0:52e:8071:e89d with SMTP id 2adb3069b0e04-52ea063c361mr2193859e87.40.1720119595888;
        Thu, 04 Jul 2024 11:59:55 -0700 (PDT)
Message-ID: <88dbd192-2aa8-4a3a-a131-9cc4c5f066fe@citrix.com>
Date: Thu, 4 Jul 2024 19:59:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 4/4] CI: Rework the CentOS7 container
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240703142002.1662874-1-andrew.cooper3@citrix.com>
 <20240703142002.1662874-5-andrew.cooper3@citrix.com>
 <ZoVmSWt9bwxDNMuF@macbook.local>
 <b10061e7-1bf7-4bac-83d9-fe621cbad65a@citrix.com>
 <ZoZaKeEJR1ekqPk8@macbook.local>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZoZaKeEJR1ekqPk8@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04/07/2024 9:15 am, Roger Pau Monné wrote:
> On Wed, Jul 03, 2024 at 04:09:48PM +0100, Andrew Cooper wrote:
>> On 03/07/2024 3:55 pm, Roger Pau Monné wrote:
>>> On Wed, Jul 03, 2024 at 03:20:02PM +0100, Andrew Cooper wrote:
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Acked-by: Roger Pau Monné <roiger.pau@citrix.com>
>> Thanks.

I've taken the liberty of correcting your email address when taking this
tag.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 19:08:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 19:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753980.1162256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPRoG-0004YE-5P; Thu, 04 Jul 2024 19:08:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753980.1162256; Thu, 04 Jul 2024 19: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 1sPRoG-0004Y7-2Q; Thu, 04 Jul 2024 19:08:00 +0000
Received: by outflank-mailman (input) for mailman id 753980;
 Thu, 04 Jul 2024 19:07:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPRoE-0004Wb-EI; Thu, 04 Jul 2024 19:07:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPRoE-0001PI-Ad; Thu, 04 Jul 2024 19:07:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPRoD-0007CJ-TX; Thu, 04 Jul 2024 19:07:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPRoD-0007Uh-TB; Thu, 04 Jul 2024 19:07: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=NasJ15xxzT2Y7OluOvGG+llOPfZ4SJlbhhy/qpuq7Ec=; b=tSRzBHnkkQ3lpFm5oRSUdXhMgv
	Vt0JSUIz9g2ukTYg28hcoAWsyhPo2kDi9CjgBWG0p9PSt5ZSYKZarG300RYzFt2Qr/qeJZxlsjPfz
	uEawb/x6+uVsG35lTi3/1RIlN24sw4s/Nv9nLlzv9q75W+5ieX4mzR7t9c9Tx+vw4n5c=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186654-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.17-testing test] 186654: regressions - FAIL
X-Osstest-Failures:
    xen-4.17-testing:build-arm64:xen-build:fail:regression
    xen-4.17-testing:build-arm64-xsm:xen-build:fail:regression
    xen-4.17-testing:build-armhf:xen-build:fail:regression
    xen-4.17-testing:build-arm64-libvirt:build-check(1):blocked:nonblocking
    xen-4.17-testing:build-armhf-libvirt:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-xsm:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-vhd:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-qcow2:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-raw:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b61a4baf35e912bddfe1b6da0093edcd474d918c
X-Osstest-Versions-That:
    xen=87a49d2ec6fe2881e4b0947ea3e0e0f041dc6be3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 19:07:57 +0000

flight 186654 xen-4.17-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186654/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-arm64                   6 xen-build                fail REGR. vs. 186515
 build-arm64-xsm               6 xen-build                fail REGR. vs. 186515
 build-armhf                   6 xen-build                fail REGR. vs. 186515

Tests which did not succeed, but are not blocking:
 build-arm64-libvirt           1 build-check(1)               blocked  n/a
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl           1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-credit1   1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-credit2   1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-thunderx  1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-vhd       1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-xsm       1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-qcow2     1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-raw       1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186515
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186515
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186515
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186515
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186515
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  b61a4baf35e912bddfe1b6da0093edcd474d918c
baseline version:
 xen                  87a49d2ec6fe2881e4b0947ea3e0e0f041dc6be3

Last test of basis   186515  2024-06-26 12:36:39 Z    8 days
Testing same since   186654  2024-07-04 12:36:54 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@vates.tech>
  Christian Lindig <christian.lindig@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Matthew Barnes <matthew.barnes@cloud.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              fail    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  fail    
 build-armhf                                                  fail    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          blocked 
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          blocked 
 test-armhf-armhf-xl                                          blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      blocked 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  blocked 
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  blocked 
 test-armhf-armhf-xl-credit2                                  blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    blocked 
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 blocked 
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 blocked 
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 333 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 19:10:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 19:10:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753991.1162273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPRqm-0006EJ-Nw; Thu, 04 Jul 2024 19:10:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753991.1162273; Thu, 04 Jul 2024 19: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 1sPRqm-0006EC-K8; Thu, 04 Jul 2024 19:10:36 +0000
Received: by outflank-mailman (input) for mailman id 753991;
 Thu, 04 Jul 2024 19:10:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPRqk-0006E0-Pv; Thu, 04 Jul 2024 19:10:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPRqk-0001T9-OI; Thu, 04 Jul 2024 19:10:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPRqk-0007Ib-Ai; Thu, 04 Jul 2024 19:10:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPRqk-0003NI-A6; Thu, 04 Jul 2024 19:10:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=gRvz77e/iTrPPYNdaWC/PL/9LqUUip15TDNzAbDhXLQ=; b=2IWqa4Ry5HHWkmrCfrTqa9LPmb
	t1WPW0Bbp6AdoFSuaa+oTfNbHbvOt098Fn24GGhpj9tkOWZbTCRnrUVPd/7rszSc0FKsGGSttAe82
	Yib8map/T/48175R+4c4oGN55bHXHpUKs8LLUcrjHqPqJqtxbwBFFHXe2VX0xbU+yoFM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186655-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.18-testing test] 186655: regressions - FAIL
X-Osstest-Failures:
    xen-4.18-testing:build-arm64:xen-build:fail:regression
    xen-4.18-testing:build-arm64-xsm:xen-build:fail:regression
    xen-4.18-testing:build-armhf:xen-build:fail:regression
    xen-4.18-testing:build-arm64-libvirt:build-check(1):blocked:nonblocking
    xen-4.18-testing:build-armhf-libvirt:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-xsm:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-vhd:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-qcow2:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-raw:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=7e636b8a16412d4f0d94b2b24d7ebcd2c749afff
X-Osstest-Versions-That:
    xen=e95d30f9e5eed0c5d9dbf72d4cc3ae373152ab10
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 19:10:34 +0000

flight 186655 xen-4.18-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186655/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-arm64                   6 xen-build                fail REGR. vs. 186514
 build-arm64-xsm               6 xen-build                fail REGR. vs. 186514
 build-armhf                   6 xen-build                fail REGR. vs. 186514

Tests which did not succeed, but are not blocking:
 build-arm64-libvirt           1 build-check(1)               blocked  n/a
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl           1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-credit1   1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-credit2   1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-thunderx  1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-vhd       1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-xsm       1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-qcow2     1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-raw       1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186514
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186514
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186514
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186514
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186514
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  7e636b8a16412d4f0d94b2b24d7ebcd2c749afff
baseline version:
 xen                  e95d30f9e5eed0c5d9dbf72d4cc3ae373152ab10

Last test of basis   186514  2024-06-26 12:06:49 Z    8 days
Testing same since   186655  2024-07-04 12:37:00 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@vates.tech>
  Christian Lindig <christian.lindig@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Matthew Barnes <matthew.barnes@cloud.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              fail    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  fail    
 build-armhf                                                  fail    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          blocked 
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          blocked 
 test-armhf-armhf-xl                                          blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      blocked 
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  blocked 
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  blocked 
 test-armhf-armhf-xl-credit2                                  blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    blocked 
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 blocked 
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 blocked 
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 335 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 20:07:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 20:07:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754004.1162295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPSjQ-0004ns-Sg; Thu, 04 Jul 2024 20:07:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754004.1162295; Thu, 04 Jul 2024 20: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 1sPSjQ-0004nl-Pz; Thu, 04 Jul 2024 20:07:04 +0000
Received: by outflank-mailman (input) for mailman id 754004;
 Thu, 04 Jul 2024 20:07:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPSjP-0004nb-W5; Thu, 04 Jul 2024 20:07:04 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPSjP-0002ZO-Tp; Thu, 04 Jul 2024 20:07:03 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPSjP-0001sT-HM; Thu, 04 Jul 2024 20:07:03 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPSjP-0007H8-Gl; Thu, 04 Jul 2024 20:07:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=XWTDEBY2Gjl5Rz8wP8Iot+Q+Y4nqMb2ZTCtCvdVI6dY=; b=ptMwngCMgyCFloFscvS0u9AZwR
	SvPmSehUo6DSuqklEXc0mCZYK1X5BiobFKgeIFvzVNEfuYXolXe+lKmhuvaeHstXixM8pgqzE5K5M
	uEZhTNfjgCypjndsf4v1CLVANbc5NGfefwHF+blRH5tyZ33L4bRq/GB4bxdUpDEYjFkE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186660-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186660: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=cdffb638c85da87f6b9d61194513a24cd6a73c6a
X-Osstest-Versions-That:
    ovmf=4e36bed8128f67fc73f41acb1beaffd77ef76e90
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 20:07:03 +0000

flight 186660 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186660/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 cdffb638c85da87f6b9d61194513a24cd6a73c6a
baseline version:
 ovmf                 4e36bed8128f67fc73f41acb1beaffd77ef76e90

Last test of basis   186658  2024-07-04 15:15:09 Z    0 days
Testing same since   186660  2024-07-04 17:43:01 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Tobin Feldman-Fitzthum <tobin@linux.ibm.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   4e36bed812..cdffb638c8  cdffb638c85da87f6b9d61194513a24cd6a73c6a -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 21:56:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 21:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754023.1162310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPURF-0001AR-5I; Thu, 04 Jul 2024 21:56:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754023.1162310; Thu, 04 Jul 2024 21:56:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPURF-0001AK-2Z; Thu, 04 Jul 2024 21:56:25 +0000
Received: by outflank-mailman (input) for mailman id 754023;
 Thu, 04 Jul 2024 21:56:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPURD-0001AA-Ty; Thu, 04 Jul 2024 21:56:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPURD-0004RC-QJ; Thu, 04 Jul 2024 21:56:23 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPURD-0006lK-Cv; Thu, 04 Jul 2024 21:56:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPURD-0004KB-CX; Thu, 04 Jul 2024 21: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=5GiKWyEclNXnT70tf+KUSNWhcVL/OPmsK9kdCwTjeus=; b=OQcvWyxr3Ka4tdxyKGRo2kEe5E
	qpDeM8bOKvA12llFJTzpj+l+d3iNVzUsxQsS29bj+/wghgsRTdQv623Wsbl9BgBZ2VvZCmljBzn9e
	t4KLYg+dsllpBMqx/CTJgKYkaePXnz51bWRHcRdVkVD/5sw5liugusaRgC8fdBkE5l80=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186650-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186650: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl:xen-boot:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-pvshim:guest-localmigrate/x10:fail:heisenbug
    xen-unstable:test-armhf-armhf-examine:examine-iommu:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=63c66274d9934e0df7f4e3725c868ff2251b705f
X-Osstest-Versions-That:
    xen=63c66274d9934e0df7f4e3725c868ff2251b705f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 21:56:23 +0000

flight 186650 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186650/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl           8 xen-boot         fail in 186646 pass in 186650
 test-amd64-amd64-xl-pvshim   20 guest-localmigrate/x10     fail pass in 186646
 test-armhf-armhf-examine     13 examine-iommu              fail pass in 186646

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186646
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186646
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186646
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186646
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186646
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186646
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  63c66274d9934e0df7f4e3725c868ff2251b705f
baseline version:
 xen                  63c66274d9934e0df7f4e3725c868ff2251b705f

Last test of basis   186650  2024-07-04 07:47:32 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   fail    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Thu Jul 04 21:57:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 21:57:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754032.1162321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPUSU-0001pm-Jm; Thu, 04 Jul 2024 21:57:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754032.1162321; Thu, 04 Jul 2024 21: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 1sPUSU-0001pf-GK; Thu, 04 Jul 2024 21:57:42 +0000
Received: by outflank-mailman (input) for mailman id 754032;
 Thu, 04 Jul 2024 21:57:41 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPUST-0001oi-HB; Thu, 04 Jul 2024 21:57:41 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPUST-0004SK-GH; Thu, 04 Jul 2024 21:57:41 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPUST-0006vj-9b; Thu, 04 Jul 2024 21:57:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPUST-0005YC-9C; Thu, 04 Jul 2024 21: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=n1wlZvLoxEagFEA1QEFfPYLRABbWzp39mM9fXLiB51w=; b=k5FFhtUYGH/I2GN00tDnREIzeU
	cvikE7AaXgCqOr5aWkG1smSgkmlOrGEBtENDc8ezevdmTRRHl8/N6hWB7qBTs3qUZUoSKk68Px0pH
	+BV/2gH2N55SBqMpzjvS5kR+l08UZc46o4A2TPfdrRhntWUecdqfQ/JpwxsWXnebFdR0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186661-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186661: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=7878756565427b310b0307c0aa3f6d682133e1d1
X-Osstest-Versions-That:
    xen=56b77d7db03775b0abcfb23476f0abecb51f1de7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 04 Jul 2024 21:57:41 +0000

flight 186661 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186661/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  7878756565427b310b0307c0aa3f6d682133e1d1
baseline version:
 xen                  56b77d7db03775b0abcfb23476f0abecb51f1de7

Last test of basis   186653  2024-07-04 12:02:14 Z    0 days
Testing same since   186661  2024-07-04 19:00:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   56b77d7db0..7878756565  7878756565427b310b0307c0aa3f6d682133e1d1 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Jul 04 22:08:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 04 Jul 2024 22:08:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754041.1162331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPUck-0003XM-GP; Thu, 04 Jul 2024 22:08:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754041.1162331; Thu, 04 Jul 2024 22:08:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPUck-0003XF-Dl; Thu, 04 Jul 2024 22:08:18 +0000
Received: by outflank-mailman (input) for mailman id 754041;
 Thu, 04 Jul 2024 22:08:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=NKU0=OE=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1sPUcj-0003X7-7d
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 22:08:17 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7cddd59-3a51-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 00:08:14 +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 464M802C001828
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Thu, 4 Jul 2024 18:08:06 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 464M80FX001827;
 Thu, 4 Jul 2024 15:08:00 -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: e7cddd59-3a51-11ef-8776-851b0ebba9a2
Date: Thu, 4 Jul 2024 15:08:00 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org,
        Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
        Kelly Choi <kelly.choi@cloud.com>
Subject: Re: Serious AMD-Vi(?) issue
Message-ID: <ZocdQFCkH7p5nkiz@mattapan.m5p.com>
References: <c2ce4002-58d5-48a3-949c-3c361c78c0ac@suse.com>
 <ZhdNxWNpM0KCzz8E@mattapan.m5p.com>
 <2aa4d1f4-ff37-4f12-bfbb-3ef5ad3f6fdd@suse.com>
 <ZiDBc3ye2wqmBAfq@mattapan.m5p.com>
 <f0bdb386-0870-4468-846c-6c8a91eaf806@suse.com>
 <ZiH0G5kN6m+wlNjn@mattapan.m5p.com>
 <Zj7vkp4r0EY9rxT4@mattapan.m5p.com>
 <ZkHTC4RpUSpKj4wf@macbook>
 <Zn4BRxTcXKufonw5@mattapan.m5p.com>
 <ZoLwfUsSEJzcQ4kI@mattapan.m5p.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ZoLwfUsSEJzcQ4kI@mattapan.m5p.com>
X-Spam-Status: No, score=0.0 required=10.0 tests=KHOP_HELO_FCRDNS
	autolearn=unavailable autolearn_force=no version=4.0.0
X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on mattapan.m5p.com

On Mon, Jul 01, 2024 at 11:07:57AM -0700, Elliott Mitchell wrote:
> On Thu, Jun 27, 2024 at 05:18:15PM -0700, Elliott Mitchell wrote:
> > I'm rather surprised it was so long before the next system restart.  
> > Seems a quiet period as far as security updates go.  Good news is I made
> > several new observations, but I don't know how valuable these are.
> > 
> > On Mon, May 13, 2024 at 10:44:59AM +0200, Roger Pau Monn wrote:
> > > 
> > > Does booting with `iommu=no-intremap` lead to any issues being
> > > reported?
> > 
> > On boot there was in fact less.  Notably the "AMD-Vi" messages haven't
> > shown up at all.  I haven't stressed it very much yet, but previous
> > boots a message showed up the moment the MD-RAID1 driver was loaded.
> > 
> > 
> > I am though seeing two different messages now:
> > 
> > (XEN) CPU#: No irq handler for vector # (IRQ -#, LAPIC)
> > (XEN) IRQ# a=#[#,#] v=#[#] t=PCI-MSI s=#
> > 
> > These are to be appearing in pairs.  Multiple values show for each field,
> > though each field appears to vary between 2-3 different values.  There
> > are thousands of these messages showing up.
> 
> Some lucky timing so I've done some more experimentation and sampling.
> 
> The "(XEN) IRQ" line almost always shows up with the "(XEN) CPU" line.
> I notice it is possible to generate the first without the second, so this
> seems notable.  Every single "(XEN) CPU" line mentioned "LAPIC".
> 
> The small number (20) of lines where "(XEN) IRQ" did not show up, the
> "(XEN) CPU" line always ended with "(IRQ -2147483648, LAPIC)"
> 
> For the "t=" value out of 316 samples, 94 listed "PCI-MSI" while 222
> listed "PCI-MSI/-X".
> 
> For the IRQ, 72 occurred 126 times.  71, 73 and 108 occurred roughly 50
> times each. 109 and 111 occurred under 10 times.  Almost no other IRQ
> values appeared.
> 
> The "s=" value was "00000030" slightly more often than "00000010".  No
> other values have been observed so far.
> 
> The other values were didn't show too many patterns.
> 
> Most processors were mentioned roughly equally.  Several had fewer
> mentions, but not enough to seem significant.  I discovered processor 1
> did NOT show up.  Whereas processor 0 had an above average number of
> occurrences.  This seems notable as these 2 processors are both reserved
> exclusively for domain 0.

All of the patterns continue.  There are more reports on processor 0 than
any other processor, but not enough to look particularly suspicious.
What *does* look suspicious is the complete absence of reports from
processor 1.

> There have also been a few "spurious 8259A interrupt" lines.  So far
> there haven't been very many of these.  The processor and IRQ listed
> don't yet appear to show any patterns.  So far no IRQ has been listed
> twice.

IRQs 3-7 and 9-15 have each shown up once.  1-2 and 8 haven't shown up
so far.


Things look different enough to try reenabling Linux software RAID1.  I'm
going to continue monitoring closely, but so far it seems
"iommu=no-intremap" may in fact mitigate the issue with software RAID1.

This seems odd, but I'm simply reporting what I observe.  I would have
expected to see problem indications by now, yet there aren't any.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Fri Jul 05 00:55:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 00:55:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754072.1162371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPXEd-0006MR-Mn; Fri, 05 Jul 2024 00:55:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754072.1162371; Fri, 05 Jul 2024 00: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 1sPXEd-0006MK-KA; Fri, 05 Jul 2024 00:55:35 +0000
Received: by outflank-mailman (input) for mailman id 754072;
 Fri, 05 Jul 2024 00:55:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPXEc-0006MA-Vc; Fri, 05 Jul 2024 00:55:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPXEc-0008EI-TI; Fri, 05 Jul 2024 00:55:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPXEc-0000RW-LH; Fri, 05 Jul 2024 00:55:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPXEc-0005AC-Kj; Fri, 05 Jul 2024 00:55:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=0REteKmsaVRN3FR8CQVJD9wV+af67fgMy0oOW+Thv8I=; b=YAs+BeZLQwcjlUEoevXfAZrdlk
	pUI8Pe94Qxpbm99INyKyQfn/j/yFyb9x2RopHCAvv/BphGtqIL/xCTW8upvJCPB7NbT/6aQGyhuqD
	WjaPhnNYsc1xEftUWV2DmGeOFZni8VWs8xhtcGxnTuHqDTnbfpAFKnS3HsRSCUVTS4XU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186669-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186669: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=6852f6984bdab86a1662e89e1ef0f3abc39559b6
X-Osstest-Versions-That:
    ovmf=cdffb638c85da87f6b9d61194513a24cd6a73c6a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 00:55:34 +0000

flight 186669 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186669/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 6852f6984bdab86a1662e89e1ef0f3abc39559b6
baseline version:
 ovmf                 cdffb638c85da87f6b9d61194513a24cd6a73c6a

Last test of basis   186660  2024-07-04 17:43:01 Z    0 days
Testing same since   186669  2024-07-04 20:12:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  "Lee, Chun-Yi" <jlee@suse.com>
  Chun-Yi Lee <jlee@suse.com>
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   cdffb638c8..6852f6984b  6852f6984bdab86a1662e89e1ef0f3abc39559b6 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 03:18:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 03:18:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754097.1162411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPZSF-0000Lm-94; Fri, 05 Jul 2024 03:17:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754097.1162411; Fri, 05 Jul 2024 03: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 1sPZSF-0000Lf-5e; Fri, 05 Jul 2024 03:17:47 +0000
Received: by outflank-mailman (input) for mailman id 754097;
 Fri, 05 Jul 2024 03:17:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPZSE-0000LV-As; Fri, 05 Jul 2024 03:17:46 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPZSE-0005V2-9i; Fri, 05 Jul 2024 03:17:46 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPZSE-0006ga-1Q; Fri, 05 Jul 2024 03:17:46 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPZSE-0001bl-0v; Fri, 05 Jul 2024 03:17: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=2W33h6VPDplg7pDTfK5de0mGRGCXXakq05sRHr2toxc=; b=tK0y6vhyf4ixU2GpeX3oIxe+xE
	ROxU9x+dCg+23hAwZYKQwQxBi1uM9/uzoT6XtFm2pa+T8YBUzmxMUTU/fSrPFxiB9coqDXmWuaNX6
	t0sbD75hcWDz+0bAwnMbbQxS5hL2HxBEXiZzcTWAAMN1AwIHu9TJO/mMeU8A8kTZ06wo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186678-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186678: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=9389b9a208cc5c7d9b055ea06d92cc4903f705ee
X-Osstest-Versions-That:
    ovmf=6852f6984bdab86a1662e89e1ef0f3abc39559b6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 03:17:46 +0000

flight 186678 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186678/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 9389b9a208cc5c7d9b055ea06d92cc4903f705ee
baseline version:
 ovmf                 6852f6984bdab86a1662e89e1ef0f3abc39559b6

Last test of basis   186669  2024-07-04 20:12:59 Z    0 days
Testing same since   186678  2024-07-05 01:11:15 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexey Kardashevskiy <aik@amd.com>
  Dun Tan <dun.tan@intel.com>
  Xiaoyao Li <xiaoyao.li@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   6852f6984b..9389b9a208  9389b9a208cc5c7d9b055ea06d92cc4903f705ee -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 04:01:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 04:01:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754106.1162420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPa8s-00068m-Ho; Fri, 05 Jul 2024 04:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754106.1162420; Fri, 05 Jul 2024 04: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 1sPa8s-00068f-FB; Fri, 05 Jul 2024 04:01:50 +0000
Received: by outflank-mailman (input) for mailman id 754106;
 Fri, 05 Jul 2024 04:01:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPa8r-00068V-GO; Fri, 05 Jul 2024 04:01:49 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPa8r-0006Mo-As; Fri, 05 Jul 2024 04:01:49 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPa8r-0007rP-06; Fri, 05 Jul 2024 04:01:49 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPa8q-0000rq-Vx; Fri, 05 Jul 2024 04:01: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=xQOqTsgaltxtZWsLZOUGFTSSJHQ2ABBGXqojstdTnG8=; b=6+eQcbhqKXPtR4OohortqNqYY3
	7+Mn4F90tEygmER4rB3o9HYCUKyvHYCpxisZjLingq1DvB+Tdj+h7e9pBAlTbhjQK+tvNjn1vcqp1
	93V1cALVJzcX3a8oUlE1+Jm2gbKIo3g/HMwi5N3jcL9QYz2SmMvkSXUOG9DdEpH1XjII=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186659-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186659: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=795c58e4c7fc6163d8fb9f2baa86cfe898fa4b19
X-Osstest-Versions-That:
    linux=9903efbddba0d14133b5a3c75088b558d2e34ac3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 04:01:48 +0000

flight 186659 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186659/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-multivcpu  8 xen-boot        fail in 186647 pass in 186659
 test-armhf-armhf-libvirt-vhd  8 xen-boot         fail in 186647 pass in 186659
 test-armhf-armhf-xl-rtds      8 xen-boot                   fail pass in 186647
 test-armhf-armhf-libvirt      8 xen-boot                   fail pass in 186647

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-raw       8 xen-boot            fail in 186647 like 186620
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 186647 like 186620
 test-armhf-armhf-xl-rtds    15 migrate-support-check fail in 186647 never pass
 test-armhf-armhf-xl-rtds 16 saverestore-support-check fail in 186647 never pass
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 186647 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186620
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186620
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                795c58e4c7fc6163d8fb9f2baa86cfe898fa4b19
baseline version:
 linux                9903efbddba0d14133b5a3c75088b558d2e34ac3

Last test of basis   186620  2024-07-01 17:14:02 Z    3 days
Failing since        186626  2024-07-02 05:45:15 Z    2 days    6 attempts
Testing same since   186647  2024-07-04 03:11:35 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alison Schofield <alison.schofield@intel.com>
  Babu Moger <babu.moger@amd.com>
  Chen Ni <nichen@iscas.ac.cn>
  Christian Brauner <brauner@kernel.org>
  Dan Williams <dan.j.williams@intel.com>
  Dave Jiang <dave.jiang@intel.com>
  David Howells <dhowells@redhat.com>
  David Sterba <dsterba@suse.com>
  Gao Xiang <hsiangkao@linux.alibaba.com>
  Hans Verkuil <hverkuil-cisco@xs4all.nl>
  Hao Ge <gehao@kylinos.cn>
  Huang Xiaojia <huangxiaojia2@huawei.com>
  Jann Horn <jannh@google.com>
  Jens Axboe <axboe@kernel.dk>
  Li Ming <ming4.li@intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Ming Lei <ming.lei@redhat.com>
  Naohiro Aota <naohiro.aota@wdc.com>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Sandeep Dhavale <dhavale@google.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Steven Rostedt (Google) <rostedt@goodmis.org>
  Wenchao Hao <haowenchao22@gmail.com>
  Xingui Yang <yangxingui@huawei.com>
  Yao Xingtao <yaoxt.fnst@fujitsu.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   9903efbddba0..795c58e4c7fc  795c58e4c7fc6163d8fb9f2baa86cfe898fa4b19 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 05:51:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 05:51:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.753964.1162449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPbr2-0002JY-F4; Fri, 05 Jul 2024 05:51:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 753964.1162449; Fri, 05 Jul 2024 05: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 1sPbr2-0002JR-Az; Fri, 05 Jul 2024 05:51:32 +0000
Received: by outflank-mailman (input) for mailman id 753964;
 Thu, 04 Jul 2024 18:48: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=HQi6=OE=amd.com=Edgar.Iglesias@srs-se1.protection.inumbo.net>)
 id 1sPRVo-0001AB-Cy
 for xen-devel@lists.xenproject.org; Thu, 04 Jul 2024 18:48:56 +0000
Received: from outbound.mail.protection.outlook.com
 (mail-mw2nam12on20601.outbound.protection.outlook.com
 [2a01:111:f403:200a::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0df30882-3a36-11ef-bbfa-fd08da9f4363;
 Thu, 04 Jul 2024 20:48:52 +0200 (CEST)
Received: from PH0PR07CA0059.namprd07.prod.outlook.com (2603:10b6:510:e::34)
 by DS0PR12MB7995.namprd12.prod.outlook.com (2603:10b6:8:14e::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.25; Thu, 4 Jul
 2024 18:48:47 +0000
Received: from SN1PEPF000252A2.namprd05.prod.outlook.com
 (2603:10b6:510:e:cafe::4a) by PH0PR07CA0059.outlook.office365.com
 (2603:10b6:510:e::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.30 via Frontend
 Transport; Thu, 4 Jul 2024 18:48:47 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF000252A2.mail.protection.outlook.com (10.167.242.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7741.18 via Frontend Transport; Thu, 4 Jul 2024 18:48: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; Thu, 4 Jul
 2024 13:48: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: 0df30882-3a36-11ef-bbfa-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XVOpyD+PvdgEJKM60hdhvnuEj1CALD8DYMa5APVVmdkG4DROjiVRaIF8yQDrvrMceTCk7a+QUWHd/nw2utwP+q/tw+V5rxTkzmSeJQvBmg3obQvhFqKycw4/zvSIlCz2CtGKwPEY1ZtppQnkQwZbn/ynWVTnHui9+YOUdCOZaw1hcW7nzprLsWEEvFLAjMof48T23Y31jtWNZ8yQwY8PBh5NBBjdKSomuICoQDJ1L0e6NmLCCm2irigl0U7oz0bSohMyk7Wpq6AwJSxRflb6QCisuCVFUQtqdekn0ubyTXf4wdPCoh1m8iQS8GjTrpEaubmIjzKwLhihEyba/cu/jA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZgFO+CJcjsUoi7CKvUCcl5rizxjr5Xw2OZ/mnxTWvdc=;
 b=PqH+jGSMHvnx2sQHgXvuw/6viBP3VI6wKW2c9tu4/tr69rfURkwYl3OFWqwa3ohqK4h5zsCTUedwnf2YXX1/tlMOFcTpqJRfKX7qv24E/ziPierbBtG65B2BxdZsqwH8GxxNPuTxLMPfYAlE5Immr10cbVqwNeB/RB9FMYJhwzdEO+kRtRi+yEqSezk87P9JWAANJnidb829jwijyTez2dV8i9qIf2R9eSCw3Bebqhed6CoLlmM3DZOu08omp21F+v5yh9az3HMB9+nqIIm83GE+Fxsv30YX/0mTISq1QyIqnyrdJfW+rkebsK0C8HNzFbQ/alcnqChsd8lCm7Um7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=linaro.org smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZgFO+CJcjsUoi7CKvUCcl5rizxjr5Xw2OZ/mnxTWvdc=;
 b=U2WwfuD69pp7kjqCmM5VZHAKg5Qs9w8t6hjTO4E5momBZbLxeO0tA91gw8nFsUFogcgZsHXrBKEaoUCZgOmkWzVVNmi4GRvG6HUt8pG1qEN6a+nglEniiAoxenA6AgjSgyR8+isfqDebfisrWmzCv9mCqopcwjy/W3DK2xLfEwM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
Date: Thu, 4 Jul 2024 21:48:37 +0300
From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
To: Alex =?iso-8859-1?Q?Benn=E9e?= <alex.bennee@linaro.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, "Edgar E. Iglesias"
	<edgar.iglesias@gmail.com>, <qemu-devel@nongnu.org>,
	<sstabellini@kernel.org>, <paul@xen.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v1 2/2] xen: mapcache: Fix unmapping of first entries in
 buckets
Message-ID: <ZobuhcLHqUEy_bQs@toto>
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com>
 <20240701224421.1432654-3-edgar.iglesias@gmail.com>
 <ZoawbAnukIBkYWCw@l14>
 <87wmm1m7i3.fsf@draig.linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <87wmm1m7i3.fsf@draig.linaro.org>
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: SN1PEPF000252A2:EE_|DS0PR12MB7995:EE_
X-MS-Office365-Filtering-Correlation-Id: 5b88fb85-c7c4-414a-54f1-08dc9c59f00c
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:
	=?iso-8859-1?Q?lSTjJ81PxN0lSR9gfPK7O5MTICJw5wS8Xi5eYX/jjs6tdK24I3itEjkkSF?=
 =?iso-8859-1?Q?clnlExTr72Eo9gvIxku5nB6b1rwYEV7j+UAy7id3sN1BJ9Q4coaNNQcosC?=
 =?iso-8859-1?Q?6n4CYDdO9+ZHjcAm+WcTKq7vQZ9iYi26A9LqMOKq9cNKhD0cTI62doDh7S?=
 =?iso-8859-1?Q?Cklyxa5rONVz9I1UHaEcmhxhk9swLxjPy16W9/uu+bIBZljeFsJfpAdgkJ?=
 =?iso-8859-1?Q?47rLbBvAUNAhwrdZaM07ChQReGPNeqyHer7SLBvincYSrD9phWgyiCpq3/?=
 =?iso-8859-1?Q?xnrTLvJGBteGKH6cPzYgaLzvGtXCZwK06Tdh4Pc/yd+Y2POD5y4+2FENsg?=
 =?iso-8859-1?Q?iQqpy+cWfr7pSZnTk8ArZ6v+wc5MtSXkZ21J5iamlHBAWqvfknOVc89h3f?=
 =?iso-8859-1?Q?Ca/a3yn4//uA1h/9EQ1iH+483kSiY8Ocj8B+GcdpWcbQCk3zNdH1zZVT6V?=
 =?iso-8859-1?Q?hUTAx9ixkwieLexdzEvd9xo2CI5p7SgfzWejrtjMtoY1bgyvKck3OYUKC4?=
 =?iso-8859-1?Q?c55EhSdpJO/jP8I9crlOuZF87g6nGt6f5xi59APnzniHq2qb5wTH/6awrF?=
 =?iso-8859-1?Q?F9rm41qEgya+JzoafrfnJ5zz7HUNz0NaJQCn3cpYs/UW6uWIq+cA7tIIsd?=
 =?iso-8859-1?Q?rXHuihd0R7HfNUe3v1DusaeAzrcMyUW/HNWRhLKmvNrT3rQ1RdvKhD6lW8?=
 =?iso-8859-1?Q?am3n10KpYJh5BCcMCOEVdEPsKj/Auj/O98pVvuOOyA6RFqydDC6aTgRtpY?=
 =?iso-8859-1?Q?vhdF+dJ5VlcgAC9HPTekbhVGMlB5n5D0SRYg+O9QOJoN81JRVRLGKwHbJY?=
 =?iso-8859-1?Q?B/IZ9WKwzTWPqtvyYSe2+eoRaVUnTabC2g3q/SYsXOnk6OqY20LZHzc35D?=
 =?iso-8859-1?Q?RR2yRbtu4ar4ysu3okLpPKQelnIpT7MLdyBc4WS/0rG675xKRbYINj2KNe?=
 =?iso-8859-1?Q?b+r8PXLfwNhuSS/EKZHjRTXCHiX9UOaxeEMevpm0Uimp89K1phggKkvE44?=
 =?iso-8859-1?Q?j4N2WXfD9ytCiOuvuJO6kLeG7t5wqUvptH+4L7/zrimnveq+bm07DhueP2?=
 =?iso-8859-1?Q?DD8uqBAglM1XycGE4ksnebbdWZ8RAzc8B4UEEW4pQF6z44Fy0XqdbvhDlY?=
 =?iso-8859-1?Q?yaEbBrtTNbI1LZjpBUgTocT+sLqrSEgAWcMSAnjYjSLCL26z53TcD0nEf9?=
 =?iso-8859-1?Q?o+gZMyc2zbasv4fzjRoXlEsv7UNATcyA5ltjOuIG3Zu4lMt9ut6a70MjSb?=
 =?iso-8859-1?Q?PDe9APxCxxcFbngqUhpMgoruiRFEAjnIclESvjHN3rwPn8ah2U1SA7Jomj?=
 =?iso-8859-1?Q?OVzZjv83phHzjBsnud697/9/FZWEQqxm6OMV45SHXbUd1CdPtPxRFPzXlG?=
 =?iso-8859-1?Q?v8kTKSphElnSQmiSRy/WwZ+bEZVFUBMnmNbdVCFbakzLHcYAxADjE6SP6o?=
 =?iso-8859-1?Q?mgsp3o4Gln+RxwV+UFnQcFNTSKkbIQaKSgBQeCGUDokzIdt74LkiAAUI1h?=
 =?iso-8859-1?Q?0BBV3rjTLUdkWO0+adHOzf?=
X-Forefront-Antispam-Report:
	CIP:165.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: 04 Jul 2024 18:48:47.2192
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b88fb85-c7c4-414a-54f1-08dc9c59f00c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000252A2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7995

On Thu, Jul 04, 2024 at 05:44:52PM +0100, Alex Benne wrote:
> Anthony PERARD <anthony.perard@vates.tech> writes:
> 
> > On Tue, Jul 02, 2024 at 12:44:21AM +0200, Edgar E. Iglesias wrote:
> >> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> >> 
> >> This fixes the clobbering of the entry->next pointer when
> >> unmapping the first entry in a bucket of a mapcache.
> >> 
> >> Fixes: 123acd816d ("xen: mapcache: Unmap first entries in buckets")
> >> Reported-by: Anthony PERARD <anthony.perard@vates.tech>
> >> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> >> ---
> >>  hw/xen/xen-mapcache.c | 12 +++++++++++-
> >>  1 file changed, 11 insertions(+), 1 deletion(-)
> >> 
> >> diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> >> index 5f23b0adbe..18ba7b1d8f 100644
> >> --- a/hw/xen/xen-mapcache.c
> >> +++ b/hw/xen/xen-mapcache.c
> >> @@ -597,7 +597,17 @@ static void xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
> >>          pentry->next = entry->next;
> >>          g_free(entry);
> >>      } else {
> >> -        memset(entry, 0, sizeof *entry);
> >> +        /*
> >> +         * Invalidate mapping but keep entry->next pointing to the rest
> >> +         * of the list.
> >> +         *
> >> +         * Note that lock is already zero here, otherwise we don't unmap.
> >> +         */
> >> +        entry->paddr_index = 0;
> >> +        entry->vaddr_base = NULL;
> >> +        entry->valid_mapping = NULL;
> >> +        entry->flags = 0;
> >> +        entry->size = 0;
> >
> > This kind of feels like mc->entry should be an array of pointer rather
> > than an array of MapCacheEntry but that seems to work well enough and
> > not the first time entries are been cleared like that.
> 
> The use of a hand rolled list is a bit of a concern considering QEMU and
> Glib both provide various abstractions used around the rest of the code
> base. The original patch that introduces the mapcache doesn't tell me
> much about access patterns for the cache, just that it is trying to
> solve memory exhaustion issues with lots of dynamic small mappings.
> 
> Maybe a simpler structure is desirable?
> 
> We also have an interval tree implementation ("qemu/interval-tree.h") if
> what we really want is a sorted tree of memory that can be iterated
> locklessly.
> 

Yes, it would be interesting to benchmark other options.
I agree that we should at minimum reuse existing lists/hash tables.

We've also had some discussions around removing it partially or alltogether but
there are some concerns around that. We're going to need something to
keep track of grants. For 32-bit hosts, it's a problem to exhaust virtual
address-space if mapping all of the guest (are folks still using 32-bit hosts?).
There may be other issues aswell.

Some benefits are that we'll remove some of the complexity and latency for mapping
and unmapping stuff continously.

Cheers,
Edgar


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 06:59:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 06:59:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754141.1162471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPcuD-0001Bn-4o; Fri, 05 Jul 2024 06:58:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754141.1162471; Fri, 05 Jul 2024 06:58:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPcuD-0001Bg-0z; Fri, 05 Jul 2024 06:58:53 +0000
Received: by outflank-mailman (input) for mailman id 754141;
 Fri, 05 Jul 2024 06:58:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPcuC-0001BW-Bx; Fri, 05 Jul 2024 06:58:52 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPcuC-0001Xs-71; Fri, 05 Jul 2024 06:58:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPcuB-0006hz-UK; Fri, 05 Jul 2024 06:58:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPcuB-0003pv-Tv; Fri, 05 Jul 2024 06:58:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Message-Id:Subject:To;
	bh=2BagZuWdsnkwhwJ+BbLDvM0+coLFgUwKaX6QyiX+aR4=; b=XDaGRWUCsERRH6CVhUbcqMiquR
	7N+yD40utj/3ZOXGk+mR/Q//J8NAKhpeu6/pcMyOEOY0+h6y2CTZbUrq/+dYDYjRl4w/JLw/UFH7S
	vuV2eya6X6zg8bnzWI9sLB2HK0JlMRZCb3qaxMI52s9K0WFpXiQcB/UaKL1WIq6JCySY=;
To: xen-devel@lists.xenproject.org
Subject: [xen-4.18-testing bisection] complete build-arm64
Message-Id: <E1sPcuB-0003pv-Tv@osstest.test-lab.xenproject.org>
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 06:58:51 +0000

branch xen-4.18-testing
xenbranch xen-4.18-testing
job build-arm64
testid xen-build

Tree: ovmf git://xenbits.xen.org/osstest/ovmf.git
Tree: qemuu git://xenbits.xen.org/qemu-xen.git
Tree: seabios git://xenbits.xen.org/osstest/seabios.git
Tree: xen git://xenbits.xen.org/xen.git

*** Found and reproduced problem changeset ***

  Bug is in tree:  xen git://xenbits.xen.org/xen.git
  Bug introduced:  c9f50d2c5f29b630603e2b95f29e5b6e416a6187
  Bug not present: 2b3bf02c4f5e44d7d7bd3636530c9ebc837dea87
  Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/186689/


  commit c9f50d2c5f29b630603e2b95f29e5b6e416a6187
  Author: Jan Beulich <jbeulich@suse.com>
  Date:   Thu Jul 4 14:11:57 2024 +0200
  
      pirq_cleanup_check() leaks
      
      Its original introduction had two issues: For one the "common" part of
      the checks (carried out in the macro) was inverted. And then after
      removal from the radix tree the structure wasn't scheduled for freeing.
      (All structures still left in the radix tree would be freed upon domain
      destruction, though.)
      
      For the freeing to be safe even if it didn't use RCU (i.e. to avoid use-
      after-free), re-arrange checks/operations in evtchn_close(), such that
      the pointer wouldn't be used anymore after calling pirq_cleanup_check()
      (noting that unmap_domain_pirq_emuirq() itself calls the function in the
      success case).
      
      Fixes: c24536b636f2 ("replace d->nr_pirqs sized arrays with radix tree")
      Fixes: 79858fee307c ("xen: fix hvm_domain_use_pirq's behavior")
      Signed-off-by: Jan Beulich <jbeulich@suse.com>
      Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
      master commit: daa90dfea9175c07f13d1a2d901857b2dd14d080
      master date: 2024-07-02 08:35:56 +0200


For bisection revision-tuple graph see:
   http://logs.test-lab.xenproject.org/osstest/results/bisect/xen-4.18-testing/build-arm64.xen-build.html
Revision IDs in each graph node refer, respectively, to the Trees above.

----------------------------------------
Running cs-bisection-step --graph-out=/home/logs/results/bisect/xen-4.18-testing/build-arm64.xen-build --summary-out=tmp/186689.bisection-summary --basis-template=186514 --blessings=real,real-bisect,real-retry xen-4.18-testing build-arm64 xen-build
Searching for failure / basis pass:
 186655 fail [host=rochester1] / 186514 ok.
Failure / basis pass flights: 186655 / 186514
Tree: ovmf git://xenbits.xen.org/osstest/ovmf.git
Tree: qemuu git://xenbits.xen.org/qemu-xen.git
Tree: seabios git://xenbits.xen.org/osstest/seabios.git
Tree: xen git://xenbits.xen.org/xen.git
Latest 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 7e636b8a16412d4f0d94b2b24d7ebcd2c749afff
Basis pass dc002d4f2d76bdd826359a3dd608d9bc621fcb47 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c e95d30f9e5eed0c5d9dbf72d4cc3ae373152ab10
Generating revisions with ./adhoc-revtuple-generator  git://xenbits.xen.org/osstest/ovmf.git#dc002d4f2d76bdd826359a3dd608d9bc621fcb47-592725d2291b9844cfd9187111e904c6383e2000 git://xenbits.xen.org/qemu-xen.git#0df9387c8983e1b1e72d8c574356f572342c03e6-0df9387c8983e1b1e72d8c574356f572342c03e6 git://xenbits.xen.org/osstest/seabios.git#e5f2e4c69643bc3cd385306a9e5d29e11578148c-e5f2e4c69643bc3cd385306a9e5d29e11578148c git://xenbits.xen.org/xen.git#e95d30f9e5eed0c5d9dbf72d4cc3ae373152ab10-7e636b8a16412\
 d4f0d94b2b24d7ebcd2c749afff
Loaded 10001 nodes in revision graph
Searching for test results:
 186514 pass dc002d4f2d76bdd826359a3dd608d9bc621fcb47 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c e95d30f9e5eed0c5d9dbf72d4cc3ae373152ab10
 186655 fail 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 7e636b8a16412d4f0d94b2b24d7ebcd2c749afff
 186663 pass dc002d4f2d76bdd826359a3dd608d9bc621fcb47 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c e95d30f9e5eed0c5d9dbf72d4cc3ae373152ab10
 186668 fail 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 7e636b8a16412d4f0d94b2b24d7ebcd2c749afff
 186672 pass ff1c4fa1680d3f9a5f2be3e0048d2de15a5846fb 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c e95d30f9e5eed0c5d9dbf72d4cc3ae373152ab10
 186673 pass 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 77cf215157d267a7776f3c4ec32e89064dcd84cd
 186675 fail 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 8e51c8f1d45fad242a315fa17ba3582c02e66840
 186676 pass 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 0dc5fbee17cd2bcb1aa6a1cf420dd80381587de8
 186677 pass 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 2b3bf02c4f5e44d7d7bd3636530c9ebc837dea87
 186679 fail 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c c9f50d2c5f29b630603e2b95f29e5b6e416a6187
 186681 pass 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 2b3bf02c4f5e44d7d7bd3636530c9ebc837dea87
 186686 fail 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c c9f50d2c5f29b630603e2b95f29e5b6e416a6187
 186687 pass 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 2b3bf02c4f5e44d7d7bd3636530c9ebc837dea87
 186689 fail 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c c9f50d2c5f29b630603e2b95f29e5b6e416a6187
Searching for interesting versions
 Result found: flight 186514 (pass), for basis pass
 For basis failure, parent search stopping at 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 2b3bf02c4f5e44d7d7bd3636530c9ebc837dea87, results HASH(0x557dfbd64f70) HASH(0x557dfbd6beb0) HASH(0x557dfbd6fa40) For basis failure, parent search stopping at 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 0dc5fbee17cd2bcb1aa6a1cf420dd80381587de8, results \
 HASH(0x557dfbd64df0) For basis failure, parent search stopping at 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 77cf215157d267a7776f3c4ec32e89064dcd84cd, results HASH(0x557dfbd5fd38) For basis failure, parent search stopping at ff1c4fa1680d3f9a5f2be3e0048d2de15a5846fb 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c e95d30f9e5eed0c5d9dbf72d4cc3ae373152ab10, results HASH(0x557dfbd5cc28) F\
 or basis failure, parent search stopping at dc002d4f2d76bdd826359a3dd608d9bc621fcb47 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c e95d30f9e5eed0c5d9dbf72d4cc3ae373152ab10, results HASH(0x557dfbd556e8) HASH(0x557dfbd5c7a8) Result found: flight 186655 (fail), for basis failure (at ancestor ~2458)
 Repro found: flight 186663 (pass), for basis pass
 Repro found: flight 186668 (fail), for basis failure
 0 revisions at 592725d2291b9844cfd9187111e904c6383e2000 0df9387c8983e1b1e72d8c574356f572342c03e6 e5f2e4c69643bc3cd385306a9e5d29e11578148c 2b3bf02c4f5e44d7d7bd3636530c9ebc837dea87
No revisions left to test, checking graph state.
 Result found: flight 186677 (pass), for last pass
 Result found: flight 186679 (fail), for first failure
 Repro found: flight 186681 (pass), for last pass
 Repro found: flight 186686 (fail), for first failure
 Repro found: flight 186687 (pass), for last pass
 Repro found: flight 186689 (fail), for first failure

*** Found and reproduced problem changeset ***

  Bug is in tree:  xen git://xenbits.xen.org/xen.git
  Bug introduced:  c9f50d2c5f29b630603e2b95f29e5b6e416a6187
  Bug not present: 2b3bf02c4f5e44d7d7bd3636530c9ebc837dea87
  Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/186689/


  commit c9f50d2c5f29b630603e2b95f29e5b6e416a6187
  Author: Jan Beulich <jbeulich@suse.com>
  Date:   Thu Jul 4 14:11:57 2024 +0200
  
      pirq_cleanup_check() leaks
      
      Its original introduction had two issues: For one the "common" part of
      the checks (carried out in the macro) was inverted. And then after
      removal from the radix tree the structure wasn't scheduled for freeing.
      (All structures still left in the radix tree would be freed upon domain
      destruction, though.)
      
      For the freeing to be safe even if it didn't use RCU (i.e. to avoid use-
      after-free), re-arrange checks/operations in evtchn_close(), such that
      the pointer wouldn't be used anymore after calling pirq_cleanup_check()
      (noting that unmap_domain_pirq_emuirq() itself calls the function in the
      success case).
      
      Fixes: c24536b636f2 ("replace d->nr_pirqs sized arrays with radix tree")
      Fixes: 79858fee307c ("xen: fix hvm_domain_use_pirq's behavior")
      Signed-off-by: Jan Beulich <jbeulich@suse.com>
      Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
      master commit: daa90dfea9175c07f13d1a2d901857b2dd14d080
      master date: 2024-07-02 08:35:56 +0200

Revision graph left in /home/logs/results/bisect/xen-4.18-testing/build-arm64.xen-build.{dot,ps,png,html,svg}.
----------------------------------------
186689: tolerable ALL FAIL

flight 186689 xen-4.18-testing real-bisect [real]
http://logs.test-lab.xenproject.org/osstest/logs/186689/

Failures :-/ but no regressions.

Tests which did not succeed,
including tests which could not be run:
 build-arm64                   6 xen-build               fail baseline untested


jobs:
 build-arm64                                                  fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 10:45:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 10:45:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754210.1162522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPgQm-0002AV-Ud; Fri, 05 Jul 2024 10:44:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754210.1162522; Fri, 05 Jul 2024 10: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 1sPgQm-0002AN-QD; Fri, 05 Jul 2024 10:44:44 +0000
Received: by outflank-mailman (input) for mailman id 754210;
 Fri, 05 Jul 2024 10:44:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPgQl-0002AB-Hw; Fri, 05 Jul 2024 10:44:43 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPgQl-0006CG-Fk; Fri, 05 Jul 2024 10:44:43 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPgQl-00080v-74; Fri, 05 Jul 2024 10:44:43 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPgQl-0005cy-6d; Fri, 05 Jul 2024 10:44: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kry5vOeO0fyhc/szHjc48oM7x6+TJrVURNV2xxgtpRo=; b=gMaeOsnEfJIgeOSgEyMtFWvd4Y
	1RHt/cfADlzhYvIa27ypDGq5JGFzymF65ATwjbMUq7mYhu/EZCwXu2ntAjspAKWCOKq3qQhfaF7Mn
	rtf7bmApgwK9Za6RTPRsGFSpS3xDuJTYdRQ3UvPlYwXcLLIOgqAwCyawAWEL68qBTE7Y=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186694-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186694: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=bef0d333dc4fccdfc75e4be31e067b467a9a4093
X-Osstest-Versions-That:
    ovmf=9389b9a208cc5c7d9b055ea06d92cc4903f705ee
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 10:44:43 +0000

flight 186694 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186694/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 bef0d333dc4fccdfc75e4be31e067b467a9a4093
baseline version:
 ovmf                 9389b9a208cc5c7d9b055ea06d92cc4903f705ee

Last test of basis   186678  2024-07-05 01:11:15 Z    0 days
Testing same since   186694  2024-07-05 08:41:11 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jiaxin Wu <jiaxin.wu@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   9389b9a208..bef0d333dc  bef0d333dc4fccdfc75e4be31e067b467a9a4093 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 11:26:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 11:26:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754230.1162537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPh4v-00074U-So; Fri, 05 Jul 2024 11:26:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754230.1162537; Fri, 05 Jul 2024 11:26:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPh4v-00074N-Q1; Fri, 05 Jul 2024 11:26:13 +0000
Received: by outflank-mailman (input) for mailman id 754230;
 Fri, 05 Jul 2024 11:26:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPh4t-00074D-Qf; Fri, 05 Jul 2024 11:26:11 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPh4t-0006vG-OI; Fri, 05 Jul 2024 11:26:11 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPh4t-0001Ch-Ci; Fri, 05 Jul 2024 11:26:11 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPh4t-00022G-CF; Fri, 05 Jul 2024 11:26: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=6UmYd79DUR/4ocF0JD1xpnZWB8CfbBNpJQA/ycmjfrs=; b=jOBW1J7noKAN2twSNKLhrC1O2R
	Sy1ga8OitVzG0mCMxndJV1mtARRQ4/JFW5aUmwCQBnCvcxnrPUCsbKI6noeE99e17IDqaNjlrrXba
	IAVa/sYRsBty7neCiGKnlM2y32j9K6rSY5+nxyUKpV761e/tsbxXjBpN8bJ4BBY0sZNY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186666-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.18-testing test] 186666: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.18-testing:test-armhf-armhf-xl-credit2:host-ping-check-xen:fail:heisenbug
    xen-4.18-testing:test-armhf-armhf-xl-multivcpu:xen-boot:fail:heisenbug
    xen-4.18-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=45c5333935628e7c80de0bd5a9d9eff50b305b16
X-Osstest-Versions-That:
    xen=e95d30f9e5eed0c5d9dbf72d4cc3ae373152ab10
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 11:26:11 +0000

flight 186666 xen-4.18-testing real [real]
flight 186696 xen-4.18-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186666/
http://logs.test-lab.xenproject.org/osstest/logs/186696/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit2  10 host-ping-check-xen fail pass in 186696-retest
 test-armhf-armhf-xl-multivcpu  8 xen-boot           fail pass in 186696-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt   16 saverestore-support-check fail blocked in 186514
 test-armhf-armhf-xl-credit2 15 migrate-support-check fail in 186696 never pass
 test-armhf-armhf-xl-credit2 16 saverestore-support-check fail in 186696 never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check fail in 186696 never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check fail in 186696 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186514
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186514
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186514
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186514
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186514
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  45c5333935628e7c80de0bd5a9d9eff50b305b16
baseline version:
 xen                  e95d30f9e5eed0c5d9dbf72d4cc3ae373152ab10

Last test of basis   186514  2024-06-26 12:06:49 Z    8 days
Failing since        186655  2024-07-04 12:37:00 Z    0 days    2 attempts
Testing same since   186666  2024-07-04 19:38:36 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@vates.tech>
  Christian Lindig <christian.lindig@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Matthew Barnes <matthew.barnes@cloud.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   e95d30f9e5..45c5333935  45c5333935628e7c80de0bd5a9d9eff50b305b16 -> stable-4.18


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 12:18:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 12:18:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754261.1162615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPhtA-0005ah-IX; Fri, 05 Jul 2024 12:18:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754261.1162615; Fri, 05 Jul 2024 12:18: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 1sPhtA-0005aa-Fw; Fri, 05 Jul 2024 12:18:08 +0000
Received: by outflank-mailman (input) for mailman id 754261;
 Fri, 05 Jul 2024 12:18: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=Y6Fx=OF=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sPht9-0005aU-B3
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 12:18:07 +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 a1c13b80-3ac8-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 14:18:05 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a77cc44f8aaso35560566b.3
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 05:18:05 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-590377a7e8bsm281882a12.14.2024.07.05.05.18.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 05: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: a1c13b80-3ac8-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720181885; x=1720786685; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=P4IDzQAbvj9N+eKCXWfZT6OdcE5NhRGUpcGrlOOsteY=;
        b=mRFGJ4yVBr8VxS+lbtfS150VvgWGVcHIT5CzTmcVpIXTAY0fs33wQJZJR/mo7DrMXq
         7I1sbHjzX3SCXnGkV7wJ7ri7pHaV4/zESzvAx2ZVaJ4TKRJmFJ50dmzN6Xdu9v1Cd+2n
         sHUSlhWgqKiG6GgX4gGjh7vhnG9grGwae0IuTRsXrU0Y2/8/7S4iHJSrxgYtwdRfBvcL
         Hvl9iNHwP89OJxxtTCCAM/aI0TPInVubfyZvQ9l8NUfJEu801zX3+OGsie66J9JbI5pf
         5E3A9wfu5nJ94+xB4OdzmM5AX5boa6/vA2dDGmM5VuDJzaGuNTkfvUlojHTbbG6Uh5Cx
         YayQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720181885; x=1720786685;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=P4IDzQAbvj9N+eKCXWfZT6OdcE5NhRGUpcGrlOOsteY=;
        b=t56oGNqPp7Hro/cjimOY2SPHkRBVeY/2FeMKw17Ddx/ZBmiynauxfmEgm6vP9DpVtx
         DwuK/1gf97ieV4D39w8kAe1sz2kOvKH7oQqfU0q7LUOCyX6frAhYCwILc3hzjugN6Fi6
         CAew9LGdLcfxtkRhsbWoTCNm9oNuv6huSFFaD1LJ4zZpUBp3kQfvtM66ULAf8zlwQ2HC
         I/Ber23BM7h/hFuTF3drsVQfYYihcp0OeWo9Kp9L6TD4fyUVqLUHV0VFYGFKu0zAIBLM
         ljUYMms/KZxW8oM/WsRZGAXly3d0fU9XAK4g6m3jfb8QAjQ6Nf0Yfn2XtfbDqVBZKS06
         YH4g==
X-Gm-Message-State: AOJu0YxvWJ1N1rSuFCqaO0/E7cAtRfNogul0fd5iBKlbU2+heoKQ9haw
	lRZfHxdPU43j3TcKVYzRlH0OjPibmQa0cJmUPfH+A9aJ7CaZlO0YGwGOOkdI
X-Google-Smtp-Source: AGHT+IE6ODq7DO0pbVu5cY5aAAD4T933UCuvj8oqrCmXyC3PqIMuRDHA6NLDT9KWCicd2mLUbRGKDw==
X-Received: by 2002:a05:6402:4408:b0:57c:671d:8455 with SMTP id 4fb4d7f45d1cf-58e59f27147mr4096976a12.14.1720181884528;
        Fri, 05 Jul 2024 05:18:04 -0700 (PDT)
Message-ID: <ddbfbfab93520830d9fddda01c9aaaf9b6c9c4ac.camel@gmail.com>
Subject: Xen 4.19 release date shifted to July 29th
From: Oleksii <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: committers@xenproject.org, community.manager@xenproject.org, Kelly Choi
	 <kelly.choi@cloud.com>
Date: Fri, 05 Jul 2024 14:18:03 +0200
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

Hello everyone,

I would like to announce that the release date has been shifted to July
29th to allow more time for RCs testing and to accommodate XSA-458
(https://xenbits.xen.org/xsa/), which is embargoed until July 16th.

Have a good weekend.

Best regards,
Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 13:03:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 13:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754287.1162631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPial-0003Px-Sq; Fri, 05 Jul 2024 13:03:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754287.1162631; Fri, 05 Jul 2024 13:03: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 1sPial-0003Pq-QH; Fri, 05 Jul 2024 13:03:11 +0000
Received: by outflank-mailman (input) for mailman id 754287;
 Fri, 05 Jul 2024 13:03:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sPiaj-0003Pj-MA
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 13:03:09 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sPiaj-000084-BX; Fri, 05 Jul 2024 13:03:09 +0000
Received: from buscust21-202.static.cytanet.com.cy ([87.228.190.202]
 helo=[10.10.49.222]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sPiaj-0003hu-0G; Fri, 05 Jul 2024 13:03: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>
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=Qq6EdX3jfW92V25UQy9hu8Bbls2yO7YDgIOnZ93aAbU=; b=WQePbqYY/tbAV3fybP9XdurcbH
	I8p+Lxuivi6M5JbiUketPB8HU0eMey/5QZQdQznv9WXLCd0D7tIhaAIM6spPz2RuK7WVAQWPb8bjR
	hOvDH0gk/s2uiAEXR/GpU4qk3R4dkJkOQjvOprzHmf2mGWlXjlFeFAeLLoiAVlDaIURI=;
Message-ID: <7f426aab-bccb-4255-994f-2d1613f2342b@xen.org>
Date: Fri, 5 Jul 2024 16:03:06 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] xen/arm: dom0less: Add #redistributor-regions
 property to GICv3 node
Content-Language: en-GB
To: Luca Fancellu <Luca.Fancellu@arm.com>, Michal Orzel <michal.orzel@amd.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20240704075419.34966-1-michal.orzel@amd.com>
 <19A039ED-1B56-4C16-B1D0-72F28AA123C5@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <19A039ED-1B56-4C16-B1D0-72F28AA123C5@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 04/07/2024 11:39, Luca Fancellu wrote:
> 
> 
>> On 4 Jul 2024, at 08:54, Michal Orzel <michal.orzel@amd.com> wrote:
>>
>> Dom0less domain using host memory layout may use more than one
>> re-distributor region (d->arch.vgic.nr_regions > 1). In that case Xen
>> will add them in a "reg" property of a GICv3 domU node. Guest needs to
>> know how many regions to search for, and therefore the GICv3 dt binding
>> [1] specifies that "#redistributor-regions" property is required if more
>> than one redistributor region is present. However, Xen does not add this
>> property which makes guest believe, there is just one such region. This
>> can lead to guest boot failure when doing GIC SMP initialization. Fix it
>> by adding this property, which matches what we do for hwdom.
>>
>> [1] Linux: Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
>>
>> Fixes: 4809f9ec7d71 ("xen/arm: if direct-map domain use native addresses for GICv3")
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>> ---
> 
> Looks good to me!
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 13:41:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 13:41:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754296.1162642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPjBu-0000Ir-Lw; Fri, 05 Jul 2024 13:41:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754296.1162642; Fri, 05 Jul 2024 13: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 1sPjBu-0000Ik-JE; Fri, 05 Jul 2024 13:41:34 +0000
Received: by outflank-mailman (input) for mailman id 754296;
 Fri, 05 Jul 2024 13: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=vKH+=OF=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1sPjBt-0000Ie-Jv
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 13:41:33 +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 4830a660-3ad4-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 15:41:29 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-58b0dddab8cso2748417a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 06:41: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: 4830a660-3ad4-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720186888; x=1720791688; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=aex0E2jcu20sLLA0UR2Uzw5SPRTn13mJ04TL7pHoBJE=;
        b=gzBiJYAM58YPQdHsQ/htzrcw8OWJW351uoYPkMoD73pwFM6/CXwzajMlH+AmWIwt/h
         JVab4JpU6r72Oodr0AazwFFhIOtYOFn4rtdq4jSBK32Yw1TFLoxFsHjPVcRNsgdZD5st
         MhkjCR5Uyb14U8UyyPAfgpP4A+9rG3/fl6nB0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720186888; x=1720791688;
        h=to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=aex0E2jcu20sLLA0UR2Uzw5SPRTn13mJ04TL7pHoBJE=;
        b=XxwHHsM12e4h40v2wozBL2z4xrnJZni+7+EZp9e6vxMG3s2ts4i5Xwib+UpQ2Lpmj+
         SZkQdyRVpMqmj7tVZyRGtBCWDWKnuG/qLOEgdZ6gwGx+7sl/mRv8MLUgc03B19rXqthQ
         0IBFpnILuHGgbWq7yGXuCLkxU2YguZC0Cf1JUGMRlthWVrv9J6gusO77eECg94cFUWhc
         6kK8n4ll0bnucOBpCv9T6Bc02rwsMPnSd0pIZLY8ysSErF0HAejuR0UfWVmSXiDhQewq
         cSBF0TS/xickElHPk98zv6+qzBgD3O7q1xWOPhh8csUcQtYymT1IHlOu9MIyZKfaQ2Mm
         dMpA==
X-Gm-Message-State: AOJu0YwU3v+04YjAHrSKFOheS6ze5jBsK+6l4kccSoQKe/bBBUpz+txq
	IQ4w6j/zKsaecmRGa46H15kJHtvsKMel97UPCeDrrWLsXnyZ1hJjdVz067nhy6uvrMY1H1Wcl+x
	6Sse6TNcvxdCu198QYG8P7tepy1892JfF1cw4EmJcCgNvizSFbavy/A==
X-Google-Smtp-Source: AGHT+IHslhLODQfxOjekxITHHpy1GHPaK9IyVSg3y1J0GAyXcuZ9fVRRGt/QlbeaSKKUq5mcw6rI6zWo8Km84e1ONG0=
X-Received: by 2002:a05:6402:1d4e:b0:57c:5fcf:b570 with SMTP id
 4fb4d7f45d1cf-58e5aecb1d7mr3354129a12.32.1720186887979; Fri, 05 Jul 2024
 06:41:27 -0700 (PDT)
MIME-Version: 1.0
From: Kelly Choi <kelly.choi@cloud.com>
Date: Fri, 5 Jul 2024 14:40:52 +0100
Message-ID: <CAO-mL=zEr=ade54O5LpFwKcZ3oQRgBN1zj8oREmDs3USZK+drw@mail.gmail.com>
Subject: [Job posting] Lead Software Engineer - Hypervisor
To: xen-devel <xen-devel@lists.xenproject.org>
Content-Type: multipart/alternative; boundary="00000000000067ed9d061c8038b1"

--00000000000067ed9d061c8038b1
Content-Type: text/plain; charset="UTF-8"

Hi Xen Community,

Are you looking for a new challenge or know someone who you think will fit?

We have a job posting for a Lead Software Engineer - hypervisor
Location: Cambridge, UK.

More details: https://xenproject.org/about-us/community-jobs/

Many thanks,
Kelly Choi

Community Manager
Xen Project

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

<div dir=3D"ltr">Hi Xen Community,<div><br><div>Are you looking for a new c=
hallenge or know someone who you think will fit?</div><div><br>We have a jo=
b posting for a Lead Software Engineer - hypervisor<br>Location: Cambridge,=
 UK.</div><div><br>More details: <a href=3D"https://xenproject.org/about-us=
/community-jobs/">https://xenproject.org/about-us/community-jobs/</a><br></=
div><div><br></div><div><div><div dir=3D"ltr" class=3D"gmail_signature" dat=
a-smartmail=3D"gmail_signature"><div dir=3D"ltr"><div>Many thanks,</div><di=
v>Kelly Choi</div><div><br></div><div><div style=3D"color:rgb(136,136,136)"=
>Community Manager</div><div style=3D"color:rgb(136,136,136)">Xen Project=
=C2=A0<br></div></div></div></div></div></div></div></div>

--00000000000067ed9d061c8038b1--


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 14:39:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 14:39:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754308.1162657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPk5P-00076O-Rc; Fri, 05 Jul 2024 14:38:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754308.1162657; Fri, 05 Jul 2024 14: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 1sPk5P-00076H-P5; Fri, 05 Jul 2024 14:38:55 +0000
Received: by outflank-mailman (input) for mailman id 754308;
 Fri, 05 Jul 2024 14:38:54 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPk5O-000767-NL; Fri, 05 Jul 2024 14:38:54 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPk5O-0002AH-Ja; Fri, 05 Jul 2024 14:38:54 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPk5O-0006Or-2e; Fri, 05 Jul 2024 14:38:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPk5O-0001EM-29; Fri, 05 Jul 2024 14:38: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=UqyyB5vMCHnE0DOQeWeH3KMSgGf+QtN7+RYMVPGyn34=; b=1KWoJ7scLn2nZNrSVt200IyMdK
	Fc5VcSGoyYMXqM7UrEQwU6e8KGVDsrsJ4hy79NjWMX5XLa2vib2FQdcjmmHNZmUfm2T9chXLVbc7n
	S3demlVKMV5z15wjmUsY849NvBo6Qc86Ctj4dhNz1pL2rcEeC2kMuOEwqlw6G1hlgm8Y=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186665-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.17-testing test] 186665: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.17-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=43d5f8f079a53ee905b3d0ccff3b871cd54a853b
X-Osstest-Versions-That:
    xen=87a49d2ec6fe2881e4b0947ea3e0e0f041dc6be3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 14:38:54 +0000

flight 186665 xen-4.17-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186665/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186515
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186515
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186515
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186515
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186515
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186515
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  43d5f8f079a53ee905b3d0ccff3b871cd54a853b
baseline version:
 xen                  87a49d2ec6fe2881e4b0947ea3e0e0f041dc6be3

Last test of basis   186515  2024-06-26 12:36:39 Z    9 days
Failing since        186654  2024-07-04 12:36:54 Z    1 days    2 attempts
Testing same since   186665  2024-07-04 19:38:36 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@vates.tech>
  Christian Lindig <christian.lindig@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Matthew Barnes <matthew.barnes@cloud.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   87a49d2ec6..43d5f8f079  43d5f8f079a53ee905b3d0ccff3b871cd54a853b -> stable-4.17


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 14:55:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 14:55:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754336.1162737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkKs-000262-1i; Fri, 05 Jul 2024 14:54:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754336.1162737; Fri, 05 Jul 2024 14:54: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 1sPkKr-00025v-U2; Fri, 05 Jul 2024 14:54:53 +0000
Received: by outflank-mailman (input) for mailman id 754336;
 Fri, 05 Jul 2024 14:54:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPkKq-00025l-Ho; Fri, 05 Jul 2024 14:54:52 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPkKq-0002TO-8w; Fri, 05 Jul 2024 14:54:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPkKq-0006me-1n; Fri, 05 Jul 2024 14:54:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPkKq-0008Ma-1F; Fri, 05 Jul 2024 14:54:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+QCOK21NZMrCZpPbf3DUIr82Rmo7aTA7aiOSkj8oUjM=; b=nqtgK9IbQDeepvzQeXu7Cg/Ahe
	CSPoBUTlxK815b/Sq8zI4VMP2Am9PdrWez4TeP1XkFr539/BVPHMfpHByPjdpukHIXkoN3B3MwVlJ
	d2xxauL9Cy2rQ3OADaC3duaEjXW+XxG764Oiw2ifEKrelBV+tuJfXifh6DY59o+RSNt4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186701-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186701: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=051c7bb434f9f6b908aac2a0b00368192aa616ec
X-Osstest-Versions-That:
    ovmf=bef0d333dc4fccdfc75e4be31e067b467a9a4093
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 14:54:52 +0000

flight 186701 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186701/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 051c7bb434f9f6b908aac2a0b00368192aa616ec
baseline version:
 ovmf                 bef0d333dc4fccdfc75e4be31e067b467a9a4093

Last test of basis   186694  2024-07-05 08:41:11 Z    0 days
Testing same since   186701  2024-07-05 13:11:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   bef0d333dc..051c7bb434  051c7bb434f9f6b908aac2a0b00368192aa616ec -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:06:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:06:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754349.1162750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkVz-0003qX-3w; Fri, 05 Jul 2024 15:06:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754349.1162750; Fri, 05 Jul 2024 15:06: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 1sPkVz-0003qQ-0f; Fri, 05 Jul 2024 15:06:23 +0000
Received: by outflank-mailman (input) for mailman id 754349;
 Fri, 05 Jul 2024 15:06: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=ok7N=OF=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sPkVw-0003qK-Vd
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:06:20 +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 21cd3a3a-3ae0-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 17:06:18 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a77dc08db60so41006866b.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 08:06:18 -0700 (PDT)
Received: from EMEAENGAAD91498.citrite.net ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77b5199566sm156526766b.62.2024.07.05.08.06.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 08:06: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: 21cd3a3a-3ae0-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720191978; x=1720796778; 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=brMFw0vVrRrpDvdTuozVrAa3xTXmg025tR8fcxq9Tms=;
        b=j+wsfp4rhORn8T6b9IxwfaWKgYwFhoBqFVTDDDddzZYeex2/fzMFuA7lkbenwIgskM
         XrhUzr6JR3vMSYWtONi0+pxXpkXEvolXkhZKTP3gW7k3lYjknhtzfUVK0RScAgpn+slI
         l7IY977YEGjI9ZBYYaO+ahIkf29aatfytp1RM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720191978; x=1720796778;
        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=brMFw0vVrRrpDvdTuozVrAa3xTXmg025tR8fcxq9Tms=;
        b=iQbYi196JQB5niINSzP5Z+zWuv5wi++uEYMg2vHDYO9o5W0YpVxYI99GZQ0N7kdCCP
         dID0PrxTkP7Ae4CLh9yrr9260O40uLnWqfy2LmHNhVjIsm2F01PTTuY7N0nnfZui05bU
         j4Iiqj37MeXKnlwb6y87bcQGmVZvqqC4e41XtJBKe9Y7qZdskyOz4VztS5i0+h3zgfan
         eg0aHizoZ7nnZeumxemxFRID6JO8k7dkkAjneRWleZu2citp9ynUmrSM/PhkAUS5nbLr
         6M0uIZ0V5MBPpES/EqaNz+sWR8nWvnywzZyO3s/VX9Hw5Olztbc6xpqqAZf34dPos2tT
         S1fA==
X-Gm-Message-State: AOJu0Ywn6nVjpsgcIDIsHOu5BmY5dfQoHgdJ+xIrZm6IEkgnKk7eH6Qv
	59MK3sGbTLWSQ2Xk6rgtXw397A+yNi9i+zZAUdkLSyWJ5aFM0Vh0fkPddGZOhYkadj0GqEEijKG
	8
X-Google-Smtp-Source: AGHT+IEJ9SzxlyCKvePY9Vzf8fRVdmlOQkWRvYuvb/pBdbNRHreziJXHAGEqykJjuNtTgsujBxhVwQ==
X-Received: by 2002:a17:907:724e:b0:a72:aeff:dfed with SMTP id a640c23a62f3a-a77ba70d7fcmr430660966b.53.1720191977260;
        Fri, 05 Jul 2024 08:06:17 -0700 (PDT)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [XEN PATCH v3] tools/misc: xen-hvmcrash: Inject #DF instead of overwriting RIP
Date: Fri,  5 Jul 2024 16:05:07 +0100
Message-Id: <280d24e233d040ab8d647aeed4026083e2f370bf.1720190714.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Bcc: Matthew Barnes <matthew.barnes@cloud.com>
Content-Transfer-Encoding: 8bit

xen-hvmcrash would previously save records, overwrite the instruction
pointer with a bogus value, and then restore them to crash a domain
just enough to cause the guest OS to memdump.

This approach is found to be unreliable when tested on a guest running
Windows 10 x64, with some executions doing nothing at all.

Another approach would be to trigger NMIs. This approach is found to be
unreliable when tested on Linux (Ubuntu 22.04), as Linux will ignore
NMIs if it is not configured to handle such.

Injecting a double fault abort to all vCPUs is found to be more
reliable at crashing and invoking memdumps from Windows and Linux
domains.

This patch modifies the xen-hvmcrash tool to inject #DF to all vCPUs
belonging to the specified domain, instead of overwriting RIP.

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
Changes in v3:
- Keep xc_domain_{un,}pause() calls
- Update xen-hvmcrash comment to reflect new behaviour

Changes in v2:
- Use xendevicemodel API instead of legacy devicemodel API
- Return error status code if no vcpus could be injected
- Use existing exception vector macro defined in `x86-defns.h`
- Clean up unnecessary headers
- Fix NULL build errors
---
 tools/misc/Makefile       |  2 +-
 tools/misc/xen-hvmcrash.c | 84 ++++++++++-----------------------------
 2 files changed, 22 insertions(+), 64 deletions(-)

diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index 66d0d6b09029..c26e544e8393 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -81,7 +81,7 @@ xen-hvmctx: xen-hvmctx.o
 	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
 
 xen-hvmcrash: xen-hvmcrash.o
-	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
+	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxendevicemodel) $(APPEND_LDFLAGS)
 
 xen-memshare: xen-memshare.o
 	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
diff --git a/tools/misc/xen-hvmcrash.c b/tools/misc/xen-hvmcrash.c
index 1d058fa40a47..0ee9a4a2f869 100644
--- a/tools/misc/xen-hvmcrash.c
+++ b/tools/misc/xen-hvmcrash.c
@@ -1,7 +1,7 @@
 /* 
  * xen-hvmcrash.c
  *
- * Attempt to crash an HVM guest by overwriting RIP/EIP with a bogus value
+ * Attempt to crash an HVM guest by injecting #DF to every vcpu
  * 
  * Copyright (c) 2010 Citrix Systems, Inc.
  *
@@ -24,36 +24,25 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#include <inttypes.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <unistd.h>
 #include <string.h>
 #include <errno.h>
-#include <limits.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <arpa/inet.h>
 
 #include <xenctrl.h>
-#include <xen/xen.h>
-#include <xen/domctl.h>
-#include <xen/hvm/save.h>
+#include <xendevicemodel.h>
+
+#include <xen/asm/x86-defns.h>
 
 int
 main(int argc, char **argv)
 {
     int domid;
     xc_interface *xch;
+    xendevicemodel_handle *dmod;
     xc_domaininfo_t dominfo;
-    int ret;
-    uint32_t len;
-    uint8_t *buf;
-    uint32_t off;
-    struct hvm_save_descriptor *descriptor;
+    int vcpu_id, ret;
+    bool injected = false;
 
     if (argc != 2 || !argv[1] || (domid = atoi(argv[1])) < 0) {
         fprintf(stderr, "usage: %s <domid>\n", argv[0]);
@@ -83,59 +72,28 @@ main(int argc, char **argv)
         exit(-1);
     }
 
-    /*
-     * Calling with zero buffer length should return the buffer length
-     * required.
-     */
-    ret = xc_domain_hvm_getcontext(xch, domid, 0, 0);
-    if (ret < 0) {
-        perror("xc_domain_hvm_getcontext");
-        exit(1);
-    }
-    
-    len = ret;
-    buf = malloc(len);
-    if (buf == NULL) {
-        perror("malloc");
-        exit(1);
-    }
-
-    ret = xc_domain_hvm_getcontext(xch, domid, buf, len);
-    if (ret < 0) {
-        perror("xc_domain_hvm_getcontext");
-        exit(1);
-    }
+    dmod = xc_interface_dmod_handle(xch);
 
-    off = 0;
-
-    while (off < len) {
-        descriptor = (struct hvm_save_descriptor *)(buf + off);
-
-        off += sizeof (struct hvm_save_descriptor);
-
-        if (descriptor->typecode == HVM_SAVE_CODE(CPU)) {
-            HVM_SAVE_TYPE(CPU) *cpu;
-
-            /* Overwrite EIP/RIP with some recognisable but bogus value */
-            cpu = (HVM_SAVE_TYPE(CPU) *)(buf + off);
-            printf("CPU[%d]: RIP = %" PRIx64 "\n", descriptor->instance, cpu->rip);
-            cpu->rip = 0xf001;
-        } else if (descriptor->typecode == HVM_SAVE_CODE(END)) {
-            break;
+    for (vcpu_id = 0; vcpu_id <= dominfo.max_vcpu_id; vcpu_id++) {
+        printf("Injecting #DF to vcpu ID #%d...\n", vcpu_id);
+        ret = xendevicemodel_inject_event(dmod, domid, vcpu_id,
+                                X86_EXC_DF,
+                                XEN_DMOP_EVENT_hw_exc, 0, 0, 0);
+        if (ret < 0) {
+            fprintf(stderr, "Could not inject #DF to vcpu ID #%d: %s\n", vcpu_id, strerror(errno));
+            continue;
         }
-
-        off += descriptor->length;
+        injected = true;
     }
 
-    ret = xc_domain_hvm_setcontext(xch, domid, buf, len);
+    ret = xc_domain_unpause(xch, domid);
     if (ret < 0) {
-        perror("xc_domain_hvm_setcontext");
+        perror("xc_domain_unpause");
         exit(1);
     }
 
-    ret = xc_domain_unpause(xch, domid);
-    if (ret < 0) {
-        perror("xc_domain_unpause");
+    if (!injected) {
+        fprintf(stderr, "Could not inject #DF to any vcpu!\n");
         exit(1);
     }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:07:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:07:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754345.1162759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkX3-0004Ll-DA; Fri, 05 Jul 2024 15:07:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754345.1162759; Fri, 05 Jul 2024 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 1sPkX3-0004Le-AZ; Fri, 05 Jul 2024 15:07:29 +0000
Received: by outflank-mailman (input) for mailman id 754345;
 Fri, 05 Jul 2024 15:00: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=Mps8=OF=gmail.com=andreistan2003@srs-se1.protection.inumbo.net>)
 id 1sPkPp-0002rJ-Cm
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:00:01 +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 3f9a2963-3adf-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 16:59:59 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-42562a984d3so11713575e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 07:59:59 -0700 (PDT)
Received: from andrei-desktop.. ([79.114.140.114])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4264a1d509asm65915415e9.8.2024.07.05.07.59.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 07:59: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: 3f9a2963-3adf-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720191599; x=1720796399; 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=V0om5ShG7hBp9wOatFKjTiKLatOhOHjXqUbegYtq+Ik=;
        b=WSE80Cy/8A4mrJYAppkMiCuxKix6vFQP2PWHwQyIgiiS80gF7LSFpu1TVaybzGcKx6
         SJa0iMvqDlKDfohheR/jXrYQ0CXP5F5mXpFol9IGld1XZOkWtRga5ohL2tZJLpq/YAs/
         QgQR5dAjz7gXzK9/KQ3TJ/tMr7TsX+n7qbJarpnWkkfGBYFDNa1reMuXmNx4+b3ERPZ/
         lW8BWLq+ObrT3TJW15kFy4OZj73oaYYHWVMk6CdU7QQujWY/jS5AHTcGhK2SlelwpVga
         aTFtisrwV//bQFrCT4MZ3LBqqKmxsY6B+vR0xWtLxssh9liWDAovb9BgAvXZM4XB/Kdc
         Yq3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720191599; x=1720796399;
        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=V0om5ShG7hBp9wOatFKjTiKLatOhOHjXqUbegYtq+Ik=;
        b=IEU7UdLNkXlrp7+7YGmZDgYx7XlZBQudvDwe7MP5Z2gAfQ0Ow1nlVyDmhzBs3TcZRi
         pNTbp0kmm8EbiK32UrfhJfpLDWAk/rv2XR7xdoklGia1wygjD3PRN6cXuuW4s1w4vhlz
         yT0aS73x7Ww3LPFv6Fz+bXZOvvaTURLY9xMU+ShnxsbMEWD8KNDLA7FE6tKjGRfY7Wd9
         avLyTfmDLeDsGvB/O+pmu4B9ECU4hc5bz/evKb9HaS8+a8oFldsm1NF+NM0DmGhBtCyV
         Dm1KuAItbtCY615MTqk7VLcb7S4jP3i+HwdIB12ItSS6O3jMqDosb7KBH8dmFTRDt6oc
         +D3A==
X-Gm-Message-State: AOJu0YzMWlOtFmDuhOYupmRsYFqRRyS9F0GZhEHRgeJMTRJ3qpZ3ZquT
	cQbYSqeWf2Ia2Jc7aHCixb6LFumn5xyFRDnFglpsbVmZ3DnxvJf2YkwvtKQR
X-Google-Smtp-Source: AGHT+IG1v/TIiXFmdrooh4+OvKuZhrO122uKdfXnMEvWYcp+H9c0N4Fzi1hw8MsElJXkozkkIyrj9Q==
X-Received: by 2002:a05:600c:3544:b0:424:aa41:4c15 with SMTP id 5b1f17b1804b1-4264a3dc0f4mr32459485e9.22.1720191598421;
        Fri, 05 Jul 2024 07:59:58 -0700 (PDT)
From: Andrei Stan <andreistan2003@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Andrei Stan <andreistan2003@gmail.com>,
	Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH] tools/libs/store: add missing USE_PTHREAD to target .o
Date: Fri,  5 Jul 2024 17:59:12 +0300
Message-ID: <20240705145910.32736-3-andreistan2003@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently only shared libraries build with USE_PTHREAD enabled.

This patch adds the macro also to xs.o.

Backport: 4.18+ # maybe older
Signed-off-by: Andrei Stan <andreistan2003@gmail.com>
---
 tools/libs/store/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/libs/store/Makefile b/tools/libs/store/Makefile
index 0649cf8307..c6f147c72f 100644
--- a/tools/libs/store/Makefile
+++ b/tools/libs/store/Makefile
@@ -20,6 +20,7 @@ CFLAGS += -include $(XEN_ROOT)/tools/config.h
 CFLAGS += $(CFLAGS_libxentoolcore)
 
 xs.opic: CFLAGS += -DUSE_PTHREAD
+xs.o: CFLAGS += -DUSE_PTHREAD
 ifeq ($(CONFIG_Linux),y)
 xs.opic: CFLAGS += -DUSE_DLSYM
 endif
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:11:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:11:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754357.1162769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkab-00062w-RN; Fri, 05 Jul 2024 15:11:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754357.1162769; Fri, 05 Jul 2024 15: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 1sPkab-00062p-Oo; Fri, 05 Jul 2024 15:11:09 +0000
Received: by outflank-mailman (input) for mailman id 754357;
 Fri, 05 Jul 2024 15:11:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPkab-00062j-4F
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:11:09 +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 cab22d53-3ae0-11ef-bbfb-fd08da9f4363;
 Fri, 05 Jul 2024 17:11:02 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a77c25beae1so170183766b.2
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 08:11:02 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77c25b6b47sm113204366b.199.2024.07.05.08.11.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 05 Jul 2024 08:11: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: cab22d53-3ae0-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720192261; x=1720797061; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vJCoI00qKpGiXUWXQaU13hgbroPoQtqjygJFwTXmzLA=;
        b=Mo27UdH6yYC6feAQUN2Qpe51Ae+EkePklCwBEWFuOToWd7Q+L3ObHbET0LYGPmWxzA
         9uYmGVCSNIcl5iGmjRxpt+Gke9lvh+Qrnd4Ta1fI59H5Zj6cAxx8Ax3PabXNNoZRVwNI
         rNsaoN1j2NXS7NEN4REyHwsClECTCk3I4BC/8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720192261; x=1720797061;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vJCoI00qKpGiXUWXQaU13hgbroPoQtqjygJFwTXmzLA=;
        b=D50NhGg6QqFh/vc4JarN923yyOOTLFDmRJBI6EiF8VWngyGDPTMLgQbK4OYYR66k11
         DNFJyUEeKgHQ7AYUgx4RUVIPAW4pA7YQ41+oKvdbOC3645wU2X7JTBNNntsNqh62EcbH
         Q6yJuPuHGfZuIRzr6q/mAdphNElXLReb1utd3n92JIKoxKuJbixNpT7xVLRQdKZ0AyiO
         rCAGaVmNLRwruxmMb17CxX94rzHfg3SYhcbnvYI95+WI4C0b+vDyYzsROPlRAqZ3Ow9F
         4nWu6pAoOoTJxdWN7sWRnlbE0f726E8QOTLR5RaC0EGUbK3Omr00MO9jZfL92tS5JRRj
         yLTQ==
X-Forwarded-Encrypted: i=1; AJvYcCWGBoRB/vGe1FKjtz4WcSyZC2oXKehziRPOglyid5C66zQyj6rE/lIreSdjtjhmfcWnfnHWHQGGTWE96G9NRBBtHgVAP26U/rWBuSgNZ/Q=
X-Gm-Message-State: AOJu0YwLpAzHsfrBVv0It3grKvfO/SaiBpr76BePK6BLdlEfbHM09Yi9
	bSUjM0gR8sFbNxSAIK8TIkK7TzRJzZdwbrfPchaqk3bbOovfmZRMFtWMdNaA7eDRhoYQTsmODFg
	j
X-Google-Smtp-Source: AGHT+IHFvFms7ROglKvWq0wMse4Y6nZBCkzOTw/5bAvU0KmEBu0Fx5JLqUoWgbldSBz0wUxHwNJkKA==
X-Received: by 2002:a17:906:ae97:b0:a77:b516:3026 with SMTP id a640c23a62f3a-a77ba44c954mr311289866b.3.1720192261553;
        Fri, 05 Jul 2024 08:11:01 -0700 (PDT)
Message-ID: <ad8d81a4-4a99-466b-a37e-c4b57e2c7802@citrix.com>
Date: Fri, 5 Jul 2024 16:10:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19?] tools/libs/store: add missing USE_PTHREAD to
 target .o
To: Andrei Stan <andreistan2003@gmail.com>, xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20240705145910.32736-3-andreistan2003@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240705145910.32736-3-andreistan2003@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05/07/2024 3:59 pm, Andrei Stan wrote:
> Currently only shared libraries build with USE_PTHREAD enabled.
>
> This patch adds the macro also to xs.o.
>
> Backport: 4.18+ # maybe older
> Signed-off-by: Andrei Stan <andreistan2003@gmail.com>
> ---
>  tools/libs/store/Makefile | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/tools/libs/store/Makefile b/tools/libs/store/Makefile
> index 0649cf8307..c6f147c72f 100644
> --- a/tools/libs/store/Makefile
> +++ b/tools/libs/store/Makefile
> @@ -20,6 +20,7 @@ CFLAGS += -include $(XEN_ROOT)/tools/config.h
>  CFLAGS += $(CFLAGS_libxentoolcore)
>  
>  xs.opic: CFLAGS += -DUSE_PTHREAD
> +xs.o: CFLAGS += -DUSE_PTHREAD
>  ifeq ($(CONFIG_Linux),y)
>  xs.opic: CFLAGS += -DUSE_DLSYM
>  endif

Funnily enough, I did wonder whether that mattered recently.  I guess it
does.

CC Oleksii for a view to 4.19.

Also, we should transform the Backport: tag into a Fixes: tag if there's
a suitable one to pick.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:12:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:12:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754367.1162779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkcF-0006bD-5I; Fri, 05 Jul 2024 15:12:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754367.1162779; Fri, 05 Jul 2024 15: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 1sPkcF-0006b6-2g; Fri, 05 Jul 2024 15:12:51 +0000
Received: by outflank-mailman (input) for mailman id 754367;
 Fri, 05 Jul 2024 15:12:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPkcD-0006ay-Nv
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:12:49 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a602571-3ae1-11ef-bbfb-fd08da9f4363;
 Fri, 05 Jul 2024 17:12:48 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-52ea79e689eso841832e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 08:12:48 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77dcf8bf36sm15835766b.36.2024.07.05.08.12.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 05 Jul 2024 08:12: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: 0a602571-3ae1-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720192368; x=1720797168; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7f3XTOhjIawPb6ry/kr/tnwracst8D7eEzUxFQNkOx0=;
        b=EuR/if1iFnAAjbK4Fds3tRb88UZD5UIMUhHYuCWRen1AvC/NcJaXTmZfQAmR+5xQ7E
         JQhEzx76SMaNXGFvigGsxLLyAjCSewpxf7/f7kNNzlKFssWQtJM24sY6a10PjMIviH8G
         QosvRtnsj35LBji92Y/9WArVSurX72gEvNL7s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720192368; x=1720797168;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7f3XTOhjIawPb6ry/kr/tnwracst8D7eEzUxFQNkOx0=;
        b=wa+RbC4jkOLXzdtItsSHQmpCz3HyRv1Jl9koujdAGwbM4ocFQzV5+lRfzuEnVgygHh
         WBifFuMiIFUuaet/5NrzxM6qJIi5kVP8qIixpyTSXCG8bUN860uxd2unTZzSUavcNQ2r
         dWYSGW1HJETZQwtemXkVIfCMfzGbQG+hXtY7DcfKEdDa7WAYhLWU5V8Wuwhv8tiuiCay
         r0xJ/vBN0CYKAtG/0uAF3FmsZ9KbLSsYMFVdxp5CM6Py30fHabchIcBEJnzSJOLD3sDi
         00lxNdOL1H1jfYNz2bHzqmsflYketbisTEt2/w6wWxM+NRFkIfEnDyl/TK32abgVdU13
         bnfg==
X-Forwarded-Encrypted: i=1; AJvYcCViB2tWW7rdzggZWNfzlrRoyDFcTErIyYIOofipqcfKm326WVDnqMQv/kLNiZne0AJn5x3rn/IDiuK7dw6VVZGnUkocIhwS4g21OfCPX0E=
X-Gm-Message-State: AOJu0YxUiUd69O4cq2TojrVSubbDHnnmfmVFicCzDpRq7ua49VL9/jel
	QRITCt6tyUxwt1N/F/c9z91dcTdwY4TLmoc3OB5GJQ+Ei5acl+8hjABFnQvaKgEIeylhnBSOJnW
	n
X-Google-Smtp-Source: AGHT+IGevJrkE7CVV5Kh94zdGWg1KaOtWMd7npUnX85+9nhbYm7bjP/mIXu+3LZsEb5/bnNp6DOSSA==
X-Received: by 2002:a19:5510:0:b0:52c:ab21:7c05 with SMTP id 2adb3069b0e04-52ea06c9576mr3961113e87.67.1720192368336;
        Fri, 05 Jul 2024 08:12:48 -0700 (PDT)
Message-ID: <95f3aafe-a534-4001-adcc-b82b78881d84@citrix.com>
Date: Fri, 5 Jul 2024 16:12:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3] tools/misc: xen-hvmcrash: Inject #DF instead of
 overwriting RIP
To: Matthew Barnes <matthew.barnes@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony@xenproject.org>
References: <280d24e233d040ab8d647aeed4026083e2f370bf.1720190714.git.matthew.barnes@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <280d24e233d040ab8d647aeed4026083e2f370bf.1720190714.git.matthew.barnes@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/07/2024 4:05 pm, Matthew Barnes wrote:
> xen-hvmcrash would previously save records, overwrite the instruction
> pointer with a bogus value, and then restore them to crash a domain
> just enough to cause the guest OS to memdump.
>
> This approach is found to be unreliable when tested on a guest running
> Windows 10 x64, with some executions doing nothing at all.
>
> Another approach would be to trigger NMIs. This approach is found to be
> unreliable when tested on Linux (Ubuntu 22.04), as Linux will ignore
> NMIs if it is not configured to handle such.
>
> Injecting a double fault abort to all vCPUs is found to be more
> reliable at crashing and invoking memdumps from Windows and Linux
> domains.
>
> This patch modifies the xen-hvmcrash tool to inject #DF to all vCPUs
> belonging to the specified domain, instead of overwriting RIP.
>
> Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>

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

I'll queue this in my for-4.20 branch in due course.


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:20:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:20:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754376.1162790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkjv-000067-1H; Fri, 05 Jul 2024 15:20:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754376.1162790; Fri, 05 Jul 2024 15:20: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 1sPkju-00005z-To; Fri, 05 Jul 2024 15:20:46 +0000
Received: by outflank-mailman (input) for mailman id 754376;
 Fri, 05 Jul 2024 15:20: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=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPkjt-00005r-KM
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:20:45 +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 25683790-3ae2-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 17:20:43 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a77bf336171so256866966b.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 08:20:43 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77c8ad6c6esm78100366b.49.2024.07.05.08.20.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 08:20: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: 25683790-3ae2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720192842; x=1720797642; 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=NrzNfhl2P/0/0SZmMx6v7qVnc8kyhqfiItOMvG5o1uo=;
        b=lbSXnHY97k7PeUB0dUK97ftch2wyYCbdeJ9Dk5VSiW8GNxI0Cq7Ckkej119s4dx2QP
         OCylZ/G/cpK+3MJ97ryAUPBvIHIVtKQ+ncTVjCCZLGVK4hmZrV7BCL05vNN+X1G1y3xw
         c6sErAq+lpCEk9YbCbgsaaBzUra97wbfv+R30=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720192842; x=1720797642;
        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=NrzNfhl2P/0/0SZmMx6v7qVnc8kyhqfiItOMvG5o1uo=;
        b=A/7rIGDpyREv8fFhan953P/2f5VC7RuPZjPLAuDNFGpOwAiV9ros3mmLnRrJqBisIQ
         AcRpLNXbx9uhgA2HI4FmZdL98oAxDB965WsU99SeAf6FvldgON3JjTsozPVKLflRDSEg
         sPe1nV/pRmTkCaRePZXg6MeHym1vIkNLImUFutlphjvKPTLECihFzVIQrzGxmxId51iu
         VaiGnW9bZYGaSGtH9JrDKZ+CIHSQw+YBdWXQCCssUE2hez4HekQqIVoYW0ES/Mx6bFEc
         Ad32KPAX6bVPXchcreNMn40qdmjXfSRoCAV6R1U43/A8ZTuRNNQXzKNxesDTFG9Rh9as
         CpOQ==
X-Gm-Message-State: AOJu0YwZvyRV/TaaGTrErMtMGINZyBq/pN5VacjRZYqYGMM2pdYVewWy
	MO7BqwqMbqHz3UNu1l/WxevBv0A76uCJ6Zg5R+f6ADzMtLrWjEQSDv6AXxVAMW2+WqkTdQeQczB
	b
X-Google-Smtp-Source: AGHT+IEPuLvXIsVUFR+7tg0gAV55lh7/XiiJSwYOoj36vsuRtnr6VhpsN3+nBdSrdd2J81aSX+gYrw==
X-Received: by 2002:a17:906:6a93:b0:a77:a1f1:cfa0 with SMTP id a640c23a62f3a-a77bdae45eamr333391766b.36.1720192842183;
        Fri, 05 Jul 2024 08:20: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 0/6] CI: Fixes, part 2
Date: Fri,  5 Jul 2024 16:20:31 +0100
Message-Id: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Work to fix a few build system checks, and to strip the obsolete contents of
the build containers, prior to adding new containers (will be part 3).

Andrew Cooper (6):
  build: Regenerate ./configure with Autoconf 2.71
  build: Fix the version of python checked for by ./configure
  CI: Refresh the Coverity Github Action configuration
  build: Drop openssl as a build dependency
  build: Drop libiconv as a build dependecy
  build: Drop xorg-x11 as a build dependency

 .cirrus.yml                                   |    2 +-
 .github/workflows/coverity.yml                |   36 +-
 README                                        |    2 -
 .../build/debian/bookworm-arm64v8.dockerfile  |    2 -
 .../build/debian/bookworm-i386.dockerfile     |    2 -
 automation/build/debian/bookworm.dockerfile   |    2 -
 .../build/debian/jessie-i386.dockerfile       |    2 -
 automation/build/debian/jessie.dockerfile     |    2 -
 .../build/debian/stretch-i386.dockerfile      |    2 -
 automation/build/debian/stretch.dockerfile    |    2 -
 automation/build/fedora/29.dockerfile         |    1 -
 automation/build/ubuntu/bionic.dockerfile     |    2 -
 automation/build/ubuntu/focal.dockerfile      |    2 -
 automation/build/ubuntu/trusty.dockerfile     |    2 -
 automation/build/ubuntu/xenial.dockerfile     |    2 -
 .../kernel/5.19-arm64v8.dockerfile            |    1 -
 .../tests-artifacts/kernel/6.1.19.dockerfile  |    1 -
 config/Tools.mk.in                            |    1 -
 configure                                     | 1006 +--
 docs/configure                                |  990 +--
 stubdom/configure                             | 2293 ++++--
 tools/config.h.in                             |   15 +-
 tools/configure                               | 6397 +++++++++--------
 tools/configure.ac                            |    4 +-
 24 files changed, 6136 insertions(+), 4635 deletions(-)

-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:20:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:20:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754378.1162800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkk3-0000Ol-AA; Fri, 05 Jul 2024 15:20:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754378.1162800; Fri, 05 Jul 2024 15: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 1sPkk3-0000Oc-7E; Fri, 05 Jul 2024 15:20:55 +0000
Received: by outflank-mailman (input) for mailman id 754378;
 Fri, 05 Jul 2024 15:20:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPkk1-00005r-9i
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:20:53 +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 2a2e1b15-3ae2-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 17:20:51 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-58f9874aeb4so1178733a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 08:20:51 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77c8ad6c6esm78100366b.49.2024.07.05.08.20.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 08:20: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: 2a2e1b15-3ae2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720192850; x=1720797650; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OcZcOS3Zfs0qn5whvyKffCaiaSIRTopD2hbn/NMOSac=;
        b=fiKR+IhIQHV5NGy+/YevliOo039PKAOHjc8f8vvmgX5p4V9xoxGHFKa1m2nUPldCxn
         7uzq4ktfNSfuMyiwrTINTspp7u7z3lQTbAm/5WCVhimM2YFt6jFmsYv0NZYxuPOCU48B
         OI6c5I8J7bDHkKDP436BVNcwIX2SDyGlQvJfw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720192850; x=1720797650;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=OcZcOS3Zfs0qn5whvyKffCaiaSIRTopD2hbn/NMOSac=;
        b=qGBPf++B0q6w5/fscGc+utFN0SX/38m8iJUxyFc2IRf8e6YYQB6DdrEVlmhrD55AhQ
         XuYK0Cc7/39Bc9RP7uNjtDkLyGe9+ECIitZQQfCyhODS/je7z/j423jGXI/rt4YNOidD
         FBAryCLlAteJnkol5Nng8BRwzjDcUNynjtnMZki3nF63DkVHkeVg8+QwAi2nz9WlzYXH
         wIYBfhw13vDihdT4G1zD+JoI712nrrVqYhyKORt0ncnNZdAv3t2KOlisByDmpa8hzkhW
         V+25GsmY4HIsgbh3CiUoXJT4j1xVCeVkpa5LqB3uTcnoQKH0xfE/wsdR0l4j2zHz3Ody
         fIeA==
X-Gm-Message-State: AOJu0YzHJL8LGGFCeXIpeCRgU6y33svGou/JvSwe/VejigLmJ2a/A6hF
	bx3ZgcRsIoL9iShfCGq3qJu8zN6wftFwJNR+es23g6Nz4c9Hka876gugZTG3UVlePfkPhfoa33O
	a
X-Google-Smtp-Source: AGHT+IHFfV8n32lBYuoEDVkYpY4UpnOOVGoPJhADeAiwu+PZuCiN4zx8kwRW/ds3I9uR6+zovrlcQg==
X-Received: by 2002:a17:906:40d0:b0:a72:5bb9:b140 with SMTP id a640c23a62f3a-a77ba7123abmr307449966b.54.1720192849948;
        Fri, 05 Jul 2024 08:20: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 2/6] build: Fix the version of python checked for by ./configure
Date: Fri,  5 Jul 2024 16:20:33 +0100
Message-Id: <20240705152037.1920276-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We previously upped the minimum python version to 2.6, but neglected to
reflect this in ./configure

Fixes: 2a353c048c68 ("tools: Don't use distutils in configure or Makefile")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 tools/configure    | 8 ++++----
 tools/configure.ac | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/tools/configure b/tools/configure
index 6c1084b7b28a..d160ca296202 100755
--- a/tools/configure
+++ b/tools/configure
@@ -8298,15 +8298,15 @@ if test x"${PYTHONPATH}" = x"no"
 then
     as_fn_error $? "Unable to find $PYTHON, please install $PYTHON" "$LINENO" 5
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python version >= 2.6 " >&5
-printf %s "checking for python version >= 2.6 ... " >&6; }
-`$PYTHON -c 'import sys; sys.exit(eval("sys.version_info < (2, 6)"))'`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python version >= 2.7 " >&5
+printf %s "checking for python version >= 2.7 ... " >&6; }
+`$PYTHON -c 'import sys; sys.exit(eval("sys.version_info < (2, 7)"))'`
 if test "$?" != "0"
 then
     python_version=`$PYTHON -V 2>&1`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
 printf "%s\n" "no" >&6; }
-    as_fn_error $? "$python_version is too old, minimum required version is 2.6" "$LINENO" 5
+    as_fn_error $? "$python_version is too old, minimum required version is 2.7" "$LINENO" 5
 else
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 printf "%s\n" "yes" >&6; }
diff --git a/tools/configure.ac b/tools/configure.ac
index ac0fdc4314c4..be58f06be450 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -385,7 +385,7 @@ PYTHONPATH=$PYTHON
 PYTHON=`basename $PYTHONPATH`
 
 AX_PATH_PROG_OR_FAIL([PYTHONPATH], [$PYTHON])
-AX_CHECK_PYTHON_VERSION([2], [6])
+AX_CHECK_PYTHON_VERSION([2], [7])
 
 AS_IF([test "$cross_compiling" != yes], [
     AX_CHECK_PYTHON_DEVEL()
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:20:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:20:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754380.1162810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkk4-0000eN-NR; Fri, 05 Jul 2024 15:20:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754380.1162810; Fri, 05 Jul 2024 15:20:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkk4-0000eE-Jn; Fri, 05 Jul 2024 15:20:56 +0000
Received: by outflank-mailman (input) for mailman id 754380;
 Fri, 05 Jul 2024 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=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPkk3-00005r-GL
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:20:55 +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 2b806a58-3ae2-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 17:20:54 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a77cc73d35fso128052866b.0
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 08:20:53 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77c8ad6c6esm78100366b.49.2024.07.05.08.20.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 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: 2b806a58-3ae2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720192852; x=1720797652; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9RsY7qHLBDpmN5RBhIFj+m8bA6KpQJwlop/AqMRUPys=;
        b=Xfff/cU/BebwGydq29rDiWpeICpYMNiaW0tb94/6T9WRea35zU5L7BMysbSC95I/Dg
         OW/zEhggVzrC3VCreqjX/wQvRwlosZddlGeeIgqubmabAr6KMl38XrItJagfn6quqax8
         GcezK4EbrHOesMZ/mxJ+thdYoD1SyqwU5m2qQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720192852; x=1720797652;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=9RsY7qHLBDpmN5RBhIFj+m8bA6KpQJwlop/AqMRUPys=;
        b=BgKCTibr9Yu/3qaJXvQLsDZ3Es7wAkj5RuPyy+5BHCRebX0mChK3jXD0p8wLcZ+2Ay
         4IWhTDWjPgyMr597q7ckgluL188OtIgpF8ZqlaQPIAF5toPFKkr7bkNxRwJUWi5WfbDv
         8OEoEIbmET+agqjLRIu1ltBmi+52WiwRhYBC727dMIhb0CWBm5cQK+HN2zJGfrSvsqGy
         eddmY5YDpnghpANMTbVfjstEnreE0X2zNPGYqvVzksv4E0o7oH0T/ZOTNlXyguuhzpFn
         7psK8OkhmXQbOC307ub5BCOsnVl0Bf/5BwZBaN63nCJzXuwyDZWOsWqjxe2KWRIDtmm5
         zCMQ==
X-Gm-Message-State: AOJu0YwR9iQKoZOZ+6ie5Z1C9iObsNHIkt81ahHO/GSWthrrTsAmzc1K
	Ro9j1ObIOT40TlpJ5EXURhiU1/pKEbGSnFTGjRsoG2NCQrX1zmhUrwsCHrThfzAXLWHMc52C7r2
	S
X-Google-Smtp-Source: AGHT+IEUqicLhTF2Vy7ebyBcpumBY34rI/HzX0ZtYduWTO6rLzH+96/Ci2l71kCnHj9CWuF107L6gQ==
X-Received: by 2002:a17:906:2b15:b0:a77:cdae:6a59 with SMTP id a640c23a62f3a-a77cdae6ab2mr166683766b.21.1720192852558;
        Fri, 05 Jul 2024 08:20: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 3/6] CI: Refresh the Coverity Github Action configuration
Date: Fri,  5 Jul 2024 16:20:34 +0100
Message-Id: <20240705152037.1920276-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Update to Ubuntu 24.04, and checkout@v4 as v2 is deprecated.

The build step goes out of it's way to exclude docs and stubdom (but include
plain MiniOS), so disable those at the ./configure stage.

Refresh the package list.  libbz2-dev was in there twice, and e2fslibs-dev is
a a transitional package to libext2fs-dev.  I'm not aware of libtool ever
having been a Xen dependency.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 .github/workflows/coverity.yml | 36 ++++++++++++++++++++++------------
 1 file changed, 24 insertions(+), 12 deletions(-)

diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml
index 60ac8dee5570..984636eb4635 100644
--- a/.github/workflows/coverity.yml
+++ b/.github/workflows/coverity.yml
@@ -8,27 +8,39 @@ on:
 
 jobs:
   coverity:
-    runs-on: ubuntu-22.04
+    runs-on: ubuntu-24.04
     steps:
     - name: Install build dependencies
       run: |
-        sudo apt-get install -y wget git gawk \
-          libbz2-dev build-essential \
-          zlib1g-dev libncurses5-dev iasl \
-          libbz2-dev e2fslibs-dev uuid-dev ocaml \
-          ocaml-findlib libyajl-dev \
-          autoconf libtool liblzma-dev \
-          python3-dev golang libsystemd-dev
+        sudo apt-get install -y \
+          build-essential \
+          git-core \
+          golang \
+          iasl \
+          libbz2-dev \
+          libext2fs-dev \
+          liblzma-dev \
+          libncurses5-dev \
+          libyajl-dev \
+          libzstd-dev \
+          ocaml \
+          ocaml-findlib \
+          python3-dev \
+          uuid-dev \
+          zlib1g-dev \
 
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v4
       with:
         ref: staging
 
     - name: Configure Xen
       run: |
-        ./configure --with-system-qemu=/bin/true \
-                    --with-system-seabios=/bin/true \
-                    --with-system-ovmf=/bin/true
+        ./configure \
+          --disable-docs \
+          --disable-stubdom \
+          --with-system-qemu=/bin/true \
+          --with-system-seabios=/bin/true \
+          --with-system-ovmf=/bin/true \
 
     - name: Pre build stuff
       run: |
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:21:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:21:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754381.1162820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkk8-0000xF-0V; Fri, 05 Jul 2024 15:21:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754381.1162820; Fri, 05 Jul 2024 15:20:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkk7-0000x8-Sm; Fri, 05 Jul 2024 15:20:59 +0000
Received: by outflank-mailman (input) for mailman id 754381;
 Fri, 05 Jul 2024 15:20: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=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPkk6-00005r-7d
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:20:58 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2cfda7dd-3ae2-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 17:20:56 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-52e97e5a84bso2653088e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 08:20:56 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77c8ad6c6esm78100366b.49.2024.07.05.08.20.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 08:20: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: 2cfda7dd-3ae2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720192855; x=1720797655; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sT+xxLG3kZnyjXAlIz0M6MDg+PHf3LnnsejdSoFepz8=;
        b=lnRbrznt1xdP69UWQa7GMi2dY5QXw1H+qeuM8Zz2diar0bEGvnMnjTsI2p/D2oDAP9
         vzvSZQ03ccwnQ/NDlf0JiIt1yrxz3Ek8pbi2j0Rxz4WyLgqAswi8nR/J1faQIHKawMnB
         eVpWdxRRgEKODaCI/5sSpVZANihDWIgEwHEV8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720192855; x=1720797655;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=sT+xxLG3kZnyjXAlIz0M6MDg+PHf3LnnsejdSoFepz8=;
        b=Yu/eJld8tQPuhffmTsvKyHWS0GmUjXf2Ra7Wm1PZALPFM68YzJFZfQoqmis1z4NpUN
         fOlqXxXeRZBKsNQ2KIi5S5TrGEPvf0uXV3q/iZFCH4EHl0k73g7rNqRhQRJ1Z+mO5Uel
         41F2AVC02nqMEdQNjhT4BtLL0AUg/PsPEl3m4cfKYWs4ttEmXnZe5c+KLv6MSqR7l2Tv
         32Hnr6lHmAXeqXVHZUXDewmv1vxn7ysBxgROyEahlltoW+WVGvV8Q+oAOcDvIjdFt6gJ
         7irDv9i9qxK4oMj8EQp7AQr6kBJJv76pM/HsK5jygVM+/tgyrq+T7Yx/2kL/kUWUCVr1
         5Yzg==
X-Gm-Message-State: AOJu0Yyho4fx+C5JTmWk+rZmZ2sxGvYqUhK9VMQD/bPMkmvWK+s01Gp1
	K1oAVdu416v33CnV6hL32ccTPM/4VcrbVS9x+vwlSuQCHfcmNWWi/W354l62gSRh+dEScxGQ/p4
	w
X-Google-Smtp-Source: AGHT+IHr/559GdKD55LPJiuUxD7c0dVxFt/ehoT4DI2J2v2gILtxbbGaqd7xzT+33/1n3Bfff7RkaA==
X-Received: by 2002:ac2:55a8:0:b0:52c:daa4:2f6a with SMTP id 2adb3069b0e04-52ea06c8b5dmr4219256e87.64.1720192854836;
        Fri, 05 Jul 2024 08:20: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 4/6] build: Drop openssl as a build dependency
Date: Fri,  5 Jul 2024 16:20:35 +0100
Message-Id: <20240705152037.1920276-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The final user was blktap1, removed in Xen 4.6.

Fixes: f6bcc035084a ("tools: remove blktap1")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 README                                                    | 1 -
 automation/build/debian/bookworm-arm64v8.dockerfile       | 1 -
 automation/build/debian/bookworm-i386.dockerfile          | 1 -
 automation/build/debian/bookworm.dockerfile               | 1 -
 automation/build/debian/jessie-i386.dockerfile            | 1 -
 automation/build/debian/jessie.dockerfile                 | 1 -
 automation/build/debian/stretch-i386.dockerfile           | 1 -
 automation/build/debian/stretch.dockerfile                | 1 -
 automation/build/fedora/29.dockerfile                     | 1 -
 automation/build/ubuntu/bionic.dockerfile                 | 1 -
 automation/build/ubuntu/focal.dockerfile                  | 1 -
 automation/build/ubuntu/trusty.dockerfile                 | 1 -
 automation/build/ubuntu/xenial.dockerfile                 | 1 -
 automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile | 1 -
 automation/tests-artifacts/kernel/6.1.19.dockerfile       | 1 -
 15 files changed, 15 deletions(-)

diff --git a/README b/README
index 428e45549a88..bf6b8cd4d658 100644
--- a/README
+++ b/README
@@ -52,7 +52,6 @@ provided by your OS distributor:
     * Development install of zlib (e.g., zlib-dev)
     * Development install of Python 2.7 or later (e.g., python-dev)
     * Development install of curses (e.g., libncurses-dev)
-    * Development install of openssl (e.g., openssl-dev)
     * Development install of x11 (e.g. xorg-x11-dev)
     * Development install of uuid (e.g. uuid-dev)
     * Development install of yajl (e.g. libyajl-dev)
diff --git a/automation/build/debian/bookworm-arm64v8.dockerfile b/automation/build/debian/bookworm-arm64v8.dockerfile
index 3ab426a082d3..a36b04e75e95 100644
--- a/automation/build/debian/bookworm-arm64v8.dockerfile
+++ b/automation/build/debian/bookworm-arm64v8.dockerfile
@@ -15,7 +15,6 @@ RUN apt-get update && \
         build-essential \
         zlib1g-dev \
         libncurses5-dev \
-        libssl-dev \
         python3-dev \
         python3-setuptools \
         xorg-dev \
diff --git a/automation/build/debian/bookworm-i386.dockerfile b/automation/build/debian/bookworm-i386.dockerfile
index 9a54bd7293dc..2ccf32193f26 100644
--- a/automation/build/debian/bookworm-i386.dockerfile
+++ b/automation/build/debian/bookworm-i386.dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update && \
         build-essential \
         zlib1g-dev \
         libncurses5-dev \
-        libssl-dev \
         python3-dev \
         python3-setuptools \
         xorg-dev \
diff --git a/automation/build/debian/bookworm.dockerfile b/automation/build/debian/bookworm.dockerfile
index bef44dd75300..d02e3df61f76 100644
--- a/automation/build/debian/bookworm.dockerfile
+++ b/automation/build/debian/bookworm.dockerfile
@@ -15,7 +15,6 @@ RUN apt-get update && \
         build-essential \
         zlib1g-dev \
         libncurses5-dev \
-        libssl-dev \
         python3-dev \
         python3-setuptools \
         xorg-dev \
diff --git a/automation/build/debian/jessie-i386.dockerfile b/automation/build/debian/jessie-i386.dockerfile
index 1eb7ff11c7d3..d66d0692029b 100644
--- a/automation/build/debian/jessie-i386.dockerfile
+++ b/automation/build/debian/jessie-i386.dockerfile
@@ -24,7 +24,6 @@ RUN apt-get update && \
         build-essential \
         zlib1g-dev \
         libncurses5-dev \
-        libssl-dev \
         python-dev \
         xorg-dev \
         uuid-dev \
diff --git a/automation/build/debian/jessie.dockerfile b/automation/build/debian/jessie.dockerfile
index 4c0ffe66f8fe..53c3bb28f175 100644
--- a/automation/build/debian/jessie.dockerfile
+++ b/automation/build/debian/jessie.dockerfile
@@ -22,7 +22,6 @@ RUN apt-get update && \
         build-essential \
         zlib1g-dev \
         libncurses5-dev \
-        libssl-dev \
         python-dev \
         xorg-dev \
         uuid-dev \
diff --git a/automation/build/debian/stretch-i386.dockerfile b/automation/build/debian/stretch-i386.dockerfile
index 8ec9c3a24667..36108335e5c7 100644
--- a/automation/build/debian/stretch-i386.dockerfile
+++ b/automation/build/debian/stretch-i386.dockerfile
@@ -24,7 +24,6 @@ RUN apt-get update && \
         build-essential \
         zlib1g-dev \
         libncurses5-dev \
-        libssl-dev \
         python-dev \
         python3-dev \
         xorg-dev \
diff --git a/automation/build/debian/stretch.dockerfile b/automation/build/debian/stretch.dockerfile
index 2db4552662de..c5339d3c835f 100644
--- a/automation/build/debian/stretch.dockerfile
+++ b/automation/build/debian/stretch.dockerfile
@@ -22,7 +22,6 @@ RUN apt-get update && \
         build-essential \
         zlib1g-dev \
         libncurses5-dev \
-        libssl-dev \
         python-dev \
         python3-dev \
         xorg-dev \
diff --git a/automation/build/fedora/29.dockerfile b/automation/build/fedora/29.dockerfile
index 08edf70838f9..d5f017ac723d 100644
--- a/automation/build/fedora/29.dockerfile
+++ b/automation/build/fedora/29.dockerfile
@@ -10,7 +10,6 @@ RUN dnf -y install \
         gcc-c++ \
         ncurses-devel \
         zlib-devel \
-        openssl-devel \
         python-devel \
         python3-devel \
         libuuid-devel \
diff --git a/automation/build/ubuntu/bionic.dockerfile b/automation/build/ubuntu/bionic.dockerfile
index cc43fc4ade12..c83624e8ca1e 100644
--- a/automation/build/ubuntu/bionic.dockerfile
+++ b/automation/build/ubuntu/bionic.dockerfile
@@ -15,7 +15,6 @@ RUN apt-get update && \
         build-essential \
         zlib1g-dev \
         libncurses5-dev \
-        libssl-dev \
         python-dev \
         python3-dev \
         xorg-dev \
diff --git a/automation/build/ubuntu/focal.dockerfile b/automation/build/ubuntu/focal.dockerfile
index cb8bb2f6faee..cabbebf37754 100644
--- a/automation/build/ubuntu/focal.dockerfile
+++ b/automation/build/ubuntu/focal.dockerfile
@@ -15,7 +15,6 @@ RUN apt-get update && \
         build-essential \
         zlib1g-dev \
         libncurses5-dev \
-        libssl-dev \
         python3-dev \
         python3-setuptools \
         xorg-dev \
diff --git a/automation/build/ubuntu/trusty.dockerfile b/automation/build/ubuntu/trusty.dockerfile
index e2a1bda7c3a8..ecbcb71b1c21 100644
--- a/automation/build/ubuntu/trusty.dockerfile
+++ b/automation/build/ubuntu/trusty.dockerfile
@@ -15,7 +15,6 @@ RUN apt-get update && \
         build-essential \
         zlib1g-dev \
         libncurses5-dev \
-        libssl-dev \
         python-dev \
         python3-dev \
         xorg-dev \
diff --git a/automation/build/ubuntu/xenial.dockerfile b/automation/build/ubuntu/xenial.dockerfile
index 168bc70ffad8..13ecae7a0b81 100644
--- a/automation/build/ubuntu/xenial.dockerfile
+++ b/automation/build/ubuntu/xenial.dockerfile
@@ -15,7 +15,6 @@ RUN apt-get update && \
         build-essential \
         zlib1g-dev \
         libncurses5-dev \
-        libssl-dev \
         python-dev \
         python3-dev \
         xorg-dev \
diff --git a/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile b/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile
index 22359c906630..8e33995ba34b 100644
--- a/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile
+++ b/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile
@@ -14,7 +14,6 @@ WORKDIR /build
 RUN apt-get update && \
     apt-get --quiet --yes install \
         build-essential \
-        libssl-dev \
         bc \
         curl \
         flex \
diff --git a/automation/tests-artifacts/kernel/6.1.19.dockerfile b/automation/tests-artifacts/kernel/6.1.19.dockerfile
index 5cf53d290c6f..073eaa0e11fa 100644
--- a/automation/tests-artifacts/kernel/6.1.19.dockerfile
+++ b/automation/tests-artifacts/kernel/6.1.19.dockerfile
@@ -14,7 +14,6 @@ WORKDIR /build
 RUN apt-get update && \
     apt-get --quiet --yes install \
         build-essential \
-        libssl-dev \
         bc \
         curl \
         flex \
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:21:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:21:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754382.1162829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkkA-0001FN-CK; Fri, 05 Jul 2024 15:21:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754382.1162829; Fri, 05 Jul 2024 15:21: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 1sPkkA-0001F5-8X; Fri, 05 Jul 2024 15:21:02 +0000
Received: by outflank-mailman (input) for mailman id 754382;
 Fri, 05 Jul 2024 15:21: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=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPkk8-0000wu-8m
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:21:00 +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 2e964345-3ae2-11ef-bbfb-fd08da9f4363;
 Fri, 05 Jul 2024 17:20:59 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a77dc08db60so42852966b.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 08:20:59 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77c8ad6c6esm78100366b.49.2024.07.05.08.20.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 08:20: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: 2e964345-3ae2-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720192857; x=1720797657; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zYsj2Y7Nqyn4D2wCHalE/98+37692yqAWg1oGpLx1Eg=;
        b=m1ZryXSD+ZNR0kckVErXDkNOX2+b9CRlopOUV6pLqG3VtuiQlaRdfe2NLQp95nfD1S
         WMs/c+yiFgzyirJNJgHX43dbdgAsyx1Nj5K4VYE2pTYjbj0GVzTkR3AzhFDrQcdgQwQ2
         afaPHN82n1+jjAD48lpsxOp/lenjsC0UdKm/Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720192857; x=1720797657;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=zYsj2Y7Nqyn4D2wCHalE/98+37692yqAWg1oGpLx1Eg=;
        b=OkswTzTQHYpPXf8Z1ZXCSn8qLA5BYSzoVYAlRiD27LenpEOlIu+t4xnvzoPoK1sEnB
         v7Y75lvEVVz7XMiU84BkkWvarbsoBc6JwpzLduNQUnu8Vz/2V2RRrB8IpgQMhIwGPnLw
         rlcmST7QY6DHBGR2xPSGF8FMOEeB3szZvQnLX8D2Jdpi61p2R5ttgkskLDJnNToj88vp
         6+TZPexKHYGmpNoMfqt5LfwbmWeV5lUF+xk+8LEkXXvV8gAiDevy0v3WHlktuV4E0BT1
         7GoCdroJBnM1sLscvtv2nhS/OZizOBJ+k5X6Jp1BLOPfz2pcM8qO9tbeIEw3cL7ct23A
         mfBA==
X-Gm-Message-State: AOJu0Yxd9SLbnqfBAFCD3sPF/fRzJ85/UFq+G2efus7+Vz9Veid7bo6C
	+XKJl9KHUko+IhWIEnUAxDDdx05fdVksq7j7+IHf4VMBE0mqGlKtb5VNkeFVkrivfbPDtNLVxUK
	H
X-Google-Smtp-Source: AGHT+IFRbOGurfv59zC9qn5TLJtpqb9RPgCgMax2itDGmMfsMfHQAwkabLK81IJttLIcrCvcd+h4gQ==
X-Received: by 2002:a17:906:b352:b0:a72:6e13:a4b6 with SMTP id a640c23a62f3a-a77ba70d6d7mr348126466b.58.1720192857367;
        Fri, 05 Jul 2024 08:20:57 -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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 5/6] build: Drop libiconv as a build dependecy
Date: Fri,  5 Jul 2024 16:20:36 +0100
Message-Id: <20240705152037.1920276-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The final user was blktap2, removed in Xen 4.13.

Strip out the ./configure check for it, and stop explicitly installing it in
the FreeBSD testing.

Fixes: 2a556b63a22d ("Drop blktap2")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 .cirrus.yml        |  2 +-
 config/Tools.mk.in |  1 -
 tools/configure    | 44 --------------------------------------------
 tools/configure.ac |  2 --
 4 files changed, 1 insertion(+), 48 deletions(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index c431d8d2447d..72227916c736 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -5,7 +5,7 @@ freebsd_template: &FREEBSD_TEMPLATE
     APPEND_INCLUDES: /usr/local/include
 
   install_script: pkg install -y seabios gmake ninja bash
-                                 pkgconf python libiconv bison perl5
+                                 pkgconf python bison perl5
                                  yajl lzo2 pixman argp-standalone
                                  libxml2 glib git
 
diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index 50fbef841f3f..37c071961e57 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -61,7 +61,6 @@ LINUX_BACKEND_MODULES := @LINUX_BACKEND_MODULES@
 #System options
 ZLIB_CFLAGS         := @ZLIB_CFLAGS@
 ZLIB_LIBS           := @ZLIB_LIBS@
-CONFIG_LIBICONV     := @libiconv@
 EXTFS_LIBS          := @EXTFS_LIBS@
 CURSES_LIBS         := @CURSES_LIBS@
 TINFO_LIBS          := @TINFO_LIBS@
diff --git a/tools/configure b/tools/configure
index d160ca296202..d64818f258d0 100755
--- a/tools/configure
+++ b/tools/configure
@@ -659,7 +659,6 @@ libnl
 LIBNL3_LIBS
 LIBNL3_CFLAGS
 argp_ldflags
-libiconv
 PTHREAD_LIBS
 PTHREAD_LDFLAGS
 PTHREAD_CFLAGS
@@ -9741,49 +9740,6 @@ else $as_nop
   as_fn_error $? "Could not find zlib" "$LINENO" 5
 fi
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libiconv_open in -liconv" >&5
-printf %s "checking for libiconv_open in -liconv... " >&6; }
-if test ${ac_cv_lib_iconv_libiconv_open+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-liconv  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char libiconv_open ();
-int
-main (void)
-{
-return libiconv_open ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  ac_cv_lib_iconv_libiconv_open=yes
-else $as_nop
-  ac_cv_lib_iconv_libiconv_open=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iconv_libiconv_open" >&5
-printf "%s\n" "$ac_cv_lib_iconv_libiconv_open" >&6; }
-if test "x$ac_cv_lib_iconv_libiconv_open" = xyes
-then :
-  libiconv="y"
-else $as_nop
-  libiconv="n"
-fi
-
-
 ac_fn_c_check_header_compile "$LINENO" "argp.h" "ac_cv_header_argp_h" "$ac_includes_default"
 if test "x$ac_cv_header_argp_h" = xyes
 then :
diff --git a/tools/configure.ac b/tools/configure.ac
index be58f06be450..0dd6d747abb5 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -444,8 +444,6 @@ AX_CHECK_PTHREAD
 AC_CHECK_LIB([yajl], [yajl_alloc], [],
     [AC_MSG_ERROR([Could not find yajl])])
 AC_CHECK_LIB([z], [deflateCopy], [], [AC_MSG_ERROR([Could not find zlib])])
-AC_CHECK_LIB([iconv], [libiconv_open], [libiconv="y"], [libiconv="n"])
-AC_SUBST(libiconv)
 AC_CHECK_HEADER([argp.h], [
 AC_CHECK_LIB([argp], [argp_usage], [argp_ldflags="-largp"])
 ], [AC_MSG_ERROR([Could not find argp])])
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:21:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:21:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754383.1162840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkkD-0001bj-NV; Fri, 05 Jul 2024 15:21:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754383.1162840; Fri, 05 Jul 2024 15: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 1sPkkD-0001bY-J7; Fri, 05 Jul 2024 15:21:05 +0000
Received: by outflank-mailman (input) for mailman id 754383;
 Fri, 05 Jul 2024 15:21: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=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPkkC-00005r-UZ
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:21:04 +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 30dcf5c9-3ae2-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 17:21:03 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a77c2d89af8so163401066b.2
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 08:21:03 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77c8ad6c6esm78100366b.49.2024.07.05.08.20.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 08:20: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: 30dcf5c9-3ae2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720192860; x=1720797660; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4mBOORP0APxjA42q2fZJxxL6p1x9ELenOCs/p9DU+hM=;
        b=KC4aVeREmp86Nldjhk3GhyNFUBlTrXDstX9UdAWBmY1c973JEUNtOpkUUiE8i8Pl5M
         MrmpEq/NLHqi2Hcgnv2SFX0tZzig51qscXS0Cf86d1hExZMi6pQvYKt+ev4d2N7BhZmG
         6ZqBP4znYMz6U2cnbRQP201wXLxdg4UsRTarA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720192860; x=1720797660;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4mBOORP0APxjA42q2fZJxxL6p1x9ELenOCs/p9DU+hM=;
        b=mMJMOm/II+IRtIJzvorWHyQbpoaRs0GayBdA/Qw+4tGtsUQZeDzqhx8LzqMEKeqHbj
         ts1rcxlajG7DMOLgmu+6/9lnaDB4s0Jpn1pJ4D6aGPXxQkcttdxiawB5dc/ug30Wquuh
         mrlq2tZFgkH3NAOyGidvUi1/Aq+oxIhuhbQdZY0elUvYUGCJo2UZHikCSaB0/SDL1ynE
         XXuYWQCbEl0yG2LEwpm5tVZZQLUXDCULOvEh2TMTNsdoFPV2AjMHmY3DBPly9hbK1Emm
         WWWv6vi0oLddUOyOKRMxN4oYae/nbH0Q5k8zqoWnf12A27kUIGQcdkU1mpMwm2LiaGvj
         D1mg==
X-Gm-Message-State: AOJu0Yy5O8PezLEaWJBWpclUK9l+9V338vFfFRZ2GNjReAY7PQrJketQ
	d2//BOHIZjYtRE35HVF71uygtmYQTQNJDpYFMXDj5HHxf3XHrWy4Bi13dBouekwRkKNHiWznt+b
	i
X-Google-Smtp-Source: AGHT+IH1z7OAs0N5y/GAUOVNaaeDtRhVTz+AmQPZ3nv9yzGggkSbfyVrVIFdtFZOmB0bXxODaz7lkA==
X-Received: by 2002:a17:906:2712:b0:a72:5f9a:159a with SMTP id a640c23a62f3a-a77ba44d1c1mr324831366b.2.1720192859992;
        Fri, 05 Jul 2024 08:20: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 6/6] build: Drop xorg-x11 as a build dependency
Date: Fri,  5 Jul 2024 16:20:37 +0100
Message-Id: <20240705152037.1920276-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The history on this one is complicated.  The note to README was added in
commit 1f95747a4f16 ("Add openssl-dev and xorg-x11-dev to README") in 2007.

At the time, there was a vendered version of Qemu in xen.git with a local
modification using <X11/keysymdef.h> to access the monitor console over VNC.

The final reference to keysymdef.h was dropped in commit 85896a7c4dc7 ("build:
add autoconf to replace custom checks in tools/check") in 2012.  The next
prior mention was in 2009 with commit a8ccb671c377 ("tools: fix x11 check")
noting that x11 was not a direct dependcy of Xen; it was transitive through
SDL for Qemu for source-based distros.

These days its only the Debian based dockerfiles which install xorg-x11, and
Qemu builds fine in these and others without x11.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

This in particular should shrink the size of the containers somewhat.
---
 README                                              | 1 -
 automation/build/debian/bookworm-arm64v8.dockerfile | 1 -
 automation/build/debian/bookworm-i386.dockerfile    | 1 -
 automation/build/debian/bookworm.dockerfile         | 1 -
 automation/build/debian/jessie-i386.dockerfile      | 1 -
 automation/build/debian/jessie.dockerfile           | 1 -
 automation/build/debian/stretch-i386.dockerfile     | 1 -
 automation/build/debian/stretch.dockerfile          | 1 -
 automation/build/ubuntu/bionic.dockerfile           | 1 -
 automation/build/ubuntu/focal.dockerfile            | 1 -
 automation/build/ubuntu/trusty.dockerfile           | 1 -
 automation/build/ubuntu/xenial.dockerfile           | 1 -
 12 files changed, 12 deletions(-)

diff --git a/README b/README
index bf6b8cd4d658..560247e7103c 100644
--- a/README
+++ b/README
@@ -52,7 +52,6 @@ provided by your OS distributor:
     * Development install of zlib (e.g., zlib-dev)
     * Development install of Python 2.7 or later (e.g., python-dev)
     * Development install of curses (e.g., libncurses-dev)
-    * Development install of x11 (e.g. xorg-x11-dev)
     * Development install of uuid (e.g. uuid-dev)
     * Development install of yajl (e.g. libyajl-dev)
     * Development install of libaio (e.g. libaio-dev) version 0.3.107 or
diff --git a/automation/build/debian/bookworm-arm64v8.dockerfile b/automation/build/debian/bookworm-arm64v8.dockerfile
index a36b04e75e95..11acc07bff0e 100644
--- a/automation/build/debian/bookworm-arm64v8.dockerfile
+++ b/automation/build/debian/bookworm-arm64v8.dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update && \
         libncurses5-dev \
         python3-dev \
         python3-setuptools \
-        xorg-dev \
         uuid-dev \
         libyajl-dev \
         libaio-dev \
diff --git a/automation/build/debian/bookworm-i386.dockerfile b/automation/build/debian/bookworm-i386.dockerfile
index 2ccf32193f26..66fa3121c54e 100644
--- a/automation/build/debian/bookworm-i386.dockerfile
+++ b/automation/build/debian/bookworm-i386.dockerfile
@@ -19,7 +19,6 @@ RUN apt-get update && \
         libncurses5-dev \
         python3-dev \
         python3-setuptools \
-        xorg-dev \
         uuid-dev \
         libyajl-dev \
         libaio-dev \
diff --git a/automation/build/debian/bookworm.dockerfile b/automation/build/debian/bookworm.dockerfile
index d02e3df61f76..db866fde3074 100644
--- a/automation/build/debian/bookworm.dockerfile
+++ b/automation/build/debian/bookworm.dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update && \
         libncurses5-dev \
         python3-dev \
         python3-setuptools \
-        xorg-dev \
         uuid-dev \
         libyajl-dev \
         libaio-dev \
diff --git a/automation/build/debian/jessie-i386.dockerfile b/automation/build/debian/jessie-i386.dockerfile
index d66d0692029b..dfa6dae06cb8 100644
--- a/automation/build/debian/jessie-i386.dockerfile
+++ b/automation/build/debian/jessie-i386.dockerfile
@@ -25,7 +25,6 @@ RUN apt-get update && \
         zlib1g-dev \
         libncurses5-dev \
         python-dev \
-        xorg-dev \
         uuid-dev \
         libyajl-dev \
         libaio-dev \
diff --git a/automation/build/debian/jessie.dockerfile b/automation/build/debian/jessie.dockerfile
index 53c3bb28f175..82dae9ec70c4 100644
--- a/automation/build/debian/jessie.dockerfile
+++ b/automation/build/debian/jessie.dockerfile
@@ -23,7 +23,6 @@ RUN apt-get update && \
         zlib1g-dev \
         libncurses5-dev \
         python-dev \
-        xorg-dev \
         uuid-dev \
         libyajl-dev \
         libaio-dev \
diff --git a/automation/build/debian/stretch-i386.dockerfile b/automation/build/debian/stretch-i386.dockerfile
index 36108335e5c7..905096ab0ef1 100644
--- a/automation/build/debian/stretch-i386.dockerfile
+++ b/automation/build/debian/stretch-i386.dockerfile
@@ -26,7 +26,6 @@ RUN apt-get update && \
         libncurses5-dev \
         python-dev \
         python3-dev \
-        xorg-dev \
         uuid-dev \
         libyajl-dev \
         libaio-dev \
diff --git a/automation/build/debian/stretch.dockerfile b/automation/build/debian/stretch.dockerfile
index c5339d3c835f..b99d229acf14 100644
--- a/automation/build/debian/stretch.dockerfile
+++ b/automation/build/debian/stretch.dockerfile
@@ -24,7 +24,6 @@ RUN apt-get update && \
         libncurses5-dev \
         python-dev \
         python3-dev \
-        xorg-dev \
         uuid-dev \
         libyajl-dev \
         libaio-dev \
diff --git a/automation/build/ubuntu/bionic.dockerfile b/automation/build/ubuntu/bionic.dockerfile
index c83624e8ca1e..c1effc725e17 100644
--- a/automation/build/ubuntu/bionic.dockerfile
+++ b/automation/build/ubuntu/bionic.dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update && \
         libncurses5-dev \
         python-dev \
         python3-dev \
-        xorg-dev \
         uuid-dev \
         libyajl-dev \
         libaio-dev \
diff --git a/automation/build/ubuntu/focal.dockerfile b/automation/build/ubuntu/focal.dockerfile
index cabbebf37754..b49e53d185b4 100644
--- a/automation/build/ubuntu/focal.dockerfile
+++ b/automation/build/ubuntu/focal.dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update && \
         libncurses5-dev \
         python3-dev \
         python3-setuptools \
-        xorg-dev \
         uuid-dev \
         libyajl-dev \
         libaio-dev \
diff --git a/automation/build/ubuntu/trusty.dockerfile b/automation/build/ubuntu/trusty.dockerfile
index ecbcb71b1c21..1cda1bbd3fea 100644
--- a/automation/build/ubuntu/trusty.dockerfile
+++ b/automation/build/ubuntu/trusty.dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update && \
         libncurses5-dev \
         python-dev \
         python3-dev \
-        xorg-dev \
         uuid-dev \
         libyajl-dev \
         libaio-dev \
diff --git a/automation/build/ubuntu/xenial.dockerfile b/automation/build/ubuntu/xenial.dockerfile
index 13ecae7a0b81..aa8f560286b6 100644
--- a/automation/build/ubuntu/xenial.dockerfile
+++ b/automation/build/ubuntu/xenial.dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update && \
         libncurses5-dev \
         python-dev \
         python3-dev \
-        xorg-dev \
         uuid-dev \
         libyajl-dev \
         libaio-dev \
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:21:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:21:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754377.1162850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPkkx-0003BO-2X; Fri, 05 Jul 2024 15:21:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754377.1162850; Fri, 05 Jul 2024 15:21: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 1sPkkw-0003BH-UG; Fri, 05 Jul 2024 15:21:50 +0000
Received: by outflank-mailman (input) for mailman id 754377;
 Fri, 05 Jul 2024 15:20: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=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPkjz-00005r-1P
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:20:52 +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 2898f95f-3ae2-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 17:20:49 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a77c349bb81so133957566b.3
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 08:20:49 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77c8ad6c6esm78100366b.49.2024.07.05.08.20.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 08:20: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: 2898f95f-3ae2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720192847; x=1720797647; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3smfAUYhd5dbu3YxqN+pdeZ7qF8VsaVC/NDLpSf2fw4=;
        b=EjqkNP0HujHTKSRCv2a495TOivAl3IjMZcxQ6Drg0iEVHfBKHQK8vsaZ/yQUDlUuvr
         DRddWwk2yI5x24yiWyiGNGCcuVKseBLXLV1ZkJIIF3cONK9tO6uq3USXOZ7rOh8l2His
         m24OxUsc29NhVJ2+QACeXnuxDzlXCsrp/zmXc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720192847; x=1720797647;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=3smfAUYhd5dbu3YxqN+pdeZ7qF8VsaVC/NDLpSf2fw4=;
        b=s00LhbNAce1BJGdzYcCd3ojQqeoLxv2o45f0LX+Owskc34YxH9k9cipZ+L8xQCO2r7
         sLGaJ6BDrk92BrzNc8v7HE63wuuvRsBkvQnIDqcFAnqdG1VCeVJm91RR3Y7qzeEsHf9g
         XLwhPcvjpEVVhH82h2QufUJMrCjXqfjm+OwQ/ZhwW4O95YULy97VT3/fxWerfOzpq9VH
         QGuCrvMox+e54d0oapNDxMjWJiL/pBBWGYHDTXjWc17vqFZE15TCq4j1gyZjD9ztnaoE
         bKD2Mg1loHXPORic7KMcBMeDjAQigQWq3bWn8HQ9A7/uMNEzNh+Vr/rm2YewlZAJWlal
         LmHw==
X-Gm-Message-State: AOJu0YzuehgqmPVkDxyUYmdKvWyqQzF1cuQLCmslyU8cb3/PObETLnNM
	ltw3LzgkNQ/lzmlpyS3qOD4FID+QuDXRCCcDfWpbMPig2wrXsTKgsPLNl7BmLTYpl/CFukChIwf
	i
X-Google-Smtp-Source: AGHT+IE3rg+hD0sepb8F+vNSECI1zt9dzVhLWd5QoWCYTPt8S1PhuhvdlF/6+oEi9JrTF4Ypfdz1kQ==
X-Received: by 2002:a17:906:2485:b0:a77:af6b:d1a8 with SMTP id a640c23a62f3a-a77ba7272a8mr288114766b.64.1720192846256;
        Fri, 05 Jul 2024 08:20: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 1/6] build: Regenerate ./configure with Autoconf 2.71
Date: Fri,  5 Jul 2024 16:20:32 +0100
Message-Id: <20240705152037.1920276-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is the version now found in Debian Bookworm.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

This was last done by commit de333b694591 ("configure: Regenerate with
autoconf 2.69")

I've got a local container with Debian Bullseye that has 2.69, but I'm tempted
to simply backport this patch if we ever need to change anything about
autoconf on the older trees
---
 configure         | 1006 +++----
 docs/configure    |  990 +++----
 stubdom/configure | 2293 ++++++++++------
 tools/config.h.in |   15 +-
 tools/configure   | 6481 +++++++++++++++++++++++++--------------------
 5 files changed, 6174 insertions(+), 4611 deletions(-)

diff --git a/configure b/configure
index df7fec483df7..17b8361fa242 100755
--- a/configure
+++ b/configure
@@ -1,11 +1,12 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Xen Hypervisor 4.19.
+# Generated by GNU Autoconf 2.71 for Xen Hypervisor 4.19.
 #
 # Report bugs to <xen-devel@lists.xen.org>.
 #
 #
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -16,14 +17,16 @@
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else
+else $as_nop
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -33,46 +36,46 @@ esac
 fi
 
 
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" ""	$as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
 
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -81,13 +84,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
 fi
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -96,8 +92,12 @@ case $0 in #((
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
   done
 IFS=$as_save_IFS
 
@@ -109,30 +109,10 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 # Use a proper internal environment variable to ensure we don't fall
   # into an infinite loop, continuously re-executing ourselves.
@@ -154,20 +134,22 @@ esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
   fi
   # We don't want this to propagate to other subprocesses.
           { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '\${1+\"\$@\"}'='\"\$@\"'
   setopt NO_GLOB_SUBST
-else
+else \$as_nop
   case \`(set -o) 2>/dev/null\` in #(
   *posix*) :
     set -o posix ;; #(
@@ -187,41 +169,52 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; }
 as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
 as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
 as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
 
-else
+else \$as_nop
   exitcode=1; echo positional parameters were not saved.
 fi
 test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || exit 1
 test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
   test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
+  if (eval "$as_required") 2>/dev/null
+then :
   as_have_required=yes
-else
+else $as_nop
   as_have_required=no
 fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
 
-else
+else $as_nop
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
   as_found=:
   case $as_dir in #(
 	 /*)
 	   for as_base in sh bash ksh sh5; do
 	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
+	     as_shell=$as_dir$as_base
 	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+		    as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
   CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+		   if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
   break 2
 fi
 fi
@@ -229,14 +222,21 @@ fi
        esac
   as_found=false
 done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
 IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+  if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi
+fi
 
 
-      if test "x$CONFIG_SHELL" != x; then :
+      if test "x$CONFIG_SHELL" != x
+then :
   export CONFIG_SHELL
              # We cannot yet assume a decent shell, so we have to provide a
 # neutralization value for shells without unset; and this also
@@ -254,18 +254,19 @@ esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
 fi
 
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+    if test x$as_have_required = xno
+then :
+  printf "%s\n" "$0: This script requires a shell more modern than all"
+  printf "%s\n" "$0: the shells that I found on your system."
+  if test ${ZSH_VERSION+y} ; then
+    printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
   else
-    $as_echo "$0: Please tell bug-autoconf@gnu.org and
+    printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
 $0: xen-devel@lists.xen.org about your system, including
 $0: any error possibly output before this message. Then
 $0: install a modern shell, or manually run the script
@@ -293,6 +294,7 @@ as_fn_unset ()
 }
 as_unset=as_fn_unset
 
+
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -310,6 +312,14 @@ as_fn_exit ()
   as_fn_set_status $1
   exit $1
 } # as_fn_exit
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+  return $?
+}
+as_nop=as_fn_nop
 
 # as_fn_mkdir_p
 # -------------
@@ -324,7 +334,7 @@ as_fn_mkdir_p ()
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -333,7 +343,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -372,12 +382,13 @@ as_fn_executable_p ()
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else
+else $as_nop
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -389,18 +400,27 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else
+else $as_nop
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
   }
 fi # as_fn_arith
 
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+  return $?
+}
+as_nop=as_fn_nop
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
 # ----------------------------------------
@@ -412,9 +432,9 @@ as_fn_error ()
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $2" >&2
+  printf "%s\n" "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -441,7 +461,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -485,7 +505,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+    { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
   # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
   # already done that, so ensure we don't try to do so again and fall
@@ -499,6 +519,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
   exit
 }
 
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -512,6 +536,13 @@ case `echo -n x` in #(((((
   ECHO_N='-n';;
 esac
 
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -751,8 +782,6 @@ do
   *)    ac_optarg=yes ;;
   esac
 
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
   case $ac_dashdash$ac_option in
   --)
     ac_dashdash=yes ;;
@@ -793,9 +822,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -819,9 +848,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -1032,9 +1061,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1048,9 +1077,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1094,9 +1123,9 @@ Try \`$0 --help' for more information"
 
   *)
     # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+      printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
     : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
@@ -1112,7 +1141,7 @@ if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
     fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+    *)     printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
 
@@ -1176,7 +1205,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_myself" : 'X\(//\)[^/]' \| \
 	 X"$as_myself" : 'X\(//\)$' \| \
 	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
+printf "%s\n" X"$as_myself" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -1351,9 +1380,9 @@ if test "$ac_init_help" = "recursive"; then
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -1381,7 +1410,8 @@ esac
 ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
     cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
+    # Check for configure.gnu first; this name is used for a wrapper for
+    # Metaconfig's "Configure" on case-insensitive file systems.
     if test -f "$ac_srcdir/configure.gnu"; then
       echo &&
       $SHELL "$ac_srcdir/configure.gnu" --help=recursive
@@ -1389,7 +1419,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
       echo &&
       $SHELL "$ac_srcdir/configure" --help=recursive
     else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+      printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi || ac_status=$?
     cd "$ac_pwd" || { ac_status=$?; break; }
   done
@@ -1399,9 +1429,9 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 Xen Hypervisor configure 4.19
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1411,14 +1441,34 @@ fi
 ## ------------------------ ##
 ## Autoconf initialization. ##
 ## ------------------------ ##
+ac_configure_args_raw=
+for ac_arg
+do
+  case $ac_arg in
+  *\'*)
+    ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+  esac
+  as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+  *$as_nl*)
+    ac_safe_unquote= ;;
+  *)
+    ac_unsafe_z='|&;<>()$`\\"*?[ ''	' # This string ends in space, tab.
+    ac_unsafe_a="$ac_unsafe_z#~"
+    ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+    ac_configure_args_raw=`      printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by Xen Hypervisor $as_me 4.19, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+generated by GNU Autoconf 2.71.  Invocation command line was
 
-  $ $0 $@
+  $ $0$ac_configure_args_raw
 
 _ACEOF
 exec 5>>config.log
@@ -1451,8 +1501,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    printf "%s\n" "PATH: $as_dir"
   done
 IFS=$as_save_IFS
 
@@ -1487,7 +1541,7 @@ do
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
     *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+      ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
     1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
@@ -1522,11 +1576,13 @@ done
 # WARNING: Use '\'' to represent an apostrophe within the trap.
 # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
 trap 'exit_status=$?
+  # Sanitize IFS.
+  IFS=" ""	$as_nl"
   # Save into config.log some information that might help in debugging.
   {
     echo
 
-    $as_echo "## ---------------- ##
+    printf "%s\n" "## ---------------- ##
 ## Cache variables. ##
 ## ---------------- ##"
     echo
@@ -1537,8 +1593,8 @@ trap 'exit_status=$?
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -1562,7 +1618,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 )
     echo
 
-    $as_echo "## ----------------- ##
+    printf "%s\n" "## ----------------- ##
 ## Output variables. ##
 ## ----------------- ##"
     echo
@@ -1570,14 +1626,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
     do
       eval ac_val=\$$ac_var
       case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
       esac
-      $as_echo "$ac_var='\''$ac_val'\''"
+      printf "%s\n" "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
     if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
+      printf "%s\n" "## ------------------- ##
 ## File substitutions. ##
 ## ------------------- ##"
       echo
@@ -1585,15 +1641,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       do
 	eval ac_val=\$$ac_var
 	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
+	printf "%s\n" "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
 
     if test -s confdefs.h; then
-      $as_echo "## ----------- ##
+      printf "%s\n" "## ----------- ##
 ## confdefs.h. ##
 ## ----------- ##"
       echo
@@ -1601,8 +1657,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       echo
     fi
     test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
+      printf "%s\n" "$as_me: caught signal $ac_signal"
+    printf "%s\n" "$as_me: exit $exit_status"
   } >&5
   rm -f core *.core core.conftest.* &&
     rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -1616,63 +1672,48 @@ ac_signal=0
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -f -r conftest* confdefs.h
 
-$as_echo "/* confdefs.h */" > confdefs.h
+printf "%s\n" "/* confdefs.h */" > confdefs.h
 
 # Predefined preprocessor variables.
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
+printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
+printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
+printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
+printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
 
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
+  ac_site_files="$CONFIG_SITE"
 elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
+  ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
 else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
+  ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
 fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+
+for ac_site_file in $ac_site_files
 do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+  case $ac_site_file in #(
+  */*) :
+     ;; #(
+  *) :
+    ac_site_file=./$ac_site_file ;;
+esac
+  if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
 See \`config.log' for more details" "$LINENO" 5; }
   fi
@@ -1682,19 +1723,117 @@ if test -r "$cache_file"; then
   # Some versions of bash will fail to source /dev/null (special files
   # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
   if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
       *)                      . "./$cache_file";;
     esac
   fi
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
+
+# Auxiliary files required by this configure script.
+ac_aux_files="config.guess config.sub"
+
+# Locations in which to look for auxiliary files.
+ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.."
+
+# Search for a directory containing all of the required auxiliary files,
+# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
+# If we don't find one directory that contains all the files we need,
+# we report the set of missing files from the *first* directory in
+# $ac_aux_dir_candidates and give up.
+ac_missing_aux_files=""
+ac_first_candidate=:
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in $ac_aux_dir_candidates
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+  as_found=:
+
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}:  trying $as_dir" >&5
+  ac_aux_dir_found=yes
+  ac_install_sh=
+  for ac_aux in $ac_aux_files
+  do
+    # As a special case, if "install-sh" is required, that requirement
+    # can be satisfied by any of "install-sh", "install.sh", or "shtool",
+    # and $ac_install_sh is set appropriately for whichever one is found.
+    if test x"$ac_aux" = x"install-sh"
+    then
+      if test -f "${as_dir}install-sh"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install-sh found" >&5
+        ac_install_sh="${as_dir}install-sh -c"
+      elif test -f "${as_dir}install.sh"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install.sh found" >&5
+        ac_install_sh="${as_dir}install.sh -c"
+      elif test -f "${as_dir}shtool"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}shtool found" >&5
+        ac_install_sh="${as_dir}shtool install -c"
+      else
+        ac_aux_dir_found=no
+        if $ac_first_candidate; then
+          ac_missing_aux_files="${ac_missing_aux_files} install-sh"
+        else
+          break
+        fi
+      fi
+    else
+      if test -f "${as_dir}${ac_aux}"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}${ac_aux} found" >&5
+      else
+        ac_aux_dir_found=no
+        if $ac_first_candidate; then
+          ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
+        else
+          break
+        fi
+      fi
+    fi
+  done
+  if test "$ac_aux_dir_found" = yes; then
+    ac_aux_dir="$as_dir"
+    break
+  fi
+  ac_first_candidate=false
+
+  as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+  as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
+fi
+
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+if test -f "${ac_aux_dir}config.guess"; then
+  ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
+fi
+if test -f "${ac_aux_dir}config.sub"; then
+  ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
+fi
+if test -f "$ac_aux_dir/configure"; then
+  ac_configure="$SHELL ${ac_aux_dir}configure"
+fi
+
 # Check that the precious variables saved in the cache have kept the same
 # value.
 ac_cache_corrupted=false
@@ -1705,12 +1844,12 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
     *)
@@ -1719,24 +1858,24 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
 	ac_old_val_w=`echo x $ac_old_val`
 	ac_new_val_w=`echo x $ac_new_val`
 	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
 	  ac_cache_corrupted=:
 	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
 	  eval $ac_var=\$ac_old_val
 	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+printf "%s\n" "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+printf "%s\n" "$as_me:   current value: \`$ac_new_val'" >&2;}
       fi;;
   esac
   # Pass precious variables to config.status.
   if test "$ac_new_set" = set; then
     case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
     *) ac_arg=$ac_var=$ac_new_val ;;
     esac
     case " $ac_configure_args " in
@@ -1746,11 +1885,12 @@ $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
   fi
 done
 if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+	    and start over" "$LINENO" 5
 fi
 ## -------------------- ##
 ## Main body of script. ##
@@ -1767,55 +1907,30 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 ac_config_files="$ac_config_files config/Toplevel.mk config/Paths.mk"
 
 
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
 
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+  # Make sure we can run config.sub.
+$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+printf %s "checking build system type... " >&6; }
+if test ${ac_cv_build+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+  ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
 test "x$ac_build_alias" = x &&
   as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+printf "%s\n" "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
 *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
@@ -1834,21 +1949,22 @@ IFS=$ac_save_IFS
 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+printf %s "checking host system type... " >&6; }
+if test ${ac_cv_host+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+  ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
 fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+printf "%s\n" "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
 *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
@@ -1941,16 +2057,15 @@ CONFIG_DIR=$sysconfdir
 XEN_CONFIG_DIR=$CONFIG_DIR/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_CONFIG_DIR "$XEN_CONFIG_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_CONFIG_DIR \"$XEN_CONFIG_DIR\"" >>confdefs.h
 
 
 
 # Check whether --with-initddir was given.
-if test "${with_initddir+set}" = set; then :
+if test ${with_initddir+y}
+then :
   withval=$with_initddir; initddir_path=$withval
-else
+else $as_nop
   case "$host_os" in
          *linux*)
          if test -d $sysconfdir/rc.d/init.d ; then
@@ -1968,9 +2083,10 @@ fi
 
 
 # Check whether --with-sysconfig-leaf-dir was given.
-if test "${with_sysconfig_leaf_dir+set}" = set; then :
+if test ${with_sysconfig_leaf_dir+y}
+then :
   withval=$with_sysconfig_leaf_dir; config_leaf_dir=$withval
-else
+else $as_nop
   config_leaf_dir=sysconfig
     if test ! -d /etc/sysconfig ; then config_leaf_dir=default ; fi
 fi
@@ -1980,52 +2096,55 @@ CONFIG_LEAF_DIR=$config_leaf_dir
 
 
 # Check whether --with-libexec-leaf-dir was given.
-if test "${with_libexec_leaf_dir+set}" = set; then :
+if test ${with_libexec_leaf_dir+y}
+then :
   withval=$with_libexec_leaf_dir; libexec_subdir=$withval
-else
+else $as_nop
   libexec_subdir=$PACKAGE_TARNAME
 fi
 
 
 
 # Check whether --with-xen-scriptdir was given.
-if test "${with_xen_scriptdir+set}" = set; then :
+if test ${with_xen_scriptdir+y}
+then :
   withval=$with_xen_scriptdir; xen_scriptdir_path=$withval
-else
+else $as_nop
   xen_scriptdir_path=$XEN_CONFIG_DIR/scripts
 fi
 
 XEN_SCRIPT_DIR=$xen_scriptdir_path
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_SCRIPT_DIR "$XEN_SCRIPT_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_SCRIPT_DIR \"$XEN_SCRIPT_DIR\"" >>confdefs.h
 
 
 
 # Check whether --with-xen-dumpdir was given.
-if test "${with_xen_dumpdir+set}" = set; then :
+if test ${with_xen_dumpdir+y}
+then :
   withval=$with_xen_dumpdir; xen_dumpdir_path=$withval
-else
+else $as_nop
   xen_dumpdir_path=$localstatedir/lib/xen/dump
 fi
 
 
 
 # Check whether --with-rundir was given.
-if test "${with_rundir+set}" = set; then :
+if test ${with_rundir+y}
+then :
   withval=$with_rundir; rundir_path=$withval
-else
+else $as_nop
   rundir_path=$localstatedir/run
 fi
 
 
 
 # Check whether --with-debugdir was given.
-if test "${with_debugdir+set}" = set; then :
+if test ${with_debugdir+y}
+then :
   withval=$with_debugdir; debugdir_path=$withval
-else
+else $as_nop
   debugdir_path=$prefix/lib/debug
 fi
 
@@ -2044,9 +2163,7 @@ LIBEXEC=`eval echo $libexecdir/$libexec_subdir`
 LIBEXEC_BIN=${LIBEXEC}/bin
 
 
-cat >>confdefs.h <<_ACEOF
-#define LIBEXEC_BIN "$LIBEXEC_BIN"
-_ACEOF
+printf "%s\n" "#define LIBEXEC_BIN \"$LIBEXEC_BIN\"" >>confdefs.h
 
 LIBEXEC_LIB=${LIBEXEC}/lib
 
@@ -2055,41 +2172,31 @@ LIBEXEC_INC=${LIBEXEC}/include
 XENFIRMWAREDIR=${LIBEXEC}/boot
 
 
-cat >>confdefs.h <<_ACEOF
-#define XENFIRMWAREDIR "$XENFIRMWAREDIR"
-_ACEOF
+printf "%s\n" "#define XENFIRMWAREDIR \"$XENFIRMWAREDIR\"" >>confdefs.h
 
 
 XEN_RUN_DIR=$rundir_path/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_RUN_DIR "$XEN_RUN_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_RUN_DIR \"$XEN_RUN_DIR\"" >>confdefs.h
 
 
 XEN_LOG_DIR=$localstatedir/log/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_LOG_DIR "$XEN_LOG_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_LOG_DIR \"$XEN_LOG_DIR\"" >>confdefs.h
 
 
 XEN_RUN_STORED=$rundir_path/xenstored
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_RUN_STORED "$XEN_RUN_STORED"
-_ACEOF
+printf "%s\n" "#define XEN_RUN_STORED \"$XEN_RUN_STORED\"" >>confdefs.h
 
 
 XEN_LIB_DIR=$localstatedir/lib/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_LIB_DIR "$XEN_LIB_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_LIB_DIR \"$XEN_LIB_DIR\"" >>confdefs.h
 
 
 SHAREDIR=$prefix/share
@@ -2105,9 +2212,7 @@ case "$host_os" in
 esac
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_LOCK_DIR "$XEN_LOCK_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_LOCK_DIR \"$XEN_LOCK_DIR\"" >>confdefs.h
 
 
 XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
@@ -2116,9 +2221,7 @@ XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
 XEN_DUMP_DIR=$xen_dumpdir_path
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_DUMP_DIR "$XEN_DUMP_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_DUMP_DIR \"$XEN_DUMP_DIR\"" >>confdefs.h
 
 
 DEBUG_DIR=$debugdir_path
@@ -2144,19 +2247,22 @@ esac
 
 
 # Check whether --enable-xen was given.
-if test "${enable_xen+set}" = set; then :
+if test ${enable_xen+y}
+then :
   enableval=$enable_xen;
 
-if test "x$enableval" = "xyes"; then :
+if test "x$enableval" = "xyes"
+then :
 
 
 xen=y
 SUBSYSTEMS="$SUBSYSTEMS xen"
 
 
-else
+else $as_nop
 
-if test "x$enableval" = "xno"; then :
+if test "x$enableval" = "xno"
+then :
 
 
 xen=n
@@ -2167,7 +2273,7 @@ fi
 fi
 
 
-else
+else $as_nop
 
 
 xen=y
@@ -2177,7 +2283,8 @@ SUBSYSTEMS="$SUBSYSTEMS xen"
 fi
 
 
-if test -e "xen/configure"; then :
+if test -e "xen/configure"
+then :
 
 if test "x$xen" = "xy" || test "x$xen" = "x" ; then
     subdirs="$subdirs xen"
@@ -2190,19 +2297,22 @@ fi
 
 
 # Check whether --enable-tools was given.
-if test "${enable_tools+set}" = set; then :
+if test ${enable_tools+y}
+then :
   enableval=$enable_tools;
 
-if test "x$enableval" = "xyes"; then :
+if test "x$enableval" = "xyes"
+then :
 
 
 tools=y
 SUBSYSTEMS="$SUBSYSTEMS tools"
 
 
-else
+else $as_nop
 
-if test "x$enableval" = "xno"; then :
+if test "x$enableval" = "xno"
+then :
 
 
 tools=n
@@ -2213,7 +2323,7 @@ fi
 fi
 
 
-else
+else $as_nop
 
 
 tools=y
@@ -2223,7 +2333,8 @@ SUBSYSTEMS="$SUBSYSTEMS tools"
 fi
 
 
-if test -e "tools/configure"; then :
+if test -e "tools/configure"
+then :
 
 if test "x$tools" = "xy" || test "x$tools" = "x" ; then
     subdirs="$subdirs tools"
@@ -2236,19 +2347,22 @@ fi
 
 
 # Check whether --enable-stubdom was given.
-if test "${enable_stubdom+set}" = set; then :
+if test ${enable_stubdom+y}
+then :
   enableval=$enable_stubdom;
 
-if test "x$enableval" = "xyes"; then :
+if test "x$enableval" = "xyes"
+then :
 
 
 stubdom=y
 SUBSYSTEMS="$SUBSYSTEMS stubdom"
 
 
-else
+else $as_nop
 
-if test "x$enableval" = "xno"; then :
+if test "x$enableval" = "xno"
+then :
 
 
 stubdom=n
@@ -2259,16 +2373,17 @@ fi
 fi
 
 
-else
+else $as_nop
 
-if test "x$arch_enable_stubdom" = "xy"; then :
+if test "x$arch_enable_stubdom" = "xy"
+then :
 
 
 stubdom=y
 SUBSYSTEMS="$SUBSYSTEMS stubdom"
 
 
-else
+else $as_nop
 
 
 stubdom=n
@@ -2279,7 +2394,8 @@ fi
 fi
 
 
-if test -e "stubdom/configure"; then :
+if test -e "stubdom/configure"
+then :
 
 if test "x$stubdom" = "xy" || test "x$stubdom" = "x" ; then
     subdirs="$subdirs stubdom"
@@ -2292,19 +2408,22 @@ fi
 
 
 # Check whether --enable-docs was given.
-if test "${enable_docs+set}" = set; then :
+if test ${enable_docs+y}
+then :
   enableval=$enable_docs;
 
-if test "x$enableval" = "xyes"; then :
+if test "x$enableval" = "xyes"
+then :
 
 
 docs=y
 SUBSYSTEMS="$SUBSYSTEMS docs"
 
 
-else
+else $as_nop
 
-if test "x$enableval" = "xno"; then :
+if test "x$enableval" = "xno"
+then :
 
 
 docs=n
@@ -2315,7 +2434,7 @@ fi
 fi
 
 
-else
+else $as_nop
 
 
 docs=y
@@ -2325,7 +2444,8 @@ SUBSYSTEMS="$SUBSYSTEMS docs"
 fi
 
 
-if test -e "docs/configure"; then :
+if test -e "docs/configure"
+then :
 
 if test "x$docs" = "xy" || test "x$docs" = "x" ; then
     subdirs="$subdirs docs"
@@ -2372,8 +2492,8 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -2403,15 +2523,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      /^ac_cv_env_/b end
      t clear
      :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
      t end
      s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
       if test ! -f "$cache_file" || test -h "$cache_file"; then
 	cat confcache >"$cache_file"
       else
@@ -2425,8 +2545,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;}
       fi
     fi
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -2479,7 +2599,7 @@ U=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
   as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -2495,8 +2615,8 @@ LTLIBOBJS=$ac_ltlibobjs
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
 as_write_fail=0
 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
@@ -2519,14 +2639,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else
+else $as_nop
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -2536,46 +2658,46 @@ esac
 fi
 
 
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" ""	$as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
 
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -2584,13 +2706,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
 fi
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -2599,8 +2714,12 @@ case $0 in #((
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
   done
 IFS=$as_save_IFS
 
@@ -2612,30 +2731,10 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
@@ -2648,13 +2747,14 @@ as_fn_error ()
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $2" >&2
+  printf "%s\n" "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
 
+
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -2681,18 +2781,20 @@ as_fn_unset ()
   { eval $1=; unset $1;}
 }
 as_unset=as_fn_unset
+
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else
+else $as_nop
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -2704,12 +2806,13 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else
+else $as_nop
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
@@ -2740,7 +2843,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -2762,6 +2865,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -2775,6 +2882,12 @@ case `echo -n x` in #(((((
   ECHO_N='-n';;
 esac
 
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -2816,7 +2929,7 @@ as_fn_mkdir_p ()
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -2825,7 +2938,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -2888,7 +3001,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # values after options handling.
 ac_log="
 This file was extended by Xen Hypervisor $as_me 4.19, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -2938,14 +3051,16 @@ Report bugs to <xen-devel@lists.xen.org>.
 Xen Hypervisor home page: <https://www.xen.org/>."
 
 _ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
 Xen Hypervisor config.status 4.19
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -2982,21 +3097,21 @@ do
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
+    printf "%s\n" "$ac_cs_version"; exit ;;
   --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
+    printf "%s\n" "$ac_cs_config"; exit ;;
   --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
     case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     '') as_fn_error $? "missing file argument" ;;
     esac
     as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h |  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
+    printf "%s\n" "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil | --si | --s)
     ac_cs_silent=: ;;
@@ -3024,7 +3139,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
   set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
   export CONFIG_SHELL
   exec "\$@"
@@ -3038,7 +3153,7 @@ exec 5>>config.log
   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 ## Running $as_me. ##
 _ASBOX
-  $as_echo "$ac_log"
+  printf "%s\n" "$ac_log"
 } >&5
 
 _ACEOF
@@ -3064,7 +3179,7 @@ done
 # We use the long form for the default assignment because of an extremely
 # bizarre bug on SunOS 4.1.3.
 if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
 fi
 
 # Have a temporary directory for convenience.  Make it in the build tree
@@ -3292,7 +3407,7 @@ do
 	   esac ||
 	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
     done
 
@@ -3300,17 +3415,17 @@ do
     # use $as_me), people would be surprised to read:
     #    /* config.h.  Generated by config.status.  */
     configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	  printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
 	`' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf "%s\n" "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
     case $configure_input in #(
     *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
+       ac_sed_conf_input=`printf "%s\n" "$configure_input" |
        sed 's/[\\\\&|]/\\\\&/g'`;; #(
     *) ac_sed_conf_input=$configure_input;;
     esac
@@ -3327,7 +3442,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 	 X"$ac_file" : 'X\(//\)$' \| \
 	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
+printf "%s\n" X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -3351,9 +3466,9 @@ $as_echo X"$ac_file" |
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -3406,8 +3521,8 @@ ac_sed_dataroot='
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   ac_datarootdir_hack='
@@ -3449,9 +3564,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
       "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
   rm -f "$ac_tmp/stdin"
@@ -3537,7 +3652,7 @@ if test "$no_recursion" != yes; then
       ;;
     *)
       case $ac_arg in
-      *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+      *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
       esac
       as_fn_append ac_sub_configure_args " '$ac_arg'" ;;
     esac
@@ -3547,7 +3662,7 @@ if test "$no_recursion" != yes; then
   # in subdir configurations.
   ac_arg="--prefix=$prefix"
   case $ac_arg in
-  *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+  *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
   esac
   ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
 
@@ -3568,17 +3683,17 @@ if test "$no_recursion" != yes; then
     test -d "$srcdir/$ac_dir" || continue
 
     ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
-    $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
-    $as_echo "$ac_msg" >&6
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
+    printf "%s\n" "$ac_msg" >&6
     as_dir="$ac_dir"; as_fn_mkdir_p
     ac_builddir=.
 
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -3608,17 +3723,15 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
     cd "$ac_dir"
 
-    # Check for guested configure; otherwise get Cygnus style configure.
+    # Check for configure.gnu first; this name is used for a wrapper for
+    # Metaconfig's "Configure" on case-insensitive file systems.
     if test -f "$ac_srcdir/configure.gnu"; then
       ac_sub_configure=$ac_srcdir/configure.gnu
     elif test -f "$ac_srcdir/configure"; then
       ac_sub_configure=$ac_srcdir/configure
-    elif test -f "$ac_srcdir/configure.in"; then
-      # This should be Cygnus configure.
-      ac_sub_configure=$ac_aux_dir/configure
     else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
-$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
+printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
       ac_sub_configure=
     fi
 
@@ -3631,8 +3744,8 @@ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
 	ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
       esac
 
-      { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
-$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
+printf "%s\n" "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
       # The eval makes quoting arguments work.
       eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
 	   --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
@@ -3643,7 +3756,8 @@ $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cach
   done
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
+
diff --git a/docs/configure b/docs/configure
index b55e67e93a8f..b6732af3b49c 100755
--- a/docs/configure
+++ b/docs/configure
@@ -1,11 +1,12 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Xen Hypervisor Documentation 4.19.
+# Generated by GNU Autoconf 2.71 for Xen Hypervisor Documentation 4.19.
 #
 # Report bugs to <xen-devel@lists.xen.org>.
 #
 #
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -16,14 +17,16 @@
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else
+else $as_nop
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -33,46 +36,46 @@ esac
 fi
 
 
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" ""	$as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
 
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -81,13 +84,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
 fi
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -96,8 +92,12 @@ case $0 in #((
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
   done
 IFS=$as_save_IFS
 
@@ -109,30 +109,10 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 # Use a proper internal environment variable to ensure we don't fall
   # into an infinite loop, continuously re-executing ourselves.
@@ -154,20 +134,22 @@ esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
   fi
   # We don't want this to propagate to other subprocesses.
           { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '\${1+\"\$@\"}'='\"\$@\"'
   setopt NO_GLOB_SUBST
-else
+else \$as_nop
   case \`(set -o) 2>/dev/null\` in #(
   *posix*) :
     set -o posix ;; #(
@@ -187,41 +169,52 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; }
 as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
 as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
 as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
 
-else
+else \$as_nop
   exitcode=1; echo positional parameters were not saved.
 fi
 test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || exit 1
 test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
   test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
+  if (eval "$as_required") 2>/dev/null
+then :
   as_have_required=yes
-else
+else $as_nop
   as_have_required=no
 fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
 
-else
+else $as_nop
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
   as_found=:
   case $as_dir in #(
 	 /*)
 	   for as_base in sh bash ksh sh5; do
 	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
+	     as_shell=$as_dir$as_base
 	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+		    as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
   CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+		   if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
   break 2
 fi
 fi
@@ -229,14 +222,21 @@ fi
        esac
   as_found=false
 done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
 IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+  if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi
+fi
 
 
-      if test "x$CONFIG_SHELL" != x; then :
+      if test "x$CONFIG_SHELL" != x
+then :
   export CONFIG_SHELL
              # We cannot yet assume a decent shell, so we have to provide a
 # neutralization value for shells without unset; and this also
@@ -254,18 +254,19 @@ esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
 fi
 
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+    if test x$as_have_required = xno
+then :
+  printf "%s\n" "$0: This script requires a shell more modern than all"
+  printf "%s\n" "$0: the shells that I found on your system."
+  if test ${ZSH_VERSION+y} ; then
+    printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
   else
-    $as_echo "$0: Please tell bug-autoconf@gnu.org and
+    printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
 $0: xen-devel@lists.xen.org about your system, including
 $0: any error possibly output before this message. Then
 $0: install a modern shell, or manually run the script
@@ -293,6 +294,7 @@ as_fn_unset ()
 }
 as_unset=as_fn_unset
 
+
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -310,6 +312,14 @@ as_fn_exit ()
   as_fn_set_status $1
   exit $1
 } # as_fn_exit
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+  return $?
+}
+as_nop=as_fn_nop
 
 # as_fn_mkdir_p
 # -------------
@@ -324,7 +334,7 @@ as_fn_mkdir_p ()
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -333,7 +343,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -372,12 +382,13 @@ as_fn_executable_p ()
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else
+else $as_nop
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -389,18 +400,27 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else
+else $as_nop
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
   }
 fi # as_fn_arith
 
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+  return $?
+}
+as_nop=as_fn_nop
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
 # ----------------------------------------
@@ -412,9 +432,9 @@ as_fn_error ()
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $2" >&2
+  printf "%s\n" "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -441,7 +461,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -485,7 +505,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+    { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
   # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
   # already done that, so ensure we don't try to do so again and fall
@@ -499,6 +519,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
   exit
 }
 
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -512,6 +536,13 @@ case `echo -n x` in #(((((
   ECHO_N='-n';;
 esac
 
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -741,8 +772,6 @@ do
   *)    ac_optarg=yes ;;
   esac
 
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
   case $ac_dashdash$ac_option in
   --)
     ac_dashdash=yes ;;
@@ -783,9 +812,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -809,9 +838,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -1022,9 +1051,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1038,9 +1067,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1084,9 +1113,9 @@ Try \`$0 --help' for more information"
 
   *)
     # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+      printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
     : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
@@ -1102,7 +1131,7 @@ if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
     fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+    *)     printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
 
@@ -1166,7 +1195,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_myself" : 'X\(//\)[^/]' \| \
 	 X"$as_myself" : 'X\(//\)$' \| \
 	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
+printf "%s\n" X"$as_myself" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -1339,9 +1368,9 @@ if test "$ac_init_help" = "recursive"; then
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -1369,7 +1398,8 @@ esac
 ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
     cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
+    # Check for configure.gnu first; this name is used for a wrapper for
+    # Metaconfig's "Configure" on case-insensitive file systems.
     if test -f "$ac_srcdir/configure.gnu"; then
       echo &&
       $SHELL "$ac_srcdir/configure.gnu" --help=recursive
@@ -1377,7 +1407,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
       echo &&
       $SHELL "$ac_srcdir/configure" --help=recursive
     else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+      printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi || ac_status=$?
     cd "$ac_pwd" || { ac_status=$?; break; }
   done
@@ -1387,9 +1417,9 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 Xen Hypervisor Documentation configure 4.19
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1399,14 +1429,34 @@ fi
 ## ------------------------ ##
 ## Autoconf initialization. ##
 ## ------------------------ ##
+ac_configure_args_raw=
+for ac_arg
+do
+  case $ac_arg in
+  *\'*)
+    ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+  esac
+  as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+  *$as_nl*)
+    ac_safe_unquote= ;;
+  *)
+    ac_unsafe_z='|&;<>()$`\\"*?[ ''	' # This string ends in space, tab.
+    ac_unsafe_a="$ac_unsafe_z#~"
+    ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+    ac_configure_args_raw=`      printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by Xen Hypervisor Documentation $as_me 4.19, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+generated by GNU Autoconf 2.71.  Invocation command line was
 
-  $ $0 $@
+  $ $0$ac_configure_args_raw
 
 _ACEOF
 exec 5>>config.log
@@ -1439,8 +1489,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    printf "%s\n" "PATH: $as_dir"
   done
 IFS=$as_save_IFS
 
@@ -1475,7 +1529,7 @@ do
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
     *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+      ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
     1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
@@ -1510,11 +1564,13 @@ done
 # WARNING: Use '\'' to represent an apostrophe within the trap.
 # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
 trap 'exit_status=$?
+  # Sanitize IFS.
+  IFS=" ""	$as_nl"
   # Save into config.log some information that might help in debugging.
   {
     echo
 
-    $as_echo "## ---------------- ##
+    printf "%s\n" "## ---------------- ##
 ## Cache variables. ##
 ## ---------------- ##"
     echo
@@ -1525,8 +1581,8 @@ trap 'exit_status=$?
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -1550,7 +1606,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 )
     echo
 
-    $as_echo "## ----------------- ##
+    printf "%s\n" "## ----------------- ##
 ## Output variables. ##
 ## ----------------- ##"
     echo
@@ -1558,14 +1614,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
     do
       eval ac_val=\$$ac_var
       case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
       esac
-      $as_echo "$ac_var='\''$ac_val'\''"
+      printf "%s\n" "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
     if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
+      printf "%s\n" "## ------------------- ##
 ## File substitutions. ##
 ## ------------------- ##"
       echo
@@ -1573,15 +1629,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       do
 	eval ac_val=\$$ac_var
 	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
+	printf "%s\n" "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
 
     if test -s confdefs.h; then
-      $as_echo "## ----------- ##
+      printf "%s\n" "## ----------- ##
 ## confdefs.h. ##
 ## ----------- ##"
       echo
@@ -1589,8 +1645,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       echo
     fi
     test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
+      printf "%s\n" "$as_me: caught signal $ac_signal"
+    printf "%s\n" "$as_me: exit $exit_status"
   } >&5
   rm -f core *.core core.conftest.* &&
     rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -1604,63 +1660,48 @@ ac_signal=0
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -f -r conftest* confdefs.h
 
-$as_echo "/* confdefs.h */" > confdefs.h
+printf "%s\n" "/* confdefs.h */" > confdefs.h
 
 # Predefined preprocessor variables.
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
+printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
+printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
+printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
+printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
 
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
+  ac_site_files="$CONFIG_SITE"
 elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
+  ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
 else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
+  ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
 fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+
+for ac_site_file in $ac_site_files
 do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+  case $ac_site_file in #(
+  */*) :
+     ;; #(
+  *) :
+    ac_site_file=./$ac_site_file ;;
+esac
+  if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
 See \`config.log' for more details" "$LINENO" 5; }
   fi
@@ -1670,16 +1711,16 @@ if test -r "$cache_file"; then
   # Some versions of bash will fail to source /dev/null (special files
   # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
   if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
       *)                      . "./$cache_file";;
     esac
   fi
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
@@ -1693,12 +1734,12 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
     *)
@@ -1707,24 +1748,24 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
 	ac_old_val_w=`echo x $ac_old_val`
 	ac_new_val_w=`echo x $ac_new_val`
 	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
 	  ac_cache_corrupted=:
 	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
 	  eval $ac_var=\$ac_old_val
 	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+printf "%s\n" "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+printf "%s\n" "$as_me:   current value: \`$ac_new_val'" >&2;}
       fi;;
   esac
   # Pass precious variables to config.status.
   if test "$ac_new_set" = set; then
     case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
     *) ac_arg=$ac_var=$ac_new_val ;;
     esac
     case " $ac_configure_args " in
@@ -1734,11 +1775,12 @@ $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
   fi
 done
 if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+	    and start over" "$LINENO" 5
 fi
 ## -------------------- ##
 ## Main body of script. ##
@@ -1754,34 +1796,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 ac_config_files="$ac_config_files ../config/Docs.mk man/xl.cfg.5.pod man/xl.1.pod man/xl-disk-configuration.5.pod man/xl-network-configuration.5.pod man/xl.conf.5.pod"
 
-ac_aux_dir=
-for ac_dir in ../ "$srcdir"/../; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../ \"$srcdir\"/../" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
 
 
 # M4 Macro includes
@@ -1848,16 +1862,15 @@ CONFIG_DIR=$sysconfdir
 XEN_CONFIG_DIR=$CONFIG_DIR/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_CONFIG_DIR "$XEN_CONFIG_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_CONFIG_DIR \"$XEN_CONFIG_DIR\"" >>confdefs.h
 
 
 
 # Check whether --with-initddir was given.
-if test "${with_initddir+set}" = set; then :
+if test ${with_initddir+y}
+then :
   withval=$with_initddir; initddir_path=$withval
-else
+else $as_nop
   case "$host_os" in
          *linux*)
          if test -d $sysconfdir/rc.d/init.d ; then
@@ -1875,9 +1888,10 @@ fi
 
 
 # Check whether --with-sysconfig-leaf-dir was given.
-if test "${with_sysconfig_leaf_dir+set}" = set; then :
+if test ${with_sysconfig_leaf_dir+y}
+then :
   withval=$with_sysconfig_leaf_dir; config_leaf_dir=$withval
-else
+else $as_nop
   config_leaf_dir=sysconfig
     if test ! -d /etc/sysconfig ; then config_leaf_dir=default ; fi
 fi
@@ -1887,52 +1901,55 @@ CONFIG_LEAF_DIR=$config_leaf_dir
 
 
 # Check whether --with-libexec-leaf-dir was given.
-if test "${with_libexec_leaf_dir+set}" = set; then :
+if test ${with_libexec_leaf_dir+y}
+then :
   withval=$with_libexec_leaf_dir; libexec_subdir=$withval
-else
+else $as_nop
   libexec_subdir=$PACKAGE_TARNAME
 fi
 
 
 
 # Check whether --with-xen-scriptdir was given.
-if test "${with_xen_scriptdir+set}" = set; then :
+if test ${with_xen_scriptdir+y}
+then :
   withval=$with_xen_scriptdir; xen_scriptdir_path=$withval
-else
+else $as_nop
   xen_scriptdir_path=$XEN_CONFIG_DIR/scripts
 fi
 
 XEN_SCRIPT_DIR=$xen_scriptdir_path
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_SCRIPT_DIR "$XEN_SCRIPT_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_SCRIPT_DIR \"$XEN_SCRIPT_DIR\"" >>confdefs.h
 
 
 
 # Check whether --with-xen-dumpdir was given.
-if test "${with_xen_dumpdir+set}" = set; then :
+if test ${with_xen_dumpdir+y}
+then :
   withval=$with_xen_dumpdir; xen_dumpdir_path=$withval
-else
+else $as_nop
   xen_dumpdir_path=$localstatedir/lib/xen/dump
 fi
 
 
 
 # Check whether --with-rundir was given.
-if test "${with_rundir+set}" = set; then :
+if test ${with_rundir+y}
+then :
   withval=$with_rundir; rundir_path=$withval
-else
+else $as_nop
   rundir_path=$localstatedir/run
 fi
 
 
 
 # Check whether --with-debugdir was given.
-if test "${with_debugdir+set}" = set; then :
+if test ${with_debugdir+y}
+then :
   withval=$with_debugdir; debugdir_path=$withval
-else
+else $as_nop
   debugdir_path=$prefix/lib/debug
 fi
 
@@ -1951,9 +1968,7 @@ LIBEXEC=`eval echo $libexecdir/$libexec_subdir`
 LIBEXEC_BIN=${LIBEXEC}/bin
 
 
-cat >>confdefs.h <<_ACEOF
-#define LIBEXEC_BIN "$LIBEXEC_BIN"
-_ACEOF
+printf "%s\n" "#define LIBEXEC_BIN \"$LIBEXEC_BIN\"" >>confdefs.h
 
 LIBEXEC_LIB=${LIBEXEC}/lib
 
@@ -1962,41 +1977,31 @@ LIBEXEC_INC=${LIBEXEC}/include
 XENFIRMWAREDIR=${LIBEXEC}/boot
 
 
-cat >>confdefs.h <<_ACEOF
-#define XENFIRMWAREDIR "$XENFIRMWAREDIR"
-_ACEOF
+printf "%s\n" "#define XENFIRMWAREDIR \"$XENFIRMWAREDIR\"" >>confdefs.h
 
 
 XEN_RUN_DIR=$rundir_path/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_RUN_DIR "$XEN_RUN_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_RUN_DIR \"$XEN_RUN_DIR\"" >>confdefs.h
 
 
 XEN_LOG_DIR=$localstatedir/log/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_LOG_DIR "$XEN_LOG_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_LOG_DIR \"$XEN_LOG_DIR\"" >>confdefs.h
 
 
 XEN_RUN_STORED=$rundir_path/xenstored
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_RUN_STORED "$XEN_RUN_STORED"
-_ACEOF
+printf "%s\n" "#define XEN_RUN_STORED \"$XEN_RUN_STORED\"" >>confdefs.h
 
 
 XEN_LIB_DIR=$localstatedir/lib/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_LIB_DIR "$XEN_LIB_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_LIB_DIR \"$XEN_LIB_DIR\"" >>confdefs.h
 
 
 SHAREDIR=$prefix/share
@@ -2012,9 +2017,7 @@ case "$host_os" in
 esac
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_LOCK_DIR "$XEN_LOCK_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_LOCK_DIR \"$XEN_LOCK_DIR\"" >>confdefs.h
 
 
 XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
@@ -2023,9 +2026,7 @@ XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
 XEN_DUMP_DIR=$xen_dumpdir_path
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_DUMP_DIR "$XEN_DUMP_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_DUMP_DIR \"$XEN_DUMP_DIR\"" >>confdefs.h
 
 
 DEBUG_DIR=$debugdir_path
@@ -2036,11 +2037,12 @@ DEBUG_DIR=$debugdir_path
 
     # Extract the first word of "fig2dev", so it can be a program name with args.
 set dummy fig2dev; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FIG2DEV+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_FIG2DEV+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $FIG2DEV in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_FIG2DEV="$FIG2DEV" # Let the user override the test with a path.
@@ -2050,11 +2052,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_FIG2DEV="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_FIG2DEV="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2066,18 +2072,19 @@ esac
 fi
 FIG2DEV=$ac_cv_path_FIG2DEV
 if test -n "$FIG2DEV"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIG2DEV" >&5
-$as_echo "$FIG2DEV" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FIG2DEV" >&5
+printf "%s\n" "$FIG2DEV" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-    if ! test -x "$ac_cv_path_FIG2DEV"; then :
+    if ! test -x "$ac_cv_path_FIG2DEV"
+then :
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: fig2dev is not available so some documentation won't be built" >&5
-$as_echo "$as_me: WARNING: fig2dev is not available so some documentation won't be built" >&2;}
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: fig2dev is not available so some documentation won't be built" >&5
+printf "%s\n" "$as_me: WARNING: fig2dev is not available so some documentation won't be built" >&2;}
 
 fi
 
@@ -2085,11 +2092,12 @@ fi
 
     # Extract the first word of "pod2man", so it can be a program name with args.
 set dummy pod2man; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_POD2MAN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_POD2MAN+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $POD2MAN in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_POD2MAN="$POD2MAN" # Let the user override the test with a path.
@@ -2099,11 +2107,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_POD2MAN="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_POD2MAN="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2115,18 +2127,19 @@ esac
 fi
 POD2MAN=$ac_cv_path_POD2MAN
 if test -n "$POD2MAN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POD2MAN" >&5
-$as_echo "$POD2MAN" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $POD2MAN" >&5
+printf "%s\n" "$POD2MAN" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-    if ! test -x "$ac_cv_path_POD2MAN"; then :
+    if ! test -x "$ac_cv_path_POD2MAN"
+then :
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pod2man is not available so some documentation won't be built" >&5
-$as_echo "$as_me: WARNING: pod2man is not available so some documentation won't be built" >&2;}
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: pod2man is not available so some documentation won't be built" >&5
+printf "%s\n" "$as_me: WARNING: pod2man is not available so some documentation won't be built" >&2;}
 
 fi
 
@@ -2134,11 +2147,12 @@ fi
 
     # Extract the first word of "pod2html", so it can be a program name with args.
 set dummy pod2html; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_POD2HTML+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_POD2HTML+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $POD2HTML in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_POD2HTML="$POD2HTML" # Let the user override the test with a path.
@@ -2148,11 +2162,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_POD2HTML="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_POD2HTML="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2164,18 +2182,19 @@ esac
 fi
 POD2HTML=$ac_cv_path_POD2HTML
 if test -n "$POD2HTML"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POD2HTML" >&5
-$as_echo "$POD2HTML" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $POD2HTML" >&5
+printf "%s\n" "$POD2HTML" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-    if ! test -x "$ac_cv_path_POD2HTML"; then :
+    if ! test -x "$ac_cv_path_POD2HTML"
+then :
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pod2html is not available so some documentation won't be built" >&5
-$as_echo "$as_me: WARNING: pod2html is not available so some documentation won't be built" >&2;}
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: pod2html is not available so some documentation won't be built" >&5
+printf "%s\n" "$as_me: WARNING: pod2html is not available so some documentation won't be built" >&2;}
 
 fi
 
@@ -2183,11 +2202,12 @@ fi
 
     # Extract the first word of "pod2text", so it can be a program name with args.
 set dummy pod2text; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_POD2TEXT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_POD2TEXT+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $POD2TEXT in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_POD2TEXT="$POD2TEXT" # Let the user override the test with a path.
@@ -2197,11 +2217,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_POD2TEXT="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_POD2TEXT="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2213,18 +2237,19 @@ esac
 fi
 POD2TEXT=$ac_cv_path_POD2TEXT
 if test -n "$POD2TEXT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POD2TEXT" >&5
-$as_echo "$POD2TEXT" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $POD2TEXT" >&5
+printf "%s\n" "$POD2TEXT" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-    if ! test -x "$ac_cv_path_POD2TEXT"; then :
+    if ! test -x "$ac_cv_path_POD2TEXT"
+then :
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pod2text is not available so some documentation won't be built" >&5
-$as_echo "$as_me: WARNING: pod2text is not available so some documentation won't be built" >&2;}
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: pod2text is not available so some documentation won't be built" >&5
+printf "%s\n" "$as_me: WARNING: pod2text is not available so some documentation won't be built" >&2;}
 
 fi
 
@@ -2232,11 +2257,12 @@ fi
 
     # Extract the first word of "pandoc", so it can be a program name with args.
 set dummy pandoc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PANDOC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PANDOC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $PANDOC in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PANDOC="$PANDOC" # Let the user override the test with a path.
@@ -2246,11 +2272,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PANDOC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_PANDOC="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2262,18 +2292,19 @@ esac
 fi
 PANDOC=$ac_cv_path_PANDOC
 if test -n "$PANDOC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PANDOC" >&5
-$as_echo "$PANDOC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PANDOC" >&5
+printf "%s\n" "$PANDOC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-    if ! test -x "$ac_cv_path_PANDOC"; then :
+    if ! test -x "$ac_cv_path_PANDOC"
+then :
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pandoc is not available so some documentation won't be built" >&5
-$as_echo "$as_me: WARNING: pandoc is not available so some documentation won't be built" >&2;}
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: pandoc is not available so some documentation won't be built" >&5
+printf "%s\n" "$as_me: WARNING: pandoc is not available so some documentation won't be built" >&2;}
 
 fi
 
@@ -2281,11 +2312,12 @@ fi
 
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PERL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PERL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $PERL in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
@@ -2295,11 +2327,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_PERL="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2312,11 +2348,11 @@ esac
 fi
 PERL=$ac_cv_path_PERL
 if test -n "$PERL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
-$as_echo "$PERL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+printf "%s\n" "$PERL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2352,8 +2388,8 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -2383,15 +2419,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      /^ac_cv_env_/b end
      t clear
      :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
      t end
      s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
       if test ! -f "$cache_file" || test -h "$cache_file"; then
 	cat confcache >"$cache_file"
       else
@@ -2405,8 +2441,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;}
       fi
     fi
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -2459,7 +2495,7 @@ U=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
   as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -2475,8 +2511,8 @@ LTLIBOBJS=$ac_ltlibobjs
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
 as_write_fail=0
 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
@@ -2499,14 +2535,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else
+else $as_nop
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -2516,46 +2554,46 @@ esac
 fi
 
 
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" ""	$as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
 
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -2564,13 +2602,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
 fi
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -2579,8 +2610,12 @@ case $0 in #((
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
   done
 IFS=$as_save_IFS
 
@@ -2592,30 +2627,10 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
@@ -2628,13 +2643,14 @@ as_fn_error ()
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $2" >&2
+  printf "%s\n" "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
 
+
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -2661,18 +2677,20 @@ as_fn_unset ()
   { eval $1=; unset $1;}
 }
 as_unset=as_fn_unset
+
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else
+else $as_nop
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -2684,12 +2702,13 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else
+else $as_nop
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
@@ -2720,7 +2739,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -2742,6 +2761,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -2755,6 +2778,12 @@ case `echo -n x` in #(((((
   ECHO_N='-n';;
 esac
 
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -2796,7 +2825,7 @@ as_fn_mkdir_p ()
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -2805,7 +2834,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -2868,7 +2897,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # values after options handling.
 ac_log="
 This file was extended by Xen Hypervisor Documentation $as_me 4.19, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -2918,14 +2947,16 @@ Report bugs to <xen-devel@lists.xen.org>.
 Xen Hypervisor Documentation home page: <https://www.xen.org/>."
 
 _ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
 Xen Hypervisor Documentation config.status 4.19
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -2962,21 +2993,21 @@ do
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
+    printf "%s\n" "$ac_cs_version"; exit ;;
   --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
+    printf "%s\n" "$ac_cs_config"; exit ;;
   --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
     case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     '') as_fn_error $? "missing file argument" ;;
     esac
     as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h |  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
+    printf "%s\n" "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil | --si | --s)
     ac_cs_silent=: ;;
@@ -3004,7 +3035,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
   set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
   export CONFIG_SHELL
   exec "\$@"
@@ -3018,7 +3049,7 @@ exec 5>>config.log
   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 ## Running $as_me. ##
 _ASBOX
-  $as_echo "$ac_log"
+  printf "%s\n" "$ac_log"
 } >&5
 
 _ACEOF
@@ -3048,7 +3079,7 @@ done
 # We use the long form for the default assignment because of an extremely
 # bizarre bug on SunOS 4.1.3.
 if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
 fi
 
 # Have a temporary directory for convenience.  Make it in the build tree
@@ -3276,7 +3307,7 @@ do
 	   esac ||
 	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
     done
 
@@ -3284,17 +3315,17 @@ do
     # use $as_me), people would be surprised to read:
     #    /* config.h.  Generated by config.status.  */
     configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	  printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
 	`' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf "%s\n" "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
     case $configure_input in #(
     *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
+       ac_sed_conf_input=`printf "%s\n" "$configure_input" |
        sed 's/[\\\\&|]/\\\\&/g'`;; #(
     *) ac_sed_conf_input=$configure_input;;
     esac
@@ -3311,7 +3342,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 	 X"$ac_file" : 'X\(//\)$' \| \
 	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
+printf "%s\n" X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -3335,9 +3366,9 @@ $as_echo X"$ac_file" |
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -3390,8 +3421,8 @@ ac_sed_dataroot='
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   ac_datarootdir_hack='
@@ -3433,9 +3464,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
       "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
   rm -f "$ac_tmp/stdin"
@@ -3482,7 +3513,8 @@ if test "$no_create" != yes; then
   $ac_cs_success || as_fn_exit 1
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
+
diff --git a/stubdom/configure b/stubdom/configure
index 6d41be91b6c8..e642fab1f1cd 100755
--- a/stubdom/configure
+++ b/stubdom/configure
@@ -1,11 +1,12 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Xen Hypervisor Stub Domains 4.19.
+# Generated by GNU Autoconf 2.71 for Xen Hypervisor Stub Domains 4.19.
 #
 # Report bugs to <xen-devel@lists.xen.org>.
 #
 #
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -16,14 +17,16 @@
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else
+else $as_nop
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -33,46 +36,46 @@ esac
 fi
 
 
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" ""	$as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
 
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -81,13 +84,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
 fi
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -96,8 +92,12 @@ case $0 in #((
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
   done
 IFS=$as_save_IFS
 
@@ -109,30 +109,10 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 # Use a proper internal environment variable to ensure we don't fall
   # into an infinite loop, continuously re-executing ourselves.
@@ -154,20 +134,22 @@ esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
   fi
   # We don't want this to propagate to other subprocesses.
           { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '\${1+\"\$@\"}'='\"\$@\"'
   setopt NO_GLOB_SUBST
-else
+else \$as_nop
   case \`(set -o) 2>/dev/null\` in #(
   *posix*) :
     set -o posix ;; #(
@@ -187,41 +169,52 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; }
 as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
 as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
 as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
 
-else
+else \$as_nop
   exitcode=1; echo positional parameters were not saved.
 fi
 test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || exit 1
 test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
   test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
+  if (eval "$as_required") 2>/dev/null
+then :
   as_have_required=yes
-else
+else $as_nop
   as_have_required=no
 fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
 
-else
+else $as_nop
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
   as_found=:
   case $as_dir in #(
 	 /*)
 	   for as_base in sh bash ksh sh5; do
 	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
+	     as_shell=$as_dir$as_base
 	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+		    as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
   CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+		   if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
   break 2
 fi
 fi
@@ -229,14 +222,21 @@ fi
        esac
   as_found=false
 done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
 IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+  if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi
+fi
 
 
-      if test "x$CONFIG_SHELL" != x; then :
+      if test "x$CONFIG_SHELL" != x
+then :
   export CONFIG_SHELL
              # We cannot yet assume a decent shell, so we have to provide a
 # neutralization value for shells without unset; and this also
@@ -254,18 +254,19 @@ esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
 fi
 
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+    if test x$as_have_required = xno
+then :
+  printf "%s\n" "$0: This script requires a shell more modern than all"
+  printf "%s\n" "$0: the shells that I found on your system."
+  if test ${ZSH_VERSION+y} ; then
+    printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
   else
-    $as_echo "$0: Please tell bug-autoconf@gnu.org and
+    printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
 $0: xen-devel@lists.xen.org about your system, including
 $0: any error possibly output before this message. Then
 $0: install a modern shell, or manually run the script
@@ -293,6 +294,7 @@ as_fn_unset ()
 }
 as_unset=as_fn_unset
 
+
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -310,6 +312,14 @@ as_fn_exit ()
   as_fn_set_status $1
   exit $1
 } # as_fn_exit
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+  return $?
+}
+as_nop=as_fn_nop
 
 # as_fn_mkdir_p
 # -------------
@@ -324,7 +334,7 @@ as_fn_mkdir_p ()
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -333,7 +343,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -372,12 +382,13 @@ as_fn_executable_p ()
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else
+else $as_nop
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -389,18 +400,27 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else
+else $as_nop
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
   }
 fi # as_fn_arith
 
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+  return $?
+}
+as_nop=as_fn_nop
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
 # ----------------------------------------
@@ -412,9 +432,9 @@ as_fn_error ()
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $2" >&2
+  printf "%s\n" "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -441,7 +461,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -485,7 +505,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+    { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
   # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
   # already done that, so ensure we don't try to do so again and fall
@@ -499,6 +519,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
   exit
 }
 
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -512,6 +536,13 @@ case `echo -n x` in #(((((
   ECHO_N='-n';;
 esac
 
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -778,8 +809,6 @@ do
   *)    ac_optarg=yes ;;
   esac
 
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
   case $ac_dashdash$ac_option in
   --)
     ac_dashdash=yes ;;
@@ -820,9 +849,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -846,9 +875,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -1059,9 +1088,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1075,9 +1104,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1121,9 +1150,9 @@ Try \`$0 --help' for more information"
 
   *)
     # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+      printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
     : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
@@ -1139,7 +1168,7 @@ if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
     fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+    *)     printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
 
@@ -1203,7 +1232,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_myself" : 'X\(//\)[^/]' \| \
 	 X"$as_myself" : 'X\(//\)$' \| \
 	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
+printf "%s\n" X"$as_myself" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -1390,9 +1419,9 @@ if test "$ac_init_help" = "recursive"; then
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -1420,7 +1449,8 @@ esac
 ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
     cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
+    # Check for configure.gnu first; this name is used for a wrapper for
+    # Metaconfig's "Configure" on case-insensitive file systems.
     if test -f "$ac_srcdir/configure.gnu"; then
       echo &&
       $SHELL "$ac_srcdir/configure.gnu" --help=recursive
@@ -1428,7 +1458,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
       echo &&
       $SHELL "$ac_srcdir/configure" --help=recursive
     else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+      printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi || ac_status=$?
     cd "$ac_pwd" || { ac_status=$?; break; }
   done
@@ -1438,9 +1468,9 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 Xen Hypervisor Stub Domains configure 4.19
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1457,14 +1487,14 @@ fi
 ac_fn_c_try_compile ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
+  rm -f conftest.$ac_objext conftest.beam
   if { { ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -1472,14 +1502,15 @@ $as_echo "$ac_try_echo"; } >&5
     cat conftest.er1 >&5
     mv -f conftest.er1 conftest.err
   fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
+       } && test -s conftest.$ac_objext
+then :
   ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+  printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_retval=1
@@ -1488,14 +1519,34 @@ fi
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_compile
+ac_configure_args_raw=
+for ac_arg
+do
+  case $ac_arg in
+  *\'*)
+    ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+  esac
+  as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+  *$as_nl*)
+    ac_safe_unquote= ;;
+  *)
+    ac_unsafe_z='|&;<>()$`\\"*?[ ''	' # This string ends in space, tab.
+    ac_unsafe_a="$ac_unsafe_z#~"
+    ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+    ac_configure_args_raw=`      printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by Xen Hypervisor Stub Domains $as_me 4.19, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+generated by GNU Autoconf 2.71.  Invocation command line was
 
-  $ $0 $@
+  $ $0$ac_configure_args_raw
 
 _ACEOF
 exec 5>>config.log
@@ -1528,8 +1579,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    printf "%s\n" "PATH: $as_dir"
   done
 IFS=$as_save_IFS
 
@@ -1564,7 +1619,7 @@ do
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
     *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+      ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
     1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
@@ -1599,11 +1654,13 @@ done
 # WARNING: Use '\'' to represent an apostrophe within the trap.
 # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
 trap 'exit_status=$?
+  # Sanitize IFS.
+  IFS=" ""	$as_nl"
   # Save into config.log some information that might help in debugging.
   {
     echo
 
-    $as_echo "## ---------------- ##
+    printf "%s\n" "## ---------------- ##
 ## Cache variables. ##
 ## ---------------- ##"
     echo
@@ -1614,8 +1671,8 @@ trap 'exit_status=$?
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -1639,7 +1696,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 )
     echo
 
-    $as_echo "## ----------------- ##
+    printf "%s\n" "## ----------------- ##
 ## Output variables. ##
 ## ----------------- ##"
     echo
@@ -1647,14 +1704,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
     do
       eval ac_val=\$$ac_var
       case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
       esac
-      $as_echo "$ac_var='\''$ac_val'\''"
+      printf "%s\n" "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
     if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
+      printf "%s\n" "## ------------------- ##
 ## File substitutions. ##
 ## ------------------- ##"
       echo
@@ -1662,15 +1719,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       do
 	eval ac_val=\$$ac_var
 	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
+	printf "%s\n" "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
 
     if test -s confdefs.h; then
-      $as_echo "## ----------- ##
+      printf "%s\n" "## ----------- ##
 ## confdefs.h. ##
 ## ----------- ##"
       echo
@@ -1678,8 +1735,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       echo
     fi
     test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
+      printf "%s\n" "$as_me: caught signal $ac_signal"
+    printf "%s\n" "$as_me: exit $exit_status"
   } >&5
   rm -f core *.core core.conftest.* &&
     rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -1693,63 +1750,48 @@ ac_signal=0
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -f -r conftest* confdefs.h
 
-$as_echo "/* confdefs.h */" > confdefs.h
+printf "%s\n" "/* confdefs.h */" > confdefs.h
 
 # Predefined preprocessor variables.
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
+printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
+printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
+printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
+printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
 
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
+  ac_site_files="$CONFIG_SITE"
 elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
+  ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
 else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
+  ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
 fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+
+for ac_site_file in $ac_site_files
 do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+  case $ac_site_file in #(
+  */*) :
+     ;; #(
+  *) :
+    ac_site_file=./$ac_site_file ;;
+esac
+  if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
 See \`config.log' for more details" "$LINENO" 5; }
   fi
@@ -1759,19 +1801,425 @@ if test -r "$cache_file"; then
   # Some versions of bash will fail to source /dev/null (special files
   # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
   if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
       *)                      . "./$cache_file";;
     esac
   fi
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
+# Test code for whether the C compiler supports C89 (global declarations)
+ac_c_conftest_c89_globals='
+/* Does the compiler advertise C89 conformance?
+   Do not test the value of __STDC__, because some compilers set it to 0
+   while being otherwise adequately conformant. */
+#if !defined __STDC__
+# error "Compiler does not advertise C89 conformance"
+#endif
+
+#include <stddef.h>
+#include <stdarg.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7 src/conf.sh.  */
+struct buf { int x; };
+struct buf * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not \xHH hex character constants.
+   These do not provoke an error unfortunately, instead are silently treated
+   as an "x".  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously \x00 != x always comes out true, for an
+   array size at least.  It is necessary to write \x00 == 0 to get something
+   that is true only with -std.  */
+int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) '\''x'\''
+int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
+               int, int);'
+
+# Test code for whether the C compiler supports C89 (body of main).
+ac_c_conftest_c89_main='
+ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
+'
+
+# Test code for whether the C compiler supports C99 (global declarations)
+ac_c_conftest_c99_globals='
+// Does the compiler advertise C99 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
+# error "Compiler does not advertise C99 conformance"
+#endif
+
+#include <stdbool.h>
+extern int puts (const char *);
+extern int printf (const char *, ...);
+extern int dprintf (int, const char *, ...);
+extern void *malloc (size_t);
+
+// Check varargs macros.  These examples are taken from C99 6.10.3.5.
+// dprintf is used instead of fprintf to avoid needing to declare
+// FILE and stderr.
+#define debug(...) dprintf (2, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+  int x = 1234;
+  int y = 5678;
+  debug ("Flag");
+  debug ("X = %d\n", x);
+  showlist (The first, second, and third items.);
+  report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+  #error "your preprocessor is broken"
+#endif
+#if BIG_OK
+#else
+  #error "your preprocessor is broken"
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+  int datasize;
+  double data[];
+};
+
+struct named_init {
+  int number;
+  const wchar_t *name;
+  double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+  // See if C++-style comments work.
+  // Iterate through items via the restricted pointer.
+  // Also check for declarations in for loops.
+  for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
+    continue;
+  return 0;
+}
+
+// Check varargs and va_copy.
+static bool
+test_varargs (const char *format, ...)
+{
+  va_list args;
+  va_start (args, format);
+  va_list args_copy;
+  va_copy (args_copy, args);
+
+  const char *str = "";
+  int number = 0;
+  float fnumber = 0;
+
+  while (*format)
+    {
+      switch (*format++)
+	{
+	case '\''s'\'': // string
+	  str = va_arg (args_copy, const char *);
+	  break;
+	case '\''d'\'': // int
+	  number = va_arg (args_copy, int);
+	  break;
+	case '\''f'\'': // float
+	  fnumber = va_arg (args_copy, double);
+	  break;
+	default:
+	  break;
+	}
+    }
+  va_end (args_copy);
+  va_end (args);
+
+  return *str && number && fnumber;
+}
+'
+
+# Test code for whether the C compiler supports C99 (body of main).
+ac_c_conftest_c99_main='
+  // Check bool.
+  _Bool success = false;
+  success |= (argc != 0);
+
+  // Check restrict.
+  if (test_restrict ("String literal") == 0)
+    success = true;
+  char *restrict newvar = "Another string";
+
+  // Check varargs.
+  success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
+  test_varargs_macros ();
+
+  // Check flexible array members.
+  struct incomplete_array *ia =
+    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+  ia->datasize = 10;
+  for (int i = 0; i < ia->datasize; ++i)
+    ia->data[i] = i * 1.234;
+
+  // Check named initializers.
+  struct named_init ni = {
+    .number = 34,
+    .name = L"Test wide string",
+    .average = 543.34343,
+  };
+
+  ni.number = 58;
+
+  int dynamic_array[ni.number];
+  dynamic_array[0] = argv[0][0];
+  dynamic_array[ni.number - 1] = 543;
+
+  // work around unused variable warnings
+  ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
+	 || dynamic_array[ni.number - 1] != 543);
+'
+
+# Test code for whether the C compiler supports C11 (global declarations)
+ac_c_conftest_c11_globals='
+// Does the compiler advertise C11 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
+# error "Compiler does not advertise C11 conformance"
+#endif
+
+// Check _Alignas.
+char _Alignas (double) aligned_as_double;
+char _Alignas (0) no_special_alignment;
+extern char aligned_as_int;
+char _Alignas (0) _Alignas (int) aligned_as_int;
+
+// Check _Alignof.
+enum
+{
+  int_alignment = _Alignof (int),
+  int_array_alignment = _Alignof (int[100]),
+  char_alignment = _Alignof (char)
+};
+_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
+
+// Check _Noreturn.
+int _Noreturn does_not_return (void) { for (;;) continue; }
+
+// Check _Static_assert.
+struct test_static_assert
+{
+  int x;
+  _Static_assert (sizeof (int) <= sizeof (long int),
+                  "_Static_assert does not work in struct");
+  long int y;
+};
+
+// Check UTF-8 literals.
+#define u8 syntax error!
+char const utf8_literal[] = u8"happens to be ASCII" "another string";
+
+// Check duplicate typedefs.
+typedef long *long_ptr;
+typedef long int *long_ptr;
+typedef long_ptr long_ptr;
+
+// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
+struct anonymous
+{
+  union {
+    struct { int i; int j; };
+    struct { int k; long int l; } w;
+  };
+  int m;
+} v1;
+'
+
+# Test code for whether the C compiler supports C11 (body of main).
+ac_c_conftest_c11_main='
+  _Static_assert ((offsetof (struct anonymous, i)
+		   == offsetof (struct anonymous, w.k)),
+		  "Anonymous union alignment botch");
+  v1.i = 2;
+  v1.w.k = 5;
+  ok |= v1.i != 5;
+'
+
+# Test code for whether the C compiler supports C11 (complete).
+ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+${ac_c_conftest_c11_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  ${ac_c_conftest_c99_main}
+  ${ac_c_conftest_c11_main}
+  return ok;
+}
+"
+
+# Test code for whether the C compiler supports C99 (complete).
+ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  ${ac_c_conftest_c99_main}
+  return ok;
+}
+"
+
+# Test code for whether the C compiler supports C89 (complete).
+ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  return ok;
+}
+"
+
+
+# Auxiliary files required by this configure script.
+ac_aux_files="install-sh config.guess config.sub"
+
+# Locations in which to look for auxiliary files.
+ac_aux_dir_candidates="${srcdir}/../"
+
+# Search for a directory containing all of the required auxiliary files,
+# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
+# If we don't find one directory that contains all the files we need,
+# we report the set of missing files from the *first* directory in
+# $ac_aux_dir_candidates and give up.
+ac_missing_aux_files=""
+ac_first_candidate=:
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in $ac_aux_dir_candidates
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+  as_found=:
+
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}:  trying $as_dir" >&5
+  ac_aux_dir_found=yes
+  ac_install_sh=
+  for ac_aux in $ac_aux_files
+  do
+    # As a special case, if "install-sh" is required, that requirement
+    # can be satisfied by any of "install-sh", "install.sh", or "shtool",
+    # and $ac_install_sh is set appropriately for whichever one is found.
+    if test x"$ac_aux" = x"install-sh"
+    then
+      if test -f "${as_dir}install-sh"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install-sh found" >&5
+        ac_install_sh="${as_dir}install-sh -c"
+      elif test -f "${as_dir}install.sh"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install.sh found" >&5
+        ac_install_sh="${as_dir}install.sh -c"
+      elif test -f "${as_dir}shtool"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}shtool found" >&5
+        ac_install_sh="${as_dir}shtool install -c"
+      else
+        ac_aux_dir_found=no
+        if $ac_first_candidate; then
+          ac_missing_aux_files="${ac_missing_aux_files} install-sh"
+        else
+          break
+        fi
+      fi
+    else
+      if test -f "${as_dir}${ac_aux}"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}${ac_aux} found" >&5
+      else
+        ac_aux_dir_found=no
+        if $ac_first_candidate; then
+          ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
+        else
+          break
+        fi
+      fi
+    fi
+  done
+  if test "$ac_aux_dir_found" = yes; then
+    ac_aux_dir="$as_dir"
+    break
+  fi
+  ac_first_candidate=false
+
+  as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+  as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
+fi
+
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+if test -f "${ac_aux_dir}config.guess"; then
+  ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
+fi
+if test -f "${ac_aux_dir}config.sub"; then
+  ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
+fi
+if test -f "$ac_aux_dir/configure"; then
+  ac_configure="$SHELL ${ac_aux_dir}configure"
+fi
+
 # Check that the precious variables saved in the cache have kept the same
 # value.
 ac_cache_corrupted=false
@@ -1782,12 +2230,12 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
     *)
@@ -1796,24 +2244,24 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
 	ac_old_val_w=`echo x $ac_old_val`
 	ac_new_val_w=`echo x $ac_new_val`
 	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
 	  ac_cache_corrupted=:
 	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
 	  eval $ac_var=\$ac_old_val
 	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+printf "%s\n" "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+printf "%s\n" "$as_me:   current value: \`$ac_new_val'" >&2;}
       fi;;
   esac
   # Pass precious variables to config.status.
   if test "$ac_new_set" = set; then
     case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
     *) ac_arg=$ac_var=$ac_new_val ;;
     esac
     case " $ac_configure_args " in
@@ -1823,11 +2271,12 @@ $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
   fi
 done
 if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+	    and start over" "$LINENO" 5
 fi
 ## -------------------- ##
 ## Main body of script. ##
@@ -1843,56 +2292,32 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 ac_config_files="$ac_config_files ../config/Stubdom.mk"
 
-ac_aux_dir=
-for ac_dir in ../ "$srcdir"/../; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../ \"$srcdir\"/../" "$LINENO" 5
-fi
 
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
 
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  # Make sure we can run config.sub.
+$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+printf %s "checking build system type... " >&6; }
+if test ${ac_cv_build+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+  ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
 test "x$ac_build_alias" = x &&
   as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+printf "%s\n" "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
 *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
@@ -1911,21 +2336,22 @@ IFS=$ac_save_IFS
 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+printf %s "checking host system type... " >&6; }
+if test ${ac_cv_host+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+  ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
 fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+printf "%s\n" "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
 *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
@@ -1986,10 +2412,12 @@ 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+set}" = set; then :
+if test ${enable_ioemu_stubdom+y}
+then :
   enableval=$enable_ioemu_stubdom;
 
-if test "x$enableval" = "xyes"; then :
+if test "x$enableval" = "xyes"
+then :
 
 
 ioemu=y
@@ -1999,9 +2427,10 @@ STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu"
 STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-ioemu"
 
 
-else
+else $as_nop
 
-if test "x$enableval" = "xno"; then :
+if test "x$enableval" = "xno"
+then :
 
 
 ioemu=n
@@ -2017,10 +2446,12 @@ fi
 
 
 # Check whether --enable-c-stubdom was given.
-if test "${enable_c_stubdom+set}" = set; then :
+if test ${enable_c_stubdom+y}
+then :
   enableval=$enable_c_stubdom;
 
-if test "x$enableval" = "xyes"; then :
+if test "x$enableval" = "xyes"
+then :
 
 
 c=y
@@ -2030,9 +2461,10 @@ STUBDOM_INSTALL="$STUBDOM_INSTALL install-c"
 STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-c"
 
 
-else
+else $as_nop
 
-if test "x$enableval" = "xno"; then :
+if test "x$enableval" = "xno"
+then :
 
 
 c=n
@@ -2043,7 +2475,7 @@ fi
 fi
 
 
-else
+else $as_nop
 
 
 c=n
@@ -2055,10 +2487,12 @@ fi
 
 
 # Check whether --enable-pv-grub was given.
-if test "${enable_pv_grub+set}" = set; then :
+if test ${enable_pv_grub+y}
+then :
   enableval=$enable_pv_grub;
 
-if test "x$enableval" = "xyes"; then :
+if test "x$enableval" = "xyes"
+then :
 
 
 grub=y
@@ -2068,9 +2502,10 @@ STUBDOM_INSTALL="$STUBDOM_INSTALL install-grub"
 STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-grub"
 
 
-else
+else $as_nop
 
-if test "x$enableval" = "xno"; then :
+if test "x$enableval" = "xno"
+then :
 
 
 grub=n
@@ -2081,7 +2516,7 @@ fi
 fi
 
 
-else
+else $as_nop
 
 
 grub=n
@@ -2093,10 +2528,12 @@ fi
 
 
 # Check whether --enable-xenstore-stubdom was given.
-if test "${enable_xenstore_stubdom+set}" = set; then :
+if test ${enable_xenstore_stubdom+y}
+then :
   enableval=$enable_xenstore_stubdom;
 
-if test "x$enableval" = "xyes"; then :
+if test "x$enableval" = "xyes"
+then :
 
 
 xenstore=y
@@ -2106,9 +2543,10 @@ STUBDOM_INSTALL="$STUBDOM_INSTALL install-xenstore"
 STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-xenstore"
 
 
-else
+else $as_nop
 
-if test "x$enableval" = "xno"; then :
+if test "x$enableval" = "xno"
+then :
 
 
 xenstore=n
@@ -2119,7 +2557,7 @@ fi
 fi
 
 
-else
+else $as_nop
 
 
 xenstore=y
@@ -2135,10 +2573,12 @@ fi
 
 
 # Check whether --enable-xenstorepvh-stubdom was given.
-if test "${enable_xenstorepvh_stubdom+set}" = set; then :
+if test ${enable_xenstorepvh_stubdom+y}
+then :
   enableval=$enable_xenstorepvh_stubdom;
 
-if test "x$enableval" = "xyes"; then :
+if test "x$enableval" = "xyes"
+then :
 
 
 xenstorepvh=y
@@ -2148,9 +2588,10 @@ STUBDOM_INSTALL="$STUBDOM_INSTALL install-xenstorepvh"
 STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-xenstorepvh"
 
 
-else
+else $as_nop
 
-if test "x$enableval" = "xno"; then :
+if test "x$enableval" = "xno"
+then :
 
 
 xenstorepvh=n
@@ -2161,7 +2602,7 @@ fi
 fi
 
 
-else
+else $as_nop
 
 
 xenstorepvh=y
@@ -2177,10 +2618,12 @@ fi
 
 
 # Check whether --enable-vtpm-stubdom was given.
-if test "${enable_vtpm_stubdom+set}" = set; then :
+if test ${enable_vtpm_stubdom+y}
+then :
   enableval=$enable_vtpm_stubdom;
 
-if test "x$enableval" = "xyes"; then :
+if test "x$enableval" = "xyes"
+then :
 
 
 vtpm=y
@@ -2190,9 +2633,10 @@ STUBDOM_INSTALL="$STUBDOM_INSTALL install-vtpm"
 STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-vtpm"
 
 
-else
+else $as_nop
 
-if test "x$enableval" = "xno"; then :
+if test "x$enableval" = "xno"
+then :
 
 
 vtpm=n
@@ -2208,10 +2652,12 @@ fi
 
 
 # Check whether --enable-vtpmmgr-stubdom was given.
-if test "${enable_vtpmmgr_stubdom+set}" = set; then :
+if test ${enable_vtpmmgr_stubdom+y}
+then :
   enableval=$enable_vtpmmgr_stubdom;
 
-if test "x$enableval" = "xyes"; then :
+if test "x$enableval" = "xyes"
+then :
 
 
 vtpmmgr=y
@@ -2221,9 +2667,10 @@ STUBDOM_INSTALL="$STUBDOM_INSTALL install-vtpmmgr"
 STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-vtpmmgr"
 
 
-else
+else $as_nop
 
-if test "x$enableval" = "xno"; then :
+if test "x$enableval" = "xno"
+then :
 
 
 vtpmmgr=n
@@ -2239,25 +2686,29 @@ fi
 
 
 # Check whether --enable-qemu-traditional was given.
-if test "${enable_qemu_traditional+set}" = set; then :
+if test ${enable_qemu_traditional+y}
+then :
   enableval=$enable_qemu_traditional;
 fi
 
-if test "x$enable_qemu_traditional" = "xyes"; then :
+if test "x$enable_qemu_traditional" = "xyes"
+then :
 
     qemu_traditional=y
-else
+else $as_nop
 
     qemu_traditional=n
 
 fi
-if test "x$ioemu" = "x"; then :
+if test "x$ioemu" = "x"
+then :
 
     ioemu=$qemu_traditional
 
 fi
 echo "x$ioemu$qemu_traditional"
-if test "x$ioemu$qemu_traditional" = "xyn"; then :
+if test "x$ioemu$qemu_traditional" = "xyn"
+then :
 
     as_fn_error $? "IOEMU stubdomain requires qemu-traditional" "$LINENO" 5
 
@@ -2265,20 +2716,24 @@ fi
 
 
 # Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then :
+if test ${enable_debug+y}
+then :
   enableval=$enable_debug;
 fi
 
 
-if test "x$enable_debug" = "xno"; then :
+if test "x$enable_debug" = "xno"
+then :
 
     ax_cv_debug="n"
 
-elif test "x$enable_debug" = "xyes"; then :
+elif test "x$enable_debug" = "xyes"
+then :
 
     ax_cv_debug="y"
 
-elif test -z $ax_cv_debug; then :
+elif test -z $ax_cv_debug
+then :
 
     ax_cv_debug="y"
 
@@ -2288,20 +2743,24 @@ debug=$ax_cv_debug
 
 
 # Check whether --enable-extfiles was given.
-if test "${enable_extfiles+set}" = set; then :
+if test ${enable_extfiles+y}
+then :
   enableval=$enable_extfiles;
 fi
 
 
-if test "x$enable_extfiles" = "xno"; then :
+if test "x$enable_extfiles" = "xno"
+then :
 
     ax_cv_extfiles="n"
 
-elif test "x$enable_extfiles" = "xyes"; then :
+elif test "x$enable_extfiles" = "xyes"
+then :
 
     ax_cv_extfiles="y"
 
-elif test -z $ax_cv_extfiles; then :
+elif test -z $ax_cv_extfiles
+then :
 
     ax_cv_extfiles="y"
 
@@ -2314,11 +2773,12 @@ extfiles=$ax_cv_extfiles
 
 # Extract the first word of "wget", so it can be a program name with args.
 set dummy wget; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_WGET+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_WGET+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $WGET in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_WGET="$WGET" # Let the user override the test with a path.
@@ -2328,11 +2788,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_WGET="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_WGET="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2345,21 +2809,22 @@ esac
 fi
 WGET=$ac_cv_path_WGET
 if test -n "$WGET"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WGET" >&5
-$as_echo "$WGET" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $WGET" >&5
+printf "%s\n" "$WGET" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
 # Extract the first word of "false", so it can be a program name with args.
 set dummy false; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FALSE+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_FALSE+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $FALSE in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_FALSE="$FALSE" # Let the user override the test with a path.
@@ -2369,11 +2834,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_FALSE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_FALSE="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2386,27 +2855,29 @@ esac
 fi
 FALSE=$ac_cv_path_FALSE
 if test -n "$FALSE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FALSE" >&5
-$as_echo "$FALSE" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FALSE" >&5
+printf "%s\n" "$FALSE" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-if test x"$WGET" != x"no"; then :
+if test x"$WGET" != x"no"
+then :
 
     FETCHER="$WGET -c -O"
 
-else
+else $as_nop
 
     # Extract the first word of "ftp", so it can be a program name with args.
 set dummy ftp; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FTP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_FTP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $FTP in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_FTP="$FTP" # Let the user override the test with a path.
@@ -2416,11 +2887,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_FTP="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_FTP="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2433,23 +2908,24 @@ esac
 fi
 FTP=$ac_cv_path_FTP
 if test -n "$FTP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FTP" >&5
-$as_echo "$FTP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FTP" >&5
+printf "%s\n" "$FTP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-    if test x"$FTP" != x"no"; then :
+    if test x"$FTP" != x"no"
+then :
 
         FETCHER="$FTP -o"
 
-else
+else $as_nop
 
         FETCHER="$FALSE"
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot find wget or ftp" >&5
-$as_echo "$as_me: WARNING: cannot find wget or ftp" >&2;}
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find wget or ftp" >&5
+printf "%s\n" "$as_me: WARNING: cannot find wget or ftp" >&2;}
 
 fi
 
@@ -2458,6 +2934,15 @@ fi
 
 
 # Checks for programs.
+
+
+
+
+
+
+
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2466,11 +2951,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2478,11 +2964,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2493,11 +2983,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2506,11 +2996,12 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -2518,11 +3009,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2533,11 +3028,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_CC" = x; then
@@ -2545,8 +3040,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -2559,11 +3054,12 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2571,11 +3067,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2586,11 +3086,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2599,11 +3099,12 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2612,15 +3113,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2636,18 +3141,18 @@ if test $ac_prog_rejected = yes; then
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+    ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
   fi
 fi
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2658,11 +3163,12 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2670,11 +3176,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2685,11 +3195,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2702,11 +3212,12 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -2714,11 +3225,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2729,11 +3244,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2745,8 +3260,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -2754,25 +3269,129 @@ esac
 fi
 
 fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}clang"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="clang"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+
+
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
 See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
+for ac_option in --version -v -V -qversion -version; do
   { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -2782,7 +3401,7 @@ $as_echo "$ac_try_echo"; } >&5
     cat conftest.er1 >&5
   fi
   rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 done
 
@@ -2790,7 +3409,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -2802,9 +3421,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+printf %s "checking whether the C compiler works... " >&6; }
+ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 
 # The possible output files:
 ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
@@ -2825,11 +3444,12 @@ case "(($ac_try" in
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+then :
   # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
 # in a Makefile.  We should not override ac_cv_exeext if it was cached,
@@ -2846,7 +3466,7 @@ do
 	# certainly right.
 	break;;
     *.* )
-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
 	then :; else
 	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 	fi
@@ -2862,44 +3482,46 @@ do
 done
 test "$ac_cv_exeext" = no && ac_cv_exeext=
 
-else
+else $as_nop
   ac_file=''
 fi
-if test -z "$ac_file"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
+if test -z "$ac_file"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
 See \`config.log' for more details" "$LINENO" 5; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+printf %s "checking for C compiler default output file name... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+printf "%s\n" "$ac_file" >&6; }
 ac_exeext=$ac_cv_exeext
 
 rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+printf %s "checking for suffix of executables... " >&6; }
 if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+then :
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -2913,15 +3535,15 @@ for ac_file in conftest.exe conftest conftest.*; do
     * ) break;;
   esac
 done
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+else $as_nop
+  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+printf "%s\n" "$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
@@ -2930,7 +3552,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdio.h>
 int
-main ()
+main (void)
 {
 FILE *f = fopen ("conftest.out", "w");
  return ferror (f) || fclose (f) != 0;
@@ -2942,8 +3564,8 @@ _ACEOF
 ac_clean_files="$ac_clean_files conftest.out"
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+printf %s "checking whether we are cross compiling... " >&6; }
 if test "$cross_compiling" != yes; then
   { { ac_try="$ac_link"
 case "(($ac_try" in
@@ -2951,10 +3573,10 @@ case "(($ac_try" in
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
   if { ac_try='./conftest$ac_cv_exeext'
   { { case "(($ac_try" in
@@ -2962,39 +3584,40 @@ $as_echo "$ac_try_echo"; } >&5
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; }; then
     cross_compiling=no
   else
     if test "$cross_compiling" = maybe; then
 	cross_compiling=yes
     else
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
+	{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+printf "%s\n" "$cross_compiling" >&6; }
 
 rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
 ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+printf %s "checking for suffix of object files... " >&6; }
+if test ${ac_cv_objext+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -3008,11 +3631,12 @@ case "(($ac_try" in
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+then :
   for ac_file in conftest.o conftest.obj conftest.*; do
   test -f "$ac_file" || continue;
   case $ac_file in
@@ -3021,31 +3645,32 @@ $as_echo "$ac_try_echo"; } >&5
        break;;
   esac
 done
-else
-  $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+  printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
 See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+printf "%s\n" "$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 #ifndef __GNUC__
        choke me
@@ -3055,29 +3680,33 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_compiler_gnu=yes
-else
+else $as_nop
   ac_compiler_gnu=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
 if test $ac_compiler_gnu = yes; then
   GCC=yes
 else
   GCC=
 fi
-ac_test_CFLAGS=${CFLAGS+set}
+ac_test_CFLAGS=${CFLAGS+y}
 ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
@@ -3086,57 +3715,60 @@ else
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_g=yes
-else
+else $as_nop
   CFLAGS=""
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
 
-else
+else $as_nop
   ac_c_werror_flag=$ac_save_c_werror_flag
 	 CFLAGS="-g"
 	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_g=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
   CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
   if test "$GCC" = yes; then
@@ -3151,94 +3783,144 @@ else
     CFLAGS=
   fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c11=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+$ac_c_conftest_c11_program
+_ACEOF
+for ac_arg in '' -std=gnu11
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_c11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cc_c11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
 
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c11" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+     CC="$CC $ac_cv_prog_cc_c11"
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+  ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c99_program
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
 
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c99" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+     CC="$CC $ac_cv_prog_cc_c99"
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+  ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c89_program
 _ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
+  if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_c89=$ac_arg
 fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
 rm -f conftest.$ac_ext
 CC=$ac_save_CC
-
 fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c89" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+     CC="$CC $ac_cv_prog_cc_c89"
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+  ac_prog_cc_stdc=c89
+fi
 fi
 
 ac_ext=c
@@ -3247,13 +3929,14 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval test \${ac_cv_prog_make_${ac_make}_set+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat >conftest.make <<\_ACEOF
 SHELL = /bin/sh
 all:
@@ -3269,16 +3952,17 @@ esac
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
   SET_MAKE=
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
-# Find a good install program.  We prefer a C program (faster),
+
+  # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
 # incompatible versions:
 # SysV /etc/install, /usr/sbin/install
@@ -3292,20 +3976,25 @@ fi
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
 # Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+printf %s "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+if test ${ac_cv_path_install+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    # Account for fact that we put trailing slashes in our PATH walk.
+case $as_dir in #((
+  ./ | /[cC]/* | \
   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
   ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
   /usr/ucb/* ) ;;
@@ -3315,13 +4004,13 @@ case $as_dir/ in #((
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
 	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
 	    :
 	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 	    # program-specific install script used by HP pwplus--don't use.
 	    :
 	  else
@@ -3329,12 +4018,12 @@ case $as_dir/ in #((
 	    echo one > conftest.one
 	    echo two > conftest.two
 	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	    if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
 	      test -s conftest.one && test -s conftest.two &&
 	      test -s conftest.dir/conftest.one &&
 	      test -s conftest.dir/conftest.two
 	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
 	      break 3
 	    fi
 	  fi
@@ -3350,7 +4039,7 @@ IFS=$as_save_IFS
 rm -rf conftest.one conftest.two conftest.dir
 
 fi
-  if test "${ac_cv_path_install+set}" = set; then
+  if test ${ac_cv_path_install+y}; then
     INSTALL=$ac_cv_path_install
   else
     # As a last resort, use the slow shell script.  Don't cache a
@@ -3360,8 +4049,8 @@ fi
     INSTALL=$ac_install_sh
   fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+printf "%s\n" "$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
@@ -3374,14 +4063,16 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 # Checks for programs that depend on a feature
 
-if test "x$vtpm" = "xy"; then :
+if test "x$vtpm" = "xy"
+then :
   # Extract the first word of "cmake", so it can be a program name with args.
 set dummy cmake; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CMAKE+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_CMAKE+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $CMAKE in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_CMAKE="$CMAKE" # Let the user override the test with a path.
@@ -3391,11 +4082,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_CMAKE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_CMAKE="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -3408,11 +4103,11 @@ esac
 fi
 CMAKE=$ac_cv_path_CMAKE
 if test -n "$CMAKE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CMAKE" >&5
-$as_echo "$CMAKE" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CMAKE" >&5
+printf "%s\n" "$CMAKE" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -3420,21 +4115,23 @@ if test x"${CMAKE}" = x"no"
 then
     as_fn_error $? "Unable to find cmake, please install cmake" "$LINENO" 5
 fi
-else
+else $as_nop
 
-if test "x$vtpm" = "xn"; then :
+if test "x$vtpm" = "xn"
+then :
 
 CMAKE="/cmake-disabled-in-configure-script"
 
-else
+else $as_nop
 
 # Extract the first word of "cmake", so it can be a program name with args.
 set dummy cmake; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CMAKE+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_CMAKE+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $CMAKE in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_CMAKE="$CMAKE" # Let the user override the test with a path.
@@ -3444,11 +4141,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_CMAKE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_CMAKE="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -3461,15 +4162,16 @@ esac
 fi
 CMAKE=$ac_cv_path_CMAKE
 if test -n "$CMAKE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CMAKE" >&5
-$as_echo "$CMAKE" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CMAKE" >&5
+printf "%s\n" "$CMAKE" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-if test x"${CMAKE}" = "xno"; then :
+if test x"${CMAKE}" = "xno"
+then :
 
 vtpm=n
 CMAKE="/cmake-disabled-in-configure-script"
@@ -3485,7 +4187,8 @@ fi
 # Stubdom libraries version and url setup
 
 
-if test "x$ZLIB_URL" = "x"; then :
+if test "x$ZLIB_URL" = "x"
+then :
 
 	ZLIB_URL=\$\(XEN_EXTFILES_URL\)
 fi
@@ -3495,11 +4198,13 @@ ZLIB_VERSION="1.2.3"
 
 
 
-if test "x$LIBPCI_URL" = "x"; then :
+if test "x$LIBPCI_URL" = "x"
+then :
 
-	if test "x$extfiles" = "xy"; then :
+	if test "x$extfiles" = "xy"
+then :
   LIBPCI_URL=\$\(XEN_EXTFILES_URL\)
-else
+else $as_nop
   LIBPCI_URL="https://mirrors.edge.kernel.org/pub/software/utils/pciutils"
 fi
 
@@ -3510,11 +4215,13 @@ LIBPCI_VERSION="2.2.9"
 
 
 
-if test "x$NEWLIB_URL" = "x"; then :
+if test "x$NEWLIB_URL" = "x"
+then :
 
-	if test "x$extfiles" = "xy"; then :
+	if test "x$extfiles" = "xy"
+then :
   NEWLIB_URL=\$\(XEN_EXTFILES_URL\)
-else
+else $as_nop
   NEWLIB_URL="https://sourceware.org/ftp/newlib"
 fi
 
@@ -3525,11 +4232,13 @@ NEWLIB_VERSION="1.16.0"
 
 
 
-if test "x$LWIP_URL" = "x"; then :
+if test "x$LWIP_URL" = "x"
+then :
 
-	if test "x$extfiles" = "xy"; then :
+	if test "x$extfiles" = "xy"
+then :
   LWIP_URL=\$\(XEN_EXTFILES_URL\)
-else
+else $as_nop
   LWIP_URL="https://download.savannah.gnu.org/releases/lwip"
 fi
 
@@ -3540,11 +4249,13 @@ LWIP_VERSION="1.3.0"
 
 
 
-if test "x$GRUB_URL" = "x"; then :
+if test "x$GRUB_URL" = "x"
+then :
 
-	if test "x$extfiles" = "xy"; then :
+	if test "x$extfiles" = "xy"
+then :
   GRUB_URL=\$\(XEN_EXTFILES_URL\)
-else
+else $as_nop
   GRUB_URL="https://alpha.gnu.org/gnu/grub"
 fi
 
@@ -3555,11 +4266,13 @@ GRUB_VERSION="0.97"
 
 
 
-if test "x$GMP_URL" = "x"; then :
+if test "x$GMP_URL" = "x"
+then :
 
-	if test "x$extfiles" = "xy"; then :
+	if test "x$extfiles" = "xy"
+then :
   GMP_URL=\$\(XEN_EXTFILES_URL\)
-else
+else $as_nop
   GMP_URL="https://gmplib.org/download/gmp/archive"
 fi
 
@@ -3570,7 +4283,8 @@ GMP_VERSION="4.3.2"
 
 
 
-if test "x$POLARSSL_URL" = "x"; then :
+if test "x$POLARSSL_URL" = "x"
+then :
 
 	POLARSSL_URL=\$\(XEN_EXTFILES_URL\)
 fi
@@ -3580,7 +4294,8 @@ POLARSSL_VERSION="1.1.4"
 
 
 
-if test "x$TPMEMU_URL" = "x"; then :
+if test "x$TPMEMU_URL" = "x"
+then :
 
 	TPMEMU_URL=\$\(XEN_EXTFILES_URL\)
 fi
@@ -3591,7 +4306,8 @@ TPMEMU_VERSION="0.7.4"
 
 #These stubdoms should be enabled if the dependent one is
 
-if test "x$vtpmmgr" = "x" && test "x$vtpm" = "xn"; then :
+if test "x$vtpmmgr" = "x" && test "x$vtpm" = "xn"
+then :
 
 vtpmmgr="n"
 
@@ -3600,7 +4316,8 @@ fi
 
 #Conditionally enable these stubdoms based on the presense of dependencies
 
-if test "x$vtpm" = "xy" || test "x$vtpm" = "x"; then :
+if test "x$vtpm" = "xy" || test "x$vtpm" = "x"
+then :
 
 
 vtpm=y
@@ -3610,7 +4327,7 @@ STUBDOM_INSTALL="$STUBDOM_INSTALL install-vtpm"
 STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-vtpm"
 
 
-else
+else $as_nop
 
 
 vtpm=n
@@ -3620,7 +4337,8 @@ fi
 
 
 
-if test "x$vtpmmgr" = "xy" || test "x$vtpmmgr" = "x"; then :
+if test "x$vtpmmgr" = "xy" || test "x$vtpmmgr" = "x"
+then :
 
 
 vtpmmgr=y
@@ -3630,7 +4348,7 @@ STUBDOM_INSTALL="$STUBDOM_INSTALL install-vtpmmgr"
 STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-vtpmmgr"
 
 
-else
+else $as_nop
 
 
 vtpmmgr=n
@@ -3640,7 +4358,8 @@ fi
 
 
 
-if test "x$ioemu" = "xy" || test "x$ioemu" = "x"; then :
+if test "x$ioemu" = "xy" || test "x$ioemu" = "x"
+then :
 
 
 ioemu=y
@@ -3650,7 +4369,7 @@ STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu"
 STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-ioemu"
 
 
-else
+else $as_nop
 
 
 ioemu=n
@@ -3697,8 +4416,8 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -3728,15 +4447,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      /^ac_cv_env_/b end
      t clear
      :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
      t end
      s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
       if test ! -f "$cache_file" || test -h "$cache_file"; then
 	cat confcache >"$cache_file"
       else
@@ -3750,8 +4469,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;}
       fi
     fi
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -3804,7 +4523,7 @@ U=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
   as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -3820,8 +4539,8 @@ LTLIBOBJS=$ac_ltlibobjs
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
 as_write_fail=0
 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
@@ -3844,14 +4563,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else
+else $as_nop
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -3861,46 +4582,46 @@ esac
 fi
 
 
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" ""	$as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
 
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -3909,13 +4630,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
 fi
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -3924,8 +4638,12 @@ case $0 in #((
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
   done
 IFS=$as_save_IFS
 
@@ -3937,30 +4655,10 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
@@ -3973,13 +4671,14 @@ as_fn_error ()
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $2" >&2
+  printf "%s\n" "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
 
+
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -4006,18 +4705,20 @@ as_fn_unset ()
   { eval $1=; unset $1;}
 }
 as_unset=as_fn_unset
+
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else
+else $as_nop
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -4029,12 +4730,13 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else
+else $as_nop
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
@@ -4065,7 +4767,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -4087,6 +4789,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -4100,6 +4806,12 @@ case `echo -n x` in #(((((
   ECHO_N='-n';;
 esac
 
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -4141,7 +4853,7 @@ as_fn_mkdir_p ()
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -4150,7 +4862,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -4213,7 +4925,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # values after options handling.
 ac_log="
 This file was extended by Xen Hypervisor Stub Domains $as_me 4.19, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -4263,14 +4975,16 @@ Report bugs to <xen-devel@lists.xen.org>.
 Xen Hypervisor Stub Domains home page: <https://www.xen.org/>."
 
 _ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
 Xen Hypervisor Stub Domains config.status 4.19
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -4308,21 +5022,21 @@ do
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
+    printf "%s\n" "$ac_cs_version"; exit ;;
   --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
+    printf "%s\n" "$ac_cs_config"; exit ;;
   --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
     case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     '') as_fn_error $? "missing file argument" ;;
     esac
     as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h |  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
+    printf "%s\n" "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil | --si | --s)
     ac_cs_silent=: ;;
@@ -4350,7 +5064,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
   set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
   export CONFIG_SHELL
   exec "\$@"
@@ -4364,7 +5078,7 @@ exec 5>>config.log
   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 ## Running $as_me. ##
 _ASBOX
-  $as_echo "$ac_log"
+  printf "%s\n" "$ac_log"
 } >&5
 
 _ACEOF
@@ -4389,7 +5103,7 @@ done
 # We use the long form for the default assignment because of an extremely
 # bizarre bug on SunOS 4.1.3.
 if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
 fi
 
 # Have a temporary directory for convenience.  Make it in the build tree
@@ -4617,7 +5331,7 @@ do
 	   esac ||
 	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
     done
 
@@ -4625,17 +5339,17 @@ do
     # use $as_me), people would be surprised to read:
     #    /* config.h.  Generated by config.status.  */
     configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	  printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
 	`' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf "%s\n" "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
     case $configure_input in #(
     *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
+       ac_sed_conf_input=`printf "%s\n" "$configure_input" |
        sed 's/[\\\\&|]/\\\\&/g'`;; #(
     *) ac_sed_conf_input=$configure_input;;
     esac
@@ -4652,7 +5366,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 	 X"$ac_file" : 'X\(//\)$' \| \
 	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
+printf "%s\n" X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -4676,9 +5390,9 @@ $as_echo X"$ac_file" |
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -4735,8 +5449,8 @@ ac_sed_dataroot='
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   ac_datarootdir_hack='
@@ -4779,9 +5493,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
       "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
   rm -f "$ac_tmp/stdin"
@@ -4828,7 +5542,8 @@ if test "$no_create" != yes; then
   $ac_cs_success || as_fn_exit 1
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
+
diff --git a/tools/config.h.in b/tools/config.h.in
index 50ad60fcb091..0bab3cb136e9 100644
--- a/tools/config.h.in
+++ b/tools/config.h.in
@@ -36,9 +36,6 @@
 /* Define to 1 if you have the `z' library (-lz). */
 #undef HAVE_LIBZ
 
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
 /* Define to 1 if you have the `pipe2' function. */
 #undef HAVE_PIPE2
 
@@ -54,6 +51,9 @@
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
 /* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H
 
@@ -129,7 +129,9 @@
 /* SeaBIOS path */
 #undef SEABIOS_PATH
 
-/* Define to 1 if you have the ANSI C header files. */
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+   required in a freestanding environment). This macro is provided for
+   backward compatibility; new code need not use it. */
 #undef STDC_HEADERS
 
 /* QMP proxy path */
@@ -162,11 +164,6 @@
 /* Xen's script dir */
 #undef XEN_SCRIPT_DIR
 
-/* Enable large inode numbers on Mac OS X 10.5.  */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
 /* Number of bits in a file offset, on hosts where this is settable. */
 #undef _FILE_OFFSET_BITS
 
diff --git a/tools/configure b/tools/configure
index a6b43bfc6064..6c1084b7b28a 100755
--- a/tools/configure
+++ b/tools/configure
@@ -1,11 +1,12 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Xen Hypervisor Tools 4.19.
+# Generated by GNU Autoconf 2.71 for Xen Hypervisor Tools 4.19.
 #
 # Report bugs to <xen-devel@lists.xen.org>.
 #
 #
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -16,14 +17,16 @@
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else
+else $as_nop
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -33,46 +36,46 @@ esac
 fi
 
 
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" ""	$as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
 
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -81,13 +84,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
 fi
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -96,8 +92,12 @@ case $0 in #((
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
   done
 IFS=$as_save_IFS
 
@@ -109,30 +109,10 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 # Use a proper internal environment variable to ensure we don't fall
   # into an infinite loop, continuously re-executing ourselves.
@@ -154,20 +134,22 @@ esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
   fi
   # We don't want this to propagate to other subprocesses.
           { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '\${1+\"\$@\"}'='\"\$@\"'
   setopt NO_GLOB_SUBST
-else
+else \$as_nop
   case \`(set -o) 2>/dev/null\` in #(
   *posix*) :
     set -o posix ;; #(
@@ -187,42 +169,52 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; }
 as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
 as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
 as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
 
-else
+else \$as_nop
   exitcode=1; echo positional parameters were not saved.
 fi
 test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || exit 1
 test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
+  if (eval "$as_required") 2>/dev/null
+then :
   as_have_required=yes
-else
+else $as_nop
   as_have_required=no
 fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
 
-else
+else $as_nop
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
   as_found=:
   case $as_dir in #(
 	 /*)
 	   for as_base in sh bash ksh sh5; do
 	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
+	     as_shell=$as_dir$as_base
 	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+		    as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
   CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+		   if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
   break 2
 fi
 fi
@@ -230,14 +222,21 @@ fi
        esac
   as_found=false
 done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
 IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+  if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi
+fi
 
 
-      if test "x$CONFIG_SHELL" != x; then :
+      if test "x$CONFIG_SHELL" != x
+then :
   export CONFIG_SHELL
              # We cannot yet assume a decent shell, so we have to provide a
 # neutralization value for shells without unset; and this also
@@ -255,18 +254,19 @@ esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
 fi
 
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+    if test x$as_have_required = xno
+then :
+  printf "%s\n" "$0: This script requires a shell more modern than all"
+  printf "%s\n" "$0: the shells that I found on your system."
+  if test ${ZSH_VERSION+y} ; then
+    printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
   else
-    $as_echo "$0: Please tell bug-autoconf@gnu.org and
+    printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
 $0: xen-devel@lists.xen.org about your system, including
 $0: any error possibly output before this message. Then
 $0: install a modern shell, or manually run the script
@@ -294,6 +294,7 @@ as_fn_unset ()
 }
 as_unset=as_fn_unset
 
+
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -311,6 +312,14 @@ as_fn_exit ()
   as_fn_set_status $1
   exit $1
 } # as_fn_exit
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+  return $?
+}
+as_nop=as_fn_nop
 
 # as_fn_mkdir_p
 # -------------
@@ -325,7 +334,7 @@ as_fn_mkdir_p ()
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -334,7 +343,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -373,12 +382,13 @@ as_fn_executable_p ()
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else
+else $as_nop
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -390,18 +400,27 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else
+else $as_nop
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
   }
 fi # as_fn_arith
 
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+  return $?
+}
+as_nop=as_fn_nop
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
 # ----------------------------------------
@@ -413,9 +432,9 @@ as_fn_error ()
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $2" >&2
+  printf "%s\n" "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -442,7 +461,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -486,7 +505,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+    { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
   # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
   # already done that, so ensure we don't try to do so again and fall
@@ -500,6 +519,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
   exit
 }
 
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -513,6 +536,13 @@ case `echo -n x` in #(((((
   ECHO_N='-n';;
 esac
 
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -588,40 +618,36 @@ PACKAGE_URL='https://www.xen.org/'
 ac_unique_file="libs/light/libxl.c"
 # Factoring default headers for most tests.
 ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
+#include <stddef.h>
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
 #endif
-#ifdef STDC_HEADERS
+#ifdef HAVE_STDLIB_H
 # include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
 #endif
 #ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
 # include <string.h>
 #endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
 #ifdef HAVE_INTTYPES_H
 # include <inttypes.h>
 #endif
 #ifdef HAVE_STDINT_H
 # include <stdint.h>
 #endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
 #ifdef HAVE_UNISTD_H
 # include <unistd.h>
 #endif"
 
+ac_header_c_list=
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
 pvshim
@@ -656,9 +682,6 @@ PKG_CONFIG
 TINFO_LIBS
 CURSES_LIBS
 PY_NOOPT_CFLAGS
-EGREP
-GREP
-CPP
 pyconfig
 PYTHONPATH
 BASH
@@ -851,7 +874,6 @@ LD86
 BCC
 IASL
 AWK
-CPP
 PKG_CONFIG
 PKG_CONFIG_PATH
 PKG_CONFIG_LIBDIR
@@ -931,8 +953,6 @@ do
   *)    ac_optarg=yes ;;
   esac
 
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
   case $ac_dashdash$ac_option in
   --)
     ac_dashdash=yes ;;
@@ -973,9 +993,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -999,9 +1019,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -1212,9 +1232,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1228,9 +1248,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1274,9 +1294,9 @@ Try \`$0 --help' for more information"
 
   *)
     # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+      printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
     : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
@@ -1292,7 +1312,7 @@ if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
     fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+    *)     printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
 
@@ -1356,7 +1376,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_myself" : 'X\(//\)[^/]' \| \
 	 X"$as_myself" : 'X\(//\)$' \| \
 	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
+printf "%s\n" X"$as_myself" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -1599,7 +1619,6 @@ Some influential environment variables:
   BCC         Path to bcc tool
   IASL        Path to iasl tool
   AWK         Path to awk tool
-  CPP         C preprocessor
   PKG_CONFIG  path to pkg-config utility
   PKG_CONFIG_PATH
               directories to add to pkg-config's search path
@@ -1638,9 +1657,9 @@ if test "$ac_init_help" = "recursive"; then
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -1668,7 +1687,8 @@ esac
 ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
     cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
+    # Check for configure.gnu first; this name is used for a wrapper for
+    # Metaconfig's "Configure" on case-insensitive file systems.
     if test -f "$ac_srcdir/configure.gnu"; then
       echo &&
       $SHELL "$ac_srcdir/configure.gnu" --help=recursive
@@ -1676,7 +1696,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
       echo &&
       $SHELL "$ac_srcdir/configure" --help=recursive
     else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+      printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi || ac_status=$?
     cd "$ac_pwd" || { ac_status=$?; break; }
   done
@@ -1686,9 +1706,9 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 Xen Hypervisor Tools configure 4.19
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.71
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1705,14 +1725,14 @@ fi
 ac_fn_c_try_compile ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
+  rm -f conftest.$ac_objext conftest.beam
   if { { ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -1720,14 +1740,15 @@ $as_echo "$ac_try_echo"; } >&5
     cat conftest.er1 >&5
     mv -f conftest.er1 conftest.err
   fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
+       } && test -s conftest.$ac_objext
+then :
   ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+  printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_retval=1
@@ -1743,14 +1764,14 @@ fi
 ac_fn_c_try_link ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
+  rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
   if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -1758,17 +1779,18 @@ $as_echo "$ac_try_echo"; } >&5
     cat conftest.er1 >&5
     mv -f conftest.er1 conftest.err
   fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
 	 test "$cross_compiling" = yes ||
 	 test -x conftest$ac_exeext
-       }; then :
+       }
+then :
   ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+  printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_retval=1
@@ -1783,176 +1805,6 @@ fi
 
 } # ac_fn_c_try_link
 
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval \${$3+:} false; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## -------------------------------------- ##
-## Report this to xen-devel@lists.xen.org ##
-## -------------------------------------- ##"
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
 # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
 # -------------------------------------------------------
 # Tests whether HEADER exists and can be compiled using the include files in
@@ -1960,26 +1812,28 @@ fi
 ac_fn_c_check_header_compile ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 #include <$2>
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$3=yes"
-else
+else $as_nop
   eval "$3=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_compile
@@ -1990,11 +1844,12 @@ $as_echo "$ac_res" >&6; }
 ac_fn_c_check_func ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Define $2 to an innocuous variant, in case <limits.h> declares $2.
@@ -2002,16 +1857,9 @@ else
 #define $2 innocuous_$2
 
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $2 (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+   which can conflict with char $2 (); below.  */
 
+#include <limits.h>
 #undef $2
 
 /* Override any GCC internal prototype to avoid an error.
@@ -2029,47 +1877,51 @@ choke me
 #endif
 
 int
-main ()
+main (void)
 {
 return $2 ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   eval "$3=yes"
-else
+else $as_nop
   eval "$3=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 fi
 eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_func
 
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
+# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
+# ------------------------------------------------------------------
 # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
+# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
+ac_fn_check_decl ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   as_decl_name=`echo $2|sed 's/ *(.*//'`
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+printf %s "checking whether $as_decl_name is declared... " >&6; }
+if eval test \${$3+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  eval ac_save_FLAGS=\$$6
+  as_fn_append $6 " $5"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main ()
+main (void)
 {
 #ifndef $as_decl_name
 #ifdef __cplusplus
@@ -2083,27 +1935,50 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$3=yes"
-else
+else $as_nop
   eval "$3=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+  eval $6=\$ac_save_FLAGS
+
 fi
 eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
-} # ac_fn_c_check_decl
+} # ac_fn_check_decl
+ac_configure_args_raw=
+for ac_arg
+do
+  case $ac_arg in
+  *\'*)
+    ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+  esac
+  as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+  *$as_nl*)
+    ac_safe_unquote= ;;
+  *)
+    ac_unsafe_z='|&;<>()$`\\"*?[ ''	' # This string ends in space, tab.
+    ac_unsafe_a="$ac_unsafe_z#~"
+    ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+    ac_configure_args_raw=`      printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by Xen Hypervisor Tools $as_me 4.19, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+generated by GNU Autoconf 2.71.  Invocation command line was
 
-  $ $0 $@
+  $ $0$ac_configure_args_raw
 
 _ACEOF
 exec 5>>config.log
@@ -2136,8 +2011,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    printf "%s\n" "PATH: $as_dir"
   done
 IFS=$as_save_IFS
 
@@ -2172,7 +2051,7 @@ do
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
     *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+      ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
     1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
@@ -2207,11 +2086,13 @@ done
 # WARNING: Use '\'' to represent an apostrophe within the trap.
 # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
 trap 'exit_status=$?
+  # Sanitize IFS.
+  IFS=" ""	$as_nl"
   # Save into config.log some information that might help in debugging.
   {
     echo
 
-    $as_echo "## ---------------- ##
+    printf "%s\n" "## ---------------- ##
 ## Cache variables. ##
 ## ---------------- ##"
     echo
@@ -2222,8 +2103,8 @@ trap 'exit_status=$?
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -2247,7 +2128,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 )
     echo
 
-    $as_echo "## ----------------- ##
+    printf "%s\n" "## ----------------- ##
 ## Output variables. ##
 ## ----------------- ##"
     echo
@@ -2255,14 +2136,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
     do
       eval ac_val=\$$ac_var
       case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
       esac
-      $as_echo "$ac_var='\''$ac_val'\''"
+      printf "%s\n" "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
     if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
+      printf "%s\n" "## ------------------- ##
 ## File substitutions. ##
 ## ------------------- ##"
       echo
@@ -2270,15 +2151,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       do
 	eval ac_val=\$$ac_var
 	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
+	printf "%s\n" "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
 
     if test -s confdefs.h; then
-      $as_echo "## ----------- ##
+      printf "%s\n" "## ----------- ##
 ## confdefs.h. ##
 ## ----------- ##"
       echo
@@ -2286,8 +2167,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       echo
     fi
     test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
+      printf "%s\n" "$as_me: caught signal $ac_signal"
+    printf "%s\n" "$as_me: exit $exit_status"
   } >&5
   rm -f core *.core core.conftest.* &&
     rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -2301,63 +2182,48 @@ ac_signal=0
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -f -r conftest* confdefs.h
 
-$as_echo "/* confdefs.h */" > confdefs.h
+printf "%s\n" "/* confdefs.h */" > confdefs.h
 
 # Predefined preprocessor variables.
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
+printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
+printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
+printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
+printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
 
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
+  ac_site_files="$CONFIG_SITE"
 elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
+  ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
 else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
+  ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
 fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+
+for ac_site_file in $ac_site_files
 do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+  case $ac_site_file in #(
+  */*) :
+     ;; #(
+  *) :
+    ac_site_file=./$ac_site_file ;;
+esac
+  if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
 See \`config.log' for more details" "$LINENO" 5; }
   fi
@@ -2367,155 +2233,548 @@ if test -r "$cache_file"; then
   # Some versions of bash will fail to source /dev/null (special files
   # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
   if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
       *)                      . "./$cache_file";;
     esac
   fi
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	# differences in whitespace do not lead to failure.
-	ac_old_val_w=`echo x $ac_old_val`
-	ac_new_val_w=`echo x $ac_new_val`
-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	  ac_cache_corrupted=:
-	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-	  eval $ac_var=\$ac_old_val
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
+# Test code for whether the C compiler supports C89 (global declarations)
+ac_c_conftest_c89_globals='
+/* Does the compiler advertise C89 conformance?
+   Do not test the value of __STDC__, because some compilers set it to 0
+   while being otherwise adequately conformant. */
+#if !defined __STDC__
+# error "Compiler does not advertise C89 conformance"
+#endif
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+#include <stddef.h>
+#include <stdarg.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7 src/conf.sh.  */
+struct buf { int x; };
+struct buf * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
 
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not \xHH hex character constants.
+   These do not provoke an error unfortunately, instead are silently treated
+   as an "x".  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously \x00 != x always comes out true, for an
+   array size at least.  It is necessary to write \x00 == 0 to get something
+   that is true only with -std.  */
+int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
 
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) '\''x'\''
+int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
 
-ac_config_files="$ac_config_files ../config/Tools.mk hotplug/common/hotplugpath.sh hotplug/FreeBSD/rc.d/xencommons hotplug/FreeBSD/rc.d/xendriverdomain hotplug/Linux/init.d/sysconfig.xencommons hotplug/Linux/init.d/sysconfig.xendomains hotplug/Linux/init.d/xen-watchdog hotplug/Linux/init.d/xencommons hotplug/Linux/init.d/xendomains hotplug/Linux/init.d/xendriverdomain hotplug/Linux/launch-xenstore hotplug/Linux/vif-setup hotplug/Linux/xen-hotplug-common.sh hotplug/Linux/xendomains hotplug/NetBSD/rc.d/xencommons hotplug/NetBSD/rc.d/xendriverdomain ocaml/libs/xs/paths.ml ocaml/xenstored/paths.ml ocaml/xenstored/oxenstored.conf"
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
+               int, int);'
 
-ac_config_headers="$ac_config_headers config.h"
+# Test code for whether the C compiler supports C89 (body of main).
+ac_c_conftest_c89_main='
+ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
+'
 
-ac_aux_dir=
-for ac_dir in ../ "$srcdir"/../; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
+# Test code for whether the C compiler supports C99 (global declarations)
+ac_c_conftest_c99_globals='
+// Does the compiler advertise C99 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
+# error "Compiler does not advertise C99 conformance"
+#endif
+
+#include <stdbool.h>
+extern int puts (const char *);
+extern int printf (const char *, ...);
+extern int dprintf (int, const char *, ...);
+extern void *malloc (size_t);
+
+// Check varargs macros.  These examples are taken from C99 6.10.3.5.
+// dprintf is used instead of fprintf to avoid needing to declare
+// FILE and stderr.
+#define debug(...) dprintf (2, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+  int x = 1234;
+  int y = 5678;
+  debug ("Flag");
+  debug ("X = %d\n", x);
+  showlist (The first, second, and third items.);
+  report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+  #error "your preprocessor is broken"
+#endif
+#if BIG_OK
+#else
+  #error "your preprocessor is broken"
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+  int datasize;
+  double data[];
+};
+
+struct named_init {
+  int number;
+  const wchar_t *name;
+  double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+  // See if C++-style comments work.
+  // Iterate through items via the restricted pointer.
+  // Also check for declarations in for loops.
+  for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
+    continue;
+  return 0;
+}
+
+// Check varargs and va_copy.
+static bool
+test_varargs (const char *format, ...)
+{
+  va_list args;
+  va_start (args, format);
+  va_list args_copy;
+  va_copy (args_copy, args);
+
+  const char *str = "";
+  int number = 0;
+  float fnumber = 0;
+
+  while (*format)
+    {
+      switch (*format++)
+	{
+	case '\''s'\'': // string
+	  str = va_arg (args_copy, const char *);
+	  break;
+	case '\''d'\'': // int
+	  number = va_arg (args_copy, int);
+	  break;
+	case '\''f'\'': // float
+	  fnumber = va_arg (args_copy, double);
+	  break;
+	default:
+	  break;
+	}
+    }
+  va_end (args_copy);
+  va_end (args);
+
+  return *str && number && fnumber;
+}
+'
+
+# Test code for whether the C compiler supports C99 (body of main).
+ac_c_conftest_c99_main='
+  // Check bool.
+  _Bool success = false;
+  success |= (argc != 0);
+
+  // Check restrict.
+  if (test_restrict ("String literal") == 0)
+    success = true;
+  char *restrict newvar = "Another string";
+
+  // Check varargs.
+  success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
+  test_varargs_macros ();
+
+  // Check flexible array members.
+  struct incomplete_array *ia =
+    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+  ia->datasize = 10;
+  for (int i = 0; i < ia->datasize; ++i)
+    ia->data[i] = i * 1.234;
+
+  // Check named initializers.
+  struct named_init ni = {
+    .number = 34,
+    .name = L"Test wide string",
+    .average = 543.34343,
+  };
+
+  ni.number = 58;
+
+  int dynamic_array[ni.number];
+  dynamic_array[0] = argv[0][0];
+  dynamic_array[ni.number - 1] = 543;
+
+  // work around unused variable warnings
+  ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
+	 || dynamic_array[ni.number - 1] != 543);
+'
+
+# Test code for whether the C compiler supports C11 (global declarations)
+ac_c_conftest_c11_globals='
+// Does the compiler advertise C11 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
+# error "Compiler does not advertise C11 conformance"
+#endif
+
+// Check _Alignas.
+char _Alignas (double) aligned_as_double;
+char _Alignas (0) no_special_alignment;
+extern char aligned_as_int;
+char _Alignas (0) _Alignas (int) aligned_as_int;
+
+// Check _Alignof.
+enum
+{
+  int_alignment = _Alignof (int),
+  int_array_alignment = _Alignof (int[100]),
+  char_alignment = _Alignof (char)
+};
+_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
+
+// Check _Noreturn.
+int _Noreturn does_not_return (void) { for (;;) continue; }
+
+// Check _Static_assert.
+struct test_static_assert
+{
+  int x;
+  _Static_assert (sizeof (int) <= sizeof (long int),
+                  "_Static_assert does not work in struct");
+  long int y;
+};
+
+// Check UTF-8 literals.
+#define u8 syntax error!
+char const utf8_literal[] = u8"happens to be ASCII" "another string";
+
+// Check duplicate typedefs.
+typedef long *long_ptr;
+typedef long int *long_ptr;
+typedef long_ptr long_ptr;
+
+// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
+struct anonymous
+{
+  union {
+    struct { int i; int j; };
+    struct { int k; long int l; } w;
+  };
+  int m;
+} v1;
+'
+
+# Test code for whether the C compiler supports C11 (body of main).
+ac_c_conftest_c11_main='
+  _Static_assert ((offsetof (struct anonymous, i)
+		   == offsetof (struct anonymous, w.k)),
+		  "Anonymous union alignment botch");
+  v1.i = 2;
+  v1.w.k = 5;
+  ok |= v1.i != 5;
+'
+
+# Test code for whether the C compiler supports C11 (complete).
+ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+${ac_c_conftest_c11_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  ${ac_c_conftest_c99_main}
+  ${ac_c_conftest_c11_main}
+  return ok;
+}
+"
+
+# Test code for whether the C compiler supports C99 (complete).
+ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  ${ac_c_conftest_c99_main}
+  return ok;
+}
+"
+
+# Test code for whether the C compiler supports C89 (complete).
+ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  return ok;
+}
+"
+
+as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
+as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
+as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
+as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
+as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
+as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
+as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
+as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
+as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
+
+# Auxiliary files required by this configure script.
+ac_aux_files="install-sh config.guess config.sub"
+
+# Locations in which to look for auxiliary files.
+ac_aux_dir_candidates="${srcdir}/../"
+
+# Search for a directory containing all of the required auxiliary files,
+# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
+# If we don't find one directory that contains all the files we need,
+# we report the set of missing files from the *first* directory in
+# $ac_aux_dir_candidates and give up.
+ac_missing_aux_files=""
+ac_first_candidate=:
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in $ac_aux_dir_candidates
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+  as_found=:
+
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}:  trying $as_dir" >&5
+  ac_aux_dir_found=yes
+  ac_install_sh=
+  for ac_aux in $ac_aux_files
+  do
+    # As a special case, if "install-sh" is required, that requirement
+    # can be satisfied by any of "install-sh", "install.sh", or "shtool",
+    # and $ac_install_sh is set appropriately for whichever one is found.
+    if test x"$ac_aux" = x"install-sh"
+    then
+      if test -f "${as_dir}install-sh"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install-sh found" >&5
+        ac_install_sh="${as_dir}install-sh -c"
+      elif test -f "${as_dir}install.sh"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install.sh found" >&5
+        ac_install_sh="${as_dir}install.sh -c"
+      elif test -f "${as_dir}shtool"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}shtool found" >&5
+        ac_install_sh="${as_dir}shtool install -c"
+      else
+        ac_aux_dir_found=no
+        if $ac_first_candidate; then
+          ac_missing_aux_files="${ac_missing_aux_files} install-sh"
+        else
+          break
+        fi
+      fi
+    else
+      if test -f "${as_dir}${ac_aux}"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}${ac_aux} found" >&5
+      else
+        ac_aux_dir_found=no
+        if $ac_first_candidate; then
+          ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
+        else
+          break
+        fi
+      fi
+    fi
+  done
+  if test "$ac_aux_dir_found" = yes; then
+    ac_aux_dir="$as_dir"
     break
   fi
+  ac_first_candidate=false
+
+  as_found=false
 done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../ \"$srcdir\"/../" "$LINENO" 5
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+  as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
 fi
 
+
 # These three variables are undocumented and unsupported,
 # and are intended to be withdrawn in a future Autoconf release.
 # They can cause serious problems if a builder's source tree is in a directory
 # whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+if test -f "${ac_aux_dir}config.guess"; then
+  ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
+fi
+if test -f "${ac_aux_dir}config.sub"; then
+  ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
+fi
+if test -f "$ac_aux_dir/configure"; then
+  ac_configure="$SHELL ${ac_aux_dir}configure"
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+printf "%s\n" "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+printf "%s\n" "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+	    and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_config_files="$ac_config_files ../config/Tools.mk hotplug/common/hotplugpath.sh hotplug/FreeBSD/rc.d/xencommons hotplug/FreeBSD/rc.d/xendriverdomain hotplug/Linux/init.d/sysconfig.xencommons hotplug/Linux/init.d/sysconfig.xendomains hotplug/Linux/init.d/xen-watchdog hotplug/Linux/init.d/xencommons hotplug/Linux/init.d/xendomains hotplug/Linux/init.d/xendriverdomain hotplug/Linux/launch-xenstore hotplug/Linux/vif-setup hotplug/Linux/xen-hotplug-common.sh hotplug/Linux/xendomains hotplug/NetBSD/rc.d/xencommons hotplug/NetBSD/rc.d/xendriverdomain ocaml/libs/xs/paths.ml ocaml/xenstored/paths.ml ocaml/xenstored/oxenstored.conf"
+
+ac_config_headers="$ac_config_headers config.h"
 
 
 
 # Check if CFLAGS, LDFLAGS, LIBS, CPPFLAGS or CPP is set and print a warning
 
-if test -n "$CC$CFLAGS$LDFLAGS$LIBS$CPPFLAGS$CPP"; then :
+if test -n "$CC$CFLAGS$LDFLAGS$LIBS$CPPFLAGS$CPP"
+then :
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Setting CC, CFLAGS, LDFLAGS, LIBS, CPPFLAGS or CPP is not \
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Setting CC, CFLAGS, LDFLAGS, LIBS, CPPFLAGS or CPP is not \
 recommended, use PREPEND_INCLUDES, PREPEND_LIB, \
 APPEND_INCLUDES and APPEND_LIB instead when possible." >&5
-$as_echo "$as_me: WARNING: Setting CC, CFLAGS, LDFLAGS, LIBS, CPPFLAGS or CPP is not \
+printf "%s\n" "$as_me: WARNING: Setting CC, CFLAGS, LDFLAGS, LIBS, CPPFLAGS or CPP is not \
 recommended, use PREPEND_INCLUDES, PREPEND_LIB, \
 APPEND_INCLUDES and APPEND_LIB instead when possible." >&2;}
 
 fi
 
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+
+
+  # Make sure we can run config.sub.
+$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+printf %s "checking build system type... " >&6; }
+if test ${ac_cv_build+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+  ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
 test "x$ac_build_alias" = x &&
   as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+printf "%s\n" "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
 *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
@@ -2534,21 +2793,22 @@ IFS=$ac_save_IFS
 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+printf %s "checking host system type... " >&6; }
+if test ${ac_cv_host+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+  ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
 fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+printf "%s\n" "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
 *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
@@ -2574,6 +2834,15 @@ rumpxen|rumprun) CONFIG_RUMP=y; rump=true ;;
 esac
 
 
+
+
+
+
+
+
+
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2582,11 +2851,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2594,11 +2864,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2609,11 +2883,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2622,11 +2896,12 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -2634,11 +2909,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2649,11 +2928,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_CC" = x; then
@@ -2661,8 +2940,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -2675,11 +2954,12 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2687,11 +2967,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2702,11 +2986,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2715,11 +2999,12 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2728,15 +3013,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2752,18 +3041,18 @@ if test $ac_prog_rejected = yes; then
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+    ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
   fi
 fi
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2774,11 +3063,12 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2786,11 +3076,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2801,11 +3095,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2818,11 +3112,12 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -2830,11 +3125,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2845,11 +3144,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2861,8 +3160,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -2870,25 +3169,129 @@ esac
 fi
 
 fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}clang"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="clang"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
 
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+
+
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
 See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
+for ac_option in --version -v -V -qversion -version; do
   { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -2898,7 +3301,7 @@ $as_echo "$ac_try_echo"; } >&5
     cat conftest.er1 >&5
   fi
   rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 done
 
@@ -2906,7 +3309,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -2918,9 +3321,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+printf %s "checking whether the C compiler works... " >&6; }
+ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 
 # The possible output files:
 ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
@@ -2941,11 +3344,12 @@ case "(($ac_try" in
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+then :
   # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
 # in a Makefile.  We should not override ac_cv_exeext if it was cached,
@@ -2962,7 +3366,7 @@ do
 	# certainly right.
 	break;;
     *.* )
-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
 	then :; else
 	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 	fi
@@ -2978,44 +3382,46 @@ do
 done
 test "$ac_cv_exeext" = no && ac_cv_exeext=
 
-else
+else $as_nop
   ac_file=''
 fi
-if test -z "$ac_file"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
+if test -z "$ac_file"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
 See \`config.log' for more details" "$LINENO" 5; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+printf %s "checking for C compiler default output file name... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+printf "%s\n" "$ac_file" >&6; }
 ac_exeext=$ac_cv_exeext
 
 rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+printf %s "checking for suffix of executables... " >&6; }
 if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+then :
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -3029,15 +3435,15 @@ for ac_file in conftest.exe conftest conftest.*; do
     * ) break;;
   esac
 done
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+else $as_nop
+  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+printf "%s\n" "$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
@@ -3046,7 +3452,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdio.h>
 int
-main ()
+main (void)
 {
 FILE *f = fopen ("conftest.out", "w");
  return ferror (f) || fclose (f) != 0;
@@ -3058,8 +3464,8 @@ _ACEOF
 ac_clean_files="$ac_clean_files conftest.out"
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+printf %s "checking whether we are cross compiling... " >&6; }
 if test "$cross_compiling" != yes; then
   { { ac_try="$ac_link"
 case "(($ac_try" in
@@ -3067,10 +3473,10 @@ case "(($ac_try" in
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
   if { ac_try='./conftest$ac_cv_exeext'
   { { case "(($ac_try" in
@@ -3078,39 +3484,40 @@ $as_echo "$ac_try_echo"; } >&5
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; }; then
     cross_compiling=no
   else
     if test "$cross_compiling" = maybe; then
 	cross_compiling=yes
     else
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
+	{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+printf "%s\n" "$cross_compiling" >&6; }
 
 rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
 ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+printf %s "checking for suffix of object files... " >&6; }
+if test ${ac_cv_objext+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -3124,11 +3531,12 @@ case "(($ac_try" in
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+then :
   for ac_file in conftest.o conftest.obj conftest.*; do
   test -f "$ac_file" || continue;
   case $ac_file in
@@ -3137,31 +3545,32 @@ $as_echo "$ac_try_echo"; } >&5
        break;;
   esac
 done
-else
-  $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+  printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
 See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+printf "%s\n" "$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 #ifndef __GNUC__
        choke me
@@ -3171,29 +3580,33 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_compiler_gnu=yes
-else
+else $as_nop
   ac_compiler_gnu=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
 if test $ac_compiler_gnu = yes; then
   GCC=yes
 else
   GCC=
 fi
-ac_test_CFLAGS=${CFLAGS+set}
+ac_test_CFLAGS=${CFLAGS+y}
 ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
@@ -3202,159 +3615,212 @@ else
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_g=yes
-else
+else $as_nop
   CFLAGS=""
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
 
-else
+else $as_nop
   ac_c_werror_flag=$ac_save_c_werror_flag
 	 CFLAGS="-g"
 	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
+main (void)
 {
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+
   ;
   return 0;
 }
 _ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c11=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c11_program
+_ACEOF
+for ac_arg in '' -std=gnu11
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_c11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cc_c11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
+
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c11" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+     CC="$CC $ac_cv_prog_cc_c11"
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+  ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c99_program
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
+
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c99" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+     CC="$CC $ac_cv_prog_cc_c99"
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+  ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c89_program
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
+  if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_c89=$ac_arg
 fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
 rm -f conftest.$ac_ext
 CC=$ac_save_CC
-
 fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c89" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+     CC="$CC $ac_cv_prog_cc_c89"
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+  ac_prog_cc_stdc=c89
+fi
 fi
 
 ac_ext=c
@@ -3365,17 +3831,19 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 # Check whether --enable-largefile was given.
-if test "${enable_largefile+set}" = set; then :
+if test ${enable_largefile+y}
+then :
   enableval=$enable_largefile;
 fi
 
 if test "$enable_largefile" != no; then
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if ${ac_cv_sys_largefile_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+printf %s "checking for special C compiler options needed for large files... " >&6; }
+if test ${ac_cv_sys_largefile_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_cv_sys_largefile_CC=no
      if test "$GCC" != yes; then
        ac_save_CC=$CC
@@ -3389,44 +3857,47 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-	 if ac_fn_c_try_compile "$LINENO"; then :
+	 if ac_fn_c_try_compile "$LINENO"
+then :
   break
 fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
 	 CC="$CC -n32"
-	 if ac_fn_c_try_compile "$LINENO"; then :
+	 if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_largefile_CC=' -n32'; break
 fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
 	 break
        done
        CC=$ac_save_CC
        rm -f conftest.$ac_ext
     fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; }
   if test "$ac_cv_sys_largefile_CC" != no; then
     CC=$CC$ac_cv_sys_largefile_CC
   fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if ${ac_cv_sys_file_offset_bits+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if test ${ac_cv_sys_file_offset_bits+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   while :; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -3435,22 +3906,23 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_file_offset_bits=no; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #define _FILE_OFFSET_BITS 64
@@ -3459,43 +3931,43 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_file_offset_bits=64; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   ac_cv_sys_file_offset_bits=unknown
   break
 done
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
-$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; }
 case $ac_cv_sys_file_offset_bits in #(
   no | unknown) ;;
   *)
-cat >>confdefs.h <<_ACEOF
-#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
-_ACEOF
+printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h
 ;;
 esac
 rm -rf conftest*
   if test $ac_cv_sys_file_offset_bits = unknown; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
-$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if ${ac_cv_sys_large_files+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+printf %s "checking for _LARGE_FILES value needed for large files... " >&6; }
+if test ${ac_cv_sys_large_files+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   while :; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -3504,22 +3976,23 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_large_files=no; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #define _LARGE_FILES 1
@@ -3528,40 +4001,37 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_large_files=1; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   ac_cv_sys_large_files=unknown
   break
 done
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
-$as_echo "$ac_cv_sys_large_files" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+printf "%s\n" "$ac_cv_sys_large_files" >&6; }
 case $ac_cv_sys_large_files in #(
   no | unknown) ;;
   *)
-cat >>confdefs.h <<_ACEOF
-#define _LARGE_FILES $ac_cv_sys_large_files
-_ACEOF
+printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h
 ;;
 esac
 rm -rf conftest*
   fi
-
-
 fi
 
 
@@ -3919,16 +4389,15 @@ CONFIG_DIR=$sysconfdir
 XEN_CONFIG_DIR=$CONFIG_DIR/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_CONFIG_DIR "$XEN_CONFIG_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_CONFIG_DIR \"$XEN_CONFIG_DIR\"" >>confdefs.h
 
 
 
 # Check whether --with-initddir was given.
-if test "${with_initddir+set}" = set; then :
+if test ${with_initddir+y}
+then :
   withval=$with_initddir; initddir_path=$withval
-else
+else $as_nop
   case "$host_os" in
          *linux*)
          if test -d $sysconfdir/rc.d/init.d ; then
@@ -3946,9 +4415,10 @@ fi
 
 
 # Check whether --with-sysconfig-leaf-dir was given.
-if test "${with_sysconfig_leaf_dir+set}" = set; then :
+if test ${with_sysconfig_leaf_dir+y}
+then :
   withval=$with_sysconfig_leaf_dir; config_leaf_dir=$withval
-else
+else $as_nop
   config_leaf_dir=sysconfig
     if test ! -d /etc/sysconfig ; then config_leaf_dir=default ; fi
 fi
@@ -3958,52 +4428,55 @@ CONFIG_LEAF_DIR=$config_leaf_dir
 
 
 # Check whether --with-libexec-leaf-dir was given.
-if test "${with_libexec_leaf_dir+set}" = set; then :
+if test ${with_libexec_leaf_dir+y}
+then :
   withval=$with_libexec_leaf_dir; libexec_subdir=$withval
-else
+else $as_nop
   libexec_subdir=$PACKAGE_TARNAME
 fi
 
 
 
 # Check whether --with-xen-scriptdir was given.
-if test "${with_xen_scriptdir+set}" = set; then :
+if test ${with_xen_scriptdir+y}
+then :
   withval=$with_xen_scriptdir; xen_scriptdir_path=$withval
-else
+else $as_nop
   xen_scriptdir_path=$XEN_CONFIG_DIR/scripts
 fi
 
 XEN_SCRIPT_DIR=$xen_scriptdir_path
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_SCRIPT_DIR "$XEN_SCRIPT_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_SCRIPT_DIR \"$XEN_SCRIPT_DIR\"" >>confdefs.h
 
 
 
 # Check whether --with-xen-dumpdir was given.
-if test "${with_xen_dumpdir+set}" = set; then :
+if test ${with_xen_dumpdir+y}
+then :
   withval=$with_xen_dumpdir; xen_dumpdir_path=$withval
-else
+else $as_nop
   xen_dumpdir_path=$localstatedir/lib/xen/dump
 fi
 
 
 
 # Check whether --with-rundir was given.
-if test "${with_rundir+set}" = set; then :
+if test ${with_rundir+y}
+then :
   withval=$with_rundir; rundir_path=$withval
-else
+else $as_nop
   rundir_path=$localstatedir/run
 fi
 
 
 
 # Check whether --with-debugdir was given.
-if test "${with_debugdir+set}" = set; then :
+if test ${with_debugdir+y}
+then :
   withval=$with_debugdir; debugdir_path=$withval
-else
+else $as_nop
   debugdir_path=$prefix/lib/debug
 fi
 
@@ -4022,9 +4495,7 @@ LIBEXEC=`eval echo $libexecdir/$libexec_subdir`
 LIBEXEC_BIN=${LIBEXEC}/bin
 
 
-cat >>confdefs.h <<_ACEOF
-#define LIBEXEC_BIN "$LIBEXEC_BIN"
-_ACEOF
+printf "%s\n" "#define LIBEXEC_BIN \"$LIBEXEC_BIN\"" >>confdefs.h
 
 LIBEXEC_LIB=${LIBEXEC}/lib
 
@@ -4033,41 +4504,31 @@ LIBEXEC_INC=${LIBEXEC}/include
 XENFIRMWAREDIR=${LIBEXEC}/boot
 
 
-cat >>confdefs.h <<_ACEOF
-#define XENFIRMWAREDIR "$XENFIRMWAREDIR"
-_ACEOF
+printf "%s\n" "#define XENFIRMWAREDIR \"$XENFIRMWAREDIR\"" >>confdefs.h
 
 
 XEN_RUN_DIR=$rundir_path/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_RUN_DIR "$XEN_RUN_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_RUN_DIR \"$XEN_RUN_DIR\"" >>confdefs.h
 
 
 XEN_LOG_DIR=$localstatedir/log/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_LOG_DIR "$XEN_LOG_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_LOG_DIR \"$XEN_LOG_DIR\"" >>confdefs.h
 
 
 XEN_RUN_STORED=$rundir_path/xenstored
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_RUN_STORED "$XEN_RUN_STORED"
-_ACEOF
+printf "%s\n" "#define XEN_RUN_STORED \"$XEN_RUN_STORED\"" >>confdefs.h
 
 
 XEN_LIB_DIR=$localstatedir/lib/xen
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_LIB_DIR "$XEN_LIB_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_LIB_DIR \"$XEN_LIB_DIR\"" >>confdefs.h
 
 
 SHAREDIR=$prefix/share
@@ -4083,9 +4544,7 @@ case "$host_os" in
 esac
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_LOCK_DIR "$XEN_LOCK_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_LOCK_DIR \"$XEN_LOCK_DIR\"" >>confdefs.h
 
 
 XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
@@ -4094,9 +4553,7 @@ XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
 XEN_DUMP_DIR=$xen_dumpdir_path
 
 
-cat >>confdefs.h <<_ACEOF
-#define XEN_DUMP_DIR "$XEN_DUMP_DIR"
-_ACEOF
+printf "%s\n" "#define XEN_DUMP_DIR \"$XEN_DUMP_DIR\"" >>confdefs.h
 
 
 DEBUG_DIR=$debugdir_path
@@ -4106,20 +4563,24 @@ DEBUG_DIR=$debugdir_path
 # Enable/disable options
 
 # Check whether --enable-werror was given.
-if test "${enable_werror+set}" = set; then :
+if test ${enable_werror+y}
+then :
   enableval=$enable_werror;
 fi
 
 
-if test "x$enable_werror" = "xno"; then :
+if test "x$enable_werror" = "xno"
+then :
 
     ax_cv_werror="n"
 
-elif test "x$enable_werror" = "xyes"; then :
+elif test "x$enable_werror" = "xyes"
+then :
 
     ax_cv_werror="y"
 
-elif test -z $ax_cv_werror; then :
+elif test -z $ax_cv_werror
+then :
 
     ax_cv_werror="y"
 
@@ -4129,20 +4590,24 @@ werror=$ax_cv_werror
 
 
 # Check whether --enable-rpath was given.
-if test "${enable_rpath+set}" = set; then :
+if test ${enable_rpath+y}
+then :
   enableval=$enable_rpath;
 fi
 
 
-if test "x$enable_rpath" = "xno"; then :
+if test "x$enable_rpath" = "xno"
+then :
 
     ax_cv_rpath="n"
 
-elif test "x$enable_rpath" = "xyes"; then :
+elif test "x$enable_rpath" = "xyes"
+then :
 
     ax_cv_rpath="y"
 
-elif test -z $ax_cv_rpath; then :
+elif test -z $ax_cv_rpath
+then :
 
     ax_cv_rpath="n"
 
@@ -4152,20 +4617,24 @@ rpath=$ax_cv_rpath
 
 
 # Check whether --enable-monitors was given.
-if test "${enable_monitors+set}" = set; then :
+if test ${enable_monitors+y}
+then :
   enableval=$enable_monitors;
 fi
 
 
-if test "x$enable_monitors" = "xno"; then :
+if test "x$enable_monitors" = "xno"
+then :
 
     ax_cv_monitors="n"
 
-elif test "x$enable_monitors" = "xyes"; then :
+elif test "x$enable_monitors" = "xyes"
+then :
 
     ax_cv_monitors="y"
 
-elif test -z $ax_cv_monitors; then :
+elif test -z $ax_cv_monitors
+then :
 
     ax_cv_monitors="y"
 
@@ -4175,20 +4644,24 @@ monitors=$ax_cv_monitors
 
 
 # Check whether --enable-ocamltools was given.
-if test "${enable_ocamltools+set}" = set; then :
+if test ${enable_ocamltools+y}
+then :
   enableval=$enable_ocamltools;
 fi
 
 
-if test "x$enable_ocamltools" = "xno"; then :
+if test "x$enable_ocamltools" = "xno"
+then :
 
     ax_cv_ocamltools="n"
 
-elif test "x$enable_ocamltools" = "xyes"; then :
+elif test "x$enable_ocamltools" = "xyes"
+then :
 
     ax_cv_ocamltools="y"
 
-elif test -z $ax_cv_ocamltools; then :
+elif test -z $ax_cv_ocamltools
+then :
 
     ax_cv_ocamltools="y"
 
@@ -4198,20 +4671,24 @@ ocamltools=$ax_cv_ocamltools
 
 
 # Check whether --enable-xsmpolicy was given.
-if test "${enable_xsmpolicy+set}" = set; then :
+if test ${enable_xsmpolicy+y}
+then :
   enableval=$enable_xsmpolicy;
 fi
 
 
-if test "x$enable_xsmpolicy" = "xno"; then :
+if test "x$enable_xsmpolicy" = "xno"
+then :
 
     ax_cv_xsmpolicy="n"
 
-elif test "x$enable_xsmpolicy" = "xyes"; then :
+elif test "x$enable_xsmpolicy" = "xyes"
+then :
 
     ax_cv_xsmpolicy="y"
 
-elif test -z $ax_cv_xsmpolicy; then :
+elif test -z $ax_cv_xsmpolicy
+then :
 
     ax_cv_xsmpolicy="y"
 
@@ -4221,20 +4698,24 @@ xsmpolicy=$ax_cv_xsmpolicy
 
 
 # Check whether --enable-ovmf was given.
-if test "${enable_ovmf+set}" = set; then :
+if test ${enable_ovmf+y}
+then :
   enableval=$enable_ovmf;
 fi
 
 
-if test "x$enable_ovmf" = "xno"; then :
+if test "x$enable_ovmf" = "xno"
+then :
 
     ax_cv_ovmf="n"
 
-elif test "x$enable_ovmf" = "xyes"; then :
+elif test "x$enable_ovmf" = "xyes"
+then :
 
     ax_cv_ovmf="y"
 
-elif test -z $ax_cv_ovmf; then :
+elif test -z $ax_cv_ovmf
+then :
 
     ax_cv_ovmf="n"
 
@@ -4244,20 +4725,24 @@ ovmf=$ax_cv_ovmf
 
 
 # Check whether --enable-seabios was given.
-if test "${enable_seabios+set}" = set; then :
+if test ${enable_seabios+y}
+then :
   enableval=$enable_seabios;
 fi
 
 
-if test "x$enable_seabios" = "xno"; then :
+if test "x$enable_seabios" = "xno"
+then :
 
     ax_cv_seabios="n"
 
-elif test "x$enable_seabios" = "xyes"; then :
+elif test "x$enable_seabios" = "xyes"
+then :
 
     ax_cv_seabios="y"
 
-elif test -z $ax_cv_seabios; then :
+elif test -z $ax_cv_seabios
+then :
 
     ax_cv_seabios="y"
 
@@ -4267,20 +4752,24 @@ seabios=$ax_cv_seabios
 
 
 # Check whether --enable-golang was given.
-if test "${enable_golang+set}" = set; then :
+if test ${enable_golang+y}
+then :
   enableval=$enable_golang;
 fi
 
 
-if test "x$enable_golang" = "xno"; then :
+if test "x$enable_golang" = "xno"
+then :
 
     ax_cv_golang="n"
 
-elif test "x$enable_golang" = "xyes"; then :
+elif test "x$enable_golang" = "xyes"
+then :
 
     ax_cv_golang="y"
 
-elif test -z $ax_cv_golang; then :
+elif test -z $ax_cv_golang
+then :
 
     ax_cv_golang="y"
 
@@ -4290,20 +4779,24 @@ golang=$ax_cv_golang
 
 
 # Check whether --enable-pygrub was given.
-if test "${enable_pygrub+set}" = set; then :
+if test ${enable_pygrub+y}
+then :
   enableval=$enable_pygrub;
 fi
 
 
-if test "x$enable_pygrub" = "xno"; then :
+if test "x$enable_pygrub" = "xno"
+then :
 
     ax_cv_pygrub="n"
 
-elif test "x$enable_pygrub" = "xyes"; then :
+elif test "x$enable_pygrub" = "xyes"
+then :
 
     ax_cv_pygrub="y"
 
-elif test -z $ax_cv_pygrub; then :
+elif test -z $ax_cv_pygrub
+then :
 
     ax_cv_pygrub="y"
 
@@ -4314,9 +4807,10 @@ pygrub=$ax_cv_pygrub
 
 
 # Check whether --with-linux-backend-modules was given.
-if test "${with_linux_backend_modules+set}" = set; then :
+if test ${with_linux_backend_modules+y}
+then :
   withval=$with_linux_backend_modules; LINUX_BACKEND_MODULES="$withval"
-else
+else $as_nop
   case "$host_os" in
 *linux*)
 LINUX_BACKEND_MODULES="
@@ -4346,17 +4840,19 @@ LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
 
 
 # Check whether --enable-qemu-traditional was given.
-if test "${enable_qemu_traditional+set}" = set; then :
+if test ${enable_qemu_traditional+y}
+then :
   enableval=$enable_qemu_traditional;
 fi
 
-if test "x$enable_qemu_traditional" = "xyes"; then :
+if test "x$enable_qemu_traditional" = "xyes"
+then :
 
 
-$as_echo "#define HAVE_QEMU_TRADITIONAL 1" >>confdefs.h
+printf "%s\n" "#define HAVE_QEMU_TRADITIONAL 1" >>confdefs.h
 
     qemu_traditional=y
-else
+else $as_nop
 
     qemu_traditional=n
 
@@ -4364,15 +4860,17 @@ fi
 
 
 # Check whether --enable-ipxe was given.
-if test "${enable_ipxe+set}" = set; then :
+if test ${enable_ipxe+y}
+then :
   enableval=$enable_ipxe;
-else
+else $as_nop
 
-    if test "x$enable_qemu_traditional" = "xyes"; then :
+    if test "x$enable_qemu_traditional" = "xyes"
+then :
 
         enable_ipxe="yes"
 
-else
+else $as_nop
 
         enable_ipxe="no"
 
@@ -4380,14 +4878,16 @@ fi
 
 fi
 
-if test "x$enable_ipxe" = "xno"; then :
+if test "x$enable_ipxe" = "xno"
+then :
   ipxe=n
-else
+else $as_nop
   ipxe=y
 fi
 
 # Check whether --with-system-ipxe was given.
-if test "${with_system_ipxe+set}" = set; then :
+if test ${with_system_ipxe+y}
+then :
   withval=$with_system_ipxe;
     case $withval in
         no) as_fn_error $? "--without-system-ipxe has no effect" "$LINENO" 5 ;;
@@ -4397,27 +4897,28 @@ if test "${with_system_ipxe+set}" = set; then :
 
 fi
 
-if test "x$ipxe" = "xy" -o -n "$ipxe_path" ; then :
+if test "x$ipxe" = "xy" -o -n "$ipxe_path"
+then :
 
 
-cat >>confdefs.h <<_ACEOF
-#define IPXE_PATH "${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"
-_ACEOF
+printf "%s\n" "#define IPXE_PATH \"${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}\"" >>confdefs.h
 
 
 fi
 
 
 # Check whether --enable-rombios was given.
-if test "${enable_rombios+set}" = set; then :
+if test ${enable_rombios+y}
+then :
   enableval=$enable_rombios;
-else
+else $as_nop
 
-    if test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"; then :
+    if test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"
+then :
 
         enable_rombios="yes"
 
-else
+else $as_nop
 
         enable_rombios="no"
 
@@ -4425,15 +4926,17 @@ fi
 
 fi
 
-if test "x$enable_rombios" = "xyes"; then :
+if test "x$enable_rombios" = "xyes"
+then :
 
                 # Extract the first word of "as86", so it can be a program name with args.
 set dummy as86; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_AS86+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_AS86+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $AS86 in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_AS86="$AS86" # Let the user override the test with a path.
@@ -4443,11 +4946,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_AS86="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_AS86="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4460,11 +4967,11 @@ esac
 fi
 AS86=$ac_cv_path_AS86
 if test -n "$AS86"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS86" >&5
-$as_echo "$AS86" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AS86" >&5
+printf "%s\n" "$AS86" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -4474,11 +4981,12 @@ then
 fi
     # Extract the first word of "ld86", so it can be a program name with args.
 set dummy ld86; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_LD86+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_LD86+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $LD86 in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_LD86="$LD86" # Let the user override the test with a path.
@@ -4488,11 +4996,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_LD86="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_LD86="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4505,11 +5017,11 @@ esac
 fi
 LD86=$ac_cv_path_LD86
 if test -n "$LD86"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD86" >&5
-$as_echo "$LD86" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD86" >&5
+printf "%s\n" "$LD86" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -4519,11 +5031,12 @@ then
 fi
     # Extract the first word of "bcc", so it can be a program name with args.
 set dummy bcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_BCC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_BCC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $BCC in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_BCC="$BCC" # Let the user override the test with a path.
@@ -4533,11 +5046,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_BCC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_BCC="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4550,11 +5067,11 @@ esac
 fi
 BCC=$ac_cv_path_BCC
 if test -n "$BCC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BCC" >&5
-$as_echo "$BCC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BCC" >&5
+printf "%s\n" "$BCC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -4562,11 +5079,12 @@ if test x"${BCC}" = x"no"
 then
     as_fn_error $? "Unable to find bcc, please install bcc" "$LINENO" 5
 fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_version_number in -llzma" >&5
-$as_echo_n "checking for lzma_version_number in -llzma... " >&6; }
-if ${ac_cv_lib_lzma_lzma_version_number+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lzma_version_number in -llzma" >&5
+printf %s "checking for lzma_version_number in -llzma... " >&6; }
+if test ${ac_cv_lib_lzma_lzma_version_number+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-llzma  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4575,69 +5093,69 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char lzma_version_number ();
 int
-main ()
+main (void)
 {
 return lzma_version_number ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_lzma_lzma_version_number=yes
-else
+else $as_nop
   ac_cv_lib_lzma_lzma_version_number=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_version_number" >&5
-$as_echo "$ac_cv_lib_lzma_lzma_version_number" >&6; }
-if test "x$ac_cv_lib_lzma_lzma_version_number" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBLZMA 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_version_number" >&5
+printf "%s\n" "$ac_cv_lib_lzma_lzma_version_number" >&6; }
+if test "x$ac_cv_lib_lzma_lzma_version_number" = xyes
+then :
+  printf "%s\n" "#define HAVE_LIBLZMA 1" >>confdefs.h
 
   LIBS="-llzma $LIBS"
 
-else
+else $as_nop
   as_fn_error $? "Could not find lzma, needed to build rombios" "$LINENO" 5
 fi
 
 
-$as_echo "#define HAVE_ROMBIOS 1" >>confdefs.h
+printf "%s\n" "#define HAVE_ROMBIOS 1" >>confdefs.h
 
     rombios=y
-else
+else $as_nop
 
     rombios=n
 
 fi
 
 
-if test "x$pygrub" = "xy"; then :
+if test "x$pygrub" = "xy"
+then :
 
 
-$as_echo "#define HAVE_PYGRUB 1" >>confdefs.h
+printf "%s\n" "#define HAVE_PYGRUB 1" >>confdefs.h
 
 
 fi
 
 # Check whether --enable-libfsimage was given.
-if test "${enable_libfsimage+set}" = set; then :
+if test ${enable_libfsimage+y}
+then :
   enableval=$enable_libfsimage;
-else
+else $as_nop
 
-    if test "x$pygrub" = "xn"; then :
+    if test "x$pygrub" = "xn"
+then :
 
         enable_libfsimage="no"
 
-else
+else $as_nop
 
         enable_libfsimage="yes"
 
@@ -4645,17 +5163,19 @@ fi
 
 fi
 
-if test "x$enable_libfsimage" = "xyes"; then :
+if test "x$enable_libfsimage" = "xyes"
+then :
 
     libfsimage=y
 
-else
+else $as_nop
 
-    if test "x$pygrub" = "xy"; then :
+    if test "x$pygrub" = "xy"
+then :
 
         as_fn_error $? "pygrub needs libfsimage" "$LINENO" 5
 
-else
+else $as_nop
 
         libfsimage=n
 
@@ -4666,7 +5186,8 @@ fi
 
 
 # Check whether --with-system-qemu was given.
-if test "${with_system_qemu+set}" = set; then :
+if test ${with_system_qemu+y}
+then :
   withval=$with_system_qemu;
     case $withval in
         yes)
@@ -4679,7 +5200,7 @@ if test "${with_system_qemu+set}" = set; then :
             qemu_xen_systemd="$qemu_xen_path" ;;
     esac
 
-else
+else $as_nop
 
     case "$host_cpu" in
         i[3456]86|x86_64)
@@ -4691,16 +5212,15 @@ else
 
 fi
 
-if test "x$qemu_xen" = "xy"; then :
+if test "x$qemu_xen" = "xy"
+then :
 
     qemu_xen_path="$LIBEXEC_BIN/qemu-system-i386"
     qemu_xen_systemd="$qemu_xen_path"
 
 fi
 
-cat >>confdefs.h <<_ACEOF
-#define QEMU_XEN_PATH "$qemu_xen_path"
-_ACEOF
+printf "%s\n" "#define QEMU_XEN_PATH \"$qemu_xen_path\"" >>confdefs.h
 
 
 
@@ -4708,25 +5228,25 @@ _ACEOF
 
 
 # Check whether --with-stubdom-qmp-proxy was given.
-if test "${with_stubdom_qmp_proxy+set}" = set; then :
+if test ${with_stubdom_qmp_proxy+y}
+then :
   withval=$with_stubdom_qmp_proxy;
     stubdom_qmp_proxy="$withval"
 
-else
+else $as_nop
 
     stubdom_qmp_proxy="$bindir/vchan-socket-proxy"
 
 fi
 
 
-cat >>confdefs.h <<_ACEOF
-#define STUBDOM_QMP_PROXY_PATH "$stubdom_qmp_proxy"
-_ACEOF
+printf "%s\n" "#define STUBDOM_QMP_PROXY_PATH \"$stubdom_qmp_proxy\"" >>confdefs.h
 
 
 
 # Check whether --with-system-seabios was given.
-if test "${with_system_seabios+set}" = set; then :
+if test ${with_system_seabios+y}
+then :
   withval=$with_system_seabios;
     # Disable compilation of SeaBIOS.
     seabios=n
@@ -4738,19 +5258,19 @@ if test "${with_system_seabios+set}" = set; then :
 
 fi
 
-if test "x$seabios" = "xy" -o -n "$seabios_path" ; then :
+if test "x$seabios" = "xy" -o -n "$seabios_path"
+then :
 
 
-cat >>confdefs.h <<_ACEOF
-#define SEABIOS_PATH "${seabios_path:-$XENFIRMWAREDIR/seabios.bin}"
-_ACEOF
+printf "%s\n" "#define SEABIOS_PATH \"${seabios_path:-$XENFIRMWAREDIR/seabios.bin}\"" >>confdefs.h
 
 
 fi
 
 
 # Check whether --with-system-ovmf was given.
-if test "${with_system_ovmf+set}" = set; then :
+if test ${with_system_ovmf+y}
+then :
   withval=$with_system_ovmf;
     # Disable compilation of OVMF.
     ovmf=n
@@ -4762,19 +5282,19 @@ if test "${with_system_ovmf+set}" = set; then :
 
 fi
 
-if test "x$ovmf" = "xy" -o -n "$ovmf_path" ; then :
+if test "x$ovmf" = "xy" -o -n "$ovmf_path"
+then :
 
 
-cat >>confdefs.h <<_ACEOF
-#define OVMF_PATH "${ovmf_path:-$XENFIRMWAREDIR/ovmf.bin}"
-_ACEOF
+printf "%s\n" "#define OVMF_PATH \"${ovmf_path:-$XENFIRMWAREDIR/ovmf.bin}\"" >>confdefs.h
 
 
 fi
 
 
 # Check whether --with-extra-qemuu-configure-args was given.
-if test "${with_extra_qemuu_configure_args+set}" = set; then :
+if test ${with_extra_qemuu_configure_args+y}
+then :
   withval=$with_extra_qemuu_configure_args;
     case $withval in
         no) EXTRA_QEMUU_CONFIGURE_ARGS= ;;
@@ -4832,11 +5352,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -4844,11 +5365,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4859,11 +5384,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -4872,11 +5397,12 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -4884,11 +5410,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4899,11 +5429,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_CC" = x; then
@@ -4911,8 +5441,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -4925,11 +5455,12 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -4937,11 +5468,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4952,11 +5487,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -4965,11 +5500,12 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -4978,15 +5514,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5002,18 +5542,18 @@ if test $ac_prog_rejected = yes; then
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+    ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
   fi
 fi
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5024,11 +5564,12 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -5036,11 +5577,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5051,11 +5596,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5068,11 +5613,12 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -5080,11 +5626,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5095,11 +5645,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5111,34 +5661,138 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}clang"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="clang"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
   fi
+else
+  CC="$ac_cv_prog_CC"
 fi
 
 fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
 See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
+for ac_option in --version -v -V -qversion -version; do
   { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -5148,20 +5802,21 @@ $as_echo "$ac_try_echo"; } >&5
     cat conftest.er1 >&5
   fi
   rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 done
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 #ifndef __GNUC__
        choke me
@@ -5171,29 +5826,33 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_compiler_gnu=yes
-else
+else $as_nop
   ac_compiler_gnu=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
 if test $ac_compiler_gnu = yes; then
   GCC=yes
 else
   GCC=
 fi
-ac_test_CFLAGS=${CFLAGS+set}
+ac_test_CFLAGS=${CFLAGS+y}
 ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
@@ -5202,57 +5861,60 @@ else
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_g=yes
-else
+else $as_nop
   CFLAGS=""
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
 
-else
+else $as_nop
   ac_c_werror_flag=$ac_save_c_werror_flag
 	 CFLAGS="-g"
 	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_g=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
   CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
   if test "$GCC" = yes; then
@@ -5267,94 +5929,144 @@ else
     CFLAGS=
   fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c11=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+$ac_c_conftest_c11_program
+_ACEOF
+for ac_arg in '' -std=gnu11
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_c11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cc_c11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
 
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c11" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+     CC="$CC $ac_cv_prog_cc_c11"
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+  ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c99_program
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
 
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c99" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+     CC="$CC $ac_cv_prog_cc_c99"
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+  ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c89_program
 _ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
+  if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_c89=$ac_arg
 fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
 rm -f conftest.$ac_ext
 CC=$ac_save_CC
-
 fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c89" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+     CC="$CC $ac_cv_prog_cc_c89"
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+  ac_prog_cc_stdc=c89
+fi
 fi
 
 ac_ext=c
@@ -5363,13 +6075,14 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval test \${ac_cv_prog_make_${ac_make}_set+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat >conftest.make <<\_ACEOF
 SHELL = /bin/sh
 all:
@@ -5385,16 +6098,17 @@ esac
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
   SET_MAKE=
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
-# Find a good install program.  We prefer a C program (faster),
+
+  # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
 # incompatible versions:
 # SysV /etc/install, /usr/sbin/install
@@ -5408,20 +6122,25 @@ fi
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
 # Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+printf %s "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+if test ${ac_cv_path_install+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    # Account for fact that we put trailing slashes in our PATH walk.
+case $as_dir in #((
+  ./ | /[cC]/* | \
   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
   ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
   /usr/ucb/* ) ;;
@@ -5431,13 +6150,13 @@ case $as_dir/ in #((
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
 	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
 	    :
 	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 	    # program-specific install script used by HP pwplus--don't use.
 	    :
 	  else
@@ -5445,12 +6164,12 @@ case $as_dir/ in #((
 	    echo one > conftest.one
 	    echo two > conftest.two
 	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	    if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
 	      test -s conftest.one && test -s conftest.two &&
 	      test -s conftest.dir/conftest.one &&
 	      test -s conftest.dir/conftest.two
 	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
 	      break 3
 	    fi
 	  fi
@@ -5466,7 +6185,7 @@ IFS=$as_save_IFS
 rm -rf conftest.one conftest.two conftest.dir
 
 fi
-  if test "${ac_cv_path_install+set}" = set; then
+  if test ${ac_cv_path_install+y}; then
     INSTALL=$ac_cv_path_install
   else
     # As a last resort, use the slow shell script.  Don't cache a
@@ -5476,8 +6195,8 @@ fi
     INSTALL=$ac_install_sh
   fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+printf "%s\n" "$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
@@ -5489,11 +6208,12 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 # Extract the first word of "flex", so it can be a program name with args.
 set dummy flex; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FLEX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_FLEX+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $FLEX in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_FLEX="$FLEX" # Let the user override the test with a path.
@@ -5503,11 +6223,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_FLEX="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_FLEX="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5519,21 +6243,22 @@ esac
 fi
 FLEX=$ac_cv_path_FLEX
 if test -n "$FLEX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLEX" >&5
-$as_echo "$FLEX" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FLEX" >&5
+printf "%s\n" "$FLEX" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
 # Extract the first word of "abi-dumper", so it can be a program name with args.
 set dummy abi-dumper; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ABI_DUMPER+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ABI_DUMPER+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $ABI_DUMPER in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_ABI_DUMPER="$ABI_DUMPER" # Let the user override the test with a path.
@@ -5543,11 +6268,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ABI_DUMPER="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_ABI_DUMPER="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5559,21 +6288,22 @@ esac
 fi
 ABI_DUMPER=$ac_cv_path_ABI_DUMPER
 if test -n "$ABI_DUMPER"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ABI_DUMPER" >&5
-$as_echo "$ABI_DUMPER" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ABI_DUMPER" >&5
+printf "%s\n" "$ABI_DUMPER" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PERL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PERL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $PERL in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
@@ -5583,11 +6313,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_PERL="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5600,11 +6334,11 @@ esac
 fi
 PERL=$ac_cv_path_PERL
 if test -n "$PERL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
-$as_echo "$PERL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+printf "%s\n" "$PERL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5614,11 +6348,12 @@ then
 fi
 # Extract the first word of "awk", so it can be a program name with args.
 set dummy awk; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_AWK+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_AWK+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $AWK in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_AWK="$AWK" # Let the user override the test with a path.
@@ -5628,11 +6363,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_AWK="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_AWK="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5645,11 +6384,11 @@ esac
 fi
 AWK=$ac_cv_path_AWK
 if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+printf "%s\n" "$AWK" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5662,11 +6401,12 @@ fi
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ocamlc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ocamlc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCAMLC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OCAMLC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OCAMLC"; then
   ac_cv_prog_OCAMLC="$OCAMLC" # Let the user override the test.
 else
@@ -5674,11 +6414,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OCAMLC="${ac_tool_prefix}ocamlc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5689,11 +6433,11 @@ fi
 fi
 OCAMLC=$ac_cv_prog_OCAMLC
 if test -n "$OCAMLC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCAMLC" >&5
-$as_echo "$OCAMLC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAMLC" >&5
+printf "%s\n" "$OCAMLC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5702,11 +6446,12 @@ if test -z "$ac_cv_prog_OCAMLC"; then
   ac_ct_OCAMLC=$OCAMLC
   # Extract the first word of "ocamlc", so it can be a program name with args.
 set dummy ocamlc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OCAMLC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OCAMLC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OCAMLC"; then
   ac_cv_prog_ac_ct_OCAMLC="$ac_ct_OCAMLC" # Let the user override the test.
 else
@@ -5714,11 +6459,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OCAMLC="ocamlc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5729,11 +6478,11 @@ fi
 fi
 ac_ct_OCAMLC=$ac_cv_prog_ac_ct_OCAMLC
 if test -n "$ac_ct_OCAMLC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLC" >&5
-$as_echo "$ac_ct_OCAMLC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLC" >&5
+printf "%s\n" "$ac_ct_OCAMLC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OCAMLC" = x; then
@@ -5741,8 +6490,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OCAMLC=$ac_ct_OCAMLC
@@ -5754,17 +6503,17 @@ fi
 
   if test "$OCAMLC" != "no"; then
      OCAMLVERSION=`$OCAMLC -v | sed -n -e 's|.*version* *\(.*\)$|\1|p'`
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: OCaml version is $OCAMLVERSION" >&5
-$as_echo "OCaml version is $OCAMLVERSION" >&6; }
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: OCaml version is $OCAMLVERSION" >&5
+printf "%s\n" "OCaml version is $OCAMLVERSION" >&6; }
      # If OCAMLLIB is set, use it
      if test "$OCAMLLIB" = ""; then
         OCAMLLIB=`$OCAMLC -where 2>/dev/null || $OCAMLC -v|tail -1|cut -d ' ' -f 4`
      else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: OCAMLLIB previously set; preserving it." >&5
-$as_echo "OCAMLLIB previously set; preserving it." >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: OCAMLLIB previously set; preserving it." >&5
+printf "%s\n" "OCAMLLIB previously set; preserving it." >&6; }
      fi
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: OCaml library path is $OCAMLLIB" >&5
-$as_echo "OCaml library path is $OCAMLLIB" >&6; }
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: OCaml library path is $OCAMLLIB" >&5
+printf "%s\n" "OCaml library path is $OCAMLLIB" >&6; }
 
 
 
@@ -5773,11 +6522,12 @@ $as_echo "OCaml library path is $OCAMLLIB" >&6; }
      if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ocamlopt", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ocamlopt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCAMLOPT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OCAMLOPT+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OCAMLOPT"; then
   ac_cv_prog_OCAMLOPT="$OCAMLOPT" # Let the user override the test.
 else
@@ -5785,11 +6535,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OCAMLOPT="${ac_tool_prefix}ocamlopt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5800,11 +6554,11 @@ fi
 fi
 OCAMLOPT=$ac_cv_prog_OCAMLOPT
 if test -n "$OCAMLOPT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCAMLOPT" >&5
-$as_echo "$OCAMLOPT" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAMLOPT" >&5
+printf "%s\n" "$OCAMLOPT" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5813,11 +6567,12 @@ if test -z "$ac_cv_prog_OCAMLOPT"; then
   ac_ct_OCAMLOPT=$OCAMLOPT
   # Extract the first word of "ocamlopt", so it can be a program name with args.
 set dummy ocamlopt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OCAMLOPT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OCAMLOPT+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OCAMLOPT"; then
   ac_cv_prog_ac_ct_OCAMLOPT="$ac_ct_OCAMLOPT" # Let the user override the test.
 else
@@ -5825,11 +6580,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OCAMLOPT="ocamlopt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5840,11 +6599,11 @@ fi
 fi
 ac_ct_OCAMLOPT=$ac_cv_prog_ac_ct_OCAMLOPT
 if test -n "$ac_ct_OCAMLOPT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLOPT" >&5
-$as_echo "$ac_ct_OCAMLOPT" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLOPT" >&5
+printf "%s\n" "$ac_ct_OCAMLOPT" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OCAMLOPT" = x; then
@@ -5852,8 +6611,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OCAMLOPT=$ac_ct_OCAMLOPT
@@ -5864,13 +6623,13 @@ fi
 
      OCAMLBEST=byte
      if test "$OCAMLOPT" = "no"; then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find ocamlopt; bytecode compilation only." >&5
-$as_echo "$as_me: WARNING: Cannot find ocamlopt; bytecode compilation only." >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find ocamlopt; bytecode compilation only." >&5
+printf "%s\n" "$as_me: WARNING: Cannot find ocamlopt; bytecode compilation only." >&2;}
      else
 	TMPVERSION=`$OCAMLOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
 	if test "$TMPVERSION" != "$OCAMLVERSION" ; then
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: versions differs from ocamlc; ocamlopt discarded." >&5
-$as_echo "versions differs from ocamlc; ocamlopt discarded." >&6; }
+	    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: versions differs from ocamlc; ocamlopt discarded." >&5
+printf "%s\n" "versions differs from ocamlc; ocamlopt discarded." >&6; }
 	    OCAMLOPT=no
 	else
 	    OCAMLBEST=opt
@@ -5883,11 +6642,12 @@ $as_echo "versions differs from ocamlc; ocamlopt discarded." >&6; }
      if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ocamlc.opt", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ocamlc.opt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCAMLCDOTOPT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OCAMLCDOTOPT+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OCAMLCDOTOPT"; then
   ac_cv_prog_OCAMLCDOTOPT="$OCAMLCDOTOPT" # Let the user override the test.
 else
@@ -5895,11 +6655,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OCAMLCDOTOPT="${ac_tool_prefix}ocamlc.opt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5910,11 +6674,11 @@ fi
 fi
 OCAMLCDOTOPT=$ac_cv_prog_OCAMLCDOTOPT
 if test -n "$OCAMLCDOTOPT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCAMLCDOTOPT" >&5
-$as_echo "$OCAMLCDOTOPT" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAMLCDOTOPT" >&5
+printf "%s\n" "$OCAMLCDOTOPT" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5923,11 +6687,12 @@ if test -z "$ac_cv_prog_OCAMLCDOTOPT"; then
   ac_ct_OCAMLCDOTOPT=$OCAMLCDOTOPT
   # Extract the first word of "ocamlc.opt", so it can be a program name with args.
 set dummy ocamlc.opt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OCAMLCDOTOPT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OCAMLCDOTOPT+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OCAMLCDOTOPT"; then
   ac_cv_prog_ac_ct_OCAMLCDOTOPT="$ac_ct_OCAMLCDOTOPT" # Let the user override the test.
 else
@@ -5935,11 +6700,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OCAMLCDOTOPT="ocamlc.opt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5950,11 +6719,11 @@ fi
 fi
 ac_ct_OCAMLCDOTOPT=$ac_cv_prog_ac_ct_OCAMLCDOTOPT
 if test -n "$ac_ct_OCAMLCDOTOPT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLCDOTOPT" >&5
-$as_echo "$ac_ct_OCAMLCDOTOPT" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLCDOTOPT" >&5
+printf "%s\n" "$ac_ct_OCAMLCDOTOPT" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OCAMLCDOTOPT" = x; then
@@ -5962,8 +6731,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OCAMLCDOTOPT=$ac_ct_OCAMLCDOTOPT
@@ -5975,8 +6744,8 @@ fi
      if test "$OCAMLCDOTOPT" != "no"; then
 	TMPVERSION=`$OCAMLCDOTOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
 	if test "$TMPVERSION" != "$OCAMLVERSION" ; then
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: versions differs from ocamlc; ocamlc.opt discarded." >&5
-$as_echo "versions differs from ocamlc; ocamlc.opt discarded." >&6; }
+	    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: versions differs from ocamlc; ocamlc.opt discarded." >&5
+printf "%s\n" "versions differs from ocamlc; ocamlc.opt discarded." >&6; }
 	else
 	    OCAMLC=$OCAMLCDOTOPT
 	fi
@@ -5987,11 +6756,12 @@ $as_echo "versions differs from ocamlc; ocamlc.opt discarded." >&6; }
 	if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ocamlopt.opt", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ocamlopt.opt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCAMLOPTDOTOPT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OCAMLOPTDOTOPT+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OCAMLOPTDOTOPT"; then
   ac_cv_prog_OCAMLOPTDOTOPT="$OCAMLOPTDOTOPT" # Let the user override the test.
 else
@@ -5999,11 +6769,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OCAMLOPTDOTOPT="${ac_tool_prefix}ocamlopt.opt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6014,11 +6788,11 @@ fi
 fi
 OCAMLOPTDOTOPT=$ac_cv_prog_OCAMLOPTDOTOPT
 if test -n "$OCAMLOPTDOTOPT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCAMLOPTDOTOPT" >&5
-$as_echo "$OCAMLOPTDOTOPT" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAMLOPTDOTOPT" >&5
+printf "%s\n" "$OCAMLOPTDOTOPT" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6027,11 +6801,12 @@ if test -z "$ac_cv_prog_OCAMLOPTDOTOPT"; then
   ac_ct_OCAMLOPTDOTOPT=$OCAMLOPTDOTOPT
   # Extract the first word of "ocamlopt.opt", so it can be a program name with args.
 set dummy ocamlopt.opt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OCAMLOPTDOTOPT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OCAMLOPTDOTOPT+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OCAMLOPTDOTOPT"; then
   ac_cv_prog_ac_ct_OCAMLOPTDOTOPT="$ac_ct_OCAMLOPTDOTOPT" # Let the user override the test.
 else
@@ -6039,11 +6814,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OCAMLOPTDOTOPT="ocamlopt.opt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6054,11 +6833,11 @@ fi
 fi
 ac_ct_OCAMLOPTDOTOPT=$ac_cv_prog_ac_ct_OCAMLOPTDOTOPT
 if test -n "$ac_ct_OCAMLOPTDOTOPT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLOPTDOTOPT" >&5
-$as_echo "$ac_ct_OCAMLOPTDOTOPT" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLOPTDOTOPT" >&5
+printf "%s\n" "$ac_ct_OCAMLOPTDOTOPT" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OCAMLOPTDOTOPT" = x; then
@@ -6066,8 +6845,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OCAMLOPTDOTOPT=$ac_ct_OCAMLOPTDOTOPT
@@ -6079,8 +6858,8 @@ fi
 	if test "$OCAMLOPTDOTOPT" != "no"; then
 	   TMPVERSION=`$OCAMLOPTDOTOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
 	   if test "$TMPVERSION" != "$OCAMLVERSION" ; then
-	      { $as_echo "$as_me:${as_lineno-$LINENO}: result: version differs from ocamlc; ocamlopt.opt discarded." >&5
-$as_echo "version differs from ocamlc; ocamlopt.opt discarded." >&6; }
+	      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: version differs from ocamlc; ocamlopt.opt discarded." >&5
+printf "%s\n" "version differs from ocamlc; ocamlopt.opt discarded." >&6; }
 	   else
 	      OCAMLOPT=$OCAMLOPTDOTOPT
 	   fi
@@ -6096,11 +6875,12 @@ $as_echo "version differs from ocamlc; ocamlopt.opt discarded." >&6; }
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ocaml", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ocaml; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCAML+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OCAML+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OCAML"; then
   ac_cv_prog_OCAML="$OCAML" # Let the user override the test.
 else
@@ -6108,11 +6888,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OCAML="${ac_tool_prefix}ocaml"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6123,11 +6907,11 @@ fi
 fi
 OCAML=$ac_cv_prog_OCAML
 if test -n "$OCAML"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCAML" >&5
-$as_echo "$OCAML" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAML" >&5
+printf "%s\n" "$OCAML" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6136,11 +6920,12 @@ if test -z "$ac_cv_prog_OCAML"; then
   ac_ct_OCAML=$OCAML
   # Extract the first word of "ocaml", so it can be a program name with args.
 set dummy ocaml; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OCAML+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OCAML+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OCAML"; then
   ac_cv_prog_ac_ct_OCAML="$ac_ct_OCAML" # Let the user override the test.
 else
@@ -6148,11 +6933,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OCAML="ocaml"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6163,11 +6952,11 @@ fi
 fi
 ac_ct_OCAML=$ac_cv_prog_ac_ct_OCAML
 if test -n "$ac_ct_OCAML"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAML" >&5
-$as_echo "$ac_ct_OCAML" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAML" >&5
+printf "%s\n" "$ac_ct_OCAML" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OCAML" = x; then
@@ -6175,8 +6964,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OCAML=$ac_ct_OCAML
@@ -6190,11 +6979,12 @@ fi
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ocamldep", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ocamldep; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCAMLDEP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OCAMLDEP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OCAMLDEP"; then
   ac_cv_prog_OCAMLDEP="$OCAMLDEP" # Let the user override the test.
 else
@@ -6202,11 +6992,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OCAMLDEP="${ac_tool_prefix}ocamldep"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6217,11 +7011,11 @@ fi
 fi
 OCAMLDEP=$ac_cv_prog_OCAMLDEP
 if test -n "$OCAMLDEP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCAMLDEP" >&5
-$as_echo "$OCAMLDEP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAMLDEP" >&5
+printf "%s\n" "$OCAMLDEP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6230,11 +7024,12 @@ if test -z "$ac_cv_prog_OCAMLDEP"; then
   ac_ct_OCAMLDEP=$OCAMLDEP
   # Extract the first word of "ocamldep", so it can be a program name with args.
 set dummy ocamldep; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OCAMLDEP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OCAMLDEP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OCAMLDEP"; then
   ac_cv_prog_ac_ct_OCAMLDEP="$ac_ct_OCAMLDEP" # Let the user override the test.
 else
@@ -6242,11 +7037,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OCAMLDEP="ocamldep"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6257,11 +7056,11 @@ fi
 fi
 ac_ct_OCAMLDEP=$ac_cv_prog_ac_ct_OCAMLDEP
 if test -n "$ac_ct_OCAMLDEP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLDEP" >&5
-$as_echo "$ac_ct_OCAMLDEP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLDEP" >&5
+printf "%s\n" "$ac_ct_OCAMLDEP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OCAMLDEP" = x; then
@@ -6269,8 +7068,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OCAMLDEP=$ac_ct_OCAMLDEP
@@ -6284,11 +7083,12 @@ fi
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ocamlmktop", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ocamlmktop; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCAMLMKTOP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OCAMLMKTOP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OCAMLMKTOP"; then
   ac_cv_prog_OCAMLMKTOP="$OCAMLMKTOP" # Let the user override the test.
 else
@@ -6296,11 +7096,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OCAMLMKTOP="${ac_tool_prefix}ocamlmktop"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6311,11 +7115,11 @@ fi
 fi
 OCAMLMKTOP=$ac_cv_prog_OCAMLMKTOP
 if test -n "$OCAMLMKTOP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCAMLMKTOP" >&5
-$as_echo "$OCAMLMKTOP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAMLMKTOP" >&5
+printf "%s\n" "$OCAMLMKTOP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6324,11 +7128,12 @@ if test -z "$ac_cv_prog_OCAMLMKTOP"; then
   ac_ct_OCAMLMKTOP=$OCAMLMKTOP
   # Extract the first word of "ocamlmktop", so it can be a program name with args.
 set dummy ocamlmktop; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OCAMLMKTOP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OCAMLMKTOP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OCAMLMKTOP"; then
   ac_cv_prog_ac_ct_OCAMLMKTOP="$ac_ct_OCAMLMKTOP" # Let the user override the test.
 else
@@ -6336,11 +7141,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OCAMLMKTOP="ocamlmktop"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6351,11 +7160,11 @@ fi
 fi
 ac_ct_OCAMLMKTOP=$ac_cv_prog_ac_ct_OCAMLMKTOP
 if test -n "$ac_ct_OCAMLMKTOP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLMKTOP" >&5
-$as_echo "$ac_ct_OCAMLMKTOP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLMKTOP" >&5
+printf "%s\n" "$ac_ct_OCAMLMKTOP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OCAMLMKTOP" = x; then
@@ -6363,8 +7172,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OCAMLMKTOP=$ac_ct_OCAMLMKTOP
@@ -6378,11 +7187,12 @@ fi
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ocamlmklib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ocamlmklib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCAMLMKLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OCAMLMKLIB+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OCAMLMKLIB"; then
   ac_cv_prog_OCAMLMKLIB="$OCAMLMKLIB" # Let the user override the test.
 else
@@ -6390,11 +7200,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OCAMLMKLIB="${ac_tool_prefix}ocamlmklib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6405,11 +7219,11 @@ fi
 fi
 OCAMLMKLIB=$ac_cv_prog_OCAMLMKLIB
 if test -n "$OCAMLMKLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCAMLMKLIB" >&5
-$as_echo "$OCAMLMKLIB" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAMLMKLIB" >&5
+printf "%s\n" "$OCAMLMKLIB" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6418,11 +7232,12 @@ if test -z "$ac_cv_prog_OCAMLMKLIB"; then
   ac_ct_OCAMLMKLIB=$OCAMLMKLIB
   # Extract the first word of "ocamlmklib", so it can be a program name with args.
 set dummy ocamlmklib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OCAMLMKLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OCAMLMKLIB+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OCAMLMKLIB"; then
   ac_cv_prog_ac_ct_OCAMLMKLIB="$ac_ct_OCAMLMKLIB" # Let the user override the test.
 else
@@ -6430,11 +7245,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OCAMLMKLIB="ocamlmklib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6445,11 +7264,11 @@ fi
 fi
 ac_ct_OCAMLMKLIB=$ac_cv_prog_ac_ct_OCAMLMKLIB
 if test -n "$ac_ct_OCAMLMKLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLMKLIB" >&5
-$as_echo "$ac_ct_OCAMLMKLIB" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLMKLIB" >&5
+printf "%s\n" "$ac_ct_OCAMLMKLIB" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OCAMLMKLIB" = x; then
@@ -6457,8 +7276,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OCAMLMKLIB=$ac_ct_OCAMLMKLIB
@@ -6472,11 +7291,12 @@ fi
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ocamldoc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ocamldoc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCAMLDOC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OCAMLDOC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OCAMLDOC"; then
   ac_cv_prog_OCAMLDOC="$OCAMLDOC" # Let the user override the test.
 else
@@ -6484,11 +7304,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OCAMLDOC="${ac_tool_prefix}ocamldoc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6499,11 +7323,11 @@ fi
 fi
 OCAMLDOC=$ac_cv_prog_OCAMLDOC
 if test -n "$OCAMLDOC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCAMLDOC" >&5
-$as_echo "$OCAMLDOC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAMLDOC" >&5
+printf "%s\n" "$OCAMLDOC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6512,11 +7336,12 @@ if test -z "$ac_cv_prog_OCAMLDOC"; then
   ac_ct_OCAMLDOC=$OCAMLDOC
   # Extract the first word of "ocamldoc", so it can be a program name with args.
 set dummy ocamldoc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OCAMLDOC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OCAMLDOC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OCAMLDOC"; then
   ac_cv_prog_ac_ct_OCAMLDOC="$ac_ct_OCAMLDOC" # Let the user override the test.
 else
@@ -6524,11 +7349,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OCAMLDOC="ocamldoc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6539,11 +7368,11 @@ fi
 fi
 ac_ct_OCAMLDOC=$ac_cv_prog_ac_ct_OCAMLDOC
 if test -n "$ac_ct_OCAMLDOC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLDOC" >&5
-$as_echo "$ac_ct_OCAMLDOC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLDOC" >&5
+printf "%s\n" "$ac_ct_OCAMLDOC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OCAMLDOC" = x; then
@@ -6551,8 +7380,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OCAMLDOC=$ac_ct_OCAMLDOC
@@ -6566,11 +7395,12 @@ fi
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ocamlbuild", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ocamlbuild; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCAMLBUILD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OCAMLBUILD+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OCAMLBUILD"; then
   ac_cv_prog_OCAMLBUILD="$OCAMLBUILD" # Let the user override the test.
 else
@@ -6578,11 +7408,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OCAMLBUILD="${ac_tool_prefix}ocamlbuild"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6593,11 +7427,11 @@ fi
 fi
 OCAMLBUILD=$ac_cv_prog_OCAMLBUILD
 if test -n "$OCAMLBUILD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCAMLBUILD" >&5
-$as_echo "$OCAMLBUILD" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAMLBUILD" >&5
+printf "%s\n" "$OCAMLBUILD" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6606,11 +7440,12 @@ if test -z "$ac_cv_prog_OCAMLBUILD"; then
   ac_ct_OCAMLBUILD=$OCAMLBUILD
   # Extract the first word of "ocamlbuild", so it can be a program name with args.
 set dummy ocamlbuild; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OCAMLBUILD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OCAMLBUILD+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OCAMLBUILD"; then
   ac_cv_prog_ac_ct_OCAMLBUILD="$ac_ct_OCAMLBUILD" # Let the user override the test.
 else
@@ -6618,11 +7453,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OCAMLBUILD="ocamlbuild"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6633,11 +7472,11 @@ fi
 fi
 ac_ct_OCAMLBUILD=$ac_cv_prog_ac_ct_OCAMLBUILD
 if test -n "$ac_ct_OCAMLBUILD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLBUILD" >&5
-$as_echo "$ac_ct_OCAMLBUILD" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLBUILD" >&5
+printf "%s\n" "$ac_ct_OCAMLBUILD" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OCAMLBUILD" = x; then
@@ -6645,8 +7484,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OCAMLBUILD=$ac_ct_OCAMLBUILD
@@ -6661,11 +7500,12 @@ fi
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ocamlfind", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ocamlfind; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OCAMLFIND+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OCAMLFIND+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OCAMLFIND"; then
   ac_cv_prog_OCAMLFIND="$OCAMLFIND" # Let the user override the test.
 else
@@ -6673,11 +7513,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OCAMLFIND="${ac_tool_prefix}ocamlfind"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6688,11 +7532,11 @@ fi
 fi
 OCAMLFIND=$ac_cv_prog_OCAMLFIND
 if test -n "$OCAMLFIND"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCAMLFIND" >&5
-$as_echo "$OCAMLFIND" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAMLFIND" >&5
+printf "%s\n" "$OCAMLFIND" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6701,11 +7545,12 @@ if test -z "$ac_cv_prog_OCAMLFIND"; then
   ac_ct_OCAMLFIND=$OCAMLFIND
   # Extract the first word of "ocamlfind", so it can be a program name with args.
 set dummy ocamlfind; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OCAMLFIND+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OCAMLFIND+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OCAMLFIND"; then
   ac_cv_prog_ac_ct_OCAMLFIND="$ac_ct_OCAMLFIND" # Let the user override the test.
 else
@@ -6713,11 +7558,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OCAMLFIND="ocamlfind"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6728,11 +7577,11 @@ fi
 fi
 ac_ct_OCAMLFIND=$ac_cv_prog_ac_ct_OCAMLFIND
 if test -n "$ac_ct_OCAMLFIND"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLFIND" >&5
-$as_echo "$ac_ct_OCAMLFIND" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OCAMLFIND" >&5
+printf "%s\n" "$ac_ct_OCAMLFIND" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OCAMLFIND" = x; then
@@ -6740,8 +7589,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OCAMLFIND=$ac_ct_OCAMLFIND
@@ -6757,11 +7606,12 @@ for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AWK+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$AWK"; then
   ac_cv_prog_AWK="$AWK" # Let the user override the test.
 else
@@ -6769,11 +7619,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6784,28 +7638,31 @@ fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+printf "%s\n" "$AWK" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
   test -n "$AWK" && break
 done
 
-if test "x$ocamltools" = "xy"; then :
+if test "x$ocamltools" = "xy"
+then :
 
-    if test "x$OCAMLOPT" = "xno" || test "x$OCAMLFIND" = "xno"; then :
+    if test "x$OCAMLOPT" = "xno" || test "x$OCAMLFIND" = "xno"
+then :
 
-        if test "x$enable_ocamltools" = "xyes"; then :
+        if test "x$enable_ocamltools" = "xyes"
+then :
 
             as_fn_error $? "Ocaml tools enabled, but missing ocamlopt or ocamlfind" "$LINENO" 5
 fi
         ocamltools="n"
 
-else
+else $as_nop
 
 
 
@@ -6840,7 +7697,8 @@ x$ax_compare_version_B" | sed 's/^ *//' | sort -r | sed "s/x${ax_compare_version
 
     if test "$ax_compare_version" = "true" ; then
 
-            if test "x$enable_ocamltools" = "xyes"; then :
+            if test "x$enable_ocamltools" = "xyes"
+then :
 
                 as_fn_error $? "Your version of OCaml: $OCAMLVERSION is not supported" "$LINENO" 5
 fi
@@ -6853,17 +7711,19 @@ fi
 
 fi
 
-if test "x$golang" = "xy"; then :
+if test "x$golang" = "xy"
+then :
 
 
         if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}go", so it can be a program name with args.
 set dummy ${ac_tool_prefix}go; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_GO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_GO+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$GO"; then
   ac_cv_prog_GO="$GO" # Let the user override the test.
 else
@@ -6871,11 +7731,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_GO="${ac_tool_prefix}go"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6886,11 +7750,11 @@ fi
 fi
 GO=$ac_cv_prog_GO
 if test -n "$GO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GO" >&5
-$as_echo "$GO" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GO" >&5
+printf "%s\n" "$GO" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6899,11 +7763,12 @@ if test -z "$ac_cv_prog_GO"; then
   ac_ct_GO=$GO
   # Extract the first word of "go", so it can be a program name with args.
 set dummy go; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_GO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_GO+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_GO"; then
   ac_cv_prog_ac_ct_GO="$ac_ct_GO" # Let the user override the test.
 else
@@ -6911,11 +7776,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_GO="go"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6926,11 +7795,11 @@ fi
 fi
 ac_ct_GO=$ac_cv_prog_ac_ct_GO
 if test -n "$ac_ct_GO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GO" >&5
-$as_echo "$ac_ct_GO" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GO" >&5
+printf "%s\n" "$ac_ct_GO" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_GO" = x; then
@@ -6938,8 +7807,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     GO=$ac_ct_GO
@@ -6953,16 +7822,18 @@ fi
         GOVERSION=`$GO version | cut -d " " -f 3 | sed "s/go//"`
     fi
 
-    if test "x$GO" = "xno"; then :
+    if test "x$GO" = "xno"
+then :
 
-        if test "x$enable_golang" =  "xyes"; then :
+        if test "x$enable_golang" =  "xyes"
+then :
 
             as_fn_error $? "Go tools enabled, but missing go compiler" "$LINENO" 5
 
 fi
         golang="n"
 
-else
+else $as_nop
 
 
 
@@ -6997,7 +7868,8 @@ x$ax_compare_version_B" | sed 's/^ *//' | sort -r | sed "s/x${ax_compare_version
 
     if test "$ax_compare_version" = "true" ; then
 
-            if test "x$enable_golang" = "xyes"; then :
+            if test "x$enable_golang" = "xyes"
+then :
 
                 as_fn_error $? "\"Your version of go: $GOVERSION is not supported\"" "$LINENO" 5
 
@@ -7020,24 +7892,29 @@ fi
 
 
 
-if test "x$XENSTORE" = "x"; then :
+if test "x$XENSTORE" = "x"
+then :
 
 
 # Check whether --with-xenstored was given.
-if test "${with_xenstored+set}" = set; then :
+if test ${with_xenstored+y}
+then :
   withval=$with_xenstored;
-		if test "x$withval" = "xxenstored"; then :
+		if test "x$withval" = "xxenstored"
+then :
 
 			xenstore=$withval
 			xenstored=$sbindir/xenstored
 
 fi
-		if test "x$withval" = "xoxenstored"; then :
+		if test "x$withval" = "xoxenstored"
+then :
 
 			xenstore=$withval
 			xenstored=$sbindir/oxenstored
 
-	if test "$ocamltools" = "n"; then :
+	if test "$ocamltools" = "n"
+then :
 
 		as_fn_error $? "Missing ocaml dependencies for oxenstored, try installing ocaml ocaml-compiler-libs ocaml-runtime ocaml-findlib" "$LINENO" 5
 
@@ -7045,18 +7922,20 @@ fi
 
 
 fi
-		if test "x$withval" != "xoxenstored" && test "x$withval" != "xxenstored"; then :
+		if test "x$withval" != "xoxenstored" && test "x$withval" != "xxenstored"
+then :
 
 			as_fn_error $? "Unsupported xenstored specified, supported types: oxenstored xenstored" "$LINENO" 5
 
 fi
 
-else
+else $as_nop
 
 
 	xenstore="oxenstored"
 	xenstored=$sbindir/oxenstored
-	if test "$ocamltools" = "n"; then :
+	if test "$ocamltools" = "n"
+then :
 
 		xenstore="xenstored"
 		xenstored=$sbindir/xenstored
@@ -7072,7 +7951,8 @@ fi
 
 	XENSTORE=$xenstore
 
-	if test "x$XENSTORED" = "x"; then :
+	if test "x$XENSTORED" = "x"
+then :
 
 		XENSTORED=$xenstored
 
@@ -7080,17 +7960,19 @@ fi
 
 
 
-if test "x$xsmpolicy" = "xy"; then :
+if test "x$xsmpolicy" = "xy"
+then :
 
       # check for a checkpolicy binary with support for -t xen
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}checkpolicy", so it can be a program name with args.
 set dummy ${ac_tool_prefix}checkpolicy; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CHECKPOLICY+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CHECKPOLICY+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CHECKPOLICY"; then
   ac_cv_prog_CHECKPOLICY="$CHECKPOLICY" # Let the user override the test.
 else
@@ -7098,11 +7980,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CHECKPOLICY="${ac_tool_prefix}checkpolicy"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7113,11 +7999,11 @@ fi
 fi
 CHECKPOLICY=$ac_cv_prog_CHECKPOLICY
 if test -n "$CHECKPOLICY"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECKPOLICY" >&5
-$as_echo "$CHECKPOLICY" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CHECKPOLICY" >&5
+printf "%s\n" "$CHECKPOLICY" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -7126,11 +8012,12 @@ if test -z "$ac_cv_prog_CHECKPOLICY"; then
   ac_ct_CHECKPOLICY=$CHECKPOLICY
   # Extract the first word of "checkpolicy", so it can be a program name with args.
 set dummy checkpolicy; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CHECKPOLICY+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CHECKPOLICY+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_CHECKPOLICY"; then
   ac_cv_prog_ac_ct_CHECKPOLICY="$ac_ct_CHECKPOLICY" # Let the user override the test.
 else
@@ -7138,11 +8025,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CHECKPOLICY="checkpolicy"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7153,11 +8044,11 @@ fi
 fi
 ac_ct_CHECKPOLICY=$ac_cv_prog_ac_ct_CHECKPOLICY
 if test -n "$ac_ct_CHECKPOLICY"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CHECKPOLICY" >&5
-$as_echo "$ac_ct_CHECKPOLICY" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CHECKPOLICY" >&5
+printf "%s\n" "$ac_ct_CHECKPOLICY" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_CHECKPOLICY" = x; then
@@ -7165,8 +8056,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CHECKPOLICY=$ac_ct_CHECKPOLICY
@@ -7183,9 +8074,11 @@ fi
      fi
   fi
 
-    if test "x$CHECKPOLICY" = "xno"; then :
+    if test "x$CHECKPOLICY" = "xno"
+then :
 
-        if test "x$enable_xsmpolicy" = "xyes"; then :
+        if test "x$enable_xsmpolicy" = "xyes"
+then :
 
             as_fn_error $? "XSM policy compilation enabled, but unable to find checkpolicy" "$LINENO" 5
 fi
@@ -7198,11 +8091,12 @@ case "$host_os" in
   freebsd*) ;;
   *) # Extract the first word of "bash", so it can be a program name with args.
 set dummy bash; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_BASH+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_BASH+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $BASH in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_BASH="$BASH" # Let the user override the test with a path.
@@ -7212,11 +8106,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_BASH="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_BASH="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7229,11 +8127,11 @@ esac
 fi
 BASH=$ac_cv_path_BASH
 if test -n "$BASH"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5
-$as_echo "$BASH" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5
+printf "%s\n" "$BASH" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -7242,16 +8140,18 @@ then
     as_fn_error $? "Unable to find bash, please install bash" "$LINENO" 5
 fi;;
 esac
-if test -z "$PYTHON"; then :
+if test -z "$PYTHON"
+then :
   for ac_prog in python3 python python2
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PYTHON+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_PYTHON+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$PYTHON"; then
   ac_cv_prog_PYTHON="$PYTHON" # Let the user override the test.
 else
@@ -7259,11 +8159,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_PYTHON="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7274,11 +8178,11 @@ fi
 fi
 PYTHON=$ac_cv_prog_PYTHON
 if test -n "$PYTHON"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-$as_echo "$PYTHON" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+printf "%s\n" "$PYTHON" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -7287,19 +8191,22 @@ done
 test -n "$PYTHON" || PYTHON="err"
 
 fi
-if test "$PYTHON" = "err"; then :
+if test "$PYTHON" = "err"
+then :
   as_fn_error $? "No python interpreter found" "$LINENO" 5
 fi
-if echo "$PYTHON" | grep -q "^/"; then :
+if echo "$PYTHON" | grep -q "^/"
+then :
 
-else
+else $as_nop
   # Extract the first word of "$PYTHON", so it can be a program name with args.
 set dummy $PYTHON; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PYTHON+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PYTHON+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $PYTHON in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
@@ -7309,11 +8216,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_PYTHON="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7325,11 +8236,11 @@ esac
 fi
 PYTHON=$ac_cv_path_PYTHON
 if test -n "$PYTHON"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-$as_echo "$PYTHON" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+printf "%s\n" "$PYTHON" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -7339,11 +8250,12 @@ PYTHON=`basename $PYTHONPATH`
 
 # Extract the first word of "$PYTHON", so it can be a program name with args.
 set dummy $PYTHON; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PYTHONPATH+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PYTHONPATH+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $PYTHONPATH in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PYTHONPATH="$PYTHONPATH" # Let the user override the test with a path.
@@ -7353,447 +8265,84 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PYTHONPATH="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_PYTHONPATH="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_PYTHONPATH" && ac_cv_path_PYTHONPATH="no"
-  ;;
-esac
-fi
-PYTHONPATH=$ac_cv_path_PYTHONPATH
-if test -n "$PYTHONPATH"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHONPATH" >&5
-$as_echo "$PYTHONPATH" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-if test x"${PYTHONPATH}" = x"no"
-then
-    as_fn_error $? "Unable to find $PYTHON, please install $PYTHON" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for python version >= 2.6 " >&5
-$as_echo_n "checking for python version >= 2.6 ... " >&6; }
-`$PYTHON -c 'import sys; sys.exit(eval("sys.version_info < (2, 6)"))'`
-if test "$?" != "0"
-then
-    python_version=`$PYTHON -V 2>&1`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    as_fn_error $? "$python_version is too old, minimum required version is 2.6" "$LINENO" 5
-else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if ${ac_cv_prog_CPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+  done
+IFS=$as_save_IFS
 
-else
-  ac_cv_header_stdc=no
+  test -z "$ac_cv_path_PYTHONPATH" && ac_cv_path_PYTHONPATH="no"
+  ;;
+esac
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+PYTHONPATH=$ac_cv_path_PYTHONPATH
+if test -n "$PYTHONPATH"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHONPATH" >&5
+printf "%s\n" "$PYTHONPATH" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
+
+if test x"${PYTHONPATH}" = x"no"
+then
+    as_fn_error $? "Unable to find $PYTHON, please install $PYTHON" "$LINENO" 5
 fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python version >= 2.6 " >&5
+printf %s "checking for python version >= 2.6 ... " >&6; }
+`$PYTHON -c 'import sys; sys.exit(eval("sys.version_info < (2, 6)"))'`
+if test "$?" != "0"
+then
+    python_version=`$PYTHON -V 2>&1`
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+    as_fn_error $? "$python_version is too old, minimum required version is 2.6" "$LINENO" 5
+else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
 
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+ac_header= ac_cache=
+for ac_item in $ac_header_c_list
+do
+  if test $ac_cache; then
+    ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
+    if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
+      printf "%s\n" "#define $ac_item 1" >> confdefs.h
+    fi
+    ac_header= ac_cache=
+  elif test $ac_header; then
+    ac_cache=$ac_item
+  else
+    ac_header=$ac_item
+  fi
+done
+
+
+
 
-fi
 
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
-fi
 
-done
 
+if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
+then :
 
-if test "$cross_compiling" != yes; then :
+printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+if test "$cross_compiling" != yes
+then :
 
 
 ac_previous_cppflags=$CPPFLAGS
@@ -7801,11 +8350,12 @@ ac_previous_ldflags=$LDFLAGS
 ac_previous_libs=$LIBS
 # Extract the first word of "$PYTHON-config", so it can be a program name with args.
 set dummy $PYTHON-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_pyconfig+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_pyconfig+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $pyconfig in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_pyconfig="$pyconfig" # Let the user override the test with a path.
@@ -7815,11 +8365,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_pyconfig="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_pyconfig="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7832,15 +8386,16 @@ esac
 fi
 pyconfig=$ac_cv_path_pyconfig
 if test -n "$pyconfig"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pyconfig" >&5
-$as_echo "$pyconfig" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pyconfig" >&5
+printf "%s\n" "$pyconfig" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-if test x"$pyconfig" = x"no"; then :
+if test x"$pyconfig" = x"no"
+then :
 
         CPPFLAGS="$CFLAGS `$PYTHON -c 'import sysconfig; \
         print("-I" + sysconfig.get_config_var("INCLUDEPY"))'`"
@@ -7858,7 +8413,7 @@ if test x"$pyconfig" = x"no"; then :
     LIBS="$LIBS `$PYTHON -c 'import sysconfig; \
         print(sysconfig.get_config_var("SYSLIBS"))'`"
 
-else
+else $as_nop
 
         CPPFLAGS="$CFLAGS `$PYTHON-config --cflags`"
             python_devel_embed=""
@@ -7871,18 +8426,19 @@ else
 
 fi
 
-ac_fn_c_check_header_mongrel "$LINENO" "Python.h" "ac_cv_header_Python_h" "$ac_includes_default"
-if test "x$ac_cv_header_Python_h" = xyes; then :
+ac_fn_c_check_header_compile "$LINENO" "Python.h" "ac_cv_header_Python_h" "$ac_includes_default"
+if test "x$ac_cv_header_Python_h" = xyes
+then :
 
-else
+else $as_nop
   as_fn_error $? "Unable to find Python development headers" "$LINENO" 5
 fi
 
-
 ac_fn_c_check_func "$LINENO" "PyArg_ParseTuple" "ac_cv_func_PyArg_ParseTuple"
-if test "x$ac_cv_func_PyArg_ParseTuple" = xyes; then :
+if test "x$ac_cv_func_PyArg_ParseTuple" = xyes
+then :
 
-else
+else $as_nop
   as_fn_error $? "Unable to find a suitable python development library" "$LINENO" 5
 fi
 
@@ -7892,11 +8448,12 @@ LDFLAGS=$ac_previous_ldflags
 LIBS=$ac_previous_libs
 
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE" >&5
-$as_echo_n "checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE... " >&6; }
-if ${ax_cv_python_fortify+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE" >&5
+printf %s "checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE... " >&6; }
+if test ${ax_cv_python_fortify+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
 
         ax_cv_python_fortify=no
         for arg in $($PYTHON-config --cflags); do
@@ -7910,14 +8467,15 @@ else
         done
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_python_fortify" >&5
-$as_echo "$ax_cv_python_fortify" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_python_fortify" >&5
+printf "%s\n" "$ax_cv_python_fortify" >&6; }
 
-    if test x$ax_cv_python_fortify = xyes; then :
+    if test x$ax_cv_python_fortify = xyes
+then :
 
         PY_NOOPT_CFLAGS=-O1
 
-else
+else $as_nop
 
         PY_NOOPT_CFLAGS=''
 
@@ -7934,11 +8492,12 @@ case "$host_cpu" in
 i[3456]86|x86_64|aarch64)
     # Extract the first word of "iasl", so it can be a program name with args.
 set dummy iasl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_IASL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_IASL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $IASL in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_IASL="$IASL" # Let the user override the test with a path.
@@ -7948,11 +8507,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_IASL="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_IASL="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7965,11 +8528,11 @@ esac
 fi
 IASL=$ac_cv_path_IASL
 if test -n "$IASL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IASL" >&5
-$as_echo "$IASL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $IASL" >&5
+printf "%s\n" "$IASL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -7980,14 +8543,16 @@ fi
     ;;
 esac
 
-ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default"
-if test "x$ac_cv_header_uuid_uuid_h" = xyes; then :
+ac_fn_c_check_header_compile "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default"
+if test "x$ac_cv_header_uuid_uuid_h" = xyes
+then :
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_clear in -luuid" >&5
-$as_echo_n "checking for uuid_clear in -luuid... " >&6; }
-if ${ac_cv_lib_uuid_uuid_clear+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uuid_clear in -luuid" >&5
+printf %s "checking for uuid_clear in -luuid... " >&6; }
+if test ${ac_cv_lib_uuid_uuid_clear+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-luuid  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7996,58 +8561,59 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char uuid_clear ();
 int
-main ()
+main (void)
 {
 return uuid_clear ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_uuid_uuid_clear=yes
-else
+else $as_nop
   ac_cv_lib_uuid_uuid_clear=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_clear" >&5
-$as_echo "$ac_cv_lib_uuid_uuid_clear" >&6; }
-if test "x$ac_cv_lib_uuid_uuid_clear" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_clear" >&5
+printf "%s\n" "$ac_cv_lib_uuid_uuid_clear" >&6; }
+if test "x$ac_cv_lib_uuid_uuid_clear" = xyes
+then :
   libuuid="y"
 fi
 
 
 fi
 
-
-ac_fn_c_check_header_mongrel "$LINENO" "uuid.h" "ac_cv_header_uuid_h" "$ac_includes_default"
-if test "x$ac_cv_header_uuid_h" = xyes; then :
+ac_fn_c_check_header_compile "$LINENO" "uuid.h" "ac_cv_header_uuid_h" "$ac_includes_default"
+if test "x$ac_cv_header_uuid_h" = xyes
+then :
   libuuid="y"
 fi
 
-
-if test "$libuuid" != "y"; then :
+if test "$libuuid" != "y"
+then :
 
     as_fn_error $? "cannot find a valid uuid library" "$LINENO" 5
 
 fi
 
 
-ac_fn_c_check_header_mongrel "$LINENO" "curses.h" "ac_cv_header_curses_h" "$ac_includes_default"
-if test "x$ac_cv_header_curses_h" = xyes; then :
+ac_fn_c_check_header_compile "$LINENO" "curses.h" "ac_cv_header_curses_h" "$ac_includes_default"
+if test "x$ac_cv_header_curses_h" = xyes
+then :
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clear in -lcurses" >&5
-$as_echo_n "checking for clear in -lcurses... " >&6; }
-if ${ac_cv_lib_curses_clear+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clear in -lcurses" >&5
+printf %s "checking for clear in -lcurses... " >&6; }
+if test ${ac_cv_lib_curses_clear+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lcurses  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8056,49 +8622,49 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char clear ();
 int
-main ()
+main (void)
 {
 return clear ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_curses_clear=yes
-else
+else $as_nop
   ac_cv_lib_curses_clear=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_clear" >&5
-$as_echo "$ac_cv_lib_curses_clear" >&6; }
-if test "x$ac_cv_lib_curses_clear" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_clear" >&5
+printf "%s\n" "$ac_cv_lib_curses_clear" >&6; }
+if test "x$ac_cv_lib_curses_clear" = xyes
+then :
   curses="y"
-else
+else $as_nop
   curses="n"
 fi
 
 
-else
+else $as_nop
   curses="n"
 fi
 
+ac_fn_c_check_header_compile "$LINENO" "ncurses.h" "ac_cv_header_ncurses_h" "$ac_includes_default"
+if test "x$ac_cv_header_ncurses_h" = xyes
+then :
 
-ac_fn_c_check_header_mongrel "$LINENO" "ncurses.h" "ac_cv_header_ncurses_h" "$ac_includes_default"
-if test "x$ac_cv_header_ncurses_h" = xyes; then :
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clear in -lncurses" >&5
-$as_echo_n "checking for clear in -lncurses... " >&6; }
-if ${ac_cv_lib_ncurses_clear+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clear in -lncurses" >&5
+printf %s "checking for clear in -lncurses... " >&6; }
+if test ${ac_cv_lib_ncurses_clear+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lncurses  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8107,71 +8673,73 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char clear ();
 int
-main ()
+main (void)
 {
 return clear ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_ncurses_clear=yes
-else
+else $as_nop
   ac_cv_lib_ncurses_clear=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_clear" >&5
-$as_echo "$ac_cv_lib_ncurses_clear" >&6; }
-if test "x$ac_cv_lib_ncurses_clear" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_clear" >&5
+printf "%s\n" "$ac_cv_lib_ncurses_clear" >&6; }
+if test "x$ac_cv_lib_ncurses_clear" = xyes
+then :
   ncurses="y"
-else
+else $as_nop
   ncurses="n"
 fi
 
 
-else
+else $as_nop
   ncurses="n"
 fi
 
-
-if test "$curses" = "n" && test "$ncurses" = "n"; then :
+if test "$curses" = "n" && test "$ncurses" = "n"
+then :
 
     as_fn_error $? "Unable to find a suitable curses library" "$LINENO" 5
 
 fi
 # Prefer ncurses over curses if both are present
-if test "$ncurses" = "y"; then :
+if test "$ncurses" = "y"
+then :
 
     CURSES_LIBS="-lncurses"
 
-$as_echo "#define INCLUDE_CURSES_H <ncurses.h>" >>confdefs.h
+printf "%s\n" "#define INCLUDE_CURSES_H <ncurses.h>" >>confdefs.h
 
 
-else
+else $as_nop
 
     CURSES_LIBS="-lcurses"
 
-$as_echo "#define INCLUDE_CURSES_H <curses.h>" >>confdefs.h
+printf "%s\n" "#define INCLUDE_CURSES_H <curses.h>" >>confdefs.h
 
 
 fi
 
 
-if test "$ncurses" = "y"; then :
+if test "$ncurses" = "y"
+then :
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for define_key in -ltinfo" >&5
-$as_echo_n "checking for define_key in -ltinfo... " >&6; }
-if ${ac_cv_lib_tinfo_define_key+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for define_key in -ltinfo" >&5
+printf %s "checking for define_key in -ltinfo... " >&6; }
+if test ${ac_cv_lib_tinfo_define_key+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ltinfo  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8180,30 +8748,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char define_key ();
 int
-main ()
+main (void)
 {
 return define_key ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_tinfo_define_key=yes
-else
+else $as_nop
   ac_cv_lib_tinfo_define_key=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_define_key" >&5
-$as_echo "$ac_cv_lib_tinfo_define_key" >&6; }
-if test "x$ac_cv_lib_tinfo_define_key" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_define_key" >&5
+printf "%s\n" "$ac_cv_lib_tinfo_define_key" >&6; }
+if test "x$ac_cv_lib_tinfo_define_key" = xyes
+then :
   TINFO_LIBS=-ltinfo
 fi
 
@@ -8222,11 +8789,12 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
 	if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKG_CONFIG+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
@@ -8236,11 +8804,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -8252,11 +8824,11 @@ esac
 fi
 PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 if test -n "$PKG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+printf "%s\n" "$PKG_CONFIG" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -8265,11 +8837,12 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
   ac_pt_PKG_CONFIG=$PKG_CONFIG
   # Extract the first word of "pkg-config", so it can be a program name with args.
 set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $ac_pt_PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
@@ -8279,11 +8852,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -8295,11 +8872,11 @@ esac
 fi
 ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
 if test -n "$ac_pt_PKG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_pt_PKG_CONFIG" = x; then
@@ -8307,8 +8884,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     PKG_CONFIG=$ac_pt_PKG_CONFIG
@@ -8320,32 +8897,33 @@ fi
 fi
 if test -n "$PKG_CONFIG"; then
 	_pkg_min_version=0.9.0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
 	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 	else
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 		PKG_CONFIG=""
 	fi
 fi
-if test "x$qemu_xen" = "xy"; then :
+if test "x$qemu_xen" = "xy"
+then :
 
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib" >&5
-$as_echo_n "checking for glib... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for glib" >&5
+printf %s "checking for glib... " >&6; }
 
 if test -n "$glib_CFLAGS"; then
     pkg_cv_glib_CFLAGS="$glib_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.12\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.12\""; } >&5
   ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.12") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_glib_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.12" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -8359,10 +8937,10 @@ if test -n "$glib_LIBS"; then
     pkg_cv_glib_LIBS="$glib_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.12\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.12\""; } >&5
   ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.12") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_glib_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.12" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -8376,8 +8954,8 @@ fi
 
 
 if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+   	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -8403,10 +8981,10 @@ Alternatively, you may set the environment variables glib_CFLAGS
 and glib_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
 elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+	{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
@@ -8420,23 +8998,23 @@ See \`config.log' for more details" "$LINENO" 5; }
 else
 	glib_CFLAGS=$pkg_cv_glib_CFLAGS
 	glib_LIBS=$pkg_cv_glib_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 
 fi
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pixman" >&5
-$as_echo_n "checking for pixman... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pixman" >&5
+printf %s "checking for pixman... " >&6; }
 
 if test -n "$pixman_CFLAGS"; then
     pkg_cv_pixman_CFLAGS="$pixman_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1 >= 0.21.8\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1 >= 0.21.8\""; } >&5
   ($PKG_CONFIG --exists --print-errors "pixman-1 >= 0.21.8") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_pixman_CFLAGS=`$PKG_CONFIG --cflags "pixman-1 >= 0.21.8" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -8450,10 +9028,10 @@ if test -n "$pixman_LIBS"; then
     pkg_cv_pixman_LIBS="$pixman_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1 >= 0.21.8\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1 >= 0.21.8\""; } >&5
   ($PKG_CONFIG --exists --print-errors "pixman-1 >= 0.21.8") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_pixman_LIBS=`$PKG_CONFIG --libs "pixman-1 >= 0.21.8" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -8467,8 +9045,8 @@ fi
 
 
 if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+   	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -8494,10 +9072,10 @@ Alternatively, you may set the environment variables pixman_CFLAGS
 and pixman_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
 elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+	{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
@@ -8511,8 +9089,8 @@ See \`config.log' for more details" "$LINENO" 5; }
 else
 	pixman_CFLAGS=$pkg_cv_pixman_CFLAGS
 	pixman_LIBS=$pkg_cv_pixman_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 
 fi
 
@@ -8520,11 +9098,12 @@ fi
 
 # Extract the first word of "wget", so it can be a program name with args.
 set dummy wget; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_WGET+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_WGET+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $WGET in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_WGET="$WGET" # Let the user override the test with a path.
@@ -8534,11 +9113,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_WGET="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_WGET="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -8551,21 +9134,22 @@ esac
 fi
 WGET=$ac_cv_path_WGET
 if test -n "$WGET"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WGET" >&5
-$as_echo "$WGET" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $WGET" >&5
+printf "%s\n" "$WGET" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
 # Extract the first word of "false", so it can be a program name with args.
 set dummy false; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FALSE+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_FALSE+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $FALSE in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_FALSE="$FALSE" # Let the user override the test with a path.
@@ -8575,11 +9159,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_FALSE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_FALSE="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -8592,27 +9180,29 @@ esac
 fi
 FALSE=$ac_cv_path_FALSE
 if test -n "$FALSE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FALSE" >&5
-$as_echo "$FALSE" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FALSE" >&5
+printf "%s\n" "$FALSE" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-if test x"$WGET" != x"no"; then :
+if test x"$WGET" != x"no"
+then :
 
     FETCHER="$WGET -c -O"
 
-else
+else $as_nop
 
     # Extract the first word of "ftp", so it can be a program name with args.
 set dummy ftp; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FTP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_FTP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $FTP in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_FTP="$FTP" # Let the user override the test with a path.
@@ -8622,11 +9212,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_FTP="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_FTP="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -8639,23 +9233,24 @@ esac
 fi
 FTP=$ac_cv_path_FTP
 if test -n "$FTP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FTP" >&5
-$as_echo "$FTP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FTP" >&5
+printf "%s\n" "$FTP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-    if test x"$FTP" != x"no"; then :
+    if test x"$FTP" != x"no"
+then :
 
         FETCHER="$FTP -o"
 
-else
+else $as_nop
 
         FETCHER="$FALSE"
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot find wget or ftp" >&5
-$as_echo "$as_me: WARNING: cannot find wget or ftp" >&2;}
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find wget or ftp" >&5
+printf "%s\n" "$as_me: WARNING: cannot find wget or ftp" >&2;}
 
 fi
 
@@ -8664,14 +9259,16 @@ fi
 
 
 # Checks for libraries.
-ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_bzlib_h" = xyes; then :
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzDecompressInit in -lbz2" >&5
-$as_echo_n "checking for BZ2_bzDecompressInit in -lbz2... " >&6; }
-if ${ac_cv_lib_bz2_BZ2_bzDecompressInit+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+ac_fn_c_check_header_compile "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_bzlib_h" = xyes
+then :
+
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzDecompressInit in -lbz2" >&5
+printf %s "checking for BZ2_bzDecompressInit in -lbz2... " >&6; }
+if test ${ac_cv_lib_bz2_BZ2_bzDecompressInit+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lbz2  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8680,30 +9277,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char BZ2_bzDecompressInit ();
 int
-main ()
+main (void)
 {
 return BZ2_bzDecompressInit ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_bz2_BZ2_bzDecompressInit=yes
-else
+else $as_nop
   ac_cv_lib_bz2_BZ2_bzDecompressInit=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzDecompressInit" >&5
-$as_echo "$ac_cv_lib_bz2_BZ2_bzDecompressInit" >&6; }
-if test "x$ac_cv_lib_bz2_BZ2_bzDecompressInit" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzDecompressInit" >&5
+printf "%s\n" "$ac_cv_lib_bz2_BZ2_bzDecompressInit" >&6; }
+if test "x$ac_cv_lib_bz2_BZ2_bzDecompressInit" = xyes
+then :
   ZLIB_CFLAGS="$ZLIB_CFLAGS -DHAVE_BZLIB"
          ZLIB_LIBS="$ZLIB_LIBS -lbz2"
 fi
@@ -8711,15 +9307,16 @@ fi
 
 fi
 
+ac_fn_c_check_header_compile "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default"
+if test "x$ac_cv_header_lzma_h" = xyes
+then :
 
-ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default"
-if test "x$ac_cv_header_lzma_h" = xyes; then :
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_stream_decoder in -llzma" >&5
-$as_echo_n "checking for lzma_stream_decoder in -llzma... " >&6; }
-if ${ac_cv_lib_lzma_lzma_stream_decoder+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lzma_stream_decoder in -llzma" >&5
+printf %s "checking for lzma_stream_decoder in -llzma... " >&6; }
+if test ${ac_cv_lib_lzma_lzma_stream_decoder+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-llzma  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8728,30 +9325,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char lzma_stream_decoder ();
 int
-main ()
+main (void)
 {
 return lzma_stream_decoder ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_lzma_lzma_stream_decoder=yes
-else
+else $as_nop
   ac_cv_lib_lzma_lzma_stream_decoder=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_stream_decoder" >&5
-$as_echo "$ac_cv_lib_lzma_lzma_stream_decoder" >&6; }
-if test "x$ac_cv_lib_lzma_lzma_stream_decoder" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_stream_decoder" >&5
+printf "%s\n" "$ac_cv_lib_lzma_lzma_stream_decoder" >&6; }
+if test "x$ac_cv_lib_lzma_lzma_stream_decoder" = xyes
+then :
   ZLIB_CFLAGS="$ZLIB_CFLAGS -DHAVE_LZMA"
          ZLIB_LIBS="$ZLIB_LIBS -llzma"
 fi
@@ -8759,15 +9355,16 @@ fi
 
 fi
 
+ac_fn_c_check_header_compile "$LINENO" "lzo/lzo1x.h" "ac_cv_header_lzo_lzo1x_h" "$ac_includes_default"
+if test "x$ac_cv_header_lzo_lzo1x_h" = xyes
+then :
 
-ac_fn_c_check_header_mongrel "$LINENO" "lzo/lzo1x.h" "ac_cv_header_lzo_lzo1x_h" "$ac_includes_default"
-if test "x$ac_cv_header_lzo_lzo1x_h" = xyes; then :
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzo1x_decompress in -llzo2" >&5
-$as_echo_n "checking for lzo1x_decompress in -llzo2... " >&6; }
-if ${ac_cv_lib_lzo2_lzo1x_decompress+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lzo1x_decompress in -llzo2" >&5
+printf %s "checking for lzo1x_decompress in -llzo2... " >&6; }
+if test ${ac_cv_lib_lzo2_lzo1x_decompress+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-llzo2  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8776,30 +9373,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char lzo1x_decompress ();
 int
-main ()
+main (void)
 {
 return lzo1x_decompress ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_lzo2_lzo1x_decompress=yes
-else
+else $as_nop
   ac_cv_lib_lzo2_lzo1x_decompress=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzo2_lzo1x_decompress" >&5
-$as_echo "$ac_cv_lib_lzo2_lzo1x_decompress" >&6; }
-if test "x$ac_cv_lib_lzo2_lzo1x_decompress" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzo2_lzo1x_decompress" >&5
+printf "%s\n" "$ac_cv_lib_lzo2_lzo1x_decompress" >&6; }
+if test "x$ac_cv_lib_lzo2_lzo1x_decompress" = xyes
+then :
   ZLIB_CFLAGS="$ZLIB_CFLAGS -DHAVE_LZO1X"
          ZLIB_LIBS="$ZLIB_LIBS -llzo2"
 fi
@@ -8808,19 +9404,18 @@ fi
 fi
 
 
-
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libzstd" >&5
-$as_echo_n "checking for libzstd... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libzstd" >&5
+printf %s "checking for libzstd... " >&6; }
 
 if test -n "$libzstd_CFLAGS"; then
     pkg_cv_libzstd_CFLAGS="$libzstd_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzstd\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzstd\""; } >&5
   ($PKG_CONFIG --exists --print-errors "libzstd") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_libzstd_CFLAGS=`$PKG_CONFIG --cflags "libzstd" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -8834,10 +9429,10 @@ if test -n "$libzstd_LIBS"; then
     pkg_cv_libzstd_LIBS="$libzstd_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzstd\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzstd\""; } >&5
   ($PKG_CONFIG --exists --print-errors "libzstd") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_libzstd_LIBS=`$PKG_CONFIG --libs "libzstd" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -8851,8 +9446,8 @@ fi
 
 
 if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+   	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -8869,28 +9464,30 @@ fi
 
 	true
 elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 	true
 else
 	libzstd_CFLAGS=$pkg_cv_libzstd_CFLAGS
 	libzstd_LIBS=$pkg_cv_libzstd_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 	ZLIB_CFLAGS="$ZLIB_CFLAGS -DHAVE_ZSTD $libzstd_CFLAGS"
      ZLIB_LIBS="$ZLIB_LIBS $libzstd_LIBS"
 fi
 
 
 
-ac_fn_c_check_header_mongrel "$LINENO" "ext2fs/ext2fs.h" "ac_cv_header_ext2fs_ext2fs_h" "$ac_includes_default"
-if test "x$ac_cv_header_ext2fs_ext2fs_h" = xyes; then :
+ac_fn_c_check_header_compile "$LINENO" "ext2fs/ext2fs.h" "ac_cv_header_ext2fs_ext2fs_h" "$ac_includes_default"
+if test "x$ac_cv_header_ext2fs_ext2fs_h" = xyes
+then :
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ext2fs_open2 in -lext2fs" >&5
-$as_echo_n "checking for ext2fs_open2 in -lext2fs... " >&6; }
-if ${ac_cv_lib_ext2fs_ext2fs_open2+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ext2fs_open2 in -lext2fs" >&5
+printf %s "checking for ext2fs_open2 in -lext2fs... " >&6; }
+if test ${ac_cv_lib_ext2fs_ext2fs_open2+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lext2fs  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8899,33 +9496,32 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char ext2fs_open2 ();
 int
-main ()
+main (void)
 {
 return ext2fs_open2 ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_ext2fs_ext2fs_open2=yes
-else
+else $as_nop
   ac_cv_lib_ext2fs_ext2fs_open2=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext2fs_ext2fs_open2" >&5
-$as_echo "$ac_cv_lib_ext2fs_ext2fs_open2" >&6; }
-if test "x$ac_cv_lib_ext2fs_ext2fs_open2" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext2fs_ext2fs_open2" >&5
+printf "%s\n" "$ac_cv_lib_ext2fs_ext2fs_open2" >&6; }
+if test "x$ac_cv_lib_ext2fs_ext2fs_open2" = xyes
+then :
 
 
-$as_echo "#define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>" >>confdefs.h
+printf "%s\n" "#define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>" >>confdefs.h
 
     EXTFS_LIBS="-lext2fs"
 
@@ -8934,15 +9530,16 @@ fi
 
 fi
 
+ac_fn_c_check_header_compile "$LINENO" "ext4fs/ext2fs.h" "ac_cv_header_ext4fs_ext2fs_h" "$ac_includes_default"
+if test "x$ac_cv_header_ext4fs_ext2fs_h" = xyes
+then :
 
-ac_fn_c_check_header_mongrel "$LINENO" "ext4fs/ext2fs.h" "ac_cv_header_ext4fs_ext2fs_h" "$ac_includes_default"
-if test "x$ac_cv_header_ext4fs_ext2fs_h" = xyes; then :
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ext2fs_open2 in -lext4fs" >&5
-$as_echo_n "checking for ext2fs_open2 in -lext4fs... " >&6; }
-if ${ac_cv_lib_ext4fs_ext2fs_open2+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ext2fs_open2 in -lext4fs" >&5
+printf %s "checking for ext2fs_open2 in -lext4fs... " >&6; }
+if test ${ac_cv_lib_ext4fs_ext2fs_open2+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lext4fs  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8951,33 +9548,32 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char ext2fs_open2 ();
 int
-main ()
+main (void)
 {
 return ext2fs_open2 ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_ext4fs_ext2fs_open2=yes
-else
+else $as_nop
   ac_cv_lib_ext4fs_ext2fs_open2=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext4fs_ext2fs_open2" >&5
-$as_echo "$ac_cv_lib_ext4fs_ext2fs_open2" >&6; }
-if test "x$ac_cv_lib_ext4fs_ext2fs_open2" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext4fs_ext2fs_open2" >&5
+printf "%s\n" "$ac_cv_lib_ext4fs_ext2fs_open2" >&6; }
+if test "x$ac_cv_lib_ext4fs_ext2fs_open2" = xyes
+then :
 
 
-$as_echo "#define INCLUDE_EXTFS_H <ext4fs/ext2fs.h>" >>confdefs.h
+printf "%s\n" "#define INCLUDE_EXTFS_H <ext4fs/ext2fs.h>" >>confdefs.h
 
     EXTFS_LIBS="-lext4fs"
 
@@ -8989,12 +9585,12 @@ fi
 
 
 
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread flag" >&5
-$as_echo_n "checking for pthread flag... " >&6; }
-if ${ax_cv_pthread_flags+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread flag" >&5
+printf %s "checking for pthread flag... " >&6; }
+if test ${ax_cv_pthread_flags+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
 
         ax_cv_pthread_flags=-pthread
 
@@ -9026,12 +9622,13 @@ int main(void) {
 }
 
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
 
-else
+else $as_nop
   ax_cv_pthread_flags=failed
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 
     CFLAGS="$saved_CFLAGS"
@@ -9042,8 +9639,8 @@ rm -f core conftest.err conftest.$ac_objext \
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_pthread_flags" >&5
-$as_echo "$ax_cv_pthread_flags" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_pthread_flags" >&5
+printf "%s\n" "$ax_cv_pthread_flags" >&6; }
     if test "x$ax_cv_pthread_flags" = xfailed; then
         as_fn_error $? "-pthread does not work" "$LINENO" 5
     fi
@@ -9054,11 +9651,12 @@ $as_echo "$ax_cv_pthread_flags" >&6; }
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for yajl_alloc in -lyajl" >&5
-$as_echo_n "checking for yajl_alloc in -lyajl... " >&6; }
-if ${ac_cv_lib_yajl_yajl_alloc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yajl_alloc in -lyajl" >&5
+printf %s "checking for yajl_alloc in -lyajl... " >&6; }
+if test ${ac_cv_lib_yajl_yajl_alloc+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lyajl  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9067,45 +9665,43 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char yajl_alloc ();
 int
-main ()
+main (void)
 {
 return yajl_alloc ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_yajl_yajl_alloc=yes
-else
+else $as_nop
   ac_cv_lib_yajl_yajl_alloc=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_yajl_yajl_alloc" >&5
-$as_echo "$ac_cv_lib_yajl_yajl_alloc" >&6; }
-if test "x$ac_cv_lib_yajl_yajl_alloc" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBYAJL 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_yajl_yajl_alloc" >&5
+printf "%s\n" "$ac_cv_lib_yajl_yajl_alloc" >&6; }
+if test "x$ac_cv_lib_yajl_yajl_alloc" = xyes
+then :
+  printf "%s\n" "#define HAVE_LIBYAJL 1" >>confdefs.h
 
   LIBS="-lyajl $LIBS"
 
-else
+else $as_nop
   as_fn_error $? "Could not find yajl" "$LINENO" 5
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for deflateCopy in -lz" >&5
-$as_echo_n "checking for deflateCopy in -lz... " >&6; }
-if ${ac_cv_lib_z_deflateCopy+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for deflateCopy in -lz" >&5
+printf %s "checking for deflateCopy in -lz... " >&6; }
+if test ${ac_cv_lib_z_deflateCopy+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lz  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9114,45 +9710,43 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char deflateCopy ();
 int
-main ()
+main (void)
 {
 return deflateCopy ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_z_deflateCopy=yes
-else
+else $as_nop
   ac_cv_lib_z_deflateCopy=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_deflateCopy" >&5
-$as_echo "$ac_cv_lib_z_deflateCopy" >&6; }
-if test "x$ac_cv_lib_z_deflateCopy" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBZ 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_deflateCopy" >&5
+printf "%s\n" "$ac_cv_lib_z_deflateCopy" >&6; }
+if test "x$ac_cv_lib_z_deflateCopy" = xyes
+then :
+  printf "%s\n" "#define HAVE_LIBZ 1" >>confdefs.h
 
   LIBS="-lz $LIBS"
 
-else
+else $as_nop
   as_fn_error $? "Could not find zlib" "$LINENO" 5
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libiconv_open in -liconv" >&5
-$as_echo_n "checking for libiconv_open in -liconv... " >&6; }
-if ${ac_cv_lib_iconv_libiconv_open+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libiconv_open in -liconv" >&5
+printf %s "checking for libiconv_open in -liconv... " >&6; }
+if test ${ac_cv_lib_iconv_libiconv_open+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-liconv  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9161,44 +9755,45 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char libiconv_open ();
 int
-main ()
+main (void)
 {
 return libiconv_open ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_iconv_libiconv_open=yes
-else
+else $as_nop
   ac_cv_lib_iconv_libiconv_open=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iconv_libiconv_open" >&5
-$as_echo "$ac_cv_lib_iconv_libiconv_open" >&6; }
-if test "x$ac_cv_lib_iconv_libiconv_open" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iconv_libiconv_open" >&5
+printf "%s\n" "$ac_cv_lib_iconv_libiconv_open" >&6; }
+if test "x$ac_cv_lib_iconv_libiconv_open" = xyes
+then :
   libiconv="y"
-else
+else $as_nop
   libiconv="n"
 fi
 
 
-ac_fn_c_check_header_mongrel "$LINENO" "argp.h" "ac_cv_header_argp_h" "$ac_includes_default"
-if test "x$ac_cv_header_argp_h" = xyes; then :
+ac_fn_c_check_header_compile "$LINENO" "argp.h" "ac_cv_header_argp_h" "$ac_includes_default"
+if test "x$ac_cv_header_argp_h" = xyes
+then :
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for argp_usage in -largp" >&5
-$as_echo_n "checking for argp_usage in -largp... " >&6; }
-if ${ac_cv_lib_argp_argp_usage+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for argp_usage in -largp" >&5
+printf %s "checking for argp_usage in -largp... " >&6; }
+if test ${ac_cv_lib_argp_argp_usage+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-largp  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9207,49 +9802,48 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char argp_usage ();
 int
-main ()
+main (void)
 {
 return argp_usage ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_argp_argp_usage=yes
-else
+else $as_nop
   ac_cv_lib_argp_argp_usage=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_argp_argp_usage" >&5
-$as_echo "$ac_cv_lib_argp_argp_usage" >&6; }
-if test "x$ac_cv_lib_argp_argp_usage" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_argp_argp_usage" >&5
+printf "%s\n" "$ac_cv_lib_argp_argp_usage" >&6; }
+if test "x$ac_cv_lib_argp_argp_usage" = xyes
+then :
   argp_ldflags="-largp"
 fi
 
 
-else
+else $as_nop
   as_fn_error $? "Could not find argp" "$LINENO" 5
 fi
 
 
 
-
 # FDT is needed only on ARM
 case "$host_cpu" in
 arm*|aarch64)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fdt_create in -lfdt" >&5
-$as_echo_n "checking for fdt_create in -lfdt... " >&6; }
-if ${ac_cv_lib_fdt_fdt_create+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fdt_create in -lfdt" >&5
+printf %s "checking for fdt_create in -lfdt... " >&6; }
+if test ${ac_cv_lib_fdt_fdt_create+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lfdt  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9258,37 +9852,34 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char fdt_create ();
 int
-main ()
+main (void)
 {
 return fdt_create ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_fdt_fdt_create=yes
-else
+else $as_nop
   ac_cv_lib_fdt_fdt_create=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fdt_fdt_create" >&5
-$as_echo "$ac_cv_lib_fdt_fdt_create" >&6; }
-if test "x$ac_cv_lib_fdt_fdt_create" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBFDT 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fdt_fdt_create" >&5
+printf "%s\n" "$ac_cv_lib_fdt_fdt_create" >&6; }
+if test "x$ac_cv_lib_fdt_fdt_create" = xyes
+then :
+  printf "%s\n" "#define HAVE_LIBFDT 1" >>confdefs.h
 
   LIBS="-lfdt $LIBS"
 
-else
+else $as_nop
   as_fn_error $? "Could not find libfdt" "$LINENO" 5
 fi
 
@@ -9298,108 +9889,197 @@ fi
 # function present in new version.
 # Use fdt_first_property_offset which has been correctly exported since v1.4.0
 ac_fn_c_check_func "$LINENO" "fdt_first_property_offset" "ac_cv_func_fdt_first_property_offset"
-if test "x$ac_cv_func_fdt_first_property_offset" = xyes; then :
+if test "x$ac_cv_func_fdt_first_property_offset" = xyes
+then :
   partial_dt="y"
-else
+else $as_nop
   partial_dt="n"
 fi
 
 
-if test "x$partial_dt" = "xy" ; then :
+if test "x$partial_dt" = "xy"
+then :
 
-$as_echo "#define ENABLE_PARTIAL_DEVICE_TREE 1" >>confdefs.h
+printf "%s\n" "#define ENABLE_PARTIAL_DEVICE_TREE 1" >>confdefs.h
 
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling support for partial device tree in libxl.
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Disabling support for partial device tree in libxl.
        Please install libfdt library - version 1.4.0 or higher" >&5
-$as_echo "$as_me: WARNING: Disabling support for partial device tree in libxl.
+printf "%s\n" "$as_me: WARNING: Disabling support for partial device tree in libxl.
        Please install libfdt library - version 1.4.0 or higher" >&2;}
 fi
 
 # The functions fdt_{first,next}_subnode may not be available because:
 #   * It has been introduced in 2013 => Doesn't work on Wheezy
 #   * The prototype exists but the functions are not exposed. Don't ask why...
-for ac_func in fdt_first_subnode fdt_next_subnode
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ac_fn_c_check_func "$LINENO" "fdt_first_subnode" "ac_cv_func_fdt_first_subnode"
+if test "x$ac_cv_func_fdt_first_subnode" = xyes
+then :
+  printf "%s\n" "#define HAVE_FDT_FIRST_SUBNODE 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "fdt_next_subnode" "ac_cv_func_fdt_next_subnode"
+if test "x$ac_cv_func_fdt_next_subnode" = xyes
+then :
+  printf "%s\n" "#define HAVE_FDT_NEXT_SUBNODE 1" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
+printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
+if test ${ac_cv_c_undeclared_builtin_options+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_save_CFLAGS=$CFLAGS
+   ac_cv_c_undeclared_builtin_options='cannot detect'
+   for ac_arg in '' -fno-builtin; do
+     CFLAGS="$ac_save_CFLAGS $ac_arg"
+     # This test program should *not* compile successfully.
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+(void) strchr;
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else $as_nop
+  # This test program should compile successfully.
+        # No library function is consistently available on
+        # freestanding implementations, so test against a dummy
+        # declaration.  Include always-available headers on the
+        # off chance that they somehow elicit warnings.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <float.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stddef.h>
+extern void ac_decl (int, char *);
+
+int
+main (void)
+{
+(void) ac_decl (0, (char *) 0);
+  (void) ac_decl;
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  if test x"$ac_arg" = x
+then :
+  ac_cv_c_undeclared_builtin_options='none needed'
+else $as_nop
+  ac_cv_c_undeclared_builtin_options=$ac_arg
 fi
-done
+          break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+    done
+    CFLAGS=$ac_save_CFLAGS
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
+printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
+  case $ac_cv_c_undeclared_builtin_options in #(
+  'cannot detect') :
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot make $CC report undeclared builtins
+See \`config.log' for more details" "$LINENO" 5; } ;; #(
+  'none needed') :
+    ac_c_undeclared_builtin_options='' ;; #(
+  *) :
+    ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
+esac
 
-ac_fn_c_check_decl "$LINENO" "fdt_first_subnode" "ac_cv_have_decl_fdt_first_subnode" "#include <libfdt.h>
-"
-if test "x$ac_cv_have_decl_fdt_first_subnode" = xyes; then :
+ac_fn_check_decl "$LINENO" "fdt_first_subnode" "ac_cv_have_decl_fdt_first_subnode" "#include <libfdt.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_fdt_first_subnode" = xyes
+then :
   ac_have_decl=1
-else
+else $as_nop
   ac_have_decl=0
 fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FDT_FIRST_SUBNODE $ac_have_decl
-_ACEOF
-ac_fn_c_check_decl "$LINENO" "fdt_next_subnode" "ac_cv_have_decl_fdt_next_subnode" "#include <libfdt.h>
-"
-if test "x$ac_cv_have_decl_fdt_next_subnode" = xyes; then :
+printf "%s\n" "#define HAVE_DECL_FDT_FIRST_SUBNODE $ac_have_decl" >>confdefs.h
+ac_fn_check_decl "$LINENO" "fdt_next_subnode" "ac_cv_have_decl_fdt_next_subnode" "#include <libfdt.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_fdt_next_subnode" = xyes
+then :
   ac_have_decl=1
-else
+else $as_nop
   ac_have_decl=0
 fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FDT_NEXT_SUBNODE $ac_have_decl
-_ACEOF
+printf "%s\n" "#define HAVE_DECL_FDT_NEXT_SUBNODE $ac_have_decl" >>confdefs.h
 
 
 # The helper fdt_property_u32 is only present in libfdt >= 1.4.0
 # It's an inline function, so only check if the declaration is present
-ac_fn_c_check_decl "$LINENO" "fdt_property_u32" "ac_cv_have_decl_fdt_property_u32" "#include <libfdt.h>
-"
-if test "x$ac_cv_have_decl_fdt_property_u32" = xyes; then :
+ac_fn_check_decl "$LINENO" "fdt_property_u32" "ac_cv_have_decl_fdt_property_u32" "#include <libfdt.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_fdt_property_u32" = xyes
+then :
   ac_have_decl=1
-else
+else $as_nop
   ac_have_decl=0
 fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FDT_PROPERTY_U32 $ac_have_decl
-_ACEOF
+printf "%s\n" "#define HAVE_DECL_FDT_PROPERTY_U32 $ac_have_decl" >>confdefs.h
 
 esac
 
 # Checks for header files.
-for ac_header in yajl/yajl_version.h sys/eventfd.h valgrind/memcheck.h utmp.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ac_fn_c_check_header_compile "$LINENO" "yajl/yajl_version.h" "ac_cv_header_yajl_yajl_version_h" "$ac_includes_default"
+if test "x$ac_cv_header_yajl_yajl_version_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_YAJL_YAJL_VERSION_H 1" >>confdefs.h
 
 fi
+ac_fn_c_check_header_compile "$LINENO" "sys/eventfd.h" "ac_cv_header_sys_eventfd_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_eventfd_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_SYS_EVENTFD_H 1" >>confdefs.h
 
-done
+fi
+ac_fn_c_check_header_compile "$LINENO" "valgrind/memcheck.h" "ac_cv_header_valgrind_memcheck_h" "$ac_includes_default"
+if test "x$ac_cv_header_valgrind_memcheck_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_VALGRIND_MEMCHECK_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "utmp.h" "ac_cv_header_utmp_h" "$ac_includes_default"
+if test "x$ac_cv_header_utmp_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_UTMP_H 1" >>confdefs.h
+
+fi
 
 
 # Check for libnl3 >=3.2.8. If present enable remus network buffering.
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBNL3" >&5
-$as_echo_n "checking for LIBNL3... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LIBNL3" >&5
+printf %s "checking for LIBNL3... " >&6; }
 
 if test -n "$LIBNL3_CFLAGS"; then
     pkg_cv_LIBNL3_CFLAGS="$LIBNL3_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnl-3.0 >= 3.2.8 libnl-route-3.0 >= 3.2.8\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnl-3.0 >= 3.2.8 libnl-route-3.0 >= 3.2.8\""; } >&5
   ($PKG_CONFIG --exists --print-errors "libnl-3.0 >= 3.2.8 libnl-route-3.0 >= 3.2.8") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_LIBNL3_CFLAGS=`$PKG_CONFIG --cflags "libnl-3.0 >= 3.2.8 libnl-route-3.0 >= 3.2.8" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -9413,10 +10093,10 @@ if test -n "$LIBNL3_LIBS"; then
     pkg_cv_LIBNL3_LIBS="$LIBNL3_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnl-3.0 >= 3.2.8 libnl-route-3.0 >= 3.2.8\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnl-3.0 >= 3.2.8 libnl-route-3.0 >= 3.2.8\""; } >&5
   ($PKG_CONFIG --exists --print-errors "libnl-3.0 >= 3.2.8 libnl-route-3.0 >= 3.2.8") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_LIBNL3_LIBS=`$PKG_CONFIG --libs "libnl-3.0 >= 3.2.8 libnl-route-3.0 >= 3.2.8" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -9430,8 +10110,8 @@ fi
 
 
 if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+   	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -9448,29 +10128,30 @@ fi
 
 	libnl3_lib="n"
 elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 	libnl3_lib="n"
 else
 	LIBNL3_CFLAGS=$pkg_cv_LIBNL3_CFLAGS
 	LIBNL3_LIBS=$pkg_cv_LIBNL3_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 	libnl3_lib="y"
 fi
 
-if test "x$libnl3_lib" = "xn" ; then :
+if test "x$libnl3_lib" = "xn"
+then :
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling support for Remus network buffering and COLO.
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Disabling support for Remus network buffering and COLO.
     Please install libnl3 libraries (including libnl3-route), command line tools and devel
     headers - version 3.2.8 or higher" >&5
-$as_echo "$as_me: WARNING: Disabling support for Remus network buffering and COLO.
+printf "%s\n" "$as_me: WARNING: Disabling support for Remus network buffering and COLO.
     Please install libnl3 libraries (including libnl3-route), command line tools and devel
     headers - version 3.2.8 or higher" >&2;}
     libnl=n
 
 
-else
+else $as_nop
 
     libnl=y
 
@@ -9486,20 +10167,24 @@ fi # ! $rump
 
 
 # Check whether --enable-systemd was given.
-if test "${enable_systemd+set}" = set; then :
+if test ${enable_systemd+y}
+then :
   enableval=$enable_systemd;
 fi
 
 
-if test "x$enable_systemd" = "xno"; then :
+if test "x$enable_systemd" = "xno"
+then :
 
     ax_cv_systemd="n"
 
-elif test "x$enable_systemd" = "xyes"; then :
+elif test "x$enable_systemd" = "xyes"
+then :
 
     ax_cv_systemd="y"
 
-elif test -z $ax_cv_systemd; then :
+elif test -z $ax_cv_systemd
+then :
 
     ax_cv_systemd="n"
 
@@ -9510,9 +10195,10 @@ systemd=$ax_cv_systemd
 
 
 # Check whether --with-systemd was given.
-if test "${with_systemd+set}" = set; then :
+if test ${with_systemd+y}
+then :
   withval=$with_systemd; SYSTEMD_DIR="$withval"
-else
+else $as_nop
   SYSTEMD_DIR=""
 fi
 
@@ -9520,9 +10206,10 @@ fi
 
 
 # Check whether --with-systemd-modules-load was given.
-if test "${with_systemd_modules_load+set}" = set; then :
+if test ${with_systemd_modules_load+y}
+then :
   withval=$with_systemd_modules_load; SYSTEMD_MODULES_LOAD="$withval"
-else
+else $as_nop
   SYSTEMD_MODULES_LOAD=""
 fi
 
@@ -9530,57 +10217,65 @@ fi
 
 
 
-		if test "x$enable_systemd" != "xno"; then :
+		if test "x$enable_systemd" != "xno"
+then :
 
-	     if test "x$systemd" = "xy" ; then :
+	     if test "x$systemd" = "xy"
+then :
 
 
-$as_echo "#define HAVE_SYSTEMD 1" >>confdefs.h
+printf "%s\n" "#define HAVE_SYSTEMD 1" >>confdefs.h
 
 			systemd=y
 
-	if test "x$SYSTEMD_DIR" = x; then :
+	if test "x$SYSTEMD_DIR" = x
+then :
 
 	    	    	    	    	    	    	    	    	    	    	    	    	    SYSTEMD_DIR="\$(prefix)/lib/systemd/system/"
 
 fi
 
-	if test "x$SYSTEMD_DIR" = x; then :
+	if test "x$SYSTEMD_DIR" = x
+then :
 
 	    as_fn_error $? "SYSTEMD_DIR is unset" "$LINENO" 5
 
 fi
 
-		if test "x$SYSTEMD_MODULES_LOAD" = x; then :
+		if test "x$SYSTEMD_MODULES_LOAD" = x
+then :
 
 	    SYSTEMD_MODULES_LOAD="\$(prefix)/lib/modules-load.d/"
 
 fi
 
-	if test "x$SYSTEMD_MODULES_LOAD" = x; then :
+	if test "x$SYSTEMD_MODULES_LOAD" = x
+then :
 
 	    as_fn_error $? "SYSTEMD_MODULES_LOAD is unset" "$LINENO" 5
 
 fi
 
 
-else
+else $as_nop
 
-		if test "x$enable_systemd" = "xyes"; then :
+		if test "x$enable_systemd" = "xyes"
+then :
   as_fn_error $? "Unable to find systemd development library" "$LINENO" 5
-else
+else $as_nop
   systemd=n
 fi
 
 fi
 
-else
+else $as_nop
   systemd=n
 fi
 
 
 
-if test "x$systemd" = "xy"; then :
+if test "x$systemd" = "xy"
+then :
 
     ac_config_files="$ac_config_files hotplug/Linux/systemd/proc-xen.mount hotplug/Linux/systemd/xen-init-dom0.service hotplug/Linux/systemd/xen-qemu-dom0-disk-backend.service hotplug/Linux/systemd/xen-watchdog.service hotplug/Linux/systemd/xenconsoled.service hotplug/Linux/systemd/xendomains.service hotplug/Linux/systemd/xendriverdomain.service hotplug/Linux/systemd/xenstored.service"
 
@@ -9588,10 +10283,12 @@ if test "x$systemd" = "xy"; then :
 fi
 
 # Check whether --enable-9pfs was given.
-if test "${enable_9pfs+set}" = set; then :
-  enableval=$enable_9pfs; if test "x$enable_9pfs" = "xyes"; then :
+if test ${enable_9pfs+y}
+then :
+  enableval=$enable_9pfs; if test "x$enable_9pfs" = "xyes"
+then :
   ninepfs=y
-else
+else $as_nop
   ninepfs=n
 fi
 fi
@@ -9600,13 +10297,15 @@ fi
 
 
 # Check whether --enable-pvshim was given.
-if test "${enable_pvshim+set}" = set; then :
-  enableval=$enable_pvshim; if test "x$enable_pvshim" = "xno"; then :
+if test ${enable_pvshim+y}
+then :
+  enableval=$enable_pvshim; if test "x$enable_pvshim" = "xno"
+then :
   pvshim=n
-else
+else $as_nop
   pvshim=y
 fi
-else
+else $as_nop
 
     cpu=`test -z "$target_cpu" && echo "$host_cpu" || echo "$target_cpu"`
     case "${XEN_COMPILE_ARCH-${XEN_TARGET_ARCH-$cpu}}" in
@@ -9618,15 +10317,17 @@ else
 fi
 
 
-if test "x$pvshim" = "xy"; then :
+if test "x$pvshim" = "xy"
+then :
 
     # Extract the first word of "bison", so it can be a program name with args.
 set dummy bison; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_BISON+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_BISON+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $BISON in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_BISON="$BISON" # Let the user override the test with a path.
@@ -9636,11 +10337,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_BISON="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_BISON="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -9653,11 +10358,11 @@ esac
 fi
 BISON=$ac_cv_path_BISON
 if test -n "$BISON"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
-$as_echo "$BISON" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
+printf "%s\n" "$BISON" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -9666,15 +10371,16 @@ then
     as_fn_error $? "Unable to find bison, please install bison" "$LINENO" 5
 fi
 
-else
+else $as_nop
 
     # Extract the first word of "bison", so it can be a program name with args.
 set dummy bison; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_BISON+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_BISON+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $BISON in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_BISON="$BISON" # Let the user override the test with a path.
@@ -9684,11 +10390,15 @@ else
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_BISON="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_BISON="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -9700,11 +10410,11 @@ esac
 fi
 BISON=$ac_cv_path_BISON
 if test -n "$BISON"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
-$as_echo "$BISON" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
+printf "%s\n" "$BISON" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -9714,53 +10424,52 @@ fi
 
 ax_found=0
 
-    if test "$ax_found" = "0"; then :
+    if test "$ax_found" = "0"
+then :
 
-        ac_fn_c_check_header_mongrel "$LINENO" "endian.h" "ac_cv_header_endian_h" "$ac_includes_default"
-if test "x$ac_cv_header_endian_h" = xyes; then :
+        ac_fn_c_check_header_compile "$LINENO" "endian.h" "ac_cv_header_endian_h" "$ac_includes_default"
+if test "x$ac_cv_header_endian_h" = xyes
+then :
 
 
-$as_echo "#define INCLUDE_ENDIAN_H <endian.h>" >>confdefs.h
+printf "%s\n" "#define INCLUDE_ENDIAN_H <endian.h>" >>confdefs.h
 
             ax_found=1
 fi
 
 
-
 fi
 
-    if test "$ax_found" = "0"; then :
+    if test "$ax_found" = "0"
+then :
 
-        ac_fn_c_check_header_mongrel "$LINENO" "sys/endian.h" "ac_cv_header_sys_endian_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_endian_h" = xyes; then :
+        ac_fn_c_check_header_compile "$LINENO" "sys/endian.h" "ac_cv_header_sys_endian_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_endian_h" = xyes
+then :
 
 
-$as_echo "#define INCLUDE_ENDIAN_H <sys/endian.h>" >>confdefs.h
+printf "%s\n" "#define INCLUDE_ENDIAN_H <sys/endian.h>" >>confdefs.h
 
             ax_found=1
 fi
 
 
-
 fi
 
-if test "$ax_found" = "0"; then :
+if test "$ax_found" = "0"
+then :
 
     as_fn_error $? "No header found from list endian.h sys/endian.h" "$LINENO" 5
 
 fi
 
 
-for ac_func in pipe2
-do :
-  ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2"
-if test "x$ac_cv_func_pipe2" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_PIPE2 1
-_ACEOF
+ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2"
+if test "x$ac_cv_func_pipe2" = xyes
+then :
+  printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h
 
 fi
-done
 
 
 cat >confcache <<\_ACEOF
@@ -9790,8 +10499,8 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -9821,15 +10530,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      /^ac_cv_env_/b end
      t clear
      :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
      t end
      s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
       if test ! -f "$cache_file" || test -h "$cache_file"; then
 	cat confcache >"$cache_file"
       else
@@ -9843,8 +10552,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;}
       fi
     fi
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -9861,7 +10570,7 @@ U=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
   as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -9877,8 +10586,8 @@ LTLIBOBJS=$ac_ltlibobjs
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
 as_write_fail=0
 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
@@ -9901,14 +10610,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else
+else $as_nop
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -9918,46 +10629,46 @@ esac
 fi
 
 
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" ""	$as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
 
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -9966,13 +10677,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
 fi
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -9981,8 +10685,12 @@ case $0 in #((
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
   done
 IFS=$as_save_IFS
 
@@ -9994,30 +10702,10 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
@@ -10030,13 +10718,14 @@ as_fn_error ()
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $2" >&2
+  printf "%s\n" "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
 
+
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -10063,18 +10752,20 @@ as_fn_unset ()
   { eval $1=; unset $1;}
 }
 as_unset=as_fn_unset
+
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else
+else $as_nop
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -10086,12 +10777,13 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else
+else $as_nop
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
@@ -10122,7 +10814,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -10144,6 +10836,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -10157,6 +10853,12 @@ case `echo -n x` in #(((((
   ECHO_N='-n';;
 esac
 
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -10198,7 +10900,7 @@ as_fn_mkdir_p ()
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -10207,7 +10909,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -10270,7 +10972,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # values after options handling.
 ac_log="
 This file was extended by Xen Hypervisor Tools $as_me 4.19, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -10329,14 +11031,16 @@ Report bugs to <xen-devel@lists.xen.org>.
 Xen Hypervisor Tools home page: <https://www.xen.org/>."
 
 _ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
 Xen Hypervisor Tools config.status 4.19
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -10375,15 +11079,15 @@ do
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
+    printf "%s\n" "$ac_cs_version"; exit ;;
   --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
+    printf "%s\n" "$ac_cs_config"; exit ;;
   --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
     case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     '') as_fn_error $? "missing file argument" ;;
     esac
     as_fn_append CONFIG_FILES " '$ac_optarg'"
@@ -10391,7 +11095,7 @@ do
   --header | --heade | --head | --hea )
     $ac_shift
     case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     as_fn_append CONFIG_HEADERS " '$ac_optarg'"
     ac_need_defaults=false;;
@@ -10400,7 +11104,7 @@ do
     as_fn_error $? "ambiguous option: \`$1'
 Try \`$0 --help' for more information.";;
   --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
+    printf "%s\n" "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil | --si | --s)
     ac_cs_silent=: ;;
@@ -10428,7 +11132,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
   set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
   export CONFIG_SHELL
   exec "\$@"
@@ -10442,7 +11146,7 @@ exec 5>>config.log
   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 ## Running $as_me. ##
 _ASBOX
-  $as_echo "$ac_log"
+  printf "%s\n" "$ac_log"
 } >&5
 
 _ACEOF
@@ -10494,8 +11198,8 @@ done
 # We use the long form for the default assignment because of an extremely
 # bizarre bug on SunOS 4.1.3.
 if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
+  test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
 fi
 
 # Have a temporary directory for convenience.  Make it in the build tree
@@ -10831,7 +11535,7 @@ do
 	   esac ||
 	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
     done
 
@@ -10839,17 +11543,17 @@ do
     # use $as_me), people would be surprised to read:
     #    /* config.h.  Generated by config.status.  */
     configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	  printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
 	`' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf "%s\n" "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
     case $configure_input in #(
     *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
+       ac_sed_conf_input=`printf "%s\n" "$configure_input" |
        sed 's/[\\\\&|]/\\\\&/g'`;; #(
     *) ac_sed_conf_input=$configure_input;;
     esac
@@ -10866,7 +11570,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 	 X"$ac_file" : 'X\(//\)$' \| \
 	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
+printf "%s\n" X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -10890,9 +11594,9 @@ $as_echo X"$ac_file" |
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -10949,8 +11653,8 @@ ac_sed_dataroot='
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   ac_datarootdir_hack='
@@ -10993,9 +11697,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
       "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
   rm -f "$ac_tmp/stdin"
@@ -11011,20 +11715,20 @@ which seems to be undefined.  Please make sure it is defined" >&2;}
   #
   if test x"$ac_file" != x-; then
     {
-      $as_echo "/* $configure_input  */" \
+      printf "%s\n" "/* $configure_input  */" >&1 \
       && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
     } >"$ac_tmp/config.h" \
       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
     if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
       mv "$ac_tmp/config.h" "$ac_file" \
 	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
-    $as_echo "/* $configure_input  */" \
+    printf "%s\n" "/* $configure_input  */" >&1 \
       && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
       || as_fn_error $? "could not create -" "$LINENO" 5
   fi
@@ -11065,7 +11769,8 @@ if test "$no_create" != yes; then
   $ac_cs_success || as_fn_exit 1
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
+
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 15:22:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 15:22:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754409.1162859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPklo-0003rQ-Q5; Fri, 05 Jul 2024 15:22:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754409.1162859; Fri, 05 Jul 2024 15:22: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 1sPklo-0003rJ-NF; Fri, 05 Jul 2024 15:22:44 +0000
Received: by outflank-mailman (input) for mailman id 754409;
 Fri, 05 Jul 2024 15:22: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=XwCH=OF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sPkln-0003bk-8g
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 15:22:43 +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 6c15d25b-3ae2-11ef-bbfb-fd08da9f4363;
 Fri, 05 Jul 2024 17:22:42 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a77c2d89af8so163622366b.2
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 08:22:42 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77c9925463sm74555066b.69.2024.07.05.08.22.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 05 Jul 2024 08:22: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: 6c15d25b-3ae2-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720192962; x=1720797762; 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=Gx82JRugbBZFJqvXyfDeEFnrGg8wk6oy2FrBYJAu6Yo=;
        b=OCBx+P6VI3T243DkjjOAoP3sz43KGOvQ+Lmc+L0euzVvlTFY1/02bAwapnX5fnKbxU
         wPssQVTMDz8U0m7O/LpUgqRGizZp3z/IRlHUt5/x2C/NF3uJjGRQUm5JZKoIkXL+bh2w
         SJ9vPmD94uzVvSPSVWK3bYHEoKEMBK6Xy0AVenfcyPqXlNfARveUM7P2BW6A7i+6dy2R
         kg///EJR9YMUUIGqr1K6QyCnApI3YXRsk6y7b4cWbDxZ204n5rNP7dF1LrSYGItjpH9T
         p4Lx9LvDKKZMnvD9Iv32QBIs7XI6LDOn0Vaj0wPFdtQfWnfHEHvOe6x08hpbTL68jvnD
         xP4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720192962; x=1720797762;
        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=Gx82JRugbBZFJqvXyfDeEFnrGg8wk6oy2FrBYJAu6Yo=;
        b=QlmrgRA2CiIiN0yT9FafsNt8lThg+liFRytBqWL4wpH0kTsiaVWIxNuGmSqae9G3Kq
         Q8Vci1CiHe2rOZmLOHeiLiCSwqhWz4b/8IVYfiQNCfdCmXxdKSz0wZW9NvvFZlpeCcZW
         f4m6pxyKQtr6ooz4InL8eUX+YnHriNvciGHXLzM71gxurfJZmcHEvH6rtEvdbK2viWLM
         vPtEPgK15RvfE+UEVAER0dHG3ThEv93MMkVaxTEdjKTlAN9DsVABhrGSrboGQ/d6es6P
         O+WnhSsff5KDwb8nt4AUEwflDNIBwOWZUKIW8xMKzJpjbYStpTPRwWoLFy6+zHYN3hhH
         IABA==
X-Forwarded-Encrypted: i=1; AJvYcCWgxSzygIN1IDLpNK+aV6PGMCtbxFuUDPv1LH2zCwIKWLDXIrIRA+1BvTJpo1WW8tkp2oTBU57T66YVFQmc9/qT2HA7/OXsxuK9l7iK+AE=
X-Gm-Message-State: AOJu0YzladjYXNZaI3K2fjFejBoXTq8Yad3i5IsJ8ehllLOVg2pYpp4I
	FKI+dViiUau76VesMnKGN1n7tW4+oKXMdRlGi2RA2tlXayw9Li00ge+TeF5XkkYj9I/Hmahxdpy
	6
X-Google-Smtp-Source: AGHT+IFi+Nv1DpU/3POkqycbBMkQpbLuIb4mybWNK1ktmemCBgsHmaDyPT5JFTTgs90xu5vj8DMCEQ==
X-Received: by 2002:a17:907:969e:b0:a75:110d:fa53 with SMTP id a640c23a62f3a-a77ba70baf4mr423629666b.49.1720192961840;
        Fri, 05 Jul 2024 08:22:41 -0700 (PDT)
Message-ID: <36ad6b62-9186-41e3-bfa7-7a6d81d9efe1@suse.com>
Date: Fri, 5 Jul 2024 17:22:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/libs/store: add missing USE_PTHREAD to target .o
To: Andrei Stan <andreistan2003@gmail.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
References: <20240705145910.32736-3-andreistan2003@gmail.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240705145910.32736-3-andreistan2003@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 05.07.24 16:59, Andrei Stan wrote:
> Currently only shared libraries build with USE_PTHREAD enabled.
> 
> This patch adds the macro also to xs.o.
> 
> Backport: 4.18+ # maybe older
> Signed-off-by: Andrei Stan <andreistan2003@gmail.com>

Commit dde3e02b7068 did that explicitly, stating that phtreads are
not compatible with static linking.

Was that reasoning wrong?


Juergen

> ---
>   tools/libs/store/Makefile | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/tools/libs/store/Makefile b/tools/libs/store/Makefile
> index 0649cf8307..c6f147c72f 100644
> --- a/tools/libs/store/Makefile
> +++ b/tools/libs/store/Makefile
> @@ -20,6 +20,7 @@ CFLAGS += -include $(XEN_ROOT)/tools/config.h
>   CFLAGS += $(CFLAGS_libxentoolcore)
>   
>   xs.opic: CFLAGS += -DUSE_PTHREAD
> +xs.o: CFLAGS += -DUSE_PTHREAD
>   ifeq ($(CONFIG_Linux),y)
>   xs.opic: CFLAGS += -DUSE_DLSYM
>   endif



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 16:05:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 16:05:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754442.1162873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPlR9-0003g4-Tu; Fri, 05 Jul 2024 16:05:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754442.1162873; Fri, 05 Jul 2024 16:05:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPlR9-0003fx-RH; Fri, 05 Jul 2024 16:05:27 +0000
Received: by outflank-mailman (input) for mailman id 754442;
 Fri, 05 Jul 2024 16: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=Mps8=OF=gmail.com=andreistan2003@srs-se1.protection.inumbo.net>)
 id 1sPlR9-0003fr-4N
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 16:05:27 +0000
Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com
 [2607:f8b0:4864:20::831])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61d10dd6-3ae8-11ef-8776-851b0ebba9a2;
 Fri, 05 Jul 2024 18:05:22 +0200 (CEST)
Received: by mail-qt1-x831.google.com with SMTP id
 d75a77b69052e-445e1f933e0so8250451cf.0
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 09: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: 61d10dd6-3ae8-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720195521; x=1720800321; 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=idjXXqvgasy6zJw0NvplHHzfSXjgrv3fy3NK6/GxX4c=;
        b=GSLkoTdQEwrqE+ftUU7bcIcCOpRbt2L/61KYPHvS7FPxxFlCQttNClfeCHyjyaFb73
         W8KibvIRc0pctEU4VyNpveyb5FcU6xTiBWiYghY7BqMGPAA1bnyFl/BFkT89LjSLDw7a
         1e52wPPIgt8giq41j8QrwhTGrJltQB1Hlhq4Jk9Me0ocC1tEAFnovT78LnexPRp3L5XY
         dev2YhMgyVAJlr9fzlgxraT8YMaU6PPBcp3tmVPB0kKCiQkkhxZa9dzj9KNvyZTktxSu
         8yfkbMyzHJUFJPFIjXWPwsGOETAfpNMBsY1KG0x5gA2OcMwk2PmEQgch0GGmtziwSFLH
         FaHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720195521; x=1720800321;
        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=idjXXqvgasy6zJw0NvplHHzfSXjgrv3fy3NK6/GxX4c=;
        b=dJUbmyhTUN5qhhhPz5NZNr/gs8JhhruIBUp7fSlBJlODzuM5q7BvuUXfZaXpunaMMA
         TboMtmrDPWAD/xesbQXMOF/IquQJgn232Mn+g2Y2SvMYGABa5shEVau3vLOJWqbypS+D
         M53PqMWinnPkS3SGZiTj8PDaY006KmiYwjLHuG2n1zN5vlFFVRoAc6rxBZb7L0Lu8Coz
         wHzHcEihy8zurU8li29Oo6MyH3ifn8MkaLnbQaezrR99cvM8mHjToAsIhur9X+EEFkkr
         N6zq8QP2ZH0YzUjwiOncsj644+q4mGx0j4/iPjUHOHdW766KqiRAE3vo1iMMC31CAx/u
         HyUA==
X-Forwarded-Encrypted: i=1; AJvYcCUbz1mNlA4yrxrRTQINl3fDDoVba740uAeB95BVjv6brhqosrENZ3Lr7mvo81gzIcl3MbK5zLKP12Hx+7cLJKEysfPqcHsQF8a/etpY/Eo=
X-Gm-Message-State: AOJu0Yz+kn8bRmMGgVuZwoNS8Rh0KsgBvzhSXLxA9PW9uMgcxAqoAkAS
	MCoa/GO2BaS+tugoBP0+K9Kn/tYmEA6ycOTybIRH13vwk9G9nuPxYfo29yTYYX/zz0W/v05ntLp
	2i2GQ9g/ZkNHWKTD76K7xezX2iuA=
X-Google-Smtp-Source: AGHT+IGyz/vODStqwszR7Wf19fR5jf37KNSPrLsPZpFfGbom639FauyYHW/teu5r4SG/CqN4bOaQRl9IvvkR3RV3jH4=
X-Received: by 2002:a05:622a:45:b0:440:6345:257f with SMTP id
 d75a77b69052e-447cbf9c277mr62283141cf.60.1720195521161; Fri, 05 Jul 2024
 09:05:21 -0700 (PDT)
MIME-Version: 1.0
References: <20240705145910.32736-3-andreistan2003@gmail.com> <36ad6b62-9186-41e3-bfa7-7a6d81d9efe1@suse.com>
In-Reply-To: <36ad6b62-9186-41e3-bfa7-7a6d81d9efe1@suse.com>
From: Andrei Stan <andreistan2003@gmail.com>
Date: Fri, 5 Jul 2024 19:05:08 +0300
Message-ID: <CAH=Ecdj8PThEpMckjbciHhxK6H4K0qeympJvd5uQ=pX_G6rOFQ@mail.gmail.com>
Subject: Re: [PATCH] tools/libs/store: add missing USE_PTHREAD to target .o
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>, 
	xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Jul 5, 2024 at 6:22=E2=80=AFPM J=C3=BCrgen Gro=C3=9F <jgross@suse.c=
om> wrote:
>
> On 05.07.24 16:59, Andrei Stan wrote:
> > Currently only shared libraries build with USE_PTHREAD enabled.
> >
> > This patch adds the macro also to xs.o.
> >
> > Backport: 4.18+ # maybe older
> > Signed-off-by: Andrei Stan <andreistan2003@gmail.com>
>
> Commit dde3e02b7068 did that explicitly, stating that phtreads are
> not compatible with static linking.
>
> Was that reasoning wrong?
>
> Juergen
> ---
> > ---
> >   tools/libs/store/Makefile | 1 +
> >   1 file changed, 1 insertion(+)
> >
> > diff --git a/tools/libs/store/Makefile b/tools/libs/store/Makefile
> > index 0649cf8307..c6f147c72f 100644
> > --- a/tools/libs/store/Makefile
> > +++ b/tools/libs/store/Makefile
> > @@ -20,6 +20,7 @@ CFLAGS +=3D -include $(XEN_ROOT)/tools/config.h
> >   CFLAGS +=3D $(CFLAGS_libxentoolcore)
> >
> >   xs.opic: CFLAGS +=3D -DUSE_PTHREAD
> > +xs.o: CFLAGS +=3D -DUSE_PTHREAD
> >   ifeq ($(CONFIG_Linux),y)
> >   xs.opic: CFLAGS +=3D -DUSE_DLSYM
> >   endif

It was a pretty nasty situation, giving some context, this is for a Go base=
d CLI
tool and some things in there are multithreaded, but i don't think
calling in the
bindings happens anywhere in parallel. Without this patch there would be
some sort of race conditions (or so I assume from the debugging i've done)
happening withing the xen/tools code, making it impossible to start a domai=
n.

In this case there were no issues in linking pthreads statically. I was not=
 even
aware of that being a possible issue. Is it really?

Also I am not too sure how much that code path is actually tested, probably=
 the
majority of the testing is done with dynamic builds.

Andrei


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 17:20:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 17:20:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754452.1162882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPmbV-000763-7e; Fri, 05 Jul 2024 17:20:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754452.1162882; Fri, 05 Jul 2024 17:20: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 1sPmbV-00075w-58; Fri, 05 Jul 2024 17:20:13 +0000
Received: by outflank-mailman (input) for mailman id 754452;
 Fri, 05 Jul 2024 17:20:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPmbT-00075m-MV; Fri, 05 Jul 2024 17:20:11 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPmbT-0005Vf-Hv; Fri, 05 Jul 2024 17:20:11 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPmbT-000262-9p; Fri, 05 Jul 2024 17:20:11 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPmbT-0000p1-9I; Fri, 05 Jul 2024 17:20: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=DSmvj1dd8UpHlI8qwuTRKt0unGe8nvNNj1yH+2wvPSU=; b=h3NYdr80/Tqpb6conQWzKwxQ/d
	C/e+laBNzY1rkPyufE/JB7Flkpr7ZTgVBHdZJw/G2SVmRbwWJz9S5X59WFNB1ZgC9o16EiLpUz0+/
	B20N4/QzqeMGB3wgi+D1IR9I9fiJNXCmZY42DQrn+K4PvVfz7QsC/tg12I58g8YGeeOI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186704-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186704: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=22d0babd3315dc24027321819cf0efc487dc9d18
X-Osstest-Versions-That:
    ovmf=051c7bb434f9f6b908aac2a0b00368192aa616ec
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 17:20:11 +0000

flight 186704 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186704/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 22d0babd3315dc24027321819cf0efc487dc9d18
baseline version:
 ovmf                 051c7bb434f9f6b908aac2a0b00368192aa616ec

Last test of basis   186701  2024-07-05 13:11:10 Z    0 days
Testing same since   186704  2024-07-05 15:11:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jiaxin Wu <jiaxin.wu@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   051c7bb434..22d0babd33  22d0babd3315dc24027321819cf0efc487dc9d18 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 17:52:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 17:52:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754462.1162892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPn6h-0002bO-Kz; Fri, 05 Jul 2024 17:52:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754462.1162892; Fri, 05 Jul 2024 17: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 1sPn6h-0002bH-IS; Fri, 05 Jul 2024 17:52:27 +0000
Received: by outflank-mailman (input) for mailman id 754462;
 Fri, 05 Jul 2024 17:52:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPn6g-0002b7-9U; Fri, 05 Jul 2024 17:52:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPn6g-0005zQ-4K; Fri, 05 Jul 2024 17:52:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPn6f-0002wU-PX; Fri, 05 Jul 2024 17:52:25 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPn6f-0002b7-P8; Fri, 05 Jul 2024 17:52: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=2lNpbtPwix6D40zDtBdOTNhJc9gIS8MrU6hRkJasjSo=; b=wil3u/Zsrsbc3ik4Kl/oa2pGmS
	tLb4TZoHP798J6gIwSPs8js0jOml0GjV4H7JI0TtB/emRMnhwpvQoEaZS7gcLnitr97RhbDbQX9JX
	DEBmC8912039yCJ7XK/IqwrMYYm+1G2DCiE7umsOwTx6hv75vziYGW/T/0innht8++sg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186703-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186703: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c2a66d0b58b9661037cfed6bf3f8122b3363ca38
X-Osstest-Versions-That:
    xen=7878756565427b310b0307c0aa3f6d682133e1d1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 17:52:25 +0000

flight 186703 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186703/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c2a66d0b58b9661037cfed6bf3f8122b3363ca38
baseline version:
 xen                  7878756565427b310b0307c0aa3f6d682133e1d1

Last test of basis   186661  2024-07-04 19:00:29 Z    0 days
Testing same since   186703  2024-07-05 15:02:07 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   7878756565..c2a66d0b58  c2a66d0b58b9661037cfed6bf3f8122b3363ca38 -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 18:23:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 18:23:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754478.1162931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPnaa-0006p0-BS; Fri, 05 Jul 2024 18:23:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754478.1162931; Fri, 05 Jul 2024 18:23:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPnaa-0006ot-8O; Fri, 05 Jul 2024 18:23:20 +0000
Received: by outflank-mailman (input) for mailman id 754478;
 Fri, 05 Jul 2024 18:23: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=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPnaY-0006of-TI
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 18:23:18 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a5d4bf1b-3afb-11ef-bbfb-fd08da9f4363;
 Fri, 05 Jul 2024 20:23:16 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-57cb9a370ddso2602211a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 11:23:16 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58f9d3f11ffsm1084696a12.67.2024.07.05.11.23.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 11:23: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: a5d4bf1b-3afb-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720203795; x=1720808595; 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=ykZjKbXh9UmKyZo8fjcIZ1I5BuCpnN4JJtWIO/GSyng=;
        b=Gj9c/16TEqC8l7rnEoWE0malHtA+QhHqN8gp2s08dLPo+as71qs4+a46dXs8q9TTfx
         /GBy8NDs+uqDsHHVGlfgKL3JxBTBFGCwEBNknRuhL4cloQa/2DJjpmZEit01CGMXncLV
         6UN4anuzECJVWSFTTc7LfgAV6UR9hZHHat/UE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720203795; x=1720808595;
        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=ykZjKbXh9UmKyZo8fjcIZ1I5BuCpnN4JJtWIO/GSyng=;
        b=hGTn9fNd3S5OPjQ4xCw5KOIueN31cfD2T4r6AvIxFPaHCJ0GspMoovQI75g2aqIKA5
         dZEM8jnt1iVYp8DtabYYtGYfqpiQJxr/bDDEAA+IStS9euRzuobKbX7Z+QFfH6jCp/31
         SO0BUE8Excln8Z+xvRxPL6pDyN21Sp+boch37kPxGuH5aUTN6HxHOo8IcoVXs6z/Z853
         AU4IhGxTa67PO6OLRHMQJ5EcnjCJlzIUEC6mNJlrvvqHrdXZkYhpoMcmXP2fYxjJzxf6
         Lu8Zg4eLf6x7D/tR75o74ygMC/k+N06i8E08i9Ts2BS6nHaUubzcJ8j3wViHgsUZUpEY
         5w9g==
X-Gm-Message-State: AOJu0YwdAbNaRZoMsFCaYUKiRXdL8v9cObzQg+S7HEhoxdvNwdRVk9Rn
	Tvk/CePqRMqfFT8poA3MvOIPxbqU6YuR32ScfCxlPgIKQshwcyMINwv9ZDo0M0GfQJhuKlp52Zm
	7
X-Google-Smtp-Source: AGHT+IHjQc78kY0IfYHTpBEqA9L6mCyX6+TwII3IdXPZPbtoARlqaKBIKEN9sVECxLQ6/rjZ9HIhTw==
X-Received: by 2002:a05:6402:524b:b0:57c:7486:3f7d with SMTP id 4fb4d7f45d1cf-58e59d3b3efmr4081018a12.19.1720203795073;
        Fri, 05 Jul 2024 11:23: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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH 0/2] ppc/shutdown: Implement machine_{halt,restart}()
Date: Fri,  5 Jul 2024 19:23:09 +0100
Message-Id: <20240705182311.1968790-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

I got bored testing fixes to the gitlab containers.

Oleksii: There's almost certainly a related change suitable for RISC-V.

Andrew Cooper (2):
  xen/shutdown: Fix build issue with shutdown.h on PPC
  ppc/shutdown: Implement machine_{halt,restart}()

 xen/arch/ppc/Makefile           |  1 +
 xen/arch/ppc/ppc64/opal-calls.S |  4 +++
 xen/arch/ppc/setup.c            |  8 +++---
 xen/arch/ppc/shutdown.c         | 43 +++++++++++++++++++++++++++++++++
 xen/arch/ppc/stubs.c            | 12 ---------
 xen/common/shutdown.c           |  4 +--
 xen/include/xen/shutdown.h      |  3 ++-
 7 files changed, 55 insertions(+), 20 deletions(-)
 create mode 100644 xen/arch/ppc/shutdown.c


base-commit: c2a66d0b58b9661037cfed6bf3f8122b3363ca38
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 18:23:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 18:23:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754480.1162951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPnad-0007IW-0Q; Fri, 05 Jul 2024 18:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754480.1162951; Fri, 05 Jul 2024 18:23:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPnac-0007IP-TO; Fri, 05 Jul 2024 18:23:22 +0000
Received: by outflank-mailman (input) for mailman id 754480;
 Fri, 05 Jul 2024 18: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=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPnab-0006of-Oi
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 18:23:21 +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 a8a01fb5-3afb-11ef-bbfb-fd08da9f4363;
 Fri, 05 Jul 2024 20:23:21 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e38028so2534141a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 11:23:21 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58f9d3f11ffsm1084696a12.67.2024.07.05.11.23.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 11:23: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: a8a01fb5-3afb-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720203800; x=1720808600; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nZYPkFHCDEyDlM2Vs4SM3zblVONXWrDP4geH0ChK1q8=;
        b=FOL4yyFKSetRe+pTWiKTCMHG4se/BaGdxyPf3tGGvFxYucdnhfzgRcrLvNDYWZn/Ns
         fKoVU4M4jtsWqk0ziH1IjW7zKBWNT1Tf0w7l1p2CQjNTLWLgPzp1hbF6eH20QDlGdTKq
         DunaSaFHwMblo7FxqwCmEjb4e4jfdp1bN35UI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720203800; x=1720808600;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=nZYPkFHCDEyDlM2Vs4SM3zblVONXWrDP4geH0ChK1q8=;
        b=Fvsiq6gQa3H88T2xns8FgN3jReKsIQe+JxE0GKR+maNLEZEhsjMtQrEjw32LoO7A+T
         w65/5DRAR6ZVXmWchHiaQacwx29RczazPiXUR/nXc8c0QCiSzo+vI+uG5DS82a08X5QQ
         06UCyxFzahIznU972aC5eMOSwceRIOx3Vjv8DrfWoJ4LUKHqtHb9wt5nJ8UtgKoSO2HJ
         iQ9O17Z/FUYkwTZ/QKPgrbGHZqAmdb4J7CKodFZti4ZideeIYiK36i1iSF8JHNU060+Y
         lUNZeIeOQIDJC5lQzSU6bX96KHky0tKH1B0pTLjZlaxJ8RFAckpc9LNTsfSzzKUrk1Gy
         9Mmg==
X-Gm-Message-State: AOJu0YxmYw3BBSnsJBhL8kfrU5MmzhV6M86aR8o1/Hz3nLdVKvDl3Okk
	I4mPcd8Wl+GZs8jNfFhqjr3n3MKClry7ZcWgCXk/T8Tjxn4M55HjOv9k9bcB6MrwMew+B/0j2O/
	O
X-Google-Smtp-Source: AGHT+IErjqI/T76XlFax33zMWxF/HpkOewu+ERWm6GTJ4+5O8H1/ktA1EECYcXrH/NOYoEFV3R9x0A==
X-Received: by 2002:a05:6402:2803:b0:57d:2c9:6494 with SMTP id 4fb4d7f45d1cf-58e5acd876cmr4199133a12.10.1720203799699;
        Fri, 05 Jul 2024 11:23: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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH 2/2] ppc/shutdown: Implement machine_{halt,restart}()
Date: Fri,  5 Jul 2024 19:23:11 +0100
Message-Id: <20240705182311.1968790-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240705182311.1968790-1-andrew.cooper3@citrix.com>
References: <20240705182311.1968790-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

OPAL has easy APIs for shutdown/reboot, so wire them up.

Then, use machine_halt() rather than an infinite loop at the end of
start_xen().  This avoids the Qemu smoke test needing to wait for the full
timeout in order to succeed.

  (XEN) 8e011600000000c0 is the result of PTE map
  Enabled radix in LPCR
  Flushed TLB
  Hello, ppc64le!
  [    6.341897656,5] OPAL: Shutdown request type 0x0...

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>

I got bored testing fixes to the containers...
---
 xen/arch/ppc/Makefile           |  1 +
 xen/arch/ppc/ppc64/opal-calls.S |  4 +++
 xen/arch/ppc/setup.c            |  8 +++---
 xen/arch/ppc/shutdown.c         | 43 +++++++++++++++++++++++++++++++++
 xen/arch/ppc/stubs.c            | 12 ---------
 5 files changed, 51 insertions(+), 17 deletions(-)
 create mode 100644 xen/arch/ppc/shutdown.c

diff --git a/xen/arch/ppc/Makefile b/xen/arch/ppc/Makefile
index 71feb5e2c41f..655d212f6687 100644
--- a/xen/arch/ppc/Makefile
+++ b/xen/arch/ppc/Makefile
@@ -4,6 +4,7 @@ obj-$(CONFIG_EARLY_PRINTK) += early_printk.init.o
 obj-y += mm-radix.o
 obj-y += opal.o
 obj-y += setup.o
+obj-y += shutdown.o
 obj-y += stubs.o
 obj-y += tlb-radix.o
 
diff --git a/xen/arch/ppc/ppc64/opal-calls.S b/xen/arch/ppc/ppc64/opal-calls.S
index cc5de75c8af4..69d07909d108 100644
--- a/xen/arch/ppc/ppc64/opal-calls.S
+++ b/xen/arch/ppc/ppc64/opal-calls.S
@@ -79,3 +79,7 @@ opal_return_mmu:
 OPAL_CALL(opal_console_write, OPAL_CONSOLE_WRITE)
 OPAL_CALL(opal_console_flush, OPAL_CONSOLE_FLUSH)
 OPAL_CALL(opal_reinit_cpus, OPAL_REINIT_CPUS)
+
+OPAL_CALL(opal_cec_power_down, OPAL_CEC_POWER_DOWN)
+OPAL_CALL(opal_cec_reboot, OPAL_CEC_REBOOT)
+OPAL_CALL(opal_poll_events, OPAL_POLL_EVENTS)
diff --git a/xen/arch/ppc/setup.c b/xen/arch/ppc/setup.c
index 7fe06aa4bfb0..5fb5ab64e323 100644
--- a/xen/arch/ppc/setup.c
+++ b/xen/arch/ppc/setup.c
@@ -2,6 +2,8 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
+#include <xen/shutdown.h>
+
 #include <public/version.h>
 #include <asm/boot.h>
 #include <asm/early_printk.h>
@@ -43,11 +45,7 @@ void __init noreturn start_xen(unsigned long r3, unsigned long r4,
 
     early_printk("Hello, ppc64le!\n");
 
-    for ( ; ; )
-        /* Set current hardware thread to very low priority */
-        HMT_very_low();
-
-    unreachable();
+    machine_halt();
 }
 
 void arch_get_xen_caps(xen_capabilities_info_t *info)
diff --git a/xen/arch/ppc/shutdown.c b/xen/arch/ppc/shutdown.c
new file mode 100644
index 000000000000..c4b00e57b13a
--- /dev/null
+++ b/xen/arch/ppc/shutdown.c
@@ -0,0 +1,43 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#include <xen/shutdown.h>
+
+#include <asm/opal-api.h>
+
+int64_t opal_cec_power_down(uint64_t request);
+int64_t opal_cec_reboot(void);
+int64_t opal_poll_events(uint64_t *outstanding_event_mask);
+
+void machine_halt(void)
+{
+    int rc;
+
+    do {
+        rc = opal_cec_power_down(0);
+
+        if ( rc == OPAL_BUSY_EVENT )
+            opal_poll_events(NULL);
+
+    } while ( rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT );
+
+    for ( ;; )
+        opal_poll_events(NULL);
+}
+
+void machine_restart(unsigned int delay_millisecs)
+{
+    int rc;
+
+    /* TODO: mdelay(delay_millisecs); */
+
+    do {
+        rc = opal_cec_reboot();
+
+        if ( rc == OPAL_BUSY_EVENT )
+            opal_poll_events(NULL);
+
+    } while ( rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT );
+
+    for ( ;; )
+        opal_poll_events(NULL);
+}
+
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 923f0e7b2095..41e7a7d2130b 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -59,18 +59,6 @@ void vcpu_show_execution_state(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-/* shutdown.c */
-
-void machine_restart(unsigned int delay_millisecs)
-{
-    BUG_ON("unimplemented");
-}
-
-void machine_halt(void)
-{
-    BUG_ON("unimplemented");
-}
-
 /* vm_event.c */
 
 void vm_event_fill_regs(vm_event_request_t *req)
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 18:23:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 18:23:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754481.1162961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPnaf-0007ZA-9v; Fri, 05 Jul 2024 18:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754481.1162961; Fri, 05 Jul 2024 18: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 1sPnaf-0007Z2-5f; Fri, 05 Jul 2024 18:23:25 +0000
Received: by outflank-mailman (input) for mailman id 754481;
 Fri, 05 Jul 2024 18:23:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPnae-0007YU-RP; Fri, 05 Jul 2024 18:23:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPnae-0006a5-Pn; Fri, 05 Jul 2024 18:23:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPnae-0003eC-DI; Fri, 05 Jul 2024 18:23:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPnae-0003jH-Ck; Fri, 05 Jul 2024 18:23:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Q/NomyAulkgobV+XgD5UAJeYXYSOXz3u/Rludc7pGYc=; b=ncs5fWjC7oOdqnpKszd3nGSi2g
	CBfQ8F5map7J1YsZPw5FX+orCE10Qt/HXY09A5ZLfL1q1Wo5exYJQC9gubJaOEYHMu8QiPWVivmBK
	K9CmT450AT9uJmTX6+p9Q4uvxMqfm0WJhrGyZXdvxd1DJ1wXS9yE8hUUywh6bIYJhmOg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186671-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186671: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=7878756565427b310b0307c0aa3f6d682133e1d1
X-Osstest-Versions-That:
    xen=63c66274d9934e0df7f4e3725c868ff2251b705f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 18:23:24 +0000

flight 186671 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186671/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186650
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186650
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186650
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186650
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186650
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186650
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  7878756565427b310b0307c0aa3f6d682133e1d1
baseline version:
 xen                  63c66274d9934e0df7f4e3725c868ff2251b705f

Last test of basis   186650  2024-07-04 07:47:32 Z    1 days
Testing same since   186671  2024-07-04 22:10:57 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alejandro Vallejo <alejandro.vallejo@cloud.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  Jan Beulich <jbeulich@suse.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   63c66274d9..7878756565  7878756565427b310b0307c0aa3f6d682133e1d1 -> master


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 18:23:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 18:23:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754479.1162936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPnaa-0006rt-KZ; Fri, 05 Jul 2024 18:23:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754479.1162936; Fri, 05 Jul 2024 18:23:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPnaa-0006rG-FB; Fri, 05 Jul 2024 18:23:20 +0000
Received: by outflank-mailman (input) for mailman id 754479;
 Fri, 05 Jul 2024 18:23: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=A4R/=OF=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sPnaZ-0006of-7K
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 18:23:19 +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 a71c3c14-3afb-11ef-bbfb-fd08da9f4363;
 Fri, 05 Jul 2024 20:23:18 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58bac81f3f9so2598661a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 11:23:18 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58f9d3f11ffsm1084696a12.67.2024.07.05.11.23.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 05 Jul 2024 11:23: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: a71c3c14-3afb-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720203797; x=1720808597; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cIylfhAbepjTkMUCr/P9og/lT2rzth5HYxn+smuFSr0=;
        b=qfYUzcDRuCml6rY07VUbDNwYc6alFbhTAb9TzJ1r5oYJcd/baBzk4eYtZsPX81ktoM
         qmpUuon3ITbuWKXFY3tIpsTgjtd5ucTefOSktJdN99pBCnNLu6SMYT7W2xiwdJtnxZMW
         KSjieB4yc+ckovwh4OyCz+bSpN9KwBicw3zmQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720203797; x=1720808597;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cIylfhAbepjTkMUCr/P9og/lT2rzth5HYxn+smuFSr0=;
        b=CPdPu0cbTmTDoPrmV/Z1RInsiKcphFJoj6TmMdD2bCpX36AHwiQaEw/xo+qpS6LcTo
         Fo+zSd652IYL0PGXTpswEgmtFAi9D0HgtJclW+n1sUBqgEolzVl4kc3BFcfdst3z6uWx
         YQOqAz4kutR0VD0WV//f5VsEEN/uEQQp9PaHmbbIO5x6LpQx+hKkSICfZDmShFOdj3pN
         X718jAy6oXy6xbbb85Ahy3ZwNkDCWo/V7fqW/gHQF7FkGs1NOQ1fNfUQRATSJFaFXkhi
         TIj9GvpG5yK+X3QRHgAhg17nEUZWCFmgcZTt3blDzZs6zyyDVrCLvRv19btPWf8GS2nf
         GcTQ==
X-Gm-Message-State: AOJu0YyDhfm0Xhj6DuFHx5A+SX2Poba3J4Z22Wi6ZtRW//e/DWXUm+Jq
	CttLhJxHNK2F2VO0kCZ34TaJQTl8hYtf7wNVme7Oiw1XhEDjaAoyP26PDHHgTicvXAeeAbWWN9R
	k
X-Google-Smtp-Source: AGHT+IFYsCFTQiwmGYeg5rzqqahJ2noyRC/8ErATorfKxPdrffVkEorQorfllpz+Zudf4bVSyHNwcA==
X-Received: by 2002:aa7:d5d6:0:b0:579:e7c5:1001 with SMTP id 4fb4d7f45d1cf-58e5b3ab677mr2859518a12.23.1720203797383;
        Fri, 05 Jul 2024 11:23: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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH 1/2] xen/shutdown: Fix build issue with shutdown.h on PPC
Date: Fri,  5 Jul 2024 19:23:10 +0100
Message-Id: <20240705182311.1968790-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240705182311.1968790-1-andrew.cooper3@citrix.com>
References: <20240705182311.1968790-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The use of bool needs xen/types.h, which shutdown.h picks up by chance in all
other architectures.

While fixing this, swap u8 for unsigned char in hwdom_shutdown(), and move
opt_noreboot into __ro_after_init.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
---
 xen/common/shutdown.c      | 4 ++--
 xen/include/xen/shutdown.h | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/xen/common/shutdown.c b/xen/common/shutdown.c
index 5f8141edc6b2..cb9c830bbc1d 100644
--- a/xen/common/shutdown.c
+++ b/xen/common/shutdown.c
@@ -11,7 +11,7 @@
 #include <public/sched.h>
 
 /* opt_noreboot: If true, machine will need manual reset on error. */
-bool __read_mostly opt_noreboot;
+bool __ro_after_init opt_noreboot;
 boolean_param("noreboot", opt_noreboot);
 
 static void noreturn reboot_or_halt(void)
@@ -29,7 +29,7 @@ static void noreturn reboot_or_halt(void)
     }
 }
 
-void hwdom_shutdown(u8 reason)
+void hwdom_shutdown(unsigned char reason)
 {
     switch ( reason )
     {
diff --git a/xen/include/xen/shutdown.h b/xen/include/xen/shutdown.h
index 668aed0be580..c7fa23aec1fe 100644
--- a/xen/include/xen/shutdown.h
+++ b/xen/include/xen/shutdown.h
@@ -2,11 +2,12 @@
 #define __XEN_SHUTDOWN_H__
 
 #include <xen/compiler.h>
+#include <xen/types.h>
 
 /* opt_noreboot: If true, machine will need manual reset on error. */
 extern bool opt_noreboot;
 
-void noreturn hwdom_shutdown(u8 reason);
+void noreturn hwdom_shutdown(unsigned char reason);
 
 void noreturn machine_restart(unsigned int delay_millisecs);
 void noreturn machine_halt(void);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 05 19:15:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 19:15:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754513.1162971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPoOy-0006qL-UU; Fri, 05 Jul 2024 19:15:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754513.1162971; Fri, 05 Jul 2024 19: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 1sPoOy-0006qE-Qw; Fri, 05 Jul 2024 19:15:24 +0000
Received: by outflank-mailman (input) for mailman id 754513;
 Fri, 05 Jul 2024 19:15:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPoOy-0006q4-2c; Fri, 05 Jul 2024 19:15:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPoOy-0007bt-02; Fri, 05 Jul 2024 19:15:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPoOx-0004uG-DT; Fri, 05 Jul 2024 19:15:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPoOx-00062e-D4; Fri, 05 Jul 2024 19:15: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=MFQNuMZKRDUtrBvuE6eoFWWQf876cPpE6Wo32Uoh0t0=; b=vtktRhDGGN4k1hDASkfY5z68mN
	JwkQOvDTuukqXAF9aEEnyMc7gt2s0350nKQRI3h5Y5MJ2VNDI/eoFSBFExNjLAxKRWguCDvwv4UGP
	fzsbHny8C5RdsJyVz4P0r3o+Gg0EMl5iwTOGJkLqWDMU+mcxIxLyv3CEP4kQm+WlWBqk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186705-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186705: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=a3359ffb25ce70ee90822f6886136bf0d200406e
X-Osstest-Versions-That:
    ovmf=22d0babd3315dc24027321819cf0efc487dc9d18
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 19:15:23 +0000

flight 186705 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186705/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 a3359ffb25ce70ee90822f6886136bf0d200406e
baseline version:
 ovmf                 22d0babd3315dc24027321819cf0efc487dc9d18

Last test of basis   186704  2024-07-05 15:11:05 Z    0 days
Testing same since   186705  2024-07-05 17:42:53 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Xianglai Li <lixianglai@loongson.cn>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   22d0babd33..a3359ffb25  a3359ffb25ce70ee90822f6886136bf0d200406e -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 21:12:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 21:12:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754527.1162980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPqEP-0004OJ-1w; Fri, 05 Jul 2024 21:12:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754527.1162980; Fri, 05 Jul 2024 21:12: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 1sPqEO-0004OC-VW; Fri, 05 Jul 2024 21:12:36 +0000
Received: by outflank-mailman (input) for mailman id 754527;
 Fri, 05 Jul 2024 21:12:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPqEO-0004O2-Ba; Fri, 05 Jul 2024 21:12:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPqEO-0001Fs-9p; Fri, 05 Jul 2024 21:12:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPqEN-0002pA-Q2; Fri, 05 Jul 2024 21:12:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPqEN-0000KR-Pd; Fri, 05 Jul 2024 21:12:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=7zp3MlfEUCkQUADqbGxfFzayfVv0Kc8VqkPsnfWvods=; b=o40lBIF3cDHOwQC2NuYJM9BifB
	jjd+vAtN9ETu6t79p11mHVNfCR+0a4c9d6TZQFm4ghmYBqAY6kGEmirKs1NFZCUgq/eZhNdOqkYFz
	l4VTQxmIogLvxLnC2nVzUpvNWJk/sRddzUyz9imxYEpzeE5LVKAVHb15DEO4wjjB2PWA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186707-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186707: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=26bc42f1e34cdf43057a75b8edcc0bd86c091214
X-Osstest-Versions-That:
    ovmf=a3359ffb25ce70ee90822f6886136bf0d200406e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 21:12:35 +0000

flight 186707 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186707/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 26bc42f1e34cdf43057a75b8edcc0bd86c091214
baseline version:
 ovmf                 a3359ffb25ce70ee90822f6886136bf0d200406e

Last test of basis   186705  2024-07-05 17:42:53 Z    0 days
Testing same since   186707  2024-07-05 19:44:54 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
  Yanbo Huang <yanbo.huang@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   a3359ffb25..26bc42f1e3  26bc42f1e34cdf43057a75b8edcc0bd86c091214 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 22:37:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 22:37:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754537.1162990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPrXx-0005LD-Lj; Fri, 05 Jul 2024 22:36:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754537.1162990; Fri, 05 Jul 2024 22:36:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPrXx-0005L6-Ix; Fri, 05 Jul 2024 22:36:53 +0000
Received: by outflank-mailman (input) for mailman id 754537;
 Fri, 05 Jul 2024 22:36:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VuSb=OF=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1sPrXw-0005L0-7X
 for xen-devel@lists.xenproject.org; Fri, 05 Jul 2024 22:36:52 +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 104c6af0-3b1f-11ef-8776-851b0ebba9a2;
 Sat, 06 Jul 2024 00:36:48 +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 465K7WKo010665;
 Fri, 5 Jul 2024 22:36:18 GMT
Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta02.appoci.oracle.com [147.154.114.232])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4029234m1x-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 05 Jul 2024 22:36:18 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19)
 with ESMTP id 465JefqG010991; Fri, 5 Jul 2024 22:36:17 GMT
Received: from nam11-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam11lp2176.outbound.protection.outlook.com [104.47.58.176])
 by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 4028qbtep8-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 05 Jul 2024 22:36:17 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by DS7PR10MB7132.namprd10.prod.outlook.com (2603:10b6:8:ef::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Fri, 5 Jul
 2024 22:36:15 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0%3]) with mapi id 15.20.7741.029; Fri, 5 Jul 2024
 22:36: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: 104c6af0-3b1f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=
	message-id:date:subject:to:cc:references:from:in-reply-to
	:content-type:content-transfer-encoding:mime-version; s=
	corp-2023-11-20; bh=Nxuhf13ZdvDaAF6OU+/qOUCx4GRcDHeYjHjf0UpD+tU=; b=
	I9WNwaT02ALM8nFmXqraqlsdx18HxI7P4lpTiVTOFRiAvEbXx3Pj+ZsxVqGhcFCV
	XKN6gO/2PZ0/jTtuyCPSx/q/T25dJJkjI/84Ahd+qv3BuYXZHzlSf2V+bPcI3YLA
	fAggl89BBk0UtoJ0X6r2TyvkxkLaE+NLCVTU6aEW+wGp0jlhzbSdvAyDjni6QRTw
	LnVbcXKu6PBT+fVMENGiL/SNY+xddCEzN7gUuYhYgjTxgfT6R6u2RWxyG4KAKSLs
	P/iypxdj6SLzG4o6UH22KhVbE7lNpk4CrJ1Fx8i7lBjGoKfGaVEP9XB4gZ25wmOO
	x+7d8FmDhfrwfTb0T1X2Yg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EFRUjQFlq/9GyTlMCtItuANXxjBUUH5s9zZANdj71V8SBjlZKbNuwzXIEaaDrkBDeHqpJTbx0/TTaWrAu7K9faES0xcgDndee9udMHxFkKpWvZdxh5rwclsNaeYcTDV1AzWgn36JfmpUOMtRwrDE7bmdttfZAn8atrXUCMizKrCt98na2tVTUNRm/jaLHjpkbAchEO6qkLXwJ3i6pjsIJ+d4uOYEOjKp3Lr2PJG4AemM/xQexduVkZiLxFQBdBUMQrZT6TpD7//HdqLspEeFWU28LRkDRxkiHP1UMZ8xTymVhrLkr/k7WfqmWTDkrbPMzX2HrD6FSoVQnOo5fDkDEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Nxuhf13ZdvDaAF6OU+/qOUCx4GRcDHeYjHjf0UpD+tU=;
 b=f1rSJsHnlvWuz1xs08nd6fi8o2H8/vTDAhyTMU1n+UELIX8sLbaUYEvz+br8LiDkwN+XOtc4Rc71plnxdkf67Z4dZZBzbkWOG9fr6Kb51h3/duoIotQmkFNIi7m2i5r4Hlj+C+tmUURYq4i/wQZaFOc6cfQEkZM0/TkkCvtCQRX+6bUyvJTmFCPD2FvjlurF9Lz3ZhmcwxeAUBD575fr6AnQqex0IPkXLFlfKngh3SmTUgvuij9dtlXz/h/XjhH+xFtczOOcA8VxoeykWeIkBFFhDfI0ne7cr/lz/irQQYWkGtjm6Pfv5q4mpFVZAypq1LUgNjW0f6gUitM0jUp43w==
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=Nxuhf13ZdvDaAF6OU+/qOUCx4GRcDHeYjHjf0UpD+tU=;
 b=sFnG5p2fLjTxKQ/D3DwuWM3L+rbz/3K0ela4iKD4k8FRQtUD0/9W2XiNOteRXSF38zCRZUAQVv0Q9Vm9ocPY+zuFXto0gn/wBbDVCMVvTdxHqDchkRkMxPN7a2RZJDAUqU1vB2pu4YL0xMZnh0y1yZhv9KgA9zCtg+kOfr/7M1s=
Message-ID: <d28f8da5-7903-41c8-9213-4e24e376c837@oracle.com>
Date: Fri, 5 Jul 2024 18:36:10 -0400
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: make multicall debug boot time selectable
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org, linux-doc@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
References: <20240703115620.25772-1-jgross@suse.com>
Content-Language: en-US
From: boris.ostrovsky@oracle.com
In-Reply-To: <20240703115620.25772-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BY5PR17CA0003.namprd17.prod.outlook.com
 (2603:10b6:a03:1b8::16) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BLAPR10MB5009:EE_|DS7PR10MB7132:EE_
X-MS-Office365-Filtering-Correlation-Id: f7efc234-4254-4f0e-3fa4-08dc9d42e11d
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?amJsUkhnRGR0Szg5N2R6Y2dQanFSTGJ6eFZQbG5PSHRiQWloSmZNSlNRdW0r?=
 =?utf-8?B?WHpDNzhEUzNyRFdTUFJxQVlxTFhZTGt6QlRLd0xzYlU1NUlqNmczKzhQbnhi?=
 =?utf-8?B?bys5ZGxwSEM0VUZuTXpNbHB6c05hN0NKOE52NTQ3dVJEaWV6UnpqUHZ4V0pM?=
 =?utf-8?B?TXVvYWwyNStON2JFTzc0aGEwSXh0cHNKeEp6K2l4N0RGQ2ZOejAyY09TR2JF?=
 =?utf-8?B?a2h3bkVDOWRxSEsvd3JtSGpFckd5RnZuSGlsK2FmaGp3aFBRKy9SbjJVUVBv?=
 =?utf-8?B?MmtMRjAwSzJKc01aVXhydXlReXZFODVaTWdpZS9hYmhxSVpmbmxyYTJNcTk5?=
 =?utf-8?B?dlBlRGpJaHVRQWtncmM0WHpuMHFlZUhvSE1sVWNkQWxTbTltcURuc0N2SWdV?=
 =?utf-8?B?dEx6RDAyZFUzOHQ3bmwybnNndGd3UXAyVkJ6Yko2OVJ5UzRaTkN4U2NRQ3k4?=
 =?utf-8?B?VHZKUkR0SnZGZ2s5VDdpVFlQeGdhOGJSdXQ3anVtU016MXY0MkpNRXBJbU1U?=
 =?utf-8?B?RUR2bHpRbXdyeFFTT28vOXRuMGwveEJsTitBTXAwQzlLdUtnTGVVdlV4T3Y2?=
 =?utf-8?B?d2RsSkw1Vnd5ZTBPWGZCRzNnSjc0TFBtNC96QmxMdnlGRVp3d3lWd05VNVdv?=
 =?utf-8?B?QXVTbEJJZHg4SzJyQ0JubzZhMERYQ2E4cG1NVXdoS2VhQVlJZEF2eU0rR3A5?=
 =?utf-8?B?aXFYRzJxblUvTUVqTko5OE80TUtid2w5cTZCZ1g4MHA5MURLZSt4am55a2hF?=
 =?utf-8?B?YnA4QmhCaVFZdUVFOGkzeWdOVm50UWhrRTVselBLSDZrbCtENVpVWFR2TFV0?=
 =?utf-8?B?aVVrdW1qb1AxZG05L2VVQXR1UDVzU0hNRTJHOWZWWlBLQ3U0RnBzVEtGS3BO?=
 =?utf-8?B?VVVucHpUNWdndDhtMW9nTEhmN2RkSlYrQXJUamtyUUZmZ0s1ME1Hc0doTGhY?=
 =?utf-8?B?NENwdFpOa0VHdGV0SkpsMTZ6UFoyTnZENk04dm5XbjEvcTdpWmducmxUR3BF?=
 =?utf-8?B?clRjV1NMbEl3SnFoRjJaSUh6QndkdTBraFNEYkJIMmIxZ2FIOElQWmJpSU9G?=
 =?utf-8?B?ZzEvOVN0M2EwVjdSRTEvZlhFZ0VaVHVvVzliMEFOVEpmMlBvTGY0NkdNcmJp?=
 =?utf-8?B?VE5YaG5jenNKVzYvOGhJL3BnNUJNVHIxZW1tajVWZW1WbndWTkRCTmZGWmxY?=
 =?utf-8?B?b0s0NGc4cXJpNEtqd3pBaFlEM1hJeTM4Q1VPU2o4ZllxYUowTTVtZ0RVMS9t?=
 =?utf-8?B?NjBpVkRGWXlXNkRNYS9ZS2diK3dJRnJRUEpHVE1GaGM3TDFmNFVybGFqdjlo?=
 =?utf-8?B?aEVMNjlPRkl0WUIzYzJ5WUcxYTZCTWZRM2c4ZDJ4M1B1RkYrMVg2Zys5ZDMy?=
 =?utf-8?B?RjMrZzU3Wjd4dzl1NzBGcmhiZTR2QVFaMTNKQjRxY3hVMmdvYUljRkZZcDNE?=
 =?utf-8?B?RmdHOTRsd0VUQS93NDFUMXNCN2Vyc2x4UEtxWDhHeEpGS0NIOVU1SlMzZVcv?=
 =?utf-8?B?YTI2M0J6M3ZQRnQrbS9vcHl6TytOMFAweEhxT1IrZ3pqaktTT1dOZHN1V1RC?=
 =?utf-8?B?U2ZaVStnTld5cU1Nd2s0M3QralJtV1R6SEw1ejJqV2JidHBVV29adWJaUDRw?=
 =?utf-8?B?eGsvQnFvcGQzUUVRaHZKdFpFeVpjZFprUldTQ0ZiRXRpenY2cHViWnBSQkxC?=
 =?utf-8?B?ckxoUUZ0SXB4WW9WKzZFajJIL0tBTXRXbFQ2eGFnbnpPdkNiak5LNHNoeWtV?=
 =?utf-8?B?VE5UQzZPaDlEZWNLcklmaTZDZDZZSGVsRWRZbXU1c1VMOHRxL0VVMEdvNDNt?=
 =?utf-8?B?b2lQZXJ0Nm4wVGY2TlFVdz09?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?emluUmdZZXZRR2J4bWZKb0l5bzlzZHNpSkV6eXI2S0IrUlRvMDc3OHdjZzR0?=
 =?utf-8?B?eU5JellPaSt0TU9TSU5uQWRhdGZyM25VK0dZVkZTZGdPTVJEbGgwdGJjSFdj?=
 =?utf-8?B?dno3VmRkMjFTbzAyOTdveGozcnhrbjdlMmx1SDZWeWM1eEU5NVlRWkNMaEl4?=
 =?utf-8?B?UTM3aWQzdXJLZVNWUHpsSitjUEFIVTduQnI3TjZHbXFKOWVkVmZldGFyeXMy?=
 =?utf-8?B?aVluWmlSaFA3WnhCcDRTaU5WRnZ6UXFaZGd2cU5kNXhkTTZsQ2M0Z3MwbnU1?=
 =?utf-8?B?RmlFV1d3bHdSZ1RiZVI2aUltZVVWL095b1hDbVJGZ1IvRFFZQ2FSNytHREts?=
 =?utf-8?B?Y2xjaEhMeDVZOVZjMERBZk5zamNNUjVDa0U2ZnBiMS9LUzdkdW5ibGt5dG1P?=
 =?utf-8?B?dnZWS0daVG15NlE0RUJYelMwZXlTRm4ydDZCZ1ZHdW5meno1aGxDUXNCY1pV?=
 =?utf-8?B?c1IyUnFSUGlmQWZ5K0Vucnkxc0FsQitEcnQ1TUc1RFFHTmtwWmxpdTlHNHBE?=
 =?utf-8?B?emxyZnQrSG9KM3kvVWU4RzlPSTMvUldIMy9GTlRQT2M0bHFyT25Gd3FEYnla?=
 =?utf-8?B?RnJKclFwMHVaeHR0M1FTSk1NTWZoaW56d0ZjSkdqV2o1NkhKcUp4M0F1UGlQ?=
 =?utf-8?B?YlR2MnhiQU5wVHJYbDVSTFo3UUtZczRhSlVBQUdMTzFNcHI5NUF5a2VWa2Ir?=
 =?utf-8?B?ekV0ZitQckRSL3BrK2tESFh4S0RLRU4xK3pQbndQNlV3QmtqM2hubkg5UnNB?=
 =?utf-8?B?S2xIUHRQUHpobHVxR0tGYkxuZWJzcEJLOXA4dnBiL2NxK1pzcnZCM3JTVG1D?=
 =?utf-8?B?WGMvWHIwamtsZGxtSFJHOWtVMXdDUGJJRE9ZYWJHYWZ1ZEd3V1prY0ZvaVlx?=
 =?utf-8?B?Rlg0MXFNQmxURVI4ZmZrWS9rZ1VzdjNMWVVRUGhQWURidGhtS2dVaUpZUHFH?=
 =?utf-8?B?VUJhZUluZzhOc1hXQzE2SUF3MVBLRFh0MU9JNE1VM3NYQjErVE02d3BsVEJF?=
 =?utf-8?B?SUZJdHJSV0k0c1ExZjJ3UnFFVEgyWHBVNkhsR284ckdQTXF4ZnFKK2l6OXlz?=
 =?utf-8?B?c29RbEZxMGVrbHNDaitDdHhmb2J2NHdLcG0xSTdXV2F1eVE2RjFMMisvR21F?=
 =?utf-8?B?Q0hsVG9jdWg3SmkwdmdJcndpNngrUWdHZmI1ZGN1OHhuVlp1NEtjWDRza0lz?=
 =?utf-8?B?cjlabWR6SlVaY2V0OU0vdVcyZ1Y1dGZaYlI5aXoybVVYZHNsaHJHUUVTUjBN?=
 =?utf-8?B?QkR6dE5qWXB1d3hEU2pVbCt4RW9GREQwSkxWZTFSMmQ1VUkxMmxFckZrOUFC?=
 =?utf-8?B?RXMySUp4QWlZYmRDMXRoTG5KbjRVWEFiSkRRdSt0ZzBJYmR1cmpHZWtuSElS?=
 =?utf-8?B?UDJNaDlncDFWWmRjVEFCTEVoalJUK1JGWmNRcjVldGpsM2E2UWYzbzRMdW1N?=
 =?utf-8?B?VGlGZktuc0FOS2JlalQ4YStoejZVYVQwdnVvbWpGZjBOTUNPczdUc1ZTY1VB?=
 =?utf-8?B?ejJCTGdMQ1JiNFNpa1RUN0RYRUsvaU9rRGo3cEFTQU5RZUpVemU2Y0ZRamxm?=
 =?utf-8?B?NWp6dFd1WkRGbHFzYUFsRFJOa3Y5SkZYRHFIaDlGWHZlcHlqNUVna2hNaE5D?=
 =?utf-8?B?aXN1L2JjaU9IWmhhMUN2RFpHdENrZ0VZeHQrWXR3TmZyOU1jV2RDMDFzK2lG?=
 =?utf-8?B?R3FYZXlZc3JrYnlDc0tyMGFLbXlnVGtFRlpmVFRPek1SanRFN2JqMkhhMGxW?=
 =?utf-8?B?LzZpdlhZWkwrd0JEU0tJeFFzRWhFenp1UU5XamxBRnpIa2hTWFJJcHJUV3RF?=
 =?utf-8?B?VlY1VkYzZDBwSVV4Y25OeW1mazNVSDdMR0NFUnQxRVpKbUJRSXVIcmowbWxn?=
 =?utf-8?B?MXpxOExOcTVhVmNXbko5WW1GTjNQcXZsblhiTHJ4bDV1WmFRVE15S0dBTHBX?=
 =?utf-8?B?VGFKN0tVeFBpbGpySTZKdDJDeURtRVZCQWJ6MVBNTEpQOXdDa1lIb0pXcUJB?=
 =?utf-8?B?UEdxNEw2VUZKUUZFSWwvdngydWZoS01oRWlPL3Vtb3JodVhESTNLbWN5QVNj?=
 =?utf-8?B?dUx3eE8xWlBCUjlsZlQ1US9CU2UyRlZMbk0zTG1razQzRVFYZ25qbzIrMmtz?=
 =?utf-8?B?ZC9DS2djNnlHZGFndENlMERqRFBnVk96M1E2K0Ntc1lFVEE4NzB4azZCZjZp?=
 =?utf-8?B?VXc9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 
	ePQ4aI623gcCzmjYesDZqjWPZkrpK2RWopHLuL93Ov2HT1llYDDFV/UmztRIwRAU079Uiv4FAzU1fGYfDtp13waX1h1XFkt8sso9Ugmuwue3gGIQ6rlECRgheTrteA/kp2kKWRHuWj6ftYuwsJ4rL/p8C0UJwg66Mv1f5PJ3wdpmgIcQhQo8607u7QZgjqKCV0fg+kMrJtKXjuEf83bZbNc1FzcdFIInAit+veNta5s0R/WBKcOCfYUTZGAB+vy0YR986Mmwc0U4xoynbUIP1xFS+t5ck4RXKnLdxffdrR49cXVe4pmudkD2RtatydEOGV1KH26runIPjtkE9PrXI+ALydTZZwd+rCriMyW/KkechU4NQN6E+CpjCVps7+u9bnCNP88OIBFDLf9xFVJq6ZdsBHCnpHg89WddelqEHp9DIdV73tb2cVW1ILh8y6hdBLJXqE4oKNsmes9Jr1Sv1isy/k7ibqbu/Y+hz1r85mFe55oCQv7t0rvfXnz/BBAOxzxJ5mFe4304p85x/q3dAgFXnPkEJaY4Bxdm0qQUpcPWrGlNDHQHvsR0rw+AuszurQeOIHBSoXFQsLgjXcW1W0pJUxaCJ5PWKpT6Xh7uUhc=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f7efc234-4254-4f0e-3fa4-08dc9d42e11d
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2024 22:36:15.1523
 (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: IjAFWH9DUt5Ub5bbRrx7WXkcs0Tv4sAmVWcrzUk9aCPZMvdryvF1kA9/39vQLZ1U6O/KTrdRTwCdIfZIsYj1vRqwrYlTqY1DZEuja0ZBm48=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB7132
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-05_16,2024-07-05_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0
 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2406180000 definitions=main-2407050167
X-Proofpoint-GUID: tJgA4AdcYAu4c3RWH1C_TnNhxtBLWwHg
X-Proofpoint-ORIG-GUID: tJgA4AdcYAu4c3RWH1C_TnNhxtBLWwHg



On 7/3/24 7:56 AM, Juergen Gross wrote:

>   
>   #define MC_BATCH	32
>   
> -#define MC_DEBUG	0
> -
>   #define MC_ARGS		(MC_BATCH * 16)
>   
>   
>   struct mc_buffer {
>   	unsigned mcidx, argidx, cbidx;
>   	struct multicall_entry entries[MC_BATCH];
> -#if MC_DEBUG
> -	struct multicall_entry debug[MC_BATCH];
> -	void *caller[MC_BATCH];
> -#endif
>   	unsigned char args[MC_ARGS];
>   	struct callback {
>   		void (*fn)(void *);
> @@ -50,13 +46,84 @@ struct mc_buffer {
>   	} callbacks[MC_BATCH];
>   };
>   
> +struct mc_debug_data {
> +	struct multicall_entry debug[MC_BATCH];

'entries'? It's a mc_debug_data's copy of mc_buffer's entries.

Also, would it be better to keep these fields as a struct of scalars and 
instead have the percpu array of this struct? Otherwise there is a whole 
bunch of [MC_BATCH] arrays, all of them really indexed by the same 
value. (And while at it, there is no reason to have callbacks[MC_BATCH] 
sized like that -- it has nothing to do with batch size and can probably 
be made smaller)


> +	void *caller[MC_BATCH];
> +	size_t argsz[MC_BATCH];
> +};
> +
>   static DEFINE_PER_CPU(struct mc_buffer, mc_buffer);
> +static struct mc_debug_data __percpu *mc_debug_data;
> +static struct mc_debug_data mc_debug_data_early __initdata;

How about (I think this should work):

static struct mc_debug_data __percpu *mc_debug_data __refdata = 
&mc_debug_data_early;

Then you won't need get_mc_debug_ptr().


-boris


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 23:22:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 23:22:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754546.1163000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPsFw-0003HQ-UE; Fri, 05 Jul 2024 23:22:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754546.1163000; Fri, 05 Jul 2024 23:22: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 1sPsFw-0003HJ-Rc; Fri, 05 Jul 2024 23:22:20 +0000
Received: by outflank-mailman (input) for mailman id 754546;
 Fri, 05 Jul 2024 23:22:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPsFv-0003H9-8z; Fri, 05 Jul 2024 23:22:19 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPsFv-0003Zh-3t; Fri, 05 Jul 2024 23:22:19 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPsFu-0006Gv-PK; Fri, 05 Jul 2024 23:22:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPsFu-0000vg-Op; Fri, 05 Jul 2024 23:22:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=HzwlnSY5GhIy3h76KUSeyNgCNXV71TE0xuPWyHW0Low=; b=d5FyO3L9IHdrBfM6iE1H44PsR0
	xiZeE29qxNAoQVcYNmb4XjJ8QV6wLJl4g+lHfg/dGqQszyz19Noel/O8oSwbrWU2wh6bB/1PNGiXC
	4OF1HO8XU5JYYc2wSBm1xtl/tBSvj5wJ0PO9f1kyBKflZJfUNaYhMYCvxpJG+dlkUMiE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186683-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186683: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-qcow2:xen-boot:fail:heisenbug
    linux-linus:test-amd64-amd64-examine-uefi:examine-iommu:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=661e504db04c6b7278737ee3a9116738536b4ed4
X-Osstest-Versions-That:
    linux=795c58e4c7fc6163d8fb9f2baa86cfe898fa4b19
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 23:22:18 +0000

flight 186683 linux-linus real [real]
flight 186708 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186683/
http://logs.test-lab.xenproject.org/osstest/logs/186708/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-qcow2     8 xen-boot            fail pass in 186708-retest
 test-amd64-amd64-examine-uefi 13 examine-iommu      fail pass in 186708-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-qcow2   14 migrate-support-check fail in 186708 never pass
 test-armhf-armhf-xl-qcow2 15 saverestore-support-check fail in 186708 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186647
 test-armhf-armhf-xl-multivcpu  8 xen-boot                     fail like 186647
 test-armhf-armhf-libvirt-vhd  8 xen-boot                     fail  like 186647
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186659
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186659
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186659
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186659
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186659
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                661e504db04c6b7278737ee3a9116738536b4ed4
baseline version:
 linux                795c58e4c7fc6163d8fb9f2baa86cfe898fa4b19

Last test of basis   186659  2024-07-04 16:15:12 Z    1 days
Testing same since   186683  2024-07-05 04:06:57 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ajay Singh <ajay.kathat@microchip.com>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alexander Gordeev <agordeev@linux.ibm.com>
  Alexis Lothoré <alexis.lothore@bootlin.com>
  Andrew Morton <akpm@linux-foundation.org>
  Armin Wolf <W_Armin@gmx.de>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Boris Burkov <boris@bur.io>
  Chris Mi <cmi@nvidia.com>
  Daniel Gabay <daniel.gabay@intel.com>
  Daniel Jurgens <danielj@nvidia.com>
  Dave Jiang <dave.jiang@intel.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Dima Ruinskiy <dima.ruinskiy@intel.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Safonov <0x7f454c46@gmail.com>
  Ed Tomlinson <edtoml@gmail.com>
  Edward Adam Davis <eadavis@qq.com>
  Emmanuel Grumbach <emmanuel.grumbach@intel.com>
  Eric Dumazet <edumazet@google.com>
  Eric Farman <farman@linux.ibm.com>
  Filipe Manana <fdmanana@suse.com>
  Florian Westphal <fw@strlen.de>
  Furong Xu <0x1207@gmail.com>
  Ghadi Elie Rahme <ghadi.rahme@canonical.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Hans de Goede <hdegoede@redhat.com>
  Hector Martin <marcan@marcan.st>
  Heiko Carstens <hca@linux.ibm.com>
  Iulia Tanasescu <iulia.tanasescu@nxp.com>
  Ivan Vecera <ivecera@redhat.com>
  Jacob Keller <jacob.e.keller@intel.com>
  Jakub Kicinski <kuba@kernel.org>
  Jan Kara <jack@suse.cz>
  Janne Grunau <j@jannau.net>
  Jay Vosburgh <jay.vosburgh@canonical.com>
  Jeff Johnson <quic_jjohnson@quicinc.com>
  Jerry Dai <jerry.dai@intel.com>
  Jianbo Liu <jianbol@nvidia.com>
  Jiawen Wu <jiawenwu@trustnetic.com>
  Jimmy Assarsson <extja@kvaser.com>
  Jinliang Zheng <alexjlzheng@tencent.com>
  Johannes Berg <johannes.berg@intel.com>
  Jozef Hopko <jozef.hopko@altana.com>
  Kalle Valo <kvalo@kernel.org>
  Karol Kolacinski <karol.kolacinski@intel.com>
  kemal <kmal@cock.li>
  Kiran K <kiran.k@intel.com>
  Kuniyuki Iwashima <kuniyu@amazon.com>
  Leon Romanovsky <leonro@nvidia.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
  Marc Kleine-Budde <mkl@pengutronix.de>
  Marek Vasut <marex@denx.de>
  Mark Brown <broonie@kernel.org>
  Michael Chan <michael.chan@broadcom.com>
  Michal Hocko <mhocko@suse.com>
  Mickaël Salaün <mic@digikod.net>
  Milena Olech <milena.olech@intel.com>
  Miquel Raynal <miquel.raynal@bootlin.com>
  Miri Korenblit <miriam.rachel.korenblit@intel.com>
  Naohiro Aota <naohiro.aota@wdc.com>
  Neal Cardwell <ncardwell@google.com>
  Neeraj Sanjay Kale <neeraj.sanjaykale@nxp.com>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Pavan Chebbi <pavan.chebbi@broadcom.com>
  Pavel Skripkin <paskripkin@gmail.com>
  Petr Oros <poros@redhat.com>
  Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
  Qu Wenruo <wqu@suse.com>
  Radu Rendec <rrendec@redhat.com>
  Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
  Ryusuke Konishi <konishi.ryusuke@gmail.com>
  Sagi Grimberg <sagi@grimberg.me>
  Sam Sun <samsun1006219@gmail.com>
  Shigeru Yoshida <syoshida@redhat.com>
  Simon Horman <horms@kernel.org>
  Stefan Haberland <sth@linux.ibm.com>
  Stefan Schmidt <stefan@datenfreihafen.org>
  Sven Peter <sven@svenpeter.dev>
  Tariq Toukan <tariqt@nvidia.com>
  Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Vijay Satija <vijay.satija@intel.com>
  Vitaly Lifshits <vitaly.lifshits@intel.com>
  Wren Turkal <wt@penguintechs.org>
  Xiaochun Lu <xiaochun.lu@bytedance.com>
  Yijie Yang <quic_yijiyang@quicinc.com>
  Yuchung Cheng <ycheng@google.com>
  Yue Sun <samsun1006219@gmail.com>
  Yunshui Jiang <jiangyunshui@kylinos.cn>
  Zijian Zhang <zijianzhang@bytedance.com>
  Zijun Hu <quic_zijuhu@quicinc.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                fail    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   795c58e4c7fc6..661e504db04c6  661e504db04c6b7278737ee3a9116738536b4ed4 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Fri Jul 05 23:58:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 05 Jul 2024 23:58:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754556.1163010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPsoZ-0007ZB-E4; Fri, 05 Jul 2024 23:58:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754556.1163010; Fri, 05 Jul 2024 23: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 1sPsoZ-0007Z4-BV; Fri, 05 Jul 2024 23:58:07 +0000
Received: by outflank-mailman (input) for mailman id 754556;
 Fri, 05 Jul 2024 23:58:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPsoX-0007Yu-TJ; Fri, 05 Jul 2024 23:58:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPsoX-00049y-RN; Fri, 05 Jul 2024 23:58:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPsoX-0007DG-H2; Fri, 05 Jul 2024 23:58:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPsoX-0006Jj-Ga; Fri, 05 Jul 2024 23:58: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=qZOJtD7WEGp0uZ+JCeQDdqcXRXA5vioLIwg844DAgbw=; b=YE7U+yzpGVzQSH2qUCe7idHWeK
	DOoqxvbiYiM4xGB8UHZi3VVYBnrtJhlQVZkZfrpv1jg6wODRqE8I6oGWDleO9MAc+vu+9KZPQuwAD
	f7YO+JdytuScVu1lRm4yTnxAH5FvFqqYr4Zzo+qpijn+8EGjMst7D7J16SLtawOyxMtk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186684-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186684: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=95591306930833eb28993d5c0dc7408466c38e71
X-Osstest-Versions-That:
    libvirt=f67b12ba35e7a59c64163c41943ab37a00f052f0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 05 Jul 2024 23:58:05 +0000

flight 186684 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186684/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186648
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              95591306930833eb28993d5c0dc7408466c38e71
baseline version:
 libvirt              f67b12ba35e7a59c64163c41943ab37a00f052f0

Last test of basis   186648  2024-07-04 04:18:45 Z    1 days
Testing same since   186684  2024-07-05 04:18:44 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  John Levon <john.levon@nutanix.com>
  Michal Privoznik <mprivozn@redhat.com>
  Rayhan Faizel <rayhan.faizel@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   f67b12ba35..9559130693  95591306930833eb28993d5c0dc7408466c38e71 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Jul 06 05:50:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Jul 2024 05:50:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754568.1163021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPyJ4-0001F8-QY; Sat, 06 Jul 2024 05:49:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754568.1163021; Sat, 06 Jul 2024 05:49: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 1sPyJ4-0001F1-NF; Sat, 06 Jul 2024 05:49:58 +0000
Received: by outflank-mailman (input) for mailman id 754568;
 Sat, 06 Jul 2024 02:22:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=v1aR=OG=netbsd.org=riastradh@srs-se1.protection.inumbo.net>)
 id 1sPv4Z-0003H3-3n
 for xen-devel@lists.xenproject.org; Sat, 06 Jul 2024 02:22:47 +0000
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a061d999-3b3e-11ef-bbfb-fd08da9f4363;
 Sat, 06 Jul 2024 04:22:45 +0200 (CEST)
Received: by mail.netbsd.org (Postfix, from userid 1457)
 id 3238584D44; Sat,  6 Jul 2024 02:22:42 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a061d999-3b3e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netbsd.org;
	s=20240131; t=1720232562;
	bh=mI0qwY2cgup+mnxCC6WbO1Fxx97Sbm0J56W2YH+EQt8=;
	h=To:Subject:Date:From;
	b=HhPqiIeIVM8kXH/NnTZrK1ThXugtzh/mTYeKcp7iMbUvjJuYc1TUq9qzFVvIt5N9+
	 pMFVkz+LJfHqotyvD8e8oRImGVJdcTjs8clIjVXbO6li9E1Pxqmj8GWfSGFDUrwR72
	 92iko/U5g+7luOGt5/kC26ycb2SHN+hX6+0aSkcc=
To: xen-devel@lists.xenproject.org
Subject: GNTTABOP_setup_table yields -1 PFNs
Date: Sat, 6 Jul 2024 02:22:40 +0000
From: Taylor R Campbell <riastradh-xen-devel@NetBSD.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20240706022242.3238584D44@mail.netbsd.org>

[I asked on IRC and Andrew Cooper suggested posting the question here.
I'm not subscribed to xen-devel@, so please cc me in replies.]


On a Xen 4.14 host (with extraversion=.0.88.g1d1d1f53), with version 1
grant tables, where GNTTABOP_query_size initially returns nr_frames=32
max_nr_frames=64, a NetBSD guest repeatedly queries
GNTTABOP_setup_table for successively larger nr_frames from 1 up.

The guest initially gets arrays of valid-looking PFNs.  But then at
nr_frames=33, the PFNs [0] through [31] in the resulting array are
valid but PFN [32] is -1, i.e., all bits set.

GNTTABOP_setup_table returned 0 and op.status = GNTST_okay, so it
didn't fail -- it just returned an invalid PFN.  And _after_
GNTTABOP_setup_table yields -1 as a PFN, GNTTABOP_query_size returns
nr_frames=33 max_nr_frames=64, so the host thinks it has successfully
allocated more frames.

What could cause the host to return a PFN -1?  Is there anything the
guest does that could provoke this?  Are there any diagnostics that
the guest could print to help track this down?  (I don't control the
host.)  Should a guest just check for -1 and stop as if it had hit
max_nr_frames?



(NetBSD then passes the PFN -1 on to HYPERVISOR_mmu_update, which
fails with EINVAL, at which point NetBSD crashes;
<https://gnats.NetBSD.org/58395>.  If I make NetBSD pretend the host
had advertised max_nr_frames=32, everything works fine.

I'm guessing non-NetBSD guests will eventually crash when they see -1,
but NetBSD sees it at boot while maybe it takes very heavy I/O load on
Linux to make it reach nr_frames=33 in this setup.)


From xen-devel-bounces@lists.xenproject.org Sat Jul 06 05:50:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Jul 2024 05:50:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754585.1163031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPyJV-0002V5-4a; Sat, 06 Jul 2024 05:50:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754585.1163031; Sat, 06 Jul 2024 05: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 1sPyJV-0002Uy-14; Sat, 06 Jul 2024 05:50:25 +0000
Received: by outflank-mailman (input) for mailman id 754585;
 Sat, 06 Jul 2024 05:50:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Onl8=OG=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1sPyJT-0002Um-Nn
 for xen-devel@lists.xenproject.org; Sat, 06 Jul 2024 05:50:23 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a24b5d54-3b5b-11ef-bbfb-fd08da9f4363;
 Sat, 06 Jul 2024 07:50:22 +0200 (CEST)
Received: by verein.lst.de (Postfix, from userid 2407)
 id AB6C868D0E; Sat,  6 Jul 2024 07:50: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: a24b5d54-3b5b-11ef-bbfb-fd08da9f4363
Date: Sat, 6 Jul 2024 07:50:19 +0200
From: Christoph Hellwig <hch@lst.de>
To: mhklinux@outlook.com
Cc: robin.murphy@arm.com, joro@8bytes.org, will@kernel.org, jgross@suse.com,
	sstabellini@kernel.org, oleksandr_tyshchenko@epam.com, hch@lst.de,
	m.szyprowski@samsung.com, petr@tesarici.cz, iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 1/1] swiotlb: Reduce swiotlb pool lookups
Message-ID: <20240706055019.GA13280@lst.de>
References: <20240701165746.1358-1-mhklinux@outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240701165746.1358-1-mhklinux@outlook.com>
User-Agent: Mutt/1.5.17 (2007-11-01)


Hi Michael,

I like the idea behind this, but can you respin it to avoid some of
the added code duplication.  We have a lot of this pattern:

	pool = swiotlb_find_pool(dev, paddr);
	if (pool)
		swiotlb_foo(dev, ...

duplicated in all three swiotlb users.  If we rename the original
swiotlb_foo to __swiotlb_foo and add a little inline wrapper this is
de-duplicated and also avoids exposing swiotlb_find_pool to the
callers.

If we then stub out swiotlb_find_pool to return NULL for !CONFIG_SWIOTLB,
we also don't need extra stubs for all the __swiotlb_ helpers as the
compiler will eliminate the calls as dead code.

I might be missing something, but what is the reason for using the
lower-level __swiotlb_find_pool in swiotlb_map and xen_swiotlb_map_page?
I can't see a reason why the simple checks in swiotlb_find_pool itself
are either wrong or a performance problem there.  Because if we don't
need these separate calls we can do away with __swiotlb_find_pool
for !CONFIG_SWIOTLB_DYNAMIC and simplify swiotlb_find_pool quite
a bit like this:

	...

	if (!mem)
		return NULL;

	if (IS_ENABLED(CONFIG_SWIOTLB_DYNAMIC)) {
		smp_rmb(); 
		if (!READ_ONCE(dev->dma_uses_io_tlb))
			return NULL;
		return __swiotlb_find_pool(dev, paddr);
	}

	if (paddr < mem->defpool.start || paddr >= mem->defpool.end)
		return NULL;
	return &dev->dma_io_tlb_mem->defpool;


While you're at it please fix the > 80 character lines as this patch
is adding plenty.


From xen-devel-bounces@lists.xenproject.org Sat Jul 06 06:28:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Jul 2024 06:28:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754598.1163041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPytr-000734-P3; Sat, 06 Jul 2024 06:27:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754598.1163041; Sat, 06 Jul 2024 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 1sPytr-00072x-Ly; Sat, 06 Jul 2024 06:27:59 +0000
Received: by outflank-mailman (input) for mailman id 754598;
 Sat, 06 Jul 2024 06: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=ymMv=OG=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1sPytq-00072r-9o
 for xen-devel@lists.xenproject.org; Sat, 06 Jul 2024 06:27:58 +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 e21b0131-3b60-11ef-bbfb-fd08da9f4363;
 Sat, 06 Jul 2024 08:27:57 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a77d85f7fa3so166317166b.0
 for <xen-devel@lists.xenproject.org>; Fri, 05 Jul 2024 23:27: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: e21b0131-3b60-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720247276; x=1720852076; 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=pvIUEf4OGw4szd3dnSi14gEwyaKCg7Ab/IbdT2ipIzg=;
        b=VP7HOSTP0CnHIOM7vxQqNEbJDMRW+ZNkA0SXmA2FccndDDkgsL82c9tdsNKMpCQLKe
         cleHGx31chq1/WlCESNYfvk5uMCUOJXPI5g96ff9ZYCgo+dF9Lm1T39kb4LnqitKcygM
         LzZwDTGoY08Yyo03Oj5ErLNNHhjGTzE4VAagLqd0qjo/Rm4hdRs2Cr463JN69Hd9bw7m
         OlRhlxnlufb4LdhxxwF5e+6pCZONIJxaJbuHIWP/dPgBCMg5+09rN9VDRF2FymbII6cf
         MlmuCimK+vm8UG0tVRz/9oN8GxQ7qLNMfCM9tvzJu/kFxicmv6PTwxugxNJ+NZIP1u7e
         4pvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720247276; x=1720852076;
        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=pvIUEf4OGw4szd3dnSi14gEwyaKCg7Ab/IbdT2ipIzg=;
        b=iY5GjuYsYEWm3zwUmDw44Ba86JdqJLEMg/+797Hm75nDxapp3YEW4p9qOQrXvyUsXP
         9aMohrfq7w8wdvIPA7RK4TijyXQdQuOT1akrhi3dWDH5iFg6L9IJTcxS4GH2NpryPcmR
         JWUIZuaWY5DvSSBFvpgDBZ/mg4/vz+ski9FjZPsfYCOvPUZ2cW9c+sHlFOrgmFrAOGQb
         tIRm+h0XT5xX48a+Ee6zeF3nQTncY7gnkDILr+itvLFdM+ncr2xr+Jge8rXBgSvp5GHX
         5/jzArkQFteBYbz5LAzvN77Uqqy0xlCyPfEHqtg4ulK3O0vvCcVwMEeotFCFCXw8FGev
         IiFg==
X-Forwarded-Encrypted: i=1; AJvYcCVSI9WIt/HR1knRPz6nz1sSsZUUCqB7R0siasbUW1PibngZYecMe33pcLqx2eH23Fj3M0/IZww1mQsMhP/zfmEC/HG5iyUz8qVKZdNkoFQ=
X-Gm-Message-State: AOJu0Yx+YjM43D4ou0fPrXPVBoQk3cky0n6tFI5ZvyT2cNVm2l50p3rh
	WiBp0z5SkV3S87ermxtmV2lBLRRO7k4yee5KFck96mxbMptuxCbYd55sRmyyXdFpoLasIT6q++J
	3SrEQY6RtRmuXH4x3qfbXDLxIxKQ=
X-Google-Smtp-Source: AGHT+IHb4euwyMG906Cgc/z+6QFks7kCcEVu5rz8RaCdbkYNp03KGEF87G5qUqigQ1YjyF5U+qdmoA3h1kC1O2PHljE=
X-Received: by 2002:a17:906:c14b:b0:a77:d9b5:ad4b with SMTP id
 a640c23a62f3a-a77d9b5db0cmr282609366b.9.1720247275819; Fri, 05 Jul 2024
 23:27:55 -0700 (PDT)
MIME-Version: 1.0
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com>
 <20240701224421.1432654-3-edgar.iglesias@gmail.com> <ZoawbAnukIBkYWCw@l14>
 <87wmm1m7i3.fsf@draig.linaro.org> <ZobuhcLHqUEy_bQs@toto>
In-Reply-To: <ZobuhcLHqUEy_bQs@toto>
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Date: Sat, 6 Jul 2024 09:27:43 +0300
Message-ID: <CAJy5ezrfbAzwPWg_YABLy5NwCUiNa31FFR1nAZzy-WC3vXrMhg@mail.gmail.com>
Subject: Re: [PATCH v1 2/2] xen: mapcache: Fix unmapping of first entries in buckets
To: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
Cc: =?UTF-8?B?QWxleCBCZW5uw6ll?= <alex.bennee@linaro.org>, 
	Anthony PERARD <anthony.perard@vates.tech>, qemu-devel@nongnu.org, sstabellini@kernel.org, 
	paul@xen.org, xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000cd1a70061c8e471c"

--000000000000cd1a70061c8e471c
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 4, 2024 at 9:48=E2=80=AFPM Edgar E. Iglesias <edgar.iglesias@am=
d.com>
wrote:

> On Thu, Jul 04, 2024 at 05:44:52PM +0100, Alex Benn=C3=A9e wrote:
> > Anthony PERARD <anthony.perard@vates.tech> writes:
> >
> > > On Tue, Jul 02, 2024 at 12:44:21AM +0200, Edgar E. Iglesias wrote:
> > >> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> > >>
> > >> This fixes the clobbering of the entry->next pointer when
> > >> unmapping the first entry in a bucket of a mapcache.
> > >>
> > >> Fixes: 123acd816d ("xen: mapcache: Unmap first entries in buckets")
> > >> Reported-by: Anthony PERARD <anthony.perard@vates.tech>
> > >> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> > >> ---
> > >>  hw/xen/xen-mapcache.c | 12 +++++++++++-
> > >>  1 file changed, 11 insertions(+), 1 deletion(-)
> > >>
> > >> diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> > >> index 5f23b0adbe..18ba7b1d8f 100644
> > >> --- a/hw/xen/xen-mapcache.c
> > >> +++ b/hw/xen/xen-mapcache.c
> > >> @@ -597,7 +597,17 @@ static void
> xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
> > >>          pentry->next =3D entry->next;
> > >>          g_free(entry);
> > >>      } else {
> > >> -        memset(entry, 0, sizeof *entry);
> > >> +        /*
> > >> +         * Invalidate mapping but keep entry->next pointing to the
> rest
> > >> +         * of the list.
> > >> +         *
> > >> +         * Note that lock is already zero here, otherwise we don't
> unmap.
> > >> +         */
> > >> +        entry->paddr_index =3D 0;
> > >> +        entry->vaddr_base =3D NULL;
> > >> +        entry->valid_mapping =3D NULL;
> > >> +        entry->flags =3D 0;
> > >> +        entry->size =3D 0;
> > >
> > > This kind of feels like mc->entry should be an array of pointer rathe=
r
> > > than an array of MapCacheEntry but that seems to work well enough and
> > > not the first time entries are been cleared like that.
> >
> > The use of a hand rolled list is a bit of a concern considering QEMU an=
d
> > Glib both provide various abstractions used around the rest of the code
> > base. The original patch that introduces the mapcache doesn't tell me
> > much about access patterns for the cache, just that it is trying to
> > solve memory exhaustion issues with lots of dynamic small mappings.
> >
> > Maybe a simpler structure is desirable?
> >
> > We also have an interval tree implementation ("qemu/interval-tree.h") i=
f
> > what we really want is a sorted tree of memory that can be iterated
> > locklessly.
> >
>
> Yes, it would be interesting to benchmark other options.
> I agree that we should at minimum reuse existing lists/hash tables.
>
> We've also had some discussions around removing it partially or
> alltogether but
> there are some concerns around that. We're going to need something to
> keep track of grants. For 32-bit hosts, it's a problem to exhaust virtual
> address-space if mapping all of the guest (are folks still using 32-bit
> hosts?).
> There may be other issues aswell.
>
> Some benefits are that we'll remove some of the complexity and latency fo=
r
> mapping
> and unmapping stuff continously.
>
>
One more thing I forgot to add is that IMO, these larger longer term
changes should not block this tiny bugfix...

Cheers,
Edgar

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

<div dir=3D"ltr"><div dir=3D"ltr">On Thu, Jul 4, 2024 at 9:48=E2=80=AFPM Ed=
gar E. Iglesias &lt;<a href=3D"mailto:edgar.iglesias@amd.com">edgar.iglesia=
s@amd.com</a>&gt; wrote:<br></div><div class=3D"gmail_quote"><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex">On Thu, Jul 04, 2024 at 05:44:52PM +010=
0, Alex Benn=C3=A9e wrote:<br>
&gt; Anthony PERARD &lt;anthony.perard@vates.tech&gt; writes:<br>
&gt; <br>
&gt; &gt; On Tue, Jul 02, 2024 at 12:44:21AM +0200, Edgar E. Iglesias wrote=
:<br>
&gt; &gt;&gt; From: &quot;Edgar E. Iglesias&quot; &lt;<a href=3D"mailto:edg=
ar.iglesias@amd.com" target=3D"_blank">edgar.iglesias@amd.com</a>&gt;<br>
&gt; &gt;&gt; <br>
&gt; &gt;&gt; This fixes the clobbering of the entry-&gt;next pointer when<=
br>
&gt; &gt;&gt; unmapping the first entry in a bucket of a mapcache.<br>
&gt; &gt;&gt; <br>
&gt; &gt;&gt; Fixes: 123acd816d (&quot;xen: mapcache: Unmap first entries i=
n buckets&quot;)<br>
&gt; &gt;&gt; Reported-by: Anthony PERARD &lt;anthony.perard@vates.tech&gt;=
<br>
&gt; &gt;&gt; Signed-off-by: Edgar E. Iglesias &lt;<a href=3D"mailto:edgar.=
iglesias@amd.com" target=3D"_blank">edgar.iglesias@amd.com</a>&gt;<br>
&gt; &gt;&gt; ---<br>
&gt; &gt;&gt;=C2=A0 hw/xen/xen-mapcache.c | 12 +++++++++++-<br>
&gt; &gt;&gt;=C2=A0 1 file changed, 11 insertions(+), 1 deletion(-)<br>
&gt; &gt;&gt; <br>
&gt; &gt;&gt; diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c<br=
>
&gt; &gt;&gt; index 5f23b0adbe..18ba7b1d8f 100644<br>
&gt; &gt;&gt; --- a/hw/xen/xen-mapcache.c<br>
&gt; &gt;&gt; +++ b/hw/xen/xen-mapcache.c<br>
&gt; &gt;&gt; @@ -597,7 +597,17 @@ static void xen_invalidate_map_cache_ent=
ry_unlocked(MapCache *mc,<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pentry-&gt;next =3D entry-&=
gt;next;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 g_free(entry);<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 } else {<br>
&gt; &gt;&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 memset(entry, 0, sizeof *entry);=
<br>
&gt; &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 /*<br>
&gt; &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* Invalidate mapping but k=
eep entry-&gt;next pointing to the rest<br>
&gt; &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* of the list.<br>
&gt; &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*<br>
&gt; &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* Note that lock is alread=
y zero here, otherwise we don&#39;t unmap.<br>
&gt; &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/<br>
&gt; &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 entry-&gt;paddr_index =3D 0;<br>
&gt; &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 entry-&gt;vaddr_base =3D NULL;<b=
r>
&gt; &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 entry-&gt;valid_mapping =3D NULL=
;<br>
&gt; &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 entry-&gt;flags =3D 0;<br>
&gt; &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 entry-&gt;size =3D 0;<br>
&gt; &gt;<br>
&gt; &gt; This kind of feels like mc-&gt;entry should be an array of pointe=
r rather<br>
&gt; &gt; than an array of MapCacheEntry but that seems to work well enough=
 and<br>
&gt; &gt; not the first time entries are been cleared like that.<br>
&gt; <br>
&gt; The use of a hand rolled list is a bit of a concern considering QEMU a=
nd<br>
&gt; Glib both provide various abstractions used around the rest of the cod=
e<br>
&gt; base. The original patch that introduces the mapcache doesn&#39;t tell=
 me<br>
&gt; much about access patterns for the cache, just that it is trying to<br=
>
&gt; solve memory exhaustion issues with lots of dynamic small mappings.<br=
>
&gt; <br>
&gt; Maybe a simpler structure is desirable?<br>
&gt; <br>
&gt; We also have an interval tree implementation (&quot;qemu/interval-tree=
.h&quot;) if<br>
&gt; what we really want is a sorted tree of memory that can be iterated<br=
>
&gt; locklessly.<br>
&gt; <br>
<br>
Yes, it would be interesting to benchmark other options.<br>
I agree that we should at minimum reuse existing lists/hash tables.<br>
<br>
We&#39;ve also had some discussions around removing it partially or alltoge=
ther but<br>
there are some concerns around that. We&#39;re going to need something to<b=
r>
keep track of grants. For 32-bit hosts, it&#39;s a problem to exhaust virtu=
al<br>
address-space if mapping all of the guest (are folks still using 32-bit hos=
ts?).<br>
There may be other issues aswell.<br>
<br>
Some benefits are that we&#39;ll remove some of the complexity and latency =
for mapping<br>
and unmapping stuff continously.<br><br></blockquote><div><br></div><div>On=
e more thing I forgot to add is that IMO, these larger longer term changes =
should not block this tiny bugfix...</div><div><br></div><div>Cheers,</div>=
<div>Edgar=C2=A0<br></div></div></div>

--000000000000cd1a70061c8e471c--


From xen-devel-bounces@lists.xenproject.org Sat Jul 06 07:06:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Jul 2024 07:06:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754604.1163051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPzUd-0003rz-Im; Sat, 06 Jul 2024 07:05:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754604.1163051; Sat, 06 Jul 2024 07:05:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sPzUd-0003rs-FY; Sat, 06 Jul 2024 07:05:59 +0000
Received: by outflank-mailman (input) for mailman id 754604;
 Sat, 06 Jul 2024 07:05:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPzUc-0003ri-Vy; Sat, 06 Jul 2024 07:05:59 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPzUc-000800-PD; Sat, 06 Jul 2024 07:05:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sPzUc-0004OT-BA; Sat, 06 Jul 2024 07:05:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sPzUc-0000WM-AH; Sat, 06 Jul 2024 07:05: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=AzLx99x7xVVdZJZe2Ns6NJn4GOcwj+5ElFnyN/49rSc=; b=o2pTfiy0S2JWX/g5Z9eL1RlLjS
	MncJXNV4QgSy9TJyXk1Ei+sID4/OnvjjQzHBU6xlHRvESba30R4fvbl+BiH7IzbccrvEQ/Pva8FAT
	jPzyMC/RS+1oovAncQztQkYFsQdzhTPe96IUueheOYxChgvzQ6ohVDxw16OnXmTVW2Vc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186692-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-6.1 test] 186692: regressions - FAIL
X-Osstest-Failures:
    linux-6.1:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    linux-6.1:test-amd64-amd64-libvirt-qcow2:guest-start/debian.repeat:fail:heisenbug
    linux-6.1:test-armhf-armhf-xl-raw:debian-di-install:fail:heisenbug
    linux-6.1:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=7753af06eebfb56b44673bbfcb0b78d73a54ede9
X-Osstest-Versions-That:
    linux=99e6a620de00b96f059c9e7f14b5795ca0c6b125
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 06 Jul 2024 07:05:58 +0000

flight 186692 linux-6.1 real [real]
flight 186711 linux-6.1 real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186692/
http://logs.test-lab.xenproject.org/osstest/logs/186711/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 186532

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-libvirt-qcow2 19 guest-start/debian.repeat fail pass in 186711-retest
 test-armhf-armhf-xl-raw      12 debian-di-install   fail pass in 186711-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-raw     14 migrate-support-check fail in 186711 never pass
 test-armhf-armhf-xl-raw 15 saverestore-support-check fail in 186711 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186532
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186532
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186532
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186532
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186532
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186532
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                7753af06eebfb56b44673bbfcb0b78d73a54ede9
baseline version:
 linux                99e6a620de00b96f059c9e7f14b5795ca0c6b125

Last test of basis   186532  2024-06-27 12:12:34 Z    8 days
Testing same since   186692  2024-07-05 07:43:01 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Aaron Rainbolt <arainbolt@kfocus.org>
  Adrian Hunter <adrian.hunter@intel.com>
  Al Viro <viro@zeniv.linux.org.uk>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alex Bee <knaerzche@gmail.com>
  Alex Deucher <alexander.deucher@amd.com>
  Alexander Hölzl <alexander.hoelzl@gmx.net>
  Alexander Sverdlin <alexander.sverdlin@siemens.com>
  Alexei Starovoitov <ast@kernel.org>
  Alibek Omarov <a1ba.omarov@gmail.com>
  Andi Shyti <andi.shyti@kernel.org>
  Andi Shyti <andi.shyti@linux.intel.com>
  Andreas Gruenbacher <agruenba@redhat.com>
  Andrew Davis <afd@ti.com>
  Andrew Morton <akpm@linux-foundation.org>
  Andrii Nakryiko <andrii@kernel.org>
  Andy Chiu <andy.chiu@sifive.com>
  Anton Protopopov <aspsk@isovalent.com>
  Ard Biesheuvel <ardb@kernel.org>
  Arnd Bergmann <arnd@arndb.de>
  Arun Ramadoss <arun.ramadoss@microchip.com>
  Ashish Kalra <Ashish.Kalra@amd.com>
  Barry Song <v-songbaohua@oppo.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bing-Jhong Billy Jheng <billy@starlabs.sg>
  Christian A. Ehrhardt <lk@c--e.de>
  Christian König <christian.koenig@amd.com>
  Christoph Hellwig <hch@lst.de>
  Christophe Leroy <christophe.leroy@csgroup.eu>
  Clayton Casciato <majortomtosourcecontrol@gmail.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniil Dulov <d.dulov@aladdin.ru>
  David Lechner <dlechner@baylibre.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Dawei Li <dawei.li@shingroup.cn>
  Denis Arefev <arefev@swemel.ru>
  Dirk Su <dirk.su@canonical.com>
  Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
  Dmitry Torokhov <dmitry.torokhov@gmail.com>
  Dragan Simic <dsimic@manjaro.org>
  Elinor Montmasson <elinor.montmasson@savoirfairelinux.com>
  Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com>
  Eric Dumazet <edumazet@google.com>
  Erick Archer <erick.archer@outlook.com>
  Eugenio Pérez <eperezma@redhat.com>
  Fabrice Gasnier <fabrice.gasnier@foss.st.com>
  Fernando Yang <hagisf@usp.br>
  Florian Fainelli <florian.fainelli@broadcom.com>
  FUKAUMI Naoki <naoki@radxa.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Guo Ren <guoren@kernel.org>
  Hagar Hemdan <hagarhem@amazon.com>
  Hannes Reinecke <hare@kernel.org>
  Hannes Reinecke <hare@suse.de>
  Hans de Goede <hdegoede@redhat.com>
  Hans Verkuil <hverkuil-cisco@xs4all.nl>
  Heikki Krogerus <heikki.krogerus@linux.intel.com>
  Heiko Carstens <hca@linux.ibm.com> # s390
  Heiko Stuebner <heiko@sntech.de>
  Helge Deller <deller@gmx.de>
  Herbert Xu <herbert@gondor.apana.org.au>
  Huacai Chen <chenhuacai@loongson.cn>
  Huang-Huang Bao <i@eh5.me>
  Ido Schimmel <idosch@nvidia.com>
  Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
  Ingo Molnar <mingo@kernel.org>
  Jakub Kicinski <kuba@kernel.org>
  Jan Kara <jack@suse.cz>
  Jani Nikula <jani.nikula@intel.com>
  Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
  Jason Wang <jasowang@redhat.com>
  Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>
  Jeremy Kerr <jk@codeconstruct.com.au>
  Jesper Dangaard Brouer <hawk@kernel.org>
  Joachim Vandersmissen <git@jvdsn.com>
  Johan Hovold <johan+linaro@kernel.org>
  Johan Jonker <jbx6244@gmail.com>
  Johannes Berg <johannes.berg@intel.com>
  John Keeping <jkeeping@inmusicbrands.com>
  John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
  Jon Hunter <jonathanh@nvidia.com>
  Jonas Karlman <jonas@kwiboo.se>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
  Julia Zhang <Julia.Zhang@amd.com>
  Juntong Deng <juntong.deng@outlook.com>
  Kamal Dasu <kamal.dasu@broadcom.com>
  Kees Cook <kees@kernel.org>
  Keith Busch <kbusch@kernel.org>
  Kelsey Steele <kelseysteele@linux.microsoft.com>
  Kent Gibson <warthog618@gmail.com>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  Leon Romanovsky <leon@kernel.org>
  Lijo Lazar <lijo.lazar@amd.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linus Walleij <linus.walleij@linaro.org>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Liu Ying <victor.liu@nxp.com>
  luoxuanqiang <luoxuanqiang@kylinos.cn>
  Lyude Paul <lyude@redhat.com>
  Ma Ke <make24@iscas.ac.cn>
  Marc Kleine-Budde <mkl@pengutronix.de>
  Mario Limonciello <mario.limonciello@amd.com>
  Mark Brown <broonie@kernel.org>
  Mark Rutland <mark.rutland@arm.com>
  Martin KaFai Lau <martin.lau@kernel.org>
  Martin Schiller <ms@dev.tdt.de>
  Masahiro Yamada <masahiroy@kernel.org>
  Maxime Coquelin <maxime.coquelin@redhat.com>
  Meng Li <Meng.Li@windriver.com>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael S. Tsirkin <mst@redhat.com>
  Mimi Zohar <zohar@linux.ibm.com>
  Miquel Raynal <miquel.raynal@bootlin.com>
  Miri Korenblit <miriam.rachel.korenblit@intel.com>
  Naohiro Aota <naohiro.aota@wdc.com>
  Neal Cardwell <ncardwell@google.com>
  Neil Armstrong <neil.armstrong@linaro.org>
  Nick Child <nnac123@linux.ibm.com>
  Nikita Zhandarovich <n.zhandarovich@fintech.ru>
  Niklas Cassel <cassel@kernel.org>
  Niklas Schnelle <schnelle@linux.ibm.com>
  Nishanth Menon <nm@ti.com>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Oliver Neukum <oneukum@suse.com>
  Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Palmer Dabbelt <palmer@rivosinc.com>
  Paolo Abeni <pabeni@redhat.com>
  Pavel Machek (CIP) <pavel@denx.de>
  Petr Machata <petrm@nvidia.com>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Ricardo Ribalda <ribalda@chromium.org>
  Rob Herring <robh@kernel.org>
  Ron Economos <re@w6rz.net>
  Salvatore Bonaccorso <carnil@debian.org>
  Sasha Levin <sashal@kernel.org>
  Sean Anderson <sean.anderson@linux.dev>
  SeongJae Park <sj@kernel.org>
  Shigeru Yoshida <syoshida@redhat.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Simon Wunderlich <sw@simonwunderlich.de>
  Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Eichenberger <stefan.eichenberger@toradex.com>
  Sven Eckelmann <sven@narfation.org>
  syzbot+1a3cf6f08d68868f9db3@syzkaller.appspotmail.com
  Takashi Iwai <tiwai@suse.de>
  Thinh Nguyen <Thinh.Nguyen@synopsys.com>
  Thomas Bogendoerfer <tsbogend@alpha.franken.de>
  Thomas Gleixner <tglx@linutronix.de>
  Tianli Xiong <xiongtianli@loongson.cn>
  Tristram Ha <tristram.ha@microchip.com>
  Udit Kumar <u-kumar1@ti.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Uros Bizjak <ubizjak@gmail.com>
  Uwe Kleine-König <u.kleine-koenig@baylibre.com>
  Uwe Kleine-König <ukleinek@kernel.org>
  Vasileios Amoiridis <vassilisamir@gmail.com>
  Vasily Gorbik <gor@linux.ibm.com>
  Vijendar Mukunda <Vijendar.Mukunda@amd.com>
  Vitor Soares <vitor.soares@toradex.com>
  Wenchao Hao <haowenchao2@huawei.com>
  William Breathitt Gray <wbg@kernel.org>
  Wolfram Sang <wsa+renesas@sang-engineering.com>
  Wolfram Sang <wsa@kernel.org>
  yangge <yangge1116@126.com>
  Yeoreum Yun <yeoreum.yun@arm.com>
  Yunseong Kim <yskelg@gmail.com>
  Yuntao Liu <liuyuntao12@huawei.com>
  Yuntao Wang <ytcoode@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               fail    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 4091 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Jul 06 11:20:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Jul 2024 11:20:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754636.1163073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQ3Sp-0000yE-4Z; Sat, 06 Jul 2024 11:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754636.1163073; Sat, 06 Jul 2024 11:20: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 1sQ3Sp-0000y7-1T; Sat, 06 Jul 2024 11:20:23 +0000
Received: by outflank-mailman (input) for mailman id 754636;
 Sat, 06 Jul 2024 11:20:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ3Sn-0000xx-Eq; Sat, 06 Jul 2024 11:20:21 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ3Sn-0004GQ-BX; Sat, 06 Jul 2024 11:20:21 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ3Sm-00066r-Sw; Sat, 06 Jul 2024 11:20:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ3Sm-0003kH-SU; Sat, 06 Jul 2024 11:20: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ZWsbDTy6PuZtRfHktDV1txeus/vpgBgNK34yy0mxlOY=; b=BgD4fNraVjHL2vRn9WAKoHe2da
	aSCTbDw6oq2Dpyv8+a8e3jpdwR18Cl1oNAQKqbA9sISmRoQXqp9qWPek50XnCKNSX3I0GI+0W4zqd
	j7zOT+TsH+z85+KNZmyORoHcTareKezqMb6ZQp9hPIti3nYHAt7DFzEhp+oUjw0yvCYE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186706-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186706: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-dom0pvh-xl-amd:guest-start:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-raw:debian-di-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c2a66d0b58b9661037cfed6bf3f8122b3363ca38
X-Osstest-Versions-That:
    xen=7878756565427b310b0307c0aa3f6d682133e1d1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 06 Jul 2024 11:20:20 +0000

flight 186706 xen-unstable real [real]
flight 186714 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186706/
http://logs.test-lab.xenproject.org/osstest/logs/186714/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-dom0pvh-xl-amd 14 guest-start      fail pass in 186714-retest
 test-armhf-armhf-xl-raw      12 debian-di-install   fail pass in 186714-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-raw     14 migrate-support-check fail in 186714 never pass
 test-armhf-armhf-xl-raw 15 saverestore-support-check fail in 186714 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186671
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186671
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186671
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186671
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186671
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186671
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c2a66d0b58b9661037cfed6bf3f8122b3363ca38
baseline version:
 xen                  7878756565427b310b0307c0aa3f6d682133e1d1

Last test of basis   186671  2024-07-04 22:10:57 Z    1 days
Testing same since   186706  2024-07-05 18:25:53 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   7878756565..c2a66d0b58  c2a66d0b58b9661037cfed6bf3f8122b3363ca38 -> master


From xen-devel-bounces@lists.xenproject.org Sat Jul 06 14:36:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Jul 2024 14:36:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754672.1163087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQ6WK-0005v2-QZ; Sat, 06 Jul 2024 14:36:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754672.1163087; Sat, 06 Jul 2024 14:36: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 1sQ6WK-0005uv-Ml; Sat, 06 Jul 2024 14:36:12 +0000
Received: by outflank-mailman (input) for mailman id 754672;
 Sat, 06 Jul 2024 14:36:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ6WJ-0005ul-0B; Sat, 06 Jul 2024 14:36:11 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ6WI-0007v3-Ph; Sat, 06 Jul 2024 14:36:10 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ6WI-0005bz-Cu; Sat, 06 Jul 2024 14:36:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ6WI-0005bu-CT; Sat, 06 Jul 2024 14:36:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=DDFsgVaPg/uGk859atBJGGvZmT7fOgX+VKK5rtPM9oA=; b=fe8isFh/kn7LMV+xslxj5XMYTQ
	CCuPfuFICwaeoLrwwbv9meDJKEoL7AnVqA1DXGNxyV9+n4Y1jjShCV/5fLM/T6MdIBmEiC3x7rOzj
	Kmc7n6RSY1cN2fX0o051toL0daKULZM8iqV98PMF/mdSeLVqDN37viBvcFzpvrlWu0d8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186709-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186709: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=1dd28064d4164a4dc9096fd1a7990d2de15f2bb6
X-Osstest-Versions-That:
    linux=661e504db04c6b7278737ee3a9116738536b4ed4
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 06 Jul 2024 14:36:10 +0000

flight 186709 linux-linus real [real]
flight 186717 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186709/
http://logs.test-lab.xenproject.org/osstest/logs/186717/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 186683

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-examine      8 reboot              fail pass in 186717-retest
 test-armhf-armhf-xl           8 xen-boot            fail pass in 186717-retest

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 186683

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl         15 migrate-support-check fail in 186717 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 186717 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186683
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186683
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186683
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186683
 test-armhf-armhf-xl-multivcpu  8 xen-boot                     fail like 186683
 test-armhf-armhf-libvirt-vhd  8 xen-boot                     fail  like 186683
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186683
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186683
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                1dd28064d4164a4dc9096fd1a7990d2de15f2bb6
baseline version:
 linux                661e504db04c6b7278737ee3a9116738536b4ed4

Last test of basis   186683  2024-07-05 04:06:57 Z    1 days
Testing same since   186709  2024-07-05 23:42:39 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Deucher <alexander.deucher@amd.com>
  Alvin Lee <alvin.lee2@amd.com>
  Atish Patra <atishp@rivosinc.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bjorn Helgaas <bhelgaas@google.com>
  Boris Brezillon <boris.brezillon@collabora.com>
  Charlie Jenkins <charlie@rivosinc.com>
  Christian Borntraeger <borntraeger@linux.ibm.com>
  Daniel Vetter <daniel.vetter@ffwll.ch>
  Daniel Wheeler <daniel.wheeler@amd.com>
  Dmitry Torokhov <dmitry.torokhov@gmail.com>
  Enrico Bravi <enrico.bravi@polito.it>
  Fangzhi Zuo <Jerry.Zuo@amd.com>
  Geert Uytterhoeven <geert@linux-m68k.org>
  Hamza Mahfooz <hamza.mahfooz@amd.com>
  Imre Deak <imre.deak@intel.com>
  Jani Nikula <jani.nikula@intel.com>
  Jarkko Sakkinen <jarkko@kernel.org>
  Jeff Layton <jlayton@kernel.org>
  Jerry Zuo <jerry.zuo@amd.com>
  John Schoenick <johns@valvesoftware.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linus Walleij <linus.walleij@linaro.org>
  Lyude Paul <lyude@redhat.com>
  Lóránd Horváth <lorand.horvath82@gmail.com>
  Ma Ke <make24@iscas.ac.cn>
  Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
  Martin Schiller <ms@dev.tdt.de>
  Matt Roper <matthew.d.roper@intel.com>
  Matthew Auld <matthew.auld@intel.com>
  Matthew Schwartz <mattschwartz@gwu.edu>
  Michael Ellerman <mpe@ellerman.id.au> # ppc
  Mika Kahola <mika.kahola@intel.com>
  Mimi Zohar <zohar@linux.ibm.com>
  Palmer Dabbelt <palmer@rivosinc.com>
  Paolo Bonzini <pbonzini@redhat.com>
  Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
  Puranjay Mohan <puranjay@kernel.org>
  Rodrigo Siqueira <rodrigo.siqueira@amd.com>
  Roman Li <Roman.Li@amd.com>
  Samuel Holland <samuel.holland@sifive.com>
  Shiji Yang <yangshiji66@outlook.com>
  Song Shuai <songshuaishuai@tinylab.org>
  Thomas Hellstrom <thomas.hellstrom@linux.intel.com>
  Thomas Hellström <thomas.hellstrom@linux.intel.com>
  Thomas Huth <thuth@redhat.com>
  Thomas Zimmermann <tzimmermann@suse.de>
  Tom Chung <chiahsuan.chung@amd.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 1200 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Jul 06 15:39:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Jul 2024 15:39:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754697.1163096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQ7VO-0004pI-7n; Sat, 06 Jul 2024 15:39:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754697.1163096; Sat, 06 Jul 2024 15:39:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQ7VO-0004pB-4y; Sat, 06 Jul 2024 15:39:18 +0000
Received: by outflank-mailman (input) for mailman id 754697;
 Sat, 06 Jul 2024 15:39:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ7VM-0004p1-I6; Sat, 06 Jul 2024 15:39:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ7VM-0000YX-Eu; Sat, 06 Jul 2024 15:39:16 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ7VM-0008Mj-2B; Sat, 06 Jul 2024 15:39:16 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQ7VM-0007C1-1Q; Sat, 06 Jul 2024 15:39:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=aMJZoSlDos6qAffc4FV4hcKF6bLuAD1lrG/UfipViZM=; b=SIWEmI3s7FJudJ7DGVesfSOrt5
	ABIXosbX4428iX8DTgJq+2cSZNQb+/8rpQErD7FTfbqYaBUq1F25KikhBxTqkNTJSiQEAHRMDKeGh
	+ISPmxsvof33+MVrntKiW1FFqUUkolqvgIsuqVIdfiQDaN9T1VNZCVV9f1UFCS7XOfNM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186710-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186710: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=e40a533118efdc3d5f6fd1dcc9bb8143b54691e2
X-Osstest-Versions-That:
    libvirt=95591306930833eb28993d5c0dc7408466c38e71
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 06 Jul 2024 15:39:16 +0000

flight 186710 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186710/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186684
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              e40a533118efdc3d5f6fd1dcc9bb8143b54691e2
baseline version:
 libvirt              95591306930833eb28993d5c0dc7408466c38e71

Last test of basis   186684  2024-07-05 04:18:44 Z    1 days
Testing same since   186710  2024-07-06 04:22:20 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Daniel P. Berrangé <berrange@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   9559130693..e40a533118  e40a533118efdc3d5f6fd1dcc9bb8143b54691e2 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Jul 06 19:26:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 06 Jul 2024 19:26:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754721.1163106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQB2e-0006Ee-D0; Sat, 06 Jul 2024 19:25:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754721.1163106; Sat, 06 Jul 2024 19:25:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQB2e-0006EX-AB; Sat, 06 Jul 2024 19:25:52 +0000
Received: by outflank-mailman (input) for mailman id 754721;
 Sat, 06 Jul 2024 19:25:50 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQB2c-0006EN-Ld; Sat, 06 Jul 2024 19:25:50 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQB2c-000570-IG; Sat, 06 Jul 2024 19:25:50 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQB2c-0000N9-61; Sat, 06 Jul 2024 19:25:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQB2c-0000ys-5U; Sat, 06 Jul 2024 19:25:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=9KVpAF5wFmAlZLEtjsuBhel7B5K9WdPbNFkIQ7/UCLk=; b=12Ef5EJOSMc3p8MNMZArK4AXmY
	Aiy0KENvhQn725qX+Ixp75hohxlSwpX9npcz0a5PuZ+ynlXoD58ZyB24W6RNezee7ElDP349tpFHk
	qXaFRsZ4drW3yvEVfgRc0aabLC9fN1pYWwNfz6LnieOrbqBFaXaR5OplDFMId7aqHrpE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186712-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-6.1 test] 186712: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-6.1:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=7753af06eebfb56b44673bbfcb0b78d73a54ede9
X-Osstest-Versions-That:
    linux=99e6a620de00b96f059c9e7f14b5795ca0c6b125
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 06 Jul 2024 19:25:50 +0000

flight 186712 linux-6.1 real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186712/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186532
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186532
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186532
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186532
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186532
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186532
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                7753af06eebfb56b44673bbfcb0b78d73a54ede9
baseline version:
 linux                99e6a620de00b96f059c9e7f14b5795ca0c6b125

Last test of basis   186532  2024-06-27 12:12:34 Z    9 days
Testing same since   186692  2024-07-05 07:43:01 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Aaron Rainbolt <arainbolt@kfocus.org>
  Adrian Hunter <adrian.hunter@intel.com>
  Al Viro <viro@zeniv.linux.org.uk>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alex Bee <knaerzche@gmail.com>
  Alex Deucher <alexander.deucher@amd.com>
  Alexander Hölzl <alexander.hoelzl@gmx.net>
  Alexander Sverdlin <alexander.sverdlin@siemens.com>
  Alexei Starovoitov <ast@kernel.org>
  Alibek Omarov <a1ba.omarov@gmail.com>
  Andi Shyti <andi.shyti@kernel.org>
  Andi Shyti <andi.shyti@linux.intel.com>
  Andreas Gruenbacher <agruenba@redhat.com>
  Andrew Davis <afd@ti.com>
  Andrew Morton <akpm@linux-foundation.org>
  Andrii Nakryiko <andrii@kernel.org>
  Andy Chiu <andy.chiu@sifive.com>
  Anton Protopopov <aspsk@isovalent.com>
  Ard Biesheuvel <ardb@kernel.org>
  Arnd Bergmann <arnd@arndb.de>
  Arun Ramadoss <arun.ramadoss@microchip.com>
  Ashish Kalra <Ashish.Kalra@amd.com>
  Barry Song <v-songbaohua@oppo.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bing-Jhong Billy Jheng <billy@starlabs.sg>
  Christian A. Ehrhardt <lk@c--e.de>
  Christian König <christian.koenig@amd.com>
  Christoph Hellwig <hch@lst.de>
  Christophe Leroy <christophe.leroy@csgroup.eu>
  Clayton Casciato <majortomtosourcecontrol@gmail.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniil Dulov <d.dulov@aladdin.ru>
  David Lechner <dlechner@baylibre.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Dawei Li <dawei.li@shingroup.cn>
  Denis Arefev <arefev@swemel.ru>
  Dirk Su <dirk.su@canonical.com>
  Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
  Dmitry Torokhov <dmitry.torokhov@gmail.com>
  Dragan Simic <dsimic@manjaro.org>
  Elinor Montmasson <elinor.montmasson@savoirfairelinux.com>
  Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com>
  Eric Dumazet <edumazet@google.com>
  Erick Archer <erick.archer@outlook.com>
  Eugenio Pérez <eperezma@redhat.com>
  Fabrice Gasnier <fabrice.gasnier@foss.st.com>
  Fernando Yang <hagisf@usp.br>
  Florian Fainelli <florian.fainelli@broadcom.com>
  FUKAUMI Naoki <naoki@radxa.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Guo Ren <guoren@kernel.org>
  Hagar Hemdan <hagarhem@amazon.com>
  Hannes Reinecke <hare@kernel.org>
  Hannes Reinecke <hare@suse.de>
  Hans de Goede <hdegoede@redhat.com>
  Hans Verkuil <hverkuil-cisco@xs4all.nl>
  Heikki Krogerus <heikki.krogerus@linux.intel.com>
  Heiko Carstens <hca@linux.ibm.com> # s390
  Heiko Stuebner <heiko@sntech.de>
  Helge Deller <deller@gmx.de>
  Herbert Xu <herbert@gondor.apana.org.au>
  Huacai Chen <chenhuacai@loongson.cn>
  Huang-Huang Bao <i@eh5.me>
  Ido Schimmel <idosch@nvidia.com>
  Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
  Ingo Molnar <mingo@kernel.org>
  Jakub Kicinski <kuba@kernel.org>
  Jan Kara <jack@suse.cz>
  Jani Nikula <jani.nikula@intel.com>
  Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
  Jason Wang <jasowang@redhat.com>
  Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>
  Jeremy Kerr <jk@codeconstruct.com.au>
  Jesper Dangaard Brouer <hawk@kernel.org>
  Joachim Vandersmissen <git@jvdsn.com>
  Johan Hovold <johan+linaro@kernel.org>
  Johan Jonker <jbx6244@gmail.com>
  Johannes Berg <johannes.berg@intel.com>
  John Keeping <jkeeping@inmusicbrands.com>
  John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
  Jon Hunter <jonathanh@nvidia.com>
  Jonas Karlman <jonas@kwiboo.se>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
  Julia Zhang <Julia.Zhang@amd.com>
  Juntong Deng <juntong.deng@outlook.com>
  Kamal Dasu <kamal.dasu@broadcom.com>
  Kees Cook <kees@kernel.org>
  Keith Busch <kbusch@kernel.org>
  Kelsey Steele <kelseysteele@linux.microsoft.com>
  Kent Gibson <warthog618@gmail.com>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  Leon Romanovsky <leon@kernel.org>
  Lijo Lazar <lijo.lazar@amd.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linus Walleij <linus.walleij@linaro.org>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Liu Ying <victor.liu@nxp.com>
  luoxuanqiang <luoxuanqiang@kylinos.cn>
  Lyude Paul <lyude@redhat.com>
  Ma Ke <make24@iscas.ac.cn>
  Marc Kleine-Budde <mkl@pengutronix.de>
  Mario Limonciello <mario.limonciello@amd.com>
  Mark Brown <broonie@kernel.org>
  Mark Rutland <mark.rutland@arm.com>
  Martin KaFai Lau <martin.lau@kernel.org>
  Martin Schiller <ms@dev.tdt.de>
  Masahiro Yamada <masahiroy@kernel.org>
  Maxime Coquelin <maxime.coquelin@redhat.com>
  Meng Li <Meng.Li@windriver.com>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael S. Tsirkin <mst@redhat.com>
  Mimi Zohar <zohar@linux.ibm.com>
  Miquel Raynal <miquel.raynal@bootlin.com>
  Miri Korenblit <miriam.rachel.korenblit@intel.com>
  Naohiro Aota <naohiro.aota@wdc.com>
  Neal Cardwell <ncardwell@google.com>
  Neil Armstrong <neil.armstrong@linaro.org>
  Nick Child <nnac123@linux.ibm.com>
  Nikita Zhandarovich <n.zhandarovich@fintech.ru>
  Niklas Cassel <cassel@kernel.org>
  Niklas Schnelle <schnelle@linux.ibm.com>
  Nishanth Menon <nm@ti.com>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Oliver Neukum <oneukum@suse.com>
  Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Palmer Dabbelt <palmer@rivosinc.com>
  Paolo Abeni <pabeni@redhat.com>
  Pavel Machek (CIP) <pavel@denx.de>
  Petr Machata <petrm@nvidia.com>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Ricardo Ribalda <ribalda@chromium.org>
  Rob Herring <robh@kernel.org>
  Ron Economos <re@w6rz.net>
  Salvatore Bonaccorso <carnil@debian.org>
  Sasha Levin <sashal@kernel.org>
  Sean Anderson <sean.anderson@linux.dev>
  SeongJae Park <sj@kernel.org>
  Shigeru Yoshida <syoshida@redhat.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Simon Wunderlich <sw@simonwunderlich.de>
  Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
  Stefan Berger <stefanb@linux.ibm.com>
  Stefan Eichenberger <stefan.eichenberger@toradex.com>
  Sven Eckelmann <sven@narfation.org>
  syzbot+1a3cf6f08d68868f9db3@syzkaller.appspotmail.com
  Takashi Iwai <tiwai@suse.de>
  Thinh Nguyen <Thinh.Nguyen@synopsys.com>
  Thomas Bogendoerfer <tsbogend@alpha.franken.de>
  Thomas Gleixner <tglx@linutronix.de>
  Tianli Xiong <xiongtianli@loongson.cn>
  Tristram Ha <tristram.ha@microchip.com>
  Udit Kumar <u-kumar1@ti.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Uros Bizjak <ubizjak@gmail.com>
  Uwe Kleine-König <u.kleine-koenig@baylibre.com>
  Uwe Kleine-König <ukleinek@kernel.org>
  Vasileios Amoiridis <vassilisamir@gmail.com>
  Vasily Gorbik <gor@linux.ibm.com>
  Vijendar Mukunda <Vijendar.Mukunda@amd.com>
  Vitor Soares <vitor.soares@toradex.com>
  Wenchao Hao <haowenchao2@huawei.com>
  William Breathitt Gray <wbg@kernel.org>
  Wolfram Sang <wsa+renesas@sang-engineering.com>
  Wolfram Sang <wsa@kernel.org>
  yangge <yangge1116@126.com>
  Yeoreum Yun <yeoreum.yun@arm.com>
  Yunseong Kim <yskelg@gmail.com>
  Yuntao Liu <liuyuntao12@huawei.com>
  Yuntao Wang <ytcoode@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   99e6a620de00..7753af06eebf  7753af06eebfb56b44673bbfcb0b78d73a54ede9 -> tested/linux-6.1


From xen-devel-bounces@lists.xenproject.org Sun Jul 07 00:15:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Jul 2024 00:15:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754812.1163117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQFYq-0003ya-1N; Sun, 07 Jul 2024 00:15:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754812.1163117; Sun, 07 Jul 2024 00: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 1sQFYp-0003yT-Ug; Sun, 07 Jul 2024 00:15:23 +0000
Received: by outflank-mailman (input) for mailman id 754812;
 Sun, 07 Jul 2024 00:15:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQFYn-0003yJ-TI; Sun, 07 Jul 2024 00:15:21 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQFYn-0002H5-Pj; Sun, 07 Jul 2024 00:15:21 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQFYn-0007DL-Cp; Sun, 07 Jul 2024 00:15:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQFYn-00019J-CA; Sun, 07 Jul 2024 00:15:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=5eP8WIqD915U8Z75qgNOzX/9rN1Hu3URAkz+/i2bcuU=; b=RGY3LL33rNWTN6B+44hj6yWGma
	Hy1j9e4AJNrbZ/F9cqcRTHB9e3QB0T+t145f7e6xsqNWSTZ6g9U85ql7RS3J42AhwlZHoVaubSS27
	F7rG1j561dGEu/vsgL4QljKLFAO6pS5oo5omgZRH3Jhp+Hjf7NUlVZTxXjj1DGjdFygM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186716-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186716: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-dom0pvh-xl-amd:guest-start:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-raw:host-ping-check-xen:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-raw:debian-di-install:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c2a66d0b58b9661037cfed6bf3f8122b3363ca38
X-Osstest-Versions-That:
    xen=c2a66d0b58b9661037cfed6bf3f8122b3363ca38
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Jul 2024 00:15:21 +0000

flight 186716 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186716/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-dom0pvh-xl-amd 14 guest-start   fail in 186706 pass in 186716
 test-armhf-armhf-xl-raw      10 host-ping-check-xen        fail pass in 186706
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186706

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-raw  12 debian-di-install fail in 186706 blocked in 186716
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186706
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186706
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186706
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186706
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186706
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186706
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c2a66d0b58b9661037cfed6bf3f8122b3363ca38
baseline version:
 xen                  c2a66d0b58b9661037cfed6bf3f8122b3363ca38

Last test of basis   186716  2024-07-06 11:22:48 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sun Jul 07 02:12:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Jul 2024 02:12:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754824.1163127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQHNe-0003BG-5L; Sun, 07 Jul 2024 02:11:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754824.1163127; Sun, 07 Jul 2024 02:11:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQHNe-0003B9-2H; Sun, 07 Jul 2024 02:11:58 +0000
Received: by outflank-mailman (input) for mailman id 754824;
 Sun, 07 Jul 2024 02: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=EiCv=OH=outlook.com=mhklinux@srs-se1.protection.inumbo.net>)
 id 1sQHNc-0003B3-K4
 for xen-devel@lists.xenproject.org; Sun, 07 Jul 2024 02:11:56 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12olkn20808.outbound.protection.outlook.com
 [2a01:111:f403:2c18::808])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46cddaeb-3c06-11ef-bbfb-fd08da9f4363;
 Sun, 07 Jul 2024 04:11:54 +0200 (CEST)
Received: from SN6PR02MB4157.namprd02.prod.outlook.com (2603:10b6:805:33::23)
 by CH3PR02MB10381.namprd02.prod.outlook.com (2603:10b6:610:20b::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.34; Sun, 7 Jul
 2024 02:11:50 +0000
Received: from SN6PR02MB4157.namprd02.prod.outlook.com
 ([fe80::cedd:1e64:8f61:b9df]) by SN6PR02MB4157.namprd02.prod.outlook.com
 ([fe80::cedd:1e64:8f61:b9df%5]) with mapi id 15.20.7741.033; Sun, 7 Jul 2024
 02:11: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: 46cddaeb-3c06-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DEuPTdm92pl1AfYDhNvuUxV5FFuL1D021EzNRGtu5P+pGE0wSJqeI+7ZHpn+w+E2hk72s/oqCGomvdATIn24xqCflY62uvpo3cC1u+ZjUYd9xZ07HyvhSeagFlYZVwA22eBYkqKpRwFQhqVNWqVZbO69mQh0B6A4xyte0YpgZaHgWz93HGzVHdYO0gnwAxoF6rBbEHXjSAo+oGwDcCe/e79qnYPSdoByIRgM44/6UPiwWBa2yzf7uFmfvgsuR9WJCrzoM+RMysEY560O1QEllIeAOamfSlL/oaq4jQ9SiConwQE67X6uiKt7J2NjQXP9WasukSLIa6RTNIQQEj13aA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1Jvd0bTA13j1zceTCtWv/2Yv9SQbo4O06fs4qCS8zQ0=;
 b=M++2ifZoyiUht0TVSbFV3lMJiFFIqUxTcs+FaySV9EQEizbSAqOvJQHSUK+XsgfGFTNV0lCUjoz0YSM2NaX1MGVTxtXjm1yDwaibXtn7dycwsNjoz1WXmMiUC6DBYPbZrDc5ZasTTO7rDrcbkuW1906IOkQsdDtvrBZaejx+Zf9uneTmEAt65cw60ihzyYooT63dL/V9NzkFK60OX737XKPCfqh/boH5asvuTtkZb8R05Et1Pc3C3tzl1ZDHzxwW1W5R5Xzc39v4qIOFDUeyu9NMUoWJn6ULlc9N3FGknTB/fqJwC+6V2yDt/EE+6Z+2BZz/9JEsE0KSwECqzUgc7A==
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=1Jvd0bTA13j1zceTCtWv/2Yv9SQbo4O06fs4qCS8zQ0=;
 b=giw6caZgMcDBDZoeEtxTNZMu2Cwr3StkohQsZhm2quBEoP2BrTil0XRCN+elraFOcHubMin7bF8yAHkHjBbGuk/bFU1sB+rADXpPxeI1iYsUJwgveJUGJTPjlByvtRFjvHTch/58M0ABlTTYwjVuUHaSswFWeSATj54tYo12032pFN4qvO3aWK2Yfu3p3Juf7gnqq+cUXtN2XnGRwjSHedC+03ctLHMs04U5tLJs4fgB19z/h+PUkCrr72FQbbWT4uvTMsoi48kNzFJmgoKbJhMhVvRKJ27Klo24TfyhGD8sW4uTCfCsDd9Xv6H18t8XehxpoX8WQXQv8B67J07lRQ==
From: Michael Kelley <mhklinux@outlook.com>
To: Christoph Hellwig <hch@lst.de>
CC: "robin.murphy@arm.com" <robin.murphy@arm.com>, "joro@8bytes.org"
	<joro@8bytes.org>, "will@kernel.org" <will@kernel.org>, "jgross@suse.com"
	<jgross@suse.com>, "sstabellini@kernel.org" <sstabellini@kernel.org>,
	"oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>, "petr@tesarici.cz"
	<petr@tesarici.cz>, "iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v2 1/1] swiotlb: Reduce swiotlb pool lookups
Thread-Topic: [PATCH v2 1/1] swiotlb: Reduce swiotlb pool lookups
Thread-Index: AQHay9fgMpKn4lnf90SYtF8Z1AfgLLHpORSAgAErN7A=
Date: Sun, 7 Jul 2024 02:11:48 +0000
Message-ID:
 <SN6PR02MB4157141FBF8252BDEAD831C1D4D92@SN6PR02MB4157.namprd02.prod.outlook.com>
References: <20240701165746.1358-1-mhklinux@outlook.com>
 <20240706055019.GA13280@lst.de>
In-Reply-To: <20240706055019.GA13280@lst.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-tmn: [DZV6E/3NlpnHAc91A498CCzQ/Jkeeipi]
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SN6PR02MB4157:EE_|CH3PR02MB10381:EE_
x-ms-office365-filtering-correlation-id: 64cf174e-87b4-46bf-a60b-08dc9e2a2893
x-microsoft-antispam:
 BCL:0;ARA:14566002|461199028|19110799003|8060799006|102099032|4302099013|3412199025|440099028|56899033|1602099012;
x-microsoft-antispam-message-info:
 MFaHtVYRplTq2A2QuYz1gL9hpvSogb7so0QAm3ObMEpqHzFuzAucvgOjdgCqYZ2JSphYPYBStL7ttMG2Trv8riMNP0nI9dfr+xFhjkb2KzEFJaMZMPcojAqzneJBghwbSgAI419/rBRJ/IyQ5D4BJu+HzmD4ccwTU2xZQpA7FTD70eESJE8W6coV24pMhxUVoS00GKbP/FXwnDWZ0z61gqZCZNIKqsmiSZ7GE/05KbyUwgBtxTuiJMDEcoKsW75oYDnIqrgOY4UOJ5r294dQJgiYZ8DYWgqPu38IIa7zgfqbGFLFE2yNG+A7KW4kObWwtHzSbXyimLKhusIC5Ygh0/T5ctHcKk5Wtwlk/wOWBN8oTuSBKfOY9c6w2zl72QturB+g10/t3TJs53S6eIN00AuXcs4ysEcsRsDxNuPgLqU/yMq+og6udrxUoP6XLZVJph5TXDCVj19uE1uYZ9ntSrgiNgGmOwy2U24hUJD/c6x0cv+cK4cJT22J9sR4r2xP0umgfZE+cpVnWMrHZUBeCpMIWYDvIzTib37YTW9qeG3WcJq5zGVXAHSD2un55Y3Tw6K2usIRYypitc3ELFhOF0GRCRxSpjAGnPdVYBhn7VZTB+1qkNTjYe90i5QyYO23KXV52dVe98CtP28bQQESnSTMhh+r6jG9NiP3lYXASB//YF4ss4wT92FxXAS2Rj9mv0FZIrDbaOKXGBiim5zMjEjwRWAweR+1PchD2GgWRCw67W1TCsh6NWh6j8yaTcqE
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-2?Q?yI30LpH8L/942PKTdAwTPIuFKyjW9tw+POrJuO0ODmv61j/OaMyJm+lX5Y?=
 =?iso-8859-2?Q?/2OUJbi5Je5m3tsM3/pYRz2/534oj9Mz1sOBOKn374vwHxzkCVe0WEEC+W?=
 =?iso-8859-2?Q?W+Y4wTl/dKUyTFs/1yMbKltrgyNav45ne8GN02OeF3zhcTmXujJYSQ7NCB?=
 =?iso-8859-2?Q?kuU5rDIf1D9WiryT4Ds7PIJ9zU+g6ZZMn18xeTZl79RYmLUdF9tP8+foQ5?=
 =?iso-8859-2?Q?PyTzufe0fXB2Rq04+6xUpA5Vam3IjipbiIb/VJ6HoaTcKa8RQel8ByryNW?=
 =?iso-8859-2?Q?DL7TzPGyNYp207qe8VIsIzNL//yhEywzmbs6X9gv/FqZFrMWPdKRcDlSK4?=
 =?iso-8859-2?Q?3HQqADs6efuKOmwGtEJdOpG5uro7WFnmW3BJtInKQmq8/cOTD3s/gpSpGq?=
 =?iso-8859-2?Q?rA8p8uPo3kQHKtTy/SbCG9Bj2DTQMfuRU7Wy/F3c1HA8q7afOTXHdE8Nh5?=
 =?iso-8859-2?Q?Wh7HfTjhqV4x6b1FKa9xg2RIjDQ3vSE5/x9d97Yi5yC9oHT5r9SFJMDgBu?=
 =?iso-8859-2?Q?kMczY/QOXs7svrQmxD5vlDzn+kci8HzoCyt2JnRt1zioWpLe7h7hxJ0n6i?=
 =?iso-8859-2?Q?YtPaL3f90IOjIAjkt/ZmNYX3BOq6cEw4GP9s6ggVJdDr5MdMIl+oTI8dHU?=
 =?iso-8859-2?Q?gTsDGXUYtCw5ucr3E7OlIuKwjLGI+Yrfx4RVvwIdVJiqt74MwBcG82WB8X?=
 =?iso-8859-2?Q?M085WTUW7dmXa8uSDfwwOm8KyxyAkL/tdK8n2VGvP2aH/4x321qJLo/PAZ?=
 =?iso-8859-2?Q?UZW9LACHQTF0DtK7L8A1DTIgH+91XtmS5W5BdTi8kErU/UjkPu6ZuX4tCU?=
 =?iso-8859-2?Q?LFfz2oxqfX0pntsv+TvMXIDeFPZXHkHwG/nP6mo9HREzwT7JQQFuZOJzyg?=
 =?iso-8859-2?Q?7e48c6ObgOW6UAk4q21gFpgL8w/84BzqT/93U7nQbFXtdz8zNEzZBNOI6f?=
 =?iso-8859-2?Q?c80LKvEdJqse07phPV14BIwR9FK+Kkok56VZIPEbFeG9elZ/uBc0qavmj7?=
 =?iso-8859-2?Q?Slcwo2ee86+x1iGPy+/KYmliuHx+hzKfbZxe5EnKtsb6waLh7bfKpk4Llj?=
 =?iso-8859-2?Q?7PJgi0Qhu4j1JU0zX9fEtFJo8HKxw6Ut7fwt6cpt2SW8skZsPOwmd4HCAQ?=
 =?iso-8859-2?Q?87RgkZJHqgxRwYbHG1PYKOQWho1+xpxCwB9o4vaDOHLndoZ4djOPyTj/Mq?=
 =?iso-8859-2?Q?8E/3CGTs7eI9iFCIov/TSwheXy0RDq+90f4Sad86VMO85FQCQiXKCD0vzw?=
 =?iso-8859-2?Q?DjWUF1FknFbDvrRAGESS6Zs8YlG6vmcxR4hH2i0IU=3D?=
Content-Type: text/plain; charset="iso-8859-2"
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: 64cf174e-87b4-46bf-a60b-08dc9e2a2893
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jul 2024 02:11:48.5826
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR02MB10381

From: Christoph Hellwig <hch@lst.de> Sent: Friday, July 5, 2024 10:50 PM
>=20
> Hi Michael,
>=20
> I like the idea behind this, but can you respin it to avoid some of
> the added code duplication.  We have a lot of this pattern:
>=20
> 	pool =3D swiotlb_find_pool(dev, paddr);
> 	if (pool)
> 		swiotlb_foo(dev, ...
>=20
> duplicated in all three swiotlb users.  If we rename the original
> swiotlb_foo to __swiotlb_foo and add a little inline wrapper this is
> de-duplicated and also avoids exposing swiotlb_find_pool to the
> callers.

This works pretty well. It certainly avoids the messiness of declaring
a "pool" local variable and needing a separate assignment before the
"if" statement, in each of the 9 call sites. The small downside is that
it looks like a swiotlb function is called every time, even though
there's usually an inline bailout. But that pattern occurs throughout
the kernel, so not a big deal.

I initially coded this change as a separate patch that goes first. But
the second patch ends up changing about 20 lines that are changed
by the first patch. It's hard to cleanly tease them apart. So I've gone
back to a single unified patch. But let me know if you think it's worth
the extra churn to break them apart.

>=20
> If we then stub out swiotlb_find_pool to return NULL for !CONFIG_SWIOTLB,
> we also don't need extra stubs for all the __swiotlb_ helpers as the
> compiler will eliminate the calls as dead code.

Yes, this works as long as the declarations for the __swiotlb_foo
functions are *not* under CONFIG_SWIOTLB. But when compiling with
!CONFIG_SWIOTLB on arm64 with gcc-8.5.0, two tangentially related
compile errors occur. iommu_dma_map_page() references
swiotlb_tlb_map_single(). The declaration for the latter is under
CONFIG_SWIOTLB. A similar problem occurs with dma_direct_map_page()
and swiotlb_map(). Do later versions of gcc not complain when the
reference is in dead code? Or are these just bugs that occurred because
!CONFIG_SWIOTLB is rare? If the latter, I can submit a separate patch to
move the declarations out from under CONFIG_SWIOTLB.

>=20
> I might be missing something, but what is the reason for using the
> lower-level __swiotlb_find_pool in swiotlb_map and xen_swiotlb_map_page?
> I can't see a reason why the simple checks in swiotlb_find_pool itself
> are either wrong or a performance problem there. =20

Yes, swiotlb_find_pool() could be used instead of __swiotlb_find_pool().

> Because if we don't
> need these separate calls we can do away with __swiotlb_find_pool
> for !CONFIG_SWIOTLB_DYNAMIC and simplify swiotlb_find_pool quite
> a bit like this:
>=20
> 	...
>=20
> 	if (!mem)
> 		return NULL;
>=20
> 	if (IS_ENABLED(CONFIG_SWIOTLB_DYNAMIC)) {

The "IS_ENABLED" doesn't work because the dma_uses_io_tlb
field in struct dev is under CONFIG_SWIOTLB_DYNAMIC. I guess
it could be moved out, but that's going further afield. So I'm back
to using #ifdef.

> 		smp_rmb();
> 		if (!READ_ONCE(dev->dma_uses_io_tlb))
> 			return NULL;
> 		return __swiotlb_find_pool(dev, paddr);
> 	}
>=20
> 	if (paddr < mem->defpool.start || paddr >=3D mem->defpool.end)
> 		return NULL;
> 	return &dev->dma_io_tlb_mem->defpool;

Petr Tesa=F8=EDk had commented [1] on my original RFC suggesting that
__swiotlb_find_pool() be used here instead of open coding it. With
the changes you suggest, __swiotlb_find_pool() is needed only in
the CONFIG_SWIOTLB_DYNAMIC case, and I would be fine with just
open coding the address of defpool here. Petr -- are you OK with
removing __swiotlb_find_pool when !CONFIG_SWIOTLB_DYNAMIC,
since this is the only place it would be used?

>=20
>=20
> While you're at it please fix the > 80 character lines as this patch
> is adding plenty.

Many cases already go away with your first suggestion above,
but I'll fix the others.

Michael

[1] https://lore.kernel.org/linux-iommu/20240627092049.1dbec746@meshulam.te=
sarici.cz/


From xen-devel-bounces@lists.xenproject.org Sun Jul 07 02:36:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Jul 2024 02:36:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754830.1163137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQHl0-0005ur-WB; Sun, 07 Jul 2024 02:36:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754830.1163137; Sun, 07 Jul 2024 02: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 1sQHl0-0005uj-RK; Sun, 07 Jul 2024 02:36:06 +0000
Received: by outflank-mailman (input) for mailman id 754830;
 Sun, 07 Jul 2024 02: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=EiCv=OH=outlook.com=mhklinux@srs-se1.protection.inumbo.net>)
 id 1sQHkz-0005ud-5q
 for xen-devel@lists.xenproject.org; Sun, 07 Jul 2024 02:36:05 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azolkn190100000.outbound.protection.outlook.com
 [2a01:111:f403:d10b::])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a614447b-3c09-11ef-bbfb-fd08da9f4363;
 Sun, 07 Jul 2024 04:36:02 +0200 (CEST)
Received: from SN6PR02MB4157.namprd02.prod.outlook.com (2603:10b6:805:33::23)
 by IA3PR02MB10675.namprd02.prod.outlook.com (2603:10b6:208:50f::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.34; Sun, 7 Jul
 2024 02:35:58 +0000
Received: from SN6PR02MB4157.namprd02.prod.outlook.com
 ([fe80::cedd:1e64:8f61:b9df]) by SN6PR02MB4157.namprd02.prod.outlook.com
 ([fe80::cedd:1e64:8f61:b9df%5]) with mapi id 15.20.7741.033; Sun, 7 Jul 2024
 02: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: a614447b-3c09-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QFY9pvH5INRGJH/ECOsu2d6q6NwbNckq4+Hd0jsOSx1P5t1OPx33NpSnnWE3eOXJgC0zgC+CXk66Zlq1XO6JcUr2uQLS/3QzejRzhYaX6t+OELY7pvwfvPNaCR/6LEu3FslvVHj4B+cMKrIBFnigF0839pfuCWcBLVCLTLmYEDhUyr9iWOeiea8HrJjohAcIGBil9WsmtXWXQy4zFnHkrU8S9+JNvmmG9bYSL4Bw2RXHTCJQiCUsCJ8hzqB/gWIXngIn1rqofI4GHeiPuy61fk3z1P/zVYkhOZNdFzJTI/NlkYw5ns2pRNwcxfL9q6/gRakeyzYw2VkWGQJFuX13IQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/KzU+O3ozSDccvpcJDc7YDBn1Pzu2augdysaGFsYEoI=;
 b=nak967yj4Sq3u8gGKUmq9jI8WrG9FvdSKPOsBfnvX3E35LM+357Pck2oPP5rSmIGjHsxZSPtzRzplMHHUnwIur/aROhGwI4NYRubYx/wLlsWXrEyE3Nh0pXR6aNHIOJcLlTmC8hI2+Se9qyUfp8ywaUGW0myCMYr2hYuo4grm2IYYlVZt1J8ZlAv54QlbBd9zRKer5O5FpW6R0voI18oytDa3VxbzxwOJXXcUuHg9yqU0QW0zJ5UYqUwujj/hlpqybjitQvu5w3scQKF4u8WQ70sAGYiu6rq5uPjLMhTmY/cHkKJn7kDtJtpvmNxhIKMoRvbJTPDBIgcP1gB/s1qGw==
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=/KzU+O3ozSDccvpcJDc7YDBn1Pzu2augdysaGFsYEoI=;
 b=Mk9hpqfcxFRybNnTlEp0AgZ/x37jpP1K0TQJnS+l1pR6bdJIQPkQVaTXV0+ARKvC9e0I50486LR+fGJTzU2zGwTMxQOiDrVPcmxBZQhQE+jWepzESrb9qGs2pTgUIR++O93KOaIyJC+YevSBfk8XjwJ4ILRTSBGKiPl7HmfSBpsdWiuxxSP6C1T1o6px4X5OmIr1jHbIyPkk9MSjrKvd2gSaj7qNQc3TgNRI7LW9mPToU8GX0RApi07wojcIJH688Y1gZwxKDU+uS5EnCTLZ3Y1ys3Rcxt90aT3clnLeh/ijeW0pVwMgn5DYZEog9xN1hHDYDOvYRPiqnULwkbN/CQ==
From: Michael Kelley <mhklinux@outlook.com>
To: Christoph Hellwig <hch@lst.de>
CC: "robin.murphy@arm.com" <robin.murphy@arm.com>, "joro@8bytes.org"
	<joro@8bytes.org>, "will@kernel.org" <will@kernel.org>, "jgross@suse.com"
	<jgross@suse.com>, "sstabellini@kernel.org" <sstabellini@kernel.org>,
	"oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>, "petr@tesarici.cz"
	<petr@tesarici.cz>, "iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v2 1/1] swiotlb: Reduce swiotlb pool lookups
Thread-Topic: [PATCH v2 1/1] swiotlb: Reduce swiotlb pool lookups
Thread-Index: AQHay9fgMpKn4lnf90SYtF8Z1AfgLLHpORSAgAErN7CAADBQYA==
Date: Sun, 7 Jul 2024 02:35:57 +0000
Message-ID:
 <SN6PR02MB4157144A1C28D63E00B4F9B2D4D92@SN6PR02MB4157.namprd02.prod.outlook.com>
References: <20240701165746.1358-1-mhklinux@outlook.com>
 <20240706055019.GA13280@lst.de>
 <SN6PR02MB4157141FBF8252BDEAD831C1D4D92@SN6PR02MB4157.namprd02.prod.outlook.com>
In-Reply-To:
 <SN6PR02MB4157141FBF8252BDEAD831C1D4D92@SN6PR02MB4157.namprd02.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-tmn: [0AoF1RSeJm00yQ3smvjGBiTH2ypQgbDW]
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SN6PR02MB4157:EE_|IA3PR02MB10675:EE_
x-ms-office365-filtering-correlation-id: edeae486-2717-4228-2e57-08dc9e2d8834
x-microsoft-antispam:
 BCL:0;ARA:14566002|461199028|8060799006|19110799003|102099032|440099028|3412199025;
x-microsoft-antispam-message-info:
 eoB7t4cQEtZTgMoHOtj+QiFPu4NwcMvlnh0gbEvUe68rGfpVhwwl2kg30YdX00z/n6SjKIPbsKMm9xK/P2G8inn6/g+fHM+FjFqysSqb6u4/JJlAjDvNIDI7cGkB9dCSrcmh32nxpj7kOIUCZdFCAtIhhvcuvzi4zGbamfl6qXAKhJlyAnebcnsVtFw1gcB5FaryOelZ+v/9KJafwyTz6MKL5dY/5AtQjS9/g6420ktzCham5/A5fwDlkf4i0XAIL/x/RV9sKS1kHifcoeyEQvOVQs/qI+3kSRqq7nJOUHYmGwou585+h/9C67z+f6qzTftWbqKueQyN7yJzU40HwoqzPKIXGm7HczIAca/3CaeYJBo+ywI71fJyHT+wYaKoPIEkCXMJJamyjAIPIBXzjOb9+XyQ4AiwtlHU67vOc1SKt8HBeKrEeeTyllDejgeU+gsxx83UkMi/OSkWrkC8ETE+w5NRTMx864vT1vaWN0YbCIIhV7LJ9pc8G9ftnkktpOkRBRj1BxnVojujtyLhbGFvFmtUoTYEYsqlAdVpzfwdQPXTN+eyvMNeWOYOzpgmscSZDAOObUKUMrXpqm4+km/DYyFF5Ng4pVEGuR7GpV/nI5PuwdaRVCRki+B8gHYwdi+bD1edZv71eVrrgfvoug==
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?XKxrFKf13SyFUhUA14pSiXK/kU9AuevkEZM6FJEraFIv/ttbr8o1PAn/E/t6?=
 =?us-ascii?Q?8/scAMixQhlgC5Do5zfNDJpmm3p0e0u+mpbsgziIOfhn27yjuRL5FNfg44eA?=
 =?us-ascii?Q?kHrd17j0/fK37uICYx7eL1lU/yCwMRffhi4lzS7fENLDjSSG6Pcbyd+i7n3O?=
 =?us-ascii?Q?02mA+ciAu3QJSrqWJFVruSbUZVeQ0hPL3dW8Q3ILrz0pBIWU/Ta4K2wbmp0n?=
 =?us-ascii?Q?y/ZeWuLv7cxhPqtFdROS3wI2QPhr5R8XATVjv1pbeYs6WQTHRmTWO7uS4Ocj?=
 =?us-ascii?Q?SSzS01WY30oZw6GhmBgkx62lr8c1sUxOayZ1GIoQCOEkZAuFUSD6bzCIZvDN?=
 =?us-ascii?Q?xIGt5lQUXUc8t+KLtuonv+sAtZN4WcdFnP5BYfdVmVn1biXea/UfBN3ANS7R?=
 =?us-ascii?Q?B0XCFWSKvY48CxOC2+57U+exMc4qp6N+33Xd2Voo+RKxocKdgnPC7bd1EDZg?=
 =?us-ascii?Q?/+PR4bbZMvMs/OqCQiUruNIcnYvHMtbs+G0irNwRk5YINvxqWOeevxxUm8As?=
 =?us-ascii?Q?MjVJTagwLjWkUi9moTXRBdqfwoDKt9OBmrS9UexB59FECzXgFcYLVvZxLV7L?=
 =?us-ascii?Q?bdNibAkny644i8YyMeh5+YYTBkZSVIWfaVdCjUMpYklBrU94eAV7WdLdAZEP?=
 =?us-ascii?Q?ICI4TR+GhSKb5nHt1XTF8ZxLQKGF2sLQfABzDBRuFP8wVegQ1fdS0qYMsXMv?=
 =?us-ascii?Q?BzBBl6o0NuTZRXkqHoTLkp/vIwR3ecOmqXaVQ12nk7kQ+3HEz27XwQvoAUXT?=
 =?us-ascii?Q?T6i1W3cZ52lTV+tG19WTITjSZTg7+SgjhV4cfSCkV6qxrwzOVRHIoWPNMuJi?=
 =?us-ascii?Q?Hb1aTKdjB8ohyNkICBMgLSqUKkYrCHlsjZvu1y2g5o9FIYpf4d3RFFJb44X5?=
 =?us-ascii?Q?U8ufOshXhW9iDsCbE9jsNnJToAuFI3I63ZZCM+jxTHBbkSZqM9I8132Y5Z3z?=
 =?us-ascii?Q?waXsd6aYwSqpWGA2jKtDZlTT1wkjMqWgAT+5FixHToixBZyi53t1jKMbKxMf?=
 =?us-ascii?Q?qX7BlOmhpL69IrkyZqDJ1OemQCqLKHbvNV9u1DdMLHg/rn7LMQzA49Lq7uZV?=
 =?us-ascii?Q?DWMTw+ZAMxlQAz6VtWN/wHrS8bSxmApsIq0ashYSz8VV4q1JipodXnjwXpsN?=
 =?us-ascii?Q?TGiMMGC7+fyRXr6xFtJ0DnRWHUKwtYk6IMCJfuyeCkI2PmKxhi3vNSZ5Vajp?=
 =?us-ascii?Q?sThsCmpu9DgdEIIbZNaRw/MI6RfcgbX3EtfQiD6kPHB6yOcLOaBJbLU3x/0?=
 =?us-ascii?Q?=3D?=
Content-Type: text/plain; charset="us-ascii"
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: edeae486-2717-4228-2e57-08dc9e2d8834
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jul 2024 02:35:57.5042
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR02MB10675

From: Michael Kelley Sent: Saturday, July 6, 2024 7:12 PM

[ ... ]
> >
> > If we then stub out swiotlb_find_pool to return NULL for !CONFIG_SWIOTL=
B,
> > we also don't need extra stubs for all the __swiotlb_ helpers as the
> > compiler will eliminate the calls as dead code.
>=20
> Yes, this works as long as the declarations for the __swiotlb_foo
> functions are *not* under CONFIG_SWIOTLB. But when compiling with
> !CONFIG_SWIOTLB on arm64 with gcc-8.5.0, two tangentially related
> compile errors occur. iommu_dma_map_page() references
> swiotlb_tlb_map_single(). The declaration for the latter is under
> CONFIG_SWIOTLB. A similar problem occurs with dma_direct_map_page()
> and swiotlb_map(). Do later versions of gcc not complain when the
> reference is in dead code? Or are these just bugs that occurred because
> !CONFIG_SWIOTLB is rare? If the latter, I can submit a separate patch to
> move the declarations out from under CONFIG_SWIOTLB.
>=20

Ignore the "two tangentially related compile errors".  I schlepped some
code around incorrectly and caused the problem myself. :-(

Michael


From xen-devel-bounces@lists.xenproject.org Sun Jul 07 04:10:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Jul 2024 04:10:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754841.1163147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQJE6-0000jm-GJ; Sun, 07 Jul 2024 04:10:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754841.1163147; Sun, 07 Jul 2024 04: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 1sQJE6-0000jf-Bz; Sun, 07 Jul 2024 04:10:14 +0000
Received: by outflank-mailman (input) for mailman id 754841;
 Sun, 07 Jul 2024 04:10:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQJE5-0000jV-3C; Sun, 07 Jul 2024 04:10:13 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQJE4-0001EB-VZ; Sun, 07 Jul 2024 04:10:13 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQJE4-0006tU-DH; Sun, 07 Jul 2024 04:10:12 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQJE4-0004Xl-Cj; Sun, 07 Jul 2024 04:10: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=X7jz+Dfsq/ENVUVDRHIZcyaRrNQpytf01PO7eMcgB/0=; b=tpl9IHx7SWeaEfDvIiCK8OSBK8
	neTNYFEsNNmTcJ4s2ov7I12OP2Rz7FpmsFmnUVTrMVybMbHtjQqf0wYLlrVGgppek6tC6D6wBpKeQ
	L40UIkiwpyOw6/2IGgZplZeaqYs7r+idQ+18dGybN6X8dyFT62yTWQ6WpofJfEwqhqS4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186718-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186718: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=1dd28064d4164a4dc9096fd1a7990d2de15f2bb6
X-Osstest-Versions-That:
    linux=661e504db04c6b7278737ee3a9116738536b4ed4
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Jul 2024 04:10:12 +0000

flight 186718 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186718/

Failures :-/ but no regressions.

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 186683

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186683
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186683
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186683
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186683
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186683
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186683
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                1dd28064d4164a4dc9096fd1a7990d2de15f2bb6
baseline version:
 linux                661e504db04c6b7278737ee3a9116738536b4ed4

Last test of basis   186683  2024-07-05 04:06:57 Z    1 days
Testing same since   186709  2024-07-05 23:42:39 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Deucher <alexander.deucher@amd.com>
  Alvin Lee <alvin.lee2@amd.com>
  Atish Patra <atishp@rivosinc.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bjorn Helgaas <bhelgaas@google.com>
  Boris Brezillon <boris.brezillon@collabora.com>
  Charlie Jenkins <charlie@rivosinc.com>
  Christian Borntraeger <borntraeger@linux.ibm.com>
  Daniel Vetter <daniel.vetter@ffwll.ch>
  Daniel Wheeler <daniel.wheeler@amd.com>
  Dmitry Torokhov <dmitry.torokhov@gmail.com>
  Enrico Bravi <enrico.bravi@polito.it>
  Fangzhi Zuo <Jerry.Zuo@amd.com>
  Geert Uytterhoeven <geert@linux-m68k.org>
  Hamza Mahfooz <hamza.mahfooz@amd.com>
  Imre Deak <imre.deak@intel.com>
  Jani Nikula <jani.nikula@intel.com>
  Jarkko Sakkinen <jarkko@kernel.org>
  Jeff Layton <jlayton@kernel.org>
  Jerry Zuo <jerry.zuo@amd.com>
  John Schoenick <johns@valvesoftware.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linus Walleij <linus.walleij@linaro.org>
  Lyude Paul <lyude@redhat.com>
  Lóránd Horváth <lorand.horvath82@gmail.com>
  Ma Ke <make24@iscas.ac.cn>
  Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
  Martin Schiller <ms@dev.tdt.de>
  Matt Roper <matthew.d.roper@intel.com>
  Matthew Auld <matthew.auld@intel.com>
  Matthew Schwartz <mattschwartz@gwu.edu>
  Michael Ellerman <mpe@ellerman.id.au> # ppc
  Mika Kahola <mika.kahola@intel.com>
  Mimi Zohar <zohar@linux.ibm.com>
  Palmer Dabbelt <palmer@rivosinc.com>
  Paolo Bonzini <pbonzini@redhat.com>
  Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
  Puranjay Mohan <puranjay@kernel.org>
  Rodrigo Siqueira <rodrigo.siqueira@amd.com>
  Roman Li <Roman.Li@amd.com>
  Samuel Holland <samuel.holland@sifive.com>
  Shiji Yang <yangshiji66@outlook.com>
  Song Shuai <songshuaishuai@tinylab.org>
  Thomas Hellstrom <thomas.hellstrom@linux.intel.com>
  Thomas Hellström <thomas.hellstrom@linux.intel.com>
  Thomas Huth <thuth@redhat.com>
  Thomas Zimmermann <tzimmermann@suse.de>
  Tom Chung <chiahsuan.chung@amd.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   661e504db04c..1dd28064d416  1dd28064d4164a4dc9096fd1a7990d2de15f2bb6 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sun Jul 07 06:36:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Jul 2024 06:36:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754853.1163157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQLVa-0007RL-7A; Sun, 07 Jul 2024 06:36:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754853.1163157; Sun, 07 Jul 2024 06: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 1sQLVa-0007RE-4U; Sun, 07 Jul 2024 06:36:26 +0000
Received: by outflank-mailman (input) for mailman id 754853;
 Sun, 07 Jul 2024 06:36: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=qAAL=OH=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1sQLVY-0007R8-VH
 for xen-devel@lists.xenproject.org; Sun, 07 Jul 2024 06:36:24 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39d98ff9-3c2b-11ef-bbfb-fd08da9f4363;
 Sun, 07 Jul 2024 08:36:23 +0200 (CEST)
Received: by verein.lst.de (Postfix, from userid 2407)
 id A847E68AFE; Sun,  7 Jul 2024 08:36: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: 39d98ff9-3c2b-11ef-bbfb-fd08da9f4363
Date: Sun, 7 Jul 2024 08:36:19 +0200
From: Christoph Hellwig <hch@lst.de>
To: Michael Kelley <mhklinux@outlook.com>
Cc: Christoph Hellwig <hch@lst.de>,
	"robin.murphy@arm.com" <robin.murphy@arm.com>,
	"joro@8bytes.org" <joro@8bytes.org>,
	"will@kernel.org" <will@kernel.org>,
	"jgross@suse.com" <jgross@suse.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>,
	"oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
	"petr@tesarici.cz" <petr@tesarici.cz>,
	"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 1/1] swiotlb: Reduce swiotlb pool lookups
Message-ID: <20240707063619.GA387@lst.de>
References: <20240701165746.1358-1-mhklinux@outlook.com> <20240706055019.GA13280@lst.de> <SN6PR02MB4157141FBF8252BDEAD831C1D4D92@SN6PR02MB4157.namprd02.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <SN6PR02MB4157141FBF8252BDEAD831C1D4D92@SN6PR02MB4157.namprd02.prod.outlook.com>
User-Agent: Mutt/1.5.17 (2007-11-01)

On Sun, Jul 07, 2024 at 02:11:48AM +0000, Michael Kelley wrote:
> This works pretty well. It certainly avoids the messiness of declaring
> a "pool" local variable and needing a separate assignment before the
> "if" statement, in each of the 9 call sites. The small downside is that
> it looks like a swiotlb function is called every time, even though
> there's usually an inline bailout. But that pattern occurs throughout
> the kernel, so not a big deal.
> 
> I initially coded this change as a separate patch that goes first. But
> the second patch ends up changing about 20 lines that are changed
> by the first patch. It's hard to cleanly tease them apart. So I've gone
> back to a single unified patch. But let me know if you think it's worth
> the extra churn to break them apart.

I think it's perfectly fine to keep one big patch.

> Yes, this works as long as the declarations for the __swiotlb_foo
> functions are *not* under CONFIG_SWIOTLB. But when compiling with
> !CONFIG_SWIOTLB on arm64 with gcc-8.5.0, two tangentially related
> compile errors occur. iommu_dma_map_page() references
> swiotlb_tlb_map_single(). The declaration for the latter is under
> CONFIG_SWIOTLB. A similar problem occurs with dma_direct_map_page()
> and swiotlb_map(). Do later versions of gcc not complain when the
> reference is in dead code? Or are these just bugs that occurred because
> !CONFIG_SWIOTLB is rare? If the latter, I can submit a separate patch to
> move the declarations out from under CONFIG_SWIOTLB.

A reference to dead code is fine as long as the condition is a compile
time one.  I think your next mail sugests you've sorted this out, but
if not let me know or just shared your current work in progress patch.

> > 	if (IS_ENABLED(CONFIG_SWIOTLB_DYNAMIC)) {
> 
> The "IS_ENABLED" doesn't work because the dma_uses_io_tlb
> field in struct dev is under CONFIG_SWIOTLB_DYNAMIC. I guess
> it could be moved out, but that's going further afield. So I'm back
> to using #ifdef.

Yes, we'd need the field definition.

> Petr Tesařík had commented [1] on my original RFC suggesting that
> __swiotlb_find_pool() be used here instead of open coding it. With
> the changes you suggest, __swiotlb_find_pool() is needed only in
> the CONFIG_SWIOTLB_DYNAMIC case, and I would be fine with just
> open coding the address of defpool here. Petr -- are you OK with
> removing __swiotlb_find_pool when !CONFIG_SWIOTLB_DYNAMIC,
> since this is the only place it would be used?

Yes.  That was indeed the intent behind the suggstion.


From xen-devel-bounces@lists.xenproject.org Sun Jul 07 08:46:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Jul 2024 08:46:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754872.1163167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQNX2-0004md-AZ; Sun, 07 Jul 2024 08:46:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754872.1163167; Sun, 07 Jul 2024 08:46:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQNX2-0004mW-6n; Sun, 07 Jul 2024 08:46:04 +0000
Received: by outflank-mailman (input) for mailman id 754872;
 Sun, 07 Jul 2024 08:46:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5rRf=OH=linaro.org=alex.bennee@srs-se1.protection.inumbo.net>)
 id 1sQNX0-0004mQ-JG
 for xen-devel@lists.xenproject.org; Sun, 07 Jul 2024 08:46: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 5572eb2a-3c3d-11ef-8776-851b0ebba9a2;
 Sun, 07 Jul 2024 10:45:59 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-58b966b41fbso3737669a12.1
 for <xen-devel@lists.xenproject.org>; Sun, 07 Jul 2024 01:45:59 -0700 (PDT)
Received: from draig.lan ([85.9.250.243]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77df7949fasm139779566b.32.2024.07.07.01.45.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 07 Jul 2024 01:45:58 -0700 (PDT)
Received: from draig (localhost [IPv6:::1])
 by draig.lan (Postfix) with ESMTP id 337BE5F8E9;
 Sun,  7 Jul 2024 09:45:57 +0100 (BST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5572eb2a-3c3d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1720341959; x=1720946759; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:references
         :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=fEYHd1sh+EjPz8zS4wuHhYUp/x5fvS6WFSYzRfKIK4Y=;
        b=orohLGhZO10iyL/uBR760Z3bLwCvHKHoTyDQiq90Dv3eL9SqIdFgH954HXXKsdUwvn
         bDYOYwJZSQAhLGW8TK73I5T05dQ5n8e8iaNJhBt1MKJR+86DaOqYIa34XdM5Dkn2/ABq
         JvnUnfIXNbL+sqw5O/kdt2/qHj37WkClo5bai80naTWoWFURN76sJyDi9zvlEcuKknJL
         G01MzYiuZe7ck5nXk/eBNz+HlVtsW+WuhEQitjbAMyA2rtLbhyCCKe3QVAYG4n/YkLqn
         t4VlshGxmqu5EOHIIacyLsOLLt8Qr0Ru2fEmOqjDcaJre4+3bt1R1N2Ie4eX7Ug8VlP1
         oRXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720341959; x=1720946759;
        h=content-transfer-encoding:mime-version:message-id:date:references
         :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=fEYHd1sh+EjPz8zS4wuHhYUp/x5fvS6WFSYzRfKIK4Y=;
        b=txNaGu/nBoIrOVzYxYadw47bnb27nzMzAXQsHSbxAiPGg0XEUoKObf2d3HIA2BKRsH
         jgTGMPL5G/x1Dx5nSYgOVBNdGEckpFuUO3uzuzLm+uuzFosJp1in9jaDqv8/C4tyNOCl
         u3RHnwqAJTO4/ESI46k+HfhXVi2Y8bXvayyy5VnJtsaz6FRUOTMxsbOuvUhZUQ+4mkCu
         IAZHEVpiM3FhSyhsxtTCS5juFFun/tvU9tua60wqVLlXvQmblTaWMkAEumfFOV93uvjR
         /zqblwfiwk8juzUy2GdFutmjSCOr/Xh9nDPFmuABcfJvIzQEeDCLoOKYYDBLi502Uhja
         ldAQ==
X-Forwarded-Encrypted: i=1; AJvYcCUoTtjNN1uZ2q2gUjhAdCPSPcBxT61ZZNZSDHNdTQ2WCyblecoAZgBtRna4hjp75BQcLIG5dCzOTVb9KLzmgxJjhfh4TdG4SiVKnAlkWWQ=
X-Gm-Message-State: AOJu0Yyqu3B/pGM3EAaKYiL2o8dxvYusCqCEtrqxj/K7NmK227jAcKRx
	N09XF2C8/7sMNSdmNjYc9oh29ClTUt0XCffLXASCThst4Ftkyq9pTRfEDtLxVMQ=
X-Google-Smtp-Source: AGHT+IEqTxgIjYAHeGxiTC62iXRay9Io+j73bhmKVTdLgG9WgBBopxUNhDuGb0w9phOZilXybXRtCA==
X-Received: by 2002:a17:906:ae47:b0:a72:6fc3:9946 with SMTP id a640c23a62f3a-a77ba4604d6mr535188166b.16.1720341958831;
        Sun, 07 Jul 2024 01:45:58 -0700 (PDT)
From: =?utf-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: "Edgar E. Iglesias" <edgar.iglesias@amd.com>,  Anthony PERARD
 <anthony.perard@vates.tech>,  qemu-devel@nongnu.org,
  sstabellini@kernel.org,  paul@xen.org,  xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 2/2] xen: mapcache: Fix unmapping of first entries in
 buckets
In-Reply-To: <CAJy5ezrfbAzwPWg_YABLy5NwCUiNa31FFR1nAZzy-WC3vXrMhg@mail.gmail.com>
	(Edgar E. Iglesias's message of "Sat, 6 Jul 2024 09:27:43 +0300")
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com>
	<20240701224421.1432654-3-edgar.iglesias@gmail.com>
	<ZoawbAnukIBkYWCw@l14> <87wmm1m7i3.fsf@draig.linaro.org>
	<ZobuhcLHqUEy_bQs@toto>
	<CAJy5ezrfbAzwPWg_YABLy5NwCUiNa31FFR1nAZzy-WC3vXrMhg@mail.gmail.com>
Date: Sun, 07 Jul 2024 09:45:57 +0100
Message-ID: <87jzhxd1yy.fsf@draig.linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

"Edgar E. Iglesias" <edgar.iglesias@gmail.com> writes:

> On Thu, Jul 4, 2024 at 9:48=E2=80=AFPM Edgar E. Iglesias <edgar.iglesias@=
amd.com> wrote:
>
>  On Thu, Jul 04, 2024 at 05:44:52PM +0100, Alex Benn=C3=A9e wrote:
>  > Anthony PERARD <anthony.perard@vates.tech> writes:
>  >=20
>  > > On Tue, Jul 02, 2024 at 12:44:21AM +0200, Edgar E. Iglesias wrote:
>  > >> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
>  > >>=20
>  > >> This fixes the clobbering of the entry->next pointer when
>  > >> unmapping the first entry in a bucket of a mapcache.
>  > >>=20
>  > >> Fixes: 123acd816d ("xen: mapcache: Unmap first entries in buckets")
>  > >> Reported-by: Anthony PERARD <anthony.perard@vates.tech>
>  > >> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
>  > >> ---
>  > >>  hw/xen/xen-mapcache.c | 12 +++++++++++-
>  > >>  1 file changed, 11 insertions(+), 1 deletion(-)
>  > >>=20
>  > >> diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
>  > >> index 5f23b0adbe..18ba7b1d8f 100644
>  > >> --- a/hw/xen/xen-mapcache.c
>  > >> +++ b/hw/xen/xen-mapcache.c
>  > >> @@ -597,7 +597,17 @@ static void xen_invalidate_map_cache_entry_unl=
ocked(MapCache *mc,
>  > >>          pentry->next =3D entry->next;
>  > >>          g_free(entry);
>  > >>      } else {
>  > >> -        memset(entry, 0, sizeof *entry);
>  > >> +        /*
>  > >> +         * Invalidate mapping but keep entry->next pointing to the=
 rest
>  > >> +         * of the list.
>  > >> +         *
>  > >> +         * Note that lock is already zero here, otherwise we don't=
 unmap.
>  > >> +         */
>  > >> +        entry->paddr_index =3D 0;
>  > >> +        entry->vaddr_base =3D NULL;
>  > >> +        entry->valid_mapping =3D NULL;
>  > >> +        entry->flags =3D 0;
>  > >> +        entry->size =3D 0;
>  > >
>  > > This kind of feels like mc->entry should be an array of pointer rath=
er
>  > > than an array of MapCacheEntry but that seems to work well enough and
>  > > not the first time entries are been cleared like that.
>  >=20
>  > The use of a hand rolled list is a bit of a concern considering QEMU a=
nd
>  > Glib both provide various abstractions used around the rest of the code
>  > base. The original patch that introduces the mapcache doesn't tell me
>  > much about access patterns for the cache, just that it is trying to
>  > solve memory exhaustion issues with lots of dynamic small mappings.
>  >=20
>  > Maybe a simpler structure is desirable?
>  >=20
>  > We also have an interval tree implementation ("qemu/interval-tree.h") =
if
>  > what we really want is a sorted tree of memory that can be iterated
>  > locklessly.
>  >=20
>
>  Yes, it would be interesting to benchmark other options.
>  I agree that we should at minimum reuse existing lists/hash tables.
>
>  We've also had some discussions around removing it partially or alltoget=
her but
>  there are some concerns around that. We're going to need something to
>  keep track of grants. For 32-bit hosts, it's a problem to exhaust virtual
>  address-space if mapping all of the guest (are folks still using 32-bit =
hosts?).
>  There may be other issues aswell.
>
>  Some benefits are that we'll remove some of the complexity and latency f=
or mapping
>  and unmapping stuff continously.
>
> One more thing I forgot to add is that IMO, these larger longer term
> changes should not block this tiny bugfix...

Agreed.

>
> Cheers,
> Edgar=20

--=20
Alex Benn=C3=A9e
Virtualisation Tech Lead @ Linaro


From xen-devel-bounces@lists.xenproject.org Sun Jul 07 09:26:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Jul 2024 09:26:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754883.1163177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQO9i-0001OO-CT; Sun, 07 Jul 2024 09:26:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754883.1163177; Sun, 07 Jul 2024 09:26:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQO9i-0001OH-8a; Sun, 07 Jul 2024 09:26:02 +0000
Received: by outflank-mailman (input) for mailman id 754883;
 Sun, 07 Jul 2024 09:26:01 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQO9h-0001O7-DC; Sun, 07 Jul 2024 09:26:01 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQO9h-0007Ot-9u; Sun, 07 Jul 2024 09:26:01 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQO9g-0002SP-TL; Sun, 07 Jul 2024 09:26:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQO9g-0001ZV-Q7; Sun, 07 Jul 2024 09:26: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=HB0+Tj24rraNJNPJQVrN5ZdDj0JoYhnHmaHEyKmUmDo=; b=VkU0/lqzzbN4vvJYFraf7sTemQ
	Tr7CNKcxOFL431ZsbPqTAtnF0AhrrpQNRTbs7ibWfaHPDb+mhyEtt9DkK5SOmGPFw+MwltwUebv6b
	NlgoWCqpEsPkGihybbwqTTiTaMKrENAma1IFiLKItKVqB1x/MIp7u8fUVpv+7gGL4p3s=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186719-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186719: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl-raw:host-ping-check-xen:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-vhd:host-ping-check-xen:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c2a66d0b58b9661037cfed6bf3f8122b3363ca38
X-Osstest-Versions-That:
    xen=c2a66d0b58b9661037cfed6bf3f8122b3363ca38
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Jul 2024 09:26:00 +0000

flight 186719 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186719/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-raw   10 host-ping-check-xen fail in 186716 pass in 186719
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail in 186716 pass in 186719
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186716
 test-armhf-armhf-libvirt-vhd 10 host-ping-check-xen        fail pass in 186716

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check fail in 186716 never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check fail in 186716 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186716
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186716
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186716
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186716
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186716
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186716
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c2a66d0b58b9661037cfed6bf3f8122b3363ca38
baseline version:
 xen                  c2a66d0b58b9661037cfed6bf3f8122b3363ca38

Last test of basis   186719  2024-07-07 01:57:51 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sun Jul 07 10:48:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Jul 2024 10:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754894.1163186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQPR9-0002Rw-7k; Sun, 07 Jul 2024 10:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754894.1163186; Sun, 07 Jul 2024 10:48: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 1sQPR9-0002Rp-4x; Sun, 07 Jul 2024 10:48:07 +0000
Received: by outflank-mailman (input) for mailman id 754894;
 Sun, 07 Jul 2024 10:48:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQPR7-0002Rf-Ql; Sun, 07 Jul 2024 10:48:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQPR7-0000QJ-My; Sun, 07 Jul 2024 10:48:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQPR7-0004h9-DE; Sun, 07 Jul 2024 10:48:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQPR7-0001fC-Cf; Sun, 07 Jul 2024 10:48: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=CpHDETRws2NAkbnN9j5MNqhSr8uzNz5YKS4wfRjso/E=; b=lOAMfICzJxkJh8UsfkU8Je3hej
	X1CScz9yq1osdbBXLJC8oh810tP+inUnGlBw4CatopIGIMg7QIQs4Bk3C+eMjdUhpyjZKq7aw2rVN
	V72wPl32VTsXeKdCMRn9w0orlD8+G6U6MjGeqs9wcUef4kUWpER3VQ9X5NKmZTiHGlP8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186721-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186721: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=d5fad2176cb14283922e07ff1758118d16b17383
X-Osstest-Versions-That:
    ovmf=26bc42f1e34cdf43057a75b8edcc0bd86c091214
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Jul 2024 10:48:05 +0000

flight 186721 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186721/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 d5fad2176cb14283922e07ff1758118d16b17383
baseline version:
 ovmf                 26bc42f1e34cdf43057a75b8edcc0bd86c091214

Last test of basis   186707  2024-07-05 19:44:54 Z    1 days
Testing same since   186721  2024-07-07 08:43:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jiaxin Wu <jiaxin.wu@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   26bc42f1e3..d5fad2176c  d5fad2176cb14283922e07ff1758118d16b17383 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sun Jul 07 12:56:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Jul 2024 12:56:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754926.1163197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQRRM-00087G-4x; Sun, 07 Jul 2024 12:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754926.1163197; Sun, 07 Jul 2024 12: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 1sQRRM-000879-1B; Sun, 07 Jul 2024 12:56:28 +0000
Received: by outflank-mailman (input) for mailman id 754926;
 Sun, 07 Jul 2024 12:56:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQRRK-00086w-Eu; Sun, 07 Jul 2024 12:56:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQRRK-0002Vi-4g; Sun, 07 Jul 2024 12:56:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQRRJ-0007pM-RZ; Sun, 07 Jul 2024 12:56:25 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQRRJ-0006G0-R4; Sun, 07 Jul 2024 12:56: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=uVVbSijdRsrB2z7PDUJUOt7V63NomULkNs536Lljgsc=; b=AWZkjXotDrYQBp5J7NdWPl/OdL
	u8kvL7QhT8Itkg8XKTWzxlDzKAUWNAP/MDpazqCqu1uzglZhob8czhr8KoY/W5tMefzMxE8HxfAb5
	3kp51Sc95GwfglTeVSWJbE1FMmgHnbydRCqRzUW1Yg6+vwGlcEbuleL80N/9cyNIWrwk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186722-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186722: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=049e12c03d27f0a6bf57f4f1835cab5e205661a7
X-Osstest-Versions-That:
    ovmf=d5fad2176cb14283922e07ff1758118d16b17383
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Jul 2024 12:56:25 +0000

flight 186722 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186722/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 049e12c03d27f0a6bf57f4f1835cab5e205661a7
baseline version:
 ovmf                 d5fad2176cb14283922e07ff1758118d16b17383

Last test of basis   186721  2024-07-07 08:43:06 Z    0 days
Testing same since   186722  2024-07-07 11:14:38 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Wei6 Xu <wei6.xu@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   d5fad2176c..049e12c03d  049e12c03d27f0a6bf57f4f1835cab5e205661a7 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sun Jul 07 14:09:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 07 Jul 2024 14:09:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754935.1163207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQSZn-0007Ue-AD; Sun, 07 Jul 2024 14:09:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754935.1163207; Sun, 07 Jul 2024 14: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 1sQSZn-0007UX-7C; Sun, 07 Jul 2024 14:09:15 +0000
Received: by outflank-mailman (input) for mailman id 754935;
 Sun, 07 Jul 2024 14:09:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQSZm-0007UN-He; Sun, 07 Jul 2024 14:09:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQSZm-0003lC-EH; Sun, 07 Jul 2024 14:09:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQSZm-00013H-0U; Sun, 07 Jul 2024 14:09:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQSZl-0007H3-W9; Sun, 07 Jul 2024 14:09:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QaSz2RXiHehHY9xLjYjVPgPSFCSbir+oq+bCdNFsFfU=; b=YhfoAllxnjKvuoqDcFXdwDBU/F
	6SvSVKkDIHpdcMU8ZJkLB86K/z1tdaFYJYRVEue3FZ7IEjreYJDuvkMlzeqtKJnbJ7It3c5SIlgpN
	P/P12hTsPgCXOmZwgcfjBeavl8vZnEsSBLr2PWQEJdM5m8tKAb0ZzrbboGpCyHubsKOY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186720-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186720: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-pvshim:guest-localmigrate/x10:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-arndale:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-examine:reboot:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c6653f49e4fd3b0d52c12a1fc814d6c5b234ea15
X-Osstest-Versions-That:
    linux=1dd28064d4164a4dc9096fd1a7990d2de15f2bb6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 07 Jul 2024 14:09:13 +0000

flight 186720 linux-linus real [real]
flight 186723 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186720/
http://logs.test-lab.xenproject.org/osstest/logs/186723/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-pvshim 20 guest-localmigrate/x10 fail pass in 186723-retest
 test-armhf-armhf-xl-arndale   8 xen-boot            fail pass in 186723-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-arndale 15 migrate-support-check fail in 186723 never pass
 test-armhf-armhf-xl-arndale 16 saverestore-support-check fail in 186723 never pass
 test-armhf-armhf-examine      8 reboot                       fail  like 186709
 test-armhf-armhf-xl           8 xen-boot                     fail  like 186709
 test-armhf-armhf-xl-rtds      8 xen-boot                     fail  like 186718
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186718
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186718
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186718
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186718
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186718
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186718
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                c6653f49e4fd3b0d52c12a1fc814d6c5b234ea15
baseline version:
 linux                1dd28064d4164a4dc9096fd1a7990d2de15f2bb6

Last test of basis   186718  2024-07-06 14:41:19 Z    0 days
Testing same since   186720  2024-07-07 04:19:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andi Shyti <andi.shyti@kernel.org>
  Anjali K <anjalik@linux.ibm.com>
  David Howells <dhowells@redhat.com>
  Ganesh Goudar <ganeshgr@linux.ibm.com>
  Gautam Menghani <gautam@linux.ibm.com>
  Jinglin Wen <jinglin.wen@shingroup.cn>
  Linus Torvalds <torvalds@linux-foundation.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Nicholas Piggin <npiggin@gmail.com>
  Paulo Alcantara (Red Hat) <pc@manguebit.com>
  Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
  Sourabh Jain <sourabhjain@linux.ibm.com>
  Steve French <stfrench@microsoft.com>
  Vishal Chourasia <vishalc@linux.ibm.com>
  Wolfram Sang <wsa+renesas@sang-engineering.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   fail    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   1dd28064d416..c6653f49e4fd  c6653f49e4fd3b0d52c12a1fc814d6c5b234ea15 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 02:17:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 02:17:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754965.1163216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQdwd-0002Xw-Sw; Mon, 08 Jul 2024 02:17:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754965.1163216; Mon, 08 Jul 2024 02:17:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQdwd-0002Xp-QE; Mon, 08 Jul 2024 02:17:35 +0000
Received: by outflank-mailman (input) for mailman id 754965;
 Mon, 08 Jul 2024 02:17:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQdwc-0002Xg-0n
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 02:17:34 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20600.outbound.protection.outlook.com
 [2a01:111:f403:2405::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a2f69e4-3cd0-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 04:17:31 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CY8PR12MB7193.namprd12.prod.outlook.com (2603:10b6:930:5b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Mon, 8 Jul
 2024 02:17:26 +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.7741.033; Mon, 8 Jul 2024
 02:17: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: 3a2f69e4-3cd0-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jXxx0m7RQziMm9UXW42/3e7WWwOUs0+TD3rZY1vDD4Q0tLDkBvCY4Ng8f7BChN1pu+9lujqgVDTP3lH7v5xVP1mzjLk/M3Z8E/5gonSxxUHLfVu9epQpCFc16eht+xXat9QZgj9jRhccO1IRb0kSDSZl74O/rYqXNPnJ1leBOTgBskQV2Mcd0TCLkTYYQIKeT5bnpyz4pZ+WZc5G4OZo+wFdkWJ4PPoK88Y2V3ZbwM9UjUO3VM7ee5eTTXK/pFHEJXTNiCRmfyE3VOdAB0bKAXWWjL/lwzqnLUdDhIwEfj405RkRxZue1FPavgh0gncsmOOvy0Cb0Cr21e0cJaUizA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4G2kJG1ubey1prHGg9S3gq7Kbltp9rBYFy6FIa7H78I=;
 b=fFwX6LYV3yg9LdqpdVo7IWKR9aXr2dp1F1XvdmwDRhKJ/HH4EE9NQE9LuX6g87svHxFjPSgpIKbfxNVa6n880nWMR3C1aDMHggeWWPpo9YHRVR87MScrmmeQmVTimlu7ILbdiKx788KT0ftxmsw7zi+6bttJ1Em7IqJmdUFQJrLjivC+AEeZx0zpmmQJ9uOXxvXdvsxcqF6sMjVd9TActxMwyknjZeb3UuQyDS5XhvVLojhOwbPvz65UsNR04ccDkloqlSVH04l0yvpRaE2Pn841ZWcvJM/Th8volSa/os8uIVgku/ILGuLotENjeZPhs0gVskpqI5PFHDrJMcVLAA==
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=4G2kJG1ubey1prHGg9S3gq7Kbltp9rBYFy6FIa7H78I=;
 b=nIsJ7tYI269ZflYcJ/Pi+DqwqpEiKJomOCBalrR9voAtgwdvVoPcYHPhyy3J8a39ZyZ7LknIFCOoYYpcYSyyr2hsPH5x2a/ctMUYRuSuImXVf9IE+Y1pP+k9X0sWzuoVxmkilrlrDeZloUrnEyUuJI3qgw2F3E4OcyoeHBJ87kQ=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, Juergen
 Gross <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v11 4/8] x86/physdev: Return pirq that irq was already
 mapped to
Thread-Topic: [XEN PATCH v11 4/8] x86/physdev: Return pirq that irq was
 already mapped to
Thread-Index: AQHayunUrYgDYrs6yUuu722r8ryT1LHmiusAgAYeu4A=
Date: Mon, 8 Jul 2024 02:17:25 +0000
Message-ID:
 <BL1PR12MB58493580EE06C27D54B56CAEE7DA2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-5-Jiqian.Chen@amd.com>
 <9dc7f974-de7b-408a-915c-ee0724eaebcd@suse.com>
In-Reply-To: <9dc7f974-de7b-408a-915c-ee0724eaebcd@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.7741.016)
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_|CY8PR12MB7193:EE_
x-ms-office365-filtering-correlation-id: 07fe539b-95a6-44fd-ed8b-08dc9ef41c0e
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:
 =?utf-8?B?S2ZYK0piUUZrWFE4RVhJSTFxaldQa1JaM01oVitiTHZudC8wZzJKdmlLSTVk?=
 =?utf-8?B?bDdWU0lLTEFnVnZtLzJsT2dVMmtIVUxvK0JyVHlWQ3RxKzNRMkVoYVFwRDFq?=
 =?utf-8?B?UGpaZzR6dTdCcGE2WXNPU09IOVRhSTFtNGlVa3VYTnlvb3lObGVrZC83UGhR?=
 =?utf-8?B?a0puVGMyMElOQ01sSmtxaHFYMVh2SkloQjF2aDRFZUhXc3VxOE5ta0lEdVYy?=
 =?utf-8?B?KzdyS01PZGtjWTBOY292VWQzdk9nWWVvd3VGTGJKSUovU1JTNHp0MjMvcE94?=
 =?utf-8?B?QzNsVTJYUTVyMVVCVXE1WWcwdU9talJNL2pzMGEvY2tzb2xUZ21XR0dhVnN5?=
 =?utf-8?B?MDBVcmg4d3cySUxlMTllbVM5bkJ3Mk1kRmNFTXo1WnNTblh5V1J5aExiODlV?=
 =?utf-8?B?ZmN6WEp1R0FxbHJQc0tITko4bkJoSzdncklNZ1pxd2ZNSDNDRUU5cGZ1eCtt?=
 =?utf-8?B?bzBJNjhhZVlRdS9lYmx4M042TElxOW1VWHVGRjdsQVFQc28rUDQ5OG54Z0Jw?=
 =?utf-8?B?ZFM1blRQQlprY0JKOVlNK09iT3ozelEzckNpMHBiUHZFUmxoMUJmRjlPZE81?=
 =?utf-8?B?eVpLZEo2TDRCTHRKSkE1YlphSklwd1QrYjQrRFhwT1JiSk80T0pERUdxZkVZ?=
 =?utf-8?B?cUhCWFFVZTYrREMwV0tPSEtSaXJNRTl6QTJQajkzU010YTJ1TWhzQTFvMUk1?=
 =?utf-8?B?T3Q5b2JsVlIxR0djUEx0RHN2SlFoNjQ1bno5ZmZCUHVHbWFMNUNha3RYSkla?=
 =?utf-8?B?SEQ4K1gzQzBhUXlLMEVwcTlTVVNZMkdKQWVucEloa05BS0VsVkQ5QU1xdy9F?=
 =?utf-8?B?eVVOUmV0K0pTZnpjeDVlaXJrUHZOV0svUUQxK3FQRWtQeXNYQkc3MEhNYmpV?=
 =?utf-8?B?UktyN2JoMVNJanVLcm41SG55aytyQTFnY01qREdBUFhEVWdMY3V0TDBveVMx?=
 =?utf-8?B?REc1UEJia0ZlbDBoQnJEZ1BEOTg0Vnhab253Z0NKQnZQY1duWG1nSy90MEpj?=
 =?utf-8?B?NlFDZ2F5MGVjcmc5TlpIeGtsRGJlSExKMU9vU0ZiTXNJSUNBWkNUaDFqVml0?=
 =?utf-8?B?RFd5ZVdmZWtheGRBcWFtaENwcXVrWjlpckZQWmk4cE5lU0s2Ym5XZDZjZXZU?=
 =?utf-8?B?aXdZR0JhUkRTNlNOL3FNMTc0ZWFvRkxkSzdnYW5COW1GQUxRZGxXN3lQM2g1?=
 =?utf-8?B?RC9LN3IvMnFPb2FYOENyWkpjcWpVeFFPd0xoK0hHL0dxVkNtVk9WeEVzY2pp?=
 =?utf-8?B?R244U0VabWt6RlZZTGtycXZLb1ZxN01SQWg3R1VRZytyNmZMUE1MS3pxVTZv?=
 =?utf-8?B?WFlRdXJwa2sveHdIbFpQZDFYTS91MSs1bnVhZVB1ZkZ6cDZXaG1nM1hxdVBj?=
 =?utf-8?B?NlE1Mlk3ZThSaXBZUCtzZ3F6SWNMZXpMT0h0eDBQdmlYd0pkSW0va3pGaTRV?=
 =?utf-8?B?N0tTVHRsSGZCaVhiSXl3M2lXdGd1ZnltMkRrVlFEMkVwdXJ2K0VEVzhQVVpK?=
 =?utf-8?B?WXNIVFJWNHV3ZzIrb0ZzZDI3Qk9tYVY0enh2Y2ZBb2VGcGtjQ3RFV2NzVW0z?=
 =?utf-8?B?OUFQbDVHTGVHY3BNUkQ3VitrM2sxY0ZIR1NReHhaL09zR1pNTC8zenc2YkMz?=
 =?utf-8?B?YVZGVUlGN3BSdEN2WGp4MnR6d1BzRGJWaHVDOEpwV3BvV0E5aU9aeGd2UzJi?=
 =?utf-8?B?K0hFMzFSMTErbmpnU2VOUmRFOFVieWI5M1ZaYVl6aytibmx4MmU1aVlpeDVG?=
 =?utf-8?B?ejB5ZEFiRjEyOUVjNWt3M01OUCs2dkg1MndUWktqNkoranpPbTRrRnM2WDdM?=
 =?utf-8?B?TStDWTlIRW53clVRb1Yxd09wREhKb0VFQzJjOUxBcVZOMklBMjhEeVhieHNP?=
 =?utf-8?B?aFJRblRuRG04WGl4aTQyaGZaaENWRTdVZFlLbzFaZGhjeHc9PQ==?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ek5neEhlVG5FVk14QjE5c0NvU2l1cEhLN1NRSjlMSUVoKzZxelVlUGw0YWw5?=
 =?utf-8?B?Y0RCaTNqdStBOHNhc00xMko2Tm1pd3IyelFHYUdKck8ydnJSNkdlNFlNR2Rn?=
 =?utf-8?B?TGUyczY1TjRENUtuWXV3L0JTMTN2bWlOYStTOUpPOEIzWlRaSXM2SlFBNDFJ?=
 =?utf-8?B?VW1Xay9ESE9EQWJDRG0wMW9zYmZKS2tKdXd2d0gzMmpTS1h3aXlsRnlrdVlN?=
 =?utf-8?B?aEVJQWtMcHFkTjM2TGFOTklxYzJWcmd1YmQ1MDBJTllYVjRMdG9vMVpEYTlW?=
 =?utf-8?B?WHZYK1o4UUJwWU5xT3Q1OGNiVHkxM0JydXlKSjlkemJWa3ZRUWZHRmdsSndV?=
 =?utf-8?B?alVCMVo0YnNEWldCUGtXcnIybmVxdE9sSVRiR1FEWFl0dWphMi8vNzlHSzVD?=
 =?utf-8?B?SDl3alJIN1ZETTBVU0c2L1RYRnZUbWhzK1lEKzVKQWhjREFTeGRtdFRsR2Ft?=
 =?utf-8?B?UmhLV3FqZkFGVkhOeldIL2xtVkdlb2F0c2ZQbGRGU3JJT09OSVV6aktNa090?=
 =?utf-8?B?dEJkaFllSk5kMUZqOHRKSFNWZWNqNTVYS1NFbUFqRnhyOUxvSnBYZ0JVT3pC?=
 =?utf-8?B?Z1RyOTBCYmZtOUljWGxRekd6Tm8xZGtIOE9GOXRlRzhaRWcxekYxVHBhRlJU?=
 =?utf-8?B?VWxXaDZaNTlBNkNCUEZEdk5GRjY0NEdsYVhSbnVpRXRkYkRyZDA4cUF3Uytv?=
 =?utf-8?B?OGR4a2VwNTREYk8zeCtMSWFmaFJqMWx0L0pIUGprY2JyaXU5LzNiSGdCMis2?=
 =?utf-8?B?enUxSEFRS2FiN2J0dytyUmRYd2RMK0RNTm9DVWRtMlZ3OFVBQTIzRTl5UDYy?=
 =?utf-8?B?U3E3SWlxM3dJem1RNFVHemx0ZTFMeTF6cDZoSm1uRUVwVE1YV2wyYXRlOEtY?=
 =?utf-8?B?VE92enBuazk2c3hYS1gvYlhUTUhDbnpXVFZIWVRVNHY1eDc2U29wTm1VY0R6?=
 =?utf-8?B?YW0rWkp3VjVPeU9JZ2dMZUhsSE9xc0NBUExyTEZ0UUg3TFlxbTZnMExZTXMw?=
 =?utf-8?B?TU9neHhBK1h0WWp1M1h6VUlMb3dJTmxhZklYRjZUZlpoZmRQeXpzL0NzVXBp?=
 =?utf-8?B?T1J3eHgyaDd2cTZESzdiTVd1ZXp3dnQraFRqeHlDY0djU29BcnhhcHNBOVJi?=
 =?utf-8?B?ZFI1WVdMbUpMS29FWml2OC9QZ0V0cmxvY1BFcWlwLzdLcy9oWWJxOXpyKzBG?=
 =?utf-8?B?MjBaUHpHaVlVY1RYbVQ5MHpndlNDYzRRZy8xR3g3d1ZKVE85K2QydU54KzNp?=
 =?utf-8?B?MDZ3OGw1bi9jSFBjaU90alpVT3Y1cmFPczBJYWlPL2tybWZhMXJPTHk2TWgv?=
 =?utf-8?B?QU5wN1V1WlRXN04xVEpndEN2a2ZwaDFRTGprQlc4cGR3aTZQL0d6VFpyZG9X?=
 =?utf-8?B?V3d6TWhZc1hCZnVvOEc4UXZFQUVvaTVuNGtvWU1yeE85ZENUeDM1MEpSVHVr?=
 =?utf-8?B?by9xQjFvbVVENUc3NzdpRllwRjRpWFA2OXRWRnU3VGk1TWc3dmFZS1NLclZZ?=
 =?utf-8?B?ZWFRT2R0UTc1MFFWekdteitidFA4b1J6Z2kzYXFObnZLdlZpb3FKM0ZFa0NH?=
 =?utf-8?B?YnBaLzBWeFdvb3I4NnNEM1FmMnJKeG1URW9nalFtaXdNd3NUQmNadmRwckw5?=
 =?utf-8?B?NkRMc0UyNkUxdWR0ZW1BWGVVUWtSemFSTXdHWkRNRG5qYjBEc2h5bjBQMlJG?=
 =?utf-8?B?aC9hc2JXOG5GRkZUU0hpYXBvVXV4aDZCNmlFRWpSb0hWUmlrQURNR3RNVlVY?=
 =?utf-8?B?NUJJWWtOQXZkSnJPZmR6bUhVWG9Ha2g0d29RcWw5Qk04bFhzNTVldkJFZjhB?=
 =?utf-8?B?U0VXVTBueUhGQTBLakYvSEJuSjFSYUdxS2tFUjdBbmFPRW1QYUlPYUtOZjZ4?=
 =?utf-8?B?eVJ1aTZhQW80Y0pOZHhaMmlhdFBsalJaZkZlczJVTlMwcVdaL0tFQld2VFFL?=
 =?utf-8?B?bGwxNHlZQWh1ZmpIQzVTTW5tdmtxVURsUkR1a0NrSDZ2di81TkpYSVVJQUdY?=
 =?utf-8?B?LzdQVVAvUXVEWG9mNXJjdGY5REVIUmhTczJuNHEySjFXdC9WWDZOWFVHZG1w?=
 =?utf-8?B?SU05OUE1Qk1PazltYWhJOFdqZnJGd09oSko3cDdCa1JlZTQ4QjlkZENVMHZs?=
 =?utf-8?Q?oqXE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <738623DFA21D214F8AC69A75EDF7DA76@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: 07fe539b-95a6-44fd-ed8b-08dc9ef41c0e
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jul 2024 02:17:25.9495
 (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: QeL/L/Lq3I74m9B2yQsj4oANO9WZFObyZQ8CPwqMN/Eg1jYhHTUOnuzeCIX2bl3LdW+DEnTMdCtWyiN5RY1qZw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7193

T24gMjAyNC83LzQgMjA6NDcsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAzMC4wNi4yMDI0IDE0
OjMzLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IGFsbG9jYXRlX3BpcnEgaXMgdG8gYWxsb2NhdGUg
YSBwaXJxIGZvciBhIGlycSwgYW5kIGl0IHN1cHBvcnRzIHRvDQo+PiBhbGxvY2F0ZSBhIGZyZWUg
cGlycShwaXJxIHBhcmFtZXRlciBpcyA8MCkgb3IgYSBzcGVjaWZpYyBwaXJxIChwaXJxDQo+PiBw
YXJhbWV0ZXIgaXMgPiAwKS4NCj4+DQo+PiBGb3IgY3VycmVudCBjb2RlLCBpdCBoYXMgZm91ciB1
c2VjYXNlcy4NCj4+DQo+PiBGaXJzdCwgcGlycT4wIGFuZCBjdXJyZW50X3BpcnE+MCwgKGN1cnJl
bnRfcGlycSBtZWFucyBpZiBpcnEgYWxyZWFkeQ0KPj4gaGFzIGEgbWFwcGVkIHBpcnEpLCBpZiBw
aXJxPT1jdXJyZW50X3BpcnEgbWVhbnMgdGhlIGlycSBhbHJlYWR5IGhhcw0KPj4gbWFwcGVkIHRv
IHRoZSBwaXJxIGV4cGVjdGVkIGJ5IHRoZSBjYWxsZXIsIGl0IHN1Y2Nlc3NlcywgaWYNCj4+IHBp
cnEhPWN1cnJlbnRfcGlycSBtZWFucyB0aGUgcGlycSBleHBlY3RlZCBieSB0aGUgY2FsbGVyIGhh
cyBiZWVuDQo+PiBtYXBwZWQgaW50byBvdGhlciBpcnEsIGl0IGZhaWxzLg0KPj4NCj4+IFNlY29u
ZCwgcGlycT4wIGFuZCBjdXJyZW50X3BpcnE8MCwgaXQgbWVhbnMgcGlycSBleHBlY3RlZCBieSB0
aGUNCj4+IGNhbGxlciBoYXMgbm90IGJlZW4gYWxsb2NhdGVkIHRvIGFueSBpcnFzLCBzbyBpdCBj
YW4gYmUgYWxsb2NhdGVkIHRvDQo+PiBjYWxsZXIsIGl0IHN1Y2Nlc3Nlcy4NCj4+DQo+PiBUaGly
ZCwgcGlycTwwIGFuZCBjdXJyZW50X3BpcnE8MCwgaXQgbWVhbnMgY2FsbGVyIHdhbnQgdG8gYWxs
b2NhdGUgYQ0KPj4gZnJlZSBwaXJxIGZvciBpcnEgYW5kIGlycSBoYXMgbm8gbWFwcGVkIHBpcnEs
IGl0IHN1Y2Nlc3Nlcy4NCj4+DQo+PiBGb3VydGgsIHBpcnE8MCBhbmQgY3VycmVudF9waXJxPjAs
IGl0IG1lYW5zIGNhbGxlciB3YW50IHRvIGFsbG9jYXRlDQo+PiBhIGZyZWUgcGlycSBmb3IgaXJx
IGJ1dCBpcnEgaGFzIGEgbWFwcGVkIHBpcnEsIHRoZW4gaXQgcmV0dXJucyB0aGUNCj4+IG5lZ2F0
aXZlIHBpcnEsIHNvIGl0IGZhaWxzLg0KPj4NCj4+IFRoZSBwcm9ibGVtIGlzIGluIEZvdXJ0aCwg
c2luY2UgdGhlIGlycSBoYXMgYSBtYXBwZWQgcGlycShjdXJyZW50X3BpcnEpLA0KPj4gYW5kIHRo
ZSBjYWxsZXIgZG9lc24ndCB3YW50IHRvIGFsbG9jYXRlIGEgc3BlY2lmaWVkIHBpcnEgdG8gdGhl
IGlycSwgc28NCj4+IHRoZSBjdXJyZW50X3BpcnEgc2hvdWxkIGJlIHJldHVybmVkIGRpcmVjdGx5
IGluIHRoaXMgY2FzZSwgaW5kaWNhdGluZw0KPj4gdGhhdCB0aGUgYWxsb2NhdGlvbiBpcyBzdWNj
ZXNzZnVsLiBUaGF0IGNhbiBoZWxwIGNhbGxlciB0byBzdWNjZXNzIHdoZW4NCj4+IGNhbGxlciBq
dXN0IHdhbnQgdG8gYWxsb2NhdGUgYSBmcmVlIHBpcnEgYnV0IGRvZXNuJ3Qga25vdyBpZiB0aGUg
aXJxDQo+PiBhbHJlYWR5IGhhcyBhIG1hcHBlZCBwaXJxIG9yIG5vdC4NCj4+DQo+PiBTaWduZWQt
b2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4+IFNpZ25lZC1vZmYt
Ynk6IEh1YW5nIFJ1aSA8cmF5Lmh1YW5nQGFtZC5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBKaXFp
YW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4gDQo+IEkgdGhpbmsgdGhlIGNoYW5nZSBp
cyBjb3JyZWN0LCBhbmQgYWN0dWFsbHkgZml4ZXMgYSByZWdyZXNzaW9uLiBZb3Ugd2FudA0KPiAN
Cj4gRml4ZXM6IDA3NjJlMjUwMmYxZiAoIng4Ni9waHlzZGV2OiBmYWN0b3Igb3V0IHRoZSBjb2Rl
IHRvIGFsbG9jYXRlIGFuZCBtYXAgYSBwaXJxIikNCj4gDQo+IHdoaWNoIHdvdWxkIGFsc28gaGF2
ZSBoZWxwZWQgcmV2aWV3aW5nIHF1aXRlIGEgYml0LiBBbmQgaXQgbGlrZWx5IHdvdWxkDQo+IGFs
c28gaGF2ZSBoZWxwZWQgeW91IHdyaXRlIGEgZGVzY3JpcHRpb24gd2hpY2ggaXMgZWFzaWVyIHRv
IGZvbGxvdy4NCj4gRW51bWVyYXRpbmcgYWxsIHRoZSBjYXNlcyBpc24ndCByZWFsbHkgbmVlZGVk
IGhlcmU7IHdoYXQgaXMgbmVlZGVkIGlzDQo+IGFuIGV4cGxhbmF0aW9uIG9mIHdoYXQgd2VudCB3
cm9uZyBpbiB0aGF0IHJlLWZhY3RvcmluZy4NCj4gDQo+PiAtLS0gYS94ZW4vYXJjaC94ODYvaXJx
LmMNCj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9pcnEuYw0KPj4gQEAgLTI4OTcsNiArMjg5Nyw4IEBA
IHN0YXRpYyBpbnQgYWxsb2NhdGVfcGlycShzdHJ1Y3QgZG9tYWluICpkLCBpbnQgaW5kZXgsIGlu
dCBwaXJxLCBpbnQgaXJxLA0KPj4gICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBp
bmRleCwgcGlycSwgY3VycmVudF9waXJxKTsNCj4+ICAgICAgICAgICAgICBpZiAoIGN1cnJlbnRf
cGlycSA8IDAgKQ0KPj4gICAgICAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOw0KPj4gKyAgICAg
ICAgICAgIGVsc2UNCj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRfcGlycTsNCj4g
DQo+IFBsZWFzZSBjYW4gdGhpcyBiZSBzaW1wbHkNCj4gDQo+ICAgICAgICAgICAgIHBpcnEgPSBj
dXJyZW50X3BpcnE7DQo+IA0KPiB3aXRob3V0IGFueSAiZWxzZSIsIGFuZCB0aGVuIHRha2luZyB0
aGUgbm9ybWFsIHJldHVybiBwYXRoLiBUaGF0IGFnYWluIGlzDQo+IChpbW8pIGNsb3NlciB0byB3
aGF0IHdhcyB0aGVyZSBiZWZvcmUuDQo+IA0KPiBJIHdvdWxkIGZ1cnRoZXIgc3VnZ2VzdCB0aGF0
IHlvdSBzcGxpdCB0aGlzIGZpeCBvdXQgb2YgdGhpcyBzZXJpZXMgYW5kDQo+IHJlLXN1Ym1pdCBz
b29uIHdpdGggYSBmb3ItNC4xOSB0YWcgYW5kIHdpdGggT2xla3NpaSBDYy1lZCwgc28gdGhhdCB0
aGlzDQo+IGNhbiBiZSBjb25zaWRlcmVkIGZvciBpbmNsdXNpb24gaW4gNC4xOS4NClRoYW5rcywg
d2lsbCBzcGxpdCBhbmQgc2VuZCB0b2RheS4NCg0KPiANCj4gSmFuDQoNCi0tIA0KQmVzdCByZWdh
cmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 02:28:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 02:28:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754973.1163227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQe70-0004Ek-VQ; Mon, 08 Jul 2024 02:28:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754973.1163227; Mon, 08 Jul 2024 02:28: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 1sQe70-0004Ed-Sq; Mon, 08 Jul 2024 02:28:18 +0000
Received: by outflank-mailman (input) for mailman id 754973;
 Mon, 08 Jul 2024 02: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=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQe6z-0004EX-Lb
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 02:28:17 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20600.outbound.protection.outlook.com
 [2a01:111:f403:2416::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ba861ae3-3cd1-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 04:28:16 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 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.7741.35; Mon, 8 Jul
 2024 02:28: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%3]) with mapi id 15.20.7741.033; Mon, 8 Jul 2024
 02: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: ba861ae3-3cd1-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=S9xAoDcWZ/dwcyvm2pai29bNH2xSAnuH8xQX5m+OHCg1xPrYhsr8PPsYlgjmpF5SyajTHw2sr2ZMiuSSjarlciTlNC6kWRXoR9VSK1SjMDr6bP6kfU+c07dCl9gsJt3jwb2b4PAwO93z16pYeeDxwdPzA4uSbcVH5eyv9nUuH3E9Ba+MEqZAxaNhzbOD2Z6m44gd8Uyo0IMGzLgL7Fgp1EkkuBxYdzpqZgihYxn21b6dJk8Ww6G+/+M/R/bqXFk/BYxbHc0W+PNcYTNLgA8LtYdCdmEL8PSj/RhbHAT4iMlJPjz1MsJrFcbdQYzwixmROsmHN+Hkc/XI/VhAaeBBew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=i7kOH/f8zIGlZ74zLRBOOpvH0VSBERzgYfBjAtmOQFA=;
 b=klYajPPVMcYYBtb1BvhOARFeWFbfTaq/ECT9GRPBAUK8XWvK3WKxFgdgSkdJ3wXrScN64kNkIFUsqkf7jDT08mLcdCq9mKsUWur3pOMcAjaLzCe4mm7O4zpOtDCi5FfzFptHna6XPqqZvN0LrJDjecRyfgbniStjm/8x4+m3mN49zPEbEOCkR8A1dx6FF/KYICKTCuxAQM7gHN94GkeSZQw+VGCh81Uz6Qb63h81318spLS0KJhmuCBu7h2TufsHJsk+Q0O074ffUjoAbM2UGxRNNrQbNCDRCquDp1yY+S6sFepa+rRl4li3PxdpCx6kjCOYKMoN1TqNBJGhgsC8UA==
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=i7kOH/f8zIGlZ74zLRBOOpvH0VSBERzgYfBjAtmOQFA=;
 b=DsY8bhmaU6j8dMl5uv7iJf9Y0UuC606hkvHHjrrsjiQg+tmhwxrtUR4YeAy0uqn+1m+mxzezDVQAKau4xcZ3+v9Sd7ybc7xj4V9/2af59QjwyxZAxYUPTr9upBDhDszw+nwLOAoqySfTkEnIM0rAhCmM/mw9z6y0LnMDkE7th0Y=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, Juergen
 Gross <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v11 5/8] x86/domctl: Add XEN_DOMCTL_gsi_permission to
 grant gsi
Thread-Topic: [XEN PATCH v11 5/8] x86/domctl: Add XEN_DOMCTL_gsi_permission to
 grant gsi
Thread-Index: AQHayunXeOD/UI5IqEOcc1Zu6HQmVrHml5KAgAYS6IA=
Date: Mon, 8 Jul 2024 02:28:11 +0000
Message-ID:
 <BL1PR12MB5849DC624AE25635C4BFC417E7DA2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-6-Jiqian.Chen@amd.com>
 <a02cea93-b04b-484c-b3e0-dd5f6823196e@suse.com>
In-Reply-To: <a02cea93-b04b-484c-b3e0-dd5f6823196e@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.7741.016)
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_|CY5PR12MB6226:EE_
x-ms-office365-filtering-correlation-id: 26e4f521-9432-4bc5-d866-08dc9ef59ca9
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?S0NreElTSVNQK1lIZUFZVDBUNWV3K3hWb3Bzb1R6ZjZlRHc4SHdyZnlQbWRF?=
 =?utf-8?B?bGFzMDA3VERldDlEM2lNUDk4VzMxNXh6eEoxb094WXhjYUJjOU1ucy9wQlQz?=
 =?utf-8?B?cjJKNVJkRHJ0UUZKWFMyaXk2WHhPZ1N5cVVvaXJaK05hQ0poT3cyWTBhNlkw?=
 =?utf-8?B?eXl6clhWYVlreEFKOENEcW4yNVdlZDdBZnkvY2ZDSXlNOGVCVFp4ciswcTB5?=
 =?utf-8?B?aDRiY1MwcmQwa2pOazJQS2NwU0s1TzVqN0xLR1pDSERsQUc1dEp0VFBCNXN2?=
 =?utf-8?B?UkhZYks4djEydXdZZmxiRFg1VUFoUUhudHMrWGJ1aEJoSGtSOHJVdkp3Vm5z?=
 =?utf-8?B?aGQ0NnlqV2ozajcwam84MFllZDVNUU8xS2VBblo0MTFib3FMOVZpc2pDM0J3?=
 =?utf-8?B?eGkzd1p1QldkazdjQlF6RVB5R05zVGtuOFZOUTZyL2xTMnpxTXFoQW1xWUZQ?=
 =?utf-8?B?cGtvQUp4NWlILzUzNmVzNy80SkFDRFp0allkTW1xc1Fqb0JlcUxTWkZsSG1u?=
 =?utf-8?B?dWFMZURjYlhMQ0dqQVp0ZG1tbVUrajc4V2FyRjd4S2VldUtVVU1TaGZMc1hH?=
 =?utf-8?B?R20yY3NiTWVvMzJ2R1RXeUtiL01VK3BJVjA5YkN3cXBXSng1VDU3Q3VJNS9R?=
 =?utf-8?B?c1hBUWpKa2hJRUtEWi9NMG16NEtTQ3BvM0dKN21PaDVvbHczbUluQndNVU5R?=
 =?utf-8?B?Q2lCaDh5WFc2VThKZERDWnI3eUVUb09UTXdIRnMrTCtMUUtndGcwdXdKZnFa?=
 =?utf-8?B?ZHVwY29uQ1Q5aGNkaFdUWVFramloV0NrMjlOS2dXYW9iRGc1OHF4V29qcStw?=
 =?utf-8?B?VGJHczRrL3MreWZualA4a1ZkbGVxV1BaRWlHMzU4N2ZIdDBjVmJVQlF1bW1M?=
 =?utf-8?B?YlhNSzdsS3dtSjJGUGRYYWRraFhrQ2Fjb05pbkVtS2tjWGxDRDlJQitFS3p0?=
 =?utf-8?B?eEt6UWF4b2hteGo3cEtpMWIvekI1ZnBpaWx0aTluZVAwZGRsRzU2NlQxelRY?=
 =?utf-8?B?VGVQUEN4YTBuRGNNWkVvRzdxVFVmY3psYm93SEhIUnF0RStRV1dLbXhPNkdS?=
 =?utf-8?B?SWpZN3VVM3FMU3d4d0dJN3h3eVhjOG9yU0xmOUdSd1Q2TnJzMjg5T0lMdHZZ?=
 =?utf-8?B?YWdsQ1V4MjNrTVFPL05GVWFZWUVzeHdYcTBGanJvQVg2dFVBU2dRbU81bWpE?=
 =?utf-8?B?OS9HclBDVTN5Vk05UzdwdDkyY3JNVk1seGJDM2ttc0hOYjNFVnNoRm9vQjBu?=
 =?utf-8?B?bjBuV2ttOWMyUjIrNFJSS09BRk1odGtRSC82bzBxWEgxbWMwSlNQOTFjbk1V?=
 =?utf-8?B?QTA5RTkwelRpRlZCYXVkR0Jhc203RzR3MnJMcU84RC85cGJYWUsrWmE1Zllv?=
 =?utf-8?B?Qk00VmNNNXR0V21xTHVrY2l2VVpiY25kQVJDSXJHYWU1bTRjM3U5bkl3bkRU?=
 =?utf-8?B?SzArUC8zZDk5b0UzVFJvM2NZLzV1SXpoak9UQzNyWHc3UE05blRWb1BVTjBs?=
 =?utf-8?B?bEZRKys2SjhCRzBELzF2emlwSzMyUHRBcHNKa3lmOGZsTjlBajNkeDZQcS9i?=
 =?utf-8?B?M3FCOWpIblMveHNxTWdJNWVHd0NvQzFFZUJFaVkxdWNvS0c1MWw4Nm8wSE5C?=
 =?utf-8?B?K0p6NFBrUEw3dW1SWnhkaytIcFVIR3ladnpWTlFoaUU4R0J1MW5qNXVhUFpl?=
 =?utf-8?B?ZTZybFkxd2x3Wmc5bVRhT0szSzRwcVNqUjRsc25zam90ZUZ2bHVWRTh0SVdY?=
 =?utf-8?B?YVk3bTF6Q1BXZDZPbWIrSG1hdzQyUlFTSytkdVVkY0VLTHY1OGNQNjdLbkpG?=
 =?utf-8?B?WmtLWkxwNlVZemJqMEFsdVVieHlTY0V6aWd3WFdPL0k4THFJdjRvUFNZdFQx?=
 =?utf-8?B?dHpNNU53d2pHdk5CbXNrbzB5aUpCb3pLY204UmNENSszRGc9PQ==?=
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)(7416014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?SHZJUFNuUFZ6Z3BOR0ZwUlMxdmpsMncycThSdlg1aDNvUFpyS1BOTDkzcW9D?=
 =?utf-8?B?bmp6N3dNc2gzUUNUa1g0cHhXSmFmbjFxNkhvMVZyRmtVK0JZR2p5QkNKKzd2?=
 =?utf-8?B?ZWg3UnBoZUtaenFSbG9qeUpGcDJ4ZUI3cHNjbHVwc2xyMnpzeEtYWjRIS1dZ?=
 =?utf-8?B?MzM2bnd6ajRWUWFtOHp1bklwQlVYWDVCenEyRFpua2ttaFdyVzRaM2lmcnlX?=
 =?utf-8?B?dzU0ZXRCRWtHU2JUZkgreHVqSE1Ea1dWeHpKYVRmZ3hYUDlPUmYwM1ZLekR6?=
 =?utf-8?B?MlhIQjhVVHVGUU0zejU1NGpoeTE4eThydHlKQm15VzBtZFNmcVA2MFNoclJ1?=
 =?utf-8?B?ekNTZUlOdEd0ZGRVL0s4clZkaVdsREJwZkNzdHBhVHlFeXBidmVQd2xLaEo3?=
 =?utf-8?B?UHlPblM0L2xCeXNsN1J6ZHhoVzVPN0dackRpRDg0RlNyWjFmVFNCYmtWMWZV?=
 =?utf-8?B?VGxQNlRJRXZ1cGs0YWFLT2tmbFJmbDZ0U29xbkVWdEhnRE5meGt5M3diMVRY?=
 =?utf-8?B?dXBaRFBzNHVTdnQxOVE0dnNGUEt2VVZ5M0hqVXZtdFBoYXE3bWFLOEN1WHUx?=
 =?utf-8?B?ajg0SCtScnJUK0czN3RVa0FISWt3RUpVOXY4MVdUN1Mya1N5RFZGbTNFbll6?=
 =?utf-8?B?amo2THlyMDA4S0dpZXdva3dTQUYyVU42b3hyRVpmZ3l1V1A1R1ZUTkt6S2V5?=
 =?utf-8?B?MSsvOGthbkQ5SjFtZGRLdmZDZzFRNDJRd2xuTnR5ZEQ2Zm9rWTdHVGlrM1dk?=
 =?utf-8?B?RGZKajJYcFd3N3NBR2NVT3NvQXArbTk5M2srVGNOOE5XbWVqbU9tZlp6L2pM?=
 =?utf-8?B?OFk1UVAxNEs4WklnZ1ZXck4zR1cyNmtiSmJhL3F1bFowcHZZTXhVMFI0VUU5?=
 =?utf-8?B?V2p6M0FHY3dxbHhyaDBuM0x1d2FwaVlzcmVqMStxQitHVmtEQTBzakVNVmw1?=
 =?utf-8?B?RjYrbFg5VDlqTDFITnlUSlpXellEckFDNTE0eCtYYkN5VDBhSUh0Nit4czFB?=
 =?utf-8?B?OEczVmZIMFBvZ3Y4YTh4ekJ1OWxHRHBuWlJxd1BQWjcvek52UFZjL1ljcGNz?=
 =?utf-8?B?akpZRVRadXR5dy9XR0hWeWdSZzYwdS9GMXQvZVFXY3NnTGZSSXFCN2dDQ2RO?=
 =?utf-8?B?VGlaQXR2N0l6Q084bi8ycDQvakRkb0orQ3NJakVKM0Q1K0dpd0tQL0pWRXNJ?=
 =?utf-8?B?d3R2OUszTHliZ1NVUTJ1SHI3dmR2N1RRZjNwSlRRZU1ON0FTZUhVRlZXMG1S?=
 =?utf-8?B?YnN2WVFvUWVLRkpINHgzaEFaSVRQMHkxN0pYZ0lFTDhlUjZoUGo5K3BXeHR6?=
 =?utf-8?B?ODBPQ0ZsdnIyNENZcG5VWHV4SDVHT0RoZmJ2a3J2ZnIwRGhOVDhqZ3lXbmFu?=
 =?utf-8?B?dCtOREhFOGFQUWtPYlFNMXc2b3AydDR6dmVrMEFPVWpkS0JzSTdPdkE5aE5q?=
 =?utf-8?B?MFNmREUxZHplRDgvNSs1S21nOGZ1TEVoNUxQM2VMRUFuelNxSHdya2N4QlZr?=
 =?utf-8?B?eTBHdGlrRnVLL3oyR3lsVjk1Ulh3cWs1eVkzZUx3dzkwaG5saEZQZzV0S3Jj?=
 =?utf-8?B?OGV5L1BhWmRYUDg0djZmaU1FY0N2N3BydmpGRDZKOXVCZlJOVGdYWWxlaVNC?=
 =?utf-8?B?VGs5VXhJb2Q4V1dVRmp2UEFxUFQreXNZRWZBZXhaRENnT0ZEakYrUExISUFC?=
 =?utf-8?B?NVZqeHRMTFk3NmpDcjQ1OVdWdHhDd3pRU3d1YVVGblBIU3ZzSmR3LzNWK3lu?=
 =?utf-8?B?ZVdVSWh1L0NsQXlWRmtZa2cvTFg2ckY3Q3dRd280M0poaVFtUEJEYlUvZFJk?=
 =?utf-8?B?TGNsdlR6UFpEQStZMVdpOVNibWVNcS9yZmJXbUhqbHVRZ01LY3lNSWVkem85?=
 =?utf-8?B?aFdlQklXRGtxQ3NDVG5oZHArQm5kWS9ybUtUVkcyM0htNklxdEJCenRzUWlV?=
 =?utf-8?B?aTFZbXU5anlwcHJVUUFzRnVXQzdCdmYvdjZwYzV4WFFQWmNxWmxCMVhSVUIv?=
 =?utf-8?B?VEVTNDdHQXI2bG45aUdmaGJ6dTNNNHR3dFZoOGo2VmhGZi9JZzRZMjNXRUxq?=
 =?utf-8?B?anZOdkQ3ODN0MktXRTRyNTJVa21PRTFBUTlKYkpSVTNYNHUvTU1rTC9BTEk0?=
 =?utf-8?Q?PJA8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <ECC6FA85A557024FBF5836FF98DC9F88@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: 26e4f521-9432-4bc5-d866-08dc9ef59ca9
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jul 2024 02:28:11.1740
 (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: 2OgiVHMEkAwEA+Rke4OsED86wUuapHPX1nG4ErWViYSQGbalciIWwLtIPKKoHOaQqiVAWbPuEgtEPI6i3+1I+w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6226

T24gMjAyNC83LzQgMjE6MzMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAzMC4wNi4yMDI0IDE0
OjMzLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IEBAIC0yMzcsNiArMjM4LDM4IEBAIGxvbmcgYXJj
aF9kb19kb21jdGwoDQo+PiAgICAgICAgICBicmVhazsNCj4+ICAgICAgfQ0KPj4gIA0KPj4gKyAg
ICBjYXNlIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb246DQo+PiArICAgIHsNCj4+ICsgICAgICAg
IGludCBpcnE7DQo+PiArICAgICAgICB1aW50OF90IG1hc2sgPSAxOw0KPj4gKyAgICAgICAgdW5z
aWduZWQgaW50IGdzaSA9IGRvbWN0bC0+dS5nc2lfcGVybWlzc2lvbi5nc2k7DQo+PiArICAgICAg
ICBib29sIGFsbG93ID0gZG9tY3RsLT51LmdzaV9wZXJtaXNzaW9uLmFsbG93X2FjY2VzczsNCj4+
ICsNCj4+ICsgICAgICAgIC8qIENoZWNrIGFsbCBiaXRzIGFuZCBwYWRzIGFyZSB6ZXJvIGV4Y2Vw
dCBsb3dlc3QgYml0ICovDQo+PiArICAgICAgICByZXQgPSAtRUlOVkFMOw0KPj4gKyAgICAgICAg
aWYgKCBkb21jdGwtPnUuZ3NpX3Blcm1pc3Npb24uYWxsb3dfYWNjZXNzICYgKCAhbWFzayApICkN
Cj4+ICsgICAgICAgICAgICBnb3RvIGdzaV9wZXJtaXNzaW9uX291dDsNCj4gDQo+IEknbSBwcmV0
dHkgc3VyZSB0aGF0IGlmIHlvdSBoYWQsIGFzIHdvdWxkIGhhdmUgYmVlbiBleHBlY3RlZCwgYWRk
ZWQgYQ0KPiAjZGVmaW5lIHRvIHRoZSBwdWJsaWMgaGVhZGVyIGZvciBqdXN0IHRoZSBsb3cgYml0
IHlvdSBhc3NpZ24gbWVhbmluZyB0bywNCj4geW91IHdvdWxkbid0IGhhdmUgY2F1c2VkIHlvdXJz
ZWxmIHByb2JsZW1zIGhlcmUuIEZvciBvbmUsIHRoZQ0KPiBpbml0aWFsaXplciBmb3IgImFsbG93
IiB3aWxsIGJlIGVhc3kgdG8gbWlzcyBpZiBtZWFuaW5nIGlzIGFzc2lnbmVkIHRvDQo+IGFub3Ro
ZXIgb2YgdGhlIGJpdHMuIEl0IHNhZGx5IF9zdGlsbF8gdGFrZXMgdGhlIGZ1bGwgOCBiaXRzIGFu
ZA0KPiBjb252ZXJ0cyB0aG9zZSB0byBhIGJvb2xlYW4uIEFuZCB0aGVuIHRoZSBjaGVjayBoZXJl
IHdvbid0IHdvcmsgZWl0aGVyLg0KPiBJIGRvbid0IHNlZSB3aGF0IHVzZSB0aGUgbG9jYWwgdmFy
aWFibGUgIm1hc2siIGlzLCBidXQgYXQgdGhlIHZlcnkNCj4gbGVhc3QgSSBleHBlY3QgaW4gcGxh
Y2Ugb2YgISB5b3UgbWVhbiB+IHJlYWxseS4NCj4gDQo+PiArICAgICAgICBmb3IgKCBpID0gMDsg
aSA8IEFSUkFZX1NJWkUoZG9tY3RsLT51LmdzaV9wZXJtaXNzaW9uLnBhZCk7ICsraSApDQo+PiAr
ICAgICAgICAgICAgaWYgKCBkb21jdGwtPnUuZ3NpX3Blcm1pc3Npb24ucGFkW2ldICkNCj4+ICsg
ICAgICAgICAgICAgICAgZ290byBnc2lfcGVybWlzc2lvbl9vdXQ7DQo+PiArDQo+PiArICAgICAg
ICBpZiAoIGdzaSA+PSBucl9pcnFzX2dzaSB8fCAoIGlycSA9IGdzaV8yX2lycShnc2kpICkgPCAw
ICkNCj4gDQo+IG5yX2lycXNfZ3NpIGlzIHRoZSB1cHBlciBib3VuZCBvbiBJUlFzIHJlcHJlc2Vu
dGluZyBhIEdTSTsgYXMgc2FpZCBiZWZvcmUsDQo+IEdTSXMgYW5kIElSUXMgYXJlIGRpZmZlcmVu
dCBudW1iZXIgc3BhY2VzLCBhbmQgaGVuY2UgeW91IGNhbid0IGNvbXBhcmUNCj4gZ3NpIGFnYWlu
c3QgbnJfaXJxc19nc2kuIFRoZSAoaW5jbHVzaXZlKSB1cHBlciBib3VuZCBvbiAodmFsaWQpIEdT
SXMgaXMNCj4gbXBfaW9hcGljX3JvdXRpbmdbbnJfaW9hcGljcyAtIDFdLmdzaV9lbmQsIG9yIHRo
ZSByZXR1cm4gdmFsdWUgb2YNCj4gaGlnaGVzdF9nc2koKS4NCldpbGwgY2hhbmdlIHRvIGhpZ2hl
c3RfZ3NpIGluIG5leHQgdmVyc2lvbi4NCg0KPiANCj4gQWxzbywgc3R5bGUgbml0OiBCbGFua3Mg
YmVsb25nIGltbWVkaWF0ZWx5IGluc2lkZSBwYXJlbnRoZXNlcyBvbmx5IGZvciB0aGUNCj4gb3V0
ZXIgcGFpciBvZiBjb250cm9sIHN0YXRlbWVudHM7IG5vIGlubmVyIGV4cHJlc3Npb25zIHNob3Vs
ZCBoYXZlIHRoZW0gdGhpcw0KPiB3YXkuDQo+IA0KPiBGaW5hbGx5IEknZCBsaWtlIHRvIGFzayB0
aGF0IHlvdSB1c2UgIjw9IDAiLCBhcyB3ZSBkbyBpbiB2YXJpb3VzIHBsYWNlcw0KPiBlbHNld2hl
cmUuIElSUTAgaXMgdGhlIHRpbWVyIGludGVycnVwdDsgd2UgbmV2ZXIgd2FudCB0byBoYXZlIHRo
YXQgdXNlZCBieQ0KPiBhbnkgZW50aXR5IG91dHNpZGUgb2YgWGVuIGl0c2VsZi4NCj4gDQo+PiAt
LS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgNCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3B1
YmxpYy9kb21jdGwuaA0KPj4gQEAgLTQ2NCw2ICs0NjQsMTIgQEAgc3RydWN0IHhlbl9kb21jdGxf
aXJxX3Blcm1pc3Npb24gew0KPj4gICAgICB1aW50OF90IHBhZFszXTsNCj4+ICB9Ow0KPj4gIA0K
Pj4gKy8qIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb24gKi8NCj4+ICtzdHJ1Y3QgeGVuX2RvbWN0
bF9nc2lfcGVybWlzc2lvbiB7DQo+PiArICAgIHVpbnQzMl90IGdzaTsNCj4+ICsgICAgdWludDhf
dCBhbGxvd19hY2Nlc3M7ICAgIC8qIGZsYWcgdG8gc3BlY2lmeSBlbmFibGUvZGlzYWJsZSBvZiB4
ODYgZ3NpIGFjY2VzcyAqLw0KPiANCj4gU2VlIGFib3ZlLiBJdCdzIG5vdCB0aGUgZmllbGQgdGhh
dCBzZXJ2ZXMgYXMgYSBmbGFnIGZvciB0aGUgcHVycG9zZSB5b3UNCj4gc3RhdGUsIGJ1dCBqdXN0
IHRoZSBsb3cgYml0LiBZb3Ugd2FudCB0byByZW5hbWUgdGhlIGZpZWxkIChmbGFncz8pIGFuZA0K
PiAjZGVmaW5lIGEgc3VpdGFibGUgY29uc3RhbnQuDQoNCllvdSBtZWFuPw0KDQpzdHJ1Y3QgeGVu
X2RvbWN0bF9nc2lfcGVybWlzc2lvbiB7DQogICAgdWludDMyX3QgZ3NpOw0KI2RlZmluZSBHU0lf
UEVSTUlTU0lPTl9NQVNLICAgIDENCiNkZWZpbmUgR1NJX1BFUk1JU1NJT05fRElTQUJMRSAwDQoj
ZGVmaW5lIEdTSV9QRVJNSVNTSU9OX0VOQUJMRSAgMQ0KICAgIHVpbnQ4X3QgYWNjZXNzX2ZsYWc7
ICAgIC8qIGZsYWcgdG8gc3BlY2lmeSBlbmFibGUvZGlzYWJsZSBvZiB4ODYgZ3NpIGFjY2VzcyAq
Lw0KICAgIHVpbnQ4X3QgcGFkWzNdOw0KfTsNCg0KPiANCj4gSmFuDQoNCi0tIA0KQmVzdCByZWdh
cmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 04:10:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 04:10:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754981.1163237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQfhp-0000JF-0A; Mon, 08 Jul 2024 04:10:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754981.1163237; Mon, 08 Jul 2024 04:10:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQfho-0000J8-TR; Mon, 08 Jul 2024 04:10:24 +0000
Received: by outflank-mailman (input) for mailman id 754981;
 Mon, 08 Jul 2024 04:10:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQfhn-0000Iw-5L; Mon, 08 Jul 2024 04:10:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQfhm-0006lD-VK; Mon, 08 Jul 2024 04:10:23 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQfhm-0000RR-8r; Mon, 08 Jul 2024 04:10:22 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQfhm-00061V-7l; Mon, 08 Jul 2024 04:10:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Bv0Vg623jSGV3M4nUosnnKsWPRRS0f2XN4XM1yb7nAo=; b=7IlEDavqpg+Y4tmO6ypixk6uTF
	gIyCITRbKCu5UyWxA9nIiGh0hWNWY/zQVCKLmGFIpxWkJqdAmiwca/ZfIlL+GeABQPMPJVQ8Wljdr
	3Z98UlRvb4N5tNfdww1HkGpnjOyXk5eRyiGCQ5JA29qWkU0YYpRTg7nw/3ptxNPnDoFE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186724-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186724: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-examine:reboot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5a4bd506ddad75f1f2711cfbcf7551a5504e3f1e
X-Osstest-Versions-That:
    linux=c6653f49e4fd3b0d52c12a1fc814d6c5b234ea15
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Jul 2024 04:10:22 +0000

flight 186724 linux-linus real [real]
flight 186725 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186724/
http://logs.test-lab.xenproject.org/osstest/logs/186725/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 186720
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 186720
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 186720

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-vhd  8 xen-boot            fail pass in 186725-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check fail in 186725 never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check fail in 186725 never pass
 test-armhf-armhf-examine      8 reboot                       fail  like 186720
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186720
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186720
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186720
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186720
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186720
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                5a4bd506ddad75f1f2711cfbcf7551a5504e3f1e
baseline version:
 linux                c6653f49e4fd3b0d52c12a1fc814d6c5b234ea15

Last test of basis   186720  2024-07-07 04:19:59 Z    0 days
Testing same since   186724  2024-07-07 18:42:19 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Bjorn Andersson <andersson@kernel.org>
  Chen-Yu Tsai <wens@csie.org>
  Frank Oltmanns <frank@oltmanns.dev>
  Gabor Juhos <j4g8y7@gmail.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Luca Weiss <luca.weiss@fairphone.com>
  Md Sadre Alam <quic_mdalam@quicinc.com>
  Pin-yen Lin <treapking@chromium.org>
  Robert J. Pafford <pafford.9@buckeyemail.osu.edu>
  Stephen Boyd <sboyd@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 5a4bd506ddad75f1f2711cfbcf7551a5504e3f1e
Merge: c6653f49e4fd 10f84de27bd0
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Jul 7 10:59:38 2024 -0700

    Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
    
    Pull clk fixes from Stephen Boyd:
     "A set of clk fixes for the Qualcomm, Mediatek, and Allwinner drivers:
    
       - Fix the Qualcomm Stromer Plus PLL set_rate() clk_op to explicitly
         set the alpha enable bit and not set bits that don't exist
    
       - Mark Qualcomm IPQ9574 crypto clks as voted to avoid stuck clk
         warnings
    
       - Fix the parent of some PLLs on Qualcomm sm6530 so their rate is
         correct
    
       - Fix the min/max rate clamping logic in the Allwinner driver that
         got broken in v6.9
    
       - Limit runtime PM enabling in the Mediatek driver to only
         mt8183-mfgcfg so that system wide resume doesn't break on other
         Mediatek SoCs"
    
    * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
      clk: mediatek: mt8183: Only enable runtime PM on mt8183-mfgcfg
      clk: sunxi-ng: common: Don't call hw_to_ccu_common on hw without common
      clk: qcom: gcc-ipq9574: Add BRANCH_HALT_VOTED flag
      clk: qcom: apss-ipq-pll: remove 'config_ctl_hi_val' from Stromer pll configs
      clk: qcom: clk-alpha-pll: set ALPHA_EN bit for Stromer Plus PLLs
      clk: qcom: gcc-sm6350: Fix gpll6* & gpll7 parents

commit 10f84de27bd05bd2648512975d085dbe0a1e71c3
Merge: 878e845d8db0 72ceafb587a5
Author: Stephen Boyd <sboyd@kernel.org>
Date:   Tue Jul 2 12:03:15 2024 -0700

    Merge tag 'qcom-clk-fixes-for-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into clk-fixes
    
    Pull Qualcomm clk driver fixes from Bjorn Andersson:
    
     - Correct the Stromer Plus PLL set_rate to explicitly set ALPHA_EN bit and
       remove unnecessary upper parts of CONFIG_CTL values.
     - Mark the recently added IPQ9574 GCC crypto clocks BRANCH_HALT_VOTED, to
       address stuck clock warnings.
     - Fix the GPLL6 and GPLL7 parents on SM6350 to avoid issues with these
       reportedly running at ~25GHz.
    
    * tag 'qcom-clk-fixes-for-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
      clk: qcom: gcc-ipq9574: Add BRANCH_HALT_VOTED flag
      clk: qcom: apss-ipq-pll: remove 'config_ctl_hi_val' from Stromer pll configs
      clk: qcom: clk-alpha-pll: set ALPHA_EN bit for Stromer Plus PLLs
      clk: qcom: gcc-sm6350: Fix gpll6* & gpll7 parents

commit 878e845d8db04df9ff3bbbaac09d335b24153704
Author: Pin-yen Lin <treapking@chromium.org>
Date:   Thu Jun 13 20:02:28 2024 +0800

    clk: mediatek: mt8183: Only enable runtime PM on mt8183-mfgcfg
    
    Commit 2f7b1d8b5505 ("clk: mediatek: Do a runtime PM get on controllers
    during probe") enabled runtime PM for all mediatek clock controllers,
    but this introduced an issue on the resume path.
    
    If a device resumes earlier than the clock controller and calls
    clk_prepare() when runtime PM is enabled on the controller, it will end
    up calling clk_pm_runtime_get(). But the subsequent
    pm_runtime_resume_and_get() call will fail because the runtime PM is
    temporarily disabled during suspend.
    
    To workaround this, introduce a need_runtime_pm flag and only enable it
    on mt8183-mfgcfg, which is the driver that observed deadlock previously.
    Hopefully mt8183-cfgcfg won't run into the issue at the resume stage
    because the GPU should have stopped rendering before the system calls
    suspend.
    
    Fixes: 2f7b1d8b5505 ("clk: mediatek: Do a runtime PM get on controllers during probe")
    Signed-off-by: Pin-yen Lin <treapking@chromium.org>
    Link: https://lore.kernel.org/r/20240613120357.1043342-1-treapking@chromium.org
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit f7275fdf945cc91217dfba75d8c9e984c1dab05c
Merge: 2607133196c3 ea977d742507
Author: Stephen Boyd <sboyd@kernel.org>
Date:   Mon Jul 1 13:18:29 2024 -0700

    Merge tag 'sunxi-clk-fixes-for-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into clk-fixes
    
    Pull one Allwinner SoC clk driver fix for 6.10
    
     - Fix min/max rate clamping that caused a regression back in 6.9
    
    * tag 'sunxi-clk-fixes-for-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
      clk: sunxi-ng: common: Don't call hw_to_ccu_common on hw without common

commit ea977d742507e534d9fe4f4d74256f6b7f589338
Author: Frank Oltmanns <frank@oltmanns.dev>
Date:   Sun Jun 23 10:45:58 2024 +0200

    clk: sunxi-ng: common: Don't call hw_to_ccu_common on hw without common
    
    In order to set the rate range of a hw sunxi_ccu_probe calls
    hw_to_ccu_common() assuming all entries in desc->ccu_clks are contained
    in a ccu_common struct. This assumption is incorrect and, in
    consequence, causes invalid pointer de-references.
    
    Remove the faulty call. Instead, add one more loop that iterates over
    the ccu_clks and sets the rate range, if required.
    
    Fixes: b914ec33b391 ("clk: sunxi-ng: common: Support minimum and maximum rate")
    Reported-by: Robert J. Pafford <pafford.9@buckeyemail.osu.edu>
    Closes: https://lore.kernel.org/lkml/DM6PR01MB58047C810DDD5D0AE397CADFF7C22@DM6PR01MB5804.prod.exchangelabs.com/
    Cc: stable@vger.kernel.org
    Signed-off-by: Frank Oltmanns <frank@oltmanns.dev>
    Tested-by: Robert J. Pafford <pafford.9@buckeyemail.osu.edu>
    Link: https://lore.kernel.org/r/20240623-sunxi-ng_fix_common_probe-v1-1-7c97e32824a1@oltmanns.dev
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>

commit 72ceafb587a56e26c905472418c7dc2033c294d3
Author: Md Sadre Alam <quic_mdalam@quicinc.com>
Date:   Thu May 9 16:24:05 2024 +0530

    clk: qcom: gcc-ipq9574: Add BRANCH_HALT_VOTED flag
    
    The crypto_ahb and crypto_axi clks are hardware voteable.
    This means that the halt bit isn't reliable because some
    other voter in the system, e.g. TrustZone, could be keeping
    the clk enabled when the kernel turns it off from clk_disable().
    Make these clks use voting mode by changing the halt check to
    BRANCH_HALT_VOTED and toggle the voting bit in the voting register
    instead of directly controlling the branch by writing to the branch
    register. This fixes stuck clk warnings seen on ipq9574 and saves
    power by actually turning the clk off.
    
    Also changes the CRYPTO_AHB_CLK_ENA & CRYPTO_AXI_CLK_ENA
    offset to 0xb004 from 0x16014.
    
    Cc: stable@vger.kernel.org
    Fixes: f6b2bd9cb29a ("clk: qcom: gcc-ipq9574: Enable crypto clocks")
    Signed-off-by: Md Sadre Alam <quic_mdalam@quicinc.com>
    Link: https://lore.kernel.org/r/20240509105405.1262369-1-quic_mdalam@quicinc.com
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>

commit 2ba8425678af422da37b6c9b50e9ce66f0f55cae
Author: Gabor Juhos <j4g8y7@gmail.com>
Date:   Thu May 9 10:08:04 2024 +0200

    clk: qcom: apss-ipq-pll: remove 'config_ctl_hi_val' from Stromer pll configs
    
    Since the CONFIG_CTL register is only 32 bits wide in the Stromer
    and Stromer Plus PLLs , the 'config_ctl_hi_val' values from the
    IPQ5018 and IPQ5332 configurations are not used so remove those.
    
    No functional changes.
    
    Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
    Reviewed-by: Kathiravan Thirumoorthy <quic_kathirav@quicinc.com>
    Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    Link: https://lore.kernel.org/r/20240509-stromer-config-ctl-v1-1-6034e17b28d5@gmail.com
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>

commit 5a33a64524e6381c399e5e42571d9363ffc0bed4
Author: Gabor Juhos <j4g8y7@gmail.com>
Date:   Wed May 8 22:34:14 2024 +0200

    clk: qcom: clk-alpha-pll: set ALPHA_EN bit for Stromer Plus PLLs
    
    The clk_alpha_pll_stromer_plus_set_rate() function does not
    sets the ALPHA_EN bit in the USER_CTL register, so setting
    rates which requires using alpha mode works only if the bit
    gets set already prior calling the function.
    
    Extend the function to set the ALPHA_EN bit in order to allow
    using fractional rates regardless whether the bit gets set
    previously or not.
    
    Fixes: 84da48921a97 ("clk: qcom: clk-alpha-pll: introduce stromer plus ops")
    Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
    Link: https://lore.kernel.org/r/20240508-stromer-plus-alpha-en-v1-1-6639ce01ca5b@gmail.com
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>

commit 3414f41a13eb41db15c558fbc695466203dca4fa
Author: Luca Weiss <luca.weiss@fairphone.com>
Date:   Wed May 8 10:12:53 2024 +0200

    clk: qcom: gcc-sm6350: Fix gpll6* & gpll7 parents
    
    Both gpll6 and gpll7 are parented to CXO at 19.2 MHz and not to GPLL0
    which runs at 600 MHz. Also gpll6_out_even should have the parent gpll6
    and not gpll0.
    
    Adjust the parents of these clocks to make Linux report the correct rate
    and not absurd numbers like gpll7 at ~25 GHz or gpll6 at 24 GHz.
    
    Corrected rates are the following:
    
      gpll7              807999902 Hz
      gpll6              768000000 Hz
         gpll6_out_even  384000000 Hz
      gpll0              600000000 Hz
         gpll0_out_odd   200000000 Hz
         gpll0_out_even  300000000 Hz
    
    And because gpll6 is the parent of gcc_sdcc2_apps_clk_src (at 202 MHz)
    that clock also reports the correct rate now and avoids this warning:
    
      [    5.984062] mmc0: Card appears overclocked; req 202000000 Hz, actual 6312499237 Hz
    
    Fixes: 131abae905df ("clk: qcom: Add SM6350 GCC driver")
    Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
    Link: https://lore.kernel.org/r/20240508-sm6350-gpll-fix-v1-1-e4ea34284a6d@fairphone.com
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 04:29:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 04:29:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.754991.1163247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQfzi-0002Q2-LC; Mon, 08 Jul 2024 04:28:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 754991.1163247; Mon, 08 Jul 2024 04:28: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 1sQfzi-0002Pv-Hs; Mon, 08 Jul 2024 04:28:54 +0000
Received: by outflank-mailman (input) for mailman id 754991;
 Mon, 08 Jul 2024 04:28: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=3k7x=OI=tesarici.cz=petr@srs-se1.protection.inumbo.net>)
 id 1sQfzg-0002Pp-UP
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 04:28:53 +0000
Received: from bee.tesarici.cz (bee.tesarici.cz [37.205.15.56])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 923a60d8-3ce2-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 06:28:48 +0200 (CEST)
Received: from meshulam.tesarici.cz
 (dynamic-2a00-1028-83b8-1e7a-b985-910f-39e1-703f.ipv6.o2.cz
 [IPv6:2a00:1028:83b8:1e7a:b985:910f:39e1:703f])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 by bee.tesarici.cz (Postfix) with ESMTPSA id C9E381E1B09;
 Mon,  8 Jul 2024 06:28:46 +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: 923a60d8-3ce2-11ef-8776-851b0ebba9a2
Authentication-Results: mail.tesarici.cz; dmarc=fail (p=quarantine dis=none) header.from=tesarici.cz
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tesarici.cz; s=mail;
	t=1720412928; bh=1pPgaaAUuuvdjbvYPtznmd4G2eWylFU6nvLlq3caKLY=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=bGYZm3GJbhcqN6KWJO6/rE2w8EeV+lF3OIJ8bEMkcrtNulH0q61e0gZgIJhwCG4Kn
	 kNhOjURA3dbzNo3tTDH+HAugNR2yRSIeytI52xUtesIyclt6L9F3RUWSpkhVlk+qob
	 YlqHN7lp8V13++PYy+Y5VZbYx/4ggIKzj2L23SZB93IxpeOFA772wfxgmUWIdUY+qY
	 rQEbyBptSnAZRgHlHeKNpZeGNfIp8Z9JOlQPyruAIZJQAhliyNc7E8xpmANTmQyjKF
	 wiWZ8BYwYKKTKVj2dSd8+bPK8xFV9h7ViNLOK6Qwx9cZbBXk/ZrxcPDZFWjfcwzwhN
	 gGK6uuFMvPhfQ==
Date: Mon, 8 Jul 2024 06:28:45 +0200
From: Petr =?UTF-8?B?VGVzYcWZw61r?= <petr@tesarici.cz>
To: Michael Kelley <mhklinux@outlook.com>
Cc: Christoph Hellwig <hch@lst.de>, "robin.murphy@arm.com"
 <robin.murphy@arm.com>, "joro@8bytes.org" <joro@8bytes.org>,
 "will@kernel.org" <will@kernel.org>, "jgross@suse.com" <jgross@suse.com>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 "oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
 "m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
 "iommu@lists.linux.dev" <iommu@lists.linux.dev>,
 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 1/1] swiotlb: Reduce swiotlb pool lookups
Message-ID: <20240708062845.10e379b3@meshulam.tesarici.cz>
In-Reply-To: <SN6PR02MB4157141FBF8252BDEAD831C1D4D92@SN6PR02MB4157.namprd02.prod.outlook.com>
References: <20240701165746.1358-1-mhklinux@outlook.com>
	<20240706055019.GA13280@lst.de>
	<SN6PR02MB4157141FBF8252BDEAD831C1D4D92@SN6PR02MB4157.namprd02.prod.outlook.com>
X-Mailer: Claws Mail 4.3.0 (GTK 3.24.42; x86_64-suse-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Sun, 7 Jul 2024 02:11:48 +0000
Michael Kelley <mhklinux@outlook.com> wrote:

> From: Christoph Hellwig <hch@lst.de> Sent: Friday, July 5, 2024 10:50 PM
> >=20
> > Hi Michael,
> >=20
> > I like the idea behind this, but can you respin it to avoid some of
> > the added code duplication.  We have a lot of this pattern:
> >=20
> > 	pool =3D swiotlb_find_pool(dev, paddr);
> > 	if (pool)
> > 		swiotlb_foo(dev, ...
> >=20
> > duplicated in all three swiotlb users.  If we rename the original
> > swiotlb_foo to __swiotlb_foo and add a little inline wrapper this is
> > de-duplicated and also avoids exposing swiotlb_find_pool to the
> > callers. =20
>=20
> This works pretty well. It certainly avoids the messiness of declaring
> a "pool" local variable and needing a separate assignment before the
> "if" statement, in each of the 9 call sites. The small downside is that
> it looks like a swiotlb function is called every time, even though
> there's usually an inline bailout. But that pattern occurs throughout
> the kernel, so not a big deal.
>=20
> I initially coded this change as a separate patch that goes first. But
> the second patch ends up changing about 20 lines that are changed
> by the first patch. It's hard to cleanly tease them apart. So I've gone
> back to a single unified patch. But let me know if you think it's worth
> the extra churn to break them apart.
>=20
> >=20
> > If we then stub out swiotlb_find_pool to return NULL for !CONFIG_SWIOTL=
B,
> > we also don't need extra stubs for all the __swiotlb_ helpers as the
> > compiler will eliminate the calls as dead code. =20
>=20
> Yes, this works as long as the declarations for the __swiotlb_foo
> functions are *not* under CONFIG_SWIOTLB. But when compiling with
> !CONFIG_SWIOTLB on arm64 with gcc-8.5.0, two tangentially related
> compile errors occur. iommu_dma_map_page() references
> swiotlb_tlb_map_single(). The declaration for the latter is under
> CONFIG_SWIOTLB. A similar problem occurs with dma_direct_map_page()
> and swiotlb_map(). Do later versions of gcc not complain when the
> reference is in dead code? Or are these just bugs that occurred because
> !CONFIG_SWIOTLB is rare? If the latter, I can submit a separate patch to
> move the declarations out from under CONFIG_SWIOTLB.
>=20
> >=20
> > I might be missing something, but what is the reason for using the
> > lower-level __swiotlb_find_pool in swiotlb_map and xen_swiotlb_map_page?
> > I can't see a reason why the simple checks in swiotlb_find_pool itself
> > are either wrong or a performance problem there.   =20
>=20
> Yes, swiotlb_find_pool() could be used instead of __swiotlb_find_pool().
>=20
> > Because if we don't
> > need these separate calls we can do away with __swiotlb_find_pool
> > for !CONFIG_SWIOTLB_DYNAMIC and simplify swiotlb_find_pool quite
> > a bit like this:
> >=20
> > 	...
> >=20
> > 	if (!mem)
> > 		return NULL;
> >=20
> > 	if (IS_ENABLED(CONFIG_SWIOTLB_DYNAMIC)) { =20
>=20
> The "IS_ENABLED" doesn't work because the dma_uses_io_tlb
> field in struct dev is under CONFIG_SWIOTLB_DYNAMIC. I guess
> it could be moved out, but that's going further afield. So I'm back
> to using #ifdef.
>=20
> > 		smp_rmb();
> > 		if (!READ_ONCE(dev->dma_uses_io_tlb))
> > 			return NULL;
> > 		return __swiotlb_find_pool(dev, paddr);
> > 	}
> >=20
> > 	if (paddr < mem->defpool.start || paddr >=3D mem->defpool.end)
> > 		return NULL;
> > 	return &dev->dma_io_tlb_mem->defpool; =20
>=20
> Petr Tesa=C5=99=C3=ADk had commented [1] on my original RFC suggesting th=
at
> __swiotlb_find_pool() be used here instead of open coding it. With
> the changes you suggest, __swiotlb_find_pool() is needed only in
> the CONFIG_SWIOTLB_DYNAMIC case, and I would be fine with just
> open coding the address of defpool here. Petr -- are you OK with
> removing __swiotlb_find_pool when !CONFIG_SWIOTLB_DYNAMIC,
> since this is the only place it would be used?

Yes. I have never had strong opinion about it, I merely saw the
opportunity when it was low-hanging fruit, but it's definitely not
worth adding complexity.

Petr T


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 06:26:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 06:26:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755006.1163256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQhpO-0007Kw-MU; Mon, 08 Jul 2024 06:26:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755006.1163256; Mon, 08 Jul 2024 06:26:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQhpO-0007Kp-Jz; Mon, 08 Jul 2024 06:26:22 +0000
Received: by outflank-mailman (input) for mailman id 755006;
 Mon, 08 Jul 2024 06:26: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=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQhpM-0007Kj-KF
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 06:26:20 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20620.outbound.protection.outlook.com
 [2a01:111:f400:7ea9::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa9c45d6-3cf2-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 08:26:16 +0200 (CEST)
Received: from SA0PR11CA0144.namprd11.prod.outlook.com (2603:10b6:806:131::29)
 by MW4PR12MB8610.namprd12.prod.outlook.com (2603:10b6:303:1ef::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.34; Mon, 8 Jul
 2024 06:26:12 +0000
Received: from SN1PEPF00026367.namprd02.prod.outlook.com
 (2603:10b6:806:131:cafe::5c) by SA0PR11CA0144.outlook.office365.com
 (2603:10b6:806:131::29) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35 via Frontend
 Transport; Mon, 8 Jul 2024 06:26:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF00026367.mail.protection.outlook.com (10.167.241.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Mon, 8 Jul 2024 06:26: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; Mon, 8 Jul
 2024 01:26: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: fa9c45d6-3cf2-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dsfo8dPeKnFft4b0tFK/ZgN1P6Q8tDAQKwakGgK+z5Zb1RR50fjL4qYNCIAnWz2SQC2tOsxeQsSZEfh8q83ttA+UloQo4YV/silIEBzP0hhjNLpx8YupA1dUnufiOtktyG1Ut65NBJNsHe9T1neGUoeStYqkOb1aHU1cNcgMKDP3fDChpPSOEAMGjW6F/VbKcxhV+TpbQnKXTiFmOobnCN2OZlCTizhcaz76/7PONU6rRIB/dpNvgTaNA2yv1kCFI5E0TnjXdQK1an/IlpvE05iorHNVxtD4g14dUV+BQRlLsFrBP2K7XLp5g82Jx9XJyMRiMP4/mRdx2L6KcJCcqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/tohzRVqTI0hSAsmX0f+iY/yn1JVZZtLAdvD2aQ6XSg=;
 b=So6GeBiX6wmDg+KTQZ17PpWOVmOQDxOFsIRgSqfYsoVZd99OUeDdoUme3m0ZmrB8tPK2bX0cKtP2V6hgbYvHoCjvyuNiO06xK+Va4Gl+v+WdZD0Uk+75U8T8XKD83HyDYvF+lQ+zfsn+Njwgi21JaEn4UgAXnP0YRM4CKBcmg0NDLjfSQS6wL2ktvipaxAOcxyHVC5Cwqa1ts3SldlE/+9Brni0EAgAxqqrX9arTesZRa8AWgEl4WmDWS8wRO+4zFq1fAdZBH5Hiid0HjzNeJydd4BHri+QCAHJja1dz4qqVk4SIVeheIcMfU5u9piUAUfmW2gsjcuVB79Sed5Wn6w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/tohzRVqTI0hSAsmX0f+iY/yn1JVZZtLAdvD2aQ6XSg=;
 b=GPyyScZwIUFv4tj0FztLsUCYp1fmb4hnzNa0maz1IXLo1VdA/qUcdegHNqT86f9TFcI/FWKoJxp+ZkUk4Diw92fmY5L/EHbJEXSNLvu4uAPj+UyTYTEbJTgQkZCs97g+iuTKu12dZnC6jzF4AtKKSH2Jk1PJ31MjMF4fbDjzXIU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, "Huang
 Rui" <Ray.Huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>, Huang Rui
	<ray.huang@amd.com>
Subject: [PATCH for-4.19] x86/physdev: Return pirq that irq was already mapped to
Date: Mon, 8 Jul 2024 14:25:54 +0800
Message-ID: <20240708062554.399784-1-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00026367:EE_|MW4PR12MB8610:EE_
X-MS-Office365-Filtering-Correlation-Id: 7bdd9a74-8340-4c28-cb24-08dc9f16dcae
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?9OQ3HLlDa8gGWh5c/+ieer2X4oXHq9Vd8K0w33DqArjQe2Ym5OhJbi/JkyB0?=
 =?us-ascii?Q?M5pZKNpa8F4+IUus9kLIsiK9aMWIxjinGG/RzWOh7PzKcgJm9ndvVRwCu787?=
 =?us-ascii?Q?mKDplgl1yxvvi58mvvIDiZ1axMxvNKMRzZDIrS2nTI8Twr2pDx0hBsLGp9hA?=
 =?us-ascii?Q?P37bdNTsgJjOXopT1GV3/6+eLt1jDU0vY6+W92xiZk3QmwJKOUi6PFQv6bWa?=
 =?us-ascii?Q?ghNveQ/xZJYr0ynUm0V9D6LfQ+ndsigi/frqHpVyBH/3vRgu6z7Dqfc0/hiV?=
 =?us-ascii?Q?GOeEasqmEBbKi39mblZsU2b4AXUrEMy/stLm2bO27gevNfGLBB/sBb/sCgy6?=
 =?us-ascii?Q?10lVpPuV0riCRzNTJpfN9BGb1aj+CRYwf1I18wwEgk1b7/Qan23cgrchVl3u?=
 =?us-ascii?Q?G/5uUEUipo8tmSCRn1IAz4MK/sRmdtaGx2+ZG4mAv72tn8KFJ95XEjqwCtLb?=
 =?us-ascii?Q?husVVxkJpeNULd6q1OtAykDvAfKSFAZFTom08TvfHspt1lr9IG2BFAMmfhD2?=
 =?us-ascii?Q?mnN+Q7TS/FrsqX+yWOOpBUxMJ8W8oiV99zsL5+09mBLirxzv1MenKGVcbwtS?=
 =?us-ascii?Q?7pL6eBUf6JuFqSe8mW1Ih9e9DmfqAwQOqIty3Mwl9qE2InvzlycGkHuuYk8c?=
 =?us-ascii?Q?gFOoFUxPY8ppzzoS/Us2TgkC9rtdggSIsYjGlfYm9bFQLbfR2b7QmfvCkJC2?=
 =?us-ascii?Q?9QSZ+HZ5rW/dgcGS+Qg8B1YWbW61WSRvO38qgu83BoBF5Z2Wtck1F+2663uY?=
 =?us-ascii?Q?1pvASkKRUX4ov5a8btwkHQFLnDug6Y5fFPS+sa5m8K8I0wCBGNmFwHlzYrB5?=
 =?us-ascii?Q?cBrDesRmVIdkToMDEtzdGn4Cyc7rmHxXz5ZiymKuYIxJL657pD8bBKm9E/1h?=
 =?us-ascii?Q?MYm2RE8P0d9uEvn13eclav+rs6rkOGSgR0bVgJzJcqVvW84Aqns0LxCRABoM?=
 =?us-ascii?Q?6sQgy+M5p1TBvdj5yDXx2OGTu6VFchxPPC+MGgAQ6pcMIdPrlD+OiZ9Xey9C?=
 =?us-ascii?Q?eJ9U2q78InSGQ+fZadgRHPhatTwlZfK90RX1tV80HmlT+yP1+v0yiS0gCrTJ?=
 =?us-ascii?Q?I0XptyRPYRrwSn3YHzplDafJ0CZ8/oiVTrUNzMNoixx5PLn3qAOAEx2AtgSM?=
 =?us-ascii?Q?5fUY3wWBjVUqp0NvzXmpJhPRNSniV8np1PBnE+IwUsFXxBurWjuC6Ko5U24p?=
 =?us-ascii?Q?8RdRJ1waWOP45j1psLD6O/rQNE7kuI7HPwO7iqu56E9MX8Qk/84TcEuMXlhC?=
 =?us-ascii?Q?SfQ4HHKRjaqJFDDffgt2LJk75iZjZzdkr5IVCxKwEM7Y1+WQHsY9kbUNRrji?=
 =?us-ascii?Q?fLD3lquKXDCjnht1hSWUvNIPdcko0lsvJGKOMEoYpx9GV6OGWu3tHXzkjkEj?=
 =?us-ascii?Q?Z+GQR2XHJuEnKCsBtaB8WcVLmkeOJvPIEWN1qYJsWlGF/whsXN010qKiygym?=
 =?us-ascii?Q?MrmOa9g0A3+e/w9jItczGqVMXWDXehuG?=
X-Forefront-Antispam-Report:
	CIP:165.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: 08 Jul 2024 06:26:11.9525
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7bdd9a74-8340-4c28-cb24-08dc9f16dcae
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00026367.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB8610

Fix bug imported by 0762e2502f1f ("x86/physdev: factor out the code to allocate and
map a pirq"). After that re-factoring, when pirq<0 and current_pirq>0, it means
caller want to allocate a free pirq for irq but irq already has a mapped pirq, then
it returns the negative pirq, so it fails. However, the logic before that
re-factoring is different, it should return the current_pirq that irq was already
mapped to and make the call success.

Fixes: 0762e2502f1f ("x86/physdev: factor out the code to allocate and map a pirq")

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 xen/arch/x86/irq.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 9a611c79e024..1a827ccc8498 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -2897,6 +2897,7 @@ static int allocate_pirq(struct domain *d, int index, int pirq, int irq,
                     d->domain_id, index, pirq, current_pirq);
             if ( current_pirq < 0 )
                 return -EBUSY;
+            pirq = current_pirq;
         }
         else if ( type == MAP_PIRQ_TYPE_MULTI_MSI )
         {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 06:39:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 06:39:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755011.1163266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQi25-0000Yn-LT; Mon, 08 Jul 2024 06:39:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755011.1163266; Mon, 08 Jul 2024 06:39:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQi25-0000Yg-It; Mon, 08 Jul 2024 06:39:29 +0000
Received: by outflank-mailman (input) for mailman id 755011;
 Mon, 08 Jul 2024 06:39: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=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQi25-0000Ya-8a
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 06:39:29 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2453c95-3cf4-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 08:39:28 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2ee88c4443eso37984261fa.3
 for <xen-devel@lists.xenproject.org>; Sun, 07 Jul 2024 23:39: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
 d9443c01a7336-1fb23449a01sm81586195ad.31.2024.07.07.23.39.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Jul 2024 23: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: d2453c95-3cf4-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720420766; x=1721025566; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/u0ogVO21DuZlx6G6Sv/5ormPTwErC0lrtMPCyrl0+s=;
        b=MbGIvLL+pXj4VSfzePydwzleYGILI3EsPDe0gTTXfjfaakaoOqQGzzcOEvkUHlGqDt
         R7apDhZWM7DymRd6vuO1EzF3t1AODTQLOmo0m199Lv5qLhhv6OlQbHyIrNQ1fqreZqI5
         mgxRYSbqS6IdbTo9nUBf7bZ1tDmEvY7zEXPqCb/WNdGwzCJP0JSJhVW2v0V+eq0fkwWj
         ELylht0pjb3Ks9uIvOfVd3VuLLY7BCM8NCMApUK1iuShuH0e+w4ya7DksWf0Tg1wmH1O
         cwWb79rZvG6py5eYti14w8i4FGlFAoIlvt/pYA8uG6uP3V6c6kWMiUfiQ4uMQ66P9Eu6
         wETA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720420766; x=1721025566;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/u0ogVO21DuZlx6G6Sv/5ormPTwErC0lrtMPCyrl0+s=;
        b=HO5Xwn0vNeXHprB5ETg5e7ono1P59GGWN9RKCS2h6fMEP0ZYV4Nx58ek5NPFZb9Kkx
         pD9k5sM9IOJjK3hcFjrW6MoxWzYIiDIKuHr0jHp7KQErmidLn5bxEEFOAqF+ZCa+IB8k
         pr88Xwa0wuprjOPVOopxTxJxNnkU79AtvNKzrVhCTESxGgGvHxeapVipiCuS0SNXrzZv
         gbrXsfzfvLGjDB6u9+hzedAP847iAL4Ql81alRCgpORqmqz8XL2hC0+b7vp0Gv+iRoo0
         PlxS5ESKCvsH/4ICWqRzjS+1RhGoCBlsxoNhxKHz6kQwgfPHbCtPnMiXtKBln74vuZXj
         S5Hw==
X-Forwarded-Encrypted: i=1; AJvYcCWXClDFAvBwItkcbTG3+n0Os+g1aq+fVJBVyX4QcLN3+wlrpQUiSMuuPYQ4tn6NI/BJJlIoEl2qOXjcGwucPkunmgz3SlE+7ldJ3FCA3Vg=
X-Gm-Message-State: AOJu0YynK7N+0H5Rd5CpsFGeYq7VhAMp5L2McHTsk5bWOqg3PxtDG0+o
	CPbeDPCMn8gHkXQBnU7fUIWO6iQPnRCTVSE1E/7jAegSJiHJ3uJfEBJHE9DhTA==
X-Google-Smtp-Source: AGHT+IEDj6gh8a4qb1eV17iymh0j1sMl10HcyD8UKXdOTqt9Q8lbl+TtxsL82O4o8reFnfDCN98jMA==
X-Received: by 2002:a2e:b166:0:b0:2ec:403e:6314 with SMTP id 38308e7fff4ca-2ee8ed69b03mr72974811fa.3.1720420766442;
        Sun, 07 Jul 2024 23:39:26 -0700 (PDT)
Message-ID: <e09619e6-a483-4e68-80f6-6ff158fb9c30@suse.com>
Date: Mon, 8 Jul 2024 08:39:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 2/6] build: Fix the version of python checked for
 by ./configure
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Oleksii Kurochko
 <oleksii.kurochko@gmail.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-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: <20240705152037.1920276-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.07.2024 17:20, Andrew Cooper wrote:
> We previously upped the minimum python version to 2.6, but neglected to
> reflect this in ./configure
> 
> Fixes: 2a353c048c68 ("tools: Don't use distutils in configure or Makefile")

Judging from the description of that earlier patch and from what you're
actually changing, s/2.6/2.7/ above?

Jan

> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Juergen Gross <jgross@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  tools/configure    | 8 ++++----
>  tools/configure.ac | 2 +-
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/configure b/tools/configure
> index 6c1084b7b28a..d160ca296202 100755
> --- a/tools/configure
> +++ b/tools/configure
> @@ -8298,15 +8298,15 @@ if test x"${PYTHONPATH}" = x"no"
>  then
>      as_fn_error $? "Unable to find $PYTHON, please install $PYTHON" "$LINENO" 5
>  fi
> -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python version >= 2.6 " >&5
> -printf %s "checking for python version >= 2.6 ... " >&6; }
> -`$PYTHON -c 'import sys; sys.exit(eval("sys.version_info < (2, 6)"))'`
> +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python version >= 2.7 " >&5
> +printf %s "checking for python version >= 2.7 ... " >&6; }
> +`$PYTHON -c 'import sys; sys.exit(eval("sys.version_info < (2, 7)"))'`
>  if test "$?" != "0"
>  then
>      python_version=`$PYTHON -V 2>&1`
>      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
>  printf "%s\n" "no" >&6; }
> -    as_fn_error $? "$python_version is too old, minimum required version is 2.6" "$LINENO" 5
> +    as_fn_error $? "$python_version is too old, minimum required version is 2.7" "$LINENO" 5
>  else
>      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
>  printf "%s\n" "yes" >&6; }
> diff --git a/tools/configure.ac b/tools/configure.ac
> index ac0fdc4314c4..be58f06be450 100644
> --- a/tools/configure.ac
> +++ b/tools/configure.ac
> @@ -385,7 +385,7 @@ PYTHONPATH=$PYTHON
>  PYTHON=`basename $PYTHONPATH`
>  
>  AX_PATH_PROG_OR_FAIL([PYTHONPATH], [$PYTHON])
> -AX_CHECK_PYTHON_VERSION([2], [6])
> +AX_CHECK_PYTHON_VERSION([2], [7])
>  
>  AS_IF([test "$cross_compiling" != yes], [
>      AX_CHECK_PYTHON_DEVEL()



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 06:50:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 06:50:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755017.1163277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQiCE-0002Ce-H7; Mon, 08 Jul 2024 06:49:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755017.1163277; Mon, 08 Jul 2024 06:49: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 1sQiCE-0002CX-EL; Mon, 08 Jul 2024 06:49:58 +0000
Received: by outflank-mailman (input) for mailman id 755017;
 Mon, 08 Jul 2024 06:49: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=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQiCD-0002CR-Mf
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 06:49:57 +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 47815059-3cf6-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 08:49:53 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3679f806223so1976535f8f.0
 for <xen-devel@lists.xenproject.org>; Sun, 07 Jul 2024 23:49: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
 98e67ed59e1d1-2c99a986eaasm7368847a91.24.2024.07.07.23.49.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Jul 2024 23:49: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: 47815059-3cf6-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720421395; x=1721026195; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a0Um+B3sCwAo8M7Y2RPDnPexSgyOaOLPcSfiYZJoOlM=;
        b=dnBmnrqTN3CUiEqcPsIZDvaNvKnAgYtPzdxXARn0z74ngKhoCtFFK1bvaXeZ3+zaBJ
         CXoWuRWGm8dEqtTTM7TaSSLzpCzjsBBMa8fLsl9nMAgu3L8CZa/5NfQELYJEgrV0MdBz
         TgO1gRb/IOW+8rpOz2A25hxJz1TyZbzvhMF8o2hRyN7Gv4Mp/JhSzmblTGJ40PSrIr0d
         hJAyxKPdd3mwrQnOEstuzTpdzbh0geZ5BjxtYK3jaQofLK3Irgd+5AjMdqOKBOSqtjeG
         +EJ04Er99YK5UjYPp5sgO/6vmC3JtUbAetUguE/dABXutGMklxehgeEng4MShTa+Hcuv
         ehTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720421395; x=1721026195;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a0Um+B3sCwAo8M7Y2RPDnPexSgyOaOLPcSfiYZJoOlM=;
        b=Z+tEM8C5L5JONvfg5YY+ituK6r3ReMD6gvBnr2VRw59/HEzdjkS+Uxlp9eKQ0AJC84
         xSyG70lpEjrBDy36CWJb8SgpSlqQEoBSfwD7ak2VM4U7Eba5a72eXTf7x3WqpjGIOG8e
         EtudAQgfrOW1Z5Sqid5dW3Jdd9yFOR0e6/Y3+6Pk73k5heYWQRK9Bp7FXOv7p/FMRdhu
         v1a9cFn26BPFZV3s4+8go3B1BJ67cCyl7XILEcKN0PzdAGFLlceCasHJPlsyaMj3juvl
         gQr/AbN0OLKZsoCD5TmOdcX9LENhacNpDWIKEVuThDzG7aSfgLm4hW848FnLxciInxTi
         fonA==
X-Forwarded-Encrypted: i=1; AJvYcCUoTMaW7fBjfrCkJFE1/UIuTfVaUU9g7hGdsrwPvoJI6TkMvyzToKXBO4weoTYCTm8omFhyyeMZyo/4o6HjtGQqVDve0qv0K5l/UD9I0cw=
X-Gm-Message-State: AOJu0YzRF6GcszRXcRCfrkBMBYXn7nV4/DjPHN/dksd1N++lIDXFTB36
	kLo3Oasy7tsmYeccx8GnaxdFhMN4oZn9NrdJ/OfzH9y+ye8xwg3AVqUpmPS96A==
X-Google-Smtp-Source: AGHT+IGUQI367CMEGTRNjk3ocmH4dDPigDqOhLHxy4m9H6ytWBQ99NCQOQkgkdbFQz44IkL2fH9wdg==
X-Received: by 2002:a05:6000:1e98:b0:366:df58:1fd9 with SMTP id ffacd0b85a97d-3679f75c598mr8469027f8f.24.1720421394859;
        Sun, 07 Jul 2024 23:49:54 -0700 (PDT)
Message-ID: <afec5c5c-8de8-4795-b470-ec78339f982e@suse.com>
Date: Mon, 8 Jul 2024 08:49:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 6/6] build: Drop xorg-x11 as a build dependency
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Oleksii Kurochko
 <oleksii.kurochko@gmail.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-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: <20240705152037.1920276-7-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.07.2024 17:20, Andrew Cooper wrote:
> The history on this one is complicated.  The note to README was added in
> commit 1f95747a4f16 ("Add openssl-dev and xorg-x11-dev to README") in 2007.
> 
> At the time, there was a vendered version of Qemu in xen.git with a local
> modification using <X11/keysymdef.h> to access the monitor console over VNC.
> 
> The final reference to keysymdef.h was dropped in commit 85896a7c4dc7 ("build:
> add autoconf to replace custom checks in tools/check") in 2012.  The next
> prior mention was in 2009 with commit a8ccb671c377 ("tools: fix x11 check")
> noting that x11 was not a direct dependcy of Xen; it was transitive through
> SDL for Qemu for source-based distros.
> 
> These days its only the Debian based dockerfiles which install xorg-x11, and
> Qemu builds fine in these and others without x11.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

There may be one more past dependency, but I'm not sure since I don't know
the package split in the distros you touch files for. In unmodified_drivers/
(removed in 4.14) there was a use of the lndir utility coming (on SUSE
distros) in xorg-x11-util-devel. Then again unmodified_drivers/ may never
have been of any interest to gitlab-CI.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 06:53:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 06:53:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755025.1163286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQiFt-0003i0-3B; Mon, 08 Jul 2024 06:53:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755025.1163286; Mon, 08 Jul 2024 06:53: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 1sQiFt-0003ht-0Z; Mon, 08 Jul 2024 06:53:45 +0000
Received: by outflank-mailman (input) for mailman id 755025;
 Mon, 08 Jul 2024 06:53:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQiFr-0003hn-8r
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 06:53:43 +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 ce29fe5a-3cf6-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 08:53:39 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ee9b098bd5so22099241fa.0
 for <xen-devel@lists.xenproject.org>; Sun, 07 Jul 2024 23:53: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
 d2e1a72fcca58-70b099a3dbesm6230700b3a.68.2024.07.07.23.53.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Jul 2024 23:53: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: ce29fe5a-3cf6-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720421621; x=1721026421; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jrAlI/CKhSIevy4FtZSq6vDbMqZelALLMuoy55t1RpA=;
        b=aVXiHaTWQsk1Kj4OV5jGrrF/yuJDQkMQT8e6/+Qs0OVAB5QAZog8XDjP4XuciwO9H0
         OPOIDmLYn59k21k45zkmfaE/AFLrWozfz9DFBpjLM28wEWnrrTCHHCDCbvWZXrv0ID0F
         GVYo0z7xX/+bPkR+XTDfiicnsym7V4SxLGvyFKdqFVFlY45Q4wczDEdes+B8VyvyGliN
         CUi0EhXP79TcLFoHDSnl54eRaYBlEkdBuCeCJyzz1zm7/hZvNplraYqjiKOgr4/13bHH
         DKHer/OxlAx/351dMcMTA7bJ9Q7OK2rGV0m3vVYEzkheiEMn2cCe2uT4wEjDQkSAL1xo
         EEWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720421621; x=1721026421;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jrAlI/CKhSIevy4FtZSq6vDbMqZelALLMuoy55t1RpA=;
        b=LxypOyMBIE6kflKIAaxDWkwrvDt4agidqxOzPvTc5I3y3khsZ7J5NgwRb30EgIKnSg
         bGVl0au7WliEEbS881XEJkW5gxAjBzBpJv2Xrc57hT7+IJeZssVBlat3FWy6uqgaTsDK
         Uo6GF9pes4eW7z9G1Zm3hhE6zAhFQGb0oHoaZtkkpHz0xLQDjkdjBjzHUUL8uH0zyIJu
         INXyGznDkhybTEreHCWufK7nzHZ51TPGTJrDyuqsmTBu5pDvLw2vTV4IrL64tSgoEXPK
         EaloXQDls1Hagi9G0zzchbbsvCJu8SF7x1dGHXS7XawDbp6f9CQ7CytQ7A4yxB072aMG
         hO2A==
X-Forwarded-Encrypted: i=1; AJvYcCVD8Y87LkYqu/iKKjUJnBiOJG/VtI87iWih41d9R3HGQMyemjtzAupKCH+U7fNlfp32DGlKKtIgyCpUMsj1NyZaPu9hNid3COpTAVNA1KQ=
X-Gm-Message-State: AOJu0YyPz0CcQVB2pYGXZdB50B7Hcld85cTkKzMrLSrU3jcw946fzI95
	BDYCEHhtSPPmAbDsxl8fUHbf0ePWC755KhzolskAKrNIUyJ5NKY/1PWYQEmtIw==
X-Google-Smtp-Source: AGHT+IEzwQZbAOGf7HTTfI6hOSNB2wN9HD8x+rb3ZxVWJsj0LrpFWnKX9wB1KapUif1x2X0k5is/Dg==
X-Received: by 2002:a2e:3c15:0:b0:2ee:87e9:319d with SMTP id 38308e7fff4ca-2ee8ee13b71mr82486251fa.48.1720421620774;
        Sun, 07 Jul 2024 23:53:40 -0700 (PDT)
Message-ID: <19625644-b9f9-4145-9637-fb83964eb95e@suse.com>
Date: Mon, 8 Jul 2024 08:53:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen/shutdown: Fix build issue with shutdown.h on PPC
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Shawn Anastasio <sanastasio@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240705182311.1968790-1-andrew.cooper3@citrix.com>
 <20240705182311.1968790-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: <20240705182311.1968790-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.07.2024 20:23, Andrew Cooper wrote:
> The use of bool needs xen/types.h, which shutdown.h picks up by chance in all
> other architectures.
> 
> While fixing this, swap u8 for unsigned char in hwdom_shutdown(), and move
> opt_noreboot into __ro_after_init.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Jul 08 06:57:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 06:57:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755031.1163297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQiJ9-0004H1-HM; Mon, 08 Jul 2024 06:57:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755031.1163297; Mon, 08 Jul 2024 06: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 1sQiJ9-0004Gu-Dc; Mon, 08 Jul 2024 06:57:07 +0000
Received: by outflank-mailman (input) for mailman id 755031;
 Mon, 08 Jul 2024 06:57: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=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQiJ8-0004Go-CO
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 06:57:06 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 473bf97a-3cf7-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 08:57:02 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2ee90f56e02so33575501fa.2
 for <xen-devel@lists.xenproject.org>; Sun, 07 Jul 2024 23:57: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
 d9443c01a7336-1fafc2353e4sm110839635ad.90.2024.07.07.23.57.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 07 Jul 2024 23: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: 473bf97a-3cf7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720421824; x=1721026624; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vBr4ThZvOElEUa0dtWhn+hVORetqDRXffZCJYYCCeac=;
        b=XBCqH2Qjzfn16LVv3qRuVIhmEBCaDui5rXn5rpEuYr4sncUSB1Ix3VvbSqQ9mXmUG5
         n5nu+60KdzU2LWyb0zIrC9bP/EklL24d7KSP4gviFcIA0USIc1fwfEhzhweWZ1sJGzN4
         EQyM/wNgHYFBY/5JFRSOlxCQTGQOcGM8BtZZZEP8s7KCOvjq1KivJE4RPQPEZXjhv0Pm
         wRi4Yf9EcqAKvh/981xQ6xUUj+QrxdcoJcdQnULeu/JoxpMyT2xZmBJKa9zAKUoCrbQL
         Il70YHbjbpKya8ilDObLITZvSfpadzr+IEfXzt70J1gJTnWMbSzxd3aHAG5RVCvzyGEW
         DTjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720421824; x=1721026624;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vBr4ThZvOElEUa0dtWhn+hVORetqDRXffZCJYYCCeac=;
        b=IDx9DnPDs8x1qW3xb/0yf3er9+ggK9FNk9bv8L1uNvp/agL8IU6zjkKK3XxxfyCdgt
         QttAfqUYiomqpt32AuBQkWi2LoArcwJfpmtPydFowrQhl+pIRWNihbNSnmbffK6bY4IX
         +7mq1NNriRLL4J+fxTF/oTnoJXWVToccqyxuP9wKIxpqB9MYw2Okr1W+1eX9rcjwcOE0
         Sxmue2Y5H/YVGd8RS4lCFdn5a6cben+1c78PlJ9Bt+/v3mDZ19PboUFOlk6jj1vGppJW
         PP85g23t1XIghPh6MD9x45Uy999WM6HqHxdJfxQRE3tU7n0c7JK9G2Em5vAiBXyUkAvO
         7f6Q==
X-Forwarded-Encrypted: i=1; AJvYcCV8mCky877mXip9XZ9B6GUEb64y2etmdr1eyEom0wFFAMK23J9k0VN6AtHFELsIWgu0Y8SVa+BfIc6YhVGwl8r4a4wCXQjUZPAlJfINpuI=
X-Gm-Message-State: AOJu0YxDbJZIE2O422IgcqhW1MMNo6suwyKvbSrUA1AtbQIDp89Mwvls
	qAe75UkNLwW2zrigDIzgue7Tpa/zQmW3NrR2RhLAetSBUiCiQ7enCFDL3QCa9HX9h4uEjylVQMw
	=
X-Google-Smtp-Source: AGHT+IHUTadvH9mTG8gBWaCr2Hf3zwlkEBvazLtWJnZJIRMS3ZP4KqzSKy0SWyiSKzFOZEuGe7yNnA==
X-Received: by 2002:a2e:891a:0:b0:2ee:4c2e:3d35 with SMTP id 38308e7fff4ca-2ee8eda6a90mr73286491fa.23.1720421823916;
        Sun, 07 Jul 2024 23:57:03 -0700 (PDT)
Message-ID: <ccf289e2-be86-4601-9bf0-cdde3fc3df37@suse.com>
Date: Mon, 8 Jul 2024 08:56:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] x86/physdev: Return pirq that irq was already
 mapped to
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, Huang Rui
 <Ray.Huang@amd.com>, xen-devel@lists.xenproject.org
References: <20240708062554.399784-1-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: <20240708062554.399784-1-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.07.2024 08:25, Jiqian Chen wrote:
> Fix bug imported by 0762e2502f1f ("x86/physdev: factor out the code to allocate and

Nit: Perhaps s/imported/introduced/ ?

> map a pirq"). After that re-factoring, when pirq<0 and current_pirq>0, it means
> caller want to allocate a free pirq for irq but irq already has a mapped pirq, then
> it returns the negative pirq, so it fails. However, the logic before that
> re-factoring is different, it should return the current_pirq that irq was already
> mapped to and make the call success.
> 
> Fixes: 0762e2502f1f ("x86/physdev: factor out the code to allocate and map a pirq")
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Jul 08 07:02:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 07:02:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755036.1163307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQiO0-000674-2C; Mon, 08 Jul 2024 07:02:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755036.1163307; Mon, 08 Jul 2024 07:02: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 1sQiNz-00066x-Vs; Mon, 08 Jul 2024 07:02:07 +0000
Received: by outflank-mailman (input) for mailman id 755036;
 Mon, 08 Jul 2024 07:02: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=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQiNx-00066r-SW
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 07:02:05 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb75774e-3cf7-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 09:02:04 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ebeefb9a7fso42330371fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 00:02: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
 d9443c01a7336-1fb4574ad80sm54991905ad.66.2024.07.08.00.01.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 00:02: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: fb75774e-3cf7-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720422124; x=1721026924; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fF013QJJ0j4nkMMKCuAVmP9b9onoLZQl2FBEXGhqX10=;
        b=LE91a7NkFWl5htVohbvnA7bAz4dX0MWdCpAfGsj83IMtMLE32+ZFfLlra0rO60lnpW
         NFXZoKmuFmmOPS89Iu1PG/pydfQ6zXwmRKgG6ZAmOUbBEaTKKrMAWD23do5l9Lj3B9ah
         OIUAV0udOpPtbC/jaPFJY/JmXXWuH36AF/YQJ6mfXXJcSPoTuODU/eSsLAshyLVdq+u/
         WTRXQotPmYa0rNSpNQOwn1+RttkDu9dKT5zlcvqv6PNJEYdKsOzExjHxa70IfMKGQRwz
         cQh19ueED7iaB9BO9AojXsR84FsYveroLmsQnixS/6eYfmqfBYyWSBAKU2TUjeR+qmaE
         9T8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720422124; x=1721026924;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fF013QJJ0j4nkMMKCuAVmP9b9onoLZQl2FBEXGhqX10=;
        b=KaeJlvBU0QbaTtEsoEerCYfFVk5zoSXukW5g1y1q/dFD3dz1ow2hRe9qUHFAY/oRBs
         2rvFK26g8BSJcbi3OffsIXbWcTbftopHzuSFYKr04jNGnAc/io045xByhxi7enRnU9wp
         p3qlfPDeXSRf0pLmwaBjmrGXvkKXSw3SM+I8jIfcDgNaAho52awKPCeLpmFwmW3cC7SJ
         VALETJ1MvtRpKd4nm250ptSdnalcvH/cHUDcaojbBElbdY/mrmR75asUqcdDlBsBlWmk
         j/zPilrAYPPKLeXS9cnXdUBW8bbuhBpi76YyYYQ5R9v4fZt+Lp8MeSgO5HjKuj8IKkJV
         JJXw==
X-Forwarded-Encrypted: i=1; AJvYcCUN6SmpK9Y6cD/VbZy8qx0Q1r7wZCTXeB6e84shRfYI3bLp0WFhSuIAaTA/jcCz7Jh6VzhXfjqrjuMxBGfPKxjYKUP+h1sP19NGdqHYUDg=
X-Gm-Message-State: AOJu0YxH/nxb1acGDbjiWrnFkafSBe9jur1TJwixJiMtFkURP0nfK2Qe
	LrAM4JYk9vcoYmv4sTpYrQYXAaihTi0snVQE5KAk4Z4IQOMC2BX//O0fgSdBbA==
X-Google-Smtp-Source: AGHT+IFRMplqelFK0g5NBhhso6AsIwe9Se0OkdfW33D78ZXdXH9YcqPNlG5U+se+5wpG/jhRjqItng==
X-Received: by 2002:a05:651c:990:b0:2ec:5172:dbc4 with SMTP id 38308e7fff4ca-2ee8ed8b7efmr83835061fa.12.1720422124084;
        Mon, 08 Jul 2024 00:02:04 -0700 (PDT)
Message-ID: <f927775b-fb9d-4a6d-8d12-6a9048c8bda1@suse.com>
Date: Mon, 8 Jul 2024 09:01:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v11 5/8] x86/domctl: Add XEN_DOMCTL_gsi_permission to
 grant gsi
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20240630123344.20623-1-Jiqian.Chen@amd.com>
 <20240630123344.20623-6-Jiqian.Chen@amd.com>
 <a02cea93-b04b-484c-b3e0-dd5f6823196e@suse.com>
 <BL1PR12MB5849DC624AE25635C4BFC417E7DA2@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: <BL1PR12MB5849DC624AE25635C4BFC417E7DA2@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.07.2024 04:28, Chen, Jiqian wrote:
> On 2024/7/4 21:33, Jan Beulich wrote:
>> On 30.06.2024 14:33, Jiqian Chen wrote:
>>> --- a/xen/include/public/domctl.h
>>> +++ b/xen/include/public/domctl.h
>>> @@ -464,6 +464,12 @@ struct xen_domctl_irq_permission {
>>>      uint8_t pad[3];
>>>  };
>>>  
>>> +/* XEN_DOMCTL_gsi_permission */
>>> +struct xen_domctl_gsi_permission {
>>> +    uint32_t gsi;
>>> +    uint8_t allow_access;    /* flag to specify enable/disable of x86 gsi access */
>>
>> See above. It's not the field that serves as a flag for the purpose you
>> state, but just the low bit. You want to rename the field (flags?) and
>> #define a suitable constant.
> 
> You mean?
> 
> struct xen_domctl_gsi_permission {
>     uint32_t gsi;
> #define GSI_PERMISSION_MASK    1
> #define GSI_PERMISSION_DISABLE 0
> #define GSI_PERMISSION_ENABLE  1
>     uint8_t access_flag;    /* flag to specify enable/disable of x86 gsi access */
>     uint8_t pad[3];
> };

Something along these lines, yes. How far to go is a matter of taste; personally
I'd add just a single #define for now. One aspect is important though: The names
you chose are inappropriate. At the very least a XEN_ prefix is wanted, to
reduce the risk of possible name space collisions. Whether to actually use
XEN_DOMCTL_ is perhaps again a matter of taste - the header isn't consistent at
all in this regard.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 07:02:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 07:02:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755041.1163321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQiOA-0006QM-Ef; Mon, 08 Jul 2024 07:02:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755041.1163321; Mon, 08 Jul 2024 07:02:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQiOA-0006QD-AU; Mon, 08 Jul 2024 07:02:18 +0000
Received: by outflank-mailman (input) for mailman id 755041;
 Mon, 08 Jul 2024 07:02: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=iX0w=OI=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1sQiO9-0006O8-BW
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 07:02:17 +0000
Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com
 [2607:f8b0:4864:20::102a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff80f4bb-3cf7-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 09:02:12 +0200 (CEST)
Received: by mail-pj1-x102a.google.com with SMTP id
 98e67ed59e1d1-2c9a1ea8cc3so2140898a91.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 00:02: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: ff80f4bb-3cf7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720422131; x=1721026931; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=GlmUL91vpGYV8kIApe/neR3dKN+D50bYXKKcwSeCD2w=;
        b=bw9RHX+qgUUYto2rMNHi9tyowD7hk5kC42uOz3Cy6PawVCE1KmQMNT6/TOCoYMdwci
         AmH2TAwMkvp115hU/STCQAkHD7w7zysHzQq8Sn4HUAdeK9UxtGN1kLaA05nVjLzQfnSP
         mVDSF7//rkosIkUIAIdcL1++ewZ+fi3XAyxjI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720422131; x=1721026931;
        h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=GlmUL91vpGYV8kIApe/neR3dKN+D50bYXKKcwSeCD2w=;
        b=VMZEL3ATZ8Ab/fBFSStQ9cw8WnJiZpFvr4Pe0BklUlnpIx9SoUPcyc/UrfkQRyTRdt
         AuF68GmGW3iggyHiBBq8FR/JlQZQCn/VNdEjE6ZowWWq7/3i0Zy/J9MCWdqtYXlGX8nx
         YY38fXuIV5Rc2rFmN1f20M3lAHdXPwou9MRKSKUlpSwlYhMRObbt45UB3Wpm0EchTA+i
         YHayXztv8YvoKpUqTC3IVxAkUgfnQXTiOqAwKxzy2YTQ47TQcGXNILzjf+Fo/zqy0I4O
         q4LcHDMHdZyZrumHiTrEaq/5bAr4j2xN2nN8oG8xwUX7fI0+zbRDv2/Vur+nannqw50v
         8wqQ==
X-Gm-Message-State: AOJu0Yw7SoNXQnWcuUbPoVeeFgnenlEo9qou6HVNEqP+LMulmT0Spru8
	tk99etfIBTTJnLPzWsqwv3L+OCuJRLbmMLOEUgtQlEQ9mpM/5UCgVNXeyfqza5X13pK7HqFPtDf
	wgzbUXSMjFgRpg3h7DoKcTjky8a1Dj7ykE358JehWZXwdN9XQBkw=
X-Google-Smtp-Source: AGHT+IG4oLgN0uuHrW6brQ5w/Svh+9g8TVl946X53n95/diA8Hc0wX8bpFGUqmG2FMzI6c4QmLT6vO8PyljN4ZPNeWg=
X-Received: by 2002:a17:90a:c381:b0:2c9:75a7:5c25 with SMTP id
 98e67ed59e1d1-2c99f3ac56cmr16051365a91.15.1720422131432; Mon, 08 Jul 2024
 00:02:11 -0700 (PDT)
MIME-Version: 1.0
From: Kelly Choi <kelly.choi@cloud.com>
Date: Mon, 8 Jul 2024 08:00:00 +0100
Message-ID: <CAO-mL=xEEdCjUWN3oqJEBjktH+dsJDXrQ2uHWD80bJJ32q3_pw@mail.gmail.com>
Subject: [Vote] Xen Project Code of Conduct Team Member
To: xen-devel <xen-devel@lists.xenproject.org>, 
	"xen-api@lists.xenproject.org" <xen-api@lists.xenproject.org>, win-pv-devel@lists.xenproject.org
Cc: committers@xenproject.org, minios-devel@lists.xenproject.org, 
	mirageos-devel@lists.xenproject.org, Roger Pau Monne <roger.pau@cloud.com>
Content-Type: multipart/alternative; boundary="000000000000021b64061cb6fe20"

--000000000000021b64061cb6fe20
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi all,

As you are aware, George Dunlap has recently stepped down from the Xen
Project as a committer, but he was also a part of the Code of Conduct team.

As a result, Stefano will be the only member remaining on the CoC team. @Ro=
ger
Pau Monne <roger.pau@cloud.com> has volunteered to join the team, so that
there are at least two members.

In accordance with https://xenproject.org/developers/governance/, I need
the leadership teams of the three mature projects: the Hypervisor, the XAPI
project, and the Windows PV Driver project to vote on this proposal.

The specific voting rules, in this case, are outlined in the section:
https://www.xenproject.org/governance.html#project-decisions

I propose to tally the votes after July 31st, 2024. You can reply via email
in public or private:
+1: for proposal
-1: against proposal

Based upon previous communication and rules for voting:
The vote needs to achieve a 2/3 majority to pass.

Sub-project needs to achieve the following quorum of votes in favour for
the sub-project=E2=80=99s vote to count:
Hypervisor: 3 + votes
XAPI: 2 + votes
Windows PV Drivers: 1 + votes

Many thanks,
Kelly Choi

Community Manager
Xen Project

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

<div dir=3D"ltr">Hi all,=C2=A0<div><br></div><div>As you are aware, George =
Dunlap has recently stepped down from the Xen Project as a committer, but h=
e was also a part of the Code of Conduct team.</div><div><br></div><div>As =
a result, Stefano will be the only member remaining on the CoC team.=C2=A0<=
a class=3D"gmail_plusreply" id=3D"m_-6110525638451986579m_52176897574306858=
12m_2021811972426709313plusReplyChip-0" href=3D"mailto:roger.pau@cloud.com"=
 target=3D"_blank">@Roger Pau Monne</a>=C2=A0has volunteered to join the te=
am, so that there are at least two members.</div><div><br></div>In accordan=
ce with <a href=3D"https://xenproject.org/developers/governance/" target=3D=
"_blank">https://xenproject.org/developers/governance/</a>, I need the lead=
ership teams of the three mature projects: the Hypervisor, the XAPI project=
, and the Windows PV Driver project to vote on this proposal.<br><br>The sp=
ecific voting rules, in this case, are outlined in the section: <a href=3D"=
https://www.xenproject.org/governance.html#project-decisions" target=3D"_bl=
ank">https://www.xenproject.org/governance.html#project-decisions</a><div><=
br></div><div>I propose to tally the votes after July 31st, 2024. You can r=
eply via email in public or private:<br>+1: for proposal<br>-1: against pro=
posal</div><div><br></div><div>Based upon previous communication and rules =
for voting:</div><div>The vote needs to achieve a 2/3 majority to pass.<br>=
</div><div><br>Sub-project needs to achieve the following quorum of votes i=
n favour for the sub-project=E2=80=99s vote to count:<br>Hypervisor: 3 + vo=
tes<br>XAPI: 2 + votes<br>Windows PV Drivers: 1 + votes</div><div><br></div=
><div><div>Many thanks,<br></div><div><div dir=3D"ltr" class=3D"gmail_signa=
ture" data-smartmail=3D"gmail_signature"><div dir=3D"ltr"><div>Kelly Choi</=
div><div><br></div><div><div style=3D"color:rgb(136,136,136)">Community Man=
ager</div><div style=3D"color:rgb(136,136,136)">Xen Project=C2=A0<br></div>=
</div></div></div></div></div></div>

--000000000000021b64061cb6fe20--


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 07:43:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 07:43:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755082.1163348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQj1v-0004yR-O7; Mon, 08 Jul 2024 07:43:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755082.1163348; Mon, 08 Jul 2024 07: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 1sQj1v-0004yK-Km; Mon, 08 Jul 2024 07:43:23 +0000
Received: by outflank-mailman (input) for mailman id 755082;
 Mon, 08 Jul 2024 07:23:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sWbT=OI=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1sQiig-00026x-3q
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 07:23:30 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f8bf70e8-3cfa-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 09:23:28 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52e9fe05354so5214144e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 00:23: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: f8bf70e8-3cfa-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720423408; x=1721028208; 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=QA5XKySHBbQyTCaAwDrcN0EPTjdnFOPBEWnC3CbkYW0=;
        b=FnZrnRYm5+CLrE5a+v75zdg+ecqfB37DxYRsAC4wB2RF7kLy+ykJ7bDsv3BQDbp6eC
         kITzBJjbE/rlcKlH7P9lpMPgiqaBY81FgILuQJGOaTM6y6/ts8i3hq8sQkFK/iBNC6wN
         6LZBAmboJgbQhaFpnZ8IO0XlvWyVqv3r2qThU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720423408; x=1721028208;
        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=QA5XKySHBbQyTCaAwDrcN0EPTjdnFOPBEWnC3CbkYW0=;
        b=PE1gThB2RbMtOHZ9UKXP/cSDYLh/Jhb++UATCtHtRtVbBD8tLky6KbrRe8t3zOimGX
         i07x0ccEA01ULBv1SGVE+hpWrrqSCMYzxvajGNl64BJTNxlnF/dYjny/yw1tO3ly9TiS
         CgaJvDcYXqYwDJpBHPqjLo5DrUedV3UIRtUvs1EkBdsoF2EH7ju79n53U0yjtdbEM2eH
         adYsN7LBzHxpEDNTmqOWj3H7spI5J0noZr9lhRAwS93li/Uj43bNm2kdyTOfMAQeNX3f
         VrX4Z5qvcu7qh4lTw81fmyCXO6j+Bi7t8ex0emMu/VMguOgbXS8hM0Pp5F+LPmZdcQtY
         tqsg==
X-Gm-Message-State: AOJu0YwQaJRgTVoC4HXVNyyN7VSZLf1v7BMIdySo2D4ec5mZI7Mny8Ts
	6b5xLjiETvg41tUM60aoDFyUpofdubfUTx6eQaSObyeJh+v1S7gtfiFbuA3KDOkATw5zjOHkmTa
	f3s3ZZJgkP2X/7Ymd4TG8bysOGK0SBnoVqDA4
X-Google-Smtp-Source: AGHT+IFccTZJINWUE5iwTO3jg+NpURSgSFe3gLg8I1IMugGEqoLZMNPVbq7mLwVoWuCNOvk/e5rLlHTjh2WNsaY/ypk=
X-Received: by 2002:ac2:5050:0:b0:52e:747f:46d9 with SMTP id
 2adb3069b0e04-52ea0629af0mr8702168e87.17.1720423407795; Mon, 08 Jul 2024
 00:23:27 -0700 (PDT)
MIME-Version: 1.0
References: <CAO-mL=xEEdCjUWN3oqJEBjktH+dsJDXrQ2uHWD80bJJ32q3_pw@mail.gmail.com>
In-Reply-To: <CAO-mL=xEEdCjUWN3oqJEBjktH+dsJDXrQ2uHWD80bJJ32q3_pw@mail.gmail.com>
From: Owen Smith <owen.smith@cloud.com>
Date: Mon, 8 Jul 2024 08:23:15 +0100
Message-ID: <CAC_UY88mKye2Ti5pmOuFZqP1nR5WQdYXWeqGR7fdukjoFS2BmA@mail.gmail.com>
Subject: Re: [Vote] Xen Project Code of Conduct Team Member
To: Kelly Choi <kelly.choi@cloud.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, 
	"xen-api@lists.xenproject.org" <xen-api@lists.xenproject.org>, win-pv-devel@lists.xenproject.org, 
	committers@xenproject.org, minios-devel@lists.xenproject.org, 
	mirageos-devel@lists.xenproject.org, Roger Pau Monne <roger.pau@cloud.com>
Content-Type: multipart/alternative; boundary="00000000000015e34b061cb74a0a"

--00000000000015e34b061cb74a0a
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

+1

On Mon, Jul 8, 2024 at 8:02=E2=80=AFAM Kelly Choi <kelly.choi@cloud.com> wr=
ote:

> Hi all,
>
> As you are aware, George Dunlap has recently stepped down from the Xen
> Project as a committer, but he was also a part of the Code of Conduct tea=
m.
>
> As a result, Stefano will be the only member remaining on the CoC team. @=
Roger
> Pau Monne <roger.pau@cloud.com> has volunteered to join the team, so that
> there are at least two members.
>
> In accordance with https://xenproject.org/developers/governance/, I need
> the leadership teams of the three mature projects: the Hypervisor, the XA=
PI
> project, and the Windows PV Driver project to vote on this proposal.
>
> The specific voting rules, in this case, are outlined in the section:
> https://www.xenproject.org/governance.html#project-decisions
>
> I propose to tally the votes after July 31st, 2024. You can reply via
> email in public or private:
> +1: for proposal
> -1: against proposal
>
> Based upon previous communication and rules for voting:
> The vote needs to achieve a 2/3 majority to pass.
>
> Sub-project needs to achieve the following quorum of votes in favour for
> the sub-project=E2=80=99s vote to count:
> Hypervisor: 3 + votes
> XAPI: 2 + votes
> Windows PV Drivers: 1 + votes
>
> Many thanks,
> Kelly Choi
>
> Community Manager
> Xen Project
>

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

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">+1<br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Mon, Jul 8, 2024 at 8:02=E2=80=AFAM Kelly Choi &lt;<a hr=
ef=3D"mailto:kelly.choi@cloud.com">kelly.choi@cloud.com</a>&gt; wrote:<br><=
/div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Hi =
all,=C2=A0<div><br></div><div>As you are aware, George Dunlap has recently =
stepped down from the Xen Project as a committer, but he was also a part of=
 the Code of Conduct team.</div><div><br></div><div>As a result, Stefano wi=
ll be the only member remaining on the CoC team.=C2=A0<a class=3D"gmail_plu=
sreply" id=3D"m_4169227896029523200m_-6110525638451986579m_5217689757430685=
812m_2021811972426709313plusReplyChip-0" href=3D"mailto:roger.pau@cloud.com=
" target=3D"_blank">@Roger Pau Monne</a>=C2=A0has volunteered to join the t=
eam, so that there are at least two members.</div><div><br></div>In accorda=
nce with <a href=3D"https://xenproject.org/developers/governance/" target=
=3D"_blank">https://xenproject.org/developers/governance/</a>, I need the l=
eadership teams of the three mature projects: the Hypervisor, the XAPI proj=
ect, and the Windows PV Driver project to vote on this proposal.<br><br>The=
 specific voting rules, in this case, are outlined in the section: <a href=
=3D"https://www.xenproject.org/governance.html#project-decisions" target=3D=
"_blank">https://www.xenproject.org/governance.html#project-decisions</a><d=
iv><br></div><div>I propose to tally the votes after July 31st, 2024. You c=
an reply via email in public or private:<br>+1: for proposal<br>-1: against=
 proposal</div><div><br></div><div>Based upon previous communication and ru=
les for voting:</div><div>The vote needs to achieve a 2/3 majority to pass.=
<br></div><div><br>Sub-project needs to achieve the following quorum of vot=
es in favour for the sub-project=E2=80=99s vote to count:<br>Hypervisor: 3 =
+ votes<br>XAPI: 2 + votes<br>Windows PV Drivers: 1 + votes</div><div><br><=
/div><div><div>Many thanks,<br></div><div><div dir=3D"ltr" class=3D"gmail_s=
ignature"><div dir=3D"ltr"><div>Kelly Choi</div><div><br></div><div><div st=
yle=3D"color:rgb(136,136,136)">Community Manager</div><div style=3D"color:r=
gb(136,136,136)">Xen Project=C2=A0<br></div></div></div></div></div></div><=
/div>
</blockquote></div>

--00000000000015e34b061cb74a0a--


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 08:02:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 08:02:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755111.1163363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQjK2-0000lQ-GC; Mon, 08 Jul 2024 08:02:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755111.1163363; Mon, 08 Jul 2024 08:02: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 1sQjK2-0000lJ-DL; Mon, 08 Jul 2024 08:02:06 +0000
Received: by outflank-mailman (input) for mailman id 755111;
 Mon, 08 Jul 2024 08:02: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=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQjK0-0000l2-Dj
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 08:02:04 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c597068-3d00-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 10:02:03 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ee7885aa5fso38857811fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 01:02: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
 d2e1a72fcca58-70b2eb78584sm1830354b3a.169.2024.07.08.01.01.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 01:02: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: 5c597068-3d00-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720425722; x=1721030522; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BBGmLq09nC37TEnoNtj+D0NCHJwn049BW+yNaxMy4mw=;
        b=PdN+qiO07XAx+TaOgtsSeMs/jq1x384sqf6vyE44p6/K/84M/4KbJdnwQXq8vmmG2g
         iiTYmnH8aPuo8SYxazRd9TFuneLoWiqY4mObgdGbl/UJw079f9vndQNNWJeykuqk8wvu
         2UgUHDomsi7lEHvemJcAYyVTe49bIBLNv6QIp2G8AYDXWXpP78g2iyo1s2Q0mavaU/ka
         Zw/0sR3ijFwxHsoTmoJVfzzuNFhbk3m5icgNCT198yVZDsgTGHYRWU1aDUj9MONM9IG0
         RQP4m6/znyTgtn3eB6Svbd55AmyJlKdq4h29avT06hszewkl33FVsq6y0X7PsKaiGHb9
         SARQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720425722; x=1721030522;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BBGmLq09nC37TEnoNtj+D0NCHJwn049BW+yNaxMy4mw=;
        b=Ac66e2xrT4OxsufHzJIS11+RSEo3gs6NmybSKtQ7byVFvZ/L1AeTmAJhpscX7BIMhv
         p11kVoT2sGY3jlnVor7hVnUi+bUZfr4T0V2JRDH7uKSU1664hGEWczX3a/slcUqHj+Sp
         rQJGDxbO6V8sRBAPL55Vry2HDD1G7R5cKIdt3iwX4nbiNGKF53IL+2b/jLSzZksrmSZK
         TLIZ1fwClRyhffdOWarrKTPTiucul043oIMxszaVovNOkHRKMcYg1yseh0qolGMWsquI
         EEGcyU899Ucrx1pAVgnfjiVqNJ/WQCKVD01dr1nNMBJXbk2sW49RsYgwkEJWjrINI2Ce
         JYbQ==
X-Forwarded-Encrypted: i=1; AJvYcCX9DbnFpcgyxsf7ievLJyOt4DBTJb0Tb6E77HgJWsuVCmloZkVcf5OAYl311bNgHXbFaJou3bpCRCse1jXFJpjpHrAzYormE31f5mMvlN0=
X-Gm-Message-State: AOJu0YyBvKOG12aBsy5yYXPW4VVD/m2highp0Ek6HRbOC4AbSFVNVGiE
	DPWTG/cZX9frfP2VUUIJa4vwqKZ/PeJH3+XhTC2IbLHCGRAlQcTfVnj5jBFwzA==
X-Google-Smtp-Source: AGHT+IHaxxfSCswIcatlh8blJpZdH4N5a8/iFUAWnfzl1Tszlq3RsbZTCd6VWncmnl577Dj13Zybvw==
X-Received: by 2002:a2e:8889:0:b0:2ec:3d2e:2408 with SMTP id 38308e7fff4ca-2ee8ee00250mr71357251fa.33.1720425722514;
        Mon, 08 Jul 2024 01:02:02 -0700 (PDT)
Message-ID: <2e9226a1-4196-4ff3-bea6-f8a2cf249dff@suse.com>
Date: Mon, 8 Jul 2024 10:01:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Vote] Xen Project Code of Conduct Team Member
To: Kelly Choi <kelly.choi@cloud.com>
Cc: committers@xenproject.org, minios-devel@lists.xenproject.org,
 mirageos-devel@lists.xenproject.org, Roger Pau Monne <roger.pau@cloud.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 "xen-api@lists.xenproject.org" <xen-api@lists.xenproject.org>,
 win-pv-devel@lists.xenproject.org
References: <CAO-mL=xEEdCjUWN3oqJEBjktH+dsJDXrQ2uHWD80bJJ32q3_pw@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAO-mL=xEEdCjUWN3oqJEBjktH+dsJDXrQ2uHWD80bJJ32q3_pw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.07.2024 09:00, Kelly Choi wrote:
> Hi all,
> 
> As you are aware, George Dunlap has recently stepped down from the Xen
> Project as a committer, but he was also a part of the Code of Conduct team.
> 
> As a result, Stefano will be the only member remaining on the CoC team. @Roger
> Pau Monne <roger.pau@cloud.com> has volunteered to join the team, so that
> there are at least two members.

+1

Jan

> In accordance with https://xenproject.org/developers/governance/, I need
> the leadership teams of the three mature projects: the Hypervisor, the XAPI
> project, and the Windows PV Driver project to vote on this proposal.
> 
> The specific voting rules, in this case, are outlined in the section:
> https://www.xenproject.org/governance.html#project-decisions
> 
> I propose to tally the votes after July 31st, 2024. You can reply via email
> in public or private:
> +1: for proposal
> -1: against proposal
> 
> Based upon previous communication and rules for voting:
> The vote needs to achieve a 2/3 majority to pass.
> 
> Sub-project needs to achieve the following quorum of votes in favour for
> the sub-project’s vote to count:
> Hypervisor: 3 + votes
> XAPI: 2 + votes
> Windows PV Drivers: 1 + votes
> 
> Many thanks,
> Kelly Choi
> 
> Community Manager
> Xen Project
> 



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 08:07:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 08:07:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755134.1163386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQjOc-0000a7-VH; Mon, 08 Jul 2024 08:06:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755134.1163386; Mon, 08 Jul 2024 08:06:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQjOc-0000Zz-QI; Mon, 08 Jul 2024 08:06:50 +0000
Received: by outflank-mailman (input) for mailman id 755134;
 Mon, 08 Jul 2024 08:06:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQjOb-0000IK-8A
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 08:06:49 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20601.outbound.protection.outlook.com
 [2a01:111:f403:2417::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cfe3614a-3d00-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 10:05:18 +0200 (CEST)
Received: from CY5PR15CA0109.namprd15.prod.outlook.com (2603:10b6:930:7::14)
 by PH7PR12MB9126.namprd12.prod.outlook.com (2603:10b6:510:2f0::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Mon, 8 Jul
 2024 08:05:14 +0000
Received: from CY4PEPF0000EE39.namprd03.prod.outlook.com
 (2603:10b6:930:7:cafe::61) by CY5PR15CA0109.outlook.office365.com
 (2603:10b6:930:7::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36 via Frontend
 Transport; Mon, 8 Jul 2024 08:05:14 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000EE39.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.7762.17 via Frontend Transport; Mon, 8 Jul 2024 08:05:14 +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, 8 Jul
 2024 03:05: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: cfe3614a-3d00-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Vhp9a6kUBXdin96p8c8sVnGQMURpHco1/TWZuB9biUOGp8kR4Sb5tiVzZ7RTPU9GG5sHB2VHY/jDRQ+0VkMhNLKHRzo8EfvErC7vqIejUpELk041Aya+79ABH7g3ETRagdBd/hjcgAJPAwt/hWcMR2MeEG4zPVTU6XL54ZhwyDRei4bdbjX1Or0s0eby/OP8QBOVfWSHDF0DAP1evyD1cj6Dkem1gkh4w3wuapzNy5JP6UWaGYVGKZlW4TtncLID8chbCyVl4Km+y0/8+qSl8oGM6TyAk6rWvq0Sw59JC6pyaiwvUCoNrq0XvAuizZRNhKhxZDO2L/QemDjynHWDEQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bHdGyPwdZzpTLwihyTmeTsp1sAiOoMkd/UMlFggw7b8=;
 b=E/Umm9qAiwRf7LPpYfPkjLxdEI8IcrH1yQ5yA1Fa+ERL4pkOMwdC/zNYP2WuYTH4cgQw5BK6/3f+hW9iY6so+RGQys/WpK+dXcWLijcCeqXfMFHLvyOrikhWpjgfd8gcI4pDnQk1lokD1welmI6uTXTpFTsgMbrtEnTT9pqhTaedDGbPJp8O8OBibB9MyEuRV/Dvl/pScXu1w8+n03dEzVp5HwSybftwwflpoogey05X8WoJ2o9xhaD0d7EGzZC8RE9Pol3RjDWcr3R/6qp1UrlzBukZeQoWwWWZdZpp1bkjP+YUlI59QMMSrImoQ4KG+XppJt8YFJwTajSZYb5w5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bHdGyPwdZzpTLwihyTmeTsp1sAiOoMkd/UMlFggw7b8=;
 b=ieBkMdMSOXW2PT38VgXAExHN14xejVpBBVjxr4e8jsmXYzpEzCXDnvYSReEXFtMYwhvaI15Nk5bE2ZLRkf2PWbWW2i2e3EGAm5n9bAdBAONKlgro2rKMrvmvkYKMGOmYHCWsslmAx3ARmO3Whhkx2ZVrHV/GxbdV/Pig0IK5liQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Jiqian Chen" <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [PATCH for-4.19 v2] x86/physdev: Return pirq that irq was already mapped to
Date: Mon, 8 Jul 2024 16:04:56 +0800
Message-ID: <20240708080456.401764-1-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE39:EE_|PH7PR12MB9126:EE_
X-MS-Office365-Filtering-Correlation-Id: 142f9d9f-77bd-4ef3-0e88-08dc9f24b2a5
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?iL44YbgYZ4czpFw6Rzk38hR/JXPzVtsockRUq9MLRrKsThzUWn8RfdPb8MIz?=
 =?us-ascii?Q?1IPPK89+o0Yiw65EwwkeHuyA6uG7Qp3gGTrQJmXI65fromXmA84elguguzwR?=
 =?us-ascii?Q?t3XF7O81bsYOPPcNE2HzG9AabtNgM3Wjf34wWZZVIJYQ0pdPJEeQD29P8sb0?=
 =?us-ascii?Q?Zcv3AND+WaM6oykZO3qour9+7Lodzlr/fm1Xx17hZ65Bk5lmMFtIYxoa+ohX?=
 =?us-ascii?Q?YPtvVGedLDSiDBznv/kzSogHakV3U5pIgSP+rPVQBb7J+R0TPh3ZHd4UEs4+?=
 =?us-ascii?Q?rp09uCWvGLxbykXpTPaVDT55iqbu0/ePG+++69CE8hrkJvznkhJlG7hwnPS+?=
 =?us-ascii?Q?ZIv1Nge3AVPCef5vRstsn6+z8HplzTXTWr4vRbAlpucINursEtIbD5tTn7b3?=
 =?us-ascii?Q?Nii8mp9Gdm6sIcMVebnSm97H9ywjIMnMhmADhTLh+sFqQt8IQ+bqSjI7Wq1B?=
 =?us-ascii?Q?3yhWhcOxiAKB2t3CQxf/5P99dLTY9lacD21g0uh4XpuEYU9AByWztAcn2rlG?=
 =?us-ascii?Q?9AQplwVGAYaZnDAI6e8edjg9uCfSfQmk3pF9UkDNOan6smXGVpVg1aAfHEXx?=
 =?us-ascii?Q?Lc1SPBYyeRgqvD4MyHHRjdwupwLsMdY1wwtlQAwn85X6FjscAT6vbTM5ph1L?=
 =?us-ascii?Q?9xkemTbkjy7/SlB1Y5KuV+GvGV4wEKkN0r73UpZU9krtT3F6KdkSeocgKL0I?=
 =?us-ascii?Q?1fPlVWDIkFQoKV52lomkEOVKDdhLqZy2jQO769jJ62X9qd2WmlGC2qc0oedF?=
 =?us-ascii?Q?RLGZUx7C9ucUjFhrtmzWEFjgKJDr057SxoffGngwOZ+aN1VNjvabKpKq5KFZ?=
 =?us-ascii?Q?3oOXIgKftKGVTV0qsoI/RsnFB5CoBNG38f65JHMJqSQ5RQfPL7O4gmMq0a55?=
 =?us-ascii?Q?SvbrvSUmQnjCCYfClpg0Qob8h1+KL+KQp+0hjXg2woueaQWRgFgXrs5Ju7ln?=
 =?us-ascii?Q?26aEvPA5WTWEiZI0/IQUqD4yU8t3cjUWhpw/VN+EpH+MSutRxfw1ooMl7Di7?=
 =?us-ascii?Q?duBE1biuxocZ2NHnZyykpJd2nNEomyQX06awjfY79Xyr+hY9slpewlfh4RRy?=
 =?us-ascii?Q?RtIIoqdrmQJ2G2k4QmogcXG8QTMh88CLFW8QYF8xkf8gdMLhOXFNvP9Xj3Ob?=
 =?us-ascii?Q?iq2LzSGUud7Tx0XgkS8Ia9QekUWGSItn3D5ph61BcovSiXWEwBQuuhgbKhZM?=
 =?us-ascii?Q?WzSn8+FYxAYJc6kawY6hs3LwEH29TpM/tIGiUxBjv7f+3B7vFQ3gM8WXirds?=
 =?us-ascii?Q?qakUAOlrc5LuE8Rh8OEsX8E68aElWjQQt28BYAN4RPVtEO5VSv6RqOgLqLSR?=
 =?us-ascii?Q?rG2j9HJUlNL75PlSjU6yR+IRD5WtV5vNpvY5JCyFRm81/llu+SSIjf+xSq8O?=
 =?us-ascii?Q?OcKF99uaJIAuVlLw5KhOzTglOdEAvy5iWKcnlz2i/peh7XOfkCrX8Zt1prl9?=
 =?us-ascii?Q?AW4DG2JfZMZsX7IGlnthXMzfq/0TnYBm?=
X-Forefront-Antispam-Report:
	CIP:165.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: 08 Jul 2024 08:05:14.3318
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 142f9d9f-77bd-4ef3-0e88-08dc9f24b2a5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE39.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9126

Fix bug introduced by 0762e2502f1f ("x86/physdev: factor out the code to allocate and
map a pirq"). After that re-factoring, when pirq<0 and current_pirq>0, it means
caller want to allocate a free pirq for irq but irq already has a mapped pirq, then
it returns the negative pirq, so it fails. However, the logic before that
re-factoring is different, it should return the current_pirq that irq was already
mapped to and make the call success.

Fixes: 0762e2502f1f ("x86/physdev: factor out the code to allocate and map a pirq")

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/irq.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 017a94e31155..47477d88171b 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -2898,6 +2898,7 @@ static int allocate_pirq(struct domain *d, int index, int pirq, int irq,
                     d->domain_id, index, pirq, current_pirq);
             if ( current_pirq < 0 )
                 return -EBUSY;
+            pirq = current_pirq;
         }
         else if ( type == MAP_PIRQ_TYPE_MULTI_MSI )
         {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 08:15:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 08:15:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755139.1163396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQjXN-0002Mi-KL; Mon, 08 Jul 2024 08:15:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755139.1163396; Mon, 08 Jul 2024 08: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 1sQjXN-0002Mb-HL; Mon, 08 Jul 2024 08:15:53 +0000
Received: by outflank-mailman (input) for mailman id 755139;
 Mon, 08 Jul 2024 08:15: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=Jnsg=OI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sQjXM-0002MT-Kl
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 08:15:52 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 49dc1299-3d02-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 10:15:51 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-52ea2f58448so4397809e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 01:15:51 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4266c3650f4sm14674445e9.1.2024.07.08.01.15.50
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 01: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: 49dc1299-3d02-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720426550; x=1721031350; darn=lists.xenproject.org;
        h=content-transfer-encoding:subject:from:to:content-language
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q0PmZbE58TcaC2n1hmm/HVpvSJXSTp9dGOYpPIBbQQc=;
        b=J3tY2f4LanAIyYIrSVIxKUOzlowfRqkb8bW52T8llkeIeSfgN18j+Q+yF5agDY2NNR
         wR4XpFCSTpXa+Zo4/gRxWm1XIOfPhZSqKv28JjF0jiAbpc3ASA1Qi/cAP/aD3VwzWXv6
         H6KaRj8t0tXh/U1McnGHLl6/1HFytxNDlPZzmLvdUHF5q/iA17ziBASTPwtjgO7a+e8E
         wUZVy/5sbk7zaxXI3WpQFDTXpB/ZsdGcWpjfLnGeAPD5ndUYy3DB4CIIuui3dn3KZU2Z
         IlOR/64vi0276Kz8wGYz3JDDjd4kBgHNTFoPFP7n+I1/+FBgrMR3kpZNu2V3QnCM54U2
         tAOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720426550; x=1721031350;
        h=content-transfer-encoding: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=q0PmZbE58TcaC2n1hmm/HVpvSJXSTp9dGOYpPIBbQQc=;
        b=M3q8rjMR0Mtvo/N5GyR+4hnmbghv0aEcprxfPgdv2AWIphBVFw3hyI02UYDVUNM+zA
         x9K/cpPq0a9qwiwydNqG+fufhTAlBGU5/lYJXq+bXtLJGVvk2aVQaaT30WbhQozbrNTg
         cYCUiLLV56D2sQvihHNyrIt5BDLGx+31MhtLh9pW1vhYm7q+D2vif2gIjO5N32wpVnoc
         sUePDq1VLw4obD31HxosnDm4wCaXhWbuw/jJHjk75tyeQrT1HXaLr+SdmaccyRL1ZYvb
         h2N/9RrC8+TDeqgi0dJozi/q77xjw2nyTKrgj923znAEPaTiOBcg32lC+2zDzEzS1bfB
         rnJA==
X-Gm-Message-State: AOJu0Yz0kR2LyIAN1HvENzR/y7kxblFUE8V2SH7Z3vdPAJxjS2ZMobh6
	Tjd9TjRWcRkHajjkNAvNJs8C+QBvnSJsm2gEERdVykeG4ujmNQGEF6OlpT1KnI6BFM3Sp057jVi
	7
X-Google-Smtp-Source: AGHT+IEX37lQWKkdJq/CJpfgf/8Wu7Y0RdmLTi5amiTphGzrOOx/4bxJglXFexcs8L9rArfqhcMG5Q==
X-Received: by 2002:ac2:5e2a:0:b0:52c:e112:4b0c with SMTP id 2adb3069b0e04-52ea06133f1mr5880432e87.9.1720426550482;
        Mon, 08 Jul 2024 01:15:50 -0700 (PDT)
Message-ID: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
Date: Mon, 8 Jul 2024 10:15:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Subject: Problems in PV dom0 on recent x86 hardware
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

I've got an internal report about failures in dom0 when booting with
Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).

With some debugging I've found that the UCSI driver seems to fail to
map MFN feec2 as iomem, as the hypervisor is denying this mapping due
to being part of the MSI space. The mapping attempt seems to be the
result of an ACPI call of the UCSI driver:

[   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
[   44.575418]  xen_leave_lazy_mmu+0x15/0x60
[   44.575425]  vmap_range_noflush+0x408/0x6f0
[   44.575438]  __ioremap_caller+0x20d/0x350
[   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
[   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
[   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
[   44.575474]  acpi_ex_access_region+0x28a/0x510
[   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
[   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
[   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
[   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
[   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
[   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
[   44.575505]  acpi_ds_exec_end_op+0x392/0x860
[   44.575508]  acpi_ps_parse_loop+0x268/0xa30
[   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
[   44.575518]  acpi_ps_execute_method+0x171/0x3e0
[   44.575522]  acpi_ns_evaluate+0x174/0x5d0
[   44.575525]  acpi_evaluate_object+0x167/0x440
[   44.575529]  acpi_evaluate_dsm+0xb6/0x130
[   44.575541]  ucsi_acpi_dsm+0x53/0x80
[   44.575546]  ucsi_acpi_read+0x2e/0x60
[   44.575550]  ucsi_register+0x24/0xa0
[   44.575555]  ucsi_acpi_probe+0x162/0x1e3
[   44.575559]  platform_probe+0x48/0x90
[   44.575567]  really_probe+0xde/0x340
[   44.575579]  __driver_probe_device+0x78/0x110
[   44.575581]  driver_probe_device+0x1f/0x90
[   44.575584]  __driver_attach+0xd2/0x1c0
[   44.575587]  bus_for_each_dev+0x77/0xc0
[   44.575590]  bus_add_driver+0x112/0x1f0
[   44.575593]  driver_register+0x72/0xd0
[   44.575600]  do_one_initcall+0x48/0x300
[   44.575607]  do_init_module+0x60/0x220
[   44.575615]  __do_sys_init_module+0x17f/0x1b0
[   44.575623]  do_syscall_64+0x82/0x170
[   44.575685] 1 of 1 multicall(s) failed: cpu 4
[   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0 
pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073

The pte value of the mmu_update call is 80000000feec2073, which is rejected by
the hypervisor with -EPERM.

Before diving deep into the UCSI internals, is it possible that the hypervisor
needs some update (IOW: could it be the mapping attempt should rather be
honored, as there might be an I/O resources at this position which dom0 needs
to access for using the related hardware?)


Juergen


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 08:32:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 08:32:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755147.1163405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQjni-0005w1-Tz; Mon, 08 Jul 2024 08:32:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755147.1163405; Mon, 08 Jul 2024 08:32: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 1sQjni-0005vu-RP; Mon, 08 Jul 2024 08:32:46 +0000
Received: by outflank-mailman (input) for mailman id 755147;
 Mon, 08 Jul 2024 08: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=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQjni-0005vo-DY
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 08:32:46 +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 a622157a-3d04-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 10:32:44 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4266ea6a488so81135e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 01:32:44 -0700 (PDT)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3679c03fb09sm10552898f8f.70.2024.07.08.01.32.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 01:32: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: a622157a-3d04-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720427564; x=1721032364; 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=d07enfS5AH35cmYfa6m2rP8erM86X3kGx3eSc+Lg2zE=;
        b=L4rF6dWRF93AFrxPYEuUpxjL1ewGROlwvaqqHFVi11CdnSHl+xvyEJ9mPQYro+i0r4
         WoqiiNQ1QAAcxuRb9J1GwXQdQHP9e90jUQUTDm48nAfZIbtjdo7OhjFvPaTV4fIoLiGo
         YYjtJPEWjAYOWrRDpFXOUNGUZQ7nQ0bNXmGq0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720427564; x=1721032364;
        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=d07enfS5AH35cmYfa6m2rP8erM86X3kGx3eSc+Lg2zE=;
        b=Vzr6HyRX3B2T/R6TvbiSIfCplsEvhAxeYAh7kBMXiNhBb4jayB2Ffa0W4CheLuOISg
         yQZLpFG1vixBRr3qxTzgYYNQ9w7xU3kOzt6ij7+jH+/i/okAOEQ6PssdPxAlDgdRLz0v
         aPWP049IKgTtwxyPnQOIQ+OPTqJc9pO/Q33UqgCCMshLja88ZXXREYsoBIncjDSc9wQO
         C7hmxjrph2OQBIEISPHr2KETS8lEPLa/6flVnMPONcscuwCZytWMgaYiQQz2/RU56i7C
         9uDFw/Mb04EgVnfClKuyWlaH86wb2wmrf5djAeC6jjNc6FZnD3U76B2R1IOUDriYqBZ/
         3BDw==
X-Forwarded-Encrypted: i=1; AJvYcCUC30HHHKKyTOwQNf8gy65MeW6c0IcBcHPqpMp3WcAFX7AD8qdAtlDYIyDTGs72H39yZswYdqFoYpjuaypW9rywdt4+H1+K+haW1EZeyD4=
X-Gm-Message-State: AOJu0YyOEP/s8kHGk7dgYmXUitgjknxWKItQeJqsO+TYPoUIMt1mvkss
	U297v1dnDycli/hERftHni5vy9zScHbGGvLC4HIJld/ZtfaG4MG+5XrEUIGwsVA=
X-Google-Smtp-Source: AGHT+IFXcdI78kAQtV2LTIQKWnILcOMSxEl5h2OF7GQ2LoGkx5VV0Kw4pYgSjcaiQdLWu2StJeXVMg==
X-Received: by 2002:a7b:cd98:0:b0:426:6158:5b09 with SMTP id 5b1f17b1804b1-42661585c1fmr41809525e9.17.1720427564270;
        Mon, 08 Jul 2024 01:32:44 -0700 (PDT)
Message-ID: <fed11761-e609-4308-a161-2fc2e64c6898@citrix.com>
Date: Mon, 8 Jul 2024 09:32:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <baade0a7-e204-4743-bda1-282df74e5f89@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: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/07/2024 9:15 am, Jürgen Groß wrote:
> I've got an internal report about failures in dom0 when booting with
> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>
> With some debugging I've found that the UCSI driver seems to fail to
> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
> to being part of the MSI space. The mapping attempt seems to be the
> result of an ACPI call of the UCSI driver:
>
> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
> [   44.575425]  vmap_range_noflush+0x408/0x6f0
> [   44.575438]  __ioremap_caller+0x20d/0x350
> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
> [   44.575474]  acpi_ex_access_region+0x28a/0x510
> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
> [   44.575525]  acpi_evaluate_object+0x167/0x440
> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
> [   44.575546]  ucsi_acpi_read+0x2e/0x60
> [   44.575550]  ucsi_register+0x24/0xa0
> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> [   44.575559]  platform_probe+0x48/0x90
> [   44.575567]  really_probe+0xde/0x340
> [   44.575579]  __driver_probe_device+0x78/0x110
> [   44.575581]  driver_probe_device+0x1f/0x90
> [   44.575584]  __driver_attach+0xd2/0x1c0
> [   44.575587]  bus_for_each_dev+0x77/0xc0
> [   44.575590]  bus_add_driver+0x112/0x1f0
> [   44.575593]  driver_register+0x72/0xd0
> [   44.575600]  do_one_initcall+0x48/0x300
> [   44.575607]  do_init_module+0x60/0x220
> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
> [   44.575623]  do_syscall_64+0x82/0x170
> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
> [   44.575695]   call  1: op=1 result=-1
> caller=xen_extend_mmu_update+0x4e/0xd0 pars=ffff888267e25ad0 1 0 7ff0
> args=9ba37a678 80000000feec2073
>
> The pte value of the mmu_update call is 80000000feec2073, which is
> rejected by
> the hypervisor with -EPERM.
>
> Before diving deep into the UCSI internals, is it possible that the
> hypervisor
> needs some update (IOW: could it be the mapping attempt should rather be
> honored, as there might be an I/O resources at this position which
> dom0 needs
> to access for using the related hardware?)
>

It's only MSI space for external accesses.  For CPU accesses its other
things, notably the LAPIC MMIO window.

Do we know what this range is supposed to be for?  I do find it
surprising for a USB BAR to be here.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 08:37:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 08:37:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755155.1163416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQjsH-00073P-I6; Mon, 08 Jul 2024 08:37:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755155.1163416; Mon, 08 Jul 2024 08:37: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 1sQjsH-00073I-Dt; Mon, 08 Jul 2024 08:37:29 +0000
Received: by outflank-mailman (input) for mailman id 755155;
 Mon, 08 Jul 2024 08:37: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=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQjsG-000720-JD
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 08:37:28 +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 4e85d9fd-3d05-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 10:37:27 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2eaa89464a3so38375951fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 01:37: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
 98e67ed59e1d1-2c99a9cd3e7sm7591229a91.39.2024.07.08.01.37.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 01:37: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: 4e85d9fd-3d05-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720427847; x=1721032647; 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=HVi2QuOOiFsVeo4eZTzOhCsITH9zIUk3qCVeDy1/hOs=;
        b=QSpm4PyO4GSm8DIdwryEvXJG0TM2gzL9CdJ7imEysT6WhB9dFbEEJ//d+OiyTuh60E
         cdOXZ5HF/WbGZY2ZIr1vt6oikAtdYVPufhwax1EKW5bXUSib9GVxi92qXbR7iH5Z/ffR
         ar+ZFFowQhnRRheatapWiQF9m+tujrPHEINoISCUdzNa/8u8xM5ATeqk/Au2zWk3NaTP
         lQZvZheL5V+VgDz5rjhCY/xeBXLOP8Tr3PCTGNUTYQWWrvsyEjnu6H/7Tx53uNmSzrf3
         cwM5EXKFc+yBubr4C6rMo0fmitxFlia5NL+spNEs0dbzkGwWt5SuacNxfHOR4afaO70V
         Exlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720427847; x=1721032647;
        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=HVi2QuOOiFsVeo4eZTzOhCsITH9zIUk3qCVeDy1/hOs=;
        b=oNZTz3ZuPooY//bZQHTo15zfkagx7l2I4vUuTgH9VLNG3roviFs90yTr+wfLUVQjUm
         J7Egl/STU4EmX1f6rblxLGH9wwr8wSW6HaFCXkM+1qTWKAdhKdm1iTU9T8DxQz3vwyrk
         rq2ymJ8OuZWI5nCmVKh3SXvlNwCPh+tefd3RI6l+LTJVJ9L2UfGY2Np7a2TZZaH2tGDc
         4fmY6bVJVqumpSy7YzSnlLPR5YA1Phvj4tD41VUyhRBrzjjujJAL53+jBgBsz1xxtHil
         A/bgi6zRRn8pzJeOUdkrrnTpjNRtSlxZMFyrqcPFC//zSVa5Vgg3KsuBb9IY+Tr6aq7L
         VEEQ==
X-Gm-Message-State: AOJu0Yxp1fApTZv6vDB5uaV8o10Nu60LYKl4+TCDaxl1xxa/9dsRiFPd
	YXbuidQg7zdAYmLzXSXXwaIogZxdUSeq9OgGbPT13PVy8E7tx04dkUffsu0QEPZ+rkOjY5UaqBU
	=
X-Google-Smtp-Source: AGHT+IGACpdQjqUINg+fQEKVfBh660rti2P23jOsv6kf44F27SOvFtoe+DK4QKkCHEtz53XMETnu2A==
X-Received: by 2002:a2e:a58a:0:b0:2ee:6a72:f006 with SMTP id 38308e7fff4ca-2ee8ed8c709mr96312071fa.21.1720427846878;
        Mon, 08 Jul 2024 01:37:26 -0700 (PDT)
Message-ID: <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
Date: Mon, 8 Jul 2024 10:37:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
Content-Language: en-US
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.07.2024 10:15, Jürgen Groß wrote:
> I've got an internal report about failures in dom0 when booting with
> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
> 
> With some debugging I've found that the UCSI driver seems to fail to
> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
> to being part of the MSI space. The mapping attempt seems to be the
> result of an ACPI call of the UCSI driver:
> 
> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
> [   44.575425]  vmap_range_noflush+0x408/0x6f0
> [   44.575438]  __ioremap_caller+0x20d/0x350
> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
> [   44.575474]  acpi_ex_access_region+0x28a/0x510
> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
> [   44.575525]  acpi_evaluate_object+0x167/0x440
> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
> [   44.575546]  ucsi_acpi_read+0x2e/0x60
> [   44.575550]  ucsi_register+0x24/0xa0
> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> [   44.575559]  platform_probe+0x48/0x90
> [   44.575567]  really_probe+0xde/0x340
> [   44.575579]  __driver_probe_device+0x78/0x110
> [   44.575581]  driver_probe_device+0x1f/0x90
> [   44.575584]  __driver_attach+0xd2/0x1c0
> [   44.575587]  bus_for_each_dev+0x77/0xc0
> [   44.575590]  bus_add_driver+0x112/0x1f0
> [   44.575593]  driver_register+0x72/0xd0
> [   44.575600]  do_one_initcall+0x48/0x300
> [   44.575607]  do_init_module+0x60/0x220
> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
> [   44.575623]  do_syscall_64+0x82/0x170
> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0 
> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
> 
> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
> the hypervisor with -EPERM.
> 
> Before diving deep into the UCSI internals, is it possible that the hypervisor
> needs some update (IOW: could it be the mapping attempt should rather be
> honored, as there might be an I/O resources at this position which dom0 needs
> to access for using the related hardware?)

Adding to Andrew's reply: Is there any BAR in the system covering that address?
Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
space being accessed by certain incarnations of ACPI, resulting in similar
issues)?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 08:48:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 08:48:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755163.1163426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQk36-0000cL-Fx; Mon, 08 Jul 2024 08:48:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755163.1163426; Mon, 08 Jul 2024 08:48: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 1sQk36-0000cE-Cn; Mon, 08 Jul 2024 08:48:40 +0000
Received: by outflank-mailman (input) for mailman id 755163;
 Mon, 08 Jul 2024 08:48: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=Jnsg=OI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sQk35-0000c8-6G
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 08:48: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 de10f4f5-3d06-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 10:48:37 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-367a9ab4d81so1582915f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 01:48:37 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-367a40a6d4bsm8883267f8f.51.2024.07.08.01.48.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 01: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: de10f4f5-3d06-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720428517; x=1721033317; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :to:cc:subject:date:message-id:reply-to;
        bh=N3H/7sIcu6e8tjUnpwSrY0BYJ+kCDOUC8GfFTiWu95U=;
        b=HriTI3Kq7zjiS7G187A6tNHDlfP79T5CVppmaJV6pRPcGFAzj/MZfQWqAB5rxsOqH1
         YJy02kU91ArEdc+6O9kf1BJxrlQynlna8BgoQ3msawmhFNGrD2q0hxtmP2I6ZK94Em39
         Nwfyw/uV1AqILLA/BAuWp6lfGCmwQk26SRLvzO+wVBOPb8DUgLOqIHVSXrQa4nykfWOk
         pfL9+yw4HP+DM6uRG4SLSOZzWvwPOVUNBHM0f0KMZBJukkP+P1rihX3iqWWxBqRhTzcA
         4I75Y+ehqZehuBVSeQzEGqRoZeXxjkqlEplBA06kkN21XQcSal1nE1cmsrngLcmQrDEq
         H1LQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720428517; x=1721033317;
        h=content-transfer-encoding:in-reply-to: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=N3H/7sIcu6e8tjUnpwSrY0BYJ+kCDOUC8GfFTiWu95U=;
        b=cm7L5j+nIAH9jULMJtGc512sfeMNg3N6kKuPV6GzjytZjxXz+hy/VyYkyph8KGpZql
         TJv+8NQIjC0m6BZx2AalSgPdmX1GiAaXAo9lAiHa1Sibp6vDdLJQToCFcQgvnfemqbT2
         NSru2aKKCNPmcXk9axrLq0jA+pNi+iSY23vg825823wPPSKT1Wn34tMVTLb8XBk4F3/g
         cb866kjhHCIW2IIh3mittdrC5y8qJ4fB/3MmneCqcggAxL7ych0fxfKumu/9424RlntT
         wIRMsEavROWp5HcgTXXjkTJdd24rk8kHNyj4Ko1eZ9Lz4HvZtb1V/H7w86P0LcJHE4ip
         Q+jQ==
X-Forwarded-Encrypted: i=1; AJvYcCUZpwtlJcHy4/XWkeZPMHe/6qLdrV0JeNTfoevY1iLhM/afTZkLkW1rrFXWzK+Y84P251CLT/32Llme+ZQTm0LZSo3bHeb1vnu4trHsH4M=
X-Gm-Message-State: AOJu0Yz1CO2R1Av/RH0KBvKkruVYPi1EdXnkZZ/oGdZEP7eC/3GAJdh9
	Vpar2gDObYc2K8gv/C3irbtrkt521TN93o4Kd+p5BxUl9UlIIMNE1Am/f42gliw=
X-Google-Smtp-Source: AGHT+IHbkkLEbAz/wC+xNT7hJZLHErhZKKCz6adcbnP1BQz3VeonBrLsWazKM7tttKEJxugt+eMPnw==
X-Received: by 2002:a5d:5847:0:b0:367:84fe:cd79 with SMTP id ffacd0b85a97d-367c8f85932mr793258f8f.49.1720428517242;
        Mon, 08 Jul 2024 01:48:37 -0700 (PDT)
Message-ID: <9d0adb5a-4506-42d4-a3ee-59998352f2d1@suse.com>
Date: Mon, 8 Jul 2024 10:48:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <fed11761-e609-4308-a161-2fc2e64c6898@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <fed11761-e609-4308-a161-2fc2e64c6898@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 08.07.24 10:32, Andrew Cooper wrote:
> On 08/07/2024 9:15 am, Jürgen Groß wrote:
>> I've got an internal report about failures in dom0 when booting with
>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>
>> With some debugging I've found that the UCSI driver seems to fail to
>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>> to being part of the MSI space. The mapping attempt seems to be the
>> result of an ACPI call of the UCSI driver:
>>
>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>> [   44.575438]  __ioremap_caller+0x20d/0x350
>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>> [   44.575550]  ucsi_register+0x24/0xa0
>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>> [   44.575559]  platform_probe+0x48/0x90
>> [   44.575567]  really_probe+0xde/0x340
>> [   44.575579]  __driver_probe_device+0x78/0x110
>> [   44.575581]  driver_probe_device+0x1f/0x90
>> [   44.575584]  __driver_attach+0xd2/0x1c0
>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>> [   44.575590]  bus_add_driver+0x112/0x1f0
>> [   44.575593]  driver_register+0x72/0xd0
>> [   44.575600]  do_one_initcall+0x48/0x300
>> [   44.575607]  do_init_module+0x60/0x220
>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>> [   44.575623]  do_syscall_64+0x82/0x170
>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>> [   44.575695]   call  1: op=1 result=-1
>> caller=xen_extend_mmu_update+0x4e/0xd0 pars=ffff888267e25ad0 1 0 7ff0
>> args=9ba37a678 80000000feec2073
>>
>> The pte value of the mmu_update call is 80000000feec2073, which is
>> rejected by
>> the hypervisor with -EPERM.
>>
>> Before diving deep into the UCSI internals, is it possible that the
>> hypervisor
>> needs some update (IOW: could it be the mapping attempt should rather be
>> honored, as there might be an I/O resources at this position which
>> dom0 needs
>> to access for using the related hardware?)
>>
> 
> It's only MSI space for external accesses.  For CPU accesses its other
> things, notably the LAPIC MMIO window.
> 
> Do we know what this range is supposed to be for?  I do find it
> surprising for a USB BAR to be here.

I have requested more information from a bare metal boot, especially
/proc/iomem and output of lspci -v.


Juergen



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 08:56:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 08:56:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755169.1163436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkAo-0002CA-77; Mon, 08 Jul 2024 08:56:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755169.1163436; Mon, 08 Jul 2024 08:56: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 1sQkAo-0002C3-3B; Mon, 08 Jul 2024 08:56:38 +0000
Received: by outflank-mailman (input) for mailman id 755169;
 Mon, 08 Jul 2024 08:56:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQkAm-0002Br-F3; Mon, 08 Jul 2024 08:56:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQkAm-0001Ga-9r; Mon, 08 Jul 2024 08:56:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQkAl-0004Dm-RY; Mon, 08 Jul 2024 08:56:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQkAl-0004gy-R3; Mon, 08 Jul 2024 08:56:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ziS8mg564/tIgcKGUxRbJFLFzhiYscRap+Es998f0cE=; b=uIdNz1OyYRsj16OeawHE+cvVuP
	fkCwOuoA3X01dpDEonHzkh58R4ULFzbbc9obwaDzCKSlum+A6kP3TERjcC+HlBkI4mcxrZSbUMwjh
	68kiHONWWRu5rhbnRaZLyQvfjnNumOf1/ih5T7nT5SUu2wh9nz1LMAlh8n7zIDjW6+9I=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186726-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186726: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt-vhd:host-ping-check-xen:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c2a66d0b58b9661037cfed6bf3f8122b3363ca38
X-Osstest-Versions-That:
    xen=c2a66d0b58b9661037cfed6bf3f8122b3363ca38
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Jul 2024 08:56:35 +0000

flight 186726 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186726/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-vhd 10 host-ping-check-xen fail in 186719 pass in 186726
 test-armhf-armhf-xl           8 xen-boot                   fail pass in 186719

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl         15 migrate-support-check fail in 186719 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 186719 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186719
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186719
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186719
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail like 186719
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186719
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186719
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186719
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c2a66d0b58b9661037cfed6bf3f8122b3363ca38
baseline version:
 xen                  c2a66d0b58b9661037cfed6bf3f8122b3363ca38

Last test of basis   186726  2024-07-08 01:51:56 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 09:05:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:05:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755182.1163449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkIv-0004Bp-5n; Mon, 08 Jul 2024 09:05:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755182.1163449; Mon, 08 Jul 2024 09:05: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 1sQkIv-0004Bi-3L; Mon, 08 Jul 2024 09:05:01 +0000
Received: by outflank-mailman (input) for mailman id 755182;
 Mon, 08 Jul 2024 09:04: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=Jnsg=OI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sQkIt-0004Bc-UU
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:04:59 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2617ab0a-3d09-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 11:04:57 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a77d9217e6fso247197066b.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:04:57 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a72ab065208sm911918466b.118.2024.07.08.02.04.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 02: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: 2617ab0a-3d09-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720429497; x=1721034297; 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=CLguUnqOILj2nltoMSMd+O56+i+Df9CclOmYvB+j5Mk=;
        b=aRT78EgWHoUw0eZmzs+oFanbCP86u3XyAWd3oD+I/Gr9d6c3CAyfZzFPtJnfHX+F1f
         Hb2x5bdLagEPuNlqwxAcu3XyZQulXhDY6s/vx5Rek9Gf5FikS6isPQadW7x6FQZP4ey6
         75eBuxS6hzEpzZvbUxJRhwTcDzAxbEwRQJ8s2gBQ+SiSRZoAP2ijBT9ONJSIEEvyWrg6
         qy5LnQykQI/YKLFoj2XXEIYnO8hHwjr5MFQKAtgyfpDO//qMzUv9Ejrzw9xY3RNZHBYS
         EYttipsazhc52xXFnqFC6MeXloM9qbCgBHnmIisLyNPm7HqzKF2jaRHq+1GfYV9Y6dAR
         BWhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720429497; x=1721034297;
        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=CLguUnqOILj2nltoMSMd+O56+i+Df9CclOmYvB+j5Mk=;
        b=bjzFWOaNqzrfbRWtypvgfogAytFCHv7WIITTOeK5XOAIPsshGh2nPQRUVviQQ1iSqC
         0m3xdr9czmx2rMyQoAD3z32uSK9Wq30RgpD/xS2kyHnJjpBr03bqcwEsPu5SUuhkL5vJ
         4eGjCMLSFWmjIriJ8vyFEHjP0BI51PmAwpHkAM+R1zVxGkT9ysi5+QnGKuMRfc3mykO2
         9ryGjNk5L2XTEr0QDYG7YgH6LKpuBFfhQ/XsZDN8cT55kGlyGSo+xk53G4pBTbxgbXHy
         1JSuINEJ59XTTbbpB00PLYc4Yv6SXhhYED+T/rU9Ti0zO845OWUKOBrM5vsXJTWS2ES5
         bYew==
X-Forwarded-Encrypted: i=1; AJvYcCVmxrnMlIhVcaamiyoOoTZvmjvecqDjke2drUQ4YgTRCcjj7q5wfBllKvtuL45zGgEh6eR7dltcK01cOvrjrSYlTAIzHbtTK039i9hJLIk=
X-Gm-Message-State: AOJu0YzckDVf5SNcXvnXf2k4YshzUEFIMRU1YPDNJ0Ge/YGpWuLn7D9B
	Tk70D77uGdtQzUbUTPXauUvLrjHxmqNsIINfFhUgbG7NtSvmC2ZNWj1FuA21hQs=
X-Google-Smtp-Source: AGHT+IEfKmbjb7PP9nIF3X70+mcGNp57v/tF5rZEvNSyggSxpN3frMu/fbTIhNoinwcH4OyrIkBJcw==
X-Received: by 2002:a17:907:118e:b0:a72:7c0d:8fdc with SMTP id a640c23a62f3a-a77ba45525dmr798422866b.14.1720429496940;
        Mon, 08 Jul 2024 02:04:56 -0700 (PDT)
Message-ID: <2d9ffe19-1663-499c-9699-c13ab7a341ee@suse.com>
Date: Mon, 8 Jul 2024 11:04:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: make multicall debug boot time selectable
To: boris.ostrovsky@oracle.com, linux-kernel@vger.kernel.org, x86@kernel.org,
 linux-doc@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>, Thomas Gleixner <tglx@linutronix.de>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>,
 xen-devel@lists.xenproject.org
References: <20240703115620.25772-1-jgross@suse.com>
 <d28f8da5-7903-41c8-9213-4e24e376c837@oracle.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <d28f8da5-7903-41c8-9213-4e24e376c837@oracle.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 06.07.24 00:36, boris.ostrovsky@oracle.com wrote:
> 
> 
> On 7/3/24 7:56 AM, Juergen Gross wrote:
> 
>>   #define MC_BATCH    32
>> -#define MC_DEBUG    0
>> -
>>   #define MC_ARGS        (MC_BATCH * 16)
>>   struct mc_buffer {
>>       unsigned mcidx, argidx, cbidx;
>>       struct multicall_entry entries[MC_BATCH];
>> -#if MC_DEBUG
>> -    struct multicall_entry debug[MC_BATCH];
>> -    void *caller[MC_BATCH];
>> -#endif
>>       unsigned char args[MC_ARGS];
>>       struct callback {
>>           void (*fn)(void *);
>> @@ -50,13 +46,84 @@ struct mc_buffer {
>>       } callbacks[MC_BATCH];
>>   };
>> +struct mc_debug_data {
>> +    struct multicall_entry debug[MC_BATCH];
> 
> 'entries'? It's a mc_debug_data's copy of mc_buffer's entries.

Yes, this is better.

> Also, would it be better to keep these fields as a struct of scalars and instead 
> have the percpu array of this struct? Otherwise there is a whole bunch of 
> [MC_BATCH] arrays, all of them really indexed by the same value. (And while at 
> it, there is no reason to have callbacks[MC_BATCH] sized like that -- it has 
> nothing to do with batch size and can probably be made smaller)

As today the mc_buffer's entries are copied via a single memcpy(), there
are 3 options:

- make mc_debug_data a percpu pointer to a single array, requiring to
   copy the mc_buffer's entries in a loop

- let struct mc_debug_data contain two arrays (entries[] and struct foo {}[],
   with struct foo containing the other pointers/values)

- keep the layout as in my patch

Regarding the callbacks: I think the max number of callbacks is indeed MC_BATCH,
as for each batch member one callback might be requested. So I'd rather keep it
the way it is today.

>> +    void *caller[MC_BATCH];
>> +    size_t argsz[MC_BATCH];
>> +};
>> +
>>   static DEFINE_PER_CPU(struct mc_buffer, mc_buffer);
>> +static struct mc_debug_data __percpu *mc_debug_data;
>> +static struct mc_debug_data mc_debug_data_early __initdata;
> 
> How about (I think this should work):
> 
> static struct mc_debug_data __percpu *mc_debug_data __refdata = 
> &mc_debug_data_early;
> 
> Then you won't need get_mc_debug_ptr().

I like this idea.


Juergen


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 09:08:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:08:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755189.1163460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkMM-0005BJ-Jw; Mon, 08 Jul 2024 09:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755189.1163460; Mon, 08 Jul 2024 09: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 1sQkMM-0005BC-HM; Mon, 08 Jul 2024 09:08:34 +0000
Received: by outflank-mailman (input) for mailman id 755189;
 Mon, 08 Jul 2024 09: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=xFgZ=OI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sQkML-0005B6-RQ
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:08:33 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a649f455-3d09-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 11:08:32 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-52ccc40e72eso2006834e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:08:32 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-367960deabdsm12331131f8f.24.2024.07.08.02.08.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 02: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: a649f455-3d09-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720429712; x=1721034512; 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=fvuJUQX81KBl0J8VWW4TsRBecxF+LQVa0Tw/R5s080A=;
        b=lPcba13lg9Lb2TpiOSpA08Q8Wo6SrNsVsBQweBx7fzj01xsf2BO6JyHB3ve2wK51Bg
         2DKOg+MIb44v20iQOPgq6t9QFnRuG9qd7FuZzz1w6yrNzmeOoCsPQhgin7BEi/5KnMdM
         MG7iC+++hwxZKjFfzz/bwLqNNYU8iDWpOb2gE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720429712; x=1721034512;
        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=fvuJUQX81KBl0J8VWW4TsRBecxF+LQVa0Tw/R5s080A=;
        b=HG2hoqj5Nqr0Q7Cf9CBaetcmUFYmiVmDo44yPVvm9LVfhFZ+9H8QrHH/ZmFD4vrlcY
         CNT1h1/7EUEIxTtfOu34HdFKBb6kdeTbb9n8XkkJ94CJc+DkOYgHe7UMyV53moHwszMl
         mw6jPM/eLnFfWOScQtVmCwX9OnOTbpjZwM8Hx/wPxTum1UAZjWTobDzE/NMYVD08gYuZ
         bNjxCxE5nmFiXfrsQ9IS9w2CcNy4XUM1ybGOmaqHy7Ce5EvG7IyEzczaz6lQfWeqjhXP
         iE2Mpd1fAH4GkR+A/G0idfSoY/sVqSnd8GSPt1NN+RXTU8sJZj+msc7E79EzQk3rSR4z
         SInA==
X-Forwarded-Encrypted: i=1; AJvYcCW8AqRopEHViU4E8qZ45bFg9vTna72ovoi7h3yjSkz4YBjOJ14NtSXK3P7vjpTFxnyZTBZM+89/UCopMP32TS5H8ekPigV4yaEk4Vcx9vk=
X-Gm-Message-State: AOJu0YwHsUlHcj+UTEiGxYbj5NK91ZSc+j2RicBfU7LWYo31gT8kmAnI
	YlZvPbnk2BVHX03IlmaOZfRhzVygqnQFfNz9caRhVmKSjT82VUAjigk49uHuwMzCbq0D65VfP/V
	L
X-Google-Smtp-Source: AGHT+IHwgCIyXWOzb/B5eu9AeMpyElJOnKEVh4bDtkL/1IrUu8EzOsYBISroqTjK2yG9CB8I9CWChw==
X-Received: by 2002:ac2:5924:0:b0:52c:d20b:22c8 with SMTP id 2adb3069b0e04-52ea06cf08cmr8005932e87.64.1720429711866;
        Mon, 08 Jul 2024 02:08:31 -0700 (PDT)
Date: Mon, 8 Jul 2024 11:08:30 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: Problems in PV dom0 on recent x86 hardware
Message-ID: <ZousjqOAFJgO6681@macbook.local>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>

On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
> On 08.07.2024 10:15, Jürgen Groß wrote:
> > I've got an internal report about failures in dom0 when booting with
> > Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
> > 
> > With some debugging I've found that the UCSI driver seems to fail to
> > map MFN feec2 as iomem, as the hypervisor is denying this mapping due
> > to being part of the MSI space. The mapping attempt seems to be the
> > result of an ACPI call of the UCSI driver:
> > 
> > [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
> > [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
> > [   44.575425]  vmap_range_noflush+0x408/0x6f0
> > [   44.575438]  __ioremap_caller+0x20d/0x350
> > [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
> > [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
> > [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
> > [   44.575474]  acpi_ex_access_region+0x28a/0x510
> > [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
> > [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
> > [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
> > [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
> > [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
> > [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
> > [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
> > [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
> > [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
> > [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
> > [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
> > [   44.575525]  acpi_evaluate_object+0x167/0x440
> > [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
> > [   44.575541]  ucsi_acpi_dsm+0x53/0x80
> > [   44.575546]  ucsi_acpi_read+0x2e/0x60
> > [   44.575550]  ucsi_register+0x24/0xa0
> > [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> > [   44.575559]  platform_probe+0x48/0x90
> > [   44.575567]  really_probe+0xde/0x340
> > [   44.575579]  __driver_probe_device+0x78/0x110
> > [   44.575581]  driver_probe_device+0x1f/0x90
> > [   44.575584]  __driver_attach+0xd2/0x1c0
> > [   44.575587]  bus_for_each_dev+0x77/0xc0
> > [   44.575590]  bus_add_driver+0x112/0x1f0
> > [   44.575593]  driver_register+0x72/0xd0
> > [   44.575600]  do_one_initcall+0x48/0x300
> > [   44.575607]  do_init_module+0x60/0x220
> > [   44.575615]  __do_sys_init_module+0x17f/0x1b0
> > [   44.575623]  do_syscall_64+0x82/0x170
> > [   44.575685] 1 of 1 multicall(s) failed: cpu 4
> > [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0 
> > pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
> > 
> > The pte value of the mmu_update call is 80000000feec2073, which is rejected by
> > the hypervisor with -EPERM.
> > 
> > Before diving deep into the UCSI internals, is it possible that the hypervisor
> > needs some update (IOW: could it be the mapping attempt should rather be
> > honored, as there might be an I/O resources at this position which dom0 needs
> > to access for using the related hardware?)
> 
> Adding to Andrew's reply: Is there any BAR in the system covering that address?
> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
> space being accessed by certain incarnations of ACPI, resulting in similar
> issues)?

So you think ACPI is using some kind of backdoor to access the local
APIC registers?

It's my understanding the local APIC registers are all located in the
first page of the range (0xfee00).  It would also be weird because
ACPI doesn't know whether the APIC is in x2APIC mode.

Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 09:09:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:09:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755193.1163470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkND-0005fR-Sx; Mon, 08 Jul 2024 09:09:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755193.1163470; Mon, 08 Jul 2024 09:09:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkND-0005fK-QH; Mon, 08 Jul 2024 09:09:27 +0000
Received: by outflank-mailman (input) for mailman id 755193;
 Mon, 08 Jul 2024 09: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=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQkND-0005fC-0j
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:09:27 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5fb4fa5-3d09-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 11:09:25 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2ee92f7137bso29456931fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:09: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
 d9443c01a7336-1fb717bc129sm33567285ad.263.2024.07.08.02.09.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 02: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: c5fb4fa5-3d09-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720429765; x=1721034565; 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=0nKUeIdbdCUGNmYqPshJCqwXDjCi4FUnQTJEQONoPEc=;
        b=Qlvi+rThdDOPPvosB1bX4lt714iXJAtZ3QVjDaNy1uWY+o+LnryOpwkg2+A3Ar/3kJ
         RUhEkKZFLnCdZeT81WxkbzlbizfwxKZFSDaiCeAKN8PwUayyTSEjsjMpp2YWmW4KKj7b
         Ll41Go+D6iYPdtmU0m2AIjuV1MPtQt1Dc3qZoKE8HnAF2g3jjlcTvPczc84QXkfRzctl
         QLFdChy1jap23bMVuiVeqTVuhrD5Z1JuGeg5+yzPeDJg7NXD7Bq3aYt8KIX2pKJJStqu
         iKmDjYXRk+W8vEn+YhV132U5+Cg9aQJRk+rMFak91OJGEdIP2+V1VdldTU+yz+raQ5vb
         rPfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720429765; x=1721034565;
        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=0nKUeIdbdCUGNmYqPshJCqwXDjCi4FUnQTJEQONoPEc=;
        b=Kx8RZTZYeSTg4kddQ82iOM1/mXFuuFy+o/FHeAKEYebfMnxcyrbXLZvkoeV+uadbeb
         /Z8subwkI8jQs45VBv1+zXoFJ/cU7T5ECJS2O4y9NISp+ynyQKzY+ruNVuvlUFpXDYvr
         uYVsDENgRx2owUaEld8fa9+aQlKvUYqQulsa1o5yusREOgXi1isb+uKEt10aiGN6dQNO
         yu42gWo+HJ/T0Tcli+xpFydLQVC19q8l8coa6R+AJE4VKY47kJXQtmdTB8u8KS5CIdBr
         MU4WbAjKrYLBs/XXezWgEIhm5M7hCtjNBqv7kO4bbjjn0sAlnLNWR43zKiiRrawWha+g
         rF1Q==
X-Gm-Message-State: AOJu0YyLM3wK53X8An/dD93ABYe9Y/m9yrxhvHCAbNd4ynYuI75ybgbh
	eQ2dOWhukp/C9uaOT8AA5dehrMNjmVaz7ctHINSNif1LM8YFvEislwygThKAQw==
X-Google-Smtp-Source: AGHT+IHNVfCp2CSZqnCMI+3oOOf8CCQaxf2AyTlsmQIGfeXpVvJ8zlkq09yqgXQIWjnEokmiUqzNtQ==
X-Received: by 2002:a2e:9684:0:b0:2ee:893e:4efc with SMTP id 38308e7fff4ca-2ee8ed69c50mr96106941fa.10.1720429765250;
        Mon, 08 Jul 2024 02:09:25 -0700 (PDT)
Message-ID: <9d3d1e2e-738e-4ed8-a771-ca541fde9002@suse.com>
Date: Mon, 8 Jul 2024 11:09:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: GNTTABOP_setup_table yields -1 PFNs
To: Taylor R Campbell <riastradh-xen-devel@NetBSD.org>
References: <20240706022242.3238584D44@mail.netbsd.org>
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: <20240706022242.3238584D44@mail.netbsd.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.07.2024 04:22, Taylor R Campbell wrote:
> On a Xen 4.14 host (with extraversion=.0.88.g1d1d1f53), with version 1
> grant tables, where GNTTABOP_query_size initially returns nr_frames=32
> max_nr_frames=64, a NetBSD guest repeatedly queries
> GNTTABOP_setup_table for successively larger nr_frames from 1 up.

First question: Is there some earlier GNTTABOP_setup_table that you invoke?
I'd expect (and also observe) nr_frames=1 initially.

Second: The version you name is pretty unclear from an upstream perspective.
Leaving aside that 4.14 is out of support, it's entirely unclear whether you
at least have all bug fixes in place that we have upstream (4.14.6). Without
that it's hard to see what you're asking for.

> The guest initially gets arrays of valid-looking PFNs.  But then at
> nr_frames=33, the PFNs [0] through [31] in the resulting array are
> valid but PFN [32] is -1, i.e., all bits set.
> 
> GNTTABOP_setup_table returned 0 and op.status = GNTST_okay, so it
> didn't fail -- it just returned an invalid PFN.  And _after_
> GNTTABOP_setup_table yields -1 as a PFN, GNTTABOP_query_size returns
> nr_frames=33 max_nr_frames=64, so the host thinks it has successfully
> allocated more frames.
> 
> What could cause the host to return a PFN -1?  Is there anything the
> guest does that could provoke this?  Are there any diagnostics that
> the guest could print to help track this down?  (I don't control the
> host.)  Should a guest just check for -1 and stop as if it had hit
> max_nr_frames?

I'm afraid for the moment, from just the information provided, I can't
reproduce this using a simple patch on top of XTF's self-test (see below).
Neither with a 64-bit PV guest, nor with a 32-bit one. I've been doing
this with a pretty recent 4.19 Xen, though.

Jan

--- a/include/xen/grant_table.h
+++ b/include/xen/grant_table.h
@@ -275,6 +275,23 @@ struct gnttab_setup_table
 };
 
 /*
+ * GNTTABOP_query_size: Query the current and maximum sizes of the shared
+ * grant table.
+ * NOTES:
+ *  1. <dom> may be specified as DOMID_SELF.
+ *  2. Only a sufficiently-privileged domain may specify <dom> != DOMID_SELF.
+ */
+#define GNTTABOP_query_size           6
+struct gnttab_query_size {
+    /* IN parameters. */
+    domid_t  dom;
+    /* OUT parameters. */
+    uint32_t nr_frames;
+    uint32_t max_nr_frames;
+    int16_t  status;              /* => enum grant_status */
+};
+
+/*
  * GNTTABOP_unmap_and_replace: Destroy one or more grant-reference mappings
  * tracked by <handle> but atomically replace the page table entry with one
  * pointing to the machine address under <new_addr>.  <new_addr> will be
--- a/tests/selftest/main.c
+++ b/tests/selftest/main.c
@@ -230,6 +230,57 @@ static void test_driver_init(void)
     if ( rc )
         xtf_failure("Fail: xtf_init_grant_table(1) returned %d\n", rc);
 
+    struct gnttab_query_size query = { .dom = DOMID_SELF };
+    rc = hypercall_grant_table_op(GNTTABOP_query_size, &query, 1);
+    if ( rc )
+        xtf_failure("Fail: GNTTABOP_query_size returned %d\n", rc);
+    if ( query.status != GNTST_okay )
+        xtf_failure("Fail: GNTTABOP_query_size status %d\n", query.status);
+    printk("gnttab: nr=%u max=%u\n", query.nr_frames, query.max_nr_frames);
+
+    unsigned long frame_list[36], prev[ARRAY_SIZE(frame_list)];
+    if ( query.max_nr_frames > ARRAY_SIZE(frame_list) )
+        query.max_nr_frames = ARRAY_SIZE(frame_list);
+
+    if ( query.max_nr_frames > 32 )
+    {
+        struct gnttab_setup_table setup = {
+            .dom = DOMID_SELF,
+            .nr_frames = 32,
+            .frame_list = frame_list,
+        };
+
+        rc = hypercall_grant_table_op(GNTTABOP_setup_table, &setup, 1);
+        if ( rc )
+            xtf_failure("Fail: GNTTABOP_setup_table(%u) returned %d (%u)\n",
+                        setup.nr_frames, rc, query.max_nr_frames);
+        if ( setup.status != GNTST_okay )
+            xtf_failure("Fail: GNTTABOP_setup_table(%u) status %d (%u)\n",
+                        setup.nr_frames, setup.status, query.max_nr_frames);
+        printk("gnttab: tbl[%u] @ %lx\n",
+               setup.nr_frames - 1, frame_list[setup.nr_frames - 1]);
+    }
+
+    for ( unsigned int n = 1; n <= query.max_nr_frames; ++n )
+    {
+        struct gnttab_setup_table setup = {
+            .dom = DOMID_SELF,
+            .nr_frames = n,
+            .frame_list = frame_list,
+        };
+
+        rc = hypercall_grant_table_op(GNTTABOP_setup_table, &setup, 1);
+        if ( rc )
+            xtf_failure("Fail: GNTTABOP_setup_table(%u) returned %d\n", n, rc);
+        if ( setup.status != GNTST_okay )
+            xtf_failure("Fail: GNTTABOP_setup_table(%u) status %d\n", n, setup.status);
+        printk("gnttab: tbl[%u] @ %lx\n", n - 1, frame_list[n - 1]);
+        for ( unsigned int i = 0; i < n - 1; ++i )
+            if ( frame_list[i] != prev[i] )
+                printk("gnttab: %lx != %lx\n", frame_list[i], prev[i]);
+        memcpy(prev, frame_list, n * sizeof(*frame_list));
+    }
+
     rc = xtf_init_grant_table(2);
     if ( rc && rc != -ENODEV )
         xtf_failure("Fail: xtf_init_grant_table(2) returned %d\n", rc);




From xen-devel-bounces@lists.xenproject.org Mon Jul 08 09:11:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:11:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755199.1163481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkP1-00077j-9r; Mon, 08 Jul 2024 09:11:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755199.1163481; Mon, 08 Jul 2024 09:11: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 1sQkP1-00077c-52; Mon, 08 Jul 2024 09:11:19 +0000
Received: by outflank-mailman (input) for mailman id 755199;
 Mon, 08 Jul 2024 09: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=xFgZ=OI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sQkOz-00077U-JR
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:11:17 +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 080bd97d-3d0a-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 11:11:16 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-42662c21289so8709335e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:11:16 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4264a1dd97bsm151250825e9.15.2024.07.08.02.11.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 02:11: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: 080bd97d-3d0a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720429876; x=1721034676; 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=GnB5HIk7cp+v8DIacqG7l0x/DLFvtsxiT3Ug1mZ4Wrk=;
        b=TztAxM4i92rvHBXWqPk3bYgyMgDq4fWqwpcWfLBT1U/uo4/smzUARPw+OzQ2jlBaSq
         XAw+7Bmvqep37FEFvdArzd/kqNEBujPEA4eboOycYOxvgYccKkLCRuuRv6k3m98wggm+
         77BzTzwGtbmOy4Qg50QLkxvtbnZ9XF6jEwkoQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720429876; x=1721034676;
        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=GnB5HIk7cp+v8DIacqG7l0x/DLFvtsxiT3Ug1mZ4Wrk=;
        b=qodda9csLN38WpYdS73+TlzW0t70Wo83QkrZiqPblLJLTVCnmlYpFjWcbpamzOGLDA
         cp18DnOTqp+EdZfbDBjHuAoAJQIKIiWrshrJXENBqd3iyLrdCr2urqCofmPSsdeU4V/W
         cMIEdKvVXh6lqXjXu5dSaRflUkGPdRoaROvQrzanNY5IYDheAB2FWlaNAk4h25440fG2
         nuoQeC3lu6mxkcrjmit3P9yxEpIxgo8SsQlbNhvcEg1iMVqFtaObyX7iuVxIsXYeUgGg
         toQhnY5kIoQ+8cc+dj5HzAWL5/DnTerJWVJD8cFxHLRD++CBBwTYKpiu31c8+IIKKFau
         pkhQ==
X-Gm-Message-State: AOJu0Yy/eZuLnA2kwRsfAveBD8tlF0hw4cwNbIssV6VeIG1fUWx0xe8G
	ocFjjBhJSOeBkJgnR4bLmjjbMSwdi1Q4yCi4Flo8jIqasSxQyG/Frz61muw7/G0=
X-Google-Smtp-Source: AGHT+IEnDrh9GcytZhFhW2/ShylcYDqJYL/GK1BFxdeFfiafWA/ghxmVwrR7GtrZwmT65JrtWd6QeA==
X-Received: by 2002:a05:600c:4988:b0:426:6308:e2f0 with SMTP id 5b1f17b1804b1-4266308e447mr26752585e9.26.1720429876081;
        Mon, 08 Jul 2024 02:11:16 -0700 (PDT)
Date: Mon, 8 Jul 2024 11:11:14 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 1/6] build: Regenerate ./configure with Autoconf
 2.71
Message-ID: <ZoutMipld6GtGSmV@macbook.local>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-2-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20240705152037.1920276-2-andrew.cooper3@citrix.com>

On Fri, Jul 05, 2024 at 04:20:32PM +0100, Andrew Cooper wrote:
> This is the version now found in Debian Bookworm.
> 
> 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 Mon Jul 08 09:13:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:13:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755202.1163490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkQi-0007fz-I0; Mon, 08 Jul 2024 09:13:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755202.1163490; Mon, 08 Jul 2024 09: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 1sQkQi-0007fs-F5; Mon, 08 Jul 2024 09:13:04 +0000
Received: by outflank-mailman (input) for mailman id 755202;
 Mon, 08 Jul 2024 09:13: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=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQkQg-0007fh-Tm
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:13:02 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 462ce649-3d0a-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 11:13:00 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2eabd22d3f4so38842191fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:13: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
 d9443c01a7336-1fb9b47b9fcsm11723915ad.270.2024.07.08.02.12.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 02: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: 462ce649-3d0a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720429980; x=1721034780; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aNpzA4Vf9v85f6KEmGlLM5R905EIzXG/yGVYfCMcNqI=;
        b=f5Faju9LzBJu7+JenX3VushKAcD8kI+yzf1alAi5FbPdd8AQiaUOL0wKXW71nG1SGp
         +ms7q9VEiYf3jQz3GtotOOGDe6A11zI6aCUqDayXMSSoTsazY71Bd+ndCqPLBDhVt8K1
         mvLpBi+56Rl6rdKvPE8PrMceCRGC9KrkUV88QU/LhuOCuHupbRX81J35G2xPVAqe7fLn
         iyXq0IJv2nW6Wk1pAnzD7XSba5l2Rc2ZZn6sdJMYWR+OlY3QekR9g5R4OPVwIPjqeO/E
         GUBW8PCWytiw+T6DMXcJDvZoRopMSV+YFOn/Er3sTqnDPp2Xjq3VeUhopd6HZv3W5rhI
         onmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720429980; x=1721034780;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aNpzA4Vf9v85f6KEmGlLM5R905EIzXG/yGVYfCMcNqI=;
        b=LnYp7F54GrZnp4kf0cq+dmJ0qGPEzx12kWx6vBSNbM2UKdie1WeIqybWulsefihtDb
         tI3VivXAd8tV2ENaWKa0HpYaHbRbKJv/u4vjFIqstX9NH6ezQVVBltuvulVppkyglS3H
         2jmlTn5qi9ZGSBYvauMHotp160TmdI+7zJEW30VxXOpbeZZw6dVQXvf7U3iI5a40rQI+
         vLD9ONibxBLocIfsHrdOQYJu5uJ4xGGC/9JrN+Lf5PcskjqI4B6nmXCkk4YxABRr6K8U
         1X2kEUQwkTMjr8qltbww0tV63JUsuhCGWbaL8xYOwERdRVFRcJu55BOThpcHjQ//0faM
         NxfA==
X-Forwarded-Encrypted: i=1; AJvYcCVqxgcYB6Oc8G9ti5F1F0u7t1ByGqITeUGcn9VlMbhJ22TuqSFfZs7B4/KCa9BtPgFvRZl3BriNCHS7xYNw3B6VzduyxEpt5fRei0ltscw=
X-Gm-Message-State: AOJu0YwuJRC6IzDjH/OrfKg3yeFUhCavU2+kleRM/TAFc6Szmm//jXXq
	HXm1EH/4DcHwf9YL//OewsPvssPjiGy6CCDJw7TNvX3ZdmRGnYITitZU9+GHGg==
X-Google-Smtp-Source: AGHT+IFLE06sYYj7h7vJNEFy+UTJ/hlZOg8EBJQU7BAtH5DJ9zGIZKNvga7/KZ4pNRmW6r3I5zfasA==
X-Received: by 2002:a05:651c:114b:b0:2ec:3dd4:75f4 with SMTP id 38308e7fff4ca-2ee8edc23d3mr86651781fa.38.1720429980359;
        Mon, 08 Jul 2024 02:13:00 -0700 (PDT)
Message-ID: <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
Date: Mon, 8 Jul 2024 11:12:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@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: <ZousjqOAFJgO6681@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.07.2024 11:08, Roger Pau Monné wrote:
> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
>> On 08.07.2024 10:15, Jürgen Groß wrote:
>>> I've got an internal report about failures in dom0 when booting with
>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>>
>>> With some debugging I've found that the UCSI driver seems to fail to
>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>>> to being part of the MSI space. The mapping attempt seems to be the
>>> result of an ACPI call of the UCSI driver:
>>>
>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>>> [   44.575438]  __ioremap_caller+0x20d/0x350
>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>> [   44.575550]  ucsi_register+0x24/0xa0
>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>> [   44.575559]  platform_probe+0x48/0x90
>>> [   44.575567]  really_probe+0xde/0x340
>>> [   44.575579]  __driver_probe_device+0x78/0x110
>>> [   44.575581]  driver_probe_device+0x1f/0x90
>>> [   44.575584]  __driver_attach+0xd2/0x1c0
>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>>> [   44.575590]  bus_add_driver+0x112/0x1f0
>>> [   44.575593]  driver_register+0x72/0xd0
>>> [   44.575600]  do_one_initcall+0x48/0x300
>>> [   44.575607]  do_init_module+0x60/0x220
>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>>> [   44.575623]  do_syscall_64+0x82/0x170
>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0 
>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
>>>
>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
>>> the hypervisor with -EPERM.
>>>
>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
>>> needs some update (IOW: could it be the mapping attempt should rather be
>>> honored, as there might be an I/O resources at this position which dom0 needs
>>> to access for using the related hardware?)
>>
>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
>> space being accessed by certain incarnations of ACPI, resulting in similar
>> issues)?
> 
> So you think ACPI is using some kind of backdoor to access the local
> APIC registers?

No, I'm wondering if they're trying to access *something*. As it stands we
don't even know what kind of access is intended; all we know is that they're
trying to map that page (and maybe adjacent ones).

> It's my understanding the local APIC registers are all located in the
> first page of the range (0xfee00).  It would also be weird because
> ACPI doesn't know whether the APIC is in x2APIC mode.

Indeed.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 09:13:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:13:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755203.1163501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkQj-0007up-VJ; Mon, 08 Jul 2024 09:13:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755203.1163501; Mon, 08 Jul 2024 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 1sQkQj-0007ub-PO; Mon, 08 Jul 2024 09:13:05 +0000
Received: by outflank-mailman (input) for mailman id 755203;
 Mon, 08 Jul 2024 09:13:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xFgZ=OI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sQkQj-0007fh-3L
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:13:05 +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 47a31b00-3d0a-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 11:13:03 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-367818349a0so2023045f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:13:03 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3678c379cc6sm14813789f8f.49.2024.07.08.02.13.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 02: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: 47a31b00-3d0a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720429983; x=1721034783; 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=hde0+z5cy+SNFYD8C6F9LlHiW0ptjbdU4v7lfWTOk80=;
        b=UekagZ1kcXVxwzbYq5m3fJSHYa33Z7Hq7G0hF3gFCNvAKcxp2T82VoH9oAcKdrTqmG
         X+GbNlbFtqxE+MnBdZluC6xSAsJh9QlRLrHar57ULjHfW+s3AI947S7mquH8bn9ibWLA
         lpROJ/EGv5FY43l+dNshjNCxx4dZNm7lmCXDc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720429983; x=1721034783;
        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=hde0+z5cy+SNFYD8C6F9LlHiW0ptjbdU4v7lfWTOk80=;
        b=No4nsacDoPhUfZnwKS/zkGX2YoIboLqK/wczOyfwoI/WAddNHiRCvcGC3RvjrBf2TI
         MF4cJ2kO8VaRnRHyUwamWFYE+z2S8TbvVTPN43ZmSx3hAuFC86pJiwr/D+HRUVaDHEBK
         n4x0yWlIcqdAIvGi5po7wEqIaMuzmFH+GbYeZl4SmLnnruJ0mnSVV41CEW26kZCItu02
         5SmsBnRcTyHVYGFLbSEv3Ibd7Y/zpn9nbGOye0/mo2cu4Ql5gUuV9GHIOF0PT2l5EZGn
         iiaJP0WRCV4v2tlT3P/sKIuAWn+rJpq253sOLqKkdiLhkarJOqKEe8SvPRu3YZ2eU/dH
         h6RQ==
X-Gm-Message-State: AOJu0YzZjChcxl2+BHP6Y8BYPG1N5U+JOsfVxKDKhFaN83aS8QOjcGu8
	kocZ4+r8GokfSTm5mDhdmd0Jk1owwfZHYaXbgeHUSydwwoM3LX6jix+78ZjzLeA=
X-Google-Smtp-Source: AGHT+IEsrb/HMbR2mX6HtSca8odlFpaz+Z0gIt71FaBvHJ7LUTgvtQjjNyuG8iLftqHT99gVQD4JCQ==
X-Received: by 2002:adf:ea46:0:b0:367:947a:8e2b with SMTP id ffacd0b85a97d-3679dd336damr6101094f8f.36.1720429982769;
        Mon, 08 Jul 2024 02:13:02 -0700 (PDT)
Date: Mon, 8 Jul 2024 11:13:01 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 2/6] build: Fix the version of python checked
 for by ./configure
Message-ID: <Zoutna1CuBMkpIrZ@macbook.local>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-3-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20240705152037.1920276-3-andrew.cooper3@citrix.com>

On Fri, Jul 05, 2024 at 04:20:33PM +0100, Andrew Cooper wrote:
> We previously upped the minimum python version to 2.6, but neglected to
> reflect this in ./configure
> 
> Fixes: 2a353c048c68 ("tools: Don't use distutils in configure or Makefile")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

With the version in the commit log changed to 2.7 as noticed by Jan:

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 09:16:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:16:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755216.1163509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkTq-0000PK-AD; Mon, 08 Jul 2024 09:16:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755216.1163509; Mon, 08 Jul 2024 09:16:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkTq-0000PD-7a; Mon, 08 Jul 2024 09:16:18 +0000
Received: by outflank-mailman (input) for mailman id 755216;
 Mon, 08 Jul 2024 09:16:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQkTp-0000P7-C4
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:16:17 +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 ba96a48d-3d0a-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 11:16:16 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3679df4cb4cso2196881f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:16: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
 d2e1a72fcca58-70b102152fesm5727098b3a.135.2024.07.08.02.16.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 02:16: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: ba96a48d-3d0a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720430176; x=1721034976; 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=1UOSsKL+ff0siteDEHPe626VfMHXW8Qgnm1JW0p7n7E=;
        b=eyzKxlePsZjC7Z0oyIL+Upyh1DFMlJFbxfYZ17IzLnJCYLYrpZr9/5GzlYYol35MjS
         6NSuBYfweFsTqkPDn2sXCRzmDZkBHnHrb9DmJGO3bSHTtnRNUD4RtKIc3s9pJ+ias3m3
         rZnQvghl3myz04eNx4G/ECISYYBkqpH0ZslMQmwQKDv1jD8Llot6TY5gpkE7Cdt7RFdh
         dzglDs9bwFhmzc/Rdyq64NFob10RW0khpTtabXgHXkpbJCj+RbODn/jhD0VOqrv2FgbZ
         1i8v3X0Is8kprrR3/wi1erfrEVUSZjCKVz840bU1dF8zJGAU5GcvYuwCYSsUs0qHvn/c
         dAkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720430176; x=1721034976;
        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=1UOSsKL+ff0siteDEHPe626VfMHXW8Qgnm1JW0p7n7E=;
        b=SpfEvvUZgAvd7cfdzQyNe3HKWjz7UJX0fqbogXGwrsBYokkMclFL1LFXw79h7HlXYb
         MhRI2Ub+yokWSx16En42qRL1I1jrhY19Eg4K49qAP/M4AD+I7IT0ek/s8QMby95bYFRj
         YeETZRSHSY8PGC8Cv3RnfIhkl9u+wHyB9jIsZHcZj68g8ouwRRawFtksJWp2aD/e+tBm
         Tz2wH0wAMHt/JFfuJxY2gM/lGhAV/P5OnGOpNydTq6TUcz0C30Fv9TvjK7f9IQfIMibt
         3sPLSX67e5mDxk0SRPDNCFYvcgyf0eeGE8Vqxb1ljJPG0ZvNUZcnV5BezmWUJwtvHqKk
         g3dw==
X-Gm-Message-State: AOJu0YxIK+N09+JGawwgdfXbKPQTJZ2NnRT4NCC4HxgCmWr2mUpz4ill
	paxzVx3iPhz95H442qa+is2r6vcfS7+EZm/1htkRJgRvEofomhtMOzubDvf+jEQoM3ecoEpDuz8
	=
X-Google-Smtp-Source: AGHT+IF3Pm24ab4JZ48HfGb7X7GU0t0Mva7ntx7d83Rk9xq02Bw/gnwP5om0oa2n/ncpT05YYFxJqw==
X-Received: by 2002:adf:f507:0:b0:367:865d:30b6 with SMTP id ffacd0b85a97d-3679f6e578dmr10465465f8f.8.1720430175747;
        Mon, 08 Jul 2024 02:16:15 -0700 (PDT)
Message-ID: <33d8a4ce-6d20-4fc6-9b67-dbb63e38590d@suse.com>
Date: Mon, 8 Jul 2024 11:16:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: GNTTABOP_setup_table yields -1 PFNs
From: Jan Beulich <jbeulich@suse.com>
To: Taylor R Campbell <riastradh-xen-devel@NetBSD.org>
Cc: xen-devel@lists.xenproject.org
References: <20240706022242.3238584D44@mail.netbsd.org>
 <9d3d1e2e-738e-4ed8-a771-ca541fde9002@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: <9d3d1e2e-738e-4ed8-a771-ca541fde9002@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.07.2024 11:09, Jan Beulich wrote:
> On 06.07.2024 04:22, Taylor R Campbell wrote:
>> On a Xen 4.14 host (with extraversion=.0.88.g1d1d1f53), with version 1
>> grant tables, where GNTTABOP_query_size initially returns nr_frames=32
>> max_nr_frames=64, a NetBSD guest repeatedly queries
>> GNTTABOP_setup_table for successively larger nr_frames from 1 up.
> 
> First question: Is there some earlier GNTTABOP_setup_table that you invoke?
> I'd expect (and also observe) nr_frames=1 initially.
> 
> Second: The version you name is pretty unclear from an upstream perspective.
> Leaving aside that 4.14 is out of support, it's entirely unclear whether you
> at least have all bug fixes in place that we have upstream (4.14.6). Without
> that it's hard to see what you're asking for.
> 
>> The guest initially gets arrays of valid-looking PFNs.  But then at
>> nr_frames=33, the PFNs [0] through [31] in the resulting array are
>> valid but PFN [32] is -1, i.e., all bits set.
>>
>> GNTTABOP_setup_table returned 0 and op.status = GNTST_okay, so it
>> didn't fail -- it just returned an invalid PFN.  And _after_
>> GNTTABOP_setup_table yields -1 as a PFN, GNTTABOP_query_size returns
>> nr_frames=33 max_nr_frames=64, so the host thinks it has successfully
>> allocated more frames.
>>
>> What could cause the host to return a PFN -1?  Is there anything the
>> guest does that could provoke this?  Are there any diagnostics that
>> the guest could print to help track this down?  (I don't control the
>> host.)  Should a guest just check for -1 and stop as if it had hit
>> max_nr_frames?
> 
> I'm afraid for the moment, from just the information provided, I can't
> reproduce this using a simple patch on top of XTF's self-test (see below).
> Neither with a 64-bit PV guest, nor with a 32-bit one. I've been doing
> this with a pretty recent 4.19 Xen, though.

Doesn't reproduce for me with 4.14.6 either.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 09:16:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:16:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755217.1163520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkTt-0000fK-Gl; Mon, 08 Jul 2024 09:16:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755217.1163520; Mon, 08 Jul 2024 09:16: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 1sQkTt-0000fD-Dt; Mon, 08 Jul 2024 09:16:21 +0000
Received: by outflank-mailman (input) for mailman id 755217;
 Mon, 08 Jul 2024 09:16:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xFgZ=OI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sQkTr-0000P7-VE
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:16: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 bc7019d5-3d0a-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 11:16:19 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3679df4cb4cso2196922f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:16:19 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3678e06eba4sm14779790f8f.90.2024.07.08.02.16.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 02: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: bc7019d5-3d0a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720430179; x=1721034979; 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=Hr3Yta8uX11L+kq3fXBQS0olcjRC5nTSlZ321S1ZdcI=;
        b=mlUXzVWhF0uY3cZgX1EVEoOJctSVxBqyu4rkxEP+oqMU56NQ/GDsedOJcCSM/GdZ1F
         I/7RwdXFLJ/xyyGogA6wKgXaBMYElqlMjf6jQS6QSg8GHj0ydM/RUR4iTdyoE1x5O004
         OapZWXhvYACsKqSq4DLd5jC5TKFT2PoNuDQh4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720430179; x=1721034979;
        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=Hr3Yta8uX11L+kq3fXBQS0olcjRC5nTSlZ321S1ZdcI=;
        b=jj6CfOIw/BdOleuME6Nf8wGBW+K+OFTjtZZ8IoflZI1/8xpvDwPaq5F6m3q5DG9rS7
         3ONxTVxpXj/3z/NDVzQf+yVRUFZLr2hgmmsj4TLfv0YJJ7VnZj/8AhruaIntMdI4O6KC
         o2TL3k2r2UkdtC1MgK1iLJvCk6raBozLCNnzXrLVQeS/cZTlvRwIxGQcqVC85UTyzkPO
         VM3/g/URXBw/isk+N6BsoOamYqCRB76LjIzDC9GDwfKhYVd2zTH3wnKnFExzewETgzO0
         Oy0+8l743XJSd6Gy+i/+466Z8MaUF4MSxwZI6uZIO1+5O1Jh3SLDcHz9uWe8dAy6ZVv+
         m1HQ==
X-Gm-Message-State: AOJu0YylA9FqhBDyPACMrNCMnp3QWAClS9Ej9FCI5768GZLevL6XDUB0
	tfqoo9gZ25UemM8NaWECO+GEH8y9ZRYjDj9arXcp1nBuvHvfcOBg8IkRhpQZoIg=
X-Google-Smtp-Source: AGHT+IFKSelxEstASrT5en/WWmyjQOOp0U1EmvccI5b8CP4LZTcRHiQE0NIS57dcyg9Nz3O4cPQNFg==
X-Received: by 2002:a5d:4392:0:b0:360:9d2a:fe05 with SMTP id ffacd0b85a97d-3679f6f0ddbmr10459116f8f.13.1720430178719;
        Mon, 08 Jul 2024 02:16:18 -0700 (PDT)
Date: Mon, 8 Jul 2024 11:16:17 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 3/6] CI: Refresh the Coverity Github Action
 configuration
Message-ID: <ZouuYRgZNr00CSUi@macbook.local>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-4-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20240705152037.1920276-4-andrew.cooper3@citrix.com>

On Fri, Jul 05, 2024 at 04:20:34PM +0100, Andrew Cooper wrote:
> Update to Ubuntu 24.04, and checkout@v4 as v2 is deprecated.
> 
> The build step goes out of it's way to exclude docs and stubdom (but include
> plain MiniOS), so disable those at the ./configure stage.

Since we now disable those at configure time, could the build step be
switched to a plain `make build`?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 09:17:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:17:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755230.1163530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkUj-0001nN-RI; Mon, 08 Jul 2024 09:17:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755230.1163530; Mon, 08 Jul 2024 09: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 1sQkUj-0001nG-OL; Mon, 08 Jul 2024 09:17:13 +0000
Received: by outflank-mailman (input) for mailman id 755230;
 Mon, 08 Jul 2024 09:17: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=xFgZ=OI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sQkUi-0000P7-3w
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:17:12 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id db97bebf-3d0a-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 11:17:11 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-426606f80ebso10166995e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:17:11 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4264a2fc9b3sm156670605e9.46.2024.07.08.02.17.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 02: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: db97bebf-3d0a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720430231; x=1721035031; 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=FZSttxX6CIu15bAHj/YODinGAWTkbmDnzVBd/Y7OIG4=;
        b=Qf+cL+Tvl1Npi5oinmnmewN6KB9I03e3AlUiwYfmGYBPs408xT9iEyV8SBZ0qTd7K0
         HIiG/a0lVvSaMGvE1wlKFvA1mIuXHxnx8miPIcwp41+SBMr/7x/jXj2UhuGaq7DQdzXk
         r677OBJWHoZSSfy+jYbfxU63zpvNLswHG1Ns8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720430231; x=1721035031;
        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=FZSttxX6CIu15bAHj/YODinGAWTkbmDnzVBd/Y7OIG4=;
        b=SPIIYnoZO0WzWuPsDzMri2iPi4IomupwAoFnuC+LaFHqS1MpJQkYb8yztUVQ+hRjgm
         q63ziCGjlMrpnCR7YdzPcv1doMu21/CnEKe6+R2GTFDXQ6tBWaXYYfqV52pKMIKessHy
         rVjXZocm0DnarEK6IykKBMnAG/5Gs36t64Q/K7nGioRfdaRdW4dPPW9U2jxW/DxJtMS7
         ZhRDpcaHMQQ6jLa5haGjC7lvAOVcwRVfmKom2w76J5De/+iJdyb4tx+ZviqVaYOCe2If
         Oml6PDW9JMMCFHasLaZ0Y9BqdbnwAC9I53/WvZW3SRBhrUuMkaH4PzKac9a9BkNp9tcb
         453w==
X-Gm-Message-State: AOJu0YwuvH6bmnALyVmFMJfIozbplZYItbiJI3IOLDWBKZ3X17GJzLVQ
	dZwZ1kaLQZRJuEKzqgNYhbk65KU2nmcjoqo1GdRaG7WeqzaxPsO9fMhgsazH71w=
X-Google-Smtp-Source: AGHT+IGw3SwUuKO33TIO1Ia/8h47RpO0o9gyOT6M4VMsVBVNnakMuZAJRFRFfbXyl2fHv9t2Hl/djA==
X-Received: by 2002:a05:600c:1587:b0:426:616e:db8d with SMTP id 5b1f17b1804b1-426616edbb7mr33441975e9.15.1720430231111;
        Mon, 08 Jul 2024 02:17:11 -0700 (PDT)
Date: Mon, 8 Jul 2024 11:17: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 4/6] build: Drop openssl as a build dependency
Message-ID: <ZouulqBYsNQdKqnv@macbook.local>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-5-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: <20240705152037.1920276-5-andrew.cooper3@citrix.com>

On Fri, Jul 05, 2024 at 04:20:35PM +0100, Andrew Cooper wrote:
> The final user was blktap1, removed in Xen 4.6.
> 
> Fixes: f6bcc035084a ("tools: remove blktap1")
> 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 Mon Jul 08 09:19:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:19:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755236.1163540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkWm-0002pZ-66; Mon, 08 Jul 2024 09:19:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755236.1163540; Mon, 08 Jul 2024 09:19: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 1sQkWm-0002pS-3A; Mon, 08 Jul 2024 09:19:20 +0000
Received: by outflank-mailman (input) for mailman id 755236;
 Mon, 08 Jul 2024 09:19: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=xFgZ=OI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sQkWk-0002pM-J2
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:19:18 +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 265f625e-3d0b-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 11:19:17 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-367a3d1a378so2366572f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:19:17 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3679224d11dsm13187822f8f.12.2024.07.08.02.19.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 02: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: 265f625e-3d0b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720430356; x=1721035156; 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=907Z54S6UmXau4ii5jNisVYSLnOO4pEEBgrS4WQYryg=;
        b=VXax0YWVXWOKppS/PwdtaPztPQCjsq5YyHvO4ZSVZgTAM6l6MM3uxT0su9coUm0xJp
         r41hSxHbCiMs9BMZUGoIAruCViLHq9nWRFVHE8HITMZJ7pqzOtd4h+2os6//hqX504Uh
         W7z53AbFKx0CYRE07lxxibd+xGTzuhhO5uOag=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720430356; x=1721035156;
        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=907Z54S6UmXau4ii5jNisVYSLnOO4pEEBgrS4WQYryg=;
        b=u74cnTUXDNgXsU4K9d7iEQakisHnL2NilMJn4iXUulC7TihvX218iMMGCYz3tvp/YG
         zs80oB8ausnLoSSL5bas11iJXQ8f0QcwsSp3lD2GYIty2uAsZqmS3BP1HwP0bXWz1BqS
         Ebo1I7jKmPMctQ0orSfdb90TeoBxJXQXgoYdAMp5LrInSmMdagnB+P5zSY96T9QU776b
         ibxykHGdkLeaIpxdLDSRoj6HYJHGPqYz8CjFdBSVoW8PeZv/yoN0PeFWxDtnp++F8UIy
         r8jpl3LNpa/6QY3d2d4GaOivM12XcZGUwoRQvQkVD1MuCrzGCvsgenWkB31/ee1z51el
         UqVQ==
X-Gm-Message-State: AOJu0YzpjxKNIb6WH1pJxvDj74HxoTyB4AicUcnxv3u30uX3krJLT4Px
	rtqULo67yktSKTHdMFZLuuiwEuI4bxqNvAgG/1ywq/VCS0uak0OLYkO9HI5a1qo=
X-Google-Smtp-Source: AGHT+IGkYFRkMCvl6ax5KT/7nsH+F/d/0agvfZ2Y+bv+VMbrXvdDB7jO2EyfMuAHQ07wT/0KLbKSwA==
X-Received: by 2002:a05:6000:1a47:b0:367:4d9d:56a1 with SMTP id ffacd0b85a97d-3679dd656aemr7813724f8f.45.1720430356425;
        Mon, 08 Jul 2024 02:19:16 -0700 (PDT)
Date: Mon, 8 Jul 2024 11:19:15 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 5/6] build: Drop libiconv as a build dependecy
Message-ID: <ZouvE-sjmSv54aRc@macbook.local>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-6-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: <20240705152037.1920276-6-andrew.cooper3@citrix.com>

On Fri, Jul 05, 2024 at 04:20:36PM +0100, Andrew Cooper wrote:
> The final user was blktap2, removed in Xen 4.13.
> 
> Strip out the ./configure check for it, and stop explicitly installing it in
> the FreeBSD testing.
> 
> Fixes: 2a556b63a22d ("Drop blktap2")
> 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 Mon Jul 08 09:26:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:26:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755240.1163550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkdE-0004If-O7; Mon, 08 Jul 2024 09:26:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755240.1163550; Mon, 08 Jul 2024 09:26:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkdE-0004IY-LA; Mon, 08 Jul 2024 09:26:00 +0000
Received: by outflank-mailman (input) for mailman id 755240;
 Mon, 08 Jul 2024 09:25: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=xFgZ=OI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sQkdC-0004IS-Vh
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:25:58 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 154d52e7-3d0c-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 11:25:57 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-426602e8050so10860565e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:25:57 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4264a1d6d22sm156286695e9.20.2024.07.08.02.25.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 02:25: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: 154d52e7-3d0c-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720430757; x=1721035557; 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=dKpc0ssgEF1V/rF5N8+UfHi6IMT7n5OJswh7gYygKA0=;
        b=MeQJYU/j0NAGn2Rk0kkATxRHFPHgiksfJvZg9RQPccZI3WdwmSLqiSqHGXZlHvZZ+R
         6QoXaZ+lGpgSUmTnKYEol09xH9LNI4qTvXIrCz8DcK93NBhCqvxgY24L7AzBUmz2rt17
         1bokbTgS9Ln9b+5FT0EW1DVTF+K4pb5IOkFOQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720430757; x=1721035557;
        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=dKpc0ssgEF1V/rF5N8+UfHi6IMT7n5OJswh7gYygKA0=;
        b=tbwKovhiXrcqmYIKwCK5adpzTkwD7FmbWcxG6FH0a7meWGPoTFssjBAFnxWN1pixFS
         r7XIa8xKDlyy8Pzl66Xr0KlgRryoARsWjUW3oDRAjqJL+9iHVXK3edSOOMbieDbO1hBy
         2nRrnssnVN5nA1w9TCbE4JhAhIXYwiQHFKkNasTEk51aNNH4F7SYG95D2m7Tl6e45cAy
         yED9TqYbJvdbk3e3hs+vqKEQDIo2r2/XDAVcayUFMYW5pm4RASOgLuJ+bIwKQegshddd
         +zAUJ/jpJAoyXTDX9sm6xc3OK1x1He7gzvJFLSsy+FgKAf2kAV/vG8GGx5quCvvnZaR3
         RPgw==
X-Gm-Message-State: AOJu0YxAPJ6OetjKwk8wV1EeDdCdJvFUMy1TF+pzvbee3bPYT5/4POs/
	aiKl1DNDqThgk8om8tJP4W70jR5cQOoFOaED9KVcVP+mJ5uynCudR8R9AH71Bkk=
X-Google-Smtp-Source: AGHT+IHOFIGPVu5tSLPGQMuwfzfYglJpwRErMN/5HTDdkbUmD2AZEetLBBIRwdSd3DUQtSjLmZJjnQ==
X-Received: by 2002:a05:600c:4f95:b0:426:6416:aa7a with SMTP id 5b1f17b1804b1-4266416acbcmr31572545e9.34.1720430757230;
        Mon, 08 Jul 2024 02:25:57 -0700 (PDT)
Date: Mon, 8 Jul 2024 11:25:56 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 6/6] build: Drop xorg-x11 as a build dependency
Message-ID: <ZouwpBfS713joyCn@macbook.local>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-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: <20240705152037.1920276-7-andrew.cooper3@citrix.com>

On Fri, Jul 05, 2024 at 04:20:37PM +0100, Andrew Cooper wrote:
> The history on this one is complicated.  The note to README was added in
> commit 1f95747a4f16 ("Add openssl-dev and xorg-x11-dev to README") in 2007.
> 
> At the time, there was a vendered version of Qemu in xen.git with a local
> modification using <X11/keysymdef.h> to access the monitor console over VNC.
> 
> The final reference to keysymdef.h was dropped in commit 85896a7c4dc7 ("build:
> add autoconf to replace custom checks in tools/check") in 2012.  The next
> prior mention was in 2009 with commit a8ccb671c377 ("tools: fix x11 check")
> noting that x11 was not a direct dependcy of Xen; it was transitive through
> SDL for Qemu for source-based distros.
> 
> These days its only the Debian based dockerfiles which install xorg-x11, and
> Qemu builds fine in these and others without x11.
> 
> 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 Mon Jul 08 09:32:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:32:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755254.1163560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkjH-0006sc-Gn; Mon, 08 Jul 2024 09:32:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755254.1163560; Mon, 08 Jul 2024 09: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 1sQkjH-0006sV-Cn; Mon, 08 Jul 2024 09:32:15 +0000
Received: by outflank-mailman (input) for mailman id 755254;
 Mon, 08 Jul 2024 09:32:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQkjG-0006sP-5h
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:32:14 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3a776a8-3d0c-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 11:32:10 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2ebe40673d8so49253031fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02: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
 d9443c01a7336-1fb4c2b29c3sm54808855ad.38.2024.07.08.02.32.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 02: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: f3a776a8-3d0c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720431130; x=1721035930; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SDAZAqRCsxONZj39fRJPVOq1kyQD/Qz5zfRAD3kowU8=;
        b=bibJRgNcPPtNm2+0SZ6wP9HvPgyjSpqgTD3VSjl2BzaUnV1Qh4MMFjA4iTZvQKX8bD
         SN4KF99kKLrZXptPH0eS28cnn5vGvpPMS3Jza4yQ3zUkgy99rZWCqusTLeM2DTKgJS7D
         gBKJ13C6JWrC1/EGEWFOkJoHviQ1O/A2vZgBK1ht1+AgvOYw3TU41qfrbQnATg6oJIlU
         N1OD7X1R6B1eDRzJObKxiRhCiKEWludPF+307uyJN96+cd83tyhW+8e5pADYlymCvnAS
         hKv/BqUGpmNYJGs7Xrtj4VBC7UYVA0xDTWLuTB5vjkmOD46/YU9DkF1LUElzaA0jVJQr
         IqHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720431130; x=1721035930;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SDAZAqRCsxONZj39fRJPVOq1kyQD/Qz5zfRAD3kowU8=;
        b=UQD4KN82QfOsgeZKBas/rot6fUONpd3BwZtwicMHyNSiiWatj17JqFbH8aQd5/bOU4
         QC72Str3r4eBu8KthFYWBWPYMx3ODYIzsnIFKUHRAi0h7egCZALYGr/ew+jEH4m/lAxc
         aVqeRj/hOCCjD0rwPb+QUkerDDPgTa0tUQY+RXZny4YIT67esktWtpSbyW4V1W1dg5Sk
         7HtobQAZM7VRPuyMnsTE3J/eWlCcyyjMSsdMLRcznvovYTA6QNDoYmpyC3TvRrYDunQH
         gu0ETD9tiRoRRtz5eRTvYKscoA82OEDLV86NikQTR9arwu1LJzsmKDpKJTt86eGflmfj
         7Bew==
X-Forwarded-Encrypted: i=1; AJvYcCXXOH7JCEQFrXR/PS6bCWOCfFV7/Y6p7wcCp1j7LP9QSFIvu+WCVDc8L/OoNYgfSNst9SHdXIMbQ+5i/mZ76QE6QIoLEF2Sw/0RLWTepIc=
X-Gm-Message-State: AOJu0YwCpk+/bRCyFpNvwJtE+lvUOCDVQI3dw8mIlmQKXhZ2qE2t4paP
	MUxvSH2sDiHtDGL4Kez12y/WM9O+5Yb7B1ljbpR7QUlFz0OGAS/HFPjc3OTAzg==
X-Google-Smtp-Source: AGHT+IG32YKdCYL7GBkrgipIPkhgc3S/K0rrGzs989pCBoAEGk54iOtARxGDtt9D1WJTmuWI2zqvYQ==
X-Received: by 2002:a2e:9e94:0:b0:2ee:8db7:47b7 with SMTP id 38308e7fff4ca-2ee8ed87aaemr71644251fa.26.1720431130241;
        Mon, 08 Jul 2024 02:32:10 -0700 (PDT)
Message-ID: <f8cc1555-7689-49ff-9114-13354f1553cd@suse.com>
Date: Mon, 8 Jul 2024 11:32:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/riscv: PE/COFF image header for RISC-V target
To: =?UTF-8?B?TWlsYW4gxJBva2nEhw==?= <milandjokic1995@gmail.com>
Cc: milan.djokic@rt-rk.com, Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Nikola Jelic <nikola.jelic@rt-rk.com>,
 xen-devel@lists.xenproject.org, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <2bbb65fcda57f2609f0967f9050a91415059026c.1719942341.git.milan.djokic@rt-rk.com>
 <21a1bbe9308b72eac6d218235f5211c7a1c90454.1719964980.git.milan.djokic@rt-rk.com>
 <0481c78f-ccad-4c65-b104-6b787b79f1d8@suse.com>
 <CAKp59VHkEpKMNpA18xjHp4n_XxA4Fbo121v5ApoTseyhirkM+g@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAKp59VHkEpKMNpA18xjHp4n_XxA4Fbo121v5ApoTseyhirkM+g@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.07.2024 19:21, Milan Đokić wrote:
> On Wed, Jul 3, 2024 at 5:55 PM Jan Beulich <jbeulich@suse.com> wrote:
>> On 03.07.2024 02:04, Milan Djokic wrote:
>>> +#ifdef CONFIG_RISCV_EFI
>>> +        /*
>>> +         * This instruction decodes to "MZ" ASCII required by UEFI.
>>> +         */
>>> +        c.li s4,-13
>>> +        c.j xen_start
>>> +#else
>>> +        /* jump to start kernel */
>>> +        jal xen_start
>>
>> JAL, not J? Why?
>>
> We use jal explicitly here to highlight that we want to occupy 32 bits
> in order to align with header format (and EFI case where we use two
> 16-bits instructions). Although it will also work by using "j"
> directly, it could be implicitly compressed to 16 bits (if C extension
> is available) which would make header layout less obvious imo.

According to e.g. ...

>>> +#endif
>>> +        .balign 8
>>
>> This won't do what you want unless "start" itself is also suitably aligned.
>> It'll be as long as it's first in the section, but better make such explicit.
>>
> I understand, we'll also explicitly align "start"
> 
>>> +#ifdef CONFIG_RISCV_64
>>> +        /* Image load offset(2MB) from start of RAM */
>>> +        .quad 0x200000
>>> +#else
>>> +        /* Image load offset(4MB) from start of RAM */
>>> +        .quad 0x400000
>>> +#endif

... the #ifdef here, you aim at having code be suitable for RV32, too.
However, JAL has a compressed form there, so its use would make things
"less obvious" there as well. I'm inclined to say that since the
subsequent ".balign 8" adds padding NOPs anyway, there's no real
difference whether that adds 32 bits worth of NOPs or 48 bits. If you
really wanted to "hide" the difference, imo ".balign 4" would be the
way to go.

In any event, if there would still be a reason to stick to JAL, you'd
want to name the reason(s) in a code comment.

>> What these constants derive from? I expect they aren't really "magic" .
>>
> These offsets are commonly used for RISCV SOCs. In general, these can
> have different values, depending on memory layout, but in order to be
> compatible with
> linux bootloaders we just followed the common practice.

So entirely magic, really. Such imo needs commenting on.

>>> @@ -60,6 +100,7 @@ FUNC(start)
>>>          mv      a1, s1
>>>
>>>          tail    start_xen
>>> +
>>>  END(start)
>>>
>>>          .section .text, "ax", %progbits
>>
>> What is this hunk about?
>>
> Not sure which part of the code you refer to here. This section is
> part of the original riscv implementation. We only grouped this
> section under the new, xen_start label since we have different
> handling for EFI and ELF formats  in the beginning of "start" function
> before jumping to xen_start.

"Hunk" is common term for a single piece of "diff" output, starting at
the @@ line. To word it differently: What reason is there to insert a
blank line in this very patch?

>>> --- /dev/null
>>> +++ b/xen/include/efi/pe.h
>>> @@ -0,0 +1,458 @@
>>> +#ifndef __PE_H
>>
>> This probably wants (needs?) to gain an SPDX line.
>>
> Yes, it was originally taken over from the linux kernel (with some
> modifications from our side), but we omitted the SPDX line by mistake.
> 
>>> +#define __PE_H
>>> +
>>> +/*
>>> + * Linux EFI stub v1.0 adds the following functionality:
>>> + * - Loading initrd from the LINUX_EFI_INITRD_MEDIA_GUID device path,
>>> + * - Loading/starting the kernel from firmware that targets a different
>>> + *   machine type, via the entrypoint exposed in the .compat PE/COFF section.
>>> + *
>>> + * The recommended way of loading and starting v1.0 or later kernels is to use
>>> + * the LoadImage() and StartImage() EFI boot services, and expose the initrd
>>> + * via the LINUX_EFI_INITRD_MEDIA_GUID device path.
>>> + *
>>> + * Versions older than v1.0 support initrd loading via the image load options
>>> + * (using initrd=, limited to the volume from which the kernel itself was
>>> + * loaded), or via arch specific means (bootparams, DT, etc).
>>> + *
>>> + * On x86, LoadImage() and StartImage() can be omitted if the EFI handover
>>> + * protocol is implemented, which can be inferred from the version,
>>> + * handover_offset and xloadflags fields in the bootparams structure.
>>> + */
>>> +#define LINUX_EFISTUB_MAJOR_VERSION 0x1
>>> +#define LINUX_EFISTUB_MINOR_VERSION 0x0
>>> +
>>> +#define MZ_MAGIC 0x5a4d /* "MZ" */
>>> +
>>> +#define PE_MAGIC              0x00004550 /* "PE\0\0" */
>>> +#define PE_OPT_MAGIC_PE32     0x010b
>>> +#define PE_OPT_MAGIC_PE32_ROM 0x0107
>>> +#define PE_OPT_MAGIC_PE32PLUS 0x020b
>>> +
>>> +/* machine type */
>>> +#define IMAGE_FILE_MACHINE_UNKNOWN   0x0000
>>> +#define IMAGE_FILE_MACHINE_AM33      0x01d3
>>> +#define IMAGE_FILE_MACHINE_AMD64     0x8664
>>> +#define IMAGE_FILE_MACHINE_ARM       0x01c0
>>> +#define IMAGE_FILE_MACHINE_ARMV7     0x01c4
>>> +#define IMAGE_FILE_MACHINE_ARM64     0xaa64
>>> +#define IMAGE_FILE_MACHINE_EBC       0x0ebc
>>> +#define IMAGE_FILE_MACHINE_I386      0x014c
>>> +#define IMAGE_FILE_MACHINE_IA64      0x0200
>>> +#define IMAGE_FILE_MACHINE_M32R      0x9041
>>> +#define IMAGE_FILE_MACHINE_MIPS16    0x0266
>>> +#define IMAGE_FILE_MACHINE_MIPSFPU   0x0366
>>> +#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
>>> +#define IMAGE_FILE_MACHINE_POWERPC   0x01f0
>>> +#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1
>>> +#define IMAGE_FILE_MACHINE_R4000     0x0166
>>> +#define IMAGE_FILE_MACHINE_RISCV32   0x5032
>>> +#define IMAGE_FILE_MACHINE_RISCV64   0x5064
>>> +#define IMAGE_FILE_MACHINE_RISCV128  0x5128
>>> +#define IMAGE_FILE_MACHINE_SH3       0x01a2
>>> +#define IMAGE_FILE_MACHINE_SH3DSP    0x01a3
>>> +#define IMAGE_FILE_MACHINE_SH3E      0x01a4
>>> +#define IMAGE_FILE_MACHINE_SH4       0x01a6
>>> +#define IMAGE_FILE_MACHINE_SH5       0x01a8
>>> +#define IMAGE_FILE_MACHINE_THUMB     0x01c2
>>> +#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
>>> +
>>> +/* flags */
>>> +#define IMAGE_FILE_RELOCS_STRIPPED         0x0001
>>> +#define IMAGE_FILE_EXECUTABLE_IMAGE        0x0002
>>> +#define IMAGE_FILE_LINE_NUMS_STRIPPED      0x0004
>>> +#define IMAGE_FILE_LOCAL_SYMS_STRIPPED     0x0008
>>> +#define IMAGE_FILE_AGGRESSIVE_WS_TRIM      0x0010
>>> +#define IMAGE_FILE_LARGE_ADDRESS_AWARE     0x0020
>>> +#define IMAGE_FILE_16BIT_MACHINE           0x0040
>>> +#define IMAGE_FILE_BYTES_REVERSED_LO       0x0080
>>> +#define IMAGE_FILE_32BIT_MACHINE           0x0100
>>> +#define IMAGE_FILE_DEBUG_STRIPPED          0x0200
>>> +#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
>>> +#define IMAGE_FILE_NET_RUN_FROM_SWAP       0x0800
>>> +#define IMAGE_FILE_SYSTEM                  0x1000
>>> +#define IMAGE_FILE_DLL                     0x2000
>>> +#define IMAGE_FILE_UP_SYSTEM_ONLY          0x4000
>>> +#define IMAGE_FILE_BYTES_REVERSED_HI       0x8000
>>> +
>>> +#define IMAGE_FILE_OPT_ROM_MAGIC       0x107
>>> +#define IMAGE_FILE_OPT_PE32_MAGIC      0x10b
>>> +#define IMAGE_FILE_OPT_PE32_PLUS_MAGIC 0x20b
>>> +
>>> +#define IMAGE_SUBSYSTEM_UNKNOWN                 0
>>> +#define IMAGE_SUBSYSTEM_NATIVE                  1
>>> +#define IMAGE_SUBSYSTEM_WINDOWS_GUI             2
>>> +#define IMAGE_SUBSYSTEM_WINDOWS_CUI             3
>>> +#define IMAGE_SUBSYSTEM_POSIX_CUI               7
>>> +#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI          9
>>> +#define IMAGE_SUBSYSTEM_EFI_APPLICATION         10
>>> +#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
>>> +#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
>>> +#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE           13
>>> +#define IMAGE_SUBSYSTEM_XBOX                    14
>>> +
>>> +#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         0x0040
>>> +#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      0x0080
>>> +#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            0x0100
>>> +#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          0x0200
>>> +#define IMAGE_DLLCHARACTERISTICS_NO_SEH                0x0400
>>> +#define IMAGE_DLLCHARACTERISTICS_NO_BIND               0x0800
>>> +#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            0x2000
>>> +#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
>>> +
>>> +/* they actually defined 0x00000000 as well, but I think we'll skip that one. */
>>> +#define IMAGE_SCN_RESERVED_0             0x00000001
>>> +#define IMAGE_SCN_RESERVED_1             0x00000002
>>> +#define IMAGE_SCN_RESERVED_2             0x00000004
>>> +#define IMAGE_SCN_TYPE_NO_PAD            0x00000008 /* don't pad - obsolete */
>>> +#define IMAGE_SCN_RESERVED_3             0x00000010
>>> +#define IMAGE_SCN_CNT_CODE               0x00000020 /* .text */
>>> +#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040 /* .data */
>>> +#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* .bss */
>>> +#define IMAGE_SCN_LNK_OTHER              0x00000100 /* reserved */
>>> +#define IMAGE_SCN_LNK_INFO               0x00000200 /* .drectve comments */
>>> +#define IMAGE_SCN_RESERVED_4             0x00000400
>>> +#define IMAGE_SCN_LNK_REMOVE             0x00000800 /* .o only - scn to be rm'd*/
>>> +#define IMAGE_SCN_LNK_COMDAT             0x00001000 /* .o only - COMDAT data */
>>> +#define IMAGE_SCN_RESERVED_5             0x00002000 /* spec omits this */
>>> +#define IMAGE_SCN_RESERVED_6             0x00004000 /* spec omits this */
>>> +#define IMAGE_SCN_GPREL                  0x00008000 /* global pointer referenced data */
>>> +/* spec lists 0x20000 twice, I suspect they meant 0x10000 for one of them */
>>> +#define IMAGE_SCN_MEM_PURGEABLE 0x00010000 /* reserved for "future" use */
>>> +#define IMAGE_SCN_16BIT         0x00020000 /* reserved for "future" use */
>>> +#define IMAGE_SCN_LOCKED        0x00040000 /* reserved for "future" use */
>>> +#define IMAGE_SCN_PRELOAD       0x00080000 /* reserved for "future" use */
>>> +/* and here they just stuck a 1-byte integer in the middle of a bitfield */
>>> +#define IMAGE_SCN_ALIGN_1BYTES    0x00100000 /* it does what it says on the box */
>>> +#define IMAGE_SCN_ALIGN_2BYTES    0x00200000
>>> +#define IMAGE_SCN_ALIGN_4BYTES    0x00300000
>>> +#define IMAGE_SCN_ALIGN_8BYTES    0x00400000
>>> +#define IMAGE_SCN_ALIGN_16BYTES   0x00500000
>>> +#define IMAGE_SCN_ALIGN_32BYTES   0x00600000
>>> +#define IMAGE_SCN_ALIGN_64BYTES   0x00700000
>>> +#define IMAGE_SCN_ALIGN_128BYTES  0x00800000
>>> +#define IMAGE_SCN_ALIGN_256BYTES  0x00900000
>>> +#define IMAGE_SCN_ALIGN_512BYTES  0x00a00000
>>> +#define IMAGE_SCN_ALIGN_1024BYTES 0x00b00000
>>> +#define IMAGE_SCN_ALIGN_2048BYTES 0x00c00000
>>> +#define IMAGE_SCN_ALIGN_4096BYTES 0x00d00000
>>> +#define IMAGE_SCN_ALIGN_8192BYTES 0x00e00000
>>> +#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* extended relocations */
>>> +#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 /* scn can be discarded */
>>> +#define IMAGE_SCN_MEM_NOT_CACHED  0x04000000 /* cannot be cached */
>>> +#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000 /* not pageable */
>>> +#define IMAGE_SCN_MEM_SHARED      0x10000000 /* can be shared */
>>> +#define IMAGE_SCN_MEM_EXECUTE     0x20000000 /* can be executed as code */
>>> +#define IMAGE_SCN_MEM_READ        0x40000000 /* readable */
>>> +#define IMAGE_SCN_MEM_WRITE       0x80000000 /* writeable */
>>> +
>>> +#define IMAGE_DEBUG_TYPE_CODEVIEW 2
>>> +
>>> +#ifndef __ASSEMBLY__
>>> +
>>> +struct mz_hdr {
>>> +    uint16_t magic;              /* MZ_MAGIC */
>>> +    uint16_t lbsize;             /* size of last used block */
>>> +    uint16_t blocks;             /* pages in file, 0x3 */
>>> +    uint16_t relocs;             /* relocations */
>>> +    uint16_t hdrsize;            /* header size in "paragraphs" */
>>> +    uint16_t min_extra_pps;      /* .bss */
>>> +    uint16_t max_extra_pps;      /* runtime limit for the arena size */
>>> +    uint16_t ss;                 /* relative stack segment */
>>> +    uint16_t sp;                 /* initial %sp register */
>>> +    uint16_t checksum;           /* word checksum */
>>> +    uint16_t ip;                 /* initial %ip register */
>>> +    uint16_t cs;                 /* initial %cs relative to load segment */
>>> +    uint16_t reloc_table_offset; /* offset of the first relocation */
>>> +    uint16_t overlay_num;        /* overlay number.  set to 0. */
>>> +    uint16_t reserved0[4];       /* reserved */
>>> +    uint16_t oem_id;             /* oem identifier */
>>> +    uint16_t oem_info;           /* oem specific */
>>> +    uint16_t reserved1[10];      /* reserved */
>>> +    uint32_t peaddr;             /* address of pe header */
>>> +    char     message[];          /* message to print */
>>> +};
>>
>> We already have an instance of this struct in common/efi/pe.c. I think
>> it wouldn't be very desirable to have two (different) instances.
>>
>>> +struct mz_reloc {
>>> +    uint16_t offset;
>>> +    uint16_t segment;
>>> +};
>>
>> We aren't going to need this anywhere, are we?
>>
>>> +struct pe_hdr {
>>> +    uint32_t magic;        /* PE magic */
>>> +    uint16_t machine;      /* machine type */
>>> +    uint16_t sections;     /* number of sections */
>>> +    uint32_t timestamp;    /* time_t */
>>> +    uint32_t symbol_table; /* symbol table offset */
>>> +    uint32_t symbols;      /* number of symbols */
>>> +    uint16_t opt_hdr_size; /* size of optional header */
>>> +    uint16_t flags;        /* flags */
>>> +};
>>
>> And again another (different) instance of this and further struct-s
>> already exists. Same for the section header further down.
>>
>>> +/* the fact that pe32 isn't padded where pe32+ is 64-bit means union won't
>>> + * work right.  vomit. */
>>
>> Noticing here in particular, but being an issue elsewhere as well:
>> Unless this file is to be a verbatim copy taken from somewhere (in
>> which case it should probably be introduced in a separate commit
>> with an Origin: tag), comments want to adhere of ./CODING_STYLE.
>>
>>> +struct pe32_opt_hdr {
>>> +    /* "standard" header */
>>> +    uint16_t magic;       /* file type */
>>> +    uint8_t  ld_major;    /* linker major version */
>>> +    uint8_t  ld_minor;    /* linker minor version */
>>> +    uint32_t text_size;   /* size of text section(s) */
>>> +    uint32_t data_size;   /* size of data section(s) */
>>> +    uint32_t bss_size;    /* size of bss section(s) */
>>> +    uint32_t entry_point; /* file offset of entry point */
>>> +    uint32_t code_base;   /* relative code addr in ram */
>>> +    uint32_t data_base;   /* relative data addr in ram */
>>> +    /* "windows" header */
>>> +    uint32_t image_base;     /* preferred load address */
>>> +    uint32_t section_align;  /* alignment in bytes */
>>> +    uint32_t file_align;     /* file alignment in bytes */
>>> +    uint16_t os_major;       /* major OS version */
>>> +    uint16_t os_minor;       /* minor OS version */
>>> +    uint16_t image_major;    /* major image version */
>>> +    uint16_t image_minor;    /* minor image version */
>>> +    uint16_t subsys_major;   /* major subsystem version */
>>> +    uint16_t subsys_minor;   /* minor subsystem version */
>>> +    uint32_t win32_version;  /* reserved, must be 0 */
>>> +    uint32_t image_size;     /* image size */
>>> +    uint32_t header_size;    /* header size rounded up to file_align */
>>> +    uint32_t csum;           /* checksum */
>>> +    uint16_t subsys;         /* subsystem */
>>> +    uint16_t dll_flags;      /* executable characteristics */
>>> +    uint32_t stack_size_req; /* amt of stack requested */
>>> +    uint32_t stack_size;     /* amt of stack required */
>>> +    uint32_t heap_size_req;  /* amt of heap requested */
>>> +    uint32_t heap_size;      /* amt of heap required */
>>> +    uint32_t loader_flags;   /* reserved, must be 0 */
>>> +    uint32_t data_dirs;      /* number of data dir entries */
>>> +};
>>> +
>>> +struct pe32plus_opt_hdr {
>>> +    uint16_t magic;       /* file type */
>>> +    uint8_t  ld_major;    /* linker major version */
>>> +    uint8_t  ld_minor;    /* linker minor version */
>>> +    uint32_t text_size;   /* size of text section(s) */
>>> +    uint32_t data_size;   /* size of data section(s) */
>>> +    uint32_t bss_size;    /* size of bss section(s) */
>>> +    uint32_t entry_point; /* file offset of entry point */
>>> +    uint32_t code_base;   /* relative code addr in ram */
>>> +    /* "windows" header */
>>> +    uint64_t image_base;     /* preferred load address */
>>> +    uint32_t section_align;  /* alignment in bytes */
>>> +    uint32_t file_align;     /* file alignment in bytes */
>>> +    uint16_t os_major;       /* major OS version */
>>> +    uint16_t os_minor;       /* minor OS version */
>>> +    uint16_t image_major;    /* major image version */
>>> +    uint16_t image_minor;    /* minor image version */
>>> +    uint16_t subsys_major;   /* major subsystem version */
>>> +    uint16_t subsys_minor;   /* minor subsystem version */
>>> +    uint32_t win32_version;  /* reserved, must be 0 */
>>> +    uint32_t image_size;     /* image size */
>>> +    uint32_t header_size;    /* header size rounded up to file_align */
>>> +    uint32_t csum;           /* checksum */
>>> +    uint16_t subsys;         /* subsystem */
>>> +    uint16_t dll_flags;      /* executable characteristics */
>>> +    uint64_t stack_size_req; /* amt of stack requested */
>>> +    uint64_t stack_size;     /* amt of stack required */
>>> +    uint64_t heap_size_req;  /* amt of heap requested */
>>> +    uint64_t heap_size;      /* amt of heap required */
>>> +    uint32_t loader_flags;   /* reserved, must be 0 */
>>> +    uint32_t data_dirs;      /* number of data dir entries */
>>> +};
>>> +
>>> +struct data_dirent {
>>> +    uint32_t virtual_address; /* relative to load address */
>>> +    uint32_t size;
>>> +};
>>
>> Will we need this and ...
>>
>>> +struct data_directory {
>>> +    struct data_dirent exports;          /* .edata */
>>> +    struct data_dirent imports;          /* .idata */
>>> +    struct data_dirent resources;        /* .rsrc */
>>> +    struct data_dirent exceptions;       /* .pdata */
>>> +    struct data_dirent certs;            /* certs */
>>> +    struct data_dirent base_relocations; /* .reloc */
>>> +    struct data_dirent debug;            /* .debug */
>>> +    struct data_dirent arch;             /* reservered */
>>> +    struct data_dirent global_ptr;       /* global pointer reg. Size=0 */
>>> +    struct data_dirent tls;              /* .tls */
>>> +    struct data_dirent load_config;      /* load configuration structure */
>>> +    struct data_dirent bound_imports;    /* no idea */
>>> +    struct data_dirent import_addrs;     /* import address table */
>>> +    struct data_dirent delay_imports;    /* delay-load import table */
>>> +    struct data_dirent clr_runtime_hdr;  /* .cor (object only) */
>>> +    struct data_dirent reserved;
>>> +};
>>
>> ... this?
>>
>>> +struct section_header {
>>> +    char     name[8];         /* name or string tbl offset */
>>> +    uint32_t virtual_size;    /* size of loaded section in ram */
>>> +    uint32_t virtual_address; /* relative virtual address */
>>> +    uint32_t raw_data_size;   /* size of the section */
>>> +    uint32_t data_addr;       /* file pointer to first page of sec */
>>> +    uint32_t relocs;          /* file pointer to relocation entries */
>>> +    uint32_t line_numbers;    /* line numbers */
>>> +    uint16_t num_relocs;      /* number of relocations */
>>> +    uint16_t num_lin_numbers; /* COFF line count. */
>>> +    uint32_t flags;
>>> +};
>>> +
>>> +enum x64_coff_reloc_type {
>>> +    IMAGE_REL_AMD64_ABSOLUTE = 0,
>>> +    IMAGE_REL_AMD64_ADDR64,
>>> +    IMAGE_REL_AMD64_ADDR32,
>>> +    IMAGE_REL_AMD64_ADDR32N,
>>> +    IMAGE_REL_AMD64_REL32,
>>> +    IMAGE_REL_AMD64_REL32_1,
>>> +    IMAGE_REL_AMD64_REL32_2,
>>> +    IMAGE_REL_AMD64_REL32_3,
>>> +    IMAGE_REL_AMD64_REL32_4,
>>> +    IMAGE_REL_AMD64_REL32_5,
>>> +    IMAGE_REL_AMD64_SECTION,
>>> +    IMAGE_REL_AMD64_SECREL,
>>> +    IMAGE_REL_AMD64_SECREL7,
>>> +    IMAGE_REL_AMD64_TOKEN,
>>> +    IMAGE_REL_AMD64_SREL32,
>>> +    IMAGE_REL_AMD64_PAIR,
>>> +    IMAGE_REL_AMD64_SSPAN32,
>>> +};
>>> +
>>> +enum arm_coff_reloc_type {
>>> +    IMAGE_REL_ARM_ABSOLUTE,
>>> +    IMAGE_REL_ARM_ADDR32,
>>> +    IMAGE_REL_ARM_ADDR32N,
>>> +    IMAGE_REL_ARM_BRANCH2,
>>> +    IMAGE_REL_ARM_BRANCH1,
>>> +    IMAGE_REL_ARM_SECTION,
>>> +    IMAGE_REL_ARM_SECREL,
>>> +};
>>> +
>>> +enum sh_coff_reloc_type {
>>> +    IMAGE_REL_SH3_ABSOLUTE,
>>> +    IMAGE_REL_SH3_DIRECT16,
>>> +    IMAGE_REL_SH3_DIRECT32,
>>> +    IMAGE_REL_SH3_DIRECT8,
>>> +    IMAGE_REL_SH3_DIRECT8_WORD,
>>> +    IMAGE_REL_SH3_DIRECT8_LONG,
>>> +    IMAGE_REL_SH3_DIRECT4,
>>> +    IMAGE_REL_SH3_DIRECT4_WORD,
>>> +    IMAGE_REL_SH3_DIRECT4_LONG,
>>> +    IMAGE_REL_SH3_PCREL8_WORD,
>>> +    IMAGE_REL_SH3_PCREL8_LONG,
>>> +    IMAGE_REL_SH3_PCREL12_WORD,
>>> +    IMAGE_REL_SH3_STARTOF_SECTION,
>>> +    IMAGE_REL_SH3_SIZEOF_SECTION,
>>> +    IMAGE_REL_SH3_SECTION,
>>> +    IMAGE_REL_SH3_SECREL,
>>> +    IMAGE_REL_SH3_DIRECT32_NB,
>>> +    IMAGE_REL_SH3_GPREL4_LONG,
>>> +    IMAGE_REL_SH3_TOKEN,
>>> +    IMAGE_REL_SHM_PCRELPT,
>>> +    IMAGE_REL_SHM_REFLO,
>>> +    IMAGE_REL_SHM_REFHALF,
>>> +    IMAGE_REL_SHM_RELLO,
>>> +    IMAGE_REL_SHM_RELHALF,
>>> +    IMAGE_REL_SHM_PAIR,
>>> +    IMAGE_REL_SHM_NOMODE,
>>> +};
>>> +
>>> +enum ppc_coff_reloc_type {
>>> +    IMAGE_REL_PPC_ABSOLUTE,
>>> +    IMAGE_REL_PPC_ADDR64,
>>> +    IMAGE_REL_PPC_ADDR32,
>>> +    IMAGE_REL_PPC_ADDR24,
>>> +    IMAGE_REL_PPC_ADDR16,
>>> +    IMAGE_REL_PPC_ADDR14,
>>> +    IMAGE_REL_PPC_REL24,
>>> +    IMAGE_REL_PPC_REL14,
>>> +    IMAGE_REL_PPC_ADDR32N,
>>> +    IMAGE_REL_PPC_SECREL,
>>> +    IMAGE_REL_PPC_SECTION,
>>> +    IMAGE_REL_PPC_SECREL16,
>>> +    IMAGE_REL_PPC_REFHI,
>>> +    IMAGE_REL_PPC_REFLO,
>>> +    IMAGE_REL_PPC_PAIR,
>>> +    IMAGE_REL_PPC_SECRELLO,
>>> +    IMAGE_REL_PPC_GPREL,
>>> +    IMAGE_REL_PPC_TOKEN,
>>> +};
>>> +
>>> +enum x86_coff_reloc_type {
>>> +    IMAGE_REL_I386_ABSOLUTE,
>>> +    IMAGE_REL_I386_DIR16,
>>> +    IMAGE_REL_I386_REL16,
>>> +    IMAGE_REL_I386_DIR32,
>>> +    IMAGE_REL_I386_DIR32NB,
>>> +    IMAGE_REL_I386_SEG12,
>>> +    IMAGE_REL_I386_SECTION,
>>> +    IMAGE_REL_I386_SECREL,
>>> +    IMAGE_REL_I386_TOKEN,
>>> +    IMAGE_REL_I386_SECREL7,
>>> +    IMAGE_REL_I386_REL32,
>>> +};
>>> +
>>> +enum ia64_coff_reloc_type {
>>> +    IMAGE_REL_IA64_ABSOLUTE,
>>> +    IMAGE_REL_IA64_IMM14,
>>> +    IMAGE_REL_IA64_IMM22,
>>> +    IMAGE_REL_IA64_IMM64,
>>> +    IMAGE_REL_IA64_DIR32,
>>> +    IMAGE_REL_IA64_DIR64,
>>> +    IMAGE_REL_IA64_PCREL21B,
>>> +    IMAGE_REL_IA64_PCREL21M,
>>> +    IMAGE_REL_IA64_PCREL21F,
>>> +    IMAGE_REL_IA64_GPREL22,
>>> +    IMAGE_REL_IA64_LTOFF22,
>>> +    IMAGE_REL_IA64_SECTION,
>>> +    IMAGE_REL_IA64_SECREL22,
>>> +    IMAGE_REL_IA64_SECREL64I,
>>> +    IMAGE_REL_IA64_SECREL32,
>>> +    IMAGE_REL_IA64_DIR32NB,
>>> +    IMAGE_REL_IA64_SREL14,
>>> +    IMAGE_REL_IA64_SREL22,
>>> +    IMAGE_REL_IA64_SREL32,
>>> +    IMAGE_REL_IA64_UREL32,
>>> +    IMAGE_REL_IA64_PCREL60X,
>>> +    IMAGE_REL_IA64_PCREL60B,
>>> +    IMAGE_REL_IA64_PCREL60F,
>>> +    IMAGE_REL_IA64_PCREL60I,
>>> +    IMAGE_REL_IA64_PCREL60M,
>>> +    IMAGE_REL_IA64_IMMGPREL6,
>>> +    IMAGE_REL_IA64_TOKEN,
>>> +    IMAGE_REL_IA64_GPREL32,
>>> +    IMAGE_REL_IA64_ADDEND,
>>> +};
>>
>> All sorts of relocation types, but none for RISC-V? Are we going to need
>> any of this?
>>
>>> +struct coff_reloc {
>>> +    uint32_t virtual_address;
>>> +    uint32_t symbol_table_index;
>>> +
>>> +    union {
>>> +        enum x64_coff_reloc_type  x64_type;
>>> +        enum arm_coff_reloc_type  arm_type;
>>> +        enum sh_coff_reloc_type   sh_type;
>>> +        enum ppc_coff_reloc_type  ppc_type;
>>> +        enum x86_coff_reloc_type  x86_type;
>>> +        enum ia64_coff_reloc_type ia64_type;
>>> +        uint16_t                  data;
>>> +    };
>>> +};
>>> +
>>> +/*
>>> + * Definitions for the contents of the certs data block
>>> + */
>>> +#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002
>>> +#define WIN_CERT_TYPE_EFI_OKCS115      0x0EF0
>>> +#define WIN_CERT_TYPE_EFI_GUID         0x0EF1
>>> +
>>> +#define WIN_CERT_REVISION_1_0 0x0100
>>> +#define WIN_CERT_REVISION_2_0 0x0200
>>> +
>>> +struct win_certificate {
>>> +    uint32_t length;
>>> +    uint16_t revision;
>>> +    uint16_t cert_type;
>>> +};
>>
>> Or any of this?
>>
> Regarding pe.h file content, we wanted to keep it as generic as
> possible (structures definition according to PE format which can be
> used for multiple architectures). Specifically for RISC-V as you
> noticed, we are not using lots of structures (data directories,
> relocation structures, certificates, etc.). Therefore, we can reduce
> it to only those used atm, but in that case we won't have a generic PE
> header definition anymore. Regarding structures which are already
> defined in common/efi/pe.c, meaning that with our change we have two
> versions of same structures, we can remove those, but in that case it
> could be confusing for someone who is trying to map fields from pe.h
> to actual image header in assembly code. Summary I would keep this
> header with its original content, but if you think that it contains
> too much overhead we can reduce it to relevant structures only.

Actually I not only don't mind this header, but would consider it
superior to the present state of things. Just that then imo it would
want introducing in a separate commit, with suitable description /
justification. That could (should) then be followed by a patch using
this header's struct-s / definitions in pre-existing code, purging
any duplication from there.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 09:39:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 09:39:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755263.1163569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkqd-0008RJ-A0; Mon, 08 Jul 2024 09:39:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755263.1163569; Mon, 08 Jul 2024 09:39:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQkqd-0008RC-7S; Mon, 08 Jul 2024 09:39:51 +0000
Received: by outflank-mailman (input) for mailman id 755263;
 Mon, 08 Jul 2024 09:39: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=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQkqc-0008R6-51
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 09:39:50 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0494ef2f-3d0e-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 11:39:49 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-58b0dddab8cso5412259a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 02:39:49 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58d242037afsm6262998a12.51.2024.07.08.02.39.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 02:39: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: 0494ef2f-3d0e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720431588; x=1721036388; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NWLQO7tjHICIsJSSEorccy1BzS/9KcK0bNNf4NZ5NsY=;
        b=S5Df80suKgk8WOkUx7ldh5/RnS1ByhbMKGnt1YnrB0sOE5NzzF7G2fxT6LD1D3VXTz
         wLB6SVI2MIfUOjHZXZGZ7Lvpz/TdTNZOMv/UJVPvMqxtBJlDmMTdhdHxINA9y+3Usemx
         lSPn9F3yMjsMloB5gPmmFYtsUJwbzrJSJ6elQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720431588; x=1721036388;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NWLQO7tjHICIsJSSEorccy1BzS/9KcK0bNNf4NZ5NsY=;
        b=PEmtt42mbhRuWN0DND8zQXpbDoIuD37FA9Ci1R7bpx3nQqZv0k4SU1oI8KWDAGTLwE
         PtjVBlf94cYvXNd4yKgfVN3HRls9nB+NqfOQpViuQtrzgoxI1IkxNMcjzjZ29nzTic3V
         Nmjh8dqF5yUvmCwbj5DAbNdP4xkj+iJjkPREmEfGvvnSb+UGq1EfcK+/hsxpAZUy8SP6
         JvxTm1woDk50dM7miQXw/kVtvQ0yEbBjQBeOIgp6HxNxoXD6zLCU6had0O5Q/HdvvyWe
         uYUrbQtjPbYvMny5/M9vVipnh4XZEbtWQtpLMP4ep/Oyk5JGZ3VBUDZz7eZVdAyI0YIi
         XyCA==
X-Forwarded-Encrypted: i=1; AJvYcCWnrWN6PSx83UEwY/6id+UFPGiWn99aUUQ433R6cSxLHhRD6C/HLvuD/GOMPlV5RQYKeIbegHG2KVk58GH7EiipNn2fkjamVidmWDVNlqE=
X-Gm-Message-State: AOJu0YxfnO3xixXbfe1fz8BR0lWlRvG1mPTHVTqDMD8MNeJby3OuI9wu
	MIpZR2+u1z1XR7VBsTA8AaifBT8k7zhEa9lXnLo8a/+ib9DV6Qp85PFsyw14Cys=
X-Google-Smtp-Source: AGHT+IGUZiYUEKYx3E1j4IqzRMQABjK8qlzxrf8heUET2PuTg3xdeAbZp3QncU9+fdtjtzcQavAhTQ==
X-Received: by 2002:a05:6402:5ca:b0:58e:13e8:dc5b with SMTP id 4fb4d7f45d1cf-58e59c381fdmr7389014a12.23.1720431588212;
        Mon, 08 Jul 2024 02:39:48 -0700 (PDT)
Message-ID: <6f3be46b-1698-450b-9845-c612dd1dde2c@citrix.com>
Date: Mon, 8 Jul 2024 10:39:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 2/6] build: Fix the version of python checked for
 by ./configure
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Oleksii Kurochko
 <oleksii.kurochko@gmail.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-3-andrew.cooper3@citrix.com>
 <e09619e6-a483-4e68-80f6-6ff158fb9c30@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <e09619e6-a483-4e68-80f6-6ff158fb9c30@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/07/2024 7:39 am, Jan Beulich wrote:
> On 05.07.2024 17:20, Andrew Cooper wrote:
>> We previously upped the minimum python version to 2.6, but neglected to
>> reflect this in ./configure
>>
>> Fixes: 2a353c048c68 ("tools: Don't use distutils in configure or Makefile")
> Judging from the description of that earlier patch and from what you're
> actually changing, s/2.6/2.7/ above?

Oops yes.  Fixed.

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 10:22:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 10:22:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755270.1163580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQlVG-0008Re-DF; Mon, 08 Jul 2024 10:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755270.1163580; Mon, 08 Jul 2024 10: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 1sQlVG-0008RX-9T; Mon, 08 Jul 2024 10:21:50 +0000
Received: by outflank-mailman (input) for mailman id 755270;
 Mon, 08 Jul 2024 10:21: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=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQlVF-0008RR-6j
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 10:21:49 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1d8a302-3d13-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 12:21:47 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a77c0b42a8fso521849966b.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 03:21:47 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-58fd6c67567sm3642612a12.21.2024.07.08.03.21.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 03:21: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: e1d8a302-3d13-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720434107; x=1721038907; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eyvsG5+mdls2Rqr+aBjJCNOU8DoDuwP2mw7vAvx3Y9w=;
        b=L4lEDH3oqIBFxQ5xiQuSV5bmU0M8V2aQJgsMUKRHLLXWwoDv7Zo8Kwtxr/ONQdtu4L
         CrFJwn3kYIZFU7G3iqtq4DMzUKkXxpCwQVOIZXfqMnS2J/1UymHL84jD87G2p8agw7Wv
         FGMWNDW10efhsYdK+AHrxtfCh5ye72XNK7wO0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720434107; x=1721038907;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eyvsG5+mdls2Rqr+aBjJCNOU8DoDuwP2mw7vAvx3Y9w=;
        b=Juu1hMr3QUbKmNvO6ue4U1MijCZnoqWsQ3NzOcKkoVnavwmEPuDXBYbzzevkZy1umx
         koemIl9TYogfNGsVw+D0IbKRhkontNL7X4mr2MZ3hi95e/Y3S6Gtd7gSLiA/x5/GiNrk
         WekKyZ15w7P6I3F65kwfwP2kIrKZzGSseA+uQgRC6BQYZcEEJ5SZtX308Fm3ffT5UuCb
         Y1aEG4sxdIpPxR/H4Ob4rtmDgFvbP7qmyS2oLnyigb9cwCyEUq5kSu6LSn6GmkyH/xsp
         GXihsca2WhHhMYqLmF8l5K33yMnc2T4Ug87h+1xGorhA6yAye0mBit6bBiVmjf2BWz4L
         4qiw==
X-Forwarded-Encrypted: i=1; AJvYcCXDK6pDkURVH3qqKZS07a6PDiHzh2uHOpH5jYL8g3oa/1d4r5A4t2rcIIt5ac494iyRAhQcc3luyuikg8dsZwjnwobIIzVhcntkokZwQ/Y=
X-Gm-Message-State: AOJu0Yx2jhIuhQHSaX52kDZHZOK5P73QZI9HuIeep4zESE3yCISfzgWC
	lRHthsGCuBNYrNCHnX8UBimlwvd0ZOf2FD/5tEl3irBEn2FCLXZNtA5gPxlgO1Y=
X-Google-Smtp-Source: AGHT+IG4D8hSNBLKpLKucR9VEOenhRV7yHZo7zi4/W8b3iFRDM34QABbWUB6Aotrc4X6vlNUIkuU/w==
X-Received: by 2002:a17:906:3698:b0:a77:b7fe:66c8 with SMTP id a640c23a62f3a-a77bd9e46b4mr886930866b.15.1720434106981;
        Mon, 08 Jul 2024 03:21:46 -0700 (PDT)
Message-ID: <431e9e51-6cbb-42ec-b6c5-f1f35d5d85bc@citrix.com>
Date: Mon, 8 Jul 2024 11:21:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 6/6] build: Drop xorg-x11 as a build dependency
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Oleksii Kurochko
 <oleksii.kurochko@gmail.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-7-andrew.cooper3@citrix.com>
 <afec5c5c-8de8-4795-b470-ec78339f982e@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <afec5c5c-8de8-4795-b470-ec78339f982e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/07/2024 7:49 am, Jan Beulich wrote:
> On 05.07.2024 17:20, Andrew Cooper wrote:
>> The history on this one is complicated.  The note to README was added in
>> commit 1f95747a4f16 ("Add openssl-dev and xorg-x11-dev to README") in 2007.
>>
>> At the time, there was a vendered version of Qemu in xen.git with a local
>> modification using <X11/keysymdef.h> to access the monitor console over VNC.
>>
>> The final reference to keysymdef.h was dropped in commit 85896a7c4dc7 ("build:
>> add autoconf to replace custom checks in tools/check") in 2012.  The next
>> prior mention was in 2009 with commit a8ccb671c377 ("tools: fix x11 check")
>> noting that x11 was not a direct dependcy of Xen; it was transitive through
>> SDL for Qemu for source-based distros.
>>
>> These days its only the Debian based dockerfiles which install xorg-x11, and
>> Qemu builds fine in these and others without x11.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> There may be one more past dependency, but I'm not sure since I don't know
> the package split in the distros you touch files for. In unmodified_drivers/
> (removed in 4.14) there was a use of the lndir utility coming (on SUSE
> distros) in xorg-x11-util-devel. Then again unmodified_drivers/ may never
> have been of any interest to gitlab-CI.

Huh.  I've not come across lndir before, but we've got an opencoded
forms of it in several places.  (tools/include, and
tools/firmware/xen-dir, maybe others.)

Still - as a build dependency, it should be the main xorg package, not
the *-dev{el} package.  Whether a dev{el} package pulls in the main
package is distro-dependent.

4.15 is the oldest tree we test in Gitlab CI, and I don't believe we
built unmodified_drivers/ in prior versions either.

Either way - I don't think this alters the outcome of the patch.  I can
add a paragraph to the commit message noting that there might have been
another unspecified dependency on xorg ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 10:28:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 10:28:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755277.1163591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQlbn-0001Ft-2L; Mon, 08 Jul 2024 10:28:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755277.1163591; Mon, 08 Jul 2024 10:28: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 1sQlbm-0001Fm-TS; Mon, 08 Jul 2024 10:28:34 +0000
Received: by outflank-mailman (input) for mailman id 755277;
 Mon, 08 Jul 2024 10:28: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=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQlbl-0001Fg-PT
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 10:28:33 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2f3c326-3d14-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 12:28:32 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2ebe40673e8so49193241fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 03:28: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
 d2e1a72fcca58-70b0f767d16sm6149148b3a.18.2024.07.08.03.28.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 03:28: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: d2f3c326-3d14-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720434511; x=1721039311; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GM8Kjv51LyNdCHE/SMM2H3/IBlbCugblQnGSKwa1WQ0=;
        b=FIA0gXIOVv6oFc+xQwftd3s2/h1KFhPN4DFdZ1r1f2A5VujnyKfn98oTmW6R8Iy1KG
         lbbCGIOfWB4+IMcrySA6UW9p7iHcBlqaRbJzEI+oCFnnaMC6MT7AQutQC5Vyqb2+PZJM
         BiXT3iGBw9rOMhdstN3EOI6sYzzL0n30yiyVc7ZuLxCZsxiYJADIVtIbLoeo2Ol6uyLB
         mbq2Nr76y8g6G88lp18hEqQeDwKBpwvQvR4t2YTXqFRrTk2ZSYPuv5KoTI9XrwpD9cgo
         V3oHW9FRv5UvYi0GKqfYlCKYVBWfKBopouYAXhWPCRjj0eG72b2na7HXYY5M63yRzjOa
         +6SA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720434511; x=1721039311;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GM8Kjv51LyNdCHE/SMM2H3/IBlbCugblQnGSKwa1WQ0=;
        b=IKiocJF2q7JqILnD+Q4lXvFjiSjk79DPlsGjnhQchWcRKy+Mz1gjdr3iUgvt9Dh1DK
         jMu5j0D4Tb7FFshMnRLhbz0aj28zFsQBLVAh4vRmMqYhvcPeS29Cz9jXo/E3aTPSFJ2J
         jJtYSbZN1YyF8JB8Ug+WOGtNhB3qidCyLBNxW6RdT89NawkgZF75LeOksxIfkBt7O46h
         X7+Se7EFPTrzRIFzAy+7Vc5XdsyXnoDG+MBVFa9Fwu+YNOZSiPNyqQZzz5Ds5HSKA6ae
         tzdbJ+Pf5OAzMcn+iiNcp58yINclG9O7gmitOPiM048ic7nQZEuw13kIFYxm98yJ4pel
         kgng==
X-Forwarded-Encrypted: i=1; AJvYcCXJ7Y4lDI28BSZEvXopGjY513/jzdNT0Fx5f2WvKlW3F+RZDpEAUX5hI2TXxP1ROhQxoOdKqZKk8dGRopHnNENe3zH+sAs8Kfd6YPhN3dE=
X-Gm-Message-State: AOJu0YyscH/22w1hBqaHzsonJl43Ue+wu+sbIb8HCxppa4A9LU25ai1v
	SQXeSM1oVO0FyH0Cy2Lfb43kxrozHX29n9rPmBMI7a+J4A7wmRi4LImtGwhCQg==
X-Google-Smtp-Source: AGHT+IFhBB575zKwsVLrCjg9vWX4DXUU+Lgl8d7dDgc+ckpN3sUrZwsOwpB9WtSUi9GLkdCMXAXqgQ==
X-Received: by 2002:a2e:8889:0:b0:2ee:7590:7ce5 with SMTP id 38308e7fff4ca-2ee8ed66ea8mr69008281fa.3.1720434511522;
        Mon, 08 Jul 2024 03:28:31 -0700 (PDT)
Message-ID: <0a3b4e6b-3d7b-4fff-ab42-d3bab7410246@suse.com>
Date: Mon, 8 Jul 2024 12:28:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 6/6] build: Drop xorg-x11 as a build dependency
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Oleksii Kurochko
 <oleksii.kurochko@gmail.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-7-andrew.cooper3@citrix.com>
 <afec5c5c-8de8-4795-b470-ec78339f982e@suse.com>
 <431e9e51-6cbb-42ec-b6c5-f1f35d5d85bc@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: <431e9e51-6cbb-42ec-b6c5-f1f35d5d85bc@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.07.2024 12:21, Andrew Cooper wrote:
> On 08/07/2024 7:49 am, Jan Beulich wrote:
>> On 05.07.2024 17:20, Andrew Cooper wrote:
>>> The history on this one is complicated.  The note to README was added in
>>> commit 1f95747a4f16 ("Add openssl-dev and xorg-x11-dev to README") in 2007.
>>>
>>> At the time, there was a vendered version of Qemu in xen.git with a local
>>> modification using <X11/keysymdef.h> to access the monitor console over VNC.
>>>
>>> The final reference to keysymdef.h was dropped in commit 85896a7c4dc7 ("build:
>>> add autoconf to replace custom checks in tools/check") in 2012.  The next
>>> prior mention was in 2009 with commit a8ccb671c377 ("tools: fix x11 check")
>>> noting that x11 was not a direct dependcy of Xen; it was transitive through
>>> SDL for Qemu for source-based distros.
>>>
>>> These days its only the Debian based dockerfiles which install xorg-x11, and
>>> Qemu builds fine in these and others without x11.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> There may be one more past dependency, but I'm not sure since I don't know
>> the package split in the distros you touch files for. In unmodified_drivers/
>> (removed in 4.14) there was a use of the lndir utility coming (on SUSE
>> distros) in xorg-x11-util-devel. Then again unmodified_drivers/ may never
>> have been of any interest to gitlab-CI.
> 
> Huh.  I've not come across lndir before, but we've got an opencoded
> forms of it in several places.  (tools/include, and
> tools/firmware/xen-dir, maybe others.)
> 
> Still - as a build dependency, it should be the main xorg package, not
> the *-dev{el} package.  Whether a dev{el} package pulls in the main
> package is distro-dependent.

Just to mention it: It is the -devel package where this script lives (for
our distros at least), not the main one. I don't expect any -devel would
be pulled in by any main package?

> 4.15 is the oldest tree we test in Gitlab CI, and I don't believe we
> built unmodified_drivers/ in prior versions either.

Oh, sure, I didn't mean to indicate any change would be necessary, except ...

> Either way - I don't think this alters the outcome of the patch.  I can
> add a paragraph to the commit message noting that there might have been
> another unspecified dependency on xorg ?

... perhaps mention of this (yet later removed) dependency we had.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 10:32:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 10:32:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755283.1163600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQlfX-0002hz-Gh; Mon, 08 Jul 2024 10:32:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755283.1163600; Mon, 08 Jul 2024 10: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 1sQlfX-0002hs-D4; Mon, 08 Jul 2024 10:32:27 +0000
Received: by outflank-mailman (input) for mailman id 755283;
 Mon, 08 Jul 2024 10:32:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQlfW-0002hm-Mq
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 10:32:26 +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 5dffc742-3d15-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 12:32:25 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a6fd513f18bso348259066b.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 03:32:25 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77ea919751sm168943966b.86.2024.07.08.03.32.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 03:32: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: 5dffc742-3d15-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720434745; x=1721039545; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OG9jfp2Gky05C9BRwRrEDcd3skzECO68GndxkSmYCMk=;
        b=AmHlyP56fpOXHlu7T8L0bcEO28ZUjVK6GuLCw6ykN+Fpi7gp9lBDGRnDaEvA+udClZ
         Z43oirBlfHIK0sTLcDWptTuYxAYO7zK81WPW/Onga1IBmj8/WcfCl+h1ylEINZP4fpst
         1SUQR0fq6vO/EQXjC0ZJPVRhex0Fe2RWgV2GE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720434745; x=1721039545;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OG9jfp2Gky05C9BRwRrEDcd3skzECO68GndxkSmYCMk=;
        b=d0ecZjMyd3RKbxuqSHqnBelHXn+ul7EBsM5vUFcPNQ67S1YdZFPPqzkGkXldpZSYKk
         KZAHGxS+7X9kWsRrIPSt5G7CgsXvcbO+kbaDjUia6d1D9ZRpI8lDCYDmy9SWy6DMfKpe
         czmDRkATkI2RPcBQXPpkrN9CoG4XN3xc63/14WlX1zkWPX7do+qakfXsTXXOMnJFdvFN
         OoVVhSVbBlhYcA13fnZKvMX6umI3Xa4j3y6Ddu6WjvzP7y9m7mmIX0Lv0NfL72mDo042
         Pvd8MGVVSpP/ArCPXza3+ADU5aAy/YTVOoe++AGB1mIsFLTNE4hCjZx49KoewtP46pP3
         gDOQ==
X-Forwarded-Encrypted: i=1; AJvYcCWF1lmyco6RcrYWbRbr2l44vhTbdlDoUI2YhKQogVfsku5LbvmywzxhGp9XCXAnBH2pW28gUpi0OZ3WhGLtIoOhoBO7r8FXrAj0QfK6i0Q=
X-Gm-Message-State: AOJu0YxkdOA5pn1PzvFWv6MfolWKCcR8bGj4q+JFTluBMcrQtlC6vBiE
	gq+M69nzgcRA2El4yEu0ofjUppfiUs99OEzte4iPZ6ksWkNR9ZzEHz9xkx4s/bHKCtSt3BXNFYj
	i
X-Google-Smtp-Source: AGHT+IFaH24L9tgYxPtpEHhsZCVnTxxPnjr7MpCuZH+VNYQUDEIpU7DZGB64Vn0JgQivZchHV5hWaw==
X-Received: by 2002:a17:907:3f8e:b0:a72:6ff6:b932 with SMTP id a640c23a62f3a-a77ba711c8emr849580666b.51.1720434744632;
        Mon, 08 Jul 2024 03:32:24 -0700 (PDT)
Message-ID: <905c2eb7-9fe2-4a7c-91b3-1f9df245c5a3@citrix.com>
Date: Mon, 8 Jul 2024 11:32:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 v2] x86/physdev: Return pirq that irq was already
 mapped to
To: Jiqian Chen <Jiqian.Chen@amd.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Huang Rui <ray.huang@amd.com>
References: <20240708080456.401764-1-Jiqian.Chen@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240708080456.401764-1-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08/07/2024 9:04 am, Jiqian Chen wrote:
> Fix bug introduced by 0762e2502f1f ("x86/physdev: factor out the code to allocate and
> map a pirq"). After that re-factoring, when pirq<0 and current_pirq>0, it means
> caller want to allocate a free pirq for irq but irq already has a mapped pirq, then
> it returns the negative pirq, so it fails. However, the logic before that
> re-factoring is different, it should return the current_pirq that irq was already
> mapped to and make the call success.
>
> Fixes: 0762e2502f1f ("x86/physdev: factor out the code to allocate and map a pirq")
>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

As a minor note, we treat Fixes: as a tag like all the others, so tend
not to have a blank line between it an the SoB.

Can be fixed on commit - no need to resend.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 11:42:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 11:42:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755304.1163640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQmkr-0004n9-Gu; Mon, 08 Jul 2024 11:42:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755304.1163640; Mon, 08 Jul 2024 11:42:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQmkr-0004n0-EB; Mon, 08 Jul 2024 11:42:01 +0000
Received: by outflank-mailman (input) for mailman id 755304;
 Mon, 08 Jul 2024 11:42:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQmkq-00042h-9a
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 11:42:00 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20604.outbound.protection.outlook.com
 [2a01:111:f403:200a::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 14c06e82-3d1f-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 13:41:58 +0200 (CEST)
Received: from BN9PR03CA0784.namprd03.prod.outlook.com (2603:10b6:408:13f::9)
 by PH0PR12MB7888.namprd12.prod.outlook.com (2603:10b6:510:28b::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Mon, 8 Jul
 2024 11:41:52 +0000
Received: from BN1PEPF00006001.namprd05.prod.outlook.com
 (2603:10b6:408:13f:cafe::5f) by BN9PR03CA0784.outlook.office365.com
 (2603:10b6:408:13f::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36 via Frontend
 Transport; Mon, 8 Jul 2024 11:41:51 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00006001.mail.protection.outlook.com (10.167.243.233) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Mon, 8 Jul 2024 11:41:51 +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, 8 Jul
 2024 06: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: 14c06e82-3d1f-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Kf6GrPl2eL5LWJxBR+ApYMf7KS4Sv39mS17uxD5ldjtr6UwVThX62/FEewnX/po35cTmfQbppc5+SL2xxFHTdz+7YhY/mk+p5ogRy41Kga+yD5M0B+4R2ild4kgByhJIBmHVjImxmy8GtkValMUwGmSUaxLeyId3a6KOWtIeadJoW+cgEymqjKIpCt/9HFt7a+g97Grliuve3AXm9Y5zecnB9XWWzCyt5iJ1WP8HJr5HR7N5EvNOlBELvhVX8DXeNL623LwFhkO3VZlF51OdG41OCfcetoGL6yncJ68bEsDJ12zYMGUBxZMt3HVgLEGjm4eoMd4n7yG+JEnS9VgK8g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mHHPfEU7Tj3wFWabDhvJJiTUzdQGCtYEiTn+now2Hu8=;
 b=egX97bG05FPNnK+goiF0xgLwN9ZUOjP0UKNwF2ZXCAOphpRJQ8J5GM0e+oSS5g4j/zYO/SFqMc5dGHiXPb4O7EZVg41x+Hk2wmszL+SpFbckkzoHWOs613Xkgr1LHVp84WVL/i1jRx7a9+eMbOIbdr1Fc0PxP1HDbV+tPUJdpx2+JS5B8LjecOWoI1EU92ZwdmJW0ZIxekz+uxf0eWU562EMUgGLgLq2az2467Vge+APXuVvpiiH2413ulGC5YP3An+5kIVFFmj48gdjI2XcRc5Sl1FwPHPw4jasdnVDJZaywcqB5KC28jWETFeIT3r9CFrbLYxS267ALCyQPc1Y1Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mHHPfEU7Tj3wFWabDhvJJiTUzdQGCtYEiTn+now2Hu8=;
 b=bcB0yuKzUDYrtIxhNXSHk4d31fHy04dg19o1oSGTEVevFUYWX4wPhCvIsmv25H92bf5IeYEbOaboaiwGF1ecrQSsC20jsJLgu5w7G4uI57NMRAZ4kEWrHSa7kNcbmB6YapazqjJMJWT7JNCM6WGAS03geBs+2wSOTLQshOKyA/0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap
	<gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Juergen
 Gross" <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Date: Mon, 8 Jul 2024 19:41:19 +0800
Message-ID: <20240708114124.407797-3-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20240708114124.407797-1-Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@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: BN1PEPF00006001:EE_|PH0PR12MB7888:EE_
X-MS-Office365-Filtering-Correlation-Id: b3592a91-5eb1-4bcd-97f5-08dc9f42f545
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|1800799024|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?aNFVr3j6gTwSBsLAPTQl2+bKvo9vjxJKgNEFuxlsBO2Z2OCNUnzdO4Th+ROW?=
 =?us-ascii?Q?XRQwvZ7SiPMAGXvBAOYUsGCFEPC3o89Od4hUlLi5h8EE0uCIb5aXAA0dAJpK?=
 =?us-ascii?Q?5C4AKWKY3KGP5PfMJU2Ewdg9A0uFrTUwOsCmEyOH5iKcDCoV1NT+g7/o6s9r?=
 =?us-ascii?Q?pM1oDaBbaYhefkGBP5vYndtLhPXIFzAZsDHEMro4B8v4YthAmPL7j1H30Hqg?=
 =?us-ascii?Q?9+caVWTziind6Tgnp5++U/zgtPIGeFC9qZDSvVQ3j8rR/oAFpX5o3ckpQIMG?=
 =?us-ascii?Q?arclB0aCgcM8MnZ/RnJgqNlERCosTfhJMBjIhBID4JGMnWglbBuu2Y+9+5QX?=
 =?us-ascii?Q?A68lPnZH432UzQQYcjAALLtA+JWK7KYaHcDMEUbKFTug0MAHuMuk5iRMx/D3?=
 =?us-ascii?Q?tlAQgQJJ0JXlZDCRtgIItY9sskHtDy+Y84NdsVLCULuH4ZsQqZjIAhUV116U?=
 =?us-ascii?Q?6W6szlD2CNvbazeC8C4XmqdvdhYpIqzBeuNOcDxObSWsVuYjGXLaAz8Tvsmf?=
 =?us-ascii?Q?/h/xKRmzg8mxVMhSCk0/1Gvoll9lcT256dHpPkdjyqkwK+5ACVwBnwvs/ugC?=
 =?us-ascii?Q?IwAJPV2+/TLYcUJVzCMJcCNJLDiYWqf+DdMH4Aj2cv+UbA6uFIzeGyJ157tC?=
 =?us-ascii?Q?BB9rrUgdNoA4p/PJXyOM9WS6qNkZawFV2kUFZMwXJOWor06nG6R8RvlPCgQs?=
 =?us-ascii?Q?rijsmR7j9G0a5JeQsdNB1gb2I1YcB3kGR27ZdKPBHEVfmrkx5dmLg84IxQkm?=
 =?us-ascii?Q?PfE1HFw/yA5yE9pGRFU+zqyukb4hD5Xy7i1saoQLsAO45CJc3dO2yciXHjMi?=
 =?us-ascii?Q?oBbxZu1cq1FbPnDEQaP6hXFQp8m41TMrIkaXMT9fkdX+Qw99Alwse/a6rKUi?=
 =?us-ascii?Q?cCPQctrm6j53u+yxiW8ETT0eRhXp+4VxQtgtiS7pPg4tky2/La8OQrtIw/u2?=
 =?us-ascii?Q?gI+LCSRTjE1EjouGwXH447i/dIM0nFhIv+crt8PNTFZqoyv7bLTA7wFwd4AF?=
 =?us-ascii?Q?HT2OYwZZwZbatJebL4HGYHVEmL9SIygWeOqwtRL5aLSTJur0kYBdQ+mieCLp?=
 =?us-ascii?Q?02dzkVHrVeP0NYS6B0kt3L+FXNOGdxprsw7c8hesyT2SD9WphuLj+zD3tU6Q?=
 =?us-ascii?Q?TDnLaN1lQPVP5Tpd8BDsrTHonDJ6U+dLEvgYU3Rs3+ipCkyt8GutLU82XQsL?=
 =?us-ascii?Q?f3mjleqkR8ffWcB93O/b7bbg2OkxtQWq9KEaSBic45sLsvp5mQoyE9QlW9Kg?=
 =?us-ascii?Q?Uh+CvoFz38GXODpR21IIPBi5sZ0rvaOHMDp79lVE+3FQwH3pgtMWjLgbz1jw?=
 =?us-ascii?Q?ISpWrFNGJ9BHxugEm3MBld7WVo9QcpB89lb7kVOkTqOh1dvcKCc2Cv3FHKAY?=
 =?us-ascii?Q?ol/9M3obukw2FVsq2Fc+fY2oVc84rRFoVO2dFxhUh8NMPNWNBfe5JBRr9481?=
 =?us-ascii?Q?M5L9nA0njblpqR/JSNDX2BQu/gXKULyV?=
X-Forefront-Antispam-Report:
	CIP:165.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)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2024 11:41:51.0779
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b3592a91-5eb1-4bcd-97f5-08dc9f42f545
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00006001.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7888

If run Xen with PVH dom0 and hvm domU, hvm will map a pirq for
a passthrough device by using gsi, see qemu code
xen_pt_realize->xc_physdev_map_pirq and libxl code
pci_add_dm_done->xc_physdev_map_pirq. Then xc_physdev_map_pirq
will call into Xen, but in hvm_physdev_op, PHYSDEVOP_map_pirq
is not allowed because currd is PVH dom0 and PVH has no
X86_EMU_USE_PIRQ flag, it will fail at has_pirq check.

So, allow PHYSDEVOP_map_pirq when dom0 is PVH and also allow
PHYSDEVOP_unmap_pirq for the removal device path to unmap pirq.
And add a new check to prevent (un)map when the subject domain
doesn't have a notion of PIRQ.

So that the interrupt of a passthrough device can be
successfully mapped to pirq for domU with a notion of PIRQ
when dom0 is PVH

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 xen/arch/x86/hvm/hypercall.c |  6 ++++++
 xen/arch/x86/physdev.c       | 12 ++++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 0fab670a4871..03ada3c880bd 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -71,8 +71,14 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 
     switch ( cmd )
     {
+        /*
+        * Only being permitted for management of other domains.
+        * Further restrictions are enforced in do_physdev_op.
+        */
     case PHYSDEVOP_map_pirq:
     case PHYSDEVOP_unmap_pirq:
+        break;
+
     case PHYSDEVOP_eoi:
     case PHYSDEVOP_irq_status_query:
     case PHYSDEVOP_get_free_pirq:
diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
index d6dd622952a9..9f30a8c63a06 100644
--- a/xen/arch/x86/physdev.c
+++ b/xen/arch/x86/physdev.c
@@ -323,7 +323,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         if ( !d )
             break;
 
-        ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
+        /* Only mapping when the subject domain has a notion of PIRQ */
+        if ( !is_hvm_domain(d) || has_pirq(d) )
+            ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
+        else
+            ret = -EOPNOTSUPP;
 
         rcu_unlock_domain(d);
 
@@ -346,7 +350,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         if ( !d )
             break;
 
-        ret = physdev_unmap_pirq(d, unmap.pirq);
+        /* Only unmapping when the subject domain has a notion of PIRQ */
+        if ( !is_hvm_domain(d) || has_pirq(d) )
+            ret = physdev_unmap_pirq(d, unmap.pirq);
+        else
+            ret = -EOPNOTSUPP;
 
         rcu_unlock_domain(d);
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 11:42:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 11:42:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755302.1163621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQmkl-0004HA-2F; Mon, 08 Jul 2024 11:41:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755302.1163621; Mon, 08 Jul 2024 11: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 1sQmkk-0004H3-U2; Mon, 08 Jul 2024 11:41:54 +0000
Received: by outflank-mailman (input) for mailman id 755302;
 Mon, 08 Jul 2024 11:41:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQmkj-00042n-NK
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 11:41:53 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20600.outbound.protection.outlook.com
 [2a01:111:f403:2417::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1096dd9e-3d1f-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 13:41:51 +0200 (CEST)
Received: from BN1PR14CA0030.namprd14.prod.outlook.com (2603:10b6:408:e3::35)
 by CY5PR12MB6372.namprd12.prod.outlook.com (2603:10b6:930:e::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Mon, 8 Jul
 2024 11:41:48 +0000
Received: from BN1PEPF00005FFE.namprd05.prod.outlook.com
 (2603:10b6:408:e3:cafe::ca) by BN1PR14CA0030.outlook.office365.com
 (2603:10b6:408:e3::35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36 via Frontend
 Transport; Mon, 8 Jul 2024 11:41:47 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00005FFE.mail.protection.outlook.com (10.167.243.230) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Mon, 8 Jul 2024 11:41:47 +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, 8 Jul
 2024 06: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: 1096dd9e-3d1f-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KrJaAoR+wYEksI7ApLm4aHwpRoJxOJNhTZxW6zezpzv2gEj2yS1Vb1PbueX0lR7iHjpHBm/aEyF5hcPm+5ylXkmEaS/aELAUG95LBleE3gXLpCUHRJ91/I1ImqBhzPcfBfxop6lh/MmuD5fjKD7tg9LlsCySwSTjrRZOABR1VAidyVKna4CYtM7aVCo3FL1nsvuRTdTPOsLEUUY9u5O5wmTRv5uCSS4KxjPjC6qc4DVtyIN9IMwbXtVPjS9bSSqCmXc9dTADjsm3IFBnOxm3+UwIU7tOkiNDIZcrexgTYrPNjdPmC3CO+yP0dJx3coX8Ow411c21LI8B81IK8tadlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kSBan8AMKi3heWU3rnAw95no+PojTUn8JnZuEPQvIPs=;
 b=Cz2cUwRtE6at8RPXZp9Qfut3J/cpxiBJpYigaz5FfNSmlBODmr+1aKBcE8cDxleDNDXABQrxqoLilAeNhlCUdhKkWq9henLO9LVF7tCN+CHA7gBOj9iIYmkQy73piiuPaIeDZc+BVioW8X0fSUFBMEzzJwUqQ1pPcIEvdHRJIoL9nL0ZLkDE1cEy3TE+3KrBjBOzRLgm7I0Kj7Qsrqu5DF+nC92b9wWSSs8S2Q8bkx9kmoj7YlvZAx5MRr6flLW8fsyX9H3d08+UC/VTBFRF6yqbKivvWzF1/0QegEAH3Xa/FGUuJpF9eMGkVSYO25KP6xS5Mu97F9PGi4Pno/PsTA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kSBan8AMKi3heWU3rnAw95no+PojTUn8JnZuEPQvIPs=;
 b=MP/Zv7manSkjDoob1VR4CcIQzX7r0IIldnBb+vYimmFiTi5WcvVEg89GKVxmOjOL6NTxRGrxzhY3bUl+XO0G7s9/EmxH5uGbKsrRHdxPy1uylUnhWn+9+3jt2opcX+07GlVkYhJ/CFGC5F0t0OV8NvHEFFuv9YRQP3fzOaklleM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap
	<gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Juergen
 Gross" <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>
Subject: [XEN PATCH v12 1/7] xen/pci: Add hypercall to support reset of pcidev
Date: Mon, 8 Jul 2024 19:41:18 +0800
Message-ID: <20240708114124.407797-2-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20240708114124.407797-1-Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@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: BN1PEPF00005FFE:EE_|CY5PR12MB6372:EE_
X-MS-Office365-Filtering-Correlation-Id: a42e1c98-7f0d-44b0-395e-08dc9f42f32f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|7416014|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?4LRigjHWRbgfomhnzwcKB+OcGBIcPNOEEqyJsMtDrQs+p1N9lIw+2HOsG7Ao?=
 =?us-ascii?Q?Fbu6I5kmeNH5LEzi2dm2GakdPXzJIMx/FtY5buaTMra4lpVj8LvbhmgqsxpG?=
 =?us-ascii?Q?nhBqPHnk9x5uYdTs1dFczMbpgt6AqDOlgo/JvolgVTUIPwwOEcG1XPp8NRbT?=
 =?us-ascii?Q?vCykIyRACTfzPFthFNRIUHlrEm7U4wcXUfkLDEbaR6J3yZlov9E6tewtMASa?=
 =?us-ascii?Q?f1haz8V49WvQfg2sLJsccnlJZpBbpO3CnCtaex8I/rofc4ajs+Vl4rRaYk0O?=
 =?us-ascii?Q?bMHfc5LPzV5V6yos/CxpstrCnXCMgMJ49v/EyIZUWebDLTa7WEikR5cyBIpT?=
 =?us-ascii?Q?apXRVhHB6zjV068eFj4aUN3p3YAcOp7dWsc1FwGg1tI+DM4iW/joxsKqOfAd?=
 =?us-ascii?Q?ptTxApKn8FI+BD36ADqfEbX4+YIPzqJDMZhqZyOzqW1ZX6S7/XKgYkJQKMTY?=
 =?us-ascii?Q?VbARcf+KIR75tw73nOsYZ797KyoHb7i+UYJmoXPZe/IotnP9MMZ4UiUo1upC?=
 =?us-ascii?Q?TUdjDp4NUwlC4KkGYh/okOHceulKfSQR2oMOk7raB2K8JDnScelXxDPS+AyF?=
 =?us-ascii?Q?VK6WNB6kId9kicfbeHXKHNEV8lhj7MMmVJzYiFXgRE8LL7WKoUYzI/PXwybL?=
 =?us-ascii?Q?RvSjACAyEbYUQsHS/0aGLhRho/+Azs5dykF3aWNQe2dibzfclf/2hbAeEemW?=
 =?us-ascii?Q?u/l0Bh1mot/s8KM2sjzNU6DmaaLWjQ+P+X82aBf4K0hnAsgid1N01d4qe9ZF?=
 =?us-ascii?Q?m1jUSsvqbSxwMGJ8WqVC36Jn/Bjeq1RnPQeLEVzOkdxhB5ZGyI+Bj+KGwGCS?=
 =?us-ascii?Q?wMYdlGGoj3aq4yDt5BRmT59BNAKi6byTM2VtrgTZoWvLAzOR3gwtovHmqUhn?=
 =?us-ascii?Q?2/o0hElA9EqKLWGrjTFUr4LDPNMxeyKF1ZpugJUkKvehm/J9yIInKM493X+Z?=
 =?us-ascii?Q?4OdNHiLAM+5/0CYPdvt+UZ5wUfi56PSn3prkXtx9XL5F0eEoE4OWakle5CaX?=
 =?us-ascii?Q?EP1VYQwvDxZNA/9nAIDgEWzh4lZ73f8f52KYQfdvLlPq25bjyHuGmswI9QUk?=
 =?us-ascii?Q?ohEu7Orq0Edmftjsx6nv6mz0oN5uFozcqkffA0hJWgYMoNu/M7gHQQsCZcue?=
 =?us-ascii?Q?RXc/yAyVxVMi+4GROXBdpf9wM5fVCIfyt3p7uioNsL+hQSlzhMyXUgSKfjDr?=
 =?us-ascii?Q?pZ4pFGh+JXyzLWwN9TXeEkooOSnXIEBzcfYHMwhFQYxrQTBrp6eEARJZ2Kkm?=
 =?us-ascii?Q?C1SOY4tkLcZ+WtlE1WLraop5dE02EH+rWDFmyJ38O6HNyKYMOZSB9buNtBer?=
 =?us-ascii?Q?uhvFZ9tFGhnfv0n503x/CTgbzWNmWqGjOtx29nxkfQHJv1FxzifyTvTB0Ll3?=
 =?us-ascii?Q?xr+SbPZ63Wjntb1BXE0dzYAPAhOm+2U0+PDEnQVlLo6/2MMCVFdb4t1I07FH?=
 =?us-ascii?Q?pfPDGcwW+7CjthtP73MX0PLMijPpNLez?=
X-Forefront-Antispam-Report:
	CIP:165.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)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2024 11:41:47.5759
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a42e1c98-7f0d-44b0-395e-08dc9f42f32f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00005FFE.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6372

When a device has been reset on dom0 side, the Xen hypervisor
doesn't get notification, so the cached state in vpci is all
out of date compare with the real device state.

To solve that problem, add a new hypercall to support the reset
of pcidev and clear the vpci state of device. So that once the
state of device is reset on dom0 side, dom0 can call this
hypercall to notify hypervisor.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/arch/x86/hvm/hypercall.c |  1 +
 xen/drivers/pci/physdev.c    | 52 ++++++++++++++++++++++++++++++++++++
 xen/drivers/vpci/vpci.c      | 10 +++++++
 xen/include/public/physdev.h | 16 +++++++++++
 xen/include/xen/vpci.h       |  8 ++++++
 5 files changed, 87 insertions(+)

diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 7fb3136f0c7c..0fab670a4871 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -83,6 +83,7 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     case PHYSDEVOP_pci_mmcfg_reserved:
     case PHYSDEVOP_pci_device_add:
     case PHYSDEVOP_pci_device_remove:
+    case PHYSDEVOP_pci_device_state_reset:
     case PHYSDEVOP_dbgp_op:
         if ( !is_hardware_domain(currd) )
             return -ENOSYS;
diff --git a/xen/drivers/pci/physdev.c b/xen/drivers/pci/physdev.c
index 42db3e6d133c..c0f47945d955 100644
--- a/xen/drivers/pci/physdev.c
+++ b/xen/drivers/pci/physdev.c
@@ -2,6 +2,7 @@
 #include <xen/guest_access.h>
 #include <xen/hypercall.h>
 #include <xen/init.h>
+#include <xen/vpci.h>
 
 #ifndef COMPAT
 typedef long ret_t;
@@ -67,6 +68,57 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         break;
     }
 
+    case PHYSDEVOP_pci_device_state_reset:
+    {
+        struct pci_device_state_reset dev_reset;
+        struct pci_dev *pdev;
+        pci_sbdf_t sbdf;
+
+        ret = -EOPNOTSUPP;
+        if ( !is_pci_passthrough_enabled() )
+            break;
+
+        ret = -EFAULT;
+        if ( copy_from_guest(&dev_reset, arg, 1) != 0 )
+            break;
+
+        sbdf = PCI_SBDF(dev_reset.dev.seg,
+                        dev_reset.dev.bus,
+                        dev_reset.dev.devfn);
+
+        ret = xsm_resource_setup_pci(XSM_PRIV, sbdf.sbdf);
+        if ( ret )
+            break;
+
+        pcidevs_lock();
+        pdev = pci_get_pdev(NULL, sbdf);
+        if ( !pdev )
+        {
+            pcidevs_unlock();
+            ret = -ENODEV;
+            break;
+        }
+
+        write_lock(&pdev->domain->pci_lock);
+        pcidevs_unlock();
+        switch ( dev_reset.reset_type )
+        {
+        case PCI_DEVICE_STATE_RESET_COLD:
+        case PCI_DEVICE_STATE_RESET_WARM:
+        case PCI_DEVICE_STATE_RESET_HOT:
+        case PCI_DEVICE_STATE_RESET_FLR:
+            ret = vpci_reset_device_state(pdev, dev_reset.reset_type);
+            break;
+
+        default:
+            ret = -EOPNOTSUPP;
+            break;
+        }
+        write_unlock(&pdev->domain->pci_lock);
+
+        break;
+    }
+
     default:
         ret = -ENOSYS;
         break;
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 1e6aa5d799b9..7e914d1eff9f 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -172,6 +172,16 @@ int vpci_assign_device(struct pci_dev *pdev)
 
     return rc;
 }
+
+int vpci_reset_device_state(struct pci_dev *pdev,
+                            uint32_t reset_type)
+{
+    ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
+
+    vpci_deassign_device(pdev);
+    return vpci_assign_device(pdev);
+}
+
 #endif /* __XEN__ */
 
 static int vpci_register_cmp(const struct vpci_register *r1,
diff --git a/xen/include/public/physdev.h b/xen/include/public/physdev.h
index f0c0d4727c0b..3cfde3fd2389 100644
--- a/xen/include/public/physdev.h
+++ b/xen/include/public/physdev.h
@@ -296,6 +296,13 @@ DEFINE_XEN_GUEST_HANDLE(physdev_pci_device_add_t);
  */
 #define PHYSDEVOP_prepare_msix          30
 #define PHYSDEVOP_release_msix          31
+/*
+ * Notify the hypervisor that a PCI device has been reset, so that any
+ * internally cached state is regenerated.  Should be called after any
+ * device reset performed by the hardware domain.
+ */
+#define PHYSDEVOP_pci_device_state_reset 32
+
 struct physdev_pci_device {
     /* IN */
     uint16_t seg;
@@ -305,6 +312,15 @@ struct physdev_pci_device {
 typedef struct physdev_pci_device physdev_pci_device_t;
 DEFINE_XEN_GUEST_HANDLE(physdev_pci_device_t);
 
+struct pci_device_state_reset {
+    physdev_pci_device_t dev;
+#define PCI_DEVICE_STATE_RESET_COLD 0
+#define PCI_DEVICE_STATE_RESET_WARM 1
+#define PCI_DEVICE_STATE_RESET_HOT  2
+#define PCI_DEVICE_STATE_RESET_FLR  3
+    uint32_t reset_type;
+};
+
 #define PHYSDEVOP_DBGP_RESET_PREPARE    1
 #define PHYSDEVOP_DBGP_RESET_DONE       2
 
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index da8d0f41e6f4..6be812dbc04a 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -38,6 +38,8 @@ int __must_check vpci_assign_device(struct pci_dev *pdev);
 
 /* Remove all handlers and free vpci related structures. */
 void vpci_deassign_device(struct pci_dev *pdev);
+int __must_check vpci_reset_device_state(struct pci_dev *pdev,
+                                         uint32_t reset_type);
 
 /* Add/remove a register handler. */
 int __must_check vpci_add_register_mask(struct vpci *vpci,
@@ -282,6 +284,12 @@ static inline int vpci_assign_device(struct pci_dev *pdev)
 
 static inline void vpci_deassign_device(struct pci_dev *pdev) { }
 
+static inline int __must_check vpci_reset_device_state(struct pci_dev *pdev,
+                                                       uint32_t reset_type)
+{
+    return 0;
+}
+
 static inline void vpci_dump_msi(void) { }
 
 static inline uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 11:42:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 11:42:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755303.1163630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQmkq-0004Y0-Am; Mon, 08 Jul 2024 11:42:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755303.1163630; Mon, 08 Jul 2024 11:42: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 1sQmkq-0004Xp-7W; Mon, 08 Jul 2024 11:42:00 +0000
Received: by outflank-mailman (input) for mailman id 755303;
 Mon, 08 Jul 2024 11:41: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=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQmkp-00042h-9Q
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 11:41:59 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20628.outbound.protection.outlook.com
 [2a01:111:f403:200a::628])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 14d4aa0d-3d1f-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 13:41:58 +0200 (CEST)
Received: from BN7PR02CA0030.namprd02.prod.outlook.com (2603:10b6:408:20::43)
 by MW4PR12MB7432.namprd12.prod.outlook.com (2603:10b6:303:22d::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Mon, 8 Jul
 2024 11:41:55 +0000
Received: from BN1PEPF00005FFC.namprd05.prod.outlook.com
 (2603:10b6:408:20:cafe::4b) by BN7PR02CA0030.outlook.office365.com
 (2603:10b6:408:20::43) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36 via Frontend
 Transport; Mon, 8 Jul 2024 11:41:54 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00005FFC.mail.protection.outlook.com (10.167.243.228) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Mon, 8 Jul 2024 11:41:54 +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, 8 Jul
 2024 06:41: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: 14d4aa0d-3d1f-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Q9j5/RNdK47rKocWPaGOn8sv/FDf72RssvHOc3ml7s6K7NdQAAmheVx/1TGJJ94yXGL2EknWPxxYiCBFZsbRg/DB05mCHxcxU2QWdrD5nh8NzMtHnzi+8DX5eiR+lqCkSae84oMzMLoYQb1lglZUgaKvYMCHN+0i00mUcZXgemYjr3tVvDh915iEYFLF6UnZmoFC/4nRC7aS0R5m7hPZOmkF2IVhfxkHi62dx/ZsWP/uQCgtJdiyxk+9aWl56EYQLgRB9RgHMoRNkvJAuOOW1YS9E411x4tEPqDQfjeN081JrcOAMpxH41So1RoWF7Ij1VNahW6T/ypeW1sUXi3udw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=szi3iqQfbMQzivoN8ExWAziYbJZhc5SH7BnahLl6nJA=;
 b=cs5odoNzjBzWYiIaIN8at8IYZY2ts+rc5rim7fB4D6wzmnie6WfnxyAbYDOgSCtE8/kcNJGq3jxatPX41Y7nzCX2qlVCZv+ZcITYgmmt3W9klyuJaf7rfsNzTnZYdZ0AcBGVWnReiCjkL2LwnSAUI9gAVNT+o4Te+rNvxdWzDvL9hJDc6eWaDcLI5CuKJdZtlb8NiWYcWvikJ1gBSHCgz8cCw/c6nP0nsh9JqdXckcY1qyDzRSboFepHOZKGJpQqznItyyqY60Wc7wNlfd5Jd+p+VyHq/lNoT/gXBxyilyqqtYvaNJiiZ/F7TH1Cv/xrENGiTBlyrHdtvzhUHi6KIA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=szi3iqQfbMQzivoN8ExWAziYbJZhc5SH7BnahLl6nJA=;
 b=0jK59+CuSyL0UyagxDFSafhqK/7yLnL/mo5KU8z8ogKLI83URIimMUhx9Vpo8qqjgem15Sg5KaQ0mAiKMs5cV1B0bCaPG6HlperOQdXkT2O5OkUOQnl5rKFGuvbUPOk9AY7C2kmoAowuHdsfSi5FagnEw2+nMrI5zkC01TTx3Xg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap
	<gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Juergen
 Gross" <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [XEN PATCH v12 3/7] x86/pvh: Add PHYSDEVOP_setup_gsi for PVH dom0
Date: Mon, 8 Jul 2024 19:41:20 +0800
Message-ID: <20240708114124.407797-4-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20240708114124.407797-1-Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@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: BN1PEPF00005FFC:EE_|MW4PR12MB7432:EE_
X-MS-Office365-Filtering-Correlation-Id: 7091c7f4-b1fa-430b-79d2-08dc9f42f75d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?SPucu6IMkVwJuyqLy+kkNrIm8wEv+5Q2BvhGUlMZxTH5Ndq7AnPbBI3UWVfp?=
 =?us-ascii?Q?rAD/Iq4yJplyn9CNL5kg8haVFdl7WitxItdsiOXAxgWLx+Em8dYXLr18haYf?=
 =?us-ascii?Q?Tf4fi8MM7/Y5ZkU4CoMwe1bQyqhmHl47cD9wkDsx8tTixh8c0cB622scGoaB?=
 =?us-ascii?Q?4fCgvoJwseNXTAoKRGkX6LPJ0pYlZ1TmE60NQxhwfAY5CAxXtt9oF0NY2VZr?=
 =?us-ascii?Q?dpTtqbuTjvodz8cQa2Xp2TUrMjM69z8AMusALKoi8hqbsEQHwj7R1WVeWPxQ?=
 =?us-ascii?Q?nebrwlz1uvZsRfin254Z8zfZ0nvOERoRvNN0ecS9LLic0c3jvQTLdLEhbWs0?=
 =?us-ascii?Q?TWP+UWK1aMv6x9Vh2Uyfg7877GMI+48Yqt7CrJO6YNpwjQ9C+W9vRMhumxeJ?=
 =?us-ascii?Q?5mn3J9Ox2QKDVaN3De0eJx5Qex6064/w1blCo2m0tvsbr+aDkMeImKli4baJ?=
 =?us-ascii?Q?Rgu2I1qzihwER+/86WT3u54meFIklSqmaehkQQT3EgzpEc6IIT5V0ksw5Q5B?=
 =?us-ascii?Q?vnNO7MN1UL/ntafEK52KnGtbDj09yNPfADgBJwkh0jmbUqs5hQCbtkp6jKRQ?=
 =?us-ascii?Q?3ZAAPdKMIOLTW90oYLLDVqFffBZL2ZDGFEeGxpYVsvHz9LUtXyrVrEXrsKij?=
 =?us-ascii?Q?Uv9PQL/43suhsSrY15Ogvu3T2bMaXWOMSlhpiYzczGCBJkbRHmUaqwEPr3Q7?=
 =?us-ascii?Q?4Nu2hiErg0NvkXpZ24nxvidls4kf4IoPH8v1u+BA4KwLnPpx7xQ0QaET2XE7?=
 =?us-ascii?Q?BOSwFzeE/FAPe3poPs6lmqoFWkeceQbDi77wzazxCHuUYaPr9GOqCEpuQPLl?=
 =?us-ascii?Q?JtYuorOPBL50N4C9N/OsX+Ryoe1PQkw3bIX/NYGi9oS18TniK2jAi+jmy9rL?=
 =?us-ascii?Q?ufTDyd6U7l5H6ZG+1YoqkGNmGOSlmYI/FVl5NThEA/0/EZlryh0kzWx5cFR3?=
 =?us-ascii?Q?wlYAA+3DBcZcutt5F3++mSSD1uIXkosmlxteUW3lm8JUw8fUnE+kIRazIsG3?=
 =?us-ascii?Q?EsEChfGf4pSFz/2fAj87VIciUN7B1L1AQV7Nz34j9gbv8IOBmVeyN4HYgPsv?=
 =?us-ascii?Q?SIMF5fGtwPUNK2A+u4Yumutoa7PxQNKTkRGhi/3avf1oG/8qYfpZLj/pCPdu?=
 =?us-ascii?Q?mIL4MDCJSK2yKJk+Mqhz2if+E3Pv7MJUh7UpnWPP1IWt0+XMaoVPFQZBxJek?=
 =?us-ascii?Q?wc/wsJL0M06bsy2YmluFs/wbePAYslRMqWmNo0oaurlFzvxNDR0x0dWXmbAM?=
 =?us-ascii?Q?iVaWEOltGr2dNmc102ZtvRXAWCBHddQZElVzbIdI9Eu+3F78yJji9A7F8+6R?=
 =?us-ascii?Q?skfIKb2qqnznaIc+ZsJNOj4v67z70Il30h5IaeGp0aVpT0+MZyI4xNx6RhqI?=
 =?us-ascii?Q?f9qYX8x04o0K/tUNfhDD+9bXppCas0BbOXK8Pt3/hhJ4gju5rTUeSXioh9jZ?=
 =?us-ascii?Q?nc/Lg3THufc+tixPT8FnQaGvzw0BqdP+?=
X-Forefront-Antispam-Report:
	CIP:165.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)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2024 11:41:54.5742
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7091c7f4-b1fa-430b-79d2-08dc9f42f75d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00005FFC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7432

The gsi of a passthrough device must be configured for it to be
able to be mapped into a hvm domU.
But When dom0 is PVH, the gsis may not get registered(see below
clarification), it causes the info of apic, pin and irq not be
added into irq_2_pin list, and the handler of irq_desc is not set,
then when passthrough a device, setting ioapic affinity and vector
will fail.

To fix above problem, on Linux kernel side, a new code will
need to call PHYSDEVOP_setup_gsi for passthrough devices to
register gsi when dom0 is PVH.

So, add PHYSDEVOP_setup_gsi into hvm_physdev_op for above
purpose.

Clarify two questions:
First, why the gsi of devices belong to PVH dom0 can work?
Because when probe a driver to a normal device, it uses the normal
probe function of pci device, in its callstack, it requests irq
and unmask corresponding ioapic of gsi, then trap into xen and
register gsi finally.
Callstack is(on linux kernel side) pci_device_probe->
request_threaded_irq-> irq_startup-> __unmask_ioapic->
io_apic_write, then trap into xen hvmemul_do_io->
hvm_io_intercept-> hvm_process_io_intercept->
vioapic_write_indirect-> vioapic_hwdom_map_gsi-> mp_register_gsi.
So that the gsi can be registered.

Second, why the gsi of passthrough device can't work when dom0
is PVH?
Because when assign a device to passthrough, it uses the specific
probe function of pciback, in its callstack, it doesn't install a
fake irq handler due to the ISR is not running. So that
mp_register_gsi on Xen side is never called, then the gsi is not
registered.
Callstack is(on linux kernel side) pcistub_probe->pcistub_seize->
pcistub_init_device-> xen_pcibk_reset_device->
xen_pcibk_control_isr->isr_on==0.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 xen/arch/x86/hvm/hypercall.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 03ada3c880bd..cfe82d0f96ed 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -86,6 +86,7 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
             return -ENOSYS;
         break;
 
+    case PHYSDEVOP_setup_gsi:
     case PHYSDEVOP_pci_mmcfg_reserved:
     case PHYSDEVOP_pci_device_add:
     case PHYSDEVOP_pci_device_remove:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 11:42:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 11:42:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755301.1163610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQmkj-00042v-Pe; Mon, 08 Jul 2024 11:41:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755301.1163610; Mon, 08 Jul 2024 11: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 1sQmkj-00042o-MQ; Mon, 08 Jul 2024 11:41:53 +0000
Received: by outflank-mailman (input) for mailman id 755301;
 Mon, 08 Jul 2024 11:41: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=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQmki-00042h-94
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 11:41:52 +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 0f99f0bf-3d1f-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 13:41:50 +0200 (CEST)
Received: from BN0PR04CA0015.namprd04.prod.outlook.com (2603:10b6:408:ee::20)
 by PH7PR12MB7353.namprd12.prod.outlook.com (2603:10b6:510:20c::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.34; Mon, 8 Jul
 2024 11:41:44 +0000
Received: from BN1PEPF00006002.namprd05.prod.outlook.com
 (2603:10b6:408:ee:cafe::5) by BN0PR04CA0015.outlook.office365.com
 (2603:10b6:408:ee::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36 via Frontend
 Transport; Mon, 8 Jul 2024 11:41:44 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00006002.mail.protection.outlook.com (10.167.243.234) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Mon, 8 Jul 2024 11:41: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, 8 Jul
 2024 06:41: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: 0f99f0bf-3d1f-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mmnEhSelgIaIg5bdoq6lP3amyFyQQWy6Z90XLZ8xVSf8Uatfqx7FgeeT8A2V33KsRchKTwyvevUEepMbQ3lsXomUj6YNIyxNfBOzy2cL6CiatVnc9v9QDPpzO+ztDoEoATszI+IvlWKw9LP07+7reHYn4SbM6KYRpJcXsSrHD0p0GtrZFS9ULafzC+B37FGzk/K7y7tJ5nkQpZziNZK79d7sUx/lYZ6eml03bP+w+yceqK1LAB54UqSq9uFoqkFCmvLziv0wJ6IyQfHGH7FfS+LuXkyv7Efi1MNFJGtuP1I10kX+R9p+46A863tH7k9oDppMKXuZK97dAiou7s6qAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mjcmD4Ku9qSxzy8tcXfnoJKATxOe+b7aFtrMwb7SjlQ=;
 b=h/tD1CsA4rK5Ll5pWpk7A3QqJMA2F3iXXDxf5FHhNx0Zk0CGMbe/K9ovtdAxizNVIc5vWnVL248emRTgHEDjJpYNiwrPAlkDQtXw0x00Gz3tGG9/wjdQvrmRvkMKOUKc3P9TmGyKOH26cpZGaM7gBivnayoqT6xsLkbpxyz27D+5c2mJrKTALudBfW69kGQasukxywcNXcbf5GW61k0oCrhEO4T2gsxkjOkuxvyQqkA4n7zx0K/wyoLWGcFYflg0FGTt8HxHxDJF6gTgln1LhEORhGSS6iL4T9AqV//WZ62Zm0bgWliLDLN0/R/pmanbIqrc+GCWXHPLvBY8uKJqUw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mjcmD4Ku9qSxzy8tcXfnoJKATxOe+b7aFtrMwb7SjlQ=;
 b=0JzDG4ZEXIp7huBQibwQ8XGK/E7AuW7Lli83BizpWv0gpRwebbt9pq4WHPM+DxoP0nEHHNg8K3zfJqtbugb6Av1AJV4t9KxkIiX25NQdK5TEgXnbEZSIq92JJ/+NsomySlF5rl+MARwy/qjazwBo67EYgckIE/C97hc1rzllOrM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap
	<gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Juergen
 Gross" <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [XEN PATCH v12 0/7] Support device passthrough when dom0 is PVH on Xen
Date: Mon, 8 Jul 2024 19:41:17 +0800
Message-ID: <20240708114124.407797-1-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00006002:EE_|PH7PR12MB7353:EE_
X-MS-Office365-Filtering-Correlation-Id: b322ca35-50d0-4cd8-4360-08dc9f42f10e
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?KUxO2pHrSJSUNxS6KGvt/pUw/8DGBMMdplZz6Pcs/+O+YOnwGz4TPGMcxTCM?=
 =?us-ascii?Q?87bEoCct8+9FbeNBnQh1N1pvyXGH/ZVI06k/hjg0OPGZwbeaLl6KObpW6psP?=
 =?us-ascii?Q?62opRxS2NKYhkuwZfqyLb9x9Qkdq24d20Oco/B54A5QRyVVG3e0feXxA445W?=
 =?us-ascii?Q?dLLFp0KR/TJxUUxDbPJ/i/kwbuXA8JjXbN3pQLeO/BwVu+nQM8vUILCBPGyo?=
 =?us-ascii?Q?nl4+h/WFrPNXDi4FfLEi01ZsmOMJn+ZFLOCDetJFAUcSYAiEXLZFJkfhFzlX?=
 =?us-ascii?Q?trQlhCSgsp72Uj8U+VWuCXMOEAL1YGYdzTZyKNNH5KXEAGVRTuTucZzz4zWE?=
 =?us-ascii?Q?b3nV/PW2j6+hfNmuzR6eydh6lUJ3v9IOKQ1zlRcJT1TYS2zPxmGtiIQUl9k0?=
 =?us-ascii?Q?BjkXhxC/LwohwzRxpgDbWl/nxhVNvSAVWxFFViLGKj735sRRTrLIcaYkCs96?=
 =?us-ascii?Q?TI8D0IoE7J+jT3VbajQo0qjIyjBTCXYzcLHthfA8MIq9Mr71maPzfrXxOQMu?=
 =?us-ascii?Q?G1G9qkIBj3zf5q6lBlX6KTFg2Gpqh34kgJEeweECVH6Yrm9WwAQasASKnGD6?=
 =?us-ascii?Q?B10zLWxoT2/F/L9r5Bi1WyXj2p89zNz/j+tiPetCTTnNP/1QuzSQDfKDCpgF?=
 =?us-ascii?Q?FCYoPE//FnsIfCv74tFYp5YeRaBtfDmunyDSgzfbAAVIZkk3Qusvj1EXQ/vL?=
 =?us-ascii?Q?hkqR0lC6p7j6wE2dVoMYDPS7l9pasXGBBaobVJyMBYarSc4I8VC4u44MucSv?=
 =?us-ascii?Q?ZkNZLLnj4pfIwjoIIABnlTFxM8kCJx7s3s/mX0ys8R5SGu6JnGVA/TMeGSXz?=
 =?us-ascii?Q?Xv8kZV7lQSgsSdHqpGeoFy7ps2AHu5mZPnlqHQgxtMarhbBQLL1QB/6UDOle?=
 =?us-ascii?Q?A3Wldv5SUcBeSo+8uITwuExwifH5tqs9YEzSY3C8n8FnQ+7Pi5oXdc7FJvaA?=
 =?us-ascii?Q?x/VMElIRSl+7OgvhrnMWAaLgdQP5Yrn3LkTrIpViFCK/8aEiti/mf7esmdqL?=
 =?us-ascii?Q?rTO1XdgrSbMdpOKUBWMf0EUFiYEiBHz0LKuGlHG35iTtlYB2+K1dk2WYkvtC?=
 =?us-ascii?Q?yYK62x4CuQfw7A/IcUqMYY8nxXper+uVjbP1aehuVQHDm81YmNiqvfGHHHbF?=
 =?us-ascii?Q?iPWni0pz24R9XmAapIo5oGtQSqV+yhLrfjTI3Ec58VCrhbTDMrrD21jlJfvn?=
 =?us-ascii?Q?JiAV9EJ2CrEISCxjaP0HHhhdPAaV8+MDZ3d6wvoG1LfJziioOrbUW+WfrqIP?=
 =?us-ascii?Q?CIDVo46smskGBgNKEornPiDaoZLkS5uRNfZ0PRhiNJWDNKZ2FrtSqdjQgZiE?=
 =?us-ascii?Q?MU3uh2kSRjCOrbZ7uGyvrQqgKYG07ygccoSjdC7KI92/XETuIZZnw82q/js0?=
 =?us-ascii?Q?zboLPEKES8hXZEeGXbC7+7Lf/pwmOsDbnveY6YlS6vPrecS19A=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)(7416014)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2024 11:41:43.9888
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b322ca35-50d0-4cd8-4360-08dc9f42f10e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00006002.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7353

Hi All,
This is v12 series to support passthrough when dom0 is PVH
The expected merge order of this series is the first three patches in this series, then patches on
kernel side, then the last four patches in this series.
v11->v12 changes:
* patch#1: Change the title of this patch.
           Remove unnecessary notes, erroneous stamps, and #define.
* patch#2: Avoid using return, set error code instead when (un)map is not allowed.
           Due to functional change in v11, remove the Reviewed-by of Stefano.
* patch#3: Add more detailed descriptions into commit message not just callstack.

patch#4 in v11: remove from this series and upstream individually.

* patch#4: is patch#5 of v11, change nr_irqs_gsi to highest_gsi() to check gsi boundary, then need to
           remove "__init" of highest_gsi function.
           Change the check of irq boundary from <0 to <=0, and remove unnecessary space.
           Add #define XEN_DOMCTL_GSI_PERMISSION_MASK 1 to get lowest bit.
* patch#5: Add explanation of whether the caller of xc_physdev_map_pirq is affected.


Best regards,
Jiqian Chen



v10->v11 changes:
* patch#1: Move the curly braces of "case PHYSDEVOP_pci_device_state_reset" to the next line.
           Delete unnecessary local variables "struct physdev_pci_device *dev".
           Downgrade printk to dprintk.
           Moved struct pci_device_state_reset to the public header file.
           Delete enum pci_device_state_reset_type, and use macro definitions to represent different
           reset types.
           Delete pci_device_state_reset_method, and add switch cases in PHYSDEVOP_pci_device_state_reset
           to handle different reset functions.
           Add reset type as a function parameter for vpci_reset_device_state for possible future use
* patch#2: Delete the judgment of "d==currd", so that we can prevent physdev_(un)map_pirq from being
           executed when domU has no pirq, instead of just preventing self-mapping; and modify the
           description of the commit message accordingly.
* patch#3: Modify the commit message to explain why the gsi of normal devices can work in PVH dom0 and why
           the passthrough device does not work in PVH dom0.
* patch#4: New patch, modification of allocate_pirq function, return the allocated pirq when there is
           already an allocated pirq and the caller has no specific requirements for pirq, and make it
           successful.
* patch#5: Modification on the hypervisor side proposed from patch#5 of v10.
           Add non-zero judgment for other bits of allow_access.
           Delete unnecessary judgment "if ( is_pv_domain(currd) || has_pirq(currd) )".
           Change the error exit path identifier "out" to "gsi_permission_out".
           Use ARRAY_SIZE() instead of open coed.
* patch#6: New patch, modification of xc_physdev_map_pirq to support mapping gsi to an idle pirq.
* patch#7: Patch#4 of v10, directly open "/dev/xen/privcmd" in the function xc_physdev_gsi_from_dev
           instead of adding unnecessary functions to libxencall.
           Change the type of gsi in the structure privcmd_gsi_from_dev from int to u32.
* patch#8: Modification of the tools part of patches#4 and #5 of v10, use privcmd_gsi_from_dev to get
           gsi, and use XEN_DOMCTL_gsi_permission to grant gsi.
           Change the hard-coded 0 to use LIBXL_TOOLSTACK_DOMID.
           Add libxl__arch_hvm_map_gsi to distinguish x86 related implementations.
           Add a list pcidev_pirq_list to record the relationship between sbdf and pirq, which can be
           used to obtain the corresponding pirq when unmap PIRQ.


v9->v10 changes:
* patch#2: Indent the comments above PHYSDEVOP_map_pirq according to the code style.
* patch#3: Modified the description in the commit message, changing "it calls" to "it will need to call",
           indicating that there will be new codes on the kernel side that will call PHYSDEVOP_setup_gsi.
           Also added an explanation of why the interrupt of passthrough device does not work if gsi is not
           registered.
* patch#4: Added define for CONFIG_X86 in tools/libs/light/Makefile to isolate x86 code in libxl_pci.c.
* patch#5: Modified the commit message to further describe the purpose of adding XEN_DOMCTL_gsi_permission.
           Deleted pci_device_set_gsi and called XEN_DOMCTL_gsi_permission directly in pci_add_dm_done.
           Added a check for all zeros in the padding field in XEN_DOMCTL_gsi_permission, and used currd
           instead of current->domain.
           In the function gsi_2_irq, apic_pin_2_gsi_irq was used instead of the original new code, and
           error handling for irq0 was added.
           Deleted the extra spaces in the upper and lower lines of the struct xen_domctl_gsi_permission
           definition.
All patches have modified signatures as follows:
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com> means I am the author.
Signed-off-by: Huang Rui <ray.huang@amd.com> means Rui sent them to upstream firstly.
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com> means I take continue to upstream.


v8->v9 changes:
* patch#1: Move pcidevs_unlock below write_lock, and remove "ASSERT(pcidevs_locked());"
           from vpci_reset_device_state;
           Add pci_device_state_reset_type to distinguish the reset types.
* patch#2: Add a comment above PHYSDEVOP_map_pirq to describe why need this hypercall.
           Change "!is_pv_domain(d)" to "is_hvm_domain(d)", and "map.domid == DOMID_SELF" to
           "d == current->domian".
* patch#3: Remove the check of PHYSDEVOP_setup_gsi, since there is same checke in below.Although their return
           values are different, this difference is acceptable for the sake of code consistency
           if ( !is_hardware_domain(currd) )
		       return -ENOSYS;
           break;
* patch#5: Change the commit message to describe more why we need this new hypercall.
           Add comment above "if ( is_pv_domain(current->domain) || has_pirq(current->domain) )" to explain
           why we need this check.
           Add gsi_2_irq to transform gsi to irq, instead of considering gsi == irq.
           Add explicit padding to struct xen_domctl_gsi_permission.


v7->v8 changes:
* patch#2: Add the domid check(domid == DOMID_SELF) to prevent self map when guest doesn't use pirq.
           That check was missed in the previous version.
* patch#4: Due to changes in the implementation of obtaining gsi in the kernel. Change to add a new function
           to get gsi by passing in the sbdf of pci device.
* patch#5: Remove the parameter "is_gsi", when there exist gsi, in pci_add_dm_done use a new function
           pci_device_set_gsi to do map_pirq and grant permission. That gets more intuitive code logic.


v6->v7 changes:
* patch#4: Due to changes in the implementation of obtaining gsi in the kernel. Change to add a new function
           to get gsi from irq, instead of gsi sysfs.
* patch#5: Fix the issue with variable usage, rc->r.


v5->v6 changes:
* patch#1: Add Reviewed-by Stefano and Stewart. Rebase code and change old function vpci_remove_device,
           vpci_add_handlers to vpci_deassign_device, vpci_assign_device
* patch#2: Add Reviewed-by Stefano
* patch#3: Remove unnecessary "ASSERT(!has_pirq(currd));"
* patch#4: Fix some coding style issues below directory tools
* patch#5: Modified some variable names and code logic to make code easier to be understood, which to use
           gsi by default and be compatible with older kernel versions to continue to use irq


v4->v5 changes:
* patch#1: add pci_lock wrap function vpci_reset_device_state
* patch#2: move the check of self map_pirq to physdev.c, and change to check if the caller has PIRQ flag, and
           just break for PHYSDEVOP_(un)map_pirq in hvm_physdev_op
* patch#3: return -EOPNOTSUPP instead, and use ASSERT(!has_pirq(currd));
* patch#4: is the patch#5 in v4 because patch#5 in v5 has some dependency on it. And add the handling of errno
           and add the Reviewed-by Stefano
* patch#5: is the patch#4 in v4. New implementation to add new hypercall XEN_DOMCTL_gsi_permission to grant gsi


v3->v4 changes:
* patch#1: change the comment of PHYSDEVOP_pci_device_state_reset; move printings behind pcidevs_unlock
* patch#2: add check to prevent PVH self map
* patch#3: new patch, The implementation of adding PHYSDEVOP_setup_gsi for PVH is treated as a separate patch
* patch#4: new patch to solve the map_pirq problem of PVH dom0. use gsi to grant irq permission in
           XEN_DOMCTL_irq_permission.
* patch#5: to be compatible with previous kernel versions, when there is no gsi sysfs, still use irq
v4 link:
https://lore.kernel.org/xen-devel/20240105070920.350113-1-Jiqian.Chen@amd.com/T/#t

v2->v3 changes:
* patch#1: move the content out of pci_reset_device_state and delete pci_reset_device_state; add
           xsm_resource_setup_pci check for PHYSDEVOP_pci_device_state_reset; add description for
		   PHYSDEVOP_pci_device_state_reset;
* patch#2: du to changes in the implementation of the second patch on kernel side(that it will do setup_gsi and
           map_pirq when assigning a device to passthrough), add PHYSDEVOP_setup_gsi for PVH dom0, and we need
		   to support self mapping.
* patch#3: du to changes in the implementation of the second patch on kernel side(that adds a new sysfs for gsi
           instead of a new syscall), so read gsi number from the sysfs of gsi.
v3 link:
https://lore.kernel.org/xen-devel/20231210164009.1551147-1-Jiqian.Chen@amd.com/T/#t

v2 link:
https://lore.kernel.org/xen-devel/20231124104136.3263722-1-Jiqian.Chen@amd.com/T/#t
Below is the description of v2 cover letter:
This series of patches are the v2 of the implementation of passthrough when dom0 is PVH on Xen.
We sent the v1 to upstream before, but the v1 had so many problems and we got lots of suggestions.
I will introduce all issues that these patches try to fix and the differences between v1 and v2.

Issues we encountered:
1. pci_stub failed to write bar for a passthrough device.
Problem: when we run \u201csudo xl pci-assignable-add <sbdf>\u201d to assign a device, pci_stub will call
pcistub_init_device() -> pci_restore_state() -> pci_restore_config_space() ->
pci_restore_config_space_range() -> pci_restore_config_dword() -> pci_write_config_dword()\u201d, the pci config
write will trigger an io interrupt to bar_write() in the xen, but the
bar->enabled was set before, the write is not allowed now, and then when 
bar->Qemu config the
passthrough device in xen_pt_realize(), it gets invalid bar values.

Reason: the reason is that we don't tell vPCI that the device has been reset, so the current cached state in
pdev->vpci is all out of date and is different from the real device state.

Solution: to solve this problem, the first patch of kernel(xen/pci: Add xen_reset_device_state
function) and the fist patch of xen(xen/vpci: Clear all vpci status of device) add a new hypercall to reset the
state stored in vPCI when the state of real device has changed.
Thank Roger for the suggestion of this v2, and it is different from
v1 (https://lore.kernel.org/xen-devel/20230312075455.450187-3-ray.huang@amd.com/), v1 simply allow domU to write
pci bar, it does not comply with the design principles of vPCI.

2. failed to do PHYSDEVOP_map_pirq when dom0 is PVH
Problem: HVM domU will do PHYSDEVOP_map_pirq for a passthrough device by using gsi. See
xen_pt_realize->xc_physdev_map_pirq and pci_add_dm_done->xc_physdev_map_pirq. Then xc_physdev_map_pirq will call
into Xen, but in hvm_physdev_op(), PHYSDEVOP_map_pirq is not allowed.

Reason: In hvm_physdev_op(), the variable "currd" is PVH dom0 and PVH has no X86_EMU_USE_PIRQ flag, it will fail
at has_pirq check.

Solution: I think we may need to allow PHYSDEVOP_map_pirq when "currd" is dom0 (at present dom0 is PVH). The
second patch of xen(x86/pvh: Open PHYSDEVOP_map_pirq for PVH dom0) allow PVH dom0 do PHYSDEVOP_map_pirq. This v2
patch is better than v1, v1 simply remove the has_pirq check
(xen https://lore.kernel.org/xen-devel/20230312075455.450187-4-ray.huang@amd.com/).

3. the gsi of a passthrough device doesn't be unmasked
 3.1 failed to check the permission of pirq
 3.2 the gsi of passthrough device was not registered in PVH dom0

Problem:
3.1 callback function pci_add_dm_done() will be called when qemu config a passthrough device for domU.
This function will call xc_domain_irq_permission()-> pirq_access_permitted() to check if the gsi has corresponding
mappings in dom0. But it didn\u2019t, so failed. See XEN_DOMCTL_irq_permission->pirq_access_permitted, "current"
is PVH dom0 and it return irq is 0.
3.2 it's possible for a gsi (iow: vIO-APIC pin) to never get registered on PVH dom0, because the devices of PVH
are using MSI(-X) interrupts. However, the IO-APIC pin must be configured for it to be able to be mapped into a domU.

Reason: After searching codes, I find "map_pirq" and "register_gsi" will be done in function
vioapic_write_redirent->vioapic_hwdom_map_gsi when the gsi(aka ioapic's pin) is unmasked in PVH dom0.
So the two problems can be concluded to that the gsi of a passthrough device doesn't be unmasked.

Solution: to solve these problems, the second patch of kernel(xen/pvh: Unmask irq for passthrough device in PVH dom0)
call the unmask_irq() when we assign a device to be passthrough. So that passthrough devices can have the mapping of
gsi on PVH dom0 and gsi can be registered. This v2 patch is different from the
v1( kernel https://lore.kernel.org/xen-devel/20230312120157.452859-5-ray.huang@amd.com/,
kernel https://lore.kernel.org/xen-devel/20230312120157.452859-5-ray.huang@amd.com/ and
xen https://lore.kernel.org/xen-devel/20230312075455.450187-5-ray.huang@amd.com/),
v1 performed "map_pirq" and "register_gsi" on all pci devices on PVH dom0, which is unnecessary and may cause
multiple registration.

4. failed to map pirq for gsi
Problem: qemu will call xc_physdev_map_pirq() to map a passthrough device\u2019s gsi to pirq in function
xen_pt_realize(). But failed.

Reason: According to the implement of xc_physdev_map_pirq(), it needs gsi instead of irq, but qemu pass irq to it and
treat irq as gsi, it is got from file /sys/bus/pci/devices/xxxx:xx:xx.x/irq in function xen_host_pci_device_get().
But actually the gsi number is not equal with irq. On PVH dom0, when it allocates irq for a gsi in
function acpi_register_gsi_ioapic(), allocation is dynamic, and follow the principle of applying first, distributing
first. And if you debug the kernel codes(see function __irq_alloc_descs), you will find the irq number is allocated
from small to large by order, but the applying gsi number is not, gsi 38 may come before gsi 28, that causes gsi 38
get a smaller irq number than gsi 28, and then gsi != irq.

Solution: we can record the relation between gsi and irq, then when userspace(qemu) want to use gsi, we can do a
translation. The third patch of kernel(xen/privcmd: Add new syscall to get gsi from irq) records all the relations
in acpi_register_gsi_xen_pvh() when dom0 initialize pci devices, and provide a syscall for userspace to get the gsi
from irq. The third patch of xen(tools: Add new function to get gsi from irq) add a new function
xc_physdev_gsi_from_irq() to call the new syscall added on kernel side.
And then userspace can use that function to get gsi. Then xc_physdev_map_pirq() will success. This v2 patch is the
same as v1( kernel https://lore.kernel.org/xen-devel/20230312120157.452859-6-ray.huang@amd.com/ and
xen https://lore.kernel.org/xen-devel/20230312075455.450187-6-ray.huang@amd.com/)

About the v2 patch of qemu, just change an included head file, other are similar to the
v1 ( qemu https://lore.kernel.org/xen-devel/20230312092244.451465-19-ray.huang@amd.com/), just call
xc_physdev_gsi_from_irq() to get gsi from irq.

Jiqian Chen (7):
  xen/pci: Add hypercall to support reset of pcidev
  x86/pvh: Allow (un)map_pirq when dom0 is PVH
  x86/pvh: Add PHYSDEVOP_setup_gsi for PVH dom0
  x86/domctl: Add hypercall to set the access of x86 gsi
  tools/libxc: Allow gsi be mapped into a free pirq
  tools: Add new function to get gsi from dev
  tools: Add new function to do PIRQ (un)map on PVH dom0

 tools/include/xen-sys/Linux/privcmd.h |   7 ++
 tools/include/xenctrl.h               |   7 ++
 tools/libs/ctrl/xc_domain.c           |  15 ++++
 tools/libs/ctrl/xc_physdev.c          |  37 ++++++++-
 tools/libs/light/libxl_arch.h         |   4 +
 tools/libs/light/libxl_arm.c          |  10 +++
 tools/libs/light/libxl_pci.c          |  17 ++++
 tools/libs/light/libxl_x86.c          | 111 ++++++++++++++++++++++++++
 tools/python/xen/lowlevel/xc/xc.c     |   2 +
 xen/arch/x86/domctl.c                 |  32 ++++++++
 xen/arch/x86/hvm/hypercall.c          |   8 ++
 xen/arch/x86/include/asm/io_apic.h    |   2 +
 xen/arch/x86/io_apic.c                |  17 ++++
 xen/arch/x86/mpparse.c                |   5 +-
 xen/arch/x86/physdev.c                |  12 ++-
 xen/drivers/pci/physdev.c             |  52 ++++++++++++
 xen/drivers/vpci/vpci.c               |  10 +++
 xen/include/public/domctl.h           |   9 +++
 xen/include/public/physdev.h          |  16 ++++
 xen/include/xen/vpci.h                |   8 ++
 xen/xsm/flask/hooks.c                 |   1 +
 21 files changed, 376 insertions(+), 6 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 11:42:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 11:42:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755305.1163650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQmku-000551-Oy; Mon, 08 Jul 2024 11:42:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755305.1163650; Mon, 08 Jul 2024 11:42:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQmku-00054q-LU; Mon, 08 Jul 2024 11:42:04 +0000
Received: by outflank-mailman (input) for mailman id 755305;
 Mon, 08 Jul 2024 11: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=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQmks-00042h-Mj
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 11:42:02 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060e.outbound.protection.outlook.com
 [2a01:111:f400:7e88::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 16c23c5b-3d1f-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 13:42:01 +0200 (CEST)
Received: from BN9PR03CA0789.namprd03.prod.outlook.com (2603:10b6:408:13f::14)
 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.7741.35; Mon, 8 Jul
 2024 11:41:58 +0000
Received: from BN1PEPF00006001.namprd05.prod.outlook.com
 (2603:10b6:408:13f:cafe::2a) by BN9PR03CA0789.outlook.office365.com
 (2603:10b6:408:13f::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36 via Frontend
 Transport; Mon, 8 Jul 2024 11:41:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00006001.mail.protection.outlook.com (10.167.243.233) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Mon, 8 Jul 2024 11:41:58 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 8 Jul
 2024 06:41: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: 16c23c5b-3d1f-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SGE7zOpqxHmjwGlys5GDhICzhIr2DA2J4DJc2hci/AOm4gJxDVsYFMGJx6yrxvsXO6El+duMyMHVkrQPvP14PwRIxZ45bPgyyxYwH+arToz/ENzatgjfLncZALohKqxsuvtrHwEoLeTvU7Ju4OOjJKaxMh3mHjtDRcvZQ3/v85ujJyqZAXeh/munrcdNITgbg7i9BphKv3Mbzuormy/1d/+A9Jz+m0YvpEhTb8vp2oHq3UcJB8JX8BxPXxFlmsHKyv6QKb7XDxF7K2IyRJ0EZL/eIuqBo29Y7M9CodAWSrZZhTcHwE+zheIykIxOaWlu4QRRMNDB5LqXIcmFuQspkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pSlnFw5PGp5VrI5znVnt18TuUunwL5FC7Z7l+VWzRbc=;
 b=J5yDZdxpczM3TVGpbMiloCh/M2YjFS2a7iTSpCTHMyhpjuf5mTjrltl9PgLTJVN75h0xugX+bT8IER48CruXDbvWj4Ttl6ApLU0pQBeyu4YfDKwCFGeZeWKFWDWxGaVz/BoG6gghk6V2NLQlD4FWDyqsMkYrXTGIVryVRqMZihqQlUne/FSahGkNzgdfvMeVjKlQxn+C4/5tj1ltmuEzUr9sdKg7VUhQBEY2nMrKp6ExOUuw8kwPWFt6oVMyD/K0CnUN0UM88s6u42z2+mAtO5ZBOkaGK/gfbwGYNiBrGXcQNRFp8Fuy+lTpFB1T836kLgsIp3u91LRqtAtiMLVAZg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pSlnFw5PGp5VrI5znVnt18TuUunwL5FC7Z7l+VWzRbc=;
 b=JXbAODFk9PBfo3mGmJIA6B2WMww6qLzFVbyX870mfAUiFDRnawcZqNvhF6301KsUWdtVHJ/UUVwGi3wTpn2Q/pmwMNSiLR0HjmlL/hsUdpLMK7l2Ovm3uq5KVqxf5On5+5/m+wE5up+0nXHo0TC+NxZbAMGahAI//uDqXWd9+HI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap
	<gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Juergen
 Gross" <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [XEN PATCH v12 4/7] x86/domctl: Add hypercall to set the access of x86 gsi
Date: Mon, 8 Jul 2024 19:41:21 +0800
Message-ID: <20240708114124.407797-5-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20240708114124.407797-1-Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@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: BN1PEPF00006001:EE_|SA0PR12MB7461:EE_
X-MS-Office365-Filtering-Correlation-Id: 793dcf44-a83e-4a90-5516-08dc9f42f96f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|7416014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?pJ/cj7MV7QGrSXCQdXTvUI2+1k4rZ9HyUma+k7lNs1yeRQP/7Bjy6bsLxZgy?=
 =?us-ascii?Q?qlAtj7QFkmOdT/KOXhvzEFygzG5vIWxb+Qhq0rC5BxouRoLl5l0RAnh38DfZ?=
 =?us-ascii?Q?QJhej/LUQxwm3q54KDD1tlzfp3wRE0EKwijbj7InP6HPlsEy1eC2mW1epZ5v?=
 =?us-ascii?Q?D8NIduX9R5D4//qWrtTvCLkcZKPVur5VUB7Gio9+GfJ+0dGw4dUAAYPk1CF/?=
 =?us-ascii?Q?u0++bg57OfCTR1O8a5+iXZttthn7y9Uk4oix1LWKDvzOisl9wvNDzskcz+xX?=
 =?us-ascii?Q?SST/8vH8S6t+c8u4Ttprhjf72tXj+rftVo1LG6OYCprHp/GMKBLWk/pG6SC2?=
 =?us-ascii?Q?5rG68pGGAiKMNBUSfkwYaAYb5RPjTsiAEoKQ7JACsG45hoE0GqeIZDjfjFOc?=
 =?us-ascii?Q?U3Ns46PnhF17fy0sp8i1nOnL2OMw6Ece69X56OK3f9vvFt/XTb67inkyQ0L0?=
 =?us-ascii?Q?AgqpKNxviKMQe7+lvOGwy8faiShz1yMMIsX6lPIZuPIPDfeyYhm3FJUHsjME?=
 =?us-ascii?Q?kBTn2fPctLqBq+tLqU3bkh4+3Xo5Y9XkR80Lm0mYJHvY257/3096esM89ZR4?=
 =?us-ascii?Q?vRF1Tl6pRmVVuuUT2yiAlk2hE5Gcs9gvfSFukrATqHYrkybmoXNhj5VsCWpU?=
 =?us-ascii?Q?1K4iktBl7Ba/aCGDk7mlcpRoaxgrB48Hh06lyK3/CikMpE31LJ+eowP7GfJW?=
 =?us-ascii?Q?Sx3Kjkx1qHqupjiIP1RrHPIsJLr5G8ezGxY0p5oL8Q7wcCP88zudHKhU7nZ7?=
 =?us-ascii?Q?DrjUCxCtiHiPjQ+AI8tfzLIY56P0jYehBiUOphkUFX4eq989H0oDnJ1A4SB6?=
 =?us-ascii?Q?0E/KKHtlxxoB4ewGi/FTkIShvENRCwrAuHlZ7XuAFn03SL0NUrCvUkvx1zHz?=
 =?us-ascii?Q?0u29R6phDIjxwqmmUKWN22VYHS9AFcB2UsN670wKij/i40dcoGznyFRQoUGV?=
 =?us-ascii?Q?nwIwsWKvgyemZ9JJv5ZVmDW96mGbS86y7SDEPT+9hLPdLH1CaqdT+pkARfN6?=
 =?us-ascii?Q?TEgQKfSYEUQfH9wyULCz0Iz1b7O/IAOxd6AQ7HPcFxYE8ByT74HwGChveMlE?=
 =?us-ascii?Q?j1dH/OB0sCG1O2nLhuKtuNGdu3EnEQUJfxeLKB7pWNS4CT54xK+I8l70S31m?=
 =?us-ascii?Q?SIWFi5i7OPADOCMX9OtujASX93MFM/lWNG4RTjHVglZdlV9We7lhmREhCIxK?=
 =?us-ascii?Q?htEIFaj8cI6WjNFu/ILHgvvksMYQp/oOIdZppHlfd8tcj9XafSZsZgTph9lA?=
 =?us-ascii?Q?4xItpQCgz800Gq4v5H/7luO4OJdjferE4JdXUgLIB449XBOfP51hSscvsH1u?=
 =?us-ascii?Q?C5OZBFN1WgPA3i4xGaMO+SLl58/+PKK0xgTvvZ9nTKWYZTQsQRUZVBfo0kWI?=
 =?us-ascii?Q?Yr8XeghjUGkQ62p7bmH6g4Gsvvhe2Rsx/WJhp0rsbxqM3j2IpGPqYR6J6JZd?=
 =?us-ascii?Q?zXbGfqwOisG+++8kpl9Vfx62roOiGpd+?=
X-Forefront-Antispam-Report:
	CIP:165.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)(7416014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2024 11:41:58.0623
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 793dcf44-a83e-4a90-5516-08dc9f42f96f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00006001.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7461

Some type of domains don't have PIRQs, like PVH, it doesn't do
PHYSDEVOP_map_pirq for each gsi. When passthrough a device
to guest base on PVH dom0, callstack
pci_add_dm_done->XEN_DOMCTL_irq_permission will fail at function
domain_pirq_to_irq, because PVH has no mapping of gsi, pirq and
irq on Xen side.
What's more, current hypercall XEN_DOMCTL_irq_permission requires
passing in pirq to set the access of irq, it is not suitable for
dom0 that doesn't have PIRQs.

So, add a new hypercall XEN_DOMCTL_gsi_permission to grant/deny
the permission of irq(translate from x86 gsi) to dumU when dom0
has no PIRQs.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
CC: Daniel P . Smith <dpsmith@apertussolutions.com>
Remaining comment @Daniel P . Smith:
+        ret = -EPERM;
+        if ( !irq_access_permitted(currd, irq) ||
+             xsm_irq_permission(XSM_HOOK, d, irq, access_flag) )
+            goto gsi_permission_out;
Is it okay to issue the XSM check using the translated value, 
not the one that was originally passed into the hypercall?
---
 xen/arch/x86/domctl.c              | 32 ++++++++++++++++++++++++++++++
 xen/arch/x86/include/asm/io_apic.h |  2 ++
 xen/arch/x86/io_apic.c             | 17 ++++++++++++++++
 xen/arch/x86/mpparse.c             |  5 ++---
 xen/include/public/domctl.h        |  9 +++++++++
 xen/xsm/flask/hooks.c              |  1 +
 6 files changed, 63 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 9190e11faaa3..4e9e4c4cfed3 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -36,6 +36,7 @@
 #include <asm/xstate.h>
 #include <asm/psr.h>
 #include <asm/cpu-policy.h>
+#include <asm/io_apic.h>
 
 static int update_domain_cpu_policy(struct domain *d,
                                     xen_domctl_cpu_policy_t *xdpc)
@@ -237,6 +238,37 @@ long arch_do_domctl(
         break;
     }
 
+    case XEN_DOMCTL_gsi_permission:
+    {
+        int irq;
+        unsigned int gsi = domctl->u.gsi_permission.gsi;
+        uint8_t access_flag = domctl->u.gsi_permission.access_flag;
+
+        /* Check all bits and pads are zero except lowest bit */
+        ret = -EINVAL;
+        if ( access_flag & ( ~XEN_DOMCTL_GSI_PERMISSION_MASK ) )
+            goto gsi_permission_out;
+        for ( i = 0; i < ARRAY_SIZE(domctl->u.gsi_permission.pad); ++i )
+            if ( domctl->u.gsi_permission.pad[i] )
+                goto gsi_permission_out;
+
+        if ( gsi > highest_gsi() || (irq = gsi_2_irq(gsi)) <= 0 )
+            goto gsi_permission_out;
+
+        ret = -EPERM;
+        if ( !irq_access_permitted(currd, irq) ||
+             xsm_irq_permission(XSM_HOOK, d, irq, access_flag) )
+            goto gsi_permission_out;
+
+        if ( access_flag )
+            ret = irq_permit_access(d, irq);
+        else
+            ret = irq_deny_access(d, irq);
+
+    gsi_permission_out:
+        break;
+    }
+
     case XEN_DOMCTL_getpageframeinfo3:
     {
         unsigned int num = domctl->u.getpageframeinfo3.num;
diff --git a/xen/arch/x86/include/asm/io_apic.h b/xen/arch/x86/include/asm/io_apic.h
index 78268ea8f666..7e86d8337758 100644
--- a/xen/arch/x86/include/asm/io_apic.h
+++ b/xen/arch/x86/include/asm/io_apic.h
@@ -213,5 +213,7 @@ unsigned highest_gsi(void);
 
 int ioapic_guest_read( unsigned long physbase, unsigned int reg, u32 *pval);
 int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val);
+int mp_find_ioapic(int gsi);
+int gsi_2_irq(int gsi);
 
 #endif
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index d2a313c4ac72..5968c8055671 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -955,6 +955,23 @@ static int pin_2_irq(int idx, int apic, int pin)
     return irq;
 }
 
+int gsi_2_irq(int gsi)
+{
+    int ioapic, pin, irq;
+
+    ioapic = mp_find_ioapic(gsi);
+    if ( ioapic < 0 )
+        return -EINVAL;
+
+    pin = gsi - io_apic_gsi_base(ioapic);
+
+    irq = apic_pin_2_gsi_irq(ioapic, pin);
+    if ( irq <= 0 )
+        return -EINVAL;
+
+    return irq;
+}
+
 static inline int IO_APIC_irq_trigger(int irq)
 {
     int apic, idx, pin;
diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c
index d8ccab2449c6..7786a3337760 100644
--- a/xen/arch/x86/mpparse.c
+++ b/xen/arch/x86/mpparse.c
@@ -841,8 +841,7 @@ static struct mp_ioapic_routing {
 } mp_ioapic_routing[MAX_IO_APICS];
 
 
-static int mp_find_ioapic (
-	int			gsi)
+int mp_find_ioapic(int gsi)
 {
 	unsigned int		i;
 
@@ -914,7 +913,7 @@ void __init mp_register_ioapic (
 	return;
 }
 
-unsigned __init highest_gsi(void)
+unsigned highest_gsi(void)
 {
 	unsigned x, res = 0;
 	for (x = 0; x < nr_ioapics; x++)
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 2a49fe46ce25..877e35ab1376 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -464,6 +464,13 @@ struct xen_domctl_irq_permission {
     uint8_t pad[3];
 };
 
+/* XEN_DOMCTL_gsi_permission */
+struct xen_domctl_gsi_permission {
+    uint32_t gsi;
+#define XEN_DOMCTL_GSI_PERMISSION_MASK 1
+    uint8_t access_flag;    /* flag to specify enable/disable of x86 gsi access */
+    uint8_t pad[3];
+};
 
 /* XEN_DOMCTL_iomem_permission */
 struct xen_domctl_iomem_permission {
@@ -1306,6 +1313,7 @@ struct xen_domctl {
 #define XEN_DOMCTL_get_paging_mempool_size       85
 #define XEN_DOMCTL_set_paging_mempool_size       86
 #define XEN_DOMCTL_dt_overlay                    87
+#define XEN_DOMCTL_gsi_permission                88
 #define XEN_DOMCTL_gdbsx_guestmemio            1000
 #define XEN_DOMCTL_gdbsx_pausevcpu             1001
 #define XEN_DOMCTL_gdbsx_unpausevcpu           1002
@@ -1328,6 +1336,7 @@ struct xen_domctl {
         struct xen_domctl_setdomainhandle   setdomainhandle;
         struct xen_domctl_setdebugging      setdebugging;
         struct xen_domctl_irq_permission    irq_permission;
+        struct xen_domctl_gsi_permission    gsi_permission;
         struct xen_domctl_iomem_permission  iomem_permission;
         struct xen_domctl_ioport_permission ioport_permission;
         struct xen_domctl_hypercall_init    hypercall_init;
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 5e88c71b8e22..a5b134c91101 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -685,6 +685,7 @@ static int cf_check flask_domctl(struct domain *d, int cmd)
     case XEN_DOMCTL_shadow_op:
     case XEN_DOMCTL_ioport_permission:
     case XEN_DOMCTL_ioport_mapping:
+    case XEN_DOMCTL_gsi_permission:
 #endif
 #ifdef CONFIG_HAS_PASSTHROUGH
     /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 11:42:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 11:42:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755306.1163660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQmkz-0005Qk-3f; Mon, 08 Jul 2024 11:42:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755306.1163660; Mon, 08 Jul 2024 11: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 1sQmkz-0005Qb-0J; Mon, 08 Jul 2024 11:42:09 +0000
Received: by outflank-mailman (input) for mailman id 755306;
 Mon, 08 Jul 2024 11:42:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQmkx-00042n-R1
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 11:42:07 +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 199b86e5-3d1f-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 13:42:06 +0200 (CEST)
Received: from BN0PR04CA0012.namprd04.prod.outlook.com (2603:10b6:408:ee::17)
 by IA1PR12MB6625.namprd12.prod.outlook.com (2603:10b6:208:3a3::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Mon, 8 Jul
 2024 11:42:01 +0000
Received: from BN1PEPF00006002.namprd05.prod.outlook.com
 (2603:10b6:408:ee:cafe::24) by BN0PR04CA0012.outlook.office365.com
 (2603:10b6:408:ee::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36 via Frontend
 Transport; Mon, 8 Jul 2024 11:42:01 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00006002.mail.protection.outlook.com (10.167.243.234) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Mon, 8 Jul 2024 11:42:01 +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, 8 Jul
 2024 06:41: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: 199b86e5-3d1f-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=c4B1XBl+lTO8+doz6ICL12nryJCgEppYPLFLiMCdUcYg+i6rcH4gPLjs0bJZp83GcIywOz4QhaPS6kEtVEQ4QkNJ89Tr//6JfcaOv4ixJZekD+5YUfZo8g8qJERDgJxXQt1yTIr3wr6Jy0ipXH/WqTOkF476WBN6Rs2WGN7SAsp6k94QBWg+KQ286CXZOJCmocodO+2dbc9mv4lZ2aGvkUvtUMEN3UVv4cbuzroYo05Ga1PjWc2EzcE9VXkOkO/KOslEwDmxtq/9nVGJwgT/NSjZbPhMN29XkistEsoGnj3zxOQfSQKztwMb9JqlCzG+m37T+Z83PTF0yxcoVdsg+Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iSUMECa+KJwIDIvEDAv8tiYigyciwYLZAvCuoQwKiN4=;
 b=e3eWwaYEPAGOwwSvTXPPDca7MrMSEmAC9Qh7nsxHGH8Rgdq2EoBNRTeSGdn944OBrI5wwC6NIpmoO5OfI9VqFTTQGtDzzJaWHKYfHSqr7pCGSY7SmWAx9FjwM4LGZ8JlH5/n29XTA/C8k5JcZMryonTJtyI5XYKEBTAVYzJBWRU1pAjvYacLtdQl79KuZ+U7BPF6eB3XffkU+mzvQQvtsepMWSO4+omIRB81aFCrFy+TRxQS/NrbKlOzC1v/c1zsdqfxQQ/YwGxTi4uy23GJhkdLYkDm/r3Fo9+eyoVxpoYsImKba9j/cG30JNuJTZe0ndNM6MOgxNbqsjW6AthNvw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iSUMECa+KJwIDIvEDAv8tiYigyciwYLZAvCuoQwKiN4=;
 b=3jAkEQvqG3tkxsEC210/MedWfZMJCadvdalzPK8zjNk5CdJFZJNWbU+24ajIfOnSso3fCQmVOE1sUBiKBqdUnq8rrl2rplYeMr9BresgH1LSATpdUn/mo5EzQFmpqfJyNarfzddEB+ZQcWcPud4ZzRMXgQ2WV5efmQkWiXCAHUk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap
	<gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Juergen
 Gross" <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [XEN PATCH v12 5/7] tools/libxc: Allow gsi be mapped into a free pirq
Date: Mon, 8 Jul 2024 19:41:22 +0800
Message-ID: <20240708114124.407797-6-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20240708114124.407797-1-Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@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: BN1PEPF00006002:EE_|IA1PR12MB6625:EE_
X-MS-Office365-Filtering-Correlation-Id: 6f27321d-6750-4afe-4137-08dc9f42fb8d
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:
	=?us-ascii?Q?NTuSCTQpmqvM2TR0b9BM1YozPKeQPGIBcJfs1iaTVytLksCTo35odu5b1Q2/?=
 =?us-ascii?Q?tM2Nn1hRjhWy9mUJdyr5VVAzfjmDEyAwYPeL4dcHDsdRszVN5d3CJyilOOaW?=
 =?us-ascii?Q?LMrTMtps9yNl4dGS7EIxb8me2h3LePVucyJP5ja8Wn8YRJnvnJT/VcVJ6qMK?=
 =?us-ascii?Q?Zo/P3YqWTzfAcTh4w6kj86PU5ikFI7aeUjes6DyUbo+VW52CoBoQL1CbatDL?=
 =?us-ascii?Q?5HjJxDG1fseiVjnVpQyFqkiIqbez1EztoVTYkJ/A+N9T8IVHOQ9Uz5w8Dj0x?=
 =?us-ascii?Q?1W3S97TqPXDorjEbhdbzSFBmQD9f9VglimTnweZLiEyeqtI1fcxQm1kDje2d?=
 =?us-ascii?Q?VmMhWHxYZ0qy0WYBrNh/VFSuKhUcJknxgd1iytZTxXPdHOFE1zwQVcIHzVue?=
 =?us-ascii?Q?tWUr9QW7JfErTA4xOU+85BwPtX1B/AnU3YvUljCL8/Ns9t2mEyDh0fkrQNRN?=
 =?us-ascii?Q?qGthoCaXvMcHkP6218Xa2YqTRw8g0Reo6d0fi9rNsFESeKwtwfyUPl4p2aqc?=
 =?us-ascii?Q?oZ9SdD0ru+xf47BTl4lKcYbkijuOZ7SmIoTm3ojtv7G8aMmbxr2jMrS4r72T?=
 =?us-ascii?Q?zsraY01iTYY2Dm67Hybx58S8WIegW0Bk7pVJZ+S236O3eCdadXdqk2ISuNmW?=
 =?us-ascii?Q?DffR1TtWlmPNUxueNtbhmWN2FkAD0HuG/k6edI8+t26Jw00IJuLnyPC5Aluk?=
 =?us-ascii?Q?8DjrdZ+7NrRk7/JyZbxz0YWcfwQ0A1BRFz2QDx45cxUopzZLAwO+BMtKf7Gu?=
 =?us-ascii?Q?AaNIG30qcLZ9bB0Ic4PooN7JnMbIQmKUVz4ROnmJLHVYkwWP25dKcZlpLZtl?=
 =?us-ascii?Q?QVv99vs+P30hzYcA5VfTcEciKFOC+NnbqxevlpH5Jrf6V3PLQm1H1sUXUL5W?=
 =?us-ascii?Q?k/vQgsisw09zoM7Y5edRj9dfqgWvVkRmKqoL6T6Gpitd9GVjxT/v1uUb5LFG?=
 =?us-ascii?Q?LjsEPJjOvGO0e9m2NQ/vc2oVsCnNFbIXfcy6LnLXbU4260HOoKiAsyMPVwA3?=
 =?us-ascii?Q?I8Mxrj8TvAqtillDYUIefCx0c0E7tcQ7GnbJn5FK2DuBSCCILnmSjYbMe+1t?=
 =?us-ascii?Q?TiIGYLwo8j6QmHFyaSb/hVSqInVVXrpNRSv5SZkLDLolLBQBszqKJykISyl5?=
 =?us-ascii?Q?XCIGqnQ+P1jPW50S9A42GHFStgYVFV4hblg+u9Hz/L7HCzUN7o5ouYmygZ6i?=
 =?us-ascii?Q?GNPxYLCvNUEWrx4kr6RgDmC5Y+lccMRb3xipN8tFgysQJAlImD0ZoPNEnL8g?=
 =?us-ascii?Q?/2e0pziL7Grc8XD13LF/RzokgjTYwMydAbPamAbOliKpeqAZB8UXOrUcZHQJ?=
 =?us-ascii?Q?I+lZqhWYcPpNpvj6UBWYUNn1nnLAEUxe4qnO7DiZ1vs2g6gN1YQoT76Q3/tw?=
 =?us-ascii?Q?BcZgMD5Ikz13SihDBu/0SI+hJXTqkGD3N4qpAsYwTPBK4nnyUcvpAH+XaUfv?=
 =?us-ascii?Q?4atB7r3uAu0rzjwcaLYqqF94RSxo5bcV?=
X-Forefront-Antispam-Report:
	CIP:165.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);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2024 11:42:01.6139
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6f27321d-6750-4afe-4137-08dc9f42fb8d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00006002.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6625

Hypercall PHYSDEVOP_map_pirq support to map a gsi into a specific
pirq or a free pirq, it depends on the parameter pirq(>0 or <0).
But in current xc_physdev_map_pirq, it set *pirq=index when
parameter pirq is <0, it causes to force all cases to be mapped
to a specific pirq. That has some problems, one is caller can't
get a free pirq value, another is that once the pecific pirq was
already mapped to other gsi, then it will fail.

So, change xc_physdev_map_pirq to allow to pass negative parameter
in and then get a free pirq.

There are four caller of xc_physdev_map_pirq in original codes, so
clarify the affect below(just need to clarify the pirq<0 case):

First, pci_add_dm_done->xc_physdev_map_pirq, it pass irq to pirq
parameter, if pirq<0 means irq<0, then it will fail at check
"index < 0" in allocate_and_map_gsi_pirq and get EINVAL, logic is
the same as original code.

Second, domcreate_launch_dm->libxl__arch_domain_map_irq->
xc_physdev_map_pirq, the passed pirq is always >=0, so no affect.

Third, pyxc_physdev_map_pirq->xc_physdev_map_pirq, not sure, so add
the check logic into pyxc_physdev_map_pirq to keep the same behavior.

Fourth, xen_pt_realize->xc_physdev_map_pirq, it wants to allocate a
pirq for gsi, but it isn't necessary to get pirq whose value is equal
with the value of gsi. After this patch, it will get a free pirq, and
it also can work.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 tools/libs/ctrl/xc_physdev.c      | 2 +-
 tools/python/xen/lowlevel/xc/xc.c | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/libs/ctrl/xc_physdev.c b/tools/libs/ctrl/xc_physdev.c
index 460a8e779ce8..e9fcd755fa62 100644
--- a/tools/libs/ctrl/xc_physdev.c
+++ b/tools/libs/ctrl/xc_physdev.c
@@ -50,7 +50,7 @@ int xc_physdev_map_pirq(xc_interface *xch,
     map.domid = domid;
     map.type = MAP_PIRQ_TYPE_GSI;
     map.index = index;
-    map.pirq = *pirq < 0 ? index : *pirq;
+    map.pirq = *pirq;
 
     rc = do_physdev_op(xch, PHYSDEVOP_map_pirq, &map, sizeof(map));
 
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index 9feb12ae2b16..f8c9db7115ee 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -774,6 +774,8 @@ static PyObject *pyxc_physdev_map_pirq(PyObject *self,
     if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iii", kwd_list,
                                       &dom, &index, &pirq) )
         return NULL;
+    if ( pirq < 0 )
+        pirq = index;
     ret = xc_physdev_map_pirq(xc->xc_handle, dom, index, &pirq);
     if ( ret != 0 )
           return pyxc_error_to_exception(xc->xc_handle);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 11:42:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 11:42:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755308.1163669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQml3-0005pD-C6; Mon, 08 Jul 2024 11:42:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755308.1163669; Mon, 08 Jul 2024 11: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 1sQml3-0005p1-94; Mon, 08 Jul 2024 11:42:13 +0000
Received: by outflank-mailman (input) for mailman id 755308;
 Mon, 08 Jul 2024 11:42: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=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQml1-00042n-V6
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 11:42:11 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on2062d.outbound.protection.outlook.com
 [2a01:111:f400:7ea9::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1bb61ed9-3d1f-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 13:42:10 +0200 (CEST)
Received: from BN0PR04CA0011.namprd04.prod.outlook.com (2603:10b6:408:ee::16)
 by LV8PR12MB9407.namprd12.prod.outlook.com (2603:10b6:408:1f9::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Mon, 8 Jul
 2024 11:42:05 +0000
Received: from BN1PEPF00006002.namprd05.prod.outlook.com
 (2603:10b6:408:ee:cafe::f0) by BN0PR04CA0011.outlook.office365.com
 (2603:10b6:408:ee::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36 via Frontend
 Transport; Mon, 8 Jul 2024 11:42:05 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00006002.mail.protection.outlook.com (10.167.243.234) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Mon, 8 Jul 2024 11:42:05 +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, 8 Jul
 2024 06:42: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: 1bb61ed9-3d1f-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DclRDhOpTFS7Fdf8VKHRCvLd+3s5L4NbP9FI3rypdDdxc/Dx3GNXuh6kifA/sJC8m5nZsJ4zkl7UKVuMP7j/f5hs21OyX7iIkDPjPFiaUhjmKI5dspMKTDXFS6zu20aCW1iBFIw7EwcNEGS6X8SfL2aqN/mwGad1rNo/kbVeHzpOLxlj/9BXa7PhSeMM21czC2tU+PB/Xp21ShJ1WUTc61Ke0TLqLkkEPgKK7atsfxIVr94xdsVPSDlvhRoWnr1d84PR1jaS3pohgGpo6DHJqZ73QWfn6sYSeAJWUKZNa9A9j90aQ9iKGqSskgysHTE+BxHKqwFDXnnrkkpX8x90ng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yo1KApXtMVEKsU/lZ7Ft3m3DQ4K3qbtV00FVwm1Ugf8=;
 b=EzX5az+ptmd3tsFByfzROAPaMztZYIKdj3HARl/p0dqfN7abINo0PjxQLzoruLrkrpxoKUSh4GPmjAPINja7rRjiXsZuQt/d24feKKCRRvF78wzGjsAuDdqLQJte/HpZ+caQKUtnVloTi2tjW4GzoNNwFoNA7zCCRoX1zFN5I9lME09+hyubu4GOk79skXdN3YOX+37UvboaZ/ZYLGr03sgBUAS2VEr/jSokTD+6KKj1Wxn/nuVz4iTqHy2/f9/s63Xar8OBhlHe/f/FpVPIwW06IZSTTfJLFGTsvTDcQWT0gm1aKBBx7FQjaCk+xV5Q0Fv8cJycwwj3AejdvFUATQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yo1KApXtMVEKsU/lZ7Ft3m3DQ4K3qbtV00FVwm1Ugf8=;
 b=gSq6+Yo7xO/kLTVb6S8jaYTQQ9cpsJ/6/HtjiLH8LUZ3gYumrtJgXoqizZvA9OaNoAPPCDfPh5kqvRoAbngn14mGVzpUNcNUu0cCGRBmfOu/NG1J6LIoWRcLUsXKADexfA957ZZSnQc55KFsb/zeJ291lcI0vE4B1ZaHyYeHwC0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap
	<gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Juergen
 Gross" <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [RFC XEN PATCH v12 6/7] tools: Add new function to get gsi from dev
Date: Mon, 8 Jul 2024 19:41:23 +0800
Message-ID: <20240708114124.407797-7-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20240708114124.407797-1-Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@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: BN1PEPF00006002:EE_|LV8PR12MB9407:EE_
X-MS-Office365-Filtering-Correlation-Id: 2b4bf36d-18ca-480a-02ad-08dc9f42fd95
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|7416014|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?yMBnDU4A0ylO69dXzDF/3RlmlfgprKt1LyDFY5MoWOuxP28uezYC0m0k5en8?=
 =?us-ascii?Q?wMyEXVTYT3PLjnixmRLp/1otf9zaAQZdEpByNr2T68uMBQN00X8XBsIrRHXj?=
 =?us-ascii?Q?WDWWOXaTPJ6WT7O8JLuKTOgVgIkmnXvYnwVfnNqANxQtAua8qRrw78o3NTsM?=
 =?us-ascii?Q?Lpm9okBOBsddJHL+tHeuFVsBWOsn6pQllTc1iMvuZqg4ObYeSVC1sAXQzlkK?=
 =?us-ascii?Q?ZnGaxyUwaiJwR6z4dbDqKOu5Bcdu/GemqCz5t/G9pOYZbzqRORQa0MBbWd4w?=
 =?us-ascii?Q?ittgECKUzLK1mOzJ8zHWI/4KsftLK9Hs+IR4kcdLKXCHsNx9c9hdSJDouPYv?=
 =?us-ascii?Q?6zsBzYKxKwNsOeIyPr1lNUITPfusjrg6J1aZrjwmsucGZCXfZBq7amPFtdWj?=
 =?us-ascii?Q?9bNuu7WXbKK9F/SthprtBy78KmayxqClr+toJ84FOigeixeUolKmfX+dI2jF?=
 =?us-ascii?Q?ZDTW4eIbx5yVF7zlMoOTrFewO1LdVodOXVHS4WObwW0p8+KtKnkMWTlioCwr?=
 =?us-ascii?Q?WNiUVP74l1VMgQjON3pbdcCLfZiKv2HNhkRNBIdu3M6BldAEVQOs/IGFlA2z?=
 =?us-ascii?Q?CCwubvcv+iTlSqY44iSUXEb8PYWSAY0KnZU84nkktdvUgkG0XUZw3ozoQoVK?=
 =?us-ascii?Q?A0mr+QfOPjynfXM6Hqecl6s4YQB9V12mehmRFtr5daQF+IY6L2qPvXoLZ5wy?=
 =?us-ascii?Q?BZqRmC6Sq8Istz2JKQVsl/W7QIgzY/Y1llEWRxXoTOEUIWJJL47FmJYo/dcZ?=
 =?us-ascii?Q?rGAhTmuP56JRNX85thLHoMiZTKT26QM5M72oV2OMLZ7+3+Xz09+r36lTHhmU?=
 =?us-ascii?Q?LUn6jynU0Ki+8p7HAuSknAPWsI8Yo+aUbdDYUzrk5AyOe839sS4jkMTYBAHa?=
 =?us-ascii?Q?iD6suVlZsifoNT8moofWv6ebMFkbIubn+ot+SzAYFFACSTKwtF3NMM2PBuVh?=
 =?us-ascii?Q?SnfuOQTCpxqOawJXUWh8iHb012dthRo8E2L08t1zcGS+hQE9PuQVXzpctN5k?=
 =?us-ascii?Q?CBmoYTyLhfe3RkjUIE1bMdq748l1AuINqZ8TtSetxgndkgtIguUPeArKBjlh?=
 =?us-ascii?Q?pMyz/lmG0uOPrF7GRa5Og6718EPLquGghZgtwUfIfkz0BF0tFz8MsgmWAASq?=
 =?us-ascii?Q?nI7twFfNa8igiTkk9KTsCkT84GvydLz5cU6JXzQqeF9x3s/fMyKlyLw7W5es?=
 =?us-ascii?Q?VnJTbj4Yvvupljtjq9IPy/6UoOQn3YQmIq5e+plb3weQwU03mVm1Q1vOs6uK?=
 =?us-ascii?Q?gpmlKKWyifzlN+umbPZgRKNkwyQRtzwuDn+qmmHI+Mfb14g+rsmN+Z0KPeQ/?=
 =?us-ascii?Q?2g/uszBjpVmuOKFgWuyO54HE/Fm19OcY5HP00j1/iDTIdvK5b2eLVUdOTxyM?=
 =?us-ascii?Q?WMPvdrFGfj3MMO26imRahY3l/Jm+A97U19z1B6qRW/EVLq3knA=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)(7416014)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2024 11:42:05.0201
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2b4bf36d-18ca-480a-02ad-08dc9f42fd95
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00006002.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9407

When passthrough a device to domU, QEMU and xl tools use its gsi
number to do pirq mapping, see QEMU code
xen_pt_realize->xc_physdev_map_pirq, and xl code
pci_add_dm_done->xc_physdev_map_pirq, but the gsi number is got
from file /sys/bus/pci/devices/<sbdf>/irq, that is wrong, because
irq is not equal with gsi, they are in different spaces, so pirq
mapping fails.

And in current codes, there is no method to get gsi for userspace.
For above purpose, add new function to get gsi, and the
corresponding ioctl is implemented on linux kernel side.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Chen Jiqian <Jiqian.Chen@amd.com>
---
RFC: it needs to wait for the corresponding third patch on linux kernel side to be merged.
https://lore.kernel.org/xen-devel/20240607075109.126277-4-Jiqian.Chen@amd.com/
This patch must be merged after the patch on linux kernel side

CC: Anthony PERARD <anthony@xenproject.org>
Remaining comment @Anthony PERARD:
Do I need to make " opening of /dev/xen/privcmd " as a single function, then use it in this
patch and other libraries?
---
 tools/include/xen-sys/Linux/privcmd.h |  7 ++++++
 tools/include/xenctrl.h               |  2 ++
 tools/libs/ctrl/xc_physdev.c          | 35 +++++++++++++++++++++++++++
 3 files changed, 44 insertions(+)

diff --git a/tools/include/xen-sys/Linux/privcmd.h b/tools/include/xen-sys/Linux/privcmd.h
index bc60e8fd55eb..4cf719102116 100644
--- a/tools/include/xen-sys/Linux/privcmd.h
+++ b/tools/include/xen-sys/Linux/privcmd.h
@@ -95,6 +95,11 @@ typedef struct privcmd_mmap_resource {
 	__u64 addr;
 } privcmd_mmap_resource_t;
 
+typedef struct privcmd_gsi_from_pcidev {
+	__u32 sbdf;
+	__u32 gsi;
+} privcmd_gsi_from_pcidev_t;
+
 /*
  * @cmd: IOCTL_PRIVCMD_HYPERCALL
  * @arg: &privcmd_hypercall_t
@@ -114,6 +119,8 @@ typedef struct privcmd_mmap_resource {
 	_IOC(_IOC_NONE, 'P', 6, sizeof(domid_t))
 #define IOCTL_PRIVCMD_MMAP_RESOURCE				\
 	_IOC(_IOC_NONE, 'P', 7, sizeof(privcmd_mmap_resource_t))
+#define IOCTL_PRIVCMD_GSI_FROM_PCIDEV				\
+	_IOC(_IOC_NONE, 'P', 10, sizeof(privcmd_gsi_from_pcidev_t))
 #define IOCTL_PRIVCMD_UNIMPLEMENTED				\
 	_IOC(_IOC_NONE, 'P', 0xFF, 0)
 
diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 9ceca0cffc2f..3720e22b399a 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -1641,6 +1641,8 @@ int xc_physdev_unmap_pirq(xc_interface *xch,
                           uint32_t domid,
                           int pirq);
 
+int xc_physdev_gsi_from_pcidev(xc_interface *xch, uint32_t sbdf);
+
 /*
  *  LOGGING AND ERROR REPORTING
  */
diff --git a/tools/libs/ctrl/xc_physdev.c b/tools/libs/ctrl/xc_physdev.c
index e9fcd755fa62..54edb0f3c0dc 100644
--- a/tools/libs/ctrl/xc_physdev.c
+++ b/tools/libs/ctrl/xc_physdev.c
@@ -111,3 +111,38 @@ int xc_physdev_unmap_pirq(xc_interface *xch,
     return rc;
 }
 
+int xc_physdev_gsi_from_pcidev(xc_interface *xch, uint32_t sbdf)
+{
+    int rc = -1;
+
+#if defined(__linux__)
+    int fd;
+    privcmd_gsi_from_pcidev_t dev_gsi = {
+        .sbdf = sbdf,
+        .gsi = 0,
+    };
+
+    fd = open("/dev/xen/privcmd", O_RDWR);
+
+    if (fd < 0 && (errno == ENOENT || errno == ENXIO || errno == ENODEV)) {
+        /* Fallback to /proc/xen/privcmd */
+        fd = open("/proc/xen/privcmd", O_RDWR);
+    }
+
+    if (fd < 0) {
+        PERROR("Could not obtain handle on privileged command interface");
+        return rc;
+    }
+
+    rc = ioctl(fd, IOCTL_PRIVCMD_GSI_FROM_PCIDEV, &dev_gsi);
+    close(fd);
+
+    if (rc) {
+        PERROR("Failed to get gsi from dev");
+    } else {
+        rc = dev_gsi.gsi;
+    }
+#endif
+
+    return rc;
+}
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 11:42:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 11:42:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755309.1163679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQml7-0006IC-Nd; Mon, 08 Jul 2024 11:42:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755309.1163679; Mon, 08 Jul 2024 11: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 1sQml7-0006Hz-Ik; Mon, 08 Jul 2024 11:42:17 +0000
Received: by outflank-mailman (input) for mailman id 755309;
 Mon, 08 Jul 2024 11:42: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=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQml5-00042n-Qs
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 11:42:15 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20601.outbound.protection.outlook.com
 [2a01:111:f403:2416::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1dd19c7e-3d1f-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 13:42:14 +0200 (CEST)
Received: from MN2PR01CA0023.prod.exchangelabs.com (2603:10b6:208:10c::36) by
 IA1PR12MB8312.namprd12.prod.outlook.com (2603:10b6:208:3fc::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Mon, 8 Jul
 2024 11:42:09 +0000
Received: from BL02EPF0001A0FC.namprd03.prod.outlook.com
 (2603:10b6:208:10c:cafe::54) by MN2PR01CA0023.outlook.office365.com
 (2603:10b6:208:10c::36) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.34 via Frontend
 Transport; Mon, 8 Jul 2024 11:42:09 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0001A0FC.mail.protection.outlook.com (10.167.242.103) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Mon, 8 Jul 2024 11:42:08 +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, 8 Jul
 2024 06:42: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: 1dd19c7e-3d1f-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lAJgKtTI96aLuCiwJyGre4Go/EuKZjNmVDxQyb4i8MaSIkIbODv8sM5+3zmho/umUd7wj/59QPxYw40qk1fLNLvL3JhC53CEG/W/kToEScBpYRHmvr0WMlci0ZfA17t4lsjmFPp2C0iS39soKl8X8p5NjoZJ4OK6JVSHyazrK5kuQqhOVX44Lik+DXSKC3kDQ7+HJ1oDyRhVJto6vlqTpms4eV+XghvY6MUv8LsBtB0QpmTWDV1BSAUfwz0DmMPHoJnV6nA/ofLtZJLLyo6inANK48iIvjb3WubF5tESBSP1sx5lHNbbswjJAaTH98njACY4CttsSr7jYCwC73o7mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SJ211g/xQ9EozfgjyUM5ps8F7M097mD2TeBPX5zf5hY=;
 b=EYrQCx/FEjF1iWEoWCSGksyoHCEwtIlxwY8eF6dtZmkiH7VqDkj+O0iESxnKxxHvYqaBVDI+i7KDBhs9YzbAVfc+fABykwrO4gXzUDMRJwuYobkV/4YjAaC6FgmKoo4MGgrC2a8jaoBlrDm0lTt/5+pt7QXBfVSQmWge5Qsozc6sdv5i4WxGHguhxtFTuiuNFhEld09I4O4xC2dzwgEnFzy50Q55JsaQItkd81O+IW3tDEGZJ2+hiQAss2At8gEDiBV+R//MZXxogjHRHmXkuPcBCwvu6+A51o/KuixnRPQVaaxNuwb6C4qArm9SDX06flPsCKYo+APDlTd4aXm6xg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SJ211g/xQ9EozfgjyUM5ps8F7M097mD2TeBPX5zf5hY=;
 b=ERJ/EVDrwDhQOjZb7sfEHRoyVsmMn9AWTj/cLbdzWoY/kcOWs7uq/WAdylZ81qusdLYh+zEONoLD8olpj6kpWXhHuGrxF5lSJNjVmp6uBPKYWqGRaXJ/bk2BKrwiOiLis3ua+vCVEIM6FIcdPLqwV0O9+tM6qUTe0tOCU51m1lg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap
	<gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Juergen
 Gross" <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [RFC XEN PATCH v12 7/7] tools: Add new function to do PIRQ (un)map on PVH dom0
Date: Mon, 8 Jul 2024 19:41:24 +0800
Message-ID: <20240708114124.407797-8-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20240708114124.407797-1-Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@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: BL02EPF0001A0FC:EE_|IA1PR12MB8312:EE_
X-MS-Office365-Filtering-Correlation-Id: 78a51ddc-a332-4148-7099-08dc9f42ffb5
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?2p8uK/ppXQQw7o4Np4bHG2L5tLRHd9tYH3t4BDnshFKx9knGw2EBJGpFvyyG?=
 =?us-ascii?Q?aU1zZbjx4CRsfuP1QuvnSKQo9r2ojBrqfK0c1Dr5XbtjzA4+phg/pYTuhqze?=
 =?us-ascii?Q?L/sJ2fyhPMO9XY5BPhu0MRhd5bnP3lOG2XMNMYFtWPqIE29Z/2cCeLyeLHzj?=
 =?us-ascii?Q?5toetIEMIy1l+AETFQonDka9TGuL/xCQbUqzdXar1gqzdGgFzeHHfTgidkbk?=
 =?us-ascii?Q?ohV7egWRFH1vTALGiU7H1baSGflwzmJpb/oPA5w6Jppin1208o1hAK5HCzMw?=
 =?us-ascii?Q?WsStp+mxWPV2hyt+C4uVV5u9UzYI7dAE8HbQ70+IZWybzgb0B42gbjdE6hWd?=
 =?us-ascii?Q?G2BQXVYsnTDucHZXr/TxooMLzHd3BWMOeHAXXq9ctgm0SOVzU20BoydNi1Io?=
 =?us-ascii?Q?M0G6tS79bT1ghHSycsxWTvnUowp2qAYcZxyXH5CtPMd35c+FXAdoHIm4UofX?=
 =?us-ascii?Q?9PACEw+66hGX+ZUaLNAQFoefxgCMRN8aGlXQJPpazhMRWTtT9zxKrajjRtfD?=
 =?us-ascii?Q?CfgNBWge85w7abS8aiCppE+Aseze8lXrITQpfbDZidHI0hjqlYvkwwWUhPwx?=
 =?us-ascii?Q?tXcVCqDUKTnFb0FMPD1/C/JMtHJeS/VuiJy3beol+iubU/W4tWU+FNpq0QXy?=
 =?us-ascii?Q?2RQJLs9dRHvT2HaQaRVof9UnVGS25+SJUmUgxtOxqVuP5A2Mbyh+yQfFyOrl?=
 =?us-ascii?Q?VCLadakqmZYk2FX9a7VSblOSULWuQamS1aBE3LzYquhq2df28mk7SLuWWt5r?=
 =?us-ascii?Q?zH14E4Xj4bVmb9AIlz3siTgwqQONt4njtBuDyYpT5eGnNxOMj2wziGbeB05M?=
 =?us-ascii?Q?X5zeWbSkzD3CMp/QE2plnurRvdg+SJpZq/1ydx1eDfTkX6ix4ewQn25jdyfF?=
 =?us-ascii?Q?S7QdwnwweB8yKDtJHSRyUmfG2/DRUZmUQYy/iO42bTeu5LPWuYxK7ieCnUgb?=
 =?us-ascii?Q?Po2hYTxQXtfikgkx7U2IUMNr6YMenXHYENSyLE8rbGxyRdUe+NNBsOy1mxeS?=
 =?us-ascii?Q?px4GyqXyNqxcnLW6vVdj9PBoOYKa3aPsy2OpSKy4BTzkduW/LlpJoDiWyS/e?=
 =?us-ascii?Q?lGm+gFFzVo/OKHr5WlPSz1oNpfpz+UQ7ioZzyUnU7cdpud+FmFKL/LXpIGEA?=
 =?us-ascii?Q?IxXGHTzRkBJat5vHFdjKPo9Lrk7OLOYENGbpRIwuMqeA23NmCPrHbffdu7Cr?=
 =?us-ascii?Q?MijfN/4SjG72UYStuU4/JFHbF5NsAKD25UYFbdWqpYY0wDczEef5K6Fyu/Z6?=
 =?us-ascii?Q?1A3dr+OGOagruFPdnKyZtS1zR2fPmMfIdxJ5Ttc8X5f/OI2SLBKl+UbYEe8J?=
 =?us-ascii?Q?59C31K1eEm16AaTkz371kAESWZPXiE3/FshdLVloYcnxb4b9qNsR1jHKn2Jf?=
 =?us-ascii?Q?iyerJgzKIDwlewrUiiumlvSe1mpX?=
X-Forefront-Antispam-Report:
	CIP:165.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: 08 Jul 2024 11:42:08.5881
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 78a51ddc-a332-4148-7099-08dc9f42ffb5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A0FC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8312

When dom0 is PVH, and passthrough a device to dumU, xl will
use the gsi number of device to do a pirq mapping, see
pci_add_dm_done->xc_physdev_map_pirq, but the gsi number is
got from file /sys/bus/pci/devices/<sbdf>/irq, that confuses
irq and gsi, they are in different space and are not equal,
so it will fail when mapping.
To solve this issue, use xc_physdev_gsi_from_dev to get the
real gsi and then to map pirq.

Besides, PVH dom doesn't have PIRQ flag, it doesn't do
PHYSDEVOP_map_pirq for each gsi. So grant function callstack
pci_add_dm_done->XEN_DOMCTL_irq_permission will fail at function
domain_pirq_to_irq. And old hypercall XEN_DOMCTL_irq_permission
requires passing in pirq, it is not suitable for dom0 that
doesn't have PIRQs to grant irq permission.
To solve this issue, use the new hypercall
XEN_DOMCTL_gsi_permission to grant the permission of irq(
translate from gsi) to dumU when dom0 has no PIRQs.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Chen Jiqian <Jiqian.Chen@amd.com>
---
RFC: it needs to wait for the corresponding third patch on linux kernel side to be merged.
https://lore.kernel.org/xen-devel/20240607075109.126277-4-Jiqian.Chen@amd.com/
This patch must be merged after the patch on linux kernel side
---
 tools/include/xenctrl.h       |   5 ++
 tools/libs/ctrl/xc_domain.c   |  15 +++++
 tools/libs/light/libxl_arch.h |   4 ++
 tools/libs/light/libxl_arm.c  |  10 +++
 tools/libs/light/libxl_pci.c  |  17 ++++++
 tools/libs/light/libxl_x86.c  | 111 ++++++++++++++++++++++++++++++++++
 6 files changed, 162 insertions(+)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 3720e22b399a..9ff5f1810cf8 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -1382,6 +1382,11 @@ int xc_domain_irq_permission(xc_interface *xch,
                              uint32_t pirq,
                              bool allow_access);
 
+int xc_domain_gsi_permission(xc_interface *xch,
+                             uint32_t domid,
+                             uint32_t gsi,
+                             uint8_t access_flag);
+
 int xc_domain_iomem_permission(xc_interface *xch,
                                uint32_t domid,
                                unsigned long first_mfn,
diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c
index f2d9d14b4d9f..4c89f07e4d6e 100644
--- a/tools/libs/ctrl/xc_domain.c
+++ b/tools/libs/ctrl/xc_domain.c
@@ -1394,6 +1394,21 @@ int xc_domain_irq_permission(xc_interface *xch,
     return do_domctl(xch, &domctl);
 }
 
+int xc_domain_gsi_permission(xc_interface *xch,
+                             uint32_t domid,
+                             uint32_t gsi,
+                             uint8_t access_flag)
+{
+    struct xen_domctl domctl = {
+        .cmd = XEN_DOMCTL_gsi_permission,
+        .domain = domid,
+        .u.gsi_permission.gsi = gsi,
+        .u.gsi_permission.access_flag = access_flag,
+    };
+
+    return do_domctl(xch, &domctl);
+}
+
 int xc_domain_iomem_permission(xc_interface *xch,
                                uint32_t domid,
                                unsigned long first_mfn,
diff --git a/tools/libs/light/libxl_arch.h b/tools/libs/light/libxl_arch.h
index f88f11d6de1d..11b736067951 100644
--- a/tools/libs/light/libxl_arch.h
+++ b/tools/libs/light/libxl_arch.h
@@ -91,6 +91,10 @@ void libxl__arch_update_domain_config(libxl__gc *gc,
                                       libxl_domain_config *dst,
                                       const libxl_domain_config *src);
 
+_hidden
+int libxl__arch_hvm_map_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t domid);
+_hidden
+int libxl__arch_hvm_unmap_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t domid);
 #if defined(__i386__) || defined(__x86_64__)
 
 #define LAPIC_BASE_ADDRESS  0xfee00000
diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index a4029e3ac810..d869bbec769e 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -1774,6 +1774,16 @@ void libxl__arch_update_domain_config(libxl__gc *gc,
 {
 }
 
+int libxl__arch_hvm_map_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t domid)
+{
+    return -1;
+}
+
+int libxl__arch_hvm_unmap_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t domid)
+{
+    return -1;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index 96cb4da0794e..3d25997921cc 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -17,6 +17,7 @@
 #include "libxl_osdeps.h" /* must come before any other headers */
 
 #include "libxl_internal.h"
+#include "libxl_arch.h"
 
 #define PCI_BDF                "%04x:%02x:%02x.%01x"
 #define PCI_BDF_SHORT          "%02x:%02x.%01x"
@@ -1478,6 +1479,16 @@ static void pci_add_dm_done(libxl__egc *egc,
     fclose(f);
     if (!pci_supp_legacy_irq())
         goto out_no_irq;
+
+    /*
+     * When dom0 is PVH and mapping a x86 gsi to pirq for domU,
+     * should use gsi to grant irq permission.
+     */
+    if (!libxl__arch_hvm_map_gsi(gc, pci_encode_bdf(pci), domid))
+        goto pci_permissive;
+    else
+        LOGED(WARN, domid, "libxl__arch_hvm_map_gsi failed (err=%d)", errno);
+
     sysfs_path = GCSPRINTF(SYSFS_PCI_DEV"/"PCI_BDF"/irq", pci->domain,
                                 pci->bus, pci->dev, pci->func);
     f = fopen(sysfs_path, "r");
@@ -1505,6 +1516,7 @@ static void pci_add_dm_done(libxl__egc *egc,
     }
     fclose(f);
 
+pci_permissive:
     /* Don't restrict writes to the PCI config space from this VM */
     if (pci->permissive) {
         if ( sysfs_write_bdf(gc, SYSFS_PCIBACK_DRIVER"/permissive",
@@ -2229,6 +2241,11 @@ skip_bar:
     if (!pci_supp_legacy_irq())
         goto skip_legacy_irq;
 
+    if (!libxl__arch_hvm_unmap_gsi(gc, pci_encode_bdf(pci), domid))
+        goto skip_legacy_irq;
+    else
+        LOGED(WARN, domid, "libxl__arch_hvm_unmap_gsi failed (err=%d)", errno);
+
     sysfs_path = GCSPRINTF(SYSFS_PCI_DEV"/"PCI_BDF"/irq", pci->domain,
                            pci->bus, pci->dev, pci->func);
 
diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
index 60643d6f5376..e7756d323cb6 100644
--- a/tools/libs/light/libxl_x86.c
+++ b/tools/libs/light/libxl_x86.c
@@ -879,6 +879,117 @@ void libxl__arch_update_domain_config(libxl__gc *gc,
                                  libxl_defbool_val(src->b_info.u.hvm.pirq));
 }
 
+struct pcidev_map_pirq {
+    uint32_t sbdf;
+    uint32_t pirq;
+    XEN_LIST_ENTRY(struct pcidev_map_pirq) entry;
+};
+
+static pthread_mutex_t pcidev_pirq_mutex = PTHREAD_MUTEX_INITIALIZER;
+static XEN_LIST_HEAD(, struct pcidev_map_pirq) pcidev_pirq_list =
+    XEN_LIST_HEAD_INITIALIZER(pcidev_pirq_list);
+
+int libxl__arch_hvm_map_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t domid)
+{
+    int pirq = -1, gsi, r;
+    xc_domaininfo_t info;
+    struct pcidev_map_pirq *pcidev_pirq;
+    libxl_ctx *ctx = libxl__gc_owner(gc);
+
+    r = xc_domain_getinfo_single(ctx->xch, LIBXL_TOOLSTACK_DOMID, &info);
+    if (r < 0) {
+        LOGED(ERROR, domid, "getdomaininfo failed (error=%d)", errno);
+        return r;
+    }
+    if ((info.flags & XEN_DOMINF_hvm_guest) &&
+        !(info.arch_config.emulation_flags & XEN_X86_EMU_USE_PIRQ)) {
+        gsi = xc_physdev_gsi_from_pcidev(ctx->xch, sbdf);
+        if (gsi < 0) {
+            return ERROR_FAIL;
+        }
+        r = xc_physdev_map_pirq(ctx->xch, domid, gsi, &pirq);
+        if (r < 0) {
+            LOGED(ERROR, domid, "xc_physdev_map_pirq gsi=%d (error=%d)",
+                  gsi, errno);
+            return r;
+        }
+        r = xc_domain_gsi_permission(ctx->xch, domid, gsi, 1);
+        if (r < 0) {
+            LOGED(ERROR, domid, "xc_domain_gsi_permission gsi=%d (error=%d)",
+                  gsi, errno);
+            return r;
+        }
+    } else {
+        return ERROR_FAIL;
+    }
+
+    /* Save the pirq for the usage of unmapping */
+    pcidev_pirq = malloc(sizeof(struct pcidev_map_pirq));
+    if (!pcidev_pirq) {
+        LOGED(ERROR, domid, "no memory for saving pirq of pcidev info");
+        return ERROR_NOMEM;
+    }
+    pcidev_pirq->sbdf = sbdf;
+    pcidev_pirq->pirq = pirq;
+
+    assert(!pthread_mutex_lock(&pcidev_pirq_mutex));
+    XEN_LIST_INSERT_HEAD(&pcidev_pirq_list, pcidev_pirq, entry);
+    assert(!pthread_mutex_unlock(&pcidev_pirq_mutex));
+
+    return 0;
+}
+
+int libxl__arch_hvm_unmap_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t domid)
+{
+    int pirq = -1, gsi, r;
+    xc_domaininfo_t info;
+    struct pcidev_map_pirq *pcidev_pirq;
+    libxl_ctx *ctx = libxl__gc_owner(gc);
+
+    r = xc_domain_getinfo_single(ctx->xch, LIBXL_TOOLSTACK_DOMID, &info);
+    if (r < 0) {
+        LOGED(ERROR, domid, "getdomaininfo failed (error=%d)", errno);
+        return r;
+    }
+    if ((info.flags & XEN_DOMINF_hvm_guest) &&
+        !(info.arch_config.emulation_flags & XEN_X86_EMU_USE_PIRQ)) {
+        gsi = xc_physdev_gsi_from_pcidev(ctx->xch, sbdf);
+        if (gsi < 0) {
+            return ERROR_FAIL;
+        }
+        assert(!pthread_mutex_lock(&pcidev_pirq_mutex));
+        XEN_LIST_FOREACH(pcidev_pirq, &pcidev_pirq_list, entry) {
+            if (pcidev_pirq->sbdf == sbdf) {
+                pirq = pcidev_pirq->pirq;
+                XEN_LIST_REMOVE(pcidev_pirq, entry);
+                free(pcidev_pirq);
+                break;
+            }
+        }
+        assert(!pthread_mutex_unlock(&pcidev_pirq_mutex));
+        if (pirq < 0) {
+            /* pirq has been unmapped, so return directly */
+            return 0;
+        }
+        r = xc_physdev_unmap_pirq(ctx->xch, domid, pirq);
+        if (r < 0) {
+            LOGED(ERROR, domid, "xc_physdev_unmap_pirq pirq=%d (error=%d)",
+                  pirq, errno);
+            return r;
+        }
+        r = xc_domain_gsi_permission(ctx->xch, domid, gsi, 0);
+        if (r < 0) {
+            LOGED(ERROR, domid, "xc_domain_gsi_permission gsi=%d (error=%d)",
+                  gsi, errno);
+            return r;
+        }
+    } else {
+        return ERROR_FAIL;
+    }
+
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 11:47:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 11:47:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755351.1163690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQmpv-0000f3-F9; Mon, 08 Jul 2024 11:47:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755351.1163690; Mon, 08 Jul 2024 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 1sQmpv-0000ew-CM; Mon, 08 Jul 2024 11:47:15 +0000
Received: by outflank-mailman (input) for mailman id 755351;
 Mon, 08 Jul 2024 11:47: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=tfao=OI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sQmpu-0000du-3j
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 11:47:14 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20600.outbound.protection.outlook.com
 [2a01:111:f403:2415::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d013230d-3d1f-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 13:47:12 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 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.7741.36; Mon, 8 Jul
 2024 11:47: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%3]) with mapi id 15.20.7741.033; Mon, 8 Jul 2024
 11:47: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: d013230d-3d1f-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SU5vxqUDYtygq9a0YUj5G28ynUSsqDFQ6Vj1rVwFnu3RUmaEj91bjURcYGXYctIWjCaQebOqlBT+IgjgpTj6/Q4B7FOiwY5RFMbv2kzsq9aqLWanV1+/tPhcGTJpqK+Bg90h0Q+PZB+ahJq3JbEyRQk+VzHTnA/5rB18HpbfFe0422+vQ3Y9WV9ilXDiLfrbFgWKZyyVmv76R45CuN9w6BVX2Y3PvHLP4hLbmLjylIomZiA5hdtSDyNhsxDBV/JTtTLqjSaY/L5RuRtOH5gFiGsqwGFHw5r75SEtpt1KR1H1PqEZ78p4pcu7bajpHbHyoNfD+CGQy8gyj65w0P8Qzg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PTfjQEt2RlMCIZuIrG6hLdyh+Dxp52qrKCycrBZ3IV0=;
 b=KbhEYPJm7tt+wUOySz5oWt6zVUd0OjvfoUdUM5+dMrVFBdGMxK0jYwcQYf8n6ITLBn0uo0Hwjr6F6QfIoYiqR3yWoali1s41iHdVLp803YPZWEDOD7wzbnOLcJQcKeQ+yeIVEzmnu0cl1GXo9gfaJvmpxNn9+YDOS1/VF8ZN2486FmoUP5tzZ6NJakXPRY4Ku7IWSR0IvASgtppV5RQwxZKBXrb1nWOpGQnninfH87KT/82qr90xtB+OTJ/E2o0Fvgo8j5z5N4KkZjtdg3yqMqCmjEtC/4IL9zf5vq+HFEPws5FlsXkGAMbUA/RPNKvw7ljd8UdhuBldNQ5oZCxy1g==
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=PTfjQEt2RlMCIZuIrG6hLdyh+Dxp52qrKCycrBZ3IV0=;
 b=dtQarBQ3IBhSe+qa6bfrnOLV+HYupC5mwVsI+B895cHYfoHRLQ5zHhjYmtRHtbdkv1Id37ww1XF3WpkHyuDMEabja8No7CwW7jg8sPk3vBnl8+tOpkgnw4TmY5aA+h/rO4LSMLvJ5oELJazGSdEgs3OshSJRdayczc50gyGkmx4=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH for-4.19 v2] x86/physdev: Return pirq that irq was already
 mapped to
Thread-Topic: [PATCH for-4.19 v2] x86/physdev: Return pirq that irq was
 already mapped to
Thread-Index: AQHa0Q2QSY6Mwz0FMECG0gX/YHD3QrHsoiAAgACaZIA=
Date: Mon, 8 Jul 2024 11:47:08 +0000
Message-ID:
 <BL1PR12MB58496F4B7C72AC882855EE72E7DA2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708080456.401764-1-Jiqian.Chen@amd.com>
 <905c2eb7-9fe2-4a7c-91b3-1f9df245c5a3@citrix.com>
In-Reply-To: <905c2eb7-9fe2-4a7c-91b3-1f9df245c5a3@citrix.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.7741.016)
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_|DM4PR12MB6590:EE_
x-ms-office365-filtering-correlation-id: 2de0dde5-e590-496e-5663-08dc9f43b267
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?d05mcnZ2YTFKZEE4Q0RTNnRGWnVpdEhzL0Z1RmlJbkVtb2UycXg1LzAxWWNv?=
 =?utf-8?B?anR2UVZJTi8xQ2hVNmw3UE81WDlsdmIvZTMvZlFVT1VFU1BCaTI0d0NmeVU3?=
 =?utf-8?B?VmQ1SmF2dzB2V1dFZ3pFS0xISFBnL2NEMWUyVjhkRG5QeUxLL2QrZ0Q1cHI5?=
 =?utf-8?B?enBRMnZyazVkSGR5NlphSE9LRC9LRmFwcTluRzJqck9Fa0h2NWROanc2QU95?=
 =?utf-8?B?UUpHdittTWM1NDBxZFRreUgvOUlWcHhSVnNBUkczekN2WS9oUVRPY29aSno5?=
 =?utf-8?B?TW52L09ac0dBOFdaZmdZSmZJT0p3TnRKS2ZrYVBGSU5QU2E0YkNYMDBrWk1L?=
 =?utf-8?B?bnNrRkR2cGYra0ZCWFpNOWJhVXVUSHAyNm1kSmU4bDIreEVkRjFyVHNrRWRv?=
 =?utf-8?B?cXZoaUdxMWgzRjZyUDFMNkdSRVhxZVJuMnp2MTZpNFgyRlpyazRjS0hwOWhn?=
 =?utf-8?B?MUptRklxQVRkRDNxa2o0VWZTbllZSTE4dEFTbUVuY3hWZlNGR2ZZYkhQYldD?=
 =?utf-8?B?cGlNVzVhWmRlQnVEOHBhaXluMUp4akVmK0hHSUtKaGdwV1BQZEtNRVoyVDhw?=
 =?utf-8?B?SjJETzEvSk9BL1hzMWVNaGVITGMxOWViOUpaWjVYRUJ0bk9hMWwwUmhVbEpx?=
 =?utf-8?B?LzlsWklnNXpOWGFnRjd1V2xHSjVSNGRJb0VnWDc0bXZoSFJ4VlovVERCeXEw?=
 =?utf-8?B?WXhIZWE2MXVSVHF2cHZpU0N4blNKWWpxbGJ6ajlSbEtENHhqNnI1NzFFcUdI?=
 =?utf-8?B?SFN0WnhCUUtnTjhmVkFFM3draGYzSDN4WDU5TEtPTkNxZFlxQURkem5za3Nj?=
 =?utf-8?B?SWVqcXpxU3VNL0VpRUkrK2EwSHZYYzFybjg1bUdDaGNDUEtaaTNDVzRvVDNv?=
 =?utf-8?B?eGJzVGJiQTluR0ZBUzgzUW5xdTZya3l6ODA4Y3ViSUliRXQybGpJdHRJTURk?=
 =?utf-8?B?VEpkZjVJU2ZJa1U2QkxhdldzanBqTWpzeFg1RVM3Sm9XelpFRUVjRGUrNSsx?=
 =?utf-8?B?c0RDU1E5bGF1TG1ackw1VlhVMVh2ZU5GN043dU5CNjg2bUtMY2NqUE9XRzJP?=
 =?utf-8?B?QXlXeEhBRjMzMzNoOVVBL1Z1eTZ0Z3FKM0h0bURqcWJnUHNjWDlCUW92dyts?=
 =?utf-8?B?cE9YM1Q4aEpWa2NVR2FHSnZMRWhCUVFHWml0VHo0L0E0eU15OTlxMjZUUUxO?=
 =?utf-8?B?dWdFaG11SE1EbU5sWUQwaUJZRU9SNGE1UDF0YjFmdXBEaHhjQ1JSdVBIWDNr?=
 =?utf-8?B?SmNpK0xyWGE5dEZrTWRaRkI0Q3JWSHVUOVdkWDBETFlDd2RXbTVET0FnZEJt?=
 =?utf-8?B?YVR0ZThVMG1lekJ6cDNzenBCcmRlc2NXdDdueHVLWGk2Q2FGdGRNR1gxeG0w?=
 =?utf-8?B?R0pnLzZOK3pTb1dSSEcwUXZZYTZ3RXltT3E4MWF0UU9EVjlidmk0SHluZTlC?=
 =?utf-8?B?MGNHb3E0S0tibkdiK04yOUR1NVNPZHU5YmhwcDB0N3dFbEo4M04zOU8zNHJ0?=
 =?utf-8?B?dFg1dkh1VHcwS041ckdxS2hOR3NMa3hwTUZuK2tBQkJpVE1QRlhHcUtCU1M0?=
 =?utf-8?B?N29yeThYQ0JQVkxudXh6cFVWblJYbkp2UkVxckZSK2huWHJMTVlHRHA5S3I0?=
 =?utf-8?B?S3pnZ3QrR1JIVUdGVTkxbjF3ZzNWTWJhQitXWDZXNXY4blhpVFU3T05WRk1V?=
 =?utf-8?B?SHNkMSs5U2oxZlZOVGJUdVRBMUpFR3pJZGJXZDlmNk93a0R5Q1ZXa0RaaTdu?=
 =?utf-8?B?VEZqUjZKcExwVjRiMTBBcjVDaUozZVB5OTUxNENENmNPRWN5ZDgxZXFINHJ1?=
 =?utf-8?B?SHZtVmR0NXNaL3lUc1piNnNjb3hCMllDMDZUVHEwK0ZSQUViUEoyd2xxRUFV?=
 =?utf-8?B?Zm8zLzJucm1vNTYvK2VLN3RXOUU2NlJsM1M2TnkwbGZLbVE9PQ==?=
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?ejdEelF1R0RlM3BqSEZBUXhrSGdLVFB5Z2F5ZUJyc3hndmlPZGlUTm9CN2d4?=
 =?utf-8?B?Y2VoNnFsVjZyK2RseDRWK2JVME1TUGltNDFtWEk1ZTVCbXNmdjFVd0Z6cGpW?=
 =?utf-8?B?dXhXSDI1OEx6WE5rcjAvZFhaeUR4L0ZzaUxDM2t2czJYT2g5ZE5TVkZjc3M1?=
 =?utf-8?B?UFVKV2FjRXUwbVVOelJGMmV2b2JVNy9Kc2RnWllDUVhSR0N4Z0htNUdGbXJt?=
 =?utf-8?B?R1FLNHZDckdzK1hFclRLMEtQZzdGam11eHVYYlp3ZVppVlFSRGg5WEVVYnhE?=
 =?utf-8?B?S0Vxb0FYR015WXVldGN3YzUrbVJkYnFVVEZaZUg3TVZzbG5RNmlBWUhLaUZx?=
 =?utf-8?B?Mm1oeUMyWDIwcTMzaDI4cDRXWFByODhHYmJFQnpOV3ZGT3lrSEwwTUlCd05J?=
 =?utf-8?B?WE0rV0M2QmlhV3c0YlBkdnM2UUxMaHVKazhzZ1I3NndkeTZWRktEemV3b1h2?=
 =?utf-8?B?WmdrSmpvWnJReSsxK0dvaWxDaHZvcUdDb0V5S1liRWpnOGNRS25SeUxXOUhC?=
 =?utf-8?B?UGJHR1RTeU0vaGF0R0p2emZEdm81SVZEVlpPTDhjL3ZOdkYrOHJsZWZmdmd1?=
 =?utf-8?B?VDUxOEZ3Q2RTTjZwWnpKQzdYend2M2VRbmdTTERxWkcwVHJGL3hkUjI5ME96?=
 =?utf-8?B?blBrTTJFRzg1YmtaZnNKa1Vwb05FU1YrdnUrNkZONEEzcytrTVA4amxEWkxj?=
 =?utf-8?B?ajVKQUQveTVMUnRDVmJvRnZmNE9OdVEyU0tCdEwyL0drbjFpYjVYYWsvcHM3?=
 =?utf-8?B?WUNjYWxhdEkvSndNWmJ0ZHZpL0daeDlWb2VOcWhKRWdwMWtlUUVtYmlWZFg4?=
 =?utf-8?B?Nmp1dUZqV2U3a2s1RWFhaVg1K2hXckNxbnZoM0Fyci9ZWTNRWU1POXNGRXFC?=
 =?utf-8?B?N21VR1NFS2NzSXVuNGV5RmxzWVAvWHVkaVgzMU45VlhhdUhvOHZBVTg0L3hQ?=
 =?utf-8?B?cTcvZCtMa1Zhd3VJeFRKYlFPR1lLWG1BTkVZSGVZVFpNTThQTTRHRUo0YWJm?=
 =?utf-8?B?WHBiOHdyeWJxaDN2TSt1c3dBTkMzSHBBNE4wNnJ3OUZmSGp4ZzBlNTRmdk92?=
 =?utf-8?B?akZaRjM3ckhldy84YUlYNERadzZsSGQxenRnVjBGNXhwSHJKa1dtRy9ydzhC?=
 =?utf-8?B?c25oNWthYng3OHFhYllDZGFpVVMyQmx0RnpvOW8xeHY2VW5ZSWVUbThZZjZs?=
 =?utf-8?B?RTFpY1hCOTlWNWQycEF5V2o2MmVvU25INldBaTZTS3E5cnhQcDFMck9XSjJr?=
 =?utf-8?B?Mnc0dkVNcEFxM2hjbUg3UVMxaU1WN0ZKQjNRV3lSbGpPeXRtMUJtb2dqeTI1?=
 =?utf-8?B?Z1NDa3hLd05xcC9ac1BEQ25EVHcxNnhjNTFjeDhGS1JSZjFBdEFFblRCWUg0?=
 =?utf-8?B?VGFjejhiTGRwTitWaUxMZWYrb2FBRTJiUXE5UzZsaGNoNUhWRmtzT2kyTUFn?=
 =?utf-8?B?RXFTWmNSQlZyN09nQVZVcWNKUWVJQTNLRGVvekw0a2tpdkZERXMyWGhxcS9U?=
 =?utf-8?B?Tm1od1l5RllrYlQxVmVQUlhUaFBpdEN1OUtlTldrYzlxMkNONFFWZEZZbXV4?=
 =?utf-8?B?dnRkVUpOdG1lMVVjNUxNTzNUbWMvNW9mNTFWdS9WSnZGWnhqenJtelIyZlND?=
 =?utf-8?B?SXJYbExmWUhNKzFyY2EzN0VDUVlpTE1TMVFabzBXMzNJaUlEa1lrK2ZzUkx2?=
 =?utf-8?B?WFU1RCtaSGJCUVhkb2crOEs1NlJLcDZpeUVNbHR1VU1JbXI4aE5lMTlxZFpl?=
 =?utf-8?B?blA0Y3hrc0plL2pNZytTY01aY1o3TXM0WVVaYk1hZjFLdkZTQlhFdUV2dnRF?=
 =?utf-8?B?dUY4d3RsaGFsbjZhSmJSYkpTNjlKMmduOTZZY3RzcWI1eEphSExXa1NHSTNO?=
 =?utf-8?B?Z1BndnJIaXFCL0dHQVQ2Q1JlUDdlb2hJUzVIbWJUSzRUNG5scWZSSnJRdUJj?=
 =?utf-8?B?cml6RHJBQk5VZ3hNVzVQYms0bm92cHV5cjB4WFBqNGF1amJ2Mnp0TDd3NFhh?=
 =?utf-8?B?VDA5MU9NM3F3WW9IMGZpTE5FOGtMb1FSNGgrZmxBMXVsV3JDbXk3cmlvUXMz?=
 =?utf-8?B?ZTIwUDhaRnpnMnJ2aUZMYnczQ0tRTGhkenJ0NWhJdStKMlVzK1NyeTMxUU5P?=
 =?utf-8?Q?67OY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <ADBC1A8F86B40D438EDCA73219487E41@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: 2de0dde5-e590-496e-5663-08dc9f43b267
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jul 2024 11:47:08.3965
 (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: PqQ9ac7pFmBeiEsbRSeznOfjRtxWLd54gJiqvNyQBrJ66kedJKd1ocsH5EdRzNzGE9jS1y9ge8wmdi68MKZX6w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6590

T24gMjAyNC83LzggMTg6MzIsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDA4LzA3LzIwMjQg
OTowNCBhbSwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBGaXggYnVnIGludHJvZHVjZWQgYnkgMDc2
MmUyNTAyZjFmICgieDg2L3BoeXNkZXY6IGZhY3RvciBvdXQgdGhlIGNvZGUgdG8gYWxsb2NhdGUg
YW5kDQo+PiBtYXAgYSBwaXJxIikuIEFmdGVyIHRoYXQgcmUtZmFjdG9yaW5nLCB3aGVuIHBpcnE8
MCBhbmQgY3VycmVudF9waXJxPjAsIGl0IG1lYW5zDQo+PiBjYWxsZXIgd2FudCB0byBhbGxvY2F0
ZSBhIGZyZWUgcGlycSBmb3IgaXJxIGJ1dCBpcnEgYWxyZWFkeSBoYXMgYSBtYXBwZWQgcGlycSwg
dGhlbg0KPj4gaXQgcmV0dXJucyB0aGUgbmVnYXRpdmUgcGlycSwgc28gaXQgZmFpbHMuIEhvd2V2
ZXIsIHRoZSBsb2dpYyBiZWZvcmUgdGhhdA0KPj4gcmUtZmFjdG9yaW5nIGlzIGRpZmZlcmVudCwg
aXQgc2hvdWxkIHJldHVybiB0aGUgY3VycmVudF9waXJxIHRoYXQgaXJxIHdhcyBhbHJlYWR5DQo+
PiBtYXBwZWQgdG8gYW5kIG1ha2UgdGhlIGNhbGwgc3VjY2Vzcy4NCj4+DQo+PiBGaXhlczogMDc2
MmUyNTAyZjFmICgieDg2L3BoeXNkZXY6IGZhY3RvciBvdXQgdGhlIGNvZGUgdG8gYWxsb2NhdGUg
YW5kIG1hcCBhIHBpcnEiKQ0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFp
YW4uQ2hlbkBhbWQuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdA
YW1kLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQu
Y29tPg0KPj4gUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4g
DQo+IEFzIGEgbWlub3Igbm90ZSwgd2UgdHJlYXQgRml4ZXM6IGFzIGEgdGFnIGxpa2UgYWxsIHRo
ZSBvdGhlcnMsIHNvIHRlbmQNCj4gbm90IHRvIGhhdmUgYSBibGFuayBsaW5lIGJldHdlZW4gaXQg
YW4gdGhlIFNvQi4NCkxlYXJuZWQgaXQsIHRoYW5rIHlvdSENCg0KPiANCj4gQ2FuIGJlIGZpeGVk
IG9uIGNvbW1pdCAtIG5vIG5lZWQgdG8gcmVzZW5kLg0KPiANCj4gfkFuZHJldw0KDQotLSANCkJl
c3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 12:50:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 12:50:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755369.1163700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQnp2-0002Vn-Rj; Mon, 08 Jul 2024 12:50:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755369.1163700; Mon, 08 Jul 2024 12:50:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQnp2-0002Vg-NZ; Mon, 08 Jul 2024 12:50:24 +0000
Received: by outflank-mailman (input) for mailman id 755369;
 Mon, 08 Jul 2024 12:50:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cvmn=OI=netbsd.org=riastradh@srs-se1.protection.inumbo.net>)
 id 1sQnp0-0002VZ-2r
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 12:50:23 +0000
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0e68c5f-3d28-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 14:50:20 +0200 (CEST)
Received: by mail.netbsd.org (Postfix, from userid 1457)
 id D3FE284E5A; Mon,  8 Jul 2024 12:50: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: a0e68c5f-3d28-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netbsd.org;
	s=20240131; t=1720443016;
	bh=sv+vncVcFsths5MdyJdCkFEoXKk+qtCqzxp50j9X66Y=;
	h=To:CC:In-reply-to:Subject:Date:From;
	b=wpnYM80ohORwLTCj1Qs3RSl3FWBcKjfTsM2E1beqto7wdtlOnBdZWZyjyl02y+nLm
	 IXkem4uIlcqQ6SpFCE7i92/j27NWMlIYUJB5aSniwsNBrO4YKvhGUEmrWAvn6JdiXB
	 3L7Jf+Ml2pnDQ6zy7B+yA1cnL3dXN+EyKI4ZPxiE=
To: Jan Beulich <jbeulich@suse.com>
CC: xen-devel@lists.xenproject.org
In-reply-to: <9d3d1e2e-738e-4ed8-a771-ca541fde9002@suse.com> (jbeulich@suse.com)
Subject: Re: GNTTABOP_setup_table yields -1 PFNs
Date: Mon, 8 Jul 2024 12:50:12 +0000
From: Taylor R Campbell <riastradh-xen-devel@NetBSD.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Message-Id: <20240708125016.D3FE284E5A@mail.netbsd.org>

> Date: Mon, 8 Jul 2024 11:09:21 +0200
> From: Jan Beulich <jbeulich@suse.com>
>=20
> On 06.07.2024 04:22, Taylor R Campbell wrote:
> > On a Xen 4.14 host (with extraversion=3D.0.88.g1d1d1f53), with version 1
> > grant tables, where GNTTABOP_query_size initially returns nr_frames=3D32
> > max_nr_frames=3D64, a NetBSD guest repeatedly queries
> > GNTTABOP_setup_table for successively larger nr_frames from 1 up.
>=20
> First question: Is there some earlier GNTTABOP_setup_table that you invok=
e?
> I'd expect (and also observe) nr_frames=3D1 initially.

Not that the guest OS invokes.  Perhaps the bootloader, pv-grub 0.97,
might invoke GNTTABOP_setup_table?  I looked around but couldn't find
an obvious source for pv-grub 0.97.

> Second: The version you name is pretty unclear from an upstream perspecti=
ve.
> Leaving aside that 4.14 is out of support, it's entirely unclear whether =
you
> at least have all bug fixes in place that we have upstream (4.14.6). With=
out
> that it's hard to see what you're asking for.

It looks like it's based on commit:

commit 1d1d1f5391976456a79daac0dcfe7157da1e54f7
Author: Roger Pau Monn=E9 <roge.rpau@citrix.com>
Date:   Tue Dec 1 15:34:55 2020 +0100

    x86/vioapic: fix usage of index in place of GSI in vioapic_write_redire=
nt

Does that help to narrow it down?  (I don't know if I can rule out
local changes, though.)


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 12:52:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 12:52:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755373.1163710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQnr4-00033M-6c; Mon, 08 Jul 2024 12:52:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755373.1163710; Mon, 08 Jul 2024 12:52: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 1sQnr4-00033F-3O; Mon, 08 Jul 2024 12:52:30 +0000
Received: by outflank-mailman (input) for mailman id 755373;
 Mon, 08 Jul 2024 12:52: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=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQnr3-000337-Ja
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 12:52:29 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee04d524-3d28-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 14:52:27 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a6fd513f18bso368213566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 05:52:27 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77deff5defsm238569566b.64.2024.07.08.05.52.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 05:52: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: ee04d524-3d28-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720443147; x=1721047947; 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=pSvIXMM/+Shw8/DVGXEsISbgMo0B5/Y5dPQsCCtayj0=;
        b=rPRZgVlH38PBe87DFyBk5IoGZVmtsZMVkbFwJzVa7qP7VMPwgG38YEzPHMicpEgtkT
         U5ayASCtcbB71dnPyK8J0eJSUkL7CXiMNTSrhU6N/ZkYeYXkdkBzLPCl86aXetsCqxb+
         V/w5yQWzv6Z67qK1sGw4bhhakkx4RISv8f528=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720443147; x=1721047947;
        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=pSvIXMM/+Shw8/DVGXEsISbgMo0B5/Y5dPQsCCtayj0=;
        b=gTPNZNCXSz86rm78SXVJm8+wEUKyHR4zp06TKB+8scjAcKQzQu67BDIO6gxpAt5Jvt
         WwOFOUMdYvTcVADzxlUAR/5wAju0zelTgg6C0skfG1fTlcWwEapBgPlqqmo4YLTYSNOX
         QpZayNl+Q6NcN51BKxJ6uFCggAEGefiUjzS7X86Gu7KdDUpdMdnOjV3d+q4EwujOlcms
         l5p3XMZGq7o+x3zBklQRJDQ3vtHvcnX2ilvoART0rTdWDM13tV85qks5vBx74d5LSbxd
         Io4hMyn9hwTnh2UhS91lrUdHOXOY6e58RdNUPDWRFkMXv3ORqFgZpATpdp/wPnXoNAhE
         muRw==
X-Forwarded-Encrypted: i=1; AJvYcCVC2VcxwLqsQmZxkB2PudBKCUmAKBnv6o69dhnfQtUSahFZC3mjAyTg78EFOKsVnwRWQWqqo1t6Vqv6oxdMVKG1i6tUiAKmAzl98E3XcBY=
X-Gm-Message-State: AOJu0YyC0LbvhfgUZo0nSd8qGaiacN25ZnUTtvuz+ejsDQnvOYH+70jv
	N+YJ7pIFG26ttudLWdX9um1CF4aT7iceIXjV0HmugsyrttzgOf+6yyrsbrmDvK3myQPaOVo9xQx
	J
X-Google-Smtp-Source: AGHT+IG3DHeBgSfPpPFH418/wylQ2muZEGrYUjrcaKMv82hLQUuSWvIledjauFpjDRrFBUjYf4sC2Q==
X-Received: by 2002:a17:907:7212:b0:a77:cf9d:f497 with SMTP id a640c23a62f3a-a77cf9df678mr685950066b.40.1720443146842;
        Mon, 08 Jul 2024 05:52:26 -0700 (PDT)
Message-ID: <befa3ea1-c48d-46ee-a75d-0b5a8608bfca@citrix.com>
Date: Mon, 8 Jul 2024 13:52:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: GNTTABOP_setup_table yields -1 PFNs
To: Taylor R Campbell <riastradh-xen-devel@NetBSD.org>,
 xen-devel@lists.xenproject.org
References: <20240706022242.3238584D44@mail.netbsd.org>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240706022242.3238584D44@mail.netbsd.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/07/2024 3:22 am, Taylor R Campbell wrote:
> [I asked on IRC and Andrew Cooper suggested posting the question here.
> I'm not subscribed to xen-devel@, so please cc me in replies.]
>
>
> On a Xen 4.14 host (with extraversion=.0.88.g1d1d1f53),

xen$ git describe 1d1d1f53
RELEASE-4.14.0-88-g1d1d1f539197

So it's a build of Xen from the staging-4.14 branch from a few weeks
before RELEASE-4.14.1


I have a nagging feeling I recognise these symptoms, but I can't
remember anything more about it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 12:52:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 12:52:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755374.1163721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQnrF-0003Ly-Fb; Mon, 08 Jul 2024 12:52:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755374.1163721; Mon, 08 Jul 2024 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 1sQnrF-0003Lr-Am; Mon, 08 Jul 2024 12:52:41 +0000
Received: by outflank-mailman (input) for mailman id 755374;
 Mon, 08 Jul 2024 12:52:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQnrD-0003L9-Q7; Mon, 08 Jul 2024 12:52:39 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQnrD-0005IN-N5; Mon, 08 Jul 2024 12:52:39 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQnrD-0001pP-94; Mon, 08 Jul 2024 12:52:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQnrD-0002TM-8b; Mon, 08 Jul 2024 12:52:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=SZrjDxIYokk2JNq6+8x22TPuvw/FTe99IqtbQl47Qpo=; b=Mac37btAM7TqPA6XIuAScTkk0f
	SFOoLQOynic4U06iv9C6/P/ZIBbyV+OxSAjOCEwezmcJTKGNvQWz30m+nVTT4zeRFxxDwKjN1VZ1n
	0ZjKGgIhr8OonbebL7UdOsDxrdKpCdbkwygK+ppdV6GT1V5mwM0Lg8IXjhmxng/KMwnk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186727-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186727: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-qcow2:guest-localmigrate/x10:fail:heisenbug
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=256abd8e550ce977b728be79a74e1729438b4948
X-Osstest-Versions-That:
    linux=c6653f49e4fd3b0d52c12a1fc814d6c5b234ea15
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Jul 2024 12:52:39 +0000

flight 186727 linux-linus real [real]
flight 186729 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186727/
http://logs.test-lab.xenproject.org/osstest/logs/186729/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qcow2 19 guest-localmigrate/x10 fail pass in 186729-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl           8 xen-boot                     fail  like 186720
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186720
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186720
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186720
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186720
 test-armhf-armhf-xl-arndale   8 xen-boot                     fail  like 186720
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186720
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186720
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                256abd8e550ce977b728be79a74e1729438b4948
baseline version:
 linux                c6653f49e4fd3b0d52c12a1fc814d6c5b234ea15

Last test of basis   186720  2024-07-07 04:19:59 Z    1 days
Failing since        186724  2024-07-07 18:42:19 Z    0 days    2 attempts
Testing same since   186727  2024-07-08 04:15:50 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Bjorn Andersson <andersson@kernel.org>
  Chen-Yu Tsai <wens@csie.org>
  Frank Oltmanns <frank@oltmanns.dev>
  Gabor Juhos <j4g8y7@gmail.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Luca Weiss <luca.weiss@fairphone.com>
  Md Sadre Alam <quic_mdalam@quicinc.com>
  Pin-yen Lin <treapking@chromium.org>
  Robert J. Pafford <pafford.9@buckeyemail.osu.edu>
  Stephen Boyd <sboyd@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    fail    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   c6653f49e4fd..256abd8e550c  256abd8e550ce977b728be79a74e1729438b4948 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 13:01:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 13:01:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755388.1163730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQnzx-0005WX-4s; Mon, 08 Jul 2024 13:01:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755388.1163730; Mon, 08 Jul 2024 13:01: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 1sQnzx-0005WQ-1C; Mon, 08 Jul 2024 13:01:41 +0000
Received: by outflank-mailman (input) for mailman id 755388;
 Mon, 08 Jul 2024 13:01:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQnzw-0005WK-BY
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 13:01:40 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 35b56725-3d2a-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 15:01:37 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2ee7a1ad286so40725551fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 06:01: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
 d2e1a72fcca58-70b0d368d7csm6451088b3a.49.2024.07.08.06.01.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 06: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: 35b56725-3d2a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720443696; x=1721048496; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uL0hE67Ydn+R0/zDjfEInfi3gxBOrPQfKAs1IdzrTAs=;
        b=Y+ER2Uk4NfypjfHXzaBeHHhoXjcO2igPfox2TgHB5o9CcXVxWx8NbEvtdu9InYslv4
         EmrP90D18RDoSFK5hroQXoMvNNMFj5HVbx46gzM1vetpt603ZCybdN4QHReOP3wUBC7M
         apeotcD4SUdKnyiV3sxkv2MZwZvkKGjFTtuoQ/H+r9Vt64NhQQ0Ra4lHySZzuM0E4b5W
         +fV66IFdH2ntzbvRmfHVuI56lulXUcUwjhSx7NaU9n2lSUZJr9Krozgt08XcVLbrV2ln
         UEbNsimOwt4Mni1li9kQ3TD827wHQj8tlyl48rRDPqCL+VOsGT8mLbGK2zyZ0V9y1083
         82Iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720443696; x=1721048496;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uL0hE67Ydn+R0/zDjfEInfi3gxBOrPQfKAs1IdzrTAs=;
        b=epwJgtjI1wopP9hnaaw+kdXZ6BQQGwI9oJd9y95KAV8Otm50YS9cazi8f8Ok89JSIn
         W1K4Dih0I8A9qNPS540AlQ5jX8z7Wm+2yNMilEvVdZXrsrlicU2oymihQylxhYyvQs5m
         fHlAZy9xCBNkhxYEwnUIOUKyn5TAtP9PBFfJ+0zpSYi6ycIgHdeJAlEQe6+gMv4sQvcj
         jCVDpTHSN7PIu5Sq7wyEfdba/RZBNu5micqRiSYqjMJhiWughNDjckf5PPt0HlzdoGva
         Q2UBTfBe6DrkerEMP8mgUKPqQglmQN0Fx6oRuy2/v4AtJl1QbfESaI4U6x/qS+X/wcfi
         k9Zw==
X-Gm-Message-State: AOJu0Yzz8J0jWLDXg5FuUbXJKnSkEYsU5S+ApfruKeOsw2G/+nqS+lRj
	A4+PbNHbqtFxeYlkXZaO8qPcxe8tDJA+gqZYFYA8H/OeM44tHm5zt305EgkbSg==
X-Google-Smtp-Source: AGHT+IE7hdu1y1Z2nN+1CAEMLUlc1BaQ2A2kKmBunJwgknc97iVlJv1V7X5LccVzTu85drP4fvOB9Q==
X-Received: by 2002:a2e:9eca:0:b0:2ec:558d:4e0a with SMTP id 38308e7fff4ca-2ee8ed933bfmr90501341fa.19.1720443694608;
        Mon, 08 Jul 2024 06:01:34 -0700 (PDT)
Message-ID: <ff729e47-2727-4af2-84b9-d23ad976d3f3@suse.com>
Date: Mon, 8 Jul 2024 15:01:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: GNTTABOP_setup_table yields -1 PFNs
To: Taylor R Campbell <riastradh-xen-devel@NetBSD.org>
Cc: xen-devel@lists.xenproject.org
References: <20240708125016.D3FE284E5A@mail.netbsd.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: <20240708125016.D3FE284E5A@mail.netbsd.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.07.2024 14:50, Taylor R Campbell wrote:
>> Date: Mon, 8 Jul 2024 11:09:21 +0200
>> From: Jan Beulich <jbeulich@suse.com>
>>
>> On 06.07.2024 04:22, Taylor R Campbell wrote:
>>> On a Xen 4.14 host (with extraversion=.0.88.g1d1d1f53), with version 1
>>> grant tables, where GNTTABOP_query_size initially returns nr_frames=32
>>> max_nr_frames=64, a NetBSD guest repeatedly queries
>>> GNTTABOP_setup_table for successively larger nr_frames from 1 up.
>>
>> First question: Is there some earlier GNTTABOP_setup_table that you invoke?
>> I'd expect (and also observe) nr_frames=1 initially.
> 
> Not that the guest OS invokes.  Perhaps the bootloader, pv-grub 0.97,
> might invoke GNTTABOP_setup_table?  I looked around but couldn't find
> an obvious source for pv-grub 0.97.
> 
>> Second: The version you name is pretty unclear from an upstream perspective.
>> Leaving aside that 4.14 is out of support, it's entirely unclear whether you
>> at least have all bug fixes in place that we have upstream (4.14.6). Without
>> that it's hard to see what you're asking for.
> 
> It looks like it's based on commit:
> 
> commit 1d1d1f5391976456a79daac0dcfe7157da1e54f7
> Author: Roger Pau Monné <roge.rpau@citrix.com>
> Date:   Tue Dec 1 15:34:55 2020 +0100
> 
>     x86/vioapic: fix usage of index in place of GSI in vioapic_write_redirent
> 
> Does that help to narrow it down?

Only in so far as telling us that this looks to be far behind.

>  (I don't know if I can rule out local changes, though.)

Which, however, would be relevant.

Any chance you could try, against the version you presently run, the XTF patch I
sent earlier? Assumes of course you're at least lightly familiar with XTF
(xenbits.xen.org/xtf.git).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 13:08:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 13:08:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755396.1163739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQo6e-0006Z1-T4; Mon, 08 Jul 2024 13:08:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755396.1163739; Mon, 08 Jul 2024 13: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 1sQo6e-0006Yu-QU; Mon, 08 Jul 2024 13:08:36 +0000
Received: by outflank-mailman (input) for mailman id 755396;
 Mon, 08 Jul 2024 13: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=Jnsg=OI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sQo6d-0006Yo-MH
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 13:08:35 +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 2df4e46a-3d2b-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 15:08: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-out1.suse.de (Postfix) with ESMTPS id 008CB21896;
 Mon,  8 Jul 2024 13:08:32 +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 C81E51396E;
 Mon,  8 Jul 2024 13:08: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 /Qb9Ls/ki2b3dwAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 08 Jul 2024 13:08: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: 2df4e46a-3d2b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720444113; 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=j+D3B/0eIVxRGSwFj7XDw+eRagzhSgq4zkAqycP/F10=;
	b=ppy07KkwjvJsV61ED0iXHza672Fwcaf2a2OJnnCBGrDceIA35MKkKsmtKqYjyvcT2JwtZF
	4ZEM4we4kMsApBheyEI7NBzjTFEbQJsFfQiIBQT/vNL3zMM3l5bIP3Ryj0+ewsk1RM+Nv5
	EYa8nyfbmxOZToGPH8IBTc75wRUPugU=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720444112; 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=j+D3B/0eIVxRGSwFj7XDw+eRagzhSgq4zkAqycP/F10=;
	b=A41QvGTc4vNt2eTCmMegwS8LKBsBAzoJhs8czcKLCjWN8VfQOKsfUlyY5Sgi3rqLR63Aii
	0dhXxnJcCHZC09rD0UXt8kQbLIZxXHMHpeILisFrVbJ9DjXvhieSUi3NMyCC2sOzjgFRnf
	zeg9QndWjy5VYnr+eH8DoLk5aKtSr4E=
Message-ID: <92e6b47c-b80e-4c35-91e4-f7ef1f735c49@suse.com>
Date: Mon, 8 Jul 2024 15:08:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: GNTTABOP_setup_table yields -1 PFNs
To: Taylor R Campbell <riastradh-xen-devel@NetBSD.org>,
 Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
References: <20240708125016.D3FE284E5A@mail.netbsd.org>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20240708125016.D3FE284E5A@mail.netbsd.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Iv2T49ktmYYQANeUqH6mJas7"
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(-1.00)[-1.000];
	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];
	XM_UA_NO_VERSION(0.01)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	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)[imap1.dmz-prg2.suse.org:helo,suse.com:email];
	RCPT_COUNT_THREE(0.00)[3];
	HAS_ATTACHMENT(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -5.19
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Iv2T49ktmYYQANeUqH6mJas7
Content-Type: multipart/mixed; boundary="------------dxFyOjfx0K0ZW4TV989JZb5X";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Taylor R Campbell <riastradh-xen-devel@NetBSD.org>,
 Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Message-ID: <92e6b47c-b80e-4c35-91e4-f7ef1f735c49@suse.com>
Subject: Re: GNTTABOP_setup_table yields -1 PFNs
References: <20240708125016.D3FE284E5A@mail.netbsd.org>
In-Reply-To: <20240708125016.D3FE284E5A@mail.netbsd.org>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------dxFyOjfx0K0ZW4TV989JZb5X
Content-Type: multipart/mixed; boundary="------------0wCfiORuEfCuEu9JjFaNGzh9"

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

T24gMDguMDcuMjQgMTQ6NTAsIFRheWxvciBSIENhbXBiZWxsIHdyb3RlOg0KPj4gRGF0ZTog
TW9uLCA4IEp1bCAyMDI0IDExOjA5OjIxICswMjAwDQo+PiBGcm9tOiBKYW4gQmV1bGljaCA8
amJldWxpY2hAc3VzZS5jb20+DQo+Pg0KPj4gT24gMDYuMDcuMjAyNCAwNDoyMiwgVGF5bG9y
IFIgQ2FtcGJlbGwgd3JvdGU6DQo+Pj4gT24gYSBYZW4gNC4xNCBob3N0ICh3aXRoIGV4dHJh
dmVyc2lvbj0uMC44OC5nMWQxZDFmNTMpLCB3aXRoIHZlcnNpb24gMQ0KPj4+IGdyYW50IHRh
Ymxlcywgd2hlcmUgR05UVEFCT1BfcXVlcnlfc2l6ZSBpbml0aWFsbHkgcmV0dXJucyBucl9m
cmFtZXM9MzINCj4+PiBtYXhfbnJfZnJhbWVzPTY0LCBhIE5ldEJTRCBndWVzdCByZXBlYXRl
ZGx5IHF1ZXJpZXMNCj4+PiBHTlRUQUJPUF9zZXR1cF90YWJsZSBmb3Igc3VjY2Vzc2l2ZWx5
IGxhcmdlciBucl9mcmFtZXMgZnJvbSAxIHVwLg0KPj4NCj4+IEZpcnN0IHF1ZXN0aW9uOiBJ
cyB0aGVyZSBzb21lIGVhcmxpZXIgR05UVEFCT1Bfc2V0dXBfdGFibGUgdGhhdCB5b3UgaW52
b2tlPw0KPj4gSSdkIGV4cGVjdCAoYW5kIGFsc28gb2JzZXJ2ZSkgbnJfZnJhbWVzPTEgaW5p
dGlhbGx5Lg0KPiANCj4gTm90IHRoYXQgdGhlIGd1ZXN0IE9TIGludm9rZXMuICBQZXJoYXBz
IHRoZSBib290bG9hZGVyLCBwdi1ncnViIDAuOTcsDQo+IG1pZ2h0IGludm9rZSBHTlRUQUJP
UF9zZXR1cF90YWJsZT8gIEkgbG9va2VkIGFyb3VuZCBidXQgY291bGRuJ3QgZmluZA0KPiBh
biBvYnZpb3VzIHNvdXJjZSBmb3IgcHYtZ3J1YiAwLjk3Lg0KDQpUaGlzIGlzIGJhc2VkIG9u
IE1pbmktT1MsIHdoaWNoIGRvZXMgR05UVEFCT1Bfc2V0dXBfdGFibGUgd2l0aCBucl9mcmFt
ZXM9MQ0KDQoNCkp1ZXJnZW4NCg0K
--------------0wCfiORuEfCuEu9JjFaNGzh9
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-----

--------------0wCfiORuEfCuEu9JjFaNGzh9--

--------------dxFyOjfx0K0ZW4TV989JZb5X--

--------------Iv2T49ktmYYQANeUqH6mJas7
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/Ey8FAmaL5M8FAwAAAAAACgkQsN6d1ii/Ey9I
TQf+Jbc5dcTa3M/AqBbdCYW3/pmIFx/CLgFieGFOgT8/Md6Dhlhg8KVfiTmq1SleJCLI89SQVltS
tnslDRtPn0n/5xRCagS9ffoWJ3gCMcVfSTIshwKDa2zXcGsw/K+dSLoUsyzbMpoPCQI15DVU52yo
sfgeB5eRIbkz4v/9NWI6i6ownZGtI4jASlUav7eAx7PyKDZnEapNX8+rHOehVIGs2DQhEUbqRWDm
fECDaGaORcd0KKeOk1ifmuKYyHmS9kJIIhf5UU41jp8/t0r8zWIBEwHlYn9iF2l5AD5Ejq59oSnM
ugJIP4RvPzOzaTLbYZScYDXrjYhLG85vppoXQeeCiQ==
=yBvU
-----END PGP SIGNATURE-----

--------------Iv2T49ktmYYQANeUqH6mJas7--


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 13:22:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 13:22:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755402.1163750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQoJt-0000vT-VZ; Mon, 08 Jul 2024 13:22:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755402.1163750; Mon, 08 Jul 2024 13:22:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQoJt-0000vM-Rv; Mon, 08 Jul 2024 13:22:17 +0000
Received: by outflank-mailman (input) for mailman id 755402;
 Mon, 08 Jul 2024 13:22:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQoJs-0000uR-1t; Mon, 08 Jul 2024 13:22:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQoJr-0005nf-Vt; Mon, 08 Jul 2024 13:22:15 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQoJr-0002Wv-FS; Mon, 08 Jul 2024 13:22:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQoJr-0002lZ-Ev; Mon, 08 Jul 2024 13:22: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=R7QMPCJbKYVCrHPGAcTuuWB2PFO7bm5MnsSimNw2XM4=; b=EXT8hscXrPHq0FqX0Sm3ON8SJd
	OU6AgTtSV076DdjkdQnT8g3hqPCOCsh6MkBih1cBDKk60V2PtkK3YLXMq3KU5vRMvxJxj3bYdEMUv
	8sAfcBdfwA3N4f8c//9Jbb5T4o9kcs1ZKVr9nrdr6EPwOOWw2Zc2gET1WekVDskwl+a8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186728-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186728: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=893800be49d2d58f78c96e4f06d9f24188cb8946
X-Osstest-Versions-That:
    libvirt=e40a533118efdc3d5f6fd1dcc9bb8143b54691e2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Jul 2024 13:22:15 +0000

flight 186728 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186728/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186710
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              893800be49d2d58f78c96e4f06d9f24188cb8946
baseline version:
 libvirt              e40a533118efdc3d5f6fd1dcc9bb8143b54691e2

Last test of basis   186710  2024-07-06 04:22:20 Z    2 days
Testing same since   186728  2024-07-08 04:18:44 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michal Privoznik <mprivozn@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   e40a533118..893800be49  893800be49d2d58f78c96e4f06d9f24188cb8946 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 13:23:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 13:23:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755407.1163760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQoLU-0001PQ-9C; Mon, 08 Jul 2024 13:23:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755407.1163760; Mon, 08 Jul 2024 13:23:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQoLU-0001PJ-60; Mon, 08 Jul 2024 13:23:56 +0000
Received: by outflank-mailman (input) for mailman id 755407;
 Mon, 08 Jul 2024 13:23:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m90j=OI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sQoLS-0001PB-DM
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 13:23:54 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5243e580-3d2d-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 15:23:53 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2ee910d6a9eso28976221fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 06:23:53 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ee9183d72csm12072041fa.122.2024.07.08.06.23.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 06:23: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: 5243e580-3d2d-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720445033; x=1721049833; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=n2k5/8gErrx/CRuafoIuSE0K/XH75IaHqQs1mUeKjZo=;
        b=nZ+4wFSPu2fAzMEUYiKEpjXjiQ7HwVOLwyDOFMfCJkPsW0kVDbvgEIgQCwsLY3ucXL
         lCDUkeY4vSvaY/MZrJqetefOvO3dWz7n1pCXUUStrwK1p4AdWvfDVZTg4ja1bPFc9Uum
         7+14ZyotVn2TAZx3JNikx1ejTrTuXJ7bAkVvpn+MpiDYL+KTbN0xAPFGnbSTGUB8yk+Y
         kl5QftakxWcTVX5syOqs7016rvlXTY5mqpSzUXQW5oEidxJEejLlmP2yXKDnCH8Pgl0O
         WnTKjL/gkRI5138YP0irHU5L+XRWjwnYR9xgI/3eRBq1j6v5lRG73k7bR/nTnLyu/WGX
         SXiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720445033; x=1721049833;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=n2k5/8gErrx/CRuafoIuSE0K/XH75IaHqQs1mUeKjZo=;
        b=oGAIYEJFMFdWGbeHfl3BJ9TZIycWrXdn/BV5H9lEamtSWxAEFXFInvQDRc0HlJUg0+
         ET7469jHH3ZUsN/+TS/ynrf6GXIOfAwe3GocctdzgrHvKcQmJYybygr60D+m09zjM0hR
         ee6N9Pq42k8VYiesqZ65hNC5MCnM2omYqj3IeloxnSUe7gZpMgeFJ78iCS+/BecPB0+E
         pj9YBAgyKWYlmDRt06/q2+I4XGnh5nFMCLUcLbe5gpyELNnocYiJBJHGm1SIgMZ5e8wa
         Ajo2H3aPDSVY6W2nZ1wDJXmFQJhO6L8/DBko1F7d+9d7bciutAIBWKl+AdSW//mGsqeD
         jYvg==
X-Forwarded-Encrypted: i=1; AJvYcCU7TIyKZ7sqecrG1oj8Gvi3+QkML0nBCcpupSEGtwMgHfxhgZIbrreWE8GUu21zf1f0Jfnszrq7dW+AkLBDuyvu3K/8fl+ClhvnlsF1+EU=
X-Gm-Message-State: AOJu0Yy+PU7kfDfccRYab8ZDlNG57hRWItHFiqk7GpJGNqQpbRrznzkq
	zWqMppMILXual5WLMiMtK1lrjA3+nNxu1s3iaBMvfJFooujiFHFk
X-Google-Smtp-Source: AGHT+IHG0eVEByzJaCgp8izXRtN4x2L1wD+UE18mgM6sXYLySky/mxI7EaSSl83/+zrEZeHC3jzbfw==
X-Received: by 2002:a2e:9118:0:b0:2ee:6bdb:59e6 with SMTP id 38308e7fff4ca-2ee8f2f2ab1mr35047801fa.17.1720445032707;
        Mon, 08 Jul 2024 06:23:52 -0700 (PDT)
Message-ID: <de2584a9be63e17c4d43d200dc445af706edb012.camel@gmail.com>
Subject: Re: [PATCH for-4.19 v2] x86/physdev: Return pirq that irq was
 already mapped to
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jiqian Chen
 <Jiqian.Chen@amd.com>,  xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Roger Pau =?ISO-8859-1?Q?Monn=E9?=
	 <roger.pau@citrix.com>, Huang Rui <ray.huang@amd.com>
Date: Mon, 08 Jul 2024 15:23:51 +0200
In-Reply-To: <905c2eb7-9fe2-4a7c-91b3-1f9df245c5a3@citrix.com>
References: <20240708080456.401764-1-Jiqian.Chen@amd.com>
	 <905c2eb7-9fe2-4a7c-91b3-1f9df245c5a3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-08 at 11:32 +0100, Andrew Cooper wrote:
> On 08/07/2024 9:04 am, Jiqian Chen wrote:
> > Fix bug introduced by 0762e2502f1f ("x86/physdev: factor out the
> > code to allocate and
> > map a pirq"). After that re-factoring, when pirq<0 and
> > current_pirq>0, it means
> > caller want to allocate a free pirq for irq but irq already has a
> > mapped pirq, then
> > it returns the negative pirq, so it fails. However, the logic
> > before that
> > re-factoring is different, it should return the current_pirq that
> > irq was already
> > mapped to and make the call success.
> >=20
> > Fixes: 0762e2502f1f ("x86/physdev: factor out the code to allocate
> > and map a pirq")
> >=20
> > Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> > Signed-off-by: Huang Rui <ray.huang@amd.com>
> > Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> > Reviewed-by: Jan Beulich <jbeulich@suse.com>
>=20
> As a minor note, we treat Fixes: as a tag like all the others, so
> tend
> not to have a blank line between it an the SoB.
>=20
> Can be fixed on commit - no need to resend.
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 13:25:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 13:25:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755412.1163770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQoN3-0001vW-JC; Mon, 08 Jul 2024 13:25:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755412.1163770; Mon, 08 Jul 2024 13:25:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQoN3-0001vP-FS; Mon, 08 Jul 2024 13:25:33 +0000
Received: by outflank-mailman (input) for mailman id 755412;
 Mon, 08 Jul 2024 13:25: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=m90j=OI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sQoN2-0001vH-GQ
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 13:25:32 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8bf30b3a-3d2d-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 15:25:30 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-52e97e5a84bso5908392e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 06:25:30 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52eb10e1968sm358417e87.14.2024.07.08.06.25.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 06:25: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: 8bf30b3a-3d2d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720445130; x=1721049930; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=OovDwmgF+/rYtrAQOHh2/HmyE/etjMJJQFPhY+PiEtA=;
        b=DkGzZO3Id/EyB2k1NQy0t0WiD/h4Vu5Kl3uSyqrpMuBiUh8UU8mcXpBSSanxOuzaek
         GdtCnwefJS1EncrAxTk715eNSF9s3CByp63qBYg5UWRuYAruL4yhjKsCQ8mo8+3ySsew
         dbR4wa6rDs43lnO2PRWDS9mcQfEVG0wcwu67P5TIQjiAm8RA5qX+b0pRZF7qqPiZa9HC
         8GKEwCXOrpVrRP5HxIjVkt2CBZrHt5Y7sBjQAzeOYISZC/mz52W2i2ZozL7XC5EMyjC/
         +Foi5dMB5+xmpuBUUYBd0y+sMuT5t+EJpL6aoP6yFcpGERbj2PxSLTkKOepyLyoLKEY8
         4DRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720445130; x=1721049930;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=OovDwmgF+/rYtrAQOHh2/HmyE/etjMJJQFPhY+PiEtA=;
        b=WGDyf915wpKpPWzIuv9NBvvfz22NnC8c+oB7DkK1zr2vcOwYl/HMJsbYxpi1BarFOs
         jpp2hz4KjssGhFozK3ABHwzdpTyfCLGp2rbNOy3htFjWF7CaVM2xqr+v5YBs8vcVaRkg
         7jT3A5RjFC7/aGjCZ8WID3HXt27d2/JkV2Mm2YhLTnFvRyfxuXhb7X6RUrc2aCEN5S1u
         5QFZVLtzo9gQ78x2FPA4sYaZXo+cz+ECiuLnb/Kl4bXTk+PKlRthu34WrPK82q5miB0K
         j1gYYsrQ1OAQshdBKGQYhCk65JO13PDQ3m0DfhlxSKPzwV4RCr1f18cTJF3LJVMdklnb
         pCJg==
X-Forwarded-Encrypted: i=1; AJvYcCVuIe3VyEEFgA9b2SsgDr/2GBPk5fNT6fk3pDBC1H6P9E/D7lK2bAcRyQ6QuHxeNSo8qmP5DSNxZXwOeEIbV1465MAThKGrE3KS2UH49jI=
X-Gm-Message-State: AOJu0Yw65wA6s2FMrcE6WiZUmcHfnMInESoQuuyqjQjXF7balOTLVar6
	t7gfpMUJz8fNzCejwtyfPyNhQV5YM4C6uiClDmjM+6C8b1YNqRD7
X-Google-Smtp-Source: AGHT+IGhxr7EIoQk7ugcX6LZ9yTQwtI3z3yUtnLZZdVKzckcYnIlEqFgfW0rZlkgEVNy2bJ+NWBBaQ==
X-Received: by 2002:a19:434c:0:b0:52e:9921:6dff with SMTP id 2adb3069b0e04-52ea0622fc8mr9732729e87.26.1720445128784;
        Mon, 08 Jul 2024 06:25:28 -0700 (PDT)
Message-ID: <195e9718ed2c69d362bcd8ca856631ac3aea980f.camel@gmail.com>
Subject: Re: [PATCH for-4.19 0/6] CI: Fixes, part 2
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
 <jgross@suse.com>,  Roger Pau =?ISO-8859-1?Q?Monn=E9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Date: Mon, 08 Jul 2024 15:25:27 +0200
In-Reply-To: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

T24gRnJpLCAyMDI0LTA3LTA1IGF0IDE2OjIwICswMTAwLCBBbmRyZXcgQ29vcGVyIHdyb3RlOgo+
IFdvcmsgdG8gZml4IGEgZmV3IGJ1aWxkIHN5c3RlbSBjaGVja3MsIGFuZCB0byBzdHJpcCB0aGUg
b2Jzb2xldGUKPiBjb250ZW50cyBvZgo+IHRoZSBidWlsZCBjb250YWluZXJzLCBwcmlvciB0byBh
ZGRpbmcgbmV3IGNvbnRhaW5lcnMgKHdpbGwgYmUgcGFydAo+IDMpLgo+IAo+IEFuZHJldyBDb29w
ZXIgKDYpOgo+IMKgIGJ1aWxkOiBSZWdlbmVyYXRlIC4vY29uZmlndXJlIHdpdGggQXV0b2NvbmYg
Mi43MQo+IMKgIGJ1aWxkOiBGaXggdGhlIHZlcnNpb24gb2YgcHl0aG9uIGNoZWNrZWQgZm9yIGJ5
IC4vY29uZmlndXJlCj4gwqAgQ0k6IFJlZnJlc2ggdGhlIENvdmVyaXR5IEdpdGh1YiBBY3Rpb24g
Y29uZmlndXJhdGlvbgo+IMKgIGJ1aWxkOiBEcm9wIG9wZW5zc2wgYXMgYSBidWlsZCBkZXBlbmRl
bmN5Cj4gwqAgYnVpbGQ6IERyb3AgbGliaWNvbnYgYXMgYSBidWlsZCBkZXBlbmRlY3kKPiDCoCBi
dWlsZDogRHJvcCB4b3JnLXgxMSBhcyBhIGJ1aWxkIGRlcGVuZGVuY3kKPiAKPiDCoC5jaXJydXMu
eW1swqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgfMKgwqDCoCAyICstCj4gwqAuZ2l0aHViL3dvcmtmbG93cy9jb3Zlcml0
eS55bWzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMzYgKy0KPiDCoFJFQURN
RcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgIDIgLQo+IMKgLi4uL2J1aWxkL2RlYmlhbi9i
b29rd29ybS1hcm02NHY4LmRvY2tlcmZpbGXCoCB8wqDCoMKgIDIgLQo+IMKgLi4uL2J1aWxkL2Rl
Ymlhbi9ib29rd29ybS1pMzg2LmRvY2tlcmZpbGXCoMKgwqDCoCB8wqDCoMKgIDIgLQo+IMKgYXV0
b21hdGlvbi9idWlsZC9kZWJpYW4vYm9va3dvcm0uZG9ja2VyZmlsZcKgwqAgfMKgwqDCoCAyIC0K
PiDCoC4uLi9idWlsZC9kZWJpYW4vamVzc2llLWkzODYuZG9ja2VyZmlsZcKgwqDCoMKgwqDCoCB8
wqDCoMKgIDIgLQo+IMKgYXV0b21hdGlvbi9idWlsZC9kZWJpYW4vamVzc2llLmRvY2tlcmZpbGXC
oMKgwqDCoCB8wqDCoMKgIDIgLQo+IMKgLi4uL2J1aWxkL2RlYmlhbi9zdHJldGNoLWkzODYuZG9j
a2VyZmlsZcKgwqDCoMKgwqAgfMKgwqDCoCAyIC0KPiDCoGF1dG9tYXRpb24vYnVpbGQvZGViaWFu
L3N0cmV0Y2guZG9ja2VyZmlsZcKgwqDCoCB8wqDCoMKgIDIgLQo+IMKgYXV0b21hdGlvbi9idWls
ZC9mZWRvcmEvMjkuZG9ja2VyZmlsZcKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoCAxIC0KPiDCoGF1
dG9tYXRpb24vYnVpbGQvdWJ1bnR1L2Jpb25pYy5kb2NrZXJmaWxlwqDCoMKgwqAgfMKgwqDCoCAy
IC0KPiDCoGF1dG9tYXRpb24vYnVpbGQvdWJ1bnR1L2ZvY2FsLmRvY2tlcmZpbGXCoMKgwqDCoMKg
IHzCoMKgwqAgMiAtCj4gwqBhdXRvbWF0aW9uL2J1aWxkL3VidW50dS90cnVzdHkuZG9ja2VyZmls
ZcKgwqDCoMKgIHzCoMKgwqAgMiAtCj4gwqBhdXRvbWF0aW9uL2J1aWxkL3VidW50dS94ZW5pYWwu
ZG9ja2VyZmlsZcKgwqDCoMKgIHzCoMKgwqAgMiAtCj4gwqAuLi4va2VybmVsLzUuMTktYXJtNjR2
OC5kb2NrZXJmaWxlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgIDEgLQo+IMKgLi4uL3Rl
c3RzLWFydGlmYWN0cy9rZXJuZWwvNi4xLjE5LmRvY2tlcmZpbGXCoCB8wqDCoMKgIDEgLQo+IMKg
Y29uZmlnL1Rvb2xzLm1rLmluwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIHzCoMKgwqAgMSAtCj4gwqBjb25maWd1cmXCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
fCAxMDA2ICstLQo+IMKgZG9jcy9jb25maWd1cmXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgOTkwICstLQo+IMKgc3R1YmRv
bS9jb25maWd1cmXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCB8IDIyOTMgKysrKy0tCj4gwqB0b29scy9jb25maWcuaC5pbsKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDE1ICst
Cj4gwqB0b29scy9jb25maWd1cmXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA2Mzk3ICsrKysrKysrKy0tLS0tLQo+IC0tCj4gwqB0
b29scy9jb25maWd1cmUuYWPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgfMKgwqDCoCA0ICstCj4gwqAyNCBmaWxlcyBjaGFuZ2VkLCA2MTM2IGlu
c2VydGlvbnMoKyksIDQ2MzUgZGVsZXRpb25zKC0pCj4gCgpSZWxlYXNlLUFja2VkLWJ5OiBPbGVr
c2lpIEt1cm9jaGtvIDxvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbT4KCn4gT2xla3NpaQoK



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 13:27:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 13:27:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755423.1163779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQoOf-0002sx-Vu; Mon, 08 Jul 2024 13:27:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755423.1163779; Mon, 08 Jul 2024 13:27:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQoOf-0002sq-Sz; Mon, 08 Jul 2024 13:27:13 +0000
Received: by outflank-mailman (input) for mailman id 755423;
 Mon, 08 Jul 2024 13:27: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=B806=OI=bounce.vates.tech=bounce-md_30504962.668be92d.v1-494f96f395654904a47aff0113bb610d@srs-se1.protection.inumbo.net>)
 id 1sQoOe-0002si-K2
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 13:27:12 +0000
Received: from mail179-23.suw41.mandrillapp.com
 (mail179-23.suw41.mandrillapp.com [198.2.179.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c72b0e57-3d2d-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 15:27:10 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-23.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4WHlK91XYkz35hj2x
 for <xen-devel@lists.xenproject.org>; Mon,  8 Jul 2024 13:27:09 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 494f96f395654904a47aff0113bb610d; Mon, 08 Jul 2024 13:27: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: c72b0e57-3d2d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720445229; x=1720705729;
	bh=oFmoLPEXzn98QnGemcNqcRRcKv4zR3DgUEv5buJilHY=;
	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=cDAhcZAJ1aFCCcfQNghaQKuXT5EmSABJiol5veabm3B4hSVWq6dkRushM3y/2G2bg
	 3FWdvKFA7whNNlYSZAgt6Cv8C/8SnDOQNKRh+mejcBonTu0sVfUQuajEvqrTHMi6rF
	 3WGXJZhqVH547cahgrwwWX6r+bORsn/Pbh7eVqJVMqu5+BV7+aQn3AEQ4hLdpCAPFG
	 MW3Q35JK1kqwGEf1L+atPsYGjlWb3ZpbcqWas3XlZwz4QJxKfkyn3ozhJR1XTkI9F6
	 uDAzpg38QAt+Uh8Tt/pfplv99vpwcBLYxJL2IS4ji4cd9udbzFgdXMbcr9HBtyjoU2
	 uNsvz7jS8pqZQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720445229; x=1720705729; i=anthony.perard@vates.tech;
	bh=oFmoLPEXzn98QnGemcNqcRRcKv4zR3DgUEv5buJilHY=;
	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=j55suZBY/BMT/dznVyJGphLe69JEJPttKVJCpRnYG2JlV3Fgepn8KZfytXEO2Zr8J
	 OGWII96VXGcKlyHmFuHH+5K42KNe3zDs9hLXAteAbWxe63lm+bP0dCypIbcOLdNqo7
	 YQop7aNR3Kpso/taPuK56fQxl+B6rnKOG8Y/jgfb7sdvmim8LZxi+Hnz0r6g3jqvSr
	 TdVbn1qMKqZQoGdiOcSmcupqOdUDoz3+u8CEHOuoxc7xAQ+jEs1gum50SV3WFbrTdt
	 +ApWMNe938t/cGtliOmPPK+OmPSY6zl/qbxi0dCBTgnJmJJb3MiVlUyE63APdZIEZX
	 yR8A7KBReb5RQ==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20XEN=20PATCH=20v12=206/7]=20tools:=20Add=20new=20function=20to=20get=20gsi=20from=20dev?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720445227146
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>, Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Huang Rui <ray.huang@amd.com>
Message-Id: <ZovpKmmoabIvy135@l14>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com> <20240708114124.407797-7-Jiqian.Chen@amd.com>
In-Reply-To: <20240708114124.407797-7-Jiqian.Chen@amd.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.494f96f395654904a47aff0113bb610d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240708:md
Date: Mon, 08 Jul 2024 13:27:09 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Jul 08, 2024 at 07:41:23PM +0800, Jiqian Chen wrote:
> diff --git a/tools/libs/ctrl/xc_physdev.c b/tools/libs/ctrl/xc_physdev.c
> index e9fcd755fa62..54edb0f3c0dc 100644
> --- a/tools/libs/ctrl/xc_physdev.c
> +++ b/tools/libs/ctrl/xc_physdev.c
> @@ -111,3 +111,38 @@ int xc_physdev_unmap_pirq(xc_interface *xch,
>      return rc;
>  }
>  
> +int xc_physdev_gsi_from_pcidev(xc_interface *xch, uint32_t sbdf)
> +{
> +    int rc = -1;
> +
> +#if defined(__linux__)
> +    int fd;
> +    privcmd_gsi_from_pcidev_t dev_gsi = {
> +        .sbdf = sbdf,
> +        .gsi = 0,
> +    };
> +
> +    fd = open("/dev/xen/privcmd", O_RDWR);


You could reuse the already opened fd from libxencall:
    xencall_fd(xch->xcall)

> +
> +    if (fd < 0 && (errno == ENOENT || errno == ENXIO || errno == ENODEV)) {
> +        /* Fallback to /proc/xen/privcmd */
> +        fd = open("/proc/xen/privcmd", O_RDWR);
> +    }
> +
> +    if (fd < 0) {
> +        PERROR("Could not obtain handle on privileged command interface");
> +        return rc;
> +    }
> +
> +    rc = ioctl(fd, IOCTL_PRIVCMD_GSI_FROM_PCIDEV, &dev_gsi);

I think this would be better implemented in Linux only C file instead of
using #define. There's already "xc_linux.c" which is probably good
enough to be used here.

Implementation for other OS would just set errno to ENOSYS and
return -1.


-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 14:14:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 14:14:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755443.1163793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQp82-0001pq-Di; Mon, 08 Jul 2024 14:14:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755443.1163793; Mon, 08 Jul 2024 14:14: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 1sQp82-0001pj-B7; Mon, 08 Jul 2024 14:14:06 +0000
Received: by outflank-mailman (input) for mailman id 755443;
 Mon, 08 Jul 2024 14: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=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQp80-0001pd-NL
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 14:14:04 +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 53195ed2-3d34-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 16:14:02 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a6fd513f18bso383551066b.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 07:14:02 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a77e9aee714sm190346466b.220.2024.07.08.07.13.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 07: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: 53195ed2-3d34-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720448041; x=1721052841; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IWw88CxhQPAZ3lbfUV80WAAMqMpQ84UCL3Vox61Xh9k=;
        b=bgIapu3C6eRieK+a+AjWVxTHJJthVetsNA1v2e6XERa/vEt0M5DGyDR7jkghEQ69oa
         g72wVfujGl3lkJuMBng7F+isd1Rbx1tdGq7eTkLgFIO4VvIJ5FUjjr0p4vH69mpVGyPN
         LhqFyqxaYiT2y06eR6d4tmFiM9c3KJ7kuADkc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720448041; x=1721052841;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IWw88CxhQPAZ3lbfUV80WAAMqMpQ84UCL3Vox61Xh9k=;
        b=ixpNWFDhkLpS5k6R3e3ooFrb+yF8IYWMLNmhODqfX9t1Mtc+C8c5qqh+rog7svwpsS
         aAUALzkUoJX4yfF89uYzs/VJH1TefNUUwbqNEA5/O7LPYr11gJNX+HwBwRmnMscAW0Pb
         JeiGtaics0iZeluLjUXIru96YfA/hw6dwi/0/PTphC5M0uPKofHhtmTH3766wvwZxjXr
         zqNv11HcHX3RWTQLl9EqKuzTNkAQVWQcnrSzbv5mIYQRsEv8GJAhl3No+svjN7nynAik
         71o/EKE0wiKGFFzoo8UjMnJ8p1vLwbtGnsy9T8TXv2lhgMMLxxT6rtchTUCAKAVpO+OH
         2s/Q==
X-Gm-Message-State: AOJu0YwlnnOZskNI7EGa/8kw5yc7z4NY9DS+9J9v9Bx5gY6oLhzyDbcH
	zLeCBJBYdv0cJSzN+tiuBHHa8EIlTaPyKtq1jcGydNGNO5kbw+Fgicd/ZUxIbpc=
X-Google-Smtp-Source: AGHT+IEp/b0gswzlG1s8mQ9ZcJ9fRbLpD6A3QImVJqLN54cSoOcw3Zk+gd3gFhixXEckghyueKtuGw==
X-Received: by 2002:a17:906:29c5:b0:a72:b055:3de0 with SMTP id a640c23a62f3a-a77ba460bafmr747597566b.6.1720448010941;
        Mon, 08 Jul 2024 07:13:30 -0700 (PDT)
Message-ID: <11240124-5615-4cdc-85df-008e720ab4d3@citrix.com>
Date: Mon, 8 Jul 2024 15:13:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 3/6] CI: Refresh the Coverity Github Action
 configuration
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240705152037.1920276-1-andrew.cooper3@citrix.com>
 <20240705152037.1920276-4-andrew.cooper3@citrix.com>
 <ZouuYRgZNr00CSUi@macbook.local>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZouuYRgZNr00CSUi@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/07/2024 10:16 am, Roger Pau Monné wrote:
> On Fri, Jul 05, 2024 at 04:20:34PM +0100, Andrew Cooper wrote:
>> Update to Ubuntu 24.04, and checkout@v4 as v2 is deprecated.
>>
>> The build step goes out of it's way to exclude docs and stubdom (but include
>> plain MiniOS), so disable those at the ./configure stage.
> Since we now disable those at configure time, could the build step be
> switched to a plain `make build`?

Yeah, that works.

https://github.com/andyhhp/xen/actions/runs/9840942508/job/27166367683

The job failed with I put an explicit exit 1 at the end to avoid
uploading to Coverity.  This action doesn't have a dry-run option.

I'll send out a v2.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 14:33:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 14:33:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755449.1163804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQpQi-0004tw-S6; Mon, 08 Jul 2024 14:33:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755449.1163804; Mon, 08 Jul 2024 14:33: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 1sQpQi-0004tp-PF; Mon, 08 Jul 2024 14:33:24 +0000
Received: by outflank-mailman (input) for mailman id 755449;
 Mon, 08 Jul 2024 14:33: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=G+QX=OI=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1sQpQh-0004tj-Qp
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 14:33:23 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05769b58-3d37-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 16:33:20 +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 4687gANW018533;
 Mon, 8 Jul 2024 14:32:52 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 406wknjskc-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 08 Jul 2024 14:32:52 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19)
 with ESMTP id 468DOfTo029834; Mon, 8 Jul 2024 14:32:51 GMT
Received: from nam12-mw2-obe.outbound.protection.outlook.com
 (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 407tts7pwx-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 08 Jul 2024 14:32:51 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by DS7PR10MB4895.namprd10.prod.outlook.com (2603:10b6:5:3a7::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Mon, 8 Jul
 2024 14:32:49 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0%3]) with mapi id 15.20.7741.033; Mon, 8 Jul 2024
 14:32: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: 05769b58-3d37-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=
	message-id:date:subject:to:cc:references:from:in-reply-to
	:content-type:content-transfer-encoding:mime-version; s=
	corp-2023-11-20; bh=ZnwlyQvoE3Rv2/At91FpookQgeRnODnb3bxS9ygpmgg=; b=
	bdJu9KrwwT1dtgSZIP6XxuqtYu3LQE/aIrFjift2j2RR8fLk9f4DTVcDuSAa/Ppy
	ZXWcN9r+R+75VkoAC2LFPuh4axlrVcb1HRBYuiPNZvqhNPx0NwkraeHROGd+wIM2
	WPx0kUzkdYFDeH4TlS6HCcicHE7L1jv53vfBIt0YwqEkXBkARh1LU6DUKofL1szz
	v4O60ZCvgd9W62/4sBYHwidiRYIrdIPc0i0AIWHU1kmgM3xAtx26pqbH3vptpY1X
	1BaantUbzMX8KgaCEYKhjkZxQQWHAnVMNEeGePsrC8ZfZqZMF+/cH6x6vnZXsJM1
	2hlP4b2C8xidoj4lta7aVA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QSwVlLpV/Fb5rygUPc4N/zrZCVh76tklHR9T2ZR0UWsCJ6n5m/NMcVwTICJFU48jJjyDzv7Btifm13Bmk9aChqvuG12YQVLW2eymvkEsmTRO5FmcAdXMDRc8rcNcDPIGuDUWSNECJikOpjvLVUXffgvRTdAcBgsNoVGGszltBf05HRxq8eaJ7c4BpvUHqFeaPyji3NpnDILEfaTaEVYQCNcPCj71ucsZi3i3LuO4S6RkRgUVm7KrDPiCtT0V/aPh7o9KO2tZk0G+lWbgOwIllmk0GPjrKQaEplwOBkseYs4CA7sOMW0U+n8ZIQut735lvErkxz18gy5Ut7WxzSVEMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZnwlyQvoE3Rv2/At91FpookQgeRnODnb3bxS9ygpmgg=;
 b=RZkMaT8WbaERjmtWWSnLyTxKZ2FKDLbHeZeEtAD8nlVCg7P0Jnb0atRdsSCBqe/eShWZbN9tMjJtLymKrTiVdxYeUgLA5qcIlRdd6kLaFt7AQSYM9aYi7ptzO/cVM406HgjWUqQFgEybT4RTeFBSFEwj56w9wQGhWgDXN93WLegnS26hftor1rj0AMthZnvXUVSSA73R6nSV86jbCQZ2mw0+F+F+cLH4BXLbItofwgMVUNkofZ8eaTL2g79iDfqed0iBcy2+R+/9SS1f4cazITfdeu2S9dhsX9bP7yWpCYEpNnZkqUjcXsWoJL1z/lVI4ocKiUSxUlGVVJNC0jn0Fg==
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=ZnwlyQvoE3Rv2/At91FpookQgeRnODnb3bxS9ygpmgg=;
 b=Oq5TyecJhBnFz4yTTZ4OduvpleW38mUA1EXGGYCd7wTsvN3cETb8Wtr6n6Fegy7BrAXqzb5QBsCw1iKs6xoIF61UBInKIpRYPtc3p7QKMYEBTJtg2MxIfc60uOzbX1c7otkE/S+YjPFWZhXateiN1N9zzeoEAYnes49N2iNtNe8=
Message-ID: <9495c804-6d23-43c5-a3c9-b91b9c27cef5@oracle.com>
Date: Mon, 8 Jul 2024 10:32:46 -0400
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: make multicall debug boot time selectable
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
        linux-kernel@vger.kernel.org, x86@kernel.org,
        linux-doc@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
References: <20240703115620.25772-1-jgross@suse.com>
 <d28f8da5-7903-41c8-9213-4e24e376c837@oracle.com>
 <2d9ffe19-1663-499c-9699-c13ab7a341ee@suse.com>
Content-Language: en-US
From: boris.ostrovsky@oracle.com
In-Reply-To: <2d9ffe19-1663-499c-9699-c13ab7a341ee@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MN2PR12CA0007.namprd12.prod.outlook.com
 (2603:10b6:208:a8::20) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BLAPR10MB5009:EE_|DS7PR10MB4895:EE_
X-MS-Office365-Filtering-Correlation-Id: 13536dca-f0b9-4816-5468-08dc9f5ad757
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7416014;
X-Microsoft-Antispam-Message-Info: 
	=?utf-8?B?SERWNlQ1VExpd2N4Z2FBbDJhK0diUWtTalJXdHhRaHRPS2JkNmpnVk1Xdzhh?=
 =?utf-8?B?RmY1dmhNYStYZ2w0U1VEaUZ4QzhqSnMzblREaXNDWFM5TGUwMzdaY2hId1d2?=
 =?utf-8?B?elNhbmUrZFR2cjhvWGVXUjRPaUM5QXk0Qm1QalJOVThXVU55VVhuVkZpRGhW?=
 =?utf-8?B?Y29CLzh6SmpuZzZhOVZEaEJYMjE1SDRjL3hmUWNEdGpvSi8rMGpjL09zV2J3?=
 =?utf-8?B?eWVrRURiQWttMTMyd016YkRqYTY1VVljQVpFcm1ZZUhNRjBMZTNrWUorYmZk?=
 =?utf-8?B?R09qaEkzNTBzKzhRS3ZXckc5Rmsyb2xSVm01YmlFYmJTYkFTcGp1VzFLOXJ5?=
 =?utf-8?B?QnY0YXVpaXlkRnJxQXhSbmw3Z2JqWDVDbUd5WHFPSU16TThqR2NWUHN6WThp?=
 =?utf-8?B?WWRtblp2WlRRaHNBVy9nMWtsaHpOazFQZEtiRlcxVkpUMlVkNXhtdzRJUlNr?=
 =?utf-8?B?SkJzYisxREREd0ZVQnByUm9UWE0xMzBPcXprbDZ5QTc5Ykt4MVo0cGZhd0ZP?=
 =?utf-8?B?UXZHRnFqZmlOZkc4UWZJemxscUU3NXJJalExRVE3bkR1U0JpVHorY0hDNVc0?=
 =?utf-8?B?aVAyZXhLOU11ZndoaDdSSEpjSVl1WmxXV09hQ3hGSXY4emlGT1JMRTUzVEJQ?=
 =?utf-8?B?VWVrVlFFbzFPTXFPaWFlMjhKell5QUpQUGo0bzdPT3B2dXk4L204T2VEWVg1?=
 =?utf-8?B?M0RyaGxjUWwybDRUVXV5Q0tWaEs3OUFoMXhwMnViZkZvM0FWbGQ3V0hkTDBS?=
 =?utf-8?B?ekFlK2laR2ZSclFKSGN5cEJEQjlDdW5MMFl1TmdndWxTcjQwYldUOGNzSTNT?=
 =?utf-8?B?Z0cvR2tCeVZRQy9WNjRacFNIZXZhZTV3SDg0ay9wNkRFRWh0cm56a2J4OGdI?=
 =?utf-8?B?M0p1a0V1Rkl3Tk5tL05XRGx6OTNLNkNiNDlBSTFtSmFHNkZDRWVra0tLVnZt?=
 =?utf-8?B?M1ZLOTJZRVFiWGljOGRJalFiWDl3SVlKb0xvVXZ3NzM3S1RQRTdEUzl6V1NG?=
 =?utf-8?B?SlFzbTdibnFBSE44aXpIZEJjK0hZdFVjRjZLaDJteXhvWEdKci9WRllNQVRK?=
 =?utf-8?B?NVJ2OStqa0hFdlF0d3FQTlY3UjBRWGZzS05CLyt6TTZNWmQ2UzN0bW1xTWVK?=
 =?utf-8?B?N0hjOU1UeDVlRjVqMHhxL3lwV2tpaGx3dktkMXNyQTJkR21EeHc3RCtwdkZ2?=
 =?utf-8?B?bW1XWXhtSzFETUtyemNlMnArUmRNQ3lLMjRkQ0xtbmNYbXJPejlYMk5IYVA0?=
 =?utf-8?B?UjdKRjJlY3hUMG5LVDdML0dqMHB3M2x5WDdsTGpQWE41RGpnQ3FmdEd5Y0xx?=
 =?utf-8?B?aVR2eFkzNndPZHpLRnloQlBsQ0JsM1RRbXFaWjR2Q0IzWElNN0Q2SC9RYWVx?=
 =?utf-8?B?bzFFVFRFc1JzZjE2bmdWdzJZckRCcG1HNkZWZ01GQkF1RlJvSndYa1NaQlFt?=
 =?utf-8?B?S2hPZTM2RzdGZU1qYS9oY2hFMkVjekpDQTZZSnBBYUlEMDhzQmtETXJhL2Ix?=
 =?utf-8?B?emppVGZBVFo0VE9odnFwR0U4ajFVV1UrZW5mSjUwaGVlRTB0a0wxRWhpZE82?=
 =?utf-8?B?UktvUHNWRUhUdldFWk93eGwvcVNDY3d2Qzc0VVV5Ny9VeEhZWnRJN0hiZjhy?=
 =?utf-8?B?MGM3dUN2TTdaaXg5aDd2K2tzWWpOcytGckViUUJ5WDh3bG1Da1FzNm5WQVV6?=
 =?utf-8?B?akxUSkgrN2p4bjhBR0hnRzRqOW93ajA5REJTQkVUdmNGNml5Zmo5T0Ewb09E?=
 =?utf-8?B?WmJuUUhrUTlRMFIyM3dTRSt2MHhZSnMraTVEc0tLTHFZbWpvTDFxdzZtR0lN?=
 =?utf-8?B?LzhEWDZ1M2IxMlhWM011dz09?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?OW5WaFhENm1WL0RjZTUvSkZBZjBOK0ZmNzViUE84cjQ5RHk5bWxSd1JmSXl3?=
 =?utf-8?B?RmhYeWxvVEZKcEtMdWhiTGFMTWdKWk9ZOElqd0IxYVMvUXlWcmxBODdEbjVi?=
 =?utf-8?B?RUMwSE1sVFZTbHB1eGlXNTFRN05YUkpWZzBjZ1JkYWQwdFpYMnpaZnpmT0tl?=
 =?utf-8?B?MTNFbEZkcXJhVTVybVBtbWRRTzhvSk5BUFUwUEJMZWNKdDVhdGQwQXl2aU9V?=
 =?utf-8?B?TFBHZm9KK2xNbWV5RG5JTTJPZjQ0czRQT1g4R2xtUVpHN0R5b1RSSzU4dWJO?=
 =?utf-8?B?TUxBRmZtejFrSFhmeVZYZ0tnMGMxbmJidXh0VGF5V2xsMVNzYlYxRHA3NVZL?=
 =?utf-8?B?MnhsdjEzYUZxQk8vN1hoNDIwRHBuUTRRRzBkNTNuNVRNYWwxNW5lZHpmM0cy?=
 =?utf-8?B?NjNNSGJTcW5mWHBqOWUvbHlDeVhrenR2UGZSbEVmb1lWREVINFcwS1phSmlX?=
 =?utf-8?B?M1dhL3lOcFJnRHJQbEFid3pzZnVCU2x4Z1BiTE5xeWs2U1JQWHJWREg4Z0pK?=
 =?utf-8?B?RmpjaDVOdlg1ZW9oOXFhNXI3OWNvWEdrVHZBbng0Rys4U1V0VHllVnVlSWNk?=
 =?utf-8?B?UlI1bWM5N0pDT1hGZDdld2xxVXRyYUEraWFjVE5PdXVmSCs0U3ptZ0RZUmJO?=
 =?utf-8?B?cFUxVGhINTI1dC9NQ3NmMU1tWGdIb0JpRGFRVzlON3ZQUXkrellLVk1CN3Zv?=
 =?utf-8?B?WlQ2cjBoOXB3OUxvQWRUZmZMMXRPV0NrTmkydGlZK0pXbzgzeVZUcU9qN0Z1?=
 =?utf-8?B?eTd4NjJWbnZUa2U3UUZxRHN3RXlEVVh0VnNSbzdDVzhDcVlmNHpYUUpJMHVo?=
 =?utf-8?B?a2UwYmxKRDFPbDVPSjlDR2psK3FnamdBMFNEeU9oL1VkdVRITFJYS2szZlJW?=
 =?utf-8?B?OVEySlltZ1B0cEpyeEhyc1FjTGIyKzlTeHZkK3lQbjJTQjBQRExQSUtMMWU5?=
 =?utf-8?B?Z2xqWGNuZXEzbC8vZnlHdWxLczZ5cFhpUm1ocHRKU1ZocE90VEY4aHQzL0JF?=
 =?utf-8?B?T0JJblg2a0ptU0dRQ0tCdXMxZVA3Zlc1dTVDR3k3TEQxTzAzVUtvbTlXUERv?=
 =?utf-8?B?NDJVZ2Fod3ZraVVRc0ZmMWg4ckppR3Rtbll0eGdYS3IwRTF3dGZ4RDkvN2FV?=
 =?utf-8?B?M2FFbEs5dW82eUIvMXN3OHZsZ292bFA4LzVPNlhpQmwxN1Fhd01kRG40SFM0?=
 =?utf-8?B?L1FuV25EVGJNMGptWldvOWhtWUdmSkovSFlTZUNMNW9UQ1VvRjd1eDVocjlS?=
 =?utf-8?B?ZmNlbDdYWC81T0REbkFja2toNWVKVTZIUzA1bEhyTmg5aEJmZFJvZFdlM1hW?=
 =?utf-8?B?eXV5bTlHWWlJaGhJY1ZBK3JtcU1jQld2UThLYTdqUUNwdVhLTG1JVmZYcWFW?=
 =?utf-8?B?YWg0aXZaYkhCSG9oMURVejRDd3VYa1A4cUVQWXZGdEZ2dHl0NXY2cGNjYWRT?=
 =?utf-8?B?SGxKd2wwVzdESHgzTnZ0c0pOdmEwb1FvelJDVW9neGo0enZmVHQ0eWJ5U0wr?=
 =?utf-8?B?Sy9iUTVYOTZQWjBPNmRCZnpvUzlBVFhoSDVrSEF1bWVwQXNJSEsvOUpHanc4?=
 =?utf-8?B?cFl5MzdSN3p6UUt1dFdsRzhwV2JmREkrcElpMVJNQllpRFd5QTNiTllldlYx?=
 =?utf-8?B?cTRrRmcvcmFCbXFWV0lMQzNjZ0ZYWksvN2xubi8yLzVkRU5QZlFOeXVrQkRj?=
 =?utf-8?B?UWZoMi9TZFk1aTJQemUxK1pYdWg5b0NWL1JGZWlCZzhWV3FwM0QrZHhFemQy?=
 =?utf-8?B?V2Rub1hOeWVDc1loY291QUlnaUhqUzRKR0VzQzB2ZnFHRXlZMEN1aW16Skty?=
 =?utf-8?B?OTF2NmFQZGZTM3l6dm1KQ01kUlcxT0p4UVV2T1FTR1JVbzZvWTB4NHI1bGZ1?=
 =?utf-8?B?Z1FKYUFnanVMSE8zODR3dTF1MUxCRWo4clpZMnRQaVZNOXRTcUk5RkM0TTdI?=
 =?utf-8?B?MWJyU0ZnTEs2YnNLdVJ4ZkoyU1BkME44YW1kNk00MHNxR1krTTZLS0xka2Jp?=
 =?utf-8?B?T0hzY05mc1NxRWh2aTl3bExJYTRyeTRSWk1lbmplZW5TelJVNWg0MERGK2or?=
 =?utf-8?B?OE5DUkdLZWZHTXlJd2xPUWpWTmZoR1p4ZUdzWEhuV0R0YS9tUW55cU5wVGZB?=
 =?utf-8?B?ZEFwS0oweUpqd3ZZakpnSHJuWFdWRzE5eDRKTDgwZlhNS01nRWE1ZkRKd1BW?=
 =?utf-8?B?M0E9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 
	yIXFP3aiai+S0/6+IipzCc8LKVX+MnSrrTjWx2Y6ErewuhG2Tvw+5vBbdHNstrtp35xNW6h74NHk7IMwboh1V/z+pg6lUttuhyPaRHqf/x6FANkBFsDSog1sPJcuSmay0VgOL4n75SnkSxfutew/caIrvHStXacbUhaJ8Qcrr5XoBRcsPrmtLOcSDFCwKwO31Hi9Bvt8Lh980qvKrciI+n6FjT9jpqSIpnSpy9ZD9qz8DwHLKCWSbQqIT5JkZpsiMP2/p3hHvYZGrmosliX8auWVyY7q94RWHJ78joD6WjHPQFEvIpcrrSLKhB2buOl6/V0qW+RrgdgCLfZuWqJXgtsW2emizSlE4R3diKYKVNeHtW1E2sWu0EUC4+F8gQ5UoD6qq3+lYNbEJ+f7Yd/Gc05x8oGp3UJChkMIPnS0KNejzNIqHIY/TtnLoiBP3sNuvxbfVFXQlsrlBPbCqxfoqlP1zpBaFaG/GmVxcnEuzH7awCpWUvw7gNkvkjt31D5BZ3z76ToLtUVB7HLeGDz/vhTjndSOlrrY+rIzoYtKrbAI5519jXeKXltxx2yfKkIHkuSuTXDSEcsCadMx9c6Cz/xXe+j8wUJt7l2iH5Sm+xY=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 13536dca-f0b9-4816-5468-08dc9f5ad757
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2024 14:32:48.9368
 (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: pA0Io4IxTz9Y9WzzVbAT4Finbz6VjHDj0nXLMxzsaROtWCxLmev+aDJCTmzBNul1pHPyDYpUMv2gWR4XcmbTvVJw95jYaKFiainF3R8MNYM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4895
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-08_09,2024-07-05_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 suspectscore=0
 malwarescore=0 spamscore=0 phishscore=0 mlxlogscore=999 bulkscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000
 definitions=main-2407080109
X-Proofpoint-GUID: H-b-0uLI3KfpxXfO-DwWy8c9NY6Umx_E
X-Proofpoint-ORIG-GUID: H-b-0uLI3KfpxXfO-DwWy8c9NY6Umx_E



On 7/8/24 5:04 AM, Jürgen Groß wrote:
> On 06.07.24 00:36, boris.ostrovsky@oracle.com wrote:
>>
>>

> 
>> Also, would it be better to keep these fields as a struct of scalars 
>> and instead have the percpu array of this struct? Otherwise there is a 
>> whole bunch of [MC_BATCH] arrays, all of them really indexed by the 
>> same value. (And while at it, there is no reason to have 
>> callbacks[MC_BATCH] sized like that -- it has nothing to do with batch 
>> size and can probably be made smaller)
> 
> As today the mc_buffer's entries are copied via a single memcpy(), there
> are 3 options:

Ah yes, it's memcpy, I didn't think of that. Then leaving it as is is 
the best.

> 
> - make mc_debug_data a percpu pointer to a single array, requiring to
>    copy the mc_buffer's entries in a loop
> 
> - let struct mc_debug_data contain two arrays (entries[] and struct foo 
> {}[],
>    with struct foo containing the other pointers/values)
> 
> - keep the layout as in my patch
> 
> Regarding the callbacks: I think the max number of callbacks is indeed 
> MC_BATCH,
> as for each batch member one callback might be requested. So I'd rather 
> keep it
> the way it is today.


Right, I was trying to point out that it's the max number but I suspect 
it usually is smaller --  we currently ask for a callback in fewer than 
half of the cases where we submit a request.


-boris


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 14:56:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 14:56:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755468.1163826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQpnJ-0008AU-Q9; Mon, 08 Jul 2024 14:56:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755468.1163826; Mon, 08 Jul 2024 14:56: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 1sQpnJ-0008AN-NI; Mon, 08 Jul 2024 14:56:45 +0000
Received: by outflank-mailman (input) for mailman id 755468;
 Mon, 08 Jul 2024 14:56: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=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQpnI-0008AG-JH
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 14:56:44 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 49749436-3d3a-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 16:56:42 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2ebed33cb65so51157731fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 07:56: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
 d9443c01a7336-1fac1535b89sm186858165ad.137.2024.07.08.07.56.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 07:56: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: 49749436-3d3a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720450602; x=1721055402; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PZu5lU1bZm0wn0+gvaQQcQeORqghi90Aa3WEid/B6BQ=;
        b=BYTTMtYF7uWAr9lcZ3m1qiTg0/vAgJdKZGhmm2JWyGQSdMMpQAVY/seqF05hOU4xCA
         VJ3b6AfUjQ8RdTf2TUesz4IDuk88JCrIED/n67D6aQRUv58ntRZMI3x4Y+VL5dQMojBd
         xOcNBiMdM5q5SeXlFw2qcl17jFcTy0MqZy2TfgRIErs239O57V4T2dncwPFMtWBgZgfU
         BilC6DrOlUSUuE4FGRH1Q5MNP+EK08TnVYgRp7dE/aQDoys2I6rOXctR7Oa95O5pApmy
         IAOLEceVoEqeNyT3TMiQ8LfHoAhBCDKyZObZ4SWc8uMEQrnBkBYhXwMAVpo3lyLzhFZ6
         2PlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720450602; x=1721055402;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PZu5lU1bZm0wn0+gvaQQcQeORqghi90Aa3WEid/B6BQ=;
        b=mSx5O5WVzvnaZwORghvgS6xcK/5JyZyjEyvURL6OzvFP1VhnxwLJKpPzGsTYNGEQGr
         BBXkh9EqKBNQrbmUoTPwveWs6FLwaPTQ7q8V9FbBSGFOGhWNEUB8O7+67aVuxWSj6E0m
         AVl5bdECfG3n5wGLKJfNxHXwMVECnqXswveoYUVQSK5hK4F5ifvdzoC9II+bUi28lolc
         HVPmJfNdmrmMCzSaxeGX2WOD3fcfQ60yK6R7qi9BRxDTksTRQ909U7GVpyTbiQsNYCNY
         xQp44jfSmsT9TJidYe2jBHuAzUvgqTHrdaExid50u9hxaSWjU4DqKj2US6oYIpUJcowV
         gz0g==
X-Forwarded-Encrypted: i=1; AJvYcCWq+69Yvj1CT8gp61aV8z+LVux7sVwdy74NtAGcsMGbGvIPIl1wX/NbdMd9pJNp0uuO3O8sbq5hW1d/8HlDUy3k53Wkg2TkQUSZy4qbNyU=
X-Gm-Message-State: AOJu0Yyahd7SjKvqdnpjdYyJEFYyZk/t3ieP6gZxfd8ivY8NHQZs2Fqg
	hc1m9Kr0CvOdo8zqys7J2l32SZlmO0lXeRs6tktSwULf5FWLvbW7NN7mI+jzvg==
X-Google-Smtp-Source: AGHT+IFfZVrErqLsR4IuR4xLWoAb5bmfWfOFmR2FBPwrj6ShDDvSFRIjya241TXlJWZp/A2HD6onTw==
X-Received: by 2002:a2e:8456:0:b0:2ec:56ce:d51f with SMTP id 38308e7fff4ca-2ee8ed42d0dmr73137031fa.20.1720450601734;
        Mon, 08 Jul 2024 07:56:41 -0700 (PDT)
Message-ID: <3b2c9019-b907-44d0-b767-315f7d42a2a1@suse.com>
Date: Mon, 8 Jul 2024 16:56:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 1/7] xen/pci: Add hypercall to support reset of
 pcidev
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <ray.huang@amd.com>, xen-devel@lists.xenproject.org
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-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: <20240708114124.407797-2-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.07.2024 13:41, Jiqian Chen wrote:
> When a device has been reset on dom0 side, the Xen hypervisor
> doesn't get notification, so the cached state in vpci is all
> out of date compare with the real device state.
> 
> To solve that problem, add a new hypercall to support the reset
> of pcidev and clear the vpci state of device. So that once the
> state of device is reset on dom0 side, dom0 can call this
> hypercall to notify hypervisor.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

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

Just to double check: You're sure the other two R-b are still applicable,
despite the various changes that have been made?

As a purely cosmetic remark: I think I would have preferred if the new
identifiers didn't have "state" as a part; I simply don't think this adds
much value, while at the same time making these pretty long.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 14:57:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 14:57:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755472.1163835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQpnl-00009y-5E; Mon, 08 Jul 2024 14:57:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755472.1163835; Mon, 08 Jul 2024 14:57: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 1sQpnl-00009p-2U; Mon, 08 Jul 2024 14:57:13 +0000
Received: by outflank-mailman (input) for mailman id 755472;
 Mon, 08 Jul 2024 14:57: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=8GMZ=OI=bounce.vates.tech=bounce-md_30504962.668bfe44.v1-f42f66745943415097d2db68bb7d108c@srs-se1.protection.inumbo.net>)
 id 1sQpnj-0008AG-Cz
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 14:57:11 +0000
Received: from mail179-23.suw41.mandrillapp.com
 (mail179-23.suw41.mandrillapp.com [198.2.179.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5954224a-3d3a-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 16:57:09 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-23.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4WHnK01tKbz35hbXQ
 for <xen-devel@lists.xenproject.org>; Mon,  8 Jul 2024 14:57:08 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f42f66745943415097d2db68bb7d108c; Mon, 08 Jul 2024 14:57: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: 5954224a-3d3a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720450628; x=1720711128;
	bh=4piNvsS4WN4SgZz9wtn4pAeV5N5WpyNXM0WLds1yayM=;
	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=tmckCEB20Sl2tuCkFwQ/Ro5YNUG5cuHwSURybQ+tOCxmpxCVm0Fb3On/tA4d4bsdX
	 bDkQK7N4hV9s0gW2Mu0t/eX1z32B6mEyALSpgjqEyDTvCr/YfTjHIMv7KYggaisvAj
	 VmaSqVV1Xcgzj/gSvnpL9pV7F0qG0BGxuLYIEyHaf0c6O96N92hr4fCwvd0tWuZ6LF
	 D3XBDyaEmLkHwHAKBHN2LII2jb6DdRdVRrCzxHjkl57KBmbVoL6yHw0hMcyvu3wr0v
	 /5QQkM6qstONQN0YjHAcuv2xvQ6IbdCOIvKzsgjcbGgWIJG9t6wacbdPXtUGzfZJ2K
	 aw1Eh6F7pBOWg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720450628; x=1720711128; i=anthony.perard@vates.tech;
	bh=4piNvsS4WN4SgZz9wtn4pAeV5N5WpyNXM0WLds1yayM=;
	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=gAC5i15jQevQU0FxvDvv97JBAKFr4GjvQ43RivsewCluio7O95HIiIy4DamprS/Yf
	 CgkryRmt4VKcfmEZSQgW5UPOUOSAABuFjuM2m5MKgOTa4rN6CHhfmJ8PHETusLnN0R
	 /odAMs23czKICaP/nGCSkZJoWnIu9TTAtATEU7y4q5qeIiSKUs7/X/Y3svPJVNhr4f
	 LG60zJgHUVlqCF4tc2qK5lL5PMyfSTpVHJm1E0DtKi5D+9K9bD/ipn9u1TbZ5moYwS
	 cRwuUPk33NonjwDQoZNqcwKWVr3dBNy8XvnO7MJx/hAmI8OaQR8kxwljFj3fqDOlPm
	 qi3ygjZbJIc0w==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20XEN=20PATCH=20v12=207/7]=20tools:=20Add=20new=20function=20to=20do=20PIRQ=20(un)map=20on=20PVH=20dom0?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720450626167
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>, Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Huang Rui <ray.huang@amd.com>
Message-Id: <Zov+QeadGqtzOfKY@l14>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com> <20240708114124.407797-8-Jiqian.Chen@amd.com>
In-Reply-To: <20240708114124.407797-8-Jiqian.Chen@amd.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.f42f66745943415097d2db68bb7d108c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240708:md
Date: Mon, 08 Jul 2024 14:57:08 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Jul 08, 2024 at 07:41:24PM +0800, Jiqian Chen wrote:
> diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
> index a4029e3ac810..d869bbec769e 100644
> --- a/tools/libs/light/libxl_arm.c
> +++ b/tools/libs/light/libxl_arm.c
> @@ -1774,6 +1774,16 @@ void libxl__arch_update_domain_config(libxl__gc *gc,
>  {
>  }
>  
> +int libxl__arch_hvm_map_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t domid)
> +{
> +    return -1;

It's best to return an ERROR_* for libxl error code instead of -1.
ERROR_NI seems to be the one, it probably means not-implemented. Or
maybe ERROR_INVAL would do to.

> +}
> +
> +int libxl__arch_hvm_unmap_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t domid)
> +{
> +    return -1;
> +}
> +
>  /*
>   * Local variables:
>   * mode: C
> diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
> index 96cb4da0794e..3d25997921cc 100644
> --- a/tools/libs/light/libxl_pci.c
> +++ b/tools/libs/light/libxl_pci.c
> @@ -17,6 +17,7 @@
>  #include "libxl_osdeps.h" /* must come before any other headers */
>  
>  #include "libxl_internal.h"
> +#include "libxl_arch.h"
>  
>  #define PCI_BDF                "%04x:%02x:%02x.%01x"
>  #define PCI_BDF_SHORT          "%02x:%02x.%01x"
> @@ -1478,6 +1479,16 @@ static void pci_add_dm_done(libxl__egc *egc,
>      fclose(f);
>      if (!pci_supp_legacy_irq())
>          goto out_no_irq;
> +
> +    /*
> +     * When dom0 is PVH and mapping a x86 gsi to pirq for domU,
> +     * should use gsi to grant irq permission.
> +     */
> +    if (!libxl__arch_hvm_map_gsi(gc, pci_encode_bdf(pci), domid))

Could you store the result of libxl__arch_hvm_map_gsi() in `rc', then
test that in the condition?

> +        goto pci_permissive;

Why do you skip part of the function on success?
But also, please avoid the "goto" coding style, in libxl, it's tolerated
for error handling when used to skip to the end of function to have a
single path (or error path) out of a function.

> +    else
> +        LOGED(WARN, domid, "libxl__arch_hvm_map_gsi failed (err=%d)", errno);

No one reads logs unless there's a failure or something doesn't work. So
here we just ignore failure returned by libxl__arch_hvm_map_gsi(), is it
the right things to do? Usually, just ignoring error is wrong.

FYI: LOGE* already logs errno.

> +
>      sysfs_path = GCSPRINTF(SYSFS_PCI_DEV"/"PCI_BDF"/irq", pci->domain,
>                                  pci->bus, pci->dev, pci->func);
>      f = fopen(sysfs_path, "r");
> @@ -1505,6 +1516,7 @@ static void pci_add_dm_done(libxl__egc *egc,
>      }
>      fclose(f);
>  
> +pci_permissive:
>      /* Don't restrict writes to the PCI config space from this VM */
>      if (pci->permissive) {
>          if ( sysfs_write_bdf(gc, SYSFS_PCIBACK_DRIVER"/permissive",
> @@ -2229,6 +2241,11 @@ skip_bar:
>      if (!pci_supp_legacy_irq())
>          goto skip_legacy_irq;
>  
> +    if (!libxl__arch_hvm_unmap_gsi(gc, pci_encode_bdf(pci), domid))
> +        goto skip_legacy_irq;
> +    else
> +        LOGED(WARN, domid, "libxl__arch_hvm_unmap_gsi failed (err=%d)", errno);
> +
>      sysfs_path = GCSPRINTF(SYSFS_PCI_DEV"/"PCI_BDF"/irq", pci->domain,
>                             pci->bus, pci->dev, pci->func);
>  
> diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
> index 60643d6f5376..e7756d323cb6 100644
> --- a/tools/libs/light/libxl_x86.c
> +++ b/tools/libs/light/libxl_x86.c
> @@ -879,6 +879,117 @@ void libxl__arch_update_domain_config(libxl__gc *gc,
>                                   libxl_defbool_val(src->b_info.u.hvm.pirq));
>  }
>  
> +struct pcidev_map_pirq {
> +    uint32_t sbdf;
> +    uint32_t pirq;
> +    XEN_LIST_ENTRY(struct pcidev_map_pirq) entry;
> +};
> +
> +static pthread_mutex_t pcidev_pirq_mutex = PTHREAD_MUTEX_INITIALIZER;
> +static XEN_LIST_HEAD(, struct pcidev_map_pirq) pcidev_pirq_list =
> +    XEN_LIST_HEAD_INITIALIZER(pcidev_pirq_list);
> +
> +int libxl__arch_hvm_map_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t domid)
> +{
> +    int pirq = -1, gsi, r;
> +    xc_domaininfo_t info;
> +    struct pcidev_map_pirq *pcidev_pirq;
> +    libxl_ctx *ctx = libxl__gc_owner(gc);

Instead of declaring "ctx", you can use the macro "CTX" when you need
"ctx".

> +
> +    r = xc_domain_getinfo_single(ctx->xch, LIBXL_TOOLSTACK_DOMID, &info);
> +    if (r < 0) {
> +        LOGED(ERROR, domid, "getdomaininfo failed (error=%d)", errno);
> +        return r;

libxl_*() functions should return only libxl error code, that is return
code from other libxl_* functions, useally store in 'rc', or one of ERROR_*.

> +    }
> +    if ((info.flags & XEN_DOMINF_hvm_guest) &&
> +        !(info.arch_config.emulation_flags & XEN_X86_EMU_USE_PIRQ)) {
> +        gsi = xc_physdev_gsi_from_pcidev(ctx->xch, sbdf);
> +        if (gsi < 0) {
> +            return ERROR_FAIL;
> +        }
> +        r = xc_physdev_map_pirq(ctx->xch, domid, gsi, &pirq);
> +        if (r < 0) {
> +            LOGED(ERROR, domid, "xc_physdev_map_pirq gsi=%d (error=%d)",
> +                  gsi, errno);
> +            return r;
> +        }
> +        r = xc_domain_gsi_permission(ctx->xch, domid, gsi, 1);
> +        if (r < 0) {
> +            LOGED(ERROR, domid, "xc_domain_gsi_permission gsi=%d (error=%d)",
> +                  gsi, errno);
> +            return r;
> +        }
> +    } else {
> +        return ERROR_FAIL;

Is it really an error?

I few values can be returned here,
  * ERROR_INVAL meaing that the function was called on a dom0 that don't
    do "GSI",
  * 0, that is success, because the function check if it need to do
    anything, and since there's nothing to do, we can return success.

> +    }
> +
> +    /* Save the pirq for the usage of unmapping */
> +    pcidev_pirq = malloc(sizeof(struct pcidev_map_pirq));
> +    if (!pcidev_pirq) {
> +        LOGED(ERROR, domid, "no memory for saving pirq of pcidev info");
> +        return ERROR_NOMEM;
> +    }
> +    pcidev_pirq->sbdf = sbdf;
> +    pcidev_pirq->pirq = pirq;
> +
> +    assert(!pthread_mutex_lock(&pcidev_pirq_mutex));
> +    XEN_LIST_INSERT_HEAD(&pcidev_pirq_list, pcidev_pirq, entry);

I don't think that's going to work as you expect. libxl isn't a daemon
(or sometime it is but used for several domains), so anything store in
memory will be lost, or would be shared with other guest.

Do you need this mappins sbdf<-> pirq ? Is there a way to query this
information later from the environement? If not, you will need to store
the data somewhere else, probably in "libxl_domain_config *d_config" as
libxl can retrive the data with libxl__get_domain_configuration().
There's also the posibility to store that info in xenstore, but we
should probably avoid 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 Mon Jul 08 14:58:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 14:58:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755477.1163845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQpow-0000mz-Ey; Mon, 08 Jul 2024 14:58:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755477.1163845; Mon, 08 Jul 2024 14:58: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 1sQpow-0000ms-By; Mon, 08 Jul 2024 14:58:26 +0000
Received: by outflank-mailman (input) for mailman id 755477;
 Mon, 08 Jul 2024 14:58: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=suqh=OI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sQpov-0000mh-Gs
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 14:58:25 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8677e9e8-3d3a-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 16:58:24 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2eea7e2b0e6so14500991fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 07:58: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
 d2e1a72fcca58-70b2adc5f46sm2989759b3a.151.2024.07.08.07.58.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 07:58: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: 8677e9e8-3d3a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720450704; x=1721055504; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Zgum466QHJ7ydqdO5ETUPd+3a6X1tyChMoxuZMXY6Ts=;
        b=dc3qcfgeCwkOexaASe7IfbrkjVnyHw3wq1iWvMKdm2Yp0hEmzzEDuy36ZABnVj9npQ
         wH0a+n1fb2BGedyKsRyanc26PM79ylp1cglN0tifDxbd2tCYqfiiKE+yRyrzXP1nfBo3
         MuqhazbWmJWY1h+KajPMeuLkTsO3J0P8LMMssHdSk7+5ayvoNLk6so/OceZEbv7By1Ja
         nCeZd2PrcKvWaPaIDD7u9+O8uNf++w6gaMkfVrL6q48NRvK817g6v4AM4xxU/sVUXSD+
         Dic03totjb7xJ0XvoDPRb2RKL8K4vnQLguAxOG5cTtmq2ahwVx3kbiV+zLslWbBSOH2A
         lQTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720450704; x=1721055504;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Zgum466QHJ7ydqdO5ETUPd+3a6X1tyChMoxuZMXY6Ts=;
        b=LBHc5sQ2adszZCSWZXIew7vBMbo+O+2K4jQZ0et2qAJcHOVxDs/Lq/AiytODYFCMPW
         VVoWc4G2p5ZQoUO+mVMCZGKpwUdnkROMJDwP0ZBOZQxXU232i3Dhwu4q5nbsLWZXqsQh
         SSuuyKK8IJz65FvZl3H7KmAUEVShjeu1RB5YSrEEyegWTZiAt0G/VA+rajUsqWlP6UYX
         Z+TiMPKlPttmDrbLC7MnVINak/RXb/u+v+X0T0okGeqQdKn26LnwwAHWeBFLVu7NyBCg
         aZeOWw63F+Yo7oMRsIH/iHUFIEkBGMuYgZ2AAAwDQXZ+rdrLpBkUNi2oChyA6sTe4ptS
         /hEg==
X-Forwarded-Encrypted: i=1; AJvYcCVLNNRkcPx75jJxKLpSmzWkJ+31JJqjUfsByJGzZQSbQ9UeTwzS7QGjvvqIRWFjPRmKkoo/ly16GwkDCZk8/BkJdGa96n6lwMdYQZx+14s=
X-Gm-Message-State: AOJu0Yy27RG/KAN8BbQ7XyV4Y4WCFnZg1isqgNrveqUemz6Z8JzD8/Ud
	f5jABNRNm+bUgSsczyh8KqB51ScEnQVxHakyUvRJAW/8xF+1MGxko2LAUanxtw==
X-Google-Smtp-Source: AGHT+IFtXjYzrV4w5yK72z7EUjTC1/uqV+2fHj4ZVVqHEJL5Q6aXqc+Qm2oAOcRt1rr/CdG8WmQYHg==
X-Received: by 2002:a05:651c:d1:b0:2ec:89b8:3d2f with SMTP id 38308e7fff4ca-2ee8ed45b27mr84632751fa.19.1720450704159;
        Mon, 08 Jul 2024 07:58:24 -0700 (PDT)
Message-ID: <9a384994-5e0a-40c1-80e3-59910bd634d1@suse.com>
Date: Mon, 8 Jul 2024 16:58:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <ray.huang@amd.com>, xen-devel@lists.xenproject.org
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-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: <20240708114124.407797-3-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.07.2024 13:41, Jiqian Chen wrote:
> If run Xen with PVH dom0 and hvm domU, hvm will map a pirq for
> a passthrough device by using gsi, see qemu code
> xen_pt_realize->xc_physdev_map_pirq and libxl code
> pci_add_dm_done->xc_physdev_map_pirq. Then xc_physdev_map_pirq
> will call into Xen, but in hvm_physdev_op, PHYSDEVOP_map_pirq
> is not allowed because currd is PVH dom0 and PVH has no
> X86_EMU_USE_PIRQ flag, it will fail at has_pirq check.
> 
> So, allow PHYSDEVOP_map_pirq when dom0 is PVH and also allow
> PHYSDEVOP_unmap_pirq for the removal device path to unmap pirq.
> And add a new check to prevent (un)map when the subject domain
> doesn't have a notion of PIRQ.
> 
> So that the interrupt of a passthrough device can be
> successfully mapped to pirq for domU with a notion of PIRQ
> when dom0 is PVH
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Jul 08 15:15:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 15:15:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755488.1163855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQq5R-0003fR-Q1; Mon, 08 Jul 2024 15:15:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755488.1163855; Mon, 08 Jul 2024 15:15:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQq5R-0003fK-NC; Mon, 08 Jul 2024 15:15:29 +0000
Received: by outflank-mailman (input) for mailman id 755488;
 Mon, 08 Jul 2024 15:15:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQq5Q-0003fE-T1
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 15:15:28 +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 e7a3bc23-3d3c-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 17:15:26 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a728f74c23dso481373766b.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 08:15:26 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a872df7sm2306066b.224.2024.07.08.08.15.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 08:15: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: e7a3bc23-3d3c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720451725; x=1721056525; 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=JorMuW4I5W/Tw/+HTvqxoRUw26KYmT9WGUSw3CyJxJk=;
        b=GIdsnE9ITZj69Qxfh/B07MhuPVK73xfPJFzV8TLoxtG6NoUlW2BXfH7yLo71+OEoWZ
         fuVbAtgHZn4F1+ojZ29kU89NlCAQXQbJ5Q28DKFxGz8zLDpiI8UcGOMKr/MyRr7Gz3bZ
         zJScDL4dDxjJnSERnh++4h19hQJ6dKVTR/VlE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720451725; x=1721056525;
        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=JorMuW4I5W/Tw/+HTvqxoRUw26KYmT9WGUSw3CyJxJk=;
        b=j9oCh2Z1uKOehWAbML8N1UpSs5eoSnvy/nBN52KQeO954Fq9bEIzxn2UP1wfkbXabs
         RJniwKhiHgLTuux0yWHvE+y9J0/PFMBkzesuksNjO2DX79RRoPSHGkO/iMQ4nAVMecuC
         pTagqGR0yIxb/5r7jhUfmHovV1zscMt6pVUE1UfX2ogMPw/dYdUYAQtXIJSK9yimYfFH
         LGwPncnZDMiEp4SdXLaAcUT02YCnnw+4r1XHejfDjKDV6Tvib3LhIHWbYHUwV4XCRJ33
         KXYCEaWI9kb0sL7F55XYU0eIVz3lyvu0oql0KSA8a0JEMaPKVLxfnQs5/swcDTPetb/2
         92sQ==
X-Gm-Message-State: AOJu0YzsbMfdD3Aw3X7d+mLOhvuGP6nuewOHiOG6tZsQom5tMz2MJS/U
	SNWuoUtBl3amkbdngVTdEyPemECgOIyUwT1EsUY0DS02SS4akthwinO4zXUx3nhL4vJBSU+38fh
	i
X-Google-Smtp-Source: AGHT+IFnbEosj0cuR/WmvUenjK8i+dT+ovnQFtFih9q68pm05a0xRhwtiufROB/43GZoqB9X+sl5TA==
X-Received: by 2002:a17:906:1c13:b0:a77:c002:e4ac with SMTP id a640c23a62f3a-a77c002eafbmr657468766b.0.1720451725269;
        Mon, 08 Jul 2024 08:15: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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <JBeulich@suse.com>
Subject: [PATCH for-4.19] tools/libxs: Fix fcntl() invocation in set_cloexec()
Date: Mon,  8 Jul 2024 16:15:22 +0100
Message-Id: <20240708151522.2176290-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

set_cloexec() had a bit too much copy&pate from setnonblock(), and
insufficient testing on ancient versions of Linux...

As written (emulating ancient linux by undef'ing O_CLOEXEC), strace shows:

  open("/dev/xen/xenbus", O_RDWR)         = 3
  fcntl(3, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
  fcntl(3, 0x8003 /* F_??? */, 0x7ffe4a771d90) = -1 EINVAL (Invalid argument)
  close(3)                                = 0

which is obviously nonsense.

Switch F_GETFL -> F_GETFD, and fix the second invocation to use F_SETFD.  With
this, strace is rather happer:

  open("/dev/xen/xenbus", O_RDWR)         = 3
  fcntl(3, F_GETFD)                       = 0
  fcntl(3, F_SETFD, FD_CLOEXEC)           = 0

Fixes: bf7c1464706a ("tools/libxs: Fix CLOEXEC handling in get_dev()")
Reported-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Ross Lagerwall <ross.lagerwall@citrix.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Jan Beulich <JBeulich@suse.com>

I'm embarassed to say that this was only spotted by Ross when I was
cherrypicking fixes from staging-4.17 into the XenServer patchqueue.

This is urgent to take for 4.19, and to backport into 4.17/18 seeing as the
breakage has been backported already.
---
 tools/libs/store/xs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
index c8845b69e284..38a6ce3cf2ea 100644
--- a/tools/libs/store/xs.c
+++ b/tools/libs/store/xs.c
@@ -182,12 +182,12 @@ static bool setnonblock(int fd, int nonblock) {
 
 static bool set_cloexec(int fd)
 {
-	int flags = fcntl(fd, F_GETFL);
+	int flags = fcntl(fd, F_GETFD);
 
 	if (flags < 0)
 		return false;
 
-	return fcntl(fd, flags | FD_CLOEXEC) >= 0;
+	return fcntl(fd, F_SETFD, flags | FD_CLOEXEC) >= 0;
 }
 
 static int pipe_cloexec(int fds[2])
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 15:22:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 15:22:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755495.1163866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQqCQ-0005Qv-Ga; Mon, 08 Jul 2024 15:22:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755495.1163866; Mon, 08 Jul 2024 15: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 1sQqCQ-0005Qo-Cv; Mon, 08 Jul 2024 15:22:42 +0000
Received: by outflank-mailman (input) for mailman id 755495;
 Mon, 08 Jul 2024 15:22:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=39nG=OI=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1sQqCP-0005Qi-Ir
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 15:22:41 +0000
Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com
 [2607:f8b0:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e9cd50a2-3d3d-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 17:22:40 +0200 (CEST)
Received: by mail-pf1-x434.google.com with SMTP id
 d2e1a72fcca58-70b3c0a00f2so413816b3a.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 08:22: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: e9cd50a2-3d3d-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720452159; x=1721056959; 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=uBqnkywXTLI/c9/Y7Ffx/rFVkky9hIJjCo6ULp0cp3g=;
        b=L7kOSDIQRT+UA7ke4igE4cPVEyZGKzXh5TpVoDVu+bAHIho8xLFC22vafLBJuJsX4f
         +2bq9a+krzZUNgSi333AZ1TrDO0R+SNQ2N/RabWnn5oNqaa68XzyuScyaH4FJ0xLiCJW
         /TBC33oognygoeEbl/stYimGewVP8r6a6tsPg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720452159; x=1721056959;
        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=uBqnkywXTLI/c9/Y7Ffx/rFVkky9hIJjCo6ULp0cp3g=;
        b=R7N3KFZITTf8wR0jhDTB3aJMadHJ6K94vrGEmOxoadXnV6zdElFMyjyoJX3MZX3MUG
         T/fMGdQPmbIau4a8WjNJaR3l+V0fbDWjpuD7PCp182WFOZN9Co5aiEPI9qZ5+USYD5Me
         fSv5oxKVLSQwA7KGA22sdFmTROZig74ODBJvTOxR3D7WreaQtWGPUp//ixzKcYYGEMKr
         kyTGX0W/D0gu/Zn/VDSrhe+WATcZOC7t8kOoapXMm1C8i/6ISPg8gL0+QhSUzMfKpRf8
         l8UiW3c7VnBSbjqSaYFVKI4nZpoxLGodaZtaTWT7qIfReGZp+JNTc7uiFXI4kKA7rtjq
         8Gjw==
X-Gm-Message-State: AOJu0Yyuk9rMDcptwJv/36NLhnTAe7+2lz48m/AEFuqHriQ+l+iu6Ytu
	Ka68jfe9evsNFOYLehzHJRG8020d4+r0tIcL1WmCLxNNAbqS4Z4hP5l07f9vbVW72LvD3FVzvmg
	17zCDZDoJq1s/BAJqqHxPhI5vFB4Rj+iBGuox
X-Google-Smtp-Source: AGHT+IHymjI8vbM5cy6a+sjFQiFO3PHqqNbiIy91u+lamEFma4jfGa5DUVijsl6822L5md0Kr9Bcgj7Z+KlXqtteMoM=
X-Received: by 2002:aa7:88d6:0:b0:705:b0c0:d7d7 with SMTP id
 d2e1a72fcca58-70b434f63fcmr71820b3a.7.1720452158907; Mon, 08 Jul 2024
 08:22:38 -0700 (PDT)
MIME-Version: 1.0
References: <20240708151522.2176290-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240708151522.2176290-1-andrew.cooper3@citrix.com>
From: Ross Lagerwall <ross.lagerwall@citrix.com>
Date: Mon, 8 Jul 2024 16:22:26 +0100
Message-ID: <CAG7k0EqsJcwsevdPWahpTrO49U4rXzQvckbzYLccckpY=wu-TA@mail.gmail.com>
Subject: Re: [PATCH for-4.19] tools/libxs: Fix fcntl() invocation in set_cloexec()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Jan Beulich <JBeulich@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 8, 2024 at 4:15=E2=80=AFPM Andrew Cooper <andrew.cooper3@citrix=
.com> wrote:
>
> set_cloexec() had a bit too much copy&pate from setnonblock(), and
> insufficient testing on ancient versions of Linux...
>
> As written (emulating ancient linux by undef'ing O_CLOEXEC), strace shows=
:
>
>   open("/dev/xen/xenbus", O_RDWR)         =3D 3
>   fcntl(3, F_GETFL)                       =3D 0x8002 (flags O_RDWR|O_LARG=
EFILE)
>   fcntl(3, 0x8003 /* F_??? */, 0x7ffe4a771d90) =3D -1 EINVAL (Invalid arg=
ument)
>   close(3)                                =3D 0
>
> which is obviously nonsense.
>
> Switch F_GETFL -> F_GETFD, and fix the second invocation to use F_SETFD. =
 With
> this, strace is rather happer:
>
>   open("/dev/xen/xenbus", O_RDWR)         =3D 3
>   fcntl(3, F_GETFD)                       =3D 0
>   fcntl(3, F_SETFD, FD_CLOEXEC)           =3D 0
>
> Fixes: bf7c1464706a ("tools/libxs: Fix CLOEXEC handling in get_dev()")
> Reported-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>

Thanks


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 15:26:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 15:26:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755501.1163876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQqFr-0005zC-T8; Mon, 08 Jul 2024 15:26:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755501.1163876; Mon, 08 Jul 2024 15: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 1sQqFr-0005z5-QP; Mon, 08 Jul 2024 15:26:15 +0000
Received: by outflank-mailman (input) for mailman id 755501;
 Mon, 08 Jul 2024 15:26: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=Jnsg=OI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sQqFq-0005yz-JW
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 15:26:14 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69270859-3d3e-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 17:26:13 +0200 (CEST)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-52e9b9fb3dcso4860140e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 08:26:13 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6dc55asm3691866b.50.2024.07.08.08.26.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 08:26:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69270859-3d3e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720452373; x=1721057173; 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=GAnfqi2cra/5r9skPbe4FgfCluiThPs3tUmMhe5MyKM=;
        b=HFBddgT9pDQhRlinJaUZqmzdeAehzDvRHdi0BgIiT+b4nNQQwqZ2AC2GWhkwm5n7sB
         ClB7l/ZzCeiurxGBCwZCK16DXFB6cJr/WbJQ3Wt/NVN5qQ6RUNHw1cv/Q1cAL5AzAi8v
         tpXHijanS8JjXxQ1Ym77ttP7+plIMFXEsAxCogI8I+NYfRdDwv13TlbOhSCGQKFe6Eho
         ARt1pFze9EXoFgub+yl8MZ5pUSXZV+8BNsasOkqyu/gamXnSVhMIZy2GwdSrRqmTJDQ3
         sPxGEJUhg40tTFdFD8ZquFt+cq0bLvp2DlKGsqIYxnIwEtF06zgfmD3662yhmv4Ca2FM
         BxIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720452373; x=1721057173;
        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=GAnfqi2cra/5r9skPbe4FgfCluiThPs3tUmMhe5MyKM=;
        b=XyarYK15qamom2Iw0zfdGnNhffqjbU37hZQPXOYJMwpHa3JiSlixc/kATuefgkE7Yu
         tbBLujNWUwDfDaiiHTxnjGxv4Deol7xxiQQD70IK0H9gcq2ASgjskOxjT9HM64/jpIkZ
         G1paSWt7HJYZvdJNDNl0L9Oswbo7ZdV3zzcTO3WLNTBzN+oaFz0qdpdap9Yn5L4zY51x
         iRgr7WAWpzwie+SNkX7H6TbfAt1E5qLpUnw0G9wmIKSEQeMHOgGMThLSEUteZYrm+kCu
         MiRmUq/f0h/XFzgke0n0iUWFPqoQq7qQF9xceySzSsUJdEjhjk5JN/36jwcIB331dUa8
         7HBw==
X-Forwarded-Encrypted: i=1; AJvYcCV69dhpalWQNjZQvT/yLxQsBE/waaIIwxwyoqHtuGl7jm4RrcsNLtJL90sOsSyZaL0MGg+rEeUueXmvP+IYv/89CNzjBh1QjylXhJ2w0e0=
X-Gm-Message-State: AOJu0YyiSvshLlNIzoJAN0BqZEfhD1p77UuTUA9FrPaqhwZHpVNGsi6J
	SH3r6enTBkPOLEUYrMtw1V3O6oeYliss8V7JIUyDArUmxkqPSsascVhGbOhCAsI=
X-Google-Smtp-Source: AGHT+IGl87z+WsFqE3Kjuw0OIOd84dS+R6fPXBjw1LaNur/plN6juqSsNRuCF5WzkCCumDzhzaHpfA==
X-Received: by 2002:ac2:59cd:0:b0:52c:892e:2b26 with SMTP id 2adb3069b0e04-52ea061f5fcmr7213897e87.2.1720452372775;
        Mon, 08 Jul 2024 08:26:12 -0700 (PDT)
Message-ID: <23f8b3a5-67ed-4a84-af70-600337677e33@suse.com>
Date: Mon, 8 Jul 2024 17:26:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] tools/libxs: Fix fcntl() invocation in
 set_cloexec()
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Jan Beulich <JBeulich@suse.com>
References: <20240708151522.2176290-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240708151522.2176290-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 08.07.24 17:15, Andrew Cooper wrote:
> set_cloexec() had a bit too much copy&pate from setnonblock(), and
> insufficient testing on ancient versions of Linux...
> 
> As written (emulating ancient linux by undef'ing O_CLOEXEC), strace shows:
> 
>    open("/dev/xen/xenbus", O_RDWR)         = 3
>    fcntl(3, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
>    fcntl(3, 0x8003 /* F_??? */, 0x7ffe4a771d90) = -1 EINVAL (Invalid argument)
>    close(3)                                = 0
> 
> which is obviously nonsense.
> 
> Switch F_GETFL -> F_GETFD, and fix the second invocation to use F_SETFD.  With
> this, strace is rather happer:
> 
>    open("/dev/xen/xenbus", O_RDWR)         = 3
>    fcntl(3, F_GETFD)                       = 0
>    fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
> 
> Fixes: bf7c1464706a ("tools/libxs: Fix CLOEXEC handling in get_dev()")
> Reported-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 15:42:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 15:42:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755510.1163886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQqVg-0000vG-BQ; Mon, 08 Jul 2024 15:42:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755510.1163886; Mon, 08 Jul 2024 15: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 1sQqVg-0000v9-8Z; Mon, 08 Jul 2024 15:42:36 +0000
Received: by outflank-mailman (input) for mailman id 755510;
 Mon, 08 Jul 2024 15:42: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=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQqVe-0000v3-JS
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 15:42:34 +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 b178b632-3d40-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 17:42:33 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-57cd26347d3so5299492a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 08:42:33 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5907e4d79ddsm3381893a12.59.2024.07.08.08.42.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 08: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: b178b632-3d40-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720453352; x=1721058152; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NpSzRaFB0fZ0TNSXZMScz/AWRyqjkNxX2geM0jCaqzw=;
        b=gPqEmy/gSk/b09+Vk0ho1lIDa1ZDxJ1OYnh0se6ex2XAqwIH66EPQPJrpPQgMZeQmu
         YUtKNwTodMWdanYFL6DUqey8MAGcGQtklR28cAOlGQjYCTuzjxZFvBIxSpN/YLQK0nuN
         xpaGMrmtOwLfvTvRcKiIObuZeEWe9xleTBSYk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720453352; x=1721058152;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=NpSzRaFB0fZ0TNSXZMScz/AWRyqjkNxX2geM0jCaqzw=;
        b=tIKxLswbxJ2KqYiLp/cbw6zZ7VnKDynG36A8ofIwXyx2uTDpIhR69IET7tQornPgBk
         0I4zzB/8bP4m0astiYzZ1aUbOTYAsuIjYtYU6SnQzj0XREoNpYAtdNTXy2SyUfzRS5Ss
         /8BFHi3MO6H7UJnpdb3RSSX2n2MXhvFUx7o6HNPcgOVQS282QCLk4d6mlgBwFbwsUGJH
         Moci8Yk5JDX3T1488JV1DKXW/WXgNPwGowdWkGg1r60TM4sWfMN8iYhuX6qczMEZcDxF
         SYdUNE+q4xXpSeUPBhgSag5wS9Q2LFmCDwq7zq1WPxKirn8r/JUR6hbJC2aIWi7uMAYb
         OG7w==
X-Gm-Message-State: AOJu0Ywys31caXg+YzKXHkTeWl8PFMIo46eG+7ftvRg23RgT/xAGEx0p
	OCrkd+M2hsThAQk5EJ6c/NrYLtjoBPSaWjBBYpeQ5ZFPMuNpo6Tq1iUTOWMsC2w9PhDSsNCUA+d
	k
X-Google-Smtp-Source: AGHT+IH0WfQHhxfXIQ5guCqkazyKBGkhO0QqTiv+Tsdu0BtxNwCsBn9GaKp3J67xaPH/dfvzf7BXcg==
X-Received: by 2002:a05:6402:3583:b0:573:5c4f:27a8 with SMTP id 4fb4d7f45d1cf-58e5cd1222fmr8688472a12.35.1720453352282;
        Mon, 08 Jul 2024 08:42: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19 v2 3/6] CI: Refresh the Coverity Github Action configuration
Date: Mon,  8 Jul 2024 16:42:28 +0100
Message-Id: <20240708154228.2177924-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240705152037.1920276-4-andrew.cooper3@citrix.com>
References: <20240705152037.1920276-4-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Update to Ubuntu 24.04, and checkout@v4 as v2 is deprecated.

The build step goes out of it's way to exclude docs and stubdom (but include
plain MiniOS), so disable those at the ./configure stage and simplify the
build step somewhat.

Refresh the package list.  libbz2-dev was in there twice, and e2fslibs-dev is
a a transitional package to libext2fs-dev.  I'm not aware of libtool ever
having been a Xen dependency.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

v2:
 * Simplify the build step too.

https://github.com/andyhhp/xen/actions/runs/9840942508/job/27166367683 (manually
terminated with an exit 1 because there's no --dry-run mode.)
---
 .github/workflows/coverity.yml | 38 ++++++++++++++++++++++------------
 1 file changed, 25 insertions(+), 13 deletions(-)

diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml
index 60ac8dee5570..2b601c5f9b89 100644
--- a/.github/workflows/coverity.yml
+++ b/.github/workflows/coverity.yml
@@ -8,27 +8,39 @@ on:
 
 jobs:
   coverity:
-    runs-on: ubuntu-22.04
+    runs-on: ubuntu-24.04
     steps:
     - name: Install build dependencies
       run: |
-        sudo apt-get install -y wget git gawk \
-          libbz2-dev build-essential \
-          zlib1g-dev libncurses5-dev iasl \
-          libbz2-dev e2fslibs-dev uuid-dev ocaml \
-          ocaml-findlib libyajl-dev \
-          autoconf libtool liblzma-dev \
-          python3-dev golang libsystemd-dev
+        sudo apt-get install -y \
+          build-essential \
+          git-core \
+          golang \
+          iasl \
+          libbz2-dev \
+          libext2fs-dev \
+          liblzma-dev \
+          libncurses5-dev \
+          libyajl-dev \
+          libzstd-dev \
+          ocaml \
+          ocaml-findlib \
+          python3-dev \
+          uuid-dev \
+          zlib1g-dev \
 
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v4
       with:
         ref: staging
 
     - name: Configure Xen
       run: |
-        ./configure --with-system-qemu=/bin/true \
-                    --with-system-seabios=/bin/true \
-                    --with-system-ovmf=/bin/true
+        ./configure \
+          --disable-docs \
+          --disable-stubdom \
+          --with-system-qemu=/bin/true \
+          --with-system-seabios=/bin/true \
+          --with-system-ovmf=/bin/true \
 
     - name: Pre build stuff
       run: |
@@ -36,7 +48,7 @@ jobs:
 
     - uses: vapier/coverity-scan-action@v1
       with:
-        command: make -j`nproc` build-xen build-tools && make -j`nproc` -C extras/mini-os/
+        command: make -j`nproc` build && make -j`nproc` -C extras/mini-os/
         project: XenProject
         email: ${{ secrets.COVERITY_SCAN_EMAIL }}
         token: ${{ secrets.COVERITY_SCAN_TOKEN }}
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 15:42:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 15:42:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755511.1163896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQqVw-0001EE-JF; Mon, 08 Jul 2024 15:42:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755511.1163896; Mon, 08 Jul 2024 15: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 1sQqVw-0001E7-G0; Mon, 08 Jul 2024 15:42:52 +0000
Received: by outflank-mailman (input) for mailman id 755511;
 Mon, 08 Jul 2024 15:42: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=z6vo=OI=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sQqVw-0001Dn-0y
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 15:42:52 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bafb261c-3d40-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 17:42:49 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52ea929ea56so4375486e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 08:42:49 -0700 (PDT)
Received: from EMEAENGAAD91498.citrite.net ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6de0a2sm4779866b.54.2024.07.08.08.42.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 08: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: bafb261c-3d40-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720453369; x=1721058169; 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=eOWHHJ/WLKag5d4dSpmArbqSpx+lbCaXcUbRJTR2rAE=;
        b=L7v7OPNrTX0vg8//+yxfd2/aF83omDwurZRO9bKetPlGoSSL+Rde4BXC3CPvypmc1t
         laoUfLbI737vkZxli/1gkOOjSo3S3GadBL31ZSy5840fDrKfjqDncf/idZCTlxxNewmk
         Q1Bgs6oxblUF2ZSv9cqyom3MuQQKGb3acjS/c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720453369; x=1721058169;
        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=eOWHHJ/WLKag5d4dSpmArbqSpx+lbCaXcUbRJTR2rAE=;
        b=lgZezHlXKQfZHZggPVCx0basBKfTXruu+e2OhOGMYKHcNpbEnxhDC9OrK5I+DSnRak
         9+9KSy1V4fT+iMCh+mueGIbya395hrSduXCZxr7teYsWpVw7i+feNYDvuSUJh24+XhlD
         +Wtwk1T4NwqlAGkOfGBK6gR5bJP2WmXNHkDaTSEXRkccsjppEqYs/NP4cjWrWYoct3Cn
         zNzFzvXwXMfOuSmLGMFf5VclqhjLoD2RocdBu1ydKQF3V3j8kBG4ATI6vRaP8Z82cqh+
         sZNq+1CEV3umTvrKEWiLvoIacGivuTMR1DeNGZsEWJR7XctZBXaQTigRpCKwR1syobj5
         rvYg==
X-Gm-Message-State: AOJu0YyXWFCT+0Dr8bDtU3ae9cIyq10tRDe9ieriajLpTXr0H2Luo/BL
	CHamWvLeKzabMoPPNtTOwdhI8Ox56fDMMP8aW0A2UUZg3jJkM6io9DsfeyyZWyYck87LsCyD38D
	b
X-Google-Smtp-Source: AGHT+IG2j6nH3diUoKAqvmeMFvNGrWzan3uyQjw6FifmbxYBEG1krlL42i0VBZH38zG2YGLgyT/0xw==
X-Received: by 2002:ac2:5e6c:0:b0:52e:9f1b:517 with SMTP id 2adb3069b0e04-52ea0622d10mr9929242e87.25.1720453368568;
        Mon, 08 Jul 2024 08:42:48 -0700 (PDT)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [RFC XEN PATCH] x86/cpuid: Expose max_vcpus field in HVM hypervisor leaf
Date: Mon,  8 Jul 2024 16:42:21 +0100
Message-Id: <c0a9f52107e22957daaa5b1b0e05e4160db5f064.1720452354.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Bcc: Matthew Barnes <matthew.barnes@cloud.com>
Content-Transfer-Encoding: 8bit

Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
startup.

There are efforts to support a maximum of 128 vCPUs, which would involve
bumping the OVMF constant from 64 to 128.

However, it would be more future-proof for OVMF to access the maximum
number of vCPUs for a domain and set itself up appropriately at
run-time.

For OVMF to access the maximum vCPU count, Xen will have to expose this
property via cpuid.

This patch exposes the max_vcpus field via cpuid on the HVM hypervisor
leaf in edx.

Tested on HVM guests running Ubuntu 22.04 LTS and Windows 10 x64.

GitLab ticket: https://gitlab.com/xen-project/xen/-/issues/191

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
 xen/arch/x86/traps.c                | 4 ++++
 xen/include/public/arch-x86/cpuid.h | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index ee91fc56b125..b439ee94f562 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1169,6 +1169,10 @@ void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
         res->a |= XEN_HVM_CPUID_DOMID_PRESENT;
         res->c = d->domain_id;
 
+        /* Indicate presence of max vcpus and set it in edx */
+        res->a |= XEN_HVM_CPUID_MAX_VCPUS_PRESENT;
+        res->d = d->max_vcpus;
+
         /*
          * Per-vCPU event channel upcalls are implemented and work
          * correctly with PIRQs routed over event channels.
diff --git a/xen/include/public/arch-x86/cpuid.h b/xen/include/public/arch-x86/cpuid.h
index 3bb0dd249ff9..a11c9b684308 100644
--- a/xen/include/public/arch-x86/cpuid.h
+++ b/xen/include/public/arch-x86/cpuid.h
@@ -87,6 +87,7 @@
  * Sub-leaf 0: EAX: Features
  * Sub-leaf 0: EBX: vcpu id (iff EAX has XEN_HVM_CPUID_VCPU_ID_PRESENT flag)
  * Sub-leaf 0: ECX: domain id (iff EAX has XEN_HVM_CPUID_DOMID_PRESENT flag)
+ * Sub-leaf 0: EDX: max vcpus (iff EAX has XEN_HVM_CPUID_MAX_VCPUS_PRESENT flag)
  */
 #define XEN_HVM_CPUID_APIC_ACCESS_VIRT (1u << 0) /* Virtualized APIC registers */
 #define XEN_HVM_CPUID_X2APIC_VIRT      (1u << 1) /* Virtualized x2APIC accesses */
@@ -107,6 +108,8 @@
  */
 #define XEN_HVM_CPUID_UPCALL_VECTOR    (1u << 6)
 
+#define XEN_HVM_CPUID_MAX_VCPUS_PRESENT (1u << 7) /* max vpcus is present in EDX */
+
 /*
  * Leaf 6 (0x40000x05)
  * PV-specific parameters
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 17:10:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 17:10:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755524.1163906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQrsG-00053w-FG; Mon, 08 Jul 2024 17:10:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755524.1163906; Mon, 08 Jul 2024 17:10: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 1sQrsG-00053p-CI; Mon, 08 Jul 2024 17:10:00 +0000
Received: by outflank-mailman (input) for mailman id 755524;
 Mon, 08 Jul 2024 17: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=xFgZ=OI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sQrsF-00053j-8X
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 17:09:59 +0000
Received: from mail-qk1-x730.google.com (mail-qk1-x730.google.com
 [2607:f8b0:4864:20::730])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e65d24d0-3d4c-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 19:09:57 +0200 (CEST)
Received: by mail-qk1-x730.google.com with SMTP id
 af79cd13be357-79ef8fe0e90so208982785a.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 10:09:56 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-79f18ff695dsm10162985a.14.2024.07.08.10.09.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 10: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: e65d24d0-3d4c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720458596; x=1721063396; 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=WX9HGNqyT895VmKzQ0BsOnL/b6zmLY23I1w48g1ZhRE=;
        b=kOVhvZrtONcGM896HDaXI5NGhFJY6yWyFDVqvol5kjVTxbM9lhn3Iltg3GxEOd9x4f
         ctJLwo1D3PMmUWf1KxlcGfhy7XzHnGL38AlMTAB9026nMyAtdRg4pK2wJV/kHL8MhZ+g
         7F13j88hjhrPXPh7tA7Oro2/+vLpMBHrQEJXQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720458596; x=1721063396;
        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=WX9HGNqyT895VmKzQ0BsOnL/b6zmLY23I1w48g1ZhRE=;
        b=a47z15GZChY38wQhh9PmQaWelHYZlP7a+2sfuETxKOByLxNRs6ti9mWD0w4eHHBGZ7
         iZ9PNayrIdEv8qSKCre61hKsUiFU5Tw59riezrDY4g2EZFCwaeVU6Fudf9uWsqm573aa
         kH17+0QzBxl/kh+8ocBseCkQxrbTRuKSZAaooDZEeAFXQrKSAoD055d0VKAF66e7UM80
         6/0272iihb8//4tecso12CfxxnqkYVyTksNi8T2RzW4Ctsl5/tEBMhrWAX4rTTYOgbCC
         862a9YWi9zqGxLZM3Ma4xt24RhYeNJq9Rhu7I0hCn4YZihXBtkOKpA+yebD0MkqO1KSC
         x5Rw==
X-Gm-Message-State: AOJu0YyedgR8N1bcyS9mMRqbrQe7kPFYGdMkmwgcUq1i2l/AbE93XgYH
	kRXFWMBnRb+N1m0+cdqwf0g0CMTHJ6Nx8pAt6NZ7DZAX/WUYuPYzPF2t+JkcnxA=
X-Google-Smtp-Source: AGHT+IHt48Vwzg2wcb43HIAznH/r75Pd+DvBtiZyGrb+tGAGHKq4HbOYRm1OH8sKhy9wFX85Qc1Zxw==
X-Received: by 2002:a05:620a:9c2:b0:79f:7b8:4950 with SMTP id af79cd13be357-79f19ab8cb0mr15144785a.51.1720458595776;
        Mon, 08 Jul 2024 10:09:55 -0700 (PDT)
Date: Mon, 8 Jul 2024 19:09:50 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19 v2 3/6] CI: Refresh the Coverity Github Action
 configuration
Message-ID: <ZowdXsQiYry-ZiCj@macbook.local>
References: <20240705152037.1920276-4-andrew.cooper3@citrix.com>
 <20240708154228.2177924-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: <20240708154228.2177924-1-andrew.cooper3@citrix.com>

On Mon, Jul 08, 2024 at 04:42:28PM +0100, Andrew Cooper wrote:
> Update to Ubuntu 24.04, and checkout@v4 as v2 is deprecated.
> 
> The build step goes out of it's way to exclude docs and stubdom (but include
> plain MiniOS), so disable those at the ./configure stage and simplify the
> build step somewhat.
> 
> Refresh the package list.  libbz2-dev was in there twice, and e2fslibs-dev is
> a a transitional package to libext2fs-dev.  I'm not aware of libtool ever
> having been a Xen dependency.
> 
> 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 Mon Jul 08 17:35:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 17:35:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755531.1163927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQsGx-0000W5-KU; Mon, 08 Jul 2024 17:35:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755531.1163927; Mon, 08 Jul 2024 17: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 1sQsGx-0000Vy-G7; Mon, 08 Jul 2024 17:35:31 +0000
Received: by outflank-mailman (input) for mailman id 755531;
 Mon, 08 Jul 2024 17: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=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQsGw-0000H0-78
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 17:35:30 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 775a3695-3d50-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 19:35:28 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-57cc1c00ba6so5674290a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 10:35:28 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6bc88csm11603666b.6.2024.07.08.10.35.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 10:35: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: 775a3695-3d50-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720460126; x=1721064926; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=epcQlWhE08mmo18Ou0eUa+ySD6kZjdPGssgvvnX14vM=;
        b=CQj1Zig1rku/JKCKrmi3PcEl8V8u70Pg+3MLnrdPc8WSIpnXJfIwfy0WrwDGtWThDP
         KWkuh7cNh7bikwY/dzsdMqxbPlRwOpBit2h6PovZQBNfNOJmpE8k6vZ5yxLV0ePnZG8l
         +pAzsALKx0WFWcrKk41R/TtRIjrVaQUt9Hvgc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720460126; x=1721064926;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=epcQlWhE08mmo18Ou0eUa+ySD6kZjdPGssgvvnX14vM=;
        b=RVolCbX4DDNEmGutX4S8J1z2t0fjtyAXBio6ZZsVsYuETfJgC5utSUEHZs3xPlNiYu
         cABU9KaAQrsxCAtEyp6c5JQvV+ZDXvK+V4JQLgJ4Ef8P8PXDZJhKjBhi4HeWCYeU7GPj
         dav3YeVi6gXuOr+82PKomcmI8zLiAqdphfyHv6lQTpgeVbXS1oI3nCkRLBFFlKd3N+Ij
         b2QCVE1V89FCz0PtzkytPjwPB22K7VM6GAB9EPg8FrK4jvZu7cZUWyZtYc10R1re5kkb
         tGU+99DgJvjjAr/0SZ5Il11m3Tf1I+RmLH196pyjrc/jZNaMSul3WY2Zy+u97liuIjFH
         j2Yw==
X-Gm-Message-State: AOJu0YwNmGAqspYsBytsPBAFf/pDC9rBWGdpgRG9LFh/iSsBzCzJtVSM
	dbbu+OhlXk1zb+/ypCeawvVvCpx73GxpD7FdYuHcGo1O28L/Y2Z9S8Jm+EGIW3+sMj65TkD3R0h
	p
X-Google-Smtp-Source: AGHT+IFI2/gBtGpBbyGt3lCYXWmf0QYtt4N0rNJ3xsNz0sosJ5NN+JTGmFARbLqHfD2RQ7GMMLlD1A==
X-Received: by 2002:a17:906:f0cc:b0:a6f:e819:da9c with SMTP id a640c23a62f3a-a780b70539bmr19110566b.43.1720460126307;
        Mon, 08 Jul 2024 10:35:26 -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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 1/4] CI: Fix CONTAINER_UID0=1 scripts/containerize
Date: Mon,  8 Jul 2024 18:35:19 +0100
Message-Id: <20240708173522.2218293-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240708173522.2218293-1-andrew.cooper3@citrix.com>
References: <20240708173522.2218293-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Right now, most build containers use root.  Archlinux, Fedora and Yocto set up
a regular user called `user`.

For those containers, trying to containerize as root fails, because
CONTAINER_UID0=1 does nothing, whereas CONTAINER_UID0=0 forces the user away
from root.

To make CONTAINER_UID0=1 work reliably, force to root if requested.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 automation/scripts/containerize | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index acdef1b54813..03bc4837350c 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -51,7 +51,7 @@ esac
 
 # Use this variable to control whether root should be used
 case "_${CONTAINER_UID0}" in
-    _1)   userarg= ;;
+    _1)   userarg="-u 0" ;;
     _0|_) userarg="-u $(id -u) $userns_podman" ;;
 esac
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 17:35:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 17:35:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755533.1163946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQsH0-00010A-5S; Mon, 08 Jul 2024 17:35:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755533.1163946; Mon, 08 Jul 2024 17:35: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 1sQsH0-0000zs-2h; Mon, 08 Jul 2024 17:35:34 +0000
Received: by outflank-mailman (input) for mailman id 755533;
 Mon, 08 Jul 2024 17: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=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQsGy-0000H0-Qd
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 17:35:32 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79167797-3d50-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 19:35:31 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a77abe5c709so525689066b.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 10:35:31 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6bc88csm11603666b.6.2024.07.08.10.35.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 10: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: 79167797-3d50-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720460130; x=1721064930; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jFhtWu/TJjeZ9/+nBiaknK8ozkp9Tho9YIR3RqITO48=;
        b=q341IblXkaYRU7kCR8IIurk/Yzz+HL5YdUTmov2YkP0pBGZOidUeRt4NoWOgUMyOAb
         e06+yHt2xTHGBpqPBDjhl39knLGsABuRTayzukp8AWuvdQjd0kIqh6iPiTOuT7mz54j7
         YfkoEhSMekmjklVLp3ow5Z7OuRL4BR0SThcSA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720460130; x=1721064930;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=jFhtWu/TJjeZ9/+nBiaknK8ozkp9Tho9YIR3RqITO48=;
        b=GdgI5ijxCbuGccLS0E+ph163yUY1VFBau0CFsMKuQSqFGHH/5b+/A1OL4/XSs8vzIw
         iX/CQo5RY8k/QRmPjRDmHWj/ivpLqz1qjliFk0CJULM3mWURkqqBiQnOb/HHHBv+Eehr
         LNum+jRnh6QYEjfbk+gb+la1eF9r4b46pPL5oVAMz7LEn/cOE5IES+NeNq35q2QjDScq
         G21auV/aNaX3hlp69+VdNM0icX7SEB1tCPCwWl2rU1t7JcQQ0jNx7Y3BJcxDnTEolr9q
         XNVKWB6cgqV11TdO4XldghB/wItRUU1ixSUZP7HujlR2jx/g4FS8kC39wCzTUOb6AcPj
         JbYg==
X-Gm-Message-State: AOJu0YwJbTpDffKMzG7KyEJTKlm7so0zLaTpGQDNl4akhjogYDrYwiy6
	kAsYA48LVoR+aY0VFi2XbtPXJodT5FuhO/6ynp7ZDwEVav+zUtu78EfRDoukfzbNDfD8dw7m2KL
	J
X-Google-Smtp-Source: AGHT+IEmWNDp3WFROxGqbBL0aWS8u3xezMZt2Pd2cCrt0NrGrqwBZpZiN8vDjSXqYKg6A8hN0VFPDg==
X-Received: by 2002:a17:907:7f20:b0:a77:e1fb:7dea with SMTP id a640c23a62f3a-a780b688767mr20751766b.2.1720460130210;
        Mon, 08 Jul 2024 10:35: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 3/4] CI: Use bookworm-ppc64le for both build and test
Date: Mon,  8 Jul 2024 18:35:21 +0100
Message-Id: <20240708173522.2218293-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240708173522.2218293-1-andrew.cooper3@citrix.com>
References: <20240708173522.2218293-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

qemu-system-ppc64/8.1.0-ppc64 was added because bullseye's Qemu didn't
understand the powernv9 machine.

However, bookworm's Qemu does, and this is preforable to maintaining a random
build of Qemu ourselves.

Add bookworm builds, and retain bullseye to keep our lower-bound toolchain
testing.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 automation/gitlab-ci/build.yaml               | 22 +++++++++--
 automation/gitlab-ci/test.yaml                |  3 +-
 automation/scripts/qemu-smoke-ppc64le.sh      |  4 +-
 .../qemu-system-ppc64/8.1.0-ppc64.dockerfile  | 38 -------------------
 4 files changed, 21 insertions(+), 46 deletions(-)
 delete mode 100644 automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index ff5c9055d1f0..d6da156a5c85 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -534,17 +534,17 @@ archlinux-current-gcc-riscv64-debug-randconfig:
     <<: *riscv-fixed-randconfig
 
 # Power cross-build
-debian-bullseye-gcc-ppc64le:
+debian-bookworm-gcc-ppc64le:
   extends: .gcc-ppc64le-cross-build
   variables:
-    CONTAINER: debian:bullseye-ppc64le
+    CONTAINER: debian:bookworm-ppc64le
     KBUILD_DEFCONFIG: ppc64_defconfig
     HYPERVISOR_ONLY: y
 
-debian-bullseye-gcc-ppc64le-debug:
+debian-bookworm-gcc-ppc64le-debug:
   extends: .gcc-ppc64le-cross-build-debug
   variables:
-    CONTAINER: debian:bullseye-ppc64le
+    CONTAINER: debian:bookworm-ppc64le
     KBUILD_DEFCONFIG: ppc64_defconfig
     HYPERVISOR_ONLY: y
 
@@ -817,3 +817,17 @@ opensuse-tumbleweed-gcc-debug:
   variables:
     CONTAINER: suse:opensuse-tumbleweed
   allow_failure: true
+
+debian-bullseye-gcc-ppc64le:
+  extends: .gcc-ppc64le-cross-build
+  variables:
+    CONTAINER: debian:bullseye-ppc64le
+    KBUILD_DEFCONFIG: ppc64_defconfig
+    HYPERVISOR_ONLY: y
+
+debian-bullseye-gcc-ppc64le-debug:
+  extends: .gcc-ppc64le-cross-build-debug
+  variables:
+    CONTAINER: debian:bullseye-ppc64le
+    KBUILD_DEFCONFIG: ppc64_defconfig
+    HYPERVISOR_ONLY: y
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 898d2adc8c5b..479479f23f65 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -447,5 +447,4 @@ qemu-smoke-ppc64le-powernv9-gcc:
   script:
     - ./automation/scripts/qemu-smoke-ppc64le.sh powernv9 2>&1 | tee ${LOGFILE}
   needs:
-    - qemu-system-ppc64-8.1.0-ppc64-export
-    - debian-bullseye-gcc-ppc64le-debug
+    - debian-bookworm-gcc-ppc64le-debug
diff --git a/automation/scripts/qemu-smoke-ppc64le.sh b/automation/scripts/qemu-smoke-ppc64le.sh
index 701d81107d18..9088881b731b 100755
--- a/automation/scripts/qemu-smoke-ppc64le.sh
+++ b/automation/scripts/qemu-smoke-ppc64le.sh
@@ -12,8 +12,8 @@ rm -f ${serial_log}
 set +e
 
 timeout -k 1 20 \
-binaries/qemu-system-ppc64 \
-    -bios binaries/skiboot.lid \
+qemu-system-ppc64 \
+    -bios skiboot.lid \
     -M $machine \
     -m 2g \
     -smp 1 \
diff --git a/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile b/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile
deleted file mode 100644
index e28d68649239..000000000000
--- a/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile
+++ /dev/null
@@ -1,38 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 debian:bullseye-slim
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV QEMU_VERSION=8.1.0
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        curl \
-        python3 \
-        python3-pip \
-        python3-elementpath \
-        ninja-build \
-        pkg-config \
-        libglib2.0-dev \
-        libpixman-1-dev \
-        && \
-    \
-    curl -fsSLO https://download.qemu.org/qemu-"$QEMU_VERSION".tar.xz && \
-    tar xvJf qemu-"$QEMU_VERSION".tar.xz && \
-    cd qemu-"$QEMU_VERSION" && \
-    ./configure --target-list=ppc64-softmmu && \
-    make -j$(nproc) && \
-    cp ./build/qemu-system-ppc64 / && \
-    cp ./build/qemu-bundle/usr/local/share/qemu/skiboot.lid / && \
-    cd /build && \
-    rm -rf qemu-"$QEMU_VERSION"* && \
-    apt-get autoremove -y && \
-    apt-get clean && \
-    rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 17:35:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 17:35:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755532.1163936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQsGy-0000kY-Qx; Mon, 08 Jul 2024 17:35:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755532.1163936; Mon, 08 Jul 2024 17: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 1sQsGy-0000kR-NR; Mon, 08 Jul 2024 17:35:32 +0000
Received: by outflank-mailman (input) for mailman id 755532;
 Mon, 08 Jul 2024 17:35: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=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQsGx-0000H0-A9
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 17:35:31 +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 784d22d8-3d50-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 19:35:29 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-58b0beaf703so5151328a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 10:35:29 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6bc88csm11603666b.6.2024.07.08.10.35.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 10:35: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: 784d22d8-3d50-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720460128; x=1721064928; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CJtHp8tty+WfmySIL4PeN7k5ySN/iHKXnLF29O6pnIA=;
        b=tEr8w8Rl1fkvSq15h6XIn191Ql3TNV4W0NGd1+N+bVMd03s6uDgU4QaPKNAE6zEjiu
         FQFXeLHAgtfCpOF/krw6DiPT3brAY2YPYW9DgrZCs7GM7T96qn1oA3SRCP6Ydexn2Ucn
         EcEtGRPq8fJ4O4A15IckAAQT28uo8rI85zn8A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720460128; x=1721064928;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=CJtHp8tty+WfmySIL4PeN7k5ySN/iHKXnLF29O6pnIA=;
        b=MkD3nice0Bv1LnQoleaSVxGkJmxc87io/CZJdfVg4Wcp7T0ONU35cI2HYPjunYF6U/
         2mWCci+7ZZFptMylIDkFEUBTyV3WtIW61QejS4vadCk7YFDeaCblTHY8whhDCdVZdr8t
         fT2RC+QMP4zRSTvgYP1nM0BOTXuMxESF78LMSM/MZyycGgbzo9iBig6u4A80TkHODmnq
         4ba2y58gYdTexXmwaaujAreZiJqalU/6Dj6ISED01/rIQjbAwXWslKBwP05fQ057qBCH
         K3rtuZ2DgFuAxiGoE9ae1lO7gP5iIZL4pMGPCsxpekiUib1u1Wm6Hg4se9akeTBM82wB
         RVNw==
X-Gm-Message-State: AOJu0YzGE14yFCEu5/Bn7h1R2cY1qKCojFkFbkuOzp1DO4O56cq+8xKx
	zmSRPA77AS4U2VxRZeVCOubdrCPJ3okyKWK89BiGARxsX8K6j0TcPB3LBUJ8u02FHey9guGMsNV
	e
X-Google-Smtp-Source: AGHT+IEp6SakYHeFlq+Wp72AMR6eVquB3HsAWqTGw08a9A4aDUOHHDpeQ93cPOmWy+VfNMg+aDIn8Q==
X-Received: by 2002:a17:907:2d87:b0:a77:f5ca:f847 with SMTP id a640c23a62f3a-a780b68a20emr25931366b.3.1720460128495;
        Mon, 08 Jul 2024 10:35: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 2/4] CI: Introduce a bookworm-ppc64le container
Date: Mon,  8 Jul 2024 18:35:20 +0100
Message-Id: <20240708173522.2218293-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240708173522.2218293-1-andrew.cooper3@citrix.com>
References: <20240708173522.2218293-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Make it non-root by default, and set XEN_TARGET_ARCH=ppc64 too.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 .../build/debian/bookworm-ppc64le.dockerfile  | 36 +++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 automation/build/debian/bookworm-ppc64le.dockerfile

diff --git a/automation/build/debian/bookworm-ppc64le.dockerfile b/automation/build/debian/bookworm-ppc64le.dockerfile
new file mode 100644
index 000000000000..3b311e675ef5
--- /dev/null
+++ b/automation/build/debian/bookworm-ppc64le.dockerfile
@@ -0,0 +1,36 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 debian:bookworm-slim
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CROSS_COMPILE=powerpc64le-linux-gnu-
+ENV XEN_TARGET_ARCH=ppc64
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+        gcc-powerpc64le-linux-gnu
+        python3-minimal
+
+        # Qemu for test phase
+        qemu-system-ppc
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 17:35:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 17:35:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755530.1163916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQsGw-0000HP-Cr; Mon, 08 Jul 2024 17:35:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755530.1163916; Mon, 08 Jul 2024 17:35: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 1sQsGw-0000HA-8N; Mon, 08 Jul 2024 17:35:30 +0000
Received: by outflank-mailman (input) for mailman id 755530;
 Mon, 08 Jul 2024 17:35: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=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQsGv-0000H0-Hk
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 17:35:29 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 76d8e4ad-3d50-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 19:35:27 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2eea8ea8bb0so21181741fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 10:35:27 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6bc88csm11603666b.6.2024.07.08.10.35.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 10:35: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: 76d8e4ad-3d50-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720460126; x=1721064926; 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=f/OMQyB3Pr1i2mf+3/h4TWNIvtqthBOoCW1eSge6Fm4=;
        b=EbJEIlHCDMG+R7hEhpCKECCPpCsWLHpO+7+MDWbKeMqJN3fFyMmuTcEK0WM9WiqDAL
         a89VIFjVujCljkAOzBUGMXKNXYF8+yP17GIGFjTvPd+q3PbH7XTqjHeNJhZtcT7HcNo6
         /edrwQaFCUzTjG1/fzYcfHZiaMDHbFMzY8cSM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720460126; x=1721064926;
        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=f/OMQyB3Pr1i2mf+3/h4TWNIvtqthBOoCW1eSge6Fm4=;
        b=FEuhTgyl0tHJtL/noNri45jzWLFH05ghSRenM1BShYPGhtusXtgeXZTsn0Kltfxw1u
         nq3aVCpTlPSOOZf2VTjpBascxs1XjOFnFpDS0XSJNggluDZ11DtYG2zBP6zMB51vhYbj
         tciZOiovl3rXfVj0efoYtrPS7g1uVDyxbynXLJJ5WML51eFuTPjVeQsiglUTU6YkAC3H
         khUitYuMUUT2TmcLwEpYTQNjj8zUu9E5Rf5Cryrf9SM1Ur5uucHIBMthl5+OnmG4er/C
         XzoQTMtndUqK4HQC9ItxrKNSXj7cvpdn0qEEo/LRNQR7vIdIML+0fVfHTkAPEtmWZ790
         f0Eg==
X-Gm-Message-State: AOJu0YyF3JJXnBLbHOck950AaOZ5QNs8V3H+fygXyloahGliJlpsDX7J
	Cnpsm9Wd5XCmPwXNweEtEx1dqRuL02fNDI8j5pdwj9/NvnSLnZKREE9X7j/Jy+swQcon/M9Gr+Y
	a
X-Google-Smtp-Source: AGHT+IEXXCjqWNxM0y8hYVEEoqXo/39xABgi/Q7HoBf1Q9UpbFpiyi8YgwqP9XxjtGSpkWw2ifz5cA==
X-Received: by 2002:a2e:9852:0:b0:2ec:5843:2fb8 with SMTP id 38308e7fff4ca-2eeb316affamr3321761fa.42.1720460125518;
        Mon, 08 Jul 2024 10:35: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH for-4.19 0/4] CI: part 3 (improvments to PPC)
Date: Mon,  8 Jul 2024 18:35:18 +0100
Message-Id: <20240708173522.2218293-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Here is a run with these improvements in place:

  https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7277624801

Jan: I hope to backport this series to 4.18 so we can remove
qemu-system-ppc64/8.1.0-ppc64 entirely.  This will simplify changes in the
future by making the testing more consistent.

Andrew Cooper (4):
  CI: Fix CONTAINER_UID0=1 scripts/containerize
  CI: Introduce a bookworm-ppc64le container
  CI: Use bookworm-ppc64le for both build and test
  CI: Refresh bullseye-ppc64le

 .../build/debian/bookworm-ppc64le.dockerfile  | 36 +++++++++++++
 .../build/debian/bullseye-ppc64le.dockerfile  | 51 ++++++++++---------
 automation/gitlab-ci/build.yaml               | 22 ++++++--
 automation/gitlab-ci/test.yaml                |  3 +-
 automation/scripts/containerize               |  2 +-
 automation/scripts/qemu-smoke-ppc64le.sh      |  4 +-
 .../qemu-system-ppc64/8.1.0-ppc64.dockerfile  | 38 --------------
 7 files changed, 84 insertions(+), 72 deletions(-)
 create mode 100644 automation/build/debian/bookworm-ppc64le.dockerfile
 delete mode 100644 automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile


base-commit: 64cee188376e52a154475a86a9d2adc85f029870
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 17:35:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 17:35:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755534.1163956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQsH1-0001Gc-DT; Mon, 08 Jul 2024 17:35:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755534.1163956; Mon, 08 Jul 2024 17: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 1sQsH1-0001GM-9I; Mon, 08 Jul 2024 17:35:35 +0000
Received: by outflank-mailman (input) for mailman id 755534;
 Mon, 08 Jul 2024 17:35: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=DP+Y=OI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sQsGz-0000H0-Ru
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 17:35:33 +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 79c8dabd-3d50-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 19:35:32 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a77e392f59fso247507366b.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 10:35:32 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6bc88csm11603666b.6.2024.07.08.10.35.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 10:35: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: 79c8dabd-3d50-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720460131; x=1721064931; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i4f91M354fClKBK9C+cxTehpG9qrbHFjq1S8H6hQbys=;
        b=tVritn+RvjUsNhvClXDkQ6ROulqzfl0Y4d2wh6AwF+2uU8drb8yhNNG7sSoc00XiDz
         0MYv4j4O5VlC9OVf0dcHpLGYEiNMVbsDxJHU0wBszN5L9+c+nXaThmppqeIxL3AYv/ZA
         W7VT9bTwpy82hbuueuyfSpsGfZf2pjf0EOEIg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720460131; x=1721064931;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=i4f91M354fClKBK9C+cxTehpG9qrbHFjq1S8H6hQbys=;
        b=sULG/8y1HE5X8oa9ogD/mx11J4vjo3k4Gc0cyGU3ieGhkZs4ZS1kXvvDkCkKCz9VEh
         1o2RL+tkKz69GbmgRv3q7trYBrF+QWuBUkAyh9WGUnWqDOplcizVlnDkZlEmPXjoZcYf
         GroNOUKgZdgZZHo/LXqWmytFqeryJBmynMJc2m5Rrx85hPgRm9qFfExzVK5OEH/VEt4q
         pb8qMFLb+Y2w8Ohz7vOHzjXEU3qa8hQs3kgvDBycffCy3jdIwma52e/2nT5vxPokrIGX
         CASisbHrTRpUPdM+jyXyN5v4r7J8bDXZDQ9aM7TPElUuDWBMEIAk4itpCSyzW4uZRudF
         Rftg==
X-Gm-Message-State: AOJu0YxF1/ppJr1xtDw5JPfH9gpUkjRgI+Br5SvPyoftYp22PST9S9zM
	JsWERLdmYDSSlFeEE2QQdA86XUiWM93HJ7IqZE0kha07en46O6GsdBt+Mjiyuj2iDhZ6XHhyMnw
	/
X-Google-Smtp-Source: AGHT+IFZ7UULz4vxUyzkyIdVvhbt8bqRPpmCAPXGYYcuy6YcYeiqwPUEs6VBH9SOOPgLgxPPZaIEsQ==
X-Received: by 2002:a17:906:4ed6:b0:a77:c199:9cfc with SMTP id a640c23a62f3a-a780b8856e6mr15951166b.57.1720460131453;
        Mon, 08 Jul 2024 10:35: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 4/4] CI: Refresh bullseye-ppc64le
Date: Mon,  8 Jul 2024 18:35:22 +0100
Message-Id: <20240708173522.2218293-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240708173522.2218293-1-andrew.cooper3@citrix.com>
References: <20240708173522.2218293-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... in the style of bookworm-ppc64le

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 .../build/debian/bullseye-ppc64le.dockerfile  | 51 ++++++++++---------
 1 file changed, 26 insertions(+), 25 deletions(-)

diff --git a/automation/build/debian/bullseye-ppc64le.dockerfile b/automation/build/debian/bullseye-ppc64le.dockerfile
index e166d205f38c..d846b670d02c 100644
--- a/automation/build/debian/bullseye-ppc64le.dockerfile
+++ b/automation/build/debian/bullseye-ppc64le.dockerfile
@@ -1,32 +1,33 @@
 # syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:bullseye-slim
-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"
 
 ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
+ENV CROSS_COMPILE=powerpc64le-linux-gnu-
+ENV XEN_TARGET_ARCH=ppc64
 
-# Add compiler path
-ENV CROSS_COMPILE powerpc64le-linux-gnu-
+RUN <<EOF
+#!/bin/bash
+    set -e
 
-RUN mkdir /build
-WORKDIR /build
+    useradd --create-home user
+
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+        gcc-powerpc64le-linux-gnu
+        python3-minimal
+    )
 
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes --no-install-recommends install \
-        bison \
-        build-essential \
-        checkpolicy \
-        flex \
-        gawk \
-        gcc-powerpc64le-linux-gnu \
-        make \
-        python3-minimal \
-        # QEMU runtime dependencies for test phase
-        libglib2.0-0 \
-        libpixman-1-0 \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 17:52:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 17:52:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755565.1163970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQsXd-0005g7-QS; Mon, 08 Jul 2024 17:52:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755565.1163970; Mon, 08 Jul 2024 17: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 1sQsXd-0005g0-NJ; Mon, 08 Jul 2024 17:52:45 +0000
Received: by outflank-mailman (input) for mailman id 755565;
 Mon, 08 Jul 2024 17:52:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQsXc-0005fq-EV; Mon, 08 Jul 2024 17:52:44 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQsXc-0002ok-Cg; Mon, 08 Jul 2024 17:52:44 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQsXb-00007n-U8; Mon, 08 Jul 2024 17:52:44 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQsXb-00021B-Te; Mon, 08 Jul 2024 17: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=UIMahHJy43DLOKWqb5dBzy5cmd03uUE4Fqn8o12vtPo=; b=KVwRCts9l40616B1s9HD10p3YJ
	StAlf0FSHh6hnZAIeGqINIXc4UrHojAmc/7B4NcaRXMPsUz+HiyUCSYq9oT++8cTsvGmQ3kYEbl2Z
	gmt7s9pw68GaFOv9hh/7AvWBSjYp8dnDizQzYt1dDN545E/7ffK23pXll5OM3MYRi+r4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186730-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186730: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=64cee188376e52a154475a86a9d2adc85f029870
X-Osstest-Versions-That:
    xen=c2a66d0b58b9661037cfed6bf3f8122b3363ca38
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Jul 2024 17:52:43 +0000

flight 186730 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186730/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  64cee188376e52a154475a86a9d2adc85f029870
baseline version:
 xen                  c2a66d0b58b9661037cfed6bf3f8122b3363ca38

Last test of basis   186703  2024-07-05 15:02:07 Z    3 days
Testing same since   186730  2024-07-08 15:02:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Huang Rui <ray.huang@amd.com>
  Jiqian Chen <Jiqian.Chen@amd.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c2a66d0b58..64cee18837  64cee188376e52a154475a86a9d2adc85f029870 -> smoke


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 19:00:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 19:00:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755578.1163980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQtah-0005MQ-LH; Mon, 08 Jul 2024 18:59:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755578.1163980; Mon, 08 Jul 2024 18: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 1sQtah-0005MJ-II; Mon, 08 Jul 2024 18:59:59 +0000
Received: by outflank-mailman (input) for mailman id 755578;
 Mon, 08 Jul 2024 18:59:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQtag-0005M9-7x; Mon, 08 Jul 2024 18:59:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQtag-0003wY-6Q; Mon, 08 Jul 2024 18:59:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQtaf-0001ga-SJ; Mon, 08 Jul 2024 18:59:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQtaf-0007ju-Rx; Mon, 08 Jul 2024 18:59: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=CZuVhJEbcFm0mC3AtcPdc9kVILoU9DrvXYsD+gW3FDw=; b=63cgPZjW5lc65/icDHJLwkyFiW
	pOT32Wq2XLeA4bw1Z27tqsOWyTIdWwfq88/hA+1WzbdbEht+85hKpg2Ad5qWKZs5KIkx2c3kqET0X
	2GoLRaHe9y4XT3mMGD2tHv0ngd2RSv6IG7stZaKXTUXr+UXLgy6L4NxPqQAuJrGgX3Yk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186731-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186731: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=95a6892aacfef6c7862058fcdc495f6b35df9367
X-Osstest-Versions-That:
    ovmf=049e12c03d27f0a6bf57f4f1835cab5e205661a7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Jul 2024 18:59:57 +0000

flight 186731 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186731/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 95a6892aacfef6c7862058fcdc495f6b35df9367
baseline version:
 ovmf                 049e12c03d27f0a6bf57f4f1835cab5e205661a7

Last test of basis   186722  2024-07-07 11:14:38 Z    1 days
Testing same since   186731  2024-07-08 17:11:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Aaron Pop <aaronpop@microsoft.com>
  Matthew Carlson <matthewfcarlson@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   049e12c03d..95a6892aac  95a6892aacfef6c7862058fcdc495f6b35df9367 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 19:41:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 19:41:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755587.1163989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQuEh-0002gE-MY; Mon, 08 Jul 2024 19:41:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755587.1163989; Mon, 08 Jul 2024 19: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 1sQuEh-0002g7-Jx; Mon, 08 Jul 2024 19:41:19 +0000
Received: by outflank-mailman (input) for mailman id 755587;
 Mon, 08 Jul 2024 19: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=59z4=OI=gmail.com=mhkelley58@srs-se1.protection.inumbo.net>)
 id 1sQuEf-0002g1-Ly
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 19:41:17 +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 0854cd74-3d62-11ef-8776-851b0ebba9a2;
 Mon, 08 Jul 2024 21:41:13 +0200 (CEST)
Received: by mail-pf1-x42a.google.com with SMTP id
 d2e1a72fcca58-70b0013cf33so2886799b3a.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 12:41:13 -0700 (PDT)
Received: from localhost.localdomain (c-67-161-114-176.hsd1.wa.comcast.net.
 [67.161.114.176]) by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-70b438994d2sm266414b3a.13.2024.07.08.12.41.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 08 Jul 2024 12:41: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: 0854cd74-3d62-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720467672; x=1721072472; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:reply-to:message-id:date
         :subject:to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=zegj0vHwvFcBDG9p0jNscCdiRakO7M/ZJVoOLI21Ek8=;
        b=hcm7Kdyo4REu9eDsmTaBrgQ1b3Okg89bLBut1h3buni3ivo3TgK4ssPN5Imvj64oqD
         tkBuJNjekSuOS537meQw5Frja7bUrUbsBY3gTChT4TwnWGWr5ywwoc9TFFLvJ8DFdR7p
         FGLA2eX+CVKFCJ8ZuujNH/95oJHnGcP7lnZaot+OmKh6gK93OKV7++e4DrT3gaCWRC5/
         QmVE0gWU5GKuYmztMGFTVxKoKIpZSrYBGoWZmZNt7lHy5xUPgXpSUdyBX+Yte5YZjny2
         8uFDdHeLj62WYONbPeQu8B+aOV7SQJ2sfbOmpv2tbtlQMQH86CfF6D8rMMr9bCO8rjDc
         s0VA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720467672; x=1721072472;
        h=content-transfer-encoding:mime-version:reply-to:message-id:date
         :subject:to:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zegj0vHwvFcBDG9p0jNscCdiRakO7M/ZJVoOLI21Ek8=;
        b=Eoq1gE9qPJrTau9vjlTm8T0Hnq6RUOcXa6cspsAv5evvvzLYCL/rJ8RvYQ7nlRV8rc
         uY0iVxZgdQPZaqUg7Ays5mMdMg99UraiCgQyGmk/K7+1a1IjO2iMyXIc3sepSzMzuNVZ
         jR4zlK8zwo59jePp7FU03ODI5XEu6glrPYnQGeIJqQvE7u6d6iA1R+4Lc82uo1/RHmEF
         oHQ0lz/d01oPR+AnlgoXynyeecjx5I+p5wkGgFBfz0cI5ftktUYVB9ENg2Ahr1v/lETe
         o4C4ILcAPpcxlzbyDpIH8Ao+u7zEpN0Wpwhq/WbIEV/pegqzUSpjSQ1cpWbf3b+sP48J
         ylkA==
X-Forwarded-Encrypted: i=1; AJvYcCXJv3UCllMS5SCBAxHJ4vlrUYiAh2uqhpA4/NRZR7bzSe1uhQJGTw6vOgLvC3X/pVblXkfEE8TMmew8A8vDtmG8vqfN9jP+MzjXzyathzk=
X-Gm-Message-State: AOJu0Yyl4QsImdyOUwT1V4lfHkXFArb36MZRl2QKLKbf9Kbbf0uf0avU
	/aUUyDBQtblP3uBW06QAao5qy2k+O4BaQb3ZiEhO00mSiaceKQ2F
X-Google-Smtp-Source: AGHT+IHf0BiQoDOCgC2P8pLuSrnDLeK+K34eYlkwiI311WbRMPDqHnFw1JG/IzsPO5M8yT0aqh7taw==
X-Received: by 2002:a05:6a00:ccd:b0:706:8a67:c3a0 with SMTP id d2e1a72fcca58-70b434f64b1mr696228b3a.5.1720467671758;
        Mon, 08 Jul 2024 12:41:11 -0700 (PDT)
From: mhkelley58@gmail.com
X-Google-Original-From: mhklinux@outlook.com
To: robin.murphy@arm.com,
	joro@8bytes.org,
	will@kernel.org,
	jgross@suse.com,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	hch@lst.de,
	m.szyprowski@samsung.com,
	petr@tesarici.cz,
	iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Date: Mon,  8 Jul 2024 12:41:00 -0700
Message-Id: <20240708194100.1531-1-mhklinux@outlook.com>
X-Mailer: git-send-email 2.25.1
Reply-To: mhklinux@outlook.com
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Michael Kelley <mhklinux@outlook.com>

With CONFIG_SWIOTLB_DYNAMIC enabled, each round-trip map/unmap pair
in the swiotlb results in 6 calls to swiotlb_find_pool(). In multiple
places, the pool is found and used in one function, and then must
be found again in the next function that is called because only the
tlb_addr is passed as an argument. These are the six call sites:

dma_direct_map_page:
1. swiotlb_map->swiotlb_tbl_map_single->swiotlb_bounce

dma_direct_unmap_page:
2. dma_direct_sync_single_for_cpu->is_swiotlb_buffer
3. dma_direct_sync_single_for_cpu->swiotlb_sync_single_for_cpu->
	swiotlb_bounce
4. is_swiotlb_buffer
5. swiotlb_tbl_unmap_single->swiotlb_del_transient
6. swiotlb_tbl_unmap_single->swiotlb_release_slots

Reduce the number of calls by finding the pool at a higher level, and
passing it as an argument instead of searching again. A key change is
for is_swiotlb_buffer() to return a pool pointer instead of a boolean,
and then pass this pool pointer to subsequent swiotlb functions.

There are 9 occurrences of is_swiotlb_buffer() used to test if a buffer
is a swiotlb buffer before calling a swiotlb function. To reduce code
duplication in getting the pool pointer and passing it as an argument,
introduce inline wrappers for this pattern. The generated code is
essentially unchanged.

Since is_swiotlb_buffer() no longer returns a boolean, rename some
functions to reflect the change:
* swiotlb_find_pool() becomes __swiotlb_find_pool()
* is_swiotlb_buffer() becomes swiotlb_find_pool()
* is_xen_swiotlb_buffer() becomes xen_swiotlb_find_pool()

With these changes, a round-trip map/unmap pair requires only 2 pool
lookups (listed using the new names and wrappers):

dma_direct_unmap_page:
1. dma_direct_sync_single_for_cpu->swiotlb_find_pool
2. swiotlb_tbl_unmap_single->swiotlb_find_pool

These changes come from noticing the inefficiencies in a code review,
not from performance measurements. With CONFIG_SWIOTLB_DYNAMIC,
__swiotlb_find_pool() is not trivial, and it uses an RCU read lock,
so avoiding the redundant calls helps performance in a hot path.
When CONFIG_SWIOTLB_DYNAMIC is *not* set, the code size reduction
is minimal and the perf benefits are likely negligible, but no
harm is done.

No functional change is intended.

Signed-off-by: Michael Kelley <mhklinux@outlook.com>
---

Changes in v3:
* Add inline wrappers for swiotlb_tbl_unmap_single(),
  swiotlb_sync_single_for_device() and swiotlb_sync_single_for_cpu() to
  commonize the swiotlb_find_pool() tests for whether the buffer is a
  swiotlb buffer [Christoph Hellwig]
* Change most users of __swiotlb_find_pool() to use swiotlb_find_pool(),
  as the extra checks in the latter aren't impactful. Remove v2 change in
  swiotlb_find_pool() to use __swiotlb_find_pool() when
  CONFIG_SWIOTLB_DYNAMIC is not set. [Christoph Hellwig]
* Rework swiotlb_find_pool() to use IS_ENABLED() instead of #ifdef's.
  To make this work, move dma_uses_io_tlb field in struct device out from
  under #ifdef CONFIG_SWIOTLB_DYNAMIC. [Christoph Hellwig]
* Fix line lengths > 80 chars [Christoph Hellwig]
* Update commit message to reflect changes

Changes in v2 vs. RFC version[1]:
* In swiotlb_find_pool(), use __swiotlb_find_pool() instead of open
  coding when CONFIG_SWIOTLB_DYNAMIC is not set [Petr Tesařík]
* Rename functions as described in the commit message to reflect that
  is_swiotlb_buffer() no longer returns a boolean [Petr Tesařík,
  Christoph Hellwig]
* Updated commit message and patch Subject

[1] https://lore.kernel.org/linux-iommu/20240607031421.182589-1-mhklinux@outlook.com/

 drivers/iommu/dma-iommu.c   |  11 ++-
 drivers/xen/swiotlb-xen.c   |  31 +++++---
 include/linux/device.h      |   3 +-
 include/linux/scatterlist.h |   2 +-
 include/linux/swiotlb.h     | 138 +++++++++++++++++++++---------------
 kernel/dma/direct.c         |  10 +--
 kernel/dma/direct.h         |   9 +--
 kernel/dma/swiotlb.c        |  64 +++++++++--------
 8 files changed, 150 insertions(+), 118 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 43520e7275cc..7b4486238427 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1081,8 +1081,7 @@ static void iommu_dma_sync_single_for_cpu(struct device *dev,
 	if (!dev_is_dma_coherent(dev))
 		arch_sync_dma_for_cpu(phys, size, dir);
 
-	if (is_swiotlb_buffer(dev, phys))
-		swiotlb_sync_single_for_cpu(dev, phys, size, dir);
+	swiotlb_sync_single_for_cpu(dev, phys, size, dir);
 }
 
 static void iommu_dma_sync_single_for_device(struct device *dev,
@@ -1094,8 +1093,7 @@ static void iommu_dma_sync_single_for_device(struct device *dev,
 		return;
 
 	phys = iommu_iova_to_phys(iommu_get_dma_domain(dev), dma_handle);
-	if (is_swiotlb_buffer(dev, phys))
-		swiotlb_sync_single_for_device(dev, phys, size, dir);
+	swiotlb_sync_single_for_device(dev, phys, size, dir);
 
 	if (!dev_is_dma_coherent(dev))
 		arch_sync_dma_for_device(phys, size, dir);
@@ -1189,7 +1187,7 @@ static dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
 		arch_sync_dma_for_device(phys, size, dir);
 
 	iova = __iommu_dma_map(dev, phys, size, prot, dma_mask);
-	if (iova == DMA_MAPPING_ERROR && is_swiotlb_buffer(dev, phys))
+	if (iova == DMA_MAPPING_ERROR)
 		swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs);
 	return iova;
 }
@@ -1209,8 +1207,7 @@ static void iommu_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
 
 	__iommu_dma_unmap(dev, dma_handle, size);
 
-	if (unlikely(is_swiotlb_buffer(dev, phys)))
-		swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs);
+	swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs);
 }
 
 /*
diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
index 6579ae3f6dac..35155258a7e2 100644
--- a/drivers/xen/swiotlb-xen.c
+++ b/drivers/xen/swiotlb-xen.c
@@ -88,7 +88,8 @@ static inline int range_straddles_page_boundary(phys_addr_t p, size_t size)
 	return 0;
 }
 
-static int is_xen_swiotlb_buffer(struct device *dev, dma_addr_t dma_addr)
+static struct io_tlb_pool *xen_swiotlb_find_pool(struct device *dev,
+						 dma_addr_t dma_addr)
 {
 	unsigned long bfn = XEN_PFN_DOWN(dma_to_phys(dev, dma_addr));
 	unsigned long xen_pfn = bfn_to_local_pfn(bfn);
@@ -99,8 +100,8 @@ static int is_xen_swiotlb_buffer(struct device *dev, dma_addr_t dma_addr)
 	 * in our domain. Therefore _only_ check address within our domain.
 	 */
 	if (pfn_valid(PFN_DOWN(paddr)))
-		return is_swiotlb_buffer(dev, paddr);
-	return 0;
+		return swiotlb_find_pool(dev, paddr);
+	return NULL;
 }
 
 #ifdef CONFIG_X86
@@ -227,8 +228,9 @@ static dma_addr_t xen_swiotlb_map_page(struct device *dev, struct page *page,
 	 * Ensure that the address returned is DMA'ble
 	 */
 	if (unlikely(!dma_capable(dev, dev_addr, size, true))) {
-		swiotlb_tbl_unmap_single(dev, map, size, dir,
-				attrs | DMA_ATTR_SKIP_CPU_SYNC);
+		__swiotlb_tbl_unmap_single(dev, map, size, dir,
+				attrs | DMA_ATTR_SKIP_CPU_SYNC,
+				swiotlb_find_pool(dev, map));
 		return DMA_MAPPING_ERROR;
 	}
 
@@ -254,6 +256,7 @@ static void xen_swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 	phys_addr_t paddr = xen_dma_to_phys(hwdev, dev_addr);
+	struct io_tlb_pool *pool;
 
 	BUG_ON(dir == DMA_NONE);
 
@@ -265,8 +268,10 @@ static void xen_swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr,
 	}
 
 	/* NOTE: We use dev_addr here, not paddr! */
-	if (is_xen_swiotlb_buffer(hwdev, dev_addr))
-		swiotlb_tbl_unmap_single(hwdev, paddr, size, dir, attrs);
+	pool = xen_swiotlb_find_pool(hwdev, dev_addr);
+	if (pool)
+		__swiotlb_tbl_unmap_single(hwdev, paddr, size, dir,
+					   attrs, pool);
 }
 
 static void
@@ -274,6 +279,7 @@ xen_swiotlb_sync_single_for_cpu(struct device *dev, dma_addr_t dma_addr,
 		size_t size, enum dma_data_direction dir)
 {
 	phys_addr_t paddr = xen_dma_to_phys(dev, dma_addr);
+	struct io_tlb_pool *pool;
 
 	if (!dev_is_dma_coherent(dev)) {
 		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dma_addr))))
@@ -282,8 +288,9 @@ xen_swiotlb_sync_single_for_cpu(struct device *dev, dma_addr_t dma_addr,
 			xen_dma_sync_for_cpu(dev, dma_addr, size, dir);
 	}
 
-	if (is_xen_swiotlb_buffer(dev, dma_addr))
-		swiotlb_sync_single_for_cpu(dev, paddr, size, dir);
+	pool = xen_swiotlb_find_pool(dev, dma_addr);
+	if (pool)
+		__swiotlb_sync_single_for_cpu(dev, paddr, size, dir, pool);
 }
 
 static void
@@ -291,9 +298,11 @@ xen_swiotlb_sync_single_for_device(struct device *dev, dma_addr_t dma_addr,
 		size_t size, enum dma_data_direction dir)
 {
 	phys_addr_t paddr = xen_dma_to_phys(dev, dma_addr);
+	struct io_tlb_pool *pool;
 
-	if (is_xen_swiotlb_buffer(dev, dma_addr))
-		swiotlb_sync_single_for_device(dev, paddr, size, dir);
+	pool = xen_swiotlb_find_pool(dev, dma_addr);
+	if (pool)
+		__swiotlb_sync_single_for_device(dev, paddr, size, dir, pool);
 
 	if (!dev_is_dma_coherent(dev)) {
 		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dma_addr))))
diff --git a/include/linux/device.h b/include/linux/device.h
index ace039151cb8..d8a7f5245b7e 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -778,8 +778,9 @@ struct device {
 #ifdef CONFIG_SWIOTLB_DYNAMIC
 	struct list_head dma_io_tlb_pools;
 	spinlock_t dma_io_tlb_lock;
-	bool dma_uses_io_tlb;
 #endif
+	bool dma_uses_io_tlb;
+
 	/* arch specific additions */
 	struct dev_archdata	archdata;
 
diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
index 77df3d7b18a6..e61d164622db 100644
--- a/include/linux/scatterlist.h
+++ b/include/linux/scatterlist.h
@@ -332,7 +332,7 @@ static inline void sg_dma_unmark_bus_address(struct scatterlist *sg)
  * Description:
  *   Returns true if the scatterlist was marked for SWIOTLB bouncing. Not all
  *   elements may have been bounced, so the caller would have to check
- *   individual SG entries with is_swiotlb_buffer().
+ *   individual SG entries with swiotlb_find_pool().
  */
 static inline bool sg_dma_is_swiotlb(struct scatterlist *sg)
 {
diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
index 14bc10c1bb23..9ee8231e6956 100644
--- a/include/linux/swiotlb.h
+++ b/include/linux/swiotlb.h
@@ -42,24 +42,6 @@ int swiotlb_init_late(size_t size, gfp_t gfp_mask,
 	int (*remap)(void *tlb, unsigned long nslabs));
 extern void __init swiotlb_update_mem_attributes(void);
 
-phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, phys_addr_t phys,
-		size_t mapping_size,
-		unsigned int alloc_aligned_mask, enum dma_data_direction dir,
-		unsigned long attrs);
-
-extern void swiotlb_tbl_unmap_single(struct device *hwdev,
-				     phys_addr_t tlb_addr,
-				     size_t mapping_size,
-				     enum dma_data_direction dir,
-				     unsigned long attrs);
-
-void swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_addr,
-		size_t size, enum dma_data_direction dir);
-void swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_addr,
-		size_t size, enum dma_data_direction dir);
-dma_addr_t swiotlb_map(struct device *dev, phys_addr_t phys,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
-
 #ifdef CONFIG_SWIOTLB
 
 /**
@@ -143,55 +125,48 @@ struct io_tlb_mem {
 #endif
 };
 
-#ifdef CONFIG_SWIOTLB_DYNAMIC
-
-struct io_tlb_pool *swiotlb_find_pool(struct device *dev, phys_addr_t paddr);
-
-#else
-
-static inline struct io_tlb_pool *swiotlb_find_pool(struct device *dev,
-						    phys_addr_t paddr)
-{
-	return &dev->dma_io_tlb_mem->defpool;
-}
-
-#endif
+struct io_tlb_pool *__swiotlb_find_pool(struct device *dev, phys_addr_t paddr);
 
 /**
- * is_swiotlb_buffer() - check if a physical address belongs to a swiotlb
+ * swiotlb_find_pool() - find swiotlb pool to which a physical address belongs
  * @dev:        Device which has mapped the buffer.
  * @paddr:      Physical address within the DMA buffer.
  *
- * Check if @paddr points into a bounce buffer.
+ * Find the swiotlb pool that @paddr points into.
  *
  * Return:
- * * %true if @paddr points into a bounce buffer
- * * %false otherwise
+ * * pool address if @paddr points into a bounce buffer
+ * * NULL if @paddr does not point into a bounce buffer. As such, this function
+ *   can be used to determine if @paddr denotes a swiotlb bounce buffer.
  */
-static inline bool is_swiotlb_buffer(struct device *dev, phys_addr_t paddr)
+static inline struct io_tlb_pool *swiotlb_find_pool(struct device *dev,
+						    phys_addr_t paddr)
 {
 	struct io_tlb_mem *mem = dev->dma_io_tlb_mem;
 
 	if (!mem)
-		return false;
+		return NULL;
+
+	if (IS_ENABLED(CONFIG_SWIOTLB_DYNAMIC)) {
+		/*
+		 * All SWIOTLB buffer addresses must have been returned by
+		 * swiotlb_tbl_map_single() and passed to a device driver.
+		 * If a SWIOTLB address is checked on another CPU, then it was
+		 * presumably loaded by the device driver from an unspecified
+		 * private data structure. Make sure that this load is ordered
+		 * before reading dev->dma_uses_io_tlb here and mem->pools
+		 * in __swiotlb_find_pool().
+		 *
+		 * This barrier pairs with smp_mb() in swiotlb_find_slots().
+		 */
+		smp_rmb();
+		if (READ_ONCE(dev->dma_uses_io_tlb))
+			return __swiotlb_find_pool(dev, paddr);
+	} else if (paddr >= mem->defpool.start && paddr < mem->defpool.end) {
+		return &mem->defpool;
+	}
 
-#ifdef CONFIG_SWIOTLB_DYNAMIC
-	/*
-	 * All SWIOTLB buffer addresses must have been returned by
-	 * swiotlb_tbl_map_single() and passed to a device driver.
-	 * If a SWIOTLB address is checked on another CPU, then it was
-	 * presumably loaded by the device driver from an unspecified private
-	 * data structure. Make sure that this load is ordered before reading
-	 * dev->dma_uses_io_tlb here and mem->pools in swiotlb_find_pool().
-	 *
-	 * This barrier pairs with smp_mb() in swiotlb_find_slots().
-	 */
-	smp_rmb();
-	return READ_ONCE(dev->dma_uses_io_tlb) &&
-		swiotlb_find_pool(dev, paddr);
-#else
-	return paddr >= mem->defpool.start && paddr < mem->defpool.end;
-#endif
+	return NULL;
 }
 
 static inline bool is_swiotlb_force_bounce(struct device *dev)
@@ -219,9 +194,10 @@ static inline void swiotlb_dev_init(struct device *dev)
 {
 }
 
-static inline bool is_swiotlb_buffer(struct device *dev, phys_addr_t paddr)
+static inline struct io_tlb_pool *swiotlb_find_pool(struct device *dev,
+						    phys_addr_t paddr)
 {
-	return false;
+	return NULL;
 }
 static inline bool is_swiotlb_force_bounce(struct device *dev)
 {
@@ -260,6 +236,56 @@ static inline phys_addr_t default_swiotlb_limit(void)
 }
 #endif /* CONFIG_SWIOTLB */
 
+phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, phys_addr_t phys,
+		size_t mapping_size,
+		unsigned int alloc_aligned_mask, enum dma_data_direction dir,
+		unsigned long attrs);
+
+void __swiotlb_tbl_unmap_single(struct device *hwdev,
+				     phys_addr_t tlb_addr,
+				     size_t mapping_size,
+				     enum dma_data_direction dir,
+				     unsigned long attrs,
+				     struct io_tlb_pool *pool);
+
+void __swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_addr,
+				      size_t size, enum dma_data_direction dir,
+				      struct io_tlb_pool *pool);
+void __swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_addr,
+				   size_t size, enum dma_data_direction dir,
+				   struct io_tlb_pool *pool);
+dma_addr_t swiotlb_map(struct device *dev, phys_addr_t phys,
+		size_t size, enum dma_data_direction dir, unsigned long attrs);
+
+
+static inline void swiotlb_tbl_unmap_single(struct device *dev,
+			phys_addr_t addr, size_t size,
+			enum dma_data_direction dir, unsigned long attrs)
+{
+	struct io_tlb_pool *pool = swiotlb_find_pool(dev, addr);
+
+	if (unlikely(pool))
+		__swiotlb_tbl_unmap_single(dev, addr, size, dir, attrs, pool);
+}
+
+static inline void swiotlb_sync_single_for_device(struct device *dev,
+		phys_addr_t addr, size_t size, enum dma_data_direction dir)
+{
+	struct io_tlb_pool *pool = swiotlb_find_pool(dev, addr);
+
+	if (unlikely(pool))
+		__swiotlb_sync_single_for_device(dev, addr, size, dir, pool);
+}
+
+static inline void swiotlb_sync_single_for_cpu(struct device *dev,
+		phys_addr_t addr, size_t size, enum dma_data_direction dir)
+{
+	struct io_tlb_pool *pool = swiotlb_find_pool(dev, addr);
+
+	if (unlikely(pool))
+		__swiotlb_sync_single_for_cpu(dev, addr, size, dir, pool);
+}
+
 extern void swiotlb_print_info(void);
 
 #ifdef CONFIG_DMA_RESTRICTED_POOL
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index 4d543b1e9d57..4480a3cd92e0 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -404,9 +404,7 @@ void dma_direct_sync_sg_for_device(struct device *dev,
 	for_each_sg(sgl, sg, nents, i) {
 		phys_addr_t paddr = dma_to_phys(dev, sg_dma_address(sg));
 
-		if (unlikely(is_swiotlb_buffer(dev, paddr)))
-			swiotlb_sync_single_for_device(dev, paddr, sg->length,
-						       dir);
+		swiotlb_sync_single_for_device(dev, paddr, sg->length, dir);
 
 		if (!dev_is_dma_coherent(dev))
 			arch_sync_dma_for_device(paddr, sg->length,
@@ -430,9 +428,7 @@ void dma_direct_sync_sg_for_cpu(struct device *dev,
 		if (!dev_is_dma_coherent(dev))
 			arch_sync_dma_for_cpu(paddr, sg->length, dir);
 
-		if (unlikely(is_swiotlb_buffer(dev, paddr)))
-			swiotlb_sync_single_for_cpu(dev, paddr, sg->length,
-						    dir);
+		swiotlb_sync_single_for_cpu(dev, paddr, sg->length, dir);
 
 		if (dir == DMA_FROM_DEVICE)
 			arch_dma_mark_clean(paddr, sg->length);
@@ -640,7 +636,7 @@ size_t dma_direct_max_mapping_size(struct device *dev)
 bool dma_direct_need_sync(struct device *dev, dma_addr_t dma_addr)
 {
 	return !dev_is_dma_coherent(dev) ||
-	       is_swiotlb_buffer(dev, dma_to_phys(dev, dma_addr));
+	       swiotlb_find_pool(dev, dma_to_phys(dev, dma_addr));
 }
 
 /**
diff --git a/kernel/dma/direct.h b/kernel/dma/direct.h
index 18d346118fe8..d2c0b7e632fc 100644
--- a/kernel/dma/direct.h
+++ b/kernel/dma/direct.h
@@ -58,8 +58,7 @@ static inline void dma_direct_sync_single_for_device(struct device *dev,
 {
 	phys_addr_t paddr = dma_to_phys(dev, addr);
 
-	if (unlikely(is_swiotlb_buffer(dev, paddr)))
-		swiotlb_sync_single_for_device(dev, paddr, size, dir);
+	swiotlb_sync_single_for_device(dev, paddr, size, dir);
 
 	if (!dev_is_dma_coherent(dev))
 		arch_sync_dma_for_device(paddr, size, dir);
@@ -75,8 +74,7 @@ static inline void dma_direct_sync_single_for_cpu(struct device *dev,
 		arch_sync_dma_for_cpu_all();
 	}
 
-	if (unlikely(is_swiotlb_buffer(dev, paddr)))
-		swiotlb_sync_single_for_cpu(dev, paddr, size, dir);
+	swiotlb_sync_single_for_cpu(dev, paddr, size, dir);
 
 	if (dir == DMA_FROM_DEVICE)
 		arch_dma_mark_clean(paddr, size);
@@ -121,8 +119,7 @@ static inline void dma_direct_unmap_page(struct device *dev, dma_addr_t addr,
 	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
 		dma_direct_sync_single_for_cpu(dev, addr, size, dir);
 
-	if (unlikely(is_swiotlb_buffer(dev, phys)))
-		swiotlb_tbl_unmap_single(dev, phys, size, dir,
+	swiotlb_tbl_unmap_single(dev, phys, size, dir,
 					 attrs | DMA_ATTR_SKIP_CPU_SYNC);
 }
 #endif /* _KERNEL_DMA_DIRECT_H */
diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
index fe1ccb53596f..5010812e7da4 100644
--- a/kernel/dma/swiotlb.c
+++ b/kernel/dma/swiotlb.c
@@ -763,16 +763,18 @@ static void swiotlb_dyn_free(struct rcu_head *rcu)
 }
 
 /**
- * swiotlb_find_pool() - find the IO TLB pool for a physical address
+ * __swiotlb_find_pool() - find the IO TLB pool for a physical address
  * @dev:        Device which has mapped the DMA buffer.
  * @paddr:      Physical address within the DMA buffer.
  *
  * Find the IO TLB memory pool descriptor which contains the given physical
- * address, if any.
+ * address, if any. This function is for use only when the dev is known to
+ * be using swiotlb. Use swiotlb_find_pool() for the more general case
+ * when this condition is not met.
  *
  * Return: Memory pool which contains @paddr, or %NULL if none.
  */
-struct io_tlb_pool *swiotlb_find_pool(struct device *dev, phys_addr_t paddr)
+struct io_tlb_pool *__swiotlb_find_pool(struct device *dev, phys_addr_t paddr)
 {
 	struct io_tlb_mem *mem = dev->dma_io_tlb_mem;
 	struct io_tlb_pool *pool;
@@ -855,9 +857,8 @@ static unsigned int swiotlb_align_offset(struct device *dev,
  * Bounce: copy the swiotlb buffer from or back to the original dma location
  */
 static void swiotlb_bounce(struct device *dev, phys_addr_t tlb_addr, size_t size,
-			   enum dma_data_direction dir)
+			   enum dma_data_direction dir, struct io_tlb_pool *mem)
 {
-	struct io_tlb_pool *mem = swiotlb_find_pool(dev, tlb_addr);
 	int index = (tlb_addr - mem->start) >> IO_TLB_SHIFT;
 	phys_addr_t orig_addr = mem->slots[index].orig_addr;
 	size_t alloc_size = mem->slots[index].alloc_size;
@@ -1243,7 +1244,7 @@ static int swiotlb_find_slots(struct device *dev, phys_addr_t orig_addr,
 	 * that was made by swiotlb_dyn_alloc() on a third CPU (cf. multicopy
 	 * atomicity).
 	 *
-	 * See also the comment in is_swiotlb_buffer().
+	 * See also the comment in swiotlb_find_pool().
 	 */
 	smp_mb();
 
@@ -1435,13 +1436,13 @@ phys_addr_t swiotlb_tbl_map_single(struct device *dev, phys_addr_t orig_addr,
 	 * hardware behavior.  Use of swiotlb is supposed to be transparent,
 	 * i.e. swiotlb must not corrupt memory by clobbering unwritten bytes.
 	 */
-	swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_TO_DEVICE);
+	swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_TO_DEVICE, pool);
 	return tlb_addr;
 }
 
-static void swiotlb_release_slots(struct device *dev, phys_addr_t tlb_addr)
+static void swiotlb_release_slots(struct device *dev, phys_addr_t tlb_addr,
+				  struct io_tlb_pool *mem)
 {
-	struct io_tlb_pool *mem = swiotlb_find_pool(dev, tlb_addr);
 	unsigned long flags;
 	unsigned int offset = swiotlb_align_offset(dev, 0, tlb_addr);
 	int index, nslots, aindex;
@@ -1505,11 +1506,9 @@ static void swiotlb_release_slots(struct device *dev, phys_addr_t tlb_addr)
  *
  * Return: %true if @tlb_addr belonged to a transient pool that was released.
  */
-static bool swiotlb_del_transient(struct device *dev, phys_addr_t tlb_addr)
+static bool swiotlb_del_transient(struct device *dev, phys_addr_t tlb_addr,
+				  struct io_tlb_pool *pool)
 {
-	struct io_tlb_pool *pool;
-
-	pool = swiotlb_find_pool(dev, tlb_addr);
 	if (!pool->transient)
 		return false;
 
@@ -1522,7 +1521,8 @@ static bool swiotlb_del_transient(struct device *dev, phys_addr_t tlb_addr)
 #else  /* !CONFIG_SWIOTLB_DYNAMIC */
 
 static inline bool swiotlb_del_transient(struct device *dev,
-					 phys_addr_t tlb_addr)
+					 phys_addr_t tlb_addr,
+					 struct io_tlb_pool *pool)
 {
 	return false;
 }
@@ -1532,36 +1532,39 @@ static inline bool swiotlb_del_transient(struct device *dev,
 /*
  * tlb_addr is the physical address of the bounce buffer to unmap.
  */
-void swiotlb_tbl_unmap_single(struct device *dev, phys_addr_t tlb_addr,
+void __swiotlb_tbl_unmap_single(struct device *dev, phys_addr_t tlb_addr,
 			      size_t mapping_size, enum dma_data_direction dir,
-			      unsigned long attrs)
+			      unsigned long attrs, struct io_tlb_pool *pool)
 {
 	/*
 	 * First, sync the memory before unmapping the entry
 	 */
 	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC) &&
 	    (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL))
-		swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_FROM_DEVICE);
+		swiotlb_bounce(dev, tlb_addr, mapping_size,
+						DMA_FROM_DEVICE, pool);
 
-	if (swiotlb_del_transient(dev, tlb_addr))
+	if (swiotlb_del_transient(dev, tlb_addr, pool))
 		return;
-	swiotlb_release_slots(dev, tlb_addr);
+	swiotlb_release_slots(dev, tlb_addr, pool);
 }
 
-void swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_addr,
-		size_t size, enum dma_data_direction dir)
+void __swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_addr,
+		size_t size, enum dma_data_direction dir,
+		struct io_tlb_pool *pool)
 {
 	if (dir == DMA_TO_DEVICE || dir == DMA_BIDIRECTIONAL)
-		swiotlb_bounce(dev, tlb_addr, size, DMA_TO_DEVICE);
+		swiotlb_bounce(dev, tlb_addr, size, DMA_TO_DEVICE, pool);
 	else
 		BUG_ON(dir != DMA_FROM_DEVICE);
 }
 
-void swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_addr,
-		size_t size, enum dma_data_direction dir)
+void __swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_addr,
+		size_t size, enum dma_data_direction dir,
+		struct io_tlb_pool *pool)
 {
 	if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL)
-		swiotlb_bounce(dev, tlb_addr, size, DMA_FROM_DEVICE);
+		swiotlb_bounce(dev, tlb_addr, size, DMA_FROM_DEVICE, pool);
 	else
 		BUG_ON(dir != DMA_TO_DEVICE);
 }
@@ -1585,8 +1588,9 @@ dma_addr_t swiotlb_map(struct device *dev, phys_addr_t paddr, size_t size,
 	/* Ensure that the address returned is DMA'ble */
 	dma_addr = phys_to_dma_unencrypted(dev, swiotlb_addr);
 	if (unlikely(!dma_capable(dev, dma_addr, size, true))) {
-		swiotlb_tbl_unmap_single(dev, swiotlb_addr, size, dir,
-			attrs | DMA_ATTR_SKIP_CPU_SYNC);
+		__swiotlb_tbl_unmap_single(dev, swiotlb_addr, size, dir,
+			attrs | DMA_ATTR_SKIP_CPU_SYNC,
+			swiotlb_find_pool(dev, swiotlb_addr));
 		dev_WARN_ONCE(dev, 1,
 			"swiotlb addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
 			&dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
@@ -1774,11 +1778,13 @@ struct page *swiotlb_alloc(struct device *dev, size_t size)
 bool swiotlb_free(struct device *dev, struct page *page, size_t size)
 {
 	phys_addr_t tlb_addr = page_to_phys(page);
+	struct io_tlb_pool *pool;
 
-	if (!is_swiotlb_buffer(dev, tlb_addr))
+	pool = swiotlb_find_pool(dev, tlb_addr);
+	if (!pool)
 		return false;
 
-	swiotlb_release_slots(dev, tlb_addr);
+	swiotlb_release_slots(dev, tlb_addr, pool);
 
 	return true;
 }
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 08 19:57:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 19:57:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755598.1164013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQuUO-0004i7-3o; Mon, 08 Jul 2024 19:57:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755598.1164013; Mon, 08 Jul 2024 19: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 1sQuUO-0004i0-1C; Mon, 08 Jul 2024 19:57:32 +0000
Received: by outflank-mailman (input) for mailman id 755598;
 Mon, 08 Jul 2024 19:57: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=EgpN=OI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sQuUM-0004ZL-Lg
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 19:57:30 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4b491391-3d64-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 21:57:27 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 476D0CE0F08;
 Mon,  8 Jul 2024 19:57:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 90549C116B1;
 Mon,  8 Jul 2024 19:57: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: 4b491391-3d64-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720468640;
	bh=vk8qUoPKpAVrK7exPxJCI1y8r71oNkMKkVp76PWQMx0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=jV/AuaB9sTgRCAKIQsFGqYS9JR8M6uNgYI9Z2k8hB7gbmPG8dTSythUFXEkhvM1Qi
	 cNu/5dPe7B6cwh91IXo38J2f8dZtVoJWK3kOISRJyEg2Xv82ypXlKMZDHOSaKB44ow
	 OJR/pikdr2KmtheovIKJ+qjyYi5AnFTlNGZJ4QutdN46yDYebM2JjcaiR1XNap0Fea
	 QQuo1Op0xVLI5XraR1MBwPufYjqGRwC8qq8XJknKYDrLmdi88ZLLGb8ZvDhbuseut1
	 2cICXiWdzYAIh77GANBuikDo96rSTbljDdp/dm+vl3peKuKrRlClooMFAkUt2uHBRw
	 u5zoqJiVpN0Og==
Date: Mon, 8 Jul 2024 12:57:18 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Kelly Choi <kelly.choi@cloud.com>
cc: xen-devel <xen-devel@lists.xenproject.org>, 
    "xen-api@lists.xenproject.org" <xen-api@lists.xenproject.org>, 
    win-pv-devel@lists.xenproject.org, committers@xenproject.org, 
    minios-devel@lists.xenproject.org, mirageos-devel@lists.xenproject.org, 
    Roger Pau Monne <roger.pau@cloud.com>
Subject: Re: [Vote] Xen Project Code of Conduct Team Member
In-Reply-To: <CAO-mL=xEEdCjUWN3oqJEBjktH+dsJDXrQ2uHWD80bJJ32q3_pw@mail.gmail.com>
Message-ID: <alpine.DEB.2.22.394.2407081257020.3635@ubuntu-linux-20-04-desktop>
References: <CAO-mL=xEEdCjUWN3oqJEBjktH+dsJDXrQ2uHWD80bJJ32q3_pw@mail.gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1861991062-1720468640=:3635"

  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-1861991062-1720468640=:3635
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Mon, 8 Jul 2024, Kelly Choi wrote:
> Hi all, 
> As you are aware, George Dunlap has recently stepped down from the Xen Project as a committer, but he was also a part of the Code of
> Conduct team.
> 
> As a result, Stefano will be the only member remaining on the CoC team. @Roger Pau Monne has volunteered to join the team, so that there
> are at least two members.
> 
> In accordance with https://xenproject.org/developers/governance/, I need the leadership teams of the three mature projects: the Hypervisor,
> the XAPI project, and the Windows PV Driver project to vote on this proposal.
> 
> The specific voting rules, in this case, are outlined in the section: https://www.xenproject.org/governance.html#project-decisions
> I propose to tally the votes after July 31st, 2024. You can reply via email in public or private:
> +1: for proposal
> -1: against proposal

+1
--8323329-1861991062-1720468640=:3635--


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 20:48:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 20:48:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755621.1164022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQvHf-00038l-Oh; Mon, 08 Jul 2024 20:48:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755621.1164022; Mon, 08 Jul 2024 20: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 1sQvHf-00038e-ME; Mon, 08 Jul 2024 20:48:27 +0000
Received: by outflank-mailman (input) for mailman id 755621;
 Mon, 08 Jul 2024 20:48:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQvHe-00038U-Ld; Mon, 08 Jul 2024 20:48:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQvHe-0005tq-K0; Mon, 08 Jul 2024 20:48:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQvHe-0005f0-9x; Mon, 08 Jul 2024 20:48:26 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQvHe-0001nQ-9d; Mon, 08 Jul 2024 20:48:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=atsGqdVXhLUMJK3UYL4QIeEL4O/Nm1mctnWip4bRvNs=; b=NXuOC7UdPu3lS/IkwKjDq9clgK
	Y3bkwxBl4ikr/zf6026fhYijzXGkvjZVDkkvDe8DMTQxL3G7rrrNAljCYj74i5B0eP1UTmbz1z6Bx
	9A1/plrQy9ZIy5bhacgQFEKOsnJH272iGU+QINYpGvmMcKf6z0+ZBqQZIsCWF65KB5lM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186732-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186732: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c4ebeb79d10a25e8d48a71cdd381898265267e67
X-Osstest-Versions-That:
    xen=64cee188376e52a154475a86a9d2adc85f029870
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 08 Jul 2024 20:48:26 +0000

flight 186732 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186732/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c4ebeb79d10a25e8d48a71cdd381898265267e67
baseline version:
 xen                  64cee188376e52a154475a86a9d2adc85f029870

Last test of basis   186730  2024-07-08 15:02:14 Z    0 days
Testing same since   186732  2024-07-08 18:00:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   64cee18837..c4ebeb79d1  c4ebeb79d10a25e8d48a71cdd381898265267e67 -> smoke


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 21:21:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 21:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755629.1164033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQvnV-0007qn-8J; Mon, 08 Jul 2024 21:21:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755629.1164033; Mon, 08 Jul 2024 21: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 1sQvnV-0007qg-4l; Mon, 08 Jul 2024 21:21:21 +0000
Received: by outflank-mailman (input) for mailman id 755629;
 Mon, 08 Jul 2024 21:21:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uJ/s=OI=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1sQvnU-0007qa-0p
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 21:21:20 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 026fbee2-3d70-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 23:21:18 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 697A68287291;
 Mon,  8 Jul 2024 16:21:15 -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 Dg_taPyFb3Vm; Mon,  8 Jul 2024 16:21:09 -0500 (CDT)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id C95D0828714A;
 Mon,  8 Jul 2024 16:21: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 r9A20hLIWohC; Mon,  8 Jul 2024 16:21: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 66FCB8286B32;
 Mon,  8 Jul 2024 16:21:09 -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: 026fbee2-3d70-11ef-bbfb-fd08da9f4363
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com C95D0828714A
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1720473669; bh=r7q49DSuNl/UAjFL3ztd3akz3yYTJXQ75erudh7cW3k=;
	h=Message-ID:Date:MIME-Version:To:From;
	b=X9RkFbghc3w8udBalc+1IyzX1Hh5ViVXlTwJgVpLDb72gcME0djtkR0qeplZ/e9+W
	 CkAEWTi1ufzZqHbrzF0OtOtLkb98c5eVCaCDLhxAY6nJXhW17RPkpYZTOhxZnoxNnp
	 9pXkoCJD4Lcn6kcnOcHeBbO2gLTHn+iU37CrjTgE=
X-Virus-Scanned: amavisd-new at rptsys.com
Message-ID: <f3bad5a8-077e-40e7-abff-7a2cc0027d2b@raptorengineering.com>
Date: Mon, 8 Jul 2024 16:21:08 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] ppc/shutdown: Implement machine_{halt,restart}()
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
References: <20240705182311.1968790-1-andrew.cooper3@citrix.com>
 <20240705182311.1968790-3-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Shawn Anastasio <sanastasio@raptorengineering.com>
In-Reply-To: <20240705182311.1968790-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi Andrew,

Overall this looks good, I just have one comment.

On 7/5/24 1:23 PM, Andrew Cooper wrote:
> diff --git a/xen/arch/ppc/shutdown.c b/xen/arch/ppc/shutdown.c
> new file mode 100644
> index 000000000000..c4b00e57b13a
> --- /dev/null
> +++ b/xen/arch/ppc/shutdown.c
> @@ -0,0 +1,43 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +#include <xen/shutdown.h>
> +
> +#include <asm/opal-api.h>
> +
> +int64_t opal_cec_power_down(uint64_t request);
> +int64_t opal_cec_reboot(void);
> +int64_t opal_poll_events(uint64_t *outstanding_event_mask);
> +
> +void machine_halt(void)
> +{
> +    int rc;
> +

Before the opal_cec_{power_down,reboot} calls are made, any interupts
reserved for OPAL to handle need to be masked off.

Since we don't have any set up at this point, I would just add a TODO
comment like:

/* TODO: mask any OPAL IRQs before shutting down */

> +    do {
> +        rc = opal_cec_power_down(0);
> +
> +        if ( rc == OPAL_BUSY_EVENT )
> +            opal_poll_events(NULL);
> +
> +    } while ( rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT );
> +
> +    for ( ;; )
> +        opal_poll_events(NULL);
> +}
> +
> +void machine_restart(unsigned int delay_millisecs)
> +{
> +    int rc;
> +
> +    /* TODO: mdelay(delay_millisecs); */
> +

Ditto.

> +    do {
> +        rc = opal_cec_reboot();
> +
> +        if ( rc == OPAL_BUSY_EVENT )
> +            opal_poll_events(NULL);
> +
> +    } while ( rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT );
> +
> +    for ( ;; )
> +        opal_poll_events(NULL);
> +}
> +

Other than that, looks great.

Reviewed-by: Shawn Anastasio <sanastasio@raptorengineering.com>

Thanks,
Shawn


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 21:30:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 21:30:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755635.1164044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQvwV-00016B-55; Mon, 08 Jul 2024 21:30:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755635.1164044; Mon, 08 Jul 2024 21:30: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 1sQvwV-000164-0W; Mon, 08 Jul 2024 21:30:39 +0000
Received: by outflank-mailman (input) for mailman id 755635;
 Mon, 08 Jul 2024 21:30:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ulpZ=OI=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sQvwT-00015w-A0
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 21:30: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-sth1.inumbo.com (Halon) with ESMTPS
 id 4ea07c28-3d71-11ef-bbfb-fd08da9f4363;
 Mon, 08 Jul 2024 23:30:34 +0200 (CEST)
Received: from SJ0PR03CA0157.namprd03.prod.outlook.com (2603:10b6:a03:338::12)
 by CH3PR12MB7641.namprd12.prod.outlook.com (2603:10b6:610:150::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Mon, 8 Jul
 2024 21:30:30 +0000
Received: from SJ1PEPF0000231A.namprd03.prod.outlook.com
 (2603:10b6:a03:338:cafe::cb) by SJ0PR03CA0157.outlook.office365.com
 (2603:10b6:a03:338::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36 via Frontend
 Transport; Mon, 8 Jul 2024 21:30:29 +0000
Received: from SATLEXMB03.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.7762.17 via Frontend Transport; Mon, 8 Jul 2024 21:30:29 +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, 8 Jul
 2024 16:30:28 -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, 8 Jul
 2024 16:30:28 -0500
Received: from [172.27.0.207] (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, 8 Jul 2024 16:30: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: 4ea07c28-3d71-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fxE1mN278XrMHpVs9u9AqjohlK9DGGlguSMgrS5o1WlREsevBaDWuo46CUwj4uIo61WRTeP/9YAzooYIlpGiufFhZUcPeQCqqLz6udIQqW9+0F2uEzrJuzJOsAfQsoizW9Ll95bqWrfglwD8YRJ3aWwvhbzsJORd9CuFM8qKY7/AKdu+KbbNGSIFVgwdgzZqLWZDAizjvRMLkhNDyDTeIVGDq4GkspNzKrn+UNUEuX2rLnH+ShqQSAx3rghG/OA4WfNjtpz25jShW18C380lUDVD4rtRV/EYJXYbgTEWe5r8OadLuU1hqekMzmljOEGq+9P7yIka8HkGJlH6UzAJOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DnuIbgpYX5bIBH0nPabc2BT+WMN6OrxaG9dA6wsjb9Y=;
 b=Zj/5JLyrrvaWSap+84DphU+jxcnjwF1yJFX9T9fM272Sk4uvX/rzNN7JcZNZa/LZQ9PZToaERJwls4q96N66BEEodFf/0VtHMZJIKbrEdAy1Sp4kYG3QVuhV4B2OmgZv6UtoJXvA/cD4jzdA7rfdc2oDdLQ/OBel75axzijDrgm7HmR5LpUaDWecOHnDLryNEOLhUX62rXz8wG/m+qSytzKyANPH3R8mml5n9/xb/j24lnvkGNN0qblBEu+Aez0kdz8h6lrcxgfgirJhGa11HvdyWY1jvFYm5/QQLpAxyXuS3TEuJywUptjdQI0a+XFMNcR9bnbHyrcG+uYRaVfN+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DnuIbgpYX5bIBH0nPabc2BT+WMN6OrxaG9dA6wsjb9Y=;
 b=Vl1g8dqHmKeST4+wUHjRmJP8tISqxx+kTXJhwsnChS6qrLeggdzreuXR1JKNb3sblYIW1K+Bgl/vyQDMSuVUqoEcz5PNgibxHH8vL4bU7yZhNmqo12qCIcadwKkXGLqQL1bZlG60nPU4Gccz7meUOnkOPFJ9Xs67Ky33yJJXgSo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
Date: Mon, 8 Jul 2024 17:30:27 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
CC: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231A:EE_|CH3PR12MB7641:EE_
X-MS-Office365-Filtering-Correlation-Id: 55ea55e9-b6ac-4390-320b-08dc9f9530e7
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?V0MxbzFYVFYvdkdob1NUV2NlU0FnNEwyT3dBY25ZVm5JeXptN2pISHpXdkRt?=
 =?utf-8?B?Mk9SaUZ1UXk1cEJRT1M0SnB5Sk9zMms4QWtKR0YrTTh0LzNwRkRqR3JSVXN0?=
 =?utf-8?B?ajZaTnh3c2lwSC9QcUNoNGVSRm9CSG90V0pINEVWamViS2NWTjhCNnlzWG42?=
 =?utf-8?B?aFpZSnFsTmVhWEtQSElkazVhSTA5Y0ltNzJVRVB5MUJtT1Ftd0prYm9UU05T?=
 =?utf-8?B?R1BmZitaOEFUSjRPS3dTcU1ibXNjakRFYm01UndhbmVFbXRLVHJoTFVnUWNo?=
 =?utf-8?B?WmdxQ201WkNvczBwNE5PZGxnOExvemtFVEZ4Q3F4dVppUnh1eGZXK2pob2Ft?=
 =?utf-8?B?a1ZGcGtSaitnSlBYc0VYbXphTlVIbE0welFsYzN5ZVNpQi9uVUxGRE9HVWlm?=
 =?utf-8?B?L0FyL1RUdURaK3dtRHp6dVluUm9ZcWk4UTNkL0RZVHFRTzlBU25zV09KTHQv?=
 =?utf-8?B?WTAwVGNCSUo0d1ViZFhPZ2I2dzFxNWp4TEw3Mnl3QmIzWVNZbjhUbk9FSkp3?=
 =?utf-8?B?d1B5NlFnb2hIVGdIUEdnZnlIT0tqLzlsTFg2YkVmUEVIZzFlVWc1Yi9CWThY?=
 =?utf-8?B?TlNUeXpKdnZSSGlLeUhTdGtpRlRKWVlPb2lranp6Mjl0aXpyaWYxb25IUUdW?=
 =?utf-8?B?YlJ6akVyVnlHcjVMTUxFS04yUFhKR3RacDZkQWhlUU03RkhHbU41eGdneWVK?=
 =?utf-8?B?WmIwVTg3RXhuNFcvOFYreUc5VFNxUlJDNnRaMlZYQXdULzdmZTBaUGlROThV?=
 =?utf-8?B?VGsyMml4TzhtMU9yblcxWWJ3THhJSVNva3Rka1FUWlduUTVtVHpKMFFDNzM2?=
 =?utf-8?B?UkhTcXV5QnZGUUl0Sk1aYXFDcXZRM0tCQTExOE5zYjZYYVRGT21JSXpaQkFx?=
 =?utf-8?B?L0NlaWJHU0lLQnR2d21TK1ZDZVg2RFBjYVpvU0RYQTRZOVFUREVnQ09YOW1K?=
 =?utf-8?B?M01tQ0xYMU1uOXYwMERYVTg4MGUrODdyUGt4STdxYnc2MERDOVZQMEdmd1Ra?=
 =?utf-8?B?NXkrQkZXUGZLS3lTTWw1MGJSWnVPUXNwdDlrdVBYVVZZWXNCZFBBaEV0NjVM?=
 =?utf-8?B?RTNRd1pwZVNLOGhrcWsrRkE2dzZhZnl6am5BK2FnQmxJQ2NpSWZNT2Q2RGI1?=
 =?utf-8?B?OCtUQThXZTFzRGtkb3NmWUhxckNYRHU0dlQyU1ZFeEFWVWxSZERpVlRWaDdY?=
 =?utf-8?B?ZjdRZ2RvNW5rc3F6ekRSMnUyWDJTY2NIWVF0TUx6OXU4RXJUNzY5aUpwYTVK?=
 =?utf-8?B?Tm9hS3paYmp0VFgzd1V6a2dsWUJuZFJDdzBmWjBORm83eXVIZ1d4ZkcrVUJ2?=
 =?utf-8?B?YzVrU2YyOFJWKzhFcGJVU1ZpMDUreWNjKzVIUXNaZTNvY2UyMWhVRWNDdm8r?=
 =?utf-8?B?TCtsTC9GaDdqcFFuK1lrN1lMSUlQNUpoTkVwQnRXNzZ6SUt1d09UR0pPZlFN?=
 =?utf-8?B?ekptUHBCYVNFQUZ4QzkwZjVKKzhiNk1zN0pkYlR0a2VwbU11ejVPMWRVWEJQ?=
 =?utf-8?B?bDIybklLRDJoTEtvb3Y2V0JLelJpM2lhaWtUWHJDQ1ZSb1g4UkxGb1lHMGNj?=
 =?utf-8?B?SkJlRm1KbWNka0ZFdU5xOEdRMFRtTzJFUWpxL2RhdkhCNUY1K1l6YndpMHNE?=
 =?utf-8?B?QkJQQXltdjEwTC9ZUnVvbnlZQ01pamIvZW1wRGJscUhOaUlSSWY5eXdwWS9p?=
 =?utf-8?B?ZDBIZ3VGaFhuczVSVk5ROWZ3TS80U3BHNnB2S3FlZ3JQbHNFZ1NRVXRieldC?=
 =?utf-8?B?YmxldDR5dHJYa1I1Nmk5WW9xSTJvL0NXTU5TY0RwZWc0cGNrRC9LZ0NDL1pC?=
 =?utf-8?B?UFRsSHBIdjVHLzUxUjVYb24yS1RrWmVtKzhQcWc5ZnNiSWxlZG5CQk8xZzUz?=
 =?utf-8?B?KzZ3a2ZTZ0NKRXN4Nmpwd2J6Ym5rNjRZeVhWU0Y1TEtoVGZFM2ZacktDQjli?=
 =?utf-8?Q?ocMQWa4Opxz3BAch65rsOHuTej7ocDgb?=
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: 08 Jul 2024 21:30:29.7762
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 55ea55e9-b6ac-4390-320b-08dc9f9530e7
X-MS-Exchange-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:
	SJ1PEPF0000231A.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7641

On 2024-07-08 05:12, Jan Beulich wrote:
> On 08.07.2024 11:08, Roger Pau Monné wrote:
>> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
>>> On 08.07.2024 10:15, Jürgen Groß wrote:
>>>> I've got an internal report about failures in dom0 when booting with
>>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>>>
>>>> With some debugging I've found that the UCSI driver seems to fail to
>>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>>>> to being part of the MSI space. The mapping attempt seems to be the
>>>> result of an ACPI call of the UCSI driver:
>>>>
>>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>>>> [   44.575438]  __ioremap_caller+0x20d/0x350
>>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>> [   44.575559]  platform_probe+0x48/0x90
>>>> [   44.575567]  really_probe+0xde/0x340
>>>> [   44.575579]  __driver_probe_device+0x78/0x110
>>>> [   44.575581]  driver_probe_device+0x1f/0x90
>>>> [   44.575584]  __driver_attach+0xd2/0x1c0
>>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>>>> [   44.575590]  bus_add_driver+0x112/0x1f0
>>>> [   44.575593]  driver_register+0x72/0xd0
>>>> [   44.575600]  do_one_initcall+0x48/0x300
>>>> [   44.575607]  do_init_module+0x60/0x220
>>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>>>> [   44.575623]  do_syscall_64+0x82/0x170
>>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0
>>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
>>>>
>>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
>>>> the hypervisor with -EPERM.
>>>>
>>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
>>>> needs some update (IOW: could it be the mapping attempt should rather be
>>>> honored, as there might be an I/O resources at this position which dom0 needs
>>>> to access for using the related hardware?)
>>>
>>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
>>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
>>> space being accessed by certain incarnations of ACPI, resulting in similar
>>> issues)?
>>
>> So you think ACPI is using some kind of backdoor to access the local
>> APIC registers?
> 
> No, I'm wondering if they're trying to access *something*. As it stands we
> don't even know what kind of access is intended; all we know is that they're
> trying to map that page (and maybe adjacent ones).

 From the backtrace, it looks like the immediate case is just trying to 
read a 4-byte version:

 >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
 >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
 >>>> [   44.575550]  ucsi_register+0x24/0xa0
 >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3

int ucsi_register(struct ucsi *ucsi)
{
         int ret;

         ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
                               sizeof(ucsi->version));

->read being ucsi_acpi_read()

However, the driver also appears write to adjacent addresses.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 22:40:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 22:40:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755641.1164053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQx2D-00012a-Ol; Mon, 08 Jul 2024 22:40:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755641.1164053; Mon, 08 Jul 2024 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 1sQx2D-00012T-M6; Mon, 08 Jul 2024 22:40:37 +0000
Received: by outflank-mailman (input) for mailman id 755641;
 Mon, 08 Jul 2024 22: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=EgpN=OI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sQx2C-00012N-Ve
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 22:40:37 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 167d659d-3d7b-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 00:40: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 5EE26611D9;
 Mon,  8 Jul 2024 22:40:33 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07AD9C4AF0B;
 Mon,  8 Jul 2024 22:40: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: 167d659d-3d7b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720478433;
	bh=4ls6Hf63iWX5WfFe6DkUcMHrn5wRaVTX9QAYAS/BBlk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=aES30YoX30ntTKIIzwmvLtPV3c13dJjt+p9+U+uWlqP5Pl81llgeJywYSDnlvUBWI
	 vk1bZSkvW0cmxEKHj6S8wVc+U9YjWWDCBoDS4KaOaMEqVQ2jRqfmdRUqTpjkpp/aUN
	 CvsGdfQewshpJs/ZHfwcvGGKN8FpchhxjGil6UuLAxmZrARJqCfQ4RezkIQqUP85M5
	 +rmy4BxTe4/2+JlUijTv3GA+zPj5F2IpnLxmHL/wimIfTCMUKhyBYxRk6bhPpcd/v6
	 P9SZrutKY57xblO2CAfNK2T3TWC1rATyLlb2JDTIRcIlH0wq5Bp8RtZTkDD+OgHVya
	 qke2I6jzTjVZg==
Date: Mon, 8 Jul 2024 15:40:30 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Peng Fan <peng.fan@nxp.com>
cc: "stefano.stabellini@amd.com" <stefano.stabellini@amd.com>, 
    Viresh Kumar <viresh.kumar@linaro.org>, Julien Grall <julien@xen.org>, 
    "oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, edgar.iglesias@amd.com, 
    sstabellini@kernel.org
Subject: Re: Question: xen + vhost user
In-Reply-To: <AM6PR04MB59412237BA10A23EB79D5C0E88D22@AM6PR04MB5941.eurprd04.prod.outlook.com>
Message-ID: <alpine.DEB.2.22.394.2407081539380.3635@ubuntu-linux-20-04-desktop>
References: <AM6PR04MB59412237BA10A23EB79D5C0E88D22@AM6PR04MB5941.eurprd04.prod.outlook.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

+Edgar

I don't think we are using vhost-user so I am unable to help, but adding
Edgar just in case

On Sun, 30 Jun 2024, Peng Fan wrote:
> Hi All,
> 
> I am trying to enable vhost user input with xen hypervisor on i.MX95, using qemu
> vhost-user-input. But meet " Invalid vring_addr message ". My xen domu cfg:
> 
> '-chardev', 'socket,path=/tmp/input.sock,id=mouse0',
> '-device', 'vhost-user-input-pci,chardev=mouse0',
> 
> Anyone knows what missing?
> 
> Partial error log:
> ================ Vhost user message ================
> Request: VHOST_USER_SET_VRING_ADDR (9)
> Flags:   0x1
> Size:    40
> vhost_vring_addr:
>     index:  0
>     flags:  0
>     desc_user_addr:   0x0000ffff889b0000
>     used_user_addr:   0x0000ffff889b04c0
>     avail_user_addr:  0x0000ffff889b0400
>     log_guest_addr:   0x00000000444714c0
> Setting virtq addresses:
>     vring_desc  at (nil)
>     vring_used  at (nil)
>     vring_avail at (nil)
> 
> ** (vhost-user-input:1816): CRITICAL **: 07:20:46.077: Invalid vring_addr message
> 
> Thanks,
> Peng.
> 
> The full vhost user debug log:
> ./vhost-user-input --socket-path=/tmp/input.sock --evdev-path=/d
> -path=/dev/input/event1 ./vhost-user-input --socket-path=/tmp/input.sock --evdev-
> ================ Vhost user message ================
> Request: VHOST_USER_GET_FEATURES (1)
> Flags:   0x1
> Size:    0
> Sending back to guest u64: 0x0000000175000000
> ================ Vhost user message ================
> Request: VHOST_USER_GET_PROTOCOL_FEATURES (15)
> Flags:   0x1
> Size:    0
> ================ Vhost user message ================
> Request: VHOST_USER_SET_PROTOCOL_FEATURES (16)
> Flags:   0x1
> Size:    8
> u64: 0x0000000000008e2b
> ================ Vhost user message ================
> Request: VHOST_USER_GET_QUEUE_NUM (17)
> Flags:   0x1
> Size:    0
> ================ Vhost user message ================
> Request: VHOST_USER_GET_MAX_MEM_SLOTS (36)
> Flags:   0x1
> Size:    0
> u64: 0x0000000000000020
> ================ Vhost user message ================
> Request: VHOST_USER_SET_BACKEND_REQ_FD (21)
> Flags:   0x9
> Size:    0
> Fds: 6
> Got backend_fd: 6
> ================ Vhost user message ================
> Request: VHOST_USER_SET_OWNER (3)
> Flags:   0x1
> Size:    0
> ================ Vhost user message ================
> Request: VHOST_USER_GET_FEATURES (1)
> Flags:   0x1
> Size:    0
> Sending back to guest u64: 0x0000000175000000
> ================ Vhost user message ================
> Request: VHOST_USER_SET_VRING_CALL (13)
> Flags:   0x1
> Size:    8
> Fds: 7
> u64: 0x0000000000000000
> Got call_fd: 7 for vq: 0
> ================ Vhost user message ================
> Request: VHOST_USER_SET_VRING_ERR (14)
> Flags:   0x1
> Size:    8
> Fds: 8
> u64: 0x0000000000000000
> ================ Vhost user message ================
> Request: VHOST_USER_SET_VRING_CALL (13)
> Flags:   0x1
> Size:    8
> Fds: 9
> u64: 0x0000000000000001
> Got call_fd: 9 for vq: 1
> ================ Vhost user message ================
> Request: VHOST_USER_SET_VRING_ERR (14)
> Flags:   0x1
> Size:    8
> Fds: 10
> u64: 0x0000000000000001
> (XEN) d2v0 Unhandled SMC/HVC: 0x84000050
> (XEN) d2v0 Unhandled SMC/HVC: 0x8600ff01
> (XEN) d2v0: vGICD: RAZ on reserved register offset 0x00000c
> (XEN) d2v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER4
> (XEN) d2v0: vGICR: SGI: unhandled word write 0x000000ffffffff to ICACTIVER0
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_CONFIG (25)
> Flags:   0x9
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_GET_CONFIG (24)
> Flags:   0x1
> Size:    148
> ================ Vhost user message ================
> Request: VHOST_USER_SET_FEATURES (2)
> Flags:   0x1
> Size:    8
> u64: 0x0000010170000000
> ================ Vhost user message ================
> Request: VHOST_USER_SET_VRING_NUM (8)
> Flags:   0x1
> Size:    8
> State.index: 0
> State.num:   64
> ================ Vhost user message ================
> Request: VHOST_USER_SET_VRING_BASE (10)
> Flags:   0x1
> Size:    8
> State.index: 0
> State.num:   0
> ================ Vhost user message ================
> Request: VHOST_USER_SET_VRING_ADDR (9)
> Flags:   0x1
> Size:    40
> vhost_vring_addr:
>     index:  0
>     flags:  0
>     desc_user_addr:   0x0000ffff889b0000
>     used_user_addr:   0x0000ffff889b04c0
>     avail_user_addr:  0x0000ffff889b0400
>     log_guest_addr:   0x00000000444714c0
> Setting virtq addresses:
>     vring_desc  at (nil)
>     vring_used  at (nil)
>     vring_avail at (nil)
> 
> ** (vhost-user-input:1816): CRITICAL **: 07:20:46.077: Invalid vring_addr message
> 
> root@imx95evk:~#
> 


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 23:14:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 23:14:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755649.1164063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQxZ5-00056K-E9; Mon, 08 Jul 2024 23:14:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755649.1164063; Mon, 08 Jul 2024 23:14: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 1sQxZ5-00056D-AN; Mon, 08 Jul 2024 23:14:35 +0000
Received: by outflank-mailman (input) for mailman id 755649;
 Mon, 08 Jul 2024 23:14: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=EgpN=OI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sQxZ4-000567-Lw
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 23:14:34 +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 d4c2b747-3d7f-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 01:14:32 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id C3660611EB;
 Mon,  8 Jul 2024 23:14:30 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1558CC116B1;
 Mon,  8 Jul 2024 23:14: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: d4c2b747-3d7f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720480470;
	bh=0QHGRQ292hmDIAtRoV8vjuJiWMGOE6ygT3BwAK0/NNw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=X2rzQeP5qrwQXsPvKE631Ejpm08ZcSe11JzFqc0OAIyn5BpFRhVA19w8f6OlLXMTd
	 OT5JC8klstKIAc0ifkygPVwC1L9CZtKEi1W5hgDLs5OD5HB3voA9rImTkiOYHqb/tS
	 j1YkQQkkJGx+QFIGxSZmB2Ll9EW9LyzDknqHnXVuK4d8dVMfK/TyIuG2p2FPA7ql9n
	 e7rou1/9GJjbMoXUVOfxlQmVoUKXlo+UMG3FILlZEpqSgP8Vmm2bZJvub+wKQW8UQ1
	 clNPDEz2sc15R5u5vPVpiTL/xZTz9Q//njRXXrcnEfC130QylZVIG/ggDBfIkmx5XD
	 KgZHpTI0anrFQ==
Date: Mon, 8 Jul 2024 16:14:27 -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, sstabellini@kernel.org, anthony@xenproject.org, 
    paul@xen.org, edgar.iglesias@amd.com, xen-devel@lists.xenproject.org, 
    Paolo Bonzini <pbonzini@redhat.com>, Peter Xu <peterx@redhat.com>, 
    David Hildenbrand <david@redhat.com>, 
    =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: Re: [PATCH v1 1/2] physmem: Bail out qemu_ram_block_from_host() for
 invalid ram addrs
In-Reply-To: <20240701224421.1432654-2-edgar.iglesias@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2407081614210.3635@ubuntu-linux-20-04-desktop>
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com> <20240701224421.1432654-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 Tue, 2 Jul 2024, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> Bail out in qemu_ram_block_from_host() when
> xen_ram_addr_from_mapcache() does not find an existing
> mapping.
> 
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>

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


> ---
>  system/physmem.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/system/physmem.c b/system/physmem.c
> index 33d09f7571..59d1576c2b 100644
> --- a/system/physmem.c
> +++ b/system/physmem.c
> @@ -2277,6 +2277,10 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,
>          ram_addr_t ram_addr;
>          RCU_READ_LOCK_GUARD();
>          ram_addr = xen_ram_addr_from_mapcache(ptr);
> +        if (ram_addr == RAM_ADDR_INVALID) {
> +            return NULL;
> +        }
> +
>          block = qemu_get_ram_block(ram_addr);
>          if (block) {
>              *offset = ram_addr - block->offset;
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Mon Jul 08 23:16:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 08 Jul 2024 23:16:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755654.1164072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQxad-0005bd-Mp; Mon, 08 Jul 2024 23:16:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755654.1164072; Mon, 08 Jul 2024 23:16: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 1sQxad-0005bW-KJ; Mon, 08 Jul 2024 23:16:11 +0000
Received: by outflank-mailman (input) for mailman id 755654;
 Mon, 08 Jul 2024 23:16: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=EgpN=OI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sQxac-0005bJ-16
 for xen-devel@lists.xenproject.org; Mon, 08 Jul 2024 23:16:10 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0e8a5fb2-3d80-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 01:16:08 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id BCC3B60B21;
 Mon,  8 Jul 2024 23:16:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B49BC116B1;
 Mon,  8 Jul 2024 23:16: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: 0e8a5fb2-3d80-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720480567;
	bh=7GbhKYDsPcu4phzCxhMkluoCv88SVKjt2IIeSl0eL1k=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fuhRzxhtTlYg6/uMZ0zBVf8q2tH+55oFRpsD4wePGRGAwDbqRAIKrNKElayxuVPIg
	 trGxzlKBdczBoiiHzGduvNlsjuyBIRF+OxfLxKEhDOQI1yt4enBJcMHIXWdczlseJj
	 Q2I7/SmEBxzMXeUxtRV7xulu/IuCoGDF5mJwhNI3drTL7E711tON5swKQ7iKXck1el
	 im4YQaOwcwav3Wl6Vp15p3HO7Psl1zdXLST8+NiEyEOFoToaXAtvpjdogGQJEaxTvA
	 Q7TUKpb239tEzFQGYswTu1UQhCKR6gPlL/oIL+CjTUPbS1YsXIXLJXgpGqCAECGE/3
	 jA46/mW3IiKBA==
Date: Mon, 8 Jul 2024 16:16:05 -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, sstabellini@kernel.org, anthony@xenproject.org, 
    paul@xen.org, edgar.iglesias@amd.com, xen-devel@lists.xenproject.org, 
    Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v1 2/2] xen: mapcache: Fix unmapping of first entries in
 buckets
In-Reply-To: <20240701224421.1432654-3-edgar.iglesias@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2407081615590.3635@ubuntu-linux-20-04-desktop>
References: <20240701224421.1432654-1-edgar.iglesias@gmail.com> <20240701224421.1432654-3-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 Tue, 2 Jul 2024, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> This fixes the clobbering of the entry->next pointer when
> unmapping the first entry in a bucket of a mapcache.
> 
> Fixes: 123acd816d ("xen: mapcache: Unmap first entries in buckets")
> Reported-by: Anthony PERARD <anthony.perard@vates.tech>
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>

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


> ---
>  hw/xen/xen-mapcache.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> index 5f23b0adbe..18ba7b1d8f 100644
> --- a/hw/xen/xen-mapcache.c
> +++ b/hw/xen/xen-mapcache.c
> @@ -597,7 +597,17 @@ static void xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
>          pentry->next = entry->next;
>          g_free(entry);
>      } else {
> -        memset(entry, 0, sizeof *entry);
> +        /*
> +         * Invalidate mapping but keep entry->next pointing to the rest
> +         * of the list.
> +         *
> +         * Note that lock is already zero here, otherwise we don't unmap.
> +         */
> +        entry->paddr_index = 0;
> +        entry->vaddr_base = NULL;
> +        entry->valid_mapping = NULL;
> +        entry->flags = 0;
> +        entry->size = 0;
>      }
>  }
>  
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 01:22:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 01:22:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755667.1164083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQzYD-0007lc-DS; Tue, 09 Jul 2024 01:21:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755667.1164083; Tue, 09 Jul 2024 01: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 1sQzYD-0007lV-9I; Tue, 09 Jul 2024 01:21:49 +0000
Received: by outflank-mailman (input) for mailman id 755667;
 Tue, 09 Jul 2024 01:21: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=JHb5=OJ=nxp.com=peng.fan@srs-se1.protection.inumbo.net>)
 id 1sQzYB-0007lP-4Q
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 01:21:47 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100000.outbound.protection.outlook.com
 [2a01:111:f403:c201::])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a384b7c-3d91-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 03:21:44 +0200 (CEST)
Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15)
 by PA4PR04MB7520.eurprd04.prod.outlook.com (2603:10a6:102:e9::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.37; Tue, 9 Jul
 2024 01:21:42 +0000
Received: from PAXPR04MB8459.eurprd04.prod.outlook.com
 ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com
 ([fe80::165a:30a2:5835:9630%4]) with mapi id 15.20.7741.033; Tue, 9 Jul 2024
 01:21:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a384b7c-3d91-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WLT0BW7XGaqXtLdHDkflZIIpX9DaeLKFMzaDq0O9sPKJJ77934ghcHuxLX+4hz/oR/hWtSI/ZmawSYkU5JuDLMTUyS0kcJCcl95Dz6Xs3sxAdyg6ZLC3QIEmkuFXzhXRfupfCtDH2pzZH2SmO8x67zeovZivNxzdvnIU5V/NxSDhdBAalCkpw14vU0ilhxUNyyM9ArYrQoIv+j9gmIH/ZrULSUFppkMP5+Hldx4SySyPdRDrm6yjbtyeV8G3unN7x/jwjaf+39o6labVKTIQhlLCw4neRJpevfAlBFO8amAO+PDYi10HbGmE8l5Gur5XH8YGannaP1tQ3xbfr05lRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nWr9XteO27XMjnyfHA40GDDpIWSwS3KfNRNQe1auBKA=;
 b=UtOnf2Z89dST1Jq1YjIFOwIe1lppdZFsoiDC+1i4nHtncjjfOytP4UTrX1YE09ikJctzsYdI9/Pucf5nbdcIwTFJqK6Ly0obt5NKsLe07v5dCaPw2rPZ0POg05Vv3Tt6H85KLi6JFUt67twMm5628f8lqqZkDp4rDN2Wc/4sVvIzbBEw4bKtomu31RKtZwoJ1l5f2qFLV5V8+SIonoxyMo9kL9JLg6XpGe7y2m06OrIf/xUU+D3yKjOHAURyqguQoe2q1g48ebxy+b161ifLZmCqNhA1VlX1i8Ia4r3+fuxXVmKSiWm851vyiI3iLkdXceMWgonkoN0J9mlAqTzvxg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass
 header.d=nxp.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nWr9XteO27XMjnyfHA40GDDpIWSwS3KfNRNQe1auBKA=;
 b=DaK85QcoUqQxPzfUjKgakn745EgG5nHTOn8SISI6ATekRQK0SpuFVSFyQPD3tYoJEDDI+D64/aSP9YTFkLVpww5g7i6fVmHmQWtcPCn1qOpUrFMDt6v2qBoIFTvMhgrIL/u1Q01ElQqMrtSXKG5PH4LKa0KKvwY/U6Wcjc9M4Vc=
From: Peng Fan <peng.fan@nxp.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "stefano.stabellini@amd.com" <stefano.stabellini@amd.com>, Viresh Kumar
	<viresh.kumar@linaro.org>, Julien Grall <julien@xen.org>,
	"oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, "edgar.iglesias@amd.com"
	<edgar.iglesias@amd.com>
Subject: RE: Question: xen + vhost user
Thread-Topic: Question: xen + vhost user
Thread-Index: AdrK7E1vVcASzE7XRqm0wkYJXBBDZgGm4hwAAAWbpxA=
Date: Tue, 9 Jul 2024 01:21:41 +0000
Message-ID:
 <PAXPR04MB84590D6686BEA38D07E5700388DB2@PAXPR04MB8459.eurprd04.prod.outlook.com>
References:
 <AM6PR04MB59412237BA10A23EB79D5C0E88D22@AM6PR04MB5941.eurprd04.prod.outlook.com>
 <alpine.DEB.2.22.394.2407081539380.3635@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2407081539380.3635@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=nxp.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAXPR04MB8459:EE_|PA4PR04MB7520:EE_
x-ms-office365-filtering-correlation-id: 15ee2e2a-b06d-48a0-2e7b-08dc9fb57d2f
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:
 =?us-ascii?Q?lBz5IIirD/sVD9keMwy90ycf1oz5SELKDaA0p3r/7oRyqN5LEmLbJxrVYLjp?=
 =?us-ascii?Q?INWi2LAT+azWfqu6fJSEHjFdUCiVwOB2SznooNtKB6xbuP9HPs9SU6dGiDdr?=
 =?us-ascii?Q?vmFuB/7S3KUeewo5Ub/7bc0riudkGQpuS7Cxyx4BIb2FtjfEOSlrXgwSwcIm?=
 =?us-ascii?Q?56sP2uywKfeaO86WeKUHhTjqApihoDxHpb3tkvqK4q67wvuMoO1ZoxxNbb0w?=
 =?us-ascii?Q?WGi8ih2RwmCLjjIw4e4jnLmwnVJ5rg6bh5+Q3brT4uusBKY4TCX0vp4B+lsQ?=
 =?us-ascii?Q?5ygeUHWGeMc40xeh0iadwW/TRbo2M936TWp3p9tRXcs6Y0g9P6pm2HvHJuW0?=
 =?us-ascii?Q?2eM6xpmhm77EPcUGGlx896BPoDVzBw03Yoh0ee6UHzGSqYTvusCR82ajAp6a?=
 =?us-ascii?Q?T8T65Ccr/fGqct2UPMayTDAUFMCZolMYUztlqTNdSYOVbWp6oQTANPsXwUqc?=
 =?us-ascii?Q?MY5dI3tezIlpL7aE9BiH+fOVKX3et0ZR4j6HG0rRzeawQdh/MzQi1ZpsCce0?=
 =?us-ascii?Q?iLSW/DK4BOA/AbGJ7uW3TYpOFJ5X6AYV7XWrwd8rqASh1Fm3n3/c74pF86k+?=
 =?us-ascii?Q?OBS1e1ZYk9jk3RlR0WTzwjODzHMVQrYEk36sycNgDJ+adx7asYTwTq2ATYkq?=
 =?us-ascii?Q?go/CIxwX/3l3zaNzUGjb1YoUPPquRDuVJmW25etuVhf/uT92NJE46F0CexzD?=
 =?us-ascii?Q?lBOsShc2xI6IIw0VyjCVOig4fJng9WqMF0JaxfOn6KhbLqoI3A8HP6fGg0EQ?=
 =?us-ascii?Q?ZhUbgzsA/Al4fICfhkXB3g5yqcoV2IvTbVjyfVI2AEPP8G2zA45nhVBkBppy?=
 =?us-ascii?Q?em0Z0tjmfeDUhyHg8/1rT/EtsdN/wG10pMMc0l6Oy031/JVhBjfGtNl5oYmg?=
 =?us-ascii?Q?rqIVKWnlUrYcj8Wc6pmu8Mr4v5SHBvadfJyaMIYixQTGCWP1EqB8KlDJ45g3?=
 =?us-ascii?Q?d88lNjrU/W8/wuCUa0eWEhPUyVSgjFLKPPfptvgxVmqRE0HNqpUlvUeMyNb0?=
 =?us-ascii?Q?yGUb9PrUIJ2SU7onnQ0McEAqArNkvubAX+4ohrHzpRGx8vmv7IZzNUr32hy2?=
 =?us-ascii?Q?WCzQxyCFco2OzUM0OexkTZ4Df68guv9KOyqVH9FpMOsYIV7M4CGgabW3XDxB?=
 =?us-ascii?Q?HBE+b8pm+gkmE9EmpDtnls5BckEvDzLmyetYKNvKY/VjkgAffR7UXANCnOSy?=
 =?us-ascii?Q?FkEJKC81gOoUcvqXCF8XFQc3IMLAGkMSDOqJw7y1pOntCAFAeF+/zN9mJXPJ?=
 =?us-ascii?Q?nGMpSSVd6sg8qDw3+PChAj/e8J1kxfixV/MDkq7dCwLrksbV2y2q1adIq6FI?=
 =?us-ascii?Q?Zn7mIZnN3gtR5kgU244qjWANwGq8KAoDAaUtFZ5dZ11KW/kW2H3UceLI6ax9?=
 =?us-ascii?Q?VTlwar08KX+ASePT0RkKBwP7vAaXNh2pv7AZfjedaG2/R1V3eQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.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:
 =?us-ascii?Q?wgbDiZCr1u17co8PiAsMJq7qpZxC8YVICHzdX67o5PyOTeu5H17qr4i0MFF4?=
 =?us-ascii?Q?KuQVfvzPT/KCR8xH2f/L/WJgQHygaXw19OtSvf9uGRNE5x9huAtew57msINA?=
 =?us-ascii?Q?GnpAY578joYNTNeGsxlE/x6Rso0MRwItw9s1JR0JAR4tQw7SuZVcLeiOAUIs?=
 =?us-ascii?Q?P4rV9KIe9xTd2keboUPBLtDMlXHbemWFc4lF89+x/uHgcdOKDuEAmedkCKy9?=
 =?us-ascii?Q?ncTj11RBnBfT47IpR9hLIvwXs9tZAoEL58rnD+8X07W1oKJeVEMQhsg3RRaO?=
 =?us-ascii?Q?6psG1AUArHZVKg2KyDzZzeJ4mvguPOSdFaSNLIHMfAXzyCxrp2lXlRJ/5z07?=
 =?us-ascii?Q?isJOjXoc6MxpWvYPTKC25ygX/MJci0dzOKQfDAn2Pzdpja4eQzy1ttBxtt1Q?=
 =?us-ascii?Q?8e7L1w/AMyP0kzcc/Y8Kb3gu33UjtJOpN7XHhzSjwt1OzkGz0u86vox5ZH1b?=
 =?us-ascii?Q?EyBah5qwegubmKRdsU22/wPaVe0mduSYLU3EQ8Aqyk/Ag35+bNinRW+vFeja?=
 =?us-ascii?Q?LXg9L5kh88w5HD0Ja9DL/GKgQmeN2DOk+Jo9nC4EK6atdlADpsiPHNe//Z6K?=
 =?us-ascii?Q?dEcRwbRoAlYECmwMnT5wO4wUsrmV8UqmEmd1RcWgBTMH/bXlsDXeEQPdpi1i?=
 =?us-ascii?Q?hLhzAzBAfE4SfTvVNKwBJHdES85/JD8FZaphymyld0s6ed+HS+WXrW+xYRuX?=
 =?us-ascii?Q?sBVsxTDDKi7IDFSTZatK19IsJ7AfK4lTzn1HitZBcyrHtkDy2o1s3GEcOplP?=
 =?us-ascii?Q?VspjHweCzmnnDkqsNILtNHWLiavos1Oid/sD60movhUJ8hvg9yWHmiCWzMQZ?=
 =?us-ascii?Q?AoF/xWepWZWZSaXTsuMJ6yJkGmONIbzaMjO7UQwBdZvnpWjIsYJHZxadzM5y?=
 =?us-ascii?Q?VsMmjRPgCS/4YvFF/7aWllIvB/dy1vZdTJIcb/WlaQcVYofrx2jciI+wxLd7?=
 =?us-ascii?Q?FqFxWo6hecLN3BPWh5m1Bh250gazKDjcye2ueRLIosQbYQh4VanoGrPhFjcp?=
 =?us-ascii?Q?bs5pIpczkbLXLSPUSpgH8vkTXYRtQ2jkUQbfBQLL6Psi1EKpYttEp+JNGdUH?=
 =?us-ascii?Q?OGcb5F9lym4P6oI+KwPArFCXEM5JAZMSQwv+Mj/epoPVUpWporfjUXPMtwdH?=
 =?us-ascii?Q?5QGG6QMrPOZtzdaIlbZbIpd1KtvIvv5K1F/2Fht+R3K0R88RDfzEHJdyGDB3?=
 =?us-ascii?Q?xcu+e/rJ878/l7CdXc0dXccc+Q81JPRIbn6lTGWUQ/ReR7O68CeFYTs9rB8Z?=
 =?us-ascii?Q?amPZXFtBW1yTt9VH3B9i0vBSUeCLrLZapoBcAb23uOAjQHHGbhD00d/TQKCS?=
 =?us-ascii?Q?kDObn9KoE1FAHvjLYKgKti7se/a1Ir2epOaqB6GcO6QV8q9ngmosULMfcVXF?=
 =?us-ascii?Q?yVFAuR42lU4ZssogspjL1QtRlOMsA4F29RcE4n3iuw4A8gc2BNuCKM0QW91H?=
 =?us-ascii?Q?Vz+3R5PbqxPbMIS7+rY3mkafqMpEPaJrbaiQ5pvVQeGS90TVYYllmlFTSl8B?=
 =?us-ascii?Q?hAs0nqjoodkyc7g5m8JimPzB6WF6n2mGxphy5Rual2uDL7RSpn48xTC0z/cG?=
 =?us-ascii?Q?wFJ+Z/O3ZL73bs7ABEE=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: nxp.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 15ee2e2a-b06d-48a0-2e7b-08dc9fb57d2f
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jul 2024 01:21:41.7783
 (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: 2/mmN+jFk4Gm0OoKZX3da/Y98bq/PH9kveMTMUs1Po5D42v25+P4+Me97w7XokYhm8943/bzsYdgxHWX+bxvmg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7520

> Subject: Re: Question: xen + vhost user
>=20
> +Edgar
>=20
> I don't think we are using vhost-user so I am unable to help, but adding
> Edgar just in case

Thanks, just an update, it works after some code changes to Qemu.

Thanks,
Peng.

>=20
> On Sun, 30 Jun 2024, Peng Fan wrote:
> > Hi All,
> >
> > I am trying to enable vhost user input with xen hypervisor on i.MX95,
> > using qemu vhost-user-input. But meet " Invalid vring_addr message
> ". My xen domu cfg:
> >
> > '-chardev', 'socket,path=3D/tmp/input.sock,id=3Dmouse0',
> > '-device', 'vhost-user-input-pci,chardev=3Dmouse0',
> >
> > Anyone knows what missing?
> >
> > Partial error log:
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_VRING_ADDR (9)
> > Flags:   0x1
> > Size:    40
> > vhost_vring_addr:
> >     index:  0
> >     flags:  0
> >     desc_user_addr:   0x0000ffff889b0000
> >     used_user_addr:   0x0000ffff889b04c0
> >     avail_user_addr:  0x0000ffff889b0400
> >     log_guest_addr:   0x00000000444714c0
> > Setting virtq addresses:
> >     vring_desc  at (nil)
> >     vring_used  at (nil)
> >     vring_avail at (nil)
> >
> > ** (vhost-user-input:1816): CRITICAL **: 07:20:46.077: Invalid
> > vring_addr message
> >
> > Thanks,
> > Peng.
> >
> > The full vhost user debug log:
> > ./vhost-user-input --socket-path=3D/tmp/input.sock --evdev-path=3D/d
> > -path=3D/dev/input/event1 ./vhost-user-input
> > --socket-path=3D/tmp/input.sock --evdev- =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D Vhost
> user
> > message =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_FEATURES (1)
> > Flags:   0x1
> > Size:    0
> > Sending back to guest u64: 0x0000000175000000
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost
> > user message =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_PROTOCOL_FEATURES (15)
> > Flags:   0x1
> > Size:    0
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_PROTOCOL_FEATURES (16)
> > Flags:   0x1
> > Size:    8
> > u64: 0x0000000000008e2b
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_QUEUE_NUM (17)
> > Flags:   0x1
> > Size:    0
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_MAX_MEM_SLOTS (36)
> > Flags:   0x1
> > Size:    0
> > u64: 0x0000000000000020
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_BACKEND_REQ_FD (21)
> > Flags:   0x9
> > Size:    0
> > Fds: 6
> > Got backend_fd: 6
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_OWNER (3)
> > Flags:   0x1
> > Size:    0
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_FEATURES (1)
> > Flags:   0x1
> > Size:    0
> > Sending back to guest u64: 0x0000000175000000
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost
> > user message =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_VRING_CALL (13)
> > Flags:   0x1
> > Size:    8
> > Fds: 7
> > u64: 0x0000000000000000
> > Got call_fd: 7 for vq: 0
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_VRING_ERR (14)
> > Flags:   0x1
> > Size:    8
> > Fds: 8
> > u64: 0x0000000000000000
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_VRING_CALL (13)
> > Flags:   0x1
> > Size:    8
> > Fds: 9
> > u64: 0x0000000000000001
> > Got call_fd: 9 for vq: 1
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_VRING_ERR (14)
> > Flags:   0x1
> > Size:    8
> > Fds: 10
> > u64: 0x0000000000000001
> > (XEN) d2v0 Unhandled SMC/HVC: 0x84000050
> > (XEN) d2v0 Unhandled SMC/HVC: 0x8600ff01
> > (XEN) d2v0: vGICD: RAZ on reserved register offset 0x00000c
> > (XEN) d2v0: vGICD: unhandled word write 0x000000ffffffff to
> ICACTIVER4
> > (XEN) d2v0: vGICR: SGI: unhandled word write 0x000000ffffffff to
> > ICACTIVER0 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user =
message
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_CONFIG (25)
> > Flags:   0x9
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_GET_CONFIG (24)
> > Flags:   0x1
> > Size:    148
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_FEATURES (2)
> > Flags:   0x1
> > Size:    8
> > u64: 0x0000010170000000
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_VRING_NUM (8)
> > Flags:   0x1
> > Size:    8
> > State.index: 0
> > State.num:   64
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_VRING_BASE (10)
> > Flags:   0x1
> > Size:    8
> > State.index: 0
> > State.num:   0
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Vhost user message =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > Request: VHOST_USER_SET_VRING_ADDR (9)
> > Flags:   0x1
> > Size:    40
> > vhost_vring_addr:
> >     index:  0
> >     flags:  0
> >     desc_user_addr:   0x0000ffff889b0000
> >     used_user_addr:   0x0000ffff889b04c0
> >     avail_user_addr:  0x0000ffff889b0400
> >     log_guest_addr:   0x00000000444714c0
> > Setting virtq addresses:
> >     vring_desc  at (nil)
> >     vring_used  at (nil)
> >     vring_avail at (nil)
> >
> > ** (vhost-user-input:1816): CRITICAL **: 07:20:46.077: Invalid
> > vring_addr message
> >
> > root@imx95evk:~#
> >


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 01:34:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 01:34:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755678.1164106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sQzkl-0001DK-Sj; Tue, 09 Jul 2024 01:34:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755678.1164106; Tue, 09 Jul 2024 01:34: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 1sQzkl-0001DD-NM; Tue, 09 Jul 2024 01:34:47 +0000
Received: by outflank-mailman (input) for mailman id 755678;
 Tue, 09 Jul 2024 01:34:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQzkk-0001D3-HD; Tue, 09 Jul 2024 01:34:46 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQzkk-00065n-Eo; Tue, 09 Jul 2024 01:34:46 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sQzkj-0000xC-OI; Tue, 09 Jul 2024 01:34:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sQzkj-0000ng-NV; Tue, 09 Jul 2024 01:34: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=GVwK/BY62gDlxDZCbQkGs4hV2phLpHrStuBHisn4SbQ=; b=OsRKL+YZ5Dye5xOg1RZTYhXBTv
	pYnNE8vhsYdwRlnSY3s6weUV4HRD6oqgnL/J2+sxVprlwBLbXHKohWpBLnrFEMxFGzn8nzELF+4Zo
	D7BQd+LU2pXdCaWaAxXWQVGEQ67pk7BCAU4TJhKVfiTqOarzvNg0Sg0zsha1LPe/JtCI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186733-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186733: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=64cee188376e52a154475a86a9d2adc85f029870
X-Osstest-Versions-That:
    xen=c2a66d0b58b9661037cfed6bf3f8122b3363ca38
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Jul 2024 01:34:45 +0000

flight 186733 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186733/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186726
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186726
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186726
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail like 186726
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186726
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186726
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186726
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  64cee188376e52a154475a86a9d2adc85f029870
baseline version:
 xen                  c2a66d0b58b9661037cfed6bf3f8122b3363ca38

Last test of basis   186726  2024-07-08 01:51:56 Z    0 days
Testing same since   186733  2024-07-08 18:06:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Huang Rui <ray.huang@amd.com>
  Jiqian Chen <Jiqian.Chen@amd.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c2a66d0b58..64cee18837  64cee188376e52a154475a86a9d2adc85f029870 -> master


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 02:48:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 02:48:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755687.1164115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR0th-0001ND-UK; Tue, 09 Jul 2024 02:48:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755687.1164115; Tue, 09 Jul 2024 02:48: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 1sR0th-0001N6-Qq; Tue, 09 Jul 2024 02:48:05 +0000
Received: by outflank-mailman (input) for mailman id 755687;
 Tue, 09 Jul 2024 02:48: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=h7MY=OJ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sR0tg-0001N0-73
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 02:48:04 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20601.outbound.protection.outlook.com
 [2a01:111:f403:2416::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a7942da4-3d9d-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 04:48:01 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CY5PR12MB6526.namprd12.prod.outlook.com (2603:10b6:930:31::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Tue, 9 Jul
 2024 02:47:56 +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.7741.033; Tue, 9 Jul 2024
 02:47: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: a7942da4-3d9d-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MwdTJK3GcHxWsgEVYZRblpR+62JVabSaMYcNHC7dyuqAmVGxoSNqkWjJJV4EypgAQ+o7WZMGxK/akqrnkkZag1S4OENncX8ZR1p/aQoIt8w0qffhxkyGQ/sjE7KXhD+4AKXv+lPtxekRiOg1iC4hc6ZUXDRhWn4hCcj1E+KZrD5kkCfUfVF1NPBwwR5okg0bMd/fMzbyrA4FxVHBx86PjTB4T0yGGqiD8xnYezEtqaqX+Xc5wTH7G+pr/nUCCsCwcOchfiGDHmYrn1HczD7QucvtN95ZW6C51hrWlRPM8hOM8lanW69BhHR2DqwE8GDCYwTUE/Sph+ZLZjoMqLfSWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LDeXQlZdtdTtDFp20XkyKFDkUUWQhZWhBvYvHgoUDgQ=;
 b=ERdQiORR1rjqqnACp8Df9Bo7nPoeN5Avp+GiQ+sK7KA5EHS+RLvR6bPoacO3vN+HdtVD9XRUs6tpJbhdNFyzmMDRtJzi9CgVDJKZPBSU6oaWYZhBtg4ddYvZ1c1414CGNJZPeUESLfk0HB+5bFYp3al86wSiSy9yZzU+7m5VuKeojGhL7fOq+o/7A09XV9vVGJhe+plrJ74Gm2roaoqAv3eg4NyyYMdKbjs13FxN7AgcfOfaDhlBigna/Q00RrhgrnGsVlORBz3yigCM9yk+VQPwv73H43U65nsp8GI//KlFh0WqtqBb+ek797hna4BmjlB7smweNPEFBOhO4uJ16w==
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=LDeXQlZdtdTtDFp20XkyKFDkUUWQhZWhBvYvHgoUDgQ=;
 b=Psk11Bo2b7Gc0Jh1G+iUYSbz9zyk6sRCruYQv7bzQRxI+WtCxUriLJVMdTW26+gvSkq2Z2Vxy30PHiXdwdSDVoe9V55eqX4nUx11DpRYXiuxeaY9VE3+UtHR28u+qHsobFvrgFdK8aMiWOk8CByoxs9mLAGEGnsx1Q4A18jsRSk=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, Juergen
 Gross <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 1/7] xen/pci: Add hypercall to support reset of
 pcidev
Thread-Topic: [XEN PATCH v12 1/7] xen/pci: Add hypercall to support reset of
 pcidev
Thread-Index: AQHa0SvTLcqHcyv10kCa3wxjMJYih7Hs67IAgAFMAYA=
Date: Tue, 9 Jul 2024 02:47:56 +0000
Message-ID:
 <BL1PR12MB5849A3D071213C5CA8BE5F1AE7DB2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-2-Jiqian.Chen@amd.com>
 <3b2c9019-b907-44d0-b767-315f7d42a2a1@suse.com>
In-Reply-To: <3b2c9019-b907-44d0-b767-315f7d42a2a1@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.7741.016)
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_|CY5PR12MB6526:EE_
x-ms-office365-filtering-correlation-id: 5accd469-bea2-4775-834a-08dc9fc18995
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?VWpmQzRTYlFXZGltMUhaY3dxdFdaeUgwUW1FUU13Zy84bVpRQzFlYjlndVA5?=
 =?utf-8?B?Rzh1NVU2ZUxiZWFZOWZ1cndhRW44YkovMkFSYkEyUmJZWDJpREFkY0VFU0oz?=
 =?utf-8?B?MVgxcm45VnNyUkRHR3RCSnhIS25yU3pySTVkaGdGc1RBT3ZWYlJFN3VSZGtN?=
 =?utf-8?B?U0NiTElQcEtxLzZkT0F6dzdGOXZuNG9PSFFXV2swNTdsQkkyY3JQYWZ5UnRO?=
 =?utf-8?B?aTh6TE42ZG1nVjJPVFZuRmFyK3ZKY015Z2xlMDd5bEFIY1o3U3MvUjc0Ti9I?=
 =?utf-8?B?MmVrRVJ0QklNZzhML3EzL2RmTFd5U3kydlQrSmdBaWFYNUlCdzVSU3VJYit0?=
 =?utf-8?B?MEFmaG93NGI0OUQzYUVob3djbW03VGRVMHBDSEl1MUtycFZ0elJ6Q2NtWVVa?=
 =?utf-8?B?M3dkaldlb05wK21XY1NGNGNBRDczaWlEeWNiTVMxeksyd3RmamdsVlhveHM2?=
 =?utf-8?B?aW5IWFBvNXZYdnNFdzF2Yk9NR3Q4RmU1ZEdRMERJZm94TlBPanJNbWhHbHBC?=
 =?utf-8?B?Tnp6OENiOXVZUzUzaU5xMEFJVExvVm9zblZTSHVWUDUzZExQV1lXQjVUL0ty?=
 =?utf-8?B?R1E0SVFzQ3Z5eFVmbXBvQWY5NUdPbDhJeDZIdm5CZHdHZ2kvZzhtZkVjZVJD?=
 =?utf-8?B?Z0VobmZuL2dnQU9Ba2NSWjdlVUxUQzl3b0JpWE91QVQzQ1JRYklQbEFCd3hH?=
 =?utf-8?B?MXY5OCttSzVjUTU1eFdURHlnYXh6VE5Mei9DdG8xUUJQSFhUZUpESjZFQm5Y?=
 =?utf-8?B?Nk0xbWFOYjFHT2JjclhMNWdta2FEaGJSZk5yMHZlUGZGWjMwQ0prZHhFYVhY?=
 =?utf-8?B?YUZkTG9TWkhSbkJNcnpwNGdZR3RnMlpJSzJoZGlYT1FubCtFbzhYMW01R3px?=
 =?utf-8?B?TEFWNHoyMFFPcmg3V2wwWnRxUlcrZktQSnZ0V1lOdHBjTVh0TUY5cGRteTIv?=
 =?utf-8?B?dkRVblk0R1hUVDdmTVE4S1BBTWJkeGo1VCs1Mm03R0orZldMbW1nTnQwTEFu?=
 =?utf-8?B?ZEdyQm9MMjQwakVMVmtJdlpsa2F6TDBkZjh3dVBjSFM4akhyRlhyeWh4eHNv?=
 =?utf-8?B?SGtxNCtrWkhhQTFkNytxU0FZZmlIeUw0Mnk4RzJVNW04cXU4ODVCUEFtMXgv?=
 =?utf-8?B?UmhGYStBc2lCbE01TnRDMHBvdUF4c25oanZtekdvWWYvMmIzUVp3cVBjdlhL?=
 =?utf-8?B?SThTVHpOSmVOdVVhVi9aRmczZXZ3bHZKOWk2T2dGdzJTMDdvN0dBQ0g0YWpw?=
 =?utf-8?B?UkNYWFc4U3NjSkwvTkJRTWJOY2hRSmZseTdCamNBYllFMFJkNk9tRmIxMmdj?=
 =?utf-8?B?SHdiWk9uTjNZVXRkZmRVMjlpaitGMkdPcTdwb0lDQ213OFhxVmE0NEdRSkRB?=
 =?utf-8?B?WVFucFliSEVwZ2orWGtwb2FlN2ZBUU9qZTFud1JIVlZlaGxRcVQrcVBrRHF6?=
 =?utf-8?B?aE5xWWd1ZFdtb1Y5RDlKa3pOaE1uSHI4amlLVGZzNklxZ210dEN6cnk5Ym9Z?=
 =?utf-8?B?dmVpNmdhKzFseFZEdExzUXZXYXhwZFZnaG90U0wyK1h4WGZpb2dYQ0RHcEMx?=
 =?utf-8?B?UTVmOEkzUytsY2tLRE0rQkR2cnN4VzZrSm16L0ZCTk42RHRXS3d3MjBMVWZW?=
 =?utf-8?B?WS9UYlhLYS9yeHBWZ1FYYWhGQkZlR2pWNk5JRWZ1Vk1iR2JKNFc3R1FkQ2hw?=
 =?utf-8?B?VVpzYWFrRTZzZXhCSVhLSCtuYmhPZC83WUI5UnRvL3htYUZDSjU1ajdaS2tq?=
 =?utf-8?B?NnY0V3JsaGFQU29Ba1daUkdTYVlQZmdDdVI0UmNnSzRjOWZyeWFhK0grZGhp?=
 =?utf-8?B?dXRwUTRFeVBsdm1pZ0diZk9sRW04UTk4ZFVRUit2VXFRNHhLQW02T2lKUWE0?=
 =?utf-8?B?OFRoV2lnOEh6RDR3YVlnd1dITmEwZnJJOWgvY3h4N2ZRMVE9PQ==?=
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)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aEZyVG5KSXo5di8vMlR5aXhFaVdiZ1U1LytqWFJ1TzN1SVB4cFo2Z3FyWEY1?=
 =?utf-8?B?TmF3c2NJNFlzcGdUZ3greWsrOCtqdmpRaXZkaXdqa3VkY3lZRyt5b0Z6TjVw?=
 =?utf-8?B?VzBueWNycU5TaE1TOTRaQ2x2VlEzbS9vOFFBSTJ4elRPOUR3T1UyTjRySzF4?=
 =?utf-8?B?TzRDZWFQL3dLN0UvdHU5MTQyK3A0OE1mdmp5SysvOTRYcktvMlYxQ2lIRDNZ?=
 =?utf-8?B?LzVoeWNLVDI2Mm1FVDJnTlJsME1oeE1MUU5nQndIWk9PZ0p6KzdUd3lsQ3kr?=
 =?utf-8?B?ejJzbWZydEw3Y2c2UDFCVXdOMkkxMXRHRnBPQzJjWmFBOHE2emErYU5VUjYz?=
 =?utf-8?B?Mm5QWERzTWdqZVV6Wll1YXZHRzIxUUlSdkNDR0lCR3ZCOWx0cFhuNzg4bEdP?=
 =?utf-8?B?VERlbHAvaXliMWpTNTVNUXNrY2V4V2JYTUk3R1c1aGRaRkxib1FxNlBhc0M1?=
 =?utf-8?B?Zzc1ajdGVGFNQTFkTTRsQzhqaEgvdWtueDB5UnFjQnltNjZYMWVoRzRFdFBT?=
 =?utf-8?B?bUJ0dnJhVjNxZHNiNUgxWVV4L2xSZUdFNUs1bFBzalNBWUc4SURnOHBZM0Vs?=
 =?utf-8?B?cG1nOWVVbTdUMDhvbkZqR0g1V000MEZDYWlXaFZ5L0s4MEhIZHFxdks4cVho?=
 =?utf-8?B?MkI5WmpIRVhjRVNlcWZxUDVlVjJvZ3I1UGtDc05acTlkZGdJb0xaMytuSFhV?=
 =?utf-8?B?WUhCSitqM0duQU5YZkN5M0t4UU9GeXFOQURqZTNOd0l5U0hZRGRSMVBUeE41?=
 =?utf-8?B?bmR6QVJPMjdrZXFUTGJjNEhwSFljWHZVNzVRelJ1Z1A4YmFMSUNQY3FSU0NE?=
 =?utf-8?B?WTdiVy93Nk1acEx5RTNza0tJNXpJWktjS0NRTHZyYlR2NHR4K0twWWZESkZM?=
 =?utf-8?B?RWVNQTViSDRhWVZGRWRuVkFZWUFIaFpFK1BFZTlFa2JOaHNhN0Z5bW41Yldj?=
 =?utf-8?B?YUF3TDYyOUpGQjJDRzZaTVRCMFZPdVB0S21zSVNnNi94L3pCYU1pckRkU3o1?=
 =?utf-8?B?Z01vVjRvOU9HS3VaejNZYy9MSUZaREZtTCtlblRrU1h2cks3UU9sSWFrMW92?=
 =?utf-8?B?MmJKMHJMODNKa1hVQUNQNG5lZSthS2xIcnlyZXk0UmZ5YncvZDRkc0xvVzZG?=
 =?utf-8?B?TnRqZisrSjgxTkU2RDUrcTFrTi9YdlgzOXRtVGhKTzlUME4xd1lVRUlMalM3?=
 =?utf-8?B?Q1NsODh6enFtclJMb3NSQ0lnTkpJdU45Sm0rd2w5UXFPemI5NXZZMW9HZnVW?=
 =?utf-8?B?VUZMNVhHeENoWHI1UG1Bc2pSU1gwcVlsWVdFSDBPQlc5VGZPNUZJOEsrOXl3?=
 =?utf-8?B?NEUvTHU5WktybVdONWI2OTk2TTJ3Y2dCeDhoM01DMmRXQXQ2aGdzWmN1bDZq?=
 =?utf-8?B?WWRJRStRTDNuTnRlZFhWbzhmcTI3T0pUdDR6OTMvNGtMbmlrSGwwY2pnb1cr?=
 =?utf-8?B?RXd2TXNudjNYaVVqQVhuMkxHaWQwM0pOZFJmRGhZN0FGM3ZRc29jeWQ2dmRG?=
 =?utf-8?B?VGMwazlwb0ZRUFVhaWVxUVd0TjFJVGxLbU5Hc3J0Znc3Mm1NdE9aMzYrWEo2?=
 =?utf-8?B?ekV1OUx1WWdMYVBZMkZxS1hwQk9SMFhONlU1SWRtaFZGRDhpSEpESSt0ekdN?=
 =?utf-8?B?MlJGZWFjZjZkZG41NVBTbGpadHFXOVcrQkxHQWVrSUh3ZExoU0tGYUVGZXc1?=
 =?utf-8?B?V2VxeldXK2VNS3c5ZXRaSzB2SkYzTzdzQ3kwL2JOTldtVnBFeFBQaEd0NEN0?=
 =?utf-8?B?VmF2TTRYMEsrMGJBMlVETGxuTTd2c1FkVlBiQnJaUDhtNStSVEJoTmp4WElz?=
 =?utf-8?B?d1lPbmdneWlGS283WjNPQ2ZTK2FSSGdjTGg5dElTZ2lFMWZmTkNpOU8rR0dX?=
 =?utf-8?B?NlBQY0NuY0dIdWNyTjFuR0RvOTBvUjZPMlNwdG9hMmRINTFVdUlBQ2xEd3dS?=
 =?utf-8?B?eGE5aWtwRHFpdlU2SXNjMzF0cDNRSUEzYm5OZU5mcnZQeXdRTWxxN3V4em92?=
 =?utf-8?B?Zkt4T2xta3JLUHdYNkE5dlY1SmRBQmhMQmNXT3FiMW5aTUN6SHg0Z1BBek5x?=
 =?utf-8?B?UDd5WkdmLzhZdFVWSnZmMGkvNVZLdEJnVGkxcENHY3pTL1RSVU1HVzNhYjRO?=
 =?utf-8?Q?+KX4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <369C4C92EA04434F9489F778BE733F26@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: 5accd469-bea2-4775-834a-08dc9fc18995
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jul 2024 02:47:56.5514
 (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: +3omHLEUZJhxdrSd1K4LMuX/dGluoTplo8PAQn9+yf3vaHlARk0t0jUsMDB50FxWzQPuHgqABPW4KItLU/jAeA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6526

T24gMjAyNC83LzggMjI6NTYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwOC4wNy4yMDI0IDEz
OjQxLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IFdoZW4gYSBkZXZpY2UgaGFzIGJlZW4gcmVzZXQg
b24gZG9tMCBzaWRlLCB0aGUgWGVuIGh5cGVydmlzb3INCj4+IGRvZXNuJ3QgZ2V0IG5vdGlmaWNh
dGlvbiwgc28gdGhlIGNhY2hlZCBzdGF0ZSBpbiB2cGNpIGlzIGFsbA0KPj4gb3V0IG9mIGRhdGUg
Y29tcGFyZSB3aXRoIHRoZSByZWFsIGRldmljZSBzdGF0ZS4NCj4+DQo+PiBUbyBzb2x2ZSB0aGF0
IHByb2JsZW0sIGFkZCBhIG5ldyBoeXBlcmNhbGwgdG8gc3VwcG9ydCB0aGUgcmVzZXQNCj4+IG9m
IHBjaWRldiBhbmQgY2xlYXIgdGhlIHZwY2kgc3RhdGUgb2YgZGV2aWNlLiBTbyB0aGF0IG9uY2Ug
dGhlDQo+PiBzdGF0ZSBvZiBkZXZpY2UgaXMgcmVzZXQgb24gZG9tMCBzaWRlLCBkb20wIGNhbiBj
YWxsIHRoaXMNCj4+IGh5cGVyY2FsbCB0byBub3RpZnkgaHlwZXJ2aXNvci4NCj4+DQo+PiBTaWdu
ZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4+IFNpZ25lZC1v
ZmYtYnk6IEh1YW5nIFJ1aSA8cmF5Lmh1YW5nQGFtZC5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBK
aXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4+IFJldmlld2VkLWJ5OiBTdGV3YXJ0
IEhpbGRlYnJhbmQgPHN0ZXdhcnQuaGlsZGVicmFuZEBhbWQuY29tPg0KPj4gUmV2aWV3ZWQtYnk6
IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4NCj4gDQo+IFJldmll
d2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQpUaGFuayB5b3UgdmVyeSBt
dWNoIQ0KDQo+IA0KPiBKdXN0IHRvIGRvdWJsZSBjaGVjazogWW91J3JlIHN1cmUgdGhlIG90aGVy
IHR3byBSLWIgYXJlIHN0aWxsIGFwcGxpY2FibGUsDQo+IGRlc3BpdGUgdGhlIHZhcmlvdXMgY2hh
bmdlcyB0aGF0IGhhdmUgYmVlbiBtYWRlPw0KV2lsbCByZW1vdmUgaW4gbmV4dCB2ZXJzaW9uLg0K
DQo+IA0KPiBBcyBhIHB1cmVseSBjb3NtZXRpYyByZW1hcms6IEkgdGhpbmsgSSB3b3VsZCBoYXZl
IHByZWZlcnJlZCBpZiB0aGUgbmV3DQo+IGlkZW50aWZpZXJzIGRpZG4ndCBoYXZlICJzdGF0ZSIg
YXMgYSBwYXJ0OyBJIHNpbXBseSBkb24ndCB0aGluayB0aGlzIGFkZHMNCj4gbXVjaCB2YWx1ZSwg
d2hpbGUgYXQgdGhlIHNhbWUgdGltZSBtYWtpbmcgdGhlc2UgcHJldHR5IGxvbmcuDQpEbyB5b3Ug
bWVhbjogcmVtb3ZlICJzdGF0ZSIgaWRlbnRpZmllciBvbiBhbGwgdGhlIG5ldyBjb2Rlcz8NCg0K
PiANCj4gSmFuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 03:36:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 03:36:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755695.1164125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR1eB-0007Mc-56; Tue, 09 Jul 2024 03:36:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755695.1164125; Tue, 09 Jul 2024 03:36:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR1eB-0007MV-1D; Tue, 09 Jul 2024 03:36:07 +0000
Received: by outflank-mailman (input) for mailman id 755695;
 Tue, 09 Jul 2024 03: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=h7MY=OJ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sR1e9-0007MP-PO
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 03:36:05 +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 5c9ddf40-3da4-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 05:36:02 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 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.7741.35; Tue, 9 Jul
 2024 03:35:58 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.7741.033; Tue, 9 Jul 2024
 03:35: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: 5c9ddf40-3da4-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=W3OpSaE+PXLT17IXNx80wAn4gjLbmVjuC1COvAc3ThKKqGUwSi8/8aK/R6NUD6w1i9UgdledJYDZsTR0q7hRhl8JlHdhsE/U9wI6xPqIRF994T1QWnCP/+yzPjFSyuVQI32L/Fx+i9guoghMYzORUcm3beESG3sl5DpBhVGZHnT1mUm/6I2Ivt0J1wVBDA2C3jib2atxoJf/VH/+7dS9MhG76KxxDDBOvp9o7yexmQbPsVGNffwK1uA5ri+xcOTSA14osxdzkU9yFkBnEZZPl8Ia+sLBOcu3RxhwcZkT2MRY0HWT7URAUOXVaQotj0fVhMjWguPAMhg0WNJrbjECcQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=O9gW7fR8eSICDQIfmHec3S38yz13C4jhgvYXpd6VyxM=;
 b=eE/vtET2WLwLxd3n0Ccptjwy4z6x4H/+DMlH1slL/Cu9gCJfjw8TI+9kqozFzdz8pc8j6b2F4cmPl8NozlgSgist2cCYqCnOjYFubiSezxRq58n4OxCGQOKtDgvsLHZld3YNw678JoOUFWEAEBmL7aKnBzfWF8DcIlYQXLRidbwAEn5V1qLB6VcN6jwD07oPNoAsJm7k0sSoeznWFuOsHvyl1zVQljg52mIZep03jfgdYRfkMRuzWEJi/U9CjcAJYbgm7k4s6fa5kXCeJEjixDJMRhy+k2xOlv2sW8C8cBJNyj9kMASN58jLGfLUjLF8RzahDWEfqWpL67rY6JQTdg==
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=O9gW7fR8eSICDQIfmHec3S38yz13C4jhgvYXpd6VyxM=;
 b=jhbeIByy4PeWiQwlqJdBgnQ/lEWDrKruJQZU6wWn3Bpi/4Gt50Zliq1XRUeLJP0E6EZc+8H1Fxix0pwTcWpD5aWo3uBXVlTkJhlLZhi8XaYiIbv9dH00Z1AK7bDsu2j1fEojWRYsYFrQgJZJBu+rZZ383Iq4r8nemQ47ltWy3O8=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Anthony PERARD <anthony.perard@vates.tech>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
	<jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v12 6/7] tools: Add new function to get gsi from
 dev
Thread-Topic: [RFC XEN PATCH v12 6/7] tools: Add new function to get gsi from
 dev
Thread-Index: AQHa0Svedv1p7hOYckC70HcmNEElN7Hs0raAgAFpqwA=
Date: Tue, 9 Jul 2024 03:35:57 +0000
Message-ID:
 <BL1PR12MB5849BEF865F5E6413402C219E7DB2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-7-Jiqian.Chen@amd.com> <ZovpKmmoabIvy135@l14>
In-Reply-To: <ZovpKmmoabIvy135@l14>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.7741.016)
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_|MW6PR12MB8952:EE_
x-ms-office365-filtering-correlation-id: 5054a867-9959-44cd-e8a0-08dc9fc83f09
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?VnhXMG5yMUVCZGZjenViNy9vcVJ6cmF2eENBWERuc3BvdElTdmg0L29XVCto?=
 =?utf-8?B?TEdSbkVZYVRrMmZyejlUc2FFSTdjWmVhZXBXcTQ2K2pLdlVqanpBY0hnQVJE?=
 =?utf-8?B?MmdybFVtU3BOb2hPU21sYjExOW5FUVBRRXcrckNOTUN3eXRUY21JdUhzOVZG?=
 =?utf-8?B?T0R3SXpMY0lsdDA1NFEvRXdVTzBpazlZQktDZkphTVh4SkJZQjJON3RvcjRG?=
 =?utf-8?B?bmZ2a0s1VXNVM01zN252Q2UySVpwaVNsb05nSTllZFVsWWxjcTdrYjhUcUxo?=
 =?utf-8?B?bmdBaGRBT3hhVTRvaTNBNW5VcjlYUGpNOHlUbnZ0TlhVZlRmL3M5cGl0WHhX?=
 =?utf-8?B?UE1zamVvenFGK1pkM3p0NDZIb0hraE00cmtPYjNtS3pEYWlyaUlNZXFlS0I1?=
 =?utf-8?B?Y29JYjZqcStSNU1GWmdHbkdwRFIzN2dVMm90WXJFT3dUcnpVSGUzYzFWNVc5?=
 =?utf-8?B?eFZ2bGpPVEU0RWlhTWFITlhvRnloblgxU0hrZk5IWGZBYVgvci95WGdwVjh6?=
 =?utf-8?B?L0lEbVcxdU5KcFczZ1BWVmdvSGRDZk1NcXA3UFhIUzZhNVByMnM1QVo4RmU1?=
 =?utf-8?B?SWV4TEk0ci9HQUI0N1FLalFhZ2lNOHZKYUpXNzVJVUl0cWNKeHBpMWl5Mzg3?=
 =?utf-8?B?aERSSEQ2djhTRytKaWFVQ3Q5RFh3aFNpZjFrYjhWbjJPY2pwdHZ6d3lETXo3?=
 =?utf-8?B?d3NidFVXMUNqOHJpdVZWVGcvSCtHSUMyR3JQRXNVRWlVKzN6K0VTSExnZVVS?=
 =?utf-8?B?SVJzTDVtbXRMbWdSc3VPSklnVUdDcEVDbmpQRDhwUDBoUks3QkZ6cnFkbjRq?=
 =?utf-8?B?b1J2emMvMDNBTHVwb0U3K2t2SEFZZHlzcW9vMTJKL3lHMll0dythakV2eVZi?=
 =?utf-8?B?TUgwTUFJd1E0YVRTeGZsUTE3MVBVSzVqcmtUY2dGZDZBeEJ0b1lEU1JzRU8v?=
 =?utf-8?B?VS83aHlUS053d3RBc3Jubmd0eWpkUC9rQ3llZzczb3QxdmdNS01DNzVMdWcw?=
 =?utf-8?B?ejlFNGZianhYSGowMXhKejJxWkNJaUVUZks2NlJBaFJMOXdObG9TRU1Ma3R5?=
 =?utf-8?B?RlVCZXJCd3c0bmJjQXkwSzlUYWRsWXJVODB3YThzbEJPSS9LM3NwV2x0Zk1m?=
 =?utf-8?B?WUU3OUo2YW9aZFk5aFpDSkpOTG5nUml3Y3NEWU5jellwUFp1ekxvRzZlVmNU?=
 =?utf-8?B?eXUzV1VUaERFTzNPdHRnekhmckR2ZUtKODRSQy9OOWlkWVpHeUxxWG5KMGxC?=
 =?utf-8?B?MExUU2Q3YVpWN3FCTVVUczNYcEJaZ1N0d0UzSWZ0eHZOOENVNC8rR2FFbnBL?=
 =?utf-8?B?V3Z5SE5aK0dRd1VnL3dSdVU3bUNKQWJaYTZiV2VvRVRFRWpNOHJqVG5YQ0lU?=
 =?utf-8?B?UWpKTkdUQmMyN0FnbzEyTHBtem8ya0ZBSjlZRXBLRnc4ZWNuZmFEckNGVWJh?=
 =?utf-8?B?clJnZHlYWklBWVczTU1kcU9JV1h6RHp3ZU5mYXRwU0EwNSt1eTg3cWJTTzgz?=
 =?utf-8?B?b0lsOGdDRFNHbEtDcGp1anJ2SjIrT1Q5TUw0KzZBY29QbkdDVm0yNHg3T0ZS?=
 =?utf-8?B?R3QvQWJVZ2tQSUlhQUVGb1ZZdGF6NFZ4UDg3TVlnaWd0cW12N2pMN1BTNXl2?=
 =?utf-8?B?dENvempIVlZMbEZ2eW4rdVI0OHB5WnJZamdkelNqRTBIWWJYMVczcFlhS1hv?=
 =?utf-8?B?a1ZXbkIwRE4vdGJ4S2lyWHdRL05zbGxuS1RIdG9hWVV5VFlyT29nNGZ0b1pW?=
 =?utf-8?B?WUdHUkJ2bm1YK1pCeXdDOGIzeWxCNXYvVE02d3NJTjRNZTJ3VS9Pc25LeVRi?=
 =?utf-8?B?RkgzMUZ1MXlrdlFFK1dqMmVKOFBwUFZlaHoydTRwL2pIeXUxdEkrc0thS05K?=
 =?utf-8?B?TUZSUUhjVDJVUU1hRXY1UkZ3cDZRTE1GRVd4ZGN5M3Vnb2c9PQ==?=
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)(7416014)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?SDZQclphVnZteHdOcnFjdGFmcVNQaURIMDM4ZXdnYmpBZUFiUmtGcmYxMFY4?=
 =?utf-8?B?OGp1V0s1aUh3bGxCSmU1WVFTZWtsZzBjL0k1SWZYK2ZLMEdPTVZMbUNPUjJO?=
 =?utf-8?B?RUkyUnRtTzQ5aFRZMXo4bDRTakIzVVFZZVc3d2FRWndCMGFaNG5RVjFMOTFs?=
 =?utf-8?B?bVIzczJOWU5WQVU2RjdiaVd4L0lHSFVKWXF2TUs1TXYrNDdCRTZJamd5OCtM?=
 =?utf-8?B?VWRNREdXRFUzWE95TGtmeXlSa2NteVVGcDFUbkxoL1diMklXbzBuYU13dUZq?=
 =?utf-8?B?YTJNejVVR3U3L2VFU3VoYVdHbHFpbTYvcVhpRXJTQ2w3VFYyV3NjSU5UQWZt?=
 =?utf-8?B?UjVTQXN3dXEwaU81MDI2Z1ZwSW81aVlVcngyelBRQllReWdRVURHbEJKWVhh?=
 =?utf-8?B?KzY1bGw4Mzl2aXRwSWxpUXRBOFFoNFZSdEU0WEhML0k3ME1US3NCWloyd2s5?=
 =?utf-8?B?VmFtcmhWczNuMTFwaEhSSG8yb2E3OGxqcWV4cWdLY2FXNGt0VG5zOVZkN0py?=
 =?utf-8?B?a3BoSXhLK0U1cWlmQUdmOHRQblpQSzRPdit0QUw0bjBLR3NxSTJwK3NOWDUv?=
 =?utf-8?B?MUxTMUF4RXd1dUZtWEU0MWh5TkNCeXI5c1FKVllaRkxjdXhQZWg4TUl4Wi90?=
 =?utf-8?B?a1hLa21UV3ROVVR0WXBZblBEU1p0UzlxY2I5YTZWbFdIeHFYMysrZmVScEd5?=
 =?utf-8?B?WUw0M0xKVTZTcWhrSXducDZRQVBYY3NDUC9EbHZPdllBR1A0S2QxUklkNUU2?=
 =?utf-8?B?WWVyRmdQUHlXWm5IVHRCaGpTOTlSaGJwdGwrSUpxcFNlM0tDUGdTZy9xV1Iw?=
 =?utf-8?B?M3dWbDRKck85UHFydE40TXNNZjJOZTluUjI2Y25uQ0lIOFNrdW9mNjVLK3FG?=
 =?utf-8?B?ZGNWNHVoR3l4WExHdEhQU3RIN3pTSG9kL2R0dWxwRlpmMWI2NEU3clJBVSt2?=
 =?utf-8?B?UEtKSDVzWGF1bUFPa01EbEFCRWJoMHBpa2RKdGhsY1JDQVdVNUJ5bmNqcFdR?=
 =?utf-8?B?RjRRZmxjSFd0YkpoeHR3MGtacmhhMGN6ZklxV0RmZCs4RGNwdEV0TC9VeDR4?=
 =?utf-8?B?RGVrcGRBbG4ydkxKbi8vQWE3RStWMHJ4M0NBd2lGWFpxQk5EbnFsdVhwdjZV?=
 =?utf-8?B?bFFIQnU2aUZwdEFZZjdZTWdHdzRZUVVBZ1krTUVWQWQxT3JacHdVSzFFQ3Nl?=
 =?utf-8?B?SnBrQld4aDYrNDNoTDZmYktxVkppTDR0UGlCTHpRSjJOUkhYREh2QTVPU0Y2?=
 =?utf-8?B?MWZRZDUxSS80RWh3OGp5bXMrdGZBTmpwRDBsUUprV1NoZ21rN1U1THJYeVhh?=
 =?utf-8?B?VDlKQmVlZjNTNUtsekFjbkFvSUorVVpIc3RFbTdia2lOejdrcllxOHZmSFBa?=
 =?utf-8?B?YUk3VFE5ZHl5WTBLZzZyY2N5T1JCN2lIeVY2aEtDaFBoTFJ6V08xeUNDRXVQ?=
 =?utf-8?B?V05SeGpNQy81M3BLa1I2S0lyaTk5QTJISnVoa0Y4b0x2Ukp0WHJrWjN6OG9M?=
 =?utf-8?B?WjFPdUVZYUNoTnhjTmhFWTd1dUNWczFLR1BxMTNERFJ1YWdMbStjZE5HWk50?=
 =?utf-8?B?QUJlWVoxWEpldVVaV1BIdHRhazZ2SlZBUEFPMm5tdk9HWEtNZ1o0RHlVcHVX?=
 =?utf-8?B?cVEyOGloTDN5ZzA5NVo2a3NxTS9mbzNGRndFakhMVlZLYTBnRlhGdGtUbE9x?=
 =?utf-8?B?bElCK1FZKytGaG03WVhUNEx0Z01QRFl6ZVo2b2JOYmcyOFRaRytoZUZMN3BM?=
 =?utf-8?B?SDhlVlN5SGVsbVpnQ0o2WGM3clczQ0hkK3g5NFpSeXVoWU5VOXJZRmQwU3lr?=
 =?utf-8?B?OEVYUEtUMjdmSnFLL1Z3QjR2WnVMUUxlaDlvdTVDNVVMYXMxdzIxYnllQzZX?=
 =?utf-8?B?ZmY3QzFpU3pKMzdyS21KUGdtVkV0blI1ZWZpQ1lROUw1aWQ2bG4zekx0elMr?=
 =?utf-8?B?ZThRTTNGSzFHZHZSQjRGTU01SkNKRUx4ODlGNjd5VFhMQ0huNTFiY0paRWZI?=
 =?utf-8?B?a1RlVFNCb0wwcU5XanVwTUxpV1NqMUkzem1WTkhhUmtqNjNmaURQa1FMYUZG?=
 =?utf-8?B?WmRYTU5ZNG5EMGo5a2NuNURVWGkrWUs0T3VnUHR6aHkrb002enVTWWFOb2Vy?=
 =?utf-8?Q?NguA=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6AF4F9C532159D428311AA318160A04A@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: 5054a867-9959-44cd-e8a0-08dc9fc83f09
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jul 2024 03:35:57.9245
 (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: LH6QiafwX4IkvAr6Y/jtZbz3kuj8uHiwJFfvA60pBzFdGOtlRXRfwcUK1+i0YCgGhQm7Y0ctN/T/gptomsDXsA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8952

T24gMjAyNC83LzggMjE6MjcsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBNb24sIEp1bCAw
OCwgMjAyNCBhdCAwNzo0MToyM1BNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IGRpZmYg
LS1naXQgYS90b29scy9saWJzL2N0cmwveGNfcGh5c2Rldi5jIGIvdG9vbHMvbGlicy9jdHJsL3hj
X3BoeXNkZXYuYw0KPj4gaW5kZXggZTlmY2Q3NTVmYTYyLi41NGVkYjBmM2MwZGMgMTAwNjQ0DQo+
PiAtLS0gYS90b29scy9saWJzL2N0cmwveGNfcGh5c2Rldi5jDQo+PiArKysgYi90b29scy9saWJz
L2N0cmwveGNfcGh5c2Rldi5jDQo+PiBAQCAtMTExLDMgKzExMSwzOCBAQCBpbnQgeGNfcGh5c2Rl
dl91bm1hcF9waXJxKHhjX2ludGVyZmFjZSAqeGNoLA0KPj4gICAgICByZXR1cm4gcmM7DQo+PiAg
fQ0KPj4gIA0KPj4gK2ludCAtKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBzYmRmKQ0KPj4g
K3sNCj4+ICsgICAgaW50IHJjID0gLTE7DQo+PiArDQo+PiArI2lmIGRlZmluZWQoX19saW51eF9f
KQ0KPj4gKyAgICBpbnQgZmQ7DQo+PiArICAgIHByaXZjbWRfZ3NpX2Zyb21fcGNpZGV2X3QgZGV2
X2dzaSA9IHsNCj4+ICsgICAgICAgIC5zYmRmID0gc2JkZiwNCj4+ICsgICAgICAgIC5nc2kgPSAw
LA0KPj4gKyAgICB9Ow0KPj4gKw0KPj4gKyAgICBmZCA9IG9wZW4oIi9kZXYveGVuL3ByaXZjbWQi
LCBPX1JEV1IpOw0KPiANCj4gDQo+IFlvdSBjb3VsZCByZXVzZSB0aGUgYWxyZWFkeSBvcGVuZWQg
ZmQgZnJvbSBsaWJ4ZW5jYWxsOg0KPiAgICAgeGVuY2FsbF9mZCh4Y2gtPnhjYWxsKQ0KRG8gSSBu
ZWVkIHRvIGNoZWNrIGl0IHRoaXMgZmQ8MD8NCg0KPiANCj4+ICsNCj4+ICsgICAgaWYgKGZkIDwg
MCAmJiAoZXJybm8gPT0gRU5PRU5UIHx8IGVycm5vID09IEVOWElPIHx8IGVycm5vID09IEVOT0RF
VikpIHsNCj4+ICsgICAgICAgIC8qIEZhbGxiYWNrIHRvIC9wcm9jL3hlbi9wcml2Y21kICovDQo+
PiArICAgICAgICBmZCA9IG9wZW4oIi9wcm9jL3hlbi9wcml2Y21kIiwgT19SRFdSKTsNCj4+ICsg
ICAgfQ0KPj4gKw0KPj4gKyAgICBpZiAoZmQgPCAwKSB7DQo+PiArICAgICAgICBQRVJST1IoIkNv
dWxkIG5vdCBvYnRhaW4gaGFuZGxlIG9uIHByaXZpbGVnZWQgY29tbWFuZCBpbnRlcmZhY2UiKTsN
Cj4+ICsgICAgICAgIHJldHVybiByYzsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICByYyA9IGlv
Y3RsKGZkLCBJT0NUTF9QUklWQ01EX0dTSV9GUk9NX1BDSURFViwgJmRldl9nc2kpOw0KPiANCj4g
SSB0aGluayB0aGlzIHdvdWxkIGJlIGJldHRlciBpbXBsZW1lbnRlZCBpbiBMaW51eCBvbmx5IEMg
ZmlsZSBpbnN0ZWFkIG9mDQo+IHVzaW5nICNkZWZpbmUuIFRoZXJlJ3MgYWxyZWFkeSAieGNfbGlu
dXguYyIgd2hpY2ggaXMgcHJvYmFibHkgZ29vZA0KPiBlbm91Z2ggdG8gYmUgdXNlZCBoZXJlLg0K
PiANCj4gSW1wbGVtZW50YXRpb24gZm9yIG90aGVyIE9TIHdvdWxkIGp1c3Qgc2V0IGVycm5vIHRv
IEVOT1NZUyBhbmQNCj4gcmV0dXJuIC0xLg0KVGhhbmtzLCB3aWxsIGNoYW5nZSBpbiBuZXh0IHZl
cnNpb24uDQoNCj4gDQo+IA0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 05:43:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 05:43:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755702.1164135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3cw-00058g-7k; Tue, 09 Jul 2024 05:42:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755702.1164135; Tue, 09 Jul 2024 05: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 1sR3cw-00058Z-4s; Tue, 09 Jul 2024 05:42:58 +0000
Received: by outflank-mailman (input) for mailman id 755702;
 Tue, 09 Jul 2024 05:42:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sR3cv-00058H-EX; Tue, 09 Jul 2024 05:42:57 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sR3cs-00033e-VZ; Tue, 09 Jul 2024 05:42:54 +0000
Received: from buscust21-202.static.cytanet.com.cy ([87.228.190.202]
 helo=[10.10.49.222]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sR3cs-0008No-LT; Tue, 09 Jul 2024 05:42: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=gY3HaePMaabOigPfAFjjtMH3zQ3Cfhd/KFBFRw1r2MU=; b=acUmgCqipKcHBnC/ZZAeGNLaaE
	1CKeHnCvWf6TSqL3z1v6tc1d9TYEYwDnhMSmIzyUSou+y0WbmpeDbjwLdvRYTrtHqXXRiLji9vaLC
	ekqKCz1Id4qyjYQEQ3JG9tiban7vZJ7n7uaXVfWeqG39QFIs7XTl9v2g0N+hW6QgwTDA=;
Message-ID: <925ec9b8-83b3-473c-aa7c-dd825cdc3b9a@xen.org>
Date: Tue, 9 Jul 2024 08:42:50 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Vote] Xen Project Code of Conduct Team Member
Content-Language: en-GB
To: Kelly Choi <kelly.choi@cloud.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 "xen-api@lists.xenproject.org" <xen-api@lists.xenproject.org>,
 win-pv-devel@lists.xenproject.org
Cc: committers@xenproject.org, minios-devel@lists.xenproject.org,
 mirageos-devel@lists.xenproject.org, Roger Pau Monne <roger.pau@cloud.com>
References: <CAO-mL=xEEdCjUWN3oqJEBjktH+dsJDXrQ2uHWD80bJJ32q3_pw@mail.gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <CAO-mL=xEEdCjUWN3oqJEBjktH+dsJDXrQ2uHWD80bJJ32q3_pw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 08/07/2024 10:00, Kelly Choi wrote:
> Hi all,
> 
> As you are aware, George Dunlap has recently stepped down from the Xen
> Project as a committer, but he was also a part of the Code of Conduct team.
> 
> As a result, Stefano will be the only member remaining on the CoC team. @Roger
> Pau Monne <roger.pau@cloud.com> has volunteered to join the team, so that
> there are at least two members.
> 
> In accordance with https://xenproject.org/developers/governance/, I need
> the leadership teams of the three mature projects: the Hypervisor, the XAPI
> project, and the Windows PV Driver project to vote on this proposal.
> 
> The specific voting rules, in this case, are outlined in the section:
> https://www.xenproject.org/governance.html#project-decisions
> 
> I propose to tally the votes after July 31st, 2024. You can reply via email
> in public or private:
> +1: for proposal
> -1: against proposal

+1

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 05:44:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 05:44:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755719.1164157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3dz-0005uZ-L4; Tue, 09 Jul 2024 05:44:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755719.1164157; Tue, 09 Jul 2024 05: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 1sR3dz-0005uS-I9; Tue, 09 Jul 2024 05:44:03 +0000
Received: by outflank-mailman (input) for mailman id 755719;
 Tue, 09 Jul 2024 05:44: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=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR3dy-0005ed-30
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 05:44:02 +0000
Received: from pb-smtp1.pobox.com (pb-smtp1.pobox.com [64.147.108.70])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d5c7911-3db6-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 07:44:01 +0200 (CEST)
Received: from pb-smtp1.pobox.com (unknown [127.0.0.1])
 by pb-smtp1.pobox.com (Postfix) with ESMTP id DB2E530602;
 Tue,  9 Jul 2024 01:43:58 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1])
 by pb-smtp1.pobox.com (Postfix) with ESMTP id C470530601;
 Tue,  9 Jul 2024 01:43:58 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp1.pobox.com (Postfix) with ESMTPSA id 07FDB30600;
 Tue,  9 Jul 2024 01:43:58 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d5c7911-3db6-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:mime-version:content-transfer-encoding;
	 s=sasl; bh=dL0se5z3PCq5M4JgJaI5D4sL6cE0ozPVy/JvPgbvIV0=; b=SXZ4
	v4b+g1g9EytmmwCncVMH5TlL0ZMnLLPgmlv3wpWt2PaWpc7IuGThGGyqriMNB8fM
	wljjNxKkDILyBOEOG4zPgoHLkIMm6MlNZVx1QORPHV4CnEdM4b0lCMPphKQm3COj
	RMG9Yd7mwO6VjiatVs+Q3L/+KFKU4fM5FwTq82E=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>
Subject: [XEN PATCH v4 00/14] x86: make CPU virtualisation support configurable
Date: Tue,  9 Jul 2024 08:43:55 +0300
Message-Id: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
X-Pobox-Relay-ID:
 3C85C32C-3DB6-11EF-826A-5B6DE52EC81B-90055647!pb-smtp1.pobox.com
Content-Transfer-Encoding: quoted-printable

This is another series to provide a means to render the CPU virtualisatio=
n
technology support in Xen configurable.
Currently, irrespectively of the target platform, both AMD-V and Intel VT=
-x
drivers are built.
The series adds three new Kconfig controls, ALT2PM, SVM and VMX, that can=
 be
used to switch to a finer-grained configuration for a given platform, and
reduce dead code.

The code separation is done using the new config guards.

Major changes in this series, comparing to v3, are turning of macros usin=
g_vmx &
using_svm into static inline functions, and also defining & using
arch_vcpu_ioreq_completion() only in VMX-enabled build.
More specific changes are provided in per-patch changelog.=20

v3 series here:
https://lore.kernel.org/xen-devel/cover.1717410850.git.Sergiy_Kibrik@epam=
.com/

The question about config option naming still remains. I haven't changed =
names
in this series yet, but a verdict from maintainers is very welcomed.=20
My thought is probably to leave names as they're now, CONFIG_{SVM,VMX} th=
at is.
Because now only CONFIG_INTEL_VMX/CONFIG_AMD_SVM occupy much more space,
but also add some unneeded redundancy to names -- I mean Intel is the onl=
y
vendor to provide VT-d as for now, and that does not seem to change anyti=
me
soon, does it? (and the same for AMD/AMD-V)

 -Sergiy

Sergiy Kibrik (7):
  x86/altp2m: add static inline stub for altp2m_vcpu_idx()
  x86/p2m: guard altp2m routines
  x86: introduce CONFIG_ALTP2M Kconfig option
  x86: introduce using_{svm,vmx}() helpers
  x86/vmx: guard access to cpu_has_vmx_* in common code
  x86/vpmu: guard calls to vmx/svm functions
  x86/vmx: replace CONFIG_HVM with CONFIG_VMX in vmx.h

Xenia Ragiadakou (7):
  x86: introduce AMD-V and Intel VT-x Kconfig options
  x86/p2m: guard EPT functions with using_vmx() check
  x86/traps: guard vmx specific functions with usinc_vmx() check
  x86/PV: guard svm specific functions with usinc_svm() check
  x86/oprofile: guard svm specific symbols with CONFIG_SVM
  x86/ioreq: guard VIO_realmode_completion with CONFIG_VMX
  x86/hvm: make AMD-V and Intel VT-x support configurable

 xen/arch/arm/ioreq.c                    |  6 -----
 xen/arch/x86/Kconfig                    | 31 +++++++++++++++++++++++++
 xen/arch/x86/cpu/vpmu_amd.c             |  9 +++----
 xen/arch/x86/cpu/vpmu_intel.c           | 16 +++++++------
 xen/arch/x86/domain.c                   |  8 +++----
 xen/arch/x86/hvm/Makefile               |  4 ++--
 xen/arch/x86/hvm/hvm.c                  |  6 ++---
 xen/arch/x86/hvm/ioreq.c                |  2 ++
 xen/arch/x86/hvm/nestedhvm.c            |  4 ++--
 xen/arch/x86/hvm/viridian/viridian.c    |  4 ++--
 xen/arch/x86/include/asm/altp2m.h       | 11 +++++++--
 xen/arch/x86/include/asm/hvm/hvm.h      | 17 +++++++++++++-
 xen/arch/x86/include/asm/hvm/ioreq.h    |  5 ++++
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 17 +++++++++-----
 xen/arch/x86/include/asm/hvm/vmx/vmx.h  |  2 +-
 xen/arch/x86/include/asm/p2m.h          | 23 ++++++++++++++----
 xen/arch/x86/mm/Makefile                |  5 ++--
 xen/arch/x86/mm/hap/Makefile            |  2 +-
 xen/arch/x86/mm/p2m-basic.c             | 13 ++++++-----
 xen/arch/x86/mm/p2m-ept.c               |  2 +-
 xen/arch/x86/oprofile/op_model_athlon.c |  2 +-
 xen/arch/x86/traps.c                    | 13 ++++-------
 xen/common/ioreq.c                      |  5 +++-
 xen/include/xen/ioreq.h                 |  1 -
 24 files changed, 141 insertions(+), 67 deletions(-)

--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 05:46:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 05:46:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755725.1164168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3gB-0006jW-1z; Tue, 09 Jul 2024 05:46:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755725.1164168; Tue, 09 Jul 2024 05: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 1sR3gA-0006jP-U2; Tue, 09 Jul 2024 05:46:18 +0000
Received: by outflank-mailman (input) for mailman id 755725;
 Tue, 09 Jul 2024 05:46: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=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR3g9-0006jA-OJ
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 05:46:17 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8e33be2c-3db6-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 07:46:16 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 4291820009;
 Tue,  9 Jul 2024 01:46:14 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 2D1F220008;
 Tue,  9 Jul 2024 01:46:14 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id 8FA3720007;
 Tue,  9 Jul 2024 01:46:09 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e33be2c-3db6-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=Yxv7us44ARpVq7KnIiwkUWU00
	EVfKSndpycS1uI1RLk=; b=WXVBbWGEJaCFO36dTdyMceUUFFHsFrjkZ4Ioz6TAn
	w6jU1kbijrobY/jlmiA+YC36a9IiRaIRFGNWHFtkZHF6LVIsGULalxQzFlSetWml
	INeSwKvRrwhAIYfLANhsmVjgVqkRHXOMnlP9jx8hrZ0OWSXHaIFEp7TQ7ycQUBYN
	ck=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v4 01/14] x86: introduce AMD-V and Intel VT-x Kconfig options
Date: Tue,  9 Jul 2024 08:45:59 +0300
Message-Id: <f6bfed3cd9e9fff25cbe0c5e16d8d88541be212f.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 8AEF06F4-3DB6-11EF-9DA4-DFF1FEA446E2-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

Introduce two new Kconfig options, SVM and VMX, to allow code
specific to each virtualization technology to be separated and, when not
required, stripped.
CONFIG_SVM will be used to enable virtual machine extensions on platforms=
 that
implement the AMD Virtualization Technology (AMD-V).
CONFIG_VMX will be used to enable virtual machine extensions on platforms=
 that
implement the Intel Virtualization Technology (Intel VT-x).

Both features depend on HVM support.

Since, at this point, disabling any of them would cause Xen to not compil=
e,
the options are enabled by default if HVM and are not selectable by the u=
ser.

No functional change intended.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
---
changes in v3:
 - tag added
changes in v2:
 - simplify kconfig expression to def_bool HVM
 - keep file list in Makefile in alphabetical order
changes in v1:
 - change kconfig option name AMD_SVM/INTEL_VMX -> SVM/VMX
---
 xen/arch/x86/Kconfig         | 6 ++++++
 xen/arch/x86/hvm/Makefile    | 4 ++--
 xen/arch/x86/mm/Makefile     | 3 ++-
 xen/arch/x86/mm/hap/Makefile | 2 +-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 7e03e4bc55..8c9f8431f0 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -122,6 +122,12 @@ config HVM
=20
 	  If unsure, say Y.
=20
+config SVM
+	def_bool HVM
+
+config VMX
+	def_bool HVM
+
 config XEN_SHSTK
 	bool "Supervisor Shadow Stacks"
 	depends on HAS_AS_CET_SS
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 3464191544..8434badc64 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -1,5 +1,5 @@
-obj-y +=3D svm/
-obj-y +=3D vmx/
+obj-$(CONFIG_SVM) +=3D svm/
+obj-$(CONFIG_VMX) +=3D vmx/
 obj-y +=3D viridian/
=20
 obj-y +=3D asid.o
diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
index 0803ac9297..0128ca7ab6 100644
--- a/xen/arch/x86/mm/Makefile
+++ b/xen/arch/x86/mm/Makefile
@@ -10,6 +10,7 @@ obj-$(CONFIG_MEM_SHARING) +=3D mem_sharing.o
 obj-$(CONFIG_HVM) +=3D nested.o
 obj-$(CONFIG_HVM) +=3D p2m.o
 obj-y +=3D p2m-basic.o
-obj-$(CONFIG_HVM) +=3D p2m-ept.o p2m-pod.o p2m-pt.o
+obj-$(CONFIG_VMX) +=3D p2m-ept.o
+obj-$(CONFIG_HVM) +=3D p2m-pod.o p2m-pt.o
 obj-y +=3D paging.o
 obj-y +=3D physmap.o
diff --git a/xen/arch/x86/mm/hap/Makefile b/xen/arch/x86/mm/hap/Makefile
index 8ef54b1faa..98c8a87819 100644
--- a/xen/arch/x86/mm/hap/Makefile
+++ b/xen/arch/x86/mm/hap/Makefile
@@ -3,4 +3,4 @@ obj-y +=3D guest_walk_2.o
 obj-y +=3D guest_walk_3.o
 obj-y +=3D guest_walk_4.o
 obj-y +=3D nested_hap.o
-obj-y +=3D nested_ept.o
+obj-$(CONFIG_VMX) +=3D nested_ept.o
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 05:48:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 05:48:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755735.1164177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3iG-0007JS-CC; Tue, 09 Jul 2024 05:48:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755735.1164177; Tue, 09 Jul 2024 05:48:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3iG-0007JL-9Y; Tue, 09 Jul 2024 05:48:28 +0000
Received: by outflank-mailman (input) for mailman id 755735;
 Tue, 09 Jul 2024 05:48:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR3iF-0007JF-0s
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 05:48:27 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d9db6e13-3db6-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 07:48:24 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 5376820012;
 Tue,  9 Jul 2024 01:48:21 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 3EB5220011;
 Tue,  9 Jul 2024 01:48:21 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id C9C0D20010;
 Tue,  9 Jul 2024 01:48:17 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9db6e13-3db6-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=ar8Sud9602ZOgj0pi1k8W2AaU
	4FGR+7Cpmq6PiXLXn4=; b=IhRN2hib2pG6Cl24zRkpYiMw9SYV7kAPpTPocuxbD
	o4mzgmfDTnzRhRlkVHFuz5L+L1jxiyFwMoMieJ0DnV7TiV1aybkvILFA93zXjHrb
	zBrIUJyg3F8ZcY2UFXXvG86nun1w8ieG9xnlQOwwcVUXpKj3Jl5c73SpKP5R1eLO
	7E=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Tamas K Lengyel <tamas@tklengyel.com>
Subject: [XEN PATCH v4 02/14] x86/altp2m: add static inline stub for altp2m_vcpu_idx()
Date: Tue,  9 Jul 2024 08:48:13 +0300
Message-Id: <952cb307528f16fc36a3fadbe26d83bc6805f81e.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 D75F0E6C-3DB6-11EF-AE0E-DFF1FEA446E2-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

The stub just returns 0 due to implementation of  p2m_get_mem_access() fo=
r
x86 & ARM expects it to be 0 when altp2m not active or not implemented.

The separate stub is favoured over dynamic check for alt2pm availability
inside regular altp2m_vcpu_idx() because this way we retain the possibili=
ty
to later put the whole struct altp2mvcpu under CONFIG_ALTP2M.

The purpose of the change is later to be able to disable altp2m support a=
nd
exclude its code from the build completely, when not supported by target
platform (as of now it's implemented for Intel EPT only).

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Tamas K Lengyel <tamas@tklengyel.com>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v4:
 - add static inline stub for altp2m_vcpu_idx() instead of using
   altp2m_active() check inside altp2m_vcpu_idx() as suggested by Jan
 - changed patch description
changes in v3:
 - move altp2m_active() check inside altp2m_vcpu_idx()
 - drop changes to monitor.c
 - changed patch description
changes in v2:
 - patch description changed, removed VMX mentioning
 - guard by altp2m_active() instead of hvm_altp2m_supported()
---
 xen/arch/x86/include/asm/altp2m.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/altp2m.h b/xen/arch/x86/include/asm=
/altp2m.h
index e5e59cbd68..c655b8a34e 100644
--- a/xen/arch/x86/include/asm/altp2m.h
+++ b/xen/arch/x86/include/asm/altp2m.h
@@ -37,8 +37,12 @@ static inline bool altp2m_active(const struct domain *=
d)
     return false;
 }
=20
+static inline uint16_t altp2m_vcpu_idx(const struct vcpu *v)
+{
+    return 0;
+}
+
 /* Only declaration is needed. DCE will optimise it out when linking. */
-uint16_t altp2m_vcpu_idx(const struct vcpu *v);
 void altp2m_vcpu_disable_ve(struct vcpu *v);
=20
 #endif
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 05:50:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 05:50:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755741.1164189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3kG-0000MH-UB; Tue, 09 Jul 2024 05:50:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755741.1164189; Tue, 09 Jul 2024 05:50:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3kG-0000MA-PF; Tue, 09 Jul 2024 05:50:32 +0000
Received: by outflank-mailman (input) for mailman id 755741;
 Tue, 09 Jul 2024 05:50:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR3kF-0000M0-Fv
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 05:50:31 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 252f2dee-3db7-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 07:50:29 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 04C9520061;
 Tue,  9 Jul 2024 01:50:28 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id F084320060;
 Tue,  9 Jul 2024 01:50:27 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id 8A5FA20027;
 Tue,  9 Jul 2024 01:50:24 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 252f2dee-3db7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=Fx6tEFqIZ8N4WzkD6Tx5NtM2/
	EN8ecpPQC+N2RVvBqo=; b=WJEr9HTBxSnfKO8EXyk60R6SrD5rfwoh6exu9ULsi
	tQVHWArYF1sZPXM9MVmsrHuppP1xGpnRoRqOcXBxt4DsrDt3/KHc+muzPXm/Q2Q1
	DIc+99EgsuejSH/UOyFd5iSV1nbJ1SsdviDtmD8EZdI9NrVUEFqzC2ZIXHRKphDS
	Lc=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Tamas K Lengyel <tamas@tklengyel.com>
Subject: [XEN PATCH v4 03/14] x86/p2m: guard altp2m routines
Date: Tue,  9 Jul 2024 08:50:21 +0300
Message-Id: <c5c61affddf8eef9b0d3a67314ba5d09163531aa.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 22EA3956-3DB7-11EF-A2A2-DFF1FEA446E2-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

Initialize and bring down altp2m only when it is supported by the platfor=
m,
e.g. VMX. Also guard p2m_altp2m_propagate_change().
The purpose of that is the possibility to disable altp2m support and excl=
ude its
code from the build completely, when it's not supported by the target pla=
tform.

Here hvm_altp2m_supported() is being used to check for ALTP2M availabilit=
y,
which is only defined if HVM enabled, so a stub for that routine added fo=
r
!HVM configuration as well.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Tamas K Lengyel <tamas@tklengyel.com>
---
New changes were made to patch after Jan reviewed it, namely hvm_altp2m_s=
upported()
added for !HVM config, so I didn't put his Acked-by tag here.
---
changes in v4:
 - added stub for hvm_altp2m_supported() and description updated accordin=
gly
changes in v3:
 - put hvm_altp2m_supported() first
 - rewrite changes to p2m_init() with less code
 - add tag
---
 xen/arch/x86/include/asm/hvm/hvm.h | 5 +++++
 xen/arch/x86/mm/p2m-basic.c        | 9 +++++----
 xen/arch/x86/mm/p2m-ept.c          | 2 +-
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/as=
m/hvm/hvm.h
index 1c01e22c8e..277648dd18 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -828,6 +828,11 @@ static inline bool hvm_hap_supported(void)
     return false;
 }
=20
+static inline bool hvm_altp2m_supported(void)
+{
+    return false;
+}
+
 static inline bool hvm_nested_virt_supported(void)
 {
     return false;
diff --git a/xen/arch/x86/mm/p2m-basic.c b/xen/arch/x86/mm/p2m-basic.c
index 25d27a0a9f..08007a687c 100644
--- a/xen/arch/x86/mm/p2m-basic.c
+++ b/xen/arch/x86/mm/p2m-basic.c
@@ -128,7 +128,7 @@ int p2m_init(struct domain *d)
         return rc;
     }
=20
-    rc =3D p2m_init_altp2m(d);
+    rc =3D hvm_altp2m_supported() ? p2m_init_altp2m(d) : 0;
     if ( rc )
     {
         p2m_teardown_hostp2m(d);
@@ -197,11 +197,12 @@ void p2m_final_teardown(struct domain *d)
 {
     if ( is_hvm_domain(d) )
     {
+        if ( hvm_altp2m_supported() )
+            p2m_teardown_altp2m(d);
         /*
-         * We must tear down both of them unconditionally because
-         * we initialise them unconditionally.
+         * We must tear down nestedp2m unconditionally because
+         * we initialise it unconditionally.
          */
-        p2m_teardown_altp2m(d);
         p2m_teardown_nestedp2m(d);
     }
=20
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index 469e27ee93..49b76e9d16 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -991,7 +991,7 @@ out:
     if ( is_epte_present(&old_entry) )
         ept_free_entry(p2m, &old_entry, target);
=20
-    if ( entry_written && p2m_is_hostp2m(p2m) )
+    if ( hvm_altp2m_supported() && entry_written && p2m_is_hostp2m(p2m) =
)
     {
         ret =3D p2m_altp2m_propagate_change(d, _gfn(gfn), mfn, order, p2=
mt, p2ma);
         if ( !rc )
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 05:52:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 05:52:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755746.1164197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3mJ-0000vC-6a; Tue, 09 Jul 2024 05:52:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755746.1164197; Tue, 09 Jul 2024 05:52:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3mJ-0000v5-3d; Tue, 09 Jul 2024 05:52:39 +0000
Received: by outflank-mailman (input) for mailman id 755746;
 Tue, 09 Jul 2024 05:52: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=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR3mI-0000ux-EN
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 05:52:38 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70bc522c-3db7-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 07:52:36 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id A4B8820080;
 Tue,  9 Jul 2024 01:52:34 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 9E3952007F;
 Tue,  9 Jul 2024 01:52:34 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id 3436A2007E;
 Tue,  9 Jul 2024 01:52:30 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70bc522c-3db7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=XClnX1fucT+VwFTgQ97IxE6hD
	9rsLrLAM+I/RpTKDdk=; b=pzvIskrW2rlqtK4reJyEJvmBmnB3HfL7COrkkQvg5
	xqyICbKY66oOZu/4V/Vz06NO4Nk3osUOqrfefD58eXBRhBhJyE9DDvKb2l4UOZEL
	F3WhKaU1gHnejDNTPQcQAnq/0NxFhyO0KeUBDSf0YYROu6A2Zwc7RJ0E5F5XiWIJ
	eo=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Tamas K Lengyel <tamas@tklengyel.com>
Subject: [XEN PATCH v4 04/14] x86: introduce CONFIG_ALTP2M Kconfig option
Date: Tue,  9 Jul 2024 08:52:27 +0300
Message-Id: <914561d1ae92aa84d22785f959a73434a491bdd6.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 6E66B8BE-3DB7-11EF-BD9F-DFF1FEA446E2-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

Add new option to make altp2m code inclusion optional.
Currently altp2m implemented for Intel EPT only, so option is dependant o=
n VMX.
Also the prompt itself depends on EXPERT=3Dy, so that option is available
for fine-tuning, if one want to play around with it.

Use this option instead of more generic CONFIG_HVM option.
That implies the possibility to build hvm code without altp2m support,
hence we need to declare altp2m routines for hvm code to compile successf=
ully
(altp2m_vcpu_initialise(), altp2m_vcpu_destroy(), altp2m_vcpu_enable_ve()=
)

Also guard altp2m routines, so that they can be disabled completely in th=
e
build -- when target platform does not actually support altp2m
(AMD-V & ARM as of now).

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Tamas K Lengyel <tamas@tklengyel.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
changes in v4:
 - move static inline stub for p2m_altp2m_check() from under CONFIG_HVM u=
nder CONFIG_ALTP2M
 - keep AP2MGET_prepopulate/AP2MGET_query under CONFIG_ALTP2M as Jan sugg=
ested
changes in v3:
 - added help text
 - use conditional prompt depending on EXPERT=3Dy
 - corrected & extended patch description
 - put a blank line before #ifdef CONFIG_ALTP2M
 - sqashed in a separate patch for guarding altp2m code with CONFIG_ALTP2=
M option
changes in v2:
 - use separate CONFIG_ALTP2M option instead of CONFIG_VMX
---
 xen/arch/x86/Kconfig               | 11 +++++++++++
 xen/arch/x86/include/asm/altp2m.h  |  5 ++++-
 xen/arch/x86/include/asm/hvm/hvm.h |  2 +-
 xen/arch/x86/include/asm/p2m.h     | 23 ++++++++++++++++++-----
 xen/arch/x86/mm/Makefile           |  2 +-
 5 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 8c9f8431f0..4a35c43dc5 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -358,6 +358,17 @@ config REQUIRE_NX
 	  was unavailable. However, if enabled, Xen will no longer boot on
 	  any CPU which is lacking NX support.
=20
+config ALTP2M
+	bool "Alternate P2M support" if EXPERT
+	default y
+	depends on VMX
+	help
+	  Alternate-p2m allows a guest to manage multiple p2m guest physical
+	  "memory views" (as opposed to a single p2m).
+	  Useful for memory introspection.
+
+	  If unsure, stay with defaults.
+
 endmenu
=20
 source "common/Kconfig"
diff --git a/xen/arch/x86/include/asm/altp2m.h b/xen/arch/x86/include/asm=
/altp2m.h
index c655b8a34e..d498ebcd7c 100644
--- a/xen/arch/x86/include/asm/altp2m.h
+++ b/xen/arch/x86/include/asm/altp2m.h
@@ -7,7 +7,7 @@
 #ifndef __ASM_X86_ALTP2M_H
 #define __ASM_X86_ALTP2M_H
=20
-#ifdef CONFIG_HVM
+#ifdef CONFIG_ALTP2M
=20
 #include <xen/types.h>
 #include <xen/sched.h>         /* for struct vcpu, struct domain */
@@ -43,6 +43,9 @@ static inline uint16_t altp2m_vcpu_idx(const struct vcp=
u *v)
 }
=20
 /* Only declaration is needed. DCE will optimise it out when linking. */
+void altp2m_vcpu_initialise(struct vcpu *v);
+void altp2m_vcpu_destroy(struct vcpu *v);
+int altp2m_vcpu_enable_ve(struct vcpu *v, gfn_t gfn);
 void altp2m_vcpu_disable_ve(struct vcpu *v);
=20
 #endif
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/as=
m/hvm/hvm.h
index 277648dd18..34824af6df 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -670,7 +670,7 @@ static inline bool hvm_hap_supported(void)
 /* returns true if hardware supports alternate p2m's */
 static inline bool hvm_altp2m_supported(void)
 {
-    return hvm_funcs.caps.altp2m;
+    return IS_ENABLED(CONFIG_ALTP2M) && hvm_funcs.caps.altp2m;
 }
=20
 /* Returns true if we have the minimum hardware requirements for nested =
virt */
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2=
m.h
index c1478ffc36..e6de37f108 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -577,7 +577,7 @@ static inline gfn_t mfn_to_gfn(const struct domain *d=
, mfn_t mfn)
         return _gfn(mfn_x(mfn));
 }
=20
-#ifdef CONFIG_HVM
+#ifdef CONFIG_ALTP2M
 #define AP2MGET_prepopulate true
 #define AP2MGET_query false
=20
@@ -589,6 +589,16 @@ static inline gfn_t mfn_to_gfn(const struct domain *=
d, mfn_t mfn)
 int altp2m_get_effective_entry(struct p2m_domain *ap2m, gfn_t gfn, mfn_t=
 *mfn,
                                p2m_type_t *t, p2m_access_t *a,
                                bool prepopulate);
+#else
+static inline int _altp2m_get_effective_entry(struct p2m_domain *ap2m,
+                                             gfn_t gfn, mfn_t *mfn,
+                                             p2m_type_t *t, p2m_access_t=
 *a)
+{
+    ASSERT_UNREACHABLE();
+    return -EOPNOTSUPP;
+}
+#define altp2m_get_effective_entry(ap2m, gfn, mfn, t, a, prepopulate) \
+        _altp2m_get_effective_entry(ap2m, gfn, mfn, t, a)
 #endif
=20
 /* Init the datastructures for later use by the p2m code */
@@ -914,9 +924,6 @@ static inline bool p2m_set_altp2m(struct vcpu *v, uns=
igned int idx)
 /* Switch alternate p2m for a single vcpu */
 bool p2m_switch_vcpu_altp2m_by_id(struct vcpu *v, unsigned int idx);
=20
-/* Check to see if vcpu should be switched to a different p2m. */
-void p2m_altp2m_check(struct vcpu *v, uint16_t idx);
-
 /* Flush all the alternate p2m's for a domain */
 void p2m_flush_altp2m(struct domain *d);
=20
@@ -952,9 +959,15 @@ int p2m_set_altp2m_view_visibility(struct domain *d,=
 unsigned int altp2m_idx,
                                    uint8_t visible);
 #else /* !CONFIG_HVM */
 struct p2m_domain *p2m_get_altp2m(struct vcpu *v);
-static inline void p2m_altp2m_check(struct vcpu *v, uint16_t idx) {}
 #endif /* CONFIG_HVM */
=20
+#ifdef CONFIG_ALTP2M
+/* Check to see if vcpu should be switched to a different p2m. */
+void p2m_altp2m_check(struct vcpu *v, uint16_t idx);
+#else
+static inline void p2m_altp2m_check(struct vcpu *v, uint16_t idx) {}
+#endif
+
 /* p2m access to IOMMU flags */
 static inline unsigned int p2m_access_to_iommu_flags(p2m_access_t p2ma)
 {
diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
index 0128ca7ab6..d7d57b8190 100644
--- a/xen/arch/x86/mm/Makefile
+++ b/xen/arch/x86/mm/Makefile
@@ -1,7 +1,7 @@
 obj-y +=3D shadow/
 obj-$(CONFIG_HVM) +=3D hap/
=20
-obj-$(CONFIG_HVM) +=3D altp2m.o
+obj-$(CONFIG_ALTP2M) +=3D altp2m.o
 obj-$(CONFIG_HVM) +=3D guest_walk_2.o guest_walk_3.o guest_walk_4.o
 obj-$(CONFIG_SHADOW_PAGING) +=3D guest_walk_4.o
 obj-$(CONFIG_MEM_ACCESS) +=3D mem_access.o
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 05:54:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 05:54:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755751.1164209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3oJ-0001T4-KF; Tue, 09 Jul 2024 05:54:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755751.1164209; Tue, 09 Jul 2024 05:54: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 1sR3oJ-0001Sx-FA; Tue, 09 Jul 2024 05:54:43 +0000
Received: by outflank-mailman (input) for mailman id 755751;
 Tue, 09 Jul 2024 05: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=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR3oI-0001So-JW
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 05:54:42 +0000
Received: from pb-smtp2.pobox.com (pb-smtp2.pobox.com [64.147.108.71])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id babed62a-3db7-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 07:54:40 +0200 (CEST)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id E72AB26FC2;
 Tue,  9 Jul 2024 01:54:38 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id CE49926FC1;
 Tue,  9 Jul 2024 01:54:38 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp2.pobox.com (Postfix) with ESMTPSA id 440D226FC0;
 Tue,  9 Jul 2024 01:54:37 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: babed62a-3db7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=DDNDkiZVLdutMBS7Fc+YynLKX
	qz7hyMKSP5XW4Bwk6o=; b=vK63Z7oPVwGdF/tt9S48HYUwtZIToqrBQ/gTC6LCp
	cD3E6pWlaJPcU0y15uIVj/wwocIBvd9hyY7U16TW21sv1c67x7OLJSQHS4U1x/Gz
	itOHJ+P+EMuY6kBLPRgQDkf8raTlzAuYzxTay//o1gelp4QBwR9bvHMJRfByRv2a
	3g=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>
Subject: [XEN PATCH v4 05/14] x86: introduce using_{svm,vmx}() helpers
Date: Tue,  9 Jul 2024 08:54:34 +0300
Message-Id: <d730b06b851d5c502850509d4cf868ed618d10d8.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 B98AD47E-3DB7-11EF-8880-965B910A682E-90055647!pb-smtp2.pobox.com
Content-Transfer-Encoding: quoted-printable

As we now have SVM/VMX config options for enabling/disabling these featur=
es
completely in the build, we need some build-time checks to ensure that vm=
x/svm
code can be used and things compile. Macros cpu_has_{svm,vmx} used to be =
doing
such checks at runtime, however they do not check if SVM/VMX support is
enabled in the build.

Also cpu_has_{svm,vmx} can potentially be called from non-{VMX,SVM} build
yet running on {VMX,SVM}-enabled CPU, so would correctly indicate that VM=
X/SVM
is indeed supported by CPU, but code to drive it can't be used.

New routines using_{vmx,svm}() indicate that both CPU _and_ build provide
corresponding technology support, while cpu_has_{vmx,svm} still remains f=
or
informational runtime purpose, just as their naming suggests.

These new helpers are used right away in several sites, namely guard call=
s to
start_nested_{svm,vmx} and start_{svm,vmx} to fix a build when VMX=3Dn or=
 SVM=3Dn.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v4:
 - make using_{vmx,svm} static inline functions instead of macros
 - squash patch with 2 other patches where using_{vmx,svm} are being used
 - changed patch description
changes in v3:
 - introduce separate macros instead of modifying behaviour of cpu_has_{v=
mx,svm}
---
 xen/arch/x86/hvm/hvm.c             |  4 ++--
 xen/arch/x86/hvm/nestedhvm.c       |  4 ++--
 xen/arch/x86/include/asm/hvm/hvm.h | 10 ++++++++++
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7f4b627b1f..057c61b4c3 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -155,9 +155,9 @@ static int __init cf_check hvm_enable(void)
 {
     const struct hvm_function_table *fns =3D NULL;
=20
-    if ( cpu_has_vmx )
+    if ( using_vmx() )
         fns =3D start_vmx();
-    else if ( cpu_has_svm )
+    else if ( using_svm() )
         fns =3D start_svm();
=20
     if ( fns =3D=3D NULL )
diff --git a/xen/arch/x86/hvm/nestedhvm.c b/xen/arch/x86/hvm/nestedhvm.c
index 451c4da6d4..5009167372 100644
--- a/xen/arch/x86/hvm/nestedhvm.c
+++ b/xen/arch/x86/hvm/nestedhvm.c
@@ -155,9 +155,9 @@ static int __init cf_check nestedhvm_setup(void)
      * done, so that if (for example) HAP is disabled, nested virt is
      * disabled as well.
      */
-    if ( cpu_has_vmx )
+    if ( using_vmx() )
         start_nested_vmx(&hvm_funcs);
-    else if ( cpu_has_svm )
+    else if ( using_svm() )
         start_nested_svm(&hvm_funcs);
=20
     return 0;
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/as=
m/hvm/hvm.h
index 34824af6df..2927a2ad6c 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -363,6 +363,16 @@ int hvm_copy_context_and_params(struct domain *dst, =
struct domain *src);
=20
 int hvm_get_param(struct domain *d, uint32_t index, uint64_t *value);
=20
+static inline bool using_vmx(void)
+{
+    return IS_ENABLED(CONFIG_VMX) && cpu_has_vmx;
+}
+
+static inline bool using_svm(void)
+{
+    return IS_ENABLED(CONFIG_SVM) && cpu_has_svm;
+}
+
 #ifdef CONFIG_HVM
=20
 #define hvm_get_guest_tsc(v) hvm_get_guest_tsc_fixed(v, 0)
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 05:56:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 05:56:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755763.1164219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3qL-00029M-Uc; Tue, 09 Jul 2024 05:56:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755763.1164219; Tue, 09 Jul 2024 05: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 1sR3qL-00029F-QF; Tue, 09 Jul 2024 05:56:49 +0000
Received: by outflank-mailman (input) for mailman id 755763;
 Tue, 09 Jul 2024 05: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=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR3qK-0001zP-Bp
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 05:56:48 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0654c391-3db8-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 07:56:47 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id BF69D200AB;
 Tue,  9 Jul 2024 01:56:45 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id B7167200AA;
 Tue,  9 Jul 2024 01:56:45 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id 51580200A9;
 Tue,  9 Jul 2024 01:56:42 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0654c391-3db8-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=PZhVY9LIzVXZ4htpEIfnL3NvI
	7Nfr1WjFpp0WOKYq8E=; b=pmcakE4hRD2kxNMVBqE88T7zF3Oc3gMwA9E8EtXMV
	hINC87/+j6Dqzi4vGCD/RXy1IP4QoZzX5V+nxvrpOPO+RgHvzfkvcavrzjP8UDDl
	a/HEdbUuuh607wEPbKtEmJvvPSuTAyvEPBBM3bAIHwi42srmVleGho8UKkN4rtJ4
	cY=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v4 06/14] x86/p2m: guard EPT functions with using_vmx() check
Date: Tue,  9 Jul 2024 08:56:38 +0300
Message-Id: <d51ae897890ec01de70c44d15450e888f84d34c4.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 04140D3A-3DB8-11EF-A90D-DFF1FEA446E2-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

Replace cpu_has_vmx check with using_vmx(), so that we do check if functi=
ons
ept_p2m_init() and ept_p2m_uninit() can be called.
Since currently Intel EPT implementation depends on CONFIG_VMX config opt=
ion,
when VMX is off these functions are unavailable.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v4:
 - changed description a bit
 - added tag
 - adjusted call to using_vmx(), as it has become an inline function
changes in v3:
 - using_vmx instead of IS_ENABLED(CONFIG_VMX)
 - updated description
---
 xen/arch/x86/mm/p2m-basic.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/mm/p2m-basic.c b/xen/arch/x86/mm/p2m-basic.c
index 08007a687c..e126fda267 100644
--- a/xen/arch/x86/mm/p2m-basic.c
+++ b/xen/arch/x86/mm/p2m-basic.c
@@ -40,7 +40,7 @@ static int p2m_initialise(struct domain *d, struct p2m_=
domain *p2m)
     p2m_pod_init(p2m);
     p2m_nestedp2m_init(p2m);
=20
-    if ( hap_enabled(d) && cpu_has_vmx )
+    if ( hap_enabled(d) && using_vmx() )
         ret =3D ept_p2m_init(p2m);
     else
         p2m_pt_init(p2m);
@@ -72,7 +72,7 @@ struct p2m_domain *p2m_init_one(struct domain *d)
 void p2m_free_one(struct p2m_domain *p2m)
 {
     p2m_free_logdirty(p2m);
-    if ( hap_enabled(p2m->domain) && cpu_has_vmx )
+    if ( hap_enabled(p2m->domain) && using_vmx() )
         ept_p2m_uninit(p2m);
     free_cpumask_var(p2m->dirty_cpumask);
     xfree(p2m);
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 05:59:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 05:59:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755769.1164228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3sR-00036Z-7n; Tue, 09 Jul 2024 05:58:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755769.1164228; Tue, 09 Jul 2024 05: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 1sR3sR-00036S-4l; Tue, 09 Jul 2024 05:58:59 +0000
Received: by outflank-mailman (input) for mailman id 755769;
 Tue, 09 Jul 2024 05:58: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=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR3sP-000356-K6
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 05:58:57 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 525da89d-3db8-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 07:58:55 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id E440138271;
 Tue,  9 Jul 2024 01:58:52 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id DBCFC38270;
 Tue,  9 Jul 2024 01:58:52 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id A41F03826E;
 Tue,  9 Jul 2024 01:58:48 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 525da89d-3db8-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=+Yl11oadxrSru19AkHHp51vGZ
	ym9OE6VsrHHN87lIL4=; b=QQuqpJfnKq+IF2Lu8XKoD6G+RFzkILLwFW8YgiNXz
	rEbYCNUOUvcXDsI9X1iWsaV8moErdio4QYW6ZMmGOvIuI5tVRqli5h4cm1RYgZFg
	LN1plZNT+/S172eM0+xcl2EQQMJ7epAP5GEmCJ79g+gxNOyEpEs2aIoLKqIvjNfI
	VE=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v4 07/14] x86/traps: guard vmx specific functions with usinc_vmx() check
Date: Tue,  9 Jul 2024 08:58:45 +0300
Message-Id: <5c90e9fcffca0e730c8488935028e6cd6ab917c4.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 4F6271FA-3DB8-11EF-BF52-C38742FD603B-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

Replace cpu_has_vmx check with using_vmx(), so that not only VMX support =
in CPU
is being checked at runtime, but also at build time we ensure the availab=
ility
of functions vmx_vmcs_enter() & vmx_vmcs_exit().

Also since CONFIG_VMX is checked in using_vmx and it depends on CONFIG_HV=
M,
we can drop #ifdef CONFIG_HVM lines around using_vmx.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v4:
 - adjusted call to using_vmx(), as it has become an inline function
 - added tag
 - description changed a bit for more clarity
changes in v3:
 -using_vmx instead of IS_ENABLED(CONFIG_VMX)
 - updated description
---
 xen/arch/x86/traps.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index ee91fc56b1..d2af6d70d2 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -676,7 +676,6 @@ void vcpu_show_execution_state(struct vcpu *v)
=20
     vcpu_pause(v); /* acceptably dangerous */
=20
-#ifdef CONFIG_HVM
     /*
      * For VMX special care is needed: Reading some of the register stat=
e will
      * require VMCS accesses. Engaging foreign VMCSes involves acquiring=
 of a
@@ -684,12 +683,11 @@ void vcpu_show_execution_state(struct vcpu *v)
      * region. Despite this being a layering violation, engage the VMCS =
right
      * here. This then also avoids doing so several times in close succe=
ssion.
      */
-    if ( cpu_has_vmx && is_hvm_vcpu(v) )
+    if ( using_vmx() && is_hvm_vcpu(v) )
     {
         ASSERT(!in_irq());
         vmx_vmcs_enter(v);
     }
-#endif
=20
     /* Prevent interleaving of output. */
     flags =3D console_lock_recursive_irqsave();
@@ -714,10 +712,8 @@ void vcpu_show_execution_state(struct vcpu *v)
         console_unlock_recursive_irqrestore(flags);
     }
=20
-#ifdef CONFIG_HVM
-    if ( cpu_has_vmx && is_hvm_vcpu(v) )
+    if ( using_vmx() && is_hvm_vcpu(v) )
         vmx_vmcs_exit(v);
-#endif
=20
     vcpu_unpause(v);
 }
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:01:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:01:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755776.1164238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3uT-0004lU-Lw; Tue, 09 Jul 2024 06:01:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755776.1164238; Tue, 09 Jul 2024 06:01:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3uT-0004lN-JK; Tue, 09 Jul 2024 06:01:05 +0000
Received: by outflank-mailman (input) for mailman id 755776;
 Tue, 09 Jul 2024 06:01: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=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR3uS-0004lH-Uf
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:01:04 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9dbf5e01-3db8-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 08:01:01 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id AE848382B5;
 Tue,  9 Jul 2024 02:00:59 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id A7047382B4;
 Tue,  9 Jul 2024 02:00:59 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id 40C5A382B3;
 Tue,  9 Jul 2024 02:00:56 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9dbf5e01-3db8-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=HOwAYjPRmMki8TMFevxWhhW05
	eW/GeGVd0EhWHsG0rw=; b=OgOMcdEHMLni2UJHhjuqploQhRzpi1kzlV7zhN5Ws
	1nmsFG4xBaYSKWmi9C0J7khuFcHzJYxgHdq83JqePHikXd3uYvKBeZRaF0nYC9b4
	euvLXKqBJ3JklZM1FZSxMp79yyIg27HCv1YVoBpSsLRSO0h91tpHs0PRkJJkHo6A
	SM=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v4 08/14] x86/PV: guard svm specific functions with usinc_svm() check
Date: Tue,  9 Jul 2024 09:00:52 +0300
Message-Id: <d637fa54d982251ff031c5d99f0e22aad561e015.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 9B6FE0D2-3DB8-11EF-8CCD-C38742FD603B-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

Replace cpu_has_svm check with using_svm(), so that not only SVM support =
in CPU
is being checked at runtime, but also at build time we ensure the availab=
ility
of functions svm_load_segs() and svm_load_segs_prefetch().

Since SVM depends on HVM, it can be used alone.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v4:
 - changed patch subject line
 - adjusted call to using_svm(), as it has become an inline function
 - use #ifdef CONFIG_PV
 - description changed a bit for more clarity
 - added tag
changes in v3:
 - using_svm instead of IS_ENABLED(CONFIG_SVM)
 - updated description
---
 xen/arch/x86/domain.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index ccadfe0c9e..05cb9f7a4c 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1732,11 +1732,9 @@ static void load_segments(struct vcpu *n)
         if ( !(n->arch.flags & TF_kernel_mode) )
             SWAP(gsb, gss);
=20
-#ifdef CONFIG_HVM
-        if ( cpu_has_svm && (uregs->fs | uregs->gs) <=3D 3 )
+        if ( using_svm() && (uregs->fs | uregs->gs) <=3D 3 )
             fs_gs_done =3D svm_load_segs(n->arch.pv.ldt_ents, LDT_VIRT_S=
TART(n),
                                        n->arch.pv.fs_base, gsb, gss);
-#endif
     }
=20
     if ( !fs_gs_done )
@@ -2049,9 +2047,9 @@ static void __context_switch(void)
=20
     write_ptbase(n);
=20
-#if defined(CONFIG_PV) && defined(CONFIG_HVM)
+#ifdef CONFIG_PV
     /* Prefetch the VMCB if we expect to use it later in the context swi=
tch */
-    if ( cpu_has_svm && is_pv_64bit_domain(nd) && !is_idle_domain(nd) )
+    if ( using_svm() && is_pv_64bit_domain(nd) && !is_idle_domain(nd) )
         svm_load_segs_prefetch();
 #endif
=20
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:01:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:01:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755780.1164247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3v2-0005Dt-Tv; Tue, 09 Jul 2024 06:01:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755780.1164247; Tue, 09 Jul 2024 06:01:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3v2-0005Dm-RO; Tue, 09 Jul 2024 06:01:40 +0000
Received: by outflank-mailman (input) for mailman id 755780;
 Tue, 09 Jul 2024 06:01: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR3v1-0005CI-K0
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:01:39 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4228098-3db8-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 08:01:37 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52e9f863c46so5085125e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 23:01: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
 d2e1a72fcca58-70b4396841esm911966b3a.132.2024.07.08.23.01.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 23:01: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: b4228098-3db8-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720504897; x=1721109697; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2/oDrPjYTRtL4CaFzN35PxxO+aFEvs4QyrW41Ac2CO8=;
        b=RSXLG3Y+Wm6QG8zCiGdbUtlHKECmMSQMDy3WLI2Hq9tQS6NWc+oY1zefRaCZGtFnMA
         CeYjLPxFyuiHcdODoA9WnQPSltP7WtsFYxzGJMQHYL04GHVFfYLDFOUSg4NsX05bc9YC
         Jwz9/xMA0vkEKPZ7Utcf+HB56/E1dvYNyBrJTEORLmkexxs6zSu1osrGgoYAnsGAI6rw
         WY8XwEJ8HfouhEzZFpJu4rUy2Mpec4QT6LNYMZLr/DoYSWQH1Prc04cduh/iwbnaFygA
         A6KwOBOvrOtQGQtfnVchaI4tzLHThl8HuBatFRPnqGSm8OJCLRUyshB4dVThAHTbS6sO
         IieQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720504897; x=1721109697;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2/oDrPjYTRtL4CaFzN35PxxO+aFEvs4QyrW41Ac2CO8=;
        b=Uh9Y9Z+x0oRGWu2qRuHj77IALTBWEpw76Fwuql1RupMAkaBeREDR2FB20k+fw3WNI5
         yeC2vK8qf0nZBQy9tGdo/iIo8zJ6GvR/sS4MgBYut2zLmOPkaJVzospG0uzJE/4AGiQW
         xlw4dHlX+otTH2c64I9dZIC5/4hfyVkMeWsaBv3iGmvsUQLk8EtcDubNQ1kXRStidVFi
         OkcbEiBjORVpFeR1WztLFUEotble1KQcGfSWNgskkVNZFNWRDrd3IxphN3bX190CTipm
         rBgj0KsHESfsTHEtjV3CJxB3e+zLNgd+f+o3P5EDGOK0SnyG3U9JaZ7MOr+zonqt2ReJ
         bl0Q==
X-Forwarded-Encrypted: i=1; AJvYcCVJBLpwzp9q4+vlOCICQ85JA3MOmM2nacZCEdgTWIvT3h4UrTlKPDGgPSzjB7voroiJzY47dWdSMwIYDUWKcKAKPSi/RHQCErKBmdzTMC4=
X-Gm-Message-State: AOJu0YxGfEx0kzPGu4+B3tnZ1xJxWBgxhy6E27pacxdNxincPEmhH6ub
	apOKjmohOnTI2gf1nuoavIUv1YSf7ZB2zlZdwlxPIRwHQTa/0FTMkrHVqmtrHg==
X-Google-Smtp-Source: AGHT+IHBPQ9uHFuBP+cxx+Qjzu9OQ9TQKiU6Iy0lPJRneRIaGKC0kI4W34IZ+6n6VtyIVpGkdiCm6Q==
X-Received: by 2002:a05:6512:3190:b0:52c:8a39:83d7 with SMTP id 2adb3069b0e04-52eb99d15c2mr904412e87.52.1720504896303;
        Mon, 08 Jul 2024 23:01:36 -0700 (PDT)
Message-ID: <ce036655-b947-4591-93e3-44e87b44e9f2@suse.com>
Date: Tue, 9 Jul 2024 08:01:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 1/7] xen/pci: Add hypercall to support reset of
 pcidev
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-2-Jiqian.Chen@amd.com>
 <3b2c9019-b907-44d0-b767-315f7d42a2a1@suse.com>
 <BL1PR12MB5849A3D071213C5CA8BE5F1AE7DB2@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: <BL1PR12MB5849A3D071213C5CA8BE5F1AE7DB2@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 04:47, Chen, Jiqian wrote:
> On 2024/7/8 22:56, Jan Beulich wrote:
>> On 08.07.2024 13:41, Jiqian Chen wrote:
>>> When a device has been reset on dom0 side, the Xen hypervisor
>>> doesn't get notification, so the cached state in vpci is all
>>> out of date compare with the real device state.
>>>
>>> To solve that problem, add a new hypercall to support the reset
>>> of pcidev and clear the vpci state of device. So that once the
>>> state of device is reset on dom0 side, dom0 can call this
>>> hypercall to notify hypervisor.
>>>
>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>>> Signed-off-by: Huang Rui <ray.huang@amd.com>
>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>>> Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> Thank you very much!
> 
>>
>> Just to double check: You're sure the other two R-b are still applicable,
>> despite the various changes that have been made?
> Will remove in next version.
> 
>>
>> As a purely cosmetic remark: I think I would have preferred if the new
>> identifiers didn't have "state" as a part; I simply don't think this adds
>> much value, while at the same time making these pretty long.
> Do you mean: remove "state" identifier on all the new codes?

"part of identifiers", yes. As that's a personal view, I wouldn't insist
though, unless others shared my perspective.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:03:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:03:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755785.1164258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3wV-0005ru-9A; Tue, 09 Jul 2024 06:03:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755785.1164258; Tue, 09 Jul 2024 06:03: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 1sR3wV-0005rn-5o; Tue, 09 Jul 2024 06:03:11 +0000
Received: by outflank-mailman (input) for mailman id 755785;
 Tue, 09 Jul 2024 06:03:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR3wT-0005rf-QZ
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:03:09 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e94b1161-3db8-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 08:03:07 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 5DD02382C9;
 Tue,  9 Jul 2024 02:03:06 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 569B1382C8;
 Tue,  9 Jul 2024 02:03:06 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id CBAA8382C7;
 Tue,  9 Jul 2024 02:03:02 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e94b1161-3db8-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=/ajn3Y23Ptep8PMnKlNl2X5Wf
	quTjK0FGfT5lFyKeSU=; b=cKDph/I4smSuMAgl6eivDKUxkZIpd0HJQoFd9wgyo
	YVklYn9fy2wtRlTcENA+yLICYrq1kRrcd/kCPHFRy2bo2Y/5PWzM7/TDpwRM1JC3
	NCLuAC5jleS9x6SjdrXPbiu8lcxbrvMWLUBQ+5zZygqbv2Z0zw/xZhfi5oLvu0bn
	Ko=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v4 09/14] x86/oprofile: guard svm specific symbols with CONFIG_SVM
Date: Tue,  9 Jul 2024 09:02:59 +0300
Message-Id: <3f78143694a9cb530743b438af1d7336820a7d9a.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 E6E08580-3DB8-11EF-805F-C38742FD603B-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

The symbol svm_stgi_label is AMD-V specific so guard its usage in common =
code
with CONFIG_SVM.

Since SVM depends on HVM, it can be used alone.
Also, use #ifdef instead of #if.

No functional change intended.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/oprofile/op_model_athlon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/oprofile/op_model_athlon.c b/xen/arch/x86/oprof=
ile/op_model_athlon.c
index 69fd3fcc86..a9c7b87d67 100644
--- a/xen/arch/x86/oprofile/op_model_athlon.c
+++ b/xen/arch/x86/oprofile/op_model_athlon.c
@@ -320,7 +320,7 @@ static int cf_check athlon_check_ctrs(
 	struct vcpu *v =3D current;
 	unsigned int const nr_ctrs =3D model->num_counters;
=20
-#if CONFIG_HVM
+#ifdef CONFIG_SVM
 	struct cpu_user_regs *guest_regs =3D guest_cpu_user_regs();
=20
 	if (!guest_mode(regs) &&
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:05:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:05:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755790.1164267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR3yU-0006QN-Gv; Tue, 09 Jul 2024 06:05:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755790.1164267; Tue, 09 Jul 2024 06: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 1sR3yU-0006QG-EL; Tue, 09 Jul 2024 06:05:14 +0000
Received: by outflank-mailman (input) for mailman id 755790;
 Tue, 09 Jul 2024 06:05:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR3yT-0006QA-Dm
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:05:13 +0000
Received: from pb-smtp1.pobox.com (pb-smtp1.pobox.com [64.147.108.70])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3343987d-3db9-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 08:05:11 +0200 (CEST)
Received: from pb-smtp1.pobox.com (unknown [127.0.0.1])
 by pb-smtp1.pobox.com (Postfix) with ESMTP id 5709B30741;
 Tue,  9 Jul 2024 02:05:10 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1])
 by pb-smtp1.pobox.com (Postfix) with ESMTP id 32CDC3073F;
 Tue,  9 Jul 2024 02:05:10 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp1.pobox.com (Postfix) with ESMTPSA id C77923073E;
 Tue,  9 Jul 2024 02:05:08 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3343987d-3db9-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=12DIvQiBfqGFazgmM9pTjg4zu
	CqQ6Op0Vdv30NEs9yM=; b=AsYC1/OeblPfeB6upecBtN3IyBi2DMwkVMDZuT8wd
	s3EbSTSfgadk8uISrs6yhGK5OA2FOU6nOJv/toyg3eLI+Ce5RTZu/YwWM3BK82BX
	B/VIkQAXumVfdFLQkn6i02qhthgSnubgc4PHSlVucB7UWTMGEeOl07Rm4sGKJlfP
	KM=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [XEN PATCH v4 10/14] x86/vmx: guard access to cpu_has_vmx_* in common code
Date: Tue,  9 Jul 2024 09:05:06 +0300
Message-Id: <668355271f01681070cb15f67af1538104bfc651.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 31FD8298-3DB9-11EF-AE25-5B6DE52EC81B-90055647!pb-smtp1.pobox.com
Content-Transfer-Encoding: quoted-printable

There're several places in common code, outside of arch/x86/hvm/vmx,
where cpu_has_vmx_* get accessed without checking whether VMX supported f=
irst.
These macros rely on global variables defined in vmx code, so when VMX su=
pport
is disabled accesses to these variables turn into build failures.

To overcome these failures, build-time check is done before accessing glo=
bal
variables, so that DCE would remove these variables.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v4:
 - use IS_ENABLED(CONFIG_VMX) instead of using_vmx
changes in v3:
 - using_vmx instead of cpu_has_vmx
 - clarify description on why this change needed
changes in v2:
 - do not touch SVM code and macros
 - drop vmx_ctrl_has_feature()
 - guard cpu_has_vmx_* macros in common code instead
---
 xen/arch/x86/hvm/hvm.c                  |  2 +-
 xen/arch/x86/hvm/viridian/viridian.c    |  4 ++--
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 17 +++++++++++------
 xen/arch/x86/traps.c                    |  5 +++--
 4 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 057c61b4c3..be4d8ddfe7 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5197,7 +5197,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
     {
         case XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_ON:
         case XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_OFF:
-            if ( !cpu_has_monitor_trap_flag )
+            if ( !IS_ENABLED(CONFIG_VMX) || !cpu_has_monitor_trap_flag )
                 return -EOPNOTSUPP;
             break;
         default:
diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viri=
dian/viridian.c
index 0496c52ed5..6f13ecf343 100644
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -196,7 +196,7 @@ void cpuid_viridian_leaves(const struct vcpu *v, uint=
32_t leaf,
         res->a =3D CPUID4A_RELAX_TIMER_INT;
         if ( viridian_feature_mask(d) & HVMPV_hcall_remote_tlb_flush )
             res->a |=3D CPUID4A_HCALL_REMOTE_TLB_FLUSH;
-        if ( !cpu_has_vmx_apic_reg_virt )
+        if ( !IS_ENABLED(CONFIG_VMX) || !cpu_has_vmx_apic_reg_virt )
             res->a |=3D CPUID4A_MSR_BASED_APIC;
         if ( viridian_feature_mask(d) & HVMPV_hcall_ipi )
             res->a |=3D CPUID4A_SYNTHETIC_CLUSTER_IPI;
@@ -236,7 +236,7 @@ void cpuid_viridian_leaves(const struct vcpu *v, uint=
32_t leaf,
=20
     case 6:
         /* Detected and in use hardware features. */
-        if ( cpu_has_vmx_virtualize_apic_accesses )
+        if ( IS_ENABLED(CONFIG_VMX) && cpu_has_vmx_virtualize_apic_acces=
ses )
             res->a |=3D CPUID6A_APIC_OVERLAY;
         if ( cpu_has_vmx_msr_bitmap || (read_efer() & EFER_SVME) )
             res->a |=3D CPUID6A_MSR_BITMAPS;
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/inclu=
de/asm/hvm/vmx/vmcs.h
index 58140af691..7421453899 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -306,7 +306,8 @@ extern u64 vmx_ept_vpid_cap;
 #define cpu_has_vmx_vnmi \
     (vmx_pin_based_exec_control & PIN_BASED_VIRTUAL_NMIS)
 #define cpu_has_vmx_msr_bitmap \
-    (vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_MSR_BITMAP)
+    (IS_ENABLED(CONFIG_VMX) && \
+     vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_MSR_BITMAP)
 #define cpu_has_vmx_secondary_exec_control \
     (vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CONTROLS)
 #define cpu_has_vmx_tertiary_exec_control \
@@ -316,7 +317,8 @@ extern u64 vmx_ept_vpid_cap;
 #define cpu_has_vmx_dt_exiting \
     (vmx_secondary_exec_control & SECONDARY_EXEC_DESCRIPTOR_TABLE_EXITIN=
G)
 #define cpu_has_vmx_rdtscp \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_RDTSCP)
+    (IS_ENABLED(CONFIG_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_RDTSCP)
 #define cpu_has_vmx_vpid \
     (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_VPID)
 #define cpu_has_monitor_trap_flag \
@@ -333,7 +335,8 @@ extern u64 vmx_ept_vpid_cap;
 #define cpu_has_vmx_ple \
     (vmx_secondary_exec_control & SECONDARY_EXEC_PAUSE_LOOP_EXITING)
 #define cpu_has_vmx_invpcid \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_INVPCID)
+    (IS_ENABLED(CONFIG_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_INVPCID)
 #define cpu_has_vmx_apic_reg_virt \
     (vmx_secondary_exec_control & SECONDARY_EXEC_APIC_REGISTER_VIRT)
 #define cpu_has_vmx_virtual_intr_delivery \
@@ -347,14 +350,16 @@ extern u64 vmx_ept_vpid_cap;
 #define cpu_has_vmx_vmfunc \
     (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_VM_FUNCTIONS)
 #define cpu_has_vmx_virt_exceptions \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_VIRT_EXCEPTIONS)
+    (IS_ENABLED(CONFIG_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_VIRT_EXCEPTIONS)
 #define cpu_has_vmx_pml \
     (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_PML)
 #define cpu_has_vmx_mpx \
-    ((vmx_vmexit_control & VM_EXIT_CLEAR_BNDCFGS) && \
+    (IS_ENABLED(CONFIG_VMX) && (vmx_vmexit_control & VM_EXIT_CLEAR_BNDCF=
GS) && \
      (vmx_vmentry_control & VM_ENTRY_LOAD_BNDCFGS))
 #define cpu_has_vmx_xsaves \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_XSAVES)
+    (IS_ENABLED(CONFIG_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_XSAVES)
 #define cpu_has_vmx_tsc_scaling \
     (vmx_secondary_exec_control & SECONDARY_EXEC_TSC_SCALING)
 #define cpu_has_vmx_bus_lock_detection \
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index d2af6d70d2..27115712a4 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1130,7 +1130,7 @@ void cpuid_hypervisor_leaves(const struct vcpu *v, =
uint32_t leaf,
         if ( !is_hvm_domain(d) || subleaf !=3D 0 )
             break;
=20
-        if ( cpu_has_vmx_apic_reg_virt )
+        if ( IS_ENABLED(CONFIG_VMX) && cpu_has_vmx_apic_reg_virt )
             res->a |=3D XEN_HVM_CPUID_APIC_ACCESS_VIRT;
=20
         /*
@@ -1139,7 +1139,8 @@ void cpuid_hypervisor_leaves(const struct vcpu *v, =
uint32_t leaf,
          * and wrmsr in the guest will run without VMEXITs (see
          * vmx_vlapic_msr_changed()).
          */
-        if ( cpu_has_vmx_virtualize_x2apic_mode &&
+        if ( IS_ENABLED(CONFIG_VMX) &&
+             cpu_has_vmx_virtualize_x2apic_mode &&
              cpu_has_vmx_apic_reg_virt &&
              cpu_has_vmx_virtual_intr_delivery )
             res->a |=3D XEN_HVM_CPUID_X2APIC_VIRT;
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:07:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:07:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755802.1164277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR40Y-0007Iw-ST; Tue, 09 Jul 2024 06:07:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755802.1164277; Tue, 09 Jul 2024 06: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 1sR40Y-0007Ip-Pk; Tue, 09 Jul 2024 06:07:22 +0000
Received: by outflank-mailman (input) for mailman id 755802;
 Tue, 09 Jul 2024 06: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=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR40X-0007IQ-0t
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:07:21 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ed20419-3db9-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 08:07:19 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 0F0EC382F9;
 Tue,  9 Jul 2024 02:07:17 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 06B85382F8;
 Tue,  9 Jul 2024 02:07:17 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id 95033382F7;
 Tue,  9 Jul 2024 02:07:13 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ed20419-3db9-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=9MUbn1fRlgry16ZYW2HGE8mSd
	PK82agq4/JnQRvpvls=; b=UkNSmdVD/CbmJRUkXzQTF2PhCdlKnW/vjFYnyQRst
	Vcse+Qx8VTrRFn2f+T/yriogwO3gEg/n7Nfh/co/VEbcN/v5+8a25+XOMALVEkTx
	e2JwBXuN9zfnMwmHkFhzqBgiEhqEAzKIJt0gTkfzLxCmritnAUOB7E9QY7H84sQI
	PA=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>
Subject: [XEN PATCH v4 11/14] x86/vpmu: guard calls to vmx/svm functions
Date: Tue,  9 Jul 2024 09:07:10 +0300
Message-Id: <81999eb47b590afe3b269c33f7d166c9882cafdc.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 7C59892C-3DB9-11EF-92DA-C38742FD603B-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

If VMX/SVM disabled in the build, we may still want to have vPMU drivers =
for
PV guests. Yet in such case before using VMX/SVM features and functions w=
e have
to explicitly check if they're available in the build. For this purpose
(and also not to complicate conditionals) two helpers introduced --
is_{vmx,svm}_vcpu(v) that check both HVM & VMX/SVM conditions at the same=
 time,
and they replace is_hvm_vcpu(v) macro where needed.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
---
changes in v4:
 - use IS_ENABLED(CONFIG_{VMX,SVM}) instead of using_{vmx,svm}
 - fix typo
changes in v3:
 - introduced macro is_{vmx,svm}_vcpu(v)
 - changed description
 - reordered patch, do not modify conditionals w/ cpu_has_vmx_msr_bitmap =
check
---
 xen/arch/x86/cpu/vpmu_amd.c   |  9 +++++----
 xen/arch/x86/cpu/vpmu_intel.c | 16 +++++++++-------
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c
index 97e6315bd9..977c2f1e73 100644
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -27,6 +27,7 @@
 #define is_pmu_enabled(msr) ((msr) & (1ULL << MSR_F10H_EVNTSEL_EN_SHIFT)=
)
 #define set_guest_mode(msr) ((msr) |=3D (1ULL << MSR_F10H_EVNTSEL_GO_SHI=
FT))
 #define is_overflowed(msr) (!((msr) & (1ULL << (MSR_F10H_COUNTER_LENGTH =
- 1))))
+#define is_svm_vcpu(v) (IS_ENABLED(CONFIG_SVM) && is_hvm_vcpu(v))
=20
 static unsigned int __read_mostly num_counters;
 static const u32 __read_mostly *counters;
@@ -289,7 +290,7 @@ static int cf_check amd_vpmu_save(struct vcpu *v,  bo=
ol to_guest)
=20
     context_save(v);
=20
-    if ( !vpmu_is_set(vpmu, VPMU_RUNNING) && is_hvm_vcpu(v) &&
+    if ( !vpmu_is_set(vpmu, VPMU_RUNNING) && is_svm_vcpu(v) &&
          is_msr_bitmap_on(vpmu) )
         amd_vpmu_unset_msr_bitmap(v);
=20
@@ -363,7 +364,7 @@ static int cf_check amd_vpmu_do_wrmsr(unsigned int ms=
r, uint64_t msr_content)
             return 0;
         vpmu_set(vpmu, VPMU_RUNNING);
=20
-        if ( is_hvm_vcpu(v) && is_msr_bitmap_on(vpmu) )
+        if ( is_svm_vcpu(v) && is_msr_bitmap_on(vpmu) )
              amd_vpmu_set_msr_bitmap(v);
     }
=20
@@ -372,7 +373,7 @@ static int cf_check amd_vpmu_do_wrmsr(unsigned int ms=
r, uint64_t msr_content)
         (is_pmu_enabled(msr_content) =3D=3D 0) && vpmu_is_set(vpmu, VPMU=
_RUNNING) )
     {
         vpmu_reset(vpmu, VPMU_RUNNING);
-        if ( is_hvm_vcpu(v) && is_msr_bitmap_on(vpmu) )
+        if ( is_svm_vcpu(v) && is_msr_bitmap_on(vpmu) )
              amd_vpmu_unset_msr_bitmap(v);
         release_pmu_ownership(PMU_OWNER_HVM);
     }
@@ -415,7 +416,7 @@ static void cf_check amd_vpmu_destroy(struct vcpu *v)
 {
     struct vpmu_struct *vpmu =3D vcpu_vpmu(v);
=20
-    if ( is_hvm_vcpu(v) && is_msr_bitmap_on(vpmu) )
+    if ( is_svm_vcpu(v) && is_msr_bitmap_on(vpmu) )
         amd_vpmu_unset_msr_bitmap(v);
=20
     xfree(vpmu->context);
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.=
c
index cd414165df..db35d22aaf 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -54,6 +54,8 @@
 #define MSR_PMC_ALIAS_MASK       (~(MSR_IA32_PERFCTR0 ^ MSR_IA32_A_PERFC=
TR0))
 static bool __read_mostly full_width_write;
=20
+#define is_vmx_vcpu(v) (IS_ENABLED(CONFIG_VMX) && is_hvm_vcpu(v))
+
 /*
  * MSR_CORE_PERF_FIXED_CTR_CTRL contains the configuration of all fixed
  * counters. 4 bits for every counter.
@@ -269,7 +271,7 @@ static inline void __core2_vpmu_save(struct vcpu *v)
     if ( !is_hvm_vcpu(v) )
         rdmsrl(MSR_CORE_PERF_GLOBAL_STATUS, core2_vpmu_cxt->global_statu=
s);
     /* Save MSR to private context to make it fork-friendly */
-    else if ( mem_sharing_enabled(v->domain) )
+    else if ( is_vmx_vcpu(v) && mem_sharing_enabled(v->domain) )
         vmx_read_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL,
                            &core2_vpmu_cxt->global_ctrl);
 }
@@ -333,7 +335,7 @@ static inline void __core2_vpmu_load(struct vcpu *v)
         wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, core2_vpmu_cxt->global_ctrl);
     }
     /* Restore MSR from context when used with a fork */
-    else if ( mem_sharing_is_fork(v->domain) )
+    else if ( is_vmx_vcpu(v) && mem_sharing_is_fork(v->domain) )
         vmx_write_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL,
                             core2_vpmu_cxt->global_ctrl);
 }
@@ -442,7 +444,7 @@ static int cf_check core2_vpmu_alloc_resource(struct =
vcpu *v)
     if ( !acquire_pmu_ownership(PMU_OWNER_HVM) )
         return 0;
=20
-    if ( is_hvm_vcpu(v) )
+    if ( is_vmx_vcpu(v) )
     {
         if ( vmx_add_host_load_msr(v, MSR_CORE_PERF_GLOBAL_CTRL, 0) )
             goto out_err;
@@ -584,7 +586,7 @@ static int cf_check core2_vpmu_do_wrmsr(unsigned int =
msr, uint64_t msr_content)
         if ( msr_content & fixed_ctrl_mask )
             return -EINVAL;
=20
-        if ( is_hvm_vcpu(v) )
+        if ( is_vmx_vcpu(v) )
             vmx_read_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL,
                                &core2_vpmu_cxt->global_ctrl);
         else
@@ -653,7 +655,7 @@ static int cf_check core2_vpmu_do_wrmsr(unsigned int =
msr, uint64_t msr_content)
             if ( blocked )
                 return -EINVAL;
=20
-            if ( is_hvm_vcpu(v) )
+            if ( is_vmx_vcpu(v) )
                 vmx_read_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL,
                                    &core2_vpmu_cxt->global_ctrl);
             else
@@ -672,7 +674,7 @@ static int cf_check core2_vpmu_do_wrmsr(unsigned int =
msr, uint64_t msr_content)
         wrmsrl(msr, msr_content);
     else
     {
-        if ( is_hvm_vcpu(v) )
+        if ( is_vmx_vcpu(v) )
             vmx_write_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL, msr_conten=
t);
         else
             wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, msr_content);
@@ -706,7 +708,7 @@ static int cf_check core2_vpmu_do_rdmsr(unsigned int =
msr, uint64_t *msr_content)
             *msr_content =3D core2_vpmu_cxt->global_status;
             break;
         case MSR_CORE_PERF_GLOBAL_CTRL:
-            if ( is_hvm_vcpu(v) )
+            if ( is_vmx_vcpu(v) )
                 vmx_read_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL, msr_con=
tent);
             else
                 rdmsrl(MSR_CORE_PERF_GLOBAL_CTRL, *msr_content);
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:09:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:09:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755809.1164288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR42W-0008Nj-BM; Tue, 09 Jul 2024 06:09:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755809.1164288; Tue, 09 Jul 2024 06:09: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 1sR42W-0008Nc-7Z; Tue, 09 Jul 2024 06:09:24 +0000
Received: by outflank-mailman (input) for mailman id 755809;
 Tue, 09 Jul 2024 06:09: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=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR42V-0008NW-1A
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:09:23 +0000
Received: from pb-smtp2.pobox.com (pb-smtp2.pobox.com [64.147.108.71])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7fd9d1c-3db9-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 08:09:21 +0200 (CEST)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id 33CD127200;
 Tue,  9 Jul 2024 02:09:20 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id 2AABD271FF;
 Tue,  9 Jul 2024 02:09:20 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp2.pobox.com (Postfix) with ESMTPSA id 3E872271FC;
 Tue,  9 Jul 2024 02:09:18 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7fd9d1c-3db9-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=WAtXH3fP6tKdqS2avDvIWj8s3
	ooKivAC2EaiAkYKfEA=; b=OWWU9QInf4b8Kqejm9TFMCexdIqGNT969Y5KQ1m76
	dkw+ma1Z1W27lerK4aM75tnyr7ETC2MeQ029RDldUFk5LwOVAUhLTwmqa2Ond4lb
	cRWXA1fpymF53jzL00UQD7wLLfAlbMBrhWxh8bEymDzQXpsUrMhYvoVu1Zs6jkHx
	JU=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@gmail.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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Julien Grall <julien@xen.org>
Subject: [XEN PATCH v4 12/14] x86/ioreq: guard VIO_realmode_completion with CONFIG_VMX
Date: Tue,  9 Jul 2024 09:09:16 +0300
Message-Id: <e6e0f30ea69ecfed4d8de531fc42162162b3f6e5.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 C73E9324-3DB9-11EF-A124-965B910A682E-90055647!pb-smtp2.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

VIO_realmode_completion is specific to vmx realmode and thus the function
arch_vcpu_ioreq_completion() has actual handling code only in VMX-enabled=
 build,
as for the rest x86 and ARM build configurations it is basically a stub.
So these stubs can be avoided by moving VIO_realmode_completion handler's=
 code
under CONFIG_VMX and then ARM stub can be removed completely.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Julien Grall <julien@xen.org>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v4:
 - move whole arch_vcpu_ioreq_completion() under CONFIG_VMX and remove
   ARM's variant of this handler, as Julien suggested
changes in v1:
 - put VIO_realmode_completion enum under #ifdef CONFIG_VMX
---
 xen/arch/arm/ioreq.c                 | 6 ------
 xen/arch/x86/hvm/ioreq.c             | 2 ++
 xen/arch/x86/include/asm/hvm/ioreq.h | 5 +++++
 xen/common/ioreq.c                   | 5 ++++-
 xen/include/xen/ioreq.h              | 1 -
 5 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/ioreq.c b/xen/arch/arm/ioreq.c
index 5df755b48b..2e829d2e7f 100644
--- a/xen/arch/arm/ioreq.c
+++ b/xen/arch/arm/ioreq.c
@@ -135,12 +135,6 @@ bool arch_ioreq_complete_mmio(void)
     return false;
 }
=20
-bool arch_vcpu_ioreq_completion(enum vio_completion completion)
-{
-    ASSERT_UNREACHABLE();
-    return true;
-}
-
 /*
  * The "legacy" mechanism of mapping magic pages for the IOREQ servers
  * is x86 specific, so the following hooks don't need to be implemented =
on Arm:
diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index 4eb7a70182..0406630dc8 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -29,6 +29,7 @@ bool arch_ioreq_complete_mmio(void)
     return handle_mmio();
 }
=20
+#ifdef CONFIG_VMX
 bool arch_vcpu_ioreq_completion(enum vio_completion completion)
 {
     switch ( completion )
@@ -51,6 +52,7 @@ bool arch_vcpu_ioreq_completion(enum vio_completion com=
pletion)
=20
     return true;
 }
+#endif
=20
 static gfn_t hvm_alloc_legacy_ioreq_gfn(struct ioreq_server *s)
 {
diff --git a/xen/arch/x86/include/asm/hvm/ioreq.h b/xen/arch/x86/include/=
asm/hvm/ioreq.h
index 84be14fd08..c5f16a1e4a 100644
--- a/xen/arch/x86/include/asm/hvm/ioreq.h
+++ b/xen/arch/x86/include/asm/hvm/ioreq.h
@@ -13,6 +13,11 @@
 #define IOREQ_STATUS_UNHANDLED   X86EMUL_UNHANDLEABLE
 #define IOREQ_STATUS_RETRY       X86EMUL_RETRY
=20
+#ifdef CONFIG_VMX
+bool arch_vcpu_ioreq_completion(enum vio_completion completion);
+#define arch_vcpu_ioreq_completion
+#endif
+
 #endif /* __ASM_X86_HVM_IOREQ_H__ */
=20
 /*
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index 1257a3d972..10fe932a7e 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -242,9 +242,12 @@ bool vcpu_ioreq_handle_completion(struct vcpu *v)
         res =3D handle_pio(vio->req.addr, vio->req.size,
                          vio->req.dir);
         break;
-
     default:
+#ifdef arch_vcpu_ioreq_completion
         res =3D arch_vcpu_ioreq_completion(completion);
+#else
+        ASSERT_UNREACHABLE();
+#endif
         break;
     }
=20
diff --git a/xen/include/xen/ioreq.h b/xen/include/xen/ioreq.h
index cd399adf17..22fb9ba7b0 100644
--- a/xen/include/xen/ioreq.h
+++ b/xen/include/xen/ioreq.h
@@ -111,7 +111,6 @@ void ioreq_domain_init(struct domain *d);
 int ioreq_server_dm_op(struct xen_dm_op *op, struct domain *d, bool *con=
st_op);
=20
 bool arch_ioreq_complete_mmio(void);
-bool arch_vcpu_ioreq_completion(enum vio_completion completion);
 int arch_ioreq_server_map_pages(struct ioreq_server *s);
 void arch_ioreq_server_unmap_pages(struct ioreq_server *s);
 void arch_ioreq_server_enable(struct ioreq_server *s);
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:11:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:11:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755813.1164297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR44X-0001np-MD; Tue, 09 Jul 2024 06:11:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755813.1164297; Tue, 09 Jul 2024 06: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 1sR44X-0001ni-Jk; Tue, 09 Jul 2024 06:11:29 +0000
Received: by outflank-mailman (input) for mailman id 755813;
 Tue, 09 Jul 2024 06: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=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR44W-0001nZ-DL
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:11:28 +0000
Received: from pb-smtp2.pobox.com (pb-smtp2.pobox.com [64.147.108.71])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 12cb4bbf-3dba-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 08:11:26 +0200 (CEST)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id B7D0427215;
 Tue,  9 Jul 2024 02:11:25 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id AF39527214;
 Tue,  9 Jul 2024 02:11:25 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp2.pobox.com (Postfix) with ESMTPSA id CFCA727213;
 Tue,  9 Jul 2024 02:11:24 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12cb4bbf-3dba-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=J28BmUC9XkwRwgOIlqfahU9nc
	wSpzZpKk8zf3xzLqjA=; b=iGFicwm/Q1Wh+dUhWeptMpNgGF+1/z8v9wTBS1seV
	TZNrt+HcJRbVKqH+GrzZBuP6xmEqUfY5WVOtsbzzB8JrVG1y1hgJN/chOpcl4MZJ
	SkSqTvHS8ZKL9G1SQ+2e1zqDv1ASWlsHa49sdEI669OO0QtkUf0BlotnkLzF48fL
	tQ=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>
Subject: [XEN PATCH v4 13/14] x86/vmx: replace CONFIG_HVM with CONFIG_VMX in vmx.h
Date: Tue,  9 Jul 2024 09:11:20 +0300
Message-Id: <75c4f38c1d598fa751a75b7c5b11ce2e5b08df6d.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 121A3254-3DBA-11EF-B89C-965B910A682E-90055647!pb-smtp2.pobox.com
Content-Transfer-Encoding: quoted-printable

As now we got a separate config option for VMX which itself depends on
CONFIG_HVM, we need to use it to provide vmx_pi_hooks_{assign,deassign}
stubs for case when VMX is disabled while HVM is enabled.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v4:
 - added tag
changes in v3:
 - use CONFIG_VMX instead of CONFIG_HVM to provide stubs, instead of guar=
ding
   calls to vmx_pi_hooks_{assign,deassign} in iommu/vt-d code
---
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/includ=
e/asm/hvm/vmx/vmx.h
index 1489dd05c2..025bec2321 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -599,7 +599,7 @@ void vmx_pi_desc_fixup(unsigned int cpu);
=20
 void vmx_sync_exit_bitmap(struct vcpu *v);
=20
-#ifdef CONFIG_HVM
+#ifdef CONFIG_VMX
 void vmx_pi_hooks_assign(struct domain *d);
 void vmx_pi_hooks_deassign(struct domain *d);
 #else
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:13:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:13:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755818.1164307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR46Y-0002Mx-1w; Tue, 09 Jul 2024 06:13:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755818.1164307; Tue, 09 Jul 2024 06: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 1sR46X-0002Mq-Vh; Tue, 09 Jul 2024 06:13:33 +0000
Received: by outflank-mailman (input) for mailman id 755818;
 Tue, 09 Jul 2024 06:13:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGp0=OJ=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sR46W-0002Mj-D5
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:13:32 +0000
Received: from pb-smtp2.pobox.com (pb-smtp2.pobox.com [64.147.108.71])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c861079-3dba-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 08:13:31 +0200 (CEST)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id 3E96227243;
 Tue,  9 Jul 2024 02:13:29 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id 3688E27242;
 Tue,  9 Jul 2024 02:13:29 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp2.pobox.com (Postfix) with ESMTPSA id 6A53527241;
 Tue,  9 Jul 2024 02:13:28 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c861079-3dba-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=JHgRlQ2mOAVaV36q/DwoXTgbm
	MjsvlXARfcG6GpvdPs=; b=ABDKpP08RVJUTSKPO/M+QuO4dPVccBbAhNMmiHMaF
	ns8XXFCmHKIGgRQGMR4rQdNy0hon70BknNoRGa3zVv5cJb8SUdvyIuEMRE9v7fec
	SQ7PCehaoIsz5M9IOul22pGxTGWItD+jCPycg8g6Uj7eNpsIbq4m8fVSMPDytUI+
	Lg=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v4 14/14] x86/hvm: make AMD-V and Intel VT-x support configurable
Date: Tue,  9 Jul 2024 09:13:25 +0300
Message-Id: <77b83b71a9f759fcf925675b36fcd3f58e06fff1.1720501197.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 5BC43260-3DBA-11EF-8A32-965B910A682E-90055647!pb-smtp2.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

Provide the user with configuration control over the cpu virtualization s=
upport
in Xen by making SVM and VMX options user selectable.

To preserve the current default behavior, both options depend on HVM and
default to value of HVM.

To prevent users from unknowingly disabling virtualization support, make =
the
controls user selectable only if EXPERT is enabled.

No functional change intended.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v3:
 - only tags added
changes in v2:
 - remove dependency of build options IOMMU/AMD_IOMMU on VMX/SVM options
---
 xen/arch/x86/Kconfig | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 4a35c43dc5..dbee7c2efb 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -123,10 +123,24 @@ config HVM
 	  If unsure, say Y.
=20
 config SVM
-	def_bool HVM
+	bool "AMD-V" if EXPERT
+	depends on HVM
+	default HVM
+	help
+	  Enables virtual machine extensions on platforms that implement the
+	  AMD Virtualization Technology (AMD-V).
+	  If your system includes a processor with AMD-V support, say Y.
+	  If in doubt, say Y.
=20
 config VMX
-	def_bool HVM
+	bool "Intel VT-x" if EXPERT
+	depends on HVM
+	default HVM
+	help
+	  Enables virtual machine extensions on platforms that implement the
+	  Intel Virtualization Technology (Intel VT-x).
+	  If your system includes a processor with Intel VT-x support, say Y.
+	  If in doubt, say Y.
=20
 config XEN_SHSTK
 	bool "Supervisor Shadow Stacks"
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:18:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:18:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755828.1164317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR4B6-0003X7-Im; Tue, 09 Jul 2024 06:18:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755828.1164317; Tue, 09 Jul 2024 06: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 1sR4B6-0003X0-G4; Tue, 09 Jul 2024 06:18:16 +0000
Received: by outflank-mailman (input) for mailman id 755828;
 Tue, 09 Jul 2024 06:18:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h7MY=OJ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sR4B5-0003Wu-Ja
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:18:15 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20600.outbound.protection.outlook.com
 [2a01:111:f403:2415::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 05769d57-3dbb-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 08:18:13 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CY5PR12MB6225.namprd12.prod.outlook.com (2603:10b6:930:23::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Tue, 9 Jul
 2024 06:18:03 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.7741.033; Tue, 9 Jul 2024
 06:18: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: 05769d57-3dbb-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jFtYfVrdTlUst8vTpFP22vo1vMsfPN8S79yorHGJiEPhNT6KWaXrxkQEMh1SbkUgwVp2Cv/QZh9+XS3sFvmo0O71Cf/NYiqeD8MHFntgN33liwC0F3AE1atbXM1NkOz49BcDHMWFjKbQL7TC5J81UA+2ajP2fcEmSf7QqzoFMfnGMRZv00BpC9rtT1Dvh4bZRnGh2VAI0S+UPACyM2G43FkARvkh+P+z+8VIwgaumNpxvt5Y2ciHQu3FQqDYPixPQykNnIxGoFAU2/NJJCpn3RZsKfkuHJDbJoiR2FNy0sxslbAD4wtvIRPAhjT0XwJlQ6/jjzdU+DMlI94qfv7X2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=otgig24wvUbU2KKGmvwjjV4QW7HyNdIZiSY8ud4OmPI=;
 b=Q/U7iDkNpuznvPZZ70x/BTprNq7arCWTLS6csCMWKbYeM5CGtrpBcwQoyGPdFoOP22LBkAtOPu6/IRCICludVQL0UNVw/sjBhFTuG86jrpnJx9u3dpY62oHPKADIFJ24xefyy4U7DuPiEX0d+/rxMswiVzrmV/79ApsSQpgy7V7fLhvF4bWW4/ooLoES06qAQPvbIgB+5BSJ3pMptwvBFyksy8MhuCALRsouUENYOejlELQCAKtiO4ze4GVTPimV3YZnMCAkpGiQtc24emkSW2vw8U/8t9Le6X/cbyo4yi+W+O0lOnMYPpU/bAyMbUr2ReNshfdVXdY2EDcooC5F8w==
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=otgig24wvUbU2KKGmvwjjV4QW7HyNdIZiSY8ud4OmPI=;
 b=Yy1MIlQeceFogepCZUEpe592/B5gMrkmy96ad+H7Jtc2ohubYd+QgJCVoi/MYX/3cHVFYLp3XGJTbldtbN0gJvtAD/rxykY8+84wxVt/Ff/3c+2DOPR7CvBXDXdd37qWBbS1EiJilYqBwVjL/QXML7vB2sKmjMIQiQ8gChYGqRU=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Anthony PERARD <anthony.perard@vates.tech>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
	<jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v12 7/7] tools: Add new function to do PIRQ
 (un)map on PVH dom0
Thread-Topic: [RFC XEN PATCH v12 7/7] tools: Add new function to do PIRQ
 (un)map on PVH dom0
Thread-Index: AQHa0SvgOieTsdeaYkqG6oiA+zr1RbHs69sAgAFQmIA=
Date: Tue, 9 Jul 2024 06:18:03 +0000
Message-ID:
 <BL1PR12MB5849D20F7A7379B884FCCD6BE7DB2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-8-Jiqian.Chen@amd.com> <Zov+QeadGqtzOfKY@l14>
In-Reply-To: <Zov+QeadGqtzOfKY@l14>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.7741.016)
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_|CY5PR12MB6225:EE_
x-ms-office365-filtering-correlation-id: de01e683-5389-4a6c-de55-08dc9fdee3b7
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?dHRaeU1maWVZazZPa3BuVGxzaGNjdEw5RUZxVEo2dXNycXBuNHhxZU5JZk1p?=
 =?utf-8?B?YzRaNkNQNGJmbmVQcStKYTdKNzhEdmQyeDRpQ2gyRFBXM0x3Mi9sVkVqMnN4?=
 =?utf-8?B?NithUE1BNEhkZDk3dzhkcE1vWHliQklDU2V0YmdJc3ZoVURid0k5ZU82a0dP?=
 =?utf-8?B?eXJ6RkF2RWNKem8yTzgzbXJLb0RlY1ZkVVVMUW9LTFF4L1pxUmdvRWUvL1lV?=
 =?utf-8?B?dUU5OUtmK0pZYnpVdS9DZ3BUNmFYYVZ1SXFJY01uL2JJV2dSK2xRYThCc3Fk?=
 =?utf-8?B?LzliMGJlYUdkcEduT2d3M0dMcEVDZ2VNVWgwRU9rQ0wycVRmejFhVHA0ak1R?=
 =?utf-8?B?dHp5U1Azd21YMGdqSVVlc3FoOGg1WmNxYWIrUWZGdGNwbnR4RTFjUDE0NS9t?=
 =?utf-8?B?ZG1ZVW4yYnBTSEt2bmttOFhCdWdvUTlPa1lmZWQ3Wi83NXlFbU9sd3hlUHZw?=
 =?utf-8?B?TXdRcDBiK1AvZGUxVG1ZY1RpUklmbUFoK2JuOFd1KzMraks3MGsvcG5Xa05N?=
 =?utf-8?B?OEhUUDhJSHYrUWFzeE5LaEtUQ3AzMXYxY0JCejdOYTlVeEZaY3QwWGFVeGZY?=
 =?utf-8?B?YzNzb1pGck4zczNza3piNnIxRE1KU0kwU253THRucTVuLzRpb2FyeGliUXp2?=
 =?utf-8?B?NS9PbkswV2V6YmV3ckJYVU9RbytHT2JEQVFTempwakJMU2RjbDk2aUpMbTVq?=
 =?utf-8?B?UEFGbFpnNmhvOUUxN0ZteUNlOVczSDgwQi8vZWZMOE80VDR6eGVmdjhIamVJ?=
 =?utf-8?B?SHJGWXdZajEvbDJTSjBrVExMbXJleWJENm81b1ZTTEQxc3F2K3dzZFkvN2NE?=
 =?utf-8?B?ekVrSTdtZnFuckc1bkVGK1hiUUMxSmwwbWxiSVNiQ3hJNFY4U3pmQnZ5aDkv?=
 =?utf-8?B?N2VFMzYweEREMHhRYmJXS0VmMk9keUFqOFVFcGV4ZDIwL0loYTRVNmFNZFNU?=
 =?utf-8?B?WmxuREZKdVUycW55U1RjMURQcDV2cm5XUG11WmVZZ0NVNU4rR1hQRDJtMUha?=
 =?utf-8?B?V0lwVUZhQU05UkRHKy8yL2EvamZqY0RObHJFTisyQzM4TE5SMWYySHN5dmlJ?=
 =?utf-8?B?T2RIUGVnaHk3d1p1T3NxdGNmQjNMZldEODFLZXkva1lTZ0YwQ1YrTnQ4WjBP?=
 =?utf-8?B?RXp1ZFFJL3dralJEQnZVay9YbTFIZHc3b0hZOTdQYnJvZy9KakxOSWRyd2NU?=
 =?utf-8?B?ZW9kWjFHSUxlTlY3cG9VekJzZVhJcStwUGYvdnNlUFBRYUxZR3RiM25uKzM5?=
 =?utf-8?B?TjhONnJwQVZ4d2NnQkJpc1UreXY5VFhrZmJQbUI3b1ZzVWtrb0VhSXRydlVv?=
 =?utf-8?B?U2pvSjQxQ1F4NTh2NFh1dVNpTFN1MFJ1Sk41RVYwenRPbnRjOFdzeEFuNThO?=
 =?utf-8?B?RXM1azUzTmRObHdTMWU3YXEzZDVBWERYQmh3UjZ3bXU4enV3MjhMck1IbGRS?=
 =?utf-8?B?ZUdkN2lyL3hyRXpmR2piNUpobjdoeXRXN0NrYUdycUFXZUVoKzJzZG0rWGFT?=
 =?utf-8?B?LzQyaXhYdHRZRWs1ZjRqK2NZKy9CYjQwNVFPOWpKZVEySEpqdjBEZ214cWVj?=
 =?utf-8?B?MjZiaWxPbFY5em11VmlZUnRMTUdPYUVHUWI0ZjRSdkpNL2lWcEhlSzVVRGh0?=
 =?utf-8?B?SWRYUjcyY0FVS3RjY1NNdlNjSEZBbEZrdWZtSkdnMEFIR1FhVitGRWNaai9t?=
 =?utf-8?B?b0l4d24wS282Z2kvSlhjWVhMRmZsY3NoRm1Eb3RCK2luaHcvcFZBcG43Q1hh?=
 =?utf-8?B?OTUzTXplQlptMXVxRG1aMU5wRm9CYm9ycDRQb0loOFBiY3hkbVltZ2UvREFY?=
 =?utf-8?B?L0g4RkMra2ZudGs0UXNnQlhUeTBWcDNZc3RqdGhiMFdQSnE3RktibGs4SUxF?=
 =?utf-8?B?akhaSUFuTEVOa0doMnNuTmxFcTkzN21VRnZJUkd2anNCT1E9PQ==?=
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)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dFAyQjdmNXVqMEdOaVQwNHFpMm04dTl6ajFIZHR1RG5pbDQxQk14TDJpeGsx?=
 =?utf-8?B?SGNmSTdROHRldFJvVk9yaGpwT2hXcEQrZlFERUNTa0VHUDE0S3o5cmJBb1pL?=
 =?utf-8?B?R0Mrd0x0R3hVV2tnWVVwWmRzMWN1QkRVRHo2K1dHejdKQWxDUDdnMkxLN0FO?=
 =?utf-8?B?WDYwdHN2ZTR0ZUZFV2ttaEFZbHphektJeitlclZpcTVIMEZnY2c2RzQ2MlBj?=
 =?utf-8?B?OHZmU09ncjAwOGlsSHdYT0JLWTBMUHdmbXplWlRjN0ZlenpSQU5FMjdQdU90?=
 =?utf-8?B?eUg2cFUxNXhQQmwrTnp4LzJmenlBZjNTMWV6QzhBOXdmcDJhd1RvNHh1Ujhr?=
 =?utf-8?B?Y0MrcVJpck8wOGQwZ3F0Smc0Mkdyc0dNTjhjK0liZ1ZXQm1BRGdHbUZCOWtk?=
 =?utf-8?B?VmZEZndqNG9XQ3JvSm1LOXA3ZG5TMUluVVR4eTZXQVRlMi9Yb3QyaGE5eG04?=
 =?utf-8?B?NSt3QitTeFNtd2w4Wlhoc1dIclZRQ2ErYkZEL3g0ZUhDNGlBQnZVR3VydmFl?=
 =?utf-8?B?MzNxRi81bGtkRTZjeWdaQkgzTkJsbFlRbXRXN0o1L1hqL1A2eVpzSWZkSFZ0?=
 =?utf-8?B?SlZ2S1dzalZieHdNb3Z1bW50M2ZmQnVrNzhvYVJYUG5jcXdkUkJWVHArM092?=
 =?utf-8?B?bTdKOHFhUG5mOTJwaFpVeHdKeHc3aDBvV1NWWGNIUjh5ZGFiSFJyZFhCMkps?=
 =?utf-8?B?dEt2QW5xYVBsZ3JFcHJxTGZHdlNQZngwRXpFdHpYb1IrQU8vbFRYdW96ckF6?=
 =?utf-8?B?NllPUWhLTFczMnB3OEhaZWNUMzhvcUZ5SE1lRWhZbEV2KzREUndWMHVvRGVK?=
 =?utf-8?B?dklwZ2VXZXJ3RklIcXNBcmMzZnh4QXFZMHhmRm1FU29oQmJ4cFlvc2JZWXg1?=
 =?utf-8?B?RUUzYXNlY1NaVVEvY0ZtbWpvOHF5ZmRFK2RlSDg2eUM0cE80Skl1ZTBPYlRs?=
 =?utf-8?B?SjJlZGZ5enh3RGFNT1VYbExZQ0NwaE9LZTRieDVNZVFlclh5MFRCbENsd1Ew?=
 =?utf-8?B?Y1FZckdRL2t3WXNCa2RFRFdweEJqY3o3UWlRSHErZlljOEhIQytYRHdPS0Fo?=
 =?utf-8?B?cnRxUlcxMW5iUlNPbWFqdkk2TWlWZ29LM1cvWUZNbVcwZStLVENBNmlVUVRs?=
 =?utf-8?B?VmYyVDgyYVhzWWxtSjlLSXFCMkNSdkRXN3Z6MUUvbTc4aUpnUWp6djJqN29M?=
 =?utf-8?B?WEx6bGZEQzFXQlFlTlQydXhjOCtIcXNLOGlCR0ZjQ1BRWWJnU3ZEakt6RVJQ?=
 =?utf-8?B?bHh6SjBVZWxnTC9ENm9QQ1AzOXB6cnBSanpMR25iTDN2VFBSOEdYMDAvdXNX?=
 =?utf-8?B?MkRuZTU5eFg5dWczM1owWlNTODJpaFdTb0QzMngxSmMxWVhSenl1T0ZrUXBq?=
 =?utf-8?B?RlA1UFJlc0U5dWppd0loa2RqYzFwVGpLODc4U0cwcVE2UHBDUGxBb0kzSlFJ?=
 =?utf-8?B?MVV4NytDU29BS1VDSFhtUFBIQzBGekJ0Mk5YUEFvZU53b1hmcTVGK1pnMHBw?=
 =?utf-8?B?UmpoN1ZlNTV5RFRSUDFxcHJjcFNndi9GTU02UDBZRFhHTEx1WDFHOWtjSng2?=
 =?utf-8?B?K1FaellKVWkxSDNEeVZnMS9hdXY0OFRlUUZxQ2NzZi9OTGtDVlNBR1VVdnVX?=
 =?utf-8?B?VHNrdFRVQ1lOK3NERmFGSzExNXdLNnBYZ25TNytxc3VnMEJIeERod0JBYmFi?=
 =?utf-8?B?Wm5DN2trbUVybmFxWXVBaU1STlBRYVE5WDF4QjNlOFhCSDUwd1UyckZ4Y2Jt?=
 =?utf-8?B?cEFsQm8zTXViazBhTHhuMGxOcmVjSjBldDJxM0Z1T0lndFFKTTJ3Q3BMWDAy?=
 =?utf-8?B?d2ZOdzdIM1JPbjUvVFJWSkRwS2puM3JjUkhiaW5DTUd0aVlEcUZiM1ZjY2RC?=
 =?utf-8?B?Z2o1enE1amwrWnNoQVQrLzVmVlQ0ODN2c3dGRzhnM3RkMEsrTkFvSy9JTzVG?=
 =?utf-8?B?bFdtd0JCbEJFbUxoZXVMZjZhUGJUZmFJTHV6TmpyMVF1UDFuZGFILzBPVDFJ?=
 =?utf-8?B?TUdYUlErT1ROMWYxUmd0cEJvUnlvRisrbFJLZktGeE1SMVI3WFIzbjgxL3pa?=
 =?utf-8?B?UVBLSHpxczFUYXhkSm1Za3FXdXg1aTRPam9aUGtRR2d1dWZ2L0NDWWNOQUJI?=
 =?utf-8?Q?xaec=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A950296F5036C44D8836548746C80B0C@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: de01e683-5389-4a6c-de55-08dc9fdee3b7
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jul 2024 06:18:03.1384
 (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: UeATmPwxc3duRwESTbh2IJlgSyDkjCJmE0vh1Yyq8KWFyR+MUhY18RW/h7mb2ASs5rY1ltXav+hDalKClts8mQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6225

T24gMjAyNC83LzggMjI6NTcsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBNb24sIEp1bCAw
OCwgMjAyNCBhdCAwNzo0MToyNFBNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IGRpZmYg
LS1naXQgYS90b29scy9saWJzL2xpZ2h0L2xpYnhsX2FybS5jIGIvdG9vbHMvbGlicy9saWdodC9s
aWJ4bF9hcm0uYw0KPj4gaW5kZXggYTQwMjllM2FjODEwLi5kODY5YmJlYzc2OWUgMTAwNjQ0DQo+
PiAtLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhsX2FybS5jDQo+PiArKysgYi90b29scy9saWJz
L2xpZ2h0L2xpYnhsX2FybS5jDQo+PiBAQCAtMTc3NCw2ICsxNzc0LDE2IEBAIHZvaWQgbGlieGxf
X2FyY2hfdXBkYXRlX2RvbWFpbl9jb25maWcobGlieGxfX2djICpnYywNCj4+ICB7DQo+PiAgfQ0K
Pj4gIA0KPj4gK2ludCBsaWJ4bF9fYXJjaF9odm1fbWFwX2dzaShsaWJ4bF9fZ2MgKmdjLCB1aW50
MzJfdCBzYmRmLCB1aW50MzJfdCBkb21pZCkNCj4+ICt7DQo+PiArICAgIHJldHVybiAtMTsNCj4g
DQo+IEl0J3MgYmVzdCB0byByZXR1cm4gYW4gRVJST1JfKiBmb3IgbGlieGwgZXJyb3IgY29kZSBp
bnN0ZWFkIG9mIC0xLg0KPiBFUlJPUl9OSSBzZWVtcyB0byBiZSB0aGUgb25lLCBpdCBwcm9iYWJs
eSBtZWFucyBub3QtaW1wbGVtZW50ZWQuIE9yDQo+IG1heWJlIEVSUk9SX0lOVkFMIHdvdWxkIGRv
IHRvLg0KU2VlbXMgRVJST1JfSU5WQUwgaXMgbW9yZSBzdWl0YWJsZS4gV2lsbCBjaGFuZ2UgaW4g
bmV4dCB2ZXJzaW9uLg0KDQo+IA0KPj4gK30NCj4+ICsNCj4+ICtpbnQgbGlieGxfX2FyY2hfaHZt
X3VubWFwX2dzaShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBzYmRmLCB1aW50MzJfdCBkb21pZCkN
Cj4+ICt7DQo+PiArICAgIHJldHVybiAtMTsNCj4+ICt9DQo+PiArDQo+PiAgLyoNCj4+ICAgKiBM
b2NhbCB2YXJpYWJsZXM6DQo+PiAgICogbW9kZTogQw0KPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xp
YnMvbGlnaHQvbGlieGxfcGNpLmMgYi90b29scy9saWJzL2xpZ2h0L2xpYnhsX3BjaS5jDQo+PiBp
bmRleCA5NmNiNGRhMDc5NGUuLjNkMjU5OTc5MjFjYyAxMDA2NDQNCj4+IC0tLSBhL3Rvb2xzL2xp
YnMvbGlnaHQvbGlieGxfcGNpLmMNCj4+ICsrKyBiL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfcGNp
LmMNCj4+IEBAIC0xNyw2ICsxNyw3IEBADQo+PiAgI2luY2x1ZGUgImxpYnhsX29zZGVwcy5oIiAv
KiBtdXN0IGNvbWUgYmVmb3JlIGFueSBvdGhlciBoZWFkZXJzICovDQo+PiAgDQo+PiAgI2luY2x1
ZGUgImxpYnhsX2ludGVybmFsLmgiDQo+PiArI2luY2x1ZGUgImxpYnhsX2FyY2guaCINCj4+ICAN
Cj4+ICAjZGVmaW5lIFBDSV9CREYgICAgICAgICAgICAgICAgIiUwNHg6JTAyeDolMDJ4LiUwMXgi
DQo+PiAgI2RlZmluZSBQQ0lfQkRGX1NIT1JUICAgICAgICAgICIlMDJ4OiUwMnguJTAxeCINCj4+
IEBAIC0xNDc4LDYgKzE0NzksMTYgQEAgc3RhdGljIHZvaWQgcGNpX2FkZF9kbV9kb25lKGxpYnhs
X19lZ2MgKmVnYywNCj4+ICAgICAgZmNsb3NlKGYpOw0KPj4gICAgICBpZiAoIXBjaV9zdXBwX2xl
Z2FjeV9pcnEoKSkNCj4+ICAgICAgICAgIGdvdG8gb3V0X25vX2lycTsNCj4+ICsNCj4+ICsgICAg
LyoNCj4+ICsgICAgICogV2hlbiBkb20wIGlzIFBWSCBhbmQgbWFwcGluZyBhIHg4NiBnc2kgdG8g
cGlycSBmb3IgZG9tVSwNCj4+ICsgICAgICogc2hvdWxkIHVzZSBnc2kgdG8gZ3JhbnQgaXJxIHBl
cm1pc3Npb24uDQo+PiArICAgICAqLw0KPj4gKyAgICBpZiAoIWxpYnhsX19hcmNoX2h2bV9tYXBf
Z3NpKGdjLCBwY2lfZW5jb2RlX2JkZihwY2kpLCBkb21pZCkpDQo+IA0KPiBDb3VsZCB5b3Ugc3Rv
cmUgdGhlIHJlc3VsdCBvZiBsaWJ4bF9fYXJjaF9odm1fbWFwX2dzaSgpIGluIGByYycsIHRoZW4N
Cj4gdGVzdCB0aGF0IGluIHRoZSBjb25kaXRpb24/DQpXaWxsIGNoYW5nZSBpbiBuZXh0IHZlcnNp
b24uDQo+IA0KPj4gKyAgICAgICAgZ290byBwY2lfcGVybWlzc2l2ZTsNCj4gDQo+IFdoeSBkbyB5
b3Ugc2tpcCBwYXJ0IG9mIHRoZSBmdW5jdGlvbiBvbiBzdWNjZXNzPw0KQmVjYXVzZSBsaWJ4bF9f
YXJjaF9odm1fbWFwX2dzaSBkbyB0aGUgc2FtZSB0aGluZyBmb3IgUFZIIGRvbTAsIGFuZCB0aGUg
Zm9sbG93aW5nIHBhcnQgaXMgZm9yIFBWIGRvbTAuDQpJZiBsaWJ4bF9fYXJjaF9odm1fbWFwX2dz
aSBzdWNjZXNzLCBpdCBzaG91bGQgc2tpcCB0aGUgZm9sbG93aW5nIHBhcnQuDQoNCj4gQnV0IGFs
c28sIHBsZWFzZSBhdm9pZCB0aGUgImdvdG8iIGNvZGluZyBzdHlsZSwgaW4gbGlieGwsIGl0J3Mg
dG9sZXJhdGVkDQo+IGZvciBlcnJvciBoYW5kbGluZyB3aGVuIHVzZWQgdG8gc2tpcCB0byB0aGUg
ZW5kIG9mIGZ1bmN0aW9uIHRvIGhhdmUgYQ0KPiBzaW5nbGUgcGF0aCAob3IgZXJyb3IgcGF0aCkg
b3V0IG9mIGEgZnVuY3Rpb24uDQpNYXliZSBJIHNob3VsZCBzcGxpdCB0aGUgcGFydCAiIHhjX2Rv
bWFpbl9nZXRpbmZvX3NpbmdsZShjdHgtPnhjaCwgTElCWExfVE9PTFNUQUNLX0RPTUlELCAmaW5m
byk7ICIgaW4gbGlieGxfX2FyY2hfaHZtX21hcF9nc2kgdG8gYSBzaW5nbGUgZnVuY3Rpb24uDQpU
aGVuIEkgY2FuIGRpc3Rpbmd1aXNoIFBWSCBhbmQgUFYsIGFuZCBkbyBkaWZmZXJlbnQgdGhpbmdz
IGZvciB0aGVtLg0KDQo+IA0KPj4gKyAgICBlbHNlDQo+PiArICAgICAgICBMT0dFRChXQVJOLCBk
b21pZCwgImxpYnhsX19hcmNoX2h2bV9tYXBfZ3NpIGZhaWxlZCAoZXJyPSVkKSIsIGVycm5vKTsN
Cj4gDQo+IE5vIG9uZSByZWFkcyBsb2dzIHVubGVzcyB0aGVyZSdzIGEgZmFpbHVyZSBvciBzb21l
dGhpbmcgZG9lc24ndCB3b3JrLiBTbw0KPiBoZXJlIHdlIGp1c3QgaWdub3JlIGZhaWx1cmUgcmV0
dXJuZWQgYnkgbGlieGxfX2FyY2hfaHZtX21hcF9nc2koKSwgaXMgaXQNCj4gdGhlIHJpZ2h0IHRo
aW5ncyB0byBkbz8gVXN1YWxseSwganVzdCBpZ25vcmluZyBlcnJvciBpcyB3cm9uZy4NCldpbGwg
Y2hhbmdlIGluIG5leHQgdmVyc2lvbi4NCj4gDQo+IEZZSTogTE9HRSogYWxyZWFkeSBsb2dzIGVy
cm5vLg0KPiANCj4+ICsNCj4+ICAgICAgc3lzZnNfcGF0aCA9IEdDU1BSSU5URihTWVNGU19QQ0lf
REVWIi8iUENJX0JERiIvaXJxIiwgcGNpLT5kb21haW4sDQo+PiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwY2ktPmJ1cywgcGNpLT5kZXYsIHBjaS0+ZnVuYyk7DQo+PiAgICAgIGYg
PSBmb3BlbihzeXNmc19wYXRoLCAiciIpOw0KPj4gQEAgLTE1MDUsNiArMTUxNiw3IEBAIHN0YXRp
YyB2b2lkIHBjaV9hZGRfZG1fZG9uZShsaWJ4bF9fZWdjICplZ2MsDQo+PiAgICAgIH0NCj4+ICAg
ICAgZmNsb3NlKGYpOw0KPj4gIA0KPj4gK3BjaV9wZXJtaXNzaXZlOg0KPj4gICAgICAvKiBEb24n
dCByZXN0cmljdCB3cml0ZXMgdG8gdGhlIFBDSSBjb25maWcgc3BhY2UgZnJvbSB0aGlzIFZNICov
DQo+PiAgICAgIGlmIChwY2ktPnBlcm1pc3NpdmUpIHsNCj4+ICAgICAgICAgIGlmICggc3lzZnNf
d3JpdGVfYmRmKGdjLCBTWVNGU19QQ0lCQUNLX0RSSVZFUiIvcGVybWlzc2l2ZSIsDQo+PiBAQCAt
MjIyOSw2ICsyMjQxLDExIEBAIHNraXBfYmFyOg0KPj4gICAgICBpZiAoIXBjaV9zdXBwX2xlZ2Fj
eV9pcnEoKSkNCj4+ICAgICAgICAgIGdvdG8gc2tpcF9sZWdhY3lfaXJxOw0KPj4gIA0KPj4gKyAg
ICBpZiAoIWxpYnhsX19hcmNoX2h2bV91bm1hcF9nc2koZ2MsIHBjaV9lbmNvZGVfYmRmKHBjaSks
IGRvbWlkKSkNCj4+ICsgICAgICAgIGdvdG8gc2tpcF9sZWdhY3lfaXJxOw0KPj4gKyAgICBlbHNl
DQo+PiArICAgICAgICBMT0dFRChXQVJOLCBkb21pZCwgImxpYnhsX19hcmNoX2h2bV91bm1hcF9n
c2kgZmFpbGVkIChlcnI9JWQpIiwgZXJybm8pOw0KPj4gKw0KPj4gICAgICBzeXNmc19wYXRoID0g
R0NTUFJJTlRGKFNZU0ZTX1BDSV9ERVYiLyJQQ0lfQkRGIi9pcnEiLCBwY2ktPmRvbWFpbiwNCj4+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2ktPmJ1cywgcGNpLT5kZXYsIHBjaS0+ZnVu
Yyk7DQo+PiAgDQo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF94ODYuYyBi
L3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfeDg2LmMNCj4+IGluZGV4IDYwNjQzZDZmNTM3Ni4uZTc3
NTZkMzIzY2I2IDEwMDY0NA0KPj4gLS0tIGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF94ODYuYw0K
Pj4gKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF94ODYuYw0KPj4gQEAgLTg3OSw2ICs4Nzks
MTE3IEBAIHZvaWQgbGlieGxfX2FyY2hfdXBkYXRlX2RvbWFpbl9jb25maWcobGlieGxfX2djICpn
YywNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZWZib29sX3Zh
bChzcmMtPmJfaW5mby51Lmh2bS5waXJxKSk7DQo+PiAgfQ0KPj4gIA0KPj4gK3N0cnVjdCBwY2lk
ZXZfbWFwX3BpcnEgew0KPj4gKyAgICB1aW50MzJfdCBzYmRmOw0KPj4gKyAgICB1aW50MzJfdCBw
aXJxOw0KPj4gKyAgICBYRU5fTElTVF9FTlRSWShzdHJ1Y3QgcGNpZGV2X21hcF9waXJxKSBlbnRy
eTsNCj4+ICt9Ow0KPj4gKw0KPj4gK3N0YXRpYyBwdGhyZWFkX211dGV4X3QgcGNpZGV2X3BpcnFf
bXV0ZXggPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOw0KPj4gK3N0YXRpYyBYRU5fTElTVF9I
RUFEKCwgc3RydWN0IHBjaWRldl9tYXBfcGlycSkgcGNpZGV2X3BpcnFfbGlzdCA9DQo+PiArICAg
IFhFTl9MSVNUX0hFQURfSU5JVElBTElaRVIocGNpZGV2X3BpcnFfbGlzdCk7DQo+PiArDQo+PiAr
aW50IGxpYnhsX19hcmNoX2h2bV9tYXBfZ3NpKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IHNiZGYs
IHVpbnQzMl90IGRvbWlkKQ0KPj4gK3sNCj4+ICsgICAgaW50IHBpcnEgPSAtMSwgZ3NpLCByOw0K
Pj4gKyAgICB4Y19kb21haW5pbmZvX3QgaW5mbzsNCj4+ICsgICAgc3RydWN0IHBjaWRldl9tYXBf
cGlycSAqcGNpZGV2X3BpcnE7DQo+PiArICAgIGxpYnhsX2N0eCAqY3R4ID0gbGlieGxfX2djX293
bmVyKGdjKTsNCj4gDQo+IEluc3RlYWQgb2YgZGVjbGFyaW5nICJjdHgiLCB5b3UgY2FuIHVzZSB0
aGUgbWFjcm8gIkNUWCIgd2hlbiB5b3UgbmVlZA0KPiAiY3R4Ii4NCldpbGwgY2hhbmdlIGluIG5l
eHQgdmVyc2lvbi4NCg0KPiANCj4+ICsNCj4+ICsgICAgciA9IHhjX2RvbWFpbl9nZXRpbmZvX3Np
bmdsZShjdHgtPnhjaCwgTElCWExfVE9PTFNUQUNLX0RPTUlELCAmaW5mbyk7DQo+PiArICAgIGlm
IChyIDwgMCkgew0KPj4gKyAgICAgICAgTE9HRUQoRVJST1IsIGRvbWlkLCAiZ2V0ZG9tYWluaW5m
byBmYWlsZWQgKGVycm9yPSVkKSIsIGVycm5vKTsNCj4+ICsgICAgICAgIHJldHVybiByOw0KPiAN
Cj4gbGlieGxfKigpIGZ1bmN0aW9ucyBzaG91bGQgcmV0dXJuIG9ubHkgbGlieGwgZXJyb3IgY29k
ZSwgdGhhdCBpcyByZXR1cm4NCj4gY29kZSBmcm9tIG90aGVyIGxpYnhsXyogZnVuY3Rpb25zLCB1
c2VhbGx5IHN0b3JlIGluICdyYycsIG9yIG9uZSBvZiBFUlJPUl8qLg0KT0ssIHdpbGwgY2hhbmdl
IGluIG5leHQgdmVyc2lvbi4NCg0KPiANCj4+ICsgICAgfQ0KPj4gKyAgICBpZiAoKGluZm8uZmxh
Z3MgJiBYRU5fRE9NSU5GX2h2bV9ndWVzdCkgJiYNCj4+ICsgICAgICAgICEoaW5mby5hcmNoX2Nv
bmZpZy5lbXVsYXRpb25fZmxhZ3MgJiBYRU5fWDg2X0VNVV9VU0VfUElSUSkpIHsNCj4+ICsgICAg
ICAgIGdzaSA9IHhjX3BoeXNkZXZfZ3NpX2Zyb21fcGNpZGV2KGN0eC0+eGNoLCBzYmRmKTsNCj4+
ICsgICAgICAgIGlmIChnc2kgPCAwKSB7DQo+PiArICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0ZB
SUw7DQo+PiArICAgICAgICB9DQo+PiArICAgICAgICByID0geGNfcGh5c2Rldl9tYXBfcGlycShj
dHgtPnhjaCwgZG9taWQsIGdzaSwgJnBpcnEpOw0KPj4gKyAgICAgICAgaWYgKHIgPCAwKSB7DQo+
PiArICAgICAgICAgICAgTE9HRUQoRVJST1IsIGRvbWlkLCAieGNfcGh5c2Rldl9tYXBfcGlycSBn
c2k9JWQgKGVycm9yPSVkKSIsDQo+PiArICAgICAgICAgICAgICAgICAgZ3NpLCBlcnJubyk7DQo+
PiArICAgICAgICAgICAgcmV0dXJuIHI7DQo+PiArICAgICAgICB9DQo+PiArICAgICAgICByID0g
eGNfZG9tYWluX2dzaV9wZXJtaXNzaW9uKGN0eC0+eGNoLCBkb21pZCwgZ3NpLCAxKTsNCj4+ICsg
ICAgICAgIGlmIChyIDwgMCkgew0KPj4gKyAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21pZCwg
InhjX2RvbWFpbl9nc2lfcGVybWlzc2lvbiBnc2k9JWQgKGVycm9yPSVkKSIsDQo+PiArICAgICAg
ICAgICAgICAgICAgZ3NpLCBlcnJubyk7DQo+PiArICAgICAgICAgICAgcmV0dXJuIHI7DQo+PiAr
ICAgICAgICB9DQo+PiArICAgIH0gZWxzZSB7DQo+PiArICAgICAgICByZXR1cm4gRVJST1JfRkFJ
TDsNCj4gDQo+IElzIGl0IHJlYWxseSBhbiBlcnJvcj8NCj4gDQo+IEkgZmV3IHZhbHVlcyBjYW4g
YmUgcmV0dXJuZWQgaGVyZSwNCj4gICAqIEVSUk9SX0lOVkFMIG1lYWluZyB0aGF0IHRoZSBmdW5j
dGlvbiB3YXMgY2FsbGVkIG9uIGEgZG9tMCB0aGF0IGRvbid0DQo+ICAgICBkbyAiR1NJIiwNCkkg
dGhpbmsgdGhpcyBpcyBtb3JlIHN1aXRhYmxlLiBBbmQgdGhlbiB0aGUgZm9sbG93aW5nIGNvZGUg
b2YgUFYgY2FuIGJlIGRvbmUgaW4gcGNpX2FkZF9kbV9kb25lLg0KDQo+ICAgKiAwLCB0aGF0IGlz
IHN1Y2Nlc3MsIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIGNoZWNrIGlmIGl0IG5lZWQgdG8gZG8NCj4g
ICAgIGFueXRoaW5nLCBhbmQgc2luY2UgdGhlcmUncyBub3RoaW5nIHRvIGRvLCB3ZSBjYW4gcmV0
dXJuIHN1Y2Nlc3MuDQo+IA0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIC8qIFNhdmUgdGhlIHBp
cnEgZm9yIHRoZSB1c2FnZSBvZiB1bm1hcHBpbmcgKi8NCj4+ICsgICAgcGNpZGV2X3BpcnEgPSBt
YWxsb2Moc2l6ZW9mKHN0cnVjdCBwY2lkZXZfbWFwX3BpcnEpKTsNCj4+ICsgICAgaWYgKCFwY2lk
ZXZfcGlycSkgew0KPj4gKyAgICAgICAgTE9HRUQoRVJST1IsIGRvbWlkLCAibm8gbWVtb3J5IGZv
ciBzYXZpbmcgcGlycSBvZiBwY2lkZXYgaW5mbyIpOw0KPj4gKyAgICAgICAgcmV0dXJuIEVSUk9S
X05PTUVNOw0KPj4gKyAgICB9DQo+PiArICAgIHBjaWRldl9waXJxLT5zYmRmID0gc2JkZjsNCj4+
ICsgICAgcGNpZGV2X3BpcnEtPnBpcnEgPSBwaXJxOw0KPj4gKw0KPj4gKyAgICBhc3NlcnQoIXB0
aHJlYWRfbXV0ZXhfbG9jaygmcGNpZGV2X3BpcnFfbXV0ZXgpKTsNCj4+ICsgICAgWEVOX0xJU1Rf
SU5TRVJUX0hFQUQoJnBjaWRldl9waXJxX2xpc3QsIHBjaWRldl9waXJxLCBlbnRyeSk7DQo+IA0K
PiBJIGRvbid0IHRoaW5rIHRoYXQncyBnb2luZyB0byB3b3JrIGFzIHlvdSBleHBlY3QuIGxpYnhs
IGlzbid0IGEgZGFlbW9uDQo+IChvciBzb21ldGltZSBpdCBpcyBidXQgdXNlZCBmb3Igc2V2ZXJh
bCBkb21haW5zKSwgc28gYW55dGhpbmcgc3RvcmUgaW4NCj4gbWVtb3J5IHdpbGwgYmUgbG9zdCwg
b3Igd291bGQgYmUgc2hhcmVkIHdpdGggb3RoZXIgZ3Vlc3QuDQo+IA0KPiBEbyB5b3UgbmVlZCB0
aGlzIG1hcHBpbnMgc2JkZjwtPiBwaXJxID8gDQpJIG5lZWQgdG8gc3RvcmUgdGhlIHBpcnEgdGhh
dCBhc3NpZ25lZCB0byB0aGUgZ3NpLiBCZWNhdXNlIGxpYnhsX19hcmNoX2h2bV91bm1hcF9nc2kg
bmVlZCBwaXJxIHRvIGRvIHhjX3BoeXNkZXZfdW5tYXBfcGlycQ0KDQo+IElzIHRoZXJlIGEgd2F5
IHRvIHF1ZXJ5IHRoaXMgaW5mb3JtYXRpb24gbGF0ZXIgZnJvbSB0aGUgZW52aXJvbmVtZW50PyAN
CldoYXQgSSBjYW4gdGhpbmsgb2YgaXMgYmVmb3JlIHhjX3BoeXNkZXZfdW5tYXBfcGlycSwgdXNl
IHhjX3BoeXNkZXZfbWFwX3BpcnEgdG8gZ2V0IHRoZSBhbHJlYWR5IG1hcHBlZCBwaXJxLCBidXQg
SSBhbSBub3Qgc3VyZSBpZiBpdCBpcyBzdWl0YWJsZS4NCg0KPiBJZiBub3QsIHlvdSB3aWxsIG5l
ZWQgdG8gc3RvcmUgdGhlIGRhdGEgc29tZXdoZXJlIGVsc2UsIHByb2JhYmx5IGluICJsaWJ4bF9k
b21haW5fY29uZmlnICpkX2NvbmZpZyIgYXMNCj4gbGlieGwgY2FuIHJldHJpdmUgdGhlIGRhdGEg
d2l0aCBsaWJ4bF9fZ2V0X2RvbWFpbl9jb25maWd1cmF0aW9uKCkuDQpIb3dldmVyLCBwaXJxIGlz
IGR5bmFtaWNhbGx5IG1hcHBlZCBkdXJpbmcgc3RhcnRpbmcgZG9tVSwgaXQgbWF5IG5vdCBiZSBz
dWl0YWJsZSBmb3Igc2F2aW5nIGluIGRfY29uZmlnLg0KDQo+IFRoZXJlJ3MgYWxzbyB0aGUgcG9z
aWJpbGl0eSB0byBzdG9yZSB0aGF0IGluZm8gaW4geGVuc3RvcmUsIGJ1dCB3ZQ0KPiBzaG91bGQg
cHJvYmFibHkgYXZvaWQgdGhhdC4NCj4gDQo+IFRoYW5rcywNCj4gDQoNCi0tIA0KQmVzdCByZWdh
cmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:24:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:24:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755845.1164332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR4HA-0006Ej-Cq; Tue, 09 Jul 2024 06:24:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755845.1164332; Tue, 09 Jul 2024 06:24: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 1sR4HA-0006Ec-8k; Tue, 09 Jul 2024 06:24:32 +0000
Received: by outflank-mailman (input) for mailman id 755845;
 Tue, 09 Jul 2024 06:24: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR4H9-0006EW-3F
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:24:31 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e530b298-3dbb-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 08:24:28 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2eeb1ba0481so13526201fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 23:24: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
 41be03b00d2f7-77d61c00772sm796590a12.43.2024.07.08.23.24.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 23:24: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: e530b298-3dbb-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720506268; x=1721111068; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vEwkiHNqgbSeryv9qOaLaWb0nJxDnDujfLULPhV/H+Q=;
        b=FIunBp5GAFbOqBa83i3Cn6jNRSauD9Ssp5cMraKamu4TTA6NmDjBzFx7APq0PrBvzp
         bM/aBtHs1rGNFY7Ax70azfHRGz4WW/GFfwQoYDNhs6esuXBCTR8GQl004ERSR3FIWC91
         a6CxDNljszzIlAWx2eX/GgaBgHCbQ1k07K5qMamqqqs7epESOAnVJpn7F8eBc6ucD1UX
         C1seTKNAUvmm5SL8nN6OHeIXcSIpX5lFsSkh+hTr2es9ppUMMpqc0WDOI9/+KmHTaDSa
         fyith6cjWHuSPF3PVpJZtOFFp03b0JMxvY/0DPTGRx895Suo+vBtciXufhaCaPQ24HDP
         Yscg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720506268; x=1721111068;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vEwkiHNqgbSeryv9qOaLaWb0nJxDnDujfLULPhV/H+Q=;
        b=txyuXuZd6BE9H4KO6LyPu7hGTHCXNzwOEmhY9lhDsF7j4E+FzKmaeC6a0BFugWOiwJ
         p07Uz6ovmxWcQ2sZdxvOW2iwfE6jq6ZUNaWMEBWs6lqjuiXhLDCL6BjbbF/qlwfki7+j
         32rFUcpecwcVdtSlCilmy4ILk2lu1gRBKC5014xnI6cjlUZVHI6U8kEpJojNDYGGnRhN
         Ct9biLX/tSnm8kFO+59z1Uv25nGfpbd6MVGhbu1VbAV6jdSRtJzpeLH/K/8KM7Y+vUIU
         QlqHgw6UFcAx8D68xHhjZnAYtVHYnUQ5c2nmNDWaxx9XFfeYQM1Kob6O5cFmsdjMFzI+
         /Arg==
X-Forwarded-Encrypted: i=1; AJvYcCWTgYNykWINhU9VduA2QP7qAuQZDR4/2lPXLz1FAjI+8PwUSWVKGNlYy6BZzdq8dx8twwBGV9Ejyo51/xwsKaOgy2shTbJx5TajyyrQHm8=
X-Gm-Message-State: AOJu0YwzxZauQBtqux68bcma+o4wLeH6BAhEJim5xhguF7ZsrfUcGMvt
	DQl+mcrwSRLztcvOV+l6VZ1seqtaPHITN0Plu2EjyUry77Mu7iuaXVV1f2JAFQ==
X-Google-Smtp-Source: AGHT+IE3LF8hfpNLSMSSPWqWUkfiVGomFnbLr7m2kI1sM/4iiK+ulpaUDdPJbphGBmkrasuO35ZnGQ==
X-Received: by 2002:a2e:7c0a:0:b0:2ee:8407:2f58 with SMTP id 38308e7fff4ca-2eeb30e5110mr10075831fa.17.1720506268043;
        Mon, 08 Jul 2024 23:24:28 -0700 (PDT)
Message-ID: <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
Date: Tue, 9 Jul 2024 08:24:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@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: <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.07.2024 23:30, Jason Andryuk wrote:
> On 2024-07-08 05:12, Jan Beulich wrote:
>> On 08.07.2024 11:08, Roger Pau Monné wrote:
>>> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
>>>> On 08.07.2024 10:15, Jürgen Groß wrote:
>>>>> I've got an internal report about failures in dom0 when booting with
>>>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>>>>
>>>>> With some debugging I've found that the UCSI driver seems to fail to
>>>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>>>>> to being part of the MSI space. The mapping attempt seems to be the
>>>>> result of an ACPI call of the UCSI driver:
>>>>>
>>>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>>>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>>>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>>>>> [   44.575438]  __ioremap_caller+0x20d/0x350
>>>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>>>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>>>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>>>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>>>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>>>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>>>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>>>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>>>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>>>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>>>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>>>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>>>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>>>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>>>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>>>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>>>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>>>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>> [   44.575559]  platform_probe+0x48/0x90
>>>>> [   44.575567]  really_probe+0xde/0x340
>>>>> [   44.575579]  __driver_probe_device+0x78/0x110
>>>>> [   44.575581]  driver_probe_device+0x1f/0x90
>>>>> [   44.575584]  __driver_attach+0xd2/0x1c0
>>>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>>>>> [   44.575590]  bus_add_driver+0x112/0x1f0
>>>>> [   44.575593]  driver_register+0x72/0xd0
>>>>> [   44.575600]  do_one_initcall+0x48/0x300
>>>>> [   44.575607]  do_init_module+0x60/0x220
>>>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>>>>> [   44.575623]  do_syscall_64+0x82/0x170
>>>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>>>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0
>>>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
>>>>>
>>>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
>>>>> the hypervisor with -EPERM.
>>>>>
>>>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
>>>>> needs some update (IOW: could it be the mapping attempt should rather be
>>>>> honored, as there might be an I/O resources at this position which dom0 needs
>>>>> to access for using the related hardware?)
>>>>
>>>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
>>>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
>>>> space being accessed by certain incarnations of ACPI, resulting in similar
>>>> issues)?
>>>
>>> So you think ACPI is using some kind of backdoor to access the local
>>> APIC registers?
>>
>> No, I'm wondering if they're trying to access *something*. As it stands we
>> don't even know what kind of access is intended; all we know is that they're
>> trying to map that page (and maybe adjacent ones).
> 
>  From the backtrace, it looks like the immediate case is just trying to 
> read a 4-byte version:
> 
>  >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>  >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>  >>>> [   44.575550]  ucsi_register+0x24/0xa0
>  >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> 
> int ucsi_register(struct ucsi *ucsi)
> {
>          int ret;
> 
>          ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>                                sizeof(ucsi->version));
> 
> ->read being ucsi_acpi_read()
> 
> However, the driver also appears write to adjacent addresses.

There are also corresponding write functions in the driver, yes, but
ucsi_acpi_async_write() (used directly or indirectly) similarly calls
ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
ACPI object evaluation, which isn't obvious without seeing the
involved AML whether it might write said memory region. The writing
done in the write function(s) looks to be

	memcpy(ua->base + offset, val, val_len);

with their read counterpart being

	memcpy(val, ua->base + offset, val_len);

where ua->base may well be an entirely different address (looks like
it's the first of the BARs as per ucsi_acpi_probe()).

If acpi_evaluate_dsm() would only ever read the region, an option (if
all else fails) might be to similarly (to what we do for IO-APICs)
permit read accesses / mappings (by inserting the range into
mmio_ro_ranges). Yet of course first we need to better understand
what's actually going on here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:26:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:26:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755850.1164342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR4Ia-0006kz-LP; Tue, 09 Jul 2024 06:26:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755850.1164342; Tue, 09 Jul 2024 06:26:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR4Ia-0006ks-Io; Tue, 09 Jul 2024 06:26:00 +0000
Received: by outflank-mailman (input) for mailman id 755850;
 Tue, 09 Jul 2024 06:25: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=5/C9=OJ=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1sR4IZ-0006kk-QZ
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:25:59 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1ac98c0b-3dbc-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 08:25:58 +0200 (CEST)
Received: by verein.lst.de (Postfix, from userid 2407)
 id E823568AFE; Tue,  9 Jul 2024 08:25: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: 1ac98c0b-3dbc-11ef-bbfb-fd08da9f4363
Date: Tue, 9 Jul 2024 08:25:55 +0200
From: Christoph Hellwig <hch@lst.de>
To: mhklinux@outlook.com
Cc: robin.murphy@arm.com, joro@8bytes.org, will@kernel.org, jgross@suse.com,
	sstabellini@kernel.org, oleksandr_tyshchenko@epam.com, hch@lst.de,
	m.szyprowski@samsung.com, petr@tesarici.cz, iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Message-ID: <20240709062555.GB16797@lst.de>
References: <20240708194100.1531-1-mhklinux@outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240708194100.1531-1-mhklinux@outlook.com>
User-Agent: Mutt/1.5.17 (2007-11-01)

Hi Michael,

I've applied this, but I've made a few changes before that directly as
we're getting close to the end of the merge window.

Most of it is very slight formatting tweaks, but I've also kept the
dma_uses_io_tlb field under ifdef CONFIG_SWIOTLB_DYNAMIC as I
don't want to touch the device structure layout.

Let me me know if this is ok for you.  If I can get reviews today
or tomorrow I'd also love to add them, but given that all this has
been extensively discussed I went ahead with applying it.

Thanks for all your work!


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:31:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:31:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755858.1164351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR4O5-0000z3-7c; Tue, 09 Jul 2024 06:31:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755858.1164351; Tue, 09 Jul 2024 06: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 1sR4O5-0000yw-53; Tue, 09 Jul 2024 06:31:41 +0000
Received: by outflank-mailman (input) for mailman id 755858;
 Tue, 09 Jul 2024 06:31: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR4O4-0000yq-GL
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:31:40 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e574fe22-3dbc-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 08:31:38 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-52e9944764fso5318170e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 23:31: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
 d9443c01a7336-1fbb6a3fbf6sm8905835ad.115.2024.07.08.23.31.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 23:31: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: e574fe22-3dbc-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720506698; x=1721111498; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ctjoun68VmgCjTBQTj5iOOAFdO272n5VpUA4PVa6GDI=;
        b=BY+R4wp9Pe57EDkULxbeOl6hM9c0ekVGkSi4uCXHPWPrXzjQMfPvD40QLM7TXjOYua
         DSahU3fhjD9Paw2OxjlUf7Qohc5iQFuQikelicUN0YQMEO1hCbftZstXaoun4clMeeru
         ZGE76xnDAhKQ8cuZ0MPxNU0rLALnyLLpbmStYOVX9gpoWiYVQ5kAUwkJC9CiE7liKD6s
         5h2SH3q6KC5deEnCPhN+mAyCPUdHErT003+ZpPUfv6CB/6VNCiOSwbPMY1kWQfKISz0C
         4KF9Uf5rgBdqTCTEVbgbNx2VW1bXwnZUHfM9r6uRDOHKqFZBCPtayahQyZR7oAvvfMLL
         NScg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720506698; x=1721111498;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ctjoun68VmgCjTBQTj5iOOAFdO272n5VpUA4PVa6GDI=;
        b=mG5eu0CB1oriPs01aS849m2ZU98lT9ApyNdWaslaWuuH6yd1I8VSn6CZ1zWYDQvJIq
         ds1fqZf4U/EZpJGL+vSkJBCafW/8SAWQmtKm7Kc+kGkNBE3XKJfzdqpCr0zb12+MARIg
         6ISNqp5dky93uEO/DsrS5Ec24plZypFHDwOT4E/rSzXQvdNxbWY64vPZ/zClAFbDerb9
         3bmLCFhAgs4StIJ2sBOJMSleeqBq9oT92+8c7aF0swf8Q/jZjuV1evRBP7DjmXUqGUUs
         j9bSFExOcCkN/HqjZESfspLPLsM8wXnVeqJo9xcunFQ4eFfwADwJ9PUdFwM8olm9vFAh
         D3qw==
X-Forwarded-Encrypted: i=1; AJvYcCVkLHRaNCnd8aZgemzwsbmLxu4AByIAdMzeiuAo8TpfoGC00RRd8UzWwwS18+mnDfg8a/94aJfGuK8y9Zangxvzqu6PIqcVOanIzCNKYhk=
X-Gm-Message-State: AOJu0Yzg2dqfIOQX6zyabF8EDh0sC/msLiaICEUDkR+0OOSyw9Z5m1Tl
	hmMptNEeDjpMtiE/SyBxpY7ilREOUCpY5yfwfmVoPAcHbtvCv6Dzr8gcepUazA==
X-Google-Smtp-Source: AGHT+IG7bxSzR6LPJr7zLfnr5NAaylx3cQAfiY0o419l3lxszvg+BLztAGNrNOTJ0mRiSv4lmjsYuw==
X-Received: by 2002:a05:6512:1256:b0:52e:97dd:327b with SMTP id 2adb3069b0e04-52eb9991677mr1010941e87.23.1720506696984;
        Mon, 08 Jul 2024 23:31:36 -0700 (PDT)
Message-ID: <0a661f4c-5701-4ed1-b15a-493da99e04d1@suse.com>
Date: Tue, 9 Jul 2024 08:31:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 0/4] CI: part 3 (improvments to PPC)
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Oleksii Kurochko
 <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240708173522.2218293-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: <20240708173522.2218293-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.07.2024 19:35, Andrew Cooper wrote:
> Here is a run with these improvements in place:
> 
>   https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7277624801
> 
> Jan: I hope to backport this series to 4.18 so we can remove
> qemu-system-ppc64/8.1.0-ppc64 entirely.  This will simplify changes in the
> future by making the testing more consistent.

This being part 3 a relevant question would be in how far this is independent
of the earlier two parts? 

> Andrew Cooper (4):
>   CI: Fix CONTAINER_UID0=1 scripts/containerize
>   CI: Introduce a bookworm-ppc64le container
>   CI: Use bookworm-ppc64le for both build and test
>   CI: Refresh bullseye-ppc64le

The other question, seeing that the latter three patches being strictly PPC
only, would concern only patch 1: It not having a Fixes: tag and things
(supposedly) working okay right now makes me wonder whether that would need
to be part of the backport set.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:36:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:36:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755863.1164362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR4Sl-0002Fp-PT; Tue, 09 Jul 2024 06:36:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755863.1164362; Tue, 09 Jul 2024 06:36: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 1sR4Sl-0002Fi-Mo; Tue, 09 Jul 2024 06:36:31 +0000
Received: by outflank-mailman (input) for mailman id 755863;
 Tue, 09 Jul 2024 06:36:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7TZB=OJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sR4Sk-0002EC-L8
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:36:30 +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 91f0d688-3dbd-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 08:36:28 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-58b0beaf703so5789973a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 23:36:28 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bbe2d006sm684055a12.31.2024.07.08.23.36.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 23:36: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: 91f0d688-3dbd-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720506987; x=1721111787; 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=82QXH0/gTeVA0w9omUJ7STYiHJ1kyvR6i6ujfzHQfEs=;
        b=Dp3Cu1qd05IhxJHULEtDbEozoWj6yPiMwgPQ1blUdXLH1l0UI8O3EqKvPKJ0DqZcLe
         DUGZ7YNw3j2ygYPVvPtUkxiuYljHqiV9y2fwmlCHeTLfYSVa73QUTMSu/3+WhMHjoQ07
         1lNeLwaNGwNNLIOj5zaTG8Zv6/eWNSCTe9gFHL1H99w/AzWfMruYuhpRKCvTQBJf5t4r
         1vhxjzWzK0UGtyIWFeqm7k/NBbpdGUZ8zc/D+5VAiBMVVw/m5UwRB6v7nkfH0bAvEys5
         b6YNoVBM0ePhb7oSE/Uir89Xekhnzv8rxcOOf1ob09UrrGbZDT0DbZlmIPUk1EwWfazb
         MbbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720506987; x=1721111787;
        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=82QXH0/gTeVA0w9omUJ7STYiHJ1kyvR6i6ujfzHQfEs=;
        b=pojrAw0YTo5N5M2O9bCMch4Pm3rJgJgWNE9YHltu6ypiIAmsBd9Rwu/comP9sqnU/c
         LqDo+zsdqp63yN4kGHwJ+2sUOI4h5VXiRY37lVNClEL5kE+aswSvsNQ16HQZ6Sh7M1O0
         /WEgkuPLjeKdvLV/gHRUWWllfMFqo/96v2fZCu5vkV5vAbzwa5lQLK4kCdHy6aWHDRoP
         3JFrso2AV8ML5fcIUlMNayOi4liyCu82i5JKdhmMRTAbHD++KjpIJD0Ae8bDN+4Gubru
         P+voBc6TrOPWxQCLq+FvGlMfnh2tpI1YSASP0l823Z/xbgoylmopTUYKMctrtq1+LVMY
         LD5A==
X-Gm-Message-State: AOJu0Ywv8jMbSATR5RSELBK/ia7yCqrOmCAmGj4Bn0ujrIdG18RaOFi9
	fBbdYB2ezSuUrFlB1IVc/KXlap+6i+QzaspFyLXEUPZxK+cAbkTjDBisEIk6pOQ=
X-Google-Smtp-Source: AGHT+IFPynBlJbGObMRCQkFZ+bVoZic/CQuGyVAm8tfcS1cJvWOQfm3mnmkNWLQ4kRVeJZp6WmOgqA==
X-Received: by 2002:a05:6402:358e:b0:57c:9d54:67db with SMTP id 4fb4d7f45d1cf-594ba98f455mr1199148a12.9.1720506987340;
        Mon, 08 Jul 2024 23:36:27 -0700 (PDT)
Message-ID: <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
Date: Tue, 9 Jul 2024 08:36:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 09.07.24 08:24, Jan Beulich wrote:
> On 08.07.2024 23:30, Jason Andryuk wrote:
>> On 2024-07-08 05:12, Jan Beulich wrote:
>>> On 08.07.2024 11:08, Roger Pau Monné wrote:
>>>> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
>>>>> On 08.07.2024 10:15, Jürgen Groß wrote:
>>>>>> I've got an internal report about failures in dom0 when booting with
>>>>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>>>>>
>>>>>> With some debugging I've found that the UCSI driver seems to fail to
>>>>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>>>>>> to being part of the MSI space. The mapping attempt seems to be the
>>>>>> result of an ACPI call of the UCSI driver:
>>>>>>
>>>>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>>>>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>>>>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>>>>>> [   44.575438]  __ioremap_caller+0x20d/0x350
>>>>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>>>>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>>>>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>>>>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>>>>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>>>>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>>>>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>>>>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>>>>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>>>>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>>>>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>>>>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>>>>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>>>>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>>>>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>>>>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>>>>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>>>>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>> [   44.575559]  platform_probe+0x48/0x90
>>>>>> [   44.575567]  really_probe+0xde/0x340
>>>>>> [   44.575579]  __driver_probe_device+0x78/0x110
>>>>>> [   44.575581]  driver_probe_device+0x1f/0x90
>>>>>> [   44.575584]  __driver_attach+0xd2/0x1c0
>>>>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>>>>>> [   44.575590]  bus_add_driver+0x112/0x1f0
>>>>>> [   44.575593]  driver_register+0x72/0xd0
>>>>>> [   44.575600]  do_one_initcall+0x48/0x300
>>>>>> [   44.575607]  do_init_module+0x60/0x220
>>>>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>>>>>> [   44.575623]  do_syscall_64+0x82/0x170
>>>>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>>>>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0
>>>>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
>>>>>>
>>>>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
>>>>>> the hypervisor with -EPERM.
>>>>>>
>>>>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
>>>>>> needs some update (IOW: could it be the mapping attempt should rather be
>>>>>> honored, as there might be an I/O resources at this position which dom0 needs
>>>>>> to access for using the related hardware?)
>>>>>
>>>>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
>>>>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
>>>>> space being accessed by certain incarnations of ACPI, resulting in similar
>>>>> issues)?
>>>>
>>>> So you think ACPI is using some kind of backdoor to access the local
>>>> APIC registers?
>>>
>>> No, I'm wondering if they're trying to access *something*. As it stands we
>>> don't even know what kind of access is intended; all we know is that they're
>>> trying to map that page (and maybe adjacent ones).
>>
>>   From the backtrace, it looks like the immediate case is just trying to
>> read a 4-byte version:
>>
>>   >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>   >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>   >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>   >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>
>> int ucsi_register(struct ucsi *ucsi)
>> {
>>           int ret;
>>
>>           ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>                                 sizeof(ucsi->version));
>>
>> ->read being ucsi_acpi_read()
>>
>> However, the driver also appears write to adjacent addresses.
> 
> There are also corresponding write functions in the driver, yes, but
> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
> ACPI object evaluation, which isn't obvious without seeing the
> involved AML whether it might write said memory region.

I guess an ACPI dump would help here?

> The writing
> done in the write function(s) looks to be
> 
> 	memcpy(ua->base + offset, val, val_len);
> 
> with their read counterpart being
> 
> 	memcpy(val, ua->base + offset, val_len);
> 
> where ua->base may well be an entirely different address (looks like
> it's the first of the BARs as per ucsi_acpi_probe()).

According to the lspci -v output there are no BARs in the MSI space:

66:00.6 USB controller: Advanced Micro Devices, Inc. [AMD] Pink Sardine 
USB4/Thunderbolt NHI controller #2 (prog-if 40 [USB4 Host Interface])
	Subsystem: Lenovo Device 50d9
	Flags: bus master, fast devsel, latency 0, IRQ 71
	Memory at 78a00000 (64-bit, non-prefetchable) [size=512K]
	Capabilities: [48] Vendor Specific Information: Len=08 <?>
	Capabilities: [50] Power Management version 3
	Capabilities: [64] Express Endpoint, MSI 00
	Capabilities: [a0] MSI: Enable- Count=1/16 Maskable- 64bit+
	Capabilities: [c0] MSI-X: Enable+ Count=16 Masked-
	Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [2a0] Access Control Services
	Kernel driver in use: thunderbolt
	Kernel modules: thunderbolt

> If acpi_evaluate_dsm() would only ever read the region, an option (if
> all else fails) might be to similarly (to what we do for IO-APICs)
> permit read accesses / mappings (by inserting the range into
> mmio_ro_ranges). Yet of course first we need to better understand
> what's actually going on here.

As the mapping is currently trying to allow write access, too, the kernel
would need some modification as well.


Juergen


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 06:40:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 06:40:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755871.1164371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR4Wc-0004zo-Bz; Tue, 09 Jul 2024 06:40:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755871.1164371; Tue, 09 Jul 2024 06:40:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR4Wc-0004yf-8r; Tue, 09 Jul 2024 06:40:30 +0000
Received: by outflank-mailman (input) for mailman id 755871;
 Tue, 09 Jul 2024 06:40:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR4Wa-0004yT-W8
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 06:40:29 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 203e6be2-3dbe-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 08:40:26 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ee91d9cb71so44759251fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 08 Jul 2024 23: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
 98e67ed59e1d1-2c99a92a430sm9380919a91.4.2024.07.08.23.40.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 08 Jul 2024 23: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: 203e6be2-3dbe-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720507226; x=1721112026; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7GHixLYQ2ebze7nShu37lQqC/dPJuIAaOjuzoELZjBI=;
        b=IYZW+VsCmwpFGOWvbKr+7TexhLPZbD+70Va4HbwLupyAQadQqqX2hHwhvPaIBZ7Vfr
         kcl9YgilsAqZtcYnZUfqxbZvVbbL33Owrv2FPRhgoqOF+mMOsGDcg0QhH92ckX+iViyI
         AWmSKvHJMVKmLNm8B9zRGfz7WQRVop15AUnr05N7NvKX13LPAmZekjSwIBRs8ld+UmmD
         qdiHBGDAJsej+tgnSJ89Qt7twxPNK5fM9L1y5Nq1SzY7Io1EOJLpMQdsr+L19/DzbVNL
         K5+ya+g9ikV8qr09+Zvw156ljgPiLd7B3TGrEGfwaOzpCseNJI2FTCREn5hqiNG0TvSy
         LesA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720507226; x=1721112026;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7GHixLYQ2ebze7nShu37lQqC/dPJuIAaOjuzoELZjBI=;
        b=TPm1jFmEchWVQFaBvLY05JqQxvboxPHVPnao1WtR+o+d7Tdzp2waHhoN/u3vAngX1c
         IEMjqt2fgga+U8XesoinYsA3LjKCKPijJ8U0NF/XcaeMlep2Z8b4lsgb/7NeuiXDgnex
         pZ1r9H049CWsSRGKSz9uExPWys92h4C9aigKuSQ/JaXam6I/hhtpYhgPAx+YFQLRM9oh
         gENAgw/MGzr72k5y20vkKkq6HQHERO1aPVe45IP0WrMJxvx+DKLYQbw8PC6CzGrXMTue
         XcrHrbK8BNSVx1cIpbZKR96HjRWR5OsbiDowLj6gFBBcUvBuDzAoKNmbkLORibrucPf5
         /CTA==
X-Forwarded-Encrypted: i=1; AJvYcCWgnDME9Ppzr0yxPOV/ypYN+fMwlBWbN3hb6f3nEJ4w62Mw1J5ROkKzXXhGS6oO7i2fHBv1qzTSRBXM44izW0L90gyKq2EfHXg6UlUDWMM=
X-Gm-Message-State: AOJu0YxZUgZrz088tPjcErBE3ExWF1w7Q9SkDXPhnakLZfttBMMhAhM0
	zEW4UsFeEl/ePE3HV6hG/wFj93YKRlfY0FYU1OMi6J/io0/Qr9lIE8j+B4OCFQ==
X-Google-Smtp-Source: AGHT+IEOec8ZrfQ+RmQE/NvvJ1AmbK9Q7mm4TcXeb4XxqFJy+95b8cN+ny5Rqn6KWlcaOzYbVuG5iA==
X-Received: by 2002:a2e:9ed4:0:b0:2ec:5759:bf2f with SMTP id 38308e7fff4ca-2eeb30bc32emr10645091fa.7.1720507226019;
        Mon, 08 Jul 2024 23:40:26 -0700 (PDT)
Message-ID: <103d60b6-001b-43f0-bbff-a0806cebda73@suse.com>
Date: Tue, 9 Jul 2024 08:40:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH] x86/cpuid: Expose max_vcpus field in HVM
 hypervisor leaf
To: Matthew Barnes <matthew.barnes@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <c0a9f52107e22957daaa5b1b0e05e4160db5f064.1720452354.git.matthew.barnes@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c0a9f52107e22957daaa5b1b0e05e4160db5f064.1720452354.git.matthew.barnes@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.07.2024 17:42, Matthew Barnes wrote:
> Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
> startup.
> 
> There are efforts to support a maximum of 128 vCPUs, which would involve
> bumping the OVMF constant from 64 to 128.
> 
> However, it would be more future-proof for OVMF to access the maximum
> number of vCPUs for a domain and set itself up appropriately at
> run-time.
> 
> For OVMF to access the maximum vCPU count, Xen will have to expose this
> property via cpuid.

Why "have to"? The information is available from xenstore, isn't it?

> This patch exposes the max_vcpus field via cpuid on the HVM hypervisor
> leaf in edx.

If exposing via CPUID, why only for HVM?

> --- a/xen/include/public/arch-x86/cpuid.h
> +++ b/xen/include/public/arch-x86/cpuid.h
> @@ -87,6 +87,7 @@
>   * Sub-leaf 0: EAX: Features
>   * Sub-leaf 0: EBX: vcpu id (iff EAX has XEN_HVM_CPUID_VCPU_ID_PRESENT flag)
>   * Sub-leaf 0: ECX: domain id (iff EAX has XEN_HVM_CPUID_DOMID_PRESENT flag)
> + * Sub-leaf 0: EDX: max vcpus (iff EAX has XEN_HVM_CPUID_MAX_VCPUS_PRESENT flag)
>   */

Unlike EBX and ECX, the proposed value for EDX cannot be zero. I'm therefore
not entirely convinced that we need a qualifying flag. Things would be
different if the field was "highest possible vCPU ID", which certainly would
be the better approach if the field wasn't occupying the entire register.
Even with it being 32 bits, I'd still suggest switching its meaning this way.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:02:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:02:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755879.1164381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR4rB-0002hD-UM; Tue, 09 Jul 2024 07:01:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755879.1164381; Tue, 09 Jul 2024 07:01: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 1sR4rB-0002h6-Rb; Tue, 09 Jul 2024 07:01:45 +0000
Received: by outflank-mailman (input) for mailman id 755879;
 Tue, 09 Jul 2024 07:01:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR4rA-0002fo-4E
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:01:44 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1835fd7d-3dc1-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 09:01:41 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-52ea1a69624so5527060e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 00: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
 d2e1a72fcca58-70b439b9555sm1035661b3a.198.2024.07.09.00.01.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 00:01: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: 1835fd7d-3dc1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720508501; x=1721113301; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dA98gXcCDPIk/pF33kneDy6d1TV3YJuGmg68ii6L554=;
        b=VjRvQi+w/KXLsJkN1AIw3S9MiIwk6YfrrqozLMBFyOfVojpSj78FpiHpVUT7oa7A2e
         /ZOX8DYzo1RE5BUZVKwairXyPbWVtxLgN7CjhNAfB9p2sUwlYKT0W1SdeVT/9QnsNIL2
         DdKKFw293C3Fq8vStKT+94fDvpi9Oo3JfwBxyAOx0lCYGZKVIl9RAEhJQVzfBVeec2M/
         6/1DwHU+OVbjMkghThjZ3HvmIsxZ6ahh8rLle/YF2SB0OC36n6al/lmeZc01LJK3VUF6
         tIqtLV4qbZprqaybHS64V0ZmU6dVHw7NSVP03sTZ7xkFCongA5pMQJPo/GaQ+ppXlfeg
         n0rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720508501; x=1721113301;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dA98gXcCDPIk/pF33kneDy6d1TV3YJuGmg68ii6L554=;
        b=ETbvA5HkRmJ6YzZuqf+PUlMecWsLwI6t6G6A8P+/x18L7HZhPzsluIPXnHnPERdQqq
         mvkanAwD2e4B2w+SSIcXHCW6SRr+/Gpa6pGqXJPN6x6VwEjbXoAfCA0rzMAn4gTY8Rcw
         MuCAG5j1M3q4FvhIQLEzv+15ppdwPtg6kfV+mF4dDEsmHkCyPAaxZIz0itFwMFNcQBUc
         dcoAgrmrQTLl8rH5LQoJzWJAoGd7ock3PKDJDFiskq3TKAiA5b2TTJuwbS7yGPOLL+6Z
         rXodmEPLoDYECV8jyvnVRryRF/My131ylW+V7+WPYkoXiLZf+Z9vf7WbGLTsYwwh+OVn
         C/7A==
X-Gm-Message-State: AOJu0YwUenX/h7nVQhuYt5/xRPg9HMMWYcXRdiyUBaxZAmklXhZntT/x
	jiQvUj8XZyl4xQsyFJEK3ZVxXmJ1MOeXik1WfxLXYWYX/7usUHaj3qfCpWdtEQ==
X-Google-Smtp-Source: AGHT+IEL54TMW8b71IGlM8jeUFVPdxKa9h5epEXjCT9fbZ+B3TKMfO+Jw+32ulA7Z8YqzOju+gdL1g==
X-Received: by 2002:a05:6512:688:b0:52c:df51:20bc with SMTP id 2adb3069b0e04-52eb99942b2mr944933e87.16.1720508500091;
        Tue, 09 Jul 2024 00:01:40 -0700 (PDT)
Message-ID: <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
Date: Tue, 9 Jul 2024 09:01:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@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: <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.07.2024 08:36, Jürgen Groß wrote:
> On 09.07.24 08:24, Jan Beulich wrote:
>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>   From the backtrace, it looks like the immediate case is just trying to
>>> read a 4-byte version:
>>>
>>>   >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>   >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>   >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>   >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>
>>> int ucsi_register(struct ucsi *ucsi)
>>> {
>>>           int ret;
>>>
>>>           ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>                                 sizeof(ucsi->version));
>>>
>>> ->read being ucsi_acpi_read()
>>>
>>> However, the driver also appears write to adjacent addresses.
>>
>> There are also corresponding write functions in the driver, yes, but
>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>> ACPI object evaluation, which isn't obvious without seeing the
>> involved AML whether it might write said memory region.
> 
> I guess an ACPI dump would help here?

Perhaps, yes.

>> The writing
>> done in the write function(s) looks to be
>>
>> 	memcpy(ua->base + offset, val, val_len);
>>
>> with their read counterpart being
>>
>> 	memcpy(val, ua->base + offset, val_len);
>>
>> where ua->base may well be an entirely different address (looks like
>> it's the first of the BARs as per ucsi_acpi_probe()).
> 
> According to the lspci -v output there are no BARs in the MSI space:
> 
> 66:00.6 USB controller: Advanced Micro Devices, Inc. [AMD] Pink Sardine 
> USB4/Thunderbolt NHI controller #2 (prog-if 40 [USB4 Host Interface])
> 	Subsystem: Lenovo Device 50d9
> 	Flags: bus master, fast devsel, latency 0, IRQ 71
> 	Memory at 78a00000 (64-bit, non-prefetchable) [size=512K]
> 	Capabilities: [48] Vendor Specific Information: Len=08 <?>
> 	Capabilities: [50] Power Management version 3
> 	Capabilities: [64] Express Endpoint, MSI 00
> 	Capabilities: [a0] MSI: Enable- Count=1/16 Maskable- 64bit+
> 	Capabilities: [c0] MSI-X: Enable+ Count=16 Masked-
> 	Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> 	Capabilities: [2a0] Access Control Services
> 	Kernel driver in use: thunderbolt
> 	Kernel modules: thunderbolt

Right, this matches what I was vaguely guessing from reading the code in
the driver. My present understanding is that the object evaluation
actually triggers the read/write operation to produce/consume data inside
that single BAR's space.

>> If acpi_evaluate_dsm() would only ever read the region, an option (if
>> all else fails) might be to similarly (to what we do for IO-APICs)
>> permit read accesses / mappings (by inserting the range into
>> mmio_ro_ranges). Yet of course first we need to better understand
>> what's actually going on here.
> 
> As the mapping is currently trying to allow write access, too, the kernel
> would need some modification as well.

Not really, no. It would be better if the kernel didn't ask for write
access, but get_page_from_l1e() simply tells its caller to remove the
W bit from the PTE in case a page is recorded in mmio_ro_ranges. That's
also why for the IO-APIC case we got away without needing to alter the
kernel (which would likely be pretty ugly, as acpi_os_map_iomem() sits
very far away from the place where we would have a way to know that a
mapping is sufficient to be r/o; the function itself takes only
address and size right now, no permissions or cachability or anything).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:05:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:05:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755886.1164392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR4uR-0003kb-CU; Tue, 09 Jul 2024 07:05:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755886.1164392; Tue, 09 Jul 2024 07:05: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 1sR4uR-0003kU-9O; Tue, 09 Jul 2024 07:05:07 +0000
Received: by outflank-mailman (input) for mailman id 755886;
 Tue, 09 Jul 2024 07:05: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR4uQ-0003kO-6B
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:05:06 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9034c246-3dc1-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 09:05:04 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2ee90f56e31so44452541fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 00: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
 d2e1a72fcca58-70b43967825sm1051448b3a.122.2024.07.09.00.04.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 00:05: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: 9034c246-3dc1-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720508702; x=1721113502; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OF3a5fkXI4TryZqIwH/uDhD1AmBG0NzXAQjzVka15W8=;
        b=NntFZryPSY208J0eBrukVhCwLXd2+4u1Op783bhpptSgDiWef72GIzakiCpwI/4BxG
         ZTz8b4hGMFzTcDGGz7Twq7y74emBTYRlt4oTYMqvA2f1ZzSOvBIig4QiJuRbuXXbs4hh
         zR6NndS9MAd3Gn0UHHdKZfr6dDpX+lZmstehnq8JtVMBKPBXN5SS5+yYkBv2PcBZ27cJ
         uW8xxc4t9y7PORUIMHKydVwiBSy2ABkMoa9K5whKhfSwU4wBlSNpkruAoJsD8owH547r
         qwDkHuBXRlpd5vDAr/oIvHXOyHUkc5mKWgRkYxCoa2ZT3yXasytCB90lWSKajl8tYPPv
         yP5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720508702; x=1721113502;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OF3a5fkXI4TryZqIwH/uDhD1AmBG0NzXAQjzVka15W8=;
        b=P17ChsgJHis06MQKSiiNlWkj6e9S5QUKJ3WzXYPTGMxcQgzCeDdg46YU/D6/eI8IzW
         AqEGnys88oKM5jB/n36lXdO+lATo39Y7C4b+w69meW6VZ8WhQKn6IYhxu/PdysBE54EC
         +/Ohd4QRkSBaLhDdSO9ofMiSe1LtPTkBSjUrhAiuD3DDhR0a2LrB70DtPRTBIJiw1msR
         rssHKmb9IaQ/Cd8kZKhnOUMLNaTUgK//9SjJlRgt1swjeXjHVqlzXx/VDvIn7b6vzID2
         6JgUtV33TRfHEO/5LYBgTV8Iu7xMA3SMa1tYYQkPtktyJluAQtx9tN++ZoG7IoVMvw+g
         hEng==
X-Forwarded-Encrypted: i=1; AJvYcCV+u3WwRovwew+FxfwLC0DLLV1qOJ4Bpw6FMF/LLHNsT7VbjPe5ezRxuYRSrMqWsK4WJejqH+aS4qKByfjdmQyQUsSqWKgojd+LGaZNMs0=
X-Gm-Message-State: AOJu0YyxCd6bFttGOWEfhyXCJd7vHT3Op+PAjkLSYVBwQU03IPYoCRVY
	X4qhLhaQMOILHerNyBlYqIgS9sJHWzAa8kbrChGhNYwaUHgRCWt63NAwckG+2g==
X-Google-Smtp-Source: AGHT+IFdSjvf3VeMn8gc2QSWjvnoY4lre6K+SarS4nDFKStesnO7erGQ0TlLkAZ8ERA7jO9c7ONglA==
X-Received: by 2002:a05:6512:3d93:b0:52c:9413:d02f with SMTP id 2adb3069b0e04-52eb99971fbmr944753e87.17.1720508702378;
        Tue, 09 Jul 2024 00:05:02 -0700 (PDT)
Message-ID: <36dff4f7-797b-4a22-892c-b8961b810157@suse.com>
Date: Tue, 9 Jul 2024 09:04:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 03/14] x86/p2m: guard altp2m routines
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <c5c61affddf8eef9b0d3a67314ba5d09163531aa.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c5c61affddf8eef9b0d3a67314ba5d09163531aa.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 07:50, Sergiy Kibrik wrote:
> Initialize and bring down altp2m only when it is supported by the platform,
> e.g. VMX. Also guard p2m_altp2m_propagate_change().
> The purpose of that is the possibility to disable altp2m support and exclude its
> code from the build completely, when it's not supported by the target platform.
> 
> Here hvm_altp2m_supported() is being used to check for ALTP2M availability,
> which is only defined if HVM enabled, so a stub for that routine added for
> !HVM configuration as well.
> 
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>

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

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:10:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:10:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755892.1164401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR4z6-0005xg-Ts; Tue, 09 Jul 2024 07:09:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755892.1164401; Tue, 09 Jul 2024 07: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 1sR4z6-0005xZ-R5; Tue, 09 Jul 2024 07:09:56 +0000
Received: by outflank-mailman (input) for mailman id 755892;
 Tue, 09 Jul 2024 07:09:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR4z6-0005xT-5T
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:09:56 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e6ac928-3dc2-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 09:09:55 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2ee77db6f97so65398481fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 00:09: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
 d9443c01a7336-1fbb6a290e2sm9354225ad.70.2024.07.09.00.09.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 00:09: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: 3e6ac928-3dc2-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720508995; x=1721113795; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=giYwKDv/WfaiYnUIAUjKfCoVbCKtcnHfSfWgaBsb9Yw=;
        b=f8HsNyubWkIBfYACofZrCy+SLvug7QWt/YJUBZaek48czq/vwfp+el1ejdqgeS5kK/
         xl17gB7IvFwhslutodFwPo/XM2aZ5DsDn+yc4tPDOP/3/dq9/z1AVtk/H5ryTt7eI+WG
         P8ulewG7IRlYiEt/ZFPo07/K1DEWlaazoy51fAuVLm+x4n2Cy8n8xSScCKN39OizOl19
         jhkPBIYV/rMelYh/QM3D+bHexOEywtpWPOLR4RjrMtBvcbwf6aNl71QDWPi1TQ3m5hzI
         nR/Ykh+m63JX10phCuRnMvKPG4CYrwnl/v3G12qcZX+WJrIlSZMnTvMgVjb7LI6FpxdD
         7b1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720508995; x=1721113795;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=giYwKDv/WfaiYnUIAUjKfCoVbCKtcnHfSfWgaBsb9Yw=;
        b=MFFWE1NcgeRxXk1Rtxlk5GWYUmfOr/AnNtyNM7wBCq87bgW7MOLTaNPQHIvWT9e681
         gSfwNTkdTAvbLvHS94tYKVZA1imkFZKZnO/QOYScyQhCwdStywFwvskYDFJmtZ8QPHKF
         Id77icjvQF2+WoFhwvkCqMbOns3Y8WO2w0UKv/cV2hBiWYpKhVXXsX0zuPvwYHD6ZMaN
         JTpAG3Gi0XCBmMEn+v5w+wLNLaMJBKTvWY5ypWbTIu2iaCeASOiBU5vJgX9gwv8trunj
         +Y38ay4zZeE28mIVBqh7Xqc8cOHrPDOecyDGMp2GAI27hLDnepO1RxwJKVn3ghFvpSWY
         JBLw==
X-Forwarded-Encrypted: i=1; AJvYcCWJVSBwVfpj6pYEPxae3w6HO47D1IGINm545a8TcYjuMIp274hJqjIaMOSg3XfShi9Ju2AM0TLKhC9bSD+jCm0s2kOzYAUzTpfz0CtDwoc=
X-Gm-Message-State: AOJu0Yzy4FGTrzdSoaeEuZpHTO6g38ewTybF1ySO0wJ+hdSX5DEVA1G3
	8+cFq1aHZSlWuD/pF8QM3OlIRk2q+vOCXudtb3C58f/vBJdUl4A85+Zh0ucm9w==
X-Google-Smtp-Source: AGHT+IEW/WwVDKOSbnOUwMSKNLBqYcGoMbV7P6NYZMuwx91mwjejBA9yHtF5KYn3Fw7lPfvOrwvYYQ==
X-Received: by 2002:a2e:b618:0:b0:2ec:5f85:61c0 with SMTP id 38308e7fff4ca-2eeb318923bmr13028091fa.48.1720508994732;
        Tue, 09 Jul 2024 00:09:54 -0700 (PDT)
Message-ID: <f917837a-e9ee-4d55-b158-208de57ee034@suse.com>
Date: Tue, 9 Jul 2024 09:09:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 02/14] x86/altp2m: add static inline stub for
 altp2m_vcpu_idx()
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <952cb307528f16fc36a3fadbe26d83bc6805f81e.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <952cb307528f16fc36a3fadbe26d83bc6805f81e.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 07:48, Sergiy Kibrik wrote:
> The stub just returns 0 due to implementation of  p2m_get_mem_access() for
> x86 & ARM expects it to be 0 when altp2m not active or not implemented.
> 
> The separate stub is favoured over dynamic check for alt2pm availability
> inside regular altp2m_vcpu_idx() because this way we retain the possibility
> to later put the whole struct altp2mvcpu under CONFIG_ALTP2M.
> 
> The purpose of the change is later to be able to disable altp2m support and
> exclude its code from the build completely, when not supported by target
> platform (as of now it's implemented for Intel EPT only).
> 
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>

Yet what doesn't become clear is why 0 is a valid value to return. On the
surface 0 is a valid index when altp2m is enabled. In which case it
couldn't be used (without clarification) when altp2m is disabled.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:12:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:12:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755898.1164412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR51H-0007aW-Cz; Tue, 09 Jul 2024 07:12:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755898.1164412; Tue, 09 Jul 2024 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 1sR51H-0007aP-9Z; Tue, 09 Jul 2024 07:12:11 +0000
Received: by outflank-mailman (input) for mailman id 755898;
 Tue, 09 Jul 2024 07: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR51G-0007aJ-Dy
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:12:10 +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 8db9c3c5-3dc2-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 09:12:08 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3678aa359b7so3588493f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 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
 98e67ed59e1d1-2ca34e94493sm1137991a91.33.2024.07.09.00.12.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 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: 8db9c3c5-3dc2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720509128; x=1721113928; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=w7VhF5t5zSQZ3MxiMI90gy4vwELFzEWqV6BtXSXK6zo=;
        b=VSgmgB/3V1aRnhoHg9+VnkZyRm5DHcVW9PCDo2w2ibbNEiPYxJkQQlxkaXXUe/tzst
         iqOth90V4pySbwnBysrSV/eeus6K1U2Lk8vF9hv6+H4RZ16rAo8ALPB273wuwJmgQAis
         yXgaCd55Xs6iWC1qHdxaoxRGJevjlEgczhrAGfCe2Nvb2f6dwXnq11Zfs60ERlo9T08c
         eHFT17suvCXE8SFCO6Tutq3TGCG8kykQ0XxgDQzAzsFE5BcB0t+uisR8pLJhOPxN9IJs
         lTrVV3RCyKw6A45BmTpxCitifE8BE5j2ls9MEhWlbLFUcPSqmgX05Z+E1MdQA/J/sc6P
         4jHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720509128; x=1721113928;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w7VhF5t5zSQZ3MxiMI90gy4vwELFzEWqV6BtXSXK6zo=;
        b=CEePFpqMfzcw8eOI7W84r3Vwqxj9TPI3ySjzeFd87caMcXpMBJfwjeVpKVtYPt1O6Y
         s/cXAQzmv6pVNJtFWgdPBpQJ0nTz96o0zK0LqjPB8T7VJcGAlv3F4Ug5aYm/1Rwyot9T
         fso4SPGO+BNYxBICyxVPhJpUkcVPCR0hbyrxuT14EuuNzydJSf3ZgT8s77T97D4HLJ3j
         boU40X9MGBk0JDcxtPu143NLg9OxNyF/hLFpYyGFQQztO0teFoFV3RrcgNX24j+jXqiW
         1JF7i6mqR5dB8/Rbl2WTgZ1Aamkt7yJA7lNBer679k5AAdSZK35oY5dSC5zbYhVVvErz
         7K0g==
X-Forwarded-Encrypted: i=1; AJvYcCVKUh+npwi4xv61teztVbtSlGYjcv3NKaj2SVa8SU3u6rIgPG07ohrVQVPkk871+Ma+Ae6LMP6KOHEeF+1rnEmUj9NKA+/HZbV1ArHAvOc=
X-Gm-Message-State: AOJu0YwWfabJQOnUTZk+/spTvM2Q8hVp3JmUsIgjHDV51B+CxOwaMqVB
	Nkz5YUghsfW1cD1RKQSP+Ic8TrAezr/Np6aWiAy3mCVpCz5iPOEECZ028l3X2A==
X-Google-Smtp-Source: AGHT+IGLl6qCmRyuJ2U5Gl7CXq1eDR5nrMzz7WJs5rNR4Tfg4rd+u50KKWtH/PEdsPmq2iNKPJGprA==
X-Received: by 2002:a5d:548b:0:b0:362:23d5:3928 with SMTP id ffacd0b85a97d-367d2b534c3mr1072182f8f.17.1720509127787;
        Tue, 09 Jul 2024 00:12:07 -0700 (PDT)
Message-ID: <1d3476db-019f-4e5e-ad5f-381fe1e5b1c6@suse.com>
Date: Tue, 9 Jul 2024 09:11:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 01/14] x86: introduce AMD-V and Intel VT-x Kconfig
 options
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Xenia Ragiadakou <burzalodowa@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <f6bfed3cd9e9fff25cbe0c5e16d8d88541be212f.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f6bfed3cd9e9fff25cbe0c5e16d8d88541be212f.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 07:45, Sergiy Kibrik wrote:
> From: Xenia Ragiadakou <burzalodowa@gmail.com>
> 
> Introduce two new Kconfig options, SVM and VMX, to allow code
> specific to each virtualization technology to be separated and, when not
> required, stripped.
> CONFIG_SVM will be used to enable virtual machine extensions on platforms that
> implement the AMD Virtualization Technology (AMD-V).
> CONFIG_VMX will be used to enable virtual machine extensions on platforms that
> implement the Intel Virtualization Technology (Intel VT-x).
> 
> Both features depend on HVM support.
> 
> Since, at this point, disabling any of them would cause Xen to not compile,
> the options are enabled by default if HVM and are not selectable by the user.
> 
> No functional change intended.
> 
> Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> ---
> changes in v3:
>  - tag added

And then removed again in v4? My prior ack stands, but - as before - conditional
upon us being certain that we want to go with the ambiguous ...

> changes in v2:
>  - simplify kconfig expression to def_bool HVM
>  - keep file list in Makefile in alphabetical order
> changes in v1:
>  - change kconfig option name AMD_SVM/INTEL_VMX -> SVM/VMX

... result of this change (firmly ambiguous for SVM, latently for VMX).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:13:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:13:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755903.1164422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR529-00087o-Jr; Tue, 09 Jul 2024 07:13:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755903.1164422; Tue, 09 Jul 2024 07: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 1sR529-00087h-HG; Tue, 09 Jul 2024 07:13:05 +0000
Received: by outflank-mailman (input) for mailman id 755903;
 Tue, 09 Jul 2024 07:13: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=/YBx=OJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sR528-00083F-I0
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:13:04 +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 ae0dda03-3dc2-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 09:13:02 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-367a183df54so2943508f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 00:13:02 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-367cde89133sm1661554f8f.54.2024.07.09.00.13.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Jul 2024 00: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: ae0dda03-3dc2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720509182; x=1721113982; 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=uvgNUAUrzsCYlo5sn05uFO2ZrXzH7/S2QV0Ym7DA/Hs=;
        b=qSuPjFNs44wiPe3hSj9Br5hVJ/YymRCTHoBIw+m5UA539EMwnEH0CHEmMQIiOgyTdb
         go+fED7Qi3vAW97LFiTVh4dXG9vzCzdgrWR2loUHdchSQlCrFLeiO3ePomYYEjHMNsZQ
         jrSuVb7+ttPNJpL76hbRmwenyqwJa7k4l3nHo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720509182; x=1721113982;
        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=uvgNUAUrzsCYlo5sn05uFO2ZrXzH7/S2QV0Ym7DA/Hs=;
        b=tNH04E2ZJ+i7Bl0WV/2UuJBvOmz47pERExagnWYs8OOuTjC0I1nj/7xiLA9EVYyaCB
         uuDdCPwsHdZpwEPLmMbgxM4q5J6te2dL/GS7vRAzcodJe97PlDqSyTAESJw3R584Kd1S
         9BCUx9TbdXMlP5YC1eh89X8uwLxX5Sx1v1OepmaSeEJH3st9mu7CSQSKphlMDPxmiUI2
         llD+TdvUnRMyxJtGQGLPlK4BwsYx4kkHuMjBm9gOQJysNboKFuRQPGFNGNki+f5OHnae
         8x2vgKQxlgo5Q3JRnvBLOoWuX+w+/ZjNApGVdrFfR1Nvrl95m9hF8rFo+QDn8TdfRXbk
         z7tQ==
X-Forwarded-Encrypted: i=1; AJvYcCWkIQBNIcpMRzqvSkwyJTzHG1EN++b2H/JnB1OgJ1zzVhaSBsb+Z0jXGcQ1CK4czEkqoVY4I5wQIxZMReACvzphK7C8KUFB9pScmLz9JE4=
X-Gm-Message-State: AOJu0YzLLPa3tCuB5/dTeCGuhJ67aXApJi6uROrnsTvHAci19HXzlnrC
	X9ay2Iu5+MqeJSdcOiWOdZvv0Nx22QRt6ym6K76zdNSXpz0w7IKOCGG1//yEKPQ=
X-Google-Smtp-Source: AGHT+IFghBQdqK8rcUi2fvUsO9ChDjcJNgijMvLFBPMVg2HVY8nnM0KMc5Z6S8qim35qicO93tAk+g==
X-Received: by 2002:adf:ef01:0:b0:367:979c:bedb with SMTP id ffacd0b85a97d-367cea7352amr1140495f8f.23.1720509181820;
        Tue, 09 Jul 2024 00:13:01 -0700 (PDT)
Date: Tue, 9 Jul 2024 09:13:00 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	=?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: Problems in PV dom0 on recent x86 hardware
Message-ID: <Zozi_ExY_JjnjvRZ@macbook.local>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>

On Tue, Jul 09, 2024 at 08:24:20AM +0200, Jan Beulich wrote:
> On 08.07.2024 23:30, Jason Andryuk wrote:
> > On 2024-07-08 05:12, Jan Beulich wrote:
> >> On 08.07.2024 11:08, Roger Pau Monné wrote:
> >>> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
> >>>> On 08.07.2024 10:15, Jürgen Groß wrote:
> >>>>> I've got an internal report about failures in dom0 when booting with
> >>>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
> >>>>>
> >>>>> With some debugging I've found that the UCSI driver seems to fail to
> >>>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
> >>>>> to being part of the MSI space. The mapping attempt seems to be the
> >>>>> result of an ACPI call of the UCSI driver:
> >>>>>
> >>>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
> >>>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
> >>>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
> >>>>> [   44.575438]  __ioremap_caller+0x20d/0x350
> >>>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
> >>>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
> >>>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
> >>>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
> >>>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
> >>>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
> >>>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
> >>>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
> >>>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
> >>>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
> >>>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
> >>>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
> >>>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
> >>>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
> >>>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
> >>>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
> >>>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
> >>>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
> >>>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
> >>>>> [   44.575550]  ucsi_register+0x24/0xa0
> >>>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> >>>>> [   44.575559]  platform_probe+0x48/0x90
> >>>>> [   44.575567]  really_probe+0xde/0x340
> >>>>> [   44.575579]  __driver_probe_device+0x78/0x110
> >>>>> [   44.575581]  driver_probe_device+0x1f/0x90
> >>>>> [   44.575584]  __driver_attach+0xd2/0x1c0
> >>>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
> >>>>> [   44.575590]  bus_add_driver+0x112/0x1f0
> >>>>> [   44.575593]  driver_register+0x72/0xd0
> >>>>> [   44.575600]  do_one_initcall+0x48/0x300
> >>>>> [   44.575607]  do_init_module+0x60/0x220
> >>>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
> >>>>> [   44.575623]  do_syscall_64+0x82/0x170
> >>>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
> >>>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0
> >>>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
> >>>>>
> >>>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
> >>>>> the hypervisor with -EPERM.
> >>>>>
> >>>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
> >>>>> needs some update (IOW: could it be the mapping attempt should rather be
> >>>>> honored, as there might be an I/O resources at this position which dom0 needs
> >>>>> to access for using the related hardware?)
> >>>>
> >>>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
> >>>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
> >>>> space being accessed by certain incarnations of ACPI, resulting in similar
> >>>> issues)?
> >>>
> >>> So you think ACPI is using some kind of backdoor to access the local
> >>> APIC registers?
> >>
> >> No, I'm wondering if they're trying to access *something*. As it stands we
> >> don't even know what kind of access is intended; all we know is that they're
> >> trying to map that page (and maybe adjacent ones).
> > 
> >  From the backtrace, it looks like the immediate case is just trying to 
> > read a 4-byte version:
> > 
> >  >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
> >  >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
> >  >>>> [   44.575550]  ucsi_register+0x24/0xa0
> >  >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
> > 
> > int ucsi_register(struct ucsi *ucsi)
> > {
> >          int ret;
> > 
> >          ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
> >                                sizeof(ucsi->version));
> > 
> > ->read being ucsi_acpi_read()
> > 
> > However, the driver also appears write to adjacent addresses.
> 
> There are also corresponding write functions in the driver, yes, but
> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
> ACPI object evaluation, which isn't obvious without seeing the
> involved AML whether it might write said memory region. The writing
> done in the write function(s) looks to be
> 
> 	memcpy(ua->base + offset, val, val_len);
> 
> with their read counterpart being
> 
> 	memcpy(val, ua->base + offset, val_len);
> 
> where ua->base may well be an entirely different address (looks like
> it's the first of the BARs as per ucsi_acpi_probe()).
> 
> If acpi_evaluate_dsm() would only ever read the region, an option (if
> all else fails) might be to similarly (to what we do for IO-APICs)
> permit read accesses / mappings (by inserting the range into
> mmio_ro_ranges). Yet of course first we need to better understand
> what's actually going on here.

When accessing from the CPU, what's in this range apart from the first
page (0xfee00) being the APIC MMIO window in xAPIC mode?

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:15:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:15:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755907.1164432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR53z-0000FF-V2; Tue, 09 Jul 2024 07:14:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755907.1164432; Tue, 09 Jul 2024 07:14:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR53z-0000F8-SC; Tue, 09 Jul 2024 07:14:59 +0000
Received: by outflank-mailman (input) for mailman id 755907;
 Tue, 09 Jul 2024 07:14: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR53y-0000F0-79
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:14:58 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f18cb08a-3dc2-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 09:14:55 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-52ea0f18500so4558668e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 00:14: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
 d9443c01a7336-1fbb6a2c0dasm9427605ad.108.2024.07.09.00.14.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 00:14: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: f18cb08a-3dc2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720509295; x=1721114095; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt: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/SQKJYss2l964rLciIHt3srkRZoXhpQW3glmoxY3qc=;
        b=ToxTCbGdp1p2ggjwTDFyksLD9Exb80/CYg+nsxvFViQ5xFNjRE0N4n68wXaNpCyx1Y
         07b81Iy3DxjzMikA1WuHX8fN/E3GBFrTMRgfAgLlM7csML36hOwHrYMfXEj8/6zXYiq0
         okQdioTPJ1alkN12oJw15I2Nir6MYgRNIwn0R+SJPaVdugKLdZwKiqufCIzrE53vFChF
         224GfR3c9op2AMiiFIIsT9iK9A/U2OfJ46A2CNWJmC4bHl5rhr0axO5V9yFqMKZmWENY
         A1AAzKRgQDFxjU146P6n/NbKE0plL/pV7qxs9h9infzhw+wa5eexwNa01e2X2pfPVzfV
         BXxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720509295; x=1721114095;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references: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/SQKJYss2l964rLciIHt3srkRZoXhpQW3glmoxY3qc=;
        b=BRiVfBbxmqHvpum1fv7WMwDexNK6N7TrQ2FuJIDp/p07s1B5e2jR8xLNmbm7WyMpLE
         M2dS7HIE9BNjipK2+Zi+rAKUpPkR13+MxWe1gTtYnFjdxiqNX+TWb8EgsmphT+Y/Tuys
         o8r9ssOhwB9aPjvaELjMf6jdj8+KvIAAOzZWsiN3eFjGyf/8yccyjb7q2bKWkCkanIYd
         QqxYQonFlh3kXVOtz3LwLkXhYRVqSB66h/EOkJhpjg49PiDHyPApbM3zQld2IRnS13Q7
         AS6KuKjHb8QsUFNukdC3pkLV7DhoeWVNvWT6954N1HN9XhIqLCAMXtkcg4hV2x0+u/jF
         ldjg==
X-Forwarded-Encrypted: i=1; AJvYcCUKE8G5i8ugoM9XjzlFTezY7NMWou9V3yOewLVguos165XiZgkkNBAvNbcsOc9biNXwWw0Hec9OphWYGTuumTKN3SLEkn8krYqoHDMVFIk=
X-Gm-Message-State: AOJu0Yxti4/btHzcqLerPo+U4sQNMAzoj0UbCk0gqR9VQPxNzZ4MyIdL
	+o6SmTBYL78UblU3fHRihJMz3+qluYfVl8xPd0QL/CzWnG8nhPx+lH3OWC4Gzw==
X-Google-Smtp-Source: AGHT+IGOgcF/ZdRoyFS3w7OYYous1V1K8HletW2d9CjC1R31WhHdwSE2HQhntpQGNNrDy94fDj9aUw==
X-Received: by 2002:a05:6512:ea2:b0:52d:b1c9:34e with SMTP id 2adb3069b0e04-52eb99942c8mr968909e87.21.1720509295267;
        Tue, 09 Jul 2024 00:14:55 -0700 (PDT)
Message-ID: <f5e4e95b-ad3b-4686-b42e-a4986ba896ec@suse.com>
Date: Tue, 9 Jul 2024 09:14:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 04/14] x86: introduce CONFIG_ALTP2M Kconfig option
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <914561d1ae92aa84d22785f959a73434a491bdd6.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <914561d1ae92aa84d22785f959a73434a491bdd6.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 07:52, Sergiy Kibrik wrote:
> Add new option to make altp2m code inclusion optional.
> Currently altp2m implemented for Intel EPT only, so option is dependant on VMX.
> Also the prompt itself depends on EXPERT=y, so that option is available
> for fine-tuning, if one want to play around with it.
> 
> Use this option instead of more generic CONFIG_HVM option.
> That implies the possibility to build hvm code without altp2m support,
> hence we need to declare altp2m routines for hvm code to compile successfully
> (altp2m_vcpu_initialise(), altp2m_vcpu_destroy(), altp2m_vcpu_enable_ve())
> 
> Also guard altp2m routines, so that they can be disabled completely in the
> build -- when target platform does not actually support altp2m
> (AMD-V & ARM as of now).
> 
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:15:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:15:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755912.1164442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR54v-0000lZ-8O; Tue, 09 Jul 2024 07:15:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755912.1164442; Tue, 09 Jul 2024 07:15: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 1sR54v-0000lS-5V; Tue, 09 Jul 2024 07:15:57 +0000
Received: by outflank-mailman (input) for mailman id 755912;
 Tue, 09 Jul 2024 07:15: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR54u-0000lK-1Y
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:15:56 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 14442bed-3dc3-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 09:15:54 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2eaae2a6dc1so69318421fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 00:15: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
 d9443c01a7336-1fbb6a11cc9sm9440875ad.42.2024.07.09.00.15.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 00:15: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: 14442bed-3dc3-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720509353; x=1721114153; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fAX4vBa1qp6KH0nUEHX4salbu7iaiDu5iHBJpEYadnA=;
        b=GPn/0U/b2zdm+TUL3JV/HAk697AYO77vDx/3uK0cuS/sZlkoax+REF2ziVjRfmEA89
         6Q2G/r+Vsjo07wu28976ES78V7X/6SP/K2H9zTzh/ILmS9ay3VZXZAT3ct9VTYPaM0C9
         nwyKjoyUMZMVtU7vLg7Y2SrfDQurTqcDqOUgjMfqw0LUNLDxPvV18jNEm4/NFWP8WCLO
         6C0kl258cUoUgwBtuK9SvF6xQLVIrBv9r2+bdV6cWaA074pPLzAralWYC/tscDzm7Bh0
         nWe1ptlsSmsJVXNbdeKljxwTHg1PIUn0XwksbiXtO8xpQ9W3d+4VV0j8vkc65cBiJlgD
         2pSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720509353; x=1721114153;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fAX4vBa1qp6KH0nUEHX4salbu7iaiDu5iHBJpEYadnA=;
        b=BgVnOK4dFXkk8xJaixOI3HXFQ90xx8IWzNU2RjIzT7w8PNj2UWnDzrolytPL3NEGYP
         iPJi3Qnc2epIJLMqWw7NGufpmQxRYuJKibJPutFe2Ud7L0mhPmjGtYymYnk3SYwW45BF
         zQau4ud6B/YlYQO4awI7HVBc6ZNbnYWIV/3/zcQVfqSNaPhFrJaTu4KToBY/Mb3VklWv
         L6OTvV8zzPO9PefVQ1jCODggJ3nH9GfCdP0hNPPZGWs5H3Uer7TtAKHaNsA5NdOulQTb
         7YuHsefJ5+y3eYqVxIUYUGkdcR8RqI6NLNRx7/ZDTJtKSUgraEdmAodFjmIt/HKmncYz
         SuTg==
X-Forwarded-Encrypted: i=1; AJvYcCWCL/RpTwmuzCaenGCCnZlCfeS8nV0o0CVCFg/21cP9gwVvRC4ka4+M58+abhLkcvATpJ5YGbm+2YJ5KjBXr5gp03Zr1oYkxffIDxJEpug=
X-Gm-Message-State: AOJu0YxhUep7knJrutvJYoOQODW6VZ+yrVCdcAMlym9ROvxBEIScJp+a
	CvFIMtJOCXpWqHaOsh94NjjrVnHAUKgFHmzPP9A9pUc0EU+LeFJqUz3jjQlDBw==
X-Google-Smtp-Source: AGHT+IEWvT+IFk9r/M2kgSqoNkLrwrnS6TxoMTwPrJ22vRZXK89AYEG4ydNtEiGMB0asCMBJhg1nEA==
X-Received: by 2002:a05:651c:102f:b0:2ee:87e9:3194 with SMTP id 38308e7fff4ca-2eeb3189212mr12873181fa.47.1720509353684;
        Tue, 09 Jul 2024 00:15:53 -0700 (PDT)
Message-ID: <87607815-86bb-4d21-8473-e3c5ca42a746@suse.com>
Date: Tue, 9 Jul 2024 09:15:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 05/14] x86: introduce using_{svm,vmx}() helpers
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <d730b06b851d5c502850509d4cf868ed618d10d8.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d730b06b851d5c502850509d4cf868ed618d10d8.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 07:54, Sergiy Kibrik wrote:
> As we now have SVM/VMX config options for enabling/disabling these features
> completely in the build, we need some build-time checks to ensure that vmx/svm
> code can be used and things compile. Macros cpu_has_{svm,vmx} used to be doing
> such checks at runtime, however they do not check if SVM/VMX support is
> enabled in the build.
> 
> Also cpu_has_{svm,vmx} can potentially be called from non-{VMX,SVM} build
> yet running on {VMX,SVM}-enabled CPU, so would correctly indicate that VMX/SVM
> is indeed supported by CPU, but code to drive it can't be used.
> 
> New routines using_{vmx,svm}() indicate that both CPU _and_ build provide
> corresponding technology support, while cpu_has_{vmx,svm} still remains for
> informational runtime purpose, just as their naming suggests.
> 
> These new helpers are used right away in several sites, namely guard calls to
> start_nested_{svm,vmx} and start_{svm,vmx} to fix a build when VMX=n or SVM=n.
> 
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:19:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:19:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755923.1164453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR58S-0002JQ-Sv; Tue, 09 Jul 2024 07:19:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755923.1164453; Tue, 09 Jul 2024 07: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 1sR58S-0002JJ-OL; Tue, 09 Jul 2024 07:19:36 +0000
Received: by outflank-mailman (input) for mailman id 755923;
 Tue, 09 Jul 2024 07:19:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR58R-0002JD-N9
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:19:35 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97195975-3dc3-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 09:19:33 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2eeb1ba040aso13124581fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 00:19: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
 98e67ed59e1d1-2c99aa61e30sm9276845a91.45.2024.07.09.00.19.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 00: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: 97195975-3dc3-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720509573; x=1721114373; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4H9wGFIuYR7jB8hkzA3fInmn8enjWh99zCNGhiek+wU=;
        b=GDy+mME9jfXKdkz2IUu6WKc43gVRo1tplC24rmIkfzp55IVLww4fJ0yzWlGJ3CIBya
         kD4mYmrEzuiWaCYHNv2yVjgjC89NeGxBi34hC9qBSC2eUHcVAZwTfu2zKAf/OHKzN9J7
         ymd4kNV3CfpJWXm0/a3AcvYf1oIX85+yB0uu+22I5fiU5MzcyOuT5exI3sjOIlhxYzvE
         rrsCIwWdLRjq1QvmFGSU3hlpKfmchoTHpiWHdaKhmhT8rnB4X12sBKPINtkIrbdtiGzC
         vn/LZ8X+OW9x58Bbfm5kCey92hrM3FBje6ktbqmNIfyZfqo9sSBsc1v4vEoXEB3lXHtC
         5xBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720509573; x=1721114373;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4H9wGFIuYR7jB8hkzA3fInmn8enjWh99zCNGhiek+wU=;
        b=whuzloiAQru0h7hw3bZii19TI7l/SWOR0ohERuw2vAgzP0h+MqtEubprBzuIKaMdS0
         wjRur4k5NpjizVQKc+UGZ4lXuQqiOSz6oMx/16e+A8U0hgVECNpfL+7xbUJPdsH0q1Kn
         4IGQIPKQxvlHIwwunCiotDx5HtzhodZF1DpdP3sttnVXxN/cIvW/2qlrdxRKCzVDNEfO
         dfbNQMRA8oNKlEIpBfabt1/lUqWobZ89b9wBF+Q+01szR8GmPYX9XCO5Q0Per3C4pSN5
         xK+xztGuMzdWQA0CgRFaKVRdZ9fbE44QS6M/1m8W1+zXObD970n7s/Cd28IZhVhR4vks
         jJaA==
X-Forwarded-Encrypted: i=1; AJvYcCWnb26TnuZoK6++h/rZ4caGPxKckhr+O+IpdCYkqnwjjrmG//M0kV8nFSZPuytWuwcPB9033A15HOUWslJyYuRzobfxUn2aFlPsFo4DhVM=
X-Gm-Message-State: AOJu0Yyc1pL1mBrwyC/Kqwo1GxK4fK4reWsezqKTRHZ28oUzLHVBh0+r
	mrmLtdPPkHnz1lEV95QxsaxTtLC4sPynnjufD6ljihvpYwVZlk6qEgnOJDGhxQ==
X-Google-Smtp-Source: AGHT+IFf7w3BWNp+P9IhAYXBr2dnemB6ko9eDe+AUeiin2hJ95y8qgQpO+E+E8y/hcxw8WvaZbxl8Q==
X-Received: by 2002:a2e:8086:0:b0:2eb:fc08:5d83 with SMTP id 38308e7fff4ca-2eeb31972f0mr11118281fa.44.1720509573070;
        Tue, 09 Jul 2024 00:19:33 -0700 (PDT)
Message-ID: <c2dbe72d-130e-4bdc-8331-d87ce1588a85@suse.com>
Date: Tue, 9 Jul 2024 09:19:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 06/14] x86/p2m: guard EPT functions with
 using_vmx() check
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Xenia Ragiadakou <burzalodowa@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <d51ae897890ec01de70c44d15450e888f84d34c4.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d51ae897890ec01de70c44d15450e888f84d34c4.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 07:56, Sergiy Kibrik wrote:
> From: Xenia Ragiadakou <burzalodowa@gmail.com>
> 
> Replace cpu_has_vmx check with using_vmx(), so that we do check if functions
> ept_p2m_init() and ept_p2m_uninit() can be called.

I still find this an odd way of putting it. Source code ...

> --- a/xen/arch/x86/mm/p2m-basic.c
> +++ b/xen/arch/x86/mm/p2m-basic.c
> @@ -40,7 +40,7 @@ static int p2m_initialise(struct domain *d, struct p2m_domain *p2m)
>      p2m_pod_init(p2m);
>      p2m_nestedp2m_init(p2m);
>  
> -    if ( hap_enabled(d) && cpu_has_vmx )
> +    if ( hap_enabled(d) && using_vmx() )
>          ret = ept_p2m_init(p2m);
>      else
>          p2m_pt_init(p2m);
> @@ -72,7 +72,7 @@ struct p2m_domain *p2m_init_one(struct domain *d)
>  void p2m_free_one(struct p2m_domain *p2m)
>  {
>      p2m_free_logdirty(p2m);
> -    if ( hap_enabled(p2m->domain) && cpu_has_vmx )
> +    if ( hap_enabled(p2m->domain) && using_vmx() )
>          ept_p2m_uninit(p2m);
>      free_cpumask_var(p2m->dirty_cpumask);
>      xfree(p2m);

... is very clear about them being called. What you're after is the compiler
DCEing the calls in generated code.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:29:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:29:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755930.1164461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR5HW-0005vt-Ls; Tue, 09 Jul 2024 07:28:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755930.1164461; Tue, 09 Jul 2024 07: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 1sR5HW-0005vm-JN; Tue, 09 Jul 2024 07:28:58 +0000
Received: by outflank-mailman (input) for mailman id 755930;
 Tue, 09 Jul 2024 07:28: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR5HV-0005vd-1z
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:28:57 +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 e596f2f3-3dc4-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 09:28:54 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2eea8ea8c06so20542691fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 00:28: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
 d9443c01a7336-1fbb6ab75f4sm9566195ad.122.2024.07.09.00.28.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 00:28: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: e596f2f3-3dc4-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720510134; x=1721114934; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Mw6CtuGRALb1WYKSdjZg7nMr3sxo5WE/PlL4u6rgGiU=;
        b=gx4Rbh0H5MooXf3HlKfGliQD3SMihz6FRr3i5oA5uoRaHchrQA+m4YKlFn/7vwDNQB
         U5Ql3r5i5HPHT4W+KfF2TqJV6LZGSRB289UCqTKTXxMUbt7GF5eQYqv7TSd3ZrMHZ8Y/
         f5y3IG4S7o+Vz1wZ7hano8qNSUEbdb8m1d2ns7TtEsCRq2/oaAneMB6LUlfO6K7zhWZ0
         igGlXlpecmizS4oLiPlDJxxBx25DJ8Vwygs/3naJ/px1GSDw9hyo3vZR8bZ2F8PprxnV
         S+6J1gBX8TyLPwHL7mp2T/pp4qQZaqkHUqn+7AWhnQZYoEFfeGQQceXKK2ZznsII3Ri5
         +YPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720510134; x=1721114934;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Mw6CtuGRALb1WYKSdjZg7nMr3sxo5WE/PlL4u6rgGiU=;
        b=acey26QgS7R1kKp3RYOvH/xeXxNS8yWovfAzBF+/VIz/25NMXh/KBcxRP/hrvXYBtx
         TGETFG3l2hIxOdm3hpYlByvPuVTSs8f0w1p4yjc5QC4gJQ3siMQECdHOFi4cVpPcUr4s
         lHciUqOAR1cve9aKQHC3J+voVyusn9sOLCQyWkeTNRquH/MsTtSGwNvKCRTMQmG0DXMo
         04uOzgzklMyqCyR4m/XGVYnxmIkS5M3AjAoc37QaJyhtAbutLOlrXxRB0J6owfRVDKtx
         nhH/aGifvI+SF13iAJBQILoUGfDLy2nLHHdK13val+DyvOgZ3ySaYcXAGesLLyB90X5H
         6Rmg==
X-Forwarded-Encrypted: i=1; AJvYcCXHjrAcFmCc5d+CIcNIyIg//GwJ+jNyhYeMXsvpqRwrQ2F4mWWtX6VqZnVfYmzBF7IEdlK1vghfn71Xpq3F6LVRmoMM5wBvW22V4GAJjlQ=
X-Gm-Message-State: AOJu0YwpHQf31FCYL43BTWKoDVhbArEnsKGLXBvPyU5yI4+8hoCiA1VA
	MIYCT7NVwge1h9fkJDpMFNv6JP2XmpE+7yQntF7cDMVCCXjKZalTYW23eikVVQ==
X-Google-Smtp-Source: AGHT+IFC82NdiUOqG0nNaqfkHzFm2M24LevO6nJhpLcWcKrk4jd9wGw43CqDGiI4rpB922PirlWMcw==
X-Received: by 2002:ac2:4e09:0:b0:52e:943c:c61a with SMTP id 2adb3069b0e04-52eb99d4bc5mr1080467e87.57.1720510134168;
        Tue, 09 Jul 2024 00:28:54 -0700 (PDT)
Message-ID: <5fad5c8e-a7f0-4536-86ea-b74a3116d122@suse.com>
Date: Tue, 9 Jul 2024 09:28:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 12/14] x86/ioreq: guard VIO_realmode_completion
 with CONFIG_VMX
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Xenia Ragiadakou <burzalodowa@gmail.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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <e6e0f30ea69ecfed4d8de531fc42162162b3f6e5.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e6e0f30ea69ecfed4d8de531fc42162162b3f6e5.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 08:09, Sergiy Kibrik wrote:
> --- a/xen/arch/x86/include/asm/hvm/ioreq.h
> +++ b/xen/arch/x86/include/asm/hvm/ioreq.h
> @@ -13,6 +13,11 @@
>  #define IOREQ_STATUS_UNHANDLED   X86EMUL_UNHANDLEABLE
>  #define IOREQ_STATUS_RETRY       X86EMUL_RETRY
>  
> +#ifdef CONFIG_VMX
> +bool arch_vcpu_ioreq_completion(enum vio_completion completion);
> +#define arch_vcpu_ioreq_completion
> +#endif

Putting the (or some kind of) #define here is certainly fine, but moving ...

> --- a/xen/include/xen/ioreq.h
> +++ b/xen/include/xen/ioreq.h
> @@ -111,7 +111,6 @@ void ioreq_domain_init(struct domain *d);
>  int ioreq_server_dm_op(struct xen_dm_op *op, struct domain *d, bool *const_op);
>  
>  bool arch_ioreq_complete_mmio(void);
> -bool arch_vcpu_ioreq_completion(enum vio_completion completion);
>  int arch_ioreq_server_map_pages(struct ioreq_server *s);
>  void arch_ioreq_server_unmap_pages(struct ioreq_server *s);
>  void arch_ioreq_server_enable(struct ioreq_server *s);

... the declaration from here requires that all architectures wanting to
implement the function need to have identical copies. That's unnecessary
risk of going out of sync.

As to the #define itself: It expanding to nothing means the call site
de-generates to

#ifdef arch_vcpu_ioreq_completion
        res = (completion);
#else

which hardly is what is meant (despite compiling fine, and it likely
only being Eclair which would then tell us about the issue). Further
there you're also removing a blank line, I don't see why you're doing
that.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:35:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:35:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755935.1164473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR5NY-0008Pq-9c; Tue, 09 Jul 2024 07:35:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755935.1164473; Tue, 09 Jul 2024 07:35: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 1sR5NY-0008Pj-53; Tue, 09 Jul 2024 07:35:12 +0000
Received: by outflank-mailman (input) for mailman id 755935;
 Tue, 09 Jul 2024 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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR5NX-0008Pd-4E
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:35:11 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c4892f55-3dc5-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 09:35:08 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52e9944764fso5378753e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 00: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
 d9443c01a7336-1fbb6a1196fsm10184495ad.14.2024.07.09.00.35.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 00: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: c4892f55-3dc5-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720510508; x=1721115308; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zegzEt2S4uVcBUXWBtsiFMcpR6mrlx4DASggusc1k+w=;
        b=CQtbYTM2WkGL+TIKNyOW1jK40yWbuLQQk/pJ4RSW9Ggyar15Sthc+/9gHo3NHqYbe8
         dTjTlNKopk01175KoWqZ1lkfHHrlqDQjPZwIA76JgHgm7nUvcCy0pLySmhsreWWdeZjf
         GWtClETPWTlzYwD+HWG4Kk2jJa9eB0BRJrEk23H5+IktxveqU87gzi2yNYLlwng+1Kvs
         yDTc7dZvMUg18xOt+/zhyWdHIvrUPE8gD3VRn3MdNBzXQgGJbGn4iWsBX3IVLj+kiOo2
         VHtfvdkVvLGp74XwJxtR4PSzuRkBEmoTP0y7vk06jd2kTaTtE4GapR3JFuIYklxLS320
         I1qQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720510508; x=1721115308;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zegzEt2S4uVcBUXWBtsiFMcpR6mrlx4DASggusc1k+w=;
        b=fHFJ5cB5O0jK8EfmntLQ3rp1k7Wz++JzpKXLyeSqgxlsujwNYsYqpJK3z0ov7Kzxjr
         SFzUsiPjls8Y0Hf9qeKFpbuHOdRO2safM2rTqvM1qYJfM4QIk87FA/F/yQh+oA6YJCWt
         6t5Vz6pbeJ1sYjcpYDnO7+HKqYQIO9oxpI0fqzSaACfq+eXyuctfhXn7CsbJPejQxx5F
         OJHRfOMzSyGpYriweEvfJwQozrL63DxUUtAxOlkBoIlbGPQ4juSmgjfe+S+e6gUFd+Tt
         3WmxVb5vzQkpiQREe/lmHeSRQxM1Hlk3jES0pJZgcj4rujwSbo11G4S0jdjiQdH7nQkT
         RNdQ==
X-Forwarded-Encrypted: i=1; AJvYcCUxLmVU2H6PaWh/W5E63SUSgRSoTvu7xYF7m5IGuRfonzebTPoJEtzLMlhpo6sdHHQwDThloLItwwWyPnKjfpTqg+h6J2d7TIYTTFg7ReY=
X-Gm-Message-State: AOJu0Yy2piP4Gvm6oA6kKnPjRKeXsW/ZgAsB8APelrNRE3EruOqXTS4C
	HijXpPCHaCFeJ16vXURYVLSvMQEMoAS1jHoSIQUPAg6Grj+3L6NoQleN+JABhQ==
X-Google-Smtp-Source: AGHT+IHTf93zmVxlYJwC+IkI8H+Mrj2V7bu29CTZX/tbFRtzHoZhSCkVGPBMOufkk0bAWX0htlGwZQ==
X-Received: by 2002:ac2:4e09:0:b0:52e:9ebe:7318 with SMTP id 2adb3069b0e04-52eb99cb09amr1236703e87.43.1720510508185;
        Tue, 09 Jul 2024 00:35:08 -0700 (PDT)
Message-ID: <c07857ff-1fe9-4e17-88e6-eaa925a73754@suse.com>
Date: Tue, 9 Jul 2024 09:35:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>, =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?=
 <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <Zozi_ExY_JjnjvRZ@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: <Zozi_ExY_JjnjvRZ@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.07.2024 09:13, Roger Pau Monné wrote:
> On Tue, Jul 09, 2024 at 08:24:20AM +0200, Jan Beulich wrote:
>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>> On 2024-07-08 05:12, Jan Beulich wrote:
>>>> On 08.07.2024 11:08, Roger Pau Monné wrote:
>>>>> On Mon, Jul 08, 2024 at 10:37:22AM +0200, Jan Beulich wrote:
>>>>>> On 08.07.2024 10:15, Jürgen Groß wrote:
>>>>>>> I've got an internal report about failures in dom0 when booting with
>>>>>>> Xen on a Thinkpad P14s Gen 3 AMD (kernel 6.9).
>>>>>>>
>>>>>>> With some debugging I've found that the UCSI driver seems to fail to
>>>>>>> map MFN feec2 as iomem, as the hypervisor is denying this mapping due
>>>>>>> to being part of the MSI space. The mapping attempt seems to be the
>>>>>>> result of an ACPI call of the UCSI driver:
>>>>>>>
>>>>>>> [   44.575345] RIP: e030:xen_mc_flush+0x1e8/0x2b0
>>>>>>> [   44.575418]  xen_leave_lazy_mmu+0x15/0x60
>>>>>>> [   44.575425]  vmap_range_noflush+0x408/0x6f0
>>>>>>> [   44.575438]  __ioremap_caller+0x20d/0x350
>>>>>>> [   44.575450]  acpi_os_map_iomem+0x1a3/0x1c0
>>>>>>> [   44.575454]  acpi_ex_system_memory_space_handler+0x229/0x3f0
>>>>>>> [   44.575464]  acpi_ev_address_space_dispatch+0x17e/0x4c0
>>>>>>> [   44.575474]  acpi_ex_access_region+0x28a/0x510
>>>>>>> [   44.575479]  acpi_ex_field_datum_io+0x95/0x5c0
>>>>>>> [   44.575482]  acpi_ex_extract_from_field+0x36b/0x4e0
>>>>>>> [   44.575490]  acpi_ex_read_data_from_field+0xcb/0x430
>>>>>>> [   44.575493]  acpi_ex_resolve_node_to_value+0x2e0/0x530
>>>>>>> [   44.575496]  acpi_ex_resolve_to_value+0x1e7/0x550
>>>>>>> [   44.575499]  acpi_ds_evaluate_name_path+0x107/0x170
>>>>>>> [   44.575505]  acpi_ds_exec_end_op+0x392/0x860
>>>>>>> [   44.575508]  acpi_ps_parse_loop+0x268/0xa30
>>>>>>> [   44.575515]  acpi_ps_parse_aml+0x221/0x5e0
>>>>>>> [   44.575518]  acpi_ps_execute_method+0x171/0x3e0
>>>>>>> [   44.575522]  acpi_ns_evaluate+0x174/0x5d0
>>>>>>> [   44.575525]  acpi_evaluate_object+0x167/0x440
>>>>>>> [   44.575529]  acpi_evaluate_dsm+0xb6/0x130
>>>>>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>>> [   44.575559]  platform_probe+0x48/0x90
>>>>>>> [   44.575567]  really_probe+0xde/0x340
>>>>>>> [   44.575579]  __driver_probe_device+0x78/0x110
>>>>>>> [   44.575581]  driver_probe_device+0x1f/0x90
>>>>>>> [   44.575584]  __driver_attach+0xd2/0x1c0
>>>>>>> [   44.575587]  bus_for_each_dev+0x77/0xc0
>>>>>>> [   44.575590]  bus_add_driver+0x112/0x1f0
>>>>>>> [   44.575593]  driver_register+0x72/0xd0
>>>>>>> [   44.575600]  do_one_initcall+0x48/0x300
>>>>>>> [   44.575607]  do_init_module+0x60/0x220
>>>>>>> [   44.575615]  __do_sys_init_module+0x17f/0x1b0
>>>>>>> [   44.575623]  do_syscall_64+0x82/0x170
>>>>>>> [   44.575685] 1 of 1 multicall(s) failed: cpu 4
>>>>>>> [   44.575695]   call  1: op=1 result=-1 caller=xen_extend_mmu_update+0x4e/0xd0
>>>>>>> pars=ffff888267e25ad0 1 0 7ff0 args=9ba37a678 80000000feec2073
>>>>>>>
>>>>>>> The pte value of the mmu_update call is 80000000feec2073, which is rejected by
>>>>>>> the hypervisor with -EPERM.
>>>>>>>
>>>>>>> Before diving deep into the UCSI internals, is it possible that the hypervisor
>>>>>>> needs some update (IOW: could it be the mapping attempt should rather be
>>>>>>> honored, as there might be an I/O resources at this position which dom0 needs
>>>>>>> to access for using the related hardware?)
>>>>>>
>>>>>> Adding to Andrew's reply: Is there any BAR in the system covering that address?
>>>>>> Or is it rather ACPI "making up" that address (which would remind me of IO-APIC
>>>>>> space being accessed by certain incarnations of ACPI, resulting in similar
>>>>>> issues)?
>>>>>
>>>>> So you think ACPI is using some kind of backdoor to access the local
>>>>> APIC registers?
>>>>
>>>> No, I'm wondering if they're trying to access *something*. As it stands we
>>>> don't even know what kind of access is intended; all we know is that they're
>>>> trying to map that page (and maybe adjacent ones).
>>>
>>>  From the backtrace, it looks like the immediate case is just trying to 
>>> read a 4-byte version:
>>>
>>>  >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>  >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>  >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>  >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>
>>> int ucsi_register(struct ucsi *ucsi)
>>> {
>>>          int ret;
>>>
>>>          ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>                                sizeof(ucsi->version));
>>>
>>> ->read being ucsi_acpi_read()
>>>
>>> However, the driver also appears write to adjacent addresses.
>>
>> There are also corresponding write functions in the driver, yes, but
>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>> ACPI object evaluation, which isn't obvious without seeing the
>> involved AML whether it might write said memory region. The writing
>> done in the write function(s) looks to be
>>
>> 	memcpy(ua->base + offset, val, val_len);
>>
>> with their read counterpart being
>>
>> 	memcpy(val, ua->base + offset, val_len);
>>
>> where ua->base may well be an entirely different address (looks like
>> it's the first of the BARs as per ucsi_acpi_probe()).
>>
>> If acpi_evaluate_dsm() would only ever read the region, an option (if
>> all else fails) might be to similarly (to what we do for IO-APICs)
>> permit read accesses / mappings (by inserting the range into
>> mmio_ro_ranges). Yet of course first we need to better understand
>> what's actually going on here.
> 
> When accessing from the CPU, what's in this range apart from the first
> page (0xfee00) being the APIC MMIO window in xAPIC mode?

That's simply unknown from all I know, the entire 1Mb (or even 2Mb)
range is reserved, I think.

Thing is we can't very well think "CPU only" as long as we mirror CPU
side mappings to the IOMMU page tables.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:39:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:39:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755942.1164482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR5RE-0001I7-MK; Tue, 09 Jul 2024 07:39:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755942.1164482; Tue, 09 Jul 2024 07:39: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 1sR5RE-0001I0-JZ; Tue, 09 Jul 2024 07:39:00 +0000
Received: by outflank-mailman (input) for mailman id 755942;
 Tue, 09 Jul 2024 07:38:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RyCN=OJ=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sR5RD-0001Gi-Lh
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:38:59 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d4338d3-3dc6-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 09:38:58 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 556D74EE0742;
 Tue,  9 Jul 2024 09:38: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: 4d4338d3-3dc6-11ef-bbfb-fd08da9f4363
MIME-Version: 1.0
Date: Tue, 09 Jul 2024 09:38:57 +0200
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: nicola.vetrini@bugseng.com, consulting@bugseng.com, Simone Ballarin
 <simone.ballarin@bugseng.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH 05/17] xen/x86: address violations of MISRA C:2012
 Directive 4.10
Reply-To: alessandro.zucchelli@bugseng.com
Mail-Reply-To: alessandro.zucchelli@bugseng.com
In-Reply-To: <09bc4d2e-b4fb-428b-b0e3-266952ebd3c5@suse.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <d67d06849732fea11391afd61ff9891ed11795e5.1719829101.git.alessandro.zucchelli@bugseng.com>
 <09bc4d2e-b4fb-428b-b0e3-266952ebd3c5@suse.com>
Message-ID: <20ad12e8beec50aaa58305ee5f376e21@bugseng.com>
X-Sender: alessandro.zucchelli@bugseng.com
Organization: BUGSENG Srl
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-01 16:21, Jan Beulich wrote:
> On 01.07.2024 15:36, Alessandro Zucchelli wrote:
>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -260,17 +260,18 @@ $(objtree)/arch/x86/include/asm/asm-macros.h: 
>> $(obj)/asm-macros.i $(src)/Makefil
>>  	$(call filechk,asm-macros.h)
>> 
>>  define filechk_asm-macros.h
>> +	guard=$$(echo ASM_${SRCARCH}_ASM_MACROS_H | tr a-z A-Z);  \
> 
> Nit: Hard tab slipped in.
> 
>> +    echo '#ifndef $$guard'; \
>> +    echo '#define $$guard'; \
>>      echo '#if 0'; \
>>      echo '.if 0'; \
>>      echo '#endif'; \
>> -    echo '#ifndef __ASM_MACROS_H__'; \
>> -    echo '#define __ASM_MACROS_H__'; \
>>      echo 'asm ( ".include \"$@\"" );'; \
>> -    echo '#endif /* __ASM_MACROS_H__ */'; \
>>      echo '#if 0'; \
>>      echo '.endif'; \
>>      cat $<; \
>> -    echo '#endif'
>> +    echo '#endif'; \
>> +    echo '#endif /* $$guard */'
>>  endef
>> 
>>  $(obj)/efi.lds: AFLAGS-y += -DEFI
>> --- a/xen/arch/x86/cpu/cpu.h
>> +++ b/xen/arch/x86/cpu/cpu.h
>> @@ -1,3 +1,6 @@
>> +#ifndef X86_CPU_CPU_H
>> +#define X86_CPU_CPU_H
> 
> This, ...
> 
>> --- a/xen/arch/x86/x86_64/mmconfig.h
>> +++ b/xen/arch/x86/x86_64/mmconfig.h
>> @@ -5,6 +5,9 @@
>>   * Author: Allen Kay <allen.m.kay@intel.com> - adapted from linux
>>   */
>> 
>> +#ifndef X86_64_MMCONFIG_H
>> +#define X86_64_MMCONFIG_H
> 
> ... this, and ...
> 
>> --- a/xen/arch/x86/x86_emulate/private.h
>> +++ b/xen/arch/x86/x86_emulate/private.h
>> @@ -6,6 +6,9 @@
>>   * Copyright (c) 2005-2007 XenSource Inc.
>>   */
>> 
>> +#ifndef X86_X86_EMULATE_PRIVATE_H
>> +#define X86_X86_EMULATE_PRIVATE_H
> 
> ... this guard can't possibly all follow the same proposed naming 
> scheme
> (wherever the final version of that is being recorded; I don't recall 
> it
> having gone in, and I didn't spot anything earlier in the series); at
> least one must be wrong.

For x86/x86_64/mmconfig.h has been made an exception as stated in the 
commit
message:
Note that in x86_64/mmconfig.h we slightly deviate from the naming
convention in place: instead of having the inclusion guard as
X86_X86_64_MMCONFIG_H we shortened the directory prefix as X86_64 for
the sake of readability.

If you do not agree with this exception and you prefer to keep the 
additional
X86_ prefix let me know so as I prepare the patch series V5 I may 
reintroduce it.

Best regards,
-- 
Alessandro Zucchelli, B.Sc.

Software Engineer, BUGSENG (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 07:45:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 07:45:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755950.1164491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR5Xo-00045p-FC; Tue, 09 Jul 2024 07:45:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755950.1164491; Tue, 09 Jul 2024 07: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 1sR5Xo-00045i-Ca; Tue, 09 Jul 2024 07:45:48 +0000
Received: by outflank-mailman (input) for mailman id 755950;
 Tue, 09 Jul 2024 07: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR5Xn-00045c-29
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 07:45:47 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40595634-3dc7-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 09:45:45 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2ee91d9cb71so45308221fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 00:45: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
 98e67ed59e1d1-2c99a980663sm9311082a91.28.2024.07.09.00.45.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 00: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: 40595634-3dc7-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720511145; x=1721115945; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=x7FU6vgxAF8S5OPpX0HZ0u9OIsWg1BF1LupuinZ2Y28=;
        b=dgrHLojdTkDJHDScekbVjBsFFmxCsS/KYSdyaUNGI/ydMWeDrMpf5WuUcXvIvXzUZS
         a9UxAtnx7kfQnikE9yMemXZDcrBdZoVKG0DnMdgWy/dpBP+fUVjoi2QKQqmkHURuzVtj
         w21lODAj84uHEVPbBNF1+6STuVhpGX9GtU99II0LeN82MwNIoxoprjD1WV2eLzFt9KBC
         1y6b6QcBq0N1QNHQW8HBw3OOvjQuyNl5Dlfw40tbLb2u23qvYeCgg+edFMsmTCqxCCMR
         /jim3sTQQqq+NFKfmo8dTt2e7rFAXTxVNY7u8YLr+QL65V76e3192ibqdiwHyRVeGzK4
         Q13A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720511145; x=1721115945;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x7FU6vgxAF8S5OPpX0HZ0u9OIsWg1BF1LupuinZ2Y28=;
        b=buPgXPjSREooQsztn/2dGAPfZNf8SER0qeGK4K6U1mdUBLvSSMnOulDaPSGjhxKEFe
         BnQZG9jg1/OC3fIjKunNK2oTs3GM2WEY6lvts51k/6rJJ5lbhWR5pqaiGz+zg7oQwyKk
         Far+MRS3ajwK8d5pKexPYkCEdBA+d8evJTJ+916E+qa/lPnoj4R/lEKZtke0MohIV3+k
         Ts4c48J/aPKhwO4Wir9FGCoHVXwtLUD6do4NXrS8AjUkvFvCRfc1xHK2IBRGxfu0+AVH
         0qwrXeQBvStN6AL4lBnmvRuoiU2kyzBgk4g6ktwujOH+urvLtUVedHTyB9RNBttmS+q6
         yPZA==
X-Forwarded-Encrypted: i=1; AJvYcCW8ZYTmV2rGhTrkH1mAzrTSsaq/q3vrn2FpozYj71HQd3nVTBpoU2l/YeiiUfxWxEKIcoCsuREekDU87ePnzld19uQ4ktK733rS8YJRfeQ=
X-Gm-Message-State: AOJu0YzG0fFW03uzRSPnD+ZYsqOH1jv9sUcYZzMc4SvKzBmUY8gYNW07
	T7weErGkxTA6ZXcT0CCrieaiupg3HG1SqE9nmJkbpZVLMI+ferhznn5Z/V2iuw==
X-Google-Smtp-Source: AGHT+IFE1s3kxW7SaUwMDOJZoRWWLsI8yHNJKO8qvplK2twOhYL12i+/lW9Ohgfwt9ecEtQrUGhkrg==
X-Received: by 2002:a05:651c:210c:b0:2eb:f31e:9e7b with SMTP id 38308e7fff4ca-2eeb30e5129mr15425191fa.14.1720511145465;
        Tue, 09 Jul 2024 00:45:45 -0700 (PDT)
Message-ID: <6620954e-b6d3-4073-ae68-0451aea44c52@suse.com>
Date: Tue, 9 Jul 2024 09:45:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/17] xen/x86: address violations of MISRA C:2012
 Directive 4.10
To: alessandro.zucchelli@bugseng.com
Cc: nicola.vetrini@bugseng.com, consulting@bugseng.com,
 Simone Ballarin <simone.ballarin@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <d67d06849732fea11391afd61ff9891ed11795e5.1719829101.git.alessandro.zucchelli@bugseng.com>
 <09bc4d2e-b4fb-428b-b0e3-266952ebd3c5@suse.com>
 <20ad12e8beec50aaa58305ee5f376e21@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: <20ad12e8beec50aaa58305ee5f376e21@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 09:38, Alessandro Zucchelli wrote:
> On 2024-07-01 16:21, Jan Beulich wrote:
>> On 01.07.2024 15:36, Alessandro Zucchelli wrote:
>>> --- a/xen/arch/x86/Makefile
>>> +++ b/xen/arch/x86/Makefile
>>> @@ -260,17 +260,18 @@ $(objtree)/arch/x86/include/asm/asm-macros.h: 
>>> $(obj)/asm-macros.i $(src)/Makefil
>>>  	$(call filechk,asm-macros.h)
>>>
>>>  define filechk_asm-macros.h
>>> +	guard=$$(echo ASM_${SRCARCH}_ASM_MACROS_H | tr a-z A-Z);  \
>>
>> Nit: Hard tab slipped in.
>>
>>> +    echo '#ifndef $$guard'; \
>>> +    echo '#define $$guard'; \
>>>      echo '#if 0'; \
>>>      echo '.if 0'; \
>>>      echo '#endif'; \
>>> -    echo '#ifndef __ASM_MACROS_H__'; \
>>> -    echo '#define __ASM_MACROS_H__'; \
>>>      echo 'asm ( ".include \"$@\"" );'; \
>>> -    echo '#endif /* __ASM_MACROS_H__ */'; \
>>>      echo '#if 0'; \
>>>      echo '.endif'; \
>>>      cat $<; \
>>> -    echo '#endif'
>>> +    echo '#endif'; \
>>> +    echo '#endif /* $$guard */'
>>>  endef
>>>
>>>  $(obj)/efi.lds: AFLAGS-y += -DEFI
>>> --- a/xen/arch/x86/cpu/cpu.h
>>> +++ b/xen/arch/x86/cpu/cpu.h
>>> @@ -1,3 +1,6 @@
>>> +#ifndef X86_CPU_CPU_H
>>> +#define X86_CPU_CPU_H
>>
>> This, ...
>>
>>> --- a/xen/arch/x86/x86_64/mmconfig.h
>>> +++ b/xen/arch/x86/x86_64/mmconfig.h
>>> @@ -5,6 +5,9 @@
>>>   * Author: Allen Kay <allen.m.kay@intel.com> - adapted from linux
>>>   */
>>>
>>> +#ifndef X86_64_MMCONFIG_H
>>> +#define X86_64_MMCONFIG_H
>>
>> ... this, and ...
>>
>>> --- a/xen/arch/x86/x86_emulate/private.h
>>> +++ b/xen/arch/x86/x86_emulate/private.h
>>> @@ -6,6 +6,9 @@
>>>   * Copyright (c) 2005-2007 XenSource Inc.
>>>   */
>>>
>>> +#ifndef X86_X86_EMULATE_PRIVATE_H
>>> +#define X86_X86_EMULATE_PRIVATE_H
>>
>> ... this guard can't possibly all follow the same proposed naming 
>> scheme
>> (wherever the final version of that is being recorded; I don't recall 
>> it
>> having gone in, and I didn't spot anything earlier in the series); at
>> least one must be wrong.
> 
> For x86/x86_64/mmconfig.h has been made an exception as stated in the 
> commit
> message:
> Note that in x86_64/mmconfig.h we slightly deviate from the naming
> convention in place: instead of having the inclusion guard as
> X86_X86_64_MMCONFIG_H we shortened the directory prefix as X86_64 for
> the sake of readability.
> 
> If you do not agree with this exception and you prefer to keep the 
> additional
> X86_ prefix let me know so as I prepare the patch series V5 I may 
> reintroduce it.

What I have an issue with is making an exception in one place when quite
clearly would as much (or as little) benefit from one. Before there's
any further back and forth, I'd like to suggest that you wait with
adjustments here until the base scheme has really been agreed upon,
including situations where we think we'd like to make exceptions (after
all we might decide that there simply shouldn't be exceptions, and that
in order to eliminate such redundancy in guard identifiers we'd rather
like to rename some of the files).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 08:36:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 08:36:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755962.1164502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR6Kk-0001zs-V4; Tue, 09 Jul 2024 08:36:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755962.1164502; Tue, 09 Jul 2024 08:36:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR6Kk-0001zl-S3; Tue, 09 Jul 2024 08:36:22 +0000
Received: by outflank-mailman (input) for mailman id 755962;
 Tue, 09 Jul 2024 08:36: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=Exg6=OJ=bounce.vates.tech=bounce-md_30504962.668cf682.v1-efc95fc123c847588675204f52cb1845@srs-se1.protection.inumbo.net>)
 id 1sR6Kj-0001zf-SJ
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 08:36:22 +0000
Received: from mail179-23.suw41.mandrillapp.com
 (mail179-23.suw41.mandrillapp.com [198.2.179.23])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 506da8bb-3dce-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 10:36:20 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-23.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4WJDq646KMz35hTMd
 for <xen-devel@lists.xenproject.org>; Tue,  9 Jul 2024 08:36:18 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 efc95fc123c847588675204f52cb1845; Tue, 09 Jul 2024 08:36: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: 506da8bb-3dce-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720514178; x=1720774678;
	bh=dD2BClKsX2uFbw51F+iByf7OLpZP6JAVTxSzEZM3AvE=;
	h=From:Subject:Message-Id:To:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Ybv7Qii+ufql9xXv41h9Dtof6ajIto3izjhsbKGC+V3KahuXUE+OQLultgi/SF0ir
	 zmbu0Cdqtsgt0MRO+/ZFvf4BW/umXIh9J756OJNDCBMzyZZPy9X6WgrXERpeAn4AqA
	 CBgTCg64uu0LnOX30+92+ijfgKRgEoH66I2ZAFGF9HYVsuW3j/aNjBl+EMrTUzdfTM
	 tLw0Mr2jZjUXdQVPSUPoq2LkupBPBC/LtUQWU6sJcFn9OuGCS7KaLfgPw56EniaSks
	 Nmxf9g6X0l8dsBzHNBL67QBu/wLOVetlIKqWqybTpukICS2eXvqAQK+DxquOVYS5v9
	 6OL+yXKH8hM5w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720514178; x=1720774678; i=andrei.semenov@vates.tech;
	bh=dD2BClKsX2uFbw51F+iByf7OLpZP6JAVTxSzEZM3AvE=;
	h=From:Subject:Message-Id:To:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=imIKrclR5DCRFrosb6dt0jbh2W7d/x5yvrdKJdTUvZ9w2N2DsAqTAT10WezGibyTz
	 5tfH0Le+lIOka+MSYvyxlN9ENw2cUX78ToGw5XIO+8FtxMhSWM400MkcT6svb4FaZn
	 383+FW/r6lU8NPscRaVK6sQxX5PnC6tPQQNtBE9kYGP4uNcevGlsiBUljnRrsaaaUP
	 igAHRUzNSSmhi/gm07MWDQYuc6S/Jwqmpw0Hkw+FnIhEcQWsGjlDw/xOTI3dZOjEqK
	 8aHutT+hHGQkWMac4eYk4e9Km3DbHbLFjk2uE+LfSvpqVyuhU2T2I0kBrtvXechm9g
	 Yn36fPcUqhfEw==
From: Andrei Semenov <andrei.semenov@vates.tech>
Subject: =?utf-8?Q?AMD=20EPYC=20virtual=20network=20performances?=
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720514177558
Message-Id: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
To: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, jgross@suse.com, Andrei Semenov <andrei.semenov@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.efc95fc123c847588675204f52cb1845?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240709:md
Date: Tue, 09 Jul 2024 08:36:18 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Hello,

As been reported by David Morel (mail 4 Jan 2024), our customers 
experience a
very poor virtual network performances in HVM guests on AMD EPYC platforms.

After some investigations we notices a huge performances drop (perfs 
divided by
factor of 5) starting from 5.10.88 Linux kernel version on the AMD EPYC
platforms. The patch introduced in this kernel version that allows to 
pinpoint
the buggy behavior is :

 =C2=A0=E2=80=9Cxen/netfront: harden netfront against event channel storms=
=E2=80=9D
d31b3379179d64724d3bbfa87bd4ada94e3237de

The patch basically binds the network frontend to the `xen_lateeoi_chip`
irq_chip (insead of `xen_dynamic_chip`) which allows to its clients to 
inform
the chip if spurious interrupts are detected and so the delay in interrupt
treatment is introduced by the chip.

We tried to measure how much spurious interrupts (no work to do by the 
driver)
are raised. We used `iperf2` to bench the network bandwidth on the AMD 
EPYC 7262
8-core).

Dom0 > iperf -s

DomU> iperf -c $DOM0_IP_ADDRESS

It appears from our observations that we have approximatively 1 spurious
interrupt for 1 =E2=80=9Cuseful=E2=80=9D interrupt (frontend TX interrupts)=
 for HVM guests.

We run the same bench on the same platform with PV and PVH and the 
interrupts
spurious/useful ratio was quite lower: 1 to 20 (so the network 
performances are
much better).

We also run this bench on the Intel platform (Intel Xeon Bronze 3106 
CPU). The
interrupts spurious/useful ratio was about 1 to 30 for HVM guests.

So this make us think that this buggy behavior is related to abnormal 
amount of
spurious interrupts. This spurious/useful interrupts ratio is particularly
elevated in HVM guests on AMD platforms, so virtual network bandwidth is 
heavily
penalized =E2=80=93 in our particular bench we have 1,5Gbps bandwidth inste=
ad of 
7 Gbps
(when slowdown isn=E2=80=99t introduced by the irq_chip).

Does anybody notice this behavior on his side?=C2=A0 Can we do something 
about it?

Andrei Semenov



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 08:49:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 08:49:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755969.1164511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR6XF-0005mO-25; Tue, 09 Jul 2024 08:49:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755969.1164511; Tue, 09 Jul 2024 08:49:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR6XE-0005mH-Vo; Tue, 09 Jul 2024 08:49:16 +0000
Received: by outflank-mailman (input) for mailman id 755969;
 Tue, 09 Jul 2024 08:49: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=C54Y=OJ=epam.com=prvs=392098eeac=sergiy_kibrik@srs-se1.protection.inumbo.net>)
 id 1sR6XD-0005mB-I3
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 08:49:15 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1cdef5ed-3dd0-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 10:49:13 +0200 (CEST)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46957K2L016013;
 Tue, 9 Jul 2024 08:49:02 GMT
Received: from duzpr83cu001.outbound.protection.outlook.com
 (mail-northeuropeazlp17013014.outbound.protection.outlook.com [40.93.64.14])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 408fufu4xa-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 09 Jul 2024 08:49:01 +0000 (GMT)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by AM9PR03MB7171.eurprd03.prod.outlook.com (2603:10a6:20b:263::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Tue, 9 Jul
 2024 08:48:58 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.7741.033; Tue, 9 Jul 2024
 08:48:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1cdef5ed-3dd0-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YT4NeGaL5b5PhdE7+8pvco7LD8tqAxnRNWjeprRIRRG7a7VkqM9ABDPbdajOhOs4qEZ0LsvCecwrBu1hkVvRq3JBRK7HO2SIjVJaf7SHug8ktz5orE4ioAUilbn30ew8w9JXn1gMGjCaBRqtpmcuAe9l3I5Zhn6GP7NQto+sPMJayC8ThpVj6LMeTqyOx1bv+e9MWsW1uKJz8+0UdDgsNxaqaj83p+zYrcDrk/bd8ob/SXEe27rhNgZEhvDbc6Gvb2ou7bcNWnrWBa2erY/f3+6994oVDaT57vt2W6Jj8EaMTquSe9h2dz3o8zhXcpZZqbVmk5kZL1e+iA8wGWSVyQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oYFsTmprzQJOjUQ4ANJuZIhxXIQW9AFF7Y00DBCxNqw=;
 b=lj44rQGTzJwdpPKJIX3jomhqv6YgV6TT9jysba9F/LY6U5+orKPZNjX34f3FuyXiuJ5yOR27RnqAfKarTBAoZWd/iPoCGE4/VBOPvfEcw62LPW2nIIw4mLM0mtSQnK+sbns/ST7IRkJsrdc/YMZf/z0Ckmn0cleZTegDpMBEcgcogkn0qV7x3uzgh+xx5gCf1B3CCkgxvjffwazmpaQtF7L29VgzTyuDxSwFhdL59fdEWUNE9KUntZ4J68f33NE2IIYuDbEcoG18tgg3dagxVRgDfxHv96uU9rf7DVpaauU8MUI0Jo51yVOliUKFfLveRISREZHXelB0b6kmbLCTXA==
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=oYFsTmprzQJOjUQ4ANJuZIhxXIQW9AFF7Y00DBCxNqw=;
 b=dYqHO6fVIyVx7843sfZDhqAFEKi6BBcOwwHvdIOIzPQnY04h+6UsLaFFH46yVEz8DtKfHOyMJemtHa8sgWHzf1EmMZzK/vSb8fGWnNvKYWwuQqZgfD5ejXN7sRxTAoj/iR1tngZmCRAhkjWKJcrdl5k0Bbct8/kNkm3myrMmRtt8toEhBCua0tfHNv46+T7ReTJYpOSzcWQcSCTyCZmaRR9B7RYLoN/Fw1noil0jSt2+Vc/lyRFR5l7F0xAVKXB0E68KR1XeMd0RiWqsELHYZNsXhta2tNnl0pTLaeyjljNcgpstjnAr2jTwf/s/dIn5cdSqDCqfiKVONswhnhWoaQ==
Message-ID: <17b9e68f-3464-46b7-893d-ca6c5ee26014@epam.com>
Date: Tue, 9 Jul 2024 11:48:56 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2] x86/intel: optional build of TSX support
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        xen-devel@lists.xenproject.org,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20240701082506.190941-1-Sergiy_Kibrik@epam.com>
 <08a33c85-419c-45c9-a54e-1198304fc6a1@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <08a33c85-419c-45c9-a54e-1198304fc6a1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0028.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::23) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|AM9PR03MB7171:EE_
X-MS-Office365-Filtering-Correlation-Id: 6a7ca157-1486-42fb-6b97-08dc9ff3f911
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?SHloNG5NYVpQT0c2ZWh3MWdkVkNCdWFkVGYzZzhXbmZ5WjhhZXArV1ZjZENu?=
 =?utf-8?B?c2F5OE5EcUc2cDQ2dnJ1S0pMbFJ4OHZJaldDaDZyUEF0MzNza2lWYnM2bmtY?=
 =?utf-8?B?Z0F1dWFRVFNjcXNoNVVhcUtOWGYrb21Vb09EckgyNi90QTA3V3Y4OC9hYTRw?=
 =?utf-8?B?SE92RGNBWk8rS1ZhTXAxbjRZS1phUElFZTR2aVdoZURjemY4c0hqdnhueVFJ?=
 =?utf-8?B?REx5ckVDY0pZUHNLNUp2bTVqU0ZZOFUzbUg1ZCsrcGhVcmJ3OGxzNzhDK0lZ?=
 =?utf-8?B?R1QyWUFsUjJwQ1F2ZnVhR3dIVWlBMkorYkZwRHNUdkFnMGNET3lPOXRlSktv?=
 =?utf-8?B?cStzMWxqNG9rQW9kdGtUbzdRSXlXZ1IwNVViRU9aSjFVY25XOWRPamw2L3hG?=
 =?utf-8?B?Uk1jWEpIMnNzMmZVams1Mzd1NzRTbDlIOWJYMGZyK25IQ1RtOFNWdktZbXd4?=
 =?utf-8?B?d2plN3ozek0rMmZhVitWanIzY05iVTdrMnBWUnRCZVgra0o5dnZZdFV2Z2ha?=
 =?utf-8?B?TGV5WTRrays2dGp4azB5YzJSdWxSbGx2YmVMQnZjRGw1Vmdhdjk3QWFySS9z?=
 =?utf-8?B?UlFjSkRKR1hVZUdiakJNMDR3N2ptWGU5QXIrOTNpT1VBMjRaN2Z2SVdlZjAw?=
 =?utf-8?B?bGdueXIyaU9OeCsvbjgxZWZiM0hjOGlmTTkvL1llajM1SDJKL1JIbUcwT1Nw?=
 =?utf-8?B?WlRlbTBod0FaWUkyVVZ4YW5HTFQ4eHd2Wml2b1ZPQWw2UksyS0gvKzZlT05n?=
 =?utf-8?B?UmVpYW1EK3BtMy9oQWh6SytWcmRITlI5NHN1NzVQUkZTM3ppd3hoZ3A1anVq?=
 =?utf-8?B?a2wyRnM2TzNlRHNjS2VtZXV3NjFQYnpGV2FVcGo4UVJLeTBnQkR1eDdFNlRI?=
 =?utf-8?B?NkxvTUUrblRrclVBN1ZTU1NlbjN3cUMxaU50WTdCQW9PdU5DdTEwVjQ2MVRF?=
 =?utf-8?B?TVBvSzlwS1dlM1F6dGxaNFN5V3VIY0xzWkFjcjB5R2x4RXBVR09HYzZSUHRF?=
 =?utf-8?B?Q1UzS0xWbDhGRHBsSGlMVnJtNGswdEY1RG54UXFEVFk3dUk3NWNQbXpWZzh5?=
 =?utf-8?B?c01tdzFVYm1TakN4U09MdDBIZnFWUU83d3Q0Ri9NRGl5VFJVVGszeC8xRDB3?=
 =?utf-8?B?MEgyMC9uaEEvYXFhTFcwNWNNbzdNL3pwYlpkWmJRNkU3U1dUOFZZUXNjQ0ZD?=
 =?utf-8?B?V1hsOGRoUi9KckdFQlFwNGFNNGc0dE8rLytCaVVlNm8vTURIZ1l6ZDEyOWd3?=
 =?utf-8?B?MnZpUHQ4QWNadWpFRm52VVdFb1NjZExVaXpwK2ZBa2Q1SENKcUdZcm1pdFor?=
 =?utf-8?B?eEJvS1NEaE9CUzRCZlg5eVJuODZ0TTJkOFdtcTVOS3BaamF0TWlkdHdjSGNF?=
 =?utf-8?B?bHBNOGNKbU5oTzZQK215Yk9abGFTRDVscHBGMm1naERndTFMTm9icUtzRkFZ?=
 =?utf-8?B?d251OVFBUDZmS0JWWk1GNkpQb2FrT25EeEUrZVpPTmZXYXAweEdmVlhLTGd5?=
 =?utf-8?B?L0xFa0dZRHFwMkV4S2hoS3dscGpmMW1BNkFxbkM3VGxmMU1ORXp6SzhlRFZ0?=
 =?utf-8?B?MkpmWVVSTGJiMHlIZEt6ZVJMeWJtZUcrald6SWlTWE11UEkrWVNWUnhkS0V4?=
 =?utf-8?B?aS84eU85b1JoMHZ2V2pKenBLcHhKMTBxUUI1LzJjbnhERDJOQm9NYXNWMjNu?=
 =?utf-8?B?ZnpsNWsvRWFsQ2dDeHRPTHBUR1o3ZDNCeElYRFZGN0ZzY2hTd3hDY0dPMVVV?=
 =?utf-8?B?c1NWUUFyOUJpTklkY29EcjQ4Um0yNXh6L2Z4VlRFY1RWdlB0L2lMZXFUL3lX?=
 =?utf-8?B?WXlOQmNFNk1RdVovdVFOdz09?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?MzE1K3NLZnludGNBa3FRVjJ0YTkzemlBaEhpQnBWbDhOdzhBR0lOY0p5dVRF?=
 =?utf-8?B?R2UvMW1OSDloT0ZEamVVS3E5LzlzcFkySllqN2pnaFE5dEdySjU5RzdPdXQ0?=
 =?utf-8?B?M3BraEljWEF1UWJkR0IrWFQrVGtSbUkxNzJiU2ZXRGN5RkhSYUgycXZTR0R2?=
 =?utf-8?B?WlRhblBrQVdaWHNJWkZHanBoTFQzVWM3R0Y4MU55Uk5vVGplSTlMNXg5ek1i?=
 =?utf-8?B?SGg1WkI2cFZ4YnYxMlIyaGV2ZTZDbW1DdndBRjFZU05vUTlUd0ZGVkNpRkpK?=
 =?utf-8?B?Vm9mV2pJQ2c5d1pQaUxwejNtV2lBNkZ6SUZsODE2bFdEdm5wcldIOXVPUHhy?=
 =?utf-8?B?YTJyR25NY2VtQVdpSGRxTHNKb1p6eWNRUzQ5OVR1Unl6a2R3TkN6d1RyK1h3?=
 =?utf-8?B?KzlKbUV6U1FXdzdoeExsOEY2Nlc0SjZPSlZvWFlBOE5NRXNZdGxGaS94ZnRM?=
 =?utf-8?B?MDhZa2FpdU85RDNDVTMrVWtWUkFuZU0vaDJDdStseDBRdXB4aVRsU1RVc2pW?=
 =?utf-8?B?R3prdW5UbWxabzRraUlpTWdrdVM3RWZ2Qk5DOC83VXZJUENET2VGMXo5S1k4?=
 =?utf-8?B?YWVKNk9NU3JEeUwyTVBNYjh5ZWxtZm16L3JzMmM3MXVhQ0xlRjVidWpaL2J2?=
 =?utf-8?B?Njdkd0J0MlRQZDZnQ1FpbzIwRVhSMEVVZ3lHVnRDRzdjUmZiNVlTS2p2SjZI?=
 =?utf-8?B?Z2VTQVMzaWIwV0puN1IrUlpjVUc5TnJZUis4bUdJbmxKUWpHOHo4MFIrSUwx?=
 =?utf-8?B?WWJ6c0hLc0NKUFZiTUtWRDF6d3luZFNzU1M2WTFoQU16TCtycVFMc2pWYUVo?=
 =?utf-8?B?ZmJuTVM2OUNZV0VvTTEycGF5T0gxcVcyUktOM1NVTTRadmYwYkRRMitXVXpm?=
 =?utf-8?B?ejRBYmdLRFlpSWsvSGlEN25Nck5tYTlzOWNiWVhNL1MwYWJkNGJ5bG9jdlBn?=
 =?utf-8?B?bXdrZXlTUklhbUVWazk4cUdUU3I5aFhHZ01FeExqUWtCbnNYSzFqa3JKNTla?=
 =?utf-8?B?YmJaRTgvRVMzM1Fyc1ZyRG0wM2Qydk9MNlpPdzN2ZzBtei8vYVJYcWY2bjVk?=
 =?utf-8?B?K0paZ3NkOFAwTVdUMzlEZkxKa3R5WnRPMzRRbG1TODRBUzNyYW9WQm1QRy8w?=
 =?utf-8?B?VjNoeEVYcHoxR3YxT0Y2UnVSKy9nZEpUdDIzRURvNldBd0twMEErdDZYekxU?=
 =?utf-8?B?dCtXb1V0SDBremxKRFIwcjczRGt6aWNEMVhOZmZRcEZVRTdCdGJmUDUxVlNt?=
 =?utf-8?B?V3pYeDRla0lKYXk4Z2RQK3JrZUhGa3g3Z1VKN2NtdmlZUkFnd2s2NGRyckdw?=
 =?utf-8?B?UUxwVHpVdlNROVhGQkM2RHE1cjQrTHptb2RjRExVN3pya0ZXeHlGalhqSmVY?=
 =?utf-8?B?V3VWVk9OandnVG1CekJ2NjJmUE5CTVpmR29NZE8xRVY3OEpHdUtHMitYYit1?=
 =?utf-8?B?aVhOdWFuWEltazMra0NpREVINTlFUFJ2S05sd0lhTlFxdnBFZlN4blMwU3NV?=
 =?utf-8?B?ZG5jd3dtR2oycHM5NCtQcmtmWW9sMDlhc0JlZUQ2anJzcktwMWtUMmxCbG5u?=
 =?utf-8?B?M3Y3bmNteDdkelQ0RHZZNE1uWmFSb2wyeldwQzNMcEtnZUFma2Z4RGVsTWdH?=
 =?utf-8?B?N295QXdKMzlZdlUrWlprU0VCMHFNeXVBaXBRVVFNNGRHcEtQNktwMlUyZmJ6?=
 =?utf-8?B?Z3YzTjBvYXlsRUdhbEZ2UjRnZjVJSkxpVTVKbEtKVDczd3R5VHA4VEJ6RmJr?=
 =?utf-8?B?T0pTVEk1RDRWM2FsYVFsclF2Mld1TlZ2SG9ZaG9oQWNJTlRnVlBUNXlTc013?=
 =?utf-8?B?NHhUbDArVkFiM1NXeXdBM1RhMXVZdUlMenBhZzM3VW1wNzN5R25hbk1rNmxV?=
 =?utf-8?B?cUhNblNkZlE1SnpvYU5zTWczMTBCZDhHM3F4ZkYxZWRDQ0NDU1FXTWI0Z3JC?=
 =?utf-8?B?dFJTbFBwWTlaYVJSK09nKzlLcjBISS9TcFhlSDE0aWJ1d1ZMMzBMcHYyYmNx?=
 =?utf-8?B?Q0preU0rejliT05VTHloMFBhT2VmRklxN084cnB1U0NDUVlRM3lKSnUxNjhS?=
 =?utf-8?B?d3d0QWtaQW9DamYvOUo5cm5DTytHQnYvYW43TDc1aTAwaWhHZUxaV1NUUHI4?=
 =?utf-8?Q?PBslYeGEpFExtp5l3MTjrdWw0?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6a7ca157-1486-42fb-6b97-08dc9ff3f911
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2024 08:48:58.5958
 (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: zkMTX5b+oCFQgg/ZeALBvFh1oI/orGqq87oRGACQS3jlcZzepS33aCXdT7aDzciCBd572xuLmkcx4PDrKP/p2g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7171
X-Proofpoint-GUID: reSMpEsLwL_nTutmTQ8im3pY3E2Xycrg
X-Proofpoint-ORIG-GUID: reSMpEsLwL_nTutmTQ8im3pY3E2Xycrg
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-08_15,2024-07-08_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 mlxscore=0
 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 bulkscore=0
 impostorscore=0 priorityscore=1501 clxscore=1011 suspectscore=0
 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2406140001 definitions=main-2407090058

03.07.24 17:58, Jan Beulich:
> On 01.07.2024 10:25, Sergiy Kibrik wrote:
>> Transactional Synchronization Extensions are supported on certain Intel's
>> CPUs only, hence can be put under CONFIG_INTEL build option.
>>
>> The whole TSX support, even if supported by CPU, may need to be disabled via
>> options, by microcode or through spec-ctrl, depending on a set of specific
>> conditions. To make sure nothing gets accidentally runtime-broken all
>> modifications of global TSX configuration variables is secured by #ifdef's,
>> while variables themselves redefined to 0, so that ones can't mistakenly be
>> written to.
>>
>> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Btw - any reason you didn't Cc Roger?
> 

oops, forgot to run add_maintainers.pl..
cc Roger

   -Sergiy


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 09:10:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 09:10:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755979.1164522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR6rf-0002vR-Ou; Tue, 09 Jul 2024 09:10:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755979.1164522; Tue, 09 Jul 2024 09: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 1sR6rf-0002vK-M0; Tue, 09 Jul 2024 09:10:23 +0000
Received: by outflank-mailman (input) for mailman id 755979;
 Tue, 09 Jul 2024 09:10: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=ZAmS=OJ=tesarici.cz=petr@srs-se1.protection.inumbo.net>)
 id 1sR6re-0002uv-3v
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 09:10:22 +0000
Received: from bee.tesarici.cz (bee.tesarici.cz [2a03:3b40:fe:2d4::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1086f8dc-3dd3-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 11:10:20 +0200 (CEST)
Received: from mordecai.tesarici.cz (unknown [193.86.92.181])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 by bee.tesarici.cz (Postfix) with ESMTPSA id 0BD141E2B9C;
 Tue,  9 Jul 2024 11:10: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: 1086f8dc-3dd3-11ef-bbfb-fd08da9f4363
Authentication-Results: mail.tesarici.cz; dmarc=fail (p=quarantine dis=none) header.from=tesarici.cz
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tesarici.cz; s=mail;
	t=1720516219; bh=xZVU+iwbnJxheNg53HnlwvzV96NtMZC72z1Zwk476Hw=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=MckRtwm7ni0FRFdzdCfKzpd2ekaNAOccuUG8e6vk9W8typB20L+2w4o9ycFudAOpO
	 aQg/nQYSKjVu1Gr4EzNwX9+l37s8R5ybboMzki+6ngnxDr//fo3afD6KGM0u7wAYKf
	 KYprQXHtHLx652lxgBseQ1ll2x2P9s+aMMHrHX5dYSc3rznkhUShmw519UrAaQRZm4
	 SaZKG1MJ+VjWyMVldSQEFvjqHWYdpT0+FzGLOrXe/FTMef4383ZlvsEvg8q1ml6h9m
	 AjvLWrtpWuLqytzo4ECpWk2PSsd+0MFhgaHTu1Y1+o3FMlH+BeMEhfUhRFvkjAcfMj
	 w15lcxlTIfSNA==
Date: Tue, 9 Jul 2024 11:10:13 +0200
From: Petr =?UTF-8?B?VGVzYcWZw61r?= <petr@tesarici.cz>
To: mhkelley58@gmail.com
Cc: mhklinux@outlook.com, robin.murphy@arm.com, joro@8bytes.org,
 will@kernel.org, jgross@suse.com, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, hch@lst.de, m.szyprowski@samsung.com,
 iommu@lists.linux.dev, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Message-ID: <20240709111013.6103d3f0@mordecai.tesarici.cz>
In-Reply-To: <20240708194100.1531-1-mhklinux@outlook.com>
References: <20240708194100.1531-1-mhklinux@outlook.com>
X-Mailer: Claws Mail 4.2.0 (GTK 3.24.42; x86_64-suse-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Mon,  8 Jul 2024 12:41:00 -0700
mhkelley58@gmail.com wrote:

> From: Michael Kelley <mhklinux@outlook.com>
>=20
> With CONFIG_SWIOTLB_DYNAMIC enabled, each round-trip map/unmap pair
> in the swiotlb results in 6 calls to swiotlb_find_pool(). In multiple
> places, the pool is found and used in one function, and then must
> be found again in the next function that is called because only the
> tlb_addr is passed as an argument. These are the six call sites:
>=20
> dma_direct_map_page:
> 1. swiotlb_map->swiotlb_tbl_map_single->swiotlb_bounce
>=20
> dma_direct_unmap_page:
> 2. dma_direct_sync_single_for_cpu->is_swiotlb_buffer
> 3. dma_direct_sync_single_for_cpu->swiotlb_sync_single_for_cpu->
> 	swiotlb_bounce
> 4. is_swiotlb_buffer
> 5. swiotlb_tbl_unmap_single->swiotlb_del_transient
> 6. swiotlb_tbl_unmap_single->swiotlb_release_slots
>=20
> Reduce the number of calls by finding the pool at a higher level, and
> passing it as an argument instead of searching again. A key change is
> for is_swiotlb_buffer() to return a pool pointer instead of a boolean,
> and then pass this pool pointer to subsequent swiotlb functions.
>=20
> There are 9 occurrences of is_swiotlb_buffer() used to test if a buffer
> is a swiotlb buffer before calling a swiotlb function. To reduce code
> duplication in getting the pool pointer and passing it as an argument,
> introduce inline wrappers for this pattern. The generated code is
> essentially unchanged.
>=20
> Since is_swiotlb_buffer() no longer returns a boolean, rename some
> functions to reflect the change:
> * swiotlb_find_pool() becomes __swiotlb_find_pool()
> * is_swiotlb_buffer() becomes swiotlb_find_pool()
> * is_xen_swiotlb_buffer() becomes xen_swiotlb_find_pool()
>=20
> With these changes, a round-trip map/unmap pair requires only 2 pool
> lookups (listed using the new names and wrappers):
>=20
> dma_direct_unmap_page:
> 1. dma_direct_sync_single_for_cpu->swiotlb_find_pool
> 2. swiotlb_tbl_unmap_single->swiotlb_find_pool
>=20
> These changes come from noticing the inefficiencies in a code review,
> not from performance measurements. With CONFIG_SWIOTLB_DYNAMIC,
> __swiotlb_find_pool() is not trivial, and it uses an RCU read lock,
> so avoiding the redundant calls helps performance in a hot path.
> When CONFIG_SWIOTLB_DYNAMIC is *not* set, the code size reduction
> is minimal and the perf benefits are likely negligible, but no
> harm is done.
>=20
> No functional change is intended.
>=20
> Signed-off-by: Michael Kelley <mhklinux@outlook.com>

Reviewed-by: Petr Tesarik <petr@tesarici.cz>

Find a few notes inline, mostly FYI:

> ---
>=20
> Changes in v3:
> * Add inline wrappers for swiotlb_tbl_unmap_single(),
>   swiotlb_sync_single_for_device() and swiotlb_sync_single_for_cpu() to
>   commonize the swiotlb_find_pool() tests for whether the buffer is a
>   swiotlb buffer [Christoph Hellwig]
> * Change most users of __swiotlb_find_pool() to use swiotlb_find_pool(),
>   as the extra checks in the latter aren't impactful. Remove v2 change in
>   swiotlb_find_pool() to use __swiotlb_find_pool() when
>   CONFIG_SWIOTLB_DYNAMIC is not set. [Christoph Hellwig]
> * Rework swiotlb_find_pool() to use IS_ENABLED() instead of #ifdef's.
>   To make this work, move dma_uses_io_tlb field in struct device out from
>   under #ifdef CONFIG_SWIOTLB_DYNAMIC. [Christoph Hellwig]
> * Fix line lengths > 80 chars [Christoph Hellwig]
> * Update commit message to reflect changes
>=20
> Changes in v2 vs. RFC version[1]:
> * In swiotlb_find_pool(), use __swiotlb_find_pool() instead of open
>   coding when CONFIG_SWIOTLB_DYNAMIC is not set [Petr Tesa=C5=99=C3=ADk]
> * Rename functions as described in the commit message to reflect that
>   is_swiotlb_buffer() no longer returns a boolean [Petr Tesa=C5=99=C3=ADk,
>   Christoph Hellwig]
> * Updated commit message and patch Subject
>=20
> [1] https://lore.kernel.org/linux-iommu/20240607031421.182589-1-mhklinux@=
outlook.com/
>=20
>  drivers/iommu/dma-iommu.c   |  11 ++-
>  drivers/xen/swiotlb-xen.c   |  31 +++++---
>  include/linux/device.h      |   3 +-
>  include/linux/scatterlist.h |   2 +-
>  include/linux/swiotlb.h     | 138 +++++++++++++++++++++---------------
>  kernel/dma/direct.c         |  10 +--
>  kernel/dma/direct.h         |   9 +--
>  kernel/dma/swiotlb.c        |  64 +++++++++--------
>  8 files changed, 150 insertions(+), 118 deletions(-)
>=20
> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> index 43520e7275cc..7b4486238427 100644
> --- a/drivers/iommu/dma-iommu.c
> +++ b/drivers/iommu/dma-iommu.c
> @@ -1081,8 +1081,7 @@ static void iommu_dma_sync_single_for_cpu(struct de=
vice *dev,
>  	if (!dev_is_dma_coherent(dev))
>  		arch_sync_dma_for_cpu(phys, size, dir);
> =20
> -	if (is_swiotlb_buffer(dev, phys))
> -		swiotlb_sync_single_for_cpu(dev, phys, size, dir);
> +	swiotlb_sync_single_for_cpu(dev, phys, size, dir);
>  }
> =20
>  static void iommu_dma_sync_single_for_device(struct device *dev,
> @@ -1094,8 +1093,7 @@ static void iommu_dma_sync_single_for_device(struct=
 device *dev,
>  		return;
> =20
>  	phys =3D iommu_iova_to_phys(iommu_get_dma_domain(dev), dma_handle);
> -	if (is_swiotlb_buffer(dev, phys))
> -		swiotlb_sync_single_for_device(dev, phys, size, dir);
> +	swiotlb_sync_single_for_device(dev, phys, size, dir);
> =20
>  	if (!dev_is_dma_coherent(dev))
>  		arch_sync_dma_for_device(phys, size, dir);
> @@ -1189,7 +1187,7 @@ static dma_addr_t iommu_dma_map_page(struct device =
*dev, struct page *page,
>  		arch_sync_dma_for_device(phys, size, dir);
> =20
>  	iova =3D __iommu_dma_map(dev, phys, size, prot, dma_mask);
> -	if (iova =3D=3D DMA_MAPPING_ERROR && is_swiotlb_buffer(dev, phys))
> +	if (iova =3D=3D DMA_MAPPING_ERROR)
>  		swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs);
>  	return iova;
>  }
> @@ -1209,8 +1207,7 @@ static void iommu_dma_unmap_page(struct device *dev=
, dma_addr_t dma_handle,
> =20
>  	__iommu_dma_unmap(dev, dma_handle, size);
> =20
> -	if (unlikely(is_swiotlb_buffer(dev, phys)))
> -		swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs);
> +	swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs);
>  }
> =20
>  /*
> diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
> index 6579ae3f6dac..35155258a7e2 100644
> --- a/drivers/xen/swiotlb-xen.c
> +++ b/drivers/xen/swiotlb-xen.c
> @@ -88,7 +88,8 @@ static inline int range_straddles_page_boundary(phys_ad=
dr_t p, size_t size)
>  	return 0;
>  }
> =20
> -static int is_xen_swiotlb_buffer(struct device *dev, dma_addr_t dma_addr)
> +static struct io_tlb_pool *xen_swiotlb_find_pool(struct device *dev,
> +						 dma_addr_t dma_addr)
>  {
>  	unsigned long bfn =3D XEN_PFN_DOWN(dma_to_phys(dev, dma_addr));
>  	unsigned long xen_pfn =3D bfn_to_local_pfn(bfn);
> @@ -99,8 +100,8 @@ static int is_xen_swiotlb_buffer(struct device *dev, d=
ma_addr_t dma_addr)
>  	 * in our domain. Therefore _only_ check address within our domain.
>  	 */
>  	if (pfn_valid(PFN_DOWN(paddr)))
> -		return is_swiotlb_buffer(dev, paddr);
> -	return 0;
> +		return swiotlb_find_pool(dev, paddr);
> +	return NULL;
>  }
> =20
>  #ifdef CONFIG_X86
> @@ -227,8 +228,9 @@ static dma_addr_t xen_swiotlb_map_page(struct device =
*dev, struct page *page,
>  	 * Ensure that the address returned is DMA'ble
>  	 */
>  	if (unlikely(!dma_capable(dev, dev_addr, size, true))) {
> -		swiotlb_tbl_unmap_single(dev, map, size, dir,
> -				attrs | DMA_ATTR_SKIP_CPU_SYNC);
> +		__swiotlb_tbl_unmap_single(dev, map, size, dir,
> +				attrs | DMA_ATTR_SKIP_CPU_SYNC,
> +				swiotlb_find_pool(dev, map));
>  		return DMA_MAPPING_ERROR;
>  	}
> =20
> @@ -254,6 +256,7 @@ static void xen_swiotlb_unmap_page(struct device *hwd=
ev, dma_addr_t dev_addr,
>  		size_t size, enum dma_data_direction dir, unsigned long attrs)
>  {
>  	phys_addr_t paddr =3D xen_dma_to_phys(hwdev, dev_addr);
> +	struct io_tlb_pool *pool;
> =20
>  	BUG_ON(dir =3D=3D DMA_NONE);
> =20
> @@ -265,8 +268,10 @@ static void xen_swiotlb_unmap_page(struct device *hw=
dev, dma_addr_t dev_addr,
>  	}
> =20
>  	/* NOTE: We use dev_addr here, not paddr! */
> -	if (is_xen_swiotlb_buffer(hwdev, dev_addr))
> -		swiotlb_tbl_unmap_single(hwdev, paddr, size, dir, attrs);
> +	pool =3D xen_swiotlb_find_pool(hwdev, dev_addr);
> +	if (pool)
> +		__swiotlb_tbl_unmap_single(hwdev, paddr, size, dir,
> +					   attrs, pool);
>  }
> =20
>  static void
> @@ -274,6 +279,7 @@ xen_swiotlb_sync_single_for_cpu(struct device *dev, d=
ma_addr_t dma_addr,
>  		size_t size, enum dma_data_direction dir)
>  {
>  	phys_addr_t paddr =3D xen_dma_to_phys(dev, dma_addr);
> +	struct io_tlb_pool *pool;
> =20
>  	if (!dev_is_dma_coherent(dev)) {
>  		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dma_addr))))
> @@ -282,8 +288,9 @@ xen_swiotlb_sync_single_for_cpu(struct device *dev, d=
ma_addr_t dma_addr,
>  			xen_dma_sync_for_cpu(dev, dma_addr, size, dir);
>  	}
> =20
> -	if (is_xen_swiotlb_buffer(dev, dma_addr))
> -		swiotlb_sync_single_for_cpu(dev, paddr, size, dir);
> +	pool =3D xen_swiotlb_find_pool(dev, dma_addr);
> +	if (pool)
> +		__swiotlb_sync_single_for_cpu(dev, paddr, size, dir, pool);

Since swiotlb_sync_single_for_cpu() adds an unlikely() to the
condition, do we also want to add it here?

>  }
> =20
>  static void
> @@ -291,9 +298,11 @@ xen_swiotlb_sync_single_for_device(struct device *de=
v, dma_addr_t dma_addr,
>  		size_t size, enum dma_data_direction dir)
>  {
>  	phys_addr_t paddr =3D xen_dma_to_phys(dev, dma_addr);
> +	struct io_tlb_pool *pool;
> =20
> -	if (is_xen_swiotlb_buffer(dev, dma_addr))
> -		swiotlb_sync_single_for_device(dev, paddr, size, dir);
> +	pool =3D xen_swiotlb_find_pool(dev, dma_addr);
> +	if (pool)
> +		__swiotlb_sync_single_for_device(dev, paddr, size, dir, pool);

Same as above, but with swiotlb_sync_single_for_device().

> =20
>  	if (!dev_is_dma_coherent(dev)) {
>  		if (pfn_valid(PFN_DOWN(dma_to_phys(dev, dma_addr))))
> diff --git a/include/linux/device.h b/include/linux/device.h
> index ace039151cb8..d8a7f5245b7e 100644
> --- a/include/linux/device.h
> +++ b/include/linux/device.h
> @@ -778,8 +778,9 @@ struct device {
>  #ifdef CONFIG_SWIOTLB_DYNAMIC
>  	struct list_head dma_io_tlb_pools;
>  	spinlock_t dma_io_tlb_lock;
> -	bool dma_uses_io_tlb;
>  #endif
> +	bool dma_uses_io_tlb;
> +

This field is unsued and always false if !CONFIG_SWIOTLB_DYNAMIC. This
works as expected but it had better be mentioned in the documentation of
the field so people are not confused.

Update: If hch keeps the field inside #ifdef, this is now moot.

>  	/* arch specific additions */
>  	struct dev_archdata	archdata;
> =20
> diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
> index 77df3d7b18a6..e61d164622db 100644
> --- a/include/linux/scatterlist.h
> +++ b/include/linux/scatterlist.h
> @@ -332,7 +332,7 @@ static inline void sg_dma_unmark_bus_address(struct s=
catterlist *sg)
>   * Description:
>   *   Returns true if the scatterlist was marked for SWIOTLB bouncing. No=
t all
>   *   elements may have been bounced, so the caller would have to check
> - *   individual SG entries with is_swiotlb_buffer().
> + *   individual SG entries with swiotlb_find_pool().
>   */
>  static inline bool sg_dma_is_swiotlb(struct scatterlist *sg)
>  {
> diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
> index 14bc10c1bb23..9ee8231e6956 100644
> --- a/include/linux/swiotlb.h
> +++ b/include/linux/swiotlb.h
> @@ -42,24 +42,6 @@ int swiotlb_init_late(size_t size, gfp_t gfp_mask,
>  	int (*remap)(void *tlb, unsigned long nslabs));
>  extern void __init swiotlb_update_mem_attributes(void);
> =20
> -phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, phys_addr_t phy=
s,
> -		size_t mapping_size,
> -		unsigned int alloc_aligned_mask, enum dma_data_direction dir,
> -		unsigned long attrs);
> -
> -extern void swiotlb_tbl_unmap_single(struct device *hwdev,
> -				     phys_addr_t tlb_addr,
> -				     size_t mapping_size,
> -				     enum dma_data_direction dir,
> -				     unsigned long attrs);
> -
> -void swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_=
addr,
> -		size_t size, enum dma_data_direction dir);
> -void swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_add=
r,
> -		size_t size, enum dma_data_direction dir);
> -dma_addr_t swiotlb_map(struct device *dev, phys_addr_t phys,
> -		size_t size, enum dma_data_direction dir, unsigned long attrs);
> -
>  #ifdef CONFIG_SWIOTLB
> =20
>  /**
> @@ -143,55 +125,48 @@ struct io_tlb_mem {
>  #endif
>  };
> =20
> -#ifdef CONFIG_SWIOTLB_DYNAMIC
> -
> -struct io_tlb_pool *swiotlb_find_pool(struct device *dev, phys_addr_t pa=
ddr);
> -
> -#else
> -
> -static inline struct io_tlb_pool *swiotlb_find_pool(struct device *dev,
> -						    phys_addr_t paddr)
> -{
> -	return &dev->dma_io_tlb_mem->defpool;
> -}
> -
> -#endif
> +struct io_tlb_pool *__swiotlb_find_pool(struct device *dev, phys_addr_t =
paddr);
> =20
>  /**
> - * is_swiotlb_buffer() - check if a physical address belongs to a swiotlb
> + * swiotlb_find_pool() - find swiotlb pool to which a physical address b=
elongs
>   * @dev:        Device which has mapped the buffer.
>   * @paddr:      Physical address within the DMA buffer.
>   *
> - * Check if @paddr points into a bounce buffer.
> + * Find the swiotlb pool that @paddr points into.
>   *
>   * Return:
> - * * %true if @paddr points into a bounce buffer
> - * * %false otherwise
> + * * pool address if @paddr points into a bounce buffer
> + * * NULL if @paddr does not point into a bounce buffer. As such, this f=
unction
> + *   can be used to determine if @paddr denotes a swiotlb bounce buffer.
>   */
> -static inline bool is_swiotlb_buffer(struct device *dev, phys_addr_t pad=
dr)
> +static inline struct io_tlb_pool *swiotlb_find_pool(struct device *dev,
> +						    phys_addr_t paddr)
>  {
>  	struct io_tlb_mem *mem =3D dev->dma_io_tlb_mem;
> =20
>  	if (!mem)
> -		return false;
> +		return NULL;
> +
> +	if (IS_ENABLED(CONFIG_SWIOTLB_DYNAMIC)) {
> +		/*
> +		 * All SWIOTLB buffer addresses must have been returned by
> +		 * swiotlb_tbl_map_single() and passed to a device driver.
> +		 * If a SWIOTLB address is checked on another CPU, then it was
> +		 * presumably loaded by the device driver from an unspecified
> +		 * private data structure. Make sure that this load is ordered
> +		 * before reading dev->dma_uses_io_tlb here and mem->pools
> +		 * in __swiotlb_find_pool().
> +		 *
> +		 * This barrier pairs with smp_mb() in swiotlb_find_slots().
> +		 */
> +		smp_rmb();
> +		if (READ_ONCE(dev->dma_uses_io_tlb))
> +			return __swiotlb_find_pool(dev, paddr);

OK, so __swiotlb_find_pool() is now always declared (so the code
compiles), but if CONFIG_SWIOTLB_DYNAMIC=3Dn, it is never defined. The
result still links, because the compiler optimizes away the whole
if-clause, so there are no references to an undefined symbol in the
object file.

I think I've already seen similar constructs elsewhere in the kernel,
so relying on the optimization seems to be common practice.

> +	} else if (paddr >=3D mem->defpool.start && paddr < mem->defpool.end) {
> +		return &mem->defpool;
> +	}
> =20
> -#ifdef CONFIG_SWIOTLB_DYNAMIC
> -	/*
> -	 * All SWIOTLB buffer addresses must have been returned by
> -	 * swiotlb_tbl_map_single() and passed to a device driver.
> -	 * If a SWIOTLB address is checked on another CPU, then it was
> -	 * presumably loaded by the device driver from an unspecified private
> -	 * data structure. Make sure that this load is ordered before reading
> -	 * dev->dma_uses_io_tlb here and mem->pools in swiotlb_find_pool().
> -	 *
> -	 * This barrier pairs with smp_mb() in swiotlb_find_slots().
> -	 */
> -	smp_rmb();
> -	return READ_ONCE(dev->dma_uses_io_tlb) &&
> -		swiotlb_find_pool(dev, paddr);
> -#else
> -	return paddr >=3D mem->defpool.start && paddr < mem->defpool.end;
> -#endif
> +	return NULL;
>  }
> =20
>  static inline bool is_swiotlb_force_bounce(struct device *dev)
> @@ -219,9 +194,10 @@ static inline void swiotlb_dev_init(struct device *d=
ev)
>  {
>  }
> =20
> -static inline bool is_swiotlb_buffer(struct device *dev, phys_addr_t pad=
dr)
> +static inline struct io_tlb_pool *swiotlb_find_pool(struct device *dev,
> +						    phys_addr_t paddr)
>  {
> -	return false;
> +	return NULL;
>  }
>  static inline bool is_swiotlb_force_bounce(struct device *dev)
>  {
> @@ -260,6 +236,56 @@ static inline phys_addr_t default_swiotlb_limit(void)
>  }
>  #endif /* CONFIG_SWIOTLB */
> =20
> +phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, phys_addr_t phy=
s,
> +		size_t mapping_size,
> +		unsigned int alloc_aligned_mask, enum dma_data_direction dir,
> +		unsigned long attrs);
> +
> +void __swiotlb_tbl_unmap_single(struct device *hwdev,
> +				     phys_addr_t tlb_addr,
> +				     size_t mapping_size,
> +				     enum dma_data_direction dir,
> +				     unsigned long attrs,
> +				     struct io_tlb_pool *pool);
> +
> +void __swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tl=
b_addr,
> +				      size_t size, enum dma_data_direction dir,
> +				      struct io_tlb_pool *pool);
> +void __swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_a=
ddr,
> +				   size_t size, enum dma_data_direction dir,
> +				   struct io_tlb_pool *pool);
> +dma_addr_t swiotlb_map(struct device *dev, phys_addr_t phys,
> +		size_t size, enum dma_data_direction dir, unsigned long attrs);
> +
> +
> +static inline void swiotlb_tbl_unmap_single(struct device *dev,
> +			phys_addr_t addr, size_t size,
> +			enum dma_data_direction dir, unsigned long attrs)
> +{
> +	struct io_tlb_pool *pool =3D swiotlb_find_pool(dev, addr);
> +
> +	if (unlikely(pool))
> +		__swiotlb_tbl_unmap_single(dev, addr, size, dir, attrs, pool);
> +}
> +
> +static inline void swiotlb_sync_single_for_device(struct device *dev,
> +		phys_addr_t addr, size_t size, enum dma_data_direction dir)
> +{
> +	struct io_tlb_pool *pool =3D swiotlb_find_pool(dev, addr);
> +
> +	if (unlikely(pool))
> +		__swiotlb_sync_single_for_device(dev, addr, size, dir, pool);

We're adding an unlikely() here, which wasn't originally present in
iommu_dma_sync_single_for_device(). OTOH it should do no harm, and it
was most likely an omission.=20

> +}
> +
> +static inline void swiotlb_sync_single_for_cpu(struct device *dev,
> +		phys_addr_t addr, size_t size, enum dma_data_direction dir)
> +{
> +	struct io_tlb_pool *pool =3D swiotlb_find_pool(dev, addr);
> +
> +	if (unlikely(pool))
> +		__swiotlb_sync_single_for_cpu(dev, addr, size, dir, pool);

Same as above, but for iommu_dma_sync_single_for_cpu().

Again, none of my comments should block inclusion.

Petr T

> +}
> +
>  extern void swiotlb_print_info(void);
> =20
>  #ifdef CONFIG_DMA_RESTRICTED_POOL
> diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
> index 4d543b1e9d57..4480a3cd92e0 100644
> --- a/kernel/dma/direct.c
> +++ b/kernel/dma/direct.c
> @@ -404,9 +404,7 @@ void dma_direct_sync_sg_for_device(struct device *dev,
>  	for_each_sg(sgl, sg, nents, i) {
>  		phys_addr_t paddr =3D dma_to_phys(dev, sg_dma_address(sg));
> =20
> -		if (unlikely(is_swiotlb_buffer(dev, paddr)))
> -			swiotlb_sync_single_for_device(dev, paddr, sg->length,
> -						       dir);
> +		swiotlb_sync_single_for_device(dev, paddr, sg->length, dir);
> =20
>  		if (!dev_is_dma_coherent(dev))
>  			arch_sync_dma_for_device(paddr, sg->length,
> @@ -430,9 +428,7 @@ void dma_direct_sync_sg_for_cpu(struct device *dev,
>  		if (!dev_is_dma_coherent(dev))
>  			arch_sync_dma_for_cpu(paddr, sg->length, dir);
> =20
> -		if (unlikely(is_swiotlb_buffer(dev, paddr)))
> -			swiotlb_sync_single_for_cpu(dev, paddr, sg->length,
> -						    dir);
> +		swiotlb_sync_single_for_cpu(dev, paddr, sg->length, dir);
> =20
>  		if (dir =3D=3D DMA_FROM_DEVICE)
>  			arch_dma_mark_clean(paddr, sg->length);
> @@ -640,7 +636,7 @@ size_t dma_direct_max_mapping_size(struct device *dev)
>  bool dma_direct_need_sync(struct device *dev, dma_addr_t dma_addr)
>  {
>  	return !dev_is_dma_coherent(dev) ||
> -	       is_swiotlb_buffer(dev, dma_to_phys(dev, dma_addr));
> +	       swiotlb_find_pool(dev, dma_to_phys(dev, dma_addr));
>  }
> =20
>  /**
> diff --git a/kernel/dma/direct.h b/kernel/dma/direct.h
> index 18d346118fe8..d2c0b7e632fc 100644
> --- a/kernel/dma/direct.h
> +++ b/kernel/dma/direct.h
> @@ -58,8 +58,7 @@ static inline void dma_direct_sync_single_for_device(st=
ruct device *dev,
>  {
>  	phys_addr_t paddr =3D dma_to_phys(dev, addr);
> =20
> -	if (unlikely(is_swiotlb_buffer(dev, paddr)))
> -		swiotlb_sync_single_for_device(dev, paddr, size, dir);
> +	swiotlb_sync_single_for_device(dev, paddr, size, dir);
> =20
>  	if (!dev_is_dma_coherent(dev))
>  		arch_sync_dma_for_device(paddr, size, dir);
> @@ -75,8 +74,7 @@ static inline void dma_direct_sync_single_for_cpu(struc=
t device *dev,
>  		arch_sync_dma_for_cpu_all();
>  	}
> =20
> -	if (unlikely(is_swiotlb_buffer(dev, paddr)))
> -		swiotlb_sync_single_for_cpu(dev, paddr, size, dir);
> +	swiotlb_sync_single_for_cpu(dev, paddr, size, dir);
> =20
>  	if (dir =3D=3D DMA_FROM_DEVICE)
>  		arch_dma_mark_clean(paddr, size);
> @@ -121,8 +119,7 @@ static inline void dma_direct_unmap_page(struct devic=
e *dev, dma_addr_t addr,
>  	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
>  		dma_direct_sync_single_for_cpu(dev, addr, size, dir);
> =20
> -	if (unlikely(is_swiotlb_buffer(dev, phys)))
> -		swiotlb_tbl_unmap_single(dev, phys, size, dir,
> +	swiotlb_tbl_unmap_single(dev, phys, size, dir,
>  					 attrs | DMA_ATTR_SKIP_CPU_SYNC);
>  }
>  #endif /* _KERNEL_DMA_DIRECT_H */
> diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
> index fe1ccb53596f..5010812e7da4 100644
> --- a/kernel/dma/swiotlb.c
> +++ b/kernel/dma/swiotlb.c
> @@ -763,16 +763,18 @@ static void swiotlb_dyn_free(struct rcu_head *rcu)
>  }
> =20
>  /**
> - * swiotlb_find_pool() - find the IO TLB pool for a physical address
> + * __swiotlb_find_pool() - find the IO TLB pool for a physical address
>   * @dev:        Device which has mapped the DMA buffer.
>   * @paddr:      Physical address within the DMA buffer.
>   *
>   * Find the IO TLB memory pool descriptor which contains the given physi=
cal
> - * address, if any.
> + * address, if any. This function is for use only when the dev is known =
to
> + * be using swiotlb. Use swiotlb_find_pool() for the more general case
> + * when this condition is not met.
>   *
>   * Return: Memory pool which contains @paddr, or %NULL if none.
>   */
> -struct io_tlb_pool *swiotlb_find_pool(struct device *dev, phys_addr_t pa=
ddr)
> +struct io_tlb_pool *__swiotlb_find_pool(struct device *dev, phys_addr_t =
paddr)
>  {
>  	struct io_tlb_mem *mem =3D dev->dma_io_tlb_mem;
>  	struct io_tlb_pool *pool;
> @@ -855,9 +857,8 @@ static unsigned int swiotlb_align_offset(struct devic=
e *dev,
>   * Bounce: copy the swiotlb buffer from or back to the original dma loca=
tion
>   */
>  static void swiotlb_bounce(struct device *dev, phys_addr_t tlb_addr, siz=
e_t size,
> -			   enum dma_data_direction dir)
> +			   enum dma_data_direction dir, struct io_tlb_pool *mem)
>  {
> -	struct io_tlb_pool *mem =3D swiotlb_find_pool(dev, tlb_addr);
>  	int index =3D (tlb_addr - mem->start) >> IO_TLB_SHIFT;
>  	phys_addr_t orig_addr =3D mem->slots[index].orig_addr;
>  	size_t alloc_size =3D mem->slots[index].alloc_size;
> @@ -1243,7 +1244,7 @@ static int swiotlb_find_slots(struct device *dev, p=
hys_addr_t orig_addr,
>  	 * that was made by swiotlb_dyn_alloc() on a third CPU (cf. multicopy
>  	 * atomicity).
>  	 *
> -	 * See also the comment in is_swiotlb_buffer().
> +	 * See also the comment in swiotlb_find_pool().
>  	 */
>  	smp_mb();
> =20
> @@ -1435,13 +1436,13 @@ phys_addr_t swiotlb_tbl_map_single(struct device =
*dev, phys_addr_t orig_addr,
>  	 * hardware behavior.  Use of swiotlb is supposed to be transparent,
>  	 * i.e. swiotlb must not corrupt memory by clobbering unwritten bytes.
>  	 */
> -	swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_TO_DEVICE);
> +	swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_TO_DEVICE, pool);
>  	return tlb_addr;
>  }
> =20
> -static void swiotlb_release_slots(struct device *dev, phys_addr_t tlb_ad=
dr)
> +static void swiotlb_release_slots(struct device *dev, phys_addr_t tlb_ad=
dr,
> +				  struct io_tlb_pool *mem)
>  {
> -	struct io_tlb_pool *mem =3D swiotlb_find_pool(dev, tlb_addr);
>  	unsigned long flags;
>  	unsigned int offset =3D swiotlb_align_offset(dev, 0, tlb_addr);
>  	int index, nslots, aindex;
> @@ -1505,11 +1506,9 @@ static void swiotlb_release_slots(struct device *d=
ev, phys_addr_t tlb_addr)
>   *
>   * Return: %true if @tlb_addr belonged to a transient pool that was rele=
ased.
>   */
> -static bool swiotlb_del_transient(struct device *dev, phys_addr_t tlb_ad=
dr)
> +static bool swiotlb_del_transient(struct device *dev, phys_addr_t tlb_ad=
dr,
> +				  struct io_tlb_pool *pool)
>  {
> -	struct io_tlb_pool *pool;
> -
> -	pool =3D swiotlb_find_pool(dev, tlb_addr);
>  	if (!pool->transient)
>  		return false;
> =20
> @@ -1522,7 +1521,8 @@ static bool swiotlb_del_transient(struct device *de=
v, phys_addr_t tlb_addr)
>  #else  /* !CONFIG_SWIOTLB_DYNAMIC */
> =20
>  static inline bool swiotlb_del_transient(struct device *dev,
> -					 phys_addr_t tlb_addr)
> +					 phys_addr_t tlb_addr,
> +					 struct io_tlb_pool *pool)
>  {
>  	return false;
>  }
> @@ -1532,36 +1532,39 @@ static inline bool swiotlb_del_transient(struct d=
evice *dev,
>  /*
>   * tlb_addr is the physical address of the bounce buffer to unmap.
>   */
> -void swiotlb_tbl_unmap_single(struct device *dev, phys_addr_t tlb_addr,
> +void __swiotlb_tbl_unmap_single(struct device *dev, phys_addr_t tlb_addr,
>  			      size_t mapping_size, enum dma_data_direction dir,
> -			      unsigned long attrs)
> +			      unsigned long attrs, struct io_tlb_pool *pool)
>  {
>  	/*
>  	 * First, sync the memory before unmapping the entry
>  	 */
>  	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC) &&
>  	    (dir =3D=3D DMA_FROM_DEVICE || dir =3D=3D DMA_BIDIRECTIONAL))
> -		swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_FROM_DEVICE);
> +		swiotlb_bounce(dev, tlb_addr, mapping_size,
> +						DMA_FROM_DEVICE, pool);
> =20
> -	if (swiotlb_del_transient(dev, tlb_addr))
> +	if (swiotlb_del_transient(dev, tlb_addr, pool))
>  		return;
> -	swiotlb_release_slots(dev, tlb_addr);
> +	swiotlb_release_slots(dev, tlb_addr, pool);
>  }
> =20
> -void swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_=
addr,
> -		size_t size, enum dma_data_direction dir)
> +void __swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tl=
b_addr,
> +		size_t size, enum dma_data_direction dir,
> +		struct io_tlb_pool *pool)
>  {
>  	if (dir =3D=3D DMA_TO_DEVICE || dir =3D=3D DMA_BIDIRECTIONAL)
> -		swiotlb_bounce(dev, tlb_addr, size, DMA_TO_DEVICE);
> +		swiotlb_bounce(dev, tlb_addr, size, DMA_TO_DEVICE, pool);
>  	else
>  		BUG_ON(dir !=3D DMA_FROM_DEVICE);
>  }
> =20
> -void swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_add=
r,
> -		size_t size, enum dma_data_direction dir)
> +void __swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_a=
ddr,
> +		size_t size, enum dma_data_direction dir,
> +		struct io_tlb_pool *pool)
>  {
>  	if (dir =3D=3D DMA_FROM_DEVICE || dir =3D=3D DMA_BIDIRECTIONAL)
> -		swiotlb_bounce(dev, tlb_addr, size, DMA_FROM_DEVICE);
> +		swiotlb_bounce(dev, tlb_addr, size, DMA_FROM_DEVICE, pool);
>  	else
>  		BUG_ON(dir !=3D DMA_TO_DEVICE);
>  }
> @@ -1585,8 +1588,9 @@ dma_addr_t swiotlb_map(struct device *dev, phys_add=
r_t paddr, size_t size,
>  	/* Ensure that the address returned is DMA'ble */
>  	dma_addr =3D phys_to_dma_unencrypted(dev, swiotlb_addr);
>  	if (unlikely(!dma_capable(dev, dma_addr, size, true))) {
> -		swiotlb_tbl_unmap_single(dev, swiotlb_addr, size, dir,
> -			attrs | DMA_ATTR_SKIP_CPU_SYNC);
> +		__swiotlb_tbl_unmap_single(dev, swiotlb_addr, size, dir,
> +			attrs | DMA_ATTR_SKIP_CPU_SYNC,
> +			swiotlb_find_pool(dev, swiotlb_addr));
>  		dev_WARN_ONCE(dev, 1,
>  			"swiotlb addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
>  			&dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
> @@ -1774,11 +1778,13 @@ struct page *swiotlb_alloc(struct device *dev, si=
ze_t size)
>  bool swiotlb_free(struct device *dev, struct page *page, size_t size)
>  {
>  	phys_addr_t tlb_addr =3D page_to_phys(page);
> +	struct io_tlb_pool *pool;
> =20
> -	if (!is_swiotlb_buffer(dev, tlb_addr))
> +	pool =3D swiotlb_find_pool(dev, tlb_addr);
> +	if (!pool)
>  		return false;
> =20
> -	swiotlb_release_slots(dev, tlb_addr);
> +	swiotlb_release_slots(dev, tlb_addr, pool);
> =20
>  	return true;
>  }



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 09:13:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 09:13:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755987.1164531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR6ur-0003Yh-9j; Tue, 09 Jul 2024 09:13:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755987.1164531; Tue, 09 Jul 2024 09:13:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR6ur-0003Ya-76; Tue, 09 Jul 2024 09:13:41 +0000
Received: by outflank-mailman (input) for mailman id 755987;
 Tue, 09 Jul 2024 09:13:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C54Y=OJ=epam.com=prvs=392098eeac=sergiy_kibrik@srs-se1.protection.inumbo.net>)
 id 1sR6up-0003YT-JP
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 09:13:39 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 859a6323-3dd3-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 11:13:37 +0200 (CEST)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4694Jl9d008372;
 Tue, 9 Jul 2024 09:13:26 GMT
Received: from am0pr83cu005.outbound.protection.outlook.com
 (mail-westeuropeazlp17010004.outbound.protection.outlook.com [40.93.65.4])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 406w7r7rpd-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 09 Jul 2024 09:13:25 +0000 (GMT)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by PAVPR03MB9019.eurprd03.prod.outlook.com (2603:10a6:102:321::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Tue, 9 Jul
 2024 09:13:20 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.7741.033; Tue, 9 Jul 2024
 09:13: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: 859a6323-3dd3-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dl9NS6M6XNDWs9EmfdWU+8YRYkmog+B4dS7kqeH/t3KFXpDHYqpMlFxTI/8m6WliBBpos++BkADjhFFMzKLZxTyobAIg2jS2/jsPUeYgV5H1f5hvzGUppynTDI6tL5iAoEjRc1lWoLxmHCzNaV0/FFGMVu2uW4dYAahLpUYuKRnD2LVxHuTwN4UKVY5QdLh2tMKMrYrIb97gmQ+7iI1H/2dnFaI6VhRjNMfCWZLxGXI+7UaaiTt9a0f9feIlsl5lhoSHhscijgS/Wc/kG5hUIDhWiKgtvdxFZPuGxY3ZLlDYfaOFdfIsqqP7Nqvqyn1a2GSZ+7fqBMy2GS2ZYTaJrg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nx8bSRr2FW9ttoTModCxJPOZvV3Y9Qu9XmQsErx//yw=;
 b=JSqJEqHgt8zP5uePS/6eyDcok4JLIhapY7pM13AALXo/C7DbFmm8g7HwcIPGR3V1CYTvKvQBgQA07N9VqC+M9IlrYJh7OD67rrHlnMEuB4oeaPA8BPoshZfnVQQ1x5EuiLPzqVZQgsmPBH8uYFpIjXxGG9A0osgFup6Cx4/Jum0Fkvj3flYSI1jflXtzDlBi/aUVWAUffyJtAJPNNLitlOt31YsIQTIvBmGiNaj1Po6H2O2gYZY5dq6QwkPxdCI2lgTVd8ACtPR39C7H2UEfMx6NMmJ5AD38vX6Y4DThd9MdRJq0tBHstZF77+KzaRliLzfLVsY8C96aVN4ylX9X8A==
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=nx8bSRr2FW9ttoTModCxJPOZvV3Y9Qu9XmQsErx//yw=;
 b=lhjyaOtkmrlU4KgGbjUMkmSI5h7v5E6tlsmp8c4gXoAjHeS+yAMH0vb94vIs/GTMtcGGepJBAV6Ql0ST8OY+CqKZ+5UiL5D/5a/RZPbtDz6C6Y94q0ADSLpeD1Ce2amqWg8pg2sXiBpfFr1uHdgBaU7pwnFxCK5YdQ6UIxWVeUruziFjGKJB6ObB8vakCRXf3jHQ1mhvSKB52QQc7mlm9azg9Ko8mv6X4gJfuvAwc3sLzcSWEPoQW+hVKTEscK+dLKJCZARPe1/b0R36y4WTCmT4gDWXbxmkQEHg87tPIRaJ8CXHCjmEI4IqaFiBqGWF1xrCGjDPx4rFWXhxOYAHEw==
Message-ID: <cbb957fa-3d71-4358-b01c-0a0857db43eb@epam.com>
Date: Tue, 9 Jul 2024 12:13:18 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/2] x86/cpufreq: move ACPI cpufreq driver into
 separate file
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        xen-devel@lists.xenproject.org
References: <cover.1719832871.git.Sergiy_Kibrik@epam.com>
 <d8a13eb8c53d8cde99d7fa1d8e4fce2a597f02fd.1719832871.git.Sergiy_Kibrik@epam.com>
 <0f883617-f4c0-43af-895f-3f70d4143a34@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <0f883617-f4c0-43af-895f-3f70d4143a34@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0043.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::28) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|PAVPR03MB9019:EE_
X-MS-Office365-Filtering-Correlation-Id: d2889066-6dab-4d5b-052d-08dc9ff7607e
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?MXZHa3JsTGxXMjFicVByWENTSUMvUTZqdTkrRzcrcDhEWFNGL1VieXpINSs2?=
 =?utf-8?B?MlNUeXpoL1lZUmY1UFZpb0Nzbjg5SjJDMjBxeWJ2MlNMODU3R1NnbWdlUXcw?=
 =?utf-8?B?Ymcrdm1VbjIvYXBPREZzK0Z4RDIzaytxVjk5eWVnSTZoY3VQcnIzeXVqYW0r?=
 =?utf-8?B?U2FwQitwTnc2c0MwU2pCb09pbWF6c0tBcUE4a25ZVmdndWFzU3NqMjFvYmZo?=
 =?utf-8?B?a09IcU9SWDZLblp3UHo3UEhoUUxWczdvS1NNU0FCOVllVGdCZlVyQzJUZzNK?=
 =?utf-8?B?MHBReGYwMHN3d3JoRkNpd2FDb0dnNEJLSjJvVVVONkZIb1dTdG9kNzUwSDU1?=
 =?utf-8?B?VFdKV1BlK0hxWTBGR1lQSjcxVFF2dDN0d3M4bXdJRmNVNzRNdmhWbGhjSlFx?=
 =?utf-8?B?c1JCWmVMSnJ0dTJuTXJzMG02ZkNoandESVZuRGU3V0NJUnQrKzE2V0srMGcw?=
 =?utf-8?B?Y2puaUxCMHdIWmtRSjgxcE5XQ1R5UnZLTU1WWitnUkNCL3ZWYVZySWxYeE0y?=
 =?utf-8?B?VVlPaTdvdXcwZ0N6RXFXYThuclMreVN2ZFkwcG91VEFYcTdhdEswblp4OTlW?=
 =?utf-8?B?SzJNR0F1QVlGdmVmRmM0RjVMNHh5R0dXdWIyRVRyT0V5ZWhRTFJpZWczN3hz?=
 =?utf-8?B?UkNRVWUxakM0OHdnQlh3MlJHSlQ5WW96eSsreDBBYm1sdE9yRmJvK3N6ZnVx?=
 =?utf-8?B?dmIrK1MxMEhLOWVYYzJ5SUZRWjlNMFBDYUhHR0lUSVFFczF1cDhpWnMxTGxZ?=
 =?utf-8?B?MThnRWFjOVhOMC9PYzBXclVYMFR3N3QzUEFidHhDMk5uSUhKanhiQzhaMldW?=
 =?utf-8?B?NXllN1cvbVpONnN0Q1B5T0wvbnhMeWdzOVpkcXJjMTh5V3Q4K3hEZG43S2JI?=
 =?utf-8?B?S3p2OXJuZjNtbXVlSzRIbGZLVDl4Z29jOEF2ZGw4SERhNEZRNlZaVUN5cVFY?=
 =?utf-8?B?R0JZc1RvUTJmV1RjMFVrNGMvUXc0Vkd2MlpUd1E1ZzlQUE5kUVhjUDdTVWhi?=
 =?utf-8?B?bytib1RyL1RoZWx3NG0vZjh3Q1VreTNFQ2tCSUxIZFVSUndTcFF1YmV5dHBX?=
 =?utf-8?B?ck5wZnEvZ05kMERtMHo0amZibUlpTzBEWkZwWGlON3hMU25raW1ycTJkWU1J?=
 =?utf-8?B?Y25UdkZlbGRXTjhCMkkyOWZQcGRCTVA4M2dCOU11RUdYdEdMMDAxdCt6WEhy?=
 =?utf-8?B?TXJvRTVGOXhYcUpVZzZqTGFRNFVZZ2lhVGJEcVFjWGIrUnp1YnJ0Y28vMEQ0?=
 =?utf-8?B?VDdLZ0puQkRwYXpoZjZjaVp4OS83YmNoeG9uRElXeFJGeFhrZ0Frc1BNMFFw?=
 =?utf-8?B?czdVVi9TTzczUUdnc0pxZEpyRW56ekZNNlN3ZDd3TWlKa1QzSkZqMVpobU9z?=
 =?utf-8?B?b2dGT2krdmQ0MTNvWmVNcWwxSlVzZUtubHdtY0Vlc3NsNVRPdjRaUEc4UVBr?=
 =?utf-8?B?QUhDcDBSWjV4L0NLM2VqSTRSQUhrNHQvSjdRZ0gxNTRCaWFMZmpNa2JZSmRj?=
 =?utf-8?B?c29zNlNxS21oMGI5VjdnTnZGR3lYZllBL1hNbVdVUGE4TVRBTEprdWcvZjl1?=
 =?utf-8?B?ZnBrQnFRVGVITVFjZE8zVnp0T0w1dDV3UVNyb241SWdSUVRuSVlRN1l0Z0tG?=
 =?utf-8?B?Z04zU3N5MmVRSmg5cUFXdHBLQVNENmVjK09LOUhyTFRFWlZKYmVMdkNnTXVt?=
 =?utf-8?B?V2dscTRjWTdzSFN3ZXR3VGw0Z1NSR3U2OEtSNEtXZXpHVm9zSiswY0w1cVdx?=
 =?utf-8?B?YkhSN0hMQUw3cFM2N2lCekV4MU5FVU1ScGJXSWZvek1XUW9CQ0x5ZFFUZDAr?=
 =?utf-8?B?ZHJEaGt4SnlaM2xDS0c1dz09?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?c050THF4eU04amI0Z1FKaWZTcEVRSFlWYklNNDRCQk95ME5JTnYyR0VpVExH?=
 =?utf-8?B?cjNqQVBRdHJnaStLV01CaDlTV3lucEJ6RGZFa2I3eHg4L2xIZVdkMmRVVTg2?=
 =?utf-8?B?K3BrQjRjbzVpOVV2aWFuS2FLMmxKS0duYTVoR0h3a0VmRVczbHRnWTAzbTFW?=
 =?utf-8?B?U1JUdkw1VFUvenpKUFVvQ1k2bG5wL2JtcHcyRmFRMmpQUURrRkphOG9uTlR4?=
 =?utf-8?B?V2p1MWpYQkh0NzhpS3lHbE5EUW5saFcxSTRNU1ordDVXZDVRUFRlcTFwYk1X?=
 =?utf-8?B?YXAwaDJONC9ZR3kyMlBDdTdqV2grQ0xBWk85RW8xUU13K1VUOXlWVkltbXR4?=
 =?utf-8?B?VWxTVnI5UUJDZklkU043c0hhRGtxdEFiV0JtUDN5QXVnOEFyRFgzNWYrQ1Ra?=
 =?utf-8?B?VWNyaGNoUUliemV2dVJ6d1RjVy9yTVVmUGxIelZHNkdNMjF4UHBySmNVVUJz?=
 =?utf-8?B?YS9JV291SVVTd0UwU2ZSVjZ0MXZoVHVienpDVGN2czFML3BBOHhnMDlZdkZH?=
 =?utf-8?B?cTR6UTdJZHVPTTB6ai9XNlEvSTZpTDAvQkRyMVNmcnQ2VGtLRVgwL1FEZDBw?=
 =?utf-8?B?N3dudUZ3QU5vYkNnQXNEQVZQLy8rVGlHaklRUUplRWtFOExJUHBtUzJDU01R?=
 =?utf-8?B?ZnFtQ21yRUNJTXBwdHlpb2ZXUDFYRVl0VlpNKzhDaU85TGhHZHRFNnF3K2FC?=
 =?utf-8?B?Rnp3TW1oVHdWTllEaHBjWmJXendNUGY3MW1uMmFQaTk2OHVHMU5NbVVDNmJl?=
 =?utf-8?B?MlA1NGJUUEtOSmM2K3dYcmEzbjQwNk5zQlZscm9iSkNzLzlHdEV6cFJublkw?=
 =?utf-8?B?cGErSTdlWTM0bWtUY1JKUEUrUnBXSWtMUS84dTY1NkxUaFdCWnJXYmRKSEQ1?=
 =?utf-8?B?aWJ4UStTWktWZ3dsUU5teDNMWlBVSHF2TkU0Nll0VVJhM0dja2tPQ0JCTnZF?=
 =?utf-8?B?K2sxMnVXWGVhM3Z0MEVjMzNxTkViSi9hMHUzOGh5S1ErdDUvRC9BNnZnVnhC?=
 =?utf-8?B?WUoweTYvS2g4UFlCKzU3RitnMmZ6VGlEOWRMTlA0U1F5TVNaNmxhckdOOUxz?=
 =?utf-8?B?cVdlaDZ4TkZqY1JJM1laRk1tRXppb0JvM1VxdVNmdzMrMlY2ZVBKVXpFQ1ZF?=
 =?utf-8?B?SG1rMzdacWU3WUh2OEpHdzF2elFRcG02K01hYXRFb3hVc1dRQzI2MkRESk5y?=
 =?utf-8?B?OHBhampLdytQelZMbC9USEZCMVBVWksyVk9NT2JEZnRNY2ZLQndRWnpRbFZF?=
 =?utf-8?B?ZDhiazc2L0s2cCtvQm9UM1k1ZEExcDNHWXFScGl6NGNjZjNXUkg2TmFjYUIr?=
 =?utf-8?B?UGdjOC9ldmZJc00rdlIxZHQ4RnRkWElISGJic2Q1MDFHd2tTYW1HZUlYLzg5?=
 =?utf-8?B?U2pUTWxvaUppYjNQdjd5bHhDRGdzMVFwM1U4MFN2Ui9seFQvcFlNUDlxVEly?=
 =?utf-8?B?eVc0MVh1VTBybzJad0ZaWit3N3NKQUFVRElyT3BucUpXOFdpcjBHWWg3K09E?=
 =?utf-8?B?TXdiSmlRb2RmZkFSSE9RMVJiMmR0d0hhM0MyU0c0emNBa2REZzBFQ2tJNkxO?=
 =?utf-8?B?RUJyanIrWUtDSGxqby9HbGl1VWxEdkk3ZDhGQnBDa1hycjlRZ05WTVNDRnFV?=
 =?utf-8?B?aisrR3dBeEM4M3NFSnAvZ0xaZ01iOHZscE9VT1hGbFp6TGxyeG1UMmMxcDM4?=
 =?utf-8?B?WHNHcEVGSW4zdkRTVW9wbU5BNkQ2UzdNdi9JczUrYXlFd3VZMXlRWWtONmMw?=
 =?utf-8?B?OFl6U28zK1pNVW52K2lyb3RPQU1xVVRLaGNGUzJGL3N5VzRDbk84MGN6S0dP?=
 =?utf-8?B?eGJzWUFvVGxqMVJVeUhjNjhSS2Q4NjBUS2pBdDhEc292OFZCUk1LV1VEWUtv?=
 =?utf-8?B?SEZySE1jS3RTSkZCM29tMzZOSldDTlhlZ05mZlBZS3UybG5QWE1jUWxlZno4?=
 =?utf-8?B?Zkpuc3kyZnZXTDdmUjBWcVBCY3hpQklrcFI4OVdDNGNjZFBYMVNBbTZGY3Mv?=
 =?utf-8?B?d2wwaWg4SzRDV09RdFFmS28xWkV4UzgvaHY5N0RoWG8rSXVaMENiTUR5MXN3?=
 =?utf-8?B?QmoxbFhUVTk2bnFWSFI2dnFaNzA1Y2dwUVFZMmErUldqbndKL2NCcEJvOWVz?=
 =?utf-8?Q?JbEQ/gNXkN1+znmlfDfcKB1Xk?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d2889066-6dab-4d5b-052d-08dc9ff7607e
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2024 09:13:20.5872
 (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: nJYw/g7xvAZWl8ou0wgHGkOS6K8m1IYAM6mnCoGragxmpCxti8QJIZcJOqtvTgggoDxDHTrQ1kgXzQxjb4sS8g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9019
X-Proofpoint-GUID: HlJIdOAIPx_grVM-eMeZyy4HSSLZ_GBN
X-Proofpoint-ORIG-GUID: HlJIdOAIPx_grVM-eMeZyy4HSSLZ_GBN
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-08_15,2024-07-08_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0
 clxscore=1015 malwarescore=0 mlxscore=0 adultscore=0 phishscore=0
 impostorscore=0 mlxlogscore=999 priorityscore=1501 bulkscore=0
 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2406140001 definitions=main-2407090061

03.07.24 18:07, Jan Beulich:
> On 01.07.2024 14:03, Sergiy Kibrik wrote:
>> Separate ACPI driver from generic initialization cpufreq code.
>> This way acpi-cpufreq can become optional in the future and be disabled
>> from non-Intel builds.
>>
>> Other than acpi_register_driver() helper added and clean up a list of
>> included headers no changes to code were introduced.
> 
> And perhaps that's okay despite the many style violations that you move
> around. However, acpi_register_driver() is too generic a name. How
> about acpi_cpufreq_register() (not not have it grow overly long)? Plus

yes, sure

> 
>> --- /dev/null
>> +++ b/xen/arch/x86/acpi/cpufreq/acpi.c
>> @@ -0,0 +1,622 @@
>> +/*
>> + *  cpufreq.c - ACPI Processor P-States Driver ($Revision: 1.4 $)
>> + *
>> + *  Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
>> + *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
>> + *  Copyright (C) 2002 - 2004 Dominik Brodowski <linux@brodo.de>
>> + *  Copyright (C) 2006        Denis Sadykov <denis.m.sadykov@intel.com>
>> + *
>> + *  Feb 2008 - Liu Jinsong <jinsong.liu@intel.com>
>> + *      porting acpi-cpufreq.c from Linux 2.6.23 to Xen hypervisor
>> + *
>> + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> + *
>> + *  This program is free software; you can redistribute it and/or modify
>> + *  it under the terms of the GNU General Public License as published by
>> + *  the Free Software Foundation; either version 2 of the License, or (at
>> + *  your option) any later version.
>> + *
[..]
>> + *
>> + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> + */
> 
> ... I expect this should be transformed into an SPDX line. I expect the
> one in cpufreq.c wasn't picked up when the conversion was done because
> it doesn't fully match whatever pattern was looked for at the time.
> 

would the line

/* SPDX-License-Identifier: GPL-2.0-or-later */

be correct here?

   -Sergiy


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 09:15:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 09:15:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.755992.1164542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR6wX-00046r-KW; Tue, 09 Jul 2024 09:15:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 755992.1164542; Tue, 09 Jul 2024 09: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 1sR6wX-00046k-H6; Tue, 09 Jul 2024 09:15:25 +0000
Received: by outflank-mailman (input) for mailman id 755992;
 Tue, 09 Jul 2024 09:15:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sR6wW-00046V-Lw; Tue, 09 Jul 2024 09:15:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sR6wW-0007b5-Hv; Tue, 09 Jul 2024 09:15:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sR6wW-0000Pv-2e; Tue, 09 Jul 2024 09:15:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sR6wW-0002Cc-2A; Tue, 09 Jul 2024 09:15: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=laqM4SP7I28wlZjHNMPWiKubAsDdpqCSnh1ZuG5Kr5A=; b=h9tbLPHnofNKX3hyDAkEQurm3L
	wiMZQUWm9agsBM+Br/SjvmwrUKpdDZf30N0bud2+BW3d6Qj9iefNYV6f6LTcY1RNAS8hFOuLp7Yoi
	zAm2AF1VsC4055APuLNyNLlQ5a4z07kuQsfhCFWW5wRM/qujqYLMMUCLYYBMiu2lwHv8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186734-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186734: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-raw:debian-di-install:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=4376e966ecb78c520b0faf239d118ecfab42a119
X-Osstest-Versions-That:
    linux=256abd8e550ce977b728be79a74e1729438b4948
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Jul 2024 09:15:24 +0000

flight 186734 linux-linus real [real]
flight 186737 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186734/
http://logs.test-lab.xenproject.org/osstest/logs/186737/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-libvirt      8 xen-boot                 fail REGR. vs. 186727
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 186727
 test-armhf-armhf-xl-raw   12 debian-di-install fail in 186737 REGR. vs. 186727

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-examine      8 reboot              fail pass in 186737-retest
 test-armhf-armhf-xl-raw       8 xen-boot            fail pass in 186737-retest
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186737-retest

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 186727

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186727
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                4376e966ecb78c520b0faf239d118ecfab42a119
baseline version:
 linux                256abd8e550ce977b728be79a74e1729438b4948

Last test of basis   186727  2024-07-08 04:15:50 Z    1 days
Testing same since   186734  2024-07-08 22:12:02 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Rogers <irogers@google.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Matt Fleming <matt@readmodwrite.com>
  Namhyung Kim <namhyung@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 4376e966ecb78c520b0faf239d118ecfab42a119
Merge: 256abd8e550c 7b2450bb4027
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Jul 8 14:08:43 2024 -0700

    Merge tag 'perf-tools-fixes-for-v6.10-2024-07-08' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
    
    Pull perf tools fixes from Namhyung Kim:
     "Fix performance issue for v6.10
    
      These address the performance issues reported by Matt, Namhyung and
      Linus. Recently perf changed the processing of the comm string and DSO
      using sorted arrays but this caused it to sort the array whenever
      adding a new entry.
    
      This caused a performance issue and the fix is to enhance the sorting
      by finding the insertion point in the sorted array and to shift
      righthand side using memmove()"
    
    * tag 'perf-tools-fixes-for-v6.10-2024-07-08' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools:
      perf dsos: When adding a dso into sorted dsos maintain the sort order
      perf comm str: Avoid sort during insert

commit 7b2450bb40275802b73593331b0db2fc147ae2b7
Author: Ian Rogers <irogers@google.com>
Date:   Wed Jul 3 10:21:17 2024 -0700

    perf dsos: When adding a dso into sorted dsos maintain the sort order
    
    dsos__add would add at the end of the dso array possibly requiring a
    later find to re-sort the array. Patterns of find then add were
    becoming O(n*log n) due to the sorts. Change the add routine to be
    O(n) rather than O(1) but to maintain the sorted-ness of the dsos
    array so that later finds don't need the O(n*log n) sort.
    
    Fixes: 3f4ac23a9908 ("perf dsos: Switch backing storage to array from rbtree/list")
    Reported-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Ian Rogers <irogers@google.com>
    Cc: Steinar Gunderson <sesse@google.com>
    Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Cc: Matt Fleming <matt@readmodwrite.com>
    Link: https://lore.kernel.org/r/20240703172117.810918-3-irogers@google.com
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>

commit 88076e4699ce490aabe89037190d4749ab346b29
Author: Ian Rogers <irogers@google.com>
Date:   Wed Jul 3 10:21:16 2024 -0700

    perf comm str: Avoid sort during insert
    
    The array is sorted, so just move the elements and insert in order.
    
    Fixes: 13ca628716c6 ("perf comm: Add reference count checking to 'struct comm_str'")
    Reported-by: Matt Fleming <matt@readmodwrite.com>
    Signed-off-by: Ian Rogers <irogers@google.com>
    Tested-by: Matt Fleming <matt@readmodwrite.com>
    Cc: Steinar Gunderson <sesse@google.com>
    Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Link: https://lore.kernel.org/r/20240703172117.810918-2-irogers@google.com
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 09:18:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 09:18:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756005.1164552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR6zE-0005o2-4H; Tue, 09 Jul 2024 09:18:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756005.1164552; Tue, 09 Jul 2024 09:18: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 1sR6zE-0005nv-0j; Tue, 09 Jul 2024 09:18:12 +0000
Received: by outflank-mailman (input) for mailman id 756005;
 Tue, 09 Jul 2024 09:18: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=C54Y=OJ=epam.com=prvs=392098eeac=sergiy_kibrik@srs-se1.protection.inumbo.net>)
 id 1sR6zC-0005np-Gc
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 09:18:10 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2789a9e6-3dd4-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 11:18:08 +0200 (CEST)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4697R358030622;
 Tue, 9 Jul 2024 09:18:02 GMT
Received: from duzpr83cu001.outbound.protection.outlook.com
 (mail-northeuropeazlp17013012.outbound.protection.outlook.com [40.93.64.12])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 408h1pb1m0-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 09 Jul 2024 09:18:01 +0000 (GMT)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by AS8PR03MB9167.eurprd03.prod.outlook.com (2603:10a6:20b:5c1::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Tue, 9 Jul
 2024 09:17:51 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.7741.033; Tue, 9 Jul 2024
 09: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: 2789a9e6-3dd4-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Yz43EGyG3yMMh7DInEgY5cMe/pV48HC+taNtbRclx6o9JpOlmVVLy8jKT2PNZl8yqu5sZsP/srEXfWnjcNHW/QkDA0ZOc8MJQNxsf6PLyBkZqtYrh5XyXr2yFI3DnIhTd/VlJbRnZx9yN3fSs9Sc2w3fxzYhEnVGpPx5PhhEcnfP9uwRD9gD25xYlmcYiz7yIqv0xRw/UOIQ5GoNBCcWWMylmn76McvBo04wsIyrAWPIzGlblBUZPnSCSwnU99lgApcYFZFTZcdSkrk8L6tUxtA7EZb7aiEd7tIkt0bIc6FB01aHCHcFzXn4oFGaOi0Q2xojfmuKnSsr3JSYkfRScw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Mh0lkTIZ/mO9Anjsb9m8JxNXWSKDyIWTzOzzar42uFE=;
 b=mG7j5wK6/mEyk9fw5Kfuf0asJfEaulqlVjPh/VNMg4LMwFzzNzC8JQ32p3oiAFwHAHK0JPI+jlz6ww6+W+RrNxrMUGl8Osfe9v1rAyMG/Gp9N7lZ6KrH63nrd65XDKGh7WuapOlx0aTJT+cY0Sx6gsyGmu97cDEXSYiA1o8DZIYLXfweCuygw064IiQvrgme2LCOdSsvbH5Sq1fEGUMb3Sa/Ha5rL2hCh+8Skq2MFtDgE0eqxS5UWe9+ZPTW3VIzTPl84BLnur3wz35UcMtziXd40Wg6DgdzDjkuOiN6+Evt2oD8SDW33/XA6lXx+4B76dscj4tldcJg0rfReGdjww==
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=Mh0lkTIZ/mO9Anjsb9m8JxNXWSKDyIWTzOzzar42uFE=;
 b=kBOVQIttYF2eM7B7QWSepeaU/zp+pf7kMO8yh95H5R9X6QVwNQwrnnbMuD0iUWPl/ZoxEq4UQobs6EKwLail63s/UZ8H5Q/jMkLuChksuWdSxWr58WI7e62ew0mV/a1VhyDu3pWbNa5knf07v79JnudAqqtwZdgAnz8WyVGYKPk6AFeS2rX+/H/K6IHARUXGYnnrXsBwVcblKYH116DD53Uh4tkyVB5Q+6hLDYi87XTHSIiCc3aVCb0saQS4BRmP4JjYn2+XMOUEBiP7m4+D8Chkg8i0/zfe+Y4FMDh5a1TtX67RrcVegCv/YnaOaS3jAp4Ln2zPbv+MfaNpbWTkYQ==
Message-ID: <0ae3a03d-257a-4e2e-85a2-09a601883634@epam.com>
Date: Tue, 9 Jul 2024 12:17:49 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 2/2] x86/cpufreq: separate powernow/hwp/acpi
 cpufreq code
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1719832871.git.Sergiy_Kibrik@epam.com>
 <0f6e8a602fb3106d6b064582ca50d3d5fd4f1174.1719832871.git.Sergiy_Kibrik@epam.com>
 <22cd30f6-3a66-4dc7-8805-86a6daad5700@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <22cd30f6-3a66-4dc7-8805-86a6daad5700@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0026.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::22) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|AS8PR03MB9167:EE_
X-MS-Office365-Filtering-Correlation-Id: 9c57f406-c1ac-4ff7-e986-08dc9ff801f8
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?ZlhEMFRrNjJxYW1reXYxU21oUVhOQVZZdExod1cxVmp2clhDMHdJNW5lTEF1?=
 =?utf-8?B?bWgySVpuMUhIYXM1MGhkcWlYeUl3S3FlY3VjY2NPMjUvSW54NzBTb2Zpd1lT?=
 =?utf-8?B?NnRwM2tmUEx3bG54T0NrNktVRVhYbUpiODRRQ1pRN2pFbnRNZjB0NmxGZUZV?=
 =?utf-8?B?UEtIbGVOdEJLcVBUMEpKVm9hT3ZBQTRTMkZVZGk5UVVjOVJvTnNTVzAzZnRM?=
 =?utf-8?B?SkJVR2l5bjBOU2pER1RqanFJT3hFMTlNcjlneXl2VG9lbXNwNk9QL3V1cXRp?=
 =?utf-8?B?dCs1WGxGdHRvSno2RFJuTHpyaDhuQ0pkUE9kZFRwVXdvUS9DaW9HRmVnWk5l?=
 =?utf-8?B?ekJKTkgwNThYOUlORHd6NDRtdUtxL0pLU202QWdvR1pKbzVaM1Q1T2pKT2xk?=
 =?utf-8?B?bFdaeXhmL3ZTNG4zS2ZJQ3FiQTJNb1EwU0UyRlo5S2F3Zi8xbkM0cnVzcU9m?=
 =?utf-8?B?N1EyUENmYkdqMzg2aWozcmtUVHhrRnJIenZEVUpvUzVnaXhZaWt1NHQrQ0w0?=
 =?utf-8?B?UFkwVEx1TTVNKzlVQmc2WDZqdGpaelRuT1RQend1VisvNm5aVERhVDNTWmVV?=
 =?utf-8?B?aHUxbm4wWVQvNDgxREhHaWhmd3Z2eDY2VGtPVkhSYklXSW4wdWRKUEJLclAr?=
 =?utf-8?B?Y0g1eG9zWk9DYzVHRzF6dDFnUStJQ3dxdFhwbC9MbFQvN1VSdUhZZUpZZFZ4?=
 =?utf-8?B?MmRXRFV5Q3dRLy8xUFArOFBSTGdNYlNuYk01WXhnVU1ubTRrTjMzUmVCSWRK?=
 =?utf-8?B?QytZKzlWK2RxSjB3cThEaEZlVGcxMlBLSnlzQXZ3d1hqa1hSZEo0SFNtQjdM?=
 =?utf-8?B?Rmd2bU1mR0FiMUUrTXZkZXFIUjlqR1hHWldqbElLQUJJcnNnSWI5cGpxaXhN?=
 =?utf-8?B?dFduc2F5TFg4eVMrUWQrN0JaUm1LSzhzNWRnQkdKRTlSem85cUQyTE9neHJa?=
 =?utf-8?B?ekFvcUprbXVoNTllU3V1cHBITzg4NVp6SHFZdGl0SklkcmI5R3Uza2Z0eEpN?=
 =?utf-8?B?QzhFd2IyQyt6YU5QR09kUmZjR0FYRjhHSG80TCtZOWlINXNsdkVReE5rZzky?=
 =?utf-8?B?b0h4d2QyMzU4ZEhwOENHbEVqWmNVWExNZlZOb2J4SlFHODdWbndDQU5NVmVo?=
 =?utf-8?B?UjF2SWNqeW92cnlDUjdIUGVnK0JoUVJXWlpnVXdELzkvWExQbGRuWWw0SmUy?=
 =?utf-8?B?SkQ5Tm1EZWtOUjllM2c5OUFZaWthcW12MVpTM1FteFdLaFRhdW9tMXdkNjZq?=
 =?utf-8?B?Nmh1SHRkK2Q3NWd5RHB2Q2t4MEFwTU5kV2psd3pFcVhXUGZNdkQ2WFduNU9a?=
 =?utf-8?B?eWduckJSRmlYQTBkV2FrRzB0dHV4Y0Q3eS84UnRSdlNuTERZM2VJdXFQaFB5?=
 =?utf-8?B?aHUra1Mvc3pYQkVnR3JVWnVSTnovN1h5a2NQSlhMNUhWdDhzVjlMV0hSdGJl?=
 =?utf-8?B?R29pbWxmcjlIQ1c0Zk1FM2sxa0FhaTBvVXlCeWUvYjRFZFFKVWpIZHd0S1ll?=
 =?utf-8?B?S1VXd1dmellISktScEI2eEtYQnkvck0wTE83blJiWjVHcUY1VHBBYXROd2Ir?=
 =?utf-8?B?Wnl4S3Z4U0FydGQxemNFRFZCVUN3WWtLSkl4MzJYaTArUStyUE5FM1d5RTFn?=
 =?utf-8?B?RWRJYmk4MHJoQld0OUdlb0wzaGsrSUQ1NDFkMWZJRlh5UzJGWHp5bm5ta2tG?=
 =?utf-8?B?eUlzY2hheStsRlJtQmNTZTU0ZCt4OEJvVXJKbHNPaEZhL3V6OGljUzRsRzhO?=
 =?utf-8?B?TVBTQlRsV2FGcjVUYWJPSnBtcGFGVVNWSmwramFLdmp0QVo5ZnlFS3EyQlM4?=
 =?utf-8?B?bUpsemE0UitzS1BsY3JvQT09?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?VnJUeHpBb2hXZXNzTW94Y0lwVjg3T3BJelM0VVM1eno1TXkzZWZ0THMvcldl?=
 =?utf-8?B?U2gzTnM0UWNraitwUEs5Vzhqc0puZmlmdFppWGdsY3hKVkJ0OVN2YzYwc0VK?=
 =?utf-8?B?eVB6eE03bmd1VzI3cjIwT1BXOUpGb3R3KzBVeEVNczJFM0NpL0RxVU45K2hN?=
 =?utf-8?B?cG5HMXJINGFzN2V1cXh3bzVQZ1IzU2FUd2UyVnI0VE1sSHFzYjRKdUxuMFR1?=
 =?utf-8?B?ZS9RS3UzZ3V3REowOENsTFluVEhyWWVSaW9NZklWTCtRejhXZGxTeThRQkov?=
 =?utf-8?B?aGxrR1VzcFJ0VkNiV1dQU3MvY3JqSmpGeDZHbm9ENEltbGFCbWR1WWNIb1pV?=
 =?utf-8?B?S2FkdU53KzlIUXhZS0FkbnFWMWlXUHNOZ3lTWk1pdlZtVDBWeDNqZnBlNnVr?=
 =?utf-8?B?ay9La0FRSXdVY21telpjREhLcThyS0FlVmViZU14NDVmWldYNWRub3VIOFho?=
 =?utf-8?B?N1h6ckNHNE5WVUhpc0hjeFVIc2l4SXVyZWdCbXVKRy9KNDRWeDFMaCtEdk9L?=
 =?utf-8?B?WW1xWVZ1Yy84bUFlNDJFbm0wSDRyQjB0aXliMjRtZmtiUjd2MXhPMHN3RUph?=
 =?utf-8?B?ZW10bG92K1ZFRmsxV1ByVkZmWDRGOU42V0VNQWJIdUlpUDc2UCsrSkJGeDFU?=
 =?utf-8?B?N2w5aXJlZFJaSCtib28rYUM5UDNQdng5Nmx4d09qUzhYQWMyNTd2a2Uwc240?=
 =?utf-8?B?c3JRWEtpT1Fub0dlMkwrRk9EMjg4dE9VVTFpZ3VSclRtcHZYUDlqeXl3a1J5?=
 =?utf-8?B?ZENyWlg4dEVId1JsZG9TME1vS0V6WVlDQi9QS2ZrbXl5UHFqVnBhYWQyVWJN?=
 =?utf-8?B?bUpVWDZkamQrUmp1OFYybm1XbmVmTWlQWTAxNFZTTkJNMkdFdytOWE1hdlBS?=
 =?utf-8?B?SW4wczh2VFlTZHJ4anhIbFhndkV2bW5HRnUwR2dIRWFYQ3h2UVJZWmpMOGJO?=
 =?utf-8?B?L3R0emZCV2xiQmxuVXhVbDR2ZzM1d00yWldIejNYQU1kVkxrQ2VnOGIzQjZK?=
 =?utf-8?B?aWhTMkhiMUM0L3M2eXBNak5VYnJYSlJPeTRMSHhpd0ZmK2VNenpLRkJPNGtD?=
 =?utf-8?B?Y1Vvb3VzWmhFV2dReExPeW43ZWwvaFpvSENTT3N0SHpZMjVvNzZWSzBzbkpi?=
 =?utf-8?B?MjBaUVhRbncwMmRlT0FVM0gyN1pYT1FYYjlQd3hoRlBKVng0Y1YvSnB3NGVD?=
 =?utf-8?B?NEZZSVJiU0pMTTNZelF2bDkyU2JHdk42WUxzeHpvNGNXc3cxTDBEalRTTERP?=
 =?utf-8?B?TkJzRk8xbXFvK2Q4VS9vMithY1FWalZiZ1BHd0EzdGVvS0dLM25aazdRZHBu?=
 =?utf-8?B?OEZaT1djdVczOVREN0dVb2ppVXRPenMwMzNqZUNsbmZLNHlKQ0RCSWNZTzdU?=
 =?utf-8?B?dWRqRUhjOE9lZXZsWmlpV09pMFFYYzIxMGlLMjZVNk9FSHBZcEh6SnIzUjVt?=
 =?utf-8?B?V09BcEhUQkxSdVRPbVRqZ3hyekZ6TDBzZU9UQ0dYejhRWlYwWjFLaHBwdWdv?=
 =?utf-8?B?RWNLSWx4bTFsMm1QemczMUNhWTJIbUJpTU9GU2YvNjBrSHpwRDFjVmFiRWl3?=
 =?utf-8?B?QUtIMmwweUM4OStIVWlNZFM4WlNMcXNZTkcrajZ4NGpVaW9EZklseTNjQk9z?=
 =?utf-8?B?SnB6UkhKTXk4RDZrY3EyWE1rekxKTGVRaGJ5SG9XMThxZnVaSUZxSTlrTEd0?=
 =?utf-8?B?RjgvVXg3SytEV25IRGUrU3FFNHN2Nk1CZGtkOUtiWHJocVVOTXN6N0FWck81?=
 =?utf-8?B?N09FU1NvVC9nc1V3R0QxalB3ZVhLeXVTbzMrRzZTTFZ0REhWUTl4ZWVDcVhV?=
 =?utf-8?B?aENSNGgrbEhiQUxtaGcxbUJNNm1sVW8wa2FBVGJVS1NWazI1ZjN3K3VBNjAr?=
 =?utf-8?B?dzBQWGRqV0tNRDgxdWIwa0FjNHM5a1VJaFVyVXQ0b1NJWG5nY0MzeWptVmt0?=
 =?utf-8?B?RHBBcDVYQ2RzdEZDUDBJUWlXNjVqSTBrVUxIWWpoMGZldGo0ZVJpMVRac1hB?=
 =?utf-8?B?dG5FK3dJNFhtWlRpUGMzb1ZKZWlhQzYwRmZpZmZMNTE4TW1lT2JTamphMkd2?=
 =?utf-8?B?elp3Zlh3ZmU0dEZ4c29nODJXN1lJUlN0MTlUNUd1SmljSys5SUorOGgyZ2c3?=
 =?utf-8?Q?ZRrN1ZiSAYgER5S6D8qANO5b7?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c57f406-c1ac-4ff7-e986-08dc9ff801f8
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2024 09:17:51.4567
 (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: iprmgOS7OB0GC1nb7fEzkhKmj52tE1XFXl8nyasbHUezfYFmsrjRejj3AvaOovUCahhJLP6qt2qMvH+pTDLHrA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9167
X-Proofpoint-ORIG-GUID: 83m3J2VdG7GsYW7DPZqMlDchcZZUPv1o
X-Proofpoint-GUID: 83m3J2VdG7GsYW7DPZqMlDchcZZUPv1o
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-08_15,2024-07-08_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0
 phishscore=0 adultscore=0 mlxlogscore=999 priorityscore=1501
 malwarescore=0 suspectscore=0 clxscore=1011 spamscore=0 mlxscore=0
 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2406140001 definitions=main-2407090062

03.07.24 18:14, Jan Beulich:
> On 01.07.2024 14:19, Sergiy Kibrik wrote:
>> --- a/xen/drivers/acpi/pmstat.c
>> +++ b/xen/drivers/acpi/pmstat.c
>> @@ -255,7 +255,7 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
>>           strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
>>   
>>       if ( !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
>> -                      CPUFREQ_NAME_LEN) )
>> +                      CPUFREQ_NAME_LEN) && IS_ENABLED(CONFIG_INTEL) )
> Wrapping like this is confusing, not just because of the flawed indentation.
> Please can this be
> 
>      if ( !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
>                    CPUFREQ_NAME_LEN) &&
>           IS_ENABLED(CONFIG_INTEL) )
> 
> ? Perhaps the IS_ENABLED() would also better be first (not just here).

sure, will fix that

> 
>> --- a/xen/drivers/cpufreq/utility.c
>> +++ b/xen/drivers/cpufreq/utility.c
>> @@ -379,7 +379,7 @@ int cpufreq_driver_getavg(unsigned int cpu, unsigned int flag)
>>       if (!cpu_online(cpu) || !(policy = per_cpu(cpufreq_cpu_policy, cpu)))
>>           return 0;
>>   
>> -    freq_avg = get_measured_perf(cpu, flag);
>> +    freq_avg = IS_ENABLED(CONFIG_INTEL) ? get_measured_perf(cpu, flag) : 0;
>>       if ( freq_avg > 0 )
>>           return freq_avg;
> Why is this? APERF/MPERF aren't Intel-only MSRs.

yes, it seems to be a mistake..

  -Sergiy


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 09:35:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 09:35:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756014.1164563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR7GE-0000w9-Fk; Tue, 09 Jul 2024 09:35:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756014.1164563; Tue, 09 Jul 2024 09:35: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 1sR7GE-0000w2-Bq; Tue, 09 Jul 2024 09:35:46 +0000
Received: by outflank-mailman (input) for mailman id 756014;
 Tue, 09 Jul 2024 09:35: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=/VCn=OJ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1sR7GD-0000vw-K6
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 09:35:45 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9ca0f651-3dd6-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 11:35:43 +0200 (CEST)
Received: from nico.bugseng.com (unknown [46.228.253.214])
 by support.bugseng.com (Postfix) with ESMTPSA id 3B49C4EE0742;
 Tue,  9 Jul 2024 11:35: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: 9ca0f651-3dd6-11ef-8776-851b0ebba9a2
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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [XEN PATCH for-4.19] xen/bitmap: amend MISRA C deviation for Rule 20.7
Date: Tue,  9 Jul 2024 11:34:20 +0200
Message-Id: <794724e70c4e45224916576af01070e8aebe9aab.1720517398.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As noticed in the gitlab analyses, deviating bitmap_switch
for Rule 20.7 in this way does not work for ECLAIR.

Instead, the deviation should be put in the macro invocation.

No functional change.

Fixes: 0dca0f2b9a7e ("automation/eclair: address violations of MISRA C Rule 20.7")
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
An alternative approach would be to use an ecl configuration, but that
would be tool-specific.

As this is purely an improvement to the CI, I'd like to ask for a release ack.
---
 xen/include/xen/bitmap.h | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/xen/include/xen/bitmap.h b/xen/include/xen/bitmap.h
index 6ee39aa35ac6..f8ef85541a84 100644
--- a/xen/include/xen/bitmap.h
+++ b/xen/include/xen/bitmap.h
@@ -103,18 +103,16 @@ extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
 #define bitmap_switch(nbits, zero, small, large)			  \
 	unsigned int n__ = (nbits);					  \
 	if (__builtin_constant_p(nbits) && !n__) {			  \
-		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
 		zero;							  \
 	} else if (__builtin_constant_p(nbits) && n__ <= BITS_PER_LONG) { \
-		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
 		small;							  \
 	} else {							  \
-		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
 		large;							  \
 	}
 
 static inline void bitmap_zero(unsigned long *dst, unsigned int nbits)
 {
+	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,,
 		*dst = 0UL,
 		memset(dst, 0, bitmap_bytes(nbits)));
@@ -139,6 +137,7 @@ static inline void bitmap_fill(unsigned long *dst, unsigned int nbits)
 static inline void bitmap_copy(unsigned long *dst, const unsigned long *src,
 			unsigned int nbits)
 {
+        /* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,,
 		*dst = *src,
 		memcpy(dst, src, bitmap_bytes(nbits)));
@@ -147,6 +146,7 @@ static inline void bitmap_copy(unsigned long *dst, const unsigned long *src,
 static inline void bitmap_and(unsigned long *dst, const unsigned long *src1,
 			const unsigned long *src2, unsigned int nbits)
 {
+	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,,
 		*dst = *src1 & *src2,
 		__bitmap_and(dst, src1, src2, nbits));
@@ -155,6 +155,7 @@ static inline void bitmap_and(unsigned long *dst, const unsigned long *src1,
 static inline void bitmap_or(unsigned long *dst, const unsigned long *src1,
 			const unsigned long *src2, unsigned int nbits)
 {
+	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,,
 		*dst = *src1 | *src2,
 		__bitmap_or(dst, src1, src2, nbits));
@@ -163,6 +164,7 @@ static inline void bitmap_or(unsigned long *dst, const unsigned long *src1,
 static inline void bitmap_xor(unsigned long *dst, const unsigned long *src1,
 			const unsigned long *src2, unsigned int nbits)
 {
+	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,,
 		*dst = *src1 ^ *src2,
 		__bitmap_xor(dst, src1, src2, nbits));
@@ -171,6 +173,7 @@ static inline void bitmap_xor(unsigned long *dst, const unsigned long *src1,
 static inline void bitmap_andnot(unsigned long *dst, const unsigned long *src1,
 			const unsigned long *src2, unsigned int nbits)
 {
+	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,,
 		*dst = *src1 & ~*src2,
 		__bitmap_andnot(dst, src1, src2, nbits));
@@ -179,6 +182,7 @@ static inline void bitmap_andnot(unsigned long *dst, const unsigned long *src1,
 static inline void bitmap_complement(unsigned long *dst, const unsigned long *src,
 			unsigned int nbits)
 {
+	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,,
 		*dst = ~*src & BITMAP_LAST_WORD_MASK(nbits),
 		__bitmap_complement(dst, src, nbits));
@@ -187,6 +191,7 @@ static inline void bitmap_complement(unsigned long *dst, const unsigned long *sr
 static inline int bitmap_equal(const unsigned long *src1,
 			const unsigned long *src2, unsigned int nbits)
 {
+	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,
 		return -1,
 		return !((*src1 ^ *src2) & BITMAP_LAST_WORD_MASK(nbits)),
@@ -196,6 +201,7 @@ static inline int bitmap_equal(const unsigned long *src1,
 static inline int bitmap_intersects(const unsigned long *src1,
 			const unsigned long *src2, unsigned int nbits)
 {
+	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,
 		return -1,
 		return ((*src1 & *src2) & BITMAP_LAST_WORD_MASK(nbits)) != 0,
@@ -205,6 +211,7 @@ static inline int bitmap_intersects(const unsigned long *src1,
 static inline int bitmap_subset(const unsigned long *src1,
 			const unsigned long *src2, unsigned int nbits)
 {
+	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,
 		return -1,
 		return !((*src1 & ~*src2) & BITMAP_LAST_WORD_MASK(nbits)),
@@ -213,6 +220,7 @@ static inline int bitmap_subset(const unsigned long *src1,
 
 static inline int bitmap_empty(const unsigned long *src, unsigned int nbits)
 {
+	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,
 		return -1,
 		return !(*src & BITMAP_LAST_WORD_MASK(nbits)),
@@ -221,6 +229,7 @@ static inline int bitmap_empty(const unsigned long *src, unsigned int nbits)
 
 static inline int bitmap_full(const unsigned long *src, unsigned int nbits)
 {
+	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
 	bitmap_switch(nbits,
 		return -1,
 		return !(~*src & BITMAP_LAST_WORD_MASK(nbits)),
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 09:37:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 09:37:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756021.1164572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR7Hc-0001iA-O2; Tue, 09 Jul 2024 09:37:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756021.1164572; Tue, 09 Jul 2024 09: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 1sR7Hc-0001i3-Kw; Tue, 09 Jul 2024 09:37:12 +0000
Received: by outflank-mailman (input) for mailman id 756021;
 Tue, 09 Jul 2024 09: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=7TZB=OJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sR7Hb-0001gl-GL
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 09:37:11 +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 cff29d7e-3dd6-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 11:37:09 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a77c9c5d68bso461054966b.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 02:37:09 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a856214sm62769266b.178.2024.07.09.02.37.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 02: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: cff29d7e-3dd6-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720517829; x=1721122629; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Q9jVKtxYal/pEfgfae25sYtZwucxvOrzUJXxQY0LCeY=;
        b=dD6Evt+yWrg5Iy9qXFf2yHWBG9VlkrVatw1jWPKcztPXy7vkOLjh1ml17hChcl7YYh
         V2+k1oc3bmE/L0J0DVYnhCZYAGVjeXKAUBjfAAy6wA6KFog+o1ZFDgPxgY22EYZXMY2D
         THDMwqxSQR4q5qWpeq8S5KyVBcWtioc1TVpkeqHimhZIIkoZb3swA6HuAtP8r4/yGIZ0
         +ex499wcGDBor1F/l803T4MmPxv1EaLdgnqTDPgDi7THl5xqqNM7vYKXVh+j3BHp/mRV
         Zn1j+uQCVPPvU7cwyYHOQsrx5oMKh3X9HQD6WQNu8VFbMmiRvo0g+6bvY8KVLDgIkT75
         GSsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720517829; x=1721122629;
        h=content-transfer-encoding:in-reply-to: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=Q9jVKtxYal/pEfgfae25sYtZwucxvOrzUJXxQY0LCeY=;
        b=MAWAYZPIa4DFE/ToYYkEk2JvtNzh6Zzeul2LbXirrB78nP7pwzCCajxKZtzxP1rBFI
         Np6IRawbJQh9sGupSyT306BMe79LLRN2YR6aj5Zxu5COrK4XYca8SfwsObK4wIvGsxYo
         T0e192/Vx6UKpSt7nfqoqNPPiCf00zMj4QOCE7wLZS9Feci5x25Ktb6F6MGb8C3obmdJ
         ed/rrdi0PZH82Ukm9R4qQgzf3P6VBdlF+vhTQSRD4fdIkJ5BuOEcfNu1NlMWePSVO3YV
         JOrZtk3y+jyyyMTcxH8Im8yCENjPE/+zd7LMZE/8IHuptsJJevEFn5i94HhozlwBnWmc
         JdUw==
X-Forwarded-Encrypted: i=1; AJvYcCWBaly2GcTXOpQiyPaVHhIhpswMpP1hyrBhuXsbmyz4+40TB2GbvcT14afajJseY9U/15tviaZYdmHoxsLsCKjBvDR7YwHiuxm2nBMj3gU=
X-Gm-Message-State: AOJu0Yzc9nDnCKJtH9JHOdtxmIlyidc/Z3OMtj2nnMax9HQCOE7nORKg
	mfNriQUl9Pzf2tRtPf630abKAKsKP8+elsXmL/g6/6MfsN4cdsjqnbme/2zGqdk=
X-Google-Smtp-Source: AGHT+IG7KL+Jdzf18uMETDY/HtJzPsIQ6hH8eMakDFIVjeCorWRU3SEuPoKc+yRTey7pie2uEX80+g==
X-Received: by 2002:a17:906:c154:b0:a6f:dc17:500a with SMTP id a640c23a62f3a-a780b6b3a86mr171507366b.23.1720517828785;
        Tue, 09 Jul 2024 02:37:08 -0700 (PDT)
Message-ID: <352bba40-27fc-416b-985f-20e66c0c4b72@suse.com>
Date: Tue, 9 Jul 2024 11:37:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: AMD EPYC virtual network performances
To: Andrei Semenov <andrei.semenov@vates.tech>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 09.07.24 10:36, Andrei Semenov wrote:
> Hello,
> 
> As been reported by David Morel (mail 4 Jan 2024), our customers experience a
> very poor virtual network performances in HVM guests on AMD EPYC platforms.
> 
> After some investigations we notices a huge performances drop (perfs divided by
> factor of 5) starting from 5.10.88 Linux kernel version on the AMD EPYC
> platforms. The patch introduced in this kernel version that allows to pinpoint
> the buggy behavior is :
> 
>   “xen/netfront: harden netfront against event channel storms”
> d31b3379179d64724d3bbfa87bd4ada94e3237de
> 
> The patch basically binds the network frontend to the `xen_lateeoi_chip`
> irq_chip (insead of `xen_dynamic_chip`) which allows to its clients to inform
> the chip if spurious interrupts are detected and so the delay in interrupt
> treatment is introduced by the chip.
> 
> We tried to measure how much spurious interrupts (no work to do by the driver)
> are raised. We used `iperf2` to bench the network bandwidth on the AMD EPYC 7262
> 8-core).
> 
> Dom0 > iperf -s
> 
> DomU> iperf -c $DOM0_IP_ADDRESS
> 
> It appears from our observations that we have approximatively 1 spurious
> interrupt for 1 “useful” interrupt (frontend TX interrupts) for HVM guests.
> 
> We run the same bench on the same platform with PV and PVH and the interrupts
> spurious/useful ratio was quite lower: 1 to 20 (so the network performances are
> much better).
> 
> We also run this bench on the Intel platform (Intel Xeon Bronze 3106 CPU). The
> interrupts spurious/useful ratio was about 1 to 30 for HVM guests.
> 
> So this make us think that this buggy behavior is related to abnormal amount of
> spurious interrupts. This spurious/useful interrupts ratio is particularly
> elevated in HVM guests on AMD platforms, so virtual network bandwidth is heavily
> penalized – in our particular bench we have 1,5Gbps bandwidth instead of 7 Gbps
> (when slowdown isn’t introduced by the irq_chip).
> 
> Does anybody notice this behavior on his side?  Can we do something about it?

In the guest you could raise the spurious event threshold via writing a
higher number to /sys/devices/vif-0/xenbus/spurious_threshold (default
is 1).

There is a similar file on the backend side, which might be interesting to
raise the value.

In both directories you can see the number of spurious events by looking
into the spurious_events file.

In the end the question is why so many spurious events are happening. Finding
the reason might be hard, though.


Juergen



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 09:40:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 09:40:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756026.1164582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR7LC-0003t4-6f; Tue, 09 Jul 2024 09:40:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756026.1164582; Tue, 09 Jul 2024 09:40: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 1sR7LC-0003sx-2v; Tue, 09 Jul 2024 09:40:54 +0000
Received: by outflank-mailman (input) for mailman id 756026;
 Tue, 09 Jul 2024 09:40: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR7LA-0003sp-AN
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 09:40:52 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5425fa4b-3dd7-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 11:40:51 +0200 (CEST)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-52ea34ffcdaso4623588e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 02:40: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
 d2e1a72fcca58-70b43967415sm1353135b3a.110.2024.07.09.02.40.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 02:40: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: 5425fa4b-3dd7-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720518051; x=1721122851; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7YvRKbpWjM9CR8XBDA1jU/B9xob0nanipFDLR6DJk20=;
        b=EdtDpIhJgDcnEDaAPmBqQmMhALwlV0/amNrVlEOz0OlSZnxEN/t6ySe3HwcKg2d5uM
         QFD4XchgTY7urcrl+EICvVB7DJL/cKaX7cu/hFT5K8GerrW7zdZhKwfHu+1wpZrG+tge
         BysA7MLGS2vZ7xoqmGUmW8JHHCcTNr36wJxbN+t/v12H/hgdZbNsftpKbKVqpyWObHMZ
         Pze0yvHeCxHfbbiEFvBzZed4bTcVJeZ7dS8XQfokrbvQSMWo2+qPvOzy7M8GSPcSmfQO
         hfCWQWYniek80yvhqnFgaspwoMiaGOZeNf4r6fPFsjww+0v9PP5ixDz0L0EpcDzhuAaF
         o6xQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720518051; x=1721122851;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7YvRKbpWjM9CR8XBDA1jU/B9xob0nanipFDLR6DJk20=;
        b=ZyEwqBs3ZVXdoYyVyrb2EXn07heL/yLQt2gMYkokns3IUezB9LTmMbNcTIBCyi5JUO
         d1Q35AYJ0+CQbE8dl4AjVvca1ASY005qflJpIldZh8RG4SKDoA9c8P6jaAdHUUmb0m0Y
         Ov7uoQ8PYNjNywpdCr/FdjkMQ27Stp2w+uRujofgDaoC36hmgIj3LmRgbf6s0Jw1hSC0
         bSN2/qWjvzC5JbFu/Vu33AFXQ9JNVyyBRNDvt3LHF50MqRpeP6XergYXuR1XCRMX2Zl9
         tl06RrB4SQAa7vcBN4Zo8n9/Q3cqCLbJ/5CXRzRAhPpM2F/0ROryYSZVq00ydyDK5xBq
         JiGQ==
X-Forwarded-Encrypted: i=1; AJvYcCUWWaRtZKlpkg1o1v9YaY51ExW7X1240ZwN7yB0xUuVYOmldoL5Fw89SSTTwokrlQ/FA4t0LoDWj3wIgcfKyzttr5m3YdRJVGsKh/6n65M=
X-Gm-Message-State: AOJu0YwjwZZeysKaZ/6n6qMWyS7QIZPD0gxvAC01RAsgg1W34Xf+/+KF
	f3tKWG0c/HM9WmtOtSUMYE8+Vhwe1Z9oiG+K4T9xXumpkLPTwKqlPbwhNppJWA==
X-Google-Smtp-Source: AGHT+IHTZppbJxScJUDAxwVhfd1Yj/hteIcEWIDxsPlg05A/ujoKghFl0WFDrFfNc3HQAZXrkVDeUw==
X-Received: by 2002:ac2:48b0:0:b0:52e:6ee4:5eaa with SMTP id 2adb3069b0e04-52eb99d16demr830004e87.54.1720518050589;
        Tue, 09 Jul 2024 02:40:50 -0700 (PDT)
Message-ID: <ecfef639-11ed-4f7c-81de-d1a6c230c465@suse.com>
Date: Tue, 9 Jul 2024 11:40:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH for-4.19] xen/bitmap: amend MISRA C deviation for Rule
 20.7
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: sstabellini@kernel.org, michal.orzel@amd.com, xenia.ragiadakou@amd.com,
 ayan.kumar.halder@amd.com, consulting@bugseng.com,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <794724e70c4e45224916576af01070e8aebe9aab.1720517398.git.nicola.vetrini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <794724e70c4e45224916576af01070e8aebe9aab.1720517398.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 11:34, Nicola Vetrini wrote:
> As noticed in the gitlab analyses, deviating bitmap_switch
> for Rule 20.7 in this way does not work for ECLAIR.
> 
> Instead, the deviation should be put in the macro invocation.

Why is this? I ask in particular because ...

> --- a/xen/include/xen/bitmap.h
> +++ b/xen/include/xen/bitmap.h
> @@ -103,18 +103,16 @@ extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
>  #define bitmap_switch(nbits, zero, small, large)			  \
>  	unsigned int n__ = (nbits);					  \
>  	if (__builtin_constant_p(nbits) && !n__) {			  \
> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>  		zero;							  \
>  	} else if (__builtin_constant_p(nbits) && n__ <= BITS_PER_LONG) { \
> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>  		small;							  \
>  	} else {							  \
> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>  		large;							  \
>  	}
>  
>  static inline void bitmap_zero(unsigned long *dst, unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,,
>  		*dst = 0UL,
>  		memset(dst, 0, bitmap_bytes(nbits)));
> @@ -139,6 +137,7 @@ static inline void bitmap_fill(unsigned long *dst, unsigned int nbits)
>  static inline void bitmap_copy(unsigned long *dst, const unsigned long *src,
>  			unsigned int nbits)
>  {
> +        /* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,,
>  		*dst = *src,
>  		memcpy(dst, src, bitmap_bytes(nbits)));
> @@ -147,6 +146,7 @@ static inline void bitmap_copy(unsigned long *dst, const unsigned long *src,
>  static inline void bitmap_and(unsigned long *dst, const unsigned long *src1,
>  			const unsigned long *src2, unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,,
>  		*dst = *src1 & *src2,
>  		__bitmap_and(dst, src1, src2, nbits));
> @@ -155,6 +155,7 @@ static inline void bitmap_and(unsigned long *dst, const unsigned long *src1,
>  static inline void bitmap_or(unsigned long *dst, const unsigned long *src1,
>  			const unsigned long *src2, unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,,
>  		*dst = *src1 | *src2,
>  		__bitmap_or(dst, src1, src2, nbits));
> @@ -163,6 +164,7 @@ static inline void bitmap_or(unsigned long *dst, const unsigned long *src1,
>  static inline void bitmap_xor(unsigned long *dst, const unsigned long *src1,
>  			const unsigned long *src2, unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,,
>  		*dst = *src1 ^ *src2,
>  		__bitmap_xor(dst, src1, src2, nbits));
> @@ -171,6 +173,7 @@ static inline void bitmap_xor(unsigned long *dst, const unsigned long *src1,
>  static inline void bitmap_andnot(unsigned long *dst, const unsigned long *src1,
>  			const unsigned long *src2, unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,,
>  		*dst = *src1 & ~*src2,
>  		__bitmap_andnot(dst, src1, src2, nbits));
> @@ -179,6 +182,7 @@ static inline void bitmap_andnot(unsigned long *dst, const unsigned long *src1,
>  static inline void bitmap_complement(unsigned long *dst, const unsigned long *src,
>  			unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,,
>  		*dst = ~*src & BITMAP_LAST_WORD_MASK(nbits),
>  		__bitmap_complement(dst, src, nbits));
> @@ -187,6 +191,7 @@ static inline void bitmap_complement(unsigned long *dst, const unsigned long *sr
>  static inline int bitmap_equal(const unsigned long *src1,
>  			const unsigned long *src2, unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,
>  		return -1,
>  		return !((*src1 ^ *src2) & BITMAP_LAST_WORD_MASK(nbits)),
> @@ -196,6 +201,7 @@ static inline int bitmap_equal(const unsigned long *src1,
>  static inline int bitmap_intersects(const unsigned long *src1,
>  			const unsigned long *src2, unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,
>  		return -1,
>  		return ((*src1 & *src2) & BITMAP_LAST_WORD_MASK(nbits)) != 0,
> @@ -205,6 +211,7 @@ static inline int bitmap_intersects(const unsigned long *src1,
>  static inline int bitmap_subset(const unsigned long *src1,
>  			const unsigned long *src2, unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,
>  		return -1,
>  		return !((*src1 & ~*src2) & BITMAP_LAST_WORD_MASK(nbits)),
> @@ -213,6 +220,7 @@ static inline int bitmap_subset(const unsigned long *src1,
>  
>  static inline int bitmap_empty(const unsigned long *src, unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,
>  		return -1,
>  		return !(*src & BITMAP_LAST_WORD_MASK(nbits)),
> @@ -221,6 +229,7 @@ static inline int bitmap_empty(const unsigned long *src, unsigned int nbits)
>  
>  static inline int bitmap_full(const unsigned long *src, unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,
>  		return -1,
>  		return !(~*src & BITMAP_LAST_WORD_MASK(nbits)),

... having the same comment on every invocation is naturally quite a bit
less desirable. So far I was under the impression that macro-specific
deviations can be dealt with by marking the macro definition accordingly.
I've been assuming this is a general pattern. If it isn't, would you
please first clarify what Eclair's specific requirements are for a SAF
marker to take effect when involving a macro?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 09:43:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 09:43:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756034.1164592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR7NU-0004WF-MB; Tue, 09 Jul 2024 09:43:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756034.1164592; Tue, 09 Jul 2024 09: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 1sR7NU-0004W8-J5; Tue, 09 Jul 2024 09:43:16 +0000
Received: by outflank-mailman (input) for mailman id 756034;
 Tue, 09 Jul 2024 09: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR7NT-0004W2-Ds
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 09:43:15 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a9013ec4-3dd7-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 11:43:13 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-52e99060b0dso5404694e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 02:43: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
 d9443c01a7336-1fbb6ac5073sm12049425ad.227.2024.07.09.02.43.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 02:43: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: a9013ec4-3dd7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720518193; x=1721122993; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=U5cbmjURPM/IMu/Ezl0bxzz4CVG/YVDqjC6zXf65nRM=;
        b=Y1Z3Ox+rguElBYAK78rnfJ6zlgcCCkJsO81fiNZv6JMIvQkVGL9hbBbXppU8U21q1Z
         Jvg+k5cQ4F0axg+Wl3V6Amw3Vo498Abq9tWaSU+EK/j1nNVRxVoTfpt5m4kCPe5UGMEU
         qiqds+0TVOfu3xOGGpKVpDlPBSAr/m3skzZlhZJshJLdyJ8C6NX97KoHhZzAl/C/FMK6
         Ht25bG5CJKGBpVwT0Bi45o7vBjMhPfgX2AbXBbp3Of6V1fq1Yn9O0r5TWwvCEK6k4WZg
         +WxV/oOucjyL62TtnFBnYvGYiOm7iOwr8XAGRDohgMFbYQGGL9l7WdD7qvomFfAzxUAM
         QmBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720518193; x=1721122993;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U5cbmjURPM/IMu/Ezl0bxzz4CVG/YVDqjC6zXf65nRM=;
        b=SnaRComWHO7t2WCho8fKxyzSZCj8n3HIDEkKfFdRsmah0wRjglYN1oUIrUxvhATG13
         2y9/cYQuoTdzonNmsbmeWWb+vSe+fOREitlppFZtlWsXwPaTrJTDTkHU7wIOuPUzeXRw
         fW1zn1Y6/02ruRx5AbVNiEGGpB/KjqxUE2sMXhNRjgFuH7kOECzh4U958v6EunItabYG
         sMb4umM74pkt1e5IQu8eFxCjDJfsjvad9aH34/uq+R32MnKloHor+o1K0if60ehQYC41
         JXnmKU96zN5LIfrMDaLPbkgaLn20o6sGSRsYNlM1xMXq+ptAbG8Tr/QiBY8Kul/nXqEw
         qOFw==
X-Forwarded-Encrypted: i=1; AJvYcCURb1DY+GdtkylpvJko5w33o4ZOHhkcO6b90N3uYxgkcSr2kAmw/qFdSW6JpMtvKXBYlkT4j70DlpR3D8rMXK++iL1X4iEooPO0TUWe7ME=
X-Gm-Message-State: AOJu0Yx6uCEH1NI0mTi/x7dMTW/S9BDseHntF1Sphb6QuQLeen/0X7bm
	lGF/qLXnO46YK7mBFJutf7y2ubzO/fQIhK2F88zAQtS7DPsi6QgGV/r6GUN7gT/owhTaiydpW/M
	=
X-Google-Smtp-Source: AGHT+IH4GVjdkQpVRatyqwp84U3a30QPtfw28IyntHosjtSA+SdU9GDqWCaF3kDzc75uDVyY1F+OSA==
X-Received: by 2002:ac2:46ea:0:b0:52e:9b74:120 with SMTP id 2adb3069b0e04-52eb9997849mr1080578e87.19.1720518193046;
        Tue, 09 Jul 2024 02:43:13 -0700 (PDT)
Message-ID: <49835de9-554c-47f5-92a4-e98a37787d49@suse.com>
Date: Tue, 9 Jul 2024 11:43:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/2] x86/cpufreq: move ACPI cpufreq driver into
 separate file
To: Sergiy Kibrik <sergiy_kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1719832871.git.Sergiy_Kibrik@epam.com>
 <d8a13eb8c53d8cde99d7fa1d8e4fce2a597f02fd.1719832871.git.Sergiy_Kibrik@epam.com>
 <0f883617-f4c0-43af-895f-3f70d4143a34@suse.com>
 <cbb957fa-3d71-4358-b01c-0a0857db43eb@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: <cbb957fa-3d71-4358-b01c-0a0857db43eb@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 11:13, Sergiy Kibrik wrote:
> 03.07.24 18:07, Jan Beulich:
>> On 01.07.2024 14:03, Sergiy Kibrik wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/x86/acpi/cpufreq/acpi.c
>>> @@ -0,0 +1,622 @@
>>> +/*
>>> + *  cpufreq.c - ACPI Processor P-States Driver ($Revision: 1.4 $)
>>> + *
>>> + *  Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
>>> + *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
>>> + *  Copyright (C) 2002 - 2004 Dominik Brodowski <linux@brodo.de>
>>> + *  Copyright (C) 2006        Denis Sadykov <denis.m.sadykov@intel.com>
>>> + *
>>> + *  Feb 2008 - Liu Jinsong <jinsong.liu@intel.com>
>>> + *      porting acpi-cpufreq.c from Linux 2.6.23 to Xen hypervisor
>>> + *
>>> + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> + *
>>> + *  This program is free software; you can redistribute it and/or modify
>>> + *  it under the terms of the GNU General Public License as published by
>>> + *  the Free Software Foundation; either version 2 of the License, or (at
>>> + *  your option) any later version.
>>> + *
> [..]
>>> + *
>>> + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> + */
>>
>> ... I expect this should be transformed into an SPDX line. I expect the
>> one in cpufreq.c wasn't picked up when the conversion was done because
>> it doesn't fully match whatever pattern was looked for at the time.
>>
> 
> would the line
> 
> /* SPDX-License-Identifier: GPL-2.0-or-later */
> 
> be correct here?

I think so, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 09:47:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 09:47:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756042.1164601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR7Ra-0005zF-5C; Tue, 09 Jul 2024 09:47:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756042.1164601; Tue, 09 Jul 2024 09:47:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR7Ra-0005z8-2X; Tue, 09 Jul 2024 09:47:30 +0000
Received: by outflank-mailman (input) for mailman id 756042;
 Tue, 09 Jul 2024 09:47: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=cUMd=OJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sR7RY-0005z2-V9
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 09:47:28 +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 409ad585-3dd8-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 11:47:28 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a7527afa23cso613708466b.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 02:47:28 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a86ed10sm62625666b.190.2024.07.09.02.47.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 02:47: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: 409ad585-3dd8-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720518447; x=1721123247; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Rpf1+y60EeiGL+Twva2xkz30FSTXU/fwLUpyVoek8ys=;
        b=dDJn0GATw0cWPifqym/iddoHsyH+x8II0gQJQu1VXCKO3SR+mrUiBLqFpWXmBrupfT
         zPR3GFJCeOtiONX3K9IJuWm+OcllqdnWFPpxbjymfdXhnUm0AbtpTVqxQazQWjqOnwF8
         0fn24m4ab9j7RN83+Au/6PTYCfBVgk4Cc5d1A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720518447; x=1721123247;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Rpf1+y60EeiGL+Twva2xkz30FSTXU/fwLUpyVoek8ys=;
        b=CvIeQdYyzQTY0jH58lzZH2xfFcvPdGvROvZZits9BwOdCwsVwM2UfHBxpDXJdG8+gu
         /j4INoFwoTAdUrWqSIqbGNJOsuSYO+46I27481iy1O8bdutM6VvtFQRbymbl9FMx8B/f
         OEUOpqSE9fqZ2GkNnBZdJLQ1YNJlj5MidMGJMZy18D8S9j8oube6Ot9PXSkxFiXGVP7D
         2mC9M2ynRZSwSsLEisuVa3/OMlDXT+Mh25kpfraukWdZibA68ITsXvMb+YY8N+byod2A
         1RFknxf0MWy41+SmJomdf4TFOMi6QXn0zJp/Yn7BfLbsDWd857LCAszm+QHlpMKZ2HC+
         Znow==
X-Forwarded-Encrypted: i=1; AJvYcCXYTW/jNw6s8fg5k6ztZP+4F5dyZWB8BsHyQJTxRzcF0kkskmhEBdhXHR3f9dpzLQCv7dyy0MVoX1daeubdobi12y/vpXlpltz/sRD8HEI=
X-Gm-Message-State: AOJu0Yzwt1J8JsnIGXkpfvkdKaqgBYiHyezT6GN1YyBqHlTVDoDhe0xV
	m8Flm4Ah313SUHNZbvVuiA4dMMjk6997neEFRdTAIIVryNo0MkPmj9sCxyhqKBo=
X-Google-Smtp-Source: AGHT+IGZvAzhFN3iRfXik8wjVKrEjJVnNwO3CKjcs+9Q+wtuR6HHpGWYM1NGL49eq5h5RLEqFh4oYg==
X-Received: by 2002:a17:906:4118:b0:a77:e58d:d8db with SMTP id a640c23a62f3a-a780b6b35b9mr143879566b.32.1720518447386;
        Tue, 09 Jul 2024 02:47:27 -0700 (PDT)
Message-ID: <ce22ad38-2797-42fe-b4b2-34bf5bf1eb15@citrix.com>
Date: Tue, 9 Jul 2024 10:47:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19 0/4] CI: part 3 (improvments to PPC)
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Oleksii Kurochko
 <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240708173522.2218293-1-andrew.cooper3@citrix.com>
 <0a661f4c-5701-4ed1-b15a-493da99e04d1@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: <0a661f4c-5701-4ed1-b15a-493da99e04d1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/07/2024 7:31 am, Jan Beulich wrote:
> On 08.07.2024 19:35, Andrew Cooper wrote:
>> Here is a run with these improvements in place:
>>
>>   https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7277624801
>>
>> Jan: I hope to backport this series to 4.18 so we can remove
>> qemu-system-ppc64/8.1.0-ppc64 entirely.  This will simplify changes in the
>> future by making the testing more consistent.
> This being part 3 a relevant question would be in how far this is independent
> of the earlier two parts?

Patch 1 is only tangentially related to 2-4.

It's a long-standing script bug that I've encountered for the second
time now, and will compound everywhere (even older branches) by making
the containers be non-root by default.

We should never had had root-based containers.  It's not necessary for
our build or qemu smoke test containers, and it's a stupid risk given
that patchew consumes *everything* from the mailing list which applies.

In terms of a fixes tag, its 17fbe6504dfd from 6 years ago.

It's a problem for anyone using the containers manually with the
containerize[sic] script, not for Gitlab itself.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 10:15:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 10:15:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756048.1164611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR7t0-0002zD-4i; Tue, 09 Jul 2024 10:15:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756048.1164611; Tue, 09 Jul 2024 10:15:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR7t0-0002z6-2E; Tue, 09 Jul 2024 10:15:50 +0000
Received: by outflank-mailman (input) for mailman id 756048;
 Tue, 09 Jul 2024 10: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=/VCn=OJ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1sR7sy-0002z0-L1
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 10:15:48 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 350ed704-3ddc-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 12:15:46 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id CAA984EE0742;
 Tue,  9 Jul 2024 12:15: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: 350ed704-3ddc-11ef-bbfb-fd08da9f4363
MIME-Version: 1.0
Date: Tue, 09 Jul 2024 12:15:45 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: sstabellini@kernel.org, michal.orzel@amd.com, xenia.ragiadakou@amd.com,
 ayan.kumar.halder@amd.com, consulting@bugseng.com, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Oleksii Kurochko
 <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH for-4.19] xen/bitmap: amend MISRA C deviation for Rule
 20.7
In-Reply-To: <ecfef639-11ed-4f7c-81de-d1a6c230c465@suse.com>
References: <794724e70c4e45224916576af01070e8aebe9aab.1720517398.git.nicola.vetrini@bugseng.com>
 <ecfef639-11ed-4f7c-81de-d1a6c230c465@suse.com>
Message-ID: <2ff60858147e1dd501ec59c38a7a41b4@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-09 11:40, Jan Beulich wrote:
> On 09.07.2024 11:34, Nicola Vetrini wrote:
>> As noticed in the gitlab analyses, deviating bitmap_switch
>> for Rule 20.7 in this way does not work for ECLAIR.
>> 
>> Instead, the deviation should be put in the macro invocation.
> 
> Why is this? I ask in particular because ...
> 
>> --- a/xen/include/xen/bitmap.h
>> +++ b/xen/include/xen/bitmap.h
>> @@ -103,18 +103,16 @@ extern int bitmap_allocate_region(unsigned long 
>> *bitmap, int pos, int order);
>>  #define bitmap_switch(nbits, zero, small, large)			  \
>>  	unsigned int n__ = (nbits);					  \
>>  	if (__builtin_constant_p(nbits) && !n__) {			  \
>> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>>  		zero;							  \
>>  	} else if (__builtin_constant_p(nbits) && n__ <= BITS_PER_LONG) { \
>> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>>  		small;							  \
>>  	} else {							  \
>> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>>  		large;							  \
>>  	}
>> 
>>  static inline void bitmap_zero(unsigned long *dst, unsigned int 
>> nbits)
>>  {
>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,,
>>  		*dst = 0UL,
>>  		memset(dst, 0, bitmap_bytes(nbits)));
>> @@ -139,6 +137,7 @@ static inline void bitmap_fill(unsigned long *dst, 
>> unsigned int nbits)
>>  static inline void bitmap_copy(unsigned long *dst, const unsigned 
>> long *src,
>>  			unsigned int nbits)
>>  {
>> +        /* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,,
>>  		*dst = *src,
>>  		memcpy(dst, src, bitmap_bytes(nbits)));
>> @@ -147,6 +146,7 @@ static inline void bitmap_copy(unsigned long *dst, 
>> const unsigned long *src,
>>  static inline void bitmap_and(unsigned long *dst, const unsigned long 
>> *src1,
>>  			const unsigned long *src2, unsigned int nbits)
>>  {
>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,,
>>  		*dst = *src1 & *src2,
>>  		__bitmap_and(dst, src1, src2, nbits));
>> @@ -155,6 +155,7 @@ static inline void bitmap_and(unsigned long *dst, 
>> const unsigned long *src1,
>>  static inline void bitmap_or(unsigned long *dst, const unsigned long 
>> *src1,
>>  			const unsigned long *src2, unsigned int nbits)
>>  {
>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,,
>>  		*dst = *src1 | *src2,
>>  		__bitmap_or(dst, src1, src2, nbits));
>> @@ -163,6 +164,7 @@ static inline void bitmap_or(unsigned long *dst, 
>> const unsigned long *src1,
>>  static inline void bitmap_xor(unsigned long *dst, const unsigned long 
>> *src1,
>>  			const unsigned long *src2, unsigned int nbits)
>>  {
>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,,
>>  		*dst = *src1 ^ *src2,
>>  		__bitmap_xor(dst, src1, src2, nbits));
>> @@ -171,6 +173,7 @@ static inline void bitmap_xor(unsigned long *dst, 
>> const unsigned long *src1,
>>  static inline void bitmap_andnot(unsigned long *dst, const unsigned 
>> long *src1,
>>  			const unsigned long *src2, unsigned int nbits)
>>  {
>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,,
>>  		*dst = *src1 & ~*src2,
>>  		__bitmap_andnot(dst, src1, src2, nbits));
>> @@ -179,6 +182,7 @@ static inline void bitmap_andnot(unsigned long 
>> *dst, const unsigned long *src1,
>>  static inline void bitmap_complement(unsigned long *dst, const 
>> unsigned long *src,
>>  			unsigned int nbits)
>>  {
>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,,
>>  		*dst = ~*src & BITMAP_LAST_WORD_MASK(nbits),
>>  		__bitmap_complement(dst, src, nbits));
>> @@ -187,6 +191,7 @@ static inline void bitmap_complement(unsigned long 
>> *dst, const unsigned long *sr
>>  static inline int bitmap_equal(const unsigned long *src1,
>>  			const unsigned long *src2, unsigned int nbits)
>>  {
>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,
>>  		return -1,
>>  		return !((*src1 ^ *src2) & BITMAP_LAST_WORD_MASK(nbits)),
>> @@ -196,6 +201,7 @@ static inline int bitmap_equal(const unsigned long 
>> *src1,
>>  static inline int bitmap_intersects(const unsigned long *src1,
>>  			const unsigned long *src2, unsigned int nbits)
>>  {
>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,
>>  		return -1,
>>  		return ((*src1 & *src2) & BITMAP_LAST_WORD_MASK(nbits)) != 0,
>> @@ -205,6 +211,7 @@ static inline int bitmap_intersects(const unsigned 
>> long *src1,
>>  static inline int bitmap_subset(const unsigned long *src1,
>>  			const unsigned long *src2, unsigned int nbits)
>>  {
>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,
>>  		return -1,
>>  		return !((*src1 & ~*src2) & BITMAP_LAST_WORD_MASK(nbits)),
>> @@ -213,6 +220,7 @@ static inline int bitmap_subset(const unsigned 
>> long *src1,
>> 
>>  static inline int bitmap_empty(const unsigned long *src, unsigned int 
>> nbits)
>>  {
>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,
>>  		return -1,
>>  		return !(*src & BITMAP_LAST_WORD_MASK(nbits)),
>> @@ -221,6 +229,7 @@ static inline int bitmap_empty(const unsigned long 
>> *src, unsigned int nbits)
>> 
>>  static inline int bitmap_full(const unsigned long *src, unsigned int 
>> nbits)
>>  {
>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>  	bitmap_switch(nbits,
>>  		return -1,
>>  		return !(~*src & BITMAP_LAST_WORD_MASK(nbits)),
> 
> ... having the same comment on every invocation is naturally quite a 
> bit
> less desirable. So far I was under the impression that macro-specific
> deviations can be dealt with by marking the macro definition 
> accordingly.

Not with a comment-based one, but one based on ECL.
As stated under the cut:
An alternative approach would be to use an ecl configuration, but that
would be tool-specific.

Stefano had a preference for a tool-agnostic SAF comment, so that's what 
I used.

> I've been assuming this is a general pattern. If it isn't, would you
> please first clarify what Eclair's specific requirements are for a SAF
> marker to take effect when involving a macro?
> 

it should be put directly above macro invocations. ECLAIR has a 
tool-specific comment-based deviation that essentially deviates a range 
of lines, but that is not supported by the SAF framework, so I avoided 
that.

Is it safe to say that the uses of bitmap_switch will likely not change 
much over time?

Thanks,

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 10:31:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 10:31:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756057.1164621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR887-0006uG-Ds; Tue, 09 Jul 2024 10:31:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756057.1164621; Tue, 09 Jul 2024 10:31:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR887-0006u9-B5; Tue, 09 Jul 2024 10:31:27 +0000
Received: by outflank-mailman (input) for mailman id 756057;
 Tue, 09 Jul 2024 10:31:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sR886-0006tt-1W; Tue, 09 Jul 2024 10:31:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sR885-0000sy-UP; Tue, 09 Jul 2024 10:31:25 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sR885-0002RM-BE; Tue, 09 Jul 2024 10:31:25 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sR885-0006SU-8p; Tue, 09 Jul 2024 10:31: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=aacRO91cqfeOmDQpsh+WJD7r5BR7pXS+2RqyQNH+A2U=; b=QVe9WsTNpfSSov9g9y/4aHapdZ
	wncmIsfvtiCCak2KCY9MgS+G5EnPq9+d4IZ/Ao57grT5YrsO0jAZMaN2mWmfXxcRoqkLEjbLulAM0
	SQqvRD5tBxL/YHa4phubccqwuO224zzpO1YI4q68GKWnII6AISG5PEbOMXEDI18rq0CA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186736-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186736: trouble: broken/pass
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:<job status>:broken:regression
    libvirt:test-armhf-armhf-libvirt:host-install(5):broken:regression
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=9fade1d6fb66673daecd4349ad651351993b5210
X-Osstest-Versions-That:
    libvirt=893800be49d2d58f78c96e4f06d9f24188cb8946
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Jul 2024 10:31:25 +0000

flight 186736 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186736/

Failures and problems with tests :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-libvirt        <job status>                 broken
 test-armhf-armhf-libvirt      5 host-install(5)        broken REGR. vs. 186728

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              9fade1d6fb66673daecd4349ad651351993b5210
baseline version:
 libvirt              893800be49d2d58f78c96e4f06d9f24188cb8946

Last test of basis   186728  2024-07-08 04:18:44 Z    1 days
Testing same since   186736  2024-07-09 04:18:46 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Göran Uddeborg <goeran@uddeborg.se>
  Martin Kletzander <mkletzan@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     broken  
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary

broken-job test-armhf-armhf-libvirt broken
broken-step test-armhf-armhf-libvirt host-install(5)

Not pushing.

------------------------------------------------------------
commit 9fade1d6fb66673daecd4349ad651351993b5210
Author: Göran Uddeborg <goeran@uddeborg.se>
Date:   Sat Jul 6 13:36:02 2024 +0200

    Translated using Weblate (Swedish)
    
    Currently translated at 78.2% (8227 of 10516 strings)
    
    Translation: libvirt/libvirt
    Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/
    
    Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
    Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>

commit db622081e0fa55b481da1fc7fb81279224a60f88
Author: Martin Kletzander <mkletzan@redhat.com>
Date:   Mon Jul 8 13:04:13 2024 +0200

    vmx: Do not require all ID data for VMWare Distributed Switch
    
    Similarly to commit 2482801608b8 we can safely ignore connectionId,
    portId and portgroupId in both XML and VMX as they are only a blind
    pass-through between XML and VMX and an ethernet without such parameters
    was spotted in the wild.  On top of that even our documentation says the
    whole VMWare Distrubuted Switch configuration is a best-effort.
    
    Resolves: https://issues.redhat.com/browse/RHEL-46099
    
    Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
    Reviewed-by: Jiri Denemark <jdenemar@redhat.com>


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 10:38:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 10:38:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756067.1164631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR8ET-0008CR-8l; Tue, 09 Jul 2024 10:38:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756067.1164631; Tue, 09 Jul 2024 10: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 1sR8ET-0008CK-60; Tue, 09 Jul 2024 10:38:01 +0000
Received: by outflank-mailman (input) for mailman id 756067;
 Tue, 09 Jul 2024 10:37:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sR8ER-0008CA-HZ; Tue, 09 Jul 2024 10:37:59 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sR8ER-0000zo-Co; Tue, 09 Jul 2024 10:37:59 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sR8EQ-0003GM-UK; Tue, 09 Jul 2024 10:37:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sR8EQ-00058I-Ti; Tue, 09 Jul 2024 10:37: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=H03iuif5ttWO24Yrics4AnaN9Wl9IP1EPEyZ/pLGOqo=; b=p8CJPDhU9x4pQ67bfLyAWVaFY+
	PmIsaGRcPNRsMNXEI0Xn1SHmL9gf9jlnDjqQZptZygdFozCeT++0MtJbXPaQcd6O4tfnrZFtexuhD
	HaF1oIRMJ04Ec41xXF+jVc/1FxfyBm6VIWRX0tTByW+xSXQcIL3xXx7eFNQhKQGaoyjA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186735-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186735: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c4ebeb79d10a25e8d48a71cdd381898265267e67
X-Osstest-Versions-That:
    xen=64cee188376e52a154475a86a9d2adc85f029870
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Jul 2024 10:37:58 +0000

flight 186735 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186735/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186733
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186733
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186733
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186733
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186733
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186733
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c4ebeb79d10a25e8d48a71cdd381898265267e67
baseline version:
 xen                  64cee188376e52a154475a86a9d2adc85f029870

Last test of basis   186733  2024-07-08 18:06:59 Z    0 days
Testing same since   186735  2024-07-09 01:41:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   64cee18837..c4ebeb79d1  c4ebeb79d10a25e8d48a71cdd381898265267e67 -> master


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 10:43:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 10:43:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756096.1164658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR8K1-0001VX-5O; Tue, 09 Jul 2024 10:43:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756096.1164658; Tue, 09 Jul 2024 10: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 1sR8K1-0001VQ-1M; Tue, 09 Jul 2024 10:43:45 +0000
Received: by outflank-mailman (input) for mailman id 756096;
 Tue, 09 Jul 2024 10:43:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR8Jz-0001QH-UI
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 10:43:43 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1bb72522-3de0-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 12:43:41 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52e98087e32so5496735e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 03:43: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
 d2e1a72fcca58-70b4396841esm1464148b3a.132.2024.07.09.03.43.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 03:43: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: 1bb72522-3de0-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720521821; x=1721126621; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mirLwL4UoXhP3xDr8NEgWhE6Ppxd3/vNLNbEQ8mWpjs=;
        b=gh1sIfscOsMcKczjg40MJeZTZYPyinAedW3rmrVy15T0eK0k50hWabRCKjg9PynOxu
         mIAZUutryOrqfMqdPIbGRxzqqG05NI3nbYVUIz1q88gG0OM1QqcseN25kqyf1kiWoDzM
         hZReyP/Nvx51OfhDuu0EqWsnooBjHjgebBgmCuxCztEwLCC74+4AbmjL/4H6YNynDaXu
         v1s/lM7oSZTCw91TYNTNyHd14PQ1lAayKNtpJnmiSWEcljX9px+JvFr/51WyjCEO4gv0
         LyU/Co+v+LL6ADSerpHFLtiBg2u2HrDWm255u4IjkxU481pvApnvO2xIufPts7NWNkGx
         ny9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720521821; x=1721126621;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mirLwL4UoXhP3xDr8NEgWhE6Ppxd3/vNLNbEQ8mWpjs=;
        b=OtSXD+PgDaW+F82Rx0HfbBXX0C+SiQXD+OWoWLhezYpB8GblBeQxameF8KZRZgZ1tD
         ee/KqJaJCWapHtIORhSZCtgy2TdEn4EGjIxirRzxBmseeGC+eLJ4pdDmhHtAAW9ibYXX
         GuZ/RcXfoGaB9D1wsYe63g5MOFyiuLjhoFw7+t455QE6lQMmFkvt15zyd/szT4d/zsoz
         jAEy+VqbLmsAsiUd6BoFZBZMgMZFShgfgROrLfDkqfWjRnY7TM1lyofE1ANHXWKcL5eS
         MLsfvYj9hoaD01kkIzQ4XCJyNdzdJOUswbEyNH6xLnOegMdHrMcAKsc5udzH+79g28X8
         j9Uw==
X-Forwarded-Encrypted: i=1; AJvYcCWBQhbA9BEu2NwTZnwpr+I1PFB23eM2ISNblJmAuKdBtcuU2S+xPc916MYtFB/NxRsCKyBykjQRZik+5RW2ed4Ql9+ZOlkJqt8LgbpHXKc=
X-Gm-Message-State: AOJu0YwXTlqtAPZT+HG8AUbj5BKJRHJzbSOQsN+phWQr0Udqb8fCncgl
	Kg+Uae18JaVVwbVNbAHQHN0cvEiJYElG5sBlDHCGprvjz64b1IWqo/bY181Vuw==
X-Google-Smtp-Source: AGHT+IEM8Pqgh1j6+N24XH+IHe9urTGNhpDIs0spaQTDvIt/oTCfmdfucF32GeZECoyPU56GfNO5iA==
X-Received: by 2002:a19:6458:0:b0:52c:d84b:eee6 with SMTP id 2adb3069b0e04-52eb999a689mr1073878e87.38.1720521821243;
        Tue, 09 Jul 2024 03:43:41 -0700 (PDT)
Message-ID: <b6eb8756-368b-4ef7-ac4f-17ba7d9f111f@suse.com>
Date: Tue, 9 Jul 2024 12:43:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH for-4.19] xen/bitmap: amend MISRA C deviation for Rule
 20.7
To: Nicola Vetrini <nicola.vetrini@bugseng.com>, sstabellini@kernel.org
Cc: michal.orzel@amd.com, xenia.ragiadakou@amd.com,
 ayan.kumar.halder@amd.com, consulting@bugseng.com,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <794724e70c4e45224916576af01070e8aebe9aab.1720517398.git.nicola.vetrini@bugseng.com>
 <ecfef639-11ed-4f7c-81de-d1a6c230c465@suse.com>
 <2ff60858147e1dd501ec59c38a7a41b4@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: <2ff60858147e1dd501ec59c38a7a41b4@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 12:15, Nicola Vetrini wrote:
> On 2024-07-09 11:40, Jan Beulich wrote:
>> On 09.07.2024 11:34, Nicola Vetrini wrote:
>>> As noticed in the gitlab analyses, deviating bitmap_switch
>>> for Rule 20.7 in this way does not work for ECLAIR.
>>>
>>> Instead, the deviation should be put in the macro invocation.
>>
>> Why is this? I ask in particular because ...
>>
>>> --- a/xen/include/xen/bitmap.h
>>> +++ b/xen/include/xen/bitmap.h
>>> @@ -103,18 +103,16 @@ extern int bitmap_allocate_region(unsigned long 
>>> *bitmap, int pos, int order);
>>>  #define bitmap_switch(nbits, zero, small, large)			  \
>>>  	unsigned int n__ = (nbits);					  \
>>>  	if (__builtin_constant_p(nbits) && !n__) {			  \
>>> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>>>  		zero;							  \
>>>  	} else if (__builtin_constant_p(nbits) && n__ <= BITS_PER_LONG) { \
>>> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>>>  		small;							  \
>>>  	} else {							  \
>>> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>>>  		large;							  \
>>>  	}
>>>
>>>  static inline void bitmap_zero(unsigned long *dst, unsigned int 
>>> nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,,
>>>  		*dst = 0UL,
>>>  		memset(dst, 0, bitmap_bytes(nbits)));
>>> @@ -139,6 +137,7 @@ static inline void bitmap_fill(unsigned long *dst, 
>>> unsigned int nbits)
>>>  static inline void bitmap_copy(unsigned long *dst, const unsigned 
>>> long *src,
>>>  			unsigned int nbits)
>>>  {
>>> +        /* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,,
>>>  		*dst = *src,
>>>  		memcpy(dst, src, bitmap_bytes(nbits)));
>>> @@ -147,6 +146,7 @@ static inline void bitmap_copy(unsigned long *dst, 
>>> const unsigned long *src,
>>>  static inline void bitmap_and(unsigned long *dst, const unsigned long 
>>> *src1,
>>>  			const unsigned long *src2, unsigned int nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,,
>>>  		*dst = *src1 & *src2,
>>>  		__bitmap_and(dst, src1, src2, nbits));
>>> @@ -155,6 +155,7 @@ static inline void bitmap_and(unsigned long *dst, 
>>> const unsigned long *src1,
>>>  static inline void bitmap_or(unsigned long *dst, const unsigned long 
>>> *src1,
>>>  			const unsigned long *src2, unsigned int nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,,
>>>  		*dst = *src1 | *src2,
>>>  		__bitmap_or(dst, src1, src2, nbits));
>>> @@ -163,6 +164,7 @@ static inline void bitmap_or(unsigned long *dst, 
>>> const unsigned long *src1,
>>>  static inline void bitmap_xor(unsigned long *dst, const unsigned long 
>>> *src1,
>>>  			const unsigned long *src2, unsigned int nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,,
>>>  		*dst = *src1 ^ *src2,
>>>  		__bitmap_xor(dst, src1, src2, nbits));
>>> @@ -171,6 +173,7 @@ static inline void bitmap_xor(unsigned long *dst, 
>>> const unsigned long *src1,
>>>  static inline void bitmap_andnot(unsigned long *dst, const unsigned 
>>> long *src1,
>>>  			const unsigned long *src2, unsigned int nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,,
>>>  		*dst = *src1 & ~*src2,
>>>  		__bitmap_andnot(dst, src1, src2, nbits));
>>> @@ -179,6 +182,7 @@ static inline void bitmap_andnot(unsigned long 
>>> *dst, const unsigned long *src1,
>>>  static inline void bitmap_complement(unsigned long *dst, const 
>>> unsigned long *src,
>>>  			unsigned int nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,,
>>>  		*dst = ~*src & BITMAP_LAST_WORD_MASK(nbits),
>>>  		__bitmap_complement(dst, src, nbits));
>>> @@ -187,6 +191,7 @@ static inline void bitmap_complement(unsigned long 
>>> *dst, const unsigned long *sr
>>>  static inline int bitmap_equal(const unsigned long *src1,
>>>  			const unsigned long *src2, unsigned int nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,
>>>  		return -1,
>>>  		return !((*src1 ^ *src2) & BITMAP_LAST_WORD_MASK(nbits)),
>>> @@ -196,6 +201,7 @@ static inline int bitmap_equal(const unsigned long 
>>> *src1,
>>>  static inline int bitmap_intersects(const unsigned long *src1,
>>>  			const unsigned long *src2, unsigned int nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,
>>>  		return -1,
>>>  		return ((*src1 & *src2) & BITMAP_LAST_WORD_MASK(nbits)) != 0,
>>> @@ -205,6 +211,7 @@ static inline int bitmap_intersects(const unsigned 
>>> long *src1,
>>>  static inline int bitmap_subset(const unsigned long *src1,
>>>  			const unsigned long *src2, unsigned int nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,
>>>  		return -1,
>>>  		return !((*src1 & ~*src2) & BITMAP_LAST_WORD_MASK(nbits)),
>>> @@ -213,6 +220,7 @@ static inline int bitmap_subset(const unsigned 
>>> long *src1,
>>>
>>>  static inline int bitmap_empty(const unsigned long *src, unsigned int 
>>> nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,
>>>  		return -1,
>>>  		return !(*src & BITMAP_LAST_WORD_MASK(nbits)),
>>> @@ -221,6 +229,7 @@ static inline int bitmap_empty(const unsigned long 
>>> *src, unsigned int nbits)
>>>
>>>  static inline int bitmap_full(const unsigned long *src, unsigned int 
>>> nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,
>>>  		return -1,
>>>  		return !(~*src & BITMAP_LAST_WORD_MASK(nbits)),
>>
>> ... having the same comment on every invocation is naturally quite a 
>> bit
>> less desirable. So far I was under the impression that macro-specific
>> deviations can be dealt with by marking the macro definition 
>> accordingly.
> 
> Not with a comment-based one, but one based on ECL.
> As stated under the cut:
> An alternative approach would be to use an ecl configuration, but that
> would be tool-specific.

I read that, yes, but it's orthogonal to the point I made.

> Stefano had a preference for a tool-agnostic SAF comment, so that's what 
> I used.

I second this; I wonder though if e.g. for cppcheck the new placement
would have any effect.

>> I've been assuming this is a general pattern. If it isn't, would you
>> please first clarify what Eclair's specific requirements are for a SAF
>> marker to take effect when involving a macro?
> 
> it should be put directly above macro invocations.

That's then contrary to what was communicated before. Stefano, can we
please put this on the agenda of the call later in the day?

> ECLAIR has a 
> tool-specific comment-based deviation that essentially deviates a range 
> of lines, but that is not supported by the SAF framework, so I avoided 
> that.
> 
> Is it safe to say that the uses of bitmap_switch will likely not change 
> much over time?

Pretty much so, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 10:52:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 10:52:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756171.1164692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR8Sk-00049L-B6; Tue, 09 Jul 2024 10:52:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756171.1164692; Tue, 09 Jul 2024 10:52:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR8Sk-00049E-7y; Tue, 09 Jul 2024 10:52:46 +0000
Received: by outflank-mailman (input) for mailman id 756171;
 Tue, 09 Jul 2024 10: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=cUMd=OJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sR8Sj-000498-0e
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 10:52:45 +0000
Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com
 [2607:f8b0:4864:20::831])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5e605df0-3de1-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 12:52:43 +0200 (CEST)
Received: by mail-qt1-x831.google.com with SMTP id
 d75a77b69052e-447f2f5891cso9553861cf.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 03:52:43 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-447f9bf4317sm8971451cf.93.2024.07.09.03.52.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 03: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: 5e605df0-3de1-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720522363; x=1721127163; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rkEqfGYJGpPzhfQt/2efXrN3UR+BKrwJd7jWOFgGeTs=;
        b=lGylmwEXsVf0FiTUHomBgFYzhMUP2NIJqzYs7oJZV1MhGe5EZjfkJ/qxAOIn1hCp9q
         +deuwO+YXptcwYQ0NpOgJYVoUkZQW1yPqn2gOX+xwjZ1C4Kl4stVSmTyVqGCTy5kQvzv
         TsjwPRV7+1ZlGeZOmxxJnCIhTJtulAX7gTsXI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720522363; x=1721127163;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rkEqfGYJGpPzhfQt/2efXrN3UR+BKrwJd7jWOFgGeTs=;
        b=BmZu6ZZhF6++Pq05fSEjD9NXzDW31WG/7TfkReD0IZpMuS+68nkfcqf9g+WfEW5556
         QSMNqokgZmpv775fB38rCiD9G+RiwIEJJckhQliGLV2xm0KyOLgX6On5E8oDU3aNup3F
         +A3Ozsf9CmCzpXdLeoYid9I0bgof1SWx0/WIMIoAvpLDeyQxkU+x3C9NFNGoT+36GKSi
         gDYpTaf2NX/tdsVTYT8GwU1lbLSLDarhVjBAEK3A5+G+t+UrSR6V/CQ6eJ48aX77JDvC
         ZIWzR39RzOw7SWK9Hrvom4D1rzVPwwN+PEIv5quIdXBHajBCLa6Yr1iSAMiLFAA/thwW
         6K5w==
X-Forwarded-Encrypted: i=1; AJvYcCU5WJJND5tXeRXke+dfvfusmRUjhArF/1Acr1lPIPTOW3xrVU0va4eXXPj+XnjCL9Ier8cl0maVos2Ek7o9p4l1kxZN1zWuR62FTd/f7Bc=
X-Gm-Message-State: AOJu0YyPxF9X1H9gOWcCKgrQzS3ypqOoOk15Awu8f6w4aEsXdpGHAW6O
	3dNiKdvpKUbWdMdbwTxlt6+J8zoW+s2/YB5jn9o2oIIx+CFd0u2WZ9FWB+ddzKUN4Vq9kuDEXZ0
	M
X-Google-Smtp-Source: AGHT+IHQaJNBcwVVYyENLmeZjSQ9DUo9wZyxUcJkbN7td5H8gqqgQYNMa9cKk1YILnjegaOnSgShpA==
X-Received: by 2002:a05:622a:1ba2:b0:446:55f1:bc66 with SMTP id d75a77b69052e-447faa627e3mr28742431cf.68.1720522362732;
        Tue, 09 Jul 2024 03:52:42 -0700 (PDT)
Message-ID: <5ee79ef2-6c68-477b-a3f9-3a190f99ca0e@citrix.com>
Date: Tue, 9 Jul 2024 11:52:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] ppc/shutdown: Implement machine_{halt,restart}()
To: Shawn Anastasio <sanastasio@raptorengineering.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
References: <20240705182311.1968790-1-andrew.cooper3@citrix.com>
 <20240705182311.1968790-3-andrew.cooper3@citrix.com>
 <f3bad5a8-077e-40e7-abff-7a2cc0027d2b@raptorengineering.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <f3bad5a8-077e-40e7-abff-7a2cc0027d2b@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/07/2024 10:21 pm, Shawn Anastasio wrote:
>> +    do {
>> +        rc = opal_cec_reboot();
>> +
>> +        if ( rc == OPAL_BUSY_EVENT )
>> +            opal_poll_events(NULL);
>> +
>> +    } while ( rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT );
>> +
>> +    for ( ;; )
>> +        opal_poll_events(NULL);
>> +}
>> +
> Other than that, looks great.
>
> Reviewed-by: Shawn Anastasio <sanastasio@raptorengineering.com>

Thanks.  Fixed up, and queued for 4.20 when the tree opens.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 10:57:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 10:57:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756176.1164702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR8Wr-0004wC-Py; Tue, 09 Jul 2024 10:57:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756176.1164702; Tue, 09 Jul 2024 10: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 1sR8Wr-0004w5-NJ; Tue, 09 Jul 2024 10:57:01 +0000
Received: by outflank-mailman (input) for mailman id 756176;
 Tue, 09 Jul 2024 10:57: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=7TZB=OJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sR8Wq-0004vz-S0
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 10:57:00 +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 f6a87aa5-3de1-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 12:56:58 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4265b7514fcso20436205e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 03:56:58 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-427265d6ebasm9190805e9.41.2024.07.09.03.56.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 03:56: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: f6a87aa5-3de1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720522618; x=1721127418; 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=Klx7LL74vI+ro2X+0F2FCKOwfRQmfK+bzqc5UOyXUfI=;
        b=JmEOfTLdgx6WCs4haHieb9AmN+WdSER3FhqLSy8EOZK8gEmdBSAq9A4xvlDOtQ0N0W
         LcczH1AVePaiyKs4PbbG5dkMNjoSGIiHR4EjWWK5RYqxdkGwusiWT7S4uZW5SkwTap6i
         Q3l6Pc04MZuFDwdSeocIfw9LJ55VKDe102nnUC3G9+ITbG59YLEtpyiz9JAqTeTetDqa
         I+Q0uZsGyvIlLx7gtfv1r+jY8IIE0vu4R6TzK92hXAkAvoU9EkQ3Z5WhzjlnieENk1ay
         p8qiuFirHaBjiNCIZkAr1dFD46joCMRxlBiSFRbfq3V6rP0Ugs2byFjdGEZC6i/HUvJU
         L0SQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720522618; x=1721127418;
        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=Klx7LL74vI+ro2X+0F2FCKOwfRQmfK+bzqc5UOyXUfI=;
        b=If+0PD85d8LoCPKezW772eVdRZ4UBVjv1too/a/HN2EXZT6G923lBondWJy1g5uXcK
         F72vH/Fj6jVOz1At4t2sdM3yEFyaqfysFNnoJBbpgc8PIAxgQneXSDDAegCdSrORwmC7
         uOKwvzW3YAhJ/6gmw3FbuNhZVxAPpN8GeIK28vszgU9blv7gDNsAaWLXuYqLzzNgmBUY
         enL5FqZoxr8jNRKMs0+gRgitHL0e2w+pBZjNDdiUOPI0L82cW4ClWxjl8q90riFBgnOy
         RC7jJPADiYKaN6N/SZtMmR9PooQVt27CEiyhh56xzuNLVZGTmk5mJRnmFKubKCgqNRff
         kQnA==
X-Gm-Message-State: AOJu0YycsJZtMEZNASxP8nsLVtf2ndYb6/EmhOG1H5K4C8TJ2cv/v6P2
	+MdRSs0ehvlfr1wKBrWjHcwuShc521jHNVpRklGaUm3mbYSjgITOOvoLyy43m7Y=
X-Google-Smtp-Source: AGHT+IFsjfGVW0Vm93shA9/aWzaB+WbQjyYo3fTFdFeWdBc/0sYXDfKHQCMzls18ALDQXyYu8dpDUw==
X-Received: by 2002:a05:600c:44c6:b0:426:5fa7:b495 with SMTP id 5b1f17b1804b1-42672305df7mr15805555e9.15.1720522618313;
        Tue, 09 Jul 2024 03:56:58 -0700 (PDT)
Message-ID: <88db3cb6-2b7e-48b2-9bf4-d871067325a0@suse.com>
Date: Tue, 9 Jul 2024 12:56:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
 <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 09.07.24 09:01, Jan Beulich wrote:
> On 09.07.2024 08:36, Jürgen Groß wrote:
>> On 09.07.24 08:24, Jan Beulich wrote:
>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>    From the backtrace, it looks like the immediate case is just trying to
>>>> read a 4-byte version:
>>>>
>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>
>>>> int ucsi_register(struct ucsi *ucsi)
>>>> {
>>>>            int ret;
>>>>
>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>                                  sizeof(ucsi->version));
>>>>
>>>> ->read being ucsi_acpi_read()
>>>>
>>>> However, the driver also appears write to adjacent addresses.
>>>
>>> There are also corresponding write functions in the driver, yes, but
>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>> ACPI object evaluation, which isn't obvious without seeing the
>>> involved AML whether it might write said memory region.
>>
>> I guess an ACPI dump would help here?
> 
> Perhaps, yes.

It is available in the bug report:

https://bugzilla.opensuse.org/show_bug.cgi?id=1227301


Juergen


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 11:11:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 11:11:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756184.1164712 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR8kh-0008Tr-TS; Tue, 09 Jul 2024 11:11:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756184.1164712; Tue, 09 Jul 2024 11:11: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 1sR8kh-0008Tk-QY; Tue, 09 Jul 2024 11:11:19 +0000
Received: by outflank-mailman (input) for mailman id 756184;
 Tue, 09 Jul 2024 11:11:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XjVV=OJ=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sR8kg-0008Te-Ps
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 11:11:18 +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 f5f29012-3de3-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 13:11:16 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-58b0dddab63so7385989a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 04:11:16 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6bc88csm68439966b.6.2024.07.09.04.11.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 04:11: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: f5f29012-3de3-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720523476; x=1721128276; 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=TCPIa+nBkBA7H1LS1nEZrlSp0eiPLWH5zTkE9DbdCzU=;
        b=J0oTjDudIsboXK1HKEIzd4/8jhcU0YXnCqaFqBJqMRcI5k23Vl2p1GsEZ8ZZZ2kC18
         Hk8IVja6ZHHYyHVJ9oqpVn7Db7yoEIfGSnVZ8ra+/lm0P3a2x0PdRNnUIGP5EA2uo+Y1
         9cCrjc6qqvc92orywzDrFuPwWkPTqR0BYhEz0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720523476; x=1721128276;
        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=TCPIa+nBkBA7H1LS1nEZrlSp0eiPLWH5zTkE9DbdCzU=;
        b=D9pKiKNlOf1rXwJMc+If++MBtR2DAmVKndEITyJN29UYGy1UJghrk0DFYpdtWMTqxM
         q8KO1f2jaL/1Vf4u4XdH3T+grROzRZLTR9R5tuk2SPyXkzKw4F2NzO5sh9NtVrzTK6OA
         pTPJBOZjt5KgfkeVs9plSiVZmTsaUo6hBhLxdnQlvWyUvZ6jskVWLdWkhlE91ghubuOe
         M1s4z+X2EA5hd6YrPnVdpHQmkjm3tv1akRwfYAybDUuKdrdVby30OQiV3luJpbQ2WjKc
         WdwOX71yJF5yoLjDnaWpA0IBc4Ut+ww3o9FxqfUkjYi1qm0E8N7D4+OxJHNJwXdaRG1C
         wNSA==
X-Forwarded-Encrypted: i=1; AJvYcCVRKfwoBC6OZVBAd/ReK3lzBMJZHzxViqfwJ9hGazyAJR+aU+f4p5pyXJW52XMW+WAxtSScG/LXHBwzeoPVjtegIezpVNNrJzOSJJIJjkI=
X-Gm-Message-State: AOJu0YyeGu/hyMCCNGCF4fZO94qxymnbt4Zyki46xkBZQ7VaG5ooXl5/
	QQEejAjI2Odt4LQ+I1hLbDAmrTlGurwSWJ6lWR+EZyrjguV4stEfv42olIt5i0NCNg86vOnAB9c
	Z
X-Google-Smtp-Source: AGHT+IGqkMaZgEbWxqRzDejdWJMJSn44WLjEwgyR3Q91caQhCvTckAr7wpyho4o+V3gxi4I+gcsKOg==
X-Received: by 2002:a17:907:6d10:b0:a72:5c3d:4d08 with SMTP id a640c23a62f3a-a780b8856a4mr178181066b.61.1720523475870;
        Tue, 09 Jul 2024 04:11:15 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 09 Jul 2024 12:11:14 +0100
Message-Id: <D2KYO4GHH7VR.1XBQKN2LWF54P@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Xen-devel"
 <xen-devel@lists.xenproject.org>
Subject: Re: [RFC XEN PATCH] x86/cpuid: Expose max_vcpus field in HVM
 hypervisor leaf
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>, "Matthew Barnes"
 <matthew.barnes@cloud.com>
X-Mailer: aerc 0.17.0
References: <c0a9f52107e22957daaa5b1b0e05e4160db5f064.1720452354.git.matthew.barnes@cloud.com> <103d60b6-001b-43f0-bbff-a0806cebda73@suse.com>
In-Reply-To: <103d60b6-001b-43f0-bbff-a0806cebda73@suse.com>

I'll pitch in, seeing as I created the GitLab ticket.

On Tue Jul 9, 2024 at 7:40 AM BST, Jan Beulich wrote:
> On 08.07.2024 17:42, Matthew Barnes wrote:
> > Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
> > startup.
> >=20
> > There are efforts to support a maximum of 128 vCPUs, which would involv=
e
> > bumping the OVMF constant from 64 to 128.
> >=20
> > However, it would be more future-proof for OVMF to access the maximum
> > number of vCPUs for a domain and set itself up appropriately at
> > run-time.
> >=20
> > For OVMF to access the maximum vCPU count, Xen will have to expose this
> > property via cpuid.
>
> Why "have to"? The information is available from xenstore, isn't it?

That would create an avoidable dependency between OVMF and xenstore, preclu=
ding
xenstoreless UEFI-enabled domUs.

>
> > This patch exposes the max_vcpus field via cpuid on the HVM hypervisor
> > leaf in edx.
>
> If exposing via CPUID, why only for HVM?
>
> > --- a/xen/include/public/arch-x86/cpuid.h
> > +++ b/xen/include/public/arch-x86/cpuid.h
> > @@ -87,6 +87,7 @@
> >   * Sub-leaf 0: EAX: Features
> >   * Sub-leaf 0: EBX: vcpu id (iff EAX has XEN_HVM_CPUID_VCPU_ID_PRESENT=
 flag)
> >   * Sub-leaf 0: ECX: domain id (iff EAX has XEN_HVM_CPUID_DOMID_PRESENT=
 flag)
> > + * Sub-leaf 0: EDX: max vcpus (iff EAX has XEN_HVM_CPUID_MAX_VCPUS_PRE=
SENT flag)
> >   */
>
> Unlike EBX and ECX, the proposed value for EDX cannot be zero. I'm theref=
ore
> not entirely convinced that we need a qualifying flag. Things would be
> different if the field was "highest possible vCPU ID", which certainly wo=
uld
> be the better approach if the field wasn't occupying the entire register.
> Even with it being 32 bits, I'd still suggest switching its meaning this =
way.
>
> Jan

Using max_vcpu_id instead of max_vcpus is also fine, but the flag is import=
ant
as otherwise it's impossible to retroactively change the meaning of EDX (i.=
e: to
stop advertising this datum, or repurpose EDX altogether)

We could also reserve only the lower 16bits of EDX rather than the whole th=
ing;
but we have plenty of subleafs for growth, so I'm not sure it's worth it.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 11:18:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 11:18:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756190.1164721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR8rU-0001E6-If; Tue, 09 Jul 2024 11:18:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756190.1164721; Tue, 09 Jul 2024 11:18: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 1sR8rU-0001Dz-G9; Tue, 09 Jul 2024 11:18:20 +0000
Received: by outflank-mailman (input) for mailman id 756190;
 Tue, 09 Jul 2024 11:18: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=5/C9=OJ=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1sR8rT-0001Dt-Md
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 11:18:19 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f1620afd-3de4-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 13:18:18 +0200 (CEST)
Received: by verein.lst.de (Postfix, from userid 2407)
 id B800C68D13; Tue,  9 Jul 2024 13:18: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: f1620afd-3de4-11ef-bbfb-fd08da9f4363
Date: Tue, 9 Jul 2024 13:18:12 +0200
From: Christoph Hellwig <hch@lst.de>
To: Petr =?utf-8?B?VGVzYcWZw61r?= <petr@tesarici.cz>
Cc: mhkelley58@gmail.com, mhklinux@outlook.com, robin.murphy@arm.com,
	joro@8bytes.org, will@kernel.org, jgross@suse.com,
	sstabellini@kernel.org, oleksandr_tyshchenko@epam.com, hch@lst.de,
	m.szyprowski@samsung.com, iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Message-ID: <20240709111812.GB4421@lst.de>
References: <20240708194100.1531-1-mhklinux@outlook.com> <20240709111013.6103d3f0@mordecai.tesarici.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20240709111013.6103d3f0@mordecai.tesarici.cz>
User-Agent: Mutt/1.5.17 (2007-11-01)

On Tue, Jul 09, 2024 at 11:10:13AM +0200, Petr Tesařík wrote:
> Reviewed-by: Petr Tesarik <petr@tesarici.cz>

Thanks.

> 
> OK, so __swiotlb_find_pool() is now always declared (so the code
> compiles), but if CONFIG_SWIOTLB_DYNAMIC=n, it is never defined. The
> result still links, because the compiler optimizes away the whole
> if-clause, so there are no references to an undefined symbol in the
> object file.
> 
> I think I've already seen similar constructs elsewhere in the kernel,
> so relying on the optimization seems to be common practice.

Yes, it's a pretty common patter.  It's gone here now, though to not
add the struct device field unconditionally.

> > +{
> > +	struct io_tlb_pool *pool = swiotlb_find_pool(dev, addr);
> > +
> > +	if (unlikely(pool))
> > +		__swiotlb_tbl_unmap_single(dev, addr, size, dir, attrs, pool);
> > +}
> > +
> > +static inline void swiotlb_sync_single_for_device(struct device *dev,
> > +		phys_addr_t addr, size_t size, enum dma_data_direction dir)
> > +{
> > +	struct io_tlb_pool *pool = swiotlb_find_pool(dev, addr);
> > +
> > +	if (unlikely(pool))
> > +		__swiotlb_sync_single_for_device(dev, addr, size, dir, pool);
> 
> We're adding an unlikely() here, which wasn't originally present in
> iommu_dma_sync_single_for_device(). OTOH it should do no harm, and it
> was most likely an omission. 

I'm honestly not a big fan of the unlikely annotations unlike they
are proven to make a difference.  Normally the runtime branch predictor
should do a really good job here, and for some uses this will not
just be likely but the only case.


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 11:21:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 11:21:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756196.1164732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR8ur-0002ec-1E; Tue, 09 Jul 2024 11:21:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756196.1164732; Tue, 09 Jul 2024 11: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 1sR8uq-0002eV-TB; Tue, 09 Jul 2024 11:21:48 +0000
Received: by outflank-mailman (input) for mailman id 756196;
 Tue, 09 Jul 2024 11:21: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=XjVV=OJ=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sR8up-0002eP-MF
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 11:21: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 6d98d645-3de5-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 13:21:46 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-58c2e5e8649so8927628a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 04:21:46 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a8551a2sm69477866b.147.2024.07.09.04.21.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 04:21: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: 6d98d645-3de5-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720524106; x=1721128906; 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=QDxwZnYCeeM78g2sRc5CrBn5fI2fHmE2DMV+Jy4FBv4=;
        b=N+oQ3pZxJ2Rh9eU7E8yvmRD10s0yR+4FfLlYTVlJOeeWwgf5r8zcbRYVkZbSkcuhxd
         HGDmRePx4ZZXyf7pw6k0z9XNt7UCnhR8u7hdmX7U/VUeRW5mkWbmPZFOnJ//2Nhm9gL1
         SpVmVfKL7HqkS9DWuKl5sjUm1EeeD7e4RTTxI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720524106; x=1721128906;
        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=QDxwZnYCeeM78g2sRc5CrBn5fI2fHmE2DMV+Jy4FBv4=;
        b=wUldO8kMlmYdgMqiTAJNRYuiWJ5b7Fsz+8r29EpeTxIWZ50+H4OC5MPJhfI1b0feFY
         3/CJPKoxvx3Ta7xDwXZVLfnvL1qBeWkI8mXAI5mKoHHxjL0Yq30NUgUZaYCyI9TxY5Va
         NcX3EWsDFwiLJo1FigJeAYRGQ3tTE1PXxz/Xmt0i30mZOmawQykeelt0Lb+fg1EBVBE1
         6p2mg5MTKC6TWoIpSb1lO+VZe6eqxE+EFVYOQbAu3pXgVfZrtC9XZxCiHo80Esntk1Io
         V5+Se9WmCtJKRUkSo82KeMY9NwGKkLQBx7dyQLy0LJzk2cs2YMcijMOBJbqJjuXjNzG3
         Uz3g==
X-Forwarded-Encrypted: i=1; AJvYcCXqlgSjdcfcHcubakIW8ovNV3wNC7CTyKCul09LwYN7AgmSi/V2ZdqNHFJvO/AtaMWsbIJYfXvUwTwRDcQYz0cFhil76WG35/t9ZsqWxTE=
X-Gm-Message-State: AOJu0YxpjgAUnDm4nMBs6v2k+bfL/LYRdAE6tG18ZApVu6WBRgsNjMJJ
	Im5aUd7mfXWwXf6F6Ta9uEf0dYpp8Y74+kNt+zD1CdLIQTSMw5lAj09htmN1mrU=
X-Google-Smtp-Source: AGHT+IGa0+qlhPjVZlXKm/I7Ei0eNlJD4a/HvtxtqISoL/LBp40fqN/HTflYP2u94yxehpYuViA2HA==
X-Received: by 2002:a17:906:c151:b0:a77:a1f1:cfa0 with SMTP id a640c23a62f3a-a780d30b945mr168159266b.36.1720524106295;
        Tue, 09 Jul 2024 04:21:46 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 09 Jul 2024 12:21:44 +0100
Message-Id: <D2KYW63EJC2X.2BK8GEXKZW2N@cloud.com>
Subject: Re: [XEN PATCH v3 09/12] x86/mm: add defensive return
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>, "Federico Serafini"
 <federico.serafini@bugseng.com>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Cc: <consulting@bugseng.com>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.17.0
References: <cover.1719383180.git.federico.serafini@bugseng.com>
 <acb26329a980809dda100825f52b05d0cc295315.1719383180.git.federico.serafini@bugseng.com> <4cc9a5c7-df57-4a90-8164-cf3002596870@suse.com>
In-Reply-To: <4cc9a5c7-df57-4a90-8164-cf3002596870@suse.com>

On Mon Jul 1, 2024 at 9:57 AM BST, Jan Beulich wrote:
> On 26.06.2024 11:28, Federico Serafini wrote:
> > Add defensive return statement at the end of an unreachable
> > default case. Other than improve safety, this meets the requirements
> > to deviate a violation of MISRA C Rule 16.3: "An unconditional `break'
> > statement shall terminate every switch-clause".
> >=20
> > Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>
> Tentatively
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>
> > --- a/xen/arch/x86/mm.c
> > +++ b/xen/arch/x86/mm.c
> > @@ -916,6 +916,7 @@ get_page_from_l1e(
> >                  return 0;
> >              default:
> >                  ASSERT_UNREACHABLE();
> > +                return -EPERM;
> >              }
> >          }
> >          else if ( l1f & _PAGE_RW )
>
> I don't like the use of -EPERM here very much, but I understand that ther=
e's
> no really suitable errno value. I wonder though whether something far mor=
e
> "exotic" wouldn't be better in such a case, say -EBADMSG or -EADDRNOTAVAI=
L.
> Just to mention it: -EPERM is what failed XSM checks would typically yiel=
d,
> so from that perspective alone even switching to -EACCES might be a littl=
e
> bit better.
>

fwiw: EACCES, being typically used for interface version mismatches, would
confuse me a lot.

> I further wonder whether, with the assertion catching an issue with the
> implementation, we shouldn't consider using BUG() here instead. Input fro=
m
> in particular the other x86 maintainers appreciated.
>
> Jan

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 11:41:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 11:41:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756205.1164741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR9Dd-0006Gd-Ez; Tue, 09 Jul 2024 11:41:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756205.1164741; Tue, 09 Jul 2024 11: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 1sR9Dd-0006GW-CV; Tue, 09 Jul 2024 11:41:13 +0000
Received: by outflank-mailman (input) for mailman id 756205;
 Tue, 09 Jul 2024 11: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR9Db-0006GQ-LV
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 11:41:11 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 21dfb946-3de8-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 13:41:08 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2ee9b098bd5so42957451fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 04:41: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
 98e67ed59e1d1-2ca34e6a583sm1696600a91.17.2024.07.09.04.41.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 04:41: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: 21dfb946-3de8-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720525268; x=1721130068; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1DflZ0Naq4r0LPN/np7peLyersVhp8qXKUkUz7jyC/s=;
        b=brMLOpUPXKOPWul7NwRY/UZTnP+GsqcLQGP+RN37/85uXotOuHjh8h0Rv48ODENBbj
         1PwoNDYKZNEpMqTgpOzINKWRWxhd9lQDuAeks9GLwYrI0iAkm6W6Oog4L+jcVZ/QaRKK
         yrPTcqj2q+XzOG0PJWpq13yJR4RnhCjdfv1UfH77NT9mZY6tL92uwXK9M8WmD4WYAB1+
         HmOrCyxhkHalgq02C9yvd2IY9+MGrYx8VycBio95CRZZ5IMJ6WgOtHfBSmxts3S+DQAe
         0JjhceTlxwuu9+3jUuwRcoP/4d8guIr/YocfqZ2DQ8AzjcPlC0izxYgkBAN9c3hRdRip
         WQaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720525268; x=1721130068;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1DflZ0Naq4r0LPN/np7peLyersVhp8qXKUkUz7jyC/s=;
        b=VjtUrOAfL8Kgp/SrXNOPRAdMZ2xBw990QaeO6xWBuM532VL5Mxv0D1RHGsuC5cHFwO
         jyEnbQU6XyTLcOIDoMaFvjLfk6jBnJp1MTxu2cfeYSWhCO5a57pgNw1VvW/FboTM8jO6
         +ZEImsigZpHyzB/RuDcjDT1KfUDpP8UR0DrcfXlR/PQK76rOProX7lEVk+4A/cYjkr8z
         1uVtlm+E+H4dC9Dh7TGc/zwQV7/Xif9MseVj1R1uciYfjSOkTqHvNdibFyhnYIO/0fkw
         jXfHrrHsoKMRNmFHK3D9GUFPUjPgK4eFndnMjrbB9T9Czx/wUOMfcEK8EpvXWzLJ1o9B
         fewQ==
X-Forwarded-Encrypted: i=1; AJvYcCUgzSs3mNwHVkMTXn9VwY94m7AbuNgQ95S8xV37WDooHCIrdoiSzDMrYUmBM745FxvGy+f3wTy/ML9g9+SdccpEHYnKVhYWYGd6Z703PfA=
X-Gm-Message-State: AOJu0YwMq+bFV6oNIqTvBe4TCQelY2McwVTrHw5759YmiMh3ZowvUUtJ
	BdfLmbvGLVB3APpZbT3o++em4/+5qF5gGgzv0Fxaqn6mlMQgLcZYVwF4HtVlyQ==
X-Google-Smtp-Source: AGHT+IEeFwBzK+hNvLsDIVQSx/BNZSQp/9qYE44qfIAh38PfTIesVadGDoTRU/YaBbS8T/UFCz1sLw==
X-Received: by 2002:a2e:c4a:0:b0:2ec:3d74:88c8 with SMTP id 38308e7fff4ca-2eeb30e3a81mr18785641fa.18.1720525266719;
        Tue, 09 Jul 2024 04:41:06 -0700 (PDT)
Message-ID: <1536da44-fd30-4363-b716-802e0c009d44@suse.com>
Date: Tue, 9 Jul 2024 13:40:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 09/12] x86/mm: add defensive return
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: consulting@bugseng.com, xen-devel@lists.xenproject.org
References: <cover.1719383180.git.federico.serafini@bugseng.com>
 <acb26329a980809dda100825f52b05d0cc295315.1719383180.git.federico.serafini@bugseng.com>
 <4cc9a5c7-df57-4a90-8164-cf3002596870@suse.com>
 <D2KYW63EJC2X.2BK8GEXKZW2N@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <D2KYW63EJC2X.2BK8GEXKZW2N@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 13:21, Alejandro Vallejo wrote:
> On Mon Jul 1, 2024 at 9:57 AM BST, Jan Beulich wrote:
>> On 26.06.2024 11:28, Federico Serafini wrote:
>>> --- a/xen/arch/x86/mm.c
>>> +++ b/xen/arch/x86/mm.c
>>> @@ -916,6 +916,7 @@ get_page_from_l1e(
>>>                  return 0;
>>>              default:
>>>                  ASSERT_UNREACHABLE();
>>> +                return -EPERM;
>>>              }
>>>          }
>>>          else if ( l1f & _PAGE_RW )
>>
>> I don't like the use of -EPERM here very much, but I understand that there's
>> no really suitable errno value. I wonder though whether something far more
>> "exotic" wouldn't be better in such a case, say -EBADMSG or -EADDRNOTAVAIL.
>> Just to mention it: -EPERM is what failed XSM checks would typically yield,
>> so from that perspective alone even switching to -EACCES might be a little
>> bit better.
> 
> fwiw: EACCES, being typically used for interface version mismatches, would
> confuse me a lot.

There's no interface version check anywhere in hypercalls involving
get_page_from_l1e(), I don't think. So I see little room for confusion.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 11:43:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 11:43:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756211.1164752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR9G0-0006sz-10; Tue, 09 Jul 2024 11:43:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756211.1164752; Tue, 09 Jul 2024 11:43: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 1sR9Fz-0006ss-UT; Tue, 09 Jul 2024 11:43:39 +0000
Received: by outflank-mailman (input) for mailman id 756211;
 Tue, 09 Jul 2024 11:43:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sR9Fy-0006sk-IM
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 11:43:38 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ad86ba6-3de8-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 13:43:37 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3679df4cb4cso3076171f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 04:43: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
 d2e1a72fcca58-70b43967345sm1589396b3a.112.2024.07.09.04.43.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 04:43: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: 7ad86ba6-3de8-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720525417; x=1721130217; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7u26yw/8x8iuye2JcguQ6wlemP77U9t/sOaudZYZ2f8=;
        b=CE26bQmNSLCMHI5balvc0FEFsv5bI+ohHh32RVyVGCLRkckWLBHQWyzMRHlAuxFe9I
         xdCx6NwOQH8UaKZVBQBGL4tcAVV4A5TmKJjLwXQFt2GKh5CMFhkA/qRo7WERWo4wWmHB
         w6xGi+t1GJne8xDeAeAzsoGXeoq2rqQ/ZIt3NfB9wuk/b5Cvkltk5t3aurKI3TWrKAen
         RXQ9W0jBWuxog918RULMvA1sinT98MmcKxM1xX2rkXMssHphzWbCH8d4Yq4J2ZmPpa9J
         V7xi1w8fttTzGJoFGRq8zg9qLRKijGUKtAoxXQWJKaNSu48w18oEj84hkI0IJJtxOeXB
         695Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720525417; x=1721130217;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7u26yw/8x8iuye2JcguQ6wlemP77U9t/sOaudZYZ2f8=;
        b=m7/HsIlTJ8uwroMVN2i39mE64glzCbJkLu8Qe7Qk8R5UWGF40SGnzXZaCmk1sCz0yN
         +pmSDnJ+K5Ua2fxTadUR3AAxzNzaKqQgqqf2rtXoRKGPoKibsxMzKBDMKSZjETRA9aqp
         EF0q3ljSVPJsUwS3xULWG+rrv5M1BAimGPEWYlj7vUSjSZDlUMLkmQC8pUFrWsWjqjFv
         y+l78IJj9y1g/H70kCTDOhXuCqGTA5pAKc51qBdvLuX+qdFoiEm19PHLFQk+WxFHq3NM
         BS1Nr0XGVwKdKeQU3eUWmnEJ+3YIGbq08Zk2Ubf+Ld4tjq7EloG/ROM+CqUtVNsTwze5
         leOg==
X-Forwarded-Encrypted: i=1; AJvYcCWuUEtSeLDBy69dBuxB2riyk/Go9lvpESDkuumHNjjCx0t6Rf2dEDH1pIDCGxLPvnolGYU3HJQSveOOriTHWUhvdkSSCdxyj9KuacCksZU=
X-Gm-Message-State: AOJu0YxymgCnnHbkNHBjSh95kCrl7ybkGo83mcQqZLxPrCGPFBe9qTDI
	uTjU04SdaNEGFxbXcx5tCER6Yb8aovtPirj4nqejyF5Guj3hupMnfeJ81U1EOw==
X-Google-Smtp-Source: AGHT+IE+N2OIa0/De/AR/cXvNNNcQ/TAKjzj8eVedZKAtPv3HliYzWBbWLwK8jReJAS6wU6u1FjiiA==
X-Received: by 2002:a05:6000:2c5:b0:367:9268:bfca with SMTP id ffacd0b85a97d-367d2e687a6mr2323873f8f.22.1720525416970;
        Tue, 09 Jul 2024 04:43:36 -0700 (PDT)
Message-ID: <a85777f7-b892-4363-9e65-f7e9f0516682@suse.com>
Date: Tue, 9 Jul 2024 13:43:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH] x86/cpuid: Expose max_vcpus field in HVM
 hypervisor leaf
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Matthew Barnes <matthew.barnes@cloud.com>
References: <c0a9f52107e22957daaa5b1b0e05e4160db5f064.1720452354.git.matthew.barnes@cloud.com>
 <103d60b6-001b-43f0-bbff-a0806cebda73@suse.com>
 <D2KYO4GHH7VR.1XBQKN2LWF54P@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <D2KYO4GHH7VR.1XBQKN2LWF54P@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 13:11, Alejandro Vallejo wrote:
> I'll pitch in, seeing as I created the GitLab ticket.
> 
> On Tue Jul 9, 2024 at 7:40 AM BST, Jan Beulich wrote:
>> On 08.07.2024 17:42, Matthew Barnes wrote:
>>> Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
>>> startup.
>>>
>>> There are efforts to support a maximum of 128 vCPUs, which would involve
>>> bumping the OVMF constant from 64 to 128.
>>>
>>> However, it would be more future-proof for OVMF to access the maximum
>>> number of vCPUs for a domain and set itself up appropriately at
>>> run-time.
>>>
>>> For OVMF to access the maximum vCPU count, Xen will have to expose this
>>> property via cpuid.
>>
>> Why "have to"? The information is available from xenstore, isn't it?
> 
> That would create an avoidable dependency between OVMF and xenstore, precluding
> xenstoreless UEFI-enabled domUs.

Right, but that's a desirable thing, so still not "have to".

>>> This patch exposes the max_vcpus field via cpuid on the HVM hypervisor
>>> leaf in edx.
>>
>> If exposing via CPUID, why only for HVM?
>>
>>> --- a/xen/include/public/arch-x86/cpuid.h
>>> +++ b/xen/include/public/arch-x86/cpuid.h
>>> @@ -87,6 +87,7 @@
>>>   * Sub-leaf 0: EAX: Features
>>>   * Sub-leaf 0: EBX: vcpu id (iff EAX has XEN_HVM_CPUID_VCPU_ID_PRESENT flag)
>>>   * Sub-leaf 0: ECX: domain id (iff EAX has XEN_HVM_CPUID_DOMID_PRESENT flag)
>>> + * Sub-leaf 0: EDX: max vcpus (iff EAX has XEN_HVM_CPUID_MAX_VCPUS_PRESENT flag)
>>>   */
>>
>> Unlike EBX and ECX, the proposed value for EDX cannot be zero. I'm therefore
>> not entirely convinced that we need a qualifying flag. Things would be
>> different if the field was "highest possible vCPU ID", which certainly would
>> be the better approach if the field wasn't occupying the entire register.
>> Even with it being 32 bits, I'd still suggest switching its meaning this way.
> 
> Using max_vcpu_id instead of max_vcpus is also fine, but the flag is important
> as otherwise it's impossible to retroactively change the meaning of EDX (i.e: to
> stop advertising this datum, or repurpose EDX altogether)

Hmm, re-purposing. Very interesting thought. I don't think we should ever do
that.

> We could also reserve only the lower 16bits of EDX rather than the whole thing;
> but we have plenty of subleafs for growth, so I'm not sure it's worth it.

And I was only mentioning it, without meaning to suggest to shrink.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 11:48:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 11:48:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756219.1164761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR9KR-00083U-HI; Tue, 09 Jul 2024 11:48:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756219.1164761; Tue, 09 Jul 2024 11:48:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR9KR-00083N-Ec; Tue, 09 Jul 2024 11:48:15 +0000
Received: by outflank-mailman (input) for mailman id 756219;
 Tue, 09 Jul 2024 11: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=7aM/=OJ=outlook.com=mhklinux@srs-se1.protection.inumbo.net>)
 id 1sR9KP-00083H-VI
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 11:48:14 +0000
Received: from BL0PR05CU006.outbound.protection.outlook.com
 (mail-eastusazolkn190110000.outbound.protection.outlook.com
 [2a01:111:f403:d100::])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1dfed094-3de9-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 13:48:12 +0200 (CEST)
Received: from SN6PR02MB4157.namprd02.prod.outlook.com (2603:10b6:805:33::23)
 by MN2PR02MB6816.namprd02.prod.outlook.com (2603:10b6:208:1d9::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Tue, 9 Jul
 2024 11:48:08 +0000
Received: from SN6PR02MB4157.namprd02.prod.outlook.com
 ([fe80::cedd:1e64:8f61:b9df]) by SN6PR02MB4157.namprd02.prod.outlook.com
 ([fe80::cedd:1e64:8f61:b9df%5]) with mapi id 15.20.7741.033; Tue, 9 Jul 2024
 11:48: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: 1dfed094-3de9-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Xy8oFcyiAPOtVf9ex4in9ZEyq0saxjlgk3qxw+XXOAvroybMaSwgFMsgjnxcUromWLUygSkLlevIlK4S0qsEBs7lESLHdr23hAWxOsudoq1rycbvMCLuF5/rSpi7J2Flmd+dQ/+KuXkk5j8SFV8ZcrSHF7K8lLXV9WpOV+VHZvMuMqTS0KXLDVjPu9QCtzPR68rqexTn03kHELrR85E8FrexxKdO5DV1wrU7LJ3/bqwrwe6hN7i/Ib4iWZuQ6PQXYIhwq42kKw0BWEDIUHz+/btpAO8MKNR54qZI2Iijbzizux9iTf/e2BN43UssuINI5xJ4u9exY/OtkzY0cRpIQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W6GtlEgdUutsu9B8/TLjEoU4TBoxmCXMqCs2HKNbgq8=;
 b=E4ibLt3OhB8lfjTwEvfS3LZX5+rFTw0w4ObEV7+d8nDbxEErua2R5CbHeqLZBoQhGY89SqEJhJg7t5Q3ZpB4xARYb4IfewPne8PMU8GqDKDkZq9A5vKKq9Gp6AHR+mjN6RTkvHf/l4YlsfG1pYAnFZ3iAJPCLYWU9/rntbRVFZ6N1O/1ES6YfErLmJwK0gXsaNSwflFS66UgH1/ks+AocmD/nqStELPmYdvlKFXuUDzh20y1ZiJ+0ku7vbTdc2BHc+aK11er5iAafjg5PEA/6D5VWucxPJ6nRCXZg9lRHB2q0PjcYYaAQrsyTxFj7Z49sS1PTV1a8IiYqCgIfWgOVA==
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=W6GtlEgdUutsu9B8/TLjEoU4TBoxmCXMqCs2HKNbgq8=;
 b=lfF07HEUitjC1WBH/bschFn2zkiMPMG6RLllqMYEPwdBkZrNgwSeUJoZ0uYPhbzjy/9YdF7mCX91bWm0nTNWfsdj/L+Rlm6QMXhWFrM4fXSQePR7waBzwX3XJ3o9nsufIaX2WRQ0QlfKTfDl2QR59DX3YZ/y1uwaSNWa59O4hBvOWKbotEeGs8wa3bGNbxGtfN/fOhb2jrSxqmy5SMWMY22hAAFLgL0iEwS6kvpbdI/ezXJhZvVWas1QHIOeH7VifI7NZ0F+bC1YDUDISW8fXxf6M3EtpSTXlGSACGmj/FDhBosoZpjCD7x0FMEP208dePpp1jXk7sp34wFbVI1C6Q==
From: Michael Kelley <mhklinux@outlook.com>
To: Christoph Hellwig <hch@lst.de>
CC: "robin.murphy@arm.com" <robin.murphy@arm.com>, "joro@8bytes.org"
	<joro@8bytes.org>, "will@kernel.org" <will@kernel.org>, "jgross@suse.com"
	<jgross@suse.com>, "sstabellini@kernel.org" <sstabellini@kernel.org>,
	"oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>, "petr@tesarici.cz"
	<petr@tesarici.cz>, "iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Thread-Topic: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Thread-Index: AQHa0W7SFxxRPYjEqkS2vOXnJ50UvLHt7teAgABXtOA=
Date: Tue, 9 Jul 2024 11:48:08 +0000
Message-ID:
 <SN6PR02MB41571D61C2DE0D914D8B0923D4DB2@SN6PR02MB4157.namprd02.prod.outlook.com>
References: <20240708194100.1531-1-mhklinux@outlook.com>
 <20240709062555.GB16797@lst.de>
In-Reply-To: <20240709062555.GB16797@lst.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-tmn: [HVTDK+uCEaeHZgfZn7MwsYzJS7qXaDgz]
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SN6PR02MB4157:EE_|MN2PR02MB6816:EE_
x-ms-office365-filtering-correlation-id: 6080a5e0-45ff-4c50-4210-08dca00d00b6
x-microsoft-antispam:
 BCL:0;ARA:14566002|8060799006|19110799003|461199028|3412199025|440099028|102099032;
x-microsoft-antispam-message-info:
 vo7tbdZjjqEoerB0jtj9RnHvA+bLylOEahcBKDanFMeYxpDfmYrmHnvvU/XrNxve2JJgNRIZu9Q3Kl6VDyPjGBTsh43v5lOBhE09NJEiMW5oUWwT/Sb69QMCUJqAYz3jV1zq+tjGk17kLTr0td3/S3H1s9JC9c+lxZQD09AnxYwKDGRw5OcPaOT6aYPCjchVrYxgXEshQtreBJQcyrLZFnXEqNA6qAjypAMy6H8qu0dfgoEvaV4vLwelSyZcArjsn/j5zunRuqeaMN3KsqpUp5wQG6PolDkEMtQMJUi54OWOKYw9c18EIlCOoQg78Dd1yhlPNg2pCps8PvFRQtMr3pBMAkQVOnsEAMYz9OGjAZQ0tFE2V304P124gBOLciMQiJ3Ht0pTIN3Cfissq0vFing7jDmofhVE6qU1ZDUTfEOZEOU//Iw3JLBdSFgK1rVD2sbHOoCLOJAfZ3Uyxb4qD83xxng7NRYGqj9dbqGBTiGz4qb9f4FOZp8it51RimEkoOZ55o6T0rkbib4GUw2DDmI6RE5EsrAIQAd9byLBVxigLBlaJLfIQ5GJJoW54YA4v9AJFZPS1F+57qMMZr7oOPBp0m9enT7G6r5Wl3wfEeQMyKPLMFzhLkDZg3d+Y6iWPdc/RdoMzlWYp2clLEjyaA==
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?IxKq7bLAfKKaosF7QxAVSz56hBFpDS4KVcL2FUhg0lKWptL8tw11srjR7nCs?=
 =?us-ascii?Q?h9UfYnpK92LqF0hztu9yxMDE8jjHTk1cSyLhJViw4lAnnOe/XNEgQtOjzAcw?=
 =?us-ascii?Q?YQ9Y4p5XMgVT4YDNeiHVNBTBwJyry/QPQT/f+O84bawXyC4av4XFLViWscJl?=
 =?us-ascii?Q?Pw/mm3+IDQV7k/g8IQVrkXxjqbTAEM0Um/cYWeo7HWq6Qb16bKcN1Hqarnc4?=
 =?us-ascii?Q?vuOUP8cx5LVtPdQCzZvaa5y35VpGWET4bH74qpmWvnuxyAVb1mB+nbAhobb6?=
 =?us-ascii?Q?VshQuTJU/JqQmuCF7FIpaW2hEwVGKDsSKxjqkYgiuTbCtTAX2O9Hbi6xNyhG?=
 =?us-ascii?Q?TJJWtkNkghh9mgIzOr+rfB2lVwDlBJ1WMR0xdJZT3ZW1W+qB9q3om434+fZF?=
 =?us-ascii?Q?hqwHq7yIg9h0xi2Cx3I3AR8GlPE6L05RZdLOh2VRASAJtOgo3zlOWJ+w24hY?=
 =?us-ascii?Q?CxR068/UC6IJGPJgjIEGDovbvFfwICLVq71jGPNyeebuhMPOsSQhFahwfco3?=
 =?us-ascii?Q?nqe3judH+dP83HFfdvZTAIvdnpAfGmh8frcJ3IqMDUAL3u+GAi8Xyw3GJtXp?=
 =?us-ascii?Q?/aIIVcr3lo5dkbXf5hdJwpfejkk02UmcQInGYh6jfOeAyCPj3oT/5RFFRHwI?=
 =?us-ascii?Q?QsWhJdNZGe5HL0Dv4T9SMnZMoFsJ19ZTpbmvqQ6QcZ7sfBna4htWbeeHMdMT?=
 =?us-ascii?Q?70g0PAkJqbpmaK3utF4rUIFuta2q+E1TZ276aS+Ek/waac4c33+zvuzGvhvh?=
 =?us-ascii?Q?gnJDAWtR5bZK8SmCDYeipqCKCkeA9lgCTn9yClcsukxZINwWLPQoyk3I6tHh?=
 =?us-ascii?Q?beV9TJleEP21agKDP++CEwsTTa3LDHBu4wH4dV07hH9gclZC4+X1boeuftj0?=
 =?us-ascii?Q?QbEUcQ5m1KDFUQKk7Tn6Xh+Yv+tAaDRNF7Wel2A9lT5J3lLOqs/grgB4mA0q?=
 =?us-ascii?Q?xySRTDAflmikhKKodl3o10ykQWfxOda4ixJ/cihFbRjerjLSOlw/ZcnZivwL?=
 =?us-ascii?Q?z1ExBOj/BGRkHgITAeAbQgLW6klD6jt/DwL0DM2eBmi0mW7wfV6TM5tKuub6?=
 =?us-ascii?Q?E8GLaRvjD5BxsHSZVlM/OVlMmDtNRnS8g5B+GL6rYgwe18+cFTewKcduL3rU?=
 =?us-ascii?Q?fCJhbsLblS5AfySC7wapIMhnx43mzdXqzCdHeBRRscCF5ixb3ZRiChJGnSo7?=
 =?us-ascii?Q?c1QUjBMn6XUoSFXegFzKQnuKOhiy0vtnZ1xKoWY7Uxhp4ObDMnMo4iPIGug?=
 =?us-ascii?Q?=3D?=
Content-Type: text/plain; charset="us-ascii"
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: 6080a5e0-45ff-4c50-4210-08dca00d00b6
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jul 2024 11:48:08.6511
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR02MB6816

From: Christoph Hellwig <hch@lst.de> Sent: Monday, July 8, 2024 11:26 PM
>=20
> Hi Michael,
>=20
> I've applied this, but I've made a few changes before that directly as
> we're getting close to the end of the merge window.
>=20
> Most of it is very slight formatting tweaks, but I've also kept the
> dma_uses_io_tlb field under ifdef CONFIG_SWIOTLB_DYNAMIC as I
> don't want to touch the device structure layout.
>=20
> Let me me know if this is ok for you.  If I can get reviews today
> or tomorrow I'd also love to add them, but given that all this has
> been extensively discussed I went ahead with applying it.
>=20
> Thanks for all your work!

Your tweaks look fine to me. Evidently I misunderstood your
preference in our previous exchange about #ifdef vs. IS_ENABLED()
in swiotlb_find_pool(), and the effect on dma_uses_io_tlb.
Reverting to the #ifdef version and leaving dma_uses_io_tlb
unchanged is my preference as well. The #ifdef version also had
#ifdef CONFIG_SWIOTLB_DYNAMIC around the declaration of
__swiotlb_find_pool(), but that doesn't really matter either way.

Michael


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 11:51:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 11:51:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756225.1164771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR9NG-00015O-UF; Tue, 09 Jul 2024 11:51:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756225.1164771; Tue, 09 Jul 2024 11:51:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR9NG-00015H-R4; Tue, 09 Jul 2024 11:51:10 +0000
Received: by outflank-mailman (input) for mailman id 756225;
 Tue, 09 Jul 2024 11:51: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=5/C9=OJ=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1sR9NF-00015B-QQ
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 11:51:09 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 866935f4-3de9-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 13:51:06 +0200 (CEST)
Received: by verein.lst.de (Postfix, from userid 2407)
 id C293268BEB; Tue,  9 Jul 2024 13:51: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: 866935f4-3de9-11ef-bbfb-fd08da9f4363
Date: Tue, 9 Jul 2024 13:51:03 +0200
From: Christoph Hellwig <hch@lst.de>
To: Michael Kelley <mhklinux@outlook.com>
Cc: Christoph Hellwig <hch@lst.de>,
	"robin.murphy@arm.com" <robin.murphy@arm.com>,
	"joro@8bytes.org" <joro@8bytes.org>,
	"will@kernel.org" <will@kernel.org>,
	"jgross@suse.com" <jgross@suse.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>,
	"oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
	"petr@tesarici.cz" <petr@tesarici.cz>,
	"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Message-ID: <20240709115103.GA7662@lst.de>
References: <20240708194100.1531-1-mhklinux@outlook.com> <20240709062555.GB16797@lst.de> <SN6PR02MB41571D61C2DE0D914D8B0923D4DB2@SN6PR02MB4157.namprd02.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <SN6PR02MB41571D61C2DE0D914D8B0923D4DB2@SN6PR02MB4157.namprd02.prod.outlook.com>
User-Agent: Mutt/1.5.17 (2007-11-01)

On Tue, Jul 09, 2024 at 11:48:08AM +0000, Michael Kelley wrote:
> Your tweaks look fine to me. Evidently I misunderstood your
> preference in our previous exchange about #ifdef vs. IS_ENABLED()
> in swiotlb_find_pool(), and the effect on dma_uses_io_tlb.

Actually I actively mislead you.  Yes, I prefer the IS_ENABLED, but
I missed that it would require make the field available unconditionally,
which is not worth the tradeoff.  Sorry for that.



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 12:21:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 12:21:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756241.1164781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sR9qg-0006Mh-7Y; Tue, 09 Jul 2024 12:21:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756241.1164781; Tue, 09 Jul 2024 12: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 1sR9qg-0006Ma-53; Tue, 09 Jul 2024 12:21:34 +0000
Received: by outflank-mailman (input) for mailman id 756241;
 Tue, 09 Jul 2024 12:21: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=Q52q=OJ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sR9qe-0006MU-8r
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 12:21:32 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20619.outbound.protection.outlook.com
 [2a01:111:f403:2414::619])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c499d2dd-3ded-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 14:21:29 +0200 (CEST)
Received: from SA9PR13CA0078.namprd13.prod.outlook.com (2603:10b6:806:23::23)
 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.7741.35; Tue, 9 Jul
 2024 12:21:26 +0000
Received: from SA2PEPF00003AEB.namprd02.prod.outlook.com
 (2603:10b6:806:23:cafe::86) by SA9PR13CA0078.outlook.office365.com
 (2603:10b6:806:23::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.19 via Frontend
 Transport; Tue, 9 Jul 2024 12:21:25 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF00003AEB.mail.protection.outlook.com (10.167.248.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Tue, 9 Jul 2024 12:21: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; Tue, 9 Jul
 2024 07:21:24 -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, 9 Jul
 2024 07:21:24 -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; Tue, 9 Jul 2024 07:21: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: c499d2dd-3ded-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lQf5pg2RsMQ4xeh4p7PAhnU97NjdubcyP5Ymh2NUapZsApKXGMOcA7Ia6jsCtKnN8pcjlceQ2Ew1Sr2cPlNS57R/RmgORdRVLCAjmxB+efQIq1nzvZTrlSIlybujqGa3hBCes9kKLPnQMvsqBxBzPEqQo235CnJOGEZQGEcbYFyYncs0oV9/bYzHWdZ0v3E+CY+C8m54+BPHQJhkSEsszFbasVU7h1UKHUD5EdEku5RJyNyjiOfFYqhgdoNTV7mgbFcsmsvxhOPypVFUxIqxWX92k2VMq1aogsAAnPrBZOdlTx8C28cEkVLX1rxLjU8/e5fbjpOFhi+lTS/Ok5jp+Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lSPIfzwGNJX9cV8n4c4vAotsL0TGycWT9xwxmaklVSo=;
 b=Zon31/1tNVZ5sEpbyFVu1cCnyErDszxVNbAc31nvSJKhT2WM+yAjx1BGju5cbTaPvU9hSCvF943kyjty38Qu9b9hZV42XCo/xVjMZfkV7QGlbIMEJxeRL7AQ0QGJgPBUA1UpDAvdEy1tLNWUmHGhydyuoL3J536FDrWEcxcUEynLoDhpgLKabyLUTCuaDJjCX/8EXH3l2QHaBapdClCnLus6KCQfDKchzMfb5EbVtE2zT/j9XbrAWeylSxcSlbhhL3sVanZ4MOWxM4TfrMW/4dW97vEJTv3bm17eVtpHZxcO506SdfdmrNyVmraj8j5W+xsWfGjZH/UnqXBwsCMvXg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lSPIfzwGNJX9cV8n4c4vAotsL0TGycWT9xwxmaklVSo=;
 b=HuvxnLkgSxACugGpqlfD3WAmrChFiL4hvW1xRVf5eKUbmVZ1JxPhsnGCOS/TpUe2r5j+Sh/M/lSnOuwbNDyYJGhvl7N3Zrq9bfZjZQYOkYJjqgTtKK3x8ZBT4jK4p8Va12+GDDOuopL/UvHII2U3fb/qpnio2TcDfvUt7mEvaT4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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 for-4.20] automation: Use a different ImageBuilder repository URL
Date: Tue, 9 Jul 2024 14:21:17 +0200
Message-ID: <20240709122117.48051-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003AEB:EE_|CH2PR12MB4230:EE_
X-MS-Office365-Filtering-Correlation-Id: 22a15cae-e611-4af7-4fb5-08dca011a6de
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?uXmAkYxkp1OqTZDpipjyYDc/RrxZXHYFGR0/cN6EcCmSF20OdV4cegjlbVHU?=
 =?us-ascii?Q?BzxkI/TeI1Y4B5t95uhWTBKkCdwKW4uG37iw1/awLnhMhorfOn8gYGtIkSHr?=
 =?us-ascii?Q?0tCZoqU45HiH4oNJ52Nf1BviO2jk/L9eCqDq1EXzEqo3CUnaVw1U3itW9YF2?=
 =?us-ascii?Q?wEQx/hjFeV8qDcdf/GzZ0aF+SMnyD+4Old8VGCJJAQpzVGBUoGoYwdD5yeB2?=
 =?us-ascii?Q?UCohApUJKbTgLEZzY483QDxdN5Xd61ORH5JnAOARXFrEID4FQq5uL5ybpfJr?=
 =?us-ascii?Q?Fya9zT+6g4RTjc3UzTbFM6q5fHxVkjhOSLULiudUJt2ZyI/6kal/viKJgE2W?=
 =?us-ascii?Q?MmE0dZ0/oLJ7ENSXMNeSqRQbzJ15WUripCuRiGzd20hHEVUvgkoBdnIiKweA?=
 =?us-ascii?Q?Ns0ZQzBIXmPscjwFfFaKRFyRRsgiI2na0U6do8s4S2cjQ7HiWQz/WOsNKjP2?=
 =?us-ascii?Q?2dkMDd69AVVJ7SbYP3YP3YOnjBR/H9CKuLAfpH2vO98jeuXHU+MJ+mkD2hiL?=
 =?us-ascii?Q?pCManl9+J8rQiKdJMgZRhnZFgVobcT5B3AP86B4g+d86U/cKQ3BQaPEqKt/3?=
 =?us-ascii?Q?25oQ250yekYKRdzzDYkWVjGjB9UhSKV3fadiboS6uZzohLyC2W3oMuJu50Gy?=
 =?us-ascii?Q?kJnMCSxN9e4m4oZA8ma+l2M5/DTSPF/O/X6BZtPZOyQs+lqwFk2XxPEKQB4A?=
 =?us-ascii?Q?b2qa9sj8zc0N0alvJSPQ2ioUGl/4lztNvpxGtZ65r8KerDlkWvbFrOFodTXY?=
 =?us-ascii?Q?37rmJE03L1ziNTg1LCjs8L8NidCeUfqu54MDaFHvAuUarhCJX18W2+1MPTI0?=
 =?us-ascii?Q?jYDB6HEeSrP41xtDBiDtuVpveEtlH1oyB4pg6+ajBU7d9dCGlA+76wXtSl3U?=
 =?us-ascii?Q?w25iPqSxNILfsWwO4KQF7xxYzcTyaxRRqCttD+H9OqxaYK40fO69Pu11bO4P?=
 =?us-ascii?Q?eMyPJIcNCNCfFcYXXNQarsgKUx7/HNs6KxfVt4GfuHZ4OkXeI68yIlvCbxSY?=
 =?us-ascii?Q?PdOJYmjhK6chYN+bRV543lkfal2gHv992mj7bPkv4oTrkqJvKRNCxopbe7os?=
 =?us-ascii?Q?BPFU87uUl41lj6ZvsEUjWOoVg1XiKmINSwba1byHg26oB8CgKJAaoCLTVM1K?=
 =?us-ascii?Q?v/kTXjaxv4CA+DvTXCeMEAMSrwh1W1Ukj0PIaRFFLMTz2/rHaor0YiDdPtj+?=
 =?us-ascii?Q?v/YagdXgyXP18vu+CHZUFPbmteTm+ST4XFgWAMrWlNogD/2N33cRRnps0whZ?=
 =?us-ascii?Q?cHid/87bkJhUtoIFJHwhNvSXXqA27FnLvizUG5KajiQyl+d+hShhxeuEHxyX?=
 =?us-ascii?Q?9MdfU1+U5H6AofJw4waKgZ1HPKhHfI2j5gZbWWv4wILOl0alDv+nW0RBEp1p?=
 =?us-ascii?Q?GIHWhQ1I/32nWMWsnbmyLxKxsMAKzNmYWRO2u2hw2tgXDZAQbA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2024 12:21:25.3305
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 22a15cae-e611-4af7-4fb5-08dca011a6de
X-MS-Exchange-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:
	SA2PEPF00003AEB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4230

Switch to using https://gitlab.com/xen-project/imagebuilder.git which
should be considered official ImageBuilder repo.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 automation/scripts/qemu-smoke-dom0-arm32.sh       | 2 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh       | 2 +-
 automation/scripts/qemu-smoke-dom0less-arm32.sh   | 2 +-
 automation/scripts/qemu-smoke-dom0less-arm64.sh   | 2 +-
 automation/scripts/qemu-xtf-dom0less-arm64.sh     | 2 +-
 automation/scripts/xilinx-smoke-dom0less-arm64.sh | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scripts/qemu-smoke-dom0-arm32.sh
index d91648905669..5b62e3f691f1 100755
--- a/automation/scripts/qemu-smoke-dom0-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
@@ -73,7 +73,7 @@ UBOOT_SOURCE="boot.source"
 UBOOT_SCRIPT="boot.scr"' > config
 
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/imagebuilder
+git clone https://gitlab.com/xen-project/imagebuilder.git
 bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
 
 rm -f ${serial_log}
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index e0bb37af3610..ca59bdec1b2b 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -87,7 +87,7 @@ LOAD_CMD="tftpb"
 UBOOT_SOURCE="boot.source"
 UBOOT_SCRIPT="boot.scr"' > binaries/config
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/imagebuilder
+git clone https://gitlab.com/xen-project/imagebuilder.git
 bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
 
 
diff --git a/automation/scripts/qemu-smoke-dom0less-arm32.sh b/automation/scripts/qemu-smoke-dom0less-arm32.sh
index 1e2b939aadf7..11804cbd729f 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh
@@ -125,7 +125,7 @@ if [[ "${test_variant}" == "without-dom0" ]]; then
 fi
 
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/imagebuilder
+git clone https://gitlab.com/xen-project/imagebuilder.git
 bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
 
 # Run the test
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index 292c38a56147..4b548d1f8e54 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -198,7 +198,7 @@ NUM_CPUPOOLS=1' >> binaries/config
 fi
 
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/imagebuilder
+git clone https://gitlab.com/xen-project/imagebuilder.git
 bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
 
 
diff --git a/automation/scripts/qemu-xtf-dom0less-arm64.sh b/automation/scripts/qemu-xtf-dom0less-arm64.sh
index a667e0412c92..59f926d35fb9 100755
--- a/automation/scripts/qemu-xtf-dom0less-arm64.sh
+++ b/automation/scripts/qemu-xtf-dom0less-arm64.sh
@@ -45,7 +45,7 @@ UBOOT_SOURCE="boot.source"
 UBOOT_SCRIPT="boot.scr"' > binaries/config
 
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/imagebuilder
+git clone https://gitlab.com/xen-project/imagebuilder.git
 bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
 
 # Run the test
diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
index 4a071c6ef148..e3f7648d5031 100755
--- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
+++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
@@ -122,7 +122,7 @@ if [[ "${test_variant}" == "gem-passthrough" ]]; then
 fi
 
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/imagebuilder
+git clone https://gitlab.com/xen-project/imagebuilder.git
 bash imagebuilder/scripts/uboot-script-gen -t tftp -d $TFTP/ -c $TFTP/config
 
 # restart the board
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 12:39:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 12:39:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756247.1164792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRA7o-0000LD-G2; Tue, 09 Jul 2024 12:39:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756247.1164792; Tue, 09 Jul 2024 12: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 1sRA7o-0000L6-By; Tue, 09 Jul 2024 12:39:16 +0000
Received: by outflank-mailman (input) for mailman id 756247;
 Tue, 09 Jul 2024 12:39:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cUMd=OJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRA7n-0000L0-1r
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 12:39:15 +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 3f4f2677-3df0-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 14:39:13 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a77dc08db60so439000966b.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 05:39:13 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a855f20sm73862866b.168.2024.07.09.05.39.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Jul 2024 05:39: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: 3f4f2677-3df0-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720528752; x=1721133552; 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=OCwTWs3J2ErhsM7r7MHMIH+3aRxyyC9D91JsPsrwA5k=;
        b=KNI9ECAFiXx58Rb8MXX4UgSIQ8M270jwA5zh5AzD8Fr/I6q0uU3Q5P1seKXWURDSTo
         m9DNrfATx90lF0PticVYGyXKI24Rl4YxU3e3ffxOlSjndcaDYGrgQRW3wLdAlGavu7Qp
         pN8m8UIo5WLmGcBxkFOmy9y6FfCexhiN4x1Eg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720528752; x=1721133552;
        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=OCwTWs3J2ErhsM7r7MHMIH+3aRxyyC9D91JsPsrwA5k=;
        b=XPikGULGEe0cUZavXorrS8WK/IrkrkZu5WEiPzacklr+UTrxGAQCFzb/whN21CN4aH
         W2Aw2yttQ66fxvEC+eQnnpVudVX9PUaQmeh8f0odksw3udjNUOoVZTv4h4LBgDGJlSHn
         ZEcBpgIgxe6+qOOX4CjPqMJcwY7L2Bxhxc9cyCBhyav4Y93Ojp9gIEpESIZIgvohn1EB
         7jeGg25RLnefO10rImCsatFbA/8MYhnIAfLsN8gbwatRdZAyCM6s7iP+npwoE2xzq4Bx
         WyiZUjaA2/BsRgXOmNzkNjNYKXnPf8cWZWAUR8V92rUdCghiYMDbKlJE93NhNGB7PQ1s
         XhlA==
X-Gm-Message-State: AOJu0Ywbu0M5Iss+tyaZnhp2O345l9LtGv8IB9MmqYMwUhW/wmKoC/aB
	8daHcQ3CdjLlYiFm0+gnWiGl1RWGi+UWgcRVkPlcH/QFycQqaLFXqJs0Pc9VzLKIhWYlijqApKP
	Y
X-Google-Smtp-Source: AGHT+IGJ02UfS6p/btyg7iOJuzO1L4PP/AX+sFR5ol2jvu6fSK1s+f19xNw2/pApuml8nDivEuvV6Q==
X-Received: by 2002:a17:906:4a59:b0:a6f:ad2f:ac4b with SMTP id a640c23a62f3a-a780b68923amr145728266b.2.1720528750786;
        Tue, 09 Jul 2024 05:39: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>,
	Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19?] stubdom: Remove more leftovers of caml-stubdom
Date: Tue,  9 Jul 2024 13:39:07 +0100
Message-Id: <20240709123907.2400138-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Fixes: e536a497545f ("stubdom: Remove caml-stubdom")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Juergen Gross <jgross@suse.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

For 4.19.  This is additional tidying to a removal in 4.19, which will
otherwise need backporting if it misses 4.19.
---
 config/Stubdom.mk.in | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/config/Stubdom.mk.in b/config/Stubdom.mk.in
index 5990fc4e04f9..b399d77740e8 100644
--- a/config/Stubdom.mk.in
+++ b/config/Stubdom.mk.in
@@ -26,9 +26,6 @@ LWIP_URL            := @LWIP_URL@
 GRUB_VERSION        := @GRUB_VERSION@
 GRUB_URL            := @GRUB_URL@
 
-OCAML_VERSION       := @OCAML_VERSION@
-OCAML_URL           := @OCAML_URL@
-
 GMP_VERSION         := @GMP_VERSION@
 GMP_URL             := @GMP_URL@
 

base-commit: c4ebeb79d10a25e8d48a71cdd381898265267e67
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 12:59:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 12:59:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756255.1164802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRAR8-0003aT-0D; Tue, 09 Jul 2024 12:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756255.1164802; Tue, 09 Jul 2024 12:59:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRAR7-0003aM-TO; Tue, 09 Jul 2024 12:59:13 +0000
Received: by outflank-mailman (input) for mailman id 756255;
 Tue, 09 Jul 2024 12:59:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XjVV=OJ=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sRAR5-0003aG-TG
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 12:59:11 +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 08c565e6-3df3-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 14:59:10 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-58b5f7bf3edso3178765a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 05:59:10 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bba548f3sm1044895a12.10.2024.07.09.05.59.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 05: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: 08c565e6-3df3-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720529950; x=1721134750; 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=BG18fm06j50PrqXn/TzPqWy99jWqJaEaljHVn90LuGk=;
        b=WEyEfulH2XcWsvbv5lUYsF+HhX67aEa3rxkkyYN+T0pt/Wm9SHb+nAwsfkyDXWiD/D
         rkf/I0SqjGE6tYS8sxABGc5Y7J9CvmpWa7jlkyh9A3ZK2jl7R9CqdleOgnas1gCGhZXp
         BmxlF2I9XjsGakleGdmsum//1tduHQCLeMa0k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720529950; x=1721134750;
        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=BG18fm06j50PrqXn/TzPqWy99jWqJaEaljHVn90LuGk=;
        b=DJBjXRoSym1fBUfnXzaosHabFNahscOmgtgMs9YrQCMQF4Incly6EA8wxoEQaLYq9p
         2cFz6nCVLJyZ4JstXRMCFamCaHaffldfC/KwBN50eg8fWOW+kW+qlpRuDT74r3932lBn
         X0ED1WMpDkXdXblTrUqHH9S5tvJsW+viLn+K2Ne3Wooxoh0rYJ9xfrkSb+qQVL40Drr/
         WwVYqPccS2+0h+CjMD93AC7NyQFm9+A+txoO1N7fANWaqTEW0UyK+ZHOD4EFicSKrlog
         /2V0lRfdmyq/Q2MG0VGVJfru/ckGNce8/pm//hk/SppHkdeflRjFNnyRxDWScQg/Jdwn
         qpuQ==
X-Forwarded-Encrypted: i=1; AJvYcCW95uUgEvKWeZIQMXBt9glVfXT/RQnCe5xp/BaIXnDbwlnmZjwC8E3UV2RwadmakpZEAufbtH2sTS0uXSUgJ02Gc+J6q/TjJerPriuk7jg=
X-Gm-Message-State: AOJu0Yw6SNFmjY+ZHguXHxneQUdO6hynCte6WQY1qpzKtHvJtrz2sB8G
	DsZiPe+BhoUuD+VbmgR2z8lxtEZMJfGreyMxGiwvKF9vpm6xJMC4cf3MAOxViJuwnepcT9T2kyi
	G
X-Google-Smtp-Source: AGHT+IEBq2+ttsamhEI5Z7cIdXXIQZN1J8lnnr6mp7OjYlPXCPf/9G/cAf6eh5wmFYKOQPR7EwTPsw==
X-Received: by 2002:a50:fb0b:0:b0:57d:42f6:63fe with SMTP id 4fb4d7f45d1cf-594bb773f1bmr1986162a12.22.1720529950043;
        Tue, 09 Jul 2024 05:59:10 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 09 Jul 2024 13:59:08 +0100
Message-Id: <D2L0YQOMMQ3G.GLD8N5NQ50JS@cloud.com>
Cc: "Doug Goldstein" <cardoe@cardoe.com>, "Stefano Stabellini"
 <sstabellini@kernel.org>
Subject: Re: [PATCH for-4.20] automation: Use a different ImageBuilder
 repository URL
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Michal Orzel" <michal.orzel@amd.com>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.17.0
References: <20240709122117.48051-1-michal.orzel@amd.com>
In-Reply-To: <20240709122117.48051-1-michal.orzel@amd.com>

On Tue Jul 9, 2024 at 1:21 PM BST, Michal Orzel wrote:
> Switch to using https://gitlab.com/xen-project/imagebuilder.git which
> should be considered official ImageBuilder repo.
>
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> ---
>  automation/scripts/qemu-smoke-dom0-arm32.sh       | 2 +-
>  automation/scripts/qemu-smoke-dom0-arm64.sh       | 2 +-
>  automation/scripts/qemu-smoke-dom0less-arm32.sh   | 2 +-
>  automation/scripts/qemu-smoke-dom0less-arm64.sh   | 2 +-
>  automation/scripts/qemu-xtf-dom0less-arm64.sh     | 2 +-
>  automation/scripts/xilinx-smoke-dom0less-arm64.sh | 2 +-
>  6 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scr=
ipts/qemu-smoke-dom0-arm32.sh
> index d91648905669..5b62e3f691f1 100755
> --- a/automation/scripts/qemu-smoke-dom0-arm32.sh
> +++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
> @@ -73,7 +73,7 @@ UBOOT_SOURCE=3D"boot.source"
>  UBOOT_SCRIPT=3D"boot.scr"' > config
> =20
>  rm -rf imagebuilder
> -git clone https://gitlab.com/ViryaOS/imagebuilder
> +git clone https://gitlab.com/xen-project/imagebuilder.git

For this clone and all others:

You probably want "git clone --depth 1 <url>" to pull the tip of the repo a=
nd
not its history.

>  bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
> =20
>  rm -f ${serial_log}
> diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scr=
ipts/qemu-smoke-dom0-arm64.sh
> index e0bb37af3610..ca59bdec1b2b 100755
> --- a/automation/scripts/qemu-smoke-dom0-arm64.sh
> +++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
> @@ -87,7 +87,7 @@ LOAD_CMD=3D"tftpb"
>  UBOOT_SOURCE=3D"boot.source"
>  UBOOT_SCRIPT=3D"boot.scr"' > binaries/config
>  rm -rf imagebuilder
> -git clone https://gitlab.com/ViryaOS/imagebuilder
> +git clone https://gitlab.com/xen-project/imagebuilder.git
>  bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binar=
ies/config
> =20
> =20
> diff --git a/automation/scripts/qemu-smoke-dom0less-arm32.sh b/automation=
/scripts/qemu-smoke-dom0less-arm32.sh
> index 1e2b939aadf7..11804cbd729f 100755
> --- a/automation/scripts/qemu-smoke-dom0less-arm32.sh
> +++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh
> @@ -125,7 +125,7 @@ if [[ "${test_variant}" =3D=3D "without-dom0" ]]; the=
n
>  fi
> =20
>  rm -rf imagebuilder
> -git clone https://gitlab.com/ViryaOS/imagebuilder
> +git clone https://gitlab.com/xen-project/imagebuilder.git
>  bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
> =20
>  # Run the test
> diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation=
/scripts/qemu-smoke-dom0less-arm64.sh
> index 292c38a56147..4b548d1f8e54 100755
> --- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
> +++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
> @@ -198,7 +198,7 @@ NUM_CPUPOOLS=3D1' >> binaries/config
>  fi
> =20
>  rm -rf imagebuilder
> -git clone https://gitlab.com/ViryaOS/imagebuilder
> +git clone https://gitlab.com/xen-project/imagebuilder.git
>  bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binar=
ies/config
> =20
> =20
> diff --git a/automation/scripts/qemu-xtf-dom0less-arm64.sh b/automation/s=
cripts/qemu-xtf-dom0less-arm64.sh
> index a667e0412c92..59f926d35fb9 100755
> --- a/automation/scripts/qemu-xtf-dom0less-arm64.sh
> +++ b/automation/scripts/qemu-xtf-dom0less-arm64.sh
> @@ -45,7 +45,7 @@ UBOOT_SOURCE=3D"boot.source"
>  UBOOT_SCRIPT=3D"boot.scr"' > binaries/config
> =20
>  rm -rf imagebuilder
> -git clone https://gitlab.com/ViryaOS/imagebuilder
> +git clone https://gitlab.com/xen-project/imagebuilder.git
>  bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binar=
ies/config
> =20
>  # Run the test
> diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automati=
on/scripts/xilinx-smoke-dom0less-arm64.sh
> index 4a071c6ef148..e3f7648d5031 100755
> --- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
> +++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
> @@ -122,7 +122,7 @@ if [[ "${test_variant}" =3D=3D "gem-passthrough" ]]; =
then
>  fi
> =20
>  rm -rf imagebuilder
> -git clone https://gitlab.com/ViryaOS/imagebuilder
> +git clone https://gitlab.com/xen-project/imagebuilder.git
>  bash imagebuilder/scripts/uboot-script-gen -t tftp -d $TFTP/ -c $TFTP/co=
nfig
> =20
>  # restart the board

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 13:08:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 13:08:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756263.1164812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRAZs-0005Tx-Rm; Tue, 09 Jul 2024 13:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756263.1164812; Tue, 09 Jul 2024 13:08:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRAZs-0005Tq-OE; Tue, 09 Jul 2024 13:08:16 +0000
Received: by outflank-mailman (input) for mailman id 756263;
 Tue, 09 Jul 2024 13:08: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRAZr-0005Tk-PF
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 13:08:15 +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 4d31a602-3df4-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 15:08:14 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2ee9b098bd5so44171201fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 06: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
 d9443c01a7336-1fbb6ab6c48sm15594885ad.152.2024.07.09.06.08.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 06: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: 4d31a602-3df4-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720530494; x=1721135294; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NSYGY4y3m6QD1Xst4sVYikiWogvvrkFCMWfzJfKumiw=;
        b=f+2UquWcA8qYDMacgLsvHearXNxNUhiAmrUTKmyitmOiZO6edr0c/z0nq7jibF10JI
         j5cs/9FP3L7/1mCmVhbog0ViKmGsjW3fTvw6iaEPNatSECfZLXRu89oeZ7YesCKmhthf
         RxzCB4+haCDgAq37S6iAtibiFyfsBh4KfFpZ59bUAxh70GwC6bT+gKvr+q/hy6wyUdPS
         JiNPtVvNE6LkNAzPvF3eYcjtVJutX/q1iOLbUPD4s3QDK7MFYI1iiWfsLLZuRB1J2Buf
         bkzHW2YGzD77xkto5BqTiTgQhsnlWKdPcA/AIOQie3YEdIn5tDbqVQSQ/DhLPMWTZelo
         UiwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720530494; x=1721135294;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NSYGY4y3m6QD1Xst4sVYikiWogvvrkFCMWfzJfKumiw=;
        b=JWgObLVguG0Ho3eZt4EOYw/kOcXMCbZiVnBwVLQPl8P9CPZ0/0kt1vLV4veQRgOFYf
         eZmL1KrIbgZSQddi2vwaEuFvFKNYFEzRtX08vHSeU6e1KrcDZiF7edA/xeplD8rR1hTs
         FYURPwYbaT3BG5nEzjUoehPxnePXQ3Y7HhYMd6X/MPKu2TGvhTYzc6q5yxrmvtDhUdoh
         4i05ZPWOsGlYLIYtI6pZlzZX1MSIPYo7afbFrOQJY2RC9iDYySEracZehGhF2AqaejqD
         akPJYk5bku6e39QYf2V3uipqBzfsiEXr0ctfhr411I9ww3G4oQJoPIWSS0RBYlr2v9jd
         L32A==
X-Forwarded-Encrypted: i=1; AJvYcCXHtCnWVDFOx4McDRzOVyfeccmcv/8UNhGM7nKCo1TP+BB1lyirxEOc7Utiwnw+gEA77PI18FRwu00lDMjeZXl76mprNpnMNG7uOGZZnnc=
X-Gm-Message-State: AOJu0YwlZ+tsnGpP2mXoZkm1OBGSAcrX9aDTkMYsyMjgguKh+RZjhXWq
	Oh6cJx2p7rXV2ZOqRq9gVc1/TWwQkySJLq/XP0RKU5NNeaNK1T12AOF7sbv6Qg==
X-Google-Smtp-Source: AGHT+IF6PF1m5ncIDnm5hMsmnjK3gYeTj+YhkAwY7WIrjDLyjJKXzrOcm2hE2rES1uB0ZIGyHCFJWA==
X-Received: by 2002:a05:6512:3c81:b0:52e:8141:1b27 with SMTP id 2adb3069b0e04-52eb99d219amr2472536e87.43.1720530494156;
        Tue, 09 Jul 2024 06:08:14 -0700 (PDT)
Message-ID: <e350fbb3-edfb-407d-aa69-ae995889b262@suse.com>
Date: Tue, 9 Jul 2024 15:08:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 4/7] x86/domctl: Add hypercall to set the access
 of x86 gsi
To: Jiqian Chen <Jiqian.Chen@amd.com>,
 "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>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <ray.huang@amd.com>, xen-devel@lists.xenproject.org
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-5-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: <20240708114124.407797-5-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.07.2024 13:41, Jiqian Chen wrote:
> Some type of domains don't have PIRQs, like PVH, it doesn't do
> PHYSDEVOP_map_pirq for each gsi. When passthrough a device
> to guest base on PVH dom0, callstack
> pci_add_dm_done->XEN_DOMCTL_irq_permission will fail at function
> domain_pirq_to_irq, because PVH has no mapping of gsi, pirq and
> irq on Xen side.
> What's more, current hypercall XEN_DOMCTL_irq_permission requires
> passing in pirq to set the access of irq, it is not suitable for
> dom0 that doesn't have PIRQs.
> 
> So, add a new hypercall XEN_DOMCTL_gsi_permission to grant/deny
> the permission of irq(translate from x86 gsi) to dumU when dom0
> has no PIRQs.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> CC: Daniel P . Smith <dpsmith@apertussolutions.com>
> Remaining comment @Daniel P . Smith:
> +        ret = -EPERM;
> +        if ( !irq_access_permitted(currd, irq) ||
> +             xsm_irq_permission(XSM_HOOK, d, irq, access_flag) )
> +            goto gsi_permission_out;
> Is it okay to issue the XSM check using the translated value, 
> not the one that was originally passed into the hypercall?

As long as the answer to this is going to be "Yes":
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Daniel, awaiting your input.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 13:08:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 13:08:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756264.1164822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRAa5-0005mt-5h; Tue, 09 Jul 2024 13:08:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756264.1164822; Tue, 09 Jul 2024 13: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 1sRAa5-0005mk-33; Tue, 09 Jul 2024 13:08:29 +0000
Received: by outflank-mailman (input) for mailman id 756264;
 Tue, 09 Jul 2024 13:08: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=k/4u=OJ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sRAa3-0005mA-WC
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 13:08:28 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20601.outbound.protection.outlook.com
 [2a01:111:f403:240a::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52b07ba4-3df4-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 15:08:25 +0200 (CEST)
Received: from BN6PR17CA0035.namprd17.prod.outlook.com (2603:10b6:405:75::24)
 by DS0PR12MB8320.namprd12.prod.outlook.com (2603:10b6:8:f8::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Tue, 9 Jul
 2024 13:08:19 +0000
Received: from BN3PEPF0000B073.namprd04.prod.outlook.com
 (2603:10b6:405:75:cafe::8b) by BN6PR17CA0035.outlook.office365.com
 (2603:10b6:405:75::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36 via Frontend
 Transport; Tue, 9 Jul 2024 13:08:19 +0000
Received: from SATLEXMB03.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.7762.17 via Frontend Transport; Tue, 9 Jul 2024 13:08: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; Tue, 9 Jul
 2024 08:08:18 -0500
Received: from [172.27.0.207] (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, 9 Jul 2024 08:08: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: 52b07ba4-3df4-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GzfFn8P1aaEt74rEpTpskRA18oSgJ6E1VsSrs7lh+PB6jmZhExunMG2N+l6LoH3OtIGL+xSTn/u2Gql7MBbJ6tSvmZ/Ax0tDh34mvtXWJON0vcSzF17lv4B1Km0i9d43BM+krZ/ceFymH3UOcvSxL5g0HXEg9RIKIMrCdZBfyL/xZdpwgak++2t8e6g1tY1e8rH52/zK5BVojcHDemAgUOerir9sI9xfFF6pqQqPcCAws6Kwhr+BP37DaDby3NskT7Fr7i40AY8evBUrwFZ9qRbxDiqPZPhY0yajiM6AlHxUnh/j6778KDrv55a7+PMFCIP2YUU8vT5VAGRsv5S84g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LlpqXmSyRDgkU25hc8SLHYu2bhD4WWJ4MtJWsEyMHzI=;
 b=KlpFPFCoMRiHVzHGwKgaMNs8vaqQ7BKC9phAVw1gNAVteQ4OwC6UjSknvpJ7g+gkj6t85HFCTczcPgqtywcnwOZtmLo/i/zzsX3odonlebMx93AoiwINTiZEMPs/TloWcay4CcYT7AFbEdF/+TAJaSpcPp90dQOC+aDI3N5GELWYHGR1nj7Le4VEvQmSEIq6eYV6JTPU5h4fZEu0zZY26c+rDCn4imRssOkEhqRCATArSZOJy6XEeE1eVv/YLceX9NGhNc54YC76HUSwMOtnTfq2w3rmoYJNAPin2f1TiPYK7dOXfMjdzJ+cuzL4kep3WaXk6aySfnaglQbTM0fUeQ==
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=LlpqXmSyRDgkU25hc8SLHYu2bhD4WWJ4MtJWsEyMHzI=;
 b=wAvK7Luqx0uO2K6ZOUsY1hWUbYpGr+T8ZGXuGSZQ2jUqQkPAEVkQ53prdLr9LXaWqGoxvlYSZqL7mCuXTalSyO9ah8yC6dUPUnzof+PdYs5yzNbZh3neGSK8goBQPr2wSuBs8CqyfZflrvaT0b2AX448ZrArOBjpjsBIbst1MCc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <3d6d35ea-5044-4249-a277-0e5aa31ed888@amd.com>
Date: Tue, 9 Jul 2024 09:08:11 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>, Jan Beulich
	<jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
 <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
 <88db3cb6-2b7e-48b2-9bf4-d871067325a0@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <88db3cb6-2b7e-48b2-9bf4-d871067325a0@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: BN3PEPF0000B073:EE_|DS0PR12MB8320:EE_
X-MS-Office365-Filtering-Correlation-Id: b2afd9c6-993f-4c15-283e-08dca0183448
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?U3NpaTM4OSs5RjlabXdyckVscXlIMStudGh6dExDZ0xucnZ1WUE1TkJLMXB2?=
 =?utf-8?B?MUV1RU5sTVkzaTh6eE50RFV2RXB5Wkl2YmJkNUgzcXB0cWlFa1krWkVZVnox?=
 =?utf-8?B?Z21CZlhMZkVoa3RqOVdRUVlnSmhDOUZxbzlvbm5xVHBzTUdYcWVaeHlXeVg5?=
 =?utf-8?B?YktXSDYxd21uUVpQcmpkT0twRjNGY2JYTSsyZTdxUHg5VWtYTHdYOFhHNlNm?=
 =?utf-8?B?RnRvT1lYMEF2b0pORzlYQjFBa0tzVHpocjMwVGRTY0s2QUhlMGgvMTV3dXNE?=
 =?utf-8?B?Q1ZXbnFaZ1FtazFlcTIzcmxBRzBWeUZFQ0RnSmVzaE91UlZTcVJMNVVTZ3A2?=
 =?utf-8?B?WUNjZkZzbC9sUU90V2g2YzBlSnE0bEN0S01XTk9PVVgvdVFyeXRuUEJjVlNv?=
 =?utf-8?B?clJoY1o5K1hSaTR6KzJ0a0JTOHNOdDZ3TFJFejE4dGEvbjM4aXdGbHRmUG1h?=
 =?utf-8?B?OEFaajJwZk9vbTh1alp2RGM1T2FobzZaUStGaDdFOXVMTUQ5aUJQWGQwU2lX?=
 =?utf-8?B?U3JNVVg1WUtnci9PcTdhaDloRFQ2Zksrb3plWWxkWlpjRUZMOGdoenhWd2RO?=
 =?utf-8?B?aEJHN0VYVmxZRURQY1NadTh6N0RWSkxMczNiazEzMWpLSVRJRjBqVkhSU2x1?=
 =?utf-8?B?bjYvYlg0MjNxOGNCMGI3blNDVEEra1I3K1lhNTBRcTltbFRkTGIvZUNnNEIv?=
 =?utf-8?B?WDlVNlBETktKWFRIcTBtWHJvR3V0NTNxU3Q5NTdJaHRvbVJ1Y0RYL0pmc0wy?=
 =?utf-8?B?N1FsTlhmQmE4elJZdUdlZVJjREhRZkJoUjBzdHZDLzBMRVRtaWFxNjYyMjln?=
 =?utf-8?B?MW5hU1VsczJIYXRnNFNxOHZOb2V6N0M3eEp0YzlmNG9MSGlZcmUyaG1PcjNV?=
 =?utf-8?B?NmFTTjJIYStLWDNxUi91eGpwcGZ3UlB1VmphaGRnMjN4RHhES2x2R1BTL0FW?=
 =?utf-8?B?STkyRExyT3Q2d0hhUmdQc1dGcTJKOXNuam91MVVLeVorYUlyMW5QRktkRHYv?=
 =?utf-8?B?Y2E2cVVHbTBqb00zV2tTckFxY1o2YkcvTlBINmREbG0yc0p2MEpIb2lEbzZS?=
 =?utf-8?B?a3dMNlBUVTNCSGNFZlQ0elpxTDREQnIvSzhxd2syWUtUcS9GWTN6TE9RVmhp?=
 =?utf-8?B?Qk1Ja2RsNmpuS0NTaEVsTE9rYnUzS0RkdmxBN2lmY2g0THNaSzBNVlBHbTdU?=
 =?utf-8?B?SmV5dWhoMDB0YnhiUDlYTGJ3VWxCWW81bU92UjBURUZNZDFQRE13RXgwMVlK?=
 =?utf-8?B?ekxNUUJJL0dSZ3RZb2R5ZDdFYjhnam5zN2pRTy9WdlluVmY5SFl0NTBqV1hY?=
 =?utf-8?B?WFBkZEQ0aHNXamFteno1ZGsrcE4rdkRLSVBBOGRrR0QrU3ZtNDVsVkw3U25k?=
 =?utf-8?B?dFNBVUwyMTNZRklRNllKY3g5T1EvMmhWMnJ1a2lrUVAxeHVhNUFKQngwQysr?=
 =?utf-8?B?ak5uMXhrV1BheUhUaDNDM2FDdTI5akZkSndEOUZaZlBudWR5STlCZkJnRFVq?=
 =?utf-8?B?QUxnL0lwS0I0WnlvamJVRyt4THhzQXdIdGlzSVNUc2xKbStyRE8wMTd4N3hl?=
 =?utf-8?B?aHpWUmFNcFZoWldGZ2djK0htNmozc0FaNjJCWndERzh0N2hRMEt6R1Bsd2l0?=
 =?utf-8?B?QnI3SVdOS05yaFJXUVViYzVMeWQ4eVYwbHF2U3Vadi9wR3ZMTG5VTzMreHkz?=
 =?utf-8?B?S3pPS002eGplTmIxOUlWVmZIMTBXSVdpSXhSUmlIREdYaFB2NmpmQ05ub3FS?=
 =?utf-8?B?K3pTc0xVVUswYk5DWXpMUHNOa3h5MjFoWXY1eHpyTFlFRzYyV25scmtna3Jm?=
 =?utf-8?B?ZHM3RU5iRmIyd0dmRWdTcjdlYWxsWEVURTYzN1V6QktyVjhLT1JqZy9leUZK?=
 =?utf-8?Q?ty0ogju8LPvji?=
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: 09 Jul 2024 13:08:19.3914
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b2afd9c6-993f-4c15-283e-08dca0183448
X-MS-Exchange-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:
	BN3PEPF0000B073.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8320

On 2024-07-09 06:56, Jürgen Groß wrote:
> On 09.07.24 09:01, Jan Beulich wrote:
>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>    From the backtrace, it looks like the immediate case is just 
>>>>> trying to
>>>>> read a 4-byte version:
>>>>>
>>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>
>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>> {
>>>>>            int ret;
>>>>>
>>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>>                                  sizeof(ucsi->version));
>>>>>
>>>>> ->read being ucsi_acpi_read()
>>>>>
>>>>> However, the driver also appears write to adjacent addresses.
>>>>
>>>> There are also corresponding write functions in the driver, yes, but
>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>> involved AML whether it might write said memory region.
>>>
>>> I guess an ACPI dump would help here?
>>
>> Perhaps, yes.
> 
> It is available in the bug report:
> 
> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301

After acpixtract & iasl:

$ grep -ir FEEC *
dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)


from the DSDT:
     Scope (\_SB.PCI0.LPC0.EC0)
     {
         OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
         Field (ECMM, AnyAcc, Lock, Preserve)
         {
             TWBT,   2048
         }

         Name (BTBF, Buffer (0x0100)
         {
              0x00                                             // .
         })
         Method (BTIF, 0, NotSerialized)
         {
             BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
             Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
         }
     }

 From SSDT16:
DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
{
     External (_SB_.PCI0.LPC0.EC0_, DeviceObj)

     Scope (\_SB)
     {
         OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
         Field (SUSC, ByteAcc, Lock, Preserve)
         {


This embedded controller (?) seems to live at 0xfeec2xxx.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 13:26:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 13:26:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756277.1164832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRArm-0000vu-IC; Tue, 09 Jul 2024 13:26:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756277.1164832; Tue, 09 Jul 2024 13:26:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRArm-0000vn-FL; Tue, 09 Jul 2024 13:26:46 +0000
Received: by outflank-mailman (input) for mailman id 756277;
 Tue, 09 Jul 2024 13:26:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRArk-0000vh-LN
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 13:26:44 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1e0bc27-3df6-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 15:26:43 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-52ea33671ffso4732158e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 06:26: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
 d9443c01a7336-1fbb6ad2340sm16258525ad.283.2024.07.09.06.26.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 06:26: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: e1e0bc27-3df6-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720531603; x=1721136403; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oy5GH9jFwx5NOEVZWaD/+3vlfO6KDffFDSsI/d05sHo=;
        b=GB+C1NC1bqDve2BG1ilmiPeOS4f1OdK1TfUwIpfB/Bm8HjKJK4C5Qmrs0Sq2z54H9m
         /0KkKwW4KhM1FSjbhjo6VSspRfgerlIdR0Yw+3OMNfIHT965YJQj7U67fzgPwA1lt8IU
         iu3LjSSeQQPADRUX7EjKeBMheDu3MWvDd7rv9E1klCXHCxX/Hs1ynZQmeWIY8GK+trSU
         CBCjaVR62Ivn0zE2EJfgdAzQd7zAauPTkWNnjorSlZG2IA3JU5eLAkP/piYTlgNsvrji
         AO3BOfx8QOqGwgk7GWQNfHQ6DVvU0xEjddUh7MtFU3kpB8GG3uGW59lZZcAuwsOjrGVq
         riKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720531603; x=1721136403;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oy5GH9jFwx5NOEVZWaD/+3vlfO6KDffFDSsI/d05sHo=;
        b=UnB3NiCdDCWsfLTiWSixtEiybvP2HnZCezygRkQqwzwXnquz5e7sNF3uxBp4N8BBkz
         e0YUQ90XTg2/Cb6sevF3vw/UjPENwpVjRtljODb/mvJH+cxR1SwRk21vGyBbcA21bArE
         PEg0HO3mMNAp2N5lu0Fjjo/zIg/4EvC/H3QDzUz/hu9xZ2LJ06x2EAaI9w2PUWMjo4Pg
         d0ynUhRsTO5bxmve7xC7VGKdOLY4ZnFgHMsu1cyQKGQkBnd2MFzBbWSqKpqlMPd7Uzyc
         mvFVuFyJWcpts840ggWdUixCiJG0gaF8vg8TE0VHHgzvS2/jZ/GaehQIkX7NvnGUel9W
         V6kw==
X-Forwarded-Encrypted: i=1; AJvYcCXFJR5JWTuDmgzwKj9Q1nuQ0xOsRl7iFe0y7yL0kVS3UyGm6SScDt1VJtaiCX62bMgBwkZAW1mZM9WY8e5nlL5p4dw2pwdpQvP91Se4zv0=
X-Gm-Message-State: AOJu0YzHdWyaB6Vh2YlHUV3jFMeqnjaxpoNrc1luBZCkuw2vwQdNCDEd
	TeichczwtQrz2Re/EGKBy0ZAxRXXo5sF8/QIeGBr55Mb5FS4hmBrq378Um2dnw==
X-Google-Smtp-Source: AGHT+IEF2LAJArbzMuVYk25lOW8n6uRbcyqMsCOOrpw1g/wOB2k9PNBYKwfEiOokiXWFSIr/eFvGLg==
X-Received: by 2002:a05:6512:3984:b0:52e:767a:ad9c with SMTP id 2adb3069b0e04-52eb99d3230mr1778638e87.53.1720531602757;
        Tue, 09 Jul 2024 06:26:42 -0700 (PDT)
Message-ID: <ef611901-03bf-4aa9-9de7-ac6d4fd82d05@suse.com>
Date: Tue, 9 Jul 2024 15:26:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 5/7] tools/libxc: Allow gsi be mapped into a free
 pirq
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <ray.huang@amd.com>, xen-devel@lists.xenproject.org,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-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: <20240708114124.407797-6-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.07.2024 13:41, Jiqian Chen wrote:
> Hypercall PHYSDEVOP_map_pirq support to map a gsi into a specific
> pirq or a free pirq, it depends on the parameter pirq(>0 or <0).
> But in current xc_physdev_map_pirq, it set *pirq=index when
> parameter pirq is <0, it causes to force all cases to be mapped
> to a specific pirq. That has some problems, one is caller can't
> get a free pirq value, another is that once the pecific pirq was
> already mapped to other gsi, then it will fail.
> 
> So, change xc_physdev_map_pirq to allow to pass negative parameter
> in and then get a free pirq.
> 
> There are four caller of xc_physdev_map_pirq in original codes, so
> clarify the affect below(just need to clarify the pirq<0 case):
> 
> First, pci_add_dm_done->xc_physdev_map_pirq, it pass irq to pirq
> parameter, if pirq<0 means irq<0, then it will fail at check
> "index < 0" in allocate_and_map_gsi_pirq and get EINVAL, logic is
> the same as original code.

There we have

    int pirq = XEN_PT_UNASSIGNED_PIRQ;

(with XEN_PT_UNASSIGNED_PIRQ being -1) and then

    rc = xc_physdev_map_pirq(xen_xc, xen_domid, machine_irq, &pirq);

Therefore ...

> --- a/tools/libs/ctrl/xc_physdev.c
> +++ b/tools/libs/ctrl/xc_physdev.c
> @@ -50,7 +50,7 @@ int xc_physdev_map_pirq(xc_interface *xch,
>      map.domid = domid;
>      map.type = MAP_PIRQ_TYPE_GSI;
>      map.index = index;
> -    map.pirq = *pirq < 0 ? index : *pirq;
> +    map.pirq = *pirq;
>  
>      rc = do_physdev_op(xch, PHYSDEVOP_map_pirq, &map, sizeof(map));

... this very much looks like a change in behavior to me: *pirq is
negative, and hence index would have been put in map.pirq instead. While
with your change we'd then pass -1, i.e. requesting to obtain a new
pIRQ.

I also consider it questionable to go by in-tree users. I think proof of
no functional change needs to also consider possible out-of-tree users,
not the least seeing the Python binding below (even if right there you
indeed attempt to retain prior behavior). The one aspect in your favor
is that libxc isn't considered to have a stable ABI.

Overall I see little room to avoid introducing a new function with this
improved behavior (maybe xc_physdev_map_pirq_gsi()). Ideally existing
callers would then be switched, to eventually allow removing the old
function (thus cleanly and noticeably breaking any out-of-tree users
that there may be, indicating to their developers that they need to
adjust their code).

> --- a/tools/python/xen/lowlevel/xc/xc.c
> +++ b/tools/python/xen/lowlevel/xc/xc.c
> @@ -774,6 +774,8 @@ static PyObject *pyxc_physdev_map_pirq(PyObject *self,
>      if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iii", kwd_list,
>                                        &dom, &index, &pirq) )
>          return NULL;
> +    if ( pirq < 0 )
> +        pirq = index;
>      ret = xc_physdev_map_pirq(xc->xc_handle, dom, index, &pirq);
>      if ( ret != 0 )
>            return pyxc_error_to_exception(xc->xc_handle);

I question this change, yet without Cc-ing the maintainer (now added)
you're not very likely to get a comment (let alone an ack) on this.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 13:27:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 13:27:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756284.1164841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRAss-0001TT-T7; Tue, 09 Jul 2024 13:27:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756284.1164841; Tue, 09 Jul 2024 13:27:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRAss-0001TM-QS; Tue, 09 Jul 2024 13:27:54 +0000
Received: by outflank-mailman (input) for mailman id 756284;
 Tue, 09 Jul 2024 13:27: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=ELTS=OJ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRAsr-0000vh-NR
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 13:27:53 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09550af1-3df7-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 15:27:51 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-52e94eaf5efso6161393e87.2; 
 Tue, 09 Jul 2024 06:27:49 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52eb90677fdsm241911e87.232.2024.07.09.06.27.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Jul 2024 06: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: 09550af1-3df7-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720531669; x=1721136469; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ti8sp+/BX7R6wA3VB6v8okYhWPpZXcaVGcBvggtq4dc=;
        b=OwObSToacesmBPMmwDTu2YHzQAWthfJLEg3ep4kx7yUaBWuFA5+MMzxsZfWMlS/Fag
         JA72XQJdh6Uyla8wYtHNrJJQ2C8gVVY44EQRQCH0almyP9TYoNIud4fFtS2CgpAd+BkI
         HfWFAmADgF2VXh5WdTixACv9eW4yoi/+yDmiy/d4x+4Zdcn3KKatTQOpBuymp9xO8zzO
         6XhupEpx0/FILqN+93I5PzYXgGHaDYkW1n8XjCSPQYvGwhyqnwW3fmof9qmkGoSWscIG
         nqUzh5ITbWyxzOXexh8WLtUbtpF7w6Qy+VNgYsQ2DAX3v1szOSady+u5C2vaGHMxn6/x
         0osg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720531669; x=1721136469;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ti8sp+/BX7R6wA3VB6v8okYhWPpZXcaVGcBvggtq4dc=;
        b=N4WM9BijKEkgf3ds081PSSxsOc8ovA0je2Hscwu28pD1v88FWr5qfet5T1TKafw4LY
         pSxw0yOmJQXRZLPZd+84HmOGiaUNb52N6QI5I0y34IGSlrWYLuDWwnSiZ3zvAGlRRFmI
         BrJQbZehFDXVfLSW/g3dz7UXP1xRPRriTQY2ngqxL8es9I5XeRnFFhOpwUkW7Fliw+iD
         noosqBle0nWSrLRYWDnrCRW3ITGWOmlk9em94TxVSlEcX4rQ+D87ps+/kttld06ZWziJ
         7/7b0a6QU2mYrHRS85RhU+YV5ysx+iBqYjaG9PjsDN4churzwOgzUQ1T1ofYvarMdRc1
         SWjw==
X-Forwarded-Encrypted: i=1; AJvYcCUVdCfwq0w8Nx1vzNDcnl6K9HH6eOlDH1GSOs+HLqe00GFemJmU8MCf08ZKT5r+CS1H5P0IgQ7zJ802VZPBAZ3Sk+Kt3RtE9V4Kp2jLP66HqPc=
X-Gm-Message-State: AOJu0Yx7BBAb00LPKLcG0XYLHe5ffbyLT2m+5D/k7Dh45zMj+vHD7Hu1
	LV7YZhm+lQXR1xswTFAJcYebUBFVje2wntrY00EwnNdNRqy8zeB7Brborwd+
X-Google-Smtp-Source: AGHT+IGPWB6auGIZQ7g0/oehpI07mf6q5nYVSr7v+w2hJfIolO5BBBUHWDyJIMGVTQPQu5TtOmMgcQ==
X-Received: by 2002:a05:6512:703:b0:52e:9c69:b25b with SMTP id 2adb3069b0e04-52eb999e1abmr1278239e87.28.1720531668528;
        Tue, 09 Jul 2024 06:27:48 -0700 (PDT)
Message-ID: <9e1fecdf469cab8b0f1767efc680c12105d4e763.camel@gmail.com>
Subject: Xen 4.19-rc2
From: Oleksii <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: xen-users@lists.xenproject.org, xen-announce@lists.xenproject.org
Date: Tue, 09 Jul 2024 15:27:47 +0200
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

Hi all,

Xen 4.19-rc2 is tagged. You can check that out from xen.git:

git://xenbits.xen.org/xen.git 4.19.0-rc2

For your convenience there is also a tarball and the signature at:
https://downloads.xenproject.org/release/xen/4.19.0-rc2/xen-4.19.0-rc2.tar.=
gz

And the signature is at:
https://downloads.xenproject.org/release/xen/4.19.0-rc2/xen-4.19.0-rc2.tar.=
gz.sig

Please send bug reports and test reports to
xen-devel@lists.xenproject.org<mailto:xen-devel@lists.xenproject.org>.
When sending bug reports, please CC relevant maintainers and me
(oleskii.kurochko@gmail.com<mailto:oleskii.kurochko@gmail.com).

Best regards,
 Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 13:50:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 13:50:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756295.1164851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRBEO-0005vD-IH; Tue, 09 Jul 2024 13:50:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756295.1164851; Tue, 09 Jul 2024 13:50:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRBEO-0005v6-FQ; Tue, 09 Jul 2024 13:50:08 +0000
Received: by outflank-mailman (input) for mailman id 756295;
 Tue, 09 Jul 2024 13:50: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=cUMd=OJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRBEM-0005sR-CC
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 13:50:06 +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 24ea687e-3dfa-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 15:50:04 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a77c25beae1so548361666b.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 06:50:04 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6e058esm79719566b.88.2024.07.09.06.50.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 06:50: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: 24ea687e-3dfa-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720533001; x=1721137801; 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=xpx6L+QT74SUTADoSZM5ZEX2SzQOE8dqA+BPYdgsUW0=;
        b=hP1nySedWS7LE/NHWqQUIf/LbIocphJhyBDfgytP+u3pLs/i0oz8H+R0WVgOkon3V9
         /dLyXfEZuw66hMYBGRD3XX3MUAZHk172YBMjf/AoJV0VYLbtKWB/l9WTOXbnppGUOvGT
         SXeuJU2ATWmpg6KXSyoRlegFlvlqGkDTQ4T6w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720533001; x=1721137801;
        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=xpx6L+QT74SUTADoSZM5ZEX2SzQOE8dqA+BPYdgsUW0=;
        b=Osjm+3CPhUhOOQXM7ClC/DTsvmAU7lp42TPjLvXXFLTCcqZ+5AZiunNG5qktqd09IV
         E9BvDmnc+b8OnFKkH11Y2EaJfoBURZN6/jkTr0BMCKUAIjsQQ5a1UxfjVRRBIp2ZApXI
         fQYmwYGQpZJLHA9rgwidWDPHqdHxw8CA+hG5/dyDVOMftCpX/iRnC0G6Q0j0IjSGQys7
         Tj2aPVEI4qGtXvGnyVM4rRWCaJ0n7YnKFK5esLFyHuBX50VXEc9I2/XwJrNekG1Ln7Jv
         KOU2rQHnl0cV7ayWiJoEGrAoEwGWMUQgcpXCn1VjWHx/gARSyXyzDProLZD7tbAX6evs
         8ghg==
X-Gm-Message-State: AOJu0YyMNH9zPgzmtgk5frXpmudjIk7qGIPf8ejKeErdtIRYwJHugPcI
	I5pUgdXqat9WgRVh39JcCYoxiCwDXZKKddGKQvLh9sdK9F0Q/bbkunBkP5nGB5m2ElKCViTI0TQ
	t
X-Google-Smtp-Source: AGHT+IF39RC5wH16GFysr3EfMM15BSVUwBEU8a8u7gRiwNJIILzmaSOqYlss0AdaCxM+fHKfuSxm/g==
X-Received: by 2002:a17:906:e8c:b0:a77:da14:83fe with SMTP id a640c23a62f3a-a780b89c995mr144075166b.64.1720533001358;
        Tue, 09 Jul 2024 06:50:01 -0700 (PDT)
Message-ID: <44679adf-e657-4d38-b1e3-2bebb34f57a0@citrix.com>
Date: Tue, 9 Jul 2024 14:49:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Build system mess in stubdom
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

I'm trying to investigate why stubdom/ is fatally failing now with a
rebuilt ArchLinux container (GCC 14).

It is ultimately:

> ../../../../../newlib-1.16.0/newlib/libc/reent/signalr.c:61:14: error:
> implicit declaration of function ‘kill’; did you mean ‘_kill’?
> [-Wimplicit-function-declaration]
>    61 |   if ((ret = _kill (pid, sig)) == -1 && errno != 0)
>       |              ^~~~~
> make[7]: *** [Makefile:483: lib_a-signalr.o] Error 1

which doesn't make sense, but is a consequence of the ifdefary in
newlib/libc/include/_syslist.h

However, we've got problems ahead of that.

First of all, with:

[user@89aef714763e build]$ ./configure --disable-xen --disable-tools
--disable-docs
<snip>
Will build the following stub domains:
  xenstore-stubdom
  xenstorepvh-stubdom
configure: creating ./config.status
config.status: creating ../config/Stubdom.mk

both a top level `make` and `make stubdom` end up building all of tools,
contrary to comments in the makefile.

`make build-stubdom` does (AFAICT) only build stubdom.

However, building just the xenstore stubdoms recursively builds all of
tools/libs/ even though only some are needed.  This includes libxl which
then recurses further to get tools/libacpi, and libxenguest which
recurses further to get libelf from Xen.

What I can't figure out is why xenstore ends up pulling in all of newlib.

Semi-irrespective, there's no way we can keep on bodging newlib to
compile with newer compilers.  There's a whole bunch of other warnings
(strict-prototypes, dangling-else, maybe-uninitialized, unused-function,
pointer-sign, unused-variable) primed ready to cause breakage in any
environment which makes these error by default.

I'm going to be making ArchLinux non-blocking because it is a rolling
distro, but we also can't do nothing here.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 13:53:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 13:53:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756303.1164861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRBHq-0006Zb-3q; Tue, 09 Jul 2024 13:53:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756303.1164861; Tue, 09 Jul 2024 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 1sRBHq-0006ZU-1E; Tue, 09 Jul 2024 13:53:42 +0000
Received: by outflank-mailman (input) for mailman id 756303;
 Tue, 09 Jul 2024 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=cUMd=OJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRBHp-0006ZO-91
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 13:53: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 a5ba6548-3dfa-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 15:53:40 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a77d85f7fa3so593597666b.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 06:53:40 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a871f2fsm78517966b.202.2024.07.09.06.53.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 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: a5ba6548-3dfa-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720533218; x=1721138018; 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=7dwwlRXl0cvTZL1YuMHfrHnXplLvHYfBLjFy+BKMfGE=;
        b=vWGGzWvP94dRjGZdHzpWuboICPbsc+9jcf18ZiBZ6hSPEKX5Xrx1jSiob7eAgnto1+
         veIwXZKfSuhdZvwdAO/HY5YrM2WAH4nl/otd8z+FmeXA5oDNxmeIrX6w0Xyr8Iy+whuV
         s6U3qeWh5tJaJx7n/hkSoZYdfbhr+Pl13+d44=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720533218; x=1721138018;
        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=7dwwlRXl0cvTZL1YuMHfrHnXplLvHYfBLjFy+BKMfGE=;
        b=ChD86NBlek0tzip4Fvsa5RNPBpAjXsEDDzsKBQ/w3z8c1XWMpvLskynPKei6c1qmRx
         g1EWx8ugxGFzXuj2CNxTL9arcsej3EyO4AyfxRjrnNsWPgFpF4rUC1M35+ZSa4VymNGT
         l6Tur1ZjrNeARNTX+8ArehO6g2JhinG4hgIhfq/Vsegub6msc2Ffb2Yequj+0OtRFp4+
         Wn98tEkV+4/mv1Ih5A6FlTaM7bwlGoffZpVeO/Df+sE7C4W8KQnetZhSxyhl06xpGQYB
         eIL603QoHFSFHmtk4FbWvBybiXXzG4PmdrH/LIOL4R1bAwwk1KiiJGfkTHRD2DTD/e1c
         TEUg==
X-Gm-Message-State: AOJu0Yx6CLUir4V3cdtgak0li1DONkp899QdMuEiaT6R9dAd605cEWF2
	6m/yurXOs87wgPhyKINdobdrXxAABjChHtChbgAMrgWUkkrTvFioK3CZe4DIdyJA4P6luMDPlcs
	E
X-Google-Smtp-Source: AGHT+IFHsVuIAjNQqVJGue3GE09l8z/EPmOE/RAy+8A1lBkRKR6UUVNs1gw1zDTm2s38a1AMteOboA==
X-Received: by 2002:a17:907:d94:b0:a77:e6dd:7f35 with SMTP id a640c23a62f3a-a780d22e38bmr228179966b.13.1720533218114;
        Tue, 09 Jul 2024 06:53:38 -0700 (PDT)
Message-ID: <594eaeab-20d4-4531-a0e2-3e5b317dc21d@citrix.com>
Date: Tue, 9 Jul 2024 14:53:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Build system mess in stubdom
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Juergen Gross <jgross@suse.com>, Anthony PERARD <anthony.perard@vates.tech>
References: <44679adf-e657-4d38-b1e3-2bebb34f57a0@citrix.com>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <44679adf-e657-4d38-b1e3-2bebb34f57a0@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[Correct Anthony's email]

~Andrew

On 09/07/2024 2:49 pm, Andrew Cooper wrote:
> Hello,
>
> I'm trying to investigate why stubdom/ is fatally failing now with a
> rebuilt ArchLinux container (GCC 14).
>
> It is ultimately:
>
>> ../../../../../newlib-1.16.0/newlib/libc/reent/signalr.c:61:14: error:
>> implicit declaration of function ‘kill’; did you mean ‘_kill’?
>> [-Wimplicit-function-declaration]
>>    61 |   if ((ret = _kill (pid, sig)) == -1 && errno != 0)
>>       |              ^~~~~
>> make[7]: *** [Makefile:483: lib_a-signalr.o] Error 1
> which doesn't make sense, but is a consequence of the ifdefary in
> newlib/libc/include/_syslist.h
>
> However, we've got problems ahead of that.
>
> First of all, with:
>
> [user@89aef714763e build]$ ./configure --disable-xen --disable-tools
> --disable-docs
> <snip>
> Will build the following stub domains:
>   xenstore-stubdom
>   xenstorepvh-stubdom
> configure: creating ./config.status
> config.status: creating ../config/Stubdom.mk
>
> both a top level `make` and `make stubdom` end up building all of tools,
> contrary to comments in the makefile.
>
> `make build-stubdom` does (AFAICT) only build stubdom.
>
> However, building just the xenstore stubdoms recursively builds all of
> tools/libs/ even though only some are needed.  This includes libxl which
> then recurses further to get tools/libacpi, and libxenguest which
> recurses further to get libelf from Xen.
>
> What I can't figure out is why xenstore ends up pulling in all of newlib.
>
> Semi-irrespective, there's no way we can keep on bodging newlib to
> compile with newer compilers.  There's a whole bunch of other warnings
> (strict-prototypes, dangling-else, maybe-uninitialized, unused-function,
> pointer-sign, unused-variable) primed ready to cause breakage in any
> environment which makes these error by default.
>
> I'm going to be making ArchLinux non-blocking because it is a rolling
> distro, but we also can't do nothing here.
>
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 14:10:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 14:10:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756309.1164872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRBY9-0001hm-8u; Tue, 09 Jul 2024 14:10:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756309.1164872; Tue, 09 Jul 2024 14: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 1sRBY9-0001hf-4j; Tue, 09 Jul 2024 14:10:33 +0000
Received: by outflank-mailman (input) for mailman id 756309;
 Tue, 09 Jul 2024 14:10:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ELTS=OJ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRBY8-0001hZ-90
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 14:10:32 +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 ff874be1-3dfc-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 16:10:30 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a77c349bb81so459274066b.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 07:10:30 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a73039fsm80822466b.96.2024.07.09.07.10.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Jul 2024 07:10: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: ff874be1-3dfc-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720534229; x=1721139029; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Dc50ud25/1CssaRGBd85ngjcalVklR1C8UxKfKGDLt4=;
        b=kqqsxXIz3GGqnv5CXfkAd3avk7F3YufFWnNExBtyTfb+W/hdnC3gvlhRQFz+LJcYoI
         jXf76oLw9sTPdmIBC5phhn2XirooOlBqY/6z9ztuA0pvOm5R+E8ZzpHy4XZRA8cXogM2
         iqYeP4YnKS6BwrYugVwwvgIvUnQlRdBLmYZn6U2P03h1VYxc1mxkczbJabUyFaLEV4U1
         aED/NkQqJxd9NY+93ODjvYa56+lz+3ybsvXg+q3awF+TtHPuZByguSaplLzRpBmXpnws
         NzgZAL/sMG6lLTqhk0mvTjwufxLg6S/0GJJ+lHJH6RsAD0s2ByCYlMXM65licXam6+T5
         1U8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720534229; x=1721139029;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Dc50ud25/1CssaRGBd85ngjcalVklR1C8UxKfKGDLt4=;
        b=HHOt1iogzmTgBm5LfweYSo6WhSCpNawxxwNvDT/R3elrwFE4xc9WOIoAKDqOykwEPT
         LBUysKKP4pNxvTbqT2tOdyRRHtIUYPx11ziLUqMCXIxNwKm6Za55QASMDofXM2JJBeEF
         g+gLthXrAPGL+iy4E6pmjQhJKMsKfbTMoX97GxGtzyovlPMVEZmDXMBqqcCXnqs1tf3Y
         vqaNwU1jx3C5b3guNEs43Jl2hMoqYMae/cmx5A+ToOIfTtiLV7OQwQg90MwtLxWmaJ3c
         QdBzSQ/CWe0rLT+ZUnzklBqYK5RcoZIloPEmaTiKpmEdPA/ZU5GnRSi7UHZ5zx2/crxS
         n5zQ==
X-Forwarded-Encrypted: i=1; AJvYcCVlxVytvtfCDGRWMdOwf9rXqJzc2ZQpphOYYzWZ8bHrY+IpRW0IFu65lSExVXb03M0gaIlKfK8rglRZYfeml2U8UDS5yNIw1p+4IPl0RGk=
X-Gm-Message-State: AOJu0Yz1MjYCrpyPjup66A2OakVgF5SSz8ASnatqemyNFLYhNRXNlpsY
	vAttagEj/ZBj7ewMfK5UtipS0kKsf4Cmt5uZ59GceITf8t8UasjB
X-Google-Smtp-Source: AGHT+IGIoOrr5n3tA1aA/pyAJA8sqocf3OoMYH+99sllXpHD7BSt2DrS3GTz1KET73sujcgrnEAyrg==
X-Received: by 2002:a17:906:c08e:b0:a77:c827:2cb2 with SMTP id a640c23a62f3a-a780b7053a8mr143002066b.44.1720534229366;
        Tue, 09 Jul 2024 07:10:29 -0700 (PDT)
Message-ID: <82b2047ac7d1221eb73f65e55e1771ad21cdf043.camel@gmail.com>
Subject: Re: [PATCH for-4.19?] stubdom: Remove more leftovers of caml-stubdom
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Juergen Gross <jgross@suse.com>
Date: Tue, 09 Jul 2024 16:10:28 +0200
In-Reply-To: <20240709123907.2400138-1-andrew.cooper3@citrix.com>
References: <20240709123907.2400138-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-09 at 13:39 +0100, Andrew Cooper wrote:
> Fixes: e536a497545f ("stubdom: Remove caml-stubdom")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Juergen Gross <jgross@suse.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> For 4.19.=C2=A0 This is additional tidying to a removal in 4.19, which
> will
> otherwise need backporting if it misses 4.19.
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii
> ---
> =C2=A0config/Stubdom.mk.in | 3 ---
> =C2=A01 file changed, 3 deletions(-)
>=20
> diff --git a/config/Stubdom.mk.in b/config/Stubdom.mk.in
> index 5990fc4e04f9..b399d77740e8 100644
> --- a/config/Stubdom.mk.in
> +++ b/config/Stubdom.mk.in
> @@ -26,9 +26,6 @@ LWIP_URL=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 :=3D @LWIP_URL@
> =C2=A0GRUB_VERSION=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :=3D @GRUB_V=
ERSION@
> =C2=A0GRUB_URL=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 :=3D @GRUB_URL@
> =C2=A0
> -OCAML_VERSION=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :=3D @OCAML_VERSION@
> -OCAML_URL=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :=
=3D @OCAML_URL@
> -
> =C2=A0GMP_VERSION=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :=3D @G=
MP_VERSION@
> =C2=A0GMP_URL=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 :=3D @GMP_URL@
> =C2=A0
>=20
> base-commit: c4ebeb79d10a25e8d48a71cdd381898265267e67



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 14:16:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 14:16:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756315.1164882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRBe5-0002NO-Sl; Tue, 09 Jul 2024 14:16:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756315.1164882; Tue, 09 Jul 2024 14:16:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRBe5-0002NH-Op; Tue, 09 Jul 2024 14:16:41 +0000
Received: by outflank-mailman (input) for mailman id 756315;
 Tue, 09 Jul 2024 14:16: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=7TZB=OJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sRBe5-0002NB-26
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 14:16:41 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dbd36e3f-3dfd-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 16:16:39 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2eaae2a6dc1so75581401fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 07:16:39 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4266f736939sm43643785e9.37.2024.07.09.07.16.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 07:16: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: dbd36e3f-3dfd-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720534599; x=1721139399; 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=lvEGfOFFHNrrKM0QkQGSTaQxFAfHL0jf/PrpM9vaCfU=;
        b=NXDYFBqy+ak0Jo5iKUADVCp0n9EFpvVOw1Y9UUe+faY3MnCVQVojBrlsabO0EZTQ3u
         H3vNy7c5qJaClzY947M06Z/UXsCet0DKGnc2eCQjtRJiuj1mBxTEyBi0xOiflhISoBnr
         KNGXtIy7IWr6Ktv6opWQqlKDp1Egs/lZGIYEPu66b3iv63WuN4qStgXgP8xiofzwGocG
         TeUPZrcxuzZFs2WvTJZnzAp5YhDICj5M3N6jdFMjLZEFQGL6HTMBadwP+BBmuKjpLSTT
         T7xNlPn1esZ1jGWs01GZqUB48is062/4oCPzPoiMNOmwpXbo8iPmD88vV4InN/uRI6ok
         jSNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720534599; x=1721139399;
        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=lvEGfOFFHNrrKM0QkQGSTaQxFAfHL0jf/PrpM9vaCfU=;
        b=FiotrMhfvzUipRjJaSu0KbIIXAdcsDO+sMdqJOZq4yNoD4Uxscvxeq0MPVgU5J70Bs
         G1SByHHW9nPOBUct5cDAzn/woshCLjv38+vySkt2+xz4sJrT6JTkKXJ/N2QphQKYa/ge
         981Q4ozujtgorsy7/+O2TkIZ6L++vhxLkHvyrDizECEEYAgTpeFvitH32Zh2eHUSfXj9
         zmTf6oEvTDmRZJFMkNE+nrXzNUrFGV2immfErWVPKS4i8WIccKpXkdNpvdAYGA3vNSVx
         sBSDTxym6po2nnP4ro8QT6/DShuL/sfKRXd26cbAi4mR74MjfV91FyAhL7RfWMV0RXA/
         sn5g==
X-Forwarded-Encrypted: i=1; AJvYcCXLNcYgsZwLNzCaF54MvVvzK8M6TkLbpR1tb/kqIX9rE36nHVp83ZoMs+N7R1eyIZlj0XRINegy1JjG9p2130mzQ9R6rPueZlMuqIL9FSc=
X-Gm-Message-State: AOJu0Yz83Dk+Z8xODhrcBcslz0w0RFIAscvgiyQgQEcQ+5PKRFfJXyRz
	SIOs+TBSCU6O/NkOLsd84rgPM57ivO/OQqNlysHTKkOy5utG4/PsC2G2gU60sjQ=
X-Google-Smtp-Source: AGHT+IGpr9knB4AbdAVZZyCyZkoeyI+5+/BqzPGWUigUXq5xHrOtDZJtXgN6ohL8SC0uabT3J3MtMg==
X-Received: by 2002:a05:651c:23b:b0:2ec:56b9:258b with SMTP id 38308e7fff4ca-2eeb316b00amr23444721fa.33.1720534599107;
        Tue, 09 Jul 2024 07:16:39 -0700 (PDT)
Message-ID: <e1d345fc-cb88-4aed-9d57-7cad4647d161@suse.com>
Date: Tue, 9 Jul 2024 16:16:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19?] stubdom: Remove more leftovers of caml-stubdom
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240709123907.2400138-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240709123907.2400138-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 09.07.24 14:39, Andrew Cooper wrote:
> Fixes: e536a497545f ("stubdom: Remove caml-stubdom")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 14:56:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 14:56:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756324.1164899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRCG3-0008VB-Of; Tue, 09 Jul 2024 14:55:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756324.1164899; Tue, 09 Jul 2024 14:55:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRCG3-0008V4-Lw; Tue, 09 Jul 2024 14:55:55 +0000
Received: by outflank-mailman (input) for mailman id 756324;
 Tue, 09 Jul 2024 14: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRCG2-0008Uy-1m
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 14:55:54 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 564f9f22-3e03-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 16:55:52 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-52ea7d2a039so4340901e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 07:55: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
 d2e1a72fcca58-70b4397c50csm1961803b3a.147.2024.07.09.07.55.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 07: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: 564f9f22-3e03-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720536952; x=1721141752; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bJVlmY3QXAVZb+OHdpSbD1fn+L+agF0mvGcD2maAxSs=;
        b=fYBjW8tYhdrnyefymsU/5piRw/Yb5BQQ21fahjujKSbHiD4M/q1oXh0db9Dfnrtn9B
         eC/GaC5VOvUy2rNDEjkw0Hsav4efedUmEVrP90hOu55dvb5stPmVmPjp15PYgqY0/qnJ
         46W7KP3NLWcovGlwTVx3/Yo7UiNi1wjDEkx5ihPIrRJLMvR+3sOZK26AdWctIm1ZauNL
         c9OCGAcHM3QRkipbC4anBrO8d9uN2n4qNzK3YuJDCAykHZ49peRtwyxeTSiMPv/uVXvD
         e2yyzmFTA/DLVojcNue5VKBluv+Y0QBZ5JQ0itdcBJxti+LXSpwicbFPwu5qBqetlgPQ
         l1+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720536952; x=1721141752;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bJVlmY3QXAVZb+OHdpSbD1fn+L+agF0mvGcD2maAxSs=;
        b=icbBTvWNJMd+5JQR5L9AlR2uGRr8Wm4aenMWIkel6pzoRaQs5D3g3CLJj0Ji2emimh
         d/eQRbQ7U3kKR7Xl7GXOmzFeAUGv6SYl7aWhC+2iv6YclJGY16TQi6sfSpWpc8h7Onwb
         0cz+fuppKT+irXkJm9Q3tcaxpqy2qJIXtEGSGIiCCJKmvgBPuXft2/g7FdsUdsarY169
         TEQeSop3ExQ13M0ooUGnsjeuEiWlUfeTUzcU7hkFMBu3eoNbCeeWYUfPBKpYsNnPD89M
         gZWCBeJk+pTGeZMioNZIHvz6ERke74wSjV7BQis4uEq2FRnDsg/oqmGHJbzxtjt94XMo
         X3/Q==
X-Forwarded-Encrypted: i=1; AJvYcCVEyCRG/X9NjqPD8uelAo2MKKDRkCpu9qS3Hex3eiels4Xif1hAJDPHRjdz3r1MclVaCdT5mjRjucaOVUfD/1pPY2jA1n948CV3zDE4J5c=
X-Gm-Message-State: AOJu0YyHQjxBthxnUjoM7REqqfDs62TZinyNKlf3ZhMSkEJe+Mht6Slp
	MFx062Hie6AzlyB+ilQvuXJjg62fhw1RN7SgKuow2F38IPk+CJGwJSMAnV04LQ==
X-Google-Smtp-Source: AGHT+IFVm4SGTNTAy+cfjMQYHiiXRGvvdHWbRgFouHq9N1TWBJjdCcWVqDRNae1DS9Sx6Q28ZnKjPg==
X-Received: by 2002:a05:6512:3e0a:b0:52c:e012:efad with SMTP id 2adb3069b0e04-52eb9991242mr2143937e87.12.1720536952011;
        Tue, 09 Jul 2024 07:55:52 -0700 (PDT)
Message-ID: <ad9b8dab-3f1c-4f26-845b-af88f96ee1ee@suse.com>
Date: Tue, 9 Jul 2024 16:55:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Build system mess in stubdom
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Juergen Gross <jgross@suse.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Anthony Perard <anthony@xenproject.org>, Charles Arnold <CARNOLD@suse.com>
References: <44679adf-e657-4d38-b1e3-2bebb34f57a0@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: <44679adf-e657-4d38-b1e3-2bebb34f57a0@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.07.2024 15:49, Andrew Cooper wrote:
> I'm trying to investigate why stubdom/ is fatally failing now with a
> rebuilt ArchLinux container (GCC 14).
> 
> It is ultimately:
> 
>> ../../../../../newlib-1.16.0/newlib/libc/reent/signalr.c:61:14: error:
>> implicit declaration of function ‘kill’; did you mean ‘_kill’?
>> [-Wimplicit-function-declaration]
>>    61 |   if ((ret = _kill (pid, sig)) == -1 && errno != 0)
>>       |              ^~~~~
>> make[7]: *** [Makefile:483: lib_a-signalr.o] Error 1
> 
> which doesn't make sense, but is a consequence of the ifdefary in
> newlib/libc/include/_syslist.h

Charles, who is looking after our Xen packages, had run into exactly this.
His workaround patch (added to the list of patches applied on top of
newlib by stubdom/Makefile) is below, but in the given form I didn't expect
it would be upstreamable. The diagnostics by the compiler may be a little
misleading ...

Jan

--- newlib-1.16.0/newlib/libc/stdlib/wcstoull.c
+++ newlib-1.16.0/newlib/libc/stdlib/wcstoull.c
@@ -127,6 +127,10 @@ PORTABILITY

 #ifndef _REENT_ONLY

+#if __GNUC__ >= 14
+#pragma GCC diagnostic ignored "-Wimplicit-function-declaration"
+#endif
+
 unsigned long long
 _DEFUN (wcstoull, (s, ptr, base),
 	_CONST wchar_t *s _AND
--- newlib-1.16.0/newlib/libc/reent/signalr.c
+++ newlib-1.16.0/newlib/libc/reent/signalr.c
@@ -49,6 +49,10 @@ DESCRIPTION
 	<<errno>>.
 */

+#if __GNUC__ >= 14
+#pragma GCC diagnostic ignored "-Wimplicit-function-declaration"
+#endif
+
 int
 _DEFUN (_kill_r, (ptr, pid, sig),
      struct _reent *ptr _AND
--- newlib-1.16.0/newlib/doc/makedoc.c
+++ newlib-1.16.0/newlib/doc/makedoc.c
@@ -798,6 +798,7 @@ DEFUN( iscommand,(ptr, idx),
 }


+static unsigned int
 DEFUN(copy_past_newline,(ptr, idx, dst),
       string_type *ptr AND
       unsigned int idx AND



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 15:03:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 15:03:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756331.1164910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRCNZ-0001qW-FY; Tue, 09 Jul 2024 15:03:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756331.1164910; Tue, 09 Jul 2024 15: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 1sRCNZ-0001qP-Ce; Tue, 09 Jul 2024 15:03:41 +0000
Received: by outflank-mailman (input) for mailman id 756331;
 Tue, 09 Jul 2024 15:03:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRCNX-0001qF-Ix; Tue, 09 Jul 2024 15:03:39 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRCNX-0005wb-Fi; Tue, 09 Jul 2024 15:03:39 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRCNX-0007U3-4c; Tue, 09 Jul 2024 15:03:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRCNX-0004os-45; Tue, 09 Jul 2024 15:03:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kOdS2afPtqBw0KbkJvUdz1VbsoozpIVq6JLbPoVQGLE=; b=A24661jZIQ46CM70lnQQ8SxEnJ
	Ch5a91u+HeLJaLXZRhup682oNboLgu7K4cRCf0ZPThHBAmDZOt1yLKDhz4PxcIAcFrvRKAoh2Bqa3
	8MRqGbLCcnlvkhyV9yiC1KZhQnA+OcLUC7JIZWQ28s7t3a1JstOlmAIE92VspXGDndog=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186740-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186740: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=426b69830efff788f2c17a4b920a84d6e08739c8
X-Osstest-Versions-That:
    ovmf=95a6892aacfef6c7862058fcdc495f6b35df9367
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Jul 2024 15:03:39 +0000

flight 186740 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186740/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 426b69830efff788f2c17a4b920a84d6e08739c8
baseline version:
 ovmf                 95a6892aacfef6c7862058fcdc495f6b35df9367

Last test of basis   186731  2024-07-08 17:11:12 Z    0 days
Testing same since   186740  2024-07-09 13:43:04 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Leif Lindholm <quic_llindhol@quicinc.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   95a6892aac..426b69830e  426b69830efff788f2c17a4b920a84d6e08739c8 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 15:19:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 15:19:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756342.1164919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRCcR-0003sO-Sb; Tue, 09 Jul 2024 15:19:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756342.1164919; Tue, 09 Jul 2024 15: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 1sRCcR-0003sH-Pm; Tue, 09 Jul 2024 15:19:03 +0000
Received: by outflank-mailman (input) for mailman id 756342;
 Tue, 09 Jul 2024 15:19: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=cUMd=OJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRCcQ-0003sB-MV
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 15:19:02 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 917e22b0-3e06-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 17:19:00 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a77abe5c709so650273266b.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 08:19:00 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a86f62bsm85205566b.199.2024.07.09.08.18.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 08:18: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: 917e22b0-3e06-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720538340; x=1721143140; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=s5Mk7IGcFNKWg7WV1x2+iacTKlJrxVFxONSphyOKE14=;
        b=bVO2aNbw0yKd62OrDctbum7GQz/PU/14SuW+pWZHbWYnrXStuljAvWok0+85exSPwL
         Zq06dWwFhStmXBzLjMwwgkCxH41G2zr04Esj8RtFFIVxhW2MU3ZBMZmQkCYANvmTGEfL
         75oytpUJXpfRFpMKYzKUWEloYud3yH+cMdTQc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720538340; x=1721143140;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s5Mk7IGcFNKWg7WV1x2+iacTKlJrxVFxONSphyOKE14=;
        b=WwLu5h6rKUh6HuF+D4DpOB7PEKbHRXuL7lJ53Nbp4li0JeMqN0nJia5Rc1Lb7PjgV3
         0p/ULQ96Q0FDA5kzmt/1/WMO6qzT31jXxdXzkrjU0I0VAXggCCOtq4B1Iybhm21LsImf
         Qc64OjKZCbI4YUhq51Y/QRDNMHq9aUuDWxMURtvyEzHvBgY58fzo1pMqGCSan4+VF27N
         CZJMziAZ8eVPKxu8i28OCBUBavGXRx+hEffK3FmPvoGUf37mmR6C18tB8nOOfWo4IStG
         /W5py4KeJ4yXVcN0bn4tXP6jyClOUphF4klCASrYxyeJOndMVFAS/pgOVODIHgBIgSko
         qUCg==
X-Forwarded-Encrypted: i=1; AJvYcCXsP6vpttldOVYS7MccRet3rq3HE9gTg6kyRLDXpWU0cFPVZV8K2lVsr02B5gsASpl65zkCXwPsX+eT3Tp9A2Ji2Aa3l9g1YxKeNnfQLok=
X-Gm-Message-State: AOJu0YxH4jPK5jrlX3Lxb2uJ8r1RliKXMXJto5rjbqgQiLg6q3152UAU
	1LAe4ZXJq6c3pvWYX19J2Go3hWJZiDyxw72q8+zcmWNlFrjtwsOHGWqyPFMn3gU=
X-Google-Smtp-Source: AGHT+IE4lE8WdhnPQwHXfTKCn1P/gp09PrNcjf0NNTbq+7mcLZEJgijQFMlR2I9wSDFRbXCGbVZDyA==
X-Received: by 2002:a17:907:774d:b0:a6f:af58:efac with SMTP id a640c23a62f3a-a780b6b1aeamr162575266b.25.1720538339840;
        Tue, 09 Jul 2024 08:18:59 -0700 (PDT)
Message-ID: <627b5c3f-be81-42c5-aa99-fa9ff463f072@citrix.com>
Date: Tue, 9 Jul 2024 16:18:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Build system mess in stubdom
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Juergen Gross <jgross@suse.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Anthony Perard <anthony@xenproject.org>, Charles Arnold <CARNOLD@suse.com>
References: <44679adf-e657-4d38-b1e3-2bebb34f57a0@citrix.com>
 <ad9b8dab-3f1c-4f26-845b-af88f96ee1ee@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ad9b8dab-3f1c-4f26-845b-af88f96ee1ee@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/07/2024 3:55 pm, Jan Beulich wrote:
> On 09.07.2024 15:49, Andrew Cooper wrote:
>> I'm trying to investigate why stubdom/ is fatally failing now with a
>> rebuilt ArchLinux container (GCC 14).
>>
>> It is ultimately:
>>
>>> ../../../../../newlib-1.16.0/newlib/libc/reent/signalr.c:61:14: error:
>>> implicit declaration of function ‘kill’; did you mean ‘_kill’?
>>> [-Wimplicit-function-declaration]
>>>    61 |   if ((ret = _kill (pid, sig)) == -1 && errno != 0)
>>>       |              ^~~~~
>>> make[7]: *** [Makefile:483: lib_a-signalr.o] Error 1
>> which doesn't make sense, but is a consequence of the ifdefary in
>> newlib/libc/include/_syslist.h
> Charles, who is looking after our Xen packages, had run into exactly this.
> His workaround patch (added to the list of patches applied on top of
> newlib by stubdom/Makefile) is below, but in the given form I didn't expect
> it would be upstreamable. The diagnostics by the compiler may be a little
> misleading ...
>
> Jan

Looking through newlib's upstream, I'm going to experiment with updating
to 4.4.0 (Dec 2023).

It's the most recent version, and it's marginally ahead of a very large
number of "make build work with GCC 14" commits.

I feel this is going to be less effort than continuing to duct tape an
obsolete version for newer compilers.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 15:21:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 15:21:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756346.1164930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRCeT-0005HL-7d; Tue, 09 Jul 2024 15:21:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756346.1164930; Tue, 09 Jul 2024 15: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 1sRCeT-0005HE-3u; Tue, 09 Jul 2024 15:21:09 +0000
Received: by outflank-mailman (input) for mailman id 756346;
 Tue, 09 Jul 2024 15:21: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=u1XU=OJ=suse.com=carnold@srs-se1.protection.inumbo.net>)
 id 1sRCeS-0005H8-C9
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 15:21:08 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc5c1ad4-3e06-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 17:21:06 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2eaa89464a3so55823771fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 08:21:06 -0700 (PDT)
Received: from [172.16.0.12] (c-76-140-71-54.hsd1.ut.comcast.net.
 [76.140.71.54]) by smtp.gmail.com with ESMTPSA id
 e9e14a558f8ab-38a49555913sm4587145ab.25.2024.07.09.08.21.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 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: dc5c1ad4-3e06-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720538465; x=1721143265; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=AdXh7hURo3GfaojHqgajUmu19rwMkfoV3XNvh/xNQb0=;
        b=dmIlPucbOM67QQlaEHbeQIAiwnHXqRgOWNvyHXqT6nPf06B00QxrqBFq5JpjMqeU7T
         5tLdJQkqrUDujqDRrvDMS9hDP2e4faNiLv+yLPnWkzIQJjdcWio40BkgPK1LZFeeRJ03
         Ap495Uq7zIiyYlYQM+aPXsM5OE60okQPOU/nd7yZL+GDLbReODNPBzkavOcP1VI/K04q
         QzoxyzP0fffYTWc2e19xETg2FuES8mbW8R5TDYun9Lf9ATogLJHW63pKcH7BJAGI4kYQ
         20ZUrut8ahGEF9mbIEkRPHUXuk5qePCY+LasHowgEFONqEPewBiY+5iAQXbsaafIktO5
         ntgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720538465; x=1721143265;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=AdXh7hURo3GfaojHqgajUmu19rwMkfoV3XNvh/xNQb0=;
        b=rzVOkAGZhaiRBIoltRdqeG5GLws1H7lWC7jOifan5iJbZmoauv2/eEQv/+sUidhrd9
         +Ve8PYcg3J9eArTU+z29mMj2C9mRlYD4IBbMbVtwL1AjgabjEhD787hY15TxZ7X09TYc
         WgvJSUF/JPeYWjZRFi+wDMc04ysvBQUkEX1HTO/kxYQ+Jj/gDSlB4+pa415CzYhw50+s
         wwFcxd8J+GWddGtqjuv1gTge1PlU7zSxfglY61KWihCJF1xdFRqoDoQUStOAaROUWcEn
         Xw10BR86/JRIdKTA8cZ1IE3bjNL71q4ud2GodvzUaWZ0wdNshUYP/RxvNlCVbaS27zcU
         1+Rw==
X-Forwarded-Encrypted: i=1; AJvYcCWm5jnxQ5mjNiv73pnQ9m52jKfrwNLmHdqYw9QhZHOCTUOhW2JZCQHzITsvKcgssshnRTVQNGJXqK5uIQe8xV1srZDMVE/cAPCOO3G59Fo=
X-Gm-Message-State: AOJu0YyEMqo/b1VRj4aZ23RZM1Yj1QJryprxa5NQ+/K5CO4kgBPIFFlV
	eHKv8r018T4jTeNwtbzuJzprDPZOE3n3l24r879oGfdvUVaKjLnKGm4nNLUs3vg=
X-Google-Smtp-Source: AGHT+IF/Wa3VhyqMeLwurPEMgPpkhSUg2/uYJOumUjpXYSTmf9SYkIikinZnR5pUOEephQSGcRr3ew==
X-Received: by 2002:a05:651c:1a0a:b0:2ec:5f6e:65ea with SMTP id 38308e7fff4ca-2eeb3188ccamr24222771fa.38.1720538465427;
        Tue, 09 Jul 2024 08:21:05 -0700 (PDT)
Message-ID: <4e7028a3-b513-4a97-adef-dfc25d9607b9@suse.com>
Date: Tue, 9 Jul 2024 09:21:10 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Build system mess in stubdom
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Juergen Gross <jgross@suse.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Anthony Perard <anthony@xenproject.org>
References: <44679adf-e657-4d38-b1e3-2bebb34f57a0@citrix.com>
 <ad9b8dab-3f1c-4f26-845b-af88f96ee1ee@suse.com>
From: Charles Arnold <carnold@suse.com>
In-Reply-To: <ad9b8dab-3f1c-4f26-845b-af88f96ee1ee@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 7/9/24 8:55 AM, Jan Beulich wrote:
> On 09.07.2024 15:49, Andrew Cooper wrote:
>> I'm trying to investigate why stubdom/ is fatally failing now with a
>> rebuilt ArchLinux container (GCC 14).
>>
>> It is ultimately:
>>
>>> ../../../../../newlib-1.16.0/newlib/libc/reent/signalr.c:61:14: error:
>>> implicit declaration of function ‘kill’; did you mean ‘_kill’?
>>> [-Wimplicit-function-declaration]
>>>     61 |   if ((ret = _kill (pid, sig)) == -1 && errno != 0)
>>>        |              ^~~~~
>>> make[7]: *** [Makefile:483: lib_a-signalr.o] Error 1
>> which doesn't make sense, but is a consequence of the ifdefary in
>> newlib/libc/include/_syslist.h
> Charles, who is looking after our Xen packages, had run into exactly this.
> His workaround patch (added to the list of patches applied on top of
> newlib by stubdom/Makefile) is below, but in the given form I didn't expect
> it would be upstreamable. The diagnostics by the compiler may be a little
> misleading ...

This problem showed up only with gcc14 when it began treating what was 
previously a warning as an error.

Charles

>
> Jan
>
> --- newlib-1.16.0/newlib/libc/stdlib/wcstoull.c
> +++ newlib-1.16.0/newlib/libc/stdlib/wcstoull.c
> @@ -127,6 +127,10 @@ PORTABILITY
>
>   #ifndef _REENT_ONLY
>
> +#if __GNUC__ >= 14
> +#pragma GCC diagnostic ignored "-Wimplicit-function-declaration"
> +#endif
> +
>   unsigned long long
>   _DEFUN (wcstoull, (s, ptr, base),
>   	_CONST wchar_t *s _AND
> --- newlib-1.16.0/newlib/libc/reent/signalr.c
> +++ newlib-1.16.0/newlib/libc/reent/signalr.c
> @@ -49,6 +49,10 @@ DESCRIPTION
>   	<<errno>>.
>   */
>
> +#if __GNUC__ >= 14
> +#pragma GCC diagnostic ignored "-Wimplicit-function-declaration"
> +#endif
> +
>   int
>   _DEFUN (_kill_r, (ptr, pid, sig),
>        struct _reent *ptr _AND
> --- newlib-1.16.0/newlib/doc/makedoc.c
> +++ newlib-1.16.0/newlib/doc/makedoc.c
> @@ -798,6 +798,7 @@ DEFUN( iscommand,(ptr, idx),
>   }
>
>
> +static unsigned int
>   DEFUN(copy_past_newline,(ptr, idx, dst),
>         string_type *ptr AND
>         unsigned int idx AND
>



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 15:34:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 15:34:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756355.1164939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRCrN-0007DF-89; Tue, 09 Jul 2024 15:34:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756355.1164939; Tue, 09 Jul 2024 15: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 1sRCrN-0007D8-5V; Tue, 09 Jul 2024 15:34:29 +0000
Received: by outflank-mailman (input) for mailman id 756355;
 Tue, 09 Jul 2024 15: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=WrzE=OJ=bounce.vates.tech=bounce-md_30504962.668d587f.v1-3754c977cdcf4829aad8fd604c15bbf4@srs-se1.protection.inumbo.net>)
 id 1sRCrL-0007Cj-UZ
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 15:34:28 +0000
Received: from mail186-1.suw21.mandrillapp.com
 (mail186-1.suw21.mandrillapp.com [198.2.186.1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b86ea81f-3e08-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 17:34:25 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-1.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4WJQ5X0VWwzBsThV7
 for <xen-devel@lists.xenproject.org>; Tue,  9 Jul 2024 15:34:24 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3754c977cdcf4829aad8fd604c15bbf4; Tue, 09 Jul 2024 15:34: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: b86ea81f-3e08-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720539264; x=1720799764;
	bh=W2Yco3DeBSmvqyLPaqhipGEiiVTOQWY9vKFEEvqxBXE=;
	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=zsensLUv+3XsRVDzhjZDhXrZUL0bH2jv1CwzqRX5ch4J+t/vxSvXhECfJ5mYyBuXL
	 T68ePV9kvVK9bo25os5KK+aUVa3q0a6/EqQZzFelRfXhUVeG9n4XASvC+2GvLOjJhb
	 UzQpXN37QdfhkLmaWSdh/zYc9JFsrMp9AIIiPLO9GZhKSs9a74yFQNw5eZfQ81Eb5P
	 Hdgktfaaauz4AXUs4rkx4TpLrCXzzdCJJ5dlRWAUhAfCnyfPYWj79CBi+5mjIPFUtf
	 /qDMMfeH9rDR83aiMn6A56xvfsHk9BMsLB3GkR3uQnUDNMZODUpsf2NIj1TaSBZa2z
	 vyim4zid/GA5A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720539264; x=1720799764; i=anthony.perard@vates.tech;
	bh=W2Yco3DeBSmvqyLPaqhipGEiiVTOQWY9vKFEEvqxBXE=;
	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=NXcPh26uhxhcC5FaldrE6LoTLZ2vvrAPuQHMDm7TPoHP856tjyg4wiUBJvEFihLw6
	 m6v3HbxmbuuRIbQ6sXFhg9LsibIZT+HX3rXjJ4bhQffXYotlJrs81s/h99wjsaTUdQ
	 4PnIhgPaD/tkIb4u6I2VfIdLDrzeKXcpBMh1GTdjchI5KMj/oGAtsEmd5tLtCjP+YK
	 QGiWAZf4KaQFkL6LMw6Mh0GvkLLQ+Gu3urzQROJ9G6w0/lSz+1wPwcQSkEduNvZoty
	 avQVYoTEu1B57zZywYh1ut/6eVhCWR6wbCrOrnjSJXCkJBUSgkUS/ZUQYLTYj4y6E/
	 mGKyw/pE3RzzA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20Build=20system=20mess=20in=20stubdom?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720539255227
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Juergen Gross <jgross@suse.com>
Message-Id: <Zo1YdgWj7E4doGEU@l14>
References: <44679adf-e657-4d38-b1e3-2bebb34f57a0@citrix.com>
In-Reply-To: <44679adf-e657-4d38-b1e3-2bebb34f57a0@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.3754c977cdcf4829aad8fd604c15bbf4?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240709:md
Date: Tue, 09 Jul 2024 15:34:23 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Jul 09, 2024 at 02:49:57PM +0100, Andrew Cooper wrote:
> Hello,
> 
> I'm trying to investigate why stubdom/ is fatally failing now with a
> rebuilt ArchLinux container (GCC 14).
> 
> It is ultimately:
> 
> > ../../../../../newlib-1.16.0/newlib/libc/reent/signalr.c:61:14: error:
> > implicit declaration of function =E2=80=98kill=E2=80=99; did you mean =
=E2=80=98_kill=E2=80=99?
> > [-Wimplicit-function-declaration]
> > =C2=A0=C2=A0 61 |=C2=A0=C2=A0 if ((ret =3D _kill (pid, sig)) =3D=3D -1 =
&& errno !=3D 0)
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^~~~~
> > make[7]: *** [Makefile:483: lib_a-signalr.o] Error 1
> 
> which doesn't make sense, but is a consequence of the ifdefary in
> newlib/libc/include/_syslist.h
> 
> However, we've got problems ahead of that.
> 
> First of all, with:
> 
> [user@89aef714763e build]$ ./configure --disable-xen --disable-tools
> --disable-docs
> <snip>
> Will build the following stub domains:
> =C2=A0 xenstore-stubdom
> =C2=A0 xenstorepvh-stubdom
> configure: creating ./config.status
> config.status: creating ../config/Stubdom.mk
> 
> both a top level `make` and `make stubdom` end up building all of tools,
> contrary to comments in the makefile.

:-(, I never noticed that but yeah, that rules is what end up building
the tools:

    install-stubdom: mini-os-dir install-tools

So unless you use one of the build targets, the top makefile end-up
wanting to also install (or dist) the tools. I don't think we can change
that:
    dc497635d93f ("build system: make install-stubdom depend on install-too=
ls again")

> `make build-stubdom` does (AFAICT) only build stubdom.

How do you make that works with `./configure --disable-tools` ? I've got
this:
    $ make build-stubdom
    <snip>
    make -C tools/include build
    ....tools/include/../../tools/Rules.mk:212: *** You have to run ./confi=
gure before building or installing the tools.  Stop.
    make: *** [Makefile:44: build-tools-public-headers] Error 2

> However, building just the xenstore stubdoms recursively builds all of
> tools/libs/ even though only some are needed.=C2=A0 This includes libxl w=
hich
> then recurses further to get tools/libacpi, and libxenguest which
> recurses further to get libelf from Xen.

libxl? how? Did you run `make -C stubdom xenstore-stubdom`? Or maybe you
used ./configure to select only "xenstore-stubdom"? In that later case
only the build* targets will only build stubdom, the default target as
well as dist* and install* targets will want to "install-tools" as seen
above.

> What I can't figure out is why xenstore ends up pulling in all of newlib.

I think it's because of these in stubdom/Makefile:
    xenstore: $(CROSS_ROOT) xenstore-minios-config.mk
    $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci

> Semi-irrespective, there's no way we can keep on bodging newlib to
> compile with newer compilers.=C2=A0 There's a whole bunch of other warnin=
gs
> (strict-prototypes, dangling-else, maybe-uninitialized, unused-function,
> pointer-sign, unused-variable) primed ready to cause breakage in any
> environment which makes these error by default.
> 
> I'm going to be making ArchLinux non-blocking because it is a rolling
> distro, but we also can't do nothing here.

I guess we could try to update newlib, 1.16 is from 2007 apparently, and
there's now 4.4 from last year.

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 Jul 09 15:37:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 15:37:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756361.1164950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRCue-000837-Nn; Tue, 09 Jul 2024 15:37:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756361.1164950; Tue, 09 Jul 2024 15:37:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRCue-000830-Ks; Tue, 09 Jul 2024 15:37:52 +0000
Received: by outflank-mailman (input) for mailman id 756361;
 Tue, 09 Jul 2024 15:37: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=aI6s=OJ=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sRCud-00082p-OS
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 15:37:51 +0000
Received: from sender4-op-o15.zoho.com (sender4-op-o15.zoho.com
 [136.143.188.15]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31d99e20-3e09-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 17:37:49 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1720539464976752.0324934837599;
 Tue, 9 Jul 2024 08:37:44 -0700 (PDT)
Received: by mail-yb1-f172.google.com with SMTP id
 3f1490d57ef6-e04f1bcbf84so249360276.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 08:37: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: 31d99e20-3e09-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1720539467; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=e0pU+9+1UYf/E/PZ2cns7rwknbd47XFVjR+vuu8nZc5/Xib///TtJVTqdmEAyrMdztHKoAboGqz1btv7Lep+vh8pCgOMUvH2Q738p48f7SYA2Dm2HLlnHqupUXnPGaHGFMt7sboUyTogVRECrOPbvsfhz2g3ijl1o6DePD0a6+8=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1720539467; 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=NUUI8ZSovdRWBKLlWARpYwrsq+B8cMTtPkOYvvyk72o=; 
	b=iaqvb7tfFe2wZfaPPYHenT8FtEsR888UoYkN6cTjewvdGmOSlAOWToOhKFyOYnL8e6edp0v6+3xEgxE7TthLWz5Cg7OF+fCxVnT/D65krJvyvCL4iffRqj9LCk8zUnKMrpAx1KAAbnylFnZv4ey8dPFIuF9GPmpry2p/pNrygEY=
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=1720539467;
	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=NUUI8ZSovdRWBKLlWARpYwrsq+B8cMTtPkOYvvyk72o=;
	b=BV/Zd7Ip+OHkSiLtQE+gc19MQLFjAxQGwembyZEOru5MrZMWe7J3wDp7qKXD4AM8
	gwadsDq/abIgbF+CT24QgxI/s5iegaYLduiTTTZ+5AId/P/oRunLEX3FzxqescTT4Zr
	osy20dzasfKX5y8JrJFzuknLUD/Trase+2K6xtwc=
X-Gm-Message-State: AOJu0Yxxwdd6lYpVOt2LCwpKJ3pYKRZqIKHxwjoRxpqQ8pMNXh45M8xv
	6GmHUY5MshcGh5anxLZVIhi06vrO3YFZyIhLw9vyNkFJo/kvvBOgGB9XcrTa69cHRrX/rxdjE9a
	lMHnT6GHIy0j9yH2pMok7lxjVGwg=
X-Google-Smtp-Source: AGHT+IFIOQCxxupwjOjZaZWy0shAFsKKGqVWTp8tQ6jz8Bc0zhzFqaUTIXQmEaKOxUK9/35IkC0SEwmZ3Qz4KTcmLJ4=
X-Received: by 2002:a25:ab8d:0:b0:e03:9a27:feb0 with SMTP id
 3f1490d57ef6-e041b0397c6mr3207279276.11.1720539463901; Tue, 09 Jul 2024
 08:37:43 -0700 (PDT)
MIME-Version: 1.0
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
In-Reply-To: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Tue, 9 Jul 2024 11:37:08 -0400
X-Gmail-Original-Message-ID: <CABfawhmkNrMR5opsFZpyEXDaiLMyo8a5bepXL6A+MGnbwBFvAA@mail.gmail.com>
Message-ID: <CABfawhmkNrMR5opsFZpyEXDaiLMyo8a5bepXL6A+MGnbwBFvAA@mail.gmail.com>
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to fuzz/x86_instruction_emulator
To: 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@xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Jun 25, 2024 at 6:47=E2=80=AFPM Tamas K Lengyel <tamas@tklengyel.co=
m> wrote:
>
> This target enables integration into oss-fuzz. Changing invalid input ret=
urn
> to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding th=
e
> missing __wrap_vsnprintf wrapper which is required for successful oss-fuz=
z
> build.
>
> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>

Patch ping.


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 15:44:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 15:44:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756366.1164959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRD0j-00015g-Bh; Tue, 09 Jul 2024 15:44:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756366.1164959; Tue, 09 Jul 2024 15: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 1sRD0j-00015Z-9B; Tue, 09 Jul 2024 15:44:09 +0000
Received: by outflank-mailman (input) for mailman id 756366;
 Tue, 09 Jul 2024 15:44:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRD0i-00015M-1Q; Tue, 09 Jul 2024 15:44:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRD0h-0006bT-Tt; Tue, 09 Jul 2024 15:44:07 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRD0h-0000Jm-Fr; Tue, 09 Jul 2024 15:44:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRD0h-00041g-FJ; Tue, 09 Jul 2024 15:44: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=mJYQnMceX9jiJmTL4YxBY0r8S3MbiWJSOcIZ6koBIYk=; b=oJOoyHcaKtSyMZ/UpM09DvWrea
	SakjvtQNQpISHDTldbOXkxmBt4/aekKG/bCqEmRnn1lih0VtFcPsxRdpWzWw9oWPm0gL6iO2Qghg2
	1bzHvkjlkjw+ZIBbHDWa6DHC543erFavYG9GlBrRR9FOYXQOQNOulEyuI+yuNS6cizUg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186738-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186738: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=4376e966ecb78c520b0faf239d118ecfab42a119
X-Osstest-Versions-That:
    linux=256abd8e550ce977b728be79a74e1729438b4948
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Jul 2024 15:44:07 +0000

flight 186738 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186738/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-raw       8 xen-boot                 fail REGR. vs. 186727
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 186727

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-examine      8 reboot           fail in 186734 pass in 186738
 test-armhf-armhf-xl-rtds      8 xen-boot         fail in 186734 pass in 186738
 test-armhf-armhf-libvirt      8 xen-boot         fail in 186734 pass in 186738
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail in 186734 pass in 186738
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186734
 test-armhf-armhf-libvirt-vhd  8 xen-boot                   fail pass in 186734

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl         15 migrate-support-check fail in 186734 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 186734 never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check fail in 186734 never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check fail in 186734 never pass
 test-armhf-armhf-xl           8 xen-boot                     fail  like 186727
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186727
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186727
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                4376e966ecb78c520b0faf239d118ecfab42a119
baseline version:
 linux                256abd8e550ce977b728be79a74e1729438b4948

Last test of basis   186727  2024-07-08 04:15:50 Z    1 days
Testing same since   186734  2024-07-08 22:12:02 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ian Rogers <irogers@google.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Matt Fleming <matt@readmodwrite.com>
  Namhyung Kim <namhyung@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 4376e966ecb78c520b0faf239d118ecfab42a119
Merge: 256abd8e550c 7b2450bb4027
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Jul 8 14:08:43 2024 -0700

    Merge tag 'perf-tools-fixes-for-v6.10-2024-07-08' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
    
    Pull perf tools fixes from Namhyung Kim:
     "Fix performance issue for v6.10
    
      These address the performance issues reported by Matt, Namhyung and
      Linus. Recently perf changed the processing of the comm string and DSO
      using sorted arrays but this caused it to sort the array whenever
      adding a new entry.
    
      This caused a performance issue and the fix is to enhance the sorting
      by finding the insertion point in the sorted array and to shift
      righthand side using memmove()"
    
    * tag 'perf-tools-fixes-for-v6.10-2024-07-08' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools:
      perf dsos: When adding a dso into sorted dsos maintain the sort order
      perf comm str: Avoid sort during insert

commit 7b2450bb40275802b73593331b0db2fc147ae2b7
Author: Ian Rogers <irogers@google.com>
Date:   Wed Jul 3 10:21:17 2024 -0700

    perf dsos: When adding a dso into sorted dsos maintain the sort order
    
    dsos__add would add at the end of the dso array possibly requiring a
    later find to re-sort the array. Patterns of find then add were
    becoming O(n*log n) due to the sorts. Change the add routine to be
    O(n) rather than O(1) but to maintain the sorted-ness of the dsos
    array so that later finds don't need the O(n*log n) sort.
    
    Fixes: 3f4ac23a9908 ("perf dsos: Switch backing storage to array from rbtree/list")
    Reported-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Ian Rogers <irogers@google.com>
    Cc: Steinar Gunderson <sesse@google.com>
    Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Cc: Matt Fleming <matt@readmodwrite.com>
    Link: https://lore.kernel.org/r/20240703172117.810918-3-irogers@google.com
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>

commit 88076e4699ce490aabe89037190d4749ab346b29
Author: Ian Rogers <irogers@google.com>
Date:   Wed Jul 3 10:21:16 2024 -0700

    perf comm str: Avoid sort during insert
    
    The array is sorted, so just move the elements and insert in order.
    
    Fixes: 13ca628716c6 ("perf comm: Add reference count checking to 'struct comm_str'")
    Reported-by: Matt Fleming <matt@readmodwrite.com>
    Signed-off-by: Ian Rogers <irogers@google.com>
    Tested-by: Matt Fleming <matt@readmodwrite.com>
    Cc: Steinar Gunderson <sesse@google.com>
    Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Link: https://lore.kernel.org/r/20240703172117.810918-2-irogers@google.com
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 15:52:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 15:52:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756380.1164995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRD8r-0003W5-3W; Tue, 09 Jul 2024 15:52:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756380.1164995; Tue, 09 Jul 2024 15: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 1sRD8q-0003Vv-U0; Tue, 09 Jul 2024 15:52:32 +0000
Received: by outflank-mailman (input) for mailman id 756380;
 Tue, 09 Jul 2024 15: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=XjVV=OJ=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sRD8p-0002zY-V3
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 15:52:31 +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 3f73f0be-3e0b-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 17:52:30 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a77c349bb81so473315366b.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 08:52:30 -0700 (PDT)
Received: from EMEAENGAAD19049.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bd459e1esm1181254a12.73.2024.07.09.08.52.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Jul 2024 08:52: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: 3f73f0be-3e0b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720540349; x=1721145149; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wuFd2hfIdjuT+R3qsHTSDRIg4VyqLItXrSkNQkDAtfs=;
        b=RonlGDSILdLBdOupjKsuvGJQJWrA12Mf/FokRUhB3bl4/i24ZlQKFR06IW34WlWXnj
         syopyfMUKhs8ZpEyGXRyq9yeexAii63UonhMZLqJ6rdb0sJAVij8KNry5M62midFpZ5+
         1exoYy39e+aZswMoA5NXFk6kGACc2AUmh6d4o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720540349; x=1721145149;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=wuFd2hfIdjuT+R3qsHTSDRIg4VyqLItXrSkNQkDAtfs=;
        b=NOwrHoejqjQ3eRH84NCnbZZ1T/5wo4lAJ3r3Bh4GuPLDgneI/pw526qk83ni4yYVxD
         NzhYSHjoN0aIElkLoXL+rHdpPpQpeqpNOxkgSZUlofodOMOOIjaQvoYfyoPJPtqkeJOZ
         TT6yyuNXc6Pj2718My5J52d9R/jbQaRyiLLJ4c3MU95/9VJcIry6fKae+OASt9K1dVBB
         oxtrX+VGNdEIpDLWZcvi5AIjPiv/WswKwuyb9+Fg+9ELQ1cmT6ngULHdjOTZ6r0VRvAh
         DneZfDLLxOdOArZtpLZEUEknQ0XODpEFbrXmgb6s907HDH2VnfvtSsZ3Bwrr+hbgq6/b
         1u5A==
X-Gm-Message-State: AOJu0YxUs7pqiXlTeS3pd+UxYRyZBH+/cbhIiIo6d2apnWIUqX0GbDvZ
	e9WxNfUppP0HZDh2yaEWohBTDDnYc2Mh78G3W7jJVvgAXVUtDC8UtlMRTJm4B8I7XC4+zj3/m3q
	L
X-Google-Smtp-Source: AGHT+IGSqsWkv5AJOVDphbkKjMEr5qDIFU7LaUmo4nztdNX6OcUgW+lo1jRzI4Zv9IeaSa4eoCvFyA==
X-Received: by 2002:a17:906:2bc5:b0:a6f:1ad5:20e0 with SMTP id a640c23a62f3a-a780b705464mr178002266b.45.1720540348131;
        Tue, 09 Jul 2024 08:52:28 -0700 (PDT)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.20 2/4] x86/fpu: Create a typedef for the x87/SSE area inside "struct xsave_struct"
Date: Tue,  9 Jul 2024 16:52:21 +0100
Message-Id: <2e2763f4980c98cca0e2c3be057b2299295bb616.1720538832.git.alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1720538832.git.alejandro.vallejo@cloud.com>
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Making the union non-anonymous causes a lot of headaches, because a lot of code
relies on it being so, but it's possible to make a typedef of the anonymous
union so all callsites currently relying on typeof() can stop doing so directly.

This commit creates a `fpusse_t` typedef to the anonymous union at the head of
the XSAVE area and uses it instead of typeof().

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 xen/arch/x86/hvm/emulate.c        | 5 ++---
 xen/arch/x86/i387.c               | 8 ++++----
 xen/arch/x86/include/asm/xstate.h | 2 ++
 xen/arch/x86/xstate.c             | 2 +-
 4 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 02e378365b40..65ee70ce67db 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2364,8 +2364,7 @@ static int cf_check hvmemul_get_fpu(
         alternative_vcall(hvm_funcs.fpu_dirty_intercept);
     else if ( type == X86EMUL_FPU_fpu )
     {
-        const typeof(curr->arch.xsave_area->fpu_sse) *fpu_ctxt =
-            curr->arch.fpu_ctxt;
+        const fpusse_t *fpu_ctxt = curr->arch.fpu_ctxt;
 
         /*
          * Latch current register state so that we can back out changes
@@ -2405,7 +2404,7 @@ static void cf_check hvmemul_put_fpu(
 
     if ( aux )
     {
-        typeof(curr->arch.xsave_area->fpu_sse) *fpu_ctxt = curr->arch.fpu_ctxt;
+        fpusse_t *fpu_ctxt = curr->arch.fpu_ctxt;
         bool dval = aux->dval;
         int mode = hvm_guest_x86_mode(curr);
 
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index fcdee10a6e69..89804435b659 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -39,7 +39,7 @@ static inline void fpu_xrstor(struct vcpu *v, uint64_t mask)
 /* Restore x87 FPU, MMX, SSE and SSE2 state */
 static inline void fpu_fxrstor(struct vcpu *v)
 {
-    const typeof(v->arch.xsave_area->fpu_sse) *fpu_ctxt = v->arch.fpu_ctxt;
+    const fpusse_t *fpu_ctxt = v->arch.fpu_ctxt;
 
     /*
      * Some CPUs don't save/restore FDP/FIP/FOP unless an exception
@@ -152,7 +152,7 @@ static inline void fpu_xsave(struct vcpu *v)
 /* Save x87 FPU, MMX, SSE and SSE2 state */
 static inline void fpu_fxsave(struct vcpu *v)
 {
-    typeof(v->arch.xsave_area->fpu_sse) *fpu_ctxt = v->arch.fpu_ctxt;
+    fpusse_t *fpu_ctxt = v->arch.fpu_ctxt;
     unsigned int fip_width = v->domain->arch.x87_fip_width;
 
     if ( fip_width != 4 )
@@ -322,7 +322,7 @@ int vcpu_init_fpu(struct vcpu *v)
                                     __alignof(v->arch.xsave_area->fpu_sse));
         if ( v->arch.fpu_ctxt )
         {
-            typeof(v->arch.xsave_area->fpu_sse) *fpu_sse = v->arch.fpu_ctxt;
+            fpusse_t *fpu_sse = v->arch.fpu_ctxt;
 
             fpu_sse->fcw = FCW_DEFAULT;
             fpu_sse->mxcsr = MXCSR_DEFAULT;
@@ -343,7 +343,7 @@ void vcpu_setup_fpu(struct vcpu *v, struct xsave_struct *xsave_area,
      * accesses through both pointers alias one another, and the shorter form
      * is used here.
      */
-    typeof(xsave_area->fpu_sse) *fpu_sse = v->arch.fpu_ctxt;
+    fpusse_t *fpu_sse = v->arch.fpu_ctxt;
 
     ASSERT(!xsave_area || xsave_area == v->arch.xsave_area);
 
diff --git a/xen/arch/x86/include/asm/xstate.h b/xen/arch/x86/include/asm/xstate.h
index f0eeb13b87a4..ebeb2a3dcaf9 100644
--- a/xen/arch/x86/include/asm/xstate.h
+++ b/xen/arch/x86/include/asm/xstate.h
@@ -82,6 +82,8 @@ struct __attribute__((aligned (64))) xsave_struct
     char data[];                             /* Variable layout states */
 };
 
+typedef typeof(((struct xsave_struct){}).fpu_sse) fpusse_t;
+
 struct xstate_bndcsr {
     uint64_t bndcfgu;
     uint64_t bndstatus;
diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index 68cdd8fcf021..5c4144d55e89 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -846,7 +846,7 @@ void xstate_init(struct cpuinfo_x86 *c)
 
     if ( bsp )
     {
-        static typeof(current->arch.xsave_area->fpu_sse) __initdata ctxt;
+        static fpusse_t __initdata ctxt;
 
         asm ( "fxsave %0" : "=m" (ctxt) );
         if ( ctxt.mxcsr_mask )
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 15:52:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 15:52:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756379.1164990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRD8q-0003Sc-OY; Tue, 09 Jul 2024 15:52:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756379.1164990; Tue, 09 Jul 2024 15:52: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 1sRD8q-0003SV-Lu; Tue, 09 Jul 2024 15:52:32 +0000
Received: by outflank-mailman (input) for mailman id 756379;
 Tue, 09 Jul 2024 15:52: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=XjVV=OJ=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sRD8p-0002zS-St
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 15:52:31 +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 3fe300e7-3e0b-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 17:52:31 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e37feeso7225709a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 08:52:31 -0700 (PDT)
Received: from EMEAENGAAD19049.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bd459e1esm1181254a12.73.2024.07.09.08.52.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Jul 2024 08: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: 3fe300e7-3e0b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720540350; x=1721145150; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fWsRWH1vBUU8PY9863f2q978DGRF3ndAJZtagMPujW8=;
        b=cd5fEXJ8+Yfl43n/gMsVTghtIL4NzOmIQfRJgeSxpnp9qX0EwB+7KrAkypkLRirqsk
         7PuslQWqJwF3OCxNmCmFhVnU4CQEi04quVKXWf8dL86THSGMW3MpHUNKZYRaWxobMRjH
         J/ljh+cOJk+jNw4f0XHqXobZBn7A4hHUDxALI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720540350; x=1721145150;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=fWsRWH1vBUU8PY9863f2q978DGRF3ndAJZtagMPujW8=;
        b=osg4fs1tUqACe2HWwgGSNJXuxDYRj9wfhs25ZwySn876fweNlbisUi57ZIkQqOsHND
         2n70+RvTdSh8POW37i8UnYL53YbyJElHdh2oiosSyu0kvmu031vMpHORAQWHqSMCsReF
         hIRlybNO3OXZyrIODozOtmER34W/xKErT4NeAlUekSMzCJQS+75IpJP8osEbpVzLLLQT
         ZTlgbEyhXf1gA4nBjWFAxwjZIW2hrfFNYAWxB49IkvLa5iUtpnW7SZLutD4gBB43RVDW
         zfZ98mbwe3lLr7cyXzZKsgntx4Zzo60Ca9XpekU90GO1P7hJ05FjKaKUwMKxwIheqFVk
         xq9Q==
X-Gm-Message-State: AOJu0Yx/pi5kyuwF04XPdJgz+20u/9fnPWeJa0/3Zla6h32K3quXyIsP
	LlXUWSTRgX4SDjILoLGG6JOom+MH4RnFJSiNCR/5Pq8q+7k7WydtmrK4uMXUYnLnKR+cZh+qPyH
	f
X-Google-Smtp-Source: AGHT+IGiDjOeE2XeQCRIoRoTOZoUr4X0fKpLKKmQWb89gzG8uuLngQvB6yywAAXBdSkiAHvXYVC4Xg==
X-Received: by 2002:a05:6402:1d54:b0:58c:6edf:d5d2 with SMTP id 4fb4d7f45d1cf-594baf9147bmr2446089a12.15.1720540349906;
        Tue, 09 Jul 2024 08:52:29 -0700 (PDT)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.20 3/4] x86/fpu: Combine fpu_ctxt and xsave_area in arch_vcpu
Date: Tue,  9 Jul 2024 16:52:22 +0100
Message-Id: <170c78f39dfef620d9060be3f1b31313673f09b9.1720538832.git.alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1720538832.git.alejandro.vallejo@cloud.com>
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

fpu_ctxt is either a pointer to the legacy x87/SSE save area (used by FXSAVE) or
a pointer aliased with xsave_area that points to its fpu_sse subfield. Such
subfield is at the base and is identical in size and layout to the legacy
buffer.

This patch merges the 2 pointers in the arch_vcpu into a single XSAVE area. In
the very rare case in which the host doesn't support XSAVE all we're doing is
wasting a tiny amount of memory and trading those for a lot more simplicity in
the code.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 xen/arch/x86/domctl.c             |  3 ++-
 xen/arch/x86/hvm/emulate.c        |  4 +--
 xen/arch/x86/hvm/hvm.c            |  3 ++-
 xen/arch/x86/i387.c               | 45 +++++--------------------------
 xen/arch/x86/include/asm/domain.h |  7 +----
 xen/arch/x86/x86_emulate/blk.c    |  3 ++-
 xen/arch/x86/xstate.c             | 13 ++++++---
 7 files changed, 25 insertions(+), 53 deletions(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 9190e11faaa3..7b04b584c540 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1343,7 +1343,8 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
 #define c(fld) (c.nat->fld)
 #endif
 
-    memcpy(&c.nat->fpu_ctxt, v->arch.fpu_ctxt, sizeof(c.nat->fpu_ctxt));
+    memcpy(&c.nat->fpu_ctxt, &v->arch.xsave_area->fpu_sse,
+           sizeof(c.nat->fpu_ctxt));
     if ( is_pv_domain(d) )
         c(flags = v->arch.pv.vgc_flags & ~(VGCF_i387_valid|VGCF_in_kernel));
     else
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 65ee70ce67db..72a8136a9bbf 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2364,7 +2364,7 @@ static int cf_check hvmemul_get_fpu(
         alternative_vcall(hvm_funcs.fpu_dirty_intercept);
     else if ( type == X86EMUL_FPU_fpu )
     {
-        const fpusse_t *fpu_ctxt = curr->arch.fpu_ctxt;
+        const fpusse_t *fpu_ctxt = &curr->arch.xsave_area->fpu_sse;
 
         /*
          * Latch current register state so that we can back out changes
@@ -2404,7 +2404,7 @@ static void cf_check hvmemul_put_fpu(
 
     if ( aux )
     {
-        fpusse_t *fpu_ctxt = curr->arch.fpu_ctxt;
+        fpusse_t *fpu_ctxt = &curr->arch.xsave_area->fpu_sse;
         bool dval = aux->dval;
         int mode = hvm_guest_x86_mode(curr);
 
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7f4b627b1f5f..09b1426ee314 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -916,7 +916,8 @@ static int cf_check hvm_save_cpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
 
     if ( v->fpu_initialised )
     {
-        memcpy(ctxt.fpu_regs, v->arch.fpu_ctxt, sizeof(ctxt.fpu_regs));
+        memcpy(ctxt.fpu_regs, &v->arch.xsave_area->fpu_sse,
+               sizeof(ctxt.fpu_regs));
         ctxt.flags = XEN_X86_FPU_INITIALISED;
     }
 
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 89804435b659..a964b84757ec 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -39,7 +39,7 @@ static inline void fpu_xrstor(struct vcpu *v, uint64_t mask)
 /* Restore x87 FPU, MMX, SSE and SSE2 state */
 static inline void fpu_fxrstor(struct vcpu *v)
 {
-    const fpusse_t *fpu_ctxt = v->arch.fpu_ctxt;
+    const fpusse_t *fpu_ctxt = &v->arch.xsave_area->fpu_sse;
 
     /*
      * Some CPUs don't save/restore FDP/FIP/FOP unless an exception
@@ -152,7 +152,7 @@ static inline void fpu_xsave(struct vcpu *v)
 /* Save x87 FPU, MMX, SSE and SSE2 state */
 static inline void fpu_fxsave(struct vcpu *v)
 {
-    fpusse_t *fpu_ctxt = v->arch.fpu_ctxt;
+    fpusse_t *fpu_ctxt = &v->arch.xsave_area->fpu_sse;
     unsigned int fip_width = v->domain->arch.x87_fip_width;
 
     if ( fip_width != 4 )
@@ -219,7 +219,7 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
      * above) we also need to restore full state, to prevent subsequently
      * saving state belonging to another vCPU.
      */
-    if ( v->arch.fully_eager_fpu || (v->arch.xsave_area && xstate_all(v)) )
+    if ( v->arch.fully_eager_fpu || xstate_all(v) )
     {
         if ( cpu_has_xsave )
             fpu_xrstor(v, XSTATE_ALL);
@@ -306,44 +306,14 @@ void save_fpu_enable(void)
 /* Initialize FPU's context save area */
 int vcpu_init_fpu(struct vcpu *v)
 {
-    int rc;
-
     v->arch.fully_eager_fpu = opt_eager_fpu;
-
-    if ( (rc = xstate_alloc_save_area(v)) != 0 )
-        return rc;
-
-    if ( v->arch.xsave_area )
-        v->arch.fpu_ctxt = &v->arch.xsave_area->fpu_sse;
-    else
-    {
-        BUILD_BUG_ON(__alignof(v->arch.xsave_area->fpu_sse) < 16);
-        v->arch.fpu_ctxt = _xzalloc(sizeof(v->arch.xsave_area->fpu_sse),
-                                    __alignof(v->arch.xsave_area->fpu_sse));
-        if ( v->arch.fpu_ctxt )
-        {
-            fpusse_t *fpu_sse = v->arch.fpu_ctxt;
-
-            fpu_sse->fcw = FCW_DEFAULT;
-            fpu_sse->mxcsr = MXCSR_DEFAULT;
-        }
-        else
-            rc = -ENOMEM;
-    }
-
-    return rc;
+    return xstate_alloc_save_area(v);
 }
 
 void vcpu_setup_fpu(struct vcpu *v, struct xsave_struct *xsave_area,
                     const void *data, unsigned int fcw_default)
 {
-    /*
-     * For the entire function please note that vcpu_init_fpu() (above) points
-     * v->arch.fpu_ctxt into v->arch.xsave_area when XSAVE is available. Hence
-     * accesses through both pointers alias one another, and the shorter form
-     * is used here.
-     */
-    fpusse_t *fpu_sse = v->arch.fpu_ctxt;
+    fpusse_t *fpu_sse = &v->arch.xsave_area->fpu_sse;
 
     ASSERT(!xsave_area || xsave_area == v->arch.xsave_area);
 
@@ -380,10 +350,7 @@ void vcpu_setup_fpu(struct vcpu *v, struct xsave_struct *xsave_area,
 /* Free FPU's context save area */
 void vcpu_destroy_fpu(struct vcpu *v)
 {
-    if ( v->arch.xsave_area )
-        xstate_free_save_area(v);
-    else
-        xfree(v->arch.fpu_ctxt);
+    xstate_free_save_area(v);
 }
 
 /*
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index f5daeb182baa..4740a1244fbb 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -591,12 +591,7 @@ struct pv_vcpu
 
 struct arch_vcpu
 {
-    /*
-     * guest context (mirroring struct vcpu_guest_context) common
-     * between pv and hvm guests
-     */
-
-    void              *fpu_ctxt;
+    /* Fixed point registers */
     struct cpu_user_regs user_regs;
 
     /* Debug registers. */
diff --git a/xen/arch/x86/x86_emulate/blk.c b/xen/arch/x86/x86_emulate/blk.c
index e790f4f90056..8160da07295b 100644
--- a/xen/arch/x86/x86_emulate/blk.c
+++ b/xen/arch/x86/x86_emulate/blk.c
@@ -11,7 +11,8 @@
     !defined(X86EMUL_NO_SIMD)
 # ifdef __XEN__
 #  include <asm/xstate.h>
-#  define FXSAVE_AREA current->arch.fpu_ctxt
+#  define FXSAVE_AREA ((struct x86_fxsr *) \
+                           (void*)&current->arch.xsave_area->fpu_sse)
 # else
 #  define FXSAVE_AREA get_fpu_save_area()
 # endif
diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index 5c4144d55e89..850ee31bd18c 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -507,9 +507,16 @@ int xstate_alloc_save_area(struct vcpu *v)
     unsigned int size;
 
     if ( !cpu_has_xsave )
-        return 0;
-
-    if ( !is_idle_vcpu(v) || !cpu_has_xsavec )
+    {
+        /*
+         * This is bigger than FXSAVE_SIZE by 64 bytes, but it helps treating
+         * the FPU state uniformly as an XSAVE buffer even if XSAVE is not
+         * available in the host. Note the alignment restriction of the XSAVE
+         * area are stricter than those of the FXSAVE area.
+         */
+        size = XSTATE_AREA_MIN_SIZE;
+    }
+    else if ( !is_idle_vcpu(v) || !cpu_has_xsavec )
     {
         size = xsave_cntxt_size;
         BUG_ON(size < XSTATE_AREA_MIN_SIZE);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 15:52:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 15:52:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756378.1164975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRD8o-00032x-Jl; Tue, 09 Jul 2024 15:52:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756378.1164975; Tue, 09 Jul 2024 15:52: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 1sRD8o-00032h-Dr; Tue, 09 Jul 2024 15:52:30 +0000
Received: by outflank-mailman (input) for mailman id 756378;
 Tue, 09 Jul 2024 15:52: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=XjVV=OJ=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sRD8n-0002zY-Pl
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 15:52:29 +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 3dda84f2-3e0b-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 17:52:27 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a6cb130027aso310365166b.2
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 08:52:27 -0700 (PDT)
Received: from EMEAENGAAD19049.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bd459e1esm1181254a12.73.2024.07.09.08.52.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Jul 2024 08:52: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: 3dda84f2-3e0b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720540346; x=1721145146; 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=hfXIKlBAIIEGNCKp4OL6eVQawLRy4h5R8+jzNTQKH/o=;
        b=TR3FmbKz+gOljHlxXj6Ch2uu8vgWCzXZ8NsoWhAvfN85qKefCQSt7x8VyLV0AN7g1m
         gikYylMsRKnAO1wEN3xjMeQTctbq7K1f/pWaFu+kQvIqcCBJCnrlVyFOVjWfmlAY+Kxu
         BPgREgKeMBd2JI2WDRVVr1nvbN26+7OtsQ7/E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720540346; x=1721145146;
        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=hfXIKlBAIIEGNCKp4OL6eVQawLRy4h5R8+jzNTQKH/o=;
        b=RjTyG84yRk9IGjlZ/KNbkAwXxiUAQYueYmURGLxSoY9Dw5PIKjIuwABR3Eh0uIWsMr
         N1D0IVQAGWJupKsIL2fULEfiTD1ToKTAw/BKw5/K6a1QAM+vzsWFGpQPsepQkmh9YqUd
         RD1hgz1jvUlhpm0RFvYWn/YXjYX5s2w4MuVBAsgW3N8NGMkgV0Ywi1BSvlYlMXX9OIaa
         qCZK/+kIZpWDKxYqiAuUQPzFbXlI73G8vsI/GZP2Xce/fCQRQvuhBu46rDv3xe6thAmX
         74ReEuJYn+wa9UNzr/NzShNNgP8gavA22R2bwwCR13kIQEY2T/YFg2f20Qsqo5vGkEz+
         9xXw==
X-Gm-Message-State: AOJu0Ywe3CHqOXWHx9oMm89i++0NKpgWDn253/8BbQ7uZUNY1Y1aDD3V
	w3/jq6HEk6d484GX5S8RVaG6DzckdJQSpZ95CZp1zTPrMqcfGzIZADUYLJFT9syB5OAKIcbj0Aq
	5
X-Google-Smtp-Source: AGHT+IH7IcfMfIh0rgVJTwqBA2XBA5pZLb/yVa5713sderlwmEmbj2I8VO9R1Sh3abyqdhUEDLR+Ow==
X-Received: by 2002:aa7:ce1a:0:b0:57c:5f77:1136 with SMTP id 4fb4d7f45d1cf-594bb7745f7mr2322324a12.24.1720540346410;
        Tue, 09 Jul 2024 08:52:26 -0700 (PDT)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.20 0/4] x86: FPU handling cleanup
Date: Tue,  9 Jul 2024 16:52:19 +0100
Message-Id: <cover.1720538832.git.alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

I want to eventually reach a position in which the FPU state can be allocated
from the domheap and hidden via the same core mechanism proposed in Elias'
directmap removal series. Doing so is complicated by the presence of 2 aliased
pointers (v->arch.fpu_ctxt and v->arch.xsave_area) and the rather complicated
semantics of vcpu_setup_fpu(). This series tries to simplify the code so moving
to a "map/modify/unmap" model is more tractable.

Patches 1 and 2 are trivial refactors.

Patch 3 unifies FPU state so an XSAVE area is allocated per vCPU regardless of
the host supporting it or not. The rationale is that the memory savings are
negligible and not worth the extra complexity.

Patch 4 is a non-trivial split of the vcpu_setup_fpu() into 2 separate
functions. One to override x87/SSE state, and another to set a reset state.

Alejandro Vallejo (4):
  x86/xstate: Use compression check helper in xstate_all()
  x86/fpu: Create a typedef for the x87/SSE area inside "struct
    xsave_struct"
  x86/fpu: Combine fpu_ctxt and xsave_area in arch_vcpu
  x86/fpu: Split fpu_setup_fpu() in two

 xen/arch/x86/domain.c             |  7 ++-
 xen/arch/x86/domctl.c             |  3 +-
 xen/arch/x86/hvm/emulate.c        |  5 +-
 xen/arch/x86/hvm/hvm.c            | 22 +++++---
 xen/arch/x86/i387.c               | 93 ++++++++-----------------------
 xen/arch/x86/include/asm/domain.h |  7 +--
 xen/arch/x86/include/asm/i387.h   | 27 +++++++--
 xen/arch/x86/include/asm/xstate.h | 17 +++---
 xen/arch/x86/x86_emulate/blk.c    |  3 +-
 xen/arch/x86/xstate.c             | 15 +++--
 10 files changed, 90 insertions(+), 109 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 15:52:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 15:52:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756377.1164970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRD8o-0002zl-9i; Tue, 09 Jul 2024 15:52:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756377.1164970; Tue, 09 Jul 2024 15:52: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 1sRD8o-0002ze-6U; Tue, 09 Jul 2024 15:52:30 +0000
Received: by outflank-mailman (input) for mailman id 756377;
 Tue, 09 Jul 2024 15:52: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=XjVV=OJ=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sRD8n-0002zS-4V
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 15:52:29 +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 3dfd44ff-3e0b-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 17:52:27 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5956fbe6d0dso966355a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 08:52:28 -0700 (PDT)
Received: from EMEAENGAAD19049.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bd459e1esm1181254a12.73.2024.07.09.08.52.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Jul 2024 08:52: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: 3dfd44ff-3e0b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720540347; x=1721145147; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xm8mHlnyDHgFEOCZGPZsRjeb7JwZ974Ug/MqW/mdlH8=;
        b=QbniHfm76mHTTLuXxGO0c7mRGtuVi2d6XPS3ErZSgRMd/QbAD1ceaphYJvneesJpVl
         87m0givEDTDQbCwD69ygaSEzVu5YpW0scQ2ikoGrv3zs40dUl14gpwlhU/CsksrQ0KA6
         n1rcdGroTryTrBNpWltVY7arbRZxPVmGaoPDE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720540347; x=1721145147;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xm8mHlnyDHgFEOCZGPZsRjeb7JwZ974Ug/MqW/mdlH8=;
        b=vX5WGnQjOI/JAGbvShfKcvFGlVWgkUA2raIwK9zj9pwxOD5EcasFcBuIAauCPuBaeX
         jb9zVVjm7eNpCb1cF+vbCisg0DaDmGYJP2GS7i86EnBh569AwmfO8bS4Q2wiVfIoxeBq
         Zx1k/f5NTspk+KVRp+YgvvZ5ylQ0gKU1unIOa0jtDx1x6yQDW05EQw6SBWvJ8jIGpAx1
         x0zRBz8SgUN3IdvrFJWD7s3voIlHdZ9B0sr5zdYjA+lUIa1hqNzm07VwgnKB0nWBz7ed
         s6QQmjbk3fZSABIVAbhJXimg+LLTqztZalDCqzRpoynt1NaAbYHLKXtKseuNEG1iAONN
         099g==
X-Gm-Message-State: AOJu0Yx8noUqC4lFMbWfqaln1OM8UddFAZvUJGx6SS7qv7GILZrr8WoC
	NUVmMIdhxvsuUY3yYc2j/WxVHPMOo2Iera00MTwRn5cCdtz9FsVGSLS/qnu+FPoyI5AdPVRoces
	m
X-Google-Smtp-Source: AGHT+IGvD7FCyOmt9lLnCEAYn3wLwajx3ZrAczteEXiZbmY2an+1rICO1+82nClbbkXxoWQjjlBZaA==
X-Received: by 2002:a05:6402:1e89:b0:582:7e6d:6816 with SMTP id 4fb4d7f45d1cf-594ba98f460mr2180603a12.8.1720540347193;
        Tue, 09 Jul 2024 08:52:27 -0700 (PDT)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.20 1/4] x86/xstate: Use compression check helper in xstate_all()
Date: Tue,  9 Jul 2024 16:52:20 +0100
Message-Id: <c12704135bf9ae1cf59ea4f8a05485d505b7863c.1720538832.git.alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1720538832.git.alejandro.vallejo@cloud.com>
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Minor refactor to make xstate_all() use a helper rather than poking directly
into the XSAVE header.

No functional change

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 xen/arch/x86/include/asm/xstate.h | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/include/asm/xstate.h b/xen/arch/x86/include/asm/xstate.h
index f4a8e5f814a0..f0eeb13b87a4 100644
--- a/xen/arch/x86/include/asm/xstate.h
+++ b/xen/arch/x86/include/asm/xstate.h
@@ -122,6 +122,12 @@ static inline uint64_t xgetbv(unsigned int index)
     return lo | ((uint64_t)hi << 32);
 }
 
+static inline bool __nonnull(1)
+xsave_area_compressed(const struct xsave_struct *xsave_area)
+{
+    return xsave_area->xsave_hdr.xcomp_bv & XSTATE_COMPACTION_ENABLED;
+}
+
 static inline bool xstate_all(const struct vcpu *v)
 {
     /*
@@ -129,15 +135,8 @@ static inline bool xstate_all(const struct vcpu *v)
      * (in the legacy region of xsave area) are fixed, so saving
      * XSTATE_FP_SSE will not cause overwriting problem with XSAVES/XSAVEC.
      */
-    return (v->arch.xsave_area->xsave_hdr.xcomp_bv &
-            XSTATE_COMPACTION_ENABLED) &&
+    return xsave_area_compressed(v->arch.xsave_area) &&
            (v->arch.xcr0_accum & XSTATE_LAZY & ~XSTATE_FP_SSE);
 }
 
-static inline bool __nonnull(1)
-xsave_area_compressed(const struct xsave_struct *xsave_area)
-{
-    return xsave_area->xsave_hdr.xcomp_bv & XSTATE_COMPACTION_ENABLED;
-}
-
 #endif /* __ASM_XSTATE_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 15:52:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 15:52:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756381.1165010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRD8t-000401-Cz; Tue, 09 Jul 2024 15:52:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756381.1165010; Tue, 09 Jul 2024 15: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 1sRD8t-0003zl-89; Tue, 09 Jul 2024 15:52:35 +0000
Received: by outflank-mailman (input) for mailman id 756381;
 Tue, 09 Jul 2024 15:52: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=XjVV=OJ=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sRD8r-0002zY-Bh
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 15:52:33 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 403eb1a2-3e0b-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 17:52:31 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58ef19aa69dso5770798a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 08:52:31 -0700 (PDT)
Received: from EMEAENGAAD19049.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bd459e1esm1181254a12.73.2024.07.09.08.52.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Jul 2024 08:52: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: 403eb1a2-3e0b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720540351; x=1721145151; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hNkmBJzEXcz2KBPKDeUXYjkt3AnZqwx9CjUlb8rUPSk=;
        b=cNRC02mPsgCxTMSIftyD7WmM3tRiO/JjJvtuazvKd+V89U64qUKalgXJxPWcsKW12v
         MqAejNNS2uVTsPlEJ+zPhDont9Xadayg+U644LD82fsykXMFbplBqdBiJYC/ZRW0ROJR
         yZUhk3HOUbWuBSEzT5tohI8s5hXNkT/iN8Uj8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720540351; x=1721145151;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hNkmBJzEXcz2KBPKDeUXYjkt3AnZqwx9CjUlb8rUPSk=;
        b=Wm42QZQKYS/98zEVpTUxAMQmf+9CPifGxjbCoLLFgVifyVfd/24ZUMKdhwPua/v31T
         7gFhDT4qd/ukdt+NcdyHwtr/IFJmi0lt4RJ/y8/En0AGixzELDfzUcK079LBs8H5oMc5
         wYKETca1wQfc7z+m7XWzhaH5chmpQdOHZFD0y40R6DhySJM3NLNcLw5Nuv8Ha/1pKvKB
         2DWz1Setz5eT3Rdr4HMuPczJMXd73e+R1hYeZs4+8GuWaLPBgSivuZHCkJIa2EvkvM4P
         oiDOco5a4vxUZUQRLSFEgzNFyEcKDQnl22FPesqe7VVoaraGN4pZZsa0fjM3RJ2DwfyR
         Eweg==
X-Gm-Message-State: AOJu0YyfTKNzljICbWLvGjF26xg+T7Q7s7aC1ekdkFvWembHHJDUneSy
	qVQGgmaQH1IoD9fnCZrEOqBxYWnrJw27cVHh1pl0SmwW06w/7rh7+7CwAJF6hNioBMLVKpjF25P
	A
X-Google-Smtp-Source: AGHT+IExzK2GEXIrMlan9uaEtW4BhXbWTYYP9wHO4l3cjDaACOrct0xZK0SpUV1xuDHRRGbXmAK44g==
X-Received: by 2002:a50:ee85:0:b0:57d:619:7721 with SMTP id 4fb4d7f45d1cf-594bb5807c7mr1792406a12.21.1720540350701;
        Tue, 09 Jul 2024 08:52:30 -0700 (PDT)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.20 4/4] x86/fpu: Split fpu_setup_fpu() in two
Date: Tue,  9 Jul 2024 16:52:23 +0100
Message-Id: <da30dedcfa68d7c30375b96c85424e13ec6d458b.1720538832.git.alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1720538832.git.alejandro.vallejo@cloud.com>
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

It's doing too many things at once and there's no clear way of defining what
it's meant to do. This patch splits the function in two.

  1. A reset function, parameterized by the FCW value. FCW_RESET means to reset
     the state to power-on reset values, while FCW_DEFAULT means to reset to the
     default values present during vCPU creation.
  2. A x87/SSE state loader (equivalent to the old function when it took a data
     pointer).

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
I'm still not sure what the old function tries to do. The state we start vCPUs
in is _similar_ to the after-finit, but it's not quite (`ftw` is not -1). I went
for the "let's not deviate too much from previous behaviour", but maybe we did
intend for vCPUs to start as if `finit` had just been executed?
---
 xen/arch/x86/domain.c           |  7 +++--
 xen/arch/x86/hvm/hvm.c          | 19 ++++++++-----
 xen/arch/x86/i387.c             | 50 +++++++++++----------------------
 xen/arch/x86/include/asm/i387.h | 27 +++++++++++++++---
 4 files changed, 56 insertions(+), 47 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index ccadfe0c9e70..245899cc792f 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1198,9 +1198,10 @@ int arch_set_info_guest(
          is_pv_64bit_domain(d) )
         v->arch.flags &= ~TF_kernel_mode;
 
-    vcpu_setup_fpu(v, v->arch.xsave_area,
-                   flags & VGCF_I387_VALID ? &c.nat->fpu_ctxt : NULL,
-                   FCW_DEFAULT);
+    if ( flags & VGCF_I387_VALID )
+        vcpu_setup_fpu(v, &c.nat->fpu_ctxt);
+    else
+        vcpu_reset_fpu(v, FCW_DEFAULT);
 
     if ( !compat )
     {
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 09b1426ee314..bedbd2a0b888 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -1162,10 +1162,17 @@ static int cf_check hvm_load_cpu_ctxt(struct domain *d, hvm_domain_context_t *h)
     seg.attr = ctxt.ldtr_arbytes;
     hvm_set_segment_register(v, x86_seg_ldtr, &seg);
 
-    /* Cover xsave-absent save file restoration on xsave-capable host. */
-    vcpu_setup_fpu(v, xsave_enabled(v) ? NULL : v->arch.xsave_area,
-                   ctxt.flags & XEN_X86_FPU_INITIALISED ? ctxt.fpu_regs : NULL,
-                   FCW_RESET);
+    /*
+     * On Xen 4.1 and later the FPU state is restored on a later HVM context, so
+     * what we're doing here is initialising the FPU state for guests from even
+     * older versions of Xen. In general such guests only use legacy x87/SSE
+     * state, and if they did use XSAVE then our best-effort strategy is to make
+     * an XSAVE header for x87 and SSE hoping that's good enough.
+     */
+    if ( ctxt.flags & XEN_X86_FPU_INITIALISED )
+        vcpu_setup_fpu(v, &ctxt.fpu_regs);
+    else
+        vcpu_reset_fpu(v, FCW_RESET);
 
     v->arch.user_regs.rax = ctxt.rax;
     v->arch.user_regs.rbx = ctxt.rbx;
@@ -4005,9 +4012,7 @@ void hvm_vcpu_reset_state(struct vcpu *v, uint16_t cs, uint16_t ip)
         v->arch.guest_table = pagetable_null();
     }
 
-    if ( v->arch.xsave_area )
-        v->arch.xsave_area->xsave_hdr.xstate_bv = 0;
-    vcpu_setup_fpu(v, v->arch.xsave_area, NULL, FCW_RESET);
+    vcpu_reset_fpu(v, FCW_RESET);
 
     arch_vcpu_regs_init(v);
     v->arch.user_regs.rip = ip;
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index a964b84757ec..7851f1b3f6e4 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -310,41 +310,25 @@ int vcpu_init_fpu(struct vcpu *v)
     return xstate_alloc_save_area(v);
 }
 
-void vcpu_setup_fpu(struct vcpu *v, struct xsave_struct *xsave_area,
-                    const void *data, unsigned int fcw_default)
+void vcpu_reset_fpu(struct vcpu *v, uint16_t fcw)
 {
-    fpusse_t *fpu_sse = &v->arch.xsave_area->fpu_sse;
-
-    ASSERT(!xsave_area || xsave_area == v->arch.xsave_area);
-
-    v->fpu_initialised = !!data;
-
-    if ( data )
-    {
-        memcpy(fpu_sse, data, sizeof(*fpu_sse));
-        if ( xsave_area )
-            xsave_area->xsave_hdr.xstate_bv = XSTATE_FP_SSE;
-    }
-    else if ( xsave_area && fcw_default == FCW_DEFAULT )
-    {
-        xsave_area->xsave_hdr.xstate_bv = 0;
-        fpu_sse->mxcsr = MXCSR_DEFAULT;
-    }
-    else
-    {
-        memset(fpu_sse, 0, sizeof(*fpu_sse));
-        fpu_sse->fcw = fcw_default;
-        fpu_sse->mxcsr = MXCSR_DEFAULT;
-        if ( v->arch.xsave_area )
-        {
-            v->arch.xsave_area->xsave_hdr.xstate_bv &= ~XSTATE_FP_SSE;
-            if ( fcw_default != FCW_DEFAULT )
-                v->arch.xsave_area->xsave_hdr.xstate_bv |= X86_XCR0_X87;
-        }
-    }
+    v->fpu_initialised = false;
+    *v->arch.xsave_area = (struct xsave_struct) {
+        .fpu_sse = {
+            .mxcsr = MXCSR_DEFAULT,
+            .fcw = fcw,
+        },
+        .xsave_hdr.xstate_bv = fcw == FCW_RESET ? X86_XCR0_X87 : 0,
+    };
+}
 
-    if ( xsave_area )
-        xsave_area->xsave_hdr.xcomp_bv = 0;
+void vcpu_setup_fpu(struct vcpu *v, const void *data)
+{
+    v->fpu_initialised = true;
+    *v->arch.xsave_area = (struct xsave_struct) {
+        .fpu_sse = *(fpusse_t*)data,
+        .xsave_hdr.xstate_bv = XSTATE_FP_SSE,
+    };
 }
 
 /* Free FPU's context save area */
diff --git a/xen/arch/x86/include/asm/i387.h b/xen/arch/x86/include/asm/i387.h
index a783549db991..ce699fc66663 100644
--- a/xen/arch/x86/include/asm/i387.h
+++ b/xen/arch/x86/include/asm/i387.h
@@ -31,10 +31,29 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts);
 void vcpu_restore_fpu_lazy(struct vcpu *v);
 void vcpu_save_fpu(struct vcpu *v);
 void save_fpu_enable(void);
-
 int vcpu_init_fpu(struct vcpu *v);
-struct xsave_struct;
-void vcpu_setup_fpu(struct vcpu *v, struct xsave_struct *xsave_area,
-                    const void *data, unsigned int fcw_default);
 void vcpu_destroy_fpu(struct vcpu *v);
+
+/*
+ * Restore `v`'s FPU to known values
+ *
+ * If fcw == FCW_RESET, then the reset state is power-on RESET.
+ *
+ * Otherwise `mxcsr` is set to `MXCSR_DEFAULT`, `fcw` is overriden with the
+ * `fcw` argument and everything else is zeroed out.
+ *
+ * @param v   vCPU containing the FPU
+ * @param fcw Intended FPU Control Word
+ */
+void vcpu_reset_fpu(struct vcpu *v, uint16_t fcw);
+
+/*
+ * Load x87/SSE state into `v`'s FPU
+ *
+ * Overrides the XSAVE header to set the state components to be x87 and SSE.
+ *
+ * @param v    vCPU containing the FPU
+ * @param data 512-octet blob for x87/SSE state
+ */
+void vcpu_setup_fpu(struct vcpu *v, const void *data);
 #endif /* __ASM_I386_I387_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 16:09:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 16:09:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756412.1165020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRDP6-00006c-Q5; Tue, 09 Jul 2024 16:09:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756412.1165020; Tue, 09 Jul 2024 16: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 1sRDP6-00006V-NR; Tue, 09 Jul 2024 16:09:20 +0000
Received: by outflank-mailman (input) for mailman id 756412;
 Tue, 09 Jul 2024 16: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRDP5-00006P-AM
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 16:09:19 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97763f9f-3e0d-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 18:09:16 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-52ccc40e72eso3508582e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 09:09: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
 d2e1a72fcca58-70b439b70d2sm2003251b3a.190.2024.07.09.09.09.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 09:09: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: 97763f9f-3e0d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720541356; x=1721146156; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=m0XZTexhlo8x1+AFcieOY7gUvG41s8UTyelE/ma2BdQ=;
        b=FLRHLgSSKAVE0JMge8YBYB7kB4MfBPxWdysjqfuTBbIV77vFQDVCnDWt5QmJJ2Go91
         +xxEd6vG8JAYgQk4ILmoK48voGCspgSB3Ua3P4IyjsTS2RZrxRmgX2x7WozK74lWK17B
         iKHjPWn7znqYruuNWVEIRC+rGAyshJTMjwflSOolP86uPDglXViZC3BvLj6kDGY2CCPF
         Pnbj5yjA2MzFryC6jCDFQDNfWFPNGpc652d+EshXiyUNpU/ph/+bfXzQ+OEZ7bjbYNji
         q/PaF3U6AIM/MMEgIj+OuzdHRfec/FkfC/WW/YewREcuz2l114fTN3DoFFTrdKb2Zcut
         W6jw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720541356; x=1721146156;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=m0XZTexhlo8x1+AFcieOY7gUvG41s8UTyelE/ma2BdQ=;
        b=PlJAcddD230Ii4ib3JCON25dS+PDGNpvWKbmpcmbFc9B3PP6Lwt47lbp8wmaxiQOKM
         QPnGgyZGA6tI6oFEf5FrczgGZqPQaQjZweEM99HJDz9CrEhQtsudjYX1VcRvjrvsQqs3
         r7WPagEJDe+G8Z63Jzy0KYBP7N6rUjBM4Y9ytlSune4uGbQnilPdKd/gOOilR/w7Stpl
         6Htn+Zh9OsBcAOAV7MLXHlC/p9Px1+EP0suceKmlilAFjiAmP6IAzAa5Y7kBT97g5zlt
         UTNWpZwLvKHyHfMjYagPcJEqrXeZLJmfWjZaaXajBQ+2CDogfbKIeoThOUgvE1TF9NSa
         lOjg==
X-Forwarded-Encrypted: i=1; AJvYcCWA3h12/ZCJmXI1t9riOLFbIY9sVsS7zB6fnoZChA4N0NH3lEUdGgKpERhTmoDfpS+yiO43gzW7FNXWZNatB9TZPjFk4UB5MPn5Py6gWOY=
X-Gm-Message-State: AOJu0YxbPSBBzdkzcWxkHN/fBYOL5oCanNSuU7F/RpYKzvtye7qoUN2w
	JPgKV8MZa5yE8P2sSi1BJwQjpzMa4Rs0WucSQ1RYNdCJ1eIhVXsy6e0FqZWqzA==
X-Google-Smtp-Source: AGHT+IH2l2OEVcvWO7d2fNf2Rr+TkvasPAedGOoko4KE+NWptRZWZpGsHzxp9eB2BaJuEHo4rN64iQ==
X-Received: by 2002:a19:ac4b:0:b0:52c:84a2:d848 with SMTP id 2adb3069b0e04-52eb99d5f90mr1884581e87.65.1720541356068;
        Tue, 09 Jul 2024 09:09:16 -0700 (PDT)
Message-ID: <5ff40947-5672-4497-83e7-53ea370b5f58@suse.com>
Date: Tue, 9 Jul 2024 18:09:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH for-4.19] xen/bitmap: amend MISRA C deviation for Rule
 20.7
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: sstabellini@kernel.org, michal.orzel@amd.com, xenia.ragiadakou@amd.com,
 ayan.kumar.halder@amd.com, consulting@bugseng.com,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <794724e70c4e45224916576af01070e8aebe9aab.1720517398.git.nicola.vetrini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <794724e70c4e45224916576af01070e8aebe9aab.1720517398.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 11:34, Nicola Vetrini wrote:
> --- a/xen/include/xen/bitmap.h
> +++ b/xen/include/xen/bitmap.h
> @@ -103,18 +103,16 @@ extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
>  #define bitmap_switch(nbits, zero, small, large)			  \
>  	unsigned int n__ = (nbits);					  \
>  	if (__builtin_constant_p(nbits) && !n__) {			  \
> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>  		zero;							  \
>  	} else if (__builtin_constant_p(nbits) && n__ <= BITS_PER_LONG) { \
> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>  		small;							  \
>  	} else {							  \
> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>  		large;							  \
>  	}

An observation I made only while discussing this on the meeting is that by
going from this form to ...

>  static inline void bitmap_zero(unsigned long *dst, unsigned int nbits)
>  {
> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>  	bitmap_switch(nbits,,
>  		*dst = 0UL,
>  		memset(dst, 0, bitmap_bytes(nbits)));

... this form, you actually widen what the deviation covers to the entire
macro, which is too much. We don't want to deviate the rule for all of the
arguments, after all.

However, it further occurred to me that the reason for needing the deviation
looks to merely be that in some cases (like the one above) we pass empty
macro arguments. That's getting in the way of parenthesizing the use sites.
We could avoid this, though, by adding e.g.

#define nothing ((void)0)

near the definition of bitmap_switch() and then using that in place of the
empty arguments. Provided of course this is the only obstacle to
parenthesization. At which point no deviation ought to be needed in the
first place.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 16:12:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 16:12:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756419.1165030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRDS3-0001ZU-8n; Tue, 09 Jul 2024 16:12:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756419.1165030; Tue, 09 Jul 2024 16: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 1sRDS3-0001ZN-5P; Tue, 09 Jul 2024 16:12:23 +0000
Received: by outflank-mailman (input) for mailman id 756419;
 Tue, 09 Jul 2024 16:12: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=uARp=OJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRDS1-0001ZH-Qg
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 16:12:21 +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 04ef18e1-3e0e-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 18:12:20 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3678aa359b7so4014179f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 09:12: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
 d9443c01a7336-1fbb6a2cf96sm17908675ad.99.2024.07.09.09.12.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 09:12: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: 04ef18e1-3e0e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720541540; x=1721146340; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Od6PZ2Wqs2TFBo9TURKmZCrDDK6jmSZVlmaEiADNI4c=;
        b=RmglPLD+3FlzvJsrjbMnjPv33gNolmITl44kFjZZ7HXI0hHv7k2JkTN8di3K0SYwQm
         UXzfN/3NyDsT+AOW27T8jzYjomBKgmbHHUY+Wovyt6OTCJgug2u9jPwrjXHgVjGyvcln
         8ZzuAX+T/zxkLEPSQnqwM9s12JnXJBRBsEeLMmcSOaVQKcofGCWpKVssc9I5cKhK3xAW
         OPcmmLD0vxPV5P4EF5mpomIhx1qWa9W9vDDrdPAhjZ4AmI1PY3qsZMNxtz/Ip1TychTt
         N36W8j4W9wSYF7pJBQBPJACFCVkZTYmGdn8jymCafblnj2NmK8LKKjRM6ygw9Dzf/4tm
         nBXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720541540; x=1721146340;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Od6PZ2Wqs2TFBo9TURKmZCrDDK6jmSZVlmaEiADNI4c=;
        b=Q+MCXNIJ2YAcJ1ZVzRdXDlMg0fHTEbCTtkd9I084ia25KL5SAlbbhlr4NoXLsiXB8i
         RzBWRqphxdl6c7+lf4zivvkmmSmg3SgRE9wDFkGLtado0rIHxRvQ/MHilejDO9ML0VLR
         t4i6F8wDCzfeTuvLtp3iFQVgwrpZitU0R52gocYqsHP2O8kfYNHrbNuR9SDe7eCiGz7c
         MDqtKxJWCrwzEuEDSd2GnRf44uH7Dwip7xlj88+fVLP8HELZkqecFQGv+fKcOJx1Dql4
         QpCElpf7KhqQ+VSfeWk3qP1fUx/HLDcEpGdKPYcp2lthtEbAU5A1putHO7UsVi7llVZr
         4GQQ==
X-Forwarded-Encrypted: i=1; AJvYcCUlcnWuLR0fgpPmqcbykX0E0CQnMd038vHJnbpHVLu8dhK11GbSVu8LD76AlmJoz0M8hF2/RTfbDMJkutjJMtTllf8nVVrUvVHpcfmLdQs=
X-Gm-Message-State: AOJu0YxzwcqmprAinTzSzzdL18Ruui3DTWKcTM6ny6ird/WOiak9ZJf6
	GcdDE7m+gs8Ve5MkfhS7ZD/eX4zyrm7ZUybT05go/2MBnmM0FaUNXj/IlD4Szg==
X-Google-Smtp-Source: AGHT+IEcp88BTCThgCp0mGxZ+rxHPJ5UxeT4BRun+5by0SsOcKXyzDOwB2ck8rBPBQmmxYX+j3Di9Q==
X-Received: by 2002:a05:6000:1547:b0:360:7856:fa62 with SMTP id ffacd0b85a97d-367d2b52f28mr2793787f8f.15.1720541540202;
        Tue, 09 Jul 2024 09:12:20 -0700 (PDT)
Message-ID: <3c8398d3-7317-46e6-9fb6-ab1dde188caf@suse.com>
Date: Tue, 9 Jul 2024 18:12:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to
 fuzz/x86_instruction_emulator
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <CABfawhmkNrMR5opsFZpyEXDaiLMyo8a5bepXL6A+MGnbwBFvAA@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CABfawhmkNrMR5opsFZpyEXDaiLMyo8a5bepXL6A+MGnbwBFvAA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.07.2024 17:37, Tamas K Lengyel wrote:
> On Tue, Jun 25, 2024 at 6:47 PM Tamas K Lengyel <tamas@tklengyel.com> wrote:
>>
>> This target enables integration into oss-fuzz. Changing invalid input return
>> to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding the
>> missing __wrap_vsnprintf wrapper which is required for successful oss-fuzz
>> build.
>>
>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> 
> Patch ping.

It's on my list of things to look at, yet even if fully ack-ed it couldn't
go in right now anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 16:36:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 16:36:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756424.1165040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRDpV-0005V2-4w; Tue, 09 Jul 2024 16:36:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756424.1165040; Tue, 09 Jul 2024 16: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 1sRDpV-0005Uv-1g; Tue, 09 Jul 2024 16:36:37 +0000
Received: by outflank-mailman (input) for mailman id 756424;
 Tue, 09 Jul 2024 16:36: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=aI6s=OJ=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sRDpT-0005Up-Nw
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 16:36:35 +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 663ff57d-3e11-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 18:36:33 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1720542989991739.5214765680626;
 Tue, 9 Jul 2024 09:36:29 -0700 (PDT)
Received: by mail-yw1-f181.google.com with SMTP id
 00721157ae682-64b29539d87so47336877b3.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 09:36: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: 663ff57d-3e11-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; t=1720542991; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=knV+5OV4BQg91kOijfXALhvXlepf4gEMflTX1zKdZ9/JbfRCHRw0xV+7AsBHtK8quqZy/Cpp5Ik+vFX2zooQ5dJFeNv2ZUxHxab/UlWrLPZcmvvKAJtDQYMFk4LKFzv/bK5YofAAX2jkxs4VBMOoIFLiKF5DKVRWRs1pa4BCfLI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1720542991; 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=p/u/+fBt1SwANb2RqCF6Y/pSfgKgopUbXlXta3Cvzqs=; 
	b=Lxp6ImaGMIaEFC4WzcgrPfxVlEeCN1QaLRWA143tMDpDDwichJAbkQraQiL53aUtRNjcD8Xi5bDjq1tG2Wi8QzxcB8+mqmUdF3dX1X7xSCCccxkicCpBWRRKKySdGggPA9DlkGRh3/ZOcXXVyS/BeSEPSMB7VEimbjhR4zCxKt4=
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=1720542991;
	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=p/u/+fBt1SwANb2RqCF6Y/pSfgKgopUbXlXta3Cvzqs=;
	b=EPugd4CQa9QIZ2/ZkiYdOjZwWNraMq4CXlbQLthc4/ZtTjuFMYVGpQWPRTL6ket1
	3mqfbRrdgJ1Gmlj8hTwG/w7vQZZfK0E8WA9enYTcRdVfB0CFrnj6XGYq6bQIG91CQjY
	X/qztW5O+j7tZ13nVrAKijbluebr46zY5NYRvHfU=
X-Forwarded-Encrypted: i=1; AJvYcCWMaUlumXGq2aXBR/m5Cu+vJRc59yQv6nzTVQN/FWohGwvYX+Id35sq4n5SoPVXfT3YbAINfo5TbrrXTTGdjd77EYIxX8qoTUw3rhFO2Ts=
X-Gm-Message-State: AOJu0YwVNa18Z1Twlf+PkZ4CajLJvzoOK9lZB65lzuVMANQPrZOtjvcR
	pUkJzoXUXQurpIYmXwrK6UJMGrUo/jntYABHwtIdgEsmbh3q8Ik/vniywIFRmQXLES/kbx4xBky
	tO3Xt+vOFKmKQ9Mg6qwvn5hGY0Gg=
X-Google-Smtp-Source: AGHT+IFE+ItH/yi7ocnKCOetZETwvQd2jWH07Q4ry6h/ABjCQBII3pNALl+FXivavqydajhxddmVdeUxnzWWbyY6IJA=
X-Received: by 2002:a0d:dcc4:0:b0:640:bcdf:7d6a with SMTP id
 00721157ae682-658f09d2b71mr33138787b3.32.1720542989029; Tue, 09 Jul 2024
 09:36:29 -0700 (PDT)
MIME-Version: 1.0
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <CABfawhmkNrMR5opsFZpyEXDaiLMyo8a5bepXL6A+MGnbwBFvAA@mail.gmail.com> <3c8398d3-7317-46e6-9fb6-ab1dde188caf@suse.com>
In-Reply-To: <3c8398d3-7317-46e6-9fb6-ab1dde188caf@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Tue, 9 Jul 2024 12:35:53 -0400
X-Gmail-Original-Message-ID: <CABfawhkLvwC2MmSSkk87LNfrh7UcxAUiewSogTbS3heCyfKLdw@mail.gmail.com>
Message-ID: <CABfawhkLvwC2MmSSkk87LNfrh7UcxAUiewSogTbS3heCyfKLdw@mail.gmail.com>
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to fuzz/x86_instruction_emulator
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@xenproject.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Jul 9, 2024 at 12:12=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 09.07.2024 17:37, Tamas K Lengyel wrote:
> > On Tue, Jun 25, 2024 at 6:47=E2=80=AFPM Tamas K Lengyel <tamas@tklengye=
l.com> wrote:
> >>
> >> This target enables integration into oss-fuzz. Changing invalid input =
return
> >> to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding=
 the
> >> missing __wrap_vsnprintf wrapper which is required for successful oss-=
fuzz
> >> build.
> >>
> >> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> >
> > Patch ping.
>
> It's on my list of things to look at, yet even if fully ack-ed it couldn'=
t
> go in right now anyway.

Thanks, just wanted to make sure it's not lost.

Tamas


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 16:46:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 16:46:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756430.1165049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRDzM-0007bI-4W; Tue, 09 Jul 2024 16:46:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756430.1165049; Tue, 09 Jul 2024 16:46: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 1sRDzM-0007bB-23; Tue, 09 Jul 2024 16:46:48 +0000
Received: by outflank-mailman (input) for mailman id 756430;
 Tue, 09 Jul 2024 16:46: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=cUMd=OJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRDzK-0007Zs-2L
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 16:46:46 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d35bcb49-3e12-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 18:46:44 +0200 (CEST)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-52ea2b6a9f5so5639687e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 09:46:44 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a86ec75sm89143066b.191.2024.07.09.09.46.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 09 Jul 2024 09:46: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: d35bcb49-3e12-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720543604; x=1721148404; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QVxBptf+SQEOxCl82lLq0qEmtxAaO0agB8gZ7ab1qlc=;
        b=P07oYf7AuihqLAAi7Zbg1gofBEXPwPIRalvnXrtfXtwUO6kqFGNZ7xR4bHfDTiuFaq
         gOVLRxxXRlUindamksJw6bWaMorMnXyBN5z746jFu3F7ix+50Kl/D6kx7ejVZBJ840gC
         jFVL3d7Czj/Gt08d5hCasnYxkTb/a50pmeMsM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720543604; x=1721148404;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QVxBptf+SQEOxCl82lLq0qEmtxAaO0agB8gZ7ab1qlc=;
        b=fEBLHaqI6F6w4uIaYS9fzihBbMx0DjhbSG+YR2+DKnlQH0Bp+hb/jea04ls3xz3BAf
         xC+0Ei7ZdA4yP619HSW9YqyXIFYz47tCAaKTtlbLgGYQThWAg+Ojk7TeGWIBjTu+cfXO
         0mc53y5eow9pGSibVoT351k31D3J0/Hs8NCfGFPV5d5KlQQb3892oFkp1T9TEyW7vMkb
         mLF8hgx75P/79UcW415OSiciR5QblLFz/Td2gyfRpj1mx9L0aAxo8mFvvLNSSZFfRauc
         roUJc6N05Ut4Vd/ApYqyv74A2bNyUm7nHHxevaMJ4AaKGxYKxgf5j1/L9RcvCEfSIGXd
         8N9A==
X-Gm-Message-State: AOJu0YxpExRRQnwzwsxSttWkplVHvo3+YSmbvfosHJvn+ireNW5B7GkC
	+OH3+QPvzZuJTn1fjl/FV6s5Vi7my+Aeoaaske6BOMbVSgrcJz2pf81wxghIZgM=
X-Google-Smtp-Source: AGHT+IEMjxB1UqviiLp8izcYnEM1EPaozjS3GAlucHcjKOvs2LMmvDkOuK5z0dKi2hA5gk+cp3yQvw==
X-Received: by 2002:ac2:57ce:0:b0:52e:9694:3f98 with SMTP id 2adb3069b0e04-52eb9997b66mr1566014e87.27.1720543604253;
        Tue, 09 Jul 2024 09:46:44 -0700 (PDT)
Message-ID: <18eac439-5d33-41ca-ad78-f19b61f5a379@citrix.com>
Date: Tue, 9 Jul 2024 17:46:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Build system mess in stubdom
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Juergen Gross <jgross@suse.com>
References: <44679adf-e657-4d38-b1e3-2bebb34f57a0@citrix.com>
 <Zo1YdgWj7E4doGEU@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <Zo1YdgWj7E4doGEU@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/07/2024 4:34 pm, Anthony PERARD wrote:
> On Tue, Jul 09, 2024 at 02:49:57PM +0100, Andrew Cooper wrote:
>> Hello,
>>
>> I'm trying to investigate why stubdom/ is fatally failing now with a
>> rebuilt ArchLinux container (GCC 14).
>>
>> It is ultimately:
>>
>>> ../../../../../newlib-1.16.0/newlib/libc/reent/signalr.c:61:14: error:
>>> implicit declaration of function ‘kill’; did you mean ‘_kill’?
>>> [-Wimplicit-function-declaration]
>>>    61 |   if ((ret = _kill (pid, sig)) == -1 && errno != 0)
>>>       |              ^~~~~
>>> make[7]: *** [Makefile:483: lib_a-signalr.o] Error 1
>> which doesn't make sense, but is a consequence of the ifdefary in
>> newlib/libc/include/_syslist.h
>>
>> However, we've got problems ahead of that.
>>
>> First of all, with:
>>
>> [user@89aef714763e build]$ ./configure --disable-xen --disable-tools
>> --disable-docs
>> <snip>
>> Will build the following stub domains:
>>   xenstore-stubdom
>>   xenstorepvh-stubdom
>> configure: creating ./config.status
>> config.status: creating ../config/Stubdom.mk
>>
>> both a top level `make` and `make stubdom` end up building all of tools,
>> contrary to comments in the makefile.
> :-(, I never noticed that but yeah, that rules is what end up building
> the tools:
>
>     install-stubdom: mini-os-dir install-tools
>
> So unless you use one of the build targets, the top makefile end-up
> wanting to also install (or dist) the tools. I don't think we can change
> that:
>     dc497635d93f ("build system: make install-stubdom depend on install-tools again")

qemu-trad stubdom has been off by default for a bit.  We can probably
delete it entirely before too much longer.

>
>> `make build-stubdom` does (AFAICT) only build stubdom.
> How do you make that works with `./configure --disable-tools` ? I've got
> this:
>     $ make build-stubdom
>     <snip>
>     make -C tools/include build
>     ....tools/include/../../tools/Rules.mk:212: *** You have to run ./configure before building or installing the tools.  Stop.
>     make: *** [Makefile:44: build-tools-public-headers] Error 2

Works for me^W in my random archlinux container...

>
>> However, building just the xenstore stubdoms recursively builds all of
>> tools/libs/ even though only some are needed.  This includes libxl which
>> then recurses further to get tools/libacpi, and libxenguest which
>> recurses further to get libelf from Xen.
> libxl? how? Did you run `make -C stubdom xenstore-stubdom`? Or maybe you
> used ./configure to select only "xenstore-stubdom"? In that later case
> only the build* targets will only build stubdom, the default target as
> well as dist* and install* targets will want to "install-tools" as seen
> above.

again, worked for me like that...

>
>> What I can't figure out is why xenstore ends up pulling in all of newlib.
> I think it's because of these in stubdom/Makefile:
>     xenstore: $(CROSS_ROOT) xenstore-minios-config.mk
>     $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci

:(  More junk that we shouldn't be (re)building just for xenstore.

>> Semi-irrespective, there's no way we can keep on bodging newlib to
>> compile with newer compilers.  There's a whole bunch of other warnings
>> (strict-prototypes, dangling-else, maybe-uninitialized, unused-function,
>> pointer-sign, unused-variable) primed ready to cause breakage in any
>> environment which makes these error by default.
>>
>> I'm going to be making ArchLinux non-blocking because it is a rolling
>> distro, but we also can't do nothing here.
> I guess we could try to update newlib, 1.16 is from 2007 apparently, and
> there's now 4.4 from last year.

Easier said than done.  I've got as far as:

diff --git a/stubdom/configure.ac b/stubdom/configure.ac
index fc736c0387fd..944266bd6dce 100644
--- a/stubdom/configure.ac
+++ b/stubdom/configure.ac
@@ -56,7 +56,7 @@ AX_DEPENDS_PATH_PROG([vtpm], [CMAKE], [cmake])
 # Stubdom libraries version and url setup
 AX_STUBDOM_LIB([ZLIB], [zlib], [1.2.3])
 AX_STUBDOM_LIB([LIBPCI], [libpci], [2.2.9],
[https://mirrors.edge.kernel.org/pub/software/utils/pciutils])
-AX_STUBDOM_LIB([NEWLIB], [newlib], [1.16.0],
[https://sourceware.org/ftp/newlib])
+AX_STUBDOM_LIB([NEWLIB], [newlib], [4.4.0.20231231],
[https://sourceware.org/ftp/newlib])
 AX_STUBDOM_LIB([LWIP], [lwip], [1.3.0],
[https://download.savannah.gnu.org/releases/lwip])
 AX_STUBDOM_LIB([GRUB], [grub], [0.97], [https://alpha.gnu.org/gnu/grub])
 AX_STUBDOM_LIB([GMP], [libgmp], [4.3.2],
[https://gmplib.org/download/gmp/archive])

and deployed onto xenbits/extfiles, but it's stubbornly refusing to compile.

I need to finish some of the other container work more urgently for 4.19.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 17:54:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 17:54:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756440.1165060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRF2X-0000nE-T0; Tue, 09 Jul 2024 17:54:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756440.1165060; Tue, 09 Jul 2024 17:54:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRF2X-0000n7-PV; Tue, 09 Jul 2024 17:54:09 +0000
Received: by outflank-mailman (input) for mailman id 756440;
 Tue, 09 Jul 2024 17:54:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRF2W-0000mx-Jp; Tue, 09 Jul 2024 17:54:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRF2W-00017a-FQ; Tue, 09 Jul 2024 17:54:08 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRF2W-0004tI-6l; Tue, 09 Jul 2024 17:54:08 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRF2W-0006LC-6A; Tue, 09 Jul 2024 17:54:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=WOTNfaU+4gMGziaxKsmT77139Y3GLOBLegNWyi9cYCo=; b=3xfPQJyxF+oChIlffg23ZALwSH
	UebOOU8tP9zP+vZ8NVUOPJ1mtiGq7K5Xwnx74l/AMdzutkNvz26J09yU04epjVR+eBE0NYVXXkYUJ
	kJ+gDbP7bvhWz31m8jpR6Trlyy0sH9Ls4qlChcA43unpnI4sLjq00pFF3rmbdjh0pZqs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186741-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186741: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=37810b52d003f8a04af41d7b1f85eff24af9f804
X-Osstest-Versions-That:
    xen=c4ebeb79d10a25e8d48a71cdd381898265267e67
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Jul 2024 17:54:08 +0000

flight 186741 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186741/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  37810b52d003f8a04af41d7b1f85eff24af9f804
baseline version:
 xen                  c4ebeb79d10a25e8d48a71cdd381898265267e67

Last test of basis   186732  2024-07-08 18:00:22 Z    0 days
Testing same since   186741  2024-07-09 15:02:16 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c4ebeb79d1..37810b52d0  37810b52d003f8a04af41d7b1f85eff24af9f804 -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 19:08:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 19:08:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756453.1165082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRGCN-00012I-69; Tue, 09 Jul 2024 19:08:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756453.1165082; Tue, 09 Jul 2024 19:08:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRGCN-00012B-3C; Tue, 09 Jul 2024 19:08:23 +0000
Received: by outflank-mailman (input) for mailman id 756453;
 Tue, 09 Jul 2024 19:08:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZAmS=OJ=tesarici.cz=petr@srs-se1.protection.inumbo.net>)
 id 1sRGCL-000124-J1
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 19:08:22 +0000
Received: from bee.tesarici.cz (bee.tesarici.cz [37.205.15.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9acf9ae0-3e26-11ef-bbfb-fd08da9f4363;
 Tue, 09 Jul 2024 21:08:20 +0200 (CEST)
Received: from meshulam.tesarici.cz
 (dynamic-2a00-1028-83b8-1e7a-4427-cc85-6706-c595.ipv6.o2.cz
 [IPv6:2a00:1028:83b8:1e7a:4427:cc85:6706:c595])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 by bee.tesarici.cz (Postfix) with ESMTPSA id 12AB71E0FE9;
 Tue,  9 Jul 2024 21:08: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: 9acf9ae0-3e26-11ef-bbfb-fd08da9f4363
Authentication-Results: mail.tesarici.cz; dmarc=fail (p=quarantine dis=none) header.from=tesarici.cz
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tesarici.cz; s=mail;
	t=1720552099; bh=HPcNlq4GbiFGcV0kx+F+Uo4jc+3/yYr06hN62dwcW68=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=ul2JCkoyadIyHntKSfaKg8VHAH9z8YOSRS24V+Aha9bH0JN3goesReVO/jPJrVsIn
	 v5724rcJcE1YGHX2rqTIXV4XUWFDdaDJrHRJsy+Jtjeii3qc2C8dYUMF9W4YaMv4ZV
	 nxFJ5PPko9SRYUjMFWOPVgiv8BWoIlOiz7rJDHhHE8GTKyCQVThm4uBmp4SE6JWOct
	 xi4lPs89V2KfPA4eEl+EXDK+Mp8GRyxcZfmVCUWo0gAnApIQf5LcoBsfzx9iAVqW81
	 Ed4RZ0NW8MSKmUJ8Rcgte9KAC9A7OOUwnlq8k4/G0AcjG8GLF9hsOC8WgLeTykIIYi
	 Uc9tdQ0Gl5gdw==
Date: Tue, 9 Jul 2024 21:08:18 +0200
From: Petr =?UTF-8?B?VGVzYcWZw61r?= <petr@tesarici.cz>
To: Christoph Hellwig <hch@lst.de>
Cc: mhkelley58@gmail.com, mhklinux@outlook.com, robin.murphy@arm.com,
 joro@8bytes.org, will@kernel.org, jgross@suse.com, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, m.szyprowski@samsung.com,
 iommu@lists.linux.dev, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Message-ID: <20240709210818.28116c53@meshulam.tesarici.cz>
In-Reply-To: <20240709111812.GB4421@lst.de>
References: <20240708194100.1531-1-mhklinux@outlook.com>
	<20240709111013.6103d3f0@mordecai.tesarici.cz>
	<20240709111812.GB4421@lst.de>
X-Mailer: Claws Mail 4.3.0 (GTK 3.24.42; x86_64-suse-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Tue, 9 Jul 2024 13:18:12 +0200
Christoph Hellwig <hch@lst.de> wrote:

> On Tue, Jul 09, 2024 at 11:10:13AM +0200, Petr Tesa=C5=99=C3=ADk wrote:
> > Reviewed-by: Petr Tesarik <petr@tesarici.cz> =20
>=20
> Thanks.
>=20
> >=20
> > OK, so __swiotlb_find_pool() is now always declared (so the code
> > compiles), but if CONFIG_SWIOTLB_DYNAMIC=3Dn, it is never defined. The
> > result still links, because the compiler optimizes away the whole
> > if-clause, so there are no references to an undefined symbol in the
> > object file.
> >=20
> > I think I've already seen similar constructs elsewhere in the kernel,
> > so relying on the optimization seems to be common practice. =20
>=20
> Yes, it's a pretty common patter.  It's gone here now, though to not
> add the struct device field unconditionally.
>=20
> > > +{
> > > +	struct io_tlb_pool *pool =3D swiotlb_find_pool(dev, addr);
> > > +
> > > +	if (unlikely(pool))
> > > +		__swiotlb_tbl_unmap_single(dev, addr, size, dir, attrs, pool);
> > > +}
> > > +
> > > +static inline void swiotlb_sync_single_for_device(struct device *dev,
> > > +		phys_addr_t addr, size_t size, enum dma_data_direction dir)
> > > +{
> > > +	struct io_tlb_pool *pool =3D swiotlb_find_pool(dev, addr);
> > > +
> > > +	if (unlikely(pool))
> > > +		__swiotlb_sync_single_for_device(dev, addr, size, dir, pool); =20
> >=20
> > We're adding an unlikely() here, which wasn't originally present in
> > iommu_dma_sync_single_for_device(). OTOH it should do no harm, and it
> > was most likely an omission.  =20
>=20
> I'm honestly not a big fan of the unlikely annotations unlike they
> are proven to make a difference.  Normally the runtime branch predictor
> should do a really good job here, and for some uses this will not
> just be likely but the only case.

I'm confused. If you're not a big fan, why are we effectively adding
them to more places now than before the patch?

FWIW on all architectures I've worked with (arm64, ia64, powerpc,
s390x, x86_64), the dynamic branch predictor takes precedence over
static prediction (yes, even ia64 held on to those mandatory .spnt.few
and .sptk.many hints only if there was no entry in the branch
predictor). But on every branch instruction, the compiler must decide
which code follows the branch instruction and which code is placed at
another place. The latter often needs another jump instruction to
continue executing instructions _after_ the whole conditional clause,
which is slightly less efficient. The compiler must make this decision
even if there is no likely() or unlikely() annotation, but in that case
it uses some (rather crude) heuristics of its own, e.g. whether the
condition covers the majority or minority of the value range.

Long story short, in this case "if (pool)" does pretty much the same
job as "if (likely(pool))". But we say "if (unlikely(pool)))"...

You needn't change the code, but I want this documented somewhere that
people can find it, i.e. in LKML archives.

Petr T


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 19:52:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 19:52:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756459.1165091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRGsp-0006jK-8l; Tue, 09 Jul 2024 19:52:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756459.1165091; Tue, 09 Jul 2024 19:52:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRGsp-0006jD-6G; Tue, 09 Jul 2024 19:52:15 +0000
Received: by outflank-mailman (input) for mailman id 756459;
 Tue, 09 Jul 2024 19:52:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRGso-0006j3-C4; Tue, 09 Jul 2024 19:52:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRGso-00037W-9L; Tue, 09 Jul 2024 19:52:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRGsn-0001op-VA; Tue, 09 Jul 2024 19:52:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRGsn-0000pU-Uh; Tue, 09 Jul 2024 19:52:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=UzsBm0nggS67nSBqjxXzrEXS8VmUAulg8QLYwy0Ni1k=; b=EFR54kfNglE+7KlrhHYvJ+GpWB
	5/OO9MJfja2IB9U7nLuydmyAIYdFHPJUtR8R2exLe0XgR395f/5gUQ2oUEsDA/gXPsi5Wm1u4TMP5
	JCbePPlSIL6ZTe62CO6CwWHl8EgQKlNuW4D0NbO3f0AvcNwkhNt5xNH9AyjQsQiWz0Ig=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186744-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186744: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=7aaee521a1966e71a51b71b73f5e3bbddb6faa31
X-Osstest-Versions-That:
    ovmf=426b69830efff788f2c17a4b920a84d6e08739c8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Jul 2024 19:52:13 +0000

flight 186744 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186744/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 7aaee521a1966e71a51b71b73f5e3bbddb6faa31
baseline version:
 ovmf                 426b69830efff788f2c17a4b920a84d6e08739c8

Last test of basis   186740  2024-07-09 13:43:04 Z    0 days
Testing same since   186744  2024-07-09 18:11:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Thamballi Sreelalitha <quic_sreelali@quicinc.com>
  Vishal Oliyil Kunnil <quic_vishalo@quicinc.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   426b69830e..7aaee521a1  7aaee521a1966e71a51b71b73f5e3bbddb6faa31 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 20:01:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 20:01:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756466.1165101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRH1j-0008Om-4Z; Tue, 09 Jul 2024 20:01:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756466.1165101; Tue, 09 Jul 2024 20:01: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 1sRH1j-0008Of-1e; Tue, 09 Jul 2024 20:01:27 +0000
Received: by outflank-mailman (input) for mailman id 756466;
 Tue, 09 Jul 2024 20:01: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=ilAK=OJ=quicinc.com=quic_jjohnson@srs-se1.protection.inumbo.net>)
 id 1sRH1h-0008OT-NI
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 20:01:25 +0000
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com
 [205.220.168.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0223d8ce-3e2e-11ef-8776-851b0ebba9a2;
 Tue, 09 Jul 2024 22:01:21 +0200 (CEST)
Received: from pps.filterd (m0279866.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 469HIKnV025500;
 Tue, 9 Jul 2024 20:01:18 GMT
Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com
 [129.46.96.20])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4091jdhrug-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 09 Jul 2024 20:01:15 +0000 (GMT)
Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com
 [10.47.209.196])
 by NALASPPMTA04.qualcomm.com (8.17.1.19/8.17.1.19) with ESMTPS id
 469K1CP5027914
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 9 Jul 2024 20:01:12 GMT
Received: from [10.48.245.228] (10.49.16.6) by nalasex01a.na.qualcomm.com
 (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.9; Tue, 9 Jul 2024
 13:01: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: 0223d8ce-3e2e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	GcIxVMV/I96Q8u9kb1BertF27XdbTkbl/r6HZpwgBjk=; b=peqAZqEswwHg1OkP
	ajznx7SRbJTRxC0AH7n+tyIHyJDW8oPAafJ/A9zQK7O2ezPh7RAKlSmK0ieGwtR7
	Ml5+34Qeso4SVdplxo2IW1Z7BYy9ajeGuh5P+2gFgyZX60zgbqLOXROvSeu5xQuX
	zAM+TTMLkUIjfkFTWMrLyNRcssEDDHFRJssoyY9pOPR0BvBIidWxRrHKLSce+yY4
	xxwK9AdzmZN8PWcUHWySU00o5X3HStQ3yubfxJCnbqwQg+2n1iGMgSvO/qaHm+hN
	raKrtccHVpTVhzt9C977xl5uHO9rl+882Oikvzhz0IEQZYhiTMsRpWWSxQsqD36E
	ipOdJA==
Message-ID: <42b70860-e06f-40b7-9bda-6a512ed1dd9d@quicinc.com>
Date: Tue, 9 Jul 2024 13:01:12 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/blkback: add missing MODULE_DESCRIPTION() macro
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
        Jens Axboe
	<axboe@kernel.dk>
CC: <xen-devel@lists.xenproject.org>, <linux-block@vger.kernel.org>,
        <linux-kernel@vger.kernel.org>, <kernel-janitors@vger.kernel.org>
References: <20240602-md-block-xen-blkback-v1-1-6ff5b58bdee1@quicinc.com>
From: Jeff Johnson <quic_jjohnson@quicinc.com>
In-Reply-To: <20240602-md-block-xen-blkback-v1-1-6ff5b58bdee1@quicinc.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.49.16.6]
X-ClientProxiedBy: nalasex01c.na.qualcomm.com (10.47.97.35) To
 nalasex01a.na.qualcomm.com (10.47.209.196)
X-QCInternal: smtphost
X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085
X-Proofpoint-GUID: 6Gy7EWo_B31q2FiCLW-SkcytPttdadMb
X-Proofpoint-ORIG-GUID: 6Gy7EWo_B31q2FiCLW-SkcytPttdadMb
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-09_08,2024-07-09_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0
 lowpriorityscore=0 adultscore=0 spamscore=0 malwarescore=0 mlxlogscore=999
 mlxscore=0 priorityscore=1501 phishscore=0 clxscore=1011 impostorscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2406140001
 definitions=main-2407090135

On 6/2/2024 5:37 PM, Jeff Johnson wrote:
> make allmodconfig && make W=1 C=1 reports:
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/block/xen-blkback/xen-blkback.o
> 
> Add the missing invocation of the MODULE_DESCRIPTION() macro.
> 
> Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com>
> ---
>  drivers/block/xen-blkback/blkback.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
> index 944576d582fb..838064593f62 100644
> --- a/drivers/block/xen-blkback/blkback.c
> +++ b/drivers/block/xen-blkback/blkback.c
> @@ -1563,5 +1563,6 @@ static void __exit xen_blkif_fini(void)
>  
>  module_exit(xen_blkif_fini);
>  
> +MODULE_DESCRIPTION("Virtual block device back-end driver");
>  MODULE_LICENSE("Dual BSD/GPL");
>  MODULE_ALIAS("xen-backend:vbd");
> 
> ---
> base-commit: a693b9c95abd4947c2d06e05733de5d470ab6586
> change-id: 20240602-md-block-xen-blkback-0db494d277af

I don't see this in linux-next yet so following up to see if anything else is
needed to get this merged.



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 21:36:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 21:36:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756477.1165112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRIVV-0002OU-GT; Tue, 09 Jul 2024 21:36:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756477.1165112; Tue, 09 Jul 2024 21: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 1sRIVV-0002ON-Dm; Tue, 09 Jul 2024 21:36:17 +0000
Received: by outflank-mailman (input) for mailman id 756477;
 Tue, 09 Jul 2024 21:36:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRIVU-0002OD-OU; Tue, 09 Jul 2024 21:36:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRIVU-00055w-Jp; Tue, 09 Jul 2024 21:36:16 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRIVU-0004RC-5X; Tue, 09 Jul 2024 21:36:16 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRIVU-00028S-54; Tue, 09 Jul 2024 21:36:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kNUrlqymIGiyNtR0RihfZLAgLp1F4O/jJV8LBiWyGKY=; b=1KqK/3orR3+Gcusaq3yFBCD1nI
	FVtOwkjBGgTlPb1Ljznad47i3SuTsXFjOhuLutkAgfyyKxnUIi5I9ZNIELhymVQKvgeOhaNENQmLM
	G5CiKN+G7rWBLaAONFIZ2pphzEQqyJnTXpGaK4YvN48Qp312PlafvVao0d+ksA16xFfQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186743-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186743: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
X-Osstest-Versions-That:
    xen=37810b52d003f8a04af41d7b1f85eff24af9f804
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Jul 2024 21:36:16 +0000

flight 186743 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186743/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
baseline version:
 xen                  37810b52d003f8a04af41d7b1f85eff24af9f804

Last test of basis   186741  2024-07-09 15:02:16 Z    0 days
Testing same since   186743  2024-07-09 18:02:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   37810b52d0..d49ba6bf8f  d49ba6bf8f904a58bd1cfdfe6c93023b249f0578 -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Jul 09 21:39:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 21:39:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756484.1165122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRIYh-0002y3-UP; Tue, 09 Jul 2024 21:39:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756484.1165122; Tue, 09 Jul 2024 21: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 1sRIYh-0002xw-RH; Tue, 09 Jul 2024 21:39:35 +0000
Received: by outflank-mailman (input) for mailman id 756484;
 Tue, 09 Jul 2024 21:39:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRIYg-0002xm-Cj; Tue, 09 Jul 2024 21:39:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRIYg-0005A6-B1; Tue, 09 Jul 2024 21:39:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRIYg-0004Un-0w; Tue, 09 Jul 2024 21:39:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRIYg-0007SD-0J; Tue, 09 Jul 2024 21:39:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4vsZcP0IXfPiYNvfyL+Eh/eaYVRwsC8v6jpZ1luVEUM=; b=2dYJ/+3ZuVmlkWpRUua7zkDNva
	uDaUAbRdID7U4VB4v3W5ih97ruNCRtS12KMcRht5QVaDxXIn1+yw5hSfNOr0Lw/aDvszxuwFSCwJL
	BpP/6l9yqrupLyqa30DN9/itKPIcD4mTGV1/JQ2TzeY1EHUbkWZk643VSaaEUSIYm8kQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186739-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186739: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c4ebeb79d10a25e8d48a71cdd381898265267e67
X-Osstest-Versions-That:
    xen=c4ebeb79d10a25e8d48a71cdd381898265267e67
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 09 Jul 2024 21:39:34 +0000

flight 186739 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186739/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186735
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186735
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186735
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186735
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186735
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186735
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c4ebeb79d10a25e8d48a71cdd381898265267e67
baseline version:
 xen                  c4ebeb79d10a25e8d48a71cdd381898265267e67

Last test of basis   186739  2024-07-09 10:42:29 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Tue Jul 09 23:46:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Jul 2024 23:46:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756495.1165132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRKXE-0000Dm-QN; Tue, 09 Jul 2024 23:46:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756495.1165132; Tue, 09 Jul 2024 23:46: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 1sRKXE-0000Df-NI; Tue, 09 Jul 2024 23:46:12 +0000
Received: by outflank-mailman (input) for mailman id 756495;
 Tue, 09 Jul 2024 23:46: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=v1mn=OJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sRKXD-0000DH-BA
 for xen-devel@lists.xenproject.org; Tue, 09 Jul 2024 23:46:11 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 68a85896-3e4d-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 01:46:07 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 822DE6172C;
 Tue,  9 Jul 2024 23:46:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BF98C32786;
 Tue,  9 Jul 2024 23:46: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: 68a85896-3e4d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720568765;
	bh=DPmGonOws0osxhHvBdy+UQQJhsLrDiJr/gIuBbQSIok=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=iujAxdqjxu83ZPpV/65FjvUEfIzp0NCxPAPyJQ92cijbyoXPfAninjT3VuxPQVsYF
	 VVJ4wV9BLc4JhDGq6X61NdMvPw/QXBbxkNw4PSSenEK077EQPCrTkfBb56D+9BFVhc
	 mJrCLuutKFsDjyfU71PgrzsHuuyULBJ7K/nxeMlz9ikMwPQ9dvZz0Xm1mIGavl7m2k
	 Y0nx28DAGqXSsIgkT3RfLtQRK78Z5OPC9e79WWEUjCbDXDB1mtcfDOq1ariB6FwI3R
	 sWWYxhJhyKywz2tmmOBjgJ9mUc5BfHgsnx5vXhaeNtnR/PR3iz1Dl9wMH4ADNYA8o3
	 VLiouzhwUbszA==
Date: Tue, 9 Jul 2024 16:46:03 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
cc: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH for-4.20] automation: Use a different ImageBuilder
 repository URL
In-Reply-To: <D2L0YQOMMQ3G.GLD8N5NQ50JS@cloud.com>
Message-ID: <alpine.DEB.2.22.394.2407091645320.3635@ubuntu-linux-20-04-desktop>
References: <20240709122117.48051-1-michal.orzel@amd.com> <D2L0YQOMMQ3G.GLD8N5NQ50JS@cloud.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 9 Jul 2024, Alejandro Vallejo wrote:
> On Tue Jul 9, 2024 at 1:21 PM BST, Michal Orzel wrote:
> > Switch to using https://gitlab.com/xen-project/imagebuilder.git which
> > should be considered official ImageBuilder repo.
> >
> > Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> > ---
> >  automation/scripts/qemu-smoke-dom0-arm32.sh       | 2 +-
> >  automation/scripts/qemu-smoke-dom0-arm64.sh       | 2 +-
> >  automation/scripts/qemu-smoke-dom0less-arm32.sh   | 2 +-
> >  automation/scripts/qemu-smoke-dom0less-arm64.sh   | 2 +-
> >  automation/scripts/qemu-xtf-dom0less-arm64.sh     | 2 +-
> >  automation/scripts/xilinx-smoke-dom0less-arm64.sh | 2 +-
> >  6 files changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scripts/qemu-smoke-dom0-arm32.sh
> > index d91648905669..5b62e3f691f1 100755
> > --- a/automation/scripts/qemu-smoke-dom0-arm32.sh
> > +++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
> > @@ -73,7 +73,7 @@ UBOOT_SOURCE="boot.source"
> >  UBOOT_SCRIPT="boot.scr"' > config
> >  
> >  rm -rf imagebuilder
> > -git clone https://gitlab.com/ViryaOS/imagebuilder
> > +git clone https://gitlab.com/xen-project/imagebuilder.git
> 
> For this clone and all others:
> 
> You probably want "git clone --depth 1 <url>" to pull the tip of the repo and
> not its history.

That's a good idea. You can add my

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


> >  bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
> >  
> >  rm -f ${serial_log}
> > diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
> > index e0bb37af3610..ca59bdec1b2b 100755
> > --- a/automation/scripts/qemu-smoke-dom0-arm64.sh
> > +++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
> > @@ -87,7 +87,7 @@ LOAD_CMD="tftpb"
> >  UBOOT_SOURCE="boot.source"
> >  UBOOT_SCRIPT="boot.scr"' > binaries/config
> >  rm -rf imagebuilder
> > -git clone https://gitlab.com/ViryaOS/imagebuilder
> > +git clone https://gitlab.com/xen-project/imagebuilder.git
> >  bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
> >  
> >  
> > diff --git a/automation/scripts/qemu-smoke-dom0less-arm32.sh b/automation/scripts/qemu-smoke-dom0less-arm32.sh
> > index 1e2b939aadf7..11804cbd729f 100755
> > --- a/automation/scripts/qemu-smoke-dom0less-arm32.sh
> > +++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh
> > @@ -125,7 +125,7 @@ if [[ "${test_variant}" == "without-dom0" ]]; then
> >  fi
> >  
> >  rm -rf imagebuilder
> > -git clone https://gitlab.com/ViryaOS/imagebuilder
> > +git clone https://gitlab.com/xen-project/imagebuilder.git
> >  bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
> >  
> >  # Run the test
> > diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
> > index 292c38a56147..4b548d1f8e54 100755
> > --- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
> > +++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
> > @@ -198,7 +198,7 @@ NUM_CPUPOOLS=1' >> binaries/config
> >  fi
> >  
> >  rm -rf imagebuilder
> > -git clone https://gitlab.com/ViryaOS/imagebuilder
> > +git clone https://gitlab.com/xen-project/imagebuilder.git
> >  bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
> >  
> >  
> > diff --git a/automation/scripts/qemu-xtf-dom0less-arm64.sh b/automation/scripts/qemu-xtf-dom0less-arm64.sh
> > index a667e0412c92..59f926d35fb9 100755
> > --- a/automation/scripts/qemu-xtf-dom0less-arm64.sh
> > +++ b/automation/scripts/qemu-xtf-dom0less-arm64.sh
> > @@ -45,7 +45,7 @@ UBOOT_SOURCE="boot.source"
> >  UBOOT_SCRIPT="boot.scr"' > binaries/config
> >  
> >  rm -rf imagebuilder
> > -git clone https://gitlab.com/ViryaOS/imagebuilder
> > +git clone https://gitlab.com/xen-project/imagebuilder.git
> >  bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
> >  
> >  # Run the test
> > diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
> > index 4a071c6ef148..e3f7648d5031 100755
> > --- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
> > +++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
> > @@ -122,7 +122,7 @@ if [[ "${test_variant}" == "gem-passthrough" ]]; then
> >  fi
> >  
> >  rm -rf imagebuilder
> > -git clone https://gitlab.com/ViryaOS/imagebuilder
> > +git clone https://gitlab.com/xen-project/imagebuilder.git
> >  bash imagebuilder/scripts/uboot-script-gen -t tftp -d $TFTP/ -c $TFTP/config
> >  
> >  # restart the board
> 
> Cheers,
> Alejandro
> 


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 01:43:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 01:43:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756503.1165141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRMM1-0008G3-7a; Wed, 10 Jul 2024 01:42:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756503.1165141; Wed, 10 Jul 2024 01:42:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRMM1-0008Fw-4s; Wed, 10 Jul 2024 01:42:45 +0000
Received: by outflank-mailman (input) for mailman id 756503;
 Wed, 10 Jul 2024 01:42:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=y5s2=OK=iscas.ac.cn=nichen@srs-se1.protection.inumbo.net>)
 id 1sRMM0-0008Fq-4z
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 01:42:44 +0000
Received: from cstnet.cn (smtp84.cstnet.cn [159.226.251.84])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ae256408-3e5d-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 03:42:39 +0200 (CEST)
Received: from localhost (unknown [124.16.138.129])
 by APP-05 (Coremail) with SMTP id zQCowACXneX_5o1m4DN7Ag--.42650S2;
 Wed, 10 Jul 2024 09:42:24 +0800 (CST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae256408-3e5d-11ef-8776-851b0ebba9a2
From: Chen Ni <nichen@iscas.ac.cn>
To: sstabellini@kernel.org,
	linux@armlinux.org.uk
Cc: xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Chen Ni <nichen@iscas.ac.cn>
Subject: [PATCH] xen/arm: Convert comma to semicolon
Date: Wed, 10 Jul 2024 09:42:08 +0800
Message-Id: <20240710014208.1719662-1-nichen@iscas.ac.cn>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:zQCowACXneX_5o1m4DN7Ag--.42650S2
X-Coremail-Antispam: 1UD129KBjvdXoW7Jw4UZF15Zr47JFWDWw47twb_yoW3Gwc_tF
	n7ta48Ww1rArs09Fyjy3s5AF1xt3yDXrZrW3W8uF1DJa45XF4Durs2krn7Jr1UKr1akr1f
	u392yrZ5W3WjgjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbc8FF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8w
	A2z4x0Y4vE2Ix0cI8IcVAFwI0_Gr0_Xr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr0_
	Cr1l84ACjcxK6I8E87Iv67AKxVWxJVW8Jr1l84ACjcxK6I8E87Iv6xkF7I0E14v26r4UJV
	WxJr1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E
	2Ix0cI8IcVAFwI0_Jw0_WrylYx0Ex4A2jsIE14v26F4j6r4UJwAm72CE4IkC6x0Yz7v_Jr
	0_Gr1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7MxkIecxEwVAFwVWk
	MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr
	0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0E
	wIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJV
	W8JwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAI
	cVC2z280aVCY1x0267AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjfUO_M3DUUUU
X-Originating-IP: [124.16.138.129]
X-CM-SenderInfo: xqlfxv3q6l2u1dvotugofq/

Replace a comma between expression statements by a semicolon.

Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
---
 arch/arm/xen/p2m.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/xen/p2m.c b/arch/arm/xen/p2m.c
index 309648c17f48..9da57a5b81c7 100644
--- a/arch/arm/xen/p2m.c
+++ b/arch/arm/xen/p2m.c
@@ -109,7 +109,7 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
 		 * immediate unmapping.
 		 */
 		map_ops[i].status = GNTST_general_error;
-		unmap.host_addr = map_ops[i].host_addr,
+		unmap.host_addr = map_ops[i].host_addr;
 		unmap.handle = map_ops[i].handle;
 		map_ops[i].handle = INVALID_GRANT_HANDLE;
 		if (map_ops[i].flags & GNTMAP_device_map)
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 03:53:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 03:53:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756514.1165152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sROOA-0005Ui-U2; Wed, 10 Jul 2024 03:53:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756514.1165152; Wed, 10 Jul 2024 03:53:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sROOA-0005Ub-Qg; Wed, 10 Jul 2024 03:53:06 +0000
Received: by outflank-mailman (input) for mailman id 756514;
 Wed, 10 Jul 2024 03:53:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sROO9-0005UL-Gn; Wed, 10 Jul 2024 03:53:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sROO9-0007W6-Dp; Wed, 10 Jul 2024 03:53:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sROO9-0000WD-0S; Wed, 10 Jul 2024 03:53:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sROO8-0003GH-VH; Wed, 10 Jul 2024 03:53:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Y4yktUeJNrjt1L8hk8SD424JSLRbVlBKyhJGK5d/um4=; b=f06XPrbnbjtszBGzcXTvpOL4m/
	KK5SVuWSe6hS0vem0qwVAiM5O79U5g+D4vMqoSC0Hi8tKANy3idIv0jfYcYf62KWnlIWSxxtk7k9X
	AVz/8IqeaBA+IAuKDkULbDbcxlsgL/rvLQNGBQJ2D8/l2MRJBWw4d+j16d1ZKGBsX6tY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186746-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186746: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=f91211049c1522f7db2ae8f7a509ac270868d0e9
X-Osstest-Versions-That:
    ovmf=7aaee521a1966e71a51b71b73f5e3bbddb6faa31
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Jul 2024 03:53:04 +0000

flight 186746 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186746/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 f91211049c1522f7db2ae8f7a509ac270868d0e9
baseline version:
 ovmf                 7aaee521a1966e71a51b71b73f5e3bbddb6faa31

Last test of basis   186744  2024-07-09 18:11:13 Z    0 days
Testing same since   186746  2024-07-10 02:12:55 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Kun Qin <kuqin@microsoft.com>
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   7aaee521a1..f91211049c  f91211049c1522f7db2ae8f7a509ac270868d0e9 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 05:22:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 05:22:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756523.1165161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRPly-0007FN-2v; Wed, 10 Jul 2024 05:21:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756523.1165161; Wed, 10 Jul 2024 05: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 1sRPly-0007FG-03; Wed, 10 Jul 2024 05:21:46 +0000
Received: by outflank-mailman (input) for mailman id 756523;
 Wed, 10 Jul 2024 05:21:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRPlw-0007F6-Ou; Wed, 10 Jul 2024 05:21:44 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRPlw-0001EZ-Kd; Wed, 10 Jul 2024 05:21:44 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRPlw-0002i2-3N; Wed, 10 Jul 2024 05:21:44 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRPlw-0006cZ-2r; Wed, 10 Jul 2024 05:21:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=RtQpe1IBCgov29pYGiqhWkPNGMhOREo30TSNp22f2qQ=; b=f6wTwuZg36OnLsL28YTPy3YLjU
	7diR1dIj8GH7kaHMHD7ADE1g+lKcmb9iwgPz36MhP0JK/demHq3rk+zRZJRSf58dsOOySvhyRSKnm
	AqzrpYx3njKtiAYLl8V2NBA5BKV6MxrhbVXIsLugMwxkWI/BDsUEtMNIHid4NDmk4n2s=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186742-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186742: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=34afb82a3c67f869267a26f593b6f8fc6bf35905
X-Osstest-Versions-That:
    linux=256abd8e550ce977b728be79a74e1729438b4948
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Jul 2024 05:21:44 +0000

flight 186742 linux-linus real [real]
flight 186747 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186742/
http://logs.test-lab.xenproject.org/osstest/logs/186747/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-qcow2     8 xen-boot                 fail REGR. vs. 186727

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-examine      8 reboot              fail pass in 186747-retest
 test-armhf-armhf-xl-credit1   8 xen-boot            fail pass in 186747-retest

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 186727

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 186747 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 186747 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186727
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186727
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                34afb82a3c67f869267a26f593b6f8fc6bf35905
baseline version:
 linux                256abd8e550ce977b728be79a74e1729438b4948

Last test of basis   186727  2024-07-08 04:15:50 Z    2 days
Failing since        186734  2024-07-08 22:12:02 Z    1 days    3 attempts
Testing same since   186742  2024-07-09 16:12:19 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexander Gordeev <agordeev@linux.ibm.com>
  Andrei Vagin <avagin@google.com>
  Heiko Carstens <hca@linux.ibm.com>
  Hobin Woo <hobin.woo@samsung.com>
  Ian Rogers <irogers@google.com>
  John Hubbard <jhubbard@nvidia.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Matt Fleming <matt@readmodwrite.com>
  Muhammad Usama Anjum <usama.anjum@collabora.com>
  Namhyung Kim <namhyung@kernel.org>
  Namjae Jeon <linkinjeon@kernel.org>
  Shuah Khan <skhan@linuxfoundation.org>
  Steve French <stfrench@microsoft.com>
  Yoonho Shin <yoonho.shin@samsung.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 34afb82a3c67f869267a26f593b6f8fc6bf35905
Merge: 920bc844baa9 e2e33caa5dc2
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Jul 9 08:16:18 2024 -0700

    Merge tag '6.10-rc6-smb3-server-fixes' of git://git.samba.org/ksmbd
    
    Pull smb server fixes from Steve French:
    
     - fix access flags to address fuse incompatibility
    
     - fix device type returned by get filesystem info
    
    * tag '6.10-rc6-smb3-server-fixes' of git://git.samba.org/ksmbd:
      ksmbd: discard write access to the directory open
      ksmbd: return FILE_DEVICE_DISK instead of super magic

commit 920bc844baa92fe508d9cb7c72765d6f54dfebe1
Merge: b5efb63acf7b 66cde337fa1b
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Jul 9 08:11:39 2024 -0700

    Merge tag 'linux_kselftest-fixes-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
    
    Pull kselftest fixes from Shuah Khan
     "Fixes to clang build failures to timerns, vDSO tests and fixes to vDSO
      makefile"
    
    * tag 'linux_kselftest-fixes-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
      selftests/vDSO: remove duplicate compiler invocations from Makefile
      selftests/vDSO: remove partially duplicated "all:" target in Makefile
      selftests/vDSO: fix clang build errors and warnings
      selftest/timerns: fix clang build failures for abs() calls

commit b5efb63acf7bddaf20eacfcac654c25c446eabe8
Author: Heiko Carstens <hca@linux.ibm.com>
Date:   Tue Jul 9 08:50:56 2024 +0200

    s390/mm: Add NULL pointer check to crst_table_free() base_crst_free()
    
    crst_table_free() used to work with NULL pointers before the conversion
    to ptdescs.  Since crst_table_free() can be called with a NULL pointer
    (error handling in crst_table_upgrade() add an explicit check.
    
    Also add the same check to base_crst_free() for consistency reasons.
    
    In real life this should not happen, since order two GFP_KERNEL
    allocations will not fail, unless FAIL_PAGE_ALLOC is enabled and used.
    
    Reported-by: Yunseong Kim <yskelg@gmail.com>
    Fixes: 6326c26c1514 ("s390: convert various pgalloc functions to use ptdescs")
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 4376e966ecb78c520b0faf239d118ecfab42a119
Merge: 256abd8e550c 7b2450bb4027
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Jul 8 14:08:43 2024 -0700

    Merge tag 'perf-tools-fixes-for-v6.10-2024-07-08' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
    
    Pull perf tools fixes from Namhyung Kim:
     "Fix performance issue for v6.10
    
      These address the performance issues reported by Matt, Namhyung and
      Linus. Recently perf changed the processing of the comm string and DSO
      using sorted arrays but this caused it to sort the array whenever
      adding a new entry.
    
      This caused a performance issue and the fix is to enhance the sorting
      by finding the insertion point in the sorted array and to shift
      righthand side using memmove()"
    
    * tag 'perf-tools-fixes-for-v6.10-2024-07-08' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools:
      perf dsos: When adding a dso into sorted dsos maintain the sort order
      perf comm str: Avoid sort during insert

commit 7b2450bb40275802b73593331b0db2fc147ae2b7
Author: Ian Rogers <irogers@google.com>
Date:   Wed Jul 3 10:21:17 2024 -0700

    perf dsos: When adding a dso into sorted dsos maintain the sort order
    
    dsos__add would add at the end of the dso array possibly requiring a
    later find to re-sort the array. Patterns of find then add were
    becoming O(n*log n) due to the sorts. Change the add routine to be
    O(n) rather than O(1) but to maintain the sorted-ness of the dsos
    array so that later finds don't need the O(n*log n) sort.
    
    Fixes: 3f4ac23a9908 ("perf dsos: Switch backing storage to array from rbtree/list")
    Reported-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Ian Rogers <irogers@google.com>
    Cc: Steinar Gunderson <sesse@google.com>
    Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Cc: Matt Fleming <matt@readmodwrite.com>
    Link: https://lore.kernel.org/r/20240703172117.810918-3-irogers@google.com
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>

commit 88076e4699ce490aabe89037190d4749ab346b29
Author: Ian Rogers <irogers@google.com>
Date:   Wed Jul 3 10:21:16 2024 -0700

    perf comm str: Avoid sort during insert
    
    The array is sorted, so just move the elements and insert in order.
    
    Fixes: 13ca628716c6 ("perf comm: Add reference count checking to 'struct comm_str'")
    Reported-by: Matt Fleming <matt@readmodwrite.com>
    Signed-off-by: Ian Rogers <irogers@google.com>
    Tested-by: Matt Fleming <matt@readmodwrite.com>
    Cc: Steinar Gunderson <sesse@google.com>
    Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Link: https://lore.kernel.org/r/20240703172117.810918-2-irogers@google.com
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>

commit 66cde337fa1b7c6cf31f856fa015bd91a4d383e7
Author: John Hubbard <jhubbard@nvidia.com>
Date:   Fri Jul 5 09:57:36 2024 -1000

    selftests/vDSO: remove duplicate compiler invocations from Makefile
    
    The Makefile open-codes compiler invocations that ../lib.mk already
    provides.
    
    Avoid this by using a Make feature that allows setting per-target
    variables, which in this case are: CFLAGS and LDFLAGS. This approach
    generates the exact same compiler invocations as before, but removes all
    of the code duplication, along with the quirky mangled variable names.
    So now the Makefile is smaller, less unusual, and easier to read.
    
    The new dependencies are listed after including lib.mk, in order to
    let lib.mk provide the first target ("all:"), and are grouped together
    with their respective source file dependencies, for visual clarity.
    
    Signed-off-by: John Hubbard <jhubbard@nvidia.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

commit bb2a605de3757ec8c39e5706cfac3deed5694228
Author: John Hubbard <jhubbard@nvidia.com>
Date:   Fri Jul 5 09:57:35 2024 -1000

    selftests/vDSO: remove partially duplicated "all:" target in Makefile
    
    There were a couple of errors here:
    
    1. TEST_GEN_PROGS was incorrectly prepending $(OUTPUT) to each program
    to be built. However, lib.mk already does that because it assumes "bare"
    program names are passed in, so this ended up creating
    $(OUTPUT)/$(OUTPUT)/file.c, which of course won't work as intended.
    
    2. lib.mk was included before TEST_GEN_PROGS was set, which led to
    lib.mk's "all:" target not seeing anything to rebuild.
    
    So nothing worked, which caused the author to force things by creating
    an "all:" target locally--while still including ../lib.mk.
    
    Fix all of this by including ../lib.mk at the right place, and removing
    the $(OUTPUT) prefix to the programs to be built, and removing the
    duplicate "all:" target.
    
    Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
    Signed-off-by: John Hubbard <jhubbard@nvidia.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

commit 73810cd45b99c6c418e1c6a487b52c1e74edb20d
Author: John Hubbard <jhubbard@nvidia.com>
Date:   Fri Jul 5 09:57:34 2024 -1000

    selftests/vDSO: fix clang build errors and warnings
    
    When building with clang, via:
    
        make LLVM=1 -C tools/testing/selftests
    
    ...there are several warnings, and an error. This fixes all of those and
    allows these tests to run and pass.
    
    1. Fix linker error (undefined reference to memcpy) by providing a local
       version of memcpy.
    
    2. clang complains about using this form:
    
        if (g = h & 0xf0000000)
    
    ...so factor out the assignment into a separate step.
    
    3. The code is passing a signed const char* to elf_hash(), which expects
       a const unsigned char *. There are several callers, so fix this at
       the source by allowing the function to accept a signed argument, and
       then converting to unsigned operations, once inside the function.
    
    4. clang doesn't have __attribute__((externally_visible)) and generates
       a warning to that effect. Fortunately, gcc 12 and gcc 13 do not seem
       to require that attribute in order to build, run and pass tests here,
       so remove it.
    
    Reviewed-by: Carlos Llamas <cmllamas@google.com>
    Reviewed-by: Edward Liaw <edliaw@google.com>
    Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
    Tested-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
    Signed-off-by: John Hubbard <jhubbard@nvidia.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

commit f76f9bc616b7320df6789241ca7d26cedcf03cf3
Author: John Hubbard <jhubbard@nvidia.com>
Date:   Wed Jul 3 19:52:47 2024 -0700

    selftest/timerns: fix clang build failures for abs() calls
    
    When building with clang, via:
    
        make LLVM=1 -C tools/testing/selftests
    
    ...clang warns about mismatches between the expected and required
    integer length being supplied to abs(3).
    
    Fix this by using the correct variant of abs(3): labs(3) or llabs(3), in
    these cases.
    
    Reviewed-by: Dmitry Safonov <dima@arista.com>
    Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
    Signed-off-by: John Hubbard <jhubbard@nvidia.com>
    Acked-by: Andrei Vagin <avagin@google.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

commit e2e33caa5dc2eae7bddf88b22ce11ec3d760e5cd
Author: Hobin Woo <hobin.woo@samsung.com>
Date:   Fri Jul 5 12:27:25 2024 +0900

    ksmbd: discard write access to the directory open
    
    may_open() does not allow a directory to be opened with the write access.
    However, some writing flags set by client result in adding write access
    on server, making ksmbd incompatible with FUSE file system. Simply, let's
    discard the write access when opening a directory.
    
    list_add corruption. next is NULL.
    ------------[ cut here ]------------
    kernel BUG at lib/list_debug.c:26!
    pc : __list_add_valid+0x88/0xbc
    lr : __list_add_valid+0x88/0xbc
    Call trace:
    __list_add_valid+0x88/0xbc
    fuse_finish_open+0x11c/0x170
    fuse_open_common+0x284/0x5e8
    fuse_dir_open+0x14/0x24
    do_dentry_open+0x2a4/0x4e0
    dentry_open+0x50/0x80
    smb2_open+0xbe4/0x15a4
    handle_ksmbd_work+0x478/0x5ec
    process_one_work+0x1b4/0x448
    worker_thread+0x25c/0x430
    kthread+0x104/0x1d4
    ret_from_fork+0x10/0x20
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Yoonho Shin <yoonho.shin@samsung.com>
    Signed-off-by: Hobin Woo <hobin.woo@samsung.com>
    Acked-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>

commit 25a6e135569b3901452e4863c94560df7c11c492
Author: Namjae Jeon <linkinjeon@kernel.org>
Date:   Mon Jun 24 08:39:23 2024 +0900

    ksmbd: return FILE_DEVICE_DISK instead of super magic
    
    MS-SMB2 specification describes setting ->DeviceType to FILE_DEVICE_DISK
    or FILE_DEVICE_CD_ROM. Set FILE_DEVICE_DISK instead of super magic in
    FS_DEVICE_INFORMATION. And Set FILE_READ_ONLY_DEVICE for read-only share.
    
    Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 05:55:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 05:55:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756534.1165171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRQIZ-0002Sx-Pl; Wed, 10 Jul 2024 05:55:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756534.1165171; Wed, 10 Jul 2024 05: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 1sRQIZ-0002Sq-N6; Wed, 10 Jul 2024 05:55:27 +0000
Received: by outflank-mailman (input) for mailman id 756534;
 Wed, 10 Jul 2024 05:55: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=l4se=OK=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1sRQIY-0002Sk-MO
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 05:55:26 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff781a9e-3e80-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 07:55:24 +0200 (CEST)
Received: by verein.lst.de (Postfix, from userid 2407)
 id E662A227A87; Wed, 10 Jul 2024 07:55: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: ff781a9e-3e80-11ef-8776-851b0ebba9a2
Date: Wed, 10 Jul 2024 07:55:20 +0200
From: Christoph Hellwig <hch@lst.de>
To: Petr =?utf-8?B?VGVzYcWZw61r?= <petr@tesarici.cz>
Cc: Christoph Hellwig <hch@lst.de>, mhkelley58@gmail.com,
	mhklinux@outlook.com, robin.murphy@arm.com, joro@8bytes.org,
	will@kernel.org, jgross@suse.com, sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com, m.szyprowski@samsung.com,
	iommu@lists.linux.dev, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Message-ID: <20240710055520.GA25305@lst.de>
References: <20240708194100.1531-1-mhklinux@outlook.com> <20240709111013.6103d3f0@mordecai.tesarici.cz> <20240709111812.GB4421@lst.de> <20240709210818.28116c53@meshulam.tesarici.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20240709210818.28116c53@meshulam.tesarici.cz>
User-Agent: Mutt/1.5.17 (2007-11-01)

On Tue, Jul 09, 2024 at 09:08:18PM +0200, Petr Tesařík wrote:
> I'm confused. If you're not a big fan, why are we effectively adding
> them to more places now than before the patch?

Because I didn't want to second guess the patch author too much.


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 06:16:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 06:16:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756544.1165181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRQcU-00055o-Ck; Wed, 10 Jul 2024 06:16:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756544.1165181; Wed, 10 Jul 2024 06:16: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 1sRQcU-00055h-A6; Wed, 10 Jul 2024 06:16:02 +0000
Received: by outflank-mailman (input) for mailman id 756544;
 Wed, 10 Jul 2024 06:16:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRQcS-00055X-EV; Wed, 10 Jul 2024 06:16:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRQcS-0002As-9o; Wed, 10 Jul 2024 06:16:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRQcR-00048y-Ts; Wed, 10 Jul 2024 06:16:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRQcR-0001QQ-TV; Wed, 10 Jul 2024 06:15: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kB6eciIzNudtgDRTI6Yiq1a5dxEh6wvvLuG/kPrvFSM=; b=KrT70ZqfcseWbqr/T7uLJLtF+B
	HMWv6xQ518t6oKJrxm84+kUT2oL29vtYEHOmKTIjHsbN74uQivqjnEv7q3mGMVpQtecN4njZvQpp3
	9aWQd2gZBdHO5Lz7yb2th3nUxzDPqwIWHeC3FKW/ipd+HQN8wo9NA2C4P5zJENlbi1+g=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186745-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186745: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
X-Osstest-Versions-That:
    xen=c4ebeb79d10a25e8d48a71cdd381898265267e67
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Jul 2024 06:15:59 +0000

flight 186745 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186745/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186739
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186739
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186739
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186739
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186739
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186739
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
baseline version:
 xen                  c4ebeb79d10a25e8d48a71cdd381898265267e67

Last test of basis   186739  2024-07-09 10:42:29 Z    0 days
Testing same since   186745  2024-07-09 22:10:33 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c4ebeb79d1..d49ba6bf8f  d49ba6bf8f904a58bd1cfdfe6c93023b249f0578 -> master


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 06:23:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 06:23:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756557.1165211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRQk1-0006po-CR; Wed, 10 Jul 2024 06:23:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756557.1165211; Wed, 10 Jul 2024 06: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 1sRQk1-0006ph-9k; Wed, 10 Jul 2024 06:23:49 +0000
Received: by outflank-mailman (input) for mailman id 756557;
 Wed, 10 Jul 2024 06: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=Ft4p=OK=kernel.dk=axboe@srs-se1.protection.inumbo.net>)
 id 1sRQk0-0006pb-D2
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 06:23:48 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6f557a6-3e84-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 08:23:47 +0200 (CEST)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-52e9ebb9cbaso742424e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 09 Jul 2024 23:23:47 -0700 (PDT)
Received: from [127.0.0.1] (87-52-80-167-dynamic.dk.customer.tdc.net.
 [87.52.80.167]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52eb90670b6sm463892e87.197.2024.07.09.23.23.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 09 Jul 2024 23: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: f6f557a6-3e84-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1720592627; x=1721197427; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:date:message-id:subject
         :references:in-reply-to:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=peZsNPj1BNH4twyiHnIZz89+5SLDTDtVFfp9lmKUxv4=;
        b=ue2/pMdW59XjNd0CBG23c8gNKU2W13V8ZcO5mcqc6D6bMh4CRXxe4FatCsXHfexhWo
         s4IAY/0jn1DDs8+PHFoUBRco9t6PclorIo1l5feA4jlUeGJZOPZIVQ3mx0njQ5G/JkFu
         z9zEPDyrOAJSVuDxwNjj+bWtkbMuEWcrw2aKugZbV5er+0GcjSQRJ1eaoCFKCp1YJQqr
         xxDbagWqKNxMcK7vQ+XXAhRjpgaLfdQGDcHDexnTriY2yZlfQ2nKr0f7ZNJZR0ZuHgJC
         2Q1000qWlrlKpuRjsS3Y+50EH5BVL9+xxO4rDS7Usmaq89aoFCavrjHJsWWSL71tV+Ju
         hBnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720592627; x=1721197427;
        h=content-transfer-encoding:mime-version:date:message-id:subject
         :references:in-reply-to:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=peZsNPj1BNH4twyiHnIZz89+5SLDTDtVFfp9lmKUxv4=;
        b=Q1rBMXJmAq3Ot9OuaXbDKHfI7StyZxJo6Rzyb/v/oCH20BcaSS1GsYX0gZRX8u82x5
         VvY7/LgpORX13lx/P297S5sucEfbU8OODjqoTcBZjvxIAwJ5Qbxo4ZpXRXwy8MFg3CLH
         KDtP/IwT79wgJxYgzjbe0YwrbM4saAuk2Bu0Rbc4oiAin/QUANHdtgX8Onb38fWQ+PkD
         NcoQgOBpDzmv1Hi/ICMBusTKnhGrsgTmOX31kzZowEXAMTXl4Ltudjrq0YHW9yEFt50s
         xmXsBb1zIRKZUQZemPNQMC7SutYcRnN3nIzw5pBUglWiIJogR6KwvTQkj5b+8EMzJUxA
         SikA==
X-Gm-Message-State: AOJu0Yw5+R8CJhrBBvfLHRkBSZ461NVVaL5JHljKo/q/76mXQn1Uqqp0
	PEAbQDUr2hcGhV1RWHxCgSI7jKiH6gbJcXtYdd32xkkV/A6Qun1VWO/rW0snf+o=
X-Google-Smtp-Source: AGHT+IH5aoFqMDetAj6DeM6xs7OgL2qyb/6WTEb5Xw8gbWI7SvdV3F54U25nwN6xMLvlPI5WP9QFwA==
X-Received: by 2002:a05:6512:3d8e:b0:52c:f533:1e21 with SMTP id 2adb3069b0e04-52eb97586acmr3136252e87.0.1720592626693;
        Tue, 09 Jul 2024 23:23:46 -0700 (PDT)
From: Jens Axboe <axboe@kernel.dk>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jeff Johnson <quic_jjohnson@quicinc.com>
Cc: xen-devel@lists.xenproject.org, linux-block@vger.kernel.org, 
 linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
In-Reply-To: <20240602-md-block-xen-blkback-v1-1-6ff5b58bdee1@quicinc.com>
References: <20240602-md-block-xen-blkback-v1-1-6ff5b58bdee1@quicinc.com>
Subject: Re: [PATCH] xen/blkback: add missing MODULE_DESCRIPTION() macro
Message-Id: <172059262581.380385.3520658420031785227.b4-ty@kernel.dk>
Date: Wed, 10 Jul 2024 00:23:45 -0600
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-Mailer: b4 0.14.0


On Sun, 02 Jun 2024 17:37:28 -0700, Jeff Johnson wrote:
> make allmodconfig && make W=1 C=1 reports:
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/block/xen-blkback/xen-blkback.o
> 
> Add the missing invocation of the MODULE_DESCRIPTION() macro.
> 
> 

Applied, thanks!

[1/1] xen/blkback: add missing MODULE_DESCRIPTION() macro
      commit: 4c33e39f6201ab130719d44d6f6f25ec02e1b306

Best regards,
-- 
Jens Axboe





From xen-devel-bounces@lists.xenproject.org Wed Jul 10 07:23:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 07:23:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756576.1165234 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRRfe-0006Hs-Mp; Wed, 10 Jul 2024 07:23:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756576.1165234; Wed, 10 Jul 2024 07:23:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRRfe-0006Hl-K1; Wed, 10 Jul 2024 07:23:22 +0000
Received: by outflank-mailman (input) for mailman id 756576;
 Wed, 10 Jul 2024 07: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=drOD=OK=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sRRfd-0006Hf-5D
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 07:23:21 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20616.outbound.protection.outlook.com
 [2a01:111:f403:200a::616])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 467fe8e1-3e8d-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 09:23:18 +0200 (CEST)
Received: from BLAPR05CA0024.namprd05.prod.outlook.com (2603:10b6:208:36e::20)
 by IA1PR12MB6258.namprd12.prod.outlook.com (2603:10b6:208:3e6::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul
 2024 07:22:57 +0000
Received: from MN1PEPF0000ECDB.namprd02.prod.outlook.com
 (2603:10b6:208:36e:cafe::e2) by BLAPR05CA0024.outlook.office365.com
 (2603:10b6:208:36e::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.20 via Frontend
 Transport; Wed, 10 Jul 2024 07:22:57 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MN1PEPF0000ECDB.mail.protection.outlook.com (10.167.242.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Wed, 10 Jul 2024 07:22:57 +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, 10 Jul
 2024 02:22:56 -0500
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 10 Jul 2024 02:22: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: 467fe8e1-3e8d-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VvN2wlHJwtD8jA70mobvNySEWUrUWKZ4aq/Tc0kVKgsLkl0Ypc1Sfk2WxvUW8zB2SIs4KWxVw/qtHnLAUJbyiiraulf7dujlUHhuGBhS/VcOwMP6f+GGEvArTP/RUlxDH9c+OXidNGK4/7a7c5gBa8WXN9TcuxrZZP+e7AH6kkeOJ7GJlAqzgddzcBbqk7DqJVMZWI5H8Qxv/BE7wnpRxO5IA/a6zMmQyoEME4MHoGTOIS50uLheL3zKDL/j9eq+s6Nmd9X4GXG1G2j8HUrw4vv8J505j1gkfAPgebclHxuoyiz3nI0Uol7IX2JrIvrbIg9mDhr1FxE3VKiUkAQmYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fV38g6OJ/LHAbKa9O9ZMenMXM2d9knXiLnM1Snj1FLM=;
 b=bww07vMe7BfPETJJJeHU4SGUfxMgfEn4D18s39H5Os7U8wuVqZJlffuSkLabfCO48nS3PgOps0kokfdnIqqlD1GF0vrRHdJK5dMAtLzBiwBWQYheMs5m3/9Kz7ZaUR5uaSz1boRaN5mLKoCFIuGYfZ/MHlHdeqVesFdbplDVbW4j3zOvlz91dQSETAD4vzfiX6V5SHpgbRgnQoDY+X0J4ioMbHCadxJ5dDfdxaw07mgGvyhqzgYDkPL6ymY4xSEtrgu11tKMCwayELsCEL0EVnvM2NFt6HwD6WLqfg/nnVpf/5gTLkEJboIWDN6ps5vkPHFCfJQu2Uto9wr3lpug+Q==
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=fV38g6OJ/LHAbKa9O9ZMenMXM2d9knXiLnM1Snj1FLM=;
 b=2ysu8Mujxin12xhdcgw87ow9K/AiXqQF8fUPHmtIbdcgRwM/89VCYtljo96orquSHD3lgsreQSveYa2rAgGyAwLiiE7GV120C0E2WBkH5UgSkEt1S2fjgftpLscBgHeeEX5km3E8JgCrnouO1pOiP4DiERNWImAuyQo2+J21ANY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <833ec798-5bd6-4bf9-bd68-21cae52359d3@amd.com>
Date: Wed, 10 Jul 2024 09:22:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] automation: Use a different ImageBuilder
 repository URL
To: Stefano Stabellini <sstabellini@kernel.org>, Alejandro Vallejo
	<alejandro.vallejo@cloud.com>
CC: <xen-devel@lists.xenproject.org>, Doug Goldstein <cardoe@cardoe.com>
References: <20240709122117.48051-1-michal.orzel@amd.com>
 <D2L0YQOMMQ3G.GLD8N5NQ50JS@cloud.com>
 <alpine.DEB.2.22.394.2407091645320.3635@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <alpine.DEB.2.22.394.2407091645320.3635@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECDB:EE_|IA1PR12MB6258:EE_
X-MS-Office365-Filtering-Correlation-Id: 19cb9fac-ff3b-4777-e901-08dca0b11f13
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?TW82clpWWEZ2NmNZSjUyZ3BjYXcwUnhoQURtS1RtTXltdEFzL0hzNkhzRHV6?=
 =?utf-8?B?TFo5V1NYUUIyZjVnU1BCWVpYS1d5V0N4bmpqWjZzSVE1K0FmTjZuWlQxYlB1?=
 =?utf-8?B?TnZEUTljeHRnd0RjRjB3ZHdpMW43VldNWEdSYkNDTXpORlpKQngwNnpPTCt6?=
 =?utf-8?B?RDVKc2tTKytRaWpOcm5hcHgwU1JvRmlTOTFhRzRqQmZLazZ3aU5UQlgrcW9o?=
 =?utf-8?B?c0Y4Vy93ODhHYkR0VjhveUFSenBiY1luM0JnZ05DQ3psTHhCTmRiSmpkUVFa?=
 =?utf-8?B?RlBTQ24wejhZZXRvMFVSTWxOR0kraHNEVHo2bEVFdkREME51cjFNR0VGSVJI?=
 =?utf-8?B?c1c0WGtpdzlDWnFESjRKUlMzRTY0TTBHOS9kNFBFRXpqZXlKaGVOVXdTY2g3?=
 =?utf-8?B?ZE9RSUZxRDRUQTRSd3MvZUMzSVNaSHhlK0pWM21iQ08zVUZWZ29veHNhdm9D?=
 =?utf-8?B?MFI3VEdGRENTVER2WWlJZ2gwQUUzUVVGUzVqaVJOSUxpZmVJUEcvdnVGNG54?=
 =?utf-8?B?SERYMyt4TnFHOXZ0MmlLL3k0S1lBTS9QMlpCa1BaRVpRSytpb2hEMndsdUVZ?=
 =?utf-8?B?UjlFMllYWXVjL2FLb0xaRGxyTTNuWEpqNndDVUE1YkhqZnRYUFYwK1I3d0NB?=
 =?utf-8?B?RDZHUWJWbTk0VUxKZGtabHVXZ2xySjdRTVp1dDdSODhrczdwemxiZ1VYWGds?=
 =?utf-8?B?aWpUZTZTWGJzcGtxazExNDRoR0M4VUIyVHZwZG9VTTVWUTQvQ2k5ZTRQQktW?=
 =?utf-8?B?SDlxWFEvYUtVTDh1VjZQNGlyY0U0R2tZdXRFdTh5bmp5Um5KWFR6REdDSGlZ?=
 =?utf-8?B?MTNRSGZvWnYzL3l4QWlkZUFEbWN1dzU2ODhlek9sbVNrSHh5dWVDMjZVY3kr?=
 =?utf-8?B?UXdKY2g3Z1dQTHM5dmtaWnhFdlJwSHFhclVpR1hRWDZGOWhPUHI2REMrOUdw?=
 =?utf-8?B?VWpYMHk5Q1RIelVaNEw3eTNseWxVRnpjSlhuRCtXRjltL2RNcCtQdHRKYkRr?=
 =?utf-8?B?S3ZzdzZpMDZ4SVFxOVhpeDUyL0JEckdVek42UitNY01EYWczcDRaRm5ybW5E?=
 =?utf-8?B?ZDRvL2VJZlV1K3ZzVVZ5cHhKaW9aU2NiVG41Z0RUS25NY2JNYnU4ay9EZlg5?=
 =?utf-8?B?MlRteWNVMXNsZEN3RzB0NHFVcGVwVDdhZ2ZpMkpEdFZ1dW9lR0UwZnlhZVNy?=
 =?utf-8?B?LzlCblRCWGRJQTZpeXhxWWIwZnFHVEN5ejlqemhMYkxpVi8yTmFDaWxFdWZo?=
 =?utf-8?B?c3hxQWkzbGFLU08vWWcvd05MOUFKMXVzOEhuVEU5K3dnUlJjSjYrbkpwSFNU?=
 =?utf-8?B?UWRjVFNmMWhZQUkxUkt2djV5S0ZwSjI0ZlFmRmZ2eVM3b3UrL0w4VjhyR2xh?=
 =?utf-8?B?aFpBYUlwd1U2VCtQdmI4U1h4cVptOTMyTXFqeFJLQUNyWmt3cXNZSCswbnYx?=
 =?utf-8?B?YnJscGxtS1RkOEVZSjBPSXA3aVJ3YTNEaGpvMGllR1gyQWc1dzRuRUo2UGRo?=
 =?utf-8?B?bkZkcjZjY0I1Q1FWNGNoTXArQWdPNXNyZW9rNTVKT29PQWpsSTdqVDl3VjdK?=
 =?utf-8?B?YldVVWNDVm5aZEJ6L2QvRUFmazZjK21ncW1uVEJqUnQxZ2pkUkRLcWlybUpT?=
 =?utf-8?B?MmNIdllPTVlTVXhqeC9lWWthUmdlcVphMkV3R0dlVzlSc3NONnp0NmkyWUph?=
 =?utf-8?B?UUZvcnhOT3VMbTNwRW5LREVFU20zZEN1VHZzbUpZODNKemsycVdYNDFWM1No?=
 =?utf-8?B?L09NalRMS1NHSmtzeUdkUEVXZzZjVnpRWFRZUjFKeVlmM3hmK0pyWnkrckpq?=
 =?utf-8?B?SXVZeTRhRnFoKzF2cFpxMXFTeE1jS3RmYkNCTDBPbGd5VWY0ejBoaDVWWkFX?=
 =?utf-8?B?aTBpdXhsKzArdnVUVlBhN2ZWZXB6REQwYlFhMnpWelpyT3c9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 07:22:57.0040
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 19cb9fac-ff3b-4777-e901-08dca0b11f13
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECDB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6258



On 10/07/2024 01:46, Stefano Stabellini wrote:
> 
> 
> On Tue, 9 Jul 2024, Alejandro Vallejo wrote:
>> On Tue Jul 9, 2024 at 1:21 PM BST, Michal Orzel wrote:
>>> Switch to using https://gitlab.com/xen-project/imagebuilder.git which
>>> should be considered official ImageBuilder repo.
>>>
>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>> ---
>>>  automation/scripts/qemu-smoke-dom0-arm32.sh       | 2 +-
>>>  automation/scripts/qemu-smoke-dom0-arm64.sh       | 2 +-
>>>  automation/scripts/qemu-smoke-dom0less-arm32.sh   | 2 +-
>>>  automation/scripts/qemu-smoke-dom0less-arm64.sh   | 2 +-
>>>  automation/scripts/qemu-xtf-dom0less-arm64.sh     | 2 +-
>>>  automation/scripts/xilinx-smoke-dom0less-arm64.sh | 2 +-
>>>  6 files changed, 6 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scripts/qemu-smoke-dom0-arm32.sh
>>> index d91648905669..5b62e3f691f1 100755
>>> --- a/automation/scripts/qemu-smoke-dom0-arm32.sh
>>> +++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
>>> @@ -73,7 +73,7 @@ UBOOT_SOURCE="boot.source"
>>>  UBOOT_SCRIPT="boot.scr"' > config
>>>
>>>  rm -rf imagebuilder
>>> -git clone https://gitlab.com/ViryaOS/imagebuilder
>>> +git clone https://gitlab.com/xen-project/imagebuilder.git
>>
>> For this clone and all others:
>>
>> You probably want "git clone --depth 1 <url>" to pull the tip of the repo and
>> not its history.
> 
> That's a good idea. You can add my
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Ok, I'll send a v2.

~Michal


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 07:56:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 07:56:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756591.1165244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRSBK-00020H-Be; Wed, 10 Jul 2024 07:56:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756591.1165244; Wed, 10 Jul 2024 07:56: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 1sRSBK-00020A-80; Wed, 10 Jul 2024 07:56:06 +0000
Received: by outflank-mailman (input) for mailman id 756591;
 Wed, 10 Jul 2024 07:56: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=KEHK=OK=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sRSBJ-000204-A6
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 07:56:05 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2418::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9069f30-3e91-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 09:56:02 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by MW4PR12MB7120.namprd12.prod.outlook.com (2603:10b6:303:222::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.31; Wed, 10 Jul
 2024 07:55:56 +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.7762.016; Wed, 10 Jul 2024
 07:55: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: d9069f30-3e91-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=G77QlfIa/xtgA4zh7HKPCGWA0Cz0Hhugv8ZXRd/HJkqQCMPdk7uXVyHw7i2044m5LvKpKad4eNer4cCpixo575y2ZnZNDWD3U0gOANiCqZA++8aEjWHWnB1RHEyEPtT0rPul/5RvxYdBxHjpHE2rwgaWcgzxwFWaci6DvBusMdMFjLPtD+U88EpvRno+E9pH+63Lf+rnEX+w45dKt49zz3hNpwUprnLr4OG8IfKADvflnVoDUKGcz8wI/1xRNJKqg2P8YzMeNfh9ifW5hjcksfFkR7xJdYHVYCEolCvDXVIg/yNOUAlJlC5K4vNm7xxaYk96d0vYvJAaX9dS1uh/9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4ajnEzrrKGjS7l85KtlTHR2ygfRnlByyiI5RJ9G4wFM=;
 b=QBDot/z/n1QRzKRBzHPRUmT7RCDHOfH9YunkVWfT3RYPQ2Lgg+9FGg7G9VpSpYyZ8y/i+rXHiqBi3viRTqTrgAtL9oh0hRnRML/i66db51lyJKHh9Oi/JTeeO1EWu45zFzuwdTs75CPDAYJ6rI75HRd4kB0pNqXT34SE9yrYKuyJnYLnN9DTS1pJyikgVbSYP6FIZrSz6+EL7VqMuBaxyQSsNth8d074PffMZZKr9bytA7xDx1wkBCgckJbxd3CQlOD4nLV2wcpQ+HCwF9zdJuhP14qcNJ9qSDoXkmmSHgSKuo6CxvTxCKYp1CxYISsfEJ9Wm2x1Qbo8KZl50SfjRA==
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=4ajnEzrrKGjS7l85KtlTHR2ygfRnlByyiI5RJ9G4wFM=;
 b=0nmjWFU5oG/L73o8qcK65NMuK/PvJK7VFQKDbR7E5Wrg0X5t88U/0oUdVDZAj1jDRD64Xz9sHRcY6OBXml7Fx+gRvNls3KokC3DjNr3C8mPAAMGZUVdQwEmtsTEgaZF1rgKA7qqZzmVZl8246r+zH+o0G/tTdW2ClCrNyv9urnU=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, Juergen
 Gross <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Marek Marczykowski
	<marmarek@invisiblethingslab.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 5/7] tools/libxc: Allow gsi be mapped into a free
 pirq
Thread-Topic: [XEN PATCH v12 5/7] tools/libxc: Allow gsi be mapped into a free
 pirq
Thread-Index: AQHa0Svafwo2bv438kGdFzvtwO21aLHuZOCAgAGXbAA=
Date: Wed, 10 Jul 2024 07:55:55 +0000
Message-ID:
 <BL1PR12MB584930ED5755FB4BBD91351DE7A42@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-6-Jiqian.Chen@amd.com>
 <ef611901-03bf-4aa9-9de7-ac6d4fd82d05@suse.com>
In-Reply-To: <ef611901-03bf-4aa9-9de7-ac6d4fd82d05@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.7762.000)
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_|MW4PR12MB7120:EE_
x-ms-office365-filtering-correlation-id: 6f9c47f3-6b3d-49ab-60b4-08dca0b5ba28
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?VE5JQlRPVFluMEdrc1g0d3ZjcytiTWUyb1hoZ1ZEYkNCWXpyY0FpYmZSVEJa?=
 =?utf-8?B?NFlBc3NDMHR2SnhzU29VdjNKU29EL2pQdGtic0h1MjZGTlFZWDU1MlFYeE8v?=
 =?utf-8?B?NTFxWUJjRzRmdUhzcUdaNk5kZzhrMUJxODFLcGI1OXNncUdSRWI1TU1pMnlG?=
 =?utf-8?B?MzY0d0RGRlpTUXhhMTFSdG03UCs4S2daak5OWGJoY2pNTE1aU0RtWUdZUTNk?=
 =?utf-8?B?ak1Jcm5yNW9KQUlITW40WUZVOEo1YndtQWE2NWVKZkNSaEhKMmRyUHBjd1NY?=
 =?utf-8?B?MkxsNnpLMzBLVi9YVXptVElxcUkwVC9CUkIzOFo2Y1NzczMzUFY0dkM2eDUv?=
 =?utf-8?B?bnpQeXZBMVp3TlFjakhrait0d1ZENzJhd1VkSEFvMXpVSE8zUE92NkV1Z0pV?=
 =?utf-8?B?VmdSbUMvUkdvZWIybVQyUU1udjBHUW9JdE1CZC9wcUwrWjdyaFpIczJjbkM2?=
 =?utf-8?B?SlkxMlE5YzcvVnJjc0w4Z1prMmUxNjY5Nlh5YVNqYjVpN2JDRGU2VkU2bm9x?=
 =?utf-8?B?MWE0SGJmWnJGY01QNTZqaHhVZXRMWjcrK1dHSEN6ZkRSNkdaekpVQ3RSRVR4?=
 =?utf-8?B?UHVPQUNzaFZ5VDlBZGhQSllydWFqUVV1RE8zYlUxZXJ6TEd4TGd1WjlxcXVu?=
 =?utf-8?B?cU9kWkxRck16MHFsKytxMHptcUFlSDh1ZmhZR3FKQzRMM0FNSzcwV2JMUjJQ?=
 =?utf-8?B?WTZsRzVtNzBuUVFEU2FzcGZCQ0RqSjlTdE9CZ3FpK00zb0lWbC9vKzRoYjZR?=
 =?utf-8?B?SHFNaW5Vb3VpNktSWnVxcGFMTDIycDVLZWNHTjNJbUVoWWZjeDBxZitOdi9W?=
 =?utf-8?B?UGordFBZVDFJN1BZNUZwa29ockM2MWJxN3pYWUtCQ2VnYVFPMC9jZm1mS01C?=
 =?utf-8?B?QzU0ekVkalBuaWlYNnVsa2s5NE1sN3JNZzRodkhCL3VBT0ppSkh6SFBTNlVT?=
 =?utf-8?B?L2VEQlYyeW9IWERSZDVmN3Jsa2RaNndhYnh3T3hablVYWElMUVA1S2ZMUFBv?=
 =?utf-8?B?OVRLYWJYb09FMkVNVFFOMklqMDMzWi91STFidWhQRGtBM21RMUZRTExYSXc3?=
 =?utf-8?B?cFZvQTJMNHZvRkxmMHRiZllIdU1RRU1hRVcyTnkvdzV1Y2xnTDZYcXpOOTNa?=
 =?utf-8?B?YjY3ZUNBY2xhWGIvWVZPOUtwUUdmVEI3ejVGWGkxeVgxVTRvbXVITlZHU2dY?=
 =?utf-8?B?TEVHQUFqQWVwN0I3VWdLZk5SSzFTMlBkaXRmeStLRk5YQ1ZRV2Q0N2pDYzdr?=
 =?utf-8?B?R0FnMHJFZUViOGJ4MFZOQjVIVnRvYUZzTG1vVnN6UmM1ZDdRMzFoaEE1MDgr?=
 =?utf-8?B?alFURTAyKzdaeVR2ZzBjU2J2b1l0c3lSRmU5YXF6a3VYNHFPRHo1RUhmQTNw?=
 =?utf-8?B?TjFYMXo1ckl3UmhHZWs5UFhJejUvbldCYVdLR0h0NmhZTWlvTWZFbzZMVFdL?=
 =?utf-8?B?RGw4cG5adFl0cEU2ajd4V3R6dEpCU2R1cy9BTm9GcjNoZkZyZVBVK3N4Tktt?=
 =?utf-8?B?T1FpUWJhM2hRbngxOGhSa3dxSlZ4VlAwakErOVRRcHAvS1hKeGpUYktJRFpR?=
 =?utf-8?B?VSsrRS8yYTZXV01uc3V5eDVuRGRQSkl2ejZ4VGFwd3poZ0NBL3BzWitXOHc1?=
 =?utf-8?B?N0F6bUM5bGVTOG5BQnNOUWY1U2tZTlBGUmdFZURydXBSTlRBUnBiMUd6SS9X?=
 =?utf-8?B?dW04bnJjS2NzSUo1YTZNTUlxU2xQVXhhOU8wRk80UmZoU0dYNmx6WE11bytS?=
 =?utf-8?B?L3o3ZEY5bFRJUm1HL0RUWUxoUlFiQ2hLVjkzVVd4b25BNzlHbXFQZVplMTd3?=
 =?utf-8?B?cUpBK0Vqb0NodHJ6d0x0ajdUdDFvbTZlMVFXd1dWUHF6SW94dlNOZzg5Zmxo?=
 =?utf-8?B?dVdvT0t5b2FHZnppZzBhY3V1N05sVVlhSytHc0YyMnp4QkE9PQ==?=
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)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RTBGbGttYTBUa1VFOGdkaWgrODFjWm9NaEVjOU0wZTlEK2t6aUlZdUMzSTFP?=
 =?utf-8?B?M0ZFZi9jOVR6cjRqMjBRcGQ0M0N6VHRyellGVDdvZnkyVnNsVzhNcmFTYWR4?=
 =?utf-8?B?TEg4UlJleGVqM3MvbU01WVN5a3FEYmxxUlNuNm5lak4wZ3dEVkJvZTFSRDdq?=
 =?utf-8?B?azNZM2pyZ1l0aGZnbmtORzZPM1d5dVovcVlVY3czRHA1bjNnclhGb1c2WEdG?=
 =?utf-8?B?a1VSZTNEQ3NrMHp0YnZLZklzMHdUbGFTSTJoSkdkb2VUOHhpRTUvZDExOVQz?=
 =?utf-8?B?QnpMcUlBSTBUck5yZTBUQzFxVkhhWWFlYXYzRW5RYmdqTnVNejQ2UG9GaTV6?=
 =?utf-8?B?N1JISUxmTldmeUE0alBXdWNGQStka2dGU3JUNlpTT1BLNndBSk5TQWVDYnh2?=
 =?utf-8?B?ZE9pWjFMUGVpRVdyVlR3Y0o1U0E2d1BvUG9CZFBoV3haZ1UySTBMMEUzbmJt?=
 =?utf-8?B?eEpZMkJmd3kzMVQ1ZVdaTXZ1SWhXYmNQY3FoQ3NpVnZpNFRreUJZaTk1RnU5?=
 =?utf-8?B?eDYxQlhSK1ZsTktMaUUxS0ZWNS9rcGN0VDR4TzNrdzEyL2pnd2M5ZWx1TE56?=
 =?utf-8?B?N2ZRZFEwWExqQ1RhbXIzcEFDaTJPMTZ5elBJVWowdzluQm1IZTgyZ1pCelgw?=
 =?utf-8?B?TmJvZVRNMW9EWFBjT2V6SytaR2JRemlyQmNWWXRUU2M4K3RRMG1mL0ZhMzhh?=
 =?utf-8?B?a2NPRE90dUVJc1pFS3ZCSXcwSkZqUk5KZlNldnJGK2JOYWRSck9QcnkraEZJ?=
 =?utf-8?B?Zm94ckZxdkV0c1RseHpqTGFXOFdSMjArZFVXWEQrVDFLZlZVVk5JOXFOM3A0?=
 =?utf-8?B?cm44ZURIYW5qQ2p6ZmdtREc1NTVOdE81VFFuOXduRUMyZXZQQWFPZGt3T1ZG?=
 =?utf-8?B?akF4WENVOGpaKzFsZ0NibWpPcmlpdnNJUVlnWnBiUHpnR2Nnek1JOUd6aitJ?=
 =?utf-8?B?bTZKMEZ4T1FMMmJuNnpwQ3JISEtBNldzZlhLa0d3VzFOTUltTWdYM3NXY09i?=
 =?utf-8?B?K05pRXNVY3VMOEJMVVN3Z25yNFZGSVFROG9DOFVFVEVUUVBqNlJyK1FpNkJS?=
 =?utf-8?B?NUcyWi8vMEczR3lENDMvTi9mQlV5NUpGNm5ZYThNYVQwd0J1ckNHT056eXcw?=
 =?utf-8?B?V0VPU2VoYWJUWk10U1l1cXN0K2NHWHdJNERsVTJqb0JHNE56cVNoOEhOdGV6?=
 =?utf-8?B?d2V3TEZidFQrUENZOFRPOUJlcDVHaFdmSlBjSWVFbDZKUWVISzhpU1dlQjZ1?=
 =?utf-8?B?bmJZV1FKdU10ZjcybFg3THphTnhKWStad1F6NHd5S1hKcFFEejlZaWdJNkxi?=
 =?utf-8?B?a2dYbGEybUZTUzd2L003RXRXcTNyUVFnQmdGcVM0YWR6MWprU3V3N0Q0NDRk?=
 =?utf-8?B?MzlOV2Q3SlZ3eXh6eXg2c2hraVpmSmFTQ1lleVJBeE83UGMrRWljVDZQRk9G?=
 =?utf-8?B?bXJYT2t1enkzRU93Z2VwUkJKemVSR1phOWZyZ1ZvZWY2UENIdDEzUTZXSUFT?=
 =?utf-8?B?T0tiT2JWYWZtdnRwQ1ZLeUtiQ3VieGQ1SjRPN2JrQjE0bVJTVVNkcERQc21H?=
 =?utf-8?B?cmlBKzlFSFNnSlNoWTZaa1Q3UUU1dkpabTlsajdmOG0yRnNpSFFHaWJOUEpN?=
 =?utf-8?B?Q0Rwb0xyd2VxMEx0TTdRTFhJZk1pUVgzWHVBUHRBeUVCT0x6QmVDNU96b2RY?=
 =?utf-8?B?eWZVT3dVeldnVnR6RjNXeXVqaUN3SlRKK0ZBRGJ4b2JNS211VmNnY1FzVHY4?=
 =?utf-8?B?YVJMeTYwUzlPZXV5bHIrRTZXVHpHYmtPU21RU1ZkOE5FK0NQUEZuMHJ2cG94?=
 =?utf-8?B?cG81YkdGbjNDTUxuNVFTaXUwQUdLL1lOUzc5ZFN6TU5VdVRIbnFwREtDQi8v?=
 =?utf-8?B?bEFmUUlXTG0zMXlXNktobGxVZFVaQmkxNlpvc3BoK3NSTG9PQ094bUJLdEY2?=
 =?utf-8?B?aUNJQ0llUHZJcXJFYU83TE1pVVVGZkN0T3BuUE9vaUdxanU4a0FPTi9FeUk3?=
 =?utf-8?B?R0ZrT2JkeFZIODdidHQzN0YwY090cDVFUURUdVlERzF6WDdBUFRLaGpkOFl0?=
 =?utf-8?B?OFNxTGFUUTdUY3U2eVNyM3dubFZ5NjlGcTNmWHFoazYvWjhDS3VJNy9mTmpN?=
 =?utf-8?Q?3WYg=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <21408DC98B68874FBDFBB687E871D5F1@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: 6f9c47f3-6b3d-49ab-60b4-08dca0b5ba28
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jul 2024 07:55:55.1937
 (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: RqRdd85YO6lMVWxZUhwMJteIyM3x+rbXGM8rKlCLdME+vf5wgdbv4hVWEeQS09G3LpYuCqIHtjkalW8XmLfPDQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7120

T24gMjAyNC83LzkgMjE6MjYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwOC4wNy4yMDI0IDEz
OjQxLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IEh5cGVyY2FsbCBQSFlTREVWT1BfbWFwX3BpcnEg
c3VwcG9ydCB0byBtYXAgYSBnc2kgaW50byBhIHNwZWNpZmljDQo+PiBwaXJxIG9yIGEgZnJlZSBw
aXJxLCBpdCBkZXBlbmRzIG9uIHRoZSBwYXJhbWV0ZXIgcGlycSg+MCBvciA8MCkuDQo+PiBCdXQg
aW4gY3VycmVudCB4Y19waHlzZGV2X21hcF9waXJxLCBpdCBzZXQgKnBpcnE9aW5kZXggd2hlbg0K
Pj4gcGFyYW1ldGVyIHBpcnEgaXMgPDAsIGl0IGNhdXNlcyB0byBmb3JjZSBhbGwgY2FzZXMgdG8g
YmUgbWFwcGVkDQo+PiB0byBhIHNwZWNpZmljIHBpcnEuIFRoYXQgaGFzIHNvbWUgcHJvYmxlbXMs
IG9uZSBpcyBjYWxsZXIgY2FuJ3QNCj4+IGdldCBhIGZyZWUgcGlycSB2YWx1ZSwgYW5vdGhlciBp
cyB0aGF0IG9uY2UgdGhlIHBlY2lmaWMgcGlycSB3YXMNCj4+IGFscmVhZHkgbWFwcGVkIHRvIG90
aGVyIGdzaSwgdGhlbiBpdCB3aWxsIGZhaWwuDQo+Pg0KPj4gU28sIGNoYW5nZSB4Y19waHlzZGV2
X21hcF9waXJxIHRvIGFsbG93IHRvIHBhc3MgbmVnYXRpdmUgcGFyYW1ldGVyDQo+PiBpbiBhbmQg
dGhlbiBnZXQgYSBmcmVlIHBpcnEuDQo+Pg0KPj4gVGhlcmUgYXJlIGZvdXIgY2FsbGVyIG9mIHhj
X3BoeXNkZXZfbWFwX3BpcnEgaW4gb3JpZ2luYWwgY29kZXMsIHNvDQo+PiBjbGFyaWZ5IHRoZSBh
ZmZlY3QgYmVsb3coanVzdCBuZWVkIHRvIGNsYXJpZnkgdGhlIHBpcnE8MCBjYXNlKToNCj4+DQo+
PiBGaXJzdCwgcGNpX2FkZF9kbV9kb25lLT54Y19waHlzZGV2X21hcF9waXJxLCBpdCBwYXNzIGly
cSB0byBwaXJxDQo+PiBwYXJhbWV0ZXIsIGlmIHBpcnE8MCBtZWFucyBpcnE8MCwgdGhlbiBpdCB3
aWxsIGZhaWwgYXQgY2hlY2sNCj4+ICJpbmRleCA8IDAiIGluIGFsbG9jYXRlX2FuZF9tYXBfZ3Np
X3BpcnEgYW5kIGdldCBFSU5WQUwsIGxvZ2ljIGlzDQo+PiB0aGUgc2FtZSBhcyBvcmlnaW5hbCBj
b2RlLg0KPiANCj4gVGhlcmUgd2UgaGF2ZQ0KPiANCj4gICAgIGludCBwaXJxID0gWEVOX1BUX1VO
QVNTSUdORURfUElSUTsNCj4gDQo+ICh3aXRoIFhFTl9QVF9VTkFTU0lHTkVEX1BJUlEgYmVpbmcg
LTEpIGFuZCB0aGVuDQo+IA0KPiAgICAgcmMgPSB4Y19waHlzZGV2X21hcF9waXJxKHhlbl94Yywg
eGVuX2RvbWlkLCBtYWNoaW5lX2lycSwgJnBpcnEpOw0KPiANCj4gVGhlcmVmb3JlIC4uLg0KPiAN
Cj4+IC0tLSBhL3Rvb2xzL2xpYnMvY3RybC94Y19waHlzZGV2LmMNCj4+ICsrKyBiL3Rvb2xzL2xp
YnMvY3RybC94Y19waHlzZGV2LmMNCj4+IEBAIC01MCw3ICs1MCw3IEBAIGludCB4Y19waHlzZGV2
X21hcF9waXJxKHhjX2ludGVyZmFjZSAqeGNoLA0KPj4gICAgICBtYXAuZG9taWQgPSBkb21pZDsN
Cj4+ICAgICAgbWFwLnR5cGUgPSBNQVBfUElSUV9UWVBFX0dTSTsNCj4+ICAgICAgbWFwLmluZGV4
ID0gaW5kZXg7DQo+PiAtICAgIG1hcC5waXJxID0gKnBpcnEgPCAwID8gaW5kZXggOiAqcGlycTsN
Cj4+ICsgICAgbWFwLnBpcnEgPSAqcGlycTsNCj4+ICANCj4+ICAgICAgcmMgPSBkb19waHlzZGV2
X29wKHhjaCwgUEhZU0RFVk9QX21hcF9waXJxLCAmbWFwLCBzaXplb2YobWFwKSk7DQo+IA0KPiAu
Li4gdGhpcyB2ZXJ5IG11Y2ggbG9va3MgbGlrZSBhIGNoYW5nZSBpbiBiZWhhdmlvciB0byBtZTog
KnBpcnEgaXMNCj4gbmVnYXRpdmUsIGFuZCBoZW5jZSBpbmRleCB3b3VsZCBoYXZlIGJlZW4gcHV0
IGluIG1hcC5waXJxIGluc3RlYWQuIFdoaWxlDQo+IHdpdGggeW91ciBjaGFuZ2Ugd2UnZCB0aGVu
IHBhc3MgLTEsIGkuZS4gcmVxdWVzdGluZyB0byBvYnRhaW4gYSBuZXcNCj4gcElSUS4NCj4gDQo+
IEkgYWxzbyBjb25zaWRlciBpdCBxdWVzdGlvbmFibGUgdG8gZ28gYnkgaW4tdHJlZSB1c2Vycy4g
SSB0aGluayBwcm9vZiBvZg0KPiBubyBmdW5jdGlvbmFsIGNoYW5nZSBuZWVkcyB0byBhbHNvIGNv
bnNpZGVyIHBvc3NpYmxlIG91dC1vZi10cmVlIHVzZXJzLA0KPiBub3QgdGhlIGxlYXN0IHNlZWlu
ZyB0aGUgUHl0aG9uIGJpbmRpbmcgYmVsb3cgKGV2ZW4gaWYgcmlnaHQgdGhlcmUgeW91DQo+IGlu
ZGVlZCBhdHRlbXB0IHRvIHJldGFpbiBwcmlvciBiZWhhdmlvcikuIFRoZSBvbmUgYXNwZWN0IGlu
IHlvdXIgZmF2b3INCj4gaXMgdGhhdCBsaWJ4YyBpc24ndCBjb25zaWRlcmVkIHRvIGhhdmUgYSBz
dGFibGUgQUJJLg0KPiANCj4gT3ZlcmFsbCBJIHNlZSBsaXR0bGUgcm9vbSB0byBhdm9pZCBpbnRy
b2R1Y2luZyBhIG5ldyBmdW5jdGlvbiB3aXRoIHRoaXMNCj4gaW1wcm92ZWQgYmVoYXZpb3IgKG1h
eWJlIHhjX3BoeXNkZXZfbWFwX3BpcnFfZ3NpKCkpLiBJZGVhbGx5IGV4aXN0aW5nDQo+IGNhbGxl
cnMgd291bGQgdGhlbiBiZSBzd2l0Y2hlZCwgdG8gZXZlbnR1YWxseSBhbGxvdyByZW1vdmluZyB0
aGUgb2xkDQo+IGZ1bmN0aW9uICh0aHVzIGNsZWFubHkgYW5kIG5vdGljZWFibHkgYnJlYWtpbmcg
YW55IG91dC1vZi10cmVlIHVzZXJzDQo+IHRoYXQgdGhlcmUgbWF5IGJlLCBpbmRpY2F0aW5nIHRv
IHRoZWlyIGRldmVsb3BlcnMgdGhhdCB0aGV5IG5lZWQgdG8NCj4gYWRqdXN0IHRoZWlyIGNvZGUp
Lg0KTWFrZSBzZW5zZSwgYWRkaW5nIGEgbmV3IGZ1bmN0aW9uIHhjX3BoeXNkZXZfbWFwX3BpcnFf
Z3NpIGlzIG11Y2ggYmV0dGVyLCBhbmQgaXQgaGFzIHRoZSBsZWFzdCBpbXBhY3QuDQpUaGFuayB5
b3UgdmVyeSBtdWNoIQ0KSSB3aWxsIGNoYW5nZSB0byBhZGQgeGNfcGh5c2Rldl9tYXBfcGlycV9n
c2kgaW4gbmV4dCB2ZXJzaW9uLg0KDQo+IA0KPj4gLS0tIGEvdG9vbHMvcHl0aG9uL3hlbi9sb3ds
ZXZlbC94Yy94Yy5jDQo+PiArKysgYi90b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hjLmMN
Cj4+IEBAIC03NzQsNiArNzc0LDggQEAgc3RhdGljIFB5T2JqZWN0ICpweXhjX3BoeXNkZXZfbWFw
X3BpcnEoUHlPYmplY3QgKnNlbGYsDQo+PiAgICAgIGlmICggIVB5QXJnX1BhcnNlVHVwbGVBbmRL
ZXl3b3JkcyhhcmdzLCBrd2RzLCAiaWlpIiwga3dkX2xpc3QsDQo+PiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmZG9tLCAmaW5kZXgsICZwaXJxKSApDQo+PiAgICAgICAg
ICByZXR1cm4gTlVMTDsNCj4+ICsgICAgaWYgKCBwaXJxIDwgMCApDQo+PiArICAgICAgICBwaXJx
ID0gaW5kZXg7DQo+PiAgICAgIHJldCA9IHhjX3BoeXNkZXZfbWFwX3BpcnEoeGMtPnhjX2hhbmRs
ZSwgZG9tLCBpbmRleCwgJnBpcnEpOw0KPj4gICAgICBpZiAoIHJldCAhPSAwICkNCj4+ICAgICAg
ICAgICAgcmV0dXJuIHB5eGNfZXJyb3JfdG9fZXhjZXB0aW9uKHhjLT54Y19oYW5kbGUpOw0KPiAN
Cj4gSSBxdWVzdGlvbiB0aGlzIGNoYW5nZSwgeWV0IHdpdGhvdXQgQ2MtaW5nIHRoZSBtYWludGFp
bmVyIChub3cgYWRkZWQpDQo+IHlvdSdyZSBub3QgdmVyeSBsaWtlbHkgdG8gZ2V0IGEgY29tbWVu
dCAobGV0IGFsb25lIGFuIGFjaykgb24gdGhpcy4NCj4gDQo+IEphbg0KDQotLSANCkJlc3QgcmVn
YXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 08:01:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 08:01:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756599.1165254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRSGi-00048T-1L; Wed, 10 Jul 2024 08:01:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756599.1165254; Wed, 10 Jul 2024 08:01:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRSGh-00048M-V3; Wed, 10 Jul 2024 08:01:39 +0000
Received: by outflank-mailman (input) for mailman id 756599;
 Wed, 10 Jul 2024 08:01: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=KEHK=OK=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sRSGg-000480-3o
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 08:01:38 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20623.outbound.protection.outlook.com
 [2a01:111:f400:7e88::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0fb6d84-3e92-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 10:01:37 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by MW4PR12MB7120.namprd12.prod.outlook.com (2603:10b6:303:222::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.31; Wed, 10 Jul
 2024 08:01:33 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.7762.016; Wed, 10 Jul 2024
 08:01: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: a0fb6d84-3e92-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=F8am/tgn08soBlwnVYGUuclqo8EOA8f4EEMIopFFLCO1aD7P0QOUukxltWEa1h8/lyGHbRvpfN/xMOh+yRl+VO3c1WrIBJuTkq4aWhGrRpLU5xCJy4syYCeCi2a7xhhvl9ynAMY5OwFFxa9zlUOJYZvsowEB2D5kOjRQjsgt1p4vaeqQPb/oCIi7OtQTF5Qtye2CmJTgrdDhjwNPU8ZEFnmWAXACgQidrlChkOSWMZQYjJwTkU4cS+WMwLBZqzYMdmvnEUAr4pws9BuDpI+jWL4kTxRYDORa7G/Wika93BY+7sC07Dgcff+BaENbhXmeS798NWYfCVRtlVr7YgkhnQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=v3zFQnRwW4a3vC0+neD4A9pAereLjZyjsAfAkfHRpuM=;
 b=eSndRa7M/oeXExKv0eeulc1YQ3Kn9PyU5cUu+M0bPuW3GNwf2tTMaEviG/M60GJOC+OMXP9OxkYBRpQXKXQKyt5yc4equfTSjhdUD8yk9U/a3zp3IXp7+utIhCwvczDnUtzIm7WpdSqUUFqNU2leuNAdbXhfklD26M/Q4w849I4CraAtXNOlwY4z0ANKFQFEsKtvcTmP818hM9MfbHY7ChHSMIPCHI8a2/H1BZE5zA1ajnWijtjM5WhBlbD0oq/sizG5hsUffScS/oa0VJ0QguuHcP/aox9/WWXjHvabdkt1iXghHtXiO66TLkPyTs5xCFfY3XSzhqZNup7eEltvBw==
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=v3zFQnRwW4a3vC0+neD4A9pAereLjZyjsAfAkfHRpuM=;
 b=JjherIyAickFCZq+Z8H5T9bwm/MSsuU18ih3fued9coLKeN9KH00jkgUCCO6qr1AskFqNxaasRucuQQFkLiqtuaax/fdCNPX0t3/jkDKUHggBsJrJbDvjkBTmCghN372M+T9WVuaRr0DfTxaeKPOqNL0NguBUNicNinK2uxPLWU=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Wei Liu
	<wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 3/7] x86/pvh: Add PHYSDEVOP_setup_gsi for PVH dom0
Thread-Topic: [XEN PATCH v12 3/7] x86/pvh: Add PHYSDEVOP_setup_gsi for PVH
 dom0
Thread-Index: AQHa0SvX+81a6HzJk0WXqL6d0XE9YLHwIU0A
Date: Wed, 10 Jul 2024 08:01:31 +0000
Message-ID:
 <BL1PR12MB58499D36DFB961ACE8CE3FC5E7A42@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-4-Jiqian.Chen@amd.com>
In-Reply-To: <20240708114124.407797-4-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.7762.000)
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_|MW4PR12MB7120:EE_
x-ms-office365-filtering-correlation-id: b18fc62b-295d-4e71-7e5c-08dca0b682cb
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?RlA3eVZDUE8wVlVqSndKUEMxeTBBM1g5b1FPQlI1MFNYZWUxMmFiTEhZbk5C?=
 =?utf-8?B?M1huOGxhNDN0M0ZzTTh6bDVzNTJSOGVycXkveFJzMEdBTHdGQVl2bEtyWmh3?=
 =?utf-8?B?UHFrTmRyS2NZdm5LNm4rNlY0d3k1WERTU2sxdnp0UThYMWVKc21GMUdYU2hK?=
 =?utf-8?B?ckdnWTY2K2lPekZPbnRoS0JzQlRKUHVNMHl4RTNUSUU2aFB6MWxoTkd0bXpx?=
 =?utf-8?B?UmxEMTdkWWtncjJHY0l1K3lpOVQwc1hFZWwyK09oMnlVTXZPM1krLzVad3I3?=
 =?utf-8?B?aEw1REVQbUY1M01EUmlha2Q2VVdBdGp0OVVkQWxzR3dhdTNsclpyZmt3ZktV?=
 =?utf-8?B?M05YdzVuN0xlV3hDT0U0QlpKTGNub3RhVTZpdlZyMjdpck1CSDVOcnUzTndH?=
 =?utf-8?B?dlRnV3JUenR6bXJ2QWlGSmEwR0xLWDAxTm5Kbm9XTkpzZGxFKzJsVjcwTnE5?=
 =?utf-8?B?aFRmUUVYb3d2cGF4NWZQL3N0ZXNOdVVYaFJpM2JCTm1DQnoyYm0yVWVJUEY3?=
 =?utf-8?B?QnA0ejhBSlVIV2pEdUxzdjBKUDRtek5jY3dzY1BOK0plY3V6SlVtMUZvZ05Z?=
 =?utf-8?B?MC9admliSWw0UUtWQWRxMlRnV0dRVDgwaTE4c3M0ZUNtdXNTeVJsaEh2TkFn?=
 =?utf-8?B?a3UyaTV6K1JVUXFFSGU3VHZiemU4T1Fxdm9VSm5rLytkYks5SGY5aWJUREky?=
 =?utf-8?B?aFVsYVFOQll1bGI1ektCcDJyc01BcWo4OHZlYmZlbjRvTjJQSTNCUWVkdktV?=
 =?utf-8?B?dXZiVkhJODBsMTh1QkV1cXo2RDIvNytySzBLUFJsTmlrbUk2YXAvNGJwRHgw?=
 =?utf-8?B?ZjB0MHhYV0txS0hKYnh1RzhnVHdPbkVuWGNKY01kRHdheThHREt2VGFJeDd6?=
 =?utf-8?B?bS91N3JKWHRHTVlaMk1lRUhyOGtYdGFuN29pY04rdjBxcWdxamI0amhGNVVq?=
 =?utf-8?B?OUI1b3piaERYamxVNmQvNWtReXJFclh1RXlqRXBrUTlZZnI2V2JVcU55T0xB?=
 =?utf-8?B?S2laY0dwT2dZRG9tbjVxdmZCaFJWQVpXMGd6VExyQzVIcTd0dlU1clNCblNT?=
 =?utf-8?B?SG8zR2NLU1ZzNndieVBITHBxMnNrR3pPMzNFQmhpeHh2YzJVT1pnMmIramJ0?=
 =?utf-8?B?UkJVRjZQT0hjVVh3UmJzRzc5cGNVZ3JrUjNxUnlOSVdNanIxM01Tc3Rtem1z?=
 =?utf-8?B?a2lnY0NrWmZyUmcvRWtHOTRLV2gva0RJWDZUWW5POFFTMkRjemFhWUFyNEZH?=
 =?utf-8?B?dy9pZzlNWmJ3a3BYVHE4aEpWRjkwS2NUYTBrNmdhdGVFWlNySFNUNmlkR3VH?=
 =?utf-8?B?UkxERzUwanVyWUtjZ2MvR0J0M0JrV1pHOGdFVmR5ekI3QUhNaENUdGcyc3Nq?=
 =?utf-8?B?MHBqaDhFN2tpb1pOenpubHFNbGFxRjFjdkFzRHZOOW5ZZ0VQamxmUGRaTXoy?=
 =?utf-8?B?bTFHcVhZVzlQOTB2Rkx3V3dFRHo2UHlNaGwwUlN6SmNubGJycENHQUxxR0lU?=
 =?utf-8?B?MjBNNzFQdklhRE5LS2I3ZWpzM2w0K0xTTHNVcUhkME02Z1dCWTI0MStkVkVG?=
 =?utf-8?B?WmtRM3Qzb0MrS0VXSmpVVkNFdnRoN3VHZUlRaFFHTE0yYmtKQjlUVFJzaDI0?=
 =?utf-8?B?VXRzNVBocTA2d0NWejhLMUdFNTk5YTdoZkJnVENzNFhkb1FoT3lVVVRHbDhi?=
 =?utf-8?B?Ri9RaGJoemQ2OURSTlFJQTYzdUtBVStTRGZBZUNrT042MTl6TEVrMi80am1x?=
 =?utf-8?B?MEZzc3pXeDlBVzV1WE0zZXVBeVFnRFlFeGF6TXNsSTZPdEgva3VLV3dNWGdo?=
 =?utf-8?B?WlpYMFlBZW1PekFIZmdTNUNMZVRqWUtxUUxBQm41MTlLTHBNVHd0VDJWOFd1?=
 =?utf-8?B?aklGRER2Q21VYWo1Qk91MGNnR0QyYzJhZjFtcU5jeSt6d1E9PQ==?=
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)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aVZkWld5VEtnekRHR2d4YWZDTUFhcjM0VDI5aHpzUEtLS21zYlZpMDJJNjcv?=
 =?utf-8?B?RGI2WXdiUGlNMy9CVG5NbXNwVGFIS0VMUWN2eWVYKzNLc3FTS0hFKy9pTkVZ?=
 =?utf-8?B?OVFUYjdKUVpXRE8yb2ZSTGtWS21TWmNXTTZpTlJJSURsclRndlhoYjRYRStp?=
 =?utf-8?B?SmMxcDZqL3FHM2ZQTUtCQm5UL0JydnFhK1FhNjg5dDdHbTRoWTBCclJ4dGY2?=
 =?utf-8?B?allwMS9QUjBidkZxNlJSSlpvTGcvUk5BczlsM203Rk5xY1h6L1R3M0p1bmVi?=
 =?utf-8?B?ajJvZVhrdjFVQU1EM29rQzhXWDhYS0FvWTlaSnVxNjlyMlVzazdTVlJPL05u?=
 =?utf-8?B?NUNVeC94d3NrQlQ2Uk1yMnJKV1AyZDQxKzNIb0ZLbkVlOHlIaVFEbDVDSkhP?=
 =?utf-8?B?TTdNeGhHWFBWV29UQldOSVR0azVKd3U2VWJMOVdid0NTUzE5djRDVmEwUGM0?=
 =?utf-8?B?eUlhbnJSUVdRUlZwV2M3cVVZaXhnbUNDSzhaL0xyZFpxY1hXRFVnanlIbWJS?=
 =?utf-8?B?bnY2QU1lODlLVndKS25sUmhQeUxuWWQ0ZS9GM0dJdzhUa2lkbG1qdkV5Q21O?=
 =?utf-8?B?V0JaemwwU3NCNHNKc3YvbG9aZ1RCYk1ESFdmY3g3dlQrREJiUGgzZGZpbTZs?=
 =?utf-8?B?OEVGajBpQ0Y0dm81bWt3Y1k0bktPSHNwQ3NMUWQrYkY0UXlDSnp6MzZKSXVj?=
 =?utf-8?B?cStRVDhKU1J0MzM1WTJiWWVLRWc0Mi9pRGw5K1VVem43U3VOV21DblBrV2hV?=
 =?utf-8?B?L1VnZGovN2tORUxhWWpxZU9VOUdHSzZPVDZsQUt4WDN3ck5TWmFMb0x4US92?=
 =?utf-8?B?V1UwVXo1dGtEcXV6ZW1hTUNNdmJ1akhvRWpNcW4xWmZTSm1XaG5pM08rNjI5?=
 =?utf-8?B?bmJPcmlkZVpUcFNpOWNqSzNzSFRmay9hV3NNdk1vNWU1MFRFQ2V6a3BPWllk?=
 =?utf-8?B?alhNVUh4YThUdVpVUE13RWlKVUw1Y2NnaTBjaGZvNzZRd0dqVUhFV0lDYmsz?=
 =?utf-8?B?WC9FT2ZHN09Qc2dPNnphRmprZkRZZ2hCY0VLSVRYbWNyV2RaOFZ1QVUvczFr?=
 =?utf-8?B?OHA2OHFKeVRNZDRLZ3pzYzNSZkhrVk1XOUdFZlZuK01OM0lubG5uZGtqcklq?=
 =?utf-8?B?aUNrTjZTb2daQWEyd1dSMjNkblVJVkpYc2lJTkM3aklxekFuMnB1TExwcDUv?=
 =?utf-8?B?VDFoNkUwQ2o5V2YrdmYzVnJ5NEErZ0Y1UUVCUm9lNHFGWnJkZzQ2Sld5NnhJ?=
 =?utf-8?B?eFNxWEREYUpuUTdaVXo0eWNJS0ZGYlN0akQxKzFTR2s0cDBBQWdnbkNkcnNm?=
 =?utf-8?B?QTB0OEplOGtaTW5pL0hwcDl1Y3JjYnpEN0pwSXlzc01SRW84c2NaNkowTWxi?=
 =?utf-8?B?S015S2NpWCtzZVRLV0FzWTJjYmVjZnhrUTJ6K01QSUhRbWMrbzVxd2d0b2tO?=
 =?utf-8?B?cUhPZFVGeVVBZW83VkFJcWJZM2VsQlVoaXFoM0FCcnJMTnVtS0JwN3NLb1Ay?=
 =?utf-8?B?MDVFRi85eUwyWDlNODBuWVFsZk5IaVdselc1clpnc1pDRy9RQnJZeDNkdEJ2?=
 =?utf-8?B?K2pncUJBZmUwVGJMMi9Jdi9rZytmenVQRG9qd0dwSCtiU0ZTUjVSZEY1MjRr?=
 =?utf-8?B?L3dGeHk4K2ZWbkNBZGVYRHBwRjhFb2pLbVVEYjllVXIvZkJ3RHl1UVpxKzBD?=
 =?utf-8?B?TE5OdERTc3hsSFQyOG9WcU5YTC85S0ZLUHd4akJETER1eVpLMkd3MzQ0bHZ4?=
 =?utf-8?B?eHJ2QXV5NmhFVkRpOXQwQjhjdDhzVjhUbHpRT1M1UzFHWlFEemhnMTNDcGJq?=
 =?utf-8?B?OWtFTUlZcU05R1ZKRVZiTkMrRnR1MCs4ZWI0OFdGenY4aU56T1lkQjVIRm9V?=
 =?utf-8?B?T1ZuUHIrTnpZOXducGphOWZ4NmlvcG9sVFpUeHMwanpCTzlzV0dhMUcrUlJD?=
 =?utf-8?B?M2lUK1pUSHN5cEtXWVFKLzdGaDVtanR6RWxMZmpmZ3pNa0xjTzZYWTRKUGF3?=
 =?utf-8?B?bm94bE9lb25oSFllZnY2YTlHd2hBWXcyay9yVDNMVExweEpIWlIvNnBWc2VQ?=
 =?utf-8?B?VWJCcVFLdUZDcEdHQk5NSFlhM3JoUWRFTkY0a3JSVk1oRXpjam00ME1aa1JJ?=
 =?utf-8?Q?i7i0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2BCE6C9807FB63438A7E380BC2CD29F7@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: b18fc62b-295d-4e71-7e5c-08dca0b682cb
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jul 2024 08:01:31.8163
 (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: LhhRnodi2VuyPYQpK9P+wtZnXN82g7UE8vGe97p9qCxQc335sz4ctaQblfsPyjlV+NlNCtSyHM8cYqLZuiNNnQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7120

SGksDQoNCk9uIDIwMjQvNy84IDE5OjQxLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4gVGhlIGdzaSBv
ZiBhIHBhc3N0aHJvdWdoIGRldmljZSBtdXN0IGJlIGNvbmZpZ3VyZWQgZm9yIGl0IHRvIGJlDQo+
IGFibGUgdG8gYmUgbWFwcGVkIGludG8gYSBodm0gZG9tVS4NCj4gQnV0IFdoZW4gZG9tMCBpcyBQ
VkgsIHRoZSBnc2lzIG1heSBub3QgZ2V0IHJlZ2lzdGVyZWQoc2VlIGJlbG93DQo+IGNsYXJpZmlj
YXRpb24pLCBpdCBjYXVzZXMgdGhlIGluZm8gb2YgYXBpYywgcGluIGFuZCBpcnEgbm90IGJlDQo+
IGFkZGVkIGludG8gaXJxXzJfcGluIGxpc3QsIGFuZCB0aGUgaGFuZGxlciBvZiBpcnFfZGVzYyBp
cyBub3Qgc2V0LA0KPiB0aGVuIHdoZW4gcGFzc3Rocm91Z2ggYSBkZXZpY2UsIHNldHRpbmcgaW9h
cGljIGFmZmluaXR5IGFuZCB2ZWN0b3INCj4gd2lsbCBmYWlsLg0KPiANCj4gVG8gZml4IGFib3Zl
IHByb2JsZW0sIG9uIExpbnV4IGtlcm5lbCBzaWRlLCBhIG5ldyBjb2RlIHdpbGwNCj4gbmVlZCB0
byBjYWxsIFBIWVNERVZPUF9zZXR1cF9nc2kgZm9yIHBhc3N0aHJvdWdoIGRldmljZXMgdG8NCj4g
cmVnaXN0ZXIgZ3NpIHdoZW4gZG9tMCBpcyBQVkguDQo+IA0KPiBTbywgYWRkIFBIWVNERVZPUF9z
ZXR1cF9nc2kgaW50byBodm1fcGh5c2Rldl9vcCBmb3IgYWJvdmUNCj4gcHVycG9zZS4NCj4gDQo+
IENsYXJpZnkgdHdvIHF1ZXN0aW9uczoNCj4gRmlyc3QsIHdoeSB0aGUgZ3NpIG9mIGRldmljZXMg
YmVsb25nIHRvIFBWSCBkb20wIGNhbiB3b3JrPw0KPiBCZWNhdXNlIHdoZW4gcHJvYmUgYSBkcml2
ZXIgdG8gYSBub3JtYWwgZGV2aWNlLCBpdCB1c2VzIHRoZSBub3JtYWwNCj4gcHJvYmUgZnVuY3Rp
b24gb2YgcGNpIGRldmljZSwgaW4gaXRzIGNhbGxzdGFjaywgaXQgcmVxdWVzdHMgaXJxDQo+IGFu
ZCB1bm1hc2sgY29ycmVzcG9uZGluZyBpb2FwaWMgb2YgZ3NpLCB0aGVuIHRyYXAgaW50byB4ZW4g
YW5kDQo+IHJlZ2lzdGVyIGdzaSBmaW5hbGx5Lg0KPiBDYWxsc3RhY2sgaXMob24gbGludXgga2Vy
bmVsIHNpZGUpIHBjaV9kZXZpY2VfcHJvYmUtPg0KPiByZXF1ZXN0X3RocmVhZGVkX2lycS0+IGly
cV9zdGFydHVwLT4gX191bm1hc2tfaW9hcGljLT4NCj4gaW9fYXBpY193cml0ZSwgdGhlbiB0cmFw
IGludG8geGVuIGh2bWVtdWxfZG9faW8tPg0KPiBodm1faW9faW50ZXJjZXB0LT4gaHZtX3Byb2Nl
c3NfaW9faW50ZXJjZXB0LT4NCj4gdmlvYXBpY193cml0ZV9pbmRpcmVjdC0+IHZpb2FwaWNfaHdk
b21fbWFwX2dzaS0+IG1wX3JlZ2lzdGVyX2dzaS4NCj4gU28gdGhhdCB0aGUgZ3NpIGNhbiBiZSBy
ZWdpc3RlcmVkLg0KPiANCj4gU2Vjb25kLCB3aHkgdGhlIGdzaSBvZiBwYXNzdGhyb3VnaCBkZXZp
Y2UgY2FuJ3Qgd29yayB3aGVuIGRvbTANCj4gaXMgUFZIPw0KPiBCZWNhdXNlIHdoZW4gYXNzaWdu
IGEgZGV2aWNlIHRvIHBhc3N0aHJvdWdoLCBpdCB1c2VzIHRoZSBzcGVjaWZpYw0KPiBwcm9iZSBm
dW5jdGlvbiBvZiBwY2liYWNrLCBpbiBpdHMgY2FsbHN0YWNrLCBpdCBkb2Vzbid0IGluc3RhbGwg
YQ0KPiBmYWtlIGlycSBoYW5kbGVyIGR1ZSB0byB0aGUgSVNSIGlzIG5vdCBydW5uaW5nLiBTbyB0
aGF0DQo+IG1wX3JlZ2lzdGVyX2dzaSBvbiBYZW4gc2lkZSBpcyBuZXZlciBjYWxsZWQsIHRoZW4g
dGhlIGdzaSBpcyBub3QNCj4gcmVnaXN0ZXJlZC4NCj4gQ2FsbHN0YWNrIGlzKG9uIGxpbnV4IGtl
cm5lbCBzaWRlKSBwY2lzdHViX3Byb2JlLT5wY2lzdHViX3NlaXplLT4NCj4gcGNpc3R1Yl9pbml0
X2RldmljZS0+IHhlbl9wY2lia19yZXNldF9kZXZpY2UtPg0KPiB4ZW5fcGNpYmtfY29udHJvbF9p
c3ItPmlzcl9vbj09MC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4u
Q2hlbkBhbWQuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQu
Y29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4N
Cj4gLS0tDQo+ICB4ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jIHwgMSArDQo+ICAxIGZpbGUg
Y2hhbmdlZCwgMSBpbnNlcnRpb24oKykNCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv
aHZtL2h5cGVyY2FsbC5jIGIveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYw0KPiBpbmRleCAw
M2FkYTNjODgwYmQuLmNmZTgyZDBmOTZlZCAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gveDg2L2h2
bS9oeXBlcmNhbGwuYw0KPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jDQo+IEBA
IC04Niw2ICs4Niw3IEBAIGxvbmcgaHZtX3BoeXNkZXZfb3AoaW50IGNtZCwgWEVOX0dVRVNUX0hB
TkRMRV9QQVJBTSh2b2lkKSBhcmcpDQo+ICAgICAgICAgICAgICByZXR1cm4gLUVOT1NZUzsNCj4g
ICAgICAgICAgYnJlYWs7DQo+ICANCj4gKyAgICBjYXNlIFBIWVNERVZPUF9zZXR1cF9nc2k6DQo+
ICAgICAgY2FzZSBQSFlTREVWT1BfcGNpX21tY2ZnX3Jlc2VydmVkOg0KPiAgICAgIGNhc2UgUEhZ
U0RFVk9QX3BjaV9kZXZpY2VfYWRkOg0KPiAgICAgIGNhc2UgUEhZU0RFVk9QX3BjaV9kZXZpY2Vf
cmVtb3ZlOg0KDQpEbyB5b3UgaGF2ZSBhbnkgb3RoZXIgY29uY2VybiBhYm91dCB0aGlzIHBhdGNo
Pw0KSWYgbm90LCBtYXkgSSBnZXQgeW91ciBSZXZpZXdkLWJ5Pw0KVGhlbiB0aGUgZmlyc3QgdGhy
ZWUgcGF0Y2hlcyBvZiB0aGlzIHNlcmllcyBjYW4gYmUgY29uc2lkZXJlZCB0byBtZXJnZWQgb25j
ZSBJIHNlbmQgbmV4dCB2ZXJzaW9uLCBzbyB0aGF0IEkgY2FuIGNvbnRpbnVlIHRvIHVwc3RyZWFt
IHRoZSBrZXJuZWwgcGF0Y2hlcyB0aGF0IGRlcGVuZCBvbiB0aGVtLg0KDQotLSANCkJlc3QgcmVn
YXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 08:26:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 08:26:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756608.1165263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRSeR-0007Cu-T0; Wed, 10 Jul 2024 08:26:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756608.1165263; Wed, 10 Jul 2024 08: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 1sRSeR-0007Cn-QL; Wed, 10 Jul 2024 08:26:11 +0000
Received: by outflank-mailman (input) for mailman id 756608;
 Wed, 10 Jul 2024 08:26: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=hHuL=OK=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sRSeR-0007Ca-3V
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 08:26:11 +0000
Received: from pb-smtp2.pobox.com (pb-smtp2.pobox.com [64.147.108.71])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0c8e76a3-3e96-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 10:26:06 +0200 (CEST)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id 360A9313DE;
 Wed, 10 Jul 2024 04:26:04 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id 1BDB5313DC;
 Wed, 10 Jul 2024 04:26:04 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp2.pobox.com (Postfix) with ESMTPSA id 9294A313DA;
 Wed, 10 Jul 2024 04:26:02 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c8e76a3-3e96-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:mime-version:content-transfer-encoding;
	 s=sasl; bh=xaHCLroQ9G1PraT6F99kDFenXkYPSQFS4jpds0VnLUs=; b=Y/y+
	cDVfG/mYbmlK5wjqyhMS4CoNKZOK7kY6Qe0qVJ1fJ159MA/nd0gA2pANSc889Opq
	E6AC1fnmmkR9DQmm4y/HIsSF8W+N/AIo35B3snrtMR0Yg+kYqGBq5Rf79ALdZUgz
	D9nltCoEKatEUFKHrWCPr8jSjwLs8NY9r50zm24=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v3 0/2] x86: separate powernow/hwp/acpi cpufreq code
Date: Wed, 10 Jul 2024 11:25:58 +0300
Message-Id: <cover.1720596402.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
X-Pobox-Relay-ID:
 0B3A340C-3E96-11EF-BEED-965B910A682E-90055647!pb-smtp2.pobox.com
Content-Transfer-Encoding: quoted-printable

This is another version of a short patch series to make platform-specific=
 parts
of cpufreq optional and dependant on INTEL & AMD config options. This is =
to
allow for tuning the build for either AMD or Intel platform exclusively a=
nd
hence to drop the code that would be left unused.

Per-patch changelog provided to track what changed since v2.

v2 series & related discussion are here:
https://lore.kernel.org/xen-devel/cover.1719832871.git.Sergiy_Kibrik@epam=
.com/

Sergiy Kibrik (2):
  x86/cpufreq: move ACPI cpufreq driver into separate file
  x86/cpufreq: separate powernow/hwp/acpi cpufreq code

 xen/arch/x86/acpi/cpufreq/Makefile  |   5 +-
 xen/arch/x86/acpi/cpufreq/acpi.c    | 518 ++++++++++++++++++++++++++++
 xen/arch/x86/acpi/cpufreq/cpufreq.c | 512 +--------------------------
 xen/drivers/acpi/pmstat.c           |   5 +-
 xen/drivers/cpufreq/cpufreq.c       |   3 +-
 xen/include/acpi/cpufreq/cpufreq.h  |  10 +
 6 files changed, 542 insertions(+), 511 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/acpi.c

--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 08:28:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 08:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756612.1165274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRSgX-0007tO-7F; Wed, 10 Jul 2024 08:28:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756612.1165274; Wed, 10 Jul 2024 08:28: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 1sRSgX-0007tH-4a; Wed, 10 Jul 2024 08:28:21 +0000
Received: by outflank-mailman (input) for mailman id 756612;
 Wed, 10 Jul 2024 08:28:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hHuL=OK=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sRSgV-0007t9-K5
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 08:28:19 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5941cc69-3e96-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 10:28:16 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id F1B891842A;
 Wed, 10 Jul 2024 04:28:12 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id E9C9018429;
 Wed, 10 Jul 2024 04:28:12 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id DB51D18428;
 Wed, 10 Jul 2024 04:28:07 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5941cc69-3e96-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=CC1ePQ9OVnZduDauSGZBGNh2o
	v6yI4vWznWUL0c1qAw=; b=D391T4UVsO9uPS2TPUW3fbQCuioSJGnlLv8hBIKWt
	MjNzTJkCC8rlzKPOiVz25OTjIbo/FpZaowVju2mqef6EOoRCF9ietuz4EDQz5vZd
	U2u2SJA7nqMe9G/BBY/z/EsEs5Lh0dKVA8lAuJY6Vx7BCeIulZZCC0iEltxQxhYC
	gQ=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v3 1/2] x86/cpufreq: move ACPI cpufreq driver into separate file
Date: Wed, 10 Jul 2024 11:28:03 +0300
Message-Id: <cc7d5b8e93e3c4d938d3606e7e8426d53696c8e9.1720596402.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720596402.git.Sergiy_Kibrik@epam.com>
References: <cover.1720596402.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 55E95F96-3E96-11EF-BA7E-C38742FD603B-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

Separate ACPI driver from generic initialization cpufreq code.
This way acpi-cpufreq can become optional in the future and be disabled
from non-Intel builds.

no changes to code were introduced, except:
  acpi_cpufreq_register() helper added
  clean up a list of included headers
  license transformed into an SPDX line

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
---
changes in v3:
 - do not move generic get_measured_perf() & related code
 - license transformed into an SPDX line
---
 xen/arch/x86/acpi/cpufreq/Makefile  |   1 +
 xen/arch/x86/acpi/cpufreq/acpi.c    | 518 ++++++++++++++++++++++++++++
 xen/arch/x86/acpi/cpufreq/cpufreq.c | 506 +--------------------------
 xen/include/acpi/cpufreq/cpufreq.h  |   2 +
 4 files changed, 523 insertions(+), 504 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/acpi.c

diff --git a/xen/arch/x86/acpi/cpufreq/Makefile b/xen/arch/x86/acpi/cpufr=
eq/Makefile
index db83aa6b14..44d4c0b497 100644
--- a/xen/arch/x86/acpi/cpufreq/Makefile
+++ b/xen/arch/x86/acpi/cpufreq/Makefile
@@ -1,3 +1,4 @@
+obj-y +=3D acpi.o
 obj-y +=3D cpufreq.o
 obj-y +=3D hwp.o
 obj-y +=3D powernow.o
diff --git a/xen/arch/x86/acpi/cpufreq/acpi.c b/xen/arch/x86/acpi/cpufreq=
/acpi.c
new file mode 100644
index 0000000000..512ada3ead
--- /dev/null
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -0,0 +1,518 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ *  cpufreq.c - ACPI Processor P-States Driver ($Revision: 1.4 $)
+ *
+ *  Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
+ *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.=
com>
+ *  Copyright (C) 2002 - 2004 Dominik Brodowski <linux@brodo.de>
+ *  Copyright (C) 2006        Denis Sadykov <denis.m.sadykov@intel.com>
+ *
+ *  Feb 2008 - Liu Jinsong <jinsong.liu@intel.com>
+ *      porting acpi-cpufreq.c from Linux 2.6.23 to Xen hypervisor
+ */
+
+#include <xen/types.h>
+#include <xen/errno.h>
+#include <xen/delay.h>
+#include <xen/param.h>
+#include <acpi/acpi.h>
+#include <acpi/cpufreq/cpufreq.h>
+
+
+enum {
+    UNDEFINED_CAPABLE =3D 0,
+    SYSTEM_INTEL_MSR_CAPABLE,
+    SYSTEM_IO_CAPABLE,
+};
+
+#define INTEL_MSR_RANGE         (0xffffull)
+
+static bool __read_mostly acpi_pstate_strict;
+boolean_param("acpi_pstate_strict", acpi_pstate_strict);
+
+static unsigned extract_io(u32 value, struct acpi_cpufreq_data *data)
+{
+    struct processor_performance *perf;
+    int i;
+
+    perf =3D data->acpi_data;
+
+    for (i=3D0; i<perf->state_count; i++) {
+        if (value =3D=3D perf->states[i].status)
+            return data->freq_table[i].frequency;
+    }
+    return 0;
+}
+
+static unsigned extract_msr(u32 msr, struct acpi_cpufreq_data *data)
+{
+    int i;
+    struct processor_performance *perf;
+
+    msr &=3D INTEL_MSR_RANGE;
+    perf =3D data->acpi_data;
+
+    for (i=3D0; data->freq_table[i].frequency !=3D CPUFREQ_TABLE_END; i+=
+) {
+        if (msr =3D=3D perf->states[data->freq_table[i].index].status)
+            return data->freq_table[i].frequency;
+    }
+    return data->freq_table[0].frequency;
+}
+
+static unsigned extract_freq(u32 val, struct acpi_cpufreq_data *data)
+{
+    switch (data->arch_cpu_flags) {
+    case SYSTEM_INTEL_MSR_CAPABLE:
+        return extract_msr(val, data);
+    case SYSTEM_IO_CAPABLE:
+        return extract_io(val, data);
+    default:
+        return 0;
+    }
+}
+
+struct msr_addr {
+    u32 reg;
+};
+
+struct io_addr {
+    u16 port;
+    u8 bit_width;
+};
+
+typedef union {
+    struct msr_addr msr;
+    struct io_addr io;
+} drv_addr_union;
+
+struct drv_cmd {
+    unsigned int type;
+    const cpumask_t *mask;
+    drv_addr_union addr;
+    u32 val;
+};
+
+static void cf_check do_drv_read(void *drvcmd)
+{
+    struct drv_cmd *cmd;
+
+    cmd =3D (struct drv_cmd *)drvcmd;
+
+    switch (cmd->type) {
+    case SYSTEM_INTEL_MSR_CAPABLE:
+        rdmsrl(cmd->addr.msr.reg, cmd->val);
+        break;
+    case SYSTEM_IO_CAPABLE:
+        acpi_os_read_port((acpi_io_address)cmd->addr.io.port,
+            &cmd->val, (u32)cmd->addr.io.bit_width);
+        break;
+    default:
+        break;
+    }
+}
+
+static void cf_check do_drv_write(void *drvcmd)
+{
+    struct drv_cmd *cmd;
+    uint64_t msr_content;
+
+    cmd =3D (struct drv_cmd *)drvcmd;
+
+    switch (cmd->type) {
+    case SYSTEM_INTEL_MSR_CAPABLE:
+        rdmsrl(cmd->addr.msr.reg, msr_content);
+        msr_content =3D (msr_content & ~INTEL_MSR_RANGE)
+            | (cmd->val & INTEL_MSR_RANGE);
+        wrmsrl(cmd->addr.msr.reg, msr_content);
+        break;
+    case SYSTEM_IO_CAPABLE:
+        acpi_os_write_port((acpi_io_address)cmd->addr.io.port,
+            cmd->val, (u32)cmd->addr.io.bit_width);
+        break;
+    default:
+        break;
+    }
+}
+
+static void drv_read(struct drv_cmd *cmd)
+{
+    cmd->val =3D 0;
+
+    ASSERT(cpumask_weight(cmd->mask) =3D=3D 1);
+
+    /* to reduce IPI for the sake of performance */
+    if (likely(cpumask_test_cpu(smp_processor_id(), cmd->mask)))
+        do_drv_read((void *)cmd);
+    else
+        on_selected_cpus(cmd->mask, do_drv_read, cmd, 1);
+}
+
+static void drv_write(struct drv_cmd *cmd)
+{
+    if (cpumask_equal(cmd->mask, cpumask_of(smp_processor_id())))
+        do_drv_write((void *)cmd);
+    else
+        on_selected_cpus(cmd->mask, do_drv_write, cmd, 1);
+}
+
+static u32 get_cur_val(const cpumask_t *mask)
+{
+    struct cpufreq_policy *policy;
+    struct processor_performance *perf;
+    struct drv_cmd cmd;
+    unsigned int cpu =3D smp_processor_id();
+
+    if (unlikely(cpumask_empty(mask)))
+        return 0;
+
+    if (!cpumask_test_cpu(cpu, mask))
+        cpu =3D cpumask_first(mask);
+    if (cpu >=3D nr_cpu_ids || !cpu_online(cpu))
+        return 0;
+
+    policy =3D per_cpu(cpufreq_cpu_policy, cpu);
+    if (!policy || !cpufreq_drv_data[policy->cpu])
+        return 0;
+
+    switch (cpufreq_drv_data[policy->cpu]->arch_cpu_flags) {
+    case SYSTEM_INTEL_MSR_CAPABLE:
+        cmd.type =3D SYSTEM_INTEL_MSR_CAPABLE;
+        cmd.addr.msr.reg =3D MSR_IA32_PERF_STATUS;
+        break;
+    case SYSTEM_IO_CAPABLE:
+        cmd.type =3D SYSTEM_IO_CAPABLE;
+        perf =3D cpufreq_drv_data[policy->cpu]->acpi_data;
+        cmd.addr.io.port =3D perf->control_register.address;
+        cmd.addr.io.bit_width =3D perf->control_register.bit_width;
+        break;
+    default:
+        return 0;
+    }
+
+    cmd.mask =3D cpumask_of(cpu);
+
+    drv_read(&cmd);
+    return cmd.val;
+}
+
+static unsigned int cf_check get_cur_freq_on_cpu(unsigned int cpu)
+{
+    struct cpufreq_policy *policy;
+    struct acpi_cpufreq_data *data;
+
+    if (!cpu_online(cpu))
+        return 0;
+
+    policy =3D per_cpu(cpufreq_cpu_policy, cpu);
+    if (!policy)
+        return 0;
+
+    data =3D cpufreq_drv_data[policy->cpu];
+    if (unlikely(data =3D=3D NULL ||
+        data->acpi_data =3D=3D NULL || data->freq_table =3D=3D NULL))
+        return 0;
+
+    return extract_freq(get_cur_val(cpumask_of(cpu)), data);
+}
+
+void intel_feature_detect(struct cpufreq_policy *policy)
+{
+    unsigned int eax;
+
+    eax =3D cpuid_eax(6);
+    if (eax & 0x2) {
+        policy->turbo =3D CPUFREQ_TURBO_ENABLED;
+        if (cpufreq_verbose)
+            printk(XENLOG_INFO "CPU%u: Turbo Mode detected and enabled\n=
",
+                   smp_processor_id());
+    }
+}
+
+static void cf_check feature_detect(void *info)
+{
+    intel_feature_detect(info);
+}
+
+static unsigned int check_freqs(const cpumask_t *mask, unsigned int freq=
,
+                                struct acpi_cpufreq_data *data)
+{
+    unsigned int cur_freq;
+    unsigned int i;
+
+    for (i=3D0; i<100; i++) {
+        cur_freq =3D extract_freq(get_cur_val(mask), data);
+        if (cur_freq =3D=3D freq)
+            return 1;
+        udelay(10);
+    }
+    return 0;
+}
+
+static int cf_check acpi_cpufreq_target(
+    struct cpufreq_policy *policy,
+    unsigned int target_freq, unsigned int relation)
+{
+    struct acpi_cpufreq_data *data =3D cpufreq_drv_data[policy->cpu];
+    struct processor_performance *perf;
+    struct cpufreq_freqs freqs;
+    cpumask_t online_policy_cpus;
+    struct drv_cmd cmd;
+    unsigned int next_state =3D 0; /* Index into freq_table */
+    unsigned int next_perf_state =3D 0; /* Index into perf table */
+    unsigned int j;
+    int result =3D 0;
+
+    if (unlikely(data =3D=3D NULL ||
+        data->acpi_data =3D=3D NULL || data->freq_table =3D=3D NULL)) {
+        return -ENODEV;
+    }
+
+    if (policy->turbo =3D=3D CPUFREQ_TURBO_DISABLED)
+        if (target_freq > policy->cpuinfo.second_max_freq)
+            target_freq =3D policy->cpuinfo.second_max_freq;
+
+    perf =3D data->acpi_data;
+    result =3D cpufreq_frequency_table_target(policy,
+                                            data->freq_table,
+                                            target_freq,
+                                            relation, &next_state);
+    if (unlikely(result))
+        return -ENODEV;
+
+    cpumask_and(&online_policy_cpus, &cpu_online_map, policy->cpus);
+
+    next_perf_state =3D data->freq_table[next_state].index;
+    if (perf->state =3D=3D next_perf_state) {
+        if (unlikely(policy->resume))
+            policy->resume =3D 0;
+        else
+            return 0;
+    }
+
+    switch (data->arch_cpu_flags) {
+    case SYSTEM_INTEL_MSR_CAPABLE:
+        cmd.type =3D SYSTEM_INTEL_MSR_CAPABLE;
+        cmd.addr.msr.reg =3D MSR_IA32_PERF_CTL;
+        cmd.val =3D (u32) perf->states[next_perf_state].control;
+        break;
+    case SYSTEM_IO_CAPABLE:
+        cmd.type =3D SYSTEM_IO_CAPABLE;
+        cmd.addr.io.port =3D perf->control_register.address;
+        cmd.addr.io.bit_width =3D perf->control_register.bit_width;
+        cmd.val =3D (u32) perf->states[next_perf_state].control;
+        break;
+    default:
+        return -ENODEV;
+    }
+
+    if (policy->shared_type !=3D CPUFREQ_SHARED_TYPE_ANY)
+        cmd.mask =3D &online_policy_cpus;
+    else
+        cmd.mask =3D cpumask_of(policy->cpu);
+
+    freqs.old =3D perf->states[perf->state].core_frequency * 1000;
+    freqs.new =3D data->freq_table[next_state].frequency;
+
+    drv_write(&cmd);
+
+    if (acpi_pstate_strict && !check_freqs(cmd.mask, freqs.new, data)) {
+        printk(KERN_WARNING "Fail transfer to new freq %d\n", freqs.new)=
;
+        return -EAGAIN;
+    }
+
+    for_each_cpu(j, &online_policy_cpus)
+        cpufreq_statistic_update(j, perf->state, next_perf_state);
+
+    perf->state =3D next_perf_state;
+    policy->cur =3D freqs.new;
+
+    return result;
+}
+
+static int cf_check acpi_cpufreq_verify(struct cpufreq_policy *policy)
+{
+    struct acpi_cpufreq_data *data;
+    struct processor_performance *perf;
+
+    if (!policy || !(data =3D cpufreq_drv_data[policy->cpu]) ||
+        !processor_pminfo[policy->cpu])
+        return -EINVAL;
+
+    perf =3D &processor_pminfo[policy->cpu]->perf;
+
+    cpufreq_verify_within_limits(policy, 0,
+        perf->states[perf->platform_limit].core_frequency * 1000);
+
+    return cpufreq_frequency_table_verify(policy, data->freq_table);
+}
+
+static unsigned long
+acpi_cpufreq_guess_freq(struct acpi_cpufreq_data *data, unsigned int cpu=
)
+{
+    struct processor_performance *perf =3D data->acpi_data;
+
+    if (cpu_khz) {
+        /* search the closest match to cpu_khz */
+        unsigned int i;
+        unsigned long freq;
+        unsigned long freqn =3D perf->states[0].core_frequency * 1000;
+
+        for (i=3D0; i<(perf->state_count-1); i++) {
+            freq =3D freqn;
+            freqn =3D perf->states[i+1].core_frequency * 1000;
+            if ((2 * cpu_khz) > (freqn + freq)) {
+                perf->state =3D i;
+                return freq;
+            }
+        }
+        perf->state =3D perf->state_count-1;
+        return freqn;
+    } else {
+        /* assume CPU is at P0... */
+        perf->state =3D 0;
+        return perf->states[0].core_frequency * 1000;
+    }
+}
+
+static int cf_check acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
+{
+    unsigned int i;
+    unsigned int valid_states =3D 0;
+    unsigned int cpu =3D policy->cpu;
+    struct acpi_cpufreq_data *data;
+    unsigned int result =3D 0;
+    struct cpuinfo_x86 *c =3D &cpu_data[policy->cpu];
+    struct processor_performance *perf;
+
+    data =3D xzalloc(struct acpi_cpufreq_data);
+    if (!data)
+        return -ENOMEM;
+
+    cpufreq_drv_data[cpu] =3D data;
+
+    data->acpi_data =3D &processor_pminfo[cpu]->perf;
+
+    perf =3D data->acpi_data;
+    policy->shared_type =3D perf->shared_type;
+
+    switch (perf->control_register.space_id) {
+    case ACPI_ADR_SPACE_SYSTEM_IO:
+        if (cpufreq_verbose)
+            printk("xen_pminfo: @acpi_cpufreq_cpu_init,"
+                   "SYSTEM IO addr space\n");
+        data->arch_cpu_flags =3D SYSTEM_IO_CAPABLE;
+        break;
+    case ACPI_ADR_SPACE_FIXED_HARDWARE:
+        if (cpufreq_verbose)
+            printk("xen_pminfo: @acpi_cpufreq_cpu_init,"
+                   "HARDWARE addr space\n");
+        if (!cpu_has(c, X86_FEATURE_EIST)) {
+            result =3D -ENODEV;
+            goto err_unreg;
+        }
+        data->arch_cpu_flags =3D SYSTEM_INTEL_MSR_CAPABLE;
+        break;
+    default:
+        result =3D -ENODEV;
+        goto err_unreg;
+    }
+
+    data->freq_table =3D xmalloc_array(struct cpufreq_frequency_table,
+                                    (perf->state_count+1));
+    if (!data->freq_table) {
+        result =3D -ENOMEM;
+        goto err_unreg;
+    }
+
+    /* detect transition latency */
+    policy->cpuinfo.transition_latency =3D 0;
+    for (i=3D0; i<perf->state_count; i++) {
+        if ((perf->states[i].transition_latency * 1000) >
+            policy->cpuinfo.transition_latency)
+            policy->cpuinfo.transition_latency =3D
+                perf->states[i].transition_latency * 1000;
+    }
+
+    policy->governor =3D cpufreq_opt_governor ? : CPUFREQ_DEFAULT_GOVERN=
OR;
+
+    /* table init */
+    for (i=3D0; i<perf->state_count; i++) {
+        if (i>0 && perf->states[i].core_frequency >=3D
+            data->freq_table[valid_states-1].frequency / 1000)
+            continue;
+
+        data->freq_table[valid_states].index =3D i;
+        data->freq_table[valid_states].frequency =3D
+            perf->states[i].core_frequency * 1000;
+        valid_states++;
+    }
+    data->freq_table[valid_states].frequency =3D CPUFREQ_TABLE_END;
+    perf->state =3D 0;
+
+    result =3D cpufreq_frequency_table_cpuinfo(policy, data->freq_table)=
;
+    if (result)
+        goto err_freqfree;
+
+    switch (perf->control_register.space_id) {
+    case ACPI_ADR_SPACE_SYSTEM_IO:
+        /* Current speed is unknown and not detectable by IO port */
+        policy->cur =3D acpi_cpufreq_guess_freq(data, policy->cpu);
+        break;
+    case ACPI_ADR_SPACE_FIXED_HARDWARE:
+        cpufreq_driver.get =3D get_cur_freq_on_cpu;
+        policy->cur =3D get_cur_freq_on_cpu(cpu);
+        break;
+    default:
+        break;
+    }
+
+    /* Check for APERF/MPERF support in hardware
+     * also check for boost support */
+    if (c->x86_vendor =3D=3D X86_VENDOR_INTEL && c->cpuid_level >=3D 6)
+        on_selected_cpus(cpumask_of(cpu), feature_detect, policy, 1);
+
+    /*
+     * the first call to ->target() should result in us actually
+     * writing something to the appropriate registers.
+     */
+    policy->resume =3D 1;
+
+    return result;
+
+err_freqfree:
+    xfree(data->freq_table);
+err_unreg:
+    xfree(data);
+    cpufreq_drv_data[cpu] =3D NULL;
+
+    return result;
+}
+
+static int cf_check acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)
+{
+    struct acpi_cpufreq_data *data =3D cpufreq_drv_data[policy->cpu];
+
+    if (data) {
+        cpufreq_drv_data[policy->cpu] =3D NULL;
+        xfree(data->freq_table);
+        xfree(data);
+    }
+
+    return 0;
+}
+
+static const struct cpufreq_driver __initconst_cf_clobber
+acpi_cpufreq_driver =3D {
+    .name   =3D "acpi-cpufreq",
+    .verify =3D acpi_cpufreq_verify,
+    .target =3D acpi_cpufreq_target,
+    .init   =3D acpi_cpufreq_cpu_init,
+    .exit   =3D acpi_cpufreq_cpu_exit,
+    .get    =3D get_cur_freq_on_cpu,
+};
+
+
+int __init acpi_cpufreq_register(void)
+{
+    return cpufreq_register_driver(&acpi_cpufreq_driver);
+}
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpuf=
req/cpufreq.c
index a341f2f020..6244d29496 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -26,200 +26,14 @@
  *
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=
~~~~~
  */
-
 #include <xen/types.h>
 #include <xen/errno.h>
-#include <xen/delay.h>
-#include <xen/cpumask.h>
 #include <xen/param.h>
 #include <xen/sched.h>
-#include <xen/timer.h>
-#include <xen/xmalloc.h>
-#include <asm/msr.h>
-#include <asm/io.h>
-#include <asm/processor.h>
-#include <asm/cpufeature.h>
-#include <acpi/acpi.h>
 #include <acpi/cpufreq/cpufreq.h>
=20
-enum {
-    UNDEFINED_CAPABLE =3D 0,
-    SYSTEM_INTEL_MSR_CAPABLE,
-    SYSTEM_IO_CAPABLE,
-};
-
-#define INTEL_MSR_RANGE         (0xffffull)
-
 struct acpi_cpufreq_data *cpufreq_drv_data[NR_CPUS];
=20
-static bool __read_mostly acpi_pstate_strict;
-boolean_param("acpi_pstate_strict", acpi_pstate_strict);
-
-static unsigned extract_io(u32 value, struct acpi_cpufreq_data *data)
-{
-    struct processor_performance *perf;
-    int i;
-
-    perf =3D data->acpi_data;
-
-    for (i=3D0; i<perf->state_count; i++) {
-        if (value =3D=3D perf->states[i].status)
-            return data->freq_table[i].frequency;
-    }
-    return 0;
-}
-
-static unsigned extract_msr(u32 msr, struct acpi_cpufreq_data *data)
-{
-    int i;
-    struct processor_performance *perf;
-
-    msr &=3D INTEL_MSR_RANGE;
-    perf =3D data->acpi_data;
-
-    for (i=3D0; data->freq_table[i].frequency !=3D CPUFREQ_TABLE_END; i+=
+) {
-        if (msr =3D=3D perf->states[data->freq_table[i].index].status)
-            return data->freq_table[i].frequency;
-    }
-    return data->freq_table[0].frequency;
-}
-
-static unsigned extract_freq(u32 val, struct acpi_cpufreq_data *data)
-{
-    switch (data->arch_cpu_flags) {
-    case SYSTEM_INTEL_MSR_CAPABLE:
-        return extract_msr(val, data);
-    case SYSTEM_IO_CAPABLE:
-        return extract_io(val, data);
-    default:
-        return 0;
-    }
-}
-
-struct msr_addr {
-    u32 reg;
-};
-
-struct io_addr {
-    u16 port;
-    u8 bit_width;
-};
-
-typedef union {
-    struct msr_addr msr;
-    struct io_addr io;
-} drv_addr_union;
-
-struct drv_cmd {
-    unsigned int type;
-    const cpumask_t *mask;
-    drv_addr_union addr;
-    u32 val;
-};
-
-static void cf_check do_drv_read(void *drvcmd)
-{
-    struct drv_cmd *cmd;
-
-    cmd =3D (struct drv_cmd *)drvcmd;
-
-    switch (cmd->type) {
-    case SYSTEM_INTEL_MSR_CAPABLE:
-        rdmsrl(cmd->addr.msr.reg, cmd->val);
-        break;
-    case SYSTEM_IO_CAPABLE:
-        acpi_os_read_port((acpi_io_address)cmd->addr.io.port,
-            &cmd->val, (u32)cmd->addr.io.bit_width);
-        break;
-    default:
-        break;
-    }
-}
-
-static void cf_check do_drv_write(void *drvcmd)
-{
-    struct drv_cmd *cmd;
-    uint64_t msr_content;
-
-    cmd =3D (struct drv_cmd *)drvcmd;
-
-    switch (cmd->type) {
-    case SYSTEM_INTEL_MSR_CAPABLE:
-        rdmsrl(cmd->addr.msr.reg, msr_content);
-        msr_content =3D (msr_content & ~INTEL_MSR_RANGE)
-            | (cmd->val & INTEL_MSR_RANGE);
-        wrmsrl(cmd->addr.msr.reg, msr_content);
-        break;
-    case SYSTEM_IO_CAPABLE:
-        acpi_os_write_port((acpi_io_address)cmd->addr.io.port,
-            cmd->val, (u32)cmd->addr.io.bit_width);
-        break;
-    default:
-        break;
-    }
-}
-
-static void drv_read(struct drv_cmd *cmd)
-{
-    cmd->val =3D 0;
-
-    ASSERT(cpumask_weight(cmd->mask) =3D=3D 1);
-
-    /* to reduce IPI for the sake of performance */
-    if (likely(cpumask_test_cpu(smp_processor_id(), cmd->mask)))
-        do_drv_read((void *)cmd);
-    else
-        on_selected_cpus(cmd->mask, do_drv_read, cmd, 1);
-}
-
-static void drv_write(struct drv_cmd *cmd)
-{
-    if (cpumask_equal(cmd->mask, cpumask_of(smp_processor_id())))
-        do_drv_write((void *)cmd);
-    else
-        on_selected_cpus(cmd->mask, do_drv_write, cmd, 1);
-}
-
-static u32 get_cur_val(const cpumask_t *mask)
-{
-    struct cpufreq_policy *policy;
-    struct processor_performance *perf;
-    struct drv_cmd cmd;
-    unsigned int cpu =3D smp_processor_id();
-
-    if (unlikely(cpumask_empty(mask)))
-        return 0;
-
-    if (!cpumask_test_cpu(cpu, mask))
-        cpu =3D cpumask_first(mask);
-    if (cpu >=3D nr_cpu_ids || !cpu_online(cpu))
-        return 0;
-
-    policy =3D per_cpu(cpufreq_cpu_policy, cpu);
-    if (!policy || !cpufreq_drv_data[policy->cpu])
-        return 0;   =20
-
-    switch (cpufreq_drv_data[policy->cpu]->arch_cpu_flags) {
-    case SYSTEM_INTEL_MSR_CAPABLE:
-        cmd.type =3D SYSTEM_INTEL_MSR_CAPABLE;
-        cmd.addr.msr.reg =3D MSR_IA32_PERF_STATUS;
-        break;
-    case SYSTEM_IO_CAPABLE:
-        cmd.type =3D SYSTEM_IO_CAPABLE;
-        perf =3D cpufreq_drv_data[policy->cpu]->acpi_data;
-        cmd.addr.io.port =3D perf->control_register.address;
-        cmd.addr.io.bit_width =3D perf->control_register.bit_width;
-        break;
-    default:
-        return 0;
-    }
-
-    cmd.mask =3D cpumask_of(cpu);
-
-    drv_read(&cmd);
-    return cmd.val;
-}
-
 struct perf_pair {
     union {
         struct {
@@ -255,7 +69,7 @@ static void cf_check read_measured_perf_ctrs(void *_re=
adin)
  */
 unsigned int get_measured_perf(unsigned int cpu, unsigned int flag)
 {
-    struct cpufreq_policy *policy;   =20
+    struct cpufreq_policy *policy;
     struct perf_pair readin, cur, *saved;
     unsigned int perf_percent;
=20
@@ -308,322 +122,6 @@ unsigned int get_measured_perf(unsigned int cpu, un=
signed int flag)
     return policy->cpuinfo.perf_freq * perf_percent / 100;
 }
=20
-static unsigned int cf_check get_cur_freq_on_cpu(unsigned int cpu)
-{
-    struct cpufreq_policy *policy;
-    struct acpi_cpufreq_data *data;
-
-    if (!cpu_online(cpu))
-        return 0;
-
-    policy =3D per_cpu(cpufreq_cpu_policy, cpu);
-    if (!policy)
-        return 0;
-
-    data =3D cpufreq_drv_data[policy->cpu];
-    if (unlikely(data =3D=3D NULL ||
-        data->acpi_data =3D=3D NULL || data->freq_table =3D=3D NULL))
-        return 0;
-
-    return extract_freq(get_cur_val(cpumask_of(cpu)), data);
-}
-
-void intel_feature_detect(struct cpufreq_policy *policy)
-{
-    unsigned int eax;
-
-    eax =3D cpuid_eax(6);
-    if (eax & 0x2) {
-        policy->turbo =3D CPUFREQ_TURBO_ENABLED;
-        if (cpufreq_verbose)
-            printk(XENLOG_INFO "CPU%u: Turbo Mode detected and enabled\n=
",
-                   smp_processor_id());
-    }
-}
-
-static void cf_check feature_detect(void *info)
-{
-    intel_feature_detect(info);
-}
-
-static unsigned int check_freqs(const cpumask_t *mask, unsigned int freq=
,
-                                struct acpi_cpufreq_data *data)
-{
-    unsigned int cur_freq;
-    unsigned int i;
-
-    for (i=3D0; i<100; i++) {
-        cur_freq =3D extract_freq(get_cur_val(mask), data);
-        if (cur_freq =3D=3D freq)
-            return 1;
-        udelay(10);
-    }
-    return 0;
-}
-
-static int cf_check acpi_cpufreq_target(
-    struct cpufreq_policy *policy,
-    unsigned int target_freq, unsigned int relation)
-{
-    struct acpi_cpufreq_data *data =3D cpufreq_drv_data[policy->cpu];
-    struct processor_performance *perf;
-    struct cpufreq_freqs freqs;
-    cpumask_t online_policy_cpus;
-    struct drv_cmd cmd;
-    unsigned int next_state =3D 0; /* Index into freq_table */
-    unsigned int next_perf_state =3D 0; /* Index into perf table */
-    unsigned int j;
-    int result =3D 0;
-
-    if (unlikely(data =3D=3D NULL ||
-        data->acpi_data =3D=3D NULL || data->freq_table =3D=3D NULL)) {
-        return -ENODEV;
-    }
-
-    if (policy->turbo =3D=3D CPUFREQ_TURBO_DISABLED)
-        if (target_freq > policy->cpuinfo.second_max_freq)
-            target_freq =3D policy->cpuinfo.second_max_freq;
-
-    perf =3D data->acpi_data;
-    result =3D cpufreq_frequency_table_target(policy,
-                                            data->freq_table,
-                                            target_freq,
-                                            relation, &next_state);
-    if (unlikely(result))
-        return -ENODEV;
-
-    cpumask_and(&online_policy_cpus, &cpu_online_map, policy->cpus);
-
-    next_perf_state =3D data->freq_table[next_state].index;
-    if (perf->state =3D=3D next_perf_state) {
-        if (unlikely(policy->resume))
-            policy->resume =3D 0;
-        else
-            return 0;
-    }
-
-    switch (data->arch_cpu_flags) {
-    case SYSTEM_INTEL_MSR_CAPABLE:
-        cmd.type =3D SYSTEM_INTEL_MSR_CAPABLE;
-        cmd.addr.msr.reg =3D MSR_IA32_PERF_CTL;
-        cmd.val =3D (u32) perf->states[next_perf_state].control;
-        break;
-    case SYSTEM_IO_CAPABLE:
-        cmd.type =3D SYSTEM_IO_CAPABLE;
-        cmd.addr.io.port =3D perf->control_register.address;
-        cmd.addr.io.bit_width =3D perf->control_register.bit_width;
-        cmd.val =3D (u32) perf->states[next_perf_state].control;
-        break;
-    default:
-        return -ENODEV;
-    }
-
-    if (policy->shared_type !=3D CPUFREQ_SHARED_TYPE_ANY)
-        cmd.mask =3D &online_policy_cpus;
-    else
-        cmd.mask =3D cpumask_of(policy->cpu);
-
-    freqs.old =3D perf->states[perf->state].core_frequency * 1000;
-    freqs.new =3D data->freq_table[next_state].frequency;
-
-    drv_write(&cmd);
-
-    if (acpi_pstate_strict && !check_freqs(cmd.mask, freqs.new, data)) {
-        printk(KERN_WARNING "Fail transfer to new freq %d\n", freqs.new)=
;
-        return -EAGAIN;
-    }
-
-    for_each_cpu(j, &online_policy_cpus)
-        cpufreq_statistic_update(j, perf->state, next_perf_state);
-
-    perf->state =3D next_perf_state;
-    policy->cur =3D freqs.new;
-
-    return result;
-}
-
-static int cf_check acpi_cpufreq_verify(struct cpufreq_policy *policy)
-{
-    struct acpi_cpufreq_data *data;
-    struct processor_performance *perf;
-
-    if (!policy || !(data =3D cpufreq_drv_data[policy->cpu]) ||
-        !processor_pminfo[policy->cpu])
-        return -EINVAL;
-
-    perf =3D &processor_pminfo[policy->cpu]->perf;
-
-    cpufreq_verify_within_limits(policy, 0,=20
-        perf->states[perf->platform_limit].core_frequency * 1000);
-
-    return cpufreq_frequency_table_verify(policy, data->freq_table);
-}
-
-static unsigned long
-acpi_cpufreq_guess_freq(struct acpi_cpufreq_data *data, unsigned int cpu=
)
-{
-    struct processor_performance *perf =3D data->acpi_data;
-
-    if (cpu_khz) {
-        /* search the closest match to cpu_khz */
-        unsigned int i;
-        unsigned long freq;
-        unsigned long freqn =3D perf->states[0].core_frequency * 1000;
-
-        for (i=3D0; i<(perf->state_count-1); i++) {
-            freq =3D freqn;
-            freqn =3D perf->states[i+1].core_frequency * 1000;
-            if ((2 * cpu_khz) > (freqn + freq)) {
-                perf->state =3D i;
-                return freq;
-            }
-        }
-        perf->state =3D perf->state_count-1;
-        return freqn;
-    } else {
-        /* assume CPU is at P0... */
-        perf->state =3D 0;
-        return perf->states[0].core_frequency * 1000;
-    }
-}
-
-static int cf_check acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
-{
-    unsigned int i;
-    unsigned int valid_states =3D 0;
-    unsigned int cpu =3D policy->cpu;
-    struct acpi_cpufreq_data *data;
-    unsigned int result =3D 0;
-    struct cpuinfo_x86 *c =3D &cpu_data[policy->cpu];
-    struct processor_performance *perf;
-
-    data =3D xzalloc(struct acpi_cpufreq_data);
-    if (!data)
-        return -ENOMEM;
-
-    cpufreq_drv_data[cpu] =3D data;
-
-    data->acpi_data =3D &processor_pminfo[cpu]->perf;
-
-    perf =3D data->acpi_data;
-    policy->shared_type =3D perf->shared_type;
-
-    switch (perf->control_register.space_id) {
-    case ACPI_ADR_SPACE_SYSTEM_IO:
-        if (cpufreq_verbose)
-            printk("xen_pminfo: @acpi_cpufreq_cpu_init,"
-                   "SYSTEM IO addr space\n");
-        data->arch_cpu_flags =3D SYSTEM_IO_CAPABLE;
-        break;
-    case ACPI_ADR_SPACE_FIXED_HARDWARE:
-        if (cpufreq_verbose)
-            printk("xen_pminfo: @acpi_cpufreq_cpu_init,"
-                   "HARDWARE addr space\n");
-        if (!cpu_has(c, X86_FEATURE_EIST)) {
-            result =3D -ENODEV;
-            goto err_unreg;
-        }
-        data->arch_cpu_flags =3D SYSTEM_INTEL_MSR_CAPABLE;
-        break;
-    default:
-        result =3D -ENODEV;
-        goto err_unreg;
-    }
-
-    data->freq_table =3D xmalloc_array(struct cpufreq_frequency_table,=20
-                                    (perf->state_count+1));
-    if (!data->freq_table) {
-        result =3D -ENOMEM;
-        goto err_unreg;
-    }
-
-    /* detect transition latency */
-    policy->cpuinfo.transition_latency =3D 0;
-    for (i=3D0; i<perf->state_count; i++) {
-        if ((perf->states[i].transition_latency * 1000) >
-            policy->cpuinfo.transition_latency)
-            policy->cpuinfo.transition_latency =3D
-                perf->states[i].transition_latency * 1000;
-    }
-
-    policy->governor =3D cpufreq_opt_governor ? : CPUFREQ_DEFAULT_GOVERN=
OR;
-
-    /* table init */
-    for (i=3D0; i<perf->state_count; i++) {
-        if (i>0 && perf->states[i].core_frequency >=3D
-            data->freq_table[valid_states-1].frequency / 1000)
-            continue;
-
-        data->freq_table[valid_states].index =3D i;
-        data->freq_table[valid_states].frequency =3D
-            perf->states[i].core_frequency * 1000;
-        valid_states++;
-    }
-    data->freq_table[valid_states].frequency =3D CPUFREQ_TABLE_END;
-    perf->state =3D 0;
-
-    result =3D cpufreq_frequency_table_cpuinfo(policy, data->freq_table)=
;
-    if (result)
-        goto err_freqfree;
-
-    switch (perf->control_register.space_id) {
-    case ACPI_ADR_SPACE_SYSTEM_IO:
-        /* Current speed is unknown and not detectable by IO port */
-        policy->cur =3D acpi_cpufreq_guess_freq(data, policy->cpu);
-        break;
-    case ACPI_ADR_SPACE_FIXED_HARDWARE:
-        cpufreq_driver.get =3D get_cur_freq_on_cpu;
-        policy->cur =3D get_cur_freq_on_cpu(cpu);
-        break;
-    default:
-        break;
-    }
-
-    /* Check for APERF/MPERF support in hardware
-     * also check for boost support */
-    if (c->x86_vendor =3D=3D X86_VENDOR_INTEL && c->cpuid_level >=3D 6)
-        on_selected_cpus(cpumask_of(cpu), feature_detect, policy, 1);
-
-    /*
-     * the first call to ->target() should result in us actually
-     * writing something to the appropriate registers.
-     */
-    policy->resume =3D 1;
-
-    return result;
-
-err_freqfree:
-    xfree(data->freq_table);
-err_unreg:
-    xfree(data);
-    cpufreq_drv_data[cpu] =3D NULL;
-
-    return result;
-}
-
-static int cf_check acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)
-{
-    struct acpi_cpufreq_data *data =3D cpufreq_drv_data[policy->cpu];
-
-    if (data) {
-        cpufreq_drv_data[policy->cpu] =3D NULL;
-        xfree(data->freq_table);
-        xfree(data);
-    }
-
-    return 0;
-}
-
-static const struct cpufreq_driver __initconst_cf_clobber
-acpi_cpufreq_driver =3D {
-    .name   =3D "acpi-cpufreq",
-    .verify =3D acpi_cpufreq_verify,
-    .target =3D acpi_cpufreq_target,
-    .init   =3D acpi_cpufreq_cpu_init,
-    .exit   =3D acpi_cpufreq_cpu_exit,
-    .get    =3D get_cur_freq_on_cpu,
-};
-
 static int __init cf_check cpufreq_driver_init(void)
 {
     int ret =3D 0;
@@ -640,7 +138,7 @@ static int __init cf_check cpufreq_driver_init(void)
                 switch ( cpufreq_xen_opts[i] )
                 {
                 case CPUFREQ_xen:
-                    ret =3D cpufreq_register_driver(&acpi_cpufreq_driver=
);
+                    ret =3D acpi_cpufreq_register();
                     break;
                 case CPUFREQ_hwp:
                     ret =3D hwp_register_driver();
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufre=
q/cpufreq.h
index 443427153b..ec7e139000 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -260,4 +260,6 @@ int get_hwp_para(unsigned int cpu,
 int set_hwp_para(struct cpufreq_policy *policy,
                  struct xen_set_cppc_para *set_cppc);
=20
+int acpi_cpufreq_register(void);
+
 #endif /* __XEN_CPUFREQ_PM_H__ */
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 08:30:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 08:30:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756618.1165284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRSiW-0000wT-N2; Wed, 10 Jul 2024 08:30:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756618.1165284; Wed, 10 Jul 2024 08: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 1sRSiW-0000wM-K6; Wed, 10 Jul 2024 08:30:24 +0000
Received: by outflank-mailman (input) for mailman id 756618;
 Wed, 10 Jul 2024 08:30: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=hHuL=OK=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sRSiV-0000wE-4Y
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 08:30:23 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a463428b-3e96-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 10:30:20 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 15BF7184AB;
 Wed, 10 Jul 2024 04:30:19 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 0CE2B184AA;
 Wed, 10 Jul 2024 04:30:19 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.75])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id 7A47F184A8;
 Wed, 10 Jul 2024 04:30:15 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a463428b-3e96-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=DMyPQcp7MVx9wCHWMI7ShggWQ
	RVoCrJB3hO/uCOqu1U=; b=lNBDLzpOPwS+C46MRgnyrwTYglnSYE1EDn4tGzaWa
	5VCs5+wPGTS9MQwUW1ZRnEUcrrn59AU14ohx22Nko4LKarDuE2RT2uMIlWiBzZqr
	GEUMI0YXUeIpTzUw5qlZuZ3EpLsK8/KiiiHrynjL83yppUD66ASzNsYTPDU5s0eZ
	j0=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v3 2/2] x86/cpufreq: separate powernow/hwp/acpi cpufreq code
Date: Wed, 10 Jul 2024 11:30:11 +0300
Message-Id: <56f61a1e22ba77fb352d7a18203935c26c815646.1720596402.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1720596402.git.Sergiy_Kibrik@epam.com>
References: <cover.1720596402.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 A1F7A6F4-3E96-11EF-A1CE-C38742FD603B-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

Build AMD Architectural P-state driver when CONFIG_AMD is on, and
Intel Hardware P-States driver together with ACPI Processor P-States driv=
er
when CONFIG_INTEL is on respectively, allowing for a platform-specific bu=
ild.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Jason Andryuk <jason.andryuk@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v3:
 - more clear wrapping of lines in conditionals + put IS_ENABLED() in fro=
nt
 - drop unneeded change to utility.c
changes in v2:
 - disable acpi-cpufreq driver as well when !INTEL
 - leave a stub for hwp_active() only when !INTEL
 - updated patch description
---
 xen/arch/x86/acpi/cpufreq/Makefile  | 6 +++---
 xen/arch/x86/acpi/cpufreq/cpufreq.c | 8 +++++---
 xen/drivers/acpi/pmstat.c           | 5 +++--
 xen/drivers/cpufreq/cpufreq.c       | 3 ++-
 xen/include/acpi/cpufreq/cpufreq.h  | 8 ++++++++
 5 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/Makefile b/xen/arch/x86/acpi/cpufr=
eq/Makefile
index 44d4c0b497..e7dbe434a8 100644
--- a/xen/arch/x86/acpi/cpufreq/Makefile
+++ b/xen/arch/x86/acpi/cpufreq/Makefile
@@ -1,4 +1,4 @@
-obj-y +=3D acpi.o
+obj-$(CONFIG_INTEL) +=3D acpi.o
 obj-y +=3D cpufreq.o
-obj-y +=3D hwp.o
-obj-y +=3D powernow.o
+obj-$(CONFIG_INTEL) +=3D hwp.o
+obj-$(CONFIG_AMD) +=3D powernow.o
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpuf=
req/cpufreq.c
index 6244d29496..61e98b67bd 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -138,10 +138,12 @@ static int __init cf_check cpufreq_driver_init(void=
)
                 switch ( cpufreq_xen_opts[i] )
                 {
                 case CPUFREQ_xen:
-                    ret =3D acpi_cpufreq_register();
+                    ret =3D IS_ENABLED(CONFIG_INTEL) ?
+                          acpi_cpufreq_register() : -ENODEV;
                     break;
                 case CPUFREQ_hwp:
-                    ret =3D hwp_register_driver();
+                    ret =3D IS_ENABLED(CONFIG_INTEL) ?
+                          hwp_register_driver() : -ENODEV;
                     break;
                 case CPUFREQ_none:
                     ret =3D 0;
@@ -155,7 +157,7 @@ static int __init cf_check cpufreq_driver_init(void)
=20
         case X86_VENDOR_AMD:
         case X86_VENDOR_HYGON:
-            ret =3D powernow_register_driver();
+            ret =3D IS_ENABLED(CONFIG_AMD) ? powernow_register_driver() =
: -ENODEV;
             break;
         }
     }
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 998d2e3c65..df309e27b4 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -254,8 +254,9 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *=
op)
     else
         strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_L=
EN);
=20
-    if ( !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
-                      CPUFREQ_NAME_LEN) )
+    if ( IS_ENABLED(CONFIG_INTEL) &&
+         !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
+                  CPUFREQ_NAME_LEN) )
         ret =3D get_hwp_para(policy->cpu, &op->u.get_para.u.cppc_para);
     else
     {
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.=
c
index 8659ad3aee..4a103c6de9 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -120,7 +120,8 @@ static int __init cf_check setup_cpufreq_option(const=
 char *str)
             if ( arg[0] && arg[1] )
                 ret =3D cpufreq_cmdline_parse(arg + 1, end);
         }
-        else if ( choice < 0 && !cmdline_strcmp(str, "hwp") )
+        else if ( IS_ENABLED(CONFIG_INTEL) && choice < 0 &&
+                  !cmdline_strcmp(str, "hwp") )
         {
             xen_processor_pmbits |=3D XEN_PROCESSOR_PM_PX;
             cpufreq_controller =3D FREQCTL_xen;
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufre=
q/cpufreq.h
index ec7e139000..08ee2af0f8 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -254,7 +254,15 @@ void intel_feature_detect(struct cpufreq_policy *pol=
icy);
=20
 int hwp_cmdline_parse(const char *s, const char *e);
 int hwp_register_driver(void);
+#ifdef CONFIG_INTEL
 bool hwp_active(void);
+#else
+static inline bool hwp_active(void)
+{
+    return false;
+}
+#endif
+
 int get_hwp_para(unsigned int cpu,
                  struct xen_cppc_para *cppc_para);
 int set_hwp_para(struct cpufreq_policy *policy,
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:19:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:19:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756628.1165293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTTH-0006rH-24; Wed, 10 Jul 2024 09:18:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756628.1165293; Wed, 10 Jul 2024 09:18:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTTG-0006rA-Vl; Wed, 10 Jul 2024 09:18:42 +0000
Received: by outflank-mailman (input) for mailman id 756628;
 Wed, 10 Jul 2024 09:18:41 +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 1sRTTF-0006r4-Bg
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:18:41 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sRTTD-0005ze-Kq; Wed, 10 Jul 2024 09:18:39 +0000
Received: from [15.248.2.233] (helo=[10.24.67.21])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sRTTD-0005sc-Bl; Wed, 10 Jul 2024 09: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>
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=+THUU6rO2BICbHzhrMyDnWDJc8MKsPU4aoS6Qp7k5HQ=; b=JuNC52X/eDSHIJOKMZmDbciofm
	P1UPPlo50rprAi3qyzg/8WJmiQw/1APM9h5WY/NPHJl2Gy8i3qww+EPSGOAjALwr+QkwbezxnGjWZ
	4OGrmlYAa/v+ICs9IeVyKU0oUgx7mlGhS/OOp4FTFvhYGhPJwcznzC5t3p1t8dp8IpKY=;
Message-ID: <40e4c830-5773-4245-9165-84af8a6da75b@xen.org>
Date: Wed, 10 Jul 2024 10:18:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] xen: Fix XEN_EXTRAVERSION after 4.19-rc1
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240702134310.1307657-1-andrew.cooper3@citrix.com>
 <643ada7e-b265-4283-9c52-f6cf6239fe26@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <643ada7e-b265-4283-9c52-f6cf6239fe26@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 02/07/2024 15:14, Jan Beulich wrote:
> On 02.07.2024 15:43, Andrew Cooper wrote:
>> EXTRAVERSION needs a . separator for numbers.
> 
> Not exactly. It needs the 0 dropped, if we follow what we've done in the
> past. Then ...

 From docs/process/release-technician-checklist.txt:

#    - XEN_EXTRAVERSION should be as follows
#      `.0-rc$(XEN_VENDORVERSION)'       during freeze, first rc onwards 
(including staging, before branching)

So the original version from Andrew was correct...

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:22:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:22:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756634.1165303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTX0-0008JQ-GX; Wed, 10 Jul 2024 09:22:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756634.1165303; Wed, 10 Jul 2024 09: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 1sRTX0-0008JJ-Dy; Wed, 10 Jul 2024 09:22:34 +0000
Received: by outflank-mailman (input) for mailman id 756634;
 Wed, 10 Jul 2024 09:22: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 1sRTWy-0008JD-BO
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:22:32 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sRTWy-00064B-2F; Wed, 10 Jul 2024 09:22:32 +0000
Received: from [15.248.2.233] (helo=[10.24.67.21])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sRTWx-0006JO-RK; Wed, 10 Jul 2024 09:22:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=eKFv+cAzEbVb9TqWWzAPymuAY55cN/r4OurNjcCLqmw=; b=mXMF23689wdHdVEVA3pj4DOAUQ
	O96RUczS7j/ojM8rU32PVPuIhwmtFAhgNS9VbFS0NShxv2CJIfTI5MW0lQoTnq6jbIlpVptYZfs6i
	XZxAgNbdj78/tbp7uJKEF1PsBye8X0nChADKvKeHsxsvmeUDJtj0KOeH4MSP1cTkiZF4=;
Message-ID: <10bffe82-150a-4004-b989-b78f36bb9404@xen.org>
Date: Wed, 10 Jul 2024 10:22:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19(?)] xen/arm: bootfdt: Fix device tree memory node
 probing
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>, oleksii.kurochko@gmail.com
References: <20240626080428.18480-1-michal.orzel@amd.com>
 <766b260e-204c-423f-b0e1-c21957b6d169@xen.org>
 <b5c861a4-1431-44c5-a1ec-bc859ea011c3@amd.com>
 <ae447b0b-f791-4ca8-8b33-3600ae059b47@xen.org>
 <03bad4dd-9d6e-4341-b72c-5bb516f3ce36@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <03bad4dd-9d6e-4341-b72c-5bb516f3ce36@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Michal,

On 27/06/2024 13:01, Michal Orzel wrote:
>>>>> +/*
>>>>> + * Check if a node is a proper /memory node according to Devicetree
>>>>> + * Specification v0.4, chapter 3.4.
>>>>> + */
>>>>> +static bool __init device_tree_is_memory_node(const void *fdt, int node,
>>>>> +                                              int depth)
>>>>> +{
>>>>> +    const char *type;
>>>>> +    int len;
>>>>> +
>>>>> +    if ( depth != 1 )
>>>>> +        return false;
>>>>> +
>>>>> +    if ( !device_tree_node_matches(fdt, node, "memory") )
>>>>> +        return false;
>>>>> +
>>>>> +    type = fdt_getprop(fdt, node, "device_type", &len);
>>>>> +    if ( !type )
>>>>> +        return false;
>>>>> +
>>>>> +    if ( (len <= 0) || strcmp(type, "memory") )
>>>>
>>>> I would consider to use strncmp() to avoid relying on the property to be
>>>> well-formed (i.e. nul-terminated).
>>> Are you sure? AFAIR, libfdt returns NULL and -FDT_ERR_TRUNCATED as len if a string is non null terminated.
>>
>> I can't find such code in path. Do you have any pointer?
> I checked and I cannot find such code either. I made the wrong assumption thinking that fdt_getprop can only work with strings.
> Therefore, I'm ok with changing s/strcmp/strncmp/ for hardening. Shall I respin the patch marking it as for-4.20?

Sorry this e-mail fell through the cracks. Yes please. I need to create 
a branch to collect all simple patches for 4.20.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:25:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:25:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756639.1165314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTZk-0000Qs-U7; Wed, 10 Jul 2024 09:25:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756639.1165314; Wed, 10 Jul 2024 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 1sRTZk-0000Ql-QY; Wed, 10 Jul 2024 09:25:24 +0000
Received: by outflank-mailman (input) for mailman id 756639;
 Wed, 10 Jul 2024 09:25:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRTZk-0000Qb-4j; Wed, 10 Jul 2024 09:25:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRTZk-000679-1m; Wed, 10 Jul 2024 09:25:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRTZj-0004q7-Mr; Wed, 10 Jul 2024 09:25:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRTZj-0002ZW-MM; Wed, 10 Jul 2024 09:25: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=U16t3cuJRJvIglWbJ5rsO3TMSq02ZgPEv6L6dRCUVPY=; b=AeEhLa/Gw4buWU8k+GQE8k7rRw
	kfnm3nzHr/sNG1hnO/JA8h1GQzdljiuvsFPefNawMYEozevK9ovUI+rt/mcM4zrU7M4CX49t17Mm0
	yhr7zODlDAP7nuQMQHzTZxUBrEMJg0iHcGC+WGYYWNgbrvRzHtJvlI+/ah8Tk+biw390=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186748-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186748: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=0d3e962d47470165b28f742704385acefd70327e
X-Osstest-Versions-That:
    libvirt=893800be49d2d58f78c96e4f06d9f24188cb8946
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Jul 2024 09:25:23 +0000

flight 186748 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186748/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186728
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              0d3e962d47470165b28f742704385acefd70327e
baseline version:
 libvirt              893800be49d2d58f78c96e4f06d9f24188cb8946

Last test of basis   186728  2024-07-08 04:18:44 Z    2 days
Failing since        186736  2024-07-09 04:18:46 Z    1 days    2 attempts
Testing same since   186748  2024-07-10 04:18:44 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Göran Uddeborg <goeran@uddeborg.se>
  hongmianquan <hongmianquan@bytedance.com>
  Martin Kletzander <mkletzan@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>
  Miroslav Los <mirlos@cisco.com>
  Miroslav Los via Devel <devel@lists.libvirt.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   893800be49..0d3e962d47  0d3e962d47470165b28f742704385acefd70327e -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:28:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:28:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756649.1165324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTcE-0001Gl-9v; Wed, 10 Jul 2024 09:27:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756649.1165324; Wed, 10 Jul 2024 09: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 1sRTcE-0001Ge-7K; Wed, 10 Jul 2024 09:27:58 +0000
Received: by outflank-mailman (input) for mailman id 756649;
 Wed, 10 Jul 2024 09: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=5pAY=OK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sRTcD-0001GY-3o
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:27:57 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id afba430b-3e9e-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 11:27:54 +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 F09E01F824;
 Wed, 10 Jul 2024 09:27: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 94F64137D2;
 Wed, 10 Jul 2024 09:27: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 BpvjIhhUjmY+WAAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 10 Jul 2024 09:27: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: afba430b-3e9e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720603674; 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=yvkLuMdtx87SaARp851BXKgU7x+Jf7wtc4J0og1cdRI=;
	b=daUgGD9tEMuNPzUgpg/FQZ7RXfLbw7PD673gmBqu0GAQ1EHGap50iw99rOTyB2Jie4ovOP
	alKzOglb8/g5W2QVPudBnakYBl/9ke77Hk0B/q8GWscRpBEpyCdplcnzQFxE/VejuamPlx
	2w/ZUCOLaw3uA94uVi3Ui/7kG6qycpU=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=VNjObKCs
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720603673; 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=yvkLuMdtx87SaARp851BXKgU7x+Jf7wtc4J0og1cdRI=;
	b=VNjObKCsO11Do8K01whufQ0VT1CjbyhKjCTvzRHWR/YBxTTNV8YvonFIb04cdBbJ15utIl
	L6F1XDtd3jVpsRltj4cuXAPG6uzOEolcKDAPmX2uU+yGUbZjosV29utrn3VkZX0ZVSqPlf
	PML+I4PQU2pW7x5kLsxihGTa+nzdo5A=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	linux-doc@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2] xen: make multicall debug boot time selectable
Date: Wed, 10 Jul 2024 11:27:49 +0200
Message-ID: <20240710092749.13595-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: F09E01F824
X-Spam-Score: -3.01
X-Spam-Level: 
X-Spam-Flag: NO
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	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)[];
	ARC_NA(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:email,suse.com:dkim];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[12];
	MIME_TRACE(0.00)[0:+];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_DN_SOME(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org

Today Xen multicall debugging needs to be enabled via modifying a
define in a source file for getting debug data of multicall errors
encountered by users.

Switch multicall debugging to depend on a boot parameter "xen_mc_debug"
instead, enabling affected users to boot with the new parameter set in
order to get better diagnostics.

With debugging enabled print the following information in case at least
one of the batched calls failed:
- all calls of the batch with operation, result and caller
- all parameters of each call
- all parameters stored in the multicall data for each call

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- fixed argument printing, added parameter printing
- in debug case print entries without error, too
- rename struct member from debug to entries (Boris Ostrovsky)
- get rid of get_mc_debug_ptr() (Boris Ostrovsky)
---
 .../admin-guide/kernel-parameters.txt         |   6 +
 arch/x86/xen/multicalls.c                     | 125 ++++++++++++++----
 2 files changed, 108 insertions(+), 23 deletions(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 27ec49af1bf2..b33d048e01d8 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -7427,6 +7427,12 @@
 			Crash from Xen panic notifier, without executing late
 			panic() code such as dumping handler.
 
+	xen_mc_debug	[X86,XEN,EARLY]
+			Enable multicall debugging when running as a Xen PV guest.
+			Enabling this feature will reduce performance a little
+			bit, so it should only be enabled for obtaining extended
+			debug data in case of multicall errors.
+
 	xen_msr_safe=	[X86,XEN,EARLY]
 			Format: <bool>
 			Select whether to always use non-faulting (safe) MSR
diff --git a/arch/x86/xen/multicalls.c b/arch/x86/xen/multicalls.c
index 07054572297f..a8d699687d5c 100644
--- a/arch/x86/xen/multicalls.c
+++ b/arch/x86/xen/multicalls.c
@@ -23,6 +23,8 @@
 #include <linux/percpu.h>
 #include <linux/hardirq.h>
 #include <linux/debugfs.h>
+#include <linux/jump_label.h>
+#include <linux/printk.h>
 
 #include <asm/xen/hypercall.h>
 
@@ -31,18 +33,12 @@
 
 #define MC_BATCH	32
 
-#define MC_DEBUG	0
-
 #define MC_ARGS		(MC_BATCH * 16)
 
 
 struct mc_buffer {
 	unsigned mcidx, argidx, cbidx;
 	struct multicall_entry entries[MC_BATCH];
-#if MC_DEBUG
-	struct multicall_entry debug[MC_BATCH];
-	void *caller[MC_BATCH];
-#endif
 	unsigned char args[MC_ARGS];
 	struct callback {
 		void (*fn)(void *);
@@ -50,13 +46,98 @@ struct mc_buffer {
 	} callbacks[MC_BATCH];
 };
 
+struct mc_debug_data {
+	struct multicall_entry entries[MC_BATCH];
+	void *caller[MC_BATCH];
+	size_t argsz[MC_BATCH];
+	unsigned long *args[MC_BATCH];
+};
+
 static DEFINE_PER_CPU(struct mc_buffer, mc_buffer);
+static struct mc_debug_data mc_debug_data_early __initdata;
+static struct mc_debug_data __percpu *mc_debug_data __refdata =
+	&mc_debug_data_early;
 DEFINE_PER_CPU(unsigned long, xen_mc_irq_flags);
 
+static struct static_key mc_debug __ro_after_init;
+static bool mc_debug_enabled __initdata;
+
+static int __init xen_parse_mc_debug(char *arg)
+{
+	mc_debug_enabled = true;
+	static_key_slow_inc(&mc_debug);
+
+	return 0;
+}
+early_param("xen_mc_debug", xen_parse_mc_debug);
+
+static int __init mc_debug_enable(void)
+{
+	struct mc_debug_data __percpu *mcdb;
+	unsigned long flags;
+
+	if (!mc_debug_enabled)
+		return 0;
+
+	mcdb = alloc_percpu(struct mc_debug_data);
+	if (!mcdb) {
+		pr_err("xen_mc_debug inactive\n");
+		static_key_slow_dec(&mc_debug);
+		return -ENOMEM;
+	}
+
+	/* Be careful when switching to percpu debug data. */
+	local_irq_save(flags);
+	xen_mc_flush();
+	mc_debug_data = mcdb;
+	local_irq_restore(flags);
+
+	pr_info("xen_mc_debug active\n");
+
+	return 0;
+}
+early_initcall(mc_debug_enable);
+
+/* Number of parameters of hypercalls used via multicalls. */
+static const uint8_t hpcpars[] = {
+	[__HYPERVISOR_mmu_update] = 4,
+	[__HYPERVISOR_stack_switch] = 2,
+	[__HYPERVISOR_fpu_taskswitch] = 1,
+	[__HYPERVISOR_update_descriptor] = 2,
+	[__HYPERVISOR_update_va_mapping] = 3,
+	[__HYPERVISOR_mmuext_op] = 4,
+};
+
+static void print_debug_data(struct mc_buffer *b, struct mc_debug_data *mcdb,
+			     int idx)
+{
+	unsigned int arg;
+	unsigned int opidx = mcdb->entries[idx].op & 0xff;
+	unsigned int pars = 0;
+
+	pr_err("  call %2d: op=%lu result=%ld caller=%pS ", idx + 1,
+	       mcdb->entries[idx].op, b->entries[idx].result,
+	       mcdb->caller[idx]);
+	if (opidx < ARRAY_SIZE(hpcpars))
+		pars = hpcpars[opidx];
+	if (pars) {
+		pr_cont("pars=");
+		for (arg = 0; arg < pars; arg++)
+			pr_cont("%lx ", mcdb->entries[idx].args[arg]);
+	}
+	if (mcdb->argsz[idx]) {
+		pr_cont("args=");
+		for (arg = 0; arg < mcdb->argsz[idx] / 8; arg++)
+			pr_cont("%lx ", mcdb->args[idx][arg]);
+	}
+	pr_cont("\n");
+}
+
 void xen_mc_flush(void)
 {
 	struct mc_buffer *b = this_cpu_ptr(&mc_buffer);
 	struct multicall_entry *mc;
+	struct mc_debug_data *mcdb = NULL;
 	int ret = 0;
 	unsigned long flags;
 	int i;
@@ -69,10 +150,11 @@ void xen_mc_flush(void)
 
 	trace_xen_mc_flush(b->mcidx, b->argidx, b->cbidx);
 
-#if MC_DEBUG
-	memcpy(b->debug, b->entries,
-	       b->mcidx * sizeof(struct multicall_entry));
-#endif
+	if (static_key_false(&mc_debug)) {
+		mcdb = this_cpu_ptr(mc_debug_data);
+		memcpy(mcdb->entries, b->entries,
+		       b->mcidx * sizeof(struct multicall_entry));
+	}
 
 	switch (b->mcidx) {
 	case 0:
@@ -103,21 +185,14 @@ void xen_mc_flush(void)
 		pr_err("%d of %d multicall(s) failed: cpu %d\n",
 		       ret, b->mcidx, smp_processor_id());
 		for (i = 0; i < b->mcidx; i++) {
-			if (b->entries[i].result < 0) {
-#if MC_DEBUG
-				pr_err("  call %2d: op=%lu arg=[%lx] result=%ld\t%pS\n",
-				       i + 1,
-				       b->debug[i].op,
-				       b->debug[i].args[0],
-				       b->entries[i].result,
-				       b->caller[i]);
-#else
+			if (static_key_false(&mc_debug)) {
+				print_debug_data(b, mcdb, i);
+			} else if (b->entries[i].result < 0) {
 				pr_err("  call %2d: op=%lu arg=[%lx] result=%ld\n",
 				       i + 1,
 				       b->entries[i].op,
 				       b->entries[i].args[0],
 				       b->entries[i].result);
-#endif
 			}
 		}
 	}
@@ -155,9 +230,13 @@ struct multicall_space __xen_mc_entry(size_t args)
 	}
 
 	ret.mc = &b->entries[b->mcidx];
-#if MC_DEBUG
-	b->caller[b->mcidx] = __builtin_return_address(0);
-#endif
+	if (static_key_false(&mc_debug)) {
+		struct mc_debug_data *mcdb = this_cpu_ptr(mc_debug_data);
+
+		mcdb->caller[b->mcidx] = __builtin_return_address(0);
+		mcdb->argsz[b->mcidx] = args;
+		mcdb->args[b->mcidx] = (unsigned long *)(&b->args[argidx]);
+	}
 	b->mcidx++;
 	ret.args = &b->args[argidx];
 	b->argidx = argidx + args;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:36:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:36:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756656.1165334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTkk-0002xy-7C; Wed, 10 Jul 2024 09:36:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756656.1165334; Wed, 10 Jul 2024 09:36:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTkk-0002xr-4d; Wed, 10 Jul 2024 09:36:46 +0000
Received: by outflank-mailman (input) for mailman id 756656;
 Wed, 10 Jul 2024 09: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=7Omq=OK=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1sRTki-0002o7-Fg
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:36:44 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eb2d9232-3e9f-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 11:36:43 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2ebed33cb65so75485191fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 02:36:43 -0700 (PDT)
Received: from [192.168.14.50] (54-240-197-234.amazon.com. [54.240.197.234])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-367cde89108sm4822568f8f.55.2024.07.10.02.36.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 02:36: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: eb2d9232-3e9f-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720604203; x=1721209003; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:content-language
         :references:cc:to:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=Vfw6I0ttUhq40nWTXLtLOdxIbCy05jSinljrXQf7waY=;
        b=fud3+UkmL/FlYoO10TjzkaiELj3oE8IBV1gWG8On8Y8Ep4CrTEWSzo1Rbfq2Z8hFg7
         ZIhjUgmo6VQ/76RA4XploaTCPbEbWnkBIUvMNHcrSBV/T6rphp8BJmLfrVyw7O0KcvWW
         3EfALY8J3epfTNYe+Ph5ovsrrxMG0zdgFqCNExydrmMzcx4ywM0EIQ9WjsATxK839KMq
         8nyTFdHHeC/gYsPb+V73HM1pVM6G9/vtnRKz02yfTtuOimmQWGGv/e2AJLHPT51kC9HO
         qKVhHk8LUajf37VPeoa/pqe2wXa3HI2B6VlWvnx7k4QVUPNIADF9Qz1cbdxqM4rzEdPC
         CDkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720604203; x=1721209003;
        h=content-transfer-encoding:in-reply-to:organization:content-language
         :references:cc:to:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Vfw6I0ttUhq40nWTXLtLOdxIbCy05jSinljrXQf7waY=;
        b=j4FS/52KlQHi9+vR6pTQdjrld8IGTbp76SfgrWYUNkrYI9GTdmsJG2XPjrrO2e11Nl
         68/m67x3z/2W39TmSGyrUiVxyRfIwYG4W0v2jaFNUsajJKA0fuqzTq9Zxijz/Y5Gf789
         wrHszr27L8+CoXXpi+iZ2r9ZCS8kjlBHyIPkucXXTk950tidQM8If2vyvRxtAADHzEsj
         MfjizQMK0jZ8boRerMZ6JG5eVKABLKJQIEtr7oPqCqcLgV2k4mtz7hFzCENB5Hmjkog5
         PpXAjevvBe2NFUYKTN5rNhmsqYCPQRmbPBDUFfnSvFjzYhpoT84f0xSoSrskz95FExjv
         LPkg==
X-Forwarded-Encrypted: i=1; AJvYcCVyV2QE/0CEgtWnKBpZeqnWjdNI7P714/MFfpgTwXdbc9SohKnd58Uq37WaLtrMLKSHdp1WYejgvZUx6vpcFifYUem8GaeS7+O6siK2+eo=
X-Gm-Message-State: AOJu0YzdH8qnysfkhm+8cH0d0w0kU6Clem7rfZ3QK2LYDTHDRoKfsjKR
	asNPCWxTbZaand2ja2FvyWWj2CJmkWPY7bndFEdYZ+udW6b0mnI7
X-Google-Smtp-Source: AGHT+IHQsx2aK31RT5t93WyMQ3zjqVCmQA0gQzAyZtc5vQ47WsY6QKkTQ36vzs3hzHSaGRxFIQUleA==
X-Received: by 2002:a2e:9786:0:b0:2ec:56ce:d51f with SMTP id 38308e7fff4ca-2eeb30db364mr28598491fa.20.1720604202976;
        Wed, 10 Jul 2024 02:36:42 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <39617ea9-a41c-455b-81e2-b94eaba4cdcb@xen.org>
Date: Wed, 10 Jul 2024 11:36:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [XEN PATCH v4 10/14] x86/vmx: guard access to cpu_has_vmx_* in
 common code
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>, xen-devel@lists.xenproject.org
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <668355271f01681070cb15f67af1538104bfc651.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
Organization: Xen Project
In-Reply-To: <668355271f01681070cb15f67af1538104bfc651.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 09/07/2024 08:05, Sergiy Kibrik wrote:
> There're several places in common code, outside of arch/x86/hvm/vmx,
> where cpu_has_vmx_* get accessed without checking whether VMX supported first.
> These macros rely on global variables defined in vmx code, so when VMX support
> is disabled accesses to these variables turn into build failures.
> 
> To overcome these failures, build-time check is done before accessing global
> variables, so that DCE would remove these variables.
> 
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> CC: Andrew Cooper <andrew.cooper3@citrix.com>
> CC: Jan Beulich <jbeulich@suse.com>
> ---
> changes in v4:
>   - use IS_ENABLED(CONFIG_VMX) instead of using_vmx
> changes in v3:
>   - using_vmx instead of cpu_has_vmx
>   - clarify description on why this change needed
> changes in v2:
>   - do not touch SVM code and macros
>   - drop vmx_ctrl_has_feature()
>   - guard cpu_has_vmx_* macros in common code instead
> ---
>   xen/arch/x86/hvm/hvm.c                  |  2 +-
>   xen/arch/x86/hvm/viridian/viridian.c    |  4 ++--
>   xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 17 +++++++++++------
>   xen/arch/x86/traps.c                    |  5 +++--
>   4 files changed, 17 insertions(+), 11 deletions(-)
> 

Viridian changes...

Acked-by: Paul Durrant <paul@xen.org>



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:37:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:37:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756660.1165344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTlO-0003e8-FX; Wed, 10 Jul 2024 09:37:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756660.1165344; Wed, 10 Jul 2024 09: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 1sRTlO-0003e1-Bh; Wed, 10 Jul 2024 09:37:26 +0000
Received: by outflank-mailman (input) for mailman id 756660;
 Wed, 10 Jul 2024 09:37: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=5pAY=OK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sRTlN-0003T0-57
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:37:25 +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 02ae37cb-3ea0-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 11:37:23 +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 7994F21A3D;
 Wed, 10 Jul 2024 09:37:22 +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 1A8E6137D2;
 Wed, 10 Jul 2024 09:37:22 +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 kd4CBVJWjmaSWwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 10 Jul 2024 09:37:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 02ae37cb-3ea0-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720604242; 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=AdPWVWbyk6GilbYgK6r8iH+eFHHYovKHeB/OAj0wy+c=;
	b=TZgdKOkhaj2jtwz2NuipEolNP1N5iaIqhW57xSDfdyghpruaSDvJYRDBh+398qPw1ob0SU
	/8L/yz79SPP5MAh823rx9yeTwc7NxgX3jxjnCJ/nq58S/tWfHgCrWE4esgVTqOTEWt1VX0
	d6C008hp4RiWebINz4In+RFulGEDglw=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720604242; 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=AdPWVWbyk6GilbYgK6r8iH+eFHHYovKHeB/OAj0wy+c=;
	b=TZgdKOkhaj2jtwz2NuipEolNP1N5iaIqhW57xSDfdyghpruaSDvJYRDBh+398qPw1ob0SU
	/8L/yz79SPP5MAh823rx9yeTwc7NxgX3jxjnCJ/nq58S/tWfHgCrWE4esgVTqOTEWt1VX0
	d6C008hp4RiWebINz4In+RFulGEDglw=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: [PATCH 0/2] x86/xen: cleanup of xen private headers
Date: Wed, 10 Jul 2024 11:37:16 +0200
Message-ID: <20240710093718.14552-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.60 / 50.00];
	BAYES_HAM(-2.80)[99.13%];
	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];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RCVD_COUNT_TWO(0.00)[2];
	RCPT_COUNT_TWELVE(0.00)[12];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO
X-Spam-Score: -2.60
X-Spam-Level: 

Cleanup the private header files in arch/x86/xen by merging them into
one file and by removing unneeded stuff.

Juergen Gross (2):
  x86/xen: make some functions static
  x86/xen: eliminate some private header files

 arch/x86/xen/apic.c          |   2 -
 arch/x86/xen/debugfs.c       |   2 +-
 arch/x86/xen/debugfs.h       |   7 --
 arch/x86/xen/enlighten.c     |   2 -
 arch/x86/xen/enlighten_hvm.c |   2 -
 arch/x86/xen/enlighten_pv.c  |   4 -
 arch/x86/xen/mmu.c           |   3 +-
 arch/x86/xen/mmu.h           |  28 -------
 arch/x86/xen/mmu_hvm.c       |   2 +-
 arch/x86/xen/mmu_pv.c        |  15 ++--
 arch/x86/xen/multicalls.c    |   3 +-
 arch/x86/xen/multicalls.h    |  69 ----------------
 arch/x86/xen/p2m.c           |   2 -
 arch/x86/xen/pmu.c           |   1 -
 arch/x86/xen/pmu.h           |  22 ------
 arch/x86/xen/setup.c         |   1 -
 arch/x86/xen/smp.c           |   1 -
 arch/x86/xen/smp.h           |  51 ------------
 arch/x86/xen/smp_hvm.c       |   2 -
 arch/x86/xen/smp_pv.c        |   3 -
 arch/x86/xen/suspend.c       |   2 -
 arch/x86/xen/xen-ops.h       | 148 ++++++++++++++++++++++++++++++++++-
 include/xen/events.h         |   2 +
 23 files changed, 158 insertions(+), 216 deletions(-)
 delete mode 100644 arch/x86/xen/debugfs.h
 delete mode 100644 arch/x86/xen/mmu.h
 delete mode 100644 arch/x86/xen/multicalls.h
 delete mode 100644 arch/x86/xen/pmu.h
 delete mode 100644 arch/x86/xen/smp.h

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:37:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:37:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756661.1165353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTlU-0003ut-MF; Wed, 10 Jul 2024 09:37:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756661.1165353; Wed, 10 Jul 2024 09: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 1sRTlU-0003um-JU; Wed, 10 Jul 2024 09:37:32 +0000
Received: by outflank-mailman (input) for mailman id 756661;
 Wed, 10 Jul 2024 09:37:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5pAY=OK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sRTlS-0003T0-It
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:37:30 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 05b99c61-3ea0-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 11:37:28 +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 43C6121AC7;
 Wed, 10 Jul 2024 09:37: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 DD3B2137D2;
 Wed, 10 Jul 2024 09:37:27 +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 BRWFNFdWjmabWwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 10 Jul 2024 09:37: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: 05b99c61-3ea0-11ef-8776-851b0ebba9a2
Authentication-Results: smtp-out1.suse.de;
	none
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 1/2] x86/xen: make some functions static
Date: Wed, 10 Jul 2024 11:37:17 +0200
Message-ID: <20240710093718.14552-2-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240710093718.14552-1-jgross@suse.com>
References: <20240710093718.14552-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-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Queue-Id: 43C6121AC7
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -4.00
X-Spam-Level: 

Some functions and variables in arch/x86/xen are used locally only,
make them static.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/mmu.h     |  4 ----
 arch/x86/xen/mmu_pv.c  | 11 ++++++-----
 arch/x86/xen/xen-ops.h |  1 -
 3 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/arch/x86/xen/mmu.h b/arch/x86/xen/mmu.h
index 6e4c6bd62203..11fa577af6b4 100644
--- a/arch/x86/xen/mmu.h
+++ b/arch/x86/xen/mmu.h
@@ -17,10 +17,6 @@ bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn);
 
 void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags);
 
-pte_t xen_ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep);
-void  xen_ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr,
-				  pte_t *ptep, pte_t pte);
-
 unsigned long xen_read_cr2_direct(void);
 
 extern void xen_init_mmu_ops(void);
diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 54e0d311dcc9..8924129e284c 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -128,7 +128,7 @@ static DEFINE_SPINLOCK(xen_reservation_lock);
  * looking at another vcpu's cr3 value, it should use this variable.
  */
 DEFINE_PER_CPU(unsigned long, xen_cr3);	 /* cr3 stored as physaddr */
-DEFINE_PER_CPU(unsigned long, xen_current_cr3);	 /* actual vcpu cr3 */
+static DEFINE_PER_CPU(unsigned long, xen_current_cr3);	/* actual vcpu cr3 */
 
 static phys_addr_t xen_pt_base, xen_pt_size __initdata;
 
@@ -305,16 +305,17 @@ static void xen_set_pte(pte_t *ptep, pte_t pteval)
 	__xen_set_pte(ptep, pteval);
 }
 
-pte_t xen_ptep_modify_prot_start(struct vm_area_struct *vma,
-				 unsigned long addr, pte_t *ptep)
+static pte_t xen_ptep_modify_prot_start(struct vm_area_struct *vma,
+					unsigned long addr, pte_t *ptep)
 {
 	/* Just return the pte as-is.  We preserve the bits on commit */
 	trace_xen_mmu_ptep_modify_prot_start(vma->vm_mm, addr, ptep, *ptep);
 	return *ptep;
 }
 
-void xen_ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr,
-				 pte_t *ptep, pte_t pte)
+static void xen_ptep_modify_prot_commit(struct vm_area_struct *vma,
+					unsigned long addr,
+					pte_t *ptep, pte_t pte)
 {
 	struct mmu_update u;
 
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 79cf93f2c92f..9f29229e25b8 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -23,7 +23,6 @@ void xen_copy_trap_info(struct trap_info *traps);
 
 DECLARE_PER_CPU_ALIGNED(struct vcpu_info, xen_vcpu_info);
 DECLARE_PER_CPU(unsigned long, xen_cr3);
-DECLARE_PER_CPU(unsigned long, xen_current_cr3);
 
 extern struct start_info *xen_start_info;
 extern struct shared_info xen_dummy_shared_info;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:37:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:37:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756662.1165363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTlY-0004DG-U4; Wed, 10 Jul 2024 09:37:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756662.1165363; Wed, 10 Jul 2024 09: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 1sRTlY-0004D9-RQ; Wed, 10 Jul 2024 09:37:36 +0000
Received: by outflank-mailman (input) for mailman id 756662;
 Wed, 10 Jul 2024 09: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=5pAY=OK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sRTlX-0003ZP-Lo
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:37:35 +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 093e37f6-3ea0-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 11:37: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-out1.suse.de (Postfix) with ESMTPS id 08F9E21BB7;
 Wed, 10 Jul 2024 09:37: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 9B445137D2;
 Wed, 10 Jul 2024 09:37: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 nvZiJF1WjmanWwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 10 Jul 2024 09:37: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: 093e37f6-3ea0-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720604254; 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=4+HykxxQ5Ex73mNnrONMwaT76JhSipo1EPy0jxTFYc8=;
	b=OEz9xvgNl1dKu7zT6xepNByeSGWlDteYDDlg5yBwcd1XV0Is9E6n0BwhwhfQDZy7fdmeAk
	D4DzwN2VNWZs/JVFevwffqj0SEPKHtOzQlb5LKGtDR37TWc/qa1Jum1ZV27w7xU5odgu95
	MJHVkzyy23eyGoBKer6u59o+6d0PQv8=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720604254; 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=4+HykxxQ5Ex73mNnrONMwaT76JhSipo1EPy0jxTFYc8=;
	b=OEz9xvgNl1dKu7zT6xepNByeSGWlDteYDDlg5yBwcd1XV0Is9E6n0BwhwhfQDZy7fdmeAk
	D4DzwN2VNWZs/JVFevwffqj0SEPKHtOzQlb5LKGtDR37TWc/qa1Jum1ZV27w7xU5odgu95
	MJHVkzyy23eyGoBKer6u59o+6d0PQv8=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 2/2] x86/xen: eliminate some private header files
Date: Wed, 10 Jul 2024 11:37:18 +0200
Message-ID: <20240710093718.14552-3-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240710093718.14552-1-jgross@suse.com>
References: <20240710093718.14552-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[12];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	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)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,imap1.dmz-prg2.suse.org:helo];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.80
X-Spam-Level: 

Under arch/x86/xen there is one large private header file xen-ops.h
containing most of the Xen-private x86 related declarations, and then
there are several small headers with a handful of declarations each.

Merge the small headers into xen-ops.h.

While doing that, move the declaration of xen_fifo_events from
xen-ops.h into include/xen/events.h where it should have been from the
beginning.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/apic.c          |   2 -
 arch/x86/xen/debugfs.c       |   2 +-
 arch/x86/xen/debugfs.h       |   7 --
 arch/x86/xen/enlighten.c     |   2 -
 arch/x86/xen/enlighten_hvm.c |   2 -
 arch/x86/xen/enlighten_pv.c  |   4 -
 arch/x86/xen/mmu.c           |   3 +-
 arch/x86/xen/mmu.h           |  24 ------
 arch/x86/xen/mmu_hvm.c       |   2 +-
 arch/x86/xen/mmu_pv.c        |   4 +-
 arch/x86/xen/multicalls.c    |   3 +-
 arch/x86/xen/multicalls.h    |  69 ----------------
 arch/x86/xen/p2m.c           |   2 -
 arch/x86/xen/pmu.c           |   1 -
 arch/x86/xen/pmu.h           |  22 ------
 arch/x86/xen/setup.c         |   1 -
 arch/x86/xen/smp.c           |   1 -
 arch/x86/xen/smp.h           |  51 ------------
 arch/x86/xen/smp_hvm.c       |   2 -
 arch/x86/xen/smp_pv.c        |   3 -
 arch/x86/xen/suspend.c       |   2 -
 arch/x86/xen/xen-ops.h       | 147 ++++++++++++++++++++++++++++++++++-
 include/xen/events.h         |   2 +
 23 files changed, 152 insertions(+), 206 deletions(-)
 delete mode 100644 arch/x86/xen/debugfs.h
 delete mode 100644 arch/x86/xen/mmu.h
 delete mode 100644 arch/x86/xen/multicalls.h
 delete mode 100644 arch/x86/xen/pmu.h
 delete mode 100644 arch/x86/xen/smp.h

diff --git a/arch/x86/xen/apic.c b/arch/x86/xen/apic.c
index 8b045dd25196..bb0f3f368446 100644
--- a/arch/x86/xen/apic.c
+++ b/arch/x86/xen/apic.c
@@ -10,8 +10,6 @@
 #include <xen/xen.h>
 #include <xen/interface/physdev.h>
 #include "xen-ops.h"
-#include "pmu.h"
-#include "smp.h"
 
 static unsigned int xen_io_apic_read(unsigned apic, unsigned reg)
 {
diff --git a/arch/x86/xen/debugfs.c b/arch/x86/xen/debugfs.c
index 532410998684..b8c9f2a7d9b6 100644
--- a/arch/x86/xen/debugfs.c
+++ b/arch/x86/xen/debugfs.c
@@ -3,7 +3,7 @@
 #include <linux/debugfs.h>
 #include <linux/slab.h>
 
-#include "debugfs.h"
+#include "xen-ops.h"
 
 static struct dentry *d_xen_debug;
 
diff --git a/arch/x86/xen/debugfs.h b/arch/x86/xen/debugfs.h
deleted file mode 100644
index 6b813ad1091c..000000000000
--- a/arch/x86/xen/debugfs.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _XEN_DEBUGFS_H
-#define _XEN_DEBUGFS_H
-
-struct dentry * __init xen_init_debugfs(void);
-
-#endif /* _XEN_DEBUGFS_H */
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 0305485edcd3..84e5adbd0925 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -20,8 +20,6 @@
 #include <asm/setup.h>
 
 #include "xen-ops.h"
-#include "smp.h"
-#include "pmu.h"
 
 EXPORT_SYMBOL_GPL(hypercall_page);
 
diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
index c001a2296582..24d2957a4726 100644
--- a/arch/x86/xen/enlighten_hvm.c
+++ b/arch/x86/xen/enlighten_hvm.c
@@ -28,8 +28,6 @@
 #include <asm/xen/page.h>
 
 #include "xen-ops.h"
-#include "mmu.h"
-#include "smp.h"
 
 static unsigned long shared_info_pfn;
 
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 9ba53814ed6a..2c12ae42dc8b 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -85,10 +85,6 @@
 #endif
 
 #include "xen-ops.h"
-#include "mmu.h"
-#include "smp.h"
-#include "multicalls.h"
-#include "pmu.h"
 
 #include "../kernel/cpu/cpu.h" /* get_cpu_cap() */
 
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 60e9c37fd79f..c4c479373249 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -5,8 +5,7 @@
 #include <asm/xen/hypercall.h>
 #include <xen/interface/memory.h>
 
-#include "multicalls.h"
-#include "mmu.h"
+#include "xen-ops.h"
 
 unsigned long arbitrary_virt_to_mfn(void *vaddr)
 {
diff --git a/arch/x86/xen/mmu.h b/arch/x86/xen/mmu.h
deleted file mode 100644
index 11fa577af6b4..000000000000
--- a/arch/x86/xen/mmu.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _XEN_MMU_H
-
-#include <linux/linkage.h>
-#include <asm/page.h>
-
-enum pt_level {
-	PT_PGD,
-	PT_P4D,
-	PT_PUD,
-	PT_PMD,
-	PT_PTE
-};
-
-
-bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn);
-
-void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags);
-
-unsigned long xen_read_cr2_direct(void);
-
-extern void xen_init_mmu_ops(void);
-extern void xen_hvm_init_mmu_ops(void);
-#endif	/* _XEN_MMU_H */
diff --git a/arch/x86/xen/mmu_hvm.c b/arch/x86/xen/mmu_hvm.c
index 509bdee3ab90..337955652202 100644
--- a/arch/x86/xen/mmu_hvm.c
+++ b/arch/x86/xen/mmu_hvm.c
@@ -5,7 +5,7 @@
 #include <xen/interface/xen.h>
 #include <xen/hvm.h>
 
-#include "mmu.h"
+#include "xen-ops.h"
 
 #ifdef CONFIG_PROC_VMCORE
 /*
diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 8924129e284c..f1ce39d6d32c 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -82,9 +82,7 @@
 #include <xen/hvc-console.h>
 #include <xen/swiotlb-xen.h>
 
-#include "multicalls.h"
-#include "mmu.h"
-#include "debugfs.h"
+#include "xen-ops.h"
 
 /*
  * Prototypes for functions called via PV_CALLEE_SAVE_REGS_THUNK() in order
diff --git a/arch/x86/xen/multicalls.c b/arch/x86/xen/multicalls.c
index a8d699687d5c..d4cefd8a9af4 100644
--- a/arch/x86/xen/multicalls.c
+++ b/arch/x86/xen/multicalls.c
@@ -28,8 +28,7 @@
 
 #include <asm/xen/hypercall.h>
 
-#include "multicalls.h"
-#include "debugfs.h"
+#include "xen-ops.h"
 
 #define MC_BATCH	32
 
diff --git a/arch/x86/xen/multicalls.h b/arch/x86/xen/multicalls.h
deleted file mode 100644
index c3867b585e0d..000000000000
--- a/arch/x86/xen/multicalls.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _XEN_MULTICALLS_H
-#define _XEN_MULTICALLS_H
-
-#include <trace/events/xen.h>
-
-#include "xen-ops.h"
-
-/* Multicalls */
-struct multicall_space
-{
-	struct multicall_entry *mc;
-	void *args;
-};
-
-/* Allocate room for a multicall and its args */
-struct multicall_space __xen_mc_entry(size_t args);
-
-DECLARE_PER_CPU(unsigned long, xen_mc_irq_flags);
-
-/* Call to start a batch of multiple __xen_mc_entry()s.  Must be
-   paired with xen_mc_issue() */
-static inline void xen_mc_batch(void)
-{
-	unsigned long flags;
-
-	/* need to disable interrupts until this entry is complete */
-	local_irq_save(flags);
-	trace_xen_mc_batch(xen_get_lazy_mode());
-	__this_cpu_write(xen_mc_irq_flags, flags);
-}
-
-static inline struct multicall_space xen_mc_entry(size_t args)
-{
-	xen_mc_batch();
-	return __xen_mc_entry(args);
-}
-
-/* Flush all pending multicalls */
-void xen_mc_flush(void);
-
-/* Issue a multicall if we're not in a lazy mode */
-static inline void xen_mc_issue(unsigned mode)
-{
-	trace_xen_mc_issue(mode);
-
-	if ((xen_get_lazy_mode() & mode) == 0)
-		xen_mc_flush();
-
-	/* restore flags saved in xen_mc_batch */
-	local_irq_restore(this_cpu_read(xen_mc_irq_flags));
-}
-
-/* Set up a callback to be called when the current batch is flushed */
-void xen_mc_callback(void (*fn)(void *), void *data);
-
-/*
- * Try to extend the arguments of the previous multicall command.  The
- * previous command's op must match.  If it does, then it attempts to
- * extend the argument space allocated to the multicall entry by
- * arg_size bytes.
- *
- * The returned multicall_space will return with mc pointing to the
- * command on success, or NULL on failure, and args pointing to the
- * newly allocated space.
- */
-struct multicall_space xen_mc_extend_args(unsigned long op, size_t arg_size);
-
-#endif /* _XEN_MULTICALLS_H */
diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index 99918beccd80..3c4c20db7e39 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -81,7 +81,6 @@
 #include <xen/balloon.h>
 #include <xen/grant_table.h>
 
-#include "multicalls.h"
 #include "xen-ops.h"
 
 #define P2M_MID_PER_PAGE	(PAGE_SIZE / sizeof(unsigned long *))
@@ -795,7 +794,6 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
 
 #ifdef CONFIG_XEN_DEBUG_FS
 #include <linux/debugfs.h>
-#include "debugfs.h"
 static int p2m_dump_show(struct seq_file *m, void *v)
 {
 	static const char * const type_name[] = {
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index 246d67dab510..f06987b0efc3 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -10,7 +10,6 @@
 #include <xen/interface/xenpmu.h>
 
 #include "xen-ops.h"
-#include "pmu.h"
 
 /* x86_pmu.handle_irq definition */
 #include "../events/perf_event.h"
diff --git a/arch/x86/xen/pmu.h b/arch/x86/xen/pmu.h
deleted file mode 100644
index 65c58894fc79..000000000000
--- a/arch/x86/xen/pmu.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __XEN_PMU_H
-#define __XEN_PMU_H
-
-#include <xen/interface/xenpmu.h>
-
-extern bool is_xen_pmu;
-
-irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id);
-#ifdef CONFIG_XEN_HAVE_VPMU
-void xen_pmu_init(int cpu);
-void xen_pmu_finish(int cpu);
-#else
-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);
-int pmu_apic_update(uint32_t reg);
-unsigned long long xen_read_pmc(int counter);
-
-#endif /* __XEN_PMU_H */
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index 380591028cb8..a0c3e77e3d5b 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -34,7 +34,6 @@
 #include <xen/features.h>
 #include <xen/hvc-console.h>
 #include "xen-ops.h"
-#include "mmu.h"
 
 #define GB(x) ((uint64_t)(x) * 1024 * 1024 * 1024)
 
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
index 935771726f9c..05f92c812ac8 100644
--- a/arch/x86/xen/smp.c
+++ b/arch/x86/xen/smp.c
@@ -9,7 +9,6 @@
 
 #include <xen/hvc-console.h>
 #include "xen-ops.h"
-#include "smp.h"
 
 static DEFINE_PER_CPU(struct xen_common_irq, xen_resched_irq) = { .irq = -1 };
 static DEFINE_PER_CPU(struct xen_common_irq, xen_callfunc_irq) = { .irq = -1 };
diff --git a/arch/x86/xen/smp.h b/arch/x86/xen/smp.h
deleted file mode 100644
index b8efdbc693f7..000000000000
--- a/arch/x86/xen/smp.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _XEN_SMP_H
-
-#ifdef CONFIG_SMP
-
-void asm_cpu_bringup_and_idle(void);
-asmlinkage void cpu_bringup_and_idle(void);
-
-extern void xen_send_IPI_mask(const struct cpumask *mask,
-			      int vector);
-extern void xen_send_IPI_mask_allbutself(const struct cpumask *mask,
-				int vector);
-extern void xen_send_IPI_allbutself(int vector);
-extern void xen_send_IPI_all(int vector);
-extern void xen_send_IPI_self(int vector);
-
-extern int xen_smp_intr_init(unsigned int cpu);
-extern void xen_smp_intr_free(unsigned int cpu);
-int xen_smp_intr_init_pv(unsigned int cpu);
-void xen_smp_intr_free_pv(unsigned int cpu);
-
-void xen_smp_count_cpus(void);
-void xen_smp_cpus_done(unsigned int max_cpus);
-
-void xen_smp_send_reschedule(int cpu);
-void xen_smp_send_call_function_ipi(const struct cpumask *mask);
-void xen_smp_send_call_function_single_ipi(int cpu);
-
-void __noreturn xen_cpu_bringup_again(unsigned long stack);
-
-struct xen_common_irq {
-	int irq;
-	char *name;
-};
-#else /* CONFIG_SMP */
-
-static inline int xen_smp_intr_init(unsigned int cpu)
-{
-	return 0;
-}
-static inline void xen_smp_intr_free(unsigned int cpu) {}
-
-static inline int xen_smp_intr_init_pv(unsigned int cpu)
-{
-	return 0;
-}
-static inline void xen_smp_intr_free_pv(unsigned int cpu) {}
-static inline void xen_smp_count_cpus(void) { }
-#endif /* CONFIG_SMP */
-
-#endif
diff --git a/arch/x86/xen/smp_hvm.c b/arch/x86/xen/smp_hvm.c
index ac95d1981cc0..485c1d8804f7 100644
--- a/arch/x86/xen/smp_hvm.c
+++ b/arch/x86/xen/smp_hvm.c
@@ -5,8 +5,6 @@
 #include <xen/events.h>
 
 #include "xen-ops.h"
-#include "smp.h"
-
 
 static void __init xen_hvm_smp_prepare_boot_cpu(void)
 {
diff --git a/arch/x86/xen/smp_pv.c b/arch/x86/xen/smp_pv.c
index ac41d83b38d3..7ea57f728b89 100644
--- a/arch/x86/xen/smp_pv.c
+++ b/arch/x86/xen/smp_pv.c
@@ -46,9 +46,6 @@
 
 #include <xen/hvc-console.h>
 #include "xen-ops.h"
-#include "mmu.h"
-#include "smp.h"
-#include "pmu.h"
 
 cpumask_var_t xen_cpu_initialized_map;
 
diff --git a/arch/x86/xen/suspend.c b/arch/x86/xen/suspend.c
index 1d83152c761b..77a6ea1c60e4 100644
--- a/arch/x86/xen/suspend.c
+++ b/arch/x86/xen/suspend.c
@@ -15,8 +15,6 @@
 #include <asm/fixmap.h>
 
 #include "xen-ops.h"
-#include "mmu.h"
-#include "pmu.h"
 
 static DEFINE_PER_CPU(u64, spec_ctrl);
 
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 9f29229e25b8..e7775dff9452 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -5,8 +5,15 @@
 #include <linux/init.h>
 #include <linux/clocksource.h>
 #include <linux/irqreturn.h>
+#include <linux/linkage.h>
+
+#include <xen/interface/xenpmu.h>
 #include <xen/xen-ops.h>
 
+#include <asm/page.h>
+
+#include <trace/events/xen.h>
+
 /* These are code, but not functions.  Defined in entry.S */
 extern const char xen_failsafe_callback[];
 
@@ -28,8 +35,6 @@ extern struct start_info *xen_start_info;
 extern struct shared_info xen_dummy_shared_info;
 extern struct shared_info *HYPERVISOR_shared_info;
 
-extern bool xen_fifo_events;
-
 void xen_setup_mfn_list_list(void);
 void xen_build_mfn_list_list(void);
 void xen_setup_machphys_mapping(void);
@@ -176,4 +181,142 @@ static inline void xen_hvm_post_suspend(int suspend_cancelled) {}
 
 void xen_add_extra_mem(unsigned long start_pfn, unsigned long n_pfns);
 
+struct dentry * __init xen_init_debugfs(void);
+
+enum pt_level {
+	PT_PGD,
+	PT_P4D,
+	PT_PUD,
+	PT_PMD,
+	PT_PTE
+};
+
+bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn);
+void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags);
+unsigned long xen_read_cr2_direct(void);
+void xen_init_mmu_ops(void);
+void xen_hvm_init_mmu_ops(void);
+
+/* Multicalls */
+struct multicall_space
+{
+	struct multicall_entry *mc;
+	void *args;
+};
+
+/* Allocate room for a multicall and its args */
+struct multicall_space __xen_mc_entry(size_t args);
+
+DECLARE_PER_CPU(unsigned long, xen_mc_irq_flags);
+
+/* Call to start a batch of multiple __xen_mc_entry()s.  Must be
+   paired with xen_mc_issue() */
+static inline void xen_mc_batch(void)
+{
+	unsigned long flags;
+
+	/* need to disable interrupts until this entry is complete */
+	local_irq_save(flags);
+	trace_xen_mc_batch(xen_get_lazy_mode());
+	__this_cpu_write(xen_mc_irq_flags, flags);
+}
+
+static inline struct multicall_space xen_mc_entry(size_t args)
+{
+	xen_mc_batch();
+	return __xen_mc_entry(args);
+}
+
+/* Flush all pending multicalls */
+void xen_mc_flush(void);
+
+/* Issue a multicall if we're not in a lazy mode */
+static inline void xen_mc_issue(unsigned mode)
+{
+	trace_xen_mc_issue(mode);
+
+	if ((xen_get_lazy_mode() & mode) == 0)
+		xen_mc_flush();
+
+	/* restore flags saved in xen_mc_batch */
+	local_irq_restore(this_cpu_read(xen_mc_irq_flags));
+}
+
+/* Set up a callback to be called when the current batch is flushed */
+void xen_mc_callback(void (*fn)(void *), void *data);
+
+/*
+ * Try to extend the arguments of the previous multicall command.  The
+ * previous command's op must match.  If it does, then it attempts to
+ * extend the argument space allocated to the multicall entry by
+ * arg_size bytes.
+ *
+ * The returned multicall_space will return with mc pointing to the
+ * command on success, or NULL on failure, and args pointing to the
+ * newly allocated space.
+ */
+struct multicall_space xen_mc_extend_args(unsigned long op, size_t arg_size);
+
+extern bool is_xen_pmu;
+
+irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id);
+#ifdef CONFIG_XEN_HAVE_VPMU
+void xen_pmu_init(int cpu);
+void xen_pmu_finish(int cpu);
+#else
+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);
+int pmu_apic_update(uint32_t reg);
+unsigned long long xen_read_pmc(int counter);
+
+#ifdef CONFIG_SMP
+
+void asm_cpu_bringup_and_idle(void);
+asmlinkage void cpu_bringup_and_idle(void);
+
+extern void xen_send_IPI_mask(const struct cpumask *mask,
+			      int vector);
+extern void xen_send_IPI_mask_allbutself(const struct cpumask *mask,
+				int vector);
+extern void xen_send_IPI_allbutself(int vector);
+extern void xen_send_IPI_all(int vector);
+extern void xen_send_IPI_self(int vector);
+
+extern int xen_smp_intr_init(unsigned int cpu);
+extern void xen_smp_intr_free(unsigned int cpu);
+int xen_smp_intr_init_pv(unsigned int cpu);
+void xen_smp_intr_free_pv(unsigned int cpu);
+
+void xen_smp_count_cpus(void);
+void xen_smp_cpus_done(unsigned int max_cpus);
+
+void xen_smp_send_reschedule(int cpu);
+void xen_smp_send_call_function_ipi(const struct cpumask *mask);
+void xen_smp_send_call_function_single_ipi(int cpu);
+
+void __noreturn xen_cpu_bringup_again(unsigned long stack);
+
+struct xen_common_irq {
+	int irq;
+	char *name;
+};
+#else /* CONFIG_SMP */
+
+static inline int xen_smp_intr_init(unsigned int cpu)
+{
+	return 0;
+}
+static inline void xen_smp_intr_free(unsigned int cpu) {}
+
+static inline int xen_smp_intr_init_pv(unsigned int cpu)
+{
+	return 0;
+}
+static inline void xen_smp_intr_free_pv(unsigned int cpu) {}
+static inline void xen_smp_count_cpus(void) { }
+#endif /* CONFIG_SMP */
+
 #endif /* XEN_OPS_H */
diff --git a/include/xen/events.h b/include/xen/events.h
index 3b07409f8032..de5da58a0205 100644
--- a/include/xen/events.h
+++ b/include/xen/events.h
@@ -144,4 +144,6 @@ static inline void xen_evtchn_close(evtchn_port_t port)
 		BUG();
 }
 
+extern bool xen_fifo_events;
+
 #endif	/* _XEN_EVENTS_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:38:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:38:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756675.1165374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTm7-0005Ak-9b; Wed, 10 Jul 2024 09:38:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756675.1165374; Wed, 10 Jul 2024 09:38:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTm7-0005Ad-6Q; Wed, 10 Jul 2024 09:38:11 +0000
Received: by outflank-mailman (input) for mailman id 756675;
 Wed, 10 Jul 2024 09:38: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=drOD=OK=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sRTm5-0003T0-SW
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:38:09 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20622.outbound.protection.outlook.com
 [2a01:111:f403:2408::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1cf2a40d-3ea0-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 11:38:07 +0200 (CEST)
Received: from MW2PR2101CA0027.namprd21.prod.outlook.com (2603:10b6:302:1::40)
 by PH8PR12MB7111.namprd12.prod.outlook.com (2603:10b6:510:22d::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.29; Wed, 10 Jul
 2024 09:38:03 +0000
Received: from CO1PEPF000075F4.namprd03.prod.outlook.com
 (2603:10b6:302:1:cafe::9a) by MW2PR2101CA0027.outlook.office365.com
 (2603:10b6:302:1::40) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.11 via Frontend
 Transport; Wed, 10 Jul 2024 09:38:03 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000075F4.mail.protection.outlook.com (10.167.249.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7762.17 via Frontend Transport; Wed, 10 Jul 2024 09:38:02 +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, 10 Jul
 2024 04:38:01 -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, 10 Jul
 2024 04:38:01 -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, 10 Jul 2024 04:38: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: 1cf2a40d-3ea0-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=loZDxAxO1eMQD+6g2ZnSPEG1TYehSx0G7lcSDzizhzs+BgHdfj0KtbXnLYGaT9ww1ZxUhDmDYRn1U/MdrToHGc0QzRjfcJYTuGm5V5T/nQ19WKrXUY+NtdLoJ6Q2CyxzCoEYJIOSyzcwyvhF1qh7FuLra9mnlpIyWvKOYtZRKvxEbV+XzxUJ5ZYW2twwSxJEDXoUZMt4Sb4YBQPUwYqA8pxX03Bm7zEReP/4tSiZFt1FydwY90tZjtribv2rPwxGKkSZZ0LwLuooZ6p37mqirnMijcCh8NydusWIXMoA3RmIz6ESEHXIkFDIsLJU4rWdUpmfVr34ZfDlOTDOdVTlew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/nu466F27GBCKOIfte4vaJfFLdDQKHsp54cfXurZ5O8=;
 b=Er5QBO0e8JIgPGV+wVP0UOp2rVqt5PvA6NXJ74RsXJs3hp6MKZabLBvkbym0cotbv/DEVf6a/obN2DHQ3fB0y3N/MzMFpgZYOEycXo+Da8lkQdz2EsiUXY07Ubpm4Jv2pYFKYea1R6ACdn77Up/XhIlU4Rxs+OMMwdl7iCBzMpw639syWJaOXyfn7G7tepTrk0PGZykec3egWbvXyRs7guQ7gS5CF/IkCrDVVmlquGA8ufucrPPywUJ/c9TQZKVRZ9B/C4zZnjWAZmQGw4c//Y/CE2lLIQbH9+aLd/Is6TZvX3Gt/36PenD/aylhP+HSE/vip7XAnoAo+JUndr/XdA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/nu466F27GBCKOIfte4vaJfFLdDQKHsp54cfXurZ5O8=;
 b=ejnF0rLwdJYdQVaWm5O2Ir9q6ZnhZpehbK1crD9TFpy+91t04nzn6mVGoNLUu1R3re7bm+5OSzqecj4ErvRlsgDAk97c52VMGkxN/+TYb0KdHCJwxyqJozh6W0l2PaBtS44EGYZ3JPoeLRRgky0Q9GxPNccYiJobIzeq93kf8+M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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 for-4.20 v2] automation: Use a different ImageBuilder repository URL
Date: Wed, 10 Jul 2024 11:37:51 +0200
Message-ID: <20240710093751.25154-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000075F4:EE_|PH8PR12MB7111:EE_
X-MS-Office365-Filtering-Correlation-Id: ee7d8c9e-0450-4aa8-d9c6-08dca0c3fec4
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?6OBO/McF07D20mHt8JqEkRHLUnnZj0bYn7JRDUUqq0tFRi1K+i1kpubmo4pu?=
 =?us-ascii?Q?EXMg7ee5sjMfV8xj7NlGl7OyO9HsYEQgcl/ugi3YH6eWYNgEgOum6HDDuhVu?=
 =?us-ascii?Q?7/ErNYZhKqRqo3GUC+fr1EfEpZtM7cs6Puwsf4y9ZqOxgNCpmRvPHF3Fv5hM?=
 =?us-ascii?Q?ksvvQEDe9s7xrVlVUJ3+ueT6fqMnHy9PHfQ4s1qrBk2FqoDABaD7yB8R5VDn?=
 =?us-ascii?Q?33vuiXUdlpNGX7Kr3jNoZrE2/9S4sslPeHRYLlvkUvTPd6C7uzYG0rKyj9az?=
 =?us-ascii?Q?9MV2Sn3Sl/GNYFyKwvHHXdVkGoglLSKHodSboSlTOyQgeLJ1OP7EDbZZee/K?=
 =?us-ascii?Q?HJixZXZJw6YOL36RYLnIX/6y+OXY9LGflTnemE29dDo/70dwogajPNTfFqN+?=
 =?us-ascii?Q?mjKhMIHDo0OHw014ijc0w9RhsxK+grDvgMH4Ye+eP61AMwEUZi+KXpzTjz1X?=
 =?us-ascii?Q?95VS9iJIj2LtIv4UeadE4xueKacLPH0kEdj+rwTsza4NvkjVfPacqTpLjJIw?=
 =?us-ascii?Q?SmYTm6QhogvBXIdPDelJfWb6GOmrO+843FOIlnoWvPBogTC2DW62aN0XEWbw?=
 =?us-ascii?Q?awfQ40DB4zi33pwC91/8bEGDjZXnm1Ln50wRBodMKVxZ1NdG3WCOVZmsZN+x?=
 =?us-ascii?Q?gKNOu00Hvwz4QLUgtsn58XhBl+wTmwbT/lyRkSvZTwYLcBE/QBtlEIoytDHf?=
 =?us-ascii?Q?D9GmPpyBVDQRICvoh0zL4Dq0JgaYEsoo1XzeFpPel+29ea9EYWncWURhBhJP?=
 =?us-ascii?Q?vGYBy/QpzW3/EqkKv/vcA9UWBu8gkl6zLOfSLwJY/zkV8VqTMGwA8UfcNyHk?=
 =?us-ascii?Q?qhtqIBmDDRQHgV9ionQiR2UE8HMmNbAl5CwYCHbHj4jD1CslF2NYGXjAyKl/?=
 =?us-ascii?Q?dJ3rCLzzGeCaNuWQ8clcJXKyUobC/2uWt3Ri8kWUbedafRwzVeZ1vOww09YZ?=
 =?us-ascii?Q?zlBQhOy5RhDxoJVuC+UBLLcNQBFepFqHQn5CmCeWVMX4V6pAUntViIlYTJzU?=
 =?us-ascii?Q?CaMJfkaJWY591LNBxOfcLBICths27zM6pbFkL5RM6ryiVh4I1T2oMEpgcZ1N?=
 =?us-ascii?Q?MjthUbessGd3KeAR6knh+EReJ0CdLiyIyMHsyuJaBqyRdlamiqeaSdbQKQ4z?=
 =?us-ascii?Q?bXU9duWZco8EIFOXeB7reUy3fMm7O2RmJoi0g5Ja/KvALVa70SPv/ZCHHw2T?=
 =?us-ascii?Q?ubCJsp7PcdLxNoUav4bfbQd5KvP56P3ZVKBbPHRy6aeVCFJ3yrWybEiCDSCI?=
 =?us-ascii?Q?tt6VQDp6AlNyoRFkdj6jXM8fjIDk7RQWbR9Ai+3fPGZxJqYUuW8tsgiYDFSq?=
 =?us-ascii?Q?mYFHbIiZDTmYJJK7ZgV8VNDZ2T4P7NpH78U38g5EBd3ZVCVZuQg79pMe/M1z?=
 =?us-ascii?Q?l8HJP0q3R8HYwYPvO+TUZr520Ol0o04rao2AZsF/UJI81vS/HA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 09:38:02.9867
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ee7d8c9e-0450-4aa8-d9c6-08dca0c3fec4
X-MS-Exchange-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:
	CO1PEPF000075F4.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7111

Switch to using https://gitlab.com/xen-project/imagebuilder.git which
should be considered official ImageBuilder repo.

Take the opportunity to truncate the git history when cloning using
--depth 1.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
Changes in v2:
 - truncate history when cloning
---
 automation/scripts/qemu-smoke-dom0-arm32.sh       | 2 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh       | 2 +-
 automation/scripts/qemu-smoke-dom0less-arm32.sh   | 2 +-
 automation/scripts/qemu-smoke-dom0less-arm64.sh   | 2 +-
 automation/scripts/qemu-xtf-dom0less-arm64.sh     | 2 +-
 automation/scripts/xilinx-smoke-dom0less-arm64.sh | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scripts/qemu-smoke-dom0-arm32.sh
index d91648905669..31c05cc840e5 100755
--- a/automation/scripts/qemu-smoke-dom0-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
@@ -73,7 +73,7 @@ UBOOT_SOURCE="boot.source"
 UBOOT_SCRIPT="boot.scr"' > config
 
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/imagebuilder
+git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
 bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
 
 rm -f ${serial_log}
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index e0bb37af3610..352963a741ce 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -87,7 +87,7 @@ LOAD_CMD="tftpb"
 UBOOT_SOURCE="boot.source"
 UBOOT_SCRIPT="boot.scr"' > binaries/config
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/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
 
 
diff --git a/automation/scripts/qemu-smoke-dom0less-arm32.sh b/automation/scripts/qemu-smoke-dom0less-arm32.sh
index 1e2b939aadf7..c027c8c5c823 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh
@@ -125,7 +125,7 @@ if [[ "${test_variant}" == "without-dom0" ]]; then
 fi
 
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/imagebuilder
+git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
 bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
 
 # Run the test
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index 292c38a56147..15258692d58c 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -198,7 +198,7 @@ NUM_CPUPOOLS=1' >> binaries/config
 fi
 
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/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
 
 
diff --git a/automation/scripts/qemu-xtf-dom0less-arm64.sh b/automation/scripts/qemu-xtf-dom0less-arm64.sh
index a667e0412c92..b08c2d44fb4f 100755
--- a/automation/scripts/qemu-xtf-dom0less-arm64.sh
+++ b/automation/scripts/qemu-xtf-dom0less-arm64.sh
@@ -45,7 +45,7 @@ UBOOT_SOURCE="boot.source"
 UBOOT_SCRIPT="boot.scr"' > binaries/config
 
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/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
diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
index 4a071c6ef148..666411d6a065 100755
--- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
+++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
@@ -122,7 +122,7 @@ if [[ "${test_variant}" == "gem-passthrough" ]]; then
 fi
 
 rm -rf imagebuilder
-git clone https://gitlab.com/ViryaOS/imagebuilder
+git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
 bash imagebuilder/scripts/uboot-script-gen -t tftp -d $TFTP/ -c $TFTP/config
 
 # restart the board
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:44:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:44:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756685.1165384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTs3-0006nz-Tp; Wed, 10 Jul 2024 09:44:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756685.1165384; Wed, 10 Jul 2024 09: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 1sRTs3-0006ns-Qo; Wed, 10 Jul 2024 09:44:19 +0000
Received: by outflank-mailman (input) for mailman id 756685;
 Wed, 10 Jul 2024 09:44:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IDrF=OK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRTs2-0006nm-Td
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:44:18 +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 f9c14416-3ea0-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 11:44:18 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58b0beaf703so7547923a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 02:44:17 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bc4e8173sm2032053a12.54.2024.07.10.02.44.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 02:44: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: f9c14416-3ea0-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720604657; x=1721209457; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NR6E3aJwLRMq5NzGpHd9vII4Lpf0R0H0dUG0+cC/DdA=;
        b=o0PcvbqTQzrtB5F7s+kNzkGOdmcmzebF/AdnWQA55Gp9DxT6ux1n/wUQ0AcBJXlgBj
         xHKy/Ku+GSN44xG5Ge0xVvLW0Ye0JhaJXOPp3ClW3S5kqmkJmBMgwLJKEDnafezr7wsH
         4Q42I8otslv381yD3zWWJ0u73ZgGAupIf2rxQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720604657; x=1721209457;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NR6E3aJwLRMq5NzGpHd9vII4Lpf0R0H0dUG0+cC/DdA=;
        b=suS+5fy2uLQ1lRRgnu58m2utDrfOoaqSb9MNB4eoPO+fKeZPdnSSBjVl0uOzuKv55m
         Dwv2KDgfippeEzBbymq7WNfSHk5RG0+Kd3iKukRphpvKf6QQRZ/sOKW/ESP31IPA2FDu
         fDfui0sQV0LHrzUJh78M/vH7gZHRQ5gQif0atdNXzPhobMOkrQ4o43HMmln6h26j/8XN
         ffUafsQhxlmKlQU6tnQYcBtzhn1kKxXLvNXbQp5sgUIP+D5pe9F+frMlA6g1ZFAg9lid
         DX0NigEimrvc6UakhY3TJzK6pCBV24PrlgCMgl1jVKXqh63TfklTZeR7STu2JS3bfSKv
         LAQA==
X-Forwarded-Encrypted: i=1; AJvYcCXG/K0ikaoQjIdiGNEWynGe8KHI3DemU81jBfoYQDA5zIgByOzvE6CkJ7GLPWgLpTCQwJQVBKjbILu483g3l0AlsTtoYGMfwhOImqnf5L4=
X-Gm-Message-State: AOJu0YzZR10f4VOv6n4DL73EO8fvP/E8SciuiEBFFInyUSCz5IqY0VDf
	zleOA4sNk1fZmnEmMSqc2Xn5SF5pB32Qt6PT9mP5YrRPMJ1V6GR+lTANzcb1kNE=
X-Google-Smtp-Source: AGHT+IEdmw2EgN9TkeNldkbU3sqXP5GWa6FqQWjrsDJFHdjjdoPHJ45zOL+2GyLZwFm9HLKDb/Xhcg==
X-Received: by 2002:a05:6402:27c9:b0:57c:60e8:c519 with SMTP id 4fb4d7f45d1cf-594baf8d6f2mr3258441a12.16.1720604657269;
        Wed, 10 Jul 2024 02:44:17 -0700 (PDT)
Message-ID: <98fecf96-ab8e-4514-a3e9-a1f0b15519c1@citrix.com>
Date: Wed, 10 Jul 2024 10:44:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20 v2] automation: Use a different ImageBuilder
 repository URL
To: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240710093751.25154-1-michal.orzel@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240710093751.25154-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10/07/2024 10:37 am, Michal Orzel wrote:
> Switch to using https://gitlab.com/xen-project/imagebuilder.git which
> should be considered official ImageBuilder repo.
>
> Take the opportunity to truncate the git history when cloning using
> --depth 1.
>
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Given the current overhaul I'm (still) doing for CI in 4.19, I'd suggest
taking this.

It will mean an 8-month improvement in switching over fully.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:46:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:46:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756696.1165393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTuL-0007aN-8p; Wed, 10 Jul 2024 09:46:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756696.1165393; Wed, 10 Jul 2024 09:46: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 1sRTuL-0007aG-5g; Wed, 10 Jul 2024 09:46:41 +0000
Received: by outflank-mailman (input) for mailman id 756696;
 Wed, 10 Jul 2024 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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRTuJ-0007MG-AP
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:46:39 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d7e28b2-3ea1-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 11:46:38 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2eea8ea8c06so36344771fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 02: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
 d9443c01a7336-1fbb6ab759asm29736205ad.168.2024.07.10.02.46.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 02: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: 4d7e28b2-3ea1-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720604798; x=1721209598; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JDqm3k8Bl4DfsHX4ld3VhJKPXBbdcul3PxfSlrObA88=;
        b=R0smrzHl9Z0OxfIqajaBuy4Vz7Mp5qwXp85B3I3gddR64bTu678qGQYFMWdvLQV2MW
         ErsFjAas+u7nAEFi3OBgTElm4eblUgrgFdG6YlCo4/kukctiFgNarZyS2hpDJ9ZixRLC
         eBb0ZbRayvU+KkhpDRJI4ecRCB34dwElhZz1GSgsbNlfgnmgLIxLyH7oUQJWihirvBiz
         BGuSOEQeAxCfnphV10CXLzjNIf1CnR2Sq068Nmicg4ebIc70U+zQwwbMnH3LzFSLg1w/
         C4W/02C/UkVp7nPO9VvNXqYR+bR5wTnGhie2SmYZM0LRwloAINCyZbxcRMv43AXpIegn
         tjsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720604798; x=1721209598;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JDqm3k8Bl4DfsHX4ld3VhJKPXBbdcul3PxfSlrObA88=;
        b=Nkg1+IiowjUsjyJy/XqM2gs14/tQCajgu5wdyfq3XJUKV1aXQpcoVUS5A3l7j97xzx
         8Chrjo22bZJ1soWm1tb/D+JOS5NNSpOScYRFBYCGkh9sNhbxijgZk7XTZtbfxfen8s5b
         TnF5/LjgoX2pM5CdWgtGNcRQPSg21aUEQFiuV2iAtRPPaYVbnpdvxoaLdgiuj7pF+ljB
         KF6eFS0PDHpVuzIBUy/xzM1KXPplETz9V/mjgQaspXOHiXxF0VPqafcg790RRFK/5eg5
         dEiWNdabEYu1BahBmNovXRsy3jWRtKGSWYCy/0fU/4WYwsBpHs6JvMq9VzsNpZ3G6NRW
         p+qg==
X-Forwarded-Encrypted: i=1; AJvYcCWTXNv31w0kjJBXdq1gdXI5Ou4l9QiLFzuZtbn37A3EYiHIopsUsN8W3aBq0bu9RepjnOv1LpAfIvh+ldMpMWhMEecHJFbxVVbWqV+/E6M=
X-Gm-Message-State: AOJu0YwIeu461sXnJZaGybcBkkC9RmomIutDJDNLxY0QM3AMKz0n0itU
	a3pZKAFQEJTt4X94/YHUoKNrZrge76RF8Nwd6bWdxAMVScYf0xMjir0Gs7NWWw==
X-Google-Smtp-Source: AGHT+IHYHMWZq1lGy82RKn59uIwY9Yacdo2xF01E/gpCh7wk5Op8AnTXZfK0zYUXy/hF9OlxEgH5rA==
X-Received: by 2002:a2e:9852:0:b0:2ee:6b86:b0a3 with SMTP id 38308e7fff4ca-2eeb3101ddamr32216241fa.30.1720604797804;
        Wed, 10 Jul 2024 02:46:37 -0700 (PDT)
Message-ID: <4555a777-970c-4538-be34-99393426b83e@suse.com>
Date: Wed, 10 Jul 2024 11:46:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/5] xen/riscv: use printk() instead of early_printk()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
 <22c78705e4559a049e72950dc311513f1c15e489.1719918148.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: <22c78705e4559a049e72950dc311513f1c15e489.1719918148.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 13:23, Oleksii Kurochko wrote:
> As common code is available it is better to use printk() instead
> of early_printk().

IOW the function is not just available (allowing linking to succeed),
but is also fully functional (i.e. the line is making it out, and hence
CI, which iirc is looking for that string, is going to be "happy")? If
so:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:48:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:48:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756701.1165404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTw4-000069-J1; Wed, 10 Jul 2024 09:48:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756701.1165404; Wed, 10 Jul 2024 09:48:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTw4-000062-GL; Wed, 10 Jul 2024 09:48:28 +0000
Received: by outflank-mailman (input) for mailman id 756701;
 Wed, 10 Jul 2024 09:48: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRTw2-00005t-EE
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:48:26 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8cae187b-3ea1-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 11:48:24 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2eeb1ba040aso29040801fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 02:48: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
 41be03b00d2f7-77d682b4611sm2622216a12.84.2024.07.10.02.48.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 02:48: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: 8cae187b-3ea1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720604904; x=1721209704; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PblYWG/fi19LmVlDeof8dw2FSZ4eHEex5InFw4qLNrE=;
        b=c1Kiq7GmFl1CBHuuuXePP7WLtdqGhQBi67LVu1CweUbCtC8ACNABtzj3kUQ3ACNttO
         v61bXib6LAlwO0lWvZoFMOYcjtcj3d83GkD37Pw/z10vymabw3ideO4siZWSHc9w+K+P
         sugsqZl+WQyXjvaHM4eXwX5BYJL3LoyogdptFtn3+AvtvLUb/npsp6cFpnEeqoggkgr/
         jNDnz0IPSO4fqOpMPP/Bnd8hl74af2T3Tax+vWtP8hoRYlsib3dWXjkIZh+7/RabfgIN
         84bRO/NjrP1FzyXWJABmjhcdds/rptjInE8D746hrsgeofXlAj/o0wZQ+6MuPwltO3gE
         7KLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720604904; x=1721209704;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PblYWG/fi19LmVlDeof8dw2FSZ4eHEex5InFw4qLNrE=;
        b=UzAivV1kaqEeIA5M/VAW60eP5NxgltuufsmOvEqt9QsZp7NvsqE7gPssFdvLY1g3Ed
         9BEs2SKohKZoGPQH3WlQ0BIk2eAaGnxaRwAgddGGgYxt+nw7K9jlIkeT1jGP8Vlq/HGy
         ghCfeLurfGT+u+QqQ6XM8xZNrWZSkSr0KH9S5MY3I+01W6/NIAJ0YtfLM3PR/+W2AG3K
         Ov225+C8N3X17XLE8ctekBpQxL2U26nnGKuO/OGfuCzAa5VxM/6O7ClfjgSKFgITYp5s
         i75HxuS+VFEjbXKQ835XABtdw4EheUg47HJAbBDBWXBOyDFH0CD0Rx3+Tj7b3O56bKwq
         tLcQ==
X-Forwarded-Encrypted: i=1; AJvYcCXPszdXwLt+EJ8JBxLYAQH+xiXzca8y1HMm5V7oRiEAQofIJPgeYRVAIvs0Lc1sc9MQcyWWbT6eeXEAJYueTCxIaFsHI/7/XElyuS5jkbc=
X-Gm-Message-State: AOJu0Ywyqx4BbjhLiaY9FaTW4Ju2dFimrT63a1/WtqCEYfsTWn2vBOJs
	SlfmZBQeai95L0jN+w7N7V+D8nQmlZ45ceyvonuk13h9MMMOTimLZR9Z9ewe3M7vEJumRcV/BzE
	=
X-Google-Smtp-Source: AGHT+IGsrYTOb2PD2JGohDV/ptKtX3MqGRXkTOebqNserA61Vhj3HUfH9B2s9Lvg0TULBn9rukjjXg==
X-Received: by 2002:a05:651c:90:b0:2ee:8573:eb51 with SMTP id 38308e7fff4ca-2eeb318878bmr32251741fa.34.1720604903830;
        Wed, 10 Jul 2024 02:48:23 -0700 (PDT)
Message-ID: <8a2f8ed2-28a9-49fb-8c5b-5b0b8e7000d3@suse.com>
Date: Wed, 10 Jul 2024 11:48:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/5] xen/riscv: introduce decode_cause() stuff
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
 <3b93bb33b42cb6e86a38cd95a098e60447666e2e.1719918148.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: <3b93bb33b42cb6e86a38cd95a098e60447666e2e.1719918148.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 13:23, Oleksii Kurochko wrote:
> The patch introduces stuff needed to decode a reason of an
> exception.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Alistair Francis <alistair.francis@wdc.com>

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




From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:50:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:50:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756707.1165414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRTyQ-0001b8-2C; Wed, 10 Jul 2024 09:50:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756707.1165414; Wed, 10 Jul 2024 09: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 1sRTyP-0001b1-Uh; Wed, 10 Jul 2024 09:50:53 +0000
Received: by outflank-mailman (input) for mailman id 756707;
 Wed, 10 Jul 2024 09:50: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRTyP-0001av-5a
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 09:50:53 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e43e5ee7-3ea1-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 11:50:51 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2eaa89464a3so64144691fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 02:50: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
 d2e1a72fcca58-70b43967844sm3423825b3a.98.2024.07.10.02.50.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 02:50: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: e43e5ee7-3ea1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720605051; x=1721209851; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4fYlfeOEJ+BgYnppUstjw7978oNMdiuhy0G2qxMwtq0=;
        b=MUpDMmqzV5YmkJ/Ghrv068oE98o5eVLsh+A53sqXSxhTxjO6EPtjOwKNmbPBBuwDdD
         C9cCaC0kKpq3pKPJrgTrNPZbiibWhrp0cxVYsBV6j9r5geFkvT2P42L17bWkw6Kgm0A8
         vGiMfV/D0prKaNcnJts2AA1J+5IwXTHIiWYco98kUstNhmuMswvWgB6g/Yibgl5Bw2Z+
         Vbs0Wzri2W3CuGz2IO2zaIuTW6hhMB/o5aw7N8c6mVQHq/5sPfTRrVdIf3OdeVbbWLr3
         D3SHp6xjo+R3BhXBNOlBShBkH2lR1e4qi8YdsAu4tHbCkCKm8p6nAOdG9cu74M2+TcKa
         mo7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720605051; x=1721209851;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4fYlfeOEJ+BgYnppUstjw7978oNMdiuhy0G2qxMwtq0=;
        b=tAs7+iMjpPlcWFEj0GpnUbLH1TNzRwr+5EBVFBWykIWFZi6yDVmZ/5rcdRt9c5jI6e
         yWnxPOOgNm+dluce8g6GFpd3/kxb1AN+9xihr/7yErwEyVVsiFB0jUEtzIlOCmmjEHx6
         /KGSxK6LWJgkXbufI7+nyDuozWHe74mWZukfUpRBSQ0yVeOpYpiN+AAqIaylChc5FFpB
         2CU/QElkQdfxbB8Hxjdi8JbDhVrOEnqD/9/22Y3APvhan1Ebtc5pwHka+oYxFl7xMaxd
         j5pSi0wHwYFKC3t3b7kkzgRHx7vVU460r+RdSpzD1Fjp+YWP1SGdFG5fWwIJojpAs4KG
         vC9w==
X-Forwarded-Encrypted: i=1; AJvYcCVVKGq2r/uldMR2oZjIqk40IMe/Cy8QC8I9FC2JxWcGyIU6o2EvSS62FTiiqwG44RICRMsJ0ZBcDTEtM9yPNkUMMLvFwWSUrS++0qiVKLk=
X-Gm-Message-State: AOJu0Yw8bZmMVz6wkJO52UCU4Lb94wQ+piEnhM1zS4ULU+tMNA7QMHNI
	xbxJ0Rwri5CGueENR+I+fBrmEiLQkPSmmaREewqQ+YgSbhpVe5LSMHo4PUZNZg==
X-Google-Smtp-Source: AGHT+IHRL4vo6oSGditJaPmmM9hLQjP1glfP9/Jg9hf1z4p1O6YpGHWrtZaSQSeXTyPzy2qHKmxuWQ==
X-Received: by 2002:a2e:9687:0:b0:2ec:637a:c212 with SMTP id 38308e7fff4ca-2eeb31890b9mr29838241fa.39.1720605050631;
        Wed, 10 Jul 2024 02:50:50 -0700 (PDT)
Message-ID: <35049d21-b08c-4382-8a71-4430c7f209cf@suse.com>
Date: Wed, 10 Jul 2024 11:50:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 3/5] xen/riscv: introduce trap_init()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
 <83b9053330e4dae38e926c99f47d0ef11d9dd31d.1719918148.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: <83b9053330e4dae38e926c99f47d0ef11d9dd31d.1719918148.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 13:23, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/traps.c
> +++ b/xen/arch/riscv/traps.c
> @@ -12,6 +12,18 @@
>  #include <asm/riscv_encoding.h>
>  #include <asm/traps.h>
>  
> +/*
> + * Initialize the trap handling.
> + *
> + * The function is called after MMU is enabled.
> + */
> +void trap_init(void)

It may be deliberate that this isn't __init, but for the present needs it
certainly could be. This is the kind of thing that imo want saying in the
description (which sadly once again is entirely empty).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 09:58:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 09:58:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756715.1165423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRU5X-0002mL-Nt; Wed, 10 Jul 2024 09:58:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756715.1165423; Wed, 10 Jul 2024 09: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 1sRU5X-0002mE-LR; Wed, 10 Jul 2024 09:58:15 +0000
Received: by outflank-mailman (input) for mailman id 756715;
 Wed, 10 Jul 2024 09:58:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRU5W-0002m4-Ju; Wed, 10 Jul 2024 09:58:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRU5W-0006hd-GA; Wed, 10 Jul 2024 09:58:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRU5W-0007bu-6w; Wed, 10 Jul 2024 09:58:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRU5W-0003Go-6I; Wed, 10 Jul 2024 09:58:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=sXxPeq1dvLRHZukPBaNvjwkPC5swd06Vv2oMaf0J9L0=; b=HYnTE3ZAX8CRqamyffZdTT8txS
	nuf5nbA0zt9WEB1xu6GESj1yWow+lKWvmoTEwu5blrFpvIAGPxz92fc/lYfTvAGH7aVPOt+WdC1tG
	PYAoj6fIDTw9uU8PeXkkzZXoaseVuRTJpfVFZhwjkUPjzUYdQiLwF784JmOFqhTQc2T4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186751-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186751: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=497766f70975b9c1f88df42228c79095198f2b4e
X-Osstest-Versions-That:
    ovmf=f91211049c1522f7db2ae8f7a509ac270868d0e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Jul 2024 09:58:14 +0000

flight 186751 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186751/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 497766f70975b9c1f88df42228c79095198f2b4e
baseline version:
 ovmf                 f91211049c1522f7db2ae8f7a509ac270868d0e9

Last test of basis   186746  2024-07-10 02:12:55 Z    0 days
Testing same since   186751  2024-07-10 06:43:17 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Sam Kaynor <Sam.Kaynor@arm.com>
  Stuart Yoder <stuart.yoder@arm.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   f91211049c..497766f709  497766f70975b9c1f88df42228c79095198f2b4e -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 10:01:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 10:01:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756722.1165434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRU8U-0004ZJ-58; Wed, 10 Jul 2024 10:01:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756722.1165434; Wed, 10 Jul 2024 10:01: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 1sRU8U-0004ZC-2a; Wed, 10 Jul 2024 10:01:18 +0000
Received: by outflank-mailman (input) for mailman id 756722;
 Wed, 10 Jul 2024 10:01: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRU8S-0004Z6-To
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 10:01:16 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 57e76163-3ea3-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 12:01:14 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2eaa89464a3so64259541fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 03:01: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-70b54ec730fsm868185b3a.173.2024.07.10.03.01.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 03: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: 57e76163-3ea3-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720605674; x=1721210474; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NIa8MX1cMLGDqXEKBQ3cvHlOcOao6eY0qmi6NjpyPSs=;
        b=Rc5/lQ/Bj4udGkXzS07sgHTUprGOISVyUhTrz9rgOI081zoKhNd+5z+5614rRC2Rz/
         Xw4LET7lHMe8zGRkfUgjStavo/zG/Pb2MV+AraifkAxrH336sWP2bYR+EculWMHrpwSc
         8sruNJtybm/4tTagx2svV1NF1l9MfDXAcS08RSokRpcOE8ljEM9+YJlM1jZMbwoKdf0W
         oOVlF0knRclvaoGfZ4V/3yO7ghtcBTR+PXCo15wIlzvwQa3D9bnAUk43elEMe0T+pb9t
         yzYkPWJz1fwByf7PZsLjOgkIMLDgVXee0H5pQU6hwDoWqtxwDxVg5RAZ3yrVPYfZcMBI
         0xHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720605674; x=1721210474;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NIa8MX1cMLGDqXEKBQ3cvHlOcOao6eY0qmi6NjpyPSs=;
        b=tQkNgq4KVLz6KCN+1abz6rnDAkk248K2ntiUMpRrtt4Qz+EazCXRPRn+pyJCwd77E3
         HmvGFt7ZWJKj/BZ+RzGpDfCiMGuZMPdz6ktCjsXJ7rAxCU4U0xnc1Q3uYV5+k2ZYApoj
         /LurfGTDbcEojwYiqdT5ME2iU8hsZnvFI1/7hTjXLYc3GsntQci1RjVWfbCDGkWpr5vh
         P7PKaGgJseIV+ogOAFHGkMfIDDHKE+/uwnrUsIWvBu/A39QQHHIebjliE1GANpN53wH4
         AqhAQnFyEzQgujmwjZMZ9sfjucAlzrvesmIF4VlfHV9SuRG9r/B7YwrSVdLi/pzLDRNL
         PzJQ==
X-Forwarded-Encrypted: i=1; AJvYcCVdCFHsjLkUHz/7QBBhm9uMadYVsFNokwTdn5SmS5JdTHWrmC1KeOUAG0c2MkIPjUz0iCujeg7gK/+FILCxnCB5z60lyY+u/SiXbhF8PHE=
X-Gm-Message-State: AOJu0YwLTGhj2NvhZvySLblBmVshY++qKaCrj0MI83IVISHCt9KWtXlF
	NZNARR0EXeFmmQMyiIyqTzP4zpVGv8l9TNol79Znih+z326S5MrLCXaHFJ5n1z4F4OktF3k3xLY
	=
X-Google-Smtp-Source: AGHT+IFNdEjKYx9fVk5Y06UriIlyQZU5ZT5QGOPdNzvI45o3yC9sm+bE8dueS8T49uvaFDHwh0D0KA==
X-Received: by 2002:a2e:a581:0:b0:2ee:8453:5164 with SMTP id 38308e7fff4ca-2eeb304eec9mr43206421fa.0.1720605671789;
        Wed, 10 Jul 2024 03:01:11 -0700 (PDT)
Message-ID: <ca373d42-22f1-41a2-bdbb-4733145c635a@suse.com>
Date: Wed, 10 Jul 2024 12:01:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 4/5] xen/riscv: enable GENERIC_BUG_FRAME
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
 <c51c485bac43b7589961aabec8af1b82d4673b94.1719918148.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: <c51c485bac43b7589961aabec8af1b82d4673b94.1719918148.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 13:23, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  xen/arch/riscv/Kconfig |  1 +
>  xen/arch/riscv/traps.c | 31 +++++++++++++++++++++++++++++++
>  xen/common/bug.c       |  1 +
>  3 files changed, 33 insertions(+)
> 
> diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
> index b4b354a778..74ad019fe7 100644
> --- a/xen/arch/riscv/Kconfig
> +++ b/xen/arch/riscv/Kconfig
> @@ -5,6 +5,7 @@ config RISCV
>  config RISCV_64
>  	def_bool y
>  	select 64BIT
> +	select GENERIC_BUG_FRAME

Any particular reason to put this here, and not higher up with RISCV?

> @@ -101,8 +102,38 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
>      die();
>  }
>  
> +static bool is_valid_bug_insn(uint32_t insn)
> +{
> +    return insn == BUG_INSN_32 ||
> +           (insn & COMPRESSED_INSN_MASK) == BUG_INSN_16;
> +}
> +
> +/* Should be used only on Xen code */
> +static uint32_t read_instr(unsigned long pc)
> +{
> +    uint16_t instr16 = *(uint16_t *)pc;
> +
> +    ASSERT(is_kernel_text(pc + 1) || is_kernel_inittext(pc + 1));
> +
> +    if ( GET_INSN_LENGTH(instr16) == 2 )
> +        return instr16;
> +
> +    ASSERT(is_kernel_text(pc + 3) || is_kernel_inittext(pc + 3));
> +
> +    return *(uint32_t *)pc;
> +}

Related to the point made further down: If either of these assertions fails,
won't we come back again right here? If either of the is_kernel_*text()
wasn't working quite right, wouldn't we be at risk of entering an infinite
loop (presumably not quite infinite because of the stack overflowing at some
point)?

>  void do_trap(struct cpu_user_regs *cpu_regs)
>  {
> +    register_t pc = cpu_regs->sepc;
> +    uint32_t instr = read_instr(pc);
> +
> +    if ( ( is_valid_bug_insn(instr) ) && ( do_bug_frame(cpu_regs, pc) >= 0 ) )

No consideration of the kind of exception? I'd expect it is one very
specific one which the BUG insn would raise, and then there's no point
fetching the insn when it's a different kind of exception.

Further, nit: Certainly no need for the parentheses on the lhs of the &&.
Having them on the rhs is a matter of taste, so okay, but then the
blanks immediately inside will want dropping.


> --- a/xen/common/bug.c
> +++ b/xen/common/bug.c
> @@ -1,6 +1,7 @@
>  #include <xen/bug.h>
>  #include <xen/errno.h>
>  #include <xen/kernel.h>
> +#include <xen/lib.h>
>  #include <xen/livepatch.h>
>  #include <xen/string.h>
>  #include <xen/types.h>

Unrelated change? Or did you simply forget to mention in the description
why it's needed?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 10:06:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 10:06:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756729.1165444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUDV-0005CH-Nx; Wed, 10 Jul 2024 10:06:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756729.1165444; Wed, 10 Jul 2024 10:06: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 1sRUDV-0005CA-L8; Wed, 10 Jul 2024 10:06:29 +0000
Received: by outflank-mailman (input) for mailman id 756729;
 Wed, 10 Jul 2024 10:06: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRUDU-0005Ab-B3
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 10:06:28 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 12606ea9-3ea4-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 12:06:27 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a77e392f59fso476655666b.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 03:06: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
 d9443c01a7336-1fbb6ab7d9csm30068935ad.157.2024.07.10.03.06.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 03:06: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: 12606ea9-3ea4-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720605987; x=1721210787; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=btjSNm5FN0TsaOi2KgoyCCNuDTHHlVE7dy4Ew46xS2E=;
        b=CrTuSSJb2ouC8HKW11fGiXJHUu/KdKlY7OWcyFZRdNdIp87IPFVy+rnyx2fNYSj9jB
         Ga5FMvYRIqLdZ+yQD0NteuLznadUvTrEPoJwZKnL2B/HIuTjHskd1BzYi+OhHvTOb5rl
         p3U8643/eDgCtdUDQ4oezSNZX/7OdWtA5kWYKlSfotVNosP9GZVyjJEQLyQ7qAvbtU5j
         gxbQCuyDRb55O2n3cjrN+9+TP5KN9nkFexrZ7xK2DBw1ZITX2QOn+y+NYQumfZ/QkFLp
         HQZSSfnOGfjyPvulaplZhOFeRiiipDyI+fQGxRSRnUD/X7My4jqHD8XnZ3blDsG3z3GX
         NA0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720605987; x=1721210787;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=btjSNm5FN0TsaOi2KgoyCCNuDTHHlVE7dy4Ew46xS2E=;
        b=gQ3WMYzQJez7Mg6m0rKh4pTGofIQ+y1H0gQyRJk2uLmiO7vVr1SvujGUZ8/zoWYzwM
         CzEzjdgHAIphOJJxMKgKGGmCCVi5HfIS3tq/FedxlirfqE4oLDK1FXEY2e+zh/sSprky
         FC60v7aZX+6CiKpwVnPZiFMhD0L6R6avBp8PRzhN/wQEAq4yZAoVCF9EW0yXarMFmybk
         plrBZKsf3d+jZAS5MKPtAlBw6cR4H1eR3KivAMx2xQhx6Sg3pZGb9x1CgOGkqvkvUY9J
         hU8fcx6klN6jLSx1F2ExSbKbZBDEpzMFMPblfDXYrnZYYIKVLg3UG8QxsofYm1g0MEYE
         DFmQ==
X-Forwarded-Encrypted: i=1; AJvYcCXb2KmuoD8+0BDWLYDwfYWQsmQzAI30j+jWWobCH5kHd6nFp5Omhuu2bmlgrs477u4q5t6AUMLiU5toGf1ORQ0Q3Ppkl2P1JNEbyWg3TTg=
X-Gm-Message-State: AOJu0YxnvaxocnWvmEVp23hHSIpS7BjvcbGPzJDnj20KYlxcrZvBIrlb
	2+Ti7DGsYiNViWAP225cVDJUzu5J8YEDX0O08Kk5T3yyyQXWqWnrfsfbnKnzzg==
X-Google-Smtp-Source: AGHT+IFReCUuAYRz9PtOf8a28JcPRmNoXktsOIqdMhgZN2vAA23E45u/Lq8zdkYeNTZK6IEq3gSFOA==
X-Received: by 2002:a17:906:c00f:b0:a6f:cf64:a5d9 with SMTP id a640c23a62f3a-a780b885722mr283180266b.49.1720605987038;
        Wed, 10 Jul 2024 03:06:27 -0700 (PDT)
Message-ID: <48dcb83f-3314-4091-9e57-9f757d7bc9db@suse.com>
Date: Wed, 10 Jul 2024 12:06:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 5/5] xen/riscv: test basic handling stuff
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
 <62cce91351f00f80cb1c7701906e2d8cd3301ec1.1719918148.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: <62cce91351f00f80cb1c7701906e2d8cd3301ec1.1719918148.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.07.2024 13:23, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Alistair Francis <alistair.francis@wdc.com>
> ---
>  xen/arch/riscv/setup.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
> index a6a29a1508..4f06203b46 100644
> --- a/xen/arch/riscv/setup.c
> +++ b/xen/arch/riscv/setup.c
> @@ -19,6 +19,20 @@ void arch_get_xen_caps(xen_capabilities_info_t *info)
>  unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
>      __aligned(STACK_SIZE);
>  
> +static void test_run_in_exception(const struct cpu_user_regs *regs)
> +{
> +    printk("If you see this message, ");
> +    printk("run_in_exception_handler is most likely working\n");
> +}
> +
> +static void test_macros_from_bug_h(void)
> +{
> +    run_in_exception_handler(test_run_in_exception);
> +    WARN();
> +    printk("If you see this message, ");
> +    printk("WARN is most likely working\n");
> +}

While for the moment this may be okay, in the longer run WARN() will cause
quite a bit of output that you don't want on every boot. The further plans
here will want mentioning in the description.

Additionally as part of re-basing I think you would have wanted to put this
under the (relatively new) SELF_TESTS Kconfig control.

Jan

> @@ -26,6 +40,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>  
>      trap_init();
>  
> +    test_macros_from_bug_h();
> +
>      printk("All set up\n");
>  
>      for ( ;; )



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 10:07:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 10:07:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756734.1165453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUEd-0005vS-1W; Wed, 10 Jul 2024 10:07:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756734.1165453; Wed, 10 Jul 2024 10: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 1sRUEc-0005vL-V4; Wed, 10 Jul 2024 10:07:38 +0000
Received: by outflank-mailman (input) for mailman id 756734;
 Wed, 10 Jul 2024 10:07: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRUEa-0005v3-Qe
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 10:07:36 +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 3afbabd6-3ea4-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 12:07:35 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-59559ea9cfdso1913699a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 03:07: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-1fbb6a12cdbsm30040885ad.48.2024.07.10.03.07.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 03:07:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3afbabd6-3ea4-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720606055; x=1721210855; 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=VmB5VlrCruBNMysU/eqgV5A8vtRMzARwEOGBkE7ZyQE=;
        b=BCijzPEd4kRSvRIAWoqzIYUWEICZ9X67c/pAWdznf5yXU8cFArNIKfno9z9qYWmbxr
         CC9ND9SNtqm77d9RcVssBeFV9kLQ77Ugs9b0yPmsYXHgd3ayvHmQXfBpxRv78jMZdZ+i
         ts6TKZiRywJO2ZiH7bZJNNsJFOzgg5rfDknW1LJ7d+WKP1kf4dBMEUN0dsry4i2qxz/T
         A3Vpdd7u5GyXGIKk9WP520Ba4v3YkhD07FCoRbYldOpbeJDvRlZy4RuobPGvs3vvJCm1
         AnyI94ogX0HnCOrHuRIhdmnRBz0jEXHoDWdTiEmtdJ7kbZB04U74CZ3LEOh0RlwGQpc3
         XyEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720606055; x=1721210855;
        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=VmB5VlrCruBNMysU/eqgV5A8vtRMzARwEOGBkE7ZyQE=;
        b=gcoRQP2LuBh/CUL1P+NBaZA4UVl0pa9SzGjMNLXE7iK5nIIHtQhEUNThanuODA3RVh
         kZQFp7bkaPpUE0j5Ey8NTDE4Q1aH2Wbzi7xeLFQDs08xyNEF7wdg9LSM412ya5ZDOiGB
         I2xI4tyMzQM+wZSPsnlUoxL/FYXkVU7QveURENzz0wKHWTUBMu/aZbAXOGKKz+xVrHUm
         xpERF9VYT9DcqybN7mVGyeaAmLSaQI6IXP2UxjjQpISI4jEfajtb9NkSlnULnK879eGo
         l6cFmVVp69rAyqvj0eeWdfEbukRq9RNnq4Dk5FOM7WOcWfzZqqE9e8mNvAIPKIQ+vU1S
         +ZcQ==
X-Forwarded-Encrypted: i=1; AJvYcCV7MpDea8143v1D5VtfdvMMzdAwfZDcWtw6VaLnGPStYpQ/86kyPEhcVwv/Ly93+uqjC46cIdaUZWl7tMGo4nTjJFzFi4pMQgI4FmZ5gu8=
X-Gm-Message-State: AOJu0YwEAXn/iREloiTrnm0nhvHH0U2TybCLsmnj6oa5gJbFn6QrA6kU
	92J3+cYi6VvyX0OHGQOUjbcn3AS5hN9CEK8eGJVE/MV5nK9odZJ8Ux7hkqcsQg==
X-Google-Smtp-Source: AGHT+IEnO9ZITpKf0zKDZxK01fT7aGNwd2exsHYAD1jWYtmIjNShumFAhX50SzYeqyKZb4e1RExfoQ==
X-Received: by 2002:a17:906:1610:b0:a72:aeff:dfed with SMTP id a640c23a62f3a-a780b8826b7mr376603466b.53.1720606055111;
        Wed, 10 Jul 2024 03:07:35 -0700 (PDT)
Message-ID: <ad1b1b09-faca-4dc1-997a-a0fd56a6781a@suse.com>
Date: Wed, 10 Jul 2024 12:07:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 5/5] xen/riscv: test basic handling stuff
From: Jan Beulich <jbeulich@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
 <62cce91351f00f80cb1c7701906e2d8cd3301ec1.1719918148.git.oleksii.kurochko@gmail.com>
 <48dcb83f-3314-4091-9e57-9f757d7bc9db@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: <48dcb83f-3314-4091-9e57-9f757d7bc9db@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.07.2024 12:06, Jan Beulich wrote:
> On 02.07.2024 13:23, Oleksii Kurochko wrote:
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Acked-by: Alistair Francis <alistair.francis@wdc.com>
>> ---
>>  xen/arch/riscv/setup.c | 16 ++++++++++++++++
>>  1 file changed, 16 insertions(+)
>>
>> diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
>> index a6a29a1508..4f06203b46 100644
>> --- a/xen/arch/riscv/setup.c
>> +++ b/xen/arch/riscv/setup.c
>> @@ -19,6 +19,20 @@ void arch_get_xen_caps(xen_capabilities_info_t *info)
>>  unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
>>      __aligned(STACK_SIZE);
>>  
>> +static void test_run_in_exception(const struct cpu_user_regs *regs)
>> +{
>> +    printk("If you see this message, ");
>> +    printk("run_in_exception_handler is most likely working\n");
>> +}
>> +
>> +static void test_macros_from_bug_h(void)
>> +{
>> +    run_in_exception_handler(test_run_in_exception);
>> +    WARN();
>> +    printk("If you see this message, ");
>> +    printk("WARN is most likely working\n");
>> +}
> 
> While for the moment this may be okay, in the longer run WARN() will cause
> quite a bit of output that you don't want on every boot. The further plans
> here will want mentioning in the description.
> 
> Additionally as part of re-basing I think you would have wanted to put this
> under the (relatively new) SELF_TESTS Kconfig control.

Oh, and: Is it possible there's a word ("exception"?) missing from the title?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 10:11:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 10:11:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756743.1165464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUI7-0007vV-JH; Wed, 10 Jul 2024 10:11:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756743.1165464; Wed, 10 Jul 2024 10: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 1sRUI7-0007vO-GY; Wed, 10 Jul 2024 10:11:15 +0000
Received: by outflank-mailman (input) for mailman id 756743;
 Wed, 10 Jul 2024 10:11: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=O6Uk=OK=epam.com=prvs=39211ffd58=sergiy_kibrik@srs-se1.protection.inumbo.net>)
 id 1sRUI6-0007vI-Ai
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 10:11:14 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bbdf0fb4-3ea4-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 12:11:12 +0200 (CEST)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46A8JSMP013655;
 Wed, 10 Jul 2024 10:10:58 GMT
Received: from duzpr83cu001.outbound.protection.outlook.com
 (mail-northeuropeazlp17013011.outbound.protection.outlook.com [40.93.64.11])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 40943smn1s-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 10 Jul 2024 10:10:58 +0000 (GMT)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by AS2PR03MB8769.eurprd03.prod.outlook.com (2603:10a6:20b:550::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.20; Wed, 10 Jul
 2024 10:10:54 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024
 10:10: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: bbdf0fb4-3ea4-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Z2ifTAd6GsYr0UjpBSZX2i3JU7CCXxV6bJddOCNth5CceLIPgkyYVKNxllB6I2pog3aPmo3jAqIu00Y1aMAxFYIk9Ycq9/5wkFFM8VMpNaG0icpJzrQCHJWW/4fSQtzKLaG6plb6H43WQ+uaqxuxs6GczfmntC18T5j5Qt/RF3HkeIY3oRZuk+ZI1JwXyIceIKt4rda0eb+021S3h5vFzo8Mq8WAcpXZt0PEk+HLUdD6+9NfaW0UUM+j8MbI3cQQH2kojW4M4RZRsKHZIFg37VcBNUaN2vCYgtV8gINRaJfqbYvB2z4Sl1AXjrsBrWbxpCyqmxHWOXrjQbKtYjM+bA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ERDALx3/dNAIti2FoW9con7z9jmPBqC88euLxc/I3BM=;
 b=f+Om5fRIm21PQIOt9nPrgvGA1PcCNJerUW7z5khnNY8ogIrrC9HN5ssr2H3P2wydIMLTbe0EOFM9WX5kfMNA2ODgmSk+KxN7TdjXYBUbLZ5B/TU7edXpgAX+HwEET3VPSlIQKt/k4DiWFUBxsH4CY9/rA4mvOjyKvihGvJnkIZ/7W2cuq0wZgYtw8Xqmb6HBAxxNdZEJtx03geNS/gxtoFiC+5jZtbF1yrPkoCJQnISGUb/7hV2Z0qgYVg2CHwOhUyOQr4NcJlhvJFmNmCUv87yN1bLn6MqZ/NlFYkp2Hq0hxzpnSdnDGQtoQzBFEVclDyWgTJ966t1Rn+Wvw/ZwuA==
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=ERDALx3/dNAIti2FoW9con7z9jmPBqC88euLxc/I3BM=;
 b=qWBhTWobgcnamB50r1PxawN99JajPL4crRjCKbxbv4iNoK2hvzVV2PMa0nmHIsW5Nic9aiQMY4AfSV+dx6b8uxGtH+IVdCEARRDVwFUCFCDeMaaq9vFy7tCpxZpSBZxA9KHIdM8c28QuQn07SwWs4J26NKlO42rRDGa5eleHh6ijhz+d/3N4H022UgGl8yalBv2HKkIWI3FJuaefluYyFhJVPHOaWoSmfqLKiLl7M20YSThdACSQ6jGfhV+kpvUvbJBFBcNo3HCEML/68wPSU8HoG9BXyzXOwpbyNBnuYXZQrR3Yob5bLiWQGQFx8hyyHC8JGdIvD+CrUBQjYlYfqQ==
Message-ID: <6fc22816-5f2c-4f87-a86b-09363f254e05@epam.com>
Date: Wed, 10 Jul 2024 13:10:51 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 12/14] x86/ioreq: guard VIO_realmode_completion
 with CONFIG_VMX
To: Jan Beulich <jbeulich@suse.com>
Cc: Xenia Ragiadakou <burzalodowa@gmail.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>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
        Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
        Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <e6e0f30ea69ecfed4d8de531fc42162162b3f6e5.1720501197.git.Sergiy_Kibrik@epam.com>
 <5fad5c8e-a7f0-4536-86ea-b74a3116d122@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <5fad5c8e-a7f0-4536-86ea-b74a3116d122@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0003.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::7) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|AS2PR03MB8769:EE_
X-MS-Office365-Filtering-Correlation-Id: d3fa95ca-7389-485a-e901-08dca0c895b3
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|1800799024|366016;
X-Microsoft-Antispam-Message-Info: 
	=?utf-8?B?L2R5S3JDVm40bXVZR0w1eDNkU0F2b3RWaTM4ajNidURvaUVPa1pzOUdadlcr?=
 =?utf-8?B?QVhxUEJFVXBTVnJuWmI4TWtWWDJtMGtBaUZUeDUzczAzUDRvb1hDRUhCUDhS?=
 =?utf-8?B?cVU4d0RGWlg1Q0pVQVlrSzl3bXVOdFZnYlRkTHUzdDVLa0gvUWxWUjRZTDY1?=
 =?utf-8?B?WS9QUjdzMGpBV2xMcExPM04rTWJEMDdQbGJtRHpYUjBsRUVTRUoyZEs5ci82?=
 =?utf-8?B?ZkhTZ3pGSHJ5bURLMTRzTko4MkhlTE9haVAxOGtGTEJJQ3ZhVU9GMldHRVVk?=
 =?utf-8?B?TU9adVJyUnJCY1ZFNFhINzUxbERDN1A3MnhNOG9LelM3NmZaL0ZoWnRsVm9a?=
 =?utf-8?B?YjBZVjl6a2JKdTJBOTFOMi9TazNudi92eUxxbkJFYll3NnpZOXJDajhGUUFJ?=
 =?utf-8?B?NEFsdUtNSnM0eHVnUlBzdytNV0p3NDdNSFlYNTdNR1MwSW5DSGZVV2tvMnZh?=
 =?utf-8?B?Z0xoWFo5Rmk4NFZaTllobEkyb0tsQ0taUzk0c1F3TzRBWnN6bWloVWlFUlA4?=
 =?utf-8?B?d1dCZ3dCMEh1WkRJSVpJRGRQQnVNZmlNdkpTMnFIdUVBbW5EUy9FYldOd1Fj?=
 =?utf-8?B?cUtpZ0p1TVhpTnVSTXYxTnBSRkp3N005WXY1MmlXUDdEZVBUMUR6QVBjRFph?=
 =?utf-8?B?bVBKL2FxeEhrZzQyVXNDNjFIcy9Mbm13RFZOdHhxUUJOTHBGdVNkTlo4Nzk0?=
 =?utf-8?B?elAyd1EyTG9PaVg2TDBpQ3YrMDQ4MWNOVHV5ZXk0dEQ5b2dnWUtOazVuRlY5?=
 =?utf-8?B?eG4wU1lHRVg0TGhXWjNId3hhNUlCN25VTXFzS3c4Mld1UkpWRXVsSmxJb0VV?=
 =?utf-8?B?VmNuQ25GQ01XckNsMUFZQjdXVnFwTHppcE55OENadkdZdkxveEVmZEhFN2FR?=
 =?utf-8?B?a0djdkFjeVBFdjVMaDREUjYvci9ua3NnQmZmOVdNMmZpbjY1STlQQlJwZFlt?=
 =?utf-8?B?RldWZDV5b2MyR2hPVmlqTnpVN1h6MDk4MW1oUElOS2hyNWxNdGFXRnd0R2d3?=
 =?utf-8?B?cGVoRXVsWURqRGJVMWlTWnlRS2lMbWVNVk9DUkJsa241emZKWGIwdHNaeEd3?=
 =?utf-8?B?Rkt2K2VmTnhEN0hXR1dCZ1FwSU13bEY1dzJ1Y2pONFJmMXZGVEtvUTlhbDFo?=
 =?utf-8?B?YmJkWDdMczZWanR3RmxnOWFUSEQyb1ZiSzlGRDBsbUN3RVB1TjlleVp5SzFC?=
 =?utf-8?B?TnZvSWlyY3h4K3hIbVpzZkV3L0VTY1FCNVNnT3JQZjJsS3dBMGNRUnJCdnk0?=
 =?utf-8?B?R21qU1JhVlUxOW0rOVBxcHc3OHNmUEJoa3dvSTM3OS92WW9yT29ucFVoT0JL?=
 =?utf-8?B?cDJ2cTJPT3FEZ2kwTjBDYUpkUmdSdW9WbnFXd2QwUWNUbjEvY2xWNFBjU2dV?=
 =?utf-8?B?SjdodWRNak5Ja3U2Tm9qeVBZVW1rOGErcVlla0ptVHdTNXowQkt5cVEwTjVv?=
 =?utf-8?B?M2VXdWRsYzBWU1lTK3ludHB0cnBSNkR2QUxLWkdBMVUwazJZczBNZllsemxw?=
 =?utf-8?B?bkFOa1dIanZBVDNlclY3MjhEN29zaWZHVUZEbXBrcmJIRFd2Z2ZLMHlLdGlt?=
 =?utf-8?B?KzVlNHhud3BQelJRZHl6RkpQMFM0a0pGcTBTUExyV0I0dmE4N3ZWWElQWHVW?=
 =?utf-8?B?ci8zZklTUTJHT2JyelJkUjdjbkkvY2Q4NnJpOFMyWnNUMHd6TUZnNDJSeDZh?=
 =?utf-8?B?OWJLckxlUEZXc1NieWZkOXNFOGlub3F4RGI2YUlodDk2M0UyNUdFckduNEFm?=
 =?utf-8?B?M3J5QXV6d0tWUTVOTkNOWGwzN1JYWFVaNjUyZGluanM2U2EzcENhdWIyb0Fz?=
 =?utf-8?B?NTkvUXEwY3hYK2Jvc0FnUT09?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?ZExvK2MrbngxVDQwdjRjSTFDdnZLeGZEclhJUFkvYm5IamVEVEF6alI2Rzcw?=
 =?utf-8?B?NUIxeExjUmM0ZkJiRm02LzdubWNzT3g4VUJlY2xiM2luS0ZWenh5RjlXR0JN?=
 =?utf-8?B?ODZCYVU2MmNPRmtrMFl5TmVSelMrUmlSKzBCM1JaRWRwc2FLVm1Gb2ZhYld2?=
 =?utf-8?B?cGphRDhqczEweXFoNWo3L0wyNmtKYmw1RXhwM3E5YjNXOGV5OHROcFArMGQz?=
 =?utf-8?B?Skk5NVdTeVQ5SFVDdlJzSDVnemtZR0Z2eVo5V1NSVWxsVStnY0tFMDlpNlg3?=
 =?utf-8?B?anlkQzMzYzl3M2MrVGFoMHV5RzBKMXA4SU1aQW0yb3ZqWGdxVFA2Uk9Qd04v?=
 =?utf-8?B?VWxrUDM4K2JaQXpuU3FqWGVoZ1FQWG5QNDhSSkxYNVN0aEhYaXlMUDFPVUEv?=
 =?utf-8?B?UHk2YVZtS1p3Y0JCQTlZeGZ5ZlZoRG9nMEZwbStzQmhIQUhDVzU1SnBIS2VU?=
 =?utf-8?B?bU9Xak13dkhPazN4RkxkRUcySS92NUU4ZzBVV00ra0lFODZUSjhsRkJWSzIv?=
 =?utf-8?B?STNOOXUvaFVvUm10V3Q0K0xkL1RBT24wdG16OGFTQW0vQ2V4Ly9sNW0xZ3pm?=
 =?utf-8?B?cWx2b2lWV0N5YmVvZkNSU0NubnZLcUxyczhRMmlDMG5OcXdHTS9WSEpmeXEr?=
 =?utf-8?B?UzV0dlJDKzNHVG9wUitiR2NOcGVFQng3YTIrMm5JR3M3TlpRcitkL2hjZENn?=
 =?utf-8?B?aXpTTmdNS0FUejIzK09zNlBnTTJ6SWVwNWg2UDE3bVZRT1lGeXhvYU11RHhH?=
 =?utf-8?B?cWkrQzhEQ3BoK2lWNExrTCtDMWxqMVNRODI1NVdqeGw0emRYZUc3a1NtUzNI?=
 =?utf-8?B?SjlHaVVzOUhSZ3NJckttSENYVStoOEx6eXFyK04yYnNLTnZBZ0FCWTJuV0tK?=
 =?utf-8?B?WTlFL1RZMTZxaW9yUDIyYU92SWFXSGVobXhneWNvWmxZUWt5aGJoQlZnWm80?=
 =?utf-8?B?Yy9nKy8rSjk4T3VXVzNOUW1VZjVaR2ppVTR2R2NWbG50NHBHQkhTNXAzZzFY?=
 =?utf-8?B?bUFabncrenJUdTBWSHltL3N3U0x4NGlvbm43clRMNEVlZHRNaEZIL09tTTVw?=
 =?utf-8?B?R1ZmMjR3SHhXcE8wbDVBSEVFZjNiVjd2OEFTZmdMK1VhWGZwdGM0dTNJRUo3?=
 =?utf-8?B?U012Ly9OSThPK2E2a2pVSlZIUEJnYml6WmFuM3NkUy9Xc1krbG83Q0xldmdI?=
 =?utf-8?B?Z3d2Tk1Ic1JTQ0s2SE9sSjFKSXlBWVBZeC9TVDBjaXFiVDhFQXRZd21SblEx?=
 =?utf-8?B?Y0dSTW9SeGxQV0JYUTBmZTRESjQ4cDBtdTJNSFF2OHJPaXgyeE1kTkRCWnJo?=
 =?utf-8?B?bHhpU0dCaEZCL2E4UEV2ZW5IcUc1NWZrMm5yRGZkR01CenNQamNvd1NCVGl4?=
 =?utf-8?B?SExJMGs1aVliWHVZRmd6M0tVdUlCNjBVMmtKNVczM0h1LzdoWDhQUTBnUmN2?=
 =?utf-8?B?TlNXLzd4WGVwVzRwZis2Q01lYnhwUThpWU56SUJhVHhkbU9tTzlTWCtWT0wx?=
 =?utf-8?B?ZlpzS1NoeE1MT3ZCM3gwT2dyS1RCbmdjbG5Wak1rY1hERjhPcldmTVppajBW?=
 =?utf-8?B?cEdIMGxaMXBkM1VkWXJ3RTRQN3k1ZHlxcTJZNjBXUTdGS3owdU5ONXg1Mklq?=
 =?utf-8?B?RjN1ZitrNkNsNVZRK3lsZzdydmYremRDYVNob2t3alZramVlaGU5U0hwR3JB?=
 =?utf-8?B?aE5iZkl4M1ZvRmxNN3VlSGNxSUt4WktEMHkwa3dGa0Q5a1JKdk5WS3hKNzZK?=
 =?utf-8?B?Y21YdW5mRkc2cWNuZDQ1UzdGcUxWUmM3VFlOWFArMlRYaWUwbG81WFlFUVZY?=
 =?utf-8?B?V1V5bFZzcXhNM2FCZEgyUVlhUVlCTzdJSjZkVWhOMDBsUVl2cWdhOUgrWGZG?=
 =?utf-8?B?RU1YeDZOVkJwNXc3NC9QRU9ZVVhBd3ZXcStsUm1sMmN5M25XQ0t2cTFZY1RI?=
 =?utf-8?B?SllPTXROTzQwWkowNG1XRG1tWFZHbnJiZFA1cHY5YjZJR3BxVG80Zkd3UTNa?=
 =?utf-8?B?MkxFZHp5eUk2SVg3ejdmTmJHclArVU95OHNzVXhXNDE1cHFZWS95c29HY0ZV?=
 =?utf-8?B?R3FnV0N5RjBCQThWeWNhUTVWc05Rdk5xcFBTbFhVMWRBa1dTN1hwVDF5NUdQ?=
 =?utf-8?Q?QYsjDcU/NN84jdFzPGgyb62Og?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d3fa95ca-7389-485a-e901-08dca0c895b3
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 10:10:54.7022
 (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: B0ck9L3Y+jlbm3jQBT8kCxP4tsE6oD9LDVSaFE/VD0XF/1J1SjfffnF8uwkr/WYoZwcC4Jp1n7lDhgyoyvYIVw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB8769
X-Proofpoint-GUID: gKzILvDHJLoA-fttwEaI9mG-pDWcpALM
X-Proofpoint-ORIG-GUID: gKzILvDHJLoA-fttwEaI9mG-pDWcpALM
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-10_06,2024-07-09_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 mlxscore=0
 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 impostorscore=0
 clxscore=1011 mlxlogscore=999 priorityscore=1501 bulkscore=0
 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2406140001 definitions=main-2407100069

09.07.24 10:28, Jan Beulich:
> On 09.07.2024 08:09, Sergiy Kibrik wrote:
>> --- a/xen/arch/x86/include/asm/hvm/ioreq.h
>> +++ b/xen/arch/x86/include/asm/hvm/ioreq.h
>> @@ -13,6 +13,11 @@
>>   #define IOREQ_STATUS_UNHANDLED   X86EMUL_UNHANDLEABLE
>>   #define IOREQ_STATUS_RETRY       X86EMUL_RETRY
>>   
>> +#ifdef CONFIG_VMX
>> +bool arch_vcpu_ioreq_completion(enum vio_completion completion);
>> +#define arch_vcpu_ioreq_completion
>> +#endif
> 
> Putting the (or some kind of) #define here is certainly fine, but moving ...
> 
>> --- a/xen/include/xen/ioreq.h
>> +++ b/xen/include/xen/ioreq.h
>> @@ -111,7 +111,6 @@ void ioreq_domain_init(struct domain *d);
>>   int ioreq_server_dm_op(struct xen_dm_op *op, struct domain *d, bool *const_op);
>>   
>>   bool arch_ioreq_complete_mmio(void);
>> -bool arch_vcpu_ioreq_completion(enum vio_completion completion);
>>   int arch_ioreq_server_map_pages(struct ioreq_server *s);
>>   void arch_ioreq_server_unmap_pages(struct ioreq_server *s);
>>   void arch_ioreq_server_enable(struct ioreq_server *s);
> 
> ... the declaration from here requires that all architectures wanting to
> implement the function need to have identical copies. That's unnecessary
> risk of going out of sync.
> 
> As to the #define itself: It expanding to nothing means the call site
> de-generates to
> 
> #ifdef arch_vcpu_ioreq_completion
>          res = (completion);
> #else
> 
> which hardly is what is meant (despite compiling fine, and it likely
> only being Eclair which would then tell us about the issue). Further
> there you're also removing a blank line, I don't see why you're doing
> that.
> 

looking through these changes once again I wonder why can't we just move 
stub to the header like this:

in xen/include/xen/ioreq.h:

#ifdef arch_vcpu_ioreq_completion

#ifdef CONFIG_VMX
bool arch_vcpu_ioreq_completion(enum vio_completion completion);
#else
static inline bool arch_vcpu_ioreq_completion(enum vio_completion 
completion)
{
     ASSERT_UNREACHABLE();
     return true;
}
#endif


and avoid additional pre-processor variables & conditionals, because it 
looks like we do need some kind of stub that does ASSERT_UNREACHABLE() 
anyway.

   -Sergiy


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 10:20:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 10:20:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756752.1165474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUQW-0000y8-DQ; Wed, 10 Jul 2024 10:19:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756752.1165474; Wed, 10 Jul 2024 10:19: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 1sRUQW-0000y1-AS; Wed, 10 Jul 2024 10:19:56 +0000
Received: by outflank-mailman (input) for mailman id 756752;
 Wed, 10 Jul 2024 10: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRUQV-0000xv-MN
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 10:19:55 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3748a28-3ea5-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 12:19:54 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2ee91d9cb71so59219881fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 03:19: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-2c99a950c37sm11593321a91.13.2024.07.10.03.19.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 03:19: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: f3748a28-3ea5-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720606794; x=1721211594; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=B4cmyMoROnRR9fkloJzFXqgLrlcsrVQKRMto3oyCunE=;
        b=GLF990DvIBI8oTAWxyDPQIyAZHqv5WazOepasBZPCbYPV3ehl4HdUOWP6xOcknnO6c
         x5zoZDSlTbFp7lnA/J7HiF2ijq2BqjSR6MAcbWOyLokrpTYJ4LVyPaVPTNTIDqYGvKyW
         OrgwzyBCQxD6BLChzOtAZCgibBYtdaxLil1IgmRzCgIN7KU7tebr6aL/iDESNEm57jvt
         h6xxAUXzEDWYsHlVU/RdT5BlDg7WXnXiIrcN6yBdIWm4lXAD208OYLgXfvVSZiLp1bdH
         IwGeIGN3W89Xb+r4NuQBvwiApFM18rX5xXkpOn7xh48ssKC/K1H+XVfBsrPbm75lGM+V
         qczQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720606794; x=1721211594;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B4cmyMoROnRR9fkloJzFXqgLrlcsrVQKRMto3oyCunE=;
        b=e32EQLiVE0bGqakyZcUUYpnyrgnbBWjyVLaz75kZafotE73ojmLCIAr9eqAMU9CJJ6
         Tk1AWbWvhPHhZLCn/aNZ/D0Q8J6keMQdMduxUeLdyiaUEE3KjkhI3ArP4Rr8dWX66VFA
         bArLM+J4RrAjbpUQu9g+TdHvUoZFd/YEB/lr2Gw1yT/jF73Gc07v/qByUbCi1DNDvE9x
         e0wXXq6sjQyvgwdj+mxMDi8otLY/jCA9iPWgKvS+/bHTNhxR7oBYbayEfbp5ioCdchFM
         rAjGmOkKD9lQHmuoQvUJHTUJevYMQEGzYkpnfApFTEiTvebPstqloRdISbTvr9JcrktL
         18Ag==
X-Forwarded-Encrypted: i=1; AJvYcCVQPgYlqev47UayZssx2vxMuIeHXiqMTo5gGxhd5Ks5kkd930l3bqqvDVXQjzPl6bEBomiM0/mnXZwh6mzDGPVp95uifwsgAP6h20yzHQQ=
X-Gm-Message-State: AOJu0YwRRByBDrOTrwVrM1HN9gBKa+FqybD3LEAJq1TdJLDkAjUJNT47
	R2MtXK2Pqo6slPwGo42AkejgzFq4sJ3p40H8ScT1eqaksL8sh3aX7gck3YhJQg==
X-Google-Smtp-Source: AGHT+IFXw+ROq86/aid7dam6dBHFUsYG9U12STXq602WBMAkg/TzAi9P4JLP3TunEQkrLgm27uOpJQ==
X-Received: by 2002:a2e:9a92:0:b0:2ed:136b:755b with SMTP id 38308e7fff4ca-2eeb318b5e9mr34836001fa.53.1720606794207;
        Wed, 10 Jul 2024 03:19:54 -0700 (PDT)
Message-ID: <2b408be4-70e4-41a0-b15d-c4cab58198c2@suse.com>
Date: Wed, 10 Jul 2024 12:19:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 12/14] x86/ioreq: guard VIO_realmode_completion
 with CONFIG_VMX
To: Sergiy Kibrik <sergiy_kibrik@epam.com>
Cc: Xenia Ragiadakou <burzalodowa@gmail.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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <e6e0f30ea69ecfed4d8de531fc42162162b3f6e5.1720501197.git.Sergiy_Kibrik@epam.com>
 <5fad5c8e-a7f0-4536-86ea-b74a3116d122@suse.com>
 <6fc22816-5f2c-4f87-a86b-09363f254e05@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: <6fc22816-5f2c-4f87-a86b-09363f254e05@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.07.2024 12:10, Sergiy Kibrik wrote:
> 09.07.24 10:28, Jan Beulich:
>> On 09.07.2024 08:09, Sergiy Kibrik wrote:
>>> --- a/xen/arch/x86/include/asm/hvm/ioreq.h
>>> +++ b/xen/arch/x86/include/asm/hvm/ioreq.h
>>> @@ -13,6 +13,11 @@
>>>   #define IOREQ_STATUS_UNHANDLED   X86EMUL_UNHANDLEABLE
>>>   #define IOREQ_STATUS_RETRY       X86EMUL_RETRY
>>>   
>>> +#ifdef CONFIG_VMX
>>> +bool arch_vcpu_ioreq_completion(enum vio_completion completion);
>>> +#define arch_vcpu_ioreq_completion
>>> +#endif
>>
>> Putting the (or some kind of) #define here is certainly fine, but moving ...
>>
>>> --- a/xen/include/xen/ioreq.h
>>> +++ b/xen/include/xen/ioreq.h
>>> @@ -111,7 +111,6 @@ void ioreq_domain_init(struct domain *d);
>>>   int ioreq_server_dm_op(struct xen_dm_op *op, struct domain *d, bool *const_op);
>>>   
>>>   bool arch_ioreq_complete_mmio(void);
>>> -bool arch_vcpu_ioreq_completion(enum vio_completion completion);
>>>   int arch_ioreq_server_map_pages(struct ioreq_server *s);
>>>   void arch_ioreq_server_unmap_pages(struct ioreq_server *s);
>>>   void arch_ioreq_server_enable(struct ioreq_server *s);
>>
>> ... the declaration from here requires that all architectures wanting to
>> implement the function need to have identical copies. That's unnecessary
>> risk of going out of sync.
>>
>> As to the #define itself: It expanding to nothing means the call site
>> de-generates to
>>
>> #ifdef arch_vcpu_ioreq_completion
>>          res = (completion);
>> #else
>>
>> which hardly is what is meant (despite compiling fine, and it likely
>> only being Eclair which would then tell us about the issue). Further
>> there you're also removing a blank line, I don't see why you're doing
>> that.
>>
> 
> looking through these changes once again I wonder why can't we just move 
> stub to the header like this:
> 
> in xen/include/xen/ioreq.h:
> 
> #ifdef arch_vcpu_ioreq_completion
> 
> #ifdef CONFIG_VMX
> bool arch_vcpu_ioreq_completion(enum vio_completion completion);
> #else
> static inline bool arch_vcpu_ioreq_completion(enum vio_completion 
> completion)
> {
>      ASSERT_UNREACHABLE();
>      return true;
> }
> #endif
> 
> 
> and avoid additional pre-processor variables & conditionals, because it 
> looks like we do need some kind of stub that does ASSERT_UNREACHABLE() 
> anyway.

That's possible to do, yes, but not as long as you key it off of CONFIG_VMX.
This arch-specific setting would better not be used in a common code header.
You could introduce a helper CONFIG_* which VMX selects, at which point
doing what you suggest is an option.

However, in what you have above I can't figure why "#ifdef
arch_vcpu_ioreq_completion" is still there.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 10:21:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 10:21:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756757.1165484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUS1-0002MJ-Mz; Wed, 10 Jul 2024 10:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756757.1165484; Wed, 10 Jul 2024 10: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 1sRUS1-0002MC-Jq; Wed, 10 Jul 2024 10:21:29 +0000
Received: by outflank-mailman (input) for mailman id 756757;
 Wed, 10 Jul 2024 10: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=O6Uk=OK=epam.com=prvs=39211ffd58=sergiy_kibrik@srs-se1.protection.inumbo.net>)
 id 1sRURz-0002M4-TT
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 10:21:27 +0000
Received: from mx0b-0039f301.pphosted.com (mx0b-0039f301.pphosted.com
 [148.163.137.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 29b97bca-3ea6-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 12:21:26 +0200 (CEST)
Received: from pps.filterd (m0174681.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46A8JbJ9017344;
 Wed, 10 Jul 2024 10:21:22 GMT
Received: from eur02-am0-obe.outbound.protection.outlook.com
 (mail-am0eur02lp2233.outbound.protection.outlook.com [104.47.11.233])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 4092yscypf-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 10 Jul 2024 10:21:22 +0000 (GMT)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by DU0PR03MB9566.eurprd03.prod.outlook.com (2603:10a6:10:41e::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Wed, 10 Jul
 2024 10:21:18 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024
 10:21: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: 29b97bca-3ea6-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NGgskRLoDqfPrDfZ/wjo9fJTNnyWqYwUATFqjjN5XCh+Sw3VHyvYXRgmAw79oisbopuqWIH6XV7Rvyh3c77gTi/qMSh7y0m43rwMQC2whhqgegoM9cEHni2Cku1HWxr1XM4jhCkuTDUPMX4B0KMT3jc5ABU953huE9zk65PNGLXYgt+7aI689h40UFIm/NoGxXsKgZTzbZ3vMGhVrcWvSH++cT+X1YEjgTnl9PMZ7f+WEJ/TxnnzVg2K6FRqgAjxL8GIn+eGb9+xNIzhsAKS6aMyPbx9DxB76EkwU95UKs82IT/G11oBPcHtR1ibRAc3zxU+IeUhBVpt0aIVy3/9zw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uWaIlKug7fTA+tijgNdX9gRmchErnYHIisUgkULEaTw=;
 b=c9BXJbFHez6ewAAQw928c4v9teD4ihhPngyiGj3D/XaPvTsBhiy4dkVud//cyRcxB32tl8uwngwBhxjvw7jQykjyfPGhvnH21mQWUJf8+7CDlJIDmjas8BSiW//td2K5dCmW0N4+5VF/14/VAtK9rh2U3MYju/5dMFD/2+WGTbDipDKF9oNHyuyyBllyFONjD0pejHr2kWn8pEdkkvQAZAQJ/bf4H4fucmnGJPm2wvNT1N37ov4UJGeY6c6K5Xk6gVYqtPHiSevylFSANnZqGc5X/uIZ06nob2TqJcihRTl5rmXdhzdWAhGQ3MwURmymA02mFClU+1l1fbsduxz8Dg==
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=uWaIlKug7fTA+tijgNdX9gRmchErnYHIisUgkULEaTw=;
 b=W9WbemhILKqR80DPFzwaSNU1rxo8SJXcVGsCPwAk7tS4sJVNZMRU2H/0sHyqMM8pODJ9Jkpk1kzB4/O/cq/isrhQ6ZA3Dc1kSE7Zyw1mSaN99zbIZmst4dxmrWm72kYpKjWqtoJri9QhRlw1XtgnZT1dUPXbdM6vIVjKjmlzeRkPUee2ECl1o5yMjfO1bUQA2nA3jZ0t6aoZDANeA7KwgiGhdvo6TWwxiuB6w/j/NnRs7jyeJxfS7Mu4KkiSDYyYKeOlnsc+yBevb/PtwwFLm8JnDYqliTdEOzhHVForTHjpZsxiIvPIh6827W9YhyvYyVdBtC6Sqt8O1w+anUxstw==
Message-ID: <7051c9cd-4db5-4f99-91f2-eebe480ec4b4@epam.com>
Date: Wed, 10 Jul 2024 13:21:16 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 01/14] x86: introduce AMD-V and Intel VT-x Kconfig
 options
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
        xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <f6bfed3cd9e9fff25cbe0c5e16d8d88541be212f.1720501197.git.Sergiy_Kibrik@epam.com>
 <1d3476db-019f-4e5e-ad5f-381fe1e5b1c6@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <1d3476db-019f-4e5e-ad5f-381fe1e5b1c6@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0010.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::16) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|DU0PR03MB9566:EE_
X-MS-Office365-Filtering-Correlation-Id: d393f529-6b12-48ab-c599-08dca0ca0921
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|1800799024|366016;
X-Microsoft-Antispam-Message-Info: 
	=?utf-8?B?SUd4Q2RuSDBEa0JtbWRVU1h6anJCeFE0WGdTRnFwcnhKcTVUTVBHejAyRGJy?=
 =?utf-8?B?WGZ1SEYxU2kxM2xJT2VGUXk5bmk4bjd2REpvalF5N1ZCSG1hNWtmRmh1OS9w?=
 =?utf-8?B?VHRxZVZOckR1dFJteURFMW1HM0VtQjNoa0hKSTJJdGMxNmxrb0lpYitxTmpN?=
 =?utf-8?B?SnFWRk03WHNsMHdRVFo4ZzlIaXJVVmZDWFdYZVJJTFdPTDVhVnVtY2VzdStT?=
 =?utf-8?B?VE9CSkQ2VllHdGhVNmFkdVpvZ003SnZycFBLM1ZqU0J6bUdmYjZPM0Mxb2lX?=
 =?utf-8?B?OFEraG9OTCtLYTdFbFVjbjBhNXN0ODhncWVOaXJRRE5VNnZIcVhrT3R4by9X?=
 =?utf-8?B?VndjS3hCd1lvdmNmb05pU2dTN1ZaS3dicFA4b1B0NklDSVBITVR1RmgyUGFI?=
 =?utf-8?B?S3ZrTjJoN1Fqc3p5ZzlYTm8vQ05oY1FsM3o1VHdwZHN4TXFXUFcva3FUSGVD?=
 =?utf-8?B?RjJYMzZrL01xcDBIa1lvd3I0WFVIN3BUQ2dNeElHVmVwK3lra09NMUd0VkxC?=
 =?utf-8?B?ZFM0Wkw1QmM0d1UyaHEyNkhmekJEZkNvaWc3aE91aU84NnpnaG5lcGpjK0pU?=
 =?utf-8?B?TytLb1dwdkdVeHhOWk5NcUZNWkdjVWdUcDNnRndpN1FNT2dRaHlHaTRmUGg4?=
 =?utf-8?B?STRWWXBmalByMmdwZ044VDhJMlo5am5BdDN6RFc3M3ZZaXA3MkMxZkVrZ2R5?=
 =?utf-8?B?Wlc0SzdtbVJ1dFZST1YrUk55dFNsR0VjZkI1MWsvdFpLL1RKYXl3akp4emJT?=
 =?utf-8?B?aGJIWjVEUlJqK0FCMEVQdi8wanNCcXpJL2ZiSkdocThjSVRURjNGWjJBU1VH?=
 =?utf-8?B?eGZtdmF4ZUVPM1dvRVN5cGhCajVpRElncng5b2toRnI4bytVTzBYWVZTRVRM?=
 =?utf-8?B?MkM5SmpVT0tLTk9VWk9Nci91LzhlcVhuVEdiUGFhM2pXVTRVWGFGaEpOeTFq?=
 =?utf-8?B?cnpqT2djYjhtOEdROGc3Z3hoUTk4ZW9uZnh0RXZnb29vRVplek9MbHBpV2VL?=
 =?utf-8?B?aWVGVE1DTFFuczNUaVcxUGc0RlNsOUdRN1hRR2VxMlNjV0ZQNDJDR04rVkgx?=
 =?utf-8?B?S0x3Yk1yUzRMdEJHVDZKUURNYnFwbFpnbjRLeU5hdktyRVgwZUIzQ01HQ0ZY?=
 =?utf-8?B?OE1ncEg0eUoxUHBTRm1aNDJ6T0dwbTBuWWR2Vi85WHM4ZWNha0NLNFEvSG5R?=
 =?utf-8?B?Z0UzVGFXK1ArTGs1V1hxdDB5WFVqbS9WRTk1YkpFZFl4OWFSeXVnRlJONUxI?=
 =?utf-8?B?bXh0ajNoNktxY0NTT3p4a1BnRytQcXJFdVVvd0JkZzNyTVhuYUNCYTBYYVN2?=
 =?utf-8?B?WkFDTHJGaC9jMEMrVVIyMlBSR0l3SG4ybGF2YkNYUTg3K1BoeG9aSm10dUYz?=
 =?utf-8?B?VHJKemFlWXQ3Wi8rSk94RDU4T0t4SU5ack1ubUhrdWpYTVNMNi9WQ0tRcUNV?=
 =?utf-8?B?UDhzcEw4YUR2bXkrZ3NEdlZmcUNKVHA0N3oyKzBrODI0VlFGeG1Nc3RhZ3pi?=
 =?utf-8?B?YTJIVmEydkcxQjFFazBlcWJkT0dVK2VEbkQ2S2FaVWFOZWNEZGhaUjZpazBw?=
 =?utf-8?B?ZTB0QXhjTEE1ckkwdEthUUFZYkUvOXYvWjczRWQxQkdGMUswUE1xOUUzbnlM?=
 =?utf-8?B?VW1GeXEwMUJneGtnMTU2VXFBekJZT29ISGtLSlNlbTFDOEJBeWgxUDdJbnE5?=
 =?utf-8?B?KzM4UFcyeEVkMm42TlZtVFZCZlAvVlo0SEkvNmtvWXFabkNMK0VCak1TOHVJ?=
 =?utf-8?B?d1g5V1hYd0FTMk1qYXRFQVBDMlgyTzYvdWpxQUhDWVFsbXVZOEl5L1V2T1NJ?=
 =?utf-8?B?c0hWcWYvZThpTmhjU2llQT09?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?TW9mQk0raFlrbWlnSGd1UWxDQjJ1S1cwbVo4dWhITWlUSjR6ZkVYT25IaU9u?=
 =?utf-8?B?dlRxOWJRRDJReXYxUkNIK1BTQVk4Mm5XT0xpSG53WXp4MDlmM3RDV1l2R011?=
 =?utf-8?B?OEsvVkJGY1A3c2YraXFEMXFaU1Q1M09JdVdWaEsxSFdMVlFidXJEWjlrUlJl?=
 =?utf-8?B?SVFGdGNDM0xUVzRocWEwTitmdTQ3LzRDcit5VWNLWEpYYlhCUXRuSVI0L3dz?=
 =?utf-8?B?OEpNdk9JQjM3TXRLMXRmZ0dqb0o4bTh5MTZiSjd6SHVpMzVmbVEzcFRUc1hD?=
 =?utf-8?B?UER0UXJocGhrK3lBM3krblpNTEg2RTZiWHhxc1JUUUpBYmNXcGNrTEFyamNr?=
 =?utf-8?B?bjJ1VmpIM29ud2dJZnU2eG1PWjNzdmZFSjBkVklaa1VPc3U5cjhGekZSa3Y1?=
 =?utf-8?B?ZEsyclpCVzlXUWNVMDVTd0l1OEVDRkI3M0dESmh1WHZVVzg0dm5UajRySnBk?=
 =?utf-8?B?cmRxOGFUQUNIWXpyWDZianEzczN2SHRUako5M2w2TUVOZmw0ZlViNlRvWitD?=
 =?utf-8?B?YW9Zcm5ESW16K3Bqc0RWMjJ3Y0c2MW5vb0JUczV0Q3djRUZBTmkzTDFsbXkw?=
 =?utf-8?B?bUJnQnhNNkZOdVBhQVM3SUwzOWMzTzl2NHVVMnJMS3J3cE9JSktsblZ6VEZ4?=
 =?utf-8?B?WUR0S0lEcUVHVU9WbkQ4TGk5ejFvcDFGNFE1aGtVZ1BKQkQyRTVBK3JqOVc0?=
 =?utf-8?B?dkNlNDc0NTM1UUxNNjJCVWtyQmhzSi92S2JORk1jb2h4L0xyVHVES3BMcDYv?=
 =?utf-8?B?WUF4THlSajA0VUVGazR4bTluYnVWM3h4akxnRzFwUjlVc281Vjk5bFk1Q0pE?=
 =?utf-8?B?dGg4T1ZyM2c4RXMvQVRZeTJxNGgzTWsxRGdOZGYzYVlMR0dMQWxVUUVENDlu?=
 =?utf-8?B?ejJoc1FmRFp2NTcrUkVIU2JabCt0bXFveDJ6VTExZXA0a1VRNkFNR2NNUFQx?=
 =?utf-8?B?eVduVkJnTzhuUFR4WVNiY0Uwb1BjTzFQVUloNDZWMStVRW85c245blF2MkFv?=
 =?utf-8?B?enJIdkQrK1VJTG4wbEpCc09kK0EwcTNtQTVvRFptTmROdSsyaWFzNERjSURI?=
 =?utf-8?B?blEvelNLRGI5eTFiK3ZqM2FJV2Y5OXhVN3FtckU0TE9qMGt5QUpTcnlzOEww?=
 =?utf-8?B?VmQzV1JIazVtWTM5TWcvRURXT3VDK3V4c1hZMTkxVlRVL0RWczV3TUNMN3VO?=
 =?utf-8?B?WWhyL3JoV2h2YWYwNllQU0pRTndGUzJZUXZ0NHdGd1AxSG1uZkNaQWRKWnhn?=
 =?utf-8?B?NFNlQy81RVNKTGhGTy9GY2liWktDY2l3azFHVEViZDEzN3l5TVY1WWIyTGd3?=
 =?utf-8?B?UTVlUk9Ea3FZRmZmaE9XaC9zcDFkREZZcTQ2S3IxUG9vb1FERUl6Smo3bXJm?=
 =?utf-8?B?bzQzRDQwd0lQbjJ6a2hHODdEQWtXbXU2TjM2RWlwakJ3ci9YQkNJMlNZOHJD?=
 =?utf-8?B?VSt2WGtZa0FrR3V3Z0czdThXRGFJeW11ZWk4TlZNNytvaEtZWmRuVmFkQW15?=
 =?utf-8?B?d3YvclI2TlRaYjNack5PYWhsNlk2VnN3M0x2NU93My9aTVhVZ0VFYzVndm0w?=
 =?utf-8?B?YVoxWlY2Q1BndlNTeWZFRlE4NGhaTk0zN2QzZFBwQmdBOGU3dWRvVFN2MEFk?=
 =?utf-8?B?ODc1NnNtbEZrRnVOcUl0aXNKQkhvUjI3VmpoWFBzTzk2MDM5d3BIbmUwQmor?=
 =?utf-8?B?ZnNmU3JCQUVFK1o5MVRvc1B4bU51dHRlNUF2cm5IM1Yzak9ON3R6REJKb0hK?=
 =?utf-8?B?eSs5QkRJblkxY05oMWVJME5MVjNEbmNscnRRY1EwSXowQThqclNra0swc2dF?=
 =?utf-8?B?b3JERW10cGNzUHZ3VXppcHFlMEtwN0NEM0NMbktpVkFnM0pIUDdzckJBYmpF?=
 =?utf-8?B?U2czajJMSlVwamdkVnJ1WWNPWVJhNlZsaEs0cEgwTmpEVTQrcTZkbVM3Y3Nj?=
 =?utf-8?B?TXAydkJPdGZoQi9pWmNNOFBDVlNXQW1RRy85SUxPK1lFaktkSHZ2NnhmTUNE?=
 =?utf-8?B?V0RhYXR2ZVNGWFRpMlVNMVBSVzl5TUlmRi9yMm94eEh3eUZTdy9BbjVpb3Qx?=
 =?utf-8?B?UnRoRlY1MWxHQW1lR0M3a1dQUTg1QnJlQVdTNkdtNkFCSHhCeFV6U3NMejRy?=
 =?utf-8?Q?y0nauUUF0dtZ5U1sPVO3pehtU?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d393f529-6b12-48ab-c599-08dca0ca0921
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 10:21:17.9435
 (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: /sIGhOKTNtnG+QYXwjSVcpPONujYjuHAhAbc9GZORQAzNJ2Dxyh5+QDn4vaqWK8GRy8Vu0cWRK2kT6SEDcbViQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9566
X-Proofpoint-ORIG-GUID: yOvhDXgzC5H0h26gAicMrqKi_Hr6PaQA
X-Proofpoint-GUID: yOvhDXgzC5H0h26gAicMrqKi_Hr6PaQA
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-10_06,2024-07-09_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 mlxscore=0
 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0
 priorityscore=1501 mlxlogscore=999 clxscore=1015 lowpriorityscore=0
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2406140001 definitions=main-2407100070

09.07.24 10:11, Jan Beulich:
> On 09.07.2024 07:45, Sergiy Kibrik wrote:
>> From: Xenia Ragiadakou <burzalodowa@gmail.com>
>>
>> Introduce two new Kconfig options, SVM and VMX, to allow code
>> specific to each virtualization technology to be separated and, when not
>> required, stripped.
>> CONFIG_SVM will be used to enable virtual machine extensions on platforms that
>> implement the AMD Virtualization Technology (AMD-V).
>> CONFIG_VMX will be used to enable virtual machine extensions on platforms that
>> implement the Intel Virtualization Technology (Intel VT-x).
>>
>> Both features depend on HVM support.
>>
>> Since, at this point, disabling any of them would cause Xen to not compile,
>> the options are enabled by default if HVM and are not selectable by the user.
>>
>> No functional change intended.
>>
>> Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
>> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
>> ---
>> changes in v3:
>>   - tag added
> 
> And then removed again in v4? My prior ack stands, but - as before - conditional
> upon us being certain that we want to go with the ambiguous ...
> 
>> changes in v2:
>>   - simplify kconfig expression to def_bool HVM
>>   - keep file list in Makefile in alphabetical order
>> changes in v1:
>>   - change kconfig option name AMD_SVM/INTEL_VMX -> SVM/VMX
> 
> ... result of this change (firmly ambiguous for SVM, latently for VMX).
> 

I've put my thoughts about naming in the series' cover letter, however 
I'm not strongly preferring current naming and if it finds no advocates 
I'll rename it in next series.

   -Sergiy


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 10:23:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 10:23:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756763.1165494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUUN-00030w-5h; Wed, 10 Jul 2024 10:23:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756763.1165494; Wed, 10 Jul 2024 10:23:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUUN-00030p-2g; Wed, 10 Jul 2024 10:23:55 +0000
Received: by outflank-mailman (input) for mailman id 756763;
 Wed, 10 Jul 2024 10:23: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRUUL-00030d-Uz
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 10:23:53 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80b7f31b-3ea6-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 12:23:51 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2eea7e2b0e6so40257621fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 03:23: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
 98e67ed59e1d1-2c9e2be5056sm7679191a91.0.2024.07.10.03.23.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 03:23: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: 80b7f31b-3ea6-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720607031; x=1721211831; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fshi/ErnAGLqRELV2vAiVMdugCAU72VzaI1Wr1q7viA=;
        b=ZBzgKh8itpGo7/ipAii+fPp/aS9iwDQNuQ8bgAXcAqKE1l8i50DzV83m1EEOb+PCxA
         FTf83RzZpHrnYprTsieWCNWt1i1plkqnmktg/zOn7m7wkOEmHyu2Um5e5orWkCglVz/p
         CrKoQXfRUa713Rjdjog++813DlLTNZkj1IZnE9Ihd4KvKjtCbirnTD6IqOBmEQ/yoBFd
         dqvMeDoC2EvUu396zNzCkjXMskVe/O6DV8sa7gtHgsO3lnRSFBdu8rZyz7Zn3IOhUF83
         CiAF1R2AUkMJ6UbAWbKYK/OWzHmxF6eIjl0pCJ+GClr78y4HFNS6xFfGvF9/erGp4z/1
         hF0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720607031; x=1721211831;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fshi/ErnAGLqRELV2vAiVMdugCAU72VzaI1Wr1q7viA=;
        b=qUhYJMab43mcAvAdPwY7YeK0CzjQqDHUrhsPzBaVUjkJo6ujA7ZYHZVIda16dNeD+k
         Wgqx4R0Q6OnIlXvFm+f5S5kV12bHiTldyW8kgv6zuC6figVHZq4OPX8zQc8T73HnvXWx
         zArx7/ZmpHzlOI3ZK15EHPL4P+xxrUCJrE0/2lUVZM5qHu+uPApBlVy7wlSBsYoSfSmo
         bbltpen/NorGzm4nLnGTd5RVYwq8mJn8ByvO3U4I/95Ixh7IhKz9YkoCKxmr6MsmE/z8
         C/Io6+Tfmx9Rwn46sEowEkz/Fil9crPSukukjPPaOcS7kYdfSCMAwCEox2jzuvUzOpRC
         gFQQ==
X-Forwarded-Encrypted: i=1; AJvYcCUe8uqF2kepssOt31hSlKiOfO6STUKnRYS+WDOxV3UjXUKNjaHSSK6soRMZAzvevIGqqg5OsDQd1Pj4XNaRbFxH16Ka0RNLuPlOGknLLJk=
X-Gm-Message-State: AOJu0YxcsrQVwdWSwefgUsHNLbzex657h10G8Oczye+sg1ePKfsNBTBE
	ZJV+jMBEMZd9lmaRZ4PKnir1w21L/w2m9RLsMXQZ2+Mte510wg86sJt1S0OdKg==
X-Google-Smtp-Source: AGHT+IERCTCy9H8RzimGfMnhht+kZeYkyNPkqKrRiGFFxvNF/aLyidBzUuTreZlEZ8ykx6GUvIjpRQ==
X-Received: by 2002:a2e:9786:0:b0:2ec:56ce:d51f with SMTP id 38308e7fff4ca-2eeb30db364mr29328351fa.20.1720607031252;
        Wed, 10 Jul 2024 03:23:51 -0700 (PDT)
Message-ID: <b3c5b6d3-561d-46d0-bc1b-1b2e3cbeeba2@suse.com>
Date: Wed, 10 Jul 2024 12:23:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/5] xen/device-tree: Move Arm's setup.c bootinfo
 functions to common
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Shawn Anastasio <sanastasio@raptorengineering.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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <c656f0d08d4c4b515c99848b84db4171ab132f19.1720002425.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: <c656f0d08d4c4b515c99848b84db4171ab132f19.1720002425.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.07.2024 12:42, Oleksii Kurochko wrote:
> From: Shawn Anastasio <sanastasio@raptorengineering.com>
> 
> Arm's setup.c contains a collection of functions for parsing memory map
> and other boot information from a device tree. Since these routines are
> generally useful on any architecture that supports device tree booting,
> move them into xen/common/device-tree.
> 
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V5:
>  - add xen/include/xen/bootfdt.h to MAINTAINERS file.
>  - drop message "Early device tree parsing and".
>  - After rebase on top of the current staging the following changes were done:
>    - init bootinfo variable in <common/device-tree/bootinfo.c> with BOOTINFO_INIT;
>    - update the code of dt_unreserved_regions():
>        CONFIG_STATIC_SHM related changes and getting of reserved_mem
>        bootinfo_get_shmem() ??
>    - update the code of meminfo_overlap_check():
>        add check ( INVALID_PADDR == bank_start ) to if case.
>    - update the code of check_reserved_regions_overlap():
>        CONFIG_STATIC_SHM related changes.
>    - struct bootinfo was updated ( CONFIG_STATIC_SHM changes )
>    - add shared_meminfo ( because of CONFIG_STATIC_SHM )
>    - struct struct membanks was update with __struct group so <xen/kernel> is
>      neeeded to be included in bootfdt.h
>    - move BOOTINFO_ACPI_INIT, BOOTINFO_SHMEM_INIT, BOOTINFO_INIT to generic bootfdt.h
>    - bootinfo_get_reserved_mem(), bootinfo_get_mem(), bootinfo_get_acpi(),
>      bootinfo_get_shmem() and bootinfo_get_shmem_extra() were moved to xen/bootfdt.h
>  - s/arm32/CONFIG_SEPARATE_XENHEAP/
>  - add inclusion of <xen/macros.h> because there are function in <xen/bootfdt.h> which
>    are using container_of().

Just to mention it: This is confusing. The series is tagged "v1". I understand
you took Shawn's work, which had already undergone revisions. But then imo you
want to at least clarify how your v1 relates to his v4 or v5, i.e. then making
clear to the reader whether all of the changes above were actually done by you
on top of an earlier v4, or whether you took the earlier v5 verbatim.

But anyway, this will need looking at by Arm folks.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 10:25:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 10:25:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756769.1165504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUW4-0003YN-Ft; Wed, 10 Jul 2024 10:25:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756769.1165504; Wed, 10 Jul 2024 10: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 1sRUW4-0003YG-Cc; Wed, 10 Jul 2024 10:25:40 +0000
Received: by outflank-mailman (input) for mailman id 756769;
 Wed, 10 Jul 2024 10:25: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRUW2-0003Xp-Qn
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 10:25:38 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c006ae45-3ea6-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 12:25:38 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2ee88c4443eso65067811fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 03:25: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
 d9443c01a7336-1fbb6a2bef3sm30486915ad.105.2024.07.10.03.25.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 03:25: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: c006ae45-3ea6-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720607137; x=1721211937; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XfFAVwE1AnNZi74uKj6V1t67baMbe7aXEPN55MLloo8=;
        b=JAaGoiCxLoObZFgvB17DZFrct+30LOMquGfchsNbbnn+PhdVEdrc/AcKzf6w7Z2Q+3
         JRg1e2o0CzVQUCyzEB4602P9pyTWJVovcX1t30E1thS8l+uN5ulmiLOeY3HBkHCWfxy8
         mc+gLzdIhocyZrX6l7l1jKVRuKpIvXyBh7qxIuBOpAFWwbV3tRkLPIdTz6ytaqekf4EY
         0UbaFNUFn7yL27LzXteSwr2JlBKt4/k6NSyVEEieqh+3yB0LoDMu8cpo5uF9M1aDb/WB
         oYvsqFkSTU3sBhGcF+CwzdaZngypXW62qRe3mAHZytJtD6kz1J1A2iQ9JfSowRVFB18a
         OkEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720607137; x=1721211937;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XfFAVwE1AnNZi74uKj6V1t67baMbe7aXEPN55MLloo8=;
        b=mEt2+rIqekQPX21hHcjLKaiM1+y9w+yTgQMSQ1Z8LHvj+1NPuxLbH+XWW5c+za9S6m
         5trR2vadttWTlZy3s5CyXEgXk24vEOMsbaSTza5RfvC3hhbTSW/JHXldHHNBsm5dh/PZ
         0dERSPNcq2OTX7RihwHl52tJ+TmPl0IxwULqlS6fHufsQoC//aQF72R2xvmzvbvZdzc/
         wGG3giDhKgpPnnwCyfYrymg5St+9FJiXrUn4RbQHaN/JXMwObahbrr6KAdBwmgBPRYve
         8TA4NCqxs4xmg2x30FNv5hgjhdxlavoj9CEF5kOsYuF0HIsRymqxJO544wICw2OMtGEQ
         3CvQ==
X-Forwarded-Encrypted: i=1; AJvYcCXRv8ArttCJLq2VES4NQYAW5VRUtLu3FKP8VdeeL4Twz7viGczYcmupxfL/E6+2p2+PoaJMMkZBBvMJyTZmkDOitJXJX+etdK6HtuoKCPs=
X-Gm-Message-State: AOJu0YxpRAl78iVoSsB7aeJR6TfR/pspKr5i3EGxXx5rZzPcwjFN4msx
	K1U2AeWa1wx6tuv4ESRy+yQQzwn0VNViGBzer2GKaaFfxC36rsChyT4PSdvcLg==
X-Google-Smtp-Source: AGHT+IG+7GL3Wt8eL6pJs2AZSHxm59AMcAGcv18CSXvLBvMrOPQoi64oqa2LQ7liFraWQhkPkAWIEw==
X-Received: by 2002:a2e:97d3:0:b0:2ec:558d:4e0a with SMTP id 38308e7fff4ca-2eeb30e39a5mr42816701fa.19.1720607137444;
        Wed, 10 Jul 2024 03:25:37 -0700 (PDT)
Message-ID: <235880b4-de39-440c-90be-815b37a4ae76@suse.com>
Date: Wed, 10 Jul 2024 12:25:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/5] xen/riscv: enable CONFIG_HAS_DEVICE_TREE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <8861be6624f50c927a8dadbcf056aff2dc0576ab.1720002425.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: <8861be6624f50c927a8dadbcf056aff2dc0576ab.1720002425.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.07.2024 12:42, Oleksii Kurochko wrote:

> --- a/xen/arch/riscv/Kconfig
> +++ b/xen/arch/riscv/Kconfig
> @@ -5,6 +5,7 @@ config RISCV
>  config RISCV_64
>  	def_bool y
>  	select 64BIT
> +	select HAS_DEVICE_TREE
>  	select GENERIC_BUG_FRAME
>  
>  config ARCH_DEFCONFIG

Same question here as for a change in the earlier series: Why here and not
for RISCV?

Plus, nit: Please keep the list of selects sorted alphabetically.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 10:28:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 10:28:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756775.1165514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUZ9-00055z-RJ; Wed, 10 Jul 2024 10:28:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756775.1165514; Wed, 10 Jul 2024 10:28:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUZ9-00055s-Od; Wed, 10 Jul 2024 10:28:51 +0000
Received: by outflank-mailman (input) for mailman id 756775;
 Wed, 10 Jul 2024 10:28: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRUZ8-00055m-Tz
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 10:28:50 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3280465a-3ea7-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 12:28:50 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2eea8ea8bb0so52898721fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 03:28: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
 d2e1a72fcca58-70b439674c4sm3402389b3a.102.2024.07.10.03.28.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 03:28: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: 3280465a-3ea7-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720607329; x=1721212129; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=h8xlqPPZfKKdWIUa5dRl7Fg7OaS8SuI4tDXjvPfjFDc=;
        b=MB3+raX73yDR9MRwdEndfj4NW99Zb0e1eRmBOxHULIz/cPx9GTQc4ujUc4TGuvveUO
         LjP6Jl7mukp1n/ZXXA7STrf+5wL2CFQdCHj/QSP4hb75wgZzBwe3k1U3DGFtu0hrAWhK
         Z2qihlwb5RZzZ9PkFJwSOiwcEaQ0K1GKSnHS/MvxN+AQUDSh1RI/M/hfgQrV7/RCQSPA
         QsTRXzO6nUj7mGToRB05hSwhnmWipCmqAdI4542XeVmG1Eo6cCAYC2eF7fMcrM1TUxmE
         h5KNtCfXxubllYLxSWluFaHnPrdIBWKFZmB4DZ2juF4VjFSngW56y7e/eOP969sFPaJ0
         4Heg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720607329; x=1721212129;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h8xlqPPZfKKdWIUa5dRl7Fg7OaS8SuI4tDXjvPfjFDc=;
        b=AeRKbii49ObSjFYvc8LVVFY+m6VHtD7YPdLFX0/LRkKoh2GgDAjWYeHSzaUT43Dlr0
         M3MnFXwFS710NZk6TOJWo6Ct4KkuNGY9C8dO523bwPkIkImHHCqsRysgWa4JQJ7q0JJU
         1bd1OBSjKMAK1xF9jZI6w+4iklksfFrWhbiMeG8SEsKmaw8gllNOYtb8UJ9M3EzvFM6g
         LO4ZD93ISmFHh5jtT+wvK30J81xUauF/8ySvb5QXFkA82CcN6rKx14zwNZkT2MW+SRLK
         KxNrqFiChqyQEogsVScs/kkD0WpYGu+DuLUcfxJMDF1qYAtBqp5djSr2UW4EBnj5Mce6
         ZuyA==
X-Forwarded-Encrypted: i=1; AJvYcCUx8c8FgnS5gE/1uE8Kz7pEKwZRQ/zh1obfgMlWPGWcZZFgXasJ7e02jaVSa+BhJcwOKmRuSEwyGpLi/YpgwinFXbROBATQaz+AxPY7Gqg=
X-Gm-Message-State: AOJu0YyKZU8KhOzWyZ8WBUaR7DXsZDaOgTaBj7Wo7/oIUDYX5VoOvhV/
	yhel8r2Yyn7OH1XP6MRfL+ABWo8X/nGQYqmhG0Por/iEPVgQRAClAsQFzsLhvg==
X-Google-Smtp-Source: AGHT+IGSIuZdg2Wn6benSMARRLRxEYsZ1nzDtBdMFVCedSaS9AcprcgawxJnwg01dAer9C0kMldR7Q==
X-Received: by 2002:a2e:99c8:0:b0:2ec:a022:880c with SMTP id 38308e7fff4ca-2eeb30e4669mr43967001fa.22.1720607329533;
        Wed, 10 Jul 2024 03:28:49 -0700 (PDT)
Message-ID: <02e9e65c-0fa0-467f-aa60-159524dafaaa@suse.com>
Date: Wed, 10 Jul 2024 12:28:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 01/14] x86: introduce AMD-V and Intel VT-x Kconfig
 options
To: Sergiy Kibrik <sergiy_kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <f6bfed3cd9e9fff25cbe0c5e16d8d88541be212f.1720501197.git.Sergiy_Kibrik@epam.com>
 <1d3476db-019f-4e5e-ad5f-381fe1e5b1c6@suse.com>
 <7051c9cd-4db5-4f99-91f2-eebe480ec4b4@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: <7051c9cd-4db5-4f99-91f2-eebe480ec4b4@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.07.2024 12:21, Sergiy Kibrik wrote:
> 09.07.24 10:11, Jan Beulich:
>> On 09.07.2024 07:45, Sergiy Kibrik wrote:
>>> From: Xenia Ragiadakou <burzalodowa@gmail.com>
>>>
>>> Introduce two new Kconfig options, SVM and VMX, to allow code
>>> specific to each virtualization technology to be separated and, when not
>>> required, stripped.
>>> CONFIG_SVM will be used to enable virtual machine extensions on platforms that
>>> implement the AMD Virtualization Technology (AMD-V).
>>> CONFIG_VMX will be used to enable virtual machine extensions on platforms that
>>> implement the Intel Virtualization Technology (Intel VT-x).
>>>
>>> Both features depend on HVM support.
>>>
>>> Since, at this point, disabling any of them would cause Xen to not compile,
>>> the options are enabled by default if HVM and are not selectable by the user.
>>>
>>> No functional change intended.
>>>
>>> Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
>>> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
>>> ---
>>> changes in v3:
>>>   - tag added
>>
>> And then removed again in v4? My prior ack stands, but - as before - conditional
>> upon us being certain that we want to go with the ambiguous ...
>>
>>> changes in v2:
>>>   - simplify kconfig expression to def_bool HVM
>>>   - keep file list in Makefile in alphabetical order
>>> changes in v1:
>>>   - change kconfig option name AMD_SVM/INTEL_VMX -> SVM/VMX
>>
>> ... result of this change (firmly ambiguous for SVM, latently for VMX).
> 
> I've put my thoughts about naming in the series' cover letter, however 
> I'm not strongly preferring current naming and if it finds no advocates 
> I'll rename it in next series.

Just to clarify: Did anyone ask for the name change done in v1? If so,
maybe that request cam with some justification?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 10:38:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 10:38:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756783.1165525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUiB-0006sW-O7; Wed, 10 Jul 2024 10:38:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756783.1165525; Wed, 10 Jul 2024 10:38:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUiB-0006sP-Jp; Wed, 10 Jul 2024 10:38:11 +0000
Received: by outflank-mailman (input) for mailman id 756783;
 Wed, 10 Jul 2024 10:38: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRUiA-0006sJ-HN
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 10:38:10 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ffa0cf1-3ea8-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 12:38:09 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2eea8ea8bb0so53082401fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 03:38: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
 d2e1a72fcca58-70b43899502sm3431408b3a.2.2024.07.10.03.38.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 03:38: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: 7ffa0cf1-3ea8-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720607889; x=1721212689; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hDjB1KcrxQe+3gqMyirBovRPz1HOVewycl1yxQk6L50=;
        b=BsYwFWCsSlkk36tFSkQkOStrb5Xb+9XwF2TPwjcEv2TTgMwNaj43I8AImAvtcAByV1
         x4monS5cwhv5uFgymj+TEMUHMRprWon+RaX2IAVWPmG8Y9bENbqJAdge355m7/YWuSz/
         CjG31wSOEdXnFvLjwI8ot0JrPJwj/xH671+lvWF8jsMnL2bIPkI0D+jukIfOwLR6PhV1
         qTAeMyMxoNLJmT1V1VcMoQBm3pO85PJODue0uov1oj0XcmT3+8Icv2Y4NgU0+lnIbTU8
         iuOJpIXe1w+TLAT1SdvD2uyKl7/wLJ2e2+Wkg4Y7BYz3KW3dgdoFAK5wWcEURALSMkxk
         t95g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720607889; x=1721212689;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hDjB1KcrxQe+3gqMyirBovRPz1HOVewycl1yxQk6L50=;
        b=tmTCU6PAgZM8WcjOafwo/r5b5F1suB+/Tz+w+4P5BDXSiUDRUafDQc1my2Vmuq1nZL
         TevG0hbSfoCsxM3RYWsl03AVANawCIW35B3vG75lW7lBUOdS5IbY4an4yQ2MWd208ZJs
         cgxjdsNq3TM2vz/yvaxi0oHLBb8C9DgVpVAzaOYyYs0kM0nNrYnjgRkEIzSnYXZBcyrc
         8SCTI+AwUgQl/xTnnwkxtsg93ElIMwRRJySiT/zNxJEZSLjGmzhDy0Abi7RTjDReO0Dt
         XsUXdetfXExDAt3jSKfEzyvbvREkUDAHqgXtB8h3t1q2wr/yhBu5b4PWnZGBQKYwtCC7
         oQCg==
X-Forwarded-Encrypted: i=1; AJvYcCWOnOhoItjkklSPAUfPOXWcOYwcelRreaMa5DLM5GRH6YZS0rHq8choc5tzJuuUu5bVfwpVz8O4n/46D1EH0mWs+h4SEoxPtFof5IBmy64=
X-Gm-Message-State: AOJu0YwHrhy47mbLhgEx6JtoafXVc3j1swpVLICmoxIkKMQlDtCwDL/d
	8vMYYR/rFO1iUwrtGtyZ4HzaXcACopPN7C+UMb9hCJxX8umnOXr5QvOXutDDyg==
X-Google-Smtp-Source: AGHT+IGe9Bs9h4FUuMMroVAcpZ6ogVkdr8YlX8vBf4l/3yX0ZK2cP4KdP90U1x1CdbiHNL1XBUtuAA==
X-Received: by 2002:a2e:9b84:0:b0:2ee:849b:576a with SMTP id 38308e7fff4ca-2eeb30bb3b5mr39886231fa.11.1720607889005;
        Wed, 10 Jul 2024 03:38:09 -0700 (PDT)
Message-ID: <91e1ff5e-a27a-4c59-b5b0-88414d504694@suse.com>
Date: Wed, 10 Jul 2024 12:38:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 4/5] xen/riscv: introduce device tree maping function
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <efd3e6a8c526d227f8db06779c65ffda42a695d6.1720002425.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: <efd3e6a8c526d227f8db06779c65ffda42a695d6.1720002425.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.07.2024 12:42, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  xen/arch/riscv/include/asm/config.h |  6 +++++
>  xen/arch/riscv/include/asm/mm.h     |  2 ++
>  xen/arch/riscv/mm.c                 | 37 +++++++++++++++++++++++++----
>  3 files changed, 40 insertions(+), 5 deletions(-)

I don't think a change like this can come without any description.

> --- a/xen/arch/riscv/include/asm/config.h
> +++ b/xen/arch/riscv/include/asm/config.h
> @@ -74,6 +74,9 @@
>  #error "unsupported RV_STAGE1_MODE"
>  #endif
>  
> +#define XEN_SIZE                MB(2)
> +#define XEN_VIRT_END            (XEN_VIRT_START + XEN_SIZE)

Probably wants accompanying by an assertion in the linker script. Or else
how would one notice when Xen grows bigger than this?

> @@ -99,6 +102,9 @@
>  #define VMAP_VIRT_START         SLOTN(VMAP_SLOT_START)
>  #define VMAP_VIRT_SIZE          GB(1)
>  
> +#define BOOT_FDT_VIRT_START     XEN_VIRT_END
> +#define BOOT_FDT_VIRT_SIZE      MB(4)

Is the 4 selected arbitrarily, or derived from something?

Also maybe better to keep these #define-s sorted by address? (As to "keep":
I didn't check whether they currently are.)

> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -255,4 +255,6 @@ static inline unsigned int arch_get_dma_bitsize(void)
>      return 32; /* TODO */
>  }
>  
> +void* early_fdt_map(paddr_t fdt_paddr);

Nit: * and blank want to change places.

> --- a/xen/arch/riscv/mm.c
> +++ b/xen/arch/riscv/mm.c
> @@ -1,5 +1,6 @@
>  /* SPDX-License-Identifier: GPL-2.0-only */
>  
> +#include <xen/bootfdt.h>
>  #include <xen/bug.h>
>  #include <xen/compiler.h>
>  #include <xen/init.h>
> @@ -7,7 +8,9 @@
>  #include <xen/macros.h>
>  #include <xen/mm.h>
>  #include <xen/pfn.h>
> +#include <xen/libfdt/libfdt.h>

This wants to move up, to retain sorting.

>  #include <xen/sections.h>
> +#include <xen/sizes.h>
>  
>  #include <asm/early_printk.h>
>  #include <asm/csr.h>
> @@ -20,7 +23,7 @@ struct mmu_desc {
>      unsigned int pgtbl_count;
>      pte_t *next_pgtbl;
>      pte_t *pgtbl_base;
> -};
> +} mmu_desc = { CONFIG_PAGING_LEVELS, 0, NULL, 0 };

__initdata and static?

> @@ -39,9 +42,11 @@ static unsigned long __ro_after_init phys_offset;
>   * isn't 2 MB aligned.
>   *
>   * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
> - * except that the root page table is shared with the initial mapping
> + * except that the root page table is shared with the initial mapping.
> + *
> + * CONFIG_PAGING_LEVELS page tables are needed for device tree mapping.
>   */
> -#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
> +#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 3 + 1 + 1)

Considering what would happen if two or three more of such requirements
were added, maybe better

#define PGTBL_INITIAL_COUNT (CONFIG_PAGING_LEVELS * 3 - 1)

? However, why is it CONFIG_PAGING_LEVELS that's needed, and not
CONFIG_PAGING_LEVELS - 1? The top level table is the same as the
identity map's, isn't it?

> @@ -296,6 +299,30 @@ unsigned long __init calc_phys_offset(void)
>      return phys_offset;
>  }
>  
> +void* __init early_fdt_map(paddr_t fdt_paddr)

See earlier remark regarding * placement.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 10:53:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 10:53:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756792.1165534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRUwv-0002ee-4Z; Wed, 10 Jul 2024 10:53:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756792.1165534; Wed, 10 Jul 2024 10:53: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 1sRUwv-0002eX-0n; Wed, 10 Jul 2024 10:53:25 +0000
Received: by outflank-mailman (input) for mailman id 756792;
 Wed, 10 Jul 2024 10:53: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=O6Uk=OK=epam.com=prvs=39211ffd58=sergiy_kibrik@srs-se1.protection.inumbo.net>)
 id 1sRUwt-0002eR-T7
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 10:53:23 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9f80e65c-3eaa-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 12:53:22 +0200 (CEST)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46A8JUKC004888;
 Wed, 10 Jul 2024 10:53:12 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2104.outbound.protection.outlook.com [104.47.18.104])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 4094gf4m71-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 10 Jul 2024 10:53:12 +0000 (GMT)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 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.7741.35; Wed, 10 Jul
 2024 10:52:57 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024
 10:52: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: 9f80e65c-3eaa-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=C0jCNJIEgJlLWJy26pB7px49+0Kxd7G08ouZXf6J13PeJuemVeIqH3Tuqp4M6SqA4Oxlh4uahlLEX0TVpKKeZzgxvV5ononknlivF6ajCEZrE71rIZtV4SnY1JdhfcgL2MtHR9zl2X2IGOmCAF77dVzJhpfQBw/CDJ12SnX3pmTwV+h2pt9MsmC8iyAEUJZNKq17clPNpOb5XdZe2iEPhb+NapR+1SR22BZMwrPgyOIrCubj6ZzJ2XKDpAw76oNgrRfzFk0KEVIGITihBrDq7C1qVjQc1wgclf6AlQyA9qRXvu22DZrFDPJ4h2fnm1BxXEpXnk3X7lbmdrMFciWGmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cG/hD0af7YzH9upcbHKU90yuP6G01ZfmKCvSFLO0jdo=;
 b=FhAfBpNg7TYm/cLm8bvg1nkvXaHEwYnRGX48hzTX5X1YVXVOSKWsfrWjnOxB6kDb/6cPDOU19qVVgb+8TwzyKa2vV7EZyM6APqAvLFD3qxNNyFKoHJ8520TUNthwBYSpFHKt8ViBFz9/YoNcepTY83vdP8IqGU61TOCUP4iG782Uu4ifsk90+qGlmVlHZnfASalcKzHv58+s5gEzoRlEy6UwWZGbHRVbTMJVwLh4U0WUgrrDwI96dXORODmReCUikZQJ/vliem+tWN1sUaYF5gD47IN5LR8Lt0w95DWtYZQFncbG/ZMeV/fl14VSJXfJtfi4sCSKooQI5MvjPMrT5Q==
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=cG/hD0af7YzH9upcbHKU90yuP6G01ZfmKCvSFLO0jdo=;
 b=WBTlE/AiNcKW4VJjZrMewTVKsZvE3lNarTl0sObAQ8NL1Jrza6zwK5UT4UQ/MLYmuFtI1iSbOL9MVdwf034jyhtDajp1+LfdmzDB5WBsgi5hsjtvrXvFhB1wAT2BwUzqjBIet38KyQCWTh4xM5Vqk9YHndfj0uxzM5rSL9vQo+V70JC5Vq7hWhBa7pRthFZd4eQAWm8jdv8Ii0tJ6zbZMVFdfuDCduXVU+6hBmpLV5uYEVpzxIs7m6PTcp2LDtPYp1BRVnyWMR/RDUDvN/s5rqb0/GirRZasR28CsL8KeaFSEFviBCYxi/FeFYnK8F6zEpR4KXwvjCFUQaNP7MttbA==
Message-ID: <fa9644fe-ae7e-482b-b83b-537c947e3cab@epam.com>
Date: Wed, 10 Jul 2024 13:52:55 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 01/14] x86: introduce AMD-V and Intel VT-x Kconfig
 options
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
        xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <f6bfed3cd9e9fff25cbe0c5e16d8d88541be212f.1720501197.git.Sergiy_Kibrik@epam.com>
 <1d3476db-019f-4e5e-ad5f-381fe1e5b1c6@suse.com>
 <7051c9cd-4db5-4f99-91f2-eebe480ec4b4@epam.com>
 <02e9e65c-0fa0-467f-aa60-159524dafaaa@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <02e9e65c-0fa0-467f-aa60-159524dafaaa@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0005.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::11) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|AS8PR03MB7937:EE_
X-MS-Office365-Filtering-Correlation-Id: c19ac8d9-9898-4bf7-f529-08dca0ce7543
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|1800799024|376014;
X-Microsoft-Antispam-Message-Info: 
	=?utf-8?B?K1dXR0tjQjVWZ2xYWTJjdzRlQ3d4L2xZdU41Y1hBSVVZdnZlbDdTL3Z4V0hm?=
 =?utf-8?B?ckFYR3pqODdmRTY2WFJmOU1xYU5ZSzVGOTZkS05FcndJaWdCbXV1R1BOeEJj?=
 =?utf-8?B?QWFnMm9tVnVybHBpTEpBam1QdGI2a25XRy8zaXRVbTdGMjIzNkFnU24xaHVl?=
 =?utf-8?B?Njlqa2xEVFhsdEh0eW9Yb1BCMGhSOGlDZ2ZnTkJMeFlCYXIvbmxTYm9aVTV3?=
 =?utf-8?B?NHlsOXVkRkc5eTNGZEJXYkM1c3FzeVFyK1gybmRCMWt5T1IzVTZOeG04c2hD?=
 =?utf-8?B?TkdBN3UxN3lwcGUwTERBQnljNzBKT2VNN2ZCbVJxYmozWHMzY3hxT2E4OWJs?=
 =?utf-8?B?ZFJUUWRGQ1VzbjdpSFlZbEJKM1JjRUlncmM2cnM3Z1ZqdUlkY0twWlpTRXNz?=
 =?utf-8?B?Zjc2RTJDOUR3a0NENXpDaStVVUJFRC9NRkhMd25SUGZvd25KbmxXa0xtU2FW?=
 =?utf-8?B?R0tUNFVBNGdiSStWNFp3SGpKV0MrT1ROVldYMjc3cEpCcXVDU1RISHVEd01z?=
 =?utf-8?B?UDBWT0V0NTZYZCs4Zk9vM0ZsbGE4Ry9UYVhSOWpCS1JwWDRPeGo2Q2dvcWxF?=
 =?utf-8?B?RUtkak4wWnczWjdGRDBrS2xvbUo2eTNwVE5Ic3EvdkNMQ0VRK2FQVUZDbjM3?=
 =?utf-8?B?L1hwYWVSa3lXanVzV1JZd2VzSU1Qai82VkY3cndIN0ZKZWs5QWpacTBwdGhy?=
 =?utf-8?B?V09iVVc0R1dqQ2tMMG1leXcyc01hWXF4OU94MkpRcGZPMGlFVXVwSlBpRDdW?=
 =?utf-8?B?R0ZTeEszRExROXNNNFoxRERVWjZCMkNtOCs0eVRuS2pVVXhkMk9aRml3YThF?=
 =?utf-8?B?SFJON0xWdWYxemJZWDYxb3RlZXE5Y1YrSlZLVi9ydExnYktWUHR2MUhqZHBW?=
 =?utf-8?B?SjMwUXBpY2J6eDQ4OFp4K3czSVpSU0hGZTlxY040MUh4QndCWFNaSGwwZDYz?=
 =?utf-8?B?RVVtUlNubWh2OElHbS9ZSVpMODZaM2x5elRKdmlUMWtUYVBBZis3ZGhDbk9H?=
 =?utf-8?B?L0xSUERuRVp2NTlSb1ZPV0N6eEVROTBPY3JkSWZkclJuNERsM1o3cWovVUdz?=
 =?utf-8?B?eVFhSFp3NUQyckFGa0pzWjZGYmtNQzVZaC93RmhGR0JIVnJMUmpJNWdLa2NJ?=
 =?utf-8?B?VUhhTnJza2d6MFRXdnNkSFBDWS9VZ2xHRkRydFVqVnEvNDVUQldKNWtJVS9h?=
 =?utf-8?B?SDIxR3VHLzFSNndXSXQ2VENHcnNQZlpLd3Z5bzBpTmFYUW5RVmxRdXlBWDlB?=
 =?utf-8?B?dWYwMHU5dXhHMlpCQ2M4a2Yvd2Z5RUFwM1laWms3amMvSzhxSlM0dDFxOTZZ?=
 =?utf-8?B?Wm1LWWRLczE3V0NUbm1wOStmM0o3cktXZEpNMmtXOVBCYVNLMW96SERpSENX?=
 =?utf-8?B?dGpwLzRLampGOXFINzVWRmFGVGlxY1p6aHh3YjhhZzVYWGlmOGNiaWRVdW9y?=
 =?utf-8?B?ZTNsOCtWZmtzb1JaL0N0Z1hTSGp6dUl4aGF3VUdITmtqVlFhNkNyR0g4ZllK?=
 =?utf-8?B?OTdmY1VrUWtzcEVSTmVkSCtRSmt2TEcyTmJlVG02QmFxWEd4czRpRSt4ZEpw?=
 =?utf-8?B?VXhSSk81TTU4blZOYWhFWHN6eURObWJ4UFd3cnN0K3pXTFVGd0RHcjRuSURE?=
 =?utf-8?B?QlY5QjVld3RSdWZFbTNNOGxNRk5FMnVSTVcvdXdVREh5d2xhUkZXc015emp4?=
 =?utf-8?B?QzlZYzdzd3dlSmo2WU0wRG5WM25VU3g2UUZHOGJqTzVJTjdHNDEzdmRRbGhS?=
 =?utf-8?Q?Th4+2iaVCNUdVDwVAo=3D?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?UXF3MjRCc0NVWmg1VFg0c0N2Z1F4TlZVYlcvMGpSamI0RzlSNFRSYTlSTWtk?=
 =?utf-8?B?eEJtMlpTWG9VU0FmSFhaYkRSa3NuV0JsQXJEemg0cDZGNEtVQUVkWjQ5QWpL?=
 =?utf-8?B?SHE4UjFHb3plSW02ZHlBQzIxVXFIMFZ2R09OVXVNd3pjZkpNUUtXbFdORnJG?=
 =?utf-8?B?cVRZSDVHSEJTVmZ2VkpjS01oRDM2Z0hxZEExUWdkUnZOZEJmMTc1ejI1NkVV?=
 =?utf-8?B?ZmxaKzNrNDVjM3REam5HR1pObFRWMlNTSWNqVHIyeEllaUlnd2xyOWpLSkxX?=
 =?utf-8?B?MU1iRWs3azVBRS8vR1hTb2pyNmZzYjBJRlZ3Y214eEllUXFiMFVrRXdpdjN5?=
 =?utf-8?B?Z0ZnYUhVVm5HOHRoN0hwUjU3UHFmWkFqbWdmOWJoNmIzdTdLL1ZXSGpsUGtK?=
 =?utf-8?B?L2JETklaUWROTWlBOHZLaWtTcm1sTFFQaU94bGRrOGpMSlptUFNzMVdSeThF?=
 =?utf-8?B?OFNTc2RtVUdieVRxbnNRQUFidHY2OEtsRDFkYm0vY2JlakxVZGYzT2dPTU93?=
 =?utf-8?B?Y2NpMFE1cllHa0NkL1BGMTZ4WkhJd2l6djE3TjNvM0ZKRVF5QnpmdFVUZW5i?=
 =?utf-8?B?RjViQm9xb2p6ZjZtbldrZ3FaNEpWZmFXWi82WDZPOEJvQW56SWlKeVF5R1Ru?=
 =?utf-8?B?QkpLV1I0WWJkQXBXSnVjdnl1b1l3TlBUb05yNDRRYVNRblFWcXJNZ3Z2R25U?=
 =?utf-8?B?NUF1RVpsNURrY1dhNUZURWQrT2V1OVJlQ1hBT3piV1FiOWFCMGRsREdESEFI?=
 =?utf-8?B?ZjUrUkFUdnczOXMzMEp0dUZNajdmZEpEemMvU0xLSjBUalFoaFFnUXIvWGpO?=
 =?utf-8?B?MWpqMitIVjhLZVNyZU5KeExXekNJNThDLzJOUFNmVlVrL3NqMmFrajRndlNB?=
 =?utf-8?B?TlZrMFpLZzRxSXMvS3lSTGV1ZnNjZVJPcWNpZXZFQmhINXVXcWY0T3NjMjEy?=
 =?utf-8?B?L09Od2NrQUtWOTJBT05xRTdYQ1RWNkVJbEZSclh1WVRLOHhsakE2Y05pN1h1?=
 =?utf-8?B?TmxraUlSMWlsMFFiY2dUVml0VmdFUjc1WTJzbng0MVdvVlZIcVNTSnA1Q3FU?=
 =?utf-8?B?dkF5WVl1Szl5V1pYWklXZEY3TmRnMjk2WnZhem9JdkZVNFFLNmdWamlhRzJS?=
 =?utf-8?B?QjUvbzY4OHl4ajc3VnNsT2VEOXlJaDFvSENMSnpocjJTQXFNdzV6L2RxdGJk?=
 =?utf-8?B?N0dGVE10Ny9yZjBxbmE4Y0R1M0dCZ2Y2Zk5vVFlSNzhnRncwWm04VFcrcUVq?=
 =?utf-8?B?aWlVSU1vU2luOWNubm85clB1L0h3S24vTmt5aVB0RExrbW9yZU5LZ1QzZFdM?=
 =?utf-8?B?QlpHRFVrVWhxR0dSZVNhNDFVR0hjOHRCdUhRM1dTMGhyUHZYNSsrQ1A1clBC?=
 =?utf-8?B?WlpWd2J4Tm92YUd2NWNSM0RaOEJuaE5seTJGSGZJWm56M0h6ZXBnL1psdHNJ?=
 =?utf-8?B?czE1WXQwVGk0SnNsTEw0VitKdHBQc1FvTUFLTU1KQ09yTFp1WXo5cVZlSVJt?=
 =?utf-8?B?ZTJtS0E0VXl0dThoell0SGR1YUdtNndiV1lQZ2JPTVRDczhRZ0kzTTJLenkr?=
 =?utf-8?B?ZkIrWVNLaC9ML0JieklkaFFVSE9lYjBrczE1ZDk3STF1RnlzQzlpRUNLVU1l?=
 =?utf-8?B?azgwNlY1QW1iS0gyQXpwQWlBQlB2TFl6MlYzYitYS1Zpd3hJU1JwTjdFdUsx?=
 =?utf-8?B?V1k0RC9xQUZhZGdYcUdzYVhUbjByd0RIcmtnV1lSclFnNFlnRVBIT3hsYzJv?=
 =?utf-8?B?dkUwbitNN0NjdFluNFdjM3gyekljMVJ5d3Mydi9sKzRrSklCSWg4c3k1SFpN?=
 =?utf-8?B?VDRiQkxvczhGdzlKT3YveGg5aUpjeE9DQS9MMk5lc2l5Sjk2aC8rb3NoVGFU?=
 =?utf-8?B?c0pOWGpVMWIzUEhESzYraGhDLzRycU03QXAzMDhVa0ZRWmxPbFUxRUFORGk1?=
 =?utf-8?B?TGVjSW84YWRXeVNVdm05RmlrOTJJdm1MMUQyTk5IMDAwM2xJQVlWMGZwWGdD?=
 =?utf-8?B?eXJvUlRqeTU4eTZSVVR0WVhxVFBlMXNQUGNyS3dwVWF6QnFUU0RzMDB0OG1H?=
 =?utf-8?B?L096V0oxY01ZQjdTTGE3K0VWVXRxZ2NmcHNIVncySjZJYjgyekFVT1F2dktG?=
 =?utf-8?Q?hAroEuqQS7PJQ1TuaT4i/Yhc7?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c19ac8d9-9898-4bf7-f529-08dca0ce7543
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 10:52:57.1874
 (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: RQaKIQcLmrdyqyqyvgMfmhvPt2h8GDlvVA2du1h5TfinS5oMDDi6s+0Biyj0jLAv+iaielibR9Rn+zTaKk54Jw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7937
X-Proofpoint-ORIG-GUID: ns-Qk1P_KR9ut_bhukw82gTh1PIlNsMM
X-Proofpoint-GUID: ns-Qk1P_KR9ut_bhukw82gTh1PIlNsMM
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-10_06,2024-07-10_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0
 suspectscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 mlxscore=0
 adultscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 spamscore=0
 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2406140001 definitions=main-2407100075

10.07.24 13:28, Jan Beulich:
> On 10.07.2024 12:21, Sergiy Kibrik wrote:
>> 09.07.24 10:11, Jan Beulich:
>>> On 09.07.2024 07:45, Sergiy Kibrik wrote:
>>>> From: Xenia Ragiadakou <burzalodowa@gmail.com>
>>>>
>>>> Introduce two new Kconfig options, SVM and VMX, to allow code
>>>> specific to each virtualization technology to be separated and, when not
>>>> required, stripped.
>>>> CONFIG_SVM will be used to enable virtual machine extensions on platforms that
>>>> implement the AMD Virtualization Technology (AMD-V).
>>>> CONFIG_VMX will be used to enable virtual machine extensions on platforms that
>>>> implement the Intel Virtualization Technology (Intel VT-x).
>>>>
>>>> Both features depend on HVM support.
>>>>
>>>> Since, at this point, disabling any of them would cause Xen to not compile,
>>>> the options are enabled by default if HVM and are not selectable by the user.
>>>>
>>>> No functional change intended.
>>>>
>>>> Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
>>>> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
>>>> ---
>>>> changes in v3:
>>>>    - tag added
>>>
>>> And then removed again in v4? My prior ack stands, but - as before - conditional
>>> upon us being certain that we want to go with the ambiguous ...
>>>
>>>> changes in v2:
>>>>    - simplify kconfig expression to def_bool HVM
>>>>    - keep file list in Makefile in alphabetical order
>>>> changes in v1:
>>>>    - change kconfig option name AMD_SVM/INTEL_VMX -> SVM/VMX
>>>
>>> ... result of this change (firmly ambiguous for SVM, latently for VMX).
>>
>> I've put my thoughts about naming in the series' cover letter, however
>> I'm not strongly preferring current naming and if it finds no advocates
>> I'll rename it in next series.
> 
> Just to clarify: Did anyone ask for the name change done in v1? If so,
> maybe that request cam with some justification?
> 

yes, that request came from you:

https://lore.kernel.org/xen-devel/e29e375f-3d30-0eb1-7e28-b93f2d831b43@suse.com/

Though I understand that a lot has changed since v1 was published, so 
original concerns about vendor names may not be valid anymore..

   -Sergiy


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 11:01:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 11:01:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756799.1165544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRV4z-0004wJ-SA; Wed, 10 Jul 2024 11:01:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756799.1165544; Wed, 10 Jul 2024 11:01: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 1sRV4z-0004wC-Or; Wed, 10 Jul 2024 11:01:45 +0000
Received: by outflank-mailman (input) for mailman id 756799;
 Wed, 10 Jul 2024 11:01: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=5pAY=OK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sRV4y-0004w6-Hi
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 11:01:44 +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 cab62e07-3eab-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 13:01:43 +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 A953021BB7;
 Wed, 10 Jul 2024 11:01:42 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 28E201369A;
 Wed, 10 Jul 2024 11:01:42 +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 5GKDCBZqjmYbdwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 10 Jul 2024 11:01: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: cab62e07-3eab-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720609302; 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=ltOTFVyo5Uy/X1RTKFluQ2RUhWSohIyrX25ZCB/KpNE=;
	b=sdQ92WiqNXgpT5tzis+FpuQEk0LBdUw6aNmj4gQ10TlzwkR+qnyOjBEX/qlQOxDBb0iKr1
	vy9lHeVcK9GhczwP+i+OKlemk4D/11MwIJLAG0Gj8b1bXp+gfDKYvUWhZ3Nwcp8UN+RXtt
	ZJrnKD6uclL6CKlyFCscNkDJ3WfcfXo=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=sdQ92Wiq
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720609302; 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=ltOTFVyo5Uy/X1RTKFluQ2RUhWSohIyrX25ZCB/KpNE=;
	b=sdQ92WiqNXgpT5tzis+FpuQEk0LBdUw6aNmj4gQ10TlzwkR+qnyOjBEX/qlQOxDBb0iKr1
	vy9lHeVcK9GhczwP+i+OKlemk4D/11MwIJLAG0Gj8b1bXp+gfDKYvUWhZ3Nwcp8UN+RXtt
	ZJrnKD6uclL6CKlyFCscNkDJ3WfcfXo=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	linux-doc@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Jonathan Corbet <corbet@lwn.net>,
	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>,
	Peter Zijlstra <peterz@infradead.org>,
	Will Deacon <will@kernel.org>,
	Waiman Long <longman@redhat.com>,
	Boqun Feng <boqun.feng@gmail.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH] x86/xen: remove deprecated xen_nopvspin boot parameter
Date: Wed, 10 Jul 2024 13:01:39 +0200
Message-ID: <20240710110139.22300-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
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)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:dkim,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	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)[16];
	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)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCVD_COUNT_TWO(0.00)[2];
	DKIM_TRACE(0.00)[suse.com:+];
	FREEMAIL_CC(0.00)[suse.com,lwn.net,oracle.com,linutronix.de,redhat.com,alien8.de,linux.intel.com,zytor.com,infradead.org,kernel.org,gmail.com,lists.xenproject.org];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Queue-Id: A953021BB7
X-Spam-Flag: NO
X-Spam-Score: -1.51
X-Spam-Level: 

The xen_nopvspin boot parameter is deprecated since 2019. nopvspin
can be used instead.

Remove the xen_nopvspin boot parameter and replace the xen_pvspin
variable use cases with nopvspin.

This requires to move the nopvspin variable out of the .initdata
section, as it needs to be accessed for cpuhotplug, too.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 .../admin-guide/kernel-parameters.txt         |  5 -----
 arch/x86/xen/spinlock.c                       | 20 +++++--------------
 kernel/locking/qspinlock.c                    |  2 +-
 3 files changed, 6 insertions(+), 21 deletions(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index b33d048e01d8..2074ba03f2e3 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -7439,11 +7439,6 @@
 			access functions when running as Xen PV guest. The
 			default value is controlled by CONFIG_XEN_PV_MSR_SAFE.
 
-	xen_nopvspin	[X86,XEN,EARLY]
-			Disables the qspinlock slowpath using Xen PV optimizations.
-			This parameter is obsoleted by "nopvspin" parameter, which
-			has equivalent effect for XEN platform.
-
 	xen_nopv	[X86]
 			Disables the PV optimizations forcing the HVM guest to
 			run as generic HVM guest with no PV drivers.
diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
index 5c6fc16e4b92..8e4efe0fb6f9 100644
--- a/arch/x86/xen/spinlock.c
+++ b/arch/x86/xen/spinlock.c
@@ -18,7 +18,6 @@
 static DEFINE_PER_CPU(int, lock_kicker_irq) = -1;
 static DEFINE_PER_CPU(char *, irq_name);
 static DEFINE_PER_CPU(atomic_t, xen_qlock_wait_nest);
-static bool xen_pvspin = true;
 
 static void xen_qlock_kick(int cpu)
 {
@@ -68,7 +67,7 @@ void xen_init_lock_cpu(int cpu)
 	int irq;
 	char *name;
 
-	if (!xen_pvspin)
+	if (nopvspin)
 		return;
 
 	WARN(per_cpu(lock_kicker_irq, cpu) >= 0, "spinlock on CPU%d exists on IRQ%d!\n",
@@ -95,7 +94,7 @@ void xen_uninit_lock_cpu(int cpu)
 {
 	int irq;
 
-	if (!xen_pvspin)
+	if (nopvspin)
 		return;
 
 	kfree(per_cpu(irq_name, cpu));
@@ -125,10 +124,10 @@ PV_CALLEE_SAVE_REGS_THUNK(xen_vcpu_stolen);
 void __init xen_init_spinlocks(void)
 {
 	/*  Don't need to use pvqspinlock code if there is only 1 vCPU. */
-	if (num_possible_cpus() == 1 || nopvspin)
-		xen_pvspin = false;
+	if (num_possible_cpus() == 1)
+		nopvspin = true;
 
-	if (!xen_pvspin) {
+	if (nopvspin) {
 		printk(KERN_DEBUG "xen: PV spinlocks disabled\n");
 		static_branch_disable(&virt_spin_lock_key);
 		return;
@@ -143,12 +142,3 @@ void __init xen_init_spinlocks(void)
 	pv_ops.lock.kick = xen_qlock_kick;
 	pv_ops.lock.vcpu_is_preempted = PV_CALLEE_SAVE(xen_vcpu_stolen);
 }
-
-static __init int xen_parse_nopvspin(char *arg)
-{
-	pr_notice("\"xen_nopvspin\" is deprecated, please use \"nopvspin\" instead\n");
-	xen_pvspin = false;
-	return 0;
-}
-early_param("xen_nopvspin", xen_parse_nopvspin);
-
diff --git a/kernel/locking/qspinlock.c b/kernel/locking/qspinlock.c
index 1df5fef8a656..7d96bed718e4 100644
--- a/kernel/locking/qspinlock.c
+++ b/kernel/locking/qspinlock.c
@@ -583,7 +583,7 @@ EXPORT_SYMBOL(queued_spin_lock_slowpath);
 #include "qspinlock_paravirt.h"
 #include "qspinlock.c"
 
-bool nopvspin __initdata;
+bool nopvspin;
 static __init int parse_nopvspin(char *arg)
 {
 	nopvspin = true;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 11:10:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 11:10:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756804.1165554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRVCx-0006Jo-IU; Wed, 10 Jul 2024 11:09:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756804.1165554; Wed, 10 Jul 2024 11:09:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRVCx-0006Jh-FX; Wed, 10 Jul 2024 11:09:59 +0000
Received: by outflank-mailman (input) for mailman id 756804;
 Wed, 10 Jul 2024 11: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=ZcuT=OK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sRVCw-0006Jb-Ve
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 11:09:59 +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 f0cca698-3eac-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 13:09:56 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-58c2e5e8649so1096313a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 04:09:56 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6bc719sm152705666b.13.2024.07.10.04.09.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 04: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: f0cca698-3eac-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720609796; x=1721214596; 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=2NaJygtshhgBHjRH7wVOuVQ3e38dgXp5Z2LojDwxntc=;
        b=CxEGUzsqFEZxmrQDeQ3Z36/EAeA/oTlrX4WOXJaSN1r6tLvYgRI4ilVPUjl+LN92EY
         v69ekvgYuXHeLKW1G/bE8iGZ6SpGzykyvt+FrtfGCagsOW6ve2uoxrYNnmcFDeyTgl+2
         9CTHqPM+3ed6FBYqD2MAC1KYwxRyMvziFYlps=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720609796; x=1721214596;
        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=2NaJygtshhgBHjRH7wVOuVQ3e38dgXp5Z2LojDwxntc=;
        b=QRzjYU2QCtpnPl6paPsMgHDkR+FuNiatadBEvl7o9jyuqPilCFU+Y659k26C4bW3cH
         MR56f7FuNGizvr17uXcZTwv4K1fKTKa9HzODcLg62uIFLu2dnbzHtCP0SAE1f36BPXbk
         h7uUnDfq7NNalMkB3OhzUTuABjkahjpELXLL8bd3r4/C/JxP25XB/6cGM++FFBRmt8vJ
         ADGVg4eF0bEWLXM/QBfo5Iumwm5ec9EoOUTkkSzFBoYvN6IOFP613YniFNq/fUgsk3VR
         07fde4lnPRayQiN7eEEsKUqst4YTSb48jHkmkVBKEvS4qSePwDocne3KlT3zudnZ2oU7
         gEdQ==
X-Forwarded-Encrypted: i=1; AJvYcCVFIlyfo3XbYBK4AK/YKnPhWv3xpXbqZWTo+syI24sE0Rv2hmv0JGTiHjKLplDsRGxilAC09f01BP0A00MFPhIgNxv+I4zhUTXRumRqI50=
X-Gm-Message-State: AOJu0YxvpXSwklbAdamAA6i9XeR2iPz/rEQjg6NJaASqZg5MB42cJmbj
	0ypnPcq9kjMtaocOwnfNnOH0cL6kyiv538JOdvinrVT121qvVhtMYfvwhMiUHk0=
X-Google-Smtp-Source: AGHT+IHjrIby3ou041jTjwlRnf/JkMEWsIgcSvWSEfn+axNxQS0htXiiRMMkzHT0GWIr6cBDDgUsog==
X-Received: by 2002:a17:906:b0c:b0:a72:75a5:bb42 with SMTP id a640c23a62f3a-a780d28ed3fmr332415566b.29.1720609796278;
        Wed, 10 Jul 2024 04:09:56 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Wed, 10 Jul 2024 12:09:53 +0100
Message-Id: <D2LT9N7YHPNZ.3T00VMT94G20E@cloud.com>
Cc: "Doug Goldstein" <cardoe@cardoe.com>, "Stefano Stabellini"
 <sstabellini@kernel.org>
Subject: Re: [PATCH for-4.20 v2] automation: Use a different ImageBuilder
 repository URL
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Michal Orzel" <michal.orzel@amd.com>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.17.0
References: <20240710093751.25154-1-michal.orzel@amd.com>
In-Reply-To: <20240710093751.25154-1-michal.orzel@amd.com>

On Wed Jul 10, 2024 at 10:37 AM BST, Michal Orzel wrote:
> Switch to using https://gitlab.com/xen-project/imagebuilder.git which
> should be considered official ImageBuilder repo.
>
> Take the opportunity to truncate the git history when cloning using
> --depth 1.
>
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> Changes in v2:
>  - truncate history when cloning
> ---
>  automation/scripts/qemu-smoke-dom0-arm32.sh       | 2 +-
>  automation/scripts/qemu-smoke-dom0-arm64.sh       | 2 +-
>  automation/scripts/qemu-smoke-dom0less-arm32.sh   | 2 +-
>  automation/scripts/qemu-smoke-dom0less-arm64.sh   | 2 +-
>  automation/scripts/qemu-xtf-dom0less-arm64.sh     | 2 +-
>  automation/scripts/xilinx-smoke-dom0less-arm64.sh | 2 +-
>  6 files changed, 6 insertions(+), 6 deletions(-)

lgtm,

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


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 11:20:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 11:20:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756813.1165583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRVNE-0001QP-TI; Wed, 10 Jul 2024 11:20:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756813.1165583; Wed, 10 Jul 2024 11:20: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 1sRVNE-0001QH-OL; Wed, 10 Jul 2024 11:20:36 +0000
Received: by outflank-mailman (input) for mailman id 756813;
 Wed, 10 Jul 2024 11:20: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=urFr=OK=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1sRVND-00011k-Cx
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 11:20:35 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c0c5252-3eae-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 13:20:33 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a77c080b521so712481166b.3
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 04: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: 6c0c5252-3eae-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720610432; x=1721215232; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=b8upkYVI4dI/+WqZV7y4nTl32BHI4mAXUryiNdpHTQk=;
        b=L9Xm5y4lDaYP9TwQ2bvfE7BA+M4pyYSY5XJv6RWkPyOSu17WuAzDiCshjYBcRJORYX
         qwqV/Ah/S/rgqcKpd9DWd/w5Jmssy0n/PiJE11s+ZlgK0T/Dxshwk1R+gQan6Xcxyqjz
         rI/G2y4x4rsBLir4q9YbGtTKb+RHJkkKtGrWE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720610432; x=1721215232;
        h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=b8upkYVI4dI/+WqZV7y4nTl32BHI4mAXUryiNdpHTQk=;
        b=gMZBGeRhJux+CkCYtnInNHfnysOICQzzqxCThGzaIK0I9rlSlg8/L4rT3UkXWSJxp1
         e7aY/HR6PK+osROkvb/a4ndKiDffwycsgJILzIwzbPgq8hyRPDVIOiLR1HBGzbN8sQVE
         WDK9/y+fRYNjPDWqBU/chpfwMQz+byHROlXFlEalN5ksl4YkuRy1DOkBz2parsFEtP4h
         g2jiY0jxCgtumMuF9zYmgu/7EarFMueOjmw8v9C8tL1wrGqANrtfr+5Dc7Ji4oUBj35D
         f8OszNQ0YKAEIUBPFc9SXqvaz6lqXAAZo3cX/dColSZ1NbigWzPiw3t1/I5EGke988Gn
         j5Eg==
X-Gm-Message-State: AOJu0Yx6m5XgqBVb2chATHsNVla2dD3tcH9TM3WchIAR83PlGE3BK14t
	UL3WNnfT+JeEvFBjcRRGeJSJlE7U8ZgzvFSyK7LfMli9Ra8Gsga4NjlwGiWzzNLj0wtVWcwn6wU
	DhAZxwbTY1QlHx2IBbe1A020cSeZJ84nSq9ChdwWghYqoir73IQPu6Q==
X-Google-Smtp-Source: AGHT+IGxsUJ5AGjDOzR1eO+XxuJYIm2+UVb8MODVYPmglXSjYgw/XXjC+atnKxthspqcXDkmPt1DA6EIk6nUw9H2nJU=
X-Received: by 2002:a17:906:f8db:b0:a6f:309d:ec23 with SMTP id
 a640c23a62f3a-a780b89ca05mr325814766b.72.1720610431904; Wed, 10 Jul 2024
 04:20:31 -0700 (PDT)
MIME-Version: 1.0
From: Kelly Choi <kelly.choi@cloud.com>
Date: Wed, 10 Jul 2024 12:19:56 +0100
Message-ID: <CAO-mL=zJQVKBZp26Saj6TMBnDqRChBkhMEQudqTk84DPiUkC-w@mail.gmail.com>
Subject: [Announcement] Upcoming Closure of Xen Project Colo Facility
To: xen-devel <xen-devel@lists.xenproject.org>, xen-users@lists.xenproject.org, 
	xen-announce@lists.xenproject.org
Cc: committers@xenproject.org, advisory-board@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000975796061ce2d510"

--000000000000975796061ce2d510
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Dear Xen Community,

We regret to inform you that the Xen Project is currently experiencing
unexpected changes due to the sudden shutdown of our colocated (colo) data
center facility by Synoptek. This incident is beyond our control and will
impact the continuity of OSSTest (the gating Xen Project CI loop), which we
heavily rely on as a project. We understand the inconvenience this may
cause to our users and stakeholders, and we are working diligently to
consider different solutions as swiftly as possible.

What Happened?

We received a notification from our colo facility provider Synoptek
indicating the shutdown of their services in Marlborough, where our current
facility is located. As a result, the OSSTest instance hosted at this
facility will likely be disrupted with an anticipated shutdown date of
October 31st, 2024.

Potential Impact

The potential consequence of this shutdown may mean availability of OSSTest
will be impacted, therefore affecting the number of bugs being caught.
Contributors may experience quality issues with code, or face slower
response times as our technical community spends more time resolving
issues. We are aware of the critical nature of the services we provide and
the significant impact this downtime may have.

Our Response

We are in constant communication with the colo facility provider, our IT
contractors, and our Board Members to understand the scope of the problem
and the estimated time for resolution. Additionally, we are exploring
alternative solutions to restore our services as quickly as possible. These
measures include:

Engaging with the Colo Facility Provider (Synoptek): We are working with
the provider to negotiate costs and the likelihood of us moving to another
facility as this was an unforeseen change.

Engaging with third parties: We have initiated discussions with our IT
contractors and third-party providers to find potential alternatives,
including other location facilities and donations of funds to support this
move.

Options we are considering:

   -

   Move our current hardware to a different co-location.
   -

      This could be another provider, a member of the Advisory Board, a
      University, or a similar organization that offers services for
Open Source
      projects.
      -

      This could include moving all the infrastructure, or just part of it,
      depending on costs and space available at the destination.
      -

   Abandon our hardware, and either re-create OSSTest from scratch at a
   different location or switch to a different test system (Gitlab CI).


All options have risks associated.

Further Considerations:

Moving the current hardware is expensive, even to a location provided for
free.  It is unknown whether our hardware will survive the move, or if we
will be able to recreate the setup at the new location. Furthermore, our
current IT contractors who help us manage the facility can only serve the
Boston area which means we will need to factor this in when choosing a new
location.

Our technical leadership team has considered abandoning our infrastructure
and creating a new OSSTest instance, however, as it involves acquiring new
hardware there is no guarantee we will be able to set up the new instance
successfully.

An option to mitigate this risk could be to deploy on a metal-as-a-service
provider, but that would require changes to OSSTest.

As a last resort, abandoning OSSTest has been discussed.  The project has
no replacement for a test coverage similar to what OSSTest provides.  Even
if Gitlab CI expanded test coverage similar to what OSSTest currently
covers, some features are unlikely to be replicated: automatic bisections
on regressions and testing of external projects (Linux kernel, QEMU, OVMF=
=E2=80=A6).

Input from the community

While we work on identifying different options, there are a few steps you
can take to stay informed.

Stay Updated: Keep an eye on our official communication channels for
real-time updates and information about the status of our services.

Get involved: We appreciate you may have feedback and questions, which is
why you are welcome to join the next monthly community call (Thursday 11th
July 2024) to provide your input.

Assistance: We welcome members of our community to provide resources or
suggest ideas that may help our project.

Looking Ahead

Our goal is to identify and implement measures that will minimize the
impact on our project. We will carefully consider the feasibility of
solutions, budget constraints, and the long-term needs of the Xen Project.

We apologize for the inconvenience caused by this unexpected announcement
and appreciate your understanding and patience as we navigate this
challenging situation. Your trust and continued support are invaluable to
us, and we remain committed to developing a powerful and reliable
open-source hypervisor.

Sincerely,

Kelly Choi


Community Manager
Xen Project

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

<div dir=3D"ltr"><span id=3D"gmail-docs-internal-guid-5172359f-7fff-b254-77=
59-22851cee11ab"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;ma=
rgin-bottom:16pt"><span style=3D"background-color:transparent;color:rgb(0,0=
,0);font-family:Arial,sans-serif;font-size:11pt">Dear Xen Community,</span>=
</p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:1=
6pt"><span style=3D"background-color:transparent;color:rgb(0,0,0);font-fami=
ly:Arial,sans-serif;font-size:11pt">We regret to inform you that the Xen Pr=
oject is currently experiencing unexpected changes due to the sudden shutdo=
wn of our colocated (colo) data center facility by Synoptek. This incident =
is beyond our control and will impact the continuity of OSSTest (the gating=
 Xen Project CI loop), which we heavily rely on as a project. We understand=
 the inconvenience this may cause to our users and stakeholders, and we are=
 working diligently to consider different solutions as swiftly as possible.=
</span><br></p><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;=
margin-bottom:16pt"><span style=3D"font-size:15pt;font-family:Arial,sans-se=
rif;color:rgb(102,102,102);background-color:transparent;font-variant-numeri=
c:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vert=
ical-align:baseline">What Happened?</span></p><p dir=3D"ltr" style=3D"line-=
height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:11pt=
;font-family:Arial,sans-serif;color:rgb(0,0,0);background-color:transparent=
;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-al=
ternates:normal;vertical-align:baseline">We received a notification from ou=
r colo facility provider Synoptek indicating the shutdown of their services=
 in Marlborough, where our current facility is located. As a result, the OS=
STest instance hosted at this facility will likely be disrupted with an ant=
icipated shutdown date of October 31st, 2024.</span></p><br><p dir=3D"ltr" =
style=3D"line-height:1.38;margin-top:0pt;margin-bottom:16pt"><span style=3D=
"font-size:15pt;font-family:Arial,sans-serif;color:rgb(102,102,102);backgro=
und-color:transparent;font-variant-numeric:normal;font-variant-east-asian:n=
ormal;font-variant-alternates:normal;vertical-align:baseline">Potential Imp=
act</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margi=
n-bottom:0pt"><span style=3D"font-size:11pt;font-family:Arial,sans-serif;co=
lor:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;fon=
t-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:b=
aseline">The potential consequence of this shutdown may mean availability o=
f OSSTest will be impacted, therefore affecting the number of bugs being ca=
ught. Contributors may experience quality issues with code, or face slower =
response times as our technical community spends more time resolving issues=
. We are aware of the critical nature of the services we provide and the si=
gnificant impact this downtime may have.</span></p><br><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:16pt"><span style=3D"font=
-size:15pt;font-family:Arial,sans-serif;color:rgb(102,102,102);background-c=
olor:transparent;font-variant-numeric:normal;font-variant-east-asian:normal=
;font-variant-alternates:normal;vertical-align:baseline">Our Response</span=
></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:=
0pt"><span style=3D"font-size:11pt;font-family:Arial,sans-serif;color:rgb(0=
,0,0);background-color:transparent;font-variant-numeric:normal;font-variant=
-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">=
We are in constant communication with the colo facility provider, our IT co=
ntractors, and our Board Members to understand the scope of the problem and=
 the estimated time for resolution. Additionally, we are exploring alternat=
ive solutions to restore our services as quickly as possible. These measure=
s include:</span></p><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-to=
p:0pt;margin-bottom:0pt"><span style=3D"font-size:11pt;font-family:Arial,sa=
ns-serif;color:rgb(0,0,0);background-color:transparent;font-weight:700;font=
-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alterna=
tes:normal;vertical-align:baseline">Engaging with the Colo Facility Provide=
r (Synoptek): </span><span style=3D"font-size:11pt;font-family:Arial,sans-s=
erif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:nor=
mal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-=
align:baseline">We are working with the provider to negotiate costs and the=
 likelihood of us moving to another facility as this was an unforeseen chan=
ge.=C2=A0</span></p><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top=
:0pt;margin-bottom:0pt"><span style=3D"font-size:11pt;font-family:Arial,san=
s-serif;color:rgb(0,0,0);background-color:transparent;font-weight:700;font-=
variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternat=
es:normal;vertical-align:baseline">Engaging with third parties:</span><span=
 style=3D"font-size:11pt;font-family:Arial,sans-serif;color:rgb(0,0,0);back=
ground-color:transparent;font-variant-numeric:normal;font-variant-east-asia=
n:normal;font-variant-alternates:normal;vertical-align:baseline"> We have i=
nitiated discussions with our IT contractors and third-party providers to f=
ind potential alternatives, including other location facilities and donatio=
ns of funds to support this move.=C2=A0</span></p><br><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-=
size:11pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background-color:tr=
ansparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asi=
an:normal;font-variant-alternates:normal;vertical-align:baseline">Options w=
e are considering:</span></p><ul style=3D"margin-top:0px;margin-bottom:0px"=
><li dir=3D"ltr" style=3D"list-style-type:disc;font-size:11pt;font-family:A=
rial,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-=
numeric:normal;font-variant-east-asian:normal;font-variant-alternates:norma=
l;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-hei=
ght:1.38;margin-top:0pt;margin-bottom:0pt" role=3D"presentation"><span styl=
e=3D"font-size:11pt;background-color:transparent;font-variant-numeric:norma=
l;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-al=
ign:baseline">Move our current hardware to a different co-location.=C2=A0</=
span></p></li><ul style=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr=
" style=3D"list-style-type:circle;font-size:11pt;font-family:Arial,sans-ser=
if;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:norma=
l;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-al=
ign:baseline;white-space:pre"><p dir=3D"ltr" style=3D"line-height:1.38;marg=
in-top:0pt;margin-bottom:0pt" role=3D"presentation"><span style=3D"font-siz=
e:11pt;background-color:transparent;font-variant-numeric:normal;font-varian=
t-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"=
>This could be another provider, a member of the Advisory Board, a Universi=
ty, or a similar organization that offers services for Open Source projects=
.</span></p></li><li dir=3D"ltr" style=3D"list-style-type:circle;font-size:=
11pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background-color:transpa=
rent;font-variant-numeric:normal;font-variant-east-asian:normal;font-varian=
t-alternates:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr"=
 style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt" role=3D"presen=
tation"><span style=3D"font-size:11pt;background-color:transparent;font-var=
iant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:=
normal;vertical-align:baseline">This could include moving all the infrastru=
cture, or just part of it, depending on costs and space available at the de=
stination.</span></p></li></ul><li dir=3D"ltr" style=3D"list-style-type:dis=
c;font-size:11pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background-c=
olor:transparent;font-variant-numeric:normal;font-variant-east-asian:normal=
;font-variant-alternates:normal;vertical-align:baseline;white-space:pre"><p=
 dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt" ro=
le=3D"presentation"><span style=3D"font-size:11pt;background-color:transpar=
ent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant=
-alternates:normal;vertical-align:baseline">Abandon our hardware, and eithe=
r re-create OSSTest from scratch at a different location or switch to a dif=
ferent test system (Gitlab CI).</span></p></li></ul><br><p dir=3D"ltr" styl=
e=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font=
-size:11pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background-color:t=
ransparent;font-weight:700;font-variant-numeric:normal;font-variant-east-as=
ian:normal;font-variant-alternates:normal;vertical-align:baseline">All opti=
ons have risks associated.</span></p><br><p dir=3D"ltr" style=3D"line-heigh=
t:1.38;margin-top:0pt;margin-bottom:16pt"><span style=3D"font-size:15pt;fon=
t-family:Arial,sans-serif;color:rgb(102,102,102);background-color:transpare=
nt;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-=
alternates:normal;vertical-align:baseline">Further Considerations:</span></=
p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt=
"><span style=3D"font-size:11pt;font-family:Arial,sans-serif;color:rgb(0,0,=
0);background-color:transparent;font-variant-numeric:normal;font-variant-ea=
st-asian:normal;font-variant-alternates:normal;vertical-align:baseline">Mov=
ing the current hardware is expensive, even to a location provided for free=
.=C2=A0 It is unknown whether our hardware will survive the move, or if we =
will be able to recreate the setup at the new location. Furthermore, our cu=
rrent IT contractors who help us manage the facility can only serve the Bos=
ton area which means we will need to factor this in when choosing a new loc=
ation.</span></p><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0p=
t;margin-bottom:0pt"><span style=3D"font-size:11pt;font-family:Arial,sans-s=
erif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:nor=
mal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-=
align:baseline">Our technical leadership team has considered abandoning our=
 infrastructure and creating a new OSSTest instance, however, as it involve=
s acquiring new hardware there is no guarantee we will be able to set up th=
e new instance successfully.</span></p><br><p dir=3D"ltr" style=3D"line-hei=
ght:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:11pt;fo=
nt-family:Arial,sans-serif;color:rgb(0,0,0);background-color:transparent;fo=
nt-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alter=
nates:normal;vertical-align:baseline">An option to mitigate this risk could=
 be to deploy on a metal-as-a-service provider, but that would require chan=
ges to OSSTest.</span></p><br><p dir=3D"ltr" style=3D"line-height:1.38;marg=
in-top:0pt;margin-bottom:0pt"><span style=3D"font-size:11pt;font-family:Ari=
al,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-nu=
meric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;=
vertical-align:baseline">As a last resort, abandoning OSSTest has been disc=
ussed.=C2=A0 The project has no replacement for a test coverage similar to =
what OSSTest provides.=C2=A0 Even if Gitlab CI expanded test coverage simil=
ar to what OSSTest currently covers, some features are unlikely to be repli=
cated: automatic bisections on regressions and testing of external projects=
 (Linux kernel, QEMU, OVMF=E2=80=A6).</span></p><br><p dir=3D"ltr" style=3D=
"line-height:1.38;margin-top:0pt;margin-bottom:16pt"><span style=3D"font-si=
ze:15pt;font-family:Arial,sans-serif;color:rgb(102,102,102);background-colo=
r:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;fo=
nt-variant-alternates:normal;vertical-align:baseline">Input from the commun=
ity</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margi=
n-bottom:0pt"><span style=3D"font-size:11pt;font-family:Arial,sans-serif;co=
lor:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;fon=
t-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:b=
aseline">While we work on identifying different options, there are a few st=
eps you can take to stay informed.</span></p><br><p dir=3D"ltr" style=3D"li=
ne-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:1=
1pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background-color:transpar=
ent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:nor=
mal;font-variant-alternates:normal;vertical-align:baseline">Stay Updated: <=
/span><span style=3D"font-size:11pt;font-family:Arial,sans-serif;color:rgb(=
0,0,0);background-color:transparent;font-variant-numeric:normal;font-varian=
t-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"=
>Keep an eye on our official communication channels for real-time updates a=
nd information about the status of our services.</span></p><br><p dir=3D"lt=
r" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=
=3D"font-size:11pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background=
-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant=
-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">=
Get involved: </span><span style=3D"font-size:11pt;font-family:Arial,sans-s=
erif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:nor=
mal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-=
align:baseline">We appreciate you may have feedback and questions, which is=
 why you are welcome to join the next monthly community call (Thursday 11th=
 July 2024) to provide your input.</span></p><br><p dir=3D"ltr" style=3D"li=
ne-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:1=
1pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background-color:transpar=
ent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:nor=
mal;font-variant-alternates:normal;vertical-align:baseline">Assistance:</sp=
an><span style=3D"font-size:11pt;font-family:Arial,sans-serif;color:rgb(0,0=
,0);background-color:transparent;font-variant-numeric:normal;font-variant-e=
ast-asian:normal;font-variant-alternates:normal;vertical-align:baseline"> W=
e welcome members of our community to provide resources or suggest ideas th=
at may help our project.=C2=A0</span></p><br><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:16pt"><span style=3D"font-size:15pt=
;font-family:Arial,sans-serif;color:rgb(102,102,102);background-color:trans=
parent;font-variant-numeric:normal;font-variant-east-asian:normal;font-vari=
ant-alternates:normal;vertical-align:baseline">Looking Ahead</span></p><p d=
ir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><spa=
n style=3D"font-size:11pt;font-family:Arial,sans-serif;color:rgb(0,0,0);bac=
kground-color:transparent;font-variant-numeric:normal;font-variant-east-asi=
an:normal;font-variant-alternates:normal;vertical-align:baseline">Our goal =
is to identify and implement measures that will minimize the impact on our =
project. We will carefully consider the feasibility of solutions, budget co=
nstraints, and the long-term needs of the Xen Project.</span></p><br><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span =
style=3D"font-size:11pt;font-family:Arial,sans-serif;color:rgb(0,0,0);backg=
round-color:transparent;font-variant-numeric:normal;font-variant-east-asian=
:normal;font-variant-alternates:normal;vertical-align:baseline">We apologiz=
e for the inconvenience caused by this unexpected announcement and apprecia=
te your understanding and patience as we navigate this challenging situatio=
n. Your trust and continued support are invaluable to us, and we remain com=
mitted to developing a powerful and reliable open-source hypervisor.</span>=
</p><br></span><div><div dir=3D"ltr" class=3D"gmail_signature" data-smartma=
il=3D"gmail_signature"><div dir=3D"ltr"><div><span id=3D"gmail-docs-interna=
l-guid-c80edd15-7fff-eed5-f9a1-de3da802e70c"><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:11pt;=
font-family:Arial,sans-serif;color:rgb(0,0,0);background-color:transparent;=
font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alt=
ernates:normal;vertical-align:baseline">Sincerely,</span></p><br><p dir=3D"=
ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span styl=
e=3D"font-size:11pt;font-family:Arial,sans-serif;color:rgb(0,0,0);backgroun=
d-color:transparent;font-variant-numeric:normal;font-variant-east-asian:nor=
mal;font-variant-alternates:normal;vertical-align:baseline">Kelly=C2=A0Choi=
</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-b=
ottom:0pt"><span style=3D"font-size:11pt;font-family:Arial,sans-serif;color=
:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-v=
ariant-east-asian:normal;font-variant-alternates:normal;vertical-align:base=
line"><br></span></p></span></div><div><div style=3D"color:rgb(136,136,136)=
">Community Manager</div><div style=3D"color:rgb(136,136,136)">Xen Project=
=C2=A0<br></div></div></div></div></div></div>

--000000000000975796061ce2d510--


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 11:28:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 11:28:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756875.1165621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRVUQ-0004ve-Dv; Wed, 10 Jul 2024 11:28:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756875.1165621; Wed, 10 Jul 2024 11:28: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 1sRVUQ-0004vX-B3; Wed, 10 Jul 2024 11:28:02 +0000
Received: by outflank-mailman (input) for mailman id 756875;
 Wed, 10 Jul 2024 11:28: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=urFr=OK=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1sRVOH-00011k-N5
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 11:21:41 +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 937a65ee-3eae-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 13:21:39 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e38027so7677215a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 04:21: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: 937a65ee-3eae-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720610498; x=1721215298; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=CrUaedVc4Zs/lkDns9Qi/jUgL4HD/9st6mTw+uTtIXE=;
        b=Uv4saWsPDqddI3+5kD/Hh3LBsYXKDRQCLMRx/0NVfg4fh3YjjII5SRqaQFHS2m2OJ4
         WFna3PPkMVVdmozua7q7gVS2cKx0yC2LlIQmQdlEH8Emtke8QjKyK11kdHwL0hA3MzlM
         ZrOqYyzDba6OQXOwISsBiM+kQl1OBKeyHcz9k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720610498; x=1721215298;
        h=to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=CrUaedVc4Zs/lkDns9Qi/jUgL4HD/9st6mTw+uTtIXE=;
        b=Wd9Ne8PJcj6Dl8yLcnGnlXcxu5xdvwEtQUh8F90BUAoeFcLd60BSnJDuGg8+TqV9A1
         Jux76SNToalYir8x3nRaGzv8tHRVxzuHMxfZmEsL0zQm8M90z6zQIj24Tv8+Z0UPfd/d
         kSz+zl865TzK7wB7lBDN17QhQncbQxuEJE0Rdot0I1C/xMLv/tlRSj6GYrqDsdCjSteA
         xTBb6/KhzfWzedSaD7HVLqTFqdawIC7lU/fbu4AfqqEG4hZYeaCCf7Kv0P3lqMD8Q8kc
         UcTZn2aVm96Xg/iHS3t1r62eF5EjvBALT62zjZ6uMGXQUr3rieYj3DheHNHtKMiRNh8w
         ES5A==
X-Gm-Message-State: AOJu0YxTnzJtTA8lvmFy28TnAf7LIHawyGz4weiQOUULAYLTmZR9q1aE
	po8ENLWbIAByus+/azbXKa5dIxyvggoTQs0Ji8jubPAVQExxr6WbxoqxgwGXt3uVcYySMwFov9j
	Dk807yXceq8ASSqAXAn+0Ei6ele9A5AAjwz9NVV88kj2G0DJYjfOCVrGujBQ=
X-Google-Smtp-Source: AGHT+IF1MSaFZ5t/usnA+qlxEWDJ4IHwOHIZBjikl9uKypla+GJdGMGF5+kbohHymzIyHodLbrctILpBkKC82i6+YJo=
X-Received: by 2002:a17:906:f80e:b0:a77:dc23:5625 with SMTP id
 a640c23a62f3a-a780b6b2e6emr312983766b.22.1720610498014; Wed, 10 Jul 2024
 04:21:38 -0700 (PDT)
MIME-Version: 1.0
From: Kelly Choi <kelly.choi@cloud.com>
Date: Wed, 10 Jul 2024 12:21:02 +0100
Message-ID: <CAO-mL=zoG6bKK0XA5xQu_=wBGHY62TEVkq1Q3ODGXRtNmKw_dQ@mail.gmail.com>
Subject: [ANNOUNCE] Call for agenda items - Community Call 11th July 2024
To: xen-devel <xen-devel@lists.xenproject.org>, xen-users@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000881489061ce2d9e9"

--000000000000881489061ce2d9e9
Content-Type: text/plain; charset="UTF-8"

Hi all,

*Please add your proposed agenda items below.*

https://cryptpad.fr/pad/#/2/pad/edit/8+z7QnqdirEYBrspUHUJvxCZ/

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

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

*DATE: Thursday 11th July 2024*

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


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








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

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

Many thanks,
Kelly Choi

Community Manager
Xen Project

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

<div dir=3D"ltr"><div>Hi all,<br><p><u>Please add your proposed agenda item=
s below.</u>=C2=A0</p><p><a href=3D"https://cryptpad.fr/pad/#/2/pad/edit/8+=
z7QnqdirEYBrspUHUJvxCZ/">https://cryptpad.fr/pad/#/2/pad/edit/8+z7QnqdirEYB=
rspUHUJvxCZ/</a>=C2=A0<br></p><p>If any action items are missing or have be=
en resolved, please add/remove them from the sheet.=C2=A0</p><p><b><span cl=
ass=3D"gmail-il">CALL</span>=C2=A0LINK:=C2=A0<a href=3D"https://www.google.=
com/url?q=3Dhttps://meet.jit.si/XenProjectCommunityCall&amp;sa=3DD&amp;sour=
ce=3Dcalendar&amp;ust=3D1699196661201312&amp;usg=3DAOvVaw1FcogEsMjFSd1Pmi7V=
0cBc" target=3D"_blank">https://meet.jit.si/XenProjectCommunityCall</a></b>=
</p><p><b>DATE: Thursday 11th July 2024</b></p><p><b>TIME: 1500 UTC (4 pm U=
K time)</b></p><i>Note the following administrative conventions for the=C2=
=A0<span class=3D"gmail-il">call</span>:</i></div><div><div><i>* To allow t=
ime to switch between meetings, we plan on starting the<br>agenda at 15:05 =
UTC sharp.=C2=A0 Aim to join by 15:03 UTC if possible to allocate<br>time t=
o sort out technical difficulties.</i></div><div><i><br>* If you want to be=
 CC&#39;ed please add or remove yourself from the<br>sign-up-sheet at=C2=A0=
<a href=3D"https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/" =
rel=3D"noreferrer" target=3D"_blank">https://cryptpad.fr/pad/#/2/pad/edit/D=
9vGzihPxxAOe6RFPz0sRCf+/</a><br><br>=3D=3D=C2=A0<span class=3D"gmail-il">Di=
al</span>-in Information =3D=3D<br>## Meeting time<br>16:00 - 17:00 British=
 time<br>Further International meeting times:<br></i><a href=3D"https://www=
.timeanddate.com/worldclock/meetingdetails.html?year=3D2024&amp;month=3D7&a=
mp;day=3D11=3D4&amp;hour=3D15&amp;min=3D0&amp;sec=3D0&amp;p1=3D1234&amp;p2=
=3D37&amp;p3=3D224&amp;p4=3D179" target=3D"_blank">https://www.timeanddate.=
com/worldclock/meetingdetails.html?year=3D2024&amp;month=3D7&amp;day=3D11=
=3D4&amp;hour=3D15&amp;min=3D0&amp;sec=3D0&amp;p1=3D1234&amp;p2=3D37&amp;p3=
=3D224&amp;p4=3D179</a><br><br>##=C2=A0<span class=3D"gmail-il">Dial</span>=
=C2=A0in details<br><a href=3D"https://meet.jit.si/static/dialInInfo.html?r=
oom=3DXenProjectCommunityCall" rel=3D"noreferrer" target=3D"_blank">https:/=
/meet.jit.si/static/dialInInfo.html?room=3DXenProjectCommunityCall</a><div>=
</div></div></div><div><br></div><div><div dir=3D"ltr" class=3D"gmail_signa=
ture" data-smartmail=3D"gmail_signature"><div dir=3D"ltr"><div>Many thanks,=
</div><div>Kelly Choi</div><div><br></div><div><div style=3D"color:rgb(136,=
136,136)">Community Manager</div><div style=3D"color:rgb(136,136,136)">Xen =
Project=C2=A0<br></div></div></div></div></div></div>

--000000000000881489061ce2d9e9--


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 11:30:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 11:30:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756902.1165630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRVWU-0006r4-O9; Wed, 10 Jul 2024 11:30:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756902.1165630; Wed, 10 Jul 2024 11: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 1sRVWU-0006qx-Lf; Wed, 10 Jul 2024 11:30:10 +0000
Received: by outflank-mailman (input) for mailman id 756902;
 Wed, 10 Jul 2024 11:30: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=drOD=OK=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sRVOt-00011k-Ob
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 11:22:19 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20620.outbound.protection.outlook.com
 [2a01:111:f403:240a::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a9c43a52-3eae-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 13:22:18 +0200 (CEST)
Received: from BN9P222CA0017.NAMP222.PROD.OUTLOOK.COM (2603:10b6:408:10c::22)
 by CH3PR12MB7692.namprd12.prod.outlook.com (2603:10b6:610:145::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.20; Wed, 10 Jul
 2024 11:22:10 +0000
Received: from BN3PEPF0000B070.namprd21.prod.outlook.com
 (2603:10b6:408:10c:cafe::6) by BN9P222CA0017.outlook.office365.com
 (2603:10b6:408:10c::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36 via Frontend
 Transport; Wed, 10 Jul 2024 11:22:10 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B070.mail.protection.outlook.com (10.167.243.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.5 via Frontend Transport; Wed, 10 Jul 2024 11:22: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; Wed, 10 Jul
 2024 06:22:09 -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, 10 Jul 2024 06: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: a9c43a52-3eae-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NKRHZ5jb8SOGZUdDfViQy4fLM6wNiNmPHJhgd4uVxcml81aocyQxgdqmomfJIrlBRx78xlA4As99t9jdEJhnijJuyogXm770Y8DU2qBoO3ic5mwF2n30pUeYOH6BIVCATeElIHon//e+z114e/rkONpon5aTcg9RY1NcT6yEcz1EyQAchYRccX5GsWeRR7Yz04WKqEfmgTjNpO9Ffaaq5kiUZxwXaajDob01Ic6kBWB9yzNjir5rJ6W/mPLvp0auWDrM2lZYSmHZdYEngQ2TA0iv5ZIrnnQCJev1haOnXTYbYEvWcE+vX5vAfcYjceC5Bo99FHKiuNyPWOK/QbH1sw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Z43cZeKSdhq3v6JXln/ykC0j1uv41JjKp5FJGFs3XtE=;
 b=YjExbOcqpfmGB9XyFMkJWCdgXzPQe70kK+g3/AleptwziRDrzvFbhYsDnar9VK9d1Ppz2yck3fEa3WcRdzicJCpYlZAXVyzNe1ttv81qOS5vSxcohnLNepxz3ncR3/scmcavYg9Oj4/4/4+pRXNgh8Lkc9fTrb01FiLhBUIQk/vnS1MpdsbPDZNRpbqPmnv4l2I5OpWdvLyK1JsSMXBEWIcjOlNjOj7oGuyHRUGkZCMnzEBniYn/N8XL805fEIWqoqy4YdySOD0H5niPG1CY0o3QX1rim62SNQ6LiLyTYvW7c7HuGECOTb0Ioy7TnXUJYZazC33syW9hwRSDuppT/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=Z43cZeKSdhq3v6JXln/ykC0j1uv41JjKp5FJGFs3XtE=;
 b=5eigp3WEKqXsLgiw61C9MlZs66CGYjU0COs9Prsbt4bc+Qnc6X5SqldBZdXlvesuh738QvXWk6CpwydctSwr4epWUQvU5+IzLqVurq47JUCjK8vCRORo8JecN++waolmDsPCh6YY7a2dIVEnHdJNJdgHNe/Y1Usu4l8rWAKX0UA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>,
	Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH for-4.20 v2] xen/arm: bootfdt: Fix device tree memory node probing
Date: Wed, 10 Jul 2024 13:22:04 +0200
Message-ID: <20240710112204.33542-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: BN3PEPF0000B070:EE_|CH3PR12MB7692:EE_
X-MS-Office365-Filtering-Correlation-Id: a546f256-c261-4f3a-7b5f-08dca0d28a14
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?dl6RomFeiMtPoQIZk/bH4uFZs0BsziWXv0mRqACO9XTIR3XpKpHx/1JNXlft?=
 =?us-ascii?Q?KQBfdL7ldJ7WWYGnYiMngkyBCCyaUjT0+pjQZ9onLpIiKUTLmsuSXlzhAvx3?=
 =?us-ascii?Q?WN9JOYRwyKdkMOcC4LfKWNxI6hwagGztCEtfKWnLBEyChcibp/Ca210fVoH+?=
 =?us-ascii?Q?7R4v2ujD1/8wGbJe4fuJXY6gZ3E7KygcMotz5XgX9cWj66ncJKDYJ2M8NHWl?=
 =?us-ascii?Q?axmnOfucPiPT1yaB1+Tyy/uH6JD5I8DsbqjsZHx97ttQGXclAZLTT9btjAmU?=
 =?us-ascii?Q?LlQwgg0seNNnlM7WUYoygxqjsS3n8h4xBPK/BJEK+31BF484aL9/qe6qN2DQ?=
 =?us-ascii?Q?kVwdWAyfXmcKe4M1UipM2Eqhf7KR4K8mQWzgKCTg1Fl9KYM3yBGrGFNAl6HT?=
 =?us-ascii?Q?LrLgjkpoJQ+eLoN1atSoBC7VyO7GM4W95APJ3rnin4pC68ELnil5FGsDubhb?=
 =?us-ascii?Q?G206R4/nvQmdvboA5+3f+ozsobaW75nB8OPtrSdUIAX34CtfhbLSBEDJrjZf?=
 =?us-ascii?Q?Mg5lUf8BeOeGIgry+R7DSUjAondGr8KAiDVUCsvn3f7hQSxjKueEXv87Mco6?=
 =?us-ascii?Q?evhOvmUUkVD+P1jubjkrtx/s3qdp0EHiez5A8xXiPhQeiyJMDaRqMluIhyT1?=
 =?us-ascii?Q?9AkH81WwvGvCBYHxbvZhEOPn6/5Akw1ROcDHtp0U1+phOarllrTqn33wCfC4?=
 =?us-ascii?Q?WC0nNPum4h5NAG1Lo3hb/tSE5uAV2GBboyTNrggNQ8U78z96fCxu7ldNGkgK?=
 =?us-ascii?Q?esDjhOSV6Q9zR/OcGoMAWh3yzHVPSc2qbrzBFGMYd4LS7LE4R9z92hCWcVAT?=
 =?us-ascii?Q?a76FvQ51dTS3gFJyNBf1XtlWOVU5X6B3cCDL7ls0dKwtb6C66HCpTali2FD2?=
 =?us-ascii?Q?FQT5swBDjXtHZ4EhTUXibHTISWAXPpTq9+jkwcxDMg17D41yYoQpaLcM1ZLr?=
 =?us-ascii?Q?hft5QVYrWIAn/u+7tvbVgvY5BYFAZO/YWjNeToHcTwdui5fNWA6IWjHZou5z?=
 =?us-ascii?Q?giZnVyIJra34geI2Iat4wS/Qgqu+Y9x5JmBcSDGnswDeicSLWKxFPhSYI3Ii?=
 =?us-ascii?Q?wJu3NaM5hgshV6Z50NycgI4uHvLtIBsHnJtVmP0h8lxB0eanacvfxMKWYMa1?=
 =?us-ascii?Q?T4B5JQSPnNCJ1VdPTmgBnUf5nYwEaZ+yYsV4CWvnvz++sj9eivmaVLhK9FDj?=
 =?us-ascii?Q?rVpGE/JVAWv8+JmPoFv4fgLyU6OFOO0NE5QGVMHnDImm+PntQ/IMzTQBK6+x?=
 =?us-ascii?Q?h7wd466Ht1ntgUu3KMC+QzkE9sFY4g5rNYFY+3qVsHAIFVQsGoOSYrA15kxf?=
 =?us-ascii?Q?O4oal1GnLFd2kVZ0kVl2ZAiLjT/0R4dFamn+o2cI72qsl4LYFf0uSq+Dw4fW?=
 =?us-ascii?Q?5hLOtPVnqy69P7GGjmraR6R+tFXmzwUn2sEFwXgq0A0LSL1LiHblC6ZyH64S?=
 =?us-ascii?Q?ysUpThHrv7d/ikHlvEKwlnxJTPQ8GdIr?=
X-Forefront-Antispam-Report:
	CIP:165.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: 10 Jul 2024 11:22:09.7442
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a546f256-c261-4f3a-7b5f-08dca0d28a14
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B070.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7692

Memory node probing is done as part of early_scan_node() that is called
for each node with depth >= 1 (root node is at depth 0). According to
Devicetree Specification v0.4, chapter 3.4, /memory node can only exists
as a top level node. However, Xen incorrectly considers all the nodes with
unit node name "memory" as RAM. This buggy behavior can result in a
failure if there are other nodes in the device tree (at depth >= 2) with
"memory" as unit node name. An example can be a "memory@xxx" node under
/reserved-memory. Fix it by introducing device_tree_is_memory_node() to
perform all the required checks to assess if a node is a proper /memory
node.

Fixes: 3e99c95ba1c8 ("arm, device tree: parse the DTB for RAM location and size")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Tested-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes in v2:
 - improve the length check
---
 xen/arch/arm/bootfdt.c | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
index 6e060111d95b..f2892fce0a9c 100644
--- a/xen/arch/arm/bootfdt.c
+++ b/xen/arch/arm/bootfdt.c
@@ -83,6 +83,32 @@ static bool __init device_tree_node_compatible(const void *fdt, int node,
     return false;
 }
 
+/*
+ * Check if a node is a proper /memory node according to Devicetree
+ * Specification v0.4, chapter 3.4.
+ */
+static bool __init device_tree_is_memory_node(const void *fdt, int node,
+                                              int depth)
+{
+    const char *type;
+    int len;
+
+    if ( depth != 1 )
+        return false;
+
+    if ( !device_tree_node_matches(fdt, node, "memory") )
+        return false;
+
+    type = fdt_getprop(fdt, node, "device_type", &len);
+    if ( !type )
+        return false;
+
+    if ( (len <= strlen("memory")) || strcmp(type, "memory") )
+        return false;
+
+    return true;
+}
+
 void __init device_tree_get_reg(const __be32 **cell, uint32_t address_cells,
                                 uint32_t size_cells, paddr_t *start,
                                 paddr_t *size)
@@ -448,7 +474,7 @@ static int __init early_scan_node(const void *fdt,
      * populated. So we should skip the parsing.
      */
     if ( !efi_enabled(EFI_BOOT) &&
-         device_tree_node_matches(fdt, node, "memory") )
+         device_tree_is_memory_node(fdt, node, depth) )
         rc = process_memory_node(fdt, node, name, depth,
                                  address_cells, size_cells, bootinfo_get_mem());
     else if ( depth == 1 && !dt_node_cmp(name, "reserved-memory") )
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 11:32:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 11:32:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756909.1165642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRVYX-0007T8-5L; Wed, 10 Jul 2024 11:32:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756909.1165642; Wed, 10 Jul 2024 11:32:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRVYX-0007T1-0d; Wed, 10 Jul 2024 11:32:17 +0000
Received: by outflank-mailman (input) for mailman id 756909;
 Wed, 10 Jul 2024 11: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=Lkdt=OK=tesarici.cz=petr@srs-se1.protection.inumbo.net>)
 id 1sRVYT-0007Sr-Jj
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 11:32:15 +0000
Received: from bee.tesarici.cz (bee.tesarici.cz [37.205.15.56])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0c228b6d-3eb0-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 13:32:11 +0200 (CEST)
Received: from mordecai.tesarici.cz
 (dynamic-2a00-1028-83b8-1e7a-3010-3bd6-8521-caf1.ipv6.o2.cz
 [IPv6:2a00:1028:83b8:1e7a:3010:3bd6:8521:caf1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 by bee.tesarici.cz (Postfix) with ESMTPSA id 4C74C1E33D1;
 Wed, 10 Jul 2024 13:32:10 +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: 0c228b6d-3eb0-11ef-8776-851b0ebba9a2
Authentication-Results: mail.tesarici.cz; dmarc=fail (p=quarantine dis=none) header.from=tesarici.cz
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tesarici.cz; s=mail;
	t=1720611130; bh=moHes3pnqVk61P66RkEXxoLuJdZ/zT/x933Dj0tPO7U=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=A0mA/v5z1/FWOl7Z7VV+oN9LRRUp/ACb0HMAtlO3u6hH/6Ph52DVNy502vk3QXxmj
	 l0OSQsKlqu9YVZ7Ve4lEGWsekGte9uAxFm7HdlLz7Y1/hFqPF5IU0Tq/f4PsU5IvvP
	 KNRWuK1Oo8yoNKxRQuz4N9v8QyCi2oAUyUQiz4WeloiEPGZuReLfHnyo2rJbk3QA8U
	 b9bW3haJadDoGY8DZZDYzUKfC/yT2gNj5vmHdsCM7W4cvIH63qehWF0o1ojwsHNkQg
	 /d9V7wTWwF99wHnal5hC0MrnwV10x7Kl7dVvGyx5olfAA+QqSKovJKAlyTuR5jbWzS
	 QV/dvdSNN15kQ==
Date: Wed, 10 Jul 2024 13:32:05 +0200
From: Petr =?UTF-8?B?VGVzYcWZw61r?= <petr@tesarici.cz>
To: Christoph Hellwig <hch@lst.de>
Cc: mhkelley58@gmail.com, mhklinux@outlook.com, robin.murphy@arm.com,
 joro@8bytes.org, will@kernel.org, jgross@suse.com, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, m.szyprowski@samsung.com,
 iommu@lists.linux.dev, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Message-ID: <20240710133205.63858e7a@mordecai.tesarici.cz>
In-Reply-To: <20240710055520.GA25305@lst.de>
References: <20240708194100.1531-1-mhklinux@outlook.com>
	<20240709111013.6103d3f0@mordecai.tesarici.cz>
	<20240709111812.GB4421@lst.de>
	<20240709210818.28116c53@meshulam.tesarici.cz>
	<20240710055520.GA25305@lst.de>
X-Mailer: Claws Mail 4.2.0 (GTK 3.24.42; x86_64-suse-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Wed, 10 Jul 2024 07:55:20 +0200
Christoph Hellwig <hch@lst.de> wrote:

> On Tue, Jul 09, 2024 at 09:08:18PM +0200, Petr Tesa=C5=99=C3=ADk wrote:
> > I'm confused. If you're not a big fan, why are we effectively adding
> > them to more places now than before the patch? =20
>=20
> Because I didn't want to second guess the patch author too much.

Fair enough. I don't have any relevant test cases either, so when/if
somebody encounters an issue, let them change it then.

Thanks!
Petr T


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 11:44:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 11:44:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756917.1165651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRVkX-0001jQ-5U; Wed, 10 Jul 2024 11:44:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756917.1165651; Wed, 10 Jul 2024 11:44: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 1sRVkX-0001jJ-2b; Wed, 10 Jul 2024 11:44:41 +0000
Received: by outflank-mailman (input) for mailman id 756917;
 Wed, 10 Jul 2024 11:44: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=A5wT=OK=outlook.com=mhklinux@srs-se1.protection.inumbo.net>)
 id 1sRVkV-0001iu-9O
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 11:44:39 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazolkn190100000.outbound.protection.outlook.com
 [2a01:111:f403:d111::])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7fe1362-3eb1-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 13:44:37 +0200 (CEST)
Received: from SN6PR02MB4157.namprd02.prod.outlook.com (2603:10b6:805:33::23)
 by SA0PR02MB7484.namprd02.prod.outlook.com (2603:10b6:806:e0::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.19; Wed, 10 Jul
 2024 11:44:32 +0000
Received: from SN6PR02MB4157.namprd02.prod.outlook.com
 ([fe80::cedd:1e64:8f61:b9df]) by SN6PR02MB4157.namprd02.prod.outlook.com
 ([fe80::cedd:1e64:8f61:b9df%5]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024
 11:44: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: c7fe1362-3eb1-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kxDjBA8xvc7P+AEW5lvxIQpqqsmrILSxZ1NnPCysmK1XCwzKppY1IW8BIxpL2OgEzMraSQWbOFyNP3HVvxZppVJgYuwcxdNvf0lbo8ujIHXov90tuUNt2moRIYgigKQJlgRr37P1PRGlaCrEjCa7NCMMrLSxIcyLei8yf/CPWFXRktwvx3j4du5i32u6VbKMNCh505PMaxIPX/FEWoIigspqGXfEnLPCZFiu1CddQcYz/rTNRGk8lDnc6E7eL6sIvzjGYzmp3QAVZ2briuXFMxe89ozarCDn2JuWXp0DU3RBIOEHCt9JxxYco8yH3L+FJsvwlKZtioYVCQEk0BwQPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+8HcFnU9pa+fJ6q0TvQhpUVKoD56I5flWX6O6rUyvTs=;
 b=hZKSwHFAoH3LLZIVD13AYj/EUnnAFlYUGrpFYVlfCL4vqDHpmmdX2PaFV6FyIAUNaO8a97qqH2KVQSFHweI5DuC358RydqH+bg3QTbFCei4vpWDkn6Q0xoTbrA24jnXpbQ4KycCkUQVCStdjPAl4RLRoD0DjZLfkibNdPftt4YXMNWvPF4G7hoT9rlxSw0wkKsYLIziJhQpZhDyWPoxUs0etWA3yEnLQCZt6Yd/vixgoN+8aSbnOW7ino7sg5ahEWUDb1akxyt2Du0JUowsJYzADiFuDzJhamklt5pY/vYlVNps91FQcnK6nTpbMeVWKv3TSzi7eGfwnL2AED0ewLw==
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=+8HcFnU9pa+fJ6q0TvQhpUVKoD56I5flWX6O6rUyvTs=;
 b=D5Qxl8cTLBL1SDWujDnMgfdEfusfxoGRMx6+42olxDR7PlJ0iL3vhWIEyRKVIk2M7DMql1wbQ+xHNIyyyu4sSUHN2ELynZ4XOuKLMZWxJ8BP7PtTdNqxDyPb6v6BKohmycGN0pMsrHExsZqKlnH4cc8SEm60Zy7NXb1YSg55nrMU58C+WQ7Ud19iAZA6mhJ/MHgDGwdLHFVh60qDJA+nW0KraPezZE921C2TYM7ZEpvvmMFWd7yV4rax4usMjNWP9Lv+XEaaCcS5pH6mz/tJSMPino8YwRFJDdlDIGQkkV+4v+VcjmowctH5wRRHmn6EUMbicv0R/5Fltm5s6G/zVg==
From: Michael Kelley <mhklinux@outlook.com>
To: =?utf-8?B?UGV0ciBUZXNhxZnDrWs=?= <petr@tesarici.cz>, Christoph Hellwig
	<hch@lst.de>
CC: "mhkelley58@gmail.com" <mhkelley58@gmail.com>, "robin.murphy@arm.com"
	<robin.murphy@arm.com>, "joro@8bytes.org" <joro@8bytes.org>,
	"will@kernel.org" <will@kernel.org>, "jgross@suse.com" <jgross@suse.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>,
	"oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
	"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Thread-Topic: [PATCH v3 1/1] swiotlb: Reduce swiotlb pool lookups
Thread-Index:
 AQHa0W7SFxxRPYjEqkS2vOXnJ50UvLHuHL6AgAAjwwCAAINYAIAAtMcAgABeFoCAAACIIA==
Date: Wed, 10 Jul 2024 11:44:32 +0000
Message-ID:
 <SN6PR02MB4157E5175E5EF9DEC6E2C610D4A42@SN6PR02MB4157.namprd02.prod.outlook.com>
References: <20240708194100.1531-1-mhklinux@outlook.com>
	<20240709111013.6103d3f0@mordecai.tesarici.cz>	<20240709111812.GB4421@lst.de>
	<20240709210818.28116c53@meshulam.tesarici.cz>
	<20240710055520.GA25305@lst.de>
 <20240710133205.63858e7a@mordecai.tesarici.cz>
In-Reply-To: <20240710133205.63858e7a@mordecai.tesarici.cz>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-tmn: [TlaoygzF3ZThHBeuweFr3Sg9q/xQMgfX]
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SN6PR02MB4157:EE_|SA0PR02MB7484:EE_
x-ms-office365-filtering-correlation-id: 7cd1b7a3-0807-4282-e124-08dca0d5aa56
x-microsoft-antispam:
 BCL:0;ARA:14566002|8060799006|461199028|19110799003|102099032|3412199025|440099028;
x-microsoft-antispam-message-info:
 MEDy3K69uQXazN9lV5gUzKmW8aDkSs6cq3VmFZE4do9hSgM4bBXLVt7wgTF9xztGgHY6TjtC/d0aVjNgRsnCI5v9IvB+W4E9tbcdFIhddIDywHhJ+P2GbMY+UU7oERnL4jAVwOYkOgji1Lx9SGOE3R4oA+w/FLHSS0LuUrqEnruTLKrUOA5n/Prn6+TBJRNkBXpG3cmgVgqfGgs6Jdg6WTRcgQZsf2muooKY4T7zPiG90u95E6MnVKly9JdChT0Z91QGfJTAQVpocFGcE1ZWZGekcyXCPbbWnLJCfFBzmG1JQZ1Q2bMu6u7sDz716ur1CE//WQspoD0zV3Z4t56bL0i0xP+5/nUptwQSXK8r2N4BPV85lX2WfuCNd2n7uLsNMxOT06immKCu/wVNsLc4pEvuh/LalADe5ikiFvNvqYV0Ri943EvKRZKwiruEGmHGaafLjf+sXwURihxU9IbAR4LeEuD/idEZEuP2RnUN+liz9A3bVsPDTWq/xGLZxUWxv+DHeu+aIhoyhqN7jnjzMZHt967LEYoU8a1iQwXyTJj5Ch+bvbuDlE5YVbwrvJFEFYBCs90Oko0Q0GS7910tTQoMrWJXX8jCj/2OOckFK4H98QFgqE1wPzXBdDhEULRUTuCbyiuzaUQK3lYkOvZdCQ==
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dDVjMldDaHNCRjhNMXVhUGVJamZZU1FMOUhZT1l3QjZqMWpYWEdCV3YzbldD?=
 =?utf-8?B?YkRNazM0WDF5VDRtcm1COEhmZzZlbnhHdFJNRVh1b1hDZ1dyaThwT3U2UVJ4?=
 =?utf-8?B?YjdDdy80UHVMbFN4UGQybzl2ZnNKSDcwbjIvOWx0QTRsMVlQelNRNjExRFhU?=
 =?utf-8?B?d3ZSSlZTYUdhVE1wS1Jkbm9OOFNTbnUvb1pYNkpvRk1FdWZSczRaalJwVXdx?=
 =?utf-8?B?SWhqRmM0Y1lwYU1RWmFWMlc2eUhpbEg4d2hPMVZtUW9LcWQzdWF3eWVWakIz?=
 =?utf-8?B?SUV5UDk0YmZEQ0QxR0FPNnhjbXVxU3htTmVnMmxoYm94b0E1TFVkeE9sUmxI?=
 =?utf-8?B?Q3h6MjROTUJNUmJPZ0dGS1NXUm9HcUJEQWFWMzRFUE1Uc1V4V2xZeHhnL1Bn?=
 =?utf-8?B?OWRnWU5KN0ZPeW9vZUhhYUhxY3dOdm9ucTZCLzlvbWp0aUJZK1Z1WlRJWEpx?=
 =?utf-8?B?SFJpV1J5aHp4eTN0RDBoelc1WUlqVVFzenkzd0N3dCtVemhOVWFqelV1TzRP?=
 =?utf-8?B?WUVVQTJVOUtsaVJRdk5oOWt0aCtpNzUydnpJSjBwRUJMQXhGdXBXNnFmZmVt?=
 =?utf-8?B?OENVUDVUY2R0aDg1UDJ4TU5jTm9jbTRjYjVzRWZNOGdDT2hmcnZtdzR3Ni9x?=
 =?utf-8?B?bVQ5eExGY3crZWtBRzBhZ21OS2JiNXJCZjA4M0lIdlIxZGlQNzcvYjVzc0Jq?=
 =?utf-8?B?MU1oV0dHVDBWRDBtS1p4dU0wOFd6Nm4rcE1vNEIxUjlBZzYwOHBWWE9aWGZ4?=
 =?utf-8?B?cXpVVjY1Z2FXMTRMdU83QkxuYWoraitnbmxMdi9jbkZrOGJibzdWRmRwM2s0?=
 =?utf-8?B?TjBqSnE4OVRhMWZwS3JLcURPY1JXb1E0U1N2a2NNcHhiOVYzaEdob0ZzQUVu?=
 =?utf-8?B?RkdING9RVzV0U1ZiL09BZEw2dndNMlNOME9nN0Z5ZHdBcE03eXRBRm1YSDFw?=
 =?utf-8?B?NXBPY3A4MDNqUVBmZ0cxN0hhTm95b1NBUFoxUjBBTExXRXZoTDhxWVBKVUdZ?=
 =?utf-8?B?WEpxbUdsMlE2RDVVL1RkSzZwQzNieTUyR0M4VHV5VkRZWWFha3RDdSsvcHJL?=
 =?utf-8?B?K1htbHV3WUZrNTkweTN6cFYrVGlaR1ZQUm5BVFFoa1ovajRFWTNxdHNjQ08v?=
 =?utf-8?B?ZlNVZnlzZW9sR29KWUVvYmd4Zm52LytFc2dNb3F3c0JGRFVZb3UxMkVtY0ls?=
 =?utf-8?B?cUlHSlFpS0tRYkZRUE04TkNDMXlTeHVCcEh4NHpxSldJb2F5Q0sxUFNuSEEv?=
 =?utf-8?B?UWxzM1RMbGtVbllxR3BOU21aWEVGRW5raUJ5MDhSS3lqWURhSnFCNHB4NWt0?=
 =?utf-8?B?dit5Z3krNXBqNm8xVlBoTnRvSUc5em4vaHVEb1FnNHI0dFNnTGExemJxMEc1?=
 =?utf-8?B?QnBMaXZJQ2ptdENhTEdvbnBnS3o5TEZHcnpSVllDTHhVNGEyeWV3VTlvSUpS?=
 =?utf-8?B?MXpQc2VTVVppMmFRTUhEVVVDMnV0UTB5T0s3K010cnZjR2o3anBjNGtISUkx?=
 =?utf-8?B?TEpvcDhrN1JvZGp5dHd0SXFnSURUc2hLWDRzcmtGK2RhMVZzeWFodllnZmZv?=
 =?utf-8?B?aHdGU2M4R3loeTdjaUZoaTQ3NzRmL3NqZ1NvVVdkSUdQeGMvSzIxYUI4ejVY?=
 =?utf-8?Q?NWM0aAeXCjnKXyCePPUssR+CcCZ08vcO1uCR1ZgE+x04=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
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: 7cd1b7a3-0807-4282-e124-08dca0d5aa56
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jul 2024 11:44:32.5727
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR02MB7484

RnJvbTogUGV0ciBUZXNhxZnDrWsgPHBldHJAdGVzYXJpY2kuY3o+IFNlbnQ6IFdlZG5lc2RheSwg
SnVseSAxMCwgMjAyNCA0OjMyIEFNDQo+IA0KPiBPbiBXZWQsIDEwIEp1bCAyMDI0IDA3OjU1OjIw
ICswMjAwDQo+IENocmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPiB3cm90ZToNCj4gDQo+ID4g
T24gVHVlLCBKdWwgMDksIDIwMjQgYXQgMDk6MDg6MThQTSArMDIwMCwgUGV0ciBUZXNhxZnDrWsg
d3JvdGU6DQo+ID4gPiBJJ20gY29uZnVzZWQuIElmIHlvdSdyZSBub3QgYSBiaWcgZmFuLCB3aHkg
YXJlIHdlIGVmZmVjdGl2ZWx5IGFkZGluZw0KPiA+ID4gdGhlbSB0byBtb3JlIHBsYWNlcyBub3cg
dGhhbiBiZWZvcmUgdGhlIHBhdGNoPw0KPiA+DQo+ID4gQmVjYXVzZSBJIGRpZG4ndCB3YW50IHRv
IHNlY29uZCBndWVzcyB0aGUgcGF0Y2ggYXV0aG9yIHRvbyBtdWNoLg0KPiANCj4gRmFpciBlbm91
Z2guIEkgZG9uJ3QgaGF2ZSBhbnkgcmVsZXZhbnQgdGVzdCBjYXNlcyBlaXRoZXIsIHNvIHdoZW4v
aWYNCj4gc29tZWJvZHkgZW5jb3VudGVycyBhbiBpc3N1ZSwgbGV0IHRoZW0gY2hhbmdlIGl0IHRo
ZW4uDQo+IA0KDQpXb3JrcyBmb3IgbWUuIEZXSVcsIEkgZG9uJ3QgaGF2ZSBhIHByZWZlcmVuY2Ug
ZWl0aGVyIHdheS4gSSB3YXMgdHJ5aW5nDQp0byBjYXJyeSBvdmVyIHRoZSBleGlzdGluZyBvY2N1
cnJlbmNlcyBvZiB1bmxpa2VseSgpIGFuZCBub3QgdG8gaW50cm9kdWNlDQpncmF0dWl0b3VzIGFu
ZCB1bnJlbGF0ZWQgY2hhbmdlcy4gQnV0IGJlY2F1c2Ugb2YgdGhlIGluY29uc2lzdGVuY2llcyBp
bg0KdGhlIHVzZSBvZiB1bmxpa2VseSgpIGluIHRoZSA5IG9jY3VycmVuY2VzIHRoYXQgd2VyZSBj
b2xsYXBzZWQgaW50byAzDQp3cmFwcGVycywgc29tZSBjaGFuZ2Ugd2FzIHVuYXZvaWRhYmxlLiBJ
IGRpZCBub3QgZG8gYW55IGFuYWx5c2lzIG9mDQp0aGUgZ2VuZXJhdGVkIGNvZGUgd2l0aCBhbmQg
d2l0aG91dCB1bmxpa2VseSgpIHRvIG1ha2UgYSBkZWNpc2lvbi4NCg0KTWljaGFlbA0K


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 12:30:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 12:30:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756931.1165661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRWSW-0003c4-KK; Wed, 10 Jul 2024 12:30:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756931.1165661; Wed, 10 Jul 2024 12: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 1sRWSW-0003bx-HI; Wed, 10 Jul 2024 12:30:08 +0000
Received: by outflank-mailman (input) for mailman id 756931;
 Wed, 10 Jul 2024 12:30: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRWSV-0003aV-G7
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 12:30:07 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 234e922b-3eb8-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 14:30:06 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ee91d9cb71so60571911fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 05:30: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
 d9443c01a7336-1fbb6ad00edsm32449045ad.273.2024.07.10.05.30.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 05: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: 234e922b-3eb8-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720614605; x=1721219405; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LsvXS+XTwUZXgqIh4eU9rCb8aC5tRjW3JD3+6HlholI=;
        b=IbaDO9gulb1dpKhvjb1R5hS8RTGmeQ/NBY/qF9sOwQ3BowiFb1Rd6J8u7RhtBOID6L
         fVeyc/K8d+8qVTG7y1YC6MUjjCNMaSRfZWdfzdRXaZY8UwD9TdqAm7CCM1Ny8btXe7jg
         Pbgo6C71YEahTvTyrhdK949EppcsUvBMDXJyA/isNis1xwdtzEzY3eZFpipDMDIFD7bD
         OqZyOVqnZ5RWhCHJ8HeW3v4sDVyewZ56afUPCoJNl5JhxyjPhMuHSE+vcpfouv3io4IF
         080Jk59BOAawrjXBzi5PvB2WXbFP9K1cdEXGARA2UAiiM1KFNgdnaoa+jUrPQLsykhRy
         76AQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720614605; x=1721219405;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LsvXS+XTwUZXgqIh4eU9rCb8aC5tRjW3JD3+6HlholI=;
        b=CATQAcrImVtrpvLMv1REYCYOCcmmQpdd/tp37CQ9db6DQFPUculhgWctKFg74x4ETT
         mC93h7V0S/14oT0RlZmmyWcxNce6bqvmS4/G0cxL3ceTzbQtphSd7SEfWbbGnlzk4Rss
         ljyzFn5Ohln9XkGT2+MrdSpfxwtyBafQ0CQcEIo7qxIAP/YMY7S142bc0XrUUI2aURx8
         Oni6W9a/JA1amHCvH3VeVY3JXB7oNbvtTTAadlK8g11Vo+mT1zJ+3mDCngCSQzURGY1R
         bHLXDMwS5ak1xksHyKprnAD3Nfm4MqUv2BOJ8A5MR2+sxqb+5cgvU/WH3pUBrQ+7ugvB
         foBA==
X-Forwarded-Encrypted: i=1; AJvYcCUAlCP4VR2AycA2e0ATZ9l27/YtE3cisDsydASlH3bsqhPtrG1vDH6OUOycdBfLaT2kEmbzcNnVe4gRNEAjGNJ/zoC+ULlnQYQT5Of622c=
X-Gm-Message-State: AOJu0YwaFipQV6MWPd9iKadWkgp4mxZVpFJLOKMqQesu29CQP1GPzGYK
	d95LOn37750GkQ3kOSStminqxkMPElYJ1XoUFZn+8h8W6MCaHNTSSaZEZw+7lA==
X-Google-Smtp-Source: AGHT+IG6sJlrHjSzxXiw15ln+pyrjeRCOFuCrHkYGHzW3D/pibAc6BPG/PpJtqINrP+j142zdZCUCw==
X-Received: by 2002:a2e:834b:0:b0:2ec:f68:51de with SMTP id 38308e7fff4ca-2eeb318aaffmr32852281fa.47.1720614605447;
        Wed, 10 Jul 2024 05:30:05 -0700 (PDT)
Message-ID: <e111c338-b45b-45a0-89c9-45efd016e352@suse.com>
Date: Wed, 10 Jul 2024 14:29:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 01/14] x86: introduce AMD-V and Intel VT-x Kconfig
 options
To: Sergiy Kibrik <sergiy_kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <f6bfed3cd9e9fff25cbe0c5e16d8d88541be212f.1720501197.git.Sergiy_Kibrik@epam.com>
 <1d3476db-019f-4e5e-ad5f-381fe1e5b1c6@suse.com>
 <7051c9cd-4db5-4f99-91f2-eebe480ec4b4@epam.com>
 <02e9e65c-0fa0-467f-aa60-159524dafaaa@suse.com>
 <fa9644fe-ae7e-482b-b83b-537c947e3cab@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: <fa9644fe-ae7e-482b-b83b-537c947e3cab@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.07.2024 12:52, Sergiy Kibrik wrote:
> 10.07.24 13:28, Jan Beulich:
>> On 10.07.2024 12:21, Sergiy Kibrik wrote:
>>> 09.07.24 10:11, Jan Beulich:
>>>> On 09.07.2024 07:45, Sergiy Kibrik wrote:
>>>>> From: Xenia Ragiadakou <burzalodowa@gmail.com>
>>>>>
>>>>> Introduce two new Kconfig options, SVM and VMX, to allow code
>>>>> specific to each virtualization technology to be separated and, when not
>>>>> required, stripped.
>>>>> CONFIG_SVM will be used to enable virtual machine extensions on platforms that
>>>>> implement the AMD Virtualization Technology (AMD-V).
>>>>> CONFIG_VMX will be used to enable virtual machine extensions on platforms that
>>>>> implement the Intel Virtualization Technology (Intel VT-x).
>>>>>
>>>>> Both features depend on HVM support.
>>>>>
>>>>> Since, at this point, disabling any of them would cause Xen to not compile,
>>>>> the options are enabled by default if HVM and are not selectable by the user.
>>>>>
>>>>> No functional change intended.
>>>>>
>>>>> Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
>>>>> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
>>>>> ---
>>>>> changes in v3:
>>>>>    - tag added
>>>>
>>>> And then removed again in v4? My prior ack stands, but - as before - conditional
>>>> upon us being certain that we want to go with the ambiguous ...
>>>>
>>>>> changes in v2:
>>>>>    - simplify kconfig expression to def_bool HVM
>>>>>    - keep file list in Makefile in alphabetical order
>>>>> changes in v1:
>>>>>    - change kconfig option name AMD_SVM/INTEL_VMX -> SVM/VMX
>>>>
>>>> ... result of this change (firmly ambiguous for SVM, latently for VMX).
>>>
>>> I've put my thoughts about naming in the series' cover letter, however
>>> I'm not strongly preferring current naming and if it finds no advocates
>>> I'll rename it in next series.
>>
>> Just to clarify: Did anyone ask for the name change done in v1? If so,
>> maybe that request cam with some justification?
> 
> yes, that request came from you:
> 
> https://lore.kernel.org/xen-devel/e29e375f-3d30-0eb1-7e28-b93f2d831b43@suse.com/

Hmm, how unfortunate. I definitely want to take back that comment, for the
reason given (in context) above. I'm sorry for the back and forth then, also
to you, Xenia.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 12:38:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 12:38:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756937.1165670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRWaK-0004a9-BK; Wed, 10 Jul 2024 12:38:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756937.1165670; Wed, 10 Jul 2024 12: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 1sRWaK-0004a2-8j; Wed, 10 Jul 2024 12:38:12 +0000
Received: by outflank-mailman (input) for mailman id 756937;
 Wed, 10 Jul 2024 12:38: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRWaI-0004Zw-D8
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 12:38:10 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 431d669a-3eb9-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 14:38:08 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2ee9b098bd5so59345741fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 05:38: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
 d9443c01a7336-1fbb6ac0fd1sm33391765ad.208.2024.07.10.05.38.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 05: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: 431d669a-3eb9-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720615088; x=1721219888; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0PWzvhQhBu1t2ahtKLYW3Aknb759sp/s2xEo997KCYw=;
        b=K5LciHFfn+87itXwm6BlcyOM96iVwqEM8SrWyvx849VwmAyqFxrnj3Oo/FzdaF0Ahm
         MiRcqDUeGmtJ3dT97/ybtfsA95YovD1u6M78rzCiMZq2eH9w+e+kSPRXIHGEw3RxqM3G
         5lmbJXwHiT5Mu+UhRcXVvWqEVvVYz7PVaDUWHiTonNixmrwxxQ7679tUjYvUlHi4t4Hi
         PKb68RUXDZ8LBuGyNfiYzxTK4ONN6S7Lrk+tnN+Q8U2hYhqwFFO2aJIUZ+I0RXjzRt3Y
         kHwhFjf9mAGlWkZAzZsYZRUOpcIMuMJQsojQQQ2I4z5Ej2yC2aaKZPhK+lKJReMCrCDZ
         misw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720615088; x=1721219888;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0PWzvhQhBu1t2ahtKLYW3Aknb759sp/s2xEo997KCYw=;
        b=GqJ1tbvW4jvrQuo5l14UG5OQT/50DLFhq4WWbGkRdPsZI7qLe3MJvEf03+ZKATtz2D
         AW1/3Hgoy9LAZzykW2RWw8mioy02/PZQuxDk6yOw30XcEdOo9wWTJ6BgwcxZvyZVOKnX
         ssuNYWHAooOfvSjAGRmeCjdhWlJjDnQKMLiYvJm8211l55mtujuguU3CUsMuzghjZn6p
         mek+bz/q8B+NkBvAkSCW3t2h2oBY2lF/Oo1lP0MzNeZbtEhF/RjrhBNAGwowlcGfB1p0
         Vy/9s6gfC7YNkLIkkKoZkYGhQLzstL/c/NqnP+nKljmPo5rZsgpDeutmglRYcoFmq0RV
         1vGQ==
X-Forwarded-Encrypted: i=1; AJvYcCUajXbzveSYPdFW1wU/60gSyPv6h6Lmte/w5Dp9ISxcOi5c4ru1qfYcbhegssOHUG8Y6e7+bel8i6+7+9OGXtyNSS6iszceGK+55+jo18M=
X-Gm-Message-State: AOJu0YyBNu8+46bnyWKUcj/6221Scp6Wl42zjs8atckBFbDxPWjFanD5
	fvmLz5r9t33HbBkW7FZeZxItrxd4aUs+y8izaAmCgYfF/NtNsINr14Qk4BmqnQ==
X-Google-Smtp-Source: AGHT+IFmW9BstZb++a6Gqfs++0ptFvHxkphj6UBGEEalyMH1E3MygcuV7XsNC3rs22Q9qZSEXEf0aQ==
X-Received: by 2002:a2e:87ce:0:b0:2ec:5933:a62c with SMTP id 38308e7fff4ca-2eeb30e3a18mr44336701fa.22.1720615088295;
        Wed, 10 Jul 2024 05:38:08 -0700 (PDT)
Message-ID: <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
Date: Wed, 10 Jul 2024 14:38:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <7e492df051c949744755a221c0448c740d2c681b.1720002425.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: <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.07.2024 12:42, Oleksii Kurochko wrote:
> Except mapping of FDT, it is also printing command line passed by
> a DTB and initialize bootinfo from a DTB.

I'm glad the description isn't empty here. However, ...

> --- a/xen/arch/riscv/riscv64/head.S
> +++ b/xen/arch/riscv/riscv64/head.S
> @@ -41,6 +41,9 @@ FUNC(start)
>  
>          jal     setup_initial_pagetables
>  
> +        mv      a0, s1
> +        jal     fdt_map
> +
>          /* Calculate proper VA after jump from 1:1 mapping */
>          la      a0, .L_primary_switched
>          sub     a0, a0, s2

... it could do with clarifying why this needs calling from assembly
code. Mapping the FDT clearly looks like something that wants doing
from start_xen(), i.e. from C code.

> @@ -33,15 +35,34 @@ static void test_macros_from_bug_h(void)
>      printk("WARN is most likely working\n");
>  }
>  
> +void __init fdt_map(paddr_t dtb_addr)
> +{
> +    device_tree_flattened = early_fdt_map(dtb_addr);
> +    if ( !device_tree_flattened )
> +    {
> +        printk("wrong FDT\n");
> +        die();
> +    }
> +}
> +
>  void __init noreturn start_xen(unsigned long bootcpu_id,
>                                 paddr_t dtb_addr)
>  {
> +    size_t fdt_size;
> +    const char *cmdline;
> +
>      remove_identity_mapping();
>  
>      trap_init();
>  
>      test_macros_from_bug_h();
>  
> +    fdt_size = boot_fdt_info(device_tree_flattened, dtb_addr);

You don't use the return value anywhere below. What use is the local var
then?

Jan

> +    cmdline = boot_fdt_cmdline(device_tree_flattened);
> +    printk("Command line: %s\n", cmdline);
> +    cmdline_parse(cmdline);
> +
>      printk("All set up\n");
>  
>      for ( ;; )



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 13:20:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 13:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756951.1165683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRXEv-0004Gm-Fq; Wed, 10 Jul 2024 13:20:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756951.1165683; Wed, 10 Jul 2024 13:20: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 1sRXEv-0004Gf-CX; Wed, 10 Jul 2024 13:20:09 +0000
Received: by outflank-mailman (input) for mailman id 756951;
 Wed, 10 Jul 2024 13:20:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRXEu-0004GV-5u; Wed, 10 Jul 2024 13:20:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRXEt-0002Fc-Td; Wed, 10 Jul 2024 13:20:07 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRXEt-0004ug-Gc; Wed, 10 Jul 2024 13:20:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRXEt-0000WU-G3; Wed, 10 Jul 2024 13:20: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QkpSLB/+ghKH0QQ0yXIv8LXmObpiCI8+rrEOr2rQ46Y=; b=oFbjhyNQ+2WxiMxKNA+wXLpfWA
	f8kwHrq4Qa6JxN1hteIAS26vHM/tpyYjZErkOG25/83vrHAUNMnHz0CSPuAAFY+rMq/S0PkQ5it/Y
	sF6qKOsJntijmc6/rYj/xZjRXtE3ckIeXhy4tFGm/IrYeQ0OwnNZEsl5IC3esqy5g+Zg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186749-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186749: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-qcow2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=34afb82a3c67f869267a26f593b6f8fc6bf35905
X-Osstest-Versions-That:
    linux=256abd8e550ce977b728be79a74e1729438b4948
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Jul 2024 13:20:07 +0000

flight 186749 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186749/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-qcow2     8 xen-boot                 fail REGR. vs. 186727

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-examine      8 reboot           fail in 186742 pass in 186749
 test-armhf-armhf-xl-credit1   8 xen-boot         fail in 186742 pass in 186749
 test-armhf-armhf-xl-credit2   8 xen-boot                   fail pass in 186742
 test-armhf-armhf-libvirt      8 xen-boot                   fail pass in 186742

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 186727

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 186742 like 186727
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 186742 never pass
 test-armhf-armhf-xl         15 migrate-support-check fail in 186742 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 186742 never pass
 test-armhf-armhf-xl-credit2 15 migrate-support-check fail in 186742 never pass
 test-armhf-armhf-xl-credit2 16 saverestore-support-check fail in 186742 never pass
 test-armhf-armhf-xl           8 xen-boot                     fail  like 186727
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186727
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                34afb82a3c67f869267a26f593b6f8fc6bf35905
baseline version:
 linux                256abd8e550ce977b728be79a74e1729438b4948

Last test of basis   186727  2024-07-08 04:15:50 Z    2 days
Failing since        186734  2024-07-08 22:12:02 Z    1 days    4 attempts
Testing same since   186742  2024-07-09 16:12:19 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexander Gordeev <agordeev@linux.ibm.com>
  Andrei Vagin <avagin@google.com>
  Heiko Carstens <hca@linux.ibm.com>
  Hobin Woo <hobin.woo@samsung.com>
  Ian Rogers <irogers@google.com>
  John Hubbard <jhubbard@nvidia.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Matt Fleming <matt@readmodwrite.com>
  Muhammad Usama Anjum <usama.anjum@collabora.com>
  Namhyung Kim <namhyung@kernel.org>
  Namjae Jeon <linkinjeon@kernel.org>
  Shuah Khan <skhan@linuxfoundation.org>
  Steve French <stfrench@microsoft.com>
  Yoonho Shin <yoonho.shin@samsung.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 34afb82a3c67f869267a26f593b6f8fc6bf35905
Merge: 920bc844baa9 e2e33caa5dc2
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Jul 9 08:16:18 2024 -0700

    Merge tag '6.10-rc6-smb3-server-fixes' of git://git.samba.org/ksmbd
    
    Pull smb server fixes from Steve French:
    
     - fix access flags to address fuse incompatibility
    
     - fix device type returned by get filesystem info
    
    * tag '6.10-rc6-smb3-server-fixes' of git://git.samba.org/ksmbd:
      ksmbd: discard write access to the directory open
      ksmbd: return FILE_DEVICE_DISK instead of super magic

commit 920bc844baa92fe508d9cb7c72765d6f54dfebe1
Merge: b5efb63acf7b 66cde337fa1b
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Jul 9 08:11:39 2024 -0700

    Merge tag 'linux_kselftest-fixes-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
    
    Pull kselftest fixes from Shuah Khan
     "Fixes to clang build failures to timerns, vDSO tests and fixes to vDSO
      makefile"
    
    * tag 'linux_kselftest-fixes-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
      selftests/vDSO: remove duplicate compiler invocations from Makefile
      selftests/vDSO: remove partially duplicated "all:" target in Makefile
      selftests/vDSO: fix clang build errors and warnings
      selftest/timerns: fix clang build failures for abs() calls

commit b5efb63acf7bddaf20eacfcac654c25c446eabe8
Author: Heiko Carstens <hca@linux.ibm.com>
Date:   Tue Jul 9 08:50:56 2024 +0200

    s390/mm: Add NULL pointer check to crst_table_free() base_crst_free()
    
    crst_table_free() used to work with NULL pointers before the conversion
    to ptdescs.  Since crst_table_free() can be called with a NULL pointer
    (error handling in crst_table_upgrade() add an explicit check.
    
    Also add the same check to base_crst_free() for consistency reasons.
    
    In real life this should not happen, since order two GFP_KERNEL
    allocations will not fail, unless FAIL_PAGE_ALLOC is enabled and used.
    
    Reported-by: Yunseong Kim <yskelg@gmail.com>
    Fixes: 6326c26c1514 ("s390: convert various pgalloc functions to use ptdescs")
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 4376e966ecb78c520b0faf239d118ecfab42a119
Merge: 256abd8e550c 7b2450bb4027
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Jul 8 14:08:43 2024 -0700

    Merge tag 'perf-tools-fixes-for-v6.10-2024-07-08' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
    
    Pull perf tools fixes from Namhyung Kim:
     "Fix performance issue for v6.10
    
      These address the performance issues reported by Matt, Namhyung and
      Linus. Recently perf changed the processing of the comm string and DSO
      using sorted arrays but this caused it to sort the array whenever
      adding a new entry.
    
      This caused a performance issue and the fix is to enhance the sorting
      by finding the insertion point in the sorted array and to shift
      righthand side using memmove()"
    
    * tag 'perf-tools-fixes-for-v6.10-2024-07-08' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools:
      perf dsos: When adding a dso into sorted dsos maintain the sort order
      perf comm str: Avoid sort during insert

commit 7b2450bb40275802b73593331b0db2fc147ae2b7
Author: Ian Rogers <irogers@google.com>
Date:   Wed Jul 3 10:21:17 2024 -0700

    perf dsos: When adding a dso into sorted dsos maintain the sort order
    
    dsos__add would add at the end of the dso array possibly requiring a
    later find to re-sort the array. Patterns of find then add were
    becoming O(n*log n) due to the sorts. Change the add routine to be
    O(n) rather than O(1) but to maintain the sorted-ness of the dsos
    array so that later finds don't need the O(n*log n) sort.
    
    Fixes: 3f4ac23a9908 ("perf dsos: Switch backing storage to array from rbtree/list")
    Reported-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Ian Rogers <irogers@google.com>
    Cc: Steinar Gunderson <sesse@google.com>
    Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Cc: Matt Fleming <matt@readmodwrite.com>
    Link: https://lore.kernel.org/r/20240703172117.810918-3-irogers@google.com
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>

commit 88076e4699ce490aabe89037190d4749ab346b29
Author: Ian Rogers <irogers@google.com>
Date:   Wed Jul 3 10:21:16 2024 -0700

    perf comm str: Avoid sort during insert
    
    The array is sorted, so just move the elements and insert in order.
    
    Fixes: 13ca628716c6 ("perf comm: Add reference count checking to 'struct comm_str'")
    Reported-by: Matt Fleming <matt@readmodwrite.com>
    Signed-off-by: Ian Rogers <irogers@google.com>
    Tested-by: Matt Fleming <matt@readmodwrite.com>
    Cc: Steinar Gunderson <sesse@google.com>
    Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Link: https://lore.kernel.org/r/20240703172117.810918-2-irogers@google.com
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>

commit 66cde337fa1b7c6cf31f856fa015bd91a4d383e7
Author: John Hubbard <jhubbard@nvidia.com>
Date:   Fri Jul 5 09:57:36 2024 -1000

    selftests/vDSO: remove duplicate compiler invocations from Makefile
    
    The Makefile open-codes compiler invocations that ../lib.mk already
    provides.
    
    Avoid this by using a Make feature that allows setting per-target
    variables, which in this case are: CFLAGS and LDFLAGS. This approach
    generates the exact same compiler invocations as before, but removes all
    of the code duplication, along with the quirky mangled variable names.
    So now the Makefile is smaller, less unusual, and easier to read.
    
    The new dependencies are listed after including lib.mk, in order to
    let lib.mk provide the first target ("all:"), and are grouped together
    with their respective source file dependencies, for visual clarity.
    
    Signed-off-by: John Hubbard <jhubbard@nvidia.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

commit bb2a605de3757ec8c39e5706cfac3deed5694228
Author: John Hubbard <jhubbard@nvidia.com>
Date:   Fri Jul 5 09:57:35 2024 -1000

    selftests/vDSO: remove partially duplicated "all:" target in Makefile
    
    There were a couple of errors here:
    
    1. TEST_GEN_PROGS was incorrectly prepending $(OUTPUT) to each program
    to be built. However, lib.mk already does that because it assumes "bare"
    program names are passed in, so this ended up creating
    $(OUTPUT)/$(OUTPUT)/file.c, which of course won't work as intended.
    
    2. lib.mk was included before TEST_GEN_PROGS was set, which led to
    lib.mk's "all:" target not seeing anything to rebuild.
    
    So nothing worked, which caused the author to force things by creating
    an "all:" target locally--while still including ../lib.mk.
    
    Fix all of this by including ../lib.mk at the right place, and removing
    the $(OUTPUT) prefix to the programs to be built, and removing the
    duplicate "all:" target.
    
    Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
    Signed-off-by: John Hubbard <jhubbard@nvidia.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

commit 73810cd45b99c6c418e1c6a487b52c1e74edb20d
Author: John Hubbard <jhubbard@nvidia.com>
Date:   Fri Jul 5 09:57:34 2024 -1000

    selftests/vDSO: fix clang build errors and warnings
    
    When building with clang, via:
    
        make LLVM=1 -C tools/testing/selftests
    
    ...there are several warnings, and an error. This fixes all of those and
    allows these tests to run and pass.
    
    1. Fix linker error (undefined reference to memcpy) by providing a local
       version of memcpy.
    
    2. clang complains about using this form:
    
        if (g = h & 0xf0000000)
    
    ...so factor out the assignment into a separate step.
    
    3. The code is passing a signed const char* to elf_hash(), which expects
       a const unsigned char *. There are several callers, so fix this at
       the source by allowing the function to accept a signed argument, and
       then converting to unsigned operations, once inside the function.
    
    4. clang doesn't have __attribute__((externally_visible)) and generates
       a warning to that effect. Fortunately, gcc 12 and gcc 13 do not seem
       to require that attribute in order to build, run and pass tests here,
       so remove it.
    
    Reviewed-by: Carlos Llamas <cmllamas@google.com>
    Reviewed-by: Edward Liaw <edliaw@google.com>
    Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
    Tested-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
    Signed-off-by: John Hubbard <jhubbard@nvidia.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

commit f76f9bc616b7320df6789241ca7d26cedcf03cf3
Author: John Hubbard <jhubbard@nvidia.com>
Date:   Wed Jul 3 19:52:47 2024 -0700

    selftest/timerns: fix clang build failures for abs() calls
    
    When building with clang, via:
    
        make LLVM=1 -C tools/testing/selftests
    
    ...clang warns about mismatches between the expected and required
    integer length being supplied to abs(3).
    
    Fix this by using the correct variant of abs(3): labs(3) or llabs(3), in
    these cases.
    
    Reviewed-by: Dmitry Safonov <dima@arista.com>
    Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
    Signed-off-by: John Hubbard <jhubbard@nvidia.com>
    Acked-by: Andrei Vagin <avagin@google.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

commit e2e33caa5dc2eae7bddf88b22ce11ec3d760e5cd
Author: Hobin Woo <hobin.woo@samsung.com>
Date:   Fri Jul 5 12:27:25 2024 +0900

    ksmbd: discard write access to the directory open
    
    may_open() does not allow a directory to be opened with the write access.
    However, some writing flags set by client result in adding write access
    on server, making ksmbd incompatible with FUSE file system. Simply, let's
    discard the write access when opening a directory.
    
    list_add corruption. next is NULL.
    ------------[ cut here ]------------
    kernel BUG at lib/list_debug.c:26!
    pc : __list_add_valid+0x88/0xbc
    lr : __list_add_valid+0x88/0xbc
    Call trace:
    __list_add_valid+0x88/0xbc
    fuse_finish_open+0x11c/0x170
    fuse_open_common+0x284/0x5e8
    fuse_dir_open+0x14/0x24
    do_dentry_open+0x2a4/0x4e0
    dentry_open+0x50/0x80
    smb2_open+0xbe4/0x15a4
    handle_ksmbd_work+0x478/0x5ec
    process_one_work+0x1b4/0x448
    worker_thread+0x25c/0x430
    kthread+0x104/0x1d4
    ret_from_fork+0x10/0x20
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Yoonho Shin <yoonho.shin@samsung.com>
    Signed-off-by: Hobin Woo <hobin.woo@samsung.com>
    Acked-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>

commit 25a6e135569b3901452e4863c94560df7c11c492
Author: Namjae Jeon <linkinjeon@kernel.org>
Date:   Mon Jun 24 08:39:23 2024 +0900

    ksmbd: return FILE_DEVICE_DISK instead of super magic
    
    MS-SMB2 specification describes setting ->DeviceType to FILE_DEVICE_DISK
    or FILE_DEVICE_CD_ROM. Set FILE_DEVICE_DISK instead of super magic in
    FS_DEVICE_INFORMATION. And Set FILE_READ_ONLY_DEVICE for read-only share.
    
    Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 14:30:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 14:30:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756963.1165694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRYKW-0004jA-Gx; Wed, 10 Jul 2024 14:30:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756963.1165694; Wed, 10 Jul 2024 14: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 1sRYKW-0004j3-Dw; Wed, 10 Jul 2024 14:30:00 +0000
Received: by outflank-mailman (input) for mailman id 756963;
 Wed, 10 Jul 2024 14:29: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRYKU-0004ix-So
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 14:29:58 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e19a8627-3ec8-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 16:29:57 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2ee910d6a9dso62101541fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 07:29: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
 41be03b00d2f7-77d682b3895sm3020259a12.87.2024.07.10.07.29.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 07: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: e19a8627-3ec8-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720621797; x=1721226597; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FLZ44Opd93tY+rR50jhN/8yFAZMz0cdh9eVTDbACFis=;
        b=GPzeZ4UceLqUPto33N1eXyJYT9dqt7boo4Ju9AmBSR7bn0iFzwJJm45ZjKQ0t9fsOZ
         SkXq4pZyIg/0pU46zdShW2NxPOt6jQPaMLyHHs/EhRbHHAGe4e2zA0OEMuvVHAfXQohr
         ATJ8B+Nyjik1mtN850Fg5mFY6WsY433+1DL9YfS172a+mpGBDKFk/4ZB7ePT+IkGRBAh
         SegtPWVH1cynVc6RKnoyxPG1H1BahJmopOx90EcRsGNgelj444f88ClToVzGyQgNEBsP
         sT0YKEcm65D13WifD5MHuQ2x84c+LwFCJ3SaZuxmhrxuONViwMNBai+GMGu+OD90LHaG
         zbSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720621797; x=1721226597;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FLZ44Opd93tY+rR50jhN/8yFAZMz0cdh9eVTDbACFis=;
        b=tlRQLUT3cBvj7HTv144b2qZptJWSPSHpHD6TRp28fg7C3CbSJUHGZjMhw88rgZRQN5
         olvXihgABMORnOSxcHZqFXksPkSaTHloFFT1iiE8o1qbL1BUDKagi6acenKsd1ZXZsdM
         aLLTd6PgrhERgJYnrrg9ZAe2jLO/dICqK2hmI0xen+geqd5vaOewq0W+CV/W5KihW4d8
         j2csAbIQvAkagGApVCB2SOZkmiE57zcL4yf5nlIZxoke2V5/SkBww5mQXwgw5AU8cGkE
         HgcBn3zKMinS4aVIq5QL6pEcoc/3zed/E+EOnlM6BGB7BF1rEddafzRWW5bEUyZU890x
         68Kg==
X-Forwarded-Encrypted: i=1; AJvYcCX0c3lB8ShvasFJzPxFzmHJeq00LJnxzaXJ77/2I2V0YwTarOlQYfjDzCZgkQxPXEDVtqyTgpa1IXwi+wAdaP71xVCUb/6tf0YGqi7CJkQ=
X-Gm-Message-State: AOJu0Yy3xk4IdCgZL+6L5Ef9/JVEaY12gD43Fs+/x0xFnkCXET0zX59s
	Jcy7pbASEDkMSJr2kIwMF85nnGRf3oBUAgUq3pWiMDfH9urNKdo5B86ewcMq6Q==
X-Google-Smtp-Source: AGHT+IFJzPy0UbH/0maC2j33zCxVjr48Oeaa+JTfX9UELFPZlefE2MWJcKRdES9INQjIRvGZqxUENw==
X-Received: by 2002:a2e:a581:0:b0:2ee:8453:5164 with SMTP id 38308e7fff4ca-2eeb304eec9mr50185651fa.0.1720621796645;
        Wed, 10 Jul 2024 07:29:56 -0700 (PDT)
Message-ID: <0ccb79f3-3518-4766-beb5-229483b2fd67@suse.com>
Date: Wed, 10 Jul 2024 16:29:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 1/2] x86/cpufreq: move ACPI cpufreq driver into
 separate file
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1720596402.git.Sergiy_Kibrik@epam.com>
 <cc7d5b8e93e3c4d938d3606e7e8426d53696c8e9.1720596402.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cc7d5b8e93e3c4d938d3606e7e8426d53696c8e9.1720596402.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.07.2024 10:28, Sergiy Kibrik wrote:
> Separate ACPI driver from generic initialization cpufreq code.
> This way acpi-cpufreq can become optional in the future and be disabled
> from non-Intel builds.
> 
> no changes to code were introduced, except:
>   acpi_cpufreq_register() helper added
>   clean up a list of included headers
>   license transformed into an SPDX line
> 
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with perhaps two tiny further adjustments, which I'd be happy to do while
committing:

> --- /dev/null
> +++ b/xen/arch/x86/acpi/cpufreq/acpi.c
> @@ -0,0 +1,518 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + *  cpufreq.c - ACPI Processor P-States Driver ($Revision: 1.4 $)
> + *
> + *  Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
> + *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
> + *  Copyright (C) 2002 - 2004 Dominik Brodowski <linux@brodo.de>
> + *  Copyright (C) 2006        Denis Sadykov <denis.m.sadykov@intel.com>
> + *
> + *  Feb 2008 - Liu Jinsong <jinsong.liu@intel.com>
> + *      porting acpi-cpufreq.c from Linux 2.6.23 to Xen hypervisor
> + */
> +
> +#include <xen/types.h>
> +#include <xen/errno.h>
> +#include <xen/delay.h>
> +#include <xen/param.h>

Would be nice if in the new file xen/ #include-s were sorted.

> +#include <acpi/acpi.h>
> +#include <acpi/cpufreq/cpufreq.h>
> +
> +

No double blank lines please.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 14:44:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 14:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.756993.1165720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRYYp-0008MH-17; Wed, 10 Jul 2024 14:44:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 756993.1165720; Wed, 10 Jul 2024 14:44: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 1sRYYo-0008MA-Tu; Wed, 10 Jul 2024 14:44:46 +0000
Received: by outflank-mailman (input) for mailman id 756993;
 Wed, 10 Jul 2024 14:44: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=gBLA=OK=gmail.com=milandjokic1995@srs-se1.protection.inumbo.net>)
 id 1sRYYn-0008Lx-TP
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 14:44:46 +0000
Received: from mail-qk1-x730.google.com (mail-qk1-x730.google.com
 [2607:f8b0:4864:20::730])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f13149c8-3eca-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 16:44:43 +0200 (CEST)
Received: by mail-qk1-x730.google.com with SMTP id
 af79cd13be357-79f06c9c929so78461285a.0
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 07:44: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: f13149c8-3eca-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720622682; x=1721227482; 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=i3YFEG0229aVT68fAZjDWZlOFkM86TN7ByDDtR5oN8U=;
        b=hAfOakzGyOx8ez7l4dT9h7pCUNPBtqw8gWrgoGsR6NrXjgP3YSP4GLpDvWyJ1JWxkD
         dKTaSDrUP5qvXwNuG2VYZAe6wQjKM+GlwtFnegISX4IQH4Q1zK2RRNX+iJyGyS/A7JDk
         IZeOoaYlnKZb+LuAs06nukKBAa3k3ePQeJcw9GgJLf+pHQHWFnu6fxd71jAXKnQEIBb2
         6oTgwsxe1+PwnKyL18YoxpzL1wyH9fHvRNWHUWKaXhwC0545GbHaN+yPPQs7E6tu0vZC
         gAs0RsJ15YmqwmDZT45J4kjMJM7xQqs+3cOk8qe5ZoskOjGDnqXxJwDnyXU1PpBsoCFB
         4V1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720622682; x=1721227482;
        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=i3YFEG0229aVT68fAZjDWZlOFkM86TN7ByDDtR5oN8U=;
        b=wH3GzOzSsiELPQ+LbwwmSz213Nl8vh+2huz1F4k86Ddv/42Ayo7B1tIIHBmNZjRWcB
         0zIa80C855ygaUXLlrPpG61Lwr02tDOEkVM4Mz0d/S/2ecxbNVeTKpEzJDXfm3EpfX82
         zR+yw1gon6qyusPJQ+fEdCSyFJOQJEhhYnI9KOJmz0MtM36+Q+bJ/0Nx77XVgYwS27na
         775Uv7EEqCzboy0C+EoKJ0qxMHf59xPExCTaHLDq7zO5P6XEq67vlJCANTIE61E8uGeJ
         Wn4Qj9t4yA8/koMIs5LruO1r8k/0cJVnPxlgCk628OFzZk6RRj2l+BrQ3+7dtxy4jDh7
         /DDw==
X-Forwarded-Encrypted: i=1; AJvYcCVFd6XYUuDYW0wPcltTCEffMi9KRFjVyyzOW1GboXibj8uvSbHEehpm41N963AFcSQz6bZDC7K4+mz/lRRWl56Xn670tlUOrPw+NnzhkDg=
X-Gm-Message-State: AOJu0YziottHtauU+XWvGF0i6yKa5UYoS+8s3lkheXeLg5oBL75Nhls3
	4MbfF+bsbopGou+HkK+uEQ6lItbKGQlHwcst0TYoe0frHoNyA3CcbqInciyK0nWuGk6TTzEf8G0
	YoS9cZ04ro5d3CGfzy4l6rP9vnzwDm/0vOyw=
X-Google-Smtp-Source: AGHT+IEmZIlMsKMWNsZjFnxYv7CCQvkt95DHDrCmxokE/iQkawOvya+X3Ae/w7c+wLxFeeJSMcXMG1zGuU80RQaIx78=
X-Received: by 2002:a05:6214:252a:b0:6b5:8913:d63a with SMTP id
 6a1803df08f44-6b61d7ba5a8mr106848856d6.12.1720622681484; Wed, 10 Jul 2024
 07:44:41 -0700 (PDT)
MIME-Version: 1.0
References: <2bbb65fcda57f2609f0967f9050a91415059026c.1719942341.git.milan.djokic@rt-rk.com>
 <21a1bbe9308b72eac6d218235f5211c7a1c90454.1719964980.git.milan.djokic@rt-rk.com>
 <0481c78f-ccad-4c65-b104-6b787b79f1d8@suse.com> <CAKp59VHkEpKMNpA18xjHp4n_XxA4Fbo121v5ApoTseyhirkM+g@mail.gmail.com>
 <f8cc1555-7689-49ff-9114-13354f1553cd@suse.com>
In-Reply-To: <f8cc1555-7689-49ff-9114-13354f1553cd@suse.com>
From: =?UTF-8?B?TWlsYW4gxJBva2nEhw==?= <milandjokic1995@gmail.com>
Date: Wed, 10 Jul 2024 16:44:30 +0200
Message-ID: <CAKp59VHJQYHA2G=AzoXUeQjjVfQfyqqPWqocrr_k9L_r=wHY3w@mail.gmail.com>
Subject: Re: [PATCH v4] xen/riscv: PE/COFF image header for RISC-V target
To: Jan Beulich <jbeulich@suse.com>
Cc: milan.djokic@rt-rk.com, Alistair Francis <alistair.francis@wdc.com>, 
	Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, 
	Nikola Jelic <nikola.jelic@rt-rk.com>, xen-devel@lists.xenproject.org, 
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 8, 2024 at 11:32=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 04.07.2024 19:21, Milan =C4=90oki=C4=87 wrote:
> > On Wed, Jul 3, 2024 at 5:55=E2=80=AFPM Jan Beulich <jbeulich@suse.com> =
wrote:
> >> On 03.07.2024 02:04, Milan Djokic wrote:
> >>> +#ifdef CONFIG_RISCV_EFI
> >>> +        /*
> >>> +         * This instruction decodes to "MZ" ASCII required by UEFI.
> >>> +         */
> >>> +        c.li s4,-13
> >>> +        c.j xen_start
> >>> +#else
> >>> +        /* jump to start kernel */
> >>> +        jal xen_start
> >>
> >> JAL, not J? Why?
> >>
> > We use jal explicitly here to highlight that we want to occupy 32 bits
> > in order to align with header format (and EFI case where we use two
> > 16-bits instructions). Although it will also work by using "j"
> > directly, it could be implicitly compressed to 16 bits (if C extension
> > is available) which would make header layout less obvious imo.
>
> According to e.g. ...
>
> >>> +#endif
> >>> +        .balign 8
> >>
> >> This won't do what you want unless "start" itself is also suitably ali=
gned.
> >> It'll be as long as it's first in the section, but better make such ex=
plicit.
> >>
> > I understand, we'll also explicitly align "start"
> >
> >>> +#ifdef CONFIG_RISCV_64
> >>> +        /* Image load offset(2MB) from start of RAM */
> >>> +        .quad 0x200000
> >>> +#else
> >>> +        /* Image load offset(4MB) from start of RAM */
> >>> +        .quad 0x400000
> >>> +#endif
>
> ... the #ifdef here, you aim at having code be suitable for RV32, too.
> However, JAL has a compressed form there, so its use would make things
> "less obvious" there as well. I'm inclined to say that since the
> subsequent ".balign 8" adds padding NOPs anyway, there's no real
> difference whether that adds 32 bits worth of NOPs or 48 bits. If you
> really wanted to "hide" the difference, imo ".balign 4" would be the
> way to go.
>
> In any event, if there would still be a reason to stick to JAL, you'd
> want to name the reason(s) in a code comment.
>
No specific reason to use jal from a functional point of view, just
aesthetic reasons as I mentioned in a previous comment. Also jal is
used across head.S file, so we also keep some consistency in that
manner. I just don't get the reason why "j" is more suitable as a
pseudo instruction since it also comes down to jal as a base
instruction.
Of course, we can easily switch to "j" here, just want to know why we
are doing so.

> >> What these constants derive from? I expect they aren't really "magic" =
.
> >>
> > These offsets are commonly used for RISCV SOCs. In general, these can
> > have different values, depending on memory layout, but in order to be
> > compatible with
> > linux bootloaders we just followed the common practice.
>
> So entirely magic, really. Such imo needs commenting on.
>
Sure, we'll comment on this one.

> >>> @@ -60,6 +100,7 @@ FUNC(start)
> >>>          mv      a1, s1
> >>>
> >>>          tail    start_xen
> >>> +
> >>>  END(start)
> >>>
> >>>          .section .text, "ax", %progbits
> >>
> >> What is this hunk about?
> >>
> > Not sure which part of the code you refer to here. This section is
> > part of the original riscv implementation. We only grouped this
> > section under the new, xen_start label since we have different
> > handling for EFI and ELF formats  in the beginning of "start" function
> > before jumping to xen_start.
>
> "Hunk" is common term for a single piece of "diff" output, starting at
> the @@ line. To word it differently: What reason is there to insert a
> blank line in this very patch?
>
Sry, I haven't seen the blank line diff at all. We'll remove this one,
it was added by mistake.

> >>> --- /dev/null
> >>> +++ b/xen/include/efi/pe.h
> >>> @@ -0,0 +1,458 @@
> >>> +#ifndef __PE_H
> >>
> >> This probably wants (needs?) to gain an SPDX line.
> >>
> > Yes, it was originally taken over from the linux kernel (with some
> > modifications from our side), but we omitted the SPDX line by mistake.
> >
> >>> +#define __PE_H
> >>> +
> >>> +/*
> >>> + * Linux EFI stub v1.0 adds the following functionality:
> >>> + * - Loading initrd from the LINUX_EFI_INITRD_MEDIA_GUID device path=
,
> >>> + * - Loading/starting the kernel from firmware that targets a differ=
ent
> >>> + *   machine type, via the entrypoint exposed in the .compat PE/COFF=
 section.
> >>> + *
> >>> + * The recommended way of loading and starting v1.0 or later kernels=
 is to use
> >>> + * the LoadImage() and StartImage() EFI boot services, and expose th=
e initrd
> >>> + * via the LINUX_EFI_INITRD_MEDIA_GUID device path.
> >>> + *
> >>> + * Versions older than v1.0 support initrd loading via the image loa=
d options
> >>> + * (using initrd=3D, limited to the volume from which the kernel its=
elf was
> >>> + * loaded), or via arch specific means (bootparams, DT, etc).
> >>> + *
> >>> + * On x86, LoadImage() and StartImage() can be omitted if the EFI ha=
ndover
> >>> + * protocol is implemented, which can be inferred from the version,
> >>> + * handover_offset and xloadflags fields in the bootparams structure=
.
> >>> + */
> >>> +#define LINUX_EFISTUB_MAJOR_VERSION 0x1
> >>> +#define LINUX_EFISTUB_MINOR_VERSION 0x0
> >>> +
> >>> +#define MZ_MAGIC 0x5a4d /* "MZ" */
> >>> +
> >>> +#define PE_MAGIC              0x00004550 /* "PE\0\0" */
> >>> +#define PE_OPT_MAGIC_PE32     0x010b
> >>> +#define PE_OPT_MAGIC_PE32_ROM 0x0107
> >>> +#define PE_OPT_MAGIC_PE32PLUS 0x020b
> >>> +
> >>> +/* machine type */
> >>> +#define IMAGE_FILE_MACHINE_UNKNOWN   0x0000
> >>> +#define IMAGE_FILE_MACHINE_AM33      0x01d3
> >>> +#define IMAGE_FILE_MACHINE_AMD64     0x8664
> >>> +#define IMAGE_FILE_MACHINE_ARM       0x01c0
> >>> +#define IMAGE_FILE_MACHINE_ARMV7     0x01c4
> >>> +#define IMAGE_FILE_MACHINE_ARM64     0xaa64
> >>> +#define IMAGE_FILE_MACHINE_EBC       0x0ebc
> >>> +#define IMAGE_FILE_MACHINE_I386      0x014c
> >>> +#define IMAGE_FILE_MACHINE_IA64      0x0200
> >>> +#define IMAGE_FILE_MACHINE_M32R      0x9041
> >>> +#define IMAGE_FILE_MACHINE_MIPS16    0x0266
> >>> +#define IMAGE_FILE_MACHINE_MIPSFPU   0x0366
> >>> +#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
> >>> +#define IMAGE_FILE_MACHINE_POWERPC   0x01f0
> >>> +#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1
> >>> +#define IMAGE_FILE_MACHINE_R4000     0x0166
> >>> +#define IMAGE_FILE_MACHINE_RISCV32   0x5032
> >>> +#define IMAGE_FILE_MACHINE_RISCV64   0x5064
> >>> +#define IMAGE_FILE_MACHINE_RISCV128  0x5128
> >>> +#define IMAGE_FILE_MACHINE_SH3       0x01a2
> >>> +#define IMAGE_FILE_MACHINE_SH3DSP    0x01a3
> >>> +#define IMAGE_FILE_MACHINE_SH3E      0x01a4
> >>> +#define IMAGE_FILE_MACHINE_SH4       0x01a6
> >>> +#define IMAGE_FILE_MACHINE_SH5       0x01a8
> >>> +#define IMAGE_FILE_MACHINE_THUMB     0x01c2
> >>> +#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
> >>> +
> >>> +/* flags */
> >>> +#define IMAGE_FILE_RELOCS_STRIPPED         0x0001
> >>> +#define IMAGE_FILE_EXECUTABLE_IMAGE        0x0002
> >>> +#define IMAGE_FILE_LINE_NUMS_STRIPPED      0x0004
> >>> +#define IMAGE_FILE_LOCAL_SYMS_STRIPPED     0x0008
> >>> +#define IMAGE_FILE_AGGRESSIVE_WS_TRIM      0x0010
> >>> +#define IMAGE_FILE_LARGE_ADDRESS_AWARE     0x0020
> >>> +#define IMAGE_FILE_16BIT_MACHINE           0x0040
> >>> +#define IMAGE_FILE_BYTES_REVERSED_LO       0x0080
> >>> +#define IMAGE_FILE_32BIT_MACHINE           0x0100
> >>> +#define IMAGE_FILE_DEBUG_STRIPPED          0x0200
> >>> +#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
> >>> +#define IMAGE_FILE_NET_RUN_FROM_SWAP       0x0800
> >>> +#define IMAGE_FILE_SYSTEM                  0x1000
> >>> +#define IMAGE_FILE_DLL                     0x2000
> >>> +#define IMAGE_FILE_UP_SYSTEM_ONLY          0x4000
> >>> +#define IMAGE_FILE_BYTES_REVERSED_HI       0x8000
> >>> +
> >>> +#define IMAGE_FILE_OPT_ROM_MAGIC       0x107
> >>> +#define IMAGE_FILE_OPT_PE32_MAGIC      0x10b
> >>> +#define IMAGE_FILE_OPT_PE32_PLUS_MAGIC 0x20b
> >>> +
> >>> +#define IMAGE_SUBSYSTEM_UNKNOWN                 0
> >>> +#define IMAGE_SUBSYSTEM_NATIVE                  1
> >>> +#define IMAGE_SUBSYSTEM_WINDOWS_GUI             2
> >>> +#define IMAGE_SUBSYSTEM_WINDOWS_CUI             3
> >>> +#define IMAGE_SUBSYSTEM_POSIX_CUI               7
> >>> +#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI          9
> >>> +#define IMAGE_SUBSYSTEM_EFI_APPLICATION         10
> >>> +#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
> >>> +#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
> >>> +#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE           13
> >>> +#define IMAGE_SUBSYSTEM_XBOX                    14
> >>> +
> >>> +#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         0x0040
> >>> +#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      0x0080
> >>> +#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            0x0100
> >>> +#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          0x0200
> >>> +#define IMAGE_DLLCHARACTERISTICS_NO_SEH                0x0400
> >>> +#define IMAGE_DLLCHARACTERISTICS_NO_BIND               0x0800
> >>> +#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            0x2000
> >>> +#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
> >>> +
> >>> +/* they actually defined 0x00000000 as well, but I think we'll skip =
that one. */
> >>> +#define IMAGE_SCN_RESERVED_0             0x00000001
> >>> +#define IMAGE_SCN_RESERVED_1             0x00000002
> >>> +#define IMAGE_SCN_RESERVED_2             0x00000004
> >>> +#define IMAGE_SCN_TYPE_NO_PAD            0x00000008 /* don't pad - o=
bsolete */
> >>> +#define IMAGE_SCN_RESERVED_3             0x00000010
> >>> +#define IMAGE_SCN_CNT_CODE               0x00000020 /* .text */
> >>> +#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040 /* .data */
> >>> +#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* .bss */
> >>> +#define IMAGE_SCN_LNK_OTHER              0x00000100 /* reserved */
> >>> +#define IMAGE_SCN_LNK_INFO               0x00000200 /* .drectve comm=
ents */
> >>> +#define IMAGE_SCN_RESERVED_4             0x00000400
> >>> +#define IMAGE_SCN_LNK_REMOVE             0x00000800 /* .o only - scn=
 to be rm'd*/
> >>> +#define IMAGE_SCN_LNK_COMDAT             0x00001000 /* .o only - COM=
DAT data */
> >>> +#define IMAGE_SCN_RESERVED_5             0x00002000 /* spec omits th=
is */
> >>> +#define IMAGE_SCN_RESERVED_6             0x00004000 /* spec omits th=
is */
> >>> +#define IMAGE_SCN_GPREL                  0x00008000 /* global pointe=
r referenced data */
> >>> +/* spec lists 0x20000 twice, I suspect they meant 0x10000 for one of=
 them */
> >>> +#define IMAGE_SCN_MEM_PURGEABLE 0x00010000 /* reserved for "future" =
use */
> >>> +#define IMAGE_SCN_16BIT         0x00020000 /* reserved for "future" =
use */
> >>> +#define IMAGE_SCN_LOCKED        0x00040000 /* reserved for "future" =
use */
> >>> +#define IMAGE_SCN_PRELOAD       0x00080000 /* reserved for "future" =
use */
> >>> +/* and here they just stuck a 1-byte integer in the middle of a bitf=
ield */
> >>> +#define IMAGE_SCN_ALIGN_1BYTES    0x00100000 /* it does what it says=
 on the box */
> >>> +#define IMAGE_SCN_ALIGN_2BYTES    0x00200000
> >>> +#define IMAGE_SCN_ALIGN_4BYTES    0x00300000
> >>> +#define IMAGE_SCN_ALIGN_8BYTES    0x00400000
> >>> +#define IMAGE_SCN_ALIGN_16BYTES   0x00500000
> >>> +#define IMAGE_SCN_ALIGN_32BYTES   0x00600000
> >>> +#define IMAGE_SCN_ALIGN_64BYTES   0x00700000
> >>> +#define IMAGE_SCN_ALIGN_128BYTES  0x00800000
> >>> +#define IMAGE_SCN_ALIGN_256BYTES  0x00900000
> >>> +#define IMAGE_SCN_ALIGN_512BYTES  0x00a00000
> >>> +#define IMAGE_SCN_ALIGN_1024BYTES 0x00b00000
> >>> +#define IMAGE_SCN_ALIGN_2048BYTES 0x00c00000
> >>> +#define IMAGE_SCN_ALIGN_4096BYTES 0x00d00000
> >>> +#define IMAGE_SCN_ALIGN_8192BYTES 0x00e00000
> >>> +#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* extended relocations=
 */
> >>> +#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 /* scn can be discarded=
 */
> >>> +#define IMAGE_SCN_MEM_NOT_CACHED  0x04000000 /* cannot be cached */
> >>> +#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000 /* not pageable */
> >>> +#define IMAGE_SCN_MEM_SHARED      0x10000000 /* can be shared */
> >>> +#define IMAGE_SCN_MEM_EXECUTE     0x20000000 /* can be executed as c=
ode */
> >>> +#define IMAGE_SCN_MEM_READ        0x40000000 /* readable */
> >>> +#define IMAGE_SCN_MEM_WRITE       0x80000000 /* writeable */
> >>> +
> >>> +#define IMAGE_DEBUG_TYPE_CODEVIEW 2
> >>> +
> >>> +#ifndef __ASSEMBLY__
> >>> +
> >>> +struct mz_hdr {
> >>> +    uint16_t magic;              /* MZ_MAGIC */
> >>> +    uint16_t lbsize;             /* size of last used block */
> >>> +    uint16_t blocks;             /* pages in file, 0x3 */
> >>> +    uint16_t relocs;             /* relocations */
> >>> +    uint16_t hdrsize;            /* header size in "paragraphs" */
> >>> +    uint16_t min_extra_pps;      /* .bss */
> >>> +    uint16_t max_extra_pps;      /* runtime limit for the arena size=
 */
> >>> +    uint16_t ss;                 /* relative stack segment */
> >>> +    uint16_t sp;                 /* initial %sp register */
> >>> +    uint16_t checksum;           /* word checksum */
> >>> +    uint16_t ip;                 /* initial %ip register */
> >>> +    uint16_t cs;                 /* initial %cs relative to load seg=
ment */
> >>> +    uint16_t reloc_table_offset; /* offset of the first relocation *=
/
> >>> +    uint16_t overlay_num;        /* overlay number.  set to 0. */
> >>> +    uint16_t reserved0[4];       /* reserved */
> >>> +    uint16_t oem_id;             /* oem identifier */
> >>> +    uint16_t oem_info;           /* oem specific */
> >>> +    uint16_t reserved1[10];      /* reserved */
> >>> +    uint32_t peaddr;             /* address of pe header */
> >>> +    char     message[];          /* message to print */
> >>> +};
> >>
> >> We already have an instance of this struct in common/efi/pe.c. I think
> >> it wouldn't be very desirable to have two (different) instances.
> >>
> >>> +struct mz_reloc {
> >>> +    uint16_t offset;
> >>> +    uint16_t segment;
> >>> +};
> >>
> >> We aren't going to need this anywhere, are we?
> >>
> >>> +struct pe_hdr {
> >>> +    uint32_t magic;        /* PE magic */
> >>> +    uint16_t machine;      /* machine type */
> >>> +    uint16_t sections;     /* number of sections */
> >>> +    uint32_t timestamp;    /* time_t */
> >>> +    uint32_t symbol_table; /* symbol table offset */
> >>> +    uint32_t symbols;      /* number of symbols */
> >>> +    uint16_t opt_hdr_size; /* size of optional header */
> >>> +    uint16_t flags;        /* flags */
> >>> +};
> >>
> >> And again another (different) instance of this and further struct-s
> >> already exists. Same for the section header further down.
> >>
> >>> +/* the fact that pe32 isn't padded where pe32+ is 64-bit means union=
 won't
> >>> + * work right.  vomit. */
> >>
> >> Noticing here in particular, but being an issue elsewhere as well:
> >> Unless this file is to be a verbatim copy taken from somewhere (in
> >> which case it should probably be introduced in a separate commit
> >> with an Origin: tag), comments want to adhere of ./CODING_STYLE.
> >>
> >>> +struct pe32_opt_hdr {
> >>> +    /* "standard" header */
> >>> +    uint16_t magic;       /* file type */
> >>> +    uint8_t  ld_major;    /* linker major version */
> >>> +    uint8_t  ld_minor;    /* linker minor version */
> >>> +    uint32_t text_size;   /* size of text section(s) */
> >>> +    uint32_t data_size;   /* size of data section(s) */
> >>> +    uint32_t bss_size;    /* size of bss section(s) */
> >>> +    uint32_t entry_point; /* file offset of entry point */
> >>> +    uint32_t code_base;   /* relative code addr in ram */
> >>> +    uint32_t data_base;   /* relative data addr in ram */
> >>> +    /* "windows" header */
> >>> +    uint32_t image_base;     /* preferred load address */
> >>> +    uint32_t section_align;  /* alignment in bytes */
> >>> +    uint32_t file_align;     /* file alignment in bytes */
> >>> +    uint16_t os_major;       /* major OS version */
> >>> +    uint16_t os_minor;       /* minor OS version */
> >>> +    uint16_t image_major;    /* major image version */
> >>> +    uint16_t image_minor;    /* minor image version */
> >>> +    uint16_t subsys_major;   /* major subsystem version */
> >>> +    uint16_t subsys_minor;   /* minor subsystem version */
> >>> +    uint32_t win32_version;  /* reserved, must be 0 */
> >>> +    uint32_t image_size;     /* image size */
> >>> +    uint32_t header_size;    /* header size rounded up to file_align=
 */
> >>> +    uint32_t csum;           /* checksum */
> >>> +    uint16_t subsys;         /* subsystem */
> >>> +    uint16_t dll_flags;      /* executable characteristics */
> >>> +    uint32_t stack_size_req; /* amt of stack requested */
> >>> +    uint32_t stack_size;     /* amt of stack required */
> >>> +    uint32_t heap_size_req;  /* amt of heap requested */
> >>> +    uint32_t heap_size;      /* amt of heap required */
> >>> +    uint32_t loader_flags;   /* reserved, must be 0 */
> >>> +    uint32_t data_dirs;      /* number of data dir entries */
> >>> +};
> >>> +
> >>> +struct pe32plus_opt_hdr {
> >>> +    uint16_t magic;       /* file type */
> >>> +    uint8_t  ld_major;    /* linker major version */
> >>> +    uint8_t  ld_minor;    /* linker minor version */
> >>> +    uint32_t text_size;   /* size of text section(s) */
> >>> +    uint32_t data_size;   /* size of data section(s) */
> >>> +    uint32_t bss_size;    /* size of bss section(s) */
> >>> +    uint32_t entry_point; /* file offset of entry point */
> >>> +    uint32_t code_base;   /* relative code addr in ram */
> >>> +    /* "windows" header */
> >>> +    uint64_t image_base;     /* preferred load address */
> >>> +    uint32_t section_align;  /* alignment in bytes */
> >>> +    uint32_t file_align;     /* file alignment in bytes */
> >>> +    uint16_t os_major;       /* major OS version */
> >>> +    uint16_t os_minor;       /* minor OS version */
> >>> +    uint16_t image_major;    /* major image version */
> >>> +    uint16_t image_minor;    /* minor image version */
> >>> +    uint16_t subsys_major;   /* major subsystem version */
> >>> +    uint16_t subsys_minor;   /* minor subsystem version */
> >>> +    uint32_t win32_version;  /* reserved, must be 0 */
> >>> +    uint32_t image_size;     /* image size */
> >>> +    uint32_t header_size;    /* header size rounded up to file_align=
 */
> >>> +    uint32_t csum;           /* checksum */
> >>> +    uint16_t subsys;         /* subsystem */
> >>> +    uint16_t dll_flags;      /* executable characteristics */
> >>> +    uint64_t stack_size_req; /* amt of stack requested */
> >>> +    uint64_t stack_size;     /* amt of stack required */
> >>> +    uint64_t heap_size_req;  /* amt of heap requested */
> >>> +    uint64_t heap_size;      /* amt of heap required */
> >>> +    uint32_t loader_flags;   /* reserved, must be 0 */
> >>> +    uint32_t data_dirs;      /* number of data dir entries */
> >>> +};
> >>> +
> >>> +struct data_dirent {
> >>> +    uint32_t virtual_address; /* relative to load address */
> >>> +    uint32_t size;
> >>> +};
> >>
> >> Will we need this and ...
> >>
> >>> +struct data_directory {
> >>> +    struct data_dirent exports;          /* .edata */
> >>> +    struct data_dirent imports;          /* .idata */
> >>> +    struct data_dirent resources;        /* .rsrc */
> >>> +    struct data_dirent exceptions;       /* .pdata */
> >>> +    struct data_dirent certs;            /* certs */
> >>> +    struct data_dirent base_relocations; /* .reloc */
> >>> +    struct data_dirent debug;            /* .debug */
> >>> +    struct data_dirent arch;             /* reservered */
> >>> +    struct data_dirent global_ptr;       /* global pointer reg. Size=
=3D0 */
> >>> +    struct data_dirent tls;              /* .tls */
> >>> +    struct data_dirent load_config;      /* load configuration struc=
ture */
> >>> +    struct data_dirent bound_imports;    /* no idea */
> >>> +    struct data_dirent import_addrs;     /* import address table */
> >>> +    struct data_dirent delay_imports;    /* delay-load import table =
*/
> >>> +    struct data_dirent clr_runtime_hdr;  /* .cor (object only) */
> >>> +    struct data_dirent reserved;
> >>> +};
> >>
> >> ... this?
> >>
> >>> +struct section_header {
> >>> +    char     name[8];         /* name or string tbl offset */
> >>> +    uint32_t virtual_size;    /* size of loaded section in ram */
> >>> +    uint32_t virtual_address; /* relative virtual address */
> >>> +    uint32_t raw_data_size;   /* size of the section */
> >>> +    uint32_t data_addr;       /* file pointer to first page of sec *=
/
> >>> +    uint32_t relocs;          /* file pointer to relocation entries =
*/
> >>> +    uint32_t line_numbers;    /* line numbers */
> >>> +    uint16_t num_relocs;      /* number of relocations */
> >>> +    uint16_t num_lin_numbers; /* COFF line count. */
> >>> +    uint32_t flags;
> >>> +};
> >>> +
> >>> +enum x64_coff_reloc_type {
> >>> +    IMAGE_REL_AMD64_ABSOLUTE =3D 0,
> >>> +    IMAGE_REL_AMD64_ADDR64,
> >>> +    IMAGE_REL_AMD64_ADDR32,
> >>> +    IMAGE_REL_AMD64_ADDR32N,
> >>> +    IMAGE_REL_AMD64_REL32,
> >>> +    IMAGE_REL_AMD64_REL32_1,
> >>> +    IMAGE_REL_AMD64_REL32_2,
> >>> +    IMAGE_REL_AMD64_REL32_3,
> >>> +    IMAGE_REL_AMD64_REL32_4,
> >>> +    IMAGE_REL_AMD64_REL32_5,
> >>> +    IMAGE_REL_AMD64_SECTION,
> >>> +    IMAGE_REL_AMD64_SECREL,
> >>> +    IMAGE_REL_AMD64_SECREL7,
> >>> +    IMAGE_REL_AMD64_TOKEN,
> >>> +    IMAGE_REL_AMD64_SREL32,
> >>> +    IMAGE_REL_AMD64_PAIR,
> >>> +    IMAGE_REL_AMD64_SSPAN32,
> >>> +};
> >>> +
> >>> +enum arm_coff_reloc_type {
> >>> +    IMAGE_REL_ARM_ABSOLUTE,
> >>> +    IMAGE_REL_ARM_ADDR32,
> >>> +    IMAGE_REL_ARM_ADDR32N,
> >>> +    IMAGE_REL_ARM_BRANCH2,
> >>> +    IMAGE_REL_ARM_BRANCH1,
> >>> +    IMAGE_REL_ARM_SECTION,
> >>> +    IMAGE_REL_ARM_SECREL,
> >>> +};
> >>> +
> >>> +enum sh_coff_reloc_type {
> >>> +    IMAGE_REL_SH3_ABSOLUTE,
> >>> +    IMAGE_REL_SH3_DIRECT16,
> >>> +    IMAGE_REL_SH3_DIRECT32,
> >>> +    IMAGE_REL_SH3_DIRECT8,
> >>> +    IMAGE_REL_SH3_DIRECT8_WORD,
> >>> +    IMAGE_REL_SH3_DIRECT8_LONG,
> >>> +    IMAGE_REL_SH3_DIRECT4,
> >>> +    IMAGE_REL_SH3_DIRECT4_WORD,
> >>> +    IMAGE_REL_SH3_DIRECT4_LONG,
> >>> +    IMAGE_REL_SH3_PCREL8_WORD,
> >>> +    IMAGE_REL_SH3_PCREL8_LONG,
> >>> +    IMAGE_REL_SH3_PCREL12_WORD,
> >>> +    IMAGE_REL_SH3_STARTOF_SECTION,
> >>> +    IMAGE_REL_SH3_SIZEOF_SECTION,
> >>> +    IMAGE_REL_SH3_SECTION,
> >>> +    IMAGE_REL_SH3_SECREL,
> >>> +    IMAGE_REL_SH3_DIRECT32_NB,
> >>> +    IMAGE_REL_SH3_GPREL4_LONG,
> >>> +    IMAGE_REL_SH3_TOKEN,
> >>> +    IMAGE_REL_SHM_PCRELPT,
> >>> +    IMAGE_REL_SHM_REFLO,
> >>> +    IMAGE_REL_SHM_REFHALF,
> >>> +    IMAGE_REL_SHM_RELLO,
> >>> +    IMAGE_REL_SHM_RELHALF,
> >>> +    IMAGE_REL_SHM_PAIR,
> >>> +    IMAGE_REL_SHM_NOMODE,
> >>> +};
> >>> +
> >>> +enum ppc_coff_reloc_type {
> >>> +    IMAGE_REL_PPC_ABSOLUTE,
> >>> +    IMAGE_REL_PPC_ADDR64,
> >>> +    IMAGE_REL_PPC_ADDR32,
> >>> +    IMAGE_REL_PPC_ADDR24,
> >>> +    IMAGE_REL_PPC_ADDR16,
> >>> +    IMAGE_REL_PPC_ADDR14,
> >>> +    IMAGE_REL_PPC_REL24,
> >>> +    IMAGE_REL_PPC_REL14,
> >>> +    IMAGE_REL_PPC_ADDR32N,
> >>> +    IMAGE_REL_PPC_SECREL,
> >>> +    IMAGE_REL_PPC_SECTION,
> >>> +    IMAGE_REL_PPC_SECREL16,
> >>> +    IMAGE_REL_PPC_REFHI,
> >>> +    IMAGE_REL_PPC_REFLO,
> >>> +    IMAGE_REL_PPC_PAIR,
> >>> +    IMAGE_REL_PPC_SECRELLO,
> >>> +    IMAGE_REL_PPC_GPREL,
> >>> +    IMAGE_REL_PPC_TOKEN,
> >>> +};
> >>> +
> >>> +enum x86_coff_reloc_type {
> >>> +    IMAGE_REL_I386_ABSOLUTE,
> >>> +    IMAGE_REL_I386_DIR16,
> >>> +    IMAGE_REL_I386_REL16,
> >>> +    IMAGE_REL_I386_DIR32,
> >>> +    IMAGE_REL_I386_DIR32NB,
> >>> +    IMAGE_REL_I386_SEG12,
> >>> +    IMAGE_REL_I386_SECTION,
> >>> +    IMAGE_REL_I386_SECREL,
> >>> +    IMAGE_REL_I386_TOKEN,
> >>> +    IMAGE_REL_I386_SECREL7,
> >>> +    IMAGE_REL_I386_REL32,
> >>> +};
> >>> +
> >>> +enum ia64_coff_reloc_type {
> >>> +    IMAGE_REL_IA64_ABSOLUTE,
> >>> +    IMAGE_REL_IA64_IMM14,
> >>> +    IMAGE_REL_IA64_IMM22,
> >>> +    IMAGE_REL_IA64_IMM64,
> >>> +    IMAGE_REL_IA64_DIR32,
> >>> +    IMAGE_REL_IA64_DIR64,
> >>> +    IMAGE_REL_IA64_PCREL21B,
> >>> +    IMAGE_REL_IA64_PCREL21M,
> >>> +    IMAGE_REL_IA64_PCREL21F,
> >>> +    IMAGE_REL_IA64_GPREL22,
> >>> +    IMAGE_REL_IA64_LTOFF22,
> >>> +    IMAGE_REL_IA64_SECTION,
> >>> +    IMAGE_REL_IA64_SECREL22,
> >>> +    IMAGE_REL_IA64_SECREL64I,
> >>> +    IMAGE_REL_IA64_SECREL32,
> >>> +    IMAGE_REL_IA64_DIR32NB,
> >>> +    IMAGE_REL_IA64_SREL14,
> >>> +    IMAGE_REL_IA64_SREL22,
> >>> +    IMAGE_REL_IA64_SREL32,
> >>> +    IMAGE_REL_IA64_UREL32,
> >>> +    IMAGE_REL_IA64_PCREL60X,
> >>> +    IMAGE_REL_IA64_PCREL60B,
> >>> +    IMAGE_REL_IA64_PCREL60F,
> >>> +    IMAGE_REL_IA64_PCREL60I,
> >>> +    IMAGE_REL_IA64_PCREL60M,
> >>> +    IMAGE_REL_IA64_IMMGPREL6,
> >>> +    IMAGE_REL_IA64_TOKEN,
> >>> +    IMAGE_REL_IA64_GPREL32,
> >>> +    IMAGE_REL_IA64_ADDEND,
> >>> +};
> >>
> >> All sorts of relocation types, but none for RISC-V? Are we going to ne=
ed
> >> any of this?
> >>
> >>> +struct coff_reloc {
> >>> +    uint32_t virtual_address;
> >>> +    uint32_t symbol_table_index;
> >>> +
> >>> +    union {
> >>> +        enum x64_coff_reloc_type  x64_type;
> >>> +        enum arm_coff_reloc_type  arm_type;
> >>> +        enum sh_coff_reloc_type   sh_type;
> >>> +        enum ppc_coff_reloc_type  ppc_type;
> >>> +        enum x86_coff_reloc_type  x86_type;
> >>> +        enum ia64_coff_reloc_type ia64_type;
> >>> +        uint16_t                  data;
> >>> +    };
> >>> +};
> >>> +
> >>> +/*
> >>> + * Definitions for the contents of the certs data block
> >>> + */
> >>> +#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002
> >>> +#define WIN_CERT_TYPE_EFI_OKCS115      0x0EF0
> >>> +#define WIN_CERT_TYPE_EFI_GUID         0x0EF1
> >>> +
> >>> +#define WIN_CERT_REVISION_1_0 0x0100
> >>> +#define WIN_CERT_REVISION_2_0 0x0200
> >>> +
> >>> +struct win_certificate {
> >>> +    uint32_t length;
> >>> +    uint16_t revision;
> >>> +    uint16_t cert_type;
> >>> +};
> >>
> >> Or any of this?
> >>
> > Regarding pe.h file content, we wanted to keep it as generic as
> > possible (structures definition according to PE format which can be
> > used for multiple architectures). Specifically for RISC-V as you
> > noticed, we are not using lots of structures (data directories,
> > relocation structures, certificates, etc.). Therefore, we can reduce
> > it to only those used atm, but in that case we won't have a generic PE
> > header definition anymore. Regarding structures which are already
> > defined in common/efi/pe.c, meaning that with our change we have two
> > versions of same structures, we can remove those, but in that case it
> > could be confusing for someone who is trying to map fields from pe.h
> > to actual image header in assembly code. Summary I would keep this
> > header with its original content, but if you think that it contains
> > too much overhead we can reduce it to relevant structures only.
>
> Actually I not only don't mind this header, but would consider it
> superior to the present state of things. Just that then imo it would
> want introducing in a separate commit, with suitable description /
> justification. That could (should) then be followed by a patch using
> this header's struct-s / definitions in pre-existing code, purging
> any duplication from there.
>
So we should have one commit for pe.h only, a subsequent commit where
x86 implementation is modified to use structures from pe.h and a third
commit where we add EFI stub for RISC-V?
And we can submit the first two commits separately from the RISC-V EFI
stub for which we'll wait on @Oleksii opinion on whether EFI
application format is needed upstream?
Just checking if my understanding is correct.

BR,
Milan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 15:10:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 15:10:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757005.1165729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRYxz-0004Xz-2j; Wed, 10 Jul 2024 15:10:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757005.1165729; Wed, 10 Jul 2024 15:10:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRYxz-0004Xs-0H; Wed, 10 Jul 2024 15:10:47 +0000
Received: by outflank-mailman (input) for mailman id 757005;
 Wed, 10 Jul 2024 15:10:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRYxx-0004Xi-AR; Wed, 10 Jul 2024 15:10:45 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRYxx-0004Hc-83; Wed, 10 Jul 2024 15:10:45 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRYxw-00088i-Tw; Wed, 10 Jul 2024 15:10:44 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRYxw-00046i-TY; Wed, 10 Jul 2024 15:10:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=zLYcsjVRDujJ+1GEmdv0BVr79C4XJNkf4C3sV6VURK4=; b=G0mD/+375g/KxxbzTWpG3d4CpN
	3ULPleueYtjEC0JazjlZaYmOcr5EiudoAO9aSlkhnyPf8I9BuKuEXQ+OUutjhFbV0pfkcHoDsqlIP
	oTHkDnrAqyqtyXt8pY3hZcJPEaEIfQImMHxdyYRVfz8PkICqxt8mNvm2+CTikhd1NDWE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186752-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186752: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=3abe627f29add4d05a404e9170b81cf72d9c404b
X-Osstest-Versions-That:
    ovmf=497766f70975b9c1f88df42228c79095198f2b4e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Jul 2024 15:10:44 +0000

flight 186752 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186752/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 3abe627f29add4d05a404e9170b81cf72d9c404b
baseline version:
 ovmf                 497766f70975b9c1f88df42228c79095198f2b4e

Last test of basis   186751  2024-07-10 06:43:17 Z    0 days
Testing same since   186752  2024-07-10 13:12:58 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Nickle Wang <nicklew@nvidia.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   497766f709..3abe627f29  3abe627f29add4d05a404e9170b81cf72d9c404b -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 15:13:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 15:13:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757012.1165740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRZ0U-000572-Go; Wed, 10 Jul 2024 15:13:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757012.1165740; Wed, 10 Jul 2024 15: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 1sRZ0U-00056v-De; Wed, 10 Jul 2024 15:13:22 +0000
Received: by outflank-mailman (input) for mailman id 757012;
 Wed, 10 Jul 2024 15:13: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=Spoc=OK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRZ0T-00056p-4f
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 15:13:21 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f0f1f86b-3ece-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 17:13:19 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2eebc76119aso16673451fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 10 Jul 2024 08:13: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
 d9443c01a7336-1fbb6a0fbf0sm34939385ad.21.2024.07.10.08.13.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 10 Jul 2024 08:13: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: f0f1f86b-3ece-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720624399; x=1721229199; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8lF4I8AEIBLB9fVR0igxdz+B4B6pV1taLWWHmMDXPeI=;
        b=g5vc8HRJQGbJdzzIO+dBY/eOgGgxpvbae4UYW8rb5cl+e5U2ZGvMCQgx+KB4wAZ5By
         fcpqo3qzUnTVMEEAzbiSi9CqeukxwCCiqifwT1Q/4a2RUyjChenRbR73gpo8yKsTQR32
         FFmRP7I7RlE/yeCrkHu9LHoDljSgAvJXfVWxdlB8arZJvuXiXxXVBL3ae6PWSRZ7iLbW
         WkPRUQ4ir+LXCGA4AiWLPiuOrqoHR0FzNkzFSLFhLx8Cj6MwXUA1Dc37pNuvCBuwvSwU
         i/wGgERDnPkq0DSej5FP+eibMvH2gkhOdrshsabHXT5QFSOtMCrhnrXZ0YWnQDeJ73mk
         VB+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720624399; x=1721229199;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8lF4I8AEIBLB9fVR0igxdz+B4B6pV1taLWWHmMDXPeI=;
        b=JYPck6cZ/JODd/coJPVkZAJizLJjcobFkSP2TeJar3wnJqWYKrLHLbn3JgpvrfuCBb
         FtkyLa9aoR1g/GgGf+OcxGQKdHOtdJpFi7gMTT3shyt+bbnZkUSN9nueik527Msq+keA
         Sc1Zird+FwNRiBrFZQUqUdGuuLp+qhzeCV6I10wJKWxK2XSFjzGv22Y4SwwmFN5A8vKW
         1T50FIc1kmeAR8ASjvPKMqejHH7cxInv7fAkAyxmt65cf2UvHIaSbkkG9g0Dwdnn/dMe
         QmBV6jnm1jnx2hGNqu2tuAM3N82CEl4TjZ0xFUCFVjbAzQbCZSKC/Zz9v4R3kDw0hwUM
         IdJA==
X-Forwarded-Encrypted: i=1; AJvYcCWdzdR01wej2OYm/LQyDZak/RSDSiZu305Am+xvOhQOghY9aZhbAJU/h02NGKtdtw2kFAcG9jqyQR56j3IlBq6xazxlIH7/TdcNloMq1V8=
X-Gm-Message-State: AOJu0YzVngNrr96IjfCciwBULy3QerOVKyIhjJx52bqiIpyPE41APD/x
	ZGhOr+0SfB36DObI2Xj7/+0PKmbSW/FEsYuib9lpaxplAQo3hhJeKKIIwJMXjA==
X-Google-Smtp-Source: AGHT+IGMCvgqqsl5Un+jkFgnMc/6zBQfyBhLEiVoyhgSFYlUuMctc0npyTjRDjGmXywNuYe0Slc8vQ==
X-Received: by 2002:a05:651c:d4:b0:2ee:7dfe:d99c with SMTP id 38308e7fff4ca-2eeb3103d25mr40898501fa.31.1720624399288;
        Wed, 10 Jul 2024 08:13:19 -0700 (PDT)
Message-ID: <8b41f1c5-a828-44d3-87f5-1d130cc23636@suse.com>
Date: Wed, 10 Jul 2024 17:13:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/riscv: PE/COFF image header for RISC-V target
To: =?UTF-8?B?TWlsYW4gxJBva2nEhw==?= <milandjokic1995@gmail.com>
Cc: milan.djokic@rt-rk.com, Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Nikola Jelic <nikola.jelic@rt-rk.com>,
 xen-devel@lists.xenproject.org, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <2bbb65fcda57f2609f0967f9050a91415059026c.1719942341.git.milan.djokic@rt-rk.com>
 <21a1bbe9308b72eac6d218235f5211c7a1c90454.1719964980.git.milan.djokic@rt-rk.com>
 <0481c78f-ccad-4c65-b104-6b787b79f1d8@suse.com>
 <CAKp59VHkEpKMNpA18xjHp4n_XxA4Fbo121v5ApoTseyhirkM+g@mail.gmail.com>
 <f8cc1555-7689-49ff-9114-13354f1553cd@suse.com>
 <CAKp59VHJQYHA2G=AzoXUeQjjVfQfyqqPWqocrr_k9L_r=wHY3w@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAKp59VHJQYHA2G=AzoXUeQjjVfQfyqqPWqocrr_k9L_r=wHY3w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.07.2024 16:44, Milan Đokić wrote:
> On Mon, Jul 8, 2024 at 11:32 AM Jan Beulich <jbeulich@suse.com> wrote:
>> On 04.07.2024 19:21, Milan Đokić wrote:
>>> On Wed, Jul 3, 2024 at 5:55 PM Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 03.07.2024 02:04, Milan Djokic wrote:
>>>>> +#ifdef CONFIG_RISCV_EFI
>>>>> +        /*
>>>>> +         * This instruction decodes to "MZ" ASCII required by UEFI.
>>>>> +         */
>>>>> +        c.li s4,-13
>>>>> +        c.j xen_start
>>>>> +#else
>>>>> +        /* jump to start kernel */
>>>>> +        jal xen_start
>>>>
>>>> JAL, not J? Why?
>>>>
>>> We use jal explicitly here to highlight that we want to occupy 32 bits
>>> in order to align with header format (and EFI case where we use two
>>> 16-bits instructions). Although it will also work by using "j"
>>> directly, it could be implicitly compressed to 16 bits (if C extension
>>> is available) which would make header layout less obvious imo.
>>
>> According to e.g. ...
>>
>>>>> +#endif
>>>>> +        .balign 8
>>>>
>>>> This won't do what you want unless "start" itself is also suitably aligned.
>>>> It'll be as long as it's first in the section, but better make such explicit.
>>>>
>>> I understand, we'll also explicitly align "start"
>>>
>>>>> +#ifdef CONFIG_RISCV_64
>>>>> +        /* Image load offset(2MB) from start of RAM */
>>>>> +        .quad 0x200000
>>>>> +#else
>>>>> +        /* Image load offset(4MB) from start of RAM */
>>>>> +        .quad 0x400000
>>>>> +#endif
>>
>> ... the #ifdef here, you aim at having code be suitable for RV32, too.
>> However, JAL has a compressed form there, so its use would make things
>> "less obvious" there as well. I'm inclined to say that since the
>> subsequent ".balign 8" adds padding NOPs anyway, there's no real
>> difference whether that adds 32 bits worth of NOPs or 48 bits. If you
>> really wanted to "hide" the difference, imo ".balign 4" would be the
>> way to go.
>>
>> In any event, if there would still be a reason to stick to JAL, you'd
>> want to name the reason(s) in a code comment.
>>
> No specific reason to use jal from a functional point of view, just
> aesthetic reasons as I mentioned in a previous comment. Also jal is
> used across head.S file, so we also keep some consistency in that
> manner. I just don't get the reason why "j" is more suitable as a
> pseudo instruction since it also comes down to jal as a base
> instruction.
> Of course, we can easily switch to "j" here, just want to know why we
> are doing so.

Consistency with the other path, which uses C.J. Plus avoiding questions
along the lines of mine: Why JAL when this isn't a function call, but a
plaing branch?

>>>>> --- /dev/null
>>>>> +++ b/xen/include/efi/pe.h
>>>>> [...]
>>> Regarding pe.h file content, we wanted to keep it as generic as
>>> possible (structures definition according to PE format which can be
>>> used for multiple architectures). Specifically for RISC-V as you
>>> noticed, we are not using lots of structures (data directories,
>>> relocation structures, certificates, etc.). Therefore, we can reduce
>>> it to only those used atm, but in that case we won't have a generic PE
>>> header definition anymore. Regarding structures which are already
>>> defined in common/efi/pe.c, meaning that with our change we have two
>>> versions of same structures, we can remove those, but in that case it
>>> could be confusing for someone who is trying to map fields from pe.h
>>> to actual image header in assembly code. Summary I would keep this
>>> header with its original content, but if you think that it contains
>>> too much overhead we can reduce it to relevant structures only.
>>
>> Actually I not only don't mind this header, but would consider it
>> superior to the present state of things. Just that then imo it would
>> want introducing in a separate commit, with suitable description /
>> justification. That could (should) then be followed by a patch using
>> this header's struct-s / definitions in pre-existing code, purging
>> any duplication from there.
>>
> So we should have one commit for pe.h only, a subsequent commit where
> x86 implementation is modified to use structures from pe.h and a third
> commit where we add EFI stub for RISC-V?

That's (in my view) the minimum level of splitting, yes.

> And we can submit the first two commits separately from the RISC-V EFI
> stub for which we'll wait on @Oleksii opinion on whether EFI
> application format is needed upstream?

Yes. I also wouldn't insist on the conversion part to be done right
away, just as long as it gets done not too far in the future.

However, since you say "whether": Imo the question isn't whether we need
that (the answer there is Yes as long as EFI exists for RISC-V), but
what form it should take. If we can properly link an EFI binary, I'd
generally consider this preferable over any hand crafting. Yet of course
there may be reasons why using the tool chain has to be ruled out.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 17:46:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 17:46:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757024.1165749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRbNv-00067M-23; Wed, 10 Jul 2024 17:45:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757024.1165749; Wed, 10 Jul 2024 17: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 1sRbNu-00067F-Vi; Wed, 10 Jul 2024 17:45:42 +0000
Received: by outflank-mailman (input) for mailman id 757024;
 Wed, 10 Jul 2024 17:45:41 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRbNt-000675-Df; Wed, 10 Jul 2024 17:45:41 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRbNt-0007O4-9W; Wed, 10 Jul 2024 17:45:41 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRbNs-0006jB-Vr; Wed, 10 Jul 2024 17:45:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRbNs-0003RE-VR; Wed, 10 Jul 2024 17:45: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=0W9D2nJp9ll0ijw75uNzOJ9+Vi3P9BzRKfXtVXUvWVs=; b=PAwDrf5EX3oyQVG5+yWRwoRJZv
	5PSH2H9nxEGG5Y2x8wTLgGkA2clXcCfjylRhae0mfRTBH/F699L0jygwAHiHoc7OBOoFsM4ayd3SX
	k/8wYktMYSxjdd3dVa19nENneDAXuXh3NjslLCPXb4A0fbYdcWFIHGWsKhuFDHpBKgHw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186750-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186750: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-qemuu-freebsd12-amd64:guest-localmigrate/x10:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-credit1:debian-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
X-Osstest-Versions-That:
    xen=d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Jul 2024 17:45:40 +0000

flight 186750 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186750/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-qemuu-freebsd12-amd64 19 guest-localmigrate/x10 fail pass in 186745
 test-armhf-armhf-xl-credit1  12 debian-install             fail pass in 186745

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 186745 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 186745 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186745
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186745
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186745
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186745
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186745
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186745
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
baseline version:
 xen                  d49ba6bf8f904a58bd1cfdfe6c93023b249f0578

Last test of basis   186750  2024-07-10 06:18:24 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       fail    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Wed Jul 10 17:48:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 17:48:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757032.1165760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRbR4-0006mx-Ka; Wed, 10 Jul 2024 17:48:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757032.1165760; Wed, 10 Jul 2024 17:48: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 1sRbR4-0006mq-Hr; Wed, 10 Jul 2024 17:48:58 +0000
Received: by outflank-mailman (input) for mailman id 757032;
 Wed, 10 Jul 2024 17:48:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRbR3-0006mY-M2; Wed, 10 Jul 2024 17:48:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRbR3-0007Tw-L8; Wed, 10 Jul 2024 17:48:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRbR3-0006mW-4W; Wed, 10 Jul 2024 17:48:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRbR3-0003k8-48; Wed, 10 Jul 2024 17:48: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=PESSZgfXhUCOPB6jXGesJivXgRg0houF+Fw/nFWhnzM=; b=weFP8TDe7pz7IMlXw8EZD7dtiY
	gmO7VKAsKSlzl1f5NFzPWMF1zPzybUmFZqIGEHA1sTA0N5dW/4vLzjw4lNQFbsNB+hf2PQGZEqScI
	IZJYwAxisXQ/jCh/mPwFlTHJeaAabmiFGY6iG0mju08C/FrVNqiwS+q6TFk7B5GappQs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186754-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186754: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=6c061c4715325494b8b25453158166f9032e0335
X-Osstest-Versions-That:
    ovmf=3abe627f29add4d05a404e9170b81cf72d9c404b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Jul 2024 17:48:57 +0000

flight 186754 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186754/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 6c061c4715325494b8b25453158166f9032e0335
baseline version:
 ovmf                 3abe627f29add4d05a404e9170b81cf72d9c404b

Last test of basis   186752  2024-07-10 13:12:58 Z    0 days
Testing same since   186754  2024-07-10 15:43:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   3abe627f29..6c061c4715  6c061c4715325494b8b25453158166f9032e0335 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 18:35:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 18:35:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757044.1165770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRcAC-000413-3O; Wed, 10 Jul 2024 18:35:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757044.1165770; Wed, 10 Jul 2024 18: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 1sRcAB-00040w-Vd; Wed, 10 Jul 2024 18:35:35 +0000
Received: by outflank-mailman (input) for mailman id 757044;
 Wed, 10 Jul 2024 18: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=NRb1=OK=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1sRcAB-00040q-E2
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 18:35:35 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 30435e3b-3eeb-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 20:35:33 +0200 (CEST)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 46AIZJIs031912
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Wed, 10 Jul 2024 14:35:25 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 46AIZJRR031911;
 Wed, 10 Jul 2024 11:35:19 -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: 30435e3b-3eeb-11ef-bbfb-fd08da9f4363
Date: Wed, 10 Jul 2024 11:35:19 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org,
        Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
        Kelly Choi <kelly.choi@cloud.com>
Subject: Re: Serious AMD-Vi(?) issue
Message-ID: <Zo7UZ7l6m0KUl/Gx@mattapan.m5p.com>
References: <ZhdNxWNpM0KCzz8E@mattapan.m5p.com>
 <2aa4d1f4-ff37-4f12-bfbb-3ef5ad3f6fdd@suse.com>
 <ZiDBc3ye2wqmBAfq@mattapan.m5p.com>
 <f0bdb386-0870-4468-846c-6c8a91eaf806@suse.com>
 <ZiH0G5kN6m+wlNjn@mattapan.m5p.com>
 <Zj7vkp4r0EY9rxT4@mattapan.m5p.com>
 <ZkHTC4RpUSpKj4wf@macbook>
 <Zn4BRxTcXKufonw5@mattapan.m5p.com>
 <ZoLwfUsSEJzcQ4kI@mattapan.m5p.com>
 <ZocdQFCkH7p5nkiz@mattapan.m5p.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ZocdQFCkH7p5nkiz@mattapan.m5p.com>

On Thu, Jul 04, 2024 at 03:08:00PM -0700, Elliott Mitchell wrote:
> On Mon, Jul 01, 2024 at 11:07:57AM -0700, Elliott Mitchell wrote:
> > On Thu, Jun 27, 2024 at 05:18:15PM -0700, Elliott Mitchell wrote:
> > 
> > Most processors were mentioned roughly equally.  Several had fewer
> > mentions, but not enough to seem significant.  I discovered processor 1
> > did NOT show up.  Whereas processor 0 had an above average number of
> > occurrences.  This seems notable as these 2 processors are both reserved
> > exclusively for domain 0.
> 
> All of the patterns continue.  There are more reports on processor 0 than
> any other processor, but not enough to look particularly suspicious.
> What *does* look suspicious is the complete absence of reports from
> processor 1.

Bit more work with sort/uniq here and there is more of a pattern.
Odd-numbered processors (1,3,5) are seeing fewer reports, with CPU1 being
an outlier for having none.  Even-numbered processors (0,2,4) are seeing
more reports, with CPU0 displaying the most of any processor.  There is
also a pattern of lower-numbered processors seeing more of the reports
and higher numbered ones seeing less (CPU1 being an outlier).

If my reading of `xl dmesg` is correct, then the lower-numbered
processors are the first die and higher-numbered processors are the
second die.  My guess is the 0 and 1 are the first conjoined pair which
share more of their silicon with each other.

> > There have also been a few "spurious 8259A interrupt" lines.  So far
> > there haven't been very many of these.  The processor and IRQ listed
> > don't yet appear to show any patterns.  So far no IRQ has been listed
> > twice.
> 
> IRQs 3-7 and 9-15 have each shown up once.  1-2 and 8 haven't shown up
> so far.

#8 has now shown up, so 8259A interrupts 3-15 have now all shown up
*once*.  0-2 haven't show up at all.


Certain MSI IRQs are showing up.  The complete list is:

IRQ70	2
IRQ71	82
IRQ72	368
IRQ73	81
IRQ90	22
IRQ107	27
IRQ108	92
IRQ109	23
IRQ111	29
IRQ117	1

I'm unsure whether this actually works, but looking at /proc/interrupts,
all of these are associated with Xen according to Domain 0.  68-91 are
all listed as "xen-percpu", 105-120 are listed as "xen-dyn-lateeoi".

*IF* I am understanding this correctly, this *might* be the same problem
https://lists.xenproject.org/archives/html/xen-devel/2024-07/msg00454.html
Domain 0 is reportting plenty of spurious events.

I'm starting to wonder if this isn't a Linux software RAID1 on AMD
hardware issue, but instead a more generalized issue towards the core
of Xen's interrupt handling.  Just AMD hardware gets hit harder.

> Things look different enough to try reenabling Linux software RAID1.  I'm
> going to continue monitoring closely, but so far it seems
> "iommu=no-intremap" may in fact mitigate the issue with software RAID1.

At this point I've monitored for problems and not found any for long
enough to declare this a tentative mitigation.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Wed Jul 10 19:19:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 19:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757051.1165779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRcql-0000JW-8L; Wed, 10 Jul 2024 19:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757051.1165779; Wed, 10 Jul 2024 19: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 1sRcql-0000JP-5j; Wed, 10 Jul 2024 19:19:35 +0000
Received: by outflank-mailman (input) for mailman id 757051;
 Wed, 10 Jul 2024 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=NRb1=OK=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1sRcqk-0000JJ-BI
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 19:19:34 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 557c0ff8-3ef1-11ef-8776-851b0ebba9a2;
 Wed, 10 Jul 2024 21:19:32 +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 46AJJLh3032175
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Wed, 10 Jul 2024 15:19:27 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 46AJJK2k032174;
 Wed, 10 Jul 2024 12:19:20 -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: 557c0ff8-3ef1-11ef-8776-851b0ebba9a2
Date: Wed, 10 Jul 2024 12:19:20 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Andrei Semenov <andrei.semenov@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        jgross@suse.com
Subject: Re: AMD EPYC virtual network performances
Message-ID: <Zo7euOa87jCNvjV8@mattapan.m5p.com>
References: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>

On Tue, Jul 09, 2024 at 08:36:18AM +0000, Andrei Semenov wrote:
> 
> Does anybody notice this behavior on his side? Can we do something 
> about it?

I hadn't previously noticed this manifestation, but now that I know where
to look seems I'm also seeing the issue.

It also effects other lines of AMD's offerings.

It also effects PVH domains, but may not have as much impact.

It also effects virtual block devices.


Right now I consider this highly speculative, but I am now wondering
whether the software RAID1 issue is related to this.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Wed Jul 10 20:14:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 20:14:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757058.1165790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRdhj-0006uJ-4B; Wed, 10 Jul 2024 20:14:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757058.1165790; Wed, 10 Jul 2024 20: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 1sRdhj-0006uC-18; Wed, 10 Jul 2024 20:14:19 +0000
Received: by outflank-mailman (input) for mailman id 757058;
 Wed, 10 Jul 2024 20:14:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRdhh-0006u2-B1; Wed, 10 Jul 2024 20:14:17 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRdhh-00026O-6M; Wed, 10 Jul 2024 20:14:17 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRdhg-00021p-UT; Wed, 10 Jul 2024 20:14:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRdhg-00077V-Tw; Wed, 10 Jul 2024 20:14:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QJTGxyxGUD2PYQSs6i+u2f0NnFRudiTYQOYnbAVSS7g=; b=V17xqigQxAGCmJgNVR3GTjtTgy
	v5z3XIT4pNwQEmOyMtFRTCGFqmZKJdVk4e4JVbY8e+G8O5lDfzZDljJmcBrvo/TqcsAvea7Nvh2Ox
	jcWU+k0klfQtnexDsyjJftp0MbAA69fMcwe1bvykM07R5CrKk4kTLx2qzkWrpbHSis/U=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186755-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186755: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=0f45be16336035e69bb30761f8cd20ba3b0a3f39
X-Osstest-Versions-That:
    ovmf=6c061c4715325494b8b25453158166f9032e0335
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Jul 2024 20:14:16 +0000

flight 186755 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186755/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 0f45be16336035e69bb30761f8cd20ba3b0a3f39
baseline version:
 ovmf                 6c061c4715325494b8b25453158166f9032e0335

Last test of basis   186754  2024-07-10 15:43:05 Z    0 days
Testing same since   186755  2024-07-10 18:14:44 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Leif Lindholm <quic_llindhol@quicinc.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   6c061c4715..0f45be1633  0f45be16336035e69bb30761f8cd20ba3b0a3f39 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 20:43:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 20:43:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757066.1165799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRe9E-00021n-5d; Wed, 10 Jul 2024 20:42:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757066.1165799; Wed, 10 Jul 2024 20: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 1sRe9E-00021g-2O; Wed, 10 Jul 2024 20:42:44 +0000
Received: by outflank-mailman (input) for mailman id 757066;
 Wed, 10 Jul 2024 20:42:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I4IA=OK=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sRe9C-00021a-Do
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 20:42:42 +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 f3140e0c-3efc-11ef-bbfb-fd08da9f4363;
 Wed, 10 Jul 2024 22:42:41 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 8608F61B7F;
 Wed, 10 Jul 2024 20:42:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6E28AC32781;
 Wed, 10 Jul 2024 20:42:38 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3140e0c-3efc-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720644159;
	bh=MjSbbbHRCUsNfUWPTBBjGVSKYc/kETWAsAYExl+jHxs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=J0l+f4kYBQfKeIgfnSe2X+39G+tepYDYPDefJhI37/7xBSJ/nHRt3JcC8SS05uvpA
	 AaNZifdJQtT/3ZVrPE7/rGS8T36u2HTMMvMrNKpoVYzo6WlktNiVe60oI8PeZfGACL
	 w6RvcFqblpwOVABO/A32k7LlqjRXhEhob9AXyPupbqCwefse+jwPDK/rYE5EPM0fRZ
	 k3KdB2VCOT6oXB+LaGFJD2e3YVrVsnZ7FMDl3Xz/orvaS0PeyNpXII5JEsq9ZMBRuT
	 6QYiuBJ+pQvLtKVQfWTk/nkHXw2z81qHjzAFTtLnXNMvD/UW1XQSNs033SWl05RoWN
	 JjiQ1XHOJPWLw==
Date: Wed, 10 Jul 2024 13:42: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: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.20 v2] automation: Use a different ImageBuilder
 repository URL
In-Reply-To: <98fecf96-ab8e-4514-a3e9-a1f0b15519c1@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2407101342260.3635@ubuntu-linux-20-04-desktop>
References: <20240710093751.25154-1-michal.orzel@amd.com> <98fecf96-ab8e-4514-a3e9-a1f0b15519c1@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, 10 Jul 2024, Andrew Cooper wrote:
> On 10/07/2024 10:37 am, Michal Orzel wrote:
> > Switch to using https://gitlab.com/xen-project/imagebuilder.git which
> > should be considered official ImageBuilder repo.
> >
> > Take the opportunity to truncate the git history when cloning using
> > --depth 1.
> >
> > Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> Given the current overhaul I'm (still) doing for CI in 4.19, I'd suggest
> taking this.
> 
> It will mean an 8-month improvement in switching over fully.

Agreed


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 21:11:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 21:11:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757071.1165810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sReaq-0005n4-9h; Wed, 10 Jul 2024 21:11:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757071.1165810; Wed, 10 Jul 2024 21:11:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sReaq-0005mx-6i; Wed, 10 Jul 2024 21:11:16 +0000
Received: by outflank-mailman (input) for mailman id 757071;
 Wed, 10 Jul 2024 21:11:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sReao-0005mr-MD
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 21:11:14 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sReao-00033l-Cf; Wed, 10 Jul 2024 21:11:14 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.244])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sReao-00024U-4H; Wed, 10 Jul 2024 21:11:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=X13c+zlDac+jnoTeWNzQUt384paskS0Qs+uy9MQTbyY=; b=FukWb39G5fzbOkL6913IAYRCVS
	Wcz/LWOpHoSYfv2hMvvDEoI9AanO2ZMpgi8NVBxHMgWqdEc4NJ1J2n7EPPJFjlbcU2A7KD6z8qnVX
	F4CbuwbVlnu+j0hazPOuqWJ9Zc6BVhmwD6niUpuPUL1BBMSh0Koel63YVJpKNDIkr2Vk=;
Message-ID: <08ba090b-c7a6-4aaa-8bda-f7bce6389f86@xen.org>
Date: Wed, 10 Jul 2024 22:11:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20 v2] xen/arm: bootfdt: Fix device tree memory node
 probing
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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20240710112204.33542-1-michal.orzel@amd.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <20240710112204.33542-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 10/07/2024 12:22, Michal Orzel wrote:
> Memory node probing is done as part of early_scan_node() that is called
> for each node with depth >= 1 (root node is at depth 0). According to
> Devicetree Specification v0.4, chapter 3.4, /memory node can only exists
> as a top level node. However, Xen incorrectly considers all the nodes with
> unit node name "memory" as RAM. This buggy behavior can result in a
> failure if there are other nodes in the device tree (at depth >= 2) with
> "memory" as unit node name. An example can be a "memory@xxx" node under
> /reserved-memory. Fix it by introducing device_tree_is_memory_node() to
> perform all the required checks to assess if a node is a proper /memory
> node.
> 
> Fixes: 3e99c95ba1c8 ("arm, device tree: parse the DTB for RAM location and size")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> Tested-by: Luca Fancellu <luca.fancellu@arm.com>

Reviewed-by: Julien Grall <julien@xen.org>

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 21:29:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 21:29:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757077.1165820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sResb-0007g4-Md; Wed, 10 Jul 2024 21:29:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757077.1165820; Wed, 10 Jul 2024 21:29:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sResb-0007fx-Jq; Wed, 10 Jul 2024 21:29:37 +0000
Received: by outflank-mailman (input) for mailman id 757077;
 Wed, 10 Jul 2024 21:29:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sResa-0007fo-AV
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 21:29:36 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sResZ-0003N1-V1; Wed, 10 Jul 2024 21:29:35 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.244])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sResZ-00036l-NE; Wed, 10 Jul 2024 21:29:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=URCKJMbNc8tqwSY6dr3b3D5Ex7xsRozGtBiHkbSTkPM=; b=rAnxFUEQ4sbk2HcuL+IPm9UeeR
	cJEP/K3q7xlbD7hXBTquuKGdgYMnT35o1oSoTumGKvInEiOMByabTvt8s+ZO01tZJLr/Qohim045b
	SZxKTYSlCGqdZQo8NFMwy2bDAK4q9sFQL/khi640RTDmt05fi4vkF5UzdPW/HbsmHe/g=;
Message-ID: <99ba7e4e-7a0e-4a1b-85c9-5c21f767beda@xen.org>
Date: Wed, 10 Jul 2024 22:29:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC] Arm64: amend "xen/arm64: head: Add missing code
 symbol annotations"
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <f7228594-fa64-4fd8-b55b-506d004b73cb@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <f7228594-fa64-4fd8-b55b-506d004b73cb@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 10/06/2024 14:37, Jan Beulich wrote:
> While the change[1] didn't go in yet, there is the intention for the ELF
> metadata annotations from xen/linkage.h to also effect honoring of
> CONFIG_CC_SPLIT_SECTIONS. In code that's placement / ordering sensitive,
> these annotations therefore need using with some care.

Looking at the code, I think the ordering only really matter for 
'start'. The rest can be ordered in any way within the assembly file. So...

> 
> [1] https://lists.xen.org/archives/html/xen-devel/2024-02/msg00470.html
> 
> Fixes: fba250ae604e ("xen/arm64: head: Add missing code symbol annotations")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> An alternative would be to use LABEL{,_LOCAL}() instead of FUNC{,_LOCAL}().
> That would avoid the need for any override, but would also lose the type
> information. 

... I would suggest to only convert FUNC(start) to LABEL(start).

> Question is whether the annotated ranges really are
> "functions" in whichever wide or narrow sense.

Everything but 'start' are functions.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 21:38:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 21:38:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757083.1165829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRf1P-0000y9-EX; Wed, 10 Jul 2024 21:38:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757083.1165829; Wed, 10 Jul 2024 21: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 1sRf1P-0000y2-C0; Wed, 10 Jul 2024 21:38:43 +0000
Received: by outflank-mailman (input) for mailman id 757083;
 Wed, 10 Jul 2024 21:38:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRf1O-0000xs-J1; Wed, 10 Jul 2024 21:38:42 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRf1O-0003YE-EX; Wed, 10 Jul 2024 21:38:42 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRf1O-0003xV-1F; Wed, 10 Jul 2024 21:38:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRf1O-0001wo-0j; Wed, 10 Jul 2024 21:38: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=oarEFeer3mUJArkI/Gtce2E55TRcNMlz21HPPH/Yp54=; b=gzGlaStqcp/8bYm3VHWQwmmNGf
	jhmbc4hu02hD2PhZjFxeLpb3fC9Cv/Esuuixuw+AeJB847I1Ztmhcc4u2GS4bUZRUEHzxSUf9OxvS
	TlKcUpqc9/5m9MjQ3bjHfgQWWUsyWpUDa/GPhiKGg0MjmJVTmIqeaushbS7tolAnzwqs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186753-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186753: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-qcow2:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=34afb82a3c67f869267a26f593b6f8fc6bf35905
X-Osstest-Versions-That:
    linux=256abd8e550ce977b728be79a74e1729438b4948
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 10 Jul 2024 21:38:42 +0000

flight 186753 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186753/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-qcow2     8 xen-boot         fail in 186742 pass in 186753
 test-armhf-armhf-examine      8 reboot           fail in 186742 pass in 186753
 test-armhf-armhf-xl-credit1   8 xen-boot         fail in 186742 pass in 186753
 test-armhf-armhf-xl-rtds      8 xen-boot         fail in 186742 pass in 186753
 test-armhf-armhf-libvirt      8 xen-boot         fail in 186749 pass in 186753
 test-armhf-armhf-xl-credit2   8 xen-boot                   fail pass in 186742
 test-armhf-armhf-xl-raw       8 xen-boot                   fail pass in 186749

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl         15 migrate-support-check fail in 186742 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 186742 never pass
 test-armhf-armhf-xl-credit2 15 migrate-support-check fail in 186742 never pass
 test-armhf-armhf-xl-credit2 16 saverestore-support-check fail in 186742 never pass
 test-armhf-armhf-xl-raw     14 migrate-support-check fail in 186742 never pass
 test-armhf-armhf-xl-raw 15 saverestore-support-check fail in 186742 never pass
 test-armhf-armhf-xl-arndale 15 migrate-support-check fail in 186742 never pass
 test-armhf-armhf-xl-arndale 16 saverestore-support-check fail in 186742 never pass
 test-armhf-armhf-xl           8 xen-boot                     fail  like 186727
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186727
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186727
 test-armhf-armhf-xl-arndale   8 xen-boot                     fail  like 186727
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186727
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186727
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                34afb82a3c67f869267a26f593b6f8fc6bf35905
baseline version:
 linux                256abd8e550ce977b728be79a74e1729438b4948

Last test of basis   186727  2024-07-08 04:15:50 Z    2 days
Failing since        186734  2024-07-08 22:12:02 Z    1 days    5 attempts
Testing same since   186742  2024-07-09 16:12:19 Z    1 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexander Gordeev <agordeev@linux.ibm.com>
  Andrei Vagin <avagin@google.com>
  Heiko Carstens <hca@linux.ibm.com>
  Hobin Woo <hobin.woo@samsung.com>
  Ian Rogers <irogers@google.com>
  John Hubbard <jhubbard@nvidia.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Matt Fleming <matt@readmodwrite.com>
  Muhammad Usama Anjum <usama.anjum@collabora.com>
  Namhyung Kim <namhyung@kernel.org>
  Namjae Jeon <linkinjeon@kernel.org>
  Shuah Khan <skhan@linuxfoundation.org>
  Steve French <stfrench@microsoft.com>
  Yoonho Shin <yoonho.shin@samsung.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   256abd8e550c..34afb82a3c67  34afb82a3c67f869267a26f593b6f8fc6bf35905 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Wed Jul 10 23:45:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 10 Jul 2024 23:45:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757093.1165839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRgzb-00075s-Gs; Wed, 10 Jul 2024 23:44:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757093.1165839; Wed, 10 Jul 2024 23:44:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRgzb-00075l-EM; Wed, 10 Jul 2024 23:44:59 +0000
Received: by outflank-mailman (input) for mailman id 757093;
 Wed, 10 Jul 2024 23: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=I4IA=OK=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sRgzZ-00075f-V0
 for xen-devel@lists.xenproject.org; Wed, 10 Jul 2024 23:44:58 +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 682a72d6-3f16-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 01:44:55 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id D8974619F9;
 Wed, 10 Jul 2024 23:44:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A5EDBC4AF07;
 Wed, 10 Jul 2024 23:44: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: 682a72d6-3f16-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720655093;
	bh=RlU5qdZXTV2dF3NT+nL4H3tIUBMv0nZjJ1Ispw7bS6U=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=G6YbKyWzszMGepScRgEHNrHj4Nrv0oyNXTCGShHa77bwVmwpJI7vjRSUFrrPacN12
	 8CZOzXmkvQNk3AJCb99Rwak5fWrbTMtoMdjtTCjg8IVKFOngrpPxlMXQo2LEboZgVv
	 +nFLyCB2zkce60ihkxKy3pOCR//2FO/VFJTrWf+BIdAfu5I3bF/WeZslOJrI1wbhIS
	 5QDk+pqq3oUifuX0LVFxj8tuKBg/jqFa9H/MYwYelktbmVvl233cR5EPPlzYIZkJCV
	 puJDz86RvqGrxlxYzefoYOt+PGWevFjooB5q/hFUjMyu0sJj/hGoHpxw3PYDXUGO1x
	 K6E92DY0MNMRg==
Date: Wed, 10 Jul 2024 16:44:51 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Chen Ni <nichen@iscas.ac.cn>
cc: sstabellini@kernel.org, linux@armlinux.org.uk, 
    xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org, 
    linux-kernel@vger.kernel.org, Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH] xen/arm: Convert comma to semicolon
In-Reply-To: <20240710014208.1719662-1-nichen@iscas.ac.cn>
Message-ID: <alpine.DEB.2.22.394.2407101643290.3635@ubuntu-linux-20-04-desktop>
References: <20240710014208.1719662-1-nichen@iscas.ac.cn>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 10 Jul 2024, Chen Ni wrote:
> Replace a comma between expression statements by a semicolon.
> 
> Signed-off-by: Chen Ni <nichen@iscas.ac.cn>

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

> ---
>  arch/arm/xen/p2m.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/xen/p2m.c b/arch/arm/xen/p2m.c
> index 309648c17f48..9da57a5b81c7 100644
> --- a/arch/arm/xen/p2m.c
> +++ b/arch/arm/xen/p2m.c
> @@ -109,7 +109,7 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
>  		 * immediate unmapping.
>  		 */
>  		map_ops[i].status = GNTST_general_error;
> -		unmap.host_addr = map_ops[i].host_addr,
> +		unmap.host_addr = map_ops[i].host_addr;
>  		unmap.handle = map_ops[i].handle;
>  		map_ops[i].handle = INVALID_GRANT_HANDLE;
>  		if (map_ops[i].flags & GNTMAP_device_map)
> -- 
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 05:26:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 05:26:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757110.1165849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRmK2-0005n5-MG; Thu, 11 Jul 2024 05:26:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757110.1165849; Thu, 11 Jul 2024 05:26:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRmK2-0005my-Ji; Thu, 11 Jul 2024 05:26:26 +0000
Received: by outflank-mailman (input) for mailman id 757110;
 Thu, 11 Jul 2024 05:26:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRmK1-0005mi-2I; Thu, 11 Jul 2024 05:26:25 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRmK0-00007T-Vk; Thu, 11 Jul 2024 05:26:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRmK0-0004jw-DP; Thu, 11 Jul 2024 05:26:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRmK0-0007o4-Cu; Thu, 11 Jul 2024 05:26: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=/vy4Uq+PFucXZm4TD39KAFVlhkglDuAet/3PfQUA4VU=; b=a42duwMHDe2y7xglsPVEt1hP7h
	vEr5JdBLVEkGQ9jkW7SI7fdwF+z2rmnDSWEBFucsaoqk34nqAGlqUNPgCVhpQ0KIWnVejTFsTO30X
	8Tq066GgvSfMhYok0qiGU5IjeLFYHb59dBWLaHAu5jcz48SVESBq1bv2KETIM1bi781A=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186759-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186759: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=071d2cfab8347e396c8b2709bfb588a18c497bbd
X-Osstest-Versions-That:
    ovmf=0f45be16336035e69bb30761f8cd20ba3b0a3f39
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Jul 2024 05:26:24 +0000

flight 186759 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186759/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 071d2cfab8347e396c8b2709bfb588a18c497bbd
baseline version:
 ovmf                 0f45be16336035e69bb30761f8cd20ba3b0a3f39

Last test of basis   186755  2024-07-10 18:14:44 Z    0 days
Testing same since   186759  2024-07-11 03:43:49 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ceping Sun <cepingx.sun@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   0f45be1633..071d2cfab8  071d2cfab8347e396c8b2709bfb588a18c497bbd -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 05:43:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 05:43:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757120.1165860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRma3-0008J3-42; Thu, 11 Jul 2024 05:42:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757120.1165860; Thu, 11 Jul 2024 05: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 1sRma3-0008Iw-06; Thu, 11 Jul 2024 05:42:59 +0000
Received: by outflank-mailman (input) for mailman id 757120;
 Thu, 11 Jul 2024 05:42:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRma1-0008Im-MW; Thu, 11 Jul 2024 05:42:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRma1-0000Og-Cl; Thu, 11 Jul 2024 05:42:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRma1-0005Fi-0u; Thu, 11 Jul 2024 05:42:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRma0-0006a7-WF; Thu, 11 Jul 2024 05:42: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=qMlkp9TgZhrLzeK937toPm7Yoh6tD94B1Ywjx1KcFPQ=; b=PpcQ3boD2EgdOQNEV8LWz2SZqk
	EMJihX4jWDL6tVrn2XClvLIpo4rYZEQuixLJxNT0udGJ0erAncHtstr+oJ/4X09Kz2CmlJFMdcV1f
	Y44z+oQjOPJXm8u/xozIBb18cPimj/DVm3jDwdN4i9oqYtV9o9WSFIoBLcBxNqa8hEFQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186756-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186756: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-armhf-armhf-examine:reboot:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=d6e1712b78251cf4470b0543bb4a8b491949aa32
X-Osstest-Versions-That:
    linux=34afb82a3c67f869267a26f593b6f8fc6bf35905
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Jul 2024 05:42:56 +0000

flight 186756 linux-linus real [real]
flight 186758 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186756/
http://logs.test-lab.xenproject.org/osstest/logs/186758/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-libvirt-vhd  8 xen-boot                 fail REGR. vs. 186753

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186758-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-examine      8 reboot                       fail  like 186742
 test-armhf-armhf-xl-credit1   8 xen-boot                     fail  like 186742
 test-armhf-armhf-xl-credit2   8 xen-boot                     fail  like 186753
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186753
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186753
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186753
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186753
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186753
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186753
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                d6e1712b78251cf4470b0543bb4a8b491949aa32
baseline version:
 linux                34afb82a3c67f869267a26f593b6f8fc6bf35905

Last test of basis   186753  2024-07-10 13:41:57 Z    0 days
Testing same since   186756  2024-07-10 21:41:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Armin Wolf <W_Armin@gmx.de>
  Daniel Lezcano <daniel.lezcano@linaro.org>
  Hans de Goede <hdegoede@redhat.com>
  Julian Sikorski <belegdol@gmail.com>
  Kent Overstreet <kent.overstreet@linux.dev>
  Kuan-Wei Chiu <visitorckw@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Marc Zyngier <maz@kernel.org>
  Mario Limonciello <mario.limonciello@amd.com>
  Nícolas F. R. A. Prado <nfraprado@collabora.com>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Rob Herring (Arm) <robh@kernel.org>
  Viresh Kumar <viresh.kumar@linaro.org>
  Yi Liu <yi.l.liu@intel.com>
  Youling Tang <tangyouling@kylinos.cn>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 607 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 07:59:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 07:59:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757139.1165873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRohX-0005u7-EP; Thu, 11 Jul 2024 07:58:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757139.1165873; Thu, 11 Jul 2024 07:58: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 1sRohX-0005u0-Bg; Thu, 11 Jul 2024 07:58:51 +0000
Received: by outflank-mailman (input) for mailman id 757139;
 Thu, 11 Jul 2024 07:58:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DKXR=OL=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sRohW-0005tu-2p
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 07:58:50 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20613.outbound.protection.outlook.com
 [2a01:111:f403:2009::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65bb8c79-3f5b-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 09:58:47 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by MN0PR12MB6200.namprd12.prod.outlook.com (2603:10b6:208:3c3::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Thu, 11 Jul
 2024 07:58:42 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.7762.016; Thu, 11 Jul 2024
 07:58: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: 65bb8c79-3f5b-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vln3mO+kVoO/7txU4OgssXTmuty9D8DvlGy9HUGAB1gzCjhzMpkx0VK/QL3xWOs/VoURqQmsJtRT5UDRFP6PaoaltBskJg36csPLcE6zGwI0V9UXV+CH9T4pZUABoKajoNjZlsBOv9QzALEUdXcrGkBeEtU+OjMjRgAMSGlb9N7lKAJ23I6Df66VBNvr0v+m6hDHhLb40yjhGtauY5JOW8/XOPEX8FV8jTRtx/k0wzhxElpclnTWfc6BVIAdVdamQ1EyPIPMyEkFOZHwS4rxyh2fwl+bkGy01EpjDVrapbXsufwwo1rBZuRAs3ZD1V2bYpB9RiHF10WnSAiITRjsFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uQogeKqUUYiT3ibHFsO2hsuVHgoYYVf69izTpM7EAQQ=;
 b=TqFCJVumSWKrSoYKonwmtvnBpcRpO3oLTFi7KY5bsZwdSGSHk0Sgw71xPUFGvsJU4DPxDJ0uWGd1QDVGtBtm9PNLMi8Hou1iFrtvyhDDClH6/10RdwUX9bQ8zLZo8tENztHph23z5I8+iz9WeShZEjn6kDnZ55oOMXjHaShX5ZB3E1JBoEFLZzHaPITfVdDk8jLRLvbr7JSIs9tLhTcovbkmalms5ypz06ma1jfJuGIkrRUO6k2pKk0gS8otsK7+EuHgAiwKGPv5/qNZwHPRwYVhYzcs+jtkxsOQ+45MHYrNYTFz3EuGf1Cj4Won9ceYCD+hwQXXA6pIsORa28xQSA==
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=uQogeKqUUYiT3ibHFsO2hsuVHgoYYVf69izTpM7EAQQ=;
 b=i1tQ2qFeLonscp+PJxIWBSel+b5M2i9tciseO0LX1vyC7OkLNvDxImdbE7H+8WpUGdM4q2H9nBDaeNox+O1mA/ofnSyUqUuqjQHp/XxqwGmG7iDyYarZPIukniHk2kK5g97Jv+IonCrxK8AkSJpKIrEVXpghaH37e1T5+yMzPhk=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Wei Liu
	<wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall
	<julien@xen.org>, Anthony PERARD <anthony@xenproject.org>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 3/7] x86/pvh: Add PHYSDEVOP_setup_gsi for PVH dom0
Thread-Topic: [XEN PATCH v12 3/7] x86/pvh: Add PHYSDEVOP_setup_gsi for PVH
 dom0
Thread-Index: AQHa0SvX+81a6HzJk0WXqL6d0XE9YLHxsO4A
Date: Thu, 11 Jul 2024 07:58:42 +0000
Message-ID:
 <BL1PR12MB5849988FE792B36499650F18E7A52@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-4-Jiqian.Chen@amd.com>
In-Reply-To: <20240708114124.407797-4-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.7762.000)
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_|MN0PR12MB6200:EE_
x-ms-office365-filtering-correlation-id: e485982f-b135-4e4a-ba51-08dca17f4832
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MmY5MkI5QTVONDArMXMrMDExTnlZS1IzR0R5RUREVmNjTDJtN3FuS2lacHZT?=
 =?utf-8?B?YkREcEprd3FKQWVNTXRNZ2pid2FTRWh3QlIyd0lVZjI4VDNSSEYvK3Z3MEM2?=
 =?utf-8?B?anVyTS94Z1pOY1dmdmx0SU1wUDhaQ1RYQlVyMXJ3eXVmdE5hdGM0eDVmaWRQ?=
 =?utf-8?B?TE9YUCtGeXl5U1hJdmkvSndLcTZ5M001QmxUVU5BaVBldVgwQXRyRDcxb2Rx?=
 =?utf-8?B?dlpubXdlZE5yYmg3dllUYkVOUDhUVS8xSFpSNW1DQXdFaitoZGZWV3VZT2gz?=
 =?utf-8?B?OXlyVDFEWC9CK2dZelNhR2RTVEk5aXNPWTJ3WHdsQ0lualBydnVsMHRIT2tm?=
 =?utf-8?B?STE5U1ZCMVdQSVMrUEREMXFaRFZsSTUwTWZqSFlQQWhvQW02QlJET29TM1Rw?=
 =?utf-8?B?VWcvc0pXcklERmRySit2eE0vSVVPRkdsR1E0VFVJa01KTnpzMjl3b3BFbVpm?=
 =?utf-8?B?Yk9BYW1tdGFMWldhRkJtUGdUM2M0aXg4c3E0aHZBWnp6YWsrN1dzRzBaZmV2?=
 =?utf-8?B?WnBVM3ZoUHFNNFI4alVsc3RsbktZTDBaWFJxZU5Ka1B2WVlxTVdqQWx5MGxB?=
 =?utf-8?B?RU9LdWdJdDA5RS9GbFFvVGpxK3RkN3Y1Rk9Kb21LTFloS1RFU2crcm5yYmM1?=
 =?utf-8?B?aWZIbWpkQk55RnBpVkl1bHpSWjVXS2Q0S29uNjR3UFl0bnRXOHc5aFd2S0o0?=
 =?utf-8?B?VUhkQjV1aDRHM2dSb05Lb25qMjhBbU9nd1gxT0tPUTZZclpLWWQ0UktrSnU2?=
 =?utf-8?B?eUxzcGdaYnhXSlZVU3BqMk0rb0lldjVxUjRySEhVbFB5RWhiM1FoZXI5Q3E3?=
 =?utf-8?B?YVI1NjBRVjlxekVOMXl6bFZVSmNvNnlsb1MwbkFsL2FSbW1aZlg4aGE2dFRK?=
 =?utf-8?B?SnhjSmZNVG9DUXhMZyt2aXlxbERUN3Q3ZWcxcGk2UzNodEJIekIyNGtBLzlh?=
 =?utf-8?B?VDU2UXNKbFVxK3VXZmk0bE1hb2xBdGZ4a1V0cGoxNzExK3NMemNEQ0QwUHNX?=
 =?utf-8?B?ek9UN1VnNE1qbVI2UEkxZHVPcGNTQStSUCtUN2pmSHl5U0sxMXBXRmVPY2gr?=
 =?utf-8?B?MXBCa1Y3dEhhcVdySit2bElOMVJOMXE1RHNVV0pEdHdxZlpHTjVUc0dxU2pH?=
 =?utf-8?B?bjZMUDRXWTJyQUpzWVQ0NTA0SEZnNnhKR2xXWFdlUlhhSnRGUlVkV251QkRj?=
 =?utf-8?B?YzMvMmRWZ0hqM1N3V2RFYXFHSlJIdlYxbFd1NVpRL3BKNWNaQVlrbmZsbncz?=
 =?utf-8?B?TTF3UDNhMVdYa2xjU25UdkV4c0ZjUU4vS3E1T2JPWmNPWXFVV25DQUVWNEZw?=
 =?utf-8?B?RVo5WXgvQWkvamxGbHZ1ZDYrM29tSUQxbTZ5Y3Y1M0YxeXVrbnJkQm1KUkxz?=
 =?utf-8?B?eEFSV2ZmRDVZM0tWay9IZy9uZDNadlJvVm5VVUhMYjVvd0dodUFjWEpmY0t5?=
 =?utf-8?B?M1NDRnpzWUdTL2o4bmtsTFRjQ1RVWkxsU0d6WU1GcGdWWTBzRWJNMXBuZFpP?=
 =?utf-8?B?L3BvcTBmR2d6VytKc2d6NldrQkg4TVhUc2dyWUN0NFNKdDVnTEFoTGdZL1N2?=
 =?utf-8?B?bm5TdVQ0anVMZjVJTlFrOVpzQ21VVjhaV3RqaUlnZ1B2eTQ4ZzI5SXRFR2Y1?=
 =?utf-8?B?bUNhTTlDeHFsUXMvUUhXYVdGUDFrT1AxYTlveG1XYkw4ZTBKdGFaeWF5M1h0?=
 =?utf-8?B?RTlyY1A4N0tmdFNISERjZE1TN1Jqam9taks4NlNNTW5maWZiV2NPbnJybm5w?=
 =?utf-8?B?MnJyckhLZC8rcW9LNEpmSi80N3RCVnNTZGlxZSttR1VJQTBTYUFEVHdFZnVV?=
 =?utf-8?B?eWoxODcxakVSMlZoZnBEQm82eDQ3enF5N2JGRUpwYmViWVV0WGo3Y2V3ZEwy?=
 =?utf-8?B?QVcySTV0ZEJBV3pnZU5USWhSWjBlTzRhR1hZQWtpOUJOcUE9PQ==?=
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)(7416014)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eXdaUC8yZ0pqT1dJKzliR2N5cVVPV2RtT3gvWVJNVkJmTmtuZW96NW13Z2hv?=
 =?utf-8?B?TEtUVGpibEVFSzBzQzJ6MzR0NHd0MUttblk3VFlmOFdlTXhZdnpPWDNCeEN5?=
 =?utf-8?B?bVBLZzlJOXRkakZhQ1FNcExCYWtXRlJiMkNKYzk4SVg2Wk9NQnRqYUc1SmY2?=
 =?utf-8?B?N0xmYkZrVVMySUdOMURNSHR1MjM3eWVuZEovaVJmQ2pEUTJVQkszSDlCUFdl?=
 =?utf-8?B?OWZLQmVWNzBnMDkrUWhhUnEzL3ViVFJjeTl6K0JiYWZBMVhQeE5XdWt4TGM2?=
 =?utf-8?B?cW5xS3JVMUthc3V3N3FhYUplRUhMZzVGNFA1bG5rNDFDdHVhdlArOTJQa0pS?=
 =?utf-8?B?ekJuUUJCbE4zTjBUTnc3dUR2U0xnQUhYc0JxcktkcEkyYUlpWWVBTjFoWUFl?=
 =?utf-8?B?THFENzZRTzBqb0hCWkxHOXhZS1dsUVhwbW9wbUhkQVIwZC9PYWFqcngyZHlK?=
 =?utf-8?B?SmFjTldubHp1TGJZK1VqYks1UDlraitrK2Y4aXF2MEQyelhQNVR4bElQVFNj?=
 =?utf-8?B?ZkNFSS9OaVBLMkUweHFNTUtpZVBuNnF6ZHJPamJwM1MyemRhSElVODNsTExo?=
 =?utf-8?B?cFoyd1FJQ1NrZDg5YmVIMFlIK0ErZVJ3eExJN2xBSVdCQTlRUDUzRGN5b2hB?=
 =?utf-8?B?UWtSVXZLLzBXbHhmWHZiZXAwZEEyOGpYWWh3dnRmWHhlWldSS3RJazFIRnJw?=
 =?utf-8?B?ZC9FMHl5c1lZQlRzaWNoTWd0RGVLVmV6M00waTRMNjc4VmRuVUFVZS8zMnBh?=
 =?utf-8?B?NnNhRlJDVUp6UWc4TE9aeSs2OHRJaEp2RXNLNVp0V1MrSVQ4NndzbGJXWWd1?=
 =?utf-8?B?VWF6aTA4ckMwalZieUVpZVg0NWlrRnBKTUdTYWFyOGVKNkdLTTk0WCtwK0M1?=
 =?utf-8?B?YzYvcExvVEJKblFHbVA4UVltR0FLNURnTmg5L2tRbU9kdk92RWxMUmJJektJ?=
 =?utf-8?B?YnJJbVhYQjJqTEdqM2Q0RTdyQ0h5eUZCZTJTKzFaWEJneC9nV2xUdHNEdm5B?=
 =?utf-8?B?d0VydEJFNFptd25GY2RNV3Z1MHN6SW1xMVRXRmNRYnpzSnZTV280aWUreisr?=
 =?utf-8?B?YVRLUkZhVFhEMlJLVk1Yb0sxdmlCbkllcjN0cXJ2SkJTZ2RmQWlXTmdOMkdz?=
 =?utf-8?B?Ykh5NkxuL0NxWms1dUVsSUR5UmhwTzk4T1FNaW1FUlIrYmtHMmo1ZnR5bHZL?=
 =?utf-8?B?WFlHRStQL1Nkd1VXS2Z1RHZ4VUc4Z2o1ZmJ0eUZ3YXJHZlF2OHczZ3lma0Fa?=
 =?utf-8?B?YUNiMU5rd01iUkNBdXN5ZEx5cjBXZjQ5UVpUcHpwRGN0a2FhY1ZNU2ErWUx4?=
 =?utf-8?B?VHNVT3B6bkx5NkxoWTFibkxTbVYweDV1VlZaN1JYZTJRVm5OUmpQOXUzNlJF?=
 =?utf-8?B?Q01GT1kzQzFvRlZuNE1tSHJTMXlGRHBuTzZxc28rSXlhL2pPT3Z2WThwdVpp?=
 =?utf-8?B?L08wb3Exa0g4Vmh2L2Y1U0MrTFI0V2o2Znk0eWlYMXB6ZmozblJDRy85VitK?=
 =?utf-8?B?Nk5TVGdpQXVFTXFsRU9tV1V6dVZnQndQQ2FWcjNVYnc3OWh3TmVmdW52d1Z0?=
 =?utf-8?B?K2VJWEVQVlY5NUFzQXlpRm9pbFhGd1FTeVVydisybmV3cStjdnk1V1RGOTJX?=
 =?utf-8?B?MGJHTC90RWRBMTExbXhSd0s5b29mSERUejRwSWp3czFQMVFaRWw3M2ZGYnF4?=
 =?utf-8?B?VW1WZDRMalpOckJveEsvcHI2cElLOEwyV2lPNm9ldmg5bUJjZUUrUmdQMzZa?=
 =?utf-8?B?NGtmN280aTh4aCtFbzJuNWdOakpkYWFjTzl6YmlQS0NPbFVyR2pCN0tDNnIy?=
 =?utf-8?B?NmhVL2R2QjBBVHQyaFpPNXVYOWp1UTlkSkF6cC9USU5LV2t6cTJCU2pmVTBN?=
 =?utf-8?B?ckFHQUJKeUtpSk13TUx6RWNxbllsblhvVm1jTnc4d2dKR0R0S0Y5cVoxOXVW?=
 =?utf-8?B?bURYNThQV0xaMThPSkxweTBrQWhzc204d0ZNaHRuaVVxS0xmZXhTMHFLSENZ?=
 =?utf-8?B?Zk82RkFjZmp1dzRmWlhSMWs2NXhuT2dQR2UyNGY3RmJRbi9TYWRPd1RMNSs1?=
 =?utf-8?B?UkhHZlVIUzBMK3BnR1FyWnk4bDkvUkNIYXcxdWVtcnc3SGNVcmNpOU1pSTZG?=
 =?utf-8?Q?ixUE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <43428057F48B4043A44C94E6E91CF62D@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: e485982f-b135-4e4a-ba51-08dca17f4832
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2024 07:58:42.3537
 (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: keQRQRU7F5hbqIppRiqNUJlxymL54+OzqReXwSUFpG9FTRSfk1DEyVQGEW/CrzMaytefvi8K+0dSojDKwjtnYQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6200

SGkgYWxsLA0KDQpPbiAyMDI0LzcvOCAxOTo0MSwgSmlxaWFuIENoZW4gd3JvdGU6DQo+IFRoZSBn
c2kgb2YgYSBwYXNzdGhyb3VnaCBkZXZpY2UgbXVzdCBiZSBjb25maWd1cmVkIGZvciBpdCB0byBi
ZQ0KPiBhYmxlIHRvIGJlIG1hcHBlZCBpbnRvIGEgaHZtIGRvbVUuDQo+IEJ1dCBXaGVuIGRvbTAg
aXMgUFZILCB0aGUgZ3NpcyBtYXkgbm90IGdldCByZWdpc3RlcmVkKHNlZSBiZWxvdw0KPiBjbGFy
aWZpY2F0aW9uKSwgaXQgY2F1c2VzIHRoZSBpbmZvIG9mIGFwaWMsIHBpbiBhbmQgaXJxIG5vdCBi
ZQ0KPiBhZGRlZCBpbnRvIGlycV8yX3BpbiBsaXN0LCBhbmQgdGhlIGhhbmRsZXIgb2YgaXJxX2Rl
c2MgaXMgbm90IHNldCwNCj4gdGhlbiB3aGVuIHBhc3N0aHJvdWdoIGEgZGV2aWNlLCBzZXR0aW5n
IGlvYXBpYyBhZmZpbml0eSBhbmQgdmVjdG9yDQo+IHdpbGwgZmFpbC4NCj4gDQo+IFRvIGZpeCBh
Ym92ZSBwcm9ibGVtLCBvbiBMaW51eCBrZXJuZWwgc2lkZSwgYSBuZXcgY29kZSB3aWxsDQo+IG5l
ZWQgdG8gY2FsbCBQSFlTREVWT1Bfc2V0dXBfZ3NpIGZvciBwYXNzdGhyb3VnaCBkZXZpY2VzIHRv
DQo+IHJlZ2lzdGVyIGdzaSB3aGVuIGRvbTAgaXMgUFZILg0KPiANCj4gU28sIGFkZCBQSFlTREVW
T1Bfc2V0dXBfZ3NpIGludG8gaHZtX3BoeXNkZXZfb3AgZm9yIGFib3ZlDQo+IHB1cnBvc2UuDQo+
IA0KPiBDbGFyaWZ5IHR3byBxdWVzdGlvbnM6DQo+IEZpcnN0LCB3aHkgdGhlIGdzaSBvZiBkZXZp
Y2VzIGJlbG9uZyB0byBQVkggZG9tMCBjYW4gd29yaz8NCj4gQmVjYXVzZSB3aGVuIHByb2JlIGEg
ZHJpdmVyIHRvIGEgbm9ybWFsIGRldmljZSwgaXQgdXNlcyB0aGUgbm9ybWFsDQo+IHByb2JlIGZ1
bmN0aW9uIG9mIHBjaSBkZXZpY2UsIGluIGl0cyBjYWxsc3RhY2ssIGl0IHJlcXVlc3RzIGlycQ0K
PiBhbmQgdW5tYXNrIGNvcnJlc3BvbmRpbmcgaW9hcGljIG9mIGdzaSwgdGhlbiB0cmFwIGludG8g
eGVuIGFuZA0KPiByZWdpc3RlciBnc2kgZmluYWxseS4NCj4gQ2FsbHN0YWNrIGlzKG9uIGxpbnV4
IGtlcm5lbCBzaWRlKSBwY2lfZGV2aWNlX3Byb2JlLT4NCj4gcmVxdWVzdF90aHJlYWRlZF9pcnEt
PiBpcnFfc3RhcnR1cC0+IF9fdW5tYXNrX2lvYXBpYy0+DQo+IGlvX2FwaWNfd3JpdGUsIHRoZW4g
dHJhcCBpbnRvIHhlbiBodm1lbXVsX2RvX2lvLT4NCj4gaHZtX2lvX2ludGVyY2VwdC0+IGh2bV9w
cm9jZXNzX2lvX2ludGVyY2VwdC0+DQo+IHZpb2FwaWNfd3JpdGVfaW5kaXJlY3QtPiB2aW9hcGlj
X2h3ZG9tX21hcF9nc2ktPiBtcF9yZWdpc3Rlcl9nc2kuDQo+IFNvIHRoYXQgdGhlIGdzaSBjYW4g
YmUgcmVnaXN0ZXJlZC4NCj4gDQo+IFNlY29uZCwgd2h5IHRoZSBnc2kgb2YgcGFzc3Rocm91Z2gg
ZGV2aWNlIGNhbid0IHdvcmsgd2hlbiBkb20wDQo+IGlzIFBWSD8NCj4gQmVjYXVzZSB3aGVuIGFz
c2lnbiBhIGRldmljZSB0byBwYXNzdGhyb3VnaCwgaXQgdXNlcyB0aGUgc3BlY2lmaWMNCj4gcHJv
YmUgZnVuY3Rpb24gb2YgcGNpYmFjaywgaW4gaXRzIGNhbGxzdGFjaywgaXQgZG9lc24ndCBpbnN0
YWxsIGENCj4gZmFrZSBpcnEgaGFuZGxlciBkdWUgdG8gdGhlIElTUiBpcyBub3QgcnVubmluZy4g
U28gdGhhdA0KPiBtcF9yZWdpc3Rlcl9nc2kgb24gWGVuIHNpZGUgaXMgbmV2ZXIgY2FsbGVkLCB0
aGVuIHRoZSBnc2kgaXMgbm90DQo+IHJlZ2lzdGVyZWQuDQo+IENhbGxzdGFjayBpcyhvbiBsaW51
eCBrZXJuZWwgc2lkZSkgcGNpc3R1Yl9wcm9iZS0+cGNpc3R1Yl9zZWl6ZS0+DQo+IHBjaXN0dWJf
aW5pdF9kZXZpY2UtPiB4ZW5fcGNpYmtfcmVzZXRfZGV2aWNlLT4NCj4geGVuX3BjaWJrX2NvbnRy
b2xfaXNyLT5pc3Jfb249PTAuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8Smlx
aWFuLkNoZW5AYW1kLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdA
YW1kLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5j
b20+DQo+IC0tLQ0KPiAgeGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYyB8IDEgKw0KPiAgMSBm
aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
eDg2L2h2bS9oeXBlcmNhbGwuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMNCj4gaW5k
ZXggMDNhZGEzYzg4MGJkLi5jZmU4MmQwZjk2ZWQgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4
Ni9odm0vaHlwZXJjYWxsLmMNCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYw0K
PiBAQCAtODYsNiArODYsNyBAQCBsb25nIGh2bV9waHlzZGV2X29wKGludCBjbWQsIFhFTl9HVUVT
VF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQ0KPiAgICAgICAgICAgICAgcmV0dXJuIC1FTk9TWVM7
DQo+ICAgICAgICAgIGJyZWFrOw0KPiAgDQo+ICsgICAgY2FzZSBQSFlTREVWT1Bfc2V0dXBfZ3Np
Og0KPiAgICAgIGNhc2UgUEhZU0RFVk9QX3BjaV9tbWNmZ19yZXNlcnZlZDoNCj4gICAgICBjYXNl
IFBIWVNERVZPUF9wY2lfZGV2aWNlX2FkZDoNCj4gICAgICBjYXNlIFBIWVNERVZPUF9wY2lfZGV2
aWNlX3JlbW92ZToNCg0KSWYgeW91IHN0aWxsIGhhdmUgY29uY2VybnMgYWJvdXQgdGhpcyBpbXBs
ZW1lbnRhdGlvbiB0aGF0IGFsbG93IFBIWVNERVZPUF9zZXR1cF9nc2kgZm9yIFBWSCBvbiBYZW4g
c2lkZQ0KYW5kIGNhbGwgUEhZU0RFVk9QX3NldHVwX2dzaSB3aGVuIHBjaWJhY2sgcHJvYmUgdGhl
IHBhc3N0aHJvdWdoIGRldmljZS4NCg0KSSBoYXZlIGFub3RoZXIgbWV0aG9kIHRvIHNvbHZlIHRo
aXMgZ3NpIGlzIG5vdCByZWdpc3RlcmVkIHByb2JsZW0uDQpJdCBpcyB0byBhZGp1c3QgdGhlIGNv
ZGVzIG9mIHBjaWJhY2sgb24gbGludXgga2Vybmwgc2lkZS4NClNlZToNCmRpZmYgLS1naXQgYS9k
cml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5jIGIvZHJpdmVycy94ZW4veGVuLXBjaWJh
Y2svcGNpX3N0dWIuYw0KaW5kZXggNTFiMzAwMmIwODViLi5kYjk0NTI5ZTY1ZjkgMTAwNjQ0DQot
LS0gYS9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5jDQorKysgYi9kcml2ZXJzL3hl
bi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5jDQpAQCAtNDQ1LDYgKzQ0NSwxMCBAQCBzdGF0aWMgaW50
IHBjaXN0dWJfaW5pdF9kZXZpY2Uoc3RydWN0IHBjaXN0dWJfZGV2aWNlICpwc2RldikNCiAgICAg
ICAgZXJyID0gcGNpX2VuYWJsZV9kZXZpY2UoZGV2KTsNCiAgICAgICAgaWYgKGVycikNCiAgICAg
ICAgICAgICAgICBnb3RvIGNvbmZpZ19yZWxlYXNlOw0KKyAgICAgICBlbHNlIHsNCisgICAgICAg
ICAgICAgICBkZXZfZGF0YS0+ZW5hYmxlX2ludHggPSAxOw0KKyAgICAgICAgICAgICAgIHhlbl9w
Y2lia19jb250cm9sX2lzcihkZXYsIDApOw0KKyAgICAgICB9DQoNCkR1cmluZyBwY2lzdHViX2lu
aXRfZGV2aWNlLCBvbmNlIHBjaWRldiBpcyBlbmFibGVkKHRocm91Z2ggcGNpX2VuYWJsZV9kZXZp
Y2UpLCBJIGVuYWJsZSB0aGUgaXNyIGZvciBwY2liYWNrLCBzbyB0aGF0IHRoZSBmYWtlIGlycSBo
YW5kbGVyIGNhbiBiZSBpbnN0YWxsZWQgYW5kIHRoZW4gZ3NpIGNhbiBiZSByZWdpc3RlcmVkLg0K
SW4gdGhlIGVuZCBvZiBwY2lzdHViX2luaXRfZGV2aWNlLCBvcmlnaW5hbCBjb2RlIGNhbGxzIHhl
bl9wY2lia19yZXNldF9kZXZpY2UgdG8gZGlzYWJsZSBpc3IgYW5kIHBjaWRldiwgc28gdGhlIGZh
a2UgaXJxIGhhbmRsZXIgd2lsbCBiZSBmcmVlZC4gVGhlbiBsaWtlIG5vdGhpbmcgaGFwcGVuZWQu
DQpEbyB5b3UgdGhpbmsgdGhpcyBtZXRob2QgaXMgZmVhc2libGU/DQpJZiBzbywgd2UgZG9uJ3Qg
bmVlZCB0aGlzIHBhdGNoIGFueW1vcmUuDQoNCkxvb2tpbmcgZm9yd2FyZCB0byBnZXR0aW5nIHlv
dXIgaW5wdXQuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 08:11:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 08:11:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757155.1165883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRotk-0000cb-Nj; Thu, 11 Jul 2024 08:11:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757155.1165883; Thu, 11 Jul 2024 08: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 1sRotk-0000cS-KV; Thu, 11 Jul 2024 08:11:28 +0000
Received: by outflank-mailman (input) for mailman id 757155;
 Thu, 11 Jul 2024 08:11:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRotj-0000cM-I0
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 08:11:27 +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 2abe373e-3f5d-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 10:11:25 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-58ef19aa69dso776118a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 01:11:25 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6e58fasm231991866b.71.2024.07.11.01.11.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 01:11: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: 2abe373e-3f5d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720685485; x=1721290285; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Ski3KaAASaMixjFW/NtulBZ/LZy5KVyx+BCDyESJ1Ks=;
        b=RriGjRgrhr0h4LdNWom0NrxYSFZeO5S6hTFyEE1sYDAQ34zBqUnlAjStrtaCIxnen0
         /AG4tnAbMBq5+g01FxCY+OkTGjKAfT/mUkr7JW/XNVjgPcMABCLaQnylc+FxgwRza9HZ
         0GQAKZ2jS8wbnLkDgYviRBaLXqcFiW2A9ZgNPwMGU2muroTGSpLsADLUGRhEzTkcDUjo
         cixdKeq7FU40VwAKgozsE9XKfUlkMSEcsIMGZlln809Mqbnm/wtR0yEXiyC+fHxRUd5U
         eOuf5kDKITKRhP24Yx7/5Zg8XZ4b41wOt5og1TGHUnpFOxQ4dCDQWfOZd6TvXECdCW3J
         9ucw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720685485; x=1721290285;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Ski3KaAASaMixjFW/NtulBZ/LZy5KVyx+BCDyESJ1Ks=;
        b=d2uUA5XMG6Iq9tdf+JdpRwpRYn8YqKpL2ismP9nHLqpZH5kYnnuNrAePUZPsFCsLsW
         G67UE2pOwiefh5RewMM2KCDEkgYNgGz2KD4/VNdaEXEUEiGQ7NcdnFMxmhntnRKOYhPP
         FP9+GNGkqR7/sDwDPzI9+QQDcGCCXq4JvS8GpOYufQPXvV1fChD25iQ5oCtZnUknCdDA
         283a8BBUKR+6E7Y2TFbdkJ7xh/rx8DRTvI7CQZtzeb0YDP2BUx2AFRblZomnj3+V90HO
         r0ZJ7iUZ6QZyFq7jj6t5Y2lqsJr/gX4IfWmPFoqzrrQmYHbgy/hk+o75SosSzGZYL2fU
         fpwQ==
X-Forwarded-Encrypted: i=1; AJvYcCVnK6ZXefNKVazsCeeNl1EZw1W+kiNwnFKDI061sYgWtg3iBjtZaoYdIe/Td0888Vzd1UlI5MYl+2eMTCuWrAPfvmfhb3KbA3WJBlu2sxY=
X-Gm-Message-State: AOJu0YxZ18zN4miN6aIkODXCgdWYP3RiTOLquj7r8BeMHCI5HfulFkOp
	YczfND9sHVuX0IbqEvRsc68PV5ztvCEhh6zUeS65eXwKzhDIQrmd
X-Google-Smtp-Source: AGHT+IF5IRSklCAJD8fLYA7HCrbi+oW0loAUWpSzNZZSpI8X1S5o7AF77L+rrrDuU3+ElyGFsUgPrw==
X-Received: by 2002:a17:906:d105:b0:a72:7245:ec0a with SMTP id a640c23a62f3a-a780b881ccfmr471630366b.58.1720685484484;
        Thu, 11 Jul 2024 01:11:24 -0700 (PDT)
Message-ID: <c26ee4258d9bc83ad69db3d4b4c10d1dc920c071.camel@gmail.com>
Subject: Re: [PATCH for-4.20 v2] automation: Use a different ImageBuilder
 repository URL
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Michal Orzel
	 <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	 <sstabellini@kernel.org>
Date: Thu, 11 Jul 2024 10:11:23 +0200
In-Reply-To: <98fecf96-ab8e-4514-a3e9-a1f0b15519c1@citrix.com>
References: <20240710093751.25154-1-michal.orzel@amd.com>
	 <98fecf96-ab8e-4514-a3e9-a1f0b15519c1@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-10 at 10:44 +0100, Andrew Cooper wrote:
> On 10/07/2024 10:37 am, Michal Orzel wrote:
> > Switch to using
> > https://gitlab.com/xen-project/imagebuilder.git=C2=A0which
> > should be considered official ImageBuilder repo.
> >=20
> > Take the opportunity to truncate the git history when cloning using
> > --depth 1.
> >=20
> > Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>=20
> Given the current overhaul I'm (still) doing for CI in 4.19, I'd
> suggest
> taking this.

-git clone https://gitlab.com/ViryaOS/imagebuilder
+git clone https://gitlab.com/xen-project/imagebuilder.git

But is it the same imagebuilders and only location is changed?

~ Oleksii

>=20
> It will mean an 8-month improvement in switching over fully.
>=20
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 08:14:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 08:14:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757159.1165893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRowS-0001CJ-4f; Thu, 11 Jul 2024 08:14:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757159.1165893; Thu, 11 Jul 2024 08:14:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRowS-0001CC-1N; Thu, 11 Jul 2024 08:14:16 +0000
Received: by outflank-mailman (input) for mailman id 757159;
 Thu, 11 Jul 2024 08: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=0dPy=OL=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sRowR-0001C6-Bx
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 08:14:15 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20600.outbound.protection.outlook.com
 [2a01:111:f403:2416::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e03abb4-3f5d-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 10:14:13 +0200 (CEST)
Received: from MW4P222CA0014.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::19)
 by SA0PR12MB4382.namprd12.prod.outlook.com (2603:10b6:806:9a::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.20; Thu, 11 Jul
 2024 08:14:07 +0000
Received: from CO1PEPF000044F7.namprd21.prod.outlook.com
 (2603:10b6:303:114:cafe::a) by MW4P222CA0014.outlook.office365.com
 (2603:10b6:303:114::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.22 via Frontend
 Transport; Thu, 11 Jul 2024 08:14:07 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000044F7.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.7784.5 via Frontend Transport; Thu, 11 Jul 2024 08:14:06 +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, 11 Jul
 2024 03:14:05 -0500
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 11 Jul 2024 03:14: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: 8e03abb4-3f5d-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=puGH4G53AV7NZulC0T/0jd7Qn0PjRt9hwva+Ne8H/ue2pD3fX1KLdt/YJgpv6xTCCzaVta3NW1npcqcnhkGnlGGKP7gQDb0k2gFpfcwOzhYvnp37s08xnyZzrUwWBZ3S/SLL48bZJVGuNxkGlJPdVIqLouDDAfe3t1Uz45b6WJRmrghlAzoXrVIfLhtEZdhNn2n0OShitR7+o89yYvVIPQqC44Uj3MAYBSYXVZpE4JcpwgHQaiajuzrWuL23eEeDt1xrHh4J183/Izm50H2NpkBmv00Gn587SI5JetNHzjsNgTHnE/EHzoieMU/C4yzDyKTnfTsDF0vfla2sMT6zaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BiR1/TMEhAdDMhnuyhjRtLk8+P8/ns8GtS+E63zDiSc=;
 b=W7QtfD4prtZYAn5M30TivWCb1d8GJl8vjGvbeZlVtv4QLORdCDjZNNQMf1AZ4rUzgvuGdPgL69HCkMKvZJN8+E2T3AJwsw886CaW4H1hLkJUjOoBZoHkVr8uZK5gg8meykZtmjYQZgq0zjy3wTDaex1nXwslMnrynSFnTCe3zWmShXRTF8cpyN+x12kVUNhp0yKybQ715Xxdv1Ou25vUmB0tqKxkCTrysC5oy1PddGa0uLqNyWN6fFiQMt+kFVtYjyHyB1zbnea2+aH3vRqnEo6Pw0EI6Qx0CgdwmYLoRp+gJynQGCwoB9sljWrgDuTsvWoEKa7MdePbDMn4odiEJw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BiR1/TMEhAdDMhnuyhjRtLk8+P8/ns8GtS+E63zDiSc=;
 b=Bw6YFFBRx7U7VxOjIYZjujXqgFgZW54PFs0zpI62hEPh0/mvJa6eFjeqsyqXQOKH/e0HwPt/vmBJL9KpSefmZplzvr9FvJxMJkhWKcYoDtfHEcdVGDNqyO8Xu5EiPuhP+eEiRNjp9qyLadY5Sl679LUtbwhk3gwdpURpyF+M5EQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <be1517ee-bd5c-42b0-8328-aa277680b935@amd.com>
Date: Thu, 11 Jul 2024 10:14:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20 v2] automation: Use a different ImageBuilder
 repository URL
To: Oleksii <oleksii.kurochko@gmail.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, <xen-devel@lists.xenproject.org>
CC: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	<sstabellini@kernel.org>
References: <20240710093751.25154-1-michal.orzel@amd.com>
 <98fecf96-ab8e-4514-a3e9-a1f0b15519c1@citrix.com>
 <c26ee4258d9bc83ad69db3d4b4c10d1dc920c071.camel@gmail.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <c26ee4258d9bc83ad69db3d4b4c10d1dc920c071.camel@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044F7:EE_|SA0PR12MB4382:EE_
X-MS-Office365-Filtering-Correlation-Id: a6718781-ea66-4293-43f8-08dca1816f55
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?MXNpazd0OU5kaEpWeVgvOURDdm0xcWpLS3JvZnA5bEkrdUZCOEE1RThuRzF6?=
 =?utf-8?B?TUVvTEk3bkVaN3F0U21xZmY0NHFkZmYxTUFOZG44OEtqY0VYSlpnbzlpeitF?=
 =?utf-8?B?bnRVQlF1Wjg3YldIaU1hbTJxaDN0eXlwS0Q4WUd5R3NjaDk0NDBDelFFTDlL?=
 =?utf-8?B?eklRdTludHBBWm9BVWNxaVpRcUdUcm5nL0xYTi90NU9UN2w3M3NPUDVHVCtF?=
 =?utf-8?B?UnFQRVY3cXZCRGkzVUZQVDVZTTU2WVJaYXE5eWlxSW00a1p3WmloM3NqVjR0?=
 =?utf-8?B?UWxkUXo1QWc2Y1drbjI4VWMyYkE2Z2JMeDFmRXAvR0FrUU9GMG43UWE0RjQ5?=
 =?utf-8?B?L0FJVUNWanFUL1pqSUliQmFEQnJCalBCYzRUTXI1VERPZDRRTmxnL1lMUlN3?=
 =?utf-8?B?MGd6WWVacnpmUElySGhPMkNkc21DYjVQWUE0TEdHZlBTVzFnKzB2NEdLcU9G?=
 =?utf-8?B?SFNrYUk0c1dxVmxzU1JOdU40WHc2b0s1RHFsU1N1Q09PakVYMU9MMU1SNmhD?=
 =?utf-8?B?djRzK3Y0Sk1kSDBYVUhPeWVjSm9ucngzcXQwYnFwTWJDemhucis4VElGdXcz?=
 =?utf-8?B?bmRrQk0xeXRZOWpyak5qWjIwZDAwaEkrd1VtQkpnLzFsVC9oeUZzY1ZjRkFt?=
 =?utf-8?B?MTV2eTU0RmwxVkpSMGwvZmx4dVoyQTFqTllTSTk5TjBKZFZxeklQNGd0Szha?=
 =?utf-8?B?UHIxVkFwcmdUNVpmWTF4b3pnMEEycDNhRXBPeUNYTHBBbUJjcWdxUVFwamJp?=
 =?utf-8?B?Z05nWEtsTnZVdGhaeC90ZVkxeUErMHBLcW1PZyt6aDFiOWlET1piVkl4S21O?=
 =?utf-8?B?YXBYdUMvbng5QUYraFcwcWdPSFhsS0M5a2pJblZpZVY3MllOU2NjbWdZTld2?=
 =?utf-8?B?azk0MW11cStEVDlIRHN1NVQ1STJXRjZ0dnUxZHkxVzcydGgrQkxIU3ZCRXYw?=
 =?utf-8?B?VkF6bWE2YWdiSVJKQk5LVVdXNC9ubmw0VGF1aWUyamFIMktPN0dRa1FXVVFW?=
 =?utf-8?B?SkVoclZLSElzVE1CWkNReUxXSzdPNWovVzlsVERTcDNsdkFlRFJzdWNEZ1dz?=
 =?utf-8?B?aElDQzRCTTIwKzBwYUh0cVNwelQ2UEtJblhxVnl3OFhubXA3TWVlekVFaU00?=
 =?utf-8?B?K2FyZU9xcU92Lzl3ejdueE1KYjVpMURjbXBSdFZBNlZ6Ykk5UGFNa1hWSEdj?=
 =?utf-8?B?NzY4ZG9hTUt0NFJNak1WT3VFWTB3NFM4UHV4Z2Q0S2Q2WUhJUDlXNjJaMHoy?=
 =?utf-8?B?ZHQ3d0Y2eFRzSzNlVW05MGVWaC9Xa29SZVdtS0pBa3ZtdXdYcGdjbVYwcXpJ?=
 =?utf-8?B?N1FWR1JZcUMzV3ZRbDNVTDEyTmFWKzF1dUR0aUVSdFhGODFlaVE2MFFJT2FS?=
 =?utf-8?B?YkgyYnVPOE9VRytDaXQzUjN5dGRJM3ZFVXZPd1RGR3lrRHJ2c2NYMEdjOTc2?=
 =?utf-8?B?YjNJMTRxMTdjelpJTnhsUFhqUG00L2U4NXlLZmkzYWtQbDh5RkZ1V2VZK1dL?=
 =?utf-8?B?UVJaRzFuWGp0OTJ0RlJhVi9CT3lUK2JHOE1lblBXa1puWkdvQ1FJY2NDa2dK?=
 =?utf-8?B?OWZGcGttdWZZdjJDUDZHV2QvZDRQSmN4cWRaYjhRY1dxQ0pmcTBHUHFQR3ds?=
 =?utf-8?B?bndCSDkrVC9MY3JtQnhuK0lzZTBvNmcrWVh1aGRvVXlwNDc3WWdRRzlTdHpQ?=
 =?utf-8?B?anpiWEpTcXU1ZnVXRlgxMTNrelNNVU5DTExYTXF2OFdLZFB5aFRHMVZJdkpY?=
 =?utf-8?B?L0NIYlpvSzRLcVZ2YytlTXBLQW1BTi9kdXhYRjhGdkJuUVZ1MGdzT3ZDbzk1?=
 =?utf-8?Q?Slva41J3MI5yga6H4PjDs9tbqmBADXQaMX+HM=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)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2024 08:14:06.8917
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a6718781-ea66-4293-43f8-08dca1816f55
X-MS-Exchange-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:
	CO1PEPF000044F7.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4382

Hi Oleksii,

On 11/07/2024 10:11, Oleksii wrote:
> 
> 
> On Wed, 2024-07-10 at 10:44 +0100, Andrew Cooper wrote:
>> On 10/07/2024 10:37 am, Michal Orzel wrote:
>>> Switch to using
>>> https://gitlab.com/xen-project/imagebuilder.git which
>>> should be considered official ImageBuilder repo.
>>>
>>> Take the opportunity to truncate the git history when cloning using
>>> --depth 1.
>>>
>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>>
>> Given the current overhaul I'm (still) doing for CI in 4.19, I'd
>> suggest
>> taking this.
> 
> -git clone https://gitlab.com/ViryaOS/imagebuilder
> +git clone https://gitlab.com/xen-project/imagebuilder.git
> 
> But is it the same imagebuilders and only location is changed?
That's the same project but the repo under xen-project is more up-to-date and we decided
that it should be considered the official repo location.

You can check that it contains more commits.

~Michal


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 08:17:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 08:17:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757164.1165902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRozT-0001y6-Ha; Thu, 11 Jul 2024 08:17:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757164.1165902; Thu, 11 Jul 2024 08:17: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 1sRozT-0001xz-Eh; Thu, 11 Jul 2024 08:17:23 +0000
Received: by outflank-mailman (input) for mailman id 757164;
 Thu, 11 Jul 2024 08: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRozS-0001xt-Fv
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 08:17:22 +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 feba5596-3f5d-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 10:17:21 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a77e2f51496so89597966b.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 01:17:21 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7fefb5sm232261166b.104.2024.07.11.01.17.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 01:17: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: feba5596-3f5d-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720685840; x=1721290640; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=I4o2X9nihmQj0rKbNHMZ5EqT/93TfZ6EaSjNzAjA6wM=;
        b=benmAmWzsOeyMX7TI8B1P8FOO0UGJgRzFAEIJzao3N2ytB5sspmHsAgL3wO49Px93V
         emWeieNQb5mvqObNHgM8nBr1WhAyFyW4wgh8oWxySMHTGiAEMDxeVU8UHHF7ztDRd9Iv
         nfc/hz2Y2ZlaqLX2A5ZLfSkfgl6GNoK62uH7TWCUYZbv7KNRDosO2Aen948dp06oFuMW
         D0gjF3EwvVCF0OsYUoBiM7TrHBE0y4vR5whki0S3ibFwBGlr3gvTD1KIVRWE6WUPUc/G
         wYz+nXJe8Q9/QoSSQS+Ld2ByBlESaxcEDl3rnSJ/bGZsYxsyOWoK49NpmskUxV2h2rAv
         waXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720685840; x=1721290640;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=I4o2X9nihmQj0rKbNHMZ5EqT/93TfZ6EaSjNzAjA6wM=;
        b=hUaImLOMJFhN0P7Es1qxgK7VMJW2McK5vL7E7fd+1nQCgEBLc5PGuQzRo/0Vl0c1ic
         iFAcTKWsyveWsdD2W4TN4N6ts4UJDLFAxdTivKxklK3brbpOhWpH35WEKRtWpjEYU/ET
         20Pcw8c6r5L1STecT8JvmJqlTQTkmxTB1uLJA8FVKx3Ob8LyNQnV3FY2mgVHpVFi53M4
         vqtso97s18sLEgHNPe3hapOFvKDr7+TvKh26DTl+hszcMq0nAMersagjfdtD3pagzi8o
         gZGj1Jkl5B7gSIRVpRbAGoG+iy6TULHkWYDjZzRbr2fLvclJgD3V+N/f0sN67/QFnSUA
         q5nQ==
X-Forwarded-Encrypted: i=1; AJvYcCXktru9cMF/Mw3dasx0CxJwPBiNI3Jqagz5ChKMY4AeL9KMONyIS/nN+vk15fM0mLV//2zOf5o18HPJGjakx4JzusFsFW/WrPmBmAuuIt4=
X-Gm-Message-State: AOJu0YxBPv7Keh2J0624upBq7aHGzNz1rmQWXmZUv0q4BHDQ5hg9qGzD
	lgeGkDtPN6u1SoNVUMQy5ib7ld+SYwnk4x02NGa2QqQwmPEvP7z3
X-Google-Smtp-Source: AGHT+IFojdlE4Mkl+o4cYS56axZJdhUnhy9tCmAhm30EM9kz0Cz+Yf3qgSzJDeFuwjs62dqsEHglHA==
X-Received: by 2002:a17:907:944d:b0:a6f:1c81:e220 with SMTP id a640c23a62f3a-a780b68aab4mr705682766b.13.1720685840390;
        Thu, 11 Jul 2024 01:17:20 -0700 (PDT)
Message-ID: <647f662a901dfaee2daae6a31e08035bfe0bd6e8.camel@gmail.com>
Subject: Re: [PATCH v9 1/5] xen/riscv: use printk() instead of early_printk()
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 10:17:19 +0200
In-Reply-To: <4555a777-970c-4538-be34-99393426b83e@suse.com>
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
	 <22c78705e4559a049e72950dc311513f1c15e489.1719918148.git.oleksii.kurochko@gmail.com>
	 <4555a777-970c-4538-be34-99393426b83e@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-10 at 11:46 +0200, Jan Beulich wrote:
> On 02.07.2024 13:23, Oleksii Kurochko wrote:
> > As common code is available it is better to use printk() instead
> > of early_printk().
>=20
> IOW the function is not just available (allowing linking to succeed),
> but is also fully functional (i.e. the line is making it out, and
> hence
> CI, which iirc is looking for that string, is going to be "happy")?
> If
> so:
> Acked-by: Jan Beulich <jbeulich@suse.com>

I ran our gitlab CI and it works well on my side:
https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/1355999714

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 08:19:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 08:19:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757167.1165912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRp1I-0002VB-SD; Thu, 11 Jul 2024 08:19:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757167.1165912; Thu, 11 Jul 2024 08:19:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRp1I-0002V4-Pj; Thu, 11 Jul 2024 08:19:16 +0000
Received: by outflank-mailman (input) for mailman id 757167;
 Thu, 11 Jul 2024 08:19:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRp1H-0002Uy-9s
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 08:19:15 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 41c4dc7a-3f5e-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 10:19:13 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-52ea79e689eso858988e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 01:19:13 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a8561fesm232224266b.186.2024.07.11.01.19.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 01:19: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: 41c4dc7a-3f5e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720685953; x=1721290753; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=t5nrfUZ06fTffePFvVjT+/O5T1y3RPLk8Rfrdf810OI=;
        b=lhVJ72VnhmaqBFCwdEmu8YjSz0Ho3I+hiCJIwwxY70ItOGVIzFIRqboLA5uhfPr7Xa
         JBG04NuhYg6ko1D6FzA4M1fu9Q535a0NW8xwOZb0+F2U7Cjg8q/ty5exCHEj7rbL5kiZ
         StpxXfPHA9LNt9x2nFlLmwJ42D7vTOrM0ArV9jFRXBx06MAAbCFtaWU3KG5RqUKyI4yi
         B6DvWh3US+f4alQy8yt6IT7nYCae+B6Wm+wuPit8kG+sgpgCNh0Om2USrS1yHHP/CIJg
         i16tXltlt7bdTIccwo7qzZ7Ud7b8BcZe3KmC04wf+m8kbKyResLTrIMTwJJ0WCaMywQt
         QeWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720685953; x=1721290753;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=t5nrfUZ06fTffePFvVjT+/O5T1y3RPLk8Rfrdf810OI=;
        b=H6ZR90HMWX6dCH/Q4nlL2+f+rrcZeWa5J25QRodJEZbfC2slMcAdPrVPVgkfhFTvSC
         ToqfLgA/9T87Ct+1GA4D+JxhvYR84j/7nlzTrickAauN2DacEBE+Ji6EOSr1A8/PGXTi
         fb6WacaFSr8p1ZWvAQhDZgoXNa2aT4cu0xUn5Me3v2dUDiT6p3GrU3K8npZHgSP21Em7
         uCS8f0MsSo/8omSnKyuXbZBmJwKyJT5Ej4KX8bALXo7TrpGQoTVtv+Y4763CrXhPhfrx
         LC6i9/Ud3Q9V4oT9X3z9vVzi1UUuM3ejuZU4rXEgoKXrwq5G+KJ9LClKD/qnhKJZ50Hj
         vFDw==
X-Forwarded-Encrypted: i=1; AJvYcCW9kMRqH2QyOVQVfkq68OCmooK+CNfHPuiuox/VwiN6DHQXExWc7Zivt86lfknxYsFHzhPNCaKyd6nAgXIr/9UPzg3CQA9Wq2IkSLbM6YA=
X-Gm-Message-State: AOJu0Yxz5oW9ZxYOx/NZ5rlXU8k693DHqEh87u7uffwcWFCP7dA6lH4c
	4T0c/FDwOLFgh/NF9+/a9+u3Y7tXL/FOdiDlglk8pIgZi06U4V+v
X-Google-Smtp-Source: AGHT+IGW67v8jMofC/AqabwFRJG2LsaImRhznxHEB8xr4KXCgdIjS68bZe3kP5zlPI5I0yanR1PXbA==
X-Received: by 2002:a05:6512:1247:b0:52e:716a:1898 with SMTP id 2adb3069b0e04-52eb99d5ff5mr6522307e87.58.1720685952834;
        Thu, 11 Jul 2024 01:19:12 -0700 (PDT)
Message-ID: <bce854bb63b07cc9f16509c163c7b90d56dcb2dc.camel@gmail.com>
Subject: Re: [PATCH v9 3/5] xen/riscv: introduce trap_init()
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 10:19:11 +0200
In-Reply-To: <35049d21-b08c-4382-8a71-4430c7f209cf@suse.com>
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
	 <83b9053330e4dae38e926c99f47d0ef11d9dd31d.1719918148.git.oleksii.kurochko@gmail.com>
	 <35049d21-b08c-4382-8a71-4430c7f209cf@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-10 at 11:50 +0200, Jan Beulich wrote:
> On 02.07.2024 13:23, Oleksii Kurochko wrote:
> > --- a/xen/arch/riscv/traps.c
> > +++ b/xen/arch/riscv/traps.c
> > @@ -12,6 +12,18 @@
> > =C2=A0#include <asm/riscv_encoding.h>
> > =C2=A0#include <asm/traps.h>
> > =C2=A0
> > +/*
> > + * Initialize the trap handling.
> > + *
> > + * The function is called after MMU is enabled.
> > + */
> > +void trap_init(void)
>=20
> It may be deliberate that this isn't __init, but for the present
> needs it
> certainly could be. This is the kind of thing that imo want saying in
> the
> description (which sadly once again is entirely empty).
I just missed to add __init so I have to added it in the next patch
version.

Thanks for finding that.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 08:28:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 08:28:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757173.1165923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRpAQ-0004O2-PA; Thu, 11 Jul 2024 08:28:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757173.1165923; Thu, 11 Jul 2024 08: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 1sRpAQ-0004Nv-L3; Thu, 11 Jul 2024 08:28:42 +0000
Received: by outflank-mailman (input) for mailman id 757173;
 Thu, 11 Jul 2024 08: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRpAP-0004Np-He
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 08:28: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 936b85cf-3f5f-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 10:28:40 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4265b7514fcso9927455e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 01:28:40 -0700 (PDT)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4266f6f1138sm107761295e9.19.2024.07.11.01.28.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 01:28: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: 936b85cf-3f5f-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720686519; x=1721291319; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+rgLAqRwrN61JZstEw4Z3cUJ01gNpmGzjbofpECTgso=;
        b=Mz98nsvHCsS66/+X8myh3/11a/8BANElXoaZ360xhg+kwH5/dRHD6DMxMjfTxf74f3
         IvAFUlred9kgkbxB9txal2IV8IxBLezM/+HqfTalNOmqHWrWdVDC8Q0dBNj/WRot2imY
         /Lt8yKTVzYAB+5l0KowQ15GZCzPNPp3wuH84Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720686519; x=1721291319;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+rgLAqRwrN61JZstEw4Z3cUJ01gNpmGzjbofpECTgso=;
        b=nFouVjGR0qCefMO2lo4YaYwRQaS0ZLxq5DcqQRXe5sVHKbDA+fYOU7DVvdLglt2yBn
         uhDel+lHAN/+tbctypU7Pel1Sp+i7dS5az8BBIHr8MNI6la/488irqkpjiyezA4ml9zg
         STOx2zfa6ALTapzS5WnNJ2tQtWb960zQ7hLQQHzp21r9C8kFhD9H6P7bj1pwtcgkw+Ng
         zrGd69ImqaH9PPvZP8NV6na8n5HF0YkKZkLD1tdhVE3KOYFxiKB9C/aM4r1NstkQztZ1
         JtKlFkwKuToU9dSjUmM9Ih9ddjaHRl7aDjhQ+iJKGDr3gayDK8fJMw3ypUB9pkX3r08h
         5ZSA==
X-Forwarded-Encrypted: i=1; AJvYcCXqp0Q3lfcBN0CVeZ0g505v4ZFnljuQAUn+1DXIKZcBKkenA11sWywotVNREVgjWi04fQJq7uKPdP9imMMwaR1Qwxcq3rs9VVsApIeMIGI=
X-Gm-Message-State: AOJu0Yz1WMtRt7l1rOwpt6CU354y1cJQy2T9ms61PVGWatUIIE0LxbNd
	Tg36n52hTqlkALCfG307X8Mki3x+Ybu+p+uThBFa+47u3LGb9Y4rn7n6vRbu0wA=
X-Google-Smtp-Source: AGHT+IEXu5BSR8RG0xFpkc/z79TSxLnkC6HHIFgA5+yDSjQHJoUYzXR2fj3eOTGBDDV6R+h+CuZISg==
X-Received: by 2002:a7b:cc8a:0:b0:426:618a:a092 with SMTP id 5b1f17b1804b1-427981e0b8amr15036945e9.13.1720686519526;
        Thu, 11 Jul 2024 01:28:39 -0700 (PDT)
Message-ID: <72549968-b2b1-46b8-a807-f92977d1231f@citrix.com>
Date: Thu, 11 Jul 2024 09:28:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 3/5] xen/riscv: introduce trap_init()
To: Oleksii <oleksii.kurochko@gmail.com>, Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
 <83b9053330e4dae38e926c99f47d0ef11d9dd31d.1719918148.git.oleksii.kurochko@gmail.com>
 <35049d21-b08c-4382-8a71-4430c7f209cf@suse.com>
 <bce854bb63b07cc9f16509c163c7b90d56dcb2dc.camel@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <bce854bb63b07cc9f16509c163c7b90d56dcb2dc.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/07/2024 9:19 am, Oleksii wrote:
> On Wed, 2024-07-10 at 11:50 +0200, Jan Beulich wrote:
>> On 02.07.2024 13:23, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/traps.c
>>> +++ b/xen/arch/riscv/traps.c
>>> @@ -12,6 +12,18 @@
>>>  #include <asm/riscv_encoding.h>
>>>  #include <asm/traps.h>
>>>  
>>> +/*
>>> + * Initialize the trap handling.
>>> + *
>>> + * The function is called after MMU is enabled.
>>> + */
>>> +void trap_init(void)
>> It may be deliberate that this isn't __init, but for the present
>> needs it
>> certainly could be. This is the kind of thing that imo want saying in
>> the
>> description (which sadly once again is entirely empty).
> I just missed to add __init so I have to added it in the next patch
> version.
>
> Thanks for finding that.

Don't be so hasty.  It will definitely need to not be __init as soon as
you add multi-CPU support to Xen.

Just say so in the commit message, and save yourself needing to undo the
__init in a later patch.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 08:50:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 08:50:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757180.1165933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRpVI-0000ET-FV; Thu, 11 Jul 2024 08:50:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757180.1165933; Thu, 11 Jul 2024 08: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 1sRpVI-0000EM-Bx; Thu, 11 Jul 2024 08:50:16 +0000
Received: by outflank-mailman (input) for mailman id 757180;
 Thu, 11 Jul 2024 08:50: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRpVG-0000EG-8y
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 08:50:14 +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 959b9a4c-3f62-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 10:50:12 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58b966b41fbso721830a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 01:50:12 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bda310a4sm3189990a12.90.2024.07.11.01.50.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 01:50: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: 959b9a4c-3f62-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720687812; x=1721292612; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=NC/EJlTb4djABXHevBCwBYU8+nGumnqibnOq6D99iso=;
        b=MaEgGsR86fXFWxfEAGncno85PMo6CHc+g4/7iPCCtm6cub7G8tT54rchfyAymPwp4M
         EMOPkGK3+DMvVCcZH1nddZUH4y7mLEkpNaFG+8ToNpQwc0Vvqe2LNgV5mA7ffwhVfz63
         +hl7xx3TBtGDwyANvlqd+81iiq8e5brJifVHbui7TJa+8Bnih/A4Oqnfs2xRZs2GC9ro
         DhfipYcpdGguwLX7B/oFe3G8KLY1aB08XG+jbkduNjJad2fPMuwc54LCPa21bU89Ffv+
         fkcWDsC3Au77degyNDYT6OagzHrgmr8Ggcw/m3tpHyC1He3UMpgmy4hQ53BFSCcBj37e
         Lgiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720687812; x=1721292612;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=NC/EJlTb4djABXHevBCwBYU8+nGumnqibnOq6D99iso=;
        b=AlDjy4iDgY5eBH0kslIVFfSczFt/uG2BH0ajPrc+Viq/IZ7m9ZHVNhj387g91Fuhji
         Kyx/Y/o/VP1k3T+CYLuQIp5HLCV5rNcqKyvgTPEWjxyLksihlN5X9KqKe2aCjU+vTGJm
         RzGK/JfY6UwfKNHjaenG2KZoQeAZtp17DakkVqPRYcIUEOR0J3Fk3pFRl0C62CXlO/47
         1XOq2EB6BNjCrX+W3LLJRfnfRwCrAIEblcs7ZSbX0dRkwNofgBb5oE1WI7ZSeC5n2XZP
         fXBowvEJjXzJGRUMHt3hlqQuYj9k8AsJHFomiQc4fZ5DVYPkdp+/uoUksc5dI07kmkhx
         dUag==
X-Forwarded-Encrypted: i=1; AJvYcCWIj6y5+h8FeoCWaBE0Bko3KbrGqKa/WGPHKmzxAUwiG4cjbQXiIHJhDW7osKDcOK5Qzjg+6Is+jdZsg0yzfSlLNz/xi9ZCl5ETBR3WLhg=
X-Gm-Message-State: AOJu0Yx0MrjMOwquyKJCINf1uODezQsZooF77PgFl1y8kSyRMKQn+0o3
	9pbAc7bER/4ryQrDZKv6AxsB+fuMj2gXt5nc2bo53OFOvw04Sm93
X-Google-Smtp-Source: AGHT+IGU7B0BRkEbWFRJdY/FZezhR+PeONszoujjl3Y3IoSCX9284GiSpPj8djjUG5FsVjjxGpuh9w==
X-Received: by 2002:a05:6402:3196:b0:58b:9561:650b with SMTP id 4fb4d7f45d1cf-594bb580796mr4462809a12.25.1720687811571;
        Thu, 11 Jul 2024 01:50:11 -0700 (PDT)
Message-ID: <a1224198ef6845f8f81baaaebe1d436726460c0e.camel@gmail.com>
Subject: Re: [PATCH v9 4/5] xen/riscv: enable GENERIC_BUG_FRAME
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 10:50:10 +0200
In-Reply-To: <ca373d42-22f1-41a2-bdbb-4733145c635a@suse.com>
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
	 <c51c485bac43b7589961aabec8af1b82d4673b94.1719918148.git.oleksii.kurochko@gmail.com>
	 <ca373d42-22f1-41a2-bdbb-4733145c635a@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-10 at 12:01 +0200, Jan Beulich wrote:
> On 02.07.2024 13:23, Oleksii Kurochko wrote:
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > =C2=A0xen/arch/riscv/Kconfig |=C2=A0 1 +
> > =C2=A0xen/arch/riscv/traps.c | 31 +++++++++++++++++++++++++++++++
> > =C2=A0xen/common/bug.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 1 +
> > =C2=A03 files changed, 33 insertions(+)
> >=20
> > diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
> > index b4b354a778..74ad019fe7 100644
> > --- a/xen/arch/riscv/Kconfig
> > +++ b/xen/arch/riscv/Kconfig
> > @@ -5,6 +5,7 @@ config RISCV
> > =C2=A0config RISCV_64
> > =C2=A0	def_bool y
> > =C2=A0	select 64BIT
> > +	select GENERIC_BUG_FRAME
>=20
> Any particular reason to put this here, and not higher up with RISCV?
Yes, you are right it would be better to put it inside "config RISCV".

>=20
> > @@ -101,8 +102,38 @@ static void do_unexpected_trap(const struct
> > cpu_user_regs *regs)
> > =C2=A0=C2=A0=C2=A0=C2=A0 die();
> > =C2=A0}
> > =C2=A0
> > +static bool is_valid_bug_insn(uint32_t insn)
> > +{
> > +=C2=A0=C2=A0=C2=A0 return insn =3D=3D BUG_INSN_32 ||
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (insn & C=
OMPRESSED_INSN_MASK) =3D=3D BUG_INSN_16;
> > +}
> > +
> > +/* Should be used only on Xen code */
> > +static uint32_t read_instr(unsigned long pc)
> > +{
> > +=C2=A0=C2=A0=C2=A0 uint16_t instr16 =3D *(uint16_t *)pc;
> > +
> > +=C2=A0=C2=A0=C2=A0 ASSERT(is_kernel_text(pc + 1) || is_kernel_inittext=
(pc + 1));
> > +
> > +=C2=A0=C2=A0=C2=A0 if ( GET_INSN_LENGTH(instr16) =3D=3D 2 )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return instr16;
> > +
> > +=C2=A0=C2=A0=C2=A0 ASSERT(is_kernel_text(pc + 3) || is_kernel_inittext=
(pc + 3));
> > +
> > +=C2=A0=C2=A0=C2=A0 return *(uint32_t *)pc;
> > +}
>=20
> Related to the point made further down: If either of these assertions
> fails,
> won't we come back again right here? If either of the
> is_kernel_*text()
> wasn't working quite right, wouldn't we be at risk of entering an
> infinite
> loop (presumably not quite infinite because of the stack overflowing
> at some
> point)?
It is really possible to have infinite loop here so it should be better
to use 'if' with die() or panic().

>=20
> > =C2=A0void do_trap(struct cpu_user_regs *cpu_regs)
> > =C2=A0{
> > +=C2=A0=C2=A0=C2=A0 register_t pc =3D cpu_regs->sepc;
> > +=C2=A0=C2=A0=C2=A0 uint32_t instr =3D read_instr(pc);
> > +
> > +=C2=A0=C2=A0=C2=A0 if ( ( is_valid_bug_insn(instr) ) && ( do_bug_frame=
(cpu_regs,
> > pc) >=3D 0 ) )
>=20
> No consideration of the kind of exception? I'd expect it is one very
> specific one which the BUG insn would raise, and then there's no
> point
> fetching the insn when it's a different kind of exception.
Good point.

We should have 0x3 ( breakpoint exception ) in scause register. We can
just check that without reading instruction and then also
is_valid_bug_insn could be dropped too.


>=20
> Further, nit: Certainly no need for the parentheses on the lhs of the
> &&.
> Having them on the rhs is a matter of taste, so okay, but then the
> blanks immediately inside will want dropping.

>=20
>=20
> > --- a/xen/common/bug.c
> > +++ b/xen/common/bug.c
> > @@ -1,6 +1,7 @@
> > =C2=A0#include <xen/bug.h>
> > =C2=A0#include <xen/errno.h>
> > =C2=A0#include <xen/kernel.h>
> > +#include <xen/lib.h>
> > =C2=A0#include <xen/livepatch.h>
> > =C2=A0#include <xen/string.h>
> > =C2=A0#include <xen/types.h>
>=20
> Unrelated change? Or did you simply forget to mention in the
> description
> why it's needed?
I added it to "Changes in ..." which I forgot to add, but I will add an
explanation to the description. It is better place for it.

<xen/lib.h> is needed to be included for the reason that panic() and
printk() is used in common/bug.c and RISC-V fails if it is not included
with the following errors:
   common/bug.c:69:9: error: implicit declaration of function 'printk'
   [-Werror=3Dimplicit-function-declaration]
      69 |         printk("Xen WARN at %s%s:%d\n", prefix, filename,
   lineno);
         |         ^~~~~~
   common/bug.c:77:9: error: implicit declaration of function 'panic'
   [-Werror=3Dimplicit-function-declaration]
      77 |         panic("Xen BUG at %s%s:%d\n", prefix, filename,
   lineno);
>=20
> ~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 08:53:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 08:53:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757185.1165943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRpYQ-0000oF-Sv; Thu, 11 Jul 2024 08:53:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757185.1165943; Thu, 11 Jul 2024 08:53: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 1sRpYQ-0000o8-Ph; Thu, 11 Jul 2024 08:53:30 +0000
Received: by outflank-mailman (input) for mailman id 757185;
 Thu, 11 Jul 2024 08:53:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRpYQ-0000o2-BO
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 08:53:30 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b1c5f97-3f63-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 10:53:29 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-58bac81f40bso882667a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 01:53:29 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bba54b07sm3198647a12.14.2024.07.11.01.53.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 01:53: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: 0b1c5f97-3f63-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720688009; x=1721292809; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=iMEbJ2rxHgRvAONezc82LFzC2srBewtXwCprCffYOOI=;
        b=XLGTdDSzhJ3RJpagsmZzbtpN2lzY5FDjcH/FNGvkP2dKfiyQAWn29Rb++yTq1aP9U5
         4rTmozbpmrGrBludJePQatFfD9MD8+qw+bItVFu8FNvvzPNpMFefTx4aGaxj4Q8n18Op
         H7WZ7qS3+cF/vfRd8kSdOnLBtXXjyPihw2SyPnCIRwGYHMIYHizA8hc2UkMonsWAdzvz
         sMA3nlBUEl5KDbQDMceWct5acq9LtaggfMWGh8JdwTfb4erqz1dAJWC2HFAYq5aJDIT2
         yl1B1uM/IR/vtCDuPEcgqGD6k0ijJcOoWoSYiKDE7+XRT9RUsqIMLDLZ7N3yYt9uAs+t
         QITw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720688009; x=1721292809;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=iMEbJ2rxHgRvAONezc82LFzC2srBewtXwCprCffYOOI=;
        b=rzRxa19nAnw2jL/69GeGBJ1KJ7o4t12xoKaco9fevpuztUPicb10rU2t9OsonO0zho
         1P7P3SfMsftNNY1YSlM2oC+ylLWsJWG/1fOvxagLnBiOUk6/QGS5daL2zaxLpvO74HO+
         qFUIN3l8ouYiEd79rsGBNfQg+jqeShoz0jbnHLlejNCga3QaqZt9GXM3gtOMGg2cSY44
         SSpQkZ6cHByGxZi4FIekdzz2ZRIbG1lo0Ae/c33vy8A51IoDlK/aaC+8NhpekossYeoO
         WNbawmcBmkQvMtB76A5bcgN5LdtmFpSON0LUJCZjxvavGhMwGUB2aBdahY3pakkWFat2
         kj/g==
X-Forwarded-Encrypted: i=1; AJvYcCUGMuBAY/7Q+kdI6t8a2ohlw/IVrDF0yrx9QQS1/T1Vo4VqA/jb3GlhXQjViV+6nAstmqOxl9sQ4GC0uWmGSOP3pNFemBsuXVfOn4uWM+w=
X-Gm-Message-State: AOJu0Yyi068LIUQMoXwv+FpTecAj07N+UI+RO5DkZ3kxdOyqpDaGjSWO
	pxNp0PTzLCgMhd4Z9gCQqSJOQ7fbj50912/nLwld4e5Y92TuG0f6
X-Google-Smtp-Source: AGHT+IGap7rRhfFAHLholDWn17PL1+ygZqQMNAIJc6OqROSyqNxnDARvf8kjCEx9pqlIVUeRHbdfEg==
X-Received: by 2002:a05:6402:2791:b0:58d:115c:f529 with SMTP id 4fb4d7f45d1cf-594ba997550mr6085030a12.7.1720688008619;
        Thu, 11 Jul 2024 01:53:28 -0700 (PDT)
Message-ID: <34ca768d5c007907469252769ecc44304ca19868.camel@gmail.com>
Subject: Re: [PATCH v9 5/5] xen/riscv: test basic handling stuff
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 10:53:27 +0200
In-Reply-To: <ad1b1b09-faca-4dc1-997a-a0fd56a6781a@suse.com>
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
	 <62cce91351f00f80cb1c7701906e2d8cd3301ec1.1719918148.git.oleksii.kurochko@gmail.com>
	 <48dcb83f-3314-4091-9e57-9f757d7bc9db@suse.com>
	 <ad1b1b09-faca-4dc1-997a-a0fd56a6781a@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-10 at 12:07 +0200, Jan Beulich wrote:
> On 10.07.2024 12:06, Jan Beulich wrote:
> > On 02.07.2024 13:23, Oleksii Kurochko wrote:
> > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > > Acked-by: Alistair Francis <alistair.francis@wdc.com>
> > > ---
> > > =C2=A0xen/arch/riscv/setup.c | 16 ++++++++++++++++
> > > =C2=A01 file changed, 16 insertions(+)
> > >=20
> > > diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
> > > index a6a29a1508..4f06203b46 100644
> > > --- a/xen/arch/riscv/setup.c
> > > +++ b/xen/arch/riscv/setup.c
> > > @@ -19,6 +19,20 @@ void arch_get_xen_caps(xen_capabilities_info_t
> > > *info)
> > > =C2=A0unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
> > > =C2=A0=C2=A0=C2=A0=C2=A0 __aligned(STACK_SIZE);
> > > =C2=A0
> > > +static void test_run_in_exception(const struct cpu_user_regs
> > > *regs)
> > > +{
> > > +=C2=A0=C2=A0=C2=A0 printk("If you see this message, ");
> > > +=C2=A0=C2=A0=C2=A0 printk("run_in_exception_handler is most likely w=
orking\n");
> > > +}
> > > +
> > > +static void test_macros_from_bug_h(void)
> > > +{
> > > +=C2=A0=C2=A0=C2=A0 run_in_exception_handler(test_run_in_exception);
> > > +=C2=A0=C2=A0=C2=A0 WARN();
> > > +=C2=A0=C2=A0=C2=A0 printk("If you see this message, ");
> > > +=C2=A0=C2=A0=C2=A0 printk("WARN is most likely working\n");
> > > +}
> >=20
> > While for the moment this may be okay, in the longer run WARN()
> > will cause
> > quite a bit of output that you don't want on every boot. The
> > further plans
> > here will want mentioning in the description.
> >=20
> > Additionally as part of re-basing I think you would have wanted to
> > put this
> > under the (relatively new) SELF_TESTS Kconfig control.
I will consider SELF_TESTS Kconfig, there is not a lot of sense to
print that every boot.

>=20
> Oh, and: Is it possible there's a word ("exception"?) missing from
> the title?
Yes, I missed that. I will update the title to: " test basic exception
handling stuff ". Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 08:56:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 08:56:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757189.1165954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRpay-0001M0-9x; Thu, 11 Jul 2024 08:56:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757189.1165954; Thu, 11 Jul 2024 08: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 1sRpay-0001Lt-5h; Thu, 11 Jul 2024 08:56:08 +0000
Received: by outflank-mailman (input) for mailman id 757189;
 Thu, 11 Jul 2024 08: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRpax-0001Ln-3a
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 08:56:07 +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 679a7241-3f63-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 10:56:05 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a77af4cd570so50561866b.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 01:56:05 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff238sm235328966b.138.2024.07.11.01.56.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 01: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: 679a7241-3f63-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720688164; x=1721292964; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=aX22Hi2Iuek7kmHUsMQZ/wQTZYyIy6jVS7sp9HZJ18E=;
        b=TWRZowPNe85cNvDN+RseFQjtyi6ry10JpU+dpvDwem7SSi2tLEgxm0zjPboyaK/IvJ
         eRO2ECb26zKoi5dLQ+/tgetV04r2WsqEVDjK0Gbc5QGu6q/FeehyM3aVDFeWYEHisl0B
         Gj6Pr8d7mDNcq/i+XffoKAaFQ/GSJd9m+NzO/MfADTiWLhnKtiORnjAJ3aTVg6wHe8Sc
         /l6hucmODCIUhudteL6fGlh0ks8u9H/NSZibf+mro6w/jI4gGU2s4W8T8feBzA51Upig
         Nkwc3mFW7FuYlTY2BSQtA6t+Ga9t7UzNsEaEqeEJBfFLkkK76fEhdGM4bqXlzQrnSX7G
         P/sw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720688164; x=1721292964;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=aX22Hi2Iuek7kmHUsMQZ/wQTZYyIy6jVS7sp9HZJ18E=;
        b=PI2vpKIBH8mLzTqvbv0mEVTg16KUQhbCPWXsZzIhlcwIzeLMtfwExOsV3q5zx55kZO
         ZYwaxdjOT8wAdbbdZfXNbr3626APSolAhGc/DXLOUtJ4s17uP9cT2lfXXBFuhUlxGXbp
         GZlvqEmulMgtzmo01y7eas1kxWHFYuL2Xdkgdo1REg06268ea0oY3v3RB8/b+DGccBAz
         e3W++UowAl67WorX5iOn8fJcNlIEh2FPy/zWIOmRInmgFnF8AlZNI00uaxLb7zeY+xob
         ufiNEb+ntOkBAs+C3esPphCvgcfuNSKF6HziFJrla7DE8fGywyGUscmJfDEWB5Lh14Cn
         ahfQ==
X-Forwarded-Encrypted: i=1; AJvYcCXp/GhfcpO6Wg16F3SpubVQopuSknHH40iKa7OR4SJnA7jXMmchD4N3yW89Jm7lgfFs2P0YI9t4xj/knlEE1Gwgsq8rPykYJcfGmpyZqA0=
X-Gm-Message-State: AOJu0Yz52KUsJz1ICWL6KiSs0cmbLhV9sV+59yW/Y6xAcHVUGfaS+LET
	YUZ6d3bNlmOyYut3Wc5p0C4uA0UiJ4i/N9wkSX8bDjogGguQLh9d
X-Google-Smtp-Source: AGHT+IGrSv+4RNW2DUgQsR+WCxh7Oqj8Id1lsZHQez1fGovmn0ime0UCOGL5W5/aRPMn2Xf/8B93pQ==
X-Received: by 2002:a05:6402:6c6:b0:587:2dd1:4b6c with SMTP id 4fb4d7f45d1cf-594bc7cabe8mr7310242a12.30.1720688163907;
        Thu, 11 Jul 2024 01:56:03 -0700 (PDT)
Message-ID: <350bf2a96c38e02016e40a7f81a0b65501225f7e.camel@gmail.com>
Subject: Re: [PATCH for-4.20 v2] automation: Use a different ImageBuilder
 repository URL
From: Oleksii <oleksii.kurochko@gmail.com>
To: Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	 <sstabellini@kernel.org>
Date: Thu, 11 Jul 2024 10:56:03 +0200
In-Reply-To: <be1517ee-bd5c-42b0-8328-aa277680b935@amd.com>
References: <20240710093751.25154-1-michal.orzel@amd.com>
	 <98fecf96-ab8e-4514-a3e9-a1f0b15519c1@citrix.com>
	 <c26ee4258d9bc83ad69db3d4b4c10d1dc920c071.camel@gmail.com>
	 <be1517ee-bd5c-42b0-8328-aa277680b935@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Thu, 2024-07-11 at 10:14 +0200, Michal Orzel wrote:
> Hi Oleksii,
>=20
> On 11/07/2024 10:11, Oleksii wrote:
> >=20
> >=20
> > On Wed, 2024-07-10 at 10:44 +0100, Andrew Cooper wrote:
> > > On 10/07/2024 10:37 am, Michal Orzel wrote:
> > > > Switch to using
> > > > https://gitlab.com/xen-project/imagebuilder.git=C2=A0which
> > > > should be considered official ImageBuilder repo.
> > > >=20
> > > > Take the opportunity to truncate the git history when cloning
> > > > using
> > > > --depth 1.
> > > >=20
> > > > Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> > > > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> > >=20
> > > Given the current overhaul I'm (still) doing for CI in 4.19, I'd
> > > suggest
> > > taking this.
> >=20
> > -git clone https://gitlab.com/ViryaOS/imagebuilder
> > +git clone https://gitlab.com/xen-project/imagebuilder.git
> >=20
> > But is it the same imagebuilders and only location is changed?
> That's the same project but the repo under xen-project is more up-to-
> date and we decided
> that it should be considered the official repo location.
Then I am okay to have this change in 4.19:
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 08:59:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 08:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757194.1165962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRpeB-0002Sz-LM; Thu, 11 Jul 2024 08:59:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757194.1165962; Thu, 11 Jul 2024 08:59: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 1sRpeB-0002Ss-Ig; Thu, 11 Jul 2024 08:59:27 +0000
Received: by outflank-mailman (input) for mailman id 757194;
 Thu, 11 Jul 2024 08:59:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRpeA-0002Si-GS; Thu, 11 Jul 2024 08:59:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRpeA-0004oq-DP; Thu, 11 Jul 2024 08:59:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRpeA-0005Z9-0B; Thu, 11 Jul 2024 08:59:26 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRpe9-0000jF-W1; Thu, 11 Jul 2024 08:59: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=xcrY9aXih9Wda7MpseUEHMAlc8gkZ/u86Q1fPN4T5K4=; b=vuvIeDlOWqHtvKs9ZGK4sh4juv
	MWVW4dcEyZSE/fSXjnB3dwceoI58kzE5MT7d6kr1VkG7lXV3vyko0jLMnqm0cqRbTv0g8D+5VwqvV
	UvkqaXPt7whrqPpzCrnkyPPC9YVmgocfAPo3Y79hM7NPIjU4wtc71Rhe5DivgQF8QmYo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186757-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186757: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-qemuu-freebsd12-amd64:guest-localmigrate/x10:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-credit1:debian-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-credit2:host-ping-check-native:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
X-Osstest-Versions-That:
    xen=d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Jul 2024 08:59:25 +0000

flight 186757 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186757/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-qemuu-freebsd12-amd64 19 guest-localmigrate/x10 fail in 186750 pass in 186757
 test-armhf-armhf-xl-credit1  12 debian-install   fail in 186750 pass in 186757
 test-armhf-armhf-xl-credit2   6 host-ping-check-native     fail pass in 186750

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit2 15 migrate-support-check fail in 186750 never pass
 test-armhf-armhf-xl-credit2 16 saverestore-support-check fail in 186750 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186750
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186750
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186750
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186750
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186750
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186750
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
baseline version:
 xen                  d49ba6bf8f904a58bd1cfdfe6c93023b249f0578

Last test of basis   186757  2024-07-11 01:53:38 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 09:00:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 09:00:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757200.1165973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRpfL-0003w4-2p; Thu, 11 Jul 2024 09:00:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757200.1165973; Thu, 11 Jul 2024 09:00: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 1sRpfL-0003vx-09; Thu, 11 Jul 2024 09:00:39 +0000
Received: by outflank-mailman (input) for mailman id 757200;
 Thu, 11 Jul 2024 09:00: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRpfJ-0003vn-Pl
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 09:00:37 +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 09e9f3a6-3f64-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 11:00:36 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a77baa87743so72723266b.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 02:00:36 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6e380asm239140866b.90.2024.07.11.02.00.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 02:00: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: 09e9f3a6-3f64-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720688436; x=1721293236; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Zjv8MyfEPC/3Yp6c9wk9PiIfmL7uJ9UdtJiDGVezEVg=;
        b=O7ueJsMDiZP5KhsNnj/wCSvs+EJ6VUQEyOlnLdJDkiPHsuGSNKqvWaHi1VZ0p3zzxO
         cGZ71J5A7hnnnDzusw258AGPsc+wqMJvw7D4t/g2HL1iGUelPRSMUkLRPv0UsRB7Xvud
         2tS6i9qVwATDBhvfQI6mJ3I2+M/71+lR3p+xrKOHae20+3cVlWiOE60gfdN5vvd6/dcF
         5Mub8CI/5eTUG6UzeOWE0Qd7G8+/BW+SzdPUYq+uV962H3gBfXNfxikhv8GZqqfhj8zz
         4KHAsHmAHbi++OGNmTZ2ATD25v9yeo6kWpWdw5YVmIY74FT2oTx9Wv9OkcEJMnMwsc7R
         mDcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720688436; x=1721293236;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Zjv8MyfEPC/3Yp6c9wk9PiIfmL7uJ9UdtJiDGVezEVg=;
        b=dSzgHofpHdDqSaf2v5D+wi4+pOp/LXkt6KrF7il2PWtruhm6nX3PwtMQlVqHlhjZoU
         Ev+1KhrQ5MEBpeoNYl+sNjoxPOw9vHleWdkbqddQz1sUH4Yw9ReRN6uHq8NnLgbxYp91
         yRz87huEQPsVhd2XHaJ8t7fDknb1ozpXGGOdvlSFjcqRN8NeNni/BmI77Zv39RYb5mPi
         8x9t8bW4muYqUagOk1xWZZ9f1ANKegQRhezOtTTkMuzGbS+30YZjflWXP6dHzTRMh4l3
         w0b1W+f+3rEF6dT110RD7SN7yb3pWZPYIAO8krVM9azj3vskr6gcx31syux6LUuXdEoI
         SuHg==
X-Forwarded-Encrypted: i=1; AJvYcCVjggytBmpliQRf0PB2UzhUdspS/oJksscE66mgkdJj66BVBqJjWvjrCl5LkyUG+GnTciHOf9pBzwQmL0GfQ7KzxM+CGy/tYpSMpXRf3Xs=
X-Gm-Message-State: AOJu0YzEbIAsKKyrp7SF4ICYRemPhJXliZzW5xb+Dw6mSlS5+3QEmkqh
	WnagkvBXfodkjwAbuhTW4cPcnnCgLJI7vnt9efNpeA+ytooj/h3K
X-Google-Smtp-Source: AGHT+IF+qXioeAKz5ysB61QBRGdaVlunsLZpmhOJgEf3WIqQMAo0x7BlSpj9mT9oqo+NLdJT2qjKvA==
X-Received: by 2002:a17:907:94c5:b0:a77:b01b:f949 with SMTP id a640c23a62f3a-a780b6fee77mr761132466b.35.1720688436130;
        Thu, 11 Jul 2024 02:00:36 -0700 (PDT)
Message-ID: <d3b9070442e0ebca82ce0dd5257fe91eef4755cf.camel@gmail.com>
Subject: Re: [PATCH v1 1/5] xen/device-tree: Move Arm's setup.c bootinfo
 functions to common
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Shawn Anastasio <sanastasio@raptorengineering.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>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>, xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 11:00:35 +0200
In-Reply-To: <b3c5b6d3-561d-46d0-bc1b-1b2e3cbeeba2@suse.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
	 <c656f0d08d4c4b515c99848b84db4171ab132f19.1720002425.git.oleksii.kurochko@gmail.com>
	 <b3c5b6d3-561d-46d0-bc1b-1b2e3cbeeba2@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-10 at 12:23 +0200, Jan Beulich wrote:
> On 03.07.2024 12:42, Oleksii Kurochko wrote:
> > From: Shawn Anastasio <sanastasio@raptorengineering.com>
> >=20
> > Arm's setup.c contains a collection of functions for parsing memory
> > map
> > and other boot information from a device tree. Since these routines
> > are
> > generally useful on any architecture that supports device tree
> > booting,
> > move them into xen/common/device-tree.
> >=20
> > Suggested-by: Julien Grall <julien@xen.org>
> > Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > Changes in V5:
> > =C2=A0- add xen/include/xen/bootfdt.h to MAINTAINERS file.
> > =C2=A0- drop message "Early device tree parsing and".
> > =C2=A0- After rebase on top of the current staging the following change=
s
> > were done:
> > =C2=A0=C2=A0 - init bootinfo variable in <common/device-tree/bootinfo.c=
> with
> > BOOTINFO_INIT;
> > =C2=A0=C2=A0 - update the code of dt_unreserved_regions():
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_STATIC_SHM related changes =
and getting of
> > reserved_mem
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bootinfo_get_shmem() ??
> > =C2=A0=C2=A0 - update the code of meminfo_overlap_check():
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 add check ( INVALID_PADDR =3D=3D b=
ank_start ) to if case.
> > =C2=A0=C2=A0 - update the code of check_reserved_regions_overlap():
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_STATIC_SHM related changes.
> > =C2=A0=C2=A0 - struct bootinfo was updated ( CONFIG_STATIC_SHM changes =
)
> > =C2=A0=C2=A0 - add shared_meminfo ( because of CONFIG_STATIC_SHM )
> > =C2=A0=C2=A0 - struct struct membanks was update with __struct group so
> > <xen/kernel> is
> > =C2=A0=C2=A0=C2=A0=C2=A0 neeeded to be included in bootfdt.h
> > =C2=A0=C2=A0 - move BOOTINFO_ACPI_INIT, BOOTINFO_SHMEM_INIT, BOOTINFO_I=
NIT to
> > generic bootfdt.h
> > =C2=A0=C2=A0 - bootinfo_get_reserved_mem(), bootinfo_get_mem(),
> > bootinfo_get_acpi(),
> > =C2=A0=C2=A0=C2=A0=C2=A0 bootinfo_get_shmem() and bootinfo_get_shmem_ex=
tra() were moved
> > to xen/bootfdt.h
> > =C2=A0- s/arm32/CONFIG_SEPARATE_XENHEAP/
> > =C2=A0- add inclusion of <xen/macros.h> because there are function in
> > <xen/bootfdt.h> which
> > =C2=A0=C2=A0 are using container_of().
>=20
> Just to mention it: This is confusing. The series is tagged "v1". I
> understand
> you took Shawn's work, which had already undergone revisions. But
> then imo you
> want to at least clarify how your v1 relates to his v4 or v5, i.e.
> then making
> clear to the reader whether all of the changes above were actually
> done by you
> on top of an earlier v4, or whether you took the earlier v5 verbatim.
That is why I wrote "Changes in v5" to show that these changes were
done on top of v4 version of Shawn's series, so what is mentioned in v5
here it is what was done by me.

I'll reword that and probably I shouldn't drop "Changes in v4,3,2,1"
from Shawn's patch.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 09:22:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 09:22:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757213.1165983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRq00-0007Ob-NG; Thu, 11 Jul 2024 09:22:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757213.1165983; Thu, 11 Jul 2024 09:22: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 1sRq00-0007OT-Jb; Thu, 11 Jul 2024 09:22:00 +0000
Received: by outflank-mailman (input) for mailman id 757213;
 Thu, 11 Jul 2024 09:21: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=n1Hg=OL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRpzz-0007Ny-B9
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 09:21: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 05aeabac-3f67-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 11:21:58 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-58f9874aeb4so902050a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 02:21: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
 41be03b00d2f7-77d621c6300sm4086468a12.51.2024.07.11.02.21.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 02:21: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: 05aeabac-3f67-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720689718; x=1721294518; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/dUfiMbDjZy3PrH3x4GeRrQ4b2iAnCiTMoZ+/S19jLk=;
        b=XiQ7JZmOPnnm4nhTa+16BVfz3WK7AqWy7IMilsNmUbiHKQdP3ewfzyGzq53e8UWPzv
         ImGk8pFZq4gE/8eLRra8o2BnW+as9SWamMZek5FkiA4sYjQafC2vdm56h83ruEIdxrSv
         ZAPZ+czjkNfB1j5RDvHg1hQJAKq9OSLyMnCn1j45HSq36NU1CAG6JRPgDb5pCYaLWzmy
         Wr/CTBHsbXvKRNb1+tySegEjNQKRz9gDMDXXYot1y/1ZzLjwuK06BgtgW/2WrPMdXaTp
         u5OYZBCUyRGjYG843iihxRkohTQfK2Gx3wWkNit2BtDnsScSJ8/RUghM2ixLc72eKYvl
         rQCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720689718; x=1721294518;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/dUfiMbDjZy3PrH3x4GeRrQ4b2iAnCiTMoZ+/S19jLk=;
        b=mg1z6tRVwh0pldpcURDZcFYlD1eBrYs+CqN2NDR5+uEeCvGbZ//zAute/ib102wn51
         o8XjmUcdTbkNbPpTZZfdL8UCs9b2DNSAOn+J3X0FUv0w05aMkj1e3mmKC7HTn4EUEiP9
         7knKS9njW/sHwTH7ezi/aNhfJrzsMahWumhp9wBijAcsZaHTd1OvkbFya8WhYJGP+Hxh
         6eihEWnSyOKNE8Ml6dGakt+39M/4pqA9Kbgb2AnmZpJek6ZgYYmVz3b6eZTHOL5YHcD+
         HWT6+TF0edyZFUFRzQyiZQaqXqq73z5KkO9KnpzuxZu0HfPxQXXZlViVzcXsDmffel+d
         v9OA==
X-Forwarded-Encrypted: i=1; AJvYcCV71Lw9aUnyOslCZpn3dbXvTGEn72TACjeS0z5eKSGVYzMsqPcouXFQZPPgfWEq2BufFtKB2v8tfaNsBFYH7HJSOzkGIxkrM3CqHO/9R58=
X-Gm-Message-State: AOJu0YyGqeS3IL0YpA5thDxMXui6p92cRCLUtn/2pWWOE13MTpjLZNgO
	OWm/R+5GMYXFJO9OaD91O6mGCcyCown3vjf53b/ZqZo9ibJeR2wlbnSrExA7kA==
X-Google-Smtp-Source: AGHT+IHXZyTEgFCd0oJcdscYbj/DHK0u5UFMOwXXDhR9hg4rV3BWZ+qLA9cZ/2QSWVXnWSVMl5deiA==
X-Received: by 2002:a17:906:1cd6:b0:a77:c364:c4f0 with SMTP id a640c23a62f3a-a780b70548amr447132866b.36.1720689717818;
        Thu, 11 Jul 2024 02:21:57 -0700 (PDT)
Message-ID: <600ad88a-8880-485b-be1e-43942a1b8615@suse.com>
Date: Thu, 11 Jul 2024 11:21:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/5] xen/device-tree: Move Arm's setup.c bootinfo
 functions to common
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Shawn Anastasio <sanastasio@raptorengineering.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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <c656f0d08d4c4b515c99848b84db4171ab132f19.1720002425.git.oleksii.kurochko@gmail.com>
 <b3c5b6d3-561d-46d0-bc1b-1b2e3cbeeba2@suse.com>
 <d3b9070442e0ebca82ce0dd5257fe91eef4755cf.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d3b9070442e0ebca82ce0dd5257fe91eef4755cf.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.07.2024 11:00, Oleksii wrote:
> On Wed, 2024-07-10 at 12:23 +0200, Jan Beulich wrote:
>> On 03.07.2024 12:42, Oleksii Kurochko wrote:
>>> From: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>
>>> Arm's setup.c contains a collection of functions for parsing memory
>>> map
>>> and other boot information from a device tree. Since these routines
>>> are
>>> generally useful on any architecture that supports device tree
>>> booting,
>>> move them into xen/common/device-tree.
>>>
>>> Suggested-by: Julien Grall <julien@xen.org>
>>> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> ---
>>> Changes in V5:
>>>  - add xen/include/xen/bootfdt.h to MAINTAINERS file.
>>>  - drop message "Early device tree parsing and".
>>>  - After rebase on top of the current staging the following changes
>>> were done:
>>>    - init bootinfo variable in <common/device-tree/bootinfo.c> with
>>> BOOTINFO_INIT;
>>>    - update the code of dt_unreserved_regions():
>>>        CONFIG_STATIC_SHM related changes and getting of
>>> reserved_mem
>>>        bootinfo_get_shmem() ??
>>>    - update the code of meminfo_overlap_check():
>>>        add check ( INVALID_PADDR == bank_start ) to if case.
>>>    - update the code of check_reserved_regions_overlap():
>>>        CONFIG_STATIC_SHM related changes.
>>>    - struct bootinfo was updated ( CONFIG_STATIC_SHM changes )
>>>    - add shared_meminfo ( because of CONFIG_STATIC_SHM )
>>>    - struct struct membanks was update with __struct group so
>>> <xen/kernel> is
>>>      neeeded to be included in bootfdt.h
>>>    - move BOOTINFO_ACPI_INIT, BOOTINFO_SHMEM_INIT, BOOTINFO_INIT to
>>> generic bootfdt.h
>>>    - bootinfo_get_reserved_mem(), bootinfo_get_mem(),
>>> bootinfo_get_acpi(),
>>>      bootinfo_get_shmem() and bootinfo_get_shmem_extra() were moved
>>> to xen/bootfdt.h
>>>  - s/arm32/CONFIG_SEPARATE_XENHEAP/
>>>  - add inclusion of <xen/macros.h> because there are function in
>>> <xen/bootfdt.h> which
>>>    are using container_of().
>>
>> Just to mention it: This is confusing. The series is tagged "v1". I
>> understand
>> you took Shawn's work, which had already undergone revisions. But
>> then imo you
>> want to at least clarify how your v1 relates to his v4 or v5, i.e.
>> then making
>> clear to the reader whether all of the changes above were actually
>> done by you
>> on top of an earlier v4, or whether you took the earlier v5 verbatim.
> That is why I wrote "Changes in v5" to show that these changes were
> done on top of v4 version of Shawn's series, so what is mentioned in v5
> here it is what was done by me.

Except that what you sent is v1, not v5.

> I'll reword that and probably I shouldn't drop "Changes in v4,3,2,1"
> from Shawn's patch.

I don't think you should drop anything. You want to clarify relationship
of the version of your series with that of Shawn's earlier one. Or you'd
want to continue numbering from what the previous series had, yet that
may then also end up confusing if Shawn resumed work there.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 09:26:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 09:26:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757217.1165993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRq42-0007yX-5z; Thu, 11 Jul 2024 09:26:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757217.1165993; Thu, 11 Jul 2024 09:26: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 1sRq42-0007yQ-2s; Thu, 11 Jul 2024 09:26:10 +0000
Received: by outflank-mailman (input) for mailman id 757217;
 Thu, 11 Jul 2024 09:26: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=n1Hg=OL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRq40-0007yK-Vi
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 09:26:08 +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 9a66ece2-3f67-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 11:26:07 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-58b447c51bfso739321a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 02:26: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
 98e67ed59e1d1-2ca34e89eefsm5175265a91.31.2024.07.11.02.26.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 02:26:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a66ece2-3f67-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720689967; x=1721294767; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=36B1OmI3mUY03WUHSxrGe4AwhodhCfas6L3RbhjZ9gk=;
        b=I850sg9UNmWwyfThpgJHvucHRYuAFXiW4xSlcG+HE1uKqMN9qUinNufizeJQ31r8ze
         Z3HjkJ2UtbFgiGVkgzqPA+L4WZFemgVLrBypn11ytO6MZG5J1A5raA7QicS/rEZOtIKN
         VTNKQft/uTfk7Nx4xDTshMuLmv1yPL+hvLVXy6+L00YzZiBqR/hGdNzUfTAZG7g4rwPo
         2TJm9pUWyoz+S69q5TY2hgvp6ODufoiz/8IPnNOC+MiJkpkPn8OXkUJcZ2Dq0m0mKa88
         tDsYwVLN0ykSzB9wu0HZBBHChGHhPVj7JkgxN4tohCeZ7pUc5qy7Qo8NAS6kHvcPIdPu
         XOiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720689967; x=1721294767;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=36B1OmI3mUY03WUHSxrGe4AwhodhCfas6L3RbhjZ9gk=;
        b=pvsbYwBdrwFWC0a3qsxGB9KMsqwBmVqaS4/sYu6W+l9vHjjdwBGs8RQT/xdEigccbY
         ogUvpDXRfkYRNhNMubLnUjXuMKnhONnVn3OijatLPASlXidq+71suTcnNl3BWPnqRcv9
         UINFgI9IKqhb6uDousXrcZksoDDlGzALO7Se+RdbZ942Jqrmi6NCO67j/AJpNjm6HUzm
         MC6R56ctJ9kJWCF/lKRye6h2Ct24UN+awhc1qFakLdRgTXswS5Fv+VV+Hm8ymTqiG8Ii
         tqPrnnMLq37z2I+2+X+FodpV36vdN6xSRxGR7ZFSdvJf348SV+9Bq3hXCf+mWNyYB3NH
         hQ7g==
X-Forwarded-Encrypted: i=1; AJvYcCUF/ZbXCLMygKVNe6m1Tqhlak9JYKONlzuPR0CJBvBhqH5IL41+jVsw+R7p8SY0kVkRzmuej6RMMARYAs2TuDx52y74UCyezuAR7IsgBEk=
X-Gm-Message-State: AOJu0YzA+4cOtc39GYvyDg53X9dj1d2PT0LlZNiULbAHEPgz2aIZFG8v
	RygKteXqmopAOS8j2ewkR49Vm/qVY76LQqUcBXFs0gILYhc9VOlITyANlTamOA==
X-Google-Smtp-Source: AGHT+IF8lFgYKqSgkaOZ6H866ywqAgCNjCN7OF030pYn7jIpi1Kt+uF78p1c5tdckmVREC6/rhg3Dg==
X-Received: by 2002:a05:6402:33ce:b0:58e:dbd:65cd with SMTP id 4fb4d7f45d1cf-594bc7c7e1amr4818506a12.26.1720689967334;
        Thu, 11 Jul 2024 02:26:07 -0700 (PDT)
Message-ID: <bff4f1e4-9242-4a1c-bbca-ba3d609db03f@suse.com>
Date: Thu, 11 Jul 2024 11:25:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 4/5] xen/riscv: enable GENERIC_BUG_FRAME
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
 <c51c485bac43b7589961aabec8af1b82d4673b94.1719918148.git.oleksii.kurochko@gmail.com>
 <ca373d42-22f1-41a2-bdbb-4733145c635a@suse.com>
 <a1224198ef6845f8f81baaaebe1d436726460c0e.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a1224198ef6845f8f81baaaebe1d436726460c0e.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.07.2024 10:50, Oleksii wrote:
> On Wed, 2024-07-10 at 12:01 +0200, Jan Beulich wrote:
>> On 02.07.2024 13:23, Oleksii Kurochko wrote:
>>> @@ -101,8 +102,38 @@ static void do_unexpected_trap(const struct
>>> cpu_user_regs *regs)
>>>      die();
>>>  }
>>>  
>>> +static bool is_valid_bug_insn(uint32_t insn)
>>> +{
>>> +    return insn == BUG_INSN_32 ||
>>> +           (insn & COMPRESSED_INSN_MASK) == BUG_INSN_16;
>>> +}
>>> +
>>> +/* Should be used only on Xen code */
>>> +static uint32_t read_instr(unsigned long pc)
>>> +{
>>> +    uint16_t instr16 = *(uint16_t *)pc;
>>> +
>>> +    ASSERT(is_kernel_text(pc + 1) || is_kernel_inittext(pc + 1));
>>> +
>>> +    if ( GET_INSN_LENGTH(instr16) == 2 )
>>> +        return instr16;
>>> +
>>> +    ASSERT(is_kernel_text(pc + 3) || is_kernel_inittext(pc + 3));
>>> +
>>> +    return *(uint32_t *)pc;
>>> +}
>>
>> Related to the point made further down: If either of these assertions
>> fails,
>> won't we come back again right here? If either of the
>> is_kernel_*text()
>> wasn't working quite right, wouldn't we be at risk of entering an
>> infinite
>> loop (presumably not quite infinite because of the stack overflowing
>> at some
>> point)?
> It is really possible to have infinite loop here so it should be better
> to use 'if' with die() or panic().
> 
>>
>>>  void do_trap(struct cpu_user_regs *cpu_regs)
>>>  {
>>> +    register_t pc = cpu_regs->sepc;
>>> +    uint32_t instr = read_instr(pc);
>>> +
>>> +    if ( ( is_valid_bug_insn(instr) ) && ( do_bug_frame(cpu_regs,
>>> pc) >= 0 ) )
>>
>> No consideration of the kind of exception? I'd expect it is one very
>> specific one which the BUG insn would raise, and then there's no
>> point
>> fetching the insn when it's a different kind of exception.
> Good point.
> 
> We should have 0x3 ( breakpoint exception ) in scause register. We can
> just check that without reading instruction and then also
> is_valid_bug_insn could be dropped too.

Just that then you'll also lose the is_kernel_*text() checking, which I
understand is there to remind you/us that one this becomes reachable
from non-Xen code, adjustments are going to be needed.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 09:31:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 09:31:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757224.1166002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRq95-0001Kj-LX; Thu, 11 Jul 2024 09:31:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757224.1166002; Thu, 11 Jul 2024 09:31: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 1sRq95-0001Kc-Il; Thu, 11 Jul 2024 09:31:23 +0000
Received: by outflank-mailman (input) for mailman id 757224;
 Thu, 11 Jul 2024 09:31: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRq95-0001KW-3h
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 09:31: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 55b768a5-3f68-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 11:31:22 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e37feeso722230a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 02:31:22 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bba54bf8sm3226486a12.18.2024.07.11.02.31.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 02: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: 55b768a5-3f68-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720690282; x=1721295082; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=ahIJOehh3nriW7UgK3Elrg/pdCCkECMPlyhIzvPitc8=;
        b=l39BMsCA1Mk1PNSKaEL6Jy1MBmRIQF3n46GJ26xQeaBwfZHk6gxMo/SzJRdbXfv0AY
         jRDjHc3mfs8iCJzGFPV7mNExMlycpf+pR6HeO6wACAeB8glbD5o002Vw72eJkCF9hnue
         JsIhTJrbslbY/JXObXdio/6M+57KDp2MKjrTes93Yv0Jx7GNugLtMyXLwlzDOMaZZcf7
         eL1UnjMJ0SGYJ/uguDiWsC+buz6/AXmulxz3kKAxX1t/FplMc8ViH9Eu8WipsC6sEeYb
         8xAQ6WlTRZUvc68aJnIHVf0WergMXSAarPcoCWxJB6cHEcLifwDjPRvWZ2DOgvLC6wXo
         fG+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720690282; x=1721295082;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ahIJOehh3nriW7UgK3Elrg/pdCCkECMPlyhIzvPitc8=;
        b=OOtslyJi1TOAk9uxBUoNmY/YW+dJc+ASL5+Di8TKpfxAHSYTTQcXiubIsrDwnh3miw
         kDi8h9N1WaWUh4IAIiCEEkSOoBch5hXkNstIGyrngEw64w6eDziWtbIV4ifxdX2R7kQZ
         QkWdo8tzSCq8joRWTVyvnkOTMaK7ahBPfsV4uVJOAj3WVP+x+cCNoOAuRV6x109Xo4mp
         Wocf90lT/q2p03DNUVHx7HzFO0MdAaZ8mugmJym0BiQddFHSjWKNFh3vwameR5qM8F4R
         alipI9NcUJhI4F0wui4zUM0JnC87thjgmniMEpEH6Glod4DIo5iwQxRT3fXC0xdhsINn
         GIuw==
X-Forwarded-Encrypted: i=1; AJvYcCVie4kt5fJf0VXRcUoefcBHt7EZ76o2Mx2KXl1DIpj8WSOIs4h4Ffiy++xKwuu+3LOgTsS+dN/Z509PwBrzY+3HGxc0SBd96yjj2SpEE0c=
X-Gm-Message-State: AOJu0YzB2eNT31dib+rsHTtmJP+eF7XwPcDvbjeytCqjYWzAbh8pnXHH
	kfXfVj0iQiOIljvB5MlyKGM85UaR3JiQWGPvVg6SFhtktV1Bn2AOnsj2feMo
X-Google-Smtp-Source: AGHT+IF4aZHf6N21BHk0PssN+CigHqVqSZpAYMwSgbMISGYcPrS3v633E+NTweurAnyQjqK1aFfVrA==
X-Received: by 2002:a05:6402:3196:b0:58b:9561:650b with SMTP id 4fb4d7f45d1cf-594bb580796mr4533337a12.25.1720690281563;
        Thu, 11 Jul 2024 02:31:21 -0700 (PDT)
Message-ID: <31b8683537e5dd9df1d64178f752bae56daad633.camel@gmail.com>
Subject: Re: [PATCH v1 4/5] xen/riscv: introduce device tree maping function
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 11:31:20 +0200
In-Reply-To: <91e1ff5e-a27a-4c59-b5b0-88414d504694@suse.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
	 <efd3e6a8c526d227f8db06779c65ffda42a695d6.1720002425.git.oleksii.kurochko@gmail.com>
	 <91e1ff5e-a27a-4c59-b5b0-88414d504694@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-10 at 12:38 +0200, Jan Beulich wrote:
> On 03.07.2024 12:42, Oleksii Kurochko wrote:
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > =C2=A0xen/arch/riscv/include/asm/config.h |=C2=A0 6 +++++
> > =C2=A0xen/arch/riscv/include/asm/mm.h=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 2=
 ++
> > =C2=A0xen/arch/riscv/mm.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 37
> > +++++++++++++++++++++++++----
> > =C2=A03 files changed, 40 insertions(+), 5 deletions(-)
>=20
> I don't think a change like this can come without any description.
>=20
> > --- a/xen/arch/riscv/include/asm/config.h
> > +++ b/xen/arch/riscv/include/asm/config.h
> > @@ -74,6 +74,9 @@
> > =C2=A0#error "unsupported RV_STAGE1_MODE"
> > =C2=A0#endif
> > =C2=A0
> > +#define XEN_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 MB(2)
> > +#define XEN_VIRT_END=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 (XEN_VIRT_START + XEN_SIZE)
>=20
> Probably wants accompanying by an assertion in the linker script. Or
> else
> how would one notice when Xen grows bigger than this?
I use XEN_SIZE in the linker script here:
 ASSERT(_end - _start <=3D MB(2), "Xen too large for early-boot
assumptions")

>=20
> > @@ -99,6 +102,9 @@
> > =C2=A0#define VMAP_VIRT_START=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 SLOTN(VMAP_SLOT_START)
> > =C2=A0#define VMAP_VIRT_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 GB(1)
> > =C2=A0
> > +#define BOOT_FDT_VIRT_START=C2=A0=C2=A0=C2=A0=C2=A0 XEN_VIRT_END
> > +#define BOOT_FDT_VIRT_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 MB(4)
>=20
> Is the 4 selected arbitrarily, or derived from something?
Yes, it was chosen arbitrarily. I just checked that I don't have any
DTBs larger than 2 MB, but decided to add a little extra space and
doubled it to an additional 2 MB.

>=20
> Also maybe better to keep these #define-s sorted by address? (As to
> "keep":
> I didn't check whether they currently are.)
>=20
> > --- a/xen/arch/riscv/include/asm/mm.h
> > +++ b/xen/arch/riscv/include/asm/mm.h
> > @@ -255,4 +255,6 @@ static inline unsigned int
> > arch_get_dma_bitsize(void)
> > =C2=A0=C2=A0=C2=A0=C2=A0 return 32; /* TODO */
> > =C2=A0}
> > =C2=A0
> > +void* early_fdt_map(paddr_t fdt_paddr);
>=20
> Nit: * and blank want to change places.
>=20
> > --- a/xen/arch/riscv/mm.c
> > +++ b/xen/arch/riscv/mm.c
> > @@ -1,5 +1,6 @@
> > =C2=A0/* SPDX-License-Identifier: GPL-2.0-only */
> > =C2=A0
> > +#include <xen/bootfdt.h>
> > =C2=A0#include <xen/bug.h>
> > =C2=A0#include <xen/compiler.h>
> > =C2=A0#include <xen/init.h>
> > @@ -7,7 +8,9 @@
> > =C2=A0#include <xen/macros.h>
> > =C2=A0#include <xen/mm.h>
> > =C2=A0#include <xen/pfn.h>
> > +#include <xen/libfdt/libfdt.h>
>=20
> This wants to move up, to retain sorting.
>=20
> > =C2=A0#include <xen/sections.h>
> > +#include <xen/sizes.h>
> > =C2=A0
> > =C2=A0#include <asm/early_printk.h>
> > =C2=A0#include <asm/csr.h>
> > @@ -20,7 +23,7 @@ struct mmu_desc {
> > =C2=A0=C2=A0=C2=A0=C2=A0 unsigned int pgtbl_count;
> > =C2=A0=C2=A0=C2=A0=C2=A0 pte_t *next_pgtbl;
> > =C2=A0=C2=A0=C2=A0=C2=A0 pte_t *pgtbl_base;
> > -};
> > +} mmu_desc =3D { CONFIG_PAGING_LEVELS, 0, NULL, 0 };
>=20
> __initdata and static?
>=20
> > @@ -39,9 +42,11 @@ static unsigned long __ro_after_init
> > phys_offset;
> > =C2=A0 * isn't 2 MB aligned.
> > =C2=A0 *
> > =C2=A0 * CONFIG_PAGING_LEVELS page tables are needed for the identity
> > mapping,
> > - * except that the root page table is shared with the initial
> > mapping
> > + * except that the root page table is shared with the initial
> > mapping.
> > + *
> > + * CONFIG_PAGING_LEVELS page tables are needed for device tree
> > mapping.
> > =C2=A0 */
> > -#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
> > +#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 3 + 1 +
> > 1)
>=20
> Considering what would happen if two or three more of such
> requirements
> were added, maybe better
>=20
> #define PGTBL_INITIAL_COUNT (CONFIG_PAGING_LEVELS * 3 - 1)
>=20
> ? However, why is it CONFIG_PAGING_LEVELS that's needed, and not
> CONFIG_PAGING_LEVELS - 1? The top level table is the same as the
> identity map's, isn't it?
The top level table is the same, but I just wanted to be sure that if
DTB size is bigger then 2Mb then we need 2xL0 page tables.

Am I missing something?

~ Oleksii
>=20
> > @@ -296,6 +299,30 @@ unsigned long __init calc_phys_offset(void)
> > =C2=A0=C2=A0=C2=A0=C2=A0 return phys_offset;
> > =C2=A0}
> > =C2=A0
> > +void* __init early_fdt_map(paddr_t fdt_paddr)
>=20
> See earlier remark regarding * placement.
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 09:40:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 09:40:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757232.1166014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRqHr-0003Nj-Kb; Thu, 11 Jul 2024 09:40:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757232.1166014; Thu, 11 Jul 2024 09:40: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 1sRqHr-0003Nc-GU; Thu, 11 Jul 2024 09:40:27 +0000
Received: by outflank-mailman (input) for mailman id 757232;
 Thu, 11 Jul 2024 09:40: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRqHq-0003NW-BF
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 09:40:26 +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 98f351e1-3f69-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 11:40:24 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a7979c3ffb1so47441666b.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 02:40:24 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bda30a24sm3261251a12.86.2024.07.11.02.40.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 02: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: 98f351e1-3f69-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720690824; x=1721295624; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=/f6Z6eMWa2sbcSzD/SLnjmWiOP67Xb549U5LBScDtn0=;
        b=ACUisDROweQ9N8a9KAmu0EhO0eWovAgduUxTDsTc196XPFl2vlMdpkW6LbsfMu7jBO
         fsRG1k5u+f5tt7UmEbIr1YaBY+8RdP7uSgnQe2Wro4ZEQCXUsgokQdXEc34uybIRLFNB
         wL6Q04LlrqeKCvbOGT6o/jHB6njWmHu+3SnXrvui5k2Pgf/6LBOXft4WHEVURA7VDpWM
         JS1wzmL9OJxuDUIIxnmrhlIwD+46DPQ9EJdpmTOAnCu1q11Yzn6WE8nunX847l8r1vhn
         xr0PmcA9eKULnyf4+8UegdcSdMdoke2QN5BrZhkitx9Fi5vTl2w5DgEiKe+XcrML+lWj
         iDEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720690824; x=1721295624;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=/f6Z6eMWa2sbcSzD/SLnjmWiOP67Xb549U5LBScDtn0=;
        b=DWcRueVJTRAdggDzt8Wro/oLlNPsi4Qj2FpoZUUlpmtgpETycO12BGjqJwiPRG5gWA
         K4EC9mKUXEnY6M1jo46kAsiLL/BldJ4f/vZqgAb8u0kp97WJoryDEj1/fJjh4t03gMcp
         6OG86G++qWhsKHbjhR5nIKN+TdKjGQnGNv7Nqk5vePPtR2N5BgBFhq+XN9JURW1hq+JR
         a/Tc9gXblAZjPUIDMMhN7BeKUnouBesZmwkkupCdciANSeODfmK+SyYa3HH9ES1blsHb
         Rb4hsTgJQox3/nXO/Dxow2rlUFpQ63GaXy1n9pvBwDt9mqhyD3cNdF9onVrFDpy2dAAY
         6ZnQ==
X-Forwarded-Encrypted: i=1; AJvYcCVMH3FYg5vKuI3xko3zyi4tudX5YiqCbuxs3kGXgrMzAEcMK/2H3gYSph9OWVxGHPvv+TI6VFM6QSsyj02lxOaLf+E/HN5xMokNTPa4utM=
X-Gm-Message-State: AOJu0YyJANhzHGH2Dppiyaz6xqA42Sq7Jz6Lxcma3Va0zc2F+yi9uE0D
	PtY6BYusrAGpRQD47QGooiLDlueL14ZGKW355nxv2ilMB0C/lbej
X-Google-Smtp-Source: AGHT+IGyJYW8B5zdFqX1BSHd7d6L5PR7eurBXD2lMyNKDg8cNtfd/aWeiPUBWH2j5589S8VkkUm5Hg==
X-Received: by 2002:aa7:d0d5:0:b0:58e:2f7c:a9c with SMTP id 4fb4d7f45d1cf-594bc7cab19mr5986348a12.26.1720690823367;
        Thu, 11 Jul 2024 02:40:23 -0700 (PDT)
Message-ID: <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 11:40:22 +0200
In-Reply-To: <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
	 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
	 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-10 at 14:38 +0200, Jan Beulich wrote:
> On 03.07.2024 12:42, Oleksii Kurochko wrote:
> > Except mapping of FDT, it is also printing command line passed by
> > a DTB and initialize bootinfo from a DTB.
>=20
> I'm glad the description isn't empty here. However, ...
>=20
> > --- a/xen/arch/riscv/riscv64/head.S
> > +++ b/xen/arch/riscv/riscv64/head.S
> > @@ -41,6 +41,9 @@ FUNC(start)
> > =C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 jal=C2=A0=C2=A0=C2=A0=
=C2=A0 setup_initial_pagetables
> > =C2=A0
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mv=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 a0, s1
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 jal=C2=A0=C2=A0=C2=A0=C2=A0=
 fdt_map
> > +
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Calculate proper VA=
 after jump from 1:1 mapping */
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 la=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 a0, .L_primary_switched
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sub=C2=A0=C2=A0=C2=A0=
=C2=A0 a0, a0, s2
>=20
> ... it could do with clarifying why this needs calling from assembly
> code. Mapping the FDT clearly looks like something that wants doing
> from start_xen(), i.e. from C code.
fdt_map() expected to work while MMU is off as it is using
setup_initial_mapping() which is working with physical address.

>=20
> > @@ -33,15 +35,34 @@ static void test_macros_from_bug_h(void)
> > =C2=A0=C2=A0=C2=A0=C2=A0 printk("WARN is most likely working\n");
> > =C2=A0}
> > =C2=A0
> > +void __init fdt_map(paddr_t dtb_addr)
> > +{
> > +=C2=A0=C2=A0=C2=A0 device_tree_flattened =3D early_fdt_map(dtb_addr);
> > +=C2=A0=C2=A0=C2=A0 if ( !device_tree_flattened )
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 printk("wrong FDT\n");
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 die();
> > +=C2=A0=C2=A0=C2=A0 }
> > +}
> > +
> > =C2=A0void __init noreturn start_xen(unsigned long bootcpu_id,
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 paddr_t dtb_addr)
> > =C2=A0{
> > +=C2=A0=C2=A0=C2=A0 size_t fdt_size;
> > +=C2=A0=C2=A0=C2=A0 const char *cmdline;
> > +
> > =C2=A0=C2=A0=C2=A0=C2=A0 remove_identity_mapping();
> > =C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0 trap_init();
> > =C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0 test_macros_from_bug_h();
> > =C2=A0
> > +=C2=A0=C2=A0=C2=A0 fdt_size =3D boot_fdt_info(device_tree_flattened, d=
tb_addr);
>=20
> You don't use the return value anywhere below. What use is the local
> var
> then?
I returned just for debug ( to see what is the fdt size ), it can be
dropped now.

~ Oleksii

>=20
> Jan
>=20
> > +=C2=A0=C2=A0=C2=A0 cmdline =3D boot_fdt_cmdline(device_tree_flattened)=
;
> > +=C2=A0=C2=A0=C2=A0 printk("Command line: %s\n", cmdline);
> > +=C2=A0=C2=A0=C2=A0 cmdline_parse(cmdline);
> > +
> > =C2=A0=C2=A0=C2=A0=C2=A0 printk("All set up\n");
> > =C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0 for ( ;; )
>=20



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 09:42:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 09:42:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757236.1166023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRqJJ-0003tw-TC; Thu, 11 Jul 2024 09:41:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757236.1166023; Thu, 11 Jul 2024 09: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 1sRqJJ-0003tp-QQ; Thu, 11 Jul 2024 09:41:57 +0000
Received: by outflank-mailman (input) for mailman id 757236;
 Thu, 11 Jul 2024 09:41: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRqJI-0003tj-Az
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 09:41:56 +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 ceb04af9-3f69-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 11:41:54 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a77e6dd7f72so81042966b.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 02:41:54 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7985483a9bsm101025266b.109.2024.07.11.02.41.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 02:41: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: ceb04af9-3f69-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720690914; x=1721295714; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=U4WxI0+QsJ290d4ck/Bl8pUCYOeiMnbr0rArZs+hpa4=;
        b=bhiDjeh18g6rvR+wxA59ND43zxqJV7tsDow4VuMjp+6iRlwuYb44+0NDRk3RsrI6gh
         G35cu8eWLuC4MAbNpzyrUZFCMeIvvyYDmRqXXl/fpPlSD+AggcAQ6P+js0j06XCarQTC
         oxrbRrXB9HGITy3ANj9d7zWsUdSz6d1SBAaUNdC2dlA42Yk12MKp47iu4yPBOWLMuqaq
         S6fZAVsgsNKFpTep6nAdRXEYBwwokSe3su7UbYj5OCFW4xaYHxn9VXNZZWE/g/u1KFuz
         m3EmHWCh3uTwSqtDVBP4nVFhxR1mIwEZtC6aozNjzQ75wjrLfVuotzr2F+XQqgpYKaDN
         oGLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720690914; x=1721295714;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=U4WxI0+QsJ290d4ck/Bl8pUCYOeiMnbr0rArZs+hpa4=;
        b=ulNjylj5v88VGk8P2/GrSH2SF4jt9W+p8xh3bSTRwUWAxDkKvCHnXKLkzyrojk0bTg
         ITf4rn6W65s9EU5B8eZMfp39VOuLD9wHm7a6RltpSDiAYosyPHm1yMERbaHLdNUpwPHB
         1eEQT2IdQm8cbE/QwO7jz0tqcMJUthXqVwvS9PpJyWDAcgdzaiPhrLBo/+PV2dPCEfQN
         aJ4cF4wTr3ghH9rUy5CMBVVyP+4ZZ8ZOc2J34lpFI1oCsnx4wzoXgIp4IKVqmeZ30gjR
         NoLko/q80a6FcKCB0YR6sBefLf0UnUP4h9kxkP/1dCdtk3q9+1oO0UeTJ103bcS4D4zf
         JX3g==
X-Forwarded-Encrypted: i=1; AJvYcCWspB6TVct4YK0ahpCne5ZTNqnM0F0s0bY3VQ6bf0hKM5Dq+NLuugKbDR2q7A2oT8x+KFWz/whqXBlv7wVOvBhG7Lmvr9xT5TbO6ydUVjk=
X-Gm-Message-State: AOJu0YyFps5aP6pSXIRNGwBTG4g7McM2iKE3PxoC0LCANY7dbw6FWpWd
	2nIt+SE0qZzSvHjLbkaEuNmDo1snE+yGGK4n8Kp/BdkfQJP6SkXn
X-Google-Smtp-Source: AGHT+IG4gK1LIbfa3BVOQAYPscAc+jT6mrpXMdyyOhuUH9RDDLqq3kvCLrVqS3FEGZXoJxQpkFeZ0w==
X-Received: by 2002:a17:906:f189:b0:a77:cca9:b216 with SMTP id a640c23a62f3a-a780b6fd816mr505858866b.33.1720690913869;
        Thu, 11 Jul 2024 02:41:53 -0700 (PDT)
Message-ID: <6777e78ac090c78a5f6778804b0527f39347dec3.camel@gmail.com>
Subject: Re: [PATCH v1 1/5] xen/device-tree: Move Arm's setup.c bootinfo
 functions to common
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Shawn Anastasio <sanastasio@raptorengineering.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>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>, xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 11:41:52 +0200
In-Reply-To: <600ad88a-8880-485b-be1e-43942a1b8615@suse.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
	 <c656f0d08d4c4b515c99848b84db4171ab132f19.1720002425.git.oleksii.kurochko@gmail.com>
	 <b3c5b6d3-561d-46d0-bc1b-1b2e3cbeeba2@suse.com>
	 <d3b9070442e0ebca82ce0dd5257fe91eef4755cf.camel@gmail.com>
	 <600ad88a-8880-485b-be1e-43942a1b8615@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Thu, 2024-07-11 at 11:21 +0200, Jan Beulich wrote:
> On 11.07.2024 11:00, Oleksii wrote:
> > On Wed, 2024-07-10 at 12:23 +0200, Jan Beulich wrote:
> > > On 03.07.2024 12:42, Oleksii Kurochko wrote:
> > > > From: Shawn Anastasio <sanastasio@raptorengineering.com>
> > > >=20
> > > > Arm's setup.c contains a collection of functions for parsing
> > > > memory
> > > > map
> > > > and other boot information from a device tree. Since these
> > > > routines
> > > > are
> > > > generally useful on any architecture that supports device tree
> > > > booting,
> > > > move them into xen/common/device-tree.
> > > >=20
> > > > Suggested-by: Julien Grall <julien@xen.org>
> > > > Signed-off-by: Shawn Anastasio
> > > > <sanastasio@raptorengineering.com>
> > > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > > > ---
> > > > Changes in V5:
> > > > =C2=A0- add xen/include/xen/bootfdt.h to MAINTAINERS file.
> > > > =C2=A0- drop message "Early device tree parsing and".
> > > > =C2=A0- After rebase on top of the current staging the following
> > > > changes
> > > > were done:
> > > > =C2=A0=C2=A0 - init bootinfo variable in <common/device-tree/bootin=
fo.c>
> > > > with
> > > > BOOTINFO_INIT;
> > > > =C2=A0=C2=A0 - update the code of dt_unreserved_regions():
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_STATIC_SHM related chan=
ges and getting of
> > > > reserved_mem
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bootinfo_get_shmem() ??
> > > > =C2=A0=C2=A0 - update the code of meminfo_overlap_check():
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 add check ( INVALID_PADDR =3D=
=3D bank_start ) to if case.
> > > > =C2=A0=C2=A0 - update the code of check_reserved_regions_overlap():
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_STATIC_SHM related chan=
ges.
> > > > =C2=A0=C2=A0 - struct bootinfo was updated ( CONFIG_STATIC_SHM chan=
ges )
> > > > =C2=A0=C2=A0 - add shared_meminfo ( because of CONFIG_STATIC_SHM )
> > > > =C2=A0=C2=A0 - struct struct membanks was update with __struct grou=
p so
> > > > <xen/kernel> is
> > > > =C2=A0=C2=A0=C2=A0=C2=A0 neeeded to be included in bootfdt.h
> > > > =C2=A0=C2=A0 - move BOOTINFO_ACPI_INIT, BOOTINFO_SHMEM_INIT,
> > > > BOOTINFO_INIT to
> > > > generic bootfdt.h
> > > > =C2=A0=C2=A0 - bootinfo_get_reserved_mem(), bootinfo_get_mem(),
> > > > bootinfo_get_acpi(),
> > > > =C2=A0=C2=A0=C2=A0=C2=A0 bootinfo_get_shmem() and bootinfo_get_shme=
m_extra() were
> > > > moved
> > > > to xen/bootfdt.h
> > > > =C2=A0- s/arm32/CONFIG_SEPARATE_XENHEAP/
> > > > =C2=A0- add inclusion of <xen/macros.h> because there are function
> > > > in
> > > > <xen/bootfdt.h> which
> > > > =C2=A0=C2=A0 are using container_of().
> > >=20
> > > Just to mention it: This is confusing. The series is tagged "v1".
> > > I
> > > understand
> > > you took Shawn's work, which had already undergone revisions. But
> > > then imo you
> > > want to at least clarify how your v1 relates to his v4 or v5,
> > > i.e.
> > > then making
> > > clear to the reader whether all of the changes above were
> > > actually
> > > done by you
> > > on top of an earlier v4, or whether you took the earlier v5
> > > verbatim.
> > That is why I wrote "Changes in v5" to show that these changes were
> > done on top of v4 version of Shawn's series, so what is mentioned
> > in v5
> > here it is what was done by me.
>=20
> Except that what you sent is v1, not v5.
>=20
> > I'll reword that and probably I shouldn't drop "Changes in
> > v4,3,2,1"
> > from Shawn's patch.
>=20
> I don't think you should drop anything. You want to clarify
> relationship
> of the version of your series with that of Shawn's earlier one. Or
> you'd
> want to continue numbering from what the previous series had, yet
> that
> may then also end up confusing if Shawn resumed work there.
Oh, I understood now what you meant. The Patch should be with the name:
[PATCH *v5* 1/5] xen/device-tree: Move Arm's setup.c bootinfo functions
to common

I will update that. Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 09:50:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 09:50:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757246.1166033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRqRk-0005l5-NV; Thu, 11 Jul 2024 09:50:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757246.1166033; Thu, 11 Jul 2024 09:50: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 1sRqRk-0005ky-Kq; Thu, 11 Jul 2024 09:50:40 +0000
Received: by outflank-mailman (input) for mailman id 757246;
 Thu, 11 Jul 2024 09: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=n1Hg=OL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRqRk-0005ks-2q
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 09:50:40 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 073c592c-3f6b-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 11:50:38 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2eeb1ba0468so6947151fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 02:50: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
 d9443c01a7336-1fbb6ad5af6sm46619185ad.288.2024.07.11.02.50.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 02:50: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: 073c592c-3f6b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720691438; x=1721296238; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=d2v0rIS9sJtQfattGPiy04YQGflp7Gjr6UGI3CrWeKI=;
        b=AxoEzxEREUntj0rMSFdDUEkwXhFyD4uQVCFVmb7ZFUOFWpypNgwSYSn6uJkWCkUOpF
         nzKQRoA3uIpSLqJqMX/u36Jlk2pJS9djPQSIXOc/i9Tn8C8lGRZYS7O0qMYIAbk60PEB
         ZbEtlAljyr7bEYxf87dyxikbK/4nO+Hoh5lAiuD3/rjdhVfphAUrgvEy5J1q+s+Ida9f
         aDFm9tIS1KdVWP2c9RTcmhOS3RwFENhyNM49tZCKJ3i7EgnsE3spG+c3icN7nyQrDPSE
         v1t4J6Jup9lqr7aoMLgW8PHCZ71HDiqnalo/d5AL4nS7CcuK7B9Ev6zQxbWv0KZTmuCL
         4L/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720691438; x=1721296238;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=d2v0rIS9sJtQfattGPiy04YQGflp7Gjr6UGI3CrWeKI=;
        b=MWBqB16P2gaNZfHbQ+5uaCUgYZcj1DDgyspFpA7dSxGvx2c5LQWkTAs3cZQu9SwK5c
         2g9FKGSaFg4yO2FIfrwcJemZ+EQSI4tyPuut33D4CaPflIhcNlYOU/L2cvLBvZWOzsb1
         0p98Ad4rOAgO9XdITAjJ7J91e62HVetO8y/1PJ24TFXOIMBcYyYcDzL2JN5Xjlgb5GDd
         seoPDFOT1zgB+xMCY6TYqyrUt368PAsh/xSOoOrSuRFmwx01bcaLuLecdRTBrjLHiLgn
         2WJqPlLg3piCXzTeB5vKQd6wg+0ogxq6Sl841jDAaZpBhtPMxnqSa30MOulKVetRg477
         s9eg==
X-Forwarded-Encrypted: i=1; AJvYcCUOvVNHpUHm+O4751ozs0m1l/pS+O8H5JlbqTX26Vu5yVPPpdMZc2AmNQ+BG/f6FuztNWP+ph8eYSpssmWqMCDdqdMmhxkDV6PNECkNdtI=
X-Gm-Message-State: AOJu0YxdkGVSp5m8xjSZG5sC53AyimAHk2z13Jy3Vj8oSoR6URvmI95W
	/EBY1dJZh0QGPHJkHwcjrOtZXP/OnLZTGHysGBPELCcS1Q+eCSyCrn9BOXDnRw==
X-Google-Smtp-Source: AGHT+IHsbDYBdxaX2UJsZAIFlUBb6fT6z78nta/kDFA8wjLCiYfGcyGNJP5ZcAP66+cuUEfClfOKCA==
X-Received: by 2002:a2e:a78b:0:b0:2ee:6b86:b0aa with SMTP id 38308e7fff4ca-2eeb30e3693mr64592991fa.17.1720691438420;
        Thu, 11 Jul 2024 02:50:38 -0700 (PDT)
Message-ID: <6802e970-f013-419c-a83e-3adc16541afd@suse.com>
Date: Thu, 11 Jul 2024 11:50:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 4/5] xen/riscv: introduce device tree maping function
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <efd3e6a8c526d227f8db06779c65ffda42a695d6.1720002425.git.oleksii.kurochko@gmail.com>
 <91e1ff5e-a27a-4c59-b5b0-88414d504694@suse.com>
 <31b8683537e5dd9df1d64178f752bae56daad633.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <31b8683537e5dd9df1d64178f752bae56daad633.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.07.2024 11:31, Oleksii wrote:
> On Wed, 2024-07-10 at 12:38 +0200, Jan Beulich wrote:
>> On 03.07.2024 12:42, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/include/asm/config.h
>>> +++ b/xen/arch/riscv/include/asm/config.h
>>> @@ -74,6 +74,9 @@
>>>  #error "unsupported RV_STAGE1_MODE"
>>>  #endif
>>>  
>>> +#define XEN_SIZE                MB(2)
>>> +#define XEN_VIRT_END            (XEN_VIRT_START + XEN_SIZE)
>>
>> Probably wants accompanying by an assertion in the linker script. Or
>> else
>> how would one notice when Xen grows bigger than this?
> I use XEN_SIZE in the linker script here:
>  ASSERT(_end - _start <= MB(2), "Xen too large for early-boot
> assumptions")

And that's the problem: You want to switch to using XEN_SIZE there. There
should never be two separate constant that need updating at the same time.
Keep such to a single place.

>>> @@ -99,6 +102,9 @@
>>>  #define VMAP_VIRT_START         SLOTN(VMAP_SLOT_START)
>>>  #define VMAP_VIRT_SIZE          GB(1)
>>>  
>>> +#define BOOT_FDT_VIRT_START     XEN_VIRT_END
>>> +#define BOOT_FDT_VIRT_SIZE      MB(4)
>>
>> Is the 4 selected arbitrarily, or derived from something?
> Yes, it was chosen arbitrarily. I just checked that I don't have any
> DTBs larger than 2 MB, but decided to add a little extra space and
> doubled it to an additional 2 MB.

Code comment then, please, or at the very least mention of this in the
description.

>>> @@ -39,9 +42,11 @@ static unsigned long __ro_after_init
>>> phys_offset;
>>>   * isn't 2 MB aligned.
>>>   *
>>>   * CONFIG_PAGING_LEVELS page tables are needed for the identity
>>> mapping,
>>> - * except that the root page table is shared with the initial
>>> mapping
>>> + * except that the root page table is shared with the initial
>>> mapping.
>>> + *
>>> + * CONFIG_PAGING_LEVELS page tables are needed for device tree
>>> mapping.
>>>   */
>>> -#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
>>> +#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 3 + 1 +
>>> 1)
>>
>> Considering what would happen if two or three more of such
>> requirements
>> were added, maybe better
>>
>> #define PGTBL_INITIAL_COUNT (CONFIG_PAGING_LEVELS * 3 - 1)
>>
>> ? However, why is it CONFIG_PAGING_LEVELS that's needed, and not
>> CONFIG_PAGING_LEVELS - 1? The top level table is the same as the
>> identity map's, isn't it?
> The top level table is the same, but I just wanted to be sure that if
> DTB size is bigger then 2Mb then we need 2xL0 page tables.

Makes sense, but then needs expressing that way (by using
BOOT_FDT_VIRT_SIZE). Otherwise (see also above) think of what will
happen if BOOT_FDT_VIRT_SIZE is updated without touching this
expression.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 09:54:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 09:54:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757250.1166043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRqVE-0006Kq-4m; Thu, 11 Jul 2024 09:54:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757250.1166043; Thu, 11 Jul 2024 09:54: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 1sRqVE-0006Kj-21; Thu, 11 Jul 2024 09:54:16 +0000
Received: by outflank-mailman (input) for mailman id 757250;
 Thu, 11 Jul 2024 09:54:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n1Hg=OL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRqVC-0006Kd-On
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 09:54:14 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8659669b-3f6b-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 11:54:12 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2eea8ea8c06so8222131fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 02:54: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
 98e67ed59e1d1-2ca3bd7892dsm1928269a91.0.2024.07.11.02.54.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 02:54: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: 8659669b-3f6b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720691651; x=1721296451; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=F6MFPjY7ifW6lYh9gHc/whTSrWVY7Ezjbz17FWR61fo=;
        b=DowXnP++uWEpHP1cow0mvw34wKUsOESyBMA6JUHnlcBUUMmFjhqKY2A+uMrIgsMeAg
         X8H6uBuM5jU562tIZmdpQcDPsuEpVOUbcDf0nXp+te3IN4S9NXviiViRYrp+3lIPmg2f
         VJupuIzPBeOJW49t/yoprrUy838JgB65r7a1MgcUVylcl3RNGCdkoZJ5zCa9LR4OaHPz
         4jRRzt3reP2IfBo9m8IfJSLdiuj+P4LcGv/H9n3pKj+DsqeLxxnQwNES7He7OauHUF6D
         PmhSdAgvdWl/Gj0olLB2lONUPP2/9io2yMNjzXJWzqcYQHOFNOZ5+spMMdw6di1m2kdt
         L/Bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720691651; x=1721296451;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F6MFPjY7ifW6lYh9gHc/whTSrWVY7Ezjbz17FWR61fo=;
        b=ID7JJrq3e1BSLdQXkDe6crf2FcxWuzosRxPPUfFfMXK28vzTSUXqW+wR6nYr1uvav0
         JNgqkIg5f4xQRbPtu+tagcuxxnDJnxKxNUZcJeqFxZnQ5wPXvXW3WeCFCtw7Er4ZQ2fF
         4exfhMddNWPmgWpeWKG0gEB7ClC2PoV/8Qi5SzQXXhn6tUJ6/3qbeHRfPdlmEdNn+Bgw
         ms96wCewScnGdb2bXMvHWKCtgz3ySeH5TWImteK+BiPKlTEpIcSBVVQakwcJEJMcjbkB
         E2LeYHiebHSisUrNDAb1rlwWWDnN9oNzC4z8wdQh3zMyGsy9w6fdzmgK4LZesGl/DV4D
         iY5A==
X-Forwarded-Encrypted: i=1; AJvYcCX4acoaiJzGrjHQKUbXrascj2GcOj9JdofBwgWFjsffbyvRgOc9sFfhBM1DLjYTKNqqflfC3KxzGtmuwY1eBpV2cwkhoxlmon+q2z14TMI=
X-Gm-Message-State: AOJu0Yz0rQfw+tgT6k390MRTkSgyyOWxwrSkKKNC1ZON0drK95Cofwu+
	ZkXKI3reguoeGLiIKdVnLLY5i6LOv6rn9SAKV0zQrNvWVHpdEDs6zW46K1Qp+qj+EGkvTwXznOk
	=
X-Google-Smtp-Source: AGHT+IEBr0ESh955fUjyCWsQ4ZYuqoRXg38Mdv/RbVlemXEL50eVBmhlYtBUXaqpdo5WsEVe21mhvw==
X-Received: by 2002:a2e:86d5:0:b0:2eb:e634:fee6 with SMTP id 38308e7fff4ca-2eeb30e3a0dmr52379721fa.18.1720691651605;
        Thu, 11 Jul 2024 02:54:11 -0700 (PDT)
Message-ID: <9592e857-bf1c-4e26-acd7-dfb5bb12103e@suse.com>
Date: Thu, 11 Jul 2024 11:54:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
 <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.07.2024 11:40, Oleksii wrote:
> On Wed, 2024-07-10 at 14:38 +0200, Jan Beulich wrote:
>> On 03.07.2024 12:42, Oleksii Kurochko wrote:
>>> Except mapping of FDT, it is also printing command line passed by
>>> a DTB and initialize bootinfo from a DTB.
>>
>> I'm glad the description isn't empty here. However, ...
>>
>>> --- a/xen/arch/riscv/riscv64/head.S
>>> +++ b/xen/arch/riscv/riscv64/head.S
>>> @@ -41,6 +41,9 @@ FUNC(start)
>>>  
>>>          jal     setup_initial_pagetables
>>>  
>>> +        mv      a0, s1
>>> +        jal     fdt_map
>>> +
>>>          /* Calculate proper VA after jump from 1:1 mapping */
>>>          la      a0, .L_primary_switched
>>>          sub     a0, a0, s2
>>
>> ... it could do with clarifying why this needs calling from assembly
>> code. Mapping the FDT clearly looks like something that wants doing
>> from start_xen(), i.e. from C code.
> fdt_map() expected to work while MMU is off as it is using
> setup_initial_mapping() which is working with physical address.

Hmm, interesting. When the MMU is off, what does "map" mean? Yet then
it feels I'm misunderstanding what you're meaning to tell me ...

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 09:55:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 09:55:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757255.1166054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRqW3-0006te-L1; Thu, 11 Jul 2024 09:55:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757255.1166054; Thu, 11 Jul 2024 09: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 1sRqW3-0006tX-Gb; Thu, 11 Jul 2024 09:55:07 +0000
Received: by outflank-mailman (input) for mailman id 757255;
 Thu, 11 Jul 2024 09: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRqW2-0006Kd-7y
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 09:55:06 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a5a514bc-3f6b-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 11:55:04 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a77c0b42a8fso267876166b.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 02:55:04 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a8542dfsm238664666b.150.2024.07.11.02.55.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 02:55: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: a5a514bc-3f6b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720691704; x=1721296504; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:autocrypt:subject:from:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=neYNViyhVsf3lU8uxdFkkl5GW3h1aL2JLq0NyBQIp3E=;
        b=qrI1sH8Az/KP4pKPa6EzWAhJeexeItH69D6wHZy+MeGFcKaIarlDFHS9jWS7Y9UgFa
         5LK4IfQWxp7r+EWEPPnvtvLiusDK2Q26wbKW4D5r/Wmy+Fx2h3mTPC6qjb36+VYjT46C
         Y0MmyXCEUh6iNYvDX4jUNa2llCMSuzsrN/gr0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720691704; x=1721296504;
        h=content-transfer-encoding:cc: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=neYNViyhVsf3lU8uxdFkkl5GW3h1aL2JLq0NyBQIp3E=;
        b=jXw0UTvJs9PQ2Wu6HX+tKT+00A9auTYwgdWjARXwA7jsXz8FwGjUeo2XlAq0E/XtL6
         N9osNKO4j560z37MOQmOSeZ1b00aMCCYDYx0P1NtOJCvI6NXjnvueI9+yxcSFePPztiK
         CV4JZ4R2xFcfojXGpdygNJAza2vffMSdbR90LU3jUShL6v6AsB6rqSeC5Cf0NDIuMEKq
         x+m3vDfeIz2XIRApUy8Q2pG3jIhcCpoKm7FGDXww82dM/bxKOl3E/vOOccFGe5bjCQ/K
         R2SRFeMM/rAgVEHZlS+8Idr2LyRnbk3jXp5WKtZnQuPTD4Pch9tqKndh8eZoCP90lRJE
         H5dg==
X-Gm-Message-State: AOJu0Yy/2AIVCqh3p/XvmBXkfaISmHyNLEfQms5mh6sYHCYksfx25+Pk
	ssV//SWv5VTX3uVCMrw7HCHFKf36WaCjTHqugYJ+LimLVwcqlp48bp3Tc6UghXl6o4ZgN0leUj2
	O
X-Google-Smtp-Source: AGHT+IFcRhgsZNzcuHYjdQKAzaObzV4/JLC3Z4qJS/7IRvQlaTRwvDdkHB/2isa1+zV8T4ErSbLOqg==
X-Received: by 2002:a17:907:3f9e:b0:a77:ca3b:996c with SMTP id a640c23a62f3a-a799216da74mr107976966b.16.1720691703696;
        Thu, 11 Jul 2024 02:55:03 -0700 (PDT)
Message-ID: <73ac0930-828c-4873-a65e-e7c5ad2fbc9d@citrix.com>
Date: Thu, 11 Jul 2024 10:55:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
To: xen-devel <xen-devel@lists.xenproject.org>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [bug] Xen build doesn't fail when required tools are missing
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
Cc: Anthony PERARD <anthony.perard@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <jgrall@amazon.com>,
 Juergen Gross <jgross@suse.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

So I was playing with rebuilding the OpenSUSE Tumbleweed container from
scratch.  (I've ~halfed it's size by correcting the dependencies).

When diffutils is missing (package containing the `cmp` utility), a
build of Xen proceeds as:

make: Entering directory '/build/xen'
make: hostname: No such file or directory
  UPD     include/xen/compile.h
 Xen 4.19-rc
/bin/sh: line 1: cmp: command not found
  UPD     include/compat/.xlat/xen.lst
/bin/sh: line 1: cmp: command not found
  UPD     include/compat/.xlat/arch-x86/pmu.lst
/bin/sh: line 1: cmp: command not found
/bin/sh: line 1: cmp: command not found

without failing.

I assert this is a bad thing and we should see about fixing it.

A separate problem is that none of our docs mention diffutils, and
OpenSUSE is the only distro I've found where they're not pulled in
transitively.  However, I'm planning a large rewrite to README when I've
finished the Gitlab CI cleanup.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 09:57:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 09:57:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757261.1166062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRqXx-0007dL-UR; Thu, 11 Jul 2024 09:57:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757261.1166062; Thu, 11 Jul 2024 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 1sRqXx-0007dE-Rw; Thu, 11 Jul 2024 09:57:05 +0000
Received: by outflank-mailman (input) for mailman id 757261;
 Thu, 11 Jul 2024 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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRqXw-0007d8-GN
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 09:57:04 +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 ec7751fa-3f6b-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 11:57:03 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a77c0b42a8fso268185166b.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 02:57:03 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bbe2cf60sm3262158a12.26.2024.07.11.02.57.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 02: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: ec7751fa-3f6b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720691822; x=1721296622; 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=fADVl2ZbJJqU2NKCC3x8ukvBzdGwNakoSCLkV/AdIVY=;
        b=ap1qLhYty4ar30AGjxVHBTXgX5AOcnWjKDyxTdBPW+7VR53M4LAOWwLdgPgu+tiC0V
         8zlRxV+EYN/aqqGMNnDV9JgRIWYEnhwY7JbvyBA/3P2GGzasoEu8iXWx/5Q0c7jjwH6Z
         yTNMZBRQ8m27cEaVJxKCAQRY6/xZQ2L1B8JQA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720691822; x=1721296622;
        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=fADVl2ZbJJqU2NKCC3x8ukvBzdGwNakoSCLkV/AdIVY=;
        b=qCZ1jpJVbEpwbGv1prjNgL6AFQdPgBbfGvIHK468MWsxoWzrH0Lytk8SnL/5S+kgOE
         noPRKXx9Ud6zVIEmaTCzQd9g4PQG4y+Guq1YSDpu0DyqR5xuD42tAlgjmKCmDOB/ZGGH
         M9LaPYM8v5n4kO35+CpBuJC5sU7/9holC+FCfkQWd0G2KQYi0aM0mB+e9+SkmkM9MW6Y
         uja6nVmxTupVFCmA7LpV6xTBdOeRgXwH6xF997s6s/hWGEpMMZF2EGte92KIbZYL/pP0
         wpuKQDkWfdYj+4JeTGbqpAsONIHR7F8eC3mTX4InH+xUU5UA9JJyVJ98TBiqqJZWtM8B
         E62w==
X-Gm-Message-State: AOJu0YwpjdmdrIQKyeWm0Qml79Rnw8GJK815jKP9UxPnCctEPZkwJOPo
	aOYzN/MJyRrfp0Lh38EBKPSgBazQnK1ZxXNC4cf8dTTfSwq4kHkViZpQ4KNAccIM7iaNfI9yE1k
	6
X-Google-Smtp-Source: AGHT+IGlXLYsUvg7zJZs5rNe9OhwJneMH2wPcUYiCqCZ3gBT8kHB4tQp7Fh40Ffbn1ab7KrxY+qa1w==
X-Received: by 2002:a17:907:7b9e:b0:a77:cd4f:e4f1 with SMTP id a640c23a62f3a-a798a486724mr193863266b.27.1720691822218;
        Thu, 11 Jul 2024 02:57:02 -0700 (PDT)
Message-ID: <d1aab887-95d7-4597-8c34-1d78e8029d70@citrix.com>
Date: Thu, 11 Jul 2024 10:57:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [bug] Xen build doesn't fail when required tools are missing
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <jgrall@amazon.com>, Juergen Gross <jgross@suse.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <73ac0930-828c-4873-a65e-e7c5ad2fbc9d@citrix.com>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <73ac0930-828c-4873-a65e-e7c5ad2fbc9d@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Bah - correcting Anthony's email (again).

(I clearly need to purge my address book more thoroughly.)

On 11/07/2024 10:55 am, Andrew Cooper wrote:
> So I was playing with rebuilding the OpenSUSE Tumbleweed container from
> scratch.  (I've ~halfed it's size by correcting the dependencies).
>
> When diffutils is missing (package containing the `cmp` utility), a
> build of Xen proceeds as:
>
> make: Entering directory '/build/xen'
> make: hostname: No such file or directory
>   UPD     include/xen/compile.h
>  Xen 4.19-rc
> /bin/sh: line 1: cmp: command not found
>   UPD     include/compat/.xlat/xen.lst
> /bin/sh: line 1: cmp: command not found
>   UPD     include/compat/.xlat/arch-x86/pmu.lst
> /bin/sh: line 1: cmp: command not found
> /bin/sh: line 1: cmp: command not found
>
> without failing.
>
> I assert this is a bad thing and we should see about fixing it.
>
> A separate problem is that none of our docs mention diffutils, and
> OpenSUSE is the only distro I've found where they're not pulled in
> transitively.  However, I'm planning a large rewrite to README when I've
> finished the Gitlab CI cleanup.
>
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 10:08:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 10:08:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757267.1166072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRqic-0001TS-T2; Thu, 11 Jul 2024 10:08:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757267.1166072; Thu, 11 Jul 2024 10: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 1sRqic-0001TL-QV; Thu, 11 Jul 2024 10:08:06 +0000
Received: by outflank-mailman (input) for mailman id 757267;
 Thu, 11 Jul 2024 10:08: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=n1Hg=OL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRqia-0001Ru-S7
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 10:08:04 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7616d0c8-3f6d-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 12:08:03 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2eaafda3b5cso5879931fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 03:08: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
 d9443c01a7336-1fbb6ad55b4sm46890845ad.293.2024.07.11.03.07.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 03:08: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: 7616d0c8-3f6d-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720692483; x=1721297283; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4g8+S+YbuKqqSHo2iZBiUwb/lsd1u9Z17blCpHpPRFw=;
        b=RKWeuIqsInOwBuOnDODBVcJxfFiGR2ppdYAAUcKwhO4x25XIzfz8TCbq4RTc4ttes4
         Ae8svLpuWehsQ6nClTdzNkWKNwm08e3iGnxJ32FINtqrFUte1Ybe/TTWcz7UDQGW7Rj9
         KT04zhG56SUQDiBOSvckd9PBodGimcnPgUZHovpMjC8rCFPpsK89Zd1Skp+9zxLbxFUl
         vXnfoQV6I5LOfddm7+jpC37pCtxUDmM+0o55yPwSP5VdDhXIV9sS4x/pBX4MoTs6b5Uo
         6F0LQnhnsaSQGYKoAmG59jxzNJjVDonXz32HFnZqgruVTazpHxZmMnF11XmqgeIvngtG
         CrqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720692483; x=1721297283;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4g8+S+YbuKqqSHo2iZBiUwb/lsd1u9Z17blCpHpPRFw=;
        b=L1TRhqYBjonMPSpfc7HvBwmEpRIAdyYzK3pWiVszCwQcKUU63XrTKxPJkub8gOrFOB
         Up+d1ntK4w1zkovDMDMQ2PhPMmhFUqyDTP9enYxlU8qflRnfl2WHjuNs9w1siVZhhuup
         e+HUguqBinBfAWiCiibvqOP3EfUAppugOE6XYv3fMiaBHw2iPanSNRuIeFUuPnMaohxh
         c+C6nPmH7MNdOh9U1iF7mGigFjmlVMAYB9jNAg6IAHd+JPFg2D0fwIiaeIKh1vuAN4T1
         FKPkk1wmkbBi8ZOsQbq4Iltpq/NMeVU7IIcVxX9ew9xZrBUwHpU5fs2FOJcrNauicxJo
         9s9A==
X-Forwarded-Encrypted: i=1; AJvYcCWuo+x2yV+nt3jYmyquK2WOlzDQT77j27Ajwm2MUOzwjsZ0eITJ72YEyYUJgXr14u821psN4E3lrvXpY0iGPYjZndlATMX9VznGbzsQ4Dc=
X-Gm-Message-State: AOJu0Yx+D4ob+QBvaG9V1GpYsK5LCorSAcTOppvwXTWA89PlAc+vwdws
	eNSa94HJJz8WAEwlNg07Rom4bGbUGSOP8IkiYWCwuiBCZt3u9x/kZ0gCkUdZJBujMyAyxNgbAeo
	=
X-Google-Smtp-Source: AGHT+IGW9o/2tsuZjn82sumZ10VP6MkZXwO1afRJwbwUrCBxjUbhXHq4AfQiEek2xV+R/zqu2O3ZNQ==
X-Received: by 2002:a2e:9259:0:b0:2ec:5843:2fbd with SMTP id 38308e7fff4ca-2eeb3188e5cmr48685581fa.41.1720692483148;
        Thu, 11 Jul 2024 03:08:03 -0700 (PDT)
Message-ID: <3fdce63b-097b-4fcd-9b69-1f82dae71340@suse.com>
Date: Thu, 11 Jul 2024 12:07:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [bug] Xen build doesn't fail when required tools are missing
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <jgrall@amazon.com>, Juergen Gross <jgross@suse.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Anthony Perard <anthony@xenproject.org>,
 xen-devel <xen-devel@lists.xenproject.org>
References: <73ac0930-828c-4873-a65e-e7c5ad2fbc9d@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: <73ac0930-828c-4873-a65e-e7c5ad2fbc9d@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.07.2024 11:55, Andrew Cooper wrote:
> So I was playing with rebuilding the OpenSUSE Tumbleweed container from
> scratch.  (I've ~halfed it's size by correcting the dependencies).
> 
> When diffutils is missing (package containing the `cmp` utility), a
> build of Xen proceeds as:
> 
> make: Entering directory '/build/xen'
> make: hostname: No such file or directory
>   UPD     include/xen/compile.h
>  Xen 4.19-rc
> /bin/sh: line 1: cmp: command not found
>   UPD     include/compat/.xlat/xen.lst
> /bin/sh: line 1: cmp: command not found
>   UPD     include/compat/.xlat/arch-x86/pmu.lst
> /bin/sh: line 1: cmp: command not found
> /bin/sh: line 1: cmp: command not found
> 
> without failing.

Build-wise that's correct behavior: "cmp" missing means the filechk
rule will update the file, even if in reality it may not need updating.
The resulting build therefore is going to be correct. The error messages
may be irritating, yet if we silenced them you wouldn't have noticed the
missing tool.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 10:26:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 10:26:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757280.1166086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRr0Q-0004s4-Cj; Thu, 11 Jul 2024 10:26:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757280.1166086; Thu, 11 Jul 2024 10:26: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 1sRr0Q-0004rx-A1; Thu, 11 Jul 2024 10:26:30 +0000
Received: by outflank-mailman (input) for mailman id 757280;
 Thu, 11 Jul 2024 10:26: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRr0P-0004rr-79
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 10:26:29 +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 081facd2-3f70-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 12:26:27 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-595856e2336so1186168a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 03:26:28 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bd45a195sm3254437a12.62.2024.07.11.03.26.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 03:26: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: 081facd2-3f70-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720693587; x=1721298387; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=uu0IXftY0NEMOvHAx/ekzyLpp47VYtBHlcSf9BlLyuk=;
        b=IEiX7ny/dCsHhuQ4dT5R0Tq9TYYVUvpi4KU6OhOf73RnGKJfNTkFZWBYcgBZ9Ql1IT
         Nh5xiWRUnfjD2pNFIqBf1WcxZEgxRdb87IZkIZ3079YRl42JKq3nErU4pKGBSqpnFpru
         Vz/0yO4cBCfZSb/QbGjiW7rCysM6CQYCdQMpaYy7W2+HQFWd60+x5pUuu343lWOKP7iP
         AbjSjl21g6CT96MYGOm+JRCZu/kCKf/uaxGR1tsN/HpNonCsyLDoyImbb2xhiuEm3A4+
         6yFhedpX5BsfOq+60ddPWssutjGN2u14y8Fb9wThQtmSS/mBUoYxiLYgNHzN1iDTUBq+
         P8Jw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720693587; x=1721298387;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=uu0IXftY0NEMOvHAx/ekzyLpp47VYtBHlcSf9BlLyuk=;
        b=JE0+4SvyqzMQxAn6to2XlwI/0C9RFChKC4JS7On6iS/PYXLEM3baS6YZbT8cnF6YFK
         jc/izH5sC7ERJSTBrd1H0Xz6tSdRrNaUa05hYVM9o20Jzg/w919tbxGvHGqps3X41qxo
         s4nMDhapPKWpNNfY73jAhiiwICSWMyaw/yPolBkV07s8JR6BtGKtptHv9WZZwJnd4brH
         VIfmBSPqy3hCLiApYRxuoBXOoWs1Cn3xTH10KftRKgDtZXcwDwHJJBmYvntzzRWJZjy4
         lBbp6riPSlu1SM/pPE9YXrGT3rgNXA1Zf+9r0GxcBDO6I5rL9RIJwR4PNE4TXdDccpzI
         1QCA==
X-Forwarded-Encrypted: i=1; AJvYcCX9RQr10aL3OVbAK0kzaa6qhmO3rD0iV/KlB96jYVYtX2Fe1sZAWQimQqdn075qfd8TMaXQXLbaco/3Pl32yLcX4thnn60NQKMG0fixTUs=
X-Gm-Message-State: AOJu0YwG/Hvbzeetttf6RIU8T3d7S4A1U0e07DHMQDn3eVRUtk4bOSgu
	Oq9CiQnSJnTIU+0j/qwBpu6bKnsTBHFYw1IDmznaRMeJcKZoSj+K
X-Google-Smtp-Source: AGHT+IH8gGZYYbLaOsisIP0IKHtYkTxS7FCSq7ItZig6w24P6EBdx3lSMrQeyG0bW895Dzy30okCnQ==
X-Received: by 2002:a05:6402:26c7:b0:57c:9eef:e54 with SMTP id 4fb4d7f45d1cf-5980ced0c69mr1877253a12.5.1720693587349;
        Thu, 11 Jul 2024 03:26:27 -0700 (PDT)
Message-ID: <fda966116ce17b9be0b1a467bd31436a6b5ad225.camel@gmail.com>
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 12:26:26 +0200
In-Reply-To: <9592e857-bf1c-4e26-acd7-dfb5bb12103e@suse.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
	 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
	 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
	 <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
	 <9592e857-bf1c-4e26-acd7-dfb5bb12103e@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Thu, 2024-07-11 at 11:54 +0200, Jan Beulich wrote:
> On 11.07.2024 11:40, Oleksii wrote:
> > On Wed, 2024-07-10 at 14:38 +0200, Jan Beulich wrote:
> > > On 03.07.2024 12:42, Oleksii Kurochko wrote:
> > > > Except mapping of FDT, it is also printing command line passed
> > > > by
> > > > a DTB and initialize bootinfo from a DTB.
> > >=20
> > > I'm glad the description isn't empty here. However, ...
> > >=20
> > > > --- a/xen/arch/riscv/riscv64/head.S
> > > > +++ b/xen/arch/riscv/riscv64/head.S
> > > > @@ -41,6 +41,9 @@ FUNC(start)
> > > > =C2=A0
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 jal=C2=A0=C2=A0=C2=
=A0=C2=A0 setup_initial_pagetables
> > > > =C2=A0
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mv=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 a0, s1
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 jal=C2=A0=C2=A0=C2=A0=
=C2=A0 fdt_map
> > > > +
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Calculate prope=
r VA after jump from 1:1 mapping */
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 la=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 a0, .L_primary_switched
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sub=C2=A0=C2=A0=C2=
=A0=C2=A0 a0, a0, s2
> > >=20
> > > ... it could do with clarifying why this needs calling from
> > > assembly
> > > code. Mapping the FDT clearly looks like something that wants
> > > doing
> > > from start_xen(), i.e. from C code.
> > fdt_map() expected to work while MMU is off as it is using
> > setup_initial_mapping() which is working with physical address.
>=20
> Hmm, interesting. When the MMU is off, what does "map" mean? Yet then
> it feels I'm misunderstanding what you're meaning to tell me ...
Let's look at examples of the code:
1. The first thing issue will be here:
   void* __init early_fdt_map(paddr_t fdt_paddr)
   {
       unsigned long dt_phys_base =3D fdt_paddr;
       unsigned long dt_virt_base;
       unsigned long dt_virt_size;
  =20
       BUILD_BUG_ON(MIN_FDT_ALIGN < 8);
       if ( !fdt_paddr || fdt_paddr % MIN_FDT_ALIGN || fdt_paddr % SZ_2M=
=20
   ||
             fdt_totalsize(fdt_paddr) > BOOT_FDT_VIRT_SIZE )
MMU doesn't now about virtual address of fdt_paddr as fdt_paddr wasn't
mapped.

2. In setup_initial_mapping() we have HANDLE_PGTBL() where pgtbl is a
pointer to physical address ( which also  should be mapped in MMU if we
want to access it after MMU is enabled ):
   #define HANDLE_PGTBL(curr_lvl_num)                                   =
=20
   \
       index =3D pt_index(curr_lvl_num, page_addr);                       =
=20
   \
       if ( pte_is_valid(pgtbl[index]) )                                =
=20
   \
       {                                                                =
=20
   \
           /* Find L{ 0-3 } table */                                    =
=20
   \
           pgtbl =3D (pte_t *)pte_to_paddr(pgtbl[index]);                 =
=20
   \
       }                                                                =
=20
   \
       else                                                             =
=20
   \
       {                                                                =
=20
   \
           /* Allocate new L{0-3} page table */                         =
=20
   \
           if ( mmu_desc->pgtbl_count =3D=3D PGTBL_INITIAL_COUNT )         =
 =20
   \
           {                                                            =
=20
   \
               early_printk("(XEN) No initial table available\n");      =
=20
   \
               /* panic(), BUG() or ASSERT() aren't ready now. */       =
=20
   \
               die();                                                   =
=20
   \
           }                                                            =
=20
   \
           mmu_desc->pgtbl_count++;                                     =
=20
   \
           pgtbl[index] =3D paddr_to_pte((unsigned long)mmu_desc-
   >next_pgtbl,    \
                                       PTE_VALID);                      =
=20
   \
           pgtbl =3D mmu_desc->next_pgtbl;                                =
=20
   \
           mmu_desc->next_pgtbl +=3D PAGETABLE_ENTRIES;                   =
=20
   \
       }
  =20
So we can't use setup_initial_mapping() when MMU is enabled as there is
a part of the code which uses physical address which are not mapped.

We have only mapping for for liner_start <-> load_start and the small
piece of code in text section ( _ident_start ):
    setup_initial_mapping(&mmu_desc,
                          linker_start,
                          linker_end,
                          load_start);

    if ( linker_start =3D=3D load_start )
        return;

    ident_start =3D (unsigned long)turn_on_mmu &XEN_PT_LEVEL_MAP_MASK(0);
    ident_end =3D ident_start + PAGE_SIZE;

    setup_initial_mapping(&mmu_desc,
                          ident_start,
                          ident_end,
                          ident_start);

We can use setup_initial_mapping() when MMU is enabled only in case
when linker_start is equal to load_start.

As an option we can consider for as a candidate for identaty mapping
also section .bss.page_aligned where root and nonroot page tables are
located.

Does it make sense now?

~ Oleksii




From xen-devel-bounces@lists.xenproject.org Thu Jul 11 10:38:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 10:38:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757288.1166096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrCO-0007M6-H1; Thu, 11 Jul 2024 10:38:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757288.1166096; Thu, 11 Jul 2024 10:38: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 1sRrCO-0007Lz-EU; Thu, 11 Jul 2024 10:38:52 +0000
Received: by outflank-mailman (input) for mailman id 757288;
 Thu, 11 Jul 2024 10:38: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=NKZT=OL=inria.fr=fonyuy-asheri.caleb@srs-se1.protection.inumbo.net>)
 id 1sRrCN-0007Lt-8L
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 10:38:51 +0000
Received: from mail2-relais-roc.national.inria.fr
 (mail2-relais-roc.national.inria.fr [192.134.164.83])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c1913c4c-3f71-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 12:38:48 +0200 (CEST)
Received: from zcs2-store8.inria.fr ([128.93.142.6])
 by mail2-relais-roc.national.inria.fr with ESMTP; 11 Jul 2024 12:38:48 +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: c1913c4c-3f71-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=inria.fr; s=dc;
  h=date:from:to:message-id:subject:mime-version;
  bh=UVLk+RUdqghV62y8NC2Zv98pz7e4czl94Qe5q9x3OrI=;
  b=sLXEOEqk20LSlKsvnG9QjPtABGXGs4AgUcdp6CT7LblppSk+Q0CrbY5u
   q5kcA53pX+0vmThJYv6xTtoVYlntj7K4THHSb3tzDtf7xZI7XnNEZoCTL
   IyTNlZWkwOCsUO9mzwzUXpxtLx3YuTwGGObgXK4sPAPssajlwZQhpS0/3
   k=;
Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Pass smtp.mailfrom=fonyuy-asheri.caleb@inria.fr; spf=None smtp.helo=postmaster@zcs2-store8.inria.fr
Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of
  fonyuy-asheri.caleb@inria.fr designates 128.93.142.6 as
  permitted sender) identity=mailfrom; client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="fonyuy-asheri.caleb@inria.fr";
  x-conformance=spf_only; x-record-type="v=spf1";
  x-record-text="v=spf1 include:mailout.safebrands.com
  a:basic-mail.safebrands.com a:basic-mail01.safebrands.com
  a:basic-mail02.safebrands.com ip4:128.93.142.0/24
  ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:89.107.174.7 mx
  ~all"
Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender
  authenticity information available from domain of
  postmaster@zcs2-store8.inria.fr) identity=helo;
  client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="postmaster@zcs2-store8.inria.fr";
  x-conformance=spf_only
X-IronPort-AV: E=Sophos;i="6.09,199,1716242400"; 
   d="scan'208,217";a="175023717"
X-MGA-submission: =?us-ascii?q?MDFsHK2G5J0TejETsfJH9kAeozKkXVfwoHn7qW?=
 =?us-ascii?q?Jk423uRDTrQja8LFbQwGvPFaXskSb9Cf7d3Af5R85Da6KOvL7FxbPaxK?=
 =?us-ascii?q?C2h79rYWDoFcsTyJmFsD9cT0FzhQVVGqrZcmyFqi0S/YJBOcYjOizij6?=
 =?us-ascii?q?+aVI6kGsPNMgLX1J5OZoWFgw=3D=3D?=
Date: Thu, 11 Jul 2024 12:38:47 +0200 (CEST)
From: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
To: xen-devel <xen-devel@lists.xenproject.org>
Message-ID: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr>
Subject: Help with Understanding vcpu xstate restore error during vm
 migration
MIME-Version: 1.0
Content-Type: multipart/alternative; 
	boundary="=_33499ccc-f973-4df0-b362-0e8b93f78783"
X-Originating-IP: [131.254.23.3]
X-Mailer: Zimbra 10.0.8_GA_4611 (ZimbraWebClient - GC126 (Linux)/10.0.8_GA_4611)
Thread-Index: tAJcECRjqaJf3FM7DVWxG1PgmKGLCA==
Thread-Topic: Help with Understanding vcpu xstate restore error during vm migration

--=_33499ccc-f973-4df0-b362-0e8b93f78783
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Hello, 

I am trying to understand the causes of the vcpu xstate restore error during live migration. 
I get the following error during live migration: 

xc: error: Failed to set vcpu0's xsave info (22 = Invalid argument): Internal error 

I was able to locate the failure point to the file xen/arch/x86/domctl.c with the following check. 

if ( evc -> size < PV_XSAVE_HDR_SIZE || 
evc -> size > PV_XSAVE_SIZE ( xfeature_mask ) ) 
goto vcpuextstate_out ; 

I know this is related to the number of xstates handled by the source server. Please can 
someone explain to me how these states are computed? 

I earlier thought it was simply the number xsave dependent features on the CPU but it seems 
to be more than that. 

Thanks in advance. 

Caleb 


--=_33499ccc-f973-4df0-b362-0e8b93f78783
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<html><body><div style=3D"font-family: arial, helvetica, sans-serif; font-s=
ize: 12pt; color: #000000"><div>Hello,&nbsp;</div><div><br data-mce-bogus=
=3D"1"></div><div>I am trying to understand the causes of the vcpu xstate r=
estore error during live migration.</div><div>I get the following error dur=
ing live migration:&nbsp;</div><div><br data-mce-bogus=3D"1"></div><div>xc:=
 error: Failed to set vcpu0's xsave info (22 =3D Invalid argument): Interna=
l error<br data-mce-bogus=3D"1"></div><div><br data-mce-bogus=3D"1"></div><=
div>I was able to locate the failure point to the file xen/arch/x86/domctl.=
c&nbsp; with the following check.</div><div><div style=3D"color: #cccccc; b=
ackground-color: #1f1f1f; font-family: 'Droid Sans Mono', 'monospace', mono=
space; font-weight: normal; font-size: 14px; line-height: 19px; white-space=
: pre;" data-mce-style=3D"color: #cccccc; background-color: #1f1f1f; font-f=
amily: 'Droid Sans Mono', 'monospace', monospace; font-weight: normal; font=
-size: 14px; line-height: 19px; white-space: pre;"><div><br></div><div><spa=
n style=3D"color: #cccccc;" data-mce-style=3D"color: #cccccc;"> </span><spa=
n style=3D"color: #c586c0;" data-mce-style=3D"color: #c586c0;">if</span><sp=
an style=3D"color: #cccccc;" data-mce-style=3D"color: #cccccc;"> ( </span><=
span style=3D"color: #9cdcfe;" data-mce-style=3D"color: #9cdcfe;">evc</span=
><span style=3D"color: #cccccc;" data-mce-style=3D"color: #cccccc;">-&gt;</=
span><span style=3D"color: #9cdcfe;" data-mce-style=3D"color: #9cdcfe;">siz=
e</span><span style=3D"color: #cccccc;" data-mce-style=3D"color: #cccccc;">=
 </span><span style=3D"color: #d4d4d4;" data-mce-style=3D"color: #d4d4d4;">=
&lt;</span><span style=3D"color: #cccccc;" data-mce-style=3D"color: #cccccc=
;"> </span><span style=3D"color: #569cd6;" data-mce-style=3D"color: #569cd6=
;">PV_XSAVE_HDR_SIZE</span><span style=3D"color: #cccccc;" data-mce-style=
=3D"color: #cccccc;"> </span><span style=3D"color: #d4d4d4;" data-mce-style=
=3D"color: #d4d4d4;">||</span></div><div><span style=3D"color: #cccccc;" da=
ta-mce-style=3D"color: #cccccc;"> </span><span style=3D"color: #9cdcfe;" da=
ta-mce-style=3D"color: #9cdcfe;">evc</span><span style=3D"color: #cccccc;" =
data-mce-style=3D"color: #cccccc;">-&gt;</span><span style=3D"color: #9cdcf=
e;" data-mce-style=3D"color: #9cdcfe;">size</span><span style=3D"color: #cc=
cccc;" data-mce-style=3D"color: #cccccc;"> </span><span style=3D"color: #d4=
d4d4;" data-mce-style=3D"color: #d4d4d4;">&gt;</span><span style=3D"color: =
#cccccc;" data-mce-style=3D"color: #cccccc;"> </span><span style=3D"color: =
#569cd6;" data-mce-style=3D"color: #569cd6;">PV_XSAVE_SIZE</span><span styl=
e=3D"color: #cccccc;" data-mce-style=3D"color: #cccccc;">(</span><span styl=
e=3D"color: #9cdcfe;" data-mce-style=3D"color: #9cdcfe;">xfeature_mask</spa=
n><span style=3D"color: #cccccc;" data-mce-style=3D"color: #cccccc;">) )</s=
pan></div><div><span style=3D"color: #cccccc;" data-mce-style=3D"color: #cc=
cccc;"> </span><span style=3D"color: #c586c0;" data-mce-style=3D"color: #c5=
86c0;">goto</span><span style=3D"color: #cccccc;" data-mce-style=3D"color: =
#cccccc;"> </span><span style=3D"color: #c8c8c8;" data-mce-style=3D"color: =
#c8c8c8;">vcpuextstate_out</span><span style=3D"color: #cccccc;" data-mce-s=
tyle=3D"color: #cccccc;">;</span></div></div></div><div><br data-mce-bogus=
=3D"1"></div><div>I know this is related to the number of xstates handled b=
y the source server. Please can&nbsp;</div><div>someone explain to me how t=
hese states are computed?&nbsp;</div><div><br data-mce-bogus=3D"1"></div><d=
iv>I earlier thought it was simply the number xsave dependent features on t=
he CPU but it seems</div><div>to be more than that.&nbsp;</div><div><br dat=
a-mce-bogus=3D"1"></div><div>Thanks in advance.&nbsp;</div><div><br data-mc=
e-bogus=3D"1"></div><div>Caleb</div><div data-marker=3D"__SIG_PRE__"><div><=
br data-mce-bogus=3D"1"></div></div></div></body></html>
--=_33499ccc-f973-4df0-b362-0e8b93f78783--


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 10:45:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 10:45:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757292.1166107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrIj-0000UP-5Y; Thu, 11 Jul 2024 10:45:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757292.1166107; Thu, 11 Jul 2024 10: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 1sRrIj-0000UI-2v; Thu, 11 Jul 2024 10:45:25 +0000
Received: by outflank-mailman (input) for mailman id 757292;
 Thu, 11 Jul 2024 10:45: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrIh-0000UB-Td
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 10:45:23 +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 ac150b98-3f72-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 12:45:21 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a77d85f7fa3so112254066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 03:45:21 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a8720f9sm243479566b.220.2024.07.11.03.45.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 03:45: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: ac150b98-3f72-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720694721; x=1721299521; 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=wikxxdCb9UCsdQjqlshXnpsF/3EIayZ/9SmNUo1kJbo=;
        b=IY4becxGMK5cSCEnr5mk1NcaG3HxQWlR7DDw9lViwLdlhihysMC3bSeV4KPDGZ9HQe
         hloE1p3Q//JZ4qdMAKimr3Vi6m8ip2xKSamvSHKpqGV3cjVtZlIMORnE7Bkpqy+MBt0r
         +PhwlgEHYn7XXSDoP2X96dm/xFagAM9yMBhkM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720694721; x=1721299521;
        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=wikxxdCb9UCsdQjqlshXnpsF/3EIayZ/9SmNUo1kJbo=;
        b=lFbXxszZFwMDr8J3cK5+dq64vC9k6H/7VDicM4M+Ud/DSFPsBcrbUxhbLNzlpC4qKd
         Cgsr1KtHTWWDgZmiyhmRjRl1Da1iX6l2r5rCFWqP7DgkFt2XXIBMIHb6IfnKZrw63FlZ
         PCha56D8HmLrTVp8AOEUin+snF/yXnfXaHd4N5ZJOsuVgxmJuulE5suU6+hxh6j5Bbxi
         7r0PKDPweLa0rmeCHAkf5UtSUgpgWdMhHm9WvkfuNTDkgTMuxybGyxf/hiNZH3njnG2Z
         Z4gAJJ4O8Al0coitKqy5ct+e725Lifj13ax2lese2Ksh3cjQW4YH54WWEvtejz80PjmD
         /4Aw==
X-Forwarded-Encrypted: i=1; AJvYcCXXBbJByWaaJW5zymfjJr4v8ZdE/jUcA7vXro1WEooT9L8yxcxT8hQmA6ImqqdoLuUyVh/2wkqUYXjt+Q27/2Pw4IvV1eSBXfR1Swt9RRY=
X-Gm-Message-State: AOJu0YzD7GcaFrCgmHo7iH7hnhVbLtELWSdr7OHb59+cUJacTqrAHLr8
	Q1X19nbVj+4wmsLBXDThEfM0SLTr5E+8rhQji6aZreWtV6OX/2Gppr7tLw8G5QZt2ipdhQV/gFg
	U
X-Google-Smtp-Source: AGHT+IHFPxc443TVJPtML3CXLnW2sd4exU+dp5p1EkEp++Hf2WaULk1Nz9gJYtUC7aVMRKd4ZYiAGw==
X-Received: by 2002:a17:906:d19a:b0:a72:8c53:1798 with SMTP id a640c23a62f3a-a798a487a73mr166563166b.30.1720694721231;
        Thu, 11 Jul 2024 03:45:21 -0700 (PDT)
Message-ID: <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
Date: Thu, 11 Jul 2024 11:45:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
To: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>,
 xen-devel <xen-devel@lists.xenproject.org>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/07/2024 11:38 am, Fonyuy-Asheri Caleb wrote:
> Hello, 
> 
> I am trying to understand the causes of the vcpu xstate restore error
> during live migration.
> I get the following error during live migration: 
> 
> xc: error: Failed to set vcpu0's xsave info (22 = Invalid argument):
> Internal error
> 
> I was able to locate the failure point to the file
> xen/arch/x86/domctl.c  with the following check.
> 
> if( evc->size<PV_XSAVE_HDR_SIZE||
> evc->size>PV_XSAVE_SIZE(xfeature_mask) )
> gotovcpuextstate_out;
> 
> I know this is related to the number of xstates handled by the source
> server. Please can 
> someone explain to me how these states are computed? 
> 
> I earlier thought it was simply the number xsave dependent features on
> the CPU but it seems
> to be more than that. 
> 
> Thanks in advance.

It is certainly more complicated than that.

What that's saying is that Xen doesn't think that the size of the blob
matches expectations.  That said - I'm in the middle of rewriting this
logic because lots of it is subtly wrong.

To start with, which version (or versions?) of Xen, and what hardware?

Are you able to capture `xen-cpuid -p` on the source and destination, as
well as `xen-cpuid -p $domid` of the VM running on the source?

Do you have any CPUID overrides in the VM config file?

Thanks,

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 10:46:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 10:46:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757296.1166118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrJm-00012U-GS; Thu, 11 Jul 2024 10:46:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757296.1166118; Thu, 11 Jul 2024 10:46:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrJm-00012N-BZ; Thu, 11 Jul 2024 10:46:30 +0000
Received: by outflank-mailman (input) for mailman id 757296;
 Thu, 11 Jul 2024 10:46:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRrJk-000129-Qi; Thu, 11 Jul 2024 10:46:28 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRrJk-0007IG-P7; Thu, 11 Jul 2024 10:46:28 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRrJk-0000Yz-AA; Thu, 11 Jul 2024 10:46:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRrJk-0004yr-9k; Thu, 11 Jul 2024 10:46: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=IFaPDPgaZavgDAU8qN+7XCfAKbvX+nT7pMbJYl0sDH4=; b=t9bIZQuYb0X9gEDiQttZZEWhD8
	mLaf2rfAH6wGbK1cBeP7S+uVPggbSOpnSpsIFaIOKhNo64lvWwjHc+T29rrmz9HCWCh34V8A5g425
	2HUT3qE8qadKmDE98xydG8gb1t3s9G04pGHLGjBDdreEHYdemrFU/w56N5OVswyNMXfY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186760-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186760: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=92333a2c4e8cc547ef73f69b8fe52b8323ff9f6c
X-Osstest-Versions-That:
    libvirt=0d3e962d47470165b28f742704385acefd70327e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Jul 2024 10:46:28 +0000

flight 186760 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186760/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186748
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              92333a2c4e8cc547ef73f69b8fe52b8323ff9f6c
baseline version:
 libvirt              0d3e962d47470165b28f742704385acefd70327e

Last test of basis   186748  2024-07-10 04:18:44 Z    1 days
Testing same since   186760  2024-07-11 04:18:45 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adam Julis <ajulis@redhat.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Ján Tomko <jtomko@redhat.com>
  Kshitij Jha <kshitij.jha@nutanix.com>
  Michal Privoznik <mprivozn@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   0d3e962d47..92333a2c4e  92333a2c4e8cc547ef73f69b8fe52b8323ff9f6c -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 10:50:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 10:50:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757303.1166127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrNY-0002xR-VA; Thu, 11 Jul 2024 10:50:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757303.1166127; Thu, 11 Jul 2024 10:50:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrNY-0002xK-RZ; Thu, 11 Jul 2024 10:50:24 +0000
Received: by outflank-mailman (input) for mailman id 757303;
 Thu, 11 Jul 2024 10:50:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n1Hg=OL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRrNX-0002xE-2R
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 10:50:23 +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 5e4cb6c8-3f73-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 12:50:21 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e38028so1022382a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 03:50: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
 4fb4d7f45d1cf-594bd459abbsm3301330a12.71.2024.07.11.03.50.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 03:50: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: 5e4cb6c8-3f73-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720695020; x=1721299820; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=I3hjXpJrMYDS6KOyGsrAESDQCz27DpVcPnpFPsJQdn8=;
        b=RkRDKdumv1UayqRwRwFWQMeyu3+VP9Ar5gzSMdceCbMn0HJ5Wib3cT/N1v1NXUnET4
         f8xJHrqd7xY9/B5n9L7jPKTjYhUv7UOcmQm/CjQTFG+i5Hxy7R1CCmtF9Qb5MGRnVDkb
         8vJztJo+aZcqBZJTzzDJdN4B752ajILFbZO2W6BHl8L/Y0zhBvRS9xH3VR4nAJxvijh0
         /Qf2+0g/isR8RfJXi7RNNRBNcwfRUbQOTXr6lvjvLsR5eKFlboTh8MoFBQVLjVrfDKBb
         hUNcfUJuTyIq0mTRrnplnhTZjbm4OlehrKiPI0rZ9VIEEZvjbIhrdYVU+15wC0dSf7em
         Hcbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720695020; x=1721299820;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=I3hjXpJrMYDS6KOyGsrAESDQCz27DpVcPnpFPsJQdn8=;
        b=qF7IBZsqca9eHY63zoTnpVIds0pR4WZT+ni01bAx0rKg4QEppi6T0MsLe31i88amoI
         B1SGuASdm71seeiCsMuYYUegOF9whW3gthbAf7EJTY/fHgvTg2iCeq41yJhsL8AztVyZ
         Rzs/aawnOCBeg7Bc20va0dff5h7AJ861Oau42JQ1fml98y8UvJK5odzcBYyr2whw5E0/
         xrL9cEwAuol4S007kdr5buKu0gJQ2dtHgkcoYM3HT5MvP9O6ghJE5gr7JrJWnr7l/Nrn
         ezv/IczTwOsIqn0zb1Ug59cWbi4GxEwAsvqEW4Gg0x7tCtFCO4/qFqm1kR2VPBmmreqm
         v8QA==
X-Forwarded-Encrypted: i=1; AJvYcCXMgjHt0vI7WDcM9XHF/awTeoyIYO7yM3YI5MoK1WPW1zurQGLXHS3CHD5k1JlOPS5vIJKfWWV0SxaY9AUcH8MHxF1fOb60hTNJxT2nNuA=
X-Gm-Message-State: AOJu0Ywri++wCtNBRfAtTuxkp21Z0IhB0FwR5F/fR1fYWSYwpgZqfvB3
	5x4uPeDBKaZmm7m0E91XczIwN5leZUNG2alnRYasGtwYtn7v5Wj+2hknFUfS1w==
X-Google-Smtp-Source: AGHT+IH42JadTtfag6ddCARyWiCmQshRURrg8NrQhpUUids3L7iTv4PiRVUXQV2Ms6dyWWbtG0TVVQ==
X-Received: by 2002:a05:6402:1259:b0:58c:74ae:24ee with SMTP id 4fb4d7f45d1cf-594bbe2ba3emr4550530a12.38.1720695020542;
        Thu, 11 Jul 2024 03:50:20 -0700 (PDT)
Message-ID: <e58a9128-efdd-4bff-9562-08d5605d0a13@suse.com>
Date: Thu, 11 Jul 2024 12:50:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
 <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
 <9592e857-bf1c-4e26-acd7-dfb5bb12103e@suse.com>
 <fda966116ce17b9be0b1a467bd31436a6b5ad225.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fda966116ce17b9be0b1a467bd31436a6b5ad225.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.07.2024 12:26, Oleksii wrote:
> On Thu, 2024-07-11 at 11:54 +0200, Jan Beulich wrote:
>> On 11.07.2024 11:40, Oleksii wrote:
>>> On Wed, 2024-07-10 at 14:38 +0200, Jan Beulich wrote:
>>>> On 03.07.2024 12:42, Oleksii Kurochko wrote:
>>>>> Except mapping of FDT, it is also printing command line passed
>>>>> by
>>>>> a DTB and initialize bootinfo from a DTB.
>>>>
>>>> I'm glad the description isn't empty here. However, ...
>>>>
>>>>> --- a/xen/arch/riscv/riscv64/head.S
>>>>> +++ b/xen/arch/riscv/riscv64/head.S
>>>>> @@ -41,6 +41,9 @@ FUNC(start)
>>>>>  
>>>>>          jal     setup_initial_pagetables
>>>>>  
>>>>> +        mv      a0, s1
>>>>> +        jal     fdt_map
>>>>> +
>>>>>          /* Calculate proper VA after jump from 1:1 mapping */
>>>>>          la      a0, .L_primary_switched
>>>>>          sub     a0, a0, s2
>>>>
>>>> ... it could do with clarifying why this needs calling from
>>>> assembly
>>>> code. Mapping the FDT clearly looks like something that wants
>>>> doing
>>>> from start_xen(), i.e. from C code.
>>> fdt_map() expected to work while MMU is off as it is using
>>> setup_initial_mapping() which is working with physical address.
>>
>> Hmm, interesting. When the MMU is off, what does "map" mean? Yet then
>> it feels I'm misunderstanding what you're meaning to tell me ...
> Let's look at examples of the code:
> 1. The first thing issue will be here:
>    void* __init early_fdt_map(paddr_t fdt_paddr)
>    {
>        unsigned long dt_phys_base = fdt_paddr;
>        unsigned long dt_virt_base;
>        unsigned long dt_virt_size;
>    
>        BUILD_BUG_ON(MIN_FDT_ALIGN < 8);
>        if ( !fdt_paddr || fdt_paddr % MIN_FDT_ALIGN || fdt_paddr % SZ_2M 
>    ||
>              fdt_totalsize(fdt_paddr) > BOOT_FDT_VIRT_SIZE )
> MMU doesn't now about virtual address of fdt_paddr as fdt_paddr wasn't
> mapped.
> 
> 2. In setup_initial_mapping() we have HANDLE_PGTBL() where pgtbl is a
> pointer to physical address ( which also  should be mapped in MMU if we
> want to access it after MMU is enabled ):
>    #define HANDLE_PGTBL(curr_lvl_num)                                    
>    \
>        index = pt_index(curr_lvl_num, page_addr);                        
>    \
>        if ( pte_is_valid(pgtbl[index]) )                                 
>    \
>        {                                                                 
>    \
>            /* Find L{ 0-3 } table */                                     
>    \
>            pgtbl = (pte_t *)pte_to_paddr(pgtbl[index]);                  
>    \
>        }                                                                 
>    \
>        else                                                              
>    \
>        {                                                                 
>    \
>            /* Allocate new L{0-3} page table */                          
>    \
>            if ( mmu_desc->pgtbl_count == PGTBL_INITIAL_COUNT )           
>    \
>            {                                                             
>    \
>                early_printk("(XEN) No initial table available\n");       
>    \
>                /* panic(), BUG() or ASSERT() aren't ready now. */        
>    \
>                die();                                                    
>    \
>            }                                                             
>    \
>            mmu_desc->pgtbl_count++;                                      
>    \
>            pgtbl[index] = paddr_to_pte((unsigned long)mmu_desc-
>    >next_pgtbl,    \
>                                        PTE_VALID);                       
>    \
>            pgtbl = mmu_desc->next_pgtbl;                                 
>    \
>            mmu_desc->next_pgtbl += PAGETABLE_ENTRIES;                    
>    \
>        }
>    
> So we can't use setup_initial_mapping() when MMU is enabled as there is
> a part of the code which uses physical address which are not mapped.
> 
> We have only mapping for for liner_start <-> load_start and the small
> piece of code in text section ( _ident_start ):
>     setup_initial_mapping(&mmu_desc,
>                           linker_start,
>                           linker_end,
>                           load_start);
> 
>     if ( linker_start == load_start )
>         return;
> 
>     ident_start = (unsigned long)turn_on_mmu &XEN_PT_LEVEL_MAP_MASK(0);
>     ident_end = ident_start + PAGE_SIZE;
> 
>     setup_initial_mapping(&mmu_desc,
>                           ident_start,
>                           ident_end,
>                           ident_start);
> 
> We can use setup_initial_mapping() when MMU is enabled only in case
> when linker_start is equal to load_start.
> 
> As an option we can consider for as a candidate for identaty mapping
> also section .bss.page_aligned where root and nonroot page tables are
> located.
> 
> Does it make sense now?

I think so, yet at the same time it only changes the question: Why is it
that you absolutely need to use setup_initial_mapping()? Surely down the
road there are going to be more thing that need mapping relatively early,
but after the MMU was enabled.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 10:50:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 10:50:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757306.1166137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrNx-0003QF-9Z; Thu, 11 Jul 2024 10:50:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757306.1166137; Thu, 11 Jul 2024 10: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 1sRrNx-0003Q8-5k; Thu, 11 Jul 2024 10:50:49 +0000
Received: by outflank-mailman (input) for mailman id 757306;
 Thu, 11 Jul 2024 10:50:48 +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 1sRrNw-0003Pw-Cp
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 10:50:48 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sRrNu-0007LT-Ji; Thu, 11 Jul 2024 10:50:46 +0000
Received: from [15.248.3.91] (helo=[10.24.67.27])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sRrNu-0000pa-Cn; Thu, 11 Jul 2024 10:50: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=7VTSPuu60BNhuuXJ/4jzz0eTkvHWFK4E7NHMG8d/698=; b=b0JWoLN8voKhNi/Nb43JwtIkps
	uw+WRBDcGfI0GLMAay8dKYgA0i1IyBZkyzpLE3HoCL9Dceo3GxwrPHyxpSH7MLsaLK0O/ePllymi+
	saPdWK4NVpN5OrqoQ8QlWT2C3mUfZ+Iqgfxg4D9Ndtk1WNK3eDBP5f08/MfLh1lAgh2U=;
Message-ID: <5b97113d-12f7-4051-88da-f08bb9cb3a70@xen.org>
Date: Thu, 11 Jul 2024 11:50:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
Content-Language: en-GB
To: Oleksii <oleksii.kurochko@gmail.com>, 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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
 <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 11/07/2024 10:40, Oleksii wrote:
> On Wed, 2024-07-10 at 14:38 +0200, Jan Beulich wrote:
>> On 03.07.2024 12:42, Oleksii Kurochko wrote:
>>> Except mapping of FDT, it is also printing command line passed by
>>> a DTB and initialize bootinfo from a DTB.
>>
>> I'm glad the description isn't empty here. However, ...
>>
>>> --- a/xen/arch/riscv/riscv64/head.S
>>> +++ b/xen/arch/riscv/riscv64/head.S
>>> @@ -41,6 +41,9 @@ FUNC(start)
>>>   
>>>           jal     setup_initial_pagetables
>>>   
>>> +        mv      a0, s1
>>> +        jal     fdt_map
>>> +
>>>           /* Calculate proper VA after jump from 1:1 mapping */
>>>           la      a0, .L_primary_switched
>>>           sub     a0, a0, s2
>>
>> ... it could do with clarifying why this needs calling from assembly
>> code. Mapping the FDT clearly looks like something that wants doing
>> from start_xen(), i.e. from C code.
> fdt_map() expected to work while MMU is off as it is using
> setup_initial_mapping() which is working with physical address.

Somewhat related to what Jan is asking. You only seem to part the FDT in 
start_xen(). So why do you need to call fdt_map() that early?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:09:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:09:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757316.1166147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrfw-0006K6-PL; Thu, 11 Jul 2024 11:09:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757316.1166147; Thu, 11 Jul 2024 11:09: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 1sRrfw-0006Jz-Me; Thu, 11 Jul 2024 11:09:24 +0000
Received: by outflank-mailman (input) for mailman id 757316;
 Thu, 11 Jul 2024 11:09: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=NKZT=OL=inria.fr=fonyuy-asheri.caleb@srs-se1.protection.inumbo.net>)
 id 1sRrfv-0006Jt-Qc
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:09:23 +0000
Received: from mail2-relais-roc.national.inria.fr
 (mail2-relais-roc.national.inria.fr [192.134.164.83])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 062b7a2b-3f76-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:09:21 +0200 (CEST)
Received: from zcs2-store8.inria.fr ([128.93.142.6])
 by mail2-relais-roc.national.inria.fr with ESMTP; 11 Jul 2024 13:09:21 +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: 062b7a2b-3f76-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=inria.fr; s=dc;
  h=date:from:to:cc:message-id:in-reply-to:references:
   subject:mime-version:content-transfer-encoding;
  bh=S2HdkFbFD7wnfEN6HnVlrMYRbR1IT9gLAECQbZlIVto=;
  b=ryJyj5L9dNISO4LzQyfAS4KvAMg9tVXIrgwNKbCSrsHQIyT4CE3dWXRb
   MKdZwsUSAYL3gKbhqqIhP666RYdYfUkjSJSV9e+AdJ7v8LHCRILwXKviA
   z+fKu4/jIgriPrQFwyjpZaiKoP521tcPC7vatQZXWAab3vxlB6LVlJ9WJ
   8=;
Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Pass smtp.mailfrom=fonyuy-asheri.caleb@inria.fr; spf=None smtp.helo=postmaster@zcs2-store8.inria.fr
Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of
  fonyuy-asheri.caleb@inria.fr designates 128.93.142.6 as
  permitted sender) identity=mailfrom; client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="fonyuy-asheri.caleb@inria.fr";
  x-conformance=spf_only; x-record-type="v=spf1";
  x-record-text="v=spf1 include:mailout.safebrands.com
  a:basic-mail.safebrands.com a:basic-mail01.safebrands.com
  a:basic-mail02.safebrands.com ip4:128.93.142.0/24
  ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:89.107.174.7 mx
  ~all"
Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender
  authenticity information available from domain of
  postmaster@zcs2-store8.inria.fr) identity=helo;
  client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="postmaster@zcs2-store8.inria.fr";
  x-conformance=spf_only
X-IronPort-AV: E=Sophos;i="6.09,199,1716242400"; 
   d="scan'208";a="175028459"
X-MGA-submission: =?us-ascii?q?MDF240wNCIvGXHl7897QCBOme+honuvp2W8ZL9?=
 =?us-ascii?q?CtnrBAcGkboX72z7fsEOCKqqvq8+611VVxNCqMkoAvgJ0eXFodWTFwnC?=
 =?us-ascii?q?+osDYlDJZEDts0hqoirI+1sl/bwJqsU4B8pu9B6pp/FV832ybAwA3qap?=
 =?us-ascii?q?xp6637WLF22tIal0LmZhCLig=3D=3D?=
Date: Thu, 11 Jul 2024 13:09:21 +0200 (CEST)
From: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Message-ID: <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr>
In-Reply-To: <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr> <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
X-Originating-IP: [131.254.23.3]
X-Mailer: Zimbra 10.0.8_GA_4611 (ZimbraWebClient - GC126 (Linux)/10.0.8_GA_4611)
Thread-Topic: Help with Understanding vcpu xstate restore error during vm migration
Thread-Index: NtGeBqBI0GKISyK3hG+rkfeLuSUJew==

----- Original Message -----
> From: "Andrew Cooper" <andrew.cooper3@citrix.com>
> To: "Fonyuy-Asheri Caleb" <fonyuy-asheri.caleb@inria.fr>, "xen-devel" <xe=
n-devel@lists.xenproject.org>
> Sent: Thursday, July 11, 2024 12:45:18 PM
> Subject: Re: Help with Understanding vcpu xstate restore error during vm =
migration

> On 11/07/2024 11:38 am, Fonyuy-Asheri Caleb wrote:
>> Hello,
>>=20
>> I am trying to understand the causes of the vcpu xstate restore error
>> during live migration.
>> I get the following error during live migration:
>>=20
>> xc: error: Failed to set vcpu0's xsave info (22 =3D Invalid argument):
>> Internal error
>>=20
>> I was able to locate the failure point to the file
>> xen/arch/x86/domctl.c=A0 with the following check.
>>=20
>> if( evc->size<PV_XSAVE_HDR_SIZE||
>> evc->size>PV_XSAVE_SIZE(xfeature_mask) )
>> gotovcpuextstate_out;
>>=20
>> I know this is related to the number of xstates handled by the source
>> server. Please can
>> someone explain to me how these states are computed?
>>=20
>> I earlier thought it was simply the number xsave dependent features on
>> the CPU but it seems
>> to be more than that.
>>=20
>> Thanks in advance.
>=20
> It is certainly more complicated than that.
>=20
> What that's saying is that Xen doesn't think that the size of the blob
> matches expectations.  That said - I'm in the middle of rewriting this
> logic because lots of it is subtly wrong.

Please do you mind giving me more insight on the logic currently implemente=
d=20
and maybe what is wrong with it? It will be important for me since what I'm=
=20
doing is research work.=20

How do the values evc->size and xfeature_mask relate to the source and targ=
et
processor xstates (or xstate management)?=20

>=20
> To start with, which version (or versions?) of Xen, and what hardware?

Xen version 4.18.3-pre
My CPU is : Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz
I'm running Ubuntu 20.04.=20
>=20
> Are you able to capture `xen-cpuid -p` on the source and destination, as
> well as `xen-cpuid -p $domid` of the VM running on the source?
Yes I am able to capture them. You can find them below.=20
>=20
> Do you have any CPUID overrides in the VM config file?

I don't have any CPUID overrides. I just let the guest (Ubuntu server) use
whatever xen gives.=20
>=20
> Thanks,
>=20
> ~Andrew

Caleb




=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=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=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=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
Source server xen-cpuid -p
---------------------------------------------------------------------------=
------------------------------

=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=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=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=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
Xen reports there are maximum 120 leaves and 2 MSRs
Raw policy: 32 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000f:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 000306f2:00100800:7ffefbff:bfebfbff
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c10000
  00000004:00000000 -> 1c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 1c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 1c004143:01c0003f:000001ff:00000000
  00000004:00000003 -> 1c03c163:04c0003f:00003fff:00000006
  00000005:ffffffff -> 00000040:00000040:00000003:00002120
  00000006:ffffffff -> 00000077:00000002:00000009:00000000
  00000007:00000000 -> 00000000:000037ab:00000000:9c000400
  00000009:ffffffff -> 00000001:00000000:00000000:00000000
  0000000a:ffffffff -> 07300403:00000000:00000000:00000603
  0000000b:00000000 -> 00000001:00000002:00000100:00000000
  0000000b:00000001 -> 00000004:00000010:00000201:00000000
  0000000d:00000000 -> 00000007:00000000:00000340:00000000
  0000000d:00000001 -> 00000001:00000000:00000000:00000000
  0000000d:00000002 -> 00000100:00000240:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000021:2c100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 55504320:2d354520:30333632:20337620
  80000004:ffffffff -> 2e322040:48473034:0000007a:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000007:ffffffff -> 00000000:00000000:00000000:00000100
  80000008:ffffffff -> 0000302e:00000000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 0000000000000000
Host policy: 31 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 000306f2:00100800:77fef3ff:bfebfbff
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c10000
  00000004:00000000 -> 1c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 1c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 1c004143:01c0003f:000001ff:00000000
  00000004:00000003 -> 1c03c163:04c0003f:00003fff:00000006
  00000007:00000000 -> 00000000:000037ab:00000000:9c000400
  0000000d:00000000 -> 00000007:00000000:00000340:00000000
  0000000d:00000001 -> 00000001:00000000:00000000:00000000
  0000000d:00000002 -> 00000100:00000240:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000021:2c100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 55504320:2d354520:30333632:20337620
  80000004:ffffffff -> 2e322040:48473034:0000007a:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000007:ffffffff -> 00000000:00000000:00000000:00000100
  80000008:ffffffff -> 0000302e:00000000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 000000000c000000
PV Max policy: 33 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 000306f2:00100800:f6f83203:1fc9cbf5
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c10000
  00000004:00000000 -> 1c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 1c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 1c004143:01c0003f:000001ff:00000000
  00000004:00000003 -> 1c03c163:04c0003f:00003fff:00000006
  00000007:00000000 -> 00000002:00000329:00000000:ac000400
  0000000d:00000000 -> 00000007:00000000:00000340:00000000
  0000000d:00000001 -> 00000001:00000000:00000000:00000000
  0000000d:00000002 -> 00000100:00000240:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000023:28100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 55504320:2d354520:30333632:20337620
  80000004:ffffffff -> 2e322040:48473034:0000007a:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000007:ffffffff -> 00000000:00000000:00000000:00000100
  80000008:ffffffff -> 0000302e:00001000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 000000001c020004
HVM Max policy: 33 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 000306f2:00100800:f7fa3223:1fcbfbff
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c10000
  00000004:00000000 -> 1c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 1c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 1c004143:01c0003f:000001ff:00000000
  00000004:00000003 -> 1c03c163:04c0003f:00003fff:00000006
  00000007:00000000 -> 00000002:000007ab:00000000:bc000400
  0000000d:00000000 -> 00000007:00000000:00000340:00000000
  0000000d:00000001 -> 00000001:00000000:00000000:00000000
  0000000d:00000002 -> 00000100:00000240:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000023:2c100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 55504320:2d354520:30333632:20337620
  80000004:ffffffff -> 2e322040:48473034:0000007a:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000007:ffffffff -> 00000000:00000000:00000000:00000100
  80000008:ffffffff -> 0000302e:00101000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 000000001c020004
PV Default policy: 31 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 000306f2:00100800:f6d83203:1fc9cbf5
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c10000
  00000004:00000000 -> 1c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 1c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 1c004143:01c0003f:000001ff:00000000
  00000004:00000003 -> 1c03c163:04c0003f:00003fff:00000006
  00000007:00000000 -> 00000000:00000329:00000000:ac000400
  0000000d:00000000 -> 00000007:00000000:00000340:00000000
  0000000d:00000001 -> 00000001:00000000:00000000:00000000
  0000000d:00000002 -> 00000100:00000240:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000021:28100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 55504320:2d354520:30333632:20337620
  80000004:ffffffff -> 2e322040:48473034:0000007a:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000008:ffffffff -> 0000302e:00001000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 000000000c000000
HVM Default policy: 31 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 000306f2:00100800:f7fa3203:1fcbfbff
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c10000
  00000004:00000000 -> 1c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 1c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 1c004143:01c0003f:000001ff:00000000
  00000004:00000003 -> 1c03c163:04c0003f:00003fff:00000006
  00000007:00000000 -> 00000000:000007ab:00000000:bc000400
  0000000d:00000000 -> 00000007:00000000:00000340:00000000
  0000000d:00000001 -> 00000001:00000000:00000000:00000000
  0000000d:00000002 -> 00000100:00000240:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000021:2c100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 55504320:2d354520:30333632:20337620
  80000004:ffffffff -> 2e322040:48473034:0000007a:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000008:ffffffff -> 0000302e:00101000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 000000000c000000


=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=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=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=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
Target server xen-cpuid -p
---------------------------------------------------------------------------=
------------------------------

=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=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=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=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
Xen reports there are maximum 120 leaves and 2 MSRs
Raw policy: 39 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 00000016:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 00050654:00200800:7ffefbff:bfebfbff
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c30000
  00000004:00000000 -> 3c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 3c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 3c004143:03c0003f:000003ff:00000000
  00000004:00000003 -> 3c07c163:0280003f:00004fff:00000004
  00000005:ffffffff -> 00000040:00000040:00000003:00002020
  00000006:ffffffff -> 00000ef7:00000002:00000009:00000000
  00000007:00000000 -> 00000000:d39ffffb:00000018:bc002400
  0000000a:ffffffff -> 07300404:00000000:00000000:00000603
  0000000b:00000000 -> 00000001:00000002:00000100:00000000
  0000000b:00000001 -> 00000005:00000014:00000201:00000000
  0000000d:00000000 -> 000002ff:00000000:00000a88:00000000
  0000000d:00000001 -> 0000000f:00000000:00000100:00000000
  0000000d:00000002 -> 00000100:00000240:00000000:00000000
  0000000d:00000003 -> 00000040:000003c0:00000000:00000000
  0000000d:00000004 -> 00000040:00000400:00000000:00000000
  0000000d:00000005 -> 00000040:00000440:00000000:00000000
  0000000d:00000006 -> 00000200:00000480:00000000:00000000
  0000000d:00000007 -> 00000400:00000680:00000000:00000000
  0000000d:00000008 -> 00000080:00000000:00000001:00000000
  0000000d:00000009 -> 00000008:00000a80:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000121:2c100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 6c695320:20726576:34313134:55504320
  80000004:ffffffff -> 32204020:4730322e:00007a48:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000007:ffffffff -> 00000000:00000000:00000000:00000100
  80000008:ffffffff -> 0000302e:00000000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 0000000000000c04
Host policy: 38 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 00050654:00200800:47fee3ff:bfebfbff
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c30000
  00000004:00000000 -> 3c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 3c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 3c004143:03c0003f:000003ff:00000000
  00000004:00000003 -> 3c07c163:0280003f:00004fff:00000004
  00000007:00000000 -> 00000000:029cffdb:00000008:bc002400
  0000000d:00000000 -> 0000021b:00000000:00000a88:00000000
  0000000d:00000001 -> 0000000f:00000000:00000000:00000000
  0000000d:00000003 -> 00000040:000003c0:00000000:00000000
  0000000d:00000004 -> 00000040:00000400:00000000:00000000
  0000000d:00000009 -> 00000008:00000a80:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000121:2c100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 6c695320:20726576:34313134:55504320
  80000004:ffffffff -> 32204020:4730322e:00007a48:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000007:ffffffff -> 00000000:00000000:00000000:00000100
  80000008:ffffffff -> 0000302e:00000000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 0000000008000c04
PV Max policy: 32 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 00050654:00200800:c6f82203:1fc9cbf5
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c30000
  00000004:00000000 -> 3c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 3c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 3c004143:03c0003f:000003ff:00000000
  00000004:00000003 -> 3c07c163:0280003f:00004fff:00000004
  00000007:00000000 -> 00000002:018c0b19:00000000:ac000c00
  0000000d:00000000 -> 00000003:00000000:00000240:00000000
  0000000d:00000001 -> 00000007:00000000:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000123:28100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 6c695320:20726576:34313134:55504320
  80000004:ffffffff -> 32204020:4730322e:00007a48:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000007:ffffffff -> 00000000:00000000:00000000:00000100
  80000008:ffffffff -> 0000302e:00001000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 0000000018020004
HVM Max policy: 40 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 00050654:00200800:c7fa2223:1fcbfbff
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c30000
  00000004:00000000 -> 3c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 3c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 3c004143:03c0003f:000003ff:00000000
  00000004:00000003 -> 3c07c163:0280003f:00004fff:00000004
  00000007:00000000 -> 00000002:019c4f9b:00000008:bc000c00
  0000000d:00000000 -> 0000021b:00000000:00000a88:00000000
  0000000d:00000001 -> 0000000f:00000000:00000000:00000000
  0000000d:00000003 -> 00000040:000003c0:00000000:00000000
  0000000d:00000004 -> 00000040:00000400:00000000:00000000
  0000000d:00000009 -> 00000008:00000a80:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000123:2c100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 6c695320:20726576:34313134:55504320
  80000004:ffffffff -> 32204020:4730322e:00007a48:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000007:ffffffff -> 00000000:00000000:00000000:00000100
  80000008:ffffffff -> 0000302e:00101000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 0000000018020004
PV Default policy: 30 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 00050654:00200800:c6d82203:1fc9cbf5
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c30000
  00000004:00000000 -> 3c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 3c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 3c004143:03c0003f:000003ff:00000000
  00000004:00000003 -> 3c07c163:0280003f:00004fff:00000004
  00000007:00000000 -> 00000000:008c0b09:00000000:ac000400
  0000000d:00000000 -> 00000003:00000000:00000240:00000000
  0000000d:00000001 -> 00000007:00000000:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000121:28100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 6c695320:20726576:34313134:55504320
  80000004:ffffffff -> 32204020:4730322e:00007a48:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000008:ffffffff -> 0000302e:00001000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 0000000008000004
HVM Default policy: 38 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 00050654:00200800:c7fa2203:1fcbfbff
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c30000
  00000004:00000000 -> 3c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 3c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 3c004143:03c0003f:000003ff:00000000
  00000004:00000003 -> 3c07c163:0280003f:00004fff:00000004
  00000007:00000000 -> 00000000:009c0f8b:00000008:bc000400
  0000000d:00000000 -> 00000203:00000000:00000a88:00000000
  0000000d:00000001 -> 0000000f:00000000:00000000:00000000
  0000000d:00000009 -> 00000008:00000a80:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000121:2c100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 6c695320:20726576:34313134:55504320
  80000004:ffffffff -> 32204020:4730322e:00007a48:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000008:ffffffff -> 0000302e:00101000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 0000000008000004


=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=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=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=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
VM xen-cpuid -p $domid
---------------------------------------------------------------------------=
------------------------------
Domain 3 policy: 31 leaves, 2 MSRs
 CPUID:
  leaf     subleaf  -> eax      ebx      ecx      edx    =20
  00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
  00000001:ffffffff -> 000306f2:00100800:f6d83203:1fc9cbf5
  00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c10000
  00000004:00000000 -> 1c004121:01c0003f:0000003f:00000000
  00000004:00000001 -> 1c004122:01c0003f:0000003f:00000000
  00000004:00000002 -> 1c004143:01c0003f:000001ff:00000000
  00000004:00000003 -> 1c03c163:04c0003f:00003fff:00000006
  00000007:00000000 -> 00000000:00002329:00000000:ac000400
  0000000d:00000000 -> 00000007:00000000:00000340:00000000
  0000000d:00000001 -> 00000001:00000000:00000000:00000000
  0000000d:00000002 -> 00000100:00000240:00000000:00000000
  80000000:ffffffff -> 80000008:00000000:00000000:00000000
  80000001:ffffffff -> 00000000:00000000:00000021:28100800
  80000002:ffffffff -> 65746e49:2952286c:6f655820:2952286e
  80000003:ffffffff -> 55504320:2d354520:30333632:20337620
  80000004:ffffffff -> 2e322040:48473034:0000007a:00000000
  80000006:ffffffff -> 00000000:00000000:01006040:00000000
  80000008:ffffffff -> 0000302e:00001000:00000000:00000000
 MSRs:
  index    -> value          =20
  000000ce -> 0000000080000000
  0000010a -> 000000000c000000
=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=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=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=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D




From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757324.1166174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlp-00089F-5F; Thu, 11 Jul 2024 11:15:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757324.1166174; Thu, 11 Jul 2024 11:15:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlo-00088k-TH; Thu, 11 Jul 2024 11:15:28 +0000
Received: by outflank-mailman (input) for mailman id 757324;
 Thu, 11 Jul 2024 11:15:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrlo-0007rD-35
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:28 +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 e045db34-3f76-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:15:27 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a77e2f51496so112808166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:27 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:15: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: e045db34-3f76-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696526; x=1721301326; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L/meM4LOF0SLC51tAEKjDtfLnz5/szauziEh2ia+Hxk=;
        b=aATb1H4JT4ybYjxTIs4zH2AibqoNQRrqvSAWBrynD9P91ngi3GKIvsSuuSPcLuH7wG
         qbbyfxgvmvzZUGkGy/OeoDhcikJlj0152Qy13wxx2eFIm9KuD/1c3S8nl+b31+xs+vI5
         km8vSlN2wVZFYEtmLLfOwiwQacF2nCxE0/rE4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696526; x=1721301326;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=L/meM4LOF0SLC51tAEKjDtfLnz5/szauziEh2ia+Hxk=;
        b=rr+qHBFUy/sj+LcyiBCUtbWJc7dRmM2o2kSu8eBHeG7prdkGhJINcXybsEMDJvEtKf
         xfxV/VAOQCIjvNCd2eLAALQzM7Ih5rHjCUdUUKzyZxFSHyYDcewJReCquGX+Qm0XIrl8
         Xe+5bdUUTd+A45SO8MOcyA+02C1yA9btNXFLAoAWoIt6UIimG190Uu3CTTFTi4TcWiO9
         A1PixG39Cc+irXD+r+duFg1tGpJwdXOQYjy57zLviSR654WyFmXygP9OEuWBCMhZrjWZ
         UYH5LUBrpVVOvlqEWWEO3A0yHoWEfjvYqMEmgejQzbfE+uOLmqhEtv76gpRVe6Xd7RT5
         hYIg==
X-Gm-Message-State: AOJu0Yz2PVWvIPE4TQpZ5Sj9/1EmhRPIj2hdNQsB/7MM7O6LkLhstYfg
	SD1oCY2eookHdbjrlHg7ThcTegZhFLahfCfDSw2/JfUXcw3iDtJuHz8LLagu1GyoUtvaAnxez+2
	h
X-Google-Smtp-Source: AGHT+IHHDkvg4Tc1JebNvajW43vBdtx3XCYg8dIoey6SD94uRNl0Hcmzz+XWpyqp5Wn4XnW/oUbhnQ==
X-Received: by 2002:a17:906:2342:b0:a77:e1fb:7dec with SMTP id a640c23a62f3a-a780b6b316dmr486049266b.17.1720696525947;
        Thu, 11 Jul 2024 04:15: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 03/12] CI: Drop Debian Jessie dockerfiles
Date: Thu, 11 Jul 2024 12:15:08 +0100
Message-Id: <20240711111517.3064810-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

These were removed from testing in Xen 4.18.

Fixes: 3817e3c1b4b8 ("automation: Remove testing on Debian Jessie")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 .../build/debian/jessie-i386.dockerfile       | 55 -------------------
 automation/build/debian/jessie.dockerfile     | 52 ------------------
 automation/scripts/containerize               |  2 -
 3 files changed, 109 deletions(-)
 delete mode 100644 automation/build/debian/jessie-i386.dockerfile
 delete mode 100644 automation/build/debian/jessie.dockerfile

diff --git a/automation/build/debian/jessie-i386.dockerfile b/automation/build/debian/jessie-i386.dockerfile
deleted file mode 100644
index dfa6dae06cb8..000000000000
--- a/automation/build/debian/jessie-i386.dockerfile
+++ /dev/null
@@ -1,55 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/i386 debian/eol:jessie
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-ENTRYPOINT ["linux32"]
-
-# replace repos in archive as release is EOL
-COPY <<"END" /etc/apt/sources.list
-deb http://archive.debian.org/debian/ jessie main contrib non-free
-deb http://archive.debian.org/debian/ jessie-backports main contrib non-free
-deb http://archive.debian.org/debian-security/ jessie/updates main contrib non-free
-END
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python-dev \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libc6-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        markdown \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/build/debian/jessie.dockerfile b/automation/build/debian/jessie.dockerfile
deleted file mode 100644
index 82dae9ec70c4..000000000000
--- a/automation/build/debian/jessie.dockerfile
+++ /dev/null
@@ -1,52 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 debian/eol:jessie
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# replace repos in archive as release is EOL
-COPY <<"END" /etc/apt/sources.list
-deb http://archive.debian.org/debian/ jessie main contrib non-free
-deb http://archive.debian.org/debian/ jessie-backports main contrib non-free
-deb http://archive.debian.org/debian-security/ jessie/updates main contrib non-free
-END
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python-dev \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        markdown \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 03bc4837350c..57db42d10cb5 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -31,8 +31,6 @@ case "_${CONTAINER}" in
     _centos7) CONTAINER="${BASE}/centos:7" ;;
     _fedora) CONTAINER="${BASE}/fedora:29";;
     _focal) CONTAINER="${BASE}/ubuntu:focal" ;;
-    _jessie) CONTAINER="${BASE}/debian:jessie" ;;
-    _jessie-i386) CONTAINER="${BASE}/debian:jessie-i386" ;;
     _bullseye-ppc64le) CONTAINER="${BASE}/debian:bullseye-ppc64le" ;;
     _stretch|_) CONTAINER="${BASE}/debian:stretch" ;;
     _stretch-i386) CONTAINER="${BASE}/debian:stretch-i386" ;;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757325.1166179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlp-0008Fn-DQ; Thu, 11 Jul 2024 11:15:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757325.1166179; Thu, 11 Jul 2024 11:15:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlp-0008E7-63; Thu, 11 Jul 2024 11:15:29 +0000
Received: by outflank-mailman (input) for mailman id 757325;
 Thu, 11 Jul 2024 11:15:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrlo-0007rJ-G8
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:28 +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 e0005c60-3f76-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 13:15:27 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-58b447c5112so1028030a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:27 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:15: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: e0005c60-3f76-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696525; x=1721301325; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QMdgJvw5BoA7Ynpn9dLAYsAUignCSQSLKykSZf64/SM=;
        b=jmMpoewFmF/AFx9Ygiex+EMmbg2sQXkFrGOh3Dz0gSSBgYgo/xAldIJkIDKedhj8N3
         +Wf6mDfusnQLxXLmtSWVsZ1rCkbOzWCnAFZGuStCe8F8LanSJVa4xWGSjLQovLbobOeN
         OlkYx1DA+y5MCZO5nLSKRVvCfEJBup5Au8+hA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696525; x=1721301325;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=QMdgJvw5BoA7Ynpn9dLAYsAUignCSQSLKykSZf64/SM=;
        b=S1MJifeTx7fAOwjseITv63l2jqdWP4uUACeSDl3XEjIaz4MoptG20LU3wzU4CNWNig
         KQl2DpXstDZvzL1oDqBScnAo8klu0qLTj3S4DXTxDZmJf5hONtKf/rG5uu015Skd5yk6
         ZgIgPaD7cGLHofzEi5dvW+m2ioId3PGRgf8FoxHANZuCx6yHJuEnuGW42TnY/0s+oQUc
         arkluWhXHvNCJR3ofAByTe3U1uzE24mpavxB7mo7Qx/oW+Z9UBGS2Qwy+08gk49nHSVX
         ANcZbZKuTp6NrbdHLEfkanGwm3jHbSngCoZo6yPnZvyTXZ+JaMgfExCGv6iomTDuYx7y
         X5BQ==
X-Gm-Message-State: AOJu0YwKeCH9hSIRt//ofNdvwSKYNesVCVeT44bPKHi/phDv4QZEn7o6
	KQHrtnSaZ7AmUiwYov9Q+NQ66Rh6peprDaqlTIo5r0sbU49ZMoB2LoXeAtHGHHb26x3awcigCx6
	T
X-Google-Smtp-Source: AGHT+IHD3EHDyWvqIB6M7adyUPfxyLF5B36e8K5nWoAWp1Uc7hCbjfs8JXlEgfRiNZLawBZKHB2TLA==
X-Received: by 2002:a17:907:7247:b0:a77:e2e3:3546 with SMTP id a640c23a62f3a-a780b68a8d1mr755354766b.9.1720696525147;
        Thu, 11 Jul 2024 04:15: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 02/12] CI: Remove useless/misleading randconfig jobs
Date: Thu, 11 Jul 2024 12:15:07 +0100
Message-Id: <20240711111517.3064810-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Randconfig builds pick CONFIG_DEBUG with 50% probability.  Therefore
$foo{,-debug}-randconfig are two identical jobs with misleading names.

Furthermore, arm64 has a randconfig jobs for both the alpine and bookworm
build environments.  Both use GCC 12.2, so we have 4 identical jobs.  Delete 3
of them.

This leaves us with 4 primary randconfig jobs:

  gitlab-ci/build.yaml:381:debian-bookworm-gcc-arm32-randconfig:
  gitlab-ci/build.yaml:429:alpine-3.18-gcc-arm64-randconfig:
  gitlab-ci/build.yaml:495:archlinux-current-gcc-riscv64-randconfig:
  gitlab-ci/build.yaml:640:debian-bookworm-gcc-randconfig:

as PPC64 doesn't want randconfig right now, and buster-gcc-ibt is a special
job with a custom compiler.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>

Here is an example debug-randconfig with a release builds:
  https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7312848876

If we want to run multiple identical randconfig jobs, that's spelt

  parallel: 5

in the configuration, and here is an example of what such a run looks like:
  https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1368824041

Notice the randconfig jobs have a 5 in place of a retry button, and show a
submenu when clicked on.
---
 automation/gitlab-ci/build.yaml | 39 ---------------------------------
 1 file changed, 39 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index ff5c9055d1f0..da7b8885aa30 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -385,13 +385,6 @@ debian-bookworm-gcc-arm32-randconfig:
     HYPERVISOR_ONLY: y
     RANDCONFIG: y
 
-debian-bookworm-gcc-arm32-debug-randconfig:
-  extends: .gcc-arm32-cross-build-debug
-  variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
-    HYPERVISOR_ONLY: y
-    RANDCONFIG: y
-
 debian-bookworm-gcc-arm32-debug-staticmem:
   extends: .gcc-arm32-cross-build-debug
   variables:
@@ -423,18 +416,6 @@ debian-bookworm-gcc-debug-arm64:
   variables:
     CONTAINER: debian:bookworm-arm64v8
 
-debian-bookworm-gcc-arm64-randconfig:
-  extends: .gcc-arm64-build
-  variables:
-    CONTAINER: debian:bookworm-arm64v8
-    RANDCONFIG: y
-
-debian-bookworm-gcc-debug-arm64-randconfig:
-  extends: .gcc-arm64-build-debug
-  variables:
-    CONTAINER: debian:bookworm-arm64v8
-    RANDCONFIG: y
-
 alpine-3.18-gcc-arm64:
   extends: .gcc-arm64-build
   variables:
@@ -451,12 +432,6 @@ alpine-3.18-gcc-arm64-randconfig:
     CONTAINER: alpine:3.18-arm64v8
     RANDCONFIG: y
 
-alpine-3.18-gcc-debug-arm64-randconfig:
-  extends: .gcc-arm64-build-debug
-  variables:
-    CONTAINER: alpine:3.18-arm64v8
-    RANDCONFIG: y
-
 alpine-3.18-gcc-debug-arm64-staticmem:
   extends: .gcc-arm64-build-debug
   variables:
@@ -525,14 +500,6 @@ archlinux-current-gcc-riscv64-randconfig:
     RANDCONFIG: y
     <<: *riscv-fixed-randconfig
 
-archlinux-current-gcc-riscv64-debug-randconfig:
-  extends: .gcc-riscv64-cross-build-debug
-  variables:
-    CONTAINER: archlinux:current-riscv64
-    KBUILD_DEFCONFIG: tiny64_defconfig
-    RANDCONFIG: y
-    <<: *riscv-fixed-randconfig
-
 # Power cross-build
 debian-bullseye-gcc-ppc64le:
   extends: .gcc-ppc64le-cross-build
@@ -676,12 +643,6 @@ debian-bookworm-gcc-randconfig:
     CONTAINER: debian:bookworm
     RANDCONFIG: y
 
-debian-bookworm-gcc-debug-randconfig:
-  extends: .gcc-x86-64-build-debug
-  variables:
-    CONTAINER: debian:bookworm
-    RANDCONFIG: y
-
 debian-bookworm-32-clang-debug:
   extends: .clang-x86-32-build-debug
   variables:
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757323.1166167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlo-00085s-Ou; Thu, 11 Jul 2024 11:15:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757323.1166167; Thu, 11 Jul 2024 11: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 1sRrlo-00085k-KR; Thu, 11 Jul 2024 11:15:28 +0000
Received: by outflank-mailman (input) for mailman id 757323;
 Thu, 11 Jul 2024 11: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrlm-0007rJ-S6
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:26 +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 de51938a-3f76-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 13:15:24 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a77cc73d35fso336803466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:24 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:15: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: de51938a-3f76-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696523; x=1721301323; 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=vVPoKLvLIx9/Z6KXaOL1BRCRvyW2x3MJAeh+5pqVY4c=;
        b=WACPDeBgxHgrglWfCFeXPLIvQLympVWyLjSQMwwg4hxb7Ss8OdxCrWeQF4Caos7gMY
         /SJLGiKcL9f1e5L9ACRvvFq59TfQ9OUQnhAfkdb2dUn7wLEI7tfFbmNh7aCxjGE3rMG7
         ICnPYjDZ9py2wet2CoYaBpz9NzgNuytxF4oB8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696523; x=1721301323;
        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=vVPoKLvLIx9/Z6KXaOL1BRCRvyW2x3MJAeh+5pqVY4c=;
        b=Z2gIo0zULaTcy6ndxicz5ErTLfFBuEaHfV9y97e2OqSIaHqANYqbTzXLiexy/rTQ1l
         K+9ZdHVEX3r1et98Rw+G0iVo/pBSEE48k+7shiYCL3HKQNxKeJ9HCkS6Vpy1UV+uC2iv
         3blpLBiDeCo3JYSvMa5h/omwQ9GRSOif30hds+VafdEgbGk1nO9I3tx+AGWEGxj6ckPY
         lm+W0rKQ1z24RrU/Ik7ijau1M+sx3AmQ9UTYb8JdlyaekXH0WScQfp6YHk3P6cSK6u8Q
         EJWb7eRk5oyngR/00VW+UHWsU9BB1LTkli/p4Qzg9opNXJ1r/46i/FoXUGhG3rz+ILla
         KRGA==
X-Gm-Message-State: AOJu0YzVQxRZGomq1cd/b6w5FqIDOLXFwy03+W8hI4gBmA7phtisUdWP
	lwJMs0DW4IGWk5L9U2dyE8km4AvYXrHTkYep6EkS6FhAz+De10uc6OFaID+bgJv9pf+GqDcP8wa
	K
X-Google-Smtp-Source: AGHT+IFdBUIkzLRro62eu6ngygo7/DrnqmvzF/IZxTsU7pvynbq9reP2ajyKaRz0Z2g0DY8Ik3bEsw==
X-Received: by 2002:a17:907:2d90:b0:a77:c7d8:7b4c with SMTP id a640c23a62f3a-a7992169c21mr120541366b.11.1720696522742;
        Thu, 11 Jul 2024 04:15: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH for-4.19 v2 00/12] CI: part 3 (slimline, and PPC/RISCV fixes)
Date: Thu, 11 Jul 2024 12:15:05 +0100
Message-Id: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Patch 1 fixes a bug in the containerize script

Patches 2-5 remove useless/obsolete testing

Patch 6 fixes a bug with the archlinux testing configuration

Patches 7-9 adjust the PPC64 testing

Patches 10-11 adjust the RISCV64 testing

Patch 12 refreshes the custom GCC-IBT container


All changes here follow best-guidance for dockerfiles (non-root, heredocs for
improved legibility), and naming consistency improvements discussed previously
on the Committers call.  Breifly that's:

  $DISTRO-$VERSION(numeric)-$ARCH-*

which sort more nicely and don't require e.g. people to remember which order
buster/bullseye/bookworm are in terms of debain release.

For x86, this involves inserting an $ARCH of x86_64.  Right now, x86_64 is
implied by the absence, and all other variations have to state one.


Still to come:

 * OpenSUSE container fixes (resolves the final rolling distro vs
   allowed_failure problem)
 * Ubuntu/debian rename/trim
 * Add new jobs for latest releases (Ubuntu, Alpine, Fedora)

Andrew Cooper (12):
  CI: Fix CONTAINER_UID0=1 scripts/containerize

  CI: Remove useless/misleading randconfig jobs
  CI: Drop Debian Jessie dockerfiles
  CI: Drop Debian Stretch testing
  CI: Drop Ubuntu Trusty testing

  CI: Mark Archlinux/x86 as allowing failures

  CI: Introduce a debian:12-ppc64le container
  CI: Use debian:12-ppc64le for both build and test
  CI: Refresh bullseye-ppc64le as debian:11-ppc64le

  CI: Introduce debian:11/12-riscv64 containers
  CI: Swap to debian for riscv64 build and test

  CI: Refresh and upgrade the GCC-IBT container

 .../archlinux/current-riscv64.dockerfile      |  22 --
 automation/build/debian/11-ppc64le.dockerfile |  33 +++
 automation/build/debian/11-riscv64.dockerfile |  33 +++
 automation/build/debian/12-ppc64le.dockerfile |  36 +++
 automation/build/debian/12-riscv64.dockerfile |  36 +++
 ...ockerfile => 12-x86_64-gcc-ibt.dockerfile} |  81 +++---
 .../build/debian/bullseye-ppc64le.dockerfile  |  32 ---
 .../build/debian/jessie-i386.dockerfile       |  55 -----
 automation/build/debian/jessie.dockerfile     |  52 ----
 .../build/debian/stretch-i386.dockerfile      |  57 -----
 automation/build/debian/stretch.dockerfile    |  60 -----
 automation/build/ubuntu/trusty.dockerfile     |  51 ----
 automation/gitlab-ci/build.yaml               | 233 +++++++-----------
 automation/gitlab-ci/test.yaml                |  13 +-
 automation/scripts/containerize               |  15 +-
 automation/scripts/qemu-smoke-ppc64le.sh      |   4 +-
 .../qemu-system-ppc64/8.1.0-ppc64.dockerfile  |  38 ---
 17 files changed, 282 insertions(+), 569 deletions(-)
 delete mode 100644 automation/build/archlinux/current-riscv64.dockerfile
 create mode 100644 automation/build/debian/11-ppc64le.dockerfile
 create mode 100644 automation/build/debian/11-riscv64.dockerfile
 create mode 100644 automation/build/debian/12-ppc64le.dockerfile
 create mode 100644 automation/build/debian/12-riscv64.dockerfile
 rename automation/build/debian/{buster-gcc-ibt.dockerfile => 12-x86_64-gcc-ibt.dockerfile} (50%)
 delete mode 100644 automation/build/debian/bullseye-ppc64le.dockerfile
 delete mode 100644 automation/build/debian/jessie-i386.dockerfile
 delete mode 100644 automation/build/debian/jessie.dockerfile
 delete mode 100644 automation/build/debian/stretch-i386.dockerfile
 delete mode 100644 automation/build/debian/stretch.dockerfile
 delete mode 100644 automation/build/ubuntu/trusty.dockerfile
 delete mode 100644 automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile

-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757322.1166156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrln-0007rW-H8; Thu, 11 Jul 2024 11:15:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757322.1166156; Thu, 11 Jul 2024 11:15: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 1sRrln-0007rP-EZ; Thu, 11 Jul 2024 11:15:27 +0000
Received: by outflank-mailman (input) for mailman id 757322;
 Thu, 11 Jul 2024 11: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrll-0007rD-Jq
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:25 +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 de964e90-3f76-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:15:24 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a6265d3ba8fso93857966b.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:24 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:15: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: de964e90-3f76-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696523; x=1721301323; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gf25M9zoO5vZznMm7cYwnz+XBjUsPdeo20Axydvsm8w=;
        b=Fvan6j243CBQumJCIKFhAsXIZ5XZc2Z+bsKFmxHc4Wdq5MehiHeWWfjpT+/AWtGuOX
         bWpYBBhc4GSB8my4Zc8n+17nIGdjxYJJUM2u75S0d75CzYEoZYkLO+mmpU4O6YzwrubS
         W7w7Mp7I6Lj0ISC87BW5ThrrxAtkxaPY9kq6o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696523; x=1721301323;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=gf25M9zoO5vZznMm7cYwnz+XBjUsPdeo20Axydvsm8w=;
        b=JIy4kUB4/wxpLwcA+l9YG72lzEscfrvXtQMb/DbveX+6zRPcIj2Tc9mem3LLqId2EM
         fVfRGvPuULPkpEiFMLfBk1ud0zh6sa70bYbtbe/YaaCErVPXZRLHD7S/tboLgam3SJTp
         CxrwhD/VJo3WyMBdb7CZlG6flm0fKlXbsjTZJwYiqBrV45NnlehTjqu7LIwhRE+nBWDF
         k9t/d0owNoPWNk7cvsl6QpWevh/NMc4ZIYbe1oRzttK4/Ph8qdvk1kmZkP2ANU+pEOEV
         TngXQehSV9bZ70UwzWlaKlHIpxfjCuHhEsakeWF7ZK5SlGeTIPckzMdwu+MhlmYpTjjg
         P2iQ==
X-Gm-Message-State: AOJu0YzlBrLZ+JjEhUDBfki9nhIPRhdY4V2efv0lCBYqIcHxrU308cVz
	gF4JUHSgrBIFB77qIF936Zuzjs4/uM/7t+sq+wBxwZACmIuqCFoWMnp6Qw85asq963G9h6fswSC
	R
X-Google-Smtp-Source: AGHT+IFTvR+hMp9nnt7D5X0BPm5D4ydWq3OZMDWx6U0p0uhGHSb64/n7Z/D/sb6yAfV92dmqH/P1mA==
X-Received: by 2002:a17:906:c309:b0:a77:e55a:9e91 with SMTP id a640c23a62f3a-a780b6b0e59mr547319266b.19.1720696523503;
        Thu, 11 Jul 2024 04:15: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 01/12] CI: Fix CONTAINER_UID0=1 scripts/containerize
Date: Thu, 11 Jul 2024 12:15:06 +0100
Message-Id: <20240711111517.3064810-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Right now, most build containers use root.  Archlinux, Fedora and Yocto set up
a regular user called `user`.

For those containers, trying to containerize as root fails, because
CONTAINER_UID0=1 does nothing, whereas CONTAINER_UID0=0 forces the user away
from root.

To make CONTAINER_UID0=1 work reliably, force to root if requested.

Fixes: 17fbe6504dfd ("automation: introduce a new variable to control container user")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>

v2:
 * Add fixes tag
---
 automation/scripts/containerize | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index acdef1b54813..03bc4837350c 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -51,7 +51,7 @@ esac
 
 # Use this variable to control whether root should be used
 case "_${CONTAINER_UID0}" in
-    _1)   userarg= ;;
+    _1)   userarg="-u 0" ;;
     _0|_) userarg="-u $(id -u) $userns_podman" ;;
 esac
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757326.1166197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlr-0000Pz-Mr; Thu, 11 Jul 2024 11:15:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757326.1166197; Thu, 11 Jul 2024 11: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 1sRrlr-0000Pq-JJ; Thu, 11 Jul 2024 11:15:31 +0000
Received: by outflank-mailman (input) for mailman id 757326;
 Thu, 11 Jul 2024 11: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrlp-0007rD-Ro
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:29 +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 e144a14b-3f76-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:15:29 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-58c2e5e8649so2725407a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:29 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:15: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: e144a14b-3f76-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696528; x=1721301328; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c9Zc7WCDax6tOV1wBSJ+65HBId20FDc5PP86u+0cBhQ=;
        b=hlM3SNv1corJSqJObHoUI2/dIMSUU6Nwb3sYLNxRYMcM6Wce4mJdS7p95oQsCCYirV
         fgTbewrpwiW/hVTR1KFYeJeEOSQJC89BlzE9Wb422cpfdM3GWy+pNtk/r+JyhTeDfRva
         5Qcl5AYPxxJiGldYZyusEGdSQRVTd8Q+gefJE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696528; x=1721301328;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=c9Zc7WCDax6tOV1wBSJ+65HBId20FDc5PP86u+0cBhQ=;
        b=kaMcxrVkX4YQRPbOP3JA1m8rwI4csb0g3wZ5Dxv4P9u3N3yz5utkBhkub4OzS+89Gh
         Wa/V+FlimE8/xCopMz2aPFN8wbEsPvsjrXy+FRQSEUkT20st32GHrWSkd3Ah39uAWTvu
         6wt7lEQY1aDKVYVrqeMyFA80JR0YyTlIYJNNP1ObSXUctt6kOxqOSGyiprDlSj4cXbpy
         Fe344YHPyZsPv7NaGuwlP0W8Qpt2xSLZRIKMoNPmbphXFWALsSHAlWt/GN/I541nIUgP
         q1Sa8RxBpvDL5L7Xhzm0a314ualgh5K7LSH4m052KfJ5/pxL+xJlg7LRMwss3PJDGEWX
         BVjQ==
X-Gm-Message-State: AOJu0YxJoHhF0ddzA9TCEAkDp6qytW3+GEjUBw3lUanXDOhhLdKxvvAN
	7Arp7Y2bwm9zyt8Cfpltjmi63COVEMYdNE53Fpmbb/VQ6+zDSlnWqGv3eT0S76IefJvpHOLjoIP
	g
X-Google-Smtp-Source: AGHT+IHmgObZliaurhNFDctglm8aZEzzMupYYWiqFWt/5Sx/Dyv7ihYOfDkLMbusTKLGclFlNFUCgQ==
X-Received: by 2002:a17:906:308d:b0:a6f:2835:be95 with SMTP id a640c23a62f3a-a79921e4f59mr80147766b.37.1720696527778;
        Thu, 11 Jul 2024 04:15:27 -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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 04/12] CI: Drop Debian Stretch testing
Date: Thu, 11 Jul 2024 12:15:09 +0100
Message-Id: <20240711111517.3064810-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Debian stretch is also End of Life.  Update a couple of test steps to use
bookworm instead.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 .../build/debian/stretch-i386.dockerfile      | 57 ------------------
 automation/build/debian/stretch.dockerfile    | 60 -------------------
 automation/gitlab-ci/build.yaml               | 34 +----------
 automation/gitlab-ci/test.yaml                |  4 +-
 automation/scripts/containerize               |  2 -
 5 files changed, 4 insertions(+), 153 deletions(-)
 delete mode 100644 automation/build/debian/stretch-i386.dockerfile
 delete mode 100644 automation/build/debian/stretch.dockerfile

diff --git a/automation/build/debian/stretch-i386.dockerfile b/automation/build/debian/stretch-i386.dockerfile
deleted file mode 100644
index 905096ab0ef1..000000000000
--- a/automation/build/debian/stretch-i386.dockerfile
+++ /dev/null
@@ -1,57 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/i386 debian:stretch
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-ENTRYPOINT ["linux32"]
-
-# replace repos in archive as release is EOL
-COPY <<"END" /etc/apt/sources.list
-deb http://archive.debian.org/debian/ stretch main contrib non-free
-deb http://archive.debian.org/debian/ stretch-backports main contrib non-free
-deb http://archive.debian.org/debian-security/ stretch/updates main contrib non-free
-END
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python-dev \
-        python3-dev \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libc6-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        markdown \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        apt-transport-https \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/build/debian/stretch.dockerfile b/automation/build/debian/stretch.dockerfile
deleted file mode 100644
index b99d229acf14..000000000000
--- a/automation/build/debian/stretch.dockerfile
+++ /dev/null
@@ -1,60 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 debian:stretch
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# replace repos in archive as release is EOL
-COPY <<"END" /etc/apt/sources.list
-deb http://archive.debian.org/debian/ stretch main contrib non-free
-deb http://archive.debian.org/debian/ stretch-backports main contrib non-free
-deb http://archive.debian.org/debian-security/ stretch/updates main contrib non-free
-END
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python-dev \
-        python3-dev \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        markdown \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        gnupg \
-        apt-transport-https \
-        # for test phase, qemu-smoke-* jobs
-        qemu-system-x86 \
-        # for test phase, qemu-alpine-* jobs
-        cpio \
-        busybox-static \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index da7b8885aa30..2c6eb17bef50 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -354,10 +354,10 @@ alpine-3.18-gcc-debug:
   variables:
     CONTAINER: alpine:3.18
 
-debian-stretch-gcc-debug:
+debian-bookworm-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
-    CONTAINER: debian:stretch
+    CONTAINER: debian:bookworm
 
 debian-bookworm-clang-debug:
   extends: .clang-x86-64-build-debug
@@ -589,31 +589,6 @@ centos-7-gcc-debug:
   variables:
     CONTAINER: centos:7
 
-debian-stretch-gcc:
-  extends: .gcc-x86-64-build
-  variables:
-    CONTAINER: debian:stretch
-
-debian-stretch-clang:
-  extends: .clang-x86-64-build
-  variables:
-    CONTAINER: debian:stretch
-
-debian-stretch-clang-debug:
-  extends: .clang-x86-64-build-debug
-  variables:
-    CONTAINER: debian:stretch
-
-debian-stretch-32-clang-debug:
-  extends: .clang-x86-32-build-debug
-  variables:
-    CONTAINER: debian:stretch-i386
-
-debian-stretch-32-gcc-debug:
-  extends: .gcc-x86-32-build-debug
-  variables:
-    CONTAINER: debian:stretch-i386
-
 debian-buster-gcc-ibt:
   extends: .gcc-x86-64-build
   variables:
@@ -632,11 +607,6 @@ debian-bookworm-gcc:
   variables:
     CONTAINER: debian:bookworm
 
-debian-bookworm-gcc-debug:
-  extends: .gcc-x86-64-build-debug
-  variables:
-    CONTAINER: debian:bookworm
-
 debian-bookworm-gcc-randconfig:
   extends: .gcc-x86-64-build
   variables:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 898d2adc8c5b..d50e522f9f79 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -412,7 +412,7 @@ qemu-smoke-x86-64-gcc:
   script:
     - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-stretch-gcc-debug
+    - debian-bookworm-gcc-debug
 
 qemu-smoke-x86-64-clang:
   extends: .qemu-x86-64
@@ -426,7 +426,7 @@ qemu-smoke-x86-64-gcc-pvh:
   script:
     - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-stretch-gcc-debug
+    - debian-bookworm-gcc-debug
 
 qemu-smoke-x86-64-clang-pvh:
   extends: .qemu-x86-64
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 57db42d10cb5..5140765cee98 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -32,8 +32,6 @@ case "_${CONTAINER}" in
     _fedora) CONTAINER="${BASE}/fedora:29";;
     _focal) CONTAINER="${BASE}/ubuntu:focal" ;;
     _bullseye-ppc64le) CONTAINER="${BASE}/debian:bullseye-ppc64le" ;;
-    _stretch|_) CONTAINER="${BASE}/debian:stretch" ;;
-    _stretch-i386) CONTAINER="${BASE}/debian:stretch-i386" ;;
     _buster-gcc-ibt) CONTAINER="${BASE}/debian:buster-gcc-ibt" ;;
     _bookworm|_) CONTAINER="${BASE}/debian:bookworm" ;;
     _bookworm-i386) CONTAINER="${BASE}/debian:bookworm-i386" ;;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757327.1166202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrls-0000SG-07; Thu, 11 Jul 2024 11:15:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757327.1166202; Thu, 11 Jul 2024 11: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 1sRrlr-0000Rb-PL; Thu, 11 Jul 2024 11:15:31 +0000
Received: by outflank-mailman (input) for mailman id 757327;
 Thu, 11 Jul 2024 11:15: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrlq-0007rD-LO
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:30 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1d1126a-3f76-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:15:29 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52ea7d2a039so780464e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:30 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:15: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: e1d1126a-3f76-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696528; x=1721301328; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tAHuZgHoF2exqi8oaOVtjkQF+Fln/FT2w5YgzvR4eVA=;
        b=ldznZDsntPj1nxdbH6+r65PN/8suh7prGDIZiHhi66mdVizfAnRXodhEo01o/svKBb
         yeAP4W4BVz7sGT7n2whUJQgw7H+i2Mn8KngcKxzjRhwSi2vjMlK+Bfjt9QEzW9LYkfKV
         z9M5Cok+Oea8m7yeH0sGx0+/JgthwtKNk+CAo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696528; x=1721301328;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=tAHuZgHoF2exqi8oaOVtjkQF+Fln/FT2w5YgzvR4eVA=;
        b=rLIW3pDXud8+OOta33JpigkltIrDtUQE3sAAyFBx9M+Dzx14HfDDRJC+u4Txg579A1
         V8C1vQSPxn7EcMz2dMaF+aYBL8MpbnALYEhlTHrcdRotELB4JlBuqsBDI3YXI6LTsiGX
         xM2FgEf54t6mGK0MxXa2pi1wyAqopisyYPbcuUNAe0kro79W/zo0i4MyKo74CnU7jpMS
         EhKJdSfoxzrK31AhlC405l2qn0nqKYlxVoJPQqagOgwGmxqcRGg/DOT8LhUnzu9QU9DF
         mROPAKOewsswiQvih83TPWCI7n9cXN7FQUUCTTsUYUI4dr7A8YNDBfIo6RJtukWL7Fbg
         nyTw==
X-Gm-Message-State: AOJu0Yyc3i8GGIutOjdD6ytFoBT5nWef69kMdJbibqckOc+a+G/Y0JzB
	u9TWx3HyNd70rRT8s9wvADW/KKc27at5l7pKVxyr8NznENEOwY67Dgj7uyhJQHTvgjDnp5dVnIo
	8
X-Google-Smtp-Source: AGHT+IH3eHhpMt5JixBNtCVG5d70gnp7RhzK3eL2/QC1E+fTy3wxvek4a12zgAmqccSYEchjVUdzHg==
X-Received: by 2002:a05:6512:4016:b0:52c:ce28:82c8 with SMTP id 2adb3069b0e04-52eb99d4c5dmr6580137e87.52.1720696528522;
        Thu, 11 Jul 2024 04:15: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 05/12] CI: Drop Ubuntu Trusty testing
Date: Thu, 11 Jul 2024 12:15:10 +0100
Message-Id: <20240711111517.3064810-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is also End of Life.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 automation/build/ubuntu/trusty.dockerfile | 51 -----------------------
 automation/gitlab-ci/build.yaml           | 12 ------
 automation/scripts/containerize           |  1 -
 3 files changed, 64 deletions(-)
 delete mode 100644 automation/build/ubuntu/trusty.dockerfile

diff --git a/automation/build/ubuntu/trusty.dockerfile b/automation/build/ubuntu/trusty.dockerfile
deleted file mode 100644
index 1cda1bbd3fea..000000000000
--- a/automation/build/ubuntu/trusty.dockerfile
+++ /dev/null
@@ -1,51 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 ubuntu:14.04
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python-dev \
-        python3-dev \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        markdown \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
-
-# Remove expired certificate that Let's Encrypt certificates used to relie on.
-# (Not needed anymore)
-RUN sed -i 's#mozilla/DST_Root_CA_X3\.crt#!\0#' /etc/ca-certificates.conf && \
-    update-ca-certificates
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 2c6eb17bef50..3e299f34f461 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -633,18 +633,6 @@ fedora-gcc-debug:
   variables:
     CONTAINER: fedora:29
 
-# Ubuntu Trusty's Clang is 3.4 while Xen requires 3.5
-
-ubuntu-trusty-gcc:
-  extends: .gcc-x86-64-build
-  variables:
-    CONTAINER: ubuntu:trusty
-
-ubuntu-trusty-gcc-debug:
-  extends: .gcc-x86-64-build-debug
-  variables:
-    CONTAINER: ubuntu:trusty
-
 ubuntu-xenial-clang:
   extends: .clang-x86-64-build
   variables:
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 5140765cee98..e9ad20aa0c80 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -39,7 +39,6 @@ case "_${CONTAINER}" in
     _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
     _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
     _bionic) CONTAINER="${BASE}/ubuntu:bionic" ;;
-    _trusty) CONTAINER="${BASE}/ubuntu:trusty" ;;
     _xenial) CONTAINER="${BASE}/ubuntu:xenial" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/suse:opensuse-leap" ;;
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/suse:opensuse-tumbleweed" ;;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757328.1166216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlt-0000rY-95; Thu, 11 Jul 2024 11:15:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757328.1166216; Thu, 11 Jul 2024 11:15: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 1sRrlt-0000r8-2t; Thu, 11 Jul 2024 11:15:33 +0000
Received: by outflank-mailman (input) for mailman id 757328;
 Thu, 11 Jul 2024 11:15:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrls-0007rD-Dd
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:32 +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 e2ef9dd7-3f76-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:15:31 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-58bac81f419so923885a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:31 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:15: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: e2ef9dd7-3f76-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696530; x=1721301330; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YKFCUmHn/euIN4BAYOnChKlddyPJSKX/LUNusA/vBnA=;
        b=LPRcR6d02bMp6ulwU7ivxHXA2ZT0lq2SEXp7kn8vBfLr88GO3obK/FNG7euxzcPz5b
         r7kbevpxjNnTPa9xXcLJRqIeobnmZy9Gaga2ajl8ytss1W1akn6gqH0Nd+PAJR+QtJZ0
         3fTqan71zgHsHPa0AH+DfC9coTaUXYSg3T2+w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696530; x=1721301330;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YKFCUmHn/euIN4BAYOnChKlddyPJSKX/LUNusA/vBnA=;
        b=HbkoAejir2/4M1y0oMpo9HeQdMDGHliTbjcCqWrAtQEMxmUOoLpc4Ud9JleIDpfAo0
         E3VBP3z++SqenJsXuE/JdkdPjH7gxUofaCUN5PV344Zx/7H9otezoFCTVFufKUNUQ3Sv
         C2p1gX3Co7mDeqL1LQU20qDWYTjCrC8F3KWwR+bB98Yku038x0MJ+iigkQwXtEYV32Cg
         FpM5MrHtzDKvoRRqdn/LbeqtP8R0lUh9EyrnLVeDyywCx6IBNE2mvuJHm2QS3BSw9UK4
         H52fajV90eukrMreqsyG95SwayCh38tZGrpf4vtI+RhubPn8NOX1V2ZQai1YN9HN2OQL
         cuCw==
X-Gm-Message-State: AOJu0Yx05OjSuAyLG7Zvn0+WybZ6eUx3utp1eBjzEvKxd0w0Oke+qA3l
	bakc48e1cO1Ftt8d5pZGDNlqOQqYzWNWiDSqzxkZjtR++GoHtVjWGMzzFU91GfGKe31Hm4TI7bw
	G
X-Google-Smtp-Source: AGHT+IFDY6RbUzLLr+uU7QW4rKNVYt3L0k0y4hzz/H9ybWHb9otZkXB4u8qIzu8bcZh0VfCDJ8yUuQ==
X-Received: by 2002:a17:906:451:b0:a77:db36:1cc6 with SMTP id a640c23a62f3a-a780b89a166mr443901466b.68.1720696530438;
        Thu, 11 Jul 2024 04:15: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 06/12] CI: Mark Archlinux/x86 as allowing failures
Date: Thu, 11 Jul 2024 12:15:11 +0100
Message-Id: <20240711111517.3064810-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Archlinux is a rolling distro, and is subject to arbitrary changes as the
container is rebuilt.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 automation/gitlab-ci/build.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 3e299f34f461..1446bc1d0ea7 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -573,11 +573,13 @@ archlinux-gcc:
   extends: .gcc-x86-64-build
   variables:
     CONTAINER: archlinux:current
+  allow_failure: true
 
 archlinux-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
     CONTAINER: archlinux:current
+  allow_failure: true
 
 centos-7-gcc:
   extends: .gcc-x86-64-build
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757329.1166227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlu-0001Cn-I1; Thu, 11 Jul 2024 11:15:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757329.1166227; Thu, 11 Jul 2024 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 1sRrlu-0001CZ-E8; Thu, 11 Jul 2024 11:15:34 +0000
Received: by outflank-mailman (input) for mailman id 757329;
 Thu, 11 Jul 2024 11:15:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrlt-0007rD-Iz
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:33 +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 e3a2f2c4-3f76-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:15:33 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-585e774fd3dso1047240a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:33 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:15: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: e3a2f2c4-3f76-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696532; x=1721301332; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RL63T9x2NC9K+sPMKqGW4jz6nO38f+CeHmJOCnQFiPo=;
        b=EYaZ0U2bBd/mQNFUaoMY7aeHdz4b2GP34jqAuVJUDHw2qfchgg3vuEY5+3m2259SvX
         HsgpHgWTZXgNNvS8XY4jopfVVhUqJmv5vNScqmRTSgUfTwVNFa5Sl1gXZwNjY09aL+NW
         8bMlSrYYZuCl1VEYk4KIrXPqAsP0q4fnzV8iI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696532; x=1721301332;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=RL63T9x2NC9K+sPMKqGW4jz6nO38f+CeHmJOCnQFiPo=;
        b=v+rQqmAfkr6KSzs08eQEaWbgW2HhU7SKVMW3CxrXj7bJ+0/lVyn3hLc3gtVU2AUx8/
         ekqXKiAlvPRFBc9ap/Pnn5gtzeg3ICMO98dv7ijCnHCf6XTMlgnBEMxv2x1SgP4sutOx
         Hfo28oZDO6Gv9/eOUur+AtffsP0xqfqb1K/xWDNwQs9mlzdBVs0hYzKzm5IPLKTljtio
         hVdU+nhOADP7gWWU0NAvRFJ8pYRVTU/9mufj5QMXnszFivM3GwooB5N/EDzH2tZJ8OY7
         6UFx6pL04Cs67rCtvLQ2muXtmPN7xktuy67Pkiud+WLUANEISlKutu+vB6v3xIiLP7Et
         fX1A==
X-Gm-Message-State: AOJu0YxzJ+YyWgbtHUUMa5wfsELX7rMWfK+ZUAmBcbAgf2abcOxg/aEx
	y/pINriafcxigSvn8ymZ2DFR95dEKYaMb85m0GFLhTLfn00L5RotzU5uT9tNAefz8aQlpHOe/Mh
	e
X-Google-Smtp-Source: AGHT+IGupRV+XUgG2IowOX9DRoGWBEplDxEEQEoprzyI0WvvhM+VDMnqnqeyKw+Ly3em6CtOtziqMg==
X-Received: by 2002:a17:906:b319:b0:a72:676a:7d7b with SMTP id a640c23a62f3a-a780b688906mr677491866b.9.1720696532239;
        Thu, 11 Jul 2024 04:15: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 07/12] CI: Introduce a debian:12-ppc64le container
Date: Thu, 11 Jul 2024 12:15:12 +0100
Message-Id: <20240711111517.3064810-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Make it non-root by default, and set XEN_TARGET_ARCH=ppc64 too.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 automation/build/debian/12-ppc64le.dockerfile | 36 +++++++++++++++++++
 automation/scripts/containerize               |  1 +
 2 files changed, 37 insertions(+)
 create mode 100644 automation/build/debian/12-ppc64le.dockerfile

diff --git a/automation/build/debian/12-ppc64le.dockerfile b/automation/build/debian/12-ppc64le.dockerfile
new file mode 100644
index 000000000000..3b311e675ef5
--- /dev/null
+++ b/automation/build/debian/12-ppc64le.dockerfile
@@ -0,0 +1,36 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 debian:bookworm-slim
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CROSS_COMPILE=powerpc64le-linux-gnu-
+ENV XEN_TARGET_ARCH=ppc64
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+        gcc-powerpc64le-linux-gnu
+        python3-minimal
+
+        # Qemu for test phase
+        qemu-system-ppc
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index e9ad20aa0c80..aa3433f0dc98 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -32,6 +32,7 @@ case "_${CONTAINER}" in
     _fedora) CONTAINER="${BASE}/fedora:29";;
     _focal) CONTAINER="${BASE}/ubuntu:focal" ;;
     _bullseye-ppc64le) CONTAINER="${BASE}/debian:bullseye-ppc64le" ;;
+    _bookworm-ppc64le) CONTAINER="${BASE}/debian:12-ppc64le" ;;
     _buster-gcc-ibt) CONTAINER="${BASE}/debian:buster-gcc-ibt" ;;
     _bookworm|_) CONTAINER="${BASE}/debian:bookworm" ;;
     _bookworm-i386) CONTAINER="${BASE}/debian:bookworm-i386" ;;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757330.1166237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlx-0001b5-0m; Thu, 11 Jul 2024 11:15:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757330.1166237; Thu, 11 Jul 2024 11:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlw-0001al-SJ; Thu, 11 Jul 2024 11:15:36 +0000
Received: by outflank-mailman (input) for mailman id 757330;
 Thu, 11 Jul 2024 11:15:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrlv-0007rD-Bd
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:35 +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 e49f2f01-3f76-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:15:34 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a77ec5d3b0dso101533466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:34 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04: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: e49f2f01-3f76-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696533; x=1721301333; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GGXMWhwWhR4eu24XAy5thYClOJ/SD11Mbj0BOcW/2q4=;
        b=gjZwvwC3mWwTWhhznnqIKLhSJxrjv3161TNvkvdX9czRZmF4HQtZleDkAO1lmAI6WW
         WELYekx6PfO5aEUG+KLswHLHEBwcDBiZfYBuci0a3IWp4HL1QVAAH1BvortH75tbxNn+
         CuNaJhqBWlgC3htYQyPljpPgwKevSRuTFAGGo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696533; x=1721301333;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=GGXMWhwWhR4eu24XAy5thYClOJ/SD11Mbj0BOcW/2q4=;
        b=mMFv3Olyycuv5VonahSgWiHnNaYEB8ghftjbv9QegW5PqXS27DBossHQ+Qh19xjyVB
         u9TqhBel84AUNn0DHvKPajPSzQ222bx3QcxSC+EiExsRQCFKhOmt9tkXNRFuIHMpEnRn
         iRRTnFjZ047YmeKBMeZJV41LjRZecCOCWs52dUZHKs0c8xMWGELasmBKBUWo7oLxz9vS
         FUCitTQeeH/Uk0LMmla5caDCHc1kzxrPdh/B8TflKhiygoACaIXJxR89JYESI7XHBBjc
         3V+tmtjRCKmTSmu7j5Q9AE3g1TiBHI7qLrhBdNo84QEMQfsKFazfc8fIo5WpWZY9hBN+
         h7Pw==
X-Gm-Message-State: AOJu0YzBo2cGSb9tKKoiHpx0mc4NSQKqNO6GzKH9Tej5oWAuRVxHlLjg
	Y+8pNgoI7XNI+4O5A+wfZ9PZ64z72Su4snBev9axpAINMMkfcUVRsKsUluZcBrt+yAhg0/HrFmj
	Z
X-Google-Smtp-Source: AGHT+IF7Ddg0v7erLjz9gTj8Rdrl6n/v+Oz4ajX7EkmQdnvN1xRBwsxmyTxjJldGrDJOozxFrK0Hdg==
X-Received: by 2002:a17:906:6a25:b0:a77:c657:5942 with SMTP id a640c23a62f3a-a780b88b3d8mr699173066b.52.1720696533420;
        Thu, 11 Jul 2024 04:15:33 -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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 08/12] CI: Use debian:12-ppc64le for both build and test
Date: Thu, 11 Jul 2024 12:15:13 +0100
Message-Id: <20240711111517.3064810-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

qemu-system-ppc64/8.1.0-ppc64 was added because bullseye's Qemu didn't
understand the powernv9 machine.

However, bookworm's Qemu does, and this is preforable to maintaining a random
build of Qemu ourselves.

Add bookworm builds, and retain bullseye to keep our lower-bound toolchain
testing.

Rename the jobs to follow to sort coherently ($DISTRO-$VERSION-$ARCH-*) and
reposition the jobs to optimise starting the smoke test.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 automation/gitlab-ci/build.yaml               | 59 ++++++++++---------
 automation/gitlab-ci/test.yaml                |  5 +-
 automation/scripts/qemu-smoke-ppc64le.sh      |  4 +-
 .../qemu-system-ppc64/8.1.0-ppc64.dockerfile  | 38 ------------
 4 files changed, 34 insertions(+), 72 deletions(-)
 delete mode 100644 automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 1446bc1d0ea7..316dc4345f29 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -302,20 +302,6 @@ qemu-system-aarch64-6.0.0-arm32-export:
   tags:
     - arm64
 
-# ppc64 test artifacts
-
-qemu-system-ppc64-8.1.0-ppc64-export:
-  extends: .test-jobs-artifact-common
-  image: registry.gitlab.com/xen-project/xen/tests-artifacts/qemu-system-ppc64:8.1.0-ppc64
-  script:
-    - mkdir binaries && cp /qemu-system-ppc64 /skiboot.lid binaries/
-  artifacts:
-    paths:
-      - binaries/qemu-system-ppc64
-      - binaries/skiboot.lid
-  tags:
-    - x86_64
-
 # x86_64 test artifacts
 
 alpine-3.18-rootfs-export:
@@ -364,6 +350,13 @@ debian-bookworm-clang-debug:
   variables:
     CONTAINER: debian:bookworm
 
+debian-12-ppc64le-gcc-debug:
+  extends: .gcc-ppc64le-cross-build-debug
+  variables:
+    CONTAINER: debian:12-ppc64le
+    KBUILD_DEFCONFIG: ppc64_defconfig
+    HYPERVISOR_ONLY: y
+
 # Arm32 cross-build
 
 debian-bookworm-gcc-arm32:
@@ -500,21 +493,6 @@ archlinux-current-gcc-riscv64-randconfig:
     RANDCONFIG: y
     <<: *riscv-fixed-randconfig
 
-# Power cross-build
-debian-bullseye-gcc-ppc64le:
-  extends: .gcc-ppc64le-cross-build
-  variables:
-    CONTAINER: debian:bullseye-ppc64le
-    KBUILD_DEFCONFIG: ppc64_defconfig
-    HYPERVISOR_ONLY: y
-
-debian-bullseye-gcc-ppc64le-debug:
-  extends: .gcc-ppc64le-cross-build-debug
-  variables:
-    CONTAINER: debian:bullseye-ppc64le
-    KBUILD_DEFCONFIG: ppc64_defconfig
-    HYPERVISOR_ONLY: y
-
 # Yocto test jobs
 yocto-qemuarm64:
   extends: .yocto-test-arm64
@@ -738,3 +716,26 @@ opensuse-tumbleweed-gcc-debug:
   variables:
     CONTAINER: suse:opensuse-tumbleweed
   allow_failure: true
+
+# PowerPC builds (x86 cross)
+debian-bullseye-gcc-ppc64le:
+  extends: .gcc-ppc64le-cross-build
+  variables:
+    CONTAINER: debian:bullseye-ppc64le
+    KBUILD_DEFCONFIG: ppc64_defconfig
+    HYPERVISOR_ONLY: y
+
+debian-bullseye-gcc-ppc64le-debug:
+  extends: .gcc-ppc64le-cross-build-debug
+  variables:
+    CONTAINER: debian:bullseye-ppc64le
+    KBUILD_DEFCONFIG: ppc64_defconfig
+    HYPERVISOR_ONLY: y
+
+debian-12-ppc64le-gcc:
+  extends: .gcc-ppc64le-cross-build
+  variables:
+    CONTAINER: debian:12-ppc64le
+    KBUILD_DEFCONFIG: ppc64_defconfig
+    HYPERVISOR_ONLY: y
+
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index d50e522f9f79..70c946f87799 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -69,7 +69,7 @@
 .qemu-ppc64le:
   extends: .test-jobs-common
   variables:
-    CONTAINER: debian:bullseye-ppc64le
+    CONTAINER: debian:12-ppc64le
     LOGFILE: qemu-smoke-ppc64le.log
   artifacts:
     paths:
@@ -447,5 +447,4 @@ qemu-smoke-ppc64le-powernv9-gcc:
   script:
     - ./automation/scripts/qemu-smoke-ppc64le.sh powernv9 2>&1 | tee ${LOGFILE}
   needs:
-    - qemu-system-ppc64-8.1.0-ppc64-export
-    - debian-bullseye-gcc-ppc64le-debug
+    - debian-12-ppc64le-gcc-debug
diff --git a/automation/scripts/qemu-smoke-ppc64le.sh b/automation/scripts/qemu-smoke-ppc64le.sh
index 701d81107d18..9088881b731b 100755
--- a/automation/scripts/qemu-smoke-ppc64le.sh
+++ b/automation/scripts/qemu-smoke-ppc64le.sh
@@ -12,8 +12,8 @@ rm -f ${serial_log}
 set +e
 
 timeout -k 1 20 \
-binaries/qemu-system-ppc64 \
-    -bios binaries/skiboot.lid \
+qemu-system-ppc64 \
+    -bios skiboot.lid \
     -M $machine \
     -m 2g \
     -smp 1 \
diff --git a/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile b/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile
deleted file mode 100644
index e28d68649239..000000000000
--- a/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile
+++ /dev/null
@@ -1,38 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 debian:bullseye-slim
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV QEMU_VERSION=8.1.0
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        curl \
-        python3 \
-        python3-pip \
-        python3-elementpath \
-        ninja-build \
-        pkg-config \
-        libglib2.0-dev \
-        libpixman-1-dev \
-        && \
-    \
-    curl -fsSLO https://download.qemu.org/qemu-"$QEMU_VERSION".tar.xz && \
-    tar xvJf qemu-"$QEMU_VERSION".tar.xz && \
-    cd qemu-"$QEMU_VERSION" && \
-    ./configure --target-list=ppc64-softmmu && \
-    make -j$(nproc) && \
-    cp ./build/qemu-system-ppc64 / && \
-    cp ./build/qemu-bundle/usr/local/share/qemu/skiboot.lid / && \
-    cd /build && \
-    rm -rf qemu-"$QEMU_VERSION"* && \
-    apt-get autoremove -y && \
-    apt-get clean && \
-    rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757331.1166243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlx-0001f2-Hk; Thu, 11 Jul 2024 11:15:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757331.1166243; Thu, 11 Jul 2024 11: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 1sRrlx-0001eB-8r; Thu, 11 Jul 2024 11:15:37 +0000
Received: by outflank-mailman (input) for mailman id 757331;
 Thu, 11 Jul 2024 11:15: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrlw-0007rD-NZ
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:36 +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 e5704b61-3f76-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:15:36 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a797c62565aso85395966b.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:36 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:15: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: e5704b61-3f76-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696535; x=1721301335; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J1K5VtaPNhxunkEsliC4eDIJIZHlapEJxDQkRvmcxLs=;
        b=pXUpUeuHQgexaSFUDc2Cim4UX8FPHBiiMHfonhjLfRxWGKPy9Vsg2iCQuMoESLBQpF
         bX3T0OvaxUu2sEmEb+Jhy2U8slS7S48mJMQ5I4JdW/LkmRqGDzv0Tt8IwpdpK7H4ygLk
         l8/nShu3TkDxnCuJbNyT2KebyB+tif3qkKzvI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696535; x=1721301335;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=J1K5VtaPNhxunkEsliC4eDIJIZHlapEJxDQkRvmcxLs=;
        b=UL0wYO6+S9uJXJ5PCAxOqKBWE8qJlolfcGdXzB0aPeNLHtxAjwcz0LmHPq+vUp7QqD
         +uYuTP6XcVNGuwfjK/b/yVmi2AqJa8eLwqm2kLKpBS/+iEtPRIK3vC1H6iuR5cY1WkGV
         Q37kpgxEjazW3wG4E0QwD3rzKWM03NRjQnMnnL7cfs0R9U6yYNFGAQtoMV1j4La5iQs1
         +lJzRsoH2/1LTqOaF9lv1/dqGzls1rhvvjALnhQ85i4CQ9GfhEvyPsmzwmBKAit84mjg
         SWiNuwMbahlktZ+hOsVuxvdyq7LVe4FSGNlquUtWH43XR4BcUgBlgGdTRz1kKa1WHp2l
         Pyjw==
X-Gm-Message-State: AOJu0YzmrVuCUj+gqWCqz1AmS2tcYDmRQzCohzVkL9AcGP4JYCeFmn3C
	nOQgCAiYBCLtvQxfTPN8sYL+Wn8wcj62YcPzKETZnOZ/dIQSgocO/0X0wQo/9mT+PbNu9uNBM62
	R
X-Google-Smtp-Source: AGHT+IFqyNl92G3n15wNOOj5JNaGHK+GM4H6qlZ9spenU3XWIEK3ierhsCZw7bUPzFW3Lh2dEtqEJQ==
X-Received: by 2002:a17:906:c319:b0:a77:c5a5:f652 with SMTP id a640c23a62f3a-a780b6b308bmr503072966b.26.1720696535184;
        Thu, 11 Jul 2024 04:15:35 -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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 09/12] CI: Refresh bullseye-ppc64le as debian:11-ppc64le
Date: Thu, 11 Jul 2024 12:15:14 +0100
Message-Id: <20240711111517.3064810-10-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... in the style of bookworm-ppc64le

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 automation/build/debian/11-ppc64le.dockerfile | 33 +++++++++++++++++++
 .../build/debian/bullseye-ppc64le.dockerfile  | 32 ------------------
 automation/gitlab-ci/build.yaml               |  8 ++---
 automation/scripts/containerize               |  2 +-
 4 files changed, 38 insertions(+), 37 deletions(-)
 create mode 100644 automation/build/debian/11-ppc64le.dockerfile
 delete mode 100644 automation/build/debian/bullseye-ppc64le.dockerfile

diff --git a/automation/build/debian/11-ppc64le.dockerfile b/automation/build/debian/11-ppc64le.dockerfile
new file mode 100644
index 000000000000..d846b670d02c
--- /dev/null
+++ b/automation/build/debian/11-ppc64le.dockerfile
@@ -0,0 +1,33 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 debian:bullseye-slim
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CROSS_COMPILE=powerpc64le-linux-gnu-
+ENV XEN_TARGET_ARCH=ppc64
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+        gcc-powerpc64le-linux-gnu
+        python3-minimal
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/debian/bullseye-ppc64le.dockerfile b/automation/build/debian/bullseye-ppc64le.dockerfile
deleted file mode 100644
index e166d205f38c..000000000000
--- a/automation/build/debian/bullseye-ppc64le.dockerfile
+++ /dev/null
@@ -1,32 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 debian:bullseye-slim
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-# Add compiler path
-ENV CROSS_COMPILE powerpc64le-linux-gnu-
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes --no-install-recommends install \
-        bison \
-        build-essential \
-        checkpolicy \
-        flex \
-        gawk \
-        gcc-powerpc64le-linux-gnu \
-        make \
-        python3-minimal \
-        # QEMU runtime dependencies for test phase
-        libglib2.0-0 \
-        libpixman-1-0 \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 316dc4345f29..e081664c4e95 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -718,17 +718,17 @@ opensuse-tumbleweed-gcc-debug:
   allow_failure: true
 
 # PowerPC builds (x86 cross)
-debian-bullseye-gcc-ppc64le:
+debian-11-ppc64le-gcc:
   extends: .gcc-ppc64le-cross-build
   variables:
-    CONTAINER: debian:bullseye-ppc64le
+    CONTAINER: debian:11-ppc64le
     KBUILD_DEFCONFIG: ppc64_defconfig
     HYPERVISOR_ONLY: y
 
-debian-bullseye-gcc-ppc64le-debug:
+debian-11-ppc64le-gcc-debug:
   extends: .gcc-ppc64le-cross-build-debug
   variables:
-    CONTAINER: debian:bullseye-ppc64le
+    CONTAINER: debian:11-ppc64le
     KBUILD_DEFCONFIG: ppc64_defconfig
     HYPERVISOR_ONLY: y
 
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index aa3433f0dc98..5c3f6782d9cd 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -31,7 +31,7 @@ case "_${CONTAINER}" in
     _centos7) CONTAINER="${BASE}/centos:7" ;;
     _fedora) CONTAINER="${BASE}/fedora:29";;
     _focal) CONTAINER="${BASE}/ubuntu:focal" ;;
-    _bullseye-ppc64le) CONTAINER="${BASE}/debian:bullseye-ppc64le" ;;
+    _bullseye-ppc64le) CONTAINER="${BASE}/debian:11-ppc64le" ;;
     _bookworm-ppc64le) CONTAINER="${BASE}/debian:12-ppc64le" ;;
     _buster-gcc-ibt) CONTAINER="${BASE}/debian:buster-gcc-ibt" ;;
     _bookworm|_) CONTAINER="${BASE}/debian:bookworm" ;;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757332.1166257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrlz-0002EP-Lf; Thu, 11 Jul 2024 11:15:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757332.1166257; Thu, 11 Jul 2024 11: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 1sRrlz-0002E6-Hh; Thu, 11 Jul 2024 11:15:39 +0000
Received: by outflank-mailman (input) for mailman id 757332;
 Thu, 11 Jul 2024 11:15: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrlx-0007rD-WE
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:38 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e64191d0-3f76-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:15:37 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52ea7bdde68so872292e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:37 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:15: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: e64191d0-3f76-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696536; x=1721301336; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cbVg7w4alkvOoQ5s2c/0B5pTZEicSWylHq2BvrumP6Q=;
        b=GrWkvRWJkeHSTlr/sILTkHjDVr423aI4b7i4xBBb+VRMEWRnyQm1SNKP6UDFaCQMhT
         PPdjk23cGOz816ACWtTY76j+B4zhYwEX0TFuJ5YsYD0oCfFh4nK7sUmWxB2HHfQ6seBl
         Q9bob53f57kKnoIHDrgM4chsVaSKuCX8ufnA4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696536; x=1721301336;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cbVg7w4alkvOoQ5s2c/0B5pTZEicSWylHq2BvrumP6Q=;
        b=T2N32k9mBvsNY7tQ09vijgy8e7ulqWQFRucQ5Um5lEeASu3F3aGzK4Ig6ag5VSC0lV
         4O70JvL0tNxOeWUadMxYt9k/bnlNbRRytmAJjQ4ur3AJtcr+dJlCp3dtafBHppFrkrw/
         hTlPP/EDr/zSjcHPuR6Cbr6tpsTjYZJBuCdm5nzClTFD4hHH7udjz8oivgiPeAacZu8Y
         5202CdgnFIWXmklYjCkyOCS1wzpArlv4W9oB7WxsjtRXzF5N8sR7gvfbAqYFHunWZsvC
         X9GtKdt+vVLolCpEGa/YwfR0Oo46No0haHMNjyRbqEnIwUL1E/24dnJoZsf0cdfAopKi
         o78w==
X-Gm-Message-State: AOJu0Yy1WgCZC2M11UDb1Ckk1EzTGlXI6MTFenCT+MPCwLAtY8VycWf2
	EiMHxJF/TljArcAnxub1fGbUOlUZaTWuMgZ+TfDt590DBIff46PH1BDwOHmkSdALrOT48klChoo
	u
X-Google-Smtp-Source: AGHT+IEL4NyFSqGSNl8loq9qRYBr5SimlEEEgEkOozgj694FlwWQ/JTAUZD3wSHsANGFzjuohj8PyQ==
X-Received: by 2002:a05:6512:4016:b0:52c:e3ad:3fbf with SMTP id 2adb3069b0e04-52eb99d16aamr6026096e87.42.1720696536562;
        Thu, 11 Jul 2024 04:15:36 -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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 10/12] CI: Introduce debian:11/12-riscv64 containers
Date: Thu, 11 Jul 2024 12:15:15 +0100
Message-Id: <20240711111517.3064810-11-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For starters, they're slightly smaller:

  $ docker image list <snip>
  registry.gitlab.com/xen-project/xen/debian      12-riscv64         772MB
  registry.gitlab.com/xen-project/xen/debian      11-riscv64         422MB
  registry.gitlab.com/xen-project/xen/archlinux   current-riscv64    2.32GB

They also not rolling distros, so will be more predicatable testing for the
stable trees in the future.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 automation/build/debian/11-riscv64.dockerfile | 33 +++++++++++++++++
 automation/build/debian/12-riscv64.dockerfile | 36 +++++++++++++++++++
 2 files changed, 69 insertions(+)
 create mode 100644 automation/build/debian/11-riscv64.dockerfile
 create mode 100644 automation/build/debian/12-riscv64.dockerfile

diff --git a/automation/build/debian/11-riscv64.dockerfile b/automation/build/debian/11-riscv64.dockerfile
new file mode 100644
index 000000000000..1c99bc89ea1a
--- /dev/null
+++ b/automation/build/debian/11-riscv64.dockerfile
@@ -0,0 +1,33 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 debian:bullseye-slim
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CROSS_COMPILE=riscv64-linux-gnu-
+ENV XEN_TARGET_ARCH=riscv64
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+        gcc-riscv64-linux-gnu
+        python3-minimal
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/debian/12-riscv64.dockerfile b/automation/build/debian/12-riscv64.dockerfile
new file mode 100644
index 000000000000..03fd4b03059b
--- /dev/null
+++ b/automation/build/debian/12-riscv64.dockerfile
@@ -0,0 +1,36 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 debian:bookworm-slim
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CROSS_COMPILE=riscv64-linux-gnu-
+ENV XEN_TARGET_ARCH=riscv64
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+        gcc-riscv64-linux-gnu
+        python3-minimal
+
+        # Qemu for test phase
+        qemu-system-riscv64
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757333.1166266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrm2-0002eA-Bt; Thu, 11 Jul 2024 11:15:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757333.1166266; Thu, 11 Jul 2024 11: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 1sRrm2-0002dB-0D; Thu, 11 Jul 2024 11:15:42 +0000
Received: by outflank-mailman (input) for mailman id 757333;
 Thu, 11 Jul 2024 11: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrlz-0007rD-Ur
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:39 +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 e745a80c-3f76-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:15:39 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a77e5929033so110996866b.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:39 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:15: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: e745a80c-3f76-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696538; x=1721301338; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/58JNO+Inrk9wj+NdeQQj6nZyBQF1LcNhJ0B6w0/d4Y=;
        b=Sonh6Fh1hD1yLaUP98DAVGAaDnxP6/43lYczFbB9hUU5POzbQz+tMXnDE4cUom/jqz
         XzMy5XoiVVRHgjdF5/h4NVVhIchCsbnmYUSpKPbZEp0TZPsY9ILz30JCCNzDNSf/SiSR
         m2MV+0Vp50W8f657h/Mv2Gn/J4PLm/ZZ5Jq1k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696538; x=1721301338;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=/58JNO+Inrk9wj+NdeQQj6nZyBQF1LcNhJ0B6w0/d4Y=;
        b=d0ZcigWPsgdBJbT8gCjDvmSnc3wwEfvAIvgi7J1UPom+cr5FC3vVWHO0THDZbzcpOj
         NFdansCvoAWl/iM0kkg/6f6p1Z519NOzkpYUR0TsepA1aiJpNQpbQfrTxW2muxHhJJaL
         xrprUnp4uN9PLWhRy61mw3sfSv+og9bdPHNtsOJUoKWWf2Jhel2z05LzQ++rpnEJtYQd
         R4T2VBhoj5VRdhCq0LhcKUduxyulDymi13GMtR26qSJsL7GEquL5KxZdf4IFE3dfNIkp
         CZQGvZz7l1RIcXaL6RiYLx3kodsDFH4bJY5cY9iQbCUlbtJu6N4Ad8dPA/vTttvjbl3Q
         hLlw==
X-Gm-Message-State: AOJu0Yx8tJpr8h8vTkgxqNseLgQo45hWo/pq+YSrDlK45pOSXszsqvsN
	d5QUd2G4B3U0Nvru4eMaSX5inaAy14dK/6NlarYvuYUshFG9fMnr9JsX+H/XZGueSYn9p8tSzt5
	4
X-Google-Smtp-Source: AGHT+IFUhjpe6I7SpkUuVRldLMGG9DNg5sTjpySDOkwmu/oP04WKHAaoix/XKfmfMefITqm1OqwgkQ==
X-Received: by 2002:a17:906:1808:b0:a77:c96b:a113 with SMTP id a640c23a62f3a-a780b881c98mr515861566b.60.1720696538294;
        Thu, 11 Jul 2024 04:15: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 11/12] CI: Swap to debian for riscv64 build and test
Date: Thu, 11 Jul 2024 12:15:16 +0100
Message-Id: <20240711111517.3064810-12-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The containers are both much smaller, with stable toolchains over time, and
this at least means we're not doing all testing with a single compiler.

Rename the jobs to follow to sort coherently ($DISTRO-$VERSION-$ARCH-*) and
reposition the jobs to optimise starting the smoke test.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 .../archlinux/current-riscv64.dockerfile      | 22 -----
 automation/gitlab-ci/build.yaml               | 83 +++++++++++--------
 automation/gitlab-ci/test.yaml                |  4 +-
 automation/scripts/containerize               |  3 +-
 4 files changed, 52 insertions(+), 60 deletions(-)
 delete mode 100644 automation/build/archlinux/current-riscv64.dockerfile

diff --git a/automation/build/archlinux/current-riscv64.dockerfile b/automation/build/archlinux/current-riscv64.dockerfile
deleted file mode 100644
index f7770bf82a78..000000000000
--- a/automation/build/archlinux/current-riscv64.dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 archlinux
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-# Packages needed for the build
-RUN pacman --noconfirm --needed -Syu \
-    base-devel \
-    git \
-    inetutils \
-    riscv64-linux-gnu-binutils \
-    riscv64-linux-gnu-gcc \
-    riscv64-linux-gnu-glibc \
-    # For test phase
-    qemu-system-riscv
-
-# Add compiler path
-ENV CROSS_COMPILE=riscv64-linux-gnu-
-
-RUN useradd --create-home user
-USER user
-WORKDIR /build
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index e081664c4e95..4b9d80cc5632 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -357,6 +357,13 @@ debian-12-ppc64le-gcc-debug:
     KBUILD_DEFCONFIG: ppc64_defconfig
     HYPERVISOR_ONLY: y
 
+debian-12-riscv64-gcc-debug:
+  extends: .gcc-riscv64-cross-build-debug
+  variables:
+    CONTAINER: debian:12-riscv64
+    KBUILD_DEFCONFIG: tiny64_defconfig
+    HYPERVISOR_ONLY: y
+
 # Arm32 cross-build
 
 debian-bookworm-gcc-arm32:
@@ -458,41 +465,6 @@ alpine-3.18-gcc-debug-arm64-earlyprintk:
       CONFIG_EARLY_UART_CHOICE_PL011=y
       CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
 
-# RISC-V 64 cross-build
-.riscv-fixed-randconfig:
-  variables: &riscv-fixed-randconfig
-    EXTRA_FIXED_RANDCONFIG: |
-      CONFIG_BOOT_TIME_CPUPOOLS=n
-      CONFIG_COVERAGE=n
-      CONFIG_EXPERT=y
-      CONFIG_GRANT_TABLE=n
-      CONFIG_MEM_ACCESS=n
-      CONFIG_PERF_COUNTERS=n
-      CONFIG_LIVEPATCH=n
-      CONFIG_XSM=n
-
-archlinux-current-gcc-riscv64:
-  extends: .gcc-riscv64-cross-build
-  variables:
-    CONTAINER: archlinux:current-riscv64
-    KBUILD_DEFCONFIG: tiny64_defconfig
-    HYPERVISOR_ONLY: y
-
-archlinux-current-gcc-riscv64-debug:
-  extends: .gcc-riscv64-cross-build-debug
-  variables:
-    CONTAINER: archlinux:current-riscv64
-    KBUILD_DEFCONFIG: tiny64_defconfig
-    HYPERVISOR_ONLY: y
-
-archlinux-current-gcc-riscv64-randconfig:
-  extends: .gcc-riscv64-cross-build
-  variables:
-    CONTAINER: archlinux:current-riscv64
-    KBUILD_DEFCONFIG: tiny64_defconfig
-    RANDCONFIG: y
-    <<: *riscv-fixed-randconfig
-
 # Yocto test jobs
 yocto-qemuarm64:
   extends: .yocto-test-arm64
@@ -739,3 +711,44 @@ debian-12-ppc64le-gcc:
     KBUILD_DEFCONFIG: ppc64_defconfig
     HYPERVISOR_ONLY: y
 
+# RISC-V 64 cross-build
+debian-11-riscv64-gcc:
+  extends: .gcc-riscv64-cross-build
+  variables:
+    CONTAINER: debian:11-riscv64
+    KBUILD_DEFCONFIG: tiny64_defconfig
+    HYPERVISOR_ONLY: y
+
+debian-11-riscv64-gcc-debug:
+  extends: .gcc-riscv64-cross-build-debug
+  variables:
+    CONTAINER: debian:11-riscv64
+    KBUILD_DEFCONFIG: tiny64_defconfig
+    HYPERVISOR_ONLY: y
+
+debian-12-riscv64-gcc:
+  extends: .gcc-riscv64-cross-build
+  variables:
+    CONTAINER: debian:12-riscv64
+    KBUILD_DEFCONFIG: tiny64_defconfig
+    HYPERVISOR_ONLY: y
+
+.riscv-fixed-randconfig:
+  variables: &riscv-fixed-randconfig
+    EXTRA_FIXED_RANDCONFIG: |
+      CONFIG_BOOT_TIME_CPUPOOLS=n
+      CONFIG_COVERAGE=n
+      CONFIG_EXPERT=y
+      CONFIG_GRANT_TABLE=n
+      CONFIG_MEM_ACCESS=n
+      CONFIG_PERF_COUNTERS=n
+      CONFIG_LIVEPATCH=n
+      CONFIG_XSM=n
+
+debian-12-riscv64-gcc-randconfig:
+  extends: .gcc-riscv64-cross-build
+  variables:
+    CONTAINER: debian:12-riscv64
+    KBUILD_DEFCONFIG: tiny64_defconfig
+    RANDCONFIG: y
+    <<: *riscv-fixed-randconfig
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 70c946f87799..f7e1753ead34 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -56,7 +56,7 @@
 .qemu-riscv64:
   extends: .test-jobs-common
   variables:
-    CONTAINER: archlinux:current-riscv64
+    CONTAINER: debian:12
     LOGFILE: qemu-smoke-riscv64.log
   artifacts:
     paths:
@@ -440,7 +440,7 @@ qemu-smoke-riscv64-gcc:
   script:
     - ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE}
   needs:
-    - archlinux-current-gcc-riscv64-debug
+    - debian-12-riscv64-gcc-debug
 
 qemu-smoke-ppc64le-powernv9-gcc:
   extends: .qemu-ppc64le
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 5c3f6782d9cd..6dbf55c8f89a 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -27,12 +27,13 @@ case "_${CONTAINER}" in
     _alpine) CONTAINER="${BASE}/alpine:3.18" ;;
     _alpine-arm64v8) CONTAINER="${BASE}/alpine:3.18-arm64v8" ;;
     _archlinux|_arch) CONTAINER="${BASE}/archlinux:current" ;;
-    _riscv64) CONTAINER="${BASE}/archlinux:current-riscv64" ;;
     _centos7) CONTAINER="${BASE}/centos:7" ;;
     _fedora) CONTAINER="${BASE}/fedora:29";;
     _focal) CONTAINER="${BASE}/ubuntu:focal" ;;
     _bullseye-ppc64le) CONTAINER="${BASE}/debian:11-ppc64le" ;;
     _bookworm-ppc64le) CONTAINER="${BASE}/debian:12-ppc64le" ;;
+    _bullseye-riscv64) CONTAINER="${BASE}/debian:11-riscv64" ;;
+    _bookworm-riscv64) CONTAINER="${BASE}/debian:12-riscv64" ;;
     _buster-gcc-ibt) CONTAINER="${BASE}/debian:buster-gcc-ibt" ;;
     _bookworm|_) CONTAINER="${BASE}/debian:bookworm" ;;
     _bookworm-i386) CONTAINER="${BASE}/debian:bookworm-i386" ;;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:15:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:15:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757334.1166276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrm3-0002vv-QS; Thu, 11 Jul 2024 11:15:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757334.1166276; Thu, 11 Jul 2024 11: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 1sRrm3-0002vV-Mn; Thu, 11 Jul 2024 11:15:43 +0000
Received: by outflank-mailman (input) for mailman id 757334;
 Thu, 11 Jul 2024 11: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRrm2-0007rJ-1b
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:15:42 +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 e80b69f7-3f76-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 13:15:40 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a77d9217e6fso99243166b.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:15:40 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ff7d5sm246386666b.142.2024.07.11.04.15.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04: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: e80b69f7-3f76-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720696539; x=1721301339; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OC0NczTz0Vex9AArMEqFVcwewes4uJlfc6tJ7aYcqpE=;
        b=Qwip5gJKIFj5a7PCdx2YUUyuphZttosFqHo8Oq8w3jYuqh3hOS0NDdpgJQpenqtRFw
         D+6wn8H5T4i++F9s2ddXaC4dy0EijbBzsn/6yJ6D18Vga70ADHjBSHJcuOEPNQP6eTzu
         l+YHHvXal1suty3DfqhVbOaP/a4OjE+5PiEDU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720696539; x=1721301339;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=OC0NczTz0Vex9AArMEqFVcwewes4uJlfc6tJ7aYcqpE=;
        b=YWBddFxmx/gRaCi1JFEf8hy+D/lD6QWzgmChSp0Mc5JVT4q2MN1sQHK2JM2ESEukvs
         u42vhsPiIbvANKWdgJv1tX/qK17F8sOgStmqBsqxjD3L88DcwI7lqLEeRMIMowGGEb9n
         /1ZySENz3ePul7vnLPHEXJoS4RWkMN/77kaTg+9P4+NMsLvfOW03qxPExIV5FNyB7ejf
         9B6X/i0tKwAIjYeKVAWalYP8c8tFv4sDPLfvzQwO169BXUJmw0llR5D4hIlEIC5QtO+j
         7+kjOtkO/KJs0nnDuJ7geVVCPE6xkSrOcW88vRmh9URowSrwwXE4A1g9UAd+ick1Ro/g
         4+EQ==
X-Gm-Message-State: AOJu0Yzl6lEfZ2FtIoHzNBlK7p346NweODaXPF4M9YO6NXwZfDgddirq
	efF645hjmn51rJd4902dAegKL3xY1G/K1HoGSrDHC8qQdjdiUXw0x0sQVEjczhEATwEBUVk/Oa3
	Q
X-Google-Smtp-Source: AGHT+IGzueVYQrd+84hpYvuyG/HPwMgW2Wl89zcTITEe9G0q0UUak58I4GmnP+NOvk9hpoUxDiq4RQ==
X-Received: by 2002:a17:906:a848:b0:a77:e2e3:355f with SMTP id a640c23a62f3a-a780b7051f2mr465011966b.41.1720696539578;
        Thu, 11 Jul 2024 04:15:39 -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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 12/12] CI: Refresh and upgrade the GCC-IBT container
Date: Thu, 11 Jul 2024 12:15:17 +0100
Message-Id: <20240711111517.3064810-13-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Upgrade from Debian buster to bookworm, GCC 11.3 to 11.4 and to be a non-root
container.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 ...ockerfile => 12-x86_64-gcc-ibt.dockerfile} | 81 +++++++++++--------
 automation/gitlab-ci/build.yaml               |  4 +-
 automation/scripts/containerize               |  2 +-
 3 files changed, 49 insertions(+), 38 deletions(-)
 rename automation/build/debian/{buster-gcc-ibt.dockerfile => 12-x86_64-gcc-ibt.dockerfile} (50%)

diff --git a/automation/build/debian/buster-gcc-ibt.dockerfile b/automation/build/debian/12-x86_64-gcc-ibt.dockerfile
similarity index 50%
rename from automation/build/debian/buster-gcc-ibt.dockerfile
rename to automation/build/debian/12-x86_64-gcc-ibt.dockerfile
index ed9367aafbec..3ce60e7d9466 100644
--- a/automation/build/debian/buster-gcc-ibt.dockerfile
+++ b/automation/build/debian/12-x86_64-gcc-ibt.dockerfile
@@ -1,28 +1,33 @@
 # syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 debian:buster-slim AS builder
+FROM --platform=linux/amd64 debian:bookworm-slim AS builder
 
 ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
 
-RUN apt-get update && \
-    apt-get --quiet --yes --no-install-recommends install \
-        bison \
-        build-essential \
-        ca-certificates \
-        flex \
-        g++-multilib \
-        libc6-dev-i386 \
-        libgmp-dev \
-        libisl-dev \
-        libmpc-dev \
-        libmpfr-dev \
-        patch \
+RUN <<EOF
+#!/bin/bash
+    set -e
+    apt-get -y update
+
+    DEPS=(
+        bison
+        build-essential
+        ca-certificates
+        flex
+        g++-multilib
+        libc6-dev-i386
+        libgmp-dev
+        libisl-dev
+        libmpc-dev
+        libmpfr-dev
+        patch
         wget
+    )
 
-RUN mkdir /build
-WORKDIR /build
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
 
-RUN wget -q https://ftp.gnu.org/gnu/gcc/gcc-11.3.0/gcc-11.3.0.tar.xz -O - | tar xJ --strip=1
+RUN wget -q https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.xz -O - | tar xJ --strip=1
 RUN wget -q https://xenbits.xen.org/people/andrewcoop/gcc-11.2-Add-fcf-check-attribute-yes-no.patch -O - | patch -p1
 RUN ./configure \
         --prefix=/opt/gcc-11-ibt \
@@ -42,29 +47,35 @@ RUN ./configure \
 RUN make -j`nproc` && make -j`nproc` install
 
 
-FROM --platform=linux/amd64 debian:buster-slim
+FROM --platform=linux/amd64 debian:bookworm-slim
 COPY --from=builder /opt/gcc-11-ibt /opt/gcc-11-ibt
 
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
 
 ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
 ENV PATH="/opt/gcc-11-ibt/bin:${PATH}"
 
-RUN mkdir /build
-WORKDIR /build
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
 
-RUN apt-get update && \
-    apt-get --quiet --yes --no-install-recommends install \
-        bison \
-        build-essential \
-        checkpolicy \
-        flex \
-        gawk \
-        make \
-        python3-minimal \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+        python3-minimal
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 4b9d80cc5632..b4139414bc8e 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -541,10 +541,10 @@ centos-7-gcc-debug:
   variables:
     CONTAINER: centos:7
 
-debian-buster-gcc-ibt:
+debian-12-x86_64-gcc-ibt:
   extends: .gcc-x86-64-build
   variables:
-    CONTAINER: debian:buster-gcc-ibt
+    CONTAINER: debian:12-x86_64-gcc-ibt
     RANDCONFIG: y
     EXTRA_FIXED_RANDCONFIG: |
       CONFIG_XEN_IBT=y
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 6dbf55c8f89a..4d5669c5ad01 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -34,7 +34,7 @@ case "_${CONTAINER}" in
     _bookworm-ppc64le) CONTAINER="${BASE}/debian:12-ppc64le" ;;
     _bullseye-riscv64) CONTAINER="${BASE}/debian:11-riscv64" ;;
     _bookworm-riscv64) CONTAINER="${BASE}/debian:12-riscv64" ;;
-    _buster-gcc-ibt) CONTAINER="${BASE}/debian:buster-gcc-ibt" ;;
+    _bookworm-x86_64-gcc-ibt) CONTAINER="${BASE}/debian:12-x86_64-gcc-ibt" ;;
     _bookworm|_) CONTAINER="${BASE}/debian:bookworm" ;;
     _bookworm-i386) CONTAINER="${BASE}/debian:bookworm-i386" ;;
     _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:29:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:29:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757378.1166287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRryn-0000yq-2M; Thu, 11 Jul 2024 11:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757378.1166287; Thu, 11 Jul 2024 11:28:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRrym-0000yj-VB; Thu, 11 Jul 2024 11:28:52 +0000
Received: by outflank-mailman (input) for mailman id 757378;
 Thu, 11 Jul 2024 11:28:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRryl-0000yd-IJ
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:28:51 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be93e7a2-3f78-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:28:49 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2eea7e2b073so8901551fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:28:50 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bbe2cd9csm3360214a12.28.2024.07.11.04.28.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:28: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: be93e7a2-3f78-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720697329; x=1721302129; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=j2Aeeb3VOojpqupTXRa2Ktuj14z0yQzrWrpsT65IUYo=;
        b=d4H532RioxH/KNIUIxxlKZCZGoakEAZjIPWakQv1wwycrnfOs5zhfjT0u+rn7OEapS
         KZFYB8bQl9d+i+OYJI+ZgnftiVKOBYzS38bApd6JrmTSJMq38ojNNdNkh9ITi981TDAF
         VZ3PUQQkNox4iPKqX7lUXPWoeo6UwnX75n71uHFvLhgHzGCrF8S5PG/xbA4FN7f4EtRG
         ztFzsM45fUn8YYGIhW1k/DXr47hmbu6FInJTOYpRsBiXtODKISBRB0e96uN29Z1u7RKN
         AM69XDZ7X7Y6DOBKHWPoL+Br9hahkar2rBGgLqlstJSIFyyNCuDNfGzPawZqMSUh5j5w
         UdtQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720697329; x=1721302129;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=j2Aeeb3VOojpqupTXRa2Ktuj14z0yQzrWrpsT65IUYo=;
        b=cXhFURx802wDRgGYYegUAgN+XNF6h/SoRAEtTSsQWgFtPdpzOHpn5b57xJqQ8NNSnI
         soBoiQPyZHI1oiTu9gWsiQYTeNfwPxpMMKSbxydgVetxB1v48dINHeYlpmDvBsxGgO49
         bbQnempbM4EWHXpb1RUymIckhbJVULHO4PiufK/n4EKeddfkUpuQfno7NM1B1EX843eO
         iVxug//B6A71bll8JZNkISfwthuwJrf8viP4CvKQ6VzowzDYCW6SaNgq433P0GtxIT09
         ULk8qgmDyMOG4FrRGIlZPAMJctehmNAGwe8N6iW8jlCIkppd+zPIrxKDKp6NewcD7agP
         U3+w==
X-Forwarded-Encrypted: i=1; AJvYcCVAPdD9hyWr4EusdHEIVyIwOMcXRimWCWO6/iebX0GYt1hkE8wC99r/PUgwhswJcGzv2JaCUlJvgvIj7Id2/euQHiCjT+2ElQU4ZvUSSz4=
X-Gm-Message-State: AOJu0YzPrbXlNAxPXELD96oNfgzJF1UM5ivV0UeNm7Feo93NQbMq4VSl
	H2BJrjzqh76aPg8Gp4eYZb0TJPyd6nm7Vh87G9oetQ+sUvU5LUS9
X-Google-Smtp-Source: AGHT+IF/tOpVNbKRZtVMKvoCbgV5SqKogGrNO5TRVliMmnkoP5ApDVfNVi1aL5R6XhLVyrubqA62cA==
X-Received: by 2002:a2e:9b89:0:b0:2ee:81eb:6bd6 with SMTP id 38308e7fff4ca-2eeb30fd3ebmr47324001fa.23.1720697329021;
        Thu, 11 Jul 2024 04:28:49 -0700 (PDT)
Message-ID: <040e6b1d9b8bbe2b316e0e5b891c2564df28335d.camel@gmail.com>
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, 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>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 13:28:47 +0200
In-Reply-To: <e58a9128-efdd-4bff-9562-08d5605d0a13@suse.com>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
	 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
	 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
	 <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
	 <9592e857-bf1c-4e26-acd7-dfb5bb12103e@suse.com>
	 <fda966116ce17b9be0b1a467bd31436a6b5ad225.camel@gmail.com>
	 <e58a9128-efdd-4bff-9562-08d5605d0a13@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

QWRkIEp1bGllbiBhcyBoZSBhc2tlZCBiYXNpY2FsbHkgdGhlIHNhbWUgcXVlc3Rpb24gaW4gYW5v
dGhlciB0aHJlYWQuCgpPbiBUaHUsIDIwMjQtMDctMTEgYXQgMTI6NTAgKzAyMDAsIEphbiBCZXVs
aWNoIHdyb3RlOgo+IE9uIDExLjA3LjIwMjQgMTI6MjYsIE9sZWtzaWkgd3JvdGU6Cj4gPiBPbiBU
aHUsIDIwMjQtMDctMTEgYXQgMTE6NTQgKzAyMDAsIEphbiBCZXVsaWNoIHdyb3RlOgo+ID4gPiBP
biAxMS4wNy4yMDI0IDExOjQwLCBPbGVrc2lpIHdyb3RlOgo+ID4gPiA+IE9uIFdlZCwgMjAyNC0w
Ny0xMCBhdCAxNDozOCArMDIwMCwgSmFuIEJldWxpY2ggd3JvdGU6Cj4gPiA+ID4gPiBPbiAwMy4w
Ny4yMDI0IDEyOjQyLCBPbGVrc2lpIEt1cm9jaGtvIHdyb3RlOgo+ID4gPiA+ID4gPiBFeGNlcHQg
bWFwcGluZyBvZiBGRFQsIGl0IGlzIGFsc28gcHJpbnRpbmcgY29tbWFuZCBsaW5lCj4gPiA+ID4g
PiA+IHBhc3NlZAo+ID4gPiA+ID4gPiBieQo+ID4gPiA+ID4gPiBhIERUQiBhbmQgaW5pdGlhbGl6
ZSBib290aW5mbyBmcm9tIGEgRFRCLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBJJ20gZ2xhZCB0aGUg
ZGVzY3JpcHRpb24gaXNuJ3QgZW1wdHkgaGVyZS4gSG93ZXZlciwgLi4uCj4gPiA+ID4gPiAKPiA+
ID4gPiA+ID4gLS0tIGEveGVuL2FyY2gvcmlzY3YvcmlzY3Y2NC9oZWFkLlMKPiA+ID4gPiA+ID4g
KysrIGIveGVuL2FyY2gvcmlzY3YvcmlzY3Y2NC9oZWFkLlMKPiA+ID4gPiA+ID4gQEAgLTQxLDYg
KzQxLDkgQEAgRlVOQyhzdGFydCkKPiA+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gwqDCoMKgwqDC
oMKgwqDCoCBqYWzCoMKgwqDCoCBzZXR1cF9pbml0aWFsX3BhZ2V0YWJsZXMKPiA+ID4gPiA+ID4g
wqAKPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgIG12wqDCoMKgwqDCoCBhMCwgczEKPiA+ID4g
PiA+ID4gK8KgwqDCoMKgwqDCoMKgIGphbMKgwqDCoMKgIGZkdF9tYXAKPiA+ID4gPiA+ID4gKwo+
ID4gPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgIC8qIENhbGN1bGF0ZSBwcm9wZXIgVkEgYWZ0ZXIg
anVtcCBmcm9tIDE6MSBtYXBwaW5nCj4gPiA+ID4gPiA+ICovCj4gPiA+ID4gPiA+IMKgwqDCoMKg
wqDCoMKgwqAgbGHCoMKgwqDCoMKgIGEwLCAuTF9wcmltYXJ5X3N3aXRjaGVkCj4gPiA+ID4gPiA+
IMKgwqDCoMKgwqDCoMKgwqAgc3ViwqDCoMKgwqAgYTAsIGEwLCBzMgo+ID4gPiA+ID4gCj4gPiA+
ID4gPiAuLi4gaXQgY291bGQgZG8gd2l0aCBjbGFyaWZ5aW5nIHdoeSB0aGlzIG5lZWRzIGNhbGxp
bmcgZnJvbQo+ID4gPiA+ID4gYXNzZW1ibHkKPiA+ID4gPiA+IGNvZGUuIE1hcHBpbmcgdGhlIEZE
VCBjbGVhcmx5IGxvb2tzIGxpa2Ugc29tZXRoaW5nIHRoYXQgd2FudHMKPiA+ID4gPiA+IGRvaW5n
Cj4gPiA+ID4gPiBmcm9tIHN0YXJ0X3hlbigpLCBpLmUuIGZyb20gQyBjb2RlLgo+ID4gPiA+IGZk
dF9tYXAoKSBleHBlY3RlZCB0byB3b3JrIHdoaWxlIE1NVSBpcyBvZmYgYXMgaXQgaXMgdXNpbmcK
PiA+ID4gPiBzZXR1cF9pbml0aWFsX21hcHBpbmcoKSB3aGljaCBpcyB3b3JraW5nIHdpdGggcGh5
c2ljYWwgYWRkcmVzcy4KPiA+ID4gCj4gPiA+IEhtbSwgaW50ZXJlc3RpbmcuIFdoZW4gdGhlIE1N
VSBpcyBvZmYsIHdoYXQgZG9lcyAibWFwIiBtZWFuPyBZZXQKPiA+ID4gdGhlbgo+ID4gPiBpdCBm
ZWVscyBJJ20gbWlzdW5kZXJzdGFuZGluZyB3aGF0IHlvdSdyZSBtZWFuaW5nIHRvIHRlbGwgbWUg
Li4uCj4gPiBMZXQncyBsb29rIGF0IGV4YW1wbGVzIG9mIHRoZSBjb2RlOgo+ID4gMS4gVGhlIGZp
cnN0IHRoaW5nIGlzc3VlIHdpbGwgYmUgaGVyZToKPiA+IMKgwqAgdm9pZCogX19pbml0IGVhcmx5
X2ZkdF9tYXAocGFkZHJfdCBmZHRfcGFkZHIpCj4gPiDCoMKgIHsKPiA+IMKgwqDCoMKgwqDCoCB1
bnNpZ25lZCBsb25nIGR0X3BoeXNfYmFzZSA9IGZkdF9wYWRkcjsKPiA+IMKgwqDCoMKgwqDCoCB1
bnNpZ25lZCBsb25nIGR0X3ZpcnRfYmFzZTsKPiA+IMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25n
IGR0X3ZpcnRfc2l6ZTsKPiA+IMKgwqAgCj4gPiDCoMKgwqDCoMKgwqAgQlVJTERfQlVHX09OKE1J
Tl9GRFRfQUxJR04gPCA4KTsKPiA+IMKgwqDCoMKgwqDCoCBpZiAoICFmZHRfcGFkZHIgfHwgZmR0
X3BhZGRyICUgTUlOX0ZEVF9BTElHTiB8fCBmZHRfcGFkZHIgJQo+ID4gU1pfMk0gCj4gPiDCoMKg
IHx8Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmR0X3RvdGFsc2l6ZShmZHRfcGFkZHIp
ID4gQk9PVF9GRFRfVklSVF9TSVpFICkKPiA+IE1NVSBkb2Vzbid0IG5vdyBhYm91dCB2aXJ0dWFs
IGFkZHJlc3Mgb2YgZmR0X3BhZGRyIGFzIGZkdF9wYWRkcgo+ID4gd2Fzbid0Cj4gPiBtYXBwZWQu
Cj4gPiAKPiA+IDIuIEluIHNldHVwX2luaXRpYWxfbWFwcGluZygpIHdlIGhhdmUgSEFORExFX1BH
VEJMKCkgd2hlcmUgcGd0YmwgaXMKPiA+IGEKPiA+IHBvaW50ZXIgdG8gcGh5c2ljYWwgYWRkcmVz
cyAoIHdoaWNoIGFsc2/CoCBzaG91bGQgYmUgbWFwcGVkIGluIE1NVQo+ID4gaWYgd2UKPiA+IHdh
bnQgdG8gYWNjZXNzIGl0IGFmdGVyIE1NVSBpcyBlbmFibGVkICk6Cj4gPiDCoMKgICNkZWZpbmUK
PiA+IEhBTkRMRV9QR1RCTChjdXJyX2x2bF9udW0pwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAKPiA+IMKgwqAgXAo+
ID4gwqDCoMKgwqDCoMKgIGluZGV4ID0gcHRfaW5kZXgoY3Vycl9sdmxfbnVtLAo+ID4gcGFnZV9h
ZGRyKTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIAo+ID4g
wqDCoCBcCj4gPiDCoMKgwqDCoMKgwqAgaWYgKCBwdGVfaXNfdmFsaWQocGd0YmxbaW5kZXhdKQo+
ID4gKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgCj4gPiDCoMKgIFwKPiA+IMKgwqDCoMKgwqDCoAo+ID4ge8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIAo+ID4gwqDCoCBcCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBGaW5kIEx7IDAtMyB9
IHRhYmxlCj4gPiAqL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAKPiA+IMKgwqAgXAo+ID4gwqDCoMKgwqDCoMKg
wqDCoMKgwqAgcGd0YmwgPSAocHRlX3QKPiA+ICopcHRlX3RvX3BhZGRyKHBndGJsW2luZGV4XSk7
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAKPiA+IMKgwqAgXAo+ID4gwqDCoMKg
wqDCoMKgCj4gPiB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgCj4gPiDCoMKgIFwKPiA+IMKgwqDCoMKgwqDCoAo+
ID4gZWxzZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIAo+ID4gwqDCoCBcCj4gPiDCoMKgwqDCoMKgwqAKPiA+IHvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCAKPiA+IMKgwqAgXAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogQWxsb2NhdGUg
bmV3IEx7MC0zfSBwYWdlIHRhYmxlCj4gPiAqL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIAo+ID4gwqDCoCBcCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBpZiAoIG1tdV9kZXNjLT5wZ3RibF9jb3VudCA9PSBQR1RCTF9JTklUSUFMX0NPVU5UCj4gPiAp
wqDCoMKgwqDCoMKgwqDCoMKgwqAgCj4gPiDCoMKgIFwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg
Cj4gPiB7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIAo+ID4gwqDCoCBcCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IGVhcmx5X3ByaW50aygiKFhFTikgTm8gaW5pdGlhbCB0YWJsZQo+ID4gYXZhaWxhYmxlXG4iKTvC
oMKgwqDCoMKgwqAgCj4gPiDCoMKgIFwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
LyogcGFuaWMoKSwgQlVHKCkgb3IgQVNTRVJUKCkgYXJlbid0IHJlYWR5IG5vdy4KPiA+ICovwqDC
oMKgwqDCoMKgwqAgCj4gPiDCoMKgIFwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAK
PiA+IGRpZSgpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAK
PiA+IMKgwqAgXAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiA+IH3CoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgCj4gPiDCoMKg
IFwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1tdV9kZXNjLQo+ID4gPnBndGJsX2NvdW50Kys7
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgCj4gPiDCoMKgIFwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBn
dGJsW2luZGV4XSA9IHBhZGRyX3RvX3B0ZSgodW5zaWduZWQgbG9uZyltbXVfZGVzYy0KPiA+IMKg
wqAgPm5leHRfcGd0YmwswqDCoMKgIFwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiA+IFBURV9W
QUxJRCk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgCj4gPiDC
oMKgIFwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBndGJsID0gbW11X2Rlc2MtCj4gPiA+bmV4
dF9wZ3RibDvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIAo+ID4gwqDCoCBcCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtbXVf
ZGVzYy0+bmV4dF9wZ3RibCArPQo+ID4gUEFHRVRBQkxFX0VOVFJJRVM7wqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgCj4gPiDCoMKgIFwKPiA+IMKgwqDCoMKgwqDCoCB9Cj4g
PiDCoMKgIAo+ID4gU28gd2UgY2FuJ3QgdXNlIHNldHVwX2luaXRpYWxfbWFwcGluZygpIHdoZW4g
TU1VIGlzIGVuYWJsZWQgYXMKPiA+IHRoZXJlIGlzCj4gPiBhIHBhcnQgb2YgdGhlIGNvZGUgd2hp
Y2ggdXNlcyBwaHlzaWNhbCBhZGRyZXNzIHdoaWNoIGFyZSBub3QKPiA+IG1hcHBlZC4KPiA+IAo+
ID4gV2UgaGF2ZSBvbmx5IG1hcHBpbmcgZm9yIGZvciBsaW5lcl9zdGFydCA8LT4gbG9hZF9zdGFy
dCBhbmQgdGhlCj4gPiBzbWFsbAo+ID4gcGllY2Ugb2YgY29kZSBpbiB0ZXh0IHNlY3Rpb24gKCBf
aWRlbnRfc3RhcnQgKToKPiA+IMKgwqDCoCBzZXR1cF9pbml0aWFsX21hcHBpbmcoJm1tdV9kZXNj
LAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
bGlua2VyX3N0YXJ0LAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgbGlua2VyX2VuZCwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxvYWRfc3RhcnQpOwo+ID4gCj4gPiDCoMKgwqAgaWYgKCBs
aW5rZXJfc3RhcnQgPT0gbG9hZF9zdGFydCApCj4gPiDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4g
PiAKPiA+IMKgwqDCoCBpZGVudF9zdGFydCA9ICh1bnNpZ25lZCBsb25nKXR1cm5fb25fbW11Cj4g
PiAmWEVOX1BUX0xFVkVMX01BUF9NQVNLKDApOwo+ID4gwqDCoMKgIGlkZW50X2VuZCA9IGlkZW50
X3N0YXJ0ICsgUEFHRV9TSVpFOwo+ID4gCj4gPiDCoMKgwqAgc2V0dXBfaW5pdGlhbF9tYXBwaW5n
KCZtbXVfZGVzYywKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIGlkZW50X3N0YXJ0LAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWRlbnRfZW5kLAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWRlbnRfc3RhcnQpOwo+ID4gCj4gPiBXZSBj
YW4gdXNlIHNldHVwX2luaXRpYWxfbWFwcGluZygpIHdoZW4gTU1VIGlzIGVuYWJsZWQgb25seSBp
biBjYXNlCj4gPiB3aGVuIGxpbmtlcl9zdGFydCBpcyBlcXVhbCB0byBsb2FkX3N0YXJ0Lgo+ID4g
Cj4gPiBBcyBhbiBvcHRpb24gd2UgY2FuIGNvbnNpZGVyIGZvciBhcyBhIGNhbmRpZGF0ZSBmb3Ig
aWRlbnRhdHkKPiA+IG1hcHBpbmcKPiA+IGFsc28gc2VjdGlvbiAuYnNzLnBhZ2VfYWxpZ25lZCB3
aGVyZSByb290IGFuZCBub25yb290IHBhZ2UgdGFibGVzCj4gPiBhcmUKPiA+IGxvY2F0ZWQuCj4g
PiAKPiA+IERvZXMgaXQgbWFrZSBzZW5zZSBub3c/Cj4gCj4gSSB0aGluayBzbywgeWV0IGF0IHRo
ZSBzYW1lIHRpbWUgaXQgb25seSBjaGFuZ2VzIHRoZSBxdWVzdGlvbjogV2h5IGlzCj4gaXQKPiB0
aGF0IHlvdSBhYnNvbHV0ZWx5IG5lZWQgdG8gdXNlIHNldHVwX2luaXRpYWxfbWFwcGluZygpPwpU
aGVyZSBpcyBubyBzdHJpY3QgcmVxdWlyZW1lbnQgdG8gdXNlIHNldHVwX2luaXRpYWxfbWFwcGlu
ZygpLiBUaGF0CmZ1bmN0aW9uIGlzIGF2YWlsYWJsZSB0byBtZSBhdCB0aGUgbW9tZW50LCBhbmQg
SSBoYXZlbid0IGZvdW5kIGEgYmV0dGVyCm9wdGlvbiBvdGhlciB0aGFuIHJldXNpbmcgd2hhdCBJ
IGN1cnJlbnRseSBoYXZlLgoKSWYgbm90IHRvIHVzZSBzZXR1cF9pbml0aWFsX21hcHBpbmcoKSB0
aGVuIGl0IGlzIG5lZWRlZCB0byBpbnRyb2R1Y2UKeGVuX3t1bn1tYXBfdGFibGUoKSwgY3JlYXRl
X3hlbl90YWJsZSgpLCB4ZW5fcHRfbmV4dF9sZXZlbCgpLAp4ZW5fcHRfdXBkYXRle19lbnRyeX0o
KSwgbWFwX3BhZ2VzX3RvX3hlbigpLiBXaGF0IEkgZGlkIGEgbGl0dGxlIGJpdApsYXRlciBoZXJl
OgpodHRwczovL2dpdGxhYi5jb20veGVuLXByb2plY3QvcGVvcGxlL29sa3VyL3hlbi8tL2NvbW1p
dC9hNDYxOWQwOTAyZTBhMDEyYWMyZjcwOWQzMTYyMWE4ZDQ5OWJjYTk3CkFtIEkgY29uZnVzaW5n
IHNvbWV0aGluZz8KCkNvdWxkIHlvdSBwbGVhc2UgcmVjb21tZW5kIG1lIGhvdyB0byBiZXR0ZXI/
CgoKCj4gU3VyZWx5IGRvd24gdGhlCj4gcm9hZCB0aGVyZSBhcmUgZ29pbmcgdG8gYmUgbW9yZSB0
aGluZyB0aGF0IG5lZWQgbWFwcGluZyByZWxhdGl2ZWx5Cj4gZWFybHksCj4gYnV0IGFmdGVyIHRo
ZSBNTVUgd2FzIGVuYWJsZWQuCkZvciBzdXJlLCBidXQgZm9yIG1hcHBpbmcgb3RoZXIgdGhpbmdz
IGl0IHdvdWxkIGJlIGludHJvZHVjZWQKc2V0dXBfbW0oKSBhbmQgbmVjZXNzYXJ5IGZ1bmN0aW9u
cyB0byBpbXBsZW1lbnRpbml0aWFsaXphdGlvbiBhbmQKaGFuZGxpbmcgb2YgbW0uCgp+IE9sZWtz
aWkK



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:30:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:30:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757392.1166296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRs0o-0002s2-DE; Thu, 11 Jul 2024 11:30:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757392.1166296; Thu, 11 Jul 2024 11: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 1sRs0o-0002rv-AY; Thu, 11 Jul 2024 11:30:58 +0000
Received: by outflank-mailman (input) for mailman id 757392;
 Thu, 11 Jul 2024 11: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRs0n-0002rp-4f
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:30:57 +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 09d3bd4f-3f79-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:30:56 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-58b447c519eso1035772a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:30:56 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bda30a24sm3364739a12.86.2024.07.11.04.30.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 04:30: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: 09d3bd4f-3f79-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720697456; x=1721302256; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rrfCwx32lgECMEE6wZyprTGjDEyQrDE0dJq6TARcQXU=;
        b=kgaCYSnlmU4JdgwtyaaJsT32eZmLqtBb72Lu+TCH8cqQ8G7o0Ye975ZpYAqtQb0VlM
         9Qn7V9b1TU+qpsx7aGydf1LNAksd9ElhtfTd/kvxPNo5KCF3NC/L6UNAK2evbme53RdU
         +ENRajYnQaPI8SiJMoHXLECjvPMyfUakIC1OA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720697456; x=1721302256;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rrfCwx32lgECMEE6wZyprTGjDEyQrDE0dJq6TARcQXU=;
        b=Mb4zpjOIlVf6SmosqzGbYDLPLu4NlSQxUDZ9d1ly9us0kM8hB49umtepIqPn7Hmir3
         ccqww5uolPrTiUY9fKKKSHvLu8HGXDNNVp2mppSEqFiwXtd7nCO0RqWB4e6n/sHQes0j
         /xAPoBuAQb8oqLOWnoMlQR6iRf5dWdPavVu7bLw62cepj481wplGWyDd4ToUqkMVQ+QC
         45T2eHsFNYiJnKoKd9BGRou2aAjH4kwKZ3kzyg25eiHTsTOTDJu2tgijD26yrvJFOhzK
         9AP7EsaLtWCKWFRjrz0W03PNEGr2u9GvlJG7Q2gEbvuI+XrrC+EjzYZG8+XcvHKmu90K
         1JLQ==
X-Gm-Message-State: AOJu0YzYbkBaum+utWdOT/KUAu03vPBoW1K0iwlSkZLG2QCr2WsnpRYq
	X6qLdkPdSkxles530ZZBtSdFygJGqH2pvCuyEum+yurnwn33l9a90EdcX3K4KEM=
X-Google-Smtp-Source: AGHT+IGxQk0DVltCMGOZQdWc2D9dQw0FT+b/Jw2WGclTEQN9pWmSuGurNB0ijFRhZ4oCAq0PwfoD8A==
X-Received: by 2002:a05:6402:28a5:b0:58c:804a:6f0a with SMTP id 4fb4d7f45d1cf-594ba59f87emr4877619a12.19.1720697455615;
        Thu, 11 Jul 2024 04:30:55 -0700 (PDT)
Message-ID: <f0bdd5ca-3f85-4998-9476-18e768352bec@citrix.com>
Date: Thu, 11 Jul 2024 12:30:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
To: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr>
 <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
 <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/07/2024 12:09 pm, Fonyuy-Asheri Caleb wrote:
> ----- Original Message -----
>> From: "Andrew Cooper" <andrew.cooper3@citrix.com>
>> To: "Fonyuy-Asheri Caleb" <fonyuy-asheri.caleb@inria.fr>, "xen-devel" <xen-devel@lists.xenproject.org>
>> Sent: Thursday, July 11, 2024 12:45:18 PM
>> Subject: Re: Help with Understanding vcpu xstate restore error during vm migration
>> On 11/07/2024 11:38 am, Fonyuy-Asheri Caleb wrote:
>>> Hello,
>>>
>>> I am trying to understand the causes of the vcpu xstate restore error
>>> during live migration.
>>> I get the following error during live migration:
>>>
>>> xc: error: Failed to set vcpu0's xsave info (22 = Invalid argument):
>>> Internal error
>>>
>>> I was able to locate the failure point to the file
>>> xen/arch/x86/domctl.c  with the following check.
>>>
>>> if( evc->size<PV_XSAVE_HDR_SIZE||
>>> evc->size>PV_XSAVE_SIZE(xfeature_mask) )
>>> gotovcpuextstate_out;
>>>
>>> I know this is related to the number of xstates handled by the source
>>> server. Please can
>>> someone explain to me how these states are computed?
>>>
>>> I earlier thought it was simply the number xsave dependent features on
>>> the CPU but it seems
>>> to be more than that.
>>>
>>> Thanks in advance.
>> It is certainly more complicated than that.
>>
>> What that's saying is that Xen doesn't think that the size of the blob
>> matches expectations.  That said - I'm in the middle of rewriting this
>> logic because lots of it is subtly wrong.
> Please do you mind giving me more insight on the logic currently implemented 
> and maybe what is wrong with it? It will be important for me since what I'm 
> doing is research work.

See 9e6dbbe8bf40^..267122a24c49

> How do the values evc->size and xfeature_mask relate to the source and target
> processor xstates (or xstate management)?

The lower bounds check is for normal reasons, while the upper bounds
check is a sanity "does this image appear to have more states active
than the current system".

The upper bound is bogus, because "what this VM has" has no true
relationship to "what Xen decided to turn on by default at boot".
>> To start with, which version (or versions?) of Xen, and what hardware?
> Xen version 4.18.3-pre

As you're not on a specific tag, exact changeset?

Not that it likely matters - there shouldn't be anything relevant in
staging-4.18 since RELEASE-4.18.2 as far as this goes.

There are backports of 2 of bugfixes, but in a way that should be
practical change on 4.18.

> My CPU is : Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz

Ok, so Haswell.

Let me stare at the CPUID dumps and see if anything stands out.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757395.1166307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRs1P-0003KA-SE; Thu, 11 Jul 2024 11:31:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757395.1166307; Thu, 11 Jul 2024 11:31:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRs1P-0003K3-ON; Thu, 11 Jul 2024 11:31:35 +0000
Received: by outflank-mailman (input) for mailman id 757395;
 Thu, 11 Jul 2024 11:31: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRs1O-0002rp-RB
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:31:34 +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 20871211-3f79-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 13:31:34 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a6fd513f18bso103004866b.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 04:31:34 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6e58fasm245601866b.71.2024.07.11.04.31.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 04:31: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: 20871211-3f79-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720697494; x=1721302294; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=XVWFypspqZbwXhEAyE6wz9nfMnqjMMjBTQbws6Ueq2o=;
        b=KBL8shdPhlPdbzD5RfNf5yjH3f4Deb2tpUYejygOo8+j9Z0DwaUHNwNBmXfV6K5bUt
         qq8Sb+qbXPBo8wNEyElqmBB4DEqN16K3cq0rrrgRL8R4GXv+jJ6RGxZ7ZqpdU82CrP3/
         xCrHkImiAMBx9Dv1OKIrgpWVpl0P+I9kkHZSwqt8vjGxcO4R9m+Oq4sbJHbYrnNwALcx
         c2Id60WpwmWP8PF4PpLzDG999bKuyWX9wkUG4coJjbikMJb12qIZ8S8YfIvkU3vSwmu1
         kY+KIro04T+lM74wXX2NTTsTIoWcu185yNIyqRbrRGmxaJQGLTprtPbpWAngvs5b/PDy
         4HqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720697494; x=1721302294;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=XVWFypspqZbwXhEAyE6wz9nfMnqjMMjBTQbws6Ueq2o=;
        b=wqSQeyEB1spgkTgjjeT3rAzXoVLsGgmD4XkTRk1K3HeYieRrD5ZxLetTsSKBzeiL01
         dfU6YtKrNL+qSe8gLrmTD7YTj2LF/H0uqPdvC19J7PR4u3kMyA5MTjaE7BqkMDx9t+XJ
         G9paOlnYgG+HsQHHU+nVw/tY2Ikjfs4S1dTX6rinwtQgDnROkcdSdtLSbthxvDufgoGk
         3CyMdwqh58o0X6k1XHwDktmI2TCk/E+AXGxVyE+ePLBujR6wH8lmvhcF6oDH3u7/pCRA
         4PvZliYQv0tcFpZ+XOMSbhOr8cJ+BCIpDgb2CttvKrVjhRTXeLROq5e/qM6wMNcO8WbC
         QCwQ==
X-Forwarded-Encrypted: i=1; AJvYcCUfmP6LEUooro0yGI2Y5/NZgq15lIQeNaHkXaNr/wHRwG6DpE8SemYGDSlZRpEgWjTP3xaUPnNXMuqKaS4JedojaZn+XcBDfMpPNTn9ltM=
X-Gm-Message-State: AOJu0YzVvmRoZF/yBECfKfNNPxvMKDIvbswBZs+yAbXZbZhaCNO7zGZB
	CuWTSakqYTXPbiubJuy/UzOPB9MSL8L7BMFiOi9CFNoBbz0Q1lXv
X-Google-Smtp-Source: AGHT+IEVP7P3ByMyvbKr6WCMBrEaCWv3OrBQ1fGHLtncXDmMJJxzio3FM55Vr7/QxM/MBIL7nvu5sg==
X-Received: by 2002:a17:906:2bc5:b0:a77:aebc:8fb1 with SMTP id a640c23a62f3a-a780b6b1befmr505339566b.17.1720697493462;
        Thu, 11 Jul 2024 04:31:33 -0700 (PDT)
Message-ID: <e93e2deca92c64b71cfff83eac49efa834d4733b.camel@gmail.com>
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
From: Oleksii <oleksii.kurochko@gmail.com>
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>, Stefano Stabellini
 <sstabellini@kernel.org>,  xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 13:31:32 +0200
In-Reply-To: <5b97113d-12f7-4051-88da-f08bb9cb3a70@xen.org>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
	 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
	 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
	 <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
	 <5b97113d-12f7-4051-88da-f08bb9cb3a70@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Thu, 2024-07-11 at 11:50 +0100, Julien Grall wrote:
> Hi,
Hi Julien,

>=20
> On 11/07/2024 10:40, Oleksii wrote:
> > On Wed, 2024-07-10 at 14:38 +0200, Jan Beulich wrote:
> > > On 03.07.2024 12:42, Oleksii Kurochko wrote:
> > > > Except mapping of FDT, it is also printing command line passed
> > > > by
> > > > a DTB and initialize bootinfo from a DTB.
> > >=20
> > > I'm glad the description isn't empty here. However, ...
> > >=20
> > > > --- a/xen/arch/riscv/riscv64/head.S
> > > > +++ b/xen/arch/riscv/riscv64/head.S
> > > > @@ -41,6 +41,9 @@ FUNC(start)
> > > > =C2=A0=20
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 jal=C2=A0=C2=
=A0=C2=A0=C2=A0 setup_initial_pagetables
> > > > =C2=A0=20
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mv=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 a0, s1
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 jal=C2=A0=C2=A0=C2=A0=
=C2=A0 fdt_map
> > > > +
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Calculate=
 proper VA after jump from 1:1 mapping */
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 la=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 a0, .L_primary_switched
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sub=C2=A0=C2=
=A0=C2=A0=C2=A0 a0, a0, s2
> > >=20
> > > ... it could do with clarifying why this needs calling from
> > > assembly
> > > code. Mapping the FDT clearly looks like something that wants
> > > doing
> > > from start_xen(), i.e. from C code.
> > fdt_map() expected to work while MMU is off as it is using
> > setup_initial_mapping() which is working with physical address.
>=20
> Somewhat related to what Jan is asking. You only seem to part the FDT
> in=20
> start_xen(). So why do you need to call fdt_map() that early?
Let's continue our discussion in another thread ( I added you there ).

But the answer on your question is here:
https://lore.kernel.org/xen-devel/cover.1720002425.git.oleksii.kurochko@gma=
il.com/T/#m2890200a53c6ea2101e0f9e9ea77f589bd187e26

And
here:https://lore.kernel.org/xen-devel/cover.1720002425.git.oleksii.kurochk=
o@gmail.com/T/#m4e20792121b97465db7081cc4c1e27bdb15cdd51

Let me know if the link above answers your question.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 11:54:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 11:54:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757410.1166316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRsNl-0000PL-K1; Thu, 11 Jul 2024 11:54:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757410.1166316; Thu, 11 Jul 2024 11:54:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRsNl-0000PE-HZ; Thu, 11 Jul 2024 11:54:41 +0000
Received: by outflank-mailman (input) for mailman id 757410;
 Thu, 11 Jul 2024 11:54: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 1sRsNk-0000P8-TZ
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 11:54:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sRsNj-00005x-3m; Thu, 11 Jul 2024 11:54:39 +0000
Received: from [15.248.3.91] (helo=[10.24.67.27])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sRsNi-0006FK-RT; Thu, 11 Jul 2024 11:54:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=4c14mXkF5coarEc+a2hc7DKFgGUnsQvZ0Ng0SvEWVTY=; b=cX+NKEO/oJJj0KU2km5MbIXhR4
	L4DPiBoiFvDA8YB0XuATXyLZ6n3wisdhXM2FrNIb4nd5HxxwA/RitixTiMKuJtmquUbCJQbt3LgnG
	TDYBydRALTvATtXbvlZ/vui7SwhuPmn6gk07rFEGU1kvRq90nbh5O3T11aEo1eHi7bm8=;
Message-ID: <5c6fbbbf-f6bf-43b3-9628-a92c69e3adb1@xen.org>
Date: Thu, 11 Jul 2024 12:54:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
Content-Language: en-GB
To: Oleksii <oleksii.kurochko@gmail.com>, 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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
 <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
 <9592e857-bf1c-4e26-acd7-dfb5bb12103e@suse.com>
 <fda966116ce17b9be0b1a467bd31436a6b5ad225.camel@gmail.com>
 <e58a9128-efdd-4bff-9562-08d5605d0a13@suse.com>
 <040e6b1d9b8bbe2b316e0e5b891c2564df28335d.camel@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <040e6b1d9b8bbe2b316e0e5b891c2564df28335d.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 11/07/2024 12:28, Oleksii wrote:
> Add Julien as he asked basically the same question in another thread.

Thanks!

> 
> On Thu, 2024-07-11 at 12:50 +0200, Jan Beulich wrote:
>> On 11.07.2024 12:26, Oleksii wrote:
>>> On Thu, 2024-07-11 at 11:54 +0200, Jan Beulich wrote:
>>>> On 11.07.2024 11:40, Oleksii wrote:
>>>>> On Wed, 2024-07-10 at 14:38 +0200, Jan Beulich wrote:
>>>>>> On 03.07.2024 12:42, Oleksii Kurochko wrote:
>>> Does it make sense now?
>>
>> I think so, yet at the same time it only changes the question: Why is
>> it
>> that you absolutely need to use setup_initial_mapping()?
> There is no strict requirement to use setup_initial_mapping(). That
> function is available to me at the moment, and I haven't found a better
> option other than reusing what I currently have.

I am not very familiar with the code base for RISC-V, but looking at the 
context in the patch, it seems you will still have the identity mapping 
mapped until start_xen().

I assume we don't exactly know where the loader will put Xen in memory. 
Which means that the region may clash with your defined runtime regions 
(such as the FDT). Did I misunderstand anything?

That's one of the reason on Arm we are trying to enable the MMU very 
early. The only thing we setup is a mapping for Xen (and earlyprintk) 
all the rest will be mapped once the MMU is on.

With that, the only thing you need to take care off the runtime Xen 
address overlapping with the identity mapping.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 12:14:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 12:14:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757423.1166327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRsgZ-0005Fd-Em; Thu, 11 Jul 2024 12:14:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757423.1166327; Thu, 11 Jul 2024 12: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 1sRsgZ-0005FW-Bq; Thu, 11 Jul 2024 12:14:07 +0000
Received: by outflank-mailman (input) for mailman id 757423;
 Thu, 11 Jul 2024 12: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRsgY-0005FQ-Ra
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 12:14:06 +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 10d5c666-3f7f-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 14:14:04 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5956fbe6d0dso1068452a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 05:14:04 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bbe2cca6sm3383825a12.27.2024.07.11.05.14.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 05:14: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: 10d5c666-3f7f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720700044; x=1721304844; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=UGKZ91eg88Z+RUeX4tqh8nCPLTT9ggdC7XH32J7xMhA=;
        b=PYbmSUMJ9XCj/pxE/DwwzPOd9CFp6BmjoKwBBrB/lHGEXSeGKXcGNcMauz/lkgIOVJ
         IowDrWhnMPLDQtA3RBEudL+oHHIl+N896HiVREJUsqA5ySga1rrpcpsDH3kXaEX7PN0K
         zulsjc9WQkGI+2S00LE5PbpQCgMyq+n58q2dIDzKtKQye5ZpdvI78VoGSULNjnrAY3aV
         N6M6iiAr+4T8qNvbJmkfuOO8QSN60h8uIHaW3+Rmv3h5GRROxosNJPaz78wWPyfp+rMN
         153mTsl4hiRRgqqA0v8gDTE9NaVrHph2eS1YTyymLbu7vdjZ7l6Fpv1b92W/m/7Svd3c
         f5rQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720700044; x=1721304844;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=UGKZ91eg88Z+RUeX4tqh8nCPLTT9ggdC7XH32J7xMhA=;
        b=mhNs4Atv4tKwngCwLOQg6Mv72mDOqKm6PtmSZVDiIe6dn6kFvOdFkXdD/muIgMpw8y
         Ama6SjFXz98AlAc8zjYDAeognfICHuqIWSZZgIThEu5aNskYyIKO8EWpNI32gV45W2IE
         B9T5BJeMUyFGNK7lf15H8s3ArqN713CHphjwCjXXLgL8m7d9/IXi3Z1RqAVZS0nYdJ9D
         o/Gnrcd5dba9YS9tP3MB/NbYItMynoJelKPQacbRrVRTvqte41IaOcZVyD1nA9wb5qpT
         irx/1pLhlvfq1MZT7w2/bsXpph8tCsiFw4UMDrZVhDJPCtFaiz8CR+qyooIVj53prWw4
         Xd8A==
X-Forwarded-Encrypted: i=1; AJvYcCWu8F7krGyxhwMApbiR3yQe2acydvSCxLjIkrozw84DjyKV8wapR2jJLAK2+zoqaEv4tTWknuhfBNin4F0HDCi3I8qNJ6xwA1I3aycc1aQ=
X-Gm-Message-State: AOJu0YzfzlsK2nkuKRPg8O8MOyMr0ks/Qag0ywvIlPHLXlm4SvTlSrg1
	bT0nAx4R0Q/caVGWNDmEg8XjfBzLI2p7NmJpWyCACSbCWlV1PS7J
X-Google-Smtp-Source: AGHT+IE5m1Nt9eerjZl1cQR1AihhHcuS+k6jo85+Q2ei4YKmYv8Vt4YOlGqBO4k/R2QLwlRgk2bb4w==
X-Received: by 2002:a05:6402:2794:b0:58d:ebf9:4e2b with SMTP id 4fb4d7f45d1cf-594ba98f46bmr5746403a12.2.1720700044121;
        Thu, 11 Jul 2024 05:14:04 -0700 (PDT)
Message-ID: <df82de5d4dcf5224f58d8595ff5ad03429e9cad9.camel@gmail.com>
Subject: Re: [PATCH v9 4/5] xen/riscv: enable GENERIC_BUG_FRAME
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 14:14:03 +0200
In-Reply-To: <bff4f1e4-9242-4a1c-bbca-ba3d609db03f@suse.com>
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
	 <c51c485bac43b7589961aabec8af1b82d4673b94.1719918148.git.oleksii.kurochko@gmail.com>
	 <ca373d42-22f1-41a2-bdbb-4733145c635a@suse.com>
	 <a1224198ef6845f8f81baaaebe1d436726460c0e.camel@gmail.com>
	 <bff4f1e4-9242-4a1c-bbca-ba3d609db03f@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Thu, 2024-07-11 at 11:25 +0200, Jan Beulich wrote:
> On 11.07.2024 10:50, Oleksii wrote:
> > On Wed, 2024-07-10 at 12:01 +0200, Jan Beulich wrote:
> > > On 02.07.2024 13:23, Oleksii Kurochko wrote:
> > > > @@ -101,8 +102,38 @@ static void do_unexpected_trap(const
> > > > struct
> > > > cpu_user_regs *regs)
> > > > =C2=A0=C2=A0=C2=A0=C2=A0 die();
> > > > =C2=A0}
> > > > =C2=A0
> > > > +static bool is_valid_bug_insn(uint32_t insn)
> > > > +{
> > > > +=C2=A0=C2=A0=C2=A0 return insn =3D=3D BUG_INSN_32 ||
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (insn=
 & COMPRESSED_INSN_MASK) =3D=3D BUG_INSN_16;
> > > > +}
> > > > +
> > > > +/* Should be used only on Xen code */
> > > > +static uint32_t read_instr(unsigned long pc)
> > > > +{
> > > > +=C2=A0=C2=A0=C2=A0 uint16_t instr16 =3D *(uint16_t *)pc;
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 ASSERT(is_kernel_text(pc + 1) || is_kernel_init=
text(pc +
> > > > 1));
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 if ( GET_INSN_LENGTH(instr16) =3D=3D 2 )
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return instr16;
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 ASSERT(is_kernel_text(pc + 3) || is_kernel_init=
text(pc +
> > > > 3));
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 return *(uint32_t *)pc;
> > > > +}
> > >=20
> > > Related to the point made further down: If either of these
> > > assertions
> > > fails,
> > > won't we come back again right here? If either of the
> > > is_kernel_*text()
> > > wasn't working quite right, wouldn't we be at risk of entering an
> > > infinite
> > > loop (presumably not quite infinite because of the stack
> > > overflowing
> > > at some
> > > point)?
> > It is really possible to have infinite loop here so it should be
> > better
> > to use 'if' with die() or panic().
> >=20
> > >=20
> > > > =C2=A0void do_trap(struct cpu_user_regs *cpu_regs)
> > > > =C2=A0{
> > > > +=C2=A0=C2=A0=C2=A0 register_t pc =3D cpu_regs->sepc;
> > > > +=C2=A0=C2=A0=C2=A0 uint32_t instr =3D read_instr(pc);
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 if ( ( is_valid_bug_insn(instr) ) && (
> > > > do_bug_frame(cpu_regs,
> > > > pc) >=3D 0 ) )
> > >=20
> > > No consideration of the kind of exception? I'd expect it is one
> > > very
> > > specific one which the BUG insn would raise, and then there's no
> > > point
> > > fetching the insn when it's a different kind of exception.
> > Good point.
> >=20
> > We should have 0x3 ( breakpoint exception ) in scause register. We
> > can
> > just check that without reading instruction and then also
> > is_valid_bug_insn could be dropped too.
>=20
> Just that then you'll also lose the is_kernel_*text() checking, which
> I
> understand is there to remind you/us that one this becomes reachable
> from non-Xen code, adjustments are going to be needed.
One thing I wrote incorrectly is that we still need fetch instruction
or at least 16 bits to identify the length of instruction to set proper
sepc:
    cpu_regs->sepc +=3D GET_INSN_LENGTH(instr);

We could write that in the following way:
    cpu_regs->sepc +=3D GET_INSN_LENGTH(*(uint16_t *)pc);
Would it be okay?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 12:18:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 12:18:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757428.1166337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRsky-0006Ov-Ut; Thu, 11 Jul 2024 12:18:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757428.1166337; Thu, 11 Jul 2024 12: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 1sRsky-0006Oo-SG; Thu, 11 Jul 2024 12:18:40 +0000
Received: by outflank-mailman (input) for mailman id 757428;
 Thu, 11 Jul 2024 12: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=NKZT=OL=inria.fr=fonyuy-asheri.caleb@srs-se1.protection.inumbo.net>)
 id 1sRskx-0006Oi-HB
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 12:18:39 +0000
Received: from mail2-relais-roc.national.inria.fr
 (mail2-relais-roc.national.inria.fr [192.134.164.83])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b24cb4a2-3f7f-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 14:18:35 +0200 (CEST)
Received: from zcs2-store8.inria.fr ([128.93.142.6])
 by mail2-relais-roc.national.inria.fr with ESMTP; 11 Jul 2024 14:18:35 +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: b24cb4a2-3f7f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=inria.fr; s=dc;
  h=date:from:to:cc:message-id:in-reply-to:references:
   subject:mime-version:content-transfer-encoding;
  bh=ZTNEMa1dVPbYt0LEWE9KhUUpLw0TQnah0qLlvb5jf7M=;
  b=m+agkjErrH4784sopdHEg18A5VNvJGuWI5osiF0FJJ2Fbfu74W7gRztZ
   G6aam6pZdKePtlDHp9dOx8CMTczjA7LExi+Nubf8MnvntzhiCMrY7aXgL
   +SJOy/cKMjGjPPr+mfXIrg2qzA2AI0v79IsLRcmD2G7eyKZhR5DbQ8YaB
   M=;
Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Pass smtp.mailfrom=fonyuy-asheri.caleb@inria.fr; spf=None smtp.helo=postmaster@zcs2-store8.inria.fr
Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of
  fonyuy-asheri.caleb@inria.fr designates 128.93.142.6 as
  permitted sender) identity=mailfrom; client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="fonyuy-asheri.caleb@inria.fr";
  x-conformance=spf_only; x-record-type="v=spf1";
  x-record-text="v=spf1 include:mailout.safebrands.com
  a:basic-mail.safebrands.com a:basic-mail01.safebrands.com
  a:basic-mail02.safebrands.com ip4:128.93.142.0/24
  ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:89.107.174.7 mx
  ~all"
Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender
  authenticity information available from domain of
  postmaster@zcs2-store8.inria.fr) identity=helo;
  client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="postmaster@zcs2-store8.inria.fr";
  x-conformance=spf_only
X-IronPort-AV: E=Sophos;i="6.09,200,1716242400"; 
   d="scan'208";a="175045716"
X-MGA-submission: =?us-ascii?q?MDHTf3oP72Xjd82dxrjNuhvUG/bUR9z90xtDmF?=
 =?us-ascii?q?Nf2nxmemfci3wNu65S75n1OXw+nkAO1mN/EWMaOtrNVdXaoNhc7rSjcq?=
 =?us-ascii?q?zr1iuFNoKzSfT/bQdTqgVWtNN72IolOwi9YV39g9zl+Tw5V3rOA562Dd?=
 =?us-ascii?q?EAZaBh6dRFyPV0yTzh+S2t8w=3D=3D?=
Date: Thu, 11 Jul 2024 14:18:35 +0200 (CEST)
From: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, 
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Message-ID: <71164270.2157213.1720700315521.JavaMail.zimbra@inria.fr>
In-Reply-To: <f0bdd5ca-3f85-4998-9476-18e768352bec@citrix.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr> <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com> <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr> <f0bdd5ca-3f85-4998-9476-18e768352bec@citrix.com>
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Originating-IP: [131.254.23.3]
X-Mailer: Zimbra 10.0.8_GA_4611 (ZimbraWebClient - GC126 (Linux)/10.0.8_GA_4611)
Thread-Topic: Help with Understanding vcpu xstate restore error during vm migration
Thread-Index: 5ODoRfBuRBaqAFin9adcTsWizDY8Aw==


>> Please do you mind giving me more insight on the logic currently implemented
>> and maybe what is wrong with it? It will be important for me since what I'm
>> doing is research work.
> 
> See 9e6dbbe8bf40^..267122a24c49

What reference is this please? 

> 
>> How do the values evc->size and xfeature_mask relate to the source and target
>> processor xstates (or xstate management)?
> 
> The lower bounds check is for normal reasons, while the upper bounds
> check is a sanity "does this image appear to have more states active
> than the current system".
> 
> The upper bound is bogus, because "what this VM has" has no true
> relationship to "what Xen decided to turn on by default at boot".

I see. My initial question about this was more of understanding how this information
is gathered. Is it directly related to the CPUID of the VM or does depend on the state
of the VM at the moment of migrating it? 

If it is related to the CPUID, how is it constructed? 

>>> To start with, which version (or versions?) of Xen, and what hardware?
>> Xen version 4.18.3-pre
> 
> As you're not on a specific tag, exact changeset?

I am on the stable-4.18 tag. 

> 
> Not that it likely matters - there shouldn't be anything relevant in
> staging-4.18 since RELEASE-4.18.2 as far as this goes.
> 
> There are backports of 2 of bugfixes, but in a way that should be
> practical change on 4.18.
> 
>> My CPU is : Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz
> 
> Ok, so Haswell.
> 
> Let me stare at the CPUID dumps and see if anything stands out.

> 
> ~Andrew

Caleb


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 12:29:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 12:29:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757433.1166347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRsvg-0000xJ-T3; Thu, 11 Jul 2024 12:29:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757433.1166347; Thu, 11 Jul 2024 12:29:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRsvg-0000xC-Q8; Thu, 11 Jul 2024 12:29:44 +0000
Received: by outflank-mailman (input) for mailman id 757433;
 Thu, 11 Jul 2024 12:29: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRsvf-0000x6-Mm
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 12:29:43 +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 3f7bc317-3f81-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 14:29:42 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a77e7420697so120442466b.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 05:29:42 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a853883sm254358966b.144.2024.07.11.05.29.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 05:29: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: 3f7bc317-3f81-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720700982; x=1721305782; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=rJt8Tyv20wmzolAieM6gHLwRLBB92pjLN3k7/NvGHNY=;
        b=VH5MvvDYvkEYYI/nieQeOGxmXxGmXtnSTVnIj5JJyE0v5D8u/IQNDA+g8pVkCjWVzo
         MvxFS05vlFpAOC1pGNbR2IJZYGY4Cl7ZJk0hF5TOBueLFFC0qi/+iueF972ZT21VOPPm
         MUd7lzCI8qxqGiWpeB6bOcJc9nz9yZyQlI8/zJjPexxu3FW3N3AeVXG6tW3+GUdpci4H
         h2yKFge69UxZmpKVAHtX5P0lDVZSx6klYyEJ/En6K5konGtsI4ZuyeamN7Ti3mLHPzrg
         7w5KkHHqZ40LEAjug0fXIOeA5qni/BmVxsompjz3cXOk3WKIfGdhmqc09YV82fpFBwHs
         KPUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720700982; x=1721305782;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=rJt8Tyv20wmzolAieM6gHLwRLBB92pjLN3k7/NvGHNY=;
        b=rUOuTEs/jmtTZmJ03jaIiaLv69ArFKWGDu983xuNaXS6YOmsUSuKeq5K/thXp17W03
         uFO8uogSII3yF+MZmoTzWTfBc2gNKDetacDoT1dDHFnCl4buhITAeT6a2DV0Oqdm3Kmf
         tQo11T7mQQLzbF5ntnq8wT5YB18Yl7B4lWQQlqLdLhriBTwyn/hP2PXO3f71Fz6YgDU3
         K3kitU6oQYMDYyTENL7RHPMLCsMb4d74xaU5io8mooYO1wxl09GsXI4j+tnkPZ4n792s
         fzfmfOz/4Q8W8MB+9/jx6X0Ira/VhgvTPkYhpN8yVyWWd9MiGpwguHFMBMgpiWV/BUsa
         BntA==
X-Forwarded-Encrypted: i=1; AJvYcCXxOa7q0Old4hc1LFh+/OBWWeU6J/D2tqjCVkvbaqFw50JLnLq/qVThgqz3QKF1vG1Af3Fue7UXTtxUe7HaMyvDFhRd+EDcsgh5O4eXbLk=
X-Gm-Message-State: AOJu0Yz+ekW4dKiUKMXn75PfKoP4owvt10HI72CpEI6sfH0J+mal9UkT
	urofas5NuBemJfW8wh30KetSfS56EjiLFs6N2voOGIX3pX5R3OCQ
X-Google-Smtp-Source: AGHT+IGplMgDa3oW5nkbZ6wAy7YKGe6ij0XqIDlpOaYdAF0EwR39ESY92+y8qTLE64Hd0GV/qUg2HQ==
X-Received: by 2002:a17:906:1709:b0:a77:eb34:3b53 with SMTP id a640c23a62f3a-a780b6881f7mr552464366b.8.1720700981372;
        Thu, 11 Jul 2024 05:29:41 -0700 (PDT)
Message-ID: <80864cdf9b6deb31b6e745c45a54a73c9a86ef65.camel@gmail.com>
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
From: Oleksii <oleksii.kurochko@gmail.com>
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>, Stefano Stabellini
 <sstabellini@kernel.org>,  xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 14:29:40 +0200
In-Reply-To: <5c6fbbbf-f6bf-43b3-9628-a92c69e3adb1@xen.org>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
	 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
	 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
	 <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
	 <9592e857-bf1c-4e26-acd7-dfb5bb12103e@suse.com>
	 <fda966116ce17b9be0b1a467bd31436a6b5ad225.camel@gmail.com>
	 <e58a9128-efdd-4bff-9562-08d5605d0a13@suse.com>
	 <040e6b1d9b8bbe2b316e0e5b891c2564df28335d.camel@gmail.com>
	 <5c6fbbbf-f6bf-43b3-9628-a92c69e3adb1@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Thu, 2024-07-11 at 12:54 +0100, Julien Grall wrote:
> Hi,
>=20
> On 11/07/2024 12:28, Oleksii wrote:
> > Add Julien as he asked basically the same question in another
> > thread.
>=20
> Thanks!
>=20
> >=20
> > On Thu, 2024-07-11 at 12:50 +0200, Jan Beulich wrote:
> > > On 11.07.2024 12:26, Oleksii wrote:
> > > > On Thu, 2024-07-11 at 11:54 +0200, Jan Beulich wrote:
> > > > > On 11.07.2024 11:40, Oleksii wrote:
> > > > > > On Wed, 2024-07-10 at 14:38 +0200, Jan Beulich wrote:
> > > > > > > On 03.07.2024 12:42, Oleksii Kurochko wrote:
> > > > Does it make sense now?
> > >=20
> > > I think so, yet at the same time it only changes the question:
> > > Why is
> > > it
> > > that you absolutely need to use setup_initial_mapping()?
> > There is no strict requirement to use setup_initial_mapping(). That
> > function is available to me at the moment, and I haven't found a
> > better
> > option other than reusing what I currently have.
>=20
> I am not very familiar with the code base for RISC-V, but looking at
> the=20
> context in the patch, it seems you will still have the identity
> mapping=20
> mapped until start_xen().
We have identity mapping only for a small piece of .text section:
        . =3D ALIGN(IDENT_AREA_SIZE);
        _ident_start =3D .;
        *(.text.ident)
        _ident_end =3D .;

All other will be identically mapped only in case of linker address is
equal to load address.

>=20
> I assume we don't exactly know where the loader will put Xen in
> memory.=20
> Which means that the region may clash with your defined runtime
> regions=20
> (such as the FDT). Did I misunderstand anything?
I am not really get what is the issue here.

If we are speaking about physical regions then loader will guarantee
that Xen and FDT regions don't overlap.

If we are speaking about virtual regions then Xen will check that
nothing is overlaped. And the virtual regions are mapped so high so I
am not sure that loader will put something there. ( FDT in Xen is
mapped to 0xffffffffc0200000 ).

Could you please clarify what I am missing?

>=20
> That's one of the reason on Arm we are trying to enable the MMU very=20
> early. The only thing we setup is a mapping for Xen (and earlyprintk)
> all the rest will be mapped once the MMU is on.
It makes sense. Then I have to introduce map_pages_to_xen() first and
then early_fdt_map().

~ Oleksii

>=20
> With that, the only thing you need to take care off the runtime Xen=20
> address overlapping with the identity mapping.





From xen-devel-bounces@lists.xenproject.org Thu Jul 11 12:44:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 12:44:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757440.1166357 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRt9t-0004Gm-4D; Thu, 11 Jul 2024 12:44:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757440.1166357; Thu, 11 Jul 2024 12:44:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRt9t-0004Gf-16; Thu, 11 Jul 2024 12:44:25 +0000
Received: by outflank-mailman (input) for mailman id 757440;
 Thu, 11 Jul 2024 12:44: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 1sRt9r-0004GZ-Ej
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 12:44:23 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sRt9p-00010l-Di; Thu, 11 Jul 2024 12:44:21 +0000
Received: from [15.248.3.91] (helo=[10.24.67.27])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sRt9p-000218-4e; Thu, 11 Jul 2024 12:44:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=JVUd8+2S+TWxH1oy8NbKiUj81nTRD5fRSh9U/d5TrkA=; b=faYF5HTyY7kCBolcOa28AvZ3rP
	++em/Gs9lqOTESdhChM496oIciDkr1x5YOgL+Z9IZH2FmcSs10ZmscT+muL2y1W3SKrsaiO/5M2Il
	0qBpOgW8wGr1Tsh6tYXPRtvHis/yq0Kq4ZUJHGUGuTlRYQmyeNjGsYmgZuFs7/w2fc1o=;
Message-ID: <5de15734-29eb-42e0-b6c9-f6d734222b59@xen.org>
Date: Thu, 11 Jul 2024 13:44:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
Content-Language: en-GB
To: Oleksii <oleksii.kurochko@gmail.com>, 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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
 <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
 <9592e857-bf1c-4e26-acd7-dfb5bb12103e@suse.com>
 <fda966116ce17b9be0b1a467bd31436a6b5ad225.camel@gmail.com>
 <e58a9128-efdd-4bff-9562-08d5605d0a13@suse.com>
 <040e6b1d9b8bbe2b316e0e5b891c2564df28335d.camel@gmail.com>
 <5c6fbbbf-f6bf-43b3-9628-a92c69e3adb1@xen.org>
 <80864cdf9b6deb31b6e745c45a54a73c9a86ef65.camel@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <80864cdf9b6deb31b6e745c45a54a73c9a86ef65.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksii,

On 11/07/2024 13:29, Oleksii wrote:
> On Thu, 2024-07-11 at 12:54 +0100, Julien Grall wrote:
>> Hi,
>>
>> On 11/07/2024 12:28, Oleksii wrote:
>>> Add Julien as he asked basically the same question in another
>>> thread.
>>
>> Thanks!
>>
>>>
>>> On Thu, 2024-07-11 at 12:50 +0200, Jan Beulich wrote:
>>>> On 11.07.2024 12:26, Oleksii wrote:
>>>>> On Thu, 2024-07-11 at 11:54 +0200, Jan Beulich wrote:
>>>>>> On 11.07.2024 11:40, Oleksii wrote:
>>>>>>> On Wed, 2024-07-10 at 14:38 +0200, Jan Beulich wrote:
>>>>>>>> On 03.07.2024 12:42, Oleksii Kurochko wrote:
>>>>> Does it make sense now?
>>>>
>>>> I think so, yet at the same time it only changes the question:
>>>> Why is
>>>> it
>>>> that you absolutely need to use setup_initial_mapping()?
>>> There is no strict requirement to use setup_initial_mapping(). That
>>> function is available to me at the moment, and I haven't found a
>>> better
>>> option other than reusing what I currently have.
>>
>> I am not very familiar with the code base for RISC-V, but looking at
>> the
>> context in the patch, it seems you will still have the identity
>> mapping
>> mapped until start_xen().
> We have identity mapping only for a small piece of .text section:
>          . = ALIGN(IDENT_AREA_SIZE);
>          _ident_start = .;
>          *(.text.ident)
>          _ident_end = .;
> 
> All other will be identically mapped only in case of linker address is
> equal to load address.
> 
>>
>> I assume we don't exactly know where the loader will put Xen in
>> memory.
>> Which means that the region may clash with your defined runtime
>> regions
>> (such as the FDT). Did I misunderstand anything?
> I am not really get what is the issue here.
> 
> If we are speaking about physical regions then loader will guarantee
> that Xen and FDT regions don't overlap.

Sure. But I was referring to...

> 
> If we are speaking about virtual regions then Xen will check that
> nothing is overlaped. 

... this part. The more regions you mapped with MMU off, the more work 
you have to do to ensure nothing will clash.

> And the virtual regions are mapped so high so I
> am not sure that loader will put something there. ( FDT in Xen is
> mapped to 0xffffffffc0200000 )
Never say never :). On Arm, some 64-bit HW (such as ADLink AVA platform) 
has the RAM starting very high and load Xen around 8TB. For Arm, we 
still decided to put a limit (10TB) where Xen can be loaded but this is 
mainly done for convenience (otherwise it is a bit more complicated to 
get off the identity mapping).

We still have a check in place to ensure that Xen is not loaded above 
10TB. If you map the FDT within the same L1.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 12:54:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 12:54:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757447.1166367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtJz-0006L7-0c; Thu, 11 Jul 2024 12:54:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757447.1166367; Thu, 11 Jul 2024 12: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 1sRtJy-0006L0-U1; Thu, 11 Jul 2024 12:54:50 +0000
Received: by outflank-mailman (input) for mailman id 757447;
 Thu, 11 Jul 2024 12: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=fcyN=OL=bounce.vates.tech=bounce-md_30504962.668fd616.v1-556f190b2d6b43f09a54b9e014007646@srs-se1.protection.inumbo.net>)
 id 1sRtJx-0006Ku-Gf
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 12:54:49 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c0c3dad3-3f84-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 14:54:48 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WKZSQ6PbCz6CQ3pX
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 12:54:46 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 556f190b2d6b43f09a54b9e014007646; Thu, 11 Jul 2024 12:54: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: c0c3dad3-3f84-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720702486; x=1720962986;
	bh=QT7Nyr/C+R4jjSf5+6fGFGCoMGbBcAFFa43DxFSxuLc=;
	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=nebNAdRGZYycjcI5Im9TZqAkzqBsnJxrvw6+2bstR3Lyfie9/FAvQLhYcowsf3VM7
	 J7seCf3XctwB75S7/pVm3M8DjTw/laqSck/RNykF33iiNLXx/Y2a/KtVJqfHxJaJEH
	 Aat4fS+vdltOMSYXCqlycaKjwyCMUUZe4sEbYb0yVMkxbunw13SMadIntXxchut9ST
	 z2oWKuhzFb+BYvzYussuoKDha7E/MEbbJlL9NHH/wX3y5VUdugm9v27Bqe4m44fmSo
	 y8pwQGW4Sz//zIiI92H9/+dJ0KDnxUCc9IszJPWB5h0O9hys5OiNNA/0RoQcDUTOpa
	 0OihJ3lXgO4rA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720702486; x=1720962986; i=anthony.perard@vates.tech;
	bh=QT7Nyr/C+R4jjSf5+6fGFGCoMGbBcAFFa43DxFSxuLc=;
	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=Dyxb6AWvTaDUR/ZtjG++K0uRE2gM5cdwxEXIgDx/0cnEovckjrITl5A0Vv5kMiQq/
	 IIMPuLOcNLS0PBai1s7sxgjvHvkjK9cNm28onCZZK6Q4xBPQICz3GW5txYlefKV5t9
	 I76CdAhxB7boKEh4cnuxIsxaxbJxpGJtSRmkmBh9DMd9e8rmvxZ40NlJmlhVQBjKTL
	 pdFMPDZ8JsPq+ku0O2RK8I1IYRycjxc7d54VDsDlvtkYJg8co8LyYqm4rFUm4O+2iM
	 IlQ2nVJdUwA/zBrDDr5q9n1NYKoy1vL2AP/YhwiIU3gU+oZj95vNu7jM4UABa9Wjw7
	 GgSbNVi8MYqgw==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2001/12]=20CI:=20Fix=20CONTAINER=5FUID0=3D1=20scripts/containerize?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720702485185
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <Zo/WFAS3LFKG3LJf@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-2-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-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.556f190b2d6b43f09a54b9e014007646?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 12:54:46 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:06PM +0100, Andrew Cooper wrote:
> Right now, most build containers use root.  Archlinux, Fedora and Yocto set up
> a regular user called `user`.
> 
> For those containers, trying to containerize as root fails, because
> CONTAINER_UID0=1 does nothing, whereas CONTAINER_UID0=0 forces the user away
> from root.
> 
> To make CONTAINER_UID0=1 work reliably, force to root if requested.
> 
> Fixes: 17fbe6504dfd ("automation: introduce a new variable to control container user")
> 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 Jul 11 13:04:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:04:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757453.1166376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtT2-0008Pd-UP; Thu, 11 Jul 2024 13:04:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757453.1166376; Thu, 11 Jul 2024 13: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 1sRtT2-0008PW-Rp; Thu, 11 Jul 2024 13:04:12 +0000
Received: by outflank-mailman (input) for mailman id 757453;
 Thu, 11 Jul 2024 13:04: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRtT0-0008PQ-Mx
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 13:04:10 +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 0f409088-3f86-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 15:04:08 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-57cf8880f95so1047209a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 06:04:08 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bd459e13sm3398292a12.67.2024.07.11.06.04.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 06:04: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: 0f409088-3f86-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720703048; x=1721307848; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=33akNImJ0SeO1Gggp+2U/woHCclDuH48D6lMXzKYncQ=;
        b=Yrcb3kcFZ7uGhcNywVA50aQZQ+aR6LYTYtxqfJu/chnxqPKAmP50Tom3qrU4efXUoy
         nKV/SeI3wNu/k2P52DxiN5X4DUFPIbknoZD4HwYuNSPJ/jvhMtRzzW+pNFoH5feIF69m
         rGXD1d81I8o0fL5gbhL7B9NP15jCxdd+ggdiA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720703048; x=1721307848;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=33akNImJ0SeO1Gggp+2U/woHCclDuH48D6lMXzKYncQ=;
        b=CZpw4uTL3JIxl2ZgOzO8a9BkCLZkUnnmh0iRtlVN/qW6kqxP3nDeAoDvWMakOhROyw
         Fzyak2PynQFMZHaPIVcYypmqFc5ODJ+4Fg1jvx/NuaEGsJ+cfUYBuGNzy3AYk8e+AIXk
         tuYtrOJUGdinMICKWb5d0SSzyFO5bH07QEb6eR0lA7CuAf8BbldTMd5nlqBhxc3CaRw1
         rDZtp4zMq31dKN+48WeRi3xJxhzaofYKi3b6RntECduOd6xNddYfjQUQ/Gcz4EXHilEH
         baPtug6J6fZiMFNPxnjO/9vq4f9Eya9NQgYDX757Fxf6jAWRHOEC7Irza6vmw5exnz/6
         WVdg==
X-Gm-Message-State: AOJu0YxIhA1y4OsWcvDSdv2uQFMgn+3SyXTfQVSDnDfbf1nvb/uYNk7I
	T2seS4FvB5jHhY6gK/B29XeS5exLhiwgOLgTUmLPES0QCiXPY5IPQMq3rfhoexc=
X-Google-Smtp-Source: AGHT+IEHd2hDLJmchdTOuhirEeriRB0uilU6wkoOwmSUM6vQ4d4EFuntpWn44WW3oBhG6lRsSiJeEw==
X-Received: by 2002:a05:6402:1ed6:b0:57d:4fd8:db59 with SMTP id 4fb4d7f45d1cf-594b7e7ce0bmr8256288a12.0.1720703048132;
        Thu, 11 Jul 2024 06:04:08 -0700 (PDT)
Message-ID: <24c09811-71ae-44e9-89d4-cec2c0f5a210@citrix.com>
Date: Thu, 11 Jul 2024 14:04:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
To: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr>
 <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
 <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr>
 <f0bdd5ca-3f85-4998-9476-18e768352bec@citrix.com>
 <71164270.2157213.1720700315521.JavaMail.zimbra@inria.fr>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <71164270.2157213.1720700315521.JavaMail.zimbra@inria.fr>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/07/2024 1:18 pm, Fonyuy-Asheri Caleb wrote:
>>> Please do you mind giving me more insight on the logic currently implemented
>>> and maybe what is wrong with it? It will be important for me since what I'm
>>> doing is research work.
>> See 9e6dbbe8bf40^..267122a24c49
> What reference is this please?

It's a git commit-range. You want:

$ git log 9e6dbbe8bf40^..267122a24c49

to view them.

>
>>> How do the values evc->size and xfeature_mask relate to the source and target
>>> processor xstates (or xstate management)?
>> The lower bounds check is for normal reasons, while the upper bounds
>> check is a sanity "does this image appear to have more states active
>> than the current system".
>>
>> The upper bound is bogus, because "what this VM has" has no true
>> relationship to "what Xen decided to turn on by default at boot".
> I see. My initial question about this was more of understanding how this information
> is gathered. Is it directly related to the CPUID of the VM or does depend on the state
> of the VM at the moment of migrating it? 
>
> If it is related to the CPUID, how is it constructed? 

The size of the xsave area is a function of the *current* value in
%xcr0.  (On Haswell.  Lets ignore MSR_XSS on newer systems for now.)

However, because guests can modify %xcr0 and turn states back off, Xen
has to track xcr0_accum which is all bits we've ever seen the guest turn on.

CPUID (and in particular, the guest's CPU policy data) controls which
states the guest is permitted to activate, which in turn influences the
size.

Xen's normal CPUID handling logic *should* make it impossible for a
guest to see features which hardware isn't capable of, and should block
migration to a system which is less capable too.

I suspect what's going on here is that the destination has one or more
of AVX|SSE|x87 disabled somehow, and this check is failing before the
more coherent one which should explain why the VM can't migrate in...


>
>>>> To start with, which version (or versions?) of Xen, and what hardware?
>>> Xen version 4.18.3-pre
>> As you're not on a specific tag, exact changeset?
> I am on the stable-4.18 tag.

That's a branch which moves, not a tag.

What does `git show` say?  Just need the first few lines.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 13:09:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:09:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757459.1166387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtXv-00011t-Fi; Thu, 11 Jul 2024 13:09:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757459.1166387; Thu, 11 Jul 2024 13: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 1sRtXv-00011m-D4; Thu, 11 Jul 2024 13:09:15 +0000
Received: by outflank-mailman (input) for mailman id 757459;
 Thu, 11 Jul 2024 13: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=gz+P=OL=bounce.vates.tech=bounce-md_30504962.668fd976.v1-c90aca7fff924ee384a44b3008c39711@srs-se1.protection.inumbo.net>)
 id 1sRtXu-00011g-Av
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 13:09:14 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c40fa81d-3f86-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 15:09:12 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WKZn24PN6zB5pTvF
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 13:09:10 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c90aca7fff924ee384a44b3008c39711; Thu, 11 Jul 2024 13:09: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: c40fa81d-3f86-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720703350; x=1720963850;
	bh=KDoG5i0B0orQ4+VkAv5WRC6aoH3UeT46QzIC1C0zrHY=;
	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=vNoTL6H3+MlfsQZM9VbCYgiYPZA7iTijBfGDEGVIVHJ6/FYdsFCoFO1XTZKzsvQyp
	 DEm/PI/KLg0aRofDaFW7dTRCjuCb7xQfQ9b/AuibtOH2ybcCJGwO8+9T38WAOaEC6O
	 LLXLALONbO6l7Cj9tvNmcLng0Ykot7jVaWprbKzBgHTh+UTGQOQHam1U7W9E/z/hon
	 PLL2rUoratjM2bH9F2t3fFDnvPNpp971pnW6UxWJzEWOyE5eJ60ab+6REnqWI+jfnL
	 Q37LLiRvXvbPZMXNn5qoRYjdKt3oamUAiy4QzsxAVDx2VHy1mUf4836WS23TGEsvod
	 lMB9UZ2tyBwcw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720703350; x=1720963850; i=anthony.perard@vates.tech;
	bh=KDoG5i0B0orQ4+VkAv5WRC6aoH3UeT46QzIC1C0zrHY=;
	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=g5YVrQzOEMfcBvfJkIn6rGfxFnqxauXRe8gFQN9p8T1t+jeKNHwuf+u12Qz92rmZB
	 v1G7ILPYVny98fFOm/gTmx7FuU3TCoxqei9Hncky7pn3LdnijCVa3w2dQHxgwRfysx
	 uZn5UtWNv38Qun3tttg8Lf5QZ10vJK5PP+AhoXCfH55zWI06+EoEQyP/iB/JVez4pB
	 kwVsUBDX1ioiQw9GiniwlRtir4Pp5OLJ1Upt8BGsaqfNv++ZWO/BxPDGoqm2nXFDZ3
	 P2VfBz+CfS4X9arNDMySshxxny6TIw56W5QT3HwILxqt53LPemvu38lCvfJUp+gf4O
	 LI5MKkwWP4NSQ==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2002/12]=20CI:=20Remove=20useless/misleading=20randconfig=20jobs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720703349367
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <Zo/ZdG8pt5FIledD@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-3-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-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.c90aca7fff924ee384a44b3008c39711?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 13:09:10 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:07PM +0100, Andrew Cooper wrote:
> Randconfig builds pick CONFIG_DEBUG with 50% probability.  Therefore
> $foo{,-debug}-randconfig are two identical jobs with misleading names.
> 
> Furthermore, arm64 has a randconfig jobs for both the alpine and bookworm
> build environments.  Both use GCC 12.2, so we have 4 identical jobs.  Delete 3
> of them.
> 
> This leaves us with 4 primary randconfig jobs:
> 
>   gitlab-ci/build.yaml:381:debian-bookworm-gcc-arm32-randconfig:
>   gitlab-ci/build.yaml:429:alpine-3.18-gcc-arm64-randconfig:
>   gitlab-ci/build.yaml:495:archlinux-current-gcc-riscv64-randconfig:
>   gitlab-ci/build.yaml:640:debian-bookworm-gcc-randconfig:
> 
> as PPC64 doesn't want randconfig right now, and buster-gcc-ibt is a special
> job with a custom compiler.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

> If we want to run multiple identical randconfig jobs, that's spelt
> 
>   parallel: 5
> 
> in the configuration, and here is an example of what such a run looks like:
>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1368824041
> 
> Notice the randconfig jobs have a 5 in place of a retry button, and show a
> submenu when clicked on.

We already have "parallel: 2" on the whole pipeline, give or take, but
those are quick jobs so it might be worth it to run them a few more time
on a pipeline.

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 Jul 11 13:09:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:09:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757460.1166396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtYR-0001Qo-OT; Thu, 11 Jul 2024 13:09:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757460.1166396; Thu, 11 Jul 2024 13:09:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtYR-0001Qh-LF; Thu, 11 Jul 2024 13:09:47 +0000
Received: by outflank-mailman (input) for mailman id 757460;
 Thu, 11 Jul 2024 13:09:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NKZT=OL=inria.fr=fonyuy-asheri.caleb@srs-se1.protection.inumbo.net>)
 id 1sRtYQ-0001QV-HI
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 13:09:46 +0000
Received: from mail2-relais-roc.national.inria.fr
 (mail2-relais-roc.national.inria.fr [192.134.164.83])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7a126b1-3f86-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 15:09:45 +0200 (CEST)
Received: from zcs2-store8.inria.fr ([128.93.142.6])
 by mail2-relais-roc.national.inria.fr with ESMTP; 11 Jul 2024 15:09:44 +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: d7a126b1-3f86-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=inria.fr; s=dc;
  h=date:from:to:cc:message-id:in-reply-to:references:
   subject:mime-version:content-transfer-encoding;
  bh=cZr7xXnv9h1f+J7ATc+bPjBhHBobn15a9yykB9OuHrA=;
  b=JzNofOm+sqt1JomdvzT/gHc+Zpw4WCwqjZRIqjHrWgDn9oac5IGSqlGU
   to+GxptIYIv4c5q3/yNvqBrvPlXPj2gKAsJcGqosyNS3TjDeNg6QY2ini
   MIOOGpcKewsQkRMAXZaOXJJpTcmz6dBCQqYwAXjhLrSv2C0PTAmXdODVZ
   U=;
Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Pass smtp.mailfrom=fonyuy-asheri.caleb@inria.fr; spf=None smtp.helo=postmaster@zcs2-store8.inria.fr
Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of
  fonyuy-asheri.caleb@inria.fr designates 128.93.142.6 as
  permitted sender) identity=mailfrom; client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="fonyuy-asheri.caleb@inria.fr";
  x-conformance=spf_only; x-record-type="v=spf1";
  x-record-text="v=spf1 include:mailout.safebrands.com
  a:basic-mail.safebrands.com a:basic-mail01.safebrands.com
  a:basic-mail02.safebrands.com ip4:128.93.142.0/24
  ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:89.107.174.7 mx
  ~all"
Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender
  authenticity information available from domain of
  postmaster@zcs2-store8.inria.fr) identity=helo;
  client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="postmaster@zcs2-store8.inria.fr";
  x-conformance=spf_only
X-IronPort-AV: E=Sophos;i="6.09,200,1716242400"; 
   d="scan'208";a="175059713"
X-MGA-submission: =?us-ascii?q?MDFVP1RRxer2988/hwgirEH9VHDz0NW0w8OCyL?=
 =?us-ascii?q?SDRTkFvV9QtYwlqOjkcr1GqkkOfMQMSA/Ez/4HMsTBPmyTmIPjukkFbZ?=
 =?us-ascii?q?0dFP7OYdefFZGSJ9/sZ37N5mZUlKwOHyquEmJ9ioV/yqa/DMyk7Nondr?=
 =?us-ascii?q?laHHPViTBMaTlZUJ7g7Po//A=3D=3D?=
Date: Thu, 11 Jul 2024 15:09:44 +0200 (CEST)
From: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, 
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Message-ID: <1438936323.2292864.1720703384889.JavaMail.zimbra@inria.fr>
In-Reply-To: <24c09811-71ae-44e9-89d4-cec2c0f5a210@citrix.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr> <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com> <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr> <f0bdd5ca-3f85-4998-9476-18e768352bec@citrix.com> <71164270.2157213.1720700315521.JavaMail.zimbra@inria.fr> <24c09811-71ae-44e9-89d4-cec2c0f5a210@citrix.com>
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
X-Originating-IP: [131.254.23.3]
X-Mailer: Zimbra 10.0.8_GA_4611 (ZimbraWebClient - GC126 (Linux)/10.0.8_GA_4611)
Thread-Topic: Help with Understanding vcpu xstate restore error during vm migration
Thread-Index: 4sl4sid4hzL+PQUIcGGIaGZ0RbnpjA==


----- Original Message -----
> From: "Andrew Cooper" <andrew.cooper3@citrix.com>
> To: "Fonyuy-Asheri Caleb" <fonyuy-asheri.caleb@inria.fr>
> Cc: "xen-devel" <xen-devel@lists.xenproject.org>, "Jan Beulich" <jbeulich=
@suse.com>, "Roger Pau Monn=E9"
> <roger.pau@citrix.com>
> Sent: Thursday, July 11, 2024 3:04:05 PM
> Subject: Re: Help with Understanding vcpu xstate restore error during vm =
migration

> On 11/07/2024 1:18 pm, Fonyuy-Asheri Caleb wrote:
>>>> Please do you mind giving me more insight on the logic currently imple=
mented
>>>> and maybe what is wrong with it? It will be important for me since wha=
t I'm
>>>> doing is research work.
>>> See 9e6dbbe8bf40^..267122a24c49
>> What reference is this please?
>=20
> It's a git commit-range. You want:
>=20
> $ git log 9e6dbbe8bf40^..267122a24c49
>=20
> to view them.
>=20
>>
>>>> How do the values evc->size and xfeature_mask relate to the source and=
 target
>>>> processor xstates (or xstate management)?
>>> The lower bounds check is for normal reasons, while the upper bounds
>>> check is a sanity "does this image appear to have more states active
>>> than the current system".
>>>
>>> The upper bound is bogus, because "what this VM has" has no true
>>> relationship to "what Xen decided to turn on by default at boot".
>> I see. My initial question about this was more of understanding how this
>> information
>> is gathered. Is it directly related to the CPUID of the VM or does depen=
d on the
>> state
>> of the VM at the moment of migrating it?
>>
>> If it is related to the CPUID, how is it constructed?
>=20
> The size of the xsave area is a function of the *current* value in
> %xcr0.=A0 (On Haswell.=A0 Lets ignore MSR_XSS on newer systems for now.)
>=20
> However, because guests can modify %xcr0 and turn states back off, Xen
> has to track xcr0_accum which is all bits we've ever seen the guest turn =
on.
>=20
> CPUID (and in particular, the guest's CPU policy data) controls which
> states the guest is permitted to activate, which in turn influences the
> size.
>=20
> Xen's normal CPUID handling logic *should* make it impossible for a
> guest to see features which hardware isn't capable of, and should block
> migration to a system which is less capable too.
>=20
> I suspect what's going on here is that the destination has one or more
> of AVX|SSE|x87 disabled somehow, and this check is failing before the
> more coherent one which should explain why the VM can't migrate in...
>=20

Thank you. This makes much more sense now.=20


>=20
>>
>>>>> To start with, which version (or versions?) of Xen, and what hardware=
?
>>>> Xen version 4.18.3-pre
>>> As you're not on a specific tag, exact changeset?
>> I am on the stable-4.18 tag.
>=20
> That's a branch which moves, not a tag.
>=20
> What does `git show` say?=A0 Just need the first few lines.
Here is the output of git show:


commit 45c5333935628e7c80de0bd5a9d9eff50b305b16 (HEAD -> stable-4.18, origi=
n/staging-4.18, origin/stable-4.18)
Author: Jan Beulich <jbeulich@suse.com>
Date:   Thu Jul 4 16:57:29 2024 +0200

    evtchn: build fix for Arm


>=20
> ~Andrew

Caleb


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 13:14:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757468.1166407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtcj-00030n-7x; Thu, 11 Jul 2024 13:14:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757468.1166407; Thu, 11 Jul 2024 13:14: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 1sRtcj-00030g-5C; Thu, 11 Jul 2024 13:14:13 +0000
Received: by outflank-mailman (input) for mailman id 757468;
 Thu, 11 Jul 2024 13:14: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRtci-00030a-CK
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 13:14:12 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 76594adb-3f87-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 15:14:11 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a77cbb5e987so115664666b.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 06:14:11 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a871f3asm255968466b.195.2024.07.11.06.14.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 06:14: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: 76594adb-3f87-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720703651; x=1721308451; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=vt3qOpTgvwdzidLgQVT1osNX6CtSjSuJgRWwfFAyxQg=;
        b=TiilvKmx80f6pLN/71aACpOfxxWmi4IXn/67I4iGEOYC6YphcWPaVlcoyt7rUNRuw3
         Y1ZFlbYRYOPnHrVpDYxfoMjL5+h/B6c6tw5WlRqxtL0xcEkdmqlZL8ciGfJPGMLp4mAb
         3hZsUzcn0tx/P1/FO8JCBGEvX04JGZGiUUkqEMllNjQrenYkMV6l/dk48T4Bz06wZF1X
         /113W1KyiOaePG4U3HqxBWpIgw/1bGOO8jUglDJ6LRgjtuLLA6JME5tfjgd/l0LKc1fo
         NgeCIdm2k6ccEcef5/FlT/F74Lr4YgsT6pqGr8tljuya/UiZFyZt1z4CpdnQYEC/tfyd
         vFkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720703651; x=1721308451;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vt3qOpTgvwdzidLgQVT1osNX6CtSjSuJgRWwfFAyxQg=;
        b=p2qiEng4XAOg0xUtxBBY5nrysJvtlSPMOjrmwcDI/G66IUH6m5pIuVKoo9xSiqHG2M
         4DKfa9RaN8s5/ty20iGnsrswrYCmJKPiNqEBpBXQb2GD6D2PSR1PXwTnOXSaRw/3EyOO
         W7nxbYNZ/FSolAbJc3qx9cdtCqYQmBCVp2tEUIoTMHvQ4wgbu61W3pUnYczhbebNQz57
         LD6hZ3jHpNTk82jRhnYyESKxNqIogVxdNCGN17La0n0iGkkgabOZgP7B2LKKMz0QGDUb
         lmXLAyMYk7QviNNXJyYPM3v1GxF7h5iml83qPS9O/L08GO4n1+wL9GOaGCONke+VkkkN
         Px5Q==
X-Forwarded-Encrypted: i=1; AJvYcCXCd0kWg2sHgROU+rLRAxIh6gOtUEs+iFnz5bgsRKSwmqHGYxRowYbSHnfIgjazuLMcuhq9n0pHJzoXZu1Veduhu3JFedabMHuEU6OYCug=
X-Gm-Message-State: AOJu0Yz12uc8+/FXLyR+3yJAUR9y1VR/ekpiwXOjQv9ARSGEX+G+pF3t
	OQkJXrMS9qpiyhfej0BIHtPFXWqaQcTLKJiBMqWqAV4VPT7+pFrh
X-Google-Smtp-Source: AGHT+IF7r8aywEKKfdF6NJ+NgyeUFAWqpl6MV7nx6U18AXHIIcxT9GWA7EX6meoRE0HIP2hX5G4WsA==
X-Received: by 2002:a17:906:22d9:b0:a77:c583:4f78 with SMTP id a640c23a62f3a-a780b705109mr415781766b.39.1720703650645;
        Thu, 11 Jul 2024 06:14:10 -0700 (PDT)
Message-ID: <956cb4f4f11fc0d7679f9b9c3611b7e0649f2633.camel@gmail.com>
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
From: Oleksii <oleksii.kurochko@gmail.com>
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>, Stefano Stabellini
 <sstabellini@kernel.org>,  xen-devel@lists.xenproject.org
Date: Thu, 11 Jul 2024 15:14:09 +0200
In-Reply-To: <5de15734-29eb-42e0-b6c9-f6d734222b59@xen.org>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
	 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
	 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
	 <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
	 <9592e857-bf1c-4e26-acd7-dfb5bb12103e@suse.com>
	 <fda966116ce17b9be0b1a467bd31436a6b5ad225.camel@gmail.com>
	 <e58a9128-efdd-4bff-9562-08d5605d0a13@suse.com>
	 <040e6b1d9b8bbe2b316e0e5b891c2564df28335d.camel@gmail.com>
	 <5c6fbbbf-f6bf-43b3-9628-a92c69e3adb1@xen.org>
	 <80864cdf9b6deb31b6e745c45a54a73c9a86ef65.camel@gmail.com>
	 <5de15734-29eb-42e0-b6c9-f6d734222b59@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

On Thu, 2024-07-11 at 13:44 +0100, Julien Grall wrote:
> Hi Oleksii,
Hi Julien,

>=20
> On 11/07/2024 13:29, Oleksii wrote:
> > On Thu, 2024-07-11 at 12:54 +0100, Julien Grall wrote:
> > > Hi,
> > >=20
> > > On 11/07/2024 12:28, Oleksii wrote:
> > > > Add Julien as he asked basically the same question in another
> > > > thread.
> > >=20
> > > Thanks!
> > >=20
> > > >=20
> > > > On Thu, 2024-07-11 at 12:50 +0200, Jan Beulich wrote:
> > > > > On 11.07.2024 12:26, Oleksii wrote:
> > > > > > On Thu, 2024-07-11 at 11:54 +0200, Jan Beulich wrote:
> > > > > > > On 11.07.2024 11:40, Oleksii wrote:
> > > > > > > > On Wed, 2024-07-10 at 14:38 +0200, Jan Beulich wrote:
> > > > > > > > > On 03.07.2024 12:42, Oleksii Kurochko wrote:
> > > > > > Does it make sense now?
> > > > >=20
> > > > > I think so, yet at the same time it only changes the
> > > > > question:
> > > > > Why is
> > > > > it
> > > > > that you absolutely need to use setup_initial_mapping()?
> > > > There is no strict requirement to use setup_initial_mapping().
> > > > That
> > > > function is available to me at the moment, and I haven't found
> > > > a
> > > > better
> > > > option other than reusing what I currently have.
> > >=20
> > > I am not very familiar with the code base for RISC-V, but looking
> > > at
> > > the
> > > context in the patch, it seems you will still have the identity
> > > mapping
> > > mapped until start_xen().
> > We have identity mapping only for a small piece of .text section:
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 . =3D ALIGN(IDENT_AREA=
_SIZE);
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 _ident_start =3D .;
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 *(.text.ident)
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 _ident_end =3D .;
> >=20
> > All other will be identically mapped only in case of linker address
> > is
> > equal to load address.
> >=20
> > >=20
> > > I assume we don't exactly know where the loader will put Xen in
> > > memory.
> > > Which means that the region may clash with your defined runtime
> > > regions
> > > (such as the FDT). Did I misunderstand anything?
> > I am not really get what is the issue here.
> >=20
> > If we are speaking about physical regions then loader will
> > guarantee
> > that Xen and FDT regions don't overlap.
>=20
> Sure. But I was referring to...
>=20
> >=20
> > If we are speaking about virtual regions then Xen will check that
> > nothing is overlaped.=20
>=20
> ... this part. The more regions you mapped with MMU off, the more
> work=20
> you have to do to ensure nothing will clash.
Yes, agree here. Then I have to look at what I need now to introduce
map_pages_to_xen().

Thanks for clarifying.

>=20
> > And the virtual regions are mapped so high so I
> > am not sure that loader will put something there. ( FDT in Xen is
> > mapped to 0xffffffffc0200000 )
> Never say never :). On Arm, some 64-bit HW (such as ADLink AVA
> platform)=20
> has the RAM starting very high and load Xen around 8TB. For Arm, we=20
> still decided to put a limit (10TB) where Xen can be loaded but this
> is=20
> mainly done for convenience (otherwise it is a bit more complicated
> to=20
> get off the identity mapping).
Oh, it is very high. I couldn't even expect.

~ Oleksii

>=20
> We still have a check in place to ensure that Xen is not loaded above
> 10TB. If you map the FDT within the same L1.
>=20
> Cheers,
>=20



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 13:21:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:21:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757479.1166428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtjB-0005Fm-8S; Thu, 11 Jul 2024 13:20:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757479.1166428; Thu, 11 Jul 2024 13:20:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtjB-0005Ff-5y; Thu, 11 Jul 2024 13:20:53 +0000
Received: by outflank-mailman (input) for mailman id 757479;
 Thu, 11 Jul 2024 13:20: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=ThD5=OL=bounce.vates.tech=bounce-md_30504962.668fdc30.v1-687fe2ad804a4dd3b7fb87159e8ef3ec@srs-se1.protection.inumbo.net>)
 id 1sRtj9-0005FX-HA
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 13:20:51 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63df3261-3f88-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 15:20:50 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WKb2S68N1z6CQMYQ
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 13:20:48 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 687fe2ad804a4dd3b7fb87159e8ef3ec; Thu, 11 Jul 2024 13:20: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: 63df3261-3f88-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720704048; x=1720964548;
	bh=YLCnh0nIqnjhpyLZj1fQ1fYPnVqonWyQ2BThCNYtEIU=;
	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=H4arvWB12kQxIFSJDnbxIdhtSD86S/vEO0taYOjuNG2QeqUxn6L56sFYLTLvARFsH
	 wPr30meaKGn1gqh7ziCZgKimkJiA0QIufjG95zUBAWkzMYha9BIUNReEaK8gpNlWm0
	 EVRTJVciV4idvr2AWZyGyWxDwV6M1wynQqSRrpM3JPfJ3UH83p3aASEoPjzfx4Zf2P
	 omVevSET5JeKsZWEVQmnLWnj4HFKoKuQtOs4XtQ52B4ZIAQnZUrOJUejRsQEP8mH//
	 07j8NSpuxXtPpNr5VQbw1BeAxSWCKKBdyInCvRAewun/Um9Tj4UdlGhp++cLjUCGPE
	 nDyyNyo4hhO+g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720704048; x=1720964548; i=anthony.perard@vates.tech;
	bh=YLCnh0nIqnjhpyLZj1fQ1fYPnVqonWyQ2BThCNYtEIU=;
	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=OTqtm5C1Q5vwkhYmfpumFXQg34uE0s5oSfnvzZ4VDC12xpG3S+lAcKBTJjKhFRPvx
	 Eu6VtxFMsPeELqEUrHyW8ky21DDQoNDikHnwsYonG3y8F32yw745QL4oIDpxEhj7YT
	 iDFi26ru0wPYnEj8QLt2V/PdhEO+t+B6toC8SN1o7ubb9jaYV0CddGrmXPZtdqwlTy
	 vJbz/taIQsGcVZm/KaWl46Vv4CpEIryavZJD+lb4HK53Wyt4pmB3E7KOO/05/2d2er
	 DTJ94chgq2MQnmvBxGmg6vbaUdgIn+vcTJg1z4+AP3Qw31o4feoefQok7OHiQex1od
	 YZ3ph/Zq4tamA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2004/12]=20CI:=20Drop=20Debian=20Stretch=20testing?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720704047318
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <Zo/cLupdQA8uvrRd@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-5-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-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.687fe2ad804a4dd3b7fb87159e8ef3ec?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 13:20:48 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:09PM +0100, Andrew Cooper wrote:
> Debian stretch is also End of Life.  Update a couple of test steps to use
> bookworm instead.
> 
> 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 Jul 11 13:24:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:24:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757483.1166439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtmu-0005pX-R0; Thu, 11 Jul 2024 13:24:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757483.1166439; Thu, 11 Jul 2024 13: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 1sRtmu-0005pQ-MR; Thu, 11 Jul 2024 13:24:44 +0000
Received: by outflank-mailman (input) for mailman id 757483;
 Thu, 11 Jul 2024 13: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=Xjjf=OL=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1sRtmt-0005pK-F4
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 13:24:43 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed4471f0-3f88-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 15:24:41 +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 46B7tcpV012756;
 Thu, 11 Jul 2024 13:24:18 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 406wky9pwt-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 11 Jul 2024 13:24:17 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19)
 with ESMTP id 46BC3OAw008924; Thu, 11 Jul 2024 13:24:17 GMT
Received: from nam10-bn7-obe.outbound.protection.outlook.com
 (mail-bn7nam10lp2043.outbound.protection.outlook.com [104.47.70.43])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 409vv4hyvh-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 11 Jul 2024 13:24:17 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by CY8PR10MB6825.namprd10.prod.outlook.com (2603:10b6:930:9c::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.22; Thu, 11 Jul
 2024 13:24:13 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0%3]) with mapi id 15.20.7762.020; Thu, 11 Jul 2024
 13:24: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: ed4471f0-3f88-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=
	message-id:date:subject:to:cc:references:from:in-reply-to
	:content-type:content-transfer-encoding:mime-version; s=
	corp-2023-11-20; bh=+Ia0a3mtb+wrtYOYzWsKxUPvmzEO4hs7q30AP7Syo0w=; b=
	bRkI51fkuYXAvJOcI22H0IlM9Q3kjm76ibtkJKRa4HSb3O640B4A9vE1FjWvfKng
	HtAQkylhGW4mLzuPg45BNI+mMD9I2HOlY5xRYoqpWTkOUlSh4Sv4C5McfowiMZa7
	b3i/bzczcbtGQcxenM2PN+my8cug0DzJoy+ocm+bj71bhy7c3bZ2Tq9CeZyMlsY7
	8SYTGYobBI6jgY/tmG6dxfCYrYP91PWAmOlZE2UboAnjcoFjWexzJVCAIWMIx05J
	LUTi9bJe4KsRIikeGkUpxPu6dJxvyBQBFX7IxgG9fEQ+Y0mB7m7LnUTN0+hQv8+k
	WlTBzRPpDxFk3QYg9r4uVA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U3jlgHxnwk9MzEVtw2g66GqKOfY/MyR+LJNirf0CXm/QGxyXFBNo+qiYgewUsv2zZ4XiCSOzpyHvYP7DSHCWfcXkxhmng5Xmc2SURF8qcJzUG1ag08hlVJdk/k7Ltbf7t9SiXIvlBFz+4unmpA0r+uAEwVKy8MsDLqb2HNFoadFWw6QfzHDl9RIc4h2KK9Haiqz50SNEO+7P20djmh9Emv8EjhIODom7wME+ngVePY1+thms+Ilra3Fb5MEYOr48enz0s9O4XaxYtnBcl3hVzF/+tUBrw4ned8mOz8h/gB8tvjMVRObkwhk3Kjo6R2LsHqQ16rjYNgc0GYMd0MUvOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+Ia0a3mtb+wrtYOYzWsKxUPvmzEO4hs7q30AP7Syo0w=;
 b=rLOu5tCXbd12huqgHi4r3DuH2PDJxuuuLlD7UHFFL6plgWTEHlVUocwyP85ihOhXAw7f5ztBds0a13p75NGGUBrZZ2i+52t8G9A+eHkhZ8BPNQKOqw+c0gfERdyz8eXvZOSllL51enk5utRdj+/2fdNt4gnFBab8QhQMqDYw1SyFDqKUgYL5FY4lm1uT74jFZvJej9fXnVV5zkYBPgHCFEdXgdvlBraA7sp2cvPeT0XqwxIhnnSNoJdANhF3xF+DYVpzOV/oySggRCB0aufxHxsRwyZtqagMT3fQNcAUOoh9ynB3Zi8K0jCTr6xh+XCmOhNIidsahjniKMQJBs4itg==
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=+Ia0a3mtb+wrtYOYzWsKxUPvmzEO4hs7q30AP7Syo0w=;
 b=ygIn3Hqrk0TsSEO6DjRt+M1pqIT4iPQMN6wR1cgwu1CF5gz4bNt5gTTHKVz9OXSaF5Kt5NZSeu1rDin8z5oVpN6/RLlZ426t9WER81jCqJ5pZa4xm0gnhqFolAsehmIyAcF36MeDRBd5aUYDYbkDrxzSn6eqUZM9iuJUuX5IB4c=
Message-ID: <4930431a-8dc8-47ac-8d4b-75b64c5110e0@oracle.com>
Date: Thu, 11 Jul 2024 09:24:09 -0400
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: make multicall debug boot time selectable
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org, linux-doc@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
References: <20240710092749.13595-1-jgross@suse.com>
Content-Language: en-US
From: boris.ostrovsky@oracle.com
In-Reply-To: <20240710092749.13595-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BYAPR05CA0100.namprd05.prod.outlook.com
 (2603:10b6:a03:e0::41) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BLAPR10MB5009:EE_|CY8PR10MB6825:EE_
X-MS-Office365-Filtering-Correlation-Id: 83bf0a03-1b5c-4628-9874-08dca1acc1ad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014;
X-Microsoft-Antispam-Message-Info: 
	=?utf-8?B?WjlpM3ZiNE9JdFlrZ25zT3BETXBTSlRhMVAvUlh0bVNNY2FGQmI1Ykg5aWF3?=
 =?utf-8?B?OTdDdTJ4MnI3R3ErMFlJcEVLQmxqZFdjTFNiWHFHMTdFR3d3OVdYUWx6Y2tK?=
 =?utf-8?B?bUtPUm1ZR2tQYnZLK09Yemg3dGtBVkFDZEE1ZHE0dzBqTkc5Q2pXL2JFcUtX?=
 =?utf-8?B?UDBYdkNmclFucW05T0ZlLzRGRTE3by82aStGLzlrOGZvUlFqUkQrZWdaclRZ?=
 =?utf-8?B?aGVHRzJZTGVZSmFPc0ZnK2ZpemhibkJTV1hOYnh0R01BdXZVbjhhWkEvQ2Zr?=
 =?utf-8?B?Wm9QaUkyRmhxMHlRVGxnRkwrZzNWOUVZSE1ueFRJd243dHZiYWk2OFNubkRt?=
 =?utf-8?B?WGxnbWdzNEtMb2tkU0ZoQmVQSnFBWFc2KzFvOFdlWGpON1lzaUdCbTdPeVNI?=
 =?utf-8?B?d3gvNndKbzVpM0lLWDFLd3U0WjJRUm1MbzZhNTU3WkVhelJncWZiT2tuVm1z?=
 =?utf-8?B?aS9mdkRSTHdXaE56WlhhLy9aR1RITjJDYnFVdU9XZzhITFFQeWdOTDVNdVB1?=
 =?utf-8?B?dnBNR0JGUHNrV3dFQXh4TCtkOFhGbWJvNUM5bDlIbXFES2FLZnNXT25vYzNj?=
 =?utf-8?B?SDU1ZmxYWUQrcHRqMU4yMW5jZVFMamJQbVhKNGU0N25xcTdGYXJFVHlSZkh4?=
 =?utf-8?B?a3RyMlFYYWtsUHFod2ZZQ0NqVDZuRkgyVmkrL1JpL09zZ0xONnJyeXMrcnFx?=
 =?utf-8?B?b2FUWTJSRU5JMVpOV2VFUTUxZVE1WlFFUTdzSDVJNDA0Ny9BQXY3UFM4WFhi?=
 =?utf-8?B?dzN3NXpUTGllOWI1UU5teVZZQWdFTzJ0VDVwNm9NN2VHME1DU2dXcU9WUTlU?=
 =?utf-8?B?bmN4Q0R3MzMvbUxqYUJBcFEwcVpYS1UvZTRpb3RGWjg1WW9LWXRIZXlhSHFG?=
 =?utf-8?B?ODl1QmpqMDlmWUVlOFE1V1pQcHF1NDZObkY5Wld0NUoraHMxYU9mWXg3Zmdy?=
 =?utf-8?B?blpyWHRtbzk1K3c5SThlMG15TjFuUDQvb3UvSE1qVTJxVkF0SWhXbTBEWEti?=
 =?utf-8?B?Zi9rV3U5U3ZZY2FOdnBVcHJrSHBxeWtDbGdNMEQ3QW9ITTF1OXRTbVRPNDFh?=
 =?utf-8?B?YzFFN0IzTDJ6MEdDOE5HSDNaZFhZMFFyVHZNWEE5WnplSHRGK3UxK1pxMG1N?=
 =?utf-8?B?bW5saE9YSVM5THRWKzdVRGJJbGNDRkpEc1hrNkM5OGtrRkNUMkFoOGxYYlVz?=
 =?utf-8?B?ZTFlSXZiTEF3aFllOWorWjRwNjZCUDNuMDF6Y0kyeXppZXNqV3RUMWhnMkRk?=
 =?utf-8?B?OFlnRTZuUlB2SGFSWm1UTmlEVmpzVkxVeUtNWTVrcXMvbG5qRnlLY2R3bmR3?=
 =?utf-8?B?OVh5L0xQQno5ZVNITk9NOTZJbDhDRFYyRXUxcUNTMnZFdU9BcHVNT3FWeTBs?=
 =?utf-8?B?cVh1YXd6TzhtWEdRQ0N1WlNUUnlrWlk3ekt1Z3I3b013aVBmN3g5c0JNL1Vm?=
 =?utf-8?B?S0RHa1JvTlZuby95R0NUcWF6Z2hQV0tCWlpwNENDTHUrM1J5ZzAwVjBHUlpC?=
 =?utf-8?B?eXJvOEdRSGVHblhUV2w4MURYWHRNeVdBZDE5NEdwVFpPcnJlY3pqdEYyUU91?=
 =?utf-8?B?Y0h5anE2R1orbGlDV25yVkYyNkNOS0QwZWJJZ2RKRTJtUGMwajg1eGNFM2o5?=
 =?utf-8?B?anI1dzdPcmR3L29XZkxPRExwelpCcHR1d2tKK0lTVEVaakRZeXpPK3o3bDdq?=
 =?utf-8?B?R1ZMUHIydTZNM3FqTUJlYndlR1ZNTlIxZWZTVkFNbjhCRk9mdUJVa2ZOamQ2?=
 =?utf-8?B?alQ5dGZtb0N6ZHErSnVtMks0b2ZHK08yU2VBK2w5UkltSEVSeUJjTXplaGM5?=
 =?utf-8?B?RjZmbkRqQ2p1S1pzSUtzUT09?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?M25kcTMwRkhEalhHMUxlVWpsaFJrY2wrUU5BWkZYTDVsemNMNkpzNCtFK1RP?=
 =?utf-8?B?YjBmR2RKb05Nd0FGMEliMkJqNVdvMzgza2NzbitCQlh5Yzc5YzJMdGR3T3RI?=
 =?utf-8?B?cTBIbUx3SXFteThoMjk5RmtMQWtzMDJ0V0JIQTJHejcxR1AwM0dDWUJOU2hT?=
 =?utf-8?B?b1dhVmN4ZlN0blhITkRUQlpxeWI4WncyY0dBamo2by9IRTFVQW94cmV6Z2tv?=
 =?utf-8?B?TU93WmVRUE5KQ3NobjY0SUxNU0k2ZGFUL09RRm9KYjIzb3lyMGg4azVDamR4?=
 =?utf-8?B?UjMvZmRnSTZRSW1MRTl3eWx5YVgycGZXaTRyQVl5U1lSVW9vTGxWRWZJc0wv?=
 =?utf-8?B?bUpTZVZwbzlkRzJLZE5PQVZjdlZwd0VvMGtsVFo0a2xoQUNTRjFBOFFvMExU?=
 =?utf-8?B?bTdUdHFkUllFVCtiZVM2OGRjS3FOMUxHdHVYdFV2TUlRZkU0U0diQVZFcEo2?=
 =?utf-8?B?ZjUrR1dVOXc0SVZtVlpiQkptSm4yb0UwVmRaM3U4aFB4eFZSZ0dQTjhPN3Zy?=
 =?utf-8?B?MUZjVDJraU1GbzZiMWlvVGQ4amU4N1NlaVRsVzNha1JROElVVkpMRkdUOGRp?=
 =?utf-8?B?L1ZRNXZaUDlxUjhxT2tNcnpnUDNIdUpnTWJhUVdXM2NvdGQ5S2xLc0VLcXdy?=
 =?utf-8?B?amhVUmd0NHIrb1JsNmZRc3NBR2hrajZEb1hjcHN5dS9sSXA1ZGN5eHR2VHFa?=
 =?utf-8?B?TEE1MmY2Vi9zcHpxQXpGc2xyOEhPYVFQSFRET1RNK0hUSFhkNy9jZDB3MktT?=
 =?utf-8?B?bitSRHhvZzVyR0xBMndvZmVqM09hRzErWVVjZnAxZ0xhVVF6cU4wWVlnWm5l?=
 =?utf-8?B?dVkweFZwKzdmN09ncmVJbkZXK3B1dU1oQXlJS3dnM0Y3VnluTWNiMWVZQitN?=
 =?utf-8?B?THpERUFhVnl5eTRxazFJcy9MeHl1ZzBCcnU2TmJiOHQyNDIxeGc1cVF5bUox?=
 =?utf-8?B?UkNrTWd4V2x1VEtIUUdHSnh4Wm9oc1BQdTIrNlNyWjl0MkhDOXpqVjZNZ2Zz?=
 =?utf-8?B?c3NGaGhibzN4NlRTL0pOSm5meklPZ3RrN1V4QzF1Qmhyc1dHNGhSRTdJa0M2?=
 =?utf-8?B?UCt4MGNTTWViUkFNZnBQcU5Jazl5VW9tS0RkWmt0cEVLWExsc2JsUll1aEdW?=
 =?utf-8?B?RU5kRFVBS2N0RWMwRVJ3T0Roc01YTWpJeUZkUHpoYWpRZ1FhQmhydFdkSnVm?=
 =?utf-8?B?TkhYb2RMcFBLMEJVczQ2R1NMdmd4YzFTTmdENitldmVPM2ZOdllNMytxWkJh?=
 =?utf-8?B?YUw3S2NxMUllYWpvVzFMWWJNcG1vWHIrYXAvV2FOZURuS1lib0RxQ1pEazdr?=
 =?utf-8?B?a0ZvczdlV2gxaFd0UzRhQUNLTW9VMG4wcXVoZDN2bGNZOWZhdm9xVThqa0J1?=
 =?utf-8?B?WXNLeHYzNk5kWnViTUFGbldqMnJmR2pxcFFsbm4rTjBpTUpZZ054NS90ODN1?=
 =?utf-8?B?VEZiRi9hSm0rOXd4Z2ttZG8vclhTa0xkYzlJWHg2aGhuNTMySkFmOTdwa2ti?=
 =?utf-8?B?TDJ4TUxoTjRZREFKWkhsWFJUNmlkU3hKUXhRQWxVVFN6M01XdFpXZFhQM29F?=
 =?utf-8?B?bEVjall6Qk1jNTIrTkxXd2FNV0Q1MHRDcmFNNjByRWNJaWtpR1BSeEhtV1Z5?=
 =?utf-8?B?K0N6RTdEaGgwTGluS3Y5a2Z6N2FjR2ZES25BNWo4Q21ZRXlXdzN4R292d3lH?=
 =?utf-8?B?MWtEaEFHWXFhNk1qN09LN2o3d1M2M2tXVVhwUUVpaWFJVVpXSkVhWDVPL3h4?=
 =?utf-8?B?N0pERXN2OU9jalZYcmdUWDBjTVNRVjQ2UjQ1ZUFhRC9nYnhTQlYzZFFkbzYx?=
 =?utf-8?B?UHBQMG5DemZhNzlWMW5qd1ZhSmFERVd3a2lLM0ZTZGdSVU1FWFVkbzBmNFhp?=
 =?utf-8?B?eExWR2I5SlRnSlc0NFAxTk5VRWJ4L0hTbEhrenNxRUVXNHlCU1FhWDZJalJH?=
 =?utf-8?B?MzFSMXo0NlF5VG1odmZkQzNWTHRpUnFOOWt4MTdrcXhnODRKSlRiV05kdmhh?=
 =?utf-8?B?UXhaUWtMNW1IWlBkZWhMTUUwVHE1VFE4TmQycXBzM25md0lkWkhxYVlhUjhL?=
 =?utf-8?B?ZkEvN2VvQ0tpL2U1SVJlWUVWdXVNeXI4UktPSzNqM25wemh2QWVYN3RIbU9a?=
 =?utf-8?B?ZXNJOUR5dWhqcGNnN0tTdzFHZnFTNCtWZEtTaDNXOWJwR2N2bjhheC9WZ1oy?=
 =?utf-8?B?REE9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 
	1USn+2Gae6PbJ2nRjC5odCVPSQ6CDx8COHV6RPNMnnxoOWYsHNbMnL7Eqf9+3BNpIr68fVRisMumaRJI4Qq0MOzhj+kAK9ZpcTGizMGXN2kNijc9z6fbJ4QQbdIBwKxxVHDE2oyZASkaucFVhP3HM/4mSRz6j3BKFsObFf0Vf53oVRxwVgYqu2Z/D0yKS1FkdQXc46hGMB664ppLVMyd/5uiF0/sNiEzs40abNjqCZivuj8/EsTPT/DxdU7ZCq/XW8gK2Wzy0re0JuPzZYN+4C8YcGGLk6kDJm/wfwSU2OrSEfF342hGh3noqYteXzbLhctqAiY6Kx78+K8gmVQUGZfz6rrzCM2wRB8DaunjcgNjgYzLWUiPBMxL0msFIq+eByHxbCpbXoNpFOYutCEhkS/zYR2LTfyQcRls0sdpE7FqGpJRy4jmIn9QbyrbWsyFl32Mz05N3JL4Er2r6rs5b6tzFzhXT6ihem2EBWx/zSnB2vj8N7uHU2eguVgOjBhgMpfRbsaHHARnhD1YY7KlWzuVJmuEk751/PMxIb73U05dmfUWwkmlDhwOUi+4a2B5222KeKFB7xve3cP/2fAMILfX3qW66YXYVd2eQCAkO78=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 83bf0a03-1b5c-4628-9874-08dca1acc1ad
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2024 13:24:13.7239
 (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: 5GFVL/Wlj4buJj1bELvXx+v8MJ/s1twWD2+vWycARTDgepvvYnQ09mk7yvmApFdLlTKzkSs0UwQzLHF1o0WCpOiNYlffVk/CKGsg/XPwVDk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6825
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-11_09,2024-07-11_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 bulkscore=0
 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000
 definitions=main-2407110096
X-Proofpoint-ORIG-GUID: 97cW-wtBgkdF_gab4ssIWg2zGwABCyn9
X-Proofpoint-GUID: 97cW-wtBgkdF_gab4ssIWg2zGwABCyn9


On 7/10/24 5:27 AM, Juergen Gross wrote:
> Today Xen multicall debugging needs to be enabled via modifying a
> define in a source file for getting debug data of multicall errors
> encountered by users.
>
> Switch multicall debugging to depend on a boot parameter "xen_mc_debug"
> instead, enabling affected users to boot with the new parameter set in
> order to get better diagnostics.
>
> With debugging enabled print the following information in case at least
> one of the batched calls failed:
> - all calls of the batch with operation, result and caller
> - all parameters of each call
> - all parameters stored in the multicall data for each call
>
> Signed-off-by: Juergen Gross <jgross@suse.com>


Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>




From xen-devel-bounces@lists.xenproject.org Thu Jul 11 13:26:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:26:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757486.1166450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtoP-0006N2-5H; Thu, 11 Jul 2024 13:26:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757486.1166450; Thu, 11 Jul 2024 13:26: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 1sRtoP-0006Mv-0d; Thu, 11 Jul 2024 13:26:17 +0000
Received: by outflank-mailman (input) for mailman id 757486;
 Thu, 11 Jul 2024 13:26: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=lw7m=OL=bounce.vates.tech=bounce-md_30504962.668fdd75.v1-6142b93e9f1d4ab39d1c0bc4022d058d@srs-se1.protection.inumbo.net>)
 id 1sRtoO-0006Mp-7T
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 13:26:16 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 253926e7-3f89-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 15:26:14 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WKb8j2RMjzB5pVJW
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 13:26:13 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 6142b93e9f1d4ab39d1c0bc4022d058d; Thu, 11 Jul 2024 13:26: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: 253926e7-3f89-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720704373; x=1720964873;
	bh=9LN5ChWi/SQ67mcN5TxeH1Qu81Y0RZwu1qFXqq0uDWY=;
	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=YOAwmVz3dAfGfXBdpjAc7WOOoVYbwtaKJQVf45fDc+9eglbbpEqHiAEEYkfp4/L6N
	 a+aF27paPpL60tk2ASk0r+7qx/dgdeClpbthqYpP18npn7uPi15LqhL7zhTcHnDcM7
	 0dukIbxhPb0mxiWB+3MZ5nQSCK1MJWcw6TXWCjh3zLrP671XCA1sUS147fCVLP8dSQ
	 Q3e2DOYxdkQG7t5kV6qb7RJkG3UFAWkDy/Xs5m32886n09wCa1K/ZoH0t2EcyXlgdK
	 0P0niikx+f/oewZmXHY7Dx8nr2vltz3cGRGPkaeEuwxMRZY9v6ihEzNdAPYuR5jYCm
	 ddMDX8R12XxcA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720704373; x=1720964873; i=anthony.perard@vates.tech;
	bh=9LN5ChWi/SQ67mcN5TxeH1Qu81Y0RZwu1qFXqq0uDWY=;
	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=bsmYsbBeo4pRXLRk1zBhxeKOm5MyBx00FAKUXU2tXrE3JtP93yrPxHkvlGQANixve
	 /JCgAZwtmoZQuCL12W3p+fO+3WOMrSCiVSwdjNbsV/FrTnYymXBsjmKYCdPfP9CMGH
	 ZTyOL8Gn5QJda+AsA8pJZEPZjA07f6gwVZsAIkUf5z0tAoLhoUhk3RbTk+uVs2cBmv
	 5Ior5UjtjpW95exUivUkdGzOjuRG6UvMnT5oeVSYZ4GZqi4sDfiEHchjJW3BrWsJcb
	 27R6Xnb5VfjquBV+QKkjvO/1uUxECo4H8poKuZ8Eh1CRBA19NKSvalBYb4RFRJPfvG
	 QzoRZBau0cPMA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2005/12]=20CI:=20Drop=20Ubuntu=20Trusty=20testing?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720704371723
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <Zo/dc4gwBjNF49i4@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-6-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-6-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.6142b93e9f1d4ab39d1c0bc4022d058d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 13:26:13 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:10PM +0100, Andrew Cooper wrote:
> This is also End of Life.
> 
> 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 Jul 11 13:33:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:33:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757492.1166459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtvZ-00006K-Oh; Thu, 11 Jul 2024 13:33:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757492.1166459; Thu, 11 Jul 2024 13: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 1sRtvZ-00006D-LZ; Thu, 11 Jul 2024 13:33:41 +0000
Received: by outflank-mailman (input) for mailman id 757492;
 Thu, 11 Jul 2024 13:33: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=xIkU=OL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sRtvY-000067-K1
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 13:33:40 +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 2ea9a013-3f8a-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 15:33:39 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2eaafda3b5cso7761291fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 06:33:39 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bda3096dsm3445429a12.96.2024.07.11.06.33.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 06:33: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: 2ea9a013-3f8a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720704819; x=1721309619; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=0a4dg2EPZXF849hx339SrAGOvGkV7Wo4rcsXkXk9UpI=;
        b=DolphPqiB1fm1XLd00uaSM0csRK+Jp0KZmKgJO/zVKURvms3Vtm1Ywd0IaPYjSRuEY
         7b2x7PWWJnehZipv9INviq1reR+ZeoN3HdEuIziQ2TTKEqwQKj8Rd8uFasvLfHLJaipv
         iSt8l/pK/2Ib+sHdkuBQWicvjMDfNf9c/aHO1R43DUyuiWkfeythaycCWjNhxiySXGCe
         Ay6nj9kKuCmsZoWImJJ/eALmzMe0V+0g+j8SqLzZ7X0PSX72JoT2KTSnoGBFrPt8Mop+
         P1dXKQZp889EjT1GbQgY8rVAZaObAv20p2Ns5cvPrMjfbHTNsAzSveT+zq1IH43vZsdq
         WYDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720704819; x=1721309619;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0a4dg2EPZXF849hx339SrAGOvGkV7Wo4rcsXkXk9UpI=;
        b=iQe2uG1t7xFCDBShHyTGto5CW2v9wjVD4SFCTvMfYKw9fC7yzQ1U5jaXoNHxHq1F3B
         m+/SjOOF8ATDOJ4FTWVVGa3aUDWdWuZxaNoWxV3t3O0Zv5Oyjm91E9ZqopqGXywwTN3Q
         nYbYjNN+i+ragXJtKWUxeS5OPrZqQhB6qOz1gBlpNUVmBJSDWwcMRb7i/F9Tx3IZuixo
         qW3IDtcECdjYCudW3uG3YkA8B9GA4X9bxr9oFXaTwA5Zw2YtN+2JrCu76+h+0UqNY/fF
         5K2elJvYsb0fA3FgFs5r1NZ4AsUKLM6pAOv4vHqvYtus/RNJQQY09qHj1nRRq+1crh9X
         q5QA==
X-Forwarded-Encrypted: i=1; AJvYcCUZm7AC30PDeIaxID4js0xdiPMhiSQDr96tHSTyPKL5J/P8UgGzIY+9a/IIWgAfVrx4Uoen8K6w/xESI5C4AoJaPXcNn7RGCusqTCvhJew=
X-Gm-Message-State: AOJu0YwWMoizRQfkoTg1Om8fzBTTaPS7sQvAG1P4pIx2D21bEA5Tc4+8
	LvRYuOeGBS7SoOx52FZK76yH3Sri3d2z6sLX+OGLWJo3pcCB4CTaDV16UiiD
X-Google-Smtp-Source: AGHT+IFftyQ0/aE6V7YmL2LmvQQBXpzhT4v9bbgyiGwjwhIM9aOY75ZnQ6OeZCh0EpEpykHLivNDKw==
X-Received: by 2002:a2e:9bd3:0:b0:2ee:4c2e:3d35 with SMTP id 38308e7fff4ca-2eeb30fc904mr53108741fa.23.1720704818508;
        Thu, 11 Jul 2024 06:33:38 -0700 (PDT)
Message-ID: <67d3e229733fa64e4cd9ac593c4305b605bef827.camel@gmail.com>
Subject: Re: [PATCH for-4.19 v2 00/12] CI: part 3 (slimline, and PPC/RISCV
 fixes)
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
 <jgross@suse.com>,  Roger Pau =?ISO-8859-1?Q?Monn=E9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Shawn Anastasio
 <sanastasio@raptorengineering.com>
Date: Thu, 11 Jul 2024 15:33:37 +0200
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.2 (3.52.2-1.fc40app2) 
MIME-Version: 1.0

Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii

On Thu, 2024-07-11 at 12:15 +0100, Andrew Cooper wrote:
> Patch 1 fixes a bug in the containerize script
>=20
> Patches 2-5 remove useless/obsolete testing
>=20
> Patch 6 fixes a bug with the archlinux testing configuration
>=20
> Patches 7-9 adjust the PPC64 testing
>=20
> Patches 10-11 adjust the RISCV64 testing
>=20
> Patch 12 refreshes the custom GCC-IBT container
>=20
>=20
> All changes here follow best-guidance for dockerfiles (non-root,
> heredocs for
> improved legibility), and naming consistency improvements discussed
> previously
> on the Committers call.=C2=A0 Breifly that's:
>=20
> =C2=A0 $DISTRO-$VERSION(numeric)-$ARCH-*
>=20
> which sort more nicely and don't require e.g. people to remember
> which order
> buster/bullseye/bookworm are in terms of debain release.
>=20
> For x86, this involves inserting an $ARCH of x86_64.=C2=A0 Right now,
> x86_64 is
> implied by the absence, and all other variations have to state one.
>=20
>=20
> Still to come:
>=20
> =C2=A0* OpenSUSE container fixes (resolves the final rolling distro vs
> =C2=A0=C2=A0 allowed_failure problem)
> =C2=A0* Ubuntu/debian rename/trim
> =C2=A0* Add new jobs for latest releases (Ubuntu, Alpine, Fedora)
>=20
> Andrew Cooper (12):
> =C2=A0 CI: Fix CONTAINER_UID0=3D1 scripts/containerize
>=20
> =C2=A0 CI: Remove useless/misleading randconfig jobs
> =C2=A0 CI: Drop Debian Jessie dockerfiles
> =C2=A0 CI: Drop Debian Stretch testing
> =C2=A0 CI: Drop Ubuntu Trusty testing
>=20
> =C2=A0 CI: Mark Archlinux/x86 as allowing failures
>=20
> =C2=A0 CI: Introduce a debian:12-ppc64le container
> =C2=A0 CI: Use debian:12-ppc64le for both build and test
> =C2=A0 CI: Refresh bullseye-ppc64le as debian:11-ppc64le
>=20
> =C2=A0 CI: Introduce debian:11/12-riscv64 containers
> =C2=A0 CI: Swap to debian for riscv64 build and test
>=20
> =C2=A0 CI: Refresh and upgrade the GCC-IBT container
>=20
> =C2=A0.../archlinux/current-riscv64.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 |=C2=A0 22 --
> =C2=A0automation/build/debian/11-ppc64le.dockerfile |=C2=A0 33 +++
> =C2=A0automation/build/debian/11-riscv64.dockerfile |=C2=A0 33 +++
> =C2=A0automation/build/debian/12-ppc64le.dockerfile |=C2=A0 36 +++
> =C2=A0automation/build/debian/12-riscv64.dockerfile |=C2=A0 36 +++
> =C2=A0...ockerfile =3D> 12-x86_64-gcc-ibt.dockerfile} |=C2=A0 81 +++---
> =C2=A0.../build/debian/bullseye-ppc64le.dockerfile=C2=A0 |=C2=A0 32 ---
> =C2=A0.../build/debian/jessie-i386.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 |=C2=A0 55 -----
> =C2=A0automation/build/debian/jessie.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0 52 ----
> =C2=A0.../build/debian/stretch-i386.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 |=C2=A0 57 -----
> =C2=A0automation/build/debian/stretch.dockerfile=C2=A0=C2=A0=C2=A0 |=C2=
=A0 60 -----
> =C2=A0automation/build/ubuntu/trusty.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0 51 ----
> =C2=A0automation/gitlab-ci/build.yaml=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 233 +++++++---------
> --
> =C2=A0automation/gitlab-ci/test.yaml=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 13 +-
> =C2=A0automation/scripts/containerize=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 15 +-
> =C2=A0automation/scripts/qemu-smoke-ppc64le.sh=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 |=C2=A0=C2=A0 4 +-
> =C2=A0.../qemu-system-ppc64/8.1.0-ppc64.dockerfile=C2=A0 |=C2=A0 38 ---
> =C2=A017 files changed, 282 insertions(+), 569 deletions(-)
> =C2=A0delete mode 100644 automation/build/archlinux/current-
> riscv64.dockerfile
> =C2=A0create mode 100644 automation/build/debian/11-ppc64le.dockerfile
> =C2=A0create mode 100644 automation/build/debian/11-riscv64.dockerfile
> =C2=A0create mode 100644 automation/build/debian/12-ppc64le.dockerfile
> =C2=A0create mode 100644 automation/build/debian/12-riscv64.dockerfile
> =C2=A0rename automation/build/debian/{buster-gcc-ibt.dockerfile =3D> 12-
> x86_64-gcc-ibt.dockerfile} (50%)
> =C2=A0delete mode 100644 automation/build/debian/bullseye-
> ppc64le.dockerfile
> =C2=A0delete mode 100644 automation/build/debian/jessie-i386.dockerfile
> =C2=A0delete mode 100644 automation/build/debian/jessie.dockerfile
> =C2=A0delete mode 100644 automation/build/debian/stretch-i386.dockerfile
> =C2=A0delete mode 100644 automation/build/debian/stretch.dockerfile
> =C2=A0delete mode 100644 automation/build/ubuntu/trusty.dockerfile
> =C2=A0delete mode 100644 automation/tests-artifacts/qemu-system-
> ppc64/8.1.0-ppc64.dockerfile
>=20



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 13:34:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:34:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757495.1166469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtwA-0000bG-4j; Thu, 11 Jul 2024 13:34:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757495.1166469; Thu, 11 Jul 2024 13:34:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtwA-0000b9-1R; Thu, 11 Jul 2024 13:34:18 +0000
Received: by outflank-mailman (input) for mailman id 757495;
 Thu, 11 Jul 2024 13:34:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xjjf=OL=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1sRtw8-000067-3s
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 13:34:16 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 43381216-3f8a-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 15:34:14 +0200 (CEST)
Received: from pps.filterd (m0246630.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46B7taYJ025427;
 Thu, 11 Jul 2024 13:33:43 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 407emt0x8y-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 11 Jul 2024 13:33:43 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19)
 with ESMTP id 46BDHU1Q022757; Thu, 11 Jul 2024 13:33:42 GMT
Received: from nam11-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam11lp2169.outbound.protection.outlook.com [104.47.57.169])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 409vv2fqtg-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 11 Jul 2024 13:33:42 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by SA1PR10MB6518.namprd10.prod.outlook.com (2603:10b6:806:2b4::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.22; Thu, 11 Jul
 2024 13:33:40 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0%3]) with mapi id 15.20.7762.020; Thu, 11 Jul 2024
 13:33: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: 43381216-3f8a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=
	message-id:date:subject:to:cc:references:from:in-reply-to
	:content-type:content-transfer-encoding:mime-version; s=
	corp-2023-11-20; bh=YFIBWSC/+XeE0o8zI6KjL9V0QgxXYQuW4Cayf+HBLTI=; b=
	blAoZYoKvscUMtvqsLyeh7C6LDMKv/B+pINvkdqTPgyv3h2379JEgT6ygxEQoA4b
	0K5YwSUOJsr2JSwQX7leKMOHwq40g0g0AeIfusS/yNIKm78/SRE5wSNk8ZKCvjAR
	oiTwz8J8ehk+LFt3IlzzcxfDvz0R0MgGOID/VHFa5JRZuEi55oTcM0hYoS/V7FwY
	667A6GbDUR407veUkaCWYDGhQu3tdookfFV8foipeAwctHm8W+/6kPHCbdKevwyA
	ye9kwBw3jdAanervUcaAbLuszlygzJfyNy0vuEi1E3NIb6NjKSPH/MCOFXBooCGI
	N9vkjwt7n5OljHhoP1/Cbg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KJowaDboYz8zT90/QrC/hNNWGLZddxDnzYidydGLdc3Uiw2HVc7slzaRTGUTgz7AKAtcrOpwfmpcWIptLpQAVOds0WNLixxYWCWfAXtXAM6Dm6hqJhd6hcZMtLs3ctnFEaCS5icNIMkvRT2V6PjmmUcYCsgWaf7IwD2PRWTiwEMHoVdhnfhGJc2tKZftPbQSOSW31YSI5e/jymKzK1A2hvzmCFedXF1/Vq9nKG86Ivw1OUpfUaIvcVP5NBJvu5FClaEFWCA1V3HfDOX71+TA95Jb5nVjcR4E8P0Cm/Y+F86L6/pyjD3dUX3u7lH4gSrI4pwTwZjwsuumoVhppN95pA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YFIBWSC/+XeE0o8zI6KjL9V0QgxXYQuW4Cayf+HBLTI=;
 b=bx3wTM1osocDfp5UKwgQLhYMxGKYwCWLca+vHPkHv/RwMEUydMuyiVTIoqw4UeIkxVwqNqMks4A4WJk2KF5X3X5lNpbOWZi18K+mOJjD/bTzvP7DdOy9vqYWdyCkL5JNFNmV4lyOsV4cCsWiTyv3lg727FNBIOfNmRSxguD0hLMQUH2z1xyXZfugiQI/sE7iAKhTAFW7+ZQ3BTpi6VQcbFQBb+5pxcZwY6DEEohVPJYWTpJcioHTGhCfMBm9qRqc48n+77t401aXdgq95sYAp+D6uKXaH6QylIOShBLIO30f0tEwRJPao99PoixGmcj7Z7QpRfPP62hpwrxL1raacg==
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=YFIBWSC/+XeE0o8zI6KjL9V0QgxXYQuW4Cayf+HBLTI=;
 b=h26fnrKKeymV0EpozfFcA1fU+PhjN44C951hdeZmRoWLFtMCtystn1+IOGuYhS+HdDERRfke6gS6x3Qz+JrWMdF8WpgukOF63TeBeZ9JcGUyvKp2GE4Id+nHbY3+RLzZUhBBtjDp5B6bB0KmQON1Vjsr51ICLOGWLQ3Ml17XEXY=
Message-ID: <ea005c78-20f9-4792-b59a-844fe6f7ca4e@oracle.com>
Date: Thu, 11 Jul 2024 09:33:32 -0400
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/2] x86/xen: cleanup of xen private headers
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20240710093718.14552-1-jgross@suse.com>
Content-Language: en-US
From: boris.ostrovsky@oracle.com
In-Reply-To: <20240710093718.14552-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0658.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:316::7) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BLAPR10MB5009:EE_|SA1PR10MB6518:EE_
X-MS-Office365-Filtering-Correlation-Id: b285d562-be77-4120-161a-08dca1ae132a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info: 
	=?utf-8?B?cTVYK0NTcFV6NWlMMFltTXpRQnk3bC9Fd3hmUldvNnFhYjFWNldxZVFpdzhj?=
 =?utf-8?B?NWMyOTlQSFFhOVB0OUF2UlZJQ0JRdEVkQnpZYmVKZUVsQXVpb1lHSkJ0OTMz?=
 =?utf-8?B?V1dzZUk0UDF3TXBESFY3blhHNlMySHlJeUh2YU9IQXhEMkpoT3E5ZkdtS2tI?=
 =?utf-8?B?cVorMjI3aXlqdUNZWlZsYWF6dnRaNE8xTDRTaVEyWlo5S2Z6UVQ0aG5xWkxi?=
 =?utf-8?B?R3RSMG1SNDRwbzF5WDhpUm9kTWQreHBHd1R5KythRjcvTkQvOXFNMThHZTZv?=
 =?utf-8?B?cjJVVzJkWkJkVE80WERpeEZzbHJGcjJyVjdoVXZHeU8rZ2lJMWVqNUpldUZO?=
 =?utf-8?B?RDFId09FOVFwT0JUcGVWMitRd0pDQWdVZjJUblpDcWU1YjEvQkZKZlNTWStI?=
 =?utf-8?B?TE80S2Z2aEdrSU1NRXBDOHFnR3NIc0hCYWJEWThaNHFwd20zVjkwa1JDcW5E?=
 =?utf-8?B?V0t2Q0pSeWI1bVlTMTFvUDVXMy9ZUVBZbXY1YW91bS9ETDhGMmNNbkFUbDAy?=
 =?utf-8?B?UGsrdzF2LzZzUFYrSnJScm03OU9RNlVDdnpUc010UWtibGk5YmpnSG1XNGpH?=
 =?utf-8?B?RmhjNHU4cS9kYWE1czUwTVMvd1JDNENRTGc1clF6TTN4MHRzK1RlZzFyZUI4?=
 =?utf-8?B?WFVsWVhaeW9IK1pOeTFnR0h4QTZCN2dWbHhpWXZyOFpVQXBHdjRTdy85WDBI?=
 =?utf-8?B?RDluNDlUVkdrdFViTkszT2ZmbFRJU1A0YnJ0M3dKTUhDSE5Vdnl1eGpVWWxI?=
 =?utf-8?B?M3JTN0JLRzhBTitIQm9EZUtwSSt6Z2pCODkyR3BYdzFwVWNEK2NvUXdlN3VQ?=
 =?utf-8?B?bmxpODQwN1NWbFVXREVEdDhWUXJwN3l6VTAzalVWMm5acXNmWXFJUWtCSC9Q?=
 =?utf-8?B?Q0hLSmtjaTBCZHllSS93aVRhVDNZMERPL2RuS2gwL0pxVWx4S1dCVGYrNWZx?=
 =?utf-8?B?V0l4aHhhV3pJQ0lIcFdoRTdLSFBBRzdUQjVPM2JQMFFXajNWcGtHM0VDemY2?=
 =?utf-8?B?cytWdVA2UWtvOXNoN0RWZ3hYeS9jNW5WSTA5RjNhalhEZ0N6QXhIN0t6eTd1?=
 =?utf-8?B?VkVVeEpOYlpDWE8yelk3M0RDaWFMdHZiTHZxclI4azRUeWtleHkvQ09GWEdR?=
 =?utf-8?B?cDFTMFFkckRHUmlxMmVwTVd2T3Y5WDRIMU9MU3laakRpRVlDK1Boc1JpN1BD?=
 =?utf-8?B?MDJKU3ZDb1J1NTdvcm5Mc0FoZ01wTCtYTWIrWUpsaXQ4TUc1ajZtNnNMbnIz?=
 =?utf-8?B?QTFtSzdaS2pxam9USzg0TGFQMFB2bklJQjJvQ200Q0E4a3lqdndxY2FCT1BY?=
 =?utf-8?B?TnNYSFc5MUd6ZTR5QnRPU1BhWTFFbWJWa3BJRmpJWGVOS202RlRmcko2QzRp?=
 =?utf-8?B?LzY3NnFmN09VQ3JyQ0dGaUp3UTFIZXRWbWVLU3JBaHBYbzZUUElxWXVmUENX?=
 =?utf-8?B?MFN6a0RqUWtIaGFGamtaeHRZcEFDaGFydW0vZkRMMGRXYUVHaTlXWnI0Wnlz?=
 =?utf-8?B?NTRIV3A1b0lpUXpPQXNpdWoxU1gwUVBVb1g0MXlVa1dXSWI5b1BOSllpQUdu?=
 =?utf-8?B?RjhaYUtmb2NJeHNBME9NVWNlclZzdTR5NVRrZDZVQXdSUXlxeW90V3JHREZh?=
 =?utf-8?B?RmZlbDFUWThteFpLcTRScC85bjd6dEZRYWFRcEZoRFg1ZFhQS0RXWHB4UTJu?=
 =?utf-8?B?VmVzREZGTjZjellDUHEvd3FsS1FETHAyeXpaTkxweXQzcWJGTTczOWVRbnVy?=
 =?utf-8?B?UHVwbzM0ZFg0MFdlbStqcHpZSVlTUFNxRGY1aXZaSVpQSHgwZ09TbUYwVGJE?=
 =?utf-8?B?azY0bFdNU21ndlJvN1BlUT09?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?a01rYktUdDhSWGFTdWZROTJ1azhETkh1WFhHVWpwSG5qVDdQWUp6Mk1ZMCty?=
 =?utf-8?B?dDNxeFA1OFlDelc4Smw4d0NJY2NYRlNlZTZJUDl1c013YkprdHRxVWpvbkVD?=
 =?utf-8?B?WXRyaHZHb08rR2VKNi9JRi9VMHR1d01yczNLSUhCNVVTTVRyWExlZGtrK2k2?=
 =?utf-8?B?dHRxa3l4bkhWTzQ4YU95eGdybFgybU52NDhOVVdXekJpT3lYNXptUU5oU2Rn?=
 =?utf-8?B?cnBuTUpsTk5WRVBaZk4rcnRNdm5sdUZtZ2t3ZVZvMG9yL2xBdStFdW9vN010?=
 =?utf-8?B?REMvd05MQWtaMEJuM0dSVWlFalI4OHY4WkhSQ2xDMG1ONndncFp2QmlpdFU3?=
 =?utf-8?B?Z3ZMVlpodWlEOGdqTWxFdCt0RzV5cWc1VkVTVENKUDlRU0NpSmsyTmRzNE5M?=
 =?utf-8?B?cHRZNXM0VXFHYXpQV29yMzRjd3ZBRlU0VVVPUDhyQVBvbVp2ZTUydUNrM1Vj?=
 =?utf-8?B?aGM5VEZHZ0V5cEZkclhrbm9DV0dWQ1lXTVBZNEl5eEIwd2JsejVYRmNpaTZT?=
 =?utf-8?B?SnUvYmlpem1Vb1JDaFdGNmxDSkIwWnQ2SnJqZUVjUjNZc1BFeWZ4MFU2NHVr?=
 =?utf-8?B?QVB6OTZ1VnFyakVTeW9WWk1rTnBLRU1mekFrMHBWMG55RFg5WW56K3R2YSt1?=
 =?utf-8?B?ZFVXQld1RWJmZmw0bXVBZFNTTnVnQm14bFRvZXFjMEFnc29idmY1WUhuYnJE?=
 =?utf-8?B?Ym04NERmTzlPNkJRR3RGTkc5MjJLeDdDSllTSkorenRSNFJRUzdFSEpnczE0?=
 =?utf-8?B?NTkxajlRWEVSRm8zNnJZbVI2U2w2ZlBhQ2VGNGc4L2d4U3o0b1NUTDZoRW1X?=
 =?utf-8?B?UjFkTmpFUlNHRks0ZmE1MHNtRU9rcy9oNGwxQjdIa0RtVnpBdHB0cFVnSFls?=
 =?utf-8?B?TmtFSGR0MlNXZTlMZm8xbElhWGZPNE5iM0Q1SXNtUDF1MXpJNkNMS0NPZWRV?=
 =?utf-8?B?MitWOHcyV1dZUjl1Nmk1aWtKR3k3ZlRLYURaQUh4WmxGL3kwOWxmY0xOb0tW?=
 =?utf-8?B?b0FCcTRrM001NDNrT0FGZ0RHZW52emVlM1dJWTZFTnozcDJ0SVdMZHNpUVl0?=
 =?utf-8?B?RVNTOHcxN3RycUpJODNLbTdLQ0t5aWZ5QjU0QjFXSEE2d1RxblZEbnVkTm1J?=
 =?utf-8?B?cTE1aGNTMjZRb3phNG16cEc2K0NzRkNtT1dSMk52Z3ZzcDJnclV3K0QyeDNC?=
 =?utf-8?B?S2hpdXZWU0k5R0oycmdWbUJHNndHZ0EwVEN1TTE0T0NTdXdOWHFWWE96Kzkw?=
 =?utf-8?B?R2NFM2xIbHFCN2pyYVpGS1RaUnVXOXQxUTN6TFNIUVdJWm9VVC92dmFvV3VT?=
 =?utf-8?B?MzBkK1pMQjMyM2lTU2VuNFY0Q0swNDVQN2N3VHhWYVAzWTdDc1ZGb3NWajFj?=
 =?utf-8?B?cTd4QTM5TTR6SHFCQW9IemtnNHlCaTBmd252TnVGRUFaeVpodHVtd3hTaGkr?=
 =?utf-8?B?OXVudWFOM3E0Q291djdiejNDc1NBMzJISFY4MVRDQTdwOG9ST1Zpb1hmODgv?=
 =?utf-8?B?QUV5TTBjeGJSbmhrSFd1dWo0UVRZNjE4UjFkSGd6ZE9ieUhJUmFiRE92TG9n?=
 =?utf-8?B?OERpNDBSb1RsYUJIQlY5WHcweDg0Y2V5UVA3MXZsRG1keTVobHhYMS9DamdC?=
 =?utf-8?B?U2owdVU4Q3A0V3o1ZkM5RFF3R2dLNnU3L2tYdW9tT2ptRUV6ODRDaW1Xc1pO?=
 =?utf-8?B?TFZXSzJHUmdmRC9jTFlsV0s2M3NWN1k0bkpmRkFvVmxjS1hFSktVb3puZGk0?=
 =?utf-8?B?ZWlwSGxkOTJncTQ1Vjg5MHF1a1NnQzQ3a0E5OHV4OGdxZnIwU1F2RHV1U05y?=
 =?utf-8?B?enZESkFuZ2JaTGNRTDNQNVZnbEo4L2FubnNTNGhsUUpqNUp4ZUVud0xtOUVD?=
 =?utf-8?B?d1gzVUVKVjk4QS9leWVrS1AwM0NPZUxsQ2JucnYvZS95Ky9Lalh3dTFiOXNy?=
 =?utf-8?B?U2I1YWVHU2x2VHVPWnlHTHlLbmdXdXE1RnU1T3FKYXJFOVdPYnR6bzNIbEhu?=
 =?utf-8?B?YWI4eGgraWszN3N1clBNTUVidWRiTjJzdXB2bDZiZGxDcFcweFBRU054QzhI?=
 =?utf-8?B?ZWhkUEMyb21haGduRG5QdDdkZjJhVVBIcFB1MXlEL2NsVWJZNmNyZm5lWnFy?=
 =?utf-8?B?NUFuRlJ4N2ZxeE0xN3BnQU1SU0taT1BveTk2RTJuZTdudFgraEJMNlV4dW1P?=
 =?utf-8?B?V3c9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 
	+3wwcWa7sDno0som8UGF+F+RH6iJ4BumGbqV/o0gNlWOKARVuFfxSjUWMduXIUc6gjn85hZVogfdkFj3E7i0WQQXT7H4n/nTJsZyRjuynWYwhJ+x4CwoyKLlmjoe9UPdPXHg62Lgk8jqf2+/RYA27opx8a8P6kXeQjSjgAnp+ZDXCvpYuq2PywPQOD5naRMaMPJSBkFJNWsZo1zjanDmwcjifdYYvLbXw9Ou+/ZKQcCn/G4aIywbeHXZfZDJNqy+ln0yoK51VYmJhjAPEbWY1qfWq6vazBoVQbdzcCdjkCM5dZAX+cq0R9WoGNVEVJWFbwBQx2i5yI4QmUvJjh0v/vS6RlIKzudTV6WB2VXmNDO1yl6gIdv+lBLERgo+3FaV+C1zOXuwzPh6ZYh6q7E8H5D53FAILZIBnh4KEW0u+J9+BIhkTHY1nTaKsU2tCrjcoGMm/BhLSKxik8RRp/1b0Xhpc3fGahPwKd6qAqgHN/58xEC60vkTZ7j3EOnNRNJ4pMGwhs3qyr69MV2PtSqYzOpN8tiQT1QqeTcqHDZpDC+kw/NKQEb86nFt8gyvGlrKiFLaJuKzdG8CeQ/iFC9gQWw4QROhEZXT8wxeJIORcNs=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b285d562-be77-4120-161a-08dca1ae132a
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2024 13:33:39.9665
 (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: TFzLxDFCwgxPuLtptxC++hUEhwVgcQTRqc3rylXevXwfiiZsoUpbL51wtn4c70BQHGEU2cQinX5oUlSj95Wy9DYI0Hb9+EudEV3NjZWL2+w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6518
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-11_09,2024-07-11_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 phishscore=0 mlxscore=0
 mlxlogscore=999 bulkscore=0 spamscore=0 adultscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000
 definitions=main-2407110097
X-Proofpoint-GUID: oHVkABkuA6TpCW0DVywLjpjsVLACrZce
X-Proofpoint-ORIG-GUID: oHVkABkuA6TpCW0DVywLjpjsVLACrZce


On 7/10/24 5:37 AM, Juergen Gross wrote:
> Cleanup the private header files in arch/x86/xen by merging them into
> one file and by removing unneeded stuff.
>
> Juergen Gross (2):
>    x86/xen: make some functions static
>    x86/xen: eliminate some private header files
>
>   arch/x86/xen/apic.c          |   2 -
>   arch/x86/xen/debugfs.c       |   2 +-
>   arch/x86/xen/debugfs.h       |   7 --
>   arch/x86/xen/enlighten.c     |   2 -
>   arch/x86/xen/enlighten_hvm.c |   2 -
>   arch/x86/xen/enlighten_pv.c  |   4 -
>   arch/x86/xen/mmu.c           |   3 +-
>   arch/x86/xen/mmu.h           |  28 -------
>   arch/x86/xen/mmu_hvm.c       |   2 +-
>   arch/x86/xen/mmu_pv.c        |  15 ++--
>   arch/x86/xen/multicalls.c    |   3 +-
>   arch/x86/xen/multicalls.h    |  69 ----------------
>   arch/x86/xen/p2m.c           |   2 -
>   arch/x86/xen/pmu.c           |   1 -
>   arch/x86/xen/pmu.h           |  22 ------
>   arch/x86/xen/setup.c         |   1 -
>   arch/x86/xen/smp.c           |   1 -
>   arch/x86/xen/smp.h           |  51 ------------
>   arch/x86/xen/smp_hvm.c       |   2 -
>   arch/x86/xen/smp_pv.c        |   3 -
>   arch/x86/xen/suspend.c       |   2 -
>   arch/x86/xen/xen-ops.h       | 148 ++++++++++++++++++++++++++++++++++-
>   include/xen/events.h         |   2 +
>   23 files changed, 158 insertions(+), 216 deletions(-)
>   delete mode 100644 arch/x86/xen/debugfs.h
>   delete mode 100644 arch/x86/xen/mmu.h
>   delete mode 100644 arch/x86/xen/multicalls.h
>   delete mode 100644 arch/x86/xen/pmu.h
>   delete mode 100644 arch/x86/xen/smp.h


Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 13:36:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:36:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757502.1166479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRty8-0001Iz-Fe; Thu, 11 Jul 2024 13:36:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757502.1166479; Thu, 11 Jul 2024 13: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 1sRty8-0001Is-Cf; Thu, 11 Jul 2024 13:36:20 +0000
Received: by outflank-mailman (input) for mailman id 757502;
 Thu, 11 Jul 2024 13: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=Xjjf=OL=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1sRty6-0001HQ-AN
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 13:36:18 +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 8b8b5311-3f8a-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 15:36:16 +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 46B7tSuP026752;
 Thu, 11 Jul 2024 13:35:55 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 406wknsmea-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 11 Jul 2024 13:35:55 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19)
 with ESMTP id 46BD8P2B011075; Thu, 11 Jul 2024 13:35:54 GMT
Received: from nam10-mw2-obe.outbound.protection.outlook.com
 (mail-mw2nam10lp2043.outbound.protection.outlook.com [104.47.55.43])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 409vv5rkb4-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 11 Jul 2024 13:35:54 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by PH0PR10MB4407.namprd10.prod.outlook.com (2603:10b6:510:31::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.34; Thu, 11 Jul
 2024 13:35:44 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0%3]) with mapi id 15.20.7762.020; Thu, 11 Jul 2024
 13:35:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b8b5311-3f8a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=
	message-id:date:subject:to:cc:references:from:in-reply-to
	:content-type:content-transfer-encoding:mime-version; s=
	corp-2023-11-20; bh=hcWSHkx3NWWXmLC7TlGYIC6r0eCDUPJ7GEU3BUAVS4k=; b=
	BuPr3TE+plpnBJz/tGA/0APXaTzl8cXv5/8ZCKoRtTJe6KFcfrWF3NmaARskVmN2
	fxps3UnU2AULaWaVsQBy9qt6/Qe2hBdg/7zhFck2PRGu4gatlapP3a0l0KdWawGi
	uG7i2t5aAJEA8BiMGSdIjT9Bt/mxUL14CDsXiVYYuryrLdJYE/olAWsx1JSxdDkf
	IM9xB6NY5iTzoEyKY/Dhc660qjsVgRRA/M0oGFQhzSO1Obu0fvzWia0GNhrpEmd0
	xQeg2Xtjv912uQofu+kNEQPEYtWTIyMLkW1pjz/MQAmHr9uBlcl0OG5G8IWj9xU6
	cNuPrp4eKZRmgQrjukeUVg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y1550WzKrxlxS0ul2HCiP7nbfX0EW3Y+7hCgIa65e+qGGE3mqGnQgAyGRpVIE8k7LyGQG5MNIME56QVBH8oHQ8IdlXijUF6vIOWH2BxuAT1tl7bK8eXobzynQDkv0KS4yIGQoxGf+UuNW4xA67rWkD1livxB3Rn6nTq3YMgE0CpmgwlEJeMNF0XY1movN90e8MMusdi8qA23uF3x0LfXsMkXPxeENiYSa2EEuKtRhJDSlM4p9+EDoPxuuNX6eTh+K2rEfjKq9vsrovlNzzGrZngDVBV4hx5nsR+Zn0/XhXIZjdep8HeIJ18IgWC4B7f73/SusxSD2n0mbqjDHTATeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hcWSHkx3NWWXmLC7TlGYIC6r0eCDUPJ7GEU3BUAVS4k=;
 b=pG33y/1I04BBH9bEiGLUtuo34tgUECFr8RT1xgs0BhAZ8V0gQFt6LgZrtAM0RDI/OrrF9BuoL11UVoYBOiOs97QhJT6/UgSGv978NnAPSQuUg5DLeujkiSROKVyTF7KLKDa2BS5EcJusuHa8CHjaqj6gBNcYs+apAIbs8AzgWV35qg36BCP9sgEz8M3xK03GLZ31PTsPt3sNKKnPRa8VtAxITYq/dEJyyvOd2tebxO8bREZAkSWw6vxbwAf8Z/638jBjAlqOadjdJBLaMJ9VrkdueRuyk6Dte1J7EU1cjCr7Zrosyl3WF+6rZLiAn/lQWfShyX5Y4d1uQDpbUeo+tg==
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=hcWSHkx3NWWXmLC7TlGYIC6r0eCDUPJ7GEU3BUAVS4k=;
 b=Y8VCYd2EMBCQVMzIHLoeelx95RYgoNM75JieeZUELBt1QosUl/Ov5V6f+ZoSqEfuCRUAHBLkq6BHcu/KSXZJoQZCWFibNteA5fIh+qYn6Pj0m5WSbBT/3hGUuqtqgv8eBeBdBW/KEBB+8ZoxjR37JgNcPDXocAJAu3q2yTGAtSM=
Message-ID: <cffb2a74-6f1d-4178-9f3d-e5e92442b03b@oracle.com>
Date: Thu, 11 Jul 2024 09:35:39 -0400
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: remove deprecated xen_nopvspin boot parameter
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org, linux-doc@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>, 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>,
        Peter Zijlstra <peterz@infradead.org>, Will Deacon <will@kernel.org>,
        Waiman Long <longman@redhat.com>, Boqun Feng <boqun.feng@gmail.com>,
        xen-devel@lists.xenproject.org
References: <20240710110139.22300-1-jgross@suse.com>
Content-Language: en-US
From: boris.ostrovsky@oracle.com
In-Reply-To: <20240710110139.22300-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BY5PR03CA0013.namprd03.prod.outlook.com
 (2603:10b6:a03:1e0::23) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BLAPR10MB5009:EE_|PH0PR10MB4407:EE_
X-MS-Office365-Filtering-Correlation-Id: 7ade48a3-a0a4-453d-8c35-08dca1ae5d89
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016;
X-Microsoft-Antispam-Message-Info: 
	=?utf-8?B?T1lQWkJISXkyWCthemhFUFlTQVBUeExmYk9MSlpPNERJbklpZXRIQXhscVl5?=
 =?utf-8?B?WWxsOUhYS1lvTC9zYW9hdk5IbkhOMFBMRUl1U2R5RU1RN1F5T0NNanY1eWda?=
 =?utf-8?B?YXkrd0gyelhqSkV6Q1pkeHlkZkFsYWRwalBiMWN3TXlJY3BBenpRRWMrbWk1?=
 =?utf-8?B?cGcyQTRNUzN2UkxYUnh2bG1mSytnTGFXcjFpUVM5eFgxQUh6blRjRDltcHlQ?=
 =?utf-8?B?UDhRZ0NCd1liT2dUaFd0cE91Z2w1cEVsaDFNTnBWay9pYUFOd3BEcFhoNGJh?=
 =?utf-8?B?Y1BkK05GMUxJbmlzcWJzQVB2cGp4TU9DZDYrWGM4VHVSbng3cnVnWnp5QjJK?=
 =?utf-8?B?TXlKTVF1eElUR0R4WGcrYUxaVXFsYzA4MitZcVUwdWtyRGMrNDJIbW1WL3F2?=
 =?utf-8?B?VlZRa0RmYjFqNHlsVFZicFpiR2ZtQm1hdkxGSjczaENvMmc2UE9jVnF1OU9Z?=
 =?utf-8?B?TEQzLzVJaHN2TUhqV3F0WXIvQ0kzMXZwYnJMTndVbHJuKzdudFJCL2F6VWFo?=
 =?utf-8?B?UDU4Zm8yV2RPMkNRS0VoOERqbzRGc0ZiVm1hSUl3YjBVNXNqMlFjNXl1djVj?=
 =?utf-8?B?Y1Q0OGlJUEpHd21pK1VmMmZ5MXdpYkVDWDlibm5Jbm5xS2d1ZWF3dURWTHgr?=
 =?utf-8?B?ankwRnFKYWh3dmNFZUhIRTZYT2tuWjVzUDgrUE5adldnWkFnTzdOMlV2eWtN?=
 =?utf-8?B?dGlXYzdqZlpWUFFSemg3Nmo2NFlLanNjUGdIVk9IY01nRmFXeW91SGhoa1ZF?=
 =?utf-8?B?S216cWlSS0tYR0s3WlFQZnRqdFhWTlVBNS9nQzBoZjhsTWNZZzhSUXlFWHAr?=
 =?utf-8?B?TVQzcHdzRXFwdXRZbmNDdGF1c1lWZDk0Q0dBQmYwNVV1QUZCWHNndTFSdnhP?=
 =?utf-8?B?SmQ4dGxMM2Y1UkZ3bGRienRBaHpwNEE5OFg4RVpyNVozY0gvY3BPcThITTRT?=
 =?utf-8?B?TkQ5MjRraHlVWFBjZmVFZ01YNXpPZ1pDVnMydUFvRVBTUG9qK2lqTWZVaGZn?=
 =?utf-8?B?WUNuSGFRLzAzOFFQejcwRzd4Mjlqa2V1WERqcEUrbFZUbnBaYWlHNThGQmJa?=
 =?utf-8?B?aGRoYUp6NzFJUjhzQkhISVJ3T01oMW1lNzdHdVZpaXNYVGZjUDIvWVNUSFR3?=
 =?utf-8?B?T3lsZTFwc2UraUFVSzhSRWR6T3ltMVEvTTdldGpvWUJ2MEU3UXZMVmFVVnhF?=
 =?utf-8?B?L2Z4NFpSRWFaUHcwMlVWZktZVjBUbzlENndIYVdpYkJPSGdXaUNxa2RXQkZE?=
 =?utf-8?B?amZFaS9uOWJ4QkRWdzJrUlA4QUF1MWNEbWdKNy9yQ0t3d0pid2ZoU0pjNWJt?=
 =?utf-8?B?c2VZR1l4OVZYMlpZbzJaR2ZSbmtPbmp6K0dVSDBrSHFKMnVWOXNJSEQyaHFD?=
 =?utf-8?B?TWFxV2x1cWxvdW5abnpLVERON0FMd0JteDRmKzRKTGxVNWFaZGZraUVzdmlj?=
 =?utf-8?B?TkxoZkxtN0JrOFNkaXAvWTJkWWdXZm5GbjFmSGtveGdpVThEa1RRNXdqb21J?=
 =?utf-8?B?Ynk5K09TZlZzOFRsNjBFRXo4NHNWdjRvNmFFTXZOMXMwWnRDeldVNGRPSVBh?=
 =?utf-8?B?MEMwb2VnWEp2RjV4UldMNEJwVjRPTjJKNmI2dmtxUm5xRHRsMnp2NU5QUVFo?=
 =?utf-8?B?R1R5R2FNTkY3NGFnTEl1MHJzMUpJZDBJdVpZUi8rOGEwcWFLZUJyZVJsMEZ0?=
 =?utf-8?B?cGp6QkRDWk12L2xBdS9CSU01aDBYZUxNNXBPL21ieVB1dU9YdHJtMyt6UFhh?=
 =?utf-8?B?RFRYS0ZGRzJqMFVaQjdmTDRxTVh0clQrNjAyQ25EWmRCZGlCVW9yaWlPZ2FQ?=
 =?utf-8?B?NW54SVFzQjR4M01Sb0Irdz09?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?bTZ2anBLQm05empNd1BtbGI3U2JwTmYwRUJ3citjSGFNVHlzOGVscXRRa2dT?=
 =?utf-8?B?N0FhZ3kzV056YTNqbXNiZmQ2Nmc1TStlNzUremovSzRYcHlTbXVCdjQ3djlZ?=
 =?utf-8?B?RmtER0lpQkt0M1B0VEFEanJTUSt4b3l2dEJ6TWJ0NXkwYjNIVER5QW9WR2Q1?=
 =?utf-8?B?bEVnNTJiYVFNWUtSeC9PVWFkMGV4KzE0Y2UrVkFhRzAxWm94ZzdlNVpCTUhv?=
 =?utf-8?B?bXZtTGkydGFsVTJFOXl0TGl3Z0tqcWRsTnpBNVJNalByblRidG1kdXNjWGtn?=
 =?utf-8?B?SWtVQUlIdTJYWXFJeU40Z2R6MkhTRENTYjlIWkhHTkU1RW5Bdy9JbStNTGJL?=
 =?utf-8?B?Yzh2TlV1YU45Y3RUSWxNS01SSVBGdmVsN2c2MzhzZHhWYVkxSVFJZEJEMk5B?=
 =?utf-8?B?UVdKdk94K0tFZis0aEN6aDlCWXN2cE96dnZPOVVENTlVUGFBbUlIYVN3VFp5?=
 =?utf-8?B?WnVwOEx4aUN1Q0ZJMnR4YitSUUljZzltYmhwczhpOXM1cnZIT1lXOU9KY0Yr?=
 =?utf-8?B?aDVpaGNwaVh3THkzd2xsVzdCSStaaFBoMWdWVkMzWjRSUXpRTmswclRFZTZU?=
 =?utf-8?B?V0prN3hiVGVOYTA4bnVVTFlId3NQemluSjFlSHg3VXJYbFl5VVhxTEQ2bEpv?=
 =?utf-8?B?bnJtc2NzbEpBUTdrbnR6eCszaUZVUmozVjJLNlhRVTVTNTNKNGM3SGE5RXJN?=
 =?utf-8?B?NE9EK3owTnhONWRwd0Q3NGMyai85TFQ5L1Z1RnBEUVowVDcvM2hUU3pwNVZo?=
 =?utf-8?B?cmtRT1RJNWt0TkZRUVp3eVg1NTFuTXNSNityazhhckRZT0F5YWtLY1RuTEtI?=
 =?utf-8?B?cWJ1OCtzOWkvekswZjFoK29JajRUcStaOTZCc2F6SDlUYUtmZzF4ZDA5RTh0?=
 =?utf-8?B?TU9VRkVGTU1NUWl1QUxTU1J0cXY4YUptK2F0d1pqUWFybW1PMHVCdmtQM253?=
 =?utf-8?B?Y2dUeFQwdzg3L05IVklsNjl3MHJaTEhBTFhKeUMyZWZkLzZXa0w4U3M5T08z?=
 =?utf-8?B?b0M0V3B5Vm1zWnIyKzZQZndTNmNwenBqRWNQTyt6R01vTnJYelJOaHZlVGFU?=
 =?utf-8?B?cEFPMEk2dk5IVk9TNHRRYjhvN1dBeHVwZmEyZ1dSelB6enllcUE4Qk95bS9V?=
 =?utf-8?B?SW9RcHZoaWY4Uk1yb2JYN0Vib3pRenI1KzgxeXdhU1c0dVJIbW1NcU9UcDdq?=
 =?utf-8?B?NXFLUjB0ODNOaGxvaXU3UkxDM0o1dXdLMWJSQnY0ZDdVZmtrMXBLbHhMVy92?=
 =?utf-8?B?d2hhNmdsYjlPak5HUUIxMFVBY0RNV3ZCcHd4b1dNZnhXRHpnbnhlQUNKSzM1?=
 =?utf-8?B?akV4WDNQSEtJam9BaU9GRlZHWkxIWitPUG1sbVVNQjlxYXF3VDJYZVFxWkFR?=
 =?utf-8?B?c1pGcFM2OEpKR2JjWUMvenpFQUw0ald3UUJ4TmJ4a2lsTS9wSDlFK0hRQ0VF?=
 =?utf-8?B?UVZJQUhEckZja3ZxV2puQ3lGTm1BSEZtZERWQTdFd3hOdjErVVJTakxkNFV3?=
 =?utf-8?B?SXZXclk1VlN5TDFGYUNqb0o2N0dndW9OdjNzTFF0NUVZUkRSYm1oeU9EdDVl?=
 =?utf-8?B?YnU3R0NsZzZHeEo1U01YcDZnT2lLSFlkUWk4c0JRQWZNZGNDZUI3SXRIZHJB?=
 =?utf-8?B?RFM4cTh2dHFsTG1xKzdYeHJRcnE3MVJyZzI3V0krQWpjWTFXeWIwYlFjbU92?=
 =?utf-8?B?aVNKWXV5TEY4Wk1UNE0vM05qU1JrOXhzbko2ZmNxSjA5N0doeXFIT3JkOU1D?=
 =?utf-8?B?KzVKM2RzYkxxNnZoTkpKVnR1WEZHSzlpNzBqZlZzWDVRN1p5SXNDQzM1RlNr?=
 =?utf-8?B?RUtDSnl6dEx4aXZkVjZIbkFlaEczaE9EWUphZmd0VW5NMHNMY3p5NkR1SUQ4?=
 =?utf-8?B?d2VuL1hSdHZkdHI1SVFTcVdNUWY5OHRpK1JBZldVY0NXbzNkUWVlSEF1ZENH?=
 =?utf-8?B?a2tIVUJydG8vRkJ3Q0hub3VCRXNqQ3VNbmJEWGdIaHY5UFlOTVJPcXZNSXU1?=
 =?utf-8?B?YjErK3hDdVZLYVg3Z00xRFluTGZhZDlyaGQxNjlpd3pnSk5QY3pUWVdsczM4?=
 =?utf-8?B?TlJjNm00NWFIeEtqSXBLTHN6YURDVUdsVm5NR21MbFdlMnZxbkpIVmFGYWNL?=
 =?utf-8?B?bzA4UzRXZG9ydW12czdLUWFGL3o0ZmZkYkdDNjYvbFNXRk9QMVd6a2JwZzgw?=
 =?utf-8?B?T3c9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 
	hMjTs89fgxc8EP7neA86ETLELu8eC1g+u3FB9u0fpBQNKRWh5QB99ukjVfE/Y+tVidHbS6ZwnS/X2PlrTqfxTh6/IPUyXB9ZuSiyXmwcGhkX8uQuBnJjXVTz/gvkpbzKS0W1MOjrX3FPyxcuuv6Wy3HDk7c3gaS8IMHXyRPdVpcO85+MWiqVveCbZJP/ziaq3WZWrFkzSCCSqolVJ0sCKcD3Ck8YJYofR+B+rrpL98J5RUpB7vbjbOI6Po/t0nqMKOkSNFX2vWtzvyLZ29fHrpBlRttyFgkCg4swCsyX6h2Fd0zpi+5ART+JIKpZs1Lxv/ZiOKuxW1Pgg37v4bTbrtKypqD7MaR3P9e+UtUfXxvjhaLPK8kaiNMmxDnNkASevILvXKejQU3cTOPDFv9dSCce0mym1NyS4WkTgQ08GN38WJkSt6qQQFaxspnCqGU5Muw1PoQDGug0RprXIHQAH+dxYEgYNrKbl0wLpd2JOSd9DcvUQjKEMsncv1LP7axrsNRVnPFmUc++kRdyu9YEGjd5r9UJsJVfnwWvkC1GN9emD8BMeeUpH8yktp9Ma+hj0y/FUX/iOlnnVrmiZockYE3LXOU9tBv9t6PRGH6ZduA=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7ade48a3-a0a4-453d-8c35-08dca1ae5d89
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2024 13:35:44.6923
 (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: amS23zx2ojGOR1qxzjgETNN+92WSKbbeg10e2wMxdP2il4yw2Zf7Uxyw3aRZwGQbC1Fg43aUhAW0qptbkZbz9amLwCaj4jTXP94WgmxA/HE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4407
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-11_09,2024-07-11_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 phishscore=0
 spamscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000
 definitions=main-2407110097
X-Proofpoint-GUID: gh92Pm0qNf1X9cI32ijEZOr-BmKvKQfP
X-Proofpoint-ORIG-GUID: gh92Pm0qNf1X9cI32ijEZOr-BmKvKQfP


On 7/10/24 7:01 AM, Juergen Gross wrote:
> The xen_nopvspin boot parameter is deprecated since 2019. nopvspin
> can be used instead.
>
> Remove the xen_nopvspin boot parameter and replace the xen_pvspin
> variable use cases with nopvspin.
>
> This requires to move the nopvspin variable out of the .initdata
> section, as it needs to be accessed for cpuhotplug, too.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>


Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 13:37:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:37:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757507.1166489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRtzQ-0002W2-Ob; Thu, 11 Jul 2024 13:37:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757507.1166489; Thu, 11 Jul 2024 13:37: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 1sRtzQ-0002Vv-M0; Thu, 11 Jul 2024 13:37:40 +0000
Received: by outflank-mailman (input) for mailman id 757507;
 Thu, 11 Jul 2024 13:37:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DPLo=OL=bounce.vates.tech=bounce-md_30504962.668fe01f.v1-f4d098914e3d484fad62a1fd6cac5bb0@srs-se1.protection.inumbo.net>)
 id 1sRtzP-0002Vp-BZ
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 13:37:39 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc0c3a40-3f8a-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 15:37:37 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WKbPq6yNhzB5pYR9
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 13:37:35 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f4d098914e3d484fad62a1fd6cac5bb0; Thu, 11 Jul 2024 13:37: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: bc0c3a40-3f8a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720705056; x=1720965556;
	bh=XirGZE9FtdP9Yh4xSPfegTinkKBWXwoDSkBbKd+waT0=;
	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=ZEOPlcPnLfQLQZ2Xea2XQG/rIbxHKWN1481/9RXlaMesNC4KUkP444oXNsaMUFRy1
	 jFcN+Uc85fDxP+Z4WSbpOXbShGnRE7AiI+BQ0OfQWVmehZ529Vx1FvBkL+Y2fQ05+u
	 D6SRG0ZiHq2oNREQR0tsOno2esKmic/BZv11xvTQBFyJdWsrVOqnvvLk3QivGmbIwR
	 mOPEvpTxfnXEQi6tQ+W6fHsaUXy/Gsw9Ce6u+ZP7ZfXN6SYn1xPp15vbWVVnR7SxPv
	 zKCUeKAd9ku5TK6TYp5z/pt3tkL8fcPoPjc8SxNLZVdq0l+RcLODv16HGBhsVkNxHU
	 14tQ0EGOlmy4Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720705056; x=1720965556; i=anthony.perard@vates.tech;
	bh=XirGZE9FtdP9Yh4xSPfegTinkKBWXwoDSkBbKd+waT0=;
	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=ooP4xAIzQhbTFZIFYgl9A/kLVjfanhRkAfugub8F7ysNP4PfGKHgz2FGjSlKkM39G
	 LQK8IiVrpt7HlTKCN1PnKbbD5b5RNgxZShI/mTRCcFnp7HRLVc8OLqheVozDWGv2nL
	 fccTYtH8ZSWwr9j3vDwhN1QxKOyhcfomWf9MbzeZKrOts9o82LC9t+YKL80zub063V
	 se18PJuPlgYLOC5/R5l6lpiIrgswH3jvj6UGgaBdZrrOn9JR6tbhnkZcHm7eSPmcYO
	 wR9xQoyQm7GUZp04MVgwPYEgB47f+zjI+DDk31EKIR0vNapg7LBqqEZQafkRPiDm4+
	 E/geiAiG1pi/Q==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2006/12]=20CI:=20Mark=20Archlinux/x86=20as=20allowing=20failures?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720705054810
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <Zo/gHsMSXR6hEtsS@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-7-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-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.f4d098914e3d484fad62a1fd6cac5bb0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 13:37:35 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:11PM +0100, Andrew Cooper wrote:
> Archlinux is a rolling distro, and is subject to arbitrary changes as the
> container is rebuilt.

I disagree about the changes been arbitrary, it is just new version of
software. :-)

But I guess "arbirary changes" could be a description for package been
removed from the main/official archive, and left for the users to build
themselfs.

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

Anyway:
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

(Next, automatically rebuild the container every month, I could probably
revive my old patch series doing that)

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 Jul 11 13:53:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 13:53:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757515.1166498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuED-0005q7-2w; Thu, 11 Jul 2024 13:52:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757515.1166498; Thu, 11 Jul 2024 13:52: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 1sRuED-0005q0-0J; Thu, 11 Jul 2024 13:52:57 +0000
Received: by outflank-mailman (input) for mailman id 757515;
 Thu, 11 Jul 2024 13:52:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRuEB-0005pq-MD; Thu, 11 Jul 2024 13:52:55 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRuEB-0002dQ-KM; Thu, 11 Jul 2024 13:52:55 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRuEB-0007uF-BI; Thu, 11 Jul 2024 13:52:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRuEB-0001TR-Ar; Thu, 11 Jul 2024 13:52:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ewy5Nt2WoQbSaQOPqNjO7LkoIN8veHWahvl01m5Q/nE=; b=tVNYgNXod2sj0FSHHt2WyhsDJW
	O5/rMWfyr0zATYwoIgCbCoZ3ZkuMxmwlRyTPCOww1j3mMJmL0BiuOg72wO7TTidgpsd92U13bs752
	Vw006ANrQeu2Ycczp+wSRJUvZLmfWQ10Xb3thi5FN61/59lpVaj4hOD0x1WZ8ac2s9o4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186762-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186762: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=5d3e2140bbf1dc0ab0972efbc096d79509ca9ae8
X-Osstest-Versions-That:
    xen=d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Jul 2024 13:52:55 +0000

flight 186762 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186762/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  5d3e2140bbf1dc0ab0972efbc096d79509ca9ae8
baseline version:
 xen                  d49ba6bf8f904a58bd1cfdfe6c93023b249f0578

Last test of basis   186743  2024-07-09 18:02:13 Z    1 days
Testing same since   186762  2024-07-11 11:03:50 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michal Orzel <michal.orzel@amd.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   d49ba6bf8f..5d3e2140bb  5d3e2140bbf1dc0ab0972efbc096d79509ca9ae8 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 14:04:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 14:04:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757524.1166518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuPF-0008QT-8u; Thu, 11 Jul 2024 14:04:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757524.1166518; Thu, 11 Jul 2024 14:04:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuPF-0008QM-6K; Thu, 11 Jul 2024 14:04:21 +0000
Received: by outflank-mailman (input) for mailman id 757524;
 Thu, 11 Jul 2024 14:04: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=e9v5=OL=bounce.vates.tech=bounce-md_30504962.668fe661.v1-c803a8b4a206474e936fd8f909deda69@srs-se1.protection.inumbo.net>)
 id 1sRuPD-0008Pw-Vu
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 14:04:19 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 76689ded-3f8e-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 16:04:18 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WKc0d2z2mz6CQ4yx
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 14:04:17 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c803a8b4a206474e936fd8f909deda69; Thu, 11 Jul 2024 14:04: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: 76689ded-3f8e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720706657; x=1720967157;
	bh=Si1H+0tUp3aV0kgXlGZ06VpmpP6WpGI1yiw22kocZDk=;
	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=G9DtnQsHe9s1/gZSzEsJj0hk55LyVwel6kLd85d/lN7G8m7Xk3aMAzPMxVQPWp4PF
	 VF5qnI1qp8OqfOVeZjDDU56EQtGTMSFzNjGbkgwPm20u/wLynxgYDK3g+Xxbz3PtJr
	 8dwNrxiNAM6BzUibqGeipmpqdEUeAj01Xn7wTnCsVEQYkhmes+gMw/xPhXO9rVMGtA
	 /aDB8SFvO8Qgbie3Cmmuwsl1aYq7r0UusrXPpGJdLEIu26faTz5ODCvhpNPimcPIoS
	 kqf0979B7J81wzL5wec1XYX/HLfqsd6V/y+5Y6qEKu9dWEWSsBpYsrnESbe4TrDBol
	 m87BrRQLgpPtw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720706657; x=1720967157; i=teddy.astie@vates.tech;
	bh=Si1H+0tUp3aV0kgXlGZ06VpmpP6WpGI1yiw22kocZDk=;
	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=nTIeoiFjdu8ClEDZDB4mGkozDcmz1tfckZdyXUXHEPPU00T1c6ufItlO+9j+VxV0Q
	 NNT/Fdn08h88mp00hc0HCw7kGUzuuiqPB45mo3YRL/f5A6b4MXFKoVFo1IV6sGSywW
	 bdofQqOEjeNX1c+w3V/7B2ige2sIevlBYFx+2RReXkCxWQPGNSR8iK9NMpP5lW3fPp
	 t+jnSHNjZkQgudXnGv6vjnqhVWRfPWdROQlwSyiR59Gf2u8eGEW5cDYiiuzFRhp4N1
	 rIavZ2bqbeJgoSe7j53y9xSjrFQlMIUOFeV+eVD81WgcuGOYrQHNry972zLt0StISS
	 1c4QIAxqRewcA==
From: Teddy Astie <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20XEN=20PATCH=20v3=201/5]=20docs/designs:=20Add=20a=20design=20document=20for=20PV-IOMMU?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720706655293
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-Id: <cf749c46f9d3d91bc116c96ee2fd1869164fbe5b.1720703078.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1720703078.git.teddy.astie@vates.tech>
References: <cover.1720703078.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.c803a8b4a206474e936fd8f909deda69?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 14:04:17 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Some operating systems want to use IOMMU to implement various features (e.g
VFIO) or DMA protection.
This patch introduce a proposal for IOMMU paravirtualization for Dom0.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
 docs/designs/pv-iommu.md | 105 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 105 insertions(+)
 create mode 100644 docs/designs/pv-iommu.md

diff --git a/docs/designs/pv-iommu.md b/docs/designs/pv-iommu.md
new file mode 100644
index 0000000000..c01062a3ad
--- /dev/null
+++ b/docs/designs/pv-iommu.md
@@ -0,0 +1,105 @@
+# IOMMU paravirtualization for Dom0
+
+Status: Experimental
+
+# Background
+
+By default, Xen only uses the IOMMU for itself, either to make device adress
+space coherent with guest adress space (x86 HVM/PVH) or to prevent devices
+from doing DMA outside it's expected memory regions including the hypervisor
+(x86 PV).
+
+A limitation is that guests (especially privildged ones) may want to use
+IOMMU hardware in order to implement features such as DMA protection and
+VFIO [1] as IOMMU functionality is not available outside of the hypervisor
+currently.
+
+[1] VFIO - "Virtual Function I/O" - https://www.kernel.org/doc/html/latest/driver-api/vfio.html
+
+# Design
+
+The operating system may want to have access to various IOMMU features such as
+context management and DMA remapping. We can create a new hypercall that allows
+the guest to have access to a new paravirtualized IOMMU interface.
+
+This feature is only meant to be available for the Dom0, as DomU have some
+emulated devices that can't be managed on Xen side and are not hardware, we
+can't rely on the hardware IOMMU to enforce DMA remapping.
+
+This interface is exposed under the `iommu_op` hypercall.
+
+In addition, Xen domains are modified in order to allow existence of several
+IOMMU context including a default one that implement default behavior (e.g
+hardware assisted paging) and can't be modified by guest. DomU cannot have
+contexts, and therefore act as if they only have the default domain.
+
+Each IOMMU context within a Xen domain is identified using a domain-specific
+context number that is used in the Xen IOMMU subsystem and the hypercall
+interface.
+
+The number of IOMMU context a domain can use is predetermined at domain creation
+and is configurable through `dom0-iommu=nb-ctx=N` xen cmdline.
+
+# IOMMU operations
+
+## Alloc context
+
+Create a new IOMMU context for the guest and return the context number to the
+guest.
+Fail if the IOMMU context limit of the guest is reached.
+
+A flag can be specified to create a identity mapping.
+
+## Free context
+
+Destroy a IOMMU context created previously.
+It is not possible to free the default context.
+
+Reattach context devices to default context if specified by the guest.
+
+Fail if there is a device in the context and reattach-to-default flag is not
+specified.
+
+## Reattach device
+
+Reattach a device to another IOMMU context (including the default one).
+The target IOMMU context number must be valid and the context allocated.
+
+The guest needs to specify a PCI SBDF of a device he has access to.
+
+## Map/unmap page
+
+Map/unmap a page on a context.
+The guest needs to specify a gfn and target dfn to map.
+
+Refuse to create the mapping if one already exist for the same dfn.
+
+## Lookup page
+
+Get the gfn mapped by a specific dfn.
+
+# Implementation considerations
+
+## Hypercall batching
+
+In order to prevent unneeded hypercalls and IOMMU flushing, it is advisable to
+be able to batch some critical IOMMU operations (e.g map/unmap multiple pages).
+
+## Hardware without IOMMU support
+
+Operating system needs to be aware on PV-IOMMU capability, and whether it is
+able to make contexts. However, some operating system may critically fail in
+case they are able to make a new IOMMU context. Which is supposed to happen
+if no IOMMU hardware is available.
+
+The hypercall interface needs a interface to advertise the ability to create
+and manage IOMMU contexts including the amount of context the guest is able
+to use. Using these informations, the Dom0 may decide whether to use or not
+the PV-IOMMU interface.
+
+## Page pool for contexts
+
+In order to prevent unexpected starving on the hypervisor memory with a
+buggy Dom0. We can preallocate the pages the contexts will use and make
+map/unmap use these pages instead of allocating them dynamically.
+
-- 
2.45.2



Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 14:04:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 14:04:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757523.1166508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuPB-0008Bg-2f; Thu, 11 Jul 2024 14:04:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757523.1166508; Thu, 11 Jul 2024 14: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 1sRuPB-0008BZ-0B; Thu, 11 Jul 2024 14:04:17 +0000
Received: by outflank-mailman (input) for mailman id 757523;
 Thu, 11 Jul 2024 14:04:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cDUu=OL=bounce.vates.tech=bounce-md_30504962.668fe65b.v1-71c57759c31047c8a919f94a61e8dac0@srs-se1.protection.inumbo.net>)
 id 1sRuP9-0008BT-Iv
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 14:04:15 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 731bc81b-3f8e-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 16:04:12 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WKc0W41Q6z6CQ2dP
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 14:04:11 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 71c57759c31047c8a919f94a61e8dac0; Thu, 11 Jul 2024 14:04: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: 731bc81b-3f8e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720706651; x=1720967151;
	bh=OO478PqU3r70xVXwjD0fZgEZDEQGLcHFOLvp5rg+Dm0=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=fYhZNTSOp5K1RGb5atPs2IsPtbZk2lU9jXxAiWPqq9AvEfKiZpNWk4hTXiR6d09sA
	 Q20EIJQoFuvfmRvERwE9A9Z7+Dk+8+Tt/It9mOoC8ore86oNGebEWtSlwUEC+Y/Oxh
	 DB6byYlTlhq/NDeYR8kALobyTB9fPvX04ccZs6XhDeemGEkb9DzNYu1g8dAZq9qGeT
	 mBVj63p3atk2yjZgDeKRK3Sj59UgKsz8O6cEv8W0GTPh8tln88oNHjMehSa+Qyj5hq
	 AwIaNWSLD1jkwMCX29eHAcPHiColazgm+wJr8Is3LFVV+YxJzQN11ZMJZ1GOqVIkTq
	 Vhlhm8jwNU0Yw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720706651; x=1720967151; i=teddy.astie@vates.tech;
	bh=OO478PqU3r70xVXwjD0fZgEZDEQGLcHFOLvp5rg+Dm0=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=NSQCPvyXeQdd3OmpeWfH6xTDqyES7g4ExQtfKeeDYOOC/FDG4IzYv4j3L5rX8iPZ5
	 Y4UyDzAYFGxgthgMyLwVo2ZZ3hqOFF0aB31jFRv5znWGThQL8fVHwUYlFbgrvr66S+
	 gsgD20R+3fDW17a3ldV2nLl/vvMmqdFpQmPdqeKroKKr0ARIIiJva/1gyekHvRxjd7
	 AbzLCrRdjrB42FRTZ6++fDlwVLNUgUnA66xmDPBcY0X4UIwEcwOiFCyGfouwP33i53
	 xjeONqBR6H6aOMdfCch27EWli2lCWYBAIKSDZKZb6G5tqN9ugev+xLU4NU3rvb0V+A
	 xphoEXH5q41Vg==
From: Teddy Astie <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20XEN=20PATCH=20v3=200/5]=20IOMMU=20subsystem=20redesign=20and=20PV-IOMMU=20interface?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720706648754
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Lukasz Hawrylko <lukasz@hawrylko.pl>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, =?utf-8?Q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-Id: <cover.1720703078.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.71c57759c31047c8a919f94a61e8dac0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 14:04:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This work has been presented at Xen Summit 2024 during the
  IOMMU paravirtualization and Xen IOMMU subsystem rework
design session.

Operating systems may want to have access to a IOMMU in order to do DMA
protection or implement certain features (e.g VFIO on Linux).

VFIO support is mandatory for framework such as SPDK, which can be useful to
implement an alternative storage backend for virtual machines [1].

In this patch series, we introduce in Xen the ability to manage several
contexts per domain and provide a new hypercall interface to allow guests
to manage IOMMU contexts.

The VT-d driver is updated to support these new features.

[1] Using SPDK with the Xen hypervisor - FOSDEM 2023

---
Changed in v2 :
* fixed Xen crash when dumping IOMMU contexts (using X debug key)
with DomUs without IOMMU
* s/dettach/detach/
* removed some unused includes
* fix dangling devices in contexts with detach

Changed in v3 :
* lock entirely map/unmap in hypercall
* prevent IOMMU operations on dying contexts (fix race condition)
* iommu_check_context+iommu_get_context -> iommu_get_context and check for NULL

Teddy Astie (5):
  docs/designs: Add a design document for PV-IOMMU
  docs/designs: Add a design document for IOMMU subsystem redesign
  IOMMU: Introduce redesigned IOMMU subsystem
  VT-d: Port IOMMU driver to new subsystem
  xen/public: Introduce PV-IOMMU hypercall interface
---

 docs/designs/iommu-contexts.md       |  398 +++++++
 docs/designs/pv-iommu.md             |  105 ++
 xen/arch/x86/domain.c                |    2 +-
 xen/arch/x86/include/asm/arena.h     |   54 +
 xen/arch/x86/include/asm/iommu.h     |   44 +-
 xen/arch/x86/include/asm/pci.h       |   17 -
 xen/arch/x86/mm/p2m-ept.c            |    2 +-
 xen/arch/x86/pv/dom0_build.c         |    4 +-
 xen/arch/x86/tboot.c                 |    4 +-
 xen/common/Makefile                  |    1 +
 xen/common/memory.c                  |    4 +-
 xen/common/pv-iommu.c                |  328 ++++++
 xen/drivers/passthrough/Kconfig      |   14 +
 xen/drivers/passthrough/Makefile     |    3 +
 xen/drivers/passthrough/context.c    |  649 +++++++++++
 xen/drivers/passthrough/iommu.c      |  337 ++----
 xen/drivers/passthrough/pci.c        |   49 +-
 xen/drivers/passthrough/quarantine.c |   49 +
 xen/drivers/passthrough/vtd/Makefile |    2 +-
 xen/drivers/passthrough/vtd/extern.h |   14 +-
 xen/drivers/passthrough/vtd/iommu.c  | 1557 +++++++++++---------------
 xen/drivers/passthrough/vtd/quirks.c |   21 +-
 xen/drivers/passthrough/x86/Makefile |    1 +
 xen/drivers/passthrough/x86/arena.c  |  157 +++
 xen/drivers/passthrough/x86/iommu.c  |  104 +-
 xen/include/hypercall-defs.c         |    6 +
 xen/include/public/pv-iommu.h        |  114 ++
 xen/include/public/xen.h             |    1 +
 xen/include/xen/iommu.h              |  120 +-
 xen/include/xen/pci.h                |    3 +
 30 files changed, 2855 insertions(+), 1309 deletions(-)
 create mode 100644 docs/designs/iommu-contexts.md
 create mode 100644 docs/designs/pv-iommu.md
 create mode 100644 xen/arch/x86/include/asm/arena.h
 create mode 100644 xen/common/pv-iommu.c
 create mode 100644 xen/drivers/passthrough/context.c
 create mode 100644 xen/drivers/passthrough/quarantine.c
 create mode 100644 xen/drivers/passthrough/x86/arena.c
 create mode 100644 xen/include/public/pv-iommu.h

-- 
2.45.2



Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 14:04:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 14:04:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757525.1166528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuPH-0000FN-Gj; Thu, 11 Jul 2024 14:04:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757525.1166528; Thu, 11 Jul 2024 14:04:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuPH-0000FE-Do; Thu, 11 Jul 2024 14:04:23 +0000
Received: by outflank-mailman (input) for mailman id 757525;
 Thu, 11 Jul 2024 14:04: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=5tlD=OL=bounce.vates.tech=bounce-md_30504962.668fe662.v1-83502c826f5d40c89d3a86d3cbc43804@srs-se1.protection.inumbo.net>)
 id 1sRuPF-0008Pw-IU
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 14:04:21 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 778fd97c-3f8e-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 16:04:20 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WKc0f1XxZzB5pT6T
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 14:04:18 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 83502c826f5d40c89d3a86d3cbc43804; Thu, 11 Jul 2024 14:04: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: 778fd97c-3f8e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720706658; x=1720967158;
	bh=7BU7suyQuwOUrPVp8urQaryhWJFQwhQ3mC2fw96i5Kc=;
	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=BqYoDY6kg39CwUQoaOp0wGHfQJ9bsmX080z79EG4DEAnEekTnQsP++EyY8+v9OhUJ
	 xAQEc7br5QEcEDeW+SK8lI/om5H+ZeNrjBI22+yhrqbCpgv7z7I6D7GGx/9R8uAKIx
	 VR7c9bFOBO6+R6KMiMYMXAbpDl0hiu9V17ExF7MQVpCtQWJEP1Eo0tBk1Vj1HPG7Fz
	 riXmDuhS2b66m7nLi6Gqes4xuQ1TbAsNqgk+KH00VtMgFo2Z1f8ajQ9sacn9I1uwia
	 lhkoOOVNc9mzSDvyhOovEhel+1cSuGB/vprjx8M9uvujRNgheKO62PQ9Y4+HNFyGKu
	 Urlz3h8WtmveA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720706658; x=1720967158; i=teddy.astie@vates.tech;
	bh=7BU7suyQuwOUrPVp8urQaryhWJFQwhQ3mC2fw96i5Kc=;
	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=kTBx4JVJsBjg6y/zu4wXz9sYWD1XZAiqAhLBODJUGhBhaCcNmmciUN3RTAiYeTcZE
	 myTDJ6/XaMFTMCaRy42lYJ+1g09RzuX6vzTvqZPCfj+fDUTngWUclBNrjVurWLrf/N
	 93V7XslG1KZG7F2zBOrlE9gzr4JyY56OEIUPnyh0q10P0E5Xbh+cHoXjWuWHEbHtp/
	 uw2uTX8sL8NXOArAPjO38f8XdVR5jPqgIcRCZUZNAuDBf97Mkylaq/ctruKlivkENc
	 QlU4aeKo/R9HTN6h5XNQQszF4H9AFkz8g5pVeee3aePM88/et3e0kbpK4Cs6qo+GKc
	 pzqs8dCz7hXyA==
From: Teddy Astie <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20XEN=20PATCH=20v3=202/5]=20docs/designs:=20Add=20a=20design=20document=20for=20IOMMU=20subsystem=20redesign?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720706656344
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-Id: <50c08f46eca1cd782987554d6fcbf7c31e484b44.1720703078.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1720703078.git.teddy.astie@vates.tech>
References: <cover.1720703078.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.83502c826f5d40c89d3a86d3cbc43804?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 14:04:18 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Current IOMMU subsystem has some limitations that make PV-IOMMU practically impossible.
One of them is the assumtion that each domain is bound to a single "IOMMU domain", which
also causes complications with quarantine implementation.

Moreover, current IOMMU subsystem is not entirely well-defined, for instance, the behavior
of map_page between ARM SMMUv3 and x86 VT-d/AMD-Vi greatly differs. On ARM, it can modifies
the domain page table while on x86, it may be forbidden (e.g using HAP with PVH), or only
modifying the devices PoV (e.g using PV).

The goal of this redesign is to define more explicitely the behavior and interface of the
IOMMU subsystem while allowing PV-IOMMU to be effectively implemented.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
Changed in V2:
* nit s/dettach/detach/
---
 docs/designs/iommu-contexts.md | 398 +++++++++++++++++++++++++++++++++
 1 file changed, 398 insertions(+)
 create mode 100644 docs/designs/iommu-contexts.md

diff --git a/docs/designs/iommu-contexts.md b/docs/designs/iommu-contexts.md
new file mode 100644
index 0000000000..8211f91692
--- /dev/null
+++ b/docs/designs/iommu-contexts.md
@@ -0,0 +1,398 @@
+# IOMMU context management in Xen
+
+Status: Experimental
+Revision: 0
+
+# Background
+
+The design for *IOMMU paravirtualization for Dom0* [1] explains that some guests may
+want to access to IOMMU features. In order to implement this in Xen, several adjustments
+needs to be made to the IOMMU subsystem.
+
+This "hardware IOMMU domain" is currently implemented on a per-domain basis such as each
+domain actually has a specific *hardware IOMMU domain*, this design aims to allow a
+single Xen domain to manage several "IOMMU context", and allow some domains (e.g Dom0
+[1]) to modify their IOMMU contexts.
+
+In addition to this, quarantine feature can be refactored into using IOMMU contexts
+to reduce the complexity of platform-specific implementations and ensuring more
+consistency across platforms.
+
+# IOMMU context
+
+We define a "IOMMU context" as being a *hardware IOMMU domain*, but named as a context
+to avoid confusion with Xen domains.
+It represents some hardware-specific data structure that contains mappings from a device
+frame-number to a machine frame-number (e.g using a pagetable) that can be applied to
+a device using IOMMU hardware.
+
+This structure is bound to a Xen domain, but a Xen domain may have several IOMMU context.
+These contexts may be modifiable using the interface as defined in [1] aside some
+specific cases (e.g modifying default context).
+
+This is implemented in Xen as a new structure that will hold context-specific
+data.
+
+```c
+struct iommu_context {
+    u16 id; /* Context id (0 means default context) */
+    struct list_head devices;
+
+    struct arch_iommu_context arch;
+
+    bool opaque; /* context can't be modified nor accessed (e.g HAP) */
+};
+```
+
+A context is identified by a number that is domain-specific and may be used by IOMMU
+users such as PV-IOMMU by the guest.
+
+struct arch_iommu_context is splited from struct arch_iommu
+
+```c
+struct arch_iommu_context
+{
+    spinlock_t pgtables_lock;
+    struct page_list_head pgtables;
+
+    union {
+        /* Intel VT-d */
+        struct {
+            uint64_t pgd_maddr; /* io page directory machine address */
+            domid_t *didmap; /* per-iommu DID */
+            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the context uses */
+        } vtd;
+        /* AMD IOMMU */
+        struct {
+            struct page_info *root_table;
+        } amd;
+    };
+};
+
+struct arch_iommu
+{
+    spinlock_t mapping_lock; /* io page table lock */
+    struct {
+        struct page_list_head list;
+        spinlock_t lock;
+    } pgtables;
+
+    struct list_head identity_maps;
+
+    union {
+        /* Intel VT-d */
+        struct {
+            /* no more context-specific values */
+            unsigned int agaw; /* adjusted guest address width, 0 is level 2 30-bit */
+        } vtd;
+        /* AMD IOMMU */
+        struct {
+            unsigned int paging_mode;
+            struct guest_iommu *g_iommu;
+        } amd;
+    };
+};
+```
+
+IOMMU context information is now carried by iommu_context rather than being integrated to
+struct arch_iommu.
+
+# Xen domain IOMMU structure
+
+`struct domain_iommu` is modified to allow multiples context within a single Xen domain
+to exist :
+
+```c
+struct iommu_context_list {
+    uint16_t count; /* Context count excluding default context */
+
+    /* if count > 0 */
+
+    uint64_t *bitmap; /* bitmap of context allocation */
+    struct iommu_context *map; /* Map of contexts */
+};
+
+struct domain_iommu {
+    /* ... */
+
+    struct iommu_context default_ctx;
+    struct iommu_context_list other_contexts;
+
+    /* ... */
+}
+```
+
+default_ctx is a special context with id=0 that holds the page table mapping the entire
+domain, which basically preserve the previous behavior. All devices are expected to be
+bound to this context during initialization.
+
+Along with this default context that always exist, we use a pool of contexts that has a
+fixed size at domain initialization, where contexts can be allocated (if possible), and
+have a id matching their position in the map (considering that id != 0).
+These contexts may be used by IOMMU contexts users such as PV-IOMMU or quarantine domain
+(DomIO).
+
+# Platform independent context management interface
+
+A new platform independant interface is introduced in Xen hypervisor to allow
+IOMMU contexts users to create and manage contexts within domains.
+
+```c
+/* Direct context access functions (not supposed to be used directly) */
+#define iommu_default_context(d) (&dom_iommu(d)->default_ctx)
+struct iommu_context *iommu_get_context(struct domain *d, u16 ctx_no);
+int iommu_context_init(struct domain *d, struct iommu_context *ctx, u16 ctx_no, u32 flags);
+int iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags);
+
+/* Check if a specific context exist in the domain, note that ctx_no=0 always
+    exists */
+bool iommu_check_context(struct domain *d, u16 ctx_no);
+
+/* Flag for default context initialization */
+#define IOMMU_CONTEXT_INIT_default (1 << 0)
+
+/* Flag for quarantine contexts (scratch page, DMA Abort mode, ...) */
+#define IOMMU_CONTEXT_INIT_quarantine (1 << 1)
+
+/* Flag to specify that devices will need to be reattached to default domain */
+#define IOMMU_TEARDOWN_REATTACH_DEFAULT (1 << 0)
+
+/* Allocate a new context, uses CONTEXT_INIT flags */
+int iommu_context_alloc(struct domain *d, u16 *ctx_no, u32 flags);
+
+/* Free a context, uses CONTEXT_TEARDOWN flags */
+int iommu_context_free(struct domain *d, u16 ctx_no, u32 flags);
+
+/* Move a device from one context to another, including between different domains. */
+int iommu_reattach_context(struct domain *prev_dom, struct domain *next_dom,
+                            device_t *dev, u16 ctx_no);
+
+/* Add a device to a context for first initialization */
+int iommu_attach_context(struct domain *d, device_t *dev, u16 ctx_no);
+
+/* Remove a device from a context, effectively removing it from the IOMMU. */
+int iommu_detach_context(struct domain *d, device_t *dev);
+```
+
+This interface will use a new interface with drivers to implement these features.
+
+Some existing functions will have a new parameter to specify on what context to do the operation.
+- iommu_map (iommu_legacy_map untouched)
+- iommu_unmap (iommu_legacy_unmap untouched)
+- iommu_lookup_page
+- iommu_iotlb_flush
+
+These functions will modify the iommu_context structure to accomodate with the
+operations applied, these functions will be used to replace some operations previously
+made in the IOMMU driver.
+
+# IOMMU platform_ops interface changes
+
+The IOMMU driver needs to expose a way to create and manage IOMMU contexts, the approach
+taken here is to modify the interface to allow specifying a IOMMU context on operations,
+and at the same time, simplifying the interface by relying more on iommu
+platform-independent code.
+
+Added functions in iommu_ops
+
+```c
+/* Initialize a context (creating page tables, allocating hardware, structures, ...) */
+int (*context_init)(struct domain *d, struct iommu_context *ctx,
+                    u32 flags);
+/* Destroy a context, assumes no device is bound to the context. */
+int (*context_teardown)(struct domain *d, struct iommu_context *ctx,
+                        u32 flags);
+/* Put a device in a context (assumes the device is not attached to another context) */
+int (*attach)(struct domain *d, device_t *dev,
+              struct iommu_context *ctx);
+/* Remove a device from a context, and from the IOMMU. */
+int (*detach)(struct domain *d, device_t *dev,
+              struct iommu_context *prev_ctx);
+/* Move the device from a context to another, including if the new context is in
+   another domain. d corresponds to the target domain. */
+int (*reattach)(struct domain *d, device_t *dev,
+                struct iommu_context *prev_ctx,
+                struct iommu_context *ctx);
+
+#ifdef CONFIG_HAS_PCI
+/* Specific interface for phantom function devices. */
+int (*add_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn,
+                    struct iommu_context *ctx);
+int (*remove_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn,
+                struct iommu_context *ctx);
+#endif
+
+/* Changes in existing to use a specified iommu_context. */
+int __must_check (*map_page)(struct domain *d, dfn_t dfn, mfn_t mfn,
+                                unsigned int flags,
+                                unsigned int *flush_flags,
+                                struct iommu_context *ctx);
+int __must_check (*unmap_page)(struct domain *d, dfn_t dfn,
+                                unsigned int order,
+                                unsigned int *flush_flags,
+                                struct iommu_context *ctx);
+int __must_check (*lookup_page)(struct domain *d, dfn_t dfn, mfn_t *mfn,
+                                unsigned int *flags,
+                                struct iommu_context *ctx);
+
+int __must_check (*iotlb_flush)(struct iommu_context *ctx, dfn_t dfn,
+                                unsigned long page_count,
+                                unsigned int flush_flags);
+
+void (*clear_root_pgtable)(struct domain *d, struct iommu_context *ctx);
+```
+
+These functions are redundant with existing functions, therefore, the following functions
+are replaced with new equivalents :
+- quarantine_init : platform-independent code and IOMMU_CONTEXT_INIT_quarantine flag
+- add_device : attach and add_devfn (phantom)
+- assign_device : attach and add_devfn (phantom)
+- remove_device : detach and remove_devfn (phantom)
+- reassign_device : reattach
+
+Some functionnal differences with previous functions, the following should be handled
+by platform-independent/arch-specific code instead of IOMMU driver :
+- identity mappings (unity mappings and rmrr)
+- device list in context and domain
+- domain of a device
+- quarantine
+
+The idea behind this is to implement IOMMU context features while simplifying IOMMU
+drivers implementations and ensuring more consistency between IOMMU drivers.
+
+## Phantom function handling
+
+PCI devices may use additionnal devfn to do DMA operations, in order to support such
+devices, an interface is added to map specific device functions without implying that
+the device is mapped to a new context (that may cause duplicates in Xen data structures).
+
+Functions add_devfn and remove_devfn allows to map a iommu context on specific devfn
+for a pci device, without altering platform-independent data structures.
+
+It is important for the reattach operation to care about these devices, in order
+to prevent devices from being partially reattached to the new context (see XSA-449 [2])
+by using a all-or-nothing approach for reattaching such devices.
+
+# Quarantine refactoring using IOMMU contexts
+
+The quarantine mecanism can be entirely reimplemented using IOMMU context, making
+it simpler, more consistent between platforms,
+
+Quarantine is currently only supported with x86 platforms and works by creating a
+single *hardware IOMMU domain* per quarantined device. All the quarantine logic is
+the implemented in a platform-specific fashion while actually implementing the same
+concepts :
+
+The *hardware IOMMU context* data structures for quarantine are currently stored in
+the device structure itself (using arch_pci_dev) and IOMMU driver needs to care about
+whether we are dealing with quarantine operations or regular operations (often dealt
+using macros such as QUARANTINE_SKIP or DEVICE_PGTABLE).
+
+The page table that will apply on the quarantined device is created reserved device
+regions, and adding mappings to a scratch page if enabled (quarantine=scratch-page).
+
+A new approach we can use is allowing the quarantine domain (DomIO) to manage IOMMU
+contexts, and implement all the quarantine logic using IOMMU contexts.
+
+That way, the quarantine implementation can be platform-independent, thus have a more
+consistent implementation between platforms. It will also allows quarantine to work
+with other IOMMU implementations without having to implement platform-specific behavior.
+Moreover, quarantine operations can be implemented using regular context operations
+instead of relying on driver-specific code.
+
+Quarantine implementation can be summarised as
+
+```c
+int iommu_quarantine_dev_init(device_t *dev)
+{
+    int ret;
+    u16 ctx_no;
+
+    if ( !iommu_quarantine )
+        return -EINVAL;
+
+    ret = iommu_context_alloc(dom_io, &ctx_no, IOMMU_CONTEXT_INIT_quarantine);
+
+    if ( ret )
+        return ret;
+
+    /** TODO: Setup scratch page, mappings... */
+
+    ret = iommu_reattach_context(dev->domain, dom_io, dev, ctx_no);
+
+    if ( ret )
+    {
+        ASSERT(!iommu_context_free(dom_io, ctx_no, 0));
+        return ret;
+    }
+
+    return ret;
+}
+```
+
+# Platform-specific considerations
+
+## Reference counters on target pages
+
+When mapping a guest page onto a IOMMU context, we need to make sure that
+this page is not reused for something else while being actually referenced
+by a IOMMU context. One way of doing it is incrementing the reference counter
+of each target page we map (excluding reserved regions), and decrementing it
+when the mapping isn't used anymore.
+
+One consideration to have is when destroying the context while having existing
+mappings in it. We can walk through the entire page table and decrement the
+reference counter of all mappings. All of that assumes that there is no reserved
+region mapped (which should be the case as a requirement of teardown, or as a
+consequence of REATTACH_DEFAULT flag).
+
+Another consideration is that the "cleanup mappings" operation may take a lot
+of time depending on the complexity of the page table. Making the teardown operation preemptable can allow the hypercall to be preempted if needed also preventing a malicious
+guest from stalling a CPU in a teardown operation with a specially crafted IOMMU
+context (e.g with several 1G superpages).
+
+## Limit the amount of pages IOMMU contexts can use
+
+In order to prevent a (eventually malicious) guest from causing too much allocations
+in Xen, we can enforce limits on the memory the IOMMU subsystem can use for IOMMU context.
+A possible implementation can be to preallocate a reasonably large chunk of memory
+and split it into pages for use by the IOMMU subsystem only for non-default IOMMU
+contexts (e.g PV-IOMMU interface), if this limitation is overcome, some operations
+may fail from the guest side. These limitations shouldn't impact "usual" operations
+of the IOMMU subsystem (e.g default context initialization).
+
+## x86 Architecture
+
+TODO
+
+### Intel VT-d
+
+VT-d uses DID to tag the *IOMMU domain* applied to a device and assumes that all entries
+with the same DID uses the same page table (i.e same IOMMU context).
+Under certain circonstances (e.g DRHD with DID limit below 16-bits), the *DID* is
+transparently converted into a DRHD-specific DID using a map managed internally.
+
+The current implementation of the code reuses the Xen domain_id as DID.
+However, by using multiples IOMMU contexts per domain, we can't use the domain_id for
+contexts (otherwise, different page tables will be mapped with the same DID).
+The following strategy is used :
+- on the default context, reuse the domain_id (the default context is unique per domain)
+- on non-default context, use a id allocated in the pseudo_domid map, (actually used by
+quarantine) which is a DID outside of Xen domain_id range
+
+### AMD-Vi
+
+TODO
+
+## Device-tree platforms
+
+### SMMU and SMMUv3
+
+TODO
+
+* * *
+
+[1] See pv-iommu.md
+
+[2] pci: phantom functions assigned to incorrect contexts
+https://xenbits.xen.org/xsa/advisory-449.html
\ No newline at end of file
-- 
2.45.2



Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 14:04:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 14:04:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757526.1166535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuPI-0000MZ-1t; Thu, 11 Jul 2024 14:04:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757526.1166535; Thu, 11 Jul 2024 14:04:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuPH-0000LI-Rh; Thu, 11 Jul 2024 14:04:23 +0000
Received: by outflank-mailman (input) for mailman id 757526;
 Thu, 11 Jul 2024 14:04: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=JOtx=OL=bounce.vates.tech=bounce-md_30504962.668fe663.v1-3ae849488e7e43f98f851362a008fd35@srs-se1.protection.inumbo.net>)
 id 1sRuPG-0008Pw-TH
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 14:04:23 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77f8356c-3f8e-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 16:04:21 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WKc0h0G0Xz6CQ50P
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 14:04:20 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3ae849488e7e43f98f851362a008fd35; Thu, 11 Jul 2024 14:04: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: 77f8356c-3f8e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720706660; x=1720967160;
	bh=p5TdiLhMetI01KXixYNu5tEAP6/FlZFWBp1r9LDLtk8=;
	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=H8qhOECX/N81d7kXdr0xtETZ0saLYyh5I9N3L3eEd7pwsA38TG6fBb/GDVaVp3fkn
	 63psGpJmolm+u3nu0YGKAR147GJ+95leQcF6bVUbsuMQ18B984Q+p1YrrFDnsw38jZ
	 5zrTwA/6q1Kb4nh0SrKkgTRz1bipU6swbykeygTo46PPogah3ibCKYpy1S3AFfOcXj
	 etabU8o90Z6QvPjBmANsLllzSTOlSmY9CBH6WXzxRMkmETVxlhgCg5JglL5HlB5G63
	 OmEFkWu32zdc8KONw+v6iJIAlQXqidV5vXimKNboSE1sS3DoypXCid1hNQj9dSc/JY
	 c1cwtS1Uj28Jg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720706660; x=1720967160; i=teddy.astie@vates.tech;
	bh=p5TdiLhMetI01KXixYNu5tEAP6/FlZFWBp1r9LDLtk8=;
	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=fQpjGggvoV9jP+7SFiCUAKKXN3ecabwZyAvXDublNiDcukHvIT7W6bdASeFDEIpQh
	 Wk5HXkSDYI99foqJkCYdY0HCm80S9TCN+//O2IU/MtD1zdbOSRBYSrY1l8iKKt+Eof
	 +oqTUmbPbY8h8uCHMgpftRJBx31UWOSR2rkL9RgtJXNaqzB6p846+9gHefc3SWtNbO
	 h4PckwizTUZvpygl/8VFMN/45ZdKXIBJcgS2yXE6cM7HF50ccSM82oh0MlAvk4exuw
	 3XjK8nPyeBrHvezZOduJAboTMg1OqnLDCKBX21lpaQRZEvHnQCHA05Ck6b560Uqsjb
	 PoxNdcyYlOTNQ==
From: Teddy Astie <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20XEN=20PATCH=20v3=203/5]=20IOMMU:=20Introduce=20redesigned=20IOMMU=20subsystem?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720706657624
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Lukasz Hawrylko <lukasz@hawrylko.pl>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, =?utf-8?Q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-Id: <8c16a5f0931b1b16411e981329345debbec42041.1720703078.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1720703078.git.teddy.astie@vates.tech>
References: <cover.1720703078.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.3ae849488e7e43f98f851362a008fd35?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 14:04:19 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Based on docs/designs/iommu-contexts.md, implement the redesigned IOMMU subsystem.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
Changed in V2:
* cleanup some unneeded includes
* fix dangling devices in context on detach

Changed in V3:
* add unlocked _iommu_lookup_page
* iommu_check_context+iommu_get_context -> iommu_get_context and check for NULL
* prevent IOMMU operations on dying contexts
---
 xen/arch/x86/domain.c                |   2 +-
 xen/arch/x86/mm/p2m-ept.c            |   2 +-
 xen/arch/x86/pv/dom0_build.c         |   4 +-
 xen/arch/x86/tboot.c                 |   4 +-
 xen/common/memory.c                  |   4 +-
 xen/drivers/passthrough/Makefile     |   3 +
 xen/drivers/passthrough/context.c    | 649 +++++++++++++++++++++++++++
 xen/drivers/passthrough/iommu.c      | 337 ++++----------
 xen/drivers/passthrough/pci.c        |  49 +-
 xen/drivers/passthrough/quarantine.c |  49 ++
 xen/include/xen/iommu.h              | 120 ++++-
 xen/include/xen/pci.h                |   3 +
 12 files changed, 921 insertions(+), 305 deletions(-)
 create mode 100644 xen/drivers/passthrough/context.c
 create mode 100644 xen/drivers/passthrough/quarantine.c

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index ccadfe0c9e..1dd2453d71 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2405,7 +2405,7 @@ int domain_relinquish_resources(struct domain *d)
 
     PROGRESS(iommu_pagetables):
 
-        ret = iommu_free_pgtables(d);
+        ret = iommu_free_pgtables(d, iommu_default_context(d));
         if ( ret )
             return ret;
 
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index 469e27ee93..80026a9cb9 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -975,7 +975,7 @@ out:
             rc = iommu_iotlb_flush(d, _dfn(gfn), 1ul << order,
                                    (iommu_flags ? IOMMU_FLUSHF_added : 0) |
                                    (vtd_pte_present ? IOMMU_FLUSHF_modified
-                                                    : 0));
+                                                    : 0), 0);
         else if ( need_iommu_pt_sync(d) )
             rc = iommu_flags ?
                 iommu_legacy_map(d, _dfn(gfn), mfn, 1ul << order, iommu_flags) :
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index d8043fa58a..db7298737d 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -76,7 +76,7 @@ static __init void mark_pv_pt_pages_rdonly(struct domain *d,
          * iommu_memory_setup() ended up mapping them.
          */
         if ( need_iommu_pt_sync(d) &&
-             iommu_unmap(d, _dfn(mfn_x(page_to_mfn(page))), 1, 0, flush_flags) )
+             iommu_unmap(d, _dfn(mfn_x(page_to_mfn(page))), 1, 0, flush_flags, 0) )
             BUG();
 
         /* Read-only mapping + PGC_allocated + page-table page. */
@@ -127,7 +127,7 @@ static void __init iommu_memory_setup(struct domain *d, const char *what,
 
     while ( (rc = iommu_map(d, _dfn(mfn_x(mfn)), mfn, nr,
                             IOMMUF_readable | IOMMUF_writable | IOMMUF_preempt,
-                            flush_flags)) > 0 )
+                            flush_flags, 0)) > 0 )
     {
         mfn = mfn_add(mfn, rc);
         nr -= rc;
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index ba0700d2d5..ca55306830 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -216,9 +216,9 @@ static void tboot_gen_domain_integrity(const uint8_t key[TB_KEY_SIZE],
 
         if ( is_iommu_enabled(d) && is_vtd )
         {
-            const struct domain_iommu *dio = dom_iommu(d);
+            struct domain_iommu *dio = dom_iommu(d);
 
-            update_iommu_mac(&ctx, dio->arch.vtd.pgd_maddr,
+            update_iommu_mac(&ctx, iommu_default_context(d)->arch.vtd.pgd_maddr,
                              agaw_to_level(dio->arch.vtd.agaw));
         }
     }
diff --git a/xen/common/memory.c b/xen/common/memory.c
index de2cc7ad92..0eb0f9da7b 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -925,7 +925,7 @@ int xenmem_add_to_physmap(struct domain *d, struct xen_add_to_physmap *xatp,
         this_cpu(iommu_dont_flush_iotlb) = 0;
 
         ret = iommu_iotlb_flush(d, _dfn(xatp->idx - done), done,
-                                IOMMU_FLUSHF_modified);
+                                IOMMU_FLUSHF_modified, 0);
         if ( unlikely(ret) && rc >= 0 )
             rc = ret;
 
@@ -939,7 +939,7 @@ int xenmem_add_to_physmap(struct domain *d, struct xen_add_to_physmap *xatp,
             put_page(pages[i]);
 
         ret = iommu_iotlb_flush(d, _dfn(xatp->gpfn - done), done,
-                                IOMMU_FLUSHF_added | IOMMU_FLUSHF_modified);
+                                IOMMU_FLUSHF_added | IOMMU_FLUSHF_modified, 0);
         if ( unlikely(ret) && rc >= 0 )
             rc = ret;
     }
diff --git a/xen/drivers/passthrough/Makefile b/xen/drivers/passthrough/Makefile
index a1621540b7..69327080ab 100644
--- a/xen/drivers/passthrough/Makefile
+++ b/xen/drivers/passthrough/Makefile
@@ -4,6 +4,9 @@ obj-$(CONFIG_X86) += x86/
 obj-$(CONFIG_ARM) += arm/
 
 obj-y += iommu.o
+obj-y += context.o
+obj-y += quarantine.o
+
 obj-$(CONFIG_HAS_PCI) += pci.o
 obj-$(CONFIG_HAS_DEVICE_TREE) += device_tree.o
 obj-$(CONFIG_HAS_PCI) += ats.o
diff --git a/xen/drivers/passthrough/context.c b/xen/drivers/passthrough/context.c
new file mode 100644
index 0000000000..e38e648872
--- /dev/null
+++ b/xen/drivers/passthrough/context.c
@@ -0,0 +1,649 @@
+/*
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <xen/iommu.h>
+#include <xen/event.h>
+#include <xen/sched.h>
+#include <xen/spinlock.h>
+#include <xen/bitops.h>
+#include <xen/bitmap.h>
+
+bool iommu_check_context(struct domain *d, u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if (ctx_no == 0)
+        return 1; /* Default context always exist. */
+
+    if ((ctx_no - 1) >= hd->other_contexts.count)
+        return 0; /* out of bounds */
+
+    return test_bit(ctx_no - 1, hd->other_contexts.bitmap);
+}
+
+struct iommu_context *iommu_get_context(struct domain *d, u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if ( !iommu_check_context(d, ctx_no) )
+        return NULL;
+
+    if ( ctx_no == 0 )
+        return &hd->default_ctx;
+    else
+        return &hd->other_contexts.map[ctx_no - 1];
+}
+
+static unsigned int mapping_order(const struct domain_iommu *hd,
+                                  dfn_t dfn, mfn_t mfn, unsigned long nr)
+{
+    unsigned long res = dfn_x(dfn) | mfn_x(mfn);
+    unsigned long sizes = hd->platform_ops->page_sizes;
+    unsigned int bit = ffsl(sizes) - 1, order = 0;
+
+    ASSERT(bit == PAGE_SHIFT);
+
+    while ( (sizes = (sizes >> bit) & ~1) )
+    {
+        unsigned long mask;
+
+        bit = ffsl(sizes) - 1;
+        mask = (1UL << bit) - 1;
+        if ( nr <= mask || (res & mask) )
+            break;
+        order += bit;
+        nr >>= bit;
+        res >>= bit;
+    }
+
+    return order;
+}
+
+long _iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
+               unsigned long page_count, unsigned int flags,
+               unsigned int *flush_flags, u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    unsigned long i;
+    unsigned int order, j = 0;
+    int rc = 0;
+    struct iommu_context *ctx;
+
+    if ( !is_iommu_enabled(d) )
+        return 0;
+
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+        return -ENOENT;
+
+    if ( ctx->dying )
+        return -EINVAL;
+
+    ASSERT(!IOMMUF_order(flags));
+
+    for ( i = 0; i < page_count; i += 1UL << order )
+    {
+        dfn_t dfn = dfn_add(dfn0, i);
+        mfn_t mfn = mfn_add(mfn0, i);
+
+        order = mapping_order(hd, dfn, mfn, page_count - i);
+
+        if ( (flags & IOMMUF_preempt) &&
+             ((!(++j & 0xfff) && general_preempt_check()) ||
+              i > LONG_MAX - (1UL << order)) )
+            return i;
+
+        rc = iommu_call(hd->platform_ops, map_page, d, dfn, mfn,
+                        flags | IOMMUF_order(order), flush_flags,
+                        ctx);
+
+        if ( likely(!rc) )
+            continue;
+
+        if ( !d->is_shutting_down && printk_ratelimit() )
+            printk(XENLOG_ERR
+                   "d%d: IOMMU mapping dfn %"PRI_dfn" to mfn %"PRI_mfn" failed: %d\n",
+                   d->domain_id, dfn_x(dfn), mfn_x(mfn), rc);
+
+        /* while statement to satisfy __must_check */
+        while ( _iommu_unmap(d, dfn0, i, 0, flush_flags, ctx_no) )
+            break;
+
+        if ( !ctx_no && !is_hardware_domain(d) )
+            domain_crash(d);
+
+        break;
+    }
+
+    /*
+     * Something went wrong so, if we were dealing with more than a single
+     * page, flush everything and clear flush flags.
+     */
+    if ( page_count > 1 && unlikely(rc) &&
+         !iommu_iotlb_flush_all(d, *flush_flags) )
+        *flush_flags = 0;
+
+    return rc;
+}
+
+long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
+               unsigned long page_count, unsigned int flags,
+               unsigned int *flush_flags, u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    long ret;
+
+    spin_lock(&hd->lock);
+    ret = _iommu_map(d, dfn0, mfn0, page_count, flags, flush_flags, ctx_no);
+    spin_unlock(&hd->lock);
+
+    return ret;
+}
+
+int iommu_legacy_map(struct domain *d, dfn_t dfn, mfn_t mfn,
+                     unsigned long page_count, unsigned int flags)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    unsigned int flush_flags = 0;
+    int rc;
+
+    ASSERT(!(flags & IOMMUF_preempt));
+
+    spin_lock(&hd->lock);
+    rc = _iommu_map(d, dfn, mfn, page_count, flags, &flush_flags, 0);
+
+    if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
+        rc = _iommu_iotlb_flush(d, dfn, page_count, flush_flags, 0);
+    spin_unlock(&hd->lock);
+
+    return rc;
+}
+
+long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
+                 unsigned int flags, unsigned int *flush_flags,
+                 u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    long ret;
+
+    spin_lock(&hd->lock);
+    ret = _iommu_unmap(d, dfn0, page_count, flags, flush_flags, ctx_no);
+    spin_unlock(&hd->lock);
+
+    return ret;
+}
+
+long _iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
+                  unsigned int flags, unsigned int *flush_flags,
+                  u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    unsigned long i;
+    unsigned int order, j = 0;
+    int rc = 0;
+    struct iommu_context *ctx;
+
+    if ( !is_iommu_enabled(d) )
+        return 0;
+
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+        return -ENOENT;
+
+    if ( ctx->dying )
+        return -EINVAL;
+
+    ASSERT(!(flags & ~IOMMUF_preempt));
+
+    for ( i = 0; i < page_count; i += 1UL << order )
+    {
+        dfn_t dfn = dfn_add(dfn0, i);
+        int err;
+
+        order = mapping_order(hd, dfn, _mfn(0), page_count - i);
+
+        if ( (flags & IOMMUF_preempt) &&
+             ((!(++j & 0xfff) && general_preempt_check()) ||
+              i > LONG_MAX - (1UL << order)) )
+            return i;
+
+        err = iommu_call(hd->platform_ops, unmap_page, d, dfn,
+                         flags | IOMMUF_order(order), flush_flags,
+                         ctx);
+
+        if ( likely(!err) )
+            continue;
+
+        if ( !d->is_shutting_down && printk_ratelimit() )
+            printk(XENLOG_ERR
+                   "d%d: IOMMU unmapping dfn %"PRI_dfn" failed: %d\n",
+                   d->domain_id, dfn_x(dfn), err);
+
+        if ( !rc )
+            rc = err;
+
+        if ( !is_hardware_domain(d) )
+        {
+            domain_crash(d);
+            break;
+        }
+    }
+
+    /*
+     * Something went wrong so, if we were dealing with more than a single
+     * page, flush everything and clear flush flags.
+     */
+    if ( page_count > 1 && unlikely(rc) &&
+         !iommu_iotlb_flush_all(d, *flush_flags) )
+        *flush_flags = 0;
+
+    return rc;
+}
+
+int iommu_legacy_unmap(struct domain *d, dfn_t dfn, unsigned long page_count)
+{
+    unsigned int flush_flags = 0;
+    struct domain_iommu *hd = dom_iommu(d);
+    int rc;
+
+    spin_lock(&hd->lock);
+    rc = _iommu_unmap(d, dfn, page_count, 0, &flush_flags, 0);
+
+    if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
+        rc = _iommu_iotlb_flush(d, dfn, page_count, flush_flags, 0);
+    spin_unlock(&hd->lock);
+
+    return rc;
+}
+
+int iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
+                      unsigned int *flags, u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    int ret;
+
+    spin_lock(&hd->lock);
+    ret = _iommu_lookup_page(d, dfn, mfn, flags, ctx_no);
+    spin_unlock(&hd->lock);
+
+    return ret;
+}
+
+int _iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
+                      unsigned int *flags, u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
+
+    if ( !is_iommu_enabled(d) || !hd->platform_ops->lookup_page )
+        return -EOPNOTSUPP;
+
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+        return -ENOENT;
+
+    if ( ctx->dying )
+        return -EINVAL;
+
+    return iommu_call(hd->platform_ops, lookup_page, d, dfn, mfn, flags, ctx);
+}
+
+int _iommu_iotlb_flush(struct domain *d, dfn_t dfn, unsigned long page_count,
+                       unsigned int flush_flags, u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    int rc;
+    struct iommu_context *ctx;
+
+    if ( !is_iommu_enabled(d) || !hd->platform_ops->iotlb_flush ||
+         !page_count || !flush_flags )
+        return 0;
+
+    if ( dfn_eq(dfn, INVALID_DFN) )
+        return -EINVAL;
+
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+        return -ENOENT;
+
+    if ( ctx->dying )
+        return -EINVAL;
+
+    rc = iommu_call(hd->platform_ops, iotlb_flush, d, ctx, dfn, page_count,
+                    flush_flags);
+    if ( unlikely(rc) )
+    {
+        if ( !d->is_shutting_down && printk_ratelimit() )
+            printk(XENLOG_ERR
+                   "d%d: IOMMU IOTLB flush failed: %d, dfn %"PRI_dfn", page count %lu flags %x\n",
+                   d->domain_id, rc, dfn_x(dfn), page_count, flush_flags);
+
+        if ( !is_hardware_domain(d) )
+            domain_crash(d);
+    }
+
+    return rc;
+}
+
+int iommu_iotlb_flush(struct domain *d, dfn_t dfn, unsigned long page_count,
+                      unsigned int flush_flags, u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    int ret;
+
+    spin_lock(&hd->lock);
+    ret = _iommu_iotlb_flush(d, dfn, page_count, flush_flags, ctx_no);
+    spin_unlock(&hd->lock);
+
+    return ret;
+}
+
+int iommu_context_init(struct domain *d, struct iommu_context *ctx, u16 ctx_no, u32 flags)
+{
+    if ( !dom_iommu(d)->platform_ops->context_init )
+        return -ENOSYS;
+
+    INIT_LIST_HEAD(&ctx->devices);
+    ctx->id = ctx_no;
+    ctx->dying = false;
+
+    return iommu_call(dom_iommu(d)->platform_ops, context_init, d, ctx, flags);
+}
+
+int iommu_context_alloc(struct domain *d, u16 *ctx_no, u32 flags)
+{
+    unsigned int i;
+    int ret;
+    struct domain_iommu *hd = dom_iommu(d);
+
+    spin_lock(&hd->lock);
+
+    /* TODO: use TSL instead ? */
+    i = find_first_zero_bit(hd->other_contexts.bitmap, hd->other_contexts.count);
+
+    if ( i < hd->other_contexts.count )
+        set_bit(i, hd->other_contexts.bitmap);
+
+    if ( i >= hd->other_contexts.count ) /* no free context */
+        return -ENOSPC;
+
+    *ctx_no = i + 1;
+
+    ret = iommu_context_init(d, iommu_get_context(d, *ctx_no), *ctx_no, flags);
+
+    if ( ret )
+        __clear_bit(*ctx_no, hd->other_contexts.bitmap);
+
+    spin_unlock(&hd->lock);
+
+    return ret;
+}
+
+int _iommu_attach_context(struct domain *d, device_t *dev, u16 ctx_no)
+{
+    struct iommu_context *ctx;
+    int ret;
+
+    pcidevs_lock();
+
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+    {
+        ret = -ENOENT;
+        goto unlock;
+    }
+
+    if ( ctx->dying )
+    {
+        ret = -EINVAL;
+        goto unlock;
+    }
+
+    ret = iommu_call(dom_iommu(d)->platform_ops, attach, d, dev, ctx);
+
+    if ( !ret )
+    {
+        dev->context = ctx_no;
+        list_add(&dev->context_list, &ctx->devices);
+    }
+
+unlock:
+    pcidevs_unlock();
+    return ret;
+}
+
+int iommu_attach_context(struct domain *d, device_t *dev, u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    int ret;
+
+    spin_lock(&hd->lock);
+    ret = _iommu_attach_context(d, dev, ctx_no);
+    spin_unlock(&hd->lock);
+
+    return ret;
+}
+
+int _iommu_detach_context(struct domain *d, device_t *dev)
+{
+    struct iommu_context *ctx;
+    int ret;
+
+    if (!dev->domain)
+    {
+        printk("IOMMU: Trying to detach a non-attached device.");
+        WARN();
+        return 0;
+    }
+
+    /* Make sure device is actually in the domain. */
+    ASSERT(d == dev->domain);
+
+    pcidevs_lock();
+
+    ctx = iommu_get_context(d, dev->context);
+    ASSERT(ctx); /* device is using an invalid context ?
+                    dev->context invalid ? */
+
+    ret = iommu_call(dom_iommu(d)->platform_ops, detach, d, dev, ctx);
+
+    if ( !ret )
+    {
+        list_del(&dev->context_list);
+
+        /** TODO: Do we need to remove the device from domain ?
+         *        Reattaching to something (quarantine, hardware domain ?)
+         */
+
+        /*
+         * rcu_lock_domain ?
+         * list_del(&dev->domain_list);
+         * dev->domain = ?;
+         */
+    }
+
+    pcidevs_unlock();
+    return ret;
+}
+
+int iommu_detach_context(struct domain *d, device_t *dev)
+{
+    int ret;
+    struct domain_iommu *hd = dom_iommu(d);
+
+    spin_lock(&hd->lock);
+    ret = _iommu_detach_context(d, dev);
+    spin_unlock(&hd->lock);
+
+    return ret;
+}
+
+int _iommu_reattach_context(struct domain *prev_dom, struct domain *next_dom,
+                            device_t *dev, u16 ctx_no)
+{
+    struct domain_iommu *hd;
+    u16 prev_ctx_no;
+    device_t *ctx_dev;
+    struct iommu_context *prev_ctx, *next_ctx;
+    int ret;
+    bool same_domain;
+
+    /* Make sure we actually are doing something meaningful */
+    BUG_ON(!prev_dom && !next_dom);
+
+    /// TODO: Do such cases exists ?
+    // /* Platform ops must match */
+    // if (dom_iommu(prev_dom)->platform_ops != dom_iommu(next_dom)->platform_ops)
+    //     return -EINVAL;
+
+    pcidevs_lock();
+
+    if (!prev_dom)
+        return _iommu_attach_context(next_dom, dev, ctx_no);
+
+    if (!next_dom)
+        return _iommu_detach_context(prev_dom, dev);
+
+    hd = dom_iommu(prev_dom);
+    same_domain = prev_dom == next_dom;
+
+    prev_ctx_no = dev->context;
+
+    if ( !same_domain && (ctx_no == prev_ctx_no) )
+    {
+        printk(XENLOG_DEBUG "Reattaching %pp to same IOMMU context c%hu\n", &dev, ctx_no);
+        ret = 0;
+        goto unlock;
+    }
+
+    if ( !iommu_check_context(next_dom, ctx_no) )
+    {
+        ret = -ENOENT;
+        goto unlock;
+    }
+
+    prev_ctx = iommu_get_context(prev_dom, prev_ctx_no);
+    next_ctx = iommu_get_context(next_dom, ctx_no);
+
+    if ( next_ctx->dying )
+    {
+        ret = -EINVAL;
+        goto unlock;
+    }
+
+    ret = iommu_call(hd->platform_ops, reattach, next_dom, dev, prev_ctx,
+                     next_ctx);
+
+    if ( ret )
+        goto unlock;
+
+    /* Remove device from previous context, and add it to new one. */
+    list_for_each_entry(ctx_dev, &prev_ctx->devices, context_list)
+    {
+        if ( ctx_dev == dev )
+        {
+            list_del(&ctx_dev->context_list);
+            list_add(&ctx_dev->context_list, &next_ctx->devices);
+            break;
+        }
+    }
+
+    if ( !same_domain )
+    {
+        /* Update domain pci devices accordingly */
+
+        /** TODO: should be done here or elsewhere ? */
+    }
+
+    if (!ret)
+        dev->context = ctx_no; /* update device context*/
+
+unlock:
+    pcidevs_unlock();
+    return ret;
+}
+
+int iommu_reattach_context(struct domain *prev_dom, struct domain *next_dom,
+                           device_t *dev, u16 ctx_no)
+{
+    int ret;
+    struct domain_iommu *prev_hd = dom_iommu(prev_dom);
+    struct domain_iommu *next_hd = dom_iommu(next_dom);
+
+    spin_lock(&prev_hd->lock);
+
+    if (prev_dom != next_dom)
+        spin_lock(&next_hd->lock);
+
+    ret = _iommu_reattach_context(prev_dom, next_dom, dev, ctx_no);
+
+    spin_unlock(&prev_hd->lock);
+
+    if (prev_dom != next_dom)
+        spin_unlock(&next_hd->lock);
+
+    return ret;
+}
+
+int _iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if ( !dom_iommu(d)->platform_ops->context_teardown )
+        return -ENOSYS;
+
+    ctx->dying = true;
+
+    /* first reattach devices back to default context if needed */
+    if ( flags & IOMMU_TEARDOWN_REATTACH_DEFAULT )
+    {
+        struct pci_dev *device;
+        list_for_each_entry(device, &ctx->devices, context_list)
+            _iommu_reattach_context(d, d, device, 0);
+    }
+    else if (!list_empty(&ctx->devices))
+        return -EBUSY; /* there is a device in context */
+
+    return iommu_call(hd->platform_ops, context_teardown, d, ctx, flags);
+}
+
+int iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    int ret;
+
+    spin_lock(&hd->lock);
+    ret = _iommu_context_teardown(d, ctx, flags);
+    spin_unlock(&hd->lock);
+
+    return ret;
+}
+
+int iommu_context_free(struct domain *d, u16 ctx_no, u32 flags)
+{
+    int ret;
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
+
+    if ( ctx_no == 0 )
+        return -EINVAL;
+
+    spin_lock(&hd->lock);
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+        return -ENOENT;
+
+    ret = _iommu_context_teardown(d, ctx, flags);
+
+    if ( !ret )
+        clear_bit(ctx_no - 1, hd->other_contexts.bitmap);
+
+    spin_unlock(&hd->lock);
+
+    return ret;
+}
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 50bfd62553..48ffa0f97e 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -12,15 +12,14 @@
  * this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <xen/pci.h>
 #include <xen/sched.h>
 #include <xen/iommu.h>
-#include <xen/paging.h>
-#include <xen/guest_access.h>
-#include <xen/event.h>
 #include <xen/param.h>
-#include <xen/softirq.h>
+#include <xen/spinlock.h>
 #include <xen/keyhandler.h>
-#include <xsm/xsm.h>
+#include <asm/iommu.h>
+#include <asm/bitops.h>
 
 #ifdef CONFIG_X86
 #include <asm/e820.h>
@@ -35,22 +34,6 @@ bool __read_mostly force_iommu;
 bool __read_mostly iommu_verbose;
 static bool __read_mostly iommu_crash_disable;
 
-#define IOMMU_quarantine_none         0 /* aka false */
-#define IOMMU_quarantine_basic        1 /* aka true */
-#define IOMMU_quarantine_scratch_page 2
-#ifdef CONFIG_HAS_PCI
-uint8_t __read_mostly iommu_quarantine =
-# if defined(CONFIG_IOMMU_QUARANTINE_NONE)
-    IOMMU_quarantine_none;
-# elif defined(CONFIG_IOMMU_QUARANTINE_BASIC)
-    IOMMU_quarantine_basic;
-# elif defined(CONFIG_IOMMU_QUARANTINE_SCRATCH_PAGE)
-    IOMMU_quarantine_scratch_page;
-# endif
-#else
-# define iommu_quarantine IOMMU_quarantine_none
-#endif /* CONFIG_HAS_PCI */
-
 static bool __hwdom_initdata iommu_hwdom_none;
 bool __hwdom_initdata iommu_hwdom_strict;
 bool __read_mostly iommu_hwdom_passthrough;
@@ -61,6 +44,13 @@ int8_t __hwdom_initdata iommu_hwdom_reserved = -1;
 bool __read_mostly iommu_hap_pt_share = true;
 #endif
 
+uint16_t __read_mostly iommu_hwdom_nb_ctx = 8;
+bool __read_mostly iommu_hwdom_nb_ctx_forced = false;
+
+#ifdef CONFIG_X86
+unsigned int __read_mostly iommu_hwdom_arena_order = CONFIG_X86_ARENA_ORDER;
+#endif
+
 bool __read_mostly iommu_debug;
 
 DEFINE_PER_CPU(bool, iommu_dont_flush_iotlb);
@@ -156,6 +146,7 @@ static int __init cf_check parse_dom0_iommu_param(const char *s)
     int rc = 0;
 
     do {
+        long long ll_val;
         int val;
 
         ss = strchr(s, ',');
@@ -172,6 +163,20 @@ static int __init cf_check parse_dom0_iommu_param(const char *s)
             iommu_hwdom_reserved = val;
         else if ( !cmdline_strcmp(s, "none") )
             iommu_hwdom_none = true;
+        else if ( !parse_signed_integer("nb-ctx", s, ss, &ll_val) )
+        {
+            if (ll_val > 0 && ll_val < UINT16_MAX)
+                iommu_hwdom_nb_ctx = ll_val;
+            else
+                printk(XENLOG_WARNING "'nb-ctx=%lld' value out of range!\n", ll_val);
+        }
+        else if ( !parse_signed_integer("arena-order", s, ss, &ll_val) )
+        {
+            if (ll_val > 0)
+                iommu_hwdom_arena_order = ll_val;
+            else
+                printk(XENLOG_WARNING "'arena-order=%lld' value out of range!\n", ll_val);
+        }
         else
             rc = -EINVAL;
 
@@ -193,9 +198,26 @@ static void __hwdom_init check_hwdom_reqs(struct domain *d)
     arch_iommu_check_autotranslated_hwdom(d);
 }
 
+uint16_t __hwdom_init iommu_hwdom_ctx_count(void)
+{
+    if (iommu_hwdom_nb_ctx_forced)
+        return iommu_hwdom_nb_ctx;
+
+    /* TODO: Find a proper way of counting devices ? */
+    return 256;
+
+    /*
+    if (iommu_hwdom_nb_ctx != UINT16_MAX)
+        iommu_hwdom_nb_ctx++;
+    else
+        printk(XENLOG_WARNING " IOMMU: Can't prepare more contexts: too much devices");
+    */
+}
+
 int iommu_domain_init(struct domain *d, unsigned int opts)
 {
     struct domain_iommu *hd = dom_iommu(d);
+    uint16_t other_context_count;
     int ret = 0;
 
     if ( is_hardware_domain(d) )
@@ -236,6 +258,37 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
 
     ASSERT(!(hd->need_sync && hd->hap_pt_share));
 
+    iommu_hwdom_nb_ctx = iommu_hwdom_ctx_count();
+
+    if ( is_hardware_domain(d) )
+    {
+        BUG_ON(iommu_hwdom_nb_ctx == 0); /* sanity check (prevent underflow) */
+        printk(XENLOG_INFO "Dom0 uses %lu IOMMU contexts\n",
+               (unsigned long)iommu_hwdom_nb_ctx);
+        hd->other_contexts.count = iommu_hwdom_nb_ctx - 1;
+    }
+    else if ( d == dom_io )
+    {
+        /* TODO: Determine count differently */
+        hd->other_contexts.count = 128;
+    }
+    else
+        hd->other_contexts.count = 0;
+
+    other_context_count = hd->other_contexts.count;
+    if (other_context_count > 0) {
+        /* Initialize context bitmap */
+        hd->other_contexts.bitmap = xzalloc_array(unsigned long,
+                                                  BITS_TO_LONGS(other_context_count));
+        hd->other_contexts.map = xzalloc_array(struct iommu_context,
+                                               other_context_count);
+    } else {
+        hd->other_contexts.bitmap = NULL;
+        hd->other_contexts.map = NULL;
+    }
+
+    iommu_context_init(d, &hd->default_ctx, 0, IOMMU_CONTEXT_INIT_default);
+
     return 0;
 }
 
@@ -249,13 +302,12 @@ static void cf_check iommu_dump_page_tables(unsigned char key)
 
     for_each_domain(d)
     {
-        if ( is_hardware_domain(d) || !is_iommu_enabled(d) )
+        if ( !is_iommu_enabled(d) )
             continue;
 
         if ( iommu_use_hap_pt(d) )
         {
             printk("%pd sharing page tables\n", d);
-            continue;
         }
 
         iommu_vcall(dom_iommu(d)->platform_ops, dump_page_tables, d);
@@ -276,10 +328,13 @@ void __hwdom_init iommu_hwdom_init(struct domain *d)
     iommu_vcall(hd->platform_ops, hwdom_init, d);
 }
 
-static void iommu_teardown(struct domain *d)
+void iommu_domain_destroy(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
 
+    if ( !is_iommu_enabled(d) )
+        return;
+
     /*
      * During early domain creation failure, we may reach here with the
      * ops not yet initialized.
@@ -288,224 +343,10 @@ static void iommu_teardown(struct domain *d)
         return;
 
     iommu_vcall(hd->platform_ops, teardown, d);
-}
-
-void iommu_domain_destroy(struct domain *d)
-{
-    if ( !is_iommu_enabled(d) )
-        return;
-
-    iommu_teardown(d);
 
     arch_iommu_domain_destroy(d);
 }
 
-static unsigned int mapping_order(const struct domain_iommu *hd,
-                                  dfn_t dfn, mfn_t mfn, unsigned long nr)
-{
-    unsigned long res = dfn_x(dfn) | mfn_x(mfn);
-    unsigned long sizes = hd->platform_ops->page_sizes;
-    unsigned int bit = ffsl(sizes) - 1, order = 0;
-
-    ASSERT(bit == PAGE_SHIFT);
-
-    while ( (sizes = (sizes >> bit) & ~1) )
-    {
-        unsigned long mask;
-
-        bit = ffsl(sizes) - 1;
-        mask = (1UL << bit) - 1;
-        if ( nr <= mask || (res & mask) )
-            break;
-        order += bit;
-        nr >>= bit;
-        res >>= bit;
-    }
-
-    return order;
-}
-
-long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
-               unsigned long page_count, unsigned int flags,
-               unsigned int *flush_flags)
-{
-    const struct domain_iommu *hd = dom_iommu(d);
-    unsigned long i;
-    unsigned int order, j = 0;
-    int rc = 0;
-
-    if ( !is_iommu_enabled(d) )
-        return 0;
-
-    ASSERT(!IOMMUF_order(flags));
-
-    for ( i = 0; i < page_count; i += 1UL << order )
-    {
-        dfn_t dfn = dfn_add(dfn0, i);
-        mfn_t mfn = mfn_add(mfn0, i);
-
-        order = mapping_order(hd, dfn, mfn, page_count - i);
-
-        if ( (flags & IOMMUF_preempt) &&
-             ((!(++j & 0xfff) && general_preempt_check()) ||
-              i > LONG_MAX - (1UL << order)) )
-            return i;
-
-        rc = iommu_call(hd->platform_ops, map_page, d, dfn, mfn,
-                        flags | IOMMUF_order(order), flush_flags);
-
-        if ( likely(!rc) )
-            continue;
-
-        if ( !d->is_shutting_down && printk_ratelimit() )
-            printk(XENLOG_ERR
-                   "d%d: IOMMU mapping dfn %"PRI_dfn" to mfn %"PRI_mfn" failed: %d\n",
-                   d->domain_id, dfn_x(dfn), mfn_x(mfn), rc);
-
-        /* while statement to satisfy __must_check */
-        while ( iommu_unmap(d, dfn0, i, 0, flush_flags) )
-            break;
-
-        if ( !is_hardware_domain(d) )
-            domain_crash(d);
-
-        break;
-    }
-
-    /*
-     * Something went wrong so, if we were dealing with more than a single
-     * page, flush everything and clear flush flags.
-     */
-    if ( page_count > 1 && unlikely(rc) &&
-         !iommu_iotlb_flush_all(d, *flush_flags) )
-        *flush_flags = 0;
-
-    return rc;
-}
-
-int iommu_legacy_map(struct domain *d, dfn_t dfn, mfn_t mfn,
-                     unsigned long page_count, unsigned int flags)
-{
-    unsigned int flush_flags = 0;
-    int rc;
-
-    ASSERT(!(flags & IOMMUF_preempt));
-    rc = iommu_map(d, dfn, mfn, page_count, flags, &flush_flags);
-
-    if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
-        rc = iommu_iotlb_flush(d, dfn, page_count, flush_flags);
-
-    return rc;
-}
-
-long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
-                 unsigned int flags, unsigned int *flush_flags)
-{
-    const struct domain_iommu *hd = dom_iommu(d);
-    unsigned long i;
-    unsigned int order, j = 0;
-    int rc = 0;
-
-    if ( !is_iommu_enabled(d) )
-        return 0;
-
-    ASSERT(!(flags & ~IOMMUF_preempt));
-
-    for ( i = 0; i < page_count; i += 1UL << order )
-    {
-        dfn_t dfn = dfn_add(dfn0, i);
-        int err;
-
-        order = mapping_order(hd, dfn, _mfn(0), page_count - i);
-
-        if ( (flags & IOMMUF_preempt) &&
-             ((!(++j & 0xfff) && general_preempt_check()) ||
-              i > LONG_MAX - (1UL << order)) )
-            return i;
-
-        err = iommu_call(hd->platform_ops, unmap_page, d, dfn,
-                         flags | IOMMUF_order(order), flush_flags);
-
-        if ( likely(!err) )
-            continue;
-
-        if ( !d->is_shutting_down && printk_ratelimit() )
-            printk(XENLOG_ERR
-                   "d%d: IOMMU unmapping dfn %"PRI_dfn" failed: %d\n",
-                   d->domain_id, dfn_x(dfn), err);
-
-        if ( !rc )
-            rc = err;
-
-        if ( !is_hardware_domain(d) )
-        {
-            domain_crash(d);
-            break;
-        }
-    }
-
-    /*
-     * Something went wrong so, if we were dealing with more than a single
-     * page, flush everything and clear flush flags.
-     */
-    if ( page_count > 1 && unlikely(rc) &&
-         !iommu_iotlb_flush_all(d, *flush_flags) )
-        *flush_flags = 0;
-
-    return rc;
-}
-
-int iommu_legacy_unmap(struct domain *d, dfn_t dfn, unsigned long page_count)
-{
-    unsigned int flush_flags = 0;
-    int rc = iommu_unmap(d, dfn, page_count, 0, &flush_flags);
-
-    if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
-        rc = iommu_iotlb_flush(d, dfn, page_count, flush_flags);
-
-    return rc;
-}
-
-int iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
-                      unsigned int *flags)
-{
-    const struct domain_iommu *hd = dom_iommu(d);
-
-    if ( !is_iommu_enabled(d) || !hd->platform_ops->lookup_page )
-        return -EOPNOTSUPP;
-
-    return iommu_call(hd->platform_ops, lookup_page, d, dfn, mfn, flags);
-}
-
-int iommu_iotlb_flush(struct domain *d, dfn_t dfn, unsigned long page_count,
-                      unsigned int flush_flags)
-{
-    const struct domain_iommu *hd = dom_iommu(d);
-    int rc;
-
-    if ( !is_iommu_enabled(d) || !hd->platform_ops->iotlb_flush ||
-         !page_count || !flush_flags )
-        return 0;
-
-    if ( dfn_eq(dfn, INVALID_DFN) )
-        return -EINVAL;
-
-    rc = iommu_call(hd->platform_ops, iotlb_flush, d, dfn, page_count,
-                    flush_flags);
-    if ( unlikely(rc) )
-    {
-        if ( !d->is_shutting_down && printk_ratelimit() )
-            printk(XENLOG_ERR
-                   "d%d: IOMMU IOTLB flush failed: %d, dfn %"PRI_dfn", page count %lu flags %x\n",
-                   d->domain_id, rc, dfn_x(dfn), page_count, flush_flags);
-
-        if ( !is_hardware_domain(d) )
-            domain_crash(d);
-    }
-
-    return rc;
-}
-
 int iommu_iotlb_flush_all(struct domain *d, unsigned int flush_flags)
 {
     const struct domain_iommu *hd = dom_iommu(d);
@@ -515,7 +356,7 @@ int iommu_iotlb_flush_all(struct domain *d, unsigned int flush_flags)
          !flush_flags )
         return 0;
 
-    rc = iommu_call(hd->platform_ops, iotlb_flush, d, INVALID_DFN, 0,
+    rc = iommu_call(hd->platform_ops, iotlb_flush, d, NULL, INVALID_DFN, 0,
                     flush_flags | IOMMU_FLUSHF_all);
     if ( unlikely(rc) )
     {
@@ -531,24 +372,6 @@ int iommu_iotlb_flush_all(struct domain *d, unsigned int flush_flags)
     return rc;
 }
 
-int iommu_quarantine_dev_init(device_t *dev)
-{
-    const struct domain_iommu *hd = dom_iommu(dom_io);
-
-    if ( !iommu_quarantine || !hd->platform_ops->quarantine_init )
-        return 0;
-
-    return iommu_call(hd->platform_ops, quarantine_init,
-                      dev, iommu_quarantine == IOMMU_quarantine_scratch_page);
-}
-
-static int __init iommu_quarantine_init(void)
-{
-    dom_io->options |= XEN_DOMCTL_CDF_iommu;
-
-    return iommu_domain_init(dom_io, 0);
-}
-
 int __init iommu_setup(void)
 {
     int rc = -ENODEV;
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 5a446d3dce..fc3315f8ed 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2008,  Netronome Systems, Inc.
- *                
+ *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
  * version 2, as published by the Free Software Foundation.
@@ -286,14 +286,14 @@ static void apply_quirks(struct pci_dev *pdev)
          * Device [8086:2fc0]
          * Erratum HSE43
          * CONFIG_TDP_NOMINAL CSR Implemented at Incorrect Offset
-         * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v3-spec-update.html 
+         * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v3-spec-update.html
          */
         { PCI_VENDOR_ID_INTEL, 0x2fc0 },
         /*
          * Devices [8086:6f60,6fa0,6fc0]
          * Errata BDF2 / BDX2
          * PCI BARs in the Home Agent Will Return Non-Zero Values During Enumeration
-         * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v4-spec-update.html 
+         * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v4-spec-update.html
         */
         { PCI_VENDOR_ID_INTEL, 0x6f60 },
         { PCI_VENDOR_ID_INTEL, 0x6fa0 },
@@ -870,8 +870,8 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
         devfn += pdev->phantom_stride;
         if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
             break;
-        ret = iommu_call(hd->platform_ops, reassign_device, d, target, devfn,
-                         pci_to_dev(pdev));
+        ret = iommu_call(hd->platform_ops, add_devfn, d, pci_to_dev(pdev), devfn,
+                         &target->iommu.default_ctx);
         if ( ret )
             goto out;
     }
@@ -880,9 +880,9 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
     vpci_deassign_device(pdev);
     write_unlock(&d->pci_lock);
 
-    devfn = pdev->devfn;
-    ret = iommu_call(hd->platform_ops, reassign_device, d, target, devfn,
-                     pci_to_dev(pdev));
+    ret = iommu_call(hd->platform_ops, reattach, target, pci_to_dev(pdev),
+                     iommu_get_context(d, pdev->context),
+                     iommu_default_context(target));
     if ( ret )
         goto out;
 
@@ -890,6 +890,7 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
         pdev->quarantine = false;
 
     pdev->fault.count = 0;
+    pdev->domain = target;
 
     write_lock(&target->pci_lock);
     /* Re-assign back to hardware_domain */
@@ -1329,12 +1330,7 @@ static int cf_check _dump_pci_devices(struct pci_seg *pseg, void *arg)
     list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
     {
         printk("%pp - ", &pdev->sbdf);
-#ifdef CONFIG_X86
-        if ( pdev->domain == dom_io )
-            printk("DomIO:%x", pdev->arch.pseudo_domid);
-        else
-#endif
-            printk("%pd", pdev->domain);
+        printk("%pd", pdev->domain);
         printk(" - node %-3d", (pdev->node != NUMA_NO_NODE) ? pdev->node : -1);
         pdev_dump_msi(pdev);
         printk("\n");
@@ -1373,7 +1369,7 @@ static int iommu_add_device(struct pci_dev *pdev)
     if ( !is_iommu_enabled(pdev->domain) )
         return 0;
 
-    rc = iommu_call(hd->platform_ops, add_device, devfn, pci_to_dev(pdev));
+    rc = iommu_attach_context(pdev->domain, pci_to_dev(pdev), 0);
     if ( rc || !pdev->phantom_stride )
         return rc;
 
@@ -1382,7 +1378,9 @@ static int iommu_add_device(struct pci_dev *pdev)
         devfn += pdev->phantom_stride;
         if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
             return 0;
-        rc = iommu_call(hd->platform_ops, add_device, devfn, pci_to_dev(pdev));
+
+        rc = iommu_call(hd->platform_ops, add_devfn, pdev->domain, pdev, devfn,
+                        iommu_default_context(pdev->domain));
         if ( rc )
             printk(XENLOG_WARNING "IOMMU: add %pp failed (%d)\n",
                    &PCI_SBDF(pdev->seg, pdev->bus, devfn), rc);
@@ -1409,6 +1407,7 @@ static int iommu_enable_device(struct pci_dev *pdev)
 static int iommu_remove_device(struct pci_dev *pdev)
 {
     const struct domain_iommu *hd;
+    struct iommu_context *ctx;
     u8 devfn;
 
     if ( !pdev->domain )
@@ -1418,6 +1417,10 @@ static int iommu_remove_device(struct pci_dev *pdev)
     if ( !is_iommu_enabled(pdev->domain) )
         return 0;
 
+    ctx = iommu_get_context(pdev->domain, pdev->context);
+    if ( !ctx )
+        return -EINVAL;
+
     for ( devfn = pdev->devfn ; pdev->phantom_stride; )
     {
         int rc;
@@ -1425,8 +1428,8 @@ static int iommu_remove_device(struct pci_dev *pdev)
         devfn += pdev->phantom_stride;
         if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
             break;
-        rc = iommu_call(hd->platform_ops, remove_device, devfn,
-                        pci_to_dev(pdev));
+        rc = iommu_call(hd->platform_ops, remove_devfn, pdev->domain, pdev,
+                        devfn, ctx);
         if ( !rc )
             continue;
 
@@ -1437,7 +1440,7 @@ static int iommu_remove_device(struct pci_dev *pdev)
 
     devfn = pdev->devfn;
 
-    return iommu_call(hd->platform_ops, remove_device, devfn, pci_to_dev(pdev));
+    return iommu_detach_context(pdev->domain, pdev);
 }
 
 static int device_assigned(u16 seg, u8 bus, u8 devfn)
@@ -1497,22 +1500,22 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
     if ( pdev->domain != dom_io )
     {
         rc = iommu_quarantine_dev_init(pci_to_dev(pdev));
+        /** TODO: Consider phantom functions */
         if ( rc )
             goto done;
     }
 
     pdev->fault.count = 0;
 
-    rc = iommu_call(hd->platform_ops, assign_device, d, devfn, pci_to_dev(pdev),
-                    flag);
+    iommu_attach_context(d, pci_to_dev(pdev), 0);
 
     while ( pdev->phantom_stride && !rc )
     {
         devfn += pdev->phantom_stride;
         if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
             break;
-        rc = iommu_call(hd->platform_ops, assign_device, d, devfn,
-                        pci_to_dev(pdev), flag);
+        rc = iommu_call(hd->platform_ops, add_devfn, d, pci_to_dev(pdev),
+                        devfn, iommu_default_context(d));
     }
 
     if ( rc )
diff --git a/xen/drivers/passthrough/quarantine.c b/xen/drivers/passthrough/quarantine.c
new file mode 100644
index 0000000000..b58f136ad8
--- /dev/null
+++ b/xen/drivers/passthrough/quarantine.c
@@ -0,0 +1,49 @@
+#include <xen/stdint.h>
+#include <xen/iommu.h>
+#include <xen/sched.h>
+
+#ifdef CONFIG_HAS_PCI
+uint8_t __read_mostly iommu_quarantine =
+# if defined(CONFIG_IOMMU_QUARANTINE_NONE)
+    IOMMU_quarantine_none;
+# elif defined(CONFIG_IOMMU_QUARANTINE_BASIC)
+    IOMMU_quarantine_basic;
+# elif defined(CONFIG_IOMMU_QUARANTINE_SCRATCH_PAGE)
+    IOMMU_quarantine_scratch_page;
+# endif
+#else
+# define iommu_quarantine IOMMU_quarantine_none
+#endif /* CONFIG_HAS_PCI */
+
+int iommu_quarantine_dev_init(device_t *dev)
+{
+    int ret;
+    u16 ctx_no;
+
+    if ( !iommu_quarantine )
+        return 0;
+
+    ret = iommu_context_alloc(dom_io, &ctx_no, IOMMU_CONTEXT_INIT_quarantine);
+
+    if ( ret )
+        return ret;
+
+    /** TODO: Setup scratch page, mappings... */
+
+    ret = iommu_reattach_context(dev->domain, dom_io, dev, ctx_no);
+
+    if ( ret )
+    {
+        ASSERT(!iommu_context_free(dom_io, ctx_no, 0));
+        return ret;
+    }
+
+    return ret;
+}
+
+int __init iommu_quarantine_init(void)
+{
+    dom_io->options |= XEN_DOMCTL_CDF_iommu;
+
+    return iommu_domain_init(dom_io, 0);
+}
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 442ae5322d..51b0cc4cee 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -52,7 +52,11 @@ static inline bool dfn_eq(dfn_t x, dfn_t y)
 #ifdef CONFIG_HAS_PASSTHROUGH
 extern bool iommu_enable, iommu_enabled;
 extern bool force_iommu, iommu_verbose;
+
 /* Boolean except for the specific purposes of drivers/passthrough/iommu.c. */
+#define IOMMU_quarantine_none         0 /* aka false */
+#define IOMMU_quarantine_basic        1 /* aka true */
+#define IOMMU_quarantine_scratch_page 2
 extern uint8_t iommu_quarantine;
 #else
 #define iommu_enabled false
@@ -107,6 +111,11 @@ extern bool amd_iommu_perdev_intremap;
 
 extern bool iommu_hwdom_strict, iommu_hwdom_passthrough, iommu_hwdom_inclusive;
 extern int8_t iommu_hwdom_reserved;
+extern uint16_t iommu_hwdom_nb_ctx;
+
+#ifdef CONFIG_X86
+extern unsigned int iommu_hwdom_arena_order;
+#endif
 
 extern unsigned int iommu_dev_iotlb_timeout;
 
@@ -161,11 +170,16 @@ enum
  */
 long __must_check iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
                             unsigned long page_count, unsigned int flags,
-                            unsigned int *flush_flags);
+                            unsigned int *flush_flags, u16 ctx_no);
+long __must_check _iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
+                             unsigned long page_count, unsigned int flags,
+                             unsigned int *flush_flags, u16 ctx_no);
 long __must_check iommu_unmap(struct domain *d, dfn_t dfn0,
                               unsigned long page_count, unsigned int flags,
-                              unsigned int *flush_flags);
-
+                              unsigned int *flush_flags, u16 ctx_no);
+long __must_check _iommu_unmap(struct domain *d, dfn_t dfn0,
+                               unsigned long page_count, unsigned int flags,
+                               unsigned int *flush_flags, u16 ctx_no);
 int __must_check iommu_legacy_map(struct domain *d, dfn_t dfn, mfn_t mfn,
                                   unsigned long page_count,
                                   unsigned int flags);
@@ -173,11 +187,18 @@ int __must_check iommu_legacy_unmap(struct domain *d, dfn_t dfn,
                                     unsigned long page_count);
 
 int __must_check iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
-                                   unsigned int *flags);
+                                   unsigned int *flags, u16 ctx_no);
+int __must_check _iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
+                                    unsigned int *flags, u16 ctx_no);
 
 int __must_check iommu_iotlb_flush(struct domain *d, dfn_t dfn,
                                    unsigned long page_count,
-                                   unsigned int flush_flags);
+                                   unsigned int flush_flags,
+                                   u16 ctx_no);
+int __must_check _iommu_iotlb_flush(struct domain *d, dfn_t dfn,
+                                   unsigned long page_count,
+                                   unsigned int flush_flags,
+                                   u16 ctx_no);
 int __must_check iommu_iotlb_flush_all(struct domain *d,
                                        unsigned int flush_flags);
 
@@ -250,20 +271,31 @@ struct page_info;
  */
 typedef int iommu_grdm_t(xen_pfn_t start, xen_ulong_t nr, u32 id, void *ctxt);
 
+struct iommu_context;
+
 struct iommu_ops {
     unsigned long page_sizes;
     int (*init)(struct domain *d);
     void (*hwdom_init)(struct domain *d);
-    int (*quarantine_init)(device_t *dev, bool scratch_page);
-    int (*add_device)(uint8_t devfn, device_t *dev);
+    int (*context_init)(struct domain *d, struct iommu_context *ctx,
+                        u32 flags);
+    int (*context_teardown)(struct domain *d, struct iommu_context *ctx,
+                            u32 flags);
+    int (*attach)(struct domain *d, device_t *dev,
+                  struct iommu_context *ctx);
+    int (*detach)(struct domain *d, device_t *dev,
+                   struct iommu_context *prev_ctx);
+    int (*reattach)(struct domain *d, device_t *dev,
+                    struct iommu_context *prev_ctx,
+                    struct iommu_context *ctx);
+
     int (*enable_device)(device_t *dev);
-    int (*remove_device)(uint8_t devfn, device_t *dev);
-    int (*assign_device)(struct domain *d, uint8_t devfn, device_t *dev,
-                         uint32_t flag);
-    int (*reassign_device)(struct domain *s, struct domain *t,
-                           uint8_t devfn, device_t *dev);
 #ifdef CONFIG_HAS_PCI
     int (*get_device_group_id)(uint16_t seg, uint8_t bus, uint8_t devfn);
+    int (*add_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn,
+                     struct iommu_context *ctx);
+    int (*remove_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn,
+                    struct iommu_context *ctx);
 #endif /* HAS_PCI */
 
     void (*teardown)(struct domain *d);
@@ -274,12 +306,15 @@ struct iommu_ops {
      */
     int __must_check (*map_page)(struct domain *d, dfn_t dfn, mfn_t mfn,
                                  unsigned int flags,
-                                 unsigned int *flush_flags);
+                                 unsigned int *flush_flags,
+                                 struct iommu_context *ctx);
     int __must_check (*unmap_page)(struct domain *d, dfn_t dfn,
                                    unsigned int order,
-                                   unsigned int *flush_flags);
+                                   unsigned int *flush_flags,
+                                   struct iommu_context *ctx);
     int __must_check (*lookup_page)(struct domain *d, dfn_t dfn, mfn_t *mfn,
-                                    unsigned int *flags);
+                                    unsigned int *flags,
+                                    struct iommu_context *ctx);
 
 #ifdef CONFIG_X86
     int (*enable_x2apic)(void);
@@ -292,14 +327,15 @@ struct iommu_ops {
     int (*setup_hpet_msi)(struct msi_desc *msi_desc);
 
     void (*adjust_irq_affinities)(void);
-    void (*clear_root_pgtable)(struct domain *d);
+    void (*clear_root_pgtable)(struct domain *d, struct iommu_context *ctx);
     int (*update_ire_from_msi)(struct msi_desc *msi_desc, struct msi_msg *msg);
 #endif /* CONFIG_X86 */
 
     int __must_check (*suspend)(void);
     void (*resume)(void);
     void (*crash_shutdown)(void);
-    int __must_check (*iotlb_flush)(struct domain *d, dfn_t dfn,
+    int __must_check (*iotlb_flush)(struct domain *d,
+                                    struct iommu_context *ctx, dfn_t dfn,
                                     unsigned long page_count,
                                     unsigned int flush_flags);
     int (*get_reserved_device_memory)(iommu_grdm_t *func, void *ctxt);
@@ -343,11 +379,36 @@ extern int iommu_get_extra_reserved_device_memory(iommu_grdm_t *func,
 # define iommu_vcall iommu_call
 #endif
 
+struct iommu_context {
+    u16 id; /* Context id (0 means default context) */
+    struct list_head devices;
+
+    struct arch_iommu_context arch;
+
+    bool opaque; /* context can't be modified nor accessed (e.g HAP) */
+    bool dying; /* the context is tearing down */
+};
+
+struct iommu_context_list {
+    uint16_t count; /* Context count excluding default context */
+
+    /* if count > 0 */
+
+    uint64_t *bitmap; /* bitmap of context allocation */
+    struct iommu_context *map; /* Map of contexts */
+};
+
+
 struct domain_iommu {
+    spinlock_t lock; /* iommu lock */
+
 #ifdef CONFIG_HAS_PASSTHROUGH
     struct arch_iommu arch;
 #endif
 
+    struct iommu_context default_ctx;
+    struct iommu_context_list other_contexts;
+
     /* iommu_ops */
     const struct iommu_ops *platform_ops;
 
@@ -380,6 +441,7 @@ struct domain_iommu {
 #define dom_iommu(d)              (&(d)->iommu)
 #define iommu_set_feature(d, f)   set_bit(f, dom_iommu(d)->features)
 #define iommu_clear_feature(d, f) clear_bit(f, dom_iommu(d)->features)
+#define iommu_default_context(d) (&dom_iommu(d)->default_ctx)
 
 /* Are we using the domain P2M table as its IOMMU pagetable? */
 #define iommu_use_hap_pt(d)       (IS_ENABLED(CONFIG_HVM) && \
@@ -405,6 +467,8 @@ int __must_check iommu_suspend(void);
 void iommu_resume(void);
 void iommu_crash_shutdown(void);
 int iommu_get_reserved_device_memory(iommu_grdm_t *func, void *ctxt);
+
+int __init iommu_quarantine_init(void);
 int iommu_quarantine_dev_init(device_t *dev);
 
 #ifdef CONFIG_HAS_PCI
@@ -414,6 +478,28 @@ int iommu_do_pci_domctl(struct xen_domctl *domctl, struct domain *d,
 
 void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev);
 
+struct iommu_context *iommu_get_context(struct domain *d, u16 ctx_no);
+bool iommu_check_context(struct domain *d, u16 ctx_no);
+
+#define IOMMU_CONTEXT_INIT_default (1 << 0)
+#define IOMMU_CONTEXT_INIT_quarantine (1 << 1)
+int iommu_context_init(struct domain *d, struct iommu_context *ctx, u16 ctx_no, u32 flags);
+
+#define IOMMU_TEARDOWN_REATTACH_DEFAULT (1 << 0)
+#define IOMMU_TEARDOWN_PREEMPT (1 << 1)
+int iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags);
+
+int iommu_context_alloc(struct domain *d, u16 *ctx_no, u32 flags);
+int iommu_context_free(struct domain *d, u16 ctx_no, u32 flags);
+
+int iommu_reattach_context(struct domain *prev_dom, struct domain *next_dom,
+                           device_t *dev, u16 ctx_no);
+int iommu_attach_context(struct domain *d, device_t *dev, u16 ctx_no);
+int iommu_detach_context(struct domain *d, device_t *dev);
+
+int _iommu_attach_context(struct domain *d, device_t *dev, u16 ctx_no);
+int _iommu_detach_context(struct domain *d, device_t *dev);
+
 /*
  * The purpose of the iommu_dont_flush_iotlb optional cpu flag is to
  * avoid unecessary iotlb_flush in the low level IOMMU code.
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 63e49f0117..d6d4aaa6a5 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -97,6 +97,7 @@ struct pci_dev_info {
 struct pci_dev {
     struct list_head alldevs_list;
     struct list_head domain_list;
+    struct list_head context_list;
 
     struct list_head msi_list;
 
@@ -104,6 +105,8 @@ struct pci_dev {
 
     struct domain *domain;
 
+    uint16_t context; /* IOMMU context number of domain */
+
     const union {
         struct {
             uint8_t devfn;
-- 
2.45.2



Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 14:04:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 14:04:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757527.1166549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuPJ-0000lk-Hg; Thu, 11 Jul 2024 14:04:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757527.1166549; Thu, 11 Jul 2024 14: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 1sRuPJ-0000lX-E7; Thu, 11 Jul 2024 14:04:25 +0000
Received: by outflank-mailman (input) for mailman id 757527;
 Thu, 11 Jul 2024 14:04:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XHCp=OL=bounce.vates.tech=bounce-md_30504962.668fe664.v1-d61770e47a4c4aaf88d960323ac73369@srs-se1.protection.inumbo.net>)
 id 1sRuPH-0008Pw-TB
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 14:04:24 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 798547ed-3f8e-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 16:04:22 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WKc0j0CPMz6CQ50L
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 14:04:21 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d61770e47a4c4aaf88d960323ac73369; Thu, 11 Jul 2024 14:04: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: 798547ed-3f8e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720706661; x=1720967161;
	bh=Q/O9cr6CBssIHXO8r7oS6ys6nHh5XJshkIKzcRx9Qco=;
	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=n6n+bRXyB9jF3N0ATkmoRJXGXkdbMsG9wUlaJoIEI3yg+fg0B4mrAtcj/fVBPbJnv
	 olXfw2ce74/rMFfADLN6WnUruUx4YveoQUTQR+h/2W+GG5g4ObIccUCHXAMWGSrBZL
	 pcKNYE7blXtyjcpqXFPzKFUgzcDCTn2CKLlR3WpOnx0J5KmCKdY6o/MQw20GbXgjB9
	 XxOkHVJUFVSbJRW6zsD/usFIEk0+IZCUvqooHnAf5khcCayJ5UAVvKmzwO88UYvYye
	 tPKUaTGOyN94esWy0jh6WaReV0HOIrsIpOLHuCFX89HDcqVbsNRE7L2azMccnhqEao
	 Jjn/9S4qcylrg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720706661; x=1720967161; i=teddy.astie@vates.tech;
	bh=Q/O9cr6CBssIHXO8r7oS6ys6nHh5XJshkIKzcRx9Qco=;
	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=y0OZp01OneB9KSYYqlyke3Gp5E92/mdLfWpQZWmiZPv+1exzf/k2obruHMz92BEgq
	 ucam/IAsQCSQ5orXjqnypwsaNY47TgT687aaJIBFIys1WGpR2aaxOBIDakzaGNoKMa
	 hwA7xcelZuORON6YvObpyWnFQShN6pwH2QgmyxKJm6GaEWmGxtvqRqRrThJSljyu/Z
	 2h0COO2og5YYqfGSXEsLr/vFC6CNdFg5GKu1lsaTQb5XzJCuAW46Vkxxx89vrrb7Gl
	 +3clGLIdGrWznFiXWZoTWB3HobTYEzsnq1i7MKR+rHkoWXrgQbmypQKYkqioNYbQus
	 TBe58N76NNYrw==
From: Teddy Astie <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20XEN=20PATCH=20v3=205/5]=20xen/public:=20Introduce=20PV-IOMMU=20hypercall=20interface?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720706659900
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-Id: <f9ae663df38acc0d330b7582dfaa7ac199746aca.1720703078.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1720703078.git.teddy.astie@vates.tech>
References: <cover.1720703078.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.d61770e47a4c4aaf88d960323ac73369?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 14:04:20 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Introduce a new pv interface to manage the underlying IOMMU and manage contexts
and devices. This interface allows creation of new contexts from Dom0 and
addition of IOMMU mappings using guest PoV.

This interface doesn't allow creation of mapping to other domains.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
Changed in V2:
* formatting

Changed in V3:
* prevent IOMMU operations on dying contexts
---
 xen/common/Makefile           |   1 +
 xen/common/pv-iommu.c         | 328 ++++++++++++++++++++++++++++++++++
 xen/include/hypercall-defs.c  |   6 +
 xen/include/public/pv-iommu.h | 114 ++++++++++++
 xen/include/public/xen.h      |   1 +
 5 files changed, 450 insertions(+)
 create mode 100644 xen/common/pv-iommu.c
 create mode 100644 xen/include/public/pv-iommu.h

diff --git a/xen/common/Makefile b/xen/common/Makefile
index f12a474d40..52ada89888 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -58,6 +58,7 @@ obj-y += wait.o
 obj-bin-y += warning.init.o
 obj-$(CONFIG_XENOPROF) += xenoprof.o
 obj-y += xmalloc_tlsf.o
+obj-y += pv-iommu.o
 
 obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd earlycpio,$(n).init.o)
 
diff --git a/xen/common/pv-iommu.c b/xen/common/pv-iommu.c
new file mode 100644
index 0000000000..a94c0f1e1a
--- /dev/null
+++ b/xen/common/pv-iommu.c
@@ -0,0 +1,328 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * xen/common/pv_iommu.c
+ *
+ * PV-IOMMU hypercall interface.
+ */
+
+#include <xen/mm.h>
+#include <xen/lib.h>
+#include <xen/iommu.h>
+#include <xen/sched.h>
+#include <xen/pci.h>
+#include <xen/guest_access.h>
+#include <asm/p2m.h>
+#include <asm/event.h>
+#include <public/pv-iommu.h>
+
+#define PVIOMMU_PREFIX "[PV-IOMMU] "
+
+#define PVIOMMU_MAX_PAGES 256 /* Move to Kconfig ? */
+
+/* Allowed masks for each sub-operation */
+#define ALLOC_OP_FLAGS_MASK (0)
+#define FREE_OP_FLAGS_MASK (IOMMU_TEARDOWN_REATTACH_DEFAULT)
+
+static int get_paged_frame(struct domain *d, gfn_t gfn, mfn_t *mfn,
+                           struct page_info **page, int readonly)
+{
+    p2m_type_t p2mt;
+
+    *page = get_page_from_gfn(d, gfn_x(gfn), &p2mt,
+                             (readonly) ? P2M_ALLOC : P2M_UNSHARE);
+
+    if ( !(*page) )
+    {
+        *mfn = INVALID_MFN;
+        if ( p2m_is_shared(p2mt) )
+            return -EINVAL;
+        if ( p2m_is_paging(p2mt) )
+        {
+            p2m_mem_paging_populate(d, gfn);
+            return -EIO;
+        }
+
+        return -EPERM;
+    }
+
+    *mfn = page_to_mfn(*page);
+
+    return 0;
+}
+
+static int can_use_iommu_check(struct domain *d)
+{
+    if ( !iommu_enabled )
+    {
+        printk(PVIOMMU_PREFIX "IOMMU is not enabled\n");
+        return 0;
+    }
+
+    if ( !is_hardware_domain(d) )
+    {
+        printk(PVIOMMU_PREFIX "Non-hardware domain\n");
+        return 0;
+    }
+
+    if ( !is_iommu_enabled(d) )
+    {
+        printk(PVIOMMU_PREFIX "IOMMU disabled for this domain\n");
+        return 0;
+    }
+
+    return 1;
+}
+
+static long query_cap_op(struct pv_iommu_op *op, struct domain *d)
+{
+    op->cap.max_ctx_no = d->iommu.other_contexts.count;
+    op->cap.max_nr_pages = PVIOMMU_MAX_PAGES;
+    op->cap.max_iova_addr = (1LLU << 39) - 1; /* TODO: hardcoded 39-bits */
+
+    return 0;
+}
+
+static long alloc_context_op(struct pv_iommu_op *op, struct domain *d)
+{
+    u16 ctx_no = 0;
+    int status = 0;
+
+    status = iommu_context_alloc(d, &ctx_no, op->flags & ALLOC_OP_FLAGS_MASK);
+
+    if (status < 0)
+        return status;
+
+    printk("Created context %hu\n", ctx_no);
+
+    op->ctx_no = ctx_no;
+    return 0;
+}
+
+static long free_context_op(struct pv_iommu_op *op, struct domain *d)
+{
+    return iommu_context_free(d, op->ctx_no,
+                              IOMMU_TEARDOWN_PREEMPT | (op->flags & FREE_OP_FLAGS_MASK));
+}
+
+static long reattach_device_op(struct pv_iommu_op *op, struct domain *d)
+{
+    struct physdev_pci_device dev = op->reattach_device.dev;
+    device_t *pdev;
+
+    pdev = pci_get_pdev(d, PCI_SBDF(dev.seg, dev.bus, dev.devfn));
+
+    if ( !pdev )
+        return -ENOENT;
+
+    return iommu_reattach_context(d, d, pdev, op->ctx_no);
+}
+
+static long map_pages_op(struct pv_iommu_op *op, struct domain *d)
+{
+    int ret = 0, flush_ret;
+    struct page_info *page = NULL;
+    mfn_t mfn;
+    unsigned int flags;
+    unsigned int flush_flags = 0;
+    size_t i = 0;
+
+    if ( op->map_pages.nr_pages > PVIOMMU_MAX_PAGES )
+        return -E2BIG;
+
+    if ( !iommu_check_context(d, op->ctx_no) )
+        return -EINVAL;
+
+    //printk("Mapping gfn:%lx-%lx to dfn:%lx-%lx on %hu\n",
+    //       op->map_pages.gfn, op->map_pages.gfn + op->map_pages.nr_pages - 1,
+    //       op->map_pages.dfn, op->map_pages.dfn + op->map_pages.nr_pages - 1,
+    //       op->ctx_no);
+
+    flags = 0;
+
+    if ( op->flags & IOMMU_OP_readable )
+        flags |= IOMMUF_readable;
+
+    if ( op->flags & IOMMU_OP_writeable )
+        flags |= IOMMUF_writable;
+
+    spin_lock(&dom_iommu(d)->lock);
+
+    for (i = 0; i < op->map_pages.nr_pages; i++)
+    {
+        gfn_t gfn = _gfn(op->map_pages.gfn + i);
+        dfn_t dfn = _dfn(op->map_pages.dfn + i);
+
+        /* Lookup pages struct backing gfn */
+        ret = get_paged_frame(d, gfn, &mfn, &page, 0);
+
+        if ( ret )
+            break;
+
+        /* Check for conflict with existing mappings */
+        if ( !_iommu_lookup_page(d, dfn, &mfn, &flags, op->ctx_no) )
+        {
+            put_page(page);
+            ret = -EADDRINUSE;
+            break;
+        }
+
+        ret = _iommu_map(d, dfn, mfn, 1, flags, &flush_flags, op->ctx_no);
+
+        if ( ret )
+            break;
+    }
+
+    flush_ret = _iommu_iotlb_flush(d, _dfn(op->map_pages.dfn),
+                                   op->map_pages.nr_pages, flush_flags,
+                                   op->ctx_no);
+
+    spin_unlock(&dom_iommu(d)->lock);
+
+    op->map_pages.mapped = i;
+
+    if ( flush_ret )
+        printk("Flush operation failed (%d)\n", flush_ret);
+
+    return ret;
+}
+
+static long unmap_pages_op(struct pv_iommu_op *op, struct domain *d)
+{
+    mfn_t mfn;
+    int ret = 0, flush_ret;
+    unsigned int flags;
+    unsigned int flush_flags = 0;
+    size_t i = 0;
+
+    if ( op->unmap_pages.nr_pages > PVIOMMU_MAX_PAGES )
+        return -E2BIG;
+
+    if ( !iommu_check_context(d, op->ctx_no) )
+        return -EINVAL;
+
+    //printk("Unmapping dfn:%lx-%lx on %hu\n",
+    //       op->unmap_pages.dfn, op->unmap_pages.dfn + op->unmap_pages.nr_pages - 1,
+    //       op->ctx_no);
+
+    spin_lock(&dom_iommu(d)->lock);
+
+    for (i = 0; i < op->unmap_pages.nr_pages; i++)
+    {
+        dfn_t dfn = _dfn(op->unmap_pages.dfn + i);
+
+        /* Check if there is a valid mapping for this domain */
+        if ( _iommu_lookup_page(d, dfn, &mfn, &flags, op->ctx_no) ) {
+            ret = -ENOENT;
+            break;
+        }
+
+        ret = _iommu_unmap(d, dfn, 1, 0, &flush_flags, op->ctx_no);
+
+        if (ret)
+            break;
+
+        /* Decrement reference counter */
+        put_page(mfn_to_page(mfn));
+    }
+
+    flush_ret = _iommu_iotlb_flush(d, _dfn(op->unmap_pages.dfn),
+                                   op->unmap_pages.nr_pages, flush_flags,
+                                   op->ctx_no);
+
+    spin_unlock(&dom_iommu(d)->lock);
+
+    op->unmap_pages.unmapped = i;
+
+    if ( flush_ret )
+        printk("Flush operation failed (%d)\n", flush_ret);
+
+    return ret;
+}
+
+static long lookup_page_op(struct pv_iommu_op *op, struct domain *d)
+{
+    mfn_t mfn;
+    gfn_t gfn;
+    unsigned int flags = 0;
+
+    if ( !iommu_check_context(d, op->ctx_no) )
+        return -EINVAL;
+
+    /* Check if there is a valid BFN mapping for this domain */
+    if ( iommu_lookup_page(d, _dfn(op->lookup_page.dfn), &mfn, &flags, op->ctx_no) )
+        return -ENOENT;
+
+    gfn = mfn_to_gfn(d, mfn);
+    BUG_ON(gfn_eq(gfn, INVALID_GFN));
+
+    op->lookup_page.gfn = gfn_x(gfn);
+
+    return 0;
+}
+
+long do_iommu_sub_op(struct pv_iommu_op *op)
+{
+    struct domain *d = current->domain;
+
+    if ( !can_use_iommu_check(d) )
+        return -EPERM;
+
+    switch ( op->subop_id )
+    {
+        case 0:
+            return 0;
+
+        case IOMMUOP_query_capabilities:
+            return query_cap_op(op, d);
+
+        case IOMMUOP_alloc_context:
+            return alloc_context_op(op, d);
+
+        case IOMMUOP_free_context:
+            return free_context_op(op, d);
+
+        case IOMMUOP_reattach_device:
+            return reattach_device_op(op, d);
+
+        case IOMMUOP_map_pages:
+            return map_pages_op(op, d);
+
+        case IOMMUOP_unmap_pages:
+            return unmap_pages_op(op, d);
+
+        case IOMMUOP_lookup_page:
+            return lookup_page_op(op, d);
+
+        default:
+            return -EINVAL;
+    }
+}
+
+long do_iommu_op(XEN_GUEST_HANDLE_PARAM(void) arg)
+{
+    long ret = 0;
+    struct pv_iommu_op op;
+
+    if ( unlikely(copy_from_guest(&op, arg, 1)) )
+        return -EFAULT;
+
+    ret = do_iommu_sub_op(&op);
+
+    if ( ret == -ERESTART )
+        return hypercall_create_continuation(__HYPERVISOR_iommu_op, "h", arg);
+
+    if ( unlikely(copy_to_guest(arg, &op, 1)) )
+        return -EFAULT;
+
+    return ret;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 47c093acc8..4ba4480867 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -209,6 +209,9 @@ hypfs_op(unsigned int cmd, const char *arg1, unsigned long arg2, void *arg3, uns
 #ifdef CONFIG_X86
 xenpmu_op(unsigned int op, xen_pmu_params_t *arg)
 #endif
+#ifdef CONFIG_HAS_PASSTHROUGH
+iommu_op(void *arg)
+#endif
 
 #ifdef CONFIG_PV
 caller: pv64
@@ -295,5 +298,8 @@ mca                                do       do       -        -        -
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 paging_domctl_cont                 do       do       do       do       -
 #endif
+#ifdef CONFIG_HAS_PASSTHROUGH
+iommu_op                           do       do       do       do       -
+#endif
 
 #endif /* !CPPCHECK */
diff --git a/xen/include/public/pv-iommu.h b/xen/include/public/pv-iommu.h
new file mode 100644
index 0000000000..45f9c44eb1
--- /dev/null
+++ b/xen/include/public/pv-iommu.h
@@ -0,0 +1,114 @@
+/* SPDX-License-Identifier: MIT */
+/******************************************************************************
+ * pv-iommu.h
+ *
+ * Paravirtualized IOMMU driver interface.
+ *
+ * Copyright (c) 2024 Teddy Astie <teddy.astie@vates.tech>
+ */
+
+#ifndef __XEN_PUBLIC_PV_IOMMU_H__
+#define __XEN_PUBLIC_PV_IOMMU_H__
+
+#include "xen.h"
+#include "physdev.h"
+
+#define IOMMU_DEFAULT_CONTEXT (0)
+
+/**
+ * Query PV-IOMMU capabilities for this domain.
+ */
+#define IOMMUOP_query_capabilities    1
+
+/**
+ * Allocate an IOMMU context, the new context handle will be written to ctx_no.
+ */
+#define IOMMUOP_alloc_context         2
+
+/**
+ * Destroy a IOMMU context.
+ * All devices attached to this context are reattached to default context.
+ *
+ * The default context can't be destroyed (0).
+ */
+#define IOMMUOP_free_context          3
+
+/**
+ * Reattach the device to IOMMU context.
+ */
+#define IOMMUOP_reattach_device       4
+
+#define IOMMUOP_map_pages             5
+#define IOMMUOP_unmap_pages           6
+
+/**
+ * Get the GFN associated to a specific DFN.
+ */
+#define IOMMUOP_lookup_page           7
+
+struct pv_iommu_op {
+    uint16_t subop_id;
+    uint16_t ctx_no;
+
+/**
+ * Create a context that is cloned from default.
+ * The new context will be populated with 1:1 mappings covering the entire guest memory.
+ */
+#define IOMMU_CREATE_clone (1 << 0)
+
+#define IOMMU_OP_readable (1 << 0)
+#define IOMMU_OP_writeable (1 << 1)
+    uint32_t flags;
+
+    union {
+        struct {
+            uint64_t gfn;
+            uint64_t dfn;
+            /* Number of pages to map */
+            uint32_t nr_pages;
+            /* Number of pages actually mapped after sub-op */
+            uint32_t mapped;
+        } map_pages;
+
+        struct {
+            uint64_t dfn;
+            /* Number of pages to unmap */
+            uint32_t nr_pages;
+            /* Number of pages actually unmapped after sub-op */
+            uint32_t unmapped;
+        } unmap_pages;
+
+        struct {
+            struct physdev_pci_device dev;
+        } reattach_device;
+
+        struct {
+            uint64_t gfn;
+            uint64_t dfn;
+        } lookup_page;
+
+        struct {
+            /* Maximum number of IOMMU context this domain can use. */
+            uint16_t max_ctx_no;
+            /* Maximum number of pages that can be modified in a single map/unmap operation. */
+            uint32_t max_nr_pages;
+            /* Maximum device address (iova) that the guest can use for mappings. */
+            uint64_t max_iova_addr;
+        } cap;
+    };
+};
+
+typedef struct pv_iommu_op pv_iommu_op_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_op_t);
+
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
\ No newline at end of file
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index b47d48d0e2..28ab815ebc 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -118,6 +118,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
 #define __HYPERVISOR_xenpmu_op            40
 #define __HYPERVISOR_dm_op                41
 #define __HYPERVISOR_hypfs_op             42
+#define __HYPERVISOR_iommu_op             43
 
 /* Architecture-specific hypercall definitions. */
 #define __HYPERVISOR_arch_0               48
-- 
2.45.2



Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 14:04:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 14:04:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757528.1166559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuPK-00011r-SF; Thu, 11 Jul 2024 14:04:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757528.1166559; Thu, 11 Jul 2024 14:04: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 1sRuPK-00011d-OS; Thu, 11 Jul 2024 14:04:26 +0000
Received: by outflank-mailman (input) for mailman id 757528;
 Thu, 11 Jul 2024 14: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=jHju=OL=bounce.vates.tech=bounce-md_30504962.668fe664.v1-d1b714ec3dc1435e84309d880fd48122@srs-se1.protection.inumbo.net>)
 id 1sRuPI-0008BT-DN
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 14:04:24 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 786ebbf3-3f8e-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 16:04:21 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WKc0h5gMCz6CQ50k
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 14:04:20 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d1b714ec3dc1435e84309d880fd48122; Thu, 11 Jul 2024 14:04: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: 786ebbf3-3f8e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720706660; x=1720967160;
	bh=RkXo8XFPo/hSxWeASXg1XEhhD6vFRNBNqO/KRtme2fo=;
	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=0/CC29Mk4U4rpH8mMkvPINYAv3e1xTZLF71JYD4GQA3KCnoPj7dwvv/JQAqzr1wBR
	 pqlxCIym300ygH0ngl0CW0ExpjM7mVo8FfQOwuyY8lwj5wlsGClmR42HpFzPJ9xsNr
	 70HX3HDI1pLyF/Aw6y1yT/qTOuqtrJYStxybjPg9s8h2IjjG90ka7taINkzxX9oGvZ
	 11pkFEHkAzufo6dyP9syEb6RCHmYFoQj+gDF2NSVnK2djYeG8ROLD+ztlIs5mqBE8Y
	 pw/42MaeUfCZwsgzTcBuIlkCIvkKZT+HyxHQPFo2zBsAEYfD++52VaxBOfIHjMGrvh
	 85EI40x0hNLNg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720706660; x=1720967160; i=teddy.astie@vates.tech;
	bh=RkXo8XFPo/hSxWeASXg1XEhhD6vFRNBNqO/KRtme2fo=;
	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=HeqYyoHxiWfP4KlHBoP84U+fBSt/NMH/p7VzC9e0FmAkA4n2GEVJCgiDIc0OYByQU
	 3hNJmUXfvfSFLUkw5ebpGzl/mdf8+DadUuAj+32hHpcJiO2i17ZnTHzrQpFHFelPPQ
	 mFXjxaW04/Fziqe4Jq6/v7Lvy7xAiO1AX1Nu6R3GWLrI4LrTD4I9ozvUbiwfXTSdpG
	 uXyEiefxdtDUhb1EEyRr2Nej1otgtzxnRp97Y7V0VrwkQ+ibuqWpL8y+k2/z71wD0s
	 p9Il41zXl6q7JK5hrylK0BUagRJ7sHBmCgu3vUdSMptlOxPT8onD7CpKe/m+ZdaTml
	 mG2DH9CP4/muQ==
From: Teddy Astie <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20XEN=20PATCH=20v3=204/5]=20VT-d:=20Port=20IOMMU=20driver=20to=20new=20subsystem?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720706658718
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>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-Id: <1a2a36e49124828e79a50c1ce48cedff75788e0c.1720703078.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1720703078.git.teddy.astie@vates.tech>
References: <cover.1720703078.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.d1b714ec3dc1435e84309d880fd48122?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 14:04:20 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Port the driver with guidances specified in iommu-contexts.md.

Add a arena-based allocator for allocating a fixed chunk of memory and
split it into 4k pages for use by the IOMMU contexts. This chunk size
is configurable with X86_ARENA_ORDER and dom0-iommu=arena-order=N.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
Changed in V2:
* cleanup some unneeded includes
* s/dettach/detach/
* don't dump IOMMU context of non-iommu domains (fix crash with DomUs)
---
 xen/arch/x86/include/asm/arena.h     |   54 +
 xen/arch/x86/include/asm/iommu.h     |   44 +-
 xen/arch/x86/include/asm/pci.h       |   17 -
 xen/drivers/passthrough/Kconfig      |   14 +
 xen/drivers/passthrough/vtd/Makefile |    2 +-
 xen/drivers/passthrough/vtd/extern.h |   14 +-
 xen/drivers/passthrough/vtd/iommu.c  | 1557 +++++++++++---------------
 xen/drivers/passthrough/vtd/quirks.c |   21 +-
 xen/drivers/passthrough/x86/Makefile |    1 +
 xen/drivers/passthrough/x86/arena.c  |  157 +++
 xen/drivers/passthrough/x86/iommu.c  |  104 +-
 11 files changed, 981 insertions(+), 1004 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/arena.h
 create mode 100644 xen/drivers/passthrough/x86/arena.c

diff --git a/xen/arch/x86/include/asm/arena.h b/xen/arch/x86/include/asm/arena.h
new file mode 100644
index 0000000000..7555b100e0
--- /dev/null
+++ b/xen/arch/x86/include/asm/arena.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/**
+ * Simple arena-based page allocator.
+ */
+
+#ifndef __XEN_IOMMU_ARENA_H__
+#define __XEN_IOMMU_ARENA_H__
+
+#include "xen/domain.h"
+#include "xen/atomic.h"
+#include "xen/mm-frame.h"
+#include "xen/types.h"
+
+/**
+ * struct page_arena: Page arena structure
+ */
+struct iommu_arena {
+    /* mfn of the first page of the memory region */
+    mfn_t region_start;
+    /* bitmap of allocations */
+    unsigned long *map;
+
+    /* Order of the arena */
+    unsigned int order;
+
+    /* Used page count */
+    atomic_t used_pages;
+};
+
+/**
+ * Initialize a arena using domheap allocator.
+ * @param [out] arena Arena to allocate
+ * @param [in] domain domain that has ownership of arena pages
+ * @param [in] order order of the arena (power of two of the size)
+ * @param [in] memflags Flags for domheap_alloc_pages()
+ * @return -ENOMEM on arena allocation error, 0 otherwise
+ */
+int iommu_arena_initialize(struct iommu_arena *arena, struct domain *domain,
+                           unsigned int order, unsigned int memflags);
+
+/**
+ * Teardown a arena.
+ * @param [out] arena arena to allocate
+ * @param [in] check check for existing allocations
+ * @return -EBUSY if check is specified
+ */
+int iommu_arena_teardown(struct iommu_arena *arena, bool check);
+
+struct page_info *iommu_arena_allocate_page(struct iommu_arena *arena);
+bool iommu_arena_free_page(struct iommu_arena *arena, struct page_info *page);
+
+#define iommu_arena_size(arena) (1LLU << (arena)->order)
+
+#endif
diff --git a/xen/arch/x86/include/asm/iommu.h b/xen/arch/x86/include/asm/iommu.h
index 8dc464fbd3..8fb402f1ee 100644
--- a/xen/arch/x86/include/asm/iommu.h
+++ b/xen/arch/x86/include/asm/iommu.h
@@ -2,14 +2,18 @@
 #ifndef __ARCH_X86_IOMMU_H__
 #define __ARCH_X86_IOMMU_H__
 
+#include <xen/bitmap.h>
 #include <xen/errno.h>
 #include <xen/list.h>
 #include <xen/mem_access.h>
 #include <xen/spinlock.h>
+#include <xen/stdbool.h>
 #include <asm/apicdef.h>
 #include <asm/cache.h>
 #include <asm/processor.h>
 
+#include "arena.h"
+
 #define DEFAULT_DOMAIN_ADDRESS_WIDTH 48
 
 struct g2m_ioport {
@@ -31,27 +35,48 @@ typedef uint64_t daddr_t;
 #define dfn_to_daddr(dfn) __dfn_to_daddr(dfn_x(dfn))
 #define daddr_to_dfn(daddr) _dfn(__daddr_to_dfn(daddr))
 
-struct arch_iommu
+struct arch_iommu_context
 {
-    spinlock_t mapping_lock; /* io page table lock */
     struct {
         struct page_list_head list;
         spinlock_t lock;
     } pgtables;
 
-    struct list_head identity_maps;
+    /* Queue for freeing pages */
+    struct page_list_head free_queue;
 
     union {
         /* Intel VT-d */
         struct {
             uint64_t pgd_maddr; /* io page directory machine address */
+            domid_t *didmap; /* per-iommu DID */
+            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the context uses */
+            bool duplicated_rmrr; /* tag indicating that duplicated rmrr mappings are mapped */
+            uint32_t superpage_progress; /* superpage progress during teardown */
+        } vtd;
+        /* AMD IOMMU */
+        struct {
+            struct page_info *root_table;
+        } amd;
+    };
+};
+
+struct arch_iommu
+{
+    spinlock_t lock; /* io page table lock */
+    struct list_head identity_maps;
+
+    struct iommu_arena pt_arena; /* allocator for non-default contexts */
+
+    union {
+        /* Intel VT-d */
+        struct {
             unsigned int agaw; /* adjusted guest address width, 0 is level 2 30-bit */
-            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the domain uses */
         } vtd;
         /* AMD IOMMU */
         struct {
             unsigned int paging_mode;
-            struct page_info *root_table;
+            struct guest_iommu *g_iommu;
         } amd;
     };
 };
@@ -128,14 +153,19 @@ unsigned long *iommu_init_domid(domid_t reserve);
 domid_t iommu_alloc_domid(unsigned long *map);
 void iommu_free_domid(domid_t domid, unsigned long *map);
 
-int __must_check iommu_free_pgtables(struct domain *d);
+struct iommu_context;
+int __must_check iommu_free_pgtables(struct domain *d, struct iommu_context *ctx);
 struct domain_iommu;
 struct page_info *__must_check iommu_alloc_pgtable(struct domain_iommu *hd,
+                                                   struct iommu_context *ctx,
                                                    uint64_t contig_mask);
-void iommu_queue_free_pgtable(struct domain_iommu *hd, struct page_info *pg);
+void iommu_queue_free_pgtable(struct iommu_context *ctx, struct page_info *pg);
 
 /* Check [start, end] unity map range for correctness. */
 bool iommu_unity_region_ok(const char *prefix, mfn_t start, mfn_t end);
+int arch_iommu_context_init(struct domain *d, struct iommu_context *ctx, u32 flags);
+int arch_iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags);
+int arch_iommu_flush_free_queue(struct domain *d, struct iommu_context *ctx);
 
 #endif /* !__ARCH_X86_IOMMU_H__ */
 /*
diff --git a/xen/arch/x86/include/asm/pci.h b/xen/arch/x86/include/asm/pci.h
index fd5480d67d..214c1a0948 100644
--- a/xen/arch/x86/include/asm/pci.h
+++ b/xen/arch/x86/include/asm/pci.h
@@ -15,23 +15,6 @@
 
 struct arch_pci_dev {
     vmask_t used_vectors;
-    /*
-     * These fields are (de)initialized under pcidevs-lock. Other uses of
-     * them don't race (de)initialization and hence don't strictly need any
-     * locking.
-     */
-    union {
-        /* Subset of struct arch_iommu's fields, to be used in dom_io. */
-        struct {
-            uint64_t pgd_maddr;
-        } vtd;
-        struct {
-            struct page_info *root_table;
-        } amd;
-    };
-    domid_t pseudo_domid;
-    mfn_t leaf_mfn;
-    struct page_list_head pgtables_list;
 };
 
 int pci_conf_write_intercept(unsigned int seg, unsigned int bdf,
diff --git a/xen/drivers/passthrough/Kconfig b/xen/drivers/passthrough/Kconfig
index 78edd80536..1b9f4c8b9c 100644
--- a/xen/drivers/passthrough/Kconfig
+++ b/xen/drivers/passthrough/Kconfig
@@ -91,3 +91,17 @@ choice
 	config IOMMU_QUARANTINE_SCRATCH_PAGE
 		bool "scratch page"
 endchoice
+
+config X86_ARENA_ORDER
+	int "IOMMU arena order" if EXPERT
+	depends on X86
+	default 9
+	help
+	  Specifies the default size of the Dom0 IOMMU arena allocator.
+	  Use 2^order pages for arena. If your system has lots of PCI devices or if you
+	  encounter IOMMU errors in Dom0, try increasing this value.
+	  This value can be overriden with command-line dom0-iommu=arena-order=N.
+
+	  [7] 128 pages, 512 KB arena
+	  [9] 512 pages, 2 MB arena (default)
+	  [11] 2048 pages, 8 MB arena
\ No newline at end of file
diff --git a/xen/drivers/passthrough/vtd/Makefile b/xen/drivers/passthrough/vtd/Makefile
index fde7555fac..81e1f46179 100644
--- a/xen/drivers/passthrough/vtd/Makefile
+++ b/xen/drivers/passthrough/vtd/Makefile
@@ -5,4 +5,4 @@ obj-y += dmar.o
 obj-y += utils.o
 obj-y += qinval.o
 obj-y += intremap.o
-obj-y += quirks.o
+obj-y += quirks.o
\ No newline at end of file
diff --git a/xen/drivers/passthrough/vtd/extern.h b/xen/drivers/passthrough/vtd/extern.h
index 667590ee52..69f808a44a 100644
--- a/xen/drivers/passthrough/vtd/extern.h
+++ b/xen/drivers/passthrough/vtd/extern.h
@@ -80,12 +80,10 @@ uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node);
 void free_pgtable_maddr(u64 maddr);
 void *map_vtd_domain_page(u64 maddr);
 void unmap_vtd_domain_page(const void *va);
-int domain_context_mapping_one(struct domain *domain, struct vtd_iommu *iommu,
-                               uint8_t bus, uint8_t devfn,
-                               const struct pci_dev *pdev, domid_t domid,
-                               paddr_t pgd_maddr, unsigned int mode);
-int domain_context_unmap_one(struct domain *domain, struct vtd_iommu *iommu,
-                             uint8_t bus, uint8_t devfn);
+int apply_context_single(struct domain *domain, struct iommu_context *ctx,
+                         struct vtd_iommu *iommu, uint8_t bus, uint8_t devfn);
+int unapply_context_single(struct domain *domain, struct iommu_context *ctx,
+                           struct vtd_iommu *iommu, uint8_t bus, uint8_t devfn);
 int cf_check intel_iommu_get_reserved_device_memory(
     iommu_grdm_t *func, void *ctxt);
 
@@ -106,8 +104,8 @@ void platform_quirks_init(void);
 void vtd_ops_preamble_quirk(struct vtd_iommu *iommu);
 void vtd_ops_postamble_quirk(struct vtd_iommu *iommu);
 int __must_check me_wifi_quirk(struct domain *domain, uint8_t bus,
-                               uint8_t devfn, domid_t domid, paddr_t pgd_maddr,
-                               unsigned int mode);
+                               uint8_t devfn, domid_t domid,
+                               unsigned int mode, struct iommu_context *ctx);
 void pci_vtd_quirk(const struct pci_dev *);
 void quirk_iommu_caps(struct vtd_iommu *iommu);
 
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index e13be244c1..3466c5efd9 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -30,12 +30,20 @@
 #include <xen/time.h>
 #include <xen/pci.h>
 #include <xen/pci_regs.h>
+#include <xen/sched.h>
+#include <xen/event.h>
 #include <xen/keyhandler.h>
+#include <xen/list.h>
+#include <xen/spinlock.h>
+#include <xen/iommu.h>
+#include <xen/lib.h>
 #include <asm/msi.h>
-#include <asm/nops.h>
 #include <asm/irq.h>
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/p2m.h>
+#include <asm/bitops.h>
+#include <asm/iommu.h>
+#include <asm/page.h>
 #include <mach_apic.h>
 #include "iommu.h"
 #include "dmar.h"
@@ -46,14 +54,6 @@
 #define CONTIG_MASK DMA_PTE_CONTIG_MASK
 #include <asm/pt-contig-markers.h>
 
-/* dom_io is used as a sentinel for quarantined devices */
-#define QUARANTINE_SKIP(d, pgd_maddr) ((d) == dom_io && !(pgd_maddr))
-#define DEVICE_DOMID(d, pdev) ((d) != dom_io ? (d)->domain_id \
-                                             : (pdev)->arch.pseudo_domid)
-#define DEVICE_PGTABLE(d, pdev) ((d) != dom_io \
-                                 ? dom_iommu(d)->arch.vtd.pgd_maddr \
-                                 : (pdev)->arch.vtd.pgd_maddr)
-
 bool __read_mostly iommu_igfx = true;
 bool __read_mostly iommu_qinval = true;
 #ifndef iommu_snoop
@@ -206,26 +206,14 @@ static bool any_pdev_behind_iommu(const struct domain *d,
  * clear iommu in iommu_bitmap and clear domain_id in domid_bitmap.
  */
 static void check_cleanup_domid_map(const struct domain *d,
+                                    const struct iommu_context *ctx,
                                     const struct pci_dev *exclude,
                                     struct vtd_iommu *iommu)
 {
-    bool found;
-
-    if ( d == dom_io )
-        return;
-
-    found = any_pdev_behind_iommu(d, exclude, iommu);
-    /*
-     * Hidden devices are associated with DomXEN but usable by the hardware
-     * domain. Hence they need considering here as well.
-     */
-    if ( !found && is_hardware_domain(d) )
-        found = any_pdev_behind_iommu(dom_xen, exclude, iommu);
-
-    if ( !found )
+    if ( !any_pdev_behind_iommu(d, exclude, iommu) )
     {
-        clear_bit(iommu->index, dom_iommu(d)->arch.vtd.iommu_bitmap);
-        cleanup_domid_map(d->domain_id, iommu);
+        clear_bit(iommu->index, ctx->arch.vtd.iommu_bitmap);
+        cleanup_domid_map(ctx->arch.vtd.didmap[iommu->index], iommu);
     }
 }
 
@@ -312,8 +300,9 @@ static u64 bus_to_context_maddr(struct vtd_iommu *iommu, u8 bus)
  *   PTE for the requested address,
  * - for target == 0 the full PTE contents below PADDR_BITS limit.
  */
-static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
-                                       unsigned int target,
+static uint64_t addr_to_dma_page_maddr(struct domain *domain,
+                                       struct iommu_context *ctx,
+                                       daddr_t addr, unsigned int target,
                                        unsigned int *flush_flags, bool alloc)
 {
     struct domain_iommu *hd = dom_iommu(domain);
@@ -323,10 +312,9 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
     u64 pte_maddr = 0;
 
     addr &= (((u64)1) << addr_width) - 1;
-    ASSERT(spin_is_locked(&hd->arch.mapping_lock));
     ASSERT(target || !alloc);
 
-    if ( !hd->arch.vtd.pgd_maddr )
+    if ( !ctx->arch.vtd.pgd_maddr )
     {
         struct page_info *pg;
 
@@ -334,13 +322,13 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
             goto out;
 
         pte_maddr = level;
-        if ( !(pg = iommu_alloc_pgtable(hd, 0)) )
+        if ( !(pg = iommu_alloc_pgtable(hd, ctx, 0)) )
             goto out;
 
-        hd->arch.vtd.pgd_maddr = page_to_maddr(pg);
+        ctx->arch.vtd.pgd_maddr = page_to_maddr(pg);
     }
 
-    pte_maddr = hd->arch.vtd.pgd_maddr;
+    pte_maddr = ctx->arch.vtd.pgd_maddr;
     parent = map_vtd_domain_page(pte_maddr);
     while ( level > target )
     {
@@ -376,7 +364,7 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
             }
 
             pte_maddr = level - 1;
-            pg = iommu_alloc_pgtable(hd, DMA_PTE_CONTIG_MASK);
+            pg = iommu_alloc_pgtable(hd, ctx, DMA_PTE_CONTIG_MASK);
             if ( !pg )
                 break;
 
@@ -428,38 +416,25 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
     return pte_maddr;
 }
 
-static paddr_t domain_pgd_maddr(struct domain *d, paddr_t pgd_maddr,
-                                unsigned int nr_pt_levels)
+static paddr_t get_context_pgd(struct domain *d, struct iommu_context *ctx,
+                               unsigned int nr_pt_levels)
 {
-    struct domain_iommu *hd = dom_iommu(d);
     unsigned int agaw;
+    paddr_t pgd_maddr = ctx->arch.vtd.pgd_maddr;
 
-    ASSERT(spin_is_locked(&hd->arch.mapping_lock));
-
-    if ( pgd_maddr )
-        /* nothing */;
-    else if ( iommu_use_hap_pt(d) )
+    if ( !ctx->arch.vtd.pgd_maddr )
     {
-        pagetable_t pgt = p2m_get_pagetable(p2m_get_hostp2m(d));
+        /*
+         * Ensure we have pagetables allocated down to the smallest
+         * level the loop below may need to run to.
+         */
+        addr_to_dma_page_maddr(d, ctx, 0, min_pt_levels, NULL, true);
 
-        pgd_maddr = pagetable_get_paddr(pgt);
+        if ( !ctx->arch.vtd.pgd_maddr )
+            return 0;
     }
-    else
-    {
-        if ( !hd->arch.vtd.pgd_maddr )
-        {
-            /*
-             * Ensure we have pagetables allocated down to the smallest
-             * level the loop below may need to run to.
-             */
-            addr_to_dma_page_maddr(d, 0, min_pt_levels, NULL, true);
-
-            if ( !hd->arch.vtd.pgd_maddr )
-                return 0;
-        }
 
-        pgd_maddr = hd->arch.vtd.pgd_maddr;
-    }
+    pgd_maddr = ctx->arch.vtd.pgd_maddr;
 
     /* Skip top level(s) of page tables for less-than-maximum level DRHDs. */
     for ( agaw = level_to_agaw(4);
@@ -727,28 +702,18 @@ static int __must_check iommu_flush_all(void)
     return rc;
 }
 
-static int __must_check cf_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
+static int __must_check cf_check iommu_flush_iotlb(struct domain *d,
+                                                   struct iommu_context *ctx,
+                                                   dfn_t dfn,
                                                    unsigned long page_count,
                                                    unsigned int flush_flags)
 {
-    struct domain_iommu *hd = dom_iommu(d);
     struct acpi_drhd_unit *drhd;
     struct vtd_iommu *iommu;
     bool flush_dev_iotlb;
     int iommu_domid;
     int ret = 0;
 
-    if ( flush_flags & IOMMU_FLUSHF_all )
-    {
-        dfn = INVALID_DFN;
-        page_count = 0;
-    }
-    else
-    {
-        ASSERT(page_count && !dfn_eq(dfn, INVALID_DFN));
-        ASSERT(flush_flags);
-    }
-
     /*
      * No need pcideves_lock here because we have flush
      * when assign/deassign device
@@ -759,13 +724,20 @@ static int __must_check cf_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
 
         iommu = drhd->iommu;
 
-        if ( !test_bit(iommu->index, hd->arch.vtd.iommu_bitmap) )
-            continue;
+        if ( ctx )
+        {
+            if ( !test_bit(iommu->index, ctx->arch.vtd.iommu_bitmap) )
+                continue;
+
+            iommu_domid = get_iommu_did(ctx->arch.vtd.didmap[iommu->index], iommu, true);
+
+            if ( iommu_domid == -1 )
+                continue;
+        }
+        else
+            iommu_domid = 0;
 
         flush_dev_iotlb = !!find_ats_dev_drhd(iommu);
-        iommu_domid = get_iommu_did(d->domain_id, iommu, !d->is_dying);
-        if ( iommu_domid == -1 )
-            continue;
 
         if ( !page_count || (page_count & (page_count - 1)) ||
              dfn_eq(dfn, INVALID_DFN) || !IS_ALIGNED(dfn_x(dfn), page_count) )
@@ -784,10 +756,13 @@ static int __must_check cf_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
             ret = rc;
     }
 
+    if ( !ret && ctx )
+        arch_iommu_flush_free_queue(d, ctx);
+
     return ret;
 }
 
-static void queue_free_pt(struct domain_iommu *hd, mfn_t mfn, unsigned int level)
+static void queue_free_pt(struct iommu_context *ctx, mfn_t mfn, unsigned int level)
 {
     if ( level > 1 )
     {
@@ -796,13 +771,13 @@ static void queue_free_pt(struct domain_iommu *hd, mfn_t mfn, unsigned int level
 
         for ( i = 0; i < PTE_NUM; ++i )
             if ( dma_pte_present(pt[i]) && !dma_pte_superpage(pt[i]) )
-                queue_free_pt(hd, maddr_to_mfn(dma_pte_addr(pt[i])),
+                queue_free_pt(ctx, maddr_to_mfn(dma_pte_addr(pt[i])),
                               level - 1);
 
         unmap_domain_page(pt);
     }
 
-    iommu_queue_free_pgtable(hd, mfn_to_page(mfn));
+    iommu_queue_free_pgtable(ctx, mfn_to_page(mfn));
 }
 
 static int iommu_set_root_entry(struct vtd_iommu *iommu)
@@ -1433,11 +1408,6 @@ static int cf_check intel_iommu_domain_init(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
 
-    hd->arch.vtd.iommu_bitmap = xzalloc_array(unsigned long,
-                                              BITS_TO_LONGS(nr_iommus));
-    if ( !hd->arch.vtd.iommu_bitmap )
-        return -ENOMEM;
-
     hd->arch.vtd.agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
 
     return 0;
@@ -1465,32 +1435,22 @@ static void __hwdom_init cf_check intel_iommu_hwdom_init(struct domain *d)
     }
 }
 
-/*
- * This function returns
- * - a negative errno value upon error,
- * - zero upon success when previously the entry was non-present, or this isn't
- *   the "main" request for a device (pdev == NULL), or for no-op quarantining
- *   assignments,
- * - positive (one) upon success when previously the entry was present and this
- *   is the "main" request for a device (pdev != NULL).
+/**
+ * Apply a context on a device.
+ * @param domain Domain of the context
+ * @param iommu IOMMU hardware to use (must match device iommu)
+ * @param ctx IOMMU context to apply
+ * @param devfn PCI device function (may be different to pdev)
  */
-int domain_context_mapping_one(
-    struct domain *domain,
-    struct vtd_iommu *iommu,
-    uint8_t bus, uint8_t devfn, const struct pci_dev *pdev,
-    domid_t domid, paddr_t pgd_maddr, unsigned int mode)
+int apply_context_single(struct domain *domain, struct iommu_context *ctx,
+                         struct vtd_iommu *iommu, uint8_t bus, uint8_t devfn)
 {
-    struct domain_iommu *hd = dom_iommu(domain);
     struct context_entry *context, *context_entries, lctxt;
-    __uint128_t old;
+    __uint128_t res, old;
     uint64_t maddr;
-    uint16_t seg = iommu->drhd->segment, prev_did = 0;
-    struct domain *prev_dom = NULL;
+    uint16_t seg = iommu->drhd->segment, prev_did = 0, did;
     int rc, ret;
-    bool flush_dev_iotlb;
-
-    if ( QUARANTINE_SKIP(domain, pgd_maddr) )
-        return 0;
+    bool flush_dev_iotlb, overwrite_entry = false;
 
     ASSERT(pcidevs_locked());
     spin_lock(&iommu->lock);
@@ -1499,28 +1459,15 @@ int domain_context_mapping_one(
     context = &context_entries[devfn];
     old = (lctxt = *context).full;
 
-    if ( context_present(lctxt) )
-    {
-        domid_t domid;
+    did = ctx->arch.vtd.didmap[iommu->index];
 
+    if ( context_present(*context) )
+    {
         prev_did = context_domain_id(lctxt);
-        domid = did_to_domain_id(iommu, prev_did);
-        if ( domid < DOMID_FIRST_RESERVED )
-            prev_dom = rcu_lock_domain_by_id(domid);
-        else if ( pdev ? domid == pdev->arch.pseudo_domid : domid > DOMID_MASK )
-            prev_dom = rcu_lock_domain(dom_io);
-        if ( !prev_dom )
-        {
-            spin_unlock(&iommu->lock);
-            unmap_vtd_domain_page(context_entries);
-            dprintk(XENLOG_DEBUG VTDPREFIX,
-                    "no domain for did %u (nr_dom %u)\n",
-                    prev_did, cap_ndoms(iommu->cap));
-            return -ESRCH;
-        }
+        overwrite_entry = true;
     }
 
-    if ( iommu_hwdom_passthrough && is_hardware_domain(domain) )
+    if ( iommu_hwdom_passthrough && is_hardware_domain(domain) && !ctx->id )
     {
         context_set_translation_type(lctxt, CONTEXT_TT_PASS_THRU);
     }
@@ -1528,16 +1475,10 @@ int domain_context_mapping_one(
     {
         paddr_t root;
 
-        spin_lock(&hd->arch.mapping_lock);
-
-        root = domain_pgd_maddr(domain, pgd_maddr, iommu->nr_pt_levels);
+        root = get_context_pgd(domain, ctx, iommu->nr_pt_levels);
         if ( !root )
         {
-            spin_unlock(&hd->arch.mapping_lock);
-            spin_unlock(&iommu->lock);
             unmap_vtd_domain_page(context_entries);
-            if ( prev_dom )
-                rcu_unlock_domain(prev_dom);
             return -ENOMEM;
         }
 
@@ -1546,98 +1487,39 @@ int domain_context_mapping_one(
             context_set_translation_type(lctxt, CONTEXT_TT_DEV_IOTLB);
         else
             context_set_translation_type(lctxt, CONTEXT_TT_MULTI_LEVEL);
-
-        spin_unlock(&hd->arch.mapping_lock);
     }
 
-    rc = context_set_domain_id(&lctxt, domid, iommu);
+    rc = context_set_domain_id(&lctxt, did, iommu);
     if ( rc )
-    {
-    unlock:
-        spin_unlock(&iommu->lock);
-        unmap_vtd_domain_page(context_entries);
-        if ( prev_dom )
-            rcu_unlock_domain(prev_dom);
-        return rc;
-    }
-
-    if ( !prev_dom )
-    {
-        context_set_address_width(lctxt, level_to_agaw(iommu->nr_pt_levels));
-        context_set_fault_enable(lctxt);
-        context_set_present(lctxt);
-    }
-    else if ( prev_dom == domain )
-    {
-        ASSERT(lctxt.full == context->full);
-        rc = !!pdev;
         goto unlock;
-    }
-    else
-    {
-        ASSERT(context_address_width(lctxt) ==
-               level_to_agaw(iommu->nr_pt_levels));
-        ASSERT(!context_fault_disable(lctxt));
-    }
-
-    if ( cpu_has_cx16 )
-    {
-        __uint128_t res = cmpxchg16b(context, &old, &lctxt.full);
 
-        /*
-         * Hardware does not update the context entry behind our backs,
-         * so the return value should match "old".
-         */
-        if ( res != old )
-        {
-            if ( pdev )
-                check_cleanup_domid_map(domain, pdev, iommu);
-            printk(XENLOG_ERR
-                   "%pp: unexpected context entry %016lx_%016lx (expected %016lx_%016lx)\n",
-                   &PCI_SBDF(seg, bus, devfn),
-                   (uint64_t)(res >> 64), (uint64_t)res,
-                   (uint64_t)(old >> 64), (uint64_t)old);
-            rc = -EILSEQ;
-            goto unlock;
-        }
-    }
-    else if ( !prev_dom || !(mode & MAP_WITH_RMRR) )
-    {
-        context_clear_present(*context);
-        iommu_sync_cache(context, sizeof(*context));
+    context_set_address_width(lctxt, level_to_agaw(iommu->nr_pt_levels));
+    context_set_fault_enable(lctxt);
+    context_set_present(lctxt);
 
-        write_atomic(&context->hi, lctxt.hi);
-        /* No barrier should be needed between these two. */
-        write_atomic(&context->lo, lctxt.lo);
-    }
-    else /* Best effort, updating DID last. */
-    {
-         /*
-          * By non-atomically updating the context entry's DID field last,
-          * during a short window in time TLB entries with the old domain ID
-          * but the new page tables may be inserted.  This could affect I/O
-          * of other devices using this same (old) domain ID.  Such updating
-          * therefore is not a problem if this was the only device associated
-          * with the old domain ID.  Diverting I/O of any of a dying domain's
-          * devices to the quarantine page tables is intended anyway.
-          */
-        if ( !(mode & (MAP_OWNER_DYING | MAP_SINGLE_DEVICE)) )
-            printk(XENLOG_WARNING VTDPREFIX
-                   " %pp: reassignment may cause %pd data corruption\n",
-                   &PCI_SBDF(seg, bus, devfn), prev_dom);
+    res = cmpxchg16b(context, &old, &lctxt.full);
 
-        write_atomic(&context->lo, lctxt.lo);
-        /* No barrier should be needed between these two. */
-        write_atomic(&context->hi, lctxt.hi);
+    /*
+     * Hardware does not update the context entry behind our backs,
+     * so the return value should match "old".
+     */
+    if ( res != old )
+    {
+        printk(XENLOG_ERR
+                "%pp: unexpected context entry %016lx_%016lx (expected %016lx_%016lx)\n",
+                &PCI_SBDF(seg, bus, devfn),
+                (uint64_t)(res >> 64), (uint64_t)res,
+                (uint64_t)(old >> 64), (uint64_t)old);
+        rc = -EILSEQ;
+        goto unlock;
     }
 
     iommu_sync_cache(context, sizeof(struct context_entry));
-    spin_unlock(&iommu->lock);
 
     rc = iommu_flush_context_device(iommu, prev_did, PCI_BDF(bus, devfn),
-                                    DMA_CCMD_MASK_NOBIT, !prev_dom);
+                                    DMA_CCMD_MASK_NOBIT, !overwrite_entry);
     flush_dev_iotlb = !!find_ats_dev_drhd(iommu);
-    ret = iommu_flush_iotlb_dsi(iommu, prev_did, !prev_dom, flush_dev_iotlb);
+    ret = iommu_flush_iotlb_dsi(iommu, prev_did, !overwrite_entry, flush_dev_iotlb);
 
     /*
      * The current logic for returns:
@@ -1653,230 +1535,55 @@ int domain_context_mapping_one(
     if ( rc > 0 )
         rc = 0;
 
-    set_bit(iommu->index, hd->arch.vtd.iommu_bitmap);
+    set_bit(iommu->index, ctx->arch.vtd.iommu_bitmap);
 
     unmap_vtd_domain_page(context_entries);
+    spin_unlock(&iommu->lock);
 
     if ( !seg && !rc )
-        rc = me_wifi_quirk(domain, bus, devfn, domid, pgd_maddr, mode);
-
-    if ( rc && !(mode & MAP_ERROR_RECOVERY) )
-    {
-        if ( !prev_dom ||
-             /*
-              * Unmapping here means DEV_TYPE_PCI devices with RMRRs (if such
-              * exist) would cause problems if such a region was actually
-              * accessed.
-              */
-             (prev_dom == dom_io && !pdev) )
-            ret = domain_context_unmap_one(domain, iommu, bus, devfn);
-        else
-            ret = domain_context_mapping_one(prev_dom, iommu, bus, devfn, pdev,
-                                             DEVICE_DOMID(prev_dom, pdev),
-                                             DEVICE_PGTABLE(prev_dom, pdev),
-                                             (mode & MAP_WITH_RMRR) |
-                                             MAP_ERROR_RECOVERY) < 0;
-
-        if ( !ret && pdev && pdev->devfn == devfn )
-            check_cleanup_domid_map(domain, pdev, iommu);
-    }
+        rc = me_wifi_quirk(domain, bus, devfn, did, 0, ctx);
 
-    if ( prev_dom )
-        rcu_unlock_domain(prev_dom);
+    return rc;
 
-    return rc ?: pdev && prev_dom;
+    unlock:
+        unmap_vtd_domain_page(context_entries);
+        spin_unlock(&iommu->lock);
+        return rc;
 }
 
-static const struct acpi_drhd_unit *domain_context_unmap(
-    struct domain *d, uint8_t devfn, struct pci_dev *pdev);
-
-static int domain_context_mapping(struct domain *domain, u8 devfn,
-                                  struct pci_dev *pdev)
+int apply_context(struct domain *d, struct iommu_context *ctx,
+                  struct pci_dev *pdev, u8 devfn)
 {
     const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
-    const struct acpi_rmrr_unit *rmrr;
-    paddr_t pgd_maddr = DEVICE_PGTABLE(domain, pdev);
-    domid_t orig_domid = pdev->arch.pseudo_domid;
     int ret = 0;
-    unsigned int i, mode = 0;
-    uint16_t seg = pdev->seg, bdf;
-    uint8_t bus = pdev->bus, secbus;
-
-    /*
-     * Generally we assume only devices from one node to get assigned to a
-     * given guest.  But even if not, by replacing the prior value here we
-     * guarantee that at least some basic allocations for the device being
-     * added will get done against its node.  Any further allocations for
-     * this or other devices may be penalized then, but some would also be
-     * if we left other than NUMA_NO_NODE untouched here.
-     */
-    if ( drhd && drhd->iommu->node != NUMA_NO_NODE )
-        dom_iommu(domain)->node = drhd->iommu->node;
-
-    ASSERT(pcidevs_locked());
-
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment != pdev->seg || bdf != pdev->sbdf.bdf )
-            continue;
 
-        mode |= MAP_WITH_RMRR;
-        break;
-    }
+    if ( !drhd )
+        return -EINVAL;
 
-    if ( domain != pdev->domain && pdev->domain != dom_io )
+    if ( pdev->type == DEV_TYPE_PCI_HOST_BRIDGE ||
+         pdev->type == DEV_TYPE_PCIe_BRIDGE ||
+         pdev->type == DEV_TYPE_PCIe2PCI_BRIDGE ||
+         pdev->type == DEV_TYPE_LEGACY_PCI_BRIDGE )
     {
-        if ( pdev->domain->is_dying )
-            mode |= MAP_OWNER_DYING;
-        else if ( drhd &&
-                  !any_pdev_behind_iommu(pdev->domain, pdev, drhd->iommu) &&
-                  !pdev->phantom_stride )
-            mode |= MAP_SINGLE_DEVICE;
+        printk(XENLOG_WARNING VTDPREFIX " Ignoring apply_context on PCI bridge\n");
+        return 0;
     }
 
-    switch ( pdev->type )
-    {
-        bool prev_present;
-
-    case DEV_TYPE_PCI_HOST_BRIDGE:
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:Hostbridge: skip %pp map\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        if ( !is_hardware_domain(domain) )
-            return -EPERM;
-        break;
-
-    case DEV_TYPE_PCIe_BRIDGE:
-    case DEV_TYPE_PCIe2PCI_BRIDGE:
-    case DEV_TYPE_LEGACY_PCI_BRIDGE:
-        break;
-
-    case DEV_TYPE_PCIe_ENDPOINT:
-        if ( !drhd )
-            return -ENODEV;
-
-        if ( iommu_quarantine && orig_domid == DOMID_INVALID )
-        {
-            pdev->arch.pseudo_domid =
-                iommu_alloc_domid(drhd->iommu->pseudo_domid_map);
-            if ( pdev->arch.pseudo_domid == DOMID_INVALID )
-                return -ENOSPC;
-        }
-
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCIe: map %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn, pdev,
-                                         DEVICE_DOMID(domain, pdev), pgd_maddr,
-                                         mode);
-        if ( ret > 0 )
-            ret = 0;
-        if ( !ret && devfn == pdev->devfn && ats_device(pdev, drhd) > 0 )
-            enable_ats_device(pdev, &drhd->iommu->ats_devices);
-
-        break;
-
-    case DEV_TYPE_PCI:
-        if ( !drhd )
-            return -ENODEV;
-
-        if ( iommu_quarantine && orig_domid == DOMID_INVALID )
-        {
-            pdev->arch.pseudo_domid =
-                iommu_alloc_domid(drhd->iommu->pseudo_domid_map);
-            if ( pdev->arch.pseudo_domid == DOMID_INVALID )
-                return -ENOSPC;
-        }
-
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCI: map %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-
-        ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn,
-                                         pdev, DEVICE_DOMID(domain, pdev),
-                                         pgd_maddr, mode);
-        if ( ret < 0 )
-            break;
-        prev_present = ret;
-
-        if ( (ret = find_upstream_bridge(seg, &bus, &devfn, &secbus)) < 1 )
-        {
-            if ( !ret )
-                break;
-            ret = -ENXIO;
-        }
-        /*
-         * Strictly speaking if the device is the only one behind this bridge
-         * and the only one with this (secbus,0,0) tuple, it could be allowed
-         * to be re-assigned regardless of RMRR presence.  But let's deal with
-         * that case only if it is actually found in the wild.  Note that
-         * dealing with this just here would still not render the operation
-         * secure.
-         */
-        else if ( prev_present && (mode & MAP_WITH_RMRR) &&
-                  domain != pdev->domain )
-            ret = -EOPNOTSUPP;
-
-        /*
-         * Mapping a bridge should, if anything, pass the struct pci_dev of
-         * that bridge. Since bridges don't normally get assigned to guests,
-         * their owner would be the wrong one. Pass NULL instead.
-         */
-        if ( ret >= 0 )
-            ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn,
-                                             NULL, DEVICE_DOMID(domain, pdev),
-                                             pgd_maddr, mode);
-
-        /*
-         * Devices behind PCIe-to-PCI/PCIx bridge may generate different
-         * requester-id. It may originate from devfn=0 on the secondary bus
-         * behind the bridge. Map that id as well if we didn't already.
-         *
-         * Somewhat similar as for bridges, we don't want to pass a struct
-         * pci_dev here - there may not even exist one for this (secbus,0,0)
-         * tuple. If there is one, without properly working device groups it
-         * may again not have the correct owner.
-         */
-        if ( !ret && pdev_type(seg, bus, devfn) == DEV_TYPE_PCIe2PCI_BRIDGE &&
-             (secbus != pdev->bus || pdev->devfn != 0) )
-            ret = domain_context_mapping_one(domain, drhd->iommu, secbus, 0,
-                                             NULL, DEVICE_DOMID(domain, pdev),
-                                             pgd_maddr, mode);
-
-        if ( ret )
-        {
-            if ( !prev_present )
-                domain_context_unmap(domain, devfn, pdev);
-            else if ( pdev->domain != domain ) /* Avoid infinite recursion. */
-                domain_context_mapping(pdev->domain, devfn, pdev);
-        }
+    ASSERT(pcidevs_locked());
 
-        break;
+    ret = apply_context_single(d, ctx, drhd->iommu, pdev->bus, devfn);
 
-    default:
-        dprintk(XENLOG_ERR VTDPREFIX, "%pd:unknown(%u): %pp\n",
-                domain, pdev->type, &PCI_SBDF(seg, bus, devfn));
-        ret = -EINVAL;
-        break;
-    }
+    if ( !ret && ats_device(pdev, drhd) > 0 )
+        enable_ats_device(pdev, &drhd->iommu->ats_devices);
 
     if ( !ret && devfn == pdev->devfn )
         pci_vtd_quirk(pdev);
 
-    if ( ret && drhd && orig_domid == DOMID_INVALID )
-    {
-        iommu_free_domid(pdev->arch.pseudo_domid,
-                         drhd->iommu->pseudo_domid_map);
-        pdev->arch.pseudo_domid = DOMID_INVALID;
-    }
-
     return ret;
 }
 
-int domain_context_unmap_one(
-    struct domain *domain,
-    struct vtd_iommu *iommu,
-    uint8_t bus, uint8_t devfn)
+int unapply_context_single(struct domain *domain, struct iommu_context *ctx,
+                           struct vtd_iommu *iommu, uint8_t bus, uint8_t devfn)
 {
     struct context_entry *context, *context_entries;
     u64 maddr;
@@ -1928,8 +1635,8 @@ int domain_context_unmap_one(
     unmap_vtd_domain_page(context_entries);
 
     if ( !iommu->drhd->segment && !rc )
-        rc = me_wifi_quirk(domain, bus, devfn, DOMID_INVALID, 0,
-                           UNMAP_ME_PHANTOM_FUNC);
+        rc = me_wifi_quirk(domain, bus, devfn, DOMID_INVALID, UNMAP_ME_PHANTOM_FUNC,
+                           NULL);
 
     if ( rc && !is_hardware_domain(domain) && domain != dom_io )
     {
@@ -1947,105 +1654,14 @@ int domain_context_unmap_one(
     return rc;
 }
 
-static const struct acpi_drhd_unit *domain_context_unmap(
-    struct domain *domain,
-    uint8_t devfn,
-    struct pci_dev *pdev)
-{
-    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
-    struct vtd_iommu *iommu = drhd ? drhd->iommu : NULL;
-    int ret;
-    uint16_t seg = pdev->seg;
-    uint8_t bus = pdev->bus, tmp_bus, tmp_devfn, secbus;
-
-    switch ( pdev->type )
-    {
-    case DEV_TYPE_PCI_HOST_BRIDGE:
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:Hostbridge: skip %pp unmap\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        return ERR_PTR(is_hardware_domain(domain) ? 0 : -EPERM);
-
-    case DEV_TYPE_PCIe_BRIDGE:
-    case DEV_TYPE_PCIe2PCI_BRIDGE:
-    case DEV_TYPE_LEGACY_PCI_BRIDGE:
-        return ERR_PTR(0);
-
-    case DEV_TYPE_PCIe_ENDPOINT:
-        if ( !iommu )
-            return ERR_PTR(-ENODEV);
-
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCIe: unmap %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        ret = domain_context_unmap_one(domain, iommu, bus, devfn);
-        if ( !ret && devfn == pdev->devfn && ats_device(pdev, drhd) > 0 )
-            disable_ats_device(pdev);
-
-        break;
-
-    case DEV_TYPE_PCI:
-        if ( !iommu )
-            return ERR_PTR(-ENODEV);
-
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCI: unmap %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        ret = domain_context_unmap_one(domain, iommu, bus, devfn);
-        if ( ret )
-            break;
-
-        tmp_bus = bus;
-        tmp_devfn = devfn;
-        if ( (ret = find_upstream_bridge(seg, &tmp_bus, &tmp_devfn,
-                                         &secbus)) < 1 )
-        {
-            if ( ret )
-            {
-                ret = -ENXIO;
-                if ( !domain->is_dying &&
-                     !is_hardware_domain(domain) && domain != dom_io )
-                {
-                    domain_crash(domain);
-                    /* Make upper layers continue in a best effort manner. */
-                    ret = 0;
-                }
-            }
-            break;
-        }
-
-        ret = domain_context_unmap_one(domain, iommu, tmp_bus, tmp_devfn);
-        /* PCIe to PCI/PCIx bridge */
-        if ( !ret && pdev_type(seg, tmp_bus, tmp_devfn) == DEV_TYPE_PCIe2PCI_BRIDGE )
-            ret = domain_context_unmap_one(domain, iommu, secbus, 0);
-
-        break;
-
-    default:
-        dprintk(XENLOG_ERR VTDPREFIX, "%pd:unknown(%u): %pp\n",
-                domain, pdev->type, &PCI_SBDF(seg, bus, devfn));
-        return ERR_PTR(-EINVAL);
-    }
-
-    if ( !ret && pdev->devfn == devfn &&
-         !QUARANTINE_SKIP(domain, pdev->arch.vtd.pgd_maddr) )
-        check_cleanup_domid_map(domain, pdev, iommu);
-
-    return drhd;
-}
-
-static void cf_check iommu_clear_root_pgtable(struct domain *d)
+static void cf_check iommu_clear_root_pgtable(struct domain *d, struct iommu_context *ctx)
 {
-    struct domain_iommu *hd = dom_iommu(d);
-
-    spin_lock(&hd->arch.mapping_lock);
-    hd->arch.vtd.pgd_maddr = 0;
-    spin_unlock(&hd->arch.mapping_lock);
+    ctx->arch.vtd.pgd_maddr = 0;
 }
 
 static void cf_check iommu_domain_teardown(struct domain *d)
 {
-    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
     const struct acpi_drhd_unit *drhd;
 
     if ( list_empty(&acpi_drhd_units) )
@@ -2053,37 +1669,15 @@ static void cf_check iommu_domain_teardown(struct domain *d)
 
     iommu_identity_map_teardown(d);
 
-    ASSERT(!hd->arch.vtd.pgd_maddr);
+    ASSERT(!ctx->arch.vtd.pgd_maddr);
 
     for_each_drhd_unit ( drhd )
         cleanup_domid_map(d->domain_id, drhd->iommu);
-
-    XFREE(hd->arch.vtd.iommu_bitmap);
-}
-
-static void quarantine_teardown(struct pci_dev *pdev,
-                                const struct acpi_drhd_unit *drhd)
-{
-    struct domain_iommu *hd = dom_iommu(dom_io);
-
-    ASSERT(pcidevs_locked());
-
-    if ( !pdev->arch.vtd.pgd_maddr )
-        return;
-
-    ASSERT(page_list_empty(&hd->arch.pgtables.list));
-    page_list_move(&hd->arch.pgtables.list, &pdev->arch.pgtables_list);
-    while ( iommu_free_pgtables(dom_io) == -ERESTART )
-        /* nothing */;
-    pdev->arch.vtd.pgd_maddr = 0;
-
-    if ( drhd )
-        cleanup_domid_map(pdev->arch.pseudo_domid, drhd->iommu);
 }
 
 static int __must_check cf_check intel_iommu_map_page(
     struct domain *d, dfn_t dfn, mfn_t mfn, unsigned int flags,
-    unsigned int *flush_flags)
+    unsigned int *flush_flags, struct iommu_context *ctx)
 {
     struct domain_iommu *hd = dom_iommu(d);
     struct dma_pte *page, *pte, old, new = {};
@@ -2095,32 +1689,28 @@ static int __must_check cf_check intel_iommu_map_page(
            PAGE_SIZE_4K);
 
     /* Do nothing if VT-d shares EPT page table */
-    if ( iommu_use_hap_pt(d) )
+    if ( iommu_use_hap_pt(d) && !ctx->id )
         return 0;
 
     /* Do nothing if hardware domain and iommu supports pass thru. */
-    if ( iommu_hwdom_passthrough && is_hardware_domain(d) )
+    if ( iommu_hwdom_passthrough && is_hardware_domain(d) && !ctx->id )
         return 0;
 
-    spin_lock(&hd->arch.mapping_lock);
-
     /*
      * IOMMU mapping request can be safely ignored when the domain is dying.
      *
-     * hd->arch.mapping_lock guarantees that d->is_dying will be observed
+     * hd->lock guarantees that d->is_dying will be observed
      * before any page tables are freed (see iommu_free_pgtables())
      */
     if ( d->is_dying )
     {
-        spin_unlock(&hd->arch.mapping_lock);
         return 0;
     }
 
-    pg_maddr = addr_to_dma_page_maddr(d, dfn_to_daddr(dfn), level, flush_flags,
+    pg_maddr = addr_to_dma_page_maddr(d, ctx, dfn_to_daddr(dfn), level, flush_flags,
                                       true);
     if ( pg_maddr < PAGE_SIZE )
     {
-        spin_unlock(&hd->arch.mapping_lock);
         return -ENOMEM;
     }
 
@@ -2141,7 +1731,6 @@ static int __must_check cf_check intel_iommu_map_page(
 
     if ( !((old.val ^ new.val) & ~DMA_PTE_CONTIG_MASK) )
     {
-        spin_unlock(&hd->arch.mapping_lock);
         unmap_vtd_domain_page(page);
         return 0;
     }
@@ -2170,7 +1759,7 @@ static int __must_check cf_check intel_iommu_map_page(
         new.val &= ~(LEVEL_MASK << level_to_offset_bits(level));
         dma_set_pte_superpage(new);
 
-        pg_maddr = addr_to_dma_page_maddr(d, dfn_to_daddr(dfn), ++level,
+        pg_maddr = addr_to_dma_page_maddr(d, ctx, dfn_to_daddr(dfn), ++level,
                                           flush_flags, false);
         BUG_ON(pg_maddr < PAGE_SIZE);
 
@@ -2180,11 +1769,10 @@ static int __must_check cf_check intel_iommu_map_page(
         iommu_sync_cache(pte, sizeof(*pte));
 
         *flush_flags |= IOMMU_FLUSHF_modified | IOMMU_FLUSHF_all;
-        iommu_queue_free_pgtable(hd, pg);
+        iommu_queue_free_pgtable(ctx, pg);
         perfc_incr(iommu_pt_coalesces);
     }
 
-    spin_unlock(&hd->arch.mapping_lock);
     unmap_vtd_domain_page(page);
 
     *flush_flags |= IOMMU_FLUSHF_added;
@@ -2193,7 +1781,7 @@ static int __must_check cf_check intel_iommu_map_page(
         *flush_flags |= IOMMU_FLUSHF_modified;
 
         if ( IOMMUF_order(flags) && !dma_pte_superpage(old) )
-            queue_free_pt(hd, maddr_to_mfn(dma_pte_addr(old)),
+            queue_free_pt(ctx, maddr_to_mfn(dma_pte_addr(old)),
                           IOMMUF_order(flags) / LEVEL_STRIDE);
     }
 
@@ -2201,7 +1789,8 @@ static int __must_check cf_check intel_iommu_map_page(
 }
 
 static int __must_check cf_check intel_iommu_unmap_page(
-    struct domain *d, dfn_t dfn, unsigned int order, unsigned int *flush_flags)
+    struct domain *d, dfn_t dfn, unsigned int order, unsigned int *flush_flags,
+    struct iommu_context *ctx)
 {
     struct domain_iommu *hd = dom_iommu(d);
     daddr_t addr = dfn_to_daddr(dfn);
@@ -2216,28 +1805,23 @@ static int __must_check cf_check intel_iommu_unmap_page(
     ASSERT((hd->platform_ops->page_sizes >> order) & PAGE_SIZE_4K);
 
     /* Do nothing if VT-d shares EPT page table */
-    if ( iommu_use_hap_pt(d) )
+    if ( iommu_use_hap_pt(d) && !ctx->id )
         return 0;
 
     /* Do nothing if hardware domain and iommu supports pass thru. */
     if ( iommu_hwdom_passthrough && is_hardware_domain(d) )
         return 0;
 
-    spin_lock(&hd->arch.mapping_lock);
     /* get target level pte */
-    pg_maddr = addr_to_dma_page_maddr(d, addr, level, flush_flags, false);
+    pg_maddr = addr_to_dma_page_maddr(d, ctx, addr, level, flush_flags, false);
     if ( pg_maddr < PAGE_SIZE )
-    {
-        spin_unlock(&hd->arch.mapping_lock);
         return pg_maddr ? -ENOMEM : 0;
-    }
 
     page = map_vtd_domain_page(pg_maddr);
     pte = &page[address_level_offset(addr, level)];
 
     if ( !dma_pte_present(*pte) )
     {
-        spin_unlock(&hd->arch.mapping_lock);
         unmap_vtd_domain_page(page);
         return 0;
     }
@@ -2255,7 +1839,7 @@ static int __must_check cf_check intel_iommu_unmap_page(
 
         unmap_vtd_domain_page(page);
 
-        pg_maddr = addr_to_dma_page_maddr(d, addr, level, flush_flags, false);
+        pg_maddr = addr_to_dma_page_maddr(d, ctx, addr, level, flush_flags, false);
         BUG_ON(pg_maddr < PAGE_SIZE);
 
         page = map_vtd_domain_page(pg_maddr);
@@ -2264,42 +1848,38 @@ static int __must_check cf_check intel_iommu_unmap_page(
         iommu_sync_cache(pte, sizeof(*pte));
 
         *flush_flags |= IOMMU_FLUSHF_all;
-        iommu_queue_free_pgtable(hd, pg);
+        iommu_queue_free_pgtable(ctx, pg);
         perfc_incr(iommu_pt_coalesces);
     }
 
-    spin_unlock(&hd->arch.mapping_lock);
-
     unmap_vtd_domain_page(page);
 
     *flush_flags |= IOMMU_FLUSHF_modified;
 
     if ( order && !dma_pte_superpage(old) )
-        queue_free_pt(hd, maddr_to_mfn(dma_pte_addr(old)),
+        queue_free_pt(ctx, maddr_to_mfn(dma_pte_addr(old)),
                       order / LEVEL_STRIDE);
 
     return 0;
 }
 
 static int cf_check intel_iommu_lookup_page(
-    struct domain *d, dfn_t dfn, mfn_t *mfn, unsigned int *flags)
+    struct domain *d, dfn_t dfn, mfn_t *mfn, unsigned int *flags,
+    struct iommu_context *ctx)
 {
-    struct domain_iommu *hd = dom_iommu(d);
     uint64_t val;
 
     /*
      * If VT-d shares EPT page table or if the domain is the hardware
      * domain and iommu_passthrough is set then pass back the dfn.
      */
-    if ( iommu_use_hap_pt(d) ||
-         (iommu_hwdom_passthrough && is_hardware_domain(d)) )
+    if ( (iommu_use_hap_pt(d) ||
+         (iommu_hwdom_passthrough && is_hardware_domain(d)))
+         && !ctx->id )
         return -EOPNOTSUPP;
 
-    spin_lock(&hd->arch.mapping_lock);
-
-    val = addr_to_dma_page_maddr(d, dfn_to_daddr(dfn), 0, NULL, false);
 
-    spin_unlock(&hd->arch.mapping_lock);
+    val = addr_to_dma_page_maddr(d, ctx, dfn_to_daddr(dfn), 0, NULL, false);
 
     if ( val < PAGE_SIZE )
         return -ENOENT;
@@ -2320,7 +1900,7 @@ static bool __init vtd_ept_page_compatible(const struct vtd_iommu *iommu)
 
     /* EPT is not initialised yet, so we must check the capability in
      * the MSR explicitly rather than use cpu_has_vmx_ept_*() */
-    if ( rdmsr_safe(MSR_IA32_VMX_EPT_VPID_CAP, ept_cap) != 0 ) 
+    if ( rdmsr_safe(MSR_IA32_VMX_EPT_VPID_CAP, ept_cap) != 0 )
         return false;
 
     return (ept_has_2mb(ept_cap) && opt_hap_2mb) <=
@@ -2329,44 +1909,6 @@ static bool __init vtd_ept_page_compatible(const struct vtd_iommu *iommu)
             (cap_sps_1gb(vtd_cap) && iommu_superpages);
 }
 
-static int cf_check intel_iommu_add_device(u8 devfn, struct pci_dev *pdev)
-{
-    struct acpi_rmrr_unit *rmrr;
-    u16 bdf;
-    int ret, i;
-
-    ASSERT(pcidevs_locked());
-
-    if ( !pdev->domain )
-        return -EINVAL;
-
-    for_each_rmrr_device ( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == pdev->seg && bdf == PCI_BDF(pdev->bus, devfn) )
-        {
-            /*
-             * iommu_add_device() is only called for the hardware
-             * domain (see xen/drivers/passthrough/pci.c:pci_add_device()).
-             * Since RMRRs are always reserved in the e820 map for the hardware
-             * domain, there shouldn't be a conflict.
-             */
-            ret = iommu_identity_mapping(pdev->domain, p2m_access_rw,
-                                         rmrr->base_address, rmrr->end_address,
-                                         0);
-            if ( ret )
-                dprintk(XENLOG_ERR VTDPREFIX, "%pd: RMRR mapping failed\n",
-                        pdev->domain);
-        }
-    }
-
-    ret = domain_context_mapping(pdev->domain, devfn, pdev);
-    if ( ret )
-        dprintk(XENLOG_ERR VTDPREFIX, "%pd: context mapping failed\n",
-                pdev->domain);
-
-    return ret;
-}
-
 static int cf_check intel_iommu_enable_device(struct pci_dev *pdev)
 {
     struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
@@ -2382,49 +1924,16 @@ static int cf_check intel_iommu_enable_device(struct pci_dev *pdev)
     return ret >= 0 ? 0 : ret;
 }
 
-static int cf_check intel_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
-{
-    const struct acpi_drhd_unit *drhd;
-    struct acpi_rmrr_unit *rmrr;
-    u16 bdf;
-    unsigned int i;
-
-    if ( !pdev->domain )
-        return -EINVAL;
-
-    drhd = domain_context_unmap(pdev->domain, devfn, pdev);
-    if ( IS_ERR(drhd) )
-        return PTR_ERR(drhd);
-
-    for_each_rmrr_device ( rmrr, bdf, i )
-    {
-        if ( rmrr->segment != pdev->seg || bdf != PCI_BDF(pdev->bus, devfn) )
-            continue;
-
-        /*
-         * Any flag is nothing to clear these mappings but here
-         * its always safe and strict to set 0.
-         */
-        iommu_identity_mapping(pdev->domain, p2m_access_x, rmrr->base_address,
-                               rmrr->end_address, 0);
-    }
-
-    quarantine_teardown(pdev, drhd);
-
-    if ( drhd )
-    {
-        iommu_free_domid(pdev->arch.pseudo_domid,
-                         drhd->iommu->pseudo_domid_map);
-        pdev->arch.pseudo_domid = DOMID_INVALID;
-    }
-
-    return 0;
-}
-
 static int __hwdom_init cf_check setup_hwdom_device(
     u8 devfn, struct pci_dev *pdev)
 {
-    return domain_context_mapping(pdev->domain, devfn, pdev);
+    if (pdev->type == DEV_TYPE_PCI_HOST_BRIDGE ||
+        pdev->type == DEV_TYPE_PCIe_BRIDGE ||
+        pdev->type == DEV_TYPE_PCIe2PCI_BRIDGE ||
+        pdev->type == DEV_TYPE_LEGACY_PCI_BRIDGE)
+        return 0;
+
+    return _iommu_attach_context(hardware_domain, pdev, 0);
 }
 
 void clear_fault_bits(struct vtd_iommu *iommu)
@@ -2518,7 +2027,7 @@ static int __must_check init_vtd_hw(bool resume)
 
     /*
      * Enable queue invalidation
-     */   
+     */
     for_each_drhd_unit ( drhd )
     {
         iommu = drhd->iommu;
@@ -2539,7 +2048,7 @@ static int __must_check init_vtd_hw(bool resume)
 
     /*
      * Enable interrupt remapping
-     */  
+     */
     if ( iommu_intremap != iommu_intremap_off )
     {
         int apic;
@@ -2622,15 +2131,61 @@ static struct iommu_state {
     uint32_t fectl;
 } *__read_mostly iommu_state;
 
-static int __init cf_check vtd_setup(void)
+static void arch_iommu_dump_domain_contexts(struct domain *d)
 {
-    struct acpi_drhd_unit *drhd;
-    struct vtd_iommu *iommu;
-    unsigned int large_sizes = iommu_superpages ? PAGE_SIZE_2M | PAGE_SIZE_1G : 0;
-    int ret;
-    bool reg_inval_supported = true;
+    unsigned int i, iommu_no;
+    struct pci_dev *pdev;
+    struct iommu_context *ctx;
+    struct domain_iommu *hd = dom_iommu(d);
 
-    if ( list_empty(&acpi_drhd_units) )
+    printk("d%hu contexts\n", d->domain_id);
+
+    spin_lock(&hd->lock);
+
+    for (i = 0; i < (1 + dom_iommu(d)->other_contexts.count); ++i)
+    {
+        if (iommu_check_context(d, i))
+        {
+            ctx = iommu_get_context(d, i);
+            printk(" Context %d (%"PRIx64")\n", i, ctx->arch.vtd.pgd_maddr);
+
+            for (iommu_no = 0; iommu_no < nr_iommus; iommu_no++)
+                printk("  IOMMU %hu (used=%u; did=%hu)\n", iommu_no,
+                       test_bit(iommu_no, ctx->arch.vtd.iommu_bitmap),
+                       ctx->arch.vtd.didmap[iommu_no]);
+
+            list_for_each_entry(pdev, &ctx->devices, context_list)
+            {
+                printk("  - %pp\n", &pdev->sbdf);
+            }
+        }
+    }
+
+    spin_unlock(&hd->lock);
+}
+
+static void arch_iommu_dump_contexts(unsigned char key)
+{
+    struct domain *d;
+
+    for_each_domain(d)
+        if (is_iommu_enabled(d)) {
+            struct domain_iommu *hd = dom_iommu(d);
+            printk("d%hu arena page usage: %d\n", d->domain_id,
+                atomic_read(&hd->arch.pt_arena.used_pages));
+
+            arch_iommu_dump_domain_contexts(d);
+        }
+}
+static int __init cf_check vtd_setup(void)
+{
+    struct acpi_drhd_unit *drhd;
+    struct vtd_iommu *iommu;
+    unsigned int large_sizes = iommu_superpages ? PAGE_SIZE_2M | PAGE_SIZE_1G : 0;
+    int ret;
+    bool reg_inval_supported = true;
+
+    if ( list_empty(&acpi_drhd_units) )
     {
         ret = -ENODEV;
         goto error;
@@ -2749,6 +2304,7 @@ static int __init cf_check vtd_setup(void)
     iommu_ops.page_sizes |= large_sizes;
 
     register_keyhandler('V', vtd_dump_iommu_info, "dump iommu info", 1);
+    register_keyhandler('X', arch_iommu_dump_contexts, "dump iommu contexts", 1);
 
     return 0;
 
@@ -2763,192 +2319,6 @@ static int __init cf_check vtd_setup(void)
     return ret;
 }
 
-static int cf_check reassign_device_ownership(
-    struct domain *source,
-    struct domain *target,
-    u8 devfn, struct pci_dev *pdev)
-{
-    int ret;
-
-    if ( !QUARANTINE_SKIP(target, pdev->arch.vtd.pgd_maddr) )
-    {
-        if ( !has_arch_pdevs(target) )
-            vmx_pi_hooks_assign(target);
-
-#ifdef CONFIG_PV
-        /*
-         * Devices assigned to untrusted domains (here assumed to be any domU)
-         * can attempt to send arbitrary LAPIC/MSI messages. We are unprotected
-         * by the root complex unless interrupt remapping is enabled.
-         */
-        if ( !iommu_intremap && !is_hardware_domain(target) &&
-             !is_system_domain(target) )
-            untrusted_msi = true;
-#endif
-
-        ret = domain_context_mapping(target, devfn, pdev);
-
-        if ( !ret && pdev->devfn == devfn &&
-             !QUARANTINE_SKIP(source, pdev->arch.vtd.pgd_maddr) )
-        {
-            const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
-
-            if ( drhd )
-                check_cleanup_domid_map(source, pdev, drhd->iommu);
-        }
-    }
-    else
-    {
-        const struct acpi_drhd_unit *drhd;
-
-        drhd = domain_context_unmap(source, devfn, pdev);
-        ret = IS_ERR(drhd) ? PTR_ERR(drhd) : 0;
-    }
-    if ( ret )
-    {
-        if ( !has_arch_pdevs(target) )
-            vmx_pi_hooks_deassign(target);
-        return ret;
-    }
-
-    if ( devfn == pdev->devfn && pdev->domain != target )
-    {
-        write_lock(&source->pci_lock);
-        list_del(&pdev->domain_list);
-        write_unlock(&source->pci_lock);
-
-        pdev->domain = target;
-
-        write_lock(&target->pci_lock);
-        list_add(&pdev->domain_list, &target->pdev_list);
-        write_unlock(&target->pci_lock);
-    }
-
-    if ( !has_arch_pdevs(source) )
-        vmx_pi_hooks_deassign(source);
-
-    /*
-     * If the device belongs to the hardware domain, and it has RMRR, don't
-     * remove it from the hardware domain, because BIOS may use RMRR at
-     * booting time.
-     */
-    if ( !is_hardware_domain(source) )
-    {
-        const struct acpi_rmrr_unit *rmrr;
-        u16 bdf;
-        unsigned int i;
-
-        for_each_rmrr_device( rmrr, bdf, i )
-            if ( rmrr->segment == pdev->seg &&
-                 bdf == PCI_BDF(pdev->bus, devfn) )
-            {
-                /*
-                 * Any RMRR flag is always ignored when remove a device,
-                 * but its always safe and strict to set 0.
-                 */
-                ret = iommu_identity_mapping(source, p2m_access_x,
-                                             rmrr->base_address,
-                                             rmrr->end_address, 0);
-                if ( ret && ret != -ENOENT )
-                    return ret;
-            }
-    }
-
-    return 0;
-}
-
-static int cf_check intel_iommu_assign_device(
-    struct domain *d, u8 devfn, struct pci_dev *pdev, u32 flag)
-{
-    struct domain *s = pdev->domain;
-    struct acpi_rmrr_unit *rmrr;
-    int ret = 0, i;
-    u16 bdf, seg;
-    u8 bus;
-
-    if ( list_empty(&acpi_drhd_units) )
-        return -ENODEV;
-
-    seg = pdev->seg;
-    bus = pdev->bus;
-    /*
-     * In rare cases one given rmrr is shared by multiple devices but
-     * obviously this would put the security of a system at risk. So
-     * we would prevent from this sort of device assignment. But this
-     * can be permitted if user set
-     *      "pci = [ 'sbdf, rdm_policy=relaxed' ]"
-     *
-     * TODO: in the future we can introduce group device assignment
-     * interface to make sure devices sharing RMRR are assigned to the
-     * same domain together.
-     */
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == seg && bdf == PCI_BDF(bus, devfn) &&
-             rmrr->scope.devices_cnt > 1 )
-        {
-            bool relaxed = flag & XEN_DOMCTL_DEV_RDM_RELAXED;
-
-            printk(XENLOG_GUEST "%s" VTDPREFIX
-                   " It's %s to assign %pp"
-                   " with shared RMRR at %"PRIx64" for %pd.\n",
-                   relaxed ? XENLOG_WARNING : XENLOG_ERR,
-                   relaxed ? "risky" : "disallowed",
-                   &PCI_SBDF(seg, bus, devfn), rmrr->base_address, d);
-            if ( !relaxed )
-                return -EPERM;
-        }
-    }
-
-    if ( d == dom_io )
-        return reassign_device_ownership(s, d, devfn, pdev);
-
-    /* Setup rmrr identity mapping */
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == seg && bdf == PCI_BDF(bus, devfn) )
-        {
-            ret = iommu_identity_mapping(d, p2m_access_rw, rmrr->base_address,
-                                         rmrr->end_address, flag);
-            if ( ret )
-            {
-                printk(XENLOG_G_ERR VTDPREFIX
-                       "%pd: cannot map reserved region [%"PRIx64",%"PRIx64"]: %d\n",
-                       d, rmrr->base_address, rmrr->end_address, ret);
-                break;
-            }
-        }
-    }
-
-    if ( !ret )
-        ret = reassign_device_ownership(s, d, devfn, pdev);
-
-    /* See reassign_device_ownership() for the hwdom aspect. */
-    if ( !ret || is_hardware_domain(d) )
-        return ret;
-
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == seg && bdf == PCI_BDF(bus, devfn) )
-        {
-            int rc = iommu_identity_mapping(d, p2m_access_x,
-                                            rmrr->base_address,
-                                            rmrr->end_address, 0);
-
-            if ( rc && rc != -ENOENT )
-            {
-                printk(XENLOG_ERR VTDPREFIX
-                       "%pd: cannot unmap reserved region [%"PRIx64",%"PRIx64"]: %d\n",
-                       d, rmrr->base_address, rmrr->end_address, rc);
-                domain_crash(d);
-                break;
-            }
-        }
-    }
-
-    return ret;
-}
-
 static int cf_check intel_iommu_group_id(u16 seg, u8 bus, u8 devfn)
 {
     u8 secbus;
@@ -3073,6 +2443,11 @@ static void vtd_dump_page_table_level(paddr_t pt_maddr, int level, paddr_t gpa,
     if ( level < 1 )
         return;
 
+    if (pt_maddr == 0) {
+        printk(" (empty)\n");
+        return;
+    }
+
     pt_vaddr = map_vtd_domain_page(pt_maddr);
 
     next_level = level - 1;
@@ -3103,158 +2478,478 @@ static void vtd_dump_page_table_level(paddr_t pt_maddr, int level, paddr_t gpa,
 
 static void cf_check vtd_dump_page_tables(struct domain *d)
 {
-    const struct domain_iommu *hd = dom_iommu(d);
+    struct domain_iommu *hd = dom_iommu(d);
+    unsigned int i;
 
     printk(VTDPREFIX" %pd table has %d levels\n", d,
            agaw_to_level(hd->arch.vtd.agaw));
-    vtd_dump_page_table_level(hd->arch.vtd.pgd_maddr,
-                              agaw_to_level(hd->arch.vtd.agaw), 0, 0);
+
+    for (i = 1; i < (1 + hd->other_contexts.count); ++i)
+    {
+        bool allocated = iommu_check_context(d, i);
+        printk(VTDPREFIX " %pd context %d: %s\n", d, i,
+               allocated ? "allocated" : "non-allocated");
+
+        if (allocated) {
+            const struct iommu_context *ctx = iommu_get_context(d, i);
+            vtd_dump_page_table_level(ctx->arch.vtd.pgd_maddr,
+                                      agaw_to_level(hd->arch.vtd.agaw), 0, 0);
+        }
+    }
 }
 
-static int fill_qpt(struct dma_pte *this, unsigned int level,
-                    struct page_info *pgs[6])
+static int intel_iommu_context_init(struct domain *d, struct iommu_context *ctx, u32 flags)
 {
-    struct domain_iommu *hd = dom_iommu(dom_io);
-    unsigned int i;
-    int rc = 0;
+    struct acpi_drhd_unit *drhd;
 
-    for ( i = 0; !rc && i < PTE_NUM; ++i )
+    ctx->arch.vtd.didmap = xzalloc_array(u16, nr_iommus);
+
+    if ( !ctx->arch.vtd.didmap )
+        return -ENOMEM;
+
+    ctx->arch.vtd.iommu_bitmap = xzalloc_array(unsigned long,
+                                               BITS_TO_LONGS(nr_iommus));
+    if ( !ctx->arch.vtd.iommu_bitmap )
+        return -ENOMEM;
+
+    ctx->arch.vtd.duplicated_rmrr = false;
+    ctx->arch.vtd.superpage_progress = 0;
+
+    if ( flags & IOMMU_CONTEXT_INIT_default )
     {
-        struct dma_pte *pte = &this[i], *next;
+        ctx->arch.vtd.pgd_maddr = 0;
 
-        if ( !dma_pte_present(*pte) )
+        /* Populate context DID map using domain id. */
+        for_each_drhd_unit(drhd)
         {
-            if ( !pgs[level] )
-            {
-                /*
-                 * The pgtable allocator is fine for the leaf page, as well as
-                 * page table pages, and the resulting allocations are always
-                 * zeroed.
-                 */
-                pgs[level] = iommu_alloc_pgtable(hd, 0);
-                if ( !pgs[level] )
-                {
-                    rc = -ENOMEM;
-                    break;
-                }
-
-                if ( level )
-                {
-                    next = map_vtd_domain_page(page_to_maddr(pgs[level]));
-                    rc = fill_qpt(next, level - 1, pgs);
-                    unmap_vtd_domain_page(next);
-                }
-            }
+            ctx->arch.vtd.didmap[drhd->iommu->index] =
+                convert_domid(drhd->iommu, d->domain_id);
+        }
+    }
+    else
+    {
+        /* Populate context DID map using pseudo DIDs */
+        for_each_drhd_unit(drhd)
+        {
+            ctx->arch.vtd.didmap[drhd->iommu->index] =
+                iommu_alloc_domid(drhd->iommu->pseudo_domid_map);
+        }
+
+        /* Create initial context page */
+        addr_to_dma_page_maddr(d, ctx, 0, min_pt_levels, NULL, true);
+    }
 
-            dma_set_pte_addr(*pte, page_to_maddr(pgs[level]));
-            dma_set_pte_readable(*pte);
-            dma_set_pte_writable(*pte);
+    return arch_iommu_context_init(d, ctx, flags);
+}
+
+static int intel_iommu_cleanup_pte(uint64_t pte_maddr, bool preempt)
+{
+    size_t i;
+    struct dma_pte *pte = map_vtd_domain_page(pte_maddr);
+
+    for (i = 0; i < (1 << PAGETABLE_ORDER); ++i)
+        if ( dma_pte_present(pte[i]) )
+        {
+            /* Remove the reference of the target mapping */
+            put_page(maddr_to_page(dma_pte_addr(pte[i])));
+
+            if ( preempt )
+                dma_clear_pte(pte[i]);
         }
-        else if ( level && !dma_pte_superpage(*pte) )
+
+    unmap_vtd_domain_page(pte);
+
+    return 0;
+}
+
+/**
+ * Cleanup logic :
+ * Walk through the entire page table, progressively removing mappings if preempt.
+ *
+ * Return values :
+ *  - Report preemption with -ERESTART.
+ *  - Report empty pte/pgd with 0.
+ *
+ * When preempted during superpage operation, store state in vtd.superpage_progress.
+ */
+
+static int intel_iommu_cleanup_superpage(struct iommu_context *ctx,
+                                          unsigned int page_order, uint64_t pte_maddr,
+                                          bool preempt)
+{
+    size_t i = 0, page_count = 1 << page_order;
+    struct page_info *page = maddr_to_page(pte_maddr);
+
+    if ( preempt )
+        i = ctx->arch.vtd.superpage_progress;
+
+    for (; i < page_count; page++)
+    {
+        put_page(page);
+
+        if ( preempt && (i & 0xff) && general_preempt_check() )
         {
-            next = map_vtd_domain_page(dma_pte_addr(*pte));
-            rc = fill_qpt(next, level - 1, pgs);
-            unmap_vtd_domain_page(next);
+            ctx->arch.vtd.superpage_progress = i + 1;
+            return -ERESTART;
         }
     }
 
-    return rc;
+    if ( preempt )
+        ctx->arch.vtd.superpage_progress = 0;
+
+    return 0;
 }
 
-static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
-                                                bool scratch_page)
+static int intel_iommu_cleanup_mappings(struct iommu_context *ctx,
+                                         unsigned int nr_pt_levels, uint64_t pgd_maddr,
+                                         bool preempt)
 {
-    struct domain_iommu *hd = dom_iommu(dom_io);
-    struct page_info *pg;
-    unsigned int agaw = hd->arch.vtd.agaw;
-    unsigned int level = agaw_to_level(agaw);
-    const struct acpi_drhd_unit *drhd;
-    const struct acpi_rmrr_unit *rmrr;
-    unsigned int i, bdf;
-    bool rmrr_found = false;
+    size_t i;
     int rc;
+    struct dma_pte *pgd = map_vtd_domain_page(pgd_maddr);
 
-    ASSERT(pcidevs_locked());
-    ASSERT(!hd->arch.vtd.pgd_maddr);
-    ASSERT(page_list_empty(&hd->arch.pgtables.list));
+    for (i = 0; i < (1 << PAGETABLE_ORDER); ++i)
+    {
+        if ( dma_pte_present(pgd[i]) )
+        {
+            uint64_t pte_maddr = dma_pte_addr(pgd[i]);
+
+            if ( dma_pte_superpage(pgd[i]) )
+                rc = intel_iommu_cleanup_superpage(ctx, nr_pt_levels * SUPERPAGE_ORDER,
+                                                   pte_maddr, preempt);
+            else if ( nr_pt_levels > 2 )
+                /* Next level is not PTE */
+                rc = intel_iommu_cleanup_mappings(ctx, nr_pt_levels - 1,
+                                                  pte_maddr, preempt);
+            else
+                rc = intel_iommu_cleanup_pte(pte_maddr, preempt);
+
+            if ( preempt && !rc )
+                /* Fold pgd (no more mappings in it) */
+                dma_clear_pte(pgd[i]);
+            else if ( preempt && (rc == -ERESTART || general_preempt_check()) )
+            {
+                unmap_vtd_domain_page(pgd);
+                return -ERESTART;
+            }
+        }
+    }
 
-    if ( pdev->arch.vtd.pgd_maddr )
+    unmap_vtd_domain_page(pgd);
+
+    return 0;
+}
+
+static int intel_iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags)
+{
+    struct acpi_drhd_unit *drhd;
+    pcidevs_lock();
+
+    // Cleanup mappings
+    if ( intel_iommu_cleanup_mappings(ctx, agaw_to_level(d->iommu.arch.vtd.agaw),
+                                      ctx->arch.vtd.pgd_maddr,
+                                      flags & IOMMUF_preempt) < 0 )
     {
-        clear_domain_page(pdev->arch.leaf_mfn);
-        return 0;
+        pcidevs_unlock();
+        return -ERESTART;
     }
 
-    drhd = acpi_find_matched_drhd_unit(pdev);
-    if ( !drhd )
-        return -ENODEV;
+    if (ctx->arch.vtd.didmap)
+    {
+        for_each_drhd_unit(drhd)
+        {
+            iommu_free_domid(ctx->arch.vtd.didmap[drhd->iommu->index],
+                drhd->iommu->pseudo_domid_map);
+        }
 
-    pg = iommu_alloc_pgtable(hd, 0);
-    if ( !pg )
-        return -ENOMEM;
+        xfree(ctx->arch.vtd.didmap);
+    }
 
-    rc = context_set_domain_id(NULL, pdev->arch.pseudo_domid, drhd->iommu);
+    pcidevs_unlock();
+    return arch_iommu_context_teardown(d, ctx, flags);
+}
 
-    /* Transiently install the root into DomIO, for iommu_identity_mapping(). */
-    hd->arch.vtd.pgd_maddr = page_to_maddr(pg);
+static int intel_iommu_map_identity(struct domain *d, struct pci_dev *pdev,
+                                    struct iommu_context *ctx, struct acpi_rmrr_unit *rmrr)
+{
+    /* TODO: This code doesn't cleanup on failure */
 
-    for_each_rmrr_device ( rmrr, bdf, i )
+    int ret = 0, rc = 0;
+    unsigned int flush_flags = 0, flags;
+    u64 base_pfn = rmrr->base_address >> PAGE_SHIFT_4K;
+    u64 end_pfn = PAGE_ALIGN_4K(rmrr->end_address) >> PAGE_SHIFT_4K;
+    u64 pfn = base_pfn;
+
+    printk(XENLOG_INFO VTDPREFIX
+            " Mapping d%dc%d device %pp identity mapping [%08" PRIx64 ":%08" PRIx64 "]\n",
+            d->domain_id, ctx->id, &pdev->sbdf, rmrr->base_address, rmrr->end_address);
+
+    ASSERT(end_pfn >= base_pfn);
+
+    while (pfn < end_pfn)
     {
-        if ( rc )
-            break;
+        mfn_t mfn = INVALID_MFN;
+        ret = intel_iommu_lookup_page(d, _dfn(pfn), &mfn, &flags, ctx);
 
-        if ( rmrr->segment == pdev->seg && bdf == pdev->sbdf.bdf )
+        if ( ret == -ENOENT )
         {
-            rmrr_found = true;
+            ret = intel_iommu_map_page(d, _dfn(pfn), _mfn(pfn),
+                                      IOMMUF_readable | IOMMUF_writable,
+                                      &flush_flags, ctx);
 
-            rc = iommu_identity_mapping(dom_io, p2m_access_rw,
-                                        rmrr->base_address, rmrr->end_address,
-                                        0);
-            if ( rc )
+            if ( ret < 0 )
+            {
                 printk(XENLOG_ERR VTDPREFIX
-                       "%pp: RMRR quarantine mapping failed\n",
-                       &pdev->sbdf);
+                        " Unable to map RMRR page %"PRI_pfn" (%d)\n",
+                        pfn, ret);
+                break;
+            }
+        }
+        else if ( ret )
+        {
+            printk(XENLOG_ERR VTDPREFIX
+                    " Unable to lookup page %"PRI_pfn" (%d)\n",
+                    pfn, ret);
+            break;
         }
+        else if ( mfn_x(mfn) != pfn )
+        {
+            /* The dfn is already mapped to something else, can't continue. */
+            printk(XENLOG_ERR VTDPREFIX
+                   " Unable to map RMRR page %"PRI_mfn"!=%"PRI_pfn" (incompatible mapping)\n",
+                   mfn_x(mfn), pfn);
+
+            ret = -EINVAL;
+            break;
+        }
+        else if ( mfn_x(mfn) == pfn )
+        {
+            /*
+             * There is already a identity mapping in this context, we need to
+             * be extra-careful when detaching the device to not break another
+             * existing RMRR.
+             */
+            printk(XENLOG_WARNING VTDPREFIX
+                   "Duplicated RMRR mapping %"PRI_pfn"\n", pfn);
+
+            ctx->arch.vtd.duplicated_rmrr = true;
+        }
+
+        pfn++;
     }
 
-    iommu_identity_map_teardown(dom_io);
-    hd->arch.vtd.pgd_maddr = 0;
-    pdev->arch.vtd.pgd_maddr = page_to_maddr(pg);
+    rc = iommu_flush_iotlb(d, ctx, _dfn(base_pfn), end_pfn - base_pfn + 1, flush_flags);
 
-    if ( !rc && scratch_page )
+    return ret ?: rc;
+}
+
+static int intel_iommu_map_dev_rmrr(struct domain *d, struct pci_dev *pdev,
+                                    struct iommu_context *ctx)
+{
+    struct acpi_rmrr_unit *rmrr;
+    u16 bdf;
+    int ret, i;
+
+    for_each_rmrr_device(rmrr, bdf, i)
     {
-        struct dma_pte *root;
-        struct page_info *pgs[6] = {};
+        if ( PCI_SBDF(rmrr->segment, bdf).sbdf == pdev->sbdf.sbdf )
+        {
+            ret = intel_iommu_map_identity(d, pdev, ctx, rmrr);
 
-        root = map_vtd_domain_page(pdev->arch.vtd.pgd_maddr);
-        rc = fill_qpt(root, level - 1, pgs);
-        unmap_vtd_domain_page(root);
+            if ( ret < 0 )
+                return ret;
+        }
+    }
 
-        pdev->arch.leaf_mfn = page_to_mfn(pgs[0]);
+    return 0;
+}
+
+static int intel_iommu_unmap_identity(struct domain *d, struct pci_dev *pdev,
+                                      struct iommu_context *ctx, struct acpi_rmrr_unit *rmrr)
+{
+    /* TODO: This code doesn't cleanup on failure */
+
+    int ret = 0, rc = 0;
+    unsigned int flush_flags = 0;
+    u64 base_pfn = rmrr->base_address >> PAGE_SHIFT_4K;
+    u64 end_pfn = PAGE_ALIGN_4K(rmrr->end_address) >> PAGE_SHIFT_4K;
+    u64 pfn = base_pfn;
+
+    printk(VTDPREFIX
+            " Unmapping d%dc%d device %pp identity mapping [%08" PRIx64 ":%08" PRIx64 "]\n",
+            d->domain_id, ctx->id, &pdev->sbdf, rmrr->base_address, rmrr->end_address);
+
+    ASSERT(end_pfn >= base_pfn);
+
+    while (pfn < end_pfn)
+    {
+        ret = intel_iommu_unmap_page(d, _dfn(pfn), PAGE_ORDER_4K, &flush_flags, ctx);
+
+        if ( ret )
+            break;
+
+        pfn++;
     }
 
-    page_list_move(&pdev->arch.pgtables_list, &hd->arch.pgtables.list);
+    rc = iommu_flush_iotlb(d, ctx, _dfn(base_pfn), end_pfn - base_pfn + 1, flush_flags);
 
-    if ( rc || (!scratch_page && !rmrr_found) )
-        quarantine_teardown(pdev, drhd);
+    return ret ?: rc;
+}
 
-    return rc;
+/* Check if another overlapping rmrr exist for another device of the context */
+static bool intel_iommu_check_duplicate(struct domain *d, struct pci_dev *pdev,
+                                        struct iommu_context *ctx,
+                                        struct acpi_rmrr_unit *rmrr)
+{
+    struct acpi_rmrr_unit *other_rmrr;
+    u16 bdf;
+    int i;
+
+    for_each_rmrr_device(other_rmrr, bdf, i)
+    {
+        if (rmrr == other_rmrr)
+            continue;
+
+        /* Skip RMRR entries of the same device */
+        if ( PCI_SBDF(rmrr->segment, bdf).sbdf == pdev->sbdf.sbdf )
+            continue;
+
+        /* Check for overlap */
+        if ( rmrr->base_address >= other_rmrr->base_address
+            && rmrr->end_address <= other_rmrr->end_address )
+            return true;
+
+        if ( other_rmrr->base_address >= rmrr->base_address
+            && other_rmrr->end_address <= rmrr->end_address )
+            return true;
+    }
+
+    return false;
+}
+
+static int intel_iommu_unmap_dev_rmrr(struct domain *d, struct pci_dev *pdev,
+                                      struct iommu_context *ctx)
+{
+    struct acpi_rmrr_unit *rmrr;
+    u16 bdf;
+    int ret, i;
+
+    for_each_rmrr_device(rmrr, bdf, i)
+    {
+        if ( PCI_SBDF(rmrr->segment, bdf).sbdf == pdev->sbdf.sbdf )
+        {
+            if ( ctx->arch.vtd.duplicated_rmrr
+                && intel_iommu_check_duplicate(d, pdev, ctx, rmrr) )
+                continue;
+
+            ret = intel_iommu_unmap_identity(d, pdev, ctx, rmrr);
+
+            if ( ret < 0 )
+                return ret;
+        }
+    }
+
+    return 0;
+}
+
+static int intel_iommu_attach(struct domain *d, struct pci_dev *pdev,
+                              struct iommu_context *ctx)
+{
+    int ret;
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if (!pdev || !drhd)
+        return -EINVAL;
+
+    if ( ctx->id )
+    {
+        ret = intel_iommu_map_dev_rmrr(d, pdev, ctx);
+
+        if ( ret )
+            return ret;
+    }
+
+    ret = apply_context(d, ctx, pdev, pdev->devfn);
+
+    if ( ret )
+        return ret;
+
+    pci_vtd_quirk(pdev);
+
+    return ret;
+}
+
+static int intel_iommu_detach(struct domain *d, struct pci_dev *pdev,
+                               struct iommu_context *prev_ctx)
+{
+    int ret;
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if (!pdev || !drhd)
+        return -EINVAL;
+
+    ret = unapply_context_single(d, prev_ctx, drhd->iommu, pdev->bus, pdev->devfn);
+
+    if ( ret )
+        return ret;
+
+    if ( prev_ctx->id )
+        WARN_ON(intel_iommu_unmap_dev_rmrr(d, pdev, prev_ctx));
+
+    check_cleanup_domid_map(d, prev_ctx, NULL, drhd->iommu);
+
+    return ret;
+}
+
+static int intel_iommu_reattach(struct domain *d, struct pci_dev *pdev,
+                                struct iommu_context *prev_ctx,
+                                struct iommu_context *ctx)
+{
+    int ret;
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if (!pdev || !drhd)
+        return -EINVAL;
+
+    if ( ctx->id )
+    {
+        ret = intel_iommu_map_dev_rmrr(d, pdev, ctx);
+
+        if ( ret )
+            return ret;
+    }
+
+    ret = apply_context_single(d, ctx, drhd->iommu, pdev->bus, pdev->devfn);
+
+    if ( ret )
+        return ret;
+
+    if ( prev_ctx->id )
+        WARN_ON(intel_iommu_unmap_dev_rmrr(d, pdev, prev_ctx));
+
+    /* We are overwriting an entry, cleanup previous domid if needed. */
+    check_cleanup_domid_map(d, prev_ctx, pdev, drhd->iommu);
+
+    pci_vtd_quirk(pdev);
+
+    return ret;
 }
 
 static const struct iommu_ops __initconst_cf_clobber vtd_ops = {
     .page_sizes = PAGE_SIZE_4K,
     .init = intel_iommu_domain_init,
     .hwdom_init = intel_iommu_hwdom_init,
-    .quarantine_init = intel_iommu_quarantine_init,
-    .add_device = intel_iommu_add_device,
+    .context_init = intel_iommu_context_init,
+    .context_teardown = intel_iommu_context_teardown,
+    .attach = intel_iommu_attach,
+    .detach = intel_iommu_detach,
+    .reattach = intel_iommu_reattach,
     .enable_device = intel_iommu_enable_device,
-    .remove_device = intel_iommu_remove_device,
-    .assign_device  = intel_iommu_assign_device,
     .teardown = iommu_domain_teardown,
     .clear_root_pgtable = iommu_clear_root_pgtable,
     .map_page = intel_iommu_map_page,
     .unmap_page = intel_iommu_unmap_page,
     .lookup_page = intel_iommu_lookup_page,
-    .reassign_device = reassign_device_ownership,
     .get_device_group_id = intel_iommu_group_id,
     .enable_x2apic = intel_iommu_enable_eim,
     .disable_x2apic = intel_iommu_disable_eim,
diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c
index 950dcd56ef..719985f885 100644
--- a/xen/drivers/passthrough/vtd/quirks.c
+++ b/xen/drivers/passthrough/vtd/quirks.c
@@ -408,9 +408,8 @@ void __init platform_quirks_init(void)
 
 static int __must_check map_me_phantom_function(struct domain *domain,
                                                 unsigned int dev,
-                                                domid_t domid,
-                                                paddr_t pgd_maddr,
-                                                unsigned int mode)
+                                                unsigned int mode,
+                                                struct iommu_context *ctx)
 {
     struct acpi_drhd_unit *drhd;
     struct pci_dev *pdev;
@@ -422,18 +421,18 @@ static int __must_check map_me_phantom_function(struct domain *domain,
 
     /* map or unmap ME phantom function */
     if ( !(mode & UNMAP_ME_PHANTOM_FUNC) )
-        rc = domain_context_mapping_one(domain, drhd->iommu, 0,
-                                        PCI_DEVFN(dev, 7), NULL,
-                                        domid, pgd_maddr, mode);
+        rc = apply_context_single(domain, ctx, drhd->iommu, 0,
+                                  PCI_DEVFN(dev, 7));
     else
-        rc = domain_context_unmap_one(domain, drhd->iommu, 0,
-                                      PCI_DEVFN(dev, 7));
+        rc = unapply_context_single(domain, ctx, drhd->iommu, 0,
+                                    PCI_DEVFN(dev, 7));
 
     return rc;
 }
 
 int me_wifi_quirk(struct domain *domain, uint8_t bus, uint8_t devfn,
-                  domid_t domid, paddr_t pgd_maddr, unsigned int mode)
+                  domid_t domid, unsigned int mode,
+                  struct iommu_context *ctx)
 {
     u32 id;
     int rc = 0;
@@ -457,7 +456,7 @@ int me_wifi_quirk(struct domain *domain, uint8_t bus, uint8_t devfn,
             case 0x423b8086:
             case 0x423c8086:
             case 0x423d8086:
-                rc = map_me_phantom_function(domain, 3, domid, pgd_maddr, mode);
+                rc = map_me_phantom_function(domain, 3, mode, ctx);
                 break;
             default:
                 break;
@@ -483,7 +482,7 @@ int me_wifi_quirk(struct domain *domain, uint8_t bus, uint8_t devfn,
             case 0x42388086:        /* Puma Peak */
             case 0x422b8086:
             case 0x422c8086:
-                rc = map_me_phantom_function(domain, 22, domid, pgd_maddr, mode);
+                rc = map_me_phantom_function(domain, 22, mode, ctx);
                 break;
             default:
                 break;
diff --git a/xen/drivers/passthrough/x86/Makefile b/xen/drivers/passthrough/x86/Makefile
index 75b2885336..1614f3d284 100644
--- a/xen/drivers/passthrough/x86/Makefile
+++ b/xen/drivers/passthrough/x86/Makefile
@@ -1,2 +1,3 @@
 obj-y += iommu.o
+obj-y += arena.o
 obj-$(CONFIG_HVM) += hvm.o
diff --git a/xen/drivers/passthrough/x86/arena.c b/xen/drivers/passthrough/x86/arena.c
new file mode 100644
index 0000000000..984bc4d643
--- /dev/null
+++ b/xen/drivers/passthrough/x86/arena.c
@@ -0,0 +1,157 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/**
+ * Simple arena-based page allocator.
+ *
+ * Allocate a large block using alloc_domheam_pages and allocate single pages
+ * using iommu_arena_allocate_page and iommu_arena_free_page functions.
+ *
+ * Concurrent {allocate/free}_page is thread-safe
+ * iommu_arena_teardown during {allocate/free}_page is not thread-safe.
+ *
+ * Written by Teddy Astie <teddy.astie@vates.tech>
+ */
+
+#include <asm/bitops.h>
+#include <asm/page.h>
+#include <xen/atomic.h>
+#include <xen/bug.h>
+#include <xen/config.h>
+#include <xen/mm-frame.h>
+#include <xen/mm.h>
+#include <xen/xmalloc.h>
+
+#include <asm/arena.h>
+
+/* Maximum of scan tries if the bit found not available */
+#define ARENA_TSL_MAX_TRIES 5
+
+int iommu_arena_initialize(struct iommu_arena *arena, struct domain *d,
+                           unsigned int order, unsigned int memflags)
+{
+    struct page_info *page;
+
+    /* TODO: Maybe allocate differently ? */
+    page = alloc_domheap_pages(d, order, memflags);
+
+    if ( !page )
+        return -ENOMEM;
+
+    arena->map = xzalloc_array(unsigned long, BITS_TO_LONGS(1LLU << order));
+    arena->order = order;
+    arena->region_start = page_to_mfn(page);
+
+    _atomic_set(&arena->used_pages, 0);
+    bitmap_zero(arena->map, iommu_arena_size(arena));
+
+    printk(XENLOG_DEBUG "IOMMU: Allocated arena (%llu pages, start=%"PRI_mfn")\n",
+           iommu_arena_size(arena), mfn_x(arena->region_start));
+    return 0;
+}
+
+int iommu_arena_teardown(struct iommu_arena *arena, bool check)
+{
+    BUG_ON(mfn_x(arena->region_start) == 0);
+
+    /* Check for allocations if check is specified */
+    if ( check && (atomic_read(&arena->used_pages) > 0) )
+        return -EBUSY;
+
+    free_domheap_pages(mfn_to_page(arena->region_start), arena->order);
+
+    arena->region_start = _mfn(0);
+    _atomic_set(&arena->used_pages, 0);
+    xfree(arena->map);
+    arena->map = NULL;
+
+    return 0;
+}
+
+struct page_info *iommu_arena_allocate_page(struct iommu_arena *arena)
+{
+    unsigned int index;
+    unsigned int tsl_tries = 0;
+
+    BUG_ON(mfn_x(arena->region_start) == 0);
+
+    if ( atomic_read(&arena->used_pages) == iommu_arena_size(arena) )
+        /* All pages used */
+        return NULL;
+
+    do
+    {
+        index = find_first_zero_bit(arena->map, iommu_arena_size(arena));
+
+        if ( index >= iommu_arena_size(arena) )
+            /* No more free pages */
+            return NULL;
+
+        /*
+         * While there shouldn't be a lot of retries in practice, this loop
+         * *may* run indefinetly if the found bit is never free due to being
+         * overwriten by another CPU core right after. Add a safeguard for
+         * such very rare cases.
+         */
+        tsl_tries++;
+
+        if ( unlikely(tsl_tries == ARENA_TSL_MAX_TRIES) )
+        {
+            printk(XENLOG_ERR "ARENA: Too many TSL retries !");
+            return NULL;
+        }
+
+        /* Make sure that the bit we found is still free */
+    } while ( test_and_set_bit(index, arena->map) );
+
+    atomic_inc(&arena->used_pages);
+
+    return mfn_to_page(mfn_add(arena->region_start, index));
+}
+
+bool iommu_arena_free_page(struct iommu_arena *arena, struct page_info *page)
+{
+    unsigned long index;
+    mfn_t frame;
+
+    if ( !page )
+    {
+        printk(XENLOG_WARNING "IOMMU: Trying to free NULL page");
+        WARN();
+        return false;
+    }
+
+    frame = page_to_mfn(page);
+
+    /* Check if page belongs to our arena */
+    if ( (mfn_x(frame) < mfn_x(arena->region_start))
+        || (mfn_x(frame) >= (mfn_x(arena->region_start) + iommu_arena_size(arena))) )
+    {
+        printk(XENLOG_WARNING
+               "IOMMU: Trying to free outside arena region [mfn=%"PRI_mfn"]",
+               mfn_x(frame));
+        WARN();
+        return false;
+    }
+
+    index = mfn_x(frame) - mfn_x(arena->region_start);
+
+    /* Sanity check in case of underflow. */
+    ASSERT(index < iommu_arena_size(arena));
+
+    if ( !test_and_clear_bit(index, arena->map) )
+    {
+        /*
+         * Bit was free during our arena_free_page, which means that
+         * either this page was never allocated, or we are in a double-free
+         * situation.
+         */
+        printk(XENLOG_WARNING
+               "IOMMU: Freeing non-allocated region (double-free?) [mfn=%"PRI_mfn"]",
+               mfn_x(frame));
+        WARN();
+        return false;
+    }
+
+    atomic_dec(&arena->used_pages);
+
+    return true;
+}
\ No newline at end of file
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index cc0062b027..3c261539ae 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -12,6 +12,13 @@
  * this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <xen/keyhandler.h>
+#include <xen/lib.h>
+#include <xen/pci.h>
+#include <xen/spinlock.h>
+#include <xen/bitmap.h>
+#include <xen/list.h>
+#include <xen/mm.h>
 #include <xen/cpu.h>
 #include <xen/sched.h>
 #include <xen/iocap.h>
@@ -28,6 +35,9 @@
 #include <asm/mem_paging.h>
 #include <asm/pt-contig-markers.h>
 #include <asm/setup.h>
+#include <asm/iommu.h>
+#include <asm/arena.h>
+#include <asm/page.h>
 
 const struct iommu_init_ops *__initdata iommu_init_ops;
 struct iommu_ops __ro_after_init iommu_ops;
@@ -183,15 +193,42 @@ void __hwdom_init arch_iommu_check_autotranslated_hwdom(struct domain *d)
         panic("PVH hardware domain iommu must be set in 'strict' mode\n");
 }
 
-int arch_iommu_domain_init(struct domain *d)
+int arch_iommu_context_init(struct domain *d, struct iommu_context *ctx, u32 flags)
+{
+    INIT_PAGE_LIST_HEAD(&ctx->arch.pgtables.list);
+    spin_lock_init(&ctx->arch.pgtables.lock);
+
+    INIT_PAGE_LIST_HEAD(&ctx->arch.free_queue);
+
+    return 0;
+}
+
+int arch_iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags)
 {
+    /* Cleanup all page tables */
+    while ( iommu_free_pgtables(d, ctx) == -ERESTART )
+        /* nothing */;
+
+    return 0;
+}
+
+int arch_iommu_flush_free_queue(struct domain *d, struct iommu_context *ctx)
+{
+    struct page_info *pg;
     struct domain_iommu *hd = dom_iommu(d);
 
-    spin_lock_init(&hd->arch.mapping_lock);
+    while ( (pg = page_list_remove_head(&ctx->arch.free_queue)) )
+        iommu_arena_free_page(&hd->arch.pt_arena, pg);
+
+    return 0;
+}
+
+int arch_iommu_domain_init(struct domain *d)
+{
+    struct domain_iommu *hd = dom_iommu(d);
 
-    INIT_PAGE_LIST_HEAD(&hd->arch.pgtables.list);
-    spin_lock_init(&hd->arch.pgtables.lock);
     INIT_LIST_HEAD(&hd->arch.identity_maps);
+    iommu_arena_initialize(&hd->arch.pt_arena, NULL, iommu_hwdom_arena_order, 0);
 
     return 0;
 }
@@ -203,8 +240,9 @@ void arch_iommu_domain_destroy(struct domain *d)
      * domain is destroyed. Note that arch_iommu_domain_destroy() is
      * called unconditionally, so pgtables may be uninitialized.
      */
-    ASSERT(!dom_iommu(d)->platform_ops ||
-           page_list_empty(&dom_iommu(d)->arch.pgtables.list));
+    struct domain_iommu *hd = dom_iommu(d);
+
+    ASSERT(!hd->platform_ops);
 }
 
 struct identity_map {
@@ -227,7 +265,7 @@ int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,
     ASSERT(base < end);
 
     /*
-     * No need to acquire hd->arch.mapping_lock: Both insertion and removal
+     * No need to acquire hd->arch.lock: Both insertion and removal
      * get done while holding pcidevs_lock.
      */
     list_for_each_entry( map, &hd->arch.identity_maps, list )
@@ -356,8 +394,8 @@ static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
              */
             if ( iomem_access_permitted(d, s, s) )
             {
-                rc = iommu_map(d, _dfn(s), _mfn(s), 1, perms,
-                               &info->flush_flags);
+                rc = _iommu_map(d, _dfn(s), _mfn(s), 1, perms,
+                                &info->flush_flags, 0);
                 if ( rc < 0 )
                     break;
                 /* Must map a frame at least, which is what we request for. */
@@ -366,8 +404,8 @@ static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
             }
             s++;
         }
-        while ( (rc = iommu_map(d, _dfn(s), _mfn(s), e - s + 1,
-                                perms, &info->flush_flags)) > 0 )
+        while ( (rc = _iommu_map(d, _dfn(s), _mfn(s), e - s + 1,
+                                 perms, &info->flush_flags, 0)) > 0 )
         {
             s += rc;
             process_pending_softirqs();
@@ -533,7 +571,6 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
 
 void arch_pci_init_pdev(struct pci_dev *pdev)
 {
-    pdev->arch.pseudo_domid = DOMID_INVALID;
 }
 
 unsigned long *__init iommu_init_domid(domid_t reserve)
@@ -564,8 +601,6 @@ domid_t iommu_alloc_domid(unsigned long *map)
     static unsigned int start;
     unsigned int idx = find_next_zero_bit(map, UINT16_MAX - DOMID_MASK, start);
 
-    ASSERT(pcidevs_locked());
-
     if ( idx >= UINT16_MAX - DOMID_MASK )
         idx = find_first_zero_bit(map, UINT16_MAX - DOMID_MASK);
     if ( idx >= UINT16_MAX - DOMID_MASK )
@@ -591,7 +626,7 @@ void iommu_free_domid(domid_t domid, unsigned long *map)
         BUG();
 }
 
-int iommu_free_pgtables(struct domain *d)
+int iommu_free_pgtables(struct domain *d, struct iommu_context *ctx)
 {
     struct domain_iommu *hd = dom_iommu(d);
     struct page_info *pg;
@@ -601,17 +636,20 @@ int iommu_free_pgtables(struct domain *d)
         return 0;
 
     /* After this barrier, no new IOMMU mappings can be inserted. */
-    spin_barrier(&hd->arch.mapping_lock);
+    spin_barrier(&ctx->arch.pgtables.lock);
 
     /*
      * Pages will be moved to the free list below. So we want to
      * clear the root page-table to avoid any potential use after-free.
      */
-    iommu_vcall(hd->platform_ops, clear_root_pgtable, d);
+    iommu_vcall(hd->platform_ops, clear_root_pgtable, d, ctx);
 
-    while ( (pg = page_list_remove_head(&hd->arch.pgtables.list)) )
+    while ( (pg = page_list_remove_head(&ctx->arch.pgtables.list)) )
     {
-        free_domheap_page(pg);
+        if (ctx->id == 0)
+            free_domheap_page(pg);
+        else
+            iommu_arena_free_page(&hd->arch.pt_arena, pg);
 
         if ( !(++done & 0xff) && general_preempt_check() )
             return -ERESTART;
@@ -621,6 +659,7 @@ int iommu_free_pgtables(struct domain *d)
 }
 
 struct page_info *iommu_alloc_pgtable(struct domain_iommu *hd,
+                                      struct iommu_context *ctx,
                                       uint64_t contig_mask)
 {
     unsigned int memflags = 0;
@@ -632,7 +671,11 @@ struct page_info *iommu_alloc_pgtable(struct domain_iommu *hd,
         memflags = MEMF_node(hd->node);
 #endif
 
-    pg = alloc_domheap_page(NULL, memflags);
+    if (ctx->id == 0)
+        pg = alloc_domheap_page(NULL, memflags);
+    else
+        pg = iommu_arena_allocate_page(&hd->arch.pt_arena);
+
     if ( !pg )
         return NULL;
 
@@ -665,9 +708,7 @@ struct page_info *iommu_alloc_pgtable(struct domain_iommu *hd,
 
     unmap_domain_page(p);
 
-    spin_lock(&hd->arch.pgtables.lock);
-    page_list_add(pg, &hd->arch.pgtables.list);
-    spin_unlock(&hd->arch.pgtables.lock);
+    page_list_add(pg, &ctx->arch.pgtables.list);
 
     return pg;
 }
@@ -706,17 +747,22 @@ static void cf_check free_queued_pgtables(void *arg)
     }
 }
 
-void iommu_queue_free_pgtable(struct domain_iommu *hd, struct page_info *pg)
+void iommu_queue_free_pgtable(struct iommu_context *ctx, struct page_info *pg)
 {
     unsigned int cpu = smp_processor_id();
 
-    spin_lock(&hd->arch.pgtables.lock);
-    page_list_del(pg, &hd->arch.pgtables.list);
-    spin_unlock(&hd->arch.pgtables.lock);
+    spin_lock(&ctx->arch.pgtables.lock);
+    page_list_del(pg, &ctx->arch.pgtables.list);
+    spin_unlock(&ctx->arch.pgtables.lock);
 
-    page_list_add_tail(pg, &per_cpu(free_pgt_list, cpu));
+    if ( !ctx->id )
+    {
+        page_list_add_tail(pg, &per_cpu(free_pgt_list, cpu));
 
-    tasklet_schedule(&per_cpu(free_pgt_tasklet, cpu));
+        tasklet_schedule(&per_cpu(free_pgt_tasklet, cpu));
+    }
+    else
+        page_list_add_tail(pg, &ctx->arch.free_queue);
 }
 
 static int cf_check cpu_callback(
-- 
2.45.2



Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 14:33:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 14:33:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757558.1166569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRura-0000Kb-AV; Thu, 11 Jul 2024 14:33:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757558.1166569; Thu, 11 Jul 2024 14: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 1sRura-0000KU-7E; Thu, 11 Jul 2024 14:33:38 +0000
Received: by outflank-mailman (input) for mailman id 757558;
 Thu, 11 Jul 2024 14: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=n1Hg=OL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRurY-0000KE-RU
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 14:33:36 +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 8dc017b6-3f92-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 16:33:35 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-42565670e20so12472155e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 07:33: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-1fbb6a122a1sm52486145ad.45.2024.07.11.07.33.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 07:33: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: 8dc017b6-3f92-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720708414; x=1721313214; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BMwvlBZnkRRQ3eaqzdsDt1wDXDNWJ3MWLuDF6WvDsxc=;
        b=E7B1fxJm3M9TRX1deXcs5IMQ3h1YJMvsqu5u0vDuyPXFFzTe1EXTV3hjxszrt0KDeY
         uW2zioRFRX7H1YqwHLO5p8t57aVk10QAk+t10PiSDS/2PDWGvPKmo1B+kl8Uv1Pk/itZ
         ssilVRDZ8cUDEvEtEYKTPuWgYzY/8tYSKP6UUQlcRfEZ12exGW8d6XKOAZUs2bXkS0mX
         br56XwI2je5dVhHHC4KNKGbbRpKWITLiMCVTkrg8VYe5YsVW6f2Vr8EY3t6bRa4nHHkh
         QqzJ7BXXX4/7TSTxMslhcRD5sN6XWQ1K5OIi2o3sQkeSlpHo3ni3Sd3UsU1f6yJGve+V
         MZxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720708414; x=1721313214;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BMwvlBZnkRRQ3eaqzdsDt1wDXDNWJ3MWLuDF6WvDsxc=;
        b=Vc2ZAQqkTSxZPEXFOapJ7CKWCeoWiCplD/rgWDxAgLEr57t496ZNsOYkO96fLGpZhT
         ekbEBg3UUYBeudxbqI3WPAUshYFcq2hiUtjOzRE03PnakMP5+i5Dyadk9p7Lw9Y5Zrx0
         vPCBIUbe/2Q/0O7l8m5AsygRMCdhmZrAU4++h7PpovcjVZmUkvCGH42Ev1TXrR+zhXLY
         7oVfT9IcWXNKlG2plwiEtVj6L501L8AUdw42NwSFnRxuZnCDeDIv3V4klqt08chihkty
         80Yd+5BMfE4FcMF7qFWxieTYolA1nt1SzQLmN+i41lSSUhQjOiLTcetMvTluzhfYuOYa
         3XGw==
X-Forwarded-Encrypted: i=1; AJvYcCV9YGywuhxL8U9H0qfciQ4mvn9Ysz06qIwsOWb8ywKyTFGN2FbIVTWZDTUYSbk3q9C8ogCmLDBIGZS8K09DRFpYYUF0NvNe3jOTY5oCT/I=
X-Gm-Message-State: AOJu0YxgeIHnKc+Yv83pwqdJIZXNvqzFH1tFWRBSfOOTy9a/zNw7SN15
	2HhW/oHZ+lQzFzUpOdKcJaQKoGIHW5ZAVkySPJQ8CHoc6j/nknBAnYe7C3zrKA==
X-Google-Smtp-Source: AGHT+IEMBO0FPp+bdz60j1RxNvI76hvrZ+Ox9bzM+VXK7fjhZJe2Mfj9pA+lELZWo1q3Fhm37BaUgw==
X-Received: by 2002:adf:f386:0:b0:361:e909:60c3 with SMTP id ffacd0b85a97d-367f04ca2c1mr2808318f8f.9.1720708414349;
        Thu, 11 Jul 2024 07:33:34 -0700 (PDT)
Message-ID: <95ab6441-5aad-4536-ae1b-034dcd1a69ea@suse.com>
Date: Thu, 11 Jul 2024 16:33:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 4/5] xen/riscv: enable GENERIC_BUG_FRAME
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1719918148.git.oleksii.kurochko@gmail.com>
 <c51c485bac43b7589961aabec8af1b82d4673b94.1719918148.git.oleksii.kurochko@gmail.com>
 <ca373d42-22f1-41a2-bdbb-4733145c635a@suse.com>
 <a1224198ef6845f8f81baaaebe1d436726460c0e.camel@gmail.com>
 <bff4f1e4-9242-4a1c-bbca-ba3d609db03f@suse.com>
 <df82de5d4dcf5224f58d8595ff5ad03429e9cad9.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <df82de5d4dcf5224f58d8595ff5ad03429e9cad9.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.07.2024 14:14, Oleksii wrote:
> On Thu, 2024-07-11 at 11:25 +0200, Jan Beulich wrote:
>> On 11.07.2024 10:50, Oleksii wrote:
>>> On Wed, 2024-07-10 at 12:01 +0200, Jan Beulich wrote:
>>>> On 02.07.2024 13:23, Oleksii Kurochko wrote:
>>>>> @@ -101,8 +102,38 @@ static void do_unexpected_trap(const
>>>>> struct
>>>>> cpu_user_regs *regs)
>>>>>      die();
>>>>>  }
>>>>>  
>>>>> +static bool is_valid_bug_insn(uint32_t insn)
>>>>> +{
>>>>> +    return insn == BUG_INSN_32 ||
>>>>> +           (insn & COMPRESSED_INSN_MASK) == BUG_INSN_16;
>>>>> +}
>>>>> +
>>>>> +/* Should be used only on Xen code */
>>>>> +static uint32_t read_instr(unsigned long pc)
>>>>> +{
>>>>> +    uint16_t instr16 = *(uint16_t *)pc;
>>>>> +
>>>>> +    ASSERT(is_kernel_text(pc + 1) || is_kernel_inittext(pc +
>>>>> 1));
>>>>> +
>>>>> +    if ( GET_INSN_LENGTH(instr16) == 2 )
>>>>> +        return instr16;
>>>>> +
>>>>> +    ASSERT(is_kernel_text(pc + 3) || is_kernel_inittext(pc +
>>>>> 3));
>>>>> +
>>>>> +    return *(uint32_t *)pc;
>>>>> +}
>>>>
>>>> Related to the point made further down: If either of these
>>>> assertions
>>>> fails,
>>>> won't we come back again right here? If either of the
>>>> is_kernel_*text()
>>>> wasn't working quite right, wouldn't we be at risk of entering an
>>>> infinite
>>>> loop (presumably not quite infinite because of the stack
>>>> overflowing
>>>> at some
>>>> point)?
>>> It is really possible to have infinite loop here so it should be
>>> better
>>> to use 'if' with die() or panic().
>>>
>>>>
>>>>>  void do_trap(struct cpu_user_regs *cpu_regs)
>>>>>  {
>>>>> +    register_t pc = cpu_regs->sepc;
>>>>> +    uint32_t instr = read_instr(pc);
>>>>> +
>>>>> +    if ( ( is_valid_bug_insn(instr) ) && (
>>>>> do_bug_frame(cpu_regs,
>>>>> pc) >= 0 ) )
>>>>
>>>> No consideration of the kind of exception? I'd expect it is one
>>>> very
>>>> specific one which the BUG insn would raise, and then there's no
>>>> point
>>>> fetching the insn when it's a different kind of exception.
>>> Good point.
>>>
>>> We should have 0x3 ( breakpoint exception ) in scause register. We
>>> can
>>> just check that without reading instruction and then also
>>> is_valid_bug_insn could be dropped too.
>>
>> Just that then you'll also lose the is_kernel_*text() checking, which
>> I
>> understand is there to remind you/us that one this becomes reachable
>> from non-Xen code, adjustments are going to be needed.
> One thing I wrote incorrectly is that we still need fetch instruction
> or at least 16 bits to identify the length of instruction to set proper
> sepc:
>     cpu_regs->sepc += GET_INSN_LENGTH(instr);
> 
> We could write that in the following way:
>     cpu_regs->sepc += GET_INSN_LENGTH(*(uint16_t *)pc);
> Would it be okay?

I think so, as long as you retain the assertion in some way, ahead of the
deref of pc.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 14:37:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 14:37:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757564.1166579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuvC-0001F8-Og; Thu, 11 Jul 2024 14:37:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757564.1166579; Thu, 11 Jul 2024 14:37:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuvC-0001F1-Ln; Thu, 11 Jul 2024 14:37:22 +0000
Received: by outflank-mailman (input) for mailman id 757564;
 Thu, 11 Jul 2024 14:37: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=n1Hg=OL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sRuvB-0001Ev-36
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 14:37:21 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 133b0d53-3f93-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 16:37:18 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2eabd22d3f4so10609801fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 07:37: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
 98e67ed59e1d1-2ca4fc29c81sm4702046a91.29.2024.07.11.07.37.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 07:37: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: 133b0d53-3f93-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720708638; x=1721313438; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7Jrg7x/e1yjqXBKrhFhAnFlIUkCngpIsExB73Yo76Cw=;
        b=fwvNbQuhbldkEBfqkNAzZnDT+GZLvD7uKT16I/VOClAF+najsR3zlNbWkTb043Q3ED
         vGZ0Ut8S39GETnJXfdVdELMd0unRhW6PJgBs/KNjE4nquIW3uh99CLN7ZkJ6AKClY6GZ
         0yBWLJJGYjvPfOHkFMjQD8lAlynjVb7EEHX/vjlJjfHJJ4mnuQbbT++KHcP5VE8V4UYQ
         cvftOVSriOo3tmA2hu19EwDE9i+eutCgYHGAYf3RzPhoKF1BmQn4F6ev0qgJ/CbBsBEq
         smtntbvpyKByclOWfeIKTSin6sRM7o7BmBqtGw/TG5Coz/djHDrbdXuVCsDEsYMfHMlc
         Rh+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720708638; x=1721313438;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7Jrg7x/e1yjqXBKrhFhAnFlIUkCngpIsExB73Yo76Cw=;
        b=q1YCjm9omysD24YMATD5h12aFH6F+9mnmQsD58dn8ym+LEjEx7wPlLBD1rYwgzBHgx
         5q4zzjsYtxkfMKwpPZMUh5OzRqUOg+3yQXPytFaNl+kYUMZlUL6AS+gZpN5mYr87ePF3
         6YkDgOx9SAqlC/p7aWbij5v2L4t+H3ZGUBrAkCkNjAXCQOOuAbFtxrwX0feZIeToEXnW
         hjv+ZzND9DC0Y/pwrvDccnZhIazDTo9NoT8bjwMipVPLr2uCFcXPdJiET8xtpVHW3H6B
         ODTHw3nWPoqgts8rlZMVRAKXoGTLp7SQIR/DaRbEEOPlTaD9HjbjkS9A0Nxt48/tYApJ
         U7Ww==
X-Forwarded-Encrypted: i=1; AJvYcCWEECD48Vhb0n5i4lmf25Gd6LlQ0o9fEPaB5gMUpoN947RZjDzAJPqwbgOe+mqmH3kDZRUiF6GjUDNcper/R1Y+1YmETVnNMKFTA+jv/qE=
X-Gm-Message-State: AOJu0Yyl/i8wNbcBft9XEkj9BKgiTVsyru6OroMyuCMYSJy/EZxStEpN
	y6gNWnr9Od8HlaIpp/ipxTFmMCGV75eyMpXQ/CSMJKSOiUSHZFKaBQkLuvEYLw==
X-Google-Smtp-Source: AGHT+IF51aabHrJGXpXatMCo9pKIqnftiTIvhvAaxtRXfI4F/bMPCdFRnMDZDm6BUcmBzw3bSXzyAg==
X-Received: by 2002:a2e:9b5a:0:b0:2ee:7d3c:670 with SMTP id 38308e7fff4ca-2eeb30e39c5mr60707941fa.19.1720708638324;
        Thu, 11 Jul 2024 07:37:18 -0700 (PDT)
Message-ID: <2bb47153-2c9f-4c7e-a1bb-e32a628e990d@suse.com>
Date: Thu, 11 Jul 2024 16:37:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/5] xen/riscv: map FDT
To: Oleksii <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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Julien Grall <julien@xen.org>
References: <cover.1720002425.git.oleksii.kurochko@gmail.com>
 <7e492df051c949744755a221c0448c740d2c681b.1720002425.git.oleksii.kurochko@gmail.com>
 <3afd94c0-25f4-4ed8-83d2-6f261b8a64b3@suse.com>
 <021d29540f8e9abec118e9ca9dcd9675310eda84.camel@gmail.com>
 <9592e857-bf1c-4e26-acd7-dfb5bb12103e@suse.com>
 <fda966116ce17b9be0b1a467bd31436a6b5ad225.camel@gmail.com>
 <e58a9128-efdd-4bff-9562-08d5605d0a13@suse.com>
 <040e6b1d9b8bbe2b316e0e5b891c2564df28335d.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <040e6b1d9b8bbe2b316e0e5b891c2564df28335d.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.07.2024 13:28, Oleksii wrote:
> On Thu, 2024-07-11 at 12:50 +0200, Jan Beulich wrote:
>> On 11.07.2024 12:26, Oleksii wrote:
>>> On Thu, 2024-07-11 at 11:54 +0200, Jan Beulich wrote:
>>>> On 11.07.2024 11:40, Oleksii wrote:
>>>>> On Wed, 2024-07-10 at 14:38 +0200, Jan Beulich wrote:
>>>>>> On 03.07.2024 12:42, Oleksii Kurochko wrote:
>>>>>>> Except mapping of FDT, it is also printing command line
>>>>>>> passed
>>>>>>> by
>>>>>>> a DTB and initialize bootinfo from a DTB.
>>>>>>
>>>>>> I'm glad the description isn't empty here. However, ...
>>>>>>
>>>>>>> --- a/xen/arch/riscv/riscv64/head.S
>>>>>>> +++ b/xen/arch/riscv/riscv64/head.S
>>>>>>> @@ -41,6 +41,9 @@ FUNC(start)
>>>>>>>  
>>>>>>>          jal     setup_initial_pagetables
>>>>>>>  
>>>>>>> +        mv      a0, s1
>>>>>>> +        jal     fdt_map
>>>>>>> +
>>>>>>>          /* Calculate proper VA after jump from 1:1 mapping
>>>>>>> */
>>>>>>>          la      a0, .L_primary_switched
>>>>>>>          sub     a0, a0, s2
>>>>>>
>>>>>> ... it could do with clarifying why this needs calling from
>>>>>> assembly
>>>>>> code. Mapping the FDT clearly looks like something that wants
>>>>>> doing
>>>>>> from start_xen(), i.e. from C code.
>>>>> fdt_map() expected to work while MMU is off as it is using
>>>>> setup_initial_mapping() which is working with physical address.
>>>>
>>>> Hmm, interesting. When the MMU is off, what does "map" mean? Yet
>>>> then
>>>> it feels I'm misunderstanding what you're meaning to tell me ...
>>> Let's look at examples of the code:
>>> 1. The first thing issue will be here:
>>>    void* __init early_fdt_map(paddr_t fdt_paddr)
>>>    {
>>>        unsigned long dt_phys_base = fdt_paddr;
>>>        unsigned long dt_virt_base;
>>>        unsigned long dt_virt_size;
>>>    
>>>        BUILD_BUG_ON(MIN_FDT_ALIGN < 8);
>>>        if ( !fdt_paddr || fdt_paddr % MIN_FDT_ALIGN || fdt_paddr %
>>> SZ_2M 
>>>    ||
>>>              fdt_totalsize(fdt_paddr) > BOOT_FDT_VIRT_SIZE )
>>> MMU doesn't now about virtual address of fdt_paddr as fdt_paddr
>>> wasn't
>>> mapped.
>>>
>>> 2. In setup_initial_mapping() we have HANDLE_PGTBL() where pgtbl is
>>> a
>>> pointer to physical address ( which also  should be mapped in MMU
>>> if we
>>> want to access it after MMU is enabled ):
>>>    #define
>>> HANDLE_PGTBL(curr_lvl_num)                                    
>>>    \
>>>        index = pt_index(curr_lvl_num,
>>> page_addr);                        
>>>    \
>>>        if ( pte_is_valid(pgtbl[index])
>>> )                                 
>>>    \
>>>       
>>> {                                                                 
>>>    \
>>>            /* Find L{ 0-3 } table
>>> */                                     
>>>    \
>>>            pgtbl = (pte_t
>>> *)pte_to_paddr(pgtbl[index]);                  
>>>    \
>>>       
>>> }                                                                 
>>>    \
>>>       
>>> else                                                              
>>>    \
>>>       
>>> {                                                                 
>>>    \
>>>            /* Allocate new L{0-3} page table
>>> */                          
>>>    \
>>>            if ( mmu_desc->pgtbl_count == PGTBL_INITIAL_COUNT
>>> )           
>>>    \
>>>           
>>> {                                                             
>>>    \
>>>                early_printk("(XEN) No initial table
>>> available\n");       
>>>    \
>>>                /* panic(), BUG() or ASSERT() aren't ready now.
>>> */        
>>>    \
>>>               
>>> die();                                                    
>>>    \
>>>           
>>> }                                                             
>>>    \
>>>            mmu_desc-
>>>> pgtbl_count++;                                      
>>>    \
>>>            pgtbl[index] = paddr_to_pte((unsigned long)mmu_desc-
>>>    >next_pgtbl,    \
>>>                                       
>>> PTE_VALID);                       
>>>    \
>>>            pgtbl = mmu_desc-
>>>> next_pgtbl;                                 
>>>    \
>>>            mmu_desc->next_pgtbl +=
>>> PAGETABLE_ENTRIES;                    
>>>    \
>>>        }
>>>    
>>> So we can't use setup_initial_mapping() when MMU is enabled as
>>> there is
>>> a part of the code which uses physical address which are not
>>> mapped.
>>>
>>> We have only mapping for for liner_start <-> load_start and the
>>> small
>>> piece of code in text section ( _ident_start ):
>>>     setup_initial_mapping(&mmu_desc,
>>>                           linker_start,
>>>                           linker_end,
>>>                           load_start);
>>>
>>>     if ( linker_start == load_start )
>>>         return;
>>>
>>>     ident_start = (unsigned long)turn_on_mmu
>>> &XEN_PT_LEVEL_MAP_MASK(0);
>>>     ident_end = ident_start + PAGE_SIZE;
>>>
>>>     setup_initial_mapping(&mmu_desc,
>>>                           ident_start,
>>>                           ident_end,
>>>                           ident_start);
>>>
>>> We can use setup_initial_mapping() when MMU is enabled only in case
>>> when linker_start is equal to load_start.
>>>
>>> As an option we can consider for as a candidate for identaty
>>> mapping
>>> also section .bss.page_aligned where root and nonroot page tables
>>> are
>>> located.
>>>
>>> Does it make sense now?
>>
>> I think so, yet at the same time it only changes the question: Why is
>> it
>> that you absolutely need to use setup_initial_mapping()?
> There is no strict requirement to use setup_initial_mapping(). That
> function is available to me at the moment, and I haven't found a better
> option other than reusing what I currently have.
> 
> If not to use setup_initial_mapping() then it is needed to introduce
> xen_{un}map_table(), create_xen_table(), xen_pt_next_level(),
> xen_pt_update{_entry}(), map_pages_to_xen(). What I did a little bit
> later here:
> https://gitlab.com/xen-project/people/olkur/xen/-/commit/a4619d0902e0a012ac2f709d31621a8d499bca97
> Am I confusing something?
> 
> Could you please recommend me how to better?

I think you've sorted this for yourself already, judging from subsequent
communication on this thread, where you indicate you'll introduce
map_pages_to_xen() first. That's the way I'd have expected you to go.

Jan



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 14:41:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 14:41:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757568.1166589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRuzY-00031z-7W; Thu, 11 Jul 2024 14:41:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757568.1166589; Thu, 11 Jul 2024 14: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 1sRuzY-00031s-52; Thu, 11 Jul 2024 14:41:52 +0000
Received: by outflank-mailman (input) for mailman id 757568;
 Thu, 11 Jul 2024 14: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=FutR=OL=bounce.vates.tech=bounce-md_30504962.668fef2a.v1-6b4da828666440eba984c71482c3a918@srs-se1.protection.inumbo.net>)
 id 1sRuzW-00031k-DS
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 14:41:50 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3c1eb28-3f93-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 16:41:48 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WKcqt6bJ7zB5vBHF
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 14:41:46 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 6b4da828666440eba984c71482c3a918; Thu, 11 Jul 2024 14:41: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: b3c1eb28-3f93-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720708906; x=1720969406;
	bh=se2giUvnO4PwVBvTRL7DluEUm8fFM6gw7G2S7YthMY0=;
	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=ZdxKOz3S2q9zXpDt/OeEtgV4S8Anl8sKG8O8o4gNNul6wqWkoaoNkdfKNnAvoX8Iy
	 w6hP6za1sJdGSC2Zkywkq5YEpuZztyxOOGC1byRNrdnhZ+OAPMjR0eJXQB1JOpJTGc
	 bL0szwWqjws9DhRXoTeUAwQC+08scBpkQlqSkuAVJKldko+FTJp8apDIAuBa+ZDri/
	 ZuZD8ToC3nOaLTnMdM9T1JyY3ArqrM7JHUSPlCdkVpThFiciQb9JanvzPqQrH+aRyE
	 9LV64PzBGVrSlaL3ZRFv4SEAAtJ7EPbmec2sObVDjHaKJ1eUTuTtr2uMbRJod450c5
	 UXOoS45hchjBQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720708906; x=1720969406; i=anthony.perard@vates.tech;
	bh=se2giUvnO4PwVBvTRL7DluEUm8fFM6gw7G2S7YthMY0=;
	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=iAlquJleJ0VQdEW6dK7ju5aZezp6prfFG1oZHsyIHX+3INQjOFMQ8ImDHdQrFYVwk
	 1Ac7dDJHHjL9luE2fufwOxMM6BYWsBSXJATJtlOckn19xUNW5Z+T1xsr0wwfqeBRwM
	 /3R9R1qNtsXhyj6mIjSqE/dCeBHDIn9fMVEgH9aVZ9+1r8k4PIeNM25n11eXg8y/wW
	 c/saT+5DPJ8JL8UdcK+PB/iQPhOjt79XrqXPUnEHfP/dtTwE6cudnHMKakAKbc4jnb
	 AkxT6tfitY2bA1S20kfUs9EyxZG2H1UTm8pho3BzredJdYaMqOKx4jUq+mkHIkNrsZ
	 n9e1vBkOB3xPg==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2007/12]=20CI:=20Introduce=20a=20debian:12-ppc64le=20container?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720708905608
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <Zo/vKR2YuDJdFLq+@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-8-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-8-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.6b4da828666440eba984c71482c3a918?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 14:41:46 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:12PM +0100, Andrew Cooper wrote:
> diff --git a/automation/build/debian/12-ppc64le.dockerfile b/automation/build/debian/12-ppc64le.dockerfile
> new file mode 100644
> index 000000000000..3b311e675ef5
> --- /dev/null
> +++ b/automation/build/debian/12-ppc64le.dockerfile
> @@ -0,0 +1,36 @@
...
> +ENV CROSS_COMPILE=powerpc64le-linux-gnu-
> +ENV XEN_TARGET_ARCH=ppc64

I don't really like these two envvars. The second one is already set in
the env by gitlab, the first one could in theory also come from
gitlab-ci.

But I guess that comment comes from the fact that I don't really know
why we would want a second bookworm containers with only a few packages.

> +
> +RUN <<EOF
> +#!/bin/bash
> +    set -e
> +
> +    useradd --create-home user
> +
> +    apt-get -y update
> +
> +    DEPS=(
> +        # Xen
> +        bison
> +        build-essential
> +        checkpolicy
> +        flex
> +        gcc-powerpc64le-linux-gnu
> +        python3-minimal
> +
> +        # Qemu for test phase
> +        qemu-system-ppc
> +    )
> +
> +    apt-get -y --no-install-recommends install "${DEPS[@]}"
> +    rm -rf /var/lib/apt/lists/*

Other containers do also `apt-get clean` is this not needed? Or maybe
the original containers is setup to not save packages?

/me looking into /var/cache

Looks empty enough, so I guess `apt-get clean` is optional.

Changes looks good enough, so:
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

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 Jul 11 15:16:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 15:16:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757581.1166599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRvX8-0000D8-0N; Thu, 11 Jul 2024 15:16:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757581.1166599; Thu, 11 Jul 2024 15: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 1sRvX7-0000D1-Sb; Thu, 11 Jul 2024 15:16:33 +0000
Received: by outflank-mailman (input) for mailman id 757581;
 Thu, 11 Jul 2024 15:16: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRvX7-0000Cv-FX
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 15:16:33 +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 8e0b8e35-3f98-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 17:16:32 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-58ef19aa69dso1332615a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 08:16:32 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6e1742sm259545066b.70.2024.07.11.08.16.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 08: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: 8e0b8e35-3f98-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720710992; x=1721315792; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tnPB3qftd3vvj7nZ0A4tQ6LT0BW77BDW/tokRA8p4N8=;
        b=M4YsfEVVQ09PxP/Md7ZHYKKis6o8az2fKJ2Lg71v9Yn1r/i3RctXKll3/wHuG0c0R9
         wEi0MAfoIE11ihLD+uRD9Jb3TwkXkndgRCllKws8AcROEVbPfAI+npmLFH2GcTHzvZ2W
         tlgo+VhiULSIWJo2BAUoMk45EkkYQi+e4sRxg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720710992; x=1721315792;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tnPB3qftd3vvj7nZ0A4tQ6LT0BW77BDW/tokRA8p4N8=;
        b=gNF38u6zw61ybf/VmtR6/wB+5uJlSFAPye6xuiLTCsSfvIGrq6b0+5TGpX1tE57Q5b
         EuVGXLlaNFPYrCvE4fWZ0TJ9Cy/Gp53osukRzH3jgqd/qbBKoqDUhiJ6eHZKL08WZM/K
         tHMAuS7MNfQV46MKwvyurjPw1MnO88s2NKR2w9r+wvckOQMDHqG3p10yVIlHInrRmWkU
         tC8u0peKAlLvSGOV95WBrC/DLdoozBr1dtoSORJagcsfvioyXefyYHCxWyLiFCBfQqLj
         q4S3jKaHEMTnKKVXLqxfQZ8LocB+uwhhoKXjV14H11cJ5DFDCZrmXFbdJxtbA2SXW23x
         okLA==
X-Gm-Message-State: AOJu0YyN2hOSl35FGD1lHjQSSsrU7dHJOt6+8mZanPIEqzI/O0FcJ7f1
	6VSOK/Y1qY4eLWggvoSY+ypN9xErvflTH0+CqENyovhm45DWVF9fWXxqldBDQhI=
X-Google-Smtp-Source: AGHT+IEFCS+n1qmG64ndRkSMvJq6C7dUY+95piaeO7uisZ/gjR9WXMlexO563ET4dhIZelP0D+c7fg==
X-Received: by 2002:a17:907:3f1a:b0:a79:82c1:a5b2 with SMTP id a640c23a62f3a-a7982c1a956mr447560866b.9.1720710991756;
        Thu, 11 Jul 2024 08:16:31 -0700 (PDT)
Message-ID: <5eb4de29-edd3-447a-845a-57d20ad8462b@citrix.com>
Date: Thu, 11 Jul 2024 16:16:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] CI: Remove useless/misleading randconfig jobs
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240711111517.3064810-3-andrew.cooper3@citrix.com> <Zo/ZdG8pt5FIledD@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <Zo/ZdG8pt5FIledD@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/07/2024 2:09 pm, Anthony PERARD wrote:
> On Thu, Jul 11, 2024 at 12:15:07PM +0100, Andrew Cooper wrote:
>> Randconfig builds pick CONFIG_DEBUG with 50% probability.  Therefore
>> $foo{,-debug}-randconfig are two identical jobs with misleading names.
>>
>> Furthermore, arm64 has a randconfig jobs for both the alpine and bookworm
>> build environments.  Both use GCC 12.2, so we have 4 identical jobs.  Delete 3
>> of them.
>>
>> This leaves us with 4 primary randconfig jobs:
>>
>>   gitlab-ci/build.yaml:381:debian-bookworm-gcc-arm32-randconfig:
>>   gitlab-ci/build.yaml:429:alpine-3.18-gcc-arm64-randconfig:
>>   gitlab-ci/build.yaml:495:archlinux-current-gcc-riscv64-randconfig:
>>   gitlab-ci/build.yaml:640:debian-bookworm-gcc-randconfig:
>>
>> as PPC64 doesn't want randconfig right now, and buster-gcc-ibt is a special
>> job with a custom compiler.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

>
> Thanks,
>
>> If we want to run multiple identical randconfig jobs, that's spelt
>>
>>   parallel: 5
>>
>> in the configuration, and here is an example of what such a run looks like:
>>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1368824041
>>
>> Notice the randconfig jobs have a 5 in place of a retry button, and show a
>> submenu when clicked on.
> We already have "parallel: 2" on the whole pipeline, give or take, but
> those are quick jobs so it might be worth it to run them a few more time
> on a pipeline.

I'm afraid I don't follow.

The runners themselves are set up to run concurrent jobs.  I could well
believe that's spelt parallel: in the runner config files.

Here, its really jobs:parallel which is the way of saying "I want 5
copies of this job to run in the pipeline".

Obviously, 5 is arbitrary.  I was thinking of having a scheduled (once
per day, at 3AM or whenever) running randconfig only with a parallel:20
or so, so we can make good use of otherwise-idle time.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 15:24:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 15:24:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757590.1166609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRves-00029m-RM; Thu, 11 Jul 2024 15:24:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757590.1166609; Thu, 11 Jul 2024 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 1sRves-00029f-Nc; Thu, 11 Jul 2024 15:24:34 +0000
Received: by outflank-mailman (input) for mailman id 757590;
 Thu, 11 Jul 2024 15: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRver-00029Z-AN
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 15:24: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 aa50bf2b-3f99-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 17:24:29 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-58f9874aeb4so1425992a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 08:24:29 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6e37ffsm261266066b.76.2024.07.11.08.24.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 08:24: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: aa50bf2b-3f99-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720711469; x=1721316269; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=L0pID39C586cv2tz/qyg/E3lVYfL5a4bkucs6I4x0Fw=;
        b=ffbVKTv6B/S3v4aySgGVPguL78WbuIkRY6AoAbcssZQVeB7l1+Ztu0sMkD/uxq5X7A
         mTLk02QEPGZqVyKUGR2cq4hROAaELaFURkW05zDMA65uZxiOBkLvHBX15WCM/hbHPB0O
         Zi5AgfazUC25m4G/sjxSDBjIpGLkNAS3pX178=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720711469; x=1721316269;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L0pID39C586cv2tz/qyg/E3lVYfL5a4bkucs6I4x0Fw=;
        b=q+gl+zVbm87zc/TDT+tm5rtjGGBwnCAxRF3ZqCWqR20NLwEmzSAUeElh3kGmth4p34
         hcRHqYM9qgcQVFXeNfZ+IzAdXSYG95ZlIt9VvglS20gn0kt53P6Jsrg5jGKHSS04Dp15
         oL4jfzAdmWZcC6v8YfkAlr17jtvbnfGnBHK1s8wMcHfMrFiS2jDSUNrx0hzttJd08Ms/
         V0ofVAiEyxoIMP0aN915pEM5b7/oRQQ6pW4lsZLq2jROFJRlVCXjUny+hy5Dw3ZN1vwN
         6Nuy10YGBGGPssJlp0pGzqLYhJLMByPEJrdYs4Fk6uS9WJhOijKYpwT0Ljl1VjZd6bEj
         xJUQ==
X-Gm-Message-State: AOJu0YyxgZ4Qy5izmb7YM+DmX7V8SBys4M78dY+afILlk+freIoJrLDR
	Yr0woxRf4u1VvNgWLFAVw90GH3CjPLVKxiI0OZAOmeYO+Nc5s8gbhQhYp7MVYaM=
X-Google-Smtp-Source: AGHT+IG+DiMj1eOcTXCsWZgkzdAf2DsyuKO4I/sth3MMdBlo0j1XF1xtR6pvPK1FAFDAnqVQkCXbFg==
X-Received: by 2002:a17:907:9687:b0:a79:81a4:faff with SMTP id a640c23a62f3a-a7981a4fd08mr403426066b.66.1720711468751;
        Thu, 11 Jul 2024 08:24:28 -0700 (PDT)
Message-ID: <b3be200d-a6b9-4413-ba1b-3fdc09be3c3b@citrix.com>
Date: Thu, 11 Jul 2024 16:24:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/12] CI: Mark Archlinux/x86 as allowing failures
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240711111517.3064810-7-andrew.cooper3@citrix.com> <Zo/gHsMSXR6hEtsS@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <Zo/gHsMSXR6hEtsS@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/07/2024 2:37 pm, Anthony PERARD wrote:
> On Thu, Jul 11, 2024 at 12:15:11PM +0100, Andrew Cooper wrote:
>> Archlinux is a rolling distro, and is subject to arbitrary changes as the
>> container is rebuilt.
> I disagree about the changes been arbitrary, it is just new version of
> software. :-)
>
> But I guess "arbirary changes" could be a description for package been
> removed from the main/official archive, and left for the users to build
> themselfs.

Specifically, rebuilding the container for staging has a side effect of
jumping the toolchain version under all stable trees.

I'll see about tweaking the wording.


>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Anyway:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

> (Next, automatically rebuild the container every month, I could probably
> revive my old patch series doing that)

That's also on the list, but not for 4.19.  Qemu rebuild their
containers as the first pipeline stage, and while I think that's
overkill, I was going to see if I could turn it into a weekly(?)
scheduled job.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 15:26:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 15:26:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757596.1166618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRvgn-0002lH-4C; Thu, 11 Jul 2024 15:26:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757596.1166618; Thu, 11 Jul 2024 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 1sRvgn-0002lA-1c; Thu, 11 Jul 2024 15:26:33 +0000
Received: by outflank-mailman (input) for mailman id 757596;
 Thu, 11 Jul 2024 15:26:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRvgl-0002kz-IG; Thu, 11 Jul 2024 15:26:31 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRvgl-0005UA-D5; Thu, 11 Jul 2024 15:26:31 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sRvgk-0003CG-WC; Thu, 11 Jul 2024 15:26:31 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sRvgk-00050T-Vl; Thu, 11 Jul 2024 15:26:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=HYtFNNV/FOralhGJGhVuiwTqm24IvEYclV0NYfC+dpU=; b=wI+vuuL+Ze5ctG2n3n7Kcl9WQt
	HlW0OARjXWU8Jgr+mSSoKcr28T4tIvyPuzwHAoxPcxChlG0AIffQO0uy7XWzxsmjMD5bXXUYYZh+h
	FvUTPcoZemx5z1Ada9wCzlffHRYMfI6hwZE427TKeBiNdIgzGN2auNS/yd0CnEfX7km4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186761-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186761: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=9d9a2f29aefdadc86e450308ff056017a209c755
X-Osstest-Versions-That:
    linux=34afb82a3c67f869267a26f593b6f8fc6bf35905
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Jul 2024 15:26:30 +0000

flight 186761 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186761/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-raw       8 xen-boot                     fail  like 186753
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186753
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186753
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186753
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186753
 test-armhf-armhf-xl-arndale   8 xen-boot                     fail  like 186753
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186753
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186753
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                9d9a2f29aefdadc86e450308ff056017a209c755
baseline version:
 linux                34afb82a3c67f869267a26f593b6f8fc6bf35905

Last test of basis   186753  2024-07-10 13:41:57 Z    1 days
Failing since        186756  2024-07-10 21:41:59 Z    0 days    2 attempts
Testing same since   186761  2024-07-11 05:47:53 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Andrew Morton <akpm@linux-foundation.org>
  Armin Wolf <W_Armin@gmx.de>
  Audra Mitchell <audra@redhat.com>
  Damien Le Moal <dlemoal@kernel.org>
  Daniel Lezcano <daniel.lezcano@linaro.org>
  David Hildenbrand <david@redhat.com>
  Gavin Shan <gshan@redhat.com>
  Hans de Goede <hdegoede@redhat.com>
  Hugh Dickins <hughd@google.com>
  Johannes Weiner <hannes@cmpxchg.org>
  Julian Sikorski <belegdol@gmail.com>
  Kent Overstreet <kent.overstreet@linux.dev>
  Kuan-Wei Chiu <visitorckw@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
  Marc Zyngier <maz@kernel.org>
  Mario Limonciello <mario.limonciello@amd.com>
  Martin K. Petersen <martin.petersen@oracle.com>
  Miaohe Lin <linmiaohe@huawei.com>
  Muchun Song <muchun.song@linux.dev>
  Nhat Pham <nphamcs@gmail.com>
  Nícolas F. R. A. Prado <nfraprado@collabora.com>
  Oliver Sang <oliver.sang@intel.com>
  Paul Menzel <pmenzel@molgen.mpg.de>
  Peter Wang <peter.wang@mediatek.com>
  Peter Xu <peterx@redhat.com>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Rob Herring (Arm) <robh@kernel.org>
  Ryusuke Konishi <konishi.ryusuke@gmail.com>
  SeongJae Park <sj@kernel.org>
  Shakeel Butt <shakeel.butt@linux.dev>
  Suren Baghdasaryan <surenb@google.com>
  Uladzislau Rezki (Sony) <urezki@gmail.com>
  Viresh Kumar <viresh.kumar@linaro.org>
  Waiman Long <longman@redhat.com>
  Yang Shi <yang@os.amperecomputing.com>
  Yi Liu <yi.l.liu@intel.com>
  Youling Tang <tangyouling@kylinos.cn>
  Yu Zhao <yuzhao@google.com>
  ZhangPeng <zhangpeng362@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   34afb82a3c67..9d9a2f29aefd  9d9a2f29aefdadc86e450308ff056017a209c755 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 15:27:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 15:27:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757601.1166629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRvhT-0003NP-D4; Thu, 11 Jul 2024 15:27:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757601.1166629; Thu, 11 Jul 2024 15: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 1sRvhT-0003NI-A7; Thu, 11 Jul 2024 15:27:15 +0000
Received: by outflank-mailman (input) for mailman id 757601;
 Thu, 11 Jul 2024 15:27: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=7Dqq=OL=bounce.vates.tech=bounce-md_30504962.668ff9ce.v1-79ddfcd060164c05a384959153e4b4a5@srs-se1.protection.inumbo.net>)
 id 1sRvhR-0003GF-Rh
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 15:27:14 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0af715e7-3f9a-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 17:27:12 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WKdrG2BbxzB5p4kV
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 15:27:10 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 79ddfcd060164c05a384959153e4b4a5; Thu, 11 Jul 2024 15:27: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: 0af715e7-3f9a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720711630; x=1720972130;
	bh=QgJYeohbFH8Mh2yaKpGbacs2mEe+CPEMVNcKYwAYhDM=;
	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=yTP65Jtxp76yuQXAni5lYZls0Uix8bDwcs12izhsA2OxLmDITqrq7/uu+q3UJcNr1
	 Sq95LYZRYgW9+cd/23A7ouVP8aiOB/w5XQw0a/RjQYlRB54lL4oDJLbpi+dRHKf/+j
	 VLYDYm2GKvBY4uuI/U1ggWpxiGQPYlvRDc+tWOloJ6MIliPRl9ZTCxXso1aIGCORgf
	 VTl7QFWM5BmQt1q7ky0+1zhVc+vW6dwSpX6zhlQkHaBjKxOOj9pLO9jvVXz1lyuWIc
	 9L9k3nHZtQ6MphsUmFB0O30ppW8h8MAr+Cqp6GGOoeM1cjKooyfKCIpefmVs+vQ2RO
	 BMtbnNS10X3EQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720711630; x=1720972130; i=anthony.perard@vates.tech;
	bh=QgJYeohbFH8Mh2yaKpGbacs2mEe+CPEMVNcKYwAYhDM=;
	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=Qzi46XL/NP40kIVfiyc0ocdmsC2X2RRtCMal79tO4ZZnNb8lRJ25Vs3JTyOIvQNba
	 heps+Qy7DGNZ3+n4j2kBgovru2xFFMIkoeim3p0K0K0O4l6LogNzqBQDEgUEI4Wfhd
	 2+HtV1qO2JrxCQedwukSaDmnQU/Az5hATuuQYl86oVKOKWnVDdK2aq9roCFK6eg6YO
	 j2dRMYPtMcedkkPIOh+cwia0agzfmDZ4yry+cAhuYvj8xE8q6NlBPDxsWLy+DhxoX1
	 5YGfd0ZSqkhaVgxoaq95ivvlOcIPzqYzoZTpHEtWEvcNzdMN48LSjCCQ/4dLVeyX5v
	 2AluaKZJbel7A==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2003/12]=20CI:=20Drop=20Debian=20Jessie=20dockerfiles?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720711629055
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <Zo/5zIUfanul1DLj@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-4-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-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.79ddfcd060164c05a384959153e4b4a5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 15:27:10 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:08PM +0100, Andrew Cooper wrote:
> These were removed from testing in Xen 4.18.
> 
> Fixes: 3817e3c1b4b8 ("automation: Remove testing on Debian Jessie")
> 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 Jul 11 15:50:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 15:50:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757610.1166640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRw3p-0007zM-BP; Thu, 11 Jul 2024 15:50:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757610.1166640; Thu, 11 Jul 2024 15: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 1sRw3p-0007zF-6v; Thu, 11 Jul 2024 15:50:21 +0000
Received: by outflank-mailman (input) for mailman id 757610;
 Thu, 11 Jul 2024 15:50: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=P1q9=OL=bounce.vates.tech=bounce-md_30504962.668fff36.v1-a0dbae01ddcf4664a844124fbc73a299@srs-se1.protection.inumbo.net>)
 id 1sRw3n-0007z9-CQ
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 15:50:19 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 44508e81-3f9d-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 17:50:16 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WKfLt6cllzB5p4v8
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 15:50:14 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a0dbae01ddcf4664a844124fbc73a299; Thu, 11 Jul 2024 15: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: 44508e81-3f9d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720713014; x=1720973514;
	bh=gjvAGfs3D941j7oCzhucp8DS9sU0UZ6wagNYaZ3rZIw=;
	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=bAKC4Tlce982wQS+YFopg5GpV713Km8Mp2agI32bDT0fNc2xAT/lvimPWZIqkwToL
	 wQU9IzYx/skdwF9Qs/3npvUelQ7BOLvI8nLjhvFf00DpCtBixaUe8Mh25ZMOsg6Nue
	 bySZ7oKbEVoXr/MwaFwk+jOLIEwNQeFsn1WueMT5i/PvFNymOt+RWbUMS7/5pY0WAl
	 vUQjwoWgBwP8k/jKSSgXQTGB89/OYA8Yzmiz56EUPpUyYh7UB+/MfhyNDajW86s8AB
	 byRRbpmjNrB0ng7QspqUFDyMCDvYIfS4wMixtkIrlT4nPI486qIjzCIMc4y1qbcAmg
	 rYGpba62tGWpw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720713014; x=1720973514; i=anthony.perard@vates.tech;
	bh=gjvAGfs3D941j7oCzhucp8DS9sU0UZ6wagNYaZ3rZIw=;
	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=uYvas4ZyZKAgHiQ0GS9qkHqsPef66kshgrXbhZtWrOb+6Cs59+FLiz6sjQGa4EQkU
	 bT9yxMAu2GiJSOlXepBMPrHJ0mT0fgSiIEKp0sodGJIG5hax/zaA1lTs0GUrBT5Ox4
	 V+76KS0+uu/Cq9MK4mueCudC8CQfptzmI3zu3EZTgiKkWH5+YZoNWRGAff+lF7re1A
	 eJZhYEqq8zFIWHd5r/SXev5gWlIhMcyCzxsKh3/FHRRumHFcpgSZVvEqhMEZO1e+mk
	 gKFkNU2M8bSjelS9N92oszNlNU38sltH8dEvQ+2j2gidb6RY9EspI02VertBpOb0tg
	 h5bWu4aQrohgA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2002/12]=20CI:=20Remove=20useless/misleading=20randconfig=20jobs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720713013731
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <Zo//Ndhe9pNFb3Of@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-3-andrew.cooper3@citrix.com> <Zo/ZdG8pt5FIledD@l14> <5eb4de29-edd3-447a-845a-57d20ad8462b@citrix.com>
In-Reply-To: <5eb4de29-edd3-447a-845a-57d20ad8462b@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.a0dbae01ddcf4664a844124fbc73a299?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 15:50:14 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 11, 2024 at 04:16:29PM +0100, Andrew Cooper wrote:
> On 11/07/2024 2:09 pm, Anthony PERARD wrote:
> > We already have "parallel: 2" on the whole pipeline, give or take, but
> > those are quick jobs so it might be worth it to run them a few more tim=
e
> > on a pipeline.
> 
> I'm afraid I don't follow.

Sorry, I just meant that the whole test suite is run twice, once in
https://gitlab.com/xen-project/hardware/xen/-/pipelines
and once in
https://gitlab.com/xen-project/xen/-/pipelines
(with just a few tests that are differents)

> Obviously, 5 is arbitrary.=C2=A0 I was thinking of having a scheduled (on=
ce
> per day, at 3AM or whenever) running randconfig only with a parallel:20
> or so, so we can make good use of otherwise-idle time.

That sounds like a good idea.

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 Jul 11 15:51:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 15:51:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757613.1166652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRw4f-0008Tt-Jz; Thu, 11 Jul 2024 15:51:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757613.1166652; Thu, 11 Jul 2024 15: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 1sRw4f-0008Tm-H4; Thu, 11 Jul 2024 15:51:13 +0000
Received: by outflank-mailman (input) for mailman id 757613;
 Thu, 11 Jul 2024 15: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRw4e-0008TM-7j
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 15:51:12 +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 5fb72c23-3f9d-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 17:51:02 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-57d05e0017aso1428807a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 08:51:02 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6bc7c9sm265779966b.42.2024.07.11.08.51.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 08:51: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: 5fb72c23-3f9d-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720713061; x=1721317861; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0PYEQ99sKgEQ0mb0O21JgbNmYcAk+GYhxdqveZYQNNo=;
        b=dRaDFMGQQaOgauOk+HFmW5rnqZbgBMyx9HcH0NcIZrXaGaBG6T7YGo9m8KVR+i1VKo
         e4v4Gg8NdF0BVFfLdlhgE4+doRUPszkyeylumnJ1iZouLm+frRRgQuLMAncU/+57Rq6j
         B8JfZ1uJOo6fbuM+iTBPwaw1kkNn1VimUjqkY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720713061; x=1721317861;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0PYEQ99sKgEQ0mb0O21JgbNmYcAk+GYhxdqveZYQNNo=;
        b=Ul53jNHr61MIdAFjIoM2rQNM9X45wB34RbhuvyDx7/3s5adhWi6mtzUIFUuDpDdudS
         Se52BWG3bjuTvQFCFpZ4DRI7i6GMmZUNOP+gsRrcspDXsKSchYK1SHhdEdW9nv2km1AS
         GYTRWbfgl8cDFGFxTazET74OXrZOLj5o1xFHC3OBvgZV0R079RFolBfkF3qwBf1p3pGU
         OnJVVEZ2bUQVcfVRxe6B54WdQ3HYap9IdmKqhQjEtRWqPk+A9zsFqzqv9+0x0Wj8s0u1
         c3XJEkG3fOFnTW3FspR5Ya7OBTHQrCGb50GwTje0Vcx2CVLZuRquwjk43/4TuL4KCzjj
         uEsQ==
X-Gm-Message-State: AOJu0YyBaUu12AZSwhFeR8U5ZY0R4+pgVP6qXVPQkREuxnp6zULzTQUe
	dgnqaRAnstJXOByanPTHSS2vCku03NDIirVxmO4ZUF1XifMuBryM2Z5cHJiSFCk=
X-Google-Smtp-Source: AGHT+IF+bdkRhqUmqzXkxmqxcAUu1meFNvpCwcXF65xVBbmfQ3N8S4d6IhmiAmj7Q6WefhhDxVFJ0g==
X-Received: by 2002:a17:907:944f:b0:a77:db36:1ccf with SMTP id a640c23a62f3a-a780b70528emr832371866b.42.1720713061545;
        Thu, 11 Jul 2024 08:51:01 -0700 (PDT)
Message-ID: <d4fee591-711e-4557-a6fc-f59a4d2e9a27@citrix.com>
Date: Thu, 11 Jul 2024 16:50:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/12] CI: Introduce a debian:12-ppc64le container
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240711111517.3064810-8-andrew.cooper3@citrix.com> <Zo/vKR2YuDJdFLq+@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <Zo/vKR2YuDJdFLq+@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/07/2024 3:41 pm, Anthony PERARD wrote:
> On Thu, Jul 11, 2024 at 12:15:12PM +0100, Andrew Cooper wrote:
>> diff --git a/automation/build/debian/12-ppc64le.dockerfile b/automation/build/debian/12-ppc64le.dockerfile
>> new file mode 100644
>> index 000000000000..3b311e675ef5
>> --- /dev/null
>> +++ b/automation/build/debian/12-ppc64le.dockerfile
>> @@ -0,0 +1,36 @@
> ...
>> +ENV CROSS_COMPILE=powerpc64le-linux-gnu-
>> +ENV XEN_TARGET_ARCH=ppc64
> I don't really like these two envvars. The second one is already set in
> the env by gitlab, the first one could in theory also come from
> gitlab-ci.

The first one is pre-existing.  (It shows as new because enough of the
file changed for it not to be deemed a rename).

The second is something I added, for improved usability.

> But I guess that comment comes from the fact that I don't really know
> why we would want a second bookworm containers with only a few packages.

Right now (for better or worse) - we have single purpose containers for
a single arch.

For PPC and RISCV, where we're only doing a cross-build of the
hypervisor, the dependencies are almost identical.  But the moment we
start doing userspace, it will diverge quickly.

Part of the work I'm doing is trimming the containers down.  Container
size is a relevant factor for how long the CI tests take.  Also, with
smaller containers, the "oops, out of disk space, delete everything"
logic on various runners will trigger less frequently, so we get better
cache utilisation.

We do not IMO want to have containers with a union of all deps of all
architectures.  They'd be giant.

So while we do have single-purpose containers, these ENV vars are
~mandatory for using the container for it's intended purpose, and it's
far more usable for a human when you can just enter the container and
type `make`.
>> +
>> +RUN <<EOF
>> +#!/bin/bash
>> +    set -e
>> +
>> +    useradd --create-home user
>> +
>> +    apt-get -y update
>> +
>> +    DEPS=(
>> +        # Xen
>> +        bison
>> +        build-essential
>> +        checkpolicy
>> +        flex
>> +        gcc-powerpc64le-linux-gnu
>> +        python3-minimal
>> +
>> +        # Qemu for test phase
>> +        qemu-system-ppc
>> +    )
>> +
>> +    apt-get -y --no-install-recommends install "${DEPS[@]}"
>> +    rm -rf /var/lib/apt/lists/*
> Other containers do also `apt-get clean` is this not needed? Or maybe
> the original containers is setup to not save packages?
>
> /me looking into /var/cache
>
> Looks empty enough, so I guess `apt-get clean` is optional.

https://docs.docker.com/build/building/best-practices/ notes that the
official Debian and Ubuntu images automatically clean themselves, so you
don't need to do it manually.

https://github.com/moby/moby/blob/03e2923e42446dbb830c654d0eec323a0b4ef02a/contrib/mkimage/debootstrap#L82-L105

> Changes looks good enough, so:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 16:03:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 16:03:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757620.1166661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRwGr-0002cu-MA; Thu, 11 Jul 2024 16:03:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757620.1166661; Thu, 11 Jul 2024 16:03:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRwGr-0002cn-JS; Thu, 11 Jul 2024 16:03:49 +0000
Received: by outflank-mailman (input) for mailman id 757620;
 Thu, 11 Jul 2024 16: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRwGr-0002ch-0S
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 16:03: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 27811dab-3f9f-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 18:03:46 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-58b447c513aso1354387a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 09:03:46 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bba548d2sm3609289a12.7.2024.07.11.09.03.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 09:03: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: 27811dab-3f9f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720713826; x=1721318626; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UaOtfoc/+ticPkkRgaCxlXqpziNhZF4poOhU3l6UhCA=;
        b=XxcT31nnQasu1qbJMWEBXL3LcGDrlnpRTtFWIibTGDXvDrD1MrAFUEkRnSsUpR62Sj
         I3mdF1HScVquVQLuDvVXrZe+fY///8TW/cR+1aV8La2fpeybVL8fw6XxepY3Lz7ei621
         /HiCdI6Q8HBd5Zdt3tuT3t+M0El6S2ExAxfKE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720713826; x=1721318626;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UaOtfoc/+ticPkkRgaCxlXqpziNhZF4poOhU3l6UhCA=;
        b=G6alpM1pY/5h8CsqYTL817LaqHPjTRUhwU7wLgPCpsH3276WPjB0tgDO/j8z7i7nrN
         pD501Rih2aUEx23T3eLUWfQCDbz+O5sCEejzF1R18CMFuvK4lQRFPih+5fatQCu2dywu
         Pq6RvIe14sU+/KfOw95Urbny0Szzjd4/ZIQfHnHvNclTq4dkcLA+P2e/PNOvG/uDDerC
         ks+koiSpPRZck62TR1OOTlgga9/C1rCec88VATRqgUMVD6u+9LRlIlBRAGBcUPte6VHd
         vMfiOqZDsvSG3kqLSVfXXGjGdUMnauRBbmrDmT2EhtpCOTDIUwJ7JsO/oxDeEyl8bXkp
         cX7g==
X-Gm-Message-State: AOJu0YzQC5QH2U1G8tHHpiYpYCpT88a8WUKzTH8nShLX9iQ/vomFVXVu
	OSOc1TmLlvRdvp1XMB/iq2By4jicEelDRUP+LYCYsW6kYWvkPWCh5zU6O+xdfb8=
X-Google-Smtp-Source: AGHT+IGm2YUwIDUH248OuRLPx9qOh3YHIE6OUSa6ZzkPQEeCqUJU958l/vhQBh9ry1koWLypWlfC5g==
X-Received: by 2002:a17:907:6d26:b0:a72:8d40:52b8 with SMTP id a640c23a62f3a-a780b68a34cmr725144666b.3.1720713826199;
        Thu, 11 Jul 2024 09:03:46 -0700 (PDT)
Message-ID: <e761035b-c931-445a-8688-bfbf54e6cddd@citrix.com>
Date: Thu, 11 Jul 2024 17:03:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] CI: Remove useless/misleading randconfig jobs
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240711111517.3064810-3-andrew.cooper3@citrix.com> <Zo/ZdG8pt5FIledD@l14>
 <5eb4de29-edd3-447a-845a-57d20ad8462b@citrix.com> <Zo//Ndhe9pNFb3Of@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <Zo//Ndhe9pNFb3Of@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/07/2024 4:50 pm, Anthony PERARD wrote:
> On Thu, Jul 11, 2024 at 04:16:29PM +0100, Andrew Cooper wrote:
>> On 11/07/2024 2:09 pm, Anthony PERARD wrote:
>>> We already have "parallel: 2" on the whole pipeline, give or take, but
>>> those are quick jobs so it might be worth it to run them a few more time
>>> on a pipeline.
>> I'm afraid I don't follow.
> Sorry, I just meant that the whole test suite is run twice, once in
> https://gitlab.com/xen-project/hardware/xen/-/pipelines
> and once in
> https://gitlab.com/xen-project/xen/-/pipelines
> (with just a few tests that are differents)

And the rest.  Every time I re-sync my tree, and probably the same for
the other maintainers.

However, these have nothing on the overhead from patchew, which would be
far more palatable if we didn't essentially throw away the result by not
sending it anywhere useful.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 16:22:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 16:22:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757628.1166672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRwYx-0005gz-53; Thu, 11 Jul 2024 16:22:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757628.1166672; Thu, 11 Jul 2024 16:22: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 1sRwYx-0005gs-29; Thu, 11 Jul 2024 16:22:31 +0000
Received: by outflank-mailman (input) for mailman id 757628;
 Thu, 11 Jul 2024 16:22: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=X1/V=OL=bounce.vates.tech=bounce-md_30504962.669006c1.v1-0806c7d338d74e60a5ef1291969144f0@srs-se1.protection.inumbo.net>)
 id 1sRwYv-0005gm-Ca
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 16:22:29 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c2bb38b0-3fa1-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 18:22:26 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WKg411LVbzB5p56t
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 16:22:25 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0806c7d338d74e60a5ef1291969144f0; Thu, 11 Jul 2024 16:22: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: c2bb38b0-3fa1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720714945; x=1720975445;
	bh=kySeyb3PB9foaro1xW0ZTVDBARCwihV1yBAAPQjo7tQ=;
	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=1f2y6BPGAwAAkAYt/1DLmtnsGBdXRTk0uvvLi2YOuCMTMmB/s5h3CXmYYxAaN9MuF
	 5LklYcBx/i8K9Q/bPebnCO5+c9rCE12VL56iRBs9gmI+VfFjHsMW+51ZFsi8hcE/8r
	 iZT+5QLGVwXr9nJm7Nvpvo1rbBALeUgewkv+kibLNzhlcdbfcCcPqcn7D0+nCzi2L3
	 v9zHFRPUrSn74y4IUIpDaq40D3x0pkGbbl5OWW40z7GWzJZK7a4p2aR/Pkc793mE9+
	 X3TiBwYamp6wVfIDmDruHbVInTjOcx+ZI6GAih8aZMmiEEZ5GD6aBuB63UNTn5T7qO
	 ZWScZVSPWh9SA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720714945; x=1720975445; i=anthony.perard@vates.tech;
	bh=kySeyb3PB9foaro1xW0ZTVDBARCwihV1yBAAPQjo7tQ=;
	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=qyl8oAJETiA0kvWKXQjroPi/CSkwJLOf5Dv7JmPf9TCMCsREkTDr1U8XPR3WTYX92
	 tfZEwPDXPZteXVKn2/vJWklCbsVSsdqeJ6LSEPI4LvnrDKnIreFlblodCQx3GMadAw
	 lVSEYiGf6rgtYrKUCN9Q+aKMSfmScA68u++UfZprWSBS/A8YKmM4be6wq+fW/p7ZtU
	 /HQrZFtMkoLr5fQmqdPaeSQN+yES5pVQwbr2Uf6QHdEJQ+3meA1WPq21EiFKyMX6eT
	 SgZh0kI7AGM6DY3Ns03xi1ICVp9ei3sVceC0Y1rXQ1wllWWCb8AsfRouCuIhlqKWgS
	 gFmelgrBwc38A==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2008/12]=20CI:=20Use=20debian:12-ppc64le=20for=20both=20build=20and=20test?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720714943737
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <ZpAGv4J+GWzNfz6F@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-9-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-9-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.0806c7d338d74e60a5ef1291969144f0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 16:22:25 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:13PM +0100, Andrew Cooper wrote:
> qemu-system-ppc64/8.1.0-ppc64 was added because bullseye's Qemu didn't

QEMU is normally spelled "QEMU" unless we are in camel case context, or
lower case context.

> understand the powernv9 machine.
> 
> However, bookworm's Qemu does, and this is preforable to maintaining a random

"preforable", that's an intended mispell right? :-)

> build of Qemu ourselves.
> 
> Add bookworm builds, and retain bullseye to keep our lower-bound toolchain
> testing.
> 
> Rename the jobs to follow to sort coherently ($DISTRO-$VERSION-$ARCH-*) and

There's no renamed jobs in this patch, but the new jobs does follow the
new naming schema. Did you intend to rename both
"debian-bullseye-gcc-ppc64le*" jobs?

> reposition the jobs to optimise starting the smoke test.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Patch is mostly ok, so:
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 Jul 11 16:27:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 16:27:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757633.1166682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRweB-0006aU-N5; Thu, 11 Jul 2024 16:27:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757633.1166682; Thu, 11 Jul 2024 16:27: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 1sRweB-0006aN-Ji; Thu, 11 Jul 2024 16:27:55 +0000
Received: by outflank-mailman (input) for mailman id 757633;
 Thu, 11 Jul 2024 16:27:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iuPQ=OL=bounce.vates.tech=bounce-md_30504962.66900805.v1-c9f8b512ae1f47b89ad4c05371383c3a@srs-se1.protection.inumbo.net>)
 id 1sRwe9-0006aG-MD
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 16:27:53 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83c0c5a2-3fa2-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 18:27:50 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WKgBF20d7zB5p4qB
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 16:27:49 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c9f8b512ae1f47b89ad4c05371383c3a; Thu, 11 Jul 2024 16:27: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: 83c0c5a2-3fa2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720715269; x=1720975769;
	bh=wrYCUQxBJkYsYocqOe2tO8Hsu8wbbxLMy2ZxkFCR5X8=;
	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=ggueGdldV9hxWeAwCpZD7iOiddAJwOE89RxEVQ4cNDQ0pl0OTflZ0+m+RcrC3Uj7n
	 D/xy454B+rybTos5Q5YJcnIZFNsRnsp4JT5jViz0+L7q3OS7aWWCXipf01ea2ikGfA
	 Z7X7JuvhqsRAgb45ksWPZBo93dG2ZmGx9Pah2pYMe+61xJkuVV3Otwp+287uF5//RY
	 HH5Y5C+vLT0EuE8BgkIVsRkEuuJ+5OWL1bM/2da61eHehLLiBbyBnmcEhDtudJRvxg
	 EcEo6Kdy0Yrd7JzvvXbPujSYRslZteo5P9nz0MvFpMcyLX9mxA/LE0enRGrQOFQqiG
	 Z6rdEvGm1NV8w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720715269; x=1720975769; i=anthony.perard@vates.tech;
	bh=wrYCUQxBJkYsYocqOe2tO8Hsu8wbbxLMy2ZxkFCR5X8=;
	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=X8RdASUFuJArm8gf3LUFTHluxR7DkaVYucNYNlYTYDPcHRhOj36MEs1IHbQrFOCpc
	 j7deXglD8df6RijkguzWBauuJRRLLGZTxkRFaEgKfSTveZZh3MmNbfNI6JAYbpzPRW
	 eBQHsnZbbsPdvca0MK3J5RafAn14bRR+/RCOwRMd4JiK/nPj92uhqySKYWoWPSupR+
	 cbOchwIhvp2K4Azy2WDQaWz4wjtoveMYk4ahk72Bmlga4+lCNK2KSzESofsnZs+FF8
	 LprEqLWzApv6kNqhVv46zGyf9eikfvAufeh5dNyk6e++9pStK2sZAtG+YI0c5H0M7S
	 ycVW/GgNMAGUw==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2009/12]=20CI:=20Refresh=20bullseye-ppc64le=20as=20debian:11-ppc64le?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720715268002
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <ZpAIA2SzOxvjmuVh@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-10-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-10-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.c9f8b512ae1f47b89ad4c05371383c3a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 16:27:49 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:14PM +0100, Andrew Cooper wrote:
> ... in the style of bookworm-ppc64le
> 
> 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 Jul 11 16:34:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 16:34:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757638.1166692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRwkT-00088D-Em; Thu, 11 Jul 2024 16:34:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757638.1166692; Thu, 11 Jul 2024 16:34:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRwkT-000886-BJ; Thu, 11 Jul 2024 16:34:25 +0000
Received: by outflank-mailman (input) for mailman id 757638;
 Thu, 11 Jul 2024 16: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=iO7O=OL=bounce.vates.tech=bounce-md_30504962.6690098d.v1-42450922ea1b4c68908d6b9d62e9d22e@srs-se1.protection.inumbo.net>)
 id 1sRwkS-000880-20
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 16:34:24 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d8a7eed-3fa3-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 18:34:22 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WKgKn3kJ1z6CPyJx
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 16:34:21 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 42450922ea1b4c68908d6b9d62e9d22e; Thu, 11 Jul 2024 16:34: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: 6d8a7eed-3fa3-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720715661; x=1720976161;
	bh=EvtTzIn5q0oTzXNlweEG4iXM9N9rKdgB51Xtb/vvlxA=;
	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=EABYThh+eyYjxyjNmQYXStD2NFsV9PRDKR0zGesAhMFRUNj4P454JAZsy30OpnJGj
	 kzJaTSTSWGqenFydT1a7S0sI/mBaostqKVKJF8iHvCS9MyaEeyD8PT01hQZp4TnCOv
	 hVwhErywa+KG/bD8QGObWN6BVEn9xOWPxtYQvBNq4XEXQlfBoMiLZKQFzApeCRj/s5
	 afs0XOC4jitlEDY6GQ8zljBXqJwsgfbKFe6BbYp6piMJkKoKIvaML6fpgWwlEmK4oC
	 FUNAWWfs4zcjTwJeeiN67Eyce18zh8f9lhKzLWq9TrdUGNa27c7nqgCAOuW6Z8JqKB
	 BRfPDoESkmWTA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720715661; x=1720976161; i=anthony.perard@vates.tech;
	bh=EvtTzIn5q0oTzXNlweEG4iXM9N9rKdgB51Xtb/vvlxA=;
	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=OQt4nwkAZ34tUtfeQfzzQOxo79O1XqwHdSaUpgGPDZbMkKwStLTFdRZzvOazWI4bE
	 6vTE39sk2YwXnPSI6eALvx+GmYtUXmUntAwhfayAoHO7GSOvtIFJXp/R1xpLVcaHUx
	 vtqq79xzlZX/pZa26JuC4Zw8dBmiCxAy0jJUW+mMUL6isyFP+BIUbWgPOq8xfF1DAg
	 soY8xv9/JNMqpOcToPwMZLIhpmJTlMWsl7jzHipxE4PNk0BNbe2PVmlXRyvO+RN2m1
	 6Y5vVrYuPyNQ0PsnyK5Yy5LW2nU/xmEiou6oOhR9JJ0O0oIMQSaK2JIcyMegdyV/HJ
	 nD62qcS1ayf8A==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2010/12]=20CI:=20Introduce=20debian:11/12-riscv64=20containers?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720715660137
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <ZpAJi0za2Pc3t9DX@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-11-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-11-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.42450922ea1b4c68908d6b9d62e9d22e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 16:34:21 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:15PM +0100, Andrew Cooper wrote:
> For starters, they're slightly smaller:
> 
>   $ docker image list <snip>
>   registry.gitlab.com/xen-project/xen/debian      12-riscv64         772MB
>   registry.gitlab.com/xen-project/xen/debian      11-riscv64         422MB
>   registry.gitlab.com/xen-project/xen/archlinux   current-riscv64    2.32GB
> 
> They also not rolling distros, so will be more predicatable testing for the
> stable trees in the future.
> 
> 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 Jul 11 16:37:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 16:37:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757642.1166702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRwnh-0000mY-SR; Thu, 11 Jul 2024 16:37:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757642.1166702; Thu, 11 Jul 2024 16:37: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 1sRwnh-0000mR-PS; Thu, 11 Jul 2024 16:37:45 +0000
Received: by outflank-mailman (input) for mailman id 757642;
 Thu, 11 Jul 2024 16:37:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sMyr=OL=bounce.vates.tech=bounce-md_30504962.66900a57.v1-dc0647c5c21d4c2b8c86e460f83e5a4b@srs-se1.protection.inumbo.net>)
 id 1sRwnh-0000mL-1S
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 16:37:45 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5799fbd-3fa3-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 18:37:44 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WKgPg1Kq0z6CQ3ny
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 16:37:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 dc0647c5c21d4c2b8c86e460f83e5a4b; Thu, 11 Jul 2024 16:37:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5799fbd-3fa3-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720715863; x=1720976363;
	bh=XzqzJLY87M4ZYLRo3AYCtT9uBYsqsNa71UbiJ5+Kel0=;
	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=Ycsg6kCaN4fmrInzetJSxVEvwQ1OO4VzCdKaxAFGdIttTZHh0rlGUtxH09sW9ZV0y
	 /m103sdeq56n9ex29ALCPmljHmpzZ6rzCKaGmPXkdWZAU2cEVVDClUCAUBDhsNxoOH
	 QKroFd8ASgo9y6XHO1gWKsRNopRV4J4FS1z2sHkDGpma5/sV07ovOei6PKLZCCO7be
	 PJei7JZPJOpYG00XTCbx3veFke0CPRL4VaaNt3Y1c5HA3JwWrj7sGa9p5YXh7sX76Q
	 hwXJ2CcCO9mb3S3HP+dIDc2NdJfTZqVjLXUXq/ISBhFr7NYUXkKnBkpUAWZ8y04H0e
	 lNfn9G0ErByqw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720715863; x=1720976363; i=anthony.perard@vates.tech;
	bh=XzqzJLY87M4ZYLRo3AYCtT9uBYsqsNa71UbiJ5+Kel0=;
	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=PW8xMBZsgHIfWB0OotNDbi60mDGUIxxErmXyXzr5EbKSW3nq0LV2ljzehpNfKA2qD
	 ANRicEm3PORQTI5TKk0QZRFCFE/xuOU2rFythFyPH6EonCIOy+sr9TepIEj4bb97Y2
	 aZW263SZK9g88k5jbF+ikHf4QGrTzvcvdyq95g7xHzRnxwKNDZAB1YSVb0gQ7KyKMg
	 XzLDwjPsSdqaJaggQIbZ91K3puq4mKZBFEtkMFF9TRS5+Qs4glKmkgJBLI2GPYDTfv
	 mrNZ/lorGFFr6u0OtqLK924aQbeq3Xx9A7QI60mgS6KmByH7YHOBUOiiIFrGgIMR7I
	 f4MgvVaL2frNg==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2011/12]=20CI:=20Swap=20to=20debian=20for=20riscv64=20build=20and=20test?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720715861959
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <ZpAKVX1B+jAxnNmI@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-12-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-12-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.dc0647c5c21d4c2b8c86e460f83e5a4b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 16:37:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:16PM +0100, Andrew Cooper wrote:
> The containers are both much smaller, with stable toolchains over time, and
> this at least means we're not doing all testing with a single compiler.
> 
> Rename the jobs to follow to sort coherently ($DISTRO-$VERSION-$ARCH-*) and
> reposition the jobs to optimise starting the smoke test.
> 
> 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 Jul 11 16:42:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 16:42:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757647.1166711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRwse-0002GG-Du; Thu, 11 Jul 2024 16:42:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757647.1166711; Thu, 11 Jul 2024 16: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 1sRwse-0002G9-Aa; Thu, 11 Jul 2024 16:42:52 +0000
Received: by outflank-mailman (input) for mailman id 757647;
 Thu, 11 Jul 2024 16:42: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=Jxuc=OL=bounce.vates.tech=bounce-md_30504962.66900b88.v1-43623664dd02461398a2b2ebac11d0c7@srs-se1.protection.inumbo.net>)
 id 1sRwsd-0002G3-DF
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 16:42:51 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b8efa27-3fa4-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 18:42:49 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WKgWX1qWKzB5p8b5
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 16:42:48 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 43623664dd02461398a2b2ebac11d0c7; Thu, 11 Jul 2024 16:42: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: 9b8efa27-3fa4-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720716168; x=1720976668;
	bh=bynxZK2homNllH9R4jLqjU7kZXnvPx41cnDtNtpcWm8=;
	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=hvBOZNbRvtZvUALRuU7+tr0iuQyMS5oAH3WY5G4Ul3SN9LRlg0UQU+aINw6BiwDv6
	 nAMBU83WfNJODjXbcQQ6gr8+2LT97BHm1MW/Tq+U4toekRjagKmz+ZTeWQmG0DB2UX
	 +O/ZB6aB1oMyE3g+PJX6WL9PTz/GcXY9HVjA8wCSfkkkrXJpIS3y3KnybEtUMyvq+R
	 c8FSVIi6RU2dtmlbBMk4J56jxZsMXKfWNIlQk1X8rRFhYQJ99K8zdS2G7qsIZ+KhcE
	 y06LeaWwOQins/NU8R3wmB6jYrH0ULnpwcsFRrjHdoGqesrOTiqwZPiwpubkvWPFnA
	 vkw/3swDmq3gg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720716168; x=1720976668; i=anthony.perard@vates.tech;
	bh=bynxZK2homNllH9R4jLqjU7kZXnvPx41cnDtNtpcWm8=;
	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=zDso/dsOa4dLFbAgIngRC/X0Kq3tz9ygPeLdxNXsWHJsSbdZCbxODvEvW/gQWdp6K
	 X3U/ey1UOoaJNDY9jq/9Vh1w3APtrPQep0ONVDaIylfiLUCYyPcaKiPp8wq8hq4Qxv
	 OdYnx1cUQTiECLZLD6qXiL+h1K9JOroGkVL+RP0lcoEBhSvxGMBv/9xSPH+00lGe9k
	 pSyiuA6BWWKDPh0mfuewUl3WVHpd3cScBe4oalZl+0YMvx7MmdsB4Al8/yHHearfEd
	 7re4FFHZ7Axy1EEFpxkzj92f/gvTcPPytTjjpeYmENFSwZonfhBU0+1DWDuEIk9zI1
	 j7HbEzhHVrcXg==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2012/12]=20CI:=20Refresh=20and=20upgrade=20the=20GCC-IBT=20container?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720716166694
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <ZpALhn9Rq41N8Qv9@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240711111517.3064810-13-andrew.cooper3@citrix.com>
In-Reply-To: <20240711111517.3064810-13-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.43623664dd02461398a2b2ebac11d0c7?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240711:md
Date: Thu, 11 Jul 2024 16:42:48 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Jul 11, 2024 at 12:15:17PM +0100, Andrew Cooper wrote:
> Upgrade from Debian buster to bookworm, GCC 11.3 to 11.4 and to be a non-root
> container.
> 
> 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 Jul 11 18:08:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 18:08:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757659.1166745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRyDU-0005LH-MW; Thu, 11 Jul 2024 18:08:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757659.1166745; Thu, 11 Jul 2024 18:08: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 1sRyDU-0005LA-Jg; Thu, 11 Jul 2024 18:08:28 +0000
Received: by outflank-mailman (input) for mailman id 757659;
 Thu, 11 Jul 2024 18: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sRyDT-0005L2-Jw
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 18:08:27 +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 90e83f67-3fb0-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 20:08:25 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-58b0dddab63so2036775a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 11:08:25 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bd459ddasm3685148a12.64.2024.07.11.11.08.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 11:08:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90e83f67-3fb0-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720721304; x=1721326104; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=J9Y9CY5j90NlbVfp4AXy9lKa/k+b9i/SUimeWlOurD8=;
        b=BAWvIDbju3FS1UzWIAEibyquVZNylDdXnFG6pjovjD4G9CCdX+WnWBNquU+3o2Ktln
         PjuKBusNpaJiulYJLYNSrBGoFcnX2VaK/q1Hr43rzzjOCDR4VVfJ4V0WDjHwo+7LiAHx
         qsqGlEgIwjl63azjkkojbvdtJtjkITIuU/TM4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720721304; x=1721326104;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J9Y9CY5j90NlbVfp4AXy9lKa/k+b9i/SUimeWlOurD8=;
        b=iuHSTogF+RucLhOPDpX4hhJ/hsCO0TrpGg6NlwfRQcFKzn01r/PXnEeHA0OR4hVqCl
         t68wK1z7tip+937cvJhatnawaBnq41pu4asRab4iVmIYgwc6YUlagTUhX8LBWazEXmSk
         Ouv1Z2KT4IyU/uncjY0uIBpOTqXx3ySGfFJuDsmNtrvc5QOZs0mGF2Df5FnxUeqIN+Pa
         5I+l+i8Vtm9X3uU2vn7+tJ9BB9JgaLCeEn3M0tn8IcvYxjIz/D78G97F4bxoD/vr1Nhr
         ENmRt1ZG8k0KXFMobth7nAmUzAjNy4hWyxcnZh8Hpi8HwL3Rd2rsIVAnibIyOF/Euyn4
         QphQ==
X-Gm-Message-State: AOJu0Yz9iO5gAkLVDNN/L7Sugxw8jVDBcEyV5R5zb7UwbyCStFZjG83r
	dCfNN2/0ipWwTBKRXWHKQyYd74rpcZwCdHYaC3H4Rz5z6cCbc4eusg5/wN2eFwrOAoqEYZFFBSi
	k
X-Google-Smtp-Source: AGHT+IGR/uyZiB3XN88t4aeiLkiAI16U8PRv4Q7dv3C55B17H97mMVFUv7W8SrSZE3Y3pUCICgfIfg==
X-Received: by 2002:a05:6402:234b:b0:58c:909f:3d46 with SMTP id 4fb4d7f45d1cf-594ba0cbe63mr7406496a12.10.1720721304522;
        Thu, 11 Jul 2024 11:08:24 -0700 (PDT)
Message-ID: <5c2f914d-bc69-4e34-b7d1-e455f5715b24@citrix.com>
Date: Thu, 11 Jul 2024 19:08:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/12] CI: Use debian:12-ppc64le for both build and test
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240711111517.3064810-9-andrew.cooper3@citrix.com> <ZpAGv4J+GWzNfz6F@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZpAGv4J+GWzNfz6F@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/07/2024 5:22 pm, Anthony PERARD wrote:
> On Thu, Jul 11, 2024 at 12:15:13PM +0100, Andrew Cooper wrote:
>> qemu-system-ppc64/8.1.0-ppc64 was added because bullseye's Qemu didn't
> QEMU is normally spelled "QEMU" unless we are in camel case context, or
> lower case context.
>
>> understand the powernv9 machine.
>>
>> However, bookworm's Qemu does, and this is preforable to maintaining a random
> "preforable", that's an intended mispell right? :-)

Yes.  both fixed.

>
>> build of Qemu ourselves.
>>
>> Add bookworm builds, and retain bullseye to keep our lower-bound toolchain
>> testing.
>>
>> Rename the jobs to follow to sort coherently ($DISTRO-$VERSION-$ARCH-*) and
> There's no renamed jobs in this patch, but the new jobs does follow the
> new naming schema.

Oh - good point.  I'll tweak the wording.


>  Did you intend to rename both
> "debian-bullseye-gcc-ppc64le*" jobs?

No - that's done in the following patch.

>
>> reposition the jobs to optimise starting the smoke test.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Patch is mostly ok, so:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 18:26:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 18:26:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757665.1166756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRyUp-000834-4O; Thu, 11 Jul 2024 18:26:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757665.1166756; Thu, 11 Jul 2024 18:26:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRyUp-00082x-11; Thu, 11 Jul 2024 18:26:23 +0000
Received: by outflank-mailman (input) for mailman id 757665;
 Thu, 11 Jul 2024 18:26: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=hOEV=OL=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sRyUn-00082r-Il
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 18:26:21 +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 11b312b0-3fb3-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 20:26:20 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a77e85cb9b4so165198166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 11:26:20 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7985483a9bsm137094966b.109.2024.07.11.11.26.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 11:26: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: 11b312b0-3fb3-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720722379; x=1721327179; 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=je0/Bkll77NiKCHV4lqS5GAkdrrYNzHbF5T9RvLsqXE=;
        b=QiJaFUZstUAOfsesqUBWW/gWZL2i52xQol2u8kGVx3nJoOey+FSyFIEXAI8U3MD2r/
         LRSXvKypJqsAcUCYhcR5ZSct0cWTGC86h04KyI6AW17InOx8y0zyfcInKVEeOejgwvOS
         i2X16hkni/T6dLFyGAnPfMkMl1kCpoWr7S/kc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720722379; x=1721327179;
        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=je0/Bkll77NiKCHV4lqS5GAkdrrYNzHbF5T9RvLsqXE=;
        b=MDDSkLxxvFo+8DY7050W787DpmmrePjo+uyNKf0//VXWe00oln+z4tW10gSyr0jVFg
         2aLCBNQfcgRJAPGDit7zNrNnTHi0PdOFOwW8UtyFs/eg0h/c0+D1pAuH8Bk5k/fgVzqH
         ZuN4cJXZteoGX4IOO4fmqDS8nowFUPct3Mtg/xqIg4AHW7zFvAT/fkIskEsJlYdq1eBa
         qglLCyv3RCiTlyt3P/DCz1D9YZ6Wv5XfoXNibO2hhV/l+dgcO/8seYjBHXKe74fk2wH7
         NbgvepQc65XZHfnWtPiQL5kQpPRFz85un3I2F5cGVO34UYS0Tgx0911vC3LvA7h7r8Rk
         n/2g==
X-Forwarded-Encrypted: i=1; AJvYcCXnyxpFZ8bs2qo4I95U0rzKhLzmIjs5u+hxacPSOudGaBwJ/PykErqIf+GnStwFvjwafV8lAfnZbk8DLwRBqpm+jFKBsLRv6UJqwGI/wv0=
X-Gm-Message-State: AOJu0Yz1FrHTo4xUS9l2PtAcDJlu8uLNXVwduN8DBd/S5alkr1J3e51n
	oY4a5jhoaDlpozreY5IIo3ctkC/9uH6o0W65Y+mGBrrpitLQoQ8pPubMT/V7FSA=
X-Google-Smtp-Source: AGHT+IE6eDccAacDHiPyTo3vtaJj+9V3xvLQqnp1N1FTINIAaJhRRbJtOlc7TISo5hKDZQgFOwv3MQ==
X-Received: by 2002:a17:906:2a14:b0:a77:e48d:bae with SMTP id a640c23a62f3a-a780b6b2f4dmr484782866b.28.1720722379492;
        Thu, 11 Jul 2024 11:26:19 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Thu, 11 Jul 2024 19:26:17 +0100
Message-Id: <D2MX6BEZAYQG.27FQPQ45OAEHA@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich"
 <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini"
 <sstabellini@kernel.org>, =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Subject: Re: [RFC XEN PATCH v3 1/5] docs/designs: Add a design document for
 PV-IOMMU
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Teddy Astie" <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.17.0
References: <cover.1720703078.git.teddy.astie@vates.tech>
 <cf749c46f9d3d91bc116c96ee2fd1869164fbe5b.1720703078.git.teddy.astie@vates.tech>
In-Reply-To: <cf749c46f9d3d91bc116c96ee2fd1869164fbe5b.1720703078.git.teddy.astie@vates.tech>

Disclaimer: I haven't looked at the code yet.

On Thu Jul 11, 2024 at 3:04 PM BST, Teddy Astie wrote:
> Some operating systems want to use IOMMU to implement various features (e=
.g
> VFIO) or DMA protection.
> This patch introduce a proposal for IOMMU paravirtualization for Dom0.
>
> Signed-off-by Teddy Astie <teddy.astie@vates.tech>
> ---
>  docs/designs/pv-iommu.md | 105 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 105 insertions(+)
>  create mode 100644 docs/designs/pv-iommu.md
>
> diff --git a/docs/designs/pv-iommu.md b/docs/designs/pv-iommu.md
> new file mode 100644
> index 0000000000..c01062a3ad
> --- /dev/null
> +++ b/docs/designs/pv-iommu.md
> @@ -0,0 +1,105 @@
> +# IOMMU paravirtualization for Dom0
> +
> +Status: Experimental
> +
> +# Background
> +
> +By default, Xen only uses the IOMMU for itself, either to make device ad=
ress
> +space coherent with guest adress space (x86 HVM/PVH) or to prevent devic=
es
> +from doing DMA outside it's expected memory regions including the hyperv=
isor
> +(x86 PV).

"By default...": Do you mean "currently"?

> +
> +A limitation is that guests (especially privildged ones) may want to use
> +IOMMU hardware in order to implement features such as DMA protection and
> +VFIO [1] as IOMMU functionality is not available outside of the hypervis=
or
> +currently.

s/privildged/privileged/

> +
> +[1] VFIO - "Virtual Function I/O" - https://www.kernel.org/doc/html/late=
st/driver-api/vfio.html
> +
> +# Design
> +
> +The operating system may want to have access to various IOMMU features s=
uch as
> +context management and DMA remapping. We can create a new hypercall that=
 allows
> +the guest to have access to a new paravirtualized IOMMU interface.
> +
> +This feature is only meant to be available for the Dom0, as DomU have so=
me
> +emulated devices that can't be managed on Xen side and are not hardware,=
 we
> +can't rely on the hardware IOMMU to enforce DMA remapping.

Is that the reason though? While it's true we can't mix emulated and real
devices under the same emulated PCI bus covered by an IOMMU, nothing preven=
ts us
from stating "the IOMMU(s) configured via PV-IOMMU cover from busN to busM"=
.

AFAIK, that already happens on systems with several IOMMUs, where they migh=
t
affect partially disjoint devices. But I admit I'm no expert on this.

I can definitely see a lot of interesting use cases for a PV-IOMMU interfac=
e
exposed to domUs (it'd be a subset of that of dom0, obviously); that'd
allow them to use the IOMMU without resorting to 2-stage translation, which=
 has
terrible IOTLB miss costs.

> +
> +This interface is exposed under the `iommu_op` hypercall.
> +
> +In addition, Xen domains are modified in order to allow existence of sev=
eral
> +IOMMU context including a default one that implement default behavior (e=
.g
> +hardware assisted paging) and can't be modified by guest. DomU cannot ha=
ve
> +contexts, and therefore act as if they only have the default domain.
> +
> +Each IOMMU context within a Xen domain is identified using a domain-spec=
ific
> +context number that is used in the Xen IOMMU subsystem and the hypercall
> +interface.
> +
> +The number of IOMMU context a domain can use is predetermined at domain =
creation
> +and is configurable through `dom0-iommu=3Dnb-ctx=3DN` xen cmdline.

nit: I think it's more typical within Xen to see "nr" rather than "nb"

> +
> +# IOMMU operations
> +
> +## Alloc context
> +
> +Create a new IOMMU context for the guest and return the context number t=
o the
> +guest.
> +Fail if the IOMMU context limit of the guest is reached.

or -ENOMEM, I guess.

I'm guessing from this dom0 takes care of the contexts for guests? Or are t=
hese
contexts for use within dom0 exclusively?

> +
> +A flag can be specified to create a identity mapping.
> +
> +## Free context
> +
> +Destroy a IOMMU context created previously.
> +It is not possible to free the default context.
> +
> +Reattach context devices to default context if specified by the guest.
> +
> +Fail if there is a device in the context and reattach-to-default flag is=
 not
> +specified.
> +
> +## Reattach device
> +
> +Reattach a device to another IOMMU context (including the default one).
> +The target IOMMU context number must be valid and the context allocated.
> +
> +The guest needs to specify a PCI SBDF of a device he has access to.
> +
> +## Map/unmap page
> +
> +Map/unmap a page on a context.
> +The guest needs to specify a gfn and target dfn to map.

And an "order", I hope; to enable superpages and hugepages without having t=
o
find out after the fact that the mappings are in fact mergeable and the lea=
f PTs
can go away.

> +
> +Refuse to create the mapping if one already exist for the same dfn.
> +
> +## Lookup page
> +
> +Get the gfn mapped by a specific dfn.
> +
> +# Implementation considerations
> +
> +## Hypercall batching
> +
> +In order to prevent unneeded hypercalls and IOMMU flushing, it is advisa=
ble to
> +be able to batch some critical IOMMU operations (e.g map/unmap multiple =
pages).

See above for an additional way of reducing the load.

> +
> +## Hardware without IOMMU support
> +
> +Operating system needs to be aware on PV-IOMMU capability, and whether i=
t is
> +able to make contexts. However, some operating system may critically fai=
l in
> +case they are able to make a new IOMMU context. Which is supposed to hap=
pen
> +if no IOMMU hardware is available.
> +
> +The hypercall interface needs a interface to advertise the ability to cr=
eate
> +and manage IOMMU contexts including the amount of context the guest is a=
ble
> +to use. Using these informations, the Dom0 may decide whether to use or =
not
> +the PV-IOMMU interface.

We could just return -ENOTSUPP when there's no IOMMU, then encapsulate a ra=
ndom
lookup with pv_iommu_is_present() and return true or false depending on rc.

> +
> +## Page pool for contexts
> +
> +In order to prevent unexpected starving on the hypervisor memory with a
> +buggy Dom0. We can preallocate the pages the contexts will use and make
> +map/unmap use these pages instead of allocating them dynamically.
> +

That seems dangerous should we need to shatter a superpage asynchronously (=
i.e:
due to HW misbehaving and requiring it) and have no more pages in the pool.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 19:21:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 19:21:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757675.1166778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sRzLh-000779-5w; Thu, 11 Jul 2024 19:21:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757675.1166778; Thu, 11 Jul 2024 19: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 1sRzLh-000772-27; Thu, 11 Jul 2024 19:21:01 +0000
Received: by outflank-mailman (input) for mailman id 757675;
 Thu, 11 Jul 2024 19: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=hOEV=OL=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sRzLg-00076c-92
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 19:21:00 +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 b245b080-3fba-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 21:20:56 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a77e85cb9b4so171772166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 12:20:56 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a872e0dsm278320166b.215.2024.07.11.12.20.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 12: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: b245b080-3fba-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720725655; x=1721330455; 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=yt+9J24bLbrNFdi7uERiynvKx90ubDvShMDwuacdRpQ=;
        b=OHp871hVHXHjqePI3IC+YUJStF9JVcGrkn8DZk60sfA/x/vv267B/HXk9cIWgKa+LX
         Qb/mb9Hs7w7upw7v/r+92gGu2TnFCc8SZba8l8yJbubNQl4bXp91m3WNWqRQRsKSIvZ6
         I5/I59Rph3YTjngOYUTW1qmnoMCXlLpocRuWg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720725655; x=1721330455;
        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=yt+9J24bLbrNFdi7uERiynvKx90ubDvShMDwuacdRpQ=;
        b=Cr4nJ1jBJ15pfx/9YlnrI8eJkRGd18GLAPxwl1QuNL6wDJ8D5V9mAO/CYyzecbeN/c
         lvLF5ehei0Sqj+FOmGKALNjznqO5nUBdFDHEFoxDeiQixawIy3mLoU/emnhzTKbOcL5Z
         ySOT6eYFMiMxkYn9GHYg34pGfPcgOcIn5Kpy3Ox2a9YuKZgkjdVMOf7RSigv+HJzvxip
         KX9VaNEMapiqF3XzHZ1u4LzV2h3PjHbbqfyl0XAWfSlChblWSAZT6nJBiuYlX7NMAwsq
         7LHB2Xgf0EPivQukuM3rcBa/k5G835Eotcl4c0Ssb6jj+1EMmi1IjRaDnLIGdfyvsf8H
         DA6w==
X-Forwarded-Encrypted: i=1; AJvYcCVhr47frmzj409w+bnYJ63SpLp30cwING8CiPHX8WCpvz3DsRmTb83ozd4FIALGH/4qo0e++EcSapXvMdsRNffu658oi5DbOIjHBUaUPfg=
X-Gm-Message-State: AOJu0Yy3xWRKKSUE7sgN9kS1GVE0FcLRfEDc36F94YyV55AyRs5+H0jp
	4vtjCWwnahqYb/aDFdlgPHL6Kg/hYzsv83Yi6df4eeC7HoUlh+WLgSIgqVwnbOA=
X-Google-Smtp-Source: AGHT+IGhcJfDzfbY9BTF7RWaTIae9tZpZ1Iutn7UiF6fe7lgHK/Jm8M3HTf5T5Kbgq7p4q09ieIzdw==
X-Received: by 2002:a17:906:e56:b0:a77:e7b9:fda0 with SMTP id a640c23a62f3a-a780b68a231mr561851166b.14.1720725655277;
        Thu, 11 Jul 2024 12:20:55 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Thu, 11 Jul 2024 20:20:53 +0100
Message-Id: <D2MYC4AEBUQZ.3DNOIV8LEE7F9@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich"
 <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini"
 <sstabellini@kernel.org>, =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Subject: Re: [RFC XEN PATCH v3 5/5] xen/public: Introduce PV-IOMMU hypercall
 interface
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Teddy Astie" <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.17.0
References: <cover.1720703078.git.teddy.astie@vates.tech>
 <f9ae663df38acc0d330b7582dfaa7ac199746aca.1720703078.git.teddy.astie@vates.tech>
In-Reply-To: <f9ae663df38acc0d330b7582dfaa7ac199746aca.1720703078.git.teddy.astie@vates.tech>

On Thu Jul 11, 2024 at 3:04 PM BST, Teddy Astie wrote:
> Introduce a new pv interface to manage the underlying IOMMU and manage co=
ntexts
> and devices. This interface allows creation of new contexts from Dom0 and
> addition of IOMMU mappings using guest PoV.
>
> This interface doesn't allow creation of mapping to other domains.
>
> Signed-off-by Teddy Astie <teddy.astie@vates.tech>
> ---
> Changed in V2:
> * formatting
>
> Changed in V3:
> * prevent IOMMU operations on dying contexts
> ---
>  xen/common/Makefile           |   1 +
>  xen/common/pv-iommu.c         | 328 ++++++++++++++++++++++++++++++++++
>  xen/include/hypercall-defs.c  |   6 +
>  xen/include/public/pv-iommu.h | 114 ++++++++++++
>  xen/include/public/xen.h      |   1 +
>  5 files changed, 450 insertions(+)
>  create mode 100644 xen/common/pv-iommu.c
>  create mode 100644 xen/include/public/pv-iommu.h
>
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index f12a474d40..52ada89888 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -58,6 +58,7 @@ obj-y +=3D wait.o
>  obj-bin-y +=3D warning.init.o
>  obj-$(CONFIG_XENOPROF) +=3D xenoprof.o
>  obj-y +=3D xmalloc_tlsf.o
> +obj-y +=3D pv-iommu.o
> =20
>  obj-bin-$(CONFIG_X86) +=3D $(foreach n,decompress bunzip2 unxz unlzma lz=
o unlzo unlz4 unzstd earlycpio,$(n).init.o)
> =20
> diff --git a/xen/common/pv-iommu.c b/xen/common/pv-iommu.c
> new file mode 100644
> index 0000000000..a94c0f1e1a
> --- /dev/null
> +++ b/xen/common/pv-iommu.c
> @@ -0,0 +1,328 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * xen/common/pv_iommu.c
> + *
> + * PV-IOMMU hypercall interface.
> + */
> +
> +#include <xen/mm.h>
> +#include <xen/lib.h>
> +#include <xen/iommu.h>
> +#include <xen/sched.h>
> +#include <xen/pci.h>
> +#include <xen/guest_access.h>
> +#include <asm/p2m.h>
> +#include <asm/event.h>
> +#include <public/pv-iommu.h>
> +
> +#define PVIOMMU_PREFIX "[PV-IOMMU] "
> +
> +#define PVIOMMU_MAX_PAGES 256 /* Move to Kconfig ? */

It probably wants to be a cmdline argument, I think.

> +
> +/* Allowed masks for each sub-operation */
> +#define ALLOC_OP_FLAGS_MASK (0)
> +#define FREE_OP_FLAGS_MASK (IOMMU_TEARDOWN_REATTACH_DEFAULT)
> +
> +static int get_paged_frame(struct domain *d, gfn_t gfn, mfn_t *mfn,
> +                           struct page_info **page, int readonly)
> +{
> +    p2m_type_t p2mt;
> +
> +    *page =3D get_page_from_gfn(d, gfn_x(gfn), &p2mt,
> +                             (readonly) ? P2M_ALLOC : P2M_UNSHARE);
> +
> +    if ( !(*page) )
> +    {
> +        *mfn =3D INVALID_MFN;
> +        if ( p2m_is_shared(p2mt) )
> +            return -EINVAL;
> +        if ( p2m_is_paging(p2mt) )
> +        {
> +            p2m_mem_paging_populate(d, gfn);
> +            return -EIO;
> +        }
> +
> +        return -EPERM;

This is ambiguous with the other usage of EPERM.

> +    }
> +
> +    *mfn =3D page_to_mfn(*page);
> +
> +    return 0;
> +}
> +
> +static int can_use_iommu_check(struct domain *d)
> +{
> +    if ( !iommu_enabled )
> +    {
> +        printk(PVIOMMU_PREFIX "IOMMU is not enabled\n");
> +        return 0;
> +    }
> +
> +    if ( !is_hardware_domain(d) )
> +    {
> +        printk(PVIOMMU_PREFIX "Non-hardware domain\n");
> +        return 0;
> +    }
> +
> +    if ( !is_iommu_enabled(d) )
> +    {
> +        printk(PVIOMMU_PREFIX "IOMMU disabled for this domain\n");
> +        return 0;
> +    }
> +
> +    return 1;
> +}
> +
> +static long query_cap_op(struct pv_iommu_op *op, struct domain *d)
> +{
> +    op->cap.max_ctx_no =3D d->iommu.other_contexts.count;
> +    op->cap.max_nr_pages =3D PVIOMMU_MAX_PAGES;
> +    op->cap.max_iova_addr =3D (1LLU << 39) - 1; /* TODO: hardcoded 39-bi=
ts */
> +
> +    return 0;
> +}
> +
> +static long alloc_context_op(struct pv_iommu_op *op, struct domain *d)
> +{
> +    u16 ctx_no =3D 0;
> +    int status =3D 0;
> +
> +    status =3D iommu_context_alloc(d, &ctx_no, op->flags & ALLOC_OP_FLAG=
S_MASK);
> +
> +    if (status < 0)
> +        return status;
> +
> +    printk("Created context %hu\n", ctx_no);
> +
> +    op->ctx_no =3D ctx_no;
> +    return 0;
> +}
> +
> +static long free_context_op(struct pv_iommu_op *op, struct domain *d)
> +{
> +    return iommu_context_free(d, op->ctx_no,
> +                              IOMMU_TEARDOWN_PREEMPT | (op->flags & FREE=
_OP_FLAGS_MASK));
> +}
> +
> +static long reattach_device_op(struct pv_iommu_op *op, struct domain *d)
> +{
> +    struct physdev_pci_device dev =3D op->reattach_device.dev;
> +    device_t *pdev;
> +
> +    pdev =3D pci_get_pdev(d, PCI_SBDF(dev.seg, dev.bus, dev.devfn));
> +
> +    if ( !pdev )
> +        return -ENOENT;
> +
> +    return iommu_reattach_context(d, d, pdev, op->ctx_no);
> +}
> +
> +static long map_pages_op(struct pv_iommu_op *op, struct domain *d)
> +{
> +    int ret =3D 0, flush_ret;
> +    struct page_info *page =3D NULL;
> +    mfn_t mfn;
> +    unsigned int flags;
> +    unsigned int flush_flags =3D 0;
> +    size_t i =3D 0;
> +
> +    if ( op->map_pages.nr_pages > PVIOMMU_MAX_PAGES )
> +        return -E2BIG;
> +
> +    if ( !iommu_check_context(d, op->ctx_no) )
> +        return -EINVAL;
> +
> +    //printk("Mapping gfn:%lx-%lx to dfn:%lx-%lx on %hu\n",
> +    //       op->map_pages.gfn, op->map_pages.gfn + op->map_pages.nr_pag=
es - 1,
> +    //       op->map_pages.dfn, op->map_pages.dfn + op->map_pages.nr_pag=
es - 1,
> +    //       op->ctx_no);
> +
> +    flags =3D 0;
> +
> +    if ( op->flags & IOMMU_OP_readable )
> +        flags |=3D IOMMUF_readable;
> +
> +    if ( op->flags & IOMMU_OP_writeable )
> +        flags |=3D IOMMUF_writable;
> +
> +    spin_lock(&dom_iommu(d)->lock);
> +
> +    for (i =3D 0; i < op->map_pages.nr_pages; i++)

This loop (and the unmap one) want to be bound by MIN(nr_pages, FOO), where=
  FOO
is some upper bound to the number of hypercalls we're willing to do in a si=
ngle
continuation. If case of reaching that high number, we should create a new
continuation and allow something else to run.

> +    {
> +        gfn_t gfn =3D _gfn(op->map_pages.gfn + i);
> +        dfn_t dfn =3D _dfn(op->map_pages.dfn + i);
> +
> +        /* Lookup pages struct backing gfn */
> +        ret =3D get_paged_frame(d, gfn, &mfn, &page, 0);
> +
> +        if ( ret )
> +            break;
> +
> +        /* Check for conflict with existing mappings */
> +        if ( !_iommu_lookup_page(d, dfn, &mfn, &flags, op->ctx_no) )
> +        {
> +            put_page(page);
> +            ret =3D -EADDRINUSE;
> +            break;
> +        }
> +
> +        ret =3D _iommu_map(d, dfn, mfn, 1, flags, &flush_flags, op->ctx_=
no);
> +
> +        if ( ret )
> +            break;
> +    }
> +
> +    flush_ret =3D _iommu_iotlb_flush(d, _dfn(op->map_pages.dfn),
> +                                   op->map_pages.nr_pages, flush_flags,
> +                                   op->ctx_no);
> +
> +    spin_unlock(&dom_iommu(d)->lock);
> +
> +    op->map_pages.mapped =3D i;
> +
> +    if ( flush_ret )
> +        printk("Flush operation failed (%d)\n", flush_ret);

I haven't looked at _iommu_iotlb_flush(), but a printk isn't good enough he=
re.
We want to set up a continuation to retry later, I think.

What might cause the error?

> +
> +    return ret;
> +}
> +
> +static long unmap_pages_op(struct pv_iommu_op *op, struct domain *d)
> +{
> +    mfn_t mfn;
> +    int ret =3D 0, flush_ret;
> +    unsigned int flags;
> +    unsigned int flush_flags =3D 0;
> +    size_t i =3D 0;
> +
> +    if ( op->unmap_pages.nr_pages > PVIOMMU_MAX_PAGES )
> +        return -E2BIG;
> +
> +    if ( !iommu_check_context(d, op->ctx_no) )
> +        return -EINVAL;
> +
> +    //printk("Unmapping dfn:%lx-%lx on %hu\n",
> +    //       op->unmap_pages.dfn, op->unmap_pages.dfn + op->unmap_pages.=
nr_pages - 1,
> +    //       op->ctx_no);
> +
> +    spin_lock(&dom_iommu(d)->lock);
> +
> +    for (i =3D 0; i < op->unmap_pages.nr_pages; i++)
> +    {
> +        dfn_t dfn =3D _dfn(op->unmap_pages.dfn + i);
> +
> +        /* Check if there is a valid mapping for this domain */
> +        if ( _iommu_lookup_page(d, dfn, &mfn, &flags, op->ctx_no) ) {
> +            ret =3D -ENOENT;
> +            break;
> +        }
> +
> +        ret =3D _iommu_unmap(d, dfn, 1, 0, &flush_flags, op->ctx_no);
> +
> +        if (ret)
> +            break;
> +
> +        /* Decrement reference counter */
> +        put_page(mfn_to_page(mfn));
> +    }
> +
> +    flush_ret =3D _iommu_iotlb_flush(d, _dfn(op->unmap_pages.dfn),
> +                                   op->unmap_pages.nr_pages, flush_flags=
,
> +                                   op->ctx_no);
> +
> +    spin_unlock(&dom_iommu(d)->lock);
> +
> +    op->unmap_pages.unmapped =3D i;
> +
> +    if ( flush_ret )
> +        printk("Flush operation failed (%d)\n", flush_ret);

Same as above.

> +
> +    return ret;
> +}
> +
> +static long lookup_page_op(struct pv_iommu_op *op, struct domain *d)
> +{
> +    mfn_t mfn;
> +    gfn_t gfn;
> +    unsigned int flags =3D 0;
> +
> +    if ( !iommu_check_context(d, op->ctx_no) )
> +        return -EINVAL;
> +
> +    /* Check if there is a valid BFN mapping for this domain */
> +    if ( iommu_lookup_page(d, _dfn(op->lookup_page.dfn), &mfn, &flags, o=
p->ctx_no) )
> +        return -ENOENT;
> +
> +    gfn =3D mfn_to_gfn(d, mfn);
> +    BUG_ON(gfn_eq(gfn, INVALID_GFN));
> +
> +    op->lookup_page.gfn =3D gfn_x(gfn);
> +
> +    return 0;
> +}
> +
> +long do_iommu_sub_op(struct pv_iommu_op *op)
> +{
> +    struct domain *d =3D current->domain;
> +
> +    if ( !can_use_iommu_check(d) )
> +        return -EPERM;

This checks should be split, imo.

```
    if ( !iommu_enabled || !is_iommu_enabled(d) )
        return -ENOTSUP;
    if ( !is_hardware_domain(d) )
        return -EPERM;
```

For the second, we probably want an XSM hook as well (or instead of, not su=
re).

> +
> +    switch ( op->subop_id )
> +    {
> +        case 0:
> +            return 0;

IOMMUOP_noop?

> +
> +        case IOMMUOP_query_capabilities:
> +            return query_cap_op(op, d);
> +
> +        case IOMMUOP_alloc_context:
> +            return alloc_context_op(op, d);
> +
> +        case IOMMUOP_free_context:
> +            return free_context_op(op, d);
> +
> +        case IOMMUOP_reattach_device:
> +            return reattach_device_op(op, d);
> +
> +        case IOMMUOP_map_pages:
> +            return map_pages_op(op, d);
> +
> +        case IOMMUOP_unmap_pages:
> +            return unmap_pages_op(op, d);
> +
> +        case IOMMUOP_lookup_page:
> +            return lookup_page_op(op, d);
> +
> +        default:
> +            return -EINVAL;
> +    }
> +}
> +
> +long do_iommu_op(XEN_GUEST_HANDLE_PARAM(void) arg)
> +{
> +    long ret =3D 0;
> +    struct pv_iommu_op op;
> +
> +    if ( unlikely(copy_from_guest(&op, arg, 1)) )
> +        return -EFAULT;
> +
> +    ret =3D do_iommu_sub_op(&op);
> +
> +    if ( ret =3D=3D -ERESTART )
> +        return hypercall_create_continuation(__HYPERVISOR_iommu_op, "h",=
 arg);
> +
> +    if ( unlikely(copy_to_guest(arg, &op, 1)) )
> +        return -EFAULT;
> +
> +    return ret;
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
> index 47c093acc8..4ba4480867 100644
> --- a/xen/include/hypercall-defs.c
> +++ b/xen/include/hypercall-defs.c
> @@ -209,6 +209,9 @@ hypfs_op(unsigned int cmd, const char *arg1, unsigned=
 long arg2, void *arg3, uns
>  #ifdef CONFIG_X86
>  xenpmu_op(unsigned int op, xen_pmu_params_t *arg)
>  #endif
> +#ifdef CONFIG_HAS_PASSTHROUGH
> +iommu_op(void *arg)
> +#endif
> =20
>  #ifdef CONFIG_PV
>  caller: pv64
> @@ -295,5 +298,8 @@ mca                                do       do       =
-        -        -
>  #ifndef CONFIG_PV_SHIM_EXCLUSIVE
>  paging_domctl_cont                 do       do       do       do       -
>  #endif
> +#ifdef CONFIG_HAS_PASSTHROUGH
> +iommu_op                           do       do       do       do       -
> +#endif
> =20
>  #endif /* !CPPCHECK */
> diff --git a/xen/include/public/pv-iommu.h b/xen/include/public/pv-iommu.=
h
> new file mode 100644
> index 0000000000..45f9c44eb1
> --- /dev/null
> +++ b/xen/include/public/pv-iommu.h
> @@ -0,0 +1,114 @@
> +/* SPDX-License-Identifier: MIT */
> +/***********************************************************************=
*******
> + * pv-iommu.h
> + *
> + * Paravirtualized IOMMU driver interface.
> + *
> + * Copyright (c) 2024 Teddy Astie <teddy.astie@vates.tech>
> + */
> +
> +#ifndef __XEN_PUBLIC_PV_IOMMU_H__
> +#define __XEN_PUBLIC_PV_IOMMU_H__
> +
> +#include "xen.h"
> +#include "physdev.h"
> +
> +#define IOMMU_DEFAULT_CONTEXT (0)
> +

>From the code, seems like "#define IOMMUOP_noop 0" is missing

> +/**
> + * Query PV-IOMMU capabilities for this domain.
> + */
> +#define IOMMUOP_query_capabilities    1
> +
> +/**
> + * Allocate an IOMMU context, the new context handle will be written to =
ctx_no.
> + */
> +#define IOMMUOP_alloc_context         2

Please, don't write to the header. It's an absolute pain to Rust-ify and hi=
ghly
unexpected when absolutely everything else will take that as an input param=
eter.

Provide the output as a dedicated OUT field in the alloc_context struct
instead.

> +
> +/**
> + * Destroy a IOMMU context.
> + * All devices attached to this context are reattached to default contex=
t.
> + *
> + * The default context can't be destroyed (0).
> + */
> +#define IOMMUOP_free_context          3
> +
> +/**
> + * Reattach the device to IOMMU context.
> + */
> +#define IOMMUOP_reattach_device       4
> +
> +#define IOMMUOP_map_pages             5
> +#define IOMMUOP_unmap_pages           6
> +
> +/**
> + * Get the GFN associated to a specific DFN.
> + */
> +#define IOMMUOP_lookup_page           7
> +
> +struct pv_iommu_op {
> +    uint16_t subop_id;
> +    uint16_t ctx_no;

Seeing how there's no polymorphism going on, why not put these on each stru=
ct?
Then each handler can take a pointer to each substruct and everything is a =
lot
safer.

> +
> +/**
> + * Create a context that is cloned from default.
> + * The new context will be populated with 1:1 mappings covering the enti=
re guest memory.
> + */
> +#define IOMMU_CREATE_clone (1 << 0)
> +
> +#define IOMMU_OP_readable (1 << 0)
> +#define IOMMU_OP_writeable (1 << 1)
> +    uint32_t flags;

This bitmap is used for different things in different subops, which highly
suggests it should be per-struct instead.

> +
> +    union {
> +        struct {

Can you move these out to be first-class structs rather than anon? In prett=
y
much the same way of the other major hypercall groups. I'd like to be able =
to
generate them from IDL like I intend to do with all others.

> +            uint64_t gfn;
> +            uint64_t dfn;

(a) I'd rather see descriptions in the missing gfn/dfn in various fields, a=
nd
more specifically IN/OUT tags everywhere (i.e: as in /* IN: Number of pages=
 to
map */).

(b) Any 64bit numbers in the external ABI must be uint64_aligned_t so the
alignment is 8 on 32bit architectures. I know this instance (and the others=
)
happen to be aligned in both cases, but still.

That said, either these are 32bit frame numbers or otherwise we're better o=
ff
using addresses instead.  It'd also be less confusing on systems with sever=
al
page sizes, and it'd be specially less confusing if an additional parameter=
 of
"order" or "page size" was added here.

> +            /* Number of pages to map */
> +            uint32_t nr_pages;
> +            /* Number of pages actually mapped after sub-op */
> +            uint32_t mapped;

A more helpful output might some kind of err_addr with the offending page. =
Then
the caller doesn't have to do arithmetic to print the error somewhere.

Furthermore, seeing how this is something that should not happen I'd be tem=
pted
to amend the spec to somehow roll back whatever we just did, but that could=
 be
tricky with big numbers in `nr_pages`.

> +        } map_pages;
> +
> +        struct {
> +            uint64_t dfn;
> +            /* Number of pages to unmap */
> +            uint32_t nr_pages;
> +            /* Number of pages actually unmapped after sub-op */
> +            uint32_t unmapped;
> +        } unmap_pages;
> +
> +        struct {
> +            struct physdev_pci_device dev;
> +        } reattach_device;
> +
> +        struct {
> +            uint64_t gfn;
> +            uint64_t dfn;
> +        } lookup_page;
> +
> +        struct {
> +            /* Maximum number of IOMMU context this domain can use. */
> +            uint16_t max_ctx_no;
> +            /* Maximum number of pages that can be modified in a single =
map/unmap operation. */
> +            uint32_t max_nr_pages;
> +            /* Maximum device address (iova) that the guest can use for =
mappings. */
> +            uint64_t max_iova_addr;
> +        } cap;
> +    };
> +};
> +
> +typedef struct pv_iommu_op pv_iommu_op_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_op_t);
> +
> +#endif
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> \ No newline at end of file
> diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
> index b47d48d0e2..28ab815ebc 100644
> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -118,6 +118,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
>  #define __HYPERVISOR_xenpmu_op            40
>  #define __HYPERVISOR_dm_op                41
>  #define __HYPERVISOR_hypfs_op             42
> +#define __HYPERVISOR_iommu_op             43
> =20
>  /* Architecture-specific hypercall definitions. */
>  #define __HYPERVISOR_arch_0               48



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 20:24:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 20:24:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757684.1166787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS0KS-0005ra-JP; Thu, 11 Jul 2024 20:23:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757684.1166787; Thu, 11 Jul 2024 20: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 1sS0KS-0005rT-Gu; Thu, 11 Jul 2024 20:23:48 +0000
Received: by outflank-mailman (input) for mailman id 757684;
 Thu, 11 Jul 2024 20:23: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sS0KQ-0005rN-Ko
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 20:23:46 +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 774a605c-3fc3-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 22:23:42 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a77d9217e6fso176226866b.2
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 13:23:42 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6dfb19sm284302966b.66.2024.07.11.13.23.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 13:23: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: 774a605c-3fc3-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720729421; x=1721334221; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IpVMbtAPh/d/2PPbAwt7r6y7YPmwonQerNDnIDQpg6I=;
        b=N7+fOPIYefy1KC59GTFPIKgk0ZYX5vae+kY8LsynKgqmuXBt01Whv9ZOix8k8KezGU
         B5EnMDoZsmr159vNRXPEfyXglinojjmIbPJLpTq9lcEWU4o1kq5wgrX7RaWDyaT257ab
         JbFyAYTjb8I/Rgls+3vLPWgZtu5bmZPexWisM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720729421; x=1721334221;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=IpVMbtAPh/d/2PPbAwt7r6y7YPmwonQerNDnIDQpg6I=;
        b=A0IMk1WPLvj6dNw5mTC7+cPOjP0dR6SUFZOK8Azo6zMrH3CzvM8lIfEjktn3CBVpRd
         o+rBWm4y76g9MelibTVF8GybGbp0MW/QNHpqZ3087u4PuxSIRndeXivr+mWIgZslf7ll
         0xKJ+yGnBJiVFgdJVh35z0OAemsNxyrHmEMUxokx2X14YOLgPZUGq2ESShVujYGgtrjo
         jwHTy9187qwp4InLCduf9PmwM42F8LvrIANDqoDwFT/QCgWsnEn9bIp6MJ5gBSMZ3BQz
         QeLsv17PEtjiMDublN66qecbNTXLDLkJHPa9dfuFwxFGkKBvPFMEFSopwf99F6dtRpo9
         8ZZw==
X-Gm-Message-State: AOJu0Yw9ZaYVtP4dxc1Ia/lLNBcEtMducTN55aQpeMTSHtO516bTJJNZ
	4d/yHp7ykgBwGibLzOjQ/OuVPS5aQTgCRw/GFyUjbyI2xkedmIuKkTrSrLMh03wnn4OWr3ffH4O
	h
X-Google-Smtp-Source: AGHT+IH88DM9Q4+KiHpA5R5Wpx11Z3bFn+wtvU/J/FuiR8zygZ3LCnYQIX0arYYtaqDGyqaKVcS8ug==
X-Received: by 2002:a17:906:39d6:b0:a72:9963:eb8e with SMTP id a640c23a62f3a-a780b6b307emr492899766b.28.1720729421544;
        Thu, 11 Jul 2024 13:23:41 -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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Olaf Hering <olaf@aepfle.de>
Subject: [PATCH 13/12] CI: Refresh OpenSUSE Tumbleweed container
Date: Thu, 11 Jul 2024 21:23:37 +0100
Message-Id: <20240711202337.3128473-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Existing as suse:opensuse-tumbleweed is a historical quirk, and adjusted for
consistency with all the other containers.

Make it non-root, use heredocs for legibility, and use the zypper long names
for the benefit of those wondering what was being referenced or duplicated.

Trim the dependencies substantially.  Testing docs isn't very interesting and
saves a lot of space (pandoc pulls in all of Haskel).  Other savings come from
removing a huge pile of optional QEMU dependencies (QEMU just needs to build
the Xen parts to be useful here, not have a full GUI environment).

Finally, there where some packages such as bc, libssh2-devel, libtasn1-devel
and nasm that I'm not aware of any reason to have had, even historically.

This shaves 1G off the size of the container:

  registry.gitlab.com/xen-project/xen/opensuse  tumbleweed-x86_64      1.39GB
  registry.gitlab.com/xen-project/xen/suse      opensuse-tumbleweed    2.35GB

Furthermore, identify which components of the build use which dependencies,
which will help managing them in the future.

Thanks to Olaf Hering for dependency fixes that have been subsumed into this
total overhaul.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Olaf Hering <olaf@aepfle.de>

This includes both of Olaf's recent changes, python3-packaging (now required
for a rebuilt container), and findutils (not required yet; still gets pulled
in transitively), but added for good measure.

In terms of package delta, newly included are:

  findutils            # As suggested
  ocaml-findlib        # Replaces ocaml-findlib-devel
  perl                 # Transitive previously
  python3              # Transitive previously
  python3-packaging    # As suggested

while removed are:

  bc                   # ?
  cmake                # vtpm stubdom, optional
  discount             # docs
  ghostscript          # docs
  glibc-devel          # Not really optional, given a toolchain
  hostname             # Optional, not interesting
  libaio-devel         # Xen < 4.13, perhaps Qemu still but optional
  libext2fs-devel      # Libfsimage, off by default, optional
  libgnutls-devel      # Qemu ?
  libjpeg62-devel      # Qemu ?
  libnl3-devel         # Libxl COLO(?), option
  libnuma-devel        # ?
  libpng16-devel       # Qemu ?
  libssh2-devel        # ?
  libtasn1-devel       # ?
  nasm                 # ?
  ocaml-findlib-devel  # Swapped for non-devel
  ocaml-ocamlbuild     # ?
  ocaml-ocamldoc       # ?
  pandoc               # docs
  'pkgconfig(libpci)'  # Qemu
  'pkgconfig(sdl)'     # Qemu
  'pkgconfig(sdl2)'    # Qemu
  systemd-devel        # Xen < 4.19, optional
  transfig             # docs
  valgrind-devel       # really only for developers
  which                # Xen < 4.17

I've tested this on staging-4.17 and staging, both of which build fine.
staging-4.16 does not, because of SeaBIOS which we've decided not to fix,
hence it's safe to drop `which`.
---
 .../opensuse/tumbleweed-x86_64.dockerfile     | 76 +++++++++++++++++++
 .../build/suse/opensuse-tumbleweed.dockerfile | 74 ------------------
 automation/gitlab-ci/build.yaml               |  8 +-
 automation/scripts/containerize               |  2 +-
 4 files changed, 81 insertions(+), 79 deletions(-)
 create mode 100644 automation/build/opensuse/tumbleweed-x86_64.dockerfile
 delete mode 100644 automation/build/suse/opensuse-tumbleweed.dockerfile

diff --git a/automation/build/opensuse/tumbleweed-x86_64.dockerfile b/automation/build/opensuse/tumbleweed-x86_64.dockerfile
new file mode 100644
index 000000000000..8c5ff56cdc88
--- /dev/null
+++ b/automation/build/opensuse/tumbleweed-x86_64.dockerfile
@@ -0,0 +1,76 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 opensuse/tumbleweed
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV XEN_TARGET_ARCH=x86_64
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    zypper refresh
+    zypper dist-upgrade -y --no-recommends
+
+    DEPS=(
+        # Xen
+        bison
+        checkpolicy
+        clang
+        diffutils
+        findutils
+        flex
+        gawk
+        gcc
+        make
+        python3
+
+        # Tools (general)
+        git
+        gzip
+        patch
+        perl
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-devel
+        libzstd-devel
+        lzo-devel
+        xz-devel
+        zlib-devel
+        # libacpi
+        acpica
+        # libxl
+        libuuid-devel
+        libyajl-devel
+        # Header Check
+        gcc-c++
+        # xentop
+        ncurses-devel
+        # Python bindings
+        python3-devel
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml
+        ocaml-findlib
+
+        # Stubdom (download/extract)
+        bzip2
+        tar
+
+        # Qemu build
+        glib2-devel
+        libpixman-1-0-devel
+        meson
+        ninja
+        python3-packaging
+    )
+
+    zypper install -y --no-recommends "${DEPS[@]}"
+    zypper clean -a
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/suse/opensuse-tumbleweed.dockerfile b/automation/build/suse/opensuse-tumbleweed.dockerfile
deleted file mode 100644
index 077fed22260c..000000000000
--- a/automation/build/suse/opensuse-tumbleweed.dockerfile
+++ /dev/null
@@ -1,74 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 opensuse/tumbleweed
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-RUN zypper ref && zypper dup -y --no-recommends
-RUN zypper install -y --no-recommends \
-        acpica \
-        bc \
-        bison \
-        bzip2 \
-        checkpolicy \
-        clang \
-        cmake \
-        diffutils \
-        discount \
-        flex \
-        gawk \
-        gcc \
-        gcc-c++ \
-        git \
-        ghostscript \
-        glib2-devel \
-        glibc-devel \
-        gzip \
-        hostname \
-        libaio-devel \
-        libbz2-devel \
-        libext2fs-devel \
-        libgnutls-devel \
-        libjpeg62-devel \
-        libnl3-devel \
-        libnuma-devel \
-        libpixman-1-0-devel \
-        libpng16-devel \
-        libssh2-devel \
-        libtasn1-devel \
-        libuuid-devel \
-        libyajl-devel \
-        libzstd-devel \
-        lzo-devel \
-        make \
-        meson \
-        nasm \
-        ncurses-devel \
-        ninja \
-        ocaml \
-        ocaml-findlib-devel \
-        ocaml-ocamlbuild \
-        ocaml-ocamldoc \
-        pandoc \
-        patch \
-        pkg-config \
-        'pkgconfig(libpci)' \
-        'pkgconfig(sdl)' \
-        'pkgconfig(sdl2)' \
-        python3-devel \
-        python3-setuptools \
-        # systemd-devel for Xen < 4.19
-        systemd-devel \
-        tar \
-        transfig \
-        valgrind-devel \
-        wget \
-        which \
-        xz-devel \
-        zlib-devel \
-        && \
-        zypper clean -a
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index b4139414bc8e..fd6ca1270e4e 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -668,25 +668,25 @@ opensuse-leap-gcc-debug:
 opensuse-tumbleweed-clang:
   extends: .clang-x86-64-build
   variables:
-    CONTAINER: suse:opensuse-tumbleweed
+    CONTAINER: opensuse:tumbleweed-x86_64
   allow_failure: true
 
 opensuse-tumbleweed-clang-debug:
   extends: .clang-x86-64-build-debug
   variables:
-    CONTAINER: suse:opensuse-tumbleweed
+    CONTAINER: opensuse:tumbleweed-x86_64
   allow_failure: true
 
 opensuse-tumbleweed-gcc:
   extends: .gcc-x86-64-build
   variables:
-    CONTAINER: suse:opensuse-tumbleweed
+    CONTAINER: opensuse:tumbleweed-x86_64
   allow_failure: true
 
 opensuse-tumbleweed-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
-    CONTAINER: suse:opensuse-tumbleweed
+    CONTAINER: opensuse:tumbleweed-x86_64
   allow_failure: true
 
 # PowerPC builds (x86 cross)
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 4d5669c5ad01..c4f013702122 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -43,7 +43,7 @@ case "_${CONTAINER}" in
     _bionic) CONTAINER="${BASE}/ubuntu:bionic" ;;
     _xenial) CONTAINER="${BASE}/ubuntu:xenial" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/suse:opensuse-leap" ;;
-    _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/suse:opensuse-tumbleweed" ;;
+    _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
 esac
 
 # Use this variable to control whether root should be used
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 20:55:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 20:55:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757691.1166798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS0pD-0001UJ-3n; Thu, 11 Jul 2024 20:55:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757691.1166798; Thu, 11 Jul 2024 20: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 1sS0pD-0001UC-1B; Thu, 11 Jul 2024 20:55:35 +0000
Received: by outflank-mailman (input) for mailman id 757691;
 Thu, 11 Jul 2024 20:55:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS0pB-0001U2-W6; Thu, 11 Jul 2024 20:55:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS0pB-0004rD-RW; Thu, 11 Jul 2024 20:55:33 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS0pB-0007c8-DM; Thu, 11 Jul 2024 20:55:33 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sS0pB-0005ZV-Cn; Thu, 11 Jul 2024 20:55: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=5bz9njl8qGqLNdjTZZR5YplrHosNNesajzZfFJCDGRY=; b=KCufPqUCW1z6qsYZE3kc8RjSav
	+6Ex55UecDxo17awGH62uGBF5fYendnoGvPWJ0LmFMyDzrTEWoabTPptwP/TT9yrGZ5DM97dcifC6
	KMsPqLeQ2MZZQZl5NmnbVRT18RInXpo/J5C1ui7Srz9nvrDQIJ/4qA2XlKaX3UkrYsYw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186763-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-6.1 test] 186763: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-6.1:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=266ee8e06d5baa186a0b5b8727eb99ae2d00dc9c
X-Osstest-Versions-That:
    linux=7753af06eebfb56b44673bbfcb0b78d73a54ede9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Jul 2024 20:55:33 +0000

flight 186763 linux-6.1 real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186763/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186712
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186712
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186712
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186712
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186712
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186712
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                266ee8e06d5baa186a0b5b8727eb99ae2d00dc9c
baseline version:
 linux                7753af06eebfb56b44673bbfcb0b78d73a54ede9

Last test of basis   186712  2024-07-06 07:09:54 Z    5 days
Testing same since   186763  2024-07-11 11:12:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ajay Singh <ajay.kathat@microchip.com>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alex Deucher <alexander.deucher@amd.com>
  Alex Hung <alex.hung@amd.com>
  Alexander Gordeev <agordeev@linux.ibm.com>
  Alexis Lothoré <alexis.lothore@bootlin.com>
  Andi Shyti <andi.shyti@kernel.org>
  Andrew Morton <akpm@linux-foundation.org>
  Andrii Nakryiko <andrii@kernel.org>
  AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
  Armin Wolf <W_Armin@gmx.de>
  Bjorn Andersson <andersson@kernel.org>
  Chao Yu <chao@kernel.org>
  Chenghai Huang <huangchenghai2@huawei.com>
  Chris Mi <cmi@nvidia.com>
  Christian Borntraeger <borntraeger@linux.ibm.com>
  Christian Brauner <brauner@kernel.org>
  Christian König <christian.koenig@amd.com>
  Christoph Hellwig <hch@lst.de>
  Corinna Vinschen <vinschen@redhat.com>
  Damien Le Moal <dlemoal@kernel.org>
  Dave Jiang <dave.jiang@intel.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Diederik de Haas <didi.debian@cknow.org>
  Dima Ruinskiy <dima.ruinskiy@intel.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Torokhov <dmitry.torokhov@gmail.com>
  Dragan Simic <dsimic@manjaro.org>
  Edward Adam Davis <eadavis@qq.com>
  Eric Dumazet <edumazet@google.com>
  Erick Archer <erick.archer@outlook.com>
  Erico Nunes <nunes.erico@gmail.com>
  Fedor Pchelkin <pchelkin@ispras.ru>
  Felix Fietkau <nbd@nbd.name>
  Florian Westphal <fw@strlen.de>
  Gautam Menghani <gautam@linux.ibm.com>
  George Stark <gnstark@salutedevices.com>
  Ghadi Elie Rahme <ghadi.rahme@canonical.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Greg Kurz <groug@kaod.org>
  Guangwu Zhang <guazhang@redhat.com>
  GUO Zihua <guozihua@huawei.com>
  Hailey Mothershead <hailmo@amazon.com>
  Hamza Mahfooz <hamza.mahfooz@amd.com>
  Hans de Goede <hdegoede@redhat.com>
  Hans Verkuil <hverkuil-cisco@xs4all.nl>
  Heiko Carstens <hca@linux.ibm.com>
  Heiko Stuebner <heiko@sntech.de>
  Heiner Kallweit <hkallweit1@gmail.com>
  Herbert Xu <herbert@gondor.apana.org.au>
  hmtheboy154 <buingoc67@gmail.com>
  Holger Dengler <dengler@linux.ibm.com>
  Jaegeuk Kim <jaegeuk@kernel.org>
  Jakub Kicinski <kuba@kernel.org>
  Jan Kara <jack@suse.cz>
  Jay Vosburgh <jay.vosburgh@canonical.com>
  Jean Delvare <jdelvare@suse.de>
  Jeff Layton <jlayton@kernel.org>
  Jens Axboe <axboe@kernel.dk>
  Jerry Dai <jerry.dai@intel.com>
  Jian-Hong Pan <jhp@endlessos.org>
  Jianbo Liu <jianbol@nvidia.com>
  Jim Wylder <jwylder@google.com>
  Jimmy Assarsson <extja@kvaser.com>
  Jinliang Zheng <alexjlzheng@tencent.com>
  John Johansen <john.johansen@canonical.com>
  John Meneghini <jmeneghi@redhat.com>
  John Schoenick <johns@valvesoftware.com>
  Jon Hunter <jonathanh@nvidia.com>
  Jose E. Marchesi <jose.marchesi@oracle.com>
  Jozef Hopko <jozef.hopko@altana.com>
  Justin Stitt <justinstitt@google.com>
  Kalle Valo <kvalo@kernel.org>
  Keith Busch <kbusch@kernel.org>
  Kelsey Steele <kelseysteele@linux.microsoft.com>
  kemal <kmal@cock.li>
  kernelci.org bot <bot@kernelci.org>
  Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
  Kundan Kumar <kundan.kumar@samsung.com>
  Lee Jones <lee@kernel.org>
  Len Brown <len.brown@intel.com>
  Leon Romanovsky <leon@kernel.org>
  Lu Yao <yaolu@kylinos.cn>
  Luca Weiss <luca.weiss@fairphone.com>
  Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
  Lyude Paul <lyude@redhat.com>
  Ma Jun <Jun.Ma2@amd.com>
  Ma Ke <make24@iscas.ac.cn>
  Mahesh Salgaonkar <mahesh@linux.ibm.com>
  Marc Kleine-Budde <mkl@pengutronix.de>
  Mark Brown <broonie@kernel.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Masahiro Yamada <masahiroy@kernel.org>
  Mathias Nyman <mathias.nyman@linux.intel.com>
  Matthew Schwartz <mattschwartz@gwu.edu>
  Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
  Mauro Carvalho Chehab <mchehab@kernel.org>
  Michael Bunk <micha@freedict.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael Guralnik <michaelgur@nvidia.com>
  Michael Krummsdorf <michael.krummsdorf@tq-group.com>
  Michal Hocko <mhocko@suse.com>
  Mickaël Salaün <mic@digikod.net>
  Mike Marshall <hubcap@omnibond.com>
  Miles Chen <miles.chen@mediatek.com>
  Mingming Su <mingming.su@mediatek.com>
  Miquel Raynal <miquel.raynal@bootlin.com>
  Naama Meir <naamax.meir@linux.intel.com>
  Naohiro Aota <naohiro.aota@wdc.com>
  Nathan Chancellor <nathan@kernel.org>
  Neal Cardwell <ncardwell@google.com>
  Nicholas Piggin <npiggin@gmail.com>
  Niklas Neronin <niklas.neronin@linux.intel.com>
  Nilay Shroff <nilay@linux.ibm.com>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Palmer Dabbelt <palmer@rivosinc.com>
  Paolo Abeni <pabeni@redhat.com>
  Paul Moore <paul@paul-moore.com>
  Pavel Machek (CIP) <pavel@denx.de>
  Phillip Potter <phil@philpotter.co.uk>
  Pin-yen Lin <treapking@chromium.org>
  Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
  Qiang Yu <yuq825@gmail.com>
  Ricardo Ribalda <ribalda@chromium.org>
  Richard Weinberger <richard@nod.at>
  Roberto Sassu <roberto.sassu@huawei.com>
  Robin Murphy <robin.murphy@arm.com>
  Ron Economos <re@w6rz.net>
  Ryusuke Konishi <konishi.ryusuke@gmail.com>
  Sagi Grimberg <sagi@grimberg.me>
  Salvatore Bonaccorso <carnil@debian.org>
  Sam Sun <samsun1006219@gmail.com>
  Sascha Hauer <s.hauer@pengutronix.de>
  Sasha Levin <sashal@kernel.org>
  Sasha Neftin <sasha.neftin@intel.com>
  Sathya Prakash Veerichetty <sathya.prakash@broadcom.com>
  Saurav Kashyap <skashyap@marvell.com>
  SeongJae Park <sj@kernel.org>
  Shigeru Yoshida <syoshida@redhat.com>
  Shirisha Ganta <shirisha@linux.ibm.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Simon Horman <horms@kernel.org>
  Song Shuai <songshuaishuai@tinylab.org>
  Sourabh Jain <sourabhjain@linux.ibm.com>
  Stefan Schmidt <stefan@datenfreihafen.org>
  Stephen Boyd <sboyd@kernel.org>
  Takashi Iwai <tiwai@suse.de>
  Tariq Toukan <tariqt@nvidia.com>
  Tim Huang <Tim.Huang@amd.com>
  Tomas Henzl <thenzl@redhat.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Val Packett <val@packett.cool>
  Vinicius Costa Gomes <vinicius.gomes@intel.com>
  Vitaly Lifshits <vitaly.lifshits@intel.com>
  Waiman Long <longman@redhat.com>
  Wang Yong <wang.yong12@zte.com.cn>
  Wayne Lin <wayne.lin@amd.com>
  Witold Sadowski <wsadowski@marvell.com>
  Wren Turkal <wt@penguintechs.org>
  Xiaochun Lu <xiaochun.lu@bytedance.com>
  Xin Long <lucien.xin@gmail.com>
  Yann Sionneau <ysionneau@kalrayinc.com>
  Yuchung Cheng <ycheng@google.com>
  Yue Sun <samsun1006219@gmail.com>
  Zijian Zhang <zijianzhang@bytedance.com>
  Zijun Hu <quic_zijuhu@quicinc.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   7753af06eebf..266ee8e06d5b  266ee8e06d5baa186a0b5b8727eb99ae2d00dc9c -> tested/linux-6.1


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 21:04:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 21:04:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757698.1166808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS0xi-0003BG-Un; Thu, 11 Jul 2024 21:04:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757698.1166808; Thu, 11 Jul 2024 21: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 1sS0xi-0003B9-SB; Thu, 11 Jul 2024 21:04:22 +0000
Received: by outflank-mailman (input) for mailman id 757698;
 Thu, 11 Jul 2024 21:04: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sS0xh-0003B3-R4
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 21:04:21 +0000
Received: from mail-oa1-x36.google.com (mail-oa1-x36.google.com
 [2001:4860:4864:20::36])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23a83ad8-3fc9-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 23:04:19 +0200 (CEST)
Received: by mail-oa1-x36.google.com with SMTP id
 586e51a60fabf-25e00f348e6so658858fac.1
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 14:04:20 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-79f1901205dsm329695485a.41.2024.07.11.14.04.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 14:04: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: 23a83ad8-3fc9-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720731858; x=1721336658; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gU0df6mNrHCUJWxGX0EhXUOYxbhby0bahL/FbBxTbSA=;
        b=GoZOt2kjioAFk09cNcsjij8bCEAxnYkfUKsEjtckzKdcoaUjDqkc7pcr8TjVMA1P0+
         8/5LmZ7mkSZREAU+BWw40PbvAjmKeTvJiH7TyH2lSGLLJ0dTr4gsXAdLQXmKA3Pck0bV
         aZRR5xr9TIukbUx/e3fntuh4/vkOYxf581DEk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720731858; x=1721336658;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gU0df6mNrHCUJWxGX0EhXUOYxbhby0bahL/FbBxTbSA=;
        b=Mnly4mqFqGvDpJbpd5kO6IHbj7VFKHdCl8SxO9aHmAPt8JjUrJKJoeAADIkSkaSKvZ
         iqgEXXvfbm9GXt/maeXFx37u9mEG2S73m30dlUCuBpMAlrniIpwdn3GM2SmS+PJMmJ5H
         cW4E7qkHAehKfcPhlhjgJfqF7Ez5vW5827FukZJXAocOHLAtObI7rBamkyqCBSo5NWUA
         B+3aXlsR7drjquCNO8XORHRKY77mxDgvmmxN8E6+BjQiIl1zmVD8TCDJAbm1wc2z3Irj
         pecH59EtOwZG/Ll/2pA2unL3ww3NbMsuFWJC9hP57c8YfKlky7H9nx+tJ3j+0N76ZsV0
         9xPA==
X-Gm-Message-State: AOJu0Yxgxh4ZwueQaC6Ry4RYDHFyaMqFHS1IRo2wgomHzbtpbesK28jm
	cBIHWqeuAGHWDyewMJq5MF9KRYKWCoabCRkdP4S3M0dveCIdlL8B3+xZbJb6SinvfaFYxdw1Qkg
	8
X-Google-Smtp-Source: AGHT+IEedB8VeDBhnpfun127Dw26EZWUtXhu1zJmQbaoe2V/Z1pfW5muPAMIMzWNWtHwwX1Mns6xCg==
X-Received: by 2002:a05:6870:288e:b0:25e:1e11:aa4b with SMTP id 586e51a60fabf-25eaec16b2dmr8856007fac.46.1720731858279;
        Thu, 11 Jul 2024 14:04:18 -0700 (PDT)
Message-ID: <f94c6793-a3d8-4430-abc6-d75cfe07058d@citrix.com>
Date: Thu, 11 Jul 2024 22:04:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/12] CI: Refresh OpenSUSE Tumbleweed container
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Olaf Hering <olaf@aepfle.de>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240711202337.3128473-1-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240711202337.3128473-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/07/2024 9:23 pm, Andrew Cooper wrote:
> Existing as suse:opensuse-tumbleweed is a historical quirk, and adjusted for
> consistency with all the other containers.
>
> Make it non-root, use heredocs for legibility, and use the zypper long names
> for the benefit of those wondering what was being referenced or duplicated.
>
> Trim the dependencies substantially.  Testing docs isn't very interesting and
> saves a lot of space (pandoc pulls in all of Haskel).  Other savings come from
> removing a huge pile of optional QEMU dependencies (QEMU just needs to build
> the Xen parts to be useful here, not have a full GUI environment).
>
> Finally, there where some packages such as bc, libssh2-devel, libtasn1-devel
> and nasm that I'm not aware of any reason to have had, even historically.
>
> This shaves 1G off the size of the container:
>
>   registry.gitlab.com/xen-project/xen/opensuse  tumbleweed-x86_64      1.39GB
>   registry.gitlab.com/xen-project/xen/suse      opensuse-tumbleweed    2.35GB
>
> Furthermore, identify which components of the build use which dependencies,
> which will help managing them in the future.
>
> Thanks to Olaf Hering for dependency fixes that have been subsumed into this
> total overhaul.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Juergen Gross <jgross@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> CC: Shawn Anastasio <sanastasio@raptorengineering.com>
> CC: Olaf Hering <olaf@aepfle.de>
>
> This includes both of Olaf's recent changes, python3-packaging (now required
> for a rebuilt container), and findutils (not required yet; still gets pulled
> in transitively), but added for good measure.
>
> In terms of package delta, newly included are:
>
>   findutils            # As suggested
>   ocaml-findlib        # Replaces ocaml-findlib-devel
>   perl                 # Transitive previously
>   python3              # Transitive previously
>   python3-packaging    # As suggested
>
> while removed are:
>
>   bc                   # ?
>   cmake                # vtpm stubdom, optional
>   discount             # docs
>   ghostscript          # docs
>   glibc-devel          # Not really optional, given a toolchain
>   hostname             # Optional, not interesting
>   libaio-devel         # Xen < 4.13, perhaps Qemu still but optional
>   libext2fs-devel      # Libfsimage, off by default, optional
>   libgnutls-devel      # Qemu ?
>   libjpeg62-devel      # Qemu ?
>   libnl3-devel         # Libxl COLO(?), option
>   libnuma-devel        # ?
>   libpng16-devel       # Qemu ?
>   libssh2-devel        # ?
>   libtasn1-devel       # ?
>   nasm                 # ?
>   ocaml-findlib-devel  # Swapped for non-devel
>   ocaml-ocamlbuild     # ?
>   ocaml-ocamldoc       # ?
>   pandoc               # docs
>   'pkgconfig(libpci)'  # Qemu
>   'pkgconfig(sdl)'     # Qemu
>   'pkgconfig(sdl2)'    # Qemu
>   systemd-devel        # Xen < 4.19, optional
>   transfig             # docs
>   valgrind-devel       # really only for developers
>   which                # Xen < 4.17
>
> I've tested this on staging-4.17 and staging, both of which build fine.
> staging-4.16 does not, because of SeaBIOS which we've decided not to fix,
> hence it's safe to drop `which`.

For good measure, runs with this container:

  4.17: https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7322567620
  4.19: https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7322493465

and the expected failure:

  4.16: https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7322499885

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 21:05:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 21:05:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757703.1166818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS0z0-0003kP-BM; Thu, 11 Jul 2024 21:05:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757703.1166818; Thu, 11 Jul 2024 21:05: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 1sS0z0-0003kI-8j; Thu, 11 Jul 2024 21:05:42 +0000
Received: by outflank-mailman (input) for mailman id 757703;
 Thu, 11 Jul 2024 21:05: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sS0yz-0003kC-3c
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 21:05:41 +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 53715a3d-3fc9-11ef-bbfb-fd08da9f4363;
 Thu, 11 Jul 2024 23:05:39 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e37feeso1619107a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 14:05:40 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bc3f29d2sm3858602a12.41.2024.07.11.14.05.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 11 Jul 2024 14:05: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: 53715a3d-3fc9-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720731939; x=1721336739; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hIJUjPuUxWvZ2Xd5AJQXA1yC+F0y1g/OHIYvnMwTMu8=;
        b=Et4sqDPVtaDDYIjm2X4tz04ueF2JntX3LGw+QhfrWuRoz4R4x86ep8cnRvkGfuvxTJ
         beoOJiymBcTwadY+D3/J3TWxKobCg7G4cwkkaZUJ27qaa/FtxdJCbPHOa30o28B9nnzk
         h8ryXXtrIug59CMzJEEwye2tzcjF35KJVhcNs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720731939; x=1721336739;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hIJUjPuUxWvZ2Xd5AJQXA1yC+F0y1g/OHIYvnMwTMu8=;
        b=KFaHRQpR4RULpPP9ojvbmMme6wA9vR7u6quxOEuJ/dUTXkplOlXnD/AQ1CToCJSztd
         pqptHqrGSq9SiKUotDGTG+ybOY6JkygqUyPaYIi6jpzqGgzP9O937iIew++/0W6g8Ong
         qTTGyWSm+CaJbq5bO1yDwq1xLPXysEV75H9Tb30PP98eFmei8ARhb1Gv1zpX9e9YX6N+
         2rj2PZu2wBnJxT89zbYlRU1b22Z7xKPYRPIHg1DyzEEwHEZmaK5S4CTECODxP8YXsJWO
         Nn6krtCRlZu/iLh+gZW+1w11ZzZuvhsLyqeXhOyz/cBuvGf7cmQkwaG3l0wCLunXaViV
         4Mig==
X-Gm-Message-State: AOJu0Ywn4qNlTDh/PtoRRv5cWbGOAj6rAp19z+xt9cS0prbCuw7VEHtT
	3FMIXDmQH7cd+gooHBgPmpfPQB6AhcMSx00klKKlaGht68se28XlrhJ9oWhmVK4ecTwDxMhYatn
	j
X-Google-Smtp-Source: AGHT+IFWfZB2wCIe/k8b0kZ7imY/ZivkWYO0JHQ/rCmwAl2cjlOjCvwlwaEB1pHaHdZA09MTaBx43A==
X-Received: by 2002:a05:6402:430b:b0:586:6365:b3cf with SMTP id 4fb4d7f45d1cf-594baf8728amr6846038a12.10.1720731938642;
        Thu, 11 Jul 2024 14:05: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Olaf Hering <olaf@aepfle.de>
Subject: [PATCH 14/12] CI: Refresh OpenSUSE Leap container
Date: Thu, 11 Jul 2024 22:05:34 +0100
Message-Id: <20240711210534.3141725-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

See prior patch for most discussion.

Despite appearing to a fixed release (and therefore not marked as permitted
failure), the dockerfile references the `leap` tag which is rolling in
practice.  Switch to 15.6 explicitly, for better test stability.

Vs tumbleweed, use `zypper update` rather than dist-upgrade, and retain the
RomBIOS dependencies; bin86 and dev86.

In terms of size, this saves ~700M:

  registry.gitlab.com/xen-project/xen/opensuse  leap-15.6-x86_64       1.33GB
  registry.gitlab.com/xen-project/xen/suse      opensuse-leap          2.05GB

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Olaf Hering <olaf@aepfle.de>

Runs with this new container:

 4.19:  https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7322493460
 4.16:  https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7322499881
---
 .../opensuse/leap-15.6-x86_64.dockerfile      | 79 +++++++++++++++++++
 .../build/suse/opensuse-leap.dockerfile       | 75 ------------------
 automation/gitlab-ci/build.yaml               | 16 ++--
 automation/scripts/containerize               |  2 +-
 4 files changed, 88 insertions(+), 84 deletions(-)
 create mode 100644 automation/build/opensuse/leap-15.6-x86_64.dockerfile
 delete mode 100644 automation/build/suse/opensuse-leap.dockerfile

diff --git a/automation/build/opensuse/leap-15.6-x86_64.dockerfile b/automation/build/opensuse/leap-15.6-x86_64.dockerfile
new file mode 100644
index 000000000000..562006672a4e
--- /dev/null
+++ b/automation/build/opensuse/leap-15.6-x86_64.dockerfile
@@ -0,0 +1,79 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 opensuse/leap:15.6
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV XEN_TARGET_ARCH=x86_64
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    zypper refresh
+    zypper update -y --no-recommends
+
+    DEPS=(
+        # Xen
+        bison
+        checkpolicy
+        clang
+        diffutils
+        findutils
+        flex
+        gawk
+        gcc
+        make
+        python3
+
+        # Tools (general)
+        git
+        gzip
+        patch
+        perl
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-devel
+        libzstd-devel
+        lzo-devel
+        xz-devel
+        zlib-devel
+        # libacpi
+        acpica
+        # libxl
+        libuuid-devel
+        libyajl-devel
+        # RomBIOS
+        bin86
+        dev86
+        # Header Check
+        gcc-c++
+        # xentop
+        ncurses-devel
+        # Python bindings
+        python3-devel
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml
+        ocaml-findlib
+
+        # Stubdom (download/extract)
+        bzip2
+        tar
+
+        # Qemu build
+        glib2-devel
+        libpixman-1-0-devel
+        meson
+        ninja
+        python3-packaging
+    )
+
+    zypper install -y --no-recommends "${DEPS[@]}"
+    zypper clean -a
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/suse/opensuse-leap.dockerfile b/automation/build/suse/opensuse-leap.dockerfile
deleted file mode 100644
index 28d333881233..000000000000
--- a/automation/build/suse/opensuse-leap.dockerfile
+++ /dev/null
@@ -1,75 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 opensuse/leap
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-RUN zypper ref && zypper up -y --no-recommends
-RUN zypper install -y --no-recommends \
-        acpica \
-        bc \
-        bin86 \
-        bison \
-        bzip2 \
-        checkpolicy \
-        clang \
-        cmake \
-        dev86 \
-        diffutils \
-        discount \
-        flex \
-        gawk \
-        gcc \
-        gcc-c++ \
-        git \
-        ghostscript \
-        glib2-devel \
-        glibc-devel \
-        gzip \
-        hostname \
-        libaio-devel \
-        libbz2-devel \
-        libext2fs-devel \
-        libgnutls-devel \
-        libjpeg62-devel \
-        libnl3-devel \
-        libnuma-devel \
-        libpixman-1-0-devel \
-        libpng16-devel \
-        libssh2-devel \
-        libtasn1-devel \
-        libuuid-devel \
-        libyajl-devel \
-        lzo-devel \
-        make \
-        nasm \
-        ncurses-devel \
-        ocaml \
-        ocaml-findlib-devel \
-        ocaml-ocamlbuild \
-        ocaml-ocamldoc \
-        pandoc \
-        patch \
-        pkg-config \
-        'pkgconfig(libpci)' \
-        'pkgconfig(sdl)' \
-        'pkgconfig(sdl2)' \
-        python3-devel \
-        python3-setuptools \
-        # systemd-devel for Xen < 4.19
-        systemd-devel \
-        tar \
-        transfig \
-        valgrind-devel \
-        wget \
-        which \
-        xz-devel \
-        zlib-devel \
-        # QEMU
-        ninja \
-        && \
-        zypper clean -a
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index fd6ca1270e4e..f9a9275ff293 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -645,25 +645,25 @@ ubuntu-focal-clang-debug:
   variables:
     CONTAINER: ubuntu:focal
 
-opensuse-leap-clang:
+opensuse-leap-15.6-clang:
   extends: .clang-x86-64-build
   variables:
-    CONTAINER: suse:opensuse-leap
+    CONTAINER: opensuse:leap-15.6-x86_64
 
-opensuse-leap-clang-debug:
+opensuse-leap-15.6-clang-debug:
   extends: .clang-x86-64-build-debug
   variables:
-    CONTAINER: suse:opensuse-leap
+    CONTAINER: opensuse:leap-15.6-x86_64
 
-opensuse-leap-gcc:
+opensuse-leap-15.6-gcc:
   extends: .gcc-x86-64-build
   variables:
-    CONTAINER: suse:opensuse-leap
+    CONTAINER: opensuse:leap-15.6-x86_64
 
-opensuse-leap-gcc-debug:
+opensuse-leap-15.6-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
-    CONTAINER: suse:opensuse-leap
+    CONTAINER: opensuse:leap-15.6-x86_64
 
 opensuse-tumbleweed-clang:
   extends: .clang-x86-64-build
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index c4f013702122..d8110b125333 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -42,7 +42,7 @@ case "_${CONTAINER}" in
     _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
     _bionic) CONTAINER="${BASE}/ubuntu:bionic" ;;
     _xenial) CONTAINER="${BASE}/ubuntu:xenial" ;;
-    _opensuse-leap|_leap) CONTAINER="${BASE}/suse:opensuse-leap" ;;
+    _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
 esac
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 11 21:13:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 21:13:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757710.1166827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS16I-0005WV-2S; Thu, 11 Jul 2024 21:13:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757710.1166827; Thu, 11 Jul 2024 21: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 1sS16H-0005WO-Vn; Thu, 11 Jul 2024 21:13:13 +0000
Received: by outflank-mailman (input) for mailman id 757710;
 Thu, 11 Jul 2024 21:13:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS16G-0005WD-Bo; Thu, 11 Jul 2024 21:13:12 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS16G-0005Hr-8T; Thu, 11 Jul 2024 21:13:12 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS16F-0000Lp-Ox; Thu, 11 Jul 2024 21:13:11 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sS16F-0007fM-OR; Thu, 11 Jul 2024 21:13: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=gihVGCtR6SRHNcIIv6Q//S9nYPOIxRNxVj9+QxZmvP0=; b=nF8DcNQCTbmoiWKkBfWHpARePI
	cwDLxpql+jW+duZLAXxjIqZS7omimnSBsgLp5EJftv9Hm+cLfuvhHsLl/N5E550KNGP7af/aUbAgK
	BeGDDzALx8HXdWIBYHxmoTH9Of1smf4UJrNy1rKxE/dtkEDEBtxVsGzfttjvWmqbmxNM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186765-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186765: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=5e1773dc863d6e1fb4c1398e380bdfc754342f7b
X-Osstest-Versions-That:
    xen=5d3e2140bbf1dc0ab0972efbc096d79509ca9ae8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 11 Jul 2024 21:13:11 +0000

flight 186765 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186765/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  5e1773dc863d6e1fb4c1398e380bdfc754342f7b
baseline version:
 xen                  5d3e2140bbf1dc0ab0972efbc096d79509ca9ae8

Last test of basis   186762  2024-07-11 11:03:50 Z    0 days
Testing same since   186765  2024-07-11 18:03:55 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   5d3e2140bb..5e1773dc86  5e1773dc863d6e1fb4c1398e380bdfc754342f7b -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 21:50:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 21:50:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757719.1166838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS1fs-0001Ub-NG; Thu, 11 Jul 2024 21:50:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757719.1166838; Thu, 11 Jul 2024 21: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 1sS1fs-0001UU-Jv; Thu, 11 Jul 2024 21:50:00 +0000
Received: by outflank-mailman (input) for mailman id 757719;
 Thu, 11 Jul 2024 21:49: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=3TmJ=OL=aepfle.de=olaf@srs-se1.protection.inumbo.net>)
 id 1sS1fr-0001UO-6Y
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 21:49:59 +0000
Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de
 [81.169.146.221]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8315171e-3fcf-11ef-8776-851b0ebba9a2;
 Thu, 11 Jul 2024 23:49:56 +0200 (CEST)
Received: from sender by smtp.strato.de (RZmta 50.5.0 AUTH)
 with ESMTPSA id Dbccd106BLnb0ux
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate);
 Thu, 11 Jul 2024 23:49: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: 8315171e-3fcf-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1720734578; cv=none;
    d=strato.com; s=strato-dkim-0002;
    b=Isq1bo/D8SOOekgHNt724WJz5TuJmEEKlmRn/YJhq95nGYkMcZ5cJXu6/+0TVThYmH
    yQWbA/AQ28A02sl4agBdgcBJN/8YG9gL0X8WceJc8N/9cGH/ddhFP/XYp+Kbt8Brdvcj
    5QYwU9NrLQFP4tD8/wdt0AiVS6YvD5k4sd8DByGR0kUprjKdHpepDihQV8XabHJC4xtp
    E0T5+SlDTDWgueobkDikMz/nUrEim5lBVs+Iit2GdEonWudK6BpCF0VxsPLIMTwUNKcs
    DGqpqcGLrXPvCfuI/AvLJ3dwshAczgmuvLuRPpaehEiKNIYPa2pU961AWYPOv0gSxSRA
    Ij8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1720734578;
    s=strato-dkim-0002; d=strato.com;
    h=References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Cc:Date:
    From:Subject:Sender;
    bh=FI0Q5Sygxw/2mwb4H3sNZSZxawggu6d0L/9G7T/Zc64=;
    b=PmAVZ9H4cwbtQdTZVESS04LpFC6LodufSm18NV9bciDgM2UH7EiDVIfQSIFwelJs7t
    xEjAXxFEEeyHzeX2/ACmFvzxv4ybOCN7M6OEz/KsXDiTNffu+K0jxt5qxXFbWmfPp6uC
    Vw2THRBy51gwAAOHvGuZzRfiHNNMJG6Vu9fgNXc1R/3Zj33CA5jA6nig8uNTHNs0vj85
    xtD3Sz67MVjaA0OBJ5bpTo+6CzzjQCBok17iCqc0e9bf7XKiJbkC8vIBpEMtKeY5f9un
    +ceU4ZMqOizsooDowEhqLW+YBD7oxuHqK29ZMz6Cfa2gdDEd9c62EYfoBHW1eOuQ3486
    FVyA==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1720734578;
    s=strato-dkim-0002; d=aepfle.de;
    h=References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Cc:Date:
    From:Subject:Sender;
    bh=FI0Q5Sygxw/2mwb4H3sNZSZxawggu6d0L/9G7T/Zc64=;
    b=Dc0AOUiXnZjVPxxkqN9Q7yN64jR+eIjRLRUsrS1kXJ11p5iVsa0RbKxn7feNm7nhJd
    gY/UBM7DIUXBj8he+kKbLdwRvu7yTFrSkCndUtIG2Z9/B6G+ofw7j3QX+pENtjzW1Sux
    dZlpv9pQTQSYXZpBQVTFwu4ShMJ4ismjUWZpzftH8RkE9ZOCTKlheuyYS+gy4kjYDhsv
    Ha12wPvKcr8p8OoOM16z/I4Ri1eqiqglr7ZUl5EhKwrbzhKqyT8gq9z1Q9NyVDcrNxU+
    YUtRUAlikZchhheKYHQCqywOlwPx8T1UmYto1L5KG4kTjqFZHRSKEK2FdyUBXASu+0VO
    9ITQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1720734578;
    s=strato-dkim-0003; d=aepfle.de;
    h=References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Cc:Date:
    From:Subject:Sender;
    bh=FI0Q5Sygxw/2mwb4H3sNZSZxawggu6d0L/9G7T/Zc64=;
    b=BkSvsy3r08YECycs6/bDOKdrEXnB8f0zPCAL7lMpLmiLWo15E9AEWRWGxtUX6n4k6p
    WCids+gXlvg+bOjDd5DA==
X-RZG-AUTH: ":P2EQZWCpfu+qG7CngxMFH1J+3q8wa/QLpd5ylWvMDX3y/OuD5rXVisR5BkKIOBzsrQFE/ZQyiRRrPkprT4fzoKOdWSb+rw=="
Date: Thu, 11 Jul 2024 23:49:25 +0200
From: Olaf Hering <olaf@aepfle.de>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Roger Pau
 =?UTF-8?B?TW9ubsOp?= <roger.pau@citrix.com>, Jan Beulich
 <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: Re: [PATCH 13/12] CI: Refresh OpenSUSE Tumbleweed container
Message-ID: <20240711234925.189e16d5.olaf@aepfle.de>
In-Reply-To: <20240711202337.3128473-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
	<20240711202337.3128473-1-andrew.cooper3@citrix.com>
X-Mailer: Claws Mail (olh) 20240408T134401.7adfa8f7 hat ein Softwareproblem, kann man nichts machen.
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/SPWqmII4uCxS7clJkqzZCqY";
 protocol="application/pgp-signature"; micalg=pgp-sha256
Content-Transfer-Encoding: 7bit

--Sig_/SPWqmII4uCxS7clJkqzZCqY
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Thu, 11 Jul 2024 21:23:37 +0100 Andrew Cooper <andrew.cooper3@citrix.com>:

> use the zypper long names for the benefit of those wondering what was bei=
ng referenced or duplicated.

Names of rpm packages do change over time, configure already searches for "=
something" where it is available, instead of some library or header.
If it is touched anyway, I would use more instead of less 'pkgconfig(someth=
ing)' references:

libbz2-devel
    pkgconfig(bzip2) =3D 1.0.8
libzstd-devel
    pkgconfig(libzstd) =3D 1.5.6
lzo-devel
    pkgconfig(lzo2) =3D 2.10
xz-devel
    pkgconfig(liblzma) =3D 5.6.2
zlib-devel
    pkgconfig(zlib) =3D 1.3.1
libuuid-devel
    pkgconfig(uuid) =3D 2.40.1
libyajl-devel
    pkgconfig(yajl) =3D 2.1.0
ncurses-devel
    pkgconfig(form) =3D 6.5.20240629
    pkgconfig(formw) =3D 6.5.20240629
    pkgconfig(menu) =3D 6.5.20240629
    pkgconfig(menuw) =3D 6.5.20240629
    pkgconfig(ncurses) =3D 6.5.20240629
    pkgconfig(ncurses++) =3D 6.5.20240629
    pkgconfig(ncurses++w) =3D 6.5.20240629
    pkgconfig(ncursesw) =3D 6.5.20240629
    pkgconfig(panel) =3D 6.5.20240629
    pkgconfig(panelw) =3D 6.5.20240629
    pkgconfig(tic) =3D 6.5.20240629
    pkgconfig(tinfo) =3D 6.5.20240629
glib2-devel
    pkgconfig(gio-2.0) =3D 2.80.3
    pkgconfig(gio-unix-2.0) =3D 2.80.3
    pkgconfig(girepository-2.0) =3D 2.80.3
    pkgconfig(glib-2.0) =3D 2.80.3
    pkgconfig(gmodule-2.0) =3D 2.80.3
    pkgconfig(gmodule-export-2.0) =3D 2.80.3
    pkgconfig(gmodule-no-export-2.0) =3D 2.80.3
    pkgconfig(gobject-2.0) =3D 2.80.3
    pkgconfig(gthread-2.0) =3D 2.80.3
libpixman-1-0-devel
    pkgconfig(pixman-1) =3D 0.43.4

python3-devel is "special", can be used as is.

'git' could be just 'git-core'


Olaf

--Sig_/SPWqmII4uCxS7clJkqzZCqY
Content-Type: application/pgp-signature
Content-Description: Digitale Signatur von OpenPGP

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

iQIzBAEBCAAdFiEE97o7Um30LT3B+5b/86SN7mm1DoAFAmaQU2UACgkQ86SN7mm1
DoDsFQ/9GWb9BXP8pd15UBUo2sMIBJacMJuRwzxHtAWIguTIK0US31clWHmN9UIA
HmZOcJe8pariVkeGTSncEuDDI1+Rp6zVTPvuQR7nIS4IX6W+lyii1sGhDo6Q8Oxy
R/2SwCHbykEI22wzSlfBDzF58FNGCXZPutyeHkWd8hxJGEh6yzT5l7TEYNB/Z6Ft
ud50CcJYUJnSgQwuCbWm+C/Nq43U7SRimFob1W+H+iKgpyA3nL1/zuW6Qi73B+82
3xvKQSbKROmhvofDjQ7hzd/0XcIbQJJwzQeTFX6D0EpxvfqImEYZOxXydyCtTFMn
Xhl1ENfoVVdJMhbdFXrfT9yF2ls+Mp9dSDdvgVMdtXlDXOiScTFVQ+vMOkCO/GmL
uJFTm4zZlRMiQTbIlDqOgktwh/BBg8kk42Pxike3ZlZo3r8Sxk8HnmhrLtvnERDp
pfXO1WeaG0R48E4oR2e+MLf13P1NRp00qHu+MyUUioGa3gq4+yNdLoEGG9PxuDfL
4jTjlG6f7n4476HGjRDnkBRv5M5FF1jinK+7UzYErAVA7P1qUaAw3tNv3stXs3BU
DktgpvpQNSxMBPJYc2HzfNFpL6MGuoJimcjbqguinfyeTZYmGWByBeHi+a6hXl2J
HP8eWN1frdYNYfhmO261V2t7cUVU03yiYeL73DgdTVxXBDCWuI0=
=GvxD
-----END PGP SIGNATURE-----

--Sig_/SPWqmII4uCxS7clJkqzZCqY--


From xen-devel-bounces@lists.xenproject.org Thu Jul 11 22:39:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Jul 2024 22:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757727.1166848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS2S3-0007WA-58; Thu, 11 Jul 2024 22:39:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757727.1166848; Thu, 11 Jul 2024 22:39:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS2S3-0007W3-1r; Thu, 11 Jul 2024 22:39:47 +0000
Received: by outflank-mailman (input) for mailman id 757727;
 Thu, 11 Jul 2024 22:39: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=PZf6=OL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sS2S2-0007Vx-K4
 for xen-devel@lists.xenproject.org; Thu, 11 Jul 2024 22:39:46 +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 785b1266-3fd6-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 00:39:45 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-42795086628so8990495e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 11 Jul 2024 15:39:44 -0700 (PDT)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4279f2679b1sm2696625e9.15.2024.07.11.15.39.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 11 Jul 2024 15:39: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: 785b1266-3fd6-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720737584; x=1721342384; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=93DoMi/9tG886Udz7YTKHXgSgT1e2i2Mxz+xyxoIZjk=;
        b=Mfq1Fb/saIGyb/x9sd2Kbc7kN4UszZsFTSyzbHNheEODpgRKbnxvEiiba8E8cCAjLY
         L/viNv/bpOPTVDCR/l6iQHKULv5tEZBi0y7+Sar39yWoAS9inbI02OwmVBS3Y8ayN4H3
         30IXy9ivtTtHZFdFnxZ4RIO1V/4A857+C4S1w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720737584; x=1721342384;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=93DoMi/9tG886Udz7YTKHXgSgT1e2i2Mxz+xyxoIZjk=;
        b=krSZ5Buj9JNEk94+IjEfB6GDoAztG/gHFKXS1IFu+YAaCpmjdKSw8ff2al9qdGQXe8
         d0syCiuYNRdXxgOmEEzBq0uhnd73FekxoBdvBmAv2a9M7wcjF5Y6qKMfzVyUcHa8S6dK
         JwvL6tnmTbxHaxv6w6sPgMaRvITKXhlqZ9mP0xOM1IzlSLfmhiEgusaam4i6XqIWwEsC
         O0lJeNJvpkTDXkS2tH88OyUhUGCPSDK6sjzMde4pxVgkCLYYc5nPidk/5oaU0Vpqj4P+
         CLgTroK+hnEF6Yi4wCYRQuks2WV9S512HHQqnvWlWa1xYaq3wmGEBLOTwVRo632WstWE
         w66g==
X-Gm-Message-State: AOJu0Yzxr14Xo+j2vkx1UOtejgvch4ytnFQmlJcnt6de7UPaQ4EVLdKj
	RdFJbWolbWDhS64oCLFumuNgLsIVT92GJzT4XZTgtO1CdV6eSd0Q8QdY4Jpq82M=
X-Google-Smtp-Source: AGHT+IGTbd7bqpIW6501EY7fZm7ZUp6LvmXYoNwicEyjIdU0FOiXpBzYMzeDXLQzK9kxTgwcQ2D3sw==
X-Received: by 2002:a05:600c:42cb:b0:421:7bed:5274 with SMTP id 5b1f17b1804b1-426707d88e9mr69672875e9.10.1720737584146;
        Thu, 11 Jul 2024 15:39:44 -0700 (PDT)
Message-ID: <44cc71ca-00b2-42a8-9dc4-bc0b6f1df6d0@citrix.com>
Date: Thu, 11 Jul 2024 23:39:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/12] CI: Refresh OpenSUSE Tumbleweed container
To: Olaf Hering <olaf@aepfle.de>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240711202337.3128473-1-andrew.cooper3@citrix.com>
 <20240711234925.189e16d5.olaf@aepfle.de>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240711234925.189e16d5.olaf@aepfle.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/07/2024 10:49 pm, Olaf Hering wrote:
> Thu, 11 Jul 2024 21:23:37 +0100 Andrew Cooper <andrew.cooper3@citrix.com>:
>
>> use the zypper long names for the benefit of those wondering what was being referenced or duplicated.
> Names of rpm packages do change over time, configure already searches for "something" where it is available,

configure has to cope with distros taking different naming decisions,
and while I appreciate that packages may change over time even within a
distro ...

>  instead of some library or header.
> If it is touched anyway, I would use more instead of less 'pkgconfig(something)' references:
>
> libbz2-devel
>     pkgconfig(bzip2) = 1.0.8
> libzstd-devel
>     pkgconfig(libzstd) = 1.5.6
> lzo-devel
>     pkgconfig(lzo2) = 2.10
> xz-devel
>     pkgconfig(liblzma) = 5.6.2
> zlib-devel
>     pkgconfig(zlib) = 1.3.1
> libuuid-devel
>     pkgconfig(uuid) = 2.40.1
> libyajl-devel
>     pkgconfig(yajl) = 2.1.0
> ncurses-devel
>     pkgconfig(form) = 6.5.20240629
>     pkgconfig(formw) = 6.5.20240629
>     pkgconfig(menu) = 6.5.20240629
>     pkgconfig(menuw) = 6.5.20240629
>     pkgconfig(ncurses) = 6.5.20240629
>     pkgconfig(ncurses++) = 6.5.20240629
>     pkgconfig(ncurses++w) = 6.5.20240629
>     pkgconfig(ncursesw) = 6.5.20240629
>     pkgconfig(panel) = 6.5.20240629
>     pkgconfig(panelw) = 6.5.20240629
>     pkgconfig(tic) = 6.5.20240629
>     pkgconfig(tinfo) = 6.5.20240629
> glib2-devel
>     pkgconfig(gio-2.0) = 2.80.3
>     pkgconfig(gio-unix-2.0) = 2.80.3
>     pkgconfig(girepository-2.0) = 2.80.3
>     pkgconfig(glib-2.0) = 2.80.3
>     pkgconfig(gmodule-2.0) = 2.80.3
>     pkgconfig(gmodule-export-2.0) = 2.80.3
>     pkgconfig(gmodule-no-export-2.0) = 2.80.3
>     pkgconfig(gobject-2.0) = 2.80.3
>     pkgconfig(gthread-2.0) = 2.80.3
> libpixman-1-0-devel
>     pkgconfig(pixman-1) = 0.43.4

... this is just a differently-inconsistent list of names, with some
very dubious aliases such as `form` and `menu`.

What makes pkgconfig() any more stable than the main package name?

Why do we want to be treating libraries different to other packages?

> python3-devel is "special", can be used as is.

As an aside, I looked for a python3-minimal or equivalent, and couldn't
find one.  I take it there isn't one?

> 'git' could be just 'git-core'

Thanks.  Will fix locally, for Tumbleweed and Leap.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 00:40:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 00:40:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757734.1166857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS4L1-0005lR-KH; Fri, 12 Jul 2024 00:40:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757734.1166857; Fri, 12 Jul 2024 00: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 1sS4L1-0005lK-Hj; Fri, 12 Jul 2024 00:40:39 +0000
Received: by outflank-mailman (input) for mailman id 757734;
 Fri, 12 Jul 2024 00:40:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS4L0-0005lA-Mv; Fri, 12 Jul 2024 00:40:38 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS4L0-0001M1-Is; Fri, 12 Jul 2024 00:40:38 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS4L0-0007k2-8U; Fri, 12 Jul 2024 00:40:38 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sS4L0-0000Cb-85; Fri, 12 Jul 2024 00:40:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=RIaQed76EFJ65Qt0gjgn4vZE4W1trqiBtX3ng44px2I=; b=DcnNvdc4IcOCZavXA0Yh9MUg55
	GTeSIzqZTLxAl/N8/X8nmYM3hcrDYoieWV+FFOEzZFLDD0PLvrxFK+/djNP9r0UDMojOldrX4/clb
	/9XjTR17yF04ILNBthq1PkmcR9RYpyAEvG1nq85ESwvuL6badppVGhNzZN2R9m6LZfTg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186768-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186768: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=5c86b0b57c153bde28f925de80cc011dd4ff1f9d
X-Osstest-Versions-That:
    ovmf=071d2cfab8347e396c8b2709bfb588a18c497bbd
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 00:40:38 +0000

flight 186768 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186768/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 5c86b0b57c153bde28f925de80cc011dd4ff1f9d
baseline version:
 ovmf                 071d2cfab8347e396c8b2709bfb588a18c497bbd

Last test of basis   186759  2024-07-11 03:43:49 Z    0 days
Testing same since   186768  2024-07-11 22:11:19 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Saloni Kasbekar <saloni.kasbekar@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   071d2cfab8..5c86b0b57c  5c86b0b57c153bde28f925de80cc011dd4ff1f9d -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 01:50:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 01:50:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757742.1166868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS5Q9-00074T-GA; Fri, 12 Jul 2024 01:50:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757742.1166868; Fri, 12 Jul 2024 01:50:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS5Q9-00074M-D1; Fri, 12 Jul 2024 01:50:01 +0000
Received: by outflank-mailman (input) for mailman id 757742;
 Fri, 12 Jul 2024 01:50:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS5Q8-00074C-Hh; Fri, 12 Jul 2024 01:50:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS5Q8-0005Gj-FU; Fri, 12 Jul 2024 01:50:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS5Q8-00013w-1P; Fri, 12 Jul 2024 01:50:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sS5Q8-0005G3-0A; Fri, 12 Jul 2024 01:50: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=SLA5np5ewMxiWcE7bdCx1Tn3yV4RVUSDLW7TAeeQA6A=; b=Ny1pr3bkc9fNtxzb8dXpFP5t0a
	B4iap8mck+xrSKanRgNrC8mzWdtcsXj5f+TeKJQ7v+KCS2TpWs5JWKtrWY21t42yxaoUmckTA2+zK
	iuYEK31vV6h29EE8IiqJGWnbiZo4tJNBqo3BjFSEL8MNZnQJIhObZ52Ktc4o2uQJuV48=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186767-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186767: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d46e4264c3fa68974fbb9b1bce514ea44af6d945
X-Osstest-Versions-That:
    xen=5e1773dc863d6e1fb4c1398e380bdfc754342f7b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 01:50:00 +0000

flight 186767 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186767/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  d46e4264c3fa68974fbb9b1bce514ea44af6d945
baseline version:
 xen                  5e1773dc863d6e1fb4c1398e380bdfc754342f7b

Last test of basis   186765  2024-07-11 18:03:55 Z    0 days
Testing same since   186767  2024-07-11 22:04:07 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   5e1773dc86..d46e4264c3  d46e4264c3fa68974fbb9b1bce514ea44af6d945 -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 03:26:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 03:26:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757750.1166881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS6v0-0001Cy-Vr; Fri, 12 Jul 2024 03:25:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757750.1166881; Fri, 12 Jul 2024 03:25: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 1sS6v0-0001Cr-Sw; Fri, 12 Jul 2024 03:25:58 +0000
Received: by outflank-mailman (input) for mailman id 757750;
 Fri, 12 Jul 2024 03:25:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS6uz-0001Ch-BA; Fri, 12 Jul 2024 03:25:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS6uz-0007ZN-7J; Fri, 12 Jul 2024 03:25:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS6uy-0003Mx-Rl; Fri, 12 Jul 2024 03:25:56 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sS6uy-0008AW-RH; Fri, 12 Jul 2024 03:25:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=nU7Kkf9A7DZtQFHoYXtbX+WyxtFDHLIKIU6pL20GkNI=; b=ZGvqlvKJUOKkM7wlCtAAJcSWAd
	Aj3mB1PFvg25Y1aH8U+ICEYRi4idu36dMo9rD+KQdPES5gbuHjft2WqNrM+Y3m8XvPzcuIe5vJhO5
	THsITj50UrnfxVgyyQTq4pu8PFmvxj/YRT5e9Qd/VVOGGs7uDjDQs5KkawxRU9pgkcMk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186764-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186764: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-qcow2:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=5d3e2140bbf1dc0ab0972efbc096d79509ca9ae8
X-Osstest-Versions-That:
    xen=d49ba6bf8f904a58bd1cfdfe6c93023b249f0578
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 03:25:56 +0000

flight 186764 xen-unstable real [real]
flight 186769 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186764/
http://logs.test-lab.xenproject.org/osstest/logs/186769/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl           8 xen-boot            fail pass in 186769-retest
 test-armhf-armhf-xl-qcow2     8 xen-boot            fail pass in 186769-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl         15 migrate-support-check fail in 186769 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 186769 never pass
 test-armhf-armhf-xl-qcow2   14 migrate-support-check fail in 186769 never pass
 test-armhf-armhf-xl-qcow2 15 saverestore-support-check fail in 186769 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186757
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186757
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186757
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186757
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186757
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186757
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  5d3e2140bbf1dc0ab0972efbc096d79509ca9ae8
baseline version:
 xen                  d49ba6bf8f904a58bd1cfdfe6c93023b249f0578

Last test of basis   186757  2024-07-11 01:53:38 Z    1 days
Testing same since   186764  2024-07-11 14:10:37 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michal Orzel <michal.orzel@amd.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   d49ba6bf8f..5d3e2140bb  5d3e2140bbf1dc0ab0972efbc096d79509ca9ae8 -> master


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 03:32:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 03:32:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757757.1166891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS71f-0002j0-LV; Fri, 12 Jul 2024 03:32:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757757.1166891; Fri, 12 Jul 2024 03:32:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS71f-0002it-IW; Fri, 12 Jul 2024 03:32:51 +0000
Received: by outflank-mailman (input) for mailman id 757757;
 Fri, 12 Jul 2024 03:32:50 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS71e-0002ij-9M; Fri, 12 Jul 2024 03:32:50 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS71e-0007i3-7C; Fri, 12 Jul 2024 03:32:50 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS71d-0003Wk-Ss; Fri, 12 Jul 2024 03:32:49 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sS71d-0002do-SA; Fri, 12 Jul 2024 03:32:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=7sxcDMPffcDgWsQo3cdldRa1IFOtxQqtFjMUneZHohc=; b=b7xp1rq6vur+D7rH1AUt3Hxza7
	ckf7+mGe95jmn4/pYri49Uem8CPBwFpVarLeG6DMV+zBYsmaT/o4Eh3+02mnrOIChAgpqI+wH/gCA
	BExYJRGnm4rHhCprAaBGd1QJiUD2oHNaG2sHA7B6cj6lk3WnGR2xaaPwCRFcIc7rquu8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186770-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186770: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=f122c6f639cd3babedc0dd9b38b279d94b087c7a
X-Osstest-Versions-That:
    ovmf=5c86b0b57c153bde28f925de80cc011dd4ff1f9d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 03:32:49 +0000

flight 186770 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186770/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 f122c6f639cd3babedc0dd9b38b279d94b087c7a
baseline version:
 ovmf                 5c86b0b57c153bde28f925de80cc011dd4ff1f9d

Last test of basis   186768  2024-07-11 22:11:19 Z    0 days
Testing same since   186770  2024-07-12 02:11:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   5c86b0b57c..f122c6f639  f122c6f639cd3babedc0dd9b38b279d94b087c7a -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 06:16:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 06:16:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757774.1166904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS9ZY-0003LU-Cc; Fri, 12 Jul 2024 06:16:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757774.1166904; Fri, 12 Jul 2024 06:16: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 1sS9ZY-0003LN-9x; Fri, 12 Jul 2024 06:16:00 +0000
Received: by outflank-mailman (input) for mailman id 757774;
 Fri, 12 Jul 2024 06:15:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS9ZX-0003LB-08; Fri, 12 Jul 2024 06:15:59 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS9ZW-00034K-UB; Fri, 12 Jul 2024 06:15:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sS9ZW-0002Wh-Ir; Fri, 12 Jul 2024 06:15:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sS9ZW-0007RR-IW; Fri, 12 Jul 2024 06:15: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=fKcjrJfeN9+8PcfrHvH4DjJsdFuAP+oC6cAm5yxQILc=; b=ZgMdC8sbvcBYfIn2mEeGMkz/fA
	a0tFIQXO9cb4dilGqed5ZREqcz1laGEA5tyiatNg0G41u6GyF4Qs3no6IyFXX/5ILwfjgQ/0hFAgR
	VC9xL22kR1CMjp+IBPrF2f7ZrlntabJGaT4b54VtZJzh8xkRVXamFWQdNQYU/iaEpjUs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186772-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186772: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=72d6e247b781cca65aac71c97c5094650b003a9d
X-Osstest-Versions-That:
    ovmf=f122c6f639cd3babedc0dd9b38b279d94b087c7a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 06:15:58 +0000

flight 186772 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186772/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 72d6e247b781cca65aac71c97c5094650b003a9d
baseline version:
 ovmf                 f122c6f639cd3babedc0dd9b38b279d94b087c7a

Last test of basis   186770  2024-07-12 02:11:12 Z    0 days
Testing same since   186772  2024-07-12 04:11:24 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   f122c6f639..72d6e247b7  72d6e247b781cca65aac71c97c5094650b003a9d -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 06:38:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 06:38:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757783.1166915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS9v0-0005wW-3u; Fri, 12 Jul 2024 06:38:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757783.1166915; Fri, 12 Jul 2024 06:38:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sS9v0-0005wP-0o; Fri, 12 Jul 2024 06:38:10 +0000
Received: by outflank-mailman (input) for mailman id 757783;
 Fri, 12 Jul 2024 06:38:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GSxy=OM=aepfle.de=olaf@srs-se1.protection.inumbo.net>)
 id 1sS9uy-0005wJ-S0
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 06:38:08 +0000
Received: from mo4-p01-ob.smtp.rzone.de (mo4-p01-ob.smtp.rzone.de
 [85.215.255.54]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b81d741-4019-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 08:38:06 +0200 (CEST)
Received: from sender by smtp.strato.de (RZmta 50.5.0 AUTH)
 with ESMTPSA id Dbccd106C6ba1WB
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate);
 Fri, 12 Jul 2024 08:37: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: 4b81d741-4019-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1720766260; cv=none;
    d=strato.com; s=strato-dkim-0002;
    b=mljz1yQlZSPpbSf93uu32lEDGyb98eIcGdijMpZPIshu4wyTZr46dq0rk3b+CbFBFT
    ziqRFDY/ag915vFfKHtp9Qt+oDMrYBp+b6xNuu5DzdDnSQOMlp1YiZ44HytAQPJRJphQ
    zSFV8yrVpkBJN2YI/YH/nzIIpOMSBaOAEws0N5Qjt0Rn3Squd84NelGf6PXo3EPy2Fcu
    /H9b6EZxUjiAurDfRmoAWTFM+kqVaFqhGFz6UiygullaxmxA7P0UqT9gRWaK3BT2FmQH
    0iCEk/gVJn+G70/cqmbxTVdOHaRB5vzhqzuwjWLXSUE0IkRtu+6QLAT1bqBGJMmOsGXs
    Jecg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1720766260;
    s=strato-dkim-0002; d=strato.com;
    h=References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Cc:Date:
    From:Subject:Sender;
    bh=rbqW7y8oG+GFJU7taOIL3A5vB9h4QDPT1Qgt1/xkRAY=;
    b=nQ4O3vLOwMMa+ESqrOyPwTjmNJpn0gBRCI7kVQGsdWrHz1Nn5JYFPGyfzo4A2D7oqu
    f9WS4ZBm1jc/TLSVMPvgK4dWo6PlTP6hHOHooGkDCTsyx0yowdWaNSipeVqAx+DWHguW
    5gv3YbwGq3EwyvdML1otsZQ9m6KD521bJ4yo8B2R8pYsHo5qHw76A9ehfq2dzYRWu+bQ
    k/8SsT8tONzn0fB4Wh3+1UfY0N9j8mHRkCCkmm3wN8cGtK2SwefOw6KEzG0iM0mlAswa
    7XKuWr7GldVnQpp0aENVYdUWkS9Oj4GDlOK6gl5gyj5qpyvpWUBKRdmn1CXxkr1AN870
    a4dA==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo01
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1720766260;
    s=strato-dkim-0002; d=aepfle.de;
    h=References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Cc:Date:
    From:Subject:Sender;
    bh=rbqW7y8oG+GFJU7taOIL3A5vB9h4QDPT1Qgt1/xkRAY=;
    b=GYxfvzv1hJKD5QQRqTumewjy8WsKlIH/ffzrdTUbltob79GA10uILNZoRy8q8cBa/+
    2TMEe+Ge8KSQ09BHrjRiWt03AWoCdap2A1/kNDe3s9SD+/uM1nP3FdPC/goJkQHvZo56
    2SP2bofg9S0EhSf0xSJ6O13tCdDRjzcHHGNfwZ2mydwNKAIq1DPRoWuu5YbczAF3Bavy
    nMfp91ZNypt/iFpOmWblRqavTup6/4UYbfaPyMVWPEWC2EAmM/YZ6M6nKETi5Ev04lX5
    RqvkuCYncL0q3cY+8ORpIf/1y9SARXWINZ6MXhTzWHiGuomm1Y4CUbKsW4Lu/MlLdwxt
    6hpA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1720766260;
    s=strato-dkim-0003; d=aepfle.de;
    h=References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Cc:Date:
    From:Subject:Sender;
    bh=rbqW7y8oG+GFJU7taOIL3A5vB9h4QDPT1Qgt1/xkRAY=;
    b=zSp/+XgWr8APHyMl0QrN0sz3I84+xY1Mq44ZpG1jJeUZLYCp0uAnjphFsGM39dEM50
    wfhmCxU7grqtbFGAadAQ==
X-RZG-AUTH: ":P2EQZWCpfu+qG7CngxMFH1J+3q8wa/QLpd5ylWvMDX3y/OuD5rXVisR5BkKIOBzsrQFE/ZQyiRRrPkprT4fzoKOdWSb+rw=="
Date: Fri, 12 Jul 2024 08:37:29 +0200
From: Olaf Hering <olaf@aepfle.de>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Roger Pau
 =?UTF-8?B?TW9ubsOp?= <roger.pau@citrix.com>, Jan Beulich
 <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: Re: [PATCH 13/12] CI: Refresh OpenSUSE Tumbleweed container
Message-ID: <20240712083729.1374ce8b.olaf@aepfle.de>
In-Reply-To: <44cc71ca-00b2-42a8-9dc4-bc0b6f1df6d0@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
	<20240711202337.3128473-1-andrew.cooper3@citrix.com>
	<20240711234925.189e16d5.olaf@aepfle.de>
	<44cc71ca-00b2-42a8-9dc4-bc0b6f1df6d0@citrix.com>
X-Mailer: Claws Mail (olh) 20240408T134401.7adfa8f7 hat ein Softwareproblem, kann man nichts machen.
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/sB=if5wPO7C.SUZtIdOdLyJ";
 protocol="application/pgp-signature"; micalg=pgp-sha256
Content-Transfer-Encoding: 7bit

--Sig_/sB=if5wPO7C.SUZtIdOdLyJ
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Thu, 11 Jul 2024 23:39:42 +0100 Andrew Cooper <andrew.cooper3@citrix.com>:

> configure has to cope with distros taking different naming decisions,
> and while I appreciate that packages may change over time even within a
> distro ...

configure does "pkgconfig --exists something" to probe for some API.
I'm sure noone will rename the pkgconfig files, "something.pc" in this case.

> ... this is just a differently-inconsistent list of names, with some
> very dubious aliases such as `form` and `menu`.

I should have truncated that list of names, 'pkgconfig(ncurses)' and
'pkgconfig(glib-2.0)' are relevant.

> What makes pkgconfig() any more stable than the main package name?

They are supposed to describe some API, and in some cases some functionalit=
y.
It does not matter much which package provides the API.

> Why do we want to be treating libraries different to other packages?

Because there is no other namespace to describe functionality.
It was implemented for pkg-config, it exists for some cmake and perl
modules.

> > python3-devel is "special", can be used as is. =20
> As an aside, I looked for a python3-minimal or equivalent, and couldn't
> find one.=C2=A0 I take it there isn't one?

I think there are libraries compiled. There is indeed a 'pkgconfig(python3)=
',
my search just failed to find it. Otherwise, if there are really just .py
files in the tree, 'python3-base' is the string provided by 'python3N-base'.


Olaf

--Sig_/sB=if5wPO7C.SUZtIdOdLyJ
Content-Type: application/pgp-signature
Content-Description: Digitale Signatur von OpenPGP

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

iQIzBAEBCAAdFiEE97o7Um30LT3B+5b/86SN7mm1DoAFAmaQzykACgkQ86SN7mm1
DoALAg//W4Jv8u6wWm0vCCe7Cn9Cgfhofln54CrScn0DsQ3pz+TertfM+6Xj3k5Z
2pw8hEZGxA1xH+L29Qf9O2MpahFc4qYduyx850aGPbpMCTiTSm8JgYh28G6vARQZ
t7wVvafnOuOCK3l8O3Hb7d+MJC41JI0BAm8JqftdOWk2GUaUTNlj4LDw2tc/zeEp
DQKcc5mQI6f+ZygWC3n5NespjJNAOZlJFtA6TO+R4WFcNFVdVPQYBZpONX2EvXek
SmN8G4uHBePIRgFf/Ip5QmC6RoeXMXLnNjVfkj0EfXWFYNzkwyC03VcpxOv1O6Mw
qn9veMXOqxh+ZvexaaTMFRkkhCn/lgMaHkXZ41d+RRR9MYO1k0sT6Z3OIMUyagSy
5q6OHW5FJpxtXvrSdAkeqQ2gp2PXRRf82hmKb6q4cmqw9lOXPPPE1P2KHx7oMpeV
bmtYlysQOfiTspcf056Fu2Ultqy75xuyvKfhhUWgAFwPEtmH1nfBalY9qZBiRkKS
Ufk99yqPMKvVZefB5tbGah2gNh/uHmmbU1/ph5JCfAGkR+uVKoUni1vC+XESkWkD
zrYuedPJ6EdiNswbXKnrmh5NjMTfVKOt5kXqI5JSf4QepQyAS6QXzp/z/3lqkMe7
kd/H44UFoRl8C0uSH8dKPtWNCGvsQO3CAsSkdZB1rKKj21GOE8s=
=PGlN
-----END PGP SIGNATURE-----

--Sig_/sB=if5wPO7C.SUZtIdOdLyJ--


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 07:59:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 07:59:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757796.1166924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSBBk-0006Ho-ME; Fri, 12 Jul 2024 07:59:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757796.1166924; Fri, 12 Jul 2024 07: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 1sSBBk-0006Hh-JJ; Fri, 12 Jul 2024 07:59:32 +0000
Received: by outflank-mailman (input) for mailman id 757796;
 Fri, 12 Jul 2024 07:59:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSBBj-0006HX-8x; Fri, 12 Jul 2024 07:59:31 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSBBj-00052s-2o; Fri, 12 Jul 2024 07:59:31 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSBBi-0005lL-M5; Fri, 12 Jul 2024 07:59:30 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSBBi-0000g8-LZ; Fri, 12 Jul 2024 07:59:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=6GTr8+47aVuWJdzMZznVx9hZ+LVg/AHM2hdXycyIxh0=; b=iGG6mI71bdD+T0f0/G6yQerYnV
	x6GrXj9QG1bQv+dK59z+qj3ybYJM3cKMNmChTVax6obmGTeqswWqIWWt2U3yo/UlnWVhVYasgg4WQ
	pZvbi3fYyvcKlJPfKHOcqcKIJEdH151IIEdBmhy2g/lTAL6sZ/dN+zpTfjm+eutNOE6Q=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186766-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186766: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=8a18fda0febb7790de20ec1c3b4522ce026be1c6
X-Osstest-Versions-That:
    linux=9d9a2f29aefdadc86e450308ff056017a209c755
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 07:59:30 +0000

flight 186766 linux-linus real [real]
flight 186775 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186766/
http://logs.test-lab.xenproject.org/osstest/logs/186775/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-libvirt-vhd  8 xen-boot                 fail REGR. vs. 186761

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 186761

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186761
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186761
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186761
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                8a18fda0febb7790de20ec1c3b4522ce026be1c6
baseline version:
 linux                9d9a2f29aefdadc86e450308ff056017a209c755

Last test of basis   186761  2024-07-11 05:47:53 Z    1 days
Testing same since   186766  2024-07-11 19:40:24 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Aleksander Jan Bajkowski <olek2@wp.pl>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alexei Starovoitov <ast@kernel.org>
  Baokun Li <libaokun1@huawei.com>
  Bastien Curutchet <bastien.curutchet@bootlin.com>
  Brian Foster <bfoster@redhat.com>
  Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
  Chengen Du <chengen.du@canonical.com>
  Chris Packham <chris.packham@alliedtelesis.co.nz>
  Christian Brauner <brauner@kernel.org>
  Christian Eggers <ceggers@arri.de>
  Christian Kujau <lists@nerdbynature.de>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  David Lechner <dlechner@baylibre.com>
  David S. Miller <davem@davemloft.net>
  Dmitry Antipov <dmantipov@yandex.ru>
  Edward Adam Davis <eadavis@qq.com>
  Eric Dumazet <edumazet@google.com>
  Florian Westphal <fw@strlen.de>
  Geliang Tang <tanggeliang@kylinos.cn>
  Gerald Yang <gerald.yang@canonical.com>
  Helge Deller <deller@gmx.de>
  Helge Deller <deller@kernel.org>
  Hou Tao <houtao1@huawei.com>
  Hugh Dickins <hughd@google.com>
  Ian Kent <ikent@redhat.com>
  Jakub Kicinski <kuba@kernel.org>
  Jason A. Donenfeld <Jason@zx2c4.com>
  Jeff Layton <jlayton@kernel.org>
  Jian Hui Lee <jianhui.lee@canonical.com>
  Jingbo Xu <jefflexu@linux.alibaba.com>
  Kumar Kartikeya Dwivedi <memxor@gmail.com>
  Kuniyuki Iwashima <kuniyu@amazon.com>
  Lex Siegel <usiegl00@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Mark Brown <broonie@kernel.org>
  Martin KaFai Lau <martin.lau@kernel.org>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Michal Kubiak <michal.kubiak@intel.com>
  Mohammad Shehar Yaar Tausif <sheharyaar48@gmail.com>
  Mor Bar-Gabay <morx.bar.gabay@intel.com> (A Contingent Worker at Intel)
  Neal Cardwell <ncardwell@google.com>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Pedro Pinto <xten@osec.io>
  Ronald Wahl <ronald.wahl@raritan.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  Uwe Kleine-König <ukleinek@kernel.org>
  Vitaly Lifshits <vitaly.lifshits@intel.com>
  Vlastimil Babka <vbabka@suse.cz>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 2471 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 08:04:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 08:04:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757809.1166935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSBG3-0008Mq-Eq; Fri, 12 Jul 2024 08:03:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757809.1166935; Fri, 12 Jul 2024 08: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 1sSBG3-0008Mj-Az; Fri, 12 Jul 2024 08:03:59 +0000
Received: by outflank-mailman (input) for mailman id 757809;
 Fri, 12 Jul 2024 08: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=jF+a=OM=epam.com=prvs=3923533b25=sergiy_kibrik@srs-se1.protection.inumbo.net>)
 id 1sSBG2-0008MY-Sp
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 08:03:58 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4857c9cc-4025-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 10:03:56 +0200 (CEST)
Received: from pps.filterd (m0174677.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46BN52jq010289;
 Fri, 12 Jul 2024 08:03:41 GMT
Received: from duzpr83cu001.outbound.protection.outlook.com
 (mail-northeuropeazlp17013014.outbound.protection.outlook.com [40.93.64.14])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 409wcd862p-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 12 Jul 2024 08:03:40 +0000 (GMT)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by PR3PR03MB6618.eurprd03.prod.outlook.com (2603:10a6:102:71::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.23; Fri, 12 Jul
 2024 08:03:36 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.7741.033; Fri, 12 Jul 2024
 08:03: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: 4857c9cc-4025-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SF94b1EGXomeU+co6LyQ1fjJQYh1ZODWKdZpC8AlF42DTR2+4kcYqH9O5uPPHYYkihejGOG676fC92m/1DA43+x5b/vveb/nCJm5U8bdVPW625AdGzOv/e1/W+dLMn3ROfZt3b9GadwohVEQHoJUJ6fFztOyl21PQdCT7uL4M5iJgmGadJrafJVgmKWq90ZD3U/juzIc5NlhUn7i2kcue8TemBj+q4qhJZs9+9QzGx5LbWXPWHhwkNhyc6THRvNoBFYsmxMS+k+SQy8yb9qxh0h3V3dhgPhj8UQzQKMtahS5m6LydfAA0cKl3NXi0HL8lCm4H6ObaIYAC2Ki4gei1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=J3PBS7FsMK7CjdCm2JWDE3hC69vUYNvHJ8MLPYv8/pY=;
 b=CuhTvRAlv0r/5muBsqF9aWry6tDBk7nZWkVr6nM68OdS5QWXsy6MfGJMsvSJflgoOIwnp1iySVo7KgKBFVUUFSQmDZM/jOYhlD3QQnY6xNxx70IfbtVDzJfHxuB9Hi2Wt7Gk7IPZfzNT/G6p8UNiDuScOnhuDkWurbRy00lKfh+IGlg+3FBzunXcngVRhEwJvDUIRTWrLLJraHRBkUvFFFVPuVBvRZOETFy0cnLrNkPPtXOfFtGh/Jt4Q0YHfandozoQDrDDDZUq670O8ks6MKWbs9CsFbn4UZV+625qDG87X0cV0cGCs8Xwl6L/CmgCg2aNUgp7lgyRL7I8PAlesQ==
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=J3PBS7FsMK7CjdCm2JWDE3hC69vUYNvHJ8MLPYv8/pY=;
 b=K1LmVB3BrPict8KBpmxYGr1cA4LLFXzjCsOJTQOfT9HoA3thxRFRnzHTDo/VcG9EVU+VBtz640Oh0sK9XTU+PJfa5c+CZf/Tupl7GEDIwczXjHioiSSTqjoW+MPFpMab2LZwBRSU31zITBXOsCrkONlvhQob3ZuY/c28bsjWvLz5KGW4pbDNpuIr9FlvXTwAdlx3vpwlFHjUX5N/bpt4GYQX90UKrjPyShet/230jWfJhJLsBU1pyBoxGkLt6JL2mvsVCTvMsF1ax3bcgFDcz7psnWBdAsoce7OXLHI0d1OqlIm+NJ7tMwAlgGNDKRCwMADLLTHELbFvnzqOFyAO8g==
Message-ID: <5f5caff7-6963-48ef-b0a6-1c170271e569@epam.com>
Date: Fri, 12 Jul 2024 11:03:33 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 12/14] x86/ioreq: guard VIO_realmode_completion
 with CONFIG_VMX
To: Jan Beulich <jbeulich@suse.com>
Cc: 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>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
        Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
        Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <e6e0f30ea69ecfed4d8de531fc42162162b3f6e5.1720501197.git.Sergiy_Kibrik@epam.com>
 <5fad5c8e-a7f0-4536-86ea-b74a3116d122@suse.com>
 <6fc22816-5f2c-4f87-a86b-09363f254e05@epam.com>
 <2b408be4-70e4-41a0-b15d-c4cab58198c2@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <2b408be4-70e4-41a0-b15d-c4cab58198c2@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0045.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::19) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|PR3PR03MB6618:EE_
X-MS-Office365-Filtering-Correlation-Id: 2059236f-b30e-44b1-13ec-08dca24921bc
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|1800799024|376014;
X-Microsoft-Antispam-Message-Info: 
	=?utf-8?B?K2h1dkwxbmFzYkVNZWNMRDJqc3dPWE1tNGVXT29MNWV1ajF5VXdyYlFuNkxY?=
 =?utf-8?B?ajFwemV5YjhuU3NBYWk3R3dUVDNCZGZsdTRXSmlpVXZQV3d1bVpMRHpoR3Fr?=
 =?utf-8?B?SERzQm1SVUtCNzhnRzlTMHBPUHBETkZwd0hBa0h6UlkyVHNsb2ExeW9qUExm?=
 =?utf-8?B?VndMeTdTbjFkQVQ2RklobUVnekZQZ0Z1alFFcHk2ZFB4Q2RTUndjbksvN1di?=
 =?utf-8?B?bDdHR0hWSDVFTE9ZVCsvSWZiWWdsYWwwMjB0SjhUUEJtM2JON3ZBNjVGc2U2?=
 =?utf-8?B?MmxVWC9vaWNVV2JQdTVUd205anZ1UDBHc2VTYlZNR0tNeEtEZjBJODhKT1FU?=
 =?utf-8?B?RDROaGkzM3VhQitIOXh0cy9BWXpVR3I0bVlKYmwybmZBZlFLYWRMM0ZYL0lq?=
 =?utf-8?B?by9hM3p2b1EzZk94UEQxRStVKzIxRHVWMFU3c0E4YitWUWZMS0JOMVcrU21P?=
 =?utf-8?B?VVRtdkpBd1BRQjAzYUtpNTlOZXh6RUJmbXdpNnVHQ01XUTRybTVhSHFCekFP?=
 =?utf-8?B?dW5hNFp0cGhnWnR6SVAwTUJ6R3pVQjZQNDJVUWtRaTEwY3lHOTk3bng1ajFP?=
 =?utf-8?B?UGRaa1Rtd0pMN0k2bnpZZnZNcjVXMXI3N24ybktUNWVGblU0V2g2S0lQSm9W?=
 =?utf-8?B?bWlicGtGZ1FmL3NZS1NYcHBsN3d0SlRURHd2NVpsOE9UQmxYV1R0ZUVZWHJ0?=
 =?utf-8?B?Y1FvejNKeFJ5bEh6cUJNcW9CeldTVkszT3ZlZEZwMXhzb2JRcTFoUlpjRkJK?=
 =?utf-8?B?S3Q3RmJZblJobmxkdlI0SjVnYmExdElEaWVHUk1HT1p3VjFBRGY4L2lWVmFL?=
 =?utf-8?B?WE1KSGdRV3draFFUNWpncUhJUGJBbm9INjFyazhqQ1lYM2lqN0MrWGJjV1Np?=
 =?utf-8?B?RGJLa0Y0N0xxL2N4d24xS2s3S1E3WXNJL29tS2dyUHVndS80KzQ2Y29TbkR4?=
 =?utf-8?B?d2dHU2Fab1VqVW1IenFONG10WEJRUnE5THZoMVh1TUdRNzJRcE9IQ1BJTjZ0?=
 =?utf-8?B?ODVkQjU3VktlVkpuU3BkRnRmUnRMOGlUTlJJc2hYMitsZ2ZRYkdrS1NqWU9B?=
 =?utf-8?B?Q0lLd0lFWVo5d0trTWhXWjlrdHZiZkl5MTgyRDlQV3psN0hkY0tGVi8xT3FU?=
 =?utf-8?B?dTMrTlZNdWV4N2RNSHRab0V1TEdLaUNMditheWkxQnRiRWhJTStRcEhYZ1ZK?=
 =?utf-8?B?Y0lsK2pqbWVjSTlqSkZHZ3ZsRjE3YnJabERQbU1RdmQxWWVWbUROc0tTai92?=
 =?utf-8?B?YzZCQkJaYVpXbmNMb2RIczdYSlBYdXRVUGdRK1dhaU1LdEtEVWRra3A2Qnpp?=
 =?utf-8?B?VkJVdWFaa29JRGh6TXlLM2Vqb0pURzZLbldVRStBWDR6aEZlQmZnalFFdkRx?=
 =?utf-8?B?QzIyNVRFMkl1azlkSzFpNElHRXlhVGVCKzBkcEl2azJJbCtnaU5LRFpXc1Nk?=
 =?utf-8?B?dkc1a0tXVVlDS0Vqd3NXOU9UT3RGT25zZGhhSUtONG12cTJnZVRHRkdzbkdH?=
 =?utf-8?B?UytQcmMwOUNVWm83OXVhSVowR3I0MENlamUzc1B3VkJuSUxjU0Q5NWZ5SXpk?=
 =?utf-8?B?UG5FdWowNDdWbE5RSUVpTjZRdkVXcXlTWHZ6OTcvNkVxb2NVL2w0bWd6b0xT?=
 =?utf-8?B?Z3VaemhHaEVWUUp5RFVPbVpWbVBLRWlGazlBQUhKb2JZMlIrNy92bEFwVU9n?=
 =?utf-8?B?eUtTSXQrR1ZRWmhnVHd3K3d5ZlNsa0pIdi9jMW56NmdKcVBUbjYzZmVzQmFy?=
 =?utf-8?B?dTE4ZzZLRmN3bksxRUFUR0FXQWRIcDdpZ1RNNkxaTTV6d0g0R1dORVdJTlBV?=
 =?utf-8?B?T29RRmhCakxuTkM1bURWZz09?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?ZnN0eXNHOVZ4aWxxcS8yY0xSaDREYVZ3QjZhcGwrdTZEZDdTTzlSTE0zbHFE?=
 =?utf-8?B?Z0NXRnJ0ay9SV0N3a2hsVnBhWDZGLzhWdmVVcFE5NUJxZWc3ZTRDaGdDemU3?=
 =?utf-8?B?UVIybk5IWFpiWHI3RFZKZ3VEaDJ2cU9HUVp5TFB1TnNPRW4rbEt1c3VSUTBB?=
 =?utf-8?B?QU4zanRUSFF3LzFWNnZ0TnFzS2Q5Y0JmZS9BM2VBNGpJMW14WjVMUW9IZmdY?=
 =?utf-8?B?Rnc1eDZBcUU5MVhSZEFkdEFOK0VWelhPN3pJemZ1cWVKRnhzZ1BwbXM4aWt4?=
 =?utf-8?B?STBGREZIMTVXTlFiWjNpYldDZ3BXV0Fzdkx5am5Rc2U0T000ay9jNU1QZHM2?=
 =?utf-8?B?cEdKSnF5OFQ3Y0w4VU92QXpacXE1cnYvTXlKQjltMzdLbjFpRFoxd3pydUQ1?=
 =?utf-8?B?aXlrQmwxSElOQW9kb0tVRlV0TW5tS2RKVUJTUFZPQzdLL0x0T0J1bm83KzBH?=
 =?utf-8?B?TG0vN25uMzhsc1hwRUl2Y0ZuV01FT1R4ZkNENDJrT1lldDFFbnVNS0I0ampV?=
 =?utf-8?B?QmRIUFNndyszQ28wKzV1VmxVSWhBbGEzY2FxakNWZTdRZHdRT2Q3R2pHNzQ5?=
 =?utf-8?B?THBPUEdpUU80MTZPVzBkV3BESFpXSzNPamliaWx3MzJFZjBwbEdLMUNPODEx?=
 =?utf-8?B?ZXJPMmxmMGY5Z2F3UzlRYzlXNS9zc1RwVDBQc0xVZlBibGU3NlVvWHhwOWxn?=
 =?utf-8?B?RUVHVUpiVU56UVBwSHNCQWxxWjJqSjlTd2xZYkovMXVhL013NFFNRmFPQlEv?=
 =?utf-8?B?NytxTUV4VlpZc0MyRUZwdmtLQTBDTllYZU10SmNlZEdkaDd2SG85M2MxNWc3?=
 =?utf-8?B?RUpmVmRKTmVVdkw1WjB3SFo0SWVoK2VoWXJCTkswRUdCT2FPY0dqR3o4aGlC?=
 =?utf-8?B?K05kWWdOYm1hbXhJaGQ5VTdQdzJ3NW1RNFByaUJlKzJqY3lpVnpaaWNFTkw3?=
 =?utf-8?B?bS9YcThzYjNtekUyLzJYY25KUzdZU055VmJYM25NbzIxZjRCeUZ0bkZtQVdZ?=
 =?utf-8?B?Q1piQjA2T3NnWDRWQVd3NEtrdEZ6M0FmUjVibE9YSFhFK1VURzZZZ29SR0pJ?=
 =?utf-8?B?dDhuTkxaRGxoTEtSMkI1MmRsWWkwVEMzQlpXR1hlYzl4MHRVdVRuRWNod3Vz?=
 =?utf-8?B?UkRsVVJ6TGkxem0xMkk0b3oyVWtDUG9vbUNITEtjb2xLWEJSQU1SdjcrcUJC?=
 =?utf-8?B?eVBHalNwOFZnWVIrVy9TWVRSc29ucCtFNXlRaXVPWUczY3BYN1l1RWRiWUlz?=
 =?utf-8?B?MFhoYlF6YjBWTGRDYVZ6L3Z1VDhJK21ZdmxjRVFPcmpCMHl2UlE2NTZTVXhS?=
 =?utf-8?B?S1pEOVdRajVvNk9XekEyRXNNVFViSlBSZndMbkQ4b29sS00yUDR5ZTdMd0E0?=
 =?utf-8?B?S0FSZ0pxWFhmNUhtd2dVaEd4UW96cFRvTDNBTlBhSnFuaUttekV2dlk0ekdy?=
 =?utf-8?B?N2puMGhFL1RYY3c4dEJGR003dm0zK1pybzVMY2tOSCtzaHV2UGk0UHpkeUhx?=
 =?utf-8?B?RzlUT0NEaUlvdmdtOXBtNmpsYTQ0NDJRWENYYXM4S0ZWd0o0ZmEvc0FJdGNt?=
 =?utf-8?B?a1F1MVRVaStqRHcxTWZZWXlmY2NkaFhUaG1MS0lmTVIvUVdQb0I0a3VoeUVa?=
 =?utf-8?B?Mi9RS05hc0tTR1ZhcjIrS3JEMlQvWFh4d3h4NjdPLzBPa2ZtemxBZlcyaUdR?=
 =?utf-8?B?enpjczNuN2hHUnlyRWM5b1dONzlrMVZyTVFnWVlwaHZOdTFIMnhONEVpWktK?=
 =?utf-8?B?OENuMkxIWThlU1RvVE5hWHZqdi9TdllCUGVMOUduYnNsN0l4cmwvZjZVR095?=
 =?utf-8?B?akk5ZjA5TnZmVkRpSHNUTEdYY2JZWU04b1BDc2tVd2ZtNWFuVGFEUTRtYXVx?=
 =?utf-8?B?SHZQL0xYK05YVGlGR3phWTUycUVuS01heCs3ZWpXT0s3NlI0OTVkT1dMYlZt?=
 =?utf-8?B?QlgwWmoyTlp1L3gvM1VaZ2huVWtjcXFxSVFtQ3dZNGZxWjBuaGV6eVk4Slh4?=
 =?utf-8?B?VGhZeG9Uc0p1cEtvdVRsUVNYNTJxa1k3QnJMbVFKM2kyZis5ZWJKWVJ1QkhJ?=
 =?utf-8?B?SmJRRmpEM1VjbWlNMXlwc0FycmhjelE2OVM0SDVUc0sxVmNLcndmMzJmWXJT?=
 =?utf-8?Q?d5bX5ibbTvvHvBTMKjXmpl1P2?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2059236f-b30e-44b1-13ec-08dca24921bc
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jul 2024 08:03:36.3514
 (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: 1vrI5H74T8rkj1kwBm/yuOGV/uEafef0EzXw7kR8X7weyybXLX5EUlC8cpb8zieP7Qp8LNorANMxRjNBKL6COA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6618
X-Proofpoint-ORIG-GUID: 9JVCuZxdRqREY9RL4e1imC5H6uFEPQ7S
X-Proofpoint-GUID: 9JVCuZxdRqREY9RL4e1imC5H6uFEPQ7S
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-12_05,2024-07-11_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0
 priorityscore=1501 suspectscore=0 spamscore=0 malwarescore=0 phishscore=0
 mlxlogscore=999 impostorscore=0 lowpriorityscore=0 mlxscore=0 adultscore=0
 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2406140001 definitions=main-2407120056

10.07.24 13:19, Jan Beulich:
>> looking through these changes once again I wonder why can't we just move
>> stub to the header like this:
>>
>> in xen/include/xen/ioreq.h:
>>
>> #ifdef arch_vcpu_ioreq_completion
>>
>> #ifdef CONFIG_VMX
>> bool arch_vcpu_ioreq_completion(enum vio_completion completion);
>> #else
>> static inline bool arch_vcpu_ioreq_completion(enum vio_completion
>> completion)
>> {
>>       ASSERT_UNREACHABLE();
>>       return true;
>> }
>> #endif
>>
>>
>> and avoid additional pre-processor variables & conditionals, because it
>> looks like we do need some kind of stub that does ASSERT_UNREACHABLE()
>> anyway.
> That's possible to do, yes, but not as long as you key it off of CONFIG_VMX.
> This arch-specific setting would better not be used in a common code header.
> You could introduce a helper CONFIG_* which VMX selects, at which point
> doing what you suggest is an option.
> 

ok, I'll try this option in next series, lets see how it will look

> However, in what you have above I can't figure why "#ifdef
> arch_vcpu_ioreq_completion" is still there.
> 

disregard it please, a copy-paste error

   -Sergiy


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 08:18:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 08:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757818.1166948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSBTW-0001iI-K6; Fri, 12 Jul 2024 08:17:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757818.1166948; Fri, 12 Jul 2024 08:17:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSBTW-0001iB-HS; Fri, 12 Jul 2024 08:17:54 +0000
Received: by outflank-mailman (input) for mailman id 757818;
 Fri, 12 Jul 2024 08:17:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSBTV-0001i1-UW; Fri, 12 Jul 2024 08:17:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSBTV-0005ua-T0; Fri, 12 Jul 2024 08:17:53 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSBTV-0006Hw-HU; Fri, 12 Jul 2024 08:17:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSBTV-000675-H5; Fri, 12 Jul 2024 08: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=DE3pmMAdJ/wGbFknXwpmGDO4+kdtUqDxCjhMt/VxaUA=; b=Xlxo/sCvLYpMsK39e7CrRk7KLm
	7F3s3+6RJ+KuOlBhO204vkeVkQZE1wUIFX9KBeSaltaAetswMHUVa2y/5hdGQ4RTjUYN1NDtCoyhl
	bPe3vFEceF5lkqLZQOuQURwRhmCkrNDuAzBJ40nGAG86GmgsoZ/MDpkITLUl/c6TCDcE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186774-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186774: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=2e7230f1ba65e0ec9e6a3e191cca3a8b04e22ca8
X-Osstest-Versions-That:
    ovmf=72d6e247b781cca65aac71c97c5094650b003a9d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 08:17:53 +0000

flight 186774 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186774/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 2e7230f1ba65e0ec9e6a3e191cca3a8b04e22ca8
baseline version:
 ovmf                 72d6e247b781cca65aac71c97c5094650b003a9d

Last test of basis   186772  2024-07-12 04:11:24 Z    0 days
Testing same since   186774  2024-07-12 06:44:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Awiral Shrivastava <awiral.shrivastava@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   72d6e247b7..2e7230f1ba  2e7230f1ba65e0ec9e6a3e191cca3a8b04e22ca8 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 08:54:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 08:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757829.1166961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSC2n-0006aX-AC; Fri, 12 Jul 2024 08:54:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757829.1166961; Fri, 12 Jul 2024 08:54: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 1sSC2n-0006aQ-7c; Fri, 12 Jul 2024 08:54:21 +0000
Received: by outflank-mailman (input) for mailman id 757829;
 Fri, 12 Jul 2024 08: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=WJMA=OM=bounce.vates.tech=bounce-md_30504962.6690ef37.v1-423b19155ec440f2984a98f470f83f25@srs-se1.protection.inumbo.net>)
 id 1sSC2l-0006aK-RD
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 08:54:19 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51bd96a4-402c-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 10:54:18 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WL54R6BfvzB5pJRr
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 08:54:15 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 423b19155ec440f2984a98f470f83f25; Fri, 12 Jul 2024 08:54:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 51bd96a4-402c-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720774455; x=1721034955;
	bh=qO+oiOH3WwbHOST6Fe1XF8IjBj7vKdUGEsF74kvqpPM=;
	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=wudujk5a322O2+KxR7079qcfh05F5NWen93H5mjdX3qVpPkRX8gBQm6++ghf0Arfb
	 p1AwK+Lgv4Xm09qPm/xSrfCcCIX2vSUuq6M5/vVTvh3gydWQKFjPTyeAU/Twzb+tx/
	 3X6FBd9Upp67jKd3Q+lWdXgDJ+suE9K1YrDdzsvyxUg9cQm2QWcXo1Kuxd69+61X+o
	 /neoaDwRR/1XbCm1rxy1Pvb1furM1uDjMNaK3mV3ycNwI63r9K0wgEZNmuwlhWNihX
	 uO3ZSQZcoHlyk18KUux+zf0t+wBnHmXiFUPxi7umcuwZx1ppxwZosu5xAqTP9CJ1Ab
	 YERP5esNB/3gA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720774455; x=1721034955; i=teddy.astie@vates.tech;
	bh=qO+oiOH3WwbHOST6Fe1XF8IjBj7vKdUGEsF74kvqpPM=;
	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=QpSGLllITLdfBJxnNRBxMPR6ztcGHtJXiQdA7OZXX07Vk3vqrZG1lxegIROjYOlTq
	 kK553C8W48K0kzC5LPkjgUUtl5MXmoO3T9NHMhCAZ8oPVj4OoG4hsrSSaAZ/5y9Tqa
	 216t4rLGUCk3gOzxTF48YpWwLUuYVXL7B2DTF9w3+H7E4zRBNiheg9fTn0eDsUKkJV
	 bhI1El5lzShyd5jtZcBCEmWh6EoN9CVJP2lmjLE5WcYyASE09o2d/Mr7SbL60ifACF
	 Nb8dcJKPE1XhHMwcn+kRepcEycw76Vnpd3J6OozBEBi3Ce314giSQEPwKA7C1e2o9s
	 Ifs5GKfOyLRXg==
From: Teddy Astie <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20XEN=20PATCH=20v3=201/5]=20docs/designs:=20Add=20a=20design=20document=20for=20PV-IOMMU?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720774454181
Message-Id: <3792a096-24fb-4e35-8362-f85a100332f9@vates.tech>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <cover.1720703078.git.teddy.astie@vates.tech> <cf749c46f9d3d91bc116c96ee2fd1869164fbe5b.1720703078.git.teddy.astie@vates.tech> <D2MX6BEZAYQG.27FQPQ45OAEHA@cloud.com>
In-Reply-To: <D2MX6BEZAYQG.27FQPQ45OAEHA@cloud.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.423b19155ec440f2984a98f470f83f25?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240712:md
Date: Fri, 12 Jul 2024 08:54:15 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello Alejandro, thanks for reply !

Le 11/07/2024 =C3=A0 20:26, Alejandro Vallejo a =C3=A9crit=C2=A0:
> Disclaimer: I haven't looked at the code yet.
> 
> On Thu Jul 11, 2024 at 3:04 PM BST, Teddy Astie wrote:
>> Some operating systems want to use IOMMU to implement various features (=
e.g
>> VFIO) or DMA protection.
>> This patch introduce a proposal for IOMMU paravirtualization for Dom0.
>>
>> Signed-off-by Teddy Astie <teddy.astie@vates.tech>
>> ---
>>   docs/designs/pv-iommu.md | 105 +++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 105 insertions(+)
>>   create mode 100644 docs/designs/pv-iommu.md
>>
>> diff --git a/docs/designs/pv-iommu.md b/docs/designs/pv-iommu.md
>> new file mode 100644
>> index 0000000000..c01062a3ad
>> --- /dev/null
>> +++ b/docs/designs/pv-iommu.md
>> @@ -0,0 +1,105 @@
>> +# IOMMU paravirtualization for Dom0
>> +
>> +Status: Experimental
>> +
>> +# Background
>> +
>> +By default, Xen only uses the IOMMU for itself, either to make device a=
dress
>> +space coherent with guest adress space (x86 HVM/PVH) or to prevent devi=
ces
>> +from doing DMA outside it's expected memory regions including the hyper=
visor
>> +(x86 PV).
> 
> "By default...": Do you mean "currently"?
> 

Yes, that's what I mean with default here.

>> +
>> +[1] VFIO - "Virtual Function I/O" - https://www.kernel.org/doc/html/lat=
est/driver-api/vfio.html
>> +
>> +# Design
>> +
>> +The operating system may want to have access to various IOMMU features =
such as
>> +context management and DMA remapping. We can create a new hypercall tha=
t allows
>> +the guest to have access to a new paravirtualized IOMMU interface.
>> +
>> +This feature is only meant to be available for the Dom0, as DomU have s=
ome
>> +emulated devices that can't be managed on Xen side and are not hardware=
, we
>> +can't rely on the hardware IOMMU to enforce DMA remapping.
> 
> Is that the reason though? While it's true we can't mix emulated and real
> devices under the same emulated PCI bus covered by an IOMMU, nothing prev=
ents us
> from stating "the IOMMU(s) configured via PV-IOMMU cover from busN to bus=
M".
> 
> AFAIK, that already happens on systems with several IOMMUs, where they mi=
ght
> affect partially disjoint devices. But I admit I'm no expert on this.
>
I am not a expert on how emulated devices are exposed, but the guest 
will definitely need a way to know if a device is hardware or not.

But I think the situation will be different whether we do PV or HVM. In 
PV, there is no emulated device AFAIK, so no need for identifying. In 
case of HVM, there is though, which we should consider.

There is still the question of interactions between eventual future 
IOMMU emulation (VT-d with QEMU) that can be allowed to act on real 
devices (e.g by relying on the new IOMMU infrastructure) and PV-IOMMU.

> I can definitely see a lot of interesting use cases for a PV-IOMMU interf=
ace
> exposed to domUs (it'd be a subset of that of dom0, obviously); that'd
> allow them to use the IOMMU without resorting to 2-stage translation, whi=
ch has
> terrible IOTLB miss costs.
> 

Makes sense, could be useful for e.g storage domains with support for 
SPDK. Do note that 2-stage IOMMU translation is only supported by very 
modern hardware (e.g Xeon Scalable 4th gen).

>> +
>> +This interface is exposed under the `iommu_op` hypercall.
>> +
>> +In addition, Xen domains are modified in order to allow existence of se=
veral
>> +IOMMU context including a default one that implement default behavior (=
e.g
>> +hardware assisted paging) and can't be modified by guest. DomU cannot h=
ave
>> +contexts, and therefore act as if they only have the default domain.
>> +
>> +Each IOMMU context within a Xen domain is identified using a domain-spe=
cific
>> +context number that is used in the Xen IOMMU subsystem and the hypercal=
l
>> +interface.
>> +
>> +The number of IOMMU context a domain can use is predetermined at domain=
 creation
>> +and is configurable through `dom0-iommu=3Dnb-ctx=3DN` xen cmdline.
> 
> nit: I think it's more typical within Xen to see "nr" rather than "nb"
> 

yes

>> +
>> +# IOMMU operations
>> +
>> +## Alloc context
>> +
>> +Create a new IOMMU context for the guest and return the context number =
to the
>> +guest.
>> +Fail if the IOMMU context limit of the guest is reached.
> 
> or -ENOMEM, I guess.
> 
> I'm guessing from this dom0 takes care of the contexts for guests? Or are=
 these
> contexts for use within dom0 exclusively?
>

Each domain has a set of "IOMMU context" that can be allocated and freed 
(up to a fixed limit at creation of domain).
If there is no available context (if the context number limit is hit), I 
choosed -ENOSPC as error return (-ENOMEM is reserved for lack of memory 
which can also happens).

>> +
>> +A flag can be specified to create a identity mapping.
>> +
>> +## Free context
>> +
>> +Destroy a IOMMU context created previously.
>> +It is not possible to free the default context.
>> +
>> +Reattach context devices to default context if specified by the guest.
>> +
>> +Fail if there is a device in the context and reattach-to-default flag i=
s not
>> +specified.
>> +
>> +## Reattach device
>> +
>> +Reattach a device to another IOMMU context (including the default one).
>> +The target IOMMU context number must be valid and the context allocated=
.
>> +
>> +The guest needs to specify a PCI SBDF of a device he has access to.
>> +
>> +## Map/unmap page
>> +
>> +Map/unmap a page on a context.
>> +The guest needs to specify a gfn and target dfn to map.
> 
> And an "order", I hope; to enable superpages and hugepages without having=
 to
> find out after the fact that the mappings are in fact mergeable and the l=
eaf PTs
> can go away.
> 

In my implementation, I added a "nr_page" parameter to specify how much 
page can be mapped at once (and you can derive the superpages using 
this), I think as you suppose, it can be useful to try optimizing the 
map operation by mapping superpages directly.
The biggest problem is the superpage mapping we would like is going to 
only be valid if the target page of the domain is also a superpage 
(because the actual mapped region will also need to be contiguous in 
actual physical memory, not just from guest point of view)

>> +
>> +## Hardware without IOMMU support
>> +
>> +Operating system needs to be aware on PV-IOMMU capability, and whether =
it is
>> +able to make contexts. However, some operating system may critically fa=
il in
>> +case they are able to make a new IOMMU context. Which is supposed to ha=
ppen
>> +if no IOMMU hardware is available.
>> +
>> +The hypercall interface needs a interface to advertise the ability to c=
reate
>> +and manage IOMMU contexts including the amount of context the guest is =
able
>> +to use. Using these informations, the Dom0 may decide whether to use or=
 not
>> +the PV-IOMMU interface.
> 
> We could just return -ENOTSUPP when there's no IOMMU, then encapsulate a =
random
> lookup with pv_iommu_is_present() and return true or false depending on r=
c.
> 

-ENOTSUPP makes sense, another way that I use to report no support for 
PV-IOMMU is to report limits that means "no operation is actually 
possible" (e.g max_ctx_no =3D 0).

>> +
>> +## Page pool for contexts
>> +
>> +In order to prevent unexpected starving on the hypervisor memory with a
>> +buggy Dom0. We can preallocate the pages the contexts will use and make
>> +map/unmap use these pages instead of allocating them dynamically.
>> +
> 
> That seems dangerous should we need to shatter a superpage asynchronously=
 (i.e:
> due to HW misbehaving and requiring it) and have no more pages in the poo=
l.
> 

Superpage shattering is actually recoverable (if you fail to allocate 
the new leafs, you just keep the superpage entry and do as if nothing 
happened), and report -ENOMEM. Nothing happened from hardware point of view=
.

The modification of the superpage entry into a regular one is only done 
once the leafs are actually valid. A similar story happens when 
collapsing leafs into superpages (you can free the leafs only once the 
hardware doesn't use it anymore e.g after a relevant iotlb_flush).

> Cheers,
> Alejandro

Teddy


Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 09:09:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 09:09:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757838.1166971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSCGv-000054-Lh; Fri, 12 Jul 2024 09:08:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757838.1166971; Fri, 12 Jul 2024 09: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 1sSCGv-00004v-IR; Fri, 12 Jul 2024 09:08:57 +0000
Received: by outflank-mailman (input) for mailman id 757838;
 Fri, 12 Jul 2024 09:08:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A+Pa=OM=inria.fr=fonyuy-asheri.caleb@srs-se1.protection.inumbo.net>)
 id 1sSCGt-0008WV-Fd
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 09:08:55 +0000
Received: from mail2-relais-roc.national.inria.fr
 (mail2-relais-roc.national.inria.fr [192.134.164.83])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c14f237-402e-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 11:08:53 +0200 (CEST)
Received: from zcs2-store8.inria.fr ([128.93.142.6])
 by mail2-relais-roc.national.inria.fr with ESMTP; 12 Jul 2024 11:08:52 +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: 5c14f237-402e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=inria.fr; s=dc;
  h=date:from:to:cc:message-id:in-reply-to:references:
   subject:mime-version:content-transfer-encoding;
  bh=7g0fKjhpMlrZxBLWEzC4RRh2phln2fgoWmgNs0gjCms=;
  b=D3JpZo5PGLilS6flWl9hj9U5pFQmJ3vQ+09lq/urKkN4ABSVReyTH5bN
   a7EO3CsVw8hhl2If1khFbIUSFFCZ7P7XerOrhcF9UdTQdfRQ3hL1Vj+Uz
   ytXY2YmiaZkcK8/AXyIHunrhKjmo9q0ayFF2GYxrr96ejdL4hAqmRMdDE
   I=;
Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Pass smtp.mailfrom=fonyuy-asheri.caleb@inria.fr; spf=None smtp.helo=postmaster@zcs2-store8.inria.fr
Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of
  fonyuy-asheri.caleb@inria.fr designates 128.93.142.6 as
  permitted sender) identity=mailfrom; client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="fonyuy-asheri.caleb@inria.fr";
  x-conformance=spf_only; x-record-type="v=spf1";
  x-record-text="v=spf1 include:mailout.safebrands.com
  a:basic-mail.safebrands.com a:basic-mail01.safebrands.com
  a:basic-mail02.safebrands.com ip4:128.93.142.0/24
  ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:89.107.174.7 mx
  ~all"
Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender
  authenticity information available from domain of
  postmaster@zcs2-store8.inria.fr) identity=helo;
  client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="postmaster@zcs2-store8.inria.fr";
  x-conformance=spf_only
X-IronPort-AV: E=Sophos;i="6.09,202,1716242400"; 
   d="scan'208";a="175197671"
X-MGA-submission: =?us-ascii?q?MDEKUBlWgdIxsP/gHZqI7XG3Lzc0H9+QR7ha1e?=
 =?us-ascii?q?HzWc+B0GNVOLvsKusa47+4ZyPHA5OqteOcaZCS9j3/Gxp5pZ/9u1xGY2?=
 =?us-ascii?q?gpQmwSWlanKGMPiLsVe2KIi4yTLi8QIsMBn4ickJoAYqCzy/4yg7m2fq?=
 =?us-ascii?q?NyWQ0VScp6TxJQ/lfa2kyP4g=3D=3D?=
Date: Fri, 12 Jul 2024 11:08:52 +0200 (CEST)
From: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Message-ID: <987491818.2978050.1720775332531.JavaMail.zimbra@inria.fr>
In-Reply-To: <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr> <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
X-Originating-IP: [131.254.23.3]
X-Mailer: Zimbra 10.0.8_GA_4611 (ZimbraWebClient - GC126 (Linux)/10.0.8_GA_4611)
Thread-Topic: Help with Understanding vcpu xstate restore error during vm migration
Thread-Index: Mdo1HdJ6czOeuY10mb1m80kXFnpGYw==

Hi Andrew,


>> I was able to locate the failure point to the file
>> xen/arch/x86/domctl.c=A0 with the following check.
>>=20
>> if( evc->size<PV_XSAVE_HDR_SIZE||
>> evc->size>PV_XSAVE_SIZE(xfeature_mask) )
>> gotovcpuextstate_out;
>=20
> It is certainly more complicated than that.
>=20
> What that's saying is that Xen doesn't think that the size of the blob
> matches expectations.  That said - I'm in the middle of rewriting this
> logic because lots of it is subtly wrong.


Following from the check above, I have this other check in the same code bl=
ock.=20

if ( evc->size =3D=3D PV_XSAVE_HDR_SIZE )
    ; /* Nothing to restore. */
else if ( evc->size < PV_XSAVE_HDR_SIZE + XSTATE_AREA_MIN_SIZE )
    ret =3D -EINVAL; /* Can't be legitimate data. */
else if ( xsave_area_compressed(_xsave_area) )
    ret =3D -EOPNOTSUPP; /* Don't support compressed data. */
else if ( evc->size !=3D PV_XSAVE_SIZE(_xcr0_accum) )
    ret =3D -EINVAL; /* Not legitimate data. */


What do you consider here as legitimate / non-legitimate data ?=20


>=20
> ~Andrew

Caleb


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 10:28:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 10:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757853.1166983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSDVQ-0001La-3b; Fri, 12 Jul 2024 10:28:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757853.1166983; Fri, 12 Jul 2024 10: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 1sSDVQ-0001LT-0u; Fri, 12 Jul 2024 10:28:00 +0000
Received: by outflank-mailman (input) for mailman id 757853;
 Fri, 12 Jul 2024 10:27:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QfHc=OM=bounce.vates.tech=bounce-md_30504962.6691052a.v1-9361dbafef4c4bfdaf97a85e438f87e7@srs-se1.protection.inumbo.net>)
 id 1sSDVP-0001LN-CZ
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 10:27:59 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 668552c6-4039-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 12:27:55 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WL78V29tkz6CQ1rJ
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 10:27:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9361dbafef4c4bfdaf97a85e438f87e7; Fri, 12 Jul 2024 10:27: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: 668552c6-4039-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720780074; x=1721040574;
	bh=5R9FyRyY+GnjFKVBfkalGAYaXy9sFcqtQIFzKRFbdgw=;
	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=Dxb1DRFAOONXSanBYMwXdeTdITYGjxOC2NMFayF7lVcgB9/FiOjbnH/nIixCsHvPS
	 wlChjQ45cbNXTOTgMzsOPw1RvlkFvJXJKf27IZiAY0q6q1ok6MSOTcfa411rmyeco6
	 O15idRdrPazkZKfEVwnmhz4PdYrAomw9gCqyDXKNYy/vzbrzLv5dhjjBMu/Nu3YqwP
	 jWf8/acXAf3T4awwGl5ql9hRftQFcsP1/qS+OmKXLuVdrURn8T+j9vZCwysejpg/x9
	 kE1Gk628sXRNmYtH/dfv8nOxbu0AO/fBPWmiD9wg72cOVIq1XgmRH1hLnrmKWhlJpW
	 Evs6hfg3sbU8w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720780074; x=1721040574; i=teddy.astie@vates.tech;
	bh=5R9FyRyY+GnjFKVBfkalGAYaXy9sFcqtQIFzKRFbdgw=;
	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=OhF1Rwt+Zo+bip3l0Bfs7E/5wANwUYAA6J9AD5p/TjvHTa0D4qTAjejwJDk+Dd4me
	 DmYda2tqD+bGKb7119DaTiRB2MadDx5t8QErEe8um/885eXJ6GztXAU37yMgJp/yEa
	 b1Cdyfumhzbnejf9nvx/bq0ytR99aoc/ukkZLZv0iKZCBlylj1LmAuRd8TumONwQYZ
	 RODg9qcpdbSCXcGdJOE2+SGCQfSUljxHwjwxR6VFbmjl8gui9yjx804Z9oqWNGWTTO
	 scVGmSiNTQsg/2DIYFq8NjwXjFSnPTJe5U2dM3pvS18d1/6jyvm/AcDSpCzj8tCb6Y
	 kFwiaXwgWU5Nw==
From: Teddy Astie <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20XEN=20PATCH=20v3=205/5]=20xen/public:=20Introduce=20PV-IOMMU=20hypercall=20interface?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720780072847
Message-Id: <fc6c45af-561b-46b0-ab96-6cd58ffe7726@vates.tech>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <cover.1720703078.git.teddy.astie@vates.tech> <f9ae663df38acc0d330b7582dfaa7ac199746aca.1720703078.git.teddy.astie@vates.tech> <D2MYC4AEBUQZ.3DNOIV8LEE7F9@cloud.com>
In-Reply-To: <D2MYC4AEBUQZ.3DNOIV8LEE7F9@cloud.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.9361dbafef4c4bfdaf97a85e438f87e7?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240712:md
Date: Fri, 12 Jul 2024 10:27:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hello Alejandro,

>> +#define PVIOMMU_MAX_PAGES 256 /* Move to Kconfig ? */
> 
> It probably wants to be a cmdline argument, I think.
> 

Maybe, but in that sense, I think it should be a domain-specific limit 
rather than a global one. (e.g ability to prevent a DomU from having a 
very permissive limit).

>> +
>> +/* Allowed masks for each sub-operation */
>> +#define ALLOC_OP_FLAGS_MASK (0)
>> +#define FREE_OP_FLAGS_MASK (IOMMU_TEARDOWN_REATTACH_DEFAULT)
>> +
>> +static int get_paged_frame(struct domain *d, gfn_t gfn, mfn_t *mfn,
>> +                           struct page_info **page, int readonly)
>> +{
>> +    p2m_type_t p2mt;
>> +
>> +    *page = get_page_from_gfn(d, gfn_x(gfn), &p2mt,
>> +                             (readonly) ? P2M_ALLOC : P2M_UNSHARE);
>> +
>> +    if ( !(*page) )
>> +    {
>> +        *mfn = INVALID_MFN;
>> +        if ( p2m_is_shared(p2mt) )
>> +            return -EINVAL;
>> +        if ( p2m_is_paging(p2mt) )
>> +        {
>> +            p2m_mem_paging_populate(d, gfn);
>> +            return -EIO;
>> +        }
>> +
>> +        return -EPERM;
> 
> This is ambiguous with the other usage of EPERM.
> 

Yes, I think this part should be reviewed, because it may have 
implication with e.g DMA to grant mappings (not sure how it should be 
handled though). I am not an expert on Xen memory management though.

>> +static long map_pages_op(struct pv_iommu_op *op, struct domain *d)
>> +{
>> +    int ret = 0, flush_ret;
>> +    struct page_info *page = NULL;
>> +    mfn_t mfn;
>> +    unsigned int flags;
>> +    unsigned int flush_flags = 0;
>> +    size_t i = 0;
>> +
>> +    if ( op->map_pages.nr_pages > PVIOMMU_MAX_PAGES )
>> +        return -E2BIG;
>> +
>> +    if ( !iommu_check_context(d, op->ctx_no) )
>> +        return -EINVAL;
>> +
>> +    //printk("Mapping gfn:%lx-%lx to dfn:%lx-%lx on %hu\n",
>> +    //       op->map_pages.gfn, op->map_pages.gfn + op->map_pages.nr_pages - 1,
>> +    //       op->map_pages.dfn, op->map_pages.dfn + op->map_pages.nr_pages - 1,
>> +    //       op->ctx_no);
>> +
>> +    flags = 0;
>> +
>> +    if ( op->flags & IOMMU_OP_readable )
>> +        flags |= IOMMUF_readable;
>> +
>> +    if ( op->flags & IOMMU_OP_writeable )
>> +        flags |= IOMMUF_writable;
>> +
>> +    spin_lock(&dom_iommu(d)->lock);
>> +
>> +    for (i = 0; i < op->map_pages.nr_pages; i++)
> 
> This loop (and the unmap one) want to be bound by MIN(nr_pages, FOO), where  FOO
> is some upper bound to the number of hypercalls we're willing to do in a single
> continuation. If case of reaching that high number, we should create a new
> continuation and allow something else to run.
> 

That can be a good idea, although, it needs some care :
- we need to make sure that when we preempt, the state is well defined 
(e.g we need to do a iotlb_flush before preempting into a continuation)
- the hypercall result should account for all pages mapped in the 
hypercall and all continuations, and stop in case of error; reporting 
how much pages got actually mapped at the end

>> +    {
>> +        gfn_t gfn = _gfn(op->map_pages.gfn + i);
>> +        dfn_t dfn = _dfn(op->map_pages.dfn + i);
>> +
>> +        /* Lookup pages struct backing gfn */
>> +        ret = get_paged_frame(d, gfn, &mfn, &page, 0);
>> +
>> +        if ( ret )
>> +            break;
>> +
>> +        /* Check for conflict with existing mappings */
>> +        if ( !_iommu_lookup_page(d, dfn, &mfn, &flags, op->ctx_no) )
>> +        {
>> +            put_page(page);
>> +            ret = -EADDRINUSE;
>> +            break;
>> +        }
>> +
>> +        ret = _iommu_map(d, dfn, mfn, 1, flags, &flush_flags, op->ctx_no);
>> +
>> +        if ( ret )
>> +            break;
>> +    }
>> +
>> +    flush_ret = _iommu_iotlb_flush(d, _dfn(op->map_pages.dfn),
>> +                                   op->map_pages.nr_pages, flush_flags,
>> +                                   op->ctx_no);
>> +
>> +    spin_unlock(&dom_iommu(d)->lock);
>> +
>> +    op->map_pages.mapped = i;
>> +
>> +    if ( flush_ret )
>> +        printk("Flush operation failed (%d)\n", flush_ret);
> 
> I haven't looked at _iommu_iotlb_flush(), but a printk isn't good enough here.
> We want to set up a continuation to retry later, I think.
> 
> What might cause the error?
> 

I would say, it's mostly implementation-dependant (with x86 IOMMU 
drivers, iotlb_flush cannot fail though). The only other situation where 
_iommu_iotlb_flush can fail is when trying to do map/unmap on a IOMMU 
context that is being destroyed asynchronously (dying state). It makes 
all operations failing immediately with -EINVAL.
>> +
>> +    return ret;
>> +}
>> +
>> +static long lookup_page_op(struct pv_iommu_op *op, struct domain *d)
>> +{
>> +    mfn_t mfn;
>> +    gfn_t gfn;
>> +    unsigned int flags = 0;
>> +
>> +    if ( !iommu_check_context(d, op->ctx_no) )
>> +        return -EINVAL;
>> +
>> +    /* Check if there is a valid BFN mapping for this domain */
>> +    if ( iommu_lookup_page(d, _dfn(op->lookup_page.dfn), &mfn, &flags, op->ctx_no) )
>> +        return -ENOENT;
>> +
>> +    gfn = mfn_to_gfn(d, mfn);
>> +    BUG_ON(gfn_eq(gfn, INVALID_GFN));
>> +
>> +    op->lookup_page.gfn = gfn_x(gfn);
>> +
>> +    return 0;
>> +}
>> +
>> +long do_iommu_sub_op(struct pv_iommu_op *op)
>> +{
>> +    struct domain *d = current->domain;
>> +
>> +    if ( !can_use_iommu_check(d) )
>> +        return -EPERM;
> 
> This checks should be split, imo.
> 
> ```
>      if ( !iommu_enabled || !is_iommu_enabled(d) )
>          return -ENOTSUP;
>      if ( !is_hardware_domain(d) )
>          return -EPERM;
> ```
> 
> For the second, we probably want an XSM hook as well (or instead of, not sure).
> 

Yes (or at least, a way to know if the domain has ability to use 
PV-IOMMU and has devices for it).

>> +
>> +    switch ( op->subop_id )
>> +    {
>> +        case 0:
>> +            return 0;
> 
> IOMMUOP_noop?
> 

Could be a good fit

>> +/**
>> + * Query PV-IOMMU capabilities for this domain.
>> + */
>> +#define IOMMUOP_query_capabilities    1
>> +
>> +/**
>> + * Allocate an IOMMU context, the new context handle will be written to ctx_no.
>> + */
>> +#define IOMMUOP_alloc_context         2
> 
> Please, don't write to the header. It's an absolute pain to Rust-ify and highly
> unexpected when absolutely everything else will take that as an input parameter.
> 
> Provide the output as a dedicated OUT field in the alloc_context struct
> instead.
> 

Yes, as there may be cases where the current approach gets confusing 
(cloning context).

>> +
>> +/**
>> + * Destroy a IOMMU context.
>> + * All devices attached to this context are reattached to default context.
>> + *
>> + * The default context can't be destroyed (0).
>> + */
>> +#define IOMMUOP_free_context          3
>> +
>> +/**
>> + * Reattach the device to IOMMU context.
>> + */
>> +#define IOMMUOP_reattach_device       4
>> +
>> +#define IOMMUOP_map_pages             5
>> +#define IOMMUOP_unmap_pages           6
>> +
>> +/**
>> + * Get the GFN associated to a specific DFN.
>> + */
>> +#define IOMMUOP_lookup_page           7
>> +
>> +struct pv_iommu_op {
>> +    uint16_t subop_id;
>> +    uint16_t ctx_no;
> 
> Seeing how there's no polymorphism going on, why not put these on each struct?
> Then each handler can take a pointer to each substruct and everything is a lot
> safer.
> 

Do you mean something like

struct pv_iommu_op {
   uint16_t subop_id;
   uint16_t ctx_no; /* IN */
   void *subop_struct;
};

?

>> +
>> +/**
>> + * Create a context that is cloned from default.
>> + * The new context will be populated with 1:1 mappings covering the entire guest memory.
>> + */
>> +#define IOMMU_CREATE_clone (1 << 0)
>> +
>> +#define IOMMU_OP_readable (1 << 0)
>> +#define IOMMU_OP_writeable (1 << 1)
>> +    uint32_t flags;
> 
> This bitmap is used for different things in different subops, which highly
> suggests it should be per-struct instead.
> 

Having a flags field in each subop_struct ?

>> +
>> +    union {
>> +        struct {
> 
> Can you move these out to be first-class structs rather than anon? In pretty
> much the same way of the other major hypercall groups. I'd like to be able to
> generate them from IDL like I intend to do with all others.
> 

Yes

>> +            uint64_t gfn;
>> +            uint64_t dfn;
> 
> (a) I'd rather see descriptions in the missing gfn/dfn in various fields, and
> more specifically IN/OUT tags everywhere (i.e: as in /* IN: Number of pages to
> map */).
> 
> (b) Any 64bit numbers in the external ABI must be uint64_aligned_t so the
> alignment is 8 on 32bit architectures. I know this instance (and the others)
> happen to be aligned in both cases, but still.
> 

Makes sense

> That said, either these are 32bit frame numbers or otherwise we're better off
> using addresses instead.  It'd also be less confusing on systems with several
> page sizes, and it'd be specially less confusing if an additional parameter of
> "order" or "page size" was added here.
> 

It's something pretty similar to what Linux expects, and it is in fact 
in guest responsibility to ensure that addresses are aligned to page 
size and that the page size is actually supported.

While guest_addr (replacement for gfn) could be a good fit for phys_addr 
or something similar. I would keep dfn as uint64_t as it's perfectly 
valid to be able to map on >4G areas on a 32-bits platform.
But we want to make sure that all the guest memory can be represented as 
a phys_addr (e.g 32-bits addr may not be enough for a i686 guest due to 
PAE).

>> +            /* Number of pages to map */
>> +            uint32_t nr_pages;
>> +            /* Number of pages actually mapped after sub-op */
>> +            uint32_t mapped;
> 
> A more helpful output might some kind of err_addr with the offending page. Then
> the caller doesn't have to do arithmetic to print the error somewhere.
> 

This value is used as it is the kind of result Linux wants for IOMMU. 
Linux has a return value which is the number of pages actually mapped 
(if it's less than expected, it will retry though and if it is zero, it 
assumes it's a failure).

> Furthermore, seeing how this is something that should not happen I'd be tempted
> to amend the spec to somehow roll back whatever we just did, but that could be
> tricky with big numbers in `nr_pages`.
> 

Being able to rollback may be tricky as it supposes you keep previous 
state. For instance, when doing unmap, you practically need to backup 
parts of the pagetable or do CoW on it, so you can revert in case of 
something goes wrong.
Otherwise, all modifications made directly on the pagetable may be 
immediately effective if those entries are not cached by IOTLB.

That's possible, but needs a more sophisticated management logic of page 
tables at first.


---

I will try to do some changes on this interface with some eventual new 
features (even if unimplemented yet) and some of your proposals and 
publish it as an independent RFC.

Teddy


Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 10:35:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 10:35:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757859.1166996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSDd1-0002sX-T9; Fri, 12 Jul 2024 10:35:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757859.1166996; Fri, 12 Jul 2024 10: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 1sSDd1-0002sQ-QD; Fri, 12 Jul 2024 10:35:51 +0000
Received: by outflank-mailman (input) for mailman id 757859;
 Fri, 12 Jul 2024 10:35: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=U2Du=OM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sSDd0-0002sK-N3
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 10:35: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 809ae62b-403a-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 12:35:48 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4266ea6a412so12877775e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 03:35:48 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4279f2ba622sm19056845e9.33.2024.07.12.03.35.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 03:35: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: 809ae62b-403a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720780548; x=1721385348; 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=fp/VQOGRdKtZxKhrSp9PTcyDWPUKfnkwIFrsYwCJygk=;
        b=AqOYMTDFW5zkyI3sT9Fr6KAGF0bioH5gk6lzrLqWnAnzvn3+8yYn7lZMUtky41yQfb
         nJoZhXnBXdy/V7A41Xzh0tN3EmX4EGBkwzrmBTHES3zv9wbf4TOR2nWab6sU3vv5CMyf
         cg0SHZ2KPlhZEnJy9Jdcw6Cu+ifyiaNrEGHCA54sFnA1OXnYXo0i2WIaFwYB5tFeBKG8
         Bh/J4QAeS1KyTsrpeOM0s8kV6XsrgEg/zGeF8S6FhTErQ6JAgwZteBpZePytVIakqA8y
         rPMfp7zsYvj4o+/zLwxe7Wfa3JLTd7ZYSSfrz3w1X1ydP/1g27pGnJy/fnUXAV67tHws
         ieuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720780548; x=1721385348;
        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=fp/VQOGRdKtZxKhrSp9PTcyDWPUKfnkwIFrsYwCJygk=;
        b=sSmL21hz5Z4XaEF9b9FsQtBkNF2g1yMh+c+R3yITIcVolRyKsHmGC+nDnVhEEA0WAf
         ymG+KjJB3W+3BwS/jGHTAS9eXXKbA26AdCzRgF14b5+LnK9zWcUwMaCNZSsHnaDQdR81
         5bR0uWpusjnT1ShulOuMWj2fTJ4v4X9EmZ0siTyQKwyK4MmZvl7da5yCcTjrWY1BXAzD
         fzXbQz+CrZjnbUpXr2bwKt8GAtWxVaGGgGgMDivZO2LZNexPXbFLH7ohocNNad4qKSJb
         NcHD1bUN8AJGbgAwVbjfdvaQFRNbh5t8MWlhdmebtMS30Z9tefjc5VJOq4OmFgYzVz3i
         Qmpg==
X-Gm-Message-State: AOJu0Yz75qKTUabGxAXBBbUIFHkU29FGQ99bVKcYRYuvbGFngkcciHGq
	mLrCMU2rw80g//OJDSER1zk0gE4dv05jxQCAd41jW9750XW4t560yf2nOD+lvZg=
X-Google-Smtp-Source: AGHT+IF9QlHyjzahBATkQ7UJODUW5Tsqz8xrZNs5BJG/zFcEmrecoYH8vEaarBH1nEY6IOgmc9YLyQ==
X-Received: by 2002:a05:600c:4c19:b0:426:67dd:e9e9 with SMTP id 5b1f17b1804b1-426705d1571mr68714865e9.3.1720780547806;
        Fri, 12 Jul 2024 03:35:47 -0700 (PDT)
Message-ID: <a6144f89-449a-4d2f-927b-a9bbdfbed56b@suse.com>
Date: Fri, 12 Jul 2024 12:35:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
 <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
 <88db3cb6-2b7e-48b2-9bf4-d871067325a0@suse.com>
 <3d6d35ea-5044-4249-a277-0e5aa31ed888@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <3d6d35ea-5044-4249-a277-0e5aa31ed888@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 09.07.24 15:08, Jason Andryuk wrote:
> On 2024-07-09 06:56, Jürgen Groß wrote:
>> On 09.07.24 09:01, Jan Beulich wrote:
>>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>>    From the backtrace, it looks like the immediate case is just trying to
>>>>>> read a 4-byte version:
>>>>>>
>>>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>>
>>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>>> {
>>>>>>            int ret;
>>>>>>
>>>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>>>                                  sizeof(ucsi->version));
>>>>>>
>>>>>> ->read being ucsi_acpi_read()
>>>>>>
>>>>>> However, the driver also appears write to adjacent addresses.
>>>>>
>>>>> There are also corresponding write functions in the driver, yes, but
>>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>>> involved AML whether it might write said memory region.
>>>>
>>>> I guess an ACPI dump would help here?
>>>
>>> Perhaps, yes.
>>
>> It is available in the bug report:
>>
>> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301
> 
> After acpixtract & iasl:
> 
> $ grep -ir FEEC *
> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
> 
> 
> from the DSDT:
>      Scope (\_SB.PCI0.LPC0.EC0)
>      {
>          OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>          Field (ECMM, AnyAcc, Lock, Preserve)
>          {
>              TWBT,   2048
>          }
> 
>          Name (BTBF, Buffer (0x0100)
>          {
>               0x00                                             // .
>          })
>          Method (BTIF, 0, NotSerialized)
>          {
>              BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
>              Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
>          }
>      }
> 
>  From SSDT16:
> DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
> {
>      External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
> 
>      Scope (\_SB)
>      {
>          OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>          Field (SUSC, ByteAcc, Lock, Preserve)
>          {
> 
> 
> This embedded controller (?) seems to live at 0xfeec2xxx.

What is the takeaway from that?

Is this a firmware bug (if yes, pointers to a specification saying that
this is an illegal configuration would be nice), or do we need a way to
map this page from dom0?


Juergen


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 10:45:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 10:45:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757864.1167008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSDlq-0004Xr-Oq; Fri, 12 Jul 2024 10:44:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757864.1167008; Fri, 12 Jul 2024 10: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 1sSDlq-0004Xk-Kn; Fri, 12 Jul 2024 10:44:58 +0000
Received: by outflank-mailman (input) for mailman id 757864;
 Fri, 12 Jul 2024 10:44:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSDlp-0004Xa-Mb; Fri, 12 Jul 2024 10:44:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSDlp-0000Hh-JV; Fri, 12 Jul 2024 10:44:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSDlp-0004ry-Bz; Fri, 12 Jul 2024 10:44:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSDlp-0002LA-BT; Fri, 12 Jul 2024 10:44: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=EGwTFfYve+gZ9KGnBkU0q9s3gIP+FwKWtBs/xhibwsk=; b=moBiNUIIEek0vUp0ee+BLq7Q7W
	muVN+WXZOHOeJW+UeDKw1Ptc8spVfDTsuza3ozLii/csFriEoctaLotnjGU84QpcFp0ro1gTT6dpl
	f+hHwiy07f20mKPlZzO90QVM2+RCYvTubg3eQ6+xwU+xbt8qoIQ1MFGw6bAWv5S8puqw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186777-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186777: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=2b6d0eb43439891e641750cd5054b1bc3fb40e72
X-Osstest-Versions-That:
    ovmf=2e7230f1ba65e0ec9e6a3e191cca3a8b04e22ca8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 10:44:57 +0000

flight 186777 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186777/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 2b6d0eb43439891e641750cd5054b1bc3fb40e72
baseline version:
 ovmf                 2e7230f1ba65e0ec9e6a3e191cca3a8b04e22ca8

Last test of basis   186774  2024-07-12 06:44:52 Z    0 days
Testing same since   186777  2024-07-12 08:41:11 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Min M Xu <min.m.xu@intel.com>
  Min Xu <min.m.xu@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   2e7230f1ba..2b6d0eb434  2b6d0eb43439891e641750cd5054b1bc3fb40e72 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 10:46:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 10:46:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757872.1167018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSDnR-0005Dy-7v; Fri, 12 Jul 2024 10:46:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757872.1167018; Fri, 12 Jul 2024 10:46: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 1sSDnR-0005Dr-3C; Fri, 12 Jul 2024 10:46:37 +0000
Received: by outflank-mailman (input) for mailman id 757872;
 Fri, 12 Jul 2024 10: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=cZP0=OM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sSDnP-0005Dj-Cn
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 10:46:35 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0198004e-403c-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 12:46:34 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2eecd2c6432so24047211fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 03:46: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
 d2e1a72fcca58-70b4397f321sm7137131b3a.158.2024.07.12.03.46.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 03:46: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: 0198004e-403c-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720781193; x=1721385993; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TvFkJmFpqrWqiVA0+tVWlgCP7010HtzBhZ7BslVSaq0=;
        b=gSBWoMCcoW+P9zn9MbGDAjZ+7KZ4PpQNVsNiM2QwzdBkTowGLSqmnpJBf4cmIZRcOx
         JaJ3zbVxd/4oMVO00LBioctK4Nve2NHAQOuiROUXUbUT5yWikHkgj8FMABdlgiwhRHfF
         8RfD84T810OnSko5HHK7v5ZV2ZQ8AH58Lv73OCJ98CMKkqCpHv89KXYvFrJGrA36Vms0
         90oZ3/FfTJooRsM4KxJU7nl0CxS48LJeNqD0ZU1f0roM1SHMx0GQJAl6IdoaI2IgWdKh
         X1KEXj+O+zT1rLYWmz0VpDnicw+oZjmQuVJ7IbXo4KXsNlD5vDqa5zF3thVfpJrzF4M0
         5qUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720781194; x=1721385994;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TvFkJmFpqrWqiVA0+tVWlgCP7010HtzBhZ7BslVSaq0=;
        b=OV9sdIKi4svNQuTVar3kv2HrBH6qBdMYj+WqnFR32TAB7RIZ7G3jIEKEcDaMlOVaYg
         Y5OmfhgFhBZfGbIKkEvegkpO/ISM7O+kHhn72Qujz/eEUZk4Lck0RAF8k7wtTakdWF1M
         TfoPxl+2ftRo5p0EpLXzpvYYM2yDKyYaev4VlNtGSImjs5fC0cZVRQCgSrROJ3oJXf+Q
         /0ZSVExsp0dKRdGNIXxTJkbAVs5qhw+8jDcG4vo18GYuX0CQNbv3sbcK50KOl2Ph6jjG
         KZKajfpl9AaeTznZ9t1hsklB8h8haqtYbJmguL4wqPsMvFDTF1nl0ANuRTqKQsYpbdQU
         Woew==
X-Forwarded-Encrypted: i=1; AJvYcCVvSIfZSmo0laoYJ3EwDx2OYZiPjg6p+VYJG7l235aDfJaeai2y79KiW4e46o523AS0REnmLcBE714ebRhwCdJ/63aOUkzcFf0Hn/OKI+w=
X-Gm-Message-State: AOJu0YyDvurxBXPyV466BLfxn5gb/Gh2ztWUiepN5ewLbIIShFyy5sEC
	bqIjch2GTnLcIEnfny229S9vlpp6+/0UbYxQw3VdpFOr3uZa8iSWnagpkexWnw==
X-Google-Smtp-Source: AGHT+IGQSQN+BwPYhJsZewTb88PLXT9jdnzguNVjgF6fh4uuOwtA2zIkRVpDX9rKVhD80cU4vwl17A==
X-Received: by 2002:a2e:978d:0:b0:2ea:ec52:f594 with SMTP id 38308e7fff4ca-2eeb30ff032mr92353121fa.29.1720781193594;
        Fri, 12 Jul 2024 03:46:33 -0700 (PDT)
Message-ID: <1ece7ecb-7f35-4a1c-93f8-ee4191560275@suse.com>
Date: Fri, 12 Jul 2024 12:46:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v3 5/5] xen/public: Introduce PV-IOMMU hypercall
 interface
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <cover.1720703078.git.teddy.astie@vates.tech>
 <f9ae663df38acc0d330b7582dfaa7ac199746aca.1720703078.git.teddy.astie@vates.tech>
 <D2MYC4AEBUQZ.3DNOIV8LEE7F9@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <D2MYC4AEBUQZ.3DNOIV8LEE7F9@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.07.2024 21:20, Alejandro Vallejo wrote:
> On Thu Jul 11, 2024 at 3:04 PM BST, Teddy Astie wrote:
>> --- /dev/null
>> +++ b/xen/common/pv-iommu.c
>> @@ -0,0 +1,328 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +/*
>> + * xen/common/pv_iommu.c
>> + *
>> + * PV-IOMMU hypercall interface.
>> + */
>> +
>> +#include <xen/mm.h>
>> +#include <xen/lib.h>
>> +#include <xen/iommu.h>
>> +#include <xen/sched.h>
>> +#include <xen/pci.h>
>> +#include <xen/guest_access.h>
>> +#include <asm/p2m.h>
>> +#include <asm/event.h>
>> +#include <public/pv-iommu.h>
>> +
>> +#define PVIOMMU_PREFIX "[PV-IOMMU] "
>> +
>> +#define PVIOMMU_MAX_PAGES 256 /* Move to Kconfig ? */
> 
> It probably wants to be a cmdline argument, I think.

For Dom0. For DomU-s it wants to be a guest config setting, I suppose. Then
again I wonder if I understand the purpose of this correctly: The number looks
surprisingly small if it was something the guest may use for arranging its
mappings.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 10:48:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 10:48:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757877.1167026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSDpM-0005qG-H9; Fri, 12 Jul 2024 10:48:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757877.1167026; Fri, 12 Jul 2024 10:48:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSDpM-0005q9-EP; Fri, 12 Jul 2024 10:48:36 +0000
Received: by outflank-mailman (input) for mailman id 757877;
 Fri, 12 Jul 2024 10:48: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=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSDpL-0005q3-Lq
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 10:48:35 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 49478e4b-403c-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 12:48:34 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-58b447c5112so2591394a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 03:48:34 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bc4e819bsm4445410a12.51.2024.07.12.03.48.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 03:48: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: 49478e4b-403c-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720781313; x=1721386113; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j3Y1QM2aDjAbMbU+9PSSN+1sK9TzRRFdE1CnKXuZCwU=;
        b=TzXx48jMJngvqtaEoXO82TWDdmRcDbviyPXT90DTABeMS1ij9JV8YG8SqEVtIZYZ9/
         wJGYtr03pWSBKkP7+gH5smNPw//6qm3JILtos+Md2ht1Vhg7SccM+7KgdfbFdK0NsNqg
         N/cDztxZkqzV6RC9+pTqh4GdCY7DutEBVGPRU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720781313; x=1721386113;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=j3Y1QM2aDjAbMbU+9PSSN+1sK9TzRRFdE1CnKXuZCwU=;
        b=ojAItrotV8uFI8gaY9o9yckZa8Zi2DzurLH2zWoSb+4UIfk6hhIIaLQLMK3oYoJBHA
         D8TZPh3+9rGVbop+BYRkIT06yaY0jkZeBljEKIZ9DlMFr0V13NuGCVoBsZcHYumUyh0G
         LObLJYP6t6zKrDds0YADE7pgtxUYJqy2sV/zOmpLTlZZSAc6s210K8LXM88HTZgCngn/
         0g0xSAbHcJjhp+CU9yfEqRXwYo+BKmMOB81pISc/9w1OutHInlW55BaT5d2gx4wgHfXx
         nBbWGyxalkWIEHzoCVIYXxxfwtDHxrjgTtzaSajcCVfYBJTv0SgVzGOPC6FAHh3/VLeS
         lDwQ==
X-Gm-Message-State: AOJu0YypxVFL6UVFbeGN/M06HhNsJamBAD0+uGbTVKXZa8FPTARPcUS5
	hNo+Y25ISOywJUvqbkfR40zsmvCLbqV0WXfsxWbwDw/NqWsvQNACAqTGdOH9dQ3j2ldTL4AuS5q
	B
X-Google-Smtp-Source: AGHT+IFsK+GY3xofEr9bwn9DrDj8vHf0xZ7YawxDEqfYmH0MNyrIQQ1Jm0x+o4KOBZwXmjxJvpIg8Q==
X-Received: by 2002:a05:6402:2791:b0:58d:115c:f529 with SMTP id 4fb4d7f45d1cf-594ba997550mr9016601a12.7.1720781312942;
        Fri, 12 Jul 2024 03:48: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 15/12] CI: Refresh Ubuntu Xenial container as 16.04-x86_64
Date: Fri, 12 Jul 2024 11:48:29 +0100
Message-Id: <20240712104829.3237296-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Rework the container to be non-root, use heredocs for legibility, and use use
apt-get --no-install-recommends to keep the size down.

Ubuntu Xenial has no ninja-build package, so can't build the QEMU referenced
by Xen 4.16.  Therefore, drop the dependencies too.

This saves ~500M:

  registry.gitlab.com/xen-project/xen/ubuntu    16.04-x86_64           700MB
  registry.gitlab.com/xen-project/xen/ubuntu    xenial                 1.21GB

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>

Runs with the new container:

  4.16: https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7323548805
  4.19: https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7323548805
---
 .../build/ubuntu/16.04-x86_64.dockerfile      | 65 +++++++++++++++++++
 automation/build/ubuntu/xenial.dockerfile     | 46 -------------
 automation/gitlab-ci/build.yaml               | 16 ++---
 automation/scripts/containerize               |  2 +-
 4 files changed, 74 insertions(+), 55 deletions(-)
 create mode 100644 automation/build/ubuntu/16.04-x86_64.dockerfile
 delete mode 100644 automation/build/ubuntu/xenial.dockerfile

diff --git a/automation/build/ubuntu/16.04-x86_64.dockerfile b/automation/build/ubuntu/16.04-x86_64.dockerfile
new file mode 100644
index 000000000000..11e878050b83
--- /dev/null
+++ b/automation/build/ubuntu/16.04-x86_64.dockerfile
@@ -0,0 +1,65 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 ubuntu:16.04
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        clang
+        flex
+        python3-minimal
+
+        # Tools (general)
+        ca-certificates
+        git-core
+        gzip
+        patch
+        perl
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-dev
+        libzstd-dev
+        liblzo2-dev
+        liblzma-dev
+        zlib1g-dev
+        # libacpi
+        acpica-tools
+        # libxl
+        uuid-dev
+        libyajl-dev
+        # RomBIOS
+        bcc
+        bin86
+        # xentop
+        libncurses5-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+
+        # Stubdom download/extract
+        bzip2
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/ubuntu/xenial.dockerfile b/automation/build/ubuntu/xenial.dockerfile
deleted file mode 100644
index aa8f560286b6..000000000000
--- a/automation/build/ubuntu/xenial.dockerfile
+++ /dev/null
@@ -1,46 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 ubuntu:16.04
-LABEL maintainer.name="The Xen Project " \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python-dev \
-        python3-dev \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        markdown \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 2216392a8414..a2e6815f30b3 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -588,25 +588,25 @@ fedora-gcc-debug:
   variables:
     CONTAINER: fedora:29
 
-ubuntu-xenial-clang:
+ubuntu-16.04-x86_64-clang:
   extends: .clang-x86-64-build
   variables:
-    CONTAINER: ubuntu:xenial
+    CONTAINER: ubuntu:16.04-x86_64
 
-ubuntu-xenial-clang-debug:
+ubuntu-16.04-x86_64-clang-debug:
   extends: .clang-x86-64-build-debug
   variables:
-    CONTAINER: ubuntu:xenial
+    CONTAINER: ubuntu:16.04-x86_64
 
-ubuntu-xenial-gcc:
+ubuntu-16.04-x86_64-gcc:
   extends: .gcc-x86-64-build
   variables:
-    CONTAINER: ubuntu:xenial
+    CONTAINER: ubuntu:16.04-x86_64
 
-ubuntu-xenial-gcc-debug:
+ubuntu-16.04-x86_64-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
-    CONTAINER: ubuntu:xenial
+    CONTAINER: ubuntu:16.04-x86_64
 
 ubuntu-bionic-clang:
   extends: .clang-x86-64-build
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 0ff53b6fe4e1..5fc41c36a27c 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -52,9 +52,9 @@ case "_${CONTAINER}" in
     _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
     _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
     _bionic) CONTAINER="${BASE}/ubuntu:bionic" ;;
-    _xenial) CONTAINER="${BASE}/ubuntu:xenial" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
+    _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;
 
     *) guess_container ;;
 esac
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 10:48:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 10:48:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757878.1167036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSDpb-00069q-OM; Fri, 12 Jul 2024 10:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757878.1167036; Fri, 12 Jul 2024 10: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 1sSDpb-00069j-Li; Fri, 12 Jul 2024 10:48:51 +0000
Received: by outflank-mailman (input) for mailman id 757878;
 Fri, 12 Jul 2024 10: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=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSDpb-00069W-4J
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 10:48: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 51fe03b8-403c-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 12:48:49 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a77e7a6cfa7so237708266b.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 03:48:49 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6bd010sm336551666b.18.2024.07.12.03.48.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 03:48: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: 51fe03b8-403c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720781328; x=1721386128; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PZsyhlKpPKwJu0K89EuDjhZnuB3yQi1RNCGVeTYU+Wk=;
        b=fgcQi2ph05D19wLseN4UGtkoN3Qb1NIKZPlFO0scVa+0y3x6MvjXo43/k6HcQCsxni
         WzUi8K0GgmtG4dTGk140HbJqGJYxdYpqfLQE73ukI30KVdwMq7seGXvzDPwfG/qounE+
         dsKSNWbyfeppY+BEJkQSkSRl3QqrJNtXNGIxc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720781328; x=1721386128;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=PZsyhlKpPKwJu0K89EuDjhZnuB3yQi1RNCGVeTYU+Wk=;
        b=K3gjQyFGgmcqy+83f6XxeASx+jN2h6s9v82JLb7+MzAi1nV1rzt3MomOXnhsg1o5hQ
         8JNFuG84Wja7Pcsvlrv0v8vDpvALxdj/Krb6bxWrbToGdp+eBWKjr7z0lQ1KFF943/D/
         Fs5hkXACO3FqOgEgBQ+/PSpTPVomylcyia0/K1gkKNA6K3wE7VwTXgGn4lnG/iwg8BiN
         vJv2yXy/aRTdMpkG/msAo4HE7VqjNWs+GBGQrwRc1l3GLvZxrqaq1nhzsZGeLSwx/+Tz
         jBVToV+fBKb5UOgXB9vAGzAJJ9nBuJoKp+qJA/oW2UUcDq6AuS9YKJj6rQ1niCG3Vyun
         gYIQ==
X-Gm-Message-State: AOJu0YxLxnN+PTtxopl6g3S52GiXZfJmj5lO7um17SH8uj6N5HMX1bBu
	LiORJOqD7iyWrXkK5DSKzgpHLvleKh/9sZkF2PJCUoHpJ9QxCFBpDEGV4dQLPM1OF2FKgRHcCdz
	R
X-Google-Smtp-Source: AGHT+IE84WOvQj/BbutiRZNfCyOMp5XwqX7/KWYvuUB7Z1IRk7FsrRzQ6AHXAkvFvcVHfEOY1VPtPA==
X-Received: by 2002:a17:906:c110:b0:a72:b055:3de0 with SMTP id a640c23a62f3a-a780b68a358mr973345566b.6.1720781328144;
        Fri, 12 Jul 2024 03:48: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 16/12] CI: Refresh Ubuntu Bionic container as 18.04-x86_64
Date: Fri, 12 Jul 2024 11:48:42 +0100
Message-Id: <20240712104842.3237603-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

As with 16.04 (Focal), except that ninja-build is available so QEMU can be
built.

This halves the size of the container:

  registry.gitlab.com/xen-project/xen/ubuntu    18.04-x86_64           860MB
  registry.gitlab.com/xen-project/xen/ubuntu    bionic                 1.44GB

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>

Runs with the new container:

  4.16: https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7323548809
  4.19: https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7323516970
---
 .../build/ubuntu/18.04-x86_64.dockerfile      | 72 +++++++++++++++++++
 automation/build/ubuntu/bionic.dockerfile     | 48 -------------
 automation/gitlab-ci/build.yaml               | 16 ++---
 automation/scripts/containerize               |  2 +-
 4 files changed, 81 insertions(+), 57 deletions(-)
 create mode 100644 automation/build/ubuntu/18.04-x86_64.dockerfile
 delete mode 100644 automation/build/ubuntu/bionic.dockerfile

diff --git a/automation/build/ubuntu/18.04-x86_64.dockerfile b/automation/build/ubuntu/18.04-x86_64.dockerfile
new file mode 100644
index 000000000000..24047e8f6ab2
--- /dev/null
+++ b/automation/build/ubuntu/18.04-x86_64.dockerfile
@@ -0,0 +1,72 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 ubuntu:18.04
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        clang
+        flex
+        python3-minimal
+
+        # Tools (general)
+        ca-certificates
+        git-core
+        gzip
+        patch
+        perl
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-dev
+        libzstd-dev
+        liblzo2-dev
+        liblzma-dev
+        zlib1g-dev
+        # libacpi
+        acpica-tools
+        # libxl
+        uuid-dev
+        libyajl-dev
+        # RomBIOS
+        bcc
+        bin86
+        # xentop
+        libncurses5-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+
+        # Stubdom download/extract
+        bzip2
+
+        # Qemu build
+        libglib2.0-dev
+        libpixman-1-dev
+        meson
+        ninja-build
+        python3-packaging
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/ubuntu/bionic.dockerfile b/automation/build/ubuntu/bionic.dockerfile
deleted file mode 100644
index c1effc725e17..000000000000
--- a/automation/build/ubuntu/bionic.dockerfile
+++ /dev/null
@@ -1,48 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 ubuntu:18.04
-LABEL maintainer.name="The Xen Project " \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python-dev \
-        python3-dev \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        markdown \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        # QEMU
-        ninja-build \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index a2e6815f30b3..c6f6a1ced7dc 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -608,25 +608,25 @@ ubuntu-16.04-x86_64-gcc-debug:
   variables:
     CONTAINER: ubuntu:16.04-x86_64
 
-ubuntu-bionic-clang:
+ubuntu-18.04-x86_64-clang:
   extends: .clang-x86-64-build
   variables:
-    CONTAINER: ubuntu:bionic
+    CONTAINER: ubuntu:18.04-x86_64
 
-ubuntu-bionic-clang-debug:
+ubuntu-18.04-x86_64-clang-debug:
   extends: .clang-x86-64-build-debug
   variables:
-    CONTAINER: ubuntu:bionic
+    CONTAINER: ubuntu:18.04-x86_64
 
-ubuntu-bionic-gcc:
+ubuntu-18.04-x86_64-gcc:
   extends: .gcc-x86-64-build
   variables:
-    CONTAINER: ubuntu:bionic
+    CONTAINER: ubuntu:18.04-x86_64
 
-ubuntu-bionic-gcc-debug:
+ubuntu-18.04-x86_64-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
-    CONTAINER: ubuntu:bionic
+    CONTAINER: ubuntu:18.04-x86_64
 
 ubuntu-focal-gcc:
   extends: .gcc-x86-64-build
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 5fc41c36a27c..d6132b4d22af 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -51,10 +51,10 @@ case "_${CONTAINER}" in
     _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;;
     _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
     _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
-    _bionic) CONTAINER="${BASE}/ubuntu:bionic" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
     _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;
+    _bionic) CONTAINER="${BASE}/ubuntu:18.04-x86_64" ;;
 
     *) guess_container ;;
 esac
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 10:49:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 10:49:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757880.1167047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSDpm-0006Zo-0O; Fri, 12 Jul 2024 10:49:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757880.1167047; Fri, 12 Jul 2024 10:49:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSDpl-0006Ze-TC; Fri, 12 Jul 2024 10:49:01 +0000
Received: by outflank-mailman (input) for mailman id 757880;
 Fri, 12 Jul 2024 10:49: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=cZP0=OM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sSDpl-00069W-1o
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 10:49:01 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5812448b-403c-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 12:48:59 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2eea8ea8bb0so34812631fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 03: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
 d9443c01a7336-1fbb6a0fc2bsm64353615ad.25.2024.07.12.03.48.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 03: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: 5812448b-403c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720781339; x=1721386139; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XN4Wz+k5k7/GbzrZxUYKOsFWHrp0pMVxO4EWxKRi3Xc=;
        b=N0GX/9DzX0Zd34cKHkq0gBEtWb+AxxAJ9+WwyllDBk17W6IhwvI3nkFbB7tBW8o+75
         8AeftasU9k9G7edKPEDN5qXvI5iKkY8KbCmSZp+ZCCsPwtS3gKW6TueYSoZf0RAa0X5U
         iYYiALRwsc/JgVKZe+TcMuB4ElJDphdYITXR1FFlJAkozAxjdJyaRp2HhoZHA9A3CEbj
         50OO0GseU0KibuxnbARa1KdgVKZKUDijQ5zmpMVEh6U/dosXWmtOEEC/mDM7YSAQOr2M
         i7MiMIwd46tJlmF+GSHC/fRP0fcO7RJ5LSMpHZDOBc3ibiiMX3ms6f4klF1gvtEngsgT
         Upsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720781339; x=1721386139;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XN4Wz+k5k7/GbzrZxUYKOsFWHrp0pMVxO4EWxKRi3Xc=;
        b=oqH66NZO5+Rsxlt1N5OOrsezZwvE+IoI0OaQUr45CxISaMSZiHIcc50URzwlj7af7b
         hNySbV3z9uZn4SqXJk/SOXj0erIjJL+3RxQqgJUhjDKJ/vrwWd16wLg2c4yG7yOJhgua
         5U44XfuD6WlyTm6ziX+m2WVz5w4WlVVTK76VE6oU8V1Ae91V92cG+OJ8AijC1muIsAzC
         FGv/9krxdEuF1JSWEPGHMATtuDzv3h+Aw758NBpB/jJ0HHFpWt/tkGfmTel/Daswtn8I
         75WKsnrlEvDpST6XaR93755ALfEuvl5fdXU1xl11+XgBCTZaZHYuDYsTsbSoqhdtn4jp
         nVGw==
X-Gm-Message-State: AOJu0Ywuc0jE4NTETgEK2VHVFvarcUePV+X2nhGq2CFeuzU2ViNhAP3D
	/CB9mED9C8apet2ktbI7QvgPcgydL3yCXfPWiNbJNPL4CVhWM+t98OSmD3r1p4EoWu7adfffDdc
	=
X-Google-Smtp-Source: AGHT+IHWWMYoCJ6sAArcJ+WJMQuTHn9mUTNGuLiUIjBZ0dXp7uWilfYOH0Q1A8+pEbZDsXCiooD6GQ==
X-Received: by 2002:a2e:7a0e:0:b0:2ec:4093:ec7 with SMTP id 38308e7fff4ca-2eeb31026aamr88080731fa.30.1720781338760;
        Fri, 12 Jul 2024 03:48:58 -0700 (PDT)
Message-ID: <a61969bc-0c2d-4fef-a139-57ce2dbdeed9@suse.com>
Date: Fri, 12 Jul 2024 12:48:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
To: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr>
 <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
 <987491818.2978050.1720775332531.JavaMail.zimbra@inria.fr>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <987491818.2978050.1720775332531.JavaMail.zimbra@inria.fr>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.07.2024 11:08, Fonyuy-Asheri Caleb wrote:
>>> I was able to locate the failure point to the file
>>> xen/arch/x86/domctl.c  with the following check.
>>>
>>> if( evc->size<PV_XSAVE_HDR_SIZE||
>>> evc->size>PV_XSAVE_SIZE(xfeature_mask) )
>>> gotovcpuextstate_out;
>>
>> It is certainly more complicated than that.
>>
>> What that's saying is that Xen doesn't think that the size of the blob
>> matches expectations.  That said - I'm in the middle of rewriting this
>> logic because lots of it is subtly wrong.
> 
> 
> Following from the check above, I have this other check in the same code block. 
> 
> if ( evc->size == PV_XSAVE_HDR_SIZE )
>     ; /* Nothing to restore. */
> else if ( evc->size < PV_XSAVE_HDR_SIZE + XSTATE_AREA_MIN_SIZE )
>     ret = -EINVAL; /* Can't be legitimate data. */
> else if ( xsave_area_compressed(_xsave_area) )
>     ret = -EOPNOTSUPP; /* Don't support compressed data. */
> else if ( evc->size != PV_XSAVE_SIZE(_xcr0_accum) )
>     ret = -EINVAL; /* Not legitimate data. */
> 
> 
> What do you consider here as legitimate / non-legitimate data ? 

In the first case (first "else if"): Simply too small. In the last case:
Size not matching accumulated features.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 10:49:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 10:49:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757881.1167057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSDpn-0006qT-BK; Fri, 12 Jul 2024 10:49:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757881.1167057; Fri, 12 Jul 2024 10: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 1sSDpn-0006qI-7I; Fri, 12 Jul 2024 10:49:03 +0000
Received: by outflank-mailman (input) for mailman id 757881;
 Fri, 12 Jul 2024 10: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=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSDpm-00069W-25
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 10:49:02 +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 5895b46f-403c-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 12:49:00 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a77c080b521so235972566b.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 03:49:00 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a871ea8sm334048666b.193.2024.07.12.03.48.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 03: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: 5895b46f-403c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720781339; x=1721386139; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=p7axh6EnJqklc7K7yGfILdIpHtDv1zFetY1sm/s+FSk=;
        b=v+qlJPUTJ+vNkuDGcnkBPMD6JISn3zfUSJ1FKjDtFL2rFlB8H2Trp9fLAdrH6syIfC
         3tFp9ZM7b0OUvvd0+0U4AOoZw9HceQIloRZplMJcxWv0cFGo5Op2/LYkIucHKBVDOyQA
         RGuGYWDWNEbhvahaWB/eZgvjwWBe/HGbEY0Yc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720781339; x=1721386139;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=p7axh6EnJqklc7K7yGfILdIpHtDv1zFetY1sm/s+FSk=;
        b=rsCDnceKHe07v0Ejjoa/TuY2vnekLbDaIG7ra5DaEh5TKIQ1mNPE6JRY+P+MZLNMdj
         3qqXBoG6i6Wf8KUWjquGGD1rGQgSYCOQdpsEmpNZhcnPVj8GDvlQQwTOfA5g1PsrGjcJ
         URwk56zJEMYS+IYpRzjFc/zILS46/dzRtMFfdKLxxgQnhEqFUTG0Roo/nAv4RbDaPJvk
         ltB8ermXlbWBi3aNIPYkUkgZtfGm+Jy2aqKj/FgGM++aMgl+Ja3MS2aNEnOV6z+xpE/B
         +oBWR0ODhUTKnB4ttNCqQUHj424KEaay6vrwK3/9miL2Cdicc00+P5K0qqeHC6adKel2
         jzoA==
X-Gm-Message-State: AOJu0Yyd+JKuL7SWJ5lfpb/88BGK6Kf3XchBb0Y2sCRQ6F0g2Lbo/M8b
	Wgd6isRbaXsFfDcZQp+9FIglZYcuyYxHtV9uiwycGHuyqruZizhWo/NIwtzuxNPZr7OgZDsDkZK
	M
X-Google-Smtp-Source: AGHT+IEH9mI7bPeqY9CpchVq/W93icxxkJeR6Th2gPdAA3bxihFGluLeVetUxVaoPxCPEBsDpE8kNg==
X-Received: by 2002:a17:906:2bcf:b0:a6f:6803:57ef with SMTP id a640c23a62f3a-a780b6b1b8amr705674366b.27.1720781339321;
        Fri, 12 Jul 2024 03:48: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 17/12] CI: Refresh Ubuntu Focal container as 20.04-x86_64
Date: Fri, 12 Jul 2024 11:48:55 +0100
Message-Id: <20240712104855.3237883-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Exactly as per 18.04 (Bionic).  This saves ~500M:

  registry.gitlab.com/xen-project/xen/ubuntu    20.04-x86_64           1.06GB
  registry.gitlab.com/xen-project/xen/ubuntu    focal                  1.57GB

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>

Runs with the new container:

  4.16: https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7323548811
  4.19: https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7323517116
---
 .../build/ubuntu/20.04-x86_64.dockerfile      | 72 +++++++++++++++++++
 automation/build/ubuntu/focal.dockerfile      | 49 -------------
 automation/gitlab-ci/build.yaml               | 16 ++---
 automation/scripts/containerize               |  2 +-
 4 files changed, 81 insertions(+), 58 deletions(-)
 create mode 100644 automation/build/ubuntu/20.04-x86_64.dockerfile
 delete mode 100644 automation/build/ubuntu/focal.dockerfile

diff --git a/automation/build/ubuntu/20.04-x86_64.dockerfile b/automation/build/ubuntu/20.04-x86_64.dockerfile
new file mode 100644
index 000000000000..39fb297519ee
--- /dev/null
+++ b/automation/build/ubuntu/20.04-x86_64.dockerfile
@@ -0,0 +1,72 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 ubuntu:20.04
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        clang
+        flex
+        python3-minimal
+
+        # Tools (general)
+        ca-certificates
+        git-core
+        gzip
+        patch
+        perl
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-dev
+        libzstd-dev
+        liblzo2-dev
+        liblzma-dev
+        zlib1g-dev
+        # libacpi
+        acpica-tools
+        # libxl
+        uuid-dev
+        libyajl-dev
+        # RomBIOS
+        bcc
+        bin86
+        # xentop
+        libncurses5-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+
+        # Stubdom download/extract
+        bzip2
+
+        # Qemu build
+        libglib2.0-dev
+        libpixman-1-dev
+        meson
+        ninja-build
+        python3-packaging
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/ubuntu/focal.dockerfile b/automation/build/ubuntu/focal.dockerfile
deleted file mode 100644
index b49e53d185b4..000000000000
--- a/automation/build/ubuntu/focal.dockerfile
+++ /dev/null
@@ -1,49 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 ubuntu:20.04
-LABEL maintainer.name="The Xen Project " \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python3-dev \
-        python3-setuptools \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        # libsystemd-dev for Xen < 4.19
-        libsystemd-dev \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        # QEMU
-        ninja-build \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index c6f6a1ced7dc..6a2d796959a1 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -628,25 +628,25 @@ ubuntu-18.04-x86_64-gcc-debug:
   variables:
     CONTAINER: ubuntu:18.04-x86_64
 
-ubuntu-focal-gcc:
+ubuntu-20.04-x86_64-gcc:
   extends: .gcc-x86-64-build
   variables:
-    CONTAINER: ubuntu:focal
+    CONTAINER: ubuntu:20.04-x86_64
 
-ubuntu-focal-gcc-debug:
+ubuntu-20.04-x86_64-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
-    CONTAINER: ubuntu:focal
+    CONTAINER: ubuntu:20.04-x86_64
 
-ubuntu-focal-clang:
+ubuntu-20.04-x86_64-clang:
   extends: .clang-x86-64-build
   variables:
-    CONTAINER: ubuntu:focal
+    CONTAINER: ubuntu:20.04-x86_64
 
-ubuntu-focal-clang-debug:
+ubuntu-20.04-x86_64-clang-debug:
   extends: .clang-x86-64-build-debug
   variables:
-    CONTAINER: ubuntu:focal
+    CONTAINER: ubuntu:20.04-x86_64
 
 opensuse-leap-15.6-clang:
   extends: .clang-x86-64-build
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index d6132b4d22af..f27932dd4561 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -40,7 +40,6 @@ case "_${CONTAINER}" in
     _archlinux|_arch) CONTAINER="${BASE}/archlinux:current" ;;
     _centos7) CONTAINER="${BASE}/centos:7" ;;
     _fedora) CONTAINER="${BASE}/fedora:29";;
-    _focal) CONTAINER="${BASE}/ubuntu:focal" ;;
     _bullseye-ppc64le) CONTAINER="${BASE}/debian:11-ppc64le" ;;
     _bookworm-ppc64le) CONTAINER="${BASE}/debian:12-ppc64le" ;;
     _bullseye-riscv64) CONTAINER="${BASE}/debian:11-riscv64" ;;
@@ -55,6 +54,7 @@ case "_${CONTAINER}" in
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
     _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;
     _bionic) CONTAINER="${BASE}/ubuntu:18.04-x86_64" ;;
+    _focal)  CONTAINER="${BASE}/ubuntu:20.04-x86_64" ;;
 
     *) guess_container ;;
 esac
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 10:49:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 10:49:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757883.1167067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSDpy-0007NQ-J3; Fri, 12 Jul 2024 10:49:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757883.1167067; Fri, 12 Jul 2024 10: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 1sSDpy-0007NH-G7; Fri, 12 Jul 2024 10:49:14 +0000
Received: by outflank-mailman (input) for mailman id 757883;
 Fri, 12 Jul 2024 10:49:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSDpw-0007Cp-Fc
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 10:49:12 +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 5f6a0121-403c-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 12:49:11 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5957040e32aso1175131a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 03:49:11 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bc4e8255sm4410296a12.48.2024.07.12.03.49.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 03:49: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: 5f6a0121-403c-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720781351; x=1721386151; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RUJT2BIdasxYaH8JNljHtksephXciRwgCfX1hQqsIME=;
        b=DndSfh7EThB2TIJPRP1vJwjWbN47zsnhOGpF3OuMsrt5kMe57zyi6ASVo8PMX7IFH7
         JDYS9YJqCQNwKE3cmKqpNejGE7AwfluLz/UFeeHmbOI/Lu3eAjbZyre/++fQXYuVQ8ve
         OW+AwRnsDp60MzGJp/NQclYRxlCjs4cXq8LCw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720781351; x=1721386151;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=RUJT2BIdasxYaH8JNljHtksephXciRwgCfX1hQqsIME=;
        b=IWY2el9oqNTs3Ck3UEOvoWrXCjDXJYko1X/3ek0JH2V1nCoiZm3PgLZU0F7FrQ2kBF
         dpd1PJwZGDrtBC+cpT7VhYaGkxfQgHSNAo2HnorWPI9MuARTwu/HYQe0IvohThbUyBl2
         Up/LGTU/J0eeJwnPHCri7W9D7M4buqbIcvY1vGAi+gUwzwwamCGCVg6wJORGHc0uZJfu
         PkIp23sjH1h0tFmrxIDy+LfyfCazzHhCOhOCXZuPd41LBTsN2vy+qiTDwPbDe4UkM9tf
         LERQPEnsW/o+OmGJXTgu8Ps8Rfu3yuquT8fsVT8XKMfSk/uS+a8dTAp6u2ZGrdmxDlum
         A+Wg==
X-Gm-Message-State: AOJu0YyKscxuiEZsJUxAmwexlFPq/AAJtvKlWOZv21Tbn9+YPcH7/Q+Q
	Ls7hlNAxnI/V12Y7bF7twM5fHVJWi03OYzVNq95W7uBXVoGcOuQFeQmdxPXnKnDe4JFbMIvE2RQ
	p
X-Google-Smtp-Source: AGHT+IH0NzEy0QCq3yDjqDKTMnR6Dpc6m6QnBWJwcFrqDQtiImhLCTRfhnkGKZihr5Uw3FeOhB29CA==
X-Received: by 2002:aa7:ce1a:0:b0:57c:5f77:1136 with SMTP id 4fb4d7f45d1cf-594bb7745f7mr8979626a12.24.1720781350720;
        Fri, 12 Jul 2024 03:49: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 18/12] CI: Add Ubuntu 22.04 (Jammy) and 24.04 (Noble) testing
Date: Fri, 12 Jul 2024 11:49:07 +0100
Message-Id: <20240712104907.3238026-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The containers are exactly as per 20.04 (Focal).  However, this now brings us
to 5 releases * 4 build jobs worth of Ubuntu testing, which is overkill.

The oldest and newest toolchains are the most likely to find problems with new
code, so reduce the middle 3 releases (18/20/22) to just a single smoke test
each.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>

Pipeline run showing all Ubuntu testing on staging:

  https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1371106799

There are 11 jobs in total.
---
 .../build/ubuntu/22.04-x86_64.dockerfile      | 72 +++++++++++++++++++
 .../build/ubuntu/24.04-x86_64.dockerfile      | 72 +++++++++++++++++++
 automation/gitlab-ci/build.yaml               | 39 +++++-----
 automation/scripts/containerize               |  2 +
 4 files changed, 163 insertions(+), 22 deletions(-)
 create mode 100644 automation/build/ubuntu/22.04-x86_64.dockerfile
 create mode 100644 automation/build/ubuntu/24.04-x86_64.dockerfile

diff --git a/automation/build/ubuntu/22.04-x86_64.dockerfile b/automation/build/ubuntu/22.04-x86_64.dockerfile
new file mode 100644
index 000000000000..230903f624d9
--- /dev/null
+++ b/automation/build/ubuntu/22.04-x86_64.dockerfile
@@ -0,0 +1,72 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 ubuntu:22.04
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        clang
+        flex
+        python3-minimal
+
+        # Tools (general)
+        ca-certificates
+        git-core
+        gzip
+        patch
+        perl
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-dev
+        libzstd-dev
+        liblzo2-dev
+        liblzma-dev
+        zlib1g-dev
+        # libacpi
+        acpica-tools
+        # libxl
+        uuid-dev
+        libyajl-dev
+        # RomBIOS
+        bcc
+        bin86
+        # xentop
+        libncurses5-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+
+        # Stubdom download/extract
+        bzip2
+
+        # Qemu build
+        libglib2.0-dev
+        libpixman-1-dev
+        meson
+        ninja-build
+        python3-packaging
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/ubuntu/24.04-x86_64.dockerfile b/automation/build/ubuntu/24.04-x86_64.dockerfile
new file mode 100644
index 000000000000..277f92facfd9
--- /dev/null
+++ b/automation/build/ubuntu/24.04-x86_64.dockerfile
@@ -0,0 +1,72 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 ubuntu:24.04
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get -y update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        clang
+        flex
+        python3-minimal
+
+        # Tools (general)
+        ca-certificates
+        git-core
+        gzip
+        patch
+        perl
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-dev
+        libzstd-dev
+        liblzo2-dev
+        liblzma-dev
+        zlib1g-dev
+        # libacpi
+        acpica-tools
+        # libxl
+        uuid-dev
+        libyajl-dev
+        # RomBIOS
+        bcc
+        bin86
+        # xentop
+        libncurses5-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+
+        # Stubdom download/extract
+        bzip2
+
+        # Qemu build
+        libglib2.0-dev
+        libpixman-1-dev
+        meson
+        ninja-build
+        python3-packaging
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists/*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 6a2d796959a1..379cf17d65cc 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -608,45 +608,40 @@ ubuntu-16.04-x86_64-gcc-debug:
   variables:
     CONTAINER: ubuntu:16.04-x86_64
 
-ubuntu-18.04-x86_64-clang:
-  extends: .clang-x86-64-build
-  variables:
-    CONTAINER: ubuntu:18.04-x86_64
-
-ubuntu-18.04-x86_64-clang-debug:
-  extends: .clang-x86-64-build-debug
-  variables:
-    CONTAINER: ubuntu:18.04-x86_64
-
 ubuntu-18.04-x86_64-gcc:
   extends: .gcc-x86-64-build
   variables:
     CONTAINER: ubuntu:18.04-x86_64
 
-ubuntu-18.04-x86_64-gcc-debug:
-  extends: .gcc-x86-64-build-debug
-  variables:
-    CONTAINER: ubuntu:18.04-x86_64
-
 ubuntu-20.04-x86_64-gcc:
   extends: .gcc-x86-64-build
   variables:
     CONTAINER: ubuntu:20.04-x86_64
 
-ubuntu-20.04-x86_64-gcc-debug:
-  extends: .gcc-x86-64-build-debug
+ubuntu-22.04-x86_64-gcc:
+  extends: .gcc-x86-64-build
   variables:
-    CONTAINER: ubuntu:20.04-x86_64
+    CONTAINER: ubuntu:22.04-x86_64
 
-ubuntu-20.04-x86_64-clang:
+ubuntu-24.04-x86_64-clang:
   extends: .clang-x86-64-build
   variables:
-    CONTAINER: ubuntu:20.04-x86_64
+    CONTAINER: ubuntu:24.04-x86_64
 
-ubuntu-20.04-x86_64-clang-debug:
+ubuntu-24.04-x86_64-clang-debug:
   extends: .clang-x86-64-build-debug
   variables:
-    CONTAINER: ubuntu:20.04-x86_64
+    CONTAINER: ubuntu:24.04-x86_64
+
+ubuntu-24.04-x86_64-gcc:
+  extends: .gcc-x86-64-build
+  variables:
+    CONTAINER: ubuntu:24.04-x86_64
+
+ubuntu-24.04-x86_64-gcc-debug:
+  extends: .gcc-x86-64-build-debug
+  variables:
+    CONTAINER: ubuntu:24.04-x86_64
 
 opensuse-leap-15.6-clang:
   extends: .clang-x86-64-build
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index f27932dd4561..9844133aff63 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -55,6 +55,8 @@ case "_${CONTAINER}" in
     _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;
     _bionic) CONTAINER="${BASE}/ubuntu:18.04-x86_64" ;;
     _focal)  CONTAINER="${BASE}/ubuntu:20.04-x86_64" ;;
+    _jammy)  CONTAINER="${BASE}/ubuntu:22.04-x86_64" ;;
+    _noble)  CONTAINER="${BASE}/ubuntu:24.04-x86_64" ;;
 
     *) guess_container ;;
 esac

base-commit: d46e4264c3fa68974fbb9b1bce514ea44af6d945
prerequisite-patch-id: b6875ad0bbd279067fdef31b9adf67e2a5abdf8a
prerequisite-patch-id: 5d4a01a02e7694939cdbf620a2e7509fee49dd92
prerequisite-patch-id: 65ecea93b1a320219deb8670264c3d464e00384e
prerequisite-patch-id: eb7042acce82d2bc324f8560fed3ffd57025d248
prerequisite-patch-id: 91c6663df2cfa139497e2d8b4dc17f1697f0c9f6
prerequisite-patch-id: 84c3345d580461986a3a9560735279baff21234f
prerequisite-patch-id: 5d732fc5f039fb25f7177279f63019f59acae4b1
prerequisite-patch-id: dd5006da276abc0e4da1ecb2c84d699c5bd98124
prerequisite-patch-id: 7e816655cd1066b42be5fa57a832c777c9867fc9
prerequisite-patch-id: fc25cefbee4cb69703df5c1f5b3eb317f03952af
prerequisite-patch-id: 531b3db898f54c05bff5fbcb69e0f7f62811c744
prerequisite-patch-id: ddb51b78aeaa2a6efe8035c39a128810c01aa822
prerequisite-patch-id: b4894b8120682429e1a74369c6b36bbbdc09d749
prerequisite-patch-id: c002530cb86a08b38980779a3d06cf491fdb9fae
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 11:02:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 11:02:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757904.1167077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSE2z-0002Xa-LQ; Fri, 12 Jul 2024 11:02:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757904.1167077; Fri, 12 Jul 2024 11:02: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 1sSE2z-0002XT-It; Fri, 12 Jul 2024 11:02:41 +0000
Received: by outflank-mailman (input) for mailman id 757904;
 Fri, 12 Jul 2024 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=s5ch=OM=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1sSE2y-0002XL-KT
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 11:02:40 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40f7e0c3-403e-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 13:02:39 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-52ea7bdde68so2094738e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 04:02:39 -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-52eb9077a9asm1235370e87.297.2024.07.12.04.02.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 04:02: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: 40f7e0c3-403e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720782159; x=1721386959; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=87DPAAbyBmLAKm4ynt726DGnnWSE+Fbpy4sTffFQKUw=;
        b=k3SkBRaWMMpRjFg3Tk7cTcc4zE2R44wOL5xwPBVbqNXNvYRf5CPyAUkXOJbxeWd8QC
         VgTmttJZqpjfKoo9a37VYARwxxv1FSsonY9pVOzmC/bxa9mSnbPyY9pt7hd+sHBfamWY
         NQuQUIUPNzh/i9uiM8f1qnywkZf1/zYcY9vVdPZPTAi3Z5iHimehpBWSHRW2IU1SB6Sv
         awFuxKMl6us7sip1pcRiMD6xh6kZGG2JdUsv5X9CxqkRFn8Dw33Wl91TULXRdZIZe3UM
         b0gf8bjuwq0Hr/8DyjnmuuomiP5snd1ZKxAObaPW++rJWt/mIvG3GaqVLV+w+G2f4gkB
         NwtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720782159; x=1721386959;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=87DPAAbyBmLAKm4ynt726DGnnWSE+Fbpy4sTffFQKUw=;
        b=Kh3/SJ0yTlKCV00ga4iatuOrwRNbEKVj0/fAcdAk+PXUm0Ta2aVj2nCtzWta7TViFN
         mpPnQrWb6IlXcpwgYDEBG3MLFXPld92bdIT0DBUkftUnN5Jk8RSuNtmWxsLihIAi6CXb
         E3lMShnpAjP8NBog9ql3fmiQCYFLGQVu1+Z8eicn0oDcR4SWmjMV9wJY2x1NvryWEwU0
         syTXI5FHKcysb3hGJhlR0wHZ73DlCM5Bvbv3vnQvC49wxehpwIkNFNXdoj74FdvqMy2L
         tM6DIwPLpXPJoiQGDUyW5WJ3RLdXxKzgH9HkQ3YocW+O5Ij/CN1POpiknLX+8ED7dpK4
         lxAg==
X-Forwarded-Encrypted: i=1; AJvYcCUPa1LqD3+sx1PVuItTgFWD6ryNQPqL5hYAb+WHSCus94dsqNAWdUmqHiFl9IFg1XhPwpZ8vc7rf/54PNottEnGhMgKHi208FHAmvHOcf0=
X-Gm-Message-State: AOJu0Yw6gEppBUeAmgYFuw68vzmefAW34FlydvaNfuGT9NCEt2At35EN
	4DM2Mh22m77gHdNYD0AfHJD6UW3TKOCZoOC93AebCCsDpj/ted/e
X-Google-Smtp-Source: AGHT+IHoNb9jo3zc5r2b5ZN1+E6PEQXJq2jaR175xDg5jGcIkz9qmG3zee/NjIb1VzoUbFJp/vxmXw==
X-Received: by 2002:ac2:5f99:0:b0:52c:86de:cb61 with SMTP id 2adb3069b0e04-52eb9990fedmr6120031e87.10.1720782158364;
        Fri, 12 Jul 2024 04:02:38 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org
Cc: sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	alex.bennee@linaro.org,
	peter.maydell@linaro.org,
	richard.henderson@linaro.org,
	edgar.iglesias@amd.com,
	Anthony PERARD <anthony.perard@vates.tech>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	xen-devel@lists.xenproject.org
Subject: [PULL v1 3/3] xen: mapcache: Fix unmapping of first entries in buckets
Date: Fri, 12 Jul 2024 13:02:30 +0200
Message-ID: <20240712110230.4098056-4-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240712110230.4098056-1-edgar.iglesias@gmail.com>
References: <20240712110230.4098056-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

This fixes the clobbering of the entry->next pointer when
unmapping the first entry in a bucket of a mapcache.

Fixes: 123acd816d ("xen: mapcache: Unmap first entries in buckets")
Reported-by: Anthony PERARD <anthony.perard@vates.tech>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 hw/xen/xen-mapcache.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 5f23b0adbe..18ba7b1d8f 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -597,7 +597,17 @@ static void xen_invalidate_map_cache_entry_unlocked(MapCache *mc,
         pentry->next = entry->next;
         g_free(entry);
     } else {
-        memset(entry, 0, sizeof *entry);
+        /*
+         * Invalidate mapping but keep entry->next pointing to the rest
+         * of the list.
+         *
+         * Note that lock is already zero here, otherwise we don't unmap.
+         */
+        entry->paddr_index = 0;
+        entry->vaddr_base = NULL;
+        entry->valid_mapping = NULL;
+        entry->flags = 0;
+        entry->size = 0;
     }
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 11:14:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 11:14:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757911.1167089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSEET-0004e0-NO; Fri, 12 Jul 2024 11:14:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757911.1167089; Fri, 12 Jul 2024 11:14: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 1sSEET-0004dt-Kq; Fri, 12 Jul 2024 11:14:33 +0000
Received: by outflank-mailman (input) for mailman id 757911;
 Fri, 12 Jul 2024 11: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=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSEES-0004dn-QN
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 11:14:32 +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 e8ba18f6-403f-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 13:14:30 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-585e774fd3dso2588188a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 04:14:30 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bbe2c853sm4456464a12.22.2024.07.12.04.14.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 04: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: e8ba18f6-403f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720782869; x=1721387669; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=djKuoS4i+CyD1Q73DyZ8bhhbkwLmidLR05zmMiSj8Rk=;
        b=e/VY8bUAHDcNVwA0Dj2X/X10vowXiGT5YoaGNJbLNQHuzusMkYuvuWFbqlvXmp8TMp
         /WiIE2eHA+Hl2CpqkjjWdLFl33V7QZStFlrgDoOHPGMy0YJG5wRKJW3z0gXwOOWw9WiD
         99fA19qT/8+bxBaXbHPxlUagJAwnZ58IKhBNA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720782869; x=1721387669;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=djKuoS4i+CyD1Q73DyZ8bhhbkwLmidLR05zmMiSj8Rk=;
        b=oeJcKk+GiJATRChTD373CnZk5cs3cIPMc/agyjFIzDV3+wKub6hlONm1vxj1Ezsyzt
         iBKTre6lfWDY3P53xGVyVybPyghqSg5TSPxOAzascTrnBfP9Jbr/Q+epuhvnmWJbPiWD
         ZCUgOB7E1C1bk6rf3sRCFU+xb2dKffu8KJPbw+hRtbbFKKPsGVreWvChSlzSKcqiOYdJ
         voAyCB3ZDhBePsidQCRWg7whrnD5dvsLnuipxTJlKpMlDt1ViAsJw73cL3vEoakCbbXN
         2yKeLyNJHQLvjvvMdsNgzk2dvKBGUDv1vyseClYpECmGGDQizLswcHaZDv2HY9V+Kw9r
         StTQ==
X-Gm-Message-State: AOJu0Yy0gXp7rNL6RlybLzPCMFskI/XgFYyPtJ+2WMG9P4Kl04gdzqik
	KWujF7HoT861KqNJZOBaBEb0WTR7SUUUHjwcmlbIJQfy0+1ZmU4m0/FzfBE11DZ6anCdYNQBgpV
	s
X-Google-Smtp-Source: AGHT+IEwl4DqVYtimYToZ8u9sKOxzyOWMhoqIoWS7ybbnPnWWqcg3AUBB35cr8VS/gVIKGTdXXe9Cg==
X-Received: by 2002:a05:6402:5256:b0:58d:eca:b9bf with SMTP id 4fb4d7f45d1cf-594bcab156emr7901761a12.37.1720782869530;
        Fri, 12 Jul 2024 04:14: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Olaf Hering <olaf@aepfle.de>
Subject: [PATCH v2 13/12] CI: Refresh OpenSUSE Tumbleweed container
Date: Fri, 12 Jul 2024 12:14:26 +0100
Message-Id: <20240712111426.3244115-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711202337.3128473-1-andrew.cooper3@citrix.com>
References: <20240711202337.3128473-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Existing as suse:opensuse-tumbleweed is a historical quirk, and adjusted for
consistency with all the other containers.

Make it non-root, use heredocs for legibility, and use the zypper long names
for the benefit of those wondering what was being referenced or duplicated.

Trim the dependencies substantially.  Testing docs isn't very interesting and
saves a lot of space.  Other savings come from removing a huge pile of
optional QEMU dependencies (QEMU just needs to build the Xen parts to be
useful here, not have a full GUI environment).

Finally, there where some packages such as bc, libssh2-devel, libtasn1-devel
and nasm that I'm not aware of any reason to have had, even historically.

This shaves 1G off the size of the container:

  registry.gitlab.com/xen-project/xen/opensuse  tumbleweed-x86_64      1.39GB
  registry.gitlab.com/xen-project/xen/suse      opensuse-tumbleweed    2.35GB

Furthermore, identify which components of the build use which dependencies,
which will help managing them in the future.

Thanks to Olaf Hering for dependency fixes that have been subsumed into this
total overhaul.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Olaf Hering <olaf@aepfle.de>

This includes both of Olaf's recent changes, python3-packaging (now required
for a rebuilt container), and findutils (not required yet; still gets pulled
in transitively), but added for good measure.

In terms of package delta, newly included are:

  findutils            # As suggested
  ocaml-findlib        # Replaces ocaml-findlib-devel
  perl                 # Transitive previously
  python3              # Transitive previously
  python3-packaging    # As suggested

while removed are:

  bc                   # ?
  cmake                # vtpm stubdom, optional
  discount             # docs
  ghostscript          # docs
  glibc-devel          # Not really optional, given a toolchain
  hostname             # Optional, not interesting
  libaio-devel         # Xen < 4.13, perhaps Qemu still but optional
  libext2fs-devel      # Libfsimage, off by default, optional
  libgnutls-devel      # Qemu ?
  libjpeg62-devel      # Qemu ?
  libnl3-devel         # Libxl COLO(?), option
  libnuma-devel        # ?
  libpng16-devel       # Qemu ?
  libssh2-devel        # ?
  libtasn1-devel       # ?
  nasm                 # ?
  ocaml-findlib-devel  # Swapped for non-devel
  ocaml-ocamlbuild     # ?
  ocaml-ocamldoc       # ?
  pandoc               # docs
  'pkgconfig(libpci)'  # Qemu
  'pkgconfig(sdl)'     # Qemu
  'pkgconfig(sdl2)'    # Qemu
  systemd-devel        # Xen < 4.19, optional
  transfig             # docs
  valgrind-devel       # really only for developers
  which                # Xen < 4.17

I've tested this on staging-4.17 and staging, both of which build fine.
staging-4.16 does not, because of SeaBIOS which we've decided not to fix,
hence it's safe to drop `which`.

v2:
 * git -> git-core
 * Use 'pkgconfig()' references
---
 .../opensuse/tumbleweed-x86_64.dockerfile     | 76 +++++++++++++++++++
 .../build/suse/opensuse-tumbleweed.dockerfile | 74 ------------------
 automation/gitlab-ci/build.yaml               |  8 +-
 automation/scripts/containerize               |  2 +-
 4 files changed, 81 insertions(+), 79 deletions(-)
 create mode 100644 automation/build/opensuse/tumbleweed-x86_64.dockerfile
 delete mode 100644 automation/build/suse/opensuse-tumbleweed.dockerfile

diff --git a/automation/build/opensuse/tumbleweed-x86_64.dockerfile b/automation/build/opensuse/tumbleweed-x86_64.dockerfile
new file mode 100644
index 000000000000..61e840fc67da
--- /dev/null
+++ b/automation/build/opensuse/tumbleweed-x86_64.dockerfile
@@ -0,0 +1,76 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 opensuse/tumbleweed
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV XEN_TARGET_ARCH=x86_64
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    zypper refresh
+    zypper dist-upgrade -y --no-recommends
+
+    DEPS=(
+        # Xen
+        bison
+        checkpolicy
+        clang
+        diffutils
+        findutils
+        flex
+        gawk
+        gcc
+        make
+        python3
+
+        # Tools (general)
+        git-core
+        gzip
+        patch
+        perl
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        'pkgconfig(bzip2)'
+        'pkgconfig(libzstd)'
+        'pkgconfig(lzo2)'
+        'pkgconfig(liblzma)'
+        'pkgconfig(zlib)'
+        # libacpi
+        acpica
+        # libxl
+        'pkgconfig(uuid)'
+        'pkgconfig(yajl)'
+        # Header Check
+        gcc-c++
+        # xentop
+        'pkgconfig(ncurses)'
+        # Python bindings
+        python3-devel
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml
+        ocaml-findlib
+
+        # Stubdom (download/extract)
+        bzip2
+        tar
+
+        # Qemu build
+        meson
+        ninja
+        'pkgconfig(glib-2.0)'
+        'pkgconfig(pixman-1)'
+        python3-packaging
+    )
+
+    zypper install -y --no-recommends "${DEPS[@]}"
+    zypper clean -a
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/suse/opensuse-tumbleweed.dockerfile b/automation/build/suse/opensuse-tumbleweed.dockerfile
deleted file mode 100644
index 077fed22260c..000000000000
--- a/automation/build/suse/opensuse-tumbleweed.dockerfile
+++ /dev/null
@@ -1,74 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 opensuse/tumbleweed
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-RUN zypper ref && zypper dup -y --no-recommends
-RUN zypper install -y --no-recommends \
-        acpica \
-        bc \
-        bison \
-        bzip2 \
-        checkpolicy \
-        clang \
-        cmake \
-        diffutils \
-        discount \
-        flex \
-        gawk \
-        gcc \
-        gcc-c++ \
-        git \
-        ghostscript \
-        glib2-devel \
-        glibc-devel \
-        gzip \
-        hostname \
-        libaio-devel \
-        libbz2-devel \
-        libext2fs-devel \
-        libgnutls-devel \
-        libjpeg62-devel \
-        libnl3-devel \
-        libnuma-devel \
-        libpixman-1-0-devel \
-        libpng16-devel \
-        libssh2-devel \
-        libtasn1-devel \
-        libuuid-devel \
-        libyajl-devel \
-        libzstd-devel \
-        lzo-devel \
-        make \
-        meson \
-        nasm \
-        ncurses-devel \
-        ninja \
-        ocaml \
-        ocaml-findlib-devel \
-        ocaml-ocamlbuild \
-        ocaml-ocamldoc \
-        pandoc \
-        patch \
-        pkg-config \
-        'pkgconfig(libpci)' \
-        'pkgconfig(sdl)' \
-        'pkgconfig(sdl2)' \
-        python3-devel \
-        python3-setuptools \
-        # systemd-devel for Xen < 4.19
-        systemd-devel \
-        tar \
-        transfig \
-        valgrind-devel \
-        wget \
-        which \
-        xz-devel \
-        zlib-devel \
-        && \
-        zypper clean -a
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index b4139414bc8e..fd6ca1270e4e 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -668,25 +668,25 @@ opensuse-leap-gcc-debug:
 opensuse-tumbleweed-clang:
   extends: .clang-x86-64-build
   variables:
-    CONTAINER: suse:opensuse-tumbleweed
+    CONTAINER: opensuse:tumbleweed-x86_64
   allow_failure: true
 
 opensuse-tumbleweed-clang-debug:
   extends: .clang-x86-64-build-debug
   variables:
-    CONTAINER: suse:opensuse-tumbleweed
+    CONTAINER: opensuse:tumbleweed-x86_64
   allow_failure: true
 
 opensuse-tumbleweed-gcc:
   extends: .gcc-x86-64-build
   variables:
-    CONTAINER: suse:opensuse-tumbleweed
+    CONTAINER: opensuse:tumbleweed-x86_64
   allow_failure: true
 
 opensuse-tumbleweed-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
-    CONTAINER: suse:opensuse-tumbleweed
+    CONTAINER: opensuse:tumbleweed-x86_64
   allow_failure: true
 
 # PowerPC builds (x86 cross)
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 4d5669c5ad01..c4f013702122 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -43,7 +43,7 @@ case "_${CONTAINER}" in
     _bionic) CONTAINER="${BASE}/ubuntu:bionic" ;;
     _xenial) CONTAINER="${BASE}/ubuntu:xenial" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/suse:opensuse-leap" ;;
-    _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/suse:opensuse-tumbleweed" ;;
+    _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
 esac
 
 # Use this variable to control whether root should be used
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 11:27:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 11:27:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757924.1167101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSEQT-0006sY-Ti; Fri, 12 Jul 2024 11:26:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757924.1167101; Fri, 12 Jul 2024 11: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 1sSEQT-0006sR-R5; Fri, 12 Jul 2024 11:26:57 +0000
Received: by outflank-mailman (input) for mailman id 757924;
 Fri, 12 Jul 2024 11:26: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=zb5b=OM=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1sSEQS-0006sG-20
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 11:26:56 +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 a4052e72-4041-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 13:26:54 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e37feeso2305292a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 04:26: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: a4052e72-4041-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720783613; x=1721388413; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=clwYByx2EcJcRZHsyw/4T3lTp3tE9zfOWXixrl41ogU=;
        b=lMJAFCpWa/jVgUFGgtd0W/qDcectzzQRejEm0p+cfQNg64zCXlr1Z/1gmkfoaZSlUd
         3jvLLTcrxsqQtHI5ASMbxibtiIyapuWgHhZ6cUyzLrpa637ywkEQeMlfUi6tv3ZqN2hs
         IwhFQu9ah2LJC7tz8BRg1ZnPfC8pxzDDMRTIY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720783613; x=1721388413;
        h=to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=clwYByx2EcJcRZHsyw/4T3lTp3tE9zfOWXixrl41ogU=;
        b=sb9w8NcNKF7TpqQHfxmlrW4uyF9JQv7J695fm5sSaIftTsdZyU8ASjXdkIh4XLd6P4
         chOZCAFW7CYAgaiBhvyjcvCZO3eWSGkUBUkCnC0gupDM3T1rpl+jguMXkZw42U29lr55
         cF6a/mYMrfeSgu0yqWoZqdVhfTWyGKGn1m1Mb7n8oBQg+/2kBGI7MWcqBpWiMLmy4iO9
         59Qtco/Ae3eiJ/YU0/xuWUZTygrtM9Eg1ur5rExV40wQs7ouZZWA/vZo6XKjqInuXozm
         4C1NXm2HIjS6VOIMB0n2PtNoWPoU1+F+UOwTrYTkHKbJHWVvNl/9yRHIlmhbGv88UhPh
         V4pA==
X-Gm-Message-State: AOJu0YyOPJvZX9PsMGxp6mxSyc4R8zYCqdQBYnLaIIdl5QFBufXc+KLj
	UavI9RAZMaMzN4nH7IoLTsLEtLwSHRcxffXjOZzZYl76aECXxedQyw6FTCycAx7C3MnnMpNxopg
	uWNk19tkYxnYzsrr7OiwYgr23GNvcR0KinlEK/hSskcpi4rMOREMNNg==
X-Google-Smtp-Source: AGHT+IGVVdgwMfezA3eET1/Imu4uaCuYHUmKg/bidevB3uCJqWOupwpRa2RZY6bBOP/Krr50LwHBNkBRRV+7r8Cfx9s=
X-Received: by 2002:a17:906:ca52:b0:a6f:61c7:dea7 with SMTP id
 a640c23a62f3a-a780b6b1891mr698029866b.18.1720783612897; Fri, 12 Jul 2024
 04:26:52 -0700 (PDT)
MIME-Version: 1.0
From: Kelly Choi <kelly.choi@cloud.com>
Date: Fri, 12 Jul 2024 12:26:17 +0100
Message-ID: <CAO-mL=zNpZVnXD-uGjpeGjhxnFtUaXACv_d=BBoyYBi5e1MSZA@mail.gmail.com>
Subject: Community call recording - July 2024
To: xen-devel <xen-devel@lists.xenproject.org>, xen-users@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000fb8e27061d0b27c7"

--000000000000fb8e27061d0b27c7
Content-Type: text/plain; charset="UTF-8"

Hi all,

The July community call recording has been uploaded:
https://youtu.be/BEFmzqxf2Wo

Many thanks,
Kelly Choi

Community Manager
Xen Project

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

<div dir=3D"ltr">Hi all,<div><br></div><div>The July community=C2=A0call=C2=
=A0<span class=3D"gmail-il">recording</span>=C2=A0has been uploaded:<br></d=
iv><div><a href=3D"https://youtu.be/BEFmzqxf2Wo">https://youtu.be/BEFmzqxf2=
Wo</a></div><div><br clear=3D"all"><div><div dir=3D"ltr" class=3D"gmail_sig=
nature" data-smartmail=3D"gmail_signature"><div dir=3D"ltr"><div>Many thank=
s,</div><div>Kelly Choi</div><div><br></div><div><div style=3D"color:rgb(13=
6,136,136)">Community Manager</div><div style=3D"color:rgb(136,136,136)">Xe=
n Project=C2=A0<br></div></div></div></div></div></div></div>

--000000000000fb8e27061d0b27c7--


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 11:39:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 11:39:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757957.1167127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSEcg-0001v5-Er; Fri, 12 Jul 2024 11:39:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757957.1167127; Fri, 12 Jul 2024 11:39: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 1sSEcg-0001uy-By; Fri, 12 Jul 2024 11:39:34 +0000
Received: by outflank-mailman (input) for mailman id 757957;
 Fri, 12 Jul 2024 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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSEcf-0001us-6F
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 11:39:33 +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 672b1567-4043-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 13:39:31 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a77e7a6cfa7so243792466b.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 04:39:31 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6bccb0sm333920866b.2.2024.07.12.04.39.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 04: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: 672b1567-4043-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720784370; x=1721389170; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Q4JJm+GVDO4upd7e1Ii1ia6vkiZQ4HytQWGu1Zp8cYw=;
        b=GX9/BV3PqI+tW5FWrv6Co6cXIPTfatoOxN74lfAsNyA/+GG21E2AwU1+nj4QYpRX7l
         sXORn6ggQxlJxg9R6zVFNi1hvOMs9gNuB5djnRF2yYCBqcYtsfLu39TPDV08zdhOcAXH
         6SuYGUnfzURrvi+YQuqCf/bjvaBTrGhsS41kdhlCfM+Ky3Mg+5ZwC6Bx2Z8ILr3HXL7f
         f8vFv86egsABOA4/zZmuphqqf4ApMTrEHnRPYNZzhd/4+rBmWd3+0Xl6L5CNrFfhdWHh
         JZzGJyU9n9BC0LZWY+T997p6+H8O1Xf+XjQTu7STVl6D5EYN5iYWTsl6jO+L+p/wnGIi
         MLkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720784370; x=1721389170;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Q4JJm+GVDO4upd7e1Ii1ia6vkiZQ4HytQWGu1Zp8cYw=;
        b=CMhst/qNOIRmAddwkfz63kLcMrOjSHNDwKLEm1VJQMhAeK/Eb0jyZ5xh99ALCYiLci
         S1/5T3LEUSBO33FrwrFr4JSMkNlmDaI5ILnlMmZB8yrZIgcqDbOz2FqFRGWkGkArnEqs
         SVUURYvWmBHc0ZZNvpf5UF8VbJUaG8yEr6YVTm9ZPGo1EJzPh6Z9CzfqYv7rY1DPfOJq
         6Fxz7byOz7gs+gfX1PvybXkKdrnXXQ1SooxjKCbV3TYMHKKPTYPpCHmjQXGbDXKPLeaB
         TQITT5W3vVu4WtrNgbsh6ETnFFu73a4EIWEPXSLXy6VZMmlJ8ZsarLEipCi5Swyn5eop
         y/uw==
X-Forwarded-Encrypted: i=1; AJvYcCWSNaG5GEc/RehZNF1nqHvAlIS/zusLBANRP8QFYsNxBMtTezBz54lQkHTi+y8oh4kkDjK6i0UbeR6ZbU4PDSxUokNWbemNoOHzKR0M9HA=
X-Gm-Message-State: AOJu0YwdyqKSw2iWsXWCaoFvGd3DwoWvt9K6TfFJr5b9YYrUXcJgVaxg
	9nuyaSBoSgE5P87y82rcW0cIRFQH5OfhVecJBOVxpbBH6OLPBeT1
X-Google-Smtp-Source: AGHT+IFyDIng5UL2YdTSfxmfGxjmTF4p51mf1nAUoqFdpas41QuK9yLy/rs/rebKFN9/5JnxgYn8uA==
X-Received: by 2002:a17:906:2bc5:b0:a77:aebc:8fb1 with SMTP id a640c23a62f3a-a780b6b1befmr695888866b.17.1720784370243;
        Fri, 12 Jul 2024 04:39:30 -0700 (PDT)
Message-ID: <1b6c7e57ea331d3ea9aeea7fafc9a0733f6e9147.camel@gmail.com>
Subject: Re: [PATCH 10/12] CI: Introduce debian:11/12-riscv64 containers
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
 <jgross@suse.com>,  Roger Pau =?ISO-8859-1?Q?Monn=E9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Shawn Anastasio
 <sanastasio@raptorengineering.com>
Date: Fri, 12 Jul 2024 13:39:29 +0200
In-Reply-To: <20240711111517.3064810-11-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
	 <20240711111517.3064810-11-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Thu, 2024-07-11 at 12:15 +0100, Andrew Cooper wrote:
> For starters, they're slightly smaller:
>=20
> =C2=A0 $ docker image list <snip>
> =C2=A0 registry.gitlab.com/xen-project/xen/debian=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 12-riscv64=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
> 772MB
> =C2=A0 registry.gitlab.com/xen-project/xen/debian=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 11-riscv64=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
> 422MB
Do we really need both 11-riscv64 and 12-riscv64?

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

~ Oleksii
=20

> =C2=A0 registry.gitlab.com/xen-project/xen/archlinux=C2=A0=C2=A0 current-=
riscv64=C2=A0=C2=A0=C2=A0
> 2.32GB
>=20
> They also not rolling distros, so will be more predicatable testing
> for the
> stable trees in the future.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Juergen Gross <jgross@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> CC: Shawn Anastasio <sanastasio@raptorengineering.com>
> ---
> =C2=A0automation/build/debian/11-riscv64.dockerfile | 33 ++++++++++++++++=
+
> =C2=A0automation/build/debian/12-riscv64.dockerfile | 36
> +++++++++++++++++++
> =C2=A02 files changed, 69 insertions(+)
> =C2=A0create mode 100644 automation/build/debian/11-riscv64.dockerfile
> =C2=A0create mode 100644 automation/build/debian/12-riscv64.dockerfile
>=20
> diff --git a/automation/build/debian/11-riscv64.dockerfile
> b/automation/build/debian/11-riscv64.dockerfile
> new file mode 100644
> index 000000000000..1c99bc89ea1a
> --- /dev/null
> +++ b/automation/build/debian/11-riscv64.dockerfile
> @@ -0,0 +1,33 @@
> +# syntax=3Ddocker/dockerfile:1
> +FROM --platform=3Dlinux/amd64 debian:bullseye-slim
> +LABEL maintainer.name=3D"The Xen Project"
> +LABEL maintainer.email=3D"xen-devel@lists.xenproject.org"
> +
> +ENV DEBIAN_FRONTEND=3Dnoninteractive
> +ENV CROSS_COMPILE=3Driscv64-linux-gnu-
> +ENV XEN_TARGET_ARCH=3Driscv64
> +
> +RUN <<EOF
> +#!/bin/bash
> +=C2=A0=C2=A0=C2=A0 set -e
> +
> +=C2=A0=C2=A0=C2=A0 useradd --create-home user
> +
> +=C2=A0=C2=A0=C2=A0 apt-get -y update
> +
> +=C2=A0=C2=A0=C2=A0 DEPS=3D(
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 # Xen
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bison
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 build-essential
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 checkpolicy
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 flex
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 gcc-riscv64-linux-gnu
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 python3-minimal
> +=C2=A0=C2=A0=C2=A0 )
> +
> +=C2=A0=C2=A0=C2=A0 apt-get -y --no-install-recommends install "${DEPS[@]=
}"
> +=C2=A0=C2=A0=C2=A0 rm -rf /var/lib/apt/lists/*
> +EOF
> +
> +USER user
> +WORKDIR /build
> diff --git a/automation/build/debian/12-riscv64.dockerfile
> b/automation/build/debian/12-riscv64.dockerfile
> new file mode 100644
> index 000000000000..03fd4b03059b
> --- /dev/null
> +++ b/automation/build/debian/12-riscv64.dockerfile
> @@ -0,0 +1,36 @@
> +# syntax=3Ddocker/dockerfile:1
> +FROM --platform=3Dlinux/amd64 debian:bookworm-slim
> +LABEL maintainer.name=3D"The Xen Project"
> +LABEL maintainer.email=3D"xen-devel@lists.xenproject.org"
> +
> +ENV DEBIAN_FRONTEND=3Dnoninteractive
> +ENV CROSS_COMPILE=3Driscv64-linux-gnu-
> +ENV XEN_TARGET_ARCH=3Driscv64
> +
> +RUN <<EOF
> +#!/bin/bash
> +=C2=A0=C2=A0=C2=A0 set -e
> +
> +=C2=A0=C2=A0=C2=A0 useradd --create-home user
> +
> +=C2=A0=C2=A0=C2=A0 apt-get -y update
> +
> +=C2=A0=C2=A0=C2=A0 DEPS=3D(
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 # Xen
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bison
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 build-essential
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 checkpolicy
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 flex
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 gcc-riscv64-linux-gnu
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 python3-minimal
> +
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 # Qemu for test phase
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 qemu-system-riscv64
> +=C2=A0=C2=A0=C2=A0 )
> +
> +=C2=A0=C2=A0=C2=A0 apt-get -y --no-install-recommends install "${DEPS[@]=
}"
> +=C2=A0=C2=A0=C2=A0 rm -rf /var/lib/apt/lists/*
> +EOF
> +
> +USER user
> +WORKDIR /build



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 11:40:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 11:40:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757960.1167136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSEdt-0003I6-NC; Fri, 12 Jul 2024 11:40:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757960.1167136; Fri, 12 Jul 2024 11:40: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 1sSEdt-0003Hz-KV; Fri, 12 Jul 2024 11:40:49 +0000
Received: by outflank-mailman (input) for mailman id 757960;
 Fri, 12 Jul 2024 11:40: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSEds-0003Hr-EG
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 11:40:48 +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 9407ba4b-4043-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 13:40:46 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e38027so2142312a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 04:40:46 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a855f14sm335638666b.183.2024.07.12.04.40.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 04:40: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: 9407ba4b-4043-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720784446; x=1721389246; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=v2XotvZdUN628CPl5sSZ5o/if5R+EpGGsAzMWyjPvdg=;
        b=i6v/4ZXERpgIxWhKIDZeVTTfqsvicyqXzZIVRr8U/8uKB5tBSQ/440Y4TE/JWI35zX
         Dx0cWQx/ETy8hgT2c+bz77+8Z3tUYoXK/hY6MExsAb6BY3m1QZOc0PMUqxPwc3/v5sP+
         9oCx5O0MaSA+Lp3bMmPjw89LdSpZ/A1HP0xZcOAQac1P88cgwC5LWg1xQvvLMEHeK3rs
         iNNiTdMg2GzVBp32xq59TnOEOsPCNTi9c6yQZkUttqRs+Uqz3VBEkNpqpjqY2EO/vdJ5
         Jb5grYwzGWOseVz9WujuFt86QXS14e/YSrgGWVUQX/IMpOxLfS8cnkv8fMLeJUcwxgaE
         8hXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720784446; x=1721389246;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=v2XotvZdUN628CPl5sSZ5o/if5R+EpGGsAzMWyjPvdg=;
        b=MxLIt0Eq0ccs2rKOP3iRhp8EGwVv0lqC1ZvNKZ5uGlpAIbZw3+h5v6fSJaGscI7Vfr
         fAmQyp487IABs/PGcWxCES6VJX53JsiHx59fMsRJ9M2eR7kBZsrVxed4n+PMM5WfEGCO
         KySpx2DofNHB106RnXl8jXtpduKCtqan+ONB1C64hKqs7+r2l1sLiX9bIBaOxgGytqmk
         zPtAIWkI+i0Fclmdp9EmRUCb864cB6h4WhkZ93QofPcwk7XM+3DILCpG0iH1CrGMCepD
         gfGONZuHApTjAdRPvgtXoBPbBQaxi0GHXVwN1LMIcJikpB7SISFJjpQUoFloIw52fA50
         7Q6Q==
X-Forwarded-Encrypted: i=1; AJvYcCWBJkvi4M4AbDlpBqBJQnnpsnf0mYpDz5AFEBwU89bwbLYHkN51/NXCQSRy6f/T4Kg2/JQA4dfgcwSs/0IA3fwhoG5D1lOP8KP2BhB9URA=
X-Gm-Message-State: AOJu0YyUFbe9LPX/n9eGTZAUeYiBngZ4usnVIouQeGRaS7HzBDTBcAje
	mposDx7B9LR68fvtoDoncI2nVVRxeJNA5T+2g73JYX9OzjKrZvlC
X-Google-Smtp-Source: AGHT+IEc2taQ3cIpmJtV91Z07HOFaQv9tRY2+JVoKrgzRf4HV0KVExwHZjYDpiibxgxIqe4AG+AvHA==
X-Received: by 2002:a17:906:7086:b0:a77:eb34:3b46 with SMTP id a640c23a62f3a-a780b6b1a18mr818319566b.19.1720784445699;
        Fri, 12 Jul 2024 04:40:45 -0700 (PDT)
Message-ID: <789031f58a3f74a0bef8353d16ca24b202d20389.camel@gmail.com>
Subject: Re: [PATCH 11/12] CI: Swap to debian for riscv64 build and test
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
 <jgross@suse.com>,  Roger Pau =?ISO-8859-1?Q?Monn=E9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Shawn Anastasio
 <sanastasio@raptorengineering.com>
Date: Fri, 12 Jul 2024 13:40:44 +0200
In-Reply-To: <20240711111517.3064810-12-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
	 <20240711111517.3064810-12-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Thu, 2024-07-11 at 12:15 +0100, Andrew Cooper wrote:
> The containers are both much smaller, with stable toolchains over
> time, and
> this at least means we're not doing all testing with a single
> compiler.
>=20
> Rename the jobs to follow to sort coherently ($DISTRO-$VERSION-$ARCH-
> *) and
> reposition the jobs to optimise starting the smoke test.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
LGTM: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii

> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Juergen Gross <jgross@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> CC: Shawn Anastasio <sanastasio@raptorengineering.com>
> ---
> =C2=A0.../archlinux/current-riscv64.dockerfile=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 | 22 -----
> =C2=A0automation/gitlab-ci/build.yaml=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 83 +++++++++++------
> --
> =C2=A0automation/gitlab-ci/test.yaml=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 4 +-
> =C2=A0automation/scripts/containerize=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 3 +-
> =C2=A04 files changed, 52 insertions(+), 60 deletions(-)
> =C2=A0delete mode 100644 automation/build/archlinux/current-
> riscv64.dockerfile
>=20
> diff --git a/automation/build/archlinux/current-riscv64.dockerfile
> b/automation/build/archlinux/current-riscv64.dockerfile
> deleted file mode 100644
> index f7770bf82a78..000000000000
> --- a/automation/build/archlinux/current-riscv64.dockerfile
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -# syntax=3Ddocker/dockerfile:1
> -FROM --platform=3Dlinux/amd64 archlinux
> -LABEL maintainer.name=3D"The Xen Project" \
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 maintainer.email=3D"xen-devel@lists.xenpr=
oject.org"
> -
> -# Packages needed for the build
> -RUN pacman --noconfirm --needed -Syu \
> -=C2=A0=C2=A0=C2=A0 base-devel \
> -=C2=A0=C2=A0=C2=A0 git \
> -=C2=A0=C2=A0=C2=A0 inetutils \
> -=C2=A0=C2=A0=C2=A0 riscv64-linux-gnu-binutils \
> -=C2=A0=C2=A0=C2=A0 riscv64-linux-gnu-gcc \
> -=C2=A0=C2=A0=C2=A0 riscv64-linux-gnu-glibc \
> -=C2=A0=C2=A0=C2=A0 # For test phase
> -=C2=A0=C2=A0=C2=A0 qemu-system-riscv
> -
> -# Add compiler path
> -ENV CROSS_COMPILE=3Driscv64-linux-gnu-
> -
> -RUN useradd --create-home user
> -USER user
> -WORKDIR /build
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-
> ci/build.yaml
> index e081664c4e95..4b9d80cc5632 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -357,6 +357,13 @@ debian-12-ppc64le-gcc-debug:
> =C2=A0=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: ppc64_defconfig
> =C2=A0=C2=A0=C2=A0=C2=A0 HYPERVISOR_ONLY: y
> =C2=A0
> +debian-12-riscv64-gcc-debug:
> +=C2=A0 extends: .gcc-riscv64-cross-build-debug
> +=C2=A0 variables:
> +=C2=A0=C2=A0=C2=A0 CONTAINER: debian:12-riscv64
> +=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: tiny64_defconfig
> +=C2=A0=C2=A0=C2=A0 HYPERVISOR_ONLY: y
> +
> =C2=A0# Arm32 cross-build
> =C2=A0
> =C2=A0debian-bookworm-gcc-arm32:
> @@ -458,41 +465,6 @@ alpine-3.18-gcc-debug-arm64-earlyprintk:
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_EARLY_UART_CHOICE_PL011=3Dy
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_EARLY_UART_BASE_ADDRESS=3D0x9=
000000
> =C2=A0
> -# RISC-V 64 cross-build
> -.riscv-fixed-randconfig:
> -=C2=A0 variables: &riscv-fixed-randconfig
> -=C2=A0=C2=A0=C2=A0 EXTRA_FIXED_RANDCONFIG: |
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_BOOT_TIME_CPUPOOLS=3Dn
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_EXPERT=3Dy
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_GRANT_TABLE=3Dn
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_MEM_ACCESS=3Dn
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_PERF_COUNTERS=3Dn
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_LIVEPATCH=3Dn
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_XSM=3Dn
> -
> -archlinux-current-gcc-riscv64:
> -=C2=A0 extends: .gcc-riscv64-cross-build
> -=C2=A0 variables:
> -=C2=A0=C2=A0=C2=A0 CONTAINER: archlinux:current-riscv64
> -=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: tiny64_defconfig
> -=C2=A0=C2=A0=C2=A0 HYPERVISOR_ONLY: y
> -
> -archlinux-current-gcc-riscv64-debug:
> -=C2=A0 extends: .gcc-riscv64-cross-build-debug
> -=C2=A0 variables:
> -=C2=A0=C2=A0=C2=A0 CONTAINER: archlinux:current-riscv64
> -=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: tiny64_defconfig
> -=C2=A0=C2=A0=C2=A0 HYPERVISOR_ONLY: y
> -
> -archlinux-current-gcc-riscv64-randconfig:
> -=C2=A0 extends: .gcc-riscv64-cross-build
> -=C2=A0 variables:
> -=C2=A0=C2=A0=C2=A0 CONTAINER: archlinux:current-riscv64
> -=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: tiny64_defconfig
> -=C2=A0=C2=A0=C2=A0 RANDCONFIG: y
> -=C2=A0=C2=A0=C2=A0 <<: *riscv-fixed-randconfig
> -
> =C2=A0# Yocto test jobs
> =C2=A0yocto-qemuarm64:
> =C2=A0=C2=A0 extends: .yocto-test-arm64
> @@ -739,3 +711,44 @@ debian-12-ppc64le-gcc:
> =C2=A0=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: ppc64_defconfig
> =C2=A0=C2=A0=C2=A0=C2=A0 HYPERVISOR_ONLY: y
> =C2=A0
> +# RISC-V 64 cross-build
> +debian-11-riscv64-gcc:
> +=C2=A0 extends: .gcc-riscv64-cross-build
> +=C2=A0 variables:
> +=C2=A0=C2=A0=C2=A0 CONTAINER: debian:11-riscv64
> +=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: tiny64_defconfig
> +=C2=A0=C2=A0=C2=A0 HYPERVISOR_ONLY: y
> +
> +debian-11-riscv64-gcc-debug:
> +=C2=A0 extends: .gcc-riscv64-cross-build-debug
> +=C2=A0 variables:
> +=C2=A0=C2=A0=C2=A0 CONTAINER: debian:11-riscv64
> +=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: tiny64_defconfig
> +=C2=A0=C2=A0=C2=A0 HYPERVISOR_ONLY: y
> +
> +debian-12-riscv64-gcc:
> +=C2=A0 extends: .gcc-riscv64-cross-build
> +=C2=A0 variables:
> +=C2=A0=C2=A0=C2=A0 CONTAINER: debian:12-riscv64
> +=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: tiny64_defconfig
> +=C2=A0=C2=A0=C2=A0 HYPERVISOR_ONLY: y
> +
> +.riscv-fixed-randconfig:
> +=C2=A0 variables: &riscv-fixed-randconfig
> +=C2=A0=C2=A0=C2=A0 EXTRA_FIXED_RANDCONFIG: |
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_BOOT_TIME_CPUPOOLS=3Dn
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_EXPERT=3Dy
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_GRANT_TABLE=3Dn
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_MEM_ACCESS=3Dn
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_PERF_COUNTERS=3Dn
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_LIVEPATCH=3Dn
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_XSM=3Dn
> +
> +debian-12-riscv64-gcc-randconfig:
> +=C2=A0 extends: .gcc-riscv64-cross-build
> +=C2=A0 variables:
> +=C2=A0=C2=A0=C2=A0 CONTAINER: debian:12-riscv64
> +=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: tiny64_defconfig
> +=C2=A0=C2=A0=C2=A0 RANDCONFIG: y
> +=C2=A0=C2=A0=C2=A0 <<: *riscv-fixed-randconfig
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-
> ci/test.yaml
> index 70c946f87799..f7e1753ead34 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -56,7 +56,7 @@
> =C2=A0.qemu-riscv64:
> =C2=A0=C2=A0 extends: .test-jobs-common
> =C2=A0=C2=A0 variables:
> -=C2=A0=C2=A0=C2=A0 CONTAINER: archlinux:current-riscv64
> +=C2=A0=C2=A0=C2=A0 CONTAINER: debian:12
> =C2=A0=C2=A0=C2=A0=C2=A0 LOGFILE: qemu-smoke-riscv64.log
> =C2=A0=C2=A0 artifacts:
> =C2=A0=C2=A0=C2=A0=C2=A0 paths:
> @@ -440,7 +440,7 @@ qemu-smoke-riscv64-gcc:
> =C2=A0=C2=A0 script:
> =C2=A0=C2=A0=C2=A0=C2=A0 - ./automation/scripts/qemu-smoke-riscv64.sh 2>&=
1 | tee
> ${LOGFILE}
> =C2=A0=C2=A0 needs:
> -=C2=A0=C2=A0=C2=A0 - archlinux-current-gcc-riscv64-debug
> +=C2=A0=C2=A0=C2=A0 - debian-12-riscv64-gcc-debug
> =C2=A0
> =C2=A0qemu-smoke-ppc64le-powernv9-gcc:
> =C2=A0=C2=A0 extends: .qemu-ppc64le
> diff --git a/automation/scripts/containerize
> b/automation/scripts/containerize
> index 5c3f6782d9cd..6dbf55c8f89a 100755
> --- a/automation/scripts/containerize
> +++ b/automation/scripts/containerize
> @@ -27,12 +27,13 @@ case "_${CONTAINER}" in
> =C2=A0=C2=A0=C2=A0=C2=A0 _alpine) CONTAINER=3D"${BASE}/alpine:3.18" ;;
> =C2=A0=C2=A0=C2=A0=C2=A0 _alpine-arm64v8) CONTAINER=3D"${BASE}/alpine:3.1=
8-arm64v8" ;;
> =C2=A0=C2=A0=C2=A0=C2=A0 _archlinux|_arch) CONTAINER=3D"${BASE}/archlinux=
:current" ;;
> -=C2=A0=C2=A0=C2=A0 _riscv64) CONTAINER=3D"${BASE}/archlinux:current-risc=
v64" ;;
> =C2=A0=C2=A0=C2=A0=C2=A0 _centos7) CONTAINER=3D"${BASE}/centos:7" ;;
> =C2=A0=C2=A0=C2=A0=C2=A0 _fedora) CONTAINER=3D"${BASE}/fedora:29";;
> =C2=A0=C2=A0=C2=A0=C2=A0 _focal) CONTAINER=3D"${BASE}/ubuntu:focal" ;;
> =C2=A0=C2=A0=C2=A0=C2=A0 _bullseye-ppc64le) CONTAINER=3D"${BASE}/debian:1=
1-ppc64le" ;;
> =C2=A0=C2=A0=C2=A0=C2=A0 _bookworm-ppc64le) CONTAINER=3D"${BASE}/debian:1=
2-ppc64le" ;;
> +=C2=A0=C2=A0=C2=A0 _bullseye-riscv64) CONTAINER=3D"${BASE}/debian:11-ris=
cv64" ;;
> +=C2=A0=C2=A0=C2=A0 _bookworm-riscv64) CONTAINER=3D"${BASE}/debian:12-ris=
cv64" ;;
> =C2=A0=C2=A0=C2=A0=C2=A0 _buster-gcc-ibt) CONTAINER=3D"${BASE}/debian:bus=
ter-gcc-ibt" ;;
> =C2=A0=C2=A0=C2=A0=C2=A0 _bookworm|_) CONTAINER=3D"${BASE}/debian:bookwor=
m" ;;
> =C2=A0=C2=A0=C2=A0=C2=A0 _bookworm-i386) CONTAINER=3D"${BASE}/debian:book=
worm-i386" ;;



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 12:30:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 12:30:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757977.1167146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSFPy-0003yS-FM; Fri, 12 Jul 2024 12:30:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757977.1167146; Fri, 12 Jul 2024 12:30:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSFPy-0003yL-Cr; Fri, 12 Jul 2024 12:30:30 +0000
Received: by outflank-mailman (input) for mailman id 757977;
 Fri, 12 Jul 2024 12:30: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=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSFPw-0003yF-L0
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 12:30:28 +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 8405476f-404a-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 14:30:26 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-58b447c5112so2736543a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 05:30:25 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a797e3b160dsm226129766b.204.2024.07.12.05.30.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 05:30: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: 8405476f-404a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720787425; x=1721392225; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RMGzBZ2FYnEocLI6MTMFGJ5274FNlLpPC+Q6ZIUTLrM=;
        b=DMoBHVUl67F4t+hADhwLa6ucxc+5hEOfHufnjTkJTcSW+vFuyI0SYTIDGszax6+dnn
         PULKwVhvGzSnMuLJZBk0RBEZXbDueI5C9oZZCss03WPC7AHhhyyEgJZRTCgvK7DcK6/V
         vSKcSUrsgw5ssuQtSs2saQHV3dQ0dQwzJ8ibY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720787425; x=1721392225;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RMGzBZ2FYnEocLI6MTMFGJ5274FNlLpPC+Q6ZIUTLrM=;
        b=njPWGmD98gsk6xF4HKhhrZqDM9+24Gw2DGMixSwNMEy5R0/5K6rgIBA5lANC/S0jZp
         I2KOrmo4xUARUlm1IiLmnFiwBLKj6MRSiCiy/QvLn75QyJpIsDZukSsuggArS11d1aLR
         /abOG1QaLMc1H011EtLM2lskdn1wt9MNlVIMOKJtPIrS8CGYo4GMPp/KapjL7NAvdGvW
         iPxWWXkp74etg0IxV+5580iFclODevw/memE44b83RvmmSp49uiQoPe8xv2OiXevdsp5
         N9kR/oFOM7dcELX2U0kC4XSrINawD2D7FfQZ6UGtIdyIBb8lsQS3fZSISgFrDyqcTVdf
         83Fg==
X-Forwarded-Encrypted: i=1; AJvYcCWEQ7uAdpvmNCzomPWoc1b3xdVCkkAPUWqCEEw/t5tdbXYBDejh1DZSvQGrlRujLZkgLi/d7i1zMkBdqORbIjYzLfP8tp/Erqrpjxo80Po=
X-Gm-Message-State: AOJu0YwoQ2JVr5ysWbmplTpwcpbnAskyAHzf2D7yTH+YQfkKYtT9Pddu
	AcQUm8Y+YA21ewt6HxhW8tfmtzoAjzgm52Sns8g3a+hKn4DC1edrG9gRWIuDRWo=
X-Google-Smtp-Source: AGHT+IFaTR/1ZFJjGzsu6R1Rb6JPFPahjppWal+UG5MOxqtJ9BTr9aIMdqs/Vtl5TVU8g17nEdhIzA==
X-Received: by 2002:a17:907:e9f:b0:a77:cb7d:f362 with SMTP id a640c23a62f3a-a780b705276mr973906166b.40.1720787425419;
        Fri, 12 Jul 2024 05:30:25 -0700 (PDT)
Message-ID: <0c03dff1-e68c-4660-b2cb-471958708daa@citrix.com>
Date: Fri, 12 Jul 2024 13:30:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/12] CI: Introduce debian:11/12-riscv64 containers
To: Oleksii <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240711111517.3064810-11-andrew.cooper3@citrix.com>
 <1b6c7e57ea331d3ea9aeea7fafc9a0733f6e9147.camel@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <1b6c7e57ea331d3ea9aeea7fafc9a0733f6e9147.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/07/2024 12:39 pm, Oleksii wrote:
> On Thu, 2024-07-11 at 12:15 +0100, Andrew Cooper wrote:
>> For starters, they're slightly smaller:
>>
>>   $ docker image list <snip>
>>   registry.gitlab.com/xen-project/xen/debian      12-riscv64        
>> 772MB
>>   registry.gitlab.com/xen-project/xen/debian      11-riscv64        
>> 422MB
> Do we really need both 11-riscv64 and 12-riscv64?

Need? No, not strictly.

Want? Yes, absolutely.

You always want at least 2 different toolchains worth of testing, or
what you will find happens is that you end up accidentally depending on
a quirk of the single compiler your using, and that you discover this at
some point in the future, rather than now(ish) when CI says no.

At the moment, the RISC-V builds are very trivial and quick, so it makes
a lot of sense to have a second toolchain.  Before too much longer,
you'll want to get Clang working too.

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

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 12:33:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 12:33:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757980.1167157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSFTD-0004Xh-VI; Fri, 12 Jul 2024 12:33:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757980.1167157; Fri, 12 Jul 2024 12: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 1sSFTD-0004Xa-RV; Fri, 12 Jul 2024 12:33:51 +0000
Received: by outflank-mailman (input) for mailman id 757980;
 Fri, 12 Jul 2024 12:33: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=3tlf=OM=bounce.vates.tech=bounce-md_30504962.669122aa.v1-cb88003a0e0a4a599e05df2331f4a31f@srs-se1.protection.inumbo.net>)
 id 1sSFTD-0004XU-Eh
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 12:33:51 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fcb27918-404a-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 14:33:49 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WL9xl09CHzB5p8Z8
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 12:33:47 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 cb88003a0e0a4a599e05df2331f4a31f; Fri, 12 Jul 2024 12:33: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: fcb27918-404a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720787627; x=1721048127;
	bh=qsLAa8oE2og9iv3HjDhMbDDLOHpOYucu2hYO7m1bzS4=;
	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=VlLNltFtMWZEQFyRyj9hBzXJe5fuq7jsmc5KkrbDAofdacPDdzO2cAGJ8oRi66BUZ
	 dZVtApHTDFcSaoLqz59suF3hx62ji5ltxoGVUsP2UOWSaKvE6KJPqptrW7OzVYiP27
	 ylm/3+NUGb90MRI3C7snO3fXWwEfyyTVzXNfX8DHSi2XhNy0dZa4tsBNYGj07cQH8f
	 ++ksUxWixsbyIHsZe14JArrSG2+czL3DCePOGUdJnO+weEnedhYUEV3lBrcZpW6Ze1
	 wNKZ0p/TslQK2jyfDi47fn24EdtgBXw3tlZAv9rocnxXE7Z/JtnPvye8HxyM4xqz41
	 D6XFsa1mr8UvA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720787627; x=1721048127; i=anthony.perard@vates.tech;
	bh=qsLAa8oE2og9iv3HjDhMbDDLOHpOYucu2hYO7m1bzS4=;
	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=j9ekYZ6I4CJ+VbweQy7KjMl2nnCwOqna64l8GTxXPQHS3KcG6e7i5ISBZqu2tKuvZ
	 6z5Z0A+uypUgHqzLmCOZA4tYwCDkDgRu578nKmY6KWI5i9VzYuY2X9Fu4eLxd3npit
	 61nQAY5XLc3Cl67DmPsXU1OUPEC80G3nMcWrR7paUzoQqDfubBz0ngQ0GoaT1QcVxO
	 N1qerPML8myD3nTQiaZHx7lh+jyMNDk6+RyDlJX24Et1s7IokNEYhHt9n8G8StOkNd
	 WBZBGUizwShFDXJ4TivWoqcv4QAD2bI2rBPX7RZyflWGY2FDPk+yGKq/Rd7JcsbKwT
	 O34n07h5QMXBA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=2013/12]=20CI:=20Refresh=20OpenSUSE=20Tumbleweed=20container?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720787625411
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>, Olaf Hering <olaf@aepfle.de>
Message-Id: <ZpEiqM7XWlzb4q+z@l14>
References: <20240711202337.3128473-1-andrew.cooper3@citrix.com> <20240712111426.3244115-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240712111426.3244115-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.cb88003a0e0a4a599e05df2331f4a31f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240712:md
Date: Fri, 12 Jul 2024 12:33:46 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Jul 12, 2024 at 12:14:26PM +0100, Andrew Cooper wrote:
> while removed are:
> 
>   bc                   # ?

I don't know why, but this one is also installed by osstest. The commit
adding it doesn't say why it was needed.

Also, looks like many QEMU containers are installing `bc`, but I can't
find a single use. Maybe historic.

>   libnl3-devel         # Libxl COLO(?), option

Yes.

>   libnuma-devel        # ?

There's some mention of it in QEMU.

>   libpng16-devel       # Qemu ?

It's added to a few QEMU containers, but I can't find any use.

>   libssh2-devel        # ?

It seems like it was used by QEMU at some point, but they switch to
'libssh'. Probably optional, like many QEMU deps.

>   libtasn1-devel       # ?

QEMU, and it seems to be only used in tests.

>   nasm                 # ?

'nasm' is used to build OVMF.


If we don't want to build OVMF in our GitLab CI, which I don't think
would be useful to do anyway (no dependency on xen.git), then:

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 Fri Jul 12 12:46:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 12:46:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757987.1167166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSFfR-0006nQ-Vq; Fri, 12 Jul 2024 12:46:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757987.1167166; Fri, 12 Jul 2024 12: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 1sSFfR-0006nJ-TO; Fri, 12 Jul 2024 12:46:29 +0000
Received: by outflank-mailman (input) for mailman id 757987;
 Fri, 12 Jul 2024 12:46: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=c/ql=OM=bounce.vates.tech=bounce-md_30504962.669125a1.v1-2cb22e772bfe49859d68f731a127e561@srs-se1.protection.inumbo.net>)
 id 1sSFfR-0006nD-22
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 12:46:29 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c05bb003-404c-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 14:46:26 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WLBDK34c0z6CQ87q
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 12:46:25 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2cb22e772bfe49859d68f731a127e561; Fri, 12 Jul 2024 12:46:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c05bb003-404c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720788385; x=1721048885;
	bh=3LBjJClDAIcqsde3xIA1xFT0TmLR0+p0bPdSdYZmOIs=;
	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=hqWLGlALMBs2dGbgBw3CDgpmR2nzXGZmkj77QCVrRk/WxQ29QNxrLkdrGpcBogs1j
	 5FbKWDON0EgwVK090d6uOPQJWGBowCMHGUWKlY99GsT5U2CfmZB2/CJOffujyWeW+g
	 e0m0szrKMcuztv0FXiZIIWjoPotxb4UaXGIwuAqlEh4u74xM7cGh6uzRQegU5RDg+r
	 DBCGHz8bT0jzynS5p501MuzYuAY9itAYdClzD26mIN5sYu7mci0AslT1ygfLbax3px
	 zFPhJMt/JfIECBgDESmSoO7aHxD40mYN268cEimCyEH2rB+WsUDw0cn53r/OesiCMd
	 8m7AXXPfT/lZQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720788385; x=1721048885; i=teddy.astie@vates.tech;
	bh=3LBjJClDAIcqsde3xIA1xFT0TmLR0+p0bPdSdYZmOIs=;
	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=hL32fuymSPV4CsBgOvxQGPoEbssLNjZbdp8vNSHbOFkq8AStrIVRnRiMZyTPXxTx3
	 sEi1Vlt9TgTS7r3w59bxwVXLMM+OE9pG0HLjexBHmUlaU0lhDXuT0+Gr9vQ5jH2mCe
	 UeOkXtIeBYTYy2Y+ahXb0Sva+Q/i05JkfEauUz4drP8tEPOCgqn0vw1wAsFNaSpWjc
	 DaME5VQ4ibIeU4cNLaDlkur7SeODDEBoz+PTKobDjf3ITR8AQMjNX0BQ0MSOTsmbhy
	 AksOO1uUpmNVpCSTzKRqSdIdFFbl3Uuhg3pnDeHrtHgH175QAM3VsEQhwP7F/eazG9
	 oH6LHh/OwvZnA==
From: Teddy Astie <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20XEN=20PATCH=20v3=205/5]=20xen/public:=20Introduce=20PV-IOMMU=20hypercall=20interface?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720788384180
Message-Id: <46ba77ce-1b32-45cb-bfbb-70c6c0a21b0c@vates.tech>
To: Jan Beulich <jbeulich@suse.com>, Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <cover.1720703078.git.teddy.astie@vates.tech> <f9ae663df38acc0d330b7582dfaa7ac199746aca.1720703078.git.teddy.astie@vates.tech> <D2MYC4AEBUQZ.3DNOIV8LEE7F9@cloud.com> <1ece7ecb-7f35-4a1c-93f8-ee4191560275@suse.com>
In-Reply-To: <1ece7ecb-7f35-4a1c-93f8-ee4191560275@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.2cb22e772bfe49859d68f731a127e561?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240712:md
Date: Fri, 12 Jul 2024 12:46:25 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello Jan,

Le 12/07/2024 =C3=A0 12:46, Jan Beulich a =C3=A9crit=C2=A0:
> On 11.07.2024 21:20, Alejandro Vallejo wrote:
>> On Thu Jul 11, 2024 at 3:04 PM BST, Teddy Astie wrote:
>>> --- /dev/null
>>> +++ b/xen/common/pv-iommu.c
>>> @@ -0,0 +1,328 @@
>>> +/* SPDX-License-Identifier: GPL-2.0 */
>>> +/*
>>> + * xen/common/pv_iommu.c
>>> + *
>>> + * PV-IOMMU hypercall interface.
>>> + */
>>> +
>>> +#include <xen/mm.h>
>>> +#include <xen/lib.h>
>>> +#include <xen/iommu.h>
>>> +#include <xen/sched.h>
>>> +#include <xen/pci.h>
>>> +#include <xen/guest_access.h>
>>> +#include <asm/p2m.h>
>>> +#include <asm/event.h>
>>> +#include <public/pv-iommu.h>
>>> +
>>> +#define PVIOMMU_PREFIX "[PV-IOMMU] "
>>> +
>>> +#define PVIOMMU_MAX_PAGES 256 /* Move to Kconfig ? */
>>
>> It probably wants to be a cmdline argument, I think.
> 
> For Dom0. For DomU-s it wants to be a guest config setting, I suppose. Th=
en
> again I wonder if I understand the purpose of this correctly: The number =
looks
> surprisingly small if it was something the guest may use for arranging it=
s
> mappings.
> 
> Jan

Makes sense to be a guest setting for DomUs. I don't think this limit is 
too small, actually it means that we can can map up to 1M of contiguous 
memory in a single hypercall, in the guest case (e.g Linux), it very 
rarely goes beyond this limit.

I put this limit to prevent the guest from trying to map millions of 
pages, which is going to take a while (and may cause stability issues). 
And to actually give a chance for Xen to preempt the guest (and keep the 
ability to shut it down between 2 hypercalls).

Teddy


Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 12:48:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 12:48:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.757991.1167176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSFhH-0007lB-A0; Fri, 12 Jul 2024 12:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 757991.1167176; Fri, 12 Jul 2024 12: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 1sSFhH-0007l4-7J; Fri, 12 Jul 2024 12:48:23 +0000
Received: by outflank-mailman (input) for mailman id 757991;
 Fri, 12 Jul 2024 12: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=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSFhG-0007kw-57
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 12:48:22 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 04df44d2-404d-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 14:48:21 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a77cc73d35fso540427666b.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 05:48:21 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a797e3b160dsm227489066b.204.2024.07.12.05.48.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 05: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: 04df44d2-404d-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720788500; x=1721393300; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RjpXW8d13afgSnR5rZsBHgb32a2vMv4dDmCxluepMpk=;
        b=LxY/HCxJIl3D7xS2FrW95zH2gV1g4DvmbpiPph+5bco65qX19bNLtJYrRahvCWNJIK
         KnBE/ETRzvPRloxpr5MTFyHtnmT+hfJpu+3HoozdnFys2cP0ierY/9w3nUZ4525+nmMI
         tQ7Hs1PLEUjO1wVEVWX6Fi5grAQ14CUjedhGY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720788500; x=1721393300;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RjpXW8d13afgSnR5rZsBHgb32a2vMv4dDmCxluepMpk=;
        b=EIeAz+FddvKNfBUsR5rmngEubTns0ZGFfpnV8KEBz62O6hIPMnlQZoexT0NYrSf6Rp
         C+Mp0jjsyL3TCDM9JALcxJ9FMSv3oOtanyGMG6Df7koap9Qilk1m+g9pWPG5F3IexaGq
         j4XWS17sjfjFttfRONnYCYrKcRDG+chca922Cq2ewx6wbY5GiD4P+j/RfdAbUhZtyYeX
         ywpr9W1zqb3lnnw9Mv9jwtPwHLmpKqDrw9L7vDBp4qinZ5QRc4HoRGAoy2wWB83ED7Dm
         VJs+aJALhvi5dpxfIyAb5dGnravJbvWgwp0x2MF44Y5kx33wwcTeUTgSQZNYhFX12ufj
         RzUA==
X-Gm-Message-State: AOJu0YxWbsqpM+bB3qyJh2rc6rzip28LNJSFHQoeTtCuyaxfT9nMFYcd
	8EiBHpSoVDYe+isu9yFZBWgLpoqGeBq2VXbB0gKlmdmYAo7qLzfAHtZTBAo2O4o=
X-Google-Smtp-Source: AGHT+IGval/HeK+q+su1UzR+JukYhhcwezEW2a48y6VbEWoIdyNXVbSiAYBkJZo+yTWUSeuFKuvTvA==
X-Received: by 2002:a17:906:591:b0:a77:ab9e:9202 with SMTP id a640c23a62f3a-a799cc28646mr184837666b.4.1720788500517;
        Fri, 12 Jul 2024 05:48:20 -0700 (PDT)
Message-ID: <f3ebf546-64b2-4e35-a679-ae53865cfa78@citrix.com>
Date: Fri, 12 Jul 2024 13:48:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 13/12] CI: Refresh OpenSUSE Tumbleweed container
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Olaf Hering <olaf@aepfle.de>
References: <20240711202337.3128473-1-andrew.cooper3@citrix.com>
 <20240712111426.3244115-1-andrew.cooper3@citrix.com> <ZpEiqM7XWlzb4q+z@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZpEiqM7XWlzb4q+z@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/07/2024 1:33 pm, Anthony PERARD wrote:
> On Fri, Jul 12, 2024 at 12:14:26PM +0100, Andrew Cooper wrote:
>> while removed are:
>>
>>   bc                   # ?
> I don't know why, but this one is also installed by osstest. The commit
> adding it doesn't say why it was needed.
>
> Also, looks like many QEMU containers are installing `bc`, but I can't
> find a single use. Maybe historic.

Part of the reason why our containers are so massive is because
dependencies only ever accumulate...

But yes - this one is especially odd.
>>   nasm                 # ?
> 'nasm' is used to build OVMF.
>
>
> If we don't want to build OVMF in our GitLab CI, which I don't think
> would be useful to do anyway (no dependency on xen.git)

Oh, interesting.

I'd assumed (by virtue of the jobs succeeding) that we were building
OVMF by default, but we're clearly not.

./configure says:

  --enable-ovmf           Enable OVMF (default is DISABLED)

so it's really just a simple opt-in, which our build script does not.


In the longer term, we will want OVMF in Gitlab CI, but we'd want to
pull it in as a separate artefact and use
--with-system-ovmf=/path/to/artefact

So I agree we don't need to build OVMF inside this container.

> , then:
>
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 12:55:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 12:55:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758001.1167190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSFoP-0000r6-44; Fri, 12 Jul 2024 12:55:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758001.1167190; Fri, 12 Jul 2024 12:55:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSFoP-0000qz-09; Fri, 12 Jul 2024 12:55:45 +0000
Received: by outflank-mailman (input) for mailman id 758001;
 Fri, 12 Jul 2024 12:55:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSFoN-0000qt-FL
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 12:55: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 0bd52841-404e-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 14:55:42 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a6265d3ba8fso239578866b.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 05:55:42 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a855193sm349832366b.172.2024.07.12.05.55.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 05:55: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: 0bd52841-404e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720788941; x=1721393741; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lNg/pOWAjPqRM+SUpsJY9U+grPwjqxOTySirChTWDxo=;
        b=IvHssD8eJHZvJJzz1wkvL+4fEd7WLgYRtSdMIxCcoyEJ85i/yZWUa9O3/MCzWWSCda
         hVs7731yuZD5WxEjEzteEN2+X3Eo44SNGMv8jCVfod85b9uKyKavG2LksxIX8VFMG7bh
         SDg6c39et0ChL4i0LpT3yjFXDM7K6nH5Ln/b0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720788941; x=1721393741;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=lNg/pOWAjPqRM+SUpsJY9U+grPwjqxOTySirChTWDxo=;
        b=ZyzTmJ14EcYD9/UGZwIsY3Kb4XCLeUTh928P/NGrW8Wc7OJagKIMR/6MNsUbRCLZlm
         MBwjxBy3aJ1ok1+65TDhTTSA8CfTgAaEJ7rP20XR766Io2xPfgOnPVF/zVo3b9knXoll
         XK4SKD+V74xSeaVMvjWfuoowWE7x93ChiIrkNkJA+ozUmOGt4tI8OY7sJ5YVcbCfNeL4
         2LAVIeMmO3VCF9ZuNqkWaqPzqkLGuckGWlw0nvl/Yl7B8c85rEj9eeX7IbeNAi3BOOas
         z1EH4INSleCkFeEByQQe1W763HbpF46i3G4tfI+xBgdc6q1PbQGwJE/XaUtL+NkU+X+T
         qBoA==
X-Gm-Message-State: AOJu0YyVxQvjYgtQ+oslhXvSH+Vx0cYbkEVpbyqHFzieeSCr40vHcb9V
	Eji8ofmLiZEQcN+rwQ7DsI2WfPd3iW3BGM9bFMIvPVfoNJ/hdwR0D1nRjOZxmO7vN5f4gHyIuHK
	v
X-Google-Smtp-Source: AGHT+IGTmiOUrwbQXNV4l1btu+bK5omn9YMr5FRznikwCZf+TBGYsiMs2gkF+EMfS8ZLOmVQcP8L8w==
X-Received: by 2002:a17:907:94cd:b0:a72:5470:1d6a with SMTP id a640c23a62f3a-a780b6fe30emr1009842066b.35.1720788941313;
        Fri, 12 Jul 2024 05:55:41 -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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Olaf Hering <olaf@aepfle.de>
Subject: [PATCH v2 14/12] CI: Refresh OpenSUSE Leap container
Date: Fri, 12 Jul 2024 13:55:38 +0100
Message-Id: <20240712125538.3246947-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711210534.3141725-1-andrew.cooper3@citrix.com>
References: <20240711210534.3141725-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

See prior patch for most discussion.

Despite appearing to be a fixed release (and therefore not marked as permitted
failure), the dockerfile references the `leap` tag which is rolling in
practice.  Switch to 15.6 explicitly, for better test stability.

Vs tumbleweed, use `zypper update` rather than dist-upgrade, and retain the
RomBIOS dependencies; bin86 and dev86.

In terms of size, this saves ~700M:

  registry.gitlab.com/xen-project/xen/opensuse  leap-15.6-x86_64       1.33GB
  registry.gitlab.com/xen-project/xen/suse      opensuse-leap          2.05GB

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Olaf Hering <olaf@aepfle.de>

Runs with this new container:

 4.19:  https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7322493460
 4.16:  https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7322499881

v2:
 * git -> git-core
 * Use 'pkgconfig()' references
---
 .../opensuse/leap-15.6-x86_64.dockerfile      | 79 +++++++++++++++++++
 .../build/suse/opensuse-leap.dockerfile       | 75 ------------------
 automation/gitlab-ci/build.yaml               | 16 ++--
 automation/scripts/containerize               |  2 +-
 4 files changed, 88 insertions(+), 84 deletions(-)
 create mode 100644 automation/build/opensuse/leap-15.6-x86_64.dockerfile
 delete mode 100644 automation/build/suse/opensuse-leap.dockerfile

diff --git a/automation/build/opensuse/leap-15.6-x86_64.dockerfile b/automation/build/opensuse/leap-15.6-x86_64.dockerfile
new file mode 100644
index 000000000000..ea70dffe2afc
--- /dev/null
+++ b/automation/build/opensuse/leap-15.6-x86_64.dockerfile
@@ -0,0 +1,79 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 opensuse/leap:15.6
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV XEN_TARGET_ARCH=x86_64
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    zypper refresh
+    zypper update -y --no-recommends
+
+    DEPS=(
+        # Xen
+        bison
+        checkpolicy
+        clang
+        diffutils
+        findutils
+        flex
+        gawk
+        gcc
+        make
+        python3
+
+        # Tools (general)
+        git-core
+        gzip
+        patch
+        perl
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        'pkgconfig(bzip2)'
+        'pkgconfig(libzstd)'
+        'pkgconfig(lzo2)'
+        'pkgconfig(liblzma)'
+        'pkgconfig(zlib)'
+        # libacpi
+        acpica
+        # libxl
+        'pkgconfig(uuid)'
+        'pkgconfig(yajl)'
+        # RomBIOS
+        bin86
+        dev86
+        # Header Check
+        gcc-c++
+        # xentop
+        'pkgconfig(ncurses)'
+        # Python bindings
+        python3-devel
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml
+        ocaml-findlib
+
+        # Stubdom (download/extract)
+        bzip2
+        tar
+
+        # Qemu build
+        meson
+        ninja
+        'pkgconfig(glib-2.0)'
+        'pkgconfig(pixman-1)'
+        python3-packaging
+    )
+
+    zypper install -y --no-recommends "${DEPS[@]}"
+    zypper clean -a
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/suse/opensuse-leap.dockerfile b/automation/build/suse/opensuse-leap.dockerfile
deleted file mode 100644
index 28d333881233..000000000000
--- a/automation/build/suse/opensuse-leap.dockerfile
+++ /dev/null
@@ -1,75 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 opensuse/leap
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-RUN zypper ref && zypper up -y --no-recommends
-RUN zypper install -y --no-recommends \
-        acpica \
-        bc \
-        bin86 \
-        bison \
-        bzip2 \
-        checkpolicy \
-        clang \
-        cmake \
-        dev86 \
-        diffutils \
-        discount \
-        flex \
-        gawk \
-        gcc \
-        gcc-c++ \
-        git \
-        ghostscript \
-        glib2-devel \
-        glibc-devel \
-        gzip \
-        hostname \
-        libaio-devel \
-        libbz2-devel \
-        libext2fs-devel \
-        libgnutls-devel \
-        libjpeg62-devel \
-        libnl3-devel \
-        libnuma-devel \
-        libpixman-1-0-devel \
-        libpng16-devel \
-        libssh2-devel \
-        libtasn1-devel \
-        libuuid-devel \
-        libyajl-devel \
-        lzo-devel \
-        make \
-        nasm \
-        ncurses-devel \
-        ocaml \
-        ocaml-findlib-devel \
-        ocaml-ocamlbuild \
-        ocaml-ocamldoc \
-        pandoc \
-        patch \
-        pkg-config \
-        'pkgconfig(libpci)' \
-        'pkgconfig(sdl)' \
-        'pkgconfig(sdl2)' \
-        python3-devel \
-        python3-setuptools \
-        # systemd-devel for Xen < 4.19
-        systemd-devel \
-        tar \
-        transfig \
-        valgrind-devel \
-        wget \
-        which \
-        xz-devel \
-        zlib-devel \
-        # QEMU
-        ninja \
-        && \
-        zypper clean -a
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index fd6ca1270e4e..f9a9275ff293 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -645,25 +645,25 @@ ubuntu-focal-clang-debug:
   variables:
     CONTAINER: ubuntu:focal
 
-opensuse-leap-clang:
+opensuse-leap-15.6-clang:
   extends: .clang-x86-64-build
   variables:
-    CONTAINER: suse:opensuse-leap
+    CONTAINER: opensuse:leap-15.6-x86_64
 
-opensuse-leap-clang-debug:
+opensuse-leap-15.6-clang-debug:
   extends: .clang-x86-64-build-debug
   variables:
-    CONTAINER: suse:opensuse-leap
+    CONTAINER: opensuse:leap-15.6-x86_64
 
-opensuse-leap-gcc:
+opensuse-leap-15.6-gcc:
   extends: .gcc-x86-64-build
   variables:
-    CONTAINER: suse:opensuse-leap
+    CONTAINER: opensuse:leap-15.6-x86_64
 
-opensuse-leap-gcc-debug:
+opensuse-leap-15.6-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
-    CONTAINER: suse:opensuse-leap
+    CONTAINER: opensuse:leap-15.6-x86_64
 
 opensuse-tumbleweed-clang:
   extends: .clang-x86-64-build
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index c4f013702122..d8110b125333 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -42,7 +42,7 @@ case "_${CONTAINER}" in
     _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
     _bionic) CONTAINER="${BASE}/ubuntu:bionic" ;;
     _xenial) CONTAINER="${BASE}/ubuntu:xenial" ;;
-    _opensuse-leap|_leap) CONTAINER="${BASE}/suse:opensuse-leap" ;;
+    _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
 esac
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 12:56:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 12:56:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758003.1167200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSFop-0001Gr-FK; Fri, 12 Jul 2024 12:56:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758003.1167200; Fri, 12 Jul 2024 12: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 1sSFop-0001Gk-CL; Fri, 12 Jul 2024 12:56:11 +0000
Received: by outflank-mailman (input) for mailman id 758003;
 Fri, 12 Jul 2024 12:56: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=cZP0=OM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sSFon-0001Da-8U
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 12:56:09 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 187899f5-404e-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 14:56:03 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2eaa89464a3so22233061fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 05:56: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
 d2e1a72fcca58-70b4389a37fsm7644663b3a.19.2024.07.12.05.55.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 05:56: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: 187899f5-404e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720788963; x=1721393763; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=G4aFt0Musck3WKNmbrI2z1LEQYKwBW23x/e7j9ACrDA=;
        b=fMdw1G277aOopb3Tl4BYnIlfVGUnPwBjwprg1N3/zivCHyK3iuxkdUi7V/IiFm8NK6
         PpRMNvDBv8z8z8nw5PfcJzO387tkvBi0yIyYtV4XntR0sAZgVDv/t42Ryi+7U7BN3NLM
         ainzT/yiZKxKq383VwXeUEKiH5DKLASte28nQV9KM3qNz9Cw+frrykHKRatpzWyUIf7l
         ss6oD7gTadXUGcZ8KExeGx9jYDoy4J4Cp9DQgwcxQp24o9KDAj31s8a483FHmBIcqoLT
         ZQZJ/kuvSIL7UzRZBzboTjizpYagf+AdHkASfYFhvYoeKptN+uxGI563pbMg4DxHzQoS
         o41w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720788963; x=1721393763;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=G4aFt0Musck3WKNmbrI2z1LEQYKwBW23x/e7j9ACrDA=;
        b=mot/zswmndl+In+2I7cJ2K1JWHqQu4Bq6Q2GBaMI3GLTBLlw5yaaPtX541ajhG24r+
         lqHyWVUWbjitJfppL8PrUZmnwe+kNJIRkg1aTmkuNmEZNjJuTBDQm7OqKt/EgNNxVkSF
         gAHMjG45gkKMjRi6tvwg3qEZ1lL1HNNReB1TgvH8VGIxij8dFVjhRrx7n2yGCq+BgAdj
         O5Bx1utuLZdX2LJEJ3rSEZlEBM+aVDqg7uXa9no/Jac8/FwEB68YBKEUIgKAgv/BSho+
         XkfMN8Y60xkZZ26Vdz2YD6xBxK1AqRW1kdPVzn0Q3gSjG/aIguTJrvKb2bcq7MtZrWZE
         eldQ==
X-Forwarded-Encrypted: i=1; AJvYcCWI/dbaJ+/RwiLI8XwRyDTDDKvR6GNCsciDqzg1IPmGcB3NoDwicBwaCiipT6BQFrVNhGh85I/fQRm+621N48vCN0sW9FoJz3ecyN2DF38=
X-Gm-Message-State: AOJu0YzcJGaZSdg1OcdwgRZGKy6gds0goLUu9dMJXb2h12LL5o5ysk+B
	0/LjHWi/5LEQvdsWT5VS9vDkiJBgbJYRbOwCNiTidY0dFnENema5mbkkVqw0Aw==
X-Google-Smtp-Source: AGHT+IGH96tnDdO6Rotdqz+o4EMITLscGJYzNQn0dKw/aMhekavZRKdNnGGaTwj96QvvYw+Zu6vXeQ==
X-Received: by 2002:a2e:9d13:0:b0:2ee:4ec2:8232 with SMTP id 38308e7fff4ca-2eeb30fd4d7mr79769971fa.25.1720788962880;
        Fri, 12 Jul 2024 05:56:02 -0700 (PDT)
Message-ID: <615bb7d6-4150-45d3-af4e-f2e6f212ebd6@suse.com>
Date: Fri, 12 Jul 2024 14:55:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v3 5/5] xen/public: Introduce PV-IOMMU hypercall
 interface
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
References: <cover.1720703078.git.teddy.astie@vates.tech>
 <f9ae663df38acc0d330b7582dfaa7ac199746aca.1720703078.git.teddy.astie@vates.tech>
 <D2MYC4AEBUQZ.3DNOIV8LEE7F9@cloud.com>
 <1ece7ecb-7f35-4a1c-93f8-ee4191560275@suse.com>
 <46ba77ce-1b32-45cb-bfbb-70c6c0a21b0c@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: <46ba77ce-1b32-45cb-bfbb-70c6c0a21b0c@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.07.2024 14:46, Teddy Astie wrote:
> Hello Jan,
> 
> Le 12/07/2024 à 12:46, Jan Beulich a écrit :
>> On 11.07.2024 21:20, Alejandro Vallejo wrote:
>>> On Thu Jul 11, 2024 at 3:04 PM BST, Teddy Astie wrote:
>>>> --- /dev/null
>>>> +++ b/xen/common/pv-iommu.c
>>>> @@ -0,0 +1,328 @@
>>>> +/* SPDX-License-Identifier: GPL-2.0 */
>>>> +/*
>>>> + * xen/common/pv_iommu.c
>>>> + *
>>>> + * PV-IOMMU hypercall interface.
>>>> + */
>>>> +
>>>> +#include <xen/mm.h>
>>>> +#include <xen/lib.h>
>>>> +#include <xen/iommu.h>
>>>> +#include <xen/sched.h>
>>>> +#include <xen/pci.h>
>>>> +#include <xen/guest_access.h>
>>>> +#include <asm/p2m.h>
>>>> +#include <asm/event.h>
>>>> +#include <public/pv-iommu.h>
>>>> +
>>>> +#define PVIOMMU_PREFIX "[PV-IOMMU] "
>>>> +
>>>> +#define PVIOMMU_MAX_PAGES 256 /* Move to Kconfig ? */
>>>
>>> It probably wants to be a cmdline argument, I think.
>>
>> For Dom0. For DomU-s it wants to be a guest config setting, I suppose. Then
>> again I wonder if I understand the purpose of this correctly: The number looks
>> surprisingly small if it was something the guest may use for arranging its
>> mappings.
> 
> Makes sense to be a guest setting for DomUs. I don't think this limit is 
> too small, actually it means that we can can map up to 1M of contiguous 
> memory in a single hypercall, in the guest case (e.g Linux), it very 
> rarely goes beyond this limit.
> 
> I put this limit to prevent the guest from trying to map millions of 
> pages, which is going to take a while (and may cause stability issues). 
> And to actually give a chance for Xen to preempt the guest (and keep the 
> ability to shut it down between 2 hypercalls).

Oh, this is a per-hypercall limit. Then the identifier is misleading.
Plus I don't see why bigger batches would need rejecting. They only need
breaking up using hypercall continuations.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 12:59:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 12:59:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758010.1167209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSFre-0002mK-Sk; Fri, 12 Jul 2024 12:59:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758010.1167209; Fri, 12 Jul 2024 12:59: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 1sSFre-0002mD-QH; Fri, 12 Jul 2024 12:59:06 +0000
Received: by outflank-mailman (input) for mailman id 758010;
 Fri, 12 Jul 2024 12:59:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSFrd-0002m3-VI; Fri, 12 Jul 2024 12:59:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSFrd-0002sC-UD; Fri, 12 Jul 2024 12:59:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSFrd-0008Qw-F7; Fri, 12 Jul 2024 12:59:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSFrd-0005cM-ET; Fri, 12 Jul 2024 12:59: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=nIgtAhW9MhJju1se/Kmwzj49ni356GQiUroAEBJrFPE=; b=0jfOFss3YwoGc9nC+amOFmhg7R
	vTVUV5nvGOR/KznCK7wsHM168uT/fPXS2FctSa/KEsMgCnbRAVyVxUU9lqbWpxBI0lvZf9SaNl/oX
	J0Bw0ZenwBsbzY53HowIMQ2d7FTs7jDflEQ/OBKZmnzF10Kvo+KpHYbkW/LtdliFoM68=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186778-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186778: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=807ab61359061003c154174799b1e184cb089b46
X-Osstest-Versions-That:
    ovmf=2b6d0eb43439891e641750cd5054b1bc3fb40e72
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 12:59:05 +0000

flight 186778 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186778/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 807ab61359061003c154174799b1e184cb089b46
baseline version:
 ovmf                 2b6d0eb43439891e641750cd5054b1bc3fb40e72

Last test of basis   186777  2024-07-12 08:41:11 Z    0 days
Testing same since   186778  2024-07-12 11:12:54 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Chao Li <lichao@loongson.cn>
  KasimX Liu <kasimx.liu@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   2b6d0eb434..807ab61359  807ab61359061003c154174799b1e184cb089b46 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 13:02:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 13:02:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758020.1167220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSFv5-0004H8-Bw; Fri, 12 Jul 2024 13:02:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758020.1167220; Fri, 12 Jul 2024 13:02: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 1sSFv5-0004H1-99; Fri, 12 Jul 2024 13:02:39 +0000
Received: by outflank-mailman (input) for mailman id 758020;
 Fri, 12 Jul 2024 13:02: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=9lvJ=OM=bounce.vates.tech=bounce-md_30504962.6691296b.v1-2350af86716246c1b8839ef21358bd15@srs-se1.protection.inumbo.net>)
 id 1sSFv4-0004Gv-B9
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 13:02:38 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02c89ac9-404f-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 15:02:37 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WLBZz6tmLz6CQ50G
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 13:02:35 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2350af86716246c1b8839ef21358bd15; Fri, 12 Jul 2024 13:02: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: 02c89ac9-404f-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720789356; x=1721049856;
	bh=J2eajCKSO+EbMlbYqikWZk4lLpbB5rVDfYdGE1afar4=;
	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=UZyjciQ0delnl/do8WSKrJQsu0lJ0DSR8El1FjLQQL8UVewOFTo9q8mRaxb/7Pse5
	 YTEBTPDaGTRdz9zesOgJfcrA3+2rSF5+/YSxUwZU5YpckNcG2g484fGTUFaPNY5KhU
	 Fsc7KYrONltdUcEN7fOm3tmgOQzvaJ5KdTRDLx72qQ1jVtnIVrckc08ZQ8DMVurI8s
	 MSTXGlLlNM8kzm6IMl0ww+BRKO1EpTNQqkkV6XLboS/1AK+gYAy6tkgHU8AOnHSqN3
	 szA9gOMFjPw3mq+522GBo/wlpa9h/hJJGyjlRmqeba7MM20gyFeH9nWKOASyNxzilt
	 q/DqFLQBog5ig==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720789356; x=1721049856; i=anthony.perard@vates.tech;
	bh=J2eajCKSO+EbMlbYqikWZk4lLpbB5rVDfYdGE1afar4=;
	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=vEFRIZPkMRZpQXhQBDHq2YBYE0OSeSOhAA3TLGqMsh4NhVu/U2sh+UB4SGy0pSI1u
	 W9IHqW6hH/XS9M9dpgS2AQNyt4FplP/Ipx4koZkl2mG80jCruTcGxMl75S/YzCGx+g
	 mgSlDj1yYS5KchAUJtJ9kbp8TO1Rp5hAWywTmkk5aLo3Ug5LH672iXR43+cwqk/OuT
	 Doajzave127KSDYJXrdu09VviPjbljRJMisH5Kc0VfloQBatbt9YVDG8W1GmzERBO1
	 rQKMRL4fblG4/LebPUSU53Y/i/XekZiKQlNwIJGppGyWMObsUnOgwukms2JRHXfm6i
	 Z1UYyuIP2tQLw==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=2014/12]=20CI:=20Refresh=20OpenSUSE=20Leap=20container?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720789354475
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>, Olaf Hering <olaf@aepfle.de>
Message-Id: <ZpEpaVCC7KHvkIwK@l14>
References: <20240711210534.3141725-1-andrew.cooper3@citrix.com> <20240712125538.3246947-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240712125538.3246947-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.2350af86716246c1b8839ef21358bd15?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240712:md
Date: Fri, 12 Jul 2024 13:02:35 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Jul 12, 2024 at 01:55:38PM +0100, Andrew Cooper wrote:
> See prior patch for most discussion.
> 
> Despite appearing to be a fixed release (and therefore not marked as permitted
> failure), the dockerfile references the `leap` tag which is rolling in
> practice.  Switch to 15.6 explicitly, for better test stability.
> 
> Vs tumbleweed, use `zypper update` rather than dist-upgrade, and retain the
> RomBIOS dependencies; bin86 and dev86.
> 
> In terms of size, this saves ~700M:
> 
>   registry.gitlab.com/xen-project/xen/opensuse  leap-15.6-x86_64       1.33GB
>   registry.gitlab.com/xen-project/xen/suse      opensuse-leap          2.05GB
> 
> 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 Fri Jul 12 13:08:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 13:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758026.1167250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSG0S-0005io-Go; Fri, 12 Jul 2024 13:08:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758026.1167250; Fri, 12 Jul 2024 13: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 1sSG0S-0005iZ-DE; Fri, 12 Jul 2024 13:08:12 +0000
Received: by outflank-mailman (input) for mailman id 758026;
 Fri, 12 Jul 2024 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=/nkX=OM=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sSG0Q-0005Dy-BM
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 13:08:10 +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 c8d4aeb5-404f-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 15:08:08 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a77c9c5d68bso250053666b.2
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 06:08:08 -0700 (PDT)
Received: from fhilly.. ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a87204esm343023466b.222.2024.07.12.06.08.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 06:08: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: c8d4aeb5-404f-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720789688; x=1721394488; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HPd4QMpgpgaUUa0BsUbRhjLLPAYAaWkzbRkiXpWaltU=;
        b=QFyWKEhEveoosp7HbpA9tOrDq5T3eiWtA3ZZ48wk4PL6D12o9rmbLKU7CyZ/XiBVfG
         YXiQwSRn8O/1X6Qg4e/3rsiPcf6MA/zAosOh4taZlmqVM8CHXoATA4sl/acYLb0kelJq
         iFYGadB/BFVLNypTYFfz0SWj/z2YEMdjsy98c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720789688; x=1721394488;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=HPd4QMpgpgaUUa0BsUbRhjLLPAYAaWkzbRkiXpWaltU=;
        b=k30vqsQLq4KNlF9L3hREXStISHYKt5OrWQUllXxmxswB8z6u8zFpRPdMvrXMg75llx
         daTOY3tdiXYfiRpvGhYqcHDwQSeq5zg2eIIqavkrvCgaarn4G4YA7at5rGjsWe/LH/1G
         sAHCuZ3Q8Xb6f/QhW2Ppv80BnpTNwpjGEFj0u7Yir80ndJL8JpzDdLj6hz7gqBP35MIJ
         NV7h+2MwOPfHm5IMywdS/KrXr4sVIS7MFS8ey4Hmum1poLgjn8fQXC/vLrVAz98HdWgX
         iZJCCUJZ1pfHIqmyVJpnUK75Mb2FmkmEbcjKDdk1hvPJbM7PE047TUC6Aoku/72DnRLZ
         UAaQ==
X-Gm-Message-State: AOJu0YxFc9kN2Zh9ThLZd7ML/CRObet4392NcI3bLi+yinxc4cYnxRBT
	RPxPoGUzOFuML+mbwXGwKja57XyUMEhQ22rJcKhssrIStav2X6elyhVaUdtnURmJwh/muM3PeSm
	Q
X-Google-Smtp-Source: AGHT+IEtiEEVaMLwPlciJZbSFAl17Bhi/cRhUb7hq1LiFMcbqqmgNw2S/16O4StWpVycT2yJxzXBqQ==
X-Received: by 2002:a17:906:260f:b0:a77:c364:c4e9 with SMTP id a640c23a62f3a-a780b705312mr688968166b.45.1720789687419;
        Fri, 12 Jul 2024 06:08:07 -0700 (PDT)
From: Fouad Hilly <fouad.hilly@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Fouad Hilly <fouad.hilly@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v5 2/4] x86/ucode: refactor xen-ucode to utilize getopt
Date: Fri, 12 Jul 2024 14:07:47 +0100
Message-ID: <20240712130749.1272741-3-fouad.hilly@cloud.com>
X-Mailer: git-send-email 2.42.0
In-Reply-To: <20240712130749.1272741-1-fouad.hilly@cloud.com>
References: <20240712130749.1272741-1-fouad.hilly@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Use getopt_long() to handle command line arguments.
Introduce ext_err for common exit with errors.
Introducing usage() to handle usage\help messages in a common block.
show_curr_cpu is printed to stdout only.

Signed-off-by: Fouad Hilly <fouad.hilly@cloud.com>
---
[v5]
1- Update message description.
2- re-arrange static and automatic variables.
3- Fix indentations.
4- reverted the deletion of show-cpu-info for backwards compatibility.
[v4]
1- Merge three patches into one.
2- usage() to print messages to the correct stream.
3- Update commit message and description.
---
 tools/misc/xen-ucode.c | 52 +++++++++++++++++++++++++++++++++++-------
 1 file changed, 44 insertions(+), 8 deletions(-)

diff --git a/tools/misc/xen-ucode.c b/tools/misc/xen-ucode.c
index 390969db3d1c..8de82e5b8a10 100644
--- a/tools/misc/xen-ucode.c
+++ b/tools/misc/xen-ucode.c
@@ -11,6 +11,7 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <xenctrl.h>
+#include <getopt.h>
 
 static xc_interface *xch;
 
@@ -71,12 +72,29 @@ static void show_curr_cpu(FILE *f)
     }
 }
 
+static void usage(FILE *stream, const char *name)
+{
+    fprintf(stream,
+            "%s: Xen microcode updating tool\n"
+            "options:\n"
+            "  -h, --help            display this help\n"
+            "  -s, --show-cpu-info   show CPU information\n"
+            "Usage: %s [microcode file] [options]\n", name, name);
+    show_curr_cpu(stream);
+}
+
 int main(int argc, char *argv[])
 {
+    static const struct option options[] = {
+        {"help", no_argument, NULL, 'h'},
+        {"show-cpu-info", no_argument, NULL, 's'},
+        {NULL, no_argument, NULL, 0}
+    };
     int fd, ret;
     char *filename, *buf;
     size_t len;
     struct stat st;
+    int opt;
 
     xch = xc_interface_open(NULL, NULL, 0);
     if ( xch == NULL )
@@ -86,22 +104,34 @@ int main(int argc, char *argv[])
         exit(1);
     }
 
-    if ( argc < 2 )
+    while ( (opt = getopt_long(argc, argv, "hs", options, NULL)) != -1 )
     {
-        fprintf(stderr,
-                "xen-ucode: Xen microcode updating tool\n"
-                "Usage: %s [<microcode file> | show-cpu-info]\n", argv[0]);
-        show_curr_cpu(stderr);
-        exit(2);
+        switch (opt)
+        {
+        case 'h':
+            usage(stdout, argv[0]);
+            exit(EXIT_SUCCESS);
+
+        case 's':
+            show_curr_cpu(stdout);
+            exit(EXIT_SUCCESS);
+
+        default:
+            goto ext_err;
+        }
     }
 
-    if ( !strcmp(argv[1], "show-cpu-info") )
+    if ( optind == argc )
+        goto ext_err;
+
+    /* For backwards compatibility to the pre-getopt() cmdline handling */
+    if ( !strcmp(argv[optind], "show-cpu-info") )
     {
         show_curr_cpu(stdout);
         return 0;
     }
 
-    filename = argv[1];
+    filename = argv[optind];
     fd = open(filename, O_RDONLY);
     if ( fd < 0 )
     {
@@ -146,4 +176,10 @@ int main(int argc, char *argv[])
     close(fd);
 
     return 0;
+
+ ext_err:
+    fprintf(stderr,
+            "%s: unable to process command line arguments\n", argv[0]);
+    usage(stderr, argv[0]);
+    exit(EXIT_FAILURE);
 }
-- 
2.42.0



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 13:08:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 13:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758025.1167236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSG0R-0005IY-7z; Fri, 12 Jul 2024 13:08:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758025.1167236; Fri, 12 Jul 2024 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 1sSG0R-0005Hl-2M; Fri, 12 Jul 2024 13:08:11 +0000
Received: by outflank-mailman (input) for mailman id 758025;
 Fri, 12 Jul 2024 13:08: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=/nkX=OM=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sSG0P-0005Dy-Lj
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 13:08:09 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c8498f11-404f-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 15:08:08 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-58e76294858so5446605a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 06:08:08 -0700 (PDT)
Received: from fhilly.. ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a87204esm343023466b.222.2024.07.12.06.08.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 06:08: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: c8498f11-404f-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720789687; x=1721394487; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lKSvI1GhDD74lnKkd7GNWTC2GWZKCFTz0GYz5GHUU34=;
        b=dl0WWk2nWX4GTdjJFCuXPfUxZAC/T1o/asiS500t/xFBUB0gmT17SdYPdM/NKVTNUC
         iidsq67EOEbcrRhUa0GizNEf3Aldb7pSg0Iz/AGdiTNDonGgd2Bq2D2ylGRpHA88HP+r
         Vwam1tza3ePy/uaL7c4BIv+M7XVyMzWx5c5Cw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720789687; x=1721394487;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=lKSvI1GhDD74lnKkd7GNWTC2GWZKCFTz0GYz5GHUU34=;
        b=lJYK3S6nxezMI6nfermrW0KBsAtM1O0n0Rg+rKE20SoxnWI4P2VLa1B5QOMD0JWe18
         Vd8I4zDBFDo6j89/ZcSUj/1OsBshSQctQjxiKuoefgmvUHiDYyNDtXw/ScI67T+FAJwy
         dTSStIuZyauljSV++gVMNj9Y1pQaffPrdSruGjXrMQopJmZGSRbUJDrgmC+9sJddUzu5
         38BGNizlwW4esDhbMK+LmoxoAX78XU5bYqcKJUjFI7V5dwyKb1MpiOzFTahGJlGJSsbc
         d6otZBsEjEPgAenDyEbUpHLkAeGnrfOkfHHUuitCHoe+kUhPRw756rLWDp3wAZyn3SV0
         FWNA==
X-Gm-Message-State: AOJu0YyHLZ+HmcSbL2o55JLpMritAz+CKPSziqniuNAbtp34PM53JvEN
	QibpzFOGSRS5lXuY4G73Y4hzjnexXoj5v5UUa6nDjcMh3T8zOOYByZrBwqN41FmlVB5m+etGooM
	P
X-Google-Smtp-Source: AGHT+IF7dlL60wQIT5woQMJLiW0PmggqfXyi+MbjZPlQI4HPR3z0BjH0ehHBfSQMo8BNWw+ZFygcEw==
X-Received: by 2002:a17:906:e099:b0:a72:8c53:1798 with SMTP id a640c23a62f3a-a799cd36c58mr168771766b.30.1720789686709;
        Fri, 12 Jul 2024 06:08:06 -0700 (PDT)
From: Fouad Hilly <fouad.hilly@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Fouad Hilly <fouad.hilly@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 1/4] x86/ucode: Introduce XENPF_microcode_update2 with flags parameter
Date: Fri, 12 Jul 2024 14:07:46 +0100
Message-ID: <20240712130749.1272741-2-fouad.hilly@cloud.com>
X-Mailer: git-send-email 2.42.0
In-Reply-To: <20240712130749.1272741-1-fouad.hilly@cloud.com>
References: <20240712130749.1272741-1-fouad.hilly@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Refactor microcode_update() by adding flags field.
struct xenpf_microcode_update2 added with uint32_t flags field.
Introduce XENPF_microcode_update2 hypercall with flags field.

Signed-off-by: Fouad Hilly <fouad.hilly@cloud.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
[v5]
1- Update commit message to include the full name of XENPF_microcode_update2
[v4]
1- Commit message and description updated.
2- Changing the order of the patches.
[v3]
1- Updated Commit message description.
2- Revereted changes to a stable ABI and introduced a new struct.
3- ucode_force_flag updated from static to a local variable.
4- microcode_update() updated to reject unsupported flags yet.
[v2]
1- Update message description to highlight interface change.
2- Removed extra empty lines.
3- removed unnecessary define.
4- Corrected long lines.
5- Removed ternary operator.
6- Introduced static ucode_update_flags, which will be used later to determine local ucode_force_flag.
---
 xen/arch/x86/cpu/microcode/core.c    | 11 ++++++++---
 xen/arch/x86/include/asm/microcode.h |  3 ++-
 xen/arch/x86/platform_hypercall.c    | 13 ++++++++++++-
 xen/include/public/platform.h        | 14 ++++++++++++++
 4 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index e90055772acf..8a9e744489b9 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -40,6 +40,8 @@
 #include <asm/processor.h>
 #include <asm/setup.h>
 
+#include <public/platform.h>
+
 #include "private.h"
 
 /*
@@ -570,6 +572,7 @@ static int cf_check do_microcode_update(void *patch)
 }
 
 struct ucode_buf {
+    unsigned int flags;
     unsigned int len;
     char buffer[];
 };
@@ -708,13 +711,14 @@ static long cf_check microcode_update_helper(void *data)
     return ret;
 }
 
-int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
+int microcode_update(XEN_GUEST_HANDLE(const_void) buf,
+                     unsigned long len, unsigned int flags)
 {
     int ret;
     struct ucode_buf *buffer;
 
-    if ( len != (uint32_t)len )
-        return -E2BIG;
+    if ( flags & ~XENPF_UCODE_FORCE )
+        return -EINVAL;
 
     if ( !ucode_ops.apply_microcode )
         return -EINVAL;
@@ -730,6 +734,7 @@ int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
         return -EFAULT;
     }
     buffer->len = len;
+    buffer->flags = flags;
 
     /*
      * Always queue microcode_update_helper() on CPU0.  Most of the logic
diff --git a/xen/arch/x86/include/asm/microcode.h b/xen/arch/x86/include/asm/microcode.h
index 8f59b20b0289..57c08205d475 100644
--- a/xen/arch/x86/include/asm/microcode.h
+++ b/xen/arch/x86/include/asm/microcode.h
@@ -22,7 +22,8 @@ struct cpu_signature {
 DECLARE_PER_CPU(struct cpu_signature, cpu_sig);
 
 void microcode_set_module(unsigned int idx);
-int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len);
+int microcode_update(XEN_GUEST_HANDLE(const_void) buf,
+                     unsigned long len, unsigned int flags);
 int early_microcode_init(unsigned long *module_map,
                          const struct multiboot_info *mbi);
 int microcode_init_cache(unsigned long *module_map,
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 95467b88ab64..7e3278109300 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -311,7 +311,18 @@ ret_t do_platform_op(
 
         guest_from_compat_handle(data, op->u.microcode.data);
 
-        ret = microcode_update(data, op->u.microcode.length);
+        ret = microcode_update(data, op->u.microcode.length, 0);
+        break;
+    }
+
+    case XENPF_microcode_update2:
+    {
+        XEN_GUEST_HANDLE(const_void) data;
+
+        guest_from_compat_handle(data, op->u.microcode2.data);
+
+        ret = microcode_update(data, op->u.microcode2.length,
+                               op->u.microcode2.flags);
         break;
     }
 
diff --git a/xen/include/public/platform.h b/xen/include/public/platform.h
index 15777b541690..2725b8d1044f 100644
--- a/xen/include/public/platform.h
+++ b/xen/include/public/platform.h
@@ -624,6 +624,19 @@ struct xenpf_ucode_revision {
 typedef struct xenpf_ucode_revision xenpf_ucode_revision_t;
 DEFINE_XEN_GUEST_HANDLE(xenpf_ucode_revision_t);
 
+/* Hypercall to microcode_update with flags */
+#define XENPF_microcode_update2    66
+struct xenpf_microcode_update2 {
+    /* IN variables. */
+    uint32_t flags;                   /* Flags to be passed with ucode. */
+/* Force to skip microcode version check */
+#define XENPF_UCODE_FORCE           1
+    uint32_t length;                  /* Length of microcode data. */
+    XEN_GUEST_HANDLE(const_void) data;/* Pointer to microcode data */
+};
+typedef struct xenpf_microcode_update2 xenpf_microcode_update2_t;
+DEFINE_XEN_GUEST_HANDLE(xenpf_microcode_update2_t);
+
 /*
  * ` enum neg_errnoval
  * ` HYPERVISOR_platform_op(const struct xen_platform_op*);
@@ -656,6 +669,7 @@ struct xen_platform_op {
         xenpf_symdata_t               symdata;
         xenpf_dom0_console_t          dom0_console;
         xenpf_ucode_revision_t        ucode_revision;
+        xenpf_microcode_update2_t     microcode2;
         uint8_t                       pad[128];
     } u;
 };
-- 
2.42.0



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 13:08:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 13:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758028.1167270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSG0U-0006DG-4n; Fri, 12 Jul 2024 13:08:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758028.1167270; Fri, 12 Jul 2024 13:08: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 1sSG0U-0006Cl-0W; Fri, 12 Jul 2024 13:08:14 +0000
Received: by outflank-mailman (input) for mailman id 758028;
 Fri, 12 Jul 2024 13: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=/nkX=OM=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sSG0S-0005Dy-BY
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 13:08:12 +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 c9a1a27b-404f-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 15:08:10 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a77e85cb9b4so269121066b.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 06:08:10 -0700 (PDT)
Received: from fhilly.. ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a87204esm343023466b.222.2024.07.12.06.08.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 06:08: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: c9a1a27b-404f-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720789689; x=1721394489; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=whToGD1DSrObOBTapTvNuH8JLCI/G4TaeHuUCU4s/+Y=;
        b=XcYnKqy/EASk6PAFbsUI2PZW2RldYg66HF6djGazC+tqEiVbqJBhM2hFz0SNgVg/XL
         GRg7uP+AnWftKI4lLu4e8TMbd2o3QAt26fK3uV7iysrEXdWNgFTBgZWnQ4XszaUe3H91
         g+P+nHYdyhYL0V34k8sJ+/cvX2GFio7ZGsHPQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720789689; x=1721394489;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=whToGD1DSrObOBTapTvNuH8JLCI/G4TaeHuUCU4s/+Y=;
        b=YidYpK3SNVDTZ8yVmT00O1rN4A8Knv5CkCwFAY5MN3OATWGkqjTAranByMFCo12ia1
         XImw23pkBtskrZhb9FqyjxIn58fyBmRem8hQBg8F+5KOYGcqscKsMC1KbGTJcJ9GSNhP
         fUsPEPMfdQIBov3tLB4NNwU2XezCKsGouZpI0Kowk+YjS96BgpsQFwhhTLBOMgPzmoYv
         Q08LowT4fS22mUszn+1UsHL/4jLaiXX+Fha4dLfCFReDDISraAd+JXtpcQyjmvpXHqGF
         vznGtIKw9TKh7zBgKtCjRJgsihkDmfJnam/DKlyGzKzyuF0eR0aSZnhX48MWMx6EyvCb
         E6Ow==
X-Gm-Message-State: AOJu0YzTqpicixnZKgnJvrDETXG+IuQscFGr/uo5gK9RNqBY/c4wfVSO
	dMG2HKTODV/NHjZ3+4hmKohSnzbBq8WJve6ZDfM85aeGbAl25fM83qgfh0+E3uePVk1FRBXHoRn
	E
X-Google-Smtp-Source: AGHT+IEdA9Cz83EZJSxAH1Fuqkpusyqqzjn/AqTYK7EiRWSKEsbzDbP8vq5akLT8oTFOPmzIL9ROzg==
X-Received: by 2002:a17:906:aacd:b0:a77:db97:f4fd with SMTP id a640c23a62f3a-a780b6ff016mr700949266b.34.1720789689018;
        Fri, 12 Jul 2024 06:08:09 -0700 (PDT)
From: Fouad Hilly <fouad.hilly@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Fouad Hilly <fouad.hilly@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v5 4/4] x86/ucode: Utilize ucode_force and remove opt_ucode_allow_same
Date: Fri, 12 Jul 2024 14:07:49 +0100
Message-ID: <20240712130749.1272741-5-fouad.hilly@cloud.com>
X-Mailer: git-send-email 2.42.0
In-Reply-To: <20240712130749.1272741-1-fouad.hilly@cloud.com>
References: <20240712130749.1272741-1-fouad.hilly@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Pass xen-ucode flags to do low level checks on micorocde version and
utilize it to allow for microcode downgrade or reapply the same version of the
microcode.
ucode_force is required to be passed to a low level Intel and AMD for version
checks to be done.
While adding ucode_force, opt_ucode_allow_same was removed.
Remove opt_ucode_allow_same from documentation.

Signed-off-by: Fouad Hilly <fouad.hilly@cloud.com>
---
[v5]
1- Update commit message.
2- Introduce structs microcode_patch_with_flags and microcode_nmi_patch_with_flags.
3- pass flags to Intel and AMD low level through apply_microcode().
[4]
1- As opt_ucode_allow_same is not required anymore, it has been removed while introducing ucode_force.
2- Apply the changes for both AMD and Intel.
3- Remove the mention of opt_ucode_allow_same from documentation.
---
 docs/misc/xen-command-line.pandoc    |  7 +--
 xen/arch/x86/cpu/microcode/amd.c     |  8 ++-
 xen/arch/x86/cpu/microcode/core.c    | 93 +++++++++++++++++-----------
 xen/arch/x86/cpu/microcode/intel.c   |  9 ++-
 xen/arch/x86/cpu/microcode/private.h |  5 +-
 5 files changed, 73 insertions(+), 49 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 98a45211556b..2a8d47bbc664 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2650,7 +2650,7 @@ performance.
    Alternatively, selecting `tsx=1` will re-enable TSX at the users own risk.
 
 ### ucode
-> `= List of [ <integer> | scan=<bool>, nmi=<bool>, allow-same=<bool> ]`
+> `= List of [ <integer> | scan=<bool>, nmi=<bool> ]`
 
     Applicability: x86
     Default: `nmi`
@@ -2682,11 +2682,6 @@ precedence over `scan`.
 stop_machine context. In NMI handler, even NMIs are blocked, which is
 considered safer. The default value is `true`.
 
-'allow-same' alters the default acceptance policy for new microcode to permit
-trying to reload the same version.  Many CPUs will actually reload microcode
-of the same version, and this allows for easy testing of the late microcode
-loading path.
-
 ### unrestricted_guest (Intel)
 > `= <boolean>`
 
diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index f76a563c8b84..8ec19441cfcd 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -22,6 +22,8 @@
 
 #include "private.h"
 
+#include "public/platform.h"
+
 #define pr_debug(x...) ((void)0)
 
 struct equiv_cpu_entry {
@@ -214,13 +216,15 @@ static enum microcode_match_result cf_check compare_patch(
     return compare_header(new, old);
 }
 
-static int cf_check apply_microcode(const struct microcode_patch *patch)
+static int cf_check apply_microcode(const struct microcode_patch *patch,
+                                    unsigned int flags)
 {
     int hw_err;
     unsigned int cpu = smp_processor_id();
     struct cpu_signature *sig = &per_cpu(cpu_sig, cpu);
     uint32_t rev, old_rev = sig->rev;
     enum microcode_match_result result = microcode_fits(patch);
+    bool ucode_force = flags == XENPF_UCODE_FORCE;
 
     if ( result == MIS_UCODE )
         return -EINVAL;
@@ -229,7 +233,7 @@ static int cf_check apply_microcode(const struct microcode_patch *patch)
      * Allow application of the same revision to pick up SMT-specific changes
      * even if the revision of the other SMT thread is already up-to-date.
      */
-    if ( result == OLD_UCODE )
+    if ( !ucode_force && (result == SAME_UCODE || result == OLD_UCODE) )
         return -EEXIST;
 
     if ( check_final_patch_levels(sig) )
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 8a9e744489b9..2e3923152367 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -90,6 +90,16 @@ struct ucode_mod_blob {
     size_t size;
 };
 
+struct microcode_patch_with_flags {
+    unsigned int flags;
+    struct microcode_patch *patch;
+};
+
+struct microcode_nmi_patch_with_flags {
+    unsigned int flags;
+    const struct microcode_patch *patch;
+};
+
 static struct ucode_mod_blob __initdata ucode_blob;
 /*
  * By default we will NOT parse the multiboot modules to see if there is
@@ -100,8 +110,6 @@ static bool __initdata ucode_scan;
 /* By default, ucode loading is done in NMI handler */
 static bool ucode_in_nmi = true;
 
-bool __read_mostly opt_ucode_allow_same;
-
 /* Protected by microcode_mutex */
 static struct microcode_patch *microcode_cache;
 
@@ -128,8 +136,6 @@ static int __init cf_check parse_ucode(const char *s)
 
         if ( (val = parse_boolean("nmi", s, ss)) >= 0 )
             ucode_in_nmi = val;
-        else if ( (val = parse_boolean("allow-same", s, ss)) >= 0 )
-            opt_ucode_allow_same = val;
         else if ( !ucode_mod_forced ) /* Not forced by EFI */
         {
             if ( (val = parse_boolean("scan", s, ss)) >= 0 )
@@ -237,7 +243,11 @@ static DEFINE_PER_CPU(int, loading_err);
  */
 static cpumask_t cpu_callin_map;
 static atomic_t cpu_out, cpu_updated;
-static const struct microcode_patch *nmi_patch = ZERO_BLOCK_PTR;
+static struct microcode_nmi_patch_with_flags nmi_patch_with_flags =
+{
+    .flags  = 0,
+    .patch  = ZERO_BLOCK_PTR,
+};
 
 /*
  * Return a patch that covers current CPU. If there are multiple patches,
@@ -327,7 +337,8 @@ static bool cf_check wait_cpu_callout(unsigned int nr)
  * If no patch is provided, the cached patch will be loaded. Microcode update
  * during APs bringup and CPU resuming falls into this case.
  */
-static int microcode_update_cpu(const struct microcode_patch *patch)
+static int microcode_update_cpu(const struct microcode_patch *patch,
+                                unsigned int flags)
 {
     int err;
 
@@ -335,10 +346,11 @@ static int microcode_update_cpu(const struct microcode_patch *patch)
 
     spin_lock(&microcode_mutex);
     if ( patch )
-        err = alternative_call(ucode_ops.apply_microcode, patch);
+        err = alternative_call(ucode_ops.apply_microcode, patch, flags);
     else if ( microcode_cache )
     {
-        err = alternative_call(ucode_ops.apply_microcode, microcode_cache);
+        err = alternative_call(ucode_ops.apply_microcode, microcode_cache,
+                               flags);
         if ( err == -EIO )
         {
             microcode_free_patch(microcode_cache);
@@ -379,7 +391,8 @@ static int secondary_nmi_work(void)
     return wait_for_state(LOADING_EXIT) ? 0 : -EBUSY;
 }
 
-static int primary_thread_work(const struct microcode_patch *patch)
+static int primary_thread_work(const struct microcode_patch *patch,
+                               unsigned int flags)
 {
     int ret;
 
@@ -388,7 +401,7 @@ static int primary_thread_work(const struct microcode_patch *patch)
     if ( !wait_for_state(LOADING_ENTER) )
         return -EBUSY;
 
-    ret = alternative_call(ucode_ops.apply_microcode, patch);
+    ret = alternative_call(ucode_ops.apply_microcode, patch, flags);
     if ( !ret )
         atomic_inc(&cpu_updated);
     atomic_inc(&cpu_out);
@@ -416,7 +429,8 @@ static int cf_check microcode_nmi_callback(
         return 0;
 
     if ( primary_cpu )
-        ret = primary_thread_work(nmi_patch);
+        ret = primary_thread_work(nmi_patch_with_flags.patch,
+                                  nmi_patch_with_flags.flags);
     else
         ret = secondary_nmi_work();
     this_cpu(loading_err) = ret;
@@ -446,7 +460,8 @@ static int secondary_thread_fn(void)
     return this_cpu(loading_err);
 }
 
-static int primary_thread_fn(const struct microcode_patch *patch)
+static int primary_thread_fn(const struct microcode_patch *patch,
+                             unsigned int flags)
 {
     if ( !wait_for_state(LOADING_CALLIN) )
         return -EBUSY;
@@ -466,10 +481,11 @@ static int primary_thread_fn(const struct microcode_patch *patch)
         return this_cpu(loading_err);
     }
 
-    return primary_thread_work(patch);
+    return primary_thread_work(patch, flags);
 }
 
-static int control_thread_fn(const struct microcode_patch *patch)
+static int control_thread_fn(const struct microcode_patch *patch,
+                             unsigned int flags)
 {
     unsigned int cpu = smp_processor_id(), done;
     unsigned long tick;
@@ -482,7 +498,8 @@ static int control_thread_fn(const struct microcode_patch *patch)
      */
     watchdog_disable();
 
-    nmi_patch = patch;
+    nmi_patch_with_flags.patch = patch;
+    nmi_patch_with_flags.flags = flags;
     smp_wmb();
     saved_nmi_callback = set_nmi_callback(microcode_nmi_callback);
 
@@ -498,7 +515,7 @@ static int control_thread_fn(const struct microcode_patch *patch)
         goto out;
 
     /* Control thread loads ucode first while others are in NMI handler. */
-    ret = alternative_call(ucode_ops.apply_microcode, patch);
+    ret = alternative_call(ucode_ops.apply_microcode, patch, flags);
     if ( !ret )
         atomic_inc(&cpu_updated);
     atomic_inc(&cpu_out);
@@ -544,17 +561,19 @@ static int control_thread_fn(const struct microcode_patch *patch)
 
     set_nmi_callback(saved_nmi_callback);
     smp_wmb();
-    nmi_patch = ZERO_BLOCK_PTR;
+    nmi_patch_with_flags.patch = ZERO_BLOCK_PTR;
+    nmi_patch_with_flags.flags = 0;
 
     watchdog_enable();
 
     return ret;
 }
 
-static int cf_check do_microcode_update(void *patch)
+static int cf_check do_microcode_update(void *_patch_with_flags)
 {
     unsigned int cpu = smp_processor_id();
     int ret;
+    struct microcode_patch_with_flags * patch_with_flags = _patch_with_flags;
 
     /*
      * The control thread set state to coordinate ucode loading. Primary
@@ -562,9 +581,11 @@ static int cf_check do_microcode_update(void *patch)
      * the completion of the ucode loading process.
      */
     if ( cpu == cpumask_first(&cpu_online_map) )
-        ret = control_thread_fn(patch);
+        ret = control_thread_fn(patch_with_flags->patch,
+                                patch_with_flags->flags);
     else if ( is_cpu_primary(cpu) )
-        ret = primary_thread_fn(patch);
+        ret = primary_thread_fn(patch_with_flags->patch,
+                                patch_with_flags->flags);
     else
         ret = secondary_thread_fn();
 
@@ -582,7 +603,8 @@ static long cf_check microcode_update_helper(void *data)
     int ret;
     struct ucode_buf *buffer = data;
     unsigned int cpu, updated;
-    struct microcode_patch *patch;
+    struct microcode_patch_with_flags patch_with_flags;
+    bool ucode_force = buffer->flags == XENPF_UCODE_FORCE;
 
     /* cpu_online_map must not change during update */
     if ( !get_cpu_maps() )
@@ -606,16 +628,17 @@ static long cf_check microcode_update_helper(void *data)
         goto put;
     }
 
-    patch = parse_blob(buffer->buffer, buffer->len);
+    patch_with_flags.patch = parse_blob(buffer->buffer, buffer->len);
+    patch_with_flags.flags = buffer->flags;
     xfree(buffer);
-    if ( IS_ERR(patch) )
+    if ( IS_ERR(patch_with_flags.patch) )
     {
-        ret = PTR_ERR(patch);
+        ret = PTR_ERR(patch_with_flags.patch);
         printk(XENLOG_WARNING "Parsing microcode blob error %d\n", ret);
         goto put;
     }
 
-    if ( !patch )
+    if ( !patch_with_flags.patch )
     {
         printk(XENLOG_WARNING "microcode: couldn't find any matching ucode in "
                               "the provided blob!\n");
@@ -632,17 +655,17 @@ static long cf_check microcode_update_helper(void *data)
     {
         enum microcode_match_result result;
 
-        result = alternative_call(ucode_ops.compare_patch, patch,
-                                  microcode_cache);
+        result = alternative_call(ucode_ops.compare_patch,
+                                  patch_with_flags.patch, microcode_cache);
 
         if ( result != NEW_UCODE &&
-             !(opt_ucode_allow_same && result == SAME_UCODE) )
+             !(ucode_force && (result == OLD_UCODE || result == SAME_UCODE)) )
         {
             spin_unlock(&microcode_mutex);
             printk(XENLOG_WARNING
                    "microcode: couldn't find any newer%s revision in the provided blob!\n",
-                   opt_ucode_allow_same ? " (or the same)" : "");
-            microcode_free_patch(patch);
+                   ucode_force? " (or a valid)" : "");
+            microcode_free_patch(patch_with_flags.patch);
             ret = -EEXIST;
 
             goto put;
@@ -674,13 +697,13 @@ static long cf_check microcode_update_helper(void *data)
      *   this requirement can be relaxed in the future. Right now, this is
      *   conservative and good.
      */
-    ret = stop_machine_run(do_microcode_update, patch, NR_CPUS);
+    ret = stop_machine_run(do_microcode_update, &patch_with_flags, NR_CPUS);
 
     updated = atomic_read(&cpu_updated);
     if ( updated > 0 )
     {
         spin_lock(&microcode_mutex);
-        microcode_update_cache(patch);
+        microcode_update_cache(patch_with_flags.patch);
         spin_unlock(&microcode_mutex);
 
         /*
@@ -697,7 +720,7 @@ static long cf_check microcode_update_helper(void *data)
             alternative_vcall(ctxt_switch_masking, current);
     }
     else
-        microcode_free_patch(patch);
+        microcode_free_patch(patch_with_flags.patch);
 
     if ( updated && updated != nr_cores )
         printk(XENLOG_ERR "ERROR: Updating microcode succeeded on %u cores and failed\n"
@@ -775,7 +798,7 @@ int microcode_update_one(void)
     if ( !ucode_ops.apply_microcode )
         return -EOPNOTSUPP;
 
-    return microcode_update_cpu(NULL);
+    return microcode_update_cpu(NULL, 0);
 }
 
 static int __init early_update_cache(const void *data, size_t len)
@@ -858,7 +881,7 @@ static int __init early_microcode_update_cpu(void)
     if ( !patch )
         return -ENOENT;
 
-    return microcode_update_cpu(patch);
+    return microcode_update_cpu(patch, 0);
 }
 
 int __init early_microcode_init(unsigned long *module_map,
diff --git a/xen/arch/x86/cpu/microcode/intel.c b/xen/arch/x86/cpu/microcode/intel.c
index f505aa1b7888..cb6e906481a4 100644
--- a/xen/arch/x86/cpu/microcode/intel.c
+++ b/xen/arch/x86/cpu/microcode/intel.c
@@ -29,6 +29,8 @@
 
 #include "private.h"
 
+#include "public/platform.h"
+
 #define pr_debug(x...) ((void)0)
 
 struct microcode_patch {
@@ -284,21 +286,22 @@ static enum microcode_match_result cf_check compare_patch(
     return compare_revisions(old->rev, new->rev);
 }
 
-static int cf_check apply_microcode(const struct microcode_patch *patch)
+static int cf_check apply_microcode(const struct microcode_patch *patch,
+                                    unsigned int flags)
 {
     uint64_t msr_content;
     unsigned int cpu = smp_processor_id();
     struct cpu_signature *sig = &this_cpu(cpu_sig);
     uint32_t rev, old_rev = sig->rev;
     enum microcode_match_result result;
+    bool ucode_force = flags == XENPF_UCODE_FORCE;
 
     result = microcode_update_match(patch);
 
     if ( result == MIS_UCODE )
         return -EINVAL;
 
-    if ( result == OLD_UCODE ||
-         (result == SAME_UCODE && !opt_ucode_allow_same) )
+    if ( !ucode_force && (result == SAME_UCODE || result == OLD_UCODE) )
         return -EEXIST;
 
     wbinvd();
diff --git a/xen/arch/x86/cpu/microcode/private.h b/xen/arch/x86/cpu/microcode/private.h
index da556fe5060a..017889e1b58d 100644
--- a/xen/arch/x86/cpu/microcode/private.h
+++ b/xen/arch/x86/cpu/microcode/private.h
@@ -3,8 +3,6 @@
 
 #include <asm/microcode.h>
 
-extern bool opt_ucode_allow_same;
-
 enum microcode_match_result {
     OLD_UCODE, /* signature matched, but revision id is older */
     SAME_UCODE, /* signature matched, but revision id is the same */
@@ -50,7 +48,8 @@ struct microcode_ops {
      * Attempt to load the provided patch into the CPU.  Returns an error if
      * anything didn't go as expected.
      */
-    int (*apply_microcode)(const struct microcode_patch *patch);
+    int (*apply_microcode)(const struct microcode_patch *patch,
+                           unsigned int flags);
 
     /*
      * Given two patches, are they both applicable to the current CPU, and is
-- 
2.42.0



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 13:08:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 13:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758027.1167256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSG0S-0005mW-TY; Fri, 12 Jul 2024 13:08:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758027.1167256; Fri, 12 Jul 2024 13: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 1sSG0S-0005mD-OI; Fri, 12 Jul 2024 13:08:12 +0000
Received: by outflank-mailman (input) for mailman id 758027;
 Fri, 12 Jul 2024 13: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=/nkX=OM=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sSG0R-0005Dy-BU
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 13:08:11 +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 c91a45ad-404f-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 15:08:09 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-59a47d5c22aso453822a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 06:08:09 -0700 (PDT)
Received: from fhilly.. ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a87204esm343023466b.222.2024.07.12.06.08.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 06:08: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: c91a45ad-404f-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720789688; x=1721394488; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jqoFysOPJW7YOcR+zHukiDmJkfpnoSrHwiTuqUDKgjg=;
        b=GQPIkuuB3KsahwLKvDLfq2k52enIkRK72/qt0wtToSLSclVdUTLVvoPg50CEg6T9a4
         xaO909eBK78qlsqS4yjX7wFC/FojXytevISsbzPAjDVIFkOHGc8Tmt5R49GukFoztXQc
         29FwButSma26VSKcIft6lcJN2D5YSEQJEpiZY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720789688; x=1721394488;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=jqoFysOPJW7YOcR+zHukiDmJkfpnoSrHwiTuqUDKgjg=;
        b=FlOJjsumgtRIuAJ7ANkC/dWU1nKtcV+7Iz/Jd7mGcgLYIk4nP478CxCxvqyPMwo4+9
         rTORICSK/RmqZ2lj7pFd0jfJyy0TGoRbEPewgHVgIZYJU+4Ajc+/yyVHZd1Xh/VYY7Rb
         nkE1frYYHtpTLsB1uYx7Y5P/bb0/W8J1eT9NuFF33464+SRM3LUrk8JT/rKe3qrr+lA3
         8ZU9X4WrT7bfGU45L0wHWWu9RzhR/xfVxTbkxtQ2ufvjTr9U+ubfemyzWNGJCX4dzao6
         zk3FpeUEIbVr6GV113DblfZlmqQd3miO8Rrtg4B/9mbKjHt6JDy6Skbnb3U5693DqDA1
         WtyQ==
X-Gm-Message-State: AOJu0YwS+HLQ4+Imc5MlxpTAOXYIXPDaD3Yim3qtiEPabxyKit6L4KO6
	jIe09C2B9X7BjZKqmqrbvNtXBDUdPqMSUJS2O2mWYEKLEhkNJA8y9cFp6FXPihnUDD1A/bo1zZe
	1
X-Google-Smtp-Source: AGHT+IFx6EKhvldcxltz8Bf/zA2EMBfrB1gPUnalA9jLVj+vwXAgBj4MP4VYm+7dkHZrfxPaNuMtag==
X-Received: by 2002:a17:906:f0cc:b0:a6f:e819:da9c with SMTP id a640c23a62f3a-a780b70539bmr738906466b.43.1720789688335;
        Fri, 12 Jul 2024 06:08:08 -0700 (PDT)
From: Fouad Hilly <fouad.hilly@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Fouad Hilly <fouad.hilly@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v5 3/4] x86/ucode: Introduce --force option to xen-ucode
Date: Fri, 12 Jul 2024 14:07:48 +0100
Message-ID: <20240712130749.1272741-4-fouad.hilly@cloud.com>
X-Mailer: git-send-email 2.42.0
In-Reply-To: <20240712130749.1272741-1-fouad.hilly@cloud.com>
References: <20240712130749.1272741-1-fouad.hilly@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce --force option to xen-ucode to force skipping microcode version check, which
allows the user to update x86 microcode even if both versions are the same or downgrade.
xc_microcode_update() refactored to accept flags and utilize xenpf_microcode_update2.

Signed-off-by: Fouad Hilly <fouad.hilly@cloud.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
[v5]
1- Update commit message.
2- Re-phrase --force option description.
[v4]
1- Add --force to xen-ucode options.
2- Update xc_microcode_update() to accept and handle flags.
---
 tools/include/xenctrl.h   |  3 ++-
 tools/libs/ctrl/xc_misc.c | 12 +++++++-----
 tools/misc/xen-ucode.c    | 13 +++++++++++--
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 9ceca0cffc2f..2c4608c09ab0 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -1171,7 +1171,8 @@ typedef uint32_t xc_node_to_node_dist_t;
 int xc_physinfo(xc_interface *xch, xc_physinfo_t *info);
 int xc_cputopoinfo(xc_interface *xch, unsigned *max_cpus,
                    xc_cputopo_t *cputopo);
-int xc_microcode_update(xc_interface *xch, const void *buf, size_t len);
+int xc_microcode_update(xc_interface *xch, const void *buf,
+                        size_t len, unsigned int flags);
 int xc_get_cpu_version(xc_interface *xch, struct xenpf_pcpu_version *cpu_ver);
 int xc_get_ucode_revision(xc_interface *xch,
                           struct xenpf_ucode_revision *ucode_rev);
diff --git a/tools/libs/ctrl/xc_misc.c b/tools/libs/ctrl/xc_misc.c
index 50282fd60dcc..6a60216bda03 100644
--- a/tools/libs/ctrl/xc_misc.c
+++ b/tools/libs/ctrl/xc_misc.c
@@ -203,11 +203,12 @@ int xc_physinfo(xc_interface *xch,
     return 0;
 }
 
-int xc_microcode_update(xc_interface *xch, const void *buf, size_t len)
+int xc_microcode_update(xc_interface *xch, const void *buf,
+                        size_t len, unsigned int flags)
 {
     int ret;
     struct xen_platform_op platform_op = {};
-    DECLARE_HYPERCALL_BUFFER(struct xenpf_microcode_update, uc);
+    DECLARE_HYPERCALL_BUFFER(struct xenpf_microcode_update2, uc);
 
     uc = xc_hypercall_buffer_alloc(xch, uc, len);
     if ( uc == NULL )
@@ -215,9 +216,10 @@ int xc_microcode_update(xc_interface *xch, const void *buf, size_t len)
 
     memcpy(uc, buf, len);
 
-    platform_op.cmd = XENPF_microcode_update;
-    platform_op.u.microcode.length = len;
-    set_xen_guest_handle(platform_op.u.microcode.data, uc);
+    platform_op.cmd = XENPF_microcode_update2;
+    platform_op.u.microcode2.length = len;
+    platform_op.u.microcode2.flags = flags;
+    set_xen_guest_handle(platform_op.u.microcode2.data, uc);
 
     ret = do_platform_op(xch, &platform_op);
 
diff --git a/tools/misc/xen-ucode.c b/tools/misc/xen-ucode.c
index 8de82e5b8a10..a0eb3f205341 100644
--- a/tools/misc/xen-ucode.c
+++ b/tools/misc/xen-ucode.c
@@ -13,6 +13,8 @@
 #include <xenctrl.h>
 #include <getopt.h>
 
+#include <xen/platform.h>
+
 static xc_interface *xch;
 
 static const char intel_id[] = "GenuineIntel";
@@ -79,6 +81,8 @@ static void usage(FILE *stream, const char *name)
             "options:\n"
             "  -h, --help            display this help\n"
             "  -s, --show-cpu-info   show CPU information\n"
+            "  -f, --force           skip certain checks; do not use unless you"
+            "know exactly what you are doing\n"
             "Usage: %s [microcode file] [options]\n", name, name);
     show_curr_cpu(stream);
 }
@@ -88,6 +92,7 @@ int main(int argc, char *argv[])
     static const struct option options[] = {
         {"help", no_argument, NULL, 'h'},
         {"show-cpu-info", no_argument, NULL, 's'},
+        {"force", no_argument, NULL, 'f'},
         {NULL, no_argument, NULL, 0}
     };
     int fd, ret;
@@ -95,6 +100,7 @@ int main(int argc, char *argv[])
     size_t len;
     struct stat st;
     int opt;
+    uint32_t ucode_flags = 0;
 
     xch = xc_interface_open(NULL, NULL, 0);
     if ( xch == NULL )
@@ -104,7 +110,7 @@ int main(int argc, char *argv[])
         exit(1);
     }
 
-    while ( (opt = getopt_long(argc, argv, "hs", options, NULL)) != -1 )
+    while ( (opt = getopt_long(argc, argv, "hsf", options, NULL)) != -1 )
     {
         switch (opt)
         {
@@ -116,6 +122,9 @@ int main(int argc, char *argv[])
             show_curr_cpu(stdout);
             exit(EXIT_SUCCESS);
 
+        case 'f':
+            ucode_flags = XENPF_UCODE_FORCE;
+            break;
         default:
             goto ext_err;
         }
@@ -156,7 +165,7 @@ int main(int argc, char *argv[])
     }
 
     errno = 0;
-    ret = xc_microcode_update(xch, buf, len);
+    ret = xc_microcode_update(xch, buf, len, ucode_flags);
     if ( ret == -1 && errno == EEXIST )
         printf("Microcode already up to date\n");
     else if ( ret )
-- 
2.42.0



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 13:08:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 13:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758024.1167229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSG0Q-0005Fg-V9; Fri, 12 Jul 2024 13:08:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758024.1167229; Fri, 12 Jul 2024 13:08: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 1sSG0Q-0005FZ-SR; Fri, 12 Jul 2024 13:08:10 +0000
Received: by outflank-mailman (input) for mailman id 758024;
 Fri, 12 Jul 2024 13:08: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=/nkX=OM=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sSG0P-0005Dz-N9
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 13:08:09 +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 c8104f19-404f-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 15:08:07 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-57d05e0017aso2679838a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 06:08:07 -0700 (PDT)
Received: from fhilly.. ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a87204esm343023466b.222.2024.07.12.06.08.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 06:08: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: c8104f19-404f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1720789686; x=1721394486; 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=RpgKWIfSIalzMFA1Wsr4pVU5CzKV4qllD5rfAWoZ3vs=;
        b=gJEJFVl/RnGuepDVMACN5cL/Mkwf9DsIlY8x5y5MjNqT2zohrGbtdDHj0sZjgXbsdh
         28AsEZ8PeCYuLskpWIHnuoEWP8egJDkLiYZYGezzU3kTjhJa90Jp3nxWHfNKGFqA8ru2
         tp5jNV+E+meOmQJu041IajwpmFN+xcrE8nNtU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720789686; x=1721394486;
        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=RpgKWIfSIalzMFA1Wsr4pVU5CzKV4qllD5rfAWoZ3vs=;
        b=ad7MW4Iz3f8f3MlxloATm/23UyupEAY2q2y4pe5QCP/TTlzMRRYeAMIPPT+uNB5r7h
         5ms13BPjcB4cmAfvOTF/eYRekfnUs9dvDD370cnzwToGfB6I7u32O3Q8+4eXV9bN311T
         1bMhrZ9S+jAwRzWcK5wnlOziGpa9oFStn1ZIMfsS3udtIgbP4xROLdHXdnYrQweVSEhC
         UBqIX6AgDnaWDHje/fSMdHcbM1MezZKkuapXdOiPtEFr2KUuGs28/7xDqoKYfnV09Lfy
         s28nuIx37fh72o3oGgUYgcC3JHR5Vap/n3XD/jEBx9IWvEU+7n01u+W8lci5CiEqGx5z
         7XQg==
X-Gm-Message-State: AOJu0YyC/Qp/joR0uL4D4+PDwpL3SV3EUm0sIk4FlXCIwPNUz/FwabZF
	jvDxH77YKu7J2cinN+JcTiaZChZP70Z8Qbh1qm3y6BOxb+pzma+RbKT01AO2a7zF8RX7vY7SqlY
	F
X-Google-Smtp-Source: AGHT+IFb9LbnnrHKtiSlrWSVIpW7RNrcmHMIxZ6oagLMBqE9hRLCKUZfYLi7yno36j95mbUkd3zXsg==
X-Received: by 2002:a17:906:7745:b0:a77:cf09:9c70 with SMTP id a640c23a62f3a-a780b70526bmr728271366b.43.1720789686136;
        Fri, 12 Jul 2024 06:08:06 -0700 (PDT)
From: Fouad Hilly <fouad.hilly@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Fouad Hilly <fouad.hilly@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v5 0/4]  x86/xen-ucode: Introduce --force option
Date: Fri, 12 Jul 2024 14:07:45 +0100
Message-ID: <20240712130749.1272741-1-fouad.hilly@cloud.com>
X-Mailer: git-send-email 2.42.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Refactor and introduce --force option to xen-ucode, which skips microcode
version check when updating x86 CPU micocode. A new hypercall introduced
with flags field to facilitate the new option and allow for future flags
as needed.
This change is required to enable developers to load ucode that is the same version as the
one already loaded or downgrade for testing.

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

Fouad Hilly (4):
  x86/ucode: Introduce XENPF_microcode_update2 with flags parameter
  x86/ucode: refactor xen-ucode to utilize getopt
  x86/ucode: Introduce --force option to xen-ucode
  x86/ucode: Utilize ucode_force and remove opt_ucode_allow_same

 docs/misc/xen-command-line.pandoc    |   7 +-
 tools/include/xenctrl.h              |   3 +-
 tools/libs/ctrl/xc_misc.c            |  12 ++--
 tools/misc/xen-ucode.c               |  63 +++++++++++++---
 xen/arch/x86/cpu/microcode/amd.c     |   8 ++-
 xen/arch/x86/cpu/microcode/core.c    | 104 +++++++++++++++++----------
 xen/arch/x86/cpu/microcode/intel.c   |   9 ++-
 xen/arch/x86/cpu/microcode/private.h |   5 +-
 xen/arch/x86/include/asm/microcode.h |   3 +-
 xen/arch/x86/platform_hypercall.c    |  13 +++-
 xen/include/public/platform.h        |  14 ++++
 11 files changed, 172 insertions(+), 69 deletions(-)

-- 
2.42.0



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 13:27:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 13:27:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758053.1167283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSGJR-0003uQ-V9; Fri, 12 Jul 2024 13:27:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758053.1167283; Fri, 12 Jul 2024 13: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 1sSGJR-0003uJ-SC; Fri, 12 Jul 2024 13:27:49 +0000
Received: by outflank-mailman (input) for mailman id 758053;
 Fri, 12 Jul 2024 13: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=cZP0=OM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sSGJQ-0003sv-Lh
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 13:27:48 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 86a6d5f6-4052-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 15:27:46 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2ee92f7137bso20367231fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 06:27: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
 d9443c01a7336-1fbb6a292a4sm66877085ad.66.2024.07.12.06.27.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 06:27: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: 86a6d5f6-4052-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720790866; x=1721395666; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Tk1r/XiUcFUQc7P5sKl+tmnvydTLd5bI9u99InL/ZKA=;
        b=OvPOASSyyO/abeflernicBBZFMHKwB38yL2QqzIuPXEohE7tEaCYialfu0TIkIiBk6
         7ujgo8vFalH43EH6O2o0awm3ajXOYudGooLR/97JuU+80oXKL2rFEx4Nbr6pXlp8OFSt
         TSWI5xWj+PJvYxYdyFRv161XjFtPeJ+pOJPYrTYHo4DTC8mNU0lBWZRDFhmRK1PtDc8L
         BS7dv72r3+dx72CPUw9w3qfs99yoUU3rxbOn2DmGSqDF+1QRWyNibVk8DsXw+tzLCqyb
         KANIWMlwxtODwBq65TbskXTR6vMTu2aBvImZz9taMVF+ts26Rdzt5HM/+U83va/ziEIp
         Lfyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720790866; x=1721395666;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Tk1r/XiUcFUQc7P5sKl+tmnvydTLd5bI9u99InL/ZKA=;
        b=rzJoq/h5FWsCDoHqBNy5Bq3pUkMrTILkB9rEuawWbZZJ3Hd6yW8xep3XbRb1GBepm4
         G1TwPX4RHY+4x1yjvTEx1BwNHdGbWydI17dwDlGZGdC6SOM2M8XNSUT79Z2WHl+bFgZo
         jB/M1NVL7Tcu2cXMSs8MPXwz6svhj2zUhZujkpAacEPgpe9Ca2y6ZiK41rzbABVandkf
         hEebhJDR75XrtfMMmJTrqRFZuBDrL26bB9COtXezgPbrWt+NLQdlUHNwmGj9PDS0CkL7
         cXU5GZ31zm77CAgRO9uxBlePjA3R3ziM4bHHMjVrCn18lIIl84yRwtOwL0WP+TKED6me
         sr/A==
X-Forwarded-Encrypted: i=1; AJvYcCXVzltZ5HuelyI1sKf4264+l1WlZh3dRPpfKfp5H0QgnYm5v5az0Skg42Op2KxDj/xmgXloTCrRLc9HZs8CL6sKNPORn/cFK4pD0hRMsrg=
X-Gm-Message-State: AOJu0Yy1umT5TCihh4x4mgpFn8tCXkW9alkC3qu5FPB/DXSjQcsOkKSl
	w33mF1n6oyg3nwyEEc6yztG79bgkClYnF8tY6VMKOP0AG0ZxNJa8VNtu8TgWWVAyxk4XcfqhR7k
	=
X-Google-Smtp-Source: AGHT+IEpin6hQS2EIiuGunKIFBS+/d+Ko8HwzmOljlQubT8/H0WmzfndxOuGNa27KhXjgImrAimHtQ==
X-Received: by 2002:a2e:7c04:0:b0:2ee:4af7:d78e with SMTP id 38308e7fff4ca-2eeb3181914mr85836651fa.34.1720790865715;
        Fri, 12 Jul 2024 06:27:45 -0700 (PDT)
Message-ID: <c4157096-cfc6-4455-a5f4-c2af94591284@suse.com>
Date: Fri, 12 Jul 2024 15:27:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/4] x86/ucode: Introduce --force option to xen-ucode
To: Fouad Hilly <fouad.hilly@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20240712130749.1272741-1-fouad.hilly@cloud.com>
 <20240712130749.1272741-4-fouad.hilly@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240712130749.1272741-4-fouad.hilly@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 15:07, Fouad Hilly wrote:
> @@ -79,6 +81,8 @@ static void usage(FILE *stream, const char *name)
>              "options:\n"
>              "  -h, --help            display this help\n"
>              "  -s, --show-cpu-info   show CPU information\n"
> +            "  -f, --force           skip certain checks; do not use unless you"
> +            "know exactly what you are doing\n"

Would this output line perhaps better be wrapped explicitly, to avoid
odd wrapping effects on terminals not wider than 80 chars? In any event
there's a blank missing at the present source wrapping point.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 13:47:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 13:47:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758059.1167292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSGc0-0007by-GN; Fri, 12 Jul 2024 13:47:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758059.1167292; Fri, 12 Jul 2024 13:47: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 1sSGc0-0007br-Dc; Fri, 12 Jul 2024 13:47:00 +0000
Received: by outflank-mailman (input) for mailman id 758059;
 Fri, 12 Jul 2024 13:46: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=U2Du=OM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sSGbz-0007bl-HI
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 13:46:59 +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 34f37aba-4055-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 15:46:57 +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 3EEA721981;
 Fri, 12 Jul 2024 13:46: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 116EC13686;
 Fri, 12 Jul 2024 13:46: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 NvJxAtEzkWZqbAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 12 Jul 2024 13:46: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: 34f37aba-4055-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720792017; 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=Iy67gqxoYNK1/e5asarwYcr6DDIYf88/YjqwDl5q+ps=;
	b=H3oSbTFBANlH48ezgVcqnLsl04NRTQwvMHPLZwobNdRJY8CPDiXF1JzTcIRiD9hd4bneUy
	MzsXdtquof0Fwpby5VmQt8Kmvmon7b3PfiDgvR2oc+tlNRjXuWkr5pLZe0ONbXx4w3Uich
	L+Y61s6mK8mIcVtIAFwtHIoxyMYLAM0=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1720792017; 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=Iy67gqxoYNK1/e5asarwYcr6DDIYf88/YjqwDl5q+ps=;
	b=H3oSbTFBANlH48ezgVcqnLsl04NRTQwvMHPLZwobNdRJY8CPDiXF1JzTcIRiD9hd4bneUy
	MzsXdtquof0Fwpby5VmQt8Kmvmon7b3PfiDgvR2oc+tlNRjXuWkr5pLZe0ONbXx4w3Uich
	L+Y61s6mK8mIcVtIAFwtHIoxyMYLAM0=
Message-ID: <d0da7689-514e-4dc8-ae2c-3f2e5eeefbac@suse.com>
Date: Fri, 12 Jul 2024 15:46:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
From: Juergen Gross <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
 <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
 <88db3cb6-2b7e-48b2-9bf4-d871067325a0@suse.com>
 <3d6d35ea-5044-4249-a277-0e5aa31ed888@amd.com>
 <a6144f89-449a-4d2f-927b-a9bbdfbed56b@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: <a6144f89-449a-4d2f-927b-a9bbdfbed56b@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------wIFdkbNoRQ6pKUrKwYJEMDUT"
X-Spamd-Result: default: False [-6.15 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SIGNED_PGP(-2.00)[];
	NEURAL_HAM_LONG(-0.96)[-0.956];
	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];
	XM_UA_NO_VERSION(0.01)[];
	TO_DN_SOME(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	TO_DN_EQ_ADDR_SOME(0.00)[];
	ARC_NA(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[opensuse.org:url];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	HAS_ATTACHMENT(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.15
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------wIFdkbNoRQ6pKUrKwYJEMDUT
Content-Type: multipart/mixed; boundary="------------HgeDwwvxjhJyZNj0egN0uozM";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Message-ID: <d0da7689-514e-4dc8-ae2c-3f2e5eeefbac@suse.com>
Subject: Re: Problems in PV dom0 on recent x86 hardware
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
 <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
 <88db3cb6-2b7e-48b2-9bf4-d871067325a0@suse.com>
 <3d6d35ea-5044-4249-a277-0e5aa31ed888@amd.com>
 <a6144f89-449a-4d2f-927b-a9bbdfbed56b@suse.com>
In-Reply-To: <a6144f89-449a-4d2f-927b-a9bbdfbed56b@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=

--------------HgeDwwvxjhJyZNj0egN0uozM
Content-Type: multipart/mixed; boundary="------------NTbrZFOxK9wOmQTG0mEdbA1C"

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

T24gMTIuMDcuMjQgMTI6MzUsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+IE9uIDA5LjA3LjI0
IDE1OjA4LCBKYXNvbiBBbmRyeXVrIHdyb3RlOg0KPj4gT24gMjAyNC0wNy0wOSAwNjo1Niwg
SsO8cmdlbiBHcm/DnyB3cm90ZToNCj4+PiBPbiAwOS4wNy4yNCAwOTowMSwgSmFuIEJldWxp
Y2ggd3JvdGU6DQo+Pj4+IE9uIDA5LjA3LjIwMjQgMDg6MzYsIErDvHJnZW4gR3Jvw58gd3Jv
dGU6DQo+Pj4+PiBPbiAwOS4wNy4yNCAwODoyNCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+
Pj4gT24gMDguMDcuMjAyNCAyMzozMCwgSmFzb24gQW5kcnl1ayB3cm90ZToNCj4+Pj4+Pj4g
wqDCoCBGcm9tIHRoZSBiYWNrdHJhY2UsIGl0IGxvb2tzIGxpa2UgdGhlIGltbWVkaWF0ZSBj
YXNlIGlzIGp1c3QgdHJ5aW5nIHRvDQo+Pj4+Pj4+IHJlYWQgYSA0LWJ5dGUgdmVyc2lvbjoN
Cj4+Pj4+Pj4NCj4+Pj4+Pj4gwqDCoCA+Pj4+IFvCoMKgIDQ0LjU3NTU0MV3CoCB1Y3NpX2Fj
cGlfZHNtKzB4NTMvMHg4MA0KPj4+Pj4+PiDCoMKgID4+Pj4gW8KgwqAgNDQuNTc1NTQ2XcKg
IHVjc2lfYWNwaV9yZWFkKzB4MmUvMHg2MA0KPj4+Pj4+PiDCoMKgID4+Pj4gW8KgwqAgNDQu
NTc1NTUwXcKgIHVjc2lfcmVnaXN0ZXIrMHgyNC8weGEwDQo+Pj4+Pj4+IMKgwqAgPj4+PiBb
wqDCoCA0NC41NzU1NTVdwqAgdWNzaV9hY3BpX3Byb2JlKzB4MTYyLzB4MWUzDQo+Pj4+Pj4+
DQo+Pj4+Pj4+IGludCB1Y3NpX3JlZ2lzdGVyKHN0cnVjdCB1Y3NpICp1Y3NpKQ0KPj4+Pj4+
PiB7DQo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCByZXQ7DQo+Pj4+Pj4+DQo+
Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IHVjc2ktPm9wcy0+cmVhZCh1Y3Np
LCBVQ1NJX1ZFUlNJT04sICZ1Y3NpLT52ZXJzaW9uLA0KPj4+Pj4+PiDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNp
emVvZih1Y3NpLT52ZXJzaW9uKSk7DQo+Pj4+Pj4+DQo+Pj4+Pj4+IC0+cmVhZCBiZWluZyB1
Y3NpX2FjcGlfcmVhZCgpDQo+Pj4+Pj4+DQo+Pj4+Pj4+IEhvd2V2ZXIsIHRoZSBkcml2ZXIg
YWxzbyBhcHBlYXJzIHdyaXRlIHRvIGFkamFjZW50IGFkZHJlc3Nlcy4NCj4+Pj4+Pg0KPj4+
Pj4+IFRoZXJlIGFyZSBhbHNvIGNvcnJlc3BvbmRpbmcgd3JpdGUgZnVuY3Rpb25zIGluIHRo
ZSBkcml2ZXIsIHllcywgYnV0DQo+Pj4+Pj4gdWNzaV9hY3BpX2FzeW5jX3dyaXRlKCkgKHVz
ZWQgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSkgc2ltaWxhcmx5IGNhbGxzDQo+Pj4+Pj4gdWNz
aV9hY3BpX2RzbSgpLCB3aGljaCB3aXJlcyB0aHJvdWdoIHRvIGFjcGlfZXZhbHVhdGVfZHNt
KCkuIFRoYXQncw0KPj4+Pj4+IEFDUEkgb2JqZWN0IGV2YWx1YXRpb24sIHdoaWNoIGlzbid0
IG9idmlvdXMgd2l0aG91dCBzZWVpbmcgdGhlDQo+Pj4+Pj4gaW52b2x2ZWQgQU1MIHdoZXRo
ZXIgaXQgbWlnaHQgd3JpdGUgc2FpZCBtZW1vcnkgcmVnaW9uLg0KPj4+Pj4NCj4+Pj4+IEkg
Z3Vlc3MgYW4gQUNQSSBkdW1wIHdvdWxkIGhlbHAgaGVyZT8NCj4+Pj4NCj4+Pj4gUGVyaGFw
cywgeWVzLg0KPj4+DQo+Pj4gSXQgaXMgYXZhaWxhYmxlIGluIHRoZSBidWcgcmVwb3J0Og0K
Pj4+DQo+Pj4gaHR0cHM6Ly9idWd6aWxsYS5vcGVuc3VzZS5vcmcvc2hvd19idWcuY2dpP2lk
PTEyMjczMDENCj4+DQo+PiBBZnRlciBhY3BpeHRyYWN0ICYgaWFzbDoNCj4+DQo+PiAkIGdy
ZXAgLWlyIEZFRUMgKg0KPj4gZHNkdC5kc2w6wqDCoCBPcGVyYXRpb25SZWdpb24gKEVDTU0s
IFN5c3RlbU1lbW9yeSwgMHhGRUVDMjAwMCwgMHgwMTAwKQ0KPj4gc3NkdDE2LmRzbDogT3Bl
cmF0aW9uUmVnaW9uIChTVVNDLCBTeXN0ZW1NZW1vcnksIDB4RkVFQzIxMDAsIDB4MzApDQo+
Pg0KPj4NCj4+IGZyb20gdGhlIERTRFQ6DQo+PiDCoMKgwqDCoCBTY29wZSAoXF9TQi5QQ0kw
LkxQQzAuRUMwKQ0KPj4gwqDCoMKgwqAgew0KPj4gwqDCoMKgwqDCoMKgwqDCoCBPcGVyYXRp
b25SZWdpb24gKEVDTU0sIFN5c3RlbU1lbW9yeSwgMHhGRUVDMjAwMCwgMHgwMTAwKQ0KPj4g
wqDCoMKgwqDCoMKgwqDCoCBGaWVsZCAoRUNNTSwgQW55QWNjLCBMb2NrLCBQcmVzZXJ2ZSkN
Cj4+IMKgwqDCoMKgwqDCoMKgwqAgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFRX
QlQswqDCoCAyMDQ4DQo+PiDCoMKgwqDCoMKgwqDCoMKgIH0NCj4+DQo+PiDCoMKgwqDCoMKg
wqDCoMKgIE5hbWUgKEJUQkYsIEJ1ZmZlciAoMHgwMTAwKQ0KPj4gwqDCoMKgwqDCoMKgwqDC
oCB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAweDAwwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCAvLyAuDQo+PiDCoMKgwqDCoMKgwqDCoMKgIH0pDQo+PiDC
oMKgwqDCoMKgwqDCoMKgIE1ldGhvZCAoQlRJRiwgMCwgTm90U2VyaWFsaXplZCkNCj4+IMKg
wqDCoMKgwqDCoMKgwqAgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJUQkYgPSBU
V0JUIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLlRXQlQgKi8NCj4+IMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBSZXR1cm4gKEJUQkYpIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLkJUQkYg
Ki8NCj4+IMKgwqDCoMKgwqDCoMKgwqAgfQ0KPj4gwqDCoMKgwqAgfQ0KPj4NCj4+IMKgRnJv
bSBTU0RUMTY6DQo+PiBEZWZpbml0aW9uQmxvY2sgKCIiLCAiU1NEVCIsIDIsICJMRU5PVk8i
LCAiVXNiQ1RhYmwiLCAweDAwMDAwMDAxKQ0KPj4gew0KPj4gwqDCoMKgwqAgRXh0ZXJuYWwg
KF9TQl8uUENJMC5MUEMwLkVDMF8sIERldmljZU9iaikNCj4+DQo+PiDCoMKgwqDCoCBTY29w
ZSAoXF9TQikNCj4+IMKgwqDCoMKgIHsNCj4+IMKgwqDCoMKgwqDCoMKgwqAgT3BlcmF0aW9u
UmVnaW9uIChTVVNDLCBTeXN0ZW1NZW1vcnksIDB4RkVFQzIxMDAsIDB4MzApDQo+PiDCoMKg
wqDCoMKgwqDCoMKgIEZpZWxkIChTVVNDLCBCeXRlQWNjLCBMb2NrLCBQcmVzZXJ2ZSkNCj4+
IMKgwqDCoMKgwqDCoMKgwqAgew0KPj4NCj4+DQo+PiBUaGlzIGVtYmVkZGVkIGNvbnRyb2xs
ZXIgKD8pIHNlZW1zIHRvIGxpdmUgYXQgMHhmZWVjMnh4eC4NCj4gDQo+IFdoYXQgaXMgdGhl
IHRha2Vhd2F5IGZyb20gdGhhdD8NCj4gDQo+IElzIHRoaXMgYSBmaXJtd2FyZSBidWcgKGlm
IHllcywgcG9pbnRlcnMgdG8gYSBzcGVjaWZpY2F0aW9uIHNheWluZyB0aGF0DQo+IHRoaXMg
aXMgYW4gaWxsZWdhbCBjb25maWd1cmF0aW9uIHdvdWxkIGJlIG5pY2UpLCBvciBkbyB3ZSBu
ZWVkIGEgd2F5IHRvDQo+IG1hcCB0aGlzIHBhZ2UgZnJvbSBkb20wPw0KDQpJJ3ZlIGZvdW5k
IHRoZSBmb2xsb3dpbmcgaW4gdGhlIEFNRCBJT01NVSBzcGVjIFsxXToNCg0KICAgUmVjZWl2
ZWQgRE1BIHJlcXVlc3RzIHdpdGhvdXQgUEFTSUQgaW4gdGhlIDB4RkVFeF94eHh4IGFkZHJl
c3MgcmFuZ2UgYXJlDQogICB0cmVhdGVkIGFzIE1TSSBpbnRlcnJ1cHRzIGFuZCBhcmUgcHJv
Y2Vzc2VkIHVzaW5nIGludGVycnVwdCByZW1hcHBpbmcgcmF0aGVyDQogICB0aGFuIGFkZHJl
c3MgdHJhbnNsYXRpb24uDQoNClRvIG1lIHRoaXMgc291bmRzIGFzIGlmIHRoZXJlIHdvdWxk
bid0IGJlIGEgbWFqb3IgcmlzayBsZXR0aW5nIGRvbTAgbWFwDQpwaHlzaWNhbCBhZGRyZXNz
ZXMgaW4gdGhpcyBhcmVhLCBhcyBsb25nIGFzICJub3JtYWwiIEkvT3MgdG8gdGhpcyBhcmVh
IHdvdWxkDQpyZXN1bHQgaW4gRE1BIHJlcXVlc3RzIHdpdGggYSBQQVNJRC4gT1RPSCBJJ20g
bm90IGZhbWlsaWFyIHdpdGggWGVuIElPTU1VDQpoYW5kbGluZywgc28gSSBtaWdodCBiZSBj
b21wbGV0ZWx5IHdyb25nLg0KDQpBbm90aGVyIHF1ZXN0aW9uIHdvdWxkIGJlIHdoZXRoZXIg
YSBkZXZpY2UgaGF2aW5nIHJlc291cmNlcyBpbiB0aGlzIGFyZWEgY2FuDQpldmVuIHdvcmsg
dGhyb3VnaCBhbiBJT01NVS4NCg0KDQpKdWVyZ2VuDQoNClsxXTogDQpodHRwczovL3d3dy5h
bWQuY29tL2NvbnRlbnQvZGFtL2FtZC9lbi9kb2N1bWVudHMvcHJvY2Vzc29yLXRlY2gtZG9j
cy9zcGVjaWZpY2F0aW9ucy80ODg4Ml9JT01NVS5wZGYNCg==
--------------NTbrZFOxK9wOmQTG0mEdbA1C
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-----

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
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------NTbrZFOxK9wOmQTG0mEdbA1C--

--------------HgeDwwvxjhJyZNj0egN0uozM--

--------------wIFdkbNoRQ6pKUrKwYJEMDUT
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/Ey8FAmaRM9AFAwAAAAAACgkQsN6d1ii/Ey9e
Cwf/YDPR4vSxAWg3VCOaK3Nu5FYdRzM66436+lH2h+0JSIaxI5XichGgGguiR8t9/Ir2OWF7fLoc
NZQKFn96JfZop3jlDGz+Q1wog+MjQtv1p7ZrrorIogr7TUa4ap9QE0wWjXrQPJh3e0Sqf5Rq6AB3
w9KnA3V2PiAa7PBb0FPKLC5vV4ONkJn2kDYpuSjF2ZEdWYfIM2kEwOgaOblITpJxvAb5Nn07fApJ
Ab/NQqt+mBFTq64ALtmEuuTQNGp8BjtJIFiMGyOoaRQFsa0SRofIF1HC24q/4VtqiUKC7jaL2KMH
tQF1jcURGLZcQrqtvVvM1YWX9OGasmFrOCn/k+TkVA==
=QVWV
-----END PGP SIGNATURE-----

--------------wIFdkbNoRQ6pKUrKwYJEMDUT--


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 13:54:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 13:54:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758064.1167302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSGix-00016D-7E; Fri, 12 Jul 2024 13:54:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758064.1167302; Fri, 12 Jul 2024 13:54:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSGix-000166-4J; Fri, 12 Jul 2024 13:54:11 +0000
Received: by outflank-mailman (input) for mailman id 758064;
 Fri, 12 Jul 2024 13:54:10 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSGiw-00015w-9t; Fri, 12 Jul 2024 13:54:10 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSGiw-0003s5-4z; Fri, 12 Jul 2024 13:54:10 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSGiv-0001Jv-OO; Fri, 12 Jul 2024 13:54:09 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSGiv-0003px-Ny; Fri, 12 Jul 2024 13:54:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=SYE7L8sXKpgbb20ub/Ptd7LdzTEMu/UKWp/9biUxcNw=; b=l2rHutxRloRnBe2IXAC9SA62bU
	fpq67O9DrfK/oglP6/oJ68I//OUQyN4ppGQXuSrcGGpNz1Ftglv0GSxqBBzRaC7q5x20MFg8CXjMe
	jpbWxKmdn95U8DAipd9kzCuXOO0yxGS8kG+/f4WoVdqXHIZVoIpw6iBVsSjdx/sWr/TU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186773-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186773: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=c9fa43c48cdb1b8505929e3287975445f3004f32
X-Osstest-Versions-That:
    libvirt=92333a2c4e8cc547ef73f69b8fe52b8323ff9f6c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 13:54:09 +0000

flight 186773 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186773/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186760
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              c9fa43c48cdb1b8505929e3287975445f3004f32
baseline version:
 libvirt              92333a2c4e8cc547ef73f69b8fe52b8323ff9f6c

Last test of basis   186760  2024-07-11 04:18:45 Z    1 days
Testing same since   186773  2024-07-12 04:18:45 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michal Privoznik <mprivozn@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   92333a2c4e..c9fa43c48c  c9fa43c48cdb1b8505929e3287975445f3004f32 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 13:57:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 13:57:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758071.1167313 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSGma-0002Bb-QM; Fri, 12 Jul 2024 13:57:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758071.1167313; Fri, 12 Jul 2024 13: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 1sSGma-0002BU-NC; Fri, 12 Jul 2024 13:57:56 +0000
Received: by outflank-mailman (input) for mailman id 758071;
 Fri, 12 Jul 2024 13: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=tdXX=OM=bounce.vates.tech=bounce-md_30504962.6691365f.v1-50b3cba820b24cc98905cead7def72f5@srs-se1.protection.inumbo.net>)
 id 1sSGmY-0002BO-UN
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 13:57:55 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb099441-4056-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 15:57:52 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WLCpl3DCFz6CQ506
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 13:57:51 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 50b3cba820b24cc98905cead7def72f5; Fri, 12 Jul 2024 13:57: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: bb099441-4056-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720792671; x=1721053171;
	bh=MLuhq8SihbR1DS6LIihFeD+VI6S7GBpn+MiStNpLGqo=;
	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=OqEFMUAkzEMTKlG0b8Y9urpjZTKCp0xAlKZkc+Al5dJNbDy8scn2COKD+2zgw0Xf2
	 +Bt9Eh1XS+asR7HKMnSmeEwn4dA5Yzd7WyXza0QBmHINf7DlTlWFypZp4bPhbi5mq+
	 IYWbdnezYrLUtznDoeRvBP3SrfxezElU+2BK5GzWXrzatyKYB1/+1+rtGjqvsNuGv/
	 kgAVJMh8A41YHnIM4jfnTz2LTWRQgXFQZpWoNG2+JNY81N2IcC6oMFs0oWdeS3p8cp
	 wYzHq/05vwQm46oFMconUQBdBErni7Q4Sziby574dhJB9QFlnhvCTNmKYR6GBnQkos
	 XfQ/PQAG2rRVg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720792671; x=1721053171; i=anthony.perard@vates.tech;
	bh=MLuhq8SihbR1DS6LIihFeD+VI6S7GBpn+MiStNpLGqo=;
	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=vbtuOYwnWHOZP02gSwmZ2xK/MSqRHKiqnZkUmr5eXi5NmKP2Usl0B9Addfso+d0Ps
	 WM2N2CrnBpGkV15/j3yFC4PaRf5gVqnvd8/mJLFjTe3qerAPcvAWPvFe9QlEiRZpQq
	 nawc11Ve5wdq6rCtKHX5fXt0ESGZbLCO/H3MSStsZAwxOXmvunk5RQKoEyouT+NYkd
	 V7b76uMngJUB5I2BhoORsQI1GVkI0jMg/q6S7l5sw0oYkd5afEJwLoJkJ7PO5lXQcw
	 PiFNmOjPyE0oXXTvqAloZx7ozvWtru4zw4KbXfqxsKL5yhQMXGxCno9Wuiv7Hvnu16
	 ah1FDGp0AB2/A==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2015/12]=20CI:=20Refresh=20Ubuntu=20Xenial=20container=20as=2016.04-x86=5F64?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720792670130
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <ZpE2XbGRi6Lk1G3x@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240712104829.3237296-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240712104829.3237296-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.50b3cba820b24cc98905cead7def72f5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240712:md
Date: Fri, 12 Jul 2024 13:57:51 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Jul 12, 2024 at 11:48:29AM +0100, Andrew Cooper wrote:
> Rework the container to be non-root, use heredocs for legibility, and use use
> apt-get --no-install-recommends to keep the size down.
> 
> Ubuntu Xenial has no ninja-build package, so can't build the QEMU referenced
> by Xen 4.16.  Therefore, drop the dependencies too.
> 
> This saves ~500M:
> 
>   registry.gitlab.com/xen-project/xen/ubuntu    16.04-x86_64           700MB
>   registry.gitlab.com/xen-project/xen/ubuntu    xenial                 1.21GB
> 
> 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 Fri Jul 12 14:01:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 14:01:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758074.1167322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSGpV-0003wU-7m; Fri, 12 Jul 2024 14:00:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758074.1167322; Fri, 12 Jul 2024 14: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 1sSGpV-0003wN-48; Fri, 12 Jul 2024 14:00:57 +0000
Received: by outflank-mailman (input) for mailman id 758074;
 Fri, 12 Jul 2024 14:00:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSGpT-0003wH-P6
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 14:00:55 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 27c2c117-4057-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 16:00:54 +0200 (CEST)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-52ea2ce7abaso3675931e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 07:00:54 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bd459e1esm4555699a12.73.2024.07.12.07.00.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 07:00: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: 27c2c117-4057-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720792854; x=1721397654; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7wK2JcIp9rnHVs/Y7poNAdp1XOHuI94HzphW7l7GQiM=;
        b=m14xtbKtrIWXx49W3MMtqS6+0+2zQ0ZUrzoI9ZX9e+/MZPD5GzUSxtoge66ilovIsc
         JyCVNe0RnIcoGVbtSue1Ac4UY8JrKGi75Q7q/n44bKD6nf/uDXRmfVmGI0a6Lam58KFc
         h81OXtWoqcvlEyHgiitEPlrz1N62AXQLp0L6M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720792854; x=1721397654;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7wK2JcIp9rnHVs/Y7poNAdp1XOHuI94HzphW7l7GQiM=;
        b=mj4JEOMja2IYPA4sl+YQ2NIvaCkwp58V5qCEKGa4VhZ8AJ7aDLWnYf+twTNkZfMxPM
         Gmn0GOCj/scNSBQmbkz9xbDlqFrOQZ8gRj7Q1mMrO3vyZBY2bm7t1+4ldHPGjt1M/j4N
         4BefVCMLnDhKxq6YXTzKFW4jxXhCfyjHPHKkV/f2e3ZWmkaCqcxu8r0vNyMWX25/8Z/6
         tlWKawZjIKueDbUMc80TgQAgMRPb4H6TOdhovTOFcp5D0pVjw6akgCQzGLs52Z0ExDAn
         5ZPpLODTPkwnUlCsBPYvapaMpHtx4+wFnR9OATP0PE4wdPh3FRsYSnii25s01YOxjcCn
         oipw==
X-Gm-Message-State: AOJu0YwSJKZw+EsXQfsf17ujfzBdMMEr5Il+yEF37e89DNoHF5EohdTZ
	rwD/k1pZP1aQ71N61gZnuuogazW1Rux7WtuG7pi8vH2+/r2wUmdqbsLEQfvhTDI=
X-Google-Smtp-Source: AGHT+IHxk7FeFXkH3OZlNOapxOc6SIkG8Z6pMI5r5M783dnXvzMHM7uBoInGaDBHruvacLUCvmmqiA==
X-Received: by 2002:ac2:4109:0:b0:52e:7f09:aaae with SMTP id 2adb3069b0e04-52eb9999d76mr7289202e87.27.1720792853392;
        Fri, 12 Jul 2024 07:00:53 -0700 (PDT)
Message-ID: <4aaa1034-2a07-47bc-9344-469653289c66@citrix.com>
Date: Fri, 12 Jul 2024 15:00:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: Juergen Gross <jgross@suse.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
 <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
 <88db3cb6-2b7e-48b2-9bf4-d871067325a0@suse.com>
 <3d6d35ea-5044-4249-a277-0e5aa31ed888@amd.com>
 <a6144f89-449a-4d2f-927b-a9bbdfbed56b@suse.com>
 <d0da7689-514e-4dc8-ae2c-3f2e5eeefbac@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <d0da7689-514e-4dc8-ae2c-3f2e5eeefbac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/07/2024 2:46 pm, Juergen Gross wrote:
> On 12.07.24 12:35, Jürgen Groß wrote:
>> On 09.07.24 15:08, Jason Andryuk wrote:
>>> On 2024-07-09 06:56, Jürgen Groß wrote:
>>>> On 09.07.24 09:01, Jan Beulich wrote:
>>>>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>>>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>>>>    From the backtrace, it looks like the immediate case is just
>>>>>>>> trying to
>>>>>>>> read a 4-byte version:
>>>>>>>>
>>>>>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>>>>
>>>>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>>>>> {
>>>>>>>>            int ret;
>>>>>>>>
>>>>>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION,
>>>>>>>> &ucsi->version,
>>>>>>>>                                  sizeof(ucsi->version));
>>>>>>>>
>>>>>>>> ->read being ucsi_acpi_read()
>>>>>>>>
>>>>>>>> However, the driver also appears write to adjacent addresses.
>>>>>>>
>>>>>>> There are also corresponding write functions in the driver, yes,
>>>>>>> but
>>>>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly
>>>>>>> calls
>>>>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>>>>> involved AML whether it might write said memory region.
>>>>>>
>>>>>> I guess an ACPI dump would help here?
>>>>>
>>>>> Perhaps, yes.
>>>>
>>>> It is available in the bug report:
>>>>
>>>> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301
>>>
>>> After acpixtract & iasl:
>>>
>>> $ grep -ir FEEC *
>>> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>>> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>>>
>>>
>>> from the DSDT:
>>>      Scope (\_SB.PCI0.LPC0.EC0)
>>>      {
>>>          OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>>>          Field (ECMM, AnyAcc, Lock, Preserve)
>>>          {
>>>              TWBT,   2048
>>>          }
>>>
>>>          Name (BTBF, Buffer (0x0100)
>>>          {
>>>               0x00                                             // .
>>>          })
>>>          Method (BTIF, 0, NotSerialized)
>>>          {
>>>              BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
>>>              Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
>>>          }
>>>      }
>>>
>>>  From SSDT16:
>>> DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
>>> {
>>>      External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
>>>
>>>      Scope (\_SB)
>>>      {
>>>          OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>>>          Field (SUSC, ByteAcc, Lock, Preserve)
>>>          {
>>>
>>>
>>> This embedded controller (?) seems to live at 0xfeec2xxx.
>>
>> What is the takeaway from that?
>>
>> Is this a firmware bug (if yes, pointers to a specification saying that
>> this is an illegal configuration would be nice), or do we need a way to
>> map this page from dom0?
>
> I've found the following in the AMD IOMMU spec [1]:
>
>   Received DMA requests without PASID in the 0xFEEx_xxxx address range
> are
>   treated as MSI interrupts and are processed using interrupt
> remapping rather
>   than address translation.
>
> To me this sounds as if there wouldn't be a major risk letting dom0 map
> physical addresses in this area, as long as "normal" I/Os to this area
> would
> result in DMA requests with a PASID. OTOH I'm not familiar with Xen IOMMU
> handling, so I might be completely wrong.
>
> Another question would be whether a device having resources in this
> area can
> even work through an IOMMU.

Address spaces are not fully uniform.  What 0xFEEx_xxxx means/does
really does differ depending on your point of view.

The CPU accessing 0xFEEx_xxxx literally does different things than a PCI
device accessing the same range.

That's why nothing outside of the CPU can get at the LAPIC MMIO
registers.  No amount of remapping trickery in the IOMMU pagetables are
going to change this fact.


Now - the problem here is that 0xFEEx_xxxx is (for legacy reasons)
"known" to be the LAPIC MMIO, which has a 4k window at the bottom and
everything else in the 2M is reserved.

And it appears that AMD have started putting other things into that
reserved space, which are only described by AML, and not known to Xen. 
Xen, generally, is very wary of mappings in and around here, because it
does need to prevent even dom0 having access to the interrupt controller
MMIO windows (I'm including IO-APICs too).

So I expect Xen is saying "that's an interrupt MMIO window, no" without
knowing that there's actually something else in there.  (But I am just
guessing.)

It comes full circle back to all the problems of Xen not being OSPM, for
which we don't have a good solution.

One thing that Tim Deegan suggested aages ago was to have an ACPI OSPM
stubdom, and provide pv-AML allowing dom0 to do things.

Importantly, it would let us do things like evaluate all methods on all
processor objects, knowing that e.g. vCPUs weren't relevant.

The more I think about it the more I like it, and it would allow us to
start taking some of the more invasive hacks out of Linux, but at the
same time it's also a giant quantity of work.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 14:02:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 14:02:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758081.1167333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSGqy-0004UY-Gr; Fri, 12 Jul 2024 14:02:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758081.1167333; Fri, 12 Jul 2024 14: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 1sSGqy-0004UR-EF; Fri, 12 Jul 2024 14:02:28 +0000
Received: by outflank-mailman (input) for mailman id 758081;
 Fri, 12 Jul 2024 14:02: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=KtAg=OM=bounce.vates.tech=bounce-md_30504962.6691376f.v1-7b3f1ee5345a48ff83aa4421e83ad123@srs-se1.protection.inumbo.net>)
 id 1sSGqx-0004UL-Ju
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 14:02:27 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5dee78fb-4057-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 16:02:26 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WLCvz3050zB5pRww
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 14:02:23 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7b3f1ee5345a48ff83aa4421e83ad123; Fri, 12 Jul 2024 14:02: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: 5dee78fb-4057-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720792943; x=1721053443;
	bh=BQPqzYGinNVrT3sdRKBjAWc5uEJVx9kuUE70PaYy9EI=;
	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=WBf45lGMkd3UbAL+FKea/PGUw9BUYpPhwMRlQ3ukkvttpnc2C+TanIH5K+w6bD+o+
	 TnZPRj/OHJzKyZUL3z1kq2m/M8DpBEyrGCCtLEdPKz+kpG9+uH3TT5RGvAkP9sXGmH
	 Z+O9jYDCErXlPPvsJ6Kkm9SPrqohkej69wBAaRd75bIxm02fFj5+p7ROhv2NuqeydA
	 NircV5nLmiICVvV860qoBz/nVh+5MjlCtsh7Y5ozhvi2pC6Snv2RwGycnXKyThJWND
	 benfovm+O+g+gG/55HtKZfEpEsX8V0yf0/g+adWpY5OpufGnV25He7OlRL6SM3xa9K
	 bOB4CQHCvzSqg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720792943; x=1721053443; i=anthony.perard@vates.tech;
	bh=BQPqzYGinNVrT3sdRKBjAWc5uEJVx9kuUE70PaYy9EI=;
	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=IBwEo20uIzKsFkmk9cQ+r0gXSFtesrPl+HqhK427cy5tZflEPvAtvNmS2wFIRv2/j
	 0Xeqrw7uDemp+Pvp24hTM4jrVZ2T9eL7vUOOj4dIOzKuUJAjavFw9BrdQFs/6pxQmx
	 CdT7gr3RFUTWZFW+y2te+z4MVWs+fA0cXlc9tXarH9H0M94bF65DiJuAcF5qsHjD6f
	 YFrszSALLqFS3WETPdhcjSI0mR7e4rL9fSO7osiOI2gAdAscFdcjgV4Jp9QjC2eKu4
	 LB56q8oPIg1YfCaWTwhliY+n2d7WjXTAAcHxlikvKehGvOFgR1xkVaaK7wdd0H77Dd
	 pZqegM3myoUtw==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2015/12]=20CI:=20Refresh=20Ubuntu=20Xenial=20container=20as=2016.04-x86=5F64?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720792942192
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <ZpE3bW4GNht0lWci@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240712104829.3237296-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240712104829.3237296-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.7b3f1ee5345a48ff83aa4421e83ad123?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240712:md
Date: Fri, 12 Jul 2024 14:02:23 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Jul 12, 2024 at 11:48:29AM +0100, Andrew Cooper wrote:
> diff --git a/automation/scripts/containerize b/automation/scripts/containerize
> index 0ff53b6fe4e1..5fc41c36a27c 100755
> --- a/automation/scripts/containerize
> +++ b/automation/scripts/containerize
> @@ -52,9 +52,9 @@ case "_${CONTAINER}" in
>      _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
>      _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
>      _bionic) CONTAINER="${BASE}/ubuntu:bionic" ;;
> -    _xenial) CONTAINER="${BASE}/ubuntu:xenial" ;;
>      _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
>      _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
> +    _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;
>  
>      *) guess_container ;;

I've been wondering why I couldn't apply the patch (and the next one),
and there's these 2 lines of extra context ;-)

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 Jul 12 14:05:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 14:05:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758086.1167343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSGuA-00053L-0H; Fri, 12 Jul 2024 14:05:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758086.1167343; Fri, 12 Jul 2024 14:05: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 1sSGu9-00053E-ST; Fri, 12 Jul 2024 14:05:45 +0000
Received: by outflank-mailman (input) for mailman id 758086;
 Fri, 12 Jul 2024 14:05: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=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSGu8-000538-I3
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 14:05:44 +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 d32b74f8-4057-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 16:05:42 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a77b60cafecso261408066b.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 07:05:42 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a6bc85dsm350175166b.41.2024.07.12.07.05.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 07:05: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: d32b74f8-4057-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720793141; x=1721397941; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/YljAGP2Oz6rk0Qn7yR9jUx4fCDsWvqqIIBrlrghZu8=;
        b=GbXdXfNCmiT4/3O5F9P5aWYAKLNNq7b3sGOllH2sFgpKUQ4mrkyQSgNF3lbj8WRIFv
         sXpSqruqLmkh1aKjS0rBVi5iE5TawicY2N9z0FmJYcELC3mepbn8s62HONghN3ts8GWu
         c5Mo2z8eOHFMibOHFmupwB+zLpRUSiul/N2kc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720793141; x=1721397941;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/YljAGP2Oz6rk0Qn7yR9jUx4fCDsWvqqIIBrlrghZu8=;
        b=VCLFkM3t251+erMZ7MfPTbzfL/j1zjoJ5A4V9dIMYKyH1vFDOMLOblmPqV8Z6fCbb1
         gx675ayfzCLD/AFWGp55w4KOQ99eK07XKQGkmUYaZPaKgFJA1h7Xniuln8C1tv3gQp/t
         ZHIQQtfmNmtu92uYisTEQPa9agf1hh+1tVaLCC3R9wchA74hBczVNfgl7ve375jojoJr
         NiNIS0FcbFeySkFvD8Y4nqCh+7EkAl+BtSxz8Bq33d6w9LLzfC9SPdHtmiwHQglnmgMj
         YWc/daj9Lf2PtVYwPbZaGnc85z5PJ776fYPkvwRELsXto+pYwohkIn25SKDvagoUCdCZ
         eLVA==
X-Gm-Message-State: AOJu0Yy/IVFsoiEVIQtkM3F4cZ5DR42+7d1QU4Q/k3gzQIuDFOpgrvCx
	0Cih9vXF43qvdlUneCtVZAP0DpjBTYv2ztfxQprqN2/hMt7ZgmnX3XypaijihKk=
X-Google-Smtp-Source: AGHT+IEZgHD8X8Ngmjh4xhG62mo3JZWyJ7D+4vTqscMWNbYlXHqJqUnk15EqqcjxSIS5FKjNBDelag==
X-Received: by 2002:a17:907:7da6:b0:a72:750d:ab08 with SMTP id a640c23a62f3a-a780b6881e1mr906727966b.14.1720793141477;
        Fri, 12 Jul 2024 07:05:41 -0700 (PDT)
Message-ID: <ddcb8f17-1e6d-4a3b-9adc-8ef2b7842be5@citrix.com>
Date: Fri, 12 Jul 2024 15:05:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 15/12] CI: Refresh Ubuntu Xenial container as 16.04-x86_64
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240712104829.3237296-1-andrew.cooper3@citrix.com> <ZpE3bW4GNht0lWci@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZpE3bW4GNht0lWci@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/07/2024 3:02 pm, Anthony PERARD wrote:
> On Fri, Jul 12, 2024 at 11:48:29AM +0100, Andrew Cooper wrote:
>> diff --git a/automation/scripts/containerize b/automation/scripts/containerize
>> index 0ff53b6fe4e1..5fc41c36a27c 100755
>> --- a/automation/scripts/containerize
>> +++ b/automation/scripts/containerize
>> @@ -52,9 +52,9 @@ case "_${CONTAINER}" in
>>      _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
>>      _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
>>      _bionic) CONTAINER="${BASE}/ubuntu:bionic" ;;
>> -    _xenial) CONTAINER="${BASE}/ubuntu:xenial" ;;
>>      _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
>>      _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
>> +    _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;
>>  
>>      *) guess_container ;;
> I've been wondering why I couldn't apply the patch (and the next one),
> and there's these 2 lines of extra context ;-)

Yeah, sorry.  I found these when rebasing back into order.

https://xenbits.xen.org/gitweb/?p=people/andrewcoop/xen.git;a=shortlog;h=refs/heads/auto-4.19
(and its simlarly-named variants) are the branches I'm doing all of this
work on.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 14:09:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 14:09:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758091.1167352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSGxt-0006bl-HV; Fri, 12 Jul 2024 14:09:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758091.1167352; Fri, 12 Jul 2024 14: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 1sSGxt-0006be-Ej; Fri, 12 Jul 2024 14:09:37 +0000
Received: by outflank-mailman (input) for mailman id 758091;
 Fri, 12 Jul 2024 14:09: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=cZP0=OM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sSGxr-0006bV-Uc
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 14:09:35 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5d313074-4058-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 16:09:33 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2eea7e2b073so26007411fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 07:09: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
 98e67ed59e1d1-2cacd3e4a45sm1565589a91.18.2024.07.12.07.09.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 07:09: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: 5d313074-4058-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1720793373; x=1721398173; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZJoMw0tNSMubsjAqV0ICG26U6lOplcHdNAOC0zCyqOI=;
        b=fdd9BKxA3J/cXlVWr8t6VaswzwwYu3VAqEgqkXI+ty0iqY5Kh7lZLHR/x6UmmVVz/7
         ECDqfgg5i+Reu1sqPi389dQG+2GByc/BMks314tKmw6Dx5kOY8KloAPeedc0PPwyJ/u9
         qA6uWIZP2Du19NvKVm0EBYyOPsizglSFiRL+i74nCMxN7N0tBdzT04Up3L3A1k1QFJvB
         Ky3Pbpt0mXvR1kU7Ul+RNFvKjtEkU+xQkXfJ280Jhsja/OwvF2QsD2FrgYiSaEhT91gn
         Enodl/RqLOsesllfolEdkpjT2TOOajq+qHbgSNuP8afoKsW1IJdZa0o3rzVDpc6eh1LW
         0zqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720793373; x=1721398173;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZJoMw0tNSMubsjAqV0ICG26U6lOplcHdNAOC0zCyqOI=;
        b=BqVbhWRASobPgneYASbgFZSswvkhAed3vA3N/qV3agzwkBO4NScoFkdajBwk64hHNx
         XJ2ZX9rPbSRxiHlk6dD1H2tToTZjHyoCnhACB++KXGPNnIqUUBdYNsCYztshAyx0J4pe
         l6lwME7uiSIIvjtNUtZHq555lu6wV+sjsBoaNRvGF1u+HFNO2bjCJ+1wx9HMKfwzKtvd
         7qfQqC81B/XQdXrnIafK5a+pDDy+MYdem+tz+GU65MnY/1cCfe4EDm0iTe4iK8cXTTGS
         iMlIDcU5Trb0XTPu0WYGEgcCCJLKlnrWxXhghYB51feHtfdYlBvpBD4eHVAoYPWeDY+5
         Tlhg==
X-Gm-Message-State: AOJu0Ywtt+kwa/ovxcqeZnahlgZHpEJh7vnJnmJo9tR69OZyRAYDZ47g
	9XNstCZKCrB0Q2TuMBbu4vLt8XyN6D6YlRoyR9mD7TsyzsJfboAUlOU+mfZPFQ==
X-Google-Smtp-Source: AGHT+IHXkJvDT+PCGmwZoB6uv5c7zZbKtafaukq6a5n27jY5KE9A73KyuliHsFr3kq9AJdZHJM55WA==
X-Received: by 2002:a2e:9510:0:b0:2ee:d8f3:6bdf with SMTP id 38308e7fff4ca-2eed8f36c37mr4077811fa.44.1720793373012;
        Fri, 12 Jul 2024 07:09:33 -0700 (PDT)
Message-ID: <0052661e-ffbd-48ae-8082-c7509680803e@suse.com>
Date: Fri, 12 Jul 2024 16:09:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
 <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
 <88db3cb6-2b7e-48b2-9bf4-d871067325a0@suse.com>
 <3d6d35ea-5044-4249-a277-0e5aa31ed888@amd.com>
 <a6144f89-449a-4d2f-927b-a9bbdfbed56b@suse.com>
 <d0da7689-514e-4dc8-ae2c-3f2e5eeefbac@suse.com>
 <4aaa1034-2a07-47bc-9344-469653289c66@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: <4aaa1034-2a07-47bc-9344-469653289c66@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.07.2024 16:00, Andrew Cooper wrote:
> On 12/07/2024 2:46 pm, Juergen Gross wrote:
>> On 12.07.24 12:35, Jürgen Groß wrote:
>>> On 09.07.24 15:08, Jason Andryuk wrote:
>>>> After acpixtract & iasl:
>>>>
>>>> $ grep -ir FEEC *
>>>> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>>>> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>>>>
>>>>
>>>> from the DSDT:
>>>>      Scope (\_SB.PCI0.LPC0.EC0)
>>>>      {
>>>>          OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>>>>          Field (ECMM, AnyAcc, Lock, Preserve)
>>>>          {
>>>>              TWBT,   2048
>>>>          }
>>>>
>>>>          Name (BTBF, Buffer (0x0100)
>>>>          {
>>>>               0x00                                             // .
>>>>          })
>>>>          Method (BTIF, 0, NotSerialized)
>>>>          {
>>>>              BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
>>>>              Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
>>>>          }
>>>>      }
>>>>
>>>>  From SSDT16:
>>>> DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
>>>> {
>>>>      External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
>>>>
>>>>      Scope (\_SB)
>>>>      {
>>>>          OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>>>>          Field (SUSC, ByteAcc, Lock, Preserve)
>>>>          {
>>>>
>>>>
>>>> This embedded controller (?) seems to live at 0xfeec2xxx.
>>>
>>> What is the takeaway from that?
>>>
>>> Is this a firmware bug (if yes, pointers to a specification saying that
>>> this is an illegal configuration would be nice), or do we need a way to
>>> map this page from dom0?
>>
>> I've found the following in the AMD IOMMU spec [1]:
>>
>>   Received DMA requests without PASID in the 0xFEEx_xxxx address range
>> are
>>   treated as MSI interrupts and are processed using interrupt
>> remapping rather
>>   than address translation.
>>
>> To me this sounds as if there wouldn't be a major risk letting dom0 map
>> physical addresses in this area, as long as "normal" I/Os to this area
>> would
>> result in DMA requests with a PASID. OTOH I'm not familiar with Xen IOMMU
>> handling, so I might be completely wrong.
>>
>> Another question would be whether a device having resources in this
>> area can
>> even work through an IOMMU.
> 
> Address spaces are not fully uniform.  What 0xFEEx_xxxx means/does
> really does differ depending on your point of view.
> 
> The CPU accessing 0xFEEx_xxxx literally does different things than a PCI
> device accessing the same range.
> 
> That's why nothing outside of the CPU can get at the LAPIC MMIO
> registers.  No amount of remapping trickery in the IOMMU pagetables are
> going to change this fact.
> 
> 
> Now - the problem here is that 0xFEEx_xxxx is (for legacy reasons)
> "known" to be the LAPIC MMIO, which has a 4k window at the bottom and
> everything else in the 2M is reserved.
> 
> And it appears that AMD have started putting other things into that
> reserved space, which are only described by AML, and not known to Xen. 

I wouldn't read it like that. The entire range (1M though, not 2M) is the
MSI window for everything non-CPU. They merely emphasize that, imo.

> Xen, generally, is very wary of mappings in and around here, because it
> does need to prevent even dom0 having access to the interrupt controller
> MMIO windows (I'm including IO-APICs too).
> 
> So I expect Xen is saying "that's an interrupt MMIO window, no" without
> knowing that there's actually something else in there.  (But I am just
> guessing.)

That's what we do, yes. At some point we did relax that for the IO-APIC
ranges (to permit Dom0 r/o access). If all else fails, we may need to do
the same for the problems here.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 14:12:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 14:12:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758099.1167363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSH0J-00080G-U6; Fri, 12 Jul 2024 14:12:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758099.1167363; Fri, 12 Jul 2024 14: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 1sSH0J-000809-R0; Fri, 12 Jul 2024 14:12:07 +0000
Received: by outflank-mailman (input) for mailman id 758099;
 Fri, 12 Jul 2024 14:12:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rKSG=OM=bounce.vates.tech=bounce-md_30504962.669139b3.v1-d250148758eb4f20a45a0fcaae91c8c4@srs-se1.protection.inumbo.net>)
 id 1sSH0I-0007zg-C2
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 14:12:06 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b6cc0a9f-4058-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 16:12:04 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WLD772SdBz6CQMXk
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 14:12:03 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d250148758eb4f20a45a0fcaae91c8c4; Fri, 12 Jul 2024 14:12: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: b6cc0a9f-4058-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720793523; x=1721054023;
	bh=zUf8IJ98RBbfuL9bWmPkHqfQfO6wzPoBTwCCDGE9j40=;
	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=StfktHdECR84defG4hyVkT4gwP9jEWpgEynCh+07B4stDJLLjRmrOjrVxaj33T0HF
	 XC62eNtU4uatojWcpEGhr63uRQPoQAqyb5Iqg4TlB5zE+uqPaHTGQVlZAj6/vtdnFV
	 Qgca3qZPf3h6UC5NugL0aHNMepkEhiNMuJl+ctF/1d4P8PmNO6GW3x2RY5ZlX2UQsn
	 PDL2MeD+aPjuyrmfTnZsK2b8kHP0erxusH1UrxhvLkbu35Zdn3tXolBaCu218ON1Nf
	 VuyrG/ujVdgVXRdJYWO7q67lDm2QV8GSmU8sEEcsoVCtm8/CezOjrb4Z1nKHASH5Oa
	 IPiyAIyODSW4A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720793523; x=1721054023; i=anthony.perard@vates.tech;
	bh=zUf8IJ98RBbfuL9bWmPkHqfQfO6wzPoBTwCCDGE9j40=;
	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=Oxjkb7wNZkZv8yJB6S+hvgyVA2r/FIHmUW6g4a8T5r2JLDbRKg+KwNp6vFHLa0gSo
	 S2c+wlqIafOXYAPwm47vDmYONtnSpn/eqkqwZ609fEDZxgcKXpwIWW/vn0wWMXVOb5
	 2hUZOHykr/gmEztAj6sIcVYXogBjdjZoRxvviYQ3w8LYAUcbs9NwER8bIM4YqLugxG
	 g1sGEwnZyKVGV5FQdZSFE/tieckxuXPhXjMpR5P9Kk/GhL1Eq0yBJSwjkd6OTpNwHD
	 8W9Vtbqmiqwgs2Uw121IH9wMcBqC04zWIUubdpmte++e60ijjsO4rvsTSFpgWGXMqu
	 YMMV5Dpi6iwOw==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2016/12]=20CI:=20Refresh=20Ubuntu=20Bionic=20container=20as=2018.04-x86=5F64?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720793521990
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <ZpE5sSKfNaQmBQcc@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240712104842.3237603-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240712104842.3237603-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.d250148758eb4f20a45a0fcaae91c8c4?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240712:md
Date: Fri, 12 Jul 2024 14:12:03 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Jul 12, 2024 at 11:48:42AM +0100, Andrew Cooper wrote:
> As with 16.04 (Focal), except that ninja-build is available so QEMU can be

                 ^ Xenial

These names all mixed up after a while :-)

> built.
> 
> This halves the size of the container:
> 
>   registry.gitlab.com/xen-project/xen/ubuntu    18.04-x86_64           860MB
>   registry.gitlab.com/xen-project/xen/ubuntu    bionic                 1.44GB
> 
> 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 Fri Jul 12 14:13:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 14:13:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758103.1167373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSH1s-00007Y-9b; Fri, 12 Jul 2024 14:13:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758103.1167373; Fri, 12 Jul 2024 14:13:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSH1s-00007R-5Y; Fri, 12 Jul 2024 14:13:44 +0000
Received: by outflank-mailman (input) for mailman id 758103;
 Fri, 12 Jul 2024 14:13:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSH1q-00007L-Ut
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 14:13:42 +0000
Received: from mail-qk1-x729.google.com (mail-qk1-x729.google.com
 [2607:f8b0:4864:20::729])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f0e5cfea-4058-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 16:13:42 +0200 (CEST)
Received: by mail-qk1-x729.google.com with SMTP id
 af79cd13be357-79f17d6be17so138867785a.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 07:13:42 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b61baa24e4sm35254046d6.143.2024.07.12.07.13.38
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 07:13: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: f0e5cfea-4058-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720793620; x=1721398420; 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=GHkFk9bN5Y1Rd//bbLIXJyIKgY2bEX6E8FVlUzvBqr0=;
        b=khvpYAt/kDDyHhuUnhIctJUoke4M10rqboNdJn36P7rfwTKS6hOAxl5v36wWnMc0MC
         /ieVeiDOD37HkShoWcaO91hiJ8lrahgEc55F9fn2SFqlAoA1lnY3RXRYgDyGLdSUBqW6
         VGksn0QsxeXvYgPA9M7BUTHolWdY2+RjWmTss=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720793620; x=1721398420;
        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=GHkFk9bN5Y1Rd//bbLIXJyIKgY2bEX6E8FVlUzvBqr0=;
        b=K9miveKj3sytPaFmgLldjNtrQxCK877vrXGOhb1Q9KNzH4zoUcZvQH72vMAobsjvhA
         72ijTpFyahvJO2vfu4xV+Cx9dX7vXNuDil+E6LzvZS7Ox8pEHQFL7FGr3xACTG2pyho1
         fQa6jTpyUvWhcX4tQctddzw9QWAAn0C1lZNgHGbJZptTR5l0t8clxqPNYqSRC1f1fGPv
         G6goQOaLrWEci2Ju+ItjdirPCDE5QBqh+pswN4MmuMPoajpXTlE41n/rkHW42dVQWebD
         HnRUU3WdUpizEyXIF1gwdvPDaYD3Bxfa5M3IWS1cDyFPyO0VrhwsAdUn80bORGS5aPEM
         rywQ==
X-Gm-Message-State: AOJu0YyV5TTpbLEIi+bp7E2XtG4WtR6sw0KHGD1Zf+oUvk27n8KyPENy
	H2VhajNXFXS/0oEsuF/2gujk3uqaXX39UMwm6nqEv3gX5lLTYl/k7zdjjfDfY2cJt9Djzf7b9z+
	6
X-Google-Smtp-Source: AGHT+IG5yUOghi/Qb0ASsXpx4jz9b9dR/HHonB6K29LYoMKvEXYANJr73xqALCWSYskguiylWcEzrQ==
X-Received: by 2002:a05:6214:622:b0:6b5:3b00:7e62 with SMTP id 6a1803df08f44-6b61bc7e9cdmr165466176d6.8.1720793619700;
        Fri, 12 Jul 2024 07:13:39 -0700 (PDT)
Message-ID: <793ad2fa-fc9b-47b4-a2f2-b7d06d4ee76d@citrix.com>
Date: Fri, 12 Jul 2024 15:13:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 16/12] CI: Refresh Ubuntu Bionic container as 18.04-x86_64
To: xen-devel@lists.xenproject.org
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240712104842.3237603-1-andrew.cooper3@citrix.com> <ZpE5sSKfNaQmBQcc@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZpE5sSKfNaQmBQcc@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/07/2024 3:12 pm, Anthony PERARD wrote:
> On Fri, Jul 12, 2024 at 11:48:42AM +0100, Andrew Cooper wrote:
>> As with 16.04 (Focal), except that ninja-build is available so QEMU can be
>                  ^ Xenial
>
> These names all mixed up after a while :-)

Bah, yes.  This is one of the few cases where numbers are superior to
names.  Will fix.

>
>> built.
>>
>> This halves the size of the container:
>>
>>   registry.gitlab.com/xen-project/xen/ubuntu    18.04-x86_64           860MB
>>   registry.gitlab.com/xen-project/xen/ubuntu    bionic                 1.44GB
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 14:25:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 14:25:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758119.1167418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSHDa-00033w-LC; Fri, 12 Jul 2024 14:25:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758119.1167418; Fri, 12 Jul 2024 14:25:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSHDa-00033p-Hw; Fri, 12 Jul 2024 14:25:50 +0000
Received: by outflank-mailman (input) for mailman id 758119;
 Fri, 12 Jul 2024 14:25:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSHDZ-00033f-Hc; Fri, 12 Jul 2024 14:25:49 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSHDZ-0004a8-Fw; Fri, 12 Jul 2024 14:25:49 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSHDY-00029W-Uo; Fri, 12 Jul 2024 14:25:49 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSHDY-0005p7-UK; Fri, 12 Jul 2024 14:25: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kXpExGv3vCsMiHgjAra641bjOQLzpTLJKvma2Gk2oDw=; b=11mmU+U7bZG1zCEUhwA+rmWgVQ
	eR/AGMScL+0Ou5kGg/lCNTvbUEYlnL44Q2e58Me2SV/Ynazh06HCPjda1OWmEgjd3r5O9AcSbJL/7
	9mm/5lA59tplWmTiW+d9rtaemiDxNehHqiz4ISFiKa8/EA9yA/m09AxdVlk7gFMPI1Rw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186771-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186771: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt-vhd:guest-start/debian.repeat:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d46e4264c3fa68974fbb9b1bce514ea44af6d945
X-Osstest-Versions-That:
    xen=5d3e2140bbf1dc0ab0972efbc096d79509ca9ae8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 14:25:48 +0000

flight 186771 xen-unstable real [real]
flight 186779 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186771/
http://logs.test-lab.xenproject.org/osstest/logs/186779/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-vhd 17 guest-start/debian.repeat fail pass in 186779-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186764
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186764
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186764
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186764
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186764
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186764
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  d46e4264c3fa68974fbb9b1bce514ea44af6d945
baseline version:
 xen                  5d3e2140bbf1dc0ab0972efbc096d79509ca9ae8

Last test of basis   186764  2024-07-11 14:10:37 Z    1 days
Testing same since   186771  2024-07-12 03:28:30 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   5d3e2140bb..d46e4264c3  d46e4264c3fa68974fbb9b1bce514ea44af6d945 -> master


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 14:29:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 14:29:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758126.1167430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSHHT-0004a2-C4; Fri, 12 Jul 2024 14:29:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758126.1167430; Fri, 12 Jul 2024 14: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 1sSHHT-0004Zv-6w; Fri, 12 Jul 2024 14:29:51 +0000
Received: by outflank-mailman (input) for mailman id 758126;
 Fri, 12 Jul 2024 14:29: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=qHna=OM=bounce.vates.tech=bounce-md_30504962.66913dd9.v1-9ecc3683380a45bba81631d608415142@srs-se1.protection.inumbo.net>)
 id 1sSHHR-0004Zp-DN
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 14:29:49 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2fff1bc1-405b-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 16:29:47 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WLDWY59zsz6CQ4ym
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 14:29:45 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9ecc3683380a45bba81631d608415142; Fri, 12 Jul 2024 14:29: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: 2fff1bc1-405b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720794585; x=1721055085;
	bh=ku9BL4RPIFRRrZi7gv0uTHbpKe3ZpYLVxFZXHC0394w=;
	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=KWHFKzoTt1wromDad025AjmZjVYjEGd45GEvV/Q8bvpEnuBkhZ6N4L9RbWTInw9Eo
	 R/n846u1wYEXYa3qaP/xxj57W4Slp+kzRJdxOQ7OKMX94SDl2PcWGe42mUXgzQGaym
	 VenYZGLOPpC70swbYw/X1y1q3p49qkjjBAJTerFcIeAtc/RFO7QpHIprgUsHtvMCbz
	 ncZltOAwdC3wTXDvanvs3CRe7skUP1G6CLOj3xeF0JQjOm1ZBEKVMaAjuK6v7woh4O
	 X3rwR3sNsy5+ehFZ+4KJF10aSsotBsiizd34sudxmIenm/cw7cJT0Yg54ukmcNFesB
	 QBrTSK0uwEhQA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720794585; x=1721055085; i=anthony.perard@vates.tech;
	bh=ku9BL4RPIFRRrZi7gv0uTHbpKe3ZpYLVxFZXHC0394w=;
	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=yn4lf4JNTic4yNQtsIdDqNUMxrZp++m0qcIwvFxHZbO29w9eg6S0ylygtVagaxXP/
	 nh7nat/khg7bYFIWNEEopWs7T8UN7pOVDg5E/FOH/IYbrvJ61j9GhtIH1nuh0JI6Lf
	 q+kvDF0KppQKbV00BPO4CLe7wcD5cissX4JtjN0Rx2JnDQHLlckUPyFdZ810JWU3r2
	 N6yjxeN36dqhry2EygS5+w1l0raVWIOV+i/7u5FQbkAR7A2jliCb9B0G/E9XnK+CUF
	 fgtpwIwCbJM0Gnt5ATWwB5ZMt9T6Epy0UrdXciF8MVFBJvHdjw6I4ss5NxgEN7vJDV
	 R+Bd8Gt4Od/cA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2015/12]=20CI:=20Refresh=20Ubuntu=20Xenial=20container=20as=2016.04-x86=5F64?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720794584501
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <ZpE915dPhH1tgrua@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240712104829.3237296-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240712104829.3237296-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.9ecc3683380a45bba81631d608415142?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240712:md
Date: Fri, 12 Jul 2024 14:29:45 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Jul 12, 2024 at 11:48:29AM +0100, Andrew Cooper wrote:
> diff --git a/automation/build/ubuntu/16.04-x86_64.dockerfile b/automation/build/ubuntu/16.04-x86_64.dockerfile
> new file mode 100644
> +        python3-setuptools

Another thing,

I've just notice that "python3-setuptools" was originally only introduced
to focal container on purpose, by:
bbc72a7877d8 ("automation: Add python3's setuptools to some containers")

But now this patch series is introducing it to xenial and bionic. It
might be worth mentioning, or removing the deps.

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 15:44:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 15:44:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758136.1167450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSIR5-0007d5-Iu; Fri, 12 Jul 2024 15:43:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758136.1167450; Fri, 12 Jul 2024 15:43: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 1sSIR5-0007cy-GO; Fri, 12 Jul 2024 15:43:51 +0000
Received: by outflank-mailman (input) for mailman id 758136;
 Fri, 12 Jul 2024 15:43: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=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSIR4-0007cs-DM
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 15:43:50 +0000
Received: from mail-qv1-xf29.google.com (mail-qv1-xf29.google.com
 [2607:f8b0:4864:20::f29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 863aa3f8-4065-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 17:43:46 +0200 (CEST)
Received: by mail-qv1-xf29.google.com with SMTP id
 6a1803df08f44-6b5ecafbf88so10460356d6.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 08:43:46 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b61b9ec002sm36335026d6.46.2024.07.12.08.43.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 08:43: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: 863aa3f8-4065-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720799025; x=1721403825; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dWd+n4yiFFWvvagGGhW3G76+L4yKCvDlRp42nISmMPU=;
        b=Szj+mVn3XVdJMQ/bj22b6Hn7AUoNyJgNr7Abg/qN15UE4KY6yNAG+81630KiA6X5et
         9+DsuE62kSasTAQ2i2YMPN8WruxiCe/eN04kGn+j+Ml08gjARpWljnQ1Sc/c6JY4YLEM
         BYZe+sKO6rwL96U7J1YwtfGHnMqJUzOFOOBNQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720799025; x=1721403825;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dWd+n4yiFFWvvagGGhW3G76+L4yKCvDlRp42nISmMPU=;
        b=c2YYoSm8Z9LTKYGfFHI3S3AdCoknzqwlg7ruDivsPbY4EsT5QagCgEgQj1kW4E7bd6
         ISeDPHOfp4ipdJ9J9fH1/YmE1ZKQzaAAOwjeWb/XxNupu+NESc7aeuNdabafzrLqm6aq
         GjbHBvxGYmzhe+c5EGN6XoqZ3AuqqFlugMHTkq6eTsZfUamTzta5dEVrA5LmMDhqhMxq
         y5Yia+yl2R3mIrhL3dTHpUp3cY1tiVq2jL1Fo5IiOPmBU5+9FMmQVRTldNKJ9FB5DRA8
         vxDf0ObLCm/AN9Q3YtTb9qspcm9cBzksFrz8x5LRuGqa5xF4nIxr1IZDlEnhFXfju3XN
         uXjA==
X-Gm-Message-State: AOJu0Yyh2YMUvQY+q54HuYawRcysQ7JPAmU5Ha/NCplX11frRU6KT3El
	e3YzAuq0KXrw7kc7Hwv/tQBLKL8IdfEo4NHfSOfXIJYVj5nrRnrGYqQCes3VaLE=
X-Google-Smtp-Source: AGHT+IF5wH66jGQzK6wK6g4T4aYbBVnRxLTz5uRNzaiypbO8qJorxSJFUQ9w7duYSJFwJh+Z4eFYeg==
X-Received: by 2002:a05:6214:19cb:b0:6b7:431c:1b19 with SMTP id 6a1803df08f44-6b7431c1ea3mr98400456d6.6.1720799025371;
        Fri, 12 Jul 2024 08:43:45 -0700 (PDT)
Message-ID: <f95e793d-e8c3-4e21-926a-7e4a5fc66580@citrix.com>
Date: Fri, 12 Jul 2024 16:43:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 15/12] CI: Refresh Ubuntu Xenial container as 16.04-x86_64
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240712104829.3237296-1-andrew.cooper3@citrix.com> <ZpE915dPhH1tgrua@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZpE915dPhH1tgrua@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/07/2024 3:29 pm, Anthony PERARD wrote:
> On Fri, Jul 12, 2024 at 11:48:29AM +0100, Andrew Cooper wrote:
>> diff --git a/automation/build/ubuntu/16.04-x86_64.dockerfile b/automation/build/ubuntu/16.04-x86_64.dockerfile
>> new file mode 100644
>> +        python3-setuptools
> Another thing,
>
> I've just notice that "python3-setuptools" was originally only introduced
> to focal container on purpose, by:
> bbc72a7877d8 ("automation: Add python3's setuptools to some containers")
>
> But now this patch series is introducing it to xenial and bionic. It
> might be worth mentioning, or removing the deps.
>

Oh, good point.  I'll take this back out of Xenial/Bionic.

Stretch/Trusty have already been removed.

Thanks,

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:19:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758147.1167481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSIz8-0004TW-IV; Fri, 12 Jul 2024 16:19:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758147.1167481; Fri, 12 Jul 2024 16: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 1sSIz8-0004TP-FW; Fri, 12 Jul 2024 16:19:02 +0000
Received: by outflank-mailman (input) for mailman id 758147;
 Fri, 12 Jul 2024 16:19: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSIz6-00040f-RP
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:19:00 +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 725cc52d-406a-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 18:19:00 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58bac81f40bso2957343a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:19:00 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bb9604f7sm4669169a12.15.2024.07.12.09.18.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09:18: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: 725cc52d-406a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801139; x=1721405939; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BY3OUb5w0oTrYR4mV0gprlP5xV2m84WlodPsogn9Pjs=;
        b=lyKrcixoE2JbL8aCfalV6m8iFZeZq+epl8czRQsC9RP6XgqfKX10VPOxxs9ukqxVHO
         ItrJ6vmpFY/PftN7zpHQv5uQWVUHSVuUVscqMT3TtrGmel95h2sYq62oMR/eWuBFHug4
         I+uddAJKWICaK4jMjlVyvIVFu6ysOIdtKqM8W5KS+5rFr2PTRzu4vv8UzOG62GThGlv+
         NqlEcVSBhwArEef5ib+Fodq3/+yGSye6EjvT3VPaJC00eV/M5E+WhzHIYdV9gmEuI+N0
         ajQsEjY0zKT5yDup2rHfwFqQXdaPWZUZW6eTPb2ESgkHlsahmqJzYZY8/mqcfMWp3zKL
         xgUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801139; x=1721405939;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BY3OUb5w0oTrYR4mV0gprlP5xV2m84WlodPsogn9Pjs=;
        b=JI85Pbc7+cWqC0uMHpKHTvccGGlz+l3C2HBhcRhwI+3X/J//WN0hpuvilo8IBKgHSE
         TkTZhZv9Vz4v3X2XJ4fjgb+AP4yDjS15/IzkkMsajhUbKIiiugcRNwpPOxWsgjBnprnq
         wcmlhjTM5W3u6ozWoNeEtC/58YgCL1mX/YpTr5JD8YcJuqjWbBkNrnjnRf9ziWzUeoPH
         y3hlgyr3zbREGOGIMffTcoigECD9DtIAGy0MorqShArOZzzMzy5P5s1GnJ3XHn+grjbY
         q4u4sh2bQtvJ6m37uQqLegX+Rw/ITeWjrBps1AklG4eC0nfibJ7w5eWknnJVS7x3VrGg
         v4Pw==
X-Gm-Message-State: AOJu0Yzz5x/WSmoLCpWC8KA0d8YDJz3oTVnOyNpL8uqJze0pM3BNNGre
	NVxfbz2ljhbwd8K4fVc60lC2ZPRIGMfKGZv83ApLANIkfCQM6cE6l0vDHAj0
X-Google-Smtp-Source: AGHT+IHL4FpM9BdrB3G+J7mKN1NNcS9yF2cOvmTTRegbZwowIZgJUdW3gdEkQ0GTVm3AiEdwiU2g1w==
X-Received: by 2002:aa7:c35a:0:b0:57a:858d:20ca with SMTP id 4fb4d7f45d1cf-594bc7c7e77mr7398976a12.28.1720801139348;
        Fri, 12 Jul 2024 09:18:59 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v10 3/5] xen/riscv: introduce trap_init()
Date: Fri, 12 Jul 2024 18:18:52 +0200
Message-ID: <80c02f1215d74e42fd9bc7f0d6e27d043a11b0e9.1720799487.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799487.git.oleksii.kurochko@gmail.com>
References: <cover.1720799487.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

trap_init() wasn't declared with the __init attribute to avoid removing
__init when multi-CPU support for Xen is added.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
---
Changes in V10:
  - update the commit message
---
Changes in V9:
 - drop inclusion of <asm/mm.h> in setup.c
 - drop #include <public/version.h>
 - ... <xen/bug.h>
 - introduce stub for
   void arch_get_xen_caps(xen_capabilities_info_t *info);

 - resolve rebase conflicts.
---
Changes in V8:
 - nothing changed. only rebase was done.
---
Changes in V7:
 - #define cast_to_bug_frame(addr) ((const struct bug_frame *)(addr)).
 - remove unnecessary comments in trap_init() function.
---
Changes in V6:
 - trap_init() is now called after enabling the MMU.
 - Add additional explanatory comments.
---
Changes in V5:
  - Nothing changed
---
Changes in V4:
  - Nothing changed
---
Changes in V3:
  - Nothing changed
---
Changes in V2:
  - Rename setup_trap_handler() to trap_init().
  - Add Reviewed-by to the commit message.
---
 xen/arch/riscv/include/asm/traps.h |  1 +
 xen/arch/riscv/setup.c             |  3 +++
 xen/arch/riscv/traps.c             | 12 ++++++++++++
 3 files changed, 16 insertions(+)

diff --git a/xen/arch/riscv/include/asm/traps.h b/xen/arch/riscv/include/asm/traps.h
index 3fef318478..c30118e095 100644
--- a/xen/arch/riscv/include/asm/traps.h
+++ b/xen/arch/riscv/include/asm/traps.h
@@ -9,6 +9,7 @@
 
 void do_trap(struct cpu_user_regs *cpu_regs);
 void handle_trap(void);
+void trap_init(void);
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index e3cb0866d5..a6a29a1508 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -8,6 +8,7 @@
 #include <public/version.h>
 
 #include <asm/early_printk.h>
+#include <asm/traps.h>
 
 void arch_get_xen_caps(xen_capabilities_info_t *info)
 {
@@ -23,6 +24,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 {
     remove_identity_mapping();
 
+    trap_init();
+
     printk("All set up\n");
 
     for ( ;; )
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 37cec40dfa..cb18b30ff2 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -12,6 +12,18 @@
 #include <asm/riscv_encoding.h>
 #include <asm/traps.h>
 
+/*
+ * Initialize the trap handling.
+ *
+ * The function is called after MMU is enabled.
+ */
+void trap_init(void)
+{
+    unsigned long addr = (unsigned long)&handle_trap;
+
+    csr_write(CSR_STVEC, addr);
+}
+
 static const char *decode_trap_cause(unsigned long cause)
 {
     static const char *const trap_causes[] = {
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:19:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758149.1167494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSIz9-0004hF-E0; Fri, 12 Jul 2024 16:19:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758149.1167494; Fri, 12 Jul 2024 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 1sSIz9-0004fO-6k; Fri, 12 Jul 2024 16:19:03 +0000
Received: by outflank-mailman (input) for mailman id 758149;
 Fri, 12 Jul 2024 16: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSIz7-00040f-OL
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:19:01 +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 72e22411-406a-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 18:19:01 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-57d05e0017aso2943721a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:19:01 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bb9604f7sm4669169a12.15.2024.07.12.09.18.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09:18: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: 72e22411-406a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801140; x=1721405940; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g0C/9rghoKuThfbYBBAzL0tAO029l075q93CgDcGue8=;
        b=fZEo7Jgt02lk/DQ8uvhYOevUnfq9AF0WeUAlTjNUT6eQEKQsFqe2N2q39mvnRyZS5e
         XO/7nojXV5rKNo8ex845O3NPEJgJ+WyXWVB69waaXqrOA/AqMO73Qm4yaSkzCxAeXBtE
         tlsvCn87ZQ9P/m8CHZ9cEJQBudT9Tj2cD+OmdZEHCQKAHqd+6r7w+x/Gx0Nb6DXPEjmt
         FesAcRcHWGjLWfWoDeW2C61TC1d9C+MqcsWhagTMdImiK6Uyg97rmCkz0E2LoeCuBBsS
         sElIZLQBk7yoX8eNpBGaG+ft405LJlQPrIg3oSIdc1/eRDY2m4OBshMh7crf9MhjicUw
         1xZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801140; x=1721405940;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=g0C/9rghoKuThfbYBBAzL0tAO029l075q93CgDcGue8=;
        b=jJXlFuL6XYEOGhjhZUQ8amz9TkLXHdOdeptqYFhrjWWA4zfJNqZ76uHPVkqV1ccONs
         zw5mW4MdW9FEMZaXV4bG55Chl+kuu/dEXkYeDPslFpxsSyI0XF3R2E28PUPCtnWfbTmK
         NOCzuBcmfYcyLCvFSCVDqDcLcONhCJbXT7809DXIj2GsLuGicic6m3HI0gmBm4VjYR4v
         FsDsReUfI0cvfcrTn/MUnUe8JSRqDIfwNgGsXzJDrOJ0DvTzlWp2V1lR3Ub1jLFUpBr0
         uO0fHz0Wz0iEpwzeADWHRrdyRcZWaNsx8Ify+/cl4MpY3JC2pjjlgFqXXeGQK6/a+J0r
         WYiw==
X-Gm-Message-State: AOJu0YycLmLMkIx9tqRyHs4iSs0t+rslRQf7OfUwbEDM9wB5DsjK1+s1
	KOX84Q7dmRKJf5Qh6y2+1BmXKbXQyM8MSJWQlbr6jf3bGoQ8NtjhuAYLTbqH
X-Google-Smtp-Source: AGHT+IHMCmazHpXLAa9xShPyez/uzRL10FRAkizhRobVMY2criCmK6BPZE5sZVwUOXOYsN/owRJ9zw==
X-Received: by 2002:a05:6402:1911:b0:57c:5b7a:87e7 with SMTP id 4fb4d7f45d1cf-594ba0cbecemr9569042a12.14.1720801140259;
        Fri, 12 Jul 2024 09:19:00 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v10 4/5] xen/riscv: enable GENERIC_BUG_FRAME
Date: Fri, 12 Jul 2024 18:18:53 +0200
Message-ID: <c2bbbe2ac9f41c19f746418df324212b2e4684a5.1720799487.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799487.git.oleksii.kurochko@gmail.com>
References: <cover.1720799487.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

To have working BUG(), WARN(), ASSERT, run_in_exception_handler()
it is needed to enable GENERIC_BUG_FRAME.

Also, <xen/lib.h> is needed to be included for the reason that panic() and
printk() are used in common/bug.c and RISC-V fails if it is not included
with the following errors:
   common/bug.c:69:9: error: implicit declaration of function 'printk'
   [-Werror=implicit-function-declaration]
      69 |         printk("Xen WARN at %s%s:%d\n", prefix, filename,
   lineno);
         |         ^~~~~~
   common/bug.c:77:9: error: implicit declaration of function 'panic'
   [-Werror=implicit-function-declaration]
      77 |         panic("Xen BUG at %s%s:%d\n", prefix, filename,
   lineno);

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V10:
 - put 'select GENERIC_BUG_FRAME' in "Config RISCV".
 - rework do_trap() to not fetch an instruction in case when the cause of trap
   is BUG_insn.
 - drop read_instr() and is_valid_bug_insn().
 - update the commit message.
---
Changes in V9:
 - Rebase on the top of current staging.
 - use GENERIC_BUG_FRAME as now we have common code available.
 - add xen/lib.h to bug.c to fix a compilation error around printk.
 - update the commit message.
 - update the code of read_instr() in traps.c
 - fold two-s if into 1 in do_trap.
---
Changes in V8:
  - remove Pointless initializer of id.
  - make bug_frames[] array constant.
  - remove cast_to_bug_frame(addr).
  - rename is_valig_bugaddr to is_valid_bug_insn().
  - add check that read_instr is used only on xen code
  - update the commit message.
---
Changes in V7:
 - move to this patch the definition of cast_to_bug_frame() from the previous patch.
 - update the comment in bug.h.
 - update the comment above do_bug_frame().
 - fix code style.
 - add comment to read_instr func.
 - add space for bug_frames in lds.S.
---
Changes in V6:
  - Avoid LINK_TO_LOAD() as bug.h functionality expected to be used
    after MMU is enabled.
  - Change early_printk() to printk()
---
Changes in V5:
  - Remove "#include <xen/types.h>" from <asm/bug.h> as there is no any need in it anymore
  - Update macros GET_INSN_LENGTH: remove UL and 'unsigned int len;' from it
  - Remove " include <xen/bug.h>" from risc/setup.c. it is not needed in the current version of
    the patch
  - change an argument type from vaddr_t to uint32_t for is_valid_bugaddr and introduce read_instr() to
    read instruction properly as the length of qinstruction can be either 32 or 16 bits.
  - Code style fixes
  - update the comments before do_bug_frame() in riscv/trap.c
  - Refactor is_valid_bugaddr() function.
  - introduce macros cast_to_bug_frame(addr) to hide casts.
  - use LINK_TO_LOAD() for addresses which are linker time relative.
---
Changes in V4:
  - Updates in RISC-V's <asm/bug.h>:
    * Add explanatory comment about why there is only defined for 32-bits length
      instructions and 16/32-bits BUG_INSN_{16,32}.
    * Change 'unsigned long' to 'unsigned int' inside GET_INSN_LENGTH().
    * Update declaration of is_valid_bugaddr(): switch return type from int to bool
      and the argument from 'unsigned int' to 'vaddr'.
  - Updates in RISC-V's traps.c:
    * replace /xen and /asm includes
    * update definition of is_valid_bugaddr():switch return type from int to bool
      and the argument from 'unsigned int' to 'vaddr'. Code style inside function
      was updated too.
    * do_bug_frame() refactoring:
      * local variables start and bug became 'const struct bug_frame'
      * bug_frames[] array became 'static const struct bug_frame[] = ...'
      * remove all casts
      * remove unneeded comments and add an explanatory comment that the do_bug_frame()
        will be switched to a generic one.
    * do_trap() refactoring:
      * read 16-bits value instead of 32-bits as compressed instruction can
        be used and it might happen than only 16-bits may be accessible.
      * code style updates
      * re-use instr variable instead of re-reading instruction.
  - Updates in setup.c:
    * add blank line between xen/ and asm/ includes.
---
Changes in V3:
  - Rebase the patch "xen/riscv: introduce an implementation of macros
    from <asm/bug.h>" on top of patch series [introduce generic implementation
    of macros from bug.h]
---
Changes in V2:
  - Remove __ in define namings
  - Update run_in_exception_handler() with
    register void *fn_ asm(__stringify(BUG_FN_REG)) = (fn);
  - Remove bug_instr_t type and change it's usage to uint32_t
---
 xen/arch/riscv/Kconfig |  1 +
 xen/arch/riscv/traps.c | 25 ++++++++++++++++++++++++-
 xen/common/bug.c       |  1 +
 3 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index b4b354a778..f531e96657 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -1,6 +1,7 @@
 config RISCV
 	def_bool y
 	select FUNCTION_ALIGNMENT_16B
+	select GENERIC_BUG_FRAME
 
 config RISCV_64
 	def_bool y
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index cb18b30ff2..e39603dc95 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -5,6 +5,7 @@
  * RISC-V Trap handlers
  */
 
+#include <xen/bug.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
 
@@ -103,7 +104,29 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
 
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
-    do_unexpected_trap(cpu_regs);
+    register_t pc = cpu_regs->sepc;
+    unsigned long cause = csr_read(CSR_SCAUSE);
+
+    switch ( cause )
+    {
+    case CAUSE_BREAKPOINT:
+        if ( do_bug_frame(cpu_regs, pc) >= 0 )
+        {
+            if ( !pc ||
+                 !(is_kernel_text(pc + 1) || is_kernel_inittext(pc + 1)) )
+            {
+                printk("Something wrong with PC: 0x%lx\n", pc);
+                die();
+            }
+
+            cpu_regs->sepc += GET_INSN_LENGTH(*(uint16_t *)pc);
+            return;
+        }
+
+        break;
+    default:
+        do_unexpected_trap(cpu_regs);
+    }
 }
 
 void vcpu_show_execution_state(struct vcpu *v)
diff --git a/xen/common/bug.c b/xen/common/bug.c
index b7c5d8fd4d..75cb35fcfa 100644
--- a/xen/common/bug.c
+++ b/xen/common/bug.c
@@ -1,6 +1,7 @@
 #include <xen/bug.h>
 #include <xen/errno.h>
 #include <xen/kernel.h>
+#include <xen/lib.h>
 #include <xen/livepatch.h>
 #include <xen/string.h>
 #include <xen/types.h>
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:19:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758145.1167460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSIz7-000412-6R; Fri, 12 Jul 2024 16:19:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758145.1167460; Fri, 12 Jul 2024 16:19:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSIz7-00040v-3M; Fri, 12 Jul 2024 16:19:01 +0000
Received: by outflank-mailman (input) for mailman id 758145;
 Fri, 12 Jul 2024 16:18:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSIz5-00040f-RE
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:18:59 +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 7158473a-406a-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 18:18:58 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-58b966b41fbso2742376a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:18:58 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bb9604f7sm4669169a12.15.2024.07.12.09.18.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09:18: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: 7158473a-406a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801138; x=1721405938; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i1ipnza5ajE4GRPCrSoMhjiWbzjCCaJILPUyqeHpgvk=;
        b=XPfyBv00bCGx4p1Yw1dtijDFsl8AN16o/+RMqi3VKprk54WkLVX/EWtkTu2LpIzhD+
         OPuBZHttUYJM6c4dSRzSXzPBoupN5qcOz3mf5KkxgLbIiVgfmwc4kEKBHYvBzz0i6+rq
         9Y2LFVIGpMJEIm86PVw60ywokrwLGJEJ7XvwpbK0PTh99uxpU4SdvNTAOEt6G+GV0lqY
         w8d9kul02eTXR6BHIGRP0z9jhvs+ERJDQtCy21xnrv97/otIu3GhLuTl0jxF2Gy23d54
         U+WIGy5xCqdMGlndCVX76TpgsTiXm8NCzd6El6bioanXlECZ3Owg4Vz30/6XiHvc0ho7
         MycA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801138; x=1721405938;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=i1ipnza5ajE4GRPCrSoMhjiWbzjCCaJILPUyqeHpgvk=;
        b=LHOslbc9y0ZQUnglp7SxbsajTU+JOKw287LYiMKP+B8miI6GBYpstw0LdKdR6Ip1AB
         vBiXoc7B45mnMTGDkkOHogOl7u2r8rfb7YWf3RftMt3D1zVXQ3qgi6DlXdS3ssi/b6ul
         nZUs861j/12OZYL+79Xl7ZJ5X1y69tWp4IN65PvTNU4PZQINkTXJkQ5yCC05i7dTWEz4
         DUXfOWivEPr3fxEYSOqpboqEv4p7UoL6yFF92sMwzcZMDuDwV/P/xcZ8kGVUKuKQ69oT
         AFBsvsPjUe2cNYbbrSPJU/mfpkMNucflwgc7iDiTQt7k6X6bsXpANdzl2MztNop9YJ5s
         Gqpg==
X-Gm-Message-State: AOJu0YzdlNnXYdGl6a77oJJ1ZgUe2mX0P+ZSdS0i9Fv0GWrU/W7m5ENo
	fI/aFgAl4zHh4YyZVov7JliYD7EiZXhT8tC3PBDobmbU5FKSOVHnCNHWXSFZ
X-Google-Smtp-Source: AGHT+IF8vH7b+Z1sUrUYZuYyXAWCTAVtL76GPrTswXrnEy5mYpV+Qpyt/1xnLDBaDtwh7XWDCParxg==
X-Received: by 2002:a50:a457:0:b0:572:9962:7f0 with SMTP id 4fb4d7f45d1cf-594bc7c802bmr7069998a12.34.1720801137759;
        Fri, 12 Jul 2024 09:18: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v10 1/5] xen/riscv: use printk() instead of early_printk()
Date: Fri, 12 Jul 2024 18:18:50 +0200
Message-ID: <f80a93ee72a5887a9ba259db61e4571379315f6f.1720799487.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799487.git.oleksii.kurochko@gmail.com>
References: <cover.1720799487.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As common code is available it is better to use printk() instead
of early_printk().

Also the printing of "Hello from RISC-V world" is dropped as
it is useless and "All set up is enough".

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V10:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V9:
 - new patch
---
 xen/arch/riscv/setup.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 8bb5bdb2ae..e3cb0866d5 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -23,9 +23,7 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 {
     remove_identity_mapping();
 
-    early_printk("Hello from C env\n");
-
-    early_printk("All set up\n");
+    printk("All set up\n");
 
     for ( ;; )
         asm volatile ("wfi");
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:19:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758146.1167467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSIz7-00043e-Eq; Fri, 12 Jul 2024 16:19:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758146.1167467; Fri, 12 Jul 2024 16:19:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSIz7-00042w-9P; Fri, 12 Jul 2024 16:19:01 +0000
Received: by outflank-mailman (input) for mailman id 758146;
 Fri, 12 Jul 2024 16: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSIz5-00040X-S7
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:18:59 +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 711a9ed4-406a-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 18:18:58 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-58bac81f419so2716774a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:18:58 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bb9604f7sm4669169a12.15.2024.07.12.09.18.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09:18: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: 711a9ed4-406a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801137; x=1721405937; 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=NXe22rbbZddwnWe7Ssbmhr+4swL/jZ9F2BhrIiBfDDU=;
        b=lBe76D2QLhf3Nj7YuB9GcyZ0ZTQvNC9h4mWVLIScWGGBuzTekMYiLaKHiWfSUM4pb3
         KBKBCVB7PLKlh/CrfnGGGAoJb/3meGQXYpQZp6wvi4F3H1ZJXATD4HMHIWmyBOhm1jPh
         cEJ+VMcPPmQw92BvFlUoblrl8hmWkb3aJAY3gJ13+lV+q3QocenG+1NAvjBsB7Z4N7YP
         kO0MRJVxkDccJk2Rl2pdCuFHMEhIKM0VondxwkDAg5S5ajXQoWIuBRwljjDMDAa9lCI+
         gn3+nFE4Jexi8J1fUJpqSrBHFv/QTylwvPGZTQRDYJb2FZnS+/FVpPH72O7RuvNjXEmy
         tByw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801137; x=1721405937;
        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=NXe22rbbZddwnWe7Ssbmhr+4swL/jZ9F2BhrIiBfDDU=;
        b=jOEj/n9WUSxPmolkxUvJY3Kh/kFfyewldozlio+QRs64WTYLJzCD05/6jRz91L6uaL
         odNvvJdinNqUWUiC+nL08CxIhC6lY68uqVhq4rfo2Mylb0YPN/CznYgoL5EyC87meThu
         DXXjhkJkUYANUpWad5MXNb3emCW6uLx928w/s5cGW03hm7a63LW9mf4raeTfj+Tewx0d
         RDz17OxwWHcAJ/AHX8EUGSSJdbe0A6XFazrEZCLXczDNqj02/JNiK680jewA4gYgPHc7
         aZKvynO4B10iZHqB3vskaQEODzuoLutY2iLjfr/zuLvaiDu58wkZLFmEY1dQlTk0yBEM
         +IWw==
X-Gm-Message-State: AOJu0YyGcJR1nuTp/4y4OGkp7ZgR2dlHgNs3xu26Kp+SnM3u7wblcoff
	9PEfSOR9v10wBl2GE49ozT2qNoEl0WAaWvOn9nluKqMnA1Wg1RMHGCvZGd9u
X-Google-Smtp-Source: AGHT+IF0Zgu9iuoHUCiNRE8I+dIHjGVipRzD76BqDww+FLloiYrR3O4ViApo6jioD9UgcVUb90V2qg==
X-Received: by 2002:a05:6402:124c:b0:58d:5a53:daac with SMTP id 4fb4d7f45d1cf-594bc7c8020mr6833733a12.27.1720801136922;
        Fri, 12 Jul 2024 09:18:56 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v10 0/5]RISCV basic exception handling implementation
Date: Fri, 12 Jul 2024 18:18:49 +0200
Message-ID: <cover.1720799487.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The patch series is based on:
    Enable build of full Xen for RISC-V [1]
which haven't fully been merged yet.

The patch series provides a basic implementation of exception handling.
It can do only basic things such as decode a cause of an exception,
save/restore registers and execute "wfi" instruction if an exception
can not be handled.

To verify that exception handling works well it was used macros
from <asm/bug.h> such as BUG/WARN/run_in_exception/assert_failed.

It wasn't implemented show_execution_state() and stack trace discovering
as it's not necessary now.

[1] https://lore.kernel.org/xen-devel/cover.1719917348.git.oleksii.kurochko@gmail.com/T/#m8ee766297511fb6fb4a38b7753ab6b792361be04

---
Changes in V10:
 - No generic changes to describe here. Please look at patch-specific changes.
---
Changes in V9:
 - Update the cover letter message.
 - s/early_printk/printk.
 - use GENERIC_BUG_FRAME instead of arch-specific implementation of do_bug_frame().
 - Rebase on top of current staging and riscv-full-xen-build-v14.
---
Changes in V8:
 - Update the commit message of the cover letter.
 - Remove the patch with an introduction of dummy asm/bug.h and introduce
   normal asm/bug.h
 - Fix typo in return string from decode_reserved_interrupt_cause
 - Add "Acked-by: Alistair Francis <alistair.francis@wdc.com>" for the patch
   "xen/riscv: introduce decode_cause() stuff"
 - Remove Pointless initializer of id in do_bug_frame().
 - Make bug_frames[] array constant in do_bug_frame().
 - Remove cast_to_bug_frame(addr).
 - Rename is_valig_bugaddr to is_valid_bug_insn().
 - Add check that read_instr is used only on Xen code
 - Update the commit message.
---
Changes in V7:
 - Update the depenency ( mentioned in the cover letter message ) of the current
   patch series.
 - clean up comments.
 - code style fixes.
 - move definition of cast_to_bug_frame() from patch 4 to 5.
---
Changes in V6:
 - Update the cover letter message: the patch set is based on MMU patch series.
 - Introduce new patch with temporary printk functionality. ( it will be
   removed when Xen common code will be ready )
 - Change early_printk() to printk().
 - Remove usage of LINK_TO_LOAD() due to the MMU being enabled first.
 - Add additional explanatory comments.
 - Remove patch "xen/riscv: initialize boot_info structure" from the patch
   series.
---
Changes in V5:
 - Rebase on top of [1] and [2]
 - Add new patch which introduces stub for <asm/bug.h> to keep Xen compilable
   as in the patch [xen/riscv: introduce decode_cause() stuff] is used
   header <xen/lib.h> which requires <asm/bug.h>.
 - Remove <xen/error.h> from riscv/traps/c as nothing would require
   inclusion.
 - decode_reserved_interrupt_cause(), decode_interrupt_cause(),
   decode_cause, do_unexpected_trap() were made as static they are expected
   to be used only in traps.c
 - Remove "#include <xen/types.h>" from <asm/bug.h> as there is no any need in it anymore
 - Update macros GET_INSN_LENGTH: remove UL and 'unsigned int len;' from it
 - Remove " include <xen/bug.h>" from risc/setup.c. it is not needed in the current version of
   the patch
 - change an argument type from vaddr_t to uint32_t for is_valid_bugaddr and introduce 
   read_instr() to read instruction properly as the length of qinstruction can be
   either 32 or 16 bits.
 - Code style fixes
 - update the comments before do_bug_frame() in riscv/trap.c
 - [[PATCH v4 5/5] automation: modify RISC-V smoke test ] was dropped as it was provided
   more simple solution by Andrew.  CI: Simplify RISCV smoke testing
 - Refactor is_valid_bugaddr() function.
 - 2 new patches ([PATCH v5 {1-2}/7]) were introduced, the goal of which is to recalculate
   addresses used in traps.c, which can be linker time relative. It is needed as we don't
   have enabled MMU yet.
---
Changes in V4:
  - Rebase the patch series on top of new version of [introduce generic
    implementation of macros from bug.h] patch series.
  - Update the cover letter message as 'Early printk' was merged and
    the current one patch series is based only on [introduce generic
    implementation of macros from bug.h] which hasn't been commited yet.
  - The following patches of the patch series were merged to staging:
      [PATCH v3 01/14] xen/riscv: change ISA to r64G
      [PATCH v3 02/14] xen/riscv: add <asm/asm.h> header
      [PATCH v3 03/14] xen/riscv: add <asm/riscv_encoding.h header
      [PATCH v3 04/14] xen/riscv: add <asm/csr.h> header
      [PATCH v3 05/14] xen/riscv: introduce empty <asm/string.h>
      [PATCH v3 06/14] xen/riscv: introduce empty <asm/cache.h>
      [PATCH v3 07/14] xen/riscv: introduce exception context
      [PATCH v3 08/14] xen/riscv: introduce exception handlers implementation
      [PATCH v3 10/14] xen/riscv: mask all interrupts
  - Fix addressed comments in xen-devel mailing list.

---
Changes in V3:
  - Change the name of config RISCV_ISA_RV64IMA to RISCV_ISA_RV64G
    as instructions from Zicsr and Zifencei extensions aren't part of
    I extension any more.
  - Rebase the patch "xen/riscv: introduce an implementation of macros
    from <asm/bug.h>" on top of patch series [introduce generic implementation
    of macros from bug.h]
  - Update commit messages
---
Changes in V2:
  - take the latest riscv_encoding.h from OpenSBI, update it with Xen
    related changes, and update the commit message with "Origin:"
    tag and the commit message itself.
  - add "Origin:" tag to the commit messag of the patch
    [xen/riscv: add <asm/csr.h> header].
  - Remove the patch [xen/riscv: add early_printk_hnum() function] as the
    functionality provided by the patch isn't used now.
  - Refactor prcoess.h: move structure offset defines to asm-offsets.c,
    change register_t to unsigned long.
  - Refactor entry.S to use offsets defined in asm-offsets.C
  - Rename {__,}handle_exception to handle_trap() and do_trap() to be more
    consistent with RISC-V spec.
  - Merge the pathc which introduces do_unexpected_trap() with the patch
    [xen/riscv: introduce exception handlers implementation].
  - Rename setup_trap_handler() to trap_init() and update correspondingly
    the patches in the patch series.
  - Refactor bug.h, remove bug_instr_t type from it.
  - Refactor decode_trap_cause() function to be more optimization-friendly.
  - Add two new empty headers: <cache.h> and <string.h> as they are needed to
    include <xen/lib.h> which provides ARRAY_SIZE and other macros.
  - Code style fixes.
---

Oleksii Kurochko (5):
  xen/riscv: use printk() instead of early_printk()
  xen/riscv: introduce decode_cause() stuff
  xen/riscv: introduce trap_init()
  xen/riscv: enable GENERIC_BUG_FRAME
  xen/riscv: test basic exception handling stuff

 xen/arch/riscv/Kconfig             |   1 +
 xen/arch/riscv/include/asm/traps.h |   1 +
 xen/arch/riscv/setup.c             |  25 ++++++-
 xen/arch/riscv/traps.c             | 115 ++++++++++++++++++++++++++++-
 xen/common/bug.c                   |   1 +
 5 files changed, 140 insertions(+), 3 deletions(-)

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:19:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758148.1167487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSIz8-0004Wo-UL; Fri, 12 Jul 2024 16:19:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758148.1167487; Fri, 12 Jul 2024 16: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 1sSIz8-0004WI-NQ; Fri, 12 Jul 2024 16:19:02 +0000
Received: by outflank-mailman (input) for mailman id 758148;
 Fri, 12 Jul 2024 16:19:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSIz7-00040X-IQ
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:19:01 +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 7209ec4a-406a-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 18:18:59 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5854ac817afso2829789a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:18:59 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bb9604f7sm4669169a12.15.2024.07.12.09.18.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09: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: 7209ec4a-406a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801139; x=1721405939; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wnR0lQfCiZrZB2pYI/iZQqNx4LzjeoRWt1LANtUWrVY=;
        b=lSCp4Cc/PTWxq/7qRzPBu6lXm80ywlWCafTDm4hGd2XpeB51S/XEdKPYzaYiqngM7u
         BWVxoPZoriLXjLC+JGoWvhbgYvF6G1Bx2VaISOQRjL3Tt2B4qhQrE8Fi/M0EgFYMBNy6
         RG6O1xmGu7cgTE+btpGn/ZsLLZUMPVIZK7kn4SwfDP/QBmNPE36NyPcvsZWpumL+WQkq
         sWc42IraLHshVD12HEgN9jenoMgU0CamsE5476n5xIKM/x6dQIajLDap598f/Dden+16
         GADa+TbUdkWc3ATN3xI/vo0wMqUJ9MrpaXGNxuZUqjE42e0/4iSajG9gTmORuiBHewx3
         WIdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801139; x=1721405939;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=wnR0lQfCiZrZB2pYI/iZQqNx4LzjeoRWt1LANtUWrVY=;
        b=aue5wtDYOyTNt77KCBkHq5RHqfX8LbNbLmy/hj3fEXVXYXwA87eN/T0VmT/3R4B6Ja
         xm/TP8ehAIv+KEH3RHizo+JbVDGqYAT4B+HXsDfc/5Og2t35PhJAMLNCuLXPNG0jHJAn
         cLe6NHsfSY68YgC3eUmyBv9cAKJNZg8NAs+3R4JKHOPR/K8bHpGpz+kzv0XNPlmKwgHl
         YdacDnEWUm15sBox96ndPrAminkpUfMyK/aintwGmuEMmG8TGcXyUCG+bHTsODwVDqhc
         4GyeChQhsBxzyBYXNJEJO1cTdBeP2fIjZyJ8Bp3ThpRkb1Yc1PFrjOmPCD+tm3p4DEvA
         u9Vg==
X-Gm-Message-State: AOJu0YzsLYrZVzbkETfomQ+DT3KKKvWo5eeFcSHH1po1s3cO3q9ORGMs
	X8nn0VRUDLO5NR0A6z2EYnBv1sZbkV30Zlx6vygzRcsK283GWWuUmtLy2C2o
X-Google-Smtp-Source: AGHT+IElo5yBxcnuOD1tObFjCmJxahwTzdOmlQV86IIWtIO8gilmED3rdM9dA0bKJmDVSjjZmP5iXg==
X-Received: by 2002:a50:d518:0:b0:585:437c:d7fc with SMTP id 4fb4d7f45d1cf-594bc7c7e61mr7402934a12.32.1720801138545;
        Fri, 12 Jul 2024 09:18:58 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v10 2/5] xen/riscv: introduce decode_cause() stuff
Date: Fri, 12 Jul 2024 18:18:51 +0200
Message-ID: <335b0b49720b3524b6c89c5ce62d3377a4bb1fb8.1720799487.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799487.git.oleksii.kurochko@gmail.com>
References: <cover.1720799487.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The patch introduces stuff needed to decode a reason of an
exception.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V10:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V9:
 - This patch was reverted as breaks both release and randconfig builds.
   I don't see the failures now. ( probably it was because of printk usage
   which was not ready at that moment ).
 - drop inclusion of <asm/csr.h> and <asm/early_printk.h>
 - add <asm/riscv_encoding.h> for CAUSE_* in decode_trap_cause().
---
Changes in V8:
  - fix typo in return string from decode_reserved_interrupt_cause
  - add Acked-by: Alistair Francis <alistair.francis@wdc.com>
---
Changes in V7:
 - Nothing changed. Only rebase.
---
Changes in V6:
 - Remove usage of LINK_TO_LOAD() due to the MMU being enabled first.
 - Change early_printk() to printk()
---
Changes in V5:
  - Remove <xen/error.h> from riscv/traps/c as nothing would require
    inclusion.
  - decode_reserved_interrupt_cause(), decode_interrupt_cause(), decode_cause, do_unexpected_trap()
    were made as static they are expected to be used only in traps.c
  - use LINK_TO_LOAD() for addresses which can be linker time relative.
---
Changes in V4:
  - fix string in decode_reserved_interrupt_cause()
---
Changes in V3:
  - Nothing changed
---
Changes in V2:
  - Make decode_trap_cause() more optimization friendly.
  - Merge the pathc which introduces do_unexpected_trap() to the current one.
---
 xen/arch/riscv/traps.c | 80 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 79 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 5415cf8d90..37cec40dfa 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -9,13 +9,91 @@
 #include <xen/sched.h>
 
 #include <asm/processor.h>
+#include <asm/riscv_encoding.h>
 #include <asm/traps.h>
 
-void do_trap(struct cpu_user_regs *cpu_regs)
+static const char *decode_trap_cause(unsigned long cause)
+{
+    static const char *const trap_causes[] = {
+        [CAUSE_MISALIGNED_FETCH] = "Instruction Address Misaligned",
+        [CAUSE_FETCH_ACCESS] = "Instruction Access Fault",
+        [CAUSE_ILLEGAL_INSTRUCTION] = "Illegal Instruction",
+        [CAUSE_BREAKPOINT] = "Breakpoint",
+        [CAUSE_MISALIGNED_LOAD] = "Load Address Misaligned",
+        [CAUSE_LOAD_ACCESS] = "Load Access Fault",
+        [CAUSE_MISALIGNED_STORE] = "Store/AMO Address Misaligned",
+        [CAUSE_STORE_ACCESS] = "Store/AMO Access Fault",
+        [CAUSE_USER_ECALL] = "Environment Call from U-Mode",
+        [CAUSE_SUPERVISOR_ECALL] = "Environment Call from S-Mode",
+        [CAUSE_MACHINE_ECALL] = "Environment Call from M-Mode",
+        [CAUSE_FETCH_PAGE_FAULT] = "Instruction Page Fault",
+        [CAUSE_LOAD_PAGE_FAULT] = "Load Page Fault",
+        [CAUSE_STORE_PAGE_FAULT] = "Store/AMO Page Fault",
+        [CAUSE_FETCH_GUEST_PAGE_FAULT] = "Instruction Guest Page Fault",
+        [CAUSE_LOAD_GUEST_PAGE_FAULT] = "Load Guest Page Fault",
+        [CAUSE_VIRTUAL_INST_FAULT] = "Virtualized Instruction Fault",
+        [CAUSE_STORE_GUEST_PAGE_FAULT] = "Guest Store/AMO Page Fault",
+    };
+
+    if ( cause < ARRAY_SIZE(trap_causes) && trap_causes[cause] )
+        return trap_causes[cause];
+    return "UNKNOWN";
+}
+
+static const char *decode_reserved_interrupt_cause(unsigned long irq_cause)
+{
+    switch ( irq_cause )
+    {
+    case IRQ_M_SOFT:
+        return "M-mode Software Interrupt";
+    case IRQ_M_TIMER:
+        return "M-mode Timer Interrupt";
+    case IRQ_M_EXT:
+        return "M-mode External Interrupt";
+    default:
+        return "UNKNOWN IRQ type";
+    }
+}
+
+static const char *decode_interrupt_cause(unsigned long cause)
+{
+    unsigned long irq_cause = cause & ~CAUSE_IRQ_FLAG;
+
+    switch ( irq_cause )
+    {
+    case IRQ_S_SOFT:
+        return "Supervisor Software Interrupt";
+    case IRQ_S_TIMER:
+        return "Supervisor Timer Interrupt";
+    case IRQ_S_EXT:
+        return "Supervisor External Interrupt";
+    default:
+        return decode_reserved_interrupt_cause(irq_cause);
+    }
+}
+
+static const char *decode_cause(unsigned long cause)
+{
+    if ( cause & CAUSE_IRQ_FLAG )
+        return decode_interrupt_cause(cause);
+
+    return decode_trap_cause(cause);
+}
+
+static void do_unexpected_trap(const struct cpu_user_regs *regs)
 {
+    unsigned long cause = csr_read(CSR_SCAUSE);
+
+    printk("Unhandled exception: %s\n", decode_cause(cause));
+
     die();
 }
 
+void do_trap(struct cpu_user_regs *cpu_regs)
+{
+    do_unexpected_trap(cpu_regs);
+}
+
 void vcpu_show_execution_state(struct vcpu *v)
 {
     BUG_ON("unimplemented");
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:19:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758150.1167510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSIzA-0005AG-IZ; Fri, 12 Jul 2024 16:19:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758150.1167510; Fri, 12 Jul 2024 16:19:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSIzA-00059M-E5; Fri, 12 Jul 2024 16:19:04 +0000
Received: by outflank-mailman (input) for mailman id 758150;
 Fri, 12 Jul 2024 16:19: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSIz9-00040X-Cw
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:19:03 +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 735fa3bc-406a-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 18:19:01 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-57cf8880f95so2742624a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:19:01 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bb9604f7sm4669169a12.15.2024.07.12.09.19.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09: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: 735fa3bc-406a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801141; x=1721405941; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tzcJTvhB72zFgLJxMtKt5ug3KrGpNPrgBrt3gVVkNwk=;
        b=UhqBj/IRC72ZvK1Ztt8doi9NeFNUeYS98PlZ8Hf6Poo+QZ9ctfk83AGU8J+8Gn88uV
         0+rqfjnI9gqKwL+wlqCTUR/dn0laMLBNuoqAHRbIENBK4X5aTBB/zWti6TBN19CGEckt
         igyaHVTkvuGN3QFfPo6Y7x2PBBAyuCL0U6uGoUD1tRQfxJKkY66RloD1PTUg0dh0e1ap
         sUcnesfWoGYiVZQUpq02f24bnYMP9dl6pJPJi5+FGeMw4c7T6Ow34kVqU1Po75QhxadN
         Baph5uH1bVQjThqjci7R/LRG+05+IRuk+oXu/GpgivtGZlG5e+YK5McyJS0HCmZDCwUV
         sYug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801141; x=1721405941;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=tzcJTvhB72zFgLJxMtKt5ug3KrGpNPrgBrt3gVVkNwk=;
        b=o/vS0Tvnrz0sBeTEgy8XoyoOSYcyfq0OEDqPW/umqZvxODqUEG3+sr7mAYgu6yBL94
         5PTLHkkOoSBWjjUFxPLpX9hipGAEnAxY3RvVJcLF0MpHsxJG4623qVe6BrG/cODTzYL3
         gFXcOy4dNH7fXgrZjtUP3qyy49IHTL6GQB85m5sktoeLwtGgBJ7ol9l1rcBPuWzzpXlC
         ZFFl2ab7VrfzJKXugj8eFQ4OsJEANDGfvolTCj4VjXXnWoxRMrJZPYp7s9vg27gBDkB+
         6OrHOiVx3SEoOXREWLaeGQRljTVlbLwIColc5X3C8vZnNl991T0fVBZGBUtC9bb64Xus
         QmiA==
X-Gm-Message-State: AOJu0YzLd9uF/d6iYZlLVyEOw6t6aG+yqU4n5wiIVFoTOwhd8/ahT/Ux
	E3NstFmXRL1uZOiRFADXgRRpo6vymTdrz2kwOva7O2Yl7sikA42TT2btmMWc
X-Google-Smtp-Source: AGHT+IGPk9Dj8IhkgQmwNMU228dzBkvUapztG9fYL4a5yBBNhHL8kZxeHuVtgxzxK5Q9AvEqbtZSlA==
X-Received: by 2002:a05:6402:33d5:b0:57d:3ea:3862 with SMTP id 4fb4d7f45d1cf-594bc7c9133mr7535849a12.27.1720801141130;
        Fri, 12 Jul 2024 09:19:01 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v10 5/5] xen/riscv: test basic exception handling stuff
Date: Fri, 12 Jul 2024 18:18:54 +0200
Message-ID: <17ee34d97af4bebc87facf8576cee519ca26bf12.1720799487.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799487.git.oleksii.kurochko@gmail.com>
References: <cover.1720799487.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
---
Changes in V10:
 - wrap test_macros_from_bug_h() under "#ifdef CONFIG_SELF_TESTS"
 - update the commit title to: "xen/riscv: test basic exception handling stuff"
---
Changes in V9:
  - s/early_printk/printk as common code is now available
---
Changes in V8:
  - Nothing changed. Only rebase.
---
Changes in V6:
  - Nothing changed. Only rebase.
---
Changes in V6:
  - Nothing changed
---
Changes in V5:
  - Nothing changed
---
Changes in V4:
  - Add Acked-by: Alistair Francis <alistair.francis@wdc.com>
---
Changes in V3:
  - Nothing changed
---
Changes in V2:
  - Nothing changed
---
 xen/arch/riscv/setup.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index a6a29a1508..4defad68f4 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -19,6 +19,22 @@ void arch_get_xen_caps(xen_capabilities_info_t *info)
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
     __aligned(STACK_SIZE);
 
+#ifdef CONFIG_SELF_TESTS
+static void test_run_in_exception(const struct cpu_user_regs *regs)
+{
+    printk("If you see this message, ");
+    printk("run_in_exception_handler is most likely working\n");
+}
+
+static void test_macros_from_bug_h(void)
+{
+    run_in_exception_handler(test_run_in_exception);
+    WARN();
+    printk("If you see this message, ");
+    printk("WARN is most likely working\n");
+}
+#endif
+
 void __init noreturn start_xen(unsigned long bootcpu_id,
                                paddr_t dtb_addr)
 {
@@ -26,6 +42,10 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     trap_init();
 
+#ifdef CONFIG_SELF_TESTS
+    test_macros_from_bug_h();
+#endif
+
     printk("All set up\n");
 
     for ( ;; )
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:23:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:23:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758166.1167520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ31-00088u-0r; Fri, 12 Jul 2024 16:23:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758166.1167520; Fri, 12 Jul 2024 16:23:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ30-00088n-UE; Fri, 12 Jul 2024 16:23:02 +0000
Received: by outflank-mailman (input) for mailman id 758166;
 Fri, 12 Jul 2024 16:23: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSJ30-00088h-0I
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:23:02 +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 01e37137-406b-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 18:23:01 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a77c1658c68so272711966b.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:23:01 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ffa13sm358464966b.129.2024.07.12.09.22.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09:22: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: 01e37137-406b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801380; x=1721406180; 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=tpa/qShR+c9qyCzvxWIj3A6Xe/V4aj3zsajaq2WCFJg=;
        b=SZNIc93Axs5yB9FZAhcai8C6qp0tVNBkRv55/Fp7KqLF/vkz+ZX55Dq2aLk/ne+3Ro
         MUscH5xu2jUqwYRr5z0F9OtDQREMfxKXe1v4p0EQM8RSsEWgzUtSWpOwCfOspKnKfql5
         Mm5wXBEBNDRDJijRMd93mVJpUJ/fIn8GAJfJ+F4XCQI1Y/9pgzLx71cQETO0i2LD4KhQ
         S/9oyatwHs2KvQluiVs1sC63ea5uFztydHFHXRsFMQkSwzVZEBBRcCn1cFDZ4am7OZDe
         6DdYxhLVggTOe1nDJ1blJfyaGhznnQoN7cxlEQdGzuYShk9YSUblbIjP1228jngLd1mu
         B9eA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801380; x=1721406180;
        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=tpa/qShR+c9qyCzvxWIj3A6Xe/V4aj3zsajaq2WCFJg=;
        b=s+wVsNMBOuHvVwH0VNk9dhoQjML++zWFP+56MhAFS79E30loLjkPm7BB2GcGKA+zLZ
         jVPIwPugIiGrXg7KSnY09uj9TbO9pawPIDoDQc23D/Bwou10ptV1cz9LMswnuzRU0zsM
         fDiUkGL5WzN+C+1Pk+noiO674TfNTToFK6HHkUAA+8CdETysYCKoB4bcXdzY2P8D19f1
         HeQOa9FpAQqm4DYdWLnADOMeLSypYmzsB0pB11wUQDdB7PihcGMFKClVS8hz1N7qfZud
         HFibve0iJjbmquaXKm1WhJjk3mkDbChw/f+ivo//aC2sEOvuo85i/uSdVyYvUfUDNL2R
         TJxg==
X-Gm-Message-State: AOJu0YwHcDB39sbK9jdzm2E0E4HvnfL1EsS5BtnvB80aZ+GJGn0vN917
	KdcNtXN9GChq0N1cJ0BXK/wBJBOPE0jRgqLi51i5qy4kqUZ+dd3PjX98HGLm
X-Google-Smtp-Source: AGHT+IG5sOysiWLiMTFti3JiCRmpUpDWOWJdzXjIMu58SmBACH30UnffWhCWDh4U/n+H1g1/QW7fAg==
X-Received: by 2002:a17:906:a89a:b0:a77:eb34:3b50 with SMTP id a640c23a62f3a-a780b6b1da2mr700394266b.20.1720801379883;
        Fri, 12 Jul 2024 09:22:59 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v2 0/8] RISCV device tree mapping
Date: Fri, 12 Jul 2024 18:22:49 +0200
Message-ID: <cover.1720799925.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Current patch series introduces device tree mapping for RISC-V
and necessary things for that such as:
- Fixmap mapping
- pmap
- Xen page table processing

Also, it introduces common stuff for working with fdt which is
based on the patches from [1]:
  [PATCH v4 2/6] xen/device-tree: Move Arm's setup.c bootinfo functions to common
  [PATCH v4 3/6] xen/common: Move Arm's bootfdt.c
All changes which were done on top of Shawn's patches please find in "Changes" section
of each patch.

Also there is another one depenency:
RISCV basic exception handling implementation [2]

[1] https://lore.kernel.org/xen-devel/cover.1712893887.git.sanastasio@raptorengineering.com/
[2] https://lore.kernel.org/xen-devel/cover.1720799487.git.oleksii.kurochko@gmail.com/T/#t

---
Changes in v2:
 - Update the cover letter message
 - introduce fixmap mapping
 - introduce pmap
 - introduce CONFIG_GENREIC_PT
 - update use early_fdt_map() after MMU is enabled.
---

Oleksii Kurochko (6):
  xen/riscv: enable CONFIG_HAS_DEVICE_TREE
  xen/riscv: setup fixmap mapping
  xen/riscv: introduce asm/pmap.h header
  xen/riscv: introduce generic Xen page table handling
  xen/riscv: select CONFIG_GENREIC_PT
  xen/riscv: introduce early_fdt_map()

Shawn Anastasio (2):
  xen/device-tree: Move Arm's setup.c bootinfo functions to common
  xen/common: Move Arm's bootfdt.c to common

 MAINTAINERS                            |   2 +
 xen/arch/arm/Makefile                  |   1 -
 xen/arch/arm/bootfdt.c                 | 622 ------------------------
 xen/arch/arm/include/asm/setup.h       | 200 +-------
 xen/arch/arm/setup.c                   | 432 -----------------
 xen/arch/riscv/Kconfig                 |   3 +
 xen/arch/riscv/include/asm/config.h    |   9 +
 xen/arch/riscv/include/asm/fixmap.h    |  48 ++
 xen/arch/riscv/include/asm/mm.h        |  13 +
 xen/arch/riscv/include/asm/page-bits.h |  45 ++
 xen/arch/riscv/include/asm/page.h      |  82 +++-
 xen/arch/riscv/include/asm/pmap.h      |  28 ++
 xen/arch/riscv/mm.c                    | 167 ++++++-
 xen/arch/riscv/setup.c                 |  11 +
 xen/arch/riscv/xen.lds.S               |   2 +-
 xen/common/Kconfig                     |   5 +
 xen/common/Makefile                    |   2 +
 xen/common/device-tree/Makefile        |   2 +
 xen/common/device-tree/bootfdt.c       | 635 +++++++++++++++++++++++++
 xen/common/device-tree/bootinfo.c      | 459 ++++++++++++++++++
 xen/common/mmu/pt.c                    | 441 +++++++++++++++++
 xen/include/xen/bootfdt.h              | 210 ++++++++
 xen/include/xen/mm.h                   |  24 +
 23 files changed, 2181 insertions(+), 1262 deletions(-)
 delete mode 100644 xen/arch/arm/bootfdt.c
 create mode 100644 xen/arch/riscv/include/asm/fixmap.h
 create mode 100644 xen/arch/riscv/include/asm/pmap.h
 create mode 100644 xen/common/device-tree/Makefile
 create mode 100644 xen/common/device-tree/bootfdt.c
 create mode 100644 xen/common/device-tree/bootinfo.c
 create mode 100644 xen/common/mmu/pt.c
 create mode 100644 xen/include/xen/bootfdt.h

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:23:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:23:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758167.1167531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ34-0008Oc-CI; Fri, 12 Jul 2024 16:23:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758167.1167531; Fri, 12 Jul 2024 16:23: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 1sSJ34-0008OT-9L; Fri, 12 Jul 2024 16:23:06 +0000
Received: by outflank-mailman (input) for mailman id 758167;
 Fri, 12 Jul 2024 16:23: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSJ32-00088h-Cy
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:23:04 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 039eb315-406b-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 18:23:03 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-58e76294858so5788059a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:23:03 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ffa13sm358464966b.129.2024.07.12.09.23.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09:23: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: 039eb315-406b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801383; x=1721406183; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TnWjYyIvUBOeZ1M9DFU0V7+lftXtERWxQqc4qL6rYCU=;
        b=CVrGV8bMwAvPQi2G5uXb39nUKLgz44LqVBbcMo3fqcVbpgB95QLrJVofiZFvvAUdEa
         41/blJ9/C//AOoc/yzODW79rim7X4QuqxvAKKSDoonLEX7Px5UrPZkRooWQNzi9+6vjC
         B1vwt1Ou0USGBmlBfSaHWAeyOZ7hFEvznpAhIRE/Kvm1zAiJKx2K+lmYc6JpOVzXA72A
         5Rz2nikQE2Um+11+ZIsQwqk3k9e8mJAytaJlL2MqwXrxbWvwEEmrtggkdykvvBlSRMeC
         gqIfrjr/vDU4Swvb8QbGmiHiCmu9CFs2FcTOw1Ukiv2yqnu5P+ZaPmxb/B+dYH/LT4gJ
         kP1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801383; x=1721406183;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=TnWjYyIvUBOeZ1M9DFU0V7+lftXtERWxQqc4qL6rYCU=;
        b=uBu+2yjgJZO8Mdu215g2vVoxSaNB3F1tWweyTxr2djFDHdMiplU2qEZ/+drNo1velG
         WH6XymmDR9ynidiPxb1FxgLNB+8wEPJptdxUKwyKQfluiRR/daWD2LbgCdfqF1Sr+A1B
         ZP+hiXZVU8iPZzqahpc6K3EuP7yCcBpTfqXdVpNPEgWhqyE3+5ndomSG+o4MlDZ2JPXW
         lFYxMwBpwEAfPJ34QMYiJ0+vRSrnD+vY4dsIQuPqu0PzS6ccKrZkpKB+fP2AsSwaBVQH
         i3xVp4xU1P1sDyzzHVjLywJV5c8w5iTN3aBQykm1Z3EheHQxa3TO7EEU27QKSVcj/NTr
         /F1g==
X-Gm-Message-State: AOJu0YwmcgIoUSY6MQkZ3QFRYSBiFlgFGLZgQoBMmiCs5JwtgjX042lj
	S0eBD/inT4V5FQk+1RcU86fDUEsu52HjPBYVs3pigCEk6gEwcjcFVhni+9+b
X-Google-Smtp-Source: AGHT+IE0kjPz3B1JnqqoQP73cX/d8V9PnjlBGf4m8OGvRnvFM8hbQ9VOCvTyJ1yHT8fJ568hmk0F7w==
X-Received: by 2002:a17:906:3387:b0:a75:1923:eb2e with SMTP id a640c23a62f3a-a799cc54286mr216953566b.14.1720801382949;
        Fri, 12 Jul 2024 09:23:02 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 3/8] xen/riscv: enable CONFIG_HAS_DEVICE_TREE
Date: Fri, 12 Jul 2024 18:22:52 +0200
Message-ID: <5229417cbee0aace3b9dccdac8c0157b4facf948.1720799926.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799925.git.oleksii.kurochko@gmail.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V2:
 - move 'select HAS_DEVICE_TREE' to CONFIG_RISCV.
---
Changes in V1:
 - new patch
---
 xen/arch/riscv/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index f531e96657..259eea8d3b 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 HAS_DEVICE_TREE
 
 config RISCV_64
 	def_bool y
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:23:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:23:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758168.1167535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ34-0008Qq-MF; Fri, 12 Jul 2024 16:23:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758168.1167535; Fri, 12 Jul 2024 16:23: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 1sSJ34-0008QX-II; Fri, 12 Jul 2024 16:23:06 +0000
Received: by outflank-mailman (input) for mailman id 758168;
 Fri, 12 Jul 2024 16:23: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSJ33-0008O1-In
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:23:05 +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 02c02a3d-406b-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 18:23:02 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a7527afa23cso296780366b.2
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:23:02 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ffa13sm358464966b.129.2024.07.12.09.23.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09:23: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: 02c02a3d-406b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801382; x=1721406182; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Jz9mvJ19/duQo0/vLwQsG8KULIvcxSAetdEy9VGRIak=;
        b=SB6lf5k2QUE8rObM1CZNLEF657VZTWANvMKmmreCFZTSiB9RzD6QDawrUSMltQsqeR
         sEtD8YlznpEc1uoDb6Bb2HWh5uDQdZ4KMeKo4IcyJcesvlCYfOuHzK6vPxl3Qqp0Fa1c
         Av73TFQCCQ189XdQUuWurnxNgmefUKvIAB79ufx7bDaY6FxppIbKTT+McYNFrSpVTw9z
         m2q1giQd7DiUdbRN+Us1qZl8l5mRV5Y3vqI+Nx1fKpWiVFJMbKd/1PoOOJ/RQv4zAM+F
         ucLeQbsO+1WjBnLGdVGjiAUskBNpi+BhZ3JePvcDiNdClY5dq2h/fWHzdf0bt0hv0DR0
         Twfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801382; x=1721406182;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Jz9mvJ19/duQo0/vLwQsG8KULIvcxSAetdEy9VGRIak=;
        b=mrpjBcF6sp1S8LSyiu8czifoJnG5NegfOFLnmYk30p4e+WFvN+ynzkPyci3pV+rYt+
         /WRN6dWPEwZiD/C8ru/hMRkkbpPdYcQ+TzH658vRu15NnWyPiwUkeXiPQ4hXtK91D1D0
         iA1VdfU1XZPCREOHhjaZVmrlpm5Il78ytNvyD5LfKQItfp8LGgf99rYHtY41GouPDEke
         7enq/OLj+zSXpFdBlCw01vgejtGQrFb72+/luCHjHs0zDJWuooWmxHLa1+D4VF0F95da
         0dzsYFipCggSRsM3Cq2RgBgo7+U4hqjSZAsKyQB42a826gJ/FbIwSC8b6dwITp46wcix
         fZ5g==
X-Gm-Message-State: AOJu0YzQRcY1elyqa8lqXSJ6q9mXZgF/BS6CUl0CU/j+QdZU1KXk7QWs
	6IqIFqfTGQfJJEKMoCcRGcuFyE9mbSkDKzst//gRVuWsLGpU2ZfnH1yYF6BU
X-Google-Smtp-Source: AGHT+IFIKC9CL/qqe2y+HW8eRpUkTyH3QW6asY7UMDz6TS9wUBMJokPyAsBZh/zpobtutZiuAxyY3A==
X-Received: by 2002:a17:906:b2d7:b0:a72:4676:4f8 with SMTP id a640c23a62f3a-a780b882742mr872445666b.62.1720801381118;
        Fri, 12 Jul 2024 09:23:01 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Shawn Anastasio <sanastasio@raptorengineering.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>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v6 1/8] xen/device-tree: Move Arm's setup.c bootinfo functions to common
Date: Fri, 12 Jul 2024 18:22:50 +0200
Message-ID: <cb2348393294b8910d794d9d11fff28ff0e6996b.1720799926.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799925.git.oleksii.kurochko@gmail.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Shawn Anastasio <sanastasio@raptorengineering.com>

Arm's setup.c contains a collection of functions for parsing memory map
and other boot information from a device tree. Since these routines are
generally useful on any architecture that supports device tree booting,
move them into xen/common/device-tree.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - update the version of the patch to v6, to show that it is based
   on the work done by Shawn in the patch v4. 
---
Changes in V5:
 - add xen/include/xen/bootfdt.h to MAINTAINERS file.
 - drop message "Early device tree parsing and".
 - After rebase on top of the current staging the following changes were done:
   - init bootinfo variable in <common/device-tree/bootinfo.c> with BOOTINFO_INIT;
   - update the code of dt_unreserved_regions():
       CONFIG_STATIC_SHM related changes and getting of reserved_mem
       bootinfo_get_shmem() ??
   - update the code of meminfo_overlap_check():
       add check ( INVALID_PADDR == bank_start ) to if case.
   - update the code of check_reserved_regions_overlap():
       CONFIG_STATIC_SHM related changes.
   - struct bootinfo was updated ( CONFIG_STATIC_SHM changes )
   - add shared_meminfo ( because of CONFIG_STATIC_SHM )
   - struct struct membanks was update with __struct group so <xen/kernel> is
     neeeded to be included in bootfdt.h
   - move BOOTINFO_ACPI_INIT, BOOTINFO_SHMEM_INIT, BOOTINFO_INIT to generic bootfdt.h
   - bootinfo_get_reserved_mem(), bootinfo_get_mem(), bootinfo_get_acpi(),
     bootinfo_get_shmem() and bootinfo_get_shmem_extra() were moved to xen/bootfdt.h
 - s/arm32/CONFIG_SEPARATE_XENHEAP/
 - add inclusion of <xen/macros.h> because there are function in <xen/bootfdt.h> which
   are using container_of().
 ---
Changes in v4:
  - create new xen/include/bootinfo.h rather than relying on arch's
    asm/setup.h to provide required definitions for bootinfo.c
  - build bootinfo.c as .init.o
  - clean up and sort bootinfo.c's #includes
  - use CONFIG_SEPARATE_XENHEAP rather than CONFIG_ARM_32 to guard
    xenheap-specific behavior of populate_boot_allocator
  - (MAINTAINERS) include all of common/device-tree rather than just
    bootinfo.c
---
 MAINTAINERS                       |   2 +
 xen/arch/arm/include/asm/setup.h  | 187 +-----------
 xen/arch/arm/setup.c              | 432 ----------------------------
 xen/common/Makefile               |   1 +
 xen/common/device-tree/Makefile   |   1 +
 xen/common/device-tree/bootinfo.c | 459 ++++++++++++++++++++++++++++++
 xen/include/xen/bootfdt.h         | 196 +++++++++++++
 7 files changed, 660 insertions(+), 618 deletions(-)
 create mode 100644 xen/common/device-tree/Makefile
 create mode 100644 xen/common/device-tree/bootinfo.c
 create mode 100644 xen/include/xen/bootfdt.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 2b0c894527..505915b6b6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -295,9 +295,11 @@ M:	Stefano Stabellini <sstabellini@kernel.org>
 M:	Julien Grall <julien@xen.org>
 S:	Supported
 F:	xen/common/libfdt/
+F:	xen/common/device-tree/
 F:	xen/common/device_tree.c
 F:	xen/common/dt-overlay.c
 F:	xen/include/xen/libfdt/
+F:	xen/include/xen/bootfdt.h
 F:	xen/include/xen/device_tree.h
 F:	xen/drivers/passthrough/device_tree.c
 
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index c34179da93..051e796716 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -3,159 +3,9 @@
 
 #include <public/version.h>
 #include <asm/p2m.h>
+#include <xen/bootfdt.h>
 #include <xen/device_tree.h>
 
-#define MIN_FDT_ALIGN 8
-#define MAX_FDT_SIZE SZ_2M
-
-#define NR_MEM_BANKS 256
-#define NR_SHMEM_BANKS 32
-
-#define MAX_MODULES 32 /* Current maximum useful modules */
-
-typedef enum {
-    BOOTMOD_XEN,
-    BOOTMOD_FDT,
-    BOOTMOD_KERNEL,
-    BOOTMOD_RAMDISK,
-    BOOTMOD_XSM,
-    BOOTMOD_GUEST_DTB,
-    BOOTMOD_UNKNOWN
-}  bootmodule_kind;
-
-enum membank_type {
-    /*
-     * The MEMBANK_DEFAULT type refers to either reserved memory for the
-     * device/firmware (when the bank is in 'reserved_mem') or any RAM (when
-     * the bank is in 'mem').
-     */
-    MEMBANK_DEFAULT,
-    /*
-     * The MEMBANK_STATIC_DOMAIN type is used to indicate whether the memory
-     * bank is bound to a static Xen domain. It is only valid when the bank
-     * is in reserved_mem.
-     */
-    MEMBANK_STATIC_DOMAIN,
-    /*
-     * The MEMBANK_STATIC_HEAP type is used to indicate whether the memory
-     * bank is reserved as static heap. It is only valid when the bank is
-     * in reserved_mem.
-     */
-    MEMBANK_STATIC_HEAP,
-    /*
-     * The MEMBANK_FDT_RESVMEM type is used to indicate whether the memory
-     * bank is from the FDT reserve map.
-     */
-    MEMBANK_FDT_RESVMEM,
-};
-
-/* Indicates the maximum number of characters(\0 included) for shm_id */
-#define MAX_SHM_ID_LENGTH 16
-
-struct shmem_membank_extra {
-    char shm_id[MAX_SHM_ID_LENGTH];
-    unsigned int nr_shm_borrowers;
-};
-
-struct membank {
-    paddr_t start;
-    paddr_t size;
-    union {
-        enum membank_type type;
-#ifdef CONFIG_STATIC_SHM
-        struct shmem_membank_extra *shmem_extra;
-#endif
-    };
-};
-
-struct membanks {
-    __struct_group(membanks_hdr, common, ,
-        unsigned int nr_banks;
-        unsigned int max_banks;
-    );
-    struct membank bank[];
-};
-
-struct meminfo {
-    struct membanks_hdr common;
-    struct membank bank[NR_MEM_BANKS];
-};
-
-struct shared_meminfo {
-    struct membanks_hdr common;
-    struct membank bank[NR_SHMEM_BANKS];
-    struct shmem_membank_extra extra[NR_SHMEM_BANKS];
-};
-
-/*
- * The domU flag is set for kernels and ramdisks of "xen,domain" nodes.
- * The purpose of the domU flag is to avoid getting confused in
- * kernel_probe, where we try to guess which is the dom0 kernel and
- * initrd to be compatible with all versions of the multiboot spec. 
- */
-#define BOOTMOD_MAX_CMDLINE 1024
-struct bootmodule {
-    bootmodule_kind kind;
-    bool domU;
-    paddr_t start;
-    paddr_t size;
-};
-
-/* DT_MAX_NAME is the node name max length according the DT spec */
-#define DT_MAX_NAME 41
-struct bootcmdline {
-    bootmodule_kind kind;
-    bool domU;
-    paddr_t start;
-    char dt_name[DT_MAX_NAME];
-    char cmdline[BOOTMOD_MAX_CMDLINE];
-};
-
-struct bootmodules {
-    int nr_mods;
-    struct bootmodule module[MAX_MODULES];
-};
-
-struct bootcmdlines {
-    unsigned int nr_mods;
-    struct bootcmdline cmdline[MAX_MODULES];
-};
-
-struct bootinfo {
-    struct meminfo mem;
-    /* The reserved regions are only used when booting using Device-Tree */
-    struct meminfo reserved_mem;
-    struct bootmodules modules;
-    struct bootcmdlines cmdlines;
-#ifdef CONFIG_ACPI
-    struct meminfo acpi;
-#endif
-#ifdef CONFIG_STATIC_SHM
-    struct shared_meminfo shmem;
-#endif
-    bool static_heap;
-};
-
-#ifdef CONFIG_ACPI
-#define BOOTINFO_ACPI_INIT .acpi.common.max_banks = NR_MEM_BANKS,
-#else
-#define BOOTINFO_ACPI_INIT
-#endif
-
-#ifdef CONFIG_STATIC_SHM
-#define BOOTINFO_SHMEM_INIT .shmem.common.max_banks = NR_SHMEM_BANKS,
-#else
-#define BOOTINFO_SHMEM_INIT
-#endif
-
-#define BOOTINFO_INIT                               \
-{                                                   \
-    .mem.common.max_banks = NR_MEM_BANKS,           \
-    .reserved_mem.common.max_banks = NR_MEM_BANKS,  \
-    BOOTINFO_ACPI_INIT                              \
-    BOOTINFO_SHMEM_INIT                             \
-}
-
 struct map_range_data
 {
     struct domain *d;
@@ -167,39 +17,8 @@ struct map_range_data
     struct rangeset *irq_ranges;
 };
 
-extern struct bootinfo bootinfo;
-
 extern domid_t max_init_domid;
 
-static inline struct membanks *bootinfo_get_mem(void)
-{
-    return container_of(&bootinfo.mem.common, struct membanks, common);
-}
-
-static inline struct membanks *bootinfo_get_reserved_mem(void)
-{
-    return container_of(&bootinfo.reserved_mem.common, struct membanks, common);
-}
-
-#ifdef CONFIG_ACPI
-static inline struct membanks *bootinfo_get_acpi(void)
-{
-    return container_of(&bootinfo.acpi.common, struct membanks, common);
-}
-#endif
-
-#ifdef CONFIG_STATIC_SHM
-static inline struct membanks *bootinfo_get_shmem(void)
-{
-    return container_of(&bootinfo.shmem.common, struct membanks, common);
-}
-
-static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void)
-{
-    return bootinfo.shmem.extra;
-}
-#endif
-
 void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
 
 size_t estimate_efi_size(unsigned int mem_nr_banks);
@@ -220,9 +39,6 @@ void fw_unreserved_regions(paddr_t s, paddr_t e,
                            void (*cb)(paddr_t ps, paddr_t pe),
                            unsigned int first);
 
-size_t boot_fdt_info(const void *fdt, paddr_t paddr);
-const char *boot_fdt_cmdline(const void *fdt);
-
 bool check_reserved_regions_overlap(paddr_t region_start, paddr_t region_size);
 
 struct bootmodule *add_boot_module(bootmodule_kind kind,
@@ -237,7 +53,6 @@ struct bootcmdline * boot_cmdline_find_by_name(const char *name);
 const char *boot_module_kind_as_string(bootmodule_kind kind);
 
 void init_pdx(void);
-void populate_boot_allocator(void);
 void setup_mm(void);
 
 extern uint32_t hyp_traps_vector[];
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 0c2fdaceaf..cb2c0a16b8 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -48,8 +48,6 @@
 #include <xsm/xsm.h>
 #include <asm/acpi.h>
 
-struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
-
 /*
  * Sanitized version of cpuinfo containing only features available on all
  * cores (only on arm64 as there is no sanitization support on arm32).
@@ -203,321 +201,6 @@ static void __init processor_id(void)
     processor_setup();
 }
 
-static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
-                                         void (*cb)(paddr_t ps, paddr_t pe),
-                                         unsigned int first)
-{
-    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
-#ifdef CONFIG_STATIC_SHM
-    const struct membanks *shmem = bootinfo_get_shmem();
-    unsigned int offset;
-#endif
-    unsigned int i;
-
-    /*
-     * i is the current bootmodule we are evaluating across all possible
-     * kinds.
-     */
-    for ( i = first; i < reserved_mem->nr_banks; i++ )
-    {
-        paddr_t r_s = reserved_mem->bank[i].start;
-        paddr_t r_e = r_s + reserved_mem->bank[i].size;
-
-        if ( s < r_e && r_s < e )
-        {
-            dt_unreserved_regions(r_e, e, cb, i + 1);
-            dt_unreserved_regions(s, r_s, cb, i + 1);
-            return;
-        }
-    }
-
-#ifdef CONFIG_STATIC_SHM
-    /*
-     * When retrieving the corresponding shared memory addresses
-     * below, we need to index the shmem->bank starting from 0, hence
-     * we need to use i - reserved_mem->nr_banks.
-    */
-    offset = reserved_mem->nr_banks;
-    for ( ; i - offset < shmem->nr_banks; i++ )
-    {
-        paddr_t r_s, r_e;
-
-        r_s = shmem->bank[i - offset].start;
-
-        /* Shared memory banks can contain INVALID_PADDR as start */
-        if ( INVALID_PADDR == r_s )
-            continue;
-
-        r_e = r_s + shmem->bank[i - offset].size;
-
-        if ( s < r_e && r_s < e )
-        {
-            dt_unreserved_regions(r_e, e, cb, i + 1);
-            dt_unreserved_regions(s, r_s, cb, i + 1);
-            return;
-        }
-    }
-#endif
-
-    cb(s, e);
-}
-
-/*
- * TODO: '*_end' could be 0 if the bank/region is at the end of the physical
- * address space. This is for now not handled as it requires more rework.
- */
-static bool __init meminfo_overlap_check(const struct membanks *mem,
-                                         paddr_t region_start,
-                                         paddr_t region_size)
-{
-    paddr_t bank_start = INVALID_PADDR, bank_end = 0;
-    paddr_t region_end = region_start + region_size;
-    unsigned int i, bank_num = mem->nr_banks;
-
-    for ( i = 0; i < bank_num; i++ )
-    {
-        bank_start = mem->bank[i].start;
-        bank_end = bank_start + mem->bank[i].size;
-
-        if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
-             region_start >= bank_end )
-            continue;
-        else
-        {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
-                   region_start, region_end, i, bank_start, bank_end);
-            return true;
-        }
-    }
-
-    return false;
-}
-
-/*
- * TODO: '*_end' could be 0 if the module/region is at the end of the physical
- * address space. This is for now not handled as it requires more rework.
- */
-static bool __init bootmodules_overlap_check(struct bootmodules *bootmodules,
-                                             paddr_t region_start,
-                                             paddr_t region_size)
-{
-    paddr_t mod_start = INVALID_PADDR, mod_end = 0;
-    paddr_t region_end = region_start + region_size;
-    unsigned int i, mod_num = bootmodules->nr_mods;
-
-    for ( i = 0; i < mod_num; i++ )
-    {
-        mod_start = bootmodules->module[i].start;
-        mod_end = mod_start + bootmodules->module[i].size;
-
-        if ( region_end <= mod_start || region_start >= mod_end )
-            continue;
-        else
-        {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with mod[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
-                   region_start, region_end, i, mod_start, mod_end);
-            return true;
-        }
-    }
-
-    return false;
-}
-
-void __init fw_unreserved_regions(paddr_t s, paddr_t e,
-                                  void (*cb)(paddr_t ps, paddr_t pe),
-                                  unsigned int first)
-{
-    if ( acpi_disabled )
-        dt_unreserved_regions(s, e, cb, first);
-    else
-        cb(s, e);
-}
-
-/*
- * Given an input physical address range, check if this range is overlapping
- * with the existing reserved memory regions defined in bootinfo.
- * Return true if the input physical address range is overlapping with any
- * existing reserved memory regions, otherwise false.
- */
-bool __init check_reserved_regions_overlap(paddr_t region_start,
-                                           paddr_t region_size)
-{
-    const struct membanks *mem_banks[] = {
-        bootinfo_get_reserved_mem(),
-#ifdef CONFIG_ACPI
-        bootinfo_get_acpi(),
-#endif
-#ifdef CONFIG_STATIC_SHM
-        bootinfo_get_shmem(),
-#endif
-    };
-    unsigned int i;
-
-    /*
-     * Check if input region is overlapping with reserved memory banks or
-     * ACPI EfiACPIReclaimMemory (when ACPI feature is enabled) or static
-     * shared memory banks (when static shared memory feature is enabled)
-     */
-    for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
-        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size) )
-            return true;
-
-    /* Check if input region is overlapping with bootmodules */
-    if ( bootmodules_overlap_check(&bootinfo.modules,
-                                   region_start, region_size) )
-        return true;
-
-    return false;
-}
-
-struct bootmodule __init *add_boot_module(bootmodule_kind kind,
-                                          paddr_t start, paddr_t size,
-                                          bool domU)
-{
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootmodule *mod;
-    unsigned int i;
-
-    if ( mods->nr_mods == MAX_MODULES )
-    {
-        printk("Ignoring %s boot module at %"PRIpaddr"-%"PRIpaddr" (too many)\n",
-               boot_module_kind_as_string(kind), start, start + size);
-        return NULL;
-    }
-
-    if ( check_reserved_regions_overlap(start, size) )
-        return NULL;
-
-    for ( i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->module[i];
-        if ( mod->kind == kind && mod->start == start )
-        {
-            if ( !domU )
-                mod->domU = false;
-            return mod;
-        }
-    }
-
-    mod = &mods->module[mods->nr_mods++];
-    mod->kind = kind;
-    mod->start = start;
-    mod->size = size;
-    mod->domU = domU;
-
-    return mod;
-}
-
-/*
- * boot_module_find_by_kind can only be used to return Xen modules (e.g
- * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
- * modules.
- */
-struct bootmodule * __init boot_module_find_by_kind(bootmodule_kind kind)
-{
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootmodule *mod;
-    int i;
-    for (i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->module[i];
-        if ( mod->kind == kind && !mod->domU )
-            return mod;
-    }
-    return NULL;
-}
-
-void __init add_boot_cmdline(const char *name, const char *cmdline,
-                             bootmodule_kind kind, paddr_t start, bool domU)
-{
-    struct bootcmdlines *cmds = &bootinfo.cmdlines;
-    struct bootcmdline *cmd;
-
-    if ( cmds->nr_mods == MAX_MODULES )
-    {
-        printk("Ignoring %s cmdline (too many)\n", name);
-        return;
-    }
-
-    cmd = &cmds->cmdline[cmds->nr_mods++];
-    cmd->kind = kind;
-    cmd->domU = domU;
-    cmd->start = start;
-
-    ASSERT(strlen(name) <= DT_MAX_NAME);
-    safe_strcpy(cmd->dt_name, name);
-
-    if ( strlen(cmdline) > BOOTMOD_MAX_CMDLINE )
-        panic("module %s command line too long\n", name);
-    safe_strcpy(cmd->cmdline, cmdline);
-}
-
-/*
- * boot_cmdline_find_by_kind can only be used to return Xen modules (e.g
- * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
- * modules.
- */
-struct bootcmdline * __init boot_cmdline_find_by_kind(bootmodule_kind kind)
-{
-    struct bootcmdlines *cmds = &bootinfo.cmdlines;
-    struct bootcmdline *cmd;
-    int i;
-
-    for ( i = 0 ; i < cmds->nr_mods ; i++ )
-    {
-        cmd = &cmds->cmdline[i];
-        if ( cmd->kind == kind && !cmd->domU )
-            return cmd;
-    }
-    return NULL;
-}
-
-struct bootcmdline * __init boot_cmdline_find_by_name(const char *name)
-{
-    struct bootcmdlines *mods = &bootinfo.cmdlines;
-    struct bootcmdline *mod;
-    unsigned int i;
-
-    for (i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->cmdline[i];
-        if ( strcmp(mod->dt_name, name) == 0 )
-            return mod;
-    }
-    return NULL;
-}
-
-struct bootmodule * __init boot_module_find_by_addr_and_kind(bootmodule_kind kind,
-                                                             paddr_t start)
-{
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootmodule *mod;
-    unsigned int i;
-
-    for (i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->module[i];
-        if ( mod->kind == kind && mod->start == start )
-            return mod;
-    }
-    return NULL;
-}
-
-const char * __init boot_module_kind_as_string(bootmodule_kind kind)
-{
-    switch ( kind )
-    {
-    case BOOTMOD_XEN:     return "Xen";
-    case BOOTMOD_FDT:     return "Device Tree";
-    case BOOTMOD_KERNEL:  return "Kernel";
-    case BOOTMOD_RAMDISK: return "Ramdisk";
-    case BOOTMOD_XSM:     return "XSM";
-    case BOOTMOD_GUEST_DTB:     return "DTB";
-    case BOOTMOD_UNKNOWN: return "Unknown";
-    default: BUG();
-    }
-}
-
 void __init discard_initial_modules(void)
 {
     struct bootmodules *mi = &bootinfo.modules;
@@ -556,40 +239,6 @@ static void * __init relocate_fdt(paddr_t dtb_paddr, size_t dtb_size)
     return fdt;
 }
 
-/*
- * Return the end of the non-module region starting at s. In other
- * words return s the start of the next modules after s.
- *
- * On input *end is the end of the region which should be considered
- * and it is updated to reflect the end of the module, clipped to the
- * end of the region if it would run over.
- */
-static paddr_t __init next_module(paddr_t s, paddr_t *end)
-{
-    struct bootmodules *mi = &bootinfo.modules;
-    paddr_t lowest = ~(paddr_t)0;
-    int i;
-
-    for ( i = 0; i < mi->nr_mods; i++ )
-    {
-        paddr_t mod_s = mi->module[i].start;
-        paddr_t mod_e = mod_s + mi->module[i].size;
-
-        if ( !mi->module[i].size )
-            continue;
-
-        if ( mod_s < s )
-            continue;
-        if ( mod_s > lowest )
-            continue;
-        if ( mod_s > *end )
-            continue;
-        lowest = mod_s;
-        *end = min(*end, mod_e);
-    }
-    return lowest;
-}
-
 void __init init_pdx(void)
 {
     const struct membanks *mem = bootinfo_get_mem();
@@ -635,87 +284,6 @@ void __init init_pdx(void)
     }
 }
 
-/*
- * Populate the boot allocator.
- * If a static heap was not provided by the admin, all the RAM but the
- * following regions will be added:
- *  - Modules (e.g., Xen, Kernel)
- *  - Reserved regions
- *  - Xenheap (arm32 only)
- * If a static heap was provided by the admin, populate the boot
- * allocator with the corresponding regions only, but with Xenheap excluded
- * on arm32.
- */
-void __init populate_boot_allocator(void)
-{
-    unsigned int i;
-    const struct membanks *banks = bootinfo_get_mem();
-    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
-    paddr_t s, e;
-
-    if ( bootinfo.static_heap )
-    {
-        for ( i = 0 ; i < reserved_mem->nr_banks; i++ )
-        {
-            if ( reserved_mem->bank[i].type != MEMBANK_STATIC_HEAP )
-                continue;
-
-            s = reserved_mem->bank[i].start;
-            e = s + reserved_mem->bank[i].size;
-#ifdef CONFIG_ARM_32
-            /* Avoid the xenheap, note that the xenheap cannot across a bank */
-            if ( s <= mfn_to_maddr(directmap_mfn_start) &&
-                 e >= mfn_to_maddr(directmap_mfn_end) )
-            {
-                init_boot_pages(s, mfn_to_maddr(directmap_mfn_start));
-                init_boot_pages(mfn_to_maddr(directmap_mfn_end), e);
-            }
-            else
-#endif
-                init_boot_pages(s, e);
-        }
-
-        return;
-    }
-
-    for ( i = 0; i < banks->nr_banks; i++ )
-    {
-        const struct membank *bank = &banks->bank[i];
-        paddr_t bank_end = bank->start + bank->size;
-
-        s = bank->start;
-        while ( s < bank_end )
-        {
-            paddr_t n = bank_end;
-
-            e = next_module(s, &n);
-
-            if ( e == ~(paddr_t)0 )
-                e = n = bank_end;
-
-            /*
-             * Module in a RAM bank other than the one which we are
-             * not dealing with here.
-             */
-            if ( e > bank_end )
-                e = bank_end;
-
-#ifdef CONFIG_ARM_32
-            /* Avoid the xenheap */
-            if ( s < mfn_to_maddr(directmap_mfn_end) &&
-                 mfn_to_maddr(directmap_mfn_start) < e )
-            {
-                e = mfn_to_maddr(directmap_mfn_start);
-                n = mfn_to_maddr(directmap_mfn_end);
-            }
-#endif
-
-            fw_unreserved_regions(s, e, init_boot_pages, 0);
-            s = n;
-        }
-    }
-}
-
 size_t __read_mostly dcache_line_bytes;
 
 /* C entry point for boot CPU */
diff --git a/xen/common/Makefile b/xen/common/Makefile
index f12a474d40..21359bab02 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -77,6 +77,7 @@ obj-$(CONFIG_UBSAN) += ubsan/
 
 obj-$(CONFIG_NEEDS_LIBELF) += libelf/
 obj-$(CONFIG_HAS_DEVICE_TREE) += libfdt/
+obj-$(CONFIG_HAS_DEVICE_TREE) += device-tree/
 
 CONF_FILE := $(if $(patsubst /%,,$(KCONFIG_CONFIG)),$(objtree)/)$(KCONFIG_CONFIG)
 $(obj)/config.gz: $(CONF_FILE)
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
new file mode 100644
index 0000000000..947bad979c
--- /dev/null
+++ b/xen/common/device-tree/Makefile
@@ -0,0 +1 @@
+obj-y += bootinfo.init.o
diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
new file mode 100644
index 0000000000..dcac9a40a0
--- /dev/null
+++ b/xen/common/device-tree/bootinfo.c
@@ -0,0 +1,459 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Derived from $xen/arch/arm/setup.c.
+ *
+ * bookkeeping routines.
+ *
+ * Tim Deegan <tim@xen.org>
+ * Copyright (c) 2011 Citrix Systems.
+ * Copyright (c) 2024 Raptor Engineering LLC
+ */
+
+#include <xen/acpi.h>
+#include <xen/bootfdt.h>
+#include <xen/bug.h>
+#include <xen/device_tree.h>
+#include <xen/init.h>
+#include <xen/libfdt/libfdt-xen.h>
+#include <xen/mm.h>
+
+struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
+
+const char * __init boot_module_kind_as_string(bootmodule_kind kind)
+{
+    switch ( kind )
+    {
+    case BOOTMOD_XEN:     return "Xen";
+    case BOOTMOD_FDT:     return "Device Tree";
+    case BOOTMOD_KERNEL:  return "Kernel";
+    case BOOTMOD_RAMDISK: return "Ramdisk";
+    case BOOTMOD_XSM:     return "XSM";
+    case BOOTMOD_GUEST_DTB:     return "DTB";
+    case BOOTMOD_UNKNOWN: return "Unknown";
+    default: BUG();
+    }
+}
+
+static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
+                                         void (*cb)(paddr_t ps, paddr_t pe),
+                                         unsigned int first)
+{
+    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+#ifdef CONFIG_STATIC_SHM
+    const struct membanks *shmem = bootinfo_get_shmem();
+    unsigned int offset;
+#endif
+    unsigned int i;
+
+    /*
+     * i is the current bootmodule we are evaluating across all possible
+     * kinds.
+     */
+    for ( i = first; i < reserved_mem->nr_banks; i++ )
+    {
+        paddr_t r_s = reserved_mem->bank[i].start;
+        paddr_t r_e = r_s + reserved_mem->bank[i].size;
+
+        if ( s < r_e && r_s < e )
+        {
+            dt_unreserved_regions(r_e, e, cb, i + 1);
+            dt_unreserved_regions(s, r_s, cb, i + 1);
+            return;
+        }
+    }
+
+#ifdef CONFIG_STATIC_SHM
+    /*
+     * When retrieving the corresponding shared memory addresses
+     * below, we need to index the shmem->bank starting from 0, hence
+     * we need to use i - reserved_mem->nr_banks.
+    */
+    offset = reserved_mem->nr_banks;
+    for ( ; i - offset < shmem->nr_banks; i++ )
+    {
+        paddr_t r_s, r_e;
+
+        r_s = shmem->bank[i - offset].start;
+
+        /* Shared memory banks can contain INVALID_PADDR as start */
+        if ( INVALID_PADDR == r_s )
+            continue;
+
+        r_e = r_s + shmem->bank[i - offset].size;
+
+        if ( s < r_e && r_s < e )
+        {
+            dt_unreserved_regions(r_e, e, cb, i + 1);
+            dt_unreserved_regions(s, r_s, cb, i + 1);
+            return;
+        }
+    }
+#endif
+
+    cb(s, e);
+}
+
+/*
+ * TODO: '*_end' could be 0 if the bank/region is at the end of the physical
+ * address space. This is for now not handled as it requires more rework.
+ */
+static bool __init meminfo_overlap_check(const struct membanks *mem,
+                                         paddr_t region_start,
+                                         paddr_t region_size)
+{
+    paddr_t bank_start = INVALID_PADDR, bank_end = 0;
+    paddr_t region_end = region_start + region_size;
+    unsigned int i, bank_num = mem->nr_banks;
+
+    for ( i = 0; i < bank_num; i++ )
+    {
+        bank_start = mem->bank[i].start;
+        bank_end = bank_start + mem->bank[i].size;
+
+        if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
+             region_start >= bank_end )
+            continue;
+        else
+        {
+            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
+                   region_start, region_end, i, bank_start, bank_end);
+            return true;
+        }
+    }
+
+    return false;
+}
+
+/*
+ * TODO: '*_end' could be 0 if the module/region is at the end of the physical
+ * address space. This is for now not handled as it requires more rework.
+ */
+static bool __init bootmodules_overlap_check(struct bootmodules *bootmodules,
+                                             paddr_t region_start,
+                                             paddr_t region_size)
+{
+    paddr_t mod_start = INVALID_PADDR, mod_end = 0;
+    paddr_t region_end = region_start + region_size;
+    unsigned int i, mod_num = bootmodules->nr_mods;
+
+    for ( i = 0; i < mod_num; i++ )
+    {
+        mod_start = bootmodules->module[i].start;
+        mod_end = mod_start + bootmodules->module[i].size;
+
+        if ( region_end <= mod_start || region_start >= mod_end )
+            continue;
+        else
+        {
+            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with mod[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
+                   region_start, region_end, i, mod_start, mod_end);
+            return true;
+        }
+    }
+
+    return false;
+}
+
+void __init fw_unreserved_regions(paddr_t s, paddr_t e,
+                                  void (*cb)(paddr_t ps, paddr_t pe),
+                                  unsigned int first)
+{
+    if ( acpi_disabled )
+        dt_unreserved_regions(s, e, cb, first);
+    else
+        cb(s, e);
+}
+
+/*
+ * Given an input physical address range, check if this range is overlapping
+ * with the existing reserved memory regions defined in bootinfo.
+ * Return true if the input physical address range is overlapping with any
+ * existing reserved memory regions, otherwise false.
+ */
+bool __init check_reserved_regions_overlap(paddr_t region_start,
+                                           paddr_t region_size)
+{
+    const struct membanks *mem_banks[] = {
+        bootinfo_get_reserved_mem(),
+#ifdef CONFIG_ACPI
+        bootinfo_get_acpi(),
+#endif
+#ifdef CONFIG_STATIC_SHM
+        bootinfo_get_shmem(),
+#endif
+    };
+    unsigned int i;
+
+    /*
+     * Check if input region is overlapping with reserved memory banks or
+     * ACPI EfiACPIReclaimMemory (when ACPI feature is enabled) or static
+     * shared memory banks (when static shared memory feature is enabled)
+     */
+    for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
+        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size) )
+            return true;
+
+    /* Check if input region is overlapping with bootmodules */
+    if ( bootmodules_overlap_check(&bootinfo.modules,
+                                   region_start, region_size) )
+        return true;
+
+    return false;
+}
+
+struct bootmodule __init *add_boot_module(bootmodule_kind kind,
+                                          paddr_t start, paddr_t size,
+                                          bool domU)
+{
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootmodule *mod;
+    unsigned int i;
+
+    if ( mods->nr_mods == MAX_MODULES )
+    {
+        printk("Ignoring %s boot module at %"PRIpaddr"-%"PRIpaddr" (too many)\n",
+               boot_module_kind_as_string(kind), start, start + size);
+        return NULL;
+    }
+
+    if ( check_reserved_regions_overlap(start, size) )
+        return NULL;
+
+    for ( i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->module[i];
+        if ( mod->kind == kind && mod->start == start )
+        {
+            if ( !domU )
+                mod->domU = false;
+            return mod;
+        }
+    }
+
+    mod = &mods->module[mods->nr_mods++];
+    mod->kind = kind;
+    mod->start = start;
+    mod->size = size;
+    mod->domU = domU;
+
+    return mod;
+}
+
+/*
+ * boot_module_find_by_kind can only be used to return Xen modules (e.g
+ * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
+ * modules.
+ */
+struct bootmodule * __init boot_module_find_by_kind(bootmodule_kind kind)
+{
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootmodule *mod;
+    int i;
+    for (i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->module[i];
+        if ( mod->kind == kind && !mod->domU )
+            return mod;
+    }
+    return NULL;
+}
+
+void __init add_boot_cmdline(const char *name, const char *cmdline,
+                             bootmodule_kind kind, paddr_t start, bool domU)
+{
+    struct bootcmdlines *cmds = &bootinfo.cmdlines;
+    struct bootcmdline *cmd;
+
+    if ( cmds->nr_mods == MAX_MODULES )
+    {
+        printk("Ignoring %s cmdline (too many)\n", name);
+        return;
+    }
+
+    cmd = &cmds->cmdline[cmds->nr_mods++];
+    cmd->kind = kind;
+    cmd->domU = domU;
+    cmd->start = start;
+
+    ASSERT(strlen(name) <= DT_MAX_NAME);
+    safe_strcpy(cmd->dt_name, name);
+
+    if ( strlen(cmdline) > BOOTMOD_MAX_CMDLINE )
+        panic("module %s command line too long\n", name);
+    safe_strcpy(cmd->cmdline, cmdline);
+}
+
+/*
+ * boot_cmdline_find_by_kind can only be used to return Xen modules (e.g
+ * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
+ * modules.
+ */
+struct bootcmdline * __init boot_cmdline_find_by_kind(bootmodule_kind kind)
+{
+    struct bootcmdlines *cmds = &bootinfo.cmdlines;
+    struct bootcmdline *cmd;
+    int i;
+
+    for ( i = 0 ; i < cmds->nr_mods ; i++ )
+    {
+        cmd = &cmds->cmdline[i];
+        if ( cmd->kind == kind && !cmd->domU )
+            return cmd;
+    }
+    return NULL;
+}
+
+struct bootcmdline * __init boot_cmdline_find_by_name(const char *name)
+{
+    struct bootcmdlines *mods = &bootinfo.cmdlines;
+    struct bootcmdline *mod;
+    unsigned int i;
+
+    for (i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->cmdline[i];
+        if ( strcmp(mod->dt_name, name) == 0 )
+            return mod;
+    }
+    return NULL;
+}
+
+struct bootmodule * __init boot_module_find_by_addr_and_kind(bootmodule_kind kind,
+                                                             paddr_t start)
+{
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootmodule *mod;
+    unsigned int i;
+
+    for (i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->module[i];
+        if ( mod->kind == kind && mod->start == start )
+            return mod;
+    }
+    return NULL;
+}
+
+/*
+ * Return the end of the non-module region starting at s. In other
+ * words return s the start of the next modules after s.
+ *
+ * On input *end is the end of the region which should be considered
+ * and it is updated to reflect the end of the module, clipped to the
+ * end of the region if it would run over.
+ */
+static paddr_t __init next_module(paddr_t s, paddr_t *end)
+{
+    struct bootmodules *mi = &bootinfo.modules;
+    paddr_t lowest = ~(paddr_t)0;
+    int i;
+
+    for ( i = 0; i < mi->nr_mods; i++ )
+    {
+        paddr_t mod_s = mi->module[i].start;
+        paddr_t mod_e = mod_s + mi->module[i].size;
+
+        if ( !mi->module[i].size )
+            continue;
+
+        if ( mod_s < s )
+            continue;
+        if ( mod_s > lowest )
+            continue;
+        if ( mod_s > *end )
+            continue;
+        lowest = mod_s;
+        *end = min(*end, mod_e);
+    }
+    return lowest;
+}
+
+/*
+ * Populate the boot allocator.
+ * If a static heap was not provided by the admin, all the RAM but the
+ * following regions will be added:
+ *  - Modules (e.g., Xen, Kernel)
+ *  - Reserved regions
+ *  - Xenheap (CONFIG_SEPARATE_XENHEAP only)
+ * If a static heap was provided by the admin, populate the boot
+ * allocator with the corresponding regions only, but with Xenheap excluded
+ * on CONFIG_SEPARATE_XENHEAP.
+ */
+void __init populate_boot_allocator(void)
+{
+    unsigned int i;
+    const struct membanks *banks = bootinfo_get_mem();
+    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+    paddr_t s, e;
+
+    if ( bootinfo.static_heap )
+    {
+        for ( i = 0 ; i < reserved_mem->nr_banks; i++ )
+        {
+            if ( reserved_mem->bank[i].type != MEMBANK_STATIC_HEAP )
+                continue;
+
+            s = reserved_mem->bank[i].start;
+            e = s + reserved_mem->bank[i].size;
+#ifdef CONFIG_SEPARATE_XENHEAP
+            /* Avoid the xenheap, note that the xenheap cannot across a bank */
+            if ( s <= mfn_to_maddr(directmap_mfn_start) &&
+                 e >= mfn_to_maddr(directmap_mfn_end) )
+            {
+                init_boot_pages(s, mfn_to_maddr(directmap_mfn_start));
+                init_boot_pages(mfn_to_maddr(directmap_mfn_end), e);
+            }
+            else
+#endif
+                init_boot_pages(s, e);
+        }
+
+        return;
+    }
+
+    for ( i = 0; i < banks->nr_banks; i++ )
+    {
+        const struct membank *bank = &banks->bank[i];
+        paddr_t bank_end = bank->start + bank->size;
+
+        s = bank->start;
+        while ( s < bank_end )
+        {
+            paddr_t n = bank_end;
+
+            e = next_module(s, &n);
+
+            if ( e == ~(paddr_t)0 )
+                e = n = bank_end;
+
+            /*
+             * Module in a RAM bank other than the one which we are
+             * not dealing with here.
+             */
+            if ( e > bank_end )
+                e = bank_end;
+
+#ifdef CONFIG_SEPARATE_XENHEAP
+            /* Avoid the xenheap */
+            if ( s < mfn_to_maddr(directmap_mfn_end) &&
+                 mfn_to_maddr(directmap_mfn_start) < e )
+            {
+                e = mfn_to_maddr(directmap_mfn_start);
+                n = mfn_to_maddr(directmap_mfn_end);
+            }
+#endif
+
+            fw_unreserved_regions(s, e, init_boot_pages, 0);
+            s = n;
+        }
+    }
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
new file mode 100644
index 0000000000..7cd45b3d4b
--- /dev/null
+++ b/xen/include/xen/bootfdt.h
@@ -0,0 +1,196 @@
+#ifndef __XEN_BOOTFDT_H__
+#define __XEN_BOOTFDT_H__
+
+#include <xen/types.h>
+#include <xen/kernel.h>
+#include <xen/macros.h>
+
+#define MIN_FDT_ALIGN 8
+#define MAX_FDT_SIZE SZ_2M
+
+#define NR_MEM_BANKS 256
+#define NR_SHMEM_BANKS 32
+
+#define MAX_MODULES 32 /* Current maximum useful modules */
+
+typedef enum {
+    BOOTMOD_XEN,
+    BOOTMOD_FDT,
+    BOOTMOD_KERNEL,
+    BOOTMOD_RAMDISK,
+    BOOTMOD_XSM,
+    BOOTMOD_GUEST_DTB,
+    BOOTMOD_UNKNOWN
+}  bootmodule_kind;
+
+enum membank_type {
+    /*
+     * The MEMBANK_DEFAULT type refers to either reserved memory for the
+     * device/firmware (when the bank is in 'reserved_mem') or any RAM (when
+     * the bank is in 'mem').
+     */
+    MEMBANK_DEFAULT,
+    /*
+     * The MEMBANK_STATIC_DOMAIN type is used to indicate whether the memory
+     * bank is bound to a static Xen domain. It is only valid when the bank
+     * is in reserved_mem.
+     */
+    MEMBANK_STATIC_DOMAIN,
+    /*
+     * The MEMBANK_STATIC_HEAP type is used to indicate whether the memory
+     * bank is reserved as static heap. It is only valid when the bank is
+     * in reserved_mem.
+     */
+    MEMBANK_STATIC_HEAP,
+    /*
+     * The MEMBANK_FDT_RESVMEM type is used to indicate whether the memory
+     * bank is from the FDT reserve map.
+     */
+    MEMBANK_FDT_RESVMEM,
+};
+
+/* Indicates the maximum number of characters(\0 included) for shm_id */
+#define MAX_SHM_ID_LENGTH 16
+
+struct shmem_membank_extra {
+    char shm_id[MAX_SHM_ID_LENGTH];
+    unsigned int nr_shm_borrowers;
+};
+
+struct membank {
+    paddr_t start;
+    paddr_t size;
+    union {
+        enum membank_type type;
+#ifdef CONFIG_STATIC_SHM
+        struct shmem_membank_extra *shmem_extra;
+#endif
+    };
+};
+
+struct membanks {
+    __struct_group(membanks_hdr, common, ,
+        unsigned int nr_banks;
+        unsigned int max_banks;
+    );
+    struct membank bank[];
+};
+
+struct meminfo {
+    struct membanks_hdr common;
+    struct membank bank[NR_MEM_BANKS];
+};
+
+struct shared_meminfo {
+    struct membanks_hdr common;
+    struct membank bank[NR_SHMEM_BANKS];
+    struct shmem_membank_extra extra[NR_SHMEM_BANKS];
+};
+
+/*
+ * The domU flag is set for kernels and ramdisks of "xen,domain" nodes.
+ * The purpose of the domU flag is to avoid getting confused in
+ * kernel_probe, where we try to guess which is the dom0 kernel and
+ * initrd to be compatible with all versions of the multiboot spec.
+ */
+#define BOOTMOD_MAX_CMDLINE 1024
+struct bootmodule {
+    bootmodule_kind kind;
+    bool domU;
+    paddr_t start;
+    paddr_t size;
+};
+
+/* DT_MAX_NAME is the node name max length according the DT spec */
+#define DT_MAX_NAME 41
+struct bootcmdline {
+    bootmodule_kind kind;
+    bool domU;
+    paddr_t start;
+    char dt_name[DT_MAX_NAME];
+    char cmdline[BOOTMOD_MAX_CMDLINE];
+};
+
+struct bootmodules {
+    int nr_mods;
+    struct bootmodule module[MAX_MODULES];
+};
+
+struct bootcmdlines {
+    unsigned int nr_mods;
+    struct bootcmdline cmdline[MAX_MODULES];
+};
+
+struct bootinfo {
+    struct meminfo mem;
+    /* The reserved regions are only used when booting using Device-Tree */
+    struct meminfo reserved_mem;
+    struct bootmodules modules;
+    struct bootcmdlines cmdlines;
+#ifdef CONFIG_ACPI
+    struct meminfo acpi;
+#endif
+#ifdef CONFIG_STATIC_SHM
+    struct shared_meminfo shmem;
+#endif
+    bool static_heap;
+};
+
+#ifdef CONFIG_ACPI
+#define BOOTINFO_ACPI_INIT .acpi.common.max_banks = NR_MEM_BANKS,
+#else
+#define BOOTINFO_ACPI_INIT
+#endif
+
+#ifdef CONFIG_STATIC_SHM
+#define BOOTINFO_SHMEM_INIT .shmem.common.max_banks = NR_SHMEM_BANKS,
+#else
+#define BOOTINFO_SHMEM_INIT
+#endif
+
+#define BOOTINFO_INIT                               \
+{                                                   \
+    .mem.common.max_banks = NR_MEM_BANKS,           \
+    .reserved_mem.common.max_banks = NR_MEM_BANKS,  \
+    BOOTINFO_ACPI_INIT                              \
+    BOOTINFO_SHMEM_INIT                             \
+}
+
+extern struct bootinfo bootinfo;
+
+void populate_boot_allocator(void);
+
+size_t boot_fdt_info(const void *fdt, paddr_t paddr);
+
+const char *boot_fdt_cmdline(const void *fdt);
+
+static inline struct membanks *bootinfo_get_reserved_mem(void)
+{
+    return container_of(&bootinfo.reserved_mem.common, struct membanks, common);
+}
+
+static inline struct membanks *bootinfo_get_mem(void)
+{
+    return container_of(&bootinfo.mem.common, struct membanks, common);
+}
+
+#ifdef CONFIG_ACPI
+static inline struct membanks *bootinfo_get_acpi(void)
+{
+    return container_of(&bootinfo.acpi.common, struct membanks, common);
+}
+#endif
+
+#ifdef CONFIG_STATIC_SHM
+static inline struct membanks *bootinfo_get_shmem(void)
+{
+    return container_of(&bootinfo.shmem.common, struct membanks, common);
+}
+
+static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void)
+{
+    return bootinfo.shmem.extra;
+}
+#endif
+
+#endif /* __XEN_BOOTFDT_H__ */
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:23:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758169.1167551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ36-0000TK-7E; Fri, 12 Jul 2024 16:23:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758169.1167551; Fri, 12 Jul 2024 16: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 1sSJ36-0000Sd-2v; Fri, 12 Jul 2024 16:23:08 +0000
Received: by outflank-mailman (input) for mailman id 758169;
 Fri, 12 Jul 2024 16: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSJ34-00088h-Cn
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:23:06 +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 04a90504-406b-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 18:23:05 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a77c4309fc8so324178766b.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:23:05 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ffa13sm358464966b.129.2024.07.12.09.23.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09:23: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: 04a90504-406b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801385; x=1721406185; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bg0oBapFdQirltpvyBrsFHo+q+G6ZrURZn0a9gYnXDs=;
        b=MqnMPen49Z3G8uoByQrVlKwd4cozIjdTAIP1Ydar3lqbImjrDVxjPYlDnFmg9QsgtO
         +5RNjv56erHLXbNe8Ni1TDu+qFtc04YA+Rtn5SQWsMqNftSEUxyh2mh5100AuYibdYDw
         873JQmpADqDpuy4IDK5tFekl8Jwlt6nED8WLYAmR1INqCD1ucVAj9oLDuYt2yzWlvb8B
         Jxazbmmx/XRk4HW/BmTMmiapnunPmEwWLL3ncOMXDInp9g1bAq9d1yFYNrrTslGAVBe3
         N/a3lpj5GmtFh09Go+uDVx47/KABgGagW11L71sWhf+h1srGDmiX+ln21WQxKRdRYgta
         HUIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801385; x=1721406185;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Bg0oBapFdQirltpvyBrsFHo+q+G6ZrURZn0a9gYnXDs=;
        b=foBAK4Is+zfGpfBEoeOgNKas/P1/CqlIRCB7k4c9OnqnLC89mrCjot86WX6OX1zQaP
         iKsfU+fP2BHDS6WQSpmZ/+pBuusha8fVL2/ZFCNiwPh3awqLVPsxe2qxMMuzV4N9YKCQ
         +Ox9c0NmKzS+mb74G7cHAr2fbPSn5ujRqq06h1mMlwNWAVZ4szgbTJZSqvq6AI+9Ix8k
         utt5WEWaiiasDrevQcIsb0aB3udcBNw3cM2QEPnCqyvx7mdECJYUncR2yiL2qNpmOmfq
         u6UbFAZucyifnp3iYFUiWojfJzVPS3eq/VYL6iFdRnzXbxx7+WPkfk9915OuF6G9ok0a
         R8Ew==
X-Gm-Message-State: AOJu0YyuKKzVwCZ9cs7lk9/MNwPKZKQK3SUsm+q8fWUMzL7hTY4BDlx4
	RIenXMwqvoUG+M3dnmfkAPoYYY6acwUwIFsCOIK40qZz7xBXcqDtl1rCf3hM
X-Google-Smtp-Source: AGHT+IE3yEHvZhM9zyREcD1rAhp1stu3IBi5eHZWIAhH+gJluVx9/VRBhJiGToUSVSwUgAK4KZl/Ug==
X-Received: by 2002:a17:906:50c:b0:a77:c6c4:2bb7 with SMTP id a640c23a62f3a-a780b68a8c6mr829041066b.1.1720801384926;
        Fri, 12 Jul 2024 09:23:04 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
Date: Fri, 12 Jul 2024 18:22:54 +0200
Message-ID: <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799925.git.oleksii.kurochko@gmail.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduces arch_pmap_{un}map functions and select HAS_PMAP
for CONFIG_RISCV.

Additionaly it was necessary to introduce functions:
 - mfn_to_xen_entry
 - mfn_to_pte

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V2:
 - newly introduced patch
---
 xen/arch/riscv/Kconfig            |  1 +
 xen/arch/riscv/include/asm/page.h |  2 ++
 xen/arch/riscv/include/asm/pmap.h | 28 ++++++++++++++++++++++++++++
 xen/arch/riscv/mm.c               | 14 ++++++++++++++
 4 files changed, 45 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/pmap.h

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 259eea8d3b..0112aa8778 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -3,6 +3,7 @@ config RISCV
 	select FUNCTION_ALIGNMENT_16B
 	select GENERIC_BUG_FRAME
 	select HAS_DEVICE_TREE
+	select HAS_PMAP
 
 config RISCV_64
 	def_bool y
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index cbbf3656d1..339074d502 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -51,6 +51,8 @@ typedef struct {
 #endif
 } pte_t;
 
+pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr);
+
 static inline pte_t paddr_to_pte(paddr_t paddr,
                                  unsigned int permissions)
 {
diff --git a/xen/arch/riscv/include/asm/pmap.h b/xen/arch/riscv/include/asm/pmap.h
new file mode 100644
index 0000000000..eb4c48515c
--- /dev/null
+++ b/xen/arch/riscv/include/asm/pmap.h
@@ -0,0 +1,28 @@
+#ifndef __ASM_PMAP_H__
+#define __ASM_PMAP_H__
+
+#include <xen/bug.h>
+#include <xen/mm.h>
+
+#include <asm/fixmap.h>
+
+static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
+{
+    pte_t *entry = &xen_fixmap[slot];
+    pte_t pte;
+
+    ASSERT(!pte_is_valid(*entry));
+
+    pte = mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
+    pte.pte |= PTE_LEAF_DEFAULT;
+    write_pte(entry, pte);
+}
+
+static inline void arch_pmap_unmap(unsigned int slot)
+{
+    pte_t pte = {};
+
+    write_pte(&xen_fixmap[slot], pte);
+}
+
+#endif /* __ASM_PMAP_H__ */
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index d69a174b5d..445319af08 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -370,3 +370,17 @@ int map_pages_to_xen(unsigned long virt,
     BUG_ON("unimplemented");
     return -1;
 }
+
+static inline pte_t mfn_to_pte(mfn_t mfn)
+{
+    unsigned long pte = mfn_x(mfn) << PTE_PPN_SHIFT;
+    return (pte_t){ .pte = pte};
+}
+
+inline pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr)
+{
+    /* there is no attr field in RISC-V's pte */
+    (void) attr;
+
+    return mfn_to_pte(mfn);
+}
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:23:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758170.1167556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ36-0000WW-HM; Fri, 12 Jul 2024 16:23:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758170.1167556; Fri, 12 Jul 2024 16: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 1sSJ36-0000VD-D7; Fri, 12 Jul 2024 16:23:08 +0000
Received: by outflank-mailman (input) for mailman id 758170;
 Fri, 12 Jul 2024 16: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSJ34-0008O1-I6
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:23:06 +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 03524846-406b-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 18:23:03 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a77baa87743so274947066b.3
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:23:03 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ffa13sm358464966b.129.2024.07.12.09.23.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09:23: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: 03524846-406b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801383; x=1721406183; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aBWfF4HgClCmMdSzzSp6JzjlK6spJYi2/DrXSNRL2qI=;
        b=PLnugfRJ8lLcGQT9FDq8n0KSurpsTeU5bcWMH+5GLBBfS6M4IEFPOqhPSin8coPvEx
         5wZDTiClnEQrIWtiV4CblJwCuv2wnRedyb91jFUeX5/7BpZN3niBjdwsw3sUdx/4giwb
         wzNJUrwGRwuNk1WCdTR8L+k+ZrcQSbMjGGHJfXtOXEuQPRvzkV0gjWRTrA+mwoMJdAQo
         gwTfhRkE5l9pmg/jMivabNiZJr28EgJDwiqxosxAUGmJetKphia4IwUE26MFeScwVS1c
         OtAKr2EqSLoqonPeLDSe5Q2P5mTDFhXAe2mxjF4RQwCy4hNQhE7S1cTFlVOKSWYlFj0l
         +vxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801383; x=1721406183;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=aBWfF4HgClCmMdSzzSp6JzjlK6spJYi2/DrXSNRL2qI=;
        b=fqY6yrwuZ3pooujujb3W44oMSmrd5oH0lFhQ4iz/CYoC1BxxHUw5D/sg5lUzhNHqKB
         SgI/VAf5FycCY3nTJfVAEe6SnClnm7gNU2MbD03A2XT7hFTgHqyjVEK8LnkG320R32mZ
         zK6IkJHYDn7f5uIlY0Ae2KKAWDybB1B4gTqkMfyqElYz2EhrTfRoI+UYMIKOA68OIWcv
         Qwgbgf59T9cbsnu1w5eStV9ln50Jn6v1eUngvZdxKKHgu4cy9RtG4S2yOUuFfMoPBqmZ
         UauPdxisC256d6LiXj+ZjfmL7/qq4SKSRJ+zu0YzBGFzmqSqtRA1g0glBIrnJipuZo1x
         GsJg==
X-Gm-Message-State: AOJu0YxWb/2vgIMehVFrsGbHbO6rppNRE++jsL1FGXavvt6iU8LCIdJi
	OPK+Zqu7b7JJeTJaBEwnrbR1q5b2XjBS6n52hnZXWO9VGjzcnzNU3hz+TzBp
X-Google-Smtp-Source: AGHT+IHzOWGv8MArFW0bPaxh/PLxsiiYzKHSvyKWGV5Kg5A9bRe7m8oHdiOUMM3HHm02fctV7XQX0w==
X-Received: by 2002:a17:906:d29b:b0:a77:c330:ad9d with SMTP id a640c23a62f3a-a780b8826cdmr881082066b.61.1720801382139;
        Fri, 12 Jul 2024 09:23:02 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Shawn Anastasio <sanastasio@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>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v6 2/8] xen/common: Move Arm's bootfdt.c to common
Date: Fri, 12 Jul 2024 18:22:51 +0200
Message-ID: <5ed04a1613d97523d91c3e2857a0f8d4d6b2166f.1720799926.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799925.git.oleksii.kurochko@gmail.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Shawn Anastasio <sanastasio@raptorengineering.com>

Move Arm's bootfdt.c to xen/common so that it can be used by other
device tree architectures like PPC and RISCV.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
Acked-by: Julien Grall <julien@xen.org>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - update the version of the patch to v6, to show that it is based
   on the work done by Shawn in the patch v4. 
---
Changes in v5:
 - add guard #ifdef CONFIG_STATIC_SHM around inclusion of <asm/static-shmem.h>
   in common/device-tree/bootfdt.c.
 - add stub for process_shm_node() in case CONFIG_STATIC_SHM isn't enabled.
 - add guard around #ifdef CONFIG_STATIC_SHM aroud early_print_info_shmem() in
   early_print_info().
---
Changes in v4:
  - move function prototypes to patch 2's xen/include/bootfdt.h
  - clean up #includes
---
 xen/arch/arm/Makefile            |   1 -
 xen/arch/arm/bootfdt.c           | 622 ------------------------------
 xen/arch/arm/include/asm/setup.h |  13 -
 xen/common/device-tree/Makefile  |   1 +
 xen/common/device-tree/bootfdt.c | 635 +++++++++++++++++++++++++++++++
 xen/include/xen/bootfdt.h        |  14 +
 6 files changed, 650 insertions(+), 636 deletions(-)
 delete mode 100644 xen/arch/arm/bootfdt.c
 create mode 100644 xen/common/device-tree/bootfdt.c

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 45dc29ea53..da9c979dc4 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -10,7 +10,6 @@ obj-$(CONFIG_TEE) += tee/
 obj-$(CONFIG_HAS_VPCI) += vpci.o
 
 obj-$(CONFIG_HAS_ALTERNATIVE) += alternative.o
-obj-y += bootfdt.init.o
 obj-y += cpuerrata.o
 obj-y += cpufeature.o
 obj-y += decode.o
diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
deleted file mode 100644
index 6e060111d9..0000000000
--- a/xen/arch/arm/bootfdt.c
+++ /dev/null
@@ -1,622 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Early Device Tree
- *
- * Copyright (C) 2012-2014 Citrix Systems, Inc.
- */
-#include <xen/types.h>
-#include <xen/lib.h>
-#include <xen/kernel.h>
-#include <xen/init.h>
-#include <xen/efi.h>
-#include <xen/device_tree.h>
-#include <xen/lib.h>
-#include <xen/libfdt/libfdt-xen.h>
-#include <xen/sort.h>
-#include <xsm/xsm.h>
-#include <asm/setup.h>
-#include <asm/static-shmem.h>
-
-static void __init __maybe_unused build_assertions(void)
-{
-    /*
-     * Check that no padding is between struct membanks "bank" flexible array
-     * member and struct meminfo "bank" member
-     */
-    BUILD_BUG_ON((offsetof(struct membanks, bank) !=
-                 offsetof(struct meminfo, bank)));
-    /* Ensure "struct membanks" is 8-byte aligned */
-    BUILD_BUG_ON(alignof(struct membanks) != 8);
-}
-
-static bool __init device_tree_node_is_available(const void *fdt, int node)
-{
-    const char *status;
-    int len;
-
-    status = fdt_getprop(fdt, node, "status", &len);
-    if ( !status )
-        return true;
-
-    if ( len > 0 )
-    {
-        if ( !strcmp(status, "ok") || !strcmp(status, "okay") )
-            return true;
-    }
-
-    return false;
-}
-
-static bool __init device_tree_node_matches(const void *fdt, int node,
-                                            const char *match)
-{
-    const char *name;
-    size_t match_len;
-
-    name = fdt_get_name(fdt, node, NULL);
-    match_len = strlen(match);
-
-    /* Match both "match" and "match@..." patterns but not
-       "match-foo". */
-    return strncmp(name, match, match_len) == 0
-        && (name[match_len] == '@' || name[match_len] == '\0');
-}
-
-static bool __init device_tree_node_compatible(const void *fdt, int node,
-                                               const char *match)
-{
-    int len, l;
-    const void *prop;
-
-    prop = fdt_getprop(fdt, node, "compatible", &len);
-    if ( prop == NULL )
-        return false;
-
-    while ( len > 0 ) {
-        if ( !dt_compat_cmp(prop, match) )
-            return true;
-        l = strlen(prop) + 1;
-        prop += l;
-        len -= l;
-    }
-
-    return false;
-}
-
-void __init device_tree_get_reg(const __be32 **cell, uint32_t address_cells,
-                                uint32_t size_cells, paddr_t *start,
-                                paddr_t *size)
-{
-    uint64_t dt_start, dt_size;
-
-    /*
-     * dt_next_cell will return uint64_t whereas paddr_t may not be 64-bit.
-     * Thus, there is an implicit cast from uint64_t to paddr_t.
-     */
-    dt_start = dt_next_cell(address_cells, cell);
-    dt_size = dt_next_cell(size_cells, cell);
-
-    if ( dt_start != (paddr_t)dt_start )
-    {
-        printk("Physical address greater than max width supported\n");
-        WARN();
-    }
-
-    if ( dt_size != (paddr_t)dt_size )
-    {
-        printk("Physical size greater than max width supported\n");
-        WARN();
-    }
-
-    /*
-     * Xen will truncate the address/size if it is greater than the maximum
-     * supported width and it will give an appropriate warning.
-     */
-    *start = dt_start;
-    *size = dt_size;
-}
-
-static int __init device_tree_get_meminfo(const void *fdt, int node,
-                                          const char *prop_name,
-                                          u32 address_cells, u32 size_cells,
-                                          struct membanks *mem,
-                                          enum membank_type type)
-{
-    const struct fdt_property *prop;
-    unsigned int i, banks;
-    const __be32 *cell;
-    u32 reg_cells = address_cells + size_cells;
-    paddr_t start, size;
-
-    if ( !device_tree_node_is_available(fdt, node) )
-        return 0;
-
-    if ( address_cells < 1 || size_cells < 1 )
-    {
-        printk("fdt: property `%s': invalid #address-cells or #size-cells",
-               prop_name);
-        return -EINVAL;
-    }
-
-    prop = fdt_get_property(fdt, node, prop_name, NULL);
-    if ( !prop )
-        return -ENOENT;
-
-    cell = (const __be32 *)prop->data;
-    banks = fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32));
-
-    for ( i = 0; i < banks && mem->nr_banks < mem->max_banks; i++ )
-    {
-        device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
-        if ( mem == bootinfo_get_reserved_mem() &&
-             check_reserved_regions_overlap(start, size) )
-            return -EINVAL;
-        /* Some DT may describe empty bank, ignore them */
-        if ( !size )
-            continue;
-        mem->bank[mem->nr_banks].start = start;
-        mem->bank[mem->nr_banks].size = size;
-        mem->bank[mem->nr_banks].type = type;
-        mem->nr_banks++;
-    }
-
-    if ( i < banks )
-    {
-        printk("Warning: Max number of supported memory regions reached.\n");
-        return -ENOSPC;
-    }
-
-    return 0;
-}
-
-u32 __init device_tree_get_u32(const void *fdt, int node,
-                               const char *prop_name, u32 dflt)
-{
-    const struct fdt_property *prop;
-
-    prop = fdt_get_property(fdt, node, prop_name, NULL);
-    if ( !prop || prop->len < sizeof(u32) )
-        return dflt;
-
-    return fdt32_to_cpu(*(uint32_t*)prop->data);
-}
-
-/**
- * device_tree_for_each_node - iterate over all device tree sub-nodes
- * @fdt: flat device tree.
- * @node: parent node to start the search from
- * @func: function to call for each sub-node.
- * @data: data to pass to @func.
- *
- * Any nodes nested at DEVICE_TREE_MAX_DEPTH or deeper are ignored.
- *
- * Returns 0 if all nodes were iterated over successfully.  If @func
- * returns a value different from 0, that value is returned immediately.
- */
-int __init device_tree_for_each_node(const void *fdt, int node,
-                                     device_tree_node_func func,
-                                     void *data)
-{
-    /*
-     * We only care about relative depth increments, assume depth of
-     * node is 0 for simplicity.
-     */
-    int depth = 0;
-    const int first_node = node;
-    u32 address_cells[DEVICE_TREE_MAX_DEPTH];
-    u32 size_cells[DEVICE_TREE_MAX_DEPTH];
-    int ret;
-
-    do {
-        const char *name = fdt_get_name(fdt, node, NULL);
-        u32 as, ss;
-
-        if ( depth >= DEVICE_TREE_MAX_DEPTH )
-        {
-            printk("Warning: device tree node `%s' is nested too deep\n",
-                   name);
-            continue;
-        }
-
-        as = depth > 0 ? address_cells[depth-1] : DT_ROOT_NODE_ADDR_CELLS_DEFAULT;
-        ss = depth > 0 ? size_cells[depth-1] : DT_ROOT_NODE_SIZE_CELLS_DEFAULT;
-
-        address_cells[depth] = device_tree_get_u32(fdt, node,
-                                                   "#address-cells", as);
-        size_cells[depth] = device_tree_get_u32(fdt, node,
-                                                "#size-cells", ss);
-
-        /* skip the first node */
-        if ( node != first_node )
-        {
-            ret = func(fdt, node, name, depth, as, ss, data);
-            if ( ret != 0 )
-                return ret;
-        }
-
-        node = fdt_next_node(fdt, node, &depth);
-    } while ( node >= 0 && depth > 0 );
-
-    return 0;
-}
-
-static int __init process_memory_node(const void *fdt, int node,
-                                      const char *name, int depth,
-                                      u32 address_cells, u32 size_cells,
-                                      struct membanks *mem)
-{
-    return device_tree_get_meminfo(fdt, node, "reg", address_cells, size_cells,
-                                   mem, MEMBANK_DEFAULT);
-}
-
-static int __init process_reserved_memory_node(const void *fdt, int node,
-                                               const char *name, int depth,
-                                               u32 address_cells,
-                                               u32 size_cells,
-                                               void *data)
-{
-    int rc = process_memory_node(fdt, node, name, depth, address_cells,
-                                 size_cells, data);
-
-    if ( rc == -ENOSPC )
-        panic("Max number of supported reserved-memory regions reached.\n");
-    else if ( rc != -ENOENT )
-        return rc;
-    return 0;
-}
-
-static int __init process_reserved_memory(const void *fdt, int node,
-                                          const char *name, int depth,
-                                          u32 address_cells, u32 size_cells)
-{
-    return device_tree_for_each_node(fdt, node,
-                                     process_reserved_memory_node,
-                                     bootinfo_get_reserved_mem());
-}
-
-static void __init process_multiboot_node(const void *fdt, int node,
-                                          const char *name,
-                                          u32 address_cells, u32 size_cells)
-{
-    static int __initdata kind_guess = 0;
-    const struct fdt_property *prop;
-    const __be32 *cell;
-    bootmodule_kind kind;
-    paddr_t start, size;
-    int len;
-    /* sizeof("/chosen/") + DT_MAX_NAME + '/' + DT_MAX_NAME + '/0' => 92 */
-    char path[92];
-    int parent_node, ret;
-    bool domU;
-
-    parent_node = fdt_parent_offset(fdt, node);
-    ASSERT(parent_node >= 0);
-
-    /* Check that the node is under "/chosen" (first 7 chars of path) */
-    ret = fdt_get_path(fdt, node, path, sizeof (path));
-    if ( ret != 0 || strncmp(path, "/chosen", 7) )
-        return;
-
-    prop = fdt_get_property(fdt, node, "reg", &len);
-    if ( !prop )
-        panic("node %s missing `reg' property\n", name);
-
-    if ( len < dt_cells_to_size(address_cells + size_cells) )
-        panic("fdt: node `%s': `reg` property length is too short\n",
-                    name);
-
-    cell = (const __be32 *)prop->data;
-    device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
-
-    if ( fdt_node_check_compatible(fdt, node, "xen,linux-zimage") == 0 ||
-         fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )
-        kind = BOOTMOD_KERNEL;
-    else if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") == 0 ||
-              fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") == 0 )
-        kind = BOOTMOD_RAMDISK;
-    else if ( fdt_node_check_compatible(fdt, node, "xen,xsm-policy") == 0 )
-        kind = BOOTMOD_XSM;
-    else if ( fdt_node_check_compatible(fdt, node, "multiboot,device-tree") == 0 )
-        kind = BOOTMOD_GUEST_DTB;
-    else
-        kind = BOOTMOD_UNKNOWN;
-
-    /**
-     * Guess the kind of these first two unknowns respectively:
-     * (1) The first unknown must be kernel.
-     * (2) Detect the XSM Magic from the 2nd unknown:
-     *     a. If it's XSM, set the kind as XSM, and that also means we
-     *     won't load ramdisk;
-     *     b. if it's not XSM, set the kind as ramdisk.
-     *     So if user want to load ramdisk, it must be the 2nd unknown.
-     * We also detect the XSM Magic for the following unknowns,
-     * then set its kind according to the return value of has_xsm_magic.
-     */
-    if ( kind == BOOTMOD_UNKNOWN )
-    {
-        switch ( kind_guess++ )
-        {
-        case 0: kind = BOOTMOD_KERNEL; break;
-        case 1: kind = BOOTMOD_RAMDISK; break;
-        default: break;
-        }
-        if ( kind_guess > 1 && has_xsm_magic(start) )
-            kind = BOOTMOD_XSM;
-    }
-
-    domU = fdt_node_check_compatible(fdt, parent_node, "xen,domain") == 0;
-    add_boot_module(kind, start, size, domU);
-
-    prop = fdt_get_property(fdt, node, "bootargs", &len);
-    if ( !prop )
-        return;
-    add_boot_cmdline(fdt_get_name(fdt, parent_node, &len), prop->data,
-                     kind, start, domU);
-}
-
-static int __init process_chosen_node(const void *fdt, int node,
-                                      const char *name,
-                                      u32 address_cells, u32 size_cells)
-{
-    const struct fdt_property *prop;
-    paddr_t start, end;
-    int len;
-
-    if ( fdt_get_property(fdt, node, "xen,static-heap", NULL) )
-    {
-        int rc;
-
-        printk("Checking for static heap in /chosen\n");
-
-        rc = device_tree_get_meminfo(fdt, node, "xen,static-heap",
-                                     address_cells, size_cells,
-                                     bootinfo_get_reserved_mem(),
-                                     MEMBANK_STATIC_HEAP);
-        if ( rc )
-            return rc;
-
-        bootinfo.static_heap = true;
-    }
-
-    printk("Checking for initrd in /chosen\n");
-
-    prop = fdt_get_property(fdt, node, "linux,initrd-start", &len);
-    if ( !prop )
-        /* No initrd present. */
-        return 0;
-    if ( len != sizeof(u32) && len != sizeof(u64) )
-    {
-        printk("linux,initrd-start property has invalid length %d\n", len);
-        return -EINVAL;
-    }
-    start = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
-
-    prop = fdt_get_property(fdt, node, "linux,initrd-end", &len);
-    if ( !prop )
-    {
-        printk("linux,initrd-end not present but -start was\n");
-        return -EINVAL;
-    }
-    if ( len != sizeof(u32) && len != sizeof(u64) )
-    {
-        printk("linux,initrd-end property has invalid length %d\n", len);
-        return -EINVAL;
-    }
-    end = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
-
-    if ( start >= end )
-    {
-        printk("linux,initrd limits invalid: %"PRIpaddr" >= %"PRIpaddr"\n",
-                  start, end);
-        return -EINVAL;
-    }
-
-    printk("Initrd %"PRIpaddr"-%"PRIpaddr"\n", start, end);
-
-    add_boot_module(BOOTMOD_RAMDISK, start, end-start, false);
-
-    return 0;
-}
-
-static int __init process_domain_node(const void *fdt, int node,
-                                      const char *name,
-                                      u32 address_cells, u32 size_cells)
-{
-    const struct fdt_property *prop;
-
-    printk("Checking for \"xen,static-mem\" in domain node\n");
-
-    prop = fdt_get_property(fdt, node, "xen,static-mem", NULL);
-    if ( !prop )
-        /* No "xen,static-mem" present. */
-        return 0;
-
-    return device_tree_get_meminfo(fdt, node, "xen,static-mem", address_cells,
-                                   size_cells, bootinfo_get_reserved_mem(),
-                                   MEMBANK_STATIC_DOMAIN);
-}
-
-static int __init early_scan_node(const void *fdt,
-                                  int node, const char *name, int depth,
-                                  u32 address_cells, u32 size_cells,
-                                  void *data)
-{
-    int rc = 0;
-
-    /*
-     * If Xen has been booted via UEFI, the memory banks are
-     * populated. So we should skip the parsing.
-     */
-    if ( !efi_enabled(EFI_BOOT) &&
-         device_tree_node_matches(fdt, node, "memory") )
-        rc = process_memory_node(fdt, node, name, depth,
-                                 address_cells, size_cells, bootinfo_get_mem());
-    else if ( depth == 1 && !dt_node_cmp(name, "reserved-memory") )
-        rc = process_reserved_memory(fdt, node, name, depth,
-                                     address_cells, size_cells);
-    else if ( depth <= 3 && (device_tree_node_compatible(fdt, node, "xen,multiboot-module" ) ||
-              device_tree_node_compatible(fdt, node, "multiboot,module" )))
-        process_multiboot_node(fdt, node, name, address_cells, size_cells);
-    else if ( depth == 1 && device_tree_node_matches(fdt, node, "chosen") )
-        rc = process_chosen_node(fdt, node, name, address_cells, size_cells);
-    else if ( depth == 2 && device_tree_node_compatible(fdt, node, "xen,domain") )
-        rc = process_domain_node(fdt, node, name, address_cells, size_cells);
-    else if ( depth <= 3 && device_tree_node_compatible(fdt, node, "xen,domain-shared-memory-v1") )
-        rc = process_shm_node(fdt, node, address_cells, size_cells);
-
-    if ( rc < 0 )
-        printk("fdt: node `%s': parsing failed\n", name);
-    return rc;
-}
-
-static void __init early_print_info(void)
-{
-    const struct membanks *mi = bootinfo_get_mem();
-    const struct membanks *mem_resv = bootinfo_get_reserved_mem();
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootcmdlines *cmds = &bootinfo.cmdlines;
-    unsigned int i;
-
-    for ( i = 0; i < mi->nr_banks; i++ )
-        printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n",
-                mi->bank[i].start,
-                mi->bank[i].start + mi->bank[i].size - 1);
-    printk("\n");
-    for ( i = 0 ; i < mods->nr_mods; i++ )
-        printk("MODULE[%d]: %"PRIpaddr" - %"PRIpaddr" %-12s\n",
-                i,
-                mods->module[i].start,
-                mods->module[i].start + mods->module[i].size,
-                boot_module_kind_as_string(mods->module[i].kind));
-
-    for ( i = 0; i < mem_resv->nr_banks; i++ )
-    {
-        printk(" RESVD[%u]: %"PRIpaddr" - %"PRIpaddr"\n", i,
-               mem_resv->bank[i].start,
-               mem_resv->bank[i].start + mem_resv->bank[i].size - 1);
-    }
-    early_print_info_shmem();
-    printk("\n");
-    for ( i = 0 ; i < cmds->nr_mods; i++ )
-        printk("CMDLINE[%"PRIpaddr"]:%s %s\n", cmds->cmdline[i].start,
-               cmds->cmdline[i].dt_name,
-               &cmds->cmdline[i].cmdline[0]);
-    printk("\n");
-}
-
-/* This function assumes that memory regions are not overlapped */
-static int __init cmp_memory_node(const void *key, const void *elem)
-{
-    const struct membank *handler0 = key;
-    const struct membank *handler1 = elem;
-
-    if ( handler0->start < handler1->start )
-        return -1;
-
-    if ( handler0->start >= (handler1->start + handler1->size) )
-        return 1;
-
-    return 0;
-}
-
-static void __init swap_memory_node(void *_a, void *_b, size_t size)
-{
-    struct membank *a = _a, *b = _b;
-
-    SWAP(*a, *b);
-}
-
-/**
- * boot_fdt_info - initialize bootinfo from a DTB
- * @fdt: flattened device tree binary
- *
- * Returns the size of the DTB.
- */
-size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
-{
-    struct membanks *reserved_mem = bootinfo_get_reserved_mem();
-    struct membanks *mem = bootinfo_get_mem();
-    unsigned int i;
-    int nr_rsvd;
-    int ret;
-
-    ret = fdt_check_header(fdt);
-    if ( ret < 0 )
-        panic("No valid device tree\n");
-
-    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
-
-    nr_rsvd = fdt_num_mem_rsv(fdt);
-    if ( nr_rsvd < 0 )
-        panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
-
-    for ( i = 0; i < nr_rsvd; i++ )
-    {
-        struct membank *bank;
-        paddr_t s, sz;
-
-        if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
-            continue;
-
-        if ( reserved_mem->nr_banks < reserved_mem->max_banks )
-        {
-            bank = &reserved_mem->bank[reserved_mem->nr_banks];
-            bank->start = s;
-            bank->size = sz;
-            bank->type = MEMBANK_FDT_RESVMEM;
-            reserved_mem->nr_banks++;
-        }
-        else
-            panic("Cannot allocate reserved memory bank\n");
-    }
-
-    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
-    if ( ret )
-        panic("Early FDT parsing failed (%d)\n", ret);
-
-    /*
-     * On Arm64 setup_directmap_mappings() expects to be called with the lowest
-     * bank in memory first. There is no requirement that the DT will provide
-     * the banks sorted in ascending order. So sort them through.
-     */
-    sort(mem->bank, mem->nr_banks, sizeof(struct membank),
-         cmp_memory_node, swap_memory_node);
-
-    early_print_info();
-
-    return fdt_totalsize(fdt);
-}
-
-const __init char *boot_fdt_cmdline(const void *fdt)
-{
-    int node;
-    const struct fdt_property *prop;
-
-    node = fdt_path_offset(fdt, "/chosen");
-    if ( node < 0 )
-        return NULL;
-
-    prop = fdt_get_property(fdt, node, "xen,xen-bootargs", NULL);
-    if ( prop == NULL )
-    {
-        struct bootcmdline *dom0_cmdline =
-            boot_cmdline_find_by_kind(BOOTMOD_KERNEL);
-
-        if (fdt_get_property(fdt, node, "xen,dom0-bootargs", NULL) ||
-            ( dom0_cmdline && dom0_cmdline->cmdline[0] ) )
-            prop = fdt_get_property(fdt, node, "bootargs", NULL);
-    }
-    if ( prop == NULL )
-        return NULL;
-
-    return prop->data;
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 051e796716..5ee690aeb2 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -39,19 +39,6 @@ void fw_unreserved_regions(paddr_t s, paddr_t e,
                            void (*cb)(paddr_t ps, paddr_t pe),
                            unsigned int first);
 
-bool check_reserved_regions_overlap(paddr_t region_start, paddr_t region_size);
-
-struct bootmodule *add_boot_module(bootmodule_kind kind,
-                                   paddr_t start, paddr_t size, bool domU);
-struct bootmodule *boot_module_find_by_kind(bootmodule_kind kind);
-struct bootmodule * boot_module_find_by_addr_and_kind(bootmodule_kind kind,
-                                                             paddr_t start);
-void add_boot_cmdline(const char *name, const char *cmdline,
-                      bootmodule_kind kind, paddr_t start, bool domU);
-struct bootcmdline *boot_cmdline_find_by_kind(bootmodule_kind kind);
-struct bootcmdline * boot_cmdline_find_by_name(const char *name);
-const char *boot_module_kind_as_string(bootmodule_kind kind);
-
 void init_pdx(void);
 void setup_mm(void);
 
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index 947bad979c..ff2de71c96 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -1 +1,2 @@
+obj-y += bootfdt.init.o
 obj-y += bootinfo.init.o
diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
new file mode 100644
index 0000000000..748b5f7c69
--- /dev/null
+++ b/xen/common/device-tree/bootfdt.c
@@ -0,0 +1,635 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Early Device Tree
+ *
+ * Copyright (C) 2012-2014 Citrix Systems, Inc.
+ */
+
+#include <xen/bootfdt.h>
+#include <xen/device_tree.h>
+#include <xen/efi.h>
+#include <xen/init.h>
+#include <xen/kernel.h>
+#include <xen/libfdt/libfdt-xen.h>
+#include <xen/sort.h>
+#include <xsm/xsm.h>
+#include <asm/setup.h>
+#ifdef CONFIG_STATIC_SHM
+#include <asm/static-shmem.h>
+#endif
+
+static void __init __maybe_unused build_assertions(void)
+{
+    /*
+     * Check that no padding is between struct membanks "bank" flexible array
+     * member and struct meminfo "bank" member
+     */
+    BUILD_BUG_ON((offsetof(struct membanks, bank) !=
+                 offsetof(struct meminfo, bank)));
+    /* Ensure "struct membanks" is 8-byte aligned */
+    BUILD_BUG_ON(alignof(struct membanks) != 8);
+}
+
+static bool __init device_tree_node_is_available(const void *fdt, int node)
+{
+    const char *status;
+    int len;
+
+    status = fdt_getprop(fdt, node, "status", &len);
+    if ( !status )
+        return true;
+
+    if ( len > 0 )
+    {
+        if ( !strcmp(status, "ok") || !strcmp(status, "okay") )
+            return true;
+    }
+
+    return false;
+}
+
+static bool __init device_tree_node_matches(const void *fdt, int node,
+                                            const char *match)
+{
+    const char *name;
+    size_t match_len;
+
+    name = fdt_get_name(fdt, node, NULL);
+    match_len = strlen(match);
+
+    /* Match both "match" and "match@..." patterns but not
+       "match-foo". */
+    return strncmp(name, match, match_len) == 0
+        && (name[match_len] == '@' || name[match_len] == '\0');
+}
+
+static bool __init device_tree_node_compatible(const void *fdt, int node,
+                                               const char *match)
+{
+    int len, l;
+    const void *prop;
+
+    prop = fdt_getprop(fdt, node, "compatible", &len);
+    if ( prop == NULL )
+        return false;
+
+    while ( len > 0 ) {
+        if ( !dt_compat_cmp(prop, match) )
+            return true;
+        l = strlen(prop) + 1;
+        prop += l;
+        len -= l;
+    }
+
+    return false;
+}
+
+void __init device_tree_get_reg(const __be32 **cell, uint32_t address_cells,
+                                uint32_t size_cells, paddr_t *start,
+                                paddr_t *size)
+{
+    uint64_t dt_start, dt_size;
+
+    /*
+     * dt_next_cell will return uint64_t whereas paddr_t may not be 64-bit.
+     * Thus, there is an implicit cast from uint64_t to paddr_t.
+     */
+    dt_start = dt_next_cell(address_cells, cell);
+    dt_size = dt_next_cell(size_cells, cell);
+
+    if ( dt_start != (paddr_t)dt_start )
+    {
+        printk("Physical address greater than max width supported\n");
+        WARN();
+    }
+
+    if ( dt_size != (paddr_t)dt_size )
+    {
+        printk("Physical size greater than max width supported\n");
+        WARN();
+    }
+
+    /*
+     * Xen will truncate the address/size if it is greater than the maximum
+     * supported width and it will give an appropriate warning.
+     */
+    *start = dt_start;
+    *size = dt_size;
+}
+
+static int __init device_tree_get_meminfo(const void *fdt, int node,
+                                          const char *prop_name,
+                                          u32 address_cells, u32 size_cells,
+                                          struct membanks *mem,
+                                          enum membank_type type)
+{
+    const struct fdt_property *prop;
+    unsigned int i, banks;
+    const __be32 *cell;
+    u32 reg_cells = address_cells + size_cells;
+    paddr_t start, size;
+
+    if ( !device_tree_node_is_available(fdt, node) )
+        return 0;
+
+    if ( address_cells < 1 || size_cells < 1 )
+    {
+        printk("fdt: property `%s': invalid #address-cells or #size-cells",
+               prop_name);
+        return -EINVAL;
+    }
+
+    prop = fdt_get_property(fdt, node, prop_name, NULL);
+    if ( !prop )
+        return -ENOENT;
+
+    cell = (const __be32 *)prop->data;
+    banks = fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32));
+
+    for ( i = 0; i < banks && mem->nr_banks < mem->max_banks; i++ )
+    {
+        device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
+        if ( mem == bootinfo_get_reserved_mem() &&
+             check_reserved_regions_overlap(start, size) )
+            return -EINVAL;
+        /* Some DT may describe empty bank, ignore them */
+        if ( !size )
+            continue;
+        mem->bank[mem->nr_banks].start = start;
+        mem->bank[mem->nr_banks].size = size;
+        mem->bank[mem->nr_banks].type = type;
+        mem->nr_banks++;
+    }
+
+    if ( i < banks )
+    {
+        printk("Warning: Max number of supported memory regions reached.\n");
+        return -ENOSPC;
+    }
+
+    return 0;
+}
+
+u32 __init device_tree_get_u32(const void *fdt, int node,
+                               const char *prop_name, u32 dflt)
+{
+    const struct fdt_property *prop;
+
+    prop = fdt_get_property(fdt, node, prop_name, NULL);
+    if ( !prop || prop->len < sizeof(u32) )
+        return dflt;
+
+    return fdt32_to_cpu(*(uint32_t*)prop->data);
+}
+
+/**
+ * device_tree_for_each_node - iterate over all device tree sub-nodes
+ * @fdt: flat device tree.
+ * @node: parent node to start the search from
+ * @func: function to call for each sub-node.
+ * @data: data to pass to @func.
+ *
+ * Any nodes nested at DEVICE_TREE_MAX_DEPTH or deeper are ignored.
+ *
+ * Returns 0 if all nodes were iterated over successfully.  If @func
+ * returns a value different from 0, that value is returned immediately.
+ */
+int __init device_tree_for_each_node(const void *fdt, int node,
+                                     device_tree_node_func func,
+                                     void *data)
+{
+    /*
+     * We only care about relative depth increments, assume depth of
+     * node is 0 for simplicity.
+     */
+    int depth = 0;
+    const int first_node = node;
+    u32 address_cells[DEVICE_TREE_MAX_DEPTH];
+    u32 size_cells[DEVICE_TREE_MAX_DEPTH];
+    int ret;
+
+    do {
+        const char *name = fdt_get_name(fdt, node, NULL);
+        u32 as, ss;
+
+        if ( depth >= DEVICE_TREE_MAX_DEPTH )
+        {
+            printk("Warning: device tree node `%s' is nested too deep\n",
+                   name);
+            continue;
+        }
+
+        as = depth > 0 ? address_cells[depth-1] : DT_ROOT_NODE_ADDR_CELLS_DEFAULT;
+        ss = depth > 0 ? size_cells[depth-1] : DT_ROOT_NODE_SIZE_CELLS_DEFAULT;
+
+        address_cells[depth] = device_tree_get_u32(fdt, node,
+                                                   "#address-cells", as);
+        size_cells[depth] = device_tree_get_u32(fdt, node,
+                                                "#size-cells", ss);
+
+        /* skip the first node */
+        if ( node != first_node )
+        {
+            ret = func(fdt, node, name, depth, as, ss, data);
+            if ( ret != 0 )
+                return ret;
+        }
+
+        node = fdt_next_node(fdt, node, &depth);
+    } while ( node >= 0 && depth > 0 );
+
+    return 0;
+}
+
+static int __init process_memory_node(const void *fdt, int node,
+                                      const char *name, int depth,
+                                      u32 address_cells, u32 size_cells,
+                                      struct membanks *mem)
+{
+    return device_tree_get_meminfo(fdt, node, "reg", address_cells, size_cells,
+                                   mem, MEMBANK_DEFAULT);
+}
+
+static int __init process_reserved_memory_node(const void *fdt, int node,
+                                               const char *name, int depth,
+                                               u32 address_cells,
+                                               u32 size_cells,
+                                               void *data)
+{
+    int rc = process_memory_node(fdt, node, name, depth, address_cells,
+                                 size_cells, data);
+
+    if ( rc == -ENOSPC )
+        panic("Max number of supported reserved-memory regions reached.\n");
+    else if ( rc != -ENOENT )
+        return rc;
+    return 0;
+}
+
+static int __init process_reserved_memory(const void *fdt, int node,
+                                          const char *name, int depth,
+                                          u32 address_cells, u32 size_cells)
+{
+    return device_tree_for_each_node(fdt, node,
+                                     process_reserved_memory_node,
+                                     bootinfo_get_reserved_mem());
+}
+
+static void __init process_multiboot_node(const void *fdt, int node,
+                                          const char *name,
+                                          u32 address_cells, u32 size_cells)
+{
+    static int __initdata kind_guess = 0;
+    const struct fdt_property *prop;
+    const __be32 *cell;
+    bootmodule_kind kind;
+    paddr_t start, size;
+    int len;
+    /* sizeof("/chosen/") + DT_MAX_NAME + '/' + DT_MAX_NAME + '/0' => 92 */
+    char path[92];
+    int parent_node, ret;
+    bool domU;
+
+    parent_node = fdt_parent_offset(fdt, node);
+    ASSERT(parent_node >= 0);
+
+    /* Check that the node is under "/chosen" (first 7 chars of path) */
+    ret = fdt_get_path(fdt, node, path, sizeof (path));
+    if ( ret != 0 || strncmp(path, "/chosen", 7) )
+        return;
+
+    prop = fdt_get_property(fdt, node, "reg", &len);
+    if ( !prop )
+        panic("node %s missing `reg' property\n", name);
+
+    if ( len < dt_cells_to_size(address_cells + size_cells) )
+        panic("fdt: node `%s': `reg` property length is too short\n",
+                    name);
+
+    cell = (const __be32 *)prop->data;
+    device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
+
+    if ( fdt_node_check_compatible(fdt, node, "xen,linux-zimage") == 0 ||
+         fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )
+        kind = BOOTMOD_KERNEL;
+    else if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") == 0 ||
+              fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") == 0 )
+        kind = BOOTMOD_RAMDISK;
+    else if ( fdt_node_check_compatible(fdt, node, "xen,xsm-policy") == 0 )
+        kind = BOOTMOD_XSM;
+    else if ( fdt_node_check_compatible(fdt, node, "multiboot,device-tree") == 0 )
+        kind = BOOTMOD_GUEST_DTB;
+    else
+        kind = BOOTMOD_UNKNOWN;
+
+    /**
+     * Guess the kind of these first two unknowns respectively:
+     * (1) The first unknown must be kernel.
+     * (2) Detect the XSM Magic from the 2nd unknown:
+     *     a. If it's XSM, set the kind as XSM, and that also means we
+     *     won't load ramdisk;
+     *     b. if it's not XSM, set the kind as ramdisk.
+     *     So if user want to load ramdisk, it must be the 2nd unknown.
+     * We also detect the XSM Magic for the following unknowns,
+     * then set its kind according to the return value of has_xsm_magic.
+     */
+    if ( kind == BOOTMOD_UNKNOWN )
+    {
+        switch ( kind_guess++ )
+        {
+        case 0: kind = BOOTMOD_KERNEL; break;
+        case 1: kind = BOOTMOD_RAMDISK; break;
+        default: break;
+        }
+        if ( kind_guess > 1 && has_xsm_magic(start) )
+            kind = BOOTMOD_XSM;
+    }
+
+    domU = fdt_node_check_compatible(fdt, parent_node, "xen,domain") == 0;
+    add_boot_module(kind, start, size, domU);
+
+    prop = fdt_get_property(fdt, node, "bootargs", &len);
+    if ( !prop )
+        return;
+    add_boot_cmdline(fdt_get_name(fdt, parent_node, &len), prop->data,
+                     kind, start, domU);
+}
+
+static int __init process_chosen_node(const void *fdt, int node,
+                                      const char *name,
+                                      u32 address_cells, u32 size_cells)
+{
+    const struct fdt_property *prop;
+    paddr_t start, end;
+    int len;
+
+    if ( fdt_get_property(fdt, node, "xen,static-heap", NULL) )
+    {
+        int rc;
+
+        printk("Checking for static heap in /chosen\n");
+
+        rc = device_tree_get_meminfo(fdt, node, "xen,static-heap",
+                                     address_cells, size_cells,
+                                     bootinfo_get_reserved_mem(),
+                                     MEMBANK_STATIC_HEAP);
+        if ( rc )
+            return rc;
+
+        bootinfo.static_heap = true;
+    }
+
+    printk("Checking for initrd in /chosen\n");
+
+    prop = fdt_get_property(fdt, node, "linux,initrd-start", &len);
+    if ( !prop )
+        /* No initrd present. */
+        return 0;
+    if ( len != sizeof(u32) && len != sizeof(u64) )
+    {
+        printk("linux,initrd-start property has invalid length %d\n", len);
+        return -EINVAL;
+    }
+    start = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
+
+    prop = fdt_get_property(fdt, node, "linux,initrd-end", &len);
+    if ( !prop )
+    {
+        printk("linux,initrd-end not present but -start was\n");
+        return -EINVAL;
+    }
+    if ( len != sizeof(u32) && len != sizeof(u64) )
+    {
+        printk("linux,initrd-end property has invalid length %d\n", len);
+        return -EINVAL;
+    }
+    end = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
+
+    if ( start >= end )
+    {
+        printk("linux,initrd limits invalid: %"PRIpaddr" >= %"PRIpaddr"\n",
+                  start, end);
+        return -EINVAL;
+    }
+
+    printk("Initrd %"PRIpaddr"-%"PRIpaddr"\n", start, end);
+
+    add_boot_module(BOOTMOD_RAMDISK, start, end-start, false);
+
+    return 0;
+}
+
+static int __init process_domain_node(const void *fdt, int node,
+                                      const char *name,
+                                      u32 address_cells, u32 size_cells)
+{
+    const struct fdt_property *prop;
+
+    printk("Checking for \"xen,static-mem\" in domain node\n");
+
+    prop = fdt_get_property(fdt, node, "xen,static-mem", NULL);
+    if ( !prop )
+        /* No "xen,static-mem" present. */
+        return 0;
+
+    return device_tree_get_meminfo(fdt, node, "xen,static-mem", address_cells,
+                                   size_cells, bootinfo_get_reserved_mem(),
+                                   MEMBANK_STATIC_DOMAIN);
+}
+
+#ifndef CONFIG_STATIC_SHM
+static inline int process_shm_node(const void *fdt, int node,
+                                   uint32_t address_cells, uint32_t size_cells)
+{
+    printk("CONFIG_STATIC_SHM must be enabled for parsing static shared"
+            " memory nodes\n");
+    return -EINVAL;
+}
+#endif
+
+static int __init early_scan_node(const void *fdt,
+                                  int node, const char *name, int depth,
+                                  u32 address_cells, u32 size_cells,
+                                  void *data)
+{
+    int rc = 0;
+
+    /*
+     * If Xen has been booted via UEFI, the memory banks are
+     * populated. So we should skip the parsing.
+     */
+    if ( !efi_enabled(EFI_BOOT) &&
+         device_tree_node_matches(fdt, node, "memory") )
+        rc = process_memory_node(fdt, node, name, depth,
+                                 address_cells, size_cells, bootinfo_get_mem());
+    else if ( depth == 1 && !dt_node_cmp(name, "reserved-memory") )
+        rc = process_reserved_memory(fdt, node, name, depth,
+                                     address_cells, size_cells);
+    else if ( depth <= 3 && (device_tree_node_compatible(fdt, node, "xen,multiboot-module" ) ||
+              device_tree_node_compatible(fdt, node, "multiboot,module" )))
+        process_multiboot_node(fdt, node, name, address_cells, size_cells);
+    else if ( depth == 1 && device_tree_node_matches(fdt, node, "chosen") )
+        rc = process_chosen_node(fdt, node, name, address_cells, size_cells);
+    else if ( depth == 2 && device_tree_node_compatible(fdt, node, "xen,domain") )
+        rc = process_domain_node(fdt, node, name, address_cells, size_cells);
+    else if ( depth <= 3 && device_tree_node_compatible(fdt, node, "xen,domain-shared-memory-v1") )
+        rc = process_shm_node(fdt, node, address_cells, size_cells);
+
+    if ( rc < 0 )
+        printk("fdt: node `%s': parsing failed\n", name);
+    return rc;
+}
+
+static void __init early_print_info(void)
+{
+    const struct membanks *mi = bootinfo_get_mem();
+    const struct membanks *mem_resv = bootinfo_get_reserved_mem();
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootcmdlines *cmds = &bootinfo.cmdlines;
+    unsigned int i;
+
+    for ( i = 0; i < mi->nr_banks; i++ )
+        printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n",
+                mi->bank[i].start,
+                mi->bank[i].start + mi->bank[i].size - 1);
+    printk("\n");
+    for ( i = 0 ; i < mods->nr_mods; i++ )
+        printk("MODULE[%d]: %"PRIpaddr" - %"PRIpaddr" %-12s\n",
+                i,
+                mods->module[i].start,
+                mods->module[i].start + mods->module[i].size,
+                boot_module_kind_as_string(mods->module[i].kind));
+
+    for ( i = 0; i < mem_resv->nr_banks; i++ )
+    {
+        printk(" RESVD[%u]: %"PRIpaddr" - %"PRIpaddr"\n", i,
+               mem_resv->bank[i].start,
+               mem_resv->bank[i].start + mem_resv->bank[i].size - 1);
+    }
+#ifdef CONFIG_STATIC_SHM
+    early_print_info_shmem();
+#endif
+    printk("\n");
+    for ( i = 0 ; i < cmds->nr_mods; i++ )
+        printk("CMDLINE[%"PRIpaddr"]:%s %s\n", cmds->cmdline[i].start,
+               cmds->cmdline[i].dt_name,
+               &cmds->cmdline[i].cmdline[0]);
+    printk("\n");
+}
+
+/* This function assumes that memory regions are not overlapped */
+static int __init cmp_memory_node(const void *key, const void *elem)
+{
+    const struct membank *handler0 = key;
+    const struct membank *handler1 = elem;
+
+    if ( handler0->start < handler1->start )
+        return -1;
+
+    if ( handler0->start >= (handler1->start + handler1->size) )
+        return 1;
+
+    return 0;
+}
+
+static void __init swap_memory_node(void *_a, void *_b, size_t size)
+{
+    struct membank *a = _a, *b = _b;
+
+    SWAP(*a, *b);
+}
+
+/**
+ * boot_fdt_info - initialize bootinfo from a DTB
+ * @fdt: flattened device tree binary
+ *
+ * Returns the size of the DTB.
+ */
+size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
+{
+    struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+    struct membanks *mem = bootinfo_get_mem();
+    unsigned int i;
+    int nr_rsvd;
+    int ret;
+
+    ret = fdt_check_header(fdt);
+    if ( ret < 0 )
+        panic("No valid device tree\n");
+
+    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
+
+    nr_rsvd = fdt_num_mem_rsv(fdt);
+    if ( nr_rsvd < 0 )
+        panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
+
+    for ( i = 0; i < nr_rsvd; i++ )
+    {
+        struct membank *bank;
+        paddr_t s, sz;
+
+        if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
+            continue;
+
+        if ( reserved_mem->nr_banks < reserved_mem->max_banks )
+        {
+            bank = &reserved_mem->bank[reserved_mem->nr_banks];
+            bank->start = s;
+            bank->size = sz;
+            bank->type = MEMBANK_FDT_RESVMEM;
+            reserved_mem->nr_banks++;
+        }
+        else
+            panic("Cannot allocate reserved memory bank\n");
+    }
+
+    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
+    if ( ret )
+        panic("Early FDT parsing failed (%d)\n", ret);
+
+    /*
+     * On Arm64 setup_directmap_mappings() expects to be called with the lowest
+     * bank in memory first. There is no requirement that the DT will provide
+     * the banks sorted in ascending order. So sort them through.
+     */
+    sort(mem->bank, mem->nr_banks, sizeof(struct membank),
+         cmp_memory_node, swap_memory_node);
+
+    early_print_info();
+
+    return fdt_totalsize(fdt);
+}
+
+const __init char *boot_fdt_cmdline(const void *fdt)
+{
+    int node;
+    const struct fdt_property *prop;
+
+    node = fdt_path_offset(fdt, "/chosen");
+    if ( node < 0 )
+        return NULL;
+
+    prop = fdt_get_property(fdt, node, "xen,xen-bootargs", NULL);
+    if ( prop == NULL )
+    {
+        struct bootcmdline *dom0_cmdline =
+            boot_cmdline_find_by_kind(BOOTMOD_KERNEL);
+
+        if (fdt_get_property(fdt, node, "xen,dom0-bootargs", NULL) ||
+            ( dom0_cmdline && dom0_cmdline->cmdline[0] ) )
+            prop = fdt_get_property(fdt, node, "bootargs", NULL);
+    }
+    if ( prop == NULL )
+        return NULL;
+
+    return prop->data;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
index 7cd45b3d4b..5943bc5fe3 100644
--- a/xen/include/xen/bootfdt.h
+++ b/xen/include/xen/bootfdt.h
@@ -158,6 +158,20 @@ struct bootinfo {
 
 extern struct bootinfo bootinfo;
 
+bool check_reserved_regions_overlap(paddr_t region_start,
+                                    paddr_t region_size);
+
+struct bootmodule *add_boot_module(bootmodule_kind kind,
+                                   paddr_t start, paddr_t size, bool domU);
+struct bootmodule *boot_module_find_by_kind(bootmodule_kind kind);
+struct bootmodule * boot_module_find_by_addr_and_kind(bootmodule_kind kind,
+                                                             paddr_t start);
+void add_boot_cmdline(const char *name, const char *cmdline,
+                      bootmodule_kind kind, paddr_t start, bool domU);
+struct bootcmdline *boot_cmdline_find_by_kind(bootmodule_kind kind);
+struct bootcmdline * boot_cmdline_find_by_name(const char *name);
+const char *boot_module_kind_as_string(bootmodule_kind kind);
+
 void populate_boot_allocator(void);
 
 size_t boot_fdt_info(const void *fdt, paddr_t paddr);
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:23:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:23:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758171.1167562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ37-0000cd-3Q; Fri, 12 Jul 2024 16:23:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758171.1167562; Fri, 12 Jul 2024 16:23:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ36-0000bo-Qh; Fri, 12 Jul 2024 16:23:08 +0000
Received: by outflank-mailman (input) for mailman id 758171;
 Fri, 12 Jul 2024 16: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSJ35-0008O1-8Q
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:23:07 +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 0433258d-406b-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 18:23:04 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a77cc73d35fso578310766b.0
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:23:04 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ffa13sm358464966b.129.2024.07.12.09.23.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09: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: 0433258d-406b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801384; x=1721406184; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eiCQr1BuhZqgp4BT/aK5SpqOx731stYHJnnEoVaWdiY=;
        b=jMjMhRqs2rYmIUrAOU3FEbQBQTci/7E3K+GuI5PN5Hu7Z+9MGOYTkFjCMqqKQJkNon
         erfVVe8uD2DigcYq31cmZl3NeWdqJMw4hoKZumDMRrXff//BTBdoNkMUOcp2Zu9801C+
         MkxOJqrFZ4E+aOdElagsGphXpRB5Nz+2mnceP4FEFHie7ldyMGWOpTln1sdyryJrUs+A
         xk8sDQ1MqNnaQxmLt8kESdoqBkFtM/fj6guMpJu1YQvMC/7Tza63azhY0oGN5KyclIXV
         Hh4xmUFsidSVdt3out8KCuI1d3LqUpnN4S+fvqbW0AUwLzgVhIeWO7ZpH7PTuh21R6hg
         ae3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801384; x=1721406184;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=eiCQr1BuhZqgp4BT/aK5SpqOx731stYHJnnEoVaWdiY=;
        b=OOu5lrXnei91BSUpUEog1WT2k0Y/NhFTEWP7ipTTni5nCas4QweJfKGaTY4OrsQOCN
         rceGouLypx/nSDECSIYH5KLeQxZEwbGICS+9b2W3/3lMrwHqoOjJXlqrC/5iFkh50ZXC
         rz10QpnBGzttpY6ndcG55xy8HxhjrQVlJMaDL3+ZluVYm4iG0wQE0PXIkbipPYiULmUq
         wHczjybK0BmVCC/P4wf4QCaBbta4vDU4meXQU/7y3IJrZjj6+0AFHmtb3ccQwfIiTdZV
         wdjkHY6LhpD4MAsbQwUBjd0gwtXYBaaOkqhmPCPYNDV/mPMOOgsBI/bJdSzXi1bgZVGM
         Q8MQ==
X-Gm-Message-State: AOJu0YyLM2YzzxSno3rJwqMects7XXG24/7ENfJsScJncX1o6udRtU/L
	d19S+amg8dz9yhknizzd1tKH2MS+A7cPTzPJN99rMjAQ2TMAX/IDyZiJ40QG
X-Google-Smtp-Source: AGHT+IGZcF6qjdB1uApmKaBeqzPxwBZXy58jd0MovIoZR4nIchXdEcdHWmRHtyEXnlUWr9/FE4wHkw==
X-Received: by 2002:a17:907:6d03:b0:a72:7ede:4d12 with SMTP id a640c23a62f3a-a799d3019bcmr297516366b.5.1720801383977;
        Fri, 12 Jul 2024 09:23:03 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
Date: Fri, 12 Jul 2024 18:22:53 +0200
Message-ID: <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799925.git.oleksii.kurochko@gmail.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce a function to set up fixmap mappings and L0 page
table for fixmap.

Additionally, defines were introduced in riscv/config.h to
calculate the FIXMAP_BASE address.
This involved introducing BOOT_FDT_VIRT_{START, SIZE} and
XEN_SIZE, XEN_VIRT_END.

Also, the check of Xen size was updated in the riscv/lds.S
script to use XEN_SIZE instead of a hardcoded constant.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V2:
 - newly introduced patch
---
 xen/arch/riscv/include/asm/config.h |  9 ++++++
 xen/arch/riscv/include/asm/fixmap.h | 48 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/mm.h     |  2 ++
 xen/arch/riscv/include/asm/page.h   |  7 +++++
 xen/arch/riscv/mm.c                 | 35 +++++++++++++++++++++
 xen/arch/riscv/setup.c              |  2 ++
 xen/arch/riscv/xen.lds.S            |  2 +-
 7 files changed, 104 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/riscv/include/asm/fixmap.h

diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 50583aafdc..3275477c17 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -74,11 +74,20 @@
 #error "unsupported RV_STAGE1_MODE"
 #endif
 
+#define XEN_SIZE                MB(2)
+#define XEN_VIRT_END            (XEN_VIRT_START + XEN_SIZE)
+
+#define BOOT_FDT_VIRT_START     XEN_VIRT_END
+#define BOOT_FDT_VIRT_SIZE      MB(4)
+
 #define DIRECTMAP_SLOT_END      509
 #define DIRECTMAP_SLOT_START    200
 #define DIRECTMAP_VIRT_START    SLOTN(DIRECTMAP_SLOT_START)
 #define DIRECTMAP_SIZE          (SLOTN(DIRECTMAP_SLOT_END) - SLOTN(DIRECTMAP_SLOT_START))
 
+#define FIXMAP_BASE             (BOOT_FDT_VIRT_START + BOOT_FDT_VIRT_SIZE)
+#define FIXMAP_ADDR(n)          (FIXMAP_BASE + (n) * PAGE_SIZE)
+
 #define FRAMETABLE_SCALE_FACTOR  (PAGE_SIZE/sizeof(struct page_info))
 #define FRAMETABLE_SIZE_IN_SLOTS (((DIRECTMAP_SIZE / SLOTN(1)) / FRAMETABLE_SCALE_FACTOR) + 1)
 
diff --git a/xen/arch/riscv/include/asm/fixmap.h b/xen/arch/riscv/include/asm/fixmap.h
new file mode 100644
index 0000000000..fcfb82d69c
--- /dev/null
+++ b/xen/arch/riscv/include/asm/fixmap.h
@@ -0,0 +1,48 @@
+/*
+ * fixmap.h: compile-time virtual memory allocation
+ */
+#ifndef __ASM_FIXMAP_H
+#define __ASM_FIXMAP_H
+
+#include <xen/bug.h>
+#include <xen/page-size.h>
+#include <xen/pmap.h>
+
+#include <asm/page.h>
+
+/* Fixmap slots */
+#define FIX_PMAP_BEGIN (0) /* Start of PMAP */
+#define FIX_PMAP_END (FIX_PMAP_BEGIN + NUM_FIX_PMAP - 1) /* End of PMAP */
+#define FIX_MISC (FIX_PMAP_END + 1)  /* Ephemeral mappings of hardware */
+
+#define FIX_LAST FIX_MISC
+
+#define FIXADDR_START FIXMAP_ADDR(0)
+#define FIXADDR_TOP FIXMAP_ADDR(FIX_LAST)
+
+#ifndef __ASSEMBLY__
+
+/*
+ * Direct access to xen_fixmap[] should only happen when {set,
+ * clear}_fixmap() is unusable (e.g. where we would end up to
+ * recursively call the helpers).
+ */
+extern pte_t xen_fixmap[];
+
+/* Map a page in a fixmap entry */
+extern void set_fixmap(unsigned int map, mfn_t mfn, unsigned int attributes);
+/* Remove a mapping from a fixmap entry */
+extern void clear_fixmap(unsigned int map);
+
+#define fix_to_virt(slot) ((void *)FIXMAP_ADDR(slot))
+
+static inline unsigned int virt_to_fix(vaddr_t vaddr)
+{
+    BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START);
+
+    return ((vaddr - FIXADDR_START) >> PAGE_SHIFT);
+}
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ASM_FIXMAP_H */
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 25af9e1aaa..a0bdc2bc3a 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -255,4 +255,6 @@ static inline unsigned int arch_get_dma_bitsize(void)
     return 32; /* TODO */
 }
 
+void setup_fixmap_mappings(void);
+
 #endif /* _ASM_RISCV_MM_H */
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index c831e16417..cbbf3656d1 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -81,6 +81,13 @@ static inline void flush_page_to_ram(unsigned long mfn, bool sync_icache)
     BUG_ON("unimplemented");
 }
 
+/* Write a pagetable entry. */
+static inline void write_pte(pte_t *p, pte_t pte)
+{
+    *p = pte;
+    asm volatile ("sfence.vma");
+}
+
 #endif /* __ASSEMBLY__ */
 
 #endif /* _ASM_RISCV_PAGE_H */
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 7d09e781bf..d69a174b5d 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
 pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
 stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT * PAGETABLE_ENTRIES];
 
+pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
+xen_fixmap[PAGETABLE_ENTRIES];
+
 #define HANDLE_PGTBL(curr_lvl_num)                                          \
     index = pt_index(curr_lvl_num, page_addr);                              \
     if ( pte_is_valid(pgtbl[index]) )                                       \
@@ -191,6 +194,38 @@ static bool __init check_pgtbl_mode_support(struct mmu_desc *mmu_desc,
     return is_mode_supported;
 }
 
+void __init setup_fixmap_mappings(void)
+{
+    pte_t *pte;
+    unsigned int i;
+
+    pte = &stage1_pgtbl_root[pt_index(HYP_PT_ROOT_LEVEL, FIXMAP_ADDR(0))];
+
+    for ( i = HYP_PT_ROOT_LEVEL - 1; i != 0; i-- )
+    {
+        BUG_ON(!pte_is_valid(*pte));
+
+        pte = (pte_t *)LOAD_TO_LINK(pte_to_paddr(*pte));
+        pte = &pte[pt_index(i, FIXMAP_ADDR(0))];
+    }
+
+    BUG_ON( pte_is_valid(*pte) );
+
+    if ( !pte_is_valid(*pte) )
+    {
+        pte_t tmp = paddr_to_pte(LINK_TO_LOAD((unsigned long)&xen_fixmap), PTE_TABLE);
+
+        write_pte(pte, tmp);
+
+        printk("(XEN) fixmap is mapped\n");
+    }
+
+    /*
+     * We only need the zeroeth table allocated, but not the PTEs set, because
+     * set_fixmap() will set them on the fly.
+     */
+}
+
 /*
  * setup_initial_pagetables:
  *
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 4defad68f4..13f0e8c77d 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -46,6 +46,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
     test_macros_from_bug_h();
 #endif
 
+    setup_fixmap_mappings();
+
     printk("All set up\n");
 
     for ( ;; )
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 070b19d915..63b1dd7bb6 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -181,6 +181,6 @@ ASSERT(!SIZEOF(.got.plt),  ".got.plt non-empty")
  * Changing the size of Xen binary can require an update of
  * PGTBL_INITIAL_COUNT.
  */
-ASSERT(_end - _start <= MB(2), "Xen too large for early-boot assumptions")
+ASSERT(_end - _start <= XEN_SIZE, "Xen too large for early-boot assumptions")
 
 ASSERT(_ident_end - _ident_start <= IDENT_AREA_SIZE, "identity region is too big");
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:23:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:23:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758172.1167569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ37-0000nj-Oz; Fri, 12 Jul 2024 16:23:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758172.1167569; Fri, 12 Jul 2024 16:23:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ37-0000lD-FJ; Fri, 12 Jul 2024 16:23:09 +0000
Received: by outflank-mailman (input) for mailman id 758172;
 Fri, 12 Jul 2024 16:23:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSJ36-00088h-2K
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:23:08 +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 05ac88bb-406b-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 18:23:07 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a77b60cafecso282126166b.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:23:07 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ffa13sm358464966b.129.2024.07.12.09.23.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09: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: 05ac88bb-406b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801386; x=1721406186; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2tAQCFotTkzWpbcCEY17RKs5ihbwYU4L2egMLjkuPzI=;
        b=H+A6xc54tUQNbpqPZeM7AdGrfphiLrLQVF9BT7H/0nAH0jLarXksyIVJCf1i48qSVh
         W+JtYYQ1v7wy6MRPdP0UOK1sP0pjI5wpyLa5B3v1xBQxYynDH8/IXbrnVuuj7Bt5Jag4
         F687IlSJSy8z38NhHxUeR8AvhVCOLc5hEdmAtfGg7tADhgrU6z1RqqsOW2akKMRXwZwB
         ZsilAFfqEZarRxF+WRantTPUbVmT1V6UOdK6qi3E9xybYSxHJF4+qLR7Pf+qNZheEwV2
         h7ZIxewEoFoHHItI2G/5kN7OOeOXj/VgkKqtU1qrAI6Dq/13Afv5RnvUiceodpmhRAkH
         Efiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801386; x=1721406186;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2tAQCFotTkzWpbcCEY17RKs5ihbwYU4L2egMLjkuPzI=;
        b=vlZaCNbHrZBsVLuswV9AaBUzomjvcWgBZ2PXdKOcLrcmhCvKb/2XrmWESSfAxL2BfS
         GUgWnl2rr5yM0bVv8RsISNfPlNd92QuT/v9jD0xs+ahZWQ3EwCkt9AiXlvqFo4bt1VNT
         3ZxqbiS9lyahQa7TJlFwM/GFlNa1G9ttNtOCN+HUEoixPO7cy6zEULibhbewZL51JinP
         Lv10HHrVwfhP455F9I2azibq75pu/kqkZde82fkPXa5b0hb9C7cAy5M/vMd4KD8KO392
         fd1EH8Z1H6w9JiSY9IAwQuaYz/0p4MsQgRYyjzT+bRuQP2nMUWIT5+11dQ4JNtQJzrKP
         1OXg==
X-Gm-Message-State: AOJu0YxcsZgf5JrNpPqnsRFuIQU/fbtAlS9K+sZEyZnkHQxqM+WFsfxa
	YVoN18/SSMD9POY4dPObMRIGK/UyWD5mLwpCvig3fGRVRgysIp0ZDOxiETXN
X-Google-Smtp-Source: AGHT+IGU0EVtnlXSs7iV0mEKpEinafKa+k0K4nCPdZBW+AYcPo7BKPJxYX3zuqg01vri+w90KvZMEg==
X-Received: by 2002:a17:906:4119:b0:a72:46f3:ffc4 with SMTP id a640c23a62f3a-a780b6b196emr762454166b.26.1720801386586;
        Fri, 12 Jul 2024 09:23:06 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 7/8] xen/riscv: select CONFIG_GENREIC_PT
Date: Fri, 12 Jul 2024 18:22:56 +0200
Message-ID: <e6406b4eeb9a0efea607427109602cdd4094a7de.1720799926.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799925.git.oleksii.kurochko@gmail.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Enable GENERIC_PT functionalities for RISC-V and also introduce some
RISC-V specific functions necessary to make the GENERIC_PT code
work and compilable.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V2:
 - newly introduced patch
---
 xen/arch/riscv/Kconfig                 |  1 +
 xen/arch/riscv/include/asm/mm.h        |  9 ++++
 xen/arch/riscv/include/asm/page-bits.h | 45 ++++++++++++++++
 xen/arch/riscv/include/asm/page.h      | 73 +++++++++++++++++++++++++-
 xen/arch/riscv/mm.c                    | 63 +++++++++++++++++++---
 5 files changed, 184 insertions(+), 7 deletions(-)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 0112aa8778..9827a12d34 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_PT
 	select HAS_DEVICE_TREE
 	select HAS_PMAP
 
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index a0bdc2bc3a..c54546c275 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -42,6 +42,8 @@ static inline void *maddr_to_virt(paddr_t ma)
 #define virt_to_mfn(va)     __virt_to_mfn(va)
 #define mfn_to_virt(mfn)    __mfn_to_virt(mfn)
 
+#define pte_get_mfn(pte) maddr_to_mfn(pte_to_paddr(pte))
+
 struct page_info
 {
     /* Each frame can be threaded onto a doubly-linked list. */
@@ -238,6 +240,13 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
 
 #define PFN_ORDER(pg) ((pg)->v.free.order)
 
+/*
+ *  Generic code that works with page tables expects the page table
+ *  levels to be numbered in the order L0 -> L1 -> ...;
+ *  RISC-V uses the opposite enumeration: Lx -> L1 -> L0
+ */
+#define convert_level(level) (HYP_PT_ROOT_LEVEL - level)
+
 extern unsigned char cpu0_boot_stack[];
 
 void setup_initial_pagetables(void);
diff --git a/xen/arch/riscv/include/asm/page-bits.h b/xen/arch/riscv/include/asm/page-bits.h
index 8f1f474371..1d3a0adda6 100644
--- a/xen/arch/riscv/include/asm/page-bits.h
+++ b/xen/arch/riscv/include/asm/page-bits.h
@@ -3,6 +3,51 @@
 #ifndef __RISCV_PAGE_BITS_H__
 #define __RISCV_PAGE_BITS_H__
 
+/*
+ * PTE format:
+ * | XLEN-1  10 | 9             8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
+ *       PFN      reserved for SW   D   A   G   U   X   W   R   V
+ */
+
+#define _PAGE_PRESENT   BIT(0, UL)
+#define _PAGE_READ      BIT(1, UL)    /* Readable */
+#define _PAGE_WRITE     BIT(2, UL)    /* Writable */
+#define _PAGE_EXEC      BIT(3, UL)    /* Executable */
+#define _PAGE_USER      BIT(4, UL)    /* User */
+#define _PAGE_GLOBAL    BIT(5, UL)    /* Global */
+#define _PAGE_ACCESSED  BIT(6, UL)    /* Set by hardware on any access */
+#define _PAGE_DIRTY     BIT(7, UL)    /* Set by hardware on any write */
+#define _PAGE_SOFT      BIT(8, UL)    /* Reserved for software */
+
+/*
+ * There is no such bits in PTE format for RISC-V.
+ * Most of the definition below are just to make PT generic code happy,
+ * except _PAGE_BLOCK which is used to map 2 MB page table entries.
+ */
+#define _PAGE_BLOCK         BIT(9, UL)
+#define _PAGE_CONTIG        BIT(10, UL)
+#define _PAGE_POPULATE      BIT(11, UL)
+#define MT_NORMAL           BIT(12, UL)
+
+/* Set of bits to preserve across pte_modify() */
+#define _PAGE_CHG_MASK  (~(unsigned long)(_PAGE_PRESENT | _PAGE_READ |  \
+                         _PAGE_WRITE | _PAGE_EXEC | \
+                         _PAGE_USER | _PAGE_GLOBAL))
+
+#define PAGE_AI_MASK(x) ((x) & _PAGE_CHG_MASK)
+
+#define _PAGE_W_BIT     2
+#define _PAGE_XN_BIT    3
+#define _PAGE_RO_BIT    1
+
+/* TODO: move to somewhere generic part/header ? */
+#define _PAGE_XN        (1U << _PAGE_XN_BIT)
+#define _PAGE_RO        (1U << _PAGE_RO_BIT)
+#define _PAGE_W         (1U << _PAGE_W_BIT)
+#define PAGE_XN_MASK(x) (((x) >> _PAGE_XN_BIT) & 0x1U)
+#define PAGE_RO_MASK(x) (((x) >> _PAGE_RO_BIT) & 0x1U)
+#define PAGE_W_MASK(x)  (((x) >> _PAGE_W_BIT) & 0x1U)
+
 #define PAGE_SHIFT              12 /* 4 KiB Pages */
 #define PADDR_BITS              56 /* 44-bit PPN */
 
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 339074d502..bb2da05693 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -33,6 +33,7 @@
 #define PTE_LEAF_DEFAULT            (PTE_VALID | PTE_READABLE | PTE_WRITABLE)
 #define PTE_TABLE                   (PTE_VALID)
 
+#define PAGE_HYPERVISOR_RO          (PTE_VALID | PTE_READABLE)
 #define PAGE_HYPERVISOR_RW          (PTE_VALID | PTE_READABLE | PTE_WRITABLE)
 
 #define PAGE_HYPERVISOR             PAGE_HYPERVISOR_RW
@@ -42,13 +43,68 @@
 
 #define pt_index(lvl, va) (pt_linear_offset((lvl), (va)) & VPN_MASK)
 
-/* Page Table entry */
+#define FIRST_SIZE (XEN_PT_LEVEL_SIZE(2))
+
+#define TABLE_OFFSET(offs) (_AT(unsigned int, offs) & ((_AC(1, U) << PAGETABLE_ORDER) - 1))
+
+#if RV_STAGE1_MODE > SATP_MODE_SV48
+#error "need to to update DECLARE_OFFSETS macros"
+#else
+
+#define l0_table_offset(va) TABLE_OFFSET(pt_linear_offset(0, va))
+#define l1_table_offset(va) TABLE_OFFSET(pt_linear_offset(1, va))
+#define l2_table_offset(va) TABLE_OFFSET(pt_linear_offset(2, va))
+#define l3_table_offset(va) TABLE_OFFSET(pt_linear_offset(3, va))
+
+/* Generate an array @var containing the offset for each level from @addr */
+#define DECLARE_OFFSETS(var, addr)          \
+    const unsigned int var[4] = {           \
+        l0_table_offset(addr),              \
+        l1_table_offset(addr),              \
+        l2_table_offset(addr),              \
+        l3_table_offset(addr)               \
+    }
+
+#endif
+
 typedef struct {
+    unsigned long v:1;
+    unsigned long r:1;
+    unsigned long w:1;
+    unsigned long x:1;
+    unsigned long u:1;
+    unsigned long g:1;
+    unsigned long a:1;
+    unsigned long d:1;
+    unsigned long rsw:2;
+#if RV_STAGE1_MODE == SATP_MODE_SV39
+    unsigned long ppn0:9;
+    unsigned long ppn1:9;
+    unsigned long ppn2:26;
+    unsigned long rsw2:7;
+    unsigned long pbmt:2;
+    unsigned long n:1;
+#elif RV_STAGE1_MODE == SATP_MODE_SV48
+    unsigned long ppn0:9;
+    unsigned long ppn1:9;
+    unsigned long ppn2:9;
+    unsigned long ppn3:17;
+    unsigned long rsw2:7;
+    unsigned long pbmt:2;
+    unsigned long n:1;
+#else
+#error "Add proper bits for SATP_MODE"
+#endif
+} pt_t;
+
+/* Page Table entry */
+typedef union {
 #ifdef CONFIG_RISCV_64
     uint64_t pte;
 #else
     uint32_t pte;
 #endif
+pt_t bits;
 } pte_t;
 
 pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr);
@@ -69,6 +125,21 @@ static inline bool pte_is_valid(pte_t p)
     return p.pte & PTE_VALID;
 }
 
+inline bool pte_is_table(const pte_t p, unsigned int level)
+{
+    (void) level;
+
+    return (((p.pte) & (PTE_VALID
+                       | PTE_READABLE
+                       | PTE_WRITABLE
+                       | PTE_EXECUTABLE)) == PTE_VALID);
+}
+
+static inline bool pte_is_mapping(const pte_t pte, unsigned int level)
+{
+    return !pte_is_table(pte, level);
+}
+
 static inline void invalidate_icache(void)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 445319af08..44f36359c8 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -362,13 +362,64 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     return -1;
 }
 
-int map_pages_to_xen(unsigned long virt,
-                     mfn_t mfn,
-                     unsigned long nr_mfns,
-                     unsigned int flags)
+const mfn_t get_root_page(void)
 {
-    BUG_ON("unimplemented");
-    return -1;
+    unsigned long root_maddr = csr_read(CSR_SATP) << PAGE_SHIFT;
+
+    return maddr_to_mfn(root_maddr);
+}
+
+/*
+ * Check whether the contiguous bit can be set. Return the number of
+ * contiguous entry allowed. If not allowed, return 1.
+ */
+unsigned int xen_pt_check_contig(unsigned long vfn, mfn_t mfn,
+                                 unsigned int level, unsigned long left,
+                                 unsigned int flags)
+{
+    /* there is no contig bit in RISC-V */
+    return 1;
+}
+
+void set_pte_table_bit(pte_t *pte, unsigned int tbl_bit_val)
+{
+    /* table bit for RISC-V is always equal to PTE_TABLE */
+    (void) tbl_bit_val;
+
+    pte->pte |= PTE_TABLE;
+}
+
+bool sanity_arch_specific_pte_checks(pte_t entry)
+{
+    /* there is no RISC-V specific PTE checks */
+    return true;
+}
+
+unsigned int get_contig_bit(pte_t entry)
+{
+    /* there is no contig bit */
+    (void) entry;
+
+    return 0;
+}
+
+void set_pte_permissions(pte_t *pte, unsigned int flags)
+{
+    pte->bits.r = PAGE_RO_MASK(flags);
+    pte->bits.x = ~PAGE_XN_MASK(flags);
+    pte->bits.w = PAGE_W_MASK(flags);
+
+    pte->pte |= PTE_ACCESSED | PTE_DIRTY;
+}
+
+inline void flush_xen_tlb_range_va(vaddr_t va,
+                                   unsigned long size)
+{
+    /* TODO: implement  flush of specific range va */
+    (void) va;
+    (void) size;
+
+    asm volatile("sfence.vma");
 }
 
 static inline pte_t mfn_to_pte(mfn_t mfn)
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:23:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758173.1167577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ38-0000wX-B2; Fri, 12 Jul 2024 16:23:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758173.1167577; Fri, 12 Jul 2024 16:23:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ38-0000v4-10; Fri, 12 Jul 2024 16:23:10 +0000
Received: by outflank-mailman (input) for mailman id 758173;
 Fri, 12 Jul 2024 16: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSJ36-00088h-PV
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:23:08 +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 05fd12a3-406b-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 18:23:07 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a77cb7c106dso279992566b.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:23:07 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ffa13sm358464966b.129.2024.07.12.09.23.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09:23: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: 05fd12a3-406b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801387; x=1721406187; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QWR9u/DFztx4X5hMN6i8BpIu/Ck9lY/W4gNwlahQKjY=;
        b=IbGpmWA7GNrxKblnL522RZP4bMPWRYFjCFvrKYy5iElG5mCndPXe+xmiDOV1I1aVu3
         Arf9BuotPRj/3c4KF0bmDpWcmNuCbcmDCzGeGgm4G+I9CROPrqOUSgyg3gwTWfz9QkHJ
         fb7kTc35QtJmEcqhDWV7LhvhV79yJauPUjZmH/zJpuIxWrrOzVHuYAyoeuzk7/6cLzfc
         JcS85kB/9jD1HBSbe/frzgZte8MqCfbcrUZVdj9qNf6La2vX2hmpD5F7IzIz9xiTjBGD
         8Wz8fAu/CG//ZEf5u6Sb0aMnpDsMvUncvPhga0PLNGa90x6CGR1xNGylbrlOBS8gZiM6
         7Ytg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801387; x=1721406187;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=QWR9u/DFztx4X5hMN6i8BpIu/Ck9lY/W4gNwlahQKjY=;
        b=AzcbEazI6Ftrm18j1D6eCygRjCr/+xyGuoGTmUij2zT0zgzTPdPhL/uFEK8WpR6gbS
         edbCPrvlYWuzGR6SqHc7mmQLYcaK6tb/6/V/diLK+/9eSxVuoc3+Nl6BBn+rX936tHJd
         gj7ncEqMx/Ee1mrLdFcbeE26U6sxS+8DyNHDts2Fv7dVEicPi6Bh7BnATRtNRPtZUuUi
         mrUc0K8xUZCVlNnCfWrE7iGrEwAea1sNPeIa0NTKWbJj4Wm55KhQu6oW6etRuWA+YvU0
         n1gT7f6gERFbhbHi/251MZrD7PTdJztdJgg1G8eka6UUQAK6IB99WBVxLZk0cbv4Sjoa
         hqAQ==
X-Gm-Message-State: AOJu0YyJPhGl+Jzmqrgsr4pFu5JUTAzi3iHZvQ6TmbnQBgfRBzHiDUW2
	FXHPZXRGtoNuu/tPDEt19nnWFcXMaJ0QCEnJggqeKfcf4x/SuCQT1T5gfO5r
X-Google-Smtp-Source: AGHT+IEngSyXRFQLz0VWoMksFEQJXVAngrEfZ9SU/Ck1cjg53Eo85Fox/gBvL/miOp9/VkauMcJ5rQ==
X-Received: by 2002:a17:906:f588:b0:a77:c364:c4f3 with SMTP id a640c23a62f3a-a780b8855dcmr1076082166b.55.1720801385801;
        Fri, 12 Jul 2024 09:23:05 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 6/8] xen/riscv: introduce generic Xen page table handling
Date: Fri, 12 Jul 2024 18:22:55 +0200
Message-ID: <f2d7f538edb7db8990bf26b791df9da3d390bf05.1720799926.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799925.git.oleksii.kurochko@gmail.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

At least, between Arm and RISC-V most of the code related to Xen page
table handling are common.

This GENERIC_PT code is based on Arm's arm/mmu/pt.c except some minor
changes such as introduction of the following functions:
  * get_root_page()
  * xen_pt_check_contig()
  * set_pte_table_bit()
  * sanity_arch_specific_pte_checks()
  * get_contig_bit()
  * set_pte_permissions()
  * flush_xen_tlb_range_va()
It was done because not every functions has the generic pte_flags and
it could be a different positions of the PTE bits in a PTE.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V2:
 - newly introduced patch
---
 xen/common/Kconfig   |   5 +
 xen/common/Makefile  |   1 +
 xen/common/mmu/pt.c  | 441 +++++++++++++++++++++++++++++++++++++++++++
 xen/include/xen/mm.h |  24 +++
 4 files changed, 471 insertions(+)
 create mode 100644 xen/common/mmu/pt.c

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 565ceda741..6534b77cc9 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -47,6 +47,11 @@ config ARCH_MAP_DOMAIN_PAGE
 config GENERIC_BUG_FRAME
 	bool
 
+config GENERIC_PT
+	bool
+	help
+	  Introduces common function to work with page table when MMU is enabled.
+
 config HAS_ALTERNATIVE
 	bool
 
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 21359bab02..e1fb6a5fe8 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -2,6 +2,7 @@ obj-$(CONFIG_ARGO) += argo.o
 obj-y += bitmap.o
 obj-bin-$(CONFIG_SELF_TESTS) += bitops.init.o
 obj-$(CONFIG_GENERIC_BUG_FRAME) += bug.o
+obj-$(CONFIG_GENERIC_PT) += mmu/pt.o
 obj-$(CONFIG_HYPFS_CONFIG) += config_data.o
 obj-$(CONFIG_CORE_PARKING) += core_parking.o
 obj-y += cpu.o
diff --git a/xen/common/mmu/pt.c b/xen/common/mmu/pt.c
new file mode 100644
index 0000000000..7e488eba24
--- /dev/null
+++ b/xen/common/mmu/pt.c
@@ -0,0 +1,441 @@
+#include <xen/bug.h>
+#include <xen/domain_page.h>
+#include <xen/errno.h>
+#include <xen/mm.h>
+#include <xen/mm-frame.h>
+#include <xen/pmap.h>
+#include <xen/spinlock.h>
+
+/* Sanity check of the entry */
+static bool xen_pt_check_entry(pte_t entry, mfn_t mfn, unsigned int level,
+                               unsigned int flags)
+{
+    /* Sanity check when modifying an entry. */
+    if ( (flags & _PAGE_PRESENT) && mfn_eq(mfn, INVALID_MFN) )
+    {
+        /* We don't allow modifying an invalid entry. */
+        if ( !pte_is_valid(entry) )
+        {
+            printk("Modifying invalid entry is not allowed.\n");
+            return false;
+        }
+
+        /* We don't allow modifying a table entry */
+        if ( !pte_is_mapping(entry, level) )
+        {
+            printk("Modifying a table entry is not allowed.\n");
+            return false;
+        }
+
+        if ( !sanity_arch_specific_pte_checks(entry) )
+        {
+            printk("sanity check failed\n");
+            return false;
+        }
+    }
+    /* Sanity check when inserting a mapping */
+    else if ( flags & _PAGE_PRESENT )
+    {
+        /* We should be here with a valid MFN. */
+        ASSERT(!mfn_eq(mfn, INVALID_MFN));
+
+        /*
+         * We don't allow replacing any valid entry.
+         *
+         * Note that the function xen_pt_update() relies on this
+         * assumption and will skip the TLB flush. The function will need
+         * to be updated if the check is relaxed.
+         */
+        if ( pte_is_valid(entry) )
+        {
+            if ( pte_is_mapping(entry, level) )
+                printk("Changing MFN for a valid entry is not allowed (%#"PRI_mfn" -> %#"PRI_mfn").\n",
+                          mfn_x(pte_get_mfn(entry)), mfn_x(mfn));
+            else
+                printk("Trying to replace a table with a mapping.\n");
+            return false;
+        }
+    }
+    /* Sanity check when removing a mapping. */
+    else if ( (flags & (_PAGE_PRESENT|_PAGE_POPULATE)) == 0 )
+    {
+        /* We should be here with an invalid MFN. */
+        ASSERT(mfn_eq(mfn, INVALID_MFN));
+
+        /* We don't allow removing a table */
+        if ( pte_is_table(entry, level) )
+        {
+            printk("Removing a table is not allowed.\n");
+            return false;
+        }
+
+        if ( get_contig_bit(entry) )
+        {
+            printk("Removing entry with contiguous bit set is not allowed.\n");
+            return false;
+        }
+    }
+    /* Sanity check when populating the page-table. No check so far. */
+    else
+    {
+        ASSERT(flags & _PAGE_POPULATE);
+        /* We should be here with an invalid MFN */
+        ASSERT(mfn_eq(mfn, INVALID_MFN));
+    }
+
+    return true;
+}
+
+static pte_t *xen_map_table(mfn_t mfn)
+{
+    /*
+     * During early boot, map_domain_page() may be unusable. Use the
+     * PMAP to map temporarily a page-table.
+     */
+    if ( system_state == SYS_STATE_early_boot )
+        return pmap_map(mfn);
+
+    return map_domain_page(mfn);
+}
+
+static void xen_unmap_table(const pte_t *table)
+{
+    /*
+     * During early boot, xen_map_table() will not use map_domain_page()
+     * but the PMAP.
+     */
+    if ( system_state == SYS_STATE_early_boot )
+        pmap_unmap(table);
+    else
+        unmap_domain_page(table);
+}
+
+static int create_xen_table(pte_t *entry)
+{
+    mfn_t mfn;
+    void *p;
+    pte_t pte;
+
+    if ( system_state != SYS_STATE_early_boot )
+    {
+        struct page_info *pg = alloc_domheap_page(NULL, 0);
+
+        if ( pg == NULL )
+            return -ENOMEM;
+
+        mfn = page_to_mfn(pg);
+    }
+    else
+        mfn = alloc_boot_pages(1, 1);
+
+    p = xen_map_table(mfn);
+    clear_page(p);
+    xen_unmap_table(p);
+
+    pte = mfn_to_xen_entry(mfn, MT_NORMAL);
+
+    set_pte_table_bit(&pte, 1);
+
+    write_pte(entry, pte);
+
+    return 0;
+}
+
+#define XEN_TABLE_MAP_FAILED 0
+#define XEN_TABLE_SUPER_PAGE 1
+#define XEN_TABLE_NORMAL_PAGE 2
+
+/*
+ * Take the currently mapped table, find the corresponding entry,
+ * and map the next table, if available.
+ *
+ * The read_only parameters indicates whether intermediate tables should
+ * be allocated when not present.
+ *
+ * Return values:
+ *  XEN_TABLE_MAP_FAILED: Either read_only was set and the entry
+ *  was empty, or allocating a new page failed.
+ *  XEN_TABLE_NORMAL_PAGE: next level mapped normally
+ *  XEN_TABLE_SUPER_PAGE: The next entry points to a superpage.
+ */
+static int xen_pt_next_level(bool read_only, unsigned int level,
+                             pte_t **table, unsigned int offset)
+{
+    pte_t *entry;
+    int ret;
+    mfn_t mfn;
+
+    entry = *table + offset;
+
+    if ( !pte_is_valid(*entry) )
+    {
+        if ( read_only )
+            return XEN_TABLE_MAP_FAILED;
+
+        ret = create_xen_table(entry);
+        if ( ret )
+            return XEN_TABLE_MAP_FAILED;
+    }
+
+    if ( pte_is_mapping(*entry, level) )
+    {
+        return XEN_TABLE_SUPER_PAGE;
+    }
+
+    mfn = pte_get_mfn(*entry);
+
+    xen_unmap_table(*table);
+    *table = xen_map_table(mfn);
+
+    return XEN_TABLE_NORMAL_PAGE;
+}
+
+/* Update an entry at the level @target. */
+static int xen_pt_update_entry(mfn_t root, unsigned long virt,
+                               mfn_t mfn, unsigned int arch_target,
+                               unsigned int flags)
+{
+    int rc;
+    unsigned int level = convert_level(HYP_PT_ROOT_LEVEL);
+    unsigned int arch_level = convert_level(level);
+    unsigned int target = convert_level(arch_target);
+    pte_t *table;
+    /*
+     * The intermediate page tables are read-only when the MFN is not valid
+     * and we are not populating page table.
+     * This means we either modify permissions or remove an entry.
+     */
+    bool read_only = mfn_eq(mfn, INVALID_MFN) && !(flags & _PAGE_POPULATE);
+    pte_t pte, *entry;
+
+    /* convenience aliases */
+    DECLARE_OFFSETS(offsets, (paddr_t)virt);
+
+    /* _PAGE_POPULATE and _PAGE_PRESENT should never be set together. */
+    ASSERT((flags & (_PAGE_POPULATE|_PAGE_PRESENT)) != (_PAGE_POPULATE|_PAGE_PRESENT));
+
+    table = xen_map_table(root);
+    for ( ; level < target; level++, arch_level = convert_level(level) )
+    {
+        rc = xen_pt_next_level(read_only, arch_level, &table, offsets[arch_level]);
+        if ( rc == XEN_TABLE_MAP_FAILED )
+        {
+            /*
+             * We are here because xen_pt_next_level has failed to map
+             * the intermediate page table (e.g the table does not exist
+             * and the pt is read-only). It is a valid case when
+             * removing a mapping as it may not exist in the page table.
+             * In this case, just ignore it.
+             */
+            if ( flags & (_PAGE_PRESENT | _PAGE_POPULATE) )
+            {
+                printk("%s: Unable to map level %u\n", __func__, arch_level);
+                rc = -ENOENT;
+                goto out;
+            }
+            else
+            {
+                rc = 0;
+                goto out;
+            }
+        }
+        else if ( rc != XEN_TABLE_NORMAL_PAGE ) {
+            break;
+        }
+    }
+
+    if ( arch_level != arch_target )
+    {
+        printk("%s: Shattering superpage is not supported\n", __func__);
+        rc = -EOPNOTSUPP;
+        goto out;
+    }
+
+    entry = table + offsets[arch_level];
+
+    rc = -EINVAL;
+    if ( !xen_pt_check_entry(*entry, mfn, arch_level, flags) )
+        goto out;
+
+    /* If we are only populating page-table, then we are done. */
+    rc = 0;
+    if ( flags & _PAGE_POPULATE )
+        goto out;
+
+    /* We are removing the page */
+    if ( !(flags & _PAGE_PRESENT) )
+        memset(&pte, 0x00, sizeof(pte));
+    else
+    {
+        /* We are inserting a mapping => Create new pte. */
+        if ( !mfn_eq(mfn, INVALID_MFN) )
+        {
+            pte = mfn_to_xen_entry(mfn, PAGE_AI_MASK(flags));
+
+            set_pte_table_bit(&pte, (arch_level == 3));
+        }
+        else /* We are updating the permission => Copy the current pte. */
+            pte = *entry;
+
+        set_pte_permissions(&pte, flags);
+    }
+
+    write_pte(entry, pte);
+
+    rc = 0;
+
+out:
+    xen_unmap_table(table);
+
+    return rc;
+}
+
+static DEFINE_SPINLOCK(xen_pt_lock);
+
+/* Return the level where mapping should be done */
+int xen_pt_mapping_level(unsigned long vfn, mfn_t mfn, unsigned long nr,
+                                unsigned int flags)
+{
+    unsigned int level = 0;
+    unsigned long mask;
+    unsigned int i = 0;
+
+    /*
+     * Don't take into account the MFN when removing mapping (i.e
+     * MFN_INVALID) to calculate the correct target order.
+     *
+     * Per the Arm Arm, `vfn` and `mfn` must be both superpage aligned.
+     * They are or-ed together and then checked against the size of
+     * each level.
+     *
+     * `left` is not included and checked separately to allow
+     * superpage mapping even if it is not properly aligned (the
+     * user may have asked to map 2MB + 4k).
+     */
+    mask = !mfn_eq(mfn, INVALID_MFN) ? mfn_x(mfn) : 0;
+    mask |= vfn;
+
+    /*
+    * Always use level 3 mapping unless the caller request block
+    * mapping.
+    */
+    if ( likely(!(flags & _PAGE_BLOCK)) )
+        return level;
+
+    for ( i = 0; i < CONFIG_PAGING_LEVELS; i++ )
+    {
+        if ( !(mask & (BIT(XEN_PT_LEVEL_ORDER(convert_level(i)), UL) - 1)) &&
+            (nr >= BIT(XEN_PT_LEVEL_ORDER(convert_level(i)), UL)) )
+        {
+            level = convert_level(i);
+            break;
+        }
+    }
+
+    return level;
+}
+
+static int xen_pt_update(unsigned long virt,
+                         mfn_t mfn,
+                         /* const on purpose as it is used for TLB flush */
+                         const unsigned long nr_mfns,
+                         unsigned int flags)
+{
+    int rc = 0;
+    unsigned long vfn = virt >> PAGE_SHIFT;
+    unsigned long left = nr_mfns;
+
+    /*
+     * For arm32, page-tables are different on each CPUs. Yet, they share
+     * some common mappings. It is assumed that only common mappings
+     * will be modified with this function.
+     *
+     * XXX: Add a check.
+     */
+    const mfn_t root = get_root_page();
+
+    /*
+     * The hardware was configured to forbid mapping both writeable and
+     * executable.
+     * When modifying/creating mapping (i.e _PAGE_PRESENT is set),
+     * prevent any update if this happen.
+     */
+    if ( (flags & _PAGE_PRESENT) && !PAGE_RO_MASK(flags) &&
+         !PAGE_XN_MASK(flags) )
+    {
+        printk("Mappings should not be both Writeable and Executable.\n");
+        return -EINVAL;
+    }
+
+    if ( flags & _PAGE_CONTIG )
+    {
+        printk("_PAGE_CONTIG is an internal only flag.\n");
+        return -EINVAL;
+    }
+
+    if ( !IS_ALIGNED(virt, PAGE_SIZE) )
+    {
+        printk("The virtual address is not aligned to the page-size.\n");
+        return -EINVAL;
+    }
+
+    spin_lock(&xen_pt_lock);
+
+    while ( left )
+    {
+        unsigned int order, level, nr_contig, new_flags;
+
+        level = xen_pt_mapping_level(vfn, mfn, left, flags);
+        order = XEN_PT_LEVEL_ORDER(level);
+
+        ASSERT(left >= BIT(order, UL));
+
+        /*
+         * Check if we can set the contiguous mapping and update the
+         * flags accordingly.
+         */
+        nr_contig = xen_pt_check_contig(vfn, mfn, level, left, flags);
+        new_flags = flags | ((nr_contig > 1) ? _PAGE_CONTIG : 0);
+
+        for ( ; nr_contig > 0; nr_contig-- )
+        {
+            rc = xen_pt_update_entry(root, vfn << PAGE_SHIFT, mfn, level,
+                                     new_flags);
+            if ( rc )
+                break;
+
+            vfn += 1U << order;
+            if ( !mfn_eq(mfn, INVALID_MFN) )
+                mfn = mfn_add(mfn, 1U << order);
+
+            left -= (1U << order);
+        }
+
+        if ( rc )
+            break;
+    }
+
+    /*
+     * The TLBs flush can be safely skipped when a mapping is inserted
+     * as we don't allow mapping replacement (see xen_pt_check_entry()).
+     *
+     * For all the other cases, the TLBs will be flushed unconditionally
+     * even if the mapping has failed. This is because we may have
+     * partially modified the PT. This will prevent any unexpected
+     * behavior afterwards.
+     */
+    if ( !((flags & _PAGE_PRESENT) && !mfn_eq(mfn, INVALID_MFN)) )
+        flush_xen_tlb_range_va(virt, PAGE_SIZE * nr_mfns);
+
+    spin_unlock(&xen_pt_lock);
+
+    return rc;
+}
+
+int map_pages_to_xen(unsigned long virt,
+                     mfn_t mfn,
+                     unsigned long nr_mfns,
+                     unsigned int flags)
+{
+    return xen_pt_update(virt, mfn, nr_mfns, flags);
+}
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index 7561297a75..47cd5326da 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -648,4 +648,28 @@ static inline void put_page_alloc_ref(struct page_info *page)
     }
 }
 
+#ifdef CONFIG_GENERIC_PT
+
+/* is needed because of pte_t. */
+#include <asm/page.h>
+
+const mfn_t get_root_page(void);
+
+unsigned int xen_pt_check_contig(unsigned long vfn, mfn_t mfn,
+                                 unsigned int level, unsigned long left,
+                                 unsigned int flags);
+
+void set_pte_table_bit(pte_t *pte, unsigned int tbl_bit_val);
+
+bool sanity_arch_specific_pte_checks(pte_t entry);
+
+unsigned int get_contig_bit(pte_t entry);
+
+void set_pte_permissions(pte_t *pte, unsigned int flags);
+
+void flush_xen_tlb_range_va(vaddr_t va,
+                            unsigned long size);
+
+#endif /* CONFIG_GENERIC_PT */
+
 #endif /* __XEN_MM_H__ */
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:23:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:23:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758174.1167586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ39-00017k-3i; Fri, 12 Jul 2024 16:23:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758174.1167586; Fri, 12 Jul 2024 16:23:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ38-00013r-E8; Fri, 12 Jul 2024 16:23:10 +0000
Received: by outflank-mailman (input) for mailman id 758174;
 Fri, 12 Jul 2024 16: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=1Ov5=OM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sSJ37-00088h-44
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:23:09 +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 063835e9-406b-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 18:23:08 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a77b60cafecso282128466b.1
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 09:23:08 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a780a7ffa13sm358464966b.129.2024.07.12.09.23.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 12 Jul 2024 09: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: 063835e9-406b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720801387; x=1721406187; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UuYdT22MRsxNj+m/qxvp3vMz0BQyhkZgd5tvMn3xWjA=;
        b=f9gEAq/JW4UpwcJ+aJR3cxPChdOMCQvo++QIIJ0v8VsIgAO2o+EeYFWTj+K/jjlzoa
         R/AyZISaxVXJSGqzwvZpBDPdWl7lJOuQJ7HXSLo6ExHnUxGSzsmfr9asuYBtbOCj5x43
         q7/rP2C/Wc37u/eWtcv6or02e9Twos48MQMZgRYW1EZ6NXaVJ5ywGaVJLRc7QnrhMQx9
         xFW8zek/ufO7bramMp2xIvgsmxENUN6o2TRD4iUTtS863CisiufVL1pjlkmm4LfTJsAC
         BMp6be54nLC2O59HKthqbUuDf14S0ZrH7TBTCxaNrXNF3oLu8AP0+Xv7aFYjd/CmxxQC
         eVSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720801387; x=1721406187;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=UuYdT22MRsxNj+m/qxvp3vMz0BQyhkZgd5tvMn3xWjA=;
        b=wjs2OHbTDlw9UERxLQlhjGLgTFLBE6By/rlfzsE3Ww4wEOEZd3l69yWvBGh5zSR2c+
         DHzqL0benaJNu1dhoiXKxRK7mWocJXzleKl0muT7T9vMR2IQs5hqyxDer6aBsMaKVOhf
         LZniPqE4kFaq5FKduCwoxwVbLnT8clsYQp0kwrQH65Hu73cIUjZpcoFaZjjEENZFJGCr
         iGLuf7n3uq1l4CUcjUbXqA7Q4o9nguUkxfJOgLDLBlbD21nQLJxTioZggAM1wKTZfu8Y
         PGKyutb4GhOAeGO5JQrAdcHARlHcfpmgb2u8D0yC3/XY4SsjgMveqIR+V5tYjBsKOAOc
         NhOw==
X-Gm-Message-State: AOJu0YyRzJ69AeKEC1mgauYFuV7i8HLk0kcwqpVKBCDgUgPa1LapR2MR
	gGisdFwKAqHGTuNfyPhxZQJuR61t/sPyzPOw2/xVET5dnvamcE4K8iBFlBm4
X-Google-Smtp-Source: AGHT+IGg4tm4P/AvfgncRObckWKiXb1PdelnW1p4IDShZAQ1Vp7LmwSYxZ2krh9P2f1G2HU2QMYoTQ==
X-Received: by 2002:a17:907:7e9e:b0:a75:1069:5b94 with SMTP id a640c23a62f3a-a780b6b1838mr1083453766b.21.1720801387437;
        Fri, 12 Jul 2024 09:23:07 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 8/8] xen/riscv: introduce early_fdt_map()
Date: Fri, 12 Jul 2024 18:22:57 +0200
Message-ID: <4e4f94817fb3bba5f52336ea0b4491f7bc867d49.1720799926.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1720799925.git.oleksii.kurochko@gmail.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce function which allows to map FDT to Xen.

Also, initialization of device_tree_flattened happens using early_fdt_map.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V2:
 - rework early_fdt_map to use map_pages_to_xen()
 - move call early_fdt_map() to C code after MMU is enabled.
---
 xen/arch/riscv/include/asm/mm.h |  2 ++
 xen/arch/riscv/mm.c             | 55 +++++++++++++++++++++++++++++++++
 xen/arch/riscv/setup.c          |  9 ++++++
 3 files changed, 66 insertions(+)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index c54546c275..a12ef5bb63 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -266,4 +266,6 @@ static inline unsigned int arch_get_dma_bitsize(void)
 
 void setup_fixmap_mappings(void);
 
+void* early_fdt_map(paddr_t fdt_paddr);
+
 #endif /* _ASM_RISCV_MM_H */
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 44f36359c8..428c26b636 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -1,13 +1,16 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bootfdt.h>
 #include <xen/bug.h>
 #include <xen/compiler.h>
 #include <xen/init.h>
 #include <xen/kernel.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/macros.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
 #include <xen/sections.h>
+#include <xen/sizes.h>
 
 #include <asm/early_printk.h>
 #include <asm/csr.h>
@@ -435,3 +438,55 @@ inline pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr)
 
     return mfn_to_pte(mfn);
 }
+
+void * __init early_fdt_map(paddr_t fdt_paddr)
+{
+    /* We are using 2MB superpage for mapping the FDT */
+    paddr_t base_paddr = fdt_paddr & XEN_PT_LEVEL_MAP_MASK(1);
+    paddr_t offset;
+    void *fdt_virt;
+    uint32_t size;
+    int rc;
+
+    /*
+     * 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;
+
+    /* The FDT is mapped using 2MB superpage */
+    BUILD_BUG_ON(BOOT_FDT_VIRT_START % SZ_2M);
+
+    rc = map_pages_to_xen(BOOT_FDT_VIRT_START, maddr_to_mfn(base_paddr),
+                          SZ_2M >> PAGE_SHIFT,
+                          PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
+    if ( rc )
+        panic("Unable to map the device-tree.\n");
+
+    offset = fdt_paddr % XEN_PT_LEVEL_SIZE(1);
+    fdt_virt = (void *)BOOT_FDT_VIRT_START + offset;
+
+    if ( fdt_magic(fdt_virt) != FDT_MAGIC )
+        return NULL;
+
+    size = fdt_totalsize(fdt_virt);
+    if ( size > BOOT_FDT_VIRT_SIZE )
+        return NULL;
+
+    if ( (offset + size) > SZ_2M )
+    {
+        rc = map_pages_to_xen(BOOT_FDT_VIRT_START + SZ_2M,
+                              maddr_to_mfn(base_paddr + SZ_2M),
+                              SZ_2M >> PAGE_SHIFT,
+                              PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
+        if ( rc )
+            panic("Unable to map the device-tree\n");
+    }
+
+    return fdt_virt;
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 13f0e8c77d..21628b7300 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -2,6 +2,7 @@
 
 #include <xen/bug.h>
 #include <xen/compile.h>
+#include <xen/device_tree.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 
@@ -48,6 +49,14 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     setup_fixmap_mappings();
 
+    device_tree_flattened = early_fdt_map(dtb_addr);
+    if ( device_tree_flattened )
+        panic("Invalid device tree blob at physical address %#lx.\n"
+              "The DTB must be 8-byte aligned and must not exceed %lld "
+              "bytes in size.\n\n"
+              "Please check your bootloader.\n",
+              dtb_addr, BOOT_FDT_VIRT_SIZE);
+
     printk("All set up\n");
 
     for ( ;; )
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 16:29:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:29:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758224.1167610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJ8t-0005oU-Tu; Fri, 12 Jul 2024 16:29:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758224.1167610; Fri, 12 Jul 2024 16:29: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 1sSJ8t-0005oN-Ql; Fri, 12 Jul 2024 16:29:07 +0000
Received: by outflank-mailman (input) for mailman id 758224;
 Fri, 12 Jul 2024 16:29:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sC2F=OM=bounce.vates.tech=bounce-md_30504962.669159ce.v1-a6693b26e05f4ee09beeb3d29e2b7f24@srs-se1.protection.inumbo.net>)
 id 1sSJ8s-0005oH-IT
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:29:06 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d9f4845f-406b-11ef-8776-851b0ebba9a2;
 Fri, 12 Jul 2024 18:29:04 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WLH9B5cxYz6CQMYB
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 16:29:02 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a6693b26e05f4ee09beeb3d29e2b7f24; Fri, 12 Jul 2024 16:29:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9f4845f-406b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720801742; x=1721062242;
	bh=1rVGXqJHOyhrSpxal1tJKvVF6QyHwGarvDtXEHrLXgo=;
	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=NJahI3LOwl8VbXGrfOdXd1r6YvDqkEvu8O137L5Qow+J1sQpPVCefLhfKjetN8aVx
	 ZwcMgMGCigwFgi/wsKdiQfQ7BFTdGO5E9T+DLQdLZxqRZI97OP40DlEbAyi/Y9CEhg
	 944hMIcDajxV9uQTmsvufpM0LJZoNhUvRg+2Z7aPZnwHoChaecA8kLzKxFxCxeUkB9
	 CVH02cS9dBFlsta+5TQXETOUFC1Iy6Jljc7fdSWOhvWC+zopFoPHALPs2+REOzdpcQ
	 3KjqwWwvASOk+YO+xrJ9ajsbGJBjiwek0TnKGDlHG4sD2y8DM6ABvLPHrCHHREwnwP
	 SZVp7fpFnJE2w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720801742; x=1721062242; i=anthony.perard@vates.tech;
	bh=1rVGXqJHOyhrSpxal1tJKvVF6QyHwGarvDtXEHrLXgo=;
	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=068kYU8S8do2M8lmehRfHGSYRj+UQnGTDWYLs/tueAkSkGc1EhT6MXgilreo3F9t5
	 KDy+tNqHmmRPaiDZ7ggnNNCgf5oA2NhK2pKraDRplkxk7Ca3yNpCiRCgUtS0Km9FIG
	 MvU0V875NM+YWDdn0OlpgG6jaBJVIIn/7u/V8IhFso59+FKV5MPlGVMn90DBGuqjdj
	 3VIKcjThEAwwuR0rFvIrVLoJNjCgAowN8+bCLQ47Tp15onBN6xMIRukFAk4f+auey0
	 SxUAlvo7ggY4P88HkYsjoLDSP+agSUzKPT/cVBVSBbKf7/Jllg8v1dH4XLeRRl0kbf
	 LBJNQ2aEYftVA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2017/12]=20CI:=20Refresh=20Ubuntu=20Focal=20container=20as=2020.04-x86=5F64?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720801741557
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <ZpFZzDVDDUZWjOEh@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240712104855.3237883-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240712104855.3237883-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.a6693b26e05f4ee09beeb3d29e2b7f24?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240712:md
Date: Fri, 12 Jul 2024 16:29:02 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Jul 12, 2024 at 11:48:55AM +0100, Andrew Cooper wrote:
> Exactly as per 18.04 (Bionic).  This saves ~500M:
> 
>   registry.gitlab.com/xen-project/xen/ubuntu    20.04-x86_64           1.06GB
>   registry.gitlab.com/xen-project/xen/ubuntu    focal                  1.57GB
> 
> 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 Fri Jul 12 16:45:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 16:45:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758230.1167621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJOI-00015X-46; Fri, 12 Jul 2024 16:45:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758230.1167621; Fri, 12 Jul 2024 16: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 1sSJOI-00015Q-19; Fri, 12 Jul 2024 16:45:02 +0000
Received: by outflank-mailman (input) for mailman id 758230;
 Fri, 12 Jul 2024 16:45: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=jAYY=OM=bounce.vates.tech=bounce-md_30504962.66915d87.v1-19af8b80095d43d2ad2ae124ff8bf00a@srs-se1.protection.inumbo.net>)
 id 1sSJOG-00015K-3s
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 16:45:00 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1298843f-406e-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 18:44:58 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WLHWX0cwszB5p4mk
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 16:44:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 19af8b80095d43d2ad2ae124ff8bf00a; Fri, 12 Jul 2024 16:44: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: 1298843f-406e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1720802696; x=1721063196;
	bh=ws97YZDffOECT0G6U5lbKs5xwgFzyoilSfbfkO8W+g8=;
	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=k3YxlRvX1ekHlW9rXVHudlbW5SkUCeoS82UjYlc/8xibgLOQxKyLnb2UxbyMSpRyO
	 jtfymaMIPZocXtHwQoSfSrHh1Ld1TnqkAtApvlXnKpca4N8QREa3Do+2tEeyYpoIuM
	 E3UqQBuk8uY6Yd3hgpYBJbWghee2rczm+70JohIgNz2tMemRfYn6Jr4Nl/F1X82p56
	 MQvB0RZsJ4T4Ase6lAlk6lC5Xy2c7G7DrxweH3YtNX1kU9dKiuoggTC6Gsp9qaLR1C
	 sW48oz/dhNruophewIdw2TYTOuFAtFv3wr9htF6dNZcDJHKfAcY7Legne37MaOWt33
	 T0RzlsS/qg3vw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1720802696; x=1721063196; i=anthony.perard@vates.tech;
	bh=ws97YZDffOECT0G6U5lbKs5xwgFzyoilSfbfkO8W+g8=;
	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=UH+tgTPW7bUEUz9TqeBrSVaXC4k0Vxym0qpNZAxG3x7Gn+JqgpHjfNwLxjmKjUleO
	 CSb2M0NUjmNhYLV1CZX56w7W0SGVIlAu8UC8oz34KHYncxEgiFnMfjlQJ5j8vwr4mC
	 gmkqG6rISd9qsFCoe5uT9sXzbksSSf4aZ2e+LZFFggJS1jk7ezfVIaOLZ1r7g1p/g4
	 8Mcn1RqSH5ZpN2CMywmulcXWk8dIceRylBDXNQapiCO9AUbbu3JSgg+FOUvdwJWKOF
	 4BQ5+Gycj0da+2PdDgsRKQ8Z5rEZmRbcVyN9uS9OWe53P3sYIo8mqaFeDAhbEwKD6v
	 0WwuPPDBoh69w==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2018/12]=20CI:=20Add=20Ubuntu=2022.04=20(Jammy)=20and=2024.04=20(Noble)=20testing?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1720802694693
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Shawn Anastasio <sanastasio@raptorengineering.com>
Message-Id: <ZpFdhgyybAAOEsE8@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240712104907.3238026-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240712104907.3238026-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.19af8b80095d43d2ad2ae124ff8bf00a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240712:md
Date: Fri, 12 Jul 2024 16:44:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Jul 12, 2024 at 11:49:07AM +0100, Andrew Cooper wrote:
> The containers are exactly as per 20.04 (Focal).  However, this now brings us
> to 5 releases * 4 build jobs worth of Ubuntu testing, which is overkill.
> 
> The oldest and newest toolchains are the most likely to find problems with new
> code, so reduce the middle 3 releases (18/20/22) to just a single smoke test
> each.

That would mean a bit less `clang` build-test, but I guess that would be
mostly covered by FreeBSD testing on GitHub.

I tried to find out which version of clang were been used with this
patch applied:
    Alpine clang version 16.0.6
    Debian clang version 14.0.6
    clang version 17.0.6
    clang version 18.1.8
    clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
    Ubuntu clang version 18.1.3 (1ubuntu1)
and the versions that won't be tested anymore:
    clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
    clang version 10.0.0-4ubuntu1
    Ubuntu clang version 14.0.0-1ubuntu1.1

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

Anyway:
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 Fri Jul 12 17:01:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 17:01:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758235.1167630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSJe7-0005AP-BY; Fri, 12 Jul 2024 17:01:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758235.1167630; Fri, 12 Jul 2024 17: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 1sSJe7-0005AI-8n; Fri, 12 Jul 2024 17:01:23 +0000
Received: by outflank-mailman (input) for mailman id 758235;
 Fri, 12 Jul 2024 17:01:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSJe6-0005AC-02
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 17:01:22 +0000
Received: from mail-qv1-xf2f.google.com (mail-qv1-xf2f.google.com
 [2607:f8b0:4864:20::f2f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5bc44768-4070-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 19:01:20 +0200 (CEST)
Received: by mail-qv1-xf2f.google.com with SMTP id
 6a1803df08f44-6b5f4c7f4fbso13001076d6.2
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 10:01:20 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b61b9d9ec5sm36821706d6.30.2024.07.12.10.01.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 10:01: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: 5bc44768-4070-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720803678; x=1721408478; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uuvgAeXnlqzDxHftSTTHxRF0m9OZ1jwulAni2VqRlsI=;
        b=vAEjag6qXgfRRN7JrrRv/004VNBmTVGOukDTV8w4Cglm8axdFiakFLHp96wZiGVyCq
         j2iBu6mJk5fbdwev7RPDk5iT0EDcIB6Ujtjv4RAPwFyPuFeUN5puTDfogtV7+DEtSnY+
         4zuI1IVpU8SQHfV6f7Db7jo+PgjcPiiNU2dxc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720803678; x=1721408478;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uuvgAeXnlqzDxHftSTTHxRF0m9OZ1jwulAni2VqRlsI=;
        b=A+gUmfFXRGikiEgMYxyMYETEaGu7l4Xk7lMJzMxlqFrn12bwZcsjQIaRalcU9Uh7fE
         UD6CDE4eZA0i6w0Ji6Drboud2k6KzCCW/G7ABeCuu2NmCQlWSCGTd976CNDAY3C+n+A+
         1pWwgW0LW8TdDsinnqBL72isCJu7wNqpxkSg/mJt2DNvyPYvbkHS8z9N0VrcdkQpLica
         FcvQpu86vmxn03F8AC5XuvPSd7jtegXCZv3/BtqSnjYoI+4XFe/LY4qeaORO7Q/09adR
         ibB6JATqdA2ioOVyzk4XdMW58ZJqDWaChe/5FO9qTXMuLMpQdCLZ2oX1XpvBNf4i/tBW
         RSvw==
X-Gm-Message-State: AOJu0YzpvZanMLGyc5HRpeXUeszCnxpd2nf1o4Pt/byU8xVwJTtk8x+E
	gtS8lQ2Aru5y/LaoW/2DZiO14QdIhZv93+kz7R3B3VFGaIJ5nxt5GQ0kUuKJHA8=
X-Google-Smtp-Source: AGHT+IGE4c8eq7ViOGVlYuFMVm++Kvv0cE6i+9kr9ALY9HVu+0+xM8nFgAye+2ljWQwtXeoy/mQSSg==
X-Received: by 2002:a05:6214:e49:b0:6b5:148:736a with SMTP id 6a1803df08f44-6b61c1e1d80mr139795746d6.57.1720803678457;
        Fri, 12 Jul 2024 10:01:18 -0700 (PDT)
Message-ID: <939d1d80-b943-42e8-b67a-196a0276367f@citrix.com>
Date: Fri, 12 Jul 2024 18:01:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 18/12] CI: Add Ubuntu 22.04 (Jammy) and 24.04 (Noble)
 testing
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240712104907.3238026-1-andrew.cooper3@citrix.com> <ZpFdhgyybAAOEsE8@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZpFdhgyybAAOEsE8@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/07/2024 5:44 pm, Anthony PERARD wrote:
> On Fri, Jul 12, 2024 at 11:49:07AM +0100, Andrew Cooper wrote:
>> The containers are exactly as per 20.04 (Focal).  However, this now brings us
>> to 5 releases * 4 build jobs worth of Ubuntu testing, which is overkill.
>>
>> The oldest and newest toolchains are the most likely to find problems with new
>> code, so reduce the middle 3 releases (18/20/22) to just a single smoke test
>> each.
> That would mean a bit less `clang` build-test, but I guess that would be
> mostly covered by FreeBSD testing on GitHub.
>
> I tried to find out which version of clang were been used with this
> patch applied:
>     Alpine clang version 16.0.6
>     Debian clang version 14.0.6
>     clang version 17.0.6
>     clang version 18.1.8
>     clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
>     Ubuntu clang version 18.1.3 (1ubuntu1)
> and the versions that won't be tested anymore:
>     clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
>     clang version 10.0.0-4ubuntu1
>     Ubuntu clang version 14.0.0-1ubuntu1.1
>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Anyway:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

We could intermix Clang/GCC if we really want, but tbh (still!) the only
thing you want to use Clang for is stricter/better diagnostics.  GCC is
still a better optimising compiler for C, particularly for kernel
activities.

Also, those clang versions are entirely obsolete.  If we wanted to do
sensible testing, we'd need to be using the nightly builds and keeping
within ~18mo of the release which I think is their support window.

Also also, this testing is CC=Clang, LD=ld, which is subtly different to
the FreeBSD testing which is full-stack LLVM (so LD=lld).

There is definitely room for improvement in our Clang/LLVM testing.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 17:48:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 17:48:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758246.1167650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSKNc-0004fw-Qm; Fri, 12 Jul 2024 17:48:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758246.1167650; Fri, 12 Jul 2024 17:48:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSKNc-0004fp-Kf; Fri, 12 Jul 2024 17:48:24 +0000
Received: by outflank-mailman (input) for mailman id 758246;
 Fri, 12 Jul 2024 17:48:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSKNb-0004ff-8p; Fri, 12 Jul 2024 17:48:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSKNb-0000bX-7s; Fri, 12 Jul 2024 17:48:23 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSKNa-00073m-VU; Fri, 12 Jul 2024 17:48:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSKNa-0006zw-V1; Fri, 12 Jul 2024 17:48:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=g4bFLNkKmkX64o3JSI/kMgoa+IOhEnnqInvFChdrzDc=; b=zWedt/J858eApXH21afzBL7nOs
	gt3a5mM4BZY8cz46hIxuPaniUVe1dI4XEYuwqsIeBYJE/IULOeMN3pmAAXmXPVI2rF2QrdF8aWfEM
	ooYdB4faXMnfa5UpQNFc9rA7Nz6VeiN/45Ft081I6noYB/O0bwFY75l3VWir6dYS3YAw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186781-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186781: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=d4dbe5e101dcb86974f8dce3505b38343b83b432
X-Osstest-Versions-That:
    ovmf=807ab61359061003c154174799b1e184cb089b46
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 17:48:22 +0000

flight 186781 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186781/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 d4dbe5e101dcb86974f8dce3505b38343b83b432
baseline version:
 ovmf                 807ab61359061003c154174799b1e184cb089b46

Last test of basis   186778  2024-07-12 11:12:54 Z    0 days
Testing same since   186781  2024-07-12 16:11:08 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   807ab61359..d4dbe5e101  d4dbe5e101dcb86974f8dce3505b38343b83b432 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 18:53:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 18:53:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758259.1167660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSLO5-0004Gt-Gr; Fri, 12 Jul 2024 18:52:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758259.1167660; Fri, 12 Jul 2024 18:52: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 1sSLO5-0004Gm-CC; Fri, 12 Jul 2024 18:52:57 +0000
Received: by outflank-mailman (input) for mailman id 758259;
 Fri, 12 Jul 2024 18:52:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSLO4-0004Gc-7H; Fri, 12 Jul 2024 18:52:56 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSLO4-00021M-4u; Fri, 12 Jul 2024 18:52:56 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSLO3-00009z-Jw; Fri, 12 Jul 2024 18:52:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSLO3-00008b-JO; Fri, 12 Jul 2024 18:52:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=jv4dpUCInX9YTZmyMaGIVsM9fnsJV8fKMbBvkJbX42c=; b=hmf/Z8JNQ9jQOAjZunEmXtTYCm
	qx55jUG4P7UscmhEIxxyie+oPZQ/fG5s5RBkBXWTH5O0hhTSXO7EtyNE65T6zzky97YMn6t+5+edW
	vO5d6dmZQNW7Xk29RpmNWiU+/y6UyJvrPM/KvS7hutCAVwHry3K9hNjiScQ0utNois1M=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186780-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186780: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1e66e188069532eb50bb48e01709b89d5f8718e9
X-Osstest-Versions-That:
    xen=d46e4264c3fa68974fbb9b1bce514ea44af6d945
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 18:52:55 +0000

flight 186780 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186780/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1e66e188069532eb50bb48e01709b89d5f8718e9
baseline version:
 xen                  d46e4264c3fa68974fbb9b1bce514ea44af6d945

Last test of basis   186767  2024-07-11 22:04:07 Z    0 days
Testing same since   186780  2024-07-12 16:03:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   d46e4264c3..1e66e18806  1e66e188069532eb50bb48e01709b89d5f8718e9 -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 19:50:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 19:50:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758273.1167684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSMHc-0002bO-ON; Fri, 12 Jul 2024 19:50:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758273.1167684; Fri, 12 Jul 2024 19: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 1sSMHc-0002bH-Ll; Fri, 12 Jul 2024 19:50:20 +0000
Received: by outflank-mailman (input) for mailman id 758273;
 Fri, 12 Jul 2024 19:50:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSMHa-0002b7-Vo; Fri, 12 Jul 2024 19:50:19 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSMHa-00032O-S0; Fri, 12 Jul 2024 19:50:18 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSMHa-0001Rf-F1; Fri, 12 Jul 2024 19:50:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSMHa-0001Ly-Ed; Fri, 12 Jul 2024 19:50:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=EqUejeir4i90E8F/ygGnUesCcVJ3y3SddGiVO/ZsN9Q=; b=O0s2FjmQ3IkEk6LomVV9lx5kZd
	zI51bwBhXRsiZOQ8XvcVBAIWUaMGoMYgQWqRZ7SBa8e+GPG/3ZlKZcmd3AGshIoEzKQZogQs1IjXs
	sMR0Y3aBeTBxUWX+gGJcB7wqYEUqtliiLlRpaqPtLZPVKBGSSuN9/Txaq5So+RCjQ0MY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186776-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186776: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=43db1e03c086ed20cc75808d3f45e780ec4ca26e
X-Osstest-Versions-That:
    linux=9d9a2f29aefdadc86e450308ff056017a209c755
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 19:50:18 +0000

flight 186776 linux-linus real [real]
flight 186782 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186776/
http://logs.test-lab.xenproject.org/osstest/logs/186782/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-libvirt-vhd  8 xen-boot                 fail REGR. vs. 186761

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-examine      8 reboot              fail pass in 186782-retest
 test-armhf-armhf-libvirt      8 xen-boot            fail pass in 186782-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 186782 like 186761
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 186782 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186761
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                43db1e03c086ed20cc75808d3f45e780ec4ca26e
baseline version:
 linux                9d9a2f29aefdadc86e450308ff056017a209c755

Last test of basis   186761  2024-07-11 05:47:53 Z    1 days
Failing since        186766  2024-07-11 19:40:24 Z    1 days    2 attempts
Testing same since   186776  2024-07-12 08:04:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Aleksander Jan Bajkowski <olek2@wp.pl>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alexei Starovoitov <ast@kernel.org>
  Baokun Li <libaokun1@huawei.com>
  Bastien Curutchet <bastien.curutchet@bootlin.com>
  Brian Foster <bfoster@redhat.com>
  Bruce Johnston <bjohnsto@redhat.com>
  Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
  Chengen Du <chengen.du@canonical.com>
  Chris Packham <chris.packham@alliedtelesis.co.nz>
  Christian Brauner <brauner@kernel.org>
  Christian Eggers <ceggers@arri.de>
  Christian Kujau <lists@nerdbynature.de>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  David Lechner <dlechner@baylibre.com>
  David S. Miller <davem@davemloft.net>
  Dmitry Antipov <dmantipov@yandex.ru>
  Edward Adam Davis <eadavis@qq.com>
  Eric Dumazet <edumazet@google.com>
  Florian Westphal <fw@strlen.de>
  Geliang Tang <tanggeliang@kylinos.cn>
  Gerald Yang <gerald.yang@canonical.com>
  Helge Deller <deller@gmx.de>
  Helge Deller <deller@kernel.org>
  Hou Tao <houtao1@huawei.com>
  Hugh Dickins <hughd@google.com>
  Ian Kent <ikent@redhat.com>
  Jakub Kicinski <kuba@kernel.org>
  Jason A. Donenfeld <Jason@zx2c4.com>
  Jeff Layton <jlayton@kernel.org>
  Jian Hui Lee <jianhui.lee@canonical.com>
  Jingbo Xu <jefflexu@linux.alibaba.com>
  Kumar Kartikeya Dwivedi <memxor@gmail.com>
  Kuniyuki Iwashima <kuniyu@amazon.com>
  Lex Siegel <usiegl00@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Mark Brown <broonie@kernel.org>
  Martin KaFai Lau <martin.lau@kernel.org>
  Matthew Sakai <msakai@redhat.com>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Michal Kubiak <michal.kubiak@intel.com>
  Mikulas Patocka <mpatocka@redhat.com>
  Mohammad Shehar Yaar Tausif <sheharyaar48@gmail.com>
  Mor Bar-Gabay <morx.bar.gabay@intel.com> (A Contingent Worker at Intel)
  Neal Cardwell <ncardwell@google.com>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Pedro Pinto <xten@osec.io>
  Ronald Wahl <ronald.wahl@raritan.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  Uwe Kleine-König <ukleinek@kernel.org>
  Vitaly Lifshits <vitaly.lifshits@intel.com>
  Vlastimil Babka <vbabka@suse.cz>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 2505 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 20:34:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 20:34:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758281.1167698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSMxx-0007Y9-UQ; Fri, 12 Jul 2024 20:34:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758281.1167698; Fri, 12 Jul 2024 20:34:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSMxx-0007Y2-RA; Fri, 12 Jul 2024 20:34:05 +0000
Received: by outflank-mailman (input) for mailman id 758281;
 Fri, 12 Jul 2024 20:34: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=ZSin=OM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSMxw-0007Xw-8s
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 20:34:04 +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 1350882b-408e-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 22:34:02 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-58bac81f3f9so2906804a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 13:34:02 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-594bda284a5sm4913836a12.85.2024.07.12.13.34.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 12 Jul 2024 13:34: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: 1350882b-408e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720816442; x=1721421242; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=N8RuazpBANdACm8JOvJxuas6L7j07qZaoqT3yR9LXvg=;
        b=dGUDcEYCbQZX2GOIEL/glmBZE1ziT/rPPh2h2laROyd9H/2MvQ8HwPeoDX1U4Mf+HZ
         PGiVmtrSrhXPUuDhr+khY06sUplilXRRk3ib3fTq7NEa19Nvr8svkvc630RHrU5BVq//
         tih5+dhzt+3PKwaiWBV+D72Mwe8f/oVBxHC8o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720816442; x=1721421242;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N8RuazpBANdACm8JOvJxuas6L7j07qZaoqT3yR9LXvg=;
        b=rNad+mJg7WblzVwB8iT7fIUjkbG0Rkpa4F/8kB+eP/aHSSpiuiv83F3BS2Ht1h9XLH
         OLX7uiYy1MH2aErOrybFvSHlCjhfBQPUsNHGG9Hu4cLFE7SiX9C6cXGVCxfd+kR8Yoqp
         fOTrSDyGNjI3914ntct8Rs17XtxCNF/9WChibeq9EizqSKsv0F9hR5VKM2YsKY18kRPm
         bAobR7gRFybkcfHvDorP2UBRUVG3m7I6C5xGnSfXcHQq+7Nwsq2tr8zk0Say1LpcUQCZ
         pvGHTlpvzvnpv8aMoH6DiCCd4nZ8DyCWFFU0IKCa4xsvQ64BWr88mc3fLXSUV6XAk429
         7IOg==
X-Forwarded-Encrypted: i=1; AJvYcCX09/4515/J6ApYnBbuJ3VqhFgfU+ZrXYtw17PUBmg1qgrMMp6Ef/ygrxJnPyZx3u/OnIIOlTBh4XUvlza/kxqcDyxg21IsUOh3MBKjA0I=
X-Gm-Message-State: AOJu0YzFxTdkbRVC+UDHrg9fSRDKenYjKC6sxNnIlACmM8q3EKv7Dyi7
	mSER59ASqizgEKRplg9tt9hPUqQb1VnZ++bfva8KCnIYXEnYFT11TngH7cgiFQTQSwMBygdFFyU
	X
X-Google-Smtp-Source: AGHT+IH06QPaeRpZ11R4B0/Pkw6HwPphNU4XQtMhiUut7c5Xfm4YJmfTs8eVnGWFEedpwZqLCF6OMg==
X-Received: by 2002:a05:6402:51d3:b0:582:7c35:8736 with SMTP id 4fb4d7f45d1cf-594b9ee1106mr10525744a12.12.1720816442000;
        Fri, 12 Jul 2024 13:34:02 -0700 (PDT)
Message-ID: <ab51e15e-c1b0-40de-9265-361e6239664e@citrix.com>
Date: Fri, 12 Jul 2024 21:33:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] docs/misra: rules for mass adoption
To: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com, sstabellini@kernel.org, julien@xen.org,
 michal.orzel@amd.com, bertrand.marquis@arm.com, roger.pau@citrix.com
References: <20240626013922.92089-1-stefano.stabellini@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240626013922.92089-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26/06/2024 2:39 am, Stefano Stabellini wrote:
> From: Stefano Stabellini <sstabellini@kernel.org>
>
> This patch adds a bunch of rules to rules.rst that are uncontroversial
> and have zero violations in Xen. As such, they have been approved for
> adoption.
>
> All the ones that regard the standard library have the link to the
> existing footnote in the notes.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 21:26:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 21:26:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758290.1167708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSNmL-0005DX-P1; Fri, 12 Jul 2024 21:26:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758290.1167708; Fri, 12 Jul 2024 21:26:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSNmL-0005DQ-M8; Fri, 12 Jul 2024 21:26:09 +0000
Received: by outflank-mailman (input) for mailman id 758290;
 Fri, 12 Jul 2024 21:26: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=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSNmK-0005DK-3I
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 21:26:08 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 58c4ccee-4095-11ef-bbfb-fd08da9f4363;
 Fri, 12 Jul 2024 23:26:06 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id F3220619B0;
 Fri, 12 Jul 2024 21:26:04 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5EEA2C32782;
 Fri, 12 Jul 2024 21:26: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: 58c4ccee-4095-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720819564;
	bh=RQVAI8y49fNOQT9OYLcMnI1li4cYbWDJrVdVruw1Qn0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=DSUltBVfFg/PJGXthdCp2tQncxccT/F9djRVO98wf8d5eSh1ljKC28cbHVPdBM3XL
	 SSMzaNcu/qgm40VQA1XFoxDiQYe79gmj3cNgUA+x8Urjrt9Le5dggQUKclay+omF8s
	 AovSqTMssoWtPaMYIxkqx/SwonX5Ti7s3LogSgfQN8yALbyrmAFMQCywvyCi897kcO
	 q6bR+BDCU+avTwT43TmV+iZFMl+rQ2Aahb1w19qsJ+IzINy6cCXfQ+nVXreiIty2qY
	 02H8TKeg1lWWdTZtdoIAEynCO2cNp/YBiTEnLUKahA/J0Gs4F8uOesTOCpMRsqpLz6
	 Dv5LmDGkMUFJQ==
Date: Fri, 12 Jul 2024 14:26:02 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Nicola Vetrini <nicola.vetrini@bugseng.com>, sstabellini@kernel.org, 
    michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, 
    consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Julien Grall <julien@xen.org>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH for-4.19] xen/bitmap: amend MISRA C deviation for
 Rule 20.7
In-Reply-To: <5ff40947-5672-4497-83e7-53ea370b5f58@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407121423590.3635@ubuntu-linux-20-04-desktop>
References: <794724e70c4e45224916576af01070e8aebe9aab.1720517398.git.nicola.vetrini@bugseng.com> <5ff40947-5672-4497-83e7-53ea370b5f58@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, 9 Jul 2024, Jan Beulich wrote:
> On 09.07.2024 11:34, Nicola Vetrini wrote:
> > --- a/xen/include/xen/bitmap.h
> > +++ b/xen/include/xen/bitmap.h
> > @@ -103,18 +103,16 @@ extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
> >  #define bitmap_switch(nbits, zero, small, large)			  \
> >  	unsigned int n__ = (nbits);					  \
> >  	if (__builtin_constant_p(nbits) && !n__) {			  \
> > -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
> >  		zero;							  \
> >  	} else if (__builtin_constant_p(nbits) && n__ <= BITS_PER_LONG) { \
> > -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
> >  		small;							  \
> >  	} else {							  \
> > -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
> >  		large;							  \
> >  	}
> 
> An observation I made only while discussing this on the meeting is that by
> going from this form to ...
> 
> >  static inline void bitmap_zero(unsigned long *dst, unsigned int nbits)
> >  {
> > +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
> >  	bitmap_switch(nbits,,
> >  		*dst = 0UL,
> >  		memset(dst, 0, bitmap_bytes(nbits)));
> 
> ... this form, you actually widen what the deviation covers to the entire
> macro, which is too much. We don't want to deviate the rule for all of the
> arguments, after all.
> 
> However, it further occurred to me that the reason for needing the deviation
> looks to merely be that in some cases (like the one above) we pass empty
> macro arguments. That's getting in the way of parenthesizing the use sites.
> We could avoid this, though, by adding e.g.
> 
> #define nothing ((void)0)
> 
> near the definition of bitmap_switch() and then using that in place of the
> empty arguments. Provided of course this is the only obstacle to
> parenthesization. At which point no deviation ought to be needed in the
> first place.


Roberto suggested in another email thread:

 
> The problem comes from macro arguments that are expressions, in some cases,
> and statements, in other cases, as it happens for bitmap_{switch,zero}.
> 
> Possible solutions include:
> - wrap the arguments that are statements in a do-while-false;
> - add a ';' after the arguments that are statements.
> 
> But what we recommend is to add a deviation for the cases where an argument,
> after the expansion, is surrounded by the following tokens: '{' '}' ';'.
> This will address all violations related to bitmap_{switch,zero} and requires
> only a modification of the ECLAIR configuration which will look like this:
> 
> -doc_begin="The expansion of an argument between tokens '{', '}' and ';' is safe."
> -config=MC3R1.R20.7,expansion_context+={safe, "left_right(^[\\{;]$,^[;\\}]$)"}
> -doc_end
> 
> With this, all the remaining 71 violations in x86 code concerns msi.h, which we were
> requested not to touch, and the 2 violations in arm code can be easily resolved
> with a patch adding parentheses, for which a patch was already submitted by
> Nicola and rejected by Jan.


I think this is a good way forward because it is a simple deviation that
makes sense to have, and makes sense as project wide deviation (it is
not a deviation by name, e.g. deviating anything called
"bitmap_switch").

I like Roberto's suggestion. Jan, are you OK with it?


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 21:50:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 21:50:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758297.1167717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSO9E-0008ED-Gk; Fri, 12 Jul 2024 21:49:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758297.1167717; Fri, 12 Jul 2024 21: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 1sSO9E-0008E6-E3; Fri, 12 Jul 2024 21:49:48 +0000
Received: by outflank-mailman (input) for mailman id 758297;
 Fri, 12 Jul 2024 21:49:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSO9D-0008Dw-5H; Fri, 12 Jul 2024 21:49:47 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSO9D-00056m-1b; Fri, 12 Jul 2024 21:49:47 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSO9C-0006oy-NK; Fri, 12 Jul 2024 21:49:46 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSO9C-00042x-Md; Fri, 12 Jul 2024 21:49: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=nsgYZ5ii+VntgiwgBegs2UElgVqjMAQv5gxK/17Eezc=; b=OsY81xQ70NtGVObnOM1N/Tsbx7
	Zh1/9WDsAvpoMWm6JZm8ezukI0lUZxNV32XBoyH76wpf2aKmBV4UZKy/CTvUrHOSDD+cqicbPmhhI
	l65oe5WUtvYM0ehLxCg3J9Mx1+xX4uLwYlIGLxtYGvJWNiHeC6ozqXub7IsB1FHyIwd0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186783-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186783: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e85ff1f1af8c298f3f25f226698e670600eff905
X-Osstest-Versions-That:
    xen=1e66e188069532eb50bb48e01709b89d5f8718e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 12 Jul 2024 21:49:46 +0000

flight 186783 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186783/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e85ff1f1af8c298f3f25f226698e670600eff905
baseline version:
 xen                  1e66e188069532eb50bb48e01709b89d5f8718e9

Last test of basis   186780  2024-07-12 16:03:59 Z    0 days
Testing same since   186783  2024-07-12 19:00:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   1e66e18806..e85ff1f1af  e85ff1f1af8c298f3f25f226698e670600eff905 -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 22:00:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 22:00:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758306.1167728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSOJZ-0002Mh-G2; Fri, 12 Jul 2024 22:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758306.1167728; Fri, 12 Jul 2024 22: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 1sSOJZ-0002Ma-Cl; Fri, 12 Jul 2024 22:00:29 +0000
Received: by outflank-mailman (input) for mailman id 758306;
 Fri, 12 Jul 2024 22:00:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSOJY-0002MU-0i
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 22:00:28 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23d2e020-409a-11ef-bbfb-fd08da9f4363;
 Sat, 13 Jul 2024 00:00:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id B2AA7CE13CF;
 Fri, 12 Jul 2024 22:00:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 67D2CC32782;
 Fri, 12 Jul 2024 22:00: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: 23d2e020-409a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720821619;
	bh=Yu+33vDlvfcMRATj6+pT5vELXsbar+dkgtyJQyIHPP8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=bUNYl51TVXsY+oFnJbrH2nIqKZYSX42qJ1NYzsc9q+qEZyR3T5c/ujC6usJ1wCr3z
	 3jraFkbyj/5AhPXEKHKUDS+069bC+GRH+rTpRwp8M7a0rMflq3ktXd4+A0J1h7MDgb
	 LgxtpJRAhmyASZWmC1GBaMEx+ukoaEQYFcqDiXhJehmvCH+ncSC6LGe63sMo1xe5Y6
	 cYxHJ9fSUjJbpIbNiCLYkXjWG9cK1WiB4m17Uyb0ehyyIx9rPWH2CS7+QWI9lSI3jg
	 drxeRtHVA0YDM4QnUnwFp3zChIyx+d1v/OixNdtMqXVvZbLG9VhODGOi7m6qGFIQ7v
	 fmIUuMO6c2Wgw==
Date: Fri, 12 Jul 2024 15:00:16 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>, 
    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>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH 03/17] misra: add deviations for direct inclusion
 guards
In-Reply-To: <a9133a97-d874-48ae-8ee4-83d752dcedd7@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407121459590.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <64e80abfaa68d87e8cb4fee67bc2624eda4f466a.1719829101.git.alessandro.zucchelli@bugseng.com> <a9133a97-d874-48ae-8ee4-83d752dcedd7@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, 1 Jul 2024, Jan Beulich wrote:
> On 01.07.2024 13:10, Alessandro Zucchelli wrote:
> > From: Simone Ballarin <simone.ballarin@bugseng.com>
> > 
> > Add deviation comments to address violations of
> > MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
> > to prevent the contents of a header file being included more than
> > once").
> > 
> > Inclusion guards must appear at the beginning of the headers
> > (comments are permitted anywhere).
> > 
> > This patch adds deviation comments using the format specified
> > in docs/misra/safe.json for headers with just the direct
> > inclusion guard before the inclusion guard since they are
> > safe and not supposed to comply with the directive.
> > 
> > Note that with SAF-9-safe in place, failures to have proper guards later
> > in the header files will not be reported
> 
> Rebasing mistake, seeing that it's ...

Yes with "SAF-9-safe" changed to SAF-10-safe in the commit message:

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



> > --- a/docs/misra/safe.json
> > +++ b/docs/misra/safe.json
> > @@ -84,6 +84,14 @@
> >          },
> >          {
> >              "id": "SAF-10-safe",
> > +            "analyser": {
> > +                "eclair": "MC3R1.D4.10"
> > +            },
> > +            "name": "Dir 4.10: direct inclusion guard before",
> > +            "text": "Headers with just the direct inclusion guard before the inclusion guard are safe."
> > +        },
> > +        {
> > +            "id": "SAF-11-safe",
> >              "analyser": {},
> >              "name": "Sentinel",
> >              "text": "Next ID to be used"
> 
> ... SFA-10-safe that's being added and ...
> 
> > --- a/xen/arch/arm/include/asm/hypercall.h
> > +++ b/xen/arch/arm/include/asm/hypercall.h
> > @@ -1,3 +1,4 @@
> > +/* SAF-10-safe direct inclusion guard before */
> >  #ifndef __XEN_HYPERCALL_H__
> >  #error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead"
> >  #endif
> > --- a/xen/arch/x86/include/asm/hypercall.h
> > +++ b/xen/arch/x86/include/asm/hypercall.h
> > @@ -2,6 +2,7 @@
> >   * asm-x86/hypercall.h
> >   */
> >  
> > +/* SAF-10-safe direct inclusion guard before */
> >  #ifndef __XEN_HYPERCALL_H__
> >  #error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead"
> >  #endif
> 
> ... used here?
> 
> Jan
> 


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 22:09:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 22:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758312.1167737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSORx-0003B9-8j; Fri, 12 Jul 2024 22:09:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758312.1167737; Fri, 12 Jul 2024 22:09: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 1sSORx-0003B2-5b; Fri, 12 Jul 2024 22:09:09 +0000
Received: by outflank-mailman (input) for mailman id 758312;
 Fri, 12 Jul 2024 22: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=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSORw-0003At-2U
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 22:09:08 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59844c89-409b-11ef-8776-851b0ebba9a2;
 Sat, 13 Jul 2024 00:09:05 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 3271F61FA9;
 Fri, 12 Jul 2024 22:09:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EA955C32782;
 Fri, 12 Jul 2024 22:09: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: 59844c89-409b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720822142;
	bh=+fcrwleOJ6d/D61hAe6bTDOaWfhsCV1Mv85dSl4Yyao=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=VZLr/FbB3r/ypO6wSktzhhwtLewHkr7vFXXgfBwpeHdKQHruZU9+FoMO8En7tqTDT
	 yvFf9NkXmYwLif2WoC1/BB6mqBOEJcX6dgvxvI3hOdcIqxr1U93Jj56yRym3s8ltfV
	 ZPci/X5hIvIDU/tHdJYoNY46AfR0xMssPQWxZ8638BPlnPZ4xSP+LMCf70ZDY3DgfR
	 Q5QZ5MRZcuBJWrUqrjhQzCCNYtHvzbklSFVkShV4/ICY2r48EZGi9jkZ6r/qKtVYQ6
	 qAv/u4mM41d8/f6LBgdRp9gvqCkgqALMIABeXeaP+mfg2gaEdb2O/oQVrYGIbDj5hS
	 sbxYG+xun1N+g==
Date: Fri, 12 Jul 2024 15:09:00 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: alessandro.zucchelli@bugseng.com, nicola.vetrini@bugseng.com, 
    consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH 05/17] xen/x86: address violations of MISRA C:2012
 Directive 4.10
In-Reply-To: <6620954e-b6d3-4073-ae68-0451aea44c52@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407121505330.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <d67d06849732fea11391afd61ff9891ed11795e5.1719829101.git.alessandro.zucchelli@bugseng.com> <09bc4d2e-b4fb-428b-b0e3-266952ebd3c5@suse.com> <20ad12e8beec50aaa58305ee5f376e21@bugseng.com>
 <6620954e-b6d3-4073-ae68-0451aea44c52@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, 9 Jul 2024, Jan Beulich wrote:
> On 09.07.2024 09:38, Alessandro Zucchelli wrote:
> > On 2024-07-01 16:21, Jan Beulich wrote:
> >> On 01.07.2024 15:36, Alessandro Zucchelli wrote:
> >>> --- a/xen/arch/x86/Makefile
> >>> +++ b/xen/arch/x86/Makefile
> >>> @@ -260,17 +260,18 @@ $(objtree)/arch/x86/include/asm/asm-macros.h: 
> >>> $(obj)/asm-macros.i $(src)/Makefil
> >>>  	$(call filechk,asm-macros.h)
> >>>
> >>>  define filechk_asm-macros.h
> >>> +	guard=$$(echo ASM_${SRCARCH}_ASM_MACROS_H | tr a-z A-Z);  \
> >>
> >> Nit: Hard tab slipped in.
> >>
> >>> +    echo '#ifndef $$guard'; \
> >>> +    echo '#define $$guard'; \
> >>>      echo '#if 0'; \
> >>>      echo '.if 0'; \
> >>>      echo '#endif'; \
> >>> -    echo '#ifndef __ASM_MACROS_H__'; \
> >>> -    echo '#define __ASM_MACROS_H__'; \
> >>>      echo 'asm ( ".include \"$@\"" );'; \
> >>> -    echo '#endif /* __ASM_MACROS_H__ */'; \
> >>>      echo '#if 0'; \
> >>>      echo '.endif'; \
> >>>      cat $<; \
> >>> -    echo '#endif'
> >>> +    echo '#endif'; \
> >>> +    echo '#endif /* $$guard */'
> >>>  endef
> >>>
> >>>  $(obj)/efi.lds: AFLAGS-y += -DEFI
> >>> --- a/xen/arch/x86/cpu/cpu.h
> >>> +++ b/xen/arch/x86/cpu/cpu.h
> >>> @@ -1,3 +1,6 @@
> >>> +#ifndef X86_CPU_CPU_H
> >>> +#define X86_CPU_CPU_H
> >>
> >> This, ...
> >>
> >>> --- a/xen/arch/x86/x86_64/mmconfig.h
> >>> +++ b/xen/arch/x86/x86_64/mmconfig.h
> >>> @@ -5,6 +5,9 @@
> >>>   * Author: Allen Kay <allen.m.kay@intel.com> - adapted from linux
> >>>   */
> >>>
> >>> +#ifndef X86_64_MMCONFIG_H
> >>> +#define X86_64_MMCONFIG_H
> >>
> >> ... this, and ...
> >>
> >>> --- a/xen/arch/x86/x86_emulate/private.h
> >>> +++ b/xen/arch/x86/x86_emulate/private.h
> >>> @@ -6,6 +6,9 @@
> >>>   * Copyright (c) 2005-2007 XenSource Inc.
> >>>   */
> >>>
> >>> +#ifndef X86_X86_EMULATE_PRIVATE_H
> >>> +#define X86_X86_EMULATE_PRIVATE_H
> >>
> >> ... this guard can't possibly all follow the same proposed naming 
> >> scheme
> >> (wherever the final version of that is being recorded; I don't recall 
> >> it
> >> having gone in, and I didn't spot anything earlier in the series); at
> >> least one must be wrong.
> > 
> > For x86/x86_64/mmconfig.h has been made an exception as stated in the 
> > commit
> > message:
> > Note that in x86_64/mmconfig.h we slightly deviate from the naming
> > convention in place: instead of having the inclusion guard as
> > X86_X86_64_MMCONFIG_H we shortened the directory prefix as X86_64 for
> > the sake of readability.
> > 
> > If you do not agree with this exception and you prefer to keep the 
> > additional
> > X86_ prefix let me know so as I prepare the patch series V5 I may 
> > reintroduce it.
> 
> What I have an issue with is making an exception in one place when quite
> clearly would as much (or as little) benefit from one. Before there's
> any further back and forth, I'd like to suggest that you wait with
> adjustments here until the base scheme has really been agreed upon,
> including situations where we think we'd like to make exceptions (after
> all we might decide that there simply shouldn't be exceptions, and that
> in order to eliminate such redundancy in guard identifiers we'd rather
> like to rename some of the files).

I don't think it is a good idea to introduce a naming scheme and
immediately add exceptions. I would stick to the naming scheme even if
it doesn't always lead to the best possible name. Also these are header
guards, they are not critical variables for which clarity and shortness
are paramount.

The naming scheme was written in the 0 email and copy/pasted here for
convenience:

- private headers -> <dir>_<filename>_H
- asm-generic headers -> ASM_GENERIC_<filename>_H
- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
- include/generated/<subdir>/<filename>.h-> GENERATED_<subdir>_<filename>_H
- arch/<architecture>/include/generated/asm/<filename>.h-> <arch>_GENERATED_ASM_<name>_H

So in this patch I would sticked to the naming scheme and used:

X86_CPU_CPU_H
X86_X86_64_MMCONFIG_H
X86_X86_EMULATE_PRIVATE_H


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 22:09:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 22:09:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758313.1167748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSOS6-0003SN-Ez; Fri, 12 Jul 2024 22:09:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758313.1167748; Fri, 12 Jul 2024 22:09: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 1sSOS6-0003SG-C7; Fri, 12 Jul 2024 22:09:18 +0000
Received: by outflank-mailman (input) for mailman id 758313;
 Fri, 12 Jul 2024 22:09: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=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSOS5-0003At-0E
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 22:09:17 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ff49ac2-409b-11ef-8776-851b0ebba9a2;
 Sat, 13 Jul 2024 00:09: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 4758861FA9;
 Fri, 12 Jul 2024 22:09:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AE1C1C32782;
 Fri, 12 Jul 2024 22:09: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: 5ff49ac2-409b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720822154;
	bh=xNmXvw4VZyzt89sjmOYJLkGH19HhPAfNXd06YwiPV08=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=jBABa7hY/o+laccqJqX4lFj4MWogNJtPG/Lp2JFQd1j7tFrcGEyQZkiD7t1Pala5F
	 iQ2fDEbGi1DE4mMp41li9rqLZ8i6H4euv0AZ9F1GCTfnZretVB5iOL1cNeTaOEYuOL
	 la5y5frd2XlHo+3phF7Au/mh39mmASJQlr+eEJH7+5j59UI+DDX6+TL69/rDSIsAKm
	 WKGoe6Fsrk6avsyFXnNarP9vtQyvLlXaEfqxBr7wdJq3I9BZWdVrcgnsP5ip416E4K
	 GLFWZ3VjilNK1JAv9MBSSL43/VRhZK0lbgJx3EbtL7GsVjOvX16QJb5HhrWQ5ZRo35
	 o1m1f1qB/iJ4Q==
Date: Fri, 12 Jul 2024 15:09:11 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
cc: xen-devel@lists.xenproject.org, nicola.vetrini@bugseng.com, 
    consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.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 04/17] xen/arm: address violations of MISRA C:2012
 Directive 4.10
In-Reply-To: <5646033a5e15c44fa6eb441690f36254d068ddee.1719829101.git.alessandro.zucchelli@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407121502370.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <5646033a5e15c44fa6eb441690f36254d068ddee.1719829101.git.alessandro.zucchelli@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 1 Jul 2024, Alessandro Zucchelli wrote:
> From: Simone Ballarin <simone.ballarin@bugseng.com>
> 
> Add inclusion guard to address violations of
> MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
> to prevent the contents of a header file being included more than
> once").
> 
> Mechanical change.
> 
> Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
> Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 22:10:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 22:10:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758321.1167758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSOTN-00055k-PJ; Fri, 12 Jul 2024 22:10:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758321.1167758; Fri, 12 Jul 2024 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 1sSOTN-00055d-Mf; Fri, 12 Jul 2024 22:10:37 +0000
Received: by outflank-mailman (input) for mailman id 758321;
 Fri, 12 Jul 2024 22: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=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSOTM-00055X-Pc
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 22:10:36 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e9723b4-409b-11ef-8776-851b0ebba9a2;
 Sat, 13 Jul 2024 00:10:34 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id C3774CE0FFC;
 Fri, 12 Jul 2024 22:10:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DAF46C32782;
 Fri, 12 Jul 2024 22:10: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: 8e9723b4-409b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720822231;
	bh=fhfvCyMdbM4MWXSvTGq6FAcp99v1Br332RqYK2G5MHY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=gaF+yDizeICtB7qjqcGajdl1Y5V8uY3wWY+i9Rnz7T+kj06v0+AU86KaVfQDsI57S
	 6oQFMXv06ywDUU2ewI6DpJHFzH6WixQlRR3aT0TIQ+IhDSqvtqsFpK2bnlN/HYhb2D
	 YiIDDUVgPV2mFLSBvINhuyaVwJkLzhUzm/GGCCowG1H9CwEfMu6kE4pTe2ZY5YWcrI
	 0Bd1PIp5518zbEmwgKMtfzRr/kSVYPMjhgLj/DFcfXLhp/3irT2d/2q7ciGTWtlpR6
	 Mhgy0LZxl3GHgrB6S/TuGIWeSAkqSy+i5m2qxOr/y7usWuyHsRFfSV8eovYj/EqRZS
	 zWPL/u8s9NuuA==
Date: Fri, 12 Jul 2024 15:10:28 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    nicola.vetrini@bugseng.com, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
    =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.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 06/17] x86/EFI: address violations of MISRA C:2012
 Directive 4.10
In-Reply-To: <a02442b6-b286-4fda-8814-cb939f29a355@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407121510180.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <0267af93ae969b67a77c3a9aca9f4ad6525de1b9.1719829101.git.alessandro.zucchelli@bugseng.com> <a02442b6-b286-4fda-8814-cb939f29a355@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, 1 Jul 2024, Jan Beulich wrote:
> On 01.07.2024 15:36, Alessandro Zucchelli wrote:
> > --- a/xen/arch/x86/efi/efi-boot.h
> > +++ b/xen/arch/x86/efi/efi-boot.h
> > @@ -3,6 +3,11 @@
> >   * is intended to be included by common/efi/boot.c _only_, and
> >   * therefore can define arch specific global variables.
> >   */
> > +
> > +#ifndef X86_EFI_EFI_BOOT_H
> > +#define X86_EFI_EFI_BOOT_H
> > +
> > +
> >  #include <xen/vga.h>
> >  #include <asm/e820.h>
> >  #include <asm/edd.h>
> 
> Nit: No double blank lines please, anywhere.

With this addressed:

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


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 22:17:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 22:17:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758329.1167768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSOZf-00069d-GV; Fri, 12 Jul 2024 22:17:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758329.1167768; Fri, 12 Jul 2024 22:17:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSOZf-00069W-DZ; Fri, 12 Jul 2024 22:17:07 +0000
Received: by outflank-mailman (input) for mailman id 758329;
 Fri, 12 Jul 2024 22:17: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=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSOZe-00069Q-Hd
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 22:17:06 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7720d961-409c-11ef-bbfb-fd08da9f4363;
 Sat, 13 Jul 2024 00:17:04 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id E9CE2CE1B79;
 Fri, 12 Jul 2024 22:17:01 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07AE2C32786;
 Fri, 12 Jul 2024 22:16: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: 7720d961-409c-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720822621;
	bh=4c/a0M44Eti2a9FQqLrhFb0xLlBWBMpRPlQL4b4M/Ng=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Pb90QKhd05pLCC20AtutRJ8OsVhZbTRuAy2SvVtBMO7gBGQeh7l738Li/T5m+rcyb
	 dXZ6VNUFJnL9xjVp1qbW5ztZ30f44zHf7p39++EgM9sd/2cMEch8b9D3Dujz+oXaeB
	 2r8tLoPWDLnr130y2idm4oRMERmKElUrYnz/zeddBkz7KLcBlngqDD1jYrbxYJD9YO
	 ynaFfxQM1dDFfKITVRToDVzH6RSeRDGVMJ5DckrEADZ9o5DhK9NyVh58JIccGd//T+
	 +iTqtlJQukyJ4Ie5k6MjHIlPO2GVM3ysZFpnIdOVW21LysygFMRtP03TWBGx4f2cOT
	 L0ZMOupaUkM3Q==
Date: Fri, 12 Jul 2024 15:16:58 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    nicola.vetrini@bugseng.com, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Julien Grall <jgrall@amazon.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 09/17] xen: address violations of MISRA C:2012 Directive
 4.10
In-Reply-To: <5f31aa96-52a8-413a-8c10-0ad01d095be9@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407121513300.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <76caa62c49a7aa02e43892f9edd72d90e9f39243.1719829101.git.alessandro.zucchelli@bugseng.com> <5f31aa96-52a8-413a-8c10-0ad01d095be9@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, 3 Jul 2024, Jan Beulich wrote:
> On 01.07.2024 15:36, Alessandro Zucchelli wrote:
> > --- a/xen/include/xen/err.h
> > +++ b/xen/include/xen/err.h
> > @@ -1,5 +1,6 @@
> > -#if !defined(__XEN_ERR_H__) && !defined(__ASSEMBLY__)
> > -#define __XEN_ERR_H__
> > +#ifndef INCLUDE_XEN_ERR_H
> > +#define INCLUDE_XEN_ERR_H
> 
> There once was a document (or was it a patch description) describing the
> naming system for these guards. Where did that go? With include files
> typically living under include/, seeing INCLUDE_ as a prefix is, well,
> odd and unnecessary baggage. I also don't recall there having been
> agreement to use names like the ones presented here.

I agree with Jan that INCLUDE_ is unnecessary and looking at patch #0
and our previous discussions it would seem that this case was not
covered.

I think we should just use XEN_ERR_H

The rule could be (to be added to the others in patch #0):
- xen/include/xen -> XEN_<filename>_H


> > +#ifndef __ASSEMBLY__
> >  
> >  #include <xen/compiler.h>
> >  #include <xen/errno.h>
> > @@ -41,4 +42,5 @@ static inline int __must_check PTR_RET(const void *ptr)
> >  	return IS_ERR(ptr) ? PTR_ERR(ptr) : 0;
> >  }
> >  
> > -#endif /* __XEN_ERR_H__ */
> > +#endif /* __ASSEMBLY__ */
> > +#endif /* INCLUDE_XEN_ERR_H */
> > diff --git a/xen/include/xen/pci_ids.h b/xen/include/xen/pci_ids.h
> > index e798477a7e..8e40c78db7 100644
> > --- a/xen/include/xen/pci_ids.h
> > +++ b/xen/include/xen/pci_ids.h
> > @@ -1,3 +1,6 @@
> > +#ifndef INCLUDE_XEN_PCI_IDS_H
> > +#define INCLUDE_XEN_PCI_IDS_H
> > +
> >  #define PCI_VENDOR_ID_AMD                0x1022
> >  
> >  #define PCI_VENDOR_ID_NVIDIA             0x10de
> > @@ -11,3 +14,5 @@
> >  #define PCI_VENDOR_ID_BROADCOM           0x14e4
> >  
> >  #define PCI_VENDOR_ID_INTEL              0x8086
> > +
> > +#endif /* INCLUDE_XEN_PCI_IDS_H */
> > diff --git a/xen/include/xen/softirq.h b/xen/include/xen/softirq.h
> > index 33d6f2ecd2..90d4875df7 100644
> > --- a/xen/include/xen/softirq.h
> > +++ b/xen/include/xen/softirq.h
> > @@ -1,5 +1,6 @@
> > -#if !defined(__XEN_SOFTIRQ_H__) && !defined(__ASSEMBLY__)
> > -#define __XEN_SOFTIRQ_H__
> > +#ifndef INCLUDE_XEN_SOFTIRQ_H
> > +#define INCLUDE_XEN_SOFTIRQ_H
> > +#ifndef __ASSEMBLY__
> >  
> >  /* Low-latency softirqs come first in the following list. */
> >  enum {
> > @@ -40,4 +41,5 @@ void cpu_raise_softirq_batch_finish(void);
> >   */
> >  void process_pending_softirqs(void);
> >  
> > -#endif /* __XEN_SOFTIRQ_H__ */
> > +#endif /* __ASSEMBLY__ */
> > +#endif /* INCLUDE_XEN_SOFTIRQ_H */
> > diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
> > index 0c16baa85f..ec1b6b05e9 100644
> > --- a/xen/include/xen/vmap.h
> > +++ b/xen/include/xen/vmap.h
> > @@ -1,5 +1,6 @@
> > -#if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
> > -#define __XEN_VMAP_H__
> > +#ifndef INCLUDE_XEN_VMAP_H
> > +#define INCLUDE_XEN_VMAP_H
> > +#ifdef VMAP_VIRT_START
> >  
> >  #include <xen/mm-frame.h>
> >  #include <xen/page-size.h>
> > @@ -42,4 +43,5 @@ static inline void vm_init(void)
> >      vm_init_type(VMAP_DEFAULT, (void *)VMAP_VIRT_START, arch_vmap_virt_end());
> >  }
> >  
> > -#endif /* __XEN_VMAP_H__ */
> > +#endif /* VMAP_VIRT_START */
> > +#endif /* INCLUDE_XEN_VMAP_H */
> 
> 


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 22:19:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 22:19:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758334.1167778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSOcA-0006j1-Ta; Fri, 12 Jul 2024 22:19:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758334.1167778; Fri, 12 Jul 2024 22: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 1sSOcA-0006iu-Py; Fri, 12 Jul 2024 22:19:42 +0000
Received: by outflank-mailman (input) for mailman id 758334;
 Fri, 12 Jul 2024 22: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=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSOc9-0006il-Nx
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 22:19:41 +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 d411ae67-409c-11ef-8776-851b0ebba9a2;
 Sat, 13 Jul 2024 00:19:39 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 2FA8C62022;
 Fri, 12 Jul 2024 22:19:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B22D8C4AF07;
 Fri, 12 Jul 2024 22:19: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: d411ae67-409c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720822777;
	bh=xEi2tBm507czbxJbWsgqNuIyQr/uyg9bVeTRs5rcXoU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=bll78CA6uZEAo6uYWkgas9o6RUGQg4WoP4KOiBiMAaPqBkHEBx1JXWFDzMOfdslpD
	 Y29j/A08DgIA76mgxYLGPey4KTjIKNey+IxAWOldDXwFQn9igS5uQ55MVAAkwaytAf
	 xpoYjPbrr5XjgfaTW1/VXLiErDcU81wbE63fK8bRN06BhAbKCutXWjq+T8r9aUF08j
	 0QU3pNQG0amwnHbn73QnXtdVyHL9IbWHRzx+bpB3PiQflb2J4T9DSa95OR8tp/nUzh
	 p9DyvpVKMojyOvRj3jAuffMSV1PjF8nO9jp7EwT07qOeh31jpf4vMRtETgpTAer+Wi
	 h2G3wPPd9nYLQ==
Date: Fri, 12 Jul 2024 15:19:35 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
cc: xen-devel@lists.xenproject.org, nicola.vetrini@bugseng.com, 
    consulting@bugseng.com, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.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 11/17] xen/arm: address violations of MISRA C:2012
 Directive 4.10
In-Reply-To: <8e9fee0a3dac64c0c7e49489f55256a37cab7a76.1719829101.git.alessandro.zucchelli@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407121518470.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <8e9fee0a3dac64c0c7e49489f55256a37cab7a76.1719829101.git.alessandro.zucchelli@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 1 Jul 2024, Alessandro Zucchelli wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> Add or modify inclusion guards to address violations of
> MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order to
> prevent the contents of a header file being included more than once").
> Mechanical change.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> Signed-off-by: Nicola Vetrini  <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Jul 12 22:22:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 22:22:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758340.1167788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSOen-0008AV-9A; Fri, 12 Jul 2024 22:22:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758340.1167788; Fri, 12 Jul 2024 22:22: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 1sSOen-0008AO-6Q; Fri, 12 Jul 2024 22:22:25 +0000
Received: by outflank-mailman (input) for mailman id 758340;
 Fri, 12 Jul 2024 22:22:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSOem-0008AI-06
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 22:22: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 3526ac15-409d-11ef-bbfb-fd08da9f4363;
 Sat, 13 Jul 2024 00:22:22 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 6D991619B0;
 Fri, 12 Jul 2024 22:22:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DB84FC32782;
 Fri, 12 Jul 2024 22:22: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: 3526ac15-409d-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720822941;
	bh=dTYJoCY4JoR9CK44LuVPwoQOVDjetlh1BRw5erscm6o=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=koqVEKYANOEnlPbIDQ4WXPc8CGSB+vVM15qwM0W14Bn3Kko5nHihVzEaKV8aonMLu
	 5MK1DlBOORZjUYD6YXlaD6qzv1BwmbSwHCWXU4LmMLxoxiHy7N0HpoZq8iN4m95/Vo
	 pfC8FoBqU9TxQJkHkdmwViuyFk8E4CcgghUOoKNUIhfBZhuHyQbZjbb+7wYXP5ho7C
	 WQd2pDxoh+5SBp3ewP+HbAjOf61BsuFUQmogAWXPno+SXSMGBqNfJsCaGYtx5Ra8/N
	 POS9HSrNUh0LA1EnphelD2XSuGn9jnGdB1kjOG9viSV6YQG5cT3Bo4WkMJSrhIw5Z9
	 1YHnDfoBlXeMA==
Date: Fri, 12 Jul 2024 15:22:18 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>
Subject: Re: [PATCH 13/17] xen: add deviations for MISRA C 2012 Dir D4.10
In-Reply-To: <f26c90dc93a3862e472afbe630dabfec30e51ffe.1719829101.git.alessandro.zucchelli@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407121522080.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <f26c90dc93a3862e472afbe630dabfec30e51ffe.1719829101.git.alessandro.zucchelli@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 1 Jul 2024, Alessandro Zucchelli wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Add safe deviation for *.c files, as estabilished in past discussion.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
> 

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


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 22:28:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 22:28:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758344.1167797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSOke-0000zg-SH; Fri, 12 Jul 2024 22:28:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758344.1167797; Fri, 12 Jul 2024 22: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 1sSOke-0000zZ-Pi; Fri, 12 Jul 2024 22:28:28 +0000
Received: by outflank-mailman (input) for mailman id 758344;
 Fri, 12 Jul 2024 22: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=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSOkd-0000zT-DU
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 22:28:27 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d6ba035-409e-11ef-bbfb-fd08da9f4363;
 Sat, 13 Jul 2024 00:28:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 11E6BCE016A;
 Fri, 12 Jul 2024 22:28:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39FD6C32782;
 Fri, 12 Jul 2024 22:28:20 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d6ba035-409e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720823301;
	bh=zspmqbwiIOnlyW423xZWSgTINWXKH4WrSp3DAVcxXsc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=eip57VrRfEvtHVqVEyQv56GE5OZTBeuFlC8VlgE5BT3ryAZAaKmjw9zGYzHJRLfXJ
	 42XtLCdZmGRF8cqfizYoxY9BlKQLh2gtehH2mhDX/KvTOMwL+MXVmLmUHEoSAvQC1I
	 rBuTj6CN33MSVn/qmUvyfeqnhBzcY0Z9/H/vqTTIXuwEtlUVxnH2zxVM5f4wD1M6SV
	 sodG4hT/NBuqM07HjSsVYlHdQQjVx7tMWjKAwEui/suHrbIDClkHAGih4cKjAtu2S8
	 S8aaTRm1RfOVrwSzZVf/B7uqlJfD75IRgEaRRaWCPhuFbDArp9AQ4NAFCu6S7IJzRy
	 a1+ZfpEgtj9uA==
Date: Fri, 12 Jul 2024 15:28:19 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    consulting@bugseng.com, Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH 14/17] xen: add SAF deviation for MISRA C Dir 4.10
In-Reply-To: <d6c313e5-19c6-4775-8d9c-0742a37032b4@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407121527500.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <b64a6b53de8bcf14c91a1534bb57b001efc12cce.1719829101.git.alessandro.zucchelli@bugseng.com> <d6c313e5-19c6-4775-8d9c-0742a37032b4@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, 3 Jul 2024, Jan Beulich wrote:
> public/x86: don't include common xen.h from arch-specific one
> 
> No other arch-*.h does so, and arch-x86/xen.h really just takes the role
> of arch-x86_32.h and arch-x86_64.h (by those two forwarding there). With
> xen.h itself including the per-arch headers, doing so is also kind of
> backwards anyway, and just calling for problems. There's exactly one
> place where arch-x86/xen.h is included when really xen.h is meant (for
> wanting XEN_GUEST_HANDLE_64() to be made available, the default
> definition of which lives in the common xen.h).
> 
> This then addresses a violation of Misra C:2012 Directive 4.10
> ("Precautions shall be taken in order to prevent the contents of a
> header file being included more than once").
> 
> Reported-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


> --- a/xen/include/public/arch-x86/xen.h
> +++ b/xen/include/public/arch-x86/xen.h
> @@ -7,8 +7,6 @@
>   * Copyright (c) 2004-2006, K A Fraser
>   */
>  
> -#include "../xen.h"
> -
>  #ifndef __XEN_PUBLIC_ARCH_X86_XEN_H__
>  #define __XEN_PUBLIC_ARCH_X86_XEN_H__
>  
> --- a/xen/include/xen/lib/x86/cpu-policy.h
> +++ b/xen/include/xen/lib/x86/cpu-policy.h
> @@ -525,7 +525,7 @@ void x86_cpu_policy_bound_max_leaves(str
>  void x86_cpu_policy_shrink_max_leaves(struct cpu_policy *p);
>  
>  #ifdef __XEN__
> -#include <public/arch-x86/xen.h>
> +#include <public/xen.h>
>  typedef XEN_GUEST_HANDLE_64(xen_cpuid_leaf_t) cpuid_leaf_buffer_t;
>  typedef XEN_GUEST_HANDLE_64(xen_msr_entry_t) msr_entry_buffer_t;
>  #else
> 
> 


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 22:38:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 22:38:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758351.1167807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSOuK-00036R-Oc; Fri, 12 Jul 2024 22:38:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758351.1167807; Fri, 12 Jul 2024 22: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 1sSOuK-00036K-M8; Fri, 12 Jul 2024 22:38:28 +0000
Received: by outflank-mailman (input) for mailman id 758351;
 Fri, 12 Jul 2024 22: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=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSOuJ-00036E-Lj
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 22:38:27 +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 7371741a-409f-11ef-bbfb-fd08da9f4363;
 Sat, 13 Jul 2024 00:38: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 E172961A25;
 Fri, 12 Jul 2024 22:38:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2B7DC32782;
 Fri, 12 Jul 2024 22:38: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: 7371741a-409f-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720823904;
	bh=Tqf6AG7C0pklLQZPX4Yqv5t049ZMcfsQkL/Pc5OyFSQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=RWqBwP50DzePc+WLGSKd1sdn//oWjoPhN71mzX+qbY2XpSmpwBcCk5N9MPyA9p2gH
	 ugkz1G55JPAJHRbyOSsQGLA8cVuBZzPuY53ALuuQhrkLEwlPg8p0YEwj3ciDXl6CfY
	 wNmf9146T37yt1cHrFlK0If4SakN1a92zdq+swoEaa8I7OTYV4YNzv87vs5QBDCEKx
	 nf+BqnqiYQmon+NOiCHeiDY0uvP3oPO5tpd5R85sejiGJzBBmnLxcXeQKj6qX9AOy2
	 cCcWPEHXihh7pxd+EDCz0ALwsmyPrGuytTksDXVBPtuPAFKYmjV0hXvZHIoKFTrV/R
	 tDMOyYWtxSovg==
Date: Fri, 12 Jul 2024 15:38:22 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
In-Reply-To: <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com> <375074a0-0db7-40ba-9c9f-590b0cbe2409@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, 3 Jul 2024, Jan Beulich wrote:
> On 01.07.2024 15:46, Alessandro Zucchelli wrote:
> > This section explains which format should be followed by header
> > inclusion guards via a drop-down list of rules.
> 
> Ah, so this answers my earlier question regarding where the naming
> rules are spelled out. Yet why is this not much earlier in the series,
> /before/ anything trying to follow these rules?
> 
> > --- a/CODING_STYLE
> > +++ b/CODING_STYLE
> > @@ -167,3 +167,22 @@ the end of files.  It should be:
> >   * indent-tabs-mode: nil
> >   * End:
> >   */
> 
> This footer is not just an example; it also serves that function here.
> While not strictly needed in this file, I think it should still remain
> last.

+1


> > +Header inclusion guards
> > +-----------------------
> > +
> > +Unless differently specified all header files should have proper inclusion
> > +guards in order to avoid being included multiple times.
> > +The following naming conventions have been devised:
> > +- private headers -> <dir>_<filename>_H
> > +- asm-generic headers -> ASM_GENERIC_<filename>_H
> > +    - #ifndef ASM_GENERIC_X86_PERCPU_H
> > +      #define ASM_GENERIC_X86_PERCPU_H
> > +      //...
> > +      #endif /* ASM_GENERIC_X86_PERCPU_H */
> 
> GENERIC contradicts X86. Please try to avoid giving confusing / possibly
> misleading examples.

For clarity, Jan means that GENERIC by definition is not arch-specific
so GENERIC_X86 or GENERIC_ARM is a contradiction and it would be better
not to use it as reference example for this rule


> > +- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
> > +    - #ifndef ASM_X86_DOMAIN_H
> > +      #define ASM_X86_DOMAIN_H
> > +      //...
> > +      #endif /* ASM_X86_DOMAIN_H */
> 
> I'm afraid I can't connect the example to the filename pattern given:
> The example has 4 components separated by 3 underscores, when the
> pattern suggests 5 and 4 respectively.

I read the above with <subdir> being optional. But yes it is unclear
because the example should have both the header guard but also the
related file path. In this case the file path corresponding to
ASM_X86_DOMAIN_H would be arch/x86/include/asm/domain.h



> Please avoid empty lines at the bottom of files.
> 
> Having reached the end, I don't see common headers (the ones under
> xen/include/ in the tree) covered. I can only conclude that the odd
> INCLUDE_ prefixes I had asked about were derived from the "private
> headers" rule. Yet what's in xen/include/ aren't private headers.

Yeah. I proposed in a previous email to use:

- xen/include/xen/<filename>.h -> XEN_<filename>_H
- xen/include/xen/<subdir>/<filename>.h -> XEN_<subdir>_<filename>_H

with <subdir> being optional.


> I further have to note that, as indicated during the earlier discussion,
> I still cannot see how occasional ambiguity is going to be dealt with.
> IOW from the rules above two different headers could still end up with
> the same guard identifier.

Maybe something like this?

"In the event of naming collisions, exceptions to the coding style may
be made at the discretion of the contributor and maintainers."


> Finally, it shouldn't be silently assumed that all name components are
> to be converted to upper case; everything wants spelling out imo.
 
+1


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 22:46:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 22:46:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758357.1167817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSP1c-0004aO-H6; Fri, 12 Jul 2024 22:46:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758357.1167817; Fri, 12 Jul 2024 22:46:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSP1c-0004aH-E2; Fri, 12 Jul 2024 22:46:00 +0000
Received: by outflank-mailman (input) for mailman id 758357;
 Fri, 12 Jul 2024 22:45:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSP1b-0004aA-4R
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 22:45: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 80c5121e-40a0-11ef-bbfb-fd08da9f4363;
 Sat, 13 Jul 2024 00:45: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 6262A619B0;
 Fri, 12 Jul 2024 22:45:56 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1BBD8C32782;
 Fri, 12 Jul 2024 22:45: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: 80c5121e-40a0-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720824356;
	bh=tNvDrLIwB9v6RbLpfTEFhpue7YBQWeeNEzOHwRcw4zQ=;
	h=Date:From:To:cc:Subject:From;
	b=r4P6fIxJu7GI4Xbm4/4qHp8v4YCPAsOhT74VNjRHrqQOV6cKcDyKYf60nTfLfcHTm
	 q/PQSDJSg69htnwcAyGTFYCwlAPG2RMeWgercdj0nLjMibRp8DlWCrvkwhSDhzX1G3
	 PDgjyJc1CzkrNT/xrchGs7Vr8xnlNKh8Pk9eEg/Zc0znwhJi/oEGQLxlNNVH1rUs6f
	 YzpuvgzenSQVSlBv9GtSzmgsjQdgys9w4+M5ukTx22FPTUIRniAJQvGTTfx7O0QcMf
	 fP81pcQTlU3Cipj4qKbXiSPPlQSc6b2vDpKtxK26dAqmbWjq6fJFPKbixtmxnbIfp7
	 fJRaPfZnRghfQ==
Date: Fri, 12 Jul 2024 15:45:54 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: jbeulich@suse.com, sstabellini@kernel.org, andrew.cooper3@citrix.com, 
    julien@xen.org, michal.orzel@amd.com, bertrand.marquis@arm.com, 
    roger.pau@citrix.com
Subject: [PATCH] docs/misra: add rule 12.2
Message-ID: <alpine.DEB.2.22.394.2407121543250.3635@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

As discussed during the last MISRA C meeting, add Rule 12.2 to the list
of MISRA C rules we accept, together with an explanation that we use gcc
-fsanitize=undefined alone to check for violations.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 2e11566e20..a7e2b646de 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -443,6 +443,14 @@ maintainers if you want to suggest a change.
      - The macro NULL shall be the only permitted form of null pointer constant
      -
 
+   * - `Rule 12.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_12_02.c>`_
+     - Required
+     - The right hand operand of a shift operator shall lie in the range
+       zero to one less than the width in bits of the essential type of
+       the left hand operand
+     - We rely exclusively on gcc -fsanitize=undefined to check for
+       dangerious violations to this rule and to ensure compliance
+
    * - `Rule 12.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_12_05.c>`_
      - Mandatory
      - The sizeof operator shall not have an operand which is a function


From xen-devel-bounces@lists.xenproject.org Fri Jul 12 23:25:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 12 Jul 2024 23:25:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758363.1167827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSPdg-0002pE-6w; Fri, 12 Jul 2024 23:25:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758363.1167827; Fri, 12 Jul 2024 23:25: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 1sSPdg-0002p7-40; Fri, 12 Jul 2024 23:25:20 +0000
Received: by outflank-mailman (input) for mailman id 758363;
 Fri, 12 Jul 2024 23:25: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=ilSY=OM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sSPde-0002oi-T9
 for xen-devel@lists.xenproject.org; Fri, 12 Jul 2024 23:25:18 +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 fef0f8f6-40a5-11ef-bbfb-fd08da9f4363;
 Sat, 13 Jul 2024 01:25: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 E76E962192;
 Fri, 12 Jul 2024 23:25:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A42F2C32782;
 Fri, 12 Jul 2024 23:25: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: fef0f8f6-40a5-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1720826715;
	bh=2zEjcXKoJL7qQnx6vetCK8ktV0s50c1VeFvpg3lynWU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lWkT0Au9OeD3iasDu0gnxzpFYmo4y+aTVogzVSAFCu37EfABfDYd/6rke/9/Q6YI0
	 YYDhNC67Gnlgl2MF/E3juPof4WhW34oY5R4ruNu0+3lS+jJHSO8QjGf6GTX7HtQH53
	 P+vMjj3HM7S+JGRi1Sj0lPpSD8u2LpYFu5MRCzZSAlUM6cIIpj73FwwmA4dSdrHZHp
	 ngIyN2gnvd/NB3qNqr0ThZ6zZk//q5q4cLa+t3CS63HbwTIpxzD+Ca+iZdrX09KMUj
	 mMkm9YADEiSmJ2XYe5q/u1uex1l1LFi/Pq2R053JxJL4jPn8SzvLVAnEbH8u499sGg
	 BcYYDxnqvFPeg==
Date: Fri, 12 Jul 2024 16:25:13 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: Jan Beulich <jbeulich@suse.com>, consulting@bugseng.com, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v3 07/12] x86/hvm: address violations of MISRA C Rule
 16.3
In-Reply-To: <f4eb47f2-ba7e-4326-b2c3-5d1c97cadd5b@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407121619270.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719383180.git.federico.serafini@bugseng.com> <87cfe4d3e75c3a7d4174393a31aaaf80e0e60633.1719383180.git.federico.serafini@bugseng.com> <2c60ef16-e17c-48dd-911a-d1734aed6da5@suse.com> <f4eb47f2-ba7e-4326-b2c3-5d1c97cadd5b@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, 2 Jul 2024, Federico Serafini wrote:
> On 01/07/24 10:47, Jan Beulich wrote:
> > On 26.06.2024 11:28, Federico Serafini wrote:
> > > @@ -2798,11 +2800,12 @@ void hvm_emulate_one_vm_event(enum emul_kind kind,
> > > unsigned int trapnr,
> > >           hvio->mmio_insn_bytes = sizeof(hvio->mmio_insn);
> > >           memcpy(hvio->mmio_insn, curr->arch.vm_event->emul.insn.data,
> > >                  hvio->mmio_insn_bytes);
> > > +        fallthrough;
> > >       }
> > > -    /* Fall-through */
> > >       default:
> > 
> > Can you clarify for me please whether this arrangement actually helps?
> > I'm pretty sure it'll result in a Coverity complaint, as my understanding
> > is that for them the marker (comment or pseudo-keyword) has to immediately
> > precede the subsequent label. IOW even if you confirmed that Eclair is
> > smarter in this regard, it may still need converting to
> > 
> >          hvio->mmio_insn_bytes = sizeof(hvio->mmio_insn);
> >          memcpy(hvio->mmio_insn, curr->arch.vm_event->emul.insn.data,
> >                 hvio->mmio_insn_bytes);
> >      }
> >          fallthrough;
> >      default:
> > 
> 
> Yes, this is ok for ECLAIR.

Given that Jan might be right that Coverity and others would prefer the
keyword on the line immediately above "default", and given that it works
anyway for ECLAIR, then I think it would be better to stay on the safe
side and move the "fallback" right on top of default.

If you are OK with it, please resend this patch and following patches.
Patches 1-6 are fully acked and I'd be happy to take them in my for-4.20
branch.


From xen-devel-bounces@lists.xenproject.org Sat Jul 13 02:24:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 02:24:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758372.1167838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSSQy-0001to-6R; Sat, 13 Jul 2024 02:24:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758372.1167838; Sat, 13 Jul 2024 02: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 1sSSQy-0001th-39; Sat, 13 Jul 2024 02:24:24 +0000
Received: by outflank-mailman (input) for mailman id 758372;
 Sat, 13 Jul 2024 02:24:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSSQx-0001tX-If; Sat, 13 Jul 2024 02:24:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSSQx-00051c-Fc; Sat, 13 Jul 2024 02:24:23 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSSQx-0001bz-2Y; Sat, 13 Jul 2024 02:24:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSSQx-0002wf-23; Sat, 13 Jul 2024 02:24: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=MxzFE3Nlv4meKH1QYyDrrZ/v6huOcIF9zd1jGN3DiGw=; b=I0TInD9jCpQHQSab3CR9xrtKNz
	0V/IMlTMefyF3h0OPuTM+clGAat7tyBqq+S8GFzXZ7C2i1d90KXdGqJAJkLA33jMLGGdny3VOqo3J
	pdLGee3wcw2FdEkWr5uhc3QN5Sd2ErgUhpJZWJQzECprDKNqgzmPo56kx1w6G47VQ1zU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186786-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186786: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
X-Osstest-Versions-That:
    xen=e85ff1f1af8c298f3f25f226698e670600eff905
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Jul 2024 02:24:23 +0000

flight 186786 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186786/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
baseline version:
 xen                  e85ff1f1af8c298f3f25f226698e670600eff905

Last test of basis   186783  2024-07-12 19:00:22 Z    0 days
Testing same since   186786  2024-07-12 22:02:08 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   e85ff1f1af..1ddc8c1bad  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9 -> smoke


From xen-devel-bounces@lists.xenproject.org Sat Jul 13 02:45:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 02:45:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758380.1167847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSSlU-0004Rn-Rh; Sat, 13 Jul 2024 02:45:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758380.1167847; Sat, 13 Jul 2024 02: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 1sSSlU-0004Rg-PD; Sat, 13 Jul 2024 02:45:36 +0000
Received: by outflank-mailman (input) for mailman id 758380;
 Sat, 13 Jul 2024 02: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=PEx+=ON=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sSSlT-0004Ra-9X
 for xen-devel@lists.xenproject.org; Sat, 13 Jul 2024 02:45:35 +0000
Received: from fhigh2-smtp.messagingengine.com
 (fhigh2-smtp.messagingengine.com [103.168.172.153])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f8b897c7-40c1-11ef-8776-851b0ebba9a2;
 Sat, 13 Jul 2024 04:45:32 +0200 (CEST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 254161140F6E
 for <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 22:45:31 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute5.internal (MEProxy); Fri, 12 Jul 2024 22:45:31 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <xen-devel@lists.xenproject.org>; Fri, 12 Jul 2024 22:45: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: f8b897c7-40c1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:content-type:content-type:date:date
	:from:from:in-reply-to:message-id:mime-version:reply-to:subject
	:subject:to:to; s=fm2; t=1720838731; x=1720925131; bh=RTzINzHHk4
	QcHsd7cEbTPB8Y6T0eHxc0HxvJyt1EJPA=; b=Qikc5g3YM+j346rmJ+l8Gn/9g4
	TE0aqjWI1/njLLmJPZU6uzM4xm03sVQP2h1cUmSk6ZFqt/vu1TEThKyRC9FLM60y
	vjOFFdGliQx1uoobnKFPC9HlarzUtsj6txl7cuU1r95Hqkj+G1iUscNe0BWn1IdQ
	NHyeb5UlSsOkunvT34qRfdMmsODG3agUFNBW5neShJqcK1bI6JcDzvJzMW5padzE
	REks/hR0FXwG2hoSiCr4MzDP7detPWSymC092BjGltLlTVZmAhUdVJxylrwvREvh
	WE9BUh60fa/DMyIaG4SlbR6jOSrUpt8kVK0ACpbU3r63ocFNpTxNX7qKTjyA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:message-id
	:mime-version:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=
	1720838731; x=1720925131; bh=RTzINzHHk4QcHsd7cEbTPB8Y6T0eHxc0Hxv
	Jyt1EJPA=; b=W+oVvrT3YsF2JpVaTm3j4DGBg6ETtgTDqH4hj7XJlivH7jJ4w1d
	l635XHnzZh5npyyU98CAsDN8/S3eXidQO81ovnS93LQVv/D7ZrwHIsRWmqAd+3aA
	u7JukHikPo4v8z12dNnWwXpK1kYcN3HoZTa3ynIQ2Gtgb+IIhS4aXFdqufNBYIoF
	icEyrzhBoJB9rSDrAbyLndh+y4rU4DG02mL4JZmim0DNoyiJrd0VdJywdxutbLVr
	hoKnjfXO9dHd1ygwHNhCqL26Dt+M2mGGX9yZddc0jUb8viMDqezfW01bDoiqD5Qt
	xGiyRhJV7TgVCZ6h7w77g+S3MwbIJrvTXFQ==
X-ME-Sender: <xms:SeqRZvDFZecMp3znPo1HaHou9Y-He9U9RcKc70ksbtnJmkemVVZO3Q>
    <xme:SeqRZlgDYddDqhlDZRhZfhxcTxBslNIU8Iy0GCa5n6l2VN6arYxNfeEOBRfGghG6r
    5Z0SsHUtAVLlg>
X-ME-Received: <xmr:SeqRZqnUzzloXHusvtNaLpklh2je_fWjyPVkunHxnncc3hki_WaApSU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrfeejgdeigecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecunecujfgurhepfffhvffukfggtggusehgtderredttd
    ejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcu
    oehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenuc
    ggtffrrghtthgvrhhnpedtudfgteduveduieevvefgteeujeelgffggffhhffhhedtffef
    fefgudeugeefhfenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfh
    hrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:SeqRZhzOPDUUrrlRNSTWufCK_p-dSntgDhTxytHbPSBffb20iwsEuQ>
    <xmx:SeqRZkSuJNLg5cDLjmqSYNeoZgby6HNlfLdXn2OFwD5cj7qHmnEn4Q>
    <xmx:SeqRZkbnxY0pAbNSKolPgo3DtsbP41AM7RTSuZGNMCbzFWyl-JZ9SA>
    <xmx:SeqRZlTuMYaobXOT70uuFrOByIaH_7IlUfhXuJU0fKm96HgmW4zUiw>
    <xmx:S-qRZt59mWTZHd_A453gRVNpDNymPOFIpvilibUy6Sg_XH0vjKTz3iPm>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 13 Jul 2024 04:45:23 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: systemd units are not installed in 4.19.0-rc2 anymore
Message-ID: <ZpHqR4e3VaFAXC3m@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="rfShu3Sxzvplo84j"
Content-Disposition: inline


--rfShu3Sxzvplo84j
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 13 Jul 2024 04:45:23 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: systemd units are not installed in 4.19.0-rc2 anymore

Hi,

Something has changed between -rc1 and -rc2 that systemd units are not
installed anymore by default.

Reproducer:=20

    ./configure --prefix=3D/usr
    make dist-tools
    ls dist/install/usr/lib/systemd/system

It does work, if I pass --enable-systemd to ./configure.

My guess is the actual change is earlier, specifically 6ef4fa1e7fe7
"tools: (Actually) drop libsystemd as a dependency", but configure was
regenerated only later. But TBH, I don't fully understand interaction
between those m4 macros...

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmaR6kcACgkQ24/THMrX
1yxCjAgAhFb2fu9P0SHcjyq1Ae5+ZviVlqo2furBPu7gizpjTYXoGXN19el3X7im
bWxQfsVeUQhtp4qsJgs6aSSVY46mPL7FbtgSFibsB+U3sjtzKXcrHn4uyz01c/Qp
p2c1RpXXE7cLKCcXC71/IsuvYXWht0VvXeh/+An56zqIAz4lpPUZ+pbvIX8K6E7L
na9bT8zAaIMsoNOySo973dyGJv1a4v8k7y9U8Rwxh6gTVe7dOagq7ouZXwzwHM5w
e4uq4ZlW64/NYWZpxb0gHV3gsmL3j1R2xQSDzmxS0f19uSDLeOS6o96qxC2fOXeM
EWLso1oEnbDtLFJ0xd33T8xmNceQag==
=ACfB
-----END PGP SIGNATURE-----

--rfShu3Sxzvplo84j--


From xen-devel-bounces@lists.xenproject.org Sat Jul 13 03:14:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 03:14:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758388.1167870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSTD4-0008KL-3B; Sat, 13 Jul 2024 03:14:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758388.1167870; Sat, 13 Jul 2024 03:14: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 1sSTD4-0008KE-0c; Sat, 13 Jul 2024 03:14:06 +0000
Received: by outflank-mailman (input) for mailman id 758388;
 Sat, 13 Jul 2024 03:14:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSTD2-0008K4-Ui; Sat, 13 Jul 2024 03:14:04 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSTD2-0005tQ-Sx; Sat, 13 Jul 2024 03:14:04 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSTD2-0002on-E6; Sat, 13 Jul 2024 03:14:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSTD2-0001Pp-Db; Sat, 13 Jul 2024 03:14:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=tY22o2XcwfXFaxQDqPYN9wNDVIjjNoAvDslJNQG5Yqo=; b=HahZq5mjS/0B5YdrsPnToJbR5c
	+PUzcd4aCPO8MP54KH3ZKaM9uLqQCxJQOlhCK8kE661NWwqazw/N/lx4znMmjX7rvjbbsFHZUNKTV
	QYMkaqopms93XZ54asDsSVyCWfqqABW8Ag00kR+KUMTCUf9tcirIw0ZUN3PO5w5HtFrg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186784-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186784: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1e66e188069532eb50bb48e01709b89d5f8718e9
X-Osstest-Versions-That:
    xen=d46e4264c3fa68974fbb9b1bce514ea44af6d945
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Jul 2024 03:14:04 +0000

flight 186784 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186784/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186771
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186771
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186771
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186771
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186771
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186771
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1e66e188069532eb50bb48e01709b89d5f8718e9
baseline version:
 xen                  d46e4264c3fa68974fbb9b1bce514ea44af6d945

Last test of basis   186771  2024-07-12 03:28:30 Z    0 days
Testing same since   186784  2024-07-12 19:06:57 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   d46e4264c3..1e66e18806  1e66e188069532eb50bb48e01709b89d5f8718e9 -> master


From xen-devel-bounces@lists.xenproject.org Sat Jul 13 09:03:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 09:03:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758406.1167881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSYez-0003YO-Ur; Sat, 13 Jul 2024 09:03:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758406.1167881; Sat, 13 Jul 2024 09: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 1sSYez-0003YH-QA; Sat, 13 Jul 2024 09:03:17 +0000
Received: by outflank-mailman (input) for mailman id 758406;
 Sat, 13 Jul 2024 09:03:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSYey-0003Y7-KF; Sat, 13 Jul 2024 09:03:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSYey-0004s2-Fd; Sat, 13 Jul 2024 09:03:16 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSYex-00074c-V0; Sat, 13 Jul 2024 09:03:16 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSYex-0000t1-UX; Sat, 13 Jul 2024 09:03: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=96GGoyH7R4DHnX6kawor9+vO9uH4d4lHbLuDUd7d4JU=; b=jC4fqa1ecXUR6Ex0s5G61i6por
	7EKefyGvUwIzzUSOohwKNyaZJp2TgwXvF+1Hl2W1qDMU0wvnMgIIfQQLA4BfeUSWJDz4wicS3pwD5
	0/lRFRQ72AHO5StCNNlJocHqTXVn/kP8L4Voz1CK/0w2LK573aiJTfBYuj3a2ea9OW6I=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186785-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186785: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=975f3b6da18020f1c8a7667ccb08fa542928ec03
X-Osstest-Versions-That:
    linux=9d9a2f29aefdadc86e450308ff056017a209c755
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Jul 2024 09:03:15 +0000

flight 186785 linux-linus real [real]
flight 186789 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186785/
http://logs.test-lab.xenproject.org/osstest/logs/186789/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-credit1   8 xen-boot                 fail REGR. vs. 186761
 test-armhf-armhf-libvirt-vhd  8 xen-boot                 fail REGR. vs. 186761

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186761
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186761
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186761
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                975f3b6da18020f1c8a7667ccb08fa542928ec03
baseline version:
 linux                9d9a2f29aefdadc86e450308ff056017a209c755

Last test of basis   186761  2024-07-11 05:47:53 Z    2 days
Failing since        186766  2024-07-11 19:40:24 Z    1 days    3 attempts
Testing same since   186785  2024-07-12 20:14:02 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Aaro Koskinen <aaro.koskinen@iki.fi>
  Abel Vesa <abel.vesa@linaro.org>
  Adrian Hunter <adrian.hunter@intel.com>
  Alan Stern <stern@rowland.harvard.edu>
  Aleksander Jan Bajkowski <olek2@wp.pl>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alexei Starovoitov <ast@kernel.org>
  Andre Przywara <andre.przywara@arm.com>
  Arnd Bergmann <arnd@arndb.de>
  Baokun Li <libaokun1@huawei.com>
  Bard Liao <yung-chuan.liao@linux.intel.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bastien Curutchet <bastien.curutchet@bootlin.com>
  Bjorn Andersson <andersson@kernel.org>
  Bjorn Andersson <quic_bjorande@quicinc.com>
  Bjørn Mork <bjorn@mork.no>
  Brian Foster <bfoster@redhat.com>
  Bruce Johnston <bjohnsto@redhat.com>
  Caleb Connolly <caleb.connolly@linaro.org>
  Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
  Chen Ni <nichen@iscas.ac.cn>
  Chen-Yu Tsai <wens@csie.org>
  Chengen Du <chengen.du@canonical.com>
  Chris Packham <chris.packham@alliedtelesis.co.nz>
  Christian Brauner <brauner@kernel.org>
  Christian Eggers <ceggers@arri.de>
  Christian Kujau <lists@nerdbynature.de>
  Christophe Leroy <christophe.leroy@csgroup.eu>
  Chunyan Zhang <zhangchunyan@iscas.ac.cn>
  Cong Zhang <quic_congzhan@quicinc.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniele Palmas <dnlplm@gmail.com>
  David Lechner <dlechner@baylibre.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Savin <envelsavinds@gmail.com>
  Dmitry Smirnov <d.smirnov@inbox.lv>
  Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
  Edward Adam Davis <eadavis@qq.com>
  Ekansh Gupta <quic_ekangupt@quicinc.com>
  Eric Dumazet <edumazet@google.com>
  Filipe Manana <fdmanana@suse.com>
  Florian Westphal <fw@strlen.de>
  Geliang Tang <tanggeliang@kylinos.cn>
  Gerald Yang <gerald.yang@canonical.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  He Zhe <zhe.he@windriver.com>
  Heikki Krogerus <heikki.krogerus@linux.intel.com>
  Helge Deller <deller@gmx.de>
  Helge Deller <deller@kernel.org>
  Hou Tao <houtao1@huawei.com>
  Hugh Dickins <hughd@google.com>
  Ian Kent <ikent@redhat.com>
  Ilya Dryomov <idryomov@gmail.com>
  Jacky Huang <ychuang3@nuvoton.com>
  Jakub Kicinski <kuba@kernel.org>
  Jason A. Donenfeld <Jason@zx2c4.com>
  Jason Chen <jason.z.chen@intel.com>
  Javier Carrasco <javier.carrasco.cruz@gmail.com>
  Jeff Johnson <quic_jjohnson@quicinc.com>
  Jeff Layton <jlayton@kernel.org>
  Jian Hui Lee <jianhui.lee@canonical.com>
  Jingbo Xu <jefflexu@linux.alibaba.com>
  jinxiaobo <jinxiaobo@uniontech.com>
  Johan Hovold <johan+linaro@kernel.org>
  Johan Hovold <johan@kernel.org>
  Jon Hunter <jonathanh@nvidia.com>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Joy Chakraborty <joychakr@google.com>
  João Paulo Gonçalves <joao.goncalves@toradex.com>
  Kai Vehmanen <kai.vehmanen@linux.intel.com>
  Kent Overstreet <kent.overstreet@linux.dev>
  Kevin Hilman <khilman@baylibre.com>
  Komal Bajaj <quic_kbajaj@quicinc.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Kumar Kartikeya Dwivedi <memxor@gmail.com>
  Kuniyuki Iwashima <kuniyu@amazon.com>
  Lee Jones <lee@kernel.org>
  Lex Siegel <usiegl00@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  Mank Wang <mank.wang@netprisma.us>
  Mark Brown <broonie@kernel.org>
  Martin KaFai Lau <martin.lau@kernel.org>
  Mathias Nyman <mathias.nyman@linux.intel.com>
  Matthew Sakai <msakai@redhat.com>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Michal Kubiak <michal.kubiak@intel.com>
  Michał Kopeć <michal.kopec@3mdeb.com>
  Mikulas Patocka <mpatocka@redhat.com>
  Mohammad Shehar Yaar Tausif <sheharyaar48@gmail.com>
  Mor Bar-Gabay <morx.bar.gabay@intel.com> (A Contingent Worker at Intel)
  Mudit Sharma <muditsharma.info@gmail.com>
  Nazar Bilinskyi <nbilinskyi@gmail.com>
  Neal Cardwell <ncardwell@google.com>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Pedro Pinto <xten@osec.io>
  Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Rasmus Villemoes <linux@rasmusvillemoes.dk>
  Remi Pommarel <repk@triplefau.lt>
  Richard Fitzgerald <rf@opensource.cirrus.com>
  Roger Quadros <rogerq@kernel.org>
  Ronald Wahl <ronald.wahl@raritan.com>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Shuming Fan <shumingf@realtek.com>
  Slark Xiao <slark_xiao@163.com>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Steev Klimaszewski <steev@kali.org>
  Stefan Eichenberger <stefan.eichenberger@toradex.com>
  Takashi Iwai <tiwai@suse.de>
  Taniya Das <quic_tdas@quicinc.com>
  Thinh Nguyen <Thinh.Nguyen@synopsys.com>
  Thomas Weißschuh <linux@weissschuh.net>
  Tomas Winker <tomas.winker@intel.com>
  Tony Lindgren <tony@atomide.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Udit Kumar <u-kumar1@ti.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  Uwe Kleine-König <ukleinek@kernel.org>
  Vanillan Wang <vanillanwang@163.com>
  Vitaly Lifshits <vitaly.lifshits@intel.com>
  Vlastimil Babka <vbabka@suse.cz>
  WangYuli <wangyuli@uniontech.com>
  Wentong Wu <wentong.wu@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 5192 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Jul 13 12:34:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 12:34:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758439.1167913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSbxU-0000U4-8E; Sat, 13 Jul 2024 12:34:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758439.1167913; Sat, 13 Jul 2024 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 1sSbxU-0000Tx-5e; Sat, 13 Jul 2024 12:34:36 +0000
Received: by outflank-mailman (input) for mailman id 758439;
 Sat, 13 Jul 2024 12:34:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSbxS-0000Tn-Ns; Sat, 13 Jul 2024 12:34:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSbxS-0000u8-MA; Sat, 13 Jul 2024 12:34:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSbxS-0006uK-AV; Sat, 13 Jul 2024 12:34:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSbxS-0006a0-A0; Sat, 13 Jul 2024 12:34:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=O5jS6YAIET6D9pqLRLO/j/xArfvDOcISMNGxwUjsiJE=; b=R69o/hwLeQk1VbSQG64UDkjF61
	EqJoORAh5503K6Q2ykjwn6au+yVdjK+2JRNsIi/AxjDTaUhwbvJtQEkrBwMXBFQUe1BoZsBW4C8vR
	TcFdkJL32OkksUjj4CwRYB3+eGVvxIZmJ0XYX5QlLL4f+h6RZY5s/scuBYbH09s4HbPM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186787-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186787: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl-credit1:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
X-Osstest-Versions-That:
    xen=1e66e188069532eb50bb48e01709b89d5f8718e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Jul 2024 12:34:34 +0000

flight 186787 xen-unstable real [real]
flight 186791 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186787/
http://logs.test-lab.xenproject.org/osstest/logs/186791/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit1   8 xen-boot            fail pass in 186791-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 186791 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 186791 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186784
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186784
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186784
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186784
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186784
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186784
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
baseline version:
 xen                  1e66e188069532eb50bb48e01709b89d5f8718e9

Last test of basis   186784  2024-07-12 19:06:57 Z    0 days
Testing same since   186787  2024-07-13 03:16:31 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   1e66e18806..1ddc8c1bad  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9 -> master


From xen-devel-bounces@lists.xenproject.org Sat Jul 13 12:39:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 12:39:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758448.1167924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSc1i-00014C-P9; Sat, 13 Jul 2024 12:38:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758448.1167924; Sat, 13 Jul 2024 12:38:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSc1i-000144-MZ; Sat, 13 Jul 2024 12:38:58 +0000
Received: by outflank-mailman (input) for mailman id 758448;
 Sat, 13 Jul 2024 12:38:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSc1i-00013u-54; Sat, 13 Jul 2024 12:38:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSc1i-0000yl-3P; Sat, 13 Jul 2024 12:38:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSc1h-0007AZ-NC; Sat, 13 Jul 2024 12:38:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSc1h-0005KR-Mq; Sat, 13 Jul 2024 12:38: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=lQY9pDaaflBGVVGDLKooLhvfX2WYzdeNk4VOsm9xB8c=; b=OwpjvMsjQoBQdRM+xW850X35YS
	1Ooxud3Cu8CiFSNtr51UoKVtjwjlWrk5fIu610bk+RO59K2Be3W4la1fuWXu40ubp+uknxCTCAM8o
	kKK4kL+Pt/R36dOlgWH1QSvz8s0eFZ4qli+1/B8PiF9NikXXhLmJN0Cq1/FTbU5FHpUo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186788-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186788: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=bec903cae84c21850d47a1b4d3ab57ca81189519
X-Osstest-Versions-That:
    libvirt=c9fa43c48cdb1b8505929e3287975445f3004f32
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Jul 2024 12:38:57 +0000

flight 186788 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186788/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186773
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              bec903cae84c21850d47a1b4d3ab57ca81189519
baseline version:
 libvirt              c9fa43c48cdb1b8505929e3287975445f3004f32

Last test of basis   186773  2024-07-12 04:18:45 Z    1 days
Testing same since   186788  2024-07-13 04:20:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jiri Denemark <jdenemar@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   c9fa43c48c..bec903cae8  bec903cae84c21850d47a1b4d3ab57ca81189519 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Jul 13 13:02:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 13:02:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758461.1167934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sScOb-0004bo-LP; Sat, 13 Jul 2024 13:02:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758461.1167934; Sat, 13 Jul 2024 13:02:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sScOb-0004bh-I3; Sat, 13 Jul 2024 13:02:37 +0000
Received: by outflank-mailman (input) for mailman id 758461;
 Sat, 13 Jul 2024 13:02:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iBzr=ON=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sScOa-0004bb-8m
 for xen-devel@lists.xenproject.org; Sat, 13 Jul 2024 13:02:36 +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 2b84bd2b-4118-11ef-bbfb-fd08da9f4363;
 Sat, 13 Jul 2024 15:02:35 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-42565670e20so22888685e9.0
 for <xen-devel@lists.xenproject.org>; Sat, 13 Jul 2024 06:02:33 -0700 (PDT)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-427a5e983e7sm19979685e9.23.2024.07.13.06.02.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 13 Jul 2024 06:02: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: 2b84bd2b-4118-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720875753; x=1721480553; 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=jPwVs4DPDEDk6fdFWtbJkBLN7F3W8kPIM1vGExs4zpo=;
        b=WhQjcIMq739sepkyJhjCXjtipMIo/73I67bG8AbdCa0Vml9v3FBco6Hub/bg032TJn
         2+Y/SIYGeYA3G8J8/rqkLYrn/FP8dy3i3eG/JqmgBqjHAClrJZ1Kwg7bsBlQ85RqgZEh
         99f6/VAlpPLJkMIi0d4/zz+i/FrC3HuaB12qA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720875753; x=1721480553;
        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=jPwVs4DPDEDk6fdFWtbJkBLN7F3W8kPIM1vGExs4zpo=;
        b=h68YEBLuiAqLObPBgO6LBJbaio+Tqevo9ojre+KByamnL79yEKLcZRGdwD1+SUb8o+
         cfgTzVryi/Z4pRT1MD+Fpc+mOa9C90e+WMWgssg9xNizsl5s6XbrtJNJyhN7vrENEeFT
         Y/1+83ayCOl9p+ND/jbJ9VUtXqez30sF7NdjqukKHO4038BLswuDjfH7jalKI+upcuDp
         vyKkDUMgCL3+3uonhDiEEdAgoRTql5mjGZJlMvtC6bM3GcTWZZf4mjOAi3VqrJCeblgZ
         tyMRLc7vXVtBnoGk+4uz0r69RoaVmdHlfpHbb+SD4WJ8STf0hoOG4ivjdxrzYbS6MXYJ
         V8Iw==
X-Forwarded-Encrypted: i=1; AJvYcCVabLW/Cy1+aqL+aAuTonf85Ll3Lt/e4Gy7URyWlLRMeTrzcMPurf4yveMkqWRkLZi95rGc1LaV6PbpQt+nmunXAfq3FeVOTxpM2PR07xo=
X-Gm-Message-State: AOJu0YxHwGFbuGmsCcOXAc7VB7dMBqrtzjMnCzW5MW+prl2XPBICCCqr
	4LmJ/StbqFM4LJddDUQwzmbuoTMY8cDGIKty+VAF6VJ+FzWQRNHaqJWbwNHrIs8g8H8PLh/NQ61
	OK14=
X-Google-Smtp-Source: AGHT+IEoOMBp1fE4VqFRTh//QAyHzYcdbMAcLx8O/z5zp8EF7qg+1EiqirwHR3zoeYxrPeCntQ7rxA==
X-Received: by 2002:a05:600c:4f49:b0:424:aa83:ef27 with SMTP id 5b1f17b1804b1-4279d9f289emr52695265e9.1.1720875753180;
        Sat, 13 Jul 2024 06:02:33 -0700 (PDT)
Message-ID: <94d0ef92-9fb8-4097-a633-59f1190434c4@citrix.com>
Date: Sat, 13 Jul 2024 14:02:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: systemd units are not installed in 4.19.0-rc2 anymore
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel
 <xen-devel@lists.xenproject.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <ZpHqR4e3VaFAXC3m@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZpHqR4e3VaFAXC3m@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13/07/2024 3:45 am, Marek Marczykowski-Górecki wrote:
> Hi,
>
> Something has changed between -rc1 and -rc2 that systemd units are not
> installed anymore by default.
>
> Reproducer: 
>
>     ./configure --prefix=/usr
>     make dist-tools
>     ls dist/install/usr/lib/systemd/system
>
> It does work, if I pass --enable-systemd to ./configure.
>
> My guess is the actual change is earlier, specifically 6ef4fa1e7fe7
> "tools: (Actually) drop libsystemd as a dependency", but configure was
> regenerated only later. But TBH, I don't fully understand interaction
> between those m4 macros...

Between -rc1 and -rc2 was 7cc95f41669d

That regenerated the existing configure scripts with Autoconf 2.71, vs
2.69 previously.

Glancing through again, I can't spot anything that looks relevant.


6ef4fa1e7fe7 for systemd itself was regenerated, and I had to go out of
my way to get autoconf 2.69 to do it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sat Jul 13 13:19:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 13:19:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758470.1167944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSceP-0006U2-3B; Sat, 13 Jul 2024 13:18:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758470.1167944; Sat, 13 Jul 2024 13:18:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSceO-0006Tv-W3; Sat, 13 Jul 2024 13:18:56 +0000
Received: by outflank-mailman (input) for mailman id 758470;
 Sat, 13 Jul 2024 13:18: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=H9bh=ON=web.de=Markus.Elfring@srs-se1.protection.inumbo.net>)
 id 1sSceN-0006Tp-21
 for xen-devel@lists.xenproject.org; Sat, 13 Jul 2024 13:18:55 +0000
Received: from mout.web.de (mout.web.de [212.227.17.11])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72b2f91e-411a-11ef-8776-851b0ebba9a2;
 Sat, 13 Jul 2024 15:18:52 +0200 (CEST)
Received: from [192.168.178.21] ([94.31.82.95]) by smtp.web.de (mrweb106
 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MqIB7-1rxdKv0GlH-00qCKl; Sat, 13
 Jul 2024 15:18:46 +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: 72b2f91e-411a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de;
	s=s29768273; t=1720876726; x=1721481526; i=markus.elfring@web.de;
	bh=Uc/1j0byJ3bja6L2DajnHc7fJ0Ad8rFraEJiCZAlxNE=;
	h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:To:Cc:From:
	 Subject:Content-Type:Content-Transfer-Encoding:cc:
	 content-transfer-encoding:content-type:date:from:message-id:
	 mime-version:reply-to:subject:to;
	b=v18MvWA14jBze7ckXS1UR5OR0TCiCYVPzG4E7J38Y+JyZ/bNLf+GQ3PBTSeQAHiX
	 yZ5poyFziD4l1aEhYnwcJEgMu8Z4k7MG8ApNIocQ7i94JecNipLXsx1H4h9/5ZAJ2
	 QYQhzh/Mw5m33q1XEQapaC6qe5IwC53+Ga0HcfbT1GiEA28i5gnYQP65ZbHFLks/o
	 Vr63gSmcZixW/QzscBWka2sjIougOzcT+7EeTlcEMVVlrznhWP+PFyYQ0VfvGAKkG
	 pv/Vh2XnFTSYAOitbxIAFggtomDjYZACXwjaRUOkgY7juYQNTiDY9CV+4HryNDYq0
	 q5jSsKVpU25xqnKhZw==
X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6
Message-ID: <add2bb00-4ac1-485d-839a-55670e2c7915@web.de>
Date: Sat, 13 Jul 2024 15:18:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: xen-devel@lists.xenproject.org, netdev@vger.kernel.org,
 kernel-janitors@vger.kernel.org, "David S. Miller" <davem@davemloft.net>,
 Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,
 Paolo Abeni <pabeni@redhat.com>, Paul Durrant <paul@xen.org>,
 Wei Liu <wei.liu@kernel.org>
Content-Language: en-GB
Cc: LKML <linux-kernel@vger.kernel.org>
From: Markus Elfring <Markus.Elfring@web.de>
Subject: [PATCH] xen-netback: Use seq_putc() in xenvif_dump_hash_info()
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:AIrV8FNxldBf3/OgDzktRpiIaej6QPYpC2zglGR/eidUfOHgox9
 TI2JV3ir65RmcgVVOglq7scUyOukDkTm5ay8GBZhmXZaWFc6ks8t3nZiUwLtKXgUvRcUoDJ
 B0aBelAXN/iOnU/ycfgbET0zdJwh7QsVK9Q+RwiEcOtBuyIzkHKILuD0AiFJs+XlO7trez/
 kCpK5OccjG3pxsQFKm1yA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:jxI6I0rfSEk=;rQ4ywyxfN56rW1wln+LjKtUrHbX
 DPajc2pj9fYcgChCM13odsJprWwqDmDzG/6oyreimFWmpgka6DQ5xSFazZd2Y/tcjf7Kyl53x
 Zgg/sZoURTwejjunSJ94qusv76oJJZPmDzVDTWh3OTP8nZu9yVD1eMdffRP1h8iO8hdTWQBjI
 HsDuZ3VTg1c9vM5DxY8j2yl5GM8izEI91boElESrBNJTzlcbcnXBqe7iqJmz7PP3iSun08OHP
 adfvEZxqvNe3bUoASXbbFtewaZ5UaMn8pg4162VKCQD6jSv/D52h11w3kDUUd1lCWi+AZpO0Z
 2RU7lFU1WxyEtlxMa4HPDYDwb8vFtcEatfKAfjyhfOjeoB13xAJkfpWxQ1Pm1Vb3COHSiAZr3
 TTCrvk6SkQJ3RUcRLD8OIBWXtFtLgMB36XlfOOASfdtpKyTXb1ca68HUMm27TBoVJGxrjZoSB
 W2TptLWdZyz/ey+AYnW+T93Ru+D4Pi/MEj6vG38WZFk6gRxrZnpmSUQoWJsKry+DIqxC4Rq+E
 k6BvvAqSHwZKvFVTOT0n2JNZOOolcgNSl3L1d2gVKDwt7QcT/laKjx4Ew5zAQpIp/rG+L+v/d
 ALwxg5V59fLmbAHYmD+jtyFAt/7EZSnhwBqITHL3aI9GQlLzz7UhcHdTF92cNlzLmoT59Gnyo
 fdcJdK67ujx5f/Q3ShdFDZVXhZZP9W4spkM0Bcaw9u3aEchtoVCa84JAaHxDn2ckyZqtoelSN
 FHIDRJzuT835YA9pK7mFRrcmn92qieNMuZG7koR7BnJsWqY1mfyalzHFWJNSAsXb9GB+GoCq/
 fskNeLwv3Etevn+LBr8f7JbA==

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sat, 13 Jul 2024 15:10:15 +0200

Single characters (line breaks) should be put into a sequence.
Thus use the corresponding function =E2=80=9Cseq_putc=E2=80=9D.

This issue was transformed by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
=2D--
 drivers/net/xen-netback/hash.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/xen-netback/hash.c b/drivers/net/xen-netback/hash=
.c
index ff96f22648ef..2d77a7187e1e 100644
=2D-- a/drivers/net/xen-netback/hash.c
+++ b/drivers/net/xen-netback/hash.c
@@ -425,7 +425,7 @@ void xenvif_dump_hash_info(struct xenvif *vif, struct =
seq_file *m)
 		for (j =3D 0; j < n; j++, i++)
 			seq_printf(m, "%02x ", vif->hash.key[i]);

-		seq_puts(m, "\n");
+		seq_putc(m, '\n');
 	}

 	if (vif->hash.size !=3D 0) {
@@ -445,7 +445,7 @@ void xenvif_dump_hash_info(struct xenvif *vif, struct =
seq_file *m)
 			for (j =3D 0; j < n; j++, i++)
 				seq_printf(m, "%4u ", mapping[i]);

-			seq_puts(m, "\n");
+			seq_putc(m, '\n');
 		}
 	}
 }
=2D-
2.45.2



From xen-devel-bounces@lists.xenproject.org Sat Jul 13 13:26:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 13:26:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758477.1167954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSclb-0007zC-P8; Sat, 13 Jul 2024 13:26:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758477.1167954; Sat, 13 Jul 2024 13:26:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSclb-0007z5-MZ; Sat, 13 Jul 2024 13:26:23 +0000
Received: by outflank-mailman (input) for mailman id 758477;
 Sat, 13 Jul 2024 13:26: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=iBzr=ON=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sSclZ-0007yv-Ro
 for xen-devel@lists.xenproject.org; Sat, 13 Jul 2024 13:26:21 +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 7de212f9-411b-11ef-bbfb-fd08da9f4363;
 Sat, 13 Jul 2024 15:26:20 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-36799fb93baso1591017f8f.0
 for <xen-devel@lists.xenproject.org>; Sat, 13 Jul 2024 06:26:20 -0700 (PDT)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-427a5e77b0bsm20505315e9.1.2024.07.13.06.26.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 13 Jul 2024 06:26: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: 7de212f9-411b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720877180; x=1721481980; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=scqJXYcQaLoYeJDnQsaF9SvQZm1QG3j6UO4fRo2x1dc=;
        b=XAMaaK223jLcImPaPq1jUaFqi5YAyLeYKur1jyB7NofqPVnjZOkJxIKlFivdAtpJpk
         sVsfMOgPZRrc6qeYKsKhsATXkUUM27t0EveUOVXLWGT+jjgP98rxChlYbTFzS8tDB6Xq
         L+nPjz0NI+OYc9reStTOoFnJV6XAhkTZ1ynB0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720877180; x=1721481980;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=scqJXYcQaLoYeJDnQsaF9SvQZm1QG3j6UO4fRo2x1dc=;
        b=IBG7FxAFAM3Gz0SO+2kvlxaDPQ3nhnf1ARhANAOnNwHyg4nzGljl+Q0mQ/iam5pV4N
         dEyf2QokhH7mZc+FdYH4lbCcl+RzA92BNPHcvOrxFpcPeUVKdCX643sL2J/RCCtga4Jb
         dw8WxSud7Hwco2z7IqCLOnBowIa9fkW1seGOU4akkALfRRKVaMizRjMWVCMQnKXhFiW8
         dv3YxjQsIUSnOOyELsQ++Ofyx1FoqOejeW2N0pdw5mzzph8bQ+Xz1fFATN3tm6yOUls2
         sOqtoP+6r0lxGRHU0NnMcvvrnHTAgfYzQWZgDC/kYs7vbJ8A3XMdB4cW60Czzd9b9ejd
         YOiA==
X-Gm-Message-State: AOJu0YwmBIpm9H+QPDym2qQpA7aAxhM5mVulXrqHqH2ybFPM2ddvOG16
	MMTJjj4znMcQCZW6itRrVUtLCwo1AvCeR5l2Fdgm1UPvPntXQplT/flFjwSK3raPZfrKUfoV26g
	GQKU=
X-Google-Smtp-Source: AGHT+IG5k/D2E1wNlWwiYW3dFvc0O6hGPUnRhZzA6K+bWBy9O4jgYNeqcHNmBN67A+SCh80oaRZ5bA==
X-Received: by 2002:a5d:5cd2:0:b0:366:e7b5:3b49 with SMTP id ffacd0b85a97d-367cead164fmr8106666f8f.54.1720877179923;
        Sat, 13 Jul 2024 06:26:19 -0700 (PDT)
Message-ID: <8f8dac21-92fe-4760-8578-2fbfde2f2c14@citrix.com>
Date: Sat, 13 Jul 2024 14:26:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
To: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
Cc: xen-devel <xen-devel@lists.xenproject.org>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr>
 <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
 <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Ok, so trimming down to the relevant pieces, we have:

On 11/07/2024 12:09 pm, Fonyuy-Asheri Caleb wrote:
> =========================================================================================================
> Source server xen-cpuid -p
> =========================================================================================================
> Raw policy: 32 leaves, 2 MSRs
> ...
>   00000001:ffffffff -> 000306f2:00100800:7ffefbff:bfebfbff
> ...
>   0000000d:00000000 -> 00000007:00000000:00000340:00000000
>   0000000d:00000001 -> 00000001:00000000:00000000:00000000
>   0000000d:00000002 -> 00000100:00000240:00000000:00000000

Haswell, with AVX, and ...

> PV Default policy: 31 leaves, 2 MSRs
> ...
>   0000000d:00000000 -> 00000007:00000000:00000340:00000000
>   0000000d:00000001 -> 00000001:00000000:00000000:00000000
>   0000000d:00000002 -> 00000100:00000240:00000000:00000000

... AVX available to PV guests.

On the target, something very different.  We have ...

> =========================================================================================================
> Target server xen-cpuid -p
> =========================================================================================================
> Raw policy: 39 leaves, 2 MSRs
> ...
>   00000001:ffffffff -> 00050654:00200800:7ffefbff:bfebfbff

Skylake. (Which is very much not a Haswell.)

>   0000000d:00000000 -> 000002ff:00000000:00000a88:00000000
>   0000000d:00000001 -> 0000000f:00000000:00000100:00000000
>   0000000d:00000002 -> 00000100:00000240:00000000:00000000
>   0000000d:00000003 -> 00000040:000003c0:00000000:00000000
>   0000000d:00000004 -> 00000040:00000400:00000000:00000000
>   0000000d:00000005 -> 00000040:00000440:00000000:00000000
>   0000000d:00000006 -> 00000200:00000480:00000000:00000000
>   0000000d:00000007 -> 00000400:00000680:00000000:00000000
>   0000000d:00000008 -> 00000080:00000000:00000001:00000000
>   0000000d:00000009 -> 00000008:00000a80:00000000:00000000

and AVX, MPX(x2), AVX512(x3), PROC_TRACE and PKRU.

> Host policy: 38 leaves, 2 MSRs
>  CPUID:
>   leaf     subleaf  -> eax      ebx      ecx      edx     
>   00000000:ffffffff -> 0000000d:756e6547:6c65746e:49656e69
>   00000001:ffffffff -> 00050654:00200800:47fee3ff:bfebfbff
>   00000002:ffffffff -> 76036301:00f0b5ff:00000000:00c30000
>   00000004:00000000 -> 3c004121:01c0003f:0000003f:00000000
>   00000004:00000001 -> 3c004122:01c0003f:0000003f:00000000
>   00000004:00000002 -> 3c004143:03c0003f:000003ff:00000000
>   00000004:00000003 -> 3c07c163:0280003f:00004fff:00000004
>   00000007:00000000 -> 00000000:029cffdb:00000008:bc002400
>   0000000d:00000000 -> 0000021b:00000000:00000a88:00000000
>   0000000d:00000001 -> 0000000f:00000000:00000000:00000000
>   0000000d:00000003 -> 00000040:000003c0:00000000:00000000
>   0000000d:00000004 -> 00000040:00000400:00000000:00000000
>   0000000d:00000009 -> 00000008:00000a80:00000000:00000000

Xen has only chosen to activate MPX(x2) and PKRU, and indeed...


> PV Default policy: 30 leaves, 2 MSRs
> ...
>   0000000d:00000000 -> 00000003:00000000:00000240:00000000
>   0000000d:00000001 -> 00000007:00000000:00000000:00000000

... PV guests get nothing, while you're trying to migrate in a guest
which...

> =========================================================================================================
> VM xen-cpuid -p $domid
> ---------------------------------------------------------------------------------------------------------
> Domain 3 policy: 31 leaves, 2 MSRs
> ...
>   0000000d:00000000 -> 00000007:00000000:00000340:00000000
>   0000000d:00000001 -> 00000001:00000000:00000000:00000000
>   0000000d:00000002 -> 00000100:00000240:00000000:00000000

... has AVX.

This explains why you're hitting the "guest size > xen size" check.

Migration should have failed earlier with a clearer message about the VM
having features not available on the target, but I suspect I know why it
didn't, and sadly its an item I've had on the todo list for a few years.

Perhaps the more important question, are you booting the skylake with
cpuid=no-avx on the command line by any chance?

~Andrew


From xen-devel-bounces@lists.xenproject.org Sat Jul 13 16:40:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 16:40:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758505.1167963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSfnK-0005EF-Ay; Sat, 13 Jul 2024 16:40:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758505.1167963; Sat, 13 Jul 2024 16:40: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 1sSfnK-0005E8-8O; Sat, 13 Jul 2024 16:40:22 +0000
Received: by outflank-mailman (input) for mailman id 758505;
 Sat, 13 Jul 2024 16:40:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSfnI-0005Dy-UP; Sat, 13 Jul 2024 16:40:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSfnI-0005lm-O0; Sat, 13 Jul 2024 16:40:20 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSfnI-0004ss-BM; Sat, 13 Jul 2024 16:40:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSfnI-0005B4-Al; Sat, 13 Jul 2024 16:40:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=BTc2BjpAqcheCawTdj/7S263aVyRyvj6ToF5HCDqTnU=; b=P5lxq2EIcecBTEtyvJReinBLDL
	OHI8B+//ei12PCyFANKXsP79fm5gxwYKG9Gnls86D0WPdu6d3IC7ncGfcjCgIEqXH+FV2Fk4XO768
	MvqAhiZUZnK2A83PZ4t+b0FCK9RviYsGupTrQCMDQLvXlUNHB5SjIcUKJvFOR76sPUoM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186790-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186790: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-credit2:guest-localmigrate/x10:fail:regression
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:regression
    linux-linus:build-armhf-libvirt:libvirt-build:fail:regression
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=528dd46d0fc35c0176257a13a27d41e44fcc6cb3
X-Osstest-Versions-That:
    linux=9d9a2f29aefdadc86e450308ff056017a209c755
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Jul 2024 16:40:20 +0000

flight 186790 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186790/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-credit2  20 guest-localmigrate/x10   fail REGR. vs. 186761
 test-armhf-armhf-xl-multivcpu  8 xen-boot                fail REGR. vs. 186761
 build-armhf-libvirt           6 libvirt-build            fail REGR. vs. 186761

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 186761

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-raw       8 xen-boot                     fail  like 186761
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186761
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                528dd46d0fc35c0176257a13a27d41e44fcc6cb3
baseline version:
 linux                9d9a2f29aefdadc86e450308ff056017a209c755

Last test of basis   186761  2024-07-11 05:47:53 Z    2 days
Failing since        186766  2024-07-11 19:40:24 Z    1 days    4 attempts
Testing same since   186790  2024-07-13 09:06:20 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Aaro Koskinen <aaro.koskinen@iki.fi>
  Abel Vesa <abel.vesa@linaro.org>
  Adrian Hunter <adrian.hunter@intel.com>
  Alan Stern <stern@rowland.harvard.edu>
  Aleksander Jan Bajkowski <olek2@wp.pl>
  Aleksandr Loktionov <aleksandr.loktionov@intel.com>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alexei Starovoitov <ast@kernel.org>
  Andre Przywara <andre.przywara@arm.com>
  Arnd Bergmann <arnd@arndb.de>
  Baokun Li <libaokun1@huawei.com>
  Bard Liao <yung-chuan.liao@linux.intel.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bastien Curutchet <bastien.curutchet@bootlin.com>
  Bjorn Andersson <andersson@kernel.org>
  Bjorn Andersson <quic_bjorande@quicinc.com>
  Bjørn Mork <bjorn@mork.no>
  Brian Foster <bfoster@redhat.com>
  Bruce Johnston <bjohnsto@redhat.com>
  Caleb Connolly <caleb.connolly@linaro.org>
  Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
  Chen Ni <nichen@iscas.ac.cn>
  Chen-Yu Tsai <wens@csie.org>
  Chengen Du <chengen.du@canonical.com>
  Chris Packham <chris.packham@alliedtelesis.co.nz>
  Christian Brauner <brauner@kernel.org>
  Christian Eggers <ceggers@arri.de>
  Christian Kujau <lists@nerdbynature.de>
  Christophe Leroy <christophe.leroy@csgroup.eu>
  Chunyan Zhang <zhangchunyan@iscas.ac.cn>
  Cong Zhang <quic_congzhan@quicinc.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniele Palmas <dnlplm@gmail.com>
  David Lechner <dlechner@baylibre.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Savin <envelsavinds@gmail.com>
  Dmitry Smirnov <d.smirnov@inbox.lv>
  Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
  Edward Adam Davis <eadavis@qq.com>
  Ekansh Gupta <quic_ekangupt@quicinc.com>
  Eric Dumazet <edumazet@google.com>
  Filipe Manana <fdmanana@suse.com>
  Florian Westphal <fw@strlen.de>
  Geliang Tang <tanggeliang@kylinos.cn>
  Gerald Yang <gerald.yang@canonical.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  He Zhe <zhe.he@windriver.com>
  Heikki Krogerus <heikki.krogerus@linux.intel.com>
  Helge Deller <deller@gmx.de>
  Helge Deller <deller@kernel.org>
  Hou Tao <houtao1@huawei.com>
  Hugh Dickins <hughd@google.com>
  Ian Kent <ikent@redhat.com>
  Ilya Dryomov <idryomov@gmail.com>
  Jacky Huang <ychuang3@nuvoton.com>
  Jakub Kicinski <kuba@kernel.org>
  Jason A. Donenfeld <Jason@zx2c4.com>
  Jason Chen <jason.z.chen@intel.com>
  Javier Carrasco <javier.carrasco.cruz@gmail.com>
  Jeff Johnson <quic_jjohnson@quicinc.com>
  Jeff Layton <jlayton@kernel.org>
  Jian Hui Lee <jianhui.lee@canonical.com>
  Jingbo Xu <jefflexu@linux.alibaba.com>
  jinxiaobo <jinxiaobo@uniontech.com>
  Johan Hovold <johan+linaro@kernel.org>
  Johan Hovold <johan@kernel.org>
  Jon Hunter <jonathanh@nvidia.com>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Joy Chakraborty <joychakr@google.com>
  João Paulo Gonçalves <joao.goncalves@toradex.com>
  Kai Vehmanen <kai.vehmanen@linux.intel.com>
  Kelvin Kang <kelvin.kang@intel.com>
  Kent Overstreet <kent.overstreet@linux.dev>
  Kevin Hilman <khilman@baylibre.com>
  Kiran Kumar K <kirankumark@marvell.com>
  Komal Bajaj <quic_kbajaj@quicinc.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Kumar Kartikeya Dwivedi <memxor@gmail.com>
  Kuniyuki Iwashima <kuniyu@amazon.com>
  Lee Jones <lee@kernel.org>
  Lex Siegel <usiegl00@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  Mank Wang <mank.wang@netprisma.us>
  Mark Brown <broonie@kernel.org>
  Martin KaFai Lau <martin.lau@kernel.org>
  Mathias Nyman <mathias.nyman@linux.intel.com>
  Matthew Sakai <msakai@redhat.com>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Michael Chan <michael.chan@broadcom.com>
  Michal Kubiak <michal.kubiak@intel.com>
  Michal Mazur <mmazur2@marvell.com>
  Michał Kopeć <michal.kopec@3mdeb.com>
  Mikulas Patocka <mpatocka@redhat.com>
  Mohammad Shehar Yaar Tausif <sheharyaar48@gmail.com>
  Mor Bar-Gabay <morx.bar.gabay@intel.com> (A Contingent Worker at Intel)
  Mudit Sharma <muditsharma.info@gmail.com>
  Nazar Bilinskyi <nbilinskyi@gmail.com>
  Neal Cardwell <ncardwell@google.com>
  Nithin Dabilpuram <ndabilpuram@marvell.com>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Pedro Pinto <xten@osec.io>
  Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Rasmus Villemoes <linux@rasmusvillemoes.dk>
  Remi Pommarel <repk@triplefau.lt>
  Richard Fitzgerald <rf@opensource.cirrus.com>
  Roger Quadros <rogerq@kernel.org>
  Ronald Wahl <ronald.wahl@raritan.com>
  Saeed Mahameed <saeedm@nvidia.com>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Satheesh Paul <psatheesh@marvell.com>
  Shuming Fan <shumingf@realtek.com>
  Slark Xiao <slark_xiao@163.com>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Srujana Challa <schalla@marvell.com>
  Steev Klimaszewski <steev@kali.org>
  Stefan Eichenberger <stefan.eichenberger@toradex.com>
  Takashi Iwai <tiwai@suse.de>
  Taniya Das <quic_tdas@quicinc.com>
  Thinh Nguyen <Thinh.Nguyen@synopsys.com>
  Thomas Weißschuh <linux@weissschuh.net>
  Tomas Winker <tomas.winker@intel.com>
  Tony Brelinski <tony.brelinski@intel.com>
  Tony Lindgren <tony@atomide.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Udit Kumar <u-kumar1@ti.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  Uwe Kleine-König <ukleinek@kernel.org>
  Vanillan Wang <vanillanwang@163.com>
  Vitaly Lifshits <vitaly.lifshits@intel.com>
  Vlastimil Babka <vbabka@suse.cz>
  WangYuli <wangyuli@uniontech.com>
  Wentong Wu <wentong.wu@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          fail    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  fail    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 blocked 
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 5467 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Jul 13 18:10:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 18:10:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758519.1167984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sShC2-0006FF-V1; Sat, 13 Jul 2024 18:09:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758519.1167984; Sat, 13 Jul 2024 18:09:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sShC2-0006F8-SB; Sat, 13 Jul 2024 18:09:58 +0000
Received: by outflank-mailman (input) for mailman id 758519;
 Sat, 13 Jul 2024 18:09:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iBzr=ON=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sShC2-0005yH-7N
 for xen-devel@lists.xenproject.org; Sat, 13 Jul 2024 18:09:58 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1cd5e8d0-4143-11ef-bbfb-fd08da9f4363;
 Sat, 13 Jul 2024 20:09:57 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a77e392f59fso386958166b.1
 for <xen-devel@lists.xenproject.org>; Sat, 13 Jul 2024 11:09:57 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc5b4f17sm69088466b.59.2024.07.13.11.09.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 13 Jul 2024 11: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: 1cd5e8d0-4143-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720894196; x=1721498996; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oIJ+HXKZFJyT9FRMoqI9Ea2vVNwCVYlPy9sOWH6JF6g=;
        b=EmZw4iNp6puyuMV+3Ph2qp1xzNHiPD+khxp8NTw4AFNTi8YLuQGs7rIx7zTa7aeNrY
         nUoLQWtrrPYL/LTRGKF5EVohSnH9hxptIkBX+KLadIJz4ET5YrsZwT1BxaAzrPEeWBC9
         xBG9N90G2C1kVSp9Ln60uPoddRnFjQmBIo+ho=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720894196; x=1721498996;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=oIJ+HXKZFJyT9FRMoqI9Ea2vVNwCVYlPy9sOWH6JF6g=;
        b=EVzgeFhpQngdFkUNix2ivUYJf4JzYcZeHlnrccb8u2JzyKU+x8c51LGGOS2MOEsVpB
         0a93zTCSqryphq+UxOImEZBujlO/MoFgfxZGzYzS8TvvjuktabRGWC+1c0J98y01fQjf
         U5MAcCwWtsJRs0vBZxEB+wWwBHt7uf1k67UTbhx0m7cCkY6oBHFjgQtqKAF8DuoPNbLm
         KgUBoYK1LYs5JnXdRRdDgQF/UpFlFmoPxWtQcIbaB21c2oddAmVKKmb9tLwRpmJ4gDHM
         RHh4tgzfygGpsPX7Ejy9RMqQ8yOyQRkMCwgIyLYgvhY4ANdPvawX+HslUElJXB94+eG3
         H6mw==
X-Gm-Message-State: AOJu0YzRIP7Ct9N7fTtq9IixVsJCffbs8yfRZB2Zmv5OZ2m3cutnixxn
	hRX0Lgx3C8Jr42CWnU5OjGMjsxty1Zzk9/rsYrHEzeJKk+OmGBJWowa+K8NxohFAXf2SyQfQ208
	2
X-Google-Smtp-Source: AGHT+IHFTY3xVjAe7gXGEPjWu8gB7bkEO+P5UTfsNa1M9URLu4xMUJVrqxNdIh7xAe4pBD7nhB6Hzw==
X-Received: by 2002:a17:907:724a:b0:a77:f2c5:84b7 with SMTP id a640c23a62f3a-a780b68a2c1mr1133965866b.5.1720894196653;
        Sat, 13 Jul 2024 11:09:56 -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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 20/12] CI: Swap from perl to perl-base in build containers
Date: Sat, 13 Jul 2024 19:09:52 +0100
Message-Id: <20240713180952.3363596-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We only need a basic perl environment, not the things that a primarily-perl
project would want.

Discovered during the Fedora refresh where the difference is ~40M, but it's
more modest for OpenSUSE and Ubuntu.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1372507213
---
 automation/build/opensuse/leap-15.6-x86_64.dockerfile  | 2 +-
 automation/build/opensuse/tumbleweed-x86_64.dockerfile | 2 +-
 automation/build/ubuntu/16.04-x86_64.dockerfile        | 2 +-
 automation/build/ubuntu/18.04-x86_64.dockerfile        | 2 +-
 automation/build/ubuntu/20.04-x86_64.dockerfile        | 2 +-
 automation/build/ubuntu/22.04-x86_64.dockerfile        | 2 +-
 automation/build/ubuntu/24.04-x86_64.dockerfile        | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/automation/build/opensuse/leap-15.6-x86_64.dockerfile b/automation/build/opensuse/leap-15.6-x86_64.dockerfile
index ea70dffe2afc..d9ee34ff240f 100644
--- a/automation/build/opensuse/leap-15.6-x86_64.dockerfile
+++ b/automation/build/opensuse/leap-15.6-x86_64.dockerfile
@@ -31,7 +31,7 @@ RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/opensuse/tumbleweed-x86_64.dockerfile b/automation/build/opensuse/tumbleweed-x86_64.dockerfile
index 61e840fc67da..cd90f7357a50 100644
--- a/automation/build/opensuse/tumbleweed-x86_64.dockerfile
+++ b/automation/build/opensuse/tumbleweed-x86_64.dockerfile
@@ -31,7 +31,7 @@ RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/ubuntu/16.04-x86_64.dockerfile b/automation/build/ubuntu/16.04-x86_64.dockerfile
index d8617bfade5e..7dc2ad8c3ef5 100644
--- a/automation/build/ubuntu/16.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/16.04-x86_64.dockerfile
@@ -27,7 +27,7 @@ RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/ubuntu/18.04-x86_64.dockerfile b/automation/build/ubuntu/18.04-x86_64.dockerfile
index 336697ad954b..12522cf48045 100644
--- a/automation/build/ubuntu/18.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/18.04-x86_64.dockerfile
@@ -27,7 +27,7 @@ RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/ubuntu/20.04-x86_64.dockerfile b/automation/build/ubuntu/20.04-x86_64.dockerfile
index 39fb297519ee..d071949bfe5c 100644
--- a/automation/build/ubuntu/20.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/20.04-x86_64.dockerfile
@@ -27,7 +27,7 @@ RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/ubuntu/22.04-x86_64.dockerfile b/automation/build/ubuntu/22.04-x86_64.dockerfile
index 230903f624d9..4f52b9d475ad 100644
--- a/automation/build/ubuntu/22.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/22.04-x86_64.dockerfile
@@ -27,7 +27,7 @@ RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/ubuntu/24.04-x86_64.dockerfile b/automation/build/ubuntu/24.04-x86_64.dockerfile
index 277f92facfd9..d125b9f739fa 100644
--- a/automation/build/ubuntu/24.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/24.04-x86_64.dockerfile
@@ -27,7 +27,7 @@ RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Sat Jul 13 18:10:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 18:10:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758518.1167974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sShBp-0005yU-P8; Sat, 13 Jul 2024 18:09:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758518.1167974; Sat, 13 Jul 2024 18:09: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 1sShBp-0005yN-LH; Sat, 13 Jul 2024 18:09:45 +0000
Received: by outflank-mailman (input) for mailman id 758518;
 Sat, 13 Jul 2024 18:09: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=iBzr=ON=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sShBp-0005yH-3d
 for xen-devel@lists.xenproject.org; Sat, 13 Jul 2024 18:09:45 +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 14939cdf-4143-11ef-bbfb-fd08da9f4363;
 Sat, 13 Jul 2024 20:09:43 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a77c1658c68so359320066b.0
 for <xen-devel@lists.xenproject.org>; Sat, 13 Jul 2024 11:09:43 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc820f2bsm68742666b.206.2024.07.13.11.09.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 13 Jul 2024 11:09: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: 14939cdf-4143-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720894183; x=1721498983; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4kLnfIhXGFRpZ63ksRdUUROBBVsX5+G8A7HW79LTA0Y=;
        b=C91IJTujgIoZtEaSzb5vBGVPhArPqlbesXaOsOy4VdYEszrocYUYtyEirjBMJB51QP
         p4q+dIGAC2cfcL9nxNDI2D+Ioi6dc0fGKKBxW44FJwIfg73jBPtn2NY7dwLjyJCmMwt6
         +Z62Y01FS7+uYPHxBvI1snAE+AyyMmZqAt/k4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720894183; x=1721498983;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4kLnfIhXGFRpZ63ksRdUUROBBVsX5+G8A7HW79LTA0Y=;
        b=cL42PS8kBtMUHZEmz4g7/YnSTeKoxavIynwr46ideJe4xtAQvbyrQS9pbBs4ddbS8Z
         x3Fy8gOr1kt5JPh5EY87th2cxZKmTElRYdc1IGudVCXLvaxRflyh1i9bTsygf/1SItVg
         Lnzmf49F2jy4SndUvOSD9MkyjLKG41RU+Q3rvfXB0HXdFECU2uPyqKcXK78ZXANuuecb
         hM/ZYiHEVnOCjVPwXAX0lqFC+7RmDK2Fcu6GkLyHCvtMCnb/xhRVv4WCfrqPojCWN8jR
         0jsKXYMdjgL8xTpZgYwPFuS44zMsU3NRiuwrYKNHQDwYqv7ZZGlHdBK/weg2XXxFBpzH
         CUvw==
X-Gm-Message-State: AOJu0YwHc3j7C2zXpTMw9r0IvvDZ65e33ToCntoqBkMrpGiHOrw4nCDe
	PBZp2gu+HElCY2Vj+bKrCmCbQeQykiNY5kJo++0l4g7Y9a0fc5Iq3klvhMZ2MTwAqRazR3MNS9D
	e
X-Google-Smtp-Source: AGHT+IF21P/TdDBvZv0ynJwpuwE7O+ftef5rHt2+0E4kNRYSDJa6QoX06m46PvsERr+7bCZ5r8Mq7w==
X-Received: by 2002:a17:906:195a:b0:a77:e48d:bc9 with SMTP id a640c23a62f3a-a780b68a472mr833888266b.16.1720894182670;
        Sat, 13 Jul 2024 11:09: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 19/12] docs: Fix install-man$(1)-pages if no manpages are generated
Date: Sat, 13 Jul 2024 19:09:39 +0100
Message-Id: <20240713180939.3363273-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

All tools to build manpages are optional, and if none of them happen to be
present, the intermediate working directory may not even be created.

Treat this as non-fatal, bringing the behaviour in line with install-html.
Like the html side, it needs to be not-or to avoid Make thinking the rule has
failed.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 docs/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/Makefile b/docs/Makefile
index 966a104490ac..b30cc619f8dd 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -151,7 +151,7 @@ man$(1)-pages: $$(DOC_MAN$(1))
 .PHONY: install-man$(1)-pages
 install-man$(1)-pages: man$(1)-pages
 	$(INSTALL_DIR) $(DESTDIR)$(mandir)
-	cp -r man$(1) $(DESTDIR)$(mandir)
+	[ ! -d man$(1) ] || cp -r man$(1) $(DESTDIR)$(mandir)
 
 # Clean
 .PHONY: clean-man$(1)-pages
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Sat Jul 13 18:10:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 18:10:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758521.1167994 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sShCI-0007bP-64; Sat, 13 Jul 2024 18:10:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758521.1167994; Sat, 13 Jul 2024 18: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 1sShCI-0007bG-3W; Sat, 13 Jul 2024 18:10:14 +0000
Received: by outflank-mailman (input) for mailman id 758521;
 Sat, 13 Jul 2024 18:10: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=iBzr=ON=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sShCH-0007ZN-0f
 for xen-devel@lists.xenproject.org; Sat, 13 Jul 2024 18:10:13 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24d45d7e-4143-11ef-8776-851b0ebba9a2;
 Sat, 13 Jul 2024 20:10:10 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58b966b4166so3531798a12.1
 for <xen-devel@lists.xenproject.org>; Sat, 13 Jul 2024 11:10:10 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59b268a276bsm1032999a12.62.2024.07.13.11.10.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 13 Jul 2024 11:10: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: 24d45d7e-4143-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1720894209; x=1721499009; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s6fAtMIT94yky8pHVJDXIYIarNbDIr23fg32SpVsiVQ=;
        b=pjW4oomp240l+7xIT7bnhVouXAHDc8+XDoVV5M6rRO+yYalpZ51+nlunaYfgG+medy
         A4KBFSyJuhQSAj5vg1tVPwY5zKIvMNgy38K278BTgC2jeVhUNj1w+x+0DZG3hbQs157a
         jAwFCWkJSRGCTaktRNAugG+139FVUThRc6S+Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720894209; x=1721499009;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=s6fAtMIT94yky8pHVJDXIYIarNbDIr23fg32SpVsiVQ=;
        b=dvpyAjyf/XE3GZs4jSIE33x9h8QJ38Uw1IXL7qoDgvEBPPWLkObxRrzSucbV0Wo1sP
         FBxEurMTAjDn3yJ8mR1EjvVHfdazDMeJEXhoVitEw8C3H78aho//snDQyOkQ9P3c7QsG
         pDUYq6AB6QqJr4VQKPA08NfrX3QCN/PR58WCfUqPbDKItmqd7t1uFl6oppVgl3P/OlR2
         L/fCyDp2bLmHJhvRlBGuDdqo1phqXIB8fjurEq8ieo3fXplWaow45t2Yw2ZZOM8QMfHj
         niUYF0Rdx1fZApfekWP0eoRxpsiUbxiPD5U/idZeqmUsUnlfxS6JDxnuRZoIW3R+PxqD
         1ZaQ==
X-Gm-Message-State: AOJu0YwISa6GDxEu3RWbLsQsR79teWyVqfToWrbYobFo1xU90e8VplPM
	CPCzoWQKIKzDQrq9F/ujzcuQf22WZj6fSIwDVFYenXx5QTSSBxRR5NlU7TeikhItW64z2zKb8mO
	0
X-Google-Smtp-Source: AGHT+IGgXWdmRLGxrgbJMVxd6DutUs1bIDmd+1li+pW6atF+0sWhL7/H9Dw7FkksNRzzjdVAb4AeCQ==
X-Received: by 2002:a50:ee85:0:b0:57d:619:7721 with SMTP id 4fb4d7f45d1cf-594bb5807c7mr8840331a12.21.1720894209550;
        Sat, 13 Jul 2024 11:10: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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 21/12] CI: Refresh and upgrade the Fedora container
Date: Sat, 13 Jul 2024 19:10:05 +0100
Message-Id: <20240713181005.3363912-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fedora 29 is long out of date.  Move forward 5 years to Fedora 39.

Inlcude all the usual improvements.  Rework the container to be non-root, use
heredocs for legibility, and switch to the new naming scheme.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

I know Fedora 40 the latest release, but it suffers from the same stubdom
failure as Archlinux currently does.  Fedora 39 builds fine.

Fedora is (correctly) blocking, so adding 40 would be bad move at this point
in the 4.19 release.

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1372042761 is a
run with both 39 and 40, showing the failure.
---
 automation/build/fedora/29.dockerfile        | 46 ------------
 automation/build/fedora/39-x86_64.dockerfile | 74 ++++++++++++++++++++
 automation/gitlab-ci/build.yaml              |  8 +--
 3 files changed, 78 insertions(+), 50 deletions(-)
 delete mode 100644 automation/build/fedora/29.dockerfile
 create mode 100644 automation/build/fedora/39-x86_64.dockerfile

diff --git a/automation/build/fedora/29.dockerfile b/automation/build/fedora/29.dockerfile
deleted file mode 100644
index d5f017ac723d..000000000000
--- a/automation/build/fedora/29.dockerfile
+++ /dev/null
@@ -1,46 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 fedora:29
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-# install Xen depends
-RUN dnf -y install \
-        clang \
-        gcc \
-        gcc-c++ \
-        ncurses-devel \
-        zlib-devel \
-        python-devel \
-        python3-devel \
-        libuuid-devel \
-        pkgconfig \
-        flex \
-        bison \
-        libaio-devel \
-        glib2-devel \
-        yajl-devel \
-        pixman-devel \
-        glibc-devel \
-        make \
-        binutils \
-        git \
-        wget \
-        acpica-tools \
-        python-markdown \
-        patch \
-        checkpolicy \
-        dev86 \
-        xz-devel \
-        bzip2 \
-        nasm \
-        ocaml \
-        ocaml-findlib \
-        golang \
-        # QEMU
-        ninja-build \
-    && dnf clean all && \
-    rm -rf /var/cache/dnf
-
-RUN useradd --create-home user
-USER user
-WORKDIR /build
diff --git a/automation/build/fedora/39-x86_64.dockerfile b/automation/build/fedora/39-x86_64.dockerfile
new file mode 100644
index 000000000000..e2048a437581
--- /dev/null
+++ b/automation/build/fedora/39-x86_64.dockerfile
@@ -0,0 +1,74 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 fedora:39
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN <<EOF
+    set -e
+
+    useradd --create-home user
+
+    dnf -y update
+
+    DEPS=(
+        # Xen
+        binutils
+        gcc
+        make
+        python3
+        # Kconfig
+        bison
+        flex
+        # Flask
+        checkpolicy
+
+        # Tools (general)
+        git-core
+        gzip
+        patch
+        perl-interpreter
+        pkgconfig
+        wget
+        # libxenguest dombuilder
+        bzip2-devel
+        libzstd-devel
+        lzo-devel
+        xz-devel
+        zlib-devel
+        # libacpi
+        acpica-tools
+        # libxl
+        libuuid-devel
+        yajl-devel
+        # RomBIOS
+        dev86
+        # Header Check
+        gcc-c++
+        # xentop
+        ncurses-devel
+        # Python bindings
+        python3-devel
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml
+        ocaml-findlib
+        # Golang bindings
+        golang
+
+        # Stubdom download/extract
+        bzip2
+
+        # Qemu build
+        glib2-devel
+        pixman-devel
+        ninja-build
+    )
+
+    dnf -y install "${DEPS[@]}"
+
+    dnf clean all
+    rm -rf /var/cache/dnf
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 7ce88d38e7c7..3d35871d64f5 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -575,15 +575,15 @@ debian-bookworm-32-gcc-debug:
   variables:
     CONTAINER: debian:bookworm-i386
 
-fedora-gcc:
+fedora-39-x86_64-gcc:
   extends: .gcc-x86-64-build
   variables:
-    CONTAINER: fedora:29
+    CONTAINER: fedora:39-x86_64
 
-fedora-gcc-debug:
+fedora-39-x86_64-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
-    CONTAINER: fedora:29
+    CONTAINER: fedora:39-x86_64
 
 ubuntu-16.04-x86_64-clang:
   extends: .clang-x86-64-build
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Sat Jul 13 22:37:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Jul 2024 22:37:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758546.1168004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSlML-0002o9-3o; Sat, 13 Jul 2024 22:36:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758546.1168004; Sat, 13 Jul 2024 22:36:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSlML-0002o2-0b; Sat, 13 Jul 2024 22:36:53 +0000
Received: by outflank-mailman (input) for mailman id 758546;
 Sat, 13 Jul 2024 22:36:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSlMJ-0002ns-R1; Sat, 13 Jul 2024 22:36:51 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSlMJ-0003ZH-MS; Sat, 13 Jul 2024 22:36:51 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSlMJ-0008AE-5F; Sat, 13 Jul 2024 22:36:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSlMJ-0001qL-4r; Sat, 13 Jul 2024 22:36:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=szCGce2TD1WDdw85r1Dij/IFQcNQNni6rQRN7KEsUGw=; b=ohGmHRhvaVin7+s6ENJbmdC53w
	/6sO63vQ0/a/3ZTlxoEaGEyW2K8kJfz/+DbdtI9aQjyD0V5VgLmncFFyEnsD76TBhVEVZKCpJjQXR
	4VQCCM+Iw6hGYLY2OMMZPZ4bEHbs9lgQpRZ7KN3fQEk/4pjWtyln9KTWa/MocpHvgphY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186792-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186792: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-armhf:xen-build:fail:regression
    linux-linus:build-armhf-libvirt:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-examine:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=528dd46d0fc35c0176257a13a27d41e44fcc6cb3
X-Osstest-Versions-That:
    linux=9d9a2f29aefdadc86e450308ff056017a209c755
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 13 Jul 2024 22:36:51 +0000

flight 186792 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186792/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-armhf                   6 xen-build                fail REGR. vs. 186761

Tests which did not succeed, but are not blocking:
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 test-armhf-armhf-examine      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-qcow2     1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-raw       1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186761
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                528dd46d0fc35c0176257a13a27d41e44fcc6cb3
baseline version:
 linux                9d9a2f29aefdadc86e450308ff056017a209c755

Last test of basis   186761  2024-07-11 05:47:53 Z    2 days
Failing since        186766  2024-07-11 19:40:24 Z    2 days    5 attempts
Testing same since   186790  2024-07-13 09:06:20 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Aaro Koskinen <aaro.koskinen@iki.fi>
  Abel Vesa <abel.vesa@linaro.org>
  Adrian Hunter <adrian.hunter@intel.com>
  Alan Stern <stern@rowland.harvard.edu>
  Aleksander Jan Bajkowski <olek2@wp.pl>
  Aleksandr Loktionov <aleksandr.loktionov@intel.com>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alexei Starovoitov <ast@kernel.org>
  Andre Przywara <andre.przywara@arm.com>
  Arnd Bergmann <arnd@arndb.de>
  Baokun Li <libaokun1@huawei.com>
  Bard Liao <yung-chuan.liao@linux.intel.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bastien Curutchet <bastien.curutchet@bootlin.com>
  Bjorn Andersson <andersson@kernel.org>
  Bjorn Andersson <quic_bjorande@quicinc.com>
  Bjørn Mork <bjorn@mork.no>
  Brian Foster <bfoster@redhat.com>
  Bruce Johnston <bjohnsto@redhat.com>
  Caleb Connolly <caleb.connolly@linaro.org>
  Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
  Chen Ni <nichen@iscas.ac.cn>
  Chen-Yu Tsai <wens@csie.org>
  Chengen Du <chengen.du@canonical.com>
  Chris Packham <chris.packham@alliedtelesis.co.nz>
  Christian Brauner <brauner@kernel.org>
  Christian Eggers <ceggers@arri.de>
  Christian Kujau <lists@nerdbynature.de>
  Christophe Leroy <christophe.leroy@csgroup.eu>
  Chunyan Zhang <zhangchunyan@iscas.ac.cn>
  Cong Zhang <quic_congzhan@quicinc.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniele Palmas <dnlplm@gmail.com>
  David Lechner <dlechner@baylibre.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Savin <envelsavinds@gmail.com>
  Dmitry Smirnov <d.smirnov@inbox.lv>
  Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
  Edward Adam Davis <eadavis@qq.com>
  Ekansh Gupta <quic_ekangupt@quicinc.com>
  Eric Dumazet <edumazet@google.com>
  Filipe Manana <fdmanana@suse.com>
  Florian Westphal <fw@strlen.de>
  Geliang Tang <tanggeliang@kylinos.cn>
  Gerald Yang <gerald.yang@canonical.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  He Zhe <zhe.he@windriver.com>
  Heikki Krogerus <heikki.krogerus@linux.intel.com>
  Helge Deller <deller@gmx.de>
  Helge Deller <deller@kernel.org>
  Hou Tao <houtao1@huawei.com>
  Hugh Dickins <hughd@google.com>
  Ian Kent <ikent@redhat.com>
  Ilya Dryomov <idryomov@gmail.com>
  Jacky Huang <ychuang3@nuvoton.com>
  Jakub Kicinski <kuba@kernel.org>
  Jason A. Donenfeld <Jason@zx2c4.com>
  Jason Chen <jason.z.chen@intel.com>
  Javier Carrasco <javier.carrasco.cruz@gmail.com>
  Jeff Johnson <quic_jjohnson@quicinc.com>
  Jeff Layton <jlayton@kernel.org>
  Jian Hui Lee <jianhui.lee@canonical.com>
  Jingbo Xu <jefflexu@linux.alibaba.com>
  jinxiaobo <jinxiaobo@uniontech.com>
  Johan Hovold <johan+linaro@kernel.org>
  Johan Hovold <johan@kernel.org>
  Jon Hunter <jonathanh@nvidia.com>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Joy Chakraborty <joychakr@google.com>
  João Paulo Gonçalves <joao.goncalves@toradex.com>
  Kai Vehmanen <kai.vehmanen@linux.intel.com>
  Kelvin Kang <kelvin.kang@intel.com>
  Kent Overstreet <kent.overstreet@linux.dev>
  Kevin Hilman <khilman@baylibre.com>
  Kiran Kumar K <kirankumark@marvell.com>
  Komal Bajaj <quic_kbajaj@quicinc.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Kumar Kartikeya Dwivedi <memxor@gmail.com>
  Kuniyuki Iwashima <kuniyu@amazon.com>
  Lee Jones <lee@kernel.org>
  Lex Siegel <usiegl00@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  Mank Wang <mank.wang@netprisma.us>
  Mark Brown <broonie@kernel.org>
  Martin KaFai Lau <martin.lau@kernel.org>
  Mathias Nyman <mathias.nyman@linux.intel.com>
  Matthew Sakai <msakai@redhat.com>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Michael Chan <michael.chan@broadcom.com>
  Michal Kubiak <michal.kubiak@intel.com>
  Michal Mazur <mmazur2@marvell.com>
  Michał Kopeć <michal.kopec@3mdeb.com>
  Mikulas Patocka <mpatocka@redhat.com>
  Mohammad Shehar Yaar Tausif <sheharyaar48@gmail.com>
  Mor Bar-Gabay <morx.bar.gabay@intel.com> (A Contingent Worker at Intel)
  Mudit Sharma <muditsharma.info@gmail.com>
  Nazar Bilinskyi <nbilinskyi@gmail.com>
  Neal Cardwell <ncardwell@google.com>
  Nithin Dabilpuram <ndabilpuram@marvell.com>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Pedro Pinto <xten@osec.io>
  Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Rasmus Villemoes <linux@rasmusvillemoes.dk>
  Remi Pommarel <repk@triplefau.lt>
  Richard Fitzgerald <rf@opensource.cirrus.com>
  Roger Quadros <rogerq@kernel.org>
  Ronald Wahl <ronald.wahl@raritan.com>
  Saeed Mahameed <saeedm@nvidia.com>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Satheesh Paul <psatheesh@marvell.com>
  Shuming Fan <shumingf@realtek.com>
  Slark Xiao <slark_xiao@163.com>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Srujana Challa <schalla@marvell.com>
  Steev Klimaszewski <steev@kali.org>
  Stefan Eichenberger <stefan.eichenberger@toradex.com>
  Takashi Iwai <tiwai@suse.de>
  Taniya Das <quic_tdas@quicinc.com>
  Thinh Nguyen <Thinh.Nguyen@synopsys.com>
  Thomas Weißschuh <linux@weissschuh.net>
  Tomas Winker <tomas.winker@intel.com>
  Tony Brelinski <tony.brelinski@intel.com>
  Tony Lindgren <tony@atomide.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Udit Kumar <u-kumar1@ti.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  Uwe Kleine-König <ukleinek@kernel.org>
  Vanillan Wang <vanillanwang@163.com>
  Vitaly Lifshits <vitaly.lifshits@intel.com>
  Vlastimil Babka <vbabka@suse.cz>
  WangYuli <wangyuli@uniontech.com>
  Wentong Wu <wentong.wu@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  fail    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     blocked 
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    blocked 
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 blocked 
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 5467 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Jul 14 08:02:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Jul 2024 08:02:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758565.1168013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSuBZ-0007HZ-Kt; Sun, 14 Jul 2024 08:02:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758565.1168013; Sun, 14 Jul 2024 08: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 1sSuBZ-0007HS-Hy; Sun, 14 Jul 2024 08:02:21 +0000
Received: by outflank-mailman (input) for mailman id 758565;
 Sun, 14 Jul 2024 08:02:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSuBY-0007HI-GS; Sun, 14 Jul 2024 08:02:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSuBY-0001PU-Bx; Sun, 14 Jul 2024 08:02:20 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSuBX-0003nz-V4; Sun, 14 Jul 2024 08:02:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSuBX-0003wO-UP; Sun, 14 Jul 2024 08:02:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=NOOxwhoIBd1bw79e1HSLJM1Kk/heQgH1uYX/vLpCV60=; b=Wiu4ejIOwD3iqcRP6bYs5mO/C7
	Rw3zABU58tzwJGFd23Zi83NJd+5e1fXXq/3TeH770NE/mwNJ1kfeYA/jpsQLgrjViMXQiOvp9WP2j
	TtJ7kNZ+qofb+xCuYP2jYaL1f5QT07mmzPR55D3ni3qX5HQI4fSMScMfKSFIrIxEQXxQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186793-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186793: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    linux-linus:test-amd64-amd64-qemuu-freebsd11-amd64:guest-start/freebsd.repeat:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=d0d0cd38005518533d641e1344537f89cfe95203
X-Osstest-Versions-That:
    linux=9d9a2f29aefdadc86e450308ff056017a209c755
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 14 Jul 2024 08:02:19 +0000

flight 186793 linux-linus real [real]
flight 186795 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186793/
http://logs.test-lab.xenproject.org/osstest/logs/186795/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 186761

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit1   8 xen-boot            fail pass in 186795-retest
 test-armhf-armhf-examine      8 reboot              fail pass in 186795-retest
 test-amd64-amd64-qemuu-freebsd11-amd64 21 guest-start/freebsd.repeat fail pass in 186795-retest
 test-armhf-armhf-libvirt      8 xen-boot            fail pass in 186795-retest
 test-armhf-armhf-libvirt-vhd  8 xen-boot            fail pass in 186795-retest

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 186761

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 186795 like 186761
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 186795 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 186795 never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check fail in 186795 never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check fail in 186795 never pass
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 186795 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186761
 test-armhf-armhf-xl-arndale   8 xen-boot                     fail  like 186761
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186761
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                d0d0cd38005518533d641e1344537f89cfe95203
baseline version:
 linux                9d9a2f29aefdadc86e450308ff056017a209c755

Last test of basis   186761  2024-07-11 05:47:53 Z    3 days
Failing since        186766  2024-07-11 19:40:24 Z    2 days    6 attempts
Testing same since   186793  2024-07-13 22:43:35 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Aaro Koskinen <aaro.koskinen@iki.fi>
  Abel Vesa <abel.vesa@linaro.org>
  Adrian Hunter <adrian.hunter@intel.com>
  Alan Stern <stern@rowland.harvard.edu>
  Aleksander Jan Bajkowski <olek2@wp.pl>
  Aleksandr Loktionov <aleksandr.loktionov@intel.com>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alexei Starovoitov <ast@kernel.org>
  Andre Przywara <andre.przywara@arm.com>
  Arnd Bergmann <arnd@arndb.de>
  Baokun Li <libaokun1@huawei.com>
  Bard Liao <yung-chuan.liao@linux.intel.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bastien Curutchet <bastien.curutchet@bootlin.com>
  Bjorn Andersson <andersson@kernel.org>
  Bjorn Andersson <quic_bjorande@quicinc.com>
  Bjørn Mork <bjorn@mork.no>
  Brian Foster <bfoster@redhat.com>
  Bruce Johnston <bjohnsto@redhat.com>
  Caleb Connolly <caleb.connolly@linaro.org>
  Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
  Chen Ni <nichen@iscas.ac.cn>
  Chen-Yu Tsai <wens@csie.org>
  Chengen Du <chengen.du@canonical.com>
  Chris Packham <chris.packham@alliedtelesis.co.nz>
  Christian Brauner <brauner@kernel.org>
  Christian Eggers <ceggers@arri.de>
  Christian Kujau <lists@nerdbynature.de>
  Christophe Leroy <christophe.leroy@csgroup.eu>
  Chunyan Zhang <zhangchunyan@iscas.ac.cn>
  Cong Zhang <quic_congzhan@quicinc.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniele Palmas <dnlplm@gmail.com>
  David Lechner <dlechner@baylibre.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Savin <envelsavinds@gmail.com>
  Dmitry Smirnov <d.smirnov@inbox.lv>
  Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
  Edward Adam Davis <eadavis@qq.com>
  Ekansh Gupta <quic_ekangupt@quicinc.com>
  Eric Dumazet <edumazet@google.com>
  Filipe Manana <fdmanana@suse.com>
  Florian Westphal <fw@strlen.de>
  Geliang Tang <tanggeliang@kylinos.cn>
  Gerald Yang <gerald.yang@canonical.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  He Zhe <zhe.he@windriver.com>
  Heikki Krogerus <heikki.krogerus@linux.intel.com>
  Helge Deller <deller@gmx.de>
  Helge Deller <deller@kernel.org>
  Hou Tao <houtao1@huawei.com>
  Hugh Dickins <hughd@google.com>
  Ian Kent <ikent@redhat.com>
  Ilya Dryomov <idryomov@gmail.com>
  Jacky Huang <ychuang3@nuvoton.com>
  Jakub Kicinski <kuba@kernel.org>
  Jason A. Donenfeld <Jason@zx2c4.com>
  Jason Chen <jason.z.chen@intel.com>
  Javier Carrasco <javier.carrasco.cruz@gmail.com>
  Jeff Johnson <quic_jjohnson@quicinc.com>
  Jeff Layton <jlayton@kernel.org>
  Jian Hui Lee <jianhui.lee@canonical.com>
  Jingbo Xu <jefflexu@linux.alibaba.com>
  jinxiaobo <jinxiaobo@uniontech.com>
  Johan Hovold <johan+linaro@kernel.org>
  Johan Hovold <johan@kernel.org>
  Jon Hunter <jonathanh@nvidia.com>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Joy Chakraborty <joychakr@google.com>
  João Paulo Gonçalves <joao.goncalves@toradex.com>
  Kai Vehmanen <kai.vehmanen@linux.intel.com>
  Kelvin Kang <kelvin.kang@intel.com>
  Kent Overstreet <kent.overstreet@linux.dev>
  Kevin Hilman <khilman@baylibre.com>
  Kiran Kumar K <kirankumark@marvell.com>
  Komal Bajaj <quic_kbajaj@quicinc.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Kumar Kartikeya Dwivedi <memxor@gmail.com>
  Kuniyuki Iwashima <kuniyu@amazon.com>
  Lee Jones <lee@kernel.org>
  Lex Siegel <usiegl00@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  Mank Wang <mank.wang@netprisma.us>
  Mark Brown <broonie@kernel.org>
  Martin KaFai Lau <martin.lau@kernel.org>
  Mathias Nyman <mathias.nyman@linux.intel.com>
  Matthew Sakai <msakai@redhat.com>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Michael Chan <michael.chan@broadcom.com>
  Michal Kubiak <michal.kubiak@intel.com>
  Michal Mazur <mmazur2@marvell.com>
  Michał Kopeć <michal.kopec@3mdeb.com>
  Mikulas Patocka <mpatocka@redhat.com>
  Mohammad Shehar Yaar Tausif <sheharyaar48@gmail.com>
  Mor Bar-Gabay <morx.bar.gabay@intel.com> (A Contingent Worker at Intel)
  Mudit Sharma <muditsharma.info@gmail.com>
  Nazar Bilinskyi <nbilinskyi@gmail.com>
  Neal Cardwell <ncardwell@google.com>
  Nithin Dabilpuram <ndabilpuram@marvell.com>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Pedro Pinto <xten@osec.io>
  Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Rasmus Villemoes <linux@rasmusvillemoes.dk>
  Remi Pommarel <repk@triplefau.lt>
  Richard Fitzgerald <rf@opensource.cirrus.com>
  Roger Quadros <rogerq@kernel.org>
  Ronald Wahl <ronald.wahl@raritan.com>
  Saeed Mahameed <saeedm@nvidia.com>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Satheesh Paul <psatheesh@marvell.com>
  Shuming Fan <shumingf@realtek.com>
  Slark Xiao <slark_xiao@163.com>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Srujana Challa <schalla@marvell.com>
  Steev Klimaszewski <steev@kali.org>
  Stefan Eichenberger <stefan.eichenberger@toradex.com>
  Steve French <stfrench@microsoft.com>
  Takashi Iwai <tiwai@suse.de>
  Taniya Das <quic_tdas@quicinc.com>
  Thinh Nguyen <Thinh.Nguyen@synopsys.com>
  Thomas Weißschuh <linux@weissschuh.net>
  Tomas Winker <tomas.winker@intel.com>
  Tony Brelinski <tony.brelinski@intel.com>
  Tony Lindgren <tony@atomide.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Udit Kumar <u-kumar1@ti.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  Uwe Kleine-König <ukleinek@kernel.org>
  Vanillan Wang <vanillanwang@163.com>
  Vitaly Lifshits <vitaly.lifshits@intel.com>
  Vlastimil Babka <vbabka@suse.cz>
  WangYuli <wangyuli@uniontech.com>
  Wentong Wu <wentong.wu@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       fail    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 5500 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Jul 14 09:18:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Jul 2024 09:18:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758577.1168024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sSvMT-0006Wx-Sm; Sun, 14 Jul 2024 09:17:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758577.1168024; Sun, 14 Jul 2024 09: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 1sSvMT-0006Wq-P5; Sun, 14 Jul 2024 09:17:41 +0000
Received: by outflank-mailman (input) for mailman id 758577;
 Sun, 14 Jul 2024 09:17:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSvMS-0006WN-FA; Sun, 14 Jul 2024 09:17:40 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSvMS-0002dQ-5z; Sun, 14 Jul 2024 09:17:40 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sSvMR-00060Y-Oz; Sun, 14 Jul 2024 09:17:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sSvMR-00041u-OV; Sun, 14 Jul 2024 09:17:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=LWzOX7zdNBgUDIvxow41E2YiZ9tL8IUgAeFHHRE+OMw=; b=ST1OtrwQRE75dQD1TeiWAcbaOR
	pfrQyGBYNY5w0GzPAjCkKrhgLzKBxQrOINvYLiGzOghgaXP24zF+Bxe1GmWIULRAklK7cPQ4/fKDG
	0Z8BxmjDlEJ0NT5/6UVryUuWKG+fenzpX7PDlxU3je4GkzNTLuD6iDAXApUq10A7dHCQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186794-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186794: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl-credit1:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-qcow2:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
X-Osstest-Versions-That:
    xen=1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 14 Jul 2024 09:17:39 +0000

flight 186794 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186794/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit1   8 xen-boot         fail in 186787 pass in 186794
 test-armhf-armhf-xl-qcow2     8 xen-boot                   fail pass in 186787

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-qcow2   14 migrate-support-check fail in 186787 never pass
 test-armhf-armhf-xl-qcow2 15 saverestore-support-check fail in 186787 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186787
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186787
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186787
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186787
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186787
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186787
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
baseline version:
 xen                  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9

Last test of basis   186794  2024-07-14 01:53:50 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sun Jul 14 15:23:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Jul 2024 15:23:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758616.1168034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sT13d-00035L-Mb; Sun, 14 Jul 2024 15:22:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758616.1168034; Sun, 14 Jul 2024 15:22:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sT13d-00035E-Ji; Sun, 14 Jul 2024 15:22:37 +0000
Received: by outflank-mailman (input) for mailman id 758616;
 Sun, 14 Jul 2024 15:22:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sT13c-00034r-UF; Sun, 14 Jul 2024 15:22:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sT13c-0001GT-Oz; Sun, 14 Jul 2024 15:22:36 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sT13c-0000zI-CU; Sun, 14 Jul 2024 15:22:36 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sT13c-0000eI-Bx; Sun, 14 Jul 2024 15:22: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=mPadgF0Lg9xvdYj3JFL7kVvtLUiKNycxMbph0EH3hYU=; b=1S+9gVwhvDqap6HZmpCCxc2eV5
	SrrZF/fRR1xA5osWUiWJD64bPlOO2AK5I2ZJJPKbFv4gcZ7IDzI9GNoulxwC9Luiu1xI+DL0a4+3s
	TJF+Yb4JPL5sBVk1Xvi+9IabPKZxNrdoHFpz46W9y8FXcbky+38EvEcYg3vnuSmKwROA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186796-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186796: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=4d145e3f830ba2c2745b42bfba5c2f8fcb8d078a
X-Osstest-Versions-That:
    linux=9d9a2f29aefdadc86e450308ff056017a209c755
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 14 Jul 2024 15:22:36 +0000

flight 186796 linux-linus real [real]
flight 186797 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186796/
http://logs.test-lab.xenproject.org/osstest/logs/186797/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 186761

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186761
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186761
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186761
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                4d145e3f830ba2c2745b42bfba5c2f8fcb8d078a
baseline version:
 linux                9d9a2f29aefdadc86e450308ff056017a209c755

Last test of basis   186761  2024-07-11 05:47:53 Z    3 days
Failing since        186766  2024-07-11 19:40:24 Z    2 days    7 attempts
Testing same since   186796  2024-07-14 08:06:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  "Chen, Jian Jun" <jian.jun.chen@intel.com>
  Aaro Koskinen <aaro.koskinen@iki.fi>
  Abel Vesa <abel.vesa@linaro.org>
  Adrian Hunter <adrian.hunter@intel.com>
  Alan Stern <stern@rowland.harvard.edu>
  Aleksander Jan Bajkowski <olek2@wp.pl>
  Aleksandr Loktionov <aleksandr.loktionov@intel.com>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alexei Starovoitov <ast@kernel.org>
  Andi Shyti <andi.shyti@kernel.org>
  Andre Przywara <andre.przywara@arm.com>
  Arnd Bergmann <arnd@arndb.de>
  Baokun Li <libaokun1@huawei.com>
  Bard Liao <yung-chuan.liao@linux.intel.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bastien Curutchet <bastien.curutchet@bootlin.com>
  Bjorn Andersson <andersson@kernel.org>
  Bjorn Andersson <quic_bjorande@quicinc.com>
  Bjørn Mork <bjorn@mork.no>
  Brian Foster <bfoster@redhat.com>
  Bruce Johnston <bjohnsto@redhat.com>
  Caleb Connolly <caleb.connolly@linaro.org>
  Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
  Chen Ni <nichen@iscas.ac.cn>
  Chen-Yu Tsai <wens@csie.org>
  Chengen Du <chengen.du@canonical.com>
  Chris Packham <chris.packham@alliedtelesis.co.nz>
  Christian Brauner <brauner@kernel.org>
  Christian Eggers <ceggers@arri.de>
  Christian Kujau <lists@nerdbynature.de>
  Christophe Leroy <christophe.leroy@csgroup.eu>
  Chunyan Zhang <zhangchunyan@iscas.ac.cn>
  Cong Zhang <quic_congzhan@quicinc.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniele Palmas <dnlplm@gmail.com>
  David Lechner <dlechner@baylibre.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Savin <envelsavinds@gmail.com>
  Dmitry Smirnov <d.smirnov@inbox.lv>
  Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
  Edward Adam Davis <eadavis@qq.com>
  Ekansh Gupta <quic_ekangupt@quicinc.com>
  Eric Dumazet <edumazet@google.com>
  Filipe Manana <fdmanana@suse.com>
  Florian Westphal <fw@strlen.de>
  Geliang Tang <tanggeliang@kylinos.cn>
  Gerald Yang <gerald.yang@canonical.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  He Zhe <zhe.he@windriver.com>
  Heikki Krogerus <heikki.krogerus@linux.intel.com>
  Helge Deller <deller@gmx.de>
  Helge Deller <deller@kernel.org>
  Hou Tao <houtao1@huawei.com>
  Hugh Dickins <hughd@google.com>
  Ian Kent <ikent@redhat.com>
  Ilya Dryomov <idryomov@gmail.com>
  Jacky Huang <ychuang3@nuvoton.com>
  Jakub Kicinski <kuba@kernel.org>
  Jason A. Donenfeld <Jason@zx2c4.com>
  Jason Chen <jason.z.chen@intel.com>
  Javier Carrasco <javier.carrasco.cruz@gmail.com>
  Jeff Johnson <quic_jjohnson@quicinc.com>
  Jeff Layton <jlayton@kernel.org>
  Jian Hui Lee <jianhui.lee@canonical.com>
  Jingbo Xu <jefflexu@linux.alibaba.com>
  jinxiaobo <jinxiaobo@uniontech.com>
  Johan Hovold <johan+linaro@kernel.org>
  Johan Hovold <johan@kernel.org>
  Jon Hunter <jonathanh@nvidia.com>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Joy Chakraborty <joychakr@google.com>
  João Paulo Gonçalves <joao.goncalves@toradex.com>
  Kai Vehmanen <kai.vehmanen@linux.intel.com>
  Kelvin Kang <kelvin.kang@intel.com>
  Kent Overstreet <kent.overstreet@linux.dev>
  Kevin Hilman <khilman@baylibre.com>
  Kiran Kumar K <kirankumark@marvell.com>
  Komal Bajaj <quic_kbajaj@quicinc.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Kumar Kartikeya Dwivedi <memxor@gmail.com>
  Kuniyuki Iwashima <kuniyu@amazon.com>
  Lee Jones <lee@kernel.org>
  Lex Siegel <usiegl00@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  Mank Wang <mank.wang@netprisma.us>
  Mark Brown <broonie@kernel.org>
  Martin KaFai Lau <martin.lau@kernel.org>
  Mathias Nyman <mathias.nyman@linux.intel.com>
  Matthew Sakai <msakai@redhat.com>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Michael Chan <michael.chan@broadcom.com>
  Michal Kubiak <michal.kubiak@intel.com>
  Michal Mazur <mmazur2@marvell.com>
  Michał Kopeć <michal.kopec@3mdeb.com>
  Mikulas Patocka <mpatocka@redhat.com>
  Mohammad Shehar Yaar Tausif <sheharyaar48@gmail.com>
  Mor Bar-Gabay <morx.bar.gabay@intel.com> (A Contingent Worker at Intel)
  Mudit Sharma <muditsharma.info@gmail.com>
  Nazar Bilinskyi <nbilinskyi@gmail.com>
  Neal Cardwell <ncardwell@google.com>
  Nithin Dabilpuram <ndabilpuram@marvell.com>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Pedro Pinto <xten@osec.io>
  Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Rasmus Villemoes <linux@rasmusvillemoes.dk>
  Remi Pommarel <repk@triplefau.lt>
  Richard Fitzgerald <rf@opensource.cirrus.com>
  Roger Quadros <rogerq@kernel.org>
  Ronald Wahl <ronald.wahl@raritan.com>
  Saeed Mahameed <saeedm@nvidia.com>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Satheesh Paul <psatheesh@marvell.com>
  Shuming Fan <shumingf@realtek.com>
  Slark Xiao <slark_xiao@163.com>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Srujana Challa <schalla@marvell.com>
  Steev Klimaszewski <steev@kali.org>
  Stefan Eichenberger <stefan.eichenberger@toradex.com>
  Steve French <stfrench@microsoft.com>
  Takashi Iwai <tiwai@suse.de>
  Taniya Das <quic_tdas@quicinc.com>
  Thinh Nguyen <Thinh.Nguyen@synopsys.com>
  Thomas Weißschuh <linux@weissschuh.net>
  Tomas Winker <tomas.winker@intel.com>
  Tony Brelinski <tony.brelinski@intel.com>
  Tony Lindgren <tony@atomide.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Udit Kumar <u-kumar1@ti.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  Uwe Kleine-König <ukleinek@kernel.org>
  Vanillan Wang <vanillanwang@163.com>
  Viresh Kumar <viresh.kumar@linaro.org>
  Vitaly Lifshits <vitaly.lifshits@intel.com>
  Vlastimil Babka <vbabka@suse.cz>
  WangYuli <wangyuli@uniontech.com>
  Wentong Wu <wentong.wu@intel.com>
  Wolfram Sang <wsa+renesas@sang-engineering.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 5651 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Jul 14 21:26:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Jul 2024 21:26:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758638.1168044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sT6ju-0007UD-EF; Sun, 14 Jul 2024 21:26:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758638.1168044; Sun, 14 Jul 2024 21: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 1sT6ju-0007U6-Ah; Sun, 14 Jul 2024 21:26:38 +0000
Received: by outflank-mailman (input) for mailman id 758638;
 Sun, 14 Jul 2024 21: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=mpph=OO=redhat.com=longman@srs-se1.protection.inumbo.net>)
 id 1sT6jt-0007U0-DW
 for xen-devel@lists.xenproject.org; Sun, 14 Jul 2024 21:26:37 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be4bdb30-4227-11ef-bbfb-fd08da9f4363;
 Sun, 14 Jul 2024 23:26:34 +0200 (CEST)
Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-266-V4Z6S_slMwOel7WP4u4EDw-1; Sun,
 14 Jul 2024 17:26:27 -0400
Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40])
 (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 mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id ECDE71955F3B; Sun, 14 Jul 2024 21:26:24 +0000 (UTC)
Received: from [10.22.64.27] (unknown [10.22.64.27])
 by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 7E7011956066; Sun, 14 Jul 2024 21:26:21 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be4bdb30-4227-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1720992393;
	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=tDiKkAtznrxe/bIQFxB20HO8ILSBHP/uTJbFQfy2mG0=;
	b=KoSrN2w/o5rGCTD9Pe2oLwe7GVZR2vYpi7oVtmyz6gr3UGaHUjj/BxtNsSWBLi0qVh7Bv5
	ug5HLgfCWph45fFiEDhb8ntyXKECXWg1A0+ublwsiYYOkjjgQsUbaTkZi1ND35q2C731+K
	PRpuIetxuDv/9Lrumxk3qKfnXYs1uws=
X-MC-Unique: V4Z6S_slMwOel7WP4u4EDw-1
Message-ID: <1abe11be-b6d7-4d64-a341-e41a59fdc8c8@redhat.com>
Date: Sun, 14 Jul 2024 17:26:20 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: remove deprecated xen_nopvspin boot parameter
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
 x86@kernel.org, linux-doc@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>,
 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>, Peter Zijlstra <peterz@infradead.org>,
 Will Deacon <will@kernel.org>, Boqun Feng <boqun.feng@gmail.com>,
 xen-devel@lists.xenproject.org
References: <20240710110139.22300-1-jgross@suse.com>
Content-Language: en-US
From: Waiman Long <longman@redhat.com>
In-Reply-To: <20240710110139.22300-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40

On 7/10/24 07:01, Juergen Gross wrote:
> The xen_nopvspin boot parameter is deprecated since 2019. nopvspin
> can be used instead.
>
> Remove the xen_nopvspin boot parameter and replace the xen_pvspin
> variable use cases with nopvspin.
>
> This requires to move the nopvspin variable out of the .initdata
> section, as it needs to be accessed for cpuhotplug, too.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>   .../admin-guide/kernel-parameters.txt         |  5 -----
>   arch/x86/xen/spinlock.c                       | 20 +++++--------------
>   kernel/locking/qspinlock.c                    |  2 +-
>   3 files changed, 6 insertions(+), 21 deletions(-)
>
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index b33d048e01d8..2074ba03f2e3 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -7439,11 +7439,6 @@
>   			access functions when running as Xen PV guest. The
>   			default value is controlled by CONFIG_XEN_PV_MSR_SAFE.
>   
> -	xen_nopvspin	[X86,XEN,EARLY]
> -			Disables the qspinlock slowpath using Xen PV optimizations.
> -			This parameter is obsoleted by "nopvspin" parameter, which
> -			has equivalent effect for XEN platform.
> -
>   	xen_nopv	[X86]
>   			Disables the PV optimizations forcing the HVM guest to
>   			run as generic HVM guest with no PV drivers.
> diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
> index 5c6fc16e4b92..8e4efe0fb6f9 100644
> --- a/arch/x86/xen/spinlock.c
> +++ b/arch/x86/xen/spinlock.c
> @@ -18,7 +18,6 @@
>   static DEFINE_PER_CPU(int, lock_kicker_irq) = -1;
>   static DEFINE_PER_CPU(char *, irq_name);
>   static DEFINE_PER_CPU(atomic_t, xen_qlock_wait_nest);
> -static bool xen_pvspin = true;
>   
>   static void xen_qlock_kick(int cpu)
>   {
> @@ -68,7 +67,7 @@ void xen_init_lock_cpu(int cpu)
>   	int irq;
>   	char *name;
>   
> -	if (!xen_pvspin)
> +	if (nopvspin)
>   		return;
>   
>   	WARN(per_cpu(lock_kicker_irq, cpu) >= 0, "spinlock on CPU%d exists on IRQ%d!\n",
> @@ -95,7 +94,7 @@ void xen_uninit_lock_cpu(int cpu)
>   {
>   	int irq;
>   
> -	if (!xen_pvspin)
> +	if (nopvspin)
>   		return;
>   
>   	kfree(per_cpu(irq_name, cpu));
> @@ -125,10 +124,10 @@ PV_CALLEE_SAVE_REGS_THUNK(xen_vcpu_stolen);
>   void __init xen_init_spinlocks(void)
>   {
>   	/*  Don't need to use pvqspinlock code if there is only 1 vCPU. */
> -	if (num_possible_cpus() == 1 || nopvspin)
> -		xen_pvspin = false;
> +	if (num_possible_cpus() == 1)
> +		nopvspin = true;
>   
> -	if (!xen_pvspin) {
> +	if (nopvspin) {
>   		printk(KERN_DEBUG "xen: PV spinlocks disabled\n");
>   		static_branch_disable(&virt_spin_lock_key);
>   		return;
> @@ -143,12 +142,3 @@ void __init xen_init_spinlocks(void)
>   	pv_ops.lock.kick = xen_qlock_kick;
>   	pv_ops.lock.vcpu_is_preempted = PV_CALLEE_SAVE(xen_vcpu_stolen);
>   }
> -
> -static __init int xen_parse_nopvspin(char *arg)
> -{
> -	pr_notice("\"xen_nopvspin\" is deprecated, please use \"nopvspin\" instead\n");
> -	xen_pvspin = false;
> -	return 0;
> -}
> -early_param("xen_nopvspin", xen_parse_nopvspin);
> -
> diff --git a/kernel/locking/qspinlock.c b/kernel/locking/qspinlock.c
> index 1df5fef8a656..7d96bed718e4 100644
> --- a/kernel/locking/qspinlock.c
> +++ b/kernel/locking/qspinlock.c
> @@ -583,7 +583,7 @@ EXPORT_SYMBOL(queued_spin_lock_slowpath);
>   #include "qspinlock_paravirt.h"
>   #include "qspinlock.c"
>   
> -bool nopvspin __initdata;
> +bool nopvspin;
>   static __init int parse_nopvspin(char *arg)
>   {
>   	nopvspin = true;
Acked-by: Waiman Long <longman@redhat.com>



From xen-devel-bounces@lists.xenproject.org Sun Jul 14 22:45:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 14 Jul 2024 22:45:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758645.1168053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sT7xU-0007xM-Ig; Sun, 14 Jul 2024 22:44:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758645.1168053; Sun, 14 Jul 2024 22: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 1sT7xU-0007xF-G5; Sun, 14 Jul 2024 22:44:44 +0000
Received: by outflank-mailman (input) for mailman id 758645;
 Sun, 14 Jul 2024 22:44:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sT7xT-0007x5-Ca; Sun, 14 Jul 2024 22:44:43 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sT7xT-0001Fp-0q; Sun, 14 Jul 2024 22:44:43 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sT7xS-0006Lj-J2; Sun, 14 Jul 2024 22:44:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sT7xS-0005M6-IV; Sun, 14 Jul 2024 22:44: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Hwpeqqud4qkL3QtWKTZoC0UxKjpn3yyuWfNrv69UgTw=; b=dZyOXIVvuW6PAmMjmlIK4Z/7BW
	T8ubzt8O3DsIGd+Kvqh+r4lXL0aXGN3nTIbZYIf0NzUO9EAQtgWpyIVgG/xROIi5rV6ySf9CBmm6i
	JlDUJ1T8J4csItUbuojnqT4uyrS6SOvfjL0ARIaMHhntdIzgPOci/dfhaFjAw314w5Wo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186798-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186798: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=4d145e3f830ba2c2745b42bfba5c2f8fcb8d078a
X-Osstest-Versions-That:
    linux=9d9a2f29aefdadc86e450308ff056017a209c755
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 14 Jul 2024 22:44:42 +0000

flight 186798 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186798/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit2   8 xen-boot         fail in 186796 pass in 186798
 test-armhf-armhf-xl-credit1   8 xen-boot                   fail pass in 186796
 test-armhf-armhf-examine      8 reboot                     fail pass in 186796
 test-armhf-armhf-xl-multivcpu  8 xen-boot                  fail pass in 186796
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186796

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 186796 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 186796 never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check fail in 186796 never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check fail in 186796 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186761
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186761
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186761
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186761
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                4d145e3f830ba2c2745b42bfba5c2f8fcb8d078a
baseline version:
 linux                9d9a2f29aefdadc86e450308ff056017a209c755

Last test of basis   186761  2024-07-11 05:47:53 Z    3 days
Failing since        186766  2024-07-11 19:40:24 Z    3 days    8 attempts
Testing same since   186796  2024-07-14 08:06:59 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  "Chen, Jian Jun" <jian.jun.chen@intel.com>
  Aaro Koskinen <aaro.koskinen@iki.fi>
  Abel Vesa <abel.vesa@linaro.org>
  Adrian Hunter <adrian.hunter@intel.com>
  Alan Stern <stern@rowland.harvard.edu>
  Aleksander Jan Bajkowski <olek2@wp.pl>
  Aleksandr Loktionov <aleksandr.loktionov@intel.com>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alexei Starovoitov <ast@kernel.org>
  Andi Shyti <andi.shyti@kernel.org>
  Andre Przywara <andre.przywara@arm.com>
  Arnd Bergmann <arnd@arndb.de>
  Baokun Li <libaokun1@huawei.com>
  Bard Liao <yung-chuan.liao@linux.intel.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bastien Curutchet <bastien.curutchet@bootlin.com>
  Bjorn Andersson <andersson@kernel.org>
  Bjorn Andersson <quic_bjorande@quicinc.com>
  Bjørn Mork <bjorn@mork.no>
  Brian Foster <bfoster@redhat.com>
  Bruce Johnston <bjohnsto@redhat.com>
  Caleb Connolly <caleb.connolly@linaro.org>
  Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
  Chen Ni <nichen@iscas.ac.cn>
  Chen-Yu Tsai <wens@csie.org>
  Chengen Du <chengen.du@canonical.com>
  Chris Packham <chris.packham@alliedtelesis.co.nz>
  Christian Brauner <brauner@kernel.org>
  Christian Eggers <ceggers@arri.de>
  Christian Kujau <lists@nerdbynature.de>
  Christophe Leroy <christophe.leroy@csgroup.eu>
  Chunyan Zhang <zhangchunyan@iscas.ac.cn>
  Cong Zhang <quic_congzhan@quicinc.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniele Palmas <dnlplm@gmail.com>
  David Lechner <dlechner@baylibre.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Savin <envelsavinds@gmail.com>
  Dmitry Smirnov <d.smirnov@inbox.lv>
  Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
  Edward Adam Davis <eadavis@qq.com>
  Ekansh Gupta <quic_ekangupt@quicinc.com>
  Eric Dumazet <edumazet@google.com>
  Filipe Manana <fdmanana@suse.com>
  Florian Westphal <fw@strlen.de>
  Geliang Tang <tanggeliang@kylinos.cn>
  Gerald Yang <gerald.yang@canonical.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  He Zhe <zhe.he@windriver.com>
  Heikki Krogerus <heikki.krogerus@linux.intel.com>
  Helge Deller <deller@gmx.de>
  Helge Deller <deller@kernel.org>
  Hou Tao <houtao1@huawei.com>
  Hugh Dickins <hughd@google.com>
  Ian Kent <ikent@redhat.com>
  Ilya Dryomov <idryomov@gmail.com>
  Jacky Huang <ychuang3@nuvoton.com>
  Jakub Kicinski <kuba@kernel.org>
  Jason A. Donenfeld <Jason@zx2c4.com>
  Jason Chen <jason.z.chen@intel.com>
  Javier Carrasco <javier.carrasco.cruz@gmail.com>
  Jeff Johnson <quic_jjohnson@quicinc.com>
  Jeff Layton <jlayton@kernel.org>
  Jian Hui Lee <jianhui.lee@canonical.com>
  Jingbo Xu <jefflexu@linux.alibaba.com>
  jinxiaobo <jinxiaobo@uniontech.com>
  Johan Hovold <johan+linaro@kernel.org>
  Johan Hovold <johan@kernel.org>
  Jon Hunter <jonathanh@nvidia.com>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Joy Chakraborty <joychakr@google.com>
  João Paulo Gonçalves <joao.goncalves@toradex.com>
  Kai Vehmanen <kai.vehmanen@linux.intel.com>
  Kelvin Kang <kelvin.kang@intel.com>
  Kent Overstreet <kent.overstreet@linux.dev>
  Kevin Hilman <khilman@baylibre.com>
  Kiran Kumar K <kirankumark@marvell.com>
  Komal Bajaj <quic_kbajaj@quicinc.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Kumar Kartikeya Dwivedi <memxor@gmail.com>
  Kuniyuki Iwashima <kuniyu@amazon.com>
  Lee Jones <lee@kernel.org>
  Lex Siegel <usiegl00@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  Mank Wang <mank.wang@netprisma.us>
  Mark Brown <broonie@kernel.org>
  Martin KaFai Lau <martin.lau@kernel.org>
  Mathias Nyman <mathias.nyman@linux.intel.com>
  Matthew Sakai <msakai@redhat.com>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Michael Chan <michael.chan@broadcom.com>
  Michal Kubiak <michal.kubiak@intel.com>
  Michal Mazur <mmazur2@marvell.com>
  Michał Kopeć <michal.kopec@3mdeb.com>
  Mikulas Patocka <mpatocka@redhat.com>
  Mohammad Shehar Yaar Tausif <sheharyaar48@gmail.com>
  Mor Bar-Gabay <morx.bar.gabay@intel.com> (A Contingent Worker at Intel)
  Mudit Sharma <muditsharma.info@gmail.com>
  Nazar Bilinskyi <nbilinskyi@gmail.com>
  Neal Cardwell <ncardwell@google.com>
  Nithin Dabilpuram <ndabilpuram@marvell.com>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Pedro Pinto <xten@osec.io>
  Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Rasmus Villemoes <linux@rasmusvillemoes.dk>
  Remi Pommarel <repk@triplefau.lt>
  Richard Fitzgerald <rf@opensource.cirrus.com>
  Roger Quadros <rogerq@kernel.org>
  Ronald Wahl <ronald.wahl@raritan.com>
  Saeed Mahameed <saeedm@nvidia.com>
  Sakari Ailus <sakari.ailus@linux.intel.com>
  Satheesh Paul <psatheesh@marvell.com>
  Shuming Fan <shumingf@realtek.com>
  Slark Xiao <slark_xiao@163.com>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Srujana Challa <schalla@marvell.com>
  Steev Klimaszewski <steev@kali.org>
  Stefan Eichenberger <stefan.eichenberger@toradex.com>
  Steve French <stfrench@microsoft.com>
  Takashi Iwai <tiwai@suse.de>
  Taniya Das <quic_tdas@quicinc.com>
  Thinh Nguyen <Thinh.Nguyen@synopsys.com>
  Thomas Weißschuh <linux@weissschuh.net>
  Tomas Winker <tomas.winker@intel.com>
  Tony Brelinski <tony.brelinski@intel.com>
  Tony Lindgren <tony@atomide.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Udit Kumar <u-kumar1@ti.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  Uwe Kleine-König <ukleinek@kernel.org>
  Vanillan Wang <vanillanwang@163.com>
  Viresh Kumar <viresh.kumar@linaro.org>
  Vitaly Lifshits <vitaly.lifshits@intel.com>
  Vlastimil Babka <vbabka@suse.cz>
  WangYuli <wangyuli@uniontech.com>
  Wentong Wu <wentong.wu@intel.com>
  Wolfram Sang <wsa+renesas@sang-engineering.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   9d9a2f29aefd..4d145e3f830b  4d145e3f830ba2c2745b42bfba5c2f8fcb8d078a -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 05:47:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 05:47:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758656.1168064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTEYk-00063T-C2; Mon, 15 Jul 2024 05:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758656.1168064; Mon, 15 Jul 2024 05: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 1sTEYk-00063M-99; Mon, 15 Jul 2024 05:47:38 +0000
Received: by outflank-mailman (input) for mailman id 758656;
 Mon, 15 Jul 2024 05: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=nlhD=OP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sTEYi-00063G-Rf
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 05:47: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 bb99f81f-426d-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 07:47: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 52C2C21B34;
 Mon, 15 Jul 2024 05:47: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 1D74013686;
 Mon, 15 Jul 2024 05:47: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 jhETBfW3lGZjSwAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 15 Jul 2024 05:47: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: bb99f81f-426d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721022453; 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=J+GqE3zqQG29fe01QvbOYJpv81BAnAV5DjIOqhm9FCg=;
	b=Gyd6ytwoPxlYStNOG4uxRoKG4Ae9aUO2b4WvlDdQ3kUafMozj8kLjj3FmpbEwah0pNLc6V
	F8UwY/FtRwuxsDz2eGxqcDKyfyzurkCJirfrYTM0sJPhRj0BeA4AMBUumoQ/rkJiUX0v+H
	0TKe1+JNSyA7Q9N4JDhnFVlEdZbpRaw=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=Gyd6ytwo
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721022453; 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=J+GqE3zqQG29fe01QvbOYJpv81BAnAV5DjIOqhm9FCg=;
	b=Gyd6ytwoPxlYStNOG4uxRoKG4Ae9aUO2b4WvlDdQ3kUafMozj8kLjj3FmpbEwah0pNLc6V
	F8UwY/FtRwuxsDz2eGxqcDKyfyzurkCJirfrYTM0sJPhRj0BeA4AMBUumoQ/rkJiUX0v+H
	0TKe1+JNSyA7Q9N4JDhnFVlEdZbpRaw=
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.11-rc1
Date: Mon, 15 Jul 2024 07:47:32 +0200
Message-ID: <20240715054732.7508-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: 52C2C21B34
X-Spam-Flag: NO
X-Spam-Score: 0.99
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [0.99 / 50.00];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCVD_VIA_SMTP_AUTH(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)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:dkim];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from,2a07:de40:b281:106:10:150:64:167:received];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_NONE(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+]
X-Spam-Level: 
X-Spamd-Bar: /

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.11-rc1-tag

xen: branch for v6.11-rc1

It contains the following patches:

- some trivial cleanups
- a fix for the Xen timer
- a patch for adding boot time selectable debug capability to the Xen multicall
  handling
- two fixes for the recently added  Xen irqfd handling

Thanks.

Juergen

 Documentation/admin-guide/kernel-parameters.txt |  11 +-
 arch/arm/xen/p2m.c                              |   2 +-
 arch/x86/xen/apic.c                             |   2 -
 arch/x86/xen/debugfs.c                          |   2 +-
 arch/x86/xen/debugfs.h                          |   7 --
 arch/x86/xen/enlighten.c                        |   2 -
 arch/x86/xen/enlighten_hvm.c                    |   2 -
 arch/x86/xen/enlighten_pv.c                     |   4 -
 arch/x86/xen/mmu.c                              |   3 +-
 arch/x86/xen/mmu.h                              |  28 -----
 arch/x86/xen/mmu_hvm.c                          |   2 +-
 arch/x86/xen/mmu_pv.c                           |  15 ++-
 arch/x86/xen/multicalls.c                       | 128 ++++++++++++++++----
 arch/x86/xen/multicalls.h                       |  69 -----------
 arch/x86/xen/p2m.c                              |   6 +-
 arch/x86/xen/pmu.c                              |   1 -
 arch/x86/xen/pmu.h                              |  22 ----
 arch/x86/xen/setup.c                            |   1 -
 arch/x86/xen/smp.c                              |   1 -
 arch/x86/xen/smp.h                              |  51 --------
 arch/x86/xen/smp_hvm.c                          |   2 -
 arch/x86/xen/smp_pv.c                           |   3 -
 arch/x86/xen/spinlock.c                         |  20 +---
 arch/x86/xen/suspend.c                          |   2 -
 arch/x86/xen/time.c                             |   2 +-
 arch/x86/xen/xen-ops.h                          | 148 +++++++++++++++++++++++-
 drivers/xen/evtchn.c                            |   1 +
 drivers/xen/manage.c                            |   2 +-
 drivers/xen/privcmd-buf.c                       |   1 +
 drivers/xen/privcmd.c                           |  36 ++++--
 drivers/xen/xen-pciback/pci_stub.c              |   1 +
 include/xen/events.h                            |   2 +
 kernel/locking/qspinlock.c                      |   2 +-
 33 files changed, 305 insertions(+), 276 deletions(-)

Chen Ni (2):
      x86/xen: Convert comma to semicolon
      xen/arm: Convert comma to semicolon

Christophe JAILLET (1):
      xen/manage: Constify struct shutdown_handler

Frediano Ziglio (1):
      x86/xen/time: Reduce Xen timer tick

Jeff Johnson (1):
      xen: add missing MODULE_DESCRIPTION() macros

Juergen Gross (4):
      xen: make multicall debug boot time selectable
      x86/xen: make some functions static
      x86/xen: eliminate some private header files
      x86/xen: remove deprecated xen_nopvspin boot parameter

Viresh Kumar (2):
      xen: privcmd: Switch from mutex to spinlock for irqfds
      xen: privcmd: Fix possible access to a freed kirqfd instance


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 06:16:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 06:16:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758662.1168074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTF0q-0001Wn-Hj; Mon, 15 Jul 2024 06:16:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758662.1168074; Mon, 15 Jul 2024 06:16: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 1sTF0q-0001Wg-Eo; Mon, 15 Jul 2024 06:16:40 +0000
Received: by outflank-mailman (input) for mailman id 758662;
 Mon, 15 Jul 2024 06:16:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTF0p-0001WW-9Y; Mon, 15 Jul 2024 06:16:39 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTF0p-000684-1K; Mon, 15 Jul 2024 06:16:39 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTF0o-0006eS-EE; Mon, 15 Jul 2024 06:16:38 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTF0o-0004v4-Cr; Mon, 15 Jul 2024 06:16:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=qD7IHnElEBDxlyngSd89TuWYurWxVqjjcRgOmm8M3LI=; b=Du9y4G1N0DcPGD58Wb+ha431f6
	xFNsEp3Y2x6jleLvjet6xEgrdVOLM9waVJJxVoW/c58+An8hca788CVGc4mn5DbZpPK7qcFD8bGn3
	t7QPNJXGF2Wb3PizJIqQTyC/V9ItO0NgmYFJqhoV5D4ftYv3SYa0jaWBIjFrslbPaXZc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186801-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186801: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=91226e1eecacac832e5091d6a1867dc52666ee85
X-Osstest-Versions-That:
    ovmf=d4dbe5e101dcb86974f8dce3505b38343b83b432
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Jul 2024 06:16:38 +0000

flight 186801 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186801/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 91226e1eecacac832e5091d6a1867dc52666ee85
baseline version:
 ovmf                 d4dbe5e101dcb86974f8dce3505b38343b83b432

Last test of basis   186781  2024-07-12 16:11:08 Z    2 days
Testing same since   186801  2024-07-15 04:13:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dhaval <dhaval@rivosinc.com>
  Dhaval Sharma <dhaval@rivosinc.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   d4dbe5e101..91226e1eec  91226e1eecacac832e5091d6a1867dc52666ee85 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 06:19:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 06:19:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758669.1168083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTF3T-00029e-Ur; Mon, 15 Jul 2024 06:19:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758669.1168083; Mon, 15 Jul 2024 06:19: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 1sTF3T-00029X-S9; Mon, 15 Jul 2024 06:19:23 +0000
Received: by outflank-mailman (input) for mailman id 758669;
 Mon, 15 Jul 2024 06:19:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTF3T-00029N-CN; Mon, 15 Jul 2024 06:19:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTF3T-0006AG-AU; Mon, 15 Jul 2024 06:19:23 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTF3T-0006jc-0L; Mon, 15 Jul 2024 06:19:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTF3S-0005BZ-WB; Mon, 15 Jul 2024 06:19:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=K6YiKy+VDx/mrGiZwRmvCehYTcAkpZONQoNFnLyhyeQ=; b=TWFkjsKOD6Eki541n62hRN7P0J
	k3oySiIWnJOWGLp4tn6ULi9Nt6FI145DIypeTxxmT7IvzttutQt2rW0ZDHo5/oki4/vwV96F5U9e9
	f+Ah24uQgvTyScy8cdbjIoCT0xzB+TD8ov5wKDRId6psdhS0Fcx5Vq8Dnbi4CZdN6h+A=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186799-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186799: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-arndale:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=0c3836482481200ead7b416ca80c68a29cfdaabd
X-Osstest-Versions-That:
    linux=4d145e3f830ba2c2745b42bfba5c2f8fcb8d078a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Jul 2024 06:19:22 +0000

flight 186799 linux-linus real [real]
flight 186802 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186799/
http://logs.test-lab.xenproject.org/osstest/logs/186802/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl-raw       8 xen-boot                 fail REGR. vs. 186798

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-arndale   8 xen-boot            fail pass in 186802-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-arndale 15 migrate-support-check fail in 186802 never pass
 test-armhf-armhf-xl-arndale 16 saverestore-support-check fail in 186802 never pass
 test-armhf-armhf-xl-credit1   8 xen-boot                     fail  like 186798
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186798
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186798
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186798
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186798
 test-armhf-armhf-xl-multivcpu  8 xen-boot                     fail like 186798
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186798
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186798
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                0c3836482481200ead7b416ca80c68a29cfdaabd
baseline version:
 linux                4d145e3f830ba2c2745b42bfba5c2f8fcb8d078a

Last test of basis   186798  2024-07-14 15:41:38 Z    0 days
Testing same since   186799  2024-07-14 23:13:26 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexandre Chartre <alexandre.chartre@oracle.com>
  Borislav Petkov (AMD) <bp@alien8.de>
  John Stultz <jstultz@google.com>
  Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
  Josh Don <joshdon@google.com>
  Juri Lelli <juri.lelli@redhat.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masahiro Yamada <masahiroy@kernel.org>
  Nathan Chancellor <nathan@kernel.org>
  Peter Zijlstra (Intel) <peterz@infradead.org>
  Wander Lairson Costa <wander@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 367 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 07:15:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 07:15:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758678.1168094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTFve-0000hR-1A; Mon, 15 Jul 2024 07:15:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758678.1168094; Mon, 15 Jul 2024 07:15: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 1sTFvd-0000hK-U4; Mon, 15 Jul 2024 07:15:21 +0000
Received: by outflank-mailman (input) for mailman id 758678;
 Mon, 15 Jul 2024 07:15: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTFvc-0000hE-GW
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 07:15:20 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd6c78a8-4279-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 09:15:18 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-58b447c5112so5244899a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 00:15: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
 98e67ed59e1d1-2caedc92bc2sm3582000a91.35.2024.07.15.00.15.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 00:15: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: fd6c78a8-4279-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721027718; x=1721632518; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=arqopd3DaogN70g6E7wVKXIZIZyWriDLx8GiiDkO+Xs=;
        b=KDuBFGDvriLVqsS67zHnQAv3vkppcCzYnhs5scw3dzxB2SKjOTIY3bUFWlChRyl0k1
         2VHJDdLvrycNhMs1rAkgpYpCucochtdOshQMaA0lKocITg3uOMYIocxt3j40K93deEfO
         owm97NHSOYL1vT02oSHin396oUe2acv5ct7nqZxdR7orY8sF+ffVXvcOBsfKFeVldGWt
         BgVUa4C8j+bxn61q5zXIC82Xj3HKS8znNMBhZC38AIxYB0ZuQUS5O6H2yhyBql/kjdsz
         eu/Dv6OcAZaSqqr81qYB0gHxbCmzXmaFjkNOcGHagysgEWmvUYV7tnxH0bagN3+ATYmj
         fTbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721027718; x=1721632518;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=arqopd3DaogN70g6E7wVKXIZIZyWriDLx8GiiDkO+Xs=;
        b=ao/N6XpsE29jpaFiCn+QVzJeQIEfQ/C/7ANgYA2RvDFvCw/Mz6C4rbyvIEBL7jDDBu
         RQFDGG7HqiO3wpo90aa1mEoE0oWeWOPWm5apEcvBgi8NRzNBAa6d3JwBWV3sIMd6hmP0
         5nG5kKkREl55hg1v8WZkEOmKKorH/jRthmatkID9kp3Lpw/y/NLtDrBC9hEpcl7Qz4oH
         JkjUiXKPtwlPjnC+bHqyZsyDF2s/q+ANJmFr/TJB17CpmbjN2ExMtSW3x0kzug2GaD8B
         6m6jF3qKYXxN1g86fgXG2k1nw/ZidMSmuJ0oNPWD6r99/6oGLhnNeg11+CkeIrQRuZl5
         9ppw==
X-Forwarded-Encrypted: i=1; AJvYcCUSewp1YjRK1xgrKuw80WP2oVp0D///+Wwu0h0xlT+LbQQtjvXsK8C/2P438YY1FwZ3w9wBSeQcdRSEwdzfeeAJfKZ0TLkahz2yrEXmkRU=
X-Gm-Message-State: AOJu0Yzv68warCAKbRfcJO2Dqh711CH2Vuhx74HmEBaMjHBw3fMsdFq1
	fI9mF/JpkGFc8wT4trIBNmDp30bk+2/w1/t/i+yQYNuIXzTx6k0bWoqET8H1rg==
X-Google-Smtp-Source: AGHT+IGbEjypicj/ZhBK+akIt4jPQ+zRfgnWjJVVWU7UHXBGTRlRxw2FRq8mNgDjMsNQjQVXciYAkQ==
X-Received: by 2002:a17:907:94c5:b0:a72:6b08:ab24 with SMTP id a640c23a62f3a-a780b68a964mr1526286366b.14.1721027717849;
        Mon, 15 Jul 2024 00:15:17 -0700 (PDT)
Message-ID: <1a29cebf-a120-47c8-8c84-899879c9f8db@suse.com>
Date: Mon, 15 Jul 2024 09:15:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH for-4.19] xen/bitmap: amend MISRA C deviation for Rule
 20.7
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>, michal.orzel@amd.com,
 xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, consulting@bugseng.com,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <794724e70c4e45224916576af01070e8aebe9aab.1720517398.git.nicola.vetrini@bugseng.com>
 <5ff40947-5672-4497-83e7-53ea370b5f58@suse.com>
 <alpine.DEB.2.22.394.2407121423590.3635@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.2407121423590.3635@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 23:26, Stefano Stabellini wrote:
> On Tue, 9 Jul 2024, Jan Beulich wrote:
>> On 09.07.2024 11:34, Nicola Vetrini wrote:
>>> --- a/xen/include/xen/bitmap.h
>>> +++ b/xen/include/xen/bitmap.h
>>> @@ -103,18 +103,16 @@ extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
>>>  #define bitmap_switch(nbits, zero, small, large)			  \
>>>  	unsigned int n__ = (nbits);					  \
>>>  	if (__builtin_constant_p(nbits) && !n__) {			  \
>>> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>>>  		zero;							  \
>>>  	} else if (__builtin_constant_p(nbits) && n__ <= BITS_PER_LONG) { \
>>> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>>>  		small;							  \
>>>  	} else {							  \
>>> -		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
>>>  		large;							  \
>>>  	}
>>
>> An observation I made only while discussing this on the meeting is that by
>> going from this form to ...
>>
>>>  static inline void bitmap_zero(unsigned long *dst, unsigned int nbits)
>>>  {
>>> +	/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */
>>>  	bitmap_switch(nbits,,
>>>  		*dst = 0UL,
>>>  		memset(dst, 0, bitmap_bytes(nbits)));
>>
>> ... this form, you actually widen what the deviation covers to the entire
>> macro, which is too much. We don't want to deviate the rule for all of the
>> arguments, after all.
>>
>> However, it further occurred to me that the reason for needing the deviation
>> looks to merely be that in some cases (like the one above) we pass empty
>> macro arguments. That's getting in the way of parenthesizing the use sites.
>> We could avoid this, though, by adding e.g.
>>
>> #define nothing ((void)0)
>>
>> near the definition of bitmap_switch() and then using that in place of the
>> empty arguments. Provided of course this is the only obstacle to
>> parenthesization. At which point no deviation ought to be needed in the
>> first place.
> 
> 
> Roberto suggested in another email thread:
> 
>  
>> The problem comes from macro arguments that are expressions, in some cases,
>> and statements, in other cases, as it happens for bitmap_{switch,zero}.
>>
>> Possible solutions include:
>> - wrap the arguments that are statements in a do-while-false;
>> - add a ';' after the arguments that are statements.
>>
>> But what we recommend is to add a deviation for the cases where an argument,
>> after the expansion, is surrounded by the following tokens: '{' '}' ';'.
>> This will address all violations related to bitmap_{switch,zero} and requires
>> only a modification of the ECLAIR configuration which will look like this:
>>
>> -doc_begin="The expansion of an argument between tokens '{', '}' and ';' is safe."
>> -config=MC3R1.R20.7,expansion_context+={safe, "left_right(^[\\{;]$,^[;\\}]$)"}
>> -doc_end
>>
>> With this, all the remaining 71 violations in x86 code concerns msi.h, which we were
>> requested not to touch, and the 2 violations in arm code can be easily resolved
>> with a patch adding parentheses, for which a patch was already submitted by
>> Nicola and rejected by Jan.
> 
> 
> I think this is a good way forward because it is a simple deviation that
> makes sense to have, and makes sense as project wide deviation (it is
> not a deviation by name, e.g. deviating anything called
> "bitmap_switch").
> 
> I like Roberto's suggestion. Jan, are you OK with it?

See my reply there.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 07:24:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 07:24:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758685.1168103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTG40-0002NE-UI; Mon, 15 Jul 2024 07:24:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758685.1168103; Mon, 15 Jul 2024 07: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 1sTG40-0002N7-Rp; Mon, 15 Jul 2024 07:24:00 +0000
Received: by outflank-mailman (input) for mailman id 758685;
 Mon, 15 Jul 2024 07: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTG3z-0002N1-OO
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 07:23:59 +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 3373d4f0-427b-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 09:23:58 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a77abe5c709so481157766b.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 00:23: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
 d9443c01a7336-1fc0bc5092dsm33973225ad.280.2024.07.15.00.23.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 00: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: 3373d4f0-427b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721028238; x=1721633038; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IVgjvqUZs2dEciksGBgTdI6Gx2A+tLsiOrzqzVbrx/s=;
        b=M0Ci92K7BEqjlp8yk4NhBxqmFXjcE7KUz2LN6sKdm7w/YmrwTYc98WpVJE+OwYqw9+
         PNsl/coqITiZVCj2kaPWiR08FmtFsV4R9HT1DSJP3+GwfrailU1wnAIoTBKdTNlrm1ov
         vt7dc1wN+ZfQf7UrgmxQVT1vZ+kbYblqGOs9SdqpXlZE+D3T8bSqftKt0NxuH4Q0LVHF
         fc4dq/LSMO6irBCTzAWPyf9Xq9c9vOycjbYefMcQAq4R9PuFOx6tFquGZU6qxoxkZ0Q5
         KDCt07dPiBQJFjD8XeZtusaAESBurOakN1QETIbdkyEDcCaGenXfMW4IyQk+I39WyTI/
         dS+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721028238; x=1721633038;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IVgjvqUZs2dEciksGBgTdI6Gx2A+tLsiOrzqzVbrx/s=;
        b=AlaJfC2FfRBbowiljijNsR8GwTEJJNwHt0aF6jOEDqByiW9/uBt1gu79MmmqGu9lOZ
         qfuDQf9WNgQ1Yu+Jsuo61llj+WkPBjdWwa53zgdxkvJtey9rZo3uhWxlgvOPSbCnngK9
         EJ2SpLWdDXz6s0i0GpsQ4Yy0T/5Y43eDf0577zVmS66OLpTiKylsq2LlkVpDKSxc0G5F
         B6IklPf0Sl9Umokp3zcWOATYqKrJuUjJz6mQJriqIzziqR9/XOEvpXy9awjdXo+sRebw
         VVeKfZNu/0kOCCPX0SvOLbJdQ8ZoReJ9zbPUZ7BGUeCn/bEo5dS8TCuwU/7LsnnAQTT1
         tt9w==
X-Forwarded-Encrypted: i=1; AJvYcCU9P5Nnz2N3Xd1fccDvH/h36m/XJSWdi1O7lnITzyJ2AOR3sUMjkT1oltFwSPzY0wygKB9dMjSIt4CUZEiPG9JVorbzL98OABCKl+EwsXU=
X-Gm-Message-State: AOJu0YzsjXyCA0BFMTsd2r/vOs28m1akUC4FiOIuJyEigVid27VSaW6n
	IlBZccJf7NRZ5Kk4KKae7wZCjYqB52JvTM1W3vC4s2uV/8JegWJ77lknEh+riQ==
X-Google-Smtp-Source: AGHT+IG8N9EPlHVrPD3fBXYB6Ny3+MxsDpa9ucNhaWmdcNRMR1J+CjYNj32Yah7y9SSt3WG1F7Pung==
X-Received: by 2002:a17:906:f8db:b0:a6f:309d:ec23 with SMTP id a640c23a62f3a-a780b89ca05mr1152862966b.72.1721028237898;
        Mon, 15 Jul 2024 00:23:57 -0700 (PDT)
Message-ID: <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com>
Date: Mon, 15 Jul 2024 09:23:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
 consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com>
 <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com>
 <alpine.DEB.2.22.394.2407121528380.3635@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.2407121528380.3635@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.07.2024 00:38, Stefano Stabellini wrote:
> On Wed, 3 Jul 2024, Jan Beulich wrote:
>> I further have to note that, as indicated during the earlier discussion,
>> I still cannot see how occasional ambiguity is going to be dealt with.
>> IOW from the rules above two different headers could still end up with
>> the same guard identifier.
> 
> Maybe something like this?
> 
> "In the event of naming collisions, exceptions to the coding style may
> be made at the discretion of the contributor and maintainers."

Hmm, maybe I wasn't clear enough then. My take is that the scheme should
simply not allow for possible collisions. Neither the contributor nor the
reviewer may spot such a collision, and it may therefore take until the
first full scan that one is actually noticed. Which I consider too late
in the process, even if we already were at the point where commits were
checked pre-push.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 07:27:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 07:27:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758690.1168113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTG7S-000361-Dd; Mon, 15 Jul 2024 07:27:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758690.1168113; Mon, 15 Jul 2024 07:27: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 1sTG7S-00035u-B5; Mon, 15 Jul 2024 07:27:34 +0000
Received: by outflank-mailman (input) for mailman id 758690;
 Mon, 15 Jul 2024 07:27:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTG7Q-00035o-VZ
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 07:27:32 +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 b1fb51e7-427b-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 09:27:30 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a7523f0870cso435795066b.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 00:27: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
 d9443c01a7336-1fc0bc48de8sm34256835ad.255.2024.07.15.00.27.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 00:27: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: b1fb51e7-427b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721028450; x=1721633250; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0E5OvlxyOxa3nPbkFhwH5R9IjqWMFuxpE0FMpHITQt8=;
        b=Pf5HxBp/Y6JHJLZ4Wd+WCLC49y8eH8I8X/VGGN5GPreYI7LOsmSjImCv0HFzqyxyqu
         I3PZbXRAujemFxbCuOOInHpTJteC6lTLjPXieeEdx01mwAQndWK/lu/GS1yElvYcAdwq
         359q/BeWgX2/36JxA+9576i9mvdUJA5HbDf7OPIjXyL9OBQhuPXYsZ3L4Nphw9T3J8Rq
         vZNRfQDWuO3WnPVnOsuieaOnWgOPf4Hywn2CAhho6y8kRMDA3D6Ceo5E+AAVCaSyHOZi
         JazO9oWd2UkK1TdBHxf2n4GI3UCKQqcyImmnTSOwSW6ZyjK9ppvCNpjdksczbS7Rv8It
         BhbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721028450; x=1721633250;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0E5OvlxyOxa3nPbkFhwH5R9IjqWMFuxpE0FMpHITQt8=;
        b=j1lYdf4nPphGV7ocn39RHRSUnHE9lKzvaBuFORLdk4bvUQFq2JEZNNu2T1pzGC42fX
         RlDEHIv3JLBJ6PKxAU0h9p2SyKM3ZvvhqOSvzHZQNRNU8bJiIVRVz2rvtyCUDf7Ryj0f
         qvL+YN1rwENniqXvZUFF6rDCDwHzz8X8xnOFFBqY22qZfik6GKXZroVvHBD3tKzQbYkW
         GemY938TllJB56j5gxj3okVE6MVQBicSuiEXiWBb50OQDJnfaUnun389XpA2MjNFlLyS
         lrEdqPHNqqmr4Uq9/HjdpIFaqFW+EIl5GgHar+m2DrfWujplg50dpz5yJH1S8uB/5Sah
         9g4Q==
X-Forwarded-Encrypted: i=1; AJvYcCXyBRb4KrQCfB0dYtLzi61PM+IBjgKVjxLi+VEcyKeM29IjAsLODyuyK+GomSPiyNRI3dhFnzkaZtLN2RTIZjB46R1/r+ixdgU1m234C08=
X-Gm-Message-State: AOJu0Yw0OI48sNxc6Hcv4zvQrRj9mPBIMc+vFKxVJc+xrbejIlO6NfTs
	GjMPM4bFcIN2cNtGcq0N8VlCt98VKwyJYXkvqPeYvpGGXjOXG0FvpIZnbwyKqQ==
X-Google-Smtp-Source: AGHT+IHj24D42SG/Qz8xQoEcjJoo3wPCg4JAeWVve09nlmEsyEz8NcaKvMvMgQehbq9AhSEQpAmVQw==
X-Received: by 2002:a17:906:d287:b0:a77:f2c5:84b3 with SMTP id a640c23a62f3a-a780b6b0edfmr1073910666b.22.1721028450153;
        Mon, 15 Jul 2024 00:27:30 -0700 (PDT)
Message-ID: <54bd70de-2426-4573-b95e-8f00a415c8af@suse.com>
Date: Mon, 15 Jul 2024 09:27:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/17] xen/x86: address violations of MISRA C:2012
 Directive 4.10
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: alessandro.zucchelli@bugseng.com, nicola.vetrini@bugseng.com,
 consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <d67d06849732fea11391afd61ff9891ed11795e5.1719829101.git.alessandro.zucchelli@bugseng.com>
 <09bc4d2e-b4fb-428b-b0e3-266952ebd3c5@suse.com>
 <20ad12e8beec50aaa58305ee5f376e21@bugseng.com>
 <6620954e-b6d3-4073-ae68-0451aea44c52@suse.com>
 <alpine.DEB.2.22.394.2407121505330.3635@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.2407121505330.3635@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.07.2024 00:09, Stefano Stabellini wrote:
> On Tue, 9 Jul 2024, Jan Beulich wrote:
>> On 09.07.2024 09:38, Alessandro Zucchelli wrote:
>>> On 2024-07-01 16:21, Jan Beulich wrote:
>>>> On 01.07.2024 15:36, Alessandro Zucchelli wrote:
>>>>> --- a/xen/arch/x86/Makefile
>>>>> +++ b/xen/arch/x86/Makefile
>>>>> @@ -260,17 +260,18 @@ $(objtree)/arch/x86/include/asm/asm-macros.h: 
>>>>> $(obj)/asm-macros.i $(src)/Makefil
>>>>>  	$(call filechk,asm-macros.h)
>>>>>
>>>>>  define filechk_asm-macros.h
>>>>> +	guard=$$(echo ASM_${SRCARCH}_ASM_MACROS_H | tr a-z A-Z);  \
>>>>
>>>> Nit: Hard tab slipped in.
>>>>
>>>>> +    echo '#ifndef $$guard'; \
>>>>> +    echo '#define $$guard'; \
>>>>>      echo '#if 0'; \
>>>>>      echo '.if 0'; \
>>>>>      echo '#endif'; \
>>>>> -    echo '#ifndef __ASM_MACROS_H__'; \
>>>>> -    echo '#define __ASM_MACROS_H__'; \
>>>>>      echo 'asm ( ".include \"$@\"" );'; \
>>>>> -    echo '#endif /* __ASM_MACROS_H__ */'; \
>>>>>      echo '#if 0'; \
>>>>>      echo '.endif'; \
>>>>>      cat $<; \
>>>>> -    echo '#endif'
>>>>> +    echo '#endif'; \
>>>>> +    echo '#endif /* $$guard */'
>>>>>  endef
>>>>>
>>>>>  $(obj)/efi.lds: AFLAGS-y += -DEFI
>>>>> --- a/xen/arch/x86/cpu/cpu.h
>>>>> +++ b/xen/arch/x86/cpu/cpu.h
>>>>> @@ -1,3 +1,6 @@
>>>>> +#ifndef X86_CPU_CPU_H
>>>>> +#define X86_CPU_CPU_H
>>>>
>>>> This, ...
>>>>
>>>>> --- a/xen/arch/x86/x86_64/mmconfig.h
>>>>> +++ b/xen/arch/x86/x86_64/mmconfig.h
>>>>> @@ -5,6 +5,9 @@
>>>>>   * Author: Allen Kay <allen.m.kay@intel.com> - adapted from linux
>>>>>   */
>>>>>
>>>>> +#ifndef X86_64_MMCONFIG_H
>>>>> +#define X86_64_MMCONFIG_H
>>>>
>>>> ... this, and ...
>>>>
>>>>> --- a/xen/arch/x86/x86_emulate/private.h
>>>>> +++ b/xen/arch/x86/x86_emulate/private.h
>>>>> @@ -6,6 +6,9 @@
>>>>>   * Copyright (c) 2005-2007 XenSource Inc.
>>>>>   */
>>>>>
>>>>> +#ifndef X86_X86_EMULATE_PRIVATE_H
>>>>> +#define X86_X86_EMULATE_PRIVATE_H
>>>>
>>>> ... this guard can't possibly all follow the same proposed naming 
>>>> scheme
>>>> (wherever the final version of that is being recorded; I don't recall 
>>>> it
>>>> having gone in, and I didn't spot anything earlier in the series); at
>>>> least one must be wrong.
>>>
>>> For x86/x86_64/mmconfig.h has been made an exception as stated in the 
>>> commit
>>> message:
>>> Note that in x86_64/mmconfig.h we slightly deviate from the naming
>>> convention in place: instead of having the inclusion guard as
>>> X86_X86_64_MMCONFIG_H we shortened the directory prefix as X86_64 for
>>> the sake of readability.
>>>
>>> If you do not agree with this exception and you prefer to keep the 
>>> additional
>>> X86_ prefix let me know so as I prepare the patch series V5 I may 
>>> reintroduce it.
>>
>> What I have an issue with is making an exception in one place when quite
>> clearly would as much (or as little) benefit from one. Before there's
>> any further back and forth, I'd like to suggest that you wait with
>> adjustments here until the base scheme has really been agreed upon,
>> including situations where we think we'd like to make exceptions (after
>> all we might decide that there simply shouldn't be exceptions, and that
>> in order to eliminate such redundancy in guard identifiers we'd rather
>> like to rename some of the files).
> 
> I don't think it is a good idea to introduce a naming scheme and
> immediately add exceptions. I would stick to the naming scheme even if
> it doesn't always lead to the best possible name. Also these are header
> guards, they are not critical variables for which clarity and shortness
> are paramount.
> 
> The naming scheme was written in the 0 email and copy/pasted here for
> convenience:
> 
> - private headers -> <dir>_<filename>_H
> - asm-generic headers -> ASM_GENERIC_<filename>_H
> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
> - include/generated/<subdir>/<filename>.h-> GENERATED_<subdir>_<filename>_H
> - arch/<architecture>/include/generated/asm/<filename>.h-> <arch>_GENERATED_ASM_<name>_H
> 
> So in this patch I would sticked to the naming scheme and used:
> 
> X86_CPU_CPU_H
> X86_X86_64_MMCONFIG_H
> X86_X86_EMULATE_PRIVATE_H

Uniformly sticking to the scheme is definitely an option. Provided we're
happy with excessively long identifiers (think of, sooner or later, there
going to be style violations wrt line length) and ones having overly
redundant name components. Yet as said elsewhere, first and foremost I
think we need a scheme where collisions cannot occur.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 07:38:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 07:38:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758696.1168124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTGHi-0004sV-BI; Mon, 15 Jul 2024 07:38:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758696.1168124; Mon, 15 Jul 2024 07:38:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTGHi-0004sO-8T; Mon, 15 Jul 2024 07:38:10 +0000
Received: by outflank-mailman (input) for mailman id 758696;
 Mon, 15 Jul 2024 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=0XWl=OP=inria.fr=fonyuy-asheri.caleb@srs-se1.protection.inumbo.net>)
 id 1sTGHg-0004sI-VX
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 07:38:09 +0000
Received: from mail2-relais-roc.national.inria.fr
 (mail2-relais-roc.national.inria.fr [192.134.164.83])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2d43cad5-427d-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 09:38:07 +0200 (CEST)
Received: from zcs2-store8.inria.fr ([128.93.142.6])
 by mail2-relais-roc.national.inria.fr with ESMTP; 15 Jul 2024 09:38:07 +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: 2d43cad5-427d-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=inria.fr; s=dc;
  h=date:from:to:cc:message-id:in-reply-to:references:
   subject:mime-version:content-transfer-encoding;
  bh=Q2xB0ycytdFt6GtQ0OAtp7lxpvGQTrLNcLfOs+LKlbk=;
  b=SiAIHQsy/RL4Hr2zcLHzeEZKQeXd1yBggb6ECWYt+AxY9HXi0tzlTU3W
   RGlrL/qwZEM2UCvfn7PX+J/3TmF9UMkSwV2u0DURnmMw3EZxtCKcb5ge+
   T1pd3Xn1LYX5cJ+fo8MYiIbOjXLKL1DpJevDi8vQhlH59gO35QYg0CI2k
   Y=;
Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Pass smtp.mailfrom=fonyuy-asheri.caleb@inria.fr; spf=None smtp.helo=postmaster@zcs2-store8.inria.fr
Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of
  fonyuy-asheri.caleb@inria.fr designates 128.93.142.6 as
  permitted sender) identity=mailfrom; client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="fonyuy-asheri.caleb@inria.fr";
  x-conformance=spf_only; x-record-type="v=spf1";
  x-record-text="v=spf1 include:mailout.safebrands.com
  a:basic-mail.safebrands.com a:basic-mail01.safebrands.com
  a:basic-mail02.safebrands.com ip4:128.93.142.0/24
  ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:89.107.174.7 mx
  ~all"
Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender
  authenticity information available from domain of
  postmaster@zcs2-store8.inria.fr) identity=helo;
  client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="postmaster@zcs2-store8.inria.fr";
  x-conformance=spf_only
X-IronPort-AV: E=Sophos;i="6.09,209,1716242400"; 
   d="scan'208";a="175442015"
X-MGA-submission: =?us-ascii?q?MDGIhysIclcNmZ9sFdGvhmx7zROVj2FBKMX6pk?=
 =?us-ascii?q?apSphm3CswQtUox6bV2zY2UELeHCoH4MZZDzJo8oAqCWQTDtYDs+w0q2?=
 =?us-ascii?q?pr4dgNnqETl8u6L1Nmoe3GJAY5i3xPs4ZmJyqZHRra7AwdeY1xAtpFYp?=
 =?us-ascii?q?Pn21ei1ePRbvkIGxG2NVWDSQ=3D=3D?=
Date: Mon, 15 Jul 2024 09:38:06 +0200 (CEST)
From: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Message-ID: <1557490999.4048664.1721029086794.JavaMail.zimbra@inria.fr>
In-Reply-To: <8f8dac21-92fe-4760-8578-2fbfde2f2c14@citrix.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr> <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com> <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr> <8f8dac21-92fe-4760-8578-2fbfde2f2c14@citrix.com>
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Originating-IP: [131.254.23.3]
X-Mailer: Zimbra 10.0.8_GA_4611 (ZimbraWebClient - GC126 (Linux)/10.0.8_GA_4611)
Thread-Topic: Help with Understanding vcpu xstate restore error during vm migration
Thread-Index: Ux+ols7um7sPrHotp+o2RrMr45DJ8Q==

>> PV Default policy: 30 leaves, 2 MSRs
>> ...
>>   0000000d:00000000 -> 00000003:00000000:00000240:00000000
>>   0000000d:00000001 -> 00000007:00000000:00000000:00000000
> 
> ... PV guests get nothing, while you're trying to migrate in a guest
> which...
> 
>> =========================================================================================================
>> VM xen-cpuid -p $domid
>> ---------------------------------------------------------------------------------------------------------
>> Domain 3 policy: 31 leaves, 2 MSRs
>> ...
>>   0000000d:00000000 -> 00000007:00000000:00000340:00000000
>>   0000000d:00000001 -> 00000001:00000000:00000000:00000000
>>   0000000d:00000002 -> 00000100:00000240:00000000:00000000
> 
> ... has AVX.

This makes much more sense now. 
> 
> This explains why you're hitting the "guest size > xen size" check.
> 
> Migration should have failed earlier with a clearer message about the VM
> having features not available on the target, but I suspect I know why it
> didn't, and sadly its an item I've had on the todo list for a few years.
> 
> Perhaps the more important question, are you booting the skylake with
> cpuid=no-avx on the command line by any chance?

No. I didn't boot any of the machines with any cpuid modification whatsoever. 

> 
> ~Andrew

Thanks a lot for these pointers Andrew.

Caleb.


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 08:11:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 08:11:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758705.1168133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTGoA-0002Hx-T7; Mon, 15 Jul 2024 08:11:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758705.1168133; Mon, 15 Jul 2024 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 1sTGoA-0002Hq-QZ; Mon, 15 Jul 2024 08:11:42 +0000
Received: by outflank-mailman (input) for mailman id 758705;
 Mon, 15 Jul 2024 08: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTGo9-0002Hk-GG
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 08:11:41 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc41baf0-4281-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 10:11:39 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2eee1384e85so18978991fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 01:11: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
 98e67ed59e1d1-2caedc1709esm3695276a91.34.2024.07.15.01.11.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 01: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: dc41baf0-4281-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721031098; x=1721635898; 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=c7m8DZbQd+ip4oRHd39rQDkxd2GQoT3piu9PElROalE=;
        b=aFYWRWcMUYXjvWjNSwzowQFJsRT4D/PI+zzoQDG5jBPykkV9sijJeVZ6rw1NIj969T
         gYSicGoVnZeWV+fCJ93Q7OU+NqJ/Xfpsb9Nqyf0Qnn/iomoUEG/Q32an/bm88D9wrvVN
         uxwDTqCsORBvWgDw/wiAa4BK2qUKdzyeEcxTp2BZlj6RA0SefcGOdFmpLBOgqHpbHfcc
         5MbtCJoPTVDlAMkuV1BDGfMG8V95x1Zz7XQ6u078FF7WxZ/lxCUY8deZUI9ixDdOEk3P
         iD3vB3C6hgtX9sTMEtul4JIpnqna8Xv8XqYkYiam6gljR0rd5UTXaZdQfV86LQlEdVo2
         4d9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721031098; x=1721635898;
        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=c7m8DZbQd+ip4oRHd39rQDkxd2GQoT3piu9PElROalE=;
        b=cOTp8QR0DPNJ9ItiwsoH5NoqccKKFb0r0Qlb8N+NgDKU2KPJW7kfLVHRbxihIcTh8x
         Y4C7PwMCYVGnilX1VT/k4mdRCDE6GJ8AR7koew8SrHHpeuxHKG+988yPB4OiD3qqB8fK
         7WUDGn1NhX20oBxKiP42kOZFHblOIUSc04YTD03A3wtM8595dN20YgmKJE14nMEx8sJx
         BaQkhY/pI3iJ9CZhlLsnBRNxavZJ1S5iV7HjMLKS3Li++vt4VyFwBjFYodcvgR6NFnQI
         8OIsmhuIL62YBTju2tdfZxDjIl4urFwKro7BsXawwHsctz0CKFNF7Y7i6sRafXnEDP6Y
         WrvA==
X-Forwarded-Encrypted: i=1; AJvYcCXxq1GQSxacZHQBvWkscbEWDkvdGfjewlJK0AgFXAaXOOFov/VYeSC9ASVlpkPGeK93cOt1//B64jI/WeybI+IP7BFYb2YGyBkBNEhg51A=
X-Gm-Message-State: AOJu0Yw228jGIN4AmT5aTXroX2bziuVKoTCT56/ATkkb9/YW+Tmj1+/X
	dTAnq0TOROofdYevTyv05V+itndORwSxm1hRHvCPZBpgB1nCNg7GtcjUf8yaow==
X-Google-Smtp-Source: AGHT+IEihF3XqkjNTNS26LfpYXqgAdHdOtySnPlQm6jtR2621K98ZRCP8O9EpfSWC4aoCYaJI/LpRA==
X-Received: by 2002:a2e:9bcc:0:b0:2ee:493f:d751 with SMTP id 38308e7fff4ca-2eeb30fd3admr131248181fa.23.1721031097998;
        Mon, 15 Jul 2024 01:11:37 -0700 (PDT)
Message-ID: <1057f937-da16-415f-a760-ac4f00bc29f3@suse.com>
Date: Mon, 15 Jul 2024 10:11:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: systemd units are not installed in 4.19.0-rc2 anymore
To: Andrew Cooper <andrew.cooper3@citrix.com>
References: <ZpHqR4e3VaFAXC3m@mail-itl>
 <94d0ef92-9fb8-4097-a633-59f1190434c4@citrix.com>
Content-Language: en-US
Cc: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel
 <xen-devel@lists.xenproject.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <94d0ef92-9fb8-4097-a633-59f1190434c4@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.07.2024 15:02, Andrew Cooper wrote:
> On 13/07/2024 3:45 am, Marek Marczykowski-Górecki wrote:
>> Hi,
>>
>> Something has changed between -rc1 and -rc2 that systemd units are not
>> installed anymore by default.
>>
>> Reproducer: 
>>
>>     ./configure --prefix=/usr
>>     make dist-tools
>>     ls dist/install/usr/lib/systemd/system
>>
>> It does work, if I pass --enable-systemd to ./configure.
>>
>> My guess is the actual change is earlier, specifically 6ef4fa1e7fe7
>> "tools: (Actually) drop libsystemd as a dependency", but configure was
>> regenerated only later. But TBH, I don't fully understand interaction
>> between those m4 macros...
> 
> Between -rc1 and -rc2 was 7cc95f41669d
> 
> That regenerated the existing configure scripts with Autoconf 2.71, vs
> 2.69 previously.
> 
> Glancing through again, I can't spot anything that looks relevant.
> 
> 
> 6ef4fa1e7fe7 for systemd itself was regenerated, and I had to go out of
> my way to get autoconf 2.69 to do it.

Yet was it correct for that commit to wholesale drop
AX_CHECK_SYSTEMD_ENABLE_AVAILABLE? That's, afaics, the only place where
$systemd would have been set to y in the absence of --enable-systemd.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 08:16:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 08:16:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758711.1168143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTGsc-0002xa-HM; Mon, 15 Jul 2024 08:16:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758711.1168143; Mon, 15 Jul 2024 08:16:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTGsc-0002xT-Eg; Mon, 15 Jul 2024 08:16:18 +0000
Received: by outflank-mailman (input) for mailman id 758711;
 Mon, 15 Jul 2024 08:16: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTGsa-0002xN-NG
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 08:16:16 +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 81096333-4282-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 10:16:15 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-58b0dddab63so6063520a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 01:16: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
 d2e1a72fcca58-70b7ec7eed2sm3753563b3a.116.2024.07.15.01.16.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 01: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: 81096333-4282-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721031374; x=1721636174; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=c1fCl8hvuy8T3Cz9xkd6LC3DHO1chOq/GeAxdBbXZ+I=;
        b=P/US6n1GawKJnh4vci/ggoSiT9JMnsZSNyHKHZn1f5wc70ntyrgwze1eG86m+tFkbl
         hyZvYdqysskU9PjMRIfxmjFi2D4asg7hOTpFucmDJyT9lC9nkgmn33TcLErjTF2bs++/
         xONjjJcIX/cgeXu9jg3xWLiWEnYg+tzUJWfRMp2NPpUlPrNhZsM5EAy2fndkT7HzyWYx
         Q2KX5aNp8gs/URhdQRm7qXITwrHer3cBoqb3Rmac78RUtYK5TYUI4E1TFugMsi7YBzPG
         v5nG+3UZV/tzry6Y1nruNzg/Dv5V4B8jRKe3jmd1BC80I38cjd2Mo9REXJBrrWIa8kCT
         dubQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721031374; x=1721636174;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c1fCl8hvuy8T3Cz9xkd6LC3DHO1chOq/GeAxdBbXZ+I=;
        b=vy5qFiW2h1IFWOK0ZpYDboH3VHTwcfaJbr8B3+DmG92lqG1WBORs/8E/0MFUI8cC8U
         RfpapPfG/6MIVFtfxuvL16BwW7OR3Rzm2bYBGqPzQ9hPfSmbqLnxun2WvZUEaVE9GzHl
         dmWrG0ldnaXu2FMejKpY7kBQjbDp3CaA8zkpGBwr13sxdOpVtf5UoLRhWqE4giXi6Iy7
         zEGQ1fz8qlfG2ADG5OKOuGTQ40M3mts8T9aqVxzmE8dHlDBnZnOGhJp2y3IK9KCTEBvf
         Kd5uKIaS2mWmRlIZubabTTogYKDsoWd6L0EpxB8hESvCA9HRoWP2zVKbSQG2aJHRfXQP
         7Hew==
X-Gm-Message-State: AOJu0YxjOeMN0rNqFd6qwMZQCHMBj2Xt9dBzPUV/0aIJ3QQS48JuK7FH
	lAK6hLQL0O4cIQIIITe3A86Bra/DHTg2wc3w3NmvZYelQ1BpaFSqLkDh8LoSQA==
X-Google-Smtp-Source: AGHT+IHtUgW4bS8zjANZXJD8SU3NTnIDfsFoWcYPzXhUO9H+/E+b1tp7MF8Le6aHRZwNrilxWeOuKg==
X-Received: by 2002:a17:906:7d0f:b0:a72:5598:f03d with SMTP id a640c23a62f3a-a780b884b2emr1071519066b.59.1721031374515;
        Mon, 15 Jul 2024 01:16:14 -0700 (PDT)
Message-ID: <77f1ff6e-a7dd-45c8-b706-429674b559f2@suse.com>
Date: Mon, 15 Jul 2024 10:16:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
To: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr>
 <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
 <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr>
 <8f8dac21-92fe-4760-8578-2fbfde2f2c14@citrix.com>
 <1557490999.4048664.1721029086794.JavaMail.zimbra@inria.fr>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1557490999.4048664.1721029086794.JavaMail.zimbra@inria.fr>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 09:38, Fonyuy-Asheri Caleb wrote:
>> Perhaps the more important question, are you booting the skylake with
>> cpuid=no-avx on the command line by any chance?
> 
> No. I didn't boot any of the machines with any cpuid modification whatsoever. 

Yet is there perhaps "Mitigating GDS by disabling AVX" in the boot log of
the hypervisor (which sadly so far you didn't supply anywhere afaics)?

Jan



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 08:22:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 08:22:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758717.1168153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTGyL-0004h4-4B; Mon, 15 Jul 2024 08:22:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758717.1168153; Mon, 15 Jul 2024 08:22: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 1sTGyL-0004gx-1c; Mon, 15 Jul 2024 08:22:13 +0000
Received: by outflank-mailman (input) for mailman id 758717;
 Mon, 15 Jul 2024 08:22: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=0XWl=OP=inria.fr=fonyuy-asheri.caleb@srs-se1.protection.inumbo.net>)
 id 1sTGyK-0004gr-KE
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 08:22:12 +0000
Received: from mail2-relais-roc.national.inria.fr
 (mail2-relais-roc.national.inria.fr [192.134.164.83])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 546ec6bd-4283-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 10:22:10 +0200 (CEST)
Received: from zcs2-store8.inria.fr ([128.93.142.6])
 by mail2-relais-roc.national.inria.fr with ESMTP; 15 Jul 2024 10:22:07 +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: 546ec6bd-4283-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=inria.fr; s=dc;
  h=date:from:to:cc:message-id:in-reply-to:references:
   subject:mime-version:content-transfer-encoding;
  bh=kefrEhqeUiPl9ywStuhoSjoYUB+udRQ/ReDa9TSwV8A=;
  b=ssnBt32nRmCOiTKynz/iSpSCGoj4iiZRGwraIYkch7QY8TsngY3UCMwU
   kRa/Hy8j0piQYuVWtpaZeLeAZOzVxzVpp8FL0AL8xPgVaEC5B+gaJjRQf
   QNmXKa64j3qb6/r/0p58qraK3nKjPNB4X+AsPLQroPEKtldF2zWZBvV/O
   M=;
Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Pass smtp.mailfrom=fonyuy-asheri.caleb@inria.fr; spf=None smtp.helo=postmaster@zcs2-store8.inria.fr
Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of
  fonyuy-asheri.caleb@inria.fr designates 128.93.142.6 as
  permitted sender) identity=mailfrom; client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="fonyuy-asheri.caleb@inria.fr";
  x-conformance=spf_only; x-record-type="v=spf1";
  x-record-text="v=spf1 include:mailout.safebrands.com
  a:basic-mail.safebrands.com a:basic-mail01.safebrands.com
  a:basic-mail02.safebrands.com ip4:128.93.142.0/24
  ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:89.107.174.7 mx
  ~all"
Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender
  authenticity information available from domain of
  postmaster@zcs2-store8.inria.fr) identity=helo;
  client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="postmaster@zcs2-store8.inria.fr";
  x-conformance=spf_only
X-IronPort-AV: E=Sophos;i="6.09,209,1716242400"; 
   d="scan'208";a="175453498"
X-MGA-submission: =?us-ascii?q?MDEw5bRhjOiIqX2h/bOVOfxmfmAY9mdREotRsy?=
 =?us-ascii?q?Xw/K673XeMK85qjy2MBuKfhX9hdEqC4JbW9ezeIClecMylBQqUy1DrM1?=
 =?us-ascii?q?+as+OvR/Ji5QudYhdZ61prfq9N7zE69xZF08j33hnyCnrgMqIiJb2Yii?=
 =?us-ascii?q?xvdjDmkBNmztwjVx1NSuidtQ=3D=3D?=
Date: Mon, 15 Jul 2024 10:22:07 +0200 (CEST)
From: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, 
	Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <1423184950.4133169.1721031727075.JavaMail.zimbra@inria.fr>
In-Reply-To: <77f1ff6e-a7dd-45c8-b706-429674b559f2@suse.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr> <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com> <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr> <8f8dac21-92fe-4760-8578-2fbfde2f2c14@citrix.com> <1557490999.4048664.1721029086794.JavaMail.zimbra@inria.fr> <77f1ff6e-a7dd-45c8-b706-429674b559f2@suse.com>
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Originating-IP: [131.254.23.3]
X-Mailer: Zimbra 10.0.8_GA_4611 (ZimbraWebClient - GC126 (Linux)/10.0.8_GA_4611)
Thread-Topic: Help with Understanding vcpu xstate restore error during vm migration
Thread-Index: mmofZLSCLDeYo1GQiZW01hVVn5Bulw==

----- Original Message -----
> From: "Jan Beulich" <jbeulich@suse.com>
> To: "Fonyuy-Asheri Caleb" <fonyuy-asheri.caleb@inria.fr>
> Cc: "xen-devel" <xen-devel@lists.xenproject.org>, "Andrew Cooper" <andrew.cooper3@citrix.com>
> Sent: Monday, July 15, 2024 10:16:07 AM
> Subject: Re: Help with Understanding vcpu xstate restore error during vm migration

> On 15.07.2024 09:38, Fonyuy-Asheri Caleb wrote:
>>> Perhaps the more important question, are you booting the skylake with
>>> cpuid=no-avx on the command line by any chance?
>> 
>> No. I didn't boot any of the machines with any cpuid modification whatsoever.
> 
> Yet is there perhaps "Mitigating GDS by disabling AVX" in the boot log of
> the hypervisor (which sadly so far you didn't supply anywhere afaics)?

I didn't notice that. Unfortunately I no longer have access to the logs to check since I was 
working on resources I reserved for a limited period.

However, do you mind telling me what this would mean for my environment?

For more context, what I'm trying to investigate here is the impact of xstate 
and xsave dependencies on live migration.

> 
> Jan

Caleb


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 08:22:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 08:22:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758718.1168163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTGyb-000516-Av; Mon, 15 Jul 2024 08:22:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758718.1168163; Mon, 15 Jul 2024 08: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 1sTGyb-00050z-8S; Mon, 15 Jul 2024 08:22:29 +0000
Received: by outflank-mailman (input) for mailman id 758718;
 Mon, 15 Jul 2024 08:22: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTGya-00050m-Kt
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 08:22:28 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ea38827-4283-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 10:22:27 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2eebc76119aso45047711fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 01:22: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
 d9443c01a7336-1fc0bc5c79fsm35217055ad.301.2024.07.15.01.22.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 01:22: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: 5ea38827-4283-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721031746; x=1721636546; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=58S0xE3QiRDkchyUaM82K/KWNSY6hXOeB1/Q0nY/GEA=;
        b=YLRuu34Z97/4+37XU33gGSRVVpvUvtZrJRVS6wpAdKuot8EzGSijDszYCQFIfr+y7n
         ojnGYZsUv5UXZHufcinZl2KXIOKDvLTDl6SbIZpA2m3bRWh2aaj02hiY2hjZcw7myUKw
         T0gAKb5F6w1XIixwrSzeKxbqP+mL8nBmlqo93P0cUvMRQBwWGcPschGeZz7HWnKjE8Vu
         UMD2Hg2T903PZ/YD6SZyQCtWYxz0l1TLv87yYWXn63RsZxZzuCatIHeYLwv3tkvBGUlf
         9TJuxw1kn3Np2CWfYp5o0RNOVf0+awBP99ztSzeUCVhKBjUaYYkAGgNptuLiGWEZMNr/
         amnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721031746; x=1721636546;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=58S0xE3QiRDkchyUaM82K/KWNSY6hXOeB1/Q0nY/GEA=;
        b=lYTCuu9G30+nP9cP/t5jFZvUrK9H/tH7DFmDu0FNr0hG46psfyxTz6Fh/iTi/VRSu9
         VvJocARbm740Qd0pcflU1xbcznbgm31XDVGYc4B0CW0zIiWA6kOpqy15TrOgdZ2aUFmH
         DHXvJRh9i8A5TEaemGn8Zb0/4v5SWak3rzO42OeW2tD0mkZ2tfJDWbzolg76b6B5WI2k
         6FKGW1IU+i5LyGrc8K1paJpfM+4Be8Lhy/EXsqXrxbQ27wjjbnxcrXhDvMBwl3MkKoPX
         0jxTsXvZSJ4GVFiuF0dozVrEJGCVzMEnsiFM+TL3qonlj8z/WoO92OJeu0XegdXfoHCH
         yeDQ==
X-Forwarded-Encrypted: i=1; AJvYcCXyzrXbG8HXEhkRRCNQFIWAdOqSYqyt7l5qe/T9QXojY/bAsI30v8TpLzQi8MTZDUuRfPvIbnPpJLzS+twE2eJTxRqDbmgkEIxlQTKG6us=
X-Gm-Message-State: AOJu0YwzJugKBNiUS/gWK9LRPoQNwA0RAIeo2OzKNbRe7b3jUV7s/vK8
	yuZFWsNAXNnIuFI9n8zAauwAZEIPdR59nh5RH51PavvL9ov7heG0xOjEVmJelA==
X-Google-Smtp-Source: AGHT+IHHstzH/gO4c0qjDQOJ381DpcziQiVitdHE0Zba/m3tyCTNrZDkeuCPMF5TT2Pw6dZxDpjJJg==
X-Received: by 2002:a2e:9695:0:b0:2eb:d924:43fb with SMTP id 38308e7fff4ca-2eeb31716f8mr118990911fa.41.1721031744267;
        Mon, 15 Jul 2024 01:22:24 -0700 (PDT)
Message-ID: <985b012b-1088-4bef-8cc7-2973c3e3296a@suse.com>
Date: Mon, 15 Jul 2024 10:22:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/misra: add rule 12.2
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: andrew.cooper3@citrix.com, julien@xen.org, michal.orzel@amd.com,
 bertrand.marquis@arm.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2407121543250.3635@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.2407121543250.3635@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.07.2024 00:45, Stefano Stabellini wrote:
> As discussed during the last MISRA C meeting, add Rule 12.2 to the list
> of MISRA C rules we accept, together with an explanation that we use gcc
> -fsanitize=undefined alone to check for violations.

Neither the "alone" here nor ...

> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -443,6 +443,14 @@ maintainers if you want to suggest a change.
>       - The macro NULL shall be the only permitted form of null pointer constant
>       -
>  
> +   * - `Rule 12.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_12_02.c>`_
> +     - Required
> +     - The right hand operand of a shift operator shall lie in the range
> +       zero to one less than the width in bits of the essential type of
> +       the left hand operand
> +     - We rely exclusively on gcc -fsanitize=undefined to check for
> +       dangerious violations to this rule and to ensure compliance

... the "exclusively" here look quite right to me. That's true for shift
counts which aren't build-time constant. For those which are we leverage
ordinary compiler diagnostics. Preferably with a respective adjustment:

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

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 08:32:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 08:32:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758729.1168173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTH7r-0007E9-67; Mon, 15 Jul 2024 08:32:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758729.1168173; Mon, 15 Jul 2024 08:32:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTH7r-0007E2-3V; Mon, 15 Jul 2024 08:32:03 +0000
Received: by outflank-mailman (input) for mailman id 758729;
 Mon, 15 Jul 2024 08: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTH7p-0007Dw-Q6
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 08:32:01 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4a37693-4284-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 10:32:00 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2eede876fcbso19528371fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 01: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
 d9443c01a7336-1fc0bc382dbsm35244505ad.197.2024.07.15.01.31.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 01: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: b4a37693-4284-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721032320; x=1721637120; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Xn40UtTy8TdvPeqSr1c9H7imK3anLhvikuJDipCqnCM=;
        b=LviQ2tWIDyWKxpSV8zie1v9vOZZdezqSlESx2HKK5ffumlTnShqYOJopuLDBAivfhc
         mPTAi3baDVUSTQSaV8RaxLVXpC2DIZJUai5PXWZm1EjOvVknc945X3mtcRwY4BbophY3
         l2EdAvpa1bL7vEFNNLEdlyAy3V5fiOPvZouS39FkMM0+gxbt1GcgEopbBrrfd1V9FYhc
         KmmOBtqTtiFpaQS6frea7R5tNLOT0ntdptM0ClblTYg1j2quXWqi1XwRmcdv8gYphVr5
         GwFKf0YdHPWYvPLg112huBl2SGyW2nB2iLm1qbf1T8BNvAuLgTXqryIrPvDcxnQB/Sfi
         d8jw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721032320; x=1721637120;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Xn40UtTy8TdvPeqSr1c9H7imK3anLhvikuJDipCqnCM=;
        b=a9Iok/4eSY68urVORKDPp3meEIzz1KvLHO8vyjWmRosbJnaVBU5bUuzm54tMD6XXvX
         QxCxp5q9daco8KVS32zGX9wYixg2ql8Yn1ybPSJMDvM9JFvesq7B9wnE8jj0NPVqbU97
         ODkNTLxjnwa7revHLPtQU8/A2jJIpKGeWu0+kJGLODgQIWAmr3bPQq6ZODA7//jf+Rpj
         Y5Oz2aDRIxngC3uy5t+KET+VvQPntvXSHKplBFGSB6+hmyub0TRFrlywl4HR3Z6KfgG9
         Nh3L1lLNv3paYiBMk0ULzccCL56FNb/S+S3rFgc39S+SSqt4iRgbDgfuuEd+4YUtfIlq
         sPLA==
X-Gm-Message-State: AOJu0Yy5HzJMy5ym2mq96cqDP11i4R2uQi6V//i5uwaQ1+0NXiUouK2W
	QaVpFchQ592Sd7qweM4cHMzHlq6VFwOLX4NsNnCjYTyd6QzuDjHeNaEBJi31fQ==
X-Google-Smtp-Source: AGHT+IHiHx7EnG8/hoztHPo/OQPdyc2l11AClgEv9gJf0+Bn2TcfSP7Awr2g4KhgiBMlnx70piDb8A==
X-Received: by 2002:a2e:a78b:0:b0:2ee:6b86:b0aa with SMTP id 38308e7fff4ca-2eeb30e3693mr154897071fa.17.1721032320054;
        Mon, 15 Jul 2024 01:32:00 -0700 (PDT)
Message-ID: <61d717fd-62e3-434c-a326-687b649148c2@suse.com>
Date: Mon, 15 Jul 2024 10:31:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
To: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr>
 <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
 <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr>
 <8f8dac21-92fe-4760-8578-2fbfde2f2c14@citrix.com>
 <1557490999.4048664.1721029086794.JavaMail.zimbra@inria.fr>
 <77f1ff6e-a7dd-45c8-b706-429674b559f2@suse.com>
 <1423184950.4133169.1721031727075.JavaMail.zimbra@inria.fr>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1423184950.4133169.1721031727075.JavaMail.zimbra@inria.fr>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 10:22, Fonyuy-Asheri Caleb wrote:
> ----- Original Message -----
>> From: "Jan Beulich" <jbeulich@suse.com>
>> To: "Fonyuy-Asheri Caleb" <fonyuy-asheri.caleb@inria.fr>
>> Cc: "xen-devel" <xen-devel@lists.xenproject.org>, "Andrew Cooper" <andrew.cooper3@citrix.com>
>> Sent: Monday, July 15, 2024 10:16:07 AM
>> Subject: Re: Help with Understanding vcpu xstate restore error during vm migration
> 
>> On 15.07.2024 09:38, Fonyuy-Asheri Caleb wrote:
>>>> Perhaps the more important question, are you booting the skylake with
>>>> cpuid=no-avx on the command line by any chance?
>>>
>>> No. I didn't boot any of the machines with any cpuid modification whatsoever.
>>
>> Yet is there perhaps "Mitigating GDS by disabling AVX" in the boot log of
>> the hypervisor (which sadly so far you didn't supply anywhere afaics)?
> 
> I didn't notice that. Unfortunately I no longer have access to the logs to check since I was 
> working on resources I reserved for a limited period.
> 
> However, do you mind telling me what this would mean for my environment?

Hard to tell, depending on what exactly you use that environment for. If
I'm not mistaken (Andrew will surely correct me if I'm wrong), the best
you can do is have such systems run with up-to-date microcode. Which of
course requires you have control over the physical system (to update
firmware) or at least the hypervisor (to hand it a microcode blob to load
while booting). If you had control over only the command line, you could
also choose to ignore the vulnerability and request AVX not to be turned
off ("spec-ctrl=no-gds-mit"). Yet of course you wouldn't want to do this
if you were running any not fully trusted guests.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 08:37:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 08:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758735.1168183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTHCp-00084w-OF; Mon, 15 Jul 2024 08:37:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758735.1168183; Mon, 15 Jul 2024 08: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 1sTHCp-00084p-LU; Mon, 15 Jul 2024 08:37:11 +0000
Received: by outflank-mailman (input) for mailman id 758735;
 Mon, 15 Jul 2024 08: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTHCo-00084j-Rs
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 08:37:10 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6cf671e5-4285-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 10:37:10 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2eea8ea8bb0so73026921fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 01:37: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
 d9443c01a7336-1fc0bc516c3sm35338505ad.286.2024.07.15.01.37.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 01: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: 6cf671e5-4285-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721032629; x=1721637429; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1C7evJHk+L/WlisahsOiTlHIUSZyQgJDiA5zgmTs108=;
        b=MxAFNEz8zIvK7Uf4oTDKY448QngOXlcBmVahGAxqnLialkW13IoHuxO0iHqIz0sQCS
         tD4e9phntc3wOn/I75bp2ltHh4o7S6XoI9lflQAVsav/8GLX3xriQJCJoB8pWWco5C6l
         za1qGAbtW46oQhNntGn4wIOfikthvGA/FndP9ekCbG/vj1t8B1WNCAkKxuPZw7nEd6hY
         XP0Z1fZ7/T0RqNVTIRQh81bQU3wFBR0rdQ5hfrC0fBcrrUFv3D1iiImGbhkJJErEW2CB
         TdqdOkEOHK1FPQEc8/nyAhhqhV9d+TgjvaLWgT1CW96suG/ImfP9tMRwtBSfp/cBPSQH
         avIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721032629; x=1721637429;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1C7evJHk+L/WlisahsOiTlHIUSZyQgJDiA5zgmTs108=;
        b=GOXUw+9a8a1NX0iussVlHBbEc75BnNN75R+c/FV+Wx2Jqojn7LEdAC4/fWBEwvmiwO
         EAjUP9ckYM+/jzPF4A6oOXrcx20bZx4Z9dCqWdpG2SbdoeFii/x4lx+ssjp/rOMf3OW3
         /3GTFV35lB0Y1ikl0cZxz6T2HUvWrrnD/85+TB4U+jAIQuXmBbrJ0uk/zLpmJ9GSCV2K
         oqWswIWtTkWo3+oZ/PgqfTgMzwP11Ibtdypi2P/OegJpQ8du6w2AMbzVmfwhe2qabfRg
         Mw6EW3jcRJDVVOsIzhqsJ0t8X3s5/Qf+BuV5ed2g7nyrB5Lj3wEwrH+54lQqC9B+xrjZ
         14tg==
X-Forwarded-Encrypted: i=1; AJvYcCWlQo9vP1u4GdD98DsGM25JZws+m3XW4A6/IhreeVPCEo1WW/PiwCz1c5Htb6olyzcqyg5wgG86pYOwK1FJPyROFagqp4Z3NzfS8MhyM7M=
X-Gm-Message-State: AOJu0YxCaWlgF+DTWhrbqpKU22tXZJrUpDZCR22mJQDBPkXuHQPHq+RW
	vI3HswyjGcmn6W6xk/u73O/VHyRTstTix9TkjxtkX5IjMx+AffR7Ex842EX0Ow==
X-Google-Smtp-Source: AGHT+IESBr0RupiyZgx+Cg0opf413Kv3Gsdpc7qjfp/YMA7b3rPLyb06fT/ayvZ+84ltDdGhQJ4g8Q==
X-Received: by 2002:a05:651c:a09:b0:2ec:4d8a:785a with SMTP id 38308e7fff4ca-2eeb30ba739mr186443751fa.4.1721032627271;
        Mon, 15 Jul 2024 01:37:07 -0700 (PDT)
Message-ID: <4876111b-8782-4b54-ad04-0a970cc8b4e7@suse.com>
Date: Mon, 15 Jul 2024 10:36:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/8] xen/device-tree: Move Arm's setup.c bootinfo
 functions to common
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Shawn Anastasio <sanastasio@raptorengineering.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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <cb2348393294b8910d794d9d11fff28ff0e6996b.1720799926.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: <cb2348393294b8910d794d9d11fff28ff0e6996b.1720799926.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 18:22, Oleksii Kurochko wrote:> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -77,6 +77,7 @@ obj-$(CONFIG_UBSAN) += ubsan/
>  
>  obj-$(CONFIG_NEEDS_LIBELF) += libelf/
>  obj-$(CONFIG_HAS_DEVICE_TREE) += libfdt/
> +obj-$(CONFIG_HAS_DEVICE_TREE) += device-tree/
>  
>  CONF_FILE := $(if $(patsubst /%,,$(KCONFIG_CONFIG)),$(objtree)/)$(KCONFIG_CONFIG)
>  $(obj)/config.gz: $(CONF_FILE)

I think it would be nice for the bad placement of the two lib*/ entries
to not lead to further bad placements. Imo your addition wants to go
ahead of the

obj-$(CONFIG_HAS_DEVICE_TREE) += device_tree.o

line. (Eventually I expect common/device_tree.c would then also want to
move there, probably at the same time renaming it.)

Jan



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 08:40:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 08:40:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758741.1168194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTHFu-0001Ps-9g; Mon, 15 Jul 2024 08:40:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758741.1168194; Mon, 15 Jul 2024 08:40: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 1sTHFu-0001Pl-6R; Mon, 15 Jul 2024 08:40:22 +0000
Received: by outflank-mailman (input) for mailman id 758741;
 Mon, 15 Jul 2024 08:40: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTHFs-0001Pf-CV
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 08:40:20 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de147de5-4285-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 10:40:19 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2eec7e431d9so50751631fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 01:40: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
 d9443c01a7336-1fc0bc274f8sm35580575ad.171.2024.07.15.01.40.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 01:40: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: de147de5-4285-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721032819; x=1721637619; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kFEtVMNZ/oVx6FNuevfVHmDDH6vhf1JvsPGPChekxGM=;
        b=Ag7Hx0DBl/MYszOzcMpD7sQmENdgckVnZRKNrub/HT+7XZYb2Yi8uzDVYdDBPCNmuU
         XJetxCd3smkI7vLt2eYW0XTzioMk9B1V4UfwcGveMAWUqhCFd+Q/Ym80fFCwra6lTO15
         uEH7Yf5GuuXnUUhC4mmQJbv4zl99g7T8V08kHV2c/dLlLl7+haJobJaiajaaPHLXIT8B
         vzftAVP3XP+SdzqToBKfMg3NxmmC4zEb9133YxUuCAosCbfoYjjmbDljv0VDUppBmQiO
         qWM+cufXZ9hWcY8jTHm+LFUZ3jQMYsusPH9kEnYY2GxumK3az4XtBiiqJGZMPI3qF/Po
         rjNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721032819; x=1721637619;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kFEtVMNZ/oVx6FNuevfVHmDDH6vhf1JvsPGPChekxGM=;
        b=cDGxbExbAAmRAteOhzgPWOJqiRuRPRCCnMOBoF3PGA+PtFvczKGTZviZ/3WDX7N6Yz
         mVkE8RldrmAydax1xAg7OZAsUHi26sHjoWwXjdcHTqbIQ9z7g+vkruJ4s724V0W6y6nt
         TaU+PlzY7iBG7dpGRLumnOCLjJreqddX1CL9LA1E0BhA3Gcp7nEavbXJezDcMdMnl3Y6
         DGvwWo/5uBCPX/o0uLWDJO+Qht4ZiMIXxPCSx0TWHmjWuu/W3Tp8zkk9rWkYTLHDZUyO
         vq6tonheGaoSMoHn3PM97/b1BZAD1QplhTFeQyBaO+j9Dh4YFOn+X6S6Dq2xx68bdjp8
         FIYA==
X-Forwarded-Encrypted: i=1; AJvYcCVeuIxciSVzaP74syubH1mf7gNKcaJwmi5bH75xD84973D+kw1Xvg7B9ZEvFNzd5invL7u96Lb9acPWq9/BrShSNr312S/GqdFe7hsJqO8=
X-Gm-Message-State: AOJu0YylwHYMHkrUPXJtmo8Yl+of++zF4rcsDpp5z5OUhNkiQW4zNeb/
	BNiPKSQQgrPxxqeSseLbO9Cb23WDxsT0A9f+khxw6sBQXxvxuoWX0cQ1hk923w==
X-Google-Smtp-Source: AGHT+IEmu2e/dTmOi0vYyC3rQ+FmcV5aCEgBhXENF9viRTBXtczU7BiwRNJM6Twb5jRjW8Eu1c/BjA==
X-Received: by 2002:a2e:b178:0:b0:2ee:44f7:cc74 with SMTP id 38308e7fff4ca-2eeb30b9a36mr120980421fa.6.1721032818214;
        Mon, 15 Jul 2024 01:40:18 -0700 (PDT)
Message-ID: <17bdf7bf-6e13-4f58-93c6-5412276e2798@suse.com>
Date: Mon, 15 Jul 2024 10:40:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/8] xen/riscv: enable CONFIG_HAS_DEVICE_TREE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <5229417cbee0aace3b9dccdac8c0157b4facf948.1720799926.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: <5229417cbee0aace3b9dccdac8c0157b4facf948.1720799926.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 18:22, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

Albeit a little reluctantly, seeing the once again entirely missing
description. Please can you get used to not leaving that out, unless
the title really says _all_ that's wanted / needed?

Jan

> --- 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 HAS_DEVICE_TREE
>  
>  config RISCV_64
>  	def_bool y



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 08:49:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 08:49:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758747.1168203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTHOB-0002eg-2z; Mon, 15 Jul 2024 08:48:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758747.1168203; Mon, 15 Jul 2024 08:48: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 1sTHOB-0002eZ-0C; Mon, 15 Jul 2024 08:48:55 +0000
Received: by outflank-mailman (input) for mailman id 758747;
 Mon, 15 Jul 2024 08:48: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=0XWl=OP=inria.fr=fonyuy-asheri.caleb@srs-se1.protection.inumbo.net>)
 id 1sTHOA-0002eT-LJ
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 08:48:54 +0000
Received: from mail2-relais-roc.national.inria.fr
 (mail2-relais-roc.national.inria.fr [192.134.164.83])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0facb892-4287-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 10:48:52 +0200 (CEST)
Received: from zcs2-store8.inria.fr ([128.93.142.6])
 by mail2-relais-roc.national.inria.fr with ESMTP; 15 Jul 2024 10:48:52 +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: 0facb892-4287-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=inria.fr; s=dc;
  h=date:from:to:cc:message-id:in-reply-to:references:
   subject:mime-version:content-transfer-encoding;
  bh=V7Nboj25WsEAZ3Ehvn50v0hIqfwHiIcfSxQSy5AexV4=;
  b=I/wHtFBQrLxIENTxAxz8qNDVo1ShkoQl/9nbeB3HIFiFDTZ6s0xUxLkG
   o8PgL9fS6AVAIRNJPxXIpYnuWHkE3if6x+pcpWsvG0SnXbhLn63lKwbuZ
   kVFXu3Ne3upL/QOpFBiTQeyCqAijqD2fqah0bp6rbvJ1F3ai2Jt3xcu0A
   Q=;
Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Pass smtp.mailfrom=fonyuy-asheri.caleb@inria.fr; spf=None smtp.helo=postmaster@zcs2-store8.inria.fr
Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of
  fonyuy-asheri.caleb@inria.fr designates 128.93.142.6 as
  permitted sender) identity=mailfrom; client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="fonyuy-asheri.caleb@inria.fr";
  x-conformance=spf_only; x-record-type="v=spf1";
  x-record-text="v=spf1 include:mailout.safebrands.com
  a:basic-mail.safebrands.com a:basic-mail01.safebrands.com
  a:basic-mail02.safebrands.com ip4:128.93.142.0/24
  ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:89.107.174.7 mx
  ~all"
Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender
  authenticity information available from domain of
  postmaster@zcs2-store8.inria.fr) identity=helo;
  client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="postmaster@zcs2-store8.inria.fr";
  x-conformance=spf_only
X-IronPort-AV: E=Sophos;i="6.09,209,1716242400"; 
   d="scan'208";a="175461800"
X-MGA-submission: =?us-ascii?q?MDHPseRu2SOgJbBhNY7XItilXSA3UNUCyQPnga?=
 =?us-ascii?q?qDXaV8ryRDsSrnNaQaevhJNRHQfMJuizadUVp5Dxv82n59tuUbi2ECzz?=
 =?us-ascii?q?wBT6n791718tRiPUmdgQAJQ/PHxN/swelahnQFEOPOycr+brb8PWLBLq?=
 =?us-ascii?q?ctp3u7QH/mdgpgYGLgexzH8w=3D=3D?=
Date: Mon, 15 Jul 2024 10:48:51 +0200 (CEST)
From: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, 
	Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <1365363643.4190382.1721033331904.JavaMail.zimbra@inria.fr>
In-Reply-To: <61d717fd-62e3-434c-a326-687b649148c2@suse.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr> <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com> <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr> <8f8dac21-92fe-4760-8578-2fbfde2f2c14@citrix.com> <1557490999.4048664.1721029086794.JavaMail.zimbra@inria.fr> <77f1ff6e-a7dd-45c8-b706-429674b559f2@suse.com> <1423184950.4133169.1721031727075.JavaMail.zimbra@inria.fr> <61d717fd-62e3-434c-a326-687b649148c2@suse.com>
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Originating-IP: [131.254.23.3]
X-Mailer: Zimbra 10.0.8_GA_4611 (ZimbraWebClient - GC126 (Linux)/10.0.8_GA_4611)
Thread-Topic: Help with Understanding vcpu xstate restore error during vm migration
Thread-Index: dFCsc8CTgOMEcFT+E8bpP5eFX/nhqQ==

>>> On 15.07.2024 09:38, Fonyuy-Asheri Caleb wrote:
>>>>> Perhaps the more important question, are you booting the skylake with
>>>>> cpuid=no-avx on the command line by any chance?
>>>>
>>>> No. I didn't boot any of the machines with any cpuid modification whatsoever.
>>>
>>> Yet is there perhaps "Mitigating GDS by disabling AVX" in the boot log of
>>> the hypervisor (which sadly so far you didn't supply anywhere afaics)?
>> 
>> I didn't notice that. Unfortunately I no longer have access to the logs to check
>> since I was
>> working on resources I reserved for a limited period.
>> 
>> However, do you mind telling me what this would mean for my environment?
> 
> Hard to tell, depending on what exactly you use that environment for. If
> I'm not mistaken (Andrew will surely correct me if I'm wrong), the best
> you can do is have such systems run with up-to-date microcode. Which of
> course requires you have control over the physical system (to update
> firmware) or at least the hypervisor (to hand it a microcode blob to load
> while booting). If you had control over only the command line, you could
> also choose to ignore the vulnerability and request AVX not to be turned
> off ("spec-ctrl=no-gds-mit"). Yet of course you wouldn't want to do this
> if you were running any not fully trusted guests.

Quick verification: cpuid=no-avx and spec-ctrl=no-gds-mit are options
passed to the grub right? 

> 
> Jan

Caleb


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 08:52:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 08:52:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758752.1168214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTHRi-00046t-IY; Mon, 15 Jul 2024 08:52:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758752.1168214; Mon, 15 Jul 2024 08:52: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 1sTHRi-00046m-Fm; Mon, 15 Jul 2024 08:52:34 +0000
Received: by outflank-mailman (input) for mailman id 758752;
 Mon, 15 Jul 2024 08:52: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTHRh-00046g-1U
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 08:52:33 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91ec403c-4287-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 10:52:30 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2eee298bd2eso17781761fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 01:52: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
 d2e1a72fcca58-70b7ec7d90bsm3827496b3a.138.2024.07.15.01.52.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 01:52: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: 91ec403c-4287-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721033550; x=1721638350; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nXtBFTVNvFNoXxeH41CXLTUIY6Uc3KPglBE5cEpCxnw=;
        b=deKOLkiU9LaQFgU7kE73q670JztVIjbWOOeFjgdc8jrbi5qyTzNGpISisVro0ZqL05
         UIJRq298SGMgHc+8wZf9v9V85wQWJOWIphdrle3ba2sB1p07tPvwucilndYe7BT9Vz/k
         kRoSri7WvCd5E7RAZq+aGHFFmcxBu27eiVIGK9YmSohD5Ez2y3DlZjCDulWtMWtVI/0q
         ufhzs61g4azqHaZAkylBu6pa1gpYoWzG6WiVu4p2h9aIsFlEb5bEm+qqolIJo4LrnCS+
         w41RKeup6T9fDD24v8K/5HgkReBBl6vJySR3cdSzeH8CBst8Gh9QX8iuXI9luf8k36xc
         tJ6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721033550; x=1721638350;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nXtBFTVNvFNoXxeH41CXLTUIY6Uc3KPglBE5cEpCxnw=;
        b=RdDn+he6BU3Zl40YzqW4NVkyFmRkuHTcqTcZnr43nHq8KqzLMK+Ori9wHhgfUlSQSI
         UPNvqZdP0ZmDms07pdq2c7cTfYZy1DgUbXAj/aWv8jk2QCDDmDIjcVso75Xg7PYvU9cc
         DvRZl/sW76m3MGRiWPX3nPeMCuPAx/qSgoUYdIR62cToFeMQhQdJb8+c2Vs1aP6nH7Gp
         caKcTJI9bvL53R2JuEb9wwzv0p7tJDs3wlDSVvBCskAy1BBNe1yK6RuGBHGmlNBHaW20
         803Wol+KKYU+PFApP5fwXhtLVRStv29FjibkOtq4xXiIi7lmoChci21pli+OtioMR9Xm
         m3OA==
X-Forwarded-Encrypted: i=1; AJvYcCVmlFUlU/3EVDoCx/6vupGQoiW7wsdQMLGKkczSChHE6UL311XdcPqiqnreMcRKgQfoVSRBvR7ET7ic0JVjyzubmJtH7uwvY5CN6Jj50Qw=
X-Gm-Message-State: AOJu0YyCPcJFmgnGEU/YP/fgeZzcA1qUikvkCnYHcClyqQ8ZjBe8iTZw
	IlbnYiyJOPI3Jdbn1Xb3lOQCSh9ufVo9Vxzy+rObQWD2Wm09WLtM09h3SD4CLw==
X-Google-Smtp-Source: AGHT+IFRCgCB20DkGdj+rWK3NEthUKmetkTHYhfk8hDDhi9cpdL5en8WLUD5ZRFad6u74gOSr/NYlQ==
X-Received: by 2002:a2e:8199:0:b0:2ec:c8:2755 with SMTP id 38308e7fff4ca-2eeb30fd5fbmr112643411fa.24.1721033549347;
        Mon, 15 Jul 2024 01:52:29 -0700 (PDT)
Message-ID: <bc8d2e10-0898-4f5a-b296-1bc7f528bb77@suse.com>
Date: Mon, 15 Jul 2024 10:52:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 8/8] xen/riscv: introduce early_fdt_map()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <4e4f94817fb3bba5f52336ea0b4491f7bc867d49.1720799926.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: <4e4f94817fb3bba5f52336ea0b4491f7bc867d49.1720799926.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 18:22, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -266,4 +266,6 @@ static inline unsigned int arch_get_dma_bitsize(void)
>  
>  void setup_fixmap_mappings(void);
>  
> +void* early_fdt_map(paddr_t fdt_paddr);

Please can you take care to address comments on earlier versions before
submitting a new one?

> @@ -435,3 +438,55 @@ inline pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr)
>  
>      return mfn_to_pte(mfn);
>  }
> +
> +void * __init early_fdt_map(paddr_t fdt_paddr)
> +{
> +    /* We are using 2MB superpage for mapping the FDT */
> +    paddr_t base_paddr = fdt_paddr & XEN_PT_LEVEL_MAP_MASK(1);
> +    paddr_t offset;
> +    void *fdt_virt;
> +    uint32_t size;
> +    int rc;
> +
> +    /*
> +     * 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;
> +
> +    /* The FDT is mapped using 2MB superpage */
> +    BUILD_BUG_ON(BOOT_FDT_VIRT_START % SZ_2M);

May I suggest that you use MB(2) instead of SZ_2M (not just here)? I think
I had voiced opposition to the introduction of xen/sizes.h about 10 years
back, yet sadly it still landed in the tree. I for one think that our KB(),
MB(), and GB() constructs are superior, and (I hope) free of Misra issues
(unlike SZ_2G).

> +    rc = map_pages_to_xen(BOOT_FDT_VIRT_START, maddr_to_mfn(base_paddr),
> +                          SZ_2M >> PAGE_SHIFT,
> +                          PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
> +    if ( rc )
> +        panic("Unable to map the device-tree.\n");
> +
> +    offset = fdt_paddr % XEN_PT_LEVEL_SIZE(1);
> +    fdt_virt = (void *)BOOT_FDT_VIRT_START + offset;
> +
> +    if ( fdt_magic(fdt_virt) != FDT_MAGIC )
> +        return NULL;
> +
> +    size = fdt_totalsize(fdt_virt);
> +    if ( size > BOOT_FDT_VIRT_SIZE )
> +        return NULL;
> +
> +    if ( (offset + size) > SZ_2M )
> +    {
> +        rc = map_pages_to_xen(BOOT_FDT_VIRT_START + SZ_2M,
> +                              maddr_to_mfn(base_paddr + SZ_2M),
> +                              SZ_2M >> PAGE_SHIFT,
> +                              PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
> +        if ( rc )
> +            panic("Unable to map the device-tree\n");
> +    }

Why this two part mapping? And why are you mapping perhaps much more
than "size"?

> @@ -48,6 +49,14 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>  
>      setup_fixmap_mappings();
>  
> +    device_tree_flattened = early_fdt_map(dtb_addr);
> +    if ( device_tree_flattened )

Is this condition perhaps inverted?

Jan

> +        panic("Invalid device tree blob at physical address %#lx.\n"
> +              "The DTB must be 8-byte aligned and must not exceed %lld "
> +              "bytes in size.\n\n"
> +              "Please check your bootloader.\n",
> +              dtb_addr, BOOT_FDT_VIRT_SIZE);
> +
>      printk("All set up\n");
>  
>      for ( ;; )



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 08:54:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 08:54:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758757.1168223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTHTW-0004ej-TW; Mon, 15 Jul 2024 08:54:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758757.1168223; Mon, 15 Jul 2024 08: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 1sTHTW-0004ec-QT; Mon, 15 Jul 2024 08:54:26 +0000
Received: by outflank-mailman (input) for mailman id 758757;
 Mon, 15 Jul 2024 08: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTHTV-0004eV-Cr
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 08:54:25 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d50b327f-4287-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 10:54:23 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ebe40673e8so54668741fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 01:54: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
 d9443c01a7336-1fc0bbb0625sm35708315ad.93.2024.07.15.01.54.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 01: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: d50b327f-4287-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721033663; x=1721638463; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AO3RxlduRBFozARpzjUevakUABXRs7ICr+FfUo8i7GI=;
        b=Rwq+vf7IlO9z1SsfMcQnpP3n7at92VxCph4/DcvpHg3CiKSztGEd8JBM1Yw0g+EXuc
         PrVxRA2cB8hSR9yidQnF8XiQGCyWDTuMXzXbyKZK8nM8dK1+9MEGheIsJjNmeCjw2/0q
         XuMMOjtgbF0+5toH4KM11QNagq+8oQw4ETwVI1W1gCXhNuiJOtiNsBuQypgMvINWAN7z
         QDBWaH1bI+oys0SJIzYA/gRmBDVVtUiDmVSxtFrv+lyjPFBH2t1wYvIfTKn2/zAAVaAf
         f3IvYHvR4lyBxKUA10b2KW/wbc3FoQ9FlfrYPqJYI/vfP2TrBhrkzceOPf3x+pjih0Da
         LJ3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721033663; x=1721638463;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AO3RxlduRBFozARpzjUevakUABXRs7ICr+FfUo8i7GI=;
        b=PXc4ViGKyHYhN0CvwEAu4/LyAgYQRT4xacGo4hSxoasGQrpii6coAWE+JbtoBTnRRj
         Sd3uhAH3oG6wjNSC+aau3bhBl5kNJ2i0PGU7ERHT8GQLNmjK8XN9PL3BbFQuZ6aXzPgL
         skDE934qXi943ouMFBwIei+ZTpqLXHjLvhmqTNYwMh4a7Brq1YLV8ejc+AuisC+C6F+1
         LcovvK2nLtT2LMmtjebMM7XYX5JaAgYQk/V1Hjh15f9AJDxbpxu7Hf/+o9do/uEnZhp/
         5woYh6mH7DRW9Ey7372dE1wfGpHucQFtc/Xf+xN6jEYIwQW7Ub4jjmoSZi5kMfdhXC8E
         1wMQ==
X-Gm-Message-State: AOJu0YzPISlS8W2Xt/+2L3qc6iDh1yux9kjgQuovfJq4/eT5uXv+I4L5
	yYCAYyMOHD9rfbfWHo+xcvhW+cFQqm3yvSayytp5fdsA8ZNUOJSIu5YVFj/23g==
X-Google-Smtp-Source: AGHT+IFIwzQnTjsP55mCyRoBYuZo0ajBgyD1/s2qRCaMZVjUDe06gWa+56F1ep/kg8YwZKri4NUt/Q==
X-Received: by 2002:a2e:b059:0:b0:2ec:57c7:c72c with SMTP id 38308e7fff4ca-2eeb3182772mr113455861fa.35.1721033663000;
        Mon, 15 Jul 2024 01:54:23 -0700 (PDT)
Message-ID: <50ab12eb-70ba-4787-98fc-c3c933af2f06@suse.com>
Date: Mon, 15 Jul 2024 10:54:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
To: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr>
 <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
 <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr>
 <8f8dac21-92fe-4760-8578-2fbfde2f2c14@citrix.com>
 <1557490999.4048664.1721029086794.JavaMail.zimbra@inria.fr>
 <77f1ff6e-a7dd-45c8-b706-429674b559f2@suse.com>
 <1423184950.4133169.1721031727075.JavaMail.zimbra@inria.fr>
 <61d717fd-62e3-434c-a326-687b649148c2@suse.com>
 <1365363643.4190382.1721033331904.JavaMail.zimbra@inria.fr>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1365363643.4190382.1721033331904.JavaMail.zimbra@inria.fr>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 10:48, Fonyuy-Asheri Caleb wrote:
>>>> On 15.07.2024 09:38, Fonyuy-Asheri Caleb wrote:
>>>>>> Perhaps the more important question, are you booting the skylake with
>>>>>> cpuid=no-avx on the command line by any chance?
>>>>>
>>>>> No. I didn't boot any of the machines with any cpuid modification whatsoever.
>>>>
>>>> Yet is there perhaps "Mitigating GDS by disabling AVX" in the boot log of
>>>> the hypervisor (which sadly so far you didn't supply anywhere afaics)?
>>>
>>> I didn't notice that. Unfortunately I no longer have access to the logs to check
>>> since I was
>>> working on resources I reserved for a limited period.
>>>
>>> However, do you mind telling me what this would mean for my environment?
>>
>> Hard to tell, depending on what exactly you use that environment for. If
>> I'm not mistaken (Andrew will surely correct me if I'm wrong), the best
>> you can do is have such systems run with up-to-date microcode. Which of
>> course requires you have control over the physical system (to update
>> firmware) or at least the hypervisor (to hand it a microcode blob to load
>> while booting). If you had control over only the command line, you could
>> also choose to ignore the vulnerability and request AVX not to be turned
>> off ("spec-ctrl=no-gds-mit"). Yet of course you wouldn't want to do this
>> if you were running any not fully trusted guests.
> 
> Quick verification: cpuid=no-avx and spec-ctrl=no-gds-mit are options
> passed to the grub right? 

They're options passed to Xen. If you use grub as the boot loader, then
they would need putting _in_ respective grub config files / scripts.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 09:08:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 09:08:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758768.1168233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTHhU-0007ls-7C; Mon, 15 Jul 2024 09:08:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758768.1168233; Mon, 15 Jul 2024 09:08: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 1sTHhU-0007lk-4g; Mon, 15 Jul 2024 09:08:52 +0000
Received: by outflank-mailman (input) for mailman id 758768;
 Mon, 15 Jul 2024 09:08:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=v6tg=OP=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sTHhS-0007ld-As
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 09:08:50 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8ce8abf-4289-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 11:08:49 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 2B9484EE0737;
 Mon, 15 Jul 2024 11:08: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: d8ce8abf-4289-11ef-bbfb-fd08da9f4363
MIME-Version: 1.0
Date: Mon, 15 Jul 2024 11:08:48 +0200
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, consulting@bugseng.com,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
Reply-To: alessandro.zucchelli@bugseng.com
Mail-Reply-To: alessandro.zucchelli@bugseng.com
In-Reply-To: <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com>
 <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com>
 <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
 <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com>
Message-ID: <c5f1f9e574ec34bc082e7c91c20cad01@bugseng.com>
X-Sender: alessandro.zucchelli@bugseng.com
Organization: BUGSENG Srl
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-15 09:23, Jan Beulich wrote:
> On 13.07.2024 00:38, Stefano Stabellini wrote:
>> On Wed, 3 Jul 2024, Jan Beulich wrote:
>>> I further have to note that, as indicated during the earlier 
>>> discussion,
>>> I still cannot see how occasional ambiguity is going to be dealt 
>>> with.
>>> IOW from the rules above two different headers could still end up 
>>> with
>>> the same guard identifier.
>> 
>> Maybe something like this?
>> 
>> "In the event of naming collisions, exceptions to the coding style may
>> be made at the discretion of the contributor and maintainers."
> 
> Hmm, maybe I wasn't clear enough then. My take is that the scheme 
> should
> simply not allow for possible collisions. Neither the contributor nor 
> the
> reviewer may spot such a collision, and it may therefore take until the
> first full scan that one is actually noticed. Which I consider too late
> in the process, even if we already were at the point where commits were
> checked pre-push.
> 

If we could come to an agreement, I will make the new version of the 
patch
series with all the needed changes.
-- 
Alessandro Zucchelli, B.Sc.

Software Engineer, BUGSENG (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 09:12:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 09:12:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758774.1168243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTHkZ-0000or-Ki; Mon, 15 Jul 2024 09:12:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758774.1168243; Mon, 15 Jul 2024 09: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 1sTHkZ-0000ok-I8; Mon, 15 Jul 2024 09:12:03 +0000
Received: by outflank-mailman (input) for mailman id 758774;
 Mon, 15 Jul 2024 09:12:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTHkX-0000ob-Q2
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 09:12:01 +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 4afafa5b-428a-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 11:12:00 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-58b447c511eso5010701a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 02:12: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
 d9443c01a7336-1fc0bc516dasm35971155ad.288.2024.07.15.02.11.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 02:11: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: 4afafa5b-428a-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721034720; x=1721639520; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rSTBsxiYaa0O15fZnIp5eYWvvrk2jnLgXowQaDiNrWk=;
        b=GWOAuQ9+qpRC8aEkWGnpXuqmF3d6Zkzewj9C8CdIXF6MpsAJLgiJT+HySjDS+NCVaR
         xbSe3WzptPKSSX4cP8KcWe3f18SBdplWqI3V35ltGVSusRI4+2PXdTWEEongAjkJpVNa
         2EU9ej9YsU8AV6wBfWFPW5S0PLX1Cjim8BdF9Wny4LYTjPkJvlNDxrH+FAZV6llkfFHm
         Pw7Mr2kFKhEskXYNMgYqNVIIjEUImUuUWmnWVQ81d0UB7QV4T4oZN2seCbdnRo71Lr06
         n9dlHHg64HxP6npaokHWMeHS1M+EmiEpF09kdm2MGrUTTToN5u7q6l7cIExzRtCWP/zk
         bGIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721034720; x=1721639520;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rSTBsxiYaa0O15fZnIp5eYWvvrk2jnLgXowQaDiNrWk=;
        b=BVKvVM+MQyLqHY91gYTcHifcd0qZA57N8EjbbUPN5WwCrJ+KHSxCXwSZfzJ3FnS8fw
         HtaZcz9nINcyx3GuOG30urVpjT63+HjiUy8OHTqmaCKZdBAJ7vo49ywM4GGwbhSeAGX8
         uMJBu6Whbd5gQKWvLRpVOYnXq2wbMPS38JLgVGmT3yPOeO2iGP1SFPPVHN+ojrRXeGei
         dAtf/0tZnnXdVQxDkgJRcGZ8n+Zk2wUuX3ThYIyUuCssnuauDPE95edyv3uvpf+cBLDl
         q5iXhBhZvCpvL68Ur9dKrLnAOjXCCNbQFSWhjL0P/O6o2DChnCUeaxz0TXqQvHwYLS8/
         70bg==
X-Forwarded-Encrypted: i=1; AJvYcCU5t36JfSCSb323XQa19vWH8+xCr0vgZpdOi/+W6dlHMN/8cvS64AMa+mn83MnaElnKvhHHUmeJb0gmWTyYJ+AJ5iXKT3bZZt8JmHBOLP8=
X-Gm-Message-State: AOJu0YxQ5TlZfifmYuQP1LBxgG9Xe3TfSFPPxZqwC1vYMJnJrD9JHW4J
	QWTGVBpDevku0RlnePaKA2YaTe2800Slyf9KqPsXpODF8361UF7SBBdyJ+VPoQ==
X-Google-Smtp-Source: AGHT+IGVgAtodJ4HEU8P4/yvjh2g8kIwvjd6KYIxqnjJJVATRpQnfOIPqgwAn1eea9XcMB1PjSCcgA==
X-Received: by 2002:a17:907:7da8:b0:a72:4320:19f3 with SMTP id a640c23a62f3a-a780b70088cmr1587562166b.39.1721034717834;
        Mon, 15 Jul 2024 02:11:57 -0700 (PDT)
Message-ID: <115b1eaf-960e-4d8d-9168-cb84e43961ae@suse.com>
Date: Mon, 15 Jul 2024 11:11:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC] Arm64: amend "xen/arm64: head: Add missing code
 symbol annotations"
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f7228594-fa64-4fd8-b55b-506d004b73cb@suse.com>
 <99ba7e4e-7a0e-4a1b-85c9-5c21f767beda@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: <99ba7e4e-7a0e-4a1b-85c9-5c21f767beda@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.07.2024 23:29, Julien Grall wrote:
> Hi Jan,
> 
> On 10/06/2024 14:37, Jan Beulich wrote:
>> While the change[1] didn't go in yet, there is the intention for the ELF
>> metadata annotations from xen/linkage.h to also effect honoring of
>> CONFIG_CC_SPLIT_SECTIONS. In code that's placement / ordering sensitive,
>> these annotations therefore need using with some care.
> 
> Looking at the code, I think the ordering only really matter for 
> 'start'. The rest can be ordered in any way within the assembly file. So...
> 
>>
>> [1] https://lists.xen.org/archives/html/xen-devel/2024-02/msg00470.html
>>
>> Fixes: fba250ae604e ("xen/arm64: head: Add missing code symbol annotations")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> An alternative would be to use LABEL{,_LOCAL}() instead of FUNC{,_LOCAL}().
>> That would avoid the need for any override, but would also lose the type
>> information. 
> 
> ... I would suggest to only convert FUNC(start) to LABEL(start).
> 
>> Question is whether the annotated ranges really are
>> "functions" in whichever wide or narrow sense.
> 
> Everything but 'start' are functions.

Well, maybe, but that's not the only criteria here. Expressions like

        .long   _end - real_start               /* SizeOfCode */

need to be possible for the assembler to resolve. Which requires both
symbols to live in the same section, or the subtrahend to live in the
current section. IOW I then also need to convert real_start to use
LABEL_LOCAL(). Is that going to be okay?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 09:14:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 09:14:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758779.1168254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTHnF-0001Pg-0c; Mon, 15 Jul 2024 09:14:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758779.1168254; Mon, 15 Jul 2024 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 1sTHnE-0001PY-TZ; Mon, 15 Jul 2024 09:14:48 +0000
Received: by outflank-mailman (input) for mailman id 758779;
 Mon, 15 Jul 2024 09:14:48 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTHnE-0001PP-Ji; Mon, 15 Jul 2024 09:14:48 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTHnE-0001ME-GT; Mon, 15 Jul 2024 09:14:48 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTHnE-0006n3-1h; Mon, 15 Jul 2024 09:14:48 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTHnE-0003fC-15; Mon, 15 Jul 2024 09:14: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=laaX+o3YEERmHqWOChtNGCDhFvAR9iCPXmAIqlrWBGk=; b=QHHgAP+jp4Runfr+6rqKwMVn2H
	7bC1Kv7I9UO6WzB/+v3TwDTN8LimTiNZy18rlgYikrM2qraUcic71FQyJF6M4LvA9XSS5e72o1rWy
	7J6roXfx4bumDvA2j56ZdDrgNzQSqjJ78Y3mEvU8OjG2EiTkABEIDtCvWkYruMWhEdRw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186800-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186800: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
X-Osstest-Versions-That:
    xen=1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Jul 2024 09:14:48 +0000

flight 186800 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186800/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186794
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186794
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186794
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186794
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186794
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186794
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
baseline version:
 xen                  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9

Last test of basis   186800  2024-07-15 02:07:43 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 09:25:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 09:25:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758789.1168263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTHxF-0003ds-TY; Mon, 15 Jul 2024 09:25:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758789.1168263; Mon, 15 Jul 2024 09:25:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTHxF-0003dl-Qf; Mon, 15 Jul 2024 09:25:09 +0000
Received: by outflank-mailman (input) for mailman id 758789;
 Mon, 15 Jul 2024 09:25: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=0XWl=OP=inria.fr=fonyuy-asheri.caleb@srs-se1.protection.inumbo.net>)
 id 1sTHxF-0003df-80
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 09:25:09 +0000
Received: from mail2-relais-roc.national.inria.fr
 (mail2-relais-roc.national.inria.fr [192.134.164.83])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1fdb6185-428c-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 11:25:07 +0200 (CEST)
Received: from zcs2-store8.inria.fr ([128.93.142.6])
 by mail2-relais-roc.national.inria.fr with ESMTP; 15 Jul 2024 11:25:06 +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: 1fdb6185-428c-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=inria.fr; s=dc;
  h=date:from:to:cc:message-id:in-reply-to:references:
   subject:mime-version:content-transfer-encoding;
  bh=j5lBdSXBDKf99cbYhSizNwJG6K/tTq3AlNGJleTRCQ4=;
  b=mMNRWTqenasEl7RCtlO25roSXb0eRdYyjj9tCai2DXmI2pVB5G5uauRD
   xJX5bt2zxyLrhfYsqs5M/aF4GkGy3YTKMp6Gqv9aRYkO+84QR0AUzIVMS
   9ioyMfvQQjfXKwHj0Ogy60cS6L/5q2/o/leTS6RjEgUjmDpqL6hbC62qi
   U=;
Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Pass smtp.mailfrom=fonyuy-asheri.caleb@inria.fr; spf=None smtp.helo=postmaster@zcs2-store8.inria.fr
Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of
  fonyuy-asheri.caleb@inria.fr designates 128.93.142.6 as
  permitted sender) identity=mailfrom; client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="fonyuy-asheri.caleb@inria.fr";
  x-conformance=spf_only; x-record-type="v=spf1";
  x-record-text="v=spf1 include:mailout.safebrands.com
  a:basic-mail.safebrands.com a:basic-mail01.safebrands.com
  a:basic-mail02.safebrands.com ip4:128.93.142.0/24
  ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:89.107.174.7 mx
  ~all"
Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender
  authenticity information available from domain of
  postmaster@zcs2-store8.inria.fr) identity=helo;
  client-ip=128.93.142.6;
  receiver=mail2-relais-roc.national.inria.fr;
  envelope-from="fonyuy-asheri.caleb@inria.fr";
  x-sender="postmaster@zcs2-store8.inria.fr";
  x-conformance=spf_only
X-IronPort-AV: E=Sophos;i="6.09,210,1716242400"; 
   d="scan'208";a="175471672"
X-MGA-submission: =?us-ascii?q?MDFXRTVcgwQ6/NoigFbdOEytRADNdNU+Xwrieo?=
 =?us-ascii?q?plaJ4BG8RxFxxzfHt9+O6ZEoon27Oa330CNO0UYQOx/aQKCJNT/0A0eA?=
 =?us-ascii?q?0ouwPPdd+td3NbjaFFdRu3ICukzBOTluP9PR2b/Ho0LRWEkVLNyu9nvt?=
 =?us-ascii?q?JMftXvpJZqmx4D0kaCHzM/oQ=3D=3D?=
Date: Mon, 15 Jul 2024 11:25:06 +0200 (CEST)
From: Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, 
	Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <446765396.4260435.1721035506532.JavaMail.zimbra@inria.fr>
In-Reply-To: <50ab12eb-70ba-4787-98fc-c3c933af2f06@suse.com>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr> <8f8dac21-92fe-4760-8578-2fbfde2f2c14@citrix.com> <1557490999.4048664.1721029086794.JavaMail.zimbra@inria.fr> <77f1ff6e-a7dd-45c8-b706-429674b559f2@suse.com> <1423184950.4133169.1721031727075.JavaMail.zimbra@inria.fr> <61d717fd-62e3-434c-a326-687b649148c2@suse.com> <1365363643.4190382.1721033331904.JavaMail.zimbra@inria.fr> <50ab12eb-70ba-4787-98fc-c3c933af2f06@suse.com>
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Originating-IP: [131.254.23.3]
X-Mailer: Zimbra 10.0.8_GA_4611 (ZimbraWebClient - GC126 (Linux)/10.0.8_GA_4611)
Thread-Topic: Help with Understanding vcpu xstate restore error during vm migration
Thread-Index: KVpC9JP2YfxUbsjBei7P/zt2NIqU5Q==


> On 15.07.2024 10:48, Fonyuy-Asheri Caleb wrote:
>>>>> On 15.07.2024 09:38, Fonyuy-Asheri Caleb wrote:
>>>>>>> Perhaps the more important question, are you booting the skylake with
>>>>>>> cpuid=no-avx on the command line by any chance?
>>>>>>
>>>>>> No. I didn't boot any of the machines with any cpuid modification whatsoever.
>>>>>
>>>>> Yet is there perhaps "Mitigating GDS by disabling AVX" in the boot log of
>>>>> the hypervisor (which sadly so far you didn't supply anywhere afaics)?
>>>>
>>>> I didn't notice that. Unfortunately I no longer have access to the logs to check
>>>> since I was
>>>> working on resources I reserved for a limited period.
>>>>
>>>> However, do you mind telling me what this would mean for my environment?
>>>
>>> Hard to tell, depending on what exactly you use that environment for. If
>>> I'm not mistaken (Andrew will surely correct me if I'm wrong), the best
>>> you can do is have such systems run with up-to-date microcode. Which of
>>> course requires you have control over the physical system (to update
>>> firmware) or at least the hypervisor (to hand it a microcode blob to load
>>> while booting). If you had control over only the command line, you could
>>> also choose to ignore the vulnerability and request AVX not to be turned
>>> off ("spec-ctrl=no-gds-mit"). Yet of course you wouldn't want to do this
>>> if you were running any not fully trusted guests.
>> 
>> Quick verification: cpuid=no-avx and spec-ctrl=no-gds-mit are options
>> passed to the grub right?
> 
> They're options passed to Xen. If you use grub as the boot loader, then
> they would need putting _in_ respective grub config files / scripts.
> 
> Jan

Thank you Jan

Caleb


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 09:33:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 09:33:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758796.1168274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTI4x-0005rT-PD; Mon, 15 Jul 2024 09:33:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758796.1168274; Mon, 15 Jul 2024 09:33:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTI4x-0005rM-MV; Mon, 15 Jul 2024 09:33:07 +0000
Received: by outflank-mailman (input) for mailman id 758796;
 Mon, 15 Jul 2024 09:33: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=wOo3=OP=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sTI4v-0005rC-R9
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 09:33:05 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20600.outbound.protection.outlook.com
 [2a01:111:f403:2409::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3bad50f1-428d-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 11:33:04 +0200 (CEST)
Received: from SJ0PR05CA0164.namprd05.prod.outlook.com (2603:10b6:a03:339::19)
 by SA3PR12MB7781.namprd12.prod.outlook.com (2603:10b6:806:31a::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.28; Mon, 15 Jul
 2024 09:32:58 +0000
Received: from MWH0EPF000989EB.namprd02.prod.outlook.com
 (2603:10b6:a03:339:cafe::60) by SJ0PR05CA0164.outlook.office365.com
 (2603:10b6:a03:339::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.13 via Frontend
 Transport; Mon, 15 Jul 2024 09:32:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000989EB.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.7784.11 via Frontend Transport; Mon, 15 Jul 2024 09:32:57 +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, 15 Jul
 2024 04:32:56 -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; Mon, 15 Jul 2024 04:32: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: 3bad50f1-428d-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=frGoA5ydZ3gMXjd2kwfWjckXS/hgzGwMmHmrPSpwqnodqqa3qWaYbdamXL0+VvF7qHrVXpy9UrY9HmxoclF2OwL1FLq7zaxW6FkUgGWYmGgO2y+aKD8e4aGeTxjSL4Nl/SEjaGKlhdnuZ7D2IsQwR5Rcu+mfnTeJ9odENRueDQvyvp8O9JZjbEIrWMacuPTrm861c/EMh80qE8DQMPdUGrmxiFJVPH1HFXzgDrK/GuHTp3uQnBCDHr8Y3+H/G0tNgc744haYgRn5CujioauJf98HKER7NeEZmfXBcC1oFaSUBLga21BGy78nsLsbAY3iR4Mdo2QLv++vIgAM/8UMOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NF8uzQMK3g8s8jElmJY9OAV99dioPt5RsKEOYrJQ/j8=;
 b=VcQkzNRX4eyM7tQrziWYX1rQQJk2RGifcvVycRSDbOaWSadTjz2F3FA42f/FEzHznp3ZRIafY8w8Y4nn7a84uJg1ah++ANU6vRrACn3IWWFot7GkSkfxqkkACxxjyMDz9Ma1mtMD0NbM1ReNy0BrCh6syyuZ06emwVjL2hWr3sGnbYfDIQq/In9MGPCvHyfTBd5rm0yVz7q9DoBf6pRoExY2vVLeB97hBEaHaJJqwNNFUgr1N3xq5oGKofKx9+3yyneuXfwlySxGqxQnZRrehqyQpVNYvMwexILz+8nCvrtMoLvNGHMzle7ZkTnTcESxhcv1CmGeKZNKX8IDk+eEZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NF8uzQMK3g8s8jElmJY9OAV99dioPt5RsKEOYrJQ/j8=;
 b=qY/t9AgdXDKv4U4exSRZvThi3YuMS/9ZSyerRfiTVSE6G0xgs5zDh/rLMGzktiachg9u31gbr6lL7a1TVUI98XiyV0Rz3w/Z2pX0J2+/TFSJ5AlRJ2gz20jJUoNsVI/Jyv8OlZPcMEWs/69PZdIjuPDF+jpHgEFPGPdO1hCg/Hw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH for-4.20] MAINTAINERS: Add me and Bertrand as device tree maintainers
Date: Mon, 15 Jul 2024 11:32:51 +0200
Message-ID: <20240715093251.35371-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: MWH0EPF000989EB:EE_|SA3PR12MB7781:EE_
X-MS-Office365-Filtering-Correlation-Id: f40965b4-93ad-49ca-42a0-08dca4b11cd1
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?9B4pdoTLd8K8Esf142DDdEWgg/jMpz3XH8VL84oUgtMU/I1B1EPCw40jieuX?=
 =?us-ascii?Q?iU49CxW9iwpJYBYygCYZsxjfdo49/xC4e/wMcjstaTFxC/HN65lfoLa+B+hg?=
 =?us-ascii?Q?RgYtmZqJ1Uk6+1VDqsTTnp+jcHO4AsDzKF5ppv0/xL1urr7Q8CE4CeskPWM6?=
 =?us-ascii?Q?2ip+Y45Jo/IIA7tzTcGMozJQ6DGn0bSAve438Eqrs+dQgtreWUs2FbrS4Ne4?=
 =?us-ascii?Q?IFWdjXGgDSpK5i0KG4TX/J4U1jEyRl96MSWDym7FQbtEZR5LCWKcOt/4+iR8?=
 =?us-ascii?Q?oYOP6hfYxNsGK7+unJADBi2UCHq1kKWtOIO0lwDbj0DtrdEEJgWpMqSQoyXo?=
 =?us-ascii?Q?GNT7CoSDBMig9HHY/TsnHgi9RtXTOzOySWnQCQn7BYbl2v1K5hpFe3QPPq4H?=
 =?us-ascii?Q?ixUOqmYVBOGWggatTgdR6f96KB1HrVq1okekOjaBvmbjrzXkUvWTRG6++MuE?=
 =?us-ascii?Q?zRk2dFCcIBR39XbWubjMnlmaxhFz8/uibBVHaVVXkCgEEPDj4w+1IJpltaMw?=
 =?us-ascii?Q?MO7wEJTcD/L6T8ferjmSXNKngYMGP1b0XzzxeMu72aaxdAQSBkkfGF/DurtL?=
 =?us-ascii?Q?+PLITtDFn0tA+bEKYaT2AGGE9WobA75OUO67+gM/PwmYMyMhXeoYhkHoB4KQ?=
 =?us-ascii?Q?BWwnoMY9gPNIohOJ+KTAwf/NVbN7JXjgESHjxLzPSMZIT0pLpQyap32U3yz2?=
 =?us-ascii?Q?wUN77Ln/o0v/nEDS7F1/LSpxif8FTU9hZZp1+M6vuiBBGbxRvGwVIxPU6cUV?=
 =?us-ascii?Q?xKLzRzrssUuwP37fhh7fvymEEuAahDyOxuE2Nsj082NmWH+llNmnjIm1btQb?=
 =?us-ascii?Q?JIo/S4y2yI4Ytf2CkvUL7bcE0go+gfFIs0Dar0Ya2Vqg8XMwBdLERuD9oIcp?=
 =?us-ascii?Q?2vSGmojIPPt8O3zRv/5pRvwGBjEz1LikvYmFArMkAKXfelaRRCgWshQiWWHO?=
 =?us-ascii?Q?mefHZOtnaGYHIyQeFYo6OBQna+BnxcJrWgl+L+RHmfzveHr8xLvqjl6cPhOg?=
 =?us-ascii?Q?9aKIhZr7uh6Z6BsAzyS3alscpD0EidIAdA35x9nOMpTzuba/z8EIl8FB2bfc?=
 =?us-ascii?Q?QDyoJlY7+d9vyYCqmpJC0VfSft1hnUHsO5wchI0M32UFpCwl00tLo8FEgOGr?=
 =?us-ascii?Q?4dXvkmZjMP/8wwFBs7iq4WpeQmFtMHgKv3RRRXF9+kJvJWZh2p8t/tmP4LI1?=
 =?us-ascii?Q?uK+67WuOLb4Y2aMsFbsUbr4AFfx6sPdUUkzYlNyZPMvtqZ8okEPaYUNXmSmI?=
 =?us-ascii?Q?YRsFsQGgDc8F7NfG4r+671uA8rWXUYIQkAd5OFw5qwxmudEXEkpiDCfXU2GT?=
 =?us-ascii?Q?T93MmCLLXAtJB9f9+5oksEon3wfVczgEHim/WvtUPPSmZcwMhdkgxxo3PuqP?=
 =?us-ascii?Q?OvbUlmI4SpJTIsXQZaH6BV4MP/rk64BLO7sDv6YkTbCzfMHzNtrzBe2t33Gd?=
 =?us-ascii?Q?5Oft/q8rJa8=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: 15 Jul 2024 09:32:57.6910
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f40965b4-93ad-49ca-42a0-08dca4b11cd1
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989EB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7781

With Arm port being the major recipient of dt related patches and the
future need of incorporating dt support into other ports, we'd like to
keep an eye on these changes.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 MAINTAINERS | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 2b0c8945270e..f47bdb33d510 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -293,6 +293,8 @@ F:	xen/common/sched/*cpupool.c
 DEVICE TREE
 M:	Stefano Stabellini <sstabellini@kernel.org>
 M:	Julien Grall <julien@xen.org>
+M:	Bertrand Marquis <bertrand.marquis@arm.com>
+M:	Michal Orzel <michal.orzel@amd.com>
 S:	Supported
 F:	xen/common/libfdt/
 F:	xen/common/device_tree.c
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 09:36:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 09:36:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758801.1168283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTI8G-0006Vh-6w; Mon, 15 Jul 2024 09:36:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758801.1168283; Mon, 15 Jul 2024 09: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 1sTI8G-0006Va-4E; Mon, 15 Jul 2024 09:36:32 +0000
Received: by outflank-mailman (input) for mailman id 758801;
 Mon, 15 Jul 2024 09: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=9lNX=OP=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1sTI8E-0006U7-97
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 09:36:30 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20600.outbound.protection.outlook.com
 [2a01:111:f403:2613::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b63b1fa9-428d-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 11:36:29 +0200 (CEST)
Received: from AM6P191CA0071.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::48)
 by DU0PR08MB7413.eurprd08.prod.outlook.com (2603:10a6:10:351::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.28; Mon, 15 Jul
 2024 09:36:24 +0000
Received: from AMS1EPF0000004A.eurprd04.prod.outlook.com
 (2603:10a6:209:7f:cafe::1) by AM6P191CA0071.outlook.office365.com
 (2603:10a6:209:7f::48) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.29 via Frontend
 Transport; Mon, 15 Jul 2024 09:36:23 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS1EPF0000004A.mail.protection.outlook.com (10.167.16.134) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7784.11
 via Frontend Transport; Mon, 15 Jul 2024 09:36:23 +0000
Received: ("Tessian outbound 5b0e0b3c9995:v359");
 Mon, 15 Jul 2024 09:36:22 +0000
Received: from 56f48b2c22c7.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 375B9750-F8EA-49D2-874A-3ECCD90B3F00.1; 
 Mon, 15 Jul 2024 09:36:16 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 56f48b2c22c7.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 15 Jul 2024 09:36:16 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by PA4PR08MB5885.eurprd08.prod.outlook.com (2603:10a6:102:e6::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.28; Mon, 15 Jul
 2024 09:36:14 +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.7762.027; Mon, 15 Jul 2024
 09:36: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: b63b1fa9-428d-11ef-bbfb-fd08da9f4363
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=N54rAXrcoydKKVImcd3bDFnk6wRFDrq9AstEaqm5INpPMbc++o4WzZw54TKme9cyMc99nIHRYAuFPGyz6GpmFVXauWnDSkieqG3qRNG0xhFYW6uHsXLbJ7cgvOs1PKVc1TM0dj0tRnaPCozk8DN/VnJocuTIwa0KRp6zGiAyhNpK0UP7yVkZhGkUycyZmdOdXl8h4nYx0qJXN+sZsuPjqhzTjx1lOhEoegBP/D/EuhgFfpbjxiT7bJpRR+RWl4o4WTEVD0UsYESGzE/XvaUsenRB0/Q7eZ2Bzutb2tnEIfzr0yXJoLZGk30qraUlm/o8kv92GjNGs/UYarSgahAtDQ==
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=TnLdjVn8PkLdsHbiS/49cUWOPTqApqZ8xCUmAYvUVQM=;
 b=dqLDNA7HxNP/sKz0kXmGIkwTF4YQ6C8VsvggQaHyh1MiTgRjfCJ0xBSoSP8nh5PYv3y4TwH4RDahPYd3nQaR/1BMy90igOBse5M1Ojymnki76rjFgoQAoM2yz9qNeLm7RRbPs40S/kNh+UKedRkZUWgMCERtFNwBZRzjIzHk3S36olCrhs7uDdaCRr2eNoXKtQ8gFH+tqywP1A9WiPOpDkpo96yvYrY/NLicrY9xpJtu85eci/Wc4C7XeERbo57MD+XkHuxUG14+RSYNUP9+SCBk9xcp/O1zDhNBWyAS0+gT8ZbGSx8tunLBBv/5XT8sZn4E76NEVFq009kvS3W2PA==
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=TnLdjVn8PkLdsHbiS/49cUWOPTqApqZ8xCUmAYvUVQM=;
 b=ah/u0HdlznZvIf2voq8DGvmrUPbwoojNYpHVsgEiObuoY68fVsRw/nILw5N5n2OFrvbL0o3IxADmG8IGa8OV2hF5ar4tcOOIY7T4+lEcYijTwW7Ze7x8TGNaE3N2YHsUr66dyo7+haKCbFYXVHbxn3q4slAA6kQT62FfIpenHvA=
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: f2e7ff1e96cca88e
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L9+Rnu3iYi0iyGHThe1fKpYuqcZvXdcDhutqLlI6YX9d5DHi8tfTGnm5Bxec+7f4WK1h1pDiLg8d3yYmJ2iw8/VdgzqONTPkpuqncd5I779c1xI1BZq0AZOir3e98B0vJhsPp2NYQWuR8ts9VtBy/ImnFZ+vT4068mjB4ETIK5EO2PfLxrfRzqR0fDTUFdGbYpCjWcncjXisesQY1u1UAL+9v1396iMqXgJRpVlpB3p55ZbRDxPrEEFBWLxahyG4I316yWrZaHT2faHX8GhQcTTIrcoLuun9PfBUA0CW49QRRZr476vVj9xSC+Rrlj/aR3L+s322IBFYmc9O+J8R1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TnLdjVn8PkLdsHbiS/49cUWOPTqApqZ8xCUmAYvUVQM=;
 b=CEve8X5wslobxP4xuUAY7GcRf88IaYxEATchh2DaNmpry+D1hZ/QpqHbuySQh6MT/H4JMcViSbpThMsM9Zlm7xfiAGk+/llly4/fkXg5F54XRhhVnAHvtKkEyrXkPtWwQHpw1VIP9cNHkIS0x8UD6kpSUpXE+LTWXYouC1JF4x3oVNpx0q3MwRnrhVBNZzhPQXHDur4HWGrSFojTP1LK2QWW1wqgzmFfHvVNL4Z0GbtIxHpMIqnhNRBNuXZZ1B0tH1E4OINqupVPbVRgioXmQjDS1XHriVI6ucLB9xr1h6GwCgKoFDP0B0HZCsMICZfPcnCnd+kBZYYlO/RQftiItw==
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=TnLdjVn8PkLdsHbiS/49cUWOPTqApqZ8xCUmAYvUVQM=;
 b=ah/u0HdlznZvIf2voq8DGvmrUPbwoojNYpHVsgEiObuoY68fVsRw/nILw5N5n2OFrvbL0o3IxADmG8IGa8OV2hF5ar4tcOOIY7T4+lEcYijTwW7Ze7x8TGNaE3N2YHsUr66dyo7+haKCbFYXVHbxn3q4slAA6kQT62FfIpenHvA=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH for-4.20] MAINTAINERS: Add me and Bertrand as device tree
 maintainers
Thread-Topic: [PATCH for-4.20] MAINTAINERS: Add me and Bertrand as device tree
 maintainers
Thread-Index: AQHa1poTDtSNYVwz3E2hgS1ZavrdMLH3h52A
Date: Mon, 15 Jul 2024 09:36:14 +0000
Message-ID: <E849833C-B1D5-46F8-84BB-DE788E126014@arm.com>
References: <20240715093251.35371-1-michal.orzel@amd.com>
In-Reply-To: <20240715093251.35371-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.3774.600.62)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|PA4PR08MB5885:EE_|AMS1EPF0000004A:EE_|DU0PR08MB7413:EE_
X-MS-Office365-Filtering-Correlation-Id: f503c837-dbf6-407f-f514-08dca4b19736
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?ja6Q45/dTrQUwSsrqp17tTBV5HZTgQ0sNolTfmCzqdwb1m+a+DYJnsw2ooWu?=
 =?us-ascii?Q?5Gj9Tm3pN0cdn30gw6nIQgpDHt/YnUl4OVpsxLbjY6R6Z+EiUIZpUGVTRrbY?=
 =?us-ascii?Q?x1LEX115TEcrbyKEz/X8r7HRZ3XYISQA8o0KU3ssCM/w5K1mF5rtujF8UBKj?=
 =?us-ascii?Q?Z26Hk4SRGr/5zBqZrtV5ZZELNDyTBtwvVBfiNBCCcuC5SGf/tUB1hQj6IkMH?=
 =?us-ascii?Q?ClWKTCxewZp7xOYtweot9NOIQu+VU18/3LPFj2EF8uygmsA5vEuR1kcjc8b4?=
 =?us-ascii?Q?cjvE/WgB3Ux4HMoSjRxM9K7sozq07EZ0uR6ek13kYYZGIFca9YuvxoihDjcG?=
 =?us-ascii?Q?y3+cBbsPdPU5IM++fPpw31kPDrnYaWvb956Lubi78BpiwUIHTACi/dvLBiiH?=
 =?us-ascii?Q?nbYlmAUfErfxa08HvF5bfmNgdo+mJ3KBJAjTqiGLXvf3JRSSy0j3WYpyojqz?=
 =?us-ascii?Q?0OhychNSgxgqI5ZXDDAEx+e+PzW8/joco6KknBnOFWbb5hPv0lULbtpABgf+?=
 =?us-ascii?Q?8fSGArGNiTPvFbGsbWS313yqPVD0gLJTNaWyYlGzDjOiHNA0ASOpdi0Y/WFe?=
 =?us-ascii?Q?t9HxusLi7ON+IZfTT4LQ78zyWHi5A0sFM+JrsEiojNefE7Fj1gkGKoqBXNcP?=
 =?us-ascii?Q?r3MJ5Jtpz6WJ2v68S7+E7wVLsaLaVdBg7o+NZTTWYrsbSSE6T3nFfvGQ+vay?=
 =?us-ascii?Q?geVAmE0MsVNWH+qCU7GCOB8gTuDIjul8kI6l/8xSBM4bleoyCJc3iva7wC9m?=
 =?us-ascii?Q?d3GO/sHOpJ/4joIPV67Hw9rcNgwANkW5tHhfIeLBT+p6Fab8sVjkLmzhrKIm?=
 =?us-ascii?Q?okDZzvtHMzHPKYdgfdrZuc3G+O0hk7JHNmTVWAthOQ4DJBBNnvWPoYfvUycD?=
 =?us-ascii?Q?6nBvQnQKoWzqGAK+g2I81XEHckMHt+amhrjAsv3sSM/MdtYeLNoB5MYFXDBP?=
 =?us-ascii?Q?p6wGMOkF3ytOoByibdUDhGlSG9sM5ovBKEip1kcqzIJU9VSLhnryTi+7dtHn?=
 =?us-ascii?Q?3MIDFgXJeh33wfWCiHhaQWZcHycwrBOvm4z7q+RztOQfYplaOCpQnypjrl/9?=
 =?us-ascii?Q?TR8D4AJ2prwcaP8bhSZv7sucp15xjE3JTcyi4Bh8Yw76SkoKlLzgom1WGVUJ?=
 =?us-ascii?Q?MHFzHvJ073RpVSg+I8Bil/PQ0KErWbJQXMbeYoXr1IjMItKFltxAp3Epo96j?=
 =?us-ascii?Q?M2mhO/42ci6H2liFOWzJHjSQ+IHVzfpR3vNwEZ5LDGOJupGED8heCMAi219r?=
 =?us-ascii?Q?wQWGh3byc920CxH4v27xEwBE/fR2yuBJAYUmwuWaBCJxKtwdYwlJvZBGTOVV?=
 =?us-ascii?Q?mW7vhI0dXQVn1qE+slAhYIPT/N0kro6BLWgBl8PjbFe1h1lNnJHbmkx1v4uF?=
 =?us-ascii?Q?tarQXwtW0fYaRnvq7gWdIMsqj96/8+YCZDEuo6peju2fUsxP8w=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)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <F6B40A4A65D18247ABD66D535D29C46D@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5885
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-Transport-CrossTenantHeadersStripped:
 AMS1EPF0000004A.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4b67e1e4-7c2e-4407-3ba3-08dca4b191e7
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|35042699022|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?7yIZh7HRSaTm/goaii+3XRhDNeF18LcPPFHt7zMnQQa5j+MQzXPpcIqF57rP?=
 =?us-ascii?Q?h0dZZlL0gi/MJSpZnPGY94g/O/TjLPM+gUE/XoS6C6lvkh8CSFJgVth9+b/l?=
 =?us-ascii?Q?tUHTtfbkBkiPol+7KIp0v5hIdmFdWO2d58LTjm+wFy9O6uLjaZWKv8oOyiHu?=
 =?us-ascii?Q?H6UfJwDUQklr18KuKuViRizh59iSsz3LSVh2LYSAIUudpsx5IjZlVOo6AmrG?=
 =?us-ascii?Q?xI/E+xCIoCYQNQoL97U6Xnx5hRvQLR1IyNV99pvCUzkBHpZ+1vHdJZK0L4fw?=
 =?us-ascii?Q?pbWBxC2xAsQ+opcRGmZGIVuMhly392tQ75kg00tpYYM5TcIxTCSG0CEvkCLu?=
 =?us-ascii?Q?600g4GKWfNN15dbzQD/949hpCR6eOvE2qWtyCugaSg4th1QjL6H5SqleUeyY?=
 =?us-ascii?Q?1aWbqsJWyrh4T8gG1+kzSvDYceuT5UF8imKZpdgb0W1OxK7ahZsbsMA354eb?=
 =?us-ascii?Q?NuHnSF3VzdBTlXgZj6MSOIaZGPv2vbBP59jPto6rpp6SQM6f8cwH8j1ZHvP4?=
 =?us-ascii?Q?SJPaQlpePZn9/9oa/hjBo3gls4go8TufJgOfMjW9w4TKXgDUQOiyU0wLPa3L?=
 =?us-ascii?Q?AJ4yDdM6NLJrlUzep+rtCAUGUmrInqZBGiYZltJPTOW3H5Qre0SoKLaCvvXB?=
 =?us-ascii?Q?Od3Xl4JsSKIO/OxqgdBH9VaKEkz3NC/ujHGEWJ0r/ZVbgospK99K/qzfacdQ?=
 =?us-ascii?Q?cpuCkYS9VTd/fw0ukaES49DsML2PgqI2gHLTqJTgZ4vtr0WgVDCnEeoKNP/I?=
 =?us-ascii?Q?jcKXGgAuxUuUS2v6iWn3QmFzeR5LKL6hyfWanQEqGYBSK0ceGW/6qyOQYjZf?=
 =?us-ascii?Q?4SFH1Vi0KmGtn54Qhsbke1blyxJmY0rX9nv6oB0MLvVdvp1O0HXi8j5qjKSa?=
 =?us-ascii?Q?RlgHvEe60okGlbHnVSQUY390acsd2/0oA+msn/9T+0VJsndq9T2uloBw4iz1?=
 =?us-ascii?Q?1LtqaiAW/+syYjzBh0lXT4DOWodV9xqgnAMnVVCDm5KiTCjTfr0jen1Kr7im?=
 =?us-ascii?Q?UdtcPTu8nO2KkOHHUVZS5AmXzGVY5Q6XYvqlVcDs2hm4U9fC20IBZ67NSjXc?=
 =?us-ascii?Q?Ec/fo+xY+yVbkfL6fYLI5SReDm0Faooa/WJ4k1omnORAJDylhODGfwDN12gS?=
 =?us-ascii?Q?FR69As/BMat9yYMU5shC0WMXHGxvxsEPN4x1zoshF55FGr/1RRZUCVZ3NodS?=
 =?us-ascii?Q?C/kcP01IO5KpmUTiUhNM35ogTGg1kV4IoY5RjgcKImR6P2kqBtnCfv8sA0s3?=
 =?us-ascii?Q?4VoQu7b5g2NexBeFtI04vmma2afqRQXUKRxj9f4ra9VBaYEzLpmFyBr+Nm4u?=
 =?us-ascii?Q?XCTerwfLmsb5XH9ktBo2+miRl5ZSZGguT+DJwmTLpUq45HomHFRkJf+ETJ52?=
 =?us-ascii?Q?6FRJd+folK+KaqI6x03onmjpEvQ0jhs2lNvlxILEq2s4JWCDoMU8Xr+/7Wd8?=
 =?us-ascii?Q?1xRhZm1vYEOGoX5pn2hhv4yfGGdCAjBV?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(35042699022)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2024 09:36:23.2427
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f503c837-dbf6-407f-f514-08dca4b19736
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:
	AMS1EPF0000004A.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7413

Hi Michal,

> On 15 Jul 2024, at 11:32, Michal Orzel <michal.orzel@amd.com> wrote:
>=20
> With Arm port being the major recipient of dt related patches and the
> future need of incorporating dt support into other ports, we'd like to
> keep an eye on these changes.
>=20
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

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

Cheers
Bertrand

> ---
> MAINTAINERS | 2 ++
> 1 file changed, 2 insertions(+)
>=20
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 2b0c8945270e..f47bdb33d510 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -293,6 +293,8 @@ F: xen/common/sched/*cpupool.c
> DEVICE TREE
> M: Stefano Stabellini <sstabellini@kernel.org>
> M: Julien Grall <julien@xen.org>
> +M: Bertrand Marquis <bertrand.marquis@arm.com>
> +M: Michal Orzel <michal.orzel@amd.com>
> S: Supported
> F: xen/common/libfdt/
> F: xen/common/device_tree.c
> --=20
> 2.25.1
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 09:41:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 09:41:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758805.1168294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTICr-00007b-OW; Mon, 15 Jul 2024 09:41:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758805.1168294; Mon, 15 Jul 2024 09:41:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTICr-00007U-Lh; Mon, 15 Jul 2024 09:41:17 +0000
Received: by outflank-mailman (input) for mailman id 758805;
 Mon, 15 Jul 2024 09:41: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=kjrg=OP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sTICq-00007M-7D
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 09:41:16 +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 604b0c53-428e-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 11:41:14 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-595856e2336so6741785a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 02:41:14 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59b2504b90asm3191917a12.36.2024.07.15.02.41.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 02:41: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: 604b0c53-428e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721036473; x=1721641273; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YleFAIGW+rt964A8DiulJaKo0rxKaFK2vu6+E8Cd2X8=;
        b=JrWHW39eUJslnSoYjwa9UFuQcmlAV/lCevpJqpfXavTU/vowwuX9aSwRiqPnmi0UpW
         qTknlsn1Zdx258wqg+rWiGVtln8gQm11w7126UEy+ZH5F9bYX1MvQsViUPgYLNljWKYz
         7AWrRI+Sfc6oohobtYYRhikcVS5CEZyO6lfWI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721036473; x=1721641273;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YleFAIGW+rt964A8DiulJaKo0rxKaFK2vu6+E8Cd2X8=;
        b=bhFgIkdc0c9HVzuuEn1mY06QNaSoA95cUdN2rPjgKGIKo0uj3gw3mZhTxz2RI86pJo
         vKgxR9usfuy+BJP+7IS3U9uiaw4YZPG7jwXLUyjTPRahAotTCoU9zL9C/YZUay+Sl27d
         G6dvi34nI2w7FzNneHIs4moy3zln1aEH/8sQxHC+VDgrIRUMq2JToe8Vjf+BnURKkPiE
         Lg/R211vHuYaiei/wmexUUB3XxKxgX6cF6CbD+qtRSw1Z8vXW9XAng+lNdscfW+yU3pT
         kvwf5ueieJeCYzxZ57gNTTTxG61uPTz++blpAA8aPzx1lCbhiwyvovkvSaIBko7/N3KY
         wwVg==
X-Gm-Message-State: AOJu0YzOnxv+e7y+rvXcdM2TbFai+/mdkK3yt0499JLHrtSIqCmXU86s
	coDwQZ7gGZ+rDZtO/mvuggAPDdunEIqVusW8hvVNq9QS5ll3mE1o6w7Ow6R5h2Rg7IYDFmdlzej
	q
X-Google-Smtp-Source: AGHT+IGvTlbiXfP/TWMsjKtK7uifwPPqiS3MJZJWeD+GCjjUwnBatfep9hcP9ZUsIMWOMKoMceSvXw==
X-Received: by 2002:a05:6402:4304:b0:58f:41e0:8d21 with SMTP id 4fb4d7f45d1cf-599647adb1dmr8314544a12.9.1721036473590;
        Mon, 15 Jul 2024 02:41:13 -0700 (PDT)
Message-ID: <ece26efe-c1af-4fd2-910d-01a33beda5cc@citrix.com>
Date: Mon, 15 Jul 2024 10:41:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Help with Understanding vcpu xstate restore error during vm
 migration
To: Jan Beulich <jbeulich@suse.com>,
 Fonyuy-Asheri Caleb <fonyuy-asheri.caleb@inria.fr>
Cc: xen-devel <xen-devel@lists.xenproject.org>
References: <60751777.2038091.1720694327760.JavaMail.zimbra@inria.fr>
 <94e94a94-14f2-4fa6-bc3b-6c64c1b84b59@citrix.com>
 <1546743760.2065506.1720696161057.JavaMail.zimbra@inria.fr>
 <8f8dac21-92fe-4760-8578-2fbfde2f2c14@citrix.com>
 <1557490999.4048664.1721029086794.JavaMail.zimbra@inria.fr>
 <77f1ff6e-a7dd-45c8-b706-429674b559f2@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <77f1ff6e-a7dd-45c8-b706-429674b559f2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/07/2024 9:16 am, Jan Beulich wrote:
> On 15.07.2024 09:38, Fonyuy-Asheri Caleb wrote:
>>> Perhaps the more important question, are you booting the skylake with
>>> cpuid=no-avx on the command line by any chance?
>> No. I didn't boot any of the machines with any cpuid modification whatsoever. 
> Yet is there perhaps "Mitigating GDS by disabling AVX" in the boot log of
> the hypervisor (which sadly so far you didn't supply anywhere afaics)?

Oh - good point.  I'd completely forgotten about that.

If you've got out-of-date microcode (specifically microcode prior to
2023-08-08), then yes, Xen will disable AVX by default to mitigate
CVE-2022-40982 / "Gather Data Sampling", and the symptoms would look
exactly like this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 10:07:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 10:07:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758812.1168304 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTIcV-0004Vu-So; Mon, 15 Jul 2024 10:07:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758812.1168304; Mon, 15 Jul 2024 10:07:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTIcV-0004Vn-Q1; Mon, 15 Jul 2024 10:07:47 +0000
Received: by outflank-mailman (input) for mailman id 758812;
 Mon, 15 Jul 2024 10:07:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kjrg=OP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sTIcU-0004Vg-E4
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 10:07:46 +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 149ef05e-4292-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 12:07:45 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a77cc73d35fso883233966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 03:07:45 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59b24a770c3sm3166007a12.20.2024.07.15.03.07.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 03: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: 149ef05e-4292-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721038064; x=1721642864; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pVIXYrBZNPykrKTTCOhgq/O6z5wgGsql0rTfogkg8A8=;
        b=Ys0kNfVitqvqvB6ZIGyyAnC3FsJuNr3BilyQJDgZXbOxk1J85X/uugWoWuYPxMH3LL
         W+P+q5nPveU/7I1OjljuhrH37u3SkypvmwQEgL9mGDBLfv2EKyp5NvxzOAQJ2862mm0w
         ohaTNJPlc9X9NRGXcCmxf9Lx3rkElIScub6lg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721038064; x=1721642864;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pVIXYrBZNPykrKTTCOhgq/O6z5wgGsql0rTfogkg8A8=;
        b=iYRyzgpVxgBAyxXiaYlxLDXXD5EQ+y71QzCXM+nWvUV8WhVUUwBgHBfTCHzSujIGZn
         n6twVGl0EKoKgAmv1bElviYuIJes4HTGqe0pRE8tzp2ZlacMtwwa8necH/BIopq+tCgd
         o6q7IK0ZpSwtSQXKhgrLrK1LIYbZwVwH7RFKqW55zwbRESUR8tdtI3bAt1ydnyf6YObz
         CimPUrwQ7f3bVq2bzBUdVIBRdKw/ehsNJrM8LSg9b3SsPNDkHjPHlfRj01h+5oRUT+Px
         VhhoJeEPN5H7xy/3EoO0oo44EcPlAXmbfcw0xMmOcfHOapqPTT5dAw2gtuI1t9LVIVVZ
         C/KA==
X-Forwarded-Encrypted: i=1; AJvYcCXhdctYew82i9Hx8W9sJp6/QnBJfRQ0/Dfr1gx5unLPyopbmxMxAEenFZKauGxt6gaK0VXj3MmsJspDP7Re+cynGoKDRDKbnQ2RB/30Q9w=
X-Gm-Message-State: AOJu0YwS10sabQzUtuBfzNmiJ1jjrJ9hLnJ+V6WuO7Ei3Ei/0EEXWC4v
	TyeVK7orxXbrDRuEpzcjcUN4AUhgyDZxSeWXkTUZa5IDbe1MIsxC39ifO/4Si6RZF3JlrX9yExe
	I
X-Google-Smtp-Source: AGHT+IHXbrjH5xLOZsdcIcyF29uaIhil1r3utWfjHcA3y/E4zfn7GMMv01w8VoRsfZfaupXk0bzCtQ==
X-Received: by 2002:a17:907:7e8b:b0:a6f:a2aa:a4c7 with SMTP id a640c23a62f3a-a799cc26313mr861354566b.3.1721038064558;
        Mon, 15 Jul 2024 03:07:44 -0700 (PDT)
Message-ID: <4cf46d24-2e21-4909-b1f4-fd6757801101@citrix.com>
Date: Mon, 15 Jul 2024 11:07:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: systemd units are not installed in 4.19.0-rc2 anymore
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel
 <xen-devel@lists.xenproject.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <ZpHqR4e3VaFAXC3m@mail-itl>
 <94d0ef92-9fb8-4097-a633-59f1190434c4@citrix.com>
 <1057f937-da16-415f-a760-ac4f00bc29f3@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <1057f937-da16-415f-a760-ac4f00bc29f3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/07/2024 9:11 am, Jan Beulich wrote:
> On 13.07.2024 15:02, Andrew Cooper wrote:
>> On 13/07/2024 3:45 am, Marek Marczykowski-Górecki wrote:
>>> Hi,
>>>
>>> Something has changed between -rc1 and -rc2 that systemd units are not
>>> installed anymore by default.
>>>
>>> Reproducer: 
>>>
>>>     ./configure --prefix=/usr
>>>     make dist-tools
>>>     ls dist/install/usr/lib/systemd/system
>>>
>>> It does work, if I pass --enable-systemd to ./configure.
>>>
>>> My guess is the actual change is earlier, specifically 6ef4fa1e7fe7
>>> "tools: (Actually) drop libsystemd as a dependency", but configure was
>>> regenerated only later. But TBH, I don't fully understand interaction
>>> between those m4 macros...
>> Between -rc1 and -rc2 was 7cc95f41669d
>>
>> That regenerated the existing configure scripts with Autoconf 2.71, vs
>> 2.69 previously.
>>
>> Glancing through again, I can't spot anything that looks relevant.
>>
>>
>> 6ef4fa1e7fe7 for systemd itself was regenerated, and I had to go out of
>> my way to get autoconf 2.69 to do it.
> Yet was it correct for that commit to wholesale drop
> AX_CHECK_SYSTEMD_ENABLE_AVAILABLE? That's, afaics, the only place where
> $systemd would have been set to y in the absence of --enable-systemd.

Hmm.

Yes it was right to drop that, because the whole purpose of the change
was to break the dependency with systemd.

Thereafter, looking for systemd in the build environment is a bogus
heuristic, and certainly one which would go wrong in XenServer's build
system where the Mock chroot strictly has only the declared dependencies.

I see two options.

1) Activate Systemd by default on Linux now (as it's basically free), or
2) Update CHANGELOG to note this behaviour

Personally I think 2 is the better option, because we don't special case
the other init systems.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 10:15:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 10:15:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758817.1168315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTIjo-0006EM-MU; Mon, 15 Jul 2024 10:15:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758817.1168315; Mon, 15 Jul 2024 10:15:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTIjo-0006EF-I4; Mon, 15 Jul 2024 10:15:20 +0000
Received: by outflank-mailman (input) for mailman id 758817;
 Mon, 15 Jul 2024 10:15: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=wOo3=OP=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sTIjn-0006E9-K5
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 10:15:19 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20621.outbound.protection.outlook.com
 [2a01:111:f403:200a::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 212bb5a4-4293-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 12:15:17 +0200 (CEST)
Received: from BL1P222CA0018.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:2c7::23)
 by DM6PR12MB4332.namprd12.prod.outlook.com (2603:10b6:5:21e::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.28; Mon, 15 Jul
 2024 10:15:13 +0000
Received: from BN3PEPF0000B069.namprd21.prod.outlook.com
 (2603:10b6:208:2c7:cafe::db) by BL1P222CA0018.outlook.office365.com
 (2603:10b6:208:2c7::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.28 via Frontend
 Transport; Mon, 15 Jul 2024 10:15:12 +0000
Received: from SATLEXMB03.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.7784.5 via Frontend Transport; Mon, 15 Jul 2024 10:15: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; Mon, 15 Jul
 2024 05:15:12 -0500
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 15 Jul 2024 05:15: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: 212bb5a4-4293-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BfhICrSY34LDbxvFvCF4U/6zt7nmz9yBM4klTgd9fU60j4bpvG+GzHllpLTTjz3Rcb9dJtZ6T6JHMO0nJSBuS2GGT4pPXNO8OMtzDhkgwU7bvFXmmEG0axfMu2Lh8cz7AoLb48uFrENYhnS2p6/Yv+yb0j7uAgHcKmKpgtrQ4DEaP8lfVeAOrSkVrDggoaZoN9AUbObEdvHbpkzEeV9aNcsOLJtXsWdULv30VUB0Kl+CU17WgtzVnIEbamcBgAYfGpNryRsCQzBR0cP01+NHH7QcoeeOODzJEzrwkESyaWlGrKc9JIGqIzqGuuQDseWT8kOa7EwSsxeajeMAdwVSeg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yg3+d9VsWm1DnUTslS/oveDOZBCjtkbsH3/s9DogokQ=;
 b=neko306aGUcTolGQoFMkphDDeVSHfLXCrv5dYNg4WnENTEoeZC9IyECn1cV9Yu3U7ciDzV7iGSXh+V3KkjWU9F4lMM2vpJgbe2a1MlWxCx6uEUZF4hzJioXx43OmizKrSxh1aXrX23aCkWOJzm0cKDLOuyh2KrzgESMBOMn7FBffHuh+JPQZQxDpRdMTbuCdqq2WV4BXm6ZHGl4pHNmY5W6C7hXnWH3fLbTNlEr+CwySPufLnLIY+GMMiQW+tjbt4CvQkkVBCrHNipV4pIl8LC8Iwbus255nKYCKfxE+EblJs5PzEBRVWLTP2kCylcHlwFuN0SwdaBLRHhyfbwfzSA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yg3+d9VsWm1DnUTslS/oveDOZBCjtkbsH3/s9DogokQ=;
 b=tFXQN9+3BmMJMONZzIbsAtxvlAOfVcZnCHICUD7YCk98ljPzo7CrEs20Yecp6df2z3KGlRwIRx9mhlIjBsOnwd37LtIk/SkavrOwYcmJ1aDDiSWyDL7eCKI5jLj9Vs1jZ3sPIObA3xHSIJWvAxlK7wTKb8Ff1wpmM3z8JEGaHgk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <98144517-5abe-4a82-81b4-6a459826fb2f@amd.com>
Date: Mon, 15 Jul 2024 12:15:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/8] xen/device-tree: Move Arm's setup.c bootinfo
 functions to common
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Shawn Anastasio <sanastasio@raptorengineering.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>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <cb2348393294b8910d794d9d11fff28ff0e6996b.1720799926.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <cb2348393294b8910d794d9d11fff28ff0e6996b.1720799926.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B069:EE_|DM6PR12MB4332:EE_
X-MS-Office365-Filtering-Correlation-Id: d0c5838c-245f-413c-4568-08dca4b703bc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SWVMMmovcWZvSzlRRS96clFkUFZnZ0pJdWRHZ2luaHFwK2NBNmxnNUttR2tH?=
 =?utf-8?B?NGZwLzcvdVZTU1NySUhUWVFIZ2RrNUxpc1RDemZWMFBlN2ZKWktsd1RBSUR1?=
 =?utf-8?B?QUZVQVdFMjh0WFM2dVZycWloejRRd3FCTGp2dHF4REVBYTk1cUZMbnFJRUt0?=
 =?utf-8?B?VW9jZksxS1AxTFBRTjMyUFl5Zk16R2gzMFp3V2pQcVJUaVZDbUlCcm9BL1VT?=
 =?utf-8?B?SEFhb2ZodzdVTnMvRzVKWTBXeWVJMWJhR0lGWVUxN3RyMTNPcit6Wjh4WFRD?=
 =?utf-8?B?aEsyUkttNDJrYURLZEJnNzQ0WEwzdWZEaC94OUhucW5qbGJ1bWVUL0V5R2t3?=
 =?utf-8?B?SDRnalBwSHZBWnlCN0k3bnJnaFE5bktRbHMvQU9HNVNBbkxnRW0vMG9Zb3Ex?=
 =?utf-8?B?R1JmZERPUVNUd1M5bjk5YWw2cmI4Wk90TkhaNldKMEZ5OXJMaGNpRHJ6Qkw5?=
 =?utf-8?B?UGYzTlRMVDVOMnpXR0ZQc3h2UGhXVjFnTHFHWHlHTXNVaTkzVmRjS09vMzlo?=
 =?utf-8?B?a25udVhpemhoa1NEQVhiY3NmMjVrdXhOM1JxbnNSU3drOTc5REhvRjNxT1VV?=
 =?utf-8?B?MVRmaFY2RTJVUEU5MngyRFZwcU1zZDdUV3pXSnlpRzhNaS9yMStmR0VNZXNs?=
 =?utf-8?B?V0FlVnhEc2hBeitvS1YyYi9ZNUd2YnJwVHg4S3JDeGM4WUJxeDFKQkNITklr?=
 =?utf-8?B?SVJLZXM2STNXVkZNYklzMkEwNndFVE1RalltMmJYeUpsZ1lHSHpaK0oyNlVD?=
 =?utf-8?B?SjNjeHlaTFpBRDRsTzcxRnJDdHV1eElkWVFyS2EyaXJlb3JEZW5mSGIyVDJh?=
 =?utf-8?B?c0lIajlRSmc3cWNydkdwSEx5VnlhRXczeXNrQUE1ZWlXckVzTENxVmJLQnEr?=
 =?utf-8?B?S0NWVDVhcnhqcUZaT04ramFuT3pXbEdjY3JXNi9tY0pTUlU3NFJOdWxtWWlV?=
 =?utf-8?B?alRPaUpya25pcHhYOElHSEpvQnF2MlZBTHZtOE1hS0lWMGcvdDNXVytTT3VH?=
 =?utf-8?B?TS8xdG85Ly9aWHRybkRVTkpSLzZMcHdDaFNQZk1wTWRwUWJvRHA1NlBobU5Z?=
 =?utf-8?B?ZjVua2t2aDh2NE5LNk5CSUw2QzZQUW12K2tqanFJbWNlamR6SXg2ZnAzRVl2?=
 =?utf-8?B?SkhhbVdWQ2hYREdaaU5wTll5VUdHSzBTam45UDJ5bEI5KzZoN080VGM3SUNW?=
 =?utf-8?B?MlMzcjN2dGtEVS90M2dPa1cvNkRWa2RVSmJZUllLT2xUb2JWVHZNMzlYYkpR?=
 =?utf-8?B?NVlNY1pVcXRpU0xWVUN1Z2dLY0l0Z2VhUkR4Z3ZwNWFSbUNDMVNoRW90R21i?=
 =?utf-8?B?ajc2V0dRSDY2ZXFtZXl3cUg2UUFzYnBQemdxUDYwYmcrNjVBNDYvcVY0VmY3?=
 =?utf-8?B?bklBS3pJYWpmSUQvMGtvL1RpNlZtZi9NcnRmdUFFaEkyTEJrdWdxbzUxdzB5?=
 =?utf-8?B?T21rSEVBLzJhdTVQVGYxTjBSVEdyV1BsMTRrdnl1SUFsbUJQR0N5cEVlWjlZ?=
 =?utf-8?B?NzJxeG5QSTdPcnFibGtyeU91aEZEcGFwVTdUZ0Fndk5QaGJTTXRXU0hUQ1JL?=
 =?utf-8?B?aUdEcjUvYjJEME1hdVUrcFdwVUVma2xsaFE3NjdCZEx3aW01UEM5c0I1MkNv?=
 =?utf-8?B?Wmw4QVJkbC9SdnBzYm9hSjFkMExrSE1PZTJrbEdoVlNuY1JzMFZMS2tzTEZh?=
 =?utf-8?B?ZnVBV1kxNzF0YVlVdGQyVHlXdmJ5N2VVdDhLRUJUaGxobmxSVU1OQmVnTkZE?=
 =?utf-8?B?UW9mM0tuaWRlU29ESkdVVysyYnRtOEp2RE94Zkl3dDFIL3ZNbFdwRFlkcmJ1?=
 =?utf-8?B?UTZEeU9ETXJHNEdlZHJGN2RaL2NBQ0c0Tys1aGMvWkk5QWdHbUx0dUwySXBv?=
 =?utf-8?B?ay95WG5hT2JCMSswdlF4N05ZSFpTTG5kMGtJa2kxbnYwV2ZTdXZMS0RHamxl?=
 =?utf-8?Q?4J0yN7oIGc09GIsMWpPYRNAE4cUp8NlV?=
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)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2024 10:15:12.7627
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d0c5838c-245f-413c-4568-08dca4b703bc
X-MS-Exchange-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:
	BN3PEPF0000B069.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4332

Hi Oleksii,

In general, the patch looks ok (apart from Jan comments). Just a couple of remarks.

On 12/07/2024 18:22, Oleksii Kurochko wrote:
> 
> 
> From: Shawn Anastasio <sanastasio@raptorengineering.com>
> 
> Arm's setup.c contains a collection of functions for parsing memory map
> and other boot information from a device tree. Since these routines are
> generally useful on any architecture that supports device tree booting,
> move them into xen/common/device-tree.
> 
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V6:
>  - update the version of the patch to v6, to show that it is based
>    on the work done by Shawn in the patch v4.
> ---
> Changes in V5:
>  - add xen/include/xen/bootfdt.h to MAINTAINERS file.
>  - drop message "Early device tree parsing and".
>  - After rebase on top of the current staging the following changes were done:
>    - init bootinfo variable in <common/device-tree/bootinfo.c> with BOOTINFO_INIT;
>    - update the code of dt_unreserved_regions():
>        CONFIG_STATIC_SHM related changes and getting of reserved_mem
>        bootinfo_get_shmem() ??
>    - update the code of meminfo_overlap_check():
>        add check ( INVALID_PADDR == bank_start ) to if case.
>    - update the code of check_reserved_regions_overlap():
>        CONFIG_STATIC_SHM related changes.
>    - struct bootinfo was updated ( CONFIG_STATIC_SHM changes )
>    - add shared_meminfo ( because of CONFIG_STATIC_SHM )
>    - struct struct membanks was update with __struct group so <xen/kernel> is
>      neeeded to be included in bootfdt.h
>    - move BOOTINFO_ACPI_INIT, BOOTINFO_SHMEM_INIT, BOOTINFO_INIT to generic bootfdt.h
>    - bootinfo_get_reserved_mem(), bootinfo_get_mem(), bootinfo_get_acpi(),
>      bootinfo_get_shmem() and bootinfo_get_shmem_extra() were moved to xen/bootfdt.h
>  - s/arm32/CONFIG_SEPARATE_XENHEAP/
>  - add inclusion of <xen/macros.h> because there are function in <xen/bootfdt.h> which
>    are using container_of().
>  ---
> Changes in v4:
>   - create new xen/include/bootinfo.h rather than relying on arch's
>     asm/setup.h to provide required definitions for bootinfo.c
>   - build bootinfo.c as .init.o
>   - clean up and sort bootinfo.c's #includes
>   - use CONFIG_SEPARATE_XENHEAP rather than CONFIG_ARM_32 to guard
>     xenheap-specific behavior of populate_boot_allocator
>   - (MAINTAINERS) include all of common/device-tree rather than just
>     bootinfo.c
> ---
>  MAINTAINERS                       |   2 +
>  xen/arch/arm/include/asm/setup.h  | 187 +-----------
>  xen/arch/arm/setup.c              | 432 ----------------------------
>  xen/common/Makefile               |   1 +
>  xen/common/device-tree/Makefile   |   1 +
>  xen/common/device-tree/bootinfo.c | 459 ++++++++++++++++++++++++++++++
>  xen/include/xen/bootfdt.h         | 196 +++++++++++++
>  7 files changed, 660 insertions(+), 618 deletions(-)
>  create mode 100644 xen/common/device-tree/Makefile
>  create mode 100644 xen/common/device-tree/bootinfo.c
>  create mode 100644 xen/include/xen/bootfdt.h
> 

[...]

> diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
> new file mode 100644
> index 0000000000..7cd45b3d4b
> --- /dev/null
> +++ b/xen/include/xen/bootfdt.h
> @@ -0,0 +1,196 @@
> +#ifndef __XEN_BOOTFDT_H__
AFAIR, to avoid violating MISRA rule 21.1, we should avoid introducing new macros with double underscore.

> +#define __XEN_BOOTFDT_H__
> +
> +#include <xen/types.h>
> +#include <xen/kernel.h>
> +#include <xen/macros.h>
> +
> +#define MIN_FDT_ALIGN 8
> +#define MAX_FDT_SIZE SZ_2M
2M blob limit is Arm64 specific. What will be the limit on RISCV? Shouldn't it be moved to some arch specific file?

~Michal


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 10:22:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 10:22:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758824.1168324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTIqc-0008A5-C4; Mon, 15 Jul 2024 10:22:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758824.1168324; Mon, 15 Jul 2024 10:22: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 1sTIqc-00089y-8t; Mon, 15 Jul 2024 10:22:22 +0000
Received: by outflank-mailman (input) for mailman id 758824;
 Mon, 15 Jul 2024 10:22: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=v06p=OP=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sTIqa-00089s-LM
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 10:22:20 +0000
Received: from fout7-smtp.messagingengine.com (fout7-smtp.messagingengine.com
 [103.168.172.150]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c25659b-4294-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 12:22:17 +0200 (CEST)
Received: from compute7.internal (compute7.nyi.internal [10.202.2.48])
 by mailfout.nyi.internal (Postfix) with ESMTP id F2EA91388CB6;
 Mon, 15 Jul 2024 06:22:15 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute7.internal (MEProxy); Mon, 15 Jul 2024 06:22:15 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 15 Jul 2024 06:22: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: 1c25659b-4294-11ef-8776-851b0ebba9a2
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=1721038935;
	 x=1721125335; bh=xP+Gc5scGnxGLV7BcYf/W9Z23XDXZxP72kv6VMBirrI=; b=
	Sopv1rZSEB6uzWnqbX0RvKcPjUH83NeZ5cMOlezge8U7h7VIa5EVC+ziyJPjRVY3
	S0BxFm4gruQbebgNx4+MF8f/7Ps3jaB3cRpXAHHPF/ieBdsMuDUruZkYI+Xfu1wl
	9roMTsRYAo3DrkS059gDhe2HtzCf8nRhsRVUhXzKqIWCTlLAfCjpDZ0RBOxiIWxs
	Q7J++dhUkfbRMJRI4OC2VvrxXO8kYStJgH86kx4x82S9/4DpgdZTuZDy1Gcva71V
	l/E+gFhWir143FGmoMwcThiThYI36JevX0MotJ/CsPMewha5TRaoXO0Lly/TA/tc
	+BVETCmmPAW8SkIlj2irlw==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm2; t=1721038935; x=1721125335; bh=xP+Gc5scGnxGLV7BcYf/W9Z23XDX
	ZxP72kv6VMBirrI=; b=FtrdJJmt0cOVsgrMdovDKhYqGsOd/p4fkT37LTQX30Kf
	cQ9bEgJnurbcMxn/+1q4edVTHSpMumXXvswgl+Ha/YBD/tacYsFfhjrJ0qz+z5Mp
	IX+crrYQ3DHjbOUvu/ZbRHP6VRc0Tonu422ha9FqPf+xZq3KRxFh2zSkBKkDcn7W
	xsgSCzTtYfykD3yHGHUkqLZpDkx5EJImH3WJk3ePGCkgHqorpAeUDE1RML8Mlc/B
	TrLS0rFdLNNKG/9uWa6y06lyJ0pgF9jd/8o6tUYd0AjZW/Y7wyrCvuZ5kAJ2jEnU
	ishFZ3aS+RCxA+wBsfz8LDQ1Bj5xnOvzMgOXnTJNEg==
X-ME-Sender: <xms:VviUZl7TkEbChf9nTBlBLYHk_w5VuXVIL5LiVUqxLBx1V1pmNT6flg>
    <xme:VviUZi6PLtCpkz1MwVnFWDDv2TUqmLmImZIEt6QI8PYUnpi8L3y50YjV2bEdsMPLn
    mZN25ELRYgqfQ>
X-ME-Received: <xmr:VviUZseiPlJb3K95JMi6ovfBYaDgHIx4skZ1Hk1lJWundvhEzS43hXm6rH-cBlE268mJ2hcreNj3vG8i9leDoHhLWj-_pqoNWA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrgedvgddvjecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudel
    teefvefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:VviUZuKEQTGF76zp9DDXrDKG36lTtqpo5R0yyFOwHdnkiFigEKy9LQ>
    <xmx:VviUZpJk5I5drb3drvUNpVibHhRsknHwn6nkgEUYeQxpcdLrZ_z3_g>
    <xmx:VviUZnyaGN0n879uZFpIA8kl7fFRw-d9x7pKprxarI9_fmpaIXwT4w>
    <xmx:VviUZlLAMqNL8quUI2UFJAEzpv0TsNbn_JbJwnKoqMt1gyYGY6eGoQ>
    <xmx:V_iUZmFHyZ0OdVTarLFd9nZGF_6mFQV6W9p15XjI8L94Tt1_7GcFvAS1>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 15 Jul 2024 12:22:08 +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>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: systemd units are not installed in 4.19.0-rc2 anymore
Message-ID: <ZpT4U2KnTO5xOvPF@mail-itl>
References: <ZpHqR4e3VaFAXC3m@mail-itl>
 <94d0ef92-9fb8-4097-a633-59f1190434c4@citrix.com>
 <1057f937-da16-415f-a760-ac4f00bc29f3@suse.com>
 <4cf46d24-2e21-4909-b1f4-fd6757801101@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="j8kAmtpp9gH8U4Ek"
Content-Disposition: inline
In-Reply-To: <4cf46d24-2e21-4909-b1f4-fd6757801101@citrix.com>


--j8kAmtpp9gH8U4Ek
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 15 Jul 2024 12:22:08 +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>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: systemd units are not installed in 4.19.0-rc2 anymore

On Mon, Jul 15, 2024 at 11:07:42AM +0100, Andrew Cooper wrote:
> On 15/07/2024 9:11 am, Jan Beulich wrote:
> > On 13.07.2024 15:02, Andrew Cooper wrote:
> >> On 13/07/2024 3:45 am, Marek Marczykowski-G=C3=B3recki wrote:
> >>> Hi,
> >>>
> >>> Something has changed between -rc1 and -rc2 that systemd units are not
> >>> installed anymore by default.
> >>>
> >>> Reproducer:=20
> >>>
> >>>     ./configure --prefix=3D/usr
> >>>     make dist-tools
> >>>     ls dist/install/usr/lib/systemd/system
> >>>
> >>> It does work, if I pass --enable-systemd to ./configure.
> >>>
> >>> My guess is the actual change is earlier, specifically 6ef4fa1e7fe7
> >>> "tools: (Actually) drop libsystemd as a dependency", but configure was
> >>> regenerated only later. But TBH, I don't fully understand interaction
> >>> between those m4 macros...
> >> Between -rc1 and -rc2 was 7cc95f41669d
> >>
> >> That regenerated the existing configure scripts with Autoconf 2.71, vs
> >> 2.69 previously.
> >>
> >> Glancing through again, I can't spot anything that looks relevant.
> >>
> >>
> >> 6ef4fa1e7fe7 for systemd itself was regenerated, and I had to go out of
> >> my way to get autoconf 2.69 to do it.
> > Yet was it correct for that commit to wholesale drop
> > AX_CHECK_SYSTEMD_ENABLE_AVAILABLE? That's, afaics, the only place where
> > $systemd would have been set to y in the absence of --enable-systemd.
>=20
> Hmm.
>=20
> Yes it was right to drop that, because the whole purpose of the change
> was to break the dependency with systemd.
>=20
> Thereafter, looking for systemd in the build environment is a bogus
> heuristic, and certainly one which would go wrong in XenServer's build
> system where the Mock chroot strictly has only the declared dependencies.
>=20
> I see two options.
>=20
> 1) Activate Systemd by default on Linux now (as it's basically free), or
> 2) Update CHANGELOG to note this behaviour
>=20
> Personally I think 2 is the better option, because we don't special case
> the other init systems.

But we do install classic init scripts by default, no? Why not systemd
units then (which are harmless on non-systemd system)?

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmaU+FMACgkQ24/THMrX
1yyYQAf/R9P8dYabSR/o4Nb41MNqq3k7/taTqZmXMCDR62vKaaAZzdeVygcWxASm
OAGDF1oS2DrzYWEX2lrYjGFbJbt/tEFm4rK0D52qDuMHMBrGal1ooKgH2Gfj/TAA
Rn6NifW92mnZGNSR0MDLmyUw7QHobP+AHf7BgROp3I/fsXye8WcO7TvtlRowh1Of
FMQ0pybHmYhQyI0o+Fyb/xcBnIGoO8ekI8ocD7zdMUdCjBH+pe+Pk3nw41WkZvdr
Ohgt7WaDU3XDVeDbasQ7boQSkoMpnO7V2zxs5Hjr43H3Cq3iak1MFQJyuHWkUOZ7
vdLZhf7uOm08ltDJ4WyGO73+2M/FIA==
=Up1X
-----END PGP SIGNATURE-----

--j8kAmtpp9gH8U4Ek--


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 10:30:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 10:30:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758830.1168334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTIyh-0001py-7r; Mon, 15 Jul 2024 10:30:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758830.1168334; Mon, 15 Jul 2024 10:30:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTIyh-0001pr-58; Mon, 15 Jul 2024 10:30:43 +0000
Received: by outflank-mailman (input) for mailman id 758830;
 Mon, 15 Jul 2024 10:30: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTIyf-0001pl-Bv
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 10:30:41 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 46041bd2-4295-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 12:30:36 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2eede876fccso25724781fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 03:30: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-1fc0bbc25d2sm37390605ad.100.2024.07.15.03.30.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 03:30: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: 46041bd2-4295-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721039436; x=1721644236; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a1lLxM4gObl2rZEL2/OTCt6L7uaYL/11F4cXInCDtes=;
        b=Z1P6Ro22yJ0J9azh/rlzKQlZ7yKzsquJi2w+HDo7FpyvH7ffbrrdcpSV+x4EtUNd5j
         Cx+t7BIEM3XM12T+bDUkePJst5lsP6xbBSn1LILUJvM2eOgTs099Z1u6JFRW9GHK0sUC
         Z/SaIXAXK9vCOAVb2fGIUUtZL46YmOaUTyxY8h9C/niVoyvT4heZPwz1mHPIcnPnyk9+
         7kNhZfXVIMWuQaW5/CIfV1F6pexz+CcEgqKZe5o1O5R30gGeQzckCW9NhMUBjnz+qfhp
         u9wx2RkfwcBm2pzK50BJ2UwaVcCAAn4JwIaaOEQmlLkXqW9SSAL1DtFoYFkj7W2oDeEP
         U9Zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721039436; x=1721644236;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a1lLxM4gObl2rZEL2/OTCt6L7uaYL/11F4cXInCDtes=;
        b=FrdR7dwK4WObHB2HyT+8lGw/nLmKD3Hk5SZGTPsTkXCceFi15R5gCLUPU+6VwyhZfW
         xcI8KuwtQYT1cUv7aGqtbaqNC8Q6pogVICX5mV5kDv1fLE2Ncw554Boyp/jyeDFdM0n5
         fw1hq2I0nfS2zdq2FmIiGg3J6pRxrY0C4ACW/VkAmuEXxKSu3y98kHbCRETpPuJLfgfx
         JE4wkYU7EPVaHUtSq9wCHA+oUHnvFiyvGafhb8eYJk6gCPDEAZyXiHwpdfNN9N+YMHo9
         Id83Jpv2TacIQSresdHmHoVBp2vMOJgSizSxfEFqBqHhhxZR7Og18lgZd1Af069WJlWc
         THRg==
X-Forwarded-Encrypted: i=1; AJvYcCURqb7D+Lrzn0/FGaYhH+UiFbB+r3LVdZY3cVDy3sApRhhsT/T0OazYp39X68D7/JuJfhwiyrjlFlW0VbYIgPdo75dBJiEDTYWTbGI3rys=
X-Gm-Message-State: AOJu0Yxn+MbuiWQE7DopAkV/JyBOtsmVOZBpaah+TkVWT8Rx6yLk3Fjc
	AkBTKf5pcS1lQOioQRTVOn3aU0NTLOWilFA9UXEX+ZT2ysw/RrM4gECsWSrrog==
X-Google-Smtp-Source: AGHT+IG71fPUprzQEtvckEUmpdO5ttI/WTg9mgP7wgKFrL/W8IEGC3XtuknlPC+NLMV69QrklmuQhA==
X-Received: by 2002:a2e:8e8d:0:b0:2eb:dd0b:b9ec with SMTP id 38308e7fff4ca-2eeb30e3b1fmr116433711fa.20.1721039434909;
        Mon, 15 Jul 2024 03:30:34 -0700 (PDT)
Message-ID: <f777a9fd-0239-49e5-902c-63745d2a6e5a@suse.com>
Date: Mon, 15 Jul 2024 12:30:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: systemd units are not installed in 4.19.0-rc2 anymore
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel
 <xen-devel@lists.xenproject.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <ZpHqR4e3VaFAXC3m@mail-itl>
 <94d0ef92-9fb8-4097-a633-59f1190434c4@citrix.com>
 <1057f937-da16-415f-a760-ac4f00bc29f3@suse.com>
 <4cf46d24-2e21-4909-b1f4-fd6757801101@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: <4cf46d24-2e21-4909-b1f4-fd6757801101@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.07.2024 12:07, Andrew Cooper wrote:
> On 15/07/2024 9:11 am, Jan Beulich wrote:
>> On 13.07.2024 15:02, Andrew Cooper wrote:
>>> On 13/07/2024 3:45 am, Marek Marczykowski-Górecki wrote:
>>>> Hi,
>>>>
>>>> Something has changed between -rc1 and -rc2 that systemd units are not
>>>> installed anymore by default.
>>>>
>>>> Reproducer: 
>>>>
>>>>     ./configure --prefix=/usr
>>>>     make dist-tools
>>>>     ls dist/install/usr/lib/systemd/system
>>>>
>>>> It does work, if I pass --enable-systemd to ./configure.
>>>>
>>>> My guess is the actual change is earlier, specifically 6ef4fa1e7fe7
>>>> "tools: (Actually) drop libsystemd as a dependency", but configure was
>>>> regenerated only later. But TBH, I don't fully understand interaction
>>>> between those m4 macros...
>>> Between -rc1 and -rc2 was 7cc95f41669d
>>>
>>> That regenerated the existing configure scripts with Autoconf 2.71, vs
>>> 2.69 previously.
>>>
>>> Glancing through again, I can't spot anything that looks relevant.
>>>
>>>
>>> 6ef4fa1e7fe7 for systemd itself was regenerated, and I had to go out of
>>> my way to get autoconf 2.69 to do it.
>> Yet was it correct for that commit to wholesale drop
>> AX_CHECK_SYSTEMD_ENABLE_AVAILABLE? That's, afaics, the only place where
>> $systemd would have been set to y in the absence of --enable-systemd.
> 
> Hmm.
> 
> Yes it was right to drop that, because the whole purpose of the change
> was to break the dependency with systemd.
> 
> Thereafter, looking for systemd in the build environment is a bogus
> heuristic, and certainly one which would go wrong in XenServer's build
> system where the Mock chroot strictly has only the declared dependencies.

I can see the point here. Still I wonder whether for non-cross builds it
wouldn't make sense for a build env to reflect what the produced code is
intended to run in. Which would mean to make available enough of systemd
to be able to recognize its presence from a configure script.

> I see two options.
> 
> 1) Activate Systemd by default on Linux now (as it's basically free), or
> 2) Update CHANGELOG to note this behaviour
> 
> Personally I think 2 is the better option, because we don't special case
> the other init systems.

Would 1) have any downsides to Linux systems not coming with systemd? If
not, like Marek says, wouldn't it make sense to put in place respective
stuff unconditionally (by default), even if it may end up unused?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 11:44:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 11:44:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758840.1168347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTK8F-0002eR-U1; Mon, 15 Jul 2024 11:44:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758840.1168347; Mon, 15 Jul 2024 11: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 1sTK8F-0002eK-Q8; Mon, 15 Jul 2024 11:44:39 +0000
Received: by outflank-mailman (input) for mailman id 758840;
 Mon, 15 Jul 2024 11:44:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTK8E-0002eA-KN; Mon, 15 Jul 2024 11:44:38 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTK8E-00041R-Cr; Mon, 15 Jul 2024 11:44:38 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTK8E-0007Nv-0R; Mon, 15 Jul 2024 11:44:38 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTK8D-00072U-WC; Mon, 15 Jul 2024 11: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=O9Mh9bzSn8wtGVA5NCBLFKesr30cd9sSRjQCWjIwjtA=; b=VGMKbSZXA94RjKkDYCW2iMJsgz
	M4igAOLWJ6ib80WGkxtmsEC+k75WKLW/UFBqzhyUCXNSoQYp8doLBJvR7aQb8RQ73S873rJiO5v7A
	lEAs3NPfUdEAJNFLclWMaf5gtqgmNAiG3bEdgu05Em6+JK9gWb9S+57N43sFe1GVDGIA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186805-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186805: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=8bb9145ad1a5db068f63e3e19b4a532226351b2b
X-Osstest-Versions-That:
    ovmf=91226e1eecacac832e5091d6a1867dc52666ee85
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Jul 2024 11:44:37 +0000

flight 186805 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186805/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 8bb9145ad1a5db068f63e3e19b4a532226351b2b
baseline version:
 ovmf                 91226e1eecacac832e5091d6a1867dc52666ee85

Last test of basis   186801  2024-07-15 04:13:14 Z    0 days
Testing same since   186805  2024-07-15 08:41:18 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Chao Li <lichao@loongson.cn>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   91226e1eec..8bb9145ad1  8bb9145ad1a5db068f63e3e19b4a532226351b2b -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 12:05:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 12:05:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758850.1168356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTKSL-0005RJ-It; Mon, 15 Jul 2024 12:05:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758850.1168356; Mon, 15 Jul 2024 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 1sTKSL-0005RC-GG; Mon, 15 Jul 2024 12:05:25 +0000
Received: by outflank-mailman (input) for mailman id 758850;
 Mon, 15 Jul 2024 12: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=mLU5=OP=bounce.vates.tech=bounce-md_30504962.66951080.v1-67c0acd6f55f497e9f66d70de49b948f@srs-se1.protection.inumbo.net>)
 id 1sTKSK-0005R6-6Q
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 12:05:24 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8278f52f-42a2-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 14:05:22 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WN19X4gV9z6CQ6YM
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 12:05:20 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 67c0acd6f55f497e9f66d70de49b948f; Mon, 15 Jul 2024 12:05: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: 8278f52f-42a2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721045120; x=1721305620;
	bh=oikz1MSsaIHL0JMJlqbQdeTcbQZvhY9gO29ww/aRO6k=;
	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=XvvxP3K4iQ3cKHi46gPQUXZ4/eZB2ZtzoXELmrBDZC0+MA4dWzVHPbIRGYGoc3oDu
	 c08t9uXj6+mOmUQL+G/OXjWOjy/4ghemBd0TnoFF2KY49BNHXTOegozLJvOJCWUtgI
	 CXEYxOiRjuZI7VEBiL+sw3PzKYH2Q1Ek+7CLVORkxK2pR9EyKP5Za+retFCLpTr9mC
	 jRDEMx/A5Uo13vKWsWK/EWbvoA+pjv6pPKNd0HjBlr3mHgYlQDbgbrSjoEpFXE4rcT
	 sMQVOgx4ezTXOe1I9II1irgDJedgKAxXOq7VTQneurGBtgbtogDojkrC1+XP85fDaD
	 Epqw0HYzDASKA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721045120; x=1721305620; i=anthony.perard@vates.tech;
	bh=oikz1MSsaIHL0JMJlqbQdeTcbQZvhY9gO29ww/aRO6k=;
	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=QbARuLrrbZzbWm3rbPnv9vqmfLnjtz29dhtz7t6aBymnDcmQHftGko61by9Nm9HG+
	 DNL6fH2Ohs51dI9e1vpek7TBTzoycBDfG4K8NWUMZ5HQS6KAVzlcbrb5kc870M5dvK
	 +SrAbDSPzKSxsuB9CBnQ7b79Q1EwPKLtFumgExDeUtd+NjjNcodyGW+cFjJ+W/sSU/
	 uFlgxvN5xaHWR+fm3DyDboZgNCVoW1DG3Vd/W0zbXdd8H4Ar+46FQbnXmbMcPiWBky
	 XK6KByffRBidR4h3qII3bFamrlYBR8qLk+g3vV5NLzhO72Ir60kIyWZk3LSPZEF4n/
	 xmmxtW2LADwQg==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2019/12]=20docs:=20Fix=20install-man$(1)-pages=20if=20no=20manpages=20are=20generated?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721045119457
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Message-Id: <ZpUQf5PXqbvQY/1y@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240713180939.3363273-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240713180939.3363273-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.67c0acd6f55f497e9f66d70de49b948f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240715:md
Date: Mon, 15 Jul 2024 12:05:20 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Sat, Jul 13, 2024 at 07:09:39PM +0100, Andrew Cooper wrote:
> All tools to build manpages are optional, and if none of them happen to be
> present, the intermediate working directory may not even be created.
> 
> Treat this as non-fatal, bringing the behaviour in line with install-html.
> Like the html side, it needs to be not-or to avoid Make thinking the rule has
> failed.
> 
> 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 Mon Jul 15 12:33:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 12:33:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758855.1168366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTKti-0000qy-Oo; Mon, 15 Jul 2024 12:33:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758855.1168366; Mon, 15 Jul 2024 12: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 1sTKti-0000qr-Lq; Mon, 15 Jul 2024 12:33:42 +0000
Received: by outflank-mailman (input) for mailman id 758855;
 Mon, 15 Jul 2024 12: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=o7y3=OP=bounce.vates.tech=bounce-md_30504962.66951720.v1-03bb9302b18643a991dcd9bbd106dc90@srs-se1.protection.inumbo.net>)
 id 1sTKth-0000ql-7S
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 12:33:41 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75986521-42a6-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 14:33:38 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WN1p84dgyzB5p4tc
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 12:33:36 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 03bb9302b18643a991dcd9bbd106dc90; Mon, 15 Jul 2024 12: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: 75986521-42a6-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721046816; x=1721307316;
	bh=HSU+eNrOExZikRzL/L6GIb3JxAZDyHnl4sp5SDE2r4I=;
	h=From:Subject:Message-Id:To:Cc:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Mw62wdGxV7B9xlJd9Zjizt/DBRKPsomtDfzFCi5ayiglWgvgxRp0sj0UdBMBvRF7Y
	 7RBX8pSjHyK1zBvEJFkWLy14TlE4roURZabiTuLIuXyHm83qOn2XUa/G26Y8oFrC+0
	 aakoRKk/yyDsMc70XJxdoJAcG4RwrI0Qz3qlSS7sEwrOu8NVslo6Jyvd3AeAZCRH6s
	 8aJem+GEObydAKi95LQEzfPAjDq94IsxpWk8idE5bbe5IfMN5CbWjNHSPd+Ykks/oF
	 ruVqJNNUDBLh6V7BakTzHyHKJKInJ2oU0F7dzLFmI05ovrT7bK6zFpBG6oqXusluce
	 sUdFgNED0cKtA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721046816; x=1721307316; i=teddy.astie@vates.tech;
	bh=HSU+eNrOExZikRzL/L6GIb3JxAZDyHnl4sp5SDE2r4I=;
	h=From:Subject:Message-Id:To:Cc:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=VAr4e+GHzpd3NS9yxJJh9wMRwG3rUr5LFQ/I0R8ZE/hSlVseWUuQpX24MHp/FnwVU
	 ev4ScqcPE3MWVwrC+3vCdE60KGERgzW0bRSDvleq2XyofsPsJOW0Ot2kJphi1dJ9Q6
	 I4woMiLlVkYGOMbOdw1z8W7iYyemnVrMT7HEu3kUMdDlQdSHvVH2rcg2UiBKw32w9Y
	 zRGvHeyk9xh+q6XzYBukeZ/7aDMx18irZxpMSCbXmwAff4XyJ1rsKF+QLZ4hp3Mwow
	 6WS1+tUxbYRwrJTFPo3Oq9q8e9DsbMw+MD28HXyVxlYCjcmsCYQ1DmaKfBnMGki1+l
	 7dwhhgXF9r9tw==
From: Teddy Astie <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20XEN]=20xen/public:=20PV-IOMMU=20interface=20header=20proposal?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721046815495
Message-Id: <fdfa32c9-c177-4d05-891a-138f9b663f19@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <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.03bb9302b18643a991dcd9bbd106dc90?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240715:md
Date: Mon, 15 Jul 2024 12:33:36 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hello,

After some discussions with Alejandro and Jan on the PV-IOMMU design 
patch [1], I've redesigned parts of the interface with some proposals 
and to be more similar to other hypercalls.

In addition to that, I've took a step further and added tentative design 
for some new features (including optional ones) that could be worth to 
consider as well.

[1] : 
https://lists.xenproject.org/archives/html/xen-devel/2024-07/msg00641.html

A summary of the changes :
- I replaced the tagged union style with a parameter in the hypercall 
with various structures in a similar fashion than other Xen hypercalls.
- There is no more page limit on map/unmap operation (it can be 
implemented with continuations hypervisor-side).
- Map/Unmap now take a "pgsize" parameter (that needs to be supported)
- There is now a capability "bitmap" (cap_flags) that inform the guest 
of what features are supported.
- Added cache, nested and pasid optional features.
- Add a flag indicating if the "default context" is a identity one, the 
idea is to allow to create domain where device doesn't have access to 
guest memory by default (e.g to implement pre-boot DMA protection). If 
supported and needed, the guest can create a "identity mapped" context.
- Add a way to do operations on other domains [2]

[2] : The idea is to use this feature for VT-d/AMD-Vi emulation with 
physical/passed-through devices, such as QEMU can reflect on IOMMU 
subsystem operations made on emulated-IOMMU. It can also be combined 
with nested to allow hardware assisted IOMMU emulation.

## Pasid feature

The idea behind the PASID implementation is (if supported by IOMMU) to 
allow a single device (identified with BDF) to access multiples address 
spaces using PASID tagged DMA (VT-d specs describe it as 
"Requests-with-PASID"). To do that, we can introduce the concept of 
"device-with-pasid" which is a IOMMU subsystem device unit that we can 
summon and at some point, move to another domain (similarly to PCI 
passthrough but without BAR).
This is a part of introducing support for Scalable IOV and could be 
useful for virtio-gpu as well. That can also be used for adding support 
for Linux SVA.

---

/* SPDX-License-Identifier: MIT */
/**
  * pv-iommu.h
  *
  * Paravirtualized IOMMU driver interface.
  *
  * Copyright (c) 2024 Teddy Astie <teddy.astie@vates.tech>
  */

#ifndef __XEN_PUBLIC_PV_IOMMU_H__
#define __XEN_PUBLIC_PV_IOMMU_H__

#include "stdint.h"
#include "xen.h"
#include "physdev.h"

#define IOMMU_DEFAULT_CONTEXT (0)

enum {
     /* Basic cmd */
     IOMMU_noop = 0,
     IOMMU_query_capabilities,
     IOMMU_alloc_context,
     IOMMU_free_context,
     IOMMU_reattach_device,
     IOMMU_map_pages,
     IOMMU_unmap_pages,
     IOMMU_lookup_page,
     IOMMU_remote_cmd,

     /* Extended cmd */
     IOMMU_alloc_nested,     /* if IOMMUCAP_nested */
     IOMMU_flush_nested,     /* if IOMMUCAP_nested */
     IOMMU_attach_pasid,     /* if IOMMUCAP_pasid */
     IOMMU_detach_pasid,     /* if IOMMUCAP_pasid */
};

/**
  * Indicate if the default context is a identity mapping to domain memory.
  * If not defined, default context blocks all DMA to domain memory.
  */
#define IOMMUCAP_default_identity  (1 << 0)

/**
  * IOMMU_MAP_cache support.
  */
#define IOMMUCAP_cache     (1 << 1)

/**
  * Support for IOMMU_alloc_nested.
  */
#define IOMMUCAP_nested    (1 << 2)

/**
  * Support for IOMMU_attach_pasid and IOMMU_detach_pasid and pasid 
parameter in
  * reattach_context.
  */
#define IOMMUCAP_pasid     (1 << 3)

/**
  * Support for IOMMU_ALLOC_identity
  */
#define IOMMUCAP_identity (1 << 4)

/**
  * IOMMU_query_capabilities
  * Query PV-IOMMU capabilities for this domain.
  */
struct pv_iommu_capabilities {
     /*
      * OUT: Maximum device address (iova) that the guest can use for 
mappings.
      */
     uint64_aligned_t max_iova_addr;

     /* OUT: IOMMU capabilities flags */
     uint32_t cap_flags;

     /* OUT: Mask of all supported page sizes. */
     uint32_t pgsize_mask;

     /* OUT: Maximum pasid (if IOMMUCAP_pasid) */
     uint32_t max_pasid;

     /* OUT: Maximum number of IOMMU context this domain can use. */
     uint16_t max_ctx_no;
};
typedef struct pv_iommu_capabilities pv_iommu_capabilities_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_capabilities_t);

/**
  * Create a 1:1 identity mapped context to domain memory
  * (needs IOMMUCAP_identity).
  */
#define IOMMU_ALLOC_identity (1 << 0)

/**
  * IOMMU_alloc_context
  * Allocate an IOMMU context.
  * Fails with -ENOSPC if no context number is available.
  */
struct pv_iommu_alloc {
     /* OUT: allocated IOMMU context number */
     uint16_t ctx_no;

     /* IN: allocation flags */
     uint32_t alloc_flags;
};
typedef struct pv_iommu_alloc pv_iommu_alloc_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_alloc_t);

/**
  * Move all devices to default context before freeing the context.
  */
#define IOMMU_FREE_reattach_default (1 << 0)

/**
  * IOMMU_free_context
  * Destroy a IOMMU context.
  *
  * If IOMMU_FREE_reattach_default is specified, move all context devices to
  * default context before destroying this context.
  *
  * If there are devices in the context and IOMMU_FREE_reattach_default 
is not
  * specified, fail with -EBUSY.
  *
  * The default context can't be destroyed.
  */
struct pv_iommu_free {
     /* IN: IOMMU context number to free */
     uint16_t ctx_no;

     /* IN: Free operation specific flags */
     uint32_t free_flags;
};
typedef struct pv_iommu_free pv_iommu_free_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_free_t);

/* Device has read access */
#define IOMMU_MAP_readable (1 << 0)

/* Device has write access */
#define IOMMU_MAP_writeable (1 << 1)

/* Enforce DMA coherency */
#define IOMMU_MAP_cache (1 << 2)

/**
  * IOMMU_map_pages
  * Map pages on a IOMMU context.
  *
  * pgsize must be supported by pgsize_mask.
  * Fails with -EINVAL if mapping on top of another mapping.
  * Report actually mapped page count in mapped field (regardless of 
failure).
  */
struct pv_iommu_map_pages {
     /* IN: IOMMU context number */
     uint16_t ctx_no;

     /* IN: Guest frame number */
     uint64_aligned_t gfn;

     /* IN: Device frame number */
     uint64_aligned_t dfn;

     /* IN: Map flags */
     uint32_t map_flags;

     /* IN: Size of pages to map */
     uint32_t pgsize;

     /* IN: Number of pages to map */
     uint32_t nr_pages;

     /* OUT: Number of pages actually mapped */
     uint32_t mapped;
};
typedef struct pv_iommu_map_pages pv_iommu_map_pages_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_map_pages_t);

/**
  * IOMMU_unmap_pages
  * Unmap pages on a IOMMU context.
  *
  * pgsize must be supported by pgsize_mask.
  * Report actually unmapped page count in mapped field (regardless of 
failure).
  * Fails with -ENOENT when attempting to unmap a page without any mapping
  */
struct pv_iommu_unmap_pages {
     /* IN: IOMMU context number */
     uint16_t ctx_no;

     /* IN: Device frame number */
     uint64_aligned_t dfn;

     /* IN: Size of pages to unmap */
     uint32_t pgsize;

     /* IN: Number of pages to unmap */
     uint32_t nr_pages;

     /* OUT: Number of pages actually unmapped */
     uint32_t unmapped;
};
typedef struct pv_iommu_unmap_pages pv_iommu_unmap_pages_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_unmap_pages_t);

/**
  * IOMMU_lookup_page
  * Lookup the GFN associated to a DFN.
  * Fails with -ENOENT if no such mapping exists.
  */
struct pv_iommu_lookup_page {
     /* IN: IOMMU context number */
     uint16_t ctx_no;

     /* IN: Device frame number to lookup */
     uint64_aligned_t dfn;
     /* OUT: Corresponding guest frame number */
     uint64_aligned_t gfn;
};
typedef struct pv_iommu_lookup_page pv_iommu_lookup_page_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_lookup_page_t);

/**
  * IOMMU_reattach_device
  * Reattach a device to another IOMMU context.
  * Fails with -ENODEV if no such device exist.
  */
struct pv_iommu_reattach_device {
     /* IN: Target IOMMU context number */
     uint16_t ctx_no;

     /* IN: Physical device to move */
     struct physdev_pci_device dev;

     /* IN: PASID of the device (if IOMMUCAP_pasid) */
     uint32_t pasid;
};
typedef struct pv_iommu_reattach_device pv_iommu_reattach_device_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_reattach_device_t);


/**
  * IOMMU_remote_cmd
  * Do a PV-IOMMU operation on another domain.
  * Current domain needs to be allowed to act on the target domain, 
otherwise
  * fails with -EPERM.
  */
struct pv_iommu_remote_cmd {
     /* IN: Target domain to do the subop on */
     uint16_t domid;

     /* IN: Command to do on target domain. */
     uint16_t cmd;

     /* INOUT: Command argument from current domain memory */
     XEN_GUEST_HANDLE(void) arg;
};
typedef struct pv_iommu_remote_cmd pv_iommu_remote_cmd_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_remote_cmd_t);

/**
  * IOMMU_alloc_nested
  * Create a nested IOMMU context (needs IOMMUCAP_nested).
  *
  * This context uses a platform-specific page table from domain address 
space
  * specified in pgtable_gfn and use it for nested translations.
  *
  * Explicit flushes needs to be submited with IOMMU_flush_nested on
  * modification of the nested pagetable to ensure coherency between 
IOTLB and
  * nested page table.
  *
  * This context can be destroyed using IOMMU_free_context.
  * This context cannot be modified nor queried using map_pages, 
unmap_pages and
  * lookup_page.
  */
struct pv_iommu_alloc_nested {
     /* OUT: allocated IOMMU context number */
     uint16_t ctx_no;

     /* IN: guest frame number of the nested page table */
     uint64_aligned_t pgtable_gfn;

     /* IN: nested mode flags */
     uint64_aligned_t nested_flags;
};
typedef struct pv_iommu_alloc_nested pv_iommu_alloc_nested_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_alloc_nested_t);

/**
  * IOMMU_flush_nested (needs IOMMUCAP_nested)
  * Flush the IOTLB for nested translation.
  */
struct pv_iommu_flush_nested {
     /* TODO */
};
typedef struct pv_iommu_flush_nested pv_iommu_flush_nested_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_flush_nested_t);

/**
  * IOMMU_attach_pasid (needs IOMMUCAP_pasid)
  * Attach a new device-with-pasid to a IOMMU context.
  * If a matching device-with-pasid already exists (globally),
  * fail with -EEXIST.
  * If pasid is 0, fails with -EINVAL.
  * If physical device doesn't exist in domain, fail with -ENOENT.
  */
struct pv_iommu_attach_pasid {
     /* IN: IOMMU context to add the device-with-pasid in */
     uint16_t ctx_no;

     /* IN: Physical device */
     struct physdev_pci_device dev;

     /* IN: pasid of the device to attach */
     uint32_t pasid;
};
typedef struct pv_iommu_attach_pasid pv_iommu_attach_pasid_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_attach_pasid_t);

/**
  * IOMMU_detach_pasid (needs IOMMUCAP_pasid)
  * detach a device-with-pasid.
  * If the device-with-pasid doesn't exist or belong to the domain,
  * fail with -ENOENT.
  * If pasid is 0, fails with -EINVAL.
  */
struct pv_iommu_detach_pasid {
     /* IN: Physical device */
     struct physdev_pci_device dev;

     /* pasid of the device to detach */
     uint32_t pasid;
};
typedef struct pv_iommu_detach_pasid pv_iommu_detach_pasid_t;
DEFINE_XEN_GUEST_HANDLE(pv_iommu_detach_pasid_t);

/* long do_iommu_op(int subop, XEN_GUEST_HANDLE_PARAM(void) arg) */

#endif

---


Thanks

Teddy


Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 12:47:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 12:47:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758861.1168377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTL6R-0002cj-Sy; Mon, 15 Jul 2024 12:46:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758861.1168377; Mon, 15 Jul 2024 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 1sTL6R-0002cc-QD; Mon, 15 Jul 2024 12:46:51 +0000
Received: by outflank-mailman (input) for mailman id 758861;
 Mon, 15 Jul 2024 12:46: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=a8up=OP=bounce.vates.tech=bounce-md_30504962.66951a35.v1-fb0d2780b86d4446a86bb08eb1688d8d@srs-se1.protection.inumbo.net>)
 id 1sTL6Q-0002cU-UN
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 12:46:51 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b6fdd80-42a8-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 14:46:46 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WN25K21NhzB5p7Pm
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 12:46:45 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 fb0d2780b86d4446a86bb08eb1688d8d; Mon, 15 Jul 2024 12:46: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: 4b6fdd80-42a8-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721047605; x=1721308105;
	bh=DAfSImey2SXiDQCWU6+f8AcPbBTf/5flAgZO8ME7Pn4=;
	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=dUU9q6K6CAaoNMII1X7I/aiTsF8eRIqww5MQH6fkeM6u5tgUOPIPxbxXmgLetKxk7
	 o4pWqK1BvhL+rA4HW9P513j8FqfyrMTD2VVrh6PUAybx4/pVMGixhO23JGGq42Mlti
	 PDdxM5YlmHXKNSwr7fRdMp+ty1nSGhg8/6xXJZ7b6T/Z9TJhSfUjeiyVLeJx2UUMyq
	 iq3MV0qdwMTZS11o4YBZsHC8eJ/Y14myjWm3EHB//CoDwYVAKlXZCF6ICqSdbDP44Q
	 neLsDZgro/jpJhHCvP3zMUhpDNo+SRbrq/Ai2Tomk52P8dDA/ZFcOzxO/2O1kGDVtm
	 y9ygqZZdqz5/Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721047605; x=1721308105; i=anthony.perard@vates.tech;
	bh=DAfSImey2SXiDQCWU6+f8AcPbBTf/5flAgZO8ME7Pn4=;
	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=HlvtVWgXC/JXrqzw8SOs4f3n+L/6blZu+l8ux4mSR7R65yHFCjRPH0zhalHSL6WdI
	 PCr5CiyjjsOtk97Ie8iadwM9p4xqkLgp84cZepIxXYaEHOIadkdtvcUtTojwxylL8F
	 4LH46j3KPPE66hYT5LLTkrdDw5KKAn/eioZWKuzp0FAbJwO8ZhWvUrezIIf394pNlr
	 L+l7XAzbPDaAShcRwfNSzjAT6E0qEt2aGh0yPc/+kWf2MMo1KGyLPpzV6aW3qiX1Xv
	 3ghhjb2OoaugaBl1QTnPEejPR9NYlmHSKJnslCKNywVdSi537hdTrJuvyPLInaq7e3
	 Tc2gzvEc8nxuw==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2020/12]=20CI:=20Swap=20from=20perl=20to=20perl-base=20in=20build=20containers?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721047603753
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Message-Id: <ZpUaMwZoKnrh61P0@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240713180952.3363596-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240713180952.3363596-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.fb0d2780b86d4446a86bb08eb1688d8d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240715:md
Date: Mon, 15 Jul 2024 12:46:45 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Sat, Jul 13, 2024 at 07:09:52PM +0100, Andrew Cooper wrote:
> We only need a basic perl environment, not the things that a primarily-perl
> project would want.
> 
> Discovered during the Fedora refresh where the difference is ~40M, but it's
> more modest for OpenSUSE and Ubuntu.

"perl-base" on Ubuntu is quite different from "perl-base" on OpenSUSE
Leap. I haven't check Tumbleweed but is probably the same as Leap.
So, I think these would deserve to be in separated patches.

On Ubuntu, installing "perl" or "perl-base" or none of them makes no
difference. We install "build-essentials" which pulls "dpkg-dev" which
pulls "perl", so we don't test properly if "perl-base" is enough or if
we need more.

I tried to find out which Perl module we would need, and I've got this
list:

- get_maintainer
    Getopt::Long;
- add_maintainer
    Getopt::Long;
    File::Basename;
    List::MoreUtils;
    IO::Handle;
- stubdom/vtpmmgr:
    Digest::SHA qw(sha1);
    Math::BigInt only => 'GMP';
- kconfig
    Getopt::Long;
- ocaml/lib/xc/abi-check
    Data::Dumper;
- docs/gen-html-index
    Getopt::Long;
    IO::File;
    File::Basename;
- docs/xen-headers
    Getopt::Long;
    File::Find;
    IO::File;
(there's also tools/examples/xeninfo.pl, I dont't if that can still work
or if we need to purge it)

Then I've got whatever module is in "perl-base" pkg.

For Leap's perl-base:
    getopt:long
    file:basename
    io:handle
    io:file
    file:find
    data:dumper
    digest:sha
So, add_maintainer.pl and the script in stubdom/vtpmmgr won't work. So
that's probably fine for Leap.

For Ubuntu 22.04 (not check others, but likely about the same)
there's more packages:
    perl-base
        getopt::long
        file:basename
        io:handle
        io:file
    perl-modules-5.34
        file:find
        math:bigint
    libperl5.34
        data:dumper
        digest:sha
    liblist-moreutils-perl
        list:MoreUtils
    librpc-xml-perl
        rpc:xml
("perl" pkg pulls "perl-modules-5.34" and "libperl5.34")

So with just "perl-base", the ocaml's abi-check wouldn't work, as well
as the docs's script (probably ok for "docs" if we don't use containers
to build them). Also add_maintainer and stubdom/vtpmmgr like for Leap.


So I would suggest to not touch the Ubuntu containers, make the change
to the OpenSUSE one and maybe add the limitation to the commit message.

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 Jul 15 13:02:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 13:02:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758869.1168388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTLLo-0005Lg-6t; Mon, 15 Jul 2024 13:02:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758869.1168388; Mon, 15 Jul 2024 13: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 1sTLLo-0005LZ-2Q; Mon, 15 Jul 2024 13:02:44 +0000
Received: by outflank-mailman (input) for mailman id 758869;
 Mon, 15 Jul 2024 13:02: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=kjrg=OP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sTLLn-0005LS-Bf
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 13:02:43 +0000
Received: from mail-qk1-x733.google.com (mail-qk1-x733.google.com
 [2607:f8b0:4864:20::733])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84da1d5d-42aa-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 15:02:41 +0200 (CEST)
Received: by mail-qk1-x733.google.com with SMTP id
 af79cd13be357-79f08b01ba6so355900685a.0
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 06:02:41 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a160bdca41sm194785685a.55.2024.07.15.06.02.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 06:02: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: 84da1d5d-42aa-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721048561; x=1721653361; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vmQg8lZ4uyq92nzQahMeihKaOXreEhuittm/emP8eJI=;
        b=GZS89clI7WWZDxgso6NIdIOSIFMChev6+Ui4fxhgwsxiSL6jJyztixIZs4c8Bk2Jfd
         Q4THGjSLqOBEEJFLZYf45dICWJ6EkbGCQz0oOfZLzY5yIHrZmR7llSb65usSFmg+pjbT
         CqeJ3sZdHi1MfcEO3mumH2Y6QLws4U+SW9JvA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721048561; x=1721653361;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vmQg8lZ4uyq92nzQahMeihKaOXreEhuittm/emP8eJI=;
        b=WEAgTrwWdLwj/liVZwAfELcmu0yWcW83HBtWljtlQvvINx+/PWZcAHmUEmyWwkCYil
         qGlEYEh2aoY48uocq4ThjRMNB2V6HFCRweHoUc7LIBgKiM5SZLh2J2PHPq5cdKDZCfpA
         TZTExpH3KrcsJvKWR894qc/WBssy0QfH21Ha94rx3mlue+T6wUGAHTPxzvi6YIXR9Imk
         /5Rz40FQFG0X28XQnij0yyjkQjoEN9CLr0BK49j567sGMO1G/He7EjMMwbxcg8NVzJos
         KtUuwakGU9LMUzQTiYTMsnp2Qzvw6JNRPwAopRPm09aux4uQ/oeGvFM0wiGhqocaeE5c
         Or9A==
X-Gm-Message-State: AOJu0YxH4MATuyIG+HkvliSXgNBZs7UN9d730pRecUGD4D8v31uWvvPd
	lamwneywJQHixm/bzj2Rg1qCDieTngqgLc2fcxHBdlmVRHx0ASYoehpXyjHu82U=
X-Google-Smtp-Source: AGHT+IFWnNHFP8JQ2FhCn+irM9H3Hh38qNEhzV7Mwc79KS+YYvqSo3UKA7gE4x8o319Eqr/vxkHqNw==
X-Received: by 2002:a05:620a:215c:b0:79f:712:ff97 with SMTP id af79cd13be357-7a152fee4c5mr1581482185a.18.1721048560672;
        Mon, 15 Jul 2024 06:02:40 -0700 (PDT)
Message-ID: <377cd22e-e5f9-4675-9d11-92298dc5ce55@citrix.com>
Date: Mon, 15 Jul 2024 14:02:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 20/12] CI: Swap from perl to perl-base in build containers
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240713180952.3363596-1-andrew.cooper3@citrix.com> <ZpUaMwZoKnrh61P0@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZpUaMwZoKnrh61P0@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/07/2024 1:46 pm, Anthony PERARD wrote:
> On Sat, Jul 13, 2024 at 07:09:52PM +0100, Andrew Cooper wrote:
>> We only need a basic perl environment, not the things that a primarily-perl
>> project would want.
>>
>> Discovered during the Fedora refresh where the difference is ~40M, but it's
>> more modest for OpenSUSE and Ubuntu.
> "perl-base" on Ubuntu is quite different from "perl-base" on OpenSUSE
> Leap. I haven't check Tumbleweed but is probably the same as Leap.

/sigh - because that would have been too easy.

> So, I think these would deserve to be in separated patches.
>
> On Ubuntu, installing "perl" or "perl-base" or none of them makes no
> difference. We install "build-essentials" which pulls "dpkg-dev" which
> pulls "perl", so we don't test properly if "perl-base" is enough or if
> we need more.

Fine - lets leave the Ubuntu's alone.

>
> I tried to find out which Perl module we would need, and I've got this
> list:
>
> - get_maintainer
>     Getopt::Long;
> - add_maintainer
>     Getopt::Long;
>     File::Basename;
>     List::MoreUtils;
>     IO::Handle;
> - stubdom/vtpmmgr:
>     Digest::SHA qw(sha1);
>     Math::BigInt only => 'GMP';
> - kconfig
>     Getopt::Long;
> - ocaml/lib/xc/abi-check
>     Data::Dumper;
> - docs/gen-html-index
>     Getopt::Long;
>     IO::File;
>     File::Basename;
> - docs/xen-headers
>     Getopt::Long;
>     File::Find;
>     IO::File;
> (there's also tools/examples/xeninfo.pl, I dont't if that can still work
> or if we need to purge it)

Ewww.

my %xenhosts = ("192.0.2.10" => {"port" => "9363"}, ...

is enough to demonstrate it's a special purpose script.

That file isn't referenced by the Makefile, nor is anything in the vnc/
dir, so we should purge the lot.

>
> Then I've got whatever module is in "perl-base" pkg.
>
> For Leap's perl-base:
>     getopt:long
>     file:basename
>     io:handle
>     io:file
>     file:find
>     data:dumper
>     digest:sha
> So, add_maintainer.pl and the script in stubdom/vtpmmgr won't work. So
> that's probably fine for Leap.

vtpmmgr isn't built by default, so gets 0 testing in CI.  I don't expect
people to be using add_maintainer inside the containers either.

>
> For Ubuntu 22.04 (not check others, but likely about the same)
> there's more packages:
>     perl-base
>         getopt::long
>         file:basename
>         io:handle
>         io:file
>     perl-modules-5.34
>         file:find
>         math:bigint
>     libperl5.34
>         data:dumper
>         digest:sha
>     liblist-moreutils-perl
>         list:MoreUtils
>     librpc-xml-perl
>         rpc:xml
> ("perl" pkg pulls "perl-modules-5.34" and "libperl5.34")
>
> So with just "perl-base", the ocaml's abi-check wouldn't work, as well
> as the docs's script (probably ok for "docs" if we don't use containers
> to build them).

Hmm yeah - we wouldn't want to break that.

>  Also add_maintainer and stubdom/vtpmmgr like for Leap.
>
>
> So I would suggest to not touch the Ubuntu containers, make the change
> to the OpenSUSE one and maybe add the limitation to the commit message.

Ok - I'll do this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 13:28:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 13:28:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758880.1168397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTLkB-0008Qk-4n; Mon, 15 Jul 2024 13:27:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758880.1168397; Mon, 15 Jul 2024 13:27: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 1sTLkB-0008Qd-2C; Mon, 15 Jul 2024 13:27:55 +0000
Received: by outflank-mailman (input) for mailman id 758880;
 Mon, 15 Jul 2024 13:27: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=f/7M=OP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sTLk9-0008QG-HN
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 13:27:53 +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 07c1553a-42ae-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 15:27:51 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a77cbb5e987so513599866b.3; 
 Mon, 15 Jul 2024 06:27:49 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc5b7f16sm211571866b.64.2024.07.15.06.27.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Jul 2024 06: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: 07c1553a-42ae-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721050068; x=1721654868; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4xl7fTSuRDzF/uDlVK7TVXULDCM6JRV9CWT9g08FG3E=;
        b=NExaTWcw/Mos0uA43MzxCLz6CFKW86lES4FKD/rCgVO3f4Z/GOZe3omIdZlazgxYUr
         gOytrkwP0eIIkV1PiI5z3l9e3s37vmDuifXm6+K2jAZi54WEPDZXtmFKAI24iYzlmZ0t
         OuWlbDq16pBkqkqmJD/MZZ1xOsjW4MKSh82ubxFydcRnA0GdSBxOxQz5NdwQ75Yd5uWI
         beG93Lf+8npy+KkMd6PmoYyU8B4cCdZe6TUfiFxmCUq70ynsSZyBE7tKLho9VeJOrKKv
         QuoSps2G9mP20W8Zw6NFJJYE8YzH+kYQdkm5kt2uGMOByOR9lDksD9KTxBvnwSo8IJih
         7k0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721050068; x=1721654868;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4xl7fTSuRDzF/uDlVK7TVXULDCM6JRV9CWT9g08FG3E=;
        b=jt+UZhNphQ9QS/Cl6lG0dr+LEn5pXtiLtkGTbqqJzqOreO7U04cW/wREA/mc4MlwMg
         ygJ7AAQTjs7HUoZsa+mkyOfm3Xm4Z43Deb5ums7UGTEVlRdWjTwSi3+bytBFGj94Z/gF
         gv6DOM1a2U7hbGb17Ky1uTE1iU04KocZpr12spMAz2PqeebjD5pdCIRJ3h16rFSebJ7+
         2qOXG9UwceBVwy6YUU3H3D14aRRdM44dBVwr4rCTAGwJcARfeewSoIW0feU9oitJQyMK
         /RlrTwbIzAPTCcY96Qh/spdsYs/QGdrRl7lAkuFzhHKu4H6BTwKNNMEd5HHGZA+judth
         Qduw==
X-Forwarded-Encrypted: i=1; AJvYcCXTmYkkcGgrk2vgOPIgPkmTBWHQMtnb39VTIvNwG2YWv6NE+ZbzhNKh7d+ig7Ic98WbGTLbXx76XwYftgn2ACaT7+55jZOwkPR/VimS2xzmZLc=
X-Gm-Message-State: AOJu0Yx1kRhb79CCgklM3iB6y+mM+6w4uhgo0HH7g5pde/qpe+Up+Y61
	kwAnrHnxsl/WjS+Y7HYLOQiWxJjnmgGt6hex+veIgLeCnGaJgP2F+7K/EYmY
X-Google-Smtp-Source: AGHT+IHJh0dAt2n1pljl0eEYFrPb4iQkzUv6WFW/6JB3K0DnUx/uH/YtQx6n2Oltk/PmqXlARZ4TXw==
X-Received: by 2002:a17:907:ea1:b0:a75:110d:fa53 with SMTP id a640c23a62f3a-a780b885565mr1577564766b.49.1721050068254;
        Mon, 15 Jul 2024 06:27:48 -0700 (PDT)
Message-ID: <2ef594109a64433394b2dac845b8c2ea7f23d2b2.camel@gmail.com>
Subject: 
From: Oleksii <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: xen-users@lists.xenproject.org, xen-announce@lists.xenproject.org
Date: Mon, 15 Jul 2024 15:27:47 +0200
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

Hi all,

Xen 4.19-rc3 is tagged. You can check that out from xen.git:

git://xenbits.xen.org/xen.git 4.19.0-rc3

For your convenience there is also a tarball and the signature at:
https://downloads.xenproject.org/release/xen/4.19.0-rc3/xen-4.19.0-rc3.tar.=
gz

And the signature is at:
https://downloads.xenproject.org/release/xen/4.19.0-rc3/xen-4.19.0-rc3.tar.=
gz.sig

Please send bug reports and test reports to
xen-devel@lists.xenproject.org<mailto:xen-devel@lists.xenproject.org>.
When sending bug reports, please CC relevant maintainers and me
(oleskii.kurochko@gmail.com<mailto:oleskii.kurochko@gmail.com).

Best regards,
 Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 13:30:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 13:30:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758887.1168407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTLmD-0000bY-J5; Mon, 15 Jul 2024 13:30:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758887.1168407; Mon, 15 Jul 2024 13:30:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTLmD-0000b1-Fz; Mon, 15 Jul 2024 13:30:01 +0000
Received: by outflank-mailman (input) for mailman id 758887;
 Mon, 15 Jul 2024 13: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=f/7M=OP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sTLmB-0000Ys-SN
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 13:29:59 +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 54f5489a-42ae-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 15:29:59 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a77cc44f8aaso242917666b.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 06:29:59 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59b26f61f62sm3350924a12.82.2024.07.15.06.29.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Jul 2024 06:29: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: 54f5489a-42ae-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721050198; x=1721654998; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=BwdOuYXhYyq01hfQeUAROIU2sYwv+dhNfF6a540e6Ew=;
        b=mr52ZaCA6cXyUidtsgp3Ycqeabf2/QuGKBhKmM5dFsk0ZbZ/77scxJtRoGTr31mEVv
         1QVYUDE+SerTdWel1ZGquWjImsS2g7DnJaW2IgvI2V7mVtUlPt5BNUd/fTS0jB5TGdJ9
         a5qp9PZZT2uxE5meEQG4p8A/ToLU1JQJ3+ZlAqpTensoYiww5mYLjqog8NM8UOwUsMYm
         5Wph35vTJyL6heTWnS2X8mXUriw2pRLP+LH0OJS2xsonxI0NdT6pffQk6bae8f4gv42B
         OuuinaMoX6vIQ/ZFq5dqoPITOhpmzFtetCAKa13NmjbvPuhkJrcByBQJFNE2CZlI0TWm
         CqEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721050198; x=1721654998;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=BwdOuYXhYyq01hfQeUAROIU2sYwv+dhNfF6a540e6Ew=;
        b=fO3nTnIcuG9CQs0l9HuGW5GWv9jmcXZrtKG3xuorSGPo4UOE4SiS3Zqrw4brxWs80T
         o0iHeIdd9X6KkIpXa3B9JmxdUGvfmLokgMbA1S7W4eKRrEJalyCicyvloGw9wKmFO4Y9
         Lirf9R0yhgGB4onbo5EXv2Y6qnwgoa+Eb3eccEK5MXWba4kEPsiojnBu2eHoxQChn90V
         O/iuC/1zZWptZkLW9bUy+qnXLhnOu5EPXVsA4+T0VVPGibMcvTZQLNvExgNtYwy2ZwZF
         HkFIo+W8uoC2CMoWmqJonoPuspekfrBaGbsYvD5RSgR87RzaKMdeh2+OdclB/WUkQIek
         IQmg==
X-Forwarded-Encrypted: i=1; AJvYcCX0wlsgWfmReQqpUVOE8kOCTO8Ml9Wt+GAl3ZW+0IWaQs3hFwRLW49//CMfkQ9RPhkvmXR+xgSLOa5fRi/o/oDqsKrAHMmotIMe1sV6VN0=
X-Gm-Message-State: AOJu0YzHj43W89nCtemcFtUTc0bQCW/8PSxyG9l1PqdhBFEG4bFmdmKU
	02znHiVT56OWWZlKKk6qbAqx30HqoPMbSwDnM5ugTjuIUYF7a0Ea
X-Google-Smtp-Source: AGHT+IHkiaf/+hDlY3F6mc6cPg3gLRyQRbSUiKh0LYNJqitdfjPp2Hg2X5jQkNcmmEcn/CpBnpLLXg==
X-Received: by 2002:a05:6402:348c:b0:58f:2087:7983 with SMTP id 4fb4d7f45d1cf-594bcba842bmr16677605a12.40.1721050198096;
        Mon, 15 Jul 2024 06:29:58 -0700 (PDT)
Message-ID: <433345965599d1db98e3fb0023777269cf24184f.camel@gmail.com>
Subject: Re: [PATCH 10/12] CI: Introduce debian:11/12-riscv64 containers
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
 <jgross@suse.com>,  Roger Pau =?ISO-8859-1?Q?Monn=E9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Shawn Anastasio
 <sanastasio@raptorengineering.com>
Date: Mon, 15 Jul 2024 15:29:56 +0200
In-Reply-To: <0c03dff1-e68c-4660-b2cb-471958708daa@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
	 <20240711111517.3064810-11-andrew.cooper3@citrix.com>
	 <1b6c7e57ea331d3ea9aeea7fafc9a0733f6e9147.camel@gmail.com>
	 <0c03dff1-e68c-4660-b2cb-471958708daa@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Fri, 2024-07-12 at 13:30 +0100, Andrew Cooper wrote:
> On 12/07/2024 12:39 pm, Oleksii wrote:
> > On Thu, 2024-07-11 at 12:15 +0100, Andrew Cooper wrote:
> > > For starters, they're slightly smaller:
> > >=20
> > > =C2=A0 $ docker image list <snip>
> > > =C2=A0 registry.gitlab.com/xen-project/xen/debian=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 12-
> > > riscv64=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
> > > 772MB
> > > =C2=A0 registry.gitlab.com/xen-project/xen/debian=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 11-
> > > riscv64=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
> > > 422MB
> > Do we really need both 11-riscv64 and 12-riscv64?
>=20
> Need? No, not strictly.
>=20
> Want? Yes, absolutely.
>=20
> You always want at least 2 different toolchains worth of testing, or
> what you will find happens is that you end up accidentally depending
> on
> a quirk of the single compiler your using, and that you discover this
> at
> some point in the future, rather than now(ish) when CI says no.
>=20
> At the moment, the RISC-V builds are very trivial and quick, so it
> makes
> a lot of sense to have a second toolchain.=C2=A0 Before too much longer,
> you'll want to get Clang working too.
Agree, I should consider to add Clang. I will do that in the one of my
nearest patch series.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 13:31:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 13:31:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758891.1168417 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTLo4-0001zR-UY; Mon, 15 Jul 2024 13:31:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758891.1168417; Mon, 15 Jul 2024 13: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 1sTLo4-0001zK-Qm; Mon, 15 Jul 2024 13:31:56 +0000
Received: by outflank-mailman (input) for mailman id 758891;
 Mon, 15 Jul 2024 13:31: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=f/7M=OP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sTLo3-0001z9-Ol
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 13:31:55 +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 9748887a-42ae-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 15:31:51 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58ba3e37feeso5265173a12.3; 
 Mon, 15 Jul 2024 06:31:50 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59b268a271fsm3387617a12.78.2024.07.15.06.31.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Jul 2024 06:31: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: 9748887a-42ae-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721050309; x=1721655109; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4xl7fTSuRDzF/uDlVK7TVXULDCM6JRV9CWT9g08FG3E=;
        b=OUwVJzu3yC6Jdf53PHfmW2n8rkd7JKcMY/l/XJbl+I6RGBXI1xJD+59a/hTuAVbFuR
         rI0n1zVORnO04AcirxhB4OGUcLuPU5g7RUhnfH1MkhL3VmwV5Tv1XGH7syuyM9AMAju5
         Ggn89p/WVlVv9ExI+x8n5WoipRJCvF/5UxT69zrGB4FYt3dRIz/iwWazTZrMxYqZK7Sd
         EqtKnWpjnNOft9fmWx0yVAPLyc25tGkbCxaGz2PTfh4CIxHkLM28CmF1pOMIJSofIvZK
         Kks2dB9c7SgR6/5A5Z6S/1HOtiFl5Z0ioQVNYil0nowXfuYgeuYbMCHqIGnNyqNDOzJE
         bC5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721050309; x=1721655109;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4xl7fTSuRDzF/uDlVK7TVXULDCM6JRV9CWT9g08FG3E=;
        b=fWQ6RYi1r5pf+gmxkXVTjapyVcY9dvo5MsPbaoExYRFTsz5PzVRnJmenLi5ju7ihNT
         QN1TFFTwddaajSd3ytg8P78FbfViOIFmCG2POYwRYBnG9S3IB8VFnjw6/nn1cjGsNew8
         lnNWCISYopdDAofKEJL4zV9qhk2ub7UCh+mkWFF6mQZ5CB5uJmCaBu4GpWr7+197X4ZD
         aWm3DP2CyeVFhCge9tUtTTZzKg2v6hEFkMi6i32gWyzK4xuVxokE/F3NxJ6TY+W6xi1p
         sd/MI7+n632SvtvaPP/oDWUbqY6hItM5u8EeqFg+oBUcyO3EqgulzhGF2PIpBX9LkA01
         RG7g==
X-Forwarded-Encrypted: i=1; AJvYcCWu95+fncmRuNJnyhnlqwrdKJmSZTclsGvnoX2FIGb2OQznwan9DoBxwEFsSDHYnTCTfGqkLzi7U0FxUCq4PatYHqrCqEkRClf1LhPlD5VkfTI=
X-Gm-Message-State: AOJu0YwPrGFMtE7ZYmlsEmsLv7e1ygaZo7ylEEX/1gDbKDX9nu/Stlho
	NkucFQn/2QSOoEGRiIPcOUXxvWx7e6XOo8yfWbHgOmNFT541VSLDvh4JmfDN
X-Google-Smtp-Source: AGHT+IE0Mb27qv/iABdf3pajEE2HXmNtmggoR6AelExNcrDbdL53TQYYnBwfkNi9o92Q+8O6aasLEg==
X-Received: by 2002:a50:ed04:0:b0:58c:34cb:16ca with SMTP id 4fb4d7f45d1cf-594bc7c7e6cmr9957943a12.28.1721050309313;
        Mon, 15 Jul 2024 06:31:49 -0700 (PDT)
Message-ID: <2bb693bac4011fdd8d5526df38e7ebd39305dd68.camel@gmail.com>
Subject: Xen 4.19-rc3
From: Oleksii <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: xen-users@lists.xenproject.org, xen-announce@lists.xenproject.org
Date: Mon, 15 Jul 2024 15:31:48 +0200
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

Hi all,

Xen 4.19-rc3 is tagged. You can check that out from xen.git:

git://xenbits.xen.org/xen.git 4.19.0-rc3

For your convenience there is also a tarball and the signature at:
https://downloads.xenproject.org/release/xen/4.19.0-rc3/xen-4.19.0-rc3.tar.=
gz

And the signature is at:
https://downloads.xenproject.org/release/xen/4.19.0-rc3/xen-4.19.0-rc3.tar.=
gz.sig

Please send bug reports and test reports to
xen-devel@lists.xenproject.org<mailto:xen-devel@lists.xenproject.org>.
When sending bug reports, please CC relevant maintainers and me
(oleskii.kurochko@gmail.com<mailto:oleskii.kurochko@gmail.com).

Best regards,
 Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 13:39:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 13:39:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758902.1168427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTLvg-0002q2-OM; Mon, 15 Jul 2024 13:39:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758902.1168427; Mon, 15 Jul 2024 13:39: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 1sTLvg-0002pv-LO; Mon, 15 Jul 2024 13:39:48 +0000
Received: by outflank-mailman (input) for mailman id 758902;
 Mon, 15 Jul 2024 13:39: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=TD6x=OP=bounce.vates.tech=bounce-md_30504962.669526a0.v1-011346cb18ff4100918e1fb21664f6e1@srs-se1.protection.inumbo.net>)
 id 1sTLvf-0002pp-A7
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 13:39:47 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b226f91c-42af-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 15:39:45 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WN3GS0Y9Pz6CQ6xx
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 13:39:44 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 011346cb18ff4100918e1fb21664f6e1; Mon, 15 Jul 2024 13:39: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: b226f91c-42af-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721050784; x=1721311284;
	bh=7BZFiptbAmfw2jDuuV5ePzPyMLA9YiFt7igDQO81heI=;
	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=ktBdLjgyLjiyJ755+y70iIHfdXtTaLI5+rabDsggp2polVjdz0xc6PqHwrSM8U1nu
	 nqsJH0IhhzyhHdc424NZTtWaGT764L5CqCRmknItf/QFDPTvqd+nEl8Z2ZRTeYM+IV
	 kmVo/J+d7AgDr32V2ypGBFv4IkfOYfuW/YH568mFp6heO3NrciZPi/PVn3n/aQ5Npq
	 QZQAlbiU6eJL29mwAxPQgwbaYUQemI13ZIsQdmeC8VgV4zyV1IvXn1Bout6+KXL8B0
	 mrEkn+4n9E5lfF5KKe+fRi1UFcciTbFdZP4Cg2n1xOP/kmQAB2M6QyozN6kFB1/24H
	 f7viljg1z5wXg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721050784; x=1721311284; i=anthony.perard@vates.tech;
	bh=7BZFiptbAmfw2jDuuV5ePzPyMLA9YiFt7igDQO81heI=;
	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=aY5t+1pohW/7iIUxnGp5lTCShtGu+r5tcLczS88e6Z/EshD7FJXoHRp16jQgGZ1rq
	 xx+T51880VvCjJ1WHJaV/1SnjgI1Ufne0cfq8BF0UwM1ulZndGtNt+VqC04rycxKFO
	 4XOrhXX2B8zfte/yNzBV7OOJR2EgRWsvXPc7Gx4VLXysPMFGUw68Lxj31Am/aiz/nn
	 4Q8UnJDtoVLLFHisscDw+DOXpr6SGNO4AWyhapNTVStzUUxwbT4giaw3ALZeep+f2H
	 nrLRT1/hTuiIgqKQIf3QZRQPKMjrJXLK79F7Dn5zoBdKc+18TDExfVu7qxwJOCQfaE
	 MorEBlnKK6vCQ==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2021/12]=20CI:=20Refresh=20and=20upgrade=20the=20Fedora=20container?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721050782673
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Message-Id: <ZpUmnrsLD5s0KaeM@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240713181005.3363912-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240713181005.3363912-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.011346cb18ff4100918e1fb21664f6e1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240715:md
Date: Mon, 15 Jul 2024 13:39:44 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Sat, Jul 13, 2024 at 07:10:05PM +0100, Andrew Cooper wrote:
> Fedora 29 is long out of date.  Move forward 5 years to Fedora 39.
> 
> Inlcude all the usual improvements.  Rework the container to be non-root, use
> heredocs for legibility, and switch to the new naming scheme.

"clang" as been removed, but it's not mention in the commit message. The
other changes are kind of "the usual improvement" yes, as been done to
other containers (libaio, nasm, ...).

The patch is missing an update of the "containerize" script.

> diff --git a/automation/build/fedora/39-x86_64.dockerfile b/automation/build/fedora/39-x86_64.dockerfile
> new file mode 100644
> index 000000000000..e2048a437581
> --- /dev/null
> +++ b/automation/build/fedora/39-x86_64.dockerfile
...
> +
> +    dnf -y install "${DEPS[@]}"

You might want to add --setopt=install_weak_deps=False to avoid
installing "git" for example.
When running the original command by hand, `dnf` want to install those weak deps:
    Installing weak dependencies:
     apr-util-bdb
     apr-util-openssl
     cryptsetup-libs
     diffutils
     git
     libbpf
     libxkbcommon
     mercurial
     perl-NDBM_File
     python3-fb-re2
     python3-pip
     qrencode-libs
     subversion
     systemd-networkd
     systemd-resolved
And comparring the list of deps, these extra pkgs are installed because
of weak deps:
    apr
    apr-util
    dbus
    dbus-broker
    dbus-common
    device-mapper
    device-mapper-libs
    git-core-doc
    kmod-libs
    libargon2
    libseccomp
    libserf
    perl-Error
    perl-File-Find
    perl-Git
    perl-TermReadKey
    perl-lib
    python3-zombie-imp
    re2
    subversion-libs
    systemd
    systemd-pam
    utf8proc
    xkeyboard-config

So, probably only "perl-File-Find" (can be written "perl(File::Find)" I
think as well) might be needed, but only for docs/ I think, from the
previous email.

It seems I go from 1.26GB to 1.18GB without those weak deps.

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 Jul 15 13:40:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 13:40:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758906.1168437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTLwa-0004D6-1M; Mon, 15 Jul 2024 13:40:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758906.1168437; Mon, 15 Jul 2024 13:40:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTLwZ-0004Cz-Tl; Mon, 15 Jul 2024 13:40:43 +0000
Received: by outflank-mailman (input) for mailman id 758906;
 Mon, 15 Jul 2024 13:40:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTLwY-0004Ch-NS; Mon, 15 Jul 2024 13:40:42 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTLwY-0006Ms-Kh; Mon, 15 Jul 2024 13:40:42 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTLwY-0002gQ-77; Mon, 15 Jul 2024 13:40:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTLwY-0001rf-6e; Mon, 15 Jul 2024 13:40: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=FC7tSKH1l7dZBhE3fDAgBOLu6fr2QpbY1e4COZXOxHo=; b=sgzCDPPKzFkSPllTRND7ezNtNQ
	SldpHC+tQmmAjx7MkzkcmKf+lyRvn2ggI0bpsG+j7MJyvz9sxyad4YJ2kKvhWkoc1mW8sLIkM6jhQ
	HvoqB/xh3hUg35SwqlhMmOJr3WYJK2VM7FDAe7VuNUE9axqnfmdhF+HNbza4i3/wx6w8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186806-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [seabios test] 186806: tolerable FAIL - PUSHED
X-Osstest-Failures:
    seabios:test-amd64-amd64-qemuu-freebsd11-amd64:guest-start/freebsd.repeat:fail:heisenbug
    seabios:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    seabios:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    seabios:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    seabios:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    seabios=ec0bc256ae0ea08a32d3e854e329cfbc141f07ad
X-Osstest-Versions-That:
    seabios=e5f2e4c69643bc3cd385306a9e5d29e11578148c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Jul 2024 13:40:42 +0000

flight 186806 seabios real [real]
flight 186807 seabios real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186806/
http://logs.test-lab.xenproject.org/osstest/logs/186807/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-qemuu-freebsd11-amd64 21 guest-start/freebsd.repeat fail pass in 186807-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 185623
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 185623
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 185623
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass

version targeted for testing:
 seabios              ec0bc256ae0ea08a32d3e854e329cfbc141f07ad
baseline version:
 seabios              e5f2e4c69643bc3cd385306a9e5d29e11578148c

Last test of basis   185623  2024-04-15 19:11:57 Z   90 days
Testing same since   186806  2024-07-15 09:11:09 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Gerd Hoffmann <kraxel@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       fail    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/seabios.git
   e5f2e4c..ec0bc25  ec0bc256ae0ea08a32d3e854e329cfbc141f07ad -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 13:42:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 13:42:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758914.1168447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTLyA-0004nL-CE; Mon, 15 Jul 2024 13:42:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758914.1168447; Mon, 15 Jul 2024 13:42: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 1sTLyA-0004nE-91; Mon, 15 Jul 2024 13:42:22 +0000
Received: by outflank-mailman (input) for mailman id 758914;
 Mon, 15 Jul 2024 13:42: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=f/7M=OP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sTLy8-0004n8-Tn
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 13:42:20 +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 0e009897-42b0-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 15:42:18 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-57cf8880f95so5378077a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 06:42:18 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59b26996c70sm3376325a12.68.2024.07.15.06.42.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Jul 2024 06:42: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: 0e009897-42b0-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721050938; x=1721655738; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Hvu9mLWWxvc6Q3fa2ObHFskc9erssTd2AkYqtupTqmc=;
        b=QdwrrucyQ1kwH0K3n12rr2xEAeWIoRsF3TqY9NwvI53fTfJJ2i/qQ2mTzfWVumNjfn
         gGQS7XA4uUORJU9px17ag4LmZg6VdQWbJRVVIbLHnzoHICNVICNw0l/zOM35h5IVj+Lq
         UePQk1t9yUMsn+2wFpUVL7DAcMjIbbxfM9ybPrQ7nyJhynEa5gMXfz/GhHCfCsKtmbnB
         jBEmU7sMwIQOXwTfjfxbmZG/D+/VFDJv/Lrxiyc7XpmHxFj/+Xr2cFO8wlANsQyZRe4t
         NPeY8EZp2KaVafaZwbXT8QgFTvadfmS/3MbJm3W9gx2ZfUkc4+qieA5rSVnnHh3F3ryc
         q2hw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721050938; x=1721655738;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Hvu9mLWWxvc6Q3fa2ObHFskc9erssTd2AkYqtupTqmc=;
        b=hcmTKqB9NU5kL1Q63imhayApyO4pvodhSXyXje6Zo1pu5fsZ/Y43WR+0wF08dMPvD1
         A/H7B8jRLYWCLhE2Oot7bntzGqWCeCvqnY1AxCZmFrIZkiX0voG5nlYCqe8WcC2KXXcd
         r/oNVRfrRplrdftbWYSY/TYILqdu6JUYVhXQluMUg8s9Mm2gu0IGo4sO4RXYvvBdaGlc
         mTcuPHTlvGKlv4opmVWt9qYcBHinLiCcuxlR84wiozR7sgIw70Pj1Hx0yc7UxuefyVd1
         qvWzP3TyjWD3D1dL55YywOPpCMxutjBlkUB4yMW3/onK7AH26Yz/U5gSqta+Pmq4WJXa
         31xQ==
X-Forwarded-Encrypted: i=1; AJvYcCW52mVk55UGaA3v9v3ctdXc8QCS3qp9lc2yZzJzP26uXLzeKH/LAoN4v3NH9IB2JwX893hdY52qohWrdAJ6ftFRPQapQFVgO4E6XkK21sM=
X-Gm-Message-State: AOJu0YzqiBjd0YUsjL8vFeH5iqm/vWyH2dKsd/UHneXYE9xXOs6j+BF5
	itiHi6MWNIPg8fsKXnHBphgR8K+o0OXlAsD05QCRmQQOIWh2Tp99
X-Google-Smtp-Source: AGHT+IE+AbqkrPKQxJBm3/RrENR1A/aju2hBHVYo7UDCdyVQSokBEHY7EyCHY6lQQk+79A/G6Lwefg==
X-Received: by 2002:aa7:c548:0:b0:57a:33a5:9b71 with SMTP id 4fb4d7f45d1cf-594bc7c9d69mr11408878a12.33.1721050935035;
        Mon, 15 Jul 2024 06:42:15 -0700 (PDT)
Message-ID: <278883e1998dd91c2f788464ca933bdbf05370f4.camel@gmail.com>
Subject: Re: [PATCH v6 1/8] xen/device-tree: Move Arm's setup.c bootinfo
 functions to common
From: Oleksii <oleksii.kurochko@gmail.com>
To: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Shawn Anastasio <sanastasio@raptorengineering.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>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>,  "Daniel P. Smith"
 <dpsmith@apertussolutions.com>
Date: Mon, 15 Jul 2024 15:42:13 +0200
In-Reply-To: <98144517-5abe-4a82-81b4-6a459826fb2f@amd.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <cb2348393294b8910d794d9d11fff28ff0e6996b.1720799926.git.oleksii.kurochko@gmail.com>
	 <98144517-5abe-4a82-81b4-6a459826fb2f@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

Hi Michal,

On Mon, 2024-07-15 at 12:15 +0200, Michal Orzel wrote:
> Hi Oleksii,
>=20
> In general, the patch looks ok (apart from Jan comments). Just a
> couple of remarks.
>=20
> On 12/07/2024 18:22, Oleksii Kurochko wrote:
> >=20
> >=20
> > From: Shawn Anastasio <sanastasio@raptorengineering.com>
> >=20
> > Arm's setup.c contains a collection of functions for parsing memory
> > map
> > and other boot information from a device tree. Since these routines
> > are
> > generally useful on any architecture that supports device tree
> > booting,
> > move them into xen/common/device-tree.
> >=20
> > Suggested-by: Julien Grall <julien@xen.org>
> > Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > Changes in V6:
> > =C2=A0- update the version of the patch to v6, to show that it is based
> > =C2=A0=C2=A0 on the work done by Shawn in the patch v4.
> > ---
> > Changes in V5:
> > =C2=A0- add xen/include/xen/bootfdt.h to MAINTAINERS file.
> > =C2=A0- drop message "Early device tree parsing and".
> > =C2=A0- After rebase on top of the current staging the following change=
s
> > were done:
> > =C2=A0=C2=A0 - init bootinfo variable in <common/device-tree/bootinfo.c=
> with
> > BOOTINFO_INIT;
> > =C2=A0=C2=A0 - update the code of dt_unreserved_regions():
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_STATIC_SHM related changes =
and getting of
> > reserved_mem
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bootinfo_get_shmem() ??
> > =C2=A0=C2=A0 - update the code of meminfo_overlap_check():
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 add check ( INVALID_PADDR =3D=3D b=
ank_start ) to if case.
> > =C2=A0=C2=A0 - update the code of check_reserved_regions_overlap():
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_STATIC_SHM related changes.
> > =C2=A0=C2=A0 - struct bootinfo was updated ( CONFIG_STATIC_SHM changes =
)
> > =C2=A0=C2=A0 - add shared_meminfo ( because of CONFIG_STATIC_SHM )
> > =C2=A0=C2=A0 - struct struct membanks was update with __struct group so
> > <xen/kernel> is
> > =C2=A0=C2=A0=C2=A0=C2=A0 neeeded to be included in bootfdt.h
> > =C2=A0=C2=A0 - move BOOTINFO_ACPI_INIT, BOOTINFO_SHMEM_INIT, BOOTINFO_I=
NIT to
> > generic bootfdt.h
> > =C2=A0=C2=A0 - bootinfo_get_reserved_mem(), bootinfo_get_mem(),
> > bootinfo_get_acpi(),
> > =C2=A0=C2=A0=C2=A0=C2=A0 bootinfo_get_shmem() and bootinfo_get_shmem_ex=
tra() were moved
> > to xen/bootfdt.h
> > =C2=A0- s/arm32/CONFIG_SEPARATE_XENHEAP/
> > =C2=A0- add inclusion of <xen/macros.h> because there are function in
> > <xen/bootfdt.h> which
> > =C2=A0=C2=A0 are using container_of().
> > =C2=A0---
> > Changes in v4:
> > =C2=A0 - create new xen/include/bootinfo.h rather than relying on arch'=
s
> > =C2=A0=C2=A0=C2=A0 asm/setup.h to provide required definitions for boot=
info.c
> > =C2=A0 - build bootinfo.c as .init.o
> > =C2=A0 - clean up and sort bootinfo.c's #includes
> > =C2=A0 - use CONFIG_SEPARATE_XENHEAP rather than CONFIG_ARM_32 to guard
> > =C2=A0=C2=A0=C2=A0 xenheap-specific behavior of populate_boot_allocator
> > =C2=A0 - (MAINTAINERS) include all of common/device-tree rather than
> > just
> > =C2=A0=C2=A0=C2=A0 bootinfo.c
> > ---
> > =C2=A0MAINTAINERS=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 |=C2=A0=C2=A0 2 +
> > =C2=A0xen/arch/arm/include/asm/setup.h=C2=A0 | 187 +-----------
> > =C2=A0xen/arch/arm/setup.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 432 --------------------------
> > --
> > =C2=A0xen/common/Makefile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 1 +
> > =C2=A0xen/common/device-tree/Makefile=C2=A0=C2=A0 |=C2=A0=C2=A0 1 +
> > =C2=A0xen/common/device-tree/bootinfo.c | 459
> > ++++++++++++++++++++++++++++++
> > =C2=A0xen/include/xen/bootfdt.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 | 196 +++++++++++++
> > =C2=A07 files changed, 660 insertions(+), 618 deletions(-)
> > =C2=A0create mode 100644 xen/common/device-tree/Makefile
> > =C2=A0create mode 100644 xen/common/device-tree/bootinfo.c
> > =C2=A0create mode 100644 xen/include/xen/bootfdt.h
> >=20
>=20
> [...]
>=20
> > diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
> > new file mode 100644
> > index 0000000000..7cd45b3d4b
> > --- /dev/null
> > +++ b/xen/include/xen/bootfdt.h
> > @@ -0,0 +1,196 @@
> > +#ifndef __XEN_BOOTFDT_H__
> AFAIR, to avoid violating MISRA rule 21.1, we should avoid
> introducing new macros with double underscore.
I will update that in the next patch version.

>=20
> > +#define __XEN_BOOTFDT_H__
> > +
> > +#include <xen/types.h>
> > +#include <xen/kernel.h>
> > +#include <xen/macros.h>
> > +
> > +#define MIN_FDT_ALIGN 8
> > +#define MAX_FDT_SIZE SZ_2M
> 2M blob limit is Arm64 specific. What will be the limit on RISCV?
> Shouldn't it be moved to some arch specific file?
Agree, good point.

I should drop that definition here and make it arch specific. I have to
update my patch series where I am introducing BOOTFDT_MAX_SIZE ( or
something similar ) in riscv/config.h.

Thanks.

~ Oleksii




From xen-devel-bounces@lists.xenproject.org Mon Jul 15 13:59:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 13:59:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758924.1168456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTME2-0007Au-Ov; Mon, 15 Jul 2024 13:58:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758924.1168456; Mon, 15 Jul 2024 13:58: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 1sTME2-0007An-MN; Mon, 15 Jul 2024 13:58:46 +0000
Received: by outflank-mailman (input) for mailman id 758924;
 Mon, 15 Jul 2024 13:58: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=f/7M=OP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sTME1-0007Af-Ci
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 13:58:45 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 590e9970-42b2-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 15:58:43 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-58b447c5112so5901605a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 06:58:43 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59b24a76c96sm3359347a12.18.2024.07.15.06.58.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Jul 2024 06:58: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: 590e9970-42b2-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721051923; x=1721656723; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=1WFGltZFYWOHGz4/pAznsWvqVwfPA5bANidpHaZ0/NA=;
        b=gdWTaznsNC0H9BafZXScllZQ4p6bOy38fJe5DIoTf8QC4lU39509hQDNNESRYdzNXz
         Kauq5+a2UKlo+RtuVgMHrk8FFApY5xI8Zsez5akH4HpQRBrSFRkfJO/zlS2bzmRwOhNb
         NRhFrLHgoPsFb3GwrjhxRb7ZBKWyMlrStYPM0t59u5Y5QSuA8qlnQcxNgpC5ZrYVP4me
         NNhIbGH7zsUcP8Vnu8V+nOFEdjoucgVZKnY8IxALwrUuVzgocaWbutGifdDvbNDGUmYP
         aVnpk5qHjGX0jaM06zW8eeJLmfVLpJkEY4WS/4kBmVw7ZbO+ReuR0vR9DepPz9wADpB5
         rw3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721051923; x=1721656723;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1WFGltZFYWOHGz4/pAznsWvqVwfPA5bANidpHaZ0/NA=;
        b=UE591JvP0C3Q4BxetQeD6XHdOy6vnSehZKx6sWySS+apG9U+rMhEx4YjLAkIJ1OEbX
         eQHIq7R1MNBfwaUK9p1P1tMDh0YpfHsjUCf9CHqpjigGaqFaF+wSR8xh7SXu1R1VJkUa
         4q8ZqlCvxJayqQ590mkrbZqMtHA9oIcPANss/gAFz2Fouj0bD1owbK+Kr3BLDH8CMNUV
         2GUjo29/hTOPoqaFDAvC9ydKDTIysE0ct/lF5nabmUMIdOjxAsrPGyXau12nAGuaJgHS
         uqog7B8pPJdpVocChAUdvC4/U4+fMSWuDSD8u9ME2o9BUOxJKTygba2/S7KxUwpvZPad
         vGPQ==
X-Forwarded-Encrypted: i=1; AJvYcCXYRzQBQ1PuAS11qyp+Q/cC0VqfBAwTd2eAWFxC+oh7qi/ngl794pCLkRIsh+JM+8R86O0+r8o/ILuKsylCuYCOr3knepKj/cb26l+zMIo=
X-Gm-Message-State: AOJu0Yyl8wqrciBU7IothQgoiuqIULm/LWMHBkd6hkAA9MzAvt408wkM
	nLYZQYUN8Ve/T6Aa/w6emuNkG61aTCAM0GtInVFvgh0rd5q80D9z
X-Google-Smtp-Source: AGHT+IHcnDckVJjSCEZrMg3HJNe+K4GjjyGLlx2waCa4/1s6Oq69+LstMf5wcMH6uT+QsXLO0e5vKw==
X-Received: by 2002:a50:955a:0:b0:599:8fef:3ee0 with SMTP id 4fb4d7f45d1cf-5998fef3f1emr6182006a12.36.1721051923113;
        Mon, 15 Jul 2024 06:58:43 -0700 (PDT)
Message-ID: <ba7c72745052429d84e172cf731849c54445d27a.camel@gmail.com>
Subject: Re: [PATCH v2 8/8] xen/riscv: introduce early_fdt_map()
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Mon, 15 Jul 2024 15:58:42 +0200
In-Reply-To: <bc8d2e10-0898-4f5a-b296-1bc7f528bb77@suse.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <4e4f94817fb3bba5f52336ea0b4491f7bc867d49.1720799926.git.oleksii.kurochko@gmail.com>
	 <bc8d2e10-0898-4f5a-b296-1bc7f528bb77@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-15 at 10:52 +0200, Jan Beulich wrote:
> On 12.07.2024 18:22, Oleksii Kurochko wrote:
> > --- a/xen/arch/riscv/include/asm/mm.h
> > +++ b/xen/arch/riscv/include/asm/mm.h
> > @@ -266,4 +266,6 @@ static inline unsigned int
> > arch_get_dma_bitsize(void)
> > =C2=A0
> > =C2=A0void setup_fixmap_mappings(void);
> > =C2=A0
> > +void* early_fdt_map(paddr_t fdt_paddr);
>=20
> Please can you take care to address comments on earlier versions
> before
> submitting a new one?
Sorry, missed that Nit comment where you suggested to switch
space/block and *.

>=20
> > @@ -435,3 +438,55 @@ inline pte_t mfn_to_xen_entry(mfn_t mfn,
> > unsigned int attr)
> > =C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0 return mfn_to_pte(mfn);
> > =C2=A0}
> > +
> > +void * __init early_fdt_map(paddr_t fdt_paddr)
> > +{
> > +=C2=A0=C2=A0=C2=A0 /* We are using 2MB superpage for mapping the FDT *=
/
> > +=C2=A0=C2=A0=C2=A0 paddr_t base_paddr =3D fdt_paddr & XEN_PT_LEVEL_MAP=
_MASK(1);
> > +=C2=A0=C2=A0=C2=A0 paddr_t offset;
> > +=C2=A0=C2=A0=C2=A0 void *fdt_virt;
> > +=C2=A0=C2=A0=C2=A0 uint32_t size;
> > +=C2=A0=C2=A0=C2=A0 int rc;
> > +
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * Check whether the physical FDT address is s=
et and meets the
> > minimum
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * alignment requirement. Since we are relying=
 on
> > MIN_FDT_ALIGN to be at
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * least 8 bytes so that we always access the =
magic and size
> > fields
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * of the FDT header after mapping the first c=
hunk, double
> > check if
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * that is indeed the case.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0 BUILD_BUG_ON(MIN_FDT_ALIGN < 8);
> > +=C2=A0=C2=A0=C2=A0 if ( !fdt_paddr || fdt_paddr % MIN_FDT_ALIGN )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return NULL;
> > +
> > +=C2=A0=C2=A0=C2=A0 /* The FDT is mapped using 2MB superpage */
> > +=C2=A0=C2=A0=C2=A0 BUILD_BUG_ON(BOOT_FDT_VIRT_START % SZ_2M);
>=20
> May I suggest that you use MB(2) instead of SZ_2M (not just here)? I
> think
> I had voiced opposition to the introduction of xen/sizes.h about 10
> years
> back, yet sadly it still landed in the tree. I for one think that our
> KB(),
> MB(), and GB() constructs are superior, and (I hope) free of Misra
> issues
> (unlike SZ_2G).
>=20
> > +=C2=A0=C2=A0=C2=A0 rc =3D map_pages_to_xen(BOOT_FDT_VIRT_START,
> > maddr_to_mfn(base_paddr),
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 SZ_2M >> PAGE_SHIFT,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
> > +=C2=A0=C2=A0=C2=A0 if ( rc )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("Unable to map the de=
vice-tree.\n");
> > +
> > +=C2=A0=C2=A0=C2=A0 offset =3D fdt_paddr % XEN_PT_LEVEL_SIZE(1);
> > +=C2=A0=C2=A0=C2=A0 fdt_virt =3D (void *)BOOT_FDT_VIRT_START + offset;
> > +
> > +=C2=A0=C2=A0=C2=A0 if ( fdt_magic(fdt_virt) !=3D FDT_MAGIC )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return NULL;
> > +
> > +=C2=A0=C2=A0=C2=A0 size =3D fdt_totalsize(fdt_virt);
> > +=C2=A0=C2=A0=C2=A0 if ( size > BOOT_FDT_VIRT_SIZE )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return NULL;
> > +
> > +=C2=A0=C2=A0=C2=A0 if ( (offset + size) > SZ_2M )
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 rc =3D map_pages_to_xen(BOO=
T_FDT_VIRT_START + SZ_2M,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 maddr_to_mfn(base_paddr + SZ_2M),
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 SZ_2M >> PAGE_SHIFT,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( rc )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pan=
ic("Unable to map the device-tree\n");
> > +=C2=A0=C2=A0=C2=A0 }
>=20
> Why this two part mapping? And why are you mapping perhaps much more
> than "size"?
I wasn't able to find if RISC-V has a requirement for alignment of FDT
address so I decided to follow Arm where FDT is required to be placed
on a 8-byte boundary, so FDT can cross a 2MB boundary, so the second
2MB page should be mapped if the FDT is crossing the 2MB boundary.

>=20
> > @@ -48,6 +49,14 @@ void __init noreturn start_xen(unsigned long
> > bootcpu_id,
> > =C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0 setup_fixmap_mappings();
> > =C2=A0
> > +=C2=A0=C2=A0=C2=A0 device_tree_flattened =3D early_fdt_map(dtb_addr);
> > +=C2=A0=C2=A0=C2=A0 if ( device_tree_flattened )
>=20
> Is this condition perhaps inverted?
Yes, you are right. It should be inverted.

Thanks.

~ Oleksii
>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("Invalid device tree =
blob at physical address
> > %#lx.\n"
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 "The DTB must be 8-byte aligned and must not exceed
> > %lld "
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 "bytes in size.\n\n"
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 "Please check your bootloader.\n",
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 dtb_addr, BOOT_FDT_VIRT_SIZE);
> > +
> > =C2=A0=C2=A0=C2=A0=C2=A0 printk("All set up\n");
> > =C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0 for ( ;; )
>=20



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 14:22:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 14:22:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758969.1168498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTMaN-00052T-8S; Mon, 15 Jul 2024 14:21:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758969.1168498; Mon, 15 Jul 2024 14:21: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 1sTMaN-00052M-4m; Mon, 15 Jul 2024 14:21:51 +0000
Received: by outflank-mailman (input) for mailman id 758969;
 Mon, 15 Jul 2024 14:21:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTMaL-00052A-I4; Mon, 15 Jul 2024 14:21:49 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTMaL-0007F2-FM; Mon, 15 Jul 2024 14:21:49 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTMaL-0003iv-0y; Mon, 15 Jul 2024 14:21:49 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTMaL-0006AE-0T; Mon, 15 Jul 2024 14:21:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=o1Q9o5gCQjZQmafO/ZlQfSMtQKUFYZeluxqC8cQuk3Y=; b=C941E4Y9huvmi45mwbhqGPsT88
	DgOJPOSuwyhB5+o6n9ZmVZu0LTon3mG09Zg/t+GK4KqDoCqTxtAe03p5WmfAvXnAsxLUqOj3LR0ku
	dJFVr7RB6j15V1voALhYJRm9YJQ2pI4aMiPW9vCaduZk9L2vMs598p2KqkKei2pfNteI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186803-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186803: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-raw:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-arndale:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-credit2:host-ping-check-xen:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-qcow2:guest-start/debian.repeat:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-rtds:xen-boot:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-localmigrate/x10:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-multivcpu:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=0c3836482481200ead7b416ca80c68a29cfdaabd
X-Osstest-Versions-That:
    linux=4d145e3f830ba2c2745b42bfba5c2f8fcb8d078a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Jul 2024 14:21:49 +0000

flight 186803 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186803/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-raw       8 xen-boot         fail in 186799 pass in 186803
 test-armhf-armhf-xl-arndale   8 xen-boot         fail in 186799 pass in 186803
 test-armhf-armhf-xl-credit2  10 host-ping-check-xen        fail pass in 186799
 test-armhf-armhf-xl-qcow2    17 guest-start/debian.repeat  fail pass in 186799
 test-armhf-armhf-xl-rtds      8 xen-boot                   fail pass in 186799
 test-amd64-amd64-xl-qemut-ws16-amd64 18 guest-localmigrate/x10 fail pass in 186799

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-multivcpu  8 xen-boot           fail in 186799 like 186798
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop  fail in 186799 like 186798
 test-armhf-armhf-xl-credit2 15 migrate-support-check fail in 186799 never pass
 test-armhf-armhf-xl-credit2 16 saverestore-support-check fail in 186799 never pass
 test-armhf-armhf-xl-rtds    15 migrate-support-check fail in 186799 never pass
 test-armhf-armhf-xl-rtds 16 saverestore-support-check fail in 186799 never pass
 test-armhf-armhf-xl-credit1   8 xen-boot                     fail  like 186798
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186798
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186798
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186798
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186798
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186798
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                0c3836482481200ead7b416ca80c68a29cfdaabd
baseline version:
 linux                4d145e3f830ba2c2745b42bfba5c2f8fcb8d078a

Last test of basis   186798  2024-07-14 15:41:38 Z    0 days
Testing same since   186799  2024-07-14 23:13:26 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexandre Chartre <alexandre.chartre@oracle.com>
  Borislav Petkov (AMD) <bp@alien8.de>
  John Stultz <jstultz@google.com>
  Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
  Josh Don <joshdon@google.com>
  Juri Lelli <juri.lelli@redhat.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masahiro Yamada <masahiroy@kernel.org>
  Nathan Chancellor <nathan@kernel.org>
  Peter Zijlstra (Intel) <peterz@infradead.org>
  Wander Lairson Costa <wander@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   4d145e3f830b..0c3836482481  0c3836482481200ead7b416ca80c68a29cfdaabd -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 14:39:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 14:39:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758986.1168510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTMrB-0007XE-MP; Mon, 15 Jul 2024 14:39:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758986.1168510; Mon, 15 Jul 2024 14: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 1sTMrB-0007X7-Jr; Mon, 15 Jul 2024 14:39:13 +0000
Received: by outflank-mailman (input) for mailman id 758986;
 Mon, 15 Jul 2024 14:39: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=kjrg=OP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sTMrA-0007X0-2N
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 14:39:12 +0000
Received: from mail-yb1-xb2a.google.com (mail-yb1-xb2a.google.com
 [2607:f8b0:4864:20::b2a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ff5f6f71-42b7-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 16:39:10 +0200 (CEST)
Received: by mail-yb1-xb2a.google.com with SMTP id
 3f1490d57ef6-e03a0faee1eso4100547276.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 07:39:10 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b76199d5a2sm21625426d6.60.2024.07.15.07.39.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 07: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: ff5f6f71-42b7-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721054350; x=1721659150; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5plw/RgYZD5tUwrOPHG3SlWFYH5w903LaDLE1ClpJXA=;
        b=rIf16sVHgCu+QJbOuJY58gRULByBV8DiULLd8e53maoPnla4FSYYKh7zhR8DivrSOP
         7ngR5HsBA1+rXAbltdTiGrqY2t5fgOKxIB9MT+Sou7yWhjz0HeTMo1kLZ0oYgoFZtV7g
         GOSZmJCy59Y3BjxrtvoRJjEP6lF5wTG0582wY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721054350; x=1721659150;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5plw/RgYZD5tUwrOPHG3SlWFYH5w903LaDLE1ClpJXA=;
        b=gdQg+ZOQMlX9QL7A984OtHYyv3RO0oAGCYjVUTtxDoe9KO28YQpL5ZS5vJHbyPppQ0
         KG3Dm6nu5YmOPHOrGib2sm907pmRkvAgIBfYb84NiE+5EFAIemUVltFOWKwX62FdZbrH
         bgVowt02zR+KesVma3pYzhkPLnTemM0HxhPqipcESxce2bDWeK6L3U5UnyBeetfjoxDg
         SEEEho8YHKSQQei+CrtmIh8SQ+eMhbMHBteBjEhqSppdl2eHxyaQoZjyI4ifIawiDsid
         lRSUThvPKdV6VPN1nSiyDVmjZB1IwsOTU84cuWoMxEFcGnkHmVb19N/sO/cV/CjyrS0Z
         dITg==
X-Gm-Message-State: AOJu0YzFKYugIVWdhxCVqwvllazyo4duxs2yreg2ydxbcWFtKRAUoUf9
	vGcmKR/3WvfRu1w4muw1BZw9KPKnKhRuv37tbPZaQRAjryUZ3752hYyrEJxV4ls=
X-Google-Smtp-Source: AGHT+IHDOVtM6otgZs7jvJKFMw46e9BN51AQFoyjlsNmvUkDavmqmDMFtdklu/afBN6oaYn1FhKh0w==
X-Received: by 2002:a25:ce45:0:b0:e03:4b54:5670 with SMTP id 3f1490d57ef6-e041b079c56mr21015969276.38.1721054349430;
        Mon, 15 Jul 2024 07:39:09 -0700 (PDT)
Message-ID: <ac7ecb53-8fd5-44bb-9318-57acc9303a01@citrix.com>
Date: Mon, 15 Jul 2024 15:39:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 21/12] CI: Refresh and upgrade the Fedora container
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240713181005.3363912-1-andrew.cooper3@citrix.com> <ZpUmnrsLD5s0KaeM@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZpUmnrsLD5s0KaeM@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/07/2024 2:39 pm, Anthony PERARD wrote:
> On Sat, Jul 13, 2024 at 07:10:05PM +0100, Andrew Cooper wrote:
>> Fedora 29 is long out of date.  Move forward 5 years to Fedora 39.
>>
>> Inlcude all the usual improvements.  Rework the container to be non-root, use
>> heredocs for legibility, and switch to the new naming scheme.
> "clang" as been removed, but it's not mention in the commit message.

Oops - I meant to mention that.  We don't do any clang builds with this
container, so I though I'd keep it slimer until we change that.

>  The
> other changes are kind of "the usual improvement" yes, as been done to
> other containers (libaio, nasm, ...).
>
> The patch is missing an update of the "containerize" script.

Ah - I found the hunk in a different patch.  I'll fix.

>
>> diff --git a/automation/build/fedora/39-x86_64.dockerfile b/automation/build/fedora/39-x86_64.dockerfile
>> new file mode 100644
>> index 000000000000..e2048a437581
>> --- /dev/null
>> +++ b/automation/build/fedora/39-x86_64.dockerfile
> ...
>> +
>> +    dnf -y install "${DEPS[@]}"
> You might want to add --setopt=install_weak_deps=False to avoid
> installing "git" for example.

Well, git-core is installed explicitly, but point taken.

> When running the original command by hand, `dnf` want to install those weak deps:
>     Installing weak dependencies:
>      apr-util-bdb
>      apr-util-openssl
>      cryptsetup-libs
>      diffutils
>      git
>      libbpf
>      libxkbcommon
>      mercurial
>      perl-NDBM_File
>      python3-fb-re2
>      python3-pip
>      qrencode-libs
>      subversion
>      systemd-networkd
>      systemd-resolved
> And comparring the list of deps, these extra pkgs are installed because
> of weak deps:
>     apr
>     apr-util
>     dbus
>     dbus-broker
>     dbus-common
>     device-mapper
>     device-mapper-libs
>     git-core-doc
>     kmod-libs
>     libargon2
>     libseccomp
>     libserf
>     perl-Error
>     perl-File-Find
>     perl-Git
>     perl-TermReadKey
>     perl-lib
>     python3-zombie-imp
>     re2
>     subversion-libs
>     systemd
>     systemd-pam
>     utf8proc
>     xkeyboard-config
>
> So, probably only "perl-File-Find" (can be written "perl(File::Find)" I
> think as well) might be needed, but only for docs/ I think, from the
> previous email.
>
> It seems I go from 1.26GB to 1.18GB without those weak deps.

Thanks.  I'll rework.

I have a specific plan for testing docs and it's going to be a dedicated
container and job, as well as things being a bit more -Werror-like.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 14:59:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 14:59:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.758994.1168521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTNAK-0002Uk-CD; Mon, 15 Jul 2024 14:59:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 758994.1168521; Mon, 15 Jul 2024 14:59: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 1sTNAK-0002Ud-90; Mon, 15 Jul 2024 14:59:00 +0000
Received: by outflank-mailman (input) for mailman id 758994;
 Mon, 15 Jul 2024 14:58: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTNAJ-0002UF-2c
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 14:58:59 +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 c2d81827-42ba-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 16:58:57 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4265b7514fcso31675605e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 07:58: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
 d9443c01a7336-1fc0bc451d9sm42165455ad.248.2024.07.15.07.58.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 07:58: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: c2d81827-42ba-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721055537; x=1721660337; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zebVrW7F6yzdvQFEoLslPQPcCyPJFE5wBnVRe/TFQA4=;
        b=DXye3J9nq/V9BsKzXARMQk9xpWWugejH2BE0+G442f19KZyK9qROKbG08oXr9u3NBO
         QimTMM7NwruuANByDX5rgFiDdlZZME2AjE+bmThWJFwQpjw5UfvB49cGkD7m2wjUjeP1
         mJ3h/L/Jd5aJPz0zpBElsXtB4CbmKP1ck21x77fSmjrFfQuhy37L5iJi2je7K3c6Swec
         ESiv2KnkU2pnAB6Gu7jZh9yEpTTrChtg/HWu5RDV+q+amtXUFHM6wfZam7J7nMnJX4aV
         uMB3urwXaajgh8bBPGRFPK6iidWdFO9vurDd0V74qhZKT35TW9LnUbdy2tREpvMnsC/k
         ABGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721055537; x=1721660337;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zebVrW7F6yzdvQFEoLslPQPcCyPJFE5wBnVRe/TFQA4=;
        b=Sb+XyMOK5By/JL82v6QR18kP7Um5K2p8Upp1gvDr525zM/TSNzk8gHS64ooDEZS51/
         ZGJ/S22BPsOZ3RaSJ1I/fydU4Wyf102gYEDbyRyC3ZYNL7t7wYvVBv8Rwi+cPKl4AvTb
         sgxhwlvNWWVRNJ770cg/DU7NKRiJnF2TBcoo4K/EIUQ1+e76s0JCczXt3dgTZDG/QLMW
         kQwiiw27Zwu824RfWMtNxv7xmEJeYp9BobhjzuZqBZVAhol+TCTWDBO2GNKppyU1OBR1
         rXtVFxo1QaJbt/vZ7oNHJsF6MtnL2cR4tmXtWn3KeycqaYBnPH7qzzhZk63p72X5eu5E
         //FA==
X-Forwarded-Encrypted: i=1; AJvYcCXXqZde7KPWVx09KGl6GGPZeWf8HFB2uTPjpFpEc1TLxtNTpmIpV91WxfEILnHPltTD2jkQ2GkF4ijp4PlCRsQC16r7SpdQcSqXEJbxzp4=
X-Gm-Message-State: AOJu0Yw+fDJtr7aJAFpu7DIEavJFbZYTNkR06pw8f+FAfqM1EfcipEs3
	Jw15aCJzQzzuO9CQUJN2tMxgoUnmkFdth1LSE0BBmhSl46gnLzrHuv4Fgf4SZw==
X-Google-Smtp-Source: AGHT+IGXSlJPS3EUQz900EDA/HvcbE2K4nhhHySdp1x8J+SFCcJx6E2Tk5R7elV7gzdBCOrmkNd8rg==
X-Received: by 2002:adf:b60f:0:b0:362:23d5:3928 with SMTP id ffacd0b85a97d-367ff6f2ddfmr8465445f8f.17.1721055536771;
        Mon, 15 Jul 2024 07:58:56 -0700 (PDT)
Message-ID: <945afaf1-8223-4e3e-bf6d-98a6fad66f78@suse.com>
Date: Mon, 15 Jul 2024 16:58:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 8/8] xen/riscv: introduce early_fdt_map()
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <4e4f94817fb3bba5f52336ea0b4491f7bc867d49.1720799926.git.oleksii.kurochko@gmail.com>
 <bc8d2e10-0898-4f5a-b296-1bc7f528bb77@suse.com>
 <ba7c72745052429d84e172cf731849c54445d27a.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ba7c72745052429d84e172cf731849c54445d27a.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.07.2024 15:58, Oleksii wrote:
> On Mon, 2024-07-15 at 10:52 +0200, Jan Beulich wrote:
>> On 12.07.2024 18:22, Oleksii Kurochko wrote:
>>> +    rc = map_pages_to_xen(BOOT_FDT_VIRT_START,
>>> maddr_to_mfn(base_paddr),
>>> +                          SZ_2M >> PAGE_SHIFT,
>>> +                          PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
>>> +    if ( rc )
>>> +        panic("Unable to map the device-tree.\n");
>>> +
>>> +    offset = fdt_paddr % XEN_PT_LEVEL_SIZE(1);
>>> +    fdt_virt = (void *)BOOT_FDT_VIRT_START + offset;
>>> +
>>> +    if ( fdt_magic(fdt_virt) != FDT_MAGIC )
>>> +        return NULL;
>>> +
>>> +    size = fdt_totalsize(fdt_virt);
>>> +    if ( size > BOOT_FDT_VIRT_SIZE )
>>> +        return NULL;
>>> +
>>> +    if ( (offset + size) > SZ_2M )
>>> +    {
>>> +        rc = map_pages_to_xen(BOOT_FDT_VIRT_START + SZ_2M,
>>> +                              maddr_to_mfn(base_paddr + SZ_2M),
>>> +                              SZ_2M >> PAGE_SHIFT,
>>> +                              PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
>>> +        if ( rc )
>>> +            panic("Unable to map the device-tree\n");
>>> +    }
>>
>> Why this two part mapping? And why are you mapping perhaps much more
>> than "size"?
> I wasn't able to find if RISC-V has a requirement for alignment of FDT
> address so I decided to follow Arm where FDT is required to be placed
> on a 8-byte boundary, so FDT can cross a 2MB boundary, so the second
> 2MB page should be mapped if the FDT is crossing the 2MB boundary.

This explains why you may need to map more than 2Mb (which wasn't the
question), but it doesn't explain why you need to do it in two steps.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 15:00:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 15:00:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759005.1168536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTNC3-0003zB-PC; Mon, 15 Jul 2024 15:00:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759005.1168536; Mon, 15 Jul 2024 15:00:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTNC3-0003z4-Kg; Mon, 15 Jul 2024 15:00:47 +0000
Received: by outflank-mailman (input) for mailman id 759005;
 Mon, 15 Jul 2024 15: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=FSyp=OP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTNC2-0003yv-Cw
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 15:00:46 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0289dc1e-42bb-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 17:00:44 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2ee920b0781so44543541fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 08: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
 d2e1a72fcca58-70b7eca7870sm4447329b3a.169.2024.07.15.08.00.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 08: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: 0289dc1e-42bb-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721055643; x=1721660443; 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=it9dFfPQBX1kutgokUk1Wn4ryZjrWu9ao5TRajqa9os=;
        b=XxeKsPBgHvC2p7GtGDEqt99uyjz1OtiyiFhm+fZ35XSGsm4LBrPrOLzkljaYpkY90C
         POpTu+UcMtrfUzDTK/X2ftvfwrxU3aV0gAT6iogrhYNM8oep8NZ25qddYJtHpINKRyI8
         LEkDQT5JyyXKW1AMkyOBF1TLr3O3QmR/wmuTJs0vN62n/7YYIGdJZfJRHfRVC/OzyoKQ
         qlI2cy1JUWhLI4R+UYU3tGfEruTDEQVaLHrbd6UTizGxxWypx5ZXavHP9GEpWfdH0W5Q
         C9Kfz112b/shqnwKm+fawmf9N99j3UukY3PmsJoEEaPhiQ2STcBJRbvTEidT7ikAt+ur
         j/TA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721055643; x=1721660443;
        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=it9dFfPQBX1kutgokUk1Wn4ryZjrWu9ao5TRajqa9os=;
        b=BoTq+lUUmyIB009VaWdpWnYYw0V6Cl6zWW/fqO2CbYOb2KSx1sJLTLjP4qPWycelcL
         693ZlBQB5IM3s4lrwE/Z72Xq6Okqpzj8FqE1Gc/Z50yMJLRlVq8GEyehgDkN6cv8TWCf
         Ws2qVdHZ55jZ4/9+Xy05taLnsurXD6glgBQIRHXIwCP5tymjsKFtAsGqobv67GWwOFSF
         VkjJ/mIMZw/FgQwOTz6+HYoyZTOM10dlfR++kEUL5t0GY2yx6lnBU86YS7IDA814w1Yx
         0gZtshE107Zo4wn2ZUYP9gU7n2gWZmlW/y6vOP84XPGt+qHSgZwVKXIrST3IQGQoL63D
         WfgQ==
X-Forwarded-Encrypted: i=1; AJvYcCWDl5KtSGvLIDCFIHyrqi7DwMdmU0GxCH7ard5UFYzBXQpXIRwMMd+djwsxKI2dapRSZl6H/+D1MKchEPakZeVYpWNdHtfPOPwbzgIKAWY=
X-Gm-Message-State: AOJu0YxthF6VM0oAbk6onnU8/SI43ogYUetRc7Dmuh9d8dUwD/moBeFK
	aA7MMzc2UTfgce341vEUpjHC/9NzRSSMe+bX9E/L7n2zwb0Wf3zqLGViw52jow==
X-Google-Smtp-Source: AGHT+IEYhtmvgSv7dEcvst4DUXl1rB66oyybmW+la1nLEXO1ciXuQmhNa5JByNyF/iOG603NCRtHVw==
X-Received: by 2002:a2e:80d7:0:b0:2ee:87c1:3c94 with SMTP id 38308e7fff4ca-2eef2da504bmr837331fa.40.1721055643493;
        Mon, 15 Jul 2024 08:00:43 -0700 (PDT)
Message-ID: <fa72b23a-2f2e-4c6a-aa3f-920e0ff0a930@suse.com>
Date: Mon, 15 Jul 2024 17:00:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 8/8] xen/riscv: introduce early_fdt_map()
From: Jan Beulich <jbeulich@suse.com>
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <4e4f94817fb3bba5f52336ea0b4491f7bc867d49.1720799926.git.oleksii.kurochko@gmail.com>
 <bc8d2e10-0898-4f5a-b296-1bc7f528bb77@suse.com>
 <ba7c72745052429d84e172cf731849c54445d27a.camel@gmail.com>
 <945afaf1-8223-4e3e-bf6d-98a6fad66f78@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: <945afaf1-8223-4e3e-bf6d-98a6fad66f78@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.07.2024 16:58, Jan Beulich wrote:
> On 15.07.2024 15:58, Oleksii wrote:
>> On Mon, 2024-07-15 at 10:52 +0200, Jan Beulich wrote:
>>> On 12.07.2024 18:22, Oleksii Kurochko wrote:
>>>> +    rc = map_pages_to_xen(BOOT_FDT_VIRT_START,
>>>> maddr_to_mfn(base_paddr),
>>>> +                          SZ_2M >> PAGE_SHIFT,
>>>> +                          PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
>>>> +    if ( rc )
>>>> +        panic("Unable to map the device-tree.\n");
>>>> +
>>>> +    offset = fdt_paddr % XEN_PT_LEVEL_SIZE(1);
>>>> +    fdt_virt = (void *)BOOT_FDT_VIRT_START + offset;
>>>> +
>>>> +    if ( fdt_magic(fdt_virt) != FDT_MAGIC )
>>>> +        return NULL;
>>>> +
>>>> +    size = fdt_totalsize(fdt_virt);
>>>> +    if ( size > BOOT_FDT_VIRT_SIZE )
>>>> +        return NULL;
>>>> +
>>>> +    if ( (offset + size) > SZ_2M )
>>>> +    {
>>>> +        rc = map_pages_to_xen(BOOT_FDT_VIRT_START + SZ_2M,
>>>> +                              maddr_to_mfn(base_paddr + SZ_2M),
>>>> +                              SZ_2M >> PAGE_SHIFT,
>>>> +                              PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
>>>> +        if ( rc )
>>>> +            panic("Unable to map the device-tree\n");
>>>> +    }
>>>
>>> Why this two part mapping? And why are you mapping perhaps much more
>>> than "size"?
>> I wasn't able to find if RISC-V has a requirement for alignment of FDT
>> address so I decided to follow Arm where FDT is required to be placed
>> on a 8-byte boundary, so FDT can cross a 2MB boundary, so the second
>> 2MB page should be mapped if the FDT is crossing the 2MB boundary.
> 
> This explains why you may need to map more than 2Mb (which wasn't the
> question), but it doesn't explain why you need to do it in two steps.

Oh, wait - you know the full size only after having mapped the initial
part. I'm sorry, I didn't spot that early enough.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 15:16:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 15:16:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759015.1168548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTNRX-0006UD-1Z; Mon, 15 Jul 2024 15:16:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759015.1168548; Mon, 15 Jul 2024 15: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 1sTNRW-0006U6-UZ; Mon, 15 Jul 2024 15:16:46 +0000
Received: by outflank-mailman (input) for mailman id 759015;
 Mon, 15 Jul 2024 15:16:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kjrg=OP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sTNRV-0006U0-OW
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 15:16:45 +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 3ec658d9-42bd-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 17:16:44 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a77c080b521so482250166b.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 08:16:44 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc7ff893sm220987166b.147.2024.07.15.08.16.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Jul 2024 08:16: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: 3ec658d9-42bd-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721056603; x=1721661403; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yVJPldX7VXCeLiRYSK0tTv3jEja/PrajLyWOuBIo7/U=;
        b=lTRRjvEVAV6LRR6iAK6bOSSUBqD/mm42/n4dcyy5w1oW1uc23Dqhj9NOTUEl3dH+mN
         Vvhcm7G0eEZi6/9qQcgp0NhmSC3E7O5lBbsZjHp2VEiui5TE795gVB9PmpeGXyv5AsVh
         s7XOMqDwMpdI36gLi9bUkbnMI3+0eJGVnJocA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721056603; x=1721661403;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=yVJPldX7VXCeLiRYSK0tTv3jEja/PrajLyWOuBIo7/U=;
        b=W4la0jE8JdbbifyPXPJSN83Sj6vpdjERejJolSnjCFnR5HkPuJdsiFfP+gkkemP5m3
         pfeD8Cwafd2zcRLDiZ1vnAIiMJcnVtZ+sUaj+jmCX+pmkfO2vtXtUgaTvU+5jw65BESe
         EUnrKsNMXmyhFK9eIff5a5kd6hUfwt1NBq9dbaJQ3AB4xZAvuZvgotMteiGugV42Pfgb
         F0ge6nFuz9+s3RBQ0lyRqkenwr4qO7Db+29Pt00V3N1AUWotNIq+FusGWwVb4TKmgBFn
         MD4QXWpNmOhiX0JNMsOcWCXNBeeZTf4nZx5X7M7ce/OcbIpo3vK7TTDHxV+6wnsDcTUf
         7prQ==
X-Gm-Message-State: AOJu0YyEqaZ6WU+1OQl+qOT6y7orGHD8G8PmwOZ6it2m2pYdQgeLuqS8
	DtQWoXbredDT7qV0hKRmSsKZVVvrsaBdHXXkjN0Q1INetvwY+TfjvWFGCuKIFc4WdrR7rwChVrW
	h
X-Google-Smtp-Source: AGHT+IGJE15djMpAePK2JIhLEDuf5nCCmMtPHad2moFXfqRXOC3yEnPgtKZMcfKsAneved+tP28SnQ==
X-Received: by 2002:a17:906:1786:b0:a6f:51d8:1963 with SMTP id a640c23a62f3a-a79e6a5c54emr5558166b.43.1721056603111;
        Mon, 15 Jul 2024 08:16:43 -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>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 22/12] tools/examples: Remove more obsolete content
Date: Mon, 15 Jul 2024 16:16:40 +0100
Message-Id: <20240715151640.3374005-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

xeninfo.pl was introduced in commit 1b0a8bb57e3e ("Added xeninfo.pl, a script
for collecting statistics from Xen hosts using the Xen-API") and has been
touched exactly twice since to remove hardcoded IP addresses and paths.

The configuration files in vnc/* date from when we had a vendered version of
Qemu living in the tree.

These have never (AFAICT) been wired into the `make install` rule.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 tools/examples/vnc/Xservers |   5 -
 tools/examples/vnc/Xvnc-xen |  53 -------
 tools/examples/xeninfo.pl   | 284 ------------------------------------
 3 files changed, 342 deletions(-)
 delete mode 100644 tools/examples/vnc/Xservers
 delete mode 100755 tools/examples/vnc/Xvnc-xen
 delete mode 100644 tools/examples/xeninfo.pl

diff --git a/tools/examples/vnc/Xservers b/tools/examples/vnc/Xservers
deleted file mode 100644
index adc5748be6ba..000000000000
--- a/tools/examples/vnc/Xservers
+++ /dev/null
@@ -1,5 +0,0 @@
-# Configuration lines to go in /etc/X11/xdm/Xservers to
-# start Xvnc and connect back to a vncviewer in domain-0.
-# See 'man xdm' under 'LOCAL SERVER SPECIFICATION' for format details.
-
-:1 Xvnc local /usr/X11R6/bin/Xvnc-xen :1
\ No newline at end of file
diff --git a/tools/examples/vnc/Xvnc-xen b/tools/examples/vnc/Xvnc-xen
deleted file mode 100755
index 15058e622d7f..000000000000
--- a/tools/examples/vnc/Xvnc-xen
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-#============================================================================
-# This script should be installed in /usr/X11R6/bin/Xvnc-xen.
-#============================================================================
-#
-# Start Xvnc and use vncconnect to connect back to a vncviewer listening in
-# domain 0. The host and port to connect to are given by
-#
-#    VNC_VIEWER=<host>:<port>
-#
-# in the kernel command line (/proc/cmdline). 
-#
-# The '--vnc' option to 'xm create' will start a vncviewer and
-# pass its address in VNC_VIEWER for this script to find.
-#
-# Usage:
-#        Xvnc-xen [args]
-#
-# Any arguments are passed to Xvnc.
-#
-#============================================================================
-
-# Prefix for messages.
-M="[$(basename $0)]"
-
-# Usage: vnc_addr
-# Print <host>:<port> for the vncviewer given in
-# the kernel command line.
-vnc_addr () {
-    sed -n -e "s/.*VNC_VIEWER=\([^ ]*\).*/\1/p" /proc/cmdline
-}
-
-# Usage: vnc_connect
-# If a vncviewer address was given on the kernel command line,
-# run vncconnect for it.
-vnc_connect () {
-    local addr=$(vnc_addr)
-
-    if [ -n "${addr}" ] ; then
-        echo "$M Connecting to ${addr}."
-        vncconnect ${addr}
-    else
-        echo "$M No VNC_VIEWER in kernel command line."
-        echo "$M Create the domain with 'xm create --vnc <display>'."
-        return 1
-    fi
-}
-
-# Start the vnc server.
-Xvnc "$@" >/dev/null 2>&1 &
-
-# Connect back to the viewer in domain-0.
-vnc_connect
diff --git a/tools/examples/xeninfo.pl b/tools/examples/xeninfo.pl
deleted file mode 100644
index 95a15d9595c0..000000000000
--- a/tools/examples/xeninfo.pl
+++ /dev/null
@@ -1,284 +0,0 @@
-#!/usr/bin/perl -w
-
-#############################################################################################################
-#                                                                                                           #
-#  Developed by Ingard Mevåg @ Oslo University College, spring 2007                                         #
-#  ingard [at] mevaag  [dot] no                                                                             #
-#                                                                                                           #
-#  This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.      #
-#  To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter #
-#  to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.                #
-#                                                                                                           #
-#############################################################################################################
-
-use strict;
-# http://search.cpan.org/~rjray/RPC-XML-0.59/lib/RPC/XML/Client.pm
-require RPC::XML;
-require RPC::XML::Client;
-
-# for debug purposes
-#use Data::Dumper;
-
-##### CONFIG ######
-
-my %xenhosts = ("192.0.2.10" => {"port" => "9363"}, 
-					 "192.0.2.11" => {"port" => "9363"}, 
-					 "192.0.2.12" => {"port" => "9363"}, 
-					 "192.0.2.13" => {"port" => "9363"});
-
-##### CONFIG END ###
-
-##### STATIC VARS #####
-my %host_info;
-
-#######################
-sub apiconnect
-{
-	foreach my $xenhost (keys %xenhosts)
-	{
-		my $xen = RPC::XML::Client->new("http://$xenhost:$xenhosts{$xenhost}{'port'}");
-		my $session = $xen->simple_request("session.login_with_password", "user","");
-		if (! $session)
-		{
-			print "Can't connect to $xenhost :(\n";
-			$xenhosts{$xenhost} = {'xen' => $xen, 'session' => ""};
-		}
-		else
-		{
-			$xenhosts{$xenhost} = {'xen' => $xen, 'session' => $session->{'Value'}};
-			print "Connected successfully to $xenhost..\n";
-		}
-	}
-}
-
-sub validate_response
-{
-	my ($result_ref) = @_;
-	if ($result_ref->{'Status'} eq "Success")
-	{
-		return $result_ref->{'Value'};
-	}
-	else
-	{
-		# status = Failure !
-#		die ("xmlrpc failed! ErrorDescription: $result_ref->{'ErrorDescription'}[1] -> $result_ref->{'ErrorDescription'}[0]");
-		print "xmlrpc failed! ErrorDescription: $result_ref->{'ErrorDescription'}[1] -> $result_ref->{'ErrorDescription'}[0]\n";
-	}
-}
-
-sub get_host_cpu_utilisation
-{
-	my ($xen, $session, $host_name, $host_ref) = @_;
-	my $host_cpu_ref = validate_response($xen->simple_request("host.get_host_CPUs", $session, $host_ref));
-	foreach (@$host_cpu_ref)
-	{
-		my $host_cpu_utilisation = validate_response($xen->simple_request("host_cpu.get_utilisation", $session, $_));
-		$host_info{$host_name}{'cpus'}{$_} = $host_cpu_utilisation;
-		print "     CPUiNFO: $host_cpu_utilisation\n";
-	}
-}
-
-sub get_host_pif_utilisation
-{
-	my ($xen, $session, $host_name, $host_ref) = @_;
-
-# This method isnt implemented yet it seems so using PIF.get_all for now.. 
-# This will break when xen is made cluster aware..
-#	my $host_pif_ref = validate_response($xen->simple_request("host.get_PIFs", $session, $host_ref)); 
-	my $host_pif_ref = validate_response($xen->simple_request("PIF.get_all", $session));
-	foreach (@$host_pif_ref)
-	{
-		my $host_pif_device = validate_response($xen->simple_request("PIF.get_device", $session, $_));
-		my $host_pif_metrics_ref = validate_response($xen->simple_request("PIF.get_metrics", $session, $_));
-
-# Whats the best solution performancewise?
-# Collecting stats from get_records, or pulling individually?
-
-#		my $host_pif_record = validate_response($xen->simple_request("PIF_metrics.get_record", $session, $host_pif_metrics_ref));
-#		my $host_pif_io_read = $host_pif_record->{'io_read_kbs'};
-#		my $host_pif_io_write = $host_pif_record->{'io_write_kbs'};
-		my $host_pif_io_read = validate_response($xen->simple_request("PIF_metrics.get_io_read_kbs", $session, $host_pif_metrics_ref));
-		my $host_pif_io_write = validate_response($xen->simple_request("PIF_metrics.get_io_write_kbs", $session, $host_pif_metrics_ref));
-
-		$host_info{$host_name}{'pifs'}{$host_pif_device} = {'read' => $host_pif_io_read, 'write' => $host_pif_io_write};
-		print "     PiFiNFO: $host_pif_device READ: $host_pif_io_read - WRITE: $host_pif_io_write\n";
-#		$host_info{$host_name}{'pifs'}{$host_pif_device}{'read'} = $host_pif_io_read;
-#		$host_info{$host_name}{'pifs'}{$host_pif_device}{'write'} = $host_pif_io_write;
-	}
-}
-
-sub get_host_mem_utilisation
-{
-	my ($xen, $session, $host_name, $host_ref) = @_;
-	my $host_metrics_ref = validate_response($xen->simple_request("host.get_metrics", $session, $host_ref)); 
-	my $host_mem_total =  validate_response($xen->simple_request("host_metrics.get_memory_total", $session, $host_metrics_ref)) / 1024 / 1024;
-	my $host_mem_free =  validate_response($xen->simple_request("host_metrics.get_memory_free", $session, $host_metrics_ref)) / 1024 / 1024;
-	$host_info{$host_name}{'memory'} = {'total' => $host_mem_total, 'free' => $host_mem_free};
-	print "     MEMiNFO: Total: $host_mem_total MB - Free: $host_mem_free MB\n";
-}
-
-sub get_vm_mem_info
-{
-	my ($xen, $session, $host_name, $vm_ref, $vm_name_label) = @_;
-	my $vm_mem_stat_max = validate_response($xen->simple_request("VM.get_memory_static_max",$session,$vm_ref));
-	my $vm_mem_stat_min = validate_response($xen->simple_request("VM.get_memory_static_min",$session,$vm_ref));
-	my $vm_mem_dyn_max = validate_response($xen->simple_request("VM.get_memory_dynamic_max",$session,$vm_ref));
-	my $vm_mem_dyn_min = validate_response($xen->simple_request("VM.get_memory_dynamic_min",$session,$vm_ref));
-
-	# not implemented yet.. We'll do this at the same time as getting cpu utilisation
-	# in the get_vm_metrics sub instead..
-	#my $vm_metrics_ref = validate_response($xen->simple_request("VM.get_metrics",$session,$vm_ref));
-	#my $vm_mem_actual = validate_response($xen->simple_request("VM_metrics.get_memory_actual",$session,$vm_metrics_ref));
-
-	$host_info{$host_name}{'vms'}{$vm_name_label}{'memory'} = {'static_max' => $vm_mem_stat_max,
-								  'static_min' => $vm_mem_stat_min,
-								  'dynamic_max' => $vm_mem_dyn_max,
-								  'dynamic_min' => $vm_mem_dyn_min};
-
-	# xm list uses the dynamic min var as far as i can tell.. or?
-	# Lets print the memactual info instead of this... I'll do that in the get_vm_metrics sub instead..
-	# print "  |- MEMiNFO: Dynamic Min: $vm_mem_dyn_min - Actually in use: $vm_mem_actual\n";
-}
-
-sub get_vm_metrics
-{
-	my ($xen, $session, $host_name, $vm_ref, $vm_name_label) = @_;
-	my $vm_metrics_ref = validate_response($xen->simple_request("VM.get_metrics",$session,$vm_ref));
-	
-	my %vm_vcpu_utilisation = %{validate_response($xen->simple_request("VM_metrics.get_vcpus_utilisation",$session,$vm_metrics_ref))};
-	for my $tempcpu (keys %vm_vcpu_utilisation)
-	{
-		print "  |- CPUiNFO: $tempcpu - $vm_vcpu_utilisation{$tempcpu}\n";
-		$host_info{$host_name}{'vms'}{$vm_name_label}{'vcpus'} = {$tempcpu => $vm_vcpu_utilisation{$tempcpu}};
-	}
-	my $vm_mem_actual = validate_response($xen->simple_request("VM_metrics.get_memory_actual",$session,$vm_metrics_ref)) / 1024 / 1024;
-	$host_info{$host_name}{'vms'}{$vm_name_label}{'memory'}{'actual'} = "$vm_mem_actual";
-	print "  |- MEMiNFO: Actually in use: $vm_mem_actual MB\n";
-}
-
-sub get_vm_vif_utilisation
-{
-	my ($xen, $session, $host_name, $vm_ref, $vm_name_label) = @_;
-	my $vm_vifs = validate_response($xen->simple_request("VM.get_VIFs",$session,$vm_ref));
-	foreach (@$vm_vifs)
-	{
-		my $vif_device = validate_response($xen->simple_request("VIF.get_device",$session,$_));
-		my $vif_io_read = validate_response($xen->simple_request("VIF_metrics.get_io_read_kbs", $session, $_));
-		my $vif_io_write = validate_response($xen->simple_request("VIF_metrics.get_io_write_kbs", $session, $_));
-		$host_info{$host_name}{'vms'}{$vm_name_label}{'vifs'}{$vif_device} = {'read' => $vif_io_read, 'write' => $vif_io_write};
-		print "  |- ViFiNFO: $vif_device READ: $vif_io_read - WRITE: $vif_io_write\n";
-	}
-}
-
-sub get_vm_vbd_utilisation
-{
-	my ($xen, $session, $host_name, $vm_ref, $vm_name_label) = @_;
-	my $vm_vbds = validate_response($xen->simple_request("VM.get_VBDs",$session,$vm_ref));
-	foreach (@$vm_vbds)
-	{
-		my $vbd_device = validate_response($xen->simple_request("VBD.get_device",$session,$_));
-		my $vbd_io_read = validate_response($xen->simple_request("VBD_metrics.get_io_read_kbs", $session, $_));
-		my $vbd_io_write = validate_response($xen->simple_request("VBD_metrics.get_io_write_kbs", $session, $_));
-		$host_info{$host_name}{'vms'}{$vm_name_label}{'vbds'}{$vbd_device} = {'read' => $vbd_io_read, 'write' => $vbd_io_write};
-		print "  |- VBDiNFO: $vbd_device READ: $vbd_io_read - WRITE: $vbd_io_write\n";
-	}
-}
-
-
-sub get_vm_type
-{
-	my ($xen, $session, $host_name, $vm_ref, $vm_name_label) = @_;
-	# not running response through validate_response() here to stop it from crashing..
-	#
-	# api docs says if this (following) field is set, its a HVM domain.
-	my $vm_bootloader_results = $xen->simple_request("VM.get_HVM_boot_policy",$session,$vm_ref);
-	if ("$vm_bootloader_results->{'Status'}" eq "Success")
-	{
-		if ("$vm_bootloader_results->{'Value'}" ne "")
-		{
-			$host_info{$host_name}{'vms'}{$vm_name_label}{'type'} = "HVM";
-		}
-		else
-		{
-			$host_info{$host_name}{'vms'}{$vm_name_label}{'type'} = "PV";
-		}
-	}
-	else
-	{
-		# However, xen 3.0.4 doest support this part of the api, so afaik I can get the difference with: 
-		my $vm_pv_kernel_results = $xen->simple_request("VM.get_PV_kernel",$session,$vm_ref);
-		# which is something like:
-		# 'PV_kernel': '/boot/vmlinuz-2.6.18-xen',
-		# or
-		# 'PV_kernel': 'hvmloader',
-		if ("$vm_pv_kernel_results->{'Value'}" =~ m/hvm/i)
-		{
-			$host_info{$host_name}{'vms'}{$vm_name_label}{'type'} = "HVM";
-		}
-		else
-		{
-			$host_info{$host_name}{'vms'}{$vm_name_label}{'type'} = "PV";
-		}
-	}
-}
-
-sub get_complete_info
-{	
-	my %all_vms;
-	foreach my $xenhost (sort keys %xenhosts)
-	{
-		next unless $xenhosts{$xenhost}{'session'};
-		my $xen = $xenhosts{$xenhost}{'xen'};
-		my $session = $xenhosts{$xenhost}{'session'};
-		print "_______________________\n## $xenhost ##\n-----------------------\n";
-	
-		my $host_ref = validate_response($xen->simple_request("session.get_this_host", $session));
-		
-		my $host_name = validate_response($xen->simple_request("host.get_name_label", $session, $host_ref));
-		$xenhosts{$xenhost}{'hostname'} = $host_name;
-		$host_info{$host_name}{'ip'} = $xenhost;
-		
-		get_host_cpu_utilisation($xen, $session, $host_name, $host_ref);
-
-		get_host_mem_utilisation($xen, $session, $host_name, $host_ref);
-	
-		get_host_pif_utilisation($xen, $session, $host_name, $host_ref);
-	
-	
-		my $all_vm_refs = validate_response($xen->simple_request("host.get_resident_VMs",$session, $host_ref));
-		
-		foreach my $vm_ref (@$all_vm_refs)
-		{
-			my $vm_name_label = validate_response($xen->simple_request("VM.get_name_label",$session,$vm_ref));
-			get_vm_type($xen,$session,$host_name,$vm_ref,$vm_name_label);
-			
-			my $vm_id = validate_response($xen->simple_request("VM.get_domid",$session,$vm_ref));
-
-			print "vm: $vm_id\t$vm_name_label\ttype: $host_info{$host_name}{'vms'}->{$vm_name_label}{'type'}\n";
-			
-			# vm_metrics includes both mem_actual & cpu utilisation
-			# So we'll add all stats found in that class in one go..
-			get_vm_metrics($xen,$session,$host_name,$vm_ref,$vm_name_label);
-#			get_vm_cpu_utilisation($xen,$session,$host_name,$vm_ref,$vm_name_label);
-
-			# all other mem stats are added seperately..
-			# This might not be needed at all as xen doesnt have functionality to
-			# resize mem for a VM atm (afaik)
-			get_vm_mem_info($xen,$session,$host_name,$vm_ref,$vm_name_label);
-	
-			get_vm_vif_utilisation($xen,$session,$host_name,$vm_ref,$vm_name_label);
-			
-			get_vm_vbd_utilisation($xen,$session,$host_name,$vm_ref,$vm_name_label);
-			
-			$all_vms{$vm_name_label} = "" unless ("$vm_name_label" eq "Domain-0");
-		}
-		print "\n";
-	}
-	# Debug: Uncomment to see the nested datastructure..
-	#print Dumper(%host_info);
-}
-
-
-
-apiconnect();
-get_complete_info();
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 15:36:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 15:36:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759025.1168558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTNkk-0001L3-MR; Mon, 15 Jul 2024 15:36:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759025.1168558; Mon, 15 Jul 2024 15:36:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTNkk-0001Kw-JX; Mon, 15 Jul 2024 15:36:38 +0000
Received: by outflank-mailman (input) for mailman id 759025;
 Mon, 15 Jul 2024 15:36: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=IPZm=OP=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sTNki-0001Kq-Ri
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 15:36:36 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0481b98b-42c0-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 17:36:34 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-52ea34ffcdaso4748698e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 08:36:34 -0700 (PDT)
Received: from EMEAENGAAD91498.citrite.net ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc5b48dbsm219302866b.57.2024.07.15.08.36.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Jul 2024 08:36: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: 0481b98b-42c0-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721057794; x=1721662594; 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=zDHEY4Ssox3Ng1oWJa+kdpIzbH8xHGv/gTRq2AfViYw=;
        b=VpzloObVelikYb8uspAItDXIKMBSQ36NRN1lKDdoigcMOHL4wiik6Hz3pQ//vvfD5U
         VNEGf+K+GAoiL9ZSoDn0VorPyJBJcA+p6QAI1oOZBjLVR+/Cc3d0g5WsCJQ1vTRjt/rl
         FQfDFfeJjVjtHsaE7d72yhe3mJDMEt0YQDRhM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721057794; x=1721662594;
        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=zDHEY4Ssox3Ng1oWJa+kdpIzbH8xHGv/gTRq2AfViYw=;
        b=tZIzYZekF9j2R8rMERYTJ+JN9wN5qTSU+H3wVYNV3U2bYuMh5Vt4W2PNKtZbF2OzHN
         cGAw+xVEaozCP+EHCS0cnTqKc/3veR4NAXCqCH0v/TPOG0DwBIQ/tx7eXjrfNP9LsY7N
         xGkX4eLxTIHyEjVZgqdAVeeW/AuubbuoLHGZbUH/gbTmkebGtkeU1c0s+RGEmSvou2vS
         k8dRDQHilXDukMvhiaxVVxsRrYLanouJtBVtwT+mpA2uEBdgh+tibX1bKW+PPTuORLLY
         74JV23Q9jegJNvqjsrDBllfh7a+7KrQbq4w2/eaOkNwPVmyAL1Zuh+F0xqdXqUVFm/hK
         THZQ==
X-Gm-Message-State: AOJu0YzWYmafpUlOfYeym4B0Smrf65l50JQnrGEjVNca8xoIYyMZ0zpW
	6Sz9QBE3kKR+1XfoQpwe8r9IX40HcxYdGAPnBeGeKqBUj6+sUQatwb4AhWZJAOPd7d+UTWt4B4y
	c
X-Google-Smtp-Source: AGHT+IFIA68+axr3TcRAQwEjIdJS4KWJKxUTsvpjv6yPE39dRuFOF4FShpUkKEf8d/1qXqdgakh7Lg==
X-Received: by 2002:ac2:4183:0:b0:52e:969c:db83 with SMTP id 2adb3069b0e04-52eb999538cmr10472919e87.17.1721057793901;
        Mon, 15 Jul 2024 08:36:33 -0700 (PDT)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: [XEN PATCH v3 RESEND] tools/lsevtchn: Use errno macro to handle hypercall error cases
Date: Mon, 15 Jul 2024 16:36:03 +0100
Message-Id: <8bde5ee38597a86334b86822de920802483a7179.1715100071.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently, lsevtchn aborts its event channel enumeration when it hits
its first hypercall error, namely:
* When an event channel doesn't exist at the specified port
* When the event channel is owned by Xen

lsevtchn does not distinguish between different hypercall errors, which
results in lsevtchn missing potential relevant event channels with
higher port numbers.

Use the errno macro to distinguish between hypercall errors, and
continue event channel enumeration if the hypercall error is not
critical to enumeration.

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
 tools/xcutils/lsevtchn.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/tools/xcutils/lsevtchn.c b/tools/xcutils/lsevtchn.c
index d1710613ddc5..e4b3f88fe4ec 100644
--- a/tools/xcutils/lsevtchn.c
+++ b/tools/xcutils/lsevtchn.c
@@ -3,6 +3,7 @@
 #include <stdint.h>
 #include <string.h>
 #include <stdio.h>
+#include <errno.h>
 
 #include <xenctrl.h>
 
@@ -24,7 +25,18 @@ int main(int argc, char **argv)
         status.port = port;
         rc = xc_evtchn_status(xch, &status);
         if ( rc < 0 )
-            break;
+        {
+            if ( errno == ESRCH )
+            {
+                fprintf(stderr, "Domain ID '%d' does not correspond to valid domain.\n", domid);
+                break;
+            }
+
+            if ( errno == EINVAL )
+                break;
+
+            continue;
+        }
 
         if ( status.status == EVTCHNSTAT_closed )
             continue;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 15:45:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 15:45:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759031.1168568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTNtF-0003Hy-Fh; Mon, 15 Jul 2024 15:45:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759031.1168568; Mon, 15 Jul 2024 15: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 1sTNtF-0003Hr-CF; Mon, 15 Jul 2024 15:45:25 +0000
Received: by outflank-mailman (input) for mailman id 759031;
 Mon, 15 Jul 2024 15:45:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTNtD-0003Hh-V1; Mon, 15 Jul 2024 15:45:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTNtD-0000NM-Ss; Mon, 15 Jul 2024 15:45:23 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTNtD-0005rw-Ee; Mon, 15 Jul 2024 15:45:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTNtD-00088R-E2; Mon, 15 Jul 2024 15:45: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=L21Fkud9AvooM/ZfnMTZhHB7m5s0fqJ4lN8pWvs1iGg=; b=K/tIcymxt1dN4dDyx9basl6Ub0
	GaJzQn1H6HTMhLnHStzZVb9OB4guIB9QUhj+ERFc1pxrtpVvFwhMallIxQ33c2efbsXcRd8B3d2hS
	9y6y//6/KHDTtX3a2E9tETP/lYcuCriRM4gqqnt/poFiof1UAmMPjWzjfei4Ej4uknWs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186808-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186808: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=5366def8d01d141163a727aeaef61318180deb98
X-Osstest-Versions-That:
    ovmf=8bb9145ad1a5db068f63e3e19b4a532226351b2b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Jul 2024 15:45:23 +0000

flight 186808 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186808/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 5366def8d01d141163a727aeaef61318180deb98
baseline version:
 ovmf                 8bb9145ad1a5db068f63e3e19b4a532226351b2b

Last test of basis   186805  2024-07-15 08:41:18 Z    0 days
Testing same since   186808  2024-07-15 13:43:04 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Leif Lindholm <quic_llindhol@quicinc.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   8bb9145ad1..5366def8d0  5366def8d01d141163a727aeaef61318180deb98 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 15:51:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 15:51:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759042.1168577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTNyc-0005Jm-4T; Mon, 15 Jul 2024 15:50:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759042.1168577; Mon, 15 Jul 2024 15: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 1sTNyc-0005Jf-1v; Mon, 15 Jul 2024 15:50:58 +0000
Received: by outflank-mailman (input) for mailman id 759042;
 Mon, 15 Jul 2024 15:50: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=kjrg=OP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sTNyb-0005JZ-JI
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 15:50:57 +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 0579e383-42c2-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 17:50:55 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58c2e5e8649so8174215a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 08:50:55 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59b26996c70sm3500774a12.68.2024.07.15.08.50.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Jul 2024 08:50: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: 0579e383-42c2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721058654; x=1721663454; 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=Wlcacq3D7/wDV3JkjIizADpuCLlI8wfhHrBspBZfTwo=;
        b=BWdz3Tlhesy15siLixP6I5PoHF+IKoxz/BSfcofCc9jbllh+DgIvFhebFcjiFzE6oq
         erGjP4/2kQnY0BNHkRyecn6z0Dv2hDHdwqR+HA40fC2TIDCf7z26HSbGyXLQKWNlGiqj
         FVU18HZeCISoWIa3Xb8GVTGCdYDgiiyP9YA4g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721058654; x=1721663454;
        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=Wlcacq3D7/wDV3JkjIizADpuCLlI8wfhHrBspBZfTwo=;
        b=wR0DALAICT8f5Xh6RKeybFUa1yPL37WyX3oZQoLKG5ePXYWyuXfsSr5FVHsJirBIJC
         WDDeXe6MAzPHChK8nO9QoKu49NsUyW5RpLiv03FBguebXVBIzSoKPBJM2tjRJhuSQLcK
         HYkxm0Hmgawuo3KfAIFEPOI96WIkVNoS91+vQILCV8RXNRa0Jc+PNLQ63HHL66QR7+Ms
         wX6a2cKfoytYIvw2ss2x9mv1+ZgdXJonNY5vMZNKh/qm6QhKYmp3bqnL3k2HUXm+efvu
         m0Ln7lY6hRfYsCBTBqWCzzgK2j5KBvOqfKrnGzI4OvkSZddIbIGmDjtqCuOJuHILSyyV
         mzuA==
X-Gm-Message-State: AOJu0Yw0bUx2ORX0UKKdAkRHGxJ59kh2P9OmRyLN780NRFHnVr4EHe6z
	Y1BBpacEeUbvbv5GSLYhAyZixxHtyc+6kdOHUC/XO/dkroihamJt6zvDWBeAa62zP7EMeDGsBE1
	u
X-Google-Smtp-Source: AGHT+IGWbkgRfzLrFTVpGixPDbkJVg3eIDBmsSZBeC831COv2XaQG4tAkCHxIorB4srxbPZHqbdhrw==
X-Received: by 2002:a05:6402:3592:b0:58c:36e:51bf with SMTP id 4fb4d7f45d1cf-59e96c865c9mr211118a12.3.1721058653857;
        Mon, 15 Jul 2024 08:50: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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION inconsistency for release candidates
Date: Mon, 15 Jul 2024 16:50:51 +0100
Message-Id: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

An earlier part of the checklist states:

  * change xen-unstable README. The banner (generated using figlet) should say:
      - "Xen 4.5" in releases and on stable branches
      - "Xen 4.5-unstable" on unstable
      - "Xen 4.5-rc" for release candidate

Update the notes about XEN_EXTRAVERSION to match.

Fixes: 15241c92677a ("process/release-technician-checklist: Explain how the banner in README is generated")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 docs/process/release-technician-checklist.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/process/release-technician-checklist.txt b/docs/process/release-technician-checklist.txt
index 4b061bf5f20b..e6db02b87585 100644
--- a/docs/process/release-technician-checklist.txt
+++ b/docs/process/release-technician-checklist.txt
@@ -67,7 +67,7 @@ t=RELEASE-$r
 # if main version number has changed (eg 4.7 -> 4.8) rerun ./autogen.sh
 * rerun ./autogen.sh to update version number in configure
 #    - XEN_EXTRAVERSION should be as follows
-#      `.0-rc$(XEN_VENDORVERSION)'       during freeze, first rc onwards (including staging, before branching)
+#      `-rc$(XEN_VENDORVERSION)'         during freeze, first rc onwards (including staging, before branching)
 #      `-unstable$(XEN_VENDORVERSION)'   unstable aka unfrozen staging (or unstable branch, after branching)
 #      `.0$(XEN_VENDORVERSION)'          actual release of Xen X.Y.0 (aka first actual release of Xen X.Y)
 #      `.Z$(XEN_VENDORVERSION)'          actual release of Xen X.Y.Z (stable point realase)

base-commit: 1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:02:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:02:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759048.1168587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTO9B-0007wp-46; Mon, 15 Jul 2024 16:01:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759048.1168587; Mon, 15 Jul 2024 16:01: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 1sTO9B-0007wi-1e; Mon, 15 Jul 2024 16:01:53 +0000
Received: by outflank-mailman (input) for mailman id 759048;
 Mon, 15 Jul 2024 16:01: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=qaAY=OP=kernel.org=kuba@srs-se1.protection.inumbo.net>)
 id 1sTO9A-0007wc-9j
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:01:52 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a7414cb-42c3-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 18:01:49 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 54605CE10A6;
 Mon, 15 Jul 2024 16:01:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14049C32782;
 Mon, 15 Jul 2024 16:01: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: 8a7414cb-42c3-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721059304;
	bh=hdZ1uWLfrmlCAu1exDSse0MJmB2RV4h4+omKn5OeTOU=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=uzO8HI/eEzxNy8ddFoI3PcKHZwffFK8KyjFJ/yZOY4J6doEyHz3b7cuBtBS11XDoV
	 oLVJQA5ZzbEj9J4L8vqCeutzPWGo0S+h0KuVuJP44H2MZFJF5u3fJo9UxjJt2qLXl+
	 6u9UFCy+YunGBLHM4eKRuSipn/md0ZpJUiaR/U3xP8k3TPCLd5SILWWViWYd5QOqba
	 u1sOtnhFtGqcKET9GYqjLG7F3Xuz27DxVK9BVQu2A5XhPBt41Y6eQciFqzg0bAFg/h
	 d3rSq2d7QDciv/PwPwykU4j9OgrYwA7ieWfc2qyARTe70sdlVQiWJLEcnOFKkWHWrL
	 F9vak1PoljrnA==
Date: Mon, 15 Jul 2024 09:01:43 -0700
From: Jakub Kicinski <kuba@kernel.org>
To: Markus Elfring <Markus.Elfring@web.de>
Cc: xen-devel@lists.xenproject.org, netdev@vger.kernel.org,
 kernel-janitors@vger.kernel.org, "David S. Miller" <davem@davemloft.net>,
 Eric Dumazet <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>, Paul
 Durrant <paul@xen.org>, Wei Liu <wei.liu@kernel.org>, LKML
 <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] xen-netback: Use seq_putc() in xenvif_dump_hash_info()
Message-ID: <20240715090143.6b6303a2@kernel.org>
In-Reply-To: <add2bb00-4ac1-485d-839a-55670e2c7915@web.de>
References: <add2bb00-4ac1-485d-839a-55670e2c7915@web.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Sat, 13 Jul 2024 15:18:42 +0200 Markus Elfring wrote:
> Single characters (line breaks) should be put into a sequence.
> Thus use the corresponding function =E2=80=9Cseq_putc=E2=80=9D.
>=20
> This issue was transformed by using the Coccinelle software.

I prefer to only merge trivial changes like this if maintainer
indicates their support by acking them. Since the merge window
has opened we can't wait and see so I'm marking this patch and
your pktgen patch as deferred.


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:47:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:47:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759058.1168598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOqc-0006Cl-Du; Mon, 15 Jul 2024 16:46:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759058.1168598; Mon, 15 Jul 2024 16:46: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 1sTOqc-0006Ce-BK; Mon, 15 Jul 2024 16:46:46 +0000
Received: by outflank-mailman (input) for mailman id 759058;
 Mon, 15 Jul 2024 16:46: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=kjrg=OP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sTOqb-0006CY-7Q
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:46:45 +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 d0cd1938-42c9-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:46:43 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a77abe5c709so560294866b.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 09:46:43 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc8217a4sm222304866b.224.2024.07.15.09.46.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Jul 2024 09:46: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: d0cd1938-42c9-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721062002; x=1721666802; 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=kzlwsoCWSJSbbbbdf0/ZACwS0w+qAJtUnvdnz4XCXt4=;
        b=n7Zazf3ohw9k5y5oTBe0xrzXq2ZI6RioUnAehLBzyUAZPNO/7nKazgqLxoUsHSiPcG
         VMOfChQF2Zor/kOxa8e4VB3EuS/CCLeOb72Pk0pDv1ZQnyCmMGIpIo5jG6Wg2+siMy8/
         EJShdsQg/rLejLiQScTFT7Qpuvh6TX662Qnoo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721062002; x=1721666802;
        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=kzlwsoCWSJSbbbbdf0/ZACwS0w+qAJtUnvdnz4XCXt4=;
        b=UEmYModN0WzjgLSkxD85auo6MQZeH4eKNeWr8DZlEdyCkQVBpfqzabzEJ+GA/3Zrm+
         xqynf1JoDgU30pNZ6FmpY3hgJX4GXN20G6iWwwEE2Dz0pIlR+qPJB+lQmCQQALYaLHzW
         V2/eFcxHcD2RdpulxshegLgJ9sSt706UGGOWucWmdBCl6+AQJdbJhhaassADwvzfdF6b
         IN1tfGhPs/PWCeDmDM5LbJfG71T9NLortRLngUI0EY+eSN38uZomgdlxLlLsIQBsQMOh
         W396WKVkCwzyL0yJ/Eh/1tKSUXoUPW9UFwkTC0GhPqiW2IuSCFfGhKXzcy7/F1TGwDKr
         z92w==
X-Gm-Message-State: AOJu0YyOs2GoP2FJxqPlpK2yy+0Q4xeGFv3UvIDPUWnwRPDgMawb8//f
	M6ftFYiDdn9rw+Tg3InosN/gCFS4l1t9/Kh21TVuMGllFIX8mQeRVbvbYulB1LROvD2PDWatPBR
	0
X-Google-Smtp-Source: AGHT+IGUDrTl5k/eZQoh9FyIlly4qNABP7cwYNwEf1YnqbmIZ35vLtZ/D+xW60ac1WRlQ6RXXEsQJQ==
X-Received: by 2002:a17:906:fe0e:b0:a77:d880:2c91 with SMTP id a640c23a62f3a-a79e6a441b3mr24330966b.16.1721062002257;
        Mon, 15 Jul 2024 09:46: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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH RFC for-4.19] docs/checklist: Start tagging new dev windows
Date: Mon, 15 Jul 2024 17:46:39 +0100
Message-Id: <20240715164639.3378294-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

This is about figuring out when a change was first introduced.  Take
10b719dc88 for example (completely random pick).

The right answer is `git tag --contains $sha` and look for the oldest
RELEASE-$X.  In this case it's Xen 4.6, but the tags are not numerically
sorted so the answer is towards the end of the list of 166 tags.

The better answer would be to `git describe $sha` because git has an algorithm
to do this nicely.  In this case, it's 4.5.0-rc4-934-g10b719dc8830 because we
branch first and tag RELEASE-4.6.0 on the branch, rather than releasing off
master.

With 0082626f35af (opening of the 4.6 tree) containing an annotated tag of
4.6-dev, git describe now gives 4.6-dev-902-g10b719dc8830 which far more
helpful when doing code archeology.

I propose that we retroactively tag each commit which opened a new dev
tree (the commit which changes the version number)

Looking back in history, Keir did used to tag the point that the tree
branched, but that seems to have stopped when moving from HG to git.

Thoughts?
---
 docs/process/branching-checklist.txt          | 3 ++-
 docs/process/release-technician-checklist.txt | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/docs/process/branching-checklist.txt b/docs/process/branching-checklist.txt
index 3dfa8ec2570b..b2bb9ac1fa00 100644
--- a/docs/process/branching-checklist.txt
+++ b/docs/process/branching-checklist.txt
@@ -79,7 +79,8 @@ The variables and there content should be:
 Where X.Y is the release version (e.g. 4.17).
 
 Update newly diverging staging (unstable) according to
-release-technician-checklist.txt section re README etc.
+release-technician-checklist.txt section re README etc.,
+including tagging the new dev window.
 
 Update newly diverging staging-$v according to
 release-technician-checklist.txt section re README etc.,
diff --git a/docs/process/release-technician-checklist.txt b/docs/process/release-technician-checklist.txt
index e6db02b87585..7d2d90e57e7b 100644
--- a/docs/process/release-technician-checklist.txt
+++ b/docs/process/release-technician-checklist.txt
@@ -79,6 +79,8 @@ t=RELEASE-$r
 #           - xen/Kconfig.debug
 #                 config DEBUG
 #                     default n
+#
+#    - tag staging branch for the new dev window.  e.g. 4.20-dev
 
 * tag xen-unstable
 

base-commit: 1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
prerequisite-patch-id: 2ea535e6248ebf47b5db0c59db0f4fcfc7a74cf9
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:47:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:47:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759061.1168607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrO-0006uh-Lr; Mon, 15 Jul 2024 16:47:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759061.1168607; Mon, 15 Jul 2024 16:47:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrO-0006ua-JL; Mon, 15 Jul 2024 16:47:34 +0000
Received: by outflank-mailman (input) for mailman id 759061;
 Mon, 15 Jul 2024 16:47: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOrN-0006CY-RK
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:47:33 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eddf4713-42c9-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:47:32 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id 330F74EE0737;
 Mon, 15 Jul 2024 18:47: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: eddf4713-42c9-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>
Subject: [XEN PATCH v4 0/9] x86: address some violations of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:47:13 +0200
Message-Id: <cover.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch series fixes a missing escape in a deviation and addresses some
violations.

Federico Serafini (9):
  automation/eclair: fix deviation of MISRA C Rule 16.3
  x86/cpuid: use fallthrough pseudo keyword
  x86/domctl: address a violation of MISRA C Rule 16.3
  x86/vpmu: address violations of MISRA C Rule 16.3
  x86/traps: address violations of MISRA C Rule 16.3
  x86/mce: address violations of MISRA C Rule 16.3
  x86/hvm: address violations of MISRA C Rule 16.3
  x86/mm: add defensive return
  x86/mpparse: address a violation of MISRA C Rule 16.3

 automation/eclair_analysis/ECLAIR/deviations.ecl |  2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c                |  1 +
 xen/arch/x86/cpu/mcheck/mce_intel.c              |  2 ++
 xen/arch/x86/cpu/vpmu.c                          |  3 +++
 xen/arch/x86/cpu/vpmu_intel.c                    |  2 ++
 xen/arch/x86/cpuid.c                             |  3 +--
 xen/arch/x86/domctl.c                            |  1 +
 xen/arch/x86/hvm/emulate.c                       | 10 ++++++----
 xen/arch/x86/hvm/hvm.c                           |  5 +++++
 xen/arch/x86/hvm/hypercall.c                     |  2 +-
 xen/arch/x86/hvm/irq.c                           |  1 +
 xen/arch/x86/hvm/pmtimer.c                       |  1 +
 xen/arch/x86/hvm/svm/svm.c                       |  2 ++
 xen/arch/x86/hvm/vlapic.c                        |  1 +
 xen/arch/x86/hvm/vmx/vmcs.c                      |  2 ++
 xen/arch/x86/hvm/vmx/vmx.c                       |  3 ++-
 xen/arch/x86/hvm/vmx/vvmx.c                      |  1 +
 xen/arch/x86/hvm/vpic.c                          |  1 +
 xen/arch/x86/hvm/vpt.c                           |  3 +--
 xen/arch/x86/mm.c                                |  1 +
 xen/arch/x86/mpparse.c                           |  1 +
 xen/arch/x86/traps.c                             |  3 +++
 22 files changed, 40 insertions(+), 11 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:47:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:47:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759062.1168617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrQ-00079x-SG; Mon, 15 Jul 2024 16:47:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759062.1168617; Mon, 15 Jul 2024 16:47: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 1sTOrQ-00079m-PI; Mon, 15 Jul 2024 16:47:36 +0000
Received: by outflank-mailman (input) for mailman id 759062;
 Mon, 15 Jul 2024 16:47:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOrP-000798-WD
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:47:36 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eead601a-42c9-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 18:47:33 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id 9E7074EE073E;
 Mon, 15 Jul 2024 18:47: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: eead601a-42c9-11ef-bbfb-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v4 1/9] automation/eclair: fix deviation of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:47:14 +0200
Message-Id: <490e1a84b1b4b8d983dc41af147191f79506cdbd.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Escape the final dot of the comment and extend the search of a
fallthrough comment up to 2 lines after the last statement.

Fixes: Fixes: a128d8da91 ("automation/eclair: add deviations for MISRA C:2012 Rule 16.3")
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 0d94635275..e95554acae 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -499,7 +499,7 @@ safe."
 -doc_end
 
 -doc_begin="Switch clauses ending with an explicit comment indicating the fallthrough intention are safe."
--config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through.? \\*/.*$,0..1))))"}
+-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through\\.? \\*/.*$,0..2))))"}
 -doc_end
 
 -doc_begin="Switch statements having a controlling expression of enum type deliberately do not have a default case: gcc -Wall enables -Wswitch which warns (and breaks the build as we use -Werror) if one of the enum labels is missing from the switch."
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:47:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:47:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759063.1168628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrS-0007Ps-7a; Mon, 15 Jul 2024 16:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759063.1168628; Mon, 15 Jul 2024 16: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 1sTOrS-0007Ph-4P; Mon, 15 Jul 2024 16:47:38 +0000
Received: by outflank-mailman (input) for mailman id 759063;
 Mon, 15 Jul 2024 16:47:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOrQ-000798-Kh
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:47:36 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef64baa8-42c9-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 18:47:34 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id 494CF4EE073F;
 Mon, 15 Jul 2024 18:47: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: ef64baa8-42c9-11ef-bbfb-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v4 2/9] x86/cpuid: use fallthrough pseudo keyword
Date: Mon, 15 Jul 2024 18:47:15 +0200
Message-Id: <a7c697fc2cac00a2598a8b904adb9dfc3e0d40f3.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The current comment making explicit the fallthrough intention does
not follow the agreed syntax: replace it with the pseduo keyword.

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/cpuid.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index a822e80c7e..2a777436ee 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -97,9 +97,8 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
         if ( is_viridian_domain(d) )
             return cpuid_viridian_leaves(v, leaf, subleaf, res);
 
+        fallthrough;
         /*
-         * Fallthrough.
-         *
          * Intel reserve up until 0x4fffffff for hypervisor use.  AMD reserve
          * only until 0x400000ff, but we already use double that.
          */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:47:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:47:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759064.1168638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrT-0007fs-FF; Mon, 15 Jul 2024 16:47:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759064.1168638; Mon, 15 Jul 2024 16:47: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 1sTOrT-0007fh-Bd; Mon, 15 Jul 2024 16:47:39 +0000
Received: by outflank-mailman (input) for mailman id 759064;
 Mon, 15 Jul 2024 16:47: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOrR-0006CY-AE
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:47:37 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f02873b5-42c9-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:47:35 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id 9C4B64EE0739;
 Mon, 15 Jul 2024 18:47: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: f02873b5-42c9-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v4 3/9] x86/domctl: address a violation of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:47:16 +0200
Message-Id: <759ef52606d90ec0efed9fc6d87fd432a42f7cc4.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing break statement to address a violation of
MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/domctl.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 9190e11faa..68b5b46d1a 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -517,6 +517,7 @@ long arch_do_domctl(
 
         default:
             ret = -ENOSYS;
+            break;
         }
         break;
     }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:47:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:47:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759066.1168643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrT-0007jK-Qz; Mon, 15 Jul 2024 16:47:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759066.1168643; Mon, 15 Jul 2024 16:47: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 1sTOrT-0007iS-Jq; Mon, 15 Jul 2024 16:47:39 +0000
Received: by outflank-mailman (input) for mailman id 759066;
 Mon, 15 Jul 2024 16:47: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOrS-0006CY-AS
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:47:38 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f08dee2b-42c9-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:47:36 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id CC67B4EE0742;
 Mon, 15 Jul 2024 18:47: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: f08dee2b-42c9-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v4 4/9] x86/vpmu: address violations of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:47:17 +0200
Message-Id: <67c30f4ef05846f8c3b371eb5fb2de4bd42eb5f1.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing break statements to address violations of MISRA C Rule
16.3: "An unconditional `break' statement shall terminate every
switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/arch/x86/cpu/vpmu.c       | 3 +++
 xen/arch/x86/cpu/vpmu_intel.c | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index a7bc0cd1fc..b2ba999412 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -663,6 +663,8 @@ long do_xenpmu_op(
 
         if ( pmu_params.version.maj != XENPMU_VER_MAJ )
             return -EINVAL;
+
+        break;
     }
 
     switch ( op )
@@ -776,6 +778,7 @@ long do_xenpmu_op(
 
     default:
         ret = -EINVAL;
+        break;
     }
 
     return ret;
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index cd414165df..26dd3a9358 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -666,6 +666,7 @@ static int cf_check core2_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content)
 
             xen_pmu_cntr_pair[tmp].control = msr_content;
         }
+        break;
     }
 
     if ( type != MSR_TYPE_GLOBAL )
@@ -713,6 +714,7 @@ static int cf_check core2_vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
             break;
         default:
             rdmsrl(msr, *msr_content);
+            break;
         }
     }
     else if ( msr == MSR_IA32_MISC_ENABLE )
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:47:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:47:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759067.1168647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrU-0007pS-4x; Mon, 15 Jul 2024 16:47:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759067.1168647; Mon, 15 Jul 2024 16: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 1sTOrT-0007ns-VP; Mon, 15 Jul 2024 16:47:39 +0000
Received: by outflank-mailman (input) for mailman id 759067;
 Mon, 15 Jul 2024 16:47: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOrS-000798-LK
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:47:38 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f1077e25-42c9-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 18:47:37 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id 7BB284EE0745;
 Mon, 15 Jul 2024 18:47: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: f1077e25-42c9-11ef-bbfb-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v4 5/9] x86/traps: address violations of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:47:18 +0200
Message-Id: <d16e294e1cbd74001c1ca276023d13f66f4ec0d3.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add break or pseudo keyword fallthrough to address violations of
MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/arch/x86/traps.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index ee91fc56b1..7a9299ae6c 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1186,6 +1186,7 @@ void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
 
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 }
 
@@ -1748,6 +1749,7 @@ static void io_check_error(const struct cpu_user_regs *regs)
     {
     case 'd': /* 'dom0' */
         nmi_hwdom_report(_XEN_NMIREASON_io_error);
+        break;
     case 'i': /* 'ignore' */
         break;
     default:  /* 'fatal' */
@@ -1768,6 +1770,7 @@ static void unknown_nmi_error(const struct cpu_user_regs *regs,
     {
     case 'd': /* 'dom0' */
         nmi_hwdom_report(_XEN_NMIREASON_unknown);
+        break;
     case 'i': /* 'ignore' */
         break;
     default:  /* 'fatal' */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:47:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:47:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759069.1168668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrW-0008Tv-Gj; Mon, 15 Jul 2024 16:47:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759069.1168668; Mon, 15 Jul 2024 16:47:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrW-0008Tc-CZ; Mon, 15 Jul 2024 16:47:42 +0000
Received: by outflank-mailman (input) for mailman id 759069;
 Mon, 15 Jul 2024 16:47: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOrU-0006CY-77
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:47:40 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f1e1340e-42c9-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:47:38 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id 616B34EE0746;
 Mon, 15 Jul 2024 18:47: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: f1e1340e-42c9-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v4 6/9] x86/mce: address violations of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:47:19 +0200
Message-Id: <b71abb5ded93a7ce6a79a17f0f413c2d0186f2e6.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing break statements to address violations of
MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/cpu/mcheck/mce_amd.c   | 1 +
 xen/arch/x86/cpu/mcheck/mce_intel.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/xen/arch/x86/cpu/mcheck/mce_amd.c b/xen/arch/x86/cpu/mcheck/mce_amd.c
index 3318b8204f..4f06a3153b 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.c
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
@@ -201,6 +201,7 @@ static void mcequirk_amd_apply(enum mcequirk_amd_flags flags)
 
     default:
         ASSERT(flags == MCEQUIRK_NONE);
+        break;
     }
 }
 
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index dd812f4b8a..9574dedbfd 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -896,6 +896,8 @@ static void intel_init_ppin(const struct cpuinfo_x86 *c)
             ppin_msr = 0;
         else if ( c == &boot_cpu_data )
             ppin_msr = MSR_PPIN;
+
+        break;
     }
 }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:47:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:47:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759070.1168674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrX-00006A-5B; Mon, 15 Jul 2024 16:47:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759070.1168674; Mon, 15 Jul 2024 16:47: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 1sTOrW-00004s-Oc; Mon, 15 Jul 2024 16:47:42 +0000
Received: by outflank-mailman (input) for mailman id 759070;
 Mon, 15 Jul 2024 16:47:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOrU-000798-Lc
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:47:40 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f27fad77-42c9-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 18:47:39 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id D61BA4EE0755;
 Mon, 15 Jul 2024 18:47: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: f27fad77-42c9-11ef-bbfb-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>
Subject: [XEN PATCH v4 7/9] x86/hvm: address violations of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:47:20 +0200
Message-Id: <f60c9580dcb2a078723fe9881124d7516e4e7593.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C Rule 16.3 states that "An unconditional `break' statement shall
terminate every switch-clause".

Add pseudo keyword fallthrough or missing break statement
to address violations of the rule.

As a defensive measure, return an error message or a null pointer in
case an unreachable return statement is reached.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
Changes in v4:
- do not separate different parts of HVM:
    a) squash patches 8, 11 and 12 of v3 into this patch;
    b) address also violations of SVM and VMX;
- re-arrange fallthrough positioning to comply with Coverity.
Changes in v3:
- squashed here modifications of pmtimer.c;
- no blank line after fallthrough;
- better indentation of fallthrough.
---
 xen/arch/x86/hvm/emulate.c   | 10 ++++++----
 xen/arch/x86/hvm/hvm.c       |  5 +++++
 xen/arch/x86/hvm/hypercall.c |  2 +-
 xen/arch/x86/hvm/irq.c       |  1 +
 xen/arch/x86/hvm/pmtimer.c   |  1 +
 xen/arch/x86/hvm/svm/svm.c   |  2 ++
 xen/arch/x86/hvm/vlapic.c    |  1 +
 xen/arch/x86/hvm/vmx/vmcs.c  |  2 ++
 xen/arch/x86/hvm/vmx/vmx.c   |  3 ++-
 xen/arch/x86/hvm/vmx/vvmx.c  |  1 +
 xen/arch/x86/hvm/vpic.c      |  1 +
 xen/arch/x86/hvm/vpt.c       |  3 +--
 12 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 02e378365b..a749d16137 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -339,7 +339,7 @@ static int hvmemul_do_io(
     }
     case X86EMUL_UNIMPLEMENTED:
         ASSERT_UNREACHABLE();
-        /* Fall-through */
+        fallthrough;
     default:
         BUG();
     }
@@ -397,7 +397,6 @@ static int hvmemul_acquire_page(unsigned long gmfn, struct page_info **page)
     default:
         ASSERT_UNREACHABLE();
         /* Fallthrough */
-
     case -EINVAL:
         return X86EMUL_UNHANDLEABLE;
     }
@@ -2674,6 +2673,7 @@ static int _hvm_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt,
 
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 
     if ( hvmemul_ctxt->ctxt.retire.singlestep )
@@ -2764,6 +2764,7 @@ int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
         /* fallthrough */
     default:
         hvm_emulate_writeback(&ctxt);
+        break;
     }
 
     return rc;
@@ -2799,10 +2800,11 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
         memcpy(hvio->mmio_insn, curr->arch.vm_event->emul.insn.data,
                hvio->mmio_insn_bytes);
     }
-    /* Fall-through */
+        fallthrough;
     default:
         ctx.set_context = (kind == EMUL_KIND_SET_CONTEXT_DATA);
         rc = hvm_emulate_one(&ctx, VIO_no_completion);
+        break;
     }
 
     switch ( rc )
@@ -2818,7 +2820,7 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
     case X86EMUL_UNIMPLEMENTED:
         if ( hvm_monitor_emul_unimplemented() )
             return;
-        /* fall-through */
+        fallthrough;
     case X86EMUL_UNHANDLEABLE:
         hvm_dump_emulation_state(XENLOG_G_DEBUG, "Mem event", &ctx, rc);
         hvm_inject_hw_exception(trapnr, errcode);
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7f4b627b1f..d7f195ba9a 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4919,6 +4919,8 @@ static int do_altp2m_op(
 
     default:
         ASSERT_UNREACHABLE();
+        rc = -EOPNOTSUPP;
+        break;
     }
 
  out:
@@ -5020,6 +5022,8 @@ static int compat_altp2m_op(
 
     default:
         ASSERT_UNREACHABLE();
+        rc = -EOPNOTSUPP;
+        break;
     }
 
     return rc;
@@ -5283,6 +5287,7 @@ void hvm_get_segment_register(struct vcpu *v, enum x86_segment seg,
          * %cs and %tr are unconditionally present.  SVM ignores these present
          * bits and will happily run without them set.
          */
+        fallthrough;
     case x86_seg_cs:
         reg->p = 1;
         break;
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 7fb3136f0c..c1bd17571e 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -110,7 +110,7 @@ int hvm_hypercall(struct cpu_user_regs *regs)
     {
     case 8:
         eax = regs->rax;
-        /* Fallthrough to permission check. */
+        fallthrough;
     case 4:
     case 2:
         if ( currd->arch.monitor.guest_request_userspace_enabled &&
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index 210cebb0e6..1eab44defc 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -282,6 +282,7 @@ static void hvm_set_callback_irq_level(struct vcpu *v)
             __hvm_pci_intx_assert(d, pdev, pintx);
         else
             __hvm_pci_intx_deassert(d, pdev, pintx);
+        break;
     default:
         break;
     }
diff --git a/xen/arch/x86/hvm/pmtimer.c b/xen/arch/x86/hvm/pmtimer.c
index 97099ac305..87a7a01c9f 100644
--- a/xen/arch/x86/hvm/pmtimer.c
+++ b/xen/arch/x86/hvm/pmtimer.c
@@ -185,6 +185,7 @@ static int cf_check handle_evt_io(
                 gdprintk(XENLOG_WARNING, 
                          "Bad ACPI PM register write: %x bytes (%x) at %x\n", 
                          bytes, *val, port);
+                break;
             }
         }
         /* Fix up the SCI state to match the new register state */
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 988250dbc1..92bb10c504 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -681,6 +681,7 @@ static void cf_check svm_get_segment_register(
         ASSERT_UNREACHABLE();
         domain_crash(v->domain);
         *reg = (struct segment_register){};
+        break;
     }
 }
 
@@ -2416,6 +2417,7 @@ static void cf_check svm_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
         printk(XENLOG_G_ERR "%s(%pv, 0x%08x, 0x%016"PRIx64") Bad register\n",
                __func__, v, reg, val);
         domain_crash(d);
+        break;
     }
 }
 
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 9cfc82666a..2ec9594271 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -367,6 +367,7 @@ static void vlapic_accept_irq(struct vcpu *v, uint32_t icr_low)
         gdprintk(XENLOG_ERR, "TODO: unsupported delivery mode in ICR %x\n",
                  icr_low);
         domain_crash(v->domain);
+        break;
     }
 }
 
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 9b6dc51f36..9c5a22dafd 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1446,6 +1446,7 @@ struct vmx_msr_entry *vmx_find_msr(const struct vcpu *v, uint32_t msr,
 
     default:
         ASSERT_UNREACHABLE();
+        return NULL;
     }
 
     if ( !start )
@@ -1598,6 +1599,7 @@ int vmx_del_msr(struct vcpu *v, uint32_t msr, enum vmx_msr_list_type type)
 
     default:
         ASSERT_UNREACHABLE();
+        return -EINVAL;
     }
 
     if ( !start )
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index f16faa6a61..46911c3e1c 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -2745,6 +2745,7 @@ static void cf_check vmx_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
         printk(XENLOG_G_ERR "%s(%pv, 0x%08x, 0x%016"PRIx64") Bad register\n",
                __func__, v, reg, val);
         domain_crash(d);
+        break;
     }
     vmx_vmcs_exit(v);
 }
@@ -3393,7 +3394,7 @@ static int cf_check vmx_msr_read_intercept(
         *msr_content |= MSR_IA32_MISC_ENABLE_BTS_UNAVAIL |
                        MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL;
         /* Perhaps vpmu will change some bits. */
-        /* FALLTHROUGH */
+        fallthrough;
     case MSR_P6_PERFCTR(0)...MSR_P6_PERFCTR(7):
     case MSR_P6_EVNTSEL(0)...MSR_P6_EVNTSEL(3):
     case MSR_CORE_PERF_FIXED_CTR0...MSR_CORE_PERF_FIXED_CTR2:
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index 39290c9861..c05e0e9326 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -2768,6 +2768,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
         gprintk(XENLOG_ERR, "Unhandled nested vmexit: reason %u\n",
                 exit_reason);
         domain_crash(v->domain);
+        break;
     }
 
     return ( nvcpu->nv_vmexit_pending == 1 );
diff --git a/xen/arch/x86/hvm/vpic.c b/xen/arch/x86/hvm/vpic.c
index 7c3b5c7254..6427b08086 100644
--- a/xen/arch/x86/hvm/vpic.c
+++ b/xen/arch/x86/hvm/vpic.c
@@ -309,6 +309,7 @@ static void vpic_ioport_write(
             if ( !(vpic->init_state & 8) )
                 break; /* CASCADE mode: wait for write to ICW3. */
             /* SNGL mode: fall through (no ICW3). */
+            fallthrough;
         case 2:
             /* ICW3 */
             vpic->init_state++;
diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c
index e1d6845a28..5e7b9a9f66 100644
--- a/xen/arch/x86/hvm/vpt.c
+++ b/xen/arch/x86/hvm/vpt.c
@@ -119,8 +119,7 @@ static int pt_irq_masked(struct periodic_time *pt)
 
         gsi = hvm_isa_irq_to_gsi(pt->irq);
     }
-
-    /* Fallthrough to check if the interrupt is masked on the IO APIC. */
+        fallthrough;
     case PTSRC_ioapic:
     {
         int mask = vioapic_get_mask(v->domain, gsi);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:47:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:47:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759073.1168684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrY-0000UE-9L; Mon, 15 Jul 2024 16:47:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759073.1168684; Mon, 15 Jul 2024 16:47:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrY-0000TW-3k; Mon, 15 Jul 2024 16:47:44 +0000
Received: by outflank-mailman (input) for mailman id 759073;
 Mon, 15 Jul 2024 16:47: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOrW-0006CY-Dl
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:47:42 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f33504ea-42c9-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:47:40 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id CC5E94EE0739;
 Mon, 15 Jul 2024 18:47: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: f33504ea-42c9-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>
Subject: [XEN PATCH v4 8/9] x86/mm: add defensive return
Date: Mon, 15 Jul 2024 18:47:21 +0200
Message-Id: <de98fe0d6b36383b6eb8d1a9b077b0b387ae0848.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add defensive return statement at the end of an unreachable
default case. Other than improve safety, this meets the requirements
to deviate a violation of MISRA C Rule 16.3: "An unconditional `break'
statement shall terminate every switch-clause".

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
No changes from v3, further feedback on this thread would be appreciated:
https://lists.xenproject.org/archives/html/xen-devel/2024-07/msg00474.html
---
 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 648d6dd475..a1e28b3360 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -916,6 +916,7 @@ get_page_from_l1e(
                 return 0;
             default:
                 ASSERT_UNREACHABLE();
+                return -EPERM;
             }
         }
         else if ( l1f & _PAGE_RW )
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:47:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:47:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759074.1168692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrY-0000d0-Uy; Mon, 15 Jul 2024 16:47:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759074.1168692; Mon, 15 Jul 2024 16:47:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOrY-0000bG-Lp; Mon, 15 Jul 2024 16:47:44 +0000
Received: by outflank-mailman (input) for mailman id 759074;
 Mon, 15 Jul 2024 16:47: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOrW-000798-Lu
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:47:42 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3d5e52f-42c9-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 18:47:42 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id 136764EE0737;
 Mon, 15 Jul 2024 18:47: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: f3d5e52f-42c9-11ef-bbfb-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v4 9/9] x86/mpparse: address a violation of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:47:22 +0200
Message-Id: <c72a1b9b35303fd0f13fb5a13713477cf80da878.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a missing break statement to address a violation of
MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/mpparse.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c
index d8ccab2449..306d8ed97a 100644
--- a/xen/arch/x86/mpparse.c
+++ b/xen/arch/x86/mpparse.c
@@ -544,6 +544,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
 		case 4:
 		case 7:
 			memcpy(bus.mpc_bustype, "MCA   ", 6);
+			break;
 	}
 	MP_bus_info(&bus);
 	if (mpc_default_type > 4) {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:49:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:49:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759089.1168708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOt0-0003mV-Nt; Mon, 15 Jul 2024 16:49:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759089.1168708; Mon, 15 Jul 2024 16: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 1sTOt0-0003mO-Kb; Mon, 15 Jul 2024 16:49:14 +0000
Received: by outflank-mailman (input) for mailman id 759089;
 Mon, 15 Jul 2024 16:49:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOsz-0003ll-2L
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:49:13 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 29099d01-42ca-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:49:11 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id 3D01F4EE0737;
 Mon, 15 Jul 2024 18:49: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: 29099d01-42ca-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [Resend XEN PATCH v4 0/9] x86: address some violations of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:48:51 +0200
Message-Id: <cover.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch series fixes a missing escape in a deviation and addresses some
violations.

Federico Serafini (9):
  automation/eclair: fix deviation of MISRA C Rule 16.3
  x86/cpuid: use fallthrough pseudo keyword
  x86/domctl: address a violation of MISRA C Rule 16.3
  x86/vpmu: address violations of MISRA C Rule 16.3
  x86/traps: address violations of MISRA C Rule 16.3
  x86/mce: address violations of MISRA C Rule 16.3
  x86/hvm: address violations of MISRA C Rule 16.3
  x86/mm: add defensive return
  x86/mpparse: address a violation of MISRA C Rule 16.3

 automation/eclair_analysis/ECLAIR/deviations.ecl |  2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c                |  1 +
 xen/arch/x86/cpu/mcheck/mce_intel.c              |  2 ++
 xen/arch/x86/cpu/vpmu.c                          |  3 +++
 xen/arch/x86/cpu/vpmu_intel.c                    |  2 ++
 xen/arch/x86/cpuid.c                             |  3 +--
 xen/arch/x86/domctl.c                            |  1 +
 xen/arch/x86/hvm/emulate.c                       | 10 ++++++----
 xen/arch/x86/hvm/hvm.c                           |  5 +++++
 xen/arch/x86/hvm/hypercall.c                     |  2 +-
 xen/arch/x86/hvm/irq.c                           |  1 +
 xen/arch/x86/hvm/pmtimer.c                       |  1 +
 xen/arch/x86/hvm/svm/svm.c                       |  2 ++
 xen/arch/x86/hvm/vlapic.c                        |  1 +
 xen/arch/x86/hvm/vmx/vmcs.c                      |  2 ++
 xen/arch/x86/hvm/vmx/vmx.c                       |  3 ++-
 xen/arch/x86/hvm/vmx/vvmx.c                      |  1 +
 xen/arch/x86/hvm/vpic.c                          |  1 +
 xen/arch/x86/hvm/vpt.c                           |  3 +--
 xen/arch/x86/mm.c                                |  1 +
 xen/arch/x86/mpparse.c                           |  1 +
 xen/arch/x86/traps.c                             |  3 +++
 22 files changed, 40 insertions(+), 11 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:49:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:49:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759090.1168715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOt1-0003pT-2N; Mon, 15 Jul 2024 16:49:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759090.1168715; Mon, 15 Jul 2024 16: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 1sTOt0-0003oV-RT; Mon, 15 Jul 2024 16:49:14 +0000
Received: by outflank-mailman (input) for mailman id 759090;
 Mon, 15 Jul 2024 16: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOsz-0003ly-MF
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:49:13 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 29e74624-42ca-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 18:49:12 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id 5CAE24EE073F;
 Mon, 15 Jul 2024 18:49: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: 29e74624-42ca-11ef-bbfb-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v4 1/9] automation/eclair: fix deviation of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:48:52 +0200
Message-Id: <490e1a84b1b4b8d983dc41af147191f79506cdbd.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Escape the final dot of the comment and extend the search of a
fallthrough comment up to 2 lines after the last statement.

Fixes: Fixes: a128d8da91 ("automation/eclair: add deviations for MISRA C:2012 Rule 16.3")
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 0d94635275..e95554acae 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -499,7 +499,7 @@ safe."
 -doc_end
 
 -doc_begin="Switch clauses ending with an explicit comment indicating the fallthrough intention are safe."
--config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through.? \\*/.*$,0..1))))"}
+-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through\\.? \\*/.*$,0..2))))"}
 -doc_end
 
 -doc_begin="Switch statements having a controlling expression of enum type deliberately do not have a default case: gcc -Wall enables -Wswitch which warns (and breaks the build as we use -Werror) if one of the enum labels is missing from the switch."
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:49:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:49:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759091.1168728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOt3-0004Hg-92; Mon, 15 Jul 2024 16:49:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759091.1168728; Mon, 15 Jul 2024 16:49:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOt3-0004HW-4n; Mon, 15 Jul 2024 16:49:17 +0000
Received: by outflank-mailman (input) for mailman id 759091;
 Mon, 15 Jul 2024 16:49:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOt2-0003ll-Dr
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:49:16 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b3e0205-42ca-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:49:14 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id C57A64EE0742;
 Mon, 15 Jul 2024 18:49: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: 2b3e0205-42ca-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v4 2/9] x86/cpuid: use fallthrough pseudo keyword
Date: Mon, 15 Jul 2024 18:48:53 +0200
Message-Id: <a7c697fc2cac00a2598a8b904adb9dfc3e0d40f3.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The current comment making explicit the fallthrough intention does
not follow the agreed syntax: replace it with the pseduo keyword.

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/cpuid.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index a822e80c7e..2a777436ee 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -97,9 +97,8 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
         if ( is_viridian_domain(d) )
             return cpuid_viridian_leaves(v, leaf, subleaf, res);
 
+        fallthrough;
         /*
-         * Fallthrough.
-         *
          * Intel reserve up until 0x4fffffff for hypervisor use.  AMD reserve
          * only until 0x400000ff, but we already use double that.
          */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:49:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:49:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759092.1168738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOt4-0004YO-Gm; Mon, 15 Jul 2024 16:49:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759092.1168738; Mon, 15 Jul 2024 16:49:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOt4-0004Y6-Cy; Mon, 15 Jul 2024 16:49:18 +0000
Received: by outflank-mailman (input) for mailman id 759092;
 Mon, 15 Jul 2024 16: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOt3-0003ly-5C
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:49:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2c45da4f-42ca-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 18:49:16 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id 2B4124EE073E;
 Mon, 15 Jul 2024 18:49: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: 2c45da4f-42ca-11ef-bbfb-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v4 3/9] x86/domctl: address a violation of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:48:54 +0200
Message-Id: <759ef52606d90ec0efed9fc6d87fd432a42f7cc4.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing break statement to address a violation of
MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/domctl.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 9190e11faa..68b5b46d1a 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -517,6 +517,7 @@ long arch_do_domctl(
 
         default:
             ret = -ENOSYS;
+            break;
         }
         break;
     }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:49:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:49:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759093.1168748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOt6-0004ro-OX; Mon, 15 Jul 2024 16:49:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759093.1168748; Mon, 15 Jul 2024 16:49: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 1sTOt6-0004rf-L7; Mon, 15 Jul 2024 16:49:20 +0000
Received: by outflank-mailman (input) for mailman id 759093;
 Mon, 15 Jul 2024 16:49: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOt5-0003ll-BU
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:49:19 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2cfaf44d-42ca-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:49:17 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id C7E9A4EE0745;
 Mon, 15 Jul 2024 18:49: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: 2cfaf44d-42ca-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v4 4/9] x86/vpmu: address violations of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:48:55 +0200
Message-Id: <67c30f4ef05846f8c3b371eb5fb2de4bd42eb5f1.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing break statements to address violations of MISRA C Rule
16.3: "An unconditional `break' statement shall terminate every
switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/arch/x86/cpu/vpmu.c       | 3 +++
 xen/arch/x86/cpu/vpmu_intel.c | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index a7bc0cd1fc..b2ba999412 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -663,6 +663,8 @@ long do_xenpmu_op(
 
         if ( pmu_params.version.maj != XENPMU_VER_MAJ )
             return -EINVAL;
+
+        break;
     }
 
     switch ( op )
@@ -776,6 +778,7 @@ long do_xenpmu_op(
 
     default:
         ret = -EINVAL;
+        break;
     }
 
     return ret;
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index cd414165df..26dd3a9358 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -666,6 +666,7 @@ static int cf_check core2_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content)
 
             xen_pmu_cntr_pair[tmp].control = msr_content;
         }
+        break;
     }
 
     if ( type != MSR_TYPE_GLOBAL )
@@ -713,6 +714,7 @@ static int cf_check core2_vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
             break;
         default:
             rdmsrl(msr, *msr_content);
+            break;
         }
     }
     else if ( msr == MSR_IA32_MISC_ENABLE )
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:49:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:49:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759095.1168758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOt8-00059a-1y; Mon, 15 Jul 2024 16:49:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759095.1168758; Mon, 15 Jul 2024 16: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 1sTOt7-00059A-Ub; Mon, 15 Jul 2024 16:49:21 +0000
Received: by outflank-mailman (input) for mailman id 759095;
 Mon, 15 Jul 2024 16: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOt6-0003ll-De
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:49:20 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2d9f7471-42ca-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:49:18 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id D7C5E4EE0746;
 Mon, 15 Jul 2024 18:49: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: 2d9f7471-42ca-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v4 5/9] x86/traps: address violations of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:48:56 +0200
Message-Id: <d16e294e1cbd74001c1ca276023d13f66f4ec0d3.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add break or pseudo keyword fallthrough to address violations of
MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/arch/x86/traps.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index ee91fc56b1..7a9299ae6c 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1186,6 +1186,7 @@ void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
 
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 }
 
@@ -1748,6 +1749,7 @@ static void io_check_error(const struct cpu_user_regs *regs)
     {
     case 'd': /* 'dom0' */
         nmi_hwdom_report(_XEN_NMIREASON_io_error);
+        break;
     case 'i': /* 'ignore' */
         break;
     default:  /* 'fatal' */
@@ -1768,6 +1770,7 @@ static void unknown_nmi_error(const struct cpu_user_regs *regs,
     {
     case 'd': /* 'dom0' */
         nmi_hwdom_report(_XEN_NMIREASON_unknown);
+        break;
     case 'i': /* 'ignore' */
         break;
     default:  /* 'fatal' */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:49:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:49:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759098.1168763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOt8-0005CF-Gv; Mon, 15 Jul 2024 16:49:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759098.1168763; Mon, 15 Jul 2024 16: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 1sTOt8-0005BM-6d; Mon, 15 Jul 2024 16:49:22 +0000
Received: by outflank-mailman (input) for mailman id 759098;
 Mon, 15 Jul 2024 16:49:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOt7-0003ll-DD
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:49:21 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e32b0a1-42ca-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:49:19 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id E7B714EE0C8A;
 Mon, 15 Jul 2024 18:49: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: 2e32b0a1-42ca-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v4 6/9] x86/mce: address violations of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:48:57 +0200
Message-Id: <b71abb5ded93a7ce6a79a17f0f413c2d0186f2e6.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing break statements to address violations of
MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/cpu/mcheck/mce_amd.c   | 1 +
 xen/arch/x86/cpu/mcheck/mce_intel.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/xen/arch/x86/cpu/mcheck/mce_amd.c b/xen/arch/x86/cpu/mcheck/mce_amd.c
index 3318b8204f..4f06a3153b 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.c
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
@@ -201,6 +201,7 @@ static void mcequirk_amd_apply(enum mcequirk_amd_flags flags)
 
     default:
         ASSERT(flags == MCEQUIRK_NONE);
+        break;
     }
 }
 
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index dd812f4b8a..9574dedbfd 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -896,6 +896,8 @@ static void intel_init_ppin(const struct cpuinfo_x86 *c)
             ppin_msr = 0;
         else if ( c == &boot_cpu_data )
             ppin_msr = MSR_PPIN;
+
+        break;
     }
 }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:49:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:49:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759100.1168778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOtA-0005k4-NX; Mon, 15 Jul 2024 16:49:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759100.1168778; Mon, 15 Jul 2024 16: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 1sTOtA-0005jq-Hh; Mon, 15 Jul 2024 16:49:24 +0000
Received: by outflank-mailman (input) for mailman id 759100;
 Mon, 15 Jul 2024 16: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOt9-0003ll-0o
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:49:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2f070686-42ca-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:49:21 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id EEA8F4EE0739;
 Mon, 15 Jul 2024 18:49: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: 2f070686-42ca-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH v4 7/9] x86/hvm: address violations of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:48:58 +0200
Message-Id: <f60c9580dcb2a078723fe9881124d7516e4e7593.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C Rule 16.3 states that "An unconditional `break' statement shall
terminate every switch-clause".

Add pseudo keyword fallthrough or missing break statement
to address violations of the rule.

As a defensive measure, return an error message or a null pointer in
case an unreachable return statement is reached.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
Changes in v4:
- do not separate different parts of HVM:
    a) squash patches 8, 11 and 12 of v3 into this patch;
    b) address also violations of SVM and VMX;
- re-arrange fallthrough positioning to comply with Coverity.
Changes in v3:
- squashed here modifications of pmtimer.c;
- no blank line after fallthrough;
- better indentation of fallthrough.
---
 xen/arch/x86/hvm/emulate.c   | 10 ++++++----
 xen/arch/x86/hvm/hvm.c       |  5 +++++
 xen/arch/x86/hvm/hypercall.c |  2 +-
 xen/arch/x86/hvm/irq.c       |  1 +
 xen/arch/x86/hvm/pmtimer.c   |  1 +
 xen/arch/x86/hvm/svm/svm.c   |  2 ++
 xen/arch/x86/hvm/vlapic.c    |  1 +
 xen/arch/x86/hvm/vmx/vmcs.c  |  2 ++
 xen/arch/x86/hvm/vmx/vmx.c   |  3 ++-
 xen/arch/x86/hvm/vmx/vvmx.c  |  1 +
 xen/arch/x86/hvm/vpic.c      |  1 +
 xen/arch/x86/hvm/vpt.c       |  3 +--
 12 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 02e378365b..a749d16137 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -339,7 +339,7 @@ static int hvmemul_do_io(
     }
     case X86EMUL_UNIMPLEMENTED:
         ASSERT_UNREACHABLE();
-        /* Fall-through */
+        fallthrough;
     default:
         BUG();
     }
@@ -397,7 +397,6 @@ static int hvmemul_acquire_page(unsigned long gmfn, struct page_info **page)
     default:
         ASSERT_UNREACHABLE();
         /* Fallthrough */
-
     case -EINVAL:
         return X86EMUL_UNHANDLEABLE;
     }
@@ -2674,6 +2673,7 @@ static int _hvm_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt,
 
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 
     if ( hvmemul_ctxt->ctxt.retire.singlestep )
@@ -2764,6 +2764,7 @@ int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
         /* fallthrough */
     default:
         hvm_emulate_writeback(&ctxt);
+        break;
     }
 
     return rc;
@@ -2799,10 +2800,11 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
         memcpy(hvio->mmio_insn, curr->arch.vm_event->emul.insn.data,
                hvio->mmio_insn_bytes);
     }
-    /* Fall-through */
+        fallthrough;
     default:
         ctx.set_context = (kind == EMUL_KIND_SET_CONTEXT_DATA);
         rc = hvm_emulate_one(&ctx, VIO_no_completion);
+        break;
     }
 
     switch ( rc )
@@ -2818,7 +2820,7 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
     case X86EMUL_UNIMPLEMENTED:
         if ( hvm_monitor_emul_unimplemented() )
             return;
-        /* fall-through */
+        fallthrough;
     case X86EMUL_UNHANDLEABLE:
         hvm_dump_emulation_state(XENLOG_G_DEBUG, "Mem event", &ctx, rc);
         hvm_inject_hw_exception(trapnr, errcode);
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7f4b627b1f..d7f195ba9a 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4919,6 +4919,8 @@ static int do_altp2m_op(
 
     default:
         ASSERT_UNREACHABLE();
+        rc = -EOPNOTSUPP;
+        break;
     }
 
  out:
@@ -5020,6 +5022,8 @@ static int compat_altp2m_op(
 
     default:
         ASSERT_UNREACHABLE();
+        rc = -EOPNOTSUPP;
+        break;
     }
 
     return rc;
@@ -5283,6 +5287,7 @@ void hvm_get_segment_register(struct vcpu *v, enum x86_segment seg,
          * %cs and %tr are unconditionally present.  SVM ignores these present
          * bits and will happily run without them set.
          */
+        fallthrough;
     case x86_seg_cs:
         reg->p = 1;
         break;
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 7fb3136f0c..c1bd17571e 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -110,7 +110,7 @@ int hvm_hypercall(struct cpu_user_regs *regs)
     {
     case 8:
         eax = regs->rax;
-        /* Fallthrough to permission check. */
+        fallthrough;
     case 4:
     case 2:
         if ( currd->arch.monitor.guest_request_userspace_enabled &&
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index 210cebb0e6..1eab44defc 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -282,6 +282,7 @@ static void hvm_set_callback_irq_level(struct vcpu *v)
             __hvm_pci_intx_assert(d, pdev, pintx);
         else
             __hvm_pci_intx_deassert(d, pdev, pintx);
+        break;
     default:
         break;
     }
diff --git a/xen/arch/x86/hvm/pmtimer.c b/xen/arch/x86/hvm/pmtimer.c
index 97099ac305..87a7a01c9f 100644
--- a/xen/arch/x86/hvm/pmtimer.c
+++ b/xen/arch/x86/hvm/pmtimer.c
@@ -185,6 +185,7 @@ static int cf_check handle_evt_io(
                 gdprintk(XENLOG_WARNING, 
                          "Bad ACPI PM register write: %x bytes (%x) at %x\n", 
                          bytes, *val, port);
+                break;
             }
         }
         /* Fix up the SCI state to match the new register state */
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 988250dbc1..92bb10c504 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -681,6 +681,7 @@ static void cf_check svm_get_segment_register(
         ASSERT_UNREACHABLE();
         domain_crash(v->domain);
         *reg = (struct segment_register){};
+        break;
     }
 }
 
@@ -2416,6 +2417,7 @@ static void cf_check svm_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
         printk(XENLOG_G_ERR "%s(%pv, 0x%08x, 0x%016"PRIx64") Bad register\n",
                __func__, v, reg, val);
         domain_crash(d);
+        break;
     }
 }
 
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 9cfc82666a..2ec9594271 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -367,6 +367,7 @@ static void vlapic_accept_irq(struct vcpu *v, uint32_t icr_low)
         gdprintk(XENLOG_ERR, "TODO: unsupported delivery mode in ICR %x\n",
                  icr_low);
         domain_crash(v->domain);
+        break;
     }
 }
 
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 9b6dc51f36..9c5a22dafd 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1446,6 +1446,7 @@ struct vmx_msr_entry *vmx_find_msr(const struct vcpu *v, uint32_t msr,
 
     default:
         ASSERT_UNREACHABLE();
+        return NULL;
     }
 
     if ( !start )
@@ -1598,6 +1599,7 @@ int vmx_del_msr(struct vcpu *v, uint32_t msr, enum vmx_msr_list_type type)
 
     default:
         ASSERT_UNREACHABLE();
+        return -EINVAL;
     }
 
     if ( !start )
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index f16faa6a61..46911c3e1c 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -2745,6 +2745,7 @@ static void cf_check vmx_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
         printk(XENLOG_G_ERR "%s(%pv, 0x%08x, 0x%016"PRIx64") Bad register\n",
                __func__, v, reg, val);
         domain_crash(d);
+        break;
     }
     vmx_vmcs_exit(v);
 }
@@ -3393,7 +3394,7 @@ static int cf_check vmx_msr_read_intercept(
         *msr_content |= MSR_IA32_MISC_ENABLE_BTS_UNAVAIL |
                        MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL;
         /* Perhaps vpmu will change some bits. */
-        /* FALLTHROUGH */
+        fallthrough;
     case MSR_P6_PERFCTR(0)...MSR_P6_PERFCTR(7):
     case MSR_P6_EVNTSEL(0)...MSR_P6_EVNTSEL(3):
     case MSR_CORE_PERF_FIXED_CTR0...MSR_CORE_PERF_FIXED_CTR2:
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index 39290c9861..c05e0e9326 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -2768,6 +2768,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
         gprintk(XENLOG_ERR, "Unhandled nested vmexit: reason %u\n",
                 exit_reason);
         domain_crash(v->domain);
+        break;
     }
 
     return ( nvcpu->nv_vmexit_pending == 1 );
diff --git a/xen/arch/x86/hvm/vpic.c b/xen/arch/x86/hvm/vpic.c
index 7c3b5c7254..6427b08086 100644
--- a/xen/arch/x86/hvm/vpic.c
+++ b/xen/arch/x86/hvm/vpic.c
@@ -309,6 +309,7 @@ static void vpic_ioport_write(
             if ( !(vpic->init_state & 8) )
                 break; /* CASCADE mode: wait for write to ICW3. */
             /* SNGL mode: fall through (no ICW3). */
+            fallthrough;
         case 2:
             /* ICW3 */
             vpic->init_state++;
diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c
index e1d6845a28..5e7b9a9f66 100644
--- a/xen/arch/x86/hvm/vpt.c
+++ b/xen/arch/x86/hvm/vpt.c
@@ -119,8 +119,7 @@ static int pt_irq_masked(struct periodic_time *pt)
 
         gsi = hvm_isa_irq_to_gsi(pt->irq);
     }
-
-    /* Fallthrough to check if the interrupt is masked on the IO APIC. */
+        fallthrough;
     case PTSRC_ioapic:
     {
         int mask = vioapic_get_mask(v->domain, gsi);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:49:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:49:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759101.1168787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOtD-0006BV-4w; Mon, 15 Jul 2024 16:49:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759101.1168787; Mon, 15 Jul 2024 16: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 1sTOtD-0006BC-0a; Mon, 15 Jul 2024 16:49:27 +0000
Received: by outflank-mailman (input) for mailman id 759101;
 Mon, 15 Jul 2024 16:49: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOtA-0003ll-TQ
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:49:24 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 304cbd67-42ca-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:49:23 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id 83A7D4EE073E;
 Mon, 15 Jul 2024 18:49: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: 304cbd67-42ca-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH v4 8/9] x86/mm: add defensive return
Date: Mon, 15 Jul 2024 18:48:59 +0200
Message-Id: <de98fe0d6b36383b6eb8d1a9b077b0b387ae0848.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add defensive return statement at the end of an unreachable
default case. Other than improve safety, this meets the requirements
to deviate a violation of MISRA C Rule 16.3: "An unconditional `break'
statement shall terminate every switch-clause".

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
No changes from v3, further feedback on this thread would be appreciated:
https://lists.xenproject.org/archives/html/xen-devel/2024-07/msg00474.html
---
 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 648d6dd475..a1e28b3360 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -916,6 +916,7 @@ get_page_from_l1e(
                 return 0;
             default:
                 ASSERT_UNREACHABLE();
+                return -EPERM;
             }
         }
         else if ( l1f & _PAGE_RW )
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:49:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:49:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759105.1168797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOtE-0006WZ-KN; Mon, 15 Jul 2024 16:49:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759105.1168797; Mon, 15 Jul 2024 16:49:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOtE-0006Vx-DW; Mon, 15 Jul 2024 16:49:28 +0000
Received: by outflank-mailman (input) for mailman id 759105;
 Mon, 15 Jul 2024 16:49: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTOtD-0003ly-3s
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:49:27 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 31a75d49-42ca-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 18:49:25 +0200 (CEST)
Received: from truciolo.bugseng.com (unknown [37.163.111.28])
 by support.bugseng.com (Postfix) with ESMTPSA id A2FD54EE0742;
 Mon, 15 Jul 2024 18:49: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: 31a75d49-42ca-11ef-bbfb-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v4 9/9] x86/mpparse: address a violation of MISRA C Rule 16.3
Date: Mon, 15 Jul 2024 18:49:00 +0200
Message-Id: <c72a1b9b35303fd0f13fb5a13713477cf80da878.1721050709.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
References: <cover.1721050709.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a missing break statement to address a violation of
MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/mpparse.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c
index d8ccab2449..306d8ed97a 100644
--- a/xen/arch/x86/mpparse.c
+++ b/xen/arch/x86/mpparse.c
@@ -544,6 +544,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
 		case 4:
 		case 7:
 			memcpy(bus.mpc_bustype, "MCA   ", 6);
+			break;
 	}
 	MP_bus_info(&bus);
 	if (mpc_default_type > 4) {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:53:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:53:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759136.1168807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOxV-0001hg-0n; Mon, 15 Jul 2024 16:53:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759136.1168807; Mon, 15 Jul 2024 16:53: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 1sTOxU-0001hZ-UY; Mon, 15 Jul 2024 16:53:52 +0000
Received: by outflank-mailman (input) for mailman id 759136;
 Mon, 15 Jul 2024 16:53: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=FzxU=OP=bounce.vates.tech=bounce-md_30504962.6695541b.v1-1b53374b6cbb4c9c80dff4ce05751766@srs-se1.protection.inumbo.net>)
 id 1sTOxT-0001hT-BT
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:53:51 +0000
Received: from mail186-27.suw21.mandrillapp.com
 (mail186-27.suw21.mandrillapp.com [198.2.186.27])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce42bb31-42ca-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 18:53:49 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-27.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4WN7ZM4lQPz6CPyKp
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 16:53:47 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1b53374b6cbb4c9c80dff4ce05751766; Mon, 15 Jul 2024 16:53: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: ce42bb31-42ca-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721062427; x=1721322927;
	bh=P6SEnbZd/odoYl5abbfmQNDDIlQVEao/1tXgtnbaZpw=;
	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=hbFj4j8bAxoDE/dxkp8OAZBGCFQ3qG+29uVc0LqqvPNakaBJHWWfzVrDPqdPWXvqO
	 fFpXOryExG13CxdXUmAxlzW0pnHC7hl9ep5c2oO6d0ZMyT4Qxai0nYwHOQQ/H6mqKo
	 0sk2Ycz0kMMvrzaTitpsRuBuOY5X/Vncpt/9JiXNmfLSzTNxzo1mT/CgYHHFOsF0nY
	 rTZumaLFKsEEYWiXWViMPVn94TmJTxZiq4ABTpR5kDoF4KO71E82vlHzoIm03LwWAZ
	 KeIsu40gdqs53zFI6Ol4t+n9ctiL/gCHRUyPbwnIWqpHzEScD36LrQH4GHvH9+SghN
	 05MfpQw9I67vg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721062427; x=1721322927; i=anthony.perard@vates.tech;
	bh=P6SEnbZd/odoYl5abbfmQNDDIlQVEao/1tXgtnbaZpw=;
	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=PPenwSiVieQjZ6h+XHqadqWCRG98xU9WSQ8xVtx6ppzcx3JN0szY1l3nMrkFu2XoH
	 No1Q6qsYoHdFojkb+jo2nOEhDfg/YDVjWPzLC3NVBl0TtM47wpGpgeoQnWOqjwr1JJ
	 cSDDqHre7APyo39F3eQ75WO04O4Ia6d/e3NGVZL2ws+osDQhNufitwMEo1c5SNN2MA
	 2PWxmTdWgp5uZmIPzlTqS9JtX/eGfZa7z2Uj9PRf5+/+il5/QP+Iq6UHa4iOKf0Zmo
	 9bQHRiN8gsBg4NE9Nac9FkPOhWa4EiUzKNwN62eOa7578444UZ2MRi4gzMPZ9nJsGr
	 QHTP8op27grlg==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2022/12]=20tools/examples:=20Remove=20more=20obsolete=20content?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721062426302
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Message-Id: <ZpVUGYOHHekE+zMh@l14>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com> <20240715151640.3374005-1-andrew.cooper3@citrix.com>
In-Reply-To: <20240715151640.3374005-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.1b53374b6cbb4c9c80dff4ce05751766?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240715:md
Date: Mon, 15 Jul 2024 16:53:47 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Jul 15, 2024 at 04:16:40PM +0100, Andrew Cooper wrote:
> xeninfo.pl was introduced in commit 1b0a8bb57e3e ("Added xeninfo.pl, a script
> for collecting statistics from Xen hosts using the Xen-API") and has been
> touched exactly twice since to remove hardcoded IP addresses and paths.

Xen-API, is that xapi?

> The configuration files in vnc/* date from when we had a vendered version of
> Qemu living in the tree.

I guess QEMU at that time didn't have VNC support? Because looks like
the vnc config was supposed to be put in a guest, and `xm` had support
for it.

> These have never (AFAICT) been wired into the `make install` rule.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Anyway, patch looks good:
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 Jul 15 16:56:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:56:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759159.1168818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTOzw-0002LQ-Da; Mon, 15 Jul 2024 16:56:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759159.1168818; Mon, 15 Jul 2024 16:56: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 1sTOzw-0002LJ-AW; Mon, 15 Jul 2024 16:56:24 +0000
Received: by outflank-mailman (input) for mailman id 759159;
 Mon, 15 Jul 2024 16:56:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sTOzu-0002Ia-I7
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:56:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sTOzu-0002IC-AV; Mon, 15 Jul 2024 16:56:22 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.0.211])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sTOzu-0007ry-4R; Mon, 15 Jul 2024 16:56:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=kaT9FQZRbqsKKamuTNhRvaOwqygl1r+HPoAkGyDKqaU=; b=p2SZ4xy20mC3m7lP2P+OgM6Hym
	wksrtF3F2sm4by7qJG3KOIXUCiiZ1zMYSNNJVfipBLqDC0b2BslOyPdnUv0yM10FB2zlD+jQ0Tks8
	dMsEzzJGYwxLWMHrFDDTIknFpesKFOay8NGKG028594TBVgTvzCYYFx5G7c3siDXWLs4=;
Message-ID: <3b188f84-50f7-4e13-bcde-1d6076e5cc2d@xen.org>
Date: Mon, 15 Jul 2024 17:56:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 15/07/2024 16:50, Andrew Cooper wrote:
> An earlier part of the checklist states:
> 
>    * change xen-unstable README. The banner (generated using figlet) should say:
>        - "Xen 4.5" in releases and on stable branches
>        - "Xen 4.5-unstable" on unstable
>        - "Xen 4.5-rc" for release candidate
> 
> Update the notes about XEN_EXTRAVERSION to match.

We have been tagging the tree with 4.5.0-rcX. So I think it would be 
better to update the wording so we use a consistent naming.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 16:58:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 16:58:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759209.1168829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTP1r-0003PE-Oj; Mon, 15 Jul 2024 16:58:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759209.1168829; Mon, 15 Jul 2024 16:58:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTP1r-0003P7-Kj; Mon, 15 Jul 2024 16:58:23 +0000
Received: by outflank-mailman (input) for mailman id 759209;
 Mon, 15 Jul 2024 16:58:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sTP1q-0003P1-By
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 16:58:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sTP1q-0002KA-7U; Mon, 15 Jul 2024 16:58:22 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.0.211])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sTP1q-0007yp-1O; Mon, 15 Jul 2024 16:58:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=lCziwif5S7EsgbO8ZmKIhaQfkLcRDa5dkscscSXfmP8=; b=K9sgQsQtYRjE0Gd606Bj2MAP4g
	f9rzgp7oed09jmjk3WIKF3RjSktZivtWKSfZP7y029moTPy1AwzJwEMnk6oPUDcUE0ozzwwn4HoRd
	Fwo303FFc+A0WTItyHb6GEv4FM33ibJJq/r01ZZxQP7KwEoS26jOBNAE8yLbaO9V1hyk=;
Message-ID: <7db0879f-93a3-4690-8ba5-1f0897027e47@xen.org>
Date: Mon, 15 Jul 2024 17:58:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC for-4.19] docs/checklist: Start tagging new dev
 windows
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240715164639.3378294-1-andrew.cooper3@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20240715164639.3378294-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Andrew,

On 15/07/2024 17:46, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

With one remark below:

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

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> This is about figuring out when a change was first introduced.  Take
> 10b719dc88 for example (completely random pick).
> 
> The right answer is `git tag --contains $sha` and look for the oldest
> RELEASE-$X.  In this case it's Xen 4.6, but the tags are not numerically
> sorted so the answer is towards the end of the list of 166 tags.
> 
> The better answer would be to `git describe $sha` because git has an algorithm
> to do this nicely.  In this case, it's 4.5.0-rc4-934-g10b719dc8830 because we
> branch first and tag RELEASE-4.6.0 on the branch, rather than releasing off
> master.
> 
> With 0082626f35af (opening of the 4.6 tree) containing an annotated tag of
> 4.6-dev, git describe now gives 4.6-dev-902-g10b719dc8830 which far more
> helpful when doing code archeology.

I think some of this explanation should be in the commit message.

> 
> I propose that we retroactively tag each commit which opened a new dev
> tree (the commit which changes the version number)
> 
> Looking back in history, Keir did used to tag the point that the tree
> branched, but that seems to have stopped when moving from HG to git.
> 
> Thoughts?
> ---
>   docs/process/branching-checklist.txt          | 3 ++-
>   docs/process/release-technician-checklist.txt | 2 ++
>   2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/docs/process/branching-checklist.txt b/docs/process/branching-checklist.txt
> index 3dfa8ec2570b..b2bb9ac1fa00 100644
> --- a/docs/process/branching-checklist.txt
> +++ b/docs/process/branching-checklist.txt
> @@ -79,7 +79,8 @@ The variables and there content should be:
>   Where X.Y is the release version (e.g. 4.17).
>   
>   Update newly diverging staging (unstable) according to
> -release-technician-checklist.txt section re README etc.
> +release-technician-checklist.txt section re README etc.,
> +including tagging the new dev window.
>   
>   Update newly diverging staging-$v according to
>   release-technician-checklist.txt section re README etc.,
> diff --git a/docs/process/release-technician-checklist.txt b/docs/process/release-technician-checklist.txt
> index e6db02b87585..7d2d90e57e7b 100644
> --- a/docs/process/release-technician-checklist.txt
> +++ b/docs/process/release-technician-checklist.txt
> @@ -79,6 +79,8 @@ t=RELEASE-$r
>   #           - xen/Kconfig.debug
>   #                 config DEBUG
>   #                     default n
> +#
> +#    - tag staging branch for the new dev window.  e.g. 4.20-dev
>   
>   * tag xen-unstable
>   
> 
> base-commit: 1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
> prerequisite-patch-id: 2ea535e6248ebf47b5db0c59db0f4fcfc7a74cf9

Cheers,


-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 17:17:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 17:17:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759217.1168838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTPKL-0006xA-7T; Mon, 15 Jul 2024 17:17:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759217.1168838; Mon, 15 Jul 2024 17:17: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 1sTPKL-0006x3-4C; Mon, 15 Jul 2024 17:17:29 +0000
Received: by outflank-mailman (input) for mailman id 759217;
 Mon, 15 Jul 2024 17:17:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kjrg=OP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sTPKJ-0006wx-5S
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 17:17:27 +0000
Received: from mail-qk1-x72e.google.com (mail-qk1-x72e.google.com
 [2607:f8b0:4864:20::72e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a13e7d5-42ce-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 19:17:24 +0200 (CEST)
Received: by mail-qk1-x72e.google.com with SMTP id
 af79cd13be357-79f190d8ebfso263788485a.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 10:17:24 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a160c6f54asm218076785a.121.2024.07.15.10.17.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 10:17: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: 1a13e7d5-42ce-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721063843; x=1721668643; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hSMeIAIsSAsWysAgG5KOa0+7KQ+RbdOmBwF42aMVp6M=;
        b=TYYQxwGvBsFAMpA2f5ZDZYbJnM3stkKtbXCMBAY35ZLRUvFh7T8a7N5SHsQaQ2JijH
         SOTgw6wm8WGR8mKssOm7tU8Re3d4Vvyj2wYT6nGej6Kmqz2DlL4kXKDgwctoHIKIYwl6
         E4TYmTgc41CiOIYcnyIiljWXDj6kDSj4sY+A0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721063843; x=1721668643;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hSMeIAIsSAsWysAgG5KOa0+7KQ+RbdOmBwF42aMVp6M=;
        b=v4m9jvqX6z60VLdmuBqlbDinsXYZD4pE03NJlpblEES1eDkj2P2z3T3Z7LlR/A6p6L
         5HUtdRgpZAi0Ga4jTHRNnQSXKbfnrbsvEFjzcTJLtjUffBtsf+cW101gd91wbt9Byg/i
         G4STmQWyy52kyyEsWkejD8a1LjgvX4JpXfMn5bxLUCd1M3VeZNjq+cTHulC2FDhKwiAE
         EUcbFvBTrCJybfy0nC8xWJ9ZH7GfJ1PCSvkJQaRExxIESteAt11qPWuaMu5qEAxXnI9Y
         qu1vDeQtFVD91JcvJK87GtBjs9ppU9UlBnemUR4Ti7IujO5whQlQ9amlFMHVdhrnmetZ
         xDEQ==
X-Gm-Message-State: AOJu0Yxy6lI7r9ITJySjOQjQTWBON4c3PjPM+5+bSdphBBSXdY3jXKzl
	T2+FcvsJYS6NxRXeZETQ8VNBf9cGT9I6lkSjabh5x9HPax+TzY3hthlYgd8YBEHBJeGXUGIQfu7
	P
X-Google-Smtp-Source: AGHT+IGCBE//5KXnPhIEEZEevGQHRtwmhvnym3R2aRiDCzhnR8bXApI3eLyppjlzy1f+Wg689P1lQA==
X-Received: by 2002:a05:620a:4484:b0:79f:22e:94a6 with SMTP id af79cd13be357-7a179f3fbf6mr49373685a.23.1721063843465;
        Mon, 15 Jul 2024 10:17:23 -0700 (PDT)
Message-ID: <ad921dec-ca2e-4a0d-b63e-810cab985faa@citrix.com>
Date: Mon, 15 Jul 2024 18:17:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 22/12] tools/examples: Remove more obsolete content
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240711111517.3064810-1-andrew.cooper3@citrix.com>
 <20240715151640.3374005-1-andrew.cooper3@citrix.com> <ZpVUGYOHHekE+zMh@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZpVUGYOHHekE+zMh@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/07/2024 5:53 pm, Anthony PERARD wrote:
> On Mon, Jul 15, 2024 at 04:16:40PM +0100, Andrew Cooper wrote:
>> xeninfo.pl was introduced in commit 1b0a8bb57e3e ("Added xeninfo.pl, a script
>> for collecting statistics from Xen hosts using the Xen-API") and has been
>> touched exactly twice since to remove hardcoded IP addresses and paths.
> Xen-API, is that xapi?

Yes.  xapi is a contraction of Xen-API, but even the docs intermix the
two names.  https://xapi-project.github.io/xen-api/

>
>> The configuration files in vnc/* date from when we had a vendered version of
>> Qemu living in the tree.
> I guess QEMU at that time didn't have VNC support? Because looks like
> the vnc config was supposed to be put in a guest, and `xm` had support
> for it.

Thinking about it, this may have been for PV guests instead.  We used to
have a mode in XenServer to inject vnc configuration into a PV guest in
order to get a GUI installer rather than the TUI one.

Either way, xl doesn't have --vnc, although it does have -V which seems
to have subsumed this functionality.


>
>> These have never (AFAICT) been wired into the `make install` rule.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Anyway, patch looks good:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 17:29:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 17:29:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759222.1168848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTPW5-0000jq-8E; Mon, 15 Jul 2024 17:29:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759222.1168848; Mon, 15 Jul 2024 17:29:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTPW5-0000jj-5k; Mon, 15 Jul 2024 17:29:37 +0000
Received: by outflank-mailman (input) for mailman id 759222;
 Mon, 15 Jul 2024 17:29: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=f3wo=OP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTPW3-0000jd-U6
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 17:29:35 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ccf70847-42cf-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 19:29:33 +0200 (CEST)
Received: from [192.168.1.113] (93-36-220-117.ip62.fastwebnet.it
 [93.36.220.117])
 by support.bugseng.com (Postfix) with ESMTPSA id A71294EE0737;
 Mon, 15 Jul 2024 19:29: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: ccf70847-42cf-11ef-8776-851b0ebba9a2
Message-ID: <460f7ef8-4080-4c4f-8437-cf5de4a4b89e@bugseng.com>
Date: Mon, 15 Jul 2024 19:29:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 07/12] x86/hvm: address violations of MISRA C Rule
 16.3
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>, consulting@bugseng.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1719383180.git.federico.serafini@bugseng.com>
 <87cfe4d3e75c3a7d4174393a31aaaf80e0e60633.1719383180.git.federico.serafini@bugseng.com>
 <2c60ef16-e17c-48dd-911a-d1734aed6da5@suse.com>
 <f4eb47f2-ba7e-4326-b2c3-5d1c97cadd5b@bugseng.com>
 <alpine.DEB.2.22.394.2407121619270.3635@ubuntu-linux-20-04-desktop>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG
In-Reply-To: <alpine.DEB.2.22.394.2407121619270.3635@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/07/24 01:25, Stefano Stabellini wrote:
> On Tue, 2 Jul 2024, Federico Serafini wrote:
>> On 01/07/24 10:47, Jan Beulich wrote:
>>> On 26.06.2024 11:28, Federico Serafini wrote:
>>>> @@ -2798,11 +2800,12 @@ void hvm_emulate_one_vm_event(enum emul_kind kind,
>>>> unsigned int trapnr,
>>>>            hvio->mmio_insn_bytes = sizeof(hvio->mmio_insn);
>>>>            memcpy(hvio->mmio_insn, curr->arch.vm_event->emul.insn.data,
>>>>                   hvio->mmio_insn_bytes);
>>>> +        fallthrough;
>>>>        }
>>>> -    /* Fall-through */
>>>>        default:
>>>
>>> Can you clarify for me please whether this arrangement actually helps?
>>> I'm pretty sure it'll result in a Coverity complaint, as my understanding
>>> is that for them the marker (comment or pseudo-keyword) has to immediately
>>> precede the subsequent label. IOW even if you confirmed that Eclair is
>>> smarter in this regard, it may still need converting to
>>>
>>>           hvio->mmio_insn_bytes = sizeof(hvio->mmio_insn);
>>>           memcpy(hvio->mmio_insn, curr->arch.vm_event->emul.insn.data,
>>>                  hvio->mmio_insn_bytes);
>>>       }
>>>           fallthrough;
>>>       default:
>>>
>>
>> Yes, this is ok for ECLAIR.
> 
> Given that Jan might be right that Coverity and others would prefer the
> keyword on the line immediately above "default", and given that it works
> anyway for ECLAIR, then I think it would be better to stay on the safe
> side and move the "fallback" right on top of default.
> 
> If you are OK with it, please resend this patch and following patches.
> Patches 1-6 are fully acked and I'd be happy to take them in my for-4.20
> branch.

V4 sent:
https://lists.xenproject.org/archives/html/xen-devel/2024-07/msg00823.html

-- 
Federico Serafini, M.Sc.

Software Engineer, BUGSENG (http://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 18:18:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 18:18:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759231.1168859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTQHH-0008By-SG; Mon, 15 Jul 2024 18:18:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759231.1168859; Mon, 15 Jul 2024 18:18: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 1sTQHH-0008Br-Nh; Mon, 15 Jul 2024 18:18:23 +0000
Received: by outflank-mailman (input) for mailman id 759231;
 Mon, 15 Jul 2024 18:18:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTQHG-0008Bh-5W; Mon, 15 Jul 2024 18:18:22 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTQHF-0003vO-VY; Mon, 15 Jul 2024 18:18:22 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTQHF-00018r-Ku; Mon, 15 Jul 2024 18:18:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTQHF-0006E9-KO; Mon, 15 Jul 2024 18:18:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=WUQQVy0cQEF9AEuV8ajZdBzwjoxVanOiQkVUu9rJxUc=; b=d13LUvGoBG7Pk/JR1Y/gH7vBxZ
	DfQKzbTUbp/j2VSLK7kj2HHzCTb3fcbUu8uKqDSww4KpcwMALSL5i4MTQv+pPEVGtupD9URgLhP9U
	DTICyNU2k99QSEGqgojpKnmL5AoTg/z1IHpUMAh0WGVMqIel6ei1K4qB3GleiFKyDZoQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186804-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-6.1 test] 186804: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-6.1:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=cac15753b8ceb505a3c646f83a86dccbab9e33a3
X-Osstest-Versions-That:
    linux=266ee8e06d5baa186a0b5b8727eb99ae2d00dc9c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Jul 2024 18:18:21 +0000

flight 186804 linux-6.1 real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186804/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186763
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186763
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186763
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186763
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186763
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186763
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                cac15753b8ceb505a3c646f83a86dccbab9e33a3
baseline version:
 linux                266ee8e06d5baa186a0b5b8727eb99ae2d00dc9c

Last test of basis   186763  2024-07-11 11:12:22 Z    4 days
Testing same since   186804  2024-07-15 07:48:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   266ee8e06d5b..cac15753b8ce  cac15753b8ceb505a3c646f83a86dccbab9e33a3 -> tested/linux-6.1


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 18:32:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 18:32:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759239.1168868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTQUw-0002Uv-22; Mon, 15 Jul 2024 18:32:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759239.1168868; Mon, 15 Jul 2024 18: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 1sTQUv-0002Uo-V5; Mon, 15 Jul 2024 18:32:29 +0000
Received: by outflank-mailman (input) for mailman id 759239;
 Mon, 15 Jul 2024 18:32:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hkUO=OP=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sTQUu-0002Ui-DD
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 18:32:28 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20602.outbound.protection.outlook.com
 [2a01:111:f400:7ea9::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 93a7fd96-42d8-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 20:32:25 +0200 (CEST)
Received: from SN7PR04CA0015.namprd04.prod.outlook.com (2603:10b6:806:f2::20)
 by SA1PR12MB7152.namprd12.prod.outlook.com (2603:10b6:806:2b2::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.29; Mon, 15 Jul
 2024 18:32:19 +0000
Received: from SA2PEPF00003AEA.namprd02.prod.outlook.com
 (2603:10b6:806:f2:cafe::24) by SN7PR04CA0015.outlook.office365.com
 (2603:10b6:806:f2::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.29 via Frontend
 Transport; Mon, 15 Jul 2024 18:32:19 +0000
Received: from SATLEXMB04.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.7784.11 via Frontend Transport; Mon, 15 Jul 2024 18:32:18 +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, 15 Jul
 2024 13:32:18 -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, 15 Jul
 2024 13:32:17 -0500
Received: from [172.27.205.14] (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, 15 Jul 2024 13:32: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: 93a7fd96-42d8-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FdoSu3+e4jF0ZhIGWgpb2VrdTEbBqY2AJQtVOw2NNjkdY8vgBjtw+ucalKjUWriWVX55sQUdQDoTbSQq8p9TWddfySJnu8F/AFo5yxEM3lwjOs3vtE+q74c82n45T+CqtrEJX1VGwj8liI0jN69M3vrGqKggnqc2SxKgAfaUHkYDrJwgLbyIguK1ay70c9vPyHKQs0XICI8gHCFtahn/H/cJ5UTQw0jX1XYfTtsSPp6p0D2EcrFlQTAdA5yr9kGv1vvzVBerpHJPqYb5VopqfGqvp0ZrIHAgSWM3+h9MB61++TMnmziVKzP1oOymhPVzcOA4YWjhZCzWSu2PWz3Bww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1C3jnD4YB0+sJlwqntGkTkqicO5a54EUrt+0mMsuqj4=;
 b=IW89/ljgeT9AXMCXTivmqeyXHsdP57070+nq1H+aqC4OZvFSv+c4jlFb6gbx4SDPVP5g/NrfnHf2lfDSTYylsqUO+dJPmK34myjbSgM4e6Op7eBWQQ+2iy3yTG7BhR0t0lBgULUFzvnIAWr8SCz+ut9ZrhWgg8z4Y1QwdPMfI+gRpoDRCRgieFC95eqDy8xIRvKCPVfHAQihXb0JjHbzJUxVtg/ZwaGti8MranaFMAi8IHccmQYz4RV502SfjaXBam6P74/4db5s9UEpXjHIv2O4olUf//Mrn6/aY29c/sa8iPv5gOdMr8+7GNXAgkgRSkni7ZLgaV44tSZ0u52xHw==
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=1C3jnD4YB0+sJlwqntGkTkqicO5a54EUrt+0mMsuqj4=;
 b=ciKJ/htOoKEqgDcj8AKNE2JKxn5SuKGLw7uly0iyodenma3dUsyXQPz4RQDHXva5ATJiQyItUvSqqiJ6aW2Kn2293aZqENuMK0EZ58GFnxl2NXkv35KkCZHpNiFL/X2b9vXrkgcwHCetcKyiT0ey/8f15bKbtpGC/kpSr2lUhhM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <c2bc48f1-cdab-4cf5-bd41-f7b4a05a433d@amd.com>
Date: Mon, 15 Jul 2024 14:32:09 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 2/2] x86/cpufreq: separate powernow/hwp/acpi
 cpufreq code
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>, <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Jan Beulich <jbeulich@suse.com>
References: <cover.1720596402.git.Sergiy_Kibrik@epam.com>
 <56f61a1e22ba77fb352d7a18203935c26c815646.1720596402.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <56f61a1e22ba77fb352d7a18203935c26c815646.1720596402.git.Sergiy_Kibrik@epam.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: SA2PEPF00003AEA:EE_|SA1PR12MB7152:EE_
X-MS-Office365-Filtering-Correlation-Id: 52499c35-d083-4ba4-0f72-08dca4fc756a
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?Q3dROElOQmhWRFV0ZmZwMnlxWlhoZTlwcDE0YVd3VVRaVm9mWnZOR0dwWU9Q?=
 =?utf-8?B?Z1dnaHE4bGFCNXpjVkY1bnZpMldxeDY4RFU4ZkcvZjdyVytpdUxmVGtwcG54?=
 =?utf-8?B?WWJuR0lOdTVwalp6YmRLUXJMSDhNaXlXdDJBVXo4V1NhZEFHVUhqbmFsNGFL?=
 =?utf-8?B?R0hRU24wc0x0KzFBMmdjWktmMmgyb0tqcEJwbU52bXJzU0VUajhWLzZUMkdk?=
 =?utf-8?B?dWZpTGd1Q2hEVWVhZDFpSkd2bjhrWVM2dnNwRzNJOHFtZUZ4ZUh2OUNtSnlY?=
 =?utf-8?B?U014ZUlGakNBZmRWaU1VRHJURHA5VTF5Q0N1NXNBcnZsdm5vZEhUVE96dERM?=
 =?utf-8?B?dDkrVmRRR2M4Y1BtVkZwK216UkpDOFdDcHdKeFc4YkJsR2huY3FkOHAvZEJO?=
 =?utf-8?B?THdwSWtYVnZWU2l4UStnYnBHWjUyWFNSQ2cvOCtjSTd1d3F1RGl2L2QwNyt6?=
 =?utf-8?B?cWtNYzB4OGZFUENhKy9OVm12MVJWTEZNSHByNUwxLy9jd3NINnhqcDVLbWd4?=
 =?utf-8?B?RkdtUk83ZW1va0MrdmZzakJ5YmV6eCt4T1B2ZzhXR1lWSnM2dkJmTUtPU1dw?=
 =?utf-8?B?Zk9CT2pVZ25sczRCVkdzMEtqUWkxcGxhRFNreUw2RjY3TlczNllNVVR6UUFv?=
 =?utf-8?B?OGk3TzMrT0JDU2dKbSs0UDNyY1JMTVlhcUZNczE3OG9GazFpNmh6SXZtS3o2?=
 =?utf-8?B?aksrNmE4Y2tudVJLMklrTmUrZnYwZWJLYzBQU3d6OG40eEluRXFucTV3L2Yr?=
 =?utf-8?B?MHJTbks3bUE2UEJ6SGJaWEMzQmVDQWpQdVcva1ZLbHh4bUFWa0M2UXVlWjFD?=
 =?utf-8?B?M0orVFlCbHB6UzJON254cVA1bkRQd0tqazRJM1lHSmZMZVlxR0hoTnJXNjU5?=
 =?utf-8?B?aEVXY0gzejUwc3UvOUF4ZU5vVWhPRXVJR2tRSzZIOFk1NmFqbTI4NHdBUHdS?=
 =?utf-8?B?N3gwbzVnSEdGSGtROFdWMDBjVGppbUdPN2UxcnYvc1hyZWM1aFlHOElMY2c0?=
 =?utf-8?B?VFU3LzFldVBGa0U2NTQvWFVvbVlCcHpzUHcrSFlKTk1vd2xzYmUyRldENE9h?=
 =?utf-8?B?YWErWkdXZ0VKTHVweVFQL0pQZy9BcHVMTFhzck9mY3dYWmNRcHpSQkpuQ3Iw?=
 =?utf-8?B?MndxdndaQ1U5ZmF5TmdvQ085bVdkbG9uK3NNOVRxUzlRTW9raXUvcjVXVjVi?=
 =?utf-8?B?ajR0VElRL3l0dkt1ZDFnU3FFeGxhN0FmVE91MkU3eFhlR0JMN2UrODVYZ3hL?=
 =?utf-8?B?WDlJNENXVkFMeWJ1RUorU2F3ZUF6aDUrUThXNEZTTUZ6a1NrU25KWWdHZjZt?=
 =?utf-8?B?a04rcWlTbmtuRFBlMnltaXZIOWhGdjF3RFRaRWw1U2NYZDhmdk5lNDRFVXdz?=
 =?utf-8?B?RTdNWS9UbmRkS01LRGJnMmZzdE5neU5LRzdaVTdOeGh3cjY0MUlzMHIvS09V?=
 =?utf-8?B?Nk9OYlB0cG1zTmxDTXJ5MXF4R0UzT3NjbzNManN4NzR6TEVyeTFqMWorT2Vk?=
 =?utf-8?B?ZTYwaE5Rc2h6TzE5QUQzK1NacWVXUHphWk1VWngvM1lIVDBBc2xuMkdiUzFO?=
 =?utf-8?B?YXpFSjIxQ2FpY1Q5VlVFRVZ4cmlENmF1U0xuT2FEaVNBbGplY0pqRUY4anJL?=
 =?utf-8?B?R1diRnh4cmhRN29MT0FSOHVwaGhCMTZmcWQvQUM0OFFCNG1NUjZDcU12RjE2?=
 =?utf-8?B?dWdJMk1Uamk3Sit2bVNrd3NVVitYb1JvblM3NlRvUFp3SnNlZFNyY2p2b2Ro?=
 =?utf-8?B?NzB0WXp4SEtkU0cvR2VDSHAxRVROUGU0ekVqN0dRRmV3YWR5d1RjaG4xbzZM?=
 =?utf-8?B?aE1yTFBhUWlNV3o1NzRCSGxwejUzQVRhcVFHdWdCeDVSdUk3NEE1dG9GWlJj?=
 =?utf-8?B?OVFXVElWUXFRdWNBNHBmWmpqSTZzWE5NRkRWUzJLWmxKNkl6SHZaQkt1Zk5r?=
 =?utf-8?Q?bEXrxyiPyqsP95CPThBudga1RI8EO83u?=
X-Forefront-Antispam-Report:
	CIP:165.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: 15 Jul 2024 18:32:18.7429
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 52499c35-d083-4ba4-0f72-08dca4fc756a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.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: SA1PR12MB7152

On 2024-07-10 04:30, Sergiy Kibrik wrote:
> Build AMD Architectural P-state driver when CONFIG_AMD is on, and
> Intel Hardware P-States driver together with ACPI Processor P-States driver
> when CONFIG_INTEL is on respectively, allowing for a platform-specific build.
> 
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> CC: Jason Andryuk <jason.andryuk@amd.com>
> CC: Jan Beulich <jbeulich@suse.com>

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

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 19:42:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 19:42:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759245.1168877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTRaL-0003Ka-Qf; Mon, 15 Jul 2024 19:42:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759245.1168877; Mon, 15 Jul 2024 19: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 1sTRaL-0003KT-OD; Mon, 15 Jul 2024 19:42:09 +0000
Received: by outflank-mailman (input) for mailman id 759245;
 Mon, 15 Jul 2024 19: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=Ba80=OP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sTRaJ-0003KN-Hg
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 19:42:07 +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 4fd4a680-42e2-11ef-8776-851b0ebba9a2;
 Mon, 15 Jul 2024 21:42:05 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 4F1746124F;
 Mon, 15 Jul 2024 19:42:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34ADAC32782;
 Mon, 15 Jul 2024 19:42: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: 4fd4a680-42e2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721072523;
	bh=9bL5aZ57i9PT8NneMLQUACh3VMswOuq80P3MfepiOi0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fkXUGyKlvE/ts/p6DL63Nx7YMQMb0zMelfRihZz59wSfl0uAakqaA1C7dVr1tK2ck
	 eDrth6TT9ZAVpiu9bO8yq0fLeiW+nzdgIT+5QpK2q8jNAb95NXs/r7OMKFb/AckzLq
	 uEU0nw+91uG+yJicC5zjl6CCuvvjbltJ018LMGEcKCPZwmi/nW0iyf3DygLsCG1CVn
	 QvO0pmr0Ulq5yVxHWxqbcDgjoHZd0W9xkpBO3b7MCIUfBA7Qh7ZRKdjMbhF+Ht4C1J
	 hzGxRlrKI5b/b3zlMu5BG448vKDMNdD2C01o2Ru0ftHuX9Dy5Bogo/bzfT+iYUOcJ3
	 rew6nLOGqQoKw==
Date: Mon, 15 Jul 2024 12:42:00 -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, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH for-4.20] MAINTAINERS: Add me and Bertrand as device tree
 maintainers
In-Reply-To: <20240715093251.35371-1-michal.orzel@amd.com>
Message-ID: <alpine.DEB.2.22.394.2407151241520.3635@ubuntu-linux-20-04-desktop>
References: <20240715093251.35371-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 Mon, 15 Jul 2024, Michal Orzel wrote:
> With Arm port being the major recipient of dt related patches and the
> future need of incorporating dt support into other ports, we'd like to
> keep an eye on these changes.
> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

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


> ---
>  MAINTAINERS | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 2b0c8945270e..f47bdb33d510 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -293,6 +293,8 @@ F:	xen/common/sched/*cpupool.c
>  DEVICE TREE
>  M:	Stefano Stabellini <sstabellini@kernel.org>
>  M:	Julien Grall <julien@xen.org>
> +M:	Bertrand Marquis <bertrand.marquis@arm.com>
> +M:	Michal Orzel <michal.orzel@amd.com>
>  S:	Supported
>  F:	xen/common/libfdt/
>  F:	xen/common/device_tree.c
> -- 
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 20:07:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 20:07:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759251.1168888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTRyO-0006aT-Pj; Mon, 15 Jul 2024 20:07:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759251.1168888; Mon, 15 Jul 2024 20:07:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTRyO-0006aM-Lr; Mon, 15 Jul 2024 20:07:00 +0000
Received: by outflank-mailman (input) for mailman id 759251;
 Mon, 15 Jul 2024 20:06:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTRyN-0006aC-Iq; Mon, 15 Jul 2024 20:06:59 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTRyN-0006B8-Dz; Mon, 15 Jul 2024 20:06:59 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTRyN-0006Um-13; Mon, 15 Jul 2024 20:06:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTRyN-0007Nr-0d; Mon, 15 Jul 2024 20:06: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=yDO735SY/PbmTAhGpItVJ2fL50FAhgsBm+1nxp6uNpY=; b=rlLsm/cASOPosa2taQpPzH2gF2
	yx6tDDnHrS9TKx4LsdOehPppUg7HO9MROVSdkBe2cUPjFOySuDB2y7lI0yhTzn4KUA6TWghl8Q2h1
	NoR9RV8AVdmlqswYWIXED/Smr1r6GNliygiLgr/uzgFQ+f4pxO5zVv94BeIefpvnQiF8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186810-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186810: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=8e6ba0dcae40bfd4c191b2cd47e08f38186513d1
X-Osstest-Versions-That:
    ovmf=5366def8d01d141163a727aeaef61318180deb98
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Jul 2024 20:06:59 +0000

flight 186810 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186810/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 8e6ba0dcae40bfd4c191b2cd47e08f38186513d1
baseline version:
 ovmf                 5366def8d01d141163a727aeaef61318180deb98

Last test of basis   186808  2024-07-15 13:43:04 Z    0 days
Testing same since   186810  2024-07-15 17:12:53 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Aaron Pop <aaronpop@microsoft.com>
  v-bhavanisu <144935558+v-bhavanisu@users.noreply.github.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   5366def8d0..8e6ba0dcae  8e6ba0dcae40bfd4c191b2cd47e08f38186513d1 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 20:24:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 20:24:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759259.1168897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTSFa-0000qX-5a; Mon, 15 Jul 2024 20:24:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759259.1168897; Mon, 15 Jul 2024 20: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 1sTSFa-0000qQ-2s; Mon, 15 Jul 2024 20:24:46 +0000
Received: by outflank-mailman (input) for mailman id 759259;
 Mon, 15 Jul 2024 20:24: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=Q8vP=OP=wanadoo.fr=christophe.jaillet@srs-se1.protection.inumbo.net>)
 id 1sTSFY-0000qK-DZ
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 20:24:44 +0000
Received: from smtp.smtpout.orange.fr (smtp-16.smtpout.orange.fr
 [80.12.242.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 44b6acb0-42e8-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 22:24:42 +0200 (CEST)
Received: from [192.168.1.37] ([90.11.132.44]) by smtp.orange.fr with ESMTPA
 id TSFTskNDCj4pfTSFTsXq55; Mon, 15 Jul 2024 22:24:42 +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: 44b6acb0-42e8-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wanadoo.fr;
	s=t20230301; t=1721075082;
	bh=he6gmmUMbwqSQvrMV8Ht1aTxpX0j3zxi5MrnSEMUtK4=;
	h=Message-ID:Date:MIME-Version:Subject:To:From;
	b=Uw2tFpXR0tt0oeSW7GCyQ4KbPzTV1U03xlQVSUohBFjERXVY/VyzYpNkxkOflO47/
	 S9OW4zOii+LNuEWk+KIFMOTK7oMVoRZQc/MIOQ36wNBLq8b/PpCi/d5zGHQONMpLhU
	 DNHkW9VEU/k4yiF6CmGRfxDJmwtONicerc3g6o06U8EE4qBmnPBLN5uf8amKg4ejXi
	 w1Z4reb1ppUjvcDdaLrHomrr/aCkBhevHMGpw2biRNQdUnclfa/yBbSz1KzlARjB8k
	 w9IE7w+CKpcgx/sKHa3A5j4YORzeD9qUnqxSn2a5zOiW8pBgvG5mmb6loPtA22oKjG
	 wJnekI47YlphA==
X-ME-Helo: [192.168.1.37]
X-ME-Auth: bWFyaW9uLmphaWxsZXRAd2FuYWRvby5mcg==
X-ME-Date: Mon, 15 Jul 2024 22:24:42 +0200
X-ME-IP: 90.11.132.44
Message-ID: <b3fa592d-91d7-45f0-9ca2-824feb610df8@wanadoo.fr>
Date: Mon, 15 Jul 2024 22:24:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen-netback: Use seq_putc() in xenvif_dump_hash_info()
To: Jakub Kicinski <kuba@kernel.org>
Cc: xen-devel@lists.xenproject.org, netdev@vger.kernel.org,
 kernel-janitors@vger.kernel.org, "David S. Miller" <davem@davemloft.net>,
 Eric Dumazet <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>,
 Paul Durrant <paul@xen.org>, Wei Liu <wei.liu@kernel.org>,
 LKML <linux-kernel@vger.kernel.org>, Markus Elfring <Markus.Elfring@web.de>
References: <add2bb00-4ac1-485d-839a-55670e2c7915@web.de>
 <20240715090143.6b6303a2@kernel.org>
Content-Language: en-US, fr-FR
From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
In-Reply-To: <20240715090143.6b6303a2@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Le 15/07/2024 à 18:01, Jakub Kicinski a écrit :
> On Sat, 13 Jul 2024 15:18:42 +0200 Markus Elfring wrote:
>> Single characters (line breaks) should be put into a sequence.
>> Thus use the corresponding function “seq_putc”.
>>
>> This issue was transformed by using the Coccinelle software.
> 
> I prefer to only merge trivial changes like this if maintainer
> indicates their support by acking them. Since the merge window
> has opened we can't wait and see so I'm marking this patch and
> your pktgen patch as deferred.
> 
> 

Hi Jakub,

Most of the time, this kind of modification is useless because it is 
already done by the compiler, see [1].

CJ

[1]: 
https://elixir.bootlin.com/linux/v6.10-rc7/source/include/linux/seq_file.h#L123


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 20:40:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 20:40:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759265.1168908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTSUE-0002gv-Dp; Mon, 15 Jul 2024 20:39:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759265.1168908; Mon, 15 Jul 2024 20:39:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTSUE-0002go-AL; Mon, 15 Jul 2024 20:39:54 +0000
Received: by outflank-mailman (input) for mailman id 759265;
 Mon, 15 Jul 2024 20:39:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=qaAY=OP=kernel.org=kuba@srs-se1.protection.inumbo.net>)
 id 1sTSUC-0002gU-OQ
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 20:39:52 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6135c3df-42ea-11ef-bbfb-fd08da9f4363;
 Mon, 15 Jul 2024 22:39:51 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 3F7B7CE11E7;
 Mon, 15 Jul 2024 20:39:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 984E2C4AF0E;
 Mon, 15 Jul 2024 20:39: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: 6135c3df-42ea-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721075987;
	bh=kKaLSwVabRDdDlLt0slI1jlhl9ANHI8aEIY1Kw5DTBg=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=byu1ma0qe96Pr2RZ7ZtXjLtwI+Xj1+rDG5J96UErpKH0n3gzdE/CldPAzap4U27lT
	 Oy70dkekPynFTqihT8JJfQ/FGg0+GQoeaCBjaV8qQ7BQLaPUnn+b3dKmX/UDzTJEDO
	 sOXSh2TPe9BQovUKYf9nfBV40h7xXskDHH+ze2aoevaN59Nw3GZ2Pv2ViuqlHr0JfD
	 AlV7g1MwK7Vu45UWMos+H6QwSBv57HCBbTYTqWWLFiPwbozzgYZkHxyQieLDO3BT32
	 yQLx80rZTI+mSk0vy2ljLswCYr6vwnIZ7ghVuPI62i3nfchLUlNMOsNImXWkRJsPig
	 uuQFetvjAa1og==
Date: Mon, 15 Jul 2024 13:39:45 -0700
From: Jakub Kicinski <kuba@kernel.org>
To: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: xen-devel@lists.xenproject.org, netdev@vger.kernel.org,
 kernel-janitors@vger.kernel.org, "David S. Miller" <davem@davemloft.net>,
 Eric Dumazet <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>, Paul
 Durrant <paul@xen.org>, Wei Liu <wei.liu@kernel.org>, LKML
 <linux-kernel@vger.kernel.org>, Markus Elfring <Markus.Elfring@web.de>
Subject: Re: [PATCH] xen-netback: Use seq_putc() in xenvif_dump_hash_info()
Message-ID: <20240715133945.165d8098@kernel.org>
In-Reply-To: <b3fa592d-91d7-45f0-9ca2-824feb610df8@wanadoo.fr>
References: <add2bb00-4ac1-485d-839a-55670e2c7915@web.de>
	<20240715090143.6b6303a2@kernel.org>
	<b3fa592d-91d7-45f0-9ca2-824feb610df8@wanadoo.fr>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Mon, 15 Jul 2024 22:24:39 +0200 Christophe JAILLET wrote:
> Most of the time, this kind of modification is useless because it is 
> already done by the compiler, see [1].

GTK, thanks!


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 22:40:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 22:40:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759272.1168918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTUMM-0000hs-Gt; Mon, 15 Jul 2024 22:39:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759272.1168918; Mon, 15 Jul 2024 22:39:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTUMM-0000hl-ED; Mon, 15 Jul 2024 22:39:54 +0000
Received: by outflank-mailman (input) for mailman id 759272;
 Mon, 15 Jul 2024 22:39:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTUML-0000hb-BO; Mon, 15 Jul 2024 22:39:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTUML-0000uF-8g; Mon, 15 Jul 2024 22:39:53 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTUMK-0002HS-Og; Mon, 15 Jul 2024 22:39:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTUMK-00016Z-Nz; Mon, 15 Jul 2024 22:39:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=fEREvzgmgA9PXNZdhcSJXeM0PZ2FZyoH00Dzf/gUPBY=; b=Pzv/BhwgxVHEAZupGCamdiFqKd
	q9qj5Ia2w96gUluk7vogzWK/LQYm0DdPdJZ/QLThlABqpzEpG5MLuwRBzqEiErdnRrWEInUNywZJU
	mLj8MvsxxScSKuIBVss+4jkMgUQGWe/cyKXEeFDxA7WUH1VUECbU6wFdoHzviWT7MqNU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186809-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186809: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    linux-linus:build-armhf:xen-build:fail:regression
    linux-linus:build-armhf-libvirt:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-examine:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5e0497553643b6c6acd16c389afb9cec210f4ea9
X-Osstest-Versions-That:
    linux=0c3836482481200ead7b416ca80c68a29cfdaabd
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 15 Jul 2024 22:39:52 +0000

flight 186809 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186809/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 186803
 build-armhf                   6 xen-build                fail REGR. vs. 186803

Tests which did not succeed, but are not blocking:
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 test-armhf-armhf-examine      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-qcow2     1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-raw       1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186799
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186803
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186803
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186803
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186803
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                5e0497553643b6c6acd16c389afb9cec210f4ea9
baseline version:
 linux                0c3836482481200ead7b416ca80c68a29cfdaabd

Last test of basis   186803  2024-07-15 06:22:41 Z    0 days
Testing same since   186809  2024-07-15 17:12:11 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Linus Torvalds <torvalds@linux-foundation.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  fail    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     blocked 
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    blocked 
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 blocked 
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 461 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Jul 15 23:47:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Jul 2024 23:47:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759281.1168928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTVPK-0000Bm-7V; Mon, 15 Jul 2024 23:47:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759281.1168928; Mon, 15 Jul 2024 23:47: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 1sTVPK-0000Bf-4V; Mon, 15 Jul 2024 23:47:02 +0000
Received: by outflank-mailman (input) for mailman id 759281;
 Mon, 15 Jul 2024 23:47: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=GpAr=OP=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1sTVPI-0000BY-OZ
 for xen-devel@lists.xenproject.org; Mon, 15 Jul 2024 23:47:00 +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 84a6b182-4304-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 01:46:57 +0200 (CEST)
Received: by mail-oi1-x22c.google.com with SMTP id
 5614622812f47-3d92d1a5222so3033621b6e.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 16:46:57 -0700 (PDT)
Received: from shine.lan
 (207-172-141-204.s8906.c3-0.slvr-cbr1.lnh-slvr.md.cable.rcncustomer.com.
 [207.172.141.204]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a160c63d1esm242267585a.93.2024.07.15.16.46.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 15 Jul 2024 16: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: 84a6b182-4304-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721087214; x=1721692014; 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=mdLIbrQfyeS6W6iVJL+N3KIZc9bXSXmnQnN4HJvcufI=;
        b=K+zkeNauHn5/6zkcszP/tYb4jgB3qKEU+zSwy+Qqg9wnspbLhV7f8+cm/0BUrtLpWF
         DoOWNUygPp633QicZRufbBvTY8ZlbwMB50Yzj/gWSbblpABXx7kniSGQHI+QlHegyrSf
         /uC4u95GkeHCrxK//71PpwbsSUwT4eCC4I8F7fn+/PlvCXwXdmgkVkGL8yHvqaG5n6Ty
         ddYaJl+o9q4J1T7t7Qj0+zgAU/gGY3e3pHw9BESGgzxFuKDEo80DLJ1TMz63OyU4WfZC
         58eIZS4FKlla2I+DWmzabGfCpj3VjWlgSrL3pITkJu7MqJcCJ2Hg6ml7zWwh3hcryFD/
         AmUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721087214; x=1721692014;
        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=mdLIbrQfyeS6W6iVJL+N3KIZc9bXSXmnQnN4HJvcufI=;
        b=xBxzJKlnRHCDBMqXcR25KjxuCASdVE2k2iJzKHw+hQCZo0CL12cGmmZc2kn7fR21+E
         BdwhiupWO3sn2ia5/hju2DTpKQE/Ot9vnKP4MSWPIlHLZ8AuWt+R6v8k9QlG4S/2Uxi6
         Cz9NuAVPkBJ+CXDFxaIV/YS7a3shMkZxJoo+Yo9kOVw+Y/Cea/4t5vfw2fUmo40lx2wf
         BhhXFZTG6nheVQhSbZB1yh4P5TRu/BIpQGDphsOtqWupAVT0qA0G9LL5XnlIHI4vH274
         02TmPLv7goGC6sIR7sljLeUIdCqZwt7Xr0Pt9/2gNXVJK+SmMbBuk66DHtlEvuKRf2B3
         2MTQ==
X-Gm-Message-State: AOJu0YwGQdKpmu93cjbVQR6OeIcwXymQd2WYF1D3z3DCzHkki0fw2Fik
	TZVztmrOQOAvz2+VXK8CbuZGh5BKdzAybbGdTWOCD9r2WzgJRL/0tIjnZQ==
X-Google-Smtp-Source: AGHT+IF6C8oaDkTjfCBn5HyqW0B/qR8LgbomU+6dBdocydfhgOul4UqInMx5zMnY1I1b5T1OFLj9yw==
X-Received: by 2002:a05:6808:1b0d:b0:3d9:2154:2ffd with SMTP id 5614622812f47-3dac7b5de6emr891750b6e.3.1721087213716;
        Mon, 15 Jul 2024 16:46:53 -0700 (PDT)
From: Jason Andryuk <jandryuk@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Anthony PERARD <anthony@xenproject.org>
Subject: [PATCH for-4.19] hotplug: Restore block-tap phy compatibility (again)
Date: Mon, 15 Jul 2024 19:46:31 -0400
Message-Id: <20240715234631.4468-1-jandryuk@gmail.com>
X-Mailer: git-send-email 2.40.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Jason Andryuk <jason.andryuk@amd.com>

"$dev" needs to be set correctly for backendtype=phy as well as
backendtype=tap.  Move the setting into the conditional, so it can be
handled properly for each.

(dev could be captured during tap-ctl allocate for blktap module, but it
would not be set properly for the find_device case.  The backendtype=tap
case would need to be handled regardless.)

Fixes: 6fcdc84927 ("hotplug: Restore block-tap phy compatibility")
Fixes: 76a484193d ("hotplug: Update block-tap")

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
Tested with backendtype=tap & tapback and backendtype=phy & blktap
module.
---
 tools/hotplug/Linux/block-tap | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/tools/hotplug/Linux/block-tap b/tools/hotplug/Linux/block-tap
index 5165f459c8..a0b3924370 100755
--- a/tools/hotplug/Linux/block-tap
+++ b/tools/hotplug/Linux/block-tap
@@ -204,13 +204,13 @@ add()
         tap_create
     fi
 
-    # Create nbd unix path.  find_device/tap_create set pid & minor
-    dev=$( printf "/run/blktap-control/nbd%ld.%d" "$pid" "$minor" )
-
     xenstore_write "$XENBUS_PATH/pid" "$pid"
     xenstore_write "$XENBUS_PATH/minor" "$minor"
 
     if [ "$XENBUS_TYPE" = "vbd3" ] ; then
+        # Create nbd unix path.  find_device/tap_create set pid & minor
+        dev=$( printf "/run/blktap-control/nbd%ld.%d" "$pid" "$minor" )
+
         # $dev, as a unix socket, has major:minor 0:0.  If write_dev writes
         # physical-device, tapback would use that incorrect minor 0.  So don't
         # write physical-device.
@@ -218,6 +218,9 @@ add()
 
         success
     else
+        # Construct dev path from minor
+        dev="/dev/xen/blktap-2/tapdev$minor"
+        [ -b "$dev" ] || fatal "blktap \"$dev\" is not a block dev"
         write_dev "$dev"
     fi
 
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 16 00:43:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 00:43:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759288.1168938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTWI8-0007yD-6K; Tue, 16 Jul 2024 00:43:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759288.1168938; Tue, 16 Jul 2024 00:43: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 1sTWI8-0007y6-3i; Tue, 16 Jul 2024 00:43:40 +0000
Received: by outflank-mailman (input) for mailman id 759288;
 Tue, 16 Jul 2024 00:43: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=+WOl=OQ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sTWI6-0007y0-QF
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 00:43:38 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e6542ac-430c-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 02:43:36 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 40C3CCE112F;
 Tue, 16 Jul 2024 00:43:33 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94810C32782;
 Tue, 16 Jul 2024 00:43: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: 6e6542ac-430c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721090612;
	bh=EXNBP9SDsCQLv3BDf8Lkpa1fYTofGJoSkt+oTLKMGCc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=j2Dk3TW8K8fedx/1p4f0jZGh8/47bT+08SF+Pa7Tc4BalkcSXTL9La4JByx1ALRSf
	 eSQTWB18SKpWquDZAzpr8ngzcf7a8aLSFNhJRUG2RiCr5K4Cw95Rm3oN/plOvTzQBl
	 aYYPq4/fDRnwN4Y9GWwt/ocZsR8sHweX6QpeJpmnvCVcOuUKDWcTI2NEnYmLhJPaLu
	 IyAyhEaP/UwdYyjxr3ZB4ehktbC9sgk6KENPnPaANFwSB73LYC/PolqdxsqEGPyq0x
	 uQ4HTuysyUezSvb5hF3Ar4vpByaVquM61QaTJeMpeEH1tl6ashc3XPvtK3vvliYU7m
	 3KiQZH+/KtaJw==
Date: Mon, 15 Jul 2024 17:43:30 -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>, 
    Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
In-Reply-To: <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407151736530.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com> <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com> <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
 <f1369d5e-5c2e-4866-a593-9656b569c086@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, 15 Jul 2024, Jan Beulich wrote:
> On 13.07.2024 00:38, Stefano Stabellini wrote:
> > On Wed, 3 Jul 2024, Jan Beulich wrote:
> >> I further have to note that, as indicated during the earlier discussion,
> >> I still cannot see how occasional ambiguity is going to be dealt with.
> >> IOW from the rules above two different headers could still end up with
> >> the same guard identifier.
> > 
> > Maybe something like this?
> > 
> > "In the event of naming collisions, exceptions to the coding style may
> > be made at the discretion of the contributor and maintainers."
> 
> Hmm, maybe I wasn't clear enough then. My take is that the scheme should
> simply not allow for possible collisions. Neither the contributor nor the
> reviewer may spot such a collision, and it may therefore take until the
> first full scan that one is actually noticed. Which I consider too late
> in the process, even if we already were at the point where commits were
> checked pre-push.

Looking at the proposal, copy/pasted here for convenience:

- private headers -> <dir>_<filename>_H
- asm-generic headers -> ASM_GENERIC_<filename>_H
    - #ifndef ASM_GENERIC_X86_PERCPU_H
      #define ASM_GENERIC_X86_PERCPU_H
      //...
      #endif /* ASM_GENERIC_X86_PERCPU_H */
- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
    - #ifndef ASM_X86_DOMAIN_H
      #define ASM_X86_DOMAIN_H
      //...
      #endif /* ASM_X86_DOMAIN_H */
- xen/include/xen/<filename>.h -> XEN_<filename>_H
- xen/include/xen/<subdir>/<filename>.h -> XEN_<subdir>_<filename>_H


The only possibility for collision that I can see is from the first
point:

- private headers -> <dir>_<filename>_H


two directories like this could collide:

- arch/arm/arm64/lib/something.h -> LIB_SOMETHING_H
- arch/arm/arm32/lib/something.h -> LIB_SOMETHING_H
- arch/x86/lib/something.h -> LIB_SOMETHING_H

(Leaving aside that in this example it would not be an issue because the
three headers are not meant to be all included in the same file.)

Can we specify that <dir> should go all the way back to the arch/ or or
common or drivers directory?

- arch/arm/arm64/lib/something.h -> ARM_ARM64_LIB_SOMETHING_H
- arch/arm/arm32/lib/something.h -> ARM_ARM32_LIB_SOMETHING_H
- arch/x86/lib/something.h -> X86_LIB_SOMETHING_H


We can rely on the filesystem paths to make sure to avoid collisions.


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 05:41:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 05:41:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759298.1168947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTawR-0002rj-DF; Tue, 16 Jul 2024 05:41:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759298.1168947; Tue, 16 Jul 2024 05:41:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTawR-0002rb-AN; Tue, 16 Jul 2024 05:41:35 +0000
Received: by outflank-mailman (input) for mailman id 759298;
 Tue, 16 Jul 2024 05:41:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTawQ-0002rR-AH; Tue, 16 Jul 2024 05:41:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTawQ-0005Ih-5v; Tue, 16 Jul 2024 05:41:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTawP-0000p3-Rz; Tue, 16 Jul 2024 05:41:33 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTawP-0001fw-R1; Tue, 16 Jul 2024 05:41:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=nMvdp9XM2OwEb1pJFDyfJzDWtdm3Si/7QPqGX88DXzE=; b=OnM6BfiPiyK5rW1VGagPX+K3CF
	2INtB7TMINEB6CmgGJYszdRR1HnwvMFBki/PY7QWVldqWm+uuMjKCanijj3EdcDQQiN1C4n10UsIg
	WaOlF7MS5tB4OvOeAEeJdTyVQQLE0sHoEh+qRf8vO0znnJxxE5Ro0+QLOw1jrBRhedmo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186813-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186813: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=1bb9f47739ae7993191a36bea76c5a2157fdd10f
X-Osstest-Versions-That:
    ovmf=8e6ba0dcae40bfd4c191b2cd47e08f38186513d1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Jul 2024 05:41:33 +0000

flight 186813 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186813/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 1bb9f47739ae7993191a36bea76c5a2157fdd10f
baseline version:
 ovmf                 8e6ba0dcae40bfd4c191b2cd47e08f38186513d1

Last test of basis   186810  2024-07-15 17:12:53 Z    0 days
Testing same since   186813  2024-07-16 04:13:00 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   8e6ba0dcae..1bb9f47739  1bb9f47739ae7993191a36bea76c5a2157fdd10f -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 06:48:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 06:48:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759307.1168957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTbyd-0001TR-3Z; Tue, 16 Jul 2024 06:47:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759307.1168957; Tue, 16 Jul 2024 06:47:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTbyd-0001TK-17; Tue, 16 Jul 2024 06:47:55 +0000
Received: by outflank-mailman (input) for mailman id 759307;
 Tue, 16 Jul 2024 06:47:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTbyb-0001TD-KQ
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 06:47:53 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4f8bb7e4-433f-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 08:47:46 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2eea8ea8bb0so94603041fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 23:47: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
 d9443c01a7336-1fc0bc39fd4sm50986505ad.187.2024.07.15.23.47.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 23:47: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: 4f8bb7e4-433f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721112466; x=1721717266; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1gHlN5V/RwP8yuJyupkHq/ObfEomCy5rg0ItZ37AkUY=;
        b=gt/5Lm5dRG9emkVGOteFXjUWkw9cjsAlgxEWQgzyQb9aDUIG58noW4SXlSLkql6Les
         gAy6kyy2AaPRi2/P7UeHcFaJ7M/OY28zfUQuzfjM/aC0LUdhPeid39zcyIweoWsOXQzE
         fiM9A8OwhiQZ44xq4ywNZUA+ef03FfyzuYFBosAz5nxjFZpW8eMipXo/Lgi+bGz7aC6Z
         6Rtv/RRX/fPXDcZReKC2G4AZO8MMvIMkag8p+OuFzd+1N6vz58UaHQPmpW/Yfy1JdDVw
         ZR+Rgg80w6zZ0GwvbRxiD9gUqCDy3TQ0Sga67a2vcrFUnu9W9uqrjoMJx6XKcMxJ5q48
         s/Lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721112466; x=1721717266;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1gHlN5V/RwP8yuJyupkHq/ObfEomCy5rg0ItZ37AkUY=;
        b=e52pLSPOc4rJ9/VTjc146digCndL4zLjVq4kvY4YyfA/m2aTQCWYNNcezrvuJw3MM2
         KKNnOBj1LZaDEVwSwwcxejatMCyle7Cqtl1FgGmoIXCr5Pv5CHLIwETnDKhJeIl/rrLY
         gBl7jfmW+tVgAHvUEVt9zNnyIm5U18XlOAIo5hakdNY1D7G5M2eBZCb6XIoK1XNOqRbV
         pEyln18BzbDkp6rVDIhckqTxDNObS06UEDXCy9pIPzXLjcNDZwNw9g/Ilv9LwYhz5N4Z
         5BN1t9umom1xUInan3/DJOyZnWsSVb6dCDRIZufHNWd3+LJ7uf/x+0+Q91Bxf6N8Nv9s
         NmIg==
X-Forwarded-Encrypted: i=1; AJvYcCUlRBXluyKEaWQuaWv+w07XptuR2D6dQvZ2n/mJDVYkhUdlgzpWnl+WPzqLGh0A5wlFrxk0BRhQ0Te0QpDyk6UtK4Gcix5JeZKNafw4QPI=
X-Gm-Message-State: AOJu0YxFFlZNow96rwdF46OAZtpHiB9GcDD6pocPN9YDpaNPL3/W3JvV
	LoAw0d6hLPXeGTSymFl7icwpvSyKnB3Aw+fJBGJMRGMfcCvQu+/dYuXxsoxwtw==
X-Google-Smtp-Source: AGHT+IEXvsjdc4BgsJOHWtkAJtX81075x+46dCn0b9iohIPE+Sy3uB9Zr7KFqLRVVCpJY2QdJ/7Tkg==
X-Received: by 2002:a05:651c:1247:b0:2ee:80b2:1ea9 with SMTP id 38308e7fff4ca-2eef41eaa08mr8874131fa.49.1721112466323;
        Mon, 15 Jul 2024 23:47:46 -0700 (PDT)
Message-ID: <423412a9-e969-4126-8e39-7e77e67d2fd8@suse.com>
Date: Tue, 16 Jul 2024 08:47:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
 <3b188f84-50f7-4e13-bcde-1d6076e5cc2d@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: <3b188f84-50f7-4e13-bcde-1d6076e5cc2d@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 18:56, Julien Grall wrote:
> On 15/07/2024 16:50, Andrew Cooper wrote:
>> An earlier part of the checklist states:
>>
>>    * change xen-unstable README. The banner (generated using figlet) should say:
>>        - "Xen 4.5" in releases and on stable branches
>>        - "Xen 4.5-unstable" on unstable
>>        - "Xen 4.5-rc" for release candidate
>>
>> Update the notes about XEN_EXTRAVERSION to match.
> 
> We have been tagging the tree with 4.5.0-rcX. So I think it would be 
> better to update the wording so we use a consistent naming.

I find:

4.18-rc
4.17-rc
4.16-rc
4.15-rc

Do I need to go any further? Your 4.5 example also doesn't fully fit because
at that time we were, in addition, still appending RC numbers (up to and
including 4.9 as it looks). In 4.10 it then (intermediately) indeed was
4.10.0-rc. In 4.11 it became 4.11-rc.

That said I wouldn't strictly mind the .0 infix. It's just that imo shorter
is better, and the .0 doesn't really convey any useful information anymore
now that we don't do / tag stable release RCs any longer.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 06:51:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 06:51:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759312.1168967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTc2D-0002tu-Is; Tue, 16 Jul 2024 06:51:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759312.1168967; Tue, 16 Jul 2024 06: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 1sTc2D-0002tn-GM; Tue, 16 Jul 2024 06:51:37 +0000
Received: by outflank-mailman (input) for mailman id 759312;
 Tue, 16 Jul 2024 06: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=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTc2C-0002th-GJ
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 06:51:36 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7a2b66c-433f-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 08:51:35 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2eea7e2b0e6so68834321fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 23:51: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-1fc0bb9c426sm51254585ad.76.2024.07.15.23.51.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 23:51: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: d7a2b66c-433f-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721112695; x=1721717495; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SmOMPqTUe+kLcJWOeDEFMaVgtMKs7125m+BLUwxtunI=;
        b=D2SXkkDxP3ptYaPw8wTPp0x4M7tNN1DhcM24AkjfgXvXIJAVnzK5RuLpgyRASqhb3i
         r1FGHnTPTyB96ZERUn+Er+JEF8ylCEBHAdLBobkOBAjVMAFfCP/jSeOViEwXBrQEZ2rZ
         O7+dGT0AaIwQL3Nj9pju2jf6EYXadTBFLNOrLFLrsx9bQ6tlW/ywpUqNQ4f+0rROCmyS
         GGTYe5MBxIQoQJLyRASrBEwv9Z+BeTEI3+0dGuPQks2vk+kO60GeHfavufK6Dq1MK4tN
         z/29JjT3DJhRZZA3OaAH9YRT+EB9YVmqOHkrymSIVFvLPuLevjAt9zeEIZkcQU+B+nxe
         G4pQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721112695; x=1721717495;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SmOMPqTUe+kLcJWOeDEFMaVgtMKs7125m+BLUwxtunI=;
        b=CBetkeKnVqkdbZ3FaI1b5FWQrGdz0eDSaddHF/mf/X9iwEHD3LJLQsuVxOA0ynyFz/
         gYCypK5d9xyfG0BsAa3OtU/k6h1hLUvyVYBmsxPIhhZBE/8Czjj+30NYT2elWxR4ghQE
         0b6w0lfF4PmpV0HB3iWppAPqmgpql+l8F3Il0VeyY6DSAPiLpxB1/7ZQ/ER4Iaj00GS4
         JyUg2tBA0sM9wOovKLJ50cQI2fYpS2XzICeVYRD6e5JC+Iwos+u/Jj0KHdT0SYUxXbPs
         WIIknPNK5mlpsrwoqZcv6bp2WAmDPE2rPtmi9E7LeNQkbVFSjFPVJcpFMSA7sAwcPmco
         i37g==
X-Forwarded-Encrypted: i=1; AJvYcCVssYtno8PV4bg8XOQAnx+2p+uJWUF6NUzpeoLxH6RxC48iDhaHbwz+WsAVk3Ptip7dxGrBEtixMXFwWx5+4sBKQ4Ln6+TMXqAVdJenO40=
X-Gm-Message-State: AOJu0YwqdkvDx4TR27xYC8+P56cZUq8bOHfpujvJe6ZuXLg2fH5IUWkg
	y5U0dEfkgD2Wm6n52VvFIoWi4oppKrFzs7+u8Ey5H6eFxBiolYpaJU6KAWP7mQ==
X-Google-Smtp-Source: AGHT+IFPyu0i7KG64fznDelsHFORBIOZ0H/h0c+phIWZT3GYWRg8+FynJdU4pUGiof3IEbsgz2qGMA==
X-Received: by 2002:a2e:7d0e:0:b0:2ec:5518:9550 with SMTP id 38308e7fff4ca-2eef415ffc0mr7966751fa.10.1721112694719;
        Mon, 15 Jul 2024 23:51:34 -0700 (PDT)
Message-ID: <62fffa18-b3b4-40e3-8273-83c4276ae549@suse.com>
Date: Tue, 16 Jul 2024 08:51:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240715155051.3375999-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: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 17:50, Andrew Cooper wrote:
> An earlier part of the checklist states:
> 
>   * change xen-unstable README. The banner (generated using figlet) should say:
>       - "Xen 4.5" in releases and on stable branches
>       - "Xen 4.5-unstable" on unstable
>       - "Xen 4.5-rc" for release candidate
> 
> Update the notes about XEN_EXTRAVERSION to match.
> 
> Fixes: 15241c92677a ("process/release-technician-checklist: Explain how the banner in README is generated")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Jul 16 06:53:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 06:53:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759316.1168978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTc4B-0003SE-Uf; Tue, 16 Jul 2024 06:53:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759316.1168978; Tue, 16 Jul 2024 06: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 1sTc4B-0003S7-Rb; Tue, 16 Jul 2024 06:53:39 +0000
Received: by outflank-mailman (input) for mailman id 759316;
 Tue, 16 Jul 2024 06:53: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=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTc4B-0003S1-2T
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 06:53:39 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 205abaa6-4340-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 08:53:37 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2eebc76119aso57808551fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 23:53: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
 41be03b00d2f7-78e33cb107asm4340517a12.25.2024.07.15.23.53.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 23: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: 205abaa6-4340-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721112817; x=1721717617; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8A57T49YiGoXX1wtZvLm9tt7hJH+JQyz8cA38uGTDDo=;
        b=Ilob97l8vj8TaqqBhWOYasezWVJUvY8OI0Eqm4JrhgbA+I29xOpWKy2RYdfUVwwumt
         TgN3gRgmJepSe/VT4ai/qELIa+onEuhISAK6bITCMR4yw/ykHoKAe9MmaOEGoO8ddI0t
         2h+5XaG9PF+2GEXmFfFoxNF+T8N/llPwMGOnmXpCpeMB8zaJUasHJSxNKnDEqN5m3qnQ
         BbUsQMkmxv2LeTI3GQbulO2jvkrpyvvMIHgf6dou8arkhTm58E2cos42IVSWF/b1TEwF
         pII0La7gWadZPEKm9oTTD6yjyqMBt6kb3dRJdolw9nHy2PZSajEWUrCOYeNxlD4cWTxs
         QESg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721112817; x=1721717617;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8A57T49YiGoXX1wtZvLm9tt7hJH+JQyz8cA38uGTDDo=;
        b=etZg3k3tbm7bAb1mRbuUcT8A7taENL21KzpAmW1l6wVqIOWBdG/fmSGzKlW59sBJdP
         qXvq0xFLfY3Y5GFJRBrz+qbQdW9i/FgicK7npJMZTOudL12jeiOAtmF+/NM17QXfcplv
         wE25AoVsrQNrjopIJR2wI6fNJ/McpLGiMVfIT5QYHwtdLx1T4CN8hf74+ADKOfRR+my3
         VYm56Yp3OI1APyNBoJ6lmoDcE7SthwZMHBNadIRrR+6e3KKLGCFeYS/NnqZBiGRxI/hj
         IX/2O+KN1tpIVTiJ4UOYgtvwkIULDJ/VKGDkfzUUOalGLdmINLJF7qiYUq1l9hcGq0sX
         9B/g==
X-Forwarded-Encrypted: i=1; AJvYcCVCuhIgYqerYPmdh//hjA2marQrawUTGZK6mGLEoNlX0ar9+GygSWyu1L1w5nRlVYGoYA4fJYm7qbEmLZaz2msxH4xHK/Arf+shKcaQPfs=
X-Gm-Message-State: AOJu0Yw5+RsNoss+a9pq23gVoglmVlgjlXaAd+NCa7V6iyAIy8ySCGA7
	y51erwGWLrZtQaqnEyAK68pWtvM+bULfvQ9TN4rEaBnrL/3xTQWSldZ3QjeTvw==
X-Google-Smtp-Source: AGHT+IG4KBk+x3HT2Cc6C7g3fkQnuvS1D10GgZz9TeZXeL6qABUmlleMGJ9ZR6bxQV3buTJwDUXeGA==
X-Received: by 2002:a05:651c:10cc:b0:2ee:86c1:f74a with SMTP id 38308e7fff4ca-2eef41d73c9mr7496091fa.35.1721112816568;
        Mon, 15 Jul 2024 23:53:36 -0700 (PDT)
Message-ID: <5c40c501-b95a-4177-b3fa-9ab83c7b50f7@suse.com>
Date: Tue, 16 Jul 2024 08:53:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] hotplug: Restore block-tap phy compatibility
 (again)
To: Jason Andryuk <jandryuk@gmail.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240715234631.4468-1-jandryuk@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: <20240715234631.4468-1-jandryuk@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.07.2024 01:46, Jason Andryuk wrote:
> From: Jason Andryuk <jason.andryuk@amd.com>
> 
> "$dev" needs to be set correctly for backendtype=phy as well as
> backendtype=tap.  Move the setting into the conditional, so it can be
> handled properly for each.
> 
> (dev could be captured during tap-ctl allocate for blktap module, but it
> would not be set properly for the find_device case.  The backendtype=tap
> case would need to be handled regardless.)
> 
> Fixes: 6fcdc84927 ("hotplug: Restore block-tap phy compatibility")
> Fixes: 76a484193d ("hotplug: Update block-tap")
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Please don't forget to Cc Oleksii for anything you still want to go into
4.19 at this point.

Jan

> ---
> Tested with backendtype=tap & tapback and backendtype=phy & blktap
> module.
> ---
>  tools/hotplug/Linux/block-tap | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/hotplug/Linux/block-tap b/tools/hotplug/Linux/block-tap
> index 5165f459c8..a0b3924370 100755
> --- a/tools/hotplug/Linux/block-tap
> +++ b/tools/hotplug/Linux/block-tap
> @@ -204,13 +204,13 @@ add()
>          tap_create
>      fi
>  
> -    # Create nbd unix path.  find_device/tap_create set pid & minor
> -    dev=$( printf "/run/blktap-control/nbd%ld.%d" "$pid" "$minor" )
> -
>      xenstore_write "$XENBUS_PATH/pid" "$pid"
>      xenstore_write "$XENBUS_PATH/minor" "$minor"
>  
>      if [ "$XENBUS_TYPE" = "vbd3" ] ; then
> +        # Create nbd unix path.  find_device/tap_create set pid & minor
> +        dev=$( printf "/run/blktap-control/nbd%ld.%d" "$pid" "$minor" )
> +
>          # $dev, as a unix socket, has major:minor 0:0.  If write_dev writes
>          # physical-device, tapback would use that incorrect minor 0.  So don't
>          # write physical-device.
> @@ -218,6 +218,9 @@ add()
>  
>          success
>      else
> +        # Construct dev path from minor
> +        dev="/dev/xen/blktap-2/tapdev$minor"
> +        [ -b "$dev" ] || fatal "blktap \"$dev\" is not a block dev"
>          write_dev "$dev"
>      fi
>  



From xen-devel-bounces@lists.xenproject.org Tue Jul 16 06:57:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 06:57:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759325.1168988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTc88-0004Pt-HP; Tue, 16 Jul 2024 06:57:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759325.1168988; Tue, 16 Jul 2024 06:57:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTc88-0004Pm-ED; Tue, 16 Jul 2024 06:57:44 +0000
Received: by outflank-mailman (input) for mailman id 759325;
 Tue, 16 Jul 2024 06:57:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTc86-0004Pg-Ub
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 06:57:42 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b21ff24b-4340-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 08:57:41 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2eedea0fd88so32108851fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 15 Jul 2024 23:57: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
 d2e1a72fcca58-70b7ecabae5sm5502257b3a.180.2024.07.15.23.57.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 15 Jul 2024 23:57: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: b21ff24b-4340-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721113061; x=1721717861; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VI8xrafdUJpOrYduOP39Vh9LDhKCH8Y+YZpMK3X4/r8=;
        b=TODBtECZXFtjOwQBgfkp8p3MADbl7BV8cpkLJ4jkxBa0KS/NaLCkNlQqBKJ9LJY67L
         XTli0EexEclbjk7Py//DmfurYD/JueSdisaob5HZkMeT6gM0q7UZNYihfJeSCldixLDr
         8se7sINLrPmBRgCKo1QiYgsJ7CBgmlp9z9NTw4WaFq0wRd4yAp0SzG46HUIgpdq+XkRQ
         DYDkjemdL4xC6SrgD28mq2miQ8Uq9DfDY03KRecQgvadqmcTcTHS9d8hLI05E0TdnEos
         7kzTvDW8TEcfXAy9XUIF5T6og75IUxJ7RZkq4iz3De/toMqBfXcTD61gk2h0/5094gFZ
         gPKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721113061; x=1721717861;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VI8xrafdUJpOrYduOP39Vh9LDhKCH8Y+YZpMK3X4/r8=;
        b=fLqfkZg5vDnw0u54JjgfFdNqjFMj38J3Fq+WGmF5a582KbI7/ITjN7GLYiuaQm3YUb
         aBRoe0lHDsqa0ibtGcUaDLGBZp7H2Dorsq8szUaeBJbztd3KecVn8MryuEKwmxsMSMx0
         eigD5GORK0H1130kpYIDfjLpep9oFDU52p3bQfaMQDl48PEwIQ7Cc+IjCoIAWNubMJ8k
         Q0urvOhKvvluOOXltkDA2nQKf4JdBIdcdWJUqtk390kbUapqRZsEi1ri4UI8pCG+YawT
         6n8yQ81Pivzi7Z66HBN2UutaBfv1E3GoAU1JWW2X7LMZ+eeT2x1avtEJgUGl1w2uABNy
         bIgQ==
X-Forwarded-Encrypted: i=1; AJvYcCWQz5mDtxRe+9qod9ywFiB5DadlSb9/UZcH3EZh4OHk7JXn6bnVwQbwuh1ZVOlqwOueas/VC8yeVPtN8Wn2jBZoRneur6cGqvXhbeDUqk0=
X-Gm-Message-State: AOJu0Yylvdk0Fn+9dgcECbfHMZWldL7aBXpOUr5tdmbT0FoGBWpBIKCx
	lKl+gfsCY45+LA2wbgUMCAdxfFq7x5FuIl+Sk33qOUDFXQ2L8/vbUtp9Q31OdA==
X-Google-Smtp-Source: AGHT+IH+AfNUomn/3C/CyyHUghh2Csz+1VOfUoUWNkoGD82at838A6MD8vjG67XOn/BH8+RY9f9QjA==
X-Received: by 2002:a2e:7a12:0:b0:2ea:7d8f:8d12 with SMTP id 38308e7fff4ca-2eef41ea8d7mr7555421fa.48.1721113061314;
        Mon, 15 Jul 2024 23:57:41 -0700 (PDT)
Message-ID: <81c65915-cecc-4edf-8636-3be56a411c50@suse.com>
Date: Tue, 16 Jul 2024 08:57:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC for-4.19] docs/checklist: Start tagging new dev
 windows
To: Julien Grall <julien@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240715164639.3378294-1-andrew.cooper3@citrix.com>
 <7db0879f-93a3-4690-8ba5-1f0897027e47@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: <7db0879f-93a3-4690-8ba5-1f0897027e47@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 18:58, Julien Grall wrote:
> On 15/07/2024 17:46, Andrew Cooper wrote:
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> With one remark below:
> 
> Reviewed-by: Julien Grall <jgrall@amazon.com>
> 
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Julien Grall <julien@xen.org>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>
>> This is about figuring out when a change was first introduced.  Take
>> 10b719dc88 for example (completely random pick).
>>
>> The right answer is `git tag --contains $sha` and look for the oldest
>> RELEASE-$X.  In this case it's Xen 4.6, but the tags are not numerically
>> sorted so the answer is towards the end of the list of 166 tags.
>>
>> The better answer would be to `git describe $sha` because git has an algorithm
>> to do this nicely.  In this case, it's 4.5.0-rc4-934-g10b719dc8830 because we
>> branch first and tag RELEASE-4.6.0 on the branch, rather than releasing off
>> master.
>>
>> With 0082626f35af (opening of the 4.6 tree) containing an annotated tag of
>> 4.6-dev, git describe now gives 4.6-dev-902-g10b719dc8830 which far more
>> helpful when doing code archeology.
> 
> I think some of this explanation should be in the commit message.

Imo it could even be moved up verbatim.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 07:00:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 07:00:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759329.1168997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTcAU-0005qL-Sl; Tue, 16 Jul 2024 07:00:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759329.1168997; Tue, 16 Jul 2024 07:00:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTcAU-0005qE-QB; Tue, 16 Jul 2024 07:00:10 +0000
Received: by outflank-mailman (input) for mailman id 759329;
 Tue, 16 Jul 2024 07:00:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTcAT-0005pp-Lw
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 07:00:09 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 09055bc4-4341-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 09:00:07 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2eede876fcbso30728931fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 00:00: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
 98e67ed59e1d1-2cacd6dabe5sm7512301a91.44.2024.07.16.00.00.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 00:00: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: 09055bc4-4341-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721113207; x=1721718007; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=n2twh2KkMEpGiZboJMD9rY8s/U262qrt8nFUXCMOtXo=;
        b=CiBLvypoHdExfxTWbQaOiuPQ7+c67eQQ2HxZ+FK3A5A5OcUCBzGSBnOxx4/t7AJz1l
         oveCwhrHAJYTQZu9viyQ3PfviXKcZoAxtW4hbNLc0M6co3UYkl3Dmq5S64AXb5qm8qks
         1MX/QwY+N+YvKkI5Jkwyf1L7JmMvTgpX0lP3+b3ymPS1YjMN1ttJfRynzZnPkKbrlg0r
         pQd1nSVecF+l5sCgR+D+xSw6ZTp/ZxtdZ9flYnPWgWfsBWTDw+U1ZhC/Flzq8crcJMo0
         HMmWGD8ZjwakrgLC6nAH/hvHL7mh+ARyH0wBPm/olhklKIrftgwAT99Ho5d7CBJDTFav
         PWQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721113207; x=1721718007;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n2twh2KkMEpGiZboJMD9rY8s/U262qrt8nFUXCMOtXo=;
        b=TvS0EWA0fkx40VnzBQ2bZ63ACV/klmpdUeOj9mpvIaG6blpF428S+YgBnZltKeSgiu
         +cQTeKLfh5uQqKUW8lnn4iqu3JYFWU0alrENnmg0PIJfza73fgTVamP1t/HSa7oxwq/S
         b+7RGSwXDwLbI+BCfrK1UNyZI3n5aM7Z453Pxe6I7Xl9GL3Ngne3Jg6RpzJidE297FKG
         Rt/hAhcUX15veTpwEufzQtNXvTECizsIcbAtzKA8aeq2qBbGWodeU78XbN3vF1KtdcR1
         quwA/zqwwjF1jIHCRv1vRjkMCmtzDn7PYRUdurIWb1VKZLfz9m/WNpcLhOpfT6uV+G7l
         ncyA==
X-Forwarded-Encrypted: i=1; AJvYcCVqaJTd7cJGtaVn7gAeV/Sph52yhuxdLvl9qSqofLC7R6W1qmIOGnAoG0Loc82mW8Q3knbZCTb5+I5uSBDOWk77VqNb/FXNWQmfkoSYpEI=
X-Gm-Message-State: AOJu0YwGEgywl9DI+tOJ/CNPpkQyF4wxu/eh8OvtNhG6QSjiOsdepcnK
	iXwL6fjMsimx/DonZ/XSu3Ohp7gaV9mMte6YqFliYBzsgu6sSi+CNMyuY4kWZg==
X-Google-Smtp-Source: AGHT+IGrxGzx/XAas/dC46XuRLiRKlbLlqqk7bRqz95T+DI1mbdDbhz6vfNdKrHmKcIe6oNJAHEYjA==
X-Received: by 2002:a05:651c:1023:b0:2ee:8eb6:ff62 with SMTP id 38308e7fff4ca-2eef415b53cmr9008221fa.8.1721113206944;
        Tue, 16 Jul 2024 00:00:06 -0700 (PDT)
Message-ID: <704db9f3-e143-4a52-a0da-30443a128519@suse.com>
Date: Tue, 16 Jul 2024 08:59:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Resend XEN PATCH v4 0/9] x86: address some violations of MISRA C
 Rule 16.3
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 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.1721050709.git.federico.serafini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cover.1721050709.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 18:48, Federico Serafini wrote:
> This patch series fixes a missing escape in a deviation and addresses some
> violations.
> 
> Federico Serafini (9):
>   automation/eclair: fix deviation of MISRA C Rule 16.3
>   x86/cpuid: use fallthrough pseudo keyword
>   x86/domctl: address a violation of MISRA C Rule 16.3
>   x86/vpmu: address violations of MISRA C Rule 16.3
>   x86/traps: address violations of MISRA C Rule 16.3
>   x86/mce: address violations of MISRA C Rule 16.3
>   x86/hvm: address violations of MISRA C Rule 16.3
>   x86/mm: add defensive return
>   x86/mpparse: address a violation of MISRA C Rule 16.3

And what exactly was this resend about? Even sent as reply to the original
submission, rather than as a plain new thread, thus resulting in everything
being mixed up into a single thread?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 07:05:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 07:05:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759335.1169008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTcFY-0006UT-EM; Tue, 16 Jul 2024 07:05:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759335.1169008; Tue, 16 Jul 2024 07:05:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTcFY-0006UM-BX; Tue, 16 Jul 2024 07:05:24 +0000
Received: by outflank-mailman (input) for mailman id 759335;
 Tue, 16 Jul 2024 07: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=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTcFW-0006UG-JG
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 07:05:22 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c42163cc-4341-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 09:05:21 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2eedeca1c79so33651371fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 00:05: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
 98e67ed59e1d1-2cacd2d08a7sm7516304a91.10.2024.07.16.00.05.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 00:05: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: c42163cc-4341-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721113521; x=1721718321; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/yruyH7zdsCWrOqPTuir244f0sjUGJ3ulZpiH97Fp7M=;
        b=Zsn/ta9LnvJwFLKbjCzpytJtBrRbiqlvTxcXz9/W1rHre5h6uckXbDMRYRk8BMJGC6
         v0bvnY3Az9gOvoYXH+i9KMmnY+6BEB8k+PNvkqZRDpH6yo9x+0zLYEW4Df/wdvn/SPTH
         vFBG5GaanbP6xcFUPpPdjZq0nVXhr+eI38aTcm6wTOaqIkUfWthdd1wtZvidaB9JtlaT
         S5ETN2LC/djYcRPPDKN2e5EeYQgYGCl9o21BZrtrNNAMeiwOlFNVVxgovAl/pQaP5qg3
         fwT+gQCGUhTgwHSEVFyro5ZH67/mHsdgrUl/FKJTPwYfQsU43l7lAWrUGr2W20ixb1QW
         p2EQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721113521; x=1721718321;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/yruyH7zdsCWrOqPTuir244f0sjUGJ3ulZpiH97Fp7M=;
        b=AMjLB0Kg9yYeLHKL4RyKrcgIZGVr7tpNg8Y2MRNaju01wsf+TrUFghonvp5jSdvHSN
         euiVjcgE+G0HJ9BB+C0OTjctMHuTpFH9qoy7g+DcxNKvQL19+AgavuUZaPSGjaL+m/ud
         Q2rBMiRae3yXBjBVGw1UmtE54wioW+/GBXOEa8jDGEkkDMka9LQuhKa61nwlqiLCYEWl
         4nyJhhtiF/is7OtcxLE4mRtNblq7qukqprp/vr1sOYnUDwhkhWVadKzkjOIb3FnH0M/A
         +Ka4QAI4uMFKIM4Uk3qcPk9NC2Yioha/tdbI0HuOQySH9OS5VDvSyV/58+DE6nHPuho5
         eZ3g==
X-Forwarded-Encrypted: i=1; AJvYcCXeIh+rS50Oo+2LIWG+uch7kUmVARExtfSC92cfVftdu33+lOdi6wCaJ+L5dcV4U6/eLKovJzxWk/NOPVRVL4lsSdmCI8MUM0eyVeu+2rA=
X-Gm-Message-State: AOJu0YzZ/ilbmt1e7tzXefehqhjNK9M5z9DKufe744h1XCmMAAHqeNH5
	eUukfDVgQ8EEi0U9TAcR3hEpsh0s7Ch1vjD7VgKg2dK9QN1sAA2meASzX6fI5A==
X-Google-Smtp-Source: AGHT+IFKjFWGiFK1a0zg02Ns3PX/5V0LaVHVkCLf9kG1wcz3vcdjfwd0Vh9vuJTM9Kwd8mzB4vyxSg==
X-Received: by 2002:a2e:9155:0:b0:2ec:507f:7319 with SMTP id 38308e7fff4ca-2eef41dd853mr9422821fa.43.1721113520890;
        Tue, 16 Jul 2024 00:05:20 -0700 (PDT)
Message-ID: <6cfb8a87-a3e1-4bd4-9dcb-59e9a12e668d@suse.com>
Date: Tue, 16 Jul 2024 09:05:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 4/9] x86/vpmu: address violations of MISRA C Rule
 16.3
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1721050709.git.federico.serafini@bugseng.com>
 <67c30f4ef05846f8c3b371eb5fb2de4bd42eb5f1.1721050709.git.federico.serafini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <67c30f4ef05846f8c3b371eb5fb2de4bd42eb5f1.1721050709.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 18:48, Federico Serafini wrote:
> Add missing break statements to address violations of MISRA C Rule
> 16.3: "An unconditional `break' statement shall terminate every
> switch-clause".
> 
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

And my R-b was lost?

Jan



From xen-devel-bounces@lists.xenproject.org Tue Jul 16 07:08:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 07:08:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759340.1169018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTcIP-0007VT-RX; Tue, 16 Jul 2024 07:08:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759340.1169018; Tue, 16 Jul 2024 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 1sTcIP-0007VM-Or; Tue, 16 Jul 2024 07:08:21 +0000
Received: by outflank-mailman (input) for mailman id 759340;
 Tue, 16 Jul 2024 07:08: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=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTcIO-0007VG-O6
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 07:08:20 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2e411d77-4342-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 09:08:19 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2eabd22d3f4so58742851fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 00:08: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
 d9443c01a7336-1fc0bc273efsm51648805ad.170.2024.07.16.00.08.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 00:08: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: 2e411d77-4342-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721113699; x=1721718499; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UNEwdLA1S9/fi0MPSf5MVNLCfZ/A4FeSjCwn4TKGNtU=;
        b=cjaiWGerA52vXPnflUAcJYro6azhtWBnhS0r9FY2AMGPM+nGkTloX9i9qfaGBKkDZy
         8oV/Io7GY9Rw6OvBB6rm4bSHIGXxF/xa/Cj+misQYnl/aIH/uqdwwFM8dkrT8S6FO2ns
         Xvpqf9Y6HYD7/3rxQtBr3ADQ2vB+YiWieLKLPV+v+dZ7dznVDnpqcqbM4Emr4URHaknq
         DIeu8x0GqOGQCzMIXC/3JTRVFwfhqk2p/01EcLC74bPvEcSUISgimgLHqvSAyGBPzrsR
         0HmMKo8ATRvpurNq52IvOR/fw4SP+4c+oxEvKToK0prnckRGngRP7fZ9mouRQmc3R9Yp
         F8wA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721113699; x=1721718499;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UNEwdLA1S9/fi0MPSf5MVNLCfZ/A4FeSjCwn4TKGNtU=;
        b=lUvsQ0IYdr5ZqnHz0iV6Y1dlRkAVLetOjQ+E3xgRfhfIsnowxnQmsMgMCnEc5XUj5S
         g04646FfVw64SvQ93nA4E/o1lCW0QlS2uPPK9LtXbr7mTaJlhAIYmhLUpj+rYlJXS35m
         uwH5jpqJ3KIWw0qUiGnwiZjJguW21SVab47dVyOMc3ZItMasgaWgOPWnUTzEfIFtdNoP
         4g/xZsbJq+nXh8riIt7URsOP+FI2G5Acg6WN8f0w4E7ABOqwRlHNn2b5YdsuKcNKJ+K9
         Vecu6yAnDnEcEJGw+kc8wVmwW3qyJ//MVx9TnqH78z9xPBBIb3TIBfoCVQa6SJnKIG48
         ezEw==
X-Forwarded-Encrypted: i=1; AJvYcCX+UwOrATA1nuIPOLzAbAk6jAY9xGzUyOUM+C0mKUd3q6RP70qmrQP9vyd4uipUDt5htJtBvdpSN7x8/7SNZMZLntMORIRR6bvXfG1e3FI=
X-Gm-Message-State: AOJu0Yx3xexJPUjqc2CgeImUiWAMRJEnCYhVAOgAKMq+njqIhHPnjsfh
	XUPpIVCodqqbAPAEzffAPziL3J6DUWRVKHJBrb0FnjwFv63WjGQGCn1+DqS0FA==
X-Google-Smtp-Source: AGHT+IH1Ebqk/WIl0+58L9MR5yLgNlqU0dMG5NcVH91mA3R5RaGAySBfgkinyb3BmPXN1ESYqENzHg==
X-Received: by 2002:a2e:9d85:0:b0:2ec:18e5:e68f with SMTP id 38308e7fff4ca-2eef41d8d0amr9000531fa.33.1721113699066;
        Tue, 16 Jul 2024 00:08:19 -0700 (PDT)
Message-ID: <5b3c9818-9ac5-49ae-9ae6-fb96a0410297@suse.com>
Date: Tue, 16 Jul 2024 09:08:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 5/9] x86/traps: address violations of MISRA C Rule
 16.3
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1721050709.git.federico.serafini@bugseng.com>
 <d16e294e1cbd74001c1ca276023d13f66f4ec0d3.1721050709.git.federico.serafini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d16e294e1cbd74001c1ca276023d13f66f4ec0d3.1721050709.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 18:48, Federico Serafini wrote:
> Add break or pseudo keyword fallthrough to address violations of
> MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
> every switch-clause".
> 
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

And my A-b was lost? Please can you be more diligent in collecting tags,
helping committers?

Jan



From xen-devel-bounces@lists.xenproject.org Tue Jul 16 07:08:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 07:08:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759341.1169027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTcIh-0007t8-1o; Tue, 16 Jul 2024 07:08:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759341.1169027; Tue, 16 Jul 2024 07: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 1sTcIg-0007sz-VM; Tue, 16 Jul 2024 07:08:38 +0000
Received: by outflank-mailman (input) for mailman id 759341;
 Tue, 16 Jul 2024 07:08:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=liZX=OQ=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTcIf-0007VG-TM
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 07:08:37 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3880ec71-4342-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 09:08:37 +0200 (CEST)
Received: from [10.176.133.251] (unknown [160.78.253.158])
 by support.bugseng.com (Postfix) with ESMTPSA id 9DB384EE073C;
 Tue, 16 Jul 2024 09:08: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: 3880ec71-4342-11ef-bbfb-fd08da9f4363
Message-ID: <ced0578e-c4fb-4e2a-938b-b11dc41cba8e@bugseng.com>
Date: Tue, 16 Jul 2024 09:08:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Resend XEN PATCH v4 0/9] x86: address some violations of MISRA C
 Rule 16.3
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 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.1721050709.git.federico.serafini@bugseng.com>
 <704db9f3-e143-4a52-a0da-30443a128519@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG
In-Reply-To: <704db9f3-e143-4a52-a0da-30443a128519@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 16/07/24 08:59, Jan Beulich wrote:
> On 15.07.2024 18:48, Federico Serafini wrote:
>> This patch series fixes a missing escape in a deviation and addresses some
>> violations.
>>
>> Federico Serafini (9):
>>    automation/eclair: fix deviation of MISRA C Rule 16.3
>>    x86/cpuid: use fallthrough pseudo keyword
>>    x86/domctl: address a violation of MISRA C Rule 16.3
>>    x86/vpmu: address violations of MISRA C Rule 16.3
>>    x86/traps: address violations of MISRA C Rule 16.3
>>    x86/mce: address violations of MISRA C Rule 16.3
>>    x86/hvm: address violations of MISRA C Rule 16.3
>>    x86/mm: add defensive return
>>    x86/mpparse: address a violation of MISRA C Rule 16.3
> 
> And what exactly was this resend about? Even sent as reply to the original
> submission, rather than as a plain new thread, thus resulting in everything
> being mixed up into a single thread?

I'm sorry I forgot to add the maintainers in the first patch series,
so I resent it.

-- 
Federico Serafini, M.Sc.

Software Engineer, BUGSENG (http://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 07:11:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 07:11:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759350.1169038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTcKw-00014a-Hb; Tue, 16 Jul 2024 07:10:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759350.1169038; Tue, 16 Jul 2024 07: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 1sTcKw-00014T-EB; Tue, 16 Jul 2024 07:10:58 +0000
Received: by outflank-mailman (input) for mailman id 759350;
 Tue, 16 Jul 2024 07: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=liZX=OQ=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sTcKv-00014N-4k
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 07:10:57 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ba91498-4342-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 09:10:56 +0200 (CEST)
Received: from [10.176.133.251] (unknown [160.78.253.158])
 by support.bugseng.com (Postfix) with ESMTPSA id CC4B04EE073C;
 Tue, 16 Jul 2024 09:10: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: 8ba91498-4342-11ef-bbfb-fd08da9f4363
Message-ID: <ceebe9da-15b3-4d80-937f-9d8ac814a563@bugseng.com>
Date: Tue, 16 Jul 2024 09:10:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 5/9] x86/traps: address violations of MISRA C Rule
 16.3
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1721050709.git.federico.serafini@bugseng.com>
 <d16e294e1cbd74001c1ca276023d13f66f4ec0d3.1721050709.git.federico.serafini@bugseng.com>
 <5b3c9818-9ac5-49ae-9ae6-fb96a0410297@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG
In-Reply-To: <5b3c9818-9ac5-49ae-9ae6-fb96a0410297@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 16/07/24 09:08, Jan Beulich wrote:
> On 15.07.2024 18:48, Federico Serafini wrote:
>> Add break or pseudo keyword fallthrough to address violations of
>> MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
>> every switch-clause".
>>
>> No functional change.
>>
>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> And my A-b was lost? Please can you be more diligent in collecting tags,
> helping committers?

You are right, sorry Jan.

-- 
Federico Serafini, M.Sc.

Software Engineer, BUGSENG (http://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 07:18:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 07:18:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759359.1169047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTcRi-0002Gj-4C; Tue, 16 Jul 2024 07:17:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759359.1169047; Tue, 16 Jul 2024 07: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 1sTcRi-0002Gc-1f; Tue, 16 Jul 2024 07:17:58 +0000
Received: by outflank-mailman (input) for mailman id 759359;
 Tue, 16 Jul 2024 07: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=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTcRh-0002GW-3c
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 07:17:57 +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 8506996e-4343-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 09:17:55 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-36799a67d9cso4117274f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 00:17: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
 d9443c01a7336-1fc0bbbf792sm51488465ad.96.2024.07.16.00.17.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 00:17: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: 8506996e-4343-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721114274; x=1721719074; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1L+thWJhQ94nYSHtBcwn3fQJ1k/di/vkyhHxhGjgE98=;
        b=Ket3nx2gIy+FSmvJNRtT1XDrWDdWbCweyCqr1PD26Nvlu10Mi5k/qvdnBQyz0dy5A+
         C/wxiZCIvKrVJNojSRJQyKUInJxyGhg0sm+oKb2I/M9R9GXXi0eQHZ+P9jE2QS+zVMa9
         on+5RHbN0Y9+94vTTOl9nthb+tg11DYVP19SWXyRywoA29bRKk0GVGVrfAVawE5504UQ
         RYDvfmu/GxM0OEkxTMuuIq9nl3Dd4mP/mSTBc2Hmva4rg7JX4ZpHbjStP6Qb5MtsIjcY
         d27PCyQQM61AQ0AstQTHTmvMQ82d/Elvvh8sy9Kb5fzL35+vCyhonU8bD2p21DhsqD+a
         QIlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721114274; x=1721719074;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1L+thWJhQ94nYSHtBcwn3fQJ1k/di/vkyhHxhGjgE98=;
        b=JNcVRtn2RozJIwTueJE5D4S/ZWi1oyRKT9cJpWTU6staalwg5amyUhMa2vRahfiZOj
         bpQauZ8ZNKLNAV7/813MAKbpyyC7Ost1/MQ2ZfZoSp/0SzYPByeeMx0CD53xmqP+4vol
         R7HwutSjnF23/zlueL22M4kdvmJS2FvALsxgpFoX5ELMdlyhlCxXSWihHdobF9tzBxzY
         17SGHCbICyE6bQFqmJpCzSyZyNMrTBISuHZs1ZkDI+CQedyKC41ZN9mRc5N0UGyMMBuq
         40gEQjP11rFq24/kyWcLZaODB+dWo4L8AQxXsJq/sj+ZJQdorBzkDBBRBqpQT/vdIkpr
         j1Og==
X-Forwarded-Encrypted: i=1; AJvYcCWrZS/CtbMzmGokGaMMopizhard5+RJEyOFzzEg1Nuf7D3cWYFmEVn396TSHxk70xKHLNOmTfUQoNjNXjaALd/SeBUJhHo/R1U563Y4fkQ=
X-Gm-Message-State: AOJu0YyKN6RGRV5UjoNyDQ1ChfwvSv9L3xQ0gnhHrUOXnLQ2QETI1HdC
	YiYPbnon8npvbi/L3+0BktQ8GboSskctfLjW2873h74UrbHQLZQgCIsRotbKjg==
X-Google-Smtp-Source: AGHT+IE5PvgSgbjgif5ZQgxezZdi3jXDM4UMCmC2mA1QHSSOJSyWzF9yZlKmp89bsWP3EB09j4GN+A==
X-Received: by 2002:a05:6000:1f86:b0:367:f054:620a with SMTP id ffacd0b85a97d-368260d92cfmr1034978f8f.30.1721114273995;
        Tue, 16 Jul 2024 00:17:53 -0700 (PDT)
Message-ID: <4893a89d-9ef5-4d86-94b0-042e88588439@suse.com>
Date: Tue, 16 Jul 2024 09:17:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
 consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com>
 <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com>
 <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
 <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com>
 <alpine.DEB.2.22.394.2407151736530.3635@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.2407151736530.3635@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.07.2024 02:43, Stefano Stabellini wrote:
> On Mon, 15 Jul 2024, Jan Beulich wrote:
>> On 13.07.2024 00:38, Stefano Stabellini wrote:
>>> On Wed, 3 Jul 2024, Jan Beulich wrote:
>>>> I further have to note that, as indicated during the earlier discussion,
>>>> I still cannot see how occasional ambiguity is going to be dealt with.
>>>> IOW from the rules above two different headers could still end up with
>>>> the same guard identifier.
>>>
>>> Maybe something like this?
>>>
>>> "In the event of naming collisions, exceptions to the coding style may
>>> be made at the discretion of the contributor and maintainers."
>>
>> Hmm, maybe I wasn't clear enough then. My take is that the scheme should
>> simply not allow for possible collisions. Neither the contributor nor the
>> reviewer may spot such a collision, and it may therefore take until the
>> first full scan that one is actually noticed. Which I consider too late
>> in the process, even if we already were at the point where commits were
>> checked pre-push.
> 
> Looking at the proposal, copy/pasted here for convenience:
> 
> - private headers -> <dir>_<filename>_H
> - asm-generic headers -> ASM_GENERIC_<filename>_H
>     - #ifndef ASM_GENERIC_X86_PERCPU_H
>       #define ASM_GENERIC_X86_PERCPU_H
>       //...
>       #endif /* ASM_GENERIC_X86_PERCPU_H */
> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
>     - #ifndef ASM_X86_DOMAIN_H
>       #define ASM_X86_DOMAIN_H
>       //...
>       #endif /* ASM_X86_DOMAIN_H */
> - xen/include/xen/<filename>.h -> XEN_<filename>_H
> - xen/include/xen/<subdir>/<filename>.h -> XEN_<subdir>_<filename>_H
> 
> 
> The only possibility for collision that I can see is from the first
> point:
> 
> - private headers -> <dir>_<filename>_H

I don't think this is the only possibility of collisions. The <subdir>_<filename>
parts can similarly cause problems if either of the two involved names contains
e.g. a dash (which would need converting to an underscore) or an underscore. To
avoid this, the name separators (slashes in the actual file names) there may need
representing by double underscores.

> two directories like this could collide:
> 
> - arch/arm/arm64/lib/something.h -> LIB_SOMETHING_H
> - arch/arm/arm32/lib/something.h -> LIB_SOMETHING_H
> - arch/x86/lib/something.h -> LIB_SOMETHING_H
> 
> (Leaving aside that in this example it would not be an issue because the
> three headers are not meant to be all included in the same file.)
> 
> Can we specify that <dir> should go all the way back to the arch/ or or
> common or drivers directory?
> 
> - arch/arm/arm64/lib/something.h -> ARM_ARM64_LIB_SOMETHING_H
> - arch/arm/arm32/lib/something.h -> ARM_ARM32_LIB_SOMETHING_H
> - arch/x86/lib/something.h -> X86_LIB_SOMETHING_H

We can of course, so long as we're okay(ish) with the length and redundancy. As
already indicated before, there are downsides to this. Yet a firm scheme with
few rules has the benefit that it might even be possible to use a script to do
all the guard adjustments.

Jan

> We can rely on the filesystem paths to make sure to avoid collisions.




From xen-devel-bounces@lists.xenproject.org Tue Jul 16 07:22:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 07:22:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759364.1169058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTcVk-0003j8-Lm; Tue, 16 Jul 2024 07:22:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759364.1169058; Tue, 16 Jul 2024 07:22: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 1sTcVk-0003j1-Iw; Tue, 16 Jul 2024 07:22:08 +0000
Received: by outflank-mailman (input) for mailman id 759364;
 Tue, 16 Jul 2024 07:22:07 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sTcVi-0003it-VN
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 07:22:06 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sTcVg-0007MZ-TK; Tue, 16 Jul 2024 07:22:04 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.244])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sTcVg-0001hN-OF; Tue, 16 Jul 2024 07:22:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=4yqsR1PFKnBq/x9zDUbQI1eDoRBmOzOd+x+B7GtZprM=; b=Pbqaw2ktVA6brU059L2bXu+N+r
	re7LGo6UE0qx0j74APzs4hL5UiB4AJel+/eX2wRlqlfipi4BMwtZqYgV2nb0vrmwXSSZx8OL2sBmT
	VtLdqivJ+mkRBCrfAvkPoLMZvGI1rTQjq88Z+CjjALas/I1ZgC1SUmT5Z4pKbJQVd2HU=;
Message-ID: <884ea922-946c-4344-ab29-6f2eb4be69f7@xen.org>
Date: Tue, 16 Jul 2024 08:22:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
 <3b188f84-50f7-4e13-bcde-1d6076e5cc2d@xen.org>
 <423412a9-e969-4126-8e39-7e77e67d2fd8@suse.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <423412a9-e969-4126-8e39-7e77e67d2fd8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 16/07/2024 07:47, Jan Beulich wrote:
> On 15.07.2024 18:56, Julien Grall wrote:
>> On 15/07/2024 16:50, Andrew Cooper wrote:
>>> An earlier part of the checklist states:
>>>
>>>     * change xen-unstable README. The banner (generated using figlet) should say:
>>>         - "Xen 4.5" in releases and on stable branches
>>>         - "Xen 4.5-unstable" on unstable
>>>         - "Xen 4.5-rc" for release candidate
>>>
>>> Update the notes about XEN_EXTRAVERSION to match.
>>
>> We have been tagging the tree with 4.5.0-rcX. So I think it would be
>> better to update the wording so we use a consistent naming.
> 
> I find:
> 
> 4.18-rc
> 4.17-rc
> 4.16-rc
> 4.15-rc

Hmmm... I don't think we are looking at the same thing. I was 
specifically looking at the tag and *not* XEN_EXTRAVERSION.

42sh> git tag | grep rc

3.0.2-rc
3.2.0-rc1
3.2.0-rc2
3.2.0-rc3
3.2.0-rc4
3.2.0-rc5
3.2.0-rc6
3.3.0-rc1
3.3.0-rc2
[...]
4.14.0-rc1
4.14.0-rc2
4.14.0-rc3
4.14.0-rc4
4.14.0-rc5
4.15.0-rc1
4.15.0-rc2
4.15.0-rc3
4.15.0-rc4
4.15.0-rc5
4.16.0-rc1
4.16.0-rc2
4.16.0-rc3
4.16.0-rc4
4.17.0-rc1
4.17.0-rc2
4.17.0-rc3
4.17.0-rc4
4.18.0-rc1
4.18.0-rc2
4.18.0-rc3

> 
> Do I need to go any further? Your 4.5 example also doesn't fully fit because
> at that time we were, in addition, still appending RC numbers (up to and
> including 4.9 as it looks). In 4.10 it then (intermediately) indeed was
> 4.10.0-rc. In 4.11 it became 4.11-rc.

See above.

> 
> That said I wouldn't strictly mind the .0 infix. It's just that imo shorter
> is better, and the .0 doesn't really convey any useful information anymore
> now that we don't do / tag stable release RCs any longer.

So you are arguing for shortening the name. I am arguing for consistency 
across the naming. We can do both, but we would need to tag the tree 
with "4.X-rcY".

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 07:25:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 07:25:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759369.1169068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTcYh-0004JA-2B; Tue, 16 Jul 2024 07:25:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759369.1169068; Tue, 16 Jul 2024 07:25: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 1sTcYg-0004J3-Vq; Tue, 16 Jul 2024 07:25:10 +0000
Received: by outflank-mailman (input) for mailman id 759369;
 Tue, 16 Jul 2024 07:25: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=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTcYe-0004Ih-SO
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 07:25:08 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 873a4674-4344-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 09:25:07 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2eee1384e85so31583071fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 00:25: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
 d9443c01a7336-1fc0bc4e477sm51519645ad.265.2024.07.16.00.25.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 00:25: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: 873a4674-4344-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721114707; x=1721719507; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iyI/YOIt7x+RxZZWiRpLZMOgJr52jEcincsGQK+M8Lc=;
        b=DX7ssWSWIQzGDHnWg+rtB5IhxUAvtKLhltjCBuHzbFx5SXTfch9IxXvRWmOVLTaLXo
         S4aabwknHnj8bRsMiu5gyfqEbm783mKocS11zSTrXKv13NPg2hwI8fHKS10ricneR1vW
         vPeGaeRqmsM6I48NTPgohlzP5DCMVPnsdsx9c3QZ54lu6L5bTOlUv212ZNqUVrIg06vp
         tO9fFUMiM+HbqNdlZHLHX1fp3srB2u5ITQ3ulgnRgovl+PyNHZUhb7xeMHiuAQp8sDpz
         ESijRXuPVn51NB3OTjzj+ag2DwUyABsake2OusnZjtfJ9uABuvfosK6th283PChehmcQ
         PLhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721114707; x=1721719507;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iyI/YOIt7x+RxZZWiRpLZMOgJr52jEcincsGQK+M8Lc=;
        b=C5nlD+jVJbblpbS9vCEjB3hIx1OJwI4ZHVmgk4e4Jn0l2N6an/1/MV3rQ2URYoMnEz
         qF97uJ8nzJgGaxtcJUXoHoMTKKAh0GAzdF4I4A+1zjHpsUm9z21+DyVB0sImsGU6VGIx
         5DXktbxqIlC6bCGuwQdRrfEfYFVMSh2uvNspSnFuHQyUIUpLP7xknepYqGdqnA0FZo9n
         //k4nrB8ygoTyhqYiN4tE/vf4cCArEldaanMG6AwjgQNoZCS6SHJTB6YbffmDdRkJxV9
         UG0uAO0b1fLCbe1w4XBPjdxsinas0uDNSOxgWoxMiFyX4VUaW8Bz6dObToaHN4EbSEUT
         COqQ==
X-Forwarded-Encrypted: i=1; AJvYcCXtUHQ3OVUcMnmCPeZLo7Tkb2Aax9WWHl79yr6ojjuSvKYLhzhuBBo852CY4ykXBsenDJlp9c5GZAfmhUOS/9j8sN0+CUdJa8+PIL+BVS0=
X-Gm-Message-State: AOJu0YykxcutIzXu9IUrD9mgbMvmucxGko/e8wWYpcyHsJMdJtcU3bCL
	3hgi46zvaI5K3/kFM9lRlzeAcdtKBeQryiw/vK3uTbEg6tb4bocZcRT2Ksy4kg==
X-Google-Smtp-Source: AGHT+IFShOmI0NiOZLvbVDy/41uJU5MOVHqZ8JYUNx/LjAdEY9EeGaW6k7Xa6U+4+KAp0H8z4f2bZA==
X-Received: by 2002:a2e:91d3:0:b0:2ec:403e:6314 with SMTP id 38308e7fff4ca-2eef4151d75mr10341801fa.3.1721114707250;
        Tue, 16 Jul 2024 00:25:07 -0700 (PDT)
Message-ID: <94edb2c8-1d40-49c1-b29f-151418eb5c11@suse.com>
Date: Tue, 16 Jul 2024 09:24:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
 <3b188f84-50f7-4e13-bcde-1d6076e5cc2d@xen.org>
 <423412a9-e969-4126-8e39-7e77e67d2fd8@suse.com>
 <884ea922-946c-4344-ab29-6f2eb4be69f7@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: <884ea922-946c-4344-ab29-6f2eb4be69f7@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.07.2024 09:22, Julien Grall wrote:
> On 16/07/2024 07:47, Jan Beulich wrote:
>> On 15.07.2024 18:56, Julien Grall wrote:
>>> On 15/07/2024 16:50, Andrew Cooper wrote:
>>>> An earlier part of the checklist states:
>>>>
>>>>     * change xen-unstable README. The banner (generated using figlet) should say:
>>>>         - "Xen 4.5" in releases and on stable branches
>>>>         - "Xen 4.5-unstable" on unstable
>>>>         - "Xen 4.5-rc" for release candidate
>>>>
>>>> Update the notes about XEN_EXTRAVERSION to match.

When this is the purpose of the patch, ...

>>> We have been tagging the tree with 4.5.0-rcX. So I think it would be
>>> better to update the wording so we use a consistent naming.
>>
>> I find:
>>
>> 4.18-rc
>> 4.17-rc
>> 4.16-rc
>> 4.15-rc
> 
> Hmmm... I don't think we are looking at the same thing. I was 
> specifically looking at the tag and *not* XEN_EXTRAVERSION.

... why would we be looking at tags? The tags (necessarily) have RC numbers,
so are going to be different from XEN_EXTRAVERSION in any event.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 07:33:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 07:33:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759377.1169078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTcgv-0006bM-RK; Tue, 16 Jul 2024 07:33:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759377.1169078; Tue, 16 Jul 2024 07: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 1sTcgv-0006bF-O2; Tue, 16 Jul 2024 07:33:41 +0000
Received: by outflank-mailman (input) for mailman id 759377;
 Tue, 16 Jul 2024 07:33: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 1sTcgu-0006b9-Sf
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 07:33:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sTcgs-0007bp-82; Tue, 16 Jul 2024 07:33:38 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.244])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sTcgs-0002ZR-2E; Tue, 16 Jul 2024 07:33:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=6hQU9e18PqrTwj1AA1G35dUFtakyigUI+zTQruBZn5A=; b=ugU6kWZUweH5SLzKnZnxtNh1+U
	ns3kIuuPsDwCntm23Nb2tJ66TOuLC6gLciJBUgLE4YVsxSnUlsmBz1TvRklkTjifKWAgIFrq5opif
	IT8yXmtKnox2loIP89obKy/ZKvuhdZ0juCnyKKeTJpeNVDEYq24fbuh02bAXWcj9C+A4=;
Message-ID: <7920f364-d07d-4004-b2b8-fa43b754e9b9@xen.org>
Date: Tue, 16 Jul 2024 08:33:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
 <3b188f84-50f7-4e13-bcde-1d6076e5cc2d@xen.org>
 <423412a9-e969-4126-8e39-7e77e67d2fd8@suse.com>
 <884ea922-946c-4344-ab29-6f2eb4be69f7@xen.org>
 <94edb2c8-1d40-49c1-b29f-151418eb5c11@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <94edb2c8-1d40-49c1-b29f-151418eb5c11@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 16/07/2024 08:24, Jan Beulich wrote:
> On 16.07.2024 09:22, Julien Grall wrote:
>> On 16/07/2024 07:47, Jan Beulich wrote:
>>> On 15.07.2024 18:56, Julien Grall wrote:
>>>> On 15/07/2024 16:50, Andrew Cooper wrote:
>>>>> An earlier part of the checklist states:
>>>>>
>>>>>      * change xen-unstable README. The banner (generated using figlet) should say:
>>>>>          - "Xen 4.5" in releases and on stable branches
>>>>>          - "Xen 4.5-unstable" on unstable
>>>>>          - "Xen 4.5-rc" for release candidate
>>>>>
>>>>> Update the notes about XEN_EXTRAVERSION to match.
> 
> When this is the purpose of the patch, ...
> 
>>>> We have been tagging the tree with 4.5.0-rcX. So I think it would be
>>>> better to update the wording so we use a consistent naming.
>>>
>>> I find:
>>>
>>> 4.18-rc
>>> 4.17-rc
>>> 4.16-rc
>>> 4.15-rc
>>
>> Hmmm... I don't think we are looking at the same thing. I was
>> specifically looking at the tag and *not* XEN_EXTRAVERSION.
> 
> ... why would we be looking at tags?

As I wrote, consistency across the naming scheme we use.

> The tags (necessarily) have RC numbers,

Right but they also *have* the .0.

> so are going to be different from XEN_EXTRAVERSION in any event.

Sure they are not going to be 100% the same. However, they could have 
some similarity.

As I pointed out multiple times now, to me it is odd we are tagging the 
tree with 4.19.0-rcX, but we use 4.19-rc.

Furthermore, if you look at the history of the document. It is quite 
clear that the goal was consistency (the commit mentioned by Andrew 
happened after). Yes it wasn't respected but I can't tell exactly why.

So as we try to correct the documentation, I think we should also look 
at consistency. If you *really* want to drop the .0, then I think it 
should happen for the tag as well (again for consistency).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 07:47:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 07:47:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759383.1169088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTctt-0000aC-Vd; Tue, 16 Jul 2024 07:47:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759383.1169088; Tue, 16 Jul 2024 07: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 1sTctt-0000a5-Rz; Tue, 16 Jul 2024 07:47:05 +0000
Received: by outflank-mailman (input) for mailman id 759383;
 Tue, 16 Jul 2024 07:47:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTcts-0000Zz-Li
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 07:47:04 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96ce4046-4347-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 09:47:02 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2eec7e431d9so66802141fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 00:47: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
 98e67ed59e1d1-2caedbfadfasm5654356a91.17.2024.07.16.00.46.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 00:47: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: 96ce4046-4347-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721116022; x=1721720822; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CQ66EHYIUc0s29P7LBjRyAoAqYHSXfcfUGFk3Q0Mss0=;
        b=BJNLukprNkZ2UATjvf/Shv0vRg4dfQ/G/WxFBlCVydQ9x0qgfLWUQ9YTzRgNWjnXbH
         tbG+FfMUvRt0CITXdDr43XWUTWLfXeMFQEkDwMK95gh8d8IvmSKZSCGbyKNaDfzS5h7A
         mQDQWuZIC9F9ADsrLRYVDuvEHZ4x8MCpbvlzVRZzAL9LEmR+KPkvQD53VU96qROpKAgz
         KW/0wBImLonIn2NsQTwn+omLrZFWn5M6GDhKm2KX//U2XHfs6+u+r1j/XYJeKSTqx+2f
         xZ4h9+bSPNaqMzfL9sry9gM0aDyQWXNtqFi1IKf6oeays51cLD2F84b1IT9ffqWpLIo1
         jihg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721116022; x=1721720822;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CQ66EHYIUc0s29P7LBjRyAoAqYHSXfcfUGFk3Q0Mss0=;
        b=F61Mgh2jwgfSnEYULyFykSEL9VDfWs7tvzhgga/6nXbrjANijDcTe4xBm1e/ML52yq
         Ss3VtUHuxqQLslqTBG3GMYmAaVuMk4XFNtEnw3AaJDKZUBlZ44HM+RarRiFYAOsa4jEV
         J3w3YPY+NnQ2uv/dOjg+IShzL0XYH8QKZfki+d7JPwRHbnh1tLYpZCfTuTchmmHCHlxx
         Zg4tovs0AcZYNto0STldJ241SvQp7otQgBFf83KGwapqcy/VhVafMZdCfNBQgWs5klTl
         B5CX+6xMDPTjj9NPKfjSjSgDPdrpshInwhU1hEWJsanZoXV5DVqzqGEKwfGQIz3r/Jzu
         iM9w==
X-Forwarded-Encrypted: i=1; AJvYcCV90fY9SSV+TeA+AvS8R6nuyDfFWpwMslIKLjg7vqGlnXULrPOHSpNC4Qn9fQzqbp/6wcipheWwgQvoFwKisQ41lS0DsZt91KBv+Gq7iZI=
X-Gm-Message-State: AOJu0YwItvuHirDTckGi/NHXw2X01347hNUEWM2O6mvIck9D+XaRSk/4
	wSsZfg/UO17tOGFMKUJtqrhmxnBz9ifMFJCRO5fkIky0K3+mPmO/QbhLOPCInQ==
X-Google-Smtp-Source: AGHT+IFR/oh+SXvuLTvOsnOhUCasWFpT94JV7kUaHgkdieIvuzq3nra1kTG8cTIJd0XrztVjs6Bakw==
X-Received: by 2002:a2e:8195:0:b0:2ee:bdc8:2ce8 with SMTP id 38308e7fff4ca-2eef4c0d29emr7664691fa.0.1721116021877;
        Tue, 16 Jul 2024 00:47:01 -0700 (PDT)
Message-ID: <94722620-dc9f-4ace-9e3e-070c362d10df@suse.com>
Date: Tue, 16 Jul 2024 09:46:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
 <3b188f84-50f7-4e13-bcde-1d6076e5cc2d@xen.org>
 <423412a9-e969-4126-8e39-7e77e67d2fd8@suse.com>
 <884ea922-946c-4344-ab29-6f2eb4be69f7@xen.org>
 <94edb2c8-1d40-49c1-b29f-151418eb5c11@suse.com>
 <7920f364-d07d-4004-b2b8-fa43b754e9b9@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: <7920f364-d07d-4004-b2b8-fa43b754e9b9@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.07.2024 09:33, Julien Grall wrote:
> Hi,
> 
> On 16/07/2024 08:24, Jan Beulich wrote:
>> On 16.07.2024 09:22, Julien Grall wrote:
>>> On 16/07/2024 07:47, Jan Beulich wrote:
>>>> On 15.07.2024 18:56, Julien Grall wrote:
>>>>> On 15/07/2024 16:50, Andrew Cooper wrote:
>>>>>> An earlier part of the checklist states:
>>>>>>
>>>>>>      * change xen-unstable README. The banner (generated using figlet) should say:
>>>>>>          - "Xen 4.5" in releases and on stable branches
>>>>>>          - "Xen 4.5-unstable" on unstable
>>>>>>          - "Xen 4.5-rc" for release candidate
>>>>>>
>>>>>> Update the notes about XEN_EXTRAVERSION to match.
>>
>> When this is the purpose of the patch, ...
>>
>>>>> We have been tagging the tree with 4.5.0-rcX. So I think it would be
>>>>> better to update the wording so we use a consistent naming.
>>>>
>>>> I find:
>>>>
>>>> 4.18-rc
>>>> 4.17-rc
>>>> 4.16-rc
>>>> 4.15-rc
>>>
>>> Hmmm... I don't think we are looking at the same thing. I was
>>> specifically looking at the tag and *not* XEN_EXTRAVERSION.
>>
>> ... why would we be looking at tags?
> 
> As I wrote, consistency across the naming scheme we use.
> 
>> The tags (necessarily) have RC numbers,
> 
> Right but they also *have* the .0.
> 
>> so are going to be different from XEN_EXTRAVERSION in any event.
> 
> Sure they are not going to be 100% the same. However, they could have 
> some similarity.
> 
> As I pointed out multiple times now, to me it is odd we are tagging the 
> tree with 4.19.0-rcX, but we use 4.19-rc.
> 
> Furthermore, if you look at the history of the document. It is quite 
> clear that the goal was consistency (the commit mentioned by Andrew 
> happened after). Yes it wasn't respected but I can't tell exactly why.
> 
> So as we try to correct the documentation, I think we should also look 
> at consistency. If you *really* want to drop the .0, then I think it 
> should happen for the tag as well (again for consistency).

I don't see why (but I also wouldn't mind the dropping from the tag).
They are going to be different. Whether they're different in one or two
aspects is secondary to me. I rather view the consistency goal to be
with what we've been doing in the last so many releases.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 08:18:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 08:18:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759392.1169098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTdNr-00070A-Bo; Tue, 16 Jul 2024 08:18:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759392.1169098; Tue, 16 Jul 2024 08: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 1sTdNr-000703-8k; Tue, 16 Jul 2024 08:18:03 +0000
Received: by outflank-mailman (input) for mailman id 759392;
 Tue, 16 Jul 2024 08:18:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTdNp-0006zx-Tw
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 08:18:01 +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 e9b984e8-434b-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 10:17:59 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-36799a67d9cso4158958f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 01:17: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
 d9443c01a7336-1fc0bba7080sm52770435ad.89.2024.07.16.01.17.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 01:17: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: e9b984e8-434b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721117879; x=1721722679; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=l3j+p7vOgZirBtt4mN1MSRKUA+wQUL6ne8ctoUq0k8U=;
        b=S/UBv2w6w2NgmKwpplMxbVoBIdCKhSemiOFacGyxixQmQvuDZhHp/HwP8MEZMrtpm0
         YIo5ga8wo4yRUT1mI976A+x+GFk36/hV3leTagfFoxj3JhHgykFQAObd742nZIOdJiY1
         l58ZpqfhbcFLctb4GFWSAX3p7iCKyh9T3eIZekcWYqVRlzz7f2OroA8klT+FqYLGdZIr
         2qfY4c75ff1LB//sZ729nVG9w1IOlkGz9PZGuBVS+CpFUztDh15Pr4DXbZn78lBjJm6z
         l+Pti8YNZRCpizSsCkUIL5dAoJ4TOFQ6qaHuBTQxu8om6I4W4Kxq413hyFzSgzc7haml
         guDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721117879; x=1721722679;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=l3j+p7vOgZirBtt4mN1MSRKUA+wQUL6ne8ctoUq0k8U=;
        b=dIz30y/3VC+nJZ0YssoEXpnXHbs7ed2kayDH9cKbMfiNlrzrn35hGQUUYdWoYsBkbU
         hl44/812LR07DftODKPH7DWu4xmkCB9POyv3V8C3gaIXKKZudMa1B6UQhCDwsfb4X0tB
         O4gkQEp+/8qwC19zSTPxFWspiwrQlkns4oSI1hKwFuw5XhUaQZYd0Tk1vDYrgu5IR2N9
         bFNKnfK0P0ZK/0vAh5FvBdKdP+HrcRsk/1/n425EmQHxwevF1tP3s9mwHp/nl6ThrvvG
         Hyq0lifl6uUWw6JUS5iitYxzEsde/I3c9DxHRaaANnYotEi6I02LXD4CF/0pCjM8ba0E
         8b7A==
X-Forwarded-Encrypted: i=1; AJvYcCVkZX85U3pPa4eUZZN3QCqRn9jSvldntXkrQYl6k7O5knJARj7H1rQ8fjmEi/6CxBsgLhuPP3HDHg2I5YxQiuvP6BHiEeaq5wYFvvt1GxU=
X-Gm-Message-State: AOJu0YzXPN5N8oEXBGeNuRKCunHvW3OoUfO5dg9jVl/S+OSSmZvl0Xzu
	7Hya68Q9MjQxu4zjoeaUN7c9cdrXvBT8lDIPRigsIZanI2TkF/p62Gzk9k4/aw==
X-Google-Smtp-Source: AGHT+IFO7UwuE0M6A/KshzZV/i/fUJcDOJfae8WhoiTLy0P3OorRv4OsIKXIcf/Nb07+s9zrYwU9VA==
X-Received: by 2002:a5d:64a6:0:b0:366:f34d:d0b7 with SMTP id ffacd0b85a97d-368260d3fb7mr1209133f8f.29.1721117878979;
        Tue, 16 Jul 2024 01:17:58 -0700 (PDT)
Message-ID: <4ef8a4a6-6c23-4e23-8483-3ef9141f4f3b@suse.com>
Date: Tue, 16 Jul 2024 10:17:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 7/9] x86/hvm: address violations of MISRA C Rule
 16.3
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1721050709.git.federico.serafini@bugseng.com>
 <f60c9580dcb2a078723fe9881124d7516e4e7593.1721050709.git.federico.serafini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f60c9580dcb2a078723fe9881124d7516e4e7593.1721050709.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 18:48, Federico Serafini wrote:
> MISRA C Rule 16.3 states that "An unconditional `break' statement shall
> terminate every switch-clause".
> 
> Add pseudo keyword fallthrough or missing break statement
> to address violations of the rule.
> 
> As a defensive measure, return an error message or a null pointer in
> case an unreachable return statement is reached.

The two kinds of changes are pretty different in nature. I think that ...

> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
> Changes in v4:
> - do not separate different parts of HVM:
>     a) squash patches 8, 11 and 12 of v3 into this patch;
>     b) address also violations of SVM and VMX;
> - re-arrange fallthrough positioning to comply with Coverity.
> Changes in v3:
> - squashed here modifications of pmtimer.c;

... while the prior splitting by file was indeed unnecessary (when the
main patch's title started with "x86/hvm:"), splitting by measure taken
would be quite helpful. Anything purely mechanical can perhaps stay
together, but everything more involved may want splitting off.

> @@ -2674,6 +2673,7 @@ static int _hvm_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt,
>  
>      default:
>          ASSERT_UNREACHABLE();
> +        break;
>      }

For example, I'm unconvinced that merely adding "break" is going to be
enough here. Imo at least rc also needs updating, to signal an error to
the caller (which may be what in the description "error message" is
intended to mean). Perhaps the right thing to do here is even to add
"return X86EMUL_*;" instead. Question then is which particular return
value to use. I would have suggested X86EMUL_UNHANDLEABLE, yet its
comment says "No state modified." Then again that may be stale anyway,
so perhaps that's the best we can do here.

> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> @@ -1446,6 +1446,7 @@ struct vmx_msr_entry *vmx_find_msr(const struct vcpu *v, uint32_t msr,
>  
>      default:
>          ASSERT_UNREACHABLE();
> +        return NULL;
>      }
>  
>      if ( !start )

Right below here there is

        return NULL;

Therefore adding "break" instead may be slightly better.

> @@ -1598,6 +1599,7 @@ int vmx_del_msr(struct vcpu *v, uint32_t msr, enum vmx_msr_list_type type)
>  
>      default:
>          ASSERT_UNREACHABLE();
> +        return -EINVAL;
>      }
>  
>      if ( !start )

Whereas here I agree that we don't want to pass back -ESRCH in such a case.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 08:22:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 08:22:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759406.1169112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTdS5-00008j-UN; Tue, 16 Jul 2024 08:22:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759406.1169112; Tue, 16 Jul 2024 08:22: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 1sTdS5-00008c-Ra; Tue, 16 Jul 2024 08:22:25 +0000
Received: by outflank-mailman (input) for mailman id 759406;
 Tue, 16 Jul 2024 08:22: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=kC+f=OQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sTdS4-00008W-3h
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 08:22:24 +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 85d2d7bc-434c-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 10:22:22 +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 8D3B21F810;
 Tue, 16 Jul 2024 08:22: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 4DE78136E5;
 Tue, 16 Jul 2024 08:22:19 +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 jvgfEbstlmbVBgAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 16 Jul 2024 08:22: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: 85d2d7bc-434c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721118140; 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=dyVOlTRGyCc6Rfttupy/x1jX46VjHhJPf8BRiIU/J3E=;
	b=AshL12hczvxAZ9QulMO0NbhWsgBFQY7VKyt/B+Oc4WQ7GdqvJhM6eW6rbOKKDQ7npHEf5j
	U4id/ew5shWaDUdauybLgWMHbaAKiS9B2IHJM4XoTmL5OUFL0c5/11xt7/OX1wW0HbYubN
	K4NJw4FVzRvSb0Nx+TIV7KCIUANFV+M=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721118139; 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=dyVOlTRGyCc6Rfttupy/x1jX46VjHhJPf8BRiIU/J3E=;
	b=cohPQDoBLYaOKWUj5aPk7mEva6rZsP5U4r7hYyXQjaOAvZ3z6Bkjt/YOEQYYgimIuMkPeI
	4Z8HLFwUihpqu2lbUp1rgpSJmE2Ug9f/6oidgAomKzaWjKQy4mtImxepEuaUZtSBgFSOlY
	3eGLGg3nmozaMFoxadimmc1Te6dM+io=
Message-ID: <2bdf382a-cbad-454f-82ce-0b0d30d2e8ef@suse.com>
Date: Tue, 16 Jul 2024 10:22:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
 <3b188f84-50f7-4e13-bcde-1d6076e5cc2d@xen.org>
 <423412a9-e969-4126-8e39-7e77e67d2fd8@suse.com>
 <884ea922-946c-4344-ab29-6f2eb4be69f7@xen.org>
 <94edb2c8-1d40-49c1-b29f-151418eb5c11@suse.com>
 <7920f364-d07d-4004-b2b8-fa43b754e9b9@xen.org>
 <94722620-dc9f-4ace-9e3e-070c362d10df@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: <94722620-dc9f-4ace-9e3e-070c362d10df@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------8wGiXLakFUfrRRYVcfb3jOzV"
X-Spamd-Result: default: False [-3.69 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SIGNED_PGP(-2.00)[];
	SUSPICIOUS_RECIPS(1.50)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	XM_UA_NO_VERSION(0.01)[];
	ARC_NA(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	TO_DN_ALL(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_FIVE(0.00)[6];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_CC(0.00)[kernel.org,gmail.com,citrix.com,lists.xenproject.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]
X-Spam-Flag: NO
X-Spam-Score: -3.69
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------8wGiXLakFUfrRRYVcfb3jOzV
Content-Type: multipart/mixed; boundary="------------VdSlwZgqHok0nL0F3C855fzD";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Message-ID: <2bdf382a-cbad-454f-82ce-0b0d30d2e8ef@suse.com>
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates
References: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
 <3b188f84-50f7-4e13-bcde-1d6076e5cc2d@xen.org>
 <423412a9-e969-4126-8e39-7e77e67d2fd8@suse.com>
 <884ea922-946c-4344-ab29-6f2eb4be69f7@xen.org>
 <94edb2c8-1d40-49c1-b29f-151418eb5c11@suse.com>
 <7920f364-d07d-4004-b2b8-fa43b754e9b9@xen.org>
 <94722620-dc9f-4ace-9e3e-070c362d10df@suse.com>
In-Reply-To: <94722620-dc9f-4ace-9e3e-070c362d10df@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=

--------------VdSlwZgqHok0nL0F3C855fzD
Content-Type: multipart/mixed; boundary="------------6XFLCWZCo7nNAb0DSZZyx28E"

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

T24gMTYuMDcuMjQgMDk6NDYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxNi4wNy4yMDI0
IDA5OjMzLCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+PiBIaSwNCj4+DQo+PiBPbiAxNi8wNy8y
MDI0IDA4OjI0LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+PiBPbiAxNi4wNy4yMDI0IDA5OjIy
LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+Pj4+IE9uIDE2LzA3LzIwMjQgMDc6NDcsIEphbiBC
ZXVsaWNoIHdyb3RlOg0KPj4+Pj4gT24gMTUuMDcuMjAyNCAxODo1NiwgSnVsaWVuIEdyYWxs
IHdyb3RlOg0KPj4+Pj4+IE9uIDE1LzA3LzIwMjQgMTY6NTAsIEFuZHJldyBDb29wZXIgd3Jv
dGU6DQo+Pj4+Pj4+IEFuIGVhcmxpZXIgcGFydCBvZiB0aGUgY2hlY2tsaXN0IHN0YXRlczoN
Cj4+Pj4+Pj4NCj4+Pj4+Pj4gICAgICAgKiBjaGFuZ2UgeGVuLXVuc3RhYmxlIFJFQURNRS4g
VGhlIGJhbm5lciAoZ2VuZXJhdGVkIHVzaW5nIGZpZ2xldCkgc2hvdWxkIHNheToNCj4+Pj4+
Pj4gICAgICAgICAgIC0gIlhlbiA0LjUiIGluIHJlbGVhc2VzIGFuZCBvbiBzdGFibGUgYnJh
bmNoZXMNCj4+Pj4+Pj4gICAgICAgICAgIC0gIlhlbiA0LjUtdW5zdGFibGUiIG9uIHVuc3Rh
YmxlDQo+Pj4+Pj4+ICAgICAgICAgICAtICJYZW4gNC41LXJjIiBmb3IgcmVsZWFzZSBjYW5k
aWRhdGUNCj4+Pj4+Pj4NCj4+Pj4+Pj4gVXBkYXRlIHRoZSBub3RlcyBhYm91dCBYRU5fRVhU
UkFWRVJTSU9OIHRvIG1hdGNoLg0KPj4+DQo+Pj4gV2hlbiB0aGlzIGlzIHRoZSBwdXJwb3Nl
IG9mIHRoZSBwYXRjaCwgLi4uDQo+Pj4NCj4+Pj4+PiBXZSBoYXZlIGJlZW4gdGFnZ2luZyB0
aGUgdHJlZSB3aXRoIDQuNS4wLXJjWC4gU28gSSB0aGluayBpdCB3b3VsZCBiZQ0KPj4+Pj4+
IGJldHRlciB0byB1cGRhdGUgdGhlIHdvcmRpbmcgc28gd2UgdXNlIGEgY29uc2lzdGVudCBu
YW1pbmcuDQo+Pj4+Pg0KPj4+Pj4gSSBmaW5kOg0KPj4+Pj4NCj4+Pj4+IDQuMTgtcmMNCj4+
Pj4+IDQuMTctcmMNCj4+Pj4+IDQuMTYtcmMNCj4+Pj4+IDQuMTUtcmMNCj4+Pj4NCj4+Pj4g
SG1tbS4uLiBJIGRvbid0IHRoaW5rIHdlIGFyZSBsb29raW5nIGF0IHRoZSBzYW1lIHRoaW5n
LiBJIHdhcw0KPj4+PiBzcGVjaWZpY2FsbHkgbG9va2luZyBhdCB0aGUgdGFnIGFuZCAqbm90
KiBYRU5fRVhUUkFWRVJTSU9OLg0KPj4+DQo+Pj4gLi4uIHdoeSB3b3VsZCB3ZSBiZSBsb29r
aW5nIGF0IHRhZ3M/DQo+Pg0KPj4gQXMgSSB3cm90ZSwgY29uc2lzdGVuY3kgYWNyb3NzIHRo
ZSBuYW1pbmcgc2NoZW1lIHdlIHVzZS4NCj4+DQo+Pj4gVGhlIHRhZ3MgKG5lY2Vzc2FyaWx5
KSBoYXZlIFJDIG51bWJlcnMsDQo+Pg0KPj4gUmlnaHQgYnV0IHRoZXkgYWxzbyAqaGF2ZSog
dGhlIC4wLg0KPj4NCj4+PiBzbyBhcmUgZ29pbmcgdG8gYmUgZGlmZmVyZW50IGZyb20gWEVO
X0VYVFJBVkVSU0lPTiBpbiBhbnkgZXZlbnQuDQo+Pg0KPj4gU3VyZSB0aGV5IGFyZSBub3Qg
Z29pbmcgdG8gYmUgMTAwJSB0aGUgc2FtZS4gSG93ZXZlciwgdGhleSBjb3VsZCBoYXZlDQo+
PiBzb21lIHNpbWlsYXJpdHkuDQo+Pg0KPj4gQXMgSSBwb2ludGVkIG91dCBtdWx0aXBsZSB0
aW1lcyBub3csIHRvIG1lIGl0IGlzIG9kZCB3ZSBhcmUgdGFnZ2luZyB0aGUNCj4+IHRyZWUg
d2l0aCA0LjE5LjAtcmNYLCBidXQgd2UgdXNlIDQuMTktcmMuDQo+Pg0KPj4gRnVydGhlcm1v
cmUsIGlmIHlvdSBsb29rIGF0IHRoZSBoaXN0b3J5IG9mIHRoZSBkb2N1bWVudC4gSXQgaXMg
cXVpdGUNCj4+IGNsZWFyIHRoYXQgdGhlIGdvYWwgd2FzIGNvbnNpc3RlbmN5ICh0aGUgY29t
bWl0IG1lbnRpb25lZCBieSBBbmRyZXcNCj4+IGhhcHBlbmVkIGFmdGVyKS4gWWVzIGl0IHdh
c24ndCByZXNwZWN0ZWQgYnV0IEkgY2FuJ3QgdGVsbCBleGFjdGx5IHdoeS4NCj4+DQo+PiBT
byBhcyB3ZSB0cnkgdG8gY29ycmVjdCB0aGUgZG9jdW1lbnRhdGlvbiwgSSB0aGluayB3ZSBz
aG91bGQgYWxzbyBsb29rDQo+PiBhdCBjb25zaXN0ZW5jeS4gSWYgeW91ICpyZWFsbHkqIHdh
bnQgdG8gZHJvcCB0aGUgLjAsIHRoZW4gSSB0aGluayBpdA0KPj4gc2hvdWxkIGhhcHBlbiBm
b3IgdGhlIHRhZyBhcyB3ZWxsIChhZ2FpbiBmb3IgY29uc2lzdGVuY3kpLg0KPiANCj4gSSBk
b24ndCBzZWUgd2h5IChidXQgSSBhbHNvIHdvdWxkbid0IG1pbmQgdGhlIGRyb3BwaW5nIGZy
b20gdGhlIHRhZykuDQo+IFRoZXkgYXJlIGdvaW5nIHRvIGJlIGRpZmZlcmVudC4gV2hldGhl
ciB0aGV5J3JlIGRpZmZlcmVudCBpbiBvbmUgb3IgdHdvDQo+IGFzcGVjdHMgaXMgc2Vjb25k
YXJ5IHRvIG1lLiBJIHJhdGhlciB2aWV3IHRoZSBjb25zaXN0ZW5jeSBnb2FsIHRvIGJlDQo+
IHdpdGggd2hhdCB3ZSd2ZSBiZWVuIGRvaW5nIGluIHRoZSBsYXN0IHNvIG1hbnkgcmVsZWFz
ZXMuDQoNCkFub3RoZXIgYXNwZWN0IHRvIGxvb2sgYXQgd291bGQgYmUgdmVyc2lvbiBzb3J0
aW5nLiBUaGlzIHdpbGwgYmUgaW50ZXJlc3RpbmcNCndoZW4gZS5nLiBoYXZpbmcgYSBYZW4g
cnBtIHBhY2thZ2UgaW5zdGFsbGVkIGFuZCB1cGdyYWRpbmcgaXQgd2l0aCBhIGxhdGVyDQp2
ZXJzaW9uLiBJIGRvbid0IHRoaW5rIHdlIHdhbnQgdG8gcmVnYXJkIHJlcGxhY2luZyBhbiAt
cmMgdmVyc2lvbiB3aXRoIHRoZQ0KLjAgdmVyc2lvbiB0byBiZSBhIGRvd25ncmFkZSwgc28g
dGhlIHRoZSB2ZXJzaW9uIG51bWJlcnMgc2hvdWxkIGJlIHNvcnRlZCBieQ0KInNvcnQgLVYi
IGluIHRoZSBjb3JyZWN0IG9yZGVyLg0KDQpUaGlzIHdvdWxkIG1lYW4gdGhhdCB3ZSdkIG5l
ZWQgdG8gdXNlOg0KDQo0LjE5LXJjDQo0LjE5LjANCjQuMTkuMQ0KDQoNCkp1ZXJnZW4NCg0K

--------------6XFLCWZCo7nNAb0DSZZyx28E
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-----

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
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------6XFLCWZCo7nNAb0DSZZyx28E--

--------------VdSlwZgqHok0nL0F3C855fzD--

--------------8wGiXLakFUfrRRYVcfb3jOzV
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/Ey8FAmaWLboFAwAAAAAACgkQsN6d1ii/Ey8b
qAf9GTut/PKeB4VHjIHmRThBV86jpUyPG3pNP10uokk5JkldZVGKtvNrZFyKVLPb+rPJJnsCWXOS
/iP5T653d8NkW+jhr7jxWCAYD6mtGgoO1QEeJOx+bPY3V4G82/kzHiVamsXFij75epwxUKldr0Tg
Dtfow5UkoVr+AxDjOwM41/muBeUx9KWgMGlUgcutEZcanvnciB+KXsJnZmCBmqh4+fLT/Bv9OsLQ
YpWAfn7WpOrikd/myl+Q8R9IC5oZN4qga//r39CYkIvnwz6RrARmTOSID+xcgQx364qxLw/fODx6
QGDlQ3wY9yuIeRpGiDCsSNsj+5fOvQvGARRdKOwbRg==
=NRtb
-----END PGP SIGNATURE-----

--------------8wGiXLakFUfrRRYVcfb3jOzV--


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 08:48:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 08:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759413.1169122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTdrC-00040t-TC; Tue, 16 Jul 2024 08:48:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759413.1169122; Tue, 16 Jul 2024 08: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 1sTdrC-00040m-QT; Tue, 16 Jul 2024 08:48:22 +0000
Received: by outflank-mailman (input) for mailman id 759413;
 Tue, 16 Jul 2024 08:48: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=POAR=OQ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1sTdrC-00040g-53
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 08:48:22 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20614.outbound.protection.outlook.com
 [2a01:111:f403:2009::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25e7a1dc-4350-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 10:48:19 +0200 (CEST)
Received: from BLAPR03CA0068.namprd03.prod.outlook.com (2603:10b6:208:329::13)
 by CY5PR12MB6480.namprd12.prod.outlook.com (2603:10b6:930:33::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.23; Tue, 16 Jul
 2024 08:48:14 +0000
Received: from BL6PEPF0001AB53.namprd02.prod.outlook.com
 (2603:10b6:208:329:cafe::f9) by BLAPR03CA0068.outlook.office365.com
 (2603:10b6:208:329::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.28 via Frontend
 Transport; Tue, 16 Jul 2024 08:48:13 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB53.mail.protection.outlook.com (10.167.241.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.11 via Frontend Transport; Tue, 16 Jul 2024 08:48:13 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 16 Jul
 2024 03:48:12 -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, 16 Jul
 2024 03:48:11 -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, 16 Jul 2024 03:48: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: 25e7a1dc-4350-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hVJAWxvQRgI+QcnoIK/WmcExmLppDMCrZAd5BkPO+sAw6iDEfy5WBgYoe0h1WZ8uN1CHUFcnQ6iIPLslI8zrY1QrlWXeLxrukFEKH0ABjaD9rSxUU/e+QcHntWjOcYotRnK/ZxnZQim6D05lBINLWR47mnpSoGU80glLliIXougd1N+Dx62K3blc7U5DPzOmJCDrXnwEgSCV6ipnnPP0M2nCl8yLXutT+1tZpikGNZOaARy8zZ1t5I9VUFUjA0EvQngqOgbp3c/71HLeW6QJSG6RIYggj97d1G7vGnYSNNk+b8sckzIzx5Hda57BFidd0k4XXR4lAjl0icQWMaTrSA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9dTaxVqWvr20aPgF89ytjp6cwcQR8o6lIZitSUf3gOs=;
 b=FcGrnOtiWzc0uvUCniKqCSU4/zoziVNfAFpAD4fYMQa379p5/sQcGWYed1aMoYoWw1xP61urRnO3/wcYyN8d3D3IWzpoByiD89WK8InXa29paCtNr2jKpoJ/1WT9uTXVSUV80/+vYEdVhljLhzLwzdKj4SVacsKq8pRs+KxpxKPJibS+l40miKpiyuJaTXZ3AGPHTO9ljiWMmfbDMsJejhm6xPkno/nAivp38vFnJgnsKBnMarWRQez4KKHsd8RMGWnUWs9sLrV1ZnkHCS4c/I2fH30Yco5RaEaoBBJ5rDPzENSAqxHnjvm3nUZOtvJnanDWQOaRaRleKfdyRG3J8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9dTaxVqWvr20aPgF89ytjp6cwcQR8o6lIZitSUf3gOs=;
 b=llMH242qgLiRoo1vm6uTRP1UhOG3illGkP7uCWcjKT1W6dAzqSyvaWjx72B1zeVzdjxHX3Hufh/8abe4kZI0k4H5uK/mySma2z1UI8/75O7wKMsdGN4+kbGGJ/t92dzO/kAZjBbH06zfo7UVnEBP0bRUQ2yru3EXrr/1dJsS7/0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <sstabellini@kernel.org>, Michal Orzel <michal.orzel@amd.com>
Subject: [ImageBuilder] Make 'bootefi' work again
Date: Tue, 16 Jul 2024 10:47:59 +0200
Message-ID: <20240716084759.62152-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB53:EE_|CY5PR12MB6480:EE_
X-MS-Office365-Filtering-Correlation-Id: 1f9f717b-a23c-4acc-ee8e-08dca5740709
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?ikWb5J7RYWD/181q6CVdwCrcxcSPqGW8jMhASM2tLqsQCFebgHXGk+q+jsZJ?=
 =?us-ascii?Q?hF9LBKF9yJxoYwhSbp+bR/LLIcAZHo/pXpYeXMNoe8vV2cvgu8BH+XThAYtZ?=
 =?us-ascii?Q?Ed9QzMql20MC74cw8dWrd0nTFChHasKjYrK0sxpIz2153ENFi6wz1NfB8B4x?=
 =?us-ascii?Q?VAZY7XzCKiUN8gQ4sDspgoJqxTqsMUbMzJoB50gOIwFadfW3C/XF76SMbkLj?=
 =?us-ascii?Q?6I+9zLTMO+RLzpaBX7W1MSjSNcKAu95oP905w1H+yUEJOKF3KA4PCedmamIA?=
 =?us-ascii?Q?q+lDp+FlmD2bn6cGG8LhnkZyhZEX1rGXNOe+ueP4qFoHGjURssGGCsaOBTzY?=
 =?us-ascii?Q?XgYgmmt+TJXNMRP+RmcMe1RMGjZSRFPWMpUlrKBCxqm420Fg24dCi3Dz/dKu?=
 =?us-ascii?Q?BGF16TiqDOHIKYDcKo39tAqH9SIxxWQEtrp7twiAtmu7pSp6eryvK/NfRUv2?=
 =?us-ascii?Q?Ej5UWb5g/T3bHBvuLACmO1zHMclvweOjyaEilG6wB0BfbP6r1VkwJ8pNwwmJ?=
 =?us-ascii?Q?f6wYaH2MF80H977kjFpdeA+FCfD/266RozK/eTuV8i7Y1PsEt5SOjSjXE6mZ?=
 =?us-ascii?Q?GLuTukzSy7yS+WDlPLtReexVrpfj/NVL/4jZK5Wf1KVql+UnCC3toclocZp2?=
 =?us-ascii?Q?8pICYOpc8dwyZuI6ECV7p0QjKdD3FsEc/wYB39ZBw6IVX2qtthcQzvbm2+w8?=
 =?us-ascii?Q?Po33ZhDg275enqJmip9F9YvhUppIyAx4iu0g5/mMFS882sjlKu1zLgDVaKBB?=
 =?us-ascii?Q?6x1nFoV3lmRSwXQhGizBLlkwkBGUnnyYZwIECI627vju4HD2U2r/yumKwT2V?=
 =?us-ascii?Q?Ol2vAP2X/Y0pZq+ByRSTRWrJyZcMOkZp4oErPtXB+dkSAlRE7FwG2rDQs0Cq?=
 =?us-ascii?Q?JorB49scpf65h9I9/xoL0OpCD92qYRqN9C6pwm6/EMpeJeg3zKUm60U4tpG0?=
 =?us-ascii?Q?glFCN8aZiOvjS0o5zG6K03neDJF3y1cVkW25uAGl3+o1sdJg4Rpbn6E4ksbr?=
 =?us-ascii?Q?5i8S9x0fWEaJ+Qoh1cVaOSLEAEIqfn0XSjEssfVFv9AV+OcoFSnYndAlHbHt?=
 =?us-ascii?Q?GVJELxHt7u7NVnGfSNnQb81tin+PLBiD+qQypvYtJ1QqYiuAAY3D4OrMfU+4?=
 =?us-ascii?Q?y4ON2OM91ePEgE90LkYvgItOd+6wQQSR6SYNCkYMgsqkiSlEYFYf+n4d8hOk?=
 =?us-ascii?Q?Ej3nBJUtMLClvykt2uCihUww6/TbkJ7lqRUxuqpdxddh4adcTaBKvS/uFpba?=
 =?us-ascii?Q?IN2zqik9OmnpT033uPdYB+Tg01ByEQkoS5dUZLZpzkfoKYSIjISmYY9qRCbm?=
 =?us-ascii?Q?vE8RsyfPRFBloDCOkni6+0VucJASEVSPYnqMKSdZpP1A/+CLhzblhPk116YE?=
 =?us-ascii?Q?oGM3A0abL7Jxg1jkptSRaVJEmXTY/crvdwIKldMmRjLWItf7oilrVwSPeI9H?=
 =?us-ascii?Q?nZJqF+vUheiI8omtMh+3pMTyr/KTToEY?=
X-Forefront-Antispam-Report:
	CIP:165.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: 16 Jul 2024 08:48:13.1867
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1f9f717b-a23c-4acc-ee8e-08dca5740709
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB53.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6480

When $BOOT_CMD is bootefi, there shall be no '-' between $kernel_addr
and $device_tree_addr.

Fixes: 3fa89f8f9853 ("Add support for BOOT_CMD")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
Note: using this command would be a good opportunity for a Xen EFI boot CI test
on Arm64 when the stub is not responsible for loading modules.
---
 scripts/uboot-script-gen | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index 8b664e711b10..f8a087b881ce 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -1391,7 +1391,7 @@ fi
 
 if [ "$BOOT_CMD" != "none" ]
 then
-    echo "$BOOT_CMD $kernel_addr - $device_tree_addr" >> $UBOOT_SOURCE
+    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
 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 Tue Jul 16 09:41:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 09:41:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759428.1169132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTefq-0003Qz-Ix; Tue, 16 Jul 2024 09:40:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759428.1169132; Tue, 16 Jul 2024 09:40: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 1sTefq-0003Qs-G2; Tue, 16 Jul 2024 09:40:42 +0000
Received: by outflank-mailman (input) for mailman id 759428;
 Tue, 16 Jul 2024 09:40:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTefo-0003Qi-IX; Tue, 16 Jul 2024 09:40:40 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTefo-00022W-E5; Tue, 16 Jul 2024 09:40:40 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTefn-0000pQ-VE; Tue, 16 Jul 2024 09:40:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTefn-0005oi-Ug; Tue, 16 Jul 2024 09:40:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=3zRjO/Fip+okHxY9d+VN/7mjfvML/bRogZKb6TjO6S0=; b=ZWr1PllwxCerDEU6c24pjayUUy
	7eHTf0+7n4L0szXRl5DCNP+iZSWcLn7uXG5DYkxaTCxT6f7NKsJLNhIovbZszI0ftPcQ2HUfdW4D3
	XfZ5PX8YrjoBaeNoK8rL8TBDTIqb96GHM5OQRB2v675b3C+rHGBCC9K7genVB4S1XRY0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186811-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186811: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=3e7819886281e077e82006fe4804b0d6b0f5643b
X-Osstest-Versions-That:
    linux=0c3836482481200ead7b416ca80c68a29cfdaabd
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Jul 2024 09:40:39 +0000

flight 186811 linux-linus real [real]
flight 186815 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186811/
http://logs.test-lab.xenproject.org/osstest/logs/186815/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-examine      8 reboot              fail pass in 186815-retest
 test-armhf-armhf-libvirt      8 xen-boot            fail pass in 186815-retest
 test-armhf-armhf-xl           8 xen-boot            fail pass in 186815-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 186815 like 186803
 test-armhf-armhf-xl         15 migrate-support-check fail in 186815 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 186815 never pass
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 186815 never pass
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186799
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186803
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186803
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186803
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186803
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                3e7819886281e077e82006fe4804b0d6b0f5643b
baseline version:
 linux                0c3836482481200ead7b416ca80c68a29cfdaabd

Last test of basis   186803  2024-07-15 06:22:41 Z    1 days
Failing since        186809  2024-07-15 17:12:11 Z    0 days    2 attempts
Testing same since   186811  2024-07-15 23:14:03 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adam Ford <aford173@gmail.com>
  Al Viro <viro@zeniv.linux.org.uk>
  Alan Adamson <alan.adamson@oracle.com>
  Alex Deucher <alexander.deucher@amd.com>
  Anders Larsen <al@alarsen.net>
  Andreas Hindborg <a.hindborg@samsung.com>
  Anton Ivanov <anton.ivanov@cambridgegreys.com>
  Anuj Gupta <anuj20.g@samsung.com>
  Baokun Li <libaokun1@huawei.com>
  Bart Van Assche <bvanassche@acm.org>
  Benjamin Marzinski <bmarzins@redhat.com>
  Chaitanya Kulkarni <kch@nvidia.com>
  Chao Yu <chao@kernel.org>
  Chen Ni <nichen@iscas.ac.cn>
  Christian Brauner <brauner@kernel.org>
  Christian König <christian.koenig@amd.com>
  Christoph Hellwig <hch@lst.de>
  Christophe JAILLET <christophe.jaillet@wanadoo.fr>
  Chuck Lever <chuck.lever@oracle.com>
  Damien Le Moal <dlemoal@kernel.org>
  Daniel Wagner <dwagner@suse.de>
  Darrick J. Wong <djwong@kernel.org>
  Dave Airlie <airlied@redhat.com>
  David Sterba <dsterba@suse.com>
  Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
  Dongliang Cui <dongliang.cui@unisoc.com>
  Effie Yu <effie.yu@intel.com> #On chat
  Eric Sandeen <sandeen@redhat.com>
  Eric Sandeen <sandeen@sandeen.net>
  Eugen Hristev <eugen.hristev@collabora.com>
  Ewan D. Milne <emilne@redhat.com>
  Gabriel Krisman Bertazi <krisman@collabora.com>
  Gabriel Krisman Bertazi <krisman@suse.de>
  Gaosheng Cui <cuigaosheng1@huawei.com>
  Gulam Mohamed <gulam.mohamed@oracle.com>
  Hannes Reinecke <hare@kernel.org>
  Hans de Goede <hdegoede@redhat.com>
  Himanshu Madhani <himanshu.madhani@oracle.com>
  Hongbo Li <lihongbo22@huawei.com>
  Ian Kent <raven@themaw.net>
  Ilya Dryomov <idryomov@gmail.com>
  Jack Wang <jinpu.wang@ionos.com>
  Jakub Kicinski <kuba@kernel.org>
  Jan Kara <jack@suse.cz>
  Jeff Johnson <quic_jjohnson@quicinc.com>
  Jeff Layton <jlayton@kernel.org>
  Jemmy <jemmywong512@gmail.com>
  Jens Axboe <axboe@kernel.dk>
  Jens Axboe <axboe@r7625.kernel.dk>
  Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
  John Garry <john.g.garry@oracle.com>
  John Meneghini <jmeneghi@redhat.com>
  Josef Bacik <josef@toxicpanda.com>
  José Roberto de Souza <jose.souza@intel.com>
  Justin Stitt <justinstitt@google.com>
  Jyoti Rani <jrani@purestorage.com>
  Kanchan Joshi <joshi.k@samsung.com>
  Keith Busch <kbusch@kernel.org>
  Kent Overstreet <kent.overstreet@linux.dev>
  Leo Li <sunpeng.li@amd.com>
  Li Nan <linan122@huawei.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Liu Ying <victor.liu@nxp.com> # i.MX8MP EVK ADV7535 EDID retrieval w/o IRQ
  Lucas De Marchi <lucas.demarchi@intel.com>
  Ma Ke <make24@iscas.ac.cn>
  Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
  Marco Patalano <mpatalan@redhat.com>
  Mateusz Guzik <mjguzik@gmail.com>
  Matthew Auld <matthew.auld@intel.com>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Michael S. Tsirkin <mst@redhat.com>
  Michal Mrozek <michal.mrozek@intel.com>
  Miguel Ojeda <ojeda@kernel.org>
  Mike Marshall <hubcap@omnibond.com>
  Mikulas Patocka <mpatocka@redhat.com>
  Ming Lei <ming.lei@redhat.com>
  Nathan Chancellor <nathan@kernel.org>
  Neil Armstrong <neil.armstrong@linaro.org>
  Nirmoy Das <nirmoy.das@intel.com>
  Ofir Gal <ofir.gal@volumez.com>
  OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
  Oleg Nesterov <oleg@redhat.com>
  Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
  Pavel Begunkov <asml.silence@gmail.com>
  Phillip Potter <phil@philpotter.co.uk>
  Prasad Singamsetty <prasad.singamsetty@oracle.com>
  Richard Weinberger <richard@nod.at>
  Ritesh Harjani (IBM) <ritesh.list@gmail.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Song Liu <song@kernel.org>
  Steven Rostedt (Google) <rostedt@goodmis.org>
  Tejun Heo <tj@kernel.org>
  Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
  Thomas Hellström <thomas.hellstrom@linux.intel.com>
  Thomas Song <tsong@purestorage.com>
  Thorsten Blum <thorsten.blum@toblux.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Weiwen Hu <huweiwen@linux.alibaba.com>
  Xi Ruoyao <xry111@xry111.site>
  Yang Li <yang.lee@linux.alibaba.com>
  Yao Zi <ziyao@disroot.org>
  Yi Zhang <yi.zhang@redhat.com>
  Youling Tang <tangyouling@kylinos.cn>
  Yu Kuai <yukuai3@huawei.com>
  Zhang Yi <yi.zhang@huawei.com>
  Zhiguo Niu <zhiguo.niu@unisoc.com>
  Zhihao Cheng <chengzhihao1@huawei.com>
  Zhu Yanjun <yanjun.zhu@linux.dev>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   0c3836482481..3e7819886281  3e7819886281e077e82006fe4804b0d6b0f5643b -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 09:48:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 09:48:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759436.1169142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTenT-00049o-Cz; Tue, 16 Jul 2024 09:48:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759436.1169142; Tue, 16 Jul 2024 09:48: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 1sTenT-00049h-9S; Tue, 16 Jul 2024 09:48:35 +0000
Received: by outflank-mailman (input) for mailman id 759436;
 Tue, 16 Jul 2024 09:48:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTenS-00049X-5o; Tue, 16 Jul 2024 09:48:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTenS-0002FG-17; Tue, 16 Jul 2024 09:48:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTenR-0000yg-M2; Tue, 16 Jul 2024 09:48:33 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTenR-0000lo-Lb; Tue, 16 Jul 2024 09:48: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=O6UA+hPT9Foy3C/EtgL0GzkRXKXlqRCWk5U7QmJ5r7o=; b=PYqUsv94+YWygi5t+TgbXhu4B8
	+80WXzVLkI6/9Hr1nO5rzgsrCFwUxzP555UylKH8BQ++FYVG5P9ehLYnTqSKokrZ6UCPfyYbEfqyG
	Xc7ZvuSSfrdKfEK6Y7MZTJEzTi4iDk34ADl4yrRHoSUFMDZJNusUlBq1YeVB7PPu2wOo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186812-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186812: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-qemuu-freebsd11-amd64:guest-start/freebsd.repeat:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
X-Osstest-Versions-That:
    xen=1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Jul 2024 09:48:33 +0000

flight 186812 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186812/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-qemuu-freebsd11-amd64 21 guest-start/freebsd.repeat fail pass in 186800
 test-armhf-armhf-libvirt      8 xen-boot                   fail pass in 186800

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 186800 like 186794
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 186800 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186800
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186800
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186800
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186800
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186800
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
baseline version:
 xen                  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9

Last test of basis   186812  2024-07-16 01:53:42 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       fail    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Tue Jul 16 11:04:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 11:04:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759446.1169152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTfyy-0004tm-Q3; Tue, 16 Jul 2024 11:04:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759446.1169152; Tue, 16 Jul 2024 11:04:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTfyy-0004tf-MQ; Tue, 16 Jul 2024 11:04:32 +0000
Received: by outflank-mailman (input) for mailman id 759446;
 Tue, 16 Jul 2024 11:04: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=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTfyx-0004tZ-FJ
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 11:04:31 +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 2bab368d-4363-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 13:04:28 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a77bf336171so871262566b.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 04:04: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
 d2e1a72fcca58-70b7eca7865sm5991016b3a.158.2024.07.16.04.04.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 04:04: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: 2bab368d-4363-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721127868; x=1721732668; 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=cFmcn6fqNWdGVPRPW/tf+EuA99yTAQnM3CB2wg1jzZY=;
        b=VQX4PWPunK9Y5OewaswmEOpozckBfIkMSSvJILrVnFxfJoL/aOwWIjFOnKj8elCrkc
         h2jJQ9KrKDzwLL8h5OhrKnlpM/ZQKROL7Gb3T55amnFqdLgroKUl3fJ3kCQLcNb8apmk
         YFUKBr+9tZdbnXKHvXUhJxImZpE4aTuCiNWElnIi2o7vlRPZIkTaQ5ZQmkmKTN18O+39
         aUrmMDIi0JG9g21ymlOdM6VcfFTZskk5Gf2QVsZr6VvXMIoHQkNfknkUUzYE2UTgDuvO
         O7/Q4qHCRFlYT4whUX9S4lArTndUe4e68TMEiW6i/6VI3FvUY4UpVQuspgHQ2Ovsnmg9
         Pd6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721127868; x=1721732668;
        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=cFmcn6fqNWdGVPRPW/tf+EuA99yTAQnM3CB2wg1jzZY=;
        b=dKmgbclU2Pq5yei8wCmLaB/V9GEmrfBHpF4IhJdRnjudhEhpNennRtiVxK0C5rZ9w9
         KcNF3mRoJtsSDrAW9U35rBfNfnp3AwmeX6j7Yx0XwKKO1VfEVkEaOwrJWmK27+SH3qEd
         skCQ+A6zBk8eK3ZyjXlnKz235gJoulJ6xgkcJzh0bkx7Tz7dSi1xJNAIWXe/DEqdnJO8
         ESg6D32VgAUc1/yHVUfAREcdpzIZiJTiyDEsrcrzNR0ZK2sNDc7yqd65uGypz6K/X2OZ
         PaUbHIUcvbEr1pWpZ+3Ao3LRDM6M/yLmuISAhLF8q3UJeqx6qXtxUbJ8meeyn5GT81Hs
         RWXw==
X-Forwarded-Encrypted: i=1; AJvYcCXnWid93FqglJe9q95eysIo8YIgwrikS2M/h5BpbFRsuSkD/yMnLtqBkcsp6MIjfJy5LxHDqpGFCYivajdGY2PSxu87yja/Zu43AI5fgxg=
X-Gm-Message-State: AOJu0YyLwnOGKHjCwg4+4A8WhOzC6EHYUICTb6efaOw41QH0AmcoNyc3
	vT5Var2toOaHkb+HlCN5jTW4pts7yx5CdUgUKFvhjn56jII6haafuUXN9CdINw==
X-Google-Smtp-Source: AGHT+IEc+Vc9zlcOrZnvTv53K2yAzQLEhBVIRBKHDIIrdE/8fLgxYVO7iNIZet+lKx3sNAd75zU5cA==
X-Received: by 2002:a17:906:f9ca:b0:a75:162c:3fd5 with SMTP id a640c23a62f3a-a79edcf5a14mr122875066b.28.1721127868073;
        Tue, 16 Jul 2024 04:04:28 -0700 (PDT)
Message-ID: <b14d25af-b6e6-45c2-b1b4-34000b65643d@suse.com>
Date: Tue, 16 Jul 2024 13:04:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: systemd units are not installed in 4.19.0-rc2 anymore
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel
 <xen-devel@lists.xenproject.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <ZpHqR4e3VaFAXC3m@mail-itl>
 <94d0ef92-9fb8-4097-a633-59f1190434c4@citrix.com>
 <1057f937-da16-415f-a760-ac4f00bc29f3@suse.com>
 <4cf46d24-2e21-4909-b1f4-fd6757801101@citrix.com>
 <f777a9fd-0239-49e5-902c-63745d2a6e5a@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: <f777a9fd-0239-49e5-902c-63745d2a6e5a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 12:30, Jan Beulich wrote:
> On 15.07.2024 12:07, Andrew Cooper wrote:
>> I see two options.
>>
>> 1) Activate Systemd by default on Linux now (as it's basically free), or
>> 2) Update CHANGELOG to note this behaviour
>>
>> Personally I think 2 is the better option, because we don't special case
>> the other init systems.
> 
> Would 1) have any downsides to Linux systems not coming with systemd? If
> not, like Marek says, wouldn't it make sense to put in place respective
> stuff unconditionally (by default), even if it may end up unused?

The more I think about it, the more I agree with you wanting to take the
2 route (perhaps additionally with mention of it in the release notes).
First and foremost because of the build-env != runtime-env consideration.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 11:35:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 11:35:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759451.1169161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTgSa-0000Mo-2d; Tue, 16 Jul 2024 11:35:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759451.1169161; Tue, 16 Jul 2024 11:35: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 1sTgSZ-0000Mh-Vf; Tue, 16 Jul 2024 11:35:07 +0000
Received: by outflank-mailman (input) for mailman id 759451;
 Tue, 16 Jul 2024 11:35:07 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTgSY-0000MX-Uq; Tue, 16 Jul 2024 11:35:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTgSY-0004K4-P3; Tue, 16 Jul 2024 11:35:06 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTgSY-0005Ll-6M; Tue, 16 Jul 2024 11:35:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTgSY-0007gV-5s; Tue, 16 Jul 2024 11:35:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=1ONH0QZgG+G0BDy/CXpBJD2di+EiHorkfzvGOUKD5CA=; b=oqxYzSKecxF+fPrGDeU+EUv6Uy
	g28R0Wd+gp7vazHREXGvfYqr6VXAdRdt74rcl99g6krxE5j30kGvlQy2TUbxtplKguKT8LBReaW0W
	8/wQaqqVejbviIsl/uAAiip5bR12VcE7Aqeh5NcxAyY5JN/0wOu1BFKTo7CffSNrIWEg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186814-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186814: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=fcf6beaf3dc435c1fe95f26605addc1d72e3e656
X-Osstest-Versions-That:
    libvirt=bec903cae84c21850d47a1b4d3ab57ca81189519
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Jul 2024 11:35:06 +0000

flight 186814 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186814/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186788
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              fcf6beaf3dc435c1fe95f26605addc1d72e3e656
baseline version:
 libvirt              bec903cae84c21850d47a1b4d3ab57ca81189519

Last test of basis   186788  2024-07-13 04:20:32 Z    3 days
Testing same since   186814  2024-07-16 04:18:47 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrea Bolognani <abologna@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   bec903cae8..fcf6beaf3d  fcf6beaf3dc435c1fe95f26605addc1d72e3e656 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 12:00:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 12:00:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759476.1169178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTgrA-0004NV-Fb; Tue, 16 Jul 2024 12:00:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759476.1169178; Tue, 16 Jul 2024 12:00:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTgrA-0004NO-DA; Tue, 16 Jul 2024 12:00:32 +0000
Received: by outflank-mailman (input) for mailman id 759476;
 Tue, 16 Jul 2024 12: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=P7YT=OQ=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1sTgr9-0004LV-OS
 for xen-devel@lists.xen.org; Tue, 16 Jul 2024 12:00:31 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fcf4dd84-436a-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 14:00:27 +0200 (CEST)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrewcoop@xenbits.xen.org>)
 id 1sTgqz-0004pQ-Fp; Tue, 16 Jul 2024 12:00:21 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <andrewcoop@xenbits.xen.org>)
 id 1sTgqz-0008JB-EB; Tue, 16 Jul 2024 12:00: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: fcf4dd84-436a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=jBqT5J8VwiTbmzsqgceP4IWvsu1bh07Z7+ZRyPwcv04=; b=vqTyEUoXboHjsbz3rgWsn6oexc
	ETcbzOg0pzznRPuXcqWNomY2rCqoyuc3JdRiupp+3NpMdOF6SseUaEKTPwFrahalzcZ0O03+wz+Q1
	y0qICRtQWfkKF++qIsBvnQoHFRCLHqYMxa5yT09GWd7LSGTjPBGqEiNQ5hkwEtb8On/0=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 458 v2 (CVE-2024-31143) - double unlock in
 x86 guest IRQ handling
Message-Id: <E1sTgqz-0008JB-EB@xenbits.xenproject.org>
Date: Tue, 16 Jul 2024 12:00:21 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2024-31143 / XSA-458
                               version 2

                double unlock in x86 guest IRQ handling

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

An optional feature of PCI MSI called "Multiple Message" allows a
device to use multiple consecutive interrupt vectors.  Unlike for MSI-X,
the setting up of these consecutive vectors needs to happen all in one
go.  In this handling an error path could be taken in different
situations, with or without a particular lock held.  This error path
wrongly releases the lock even when it is not currently held.

IMPACT
======

Denial of Service (DoS) affecting the entire host, crashes, information
leaks, or elevation of privilege all cannot be ruled out.

VULNERABLE SYSTEMS
==================

Xen versions 4.4 and newer are vulnerable.  Xen versions 4.3 and older
are not vulnerable.

Only x86 guest which have a multi-vector MSI capable device passed
through to them can leverage the vulnerability.

MITIGATION
==========

Not passing through multi-vector MSI capable devices to x86 guests will
avoid the vulnerability.

CREDITS
=======

This issue was discovered by Jan Beulich of SUSE.

RESOLUTION
==========

Applying the attached patch resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa458.patch           xen-unstable - Xen 4.16.x

$ sha256sum xsa458*
22dd1071755b1fd6b4ea3ce18a200f626ee796e77b7e7d93a3a5b33d2a896706  xsa458.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patch described above (or others which are
substantially similar) is permitted during the embargo, even on
public-facing systems with untrusted guest users and administrators.

HOWEVER, deployment of the mitigation is NOT permitted (except where
all the affected systems and VMs are administered and used only by
organisations which are members of the Xen Project Security Issues
Predisclosure List).  Specifically, deployment on public cloud systems
is NOT permitted.

This is because removing/replacing of pass-through devices or their
replacement by emulated devices is a guest visible configuration
change, which may lead to re-discovery of the issue.

Deployment of this mitigation is permitted only AFTER the embargo ends.

AND: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmaWYKoMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZKLgH/1uXqtha34XUX2xCayPYMss6yIwXDuugw4Z/F8Ap
tb+p65idTw5s2X0BXLpCcvhBZNY151DQXi0BZhTMewO8+JxrdjKPLthNSkGtF+/W
issUCQ9cuSj84n7n5AeMq1WDqVBYMnqNlgrsv9oiKAQ5g+9Rf8Mpu7RG1NrNcTCs
CfeDgMTOQcBuYG2xW2+46SXHVXKLA28uq6w4nIns4JpPF63DUJQKDDdypky1CSf1
9Z81Axi3cpk3NPvTw7TW2csO1C04XBVJvVVHJtUF1FVUhe0NboQy/zbh2te3QdJ8
KPXsQ55p0AZm3x8K2qM+Lsm1DqYhG5/ORMGC/+bXWc2H/nU=
=ZqmX
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa458.patch"
Content-Disposition: attachment; filename="xsa458.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSVJROiBhdm9pZCBkb3VibGUgdW5sb2NrIGluIG1hcF9kb21haW5f
cGlycSgpCgpGb3JldmVyIHNpbmNlIGl0cyBpbnRyb2R1Y3Rpb24gdGhlIG1h
aW4gbG9vcCBpbiB0aGUgZnVuY3Rpb24gZGVhbGluZwp3aXRoIG11bHRpLXZl
Y3RvciBNU0kgaGFkIGVycm9yIGV4aXQgcG9pbnRzICgiYnJlYWsiKSB3aXRo
IGRpZmZlcmVudApwcm9wZXJ0aWVzOiBJbiBvbmUgY2FzZSBubyBJUlEgZGVz
Y3JpcHRvciBsb2NrIGlzIGJlaW5nIGhlbGQuCk5ldmVydGhlbGVzcyB0aGUg
c3Vic2VxdWVudCBlcnJvciBjbGVhbnVwIHBhdGggYXNzdW1lZCBzdWNoIGEg
bG9jayB3b3VsZAp1bmlmb3JtbHkgbmVlZCByZWxlYXNpbmcuIElkZW50aWZ5
IHRoZSBjYXNlIGJ5IHNldHRpbmcgImRlc2MiIHRvIE5VTEwsCnRodXMgYWxs
b3dpbmcgdGhlIHVubG9jayB0byBiZSBza2lwcGVkIGFzIG5lY2Vzc2FyeS4K
ClRoaXMgaXMgQ1ZFLTIwMjQtMzExNDMgLyBYU0EtNDU4LgoKQ292ZXJpdHkg
SUQ6IDE2MDUyOTgKRml4ZXM6IGQxYjZkMGEwMjQ4OSAoIng4NjogZW5hYmxl
IG11bHRpLXZlY3RvciBNU0kiKQpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBSb2dlciBQYXUg
TW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KCi0tLSBhL3hlbi9hcmNo
L3g4Ni9pcnEuYworKysgYi94ZW4vYXJjaC94ODYvaXJxLmMKQEAgLTIyNzMs
NiArMjI3Myw3IEBAIGludCBtYXBfZG9tYWluX3BpcnEoCiAKICAgICAgICAg
ICAgIHNldF9kb21haW5faXJxX3BpcnEoZCwgaXJxLCBpbmZvKTsKICAgICAg
ICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZs
YWdzKTsKKyAgICAgICAgICAgIGRlc2MgPSBOVUxMOwogCiAgICAgICAgICAg
ICBpbmZvID0gTlVMTDsKICAgICAgICAgICAgIGlycSA9IGNyZWF0ZV9pcnEo
TlVNQV9OT19OT0RFLCB0cnVlKTsKQEAgLTIzMDgsNyArMjMwOSw5IEBAIGlu
dCBtYXBfZG9tYWluX3BpcnEoCiAKICAgICAgICAgaWYgKCByZXQgKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZk
ZXNjLT5sb2NrLCBmbGFncyk7CisgICAgICAgICAgICBpZiAoIGRlc2MgKQor
ICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2Mt
PmxvY2ssIGZsYWdzKTsKKwogICAgICAgICAgICAgcGNpX2Rpc2FibGVfbXNp
KG1zaV9kZXNjKTsKICAgICAgICAgICAgIGlmICggbnIgKQogICAgICAgICAg
ICAgewo=

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 12:00:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 12:00:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759480.1169220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTgrE-0005K7-FR; Tue, 16 Jul 2024 12:00:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759480.1169220; Tue, 16 Jul 2024 12:00: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 1sTgrE-0005Jy-CR; Tue, 16 Jul 2024 12:00:36 +0000
Received: by outflank-mailman (input) for mailman id 759480;
 Tue, 16 Jul 2024 12:00: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=P7YT=OQ=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1sTgrC-0004Jo-Tw
 for xen-devel@lists.xen.org; Tue, 16 Jul 2024 12:00:35 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0036d869-436b-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 14:00:33 +0200 (CEST)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrewcoop@xenbits.xen.org>)
 id 1sTgr3-0004pq-UW; Tue, 16 Jul 2024 12:00:25 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <andrewcoop@xenbits.xen.org>)
 id 1sTgr3-0008Me-ST; Tue, 16 Jul 2024 12:00: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: 0036d869-436b-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version:
	Content-Transfer-Encoding:Content-Type;
	bh=M5rB02SLJZDbI6JKq9D+ODSGiMLDb9EDbXXqElGskSo=; b=RLZ9FDiTbdivvZl4Q04OQW9ZRd
	qitPBCwMcpo98HyFB8JMZX09Ivam+cOopWS3d6ebG1O0uvrUZNXqIKYOmlQFSAPIdTbJ3Gp3uL4dZ
	dd42pF6yL7Lgp/vY/1LO3p+x8mhPkQEUMvmqfKJahW0Go8EVeSfo+WKGFWPNu69u/HkQ=;
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 459 v2 (CVE-2024-31144) - Xapi: Metadata
 injection attack against backup/restore functionality
Message-Id: <E1sTgr3-0008Me-ST@xenbits.xenproject.org>
Date: Tue, 16 Jul 2024 12:00:25 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2024-31144 / XSA-459
                               version 2

  Xapi: Metadata injection attack against backup/restore functionality

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

For a brief summary of Xapi terminology, see:

  https://xapi-project.github.io/xen-api/overview.html#object-model-overview

Xapi contains functionality to backup and restore metadata about Virtual
Machines and Storage Repositories (SRs).

The metadata itself is stored in a Virtual Disk Image (VDI) inside an
SR.  This is used for two purposes; a general backup of metadata
(e.g. to recover from a host failure if the filer is still good), and
Portable SRs (e.g. using an external hard drive to move VMs to another
host).

Metadata is only restored as an explicit administrator action, but
occurs in cases where the host has no information about the SR, and must
locate the metadata VDI in order to retrieve the metadata.

The metadata VDI is located by searching (in UUID alphanumeric order)
each VDI, mounting it, and seeing if there is a suitable metadata file
present.  The first matching VDI is deemed to be the metadata VDI, and
is restored from.

In the general case, the content of VDIs are controlled by the VM owner,
and should not be trusted by the host administrator.

A malicious guest can manipulate its disk to appear to be a metadata
backup.

A guest cannot choose the UUIDs of its VDIs, but a guest with one disk
has a 50% chance of sorting ahead of the legitimate metadata backup.  A
guest with two disks has a 75% chance, etc.

IMPACT
======

If a fraudulent metadata backup has been written into an SR which also
contains a legitimate metadata backup, and an administrator explicitly
chooses to restore from backup, the fraudulent metadata might be
consumed instead of the legitimate metadata.

Control over meta data includes: which VMs are created, disk assignment,
vCPU/RAM requirements, GPU allocation, etc.

VULNERABLE SYSTEMS
==================

Systems running Xapi v1.249.x are affected.

Systems running Xapi v24.x are potentially affected.  However it is
believed that the only supported products using this version of Xapi
have not shipped the metadata backup/restore functionality.

To leverage the vulnerability, an attacker would likely need insider
information to construct a plausible-looking metadata backup, and would
have to persuade a real administrator to perform a data-recovery action.

MITIGATION
==========

Not using the metadata restore functionality avoids the vulnerability.

CREDITS
=======

This issue was discovered by XenServer.

RESOLUTION
==========

The attached patches resolve the issue for Xapi v1.249.x releases.

xsa459-xen-api.patch (based on v1.249.37) causes all new metadata VDIs
to be created with a deterministic UUID, and restore functionality to use
that UUID only; not to search all disks to find the metadata.

After installing the updated Xapi, a new metadata backup should be
taken, to create a VDI with the new deterministic UUID.

The ability to restore from an old backup VDI is retained, but the
administrator is required to specify the exact VDI to use, so as to
avoid searching the SR.

Because xsa459-xen-api.patch alters the behaviour of the
xe-{backup,restore}-metadata scripts, a companion patch
xsa459-xsconsole.patch (based on v10.1.13.1) is needed to keep the
pre-existing menu options working, and to ask for user conformation if
needing to restore from a prior backup.

Note: some work was carried out in public on this issue before the
security implications were understood.  These changes are present in
xen-api.git and tagged as v1.249.37, which is used as the base for this
patch.

$ sha256sum xsa459*
89dba36a1889a41fbf585a25432079d10991d9e9f3c2d9f93f285c11e17e02c3  xsa459-xen-api.patch
0fc4dabd3a84055644fe415f55d8a1148ad2c17aaa2f8b52889cb11800c612d2  xsa459-xsconsole.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.


(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmaWYLkMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZTwkIALcgQmF/UVzUfs54omUKi+E4woQmfEOPO1GNki5x
abjnmv7Nos7AJem6ytX2eLLcPvl7iEtFf8p+pYdXwjjyT+Gtg2+8E/k8m7b4Qx3u
ZoW0ID3LBNb0++Tc+DKJKuEOMg2/OINbcFqAQUWutzbz38QCMJ30JyAkZKU/UYmL
Hs/xb65PpI1khaZD/1ipjxCDP/XJIzV2l1vD23omb1TXiWhsdHtT9YKiypThECnA
/uBUyKHOC9+Tx1eYrG0H8am8t2MKoOQL0Lu2xWFJskrg2LHYkxk3he0OTKWcsVTz
OYs1ReZt1k9KSwpqsIq5uJj/HARUCm+fPmL126IB4q5tMQ4=
=9K9F
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa459-xen-api.patch"
Content-Disposition: attachment; filename="xsa459-xen-api.patch"
Content-Transfer-Encoding: base64

RnJvbSA2NjY0N2FmZmYzMDgwOGNkZTI5MzhiNzI2NGQzNDcyNzMyNWRkZTcw
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IEJyZXR0IDxh
bGV4LmJyZXR0QGNsb3VkLmNvbT4KRGF0ZTogVHVlLCA5IEp1bCAyMDI0IDE2
OjI0OjI4ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gVXBkYXRlcyB0byBQb3J0
YWJsZSBTUiBGdW5jdGlvbmFsaXR5CgpBZGQgYSBuZXcgb3B0aW9uIGAtb2Ag
dG8geGUtcmVzdG9yZS1tZXRhZGF0YSwgd2hpY2ggaXMgdXNlZCB0byBkaXN0
aW5ndWlzaAp3aGV0aGVyIHRvIGFsbG93IHVzZSBvZiBsZWdhY3kgYmFja3Vw
IFZESXMsIG9yIGVuZm9yY2Ugb25seSB1c2Ugb2YgdGhlIG5ldwpmb3JtYXQg
VkRJcyB3aXRoIGtub3duIFVVSURzLgoKQWxzbyBtb2RpZnkgeGUtcmVzdG9y
ZS1tZXRhZGF0YSBzdWNoIHRoYXQgaXQgbm8gbG9uZ2VyIHN0b3BzIHNlYXJj
aGluZyB0aGUKY2FuZGlkYXRlIGxpc3QgaWYgb25seSBvbmUgVkRJIGlzIGZv
dW5kLCBidXQgaW5zdGVhZCBpZGVudGlmaWVzIGFsbCBwb3NzaWJsZQpiYWNr
dXAgVkRJcy4gSWYgbW9yZSB0aGFuIG9uZSBpcyBmb3VuZCwgYW5kIHlvdSBh
cmUgZG9pbmcgYW55dGhpbmcgb3RoZXIgdGhhbgpsaXN0aW5nIHRoZSBWRElz
LCB0aGUgc2NyaXB0IHdpbGwgYWJvcnQuIFRoaXMgaXMgdG8gY292ZXIgdGhl
IGNhc2Ugd2hlcmUgYQptYWxpY2lvdXMgbGVnYWN5IGZvcm1hdCBWREkgaXMg
cHJlc2VudCAtIHdlIHdpbGwgZGV0ZWN0IGl0IGFuZCB0aGUgZXhwZWN0ZWQK
J3JlYWwnIGJhY2t1cCBWREkuCgpNb2RpZnkgeGUtYmFja3VwLW1ldGFkYXRh
IHRvIGFsd2F5cyBleHBlY3QgdG8gdXNlIHRoZSBkZXRlcm1pbmlzdGljIFVV
SUQgdG8KaWRlbnRpZnkgdGhlIFZESSB0byBhZGQgYmFja3VwcyB0bywgZG8g
bm90IHJlbHkgb24gdGhlCmBvdGhlci1jb25maWc6Y3R4cy1wb29sLWJhY2t1
cGAgcHJvcGVydHkgZm9yIGlkZW50aWZpY2F0aW9uIGluIGFueSB3YXkuCgpU
aGlzLCB0b2dldGhlciB3aXRoIGNoYW5nZXMgaW4gdjEuMjQ5LjM3LCBpcyBY
U0EtNDU5IC8gQ1ZFLTIwMjQtMzExNDQKCkFsc28gZml4IHRoZSBmb2xsb3dp
bmcgaXNzdWVzIGludHJvZHVjZWQgd2l0aCBjaGFuZ2VzIGluIHYxLjI0OS4z
NzoKLSBJbmNvcnJlY3QgcGF0aCB0byBgeGVgIHdoZW4gY2FsbGluZyB2bS1p
bXBvcnQKLSBJc3N1ZXMgdXNpbmcgJ2RyeSBydW4nIGZ1bmN0aW9uYWxpdHkg
ZHVlIHRvIHNoZWxsIHF1b3RpbmcgY2hhbmdlcwoKU2lnbmVkLW9mZi1ieTog
QWxleCBCcmV0dCA8YWxleC5icmV0dEBjbG91ZC5jb20+Ci0tLQogc2NyaXB0
cy94ZS1iYWNrdXAtbWV0YWRhdGEgIHwgIDMyICstLS0tLS0KIHNjcmlwdHMv
eGUtcmVzdG9yZS1tZXRhZGF0YSB8IDE2NCArKysrKysrKysrKysrKysrKysr
KysrKystLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTExIGluc2Vy
dGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Njcmlw
dHMveGUtYmFja3VwLW1ldGFkYXRhIGIvc2NyaXB0cy94ZS1iYWNrdXAtbWV0
YWRhdGEKaW5kZXggZDI1ZTBjY2ZhLi4xNDUyZmJhZjcgMTAwNzU1Ci0tLSBh
L3NjcmlwdHMveGUtYmFja3VwLW1ldGFkYXRhCisrKyBiL3NjcmlwdHMveGUt
YmFja3VwLW1ldGFkYXRhCkBAIC01NSwyMyArNTUsNiBAQCBmdW5jdGlvbiB1
dWlkNSB7CiAgIHB5dGhvbiAtYyAiaW1wb3J0IHV1aWQ7IHByaW50ICh1dWlk
LnV1aWQ1KHV1aWQuVVVJRCgnJDEnKSwgJyQyJykpIgogfQogCi1mdW5jdGlv
biB2YWxpZGF0ZV92ZGlfdXVpZCB7Ci0gICMgd2UgY2hlY2sgdGhhdCB2ZGkg
aGFzIHRoZSBleHBlY3RlZCBVVUlEIHdoaWNoIGRlcGVuZHMgb24gdGhlIFVV
SUQgb2YKLSAgIyB0aGUgU1IuIFRoaXMgaXMgYSBkZXRlcm1pbmlzdGljIGhh
c2ggb2YgdGhlIFNSIFVVSUQgYW5kIHRoZQotICAjIG5hbWVzcGFjZSBVVUlE
ICROUy4gVGhpcyBVVUlEIG11c3QgbWF0Y2ggd2hhdCBYYXBpJ3MgVXVpZHgg
bW9kdWxlIGlzIHVzaW5nLgotICBsb2NhbCBOUz0iZTkzZTA2MzktMmJkYi00
YTU5LThiNDYtMzUyYjNmNDA4YzE5IgotICBsb2NhbCBzcj0iJDEiCi0gIGxv
Y2FsIHZkaT0iJDIiCi0gIGxvY2FsIHV1aWQKLQotICB1dWlkPSQodXVpZDUg
IiROUyIgIiRzciIpCi0gIGlmIFsgIiR2ZGkiICE9ICIkdXVpZCIgXTsgdGhl
bgotICAgIHJldHVybiAxCi0gIGVsc2UKLSAgICByZXR1cm4gMAotICBmaQot
fQotCiBmdW5jdGlvbiB0ZXN0X3NyIHsKICAgc3JfdXVpZF9mb3VuZD0kKCR7
WEV9IHNyLWxpc3QgdXVpZD0iJDEiIC0tbWluaW1hbCkKICAgaWYgWyAiJHtz
cl91dWlkX2ZvdW5kfSIgIT0gIiQxIiBdOyB0aGVuCkBAIC0xMjAsOCArMTAz
LDggQEAgZmkKIHRlc3Rfc3IgIiR7c3JfdXVpZH0iCiAKIHNyX25hbWU9JCgk
e1hFfSBzci1wYXJhbS1nZXQgdXVpZD0iJHtzcl91dWlkfSIgcGFyYW0tbmFt
ZT1uYW1lLWxhYmVsKQotIyBzZWUgaWYgYSBiYWNrdXAgVkRJIGFscmVhZHkg
ZXhpc3RzIG9uIHRoZSBzZWxlY3RlZCBTUgotdmRpX3V1aWQ9JCgke1hFfSB2
ZGktbGlzdCBvdGhlci1jb25maWc6Y3R4cy1wb29sLWJhY2t1cD10cnVlIHNy
LXV1aWQ9IiR7c3JfdXVpZH0iIHBhcmFtcz11dWlkIC0tbWluaW1hbCkKKyMg
YXNzdW1lIHVzZSBvZiB0aGUgbmV3IGZvcm1hdCBwcmVkaWN0YWJsZSBVVUlE
Cit2ZGlfdXVpZD0kKCR7WEV9IHZkaS1saXN0IHV1aWQ9IiQodXVpZDUgImU5
M2UwNjM5LTJiZGItNGE1OS04YjQ2LTM1MmIzZjQwOGMxOSIgIiRzcl91dWlk
IikiIC0tbWluaW1hbCkKIAogbW50PQogZnVuY3Rpb24gY2xlYW51cCB7CkBA
IC0xNjAsMTcgKzE0Myw2IEBAIGZ1bmN0aW9uIGNsZWFudXAgewogICAgZmkK
IH0KIAotIyBpZiB3ZSBjYW4ndCB2YWxpZGF0ZSB0aGUgVVVJRCBvZiB0aGUg
VkRJLCBwcm9tcHQgdGhlIHVzZXIKLWlmIFsgLW4gIiR7dmRpX3V1aWR9IiBd
OyB0aGVuCi0gICAgaWYgISB2YWxpZGF0ZV92ZGlfdXVpZCAiJHtzcl91dWlk
fSIgIiR7dmRpX3V1aWR9IiAmJiBbICIkeWVzIiAtZXEgMCBdOyB0aGVuCi0g
ICAgICAgIGVjaG8gIkJhY2t1cCBWREkgJHZkaV91dWlkIHdhcyBtb3N0IGxp
a2xleSBjcmVhdGUgYnkgYW4gZWFybGllciIKLSAgICAgICAgZWNobyAidmVy
c2lvbiBvZiB0aGlzIGNvZGUuIE1ha2Ugc3VyZSB0aGlzIGlzIGEgVkRJIHRo
YXQgeW91IgotICAgICAgICBlY2hvICJjcmVhdGVkIGFzIHdlIGNhbid0IHZh
bGlkYXRlIGl0IHdpdGhvdXQgbW91bnRpbmcgaXQuIgotICAgICAgICByZWFk
IC1wICJDb250aW51ZT8gW1kvTl0iIC1uIDEgLXI7IGVjaG8KLSAgICAgICAg
aWYgW1sgISAkUkVQTFkgPX4gXltZeV0kIF1dOyB0aGVuIGV4aXQgMTsgZmkK
LSAgICBmaQotZmkKLQogZWNobyAiVXNpbmcgU1I6ICR7c3JfbmFtZX0iCiBp
ZiBbIC16ICIke3ZkaV91dWlkfSIgXTsgdGhlbgogICBpZiBbICIke2NyZWF0
ZV92ZGl9IiAtZ3QgMCBdOyB0aGVuCmRpZmYgLS1naXQgYS9zY3JpcHRzL3hl
LXJlc3RvcmUtbWV0YWRhdGEgYi9zY3JpcHRzL3hlLXJlc3RvcmUtbWV0YWRh
dGEKaW5kZXggOGM2Mjk5ZTljLi4xZjkyMWY3ZWUgMTAwNzU1Ci0tLSBhL3Nj
cmlwdHMveGUtcmVzdG9yZS1tZXRhZGF0YQorKysgYi9zY3JpcHRzL3hlLXJl
c3RvcmUtbWV0YWRhdGEKQEAgLTM1LDExICszNSwxMSBAQCBkZWZhdWx0X3Jl
c3RvcmVfbW9kZT0iYWxsIgogZGVidWc9Ii9iaW4vdHJ1ZSIKIAogZnVuY3Rp
b24gdXNhZ2UgewotICAgIGVjaG8gIlVzYWdlOiAkMCBbLWhdIFstdl0gWy15
XSBbLW5dIFstcF0gWy1mXSBbLXggPFZESSBVVUlEPl0gWy11IDxTUiBVVUlE
Pl0gWy1tIGFsbHxzcl0iCisgICAgZWNobyAiVXNhZ2U6ICQwIFstaF0gWy12
XSBbLXldIFstbl0gWy1wXSBbLWZdIFstb10gWy14IDxWREkgVVVJRD5dIFst
dSA8U1IgVVVJRD5dIFstbSBhbGx8c3JdIgogICAgIGVjaG8KICAgICBlY2hv
ICIgLWg6IERpc3BsYXkgdGhpcyBoZWxwIG1lc3NhZ2UiCiAgICAgZWNobyAi
IC14OiBTcGVjaWZ5IHRoZSBWREkgVVVJRCB0byBvdmVycmlkZSBwcm9iaW5n
IgotICAgIGVjaG8gIiAtcDogSnVzdCBzY2FuIGZvciBhIG1ldGFkYXRhIFZE
SSBhbmQgcHJpbnQgb3V0IGl0cyBVVUlEIHRvIHN0ZG91dCIKKyAgICBlY2hv
ICIgLXA6IEp1c3Qgc2NhbiBmb3IgbWV0YWRhdGEgVkRJKHMpIGFuZCBwcmlu
dCBvdXQgVVVJRChzKSB0byBzdGRvdXQiCiAgICAgZWNobyAiIC11OiBVVUlE
IG9mIHRoZSBTUiB5b3Ugd2lzaCB0byByZXN0b3JlIGZyb20iCiAgICAgZWNo
byAiIC1uOiBQZXJmb3JtIGEgZHJ5IHJ1biBvZiB0aGUgbWV0YWRhdGEgaW1w
b3J0IGNvbW1hbmRzIChkZWZhdWx0OiBmYWxzZSkiCiAgICAgZWNobyAiIC1s
OiBKdXN0IGxpc3QgdGhlIGF2YWlsYWJsZSBiYWNrdXAgZGF0ZXMiCkBAIC00
OCw2ICs0OCw3IEBAIGZ1bmN0aW9uIHVzYWdlIHsKICAgICBlY2hvICIgLXY6
IFZlcmJvc2Ugb3V0cHV0IgogICAgIGVjaG8gIiAteTogQXNzdW1lIG5vbi1p
bnRlcmFjdGl2ZSBtb2RlIGFuZCB5ZXMgdG8gYWxsIHF1ZXN0aW9ucyIKICAg
ICBlY2hvICIgLWY6IEZvcmNpYmx5IHJlc3RvcmUgVk0gbWV0YWRhdGEsIGRh
bmdlcm91cyBkdWUgdG8gaXRzIGRlc3RydWN0aXZlIG5hdHVyZSwgcGxlYXNl
IGFsd2F5cyBkbyBhIGRyeSBydW4gYmVmb3JlIHVzaW5nIHRoaXMgKGRlZmF1
bHQ6IGZhbHNlKSIKKyAgICBlY2hvICIgLW86IEFsbG93IHVzZSBvZiBsZWdh
Y3kgYmFja3VwIFZESXMgKHRoaXMgc2hvdWxkIG5vdCBiZSB1c2VkIHdpdGgg
U1JzIHdpdGggdW50cnVzdGVkIFZESXMpIgogICAgIGVjaG8gCiAgICAgZXhp
dCAxCiB9CkBAIC03NSw3ICs3Niw5IEBAIGp1c3RfcHJvYmU9MAogY2hvc2Vu
X2RhdGU9IiIKIHJlc3RvcmVfbW9kZT0ke2RlZmF1bHRfcmVzdG9yZV9tb2Rl
fQogZm9yY2U9MAotd2hpbGUgZ2V0b3B0cyAieWhwdng6ZDpsbnU6bTpmIiBv
cHQgOyBkbworbGVnYWN5PTAKK3NwZWNpZmllZF92ZGk9Cit3aGlsZSBnZXRv
cHRzICJ5aHB2eDpkOmxudTptOmZvIiBvcHQgOyBkbwogICAgIGNhc2UgJG9w
dCBpbgogICAgIGgpIHVzYWdlIDs7CiAgICAgdSkgc3JfdXVpZD0ke09QVEFS
R30gOzsKQEAgLTg1LDkgKzg4LDEwIEBAIHdoaWxlIGdldG9wdHMgInlocHZ4
OmQ6bG51Om06ZiIgb3B0IDsgZG8KICAgICB2KSBkZWJ1Zz0iIiA7OwogICAg
IGQpIGNob3Nlbl9kYXRlPSR7T1BUQVJHfSA7OwogICAgIG0pIHJlc3RvcmVf
bW9kZT0ke09QVEFSR30gOzsKLSAgICB4KSB2ZGlzPSR7T1BUQVJHfSA7Owor
ICAgIHgpIHNwZWNpZmllZF92ZGk9JHtPUFRBUkd9IDs7CiAgICAgeSkgeWVz
PTEgOzsKICAgICBmKSBmb3JjZT0xIDs7CisgICAgbykgbGVnYWN5PTEgOzsK
ICAgICAqKSBlY2hvICJJbnZhbGlkIG9wdGlvbiI7IHVzYWdlIDs7CiAgICAg
ZXNhYwogZG9uZQpAQCAtMTE4LDE2ICsxMjIsNzUgQEAgc3JfbmFtZT0kKCR7
WEV9IHNyLXBhcmFtLWdldCB1dWlkPSIke3NyX3V1aWR9IiBwYXJhbS1uYW1l
PW5hbWUtbGFiZWwpCiAjIHByb2JlIGZpcnN0IGZvciBhIFZESSB3aXRoIGtu
b3duIFVVSUQgZGVyaXZlZCBmcm9tIHRoZSBTUiB0byBhdm9pZAogIyBzY2Fu
bmluZyBmb3IgYSBWREkKIGJhY2t1cF92ZGk9JCh1dWlkNSAiJHtOU30iICIk
e3NyX3V1aWR9IikKLWlmIFsgLXogIiR7dmRpc30iIF07IHRoZW4KLSAgdmRp
cz0kKCR7WEV9IHZkaS1saXN0IHV1aWQ9IiR7YmFja3VwX3ZkaX0iIHNyLXV1
aWQ9IiR7c3JfdXVpZH0iIHJlYWQtb25seT1mYWxzZSAtLW1pbmltYWwpCisK
KyMgT25seSBhbGxvdyBhIHNwZWNpZmllZCBWREkgdGhhdCBkb2VzIG5vdCBt
YXRjaCB0aGUga25vd24gVVVJRCBpZiBvcGVyYXRpbmcgaW4KKyMgbGVnYWN5
IG1vZGUKK2lmIFsgLW4gIiR7c3BlY2lmaWVkX3ZkaX0iIF07IHRoZW4KKyAg
aWYgWyAiJHtzcGVjaWZpZWRfdmRpfSIgIT0gIiR7YmFja3VwX3ZkaX0iIF0g
JiYgWyAiJGxlZ2FjeSIgLWVxIDAgXTsgdGhlbgorICAgIGVjaG8gIlRoZSBz
cGVjaWZpZWQgVkRJIFVVSUQgaXMgbm90IHBlcm1pdHRlZCwgaWYgYXR0ZW1w
dGluZyB0byB1c2UgYSBsZWdhY3kgYmFja3VwIFZESSBwbGVhc2UgdXNlIHRo
ZSAtbyBmbGFnIiA+JjIKKyAgICBleGl0IDEKKyAgZmkKKyAgdmRpcz0ke3Nw
ZWNpZmllZF92ZGl9CiBmaQogCi0jIGdldCBhIGxpc3Qgb2YgYWxsIFZESXMg
aWYgYW4gb3ZlcnJpZGUgaGFzIG5vdCBiZWVuIHByb3ZpZGVkIG9uIHRoZSBj
bWQgbGluZQogaWYgWyAteiAiJHt2ZGlzfSIgXTsgdGhlbgotICB2ZGlzPSQo
JHtYRX0gdmRpLWxpc3QgcGFyYW1zPXV1aWQgc3ItdXVpZD0iJHtzcl91dWlk
fSIgcmVhZC1vbmx5PWZhbHNlIC0tbWluaW1hbCkKKyAgaWYgWyAiJGxlZ2Fj
eSIgLWVxIDAgXTsgdGhlbgorICAgICMgSW4gbm9uLWxlZ2FjeSBtb2RlLCBv
bmx5IHVzZSB0aGUga25vd24gYmFja3VwX3ZkaSBVVUlECisgICAgdmRpcz0k
KCR7WEV9IHZkaS1saXN0IHV1aWQ9IiR7YmFja3VwX3ZkaX0iIHNyLXV1aWQ9
IiR7c3JfdXVpZH0iIHJlYWQtb25seT1mYWxzZSAtLW1pbmltYWwpCisgIGVs
c2UKKyAgICAjIEluIGxlZ2FjeSBtb2RlLCBzY2FuIGFsbCBWRElzCisgICAg
dmRpcz0kKCR7WEV9IHZkaS1saXN0IHBhcmFtcz11dWlkIHNyLXV1aWQ9IiR7
c3JfdXVpZH0iIHJlYWQtb25seT1mYWxzZSAtLW1pbmltYWwpCisgIGZpCiBm
aQogCiBtbnQ9Cit2ZGlfdXVpZD0KK3ZiZF91dWlkPQorZGV2aWNlPQorZnVu
Y3Rpb24gY3JlYXRldmJkIHsKKyAgJHtkZWJ1Z30gZWNobyAtbiAiQ3JlYXRp
bmcgVkJEOiAiID4mMgorICB2YmRfdXVpZD0kKCR7WEV9IHZiZC1jcmVhdGUg
dm0tdXVpZD0iJHtDT05UUk9MX0RPTUFJTl9VVUlEfSIgdmRpLXV1aWQ9IiR7
dmRpX3V1aWR9IiBkZXZpY2U9YXV0b2RldGVjdCAyPi9kZXYvbnVsbCkKKwor
ICBpZiBbICQ/IC1uZSAwIC1vIC16ICIke3ZiZF91dWlkfSIgXTsgdGhlbgor
ICAgICR7ZGVidWd9IGVjaG8gImVycm9yIGNyZWF0aW5nIFZCRCBmb3IgVkRJ
ICR7dmRpX3V1aWR9IiA+JjIKKyAgICBjbGVhbnVwCisgICAgcmV0dXJuIDEK
KyAgZmkKKworICAke2RlYnVnfSBlY2hvICIke3ZiZF91dWlkfSIgPiYyCisK
KyAgJHtkZWJ1Z30gZWNobyAtbiAiUGx1Z2dpbmcgVkJEOiAiID4mMgorICAk
e1hFfSB2YmQtcGx1ZyB1dWlkPSIke3ZiZF91dWlkfSIKKyAgZGV2aWNlPS9k
ZXYvJCgke1hFfSB2YmQtcGFyYW0tZ2V0IHV1aWQ9IiR7dmJkX3V1aWR9IiBw
YXJhbS1uYW1lPWRldmljZSkKKworICBpZiBbICEgLWIgIiR7ZGV2aWNlfSIg
XTsgdGhlbgorICAgICAke2RlYnVnfSBlY2hvICIke2RldmljZX06IG5vdCBh
IGJsb2NrIHNwZWNpYWwiID4mMgorICAgICBjbGVhbnVwCisgICAgIHJldHVy
biAxCisgIGZpCisKKyAgJHtkZWJ1Z30gZWNobyAiJHtkZXZpY2V9IiA+JjIK
KyAgcmV0dXJuIDAKK30KKworZnVuY3Rpb24gbW91bnR2YmQgeworICBtbnQ9
Ii92YXIvcnVuL3Bvb2wtYmFja3VwLSR7dmRpX3V1aWR9IgorICBta2RpciAt
cCAiJHttbnR9IgorICAvc2Jpbi9mc2NrIC1hICIke2RldmljZX0iID4vZGV2
L251bGwgMj4mMQorICBpZiBbICQ/IC1uZSAwIF07IHRoZW4KKyAgICBlY2hv
ICJGaWxlIHN5c3RlbSBpbnRlZ3JpdHkgZXJyb3IuICBQbGVhc2UgY29ycmVj
dCBtYW51YWxseS4iID4mMgorICAgIGNsZWFudXAKKyAgICByZXR1cm4gMQor
ICBmaQorICBtb3VudCAiJHtkZXZpY2V9IiAiJHttbnR9IiA+L2Rldi9udWxs
IDI+JjEKKyAgaWYgWyAkPyAtbmUgMCBdOyB0aGVuCisgICAgJHtkZWJ1Z30g
ZWNobyBmYWlsZWQgPiYyCisgICAgY2xlYW51cAorICAgIHJldHVybiAxCisg
IGZpCisgIHJldHVybiAwCit9CisKIGZ1bmN0aW9uIGNsZWFudXAgewogICAg
Y2QgLwogICAgaWYgWyAhIC16ICIke21udH0iIF07IHRoZW4KQEAgLTE2NSw2
NSArMjI4LDMyIEBAIGZ1bmN0aW9uIGNsZWFudXAgewogCiBpZiBbIC16ICIk
e3ZkaXN9IiBdOyB0aGVuCiAgICBlY2hvICJObyBWRElzIGZvdW5kIG9uIFNS
LiIgPiYyCisgICBpZiBbICIkbGVnYWN5IiAtZXEgMCBdOyB0aGVuCisgICAg
ICBlY2hvICJJZiB5b3UgYmVsaWV2ZSB0aGVyZSBtYXkgYmUgYSBsZWdhY3kg
YmFja3VwIFZESSBwcmVzZW50LCB5b3UgY2FuIHVzZSB0aGUgLW8gZmxhZyB0
byBzZWFyY2ggZm9yIGl0ICh0aGlzIHNob3VsZCBub3QgYmUgdXNlZCB3aXRo
IHVudHJ1c3RlZCBWRElzKSIgPiYyCisgICBmaQogICAgZXhpdCAwCiBmaQog
CiB0cmFwIGNsZWFudXAgU0lHSU5UIEVSUgogCitkZWNsYXJlIC1hIG1hdGNo
ZWRfdmRpcwogZm9yIHZkaV91dWlkIGluICR7dmRpc307IGRvCi0gICBpZiBb
ICIke3ZkaV91dWlkfSIgIT0gIiR7YmFja3VwX3ZkaX0iIF0gJiYgWyAiJHll
cyIgLWVxIDAgXTsgdGhlbgotICAgICAgZWNobyAiUHJvYmluZyBWREkgJHt2
ZGlfdXVpZH0uIgotICAgICAgZWNobyAiVGhpcyBWREkgd2FzIGNyZWF0ZWQg
d2l0aCBhIHByaW9yIHZlcnNpb24gb2YgdGhpcyBjb2RlLiIKLSAgICAgIGVj
aG8gIkl0cyB2YWxpZGl0eSBjYW4ndCBiZSBjaGVja2VkIHdpdGhvdXQgbW91
bnRpbmcgaXQgZmlyc3QuIgotICAgICAgcmVhZCAtcCAiQ29udGludWU/IFtZ
L05dIiAtbiAxIC1yOyBlY2hvCi0gICAgICBpZiBbWyAhICRSRVBMWSA9fiBe
W1l5XSQgXV07IHRoZW4gZXhpdCAxOyBmaQotICAgZmkKLQotICAgJHtkZWJ1
Z30gZWNobyAtbiAiQ3JlYXRpbmcgVkJEOiAiID4mMgotICAgdmJkX3V1aWQ9
JCgke1hFfSB2YmQtY3JlYXRlIHZtLXV1aWQ9IiR7Q09OVFJPTF9ET01BSU5f
VVVJRH0iIHZkaS11dWlkPSIke3ZkaV91dWlkfSIgZGV2aWNlPWF1dG9kZXRl
Y3QgMj4vZGV2L251bGwpCi0KLSAgIGlmIFsgJD8gLW5lIDAgLW8gLXogIiR7
dmJkX3V1aWR9IiBdOyB0aGVuCi0gICAgICAke2RlYnVnfSBlY2hvICJlcnJv
ciBjcmVhdGluZyBWQkQgZm9yIFZESSAke3ZkaV91dWlkfSIgPiYyCi0gICAg
ICBjbGVhbnVwCi0gICAgICBjb250aW51ZQotICAgZmkKLQotICAgJHtkZWJ1
Z30gZWNobyAiJHt2YmRfdXVpZH0iID4mMgotCi0gICAke2RlYnVnfSBlY2hv
IC1uICJQbHVnZ2luZyBWQkQ6ICIgPiYyCi0gICAke1hFfSB2YmQtcGx1ZyB1
dWlkPSIke3ZiZF91dWlkfSIKLSAgIGRldmljZT0vZGV2LyQoJHtYRX0gdmJk
LXBhcmFtLWdldCB1dWlkPSIke3ZiZF91dWlkfSIgcGFyYW0tbmFtZT1kZXZp
Y2UpCi0KLSAgIGlmIFsgISAtYiAiJHtkZXZpY2V9IiBdOyB0aGVuCi0gICAg
ICR7ZGVidWd9IGVjaG8gIiR7ZGV2aWNlfTogbm90IGEgYmxvY2sgc3BlY2lh
bCIgPiYyCi0gICAgIGNsZWFudXAKKyAgIGNyZWF0ZXZiZAorICAgaWYgWyAk
PyAtbmUgMCBdOyB0aGVuCiAgICAgIGNvbnRpbnVlCiAgICBmaQogCi0gICAk
e2RlYnVnfSBlY2hvICIke2RldmljZX0iID4mMgotCiAgICAke2RlYnVnfSBl
Y2hvIC1uICJQcm9iaW5nIGRldmljZTogIiA+JjIKICAgIG1udD0KICAgIGlm
IFsgIiQoZmlsZV9leGlzdHMgIiR7ZGV2aWNlfSIgIi8uY3R4cy1tZXRhZGF0
YS1iYWNrdXAiKSIgPSB5IF07IHRoZW4KICAgICAgJHtkZWJ1Z30gZWNobyAi
Zm91bmQgbWV0YWRhdGEgYmFja3VwIiA+JjIKLSAgICAgbW50PSIvdmFyL3J1
bi9wb29sLWJhY2t1cC0ke3ZkaV91dWlkfSIKLSAgICAgbWtkaXIgLXAgIiR7
bW50fSIKLSAgICAgL3NiaW4vZTJmc2NrIC1wIC1mICIke2RldmljZX0iID4v
ZGV2L251bGwgMj4mMQorICAgICBtb3VudHZiZAogICAgICBpZiBbICQ/IC1u
ZSAwIF07IHRoZW4KLSAgICAgICAgZWNobyAiRmlsZSBzeXN0ZW0gaW50ZWdy
aXR5IGVycm9yLiAgUGxlYXNlIGNvcnJlY3QgbWFudWFsbHkuIiA+JjIKLSAg
ICAgICAgY2xlYW51cAogICAgICAgICBjb250aW51ZQogICAgICBmaQotICAg
ICBtb3VudCAtbyBybyxub3N1aWQsbm9leGVjLG5vZGV2ICIke2RldmljZX0i
ICIke21udH0iID4vZGV2L251bGwgMj4mMQotICAgICBpZiBbICQ/IC1uZSAw
IF07IHRoZW4KLSAgICAgICAke2RlYnVnfSBlY2hvIGZhaWxlZCA+JjIKLSAg
ICAgICBjbGVhbnVwCi0gICAgIGVsc2UKLSAgICAgICBpZiBbIC1lICIke21u
dH0vLmN0eHMtbWV0YWRhdGEtYmFja3VwIiBdOyB0aGVuCi0gICAgICAgICAg
JHtkZWJ1Z30gZWNobyAiRm91bmQgYmFja3VwIG1ldGFkYXRhIG9uIFZESTog
JHt2ZGlfdXVpZH0iID4mMgotICAgICAgICAgIHhlIHZkaS1wYXJhbS1zZXQg
dXVpZD0iJHt2ZGlfdXVpZH0iIG90aGVyLWNvbmZpZzpjdHhzLXBvb2wtYmFj
a3VwPXRydWUKLSAgICAgICAgICBicmVhawotICAgICAgIGZpCisgICAgIGlm
IFsgLWUgIiR7bW50fS8uY3R4cy1tZXRhZGF0YS1iYWNrdXAiIF07IHRoZW4K
KyAgICAgICAgJHtkZWJ1Z30gZWNobyAiRm91bmQgYmFja3VwIG1ldGFkYXRh
IG9uIFZESTogJHt2ZGlfdXVpZH0iID4mMgorICAgICAgIG1hdGNoZWRfdmRp
cys9KCAke3ZkaV91dWlkfSApCiAgICAgIGZpCiAgICBlbHNlCiAgICAgICR7
ZGVidWd9IGVjaG8gImJhY2t1cCBtZXRhZGF0YSBub3QgZm91bmQiID4mMgpA
QCAtMjMyLDExICsyNjIsMzUgQEAgZm9yIHZkaV91dWlkIGluICR7dmRpc307
IGRvCiBkb25lCiAKIGlmIFsgJGp1c3RfcHJvYmUgLWd0IDAgXTsgdGhlbgot
ICAgZWNobyAiJHt2ZGlfdXVpZH0iCi0gICBjbGVhbnVwCisgICBmb3IgdmRp
X3V1aWQgaW4gIiR7bWF0Y2hlZF92ZGlzW0BdfSI7IGRvCisgICAgICBlY2hv
ICIke3ZkaV91dWlkfSIKKyAgIGRvbmUKICAgIGV4aXQgMAogZmkKIAoraWYg
WyAiJHsjbWF0Y2hlZF92ZGlzW0BdfSIgLWVxIDAgXTsgdGhlbgorICBlY2hv
ICJNZXRhZGF0YSBiYWNrdXBzIG5vdCBmb3VuZC4iID4mMgorICBleGl0IDEK
K2ZpCisKK2lmIFsgIiR7I21hdGNoZWRfdmRpc1tAXX0iIC1ndCAxIF07IHRo
ZW4KKyAgZWNobyAiTXVsdGlwbGUgbWV0YWRhdGEgYmFja3VwcyBmb3VuZCwg
cGxlYXNlIHVzZSAteCB0byBzcGVjaWZ5IHRoZSBWREkgVVVJRCB0byB1c2Ui
ID4mMgorICBleGl0IDEKK2ZpCisKK3ZkaV91dWlkPSR7bWF0Y2hlZF92ZGlz
WzBdfQoreGUgdmRpLXBhcmFtLXNldCB1dWlkPSIke3ZkaV91dWlkfSIgb3Ro
ZXItY29uZmlnOmN0eHMtcG9vbC1iYWNrdXA9dHJ1ZQorY3JlYXRldmJkCitp
ZiBbICQ/IC1uZSAwIF07IHRoZW4KKyAgZWNobyAiRmFpbHVyZSBjcmVhdGlu
ZyBWQkQgZm9yIGJhY2t1cCBWREkgJHt2ZGlfdXVpZH0iID4mMgorICBleGl0
IDEKK2ZpCittb3VudHZiZAoraWYgWyAkPyAtbmUgMCBdOyB0aGVuCisgIGVj
aG8gIkZhaWx1cmUgbW91bnRpbmcgYmFja3VwIFZESSAke3ZkaV91dWlkfSIg
PiYyCisgIGV4aXQgMQorZmkKKwogY2QgIiR7bW50fSIKICR7ZGVidWd9IGVj
aG8gIiIgPiYyCiAKQEAgLTMyMyw4ICszNzcsOCBAQCBlbHNlCiBmaQogc2hv
cHQgLXMgbnVsbGdsb2IKIGZvciBtZXRhIGluICoudm1tZXRhOyBkbwotICAg
ZWNobyB4ZSB2bS1pbXBvcnQgZmlsZW5hbWU9IiR7bWV0YX0iIHNyLXV1aWQ9
IiR7c3JfdXVpZH0iIC0tbWV0YWRhdGEgLS1wcmVzZXJ2ZSIke2ZvcmNlX2Zs
YWd9IiIke2RyeV9ydW5fZmxhZ30iCi0gICAiQEJJTkRJUkAvYmluL3hlIiB2
bS1pbXBvcnQgZmlsZW5hbWU9IiR7ZnVsbF9kaXJ9LyR7bWV0YX0iIHNyLXV1
aWQ9IiR7c3JfdXVpZH0iIC0tcHJlc2VydmUiJHtmb3JjZV9mbGFnfSIiJHtk
cnlfcnVuX2ZsYWd9IgorICAgZWNobyB4ZSB2bS1pbXBvcnQgZmlsZW5hbWU9
IiR7bWV0YX0iIHNyLXV1aWQ9IiR7c3JfdXVpZH0iIC0tbWV0YWRhdGEgLS1w
cmVzZXJ2ZSR7Zm9yY2VfZmxhZ30ke2RyeV9ydW5fZmxhZ30KKyAgICJAQklO
RElSQC94ZSIgdm0taW1wb3J0IGZpbGVuYW1lPSIke2Z1bGxfZGlyfS8ke21l
dGF9IiBzci11dWlkPSIke3NyX3V1aWR9IiAtLW1ldGFkYXRhIC0tcHJlc2Vy
dmUke2ZvcmNlX2ZsYWd9JHtkcnlfcnVuX2ZsYWd9CiAgICBpZiBbICQ/IC1n
dCAwIF07IHRoZW4KICAgICAgIGVycm9yX2NvdW50PSQoKCAkZXJyb3JfY291
bnQgKyAxICkpCiAgICBlbHNlCi0tIAoyLjI1LjEKCg==

--=separator
Content-Type: application/octet-stream; name="xsa459-xsconsole.patch"
Content-Disposition: attachment; filename="xsa459-xsconsole.patch"
Content-Transfer-Encoding: base64

RnJvbSAyMGMwMjc2NWMzMGJkYjdlMTRlM2MwMjBiMmQ3ZTk1NmY4OGM4MTUw
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IEJyZXR0IDxh
bGV4LmJyZXR0QGNsb3VkLmNvbT4KRGF0ZTogVHVlLCA5IEp1bCAyMDI0IDE2
OjQ1OjE2ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gVXBkYXRlcyB0byBQb3J0
YWJsZSBTUiBmdW5jdGlvbmFsaXR5CgpNb2RpZmllcyBmdW5jdGlvbmFsaXR5
IHRvIHVuZGVyc3RhbmQgdGhlIHVzZSBvZiBsZWdhY3kgZm9ybWF0IFZESXM6
Ci0gQWRkcyBhbiBvcHRpb24gdG8gc2VhcmNoIGZvciBhIGxlZ2FjeSBmb3Jt
YXQgVkRJIGlmIGEgbmV3IG9uZSBpcyBub3QgZm91bmQKLSBIYW5kbGVzIHRo
ZSBjYXNlIHdoZXJlIG11bHRpcGxlIGxlZ2FjeSBWRElzIGFyZSBpZGVudGlm
aWVkCi0gUGFzc2VzIHRoZSBhcHByb3ByaWF0ZSBvcHRpb24gdG8gYHhlLXJl
c3RvcmUtbWV0YWRhdGFgIHdoZW4gbmVlZGVkCgpUaGlzIGlzIFhTQS00NTkg
LyBDVkUtMjAyNC0zMTE0NAoKQWxzbyB1cGRhdGUgdGhlIHN1YnByb2Nlc3Mg
Y2FsbHMgdG8gYmUgY29tcGF0aWJsZSB3aXRoIHB5dGhvbjMKClNpZ25lZC1v
ZmYtYnk6IEFsZXggQnJldHQgPGFsZXguYnJldHRAY2xvdWQuY29tPgotLS0K
IHBsdWdpbnMtYmFzZS9YU0ZlYXR1cmVEUlJlc3RvcmUucHkgfCAxNzIgKysr
KysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAx
MzUgaW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvcGx1Z2lucy1iYXNlL1hTRmVhdHVyZURSUmVzdG9yZS5weSBiL3BsdWdp
bnMtYmFzZS9YU0ZlYXR1cmVEUlJlc3RvcmUucHkKaW5kZXggMmNhZGRlNS4u
ZWE3ZmQ3YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy1iYXNlL1hTRmVhdHVyZURS
UmVzdG9yZS5weQorKysgYi9wbHVnaW5zLWJhc2UvWFNGZWF0dXJlRFJSZXN0
b3JlLnB5CkBAIC0xOSwxNCArMTksOTMgQEAgaWYgX19uYW1lX18gPT0gIl9f
bWFpbl9fIjoKIGZyb20gWFNDb25zb2xlU3RhbmRhcmQgaW1wb3J0ICoKIGlt
cG9ydCBzdWJwcm9jZXNzCiAKK2RlZiBfbGlzdEJhY2t1cHMoc3JfdXVpZCwg
dmRpX3V1aWQsIGxlZ2FjeT1GYWxzZSk6CisgICAgIyBsaXN0IHRoZSBhdmFp
bGFibGUgYmFja3VwcworICAgIExheW91dC5JbnN0KCkuVHJhbnNpZW50QmFu
bmVyKExhbmcoIkZvdW5kIFZESSwgcmV0cmlldmluZyBhdmFpbGFibGUgYmFj
a3Vwcy4uLiIpKQorICAgIGNvbW1hbmQgPSBbIiVzL3hlLXJlc3RvcmUtbWV0
YWRhdGEiICUgKENvbmZpZy5JbnN0KCkuSGVscGVyUGF0aCgpLCksICItbCIs
ICItdSIsIHNyX3V1aWQsICIteCIsIHZkaV91dWlkXQorICAgIGlmIGxlZ2Fj
eToKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi1vIikKKyAgICBjbWQgPSBz
dWJwcm9jZXNzLlBvcGVuKGNvbW1hbmQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGRvdXQgPSBzdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGRlcnIgPSBzdWJwcm9jZXNzLlBJUEUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bml2ZXJzYWxfbmV3bGluZXMg
PSBUcnVlKQorICAgIG91dHB1dCwgZXJycHV0ID0gY21kLmNvbW11bmljYXRl
KCkKKyAgICBzdGF0dXMgPSBjbWQucmV0dXJuY29kZQorICAgIGlmIHN0YXR1
cyAhPSAwOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oIiglcywlcykiICUg
KG91dHB1dCxlcnJwdXQpKQorICAgIExheW91dC5JbnN0KCkuUHVzaERpYWxv
Z3VlKERSUmVzdG9yZVNlbGVjdGlvbihvdXRwdXQsIHZkaV91dWlkLCBzcl91
dWlkLCBsZWdhY3k9bGVnYWN5KSkKKworY2xhc3MgRFJSZXN0b3JlVkRJU2Vs
ZWN0aW9uKERpYWxvZ3VlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3Jf
dXVpZCwgdmRpX3V1aWRzKToKKyAgICAgICAgRGlhbG9ndWUuX19pbml0X18o
c2VsZikKKworICAgICAgICBjaG9pY2VzID0gW10KKworICAgICAgICBzZWxm
LnNyX3V1aWQgPSBzcl91dWlkCisgICAgICAgIHNlbGYudmRpX3V1aWRzID0g
dmRpX3V1aWRzCisgICAgICAgIGluZGV4ID0gMAorICAgICAgICBmb3IgY2hv
aWNlIGluIHNlbGYudmRpX3V1aWRzOgorICAgICAgICAgICAgY2RlZiA9IENo
b2ljZURlZihjaG9pY2UsIGxhbWJkYSBpPWluZGV4OiBzZWxmLkhhbmRsZVZE
SUNob2ljZShpKSkKKyAgICAgICAgICAgIGluZGV4ID0gaW5kZXggKyAxCisg
ICAgICAgICAgICBjaG9pY2VzLmFwcGVuZChjZGVmKQorCisgICAgICAgIHNl
bGYudGVzdE1lbnUgPSBNZW51KHNlbGYsIE5vbmUsICIiLCBjaG9pY2VzKQor
ICAgICAgICBzZWxmLkNoYW5nZVN0YXRlKCdMSVNUVkRJUycpCisKKyAgICBk
ZWYgQnVpbGRQYW5lKHNlbGYpOgorICAgICAgICBwYW5lID0gc2VsZi5OZXdQ
YW5lKERpYWxvZ3VlUGFuZShzZWxmLnBhcmVudCkpCisgICAgICAgIHBhbmUu
VGl0bGVTZXQoTGFuZygnUmVzdG9yZSBWaXJ0dWFsIE1hY2hpbmUgTWV0YWRh
dGEnKSkKKyAgICAgICAgcGFuZS5BZGRCb3goKQorCisgICAgZGVmIFVwZGF0
ZUZpZWxkc0xJU1RWRElTKHNlbGYpOgorICAgICAgICBwYW5lID0gc2VsZi5Q
YW5lKCkKKyAgICAgICAgcGFuZS5SZXNldEZpZWxkcygpCisKKyAgICAgICAg
cGFuZS5UaXRsZVNldCgiQXZhaWxhYmxlIE1ldGFkYXRhIFZESXMiKQorICAg
ICAgICBwYW5lLkFkZFRpdGxlRmllbGQoTGFuZygiU2VsZWN0IE1ldGFkYXRh
IFZESSB0byBSZXN0b3JlIEZyb20iKSkKKyAgICAgICAgcGFuZS5BZGRXYXJu
aW5nRmllbGQoTGFuZygiWW91IHNob3VsZCBvbmx5IHJlc3RvcmUgbWV0YWRh
dGEgZnJvbSBhIHRydXN0d29ydGh5IFZESTsgbG9hZGluZyB1bnRydXN0d29y
dGh5IG1ldGFkYXRhIG1heSBwdXQgeW91ciBzeXN0ZW0gYXQgcmlzayIpKQor
ICAgICAgICBwYW5lLkFkZE1lbnVGaWVsZChzZWxmLnRlc3RNZW51KQorICAg
ICAgICBwYW5lLkFkZEtleUhlbHBGaWVsZCggeyBMYW5nKCI8RW50ZXI+Iikg
OiBMYW5nKCJPSyIpLCBMYW5nKCI8RXNjPiIpIDogTGFuZygiQ2FuY2VsIikg
fSApCisKKyAgICBkZWYgVXBkYXRlRmllbGRzKHNlbGYpOgorICAgICAgICBz
ZWxmLlBhbmUoKS5SZXNldFBvc2l0aW9uKCkKKyAgICAgICAgZ2V0YXR0cihz
ZWxmLCAnVXBkYXRlRmllbGRzJytzZWxmLnN0YXRlKSgpICMgRGVzcGF0Y2gg
bWV0aG9kIG5hbWVkICdVcGRhdGVGaWVsZHMnK3NlbGYuc3RhdGUKKworICAg
IGRlZiBDaGFuZ2VTdGF0ZShzZWxmLCBpblN0YXRlKToKKyAgICAgICAgc2Vs
Zi5zdGF0ZSA9IGluU3RhdGUKKyAgICAgICAgc2VsZi5CdWlsZFBhbmUoKQor
ICAgICAgICBzZWxmLlVwZGF0ZUZpZWxkcygpCisKKyAgICBkZWYgSGFuZGxl
VkRJQ2hvaWNlKHNlbGYsIGluQ2hvaWNlKToKKyAgICAgICAgX2xpc3RCYWNr
dXBzKHNlbGYuc3JfdXVpZCwgc2VsZi52ZGlfdXVpZHNbaW5DaG9pY2VdLCBs
ZWdhY3k9VHJ1ZSkKKworICAgIGRlZiBIYW5kbGVLZXlMSVNUVkRJUyhzZWxm
LCBpbktleSk6CisgICAgICAgIGhhbmRsZWQgPSBzZWxmLnRlc3RNZW51Lkhh
bmRsZUtleShpbktleSkKKyAgICAgICAgaWYgbm90IGhhbmRsZWQgYW5kIGlu
S2V5ID09ICdLRVlfTEVGVCc6CisgICAgICAgICAgICBMYXlvdXQuSW5zdCgp
LlBvcERpYWxvZ3VlKCkKKyAgICAgICAgICAgIGhhbmRsZWQgPSBUcnVlCisg
ICAgICAgIHJldHVybiBoYW5kbGVkCisKKyAgICBkZWYgSGFuZGxlS2V5KHNl
bGYsIGluS2V5KToKKyAgICAgICAgaGFuZGxlZCA9IEZhbHNlCisgICAgICAg
IGlmIGhhc2F0dHIoc2VsZiwgJ0hhbmRsZUtleScrc2VsZi5zdGF0ZSk6Cisg
ICAgICAgICAgICBoYW5kbGVkID0gZ2V0YXR0cihzZWxmLCAnSGFuZGxlS2V5
JytzZWxmLnN0YXRlKShpbktleSkKKworICAgICAgICBpZiBub3QgaGFuZGxl
ZCBhbmQgaW5LZXkgPT0gJ0tFWV9FU0NBUEUnOgorICAgICAgICAgICAgTGF5
b3V0Lkluc3QoKS5Qb3BEaWFsb2d1ZSgpCisgICAgICAgICAgICBoYW5kbGVk
ID0gVHJ1ZQorCisgICAgICAgIHJldHVybiBoYW5kbGVkCisKIGNsYXNzIERS
UmVzdG9yZVNlbGVjdGlvbihEaWFsb2d1ZSk6CiAKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgZGF0ZV9jaG9pY2VzLCB2ZGlfdXVpZCwgc3JfdXVpZCk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGVfY2hvaWNlcywgdmRpX3V1aWQs
IHNyX3V1aWQsIGxlZ2FjeT1GYWxzZSk6CiAgICAgICAgIERpYWxvZ3VlLl9f
aW5pdF9fKHNlbGYpCiAKICAgICAgICAgY2hvaWNlcyA9IFtdCiAgICAgICAg
IHNlbGYudmRpX3V1aWQgPSB2ZGlfdXVpZAogICAgICAgICBzZWxmLnNyX3V1
aWQgPSBzcl91dWlkCisgICAgICAgIHNlbGYubGVnYWN5ID0gbGVnYWN5CiAg
ICAgICAgIHNlbGYuZGF0ZV9jaG9pY2VzID0gZGF0ZV9jaG9pY2VzLnNwbGl0
bGluZXMoKQogICAgICAgICBpbmRleCA9IDAKICAgICAgICAgZm9yIGNob2lj
ZSBpbiBzZWxmLmRhdGVfY2hvaWNlczoKQEAgLTg2LDE0ICsxNjUsMTkgQEAg
Y2xhc3MgRFJSZXN0b3JlU2VsZWN0aW9uKERpYWxvZ3VlKToKICAgICAgICAg
ICAgIExheW91dC5JbnN0KCkuUHVzaERpYWxvZ3VlKEluZm9EaWFsb2d1ZShM
YW5nKCJJbnRlcm5hbCBFcnJvciwgdW5leHBlY3RlZCBjaG9pY2U6ICIgKyBp
bkNob2ljZSkpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgY2hvc2Vu
X21vZGUgPSBpbkNob2ljZQotICAgICAgICAgICAgaWYgZHJ5UnVuOgotICAg
ICAgICAgICAgICBkcnlfZmxhZz0iLW4gIgotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgZHJ5X2ZsYWc9IiIKICAgICAgICAgICAgIExheW91
dC5JbnN0KCkuVHJhbnNpZW50QmFubmVyKExhbmcoIlJlc3RvcmluZyBWTSBN
ZXRhZGF0YS4gIFRoaXMgbWF5IHRha2UgYSBmZXcgbWludXRlcy4uLiIpKQot
ICAgICAgICAgICAgY29tbWFuZCA9ICIlcy94ZS1yZXN0b3JlLW1ldGFkYXRh
IC15ICVzIC11ICVzIC14ICVzIC1kICVzIC1tICVzIiAlIChDb25maWcuSW5z
dCgpLkhlbHBlclBhdGgoKSwgZHJ5X2ZsYWcsIHNlbGYuc3JfdXVpZCwgc2Vs
Zi52ZGlfdXVpZCwgc2VsZi5jaG9zZW5fZGF0ZSwgY2hvc2VuX21vZGUpCi0g
ICAgICAgICAgICBzdGF0dXMsIG91dHB1dCA9IGNvbW1hbmRzLmdldHN0YXR1
c291dHB1dChjb21tYW5kKQotICAgICAgICAgICAgc3RhdHVzID0gb3MuV0VY
SVRTVEFUVVMoc3RhdHVzKQorICAgICAgICAgICAgY29tbWFuZCA9IFsiJXMv
eGUtcmVzdG9yZS1tZXRhZGF0YSIgJSAoQ29uZmlnLkluc3QoKS5IZWxwZXJQ
YXRoKCksKSwgIi15IiwgIi11Iiwgc2VsZi5zcl91dWlkLCAiLXgiLCBzZWxm
LnZkaV91dWlkLCAiLWQiLCBzZWxmLmNob3Nlbl9kYXRlLCAiLW0iLCBjaG9z
ZW5fbW9kZV0KKyAgICAgICAgICAgIGlmIGRyeVJ1bjoKKyAgICAgICAgICAg
ICAgICBjb21tYW5kLmFwcGVuZCgiLW4iKQorICAgICAgICAgICAgaWYgc2Vs
Zi5sZWdhY3k6CisgICAgICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi1v
IikKKworICAgICAgICAgICAgY21kID0gc3VicHJvY2Vzcy5Qb3Blbihjb21t
YW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQg
PSBzdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0ZGVyciA9IHN1YnByb2Nlc3MuU1RET1VULAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bml2ZXJzYWxfbmV3bGluZXMgPSBU
cnVlKQorICAgICAgICAgICAgb3V0cHV0LCBfID0gY21kLmNvbW11bmljYXRl
KCkKKyAgICAgICAgICAgIHN0YXR1cyA9IGNtZC5yZXR1cm5jb2RlCiAgICAg
ICAgICAgICBMYXlvdXQuSW5zdCgpLlBvcERpYWxvZ3VlKCkKICAgICAgICAg
ICAgIGlmIHN0YXR1cyA9PSAwOgogICAgICAgICAgICAgICAgIExheW91dC5J
bnN0KCkuUHVzaERpYWxvZ3VlKEluZm9EaWFsb2d1ZShMYW5nKCJNZXRhZGF0
YSBSZXN0b3JlIFN1Y2NlZWRlZDogIikgKyBvdXRwdXQpKQpAQCAtMTM3LDQw
ICsyMjEsNTQgQEAgY2xhc3MgRFJSZXN0b3JlRGlhbG9ndWUoU1JEaWFsb2d1
ZSk6CiAgICAgICAgIH0KICAgICAgICAgU1JEaWFsb2d1ZS5fX2luaXRfXyhz
ZWxmKSAjIE11c3QgZmlsbCBpbiBzZWxmLmN1c3RvbSBiZWZvcmUgY2FsbGlu
ZyBfX2luaXRfXwogCisgICAgZGVmIF9zZWFyY2hGb3JWREkoc2VsZiwgc3Jf
dXVpZCwgbGVnYWN5PUZhbHNlKToKKyAgICAgICAgIyBwcm9iZSBmb3IgdGhl
IHJlc3RvcmUgVkRJIFVVSUQKKyAgICAgICAgY29tbWFuZCA9IFsiJXMveGUt
cmVzdG9yZS1tZXRhZGF0YSIgJSAoQ29uZmlnLkluc3QoKS5IZWxwZXJQYXRo
KCksKSwgIi1wIiwgIi11Iiwgc3JfdXVpZF0KKyAgICAgICAgaWYgbGVnYWN5
OgorICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi1vIikKKyAgICAgICAg
Y21kID0gc3VicHJvY2Vzcy5Qb3Blbihjb21tYW5kLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0ZG91dCA9IHN1YnByb2Nlc3MuUElQRSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnIgPSBzdWJw
cm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5pdmVyc2FsX25ld2xpbmVzID0gVHJ1ZSkKKyAgICAgICAgb3V0cHV0LCBl
cnJwdXQgPSBjbWQuY29tbXVuaWNhdGUoKQorICAgICAgICBzdGF0dXMgPSBj
bWQucmV0dXJuY29kZQorICAgICAgICBpZiBzdGF0dXMgIT0gMDoKKyAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiKCVzLCVzKSIgJSAob3V0cHV0LGVy
cnB1dCkpCisgICAgICAgIGlmIGxlbihvdXRwdXQpID09IDA6CisgICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oZXJycHV0KQorICAgICAgICByZXR1cm4g
b3V0cHV0CisKKyAgICBkZWYgX2VhcmxpZXJDb25maXJtSGFuZGxlcihzZWxm
LCBpblllc05vLCBzcl91dWlkKToKKyAgICAgICAgaWYgaW5ZZXNObyA9PSAn
eSc6CisgICAgICAgICAgICBMYXlvdXQuSW5zdCgpLlRyYW5zaWVudEJhbm5l
cihMYW5nKCJTZWFyY2hpbmcgZm9yIGJhY2t1cCBWREkuLi5cblxuQ3RybC1D
IHRvIGFib3J0IikpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgdmRpX3V1aWRzID0gW3Yuc3RyaXAoKSBmb3IgdiBpbiBzZWxmLl9zZWFy
Y2hGb3JWREkoc3JfdXVpZCwgbGVnYWN5PVRydWUpLnNwbGl0bGluZXMoKV0K
KyAgICAgICAgICAgICAgICBpZiBsZW4odmRpX3V1aWRzKSA9PSAxOgorICAg
ICAgICAgICAgICAgICAgICBfbGlzdEJhY2t1cHMoc3JfdXVpZCwgdmRpX3V1
aWRzWzBdLCBsZWdhY3k9VHJ1ZSkKKyAgICAgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgICAgICBMYXlvdXQuSW5zdCgpLlB1c2hEaWFsb2d1
ZShEUlJlc3RvcmVWRElTZWxlY3Rpb24oc3JfdXVpZCwgdmRpX3V1aWRzKSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBleGNl
cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgTGF5b3V0Lklu
c3QoKS5QdXNoRGlhbG9ndWUoSW5mb0RpYWxvZ3VlKCBMYW5nKCJNZXRhZGF0
YSBSZXN0b3JlIGZhaWxlZDogIikrTGFuZyhlKSkpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBMYXlvdXQuSW5zdCgpLlB1c2hEaWFsb2d1ZShJbmZv
RGlhbG9ndWUoIExhbmcoIk1ldGFkYXRhIFJlc3RvcmUgZmFpbGVkOiBhIGJh
Y2t1cCBWREkgY291bGQgbm90IGJlIGZvdW5kIikpKQorICAgICAgICBEYXRh
Lkluc3QoKS5VcGRhdGUoKQorCiAgICAgZGVmIERvQWN0aW9uKHNlbGYsIGlu
U1IpOgogICAgICAgICBMYXlvdXQuSW5zdCgpLlBvcERpYWxvZ3VlKCkKICAg
ICAgICAgTGF5b3V0Lkluc3QoKS5UcmFuc2llbnRCYW5uZXIoTGFuZygiU2Vh
cmNoaW5nIGZvciBiYWNrdXAgVkRJLi4uXG5cbkN0cmwtQyB0byBhYm9ydCIp
KQogICAgICAgICBzcl91dWlkID0gaW5TUlsndXVpZCddCiAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICMgcHJvYmUgZm9yIHRoZSByZXN0b3JlIFZESSBV
VUlECi0gICAgICAgICAgICBjb21tYW5kID0gIiVzL3hlLXJlc3RvcmUtbWV0
YWRhdGEgLXAgLXUgJXMiICUgKENvbmZpZy5JbnN0KCkuSGVscGVyUGF0aCgp
LCBzcl91dWlkKQotICAgICAgICAgICAgY21kID0gc3VicHJvY2Vzcy5Qb3Bl
bihjb21tYW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGRvdXQgPSBzdWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0ZGVyciA9IHN1YnByb2Nlc3MuUElQRSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlbGwgPSBU
cnVlKQotICAgICAgICAgICAgb3V0cHV0ID0gIiIuam9pbihjbWQuc3Rkb3V0
KS5zdHJpcCgpCi0gICAgICAgICAgICBlcnJwdXQgPSAiIi5qb2luKGNtZC5z
dGRlcnIpLnN0cmlwKCkKLSAgICAgICAgICAgIHN0YXR1cyA9IGNtZC53YWl0
KCkKLSAgICAgICAgICAgIGlmIHN0YXR1cyAhPSAwOgotICAgICAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbigiKCVzLCVzKSIgJSAob3V0cHV0LGVycnB1
dCkpCi0gICAgICAgICAgICBpZiBsZW4ob3V0cHV0KSA9PSAwOgotICAgICAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbihlcnJwdXQpCi0gICAgICAgICAg
ICB2ZGlfdXVpZCA9IG91dHB1dAotCi0gICAgICAgICAgICAjIGxpc3QgdGhl
IGF2YWlsYWJsZSBiYWNrdXBzCi0gICAgICAgICAgICBMYXlvdXQuSW5zdCgp
LlRyYW5zaWVudEJhbm5lcihMYW5nKCJGb3VuZCBWREksIHJldHJpZXZpbmcg
YXZhaWxhYmxlIGJhY2t1cHMuLi4iKSkKLSAgICAgICAgICAgIGNvbW1hbmQg
PSAiJXMveGUtcmVzdG9yZS1tZXRhZGF0YSAtbCAtdSAlcyAteCAlcyIgJSAo
Q29uZmlnLkluc3QoKS5IZWxwZXJQYXRoKCksIHNyX3V1aWQsIHZkaV91dWlk
KQotICAgICAgICAgICAgY21kID0gc3VicHJvY2Vzcy5Qb3Blbihjb21tYW5k
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQg
PSBzdWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0ZGVyciA9IHN1YnByb2Nlc3MuUElQRSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlbGwgPSBUcnVlKQotICAg
ICAgICAgICAgb3V0cHV0ID0gIiIuam9pbihjbWQuc3Rkb3V0KS5zdHJpcCgp
Ci0gICAgICAgICAgICBlcnJwdXQgPSAiIi5qb2luKGNtZC5zdGRlcnIpLnN0
cmlwKCkKLSAgICAgICAgICAgIHN0YXR1cyA9IGNtZC53YWl0KCkKLSAgICAg
ICAgICAgIGlmIHN0YXR1cyAhPSAwOgotICAgICAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbigiKCVzLCVzKSIgJSAob3V0cHV0LGVycnB1dCkpCi0gICAg
ICAgICAgICBMYXlvdXQuSW5zdCgpLlB1c2hEaWFsb2d1ZShEUlJlc3RvcmVT
ZWxlY3Rpb24ob3V0cHV0LCB2ZGlfdXVpZCwgc3JfdXVpZCkpCi0gICAgICAg
IGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICB0cnk6CisgICAg
ICAgICAgICAgICAgdmRpX3V1aWQgPSBzZWxmLl9zZWFyY2hGb3JWREkoc3Jf
dXVpZCkuc3RyaXAoKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgorICAgICAgICAgICAgICAgICMgV2UgY291bGQgbm90IHVuaXF1ZWx5
IGlkZW50aWZ5IHRoZSByZXF1aXJlZCBWREksIGFzayB0aGUgdXNlciBpZiB0
aGV5IHdhbnQgdG8gY2hlY2sgZm9yIGxlZ2FjeSBvbmVzCisgICAgICAgICAg
ICAgICAgbWVzc2FnZSA9IExhbmcoIkEgYmFja3VwIFZESSBjb3VsZCBub3Qg
YmUgcG9zaXRpdmVseSBpZGVudGlmaWVkLiBEbyB5b3Ugd2lzaCB0byBzY2Fu
IGZvciBiYWNrdXAgVkRJcyBjcmVhdGVkIHdpdGggZWFybGllciB2ZXJzaW9u
cyAoV2FybmluZzogdGhpcyBvcGVyYXRpb24gc2hvdWxkIG9ubHkgYmUgcGVy
Zm9ybWVkIGlmIHlvdSB0cnVzdCB0aGUgY29udGVudHMgb2YgYWxsIFZESXMg
aW4gdGhpcyBzdG9yYWdlIHJlcG9zaXRvcnkpPyIpCisgICAgICAgICAgICAg
ICAgTGF5b3V0Lkluc3QoKS5QdXNoRGlhbG9ndWUoUXVlc3Rpb25EaWFsb2d1
ZShtZXNzYWdlLCBsYW1iZGEgeDogc2VsZi5fZWFybGllckNvbmZpcm1IYW5k
bGVyKHgsIHNyX3V1aWQpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4KKwor
ICAgICAgICAgICAgX2xpc3RCYWNrdXBzKHNyX3V1aWQsIHZkaV91dWlkKQor
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICBM
YXlvdXQuSW5zdCgpLlB1c2hEaWFsb2d1ZShJbmZvRGlhbG9ndWUoIExhbmco
Ik1ldGFkYXRhIFJlc3RvcmUgZmFpbGVkOiAiKStMYW5nKGUpKSkKICAgICAg
ICAgRGF0YS5JbnN0KCkuVXBkYXRlKCkKIAotLSAKMi4yNS4xCgo=

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 12:49:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 12:49:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759608.1169274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sThcQ-0008ST-Cd; Tue, 16 Jul 2024 12:49:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759608.1169274; Tue, 16 Jul 2024 12: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 1sThcQ-0008SM-9o; Tue, 16 Jul 2024 12:49:22 +0000
Received: by outflank-mailman (input) for mailman id 759608;
 Tue, 16 Jul 2024 12:49:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sThcP-0008SC-I2; Tue, 16 Jul 2024 12:49:21 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sThcP-0005jj-Ej; Tue, 16 Jul 2024 12:49:21 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sThcP-0008Vu-0h; Tue, 16 Jul 2024 12:49:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sThcP-0006n4-0I; Tue, 16 Jul 2024 12:49:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=UELaYYHXfSN6wInGGsKHBegxDAGQVuG5edSCij851Ao=; b=TqxZqusmtpj9Hw6OXLKKZ8VXOa
	0w/TEiDL1JjB8Qqdhsnps/C0FNPmx2ojNo/Z4eYYxD46LmrwZ+Cn7XQQxeLf5HFDprIF3ZF7z47l9
	HLSjcnPMvX89MSlqB2saKpSnG5U/h+nZWnghs2aPPDCjYcqlX4dLPRaWWFNeRCVmzwV4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186817-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186817: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=f9c373c8388f819166e57365197bc423d56209a6
X-Osstest-Versions-That:
    ovmf=1bb9f47739ae7993191a36bea76c5a2157fdd10f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Jul 2024 12:49:21 +0000

flight 186817 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186817/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 f9c373c8388f819166e57365197bc423d56209a6
baseline version:
 ovmf                 1bb9f47739ae7993191a36bea76c5a2157fdd10f

Last test of basis   186813  2024-07-16 04:13:00 Z    0 days
Testing same since   186817  2024-07-16 10:12:56 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Mario Bălănică <mariobalanica02@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   1bb9f47739..f9c373c838  f9c373c8388f819166e57365197bc423d56209a6 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 14:02:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 14:02:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759621.1169283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTikw-00059T-KW; Tue, 16 Jul 2024 14:02:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759621.1169283; Tue, 16 Jul 2024 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 1sTikw-00059M-Hw; Tue, 16 Jul 2024 14:02:14 +0000
Received: by outflank-mailman (input) for mailman id 759621;
 Tue, 16 Jul 2024 13: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=gqoP=OQ=aperard.fr=tony@srs-se1.protection.inumbo.net>)
 id 1sTiew-0003XU-Un
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 13:56:03 +0000
Received: from mail.aperard.fr (mail.aperard.fr [5.39.88.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 220152d9-437b-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 15:56:00 +0200 (CEST)
Received: from l14 (unknown [10.9.0.5])
 by mail.aperard.fr (Postfix) with ESMTPA id EFFE480EE9;
 Tue, 16 Jul 2024 14:55:58 +0100 (BST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 220152d9-437b-11ef-8776-851b0ebba9a2
DKIM-Signature-Warning: NOTE REGARDING DKIM KEY COMPROMISE https://aperard.fr/dkim-rotate/README.txt https://aperard.fr/dkim-rotate/67/6740e4466320c88d1a694cc3138ec888.pem
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=aperard.fr; s=k;
	t=1721138159; bh=daMXKN0z3Ri88Ksjk6enT7p1w98k+r/SYz0tqkUZMdo=;
	h=DKIM-Signature-Warning:DKIM-Signature-Warning:
	 DKIM-Signature-Warning:DKIM-Signature-Warning:
	 DKIM-Signature-Warning:DKIM-Signature-Warning:
	 DKIM-Signature-Warning:Date:From:To:Cc:Subject:References:
	 In-Reply-To;
	b=tqSftVjI8lalQ1RucWcinV0a8pDKxJpNKwktGsKJyFi+QWi9pRV6NI7oa9/KUtd3G
	 Ag8jn5X+OiJSbsP2S2IZDak98+abB5AIvKfEyicTKgEfTWG8klFHWIdIcqVqoeNzvP
	 T65wVyTwvdW5kvXPzrwqLoCp9tkf86XEQFYyTRkPm4bBsQn0aYk8vFfzq+TX2H3yTK
	 50QEPU94ui53gj5lgRVNhvQLaZhR12O2t254WTNxWhM8SnIYMEZVj3JhLmnA2qi6tv
	 aQd245Pp8ohfLCZEx/E4UXskx74OM0xY3FUrmPR0E3jYRtLE1t+1tT8iSem6Hj2bUZ
	 jifuQ+sOha4Tg==
DKIM-Signature-Warning: NOTE REGARDING DKIM KEY COMPROMISE https://aperard.fr/dkim-rotate/README.txt https://aperard.fr/dkim-rotate/67/6740e4466320c88d1a694cc3138ec888.pem
DKIM-Signature-Warning: NOTE REGARDING DKIM KEY COMPROMISE https://aperard.fr/dkim-rotate/README.txt https://aperard.fr/dkim-rotate/67/6740e4466320c88d1a694cc3138ec888.pem
DKIM-Signature-Warning: NOTE REGARDING DKIM KEY COMPROMISE https://aperard.fr/dkim-rotate/README.txt https://aperard.fr/dkim-rotate/67/6740e4466320c88d1a694cc3138ec888.pem
DKIM-Signature-Warning: NOTE REGARDING DKIM KEY COMPROMISE https://aperard.fr/dkim-rotate/README.txt https://aperard.fr/dkim-rotate/67/6740e4466320c88d1a694cc3138ec888.pem
DKIM-Signature-Warning: NOTE REGARDING DKIM KEY COMPROMISE https://aperard.fr/dkim-rotate/README.txt https://aperard.fr/dkim-rotate/67/6740e4466320c88d1a694cc3138ec888.pem
DKIM-Signature-Warning: NOTE REGARDING DKIM KEY COMPROMISE https://aperard.fr/dkim-rotate/README.txt https://aperard.fr/dkim-rotate/67/6740e4466320c88d1a694cc3138ec888.pem
Date: Tue, 16 Jul 2024 15:55:58 +0200
From: Anthony PERARD <tony@aperard.fr>
To: Juergen Gross <jgross@suse.com>
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates
Message-ID: <ZpZ77uJ/wuhoxR2p@l14>
References: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
 <3b188f84-50f7-4e13-bcde-1d6076e5cc2d@xen.org>
 <423412a9-e969-4126-8e39-7e77e67d2fd8@suse.com>
 <884ea922-946c-4344-ab29-6f2eb4be69f7@xen.org>
 <94edb2c8-1d40-49c1-b29f-151418eb5c11@suse.com>
 <7920f364-d07d-4004-b2b8-fa43b754e9b9@xen.org>
 <94722620-dc9f-4ace-9e3e-070c362d10df@suse.com>
 <2bdf382a-cbad-454f-82ce-0b0d30d2e8ef@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <2bdf382a-cbad-454f-82ce-0b0d30d2e8ef@suse.com>

On Tue, Jul 16, 2024 at 10:22:18AM +0200, Juergen Gross wrote:
> On 16.07.24 09:46, Jan Beulich wrote:
> > On 16.07.2024 09:33, Julien Grall wrote:
> > > Hi,
> > > 
> > > On 16/07/2024 08:24, Jan Beulich wrote:
> > > > On 16.07.2024 09:22, Julien Grall wrote:
> > > > > On 16/07/2024 07:47, Jan Beulich wrote:
> > > > > > On 15.07.2024 18:56, Julien Grall wrote:
> > > > > > > On 15/07/2024 16:50, Andrew Cooper wrote:
> > > > > > > > An earlier part of the checklist states:
> > > > > > > > 
> > > > > > > >       * change xen-unstable README. The banner (generated using figlet) should say:
> > > > > > > >           - "Xen 4.5" in releases and on stable branches
> > > > > > > >           - "Xen 4.5-unstable" on unstable
> > > > > > > >           - "Xen 4.5-rc" for release candidate
> > > > > > > > 
> > > > > > > > Update the notes about XEN_EXTRAVERSION to match.
> > > > 
> > > > When this is the purpose of the patch, ...
> > > > 
> > > > > > > We have been tagging the tree with 4.5.0-rcX. So I think it would be
> > > > > > > better to update the wording so we use a consistent naming.
> > > > > > 
> > > > > > I find:
> > > > > > 
> > > > > > 4.18-rc
> > > > > > 4.17-rc
> > > > > > 4.16-rc
> > > > > > 4.15-rc
> > > > > 
> > > > > Hmmm... I don't think we are looking at the same thing. I was
> > > > > specifically looking at the tag and *not* XEN_EXTRAVERSION.
> > > > 
> > > > ... why would we be looking at tags?
> > > 
> > > As I wrote, consistency across the naming scheme we use.
> > > 
> > > > The tags (necessarily) have RC numbers,
> > > 
> > > Right but they also *have* the .0.
> > > 
> > > > so are going to be different from XEN_EXTRAVERSION in any event.
> > > 
> > > Sure they are not going to be 100% the same. However, they could have
> > > some similarity.
> > > 
> > > As I pointed out multiple times now, to me it is odd we are tagging the
> > > tree with 4.19.0-rcX, but we use 4.19-rc.
> > > 
> > > Furthermore, if you look at the history of the document. It is quite
> > > clear that the goal was consistency (the commit mentioned by Andrew
> > > happened after). Yes it wasn't respected but I can't tell exactly why.
> > > 
> > > So as we try to correct the documentation, I think we should also look
> > > at consistency. If you *really* want to drop the .0, then I think it
> > > should happen for the tag as well (again for consistency).
> > 
> > I don't see why (but I also wouldn't mind the dropping from the tag).
> > They are going to be different. Whether they're different in one or two
> > aspects is secondary to me. I rather view the consistency goal to be
> > with what we've been doing in the last so many releases.
> 
> Another aspect to look at would be version sorting. This will be interesting
> when e.g. having a Xen rpm package installed and upgrading it with a later
> version. I don't think we want to regard replacing an -rc version with the
> .0 version to be a downgrade, so the the version numbers should be sorted by
> "sort -V" in the correct order.

Packages version from distribution is not something we have to deal with
upstream. It's for the one writing the package version to make sure
that -rc are older than actual release.

While trying to to find if SPEC files where dealing with "-rc" suffix,
I found a doc for fedora telling how to deal with RCs:
https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/
They say to replace the dash with a tilde, so "-rc" become "~rc", and
package manager know what to do with it.

Some other distribution know how to deal with "rc" suffix, but the dash
"-" isn't actually allowed in the version string:
https://man.archlinux.org/man/vercmp.8

So unless we forgo "-rc" in tags, there's no way we can take into
account how distributions package manager sorts version numbers. Also,
there's no need to, it is the job of the packager to deal with version
number, we just need to make is simple enough and consistent.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 14:27:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 14:27:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759628.1169297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTj9f-0000h8-BW; Tue, 16 Jul 2024 14:27:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759628.1169297; Tue, 16 Jul 2024 14:27: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 1sTj9f-0000gR-6o; Tue, 16 Jul 2024 14:27:47 +0000
Received: by outflank-mailman (input) for mailman id 759628;
 Tue, 16 Jul 2024 14:11: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=iYYY=OQ=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1sTitY-0007IS-Od
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 14:11:10 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3eaf0fd1-437d-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 16:11:07 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52ea79e689eso8128044e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 07:11: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: 3eaf0fd1-437d-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721139066; x=1721743866; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=wQBKVT0ZN6C2kRsenSj50pCkARLni+547PPJQ3hTq6s=;
        b=LTxHmpromixg2ixGcZa1Ht8FH7iUx0HlCJI1BU+w3O0KXdTzCEmFdcljlX5IGCzUCS
         mN47YcRsyGMPPyhx7YuS8SGnZJEw5NFCpS5R4XgLRWMfKWnkp+60+X6ppI6g/FyRadLd
         rZDLDnD3Jd+PTTBQlbNY2DAfnazUz3cnAgmAs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721139066; x=1721743866;
        h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=wQBKVT0ZN6C2kRsenSj50pCkARLni+547PPJQ3hTq6s=;
        b=hh7t7eFlQFUikk4afuhvSAbKyEYBmwht+PpmJ9/0xKUavJM7zruxj3M6WhUZ69k9F6
         dIxXCf01IfcZxbB7EFxo4KTxiiLQPJFi8NewWCAYxMiD0HOLvIOokkcbYmPO5+zP37R0
         3cfUEz+xjZfVtHJBJgDofbo7fuavuLZfEK1CB65KKhYwjh3zSaVNgBSislxl+TC5CRK9
         w///wqA2ZbGxLGV3BiW7MqK02T/3zDY4FrW/djRtT/fdN5wa0CvVVP6UqHdwrFJvlfmb
         A7tVau6IWR5ywQomUumYe5T/7z8eYk0qBjhTgilBCn4KCHc3wIJ9aLeBkB469HLYFzaU
         wTyA==
X-Gm-Message-State: AOJu0YwX+ExuPbHa59z4ccxMxZahdCWzxpBr4ERJJr1dPbWwSn/QzPCN
	qRODFLL3tiHIC+jcfw9+Knvk0uyOFMsZMTdMxspiO45q+04OCS3hDVVV2dvsW9razh/JNdxn+iT
	S6U2tFxQSJdCFVIs6I9JCQgo/G0nDDvJOuE5m8YPjOxbjl+jpKc8stA==
X-Google-Smtp-Source: AGHT+IEoQ2UO5SdDJ0HAFUAXgWBk22rKW/tb5bnLTimSdalFmABaO9FvFD7ua5aOs0A4mXtm9Jc1BQzHu6TOW43PPpc=
X-Received: by 2002:a05:6512:12ca:b0:52c:deb9:904b with SMTP id
 2adb3069b0e04-52edf019b5dmr1931219e87.38.1721139065726; Tue, 16 Jul 2024
 07:11:05 -0700 (PDT)
MIME-Version: 1.0
From: Kelly Choi <kelly.choi@cloud.com>
Date: Tue, 16 Jul 2024 15:10:29 +0100
Message-ID: <CAO-mL=wXep_wvmL38kz0iYY146hHe8=Pmwe7hu7G6qZkOis7Hw@mail.gmail.com>
Subject: Xen Summit 2024: Demographic data
To: xen-devel <xen-devel@lists.xenproject.org>, xen-users@lists.xenproject.org
Cc: Xen Project Advisory Board <advisory-board@lists.xenproject.org>
Content-Type: multipart/related; boundary="000000000000a04f82061d5deac7"

--000000000000a04f82061d5deac7
Content-Type: multipart/alternative; boundary="000000000000a04f82061d5deac6"

--000000000000a04f82061d5deac6
Content-Type: text/plain; charset="UTF-8"

Hi all,

Sharing some interesting data about our most recent Xen Summit in Lisbon.

It's great to see a mix of different demographics attend in the community,
with a diverse range of experience and industries.
We look forward to meeting more of you and planning future events here at
the Xen Project.

Don't forget, you can catch the talks on YouTube here:
https://www.youtube.com/playlist?list=PLQMQQsKgvLntZiKoELFs22Mtk-tBNNOMJ

[image: Screenshot 2024-07-16 at 14.57.32.png]

Many thanks,
Kelly Choi

Community Manager
Xen Project

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

<div dir=3D"ltr">Hi all,<div><br></div><div>Sharing some interesting data a=
bout our most recent Xen Summit in Lisbon.</div><div><br></div><div>It&#39;=
s great to see a mix of different demographics attend in the community, wit=
h a diverse range of experience and industries.=C2=A0=C2=A0</div><div>We lo=
ok forward to meeting=C2=A0more of you and planning future events here at t=
he Xen Project.=C2=A0</div><div><br></div><div>Don&#39;t forget, you can ca=
tch the talks on YouTube here:=C2=A0<a href=3D"https://www.youtube.com/play=
list?list=3DPLQMQQsKgvLntZiKoELFs22Mtk-tBNNOMJ">https://www.youtube.com/pla=
ylist?list=3DPLQMQQsKgvLntZiKoELFs22Mtk-tBNNOMJ</a>=C2=A0</div><div><br></d=
iv><div><img src=3D"cid:ii_lyohkym20" alt=3D"Screenshot 2024-07-16 at 14.57=
.32.png" style=3D"margin-right: 25px;"><br><div><div dir=3D"ltr" class=3D"g=
mail_signature" data-smartmail=3D"gmail_signature"><div dir=3D"ltr"><div><b=
r></div><div>Many thanks,</div><div>Kelly Choi</div><div><br></div><div><di=
v style=3D"color:rgb(136,136,136)">Community Manager</div><div style=3D"col=
or:rgb(136,136,136)">Xen Project=C2=A0<br></div></div></div></div></div></d=
iv></div>

--000000000000a04f82061d5deac6--
--000000000000a04f82061d5deac7
Content-Type: image/png; name="Screenshot 2024-07-16 at 14.57.32.png"
Content-Disposition: inline; 
	filename="Screenshot 2024-07-16 at 14.57.32.png"
Content-Transfer-Encoding: base64
Content-ID: <ii_lyohkym20>
X-Attachment-Id: ii_lyohkym20

iVBORw0KGgoAAAANSUhEUgAAAyMAAAQRCAYAAAA6xlftAAAKomlDQ1BJQ0MgUHJvZmlsZQAASImV
lgdQU+kWgP970xstgICU0JsgnQBSQmgBlEgHUQlJIKHEGBJUxIYsrsCKIiJNXdBVAQUrbS2IBdui
2PsGWRTUdbEgKirvAkNw9817b97JnHu+OTn/KXfuP3MAoJA5YnE6rAJAhkgqCQ/0pcXGxdNwAwAL
KMjPEVhxuJliBpsdChCZsn+XD3cANG5v2ozn+vf//6uo8viZXAAgNsJJvExuBsLHEB3giiVSAFDV
iN94mVQ8zh0Iq0uQBhG+Nc4pkzwwzkmT/GUiJjKcCQAamQpP5nAkKQCQdRE/LYubguQhz0HYTsQT
ihAe79crI2MJD+EDCFsgMWKEx/PTk77Lk/K3nEmKnBxOioInZ5kQvJ8wU5zOWfF/vo7/LRnpsqka
ZoiSBZKgcMQifUH30paEKFiUNC9sioW8ifgJFsiCoqaYm8mMn2Iexy9EcTZ9XugUJwsDWIo8Ulbk
FPMz/SOmWLIkXFErWcJkTDFHMl1Xlhal8Av4LEX+bEFkzBRnCaPnTXFmWkTIdAxT4ZfIwhX980WB
vtN1AxSzZ2R+N6+QpTgrFUQGKWbnTPfPFzGmc2bGKnrj8f38p2OiFPFiqa+iljidrYjnpwcq/JlZ
EYqzUuSDnD7LVrzDVE4we4qBA3ACgcgzBtgj1lnKXy4dH4K5RLxCIkwRSGkM5HbxaSwR13YWzcHO
wQmA8bs6+Sm8uzdxByFN/LQvLR8A18MAwC+mffwmANr2INeuYtpnWgOAUgMAp+q5MknWpA89/sAA
IlAG6kAb6ANjYAFskO5cgAfwAf4gGISBSBAHFgEuEIAMIAHLQA5YB/JBIdgMtoFKsAvsBvvBQXAE
tIAT4Ay4AK6A6+A2eAjkoB+8BEPgAxiFIAgHUSAqpA0ZQKaQNeQA0SEvyB8KhcKhOCgRSoFEkAzK
gdZDhVAJVAnVQHXQYagNOgNdgnqg+1AvNAi9hT7DKJgMq8N6sBk8G6bDDDgEjoQXwinwUjgbzoM3
weVwLXwAbobPwFfg27AcfgkPowCKhNJEGaJsUHQUExWGikcloySo1agCVBmqFtWIakd1oW6i5KhX
qE9oLJqKpqFt0B7oIHQUmoteil6NLkJXovejm9Hn0DfRvegh9DcMBaOLsca4Y1iYWEwKZhkmH1OG
2Ys5jjmPuY3px3zAYrGaWHOsKzYIG4dNxa7EFmF3YJuwHdgebB92GIfDaeOscZ64MBwHJ8Xl4ypw
B3CncTdw/biPeBLeAO+AD8DH40X4XHwZvh5/Cn8D/xw/SlAhmBLcCWEEHmEFoZiwh9BOuEboJ4wS
VYnmRE9iJDGVuI5YTmwknic+Ir4jkUhGJDfSfJKQtJZUTjpEukjqJX0iq5GtyExyAllG3kTeR+4g
3ye/o1AoZhQfSjxFStlEqaOcpTyhfFSiKtkqsZR4SmuUqpSalW4ovVYmKJsqM5QXKWcrlykfVb6m
/EqFoGKmwlThqKxWqVJpU7mrMqxKVbVXDVPNUC1SrVe9pDqghlMzU/NX46nlqe1WO6vWR0VRjalM
Kpe6nrqHep7ar45VN1dnqaeqF6ofVO9WH9JQ03DSiNZYrlGlcVJDronSNNNkaaZrFmse0byj+XmG
3gzGDP6MjTMaZ9yYMaI1U8tHi69VoNWkdVvrszZN2187TXuLdov2Yx20jpXOfJ1lOjt1zuu8mqk+
02Mmd2bBzCMzH+jCula64bordXfrXtUd1tPXC9QT61XondV7pa+p76Ofql+qf0p/0IBq4GUgNCg1
OG3wgqZBY9DSaeW0c7QhQ13DIEOZYY1ht+GokblRlFGuUZPRY2OiMd042bjUuNN4yMTAZK5JjkmD
yQNTgindVGC63bTLdMTM3CzGbINZi9mAuZY5yzzbvMH8kQXFwttiqUWtxS1LrCXdMs1yh+V1K9jK
2UpgVWV1zRq2drEWWu+w7pmFmeU2SzSrdtZdG7INwybLpsGm11bTNtQ217bF9vVsk9nxs7fM7pr9
zc7ZLt1uj91DezX7YPtc+3b7tw5WDlyHKodbjhTHAMc1jq2Ob5ysnfhOO53uOVOd5zpvcO50/uri
6iJxaXQZdDVxTXStdr1LV6ez6UX0i24YN1+3NW4n3D65u7hL3Y+4/+Vh45HmUe8xMMd8Dn/Onjl9
nkaeHM8aT7kXzSvR62cvubehN8e71vupj7EPz2evz3OGJSOVcYDx2tfOV+J73HeE6c5cxezwQ/kF
+hX4dfur+Uf5V/o/CTAKSAloCBgKdA5cGdgRhAkKCdoSdJelx+Ky6lhDwa7Bq4LPhZBDIkIqQ56G
WoVKQtvnwnOD526d+2ie6TzRvJYwEMYK2xr2mG3OXsr+dT52Pnt+1fxn4fbhOeFdEdSIxRH1ER8i
fSOLIx9GWUTJojqjlaMTouuiR2L8Ykpi5LGzY1fFXonTiRPGtcbj4qPj98YPL/BfsG1Bf4JzQn7C
nYXmC5cvvLRIZ1H6opOLlRdzFh9NxCTGJNYnfuGEcWo5w0mspOqkIS6Tu537kufDK+UN8j35Jfzn
yZ7JJckDKZ4pW1MGBd6CMsErIVNYKXyTGpS6K3UkLSxtX9pYekx6UwY+IzGjTaQmShOdW6K/ZPmS
HrG1OF8sX+q+dNvSIUmIZG8mlLkws1WqjixFV2UWsh9kvVleWVVZH5dFLzu6XHW5aPnVFVYrNq54
nh2Q/ctK9Eruys4cw5x1Ob2rGKtqVkOrk1Z3rjFek7emf23g2v3riOvS1v2Wa5dbkvt+fcz69jy9
vLV5fT8E/tCQr5Qvyb+7wWPDrh/RPwp/7N7ouLFi47cCXsHlQrvCssIvRdyiyz/Z/1T+09im5E3d
xS7FOzdjN4s239nivWV/iWpJdknf1rlbm0tppQWl77ct3napzKls13bidtl2eXloeWuFScXmii+V
gsrbVb5VTdW61RurR3bwdtzY6bOzcZfersJdn38W/nyvJrCmudastmw3dnfW7md7ovd0/UL/pW6v
zt7CvV/3ifbJ94fvP1fnWldXr1tf3AA3yBoGDyQcuH7Q72Bro01jTZNmU+EhcEh26MXhxMN3joQc
6TxKP9p4zPRY9XHq8YJmqHlF81CLoEXeGtfa0xbc1tnu0X78V9tf950wPFF1UuNk8SniqbxTY6ez
Tw93iDtenUk509e5uPPh2dizt87NP9d9PuT8xQsBF852MbpOX/S8eOKS+6W2y/TLLVdcrjRfdb56
/Dfn3453u3Q3X3O91nrd7Xp7z5yeUze8b5y56Xfzwi3WrSu3593uuRN1597dhLvye7x7A/fT7795
kPVg9OHaR5hHBY9VHpc90X1S+7vl701yF/nJXr/eq08jnj7s4/a9/CPzjy/9ec8oz8qeGzyvG3AY
ODEYMHj9xYIX/S/FL0df5f+p+mf1a4vXx/7y+evqUOxQ/xvJm7G3Re+03+177/S+c5g9/ORDxofR
kYKP2h/3f6J/6voc8/n56LIvuC/lXy2/tn8L+fZoLGNsTMyRcCZWARSicHIyAG/3AUCJA4B6HQDi
gsldekKgyf1/gsB/4sl9e0JcANjdAUAUouy1AOxArJkPsoMgykY00gfAjo4Kndp7J3b0ibWkDwAT
GFm3P9xvooB/yuT+/l3f/7RAkfVv9l+xyQVyGWKmNQAAAFZlWElmTU0AKgAAAAgAAYdpAAQAAAAB
AAAAGgAAAAAAA5KGAAcAAAASAAAARKACAAQAAAABAAADI6ADAAQAAAABAAAEEQAAAABBU0NJSQAA
AFNjcmVlbnNob3T6Qa1QAAAB12lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4
bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRm
OlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1u
cyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxu
czpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBp
eGVsWURpbWVuc2lvbj4xMDQxPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6
UGl4ZWxYRGltZW5zaW9uPjgwMzwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlm
OlVzZXJDb21tZW50PlNjcmVlbnNob3Q8L2V4aWY6VXNlckNvbW1lbnQ+CiAgICAgIDwvcmRmOkRl
c2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoy3YVyAABAAElEQVR4Aey9CbBt
zVXft9+dzh3e/A0akZCQLARisIQxEDGZMqAi2A6UXIpNsCnbKScOZScpu+IYJ2WqcMWViitVjm0c
7AomA05cmAKPCTI4TJaDsCawQPOE9E1vvPM9996X/291//v03mefc4f3vvdNe713bk+rV3ev3Xv3
Wt2ruy+89a1vvdcMMHBg4MDAgYEDAwcGDgwcGDgwcGDgwMCBh8yBpXf9hT906iIvCPP4WL8j/WkU
Sv+bhcXsmUPp3tE95b3XLCwtNBcgNAfuST06PtQf8BS4oAynKWMOyVMnuWo0CThWvanHwoJTUvxp
/qLl0ZZDtYXc0FpcutAs6UfaeCyeKA5+EL+oQsfj4+ae2EubAXgGPundGiipGR8cN8sriadHKofy
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
wuM5cBQkQAIkQAIkUKoJwKc/EWl0qYMU+nOGJQS/ohBYIqBc5kYK812AdSZY/E1uxsq+hU+AblqF
z5hXIAESIAESIAESIAESIAES8CBAZcQDCptIgARIgARIgARIgARIgAQKnwCVkcJnzCuQAAmQAAmQ
AAmQAAmQAAl4EKAy4gGFTSRAAiRAAiRAAiRAAiRAAoVPgMpI4TPmFUiABEiABEiABEiABEiABDwI
UBnxgMImEiABEiABEiABEiABEiCBwidAZaTwGfMKJEACJEACwQhEBOvA/SRAAiRAAqWRAJWR0vhU
eU8kQAIkUNIIsPxuSXtiHC8JkAAJFAgBKiMFgpEnIQESIAESIAESIAESIAESyC0BKiO5Jcb+JEAC
JEACJEACJEACJEACBUKAykiBYORJSIAESIAESIAESIAESIAEckuAykhuibE/CZAACZBAgRPIqtm1
wM/JE5IACZAACYQ/ASoj4f+MOEISIAESIAESIAESIAESKJUEqIyUysfKmyIBEiABEiABEiABEiCB
8CdAZST8nxFHSAIkQAIkQAIkQAIkQAKlkgCVkVL5WHlTJEACJEACJEACJEACJBD+BKiMhP8z4ghJ
gARIgARIgARIgARIoFQSoDJSKh8rb4oESIAESIAESIAESIAEwp8AlZHwf0YcIQmQAAmQAAmQAAmQ
AAmUSgJURkrlY+VNkQAJkAAJkAAJkAAJkED4E6AyEv7PiCMkARIgARIgARIgARIggVJJgMpIqXys
vCkSIAESIAESIAESIAESCH8C/w8NKOlmpLeaMAAAAABJRU5ErkJggg==
--000000000000a04f82061d5deac7--


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 14:44:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 14:44:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759641.1169307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTjPR-000469-0X; Tue, 16 Jul 2024 14:44:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759641.1169307; Tue, 16 Jul 2024 14:44: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 1sTjPQ-000462-U1; Tue, 16 Jul 2024 14:44:04 +0000
Received: by outflank-mailman (input) for mailman id 759641;
 Tue, 16 Jul 2024 14:44: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=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTjPP-00045w-Cz
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 14:44:03 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d74fe2fd-4381-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 16:44:01 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2eeb1ba040aso74641561fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 07:44: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
 d2e1a72fcca58-70b7ebc40c5sm6383095b3a.87.2024.07.16.07.43.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 07:44:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d74fe2fd-4381-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721141041; x=1721745841; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vaRkMqurbE0hQZizbSqP5YDubh1/Bzj4BZmfgG6mD4k=;
        b=CHjYuj1qDd2ryNKsLueERT09VFnJ/BOKo6s3VM2K3kF0WDXQT3fymcGbk3n0n69KcQ
         Kp0OO44lE8qWp+Jd+n6MzTfF97slvua9WSlaAqHBQ852QLX5j4m1DPg4eQb65J+0dKHo
         AA8naaEw+MWLRgNWR3k+yz6qQ1uDEPzur7T3ASZWrnQ8lK5hRwISJ8bhV9h3hd70mMih
         sS3zB1DnAfthZ6KZ8flRZekEGMEJHhxGBIkcu3iWmo5QIysO30OFzex4aDAECxg5mORZ
         4pB7XtGQY//MHcTT5TB+oRHOBYPvxtqG4/vUKLJ1evWZZFcQsDN9/Jp4BVTBrPd8nNbv
         PfZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721141041; x=1721745841;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vaRkMqurbE0hQZizbSqP5YDubh1/Bzj4BZmfgG6mD4k=;
        b=B4+p+LEC1GKGeP4Uo7E5r+B7boxJUwx4I+lyB6M3QRaJJsV6fLHOHxiv8HRKJfhPtZ
         7lWKXocUxPapwh5dF8hNBaSSWscEZtj0rkGo8XZiWc2hvLzmEUQgnSQaINwrZHr+yi6g
         f1pWWJcKQaeGCQtTGq/za49FX0XSZZlcqvVb24QQWjBlzxOS+Y7b7SWfFf+myn1giOLe
         e+ntJ04nRo1uFZ85su+yTaAJffoUH65JBHCU94knh4YIaEWqD31t1CXBMMIir3HqhOAy
         pJP4twdEXMU+2il7sg58a7toWyhPWcWvPR6Ys4uHHsurWXIjYRDjrr0eBRQsajiKYLIR
         2PRA==
X-Gm-Message-State: AOJu0Yz7JFkc2vqHfbtV4jq2z7Vp+3QdKkG4yFIT5NimUhe2wzZ12Lov
	fMGjotK4Of4mYFmaRpPPOv1+wqwehRDoSbLlNb7RoidHeKAY0gBPyXwPvqg8yw==
X-Google-Smtp-Source: AGHT+IHgUICZPBCrmoIukJVsXmQS26b3EIaSdeG6jjXp/Yhc6xo+JlcUZixf2kebTXvZxjr37FBK8w==
X-Received: by 2002:a2e:83c3:0:b0:2ee:db2c:5753 with SMTP id 38308e7fff4ca-2eef41ec98cmr16189451fa.42.1721141040887;
        Tue, 16 Jul 2024 07:44:00 -0700 (PDT)
Message-ID: <ef2f726e-2339-4606-9668-8fe0da524933@suse.com>
Date: Tue, 16 Jul 2024 16:43:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
 <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
 <88db3cb6-2b7e-48b2-9bf4-d871067325a0@suse.com>
 <3d6d35ea-5044-4249-a277-0e5aa31ed888@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: <3d6d35ea-5044-4249-a277-0e5aa31ed888@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.07.2024 15:08, Jason Andryuk wrote:
> On 2024-07-09 06:56, Jürgen Groß wrote:
>> On 09.07.24 09:01, Jan Beulich wrote:
>>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>>    From the backtrace, it looks like the immediate case is just 
>>>>>> trying to
>>>>>> read a 4-byte version:
>>>>>>
>>>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>>
>>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>>> {
>>>>>>            int ret;
>>>>>>
>>>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>>>                                  sizeof(ucsi->version));
>>>>>>
>>>>>> ->read being ucsi_acpi_read()
>>>>>>
>>>>>> However, the driver also appears write to adjacent addresses.
>>>>>
>>>>> There are also corresponding write functions in the driver, yes, but
>>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>>> involved AML whether it might write said memory region.
>>>>
>>>> I guess an ACPI dump would help here?
>>>
>>> Perhaps, yes.
>>
>> It is available in the bug report:
>>
>> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301
> 
> After acpixtract & iasl:
> 
> $ grep -ir FEEC *
> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)

As I look to have only flawed variants of acpixtract to hand, any chance
you could supply me with dsdt.dsl and all ssdt*.dsl that you successfully
extracted / disassembled?

Thanks, Jan

> from the DSDT:
>      Scope (\_SB.PCI0.LPC0.EC0)
>      {
>          OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>          Field (ECMM, AnyAcc, Lock, Preserve)
>          {
>              TWBT,   2048
>          }
> 
>          Name (BTBF, Buffer (0x0100)
>          {
>               0x00                                             // .
>          })
>          Method (BTIF, 0, NotSerialized)
>          {
>              BTBF = TWBT /* \_SB_.PCI0.LPC0.EC0_.TWBT */
>              Return (BTBF) /* \_SB_.PCI0.LPC0.EC0_.BTBF */
>          }
>      }
> 
>  From SSDT16:
> DefinitionBlock ("", "SSDT", 2, "LENOVO", "UsbCTabl", 0x00000001)
> {
>      External (_SB_.PCI0.LPC0.EC0_, DeviceObj)
> 
>      Scope (\_SB)
>      {
>          OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
>          Field (SUSC, ByteAcc, Lock, Preserve)
>          {
> 
> 
> This embedded controller (?) seems to live at 0xfeec2xxx.
> 
> Regards,
> Jason



From xen-devel-bounces@lists.xenproject.org Tue Jul 16 14:50:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 14:50:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759647.1169317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTjV4-0005Gf-Kj; Tue, 16 Jul 2024 14:49:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759647.1169317; Tue, 16 Jul 2024 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 1sTjV4-0005GY-BK; Tue, 16 Jul 2024 14:49:54 +0000
Received: by outflank-mailman (input) for mailman id 759647;
 Tue, 16 Jul 2024 14: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=iGwP=OQ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sTjUU-0005FQ-MW
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 14:49:21 +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 920fd1cc-4382-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 16:49:15 +0200 (CEST)
Received: from BLAPR05CA0003.namprd05.prod.outlook.com (2603:10b6:208:36e::10)
 by SA1PR12MB8858.namprd12.prod.outlook.com (2603:10b6:806:385::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.28; Tue, 16 Jul
 2024 14:48:53 +0000
Received: from BL02EPF0001A0FC.namprd03.prod.outlook.com
 (2603:10b6:208:36e:cafe::1a) by BLAPR05CA0003.outlook.office365.com
 (2603:10b6:208:36e::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.15 via Frontend
 Transport; Tue, 16 Jul 2024 14:48:53 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0001A0FC.mail.protection.outlook.com (10.167.242.103) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.11 via Frontend Transport; Tue, 16 Jul 2024 14:48: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; Tue, 16 Jul
 2024 09:48:49 -0500
Received: from [172.27.205.14] (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, 16 Jul 2024 09:48: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: 920fd1cc-4382-11ef-bbfb-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KdEKKwbBj556VXxzjvfV8AbHYuj1tHPBlQzRibB1dr3A+aB3irMsPSkuFiVtRiQDweUUamFIx78Q0kVDDeRYfvbOeJniNlerP25tHusga8zeL4rtVE7pX/WngstFYvq1pBlkPYBrAaMSSra87gmMq5vWIWA3/CoCDYOb3/wAskOyMbOBpoEY6pV+k/YHRsEYiSuDaFtcPCfuMxOr7ceYM23Hf8gHhB6Q0nyDxdJx5BDfuz5+T2PFHiZa2CtT+y9NpdHV56JQUG7ZFciqBOI5Ll4TeVAeAYbGcuiiCAtmyXDYpkSvf7eAQQILbKLyr7+R/ACshCnyEo7OhKaiVwMDlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R1GesTdzZVOiDJ3T0q9bh7q8cxBHxqzVwIG/PEWB9B0=;
 b=LiQwHp5eUN8zedITJk7bQofUgPuVYR995bse+6dKYbSivxsofxM+NxF2E1vRCRNVTDUX6apccp7ad2erjdRFkJbqYZ2YmGQJvxOF56YMK/menYE8eqGmKAzjNeI2Zr7fZGBj8Tx8KAEKMHXoLReiCJjLQhEIWcPMEt35VES4NK7l0+GMvCUJ1WdHJFhMsYWwZSk37DiPlf55308jKfwl/icg74j+DGM9Tatub6zkcNvRfC/pPH8H3GwK4ub6DPcjdWyCKy0SbZen3RT54eszvC5OCZwIR3vLW4kSaqYd1RsMfQ0yQ0sk0Ttf58ScvM838H2OPZCvlQB4opGUN7TubQ==
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=R1GesTdzZVOiDJ3T0q9bh7q8cxBHxqzVwIG/PEWB9B0=;
 b=no8oMYR6HiX+npk76GuWor66ELwQMWS+wuBlUR5DueGn/BJdABA8o2bNLTJL/il3Ah34qiXzZjdef+8iTFAeNkv8dy9OyzpBV8ByFoaYIqZinresBkGwyh7x6VuxD+IgSfu2LHWR/AhWNHhvFxDNQXlISqOsXNuK13wZBqbCmIg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
Content-Type: multipart/mixed;
	boundary="------------YuTFcCuxiyG8h2Gi5HZkyDSN"
Message-ID: <59083b05-42da-43ac-ac8b-89ea190ada98@amd.com>
Date: Tue, 16 Jul 2024 10:21:13 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
 <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
 <88db3cb6-2b7e-48b2-9bf4-d871067325a0@suse.com>
 <3d6d35ea-5044-4249-a277-0e5aa31ed888@amd.com>
 <ef2f726e-2339-4606-9668-8fe0da524933@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <ef2f726e-2339-4606-9668-8fe0da524933@suse.com>
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: BL02EPF0001A0FC:EE_|SA1PR12MB8858:EE_
X-MS-Office365-Filtering-Correlation-Id: 708d3b41-d92c-417d-98ed-08dca5a66980
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?b2F1NXFsV3JPOVBNdnBGazRtdFBkWnNpMVVJZEdkenJJRkZRbWdSRGxVRDVJ?=
 =?utf-8?B?NXJGSHFpQ3FXN1dwdmZhQ2xUdHNSMzZNN0daNFFPc3kwNkdINTh3QVpCY3pK?=
 =?utf-8?B?VWIvalBQTjhMWVJUc09BWHlvM0l3Y1o5MEgyWlg5VjJReklyamtwY0hLdjhH?=
 =?utf-8?B?MnFqZTBvbzRURmxTZ3VwK2pxbzNBc1RWUWxXWE1NWTBxSWZNNlhlTlFvdUdL?=
 =?utf-8?B?cFBlOWVmSHJxT2UzYzJGRkh3b3AzQnBqMkFmMG42Y3BGK2F2d0dFYXIwR0pr?=
 =?utf-8?B?VW0zOGlFLzVMUzFwVG9xam5zKytCVCs1OGFDbVNLMUVrb0lCRUYxTXRJaDB4?=
 =?utf-8?B?Wi84NEVLSGFkZFlKa1V0SzNnamJmcjZrc3l5cUN6OEs4VUJGdGV2TDVCbGZS?=
 =?utf-8?B?eHZObVM2cStHYm9uU0JiSVJRVjAvNWYvelV1QVVkWlVWeTlBWTZNM1ZFQjRs?=
 =?utf-8?B?cTArOXM3eG5qMklmTjgvSldyWTZPSWsrSGxjdDhMV1l0VHB0aHA2cnpDWkVU?=
 =?utf-8?B?VjhqRzNhYzZyMUd3MzNIZGxiUGZUckJiM1hGZEZmSjRJMDNnR2t1N05GQ2g2?=
 =?utf-8?B?N2dNd21HbVl5dDFKM0RyV0FpZ3FPck04bnNQUzlNRlFTTHBOdzRLbjNoc2tp?=
 =?utf-8?B?aVQ1c0RsbnBZSzlzdnd6bE15RzNMdjFUbkJTaXBjaHl6UlVBRzdjdGVHOVQ2?=
 =?utf-8?B?NmQ4b0VQdFdtT3pWMkNjMmNDc3RQM0pjWVk4NEU3alJEZ2xycVpRS2docnhw?=
 =?utf-8?B?SmJmczZ6ajVTV1hBOGpFMjhoMzN1YTZZVjljdUlVNllGbFptYS9na2NNdFJ5?=
 =?utf-8?B?Z2padm1pZ3hSU0o1RnlkWFFINUsrRlpKK2hJZ3BOU2M1VmJzTGNDVHZKNWEy?=
 =?utf-8?B?anVUZnZraWJwTk9oSTlRSUdRTkNscDZuMEVLZmphUU1FTGRLYWJNYmZINlZu?=
 =?utf-8?B?UkovV096dTZqYzJSOVFPUEdzc2tDVFdwWG8waXN2a01wRVZVbTB2S1VJYXQr?=
 =?utf-8?B?ZW5OVVVWM1MrYnAvTmFqY3pCNGR0NC94a2ZTSkNqUmhHd3lKZzM2ZGFxRDNu?=
 =?utf-8?B?OFY2VjJLMVRaOGlWUFllempIcWFzRjFZWG9hTEJCNUlZV1A4OUtpZUF2WFhK?=
 =?utf-8?B?eWJqRW5CNTl2UEgxTFhEZTFJL3ErNVNYV2ZBUWRsZStwdWlkVE5pbGNsSHJi?=
 =?utf-8?B?R0tDUERIWWN4RkFsandYZzlOU1NtZG5tYmhwSDdHTzR4dU1FQ3BjMjc4NVRC?=
 =?utf-8?B?UHRlOHpudHpJKzBRaytqdGFiWXhEZUd0d0lnKzNRU3kxTmZxOWR0d1JrOWc0?=
 =?utf-8?B?VHZzZlNKUHB4eXM3MHFJNnovYjVsU3g4c040c3VBaWpSa2kvT1cvaUFyMVh6?=
 =?utf-8?B?M095L01Qd2FWZ3RRQUZOK1R3UFROOFZDNmhaeU0rc3hEUWNUMUV1OTJzTFlP?=
 =?utf-8?B?ZzFLNHZXcGxXaXRXRlZBUmx3dXBlR3p6RzF5YVdZUkE5d09JQ1JSc0hQVUtX?=
 =?utf-8?B?WGNTdVJuaTZVUEFNVWovUWFNODIrNFh0cG5YNnd3OVpmVkhacS9PQzVDVncw?=
 =?utf-8?B?MzZoRWVOVlBPbXN6d21QMEc1L3U3QnUraWpaZVk3R01QcFNoQUlrSThhYVYy?=
 =?utf-8?B?UFRWYXMwT0lvK20wYSt1WFJVRVh6R2o0SVEwTy9XR1N4dGlOa3RuM2FXdEda?=
 =?utf-8?B?b1ZCYU5OYWJ3cys2Y08xT3B0alVrTVVVNkprcnZOMy9ueCtXSFQ3czN6RmY3?=
 =?utf-8?B?UHljc3Z3Wm1OYWFIVGpncHNNK3FhZU9tNTJPa3ZBUnVxQVM4RFFYMldUcHRV?=
 =?utf-8?B?VzhnSTE2S1dkMHhZNWhYbHkwSjFoZnF5UDhkMGZzd0J6S25qb3FXaEZZRUdB?=
 =?utf-8?B?NFFDWGo4dHRYYkRjMGk0enNXUHRkbmdRMHlHSnZlSDBwa3c9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.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: 16 Jul 2024 14:48:53.1863
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 708d3b41-d92c-417d-98ed-08dca5a66980
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A0FC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8858

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

On 2024-07-16 10:43, Jan Beulich wrote:
> On 09.07.2024 15:08, Jason Andryuk wrote:
>> On 2024-07-09 06:56, Jürgen Groß wrote:
>>> On 09.07.24 09:01, Jan Beulich wrote:
>>>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>>>     From the backtrace, it looks like the immediate case is just
>>>>>>> trying to
>>>>>>> read a 4-byte version:
>>>>>>>
>>>>>>>     >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>>>     >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>>>     >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>>>     >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>>>
>>>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>>>> {
>>>>>>>             int ret;
>>>>>>>
>>>>>>>             ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>>>>                                   sizeof(ucsi->version));
>>>>>>>
>>>>>>> ->read being ucsi_acpi_read()
>>>>>>>
>>>>>>> However, the driver also appears write to adjacent addresses.
>>>>>>
>>>>>> There are also corresponding write functions in the driver, yes, but
>>>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>>>> involved AML whether it might write said memory region.
>>>>>
>>>>> I guess an ACPI dump would help here?
>>>>
>>>> Perhaps, yes.
>>>
>>> It is available in the bug report:
>>>
>>> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301
>>
>> After acpixtract & iasl:
>>
>> $ grep -ir FEEC *
>> dsdt.dsl:   OperationRegion (ECMM, SystemMemory, 0xFEEC2000, 0x0100)
>> ssdt16.dsl: OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
> 
> As I look to have only flawed variants of acpixtract to hand, any chance
> you could supply me with dsdt.dsl and all ssdt*.dsl that you successfully
> extracted / disassembled?

Sure thing.  There are a lot - all attached.

Regards,
Jason
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="dsdt.dsl"
Content-Disposition: attachment; filename="dsdt.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBk
c2R0LmRhdCwgVHVlIEp1bCAgOSAwODozMjowMCAyMDI0CiAqCiAqIE9yaWdpbmFsIFRhYmxl
IEhlYWRlcjoKICogICAgIFNpZ25hdHVyZSAgICAgICAgIkRTRFQiCiAqICAgICBMZW5ndGgg
ICAgICAgICAgIDB4MDAwMTgwNzIgKDk4NDE4KQogKiAgICAgUmV2aXNpb24gICAgICAgICAw
eDAyCiAqICAgICBDaGVja3N1bSAgICAgICAgIDB4MjgKICogICAgIE9FTSBJRCAgICAgICAg
ICAgIkxFTk9WTyIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIkFNRF9FREsyIgogKiAgICAg
T0VNIFJldmlzaW9uICAgICAweDAwMDAwMDAwICgwKQogKiAgICAgQ29tcGlsZXIgSUQgICAg
ICAiSU5UTCIKICogICAgIENvbXBpbGVyIFZlcnNpb24gMHgyMDE4MDMxMyAoNTM4NDQ0NTYz
KQogKi8KRGVmaW5pdGlvbkJsb2NrICgiIiwgIkRTRFQiLCAyLCAiTEVOT1ZPIiwgIkFNRF9F
REsyIiwgMHgwMDAwMDAwMCkKewogICAgRXh0ZXJuYWwgKF9HUEUsIERldmljZU9iaikKICAg
IEV4dGVybmFsIChfU0JfLkFMSUIsIE1ldGhvZE9iaikgICAgLy8gMiBBcmd1bWVudHMKICAg
IEV4dGVybmFsIChfU0JfLkFQVFMsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAg
IEV4dGVybmFsIChfU0JfLkFXQUssIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAg
IEV4dGVybmFsIChfU0JfLkZBTjAuQ1JORiwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50
cwogICAgRXh0ZXJuYWwgKF9TQl8uRkFOMC5TUlBNLCBNZXRob2RPYmopICAgIC8vIDEgQXJn
dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5JMkNCLCBEZXZpY2VPYmopCiAgICBFeHRlcm5h
bCAoX1NCXy5QQ0kwLkdGWDAuVkdBXy5MQ0RfLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAo
X1NCXy5QQ0kwLkdQMTcuVkdBXy5BRk43LCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9T
Ql8uUENJMC5HUDE3LlhIQzAuUkhVQi5QUlQzLlBSVDEsIERldmljZU9iaikKICAgIEV4dGVy
bmFsIChfU0JfLlBDSTAuTFBDMC5FQzBfLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NC
Xy5QQ0kwLkxQQzAuRUMwXy5EUFJTLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAg
ICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkxQQzAuRUMwXy5IS0VZLlRTU1MsIE1ldGhvZE9iaikg
ICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuTFBDMC5FQzBfLldX
RFQsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLlM0RUYsIEludE9iaikK
ICAgIEV4dGVybmFsIChfU0JfLlBDSTAuUzRSRiwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9T
Ql8uUENJMC5TNFJTLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5h
bCAoX1NCXy5QQ0kwLlM0U1MsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4
dGVybmFsIChfU0JfLlBDSTAuVkdBXy5MQ0RfLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAo
X1NCXy5QTFRGLkMwMDAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBMVEYuQzAw
MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUExURi5DMDAyLCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoX1NCXy5QTFRGLkMwMDMsIERldmljZU9iaikKICAgIEV4dGVybmFs
IChfU0JfLlBMVEYuQzAwNCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUExURi5D
MDA1LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QTFRGLkMwMDYsIERldmljZU9i
aikKICAgIEV4dGVybmFsIChfU0JfLlBMVEYuQzAwNywgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKF9TQl8uUExURi5DMDA4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QTFRG
LkMwMDksIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBMVEYuQzAwQSwgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUExURi5DMDBCLCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoX1NCXy5QTFRGLkMwMEMsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBM
VEYuQzAwRCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUExURi5DMDBFLCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QTFRGLkMwMEYsIERldmljZU9iaikKICAgIEV4
dGVybmFsIChfU0JfLlRQTV8uUFRTXywgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwog
ICAgRXh0ZXJuYWwgKF9TQl8uVUJUQy5OVEZZLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1l
bnRzCiAgICBFeHRlcm5hbCAoQUZONCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwog
ICAgRXh0ZXJuYWwgKEFGTjcsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4
dGVybmFsIChEUE5ULCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKE0wMDAsIE1ldGhvZE9i
aikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMDE3LCBNZXRob2RPYmopICAg
IC8vIDYgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTAxOCwgTWV0aG9kT2JqKSAgICAvLyA3
IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0wMzcsIERldmljZU9iaikKICAgIEV4dGVybmFs
IChNMDQ2LCBJbnRPYmopCiAgICBFeHRlcm5hbCAoTTA0NywgSW50T2JqKQogICAgRXh0ZXJu
YWwgKE0wNTAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDUxLCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoTTA1MiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTMsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChNMDU0LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1
NSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTYsIERldmljZU9iaikKICAgIEV4dGVy
bmFsIChNMDU3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1OCwgRGV2aWNlT2JqKQog
ICAgRXh0ZXJuYWwgKE0wNTksIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDYyLCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoTTA2OCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0w
NjksIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDcwLCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoTTA3MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzIsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMDc0LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NSwgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzYsIERldmljZU9iaikKICAgIEV4dGVybmFsIChN
MDc3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3OCwgRGV2aWNlT2JqKQogICAgRXh0
ZXJuYWwgKE0wNzksIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDgwLCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoTTA4MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wODIsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDgzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTA4NCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODUsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMDg2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTA4NywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODgsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMDg5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MCwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTEsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMDkyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MywgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMDk1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5NiwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0wOTcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk4
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5OSwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0xMDAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAxLCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwMiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0xMDMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA0LCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTEwNSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0x
MDYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA3LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTEwOCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDksIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTEwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTExNSwgQnVmZk9iaikKICAgIEV4dGVybmFsIChNMTE2LCBCdWZmRmllbGRPYmop
CiAgICBFeHRlcm5hbCAoTTExNywgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMTgs
IEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChNMTE5LCBCdWZmRmllbGRPYmopCiAgICBF
eHRlcm5hbCAoTTEyMCwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMjIsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMTI3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAo
TTEyOCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzEsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMTMyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzMywg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzQsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMTM1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzNiwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMjAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMjIxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIyNiwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0yMjcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMjI5LCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIzMSwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0yMzMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjM1LCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTIzQSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0yNTEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjgwLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTI5MCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yOUEs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzEwLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTMxQywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjAsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzIxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTMyMiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjMsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMzI0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMy
NSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjYsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMzI3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyOCwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjksIERldmljZU9iaikKICAgIEV4dGVybmFs
IChNMzJBLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMyQiwgRGV2aWNlT2JqKQogICAg
RXh0ZXJuYWwgKE0zMzAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMzMxLCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTM3OCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0zNzksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzgwLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTM4MSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODIs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzgzLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTM4NCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODUsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTM4NywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODgsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMzg5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM5
MCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zOTEsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMzkyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQwMiwgTWV0
aG9kT2JqKSAgICAvLyAzIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE00MDQsIEJ1ZmZPYmop
CiAgICBFeHRlcm5hbCAoTTQwOCwgTXV0ZXhPYmopCiAgICBFeHRlcm5hbCAoTTQxNCwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NDQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNNDQ5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1MywgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE00NTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
NDU1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1NiwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE00NTcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDYwLCBN
ZXRob2RPYmopICAgIC8vIDcgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTRDMCwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE00RjAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNNjEwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTYyMCwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE02MzEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNjUy
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTVBUUywgTWV0aG9kT2JqKSAgICAvLyAx
IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE1XQUssIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1
bWVudHMKICAgIEV4dGVybmFsIChTWEVGLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoU1hSRiwg
SW50T2JqKQogICAgRXh0ZXJuYWwgKFdNRU0sIE1ldGhvZE9iaikgICAgLy8gNSBBcmd1bWVu
dHMKICAgIEV4dGVybmFsIChXTlRGLCBJbnRPYmopCgogICAgT3BlcmF0aW9uUmVnaW9uIChE
QkcwLCBTeXN0ZW1JTywgMHg4MCwgMHgwMSkKICAgIEZpZWxkIChEQkcwLCBCeXRlQWNjLCBO
b0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIElPODAsICAgOAogICAgfQoKICAgIE9w
ZXJhdGlvblJlZ2lvbiAoREJHMSwgU3lzdGVtSU8sIDB4ODAsIDB4MDIpCiAgICBGaWVsZCAo
REJHMSwgV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBQODBILCAg
IDE2CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChQTUkwLCBTeXN0ZW1NZW1vcnksIDB4
RkVEODAzMDAsIDB4MDEwMCkKICAgIEZpZWxkIChQTUkwLCBBbnlBY2MsIE5vTG9jaywgUHJl
c2VydmUpCiAgICB7CiAgICAgICAgICAgICwgICA2LCAKICAgICAgICBIUEVOLCAgIDEsIAog
ICAgICAgIE9mZnNldCAoMHg2MCksIAogICAgICAgIFAxRUIsICAgMTYsIAogICAgICAgIE9m
ZnNldCAoMHhGMCksIAogICAgICAgICAgICAsICAgMywgCiAgICAgICAgUlNUVSwgICAxCiAg
ICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChHU01HLCBTeXN0ZW1NZW1vcnksIDB4RkVEODE1
MDAsIDB4MDNGRikKICAgIEZpZWxkIChHU01HLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUp
CiAgICB7CiAgICAgICAgT2Zmc2V0ICgweDVDKSwgCiAgICAgICAgT2Zmc2V0ICgweDVFKSwg
CiAgICAgICAgR1MyMywgICAxLCAKICAgICAgICAgICAgLCAgIDUsIAogICAgICAgIEdWMjMs
ICAgMSwgCiAgICAgICAgR0UyMywgICAxLCAKICAgICAgICBPZmZzZXQgKDB4QTApLCAKICAg
ICAgICBPZmZzZXQgKDB4QTIpLCAKICAgICAgICBHUzQwLCAgIDEsIAogICAgICAgICAgICAs
ICAgNSwgCiAgICAgICAgR1Y0MCwgICAxLCAKICAgICAgICBHRTQwLCAgIDEKICAgIH0KCiAg
ICBPcGVyYXRpb25SZWdpb24gKEdTTU0sIFN5c3RlbU1lbW9yeSwgMHhGRUQ4MDAwMCwgMHgx
MDAwKQogICAgRmllbGQgKEdTTU0sIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsK
ICAgICAgICBPZmZzZXQgKDB4Mjg4KSwgCiAgICAgICAgICAgICwgICAxLCAKICAgICAgICBD
TFBTLCAgIDEsIAogICAgICAgIE9mZnNldCAoMHgyQjApLCAKICAgICAgICAgICAgLCAgIDIs
IAogICAgICAgIFNMUFMsICAgMiwgCiAgICAgICAgT2Zmc2V0ICgweDNCQiksIAogICAgICAg
ICAgICAsICAgNiwgCiAgICAgICAgUFdERSwgICAxCiAgICB9CgogICAgT3BlcmF0aW9uUmVn
aW9uIChQMUUwLCBTeXN0ZW1JTywgUDFFQiwgMHgwNCkKICAgIEZpZWxkIChQMUUwLCBCeXRl
QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgICAgICAsICAgMTQsIAogICAg
ICAgIFBFV1MsICAgMSwgCiAgICAgICAgV1NUQSwgICAxLCAKICAgICAgICAgICAgLCAgIDE0
LCAKICAgICAgICBQRVdELCAgIDEKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKElPQ0Ms
IFN5c3RlbUlPLCAweDA0MDAsIDB4ODApCiAgICBGaWVsZCAoSU9DQywgQnl0ZUFjYywgTm9M
b2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICAg
ICAgLCAgIDIsIAogICAgICAgIFJUQ1MsICAgMQogICAgfQoKICAgIE5hbWUgKFBSV1AsIFBh
Y2thZ2UgKDB4MDIpCiAgICB7CiAgICAgICAgWmVybywgCiAgICAgICAgWmVybwogICAgfSkK
ICAgIE1ldGhvZCAoR1BSVywgMiwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBQUldQ
IFsweDAwXSA9IEFyZzAKICAgICAgICBQUldQIFsweDAxXSA9IEFyZzEKICAgICAgICBJZiAo
KERBUzMgPT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEFyZzEgPD0gMHgw
MykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBSV1AgWzB4MDFdID0gMHgwMAog
ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBSZXR1cm4gKFBSV1ApIC8qIFxQUldQ
ICovCiAgICB9CgogICAgTWV0aG9kIChTUFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewog
ICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkKICAgICAgICB7CiAgICAgICAgICAgIFJTVFUg
PSBaZXJvCiAgICAgICAgfQoKICAgICAgICBDTFBTID0gT25lCiAgICAgICAgU0xQUyA9IE9u
ZQogICAgICAgIFBFV1MgPSBQRVdTIC8qIFxQRVdTICovCiAgICB9CgogICAgTWV0aG9kIChT
V0FLLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIElmICgoQXJnMCA9PSAweDAz
KSkKICAgICAgICB7CiAgICAgICAgICAgIFJTVFUgPSBPbmUKICAgICAgICB9CgogICAgICAg
IFBFV1MgPSBQRVdTIC8qIFxQRVdTICovCiAgICAgICAgUEVXRCA9IFplcm8KICAgIH0KCiAg
ICBNZXRob2QgKFRQU1QsIDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTTAwMCAoQXJn
MCkKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKEdOVlMsIFN5c3RlbU1lbW9yeSwgMHgx
QkIxMEY5OCwgMHgwMDAwMDAwRCkKICAgIEZpZWxkIChHTlZTLCBBbnlBY2MsIE5vTG9jaywg
UHJlc2VydmUpCiAgICB7CiAgICAgICAgQlJUTCwgICA4LCAKICAgICAgICBDTlNCLCAgIDgs
IAogICAgICAgIERBUzMsICAgOCwgCiAgICAgICAgV0tQTSwgICA4LCAKICAgICAgICBOQVBD
LCAgIDgsIAogICAgICAgIFBDQkEsICAgMzIsIAogICAgICAgIE9mZnNldCAoMHgwQSksIAog
ICAgICAgIE1XVFQsICAgOCwgCiAgICAgICAgRFBUQywgICA4LCAKICAgICAgICBXT1ZTLCAg
IDgKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKE9HTlMsIFN5c3RlbU1lbW9yeSwgMHgx
QkIyM0M5OCwgMHgwMDAwMDAwNSkKICAgIEZpZWxkIChPR05TLCBBbnlBY2MsIExvY2ssIFBy
ZXNlcnZlKQogICAgewogICAgICAgIFRIUE4sICAgOCwgCiAgICAgICAgVEhQRCwgICA4LCAK
ICAgICAgICBTRE1PLCAgIDgsIAogICAgICAgIFRCRU4sICAgOCwgCiAgICAgICAgVEJOSCwg
ICA4CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChQTlZTLCBTeXN0ZW1NZW1vcnksIDB4
MUJCMjNCMTgsIDB4MDAwMDAwMDIpCiAgICBGaWVsZCAoUE5WUywgQW55QWNjLCBOb0xvY2ss
IFByZXNlcnZlKQogICAgewogICAgICAgIEhEU0ksICAgOCwgCiAgICAgICAgSERTTywgICA4
CiAgICB9CgogICAgTmFtZSAoUkRIVywgMHgwMCkKICAgIE5hbWUgKE5GQ1MsIDB4MDQpCiAg
ICBOYW1lIChPU1RCLCBPbmVzKQogICAgTmFtZSAoVFBPUywgWmVybykKICAgIE5hbWUgKExJ
TlgsIFplcm8pCiAgICBOYW1lIChPU1NQLCBaZXJvKQogICAgTWV0aG9kIChTRVFMLCAyLCBT
ZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9IFNpemVPZiAoQXJnMCkKICAgICAg
ICBMb2NhbDEgPSBTaXplT2YgKEFyZzEpCiAgICAgICAgSWYgKChMb2NhbDAgIT0gTG9jYWwx
KSkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICB9CgogICAg
ICAgIE5hbWUgKEJVRjAsIEJ1ZmZlciAoTG9jYWwwKSB7fSkKICAgICAgICBCVUYwID0gQXJn
MAogICAgICAgIE5hbWUgKEJVRjEsIEJ1ZmZlciAoTG9jYWwwKSB7fSkKICAgICAgICBCVUYx
ID0gQXJnMQogICAgICAgIExvY2FsMiA9IFplcm8KICAgICAgICBXaGlsZSAoKExvY2FsMiA8
IExvY2FsMCkpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDMgPSBEZXJlZk9mIChCVUYw
IFtMb2NhbDJdKQogICAgICAgICAgICBMb2NhbDQgPSBEZXJlZk9mIChCVUYxIFtMb2NhbDJd
KQogICAgICAgICAgICBJZiAoKExvY2FsMyAhPSBMb2NhbDQpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IExvY2FsMisrCiAgICAgICAgfQoKICAgICAgICBSZXR1cm4gKE9uZSkKICAgIH0KCiAgICBN
ZXRob2QgKE9TVFAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKChPU1RC
ID09IE9uZXMpKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9PU0ks
IExvY2FsMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNM
LVxcT1NUUCBcXF9PU0kgZXhpc3RcbiIsIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8s
IFplcm8pCiAgICAgICAgICAgICAgICBPU1RCID0gMHgwMAogICAgICAgICAgICAgICAgVFBP
UyA9IDB4MDAKICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDAxIikpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxP
U1RQIENhbGwgX09TSSglUykgPSBUUlVFXG4iLCAiV2luZG93cyAyMDAxIiwgWmVybywgWmVy
bywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgICAgICBXTlRGID0gMHgwMQog
ICAgICAgICAgICAgICAgICAgIE9TVEIgPSAweDA4CiAgICAgICAgICAgICAgICAgICAgVFBP
UyA9IDB4MDgKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoX09TSSAo
IldpbmRvd3MgMjAwMS4xIikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTTQ2MCAoIlBMQS1BU0wtXFxPU1RQIENhbGwgX09TSSglUykgPSBUUlVFXG4iLCAiV2lu
ZG93cyAyMDAxLjEiLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAg
ICAgICAgICAgIE9TVEIgPSAweDIwCiAgICAgICAgICAgICAgICAgICAgVFBPUyA9IDB4MjAK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoX09TSSAoIldpbmRvd3Mg
MjAwMSBTUDEiKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYw
ICgiUExBLUFTTC1cXE9TVFAgQ2FsbCBfT1NJKCVTKSA9IFRSVUVcbiIsICJXaW5kb3dzIDIw
MDEgU1AxIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAg
ICAgICBPU1RCID0gMHgxMAogICAgICAgICAgICAgICAgICAgIFRQT1MgPSAweDEwCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKF9PU0kgKCJXaW5kb3dzIDIwMDEg
U1AyIikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIlBM
QS1BU0wtXFxPU1RQIENhbGwgX09TSSglUykgPSBUUlVFXG4iLCAiV2luZG93cyAyMDAxIFNQ
MiIsIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICAgICAg
T1NUQiA9IDB4MTEKICAgICAgICAgICAgICAgICAgICBUUE9TID0gMHgxMQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDAxIFNQMyIp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNM
LVxcT1NUUCBDYWxsIF9PU0koJVMpID0gVFJVRVxuIiwgIldpbmRvd3MgMjAwMSBTUDMiLCBa
ZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE9TVEIg
PSAweDEyCiAgICAgICAgICAgICAgICAgICAgVFBPUyA9IDB4MTIKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBJZiAoX09TSSAoIldpbmRvd3MgMjAwNiIpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcT1NUUCBD
YWxsIF9PU0koJVMpID0gVFJVRVxuIiwgIldpbmRvd3MgMjAwNiIsIFplcm8sIFplcm8sIFpl
cm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICAgICAgT1NUQiA9IDB4NDAKICAgICAg
ICAgICAgICAgICAgICBUUE9TID0gMHg0MAogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDA2IFNQMSIpKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcT1NUUCBDYWxsIF9PU0ko
JVMpID0gVFJVRVxuIiwgIldpbmRvd3MgMjAwNiBTUDEiLCBaZXJvLCBaZXJvLCBaZXJvLCBa
ZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE9TVEIgPSAweDQxCiAgICAgICAgICAg
ICAgICAgICAgVFBPUyA9IDB4NDEKICAgICAgICAgICAgICAgICAgICBPU1NQID0gMHgwMQog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAy
MDA5IikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIlBM
QS1BU0wtXFxPU1RQIENhbGwgX09TSSglUykgPSBUUlVFXG4iLCAiV2luZG93cyAyMDA5Iiwg
WmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgICAgICBPU1NQ
ID0gMHgwMQogICAgICAgICAgICAgICAgICAgIE9TVEIgPSAweDUwCiAgICAgICAgICAgICAg
ICAgICAgVFBPUyA9IDB4NTAKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ
ZiAoX09TSSAoIldpbmRvd3MgMjAxMiIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcT1NUUCBDYWxsIF9PU0koJVMpID0gVFJVRVxu
IiwgIldpbmRvd3MgMjAxMiIsIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAg
ICAgICAgICAgICAgICAgT1NTUCA9IDB4MDEKICAgICAgICAgICAgICAgICAgICBPU1RCID0g
MHg2MAogICAgICAgICAgICAgICAgICAgIFRQT1MgPSAweDYwCiAgICAgICAgICAgICAgICAg
ICAgV0lOOCA9IDB4MDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo
X09TSSAoIldpbmRvd3MgMjAxMyIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIE00NjAgKCJQTEEtQVNMLVxcT1NUUCBDYWxsIF9PU0koJVMpID0gVFJVRVxuIiwg
IldpbmRvd3MgMjAxMyIsIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAgICAg
ICAgICAgICAgICAgT1NTUCA9IDB4MDEKICAgICAgICAgICAgICAgICAgICBPU1RCID0gMHg2
MQogICAgICAgICAgICAgICAgICAgIFRQT1MgPSAweDYxCiAgICAgICAgICAgICAgICAgICAg
V0lOOCA9IDB4MDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoX09T
SSAoIldpbmRvd3MgMjAxNSIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIE00NjAgKCJQTEEtQVNMLVxcT1NUUCBDYWxsIF9PU0koJVMpID0gVFJVRVxuIiwgIldp
bmRvd3MgMjAxNSIsIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAg
ICAgICAgICAgT1NTUCA9IDB4MDEKICAgICAgICAgICAgICAgICAgICBPU1RCID0gMHg3MAog
ICAgICAgICAgICAgICAgICAgIFRQT1MgPSAweDcwCiAgICAgICAgICAgICAgICAgICAgV0lO
OCA9IDB4MDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoX09TSSAo
IkxpbnV4IikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAo
IlBMQS1BU0wtXFxPU1RQIENhbGwgX09TSSglUykgPSBUUlVFXG4iLCAiTGludXgiLCBaZXJv
LCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIExJTlggPSAw
eDAxCiAgICAgICAgICAgICAgICAgICAgT1NUQiA9IDB4ODAKICAgICAgICAgICAgICAgICAg
ICBUUE9TID0gMHg4MAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAg
ICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wt
XFxPU1RQIFxcX09TSSBkb2VzIE5PVCBleGlzdFxuIiwgWmVybywgWmVybywgWmVybywgWmVy
bywgWmVybywgWmVybykKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfT1MsIExv
Y2FsMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIlBM
QS1BU0wtXFxPU1RQIFxcX09TIGV4aXN0XG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBa
ZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIElmIChTRVFMIChfT1MsICJNaWNyb3Nv
ZnQgV2luZG93cyIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxPU1RQIENhbGwgU0VRTCBcXF9PUyA9PSAoJVMpXG4i
LCAiTWljcm9zb2Z0IFdpbmRvd3MiLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQog
ICAgICAgICAgICAgICAgICAgICAgICBPU1RCID0gMHgwMQogICAgICAgICAgICAgICAgICAg
ICAgICBUUE9TID0gMHgwMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICBFbHNlSWYgKFNFUUwgKF9PUywgIk1pY3Jvc29mdCBXaW5kb3dzTUU6IE1pbGxlbm5p
dW0gRWRpdGlvbiIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxPU1RQIENhbGwgU0VRTCBcXF9PUyA9PSAoJVMpXG4i
LCAiTWljcm9zb2Z0IFdpbmRvd3NNRTogTWlsbGVubml1bSBFZGl0aW9uIiwgWmVybywgWmVy
bywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgT1NUQiA9IDB4
MDIKICAgICAgICAgICAgICAgICAgICAgICAgVFBPUyA9IDB4MDIKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmIChTRVFMIChfT1MsICJNaWNyb3Nv
ZnQgV2luZG93cyBOVCIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxPU1RQIENhbGwgU0VRTCBcXF9PUyA9PSAoJVMp
XG4iLCAiTWljcm9zb2Z0IFdpbmRvd3MgTlQiLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBa
ZXJvKQogICAgICAgICAgICAgICAgICAgICAgICBXTlRGID0gMHgwMQogICAgICAgICAgICAg
ICAgICAgICAgICBPU1RCID0gMHgwNAogICAgICAgICAgICAgICAgICAgICAgICBUUE9TID0g
MHgwNAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiUExB
LUFTTC1cXE9TVFAgQ2FsbCBTRVFMIFxcX09TICE9ICglUylcbiIsICJNaWNyb3NvZnQgV2lu
ZG93cyIsIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICAg
ICAgICAgIE9TVEIgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIFRQT1MgPSAweDAw
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCJQ
TEEtQVNMLVxcT1NUUCBcXF9PUyBkb2VzIE5PVCBleGlzdFxuIiwgWmVybywgWmVybywgWmVy
bywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgICAgICBPU1RCID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgIFRQT1MgPSAweDAwCiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE00NjAgKCJQTEEtQVNMLVxcT1NUUCBUUE9T
ID0gMHglWCwgUmV0dXJuIE9TVEIgPSAweCVYXG4iLCBUUE9TLCBPU1RCLCBaZXJvLCBaZXJv
LCBaZXJvLCBaZXJvKQogICAgICAgIFJldHVybiAoT1NUQikgLyogXE9TVEIgKi8KICAgIH0K
CiAgICBNZXRob2QgKFdNRU0sIDUsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWww
ID0gKEFyZzAgKyBBcmcxKQogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTSwgU3lzdGVt
TWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgRmllbGQgKFZBUk0sIERXb3JkQWNjLCBO
b0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgVkFSUiwgICAzMgogICAg
ICAgIH0KCiAgICAgICAgTG9jYWwxID0gVkFSUiAvKiBcV01FTS5WQVJSICovCiAgICAgICAg
TG9jYWw1ID0gMHg3RkZGRkZGRgogICAgICAgIExvY2FsNSB8PSAweDgwMDAwMDAwCiAgICAg
ICAgTG9jYWwyID0gKEFyZzIgKyBBcmczKQogICAgICAgIExvY2FsMiA9ICgweDIwIC0gTG9j
YWwyKQogICAgICAgIExvY2FsMiA9ICgoKExvY2FsNSA8PCBMb2NhbDIpICYgTG9jYWw1KSA+
PiBMb2NhbDIpCiAgICAgICAgTG9jYWwyID0gKChMb2NhbDIgPj4gQXJnMikgPDwgQXJnMikK
ICAgICAgICBMb2NhbDMgPSAoQXJnNCA8PCBBcmcyKQogICAgICAgIExvY2FsNCA9ICgoTG9j
YWwxICYgKExvY2FsNSBeIExvY2FsMikpIHwgTG9jYWwzKQogICAgICAgIFZBUlIgPSBMb2Nh
bDQKICAgIH0KCiAgICBNZXRob2QgKFdGSU8sIDIsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAg
ICAgSWYgKChBcmcwIDw9IDB4RkYpKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0g
KEFyZzAgPDwgMHgwMikKICAgICAgICAgICAgV01FTSAoMHhGRUQ4MTUwMCwgTG9jYWwwLCAw
eDE2LCAweDAxLCBBcmcxKQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewogICAg
ICAgICAgICBMb2NhbDAgPSAoQXJnMCAmPSAweEZGIDw8IDB4MDIpCiAgICAgICAgICAgIFdN
RU0gKDB4RkVEODEyMDAsIExvY2FsMCwgMHgxNiwgMHgwMSwgQXJnMSkKICAgICAgICB9CiAg
ICB9CgogICAgTWV0aG9kIChSRklPLCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExv
Y2FsMCA9ICgweEZFRDgxNTAwICsgKExvY2FsMCA9IChBcmcwIDw8IDB4MDIpKSkKICAgICAg
ICBPcGVyYXRpb25SZWdpb24gKFJHUEksIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQog
ICAgICAgIEZpZWxkIChSR1BJLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg
ewogICAgICAgICAgICBPZmZzZXQgKDB4MDIpLCAKICAgICAgICAgICAgR1BMViwgICAxCiAg
ICAgICAgfQoKICAgICAgICBSZXR1cm4gKEdQTFYpIC8qIFxSRklPLkdQTFYgKi8KICAgIH0K
CiAgICBPcGVyYXRpb25SZWdpb24gKEdTQ0ksIFN5c3RlbU1lbW9yeSwgMHhGRUQ4MDIwMCwg
MHgxMCkKICAgIEZpZWxkIChHU0NJLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg
IHsKICAgICAgICBPZmZzZXQgKDB4MDgpLCAKICAgICAgICBHQUhMLCAgIDMyLCAKICAgICAg
ICBHTEVWLCAgIDMyCiAgICB9CgogICAgTWV0aG9kIChHQ1RMLCAyLCBTZXJpYWxpemVkKQog
ICAgewogICAgICAgIExvY2FsMCA9IEdBSEwgLyogXEdBSEwgKi8KICAgICAgICBMb2NhbDEg
PSBHTEVWIC8qIFxHTEVWICovCiAgICAgICAgSWYgKChBcmcwID09IDB4MDApKQogICAgICAg
IHsKICAgICAgICAgICAgTG9jYWwyID0gKExvY2FsMCAmIH4oMHgwMSA8PCBBcmcxKSkKICAg
ICAgICAgICAgTG9jYWwzID0gKExvY2FsMSAmIH4oMHgwMSA8PCBBcmcxKSkKICAgICAgICB9
CiAgICAgICAgRWxzZQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwyID0gKExvY2FsMCB8
ICgweDAxIDw8IEFyZzEpKQogICAgICAgICAgICBMb2NhbDMgPSAoTG9jYWwxIHwgKDB4MDEg
PDwgQXJnMSkpCiAgICAgICAgfQoKICAgICAgICBHQUhMID0gTG9jYWwyCiAgICAgICAgR0xF
ViA9IExvY2FsMwogICAgfQoKICAgIFNjb3BlIChfU0IpCiAgICB7CiAgICAgICAgRGV2aWNl
IChQTFRGKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDEwIiAv
KiBQcm9jZXNzb3IgQ29udGFpbmVyIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElE
CiAgICAgICAgICAgIE5hbWUgKF9DSUQsIEVpc2FJZCAoIlBOUDBBMDUiKSAvKiBHZW5lcmlj
IENvbnRhaW5lciBEZXZpY2UgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAg
ICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBE
ZXZpY2UgKEMwMDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQs
ICJBQ1BJMDAwNyIgLyogUHJvY2Vzc29yIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJl
IElECiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCBaZXJvKSAgLy8gX1VJRDogVW5pcXVl
IElECiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQzAwMSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNz
b3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5h
bWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICB9CgogICAg
ICAgICAgICBEZXZpY2UgKEMwMDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5h
bWUgKF9ISUQsICJBQ1BJMDAwNyIgLyogUHJvY2Vzc29yIERldmljZSAqLykgIC8vIF9ISUQ6
IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKSAgLy8gX1VJ
RDogVW5pcXVlIElECiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQzAwMykK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAv
KiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAg
ICAgICAgIE5hbWUgKF9VSUQsIDB4MDMpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgRGV2aWNlIChDMDA0KQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBOYW1lIChfSElELCAiQUNQSTAwMDciIC8qIFByb2Nlc3NvciBEZXZpY2UgKi8p
ICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgw
NCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZp
Y2UgKEMwMDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJB
Q1BJMDAwNyIgLyogUHJvY2Vzc29yIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElE
CiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDA1KSAgLy8gX1VJRDogVW5pcXVlIElE
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQzAwNikKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3Ig
RGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUg
KF9VSUQsIDB4MDYpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgRGV2aWNlIChDMDA3KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1l
IChfSElELCAiQUNQSTAwMDciIC8qIFByb2Nlc3NvciBEZXZpY2UgKi8pICAvLyBfSElEOiBI
YXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNykgIC8vIF9VSUQ6
IFVuaXF1ZSBJRAogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEMwMDgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBQ1BJMDAwNyIgLyog
UHJvY2Vzc29yIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAg
ICAgICBOYW1lIChfVUlELCAweDA4KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIERldmljZSAoQzAwOSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAg
Ly8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDkp
ICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNl
IChDMDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiQUNQ
STAwMDciIC8qIFByb2Nlc3NvciBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAog
ICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwQSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAog
ICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEMwMEIpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBQ1BJMDAwNyIgLyogUHJvY2Vzc29yIERl
dmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChf
VUlELCAweDBCKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIERldmljZSAoQzAwQykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAo
X0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFy
ZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MEMpICAvLyBfVUlEOiBV
bmlxdWUgSUQKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChDMDBEKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiQUNQSTAwMDciIC8qIFBy
b2Nlc3NvciBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAg
ICAgTmFtZSAoX1VJRCwgMHgwRCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICB9
CgogICAgICAgICAgICBEZXZpY2UgKEMwMEUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIE5hbWUgKF9ISUQsICJBQ1BJMDAwNyIgLyogUHJvY2Vzc29yIERldmljZSAqLykgIC8v
IF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDBFKSAg
Ly8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAo
QzAwRikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkw
MDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAg
ICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MEYpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAg
ICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBOYW1lIChfUzAsIFBhY2thZ2UgKDB4
MDQpICAvLyBfUzBfOiBTMCBTeXN0ZW0gU3RhdGUKICAgIHsKICAgICAgICAweDAwLCAKICAg
ICAgICAweDAwLCAKICAgICAgICAweDAwLCAKICAgICAgICAweDAwCiAgICB9KQogICAgTmFt
ZSAoTk9TMywgUGFja2FnZSAoMHgwNCkKICAgIHsKICAgICAgICAweDAzLCAKICAgICAgICAw
eDAzLCAKICAgICAgICAweDAwLCAKICAgICAgICAweDAwCiAgICB9KQogICAgTmFtZSAoX1M0
LCBQYWNrYWdlICgweDA0KSAgLy8gX1M0XzogUzQgU3lzdGVtIFN0YXRlCiAgICB7CiAgICAg
ICAgMHgwNCwgCiAgICAgICAgMHgwNCwgCiAgICAgICAgMHgwMCwgCiAgICAgICAgMHgwMAog
ICAgfSkKICAgIE5hbWUgKF9TNSwgUGFja2FnZSAoMHgwNCkgIC8vIF9TNV86IFM1IFN5c3Rl
bSBTdGF0ZQogICAgewogICAgICAgIDB4MDUsIAogICAgICAgIDB4MDUsIAogICAgICAgIDB4
MDAsIAogICAgICAgIDB4MDAKICAgIH0pCiAgICBTY29wZSAoX0dQRSkKICAgIHsKICAgICAg
ICBNZXRob2QgKFhMMTYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg
ICBOb3RpZnkgKFxfU0IuUENJMC5HUFAyLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAg
IH0KCiAgICAgICAgTWV0aG9kIChYTDBFLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsK
ICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1BQNiwgMHgwMikgLy8gRGV2aWNlIFdh
a2UKICAgICAgICB9CiAgICB9CgogICAgTmFtZSAoUElDTSwgWmVybykKICAgIE5hbWUgKEdQ
SUMsIFplcm8pCiAgICBNZXRob2QgKF9QSUMsIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUElD
OiBJbnRlcnJ1cHQgTW9kZWwKICAgIHsKICAgICAgICBQSUNNID0gQXJnMAogICAgICAgIEdQ
SUMgPSBBcmcwCiAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfUElDIEFyZzAgPSAweCVYXG4i
LCBUb0ludGVnZXIgKEFyZzApLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAg
ICAgIElmIChQSUNNKQogICAgICAgIHsKICAgICAgICAgICAgXF9TQi5EU1BJICgpCiAgICAg
ICAgICAgIElmIChOQVBDKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBcX1NCLlBD
STAuTkFQRSAoKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAo
X1BUUywgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9QVFM6IFByZXBhcmUgVG8gU2xlZXAKICAg
IHsKICAgICAgICBQODBIID0gQXJnMAogICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1BUUyBT
dGFydCBBcmcwID0gMHglWFxuIiwgVG9JbnRlZ2VyIChBcmcwKSwgWmVybywgWmVybywgWmVy
bywgWmVybywgWmVybykKICAgICAgICBMb2NhbDAgPSAweDAxCiAgICAgICAgSWYgKChBcmcw
ID09IFNQUykpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAg
fQoKICAgICAgICBJZiAoKChBcmcwID09IDB4MDApIHx8IChBcmcwID49IDB4MDYpKSkKICAg
ICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICB9CgogICAgICAgIFxf
U0IuUENJMC5TNFNTIChBcmcwKQogICAgICAgIElmIChMb2NhbDApCiAgICAgICAgewogICAg
ICAgICAgICBTUFRTIChBcmcwKQogICAgICAgICAgICBTUFMgPSBBcmcwCiAgICAgICAgICAg
IFxfU0IuUENJMC5MUEMwLkVDMC5IS0VZLk1IS0UgKDB4MDApCiAgICAgICAgICAgIElmIChc
X1NCLlBDSTAuTFBDMC5FQzAuS0JMVCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
U0NNUyAoMHgwRCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4
MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBGTklEID0gXF9TQi5QQ0kwLkxQ
QzAuRUMwLkhGTkkKICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5IRk5JID0g
MHgwMAogICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkhGU1AgPSAweDAwCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgU0xQUyA9IDB4MDEKICAgICAgICAgICAgICAgIEFDU1Qg
PSBcX1NCLlBDSTAuTFBDMC5FQzAuQUMuX1BTUiAoKQogICAgICAgICAgICAgICAgSWYgKChG
TldLID09IDB4MDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm
IChIOERSKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
XF9TQi5QQ0kwLkxQQzAuRUMwLkhXRk4gPSAweDAwCiAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIE1CRUMgKDB4MzIsIDB4RUYsIDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoKEFyZzAgPT0gMHgwNCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNMUFMg
PSAweDAxCiAgICAgICAgICAgICAgICBSU1RVID0gMHgwMQogICAgICAgICAgICAgICAgXF9T
Qi5TTFBCLl9QU1cgKDB4MDApCiAgICAgICAgICAgICAgICBBV09OICgweDA0KQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNSkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIEFXT04gKDB4MDUpCiAgICAgICAgICAgICAgICBJZiAoKFdLUE0g
PT0gMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUFdERSA9
IE9uZQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFxfU0IuQlNNSSAoWmVy
bykKICAgICAgICAgICAgICAgIFxfU0IuR1NNSSAoMHgwMykKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgSWYgKChBcmcwID49IDB4MDQpKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuSFdMQiA9IDB4MDAKICAgICAgICAgICAgfQogICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFxfU0IuUENJMC5M
UEMwLkVDMC5IV0xCID0gMHgwMQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFy
ZzAgPj0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFxfU0IuUENJMC5M
UEMwLkVDMC5IQ01VID0gMHgwMQogICAgICAgICAgICB9CgogICAgICAgICAgICBIQVVGID0g
XF9TQi5QQ0kwLkxQQzAuRUMwLkhBVU0KICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMw
LkhLRVkuV0dQUyAoQXJnMCkKICAgICAgICB9CgogICAgICAgIElmIChDb25kUmVmT2YgKFxf
U0IuVFBNLlBUUykpCiAgICAgICAgewogICAgICAgICAgICBcX1NCLlRQTS5QVFMgKEFyZzAp
CiAgICAgICAgfQoKICAgICAgICBcX1NCLkFQVFMgKEFyZzApCiAgICAgICAgTVBUUyAoQXJn
MCkKICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9QVFMgRW5kXG4iLCBaZXJvLCBaZXJvLCBa
ZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgfQoKICAgIE5hbWUgKFdBS0ksIFBhY2thZ2Ug
KDB4MDIpCiAgICB7CiAgICAgICAgMHgwMCwgCiAgICAgICAgMHgwMAogICAgfSkKICAgIE1l
dGhvZCAoX1dBSywgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9XQUs6IFdha2UKICAgIHsKICAg
ICAgICBQODBIID0gKEFyZzAgPDwgMHgwNCkKICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9X
QUsgU3RhcnQgQXJnMCA9IDB4JVhcbiIsIFRvSW50ZWdlciAoQXJnMCksIFplcm8sIFplcm8s
IFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgSWYgKCgoQXJnMCA9PSAweDAwKSB8fCAoQXJn
MCA+PSAweDA1KSkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKFdBS0kpIC8qIFxX
QUtJICovCiAgICAgICAgfQoKICAgICAgICBcX1NCLlBDSTAuUzRSUyAoQXJnMCkKICAgICAg
ICBTV0FLIChBcmcwKQogICAgICAgIFxfU0IuQVdBSyAoQXJnMCkKICAgICAgICBJZiAoKChB
cmcwID09IDB4MDMpIHx8IChBcmcwID09IDB4MDQpKSkKICAgICAgICB7CiAgICAgICAgICAg
IElmICgoR1BJQyAhPSBaZXJvKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9T
Qi5EU1BJICgpCiAgICAgICAgICAgICAgICBJZiAoTkFQQykKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTkFQRSAoKQogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAu
QUMuQUNEQyA9IDB4RkYKICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5MUEMwLkVDMC5BQywg
MHg4MCkgLy8gU3RhdHVzIENoYW5nZQogICAgICAgIE1XQUsgKEFyZzApCiAgICAgICAgU1BT
ID0gMHgwMAogICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5IQ01VID0gMHgwMAogICAgICAg
IFxfU0IuUENJMC5MUEMwLkVDMC5FVk5UICgweDAxKQogICAgICAgIFxfU0IuUENJMC5MUEMw
LkVDMC5IS0VZLk1IS0UgKDB4MDEpCiAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkZOU1Qg
KCkKICAgICAgICBTQ01TICgweDIxKQogICAgICAgIExJREIgPSAweDAwCiAgICAgICAgXF9T
Qi5QQ0kwLkxQQzAuRUMwLkhLRVkuQ1NTUyAoKQogICAgICAgIElmICgoQXJnMCA9PSAweDAx
KSkKICAgICAgICB7CiAgICAgICAgICAgIEZOSUQgPSBcX1NCLlBDSTAuTFBDMC5FQzAuSEZO
SQogICAgICAgIH0KCiAgICAgICAgSWYgKChBcmcwID09IDB4MDMpKQogICAgICAgIHsKICAg
ICAgICAgICAgTlZTUyAoMHgwMCkKICAgICAgICAgICAgSWYgKChBQ1NUICE9IFxfU0IuUENJ
MC5MUEMwLkVDMC5BQy5fUFNSICgpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
XF9TQi5QQ0kwLkxQQzAuRUMwLkFUTUMgKCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
SU9FTiA9IDB4MDAKICAgICAgICAgICAgSU9TVCA9IDB4MDAKICAgICAgICAgICAgSWYgKChJ
U1dLID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoXF9TQi5Q
Q0kwLkxQQzAuRUMwLkhLRVkuREhLQykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuSEtFWS5NSEtRICgweDYwNzApCiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFZDTVMgKDB4MDEsIFxfU0Iu
TElELl9MSUQgKCkpCiAgICAgICAgICAgIEFXT04gKDB4MDApCiAgICAgICAgICAgIElmIChD
TVBSKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuU0xQQiwg
MHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgIENNUFIgPSAweDAwCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoXF9TQi5MSUQuX0xJRCAoKSA9PSAweDAwKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChcX1NCLlBDSTAuTFBDMC5FQzAu
QUMuX1BTUiAoKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuSEtFWS5EWVRDICgweDAwMUZBMDAxKQogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5IS0VZLkRZVEMgKDB4MDAwRkEw
MDEpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuSEtFWS5E
WVRDICgweDAwMEZBMDAxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKFdMQUMg
PT0gMHgwMikpIHt9CiAgICAgICAgICAgIEVsc2VJZiAoKFxfU0IuUENJMC5MUEMwLkVDMC5F
TE5LICYmIChXTEFDID09IDB4MDEpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
XF9TQi5QQ0kwLkxQQzAuRUMwLkRDV0wgPSAweDAwCiAgICAgICAgICAgIH0KICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5F
QzAuRENXTCA9IDB4MDEKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKChB
cmcwID09IDB4MDQpKQogICAgICAgIHsKICAgICAgICAgICAgTlZTUyAoMHgwMCkKICAgICAg
ICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkhTUEEgPSAweDAwCiAgICAgICAgICAgIFxfU0Iu
UENJMC5MUEMwLkVDMC5BVE1DICgpCiAgICAgICAgICAgIElPRU4gPSAweDAwCiAgICAgICAg
ICAgIElPU1QgPSAweDAwCiAgICAgICAgICAgIElmICgoSVNXSyA9PSAweDAyKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgSWYgKFxfU0IuUENJMC5MUEMwLkVDMC5IS0VZLkRI
S0MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQ
QzAuRUMwLkhLRVkuTUhLUSAoMHg2MDgwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBJZiAoKFdMQUMgPT0gMHgwMikpIHt9CiAgICAgICAgICAgIEVs
c2VJZiAoKFxfU0IuUENJMC5MUEMwLkVDMC5FTE5LICYmIChXTEFDID09IDB4MDEpKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkRDV0wgPSAw
eDAwCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuRENXTCA9IDB4MDEKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgSWYgKChIQVVGICE9IDB4MDApKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuSEFVTSA9IEhBVUYgLyogXEhBVUYgKi8K
ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkJB
VFcgKEFyZzApCiAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkhLRVkuV0dXSyAoQXJnMCkK
ICAgICAgICBOb3RpZnkgKFxfVFouVEhNMCwgMHg4MCkgLy8gVGhlcm1hbCBTdGF0dXMgQ2hh
bmdlCiAgICAgICAgVlNMRCAoXF9TQi5MSUQuX0xJRCAoKSkKICAgICAgICBJZiAoKFxfU0Iu
TElELl9MSUQgKCkgPT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKFxfU0Iu
UENJMC5MUEMwLkVDMC5BQy5fUFNSICgpID09IDB4MDApKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuSEtFWS5EWVRDICgweDAwMUZBMDAxKQog
ICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkhLRVkuRFlUQyAoMHgwMDBGQTAwMSkKICAgICAg
ICAgICAgfQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewogICAgICAgICAgICBc
X1NCLlBDSTAuTFBDMC5FQzAuSEtFWS5EWVRDICgweDAwMEZBMDAxKQogICAgICAgIH0KCiAg
ICAgICAgSWYgKChBcmcwIDwgMHgwNCkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKChS
UkJGICYgMHgwMikgfHwgKFxfU0IuUENJMC5MUEMwLkVDMC5IV0FDICYgMHgwMikpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQXJnMCA8PCAweDA4KQogICAg
ICAgICAgICAgICAgTG9jYWwwID0gKDB4MjAxMyB8IExvY2FsMCkKICAgICAgICAgICAgICAg
IFxfU0IuUENJMC5MUEMwLkVDMC5IS0VZLk1IS1EgKExvY2FsMCkKICAgICAgICAgICAgfQog
ICAgICAgIH0KCiAgICAgICAgSWYgKChBcmcwID09IDB4MDQpKQogICAgICAgIHsKICAgICAg
ICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICBMb2NhbDEgPSBDU1VNICgweDAwKQog
ICAgICAgICAgICBJZiAoKExvY2FsMSAhPSBDSEtDKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTG9jYWwwID0gMHgwMQogICAgICAgICAgICAgICAgQ0hLQyA9IExvY2FsMQog
ICAgICAgICAgICB9CgogICAgICAgICAgICBMb2NhbDEgPSBDU1VNICgweDAxKQogICAgICAg
ICAgICBJZiAoKExvY2FsMSAhPSBDSEtFKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTG9jYWwwID0gMHgwMQogICAgICAgICAgICAgICAgQ0hLRSA9IExvY2FsMQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBJZiAoTG9jYWwwKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBOb3RpZnkgKF9TQiwgMHgwMCkgLy8gQnVzIENoZWNrCiAgICAgICAgICAgIH0K
ICAgICAgICB9CgogICAgICAgIElmICgoKEFyZzAgPT0gMHgwMykgfHwgKEFyZzAgPT0gMHgw
NCkpKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKEg4RFIpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIExvY2FsMCA9IFxfU0IuUENJMC5MUEMwLkVDMC5UU0wwCiAgICAgICAg
ICAgICAgICBMb2NhbDEgPSBcX1NCLlBDSTAuTFBDMC5FQzAuVFNMMQogICAgICAgICAgICB9
CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWww
ID0gKFJCRUMgKDB4ODgpICYgMHg3RikKICAgICAgICAgICAgICAgIExvY2FsMSA9IChSQkVD
ICgweDg5KSAmIDB4N0YpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoTG9jYWwx
ICYgMHg3NykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUEMw
LkVDMC5IS0VZLkRZVEMgKDB4MDAxRjQwMDEpCiAgICAgICAgICAgIH0KICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAu
SEtFWS5EWVRDICgweDAwMEY0MDAxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAo
KExvY2FsMCAmIDB4NzYpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBcX1NCLlBD
STAuTFBDMC5FQzAuSEtFWS5EWVRDICgweDAwMUZFMDAxKQogICAgICAgICAgICB9CiAgICAg
ICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQ
QzAuRUMwLkhLRVkuRFlUQyAoMHgwMDBGRTAwMSkKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkhLRVkuRFlUQyAoMHg4MDBGMDAwMSkKICAgICAgICB9
CgogICAgICAgIFJSQkYgPSBaZXJvCiAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfV0FLIEVu
ZCBSZXR1cm4gJVhcbiIsIFdBS0ksIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAg
ICAgICAgUmV0dXJuIChXQUtJKSAvKiBcV0FLSSAqLwogICAgfQoKICAgIFNjb3BlIChfU0Ip
CiAgICB7CiAgICAgICAgRGV2aWNlIChQV1JCKQogICAgICAgIHsKICAgICAgICAgICAgTmFt
ZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwQyIpIC8qIFBvd2VyIEJ1dHRvbiBEZXZpY2UgKi8p
ICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5v
dFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuUFdSQi5fU1RBID0gMHhCXG4iLCBaZXJvLCBa
ZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgUmV0dXJuICgw
eDBCKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFBDSTApCiAg
ICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQTA4IikgLyog
UENJIEV4cHJlc3MgQnVzICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg
TmFtZSAoX0NJRCwgRWlzYUlkICgiUE5QMEEwMyIpIC8qIFBDSSBCdXMgKi8pICAvLyBfQ0lE
OiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6
IFVuaXF1ZSBJRAogICAgICAgICAgICBOYW1lIChfQkJOLCBaZXJvKSAgLy8gX0JCTjogQklP
UyBCdXMgTnVtYmVyCiAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBB
ZGRyZXNzCiAgICAgICAgICAgIE11dGV4IChNR0NDLCAweDAwKQogICAgICAgICAgICBNZXRo
b2QgKE9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIElmICgoX1JFViA+PSAweDAyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBIOERSID0gMHgwMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IE9TSUYgPSAweDAxCiAgICAgICAgICAgICAgICBeTFBDMC5NT1UuTUhJRCAoKQogICAgICAg
ICAgICAgICAgSWYgKChUUE9TID09IDB4ODApKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIF5MUEMwLkVDMC5TQVVNICgweDAyKQogICAgICAgICAgICAgICAgICAg
IFNDTVMgKDB4MUMpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKEg4
RFIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gXkxQ
QzAuRUMwLlRTTDAgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uVFNMMCAqLwogICAgICAgICAg
ICAgICAgICAgIExvY2FsMSA9IF5MUEMwLkVDMC5UU0wxIC8qIFxfU0JfLlBDSTAuTFBDMC5F
QzBfLlRTTDEgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoUkJFQyAoMHg4
OCkgJiAweDdGKQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IChSQkVDICgweDg5KSAm
IDB4N0YpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEg
JiAweDc3KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBeTFBDMC5F
QzAuSEtFWS5EWVRDICgweDAwMUY0MDAxKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIF5MUEMw
LkVDMC5IS0VZLkRZVEMgKDB4MDAwRjQwMDEpCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgSWYgKChMb2NhbDAgJiAweDc2KSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBeTFBDMC5FQzAuSEtFWS5EWVRDICgweDAwMUZFMDAxKQogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIF5MUEMwLkVDMC5IS0VZLkRZVEMgKDB4MDAwRkUwMDEpCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgXkxQQzAuRUMwLkhLRVkuRFlUQyAoMHg4
MDBGMDAwMSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoUzRSRiwgMHgwMCkK
ICAgICAgICAgICAgTmFtZSAoUzRFRiwgMHgwMCkKICAgICAgICAgICAgTWV0aG9kIChTNFJT
LCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTNFJGID0g
QXJnMAogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFM0U1MsIDEsIFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFM0RUYgPSBBcmcwCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkg
IC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2
MCAoIlBMQS1BU0wtXFxfU0IuUENJMC5fSU5JIFN0YXJ0XG4iLCBaZXJvLCBaZXJvLCBaZXJv
LCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgSWYgKChHUElDICE9IFplcm8p
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNM
LVxcX1NCLlBDSTAuX0lOSSBjYWxsIFxcX1NCLkRTUElcbiIsIFplcm8sIFplcm8sIFplcm8s
IFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICAgICAgRFNQSSAoKQogICAgICAg
ICAgICAgICAgICAgIElmIChOQVBDKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuUENJMC5fSU5JIGNhbGwgXFxf
U0IuUENJMC5OQVBFXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQog
ICAgICAgICAgICAgICAgICAgICAgICBOQVBFICgpCiAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NC
LlBDSTAuX0lOSSBjYWxsIFxcT1NUUFxuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVy
bywgWmVybykKICAgICAgICAgICAgICAgIE9TVFAgKCkKICAgICAgICAgICAgICAgIE9JTkkg
KCkKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLlBDSTAuX0lOSSBFbmRc
biIsIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE5hbWUgKFNVUFAsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKENUUkws
IFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX09TQywgNCwgTm90U2VyaWFsaXplZCkgIC8v
IF9PU0M6IE9wZXJhdGluZyBTeXN0ZW0gQ2FwYWJpbGl0aWVzCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzAsIDB4MDAsIFVJRDApCiAgICAg
ICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmczLCAweDAwLCBDRFcxKQogICAgICAg
ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMywgMHgwNCwgQ0RXMikKICAgICAgICAg
ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzMsIDB4MDgsIENEVzMpCiAgICAgICAgICAg
ICAgICBJZiAoKEFyZzIgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuUENJMC5fT1NDIFVVSUQgMHglWCBTdGFy
dCAgQ0RXMSA9IDB4JVhcbiIsIFVJRDAsIENEVzEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcyID09IDB4
MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IENE
VzIgLyogXF9TQl8uUENJMC5fT1NDLkNEVzIgKi8KICAgICAgICAgICAgICAgICAgICBNNDYw
ICgiUExBLUFTTC1cXF9TQi5QQ0kwLl9PU0MgVVVJRCAweCVYIFN0YXJ0ICBDRFcxID0gMHgl
WCBDRFcyID0gMHglWFxuIiwgVUlEMCwgQ0RXMSwgQ0RXMiwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSBDRFczIC8qIFxfU0JfLlBDSTAuX09T
Qy5DRFczICovCiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuUENJ
MC5fT1NDIFVVSUQgMHglWCBTdGFydCAgQ0RXMSA9IDB4JVggQ0RXMiA9IDB4JVggQ0RXMyA9
IDB4JVhcbiIsIFVJRDAsIENEVzEsIENEVzIsIENEVzMsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjMzZGI0
ZDViLTFmZjctNDAxYy05NjU3LTc0NDFjMDNkZDc2NiIpIC8qIFBDSSBIb3N0IEJyaWRnZSBE
ZXZpY2UgKi8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNVUFAg
PSBDRFcyIC8qIFxfU0JfLlBDSTAuX09TQy5DRFcyICovCiAgICAgICAgICAgICAgICAgICAg
Q1RSTCA9IENEVzMgLyogXF9TQl8uUENJMC5fT1NDLkNEVzMgKi8KICAgICAgICAgICAgICAg
ICAgICBJZiAoKFRCRU4gPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBJZiAoKFRCTkggIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENUUkwgJj0gMHhGRkZGRkZG
NQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVs
c2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ1RSTCAmPSAweEZGRkZGRkY0CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoKFNVUFAgJiAweDE2
KSAhPSAweDE2KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIENUUkwgJj0gMHhGRkZGRkZGRQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgQ1RSTCAmPSAweEZGRkZGRkY1CiAgICAgICAgICAgICAgICAgICAgSWYg
KH4oQ0RXMSAmIDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgSWYgKChDVFJMICYgMHgwMSkpIHt9CiAgICAgICAgICAgICAgICAgICAgICAg
IElmICgoQ1RSTCAmIDB4MDQpKSB7fQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKENU
UkwgJiAweDEwKSkge30KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgIElmICgoQXJnMSAhPSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgQ0RXMSB8PSAweDA4CiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBJZiAoKENEVzMgIT0gQ1RSTCkpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBDRFcxIHw9IDB4MTAKICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIENEVzMgPSBDVFJMIC8qIFxfU0JfLlBD
STAuQ1RSTCAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENEVzEgfD0gMHgwNAogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAxKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9TQi5Q
Q0kwLl9PU0MgVVVJRCAweCVYIFJldHVybiBDRFcxID0gMHglWFxuIiwgVUlEMCwgQ0RXMSwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIEVsc2VJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuUENJMC5fT1NDIFVVSUQgMHglWCBS
ZXR1cm4gQ0RXMSA9IDB4JVggQ0RXMiA9IDB4JVhcbiIsIFVJRDAsIENEVzEsIENEVzIsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNl
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wt
XFxfU0IuUENJMC5fT1NDIFVVSUQgMHglWCBSZXR1cm4gQ0RXMSA9IDB4JVggQ0RXMiA9IDB4
JVggQ0RXMyA9IDB4JVhcbiIsIFVJRDAsIENEVzEsIENEVzIsIENEVzMsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChBcmczKQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChQQ1JGLCBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFdvcmRJTyAoUmVzb3VyY2VQcm9kdWNl
ciwgTWluRml4ZWQsIE1heEZpeGVkLCBQb3NEZWNvZGUsIEVudGlyZVJhbmdlLAogICAgICAg
ICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAg
ICAgICAgICAgICAgICAgICAweDBDRjcsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0K
ICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFRyYW5zbGF0aW9u
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MENGOCwgICAgICAgICAgICAgLy8gTGVu
Z3RoCiAgICAgICAgICAgICAgICAgICAgLCwgLCBUeXBlU3RhdGljLCBEZW5zZVRyYW5zbGF0
aW9uKQogICAgICAgICAgICAgICAgV29yZElPIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhl
ZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFuZ2UsCiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAg
ICAgIDB4MEQwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg
ICAgICAgIDB4MEZGRiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAg
ICAgICAgICAgICAgICAgICAgMHgwMzAwLCAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAg
ICAgICAgICAgICAgICAsLCAsIFR5cGVTdGF0aWMsIERlbnNlVHJhbnNsYXRpb24pCiAgICAg
ICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgU3ViRGVjb2RlLCBN
aW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAg
ICAgICAgICAgICAweEZFQzAwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg
ICAgICAgICAgICAgICAweEZFQzAxRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDAsICAgICAgICAgLy8gTGVuZ3Ro
CiAgICAgICAgICAgICAgICAgICAgLCwgLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0
aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgU3Vi
RGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwgUmVhZFdyaXRlLAog
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkK
ICAgICAgICAgICAgICAgICAgICAweEZFRDQ1MDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmlt
dW0KICAgICAgICAgICAgICAgICAgICAweEZFRDgxMUZGLCAgICAgICAgIC8vIFJhbmdlIE1h
eGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5z
bGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwM0MyMDAsICAgICAgICAg
Ly8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgLCBBZGRyZXNzUmFuZ2VNZW1vcnks
IFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9k
dWNlciwgU3ViRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwgUmVh
ZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3Jh
bnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweEZFRDgxOTAwLCAgICAgICAgIC8vIFJh
bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweEZFRDgxRkZGLCAgICAgICAgIC8v
IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAg
IC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDA3MDAs
ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgLCBBZGRyZXNzUmFu
Z2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVz
b3VyY2VQcm9kdWNlciwgU3ViRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hl
YWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAg
ICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweEZFREMwMDAwLCAgICAg
ICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweEZFREMwRkZGLCAg
ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
LCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4
MDAwMDEwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgLCBB
ZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1l
bW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgU3ViRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQs
IE5vbkNhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweEZFREM2
MDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweEZF
REM2RkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg
ICAgLCwgLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAg
ICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgU3ViRGVjb2RlLCBNaW5GaXhlZCwg
TWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAg
ICAweEZFRTAxMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg
ICAgICAweEZGRkZGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAg
ICAgICAgICAgICAgICAgIDB4MDExRkYwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg
ICAgICAgICAgICAgLCwgLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAg
ICAgICAgIH0pCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoSzhTVCwgU3lzdGVtTWVt
b3J5LCAweDFCQjIzQjk4LCAweDAwMDAwMDkwKQogICAgICAgICAgICBGaWVsZCAoSzhTVCwg
QW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBDMF8wLCAgIDE2LCAKICAgICAgICAgICAgICAgIEMyXzAsICAgMTYsIAogICAgICAgICAg
ICAgICAgQzRfMCwgICAxNiwgCiAgICAgICAgICAgICAgICBDNl8wLCAgIDE2LCAKICAgICAg
ICAgICAgICAgIEM4XzAsICAgMTYsIAogICAgICAgICAgICAgICAgQ0FfMCwgICAxNiwgCiAg
ICAgICAgICAgICAgICBDQ18wLCAgIDE2LCAKICAgICAgICAgICAgICAgIENFXzAsICAgMTYs
IAogICAgICAgICAgICAgICAgRDBfMCwgICAxNiwgCiAgICAgICAgICAgICAgICBEMl8wLCAg
IDE2LCAKICAgICAgICAgICAgICAgIEQ0XzAsICAgMTYsIAogICAgICAgICAgICAgICAgRDZf
MCwgICAxNiwgCiAgICAgICAgICAgICAgICBEOF8wLCAgIDE2LCAKICAgICAgICAgICAgICAg
IERBXzAsICAgMTYsIAogICAgICAgICAgICAgICAgRENfMCwgICAxNiwgCiAgICAgICAgICAg
ICAgICBERV8wLCAgIDE2LCAKICAgICAgICAgICAgICAgIEUwXzAsICAgMTYsIAogICAgICAg
ICAgICAgICAgRTJfMCwgICAxNiwgCiAgICAgICAgICAgICAgICBFNF8wLCAgIDE2LCAKICAg
ICAgICAgICAgICAgIEU2XzAsICAgMTYsIAogICAgICAgICAgICAgICAgRThfMCwgICAxNiwg
CiAgICAgICAgICAgICAgICBFQV8wLCAgIDE2LCAKICAgICAgICAgICAgICAgIEVDXzAsICAg
MTYsIAogICAgICAgICAgICAgICAgRUVfMCwgICAxNiwgCiAgICAgICAgICAgICAgICBGMF8w
LCAgIDE2LCAKICAgICAgICAgICAgICAgIEYyXzAsICAgMTYsIAogICAgICAgICAgICAgICAg
RjRfMCwgICAxNiwgCiAgICAgICAgICAgICAgICBGNl8wLCAgIDE2LCAKICAgICAgICAgICAg
ICAgIEY4XzAsICAgMTYsIAogICAgICAgICAgICAgICAgRkFfMCwgICAxNiwgCiAgICAgICAg
ICAgICAgICBGQ18wLCAgIDE2LCAKICAgICAgICAgICAgICAgIEZFXzAsICAgMTYsIAogICAg
ICAgICAgICAgICAgVE9NTCwgICAzMiwgCiAgICAgICAgICAgICAgICBUT01ILCAgIDMyLCAK
ICAgICAgICAgICAgICAgIFBDSUIsICAgMzIsIAogICAgICAgICAgICAgICAgUENJUywgICAz
MiwgCiAgICAgICAgICAgICAgICBUMU1OLCAgIDY0LCAKICAgICAgICAgICAgICAgIFQxTVgs
ICAgNjQsIAogICAgICAgICAgICAgICAgVDFMTiwgICA2NCwgCiAgICAgICAgICAgICAgICBU
Mk1OLCAgIDY0LCAKICAgICAgICAgICAgICAgIFQyTVgsICAgNjQsIAogICAgICAgICAgICAg
ICAgVDJMTiwgICA2NCwgCiAgICAgICAgICAgICAgICBNTTFCLCAgIDMyLCAKICAgICAgICAg
ICAgICAgIE1NMVMsICAgMzIsIAogICAgICAgICAgICAgICAgQlBDQiwgICAzMiwgCiAgICAg
ICAgICAgICAgICBCUENTLCAgIDMyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUg
KFJTUkMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgV29yZEJ1c051bWJlciAoUmVzb3VyY2VQcm9kdWNlciwgTWluRml4ZWQsIE1heEZpeGVk
LCBTdWJEZWNvZGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAv
LyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAg
Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDBGRiwgICAgICAgICAg
ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAg
ICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMTAw
LCAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAweDAwLCwgX1kw
MSkKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBTdWJE
ZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQog
ICAgICAgICAgICAgICAgICAgIDB4MDAwQTAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11
bQogICAgICAgICAgICAgICAgICAgIDB4MDAwQkZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4
aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNs
YXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAv
LyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAweDAwLCwgLCBBZGRyZXNzUmFuZ2VNZW1v
cnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQ
cm9kdWNlciwgU3ViRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwg
UmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8g
R3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMEMwMDAwLCAgICAgICAgIC8v
IFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMEMxRkZGLCAgICAgICAg
IC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg
ICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDIw
MDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwsICwgQWRk
cmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1v
cnkgKFJlc291cmNlUHJvZHVjZXIsIFN1YkRlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBO
b25DYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
LCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBDMjAw
MCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBD
M0ZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAg
ICAgICAweDAwMDAyMDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAg
IDB4MDAsLCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAg
ICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBTdWJEZWNvZGUsIE1pbkZpeGVk
LCBNYXhGaXhlZCwgTm9uQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAg
ICAgIDB4MDAwQzQwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg
ICAgICAgIDB4MDAwQzVGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAg
ICAgICAgICAgICAgICAweDAwLCwgLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMp
CiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgU3ViRGVj
b2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAg
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAg
ICAgICAgICAgICAgICAgICAweDAwMEM2MDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0K
ICAgICAgICAgICAgICAgICAgICAweDAwMEM3RkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGlt
dW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0
aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDAsICAgICAgICAgLy8g
TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwsICwgQWRkcmVzc1JhbmdlTWVtb3J5
LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJv
ZHVjZXIsIFN1YkRlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBOb25DYWNoZWFibGUsIFJl
YWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdy
YW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBDODAwMCwgICAgICAgICAvLyBS
YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBDOUZGRiwgICAgICAgICAv
LyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAg
ICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAw
LCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsLCAsIEFkZHJl
c3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5
IChSZXNvdXJjZVByb2R1Y2VyLCBTdWJEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9u
Q2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
ICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwQ0EwMDAs
ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwQ0JG
RkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMjAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAw
eDAwLCwgLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAg
ICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgU3ViRGVjb2RlLCBNaW5GaXhlZCwg
TWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAg
ICAweDAwMENDMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg
ICAgICAweDAwMENERkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAg
ICAgICAgICAgICAgICAgIDB4MDAwMDIwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg
ICAgICAgICAgICAgMHgwMCwsICwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQog
ICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFN1YkRlY29k
ZSwgTWluRml4ZWQsIE1heEZpeGVkLCBOb25DYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDBDRTAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg
ICAgICAgICAgICAgICAgICAgMHgwMDBDRkZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlv
biBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwLCAgICAgICAgIC8vIExl
bmd0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsLCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwg
VHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1
Y2VyLCBTdWJEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVhYmxlLCBSZWFk
V3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFu
dWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwRDAwMDAsICAgICAgICAgLy8gUmFu
Z2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwRDFGRkYsICAgICAgICAgLy8g
UmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAg
Ly8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMCwg
ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAweDAwLCwgLCBBZGRyZXNz
UmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAo
UmVzb3VyY2VQcm9kdWNlciwgU3ViRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNh
Y2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAg
ICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMEQyMDAwLCAg
ICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMEQzRkZG
LCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAw
MDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAg
IDB4MDAwMDIwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgMHgw
MCwsICwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAg
RFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFN1YkRlY29kZSwgTWluRml4ZWQsIE1h
eEZpeGVkLCBOb25DYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAg
MHgwMDBENDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg
ICAgMHgwMDBENUZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAyMDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg
ICAgICAgICAgIDB4MDAsLCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAg
ICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBTdWJEZWNvZGUs
IE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAg
ICAgICAgICAgICAgIDB4MDAwRDYwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg
ICAgICAgICAgICAgICAgIDB4MDAwRDdGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24g
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMCwgICAgICAgICAvLyBMZW5n
dGgKICAgICAgICAgICAgICAgICAgICAweDAwLCwgLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5
cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNl
ciwgU3ViRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwgUmVhZFdy
aXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVs
YXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMEQ4MDAwLCAgICAgICAgIC8vIFJhbmdl
IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMEQ5RkZGLCAgICAgICAgIC8vIFJh
bmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8v
IFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDAsICAg
ICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwsICwgQWRkcmVzc1Jh
bmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJl
c291cmNlUHJvZHVjZXIsIFN1YkRlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBOb25DYWNo
ZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg
ICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBEQTAwMCwgICAg
ICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBEQkZGRiwg
ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAw
MCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAw
eDAwMDAyMDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgIDB4MDAs
LCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERX
b3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBTdWJEZWNvZGUsIE1pbkZpeGVkLCBNYXhG
aXhlZCwgTm9uQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4
MDAwREMwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg
IDB4MDAwRERGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMjAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAg
ICAgICAgICAweDAwLCwgLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAg
ICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgU3ViRGVjb2RlLCBN
aW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAg
ICAgICAgICAgICAweDAwMERFMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg
ICAgICAgICAgICAgICAweDAwMERGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDAsICAgICAgICAgLy8gTGVuZ3Ro
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwsICwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBl
U3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIs
IFN1YkRlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBOb25DYWNoZWFibGUsIFJlYWRXcml0
ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFy
aXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBFMDAwMCwgICAgICAgICAvLyBSYW5nZSBN
aW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBFMUZGRiwgICAgICAgICAvLyBSYW5n
ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBU
cmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwLCAgICAg
ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsLCAsIEFkZHJlc3NSYW5n
ZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNv
dXJjZVByb2R1Y2VyLCBTdWJEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVh
YmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAg
ICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwRTIwMDAsICAgICAg
ICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwRTNGRkYsICAg
ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
ICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMjAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAweDAwLCwg
LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29y
ZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgU3ViRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4
ZWQsIE5vbkNhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAw
MEU0MDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAw
eDAwMEU1RkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAg
ICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDIwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg
ICAgICAgMHgwMCwsICwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAg
ICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFN1YkRlY29kZSwgTWlu
Rml4ZWQsIE1heEZpeGVkLCBOb25DYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAg
ICAgICAgICAgMHgwMDBFNjAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAg
ICAgICAgICAgICAgMHgwMDBFN0ZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZz
ZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAyMDAwLCAgICAgICAgIC8vIExlbmd0aAog
ICAgICAgICAgICAgICAgICAgIDB4MDAsLCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0
YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBT
dWJEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVhYmxlLCBSZWFkV3JpdGUs
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0
eQogICAgICAgICAgICAgICAgICAgIDB4MDAwRTgwMDAsICAgICAgICAgLy8gUmFuZ2UgTWlu
aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwRTlGRkYsICAgICAgICAgLy8gUmFuZ2Ug
TWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJh
bnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMCwgICAgICAg
ICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAweDAwLCwgLCBBZGRyZXNzUmFuZ2VN
ZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3Vy
Y2VQcm9kdWNlciwgU3ViRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJs
ZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAg
Ly8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMEVBMDAwLCAgICAgICAg
IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMEVCRkZGLCAgICAg
ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAg
ICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAw
MDIwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwsICwg
QWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRN
ZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFN1YkRlY29kZSwgTWluRml4ZWQsIE1heEZpeGVk
LCBOb25DYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAw
MDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBF
QzAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgw
MDBFREZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAweDAwMDAyMDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsLCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAg
ICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBTdWJEZWNvZGUsIE1pbkZp
eGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAg
ICAgICAgIDB4MDAwRUUwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAg
ICAgICAgICAgIDB4MDAwRUZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMCwgICAgICAgICAvLyBMZW5ndGgKICAg
ICAgICAgICAgICAgICAgICAweDAwLCwgLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0
aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgU3Vi
RGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwgUmVhZFdyaXRlLAog
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkK
ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmlt
dW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1h
eGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5z
bGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAg
Ly8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwsIF9ZMDIsIEFkZHJlc3NSYW5n
ZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNv
dXJjZVByb2R1Y2VyLCBTdWJEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVh
YmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAg
ICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4RjQwMDAwMDAsICAgICAg
ICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4RkVCRkZGRkYsICAg
ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
ICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
QUMwMDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAweDAwLCwg
X1kwMywgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAg
UVdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1h
eEZpeGVkLCBOb25DYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwMDAwMDAwMDAsIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAg
MHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIExlbmd0aAogICAgICAgICAg
ICAgICAgICAgICwsIF9ZMDQsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAg
ICAgICAgICAgICAgIFFXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUs
IE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBHcmFudWxhcml0eQogICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gUmFuZ2UgTWluaW11bQogICAg
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gUmFuZ2UgTWF4aW11bQog
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gVHJhbnNsYXRpb24g
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBMZW5n
dGgKICAgICAgICAgICAgICAgICAgICAsLCBfWTA1LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5
cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg
ICAgICAgMHgwQ0Y4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAg
ICAgICAgICAgMHgwQ0Y4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAg
ICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg
ICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAg
ICAgICAgICkKICAgICAgICAgICAgICAgIFdvcmRJTyAoUmVzb3VyY2VQcm9kdWNlciwgTWlu
Rml4ZWQsIE1heEZpeGVkLCBQb3NEZWNvZGUsIEVudGlyZVJhbmdlLAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAg
ICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg
ICAgICAgICAgICAweDBDRjcsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg
ICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNl
dAogICAgICAgICAgICAgICAgICAgIDB4MENGOCwgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg
ICAgICAgICAgICAgICAgICAgMHgwMCwsICwgVHlwZVN0YXRpYywgRGVuc2VUcmFuc2xhdGlv
bikKICAgICAgICAgICAgICAgIFdvcmRJTyAoUmVzb3VyY2VQcm9kdWNlciwgTWluRml4ZWQs
IE1heEZpeGVkLCBQb3NEZWNvZGUsIEVudGlyZVJhbmdlLAogICAgICAgICAgICAgICAgICAg
IDB4MDAwMCwgICAgICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAg
ICAweDBEMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg
ICAgICAweEZGRkYsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg
ICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAg
ICAgICAgICAgICAgICAgIDB4RjMwMCwgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg
ICAgICAgICAgICAgMHgwMCwsICwgVHlwZVN0YXRpYywgRGVuc2VUcmFuc2xhdGlvbikKICAg
ICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAg
Ly8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFJTUkMsIFxfU0IuUENJMC5fWTAxLl9NQVgs
IFdCMU0pICAvLyBfTUFYOiBNYXhpbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAg
Q3JlYXRlV29yZEZpZWxkIChSU1JDLCBcX1NCLlBDSTAuX1kwMS5fTEVOLCBXQjFMKSAgLy8g
X0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSU1JDLCBc
X1NCLlBDSTAuX1kwMi5fTUlOLCBCVDFTKSAgLy8gX01JTjogTWluaW11bSBCYXNlIEFkZHJl
c3MKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIFxfU0IuUENJMC5f
WTAyLl9NQVgsIEJUMU0pICAvLyBfTUFYOiBNYXhpbXVtIEJhc2UgQWRkcmVzcwogICAgICAg
ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUlNSQywgXF9TQi5QQ0kwLl9ZMDIuX0xFTiwg
QlQxTCkgIC8vIF9MRU46IExlbmd0aAogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs
ZCAoUlNSQywgXF9TQi5QQ0kwLl9ZMDMuX01JTiwgQlQyUykgIC8vIF9NSU46IE1pbmltdW0g
QmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSU1JDLCBc
X1NCLlBDSTAuX1kwMy5fTUFYLCBCVDJNKSAgLy8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJl
c3MKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIFxfU0IuUENJMC5f
WTAzLl9MRU4sIEJUMkwpICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgIFdCMU0g
PSAweEZGCiAgICAgICAgICAgICAgICBXQjFMID0gMHgwMTAwCiAgICAgICAgICAgICAgICBC
VDFTID0gQlBDQiAvKiBcX1NCXy5QQ0kwLkJQQ0IgKi8KICAgICAgICAgICAgICAgIExvY2Fs
MCA9IChCUENCICsgQlBDUykgLyogXF9TQl8uUENJMC5CUENTICovCiAgICAgICAgICAgICAg
ICBCVDFNID0gKExvY2FsMCAtIDB4MDEpCiAgICAgICAgICAgICAgICBCVDFMID0gQlBDUyAv
KiBcX1NCXy5QQ0kwLkJQQ1MgKi8KICAgICAgICAgICAgICAgIEJUMlMgPSBNTTFCIC8qIFxf
U0JfLlBDSTAuTU0xQiAqLwogICAgICAgICAgICAgICAgTG9jYWwwID0gKE1NMUIgKyBNTTFT
KSAvKiBcX1NCXy5QQ0kwLk1NMVMgKi8KICAgICAgICAgICAgICAgIEJUMk0gPSAoTG9jYWww
IC0gMHgwMSkKICAgICAgICAgICAgICAgIEJUMkwgPSBNTTFTIC8qIFxfU0JfLlBDSTAuTU0x
UyAqLwogICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoUlNSQywgXF9TQi5QQ0kw
Ll9ZMDQuX01JTiwgTTFNTikgIC8vIF9NSU46IE1pbmltdW0gQmFzZSBBZGRyZXNzCiAgICAg
ICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChSU1JDLCBcX1NCLlBDSTAuX1kwNC5fTUFY
LCBNMU1YKSAgLy8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAg
IENyZWF0ZVFXb3JkRmllbGQgKFJTUkMsIFxfU0IuUENJMC5fWTA0Ll9MRU4sIE0xTE4pICAv
LyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgIE0xTU4gPSBUMU1OIC8qIFxfU0JfLlBD
STAuVDFNTiAqLwogICAgICAgICAgICAgICAgTTFNWCA9IFQxTVggLyogXF9TQl8uUENJMC5U
MU1YICovCiAgICAgICAgICAgICAgICBNMUxOID0gVDFMTiAvKiBcX1NCXy5QQ0kwLlQxTE4g
Ki8KICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKFJTUkMsIFxfU0IuUENJMC5f
WTA1Ll9NSU4sIE0yTU4pICAvLyBfTUlOOiBNaW5pbXVtIEJhc2UgQWRkcmVzcwogICAgICAg
ICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoUlNSQywgXF9TQi5QQ0kwLl9ZMDUuX01BWCwg
TTJNWCkgIC8vIF9NQVg6IE1heGltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICBD
cmVhdGVRV29yZEZpZWxkIChSU1JDLCBcX1NCLlBDSTAuX1kwNS5fTEVOLCBNMkxOKSAgLy8g
X0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICBNMk1OID0gVDJNTiAvKiBcX1NCXy5QQ0kw
LlQyTU4gKi8KICAgICAgICAgICAgICAgIE0yTVggPSBUMk1YIC8qIFxfU0JfLlBDSTAuVDJN
WCAqLwogICAgICAgICAgICAgICAgTTJMTiA9IFQyTE4gLyogXF9TQl8uUENJMC5UMkxOICov
CiAgICAgICAgICAgICAgICBNNDYwICgiV0JTMSAleCAleCBcbiIsIFdCMU0sIFdCMUwsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBNNDYwICgiQlRTMSAleCAl
eCAleCBcbiIsIEJUMVMsIEJUMU0sIEJUMUwsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgICAgICBNNDYwICgiQlRTMiAleCAleCAleCBcbiIsIEJUMlMsIEJUMk0sIEJUMkwsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBSZXR1cm4gKFJTUkMpIC8qIFxfU0Jf
LlBDSTAuUlNSQyAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKE1FTVIp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBO
UDBDMDIiKSAvKiBQTlAgTW90aGVyYm9hcmQgUmVzb3VyY2VzICovKSAgLy8gX0hJRDogSGFy
ZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKE1FTTEsIFJlc291cmNlVGVtcGxhdGUg
KCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVk
IChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAg
ICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
ICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgX1kw
NikKICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNl
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVz
cyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgX1kwNykKICAgICAgICAgICAgICAg
ICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAg
ICAgICAgICAgICAgICAgX1kwOCkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg
ICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJl
c291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
TTQ2MCAoIlBMQS1BU0wtXFxfU0IuUENJMC5NRU1SLl9DUlMgU3RhcnRcbiIsIFplcm8sIFpl
cm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl
RFdvcmRGaWVsZCAoTUVNMSwgXF9TQi5QQ0kwLk1FTVIuX1kwNi5fQkFTLCBNQjAxKSAgLy8g
X0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs
ZCAoTUVNMSwgXF9TQi5QQ0kwLk1FTVIuX1kwNi5fTEVOLCBNTDAxKSAgLy8gX0xFTjogTGVu
Z3RoCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTUVNMSwgXF9TQi5Q
Q0kwLk1FTVIuX1kwNy5fQkFTLCBNQjAyKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAg
ICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTUVNMSwgXF9TQi5QQ0kwLk1FTVIu
X1kwNy5fTEVOLCBNTDAyKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg
SWYgKEdQSUMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBNQjAxID0gMHhGRUMwMDAwMAogICAgICAgICAgICAgICAgICAgICAgICBNQjAyID0gMHhG
RUUwMDAwMAogICAgICAgICAgICAgICAgICAgICAgICBNTDAxID0gMHgxMDAwCiAgICAgICAg
ICAgICAgICAgICAgICAgIElmIChOQVBDKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBNTDAxICs9IDB4MTAwMAogICAgICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNTDAyID0gMHgxMDAwCiAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZp
ZWxkIChNRU0xLCBcX1NCLlBDSTAuTUVNUi5fWTA4Ll9CQVMsIE1CMDMpICAvLyBfQkFTOiBC
YXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChNRU0x
LCBcX1NCLlBDSTAuTUVNUi5fWTA4Ll9MRU4sIE1MMDMpICAvLyBfTEVOOiBMZW5ndGgKICAg
ICAgICAgICAgICAgICAgICBNQjAzID0gUENJQiAvKiBcX1NCXy5QQ0kwLlBDSUIgKi8KICAg
ICAgICAgICAgICAgICAgICBNTDAzID0gUENJUyAvKiBcX1NCXy5QQ0kwLlBDSVMgKi8KICAg
ICAgICAgICAgICAgICAgICBNNDYwICgiRkVDWCAleCAleCAleCBcbiIsIE1CMDEsIE1MMDEs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIkZF
RVggJXggJXggJXggXG4iLCBNQjAyLCBNTDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQog
ICAgICAgICAgICAgICAgICAgIE00NjAgKCJQTUlCICV4ICV4ICV4IFxuIiwgTUIwMywgTUww
MywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBNNDYwICgi
UExBLUFTTC1cXF9TQi5QQ0kwLk1FTVIuX0NSUyBFbmRcbiIsIFplcm8sIFplcm8sIFplcm8s
IFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChNRU0xKSAv
KiBcX1NCXy5QQ0kwLk1FTVIuTUVNMSAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBNdXRleCAoTkFQTSwgMHgwMCkKICAgICAgICAgICAgTWV0aG9k
IChOQVBFLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBBY3F1aXJlIChOQVBNLCAweEZGRkYpCiAgICAgICAgICAgICAgICBMb2NhbDAgPSAoUENC
QSArIDB4QjgpCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUk0sIFN5c3Rl
bU1lbW9yeSwgTG9jYWwwLCAweDA4KQogICAgICAgICAgICAgICAgRmllbGQgKFZBUk0sIERX
b3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIE5BUFgsICAgMzIsIAogICAgICAgICAgICAgICAgICAgIE5BUEQsICAgMzIK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBOQVBYIC8qIFxf
U0JfLlBDSTAuTkFQRS5OQVBYICovCiAgICAgICAgICAgICAgICBOQVBYID0gMHgxNDMwMDAw
MAogICAgICAgICAgICAgICAgTG9jYWwwID0gTkFQRCAvKiBcX1NCXy5QQ0kwLk5BUEUuTkFQ
RCAqLwogICAgICAgICAgICAgICAgTG9jYWwwICY9IDB4RkZGRkZGRUYKICAgICAgICAgICAg
ICAgIE5BUEQgPSBMb2NhbDAKICAgICAgICAgICAgICAgIE5BUFggPSBMb2NhbDEKICAgICAg
ICAgICAgICAgIFJlbGVhc2UgKE5BUE0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l
dGhvZCAoVVBXRCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgTTQ2MCAoIlBMQS1BU0wtX1NCLlBDSTAuVVBXRFxuIiwgWmVybywgWmVybywgWmVy
bywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo
UFNNSSwgU3lzdGVtSU8sIDB4QjAsIDB4MDIpCiAgICAgICAgICAgICAgICBGaWVsZCAoUFNN
SSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBTTUlDLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFNNSUQsICAg
OAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFNNSUQgPSBBcmcwCiAgICAg
ICAgICAgICAgICBTTUlDID0gSERTSSAvKiBcSERTSSAqLwogICAgICAgICAgICB9CgogICAg
ICAgICAgICBNZXRob2QgKExQV0QsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLV9TQi5QQ0kwLkxQV0RcbiIsIFplcm8s
IFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICBPcGVyYXRp
b25SZWdpb24gKFBTTUksIFN5c3RlbUlPLCAweEIwLCAweDAyKQogICAgICAgICAgICAgICAg
RmllbGQgKFBTTUksIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgU01JQywgICA4LCAKICAgICAgICAgICAgICAgICAg
ICBTTUlELCAgIDgKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTTUlEID0g
QXJnMAogICAgICAgICAgICAgICAgU01JQyA9IEhEU08gLyogXEhEU08gKi8KICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQTTgwLCBTeXN0ZW1NZW1vcnks
IDB4RkVEODAzMDAsIDB4MDEwMCkKICAgICAgICAgICAgRmllbGQgKFBNODAsIEFueUFjYywg
Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT2Zmc2V0
ICgweDgwKSwgCiAgICAgICAgICAgICAgICBTSTNSLCAgIDEKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgTmFtZSAoUFJCMCwgUGFja2FnZSAoMHgxNCkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAweDAwMDFGRkZGLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg
ICAgICAgICAgICAgICAgICBMTktBLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAgICAg
ICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAg
ICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAw
MDFGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAg
ICBMTktDLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAgICAgICAgICAgICAgIDB4MDMs
IAogICAgICAgICAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAgICAgIFplcm8K
ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAg
ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgTE5LRSwgCiAgICAg
ICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAg
ICAgICAgIExOS0YsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAgICAgICAgICAgICAg
MHgwMiwgCiAgICAgICAgICAgICAgICAgICAgTE5LRywgCiAgICAgICAgICAgICAgICAgICAg
WmVybwogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMDJGRkZGLCAK
ICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICBMTktILCAK
ICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIDB4MDAwM0ZGRkYsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg
ICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAgICAgICAgICAg
ICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAg
ICAgICBaZXJvCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZG
RkYsIAogICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgIExO
S0MsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAg
ICAgICAgICAgICAgICAgICAgTE5LRCwgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMDRGRkZGLCAKICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBMTktFLCAKICAgICAgICAg
ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4
MDAwOEZGRkYsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg
ICAgIExOS0EsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgMHgwMDA4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgT25l
LCAKICAgICAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgICAgICBaZXJv
CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwOEZGRkYsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgIExOS0MsIAogICAg
ICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDE0RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg
ICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAweDAwMTRGRkZGLCAKICAgICAgICAgICAgICAgICAg
ICBPbmUsIAogICAgICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgICAg
IFplcm8KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwg
CiAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgTE5LQywg
CiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAweDAwMTRGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAg
ICAgICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKEFSQjAsIFBhY2th
Z2UgKDB4MTQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgCiAg
ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg
ICAgICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAweDAwMDFGRkZGLCAKICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAg
ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAgICAgICAgICAg
ICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg
ICAgMHgxMgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZG
LCAKICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICBaZXJv
LCAKICAgICAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg
ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIDB4MTQKICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAgICAg
ICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg
ICAgICAgICAweDE1CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNr
YWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAw
MkZGRkYsIAogICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAg
IFplcm8sIAogICAgICAgICAgICAgICAgICAgIDB4MTYKICAgICAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgMHgwMywg
CiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgMHgxNwog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGLCAKICAgICAg
ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg
ICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IDB4MDAwM0ZGRkYsIAogICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAg
ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICAgICAg
fSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGLCAKICAgICAgICAgICAgICAgICAgICAw
eDAyLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAw
eDEyCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkYsIAog
ICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog
ICAgICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg
ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgMHgxNAogICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMDhGRkZGLCAKICAgICAgICAgICAgICAg
ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg
ICAgICAweDEwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwOEZG
RkYsIAogICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgWmVy
bywgCiAgICAgICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAweDAwMDhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAg
ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAweDEyCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAxNEZGRkYsIAogICAgICAgICAg
ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg
ICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgw
MDE0RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAg
ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAweDExCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIDB4MDAxNEZGRkYsIAogICAgICAgICAgICAgICAgICAgIDB4MDIs
IAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIDB4MTIK
ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAg
ICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg
ICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQog
ICAgICAgICAgICBOYW1lIChOUkIwLCBQYWNrYWdlICgweDE0KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog
ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIDB4MTgKICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAg
ICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICAweDE5CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4
MDAwMUZGRkYsIAogICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAg
ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIDB4MUEKICAgICAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgMHgw
MywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgMHgx
QgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMDJGRkZGLCAKICAg
ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg
ICAgICAgICAgICAgICAgICAweDFDCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg
ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgMHgxRAogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgICAg
ICAweDAyLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAweDFFCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwMkZGRkYs
IAogICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgIFplcm8s
IAogICAgICAgICAgICAgICAgICAgIDB4MUYKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg
ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgMHgyMAogICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMDNGRkZGLCAKICAgICAgICAgICAg
ICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg
ICAgICAgIDB4MjEKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDAz
RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAg
WmVybywgCiAgICAgICAgICAgICAgICAgICAgMHgyMgogICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAweDAwMDNGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAzLCAK
ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAweDIzCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwNEZGRkYsIAogICAgICAg
ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg
ICAgICAgICAgICAgIDB4MjQKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
MHgwMDA4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg
ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgMHgyOAogICAgICAgICAgICAgICAg
fSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAweDAwMDhGRkZGLCAKICAgICAgICAgICAgICAgICAgICBP
bmUsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIDB4
MjkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDA4RkZGRiwgCiAg
ICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg
ICAgICAgICAgICAgICAgICAgMHgyQQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAweDAwMTRGRkZGLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAxNEZGRkYsIAogICAgICAgICAgICAgICAg
ICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg
ICAgMHgxMQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMTRGRkZG
LCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICBaZXJv
LCAKICAgICAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIDB4MDAxNEZGRkYsIAogICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAg
ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIDB4MTMKICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfUFJULCAw
LCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFibGUKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKE5SQjApIC8qIFxfU0JfLlBDSTAuTlJCMCAqLwog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSQjApIC8q
IFxfU0JfLlBDSTAuQVJCMCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKFBSQjApIC8qIFxfU0JfLlBDSTAuUFJCMCAqLwogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEdQUDApCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMTAwMDEpICAv
LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFdLUE0gPT0gMHgwMSkpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiUExBLUFT
TC1cXF9TQi5QQ0kwLkdQUDAuX1BSVyBSZXR1cm4gR1BSVyAoMHg4LCAweDQpXG4iLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKEdQUlcgKDB4MDgsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9TQi5QQ0kwLkdQUDAuX1BSVyBSZXR1
cm4gR1BSVyAoMHg4LCAweDApXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MDgsIDB4MDAp
KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBOYW1lIChQUjAwLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg
ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgICAgICAgICBa
ZXJvCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAg
ICBMTktELCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChBUjAwLCBQ
YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKICAg
ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG
RiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDExCiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChOUjAwLCBQYWNrYWdlICgweDA0KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg
ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVy
bywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgKICAgICAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDE5CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MUEKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAg
ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgx
QgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg
ICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91
dGluZyBUYWJsZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQ
SUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KE5BUEMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoTlIwMCkgLyogXF9TQl8uUENJMC5HUFAwLk5SMDAgKi8KICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
biAoQVIwMCkgLyogXF9TQl8uUENJMC5HUFAwLkFSMDAgKi8KICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNl
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KFBSMDApIC8qIFxfU0JfLlBDSTAuR1BQMC5QUjAwICovCiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2Ug
KEdQUDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAw
MTAwMDIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBOYW1lIChQUjAxLCBQ
YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgTE5LRSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAg
ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG
RiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIExOS0YsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LRywg
CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBMTktILCAKICAgICAgICAg
ICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChBUjAxLCBQYWNrYWdlICgweDA0KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg
ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVy
bywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKICAgICAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDE1CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MTYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAg
ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgx
NwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg
ICAgICBOYW1lIChOUjAxLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg
ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MUMKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDFECiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MUUKICAgICAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAg
ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxRgogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQs
IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTlIw
MSkgLyogXF9TQl8uUENJMC5HUFAxLk5SMDEgKi8KICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIwMSkgLyogXF9TQl8u
UENJMC5HUFAxLkFSMDEgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMDEpIC8qIFxfU0JfLlBD
STAuR1BQMS5QUjAxICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEdQUDIpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMTAwMDMpICAvLyBfQURSOiBB
ZGRyZXNzCiAgICAgICAgICAgICAgICBOYW1lIChQUjAyLCBQYWNrYWdlICgweDA0KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg
ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5L
QSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAg
ICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICAg
ICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAg
ICAgICAgICAgICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVy
bwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg
ICAgICBOYW1lIChBUjAyLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg
ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDExCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKICAgICAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAg
ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChOUjAyLCBQ
YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAKICAg
ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG
RiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDIxCiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIKICAgICAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgyMwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQp
ICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTlIwMikgLyogXF9TQl8uUENJMC5H
UFAyLk5SMDIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoQVIwMikgLyogXF9TQl8uUENJMC5HUFAyLkFSMDIgKi8K
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKFBSMDIpIC8qIFxfU0JfLlBDSTAuR1BQMi5QUjAyICovCiAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBEZXZpY2UgKEdQUDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IE5hbWUgKF9BRFIsIDB4MDAwMTAwMDQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg
ICAgICBOYW1lIChQUjAzLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg
ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LRSwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIExOS0YsIAogICAgICAgICAgICAgICAgICAgICAgICBa
ZXJvCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgTE5LRywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAg
ICBMTktILCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChBUjAzLCBQ
YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKICAg
ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG
RiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDE1CiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKICAgICAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgxNwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChOUjAzLCBQYWNrYWdlICgweDA0KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg
ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVy
bywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQKICAgICAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDI1CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MjYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAg
ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgy
NwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg
ICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91
dGluZyBUYWJsZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQ
SUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KE5BUEMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoTlIwMykgLyogXF9TQl8uUENJMC5HUFAzLk5SMDMgKi8KICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
biAoQVIwMykgLyogXF9TQl8uUENJMC5HUFAzLkFSMDMgKi8KICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNl
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KFBSMDMpIC8qIFxfU0JfLlBDSTAuR1BQMy5QUjAzICovCiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2Ug
KEdQUDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAw
MTAwMDUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBOYW1lIChQUjA0LCBQ
YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAg
ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG
RiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIExOS0IsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LQywg
CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBMTktELCAKICAgICAgICAg
ICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChBUjA0LCBQYWNrYWdlICgweDA0KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg
ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVy
bywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDExCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MTIKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAg
ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgx
MwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg
ICAgICBOYW1lIChOUjA0LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg
ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MjgKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDI5CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkEKICAgICAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAg
ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyQgogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQs
IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTlIw
NCkgLyogXF9TQl8uUENJMC5HUFA0Lk5SMDQgKi8KICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIwNCkgLyogXF9TQl8u
UENJMC5HUFA0LkFSMDQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMDQpIC8qIFxfU0JfLlBD
STAuR1BQNC5QUjA0ICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEdQUDUpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMjAwMDEpICAvLyBfQURSOiBB
ZGRyZXNzCiAgICAgICAgICAgICAgICBOYW1lIChQUjA2LCBQYWNrYWdlICgweDA0KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg
ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5L
RSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIExOS0YsIAogICAgICAg
ICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LRywgCiAgICAgICAgICAgICAgICAg
ICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAg
ICAgICAgICAgICAgICAgICAgICBMTktILCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVy
bwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg
ICAgICBOYW1lIChBUjA2LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg
ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MTQKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDE1CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKICAgICAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAg
ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxNwogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChOUjA2LCBQ
YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkMKICAg
ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG
RiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDJECiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkUKICAgICAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgyRgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQp
ICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTlIwNikgLyogXF9TQl8uUENJMC5H
UFA1Lk5SMDYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoQVIwNikgLyogXF9TQl8uUENJMC5HUFA1LkFSMDYgKi8K
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKFBSMDYpIC8qIFxfU0JfLlBDSTAuR1BQNS5QUjA2ICovCiAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IERldmljZSAoUlRMOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO
YW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIERldmljZSAoUlVTQikKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA0KSAgLy8gX0FEUjogQWRkcmVzcwogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEdQUDYp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMjAwMDIp
ICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBOYW1lIChQUjA3LCBQYWNrYWdl
ICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAw
eEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgTE5LRywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIExO
S0gsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAg
fSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LRSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBMTktGLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0p
CiAgICAgICAgICAgICAgICBOYW1lIChBUjA3LCBQYWNrYWdlICgweDA0KQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAg
ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MTYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg
ICAgICAgICAgICAweDE3CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MTQKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAg
ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBO
YW1lIChOUjA3LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJv
LCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MkUKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg
UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDJGCiAg
ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZG
RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkMKICAgICAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJv
LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyRAogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5v
dFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTlIwNykgLyog
XF9TQl8uUENJMC5HUFA2Lk5SMDcgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIwNykgLyogXF9TQl8uUENJMC5H
UFA2LkFSMDcgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMDcpIC8qIFxfU0JfLlBDSTAuR1BQ
Ni5QUjA3ICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEdQUDcpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMjAwMDMpICAvLyBfQURSOiBBZGRyZXNz
CiAgICAgICAgICAgICAgICBOYW1lIChQUjA4LCBQYWNrYWdlICgweDA0KQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAg
ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LRywgCiAg
ICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIExOS0gsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgTE5LRSwgCiAgICAgICAgICAgICAgICAgICAgICAg
IFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAg
ICAgICAgICAgICAgICBMTktGLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBO
YW1lIChBUjA4LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJv
LCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MTYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg
UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDE3CiAg
ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZG
RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKICAgICAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJv
LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChOUjA4LCBQYWNrYWdl
ICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAw
eEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkUKICAgICAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFpl
cm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDJGCiAgICAgICAgICAgICAgICAgICAg
fSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MkMKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgyRAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0p
CiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf
UFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoTlIwOCkgLyogXF9TQl8uUENJMC5HUFA3Lk5S
MDggKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoQVIwOCkgLyogXF9TQl8uUENJMC5HUFA3LkFSMDggKi8KICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKFBSMDgpIC8qIFxfU0JfLlBDSTAuR1BQNy5QUjA4ICovCiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmlj
ZSAoREVWMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChf
QURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEdQUDgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMjAwMDQpICAvLyBfQURSOiBBZGRyZXNzCiAg
ICAgICAgICAgICAgICBOYW1lIChQUjA5LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LQywgCiAgICAg
ICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAg
ICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFpl
cm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg
ICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1l
IChBUjA5LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MTIKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDEzCiAgICAg
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYs
IAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChOUjA5LCBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZG
RkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkEKICAgICAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s
IAogICAgICAgICAgICAgICAgICAgICAgICAweDJCCiAgICAgICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MjgKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgyOQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAg
ICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJU
OiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoTlIwOSkgLyogXF9TQl8uUENJMC5HUFA4Lk5SMDkg
Ki8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoQVIwOSkgLyogXF9TQl8uUENJMC5HUFA4LkFSMDkgKi8KICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKFBSMDkpIC8qIFxfU0JfLlBDSTAuR1BQOC5QUjA5ICovCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBEZXZpY2UgKEdQUDkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9B
RFIsIDB4MDAwMjAwMDUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBOYW1l
IChQUjEwLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgTE5LRywgCiAgICAgICAgICAgICAgICAgICAgICAg
IFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIExOS0gsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAg
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYs
IAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgTE5LRSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBMTktGLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChBUjEwLCBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZG
RkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKICAgICAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s
IAogICAgICAgICAgICAgICAgICAgICAgICAweDE3CiAgICAgICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MTQKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgxNQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAg
ICAgICAgICAgICAgICBOYW1lIChOUjEwLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MjYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDI3CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MjQKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyNQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRo
b2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJs
ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE5BUEMpCiAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoTlIxMCkgLyogXF9TQl8uUENJMC5HUFA5Lk5SMTAgKi8KICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIxMCkg
LyogXF9TQl8uUENJMC5HUFA5LkFSMTAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMTApIC8q
IFxfU0JfLlBDSTAuR1BQOS5QUjEwICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEdQUEEpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMjAwMDYpICAv
LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBOYW1lIChQUjExLCBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZG
RkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIExOS0Qs
IAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAg
ICAgICAgICAgICAgICBOYW1lIChBUjExLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDEzCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MTAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1l
IChOUjExLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MjIKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDIzCiAgICAg
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYs
IAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAKICAgICAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgyMQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTlIxMSkgLyogXF9T
Ql8uUENJMC5HUFBBLk5SMTEgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIxMSkgLyogXF9TQl8uUENJMC5HUFBB
LkFSMTEgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMTEpIC8qIFxfU0JfLlBDSTAuR1BQQS5Q
UjExICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEdQMTEpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMzAwMDEpICAvLyBfQURSOiBBZGRyZXNzCiAg
ICAgICAgICAgICAgICBOYW1lIChQUjEyLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LRywgCiAgICAg
ICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIExOS0gsIAogICAgICAgICAgICAgICAg
ICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgTE5LRSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFpl
cm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg
ICAgICAgICAgICBMTktGLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1l
IChBUjEyLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MTYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDE3CiAgICAg
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYs
IAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKICAgICAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChOUjEyLCBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZG
RkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MUUKICAgICAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s
IAogICAgICAgICAgICAgICAgICAgICAgICAweDFGCiAgICAgICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MUMKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgxRAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAg
ICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJU
OiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoTlIxMikgLyogXF9TQl8uUENJMC5HUDExLk5SMTIg
Ki8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoQVIxMikgLyogXF9TQl8uUENJMC5HUDExLkFSMTIgKi8KICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKFBSMTIpIC8qIFxfU0JfLlBDSTAuR1AxMS5QUjEyICovCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBEZXZpY2UgKEdQMTIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9B
RFIsIDB4MDAwNDAwMDEpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBOYW1l
IChQUjE2LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICAgICAgICAg
IFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAg
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYs
IAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBMTktCLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChBUjE2LCBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZG
RkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s
IAogICAgICAgICAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgxMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAg
ICAgICAgICAgICAgICBOYW1lIChOUjE2LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MjIKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDIzCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MjAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyMQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRo
b2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJs
ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE5BUEMpCiAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoTlIxNikgLyogXF9TQl8uUENJMC5HUDEyLk5SMTYgKi8KICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIxNikg
LyogXF9TQl8uUENJMC5HUDEyLkFSMTYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMTYpIC8q
IFxfU0JfLlBDSTAuR1AxMi5QUjE2ICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEdQMTcpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwODAwMDEpICAv
LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBOYW1lIChQUjE3LCBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZG
RkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgTE5LRywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIExOS0gs
IAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LRSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBMTktGLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAg
ICAgICAgICAgICAgICBOYW1lIChBUjE3LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MTYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDE3CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MTQKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxNQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1l
IChOUjE3LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MjYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDI3CiAgICAg
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYs
IAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQKICAgICAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgyNQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTlIxNykgLyogXF9T
Ql8uUENJMC5HUDE3Lk5SMTcgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIxNykgLyogXF9TQl8uUENJMC5HUDE3
LkFSMTcgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMTcpIC8qIFxfU0JfLlBDSTAuR1AxNy5Q
UjE3ICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIERldmljZSAoVkdBKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIE5hbWUgKF9BRFIsIDB4MDApICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgTmFtZSAoRE9TQSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg
KF9ET1MsIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRE9TOiBEaXNhYmxlIE91dHB1dCBTd2l0
Y2hpbmcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERP
U0EgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBN
ZXRob2QgKF9ET0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRE9EOiBEaXNwbGF5IE91dHB1
dCBEZXZpY2VzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKFBhY2thZ2UgKDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAxMTAsIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMDAxMDIxMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDAwMDEwMjIwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAyMzAsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDI0MCwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAweDAwMDMxMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMzIwMDAKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIERldmljZSAoTENEKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RT
ZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDExMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQkNM
LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0JDTDogQnJpZ2h0bmVzcyBDb250cm9sIExldmVs
cwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKFRQT1MgPj0gMHg2MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDY3KQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMHg2NCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4NjQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDA5LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEIsIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDBDLCAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MEUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MTEsIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDEyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MHgxMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1LCAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMHgxNiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MTcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDE4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUEsIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAweDFCLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHgxQywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4
MUQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFFLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MjAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAweDIxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgy
MiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMsIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI0LCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHgyNSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MjYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI3
LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjksIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAweDJBLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMHgyQiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MkMs
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJELCAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyRSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAweDMwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzIsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMHgzNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MzUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM2LCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzNywgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzgsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAweDM5LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHgzQSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0IsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNDLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMHgzRCwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDB4M0UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDNGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDEsIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHg0MywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4NDQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQ1LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0NiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4NDcsIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDQ4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MHg0OSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NEEsIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDRCLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMHg0QywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4NEQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDRFLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0RiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTAsIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAweDUxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHg1MiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4
NTMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU0LCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NSwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAweDU3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1
OCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTksIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDVBLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHg1QiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDB4NUMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDVE
LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1RSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NUYsIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAweDYwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMHg2MSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjIs
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYzLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2NAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUmV0dXJuICheXl5eTFBDMC5FQzAuQlJUVykgLyogXF9TQl8u
UENJMC5MUEMwLkVDMF8uQlJUVyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9CQ00sIDEsIE5vdFNlcmlhbGl6ZWQpICAv
LyBfQkNNOiBCcmlnaHRuZXNzIENvbnRyb2wgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKEFyZzAgPj0gMHgwMCkg
JiYgKEFyZzAgPD0gMHg2NCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9ICgoQXJnMCAqIDB4RkYpIC8g
MHg2NCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBRk43IChMb2NhbDApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlJUTCA9IEFyZzAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICAgICAgTWV0aG9kIChfRERDLCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RE
QzogRGlzcGxheSBEYXRhIEN1cnJlbnQKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoVkVESSkgLyogXFZFREkgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gMHgwMikpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTmFtZSAoVkJVRiwgQnVmZmVyICgweDAxMDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIENvbmNhdGVuYXRlIChWRURJLCBWRURYLCBWQlVGKSAvKiBcX1NCXy5QQ0kw
LkdQMTcuVkdBXy5MQ0RfLl9EREMuVkJVRiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoVkJVRikgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uTENEXy5fRERD
LlZCVUYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgRGV2aWNlIChQU1ApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
TmFtZSAoX0FEUiwgMHgwMikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBEZXZpY2UgKEFDUCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA1KSAgLy8gX0FEUjogQWRkcmVzcwogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoQVpBTCkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA2KSAgLy8gX0FE
UjogQWRkcmVzcwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAo
SERBVSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURS
LCAweDAxKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIERldmljZSAoWEhDMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBOYW1lIChfQURSLCAweDAzKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgIERldmljZSAoUkhVQikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDApICAvLyBfQURSOiBBZGRyZXNzCiAgICAg
ICAgICAgICAgICAgICAgICAgIERldmljZSAoUFJUMSkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMSkgIC8v
IF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICAgICAgRGV2aWNlIChQUlQyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAyKSAgLy8gX0FEUjog
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
ICAgICBEZXZpY2UgKFBSVDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDMpICAvLyBfQURSOiBBZGRyZXNz
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFBSVDEpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFt
ZSAoX0FEUiwgMHgwMSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFBSVDIpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTmFtZSAoX0FEUiwgMHgwMikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICAgICAgRGV2aWNlIChQUlQ0KQogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA0KSAgLy8gX0FE
UjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgICAgICBEZXZpY2UgKFBSVDUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDUpICAvLyBfQURSOiBBZGRy
ZXNzCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg
IERldmljZSAoUFJUNikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwNikgIC8vIF9BRFI6IEFkZHJlc3MKICAg
ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNl
IChQUlQ3KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOYW1lIChfQURSLCAweDA3KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIERldmljZSAoWEhDMSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA0KSAgLy8gX0FEUjogQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgIERldmljZSAoUkhVQikKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDApICAvLyBfQURSOiBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoUFJUMSkKICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FE
UiwgMHgwMSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChQUlQyKQogICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAy
KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmlj
ZSAoTVAyQykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChf
QURSLCAweDA3KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEdQMTgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwODAwMDIpICAvLyBfQURSOiBBZGRyZXNzCiAg
ICAgICAgICAgICAgICBOYW1lIChQUjE4LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAg
ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LQywgCiAgICAg
ICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAg
ICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFpl
cm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg
ICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1l
IChBUjE4LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MTIKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDEzCiAgICAg
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYs
IAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChOUjE4LCBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZG
RkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkEKICAgICAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s
IAogICAgICAgICAgICAgICAgICAgICAgICAweDJCCiAgICAgICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MjgKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgyOQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAg
ICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJU
OiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKE5BUEMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoTlIxOCkgLyogXF9TQl8uUENJMC5HUDE4Lk5SMTgg
Ki8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoQVIxOCkgLyogXF9TQl8uUENJMC5HUDE4LkFSMTggKi8KICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKFBSMTgpIC8qIFxfU0JfLlBDSTAuR1AxOC5QUjE4ICovCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAo
SVBVKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs
IDB4MDEpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIERldmljZSAoR1AxOSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgTmFtZSAoX0FEUiwgMHgwMDA4MDAwMykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAg
ICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmlj
ZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiZTVjOTM3ZDAtMzU1My00ZDdhLTkxMTctZWE0ZDE5
YzM0MzRkIikgLyogRGV2aWNlIExhYmVsaW5nIEludGVyZmFjZSAqLykpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAo
QXJnMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENhc2UgKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDEpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2Fz
ZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0
dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFt
ZSAoUFIxOSwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg
CiAgICAgICAgICAgICAgICAgICAgICAgIExOS0csIAogICAgICAgICAgICAgICAgICAgICAg
ICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAg
ICAgICAgICAgICAgICBMTktILCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAg
ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZG
LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIExOS0UsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgTE5LRiwg
CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoQVIxOSwgUGFja2FnZSAo
MHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHhG
RkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg
ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDE2CiAgICAgICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg
ICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJv
LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxNwogICAgICAgICAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDE0CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MTUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQog
ICAgICAgICAgICAgICAgTmFtZSAoTlIxOSwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg
ICAgICAgICAgICAgICAgICAgICAweDJFCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg
ICBPbmUsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgyRgogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg
ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDJDCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkQKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0
aG9kIChfUFJULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFi
bGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoUElDTSkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChOQVBDKQog
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKE5SMTkpIC8qIFxfU0JfLlBDSTAuR1AxOS5OUjE5ICovCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMTkp
IC8qIFxfU0JfLlBDSTAuR1AxOS5BUjE5ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUjE5KSAv
KiBcX1NCXy5QQ0kwLkdQMTkuUFIxOSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFhIQzIpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkgIC8vIF9BRFI6
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFJIVUIpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKSAg
Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFBSVDEp
CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5hbWUgKF9BRFIsIDB4MDEpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoUFJUMikKICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo
X0FEUiwgMHgwMikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBEZXZpY2UgKE5ISTApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTmFtZSAoX0FEUiwgMHgwNSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFhIQzMpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMykgIC8vIF9BRFI6IEFkZHJlc3MK
ICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFJIVUIpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKSAgLy8gX0FEUjog
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFBSVDEpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9B
RFIsIDB4MDEpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoUFJUMikKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgw
MikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZp
Y2UgKE5ISTEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAo
X0FEUiwgMHgwNikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBEZXZpY2UgKFhIQzQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTmFtZSAoX0FEUiwgMHgwNCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICBEZXZpY2UgKFJIVUIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKSAgLy8gX0FEUjogQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFBSVDEpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDEp
ICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgICAgIERldmljZSAoUFJUMikKICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMikgIC8vIF9B
RFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2
aWNlIChIUEVUKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCBF
aXNhSWQgKCJQTlAwMTAzIikgLyogSFBFVCBTeXN0ZW0gVGltZXIgKi8pICAvLyBfSElEOiBI
YXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxp
emVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgSWYgKChIUEVOID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBJZiAoKE9TVEIgPj0gMHg0MCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxc
X1NCLlBDSTAuSFBFVC5fU1RBID0gMHhGXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBa
ZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQog
ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBIUEVO
ID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9TQi5Q
Q0kwLkhQRVQuX1NUQSA9IDB4MVxuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywg
WmVybykKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9TQi5Q
Q0kwLkhQRVQuX1NUQSAxID0gMHgxXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJv
LCBaZXJvKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkg
IC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9TQi5QQ0kwLkhQRVQuX0NS
U1xuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7MH0KICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9G
bGFncyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezh9CiAgICAgICAgICAgICAg
ICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRPbmx5LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHhGRUQwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5n
dGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ZMDkpCiAgICAgICAgICAgICAgICAg
ICAgfSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NC
LlBDSTAuSFBFVC5fQ1JTLl9ZMDkuX0JBUywgSFBFQikgIC8vIF9CQVM6IEJhc2UgQWRkcmVz
cwogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4RkVEMDAwMDAKICAgICAgICAgICAg
ICAgICAgICBIUEVCID0gKExvY2FsMCAmIDB4RkZGRkZDMDApCiAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuIChCVUYwKSAvKiBcX1NCXy5QQ0kwLkhQRVQuX0NSUy5CVUYwICovCiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU01CUykK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwMCkg
IC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChM
UEMwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTQw
MDAzKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgRGV2aWNlIChETUFDKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJ
ZCAoIlBOUDAyMDAiKSAvKiBQQy1jbGFzcyBETUEgQ29udHJvbGxlciAqLykgIC8vIF9ISUQ6
IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VU
ZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5n
ZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAg
ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEs
ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDEwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAweDAwODEsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt
dW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MSwgICAgICAgICAgICAgLy8g
UmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg
ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYs
ICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDBDMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwLCAgICAgICAgICAgICAvLyBSYW5nZSBN
YXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg
IC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMCwgICAgICAg
ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg
ICAgICAgICAgICAgICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBOb3RCdXNNYXN0ZXIsIFRy
YW5zZmVyOF8xNiwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezR9CiAgICAgICAg
ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZp
Y2UgKENPUFIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAo
X0hJRCwgRWlzYUlkICgiUE5QMEMwNCIpIC8qIHg4Ny1jb21wYXRpYmxlIEZsb2F0aW5nIFBv
aW50IFByb2Nlc3NpbmcgVW5pdCAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAg
ICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzog
Q3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMEYwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAweDAwRjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxp
Z25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGLCAgICAgICAgICAgICAg
IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg
ICAgICAgICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
MTN9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBEZXZpY2UgKFBJQykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwMDAwIikgLyogODI1OS1jb21wYXRpYmxl
IFByb2dyYW1tYWJsZSBJbnRlcnJ1cHQgQ29udHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3
YXJlIElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0
ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMDIwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5p
bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAsICAgICAgICAgICAgIC8v
IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAg
ICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAy
LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAweDAwQTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBMCwgICAgICAgICAgICAgLy8gUmFuZ2Ug
TWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAg
ICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAg
ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg
ICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsyfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgRGV2aWNlIChSVEMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEIwMCIpIC8qIEFUIFJlYWwt
VGltZSBDbG9jayAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAg
ICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMDcwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNzAsICAgICAgICAgICAgIC8vIFJhbmdl
IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAg
ICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAg
ICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGMSwgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MDcwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAweDAwNzAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0
aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg
ICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7OH0KICAgICAg
ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwg
U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoSFBFTiA9PSBP
bmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0JfLlBDSTAuTFBDMC5SVENfLkJVRjAgKi8KICAg
ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu
IChCVUYxKSAvKiBcX1NCXy5QQ0kwLkxQQzAuUlRDXy5CVUYxICovCiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoU1BL
UikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBF
aXNhSWQgKCJQTlAwODAwIikgLyogTWljcm9zb2Z0IFNvdW5kIFN5c3RlbSBDb21wYXRpYmxl
IERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAg
TmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNv
dXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYx
LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAweDAwNjEsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIH0pCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChUTVIpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5Q
MDEwMCIpIC8qIFBDLWNsYXNzIFN5c3RlbSBUaW1lciAqLykgIC8vIF9ISUQ6IEhhcmR3YXJl
IElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl
Y29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwLCAgICAgICAgICAg
ICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAs
ICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg
ICAgICAgTmFtZSAoQlVGMSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMDQwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAsICAgICAgICAgICAgIC8vIFJh
bmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAg
ICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog
ICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7MH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg
ICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVz
b3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIElmICgoSFBFTiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0JfLlBDSTAu
TFBDMC5UTVJfLkJVRjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuIChCVUYxKSAvKiBcX1NCXy5QQ0kwLkxQQzAuVE1SXy5C
VUYxICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIERldmljZSAoS0JEKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIE1ldGhvZCAoX0hJRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3
YXJlIElECiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ
ZiAoV0lOOCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuICgweDcxMDBBRTMwKQogICAgICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMwM0QwNDEpCiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCBFaXNhSWQg
KCJQTlAwMzAzIikgLyogSUJNIEVuaGFuY2VkIEtleWJvYXJkICgxMDEvMTAyLWtleSwgUFMv
MiBNb3VzZSkgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICAg
ICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBS
ZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MDYwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAweDAwNjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0
aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg
ICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQsICAg
ICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDA2NCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAo
RWRnZSwgQWN0aXZlTG93LCBTaGFyZWQsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsxfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgRGV2aWNlIChNT1UpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTmFtZSAoX0hJRCwgIlBOUDBGMTMiIC8qIFBTLzIgTW91c2UgKi8pICAvLyBfSElE
OiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsIEVpc2FJZCAo
IlBOUDBGMTMiKSAvKiBQUy8yIE1vdXNlICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAog
ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9TVEEsIDB4MEYpICAvLyBfU1RBOiBTdGF0dXMK
ICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpICAv
LyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBJUlEgKEVkZ2UsIEFjdGl2ZUxvdywgRXhjbHVz
aXZlLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7MTJ9CiAgICAgICAgICAgICAg
ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChESURMLCBQYWNrYWdlICgweDA1
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIAogICAgICAgICAgICAgICAgICAgICAg
ICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDEKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg
ICAgIE5hbWUgKFBOUEwsIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAiTEVOMDMwQiIsIAogICAgICAgICAgICAgICAgICAg
ICAgICAiTEVOMDMwQyIsIAogICAgICAgICAgICAgICAgICAgICAgICAiTEVOMDMwNSIsIAog
ICAgICAgICAgICAgICAgICAgICAgICAiTEVOMDMwNSIsIAogICAgICAgICAgICAgICAgICAg
ICAgICAiTEVOMDMwNSIKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg
ICAgIE5hbWUgKFBOUDEsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAiTEVOMDMxNCIsIAogICAgICAgICAgICAgICAgICAg
ICAgICAiTEVOMDMxNSIKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg
ICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxp
emUKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1ISUQg
KCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo
TUhJRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IE1hdGNoIChESURMLCBNRVEsIChUUElEICYgMHhG
RiksIE1UUiwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2Nh
bDAgIT0gT25lcykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIElmICgoUkZJTyAoMHgwNCkgPT0gMHgwMSkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9
IERlcmVmT2YgKFBOUDEgW0xvY2FsMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9IERlcmVm
T2YgKFBOUEwgW0xvY2FsMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfU1RB
ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoU1lTUikKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQg
KCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJvYXJkIFJlc291cmNlcyAqLykgIC8vIF9ISUQ6
IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMSkgIC8v
IF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291
cmNlVGVtcGxhdGUgKCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUx
NiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCwgICAgICAgICAgICAgLy8g
UmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwLCAgICAg
ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwLCAgICAgICAgICAgICAvLyBSYW5nZSBN
aW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAsICAgICAgICAgICAg
IC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAg
ICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAweDAwQTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBMCwgICAgICAgICAgICAgLy8gUmFu
Z2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAg
ICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg
ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg
ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDA3MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMDcyLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhp
bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAg
ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg
ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMDgwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAweDAwODAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25t
ZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg
ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw
QjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDBCMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3Ro
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg
IElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MiwgICAg
ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
MHgwMDkyLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl
Y29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwLCAgICAgICAgICAg
ICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAs
ICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAsICAgICAgICAgICAgIC8vIFJh
bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMCwgICAgICAg
ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4RDAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDREMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu
aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNEQwLCAgICAgICAgICAgICAv
LyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAg
ICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwNEQ2LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0RDYsICAgICAgICAgICAgIC8vIFJhbmdl
IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAg
ICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAg
ICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAweDBDMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MEMwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11
bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBB
bGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAg
ICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
ICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MEMxNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwQzE0LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVu
dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBM
ZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg
ICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzUw
LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAweDBDNTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJ
TyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDNkMsICAgICAg
ICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4
MEM2QywgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNv
ZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEM2RiwgICAgICAgICAgICAg
Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzZGLCAg
ICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQ0QwLCAgICAgICAgICAgICAvLyBSYW5n
ZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDRDAsICAgICAgICAg
ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEs
ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDBDLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAweDA1ODAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt
dW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDU4MCwgICAgICAgICAgICAgLy8g
UmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg
ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0Ys
ICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBEZXZpY2UgKFNQSVIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMSIpIC8qIFN5c3RlbSBCb2FyZCAqLykg
IC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywg
UmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5n
cwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5
MzJGaXhlZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAw
MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMTAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChFQzApCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwOSIpIC8qIEVt
YmVkZGVkIENvbnRyb2xsZXIgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAg
ICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAwKSAgLy8gX1VJRDogVW5pcXVlIElE
CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0dQRSwgMHgwNykgIC8vIF9HUEU6IEdlbmVy
YWwgUHVycG9zZSBFdmVudHMKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9SRUcsIDIs
IE5vdFNlcmlhbGl6ZWQpICAvLyBfUkVHOiBSZWdpb24gQXZhaWxhYmlsaXR5CiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgw
MykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEg4RFIgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoS0JDUywg
U3lzdGVtSU8sIDB4NjAsIDB4MDUpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEtCQ1Ms
IEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBLQjYwLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAg
ICBPZmZzZXQgKDB4MDQpLCAKICAgICAgICAgICAgICAgICAgICAgICAgS0I2NCwgICA4CiAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEVNQkYs
IDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDIgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9
IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMiAmJiAoTG9jYWww
ICYgT25lKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDEgPSBLQjYwIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLktCNjAgKi8KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDAgPSBLQjY0IC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLktCNjQgKi8KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMi0tCiAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE11dGV4IChV
Q0NJLCAweDAwKQogICAgICAgICAgICAgICAgICAgIE11dGV4IChTTVVNLCAweDAwKQogICAg
ICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoRUNPUiwgRW1iZWRkZWRDb250cm9s
LCAweDAwLCAweDAxMDApCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEVDT1IsIEJ5dGVB
Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBIREJNLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
LCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAg
ICAgICAgICAgICAgICBIRk5FLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
LCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAg
ICAgICAgICAgICAgICBITERNLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZz
ZXQgKDB4MDEpLCAKICAgICAgICAgICAgICAgICAgICAgICAgQkJMUywgICAxLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgQlRDTSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAg
SEJQUiwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgQlRQQywgICAxLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIEhEVUUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgNCwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIFNOTEssICAgMSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIE9mZnNldCAoMHgwMyksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDUs
IAogICAgICAgICAgICAgICAgICAgICAgICBIQVVNLCAgIDIsIAogICAgICAgICAgICAgICAg
ICAgICAgICBPZmZzZXQgKDB4MDUpLCAKICAgICAgICAgICAgICAgICAgICAgICAgSFNQQSwg
ICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA2KSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIEhTVU4sICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEhT
UlAsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwQiksIAogICAg
ICAgICAgICAgICAgICAgICAgICBTNFdBLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAg
ICBPZmZzZXQgKDB4MEMpLCAKICAgICAgICAgICAgICAgICAgICAgICAgSExDTCwgICA4LCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgVDRSUywgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAxLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgQ0FMTSwgICAxLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgS0JMTCwgICAxLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgS0JMSCwgICAxLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgSEZOUywgICAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDBG
KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIE5VTFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAo
MHgxMCksIAogICAgICAgICAgICAgICAgICAgICAgICBIQU0wLCAgIDgsIAogICAgICAgICAg
ICAgICAgICAgICAgICBIQU0xLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBIQU0y
LCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBIQU0zLCAgIDgsIAogICAgICAgICAg
ICAgICAgICAgICAgICBIQU00LCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBIQU01
LCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBIQU02LCAgIDgsIAogICAgICAgICAg
ICAgICAgICAgICAgICBIQU03LCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBIQU04
LCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBIQU05LCAgIDgsIAogICAgICAgICAg
ICAgICAgICAgICAgICBIQU1BLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBIQU1C
LCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBIQU1DLCAgIDgsIAogICAgICAgICAg
ICAgICAgICAgICAgICBIQU1ELCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBIQU1F
LCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBIQU1GLCAgIDgsIAogICAgICAgICAg
ICAgICAgICAgICAgICBPZmZzZXQgKDB4MjMpLCAKICAgICAgICAgICAgICAgICAgICAgICAg
SEFOVCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDI2KSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIEhBTkEsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyNyks
IAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjgpLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgU0tFTSwg
ICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgV1JTVCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICwg
ICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgQ0FNUywgICAxLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgT2Zmc2V0ICgweDI5KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1B
WFAsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEhBVFIsICAgOCwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIEhUMEgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEhU
MEwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEhUMUgsICAgOCwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIEhUMUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEhG
U1AsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIEhNVVQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9m
ZnNldCAoMHgzMSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAg
ICAgICAgICAgICAgICAgICAgICBIVVdCLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLCAgIDMsIAogICAgICAgICAgICAgICAgICAgICAgICBWUE9OLCAgIDEsIAogICAg
ICAgICAgICAgICAgICAgICAgICBWUlNULCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAg
ICBIV1BNLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBIV0xCLCAgIDEsIAogICAg
ICAgICAgICAgICAgICAgICAgICBIV0xPLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAg
ICBIV0RLLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBIV0ZOLCAgIDEsIAogICAg
ICAgICAgICAgICAgICAgICAgICBIV0JULCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAg
ICBIV1JJLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBIV0JVLCAgIDEsIAogICAg
ICAgICAgICAgICAgICAgICAgICBIV0xVLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAg
ICBPZmZzZXQgKDB4MzQpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAzLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgUElCUywgICAxLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgSFBMTywgICAxLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICA0LCAKICAgICAgICAgICAgICAgICAg
ICAgICAgRkFORSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDM2
KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEhXQUMsICAgMTYsIAogICAgICAgICAgICAg
ICAgICAgICAgICBIQjBTLCAgIDcsIAogICAgICAgICAgICAgICAgICAgICAgICBIQjBBLCAg
IDEsIAogICAgICAgICAgICAgICAgICAgICAgICBIQjFTLCAgIDcsIAogICAgICAgICAgICAg
ICAgICAgICAgICBIQjFBLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBIQ01VLCAg
IDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAg
ICAgICAgICAgICBPVlJRLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBEQ0JELCAg
IDEsIAogICAgICAgICAgICAgICAgICAgICAgICBEQ1dMLCAgIDEsIAogICAgICAgICAgICAg
ICAgICAgICAgICBEQ1dXLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBIQjFJLCAg
IDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAg
ICAgICAgICAgICBLQkxULCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBCVFBXLCAg
IDEsIAogICAgICAgICAgICAgICAgICAgICAgICBGTktDLCAgIDEsIAogICAgICAgICAgICAg
ICAgICAgICAgICBIVUJTLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBCRFBXLCAg
IDEsIAogICAgICAgICAgICAgICAgICAgICAgICBCRERULCAgIDEsIAogICAgICAgICAgICAg
ICAgICAgICAgICBIVUJCLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQg
KDB4NDYpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgQlRXSywgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgSFBM
RCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgSFBBQywgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgQlRT
VCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgUFNTVCwgICAxLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQ3KSwgCiAgICAgICAgICAgICAgICAgICAgICAg
IEhQQlUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBTUzIsICAgMSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIEhCSUQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAsICAgMywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBXU0UsICAgMSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIEhQTkYsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEdTVFMsICAgMSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IEhMQlUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIERPQ0QsICAgMSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIEhDQkwsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAg
IE9mZnNldCAoMHg0OSksIAogICAgICAgICAgICAgICAgICAgICAgICBTTFVMLCAgIDEsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgICAg
ICAgICBBQ0FULCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDQsIAog
ICAgICAgICAgICAgICAgICAgICAgICBFTE5LLCAgIDEsIAogICAgICAgICAgICAgICAgICAg
ICAgICBGUFNVLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NEIp
LCAKICAgICAgICAgICAgICAgICAgICAgICAgV1dEVCwgICA0LCAKICAgICAgICAgICAgICAg
ICAgICAgICAgT2Zmc2V0ICgweDRDKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUgs
ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUwsICAgOCwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIEhXQUssICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAgICBITVBS
LCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDcsIAogICAgICAgICAg
ICAgICAgICAgICAgICBITUROLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZz
ZXQgKDB4NzgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgVE1QMCwgICA4LCAKICAgICAg
ICAgICAgICAgICAgICAgICAgR1BVVCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAg
VE1QMiwgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDdDKSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIFRNUDMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIFRNUDQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRNUDUsICAgOCwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIFFDT04sICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MCks
IAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODEpLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgSElJRCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0
ICgweDgzKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEhGTkksICAgOCwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIEhTUEQsICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAgICBP
ZmZzZXQgKDB4ODgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgVFNMMCwgICA3LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgVFNSMCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgVFNMMSwgICA3LCAKICAgICAgICAgICAgICAgICAgICAgICAgVFNSMSwgICAxLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgVFNMMiwgICA3LCAKICAgICAgICAgICAgICAgICAgICAg
ICAgVFNSMiwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgVFNMMywgICA3LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgVFNSMywgICAxLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgQ1BVSSwgICA0LCAKICAgICAgICAgICAgICAgICAgICAgICAgR1BVSSwgICA0LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgSERBQSwgICAzLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgSERBQiwgICAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgSERBQywgICAyLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEIwKSwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIEJTQzAsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJFQzAsICAgOCwg
CiAgICAgICAgICAgICAgICAgICAgICAgIEJTQzEsICAgOCwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIEJFQzEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEhERVAsICAgMzIs
IAogICAgICAgICAgICAgICAgICAgICAgICBIREVNLCAgIDgsIAogICAgICAgICAgICAgICAg
ICAgICAgICBIREVTLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4
QkIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgQlBMMSwgICAxLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgQlBMMiwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgQlAxUywg
ICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgQlAyUywgICAxLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgQkxQTCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0
ICgweEJDKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJNU0IsICAgOCwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIEJMU0IsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJU
SU0sICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhDMCksIAogICAg
ICAgICAgICAgICAgICAgICAgICBUQVNULCAgIDcsIAogICAgICAgICAgICAgICAgICAgICAg
ICBUQVNDLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QzQpLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgQ1FMUywgICAxLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgU01DUywgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEM1
KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhDNiksIAogICAgICAgICAg
ICAgICAgICAgICAgICBEUFJMLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
LCAgIDYsIAogICAgICAgICAgICAgICAgICAgICAgICBUU04wLCAgIDEsIAogICAgICAgICAg
ICAgICAgICAgICAgICBPZmZzZXQgKDB4QzgpLCAKICAgICAgICAgICAgICAgICAgICAgICAg
QVRNWCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgSFdBVCwgICA4LCAKICAgICAg
ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweENCKSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIFRUQ0ksICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBXTUgsICAgOCwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIFBXTUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIE9mZnNldCAoMHhDRiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDQs
IAogICAgICAgICAgICAgICAgICAgICAgICBFU0ZMLCAgIDEsIAogICAgICAgICAgICAgICAg
ICAgICAgICBFU0xTLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBFU0xQLCAgIDEs
IAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RDApLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgT2Zmc2V0ICgweEVEKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEhEREQsICAgMSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIE9mZnNldCAoMHhGRSksIAogICAgICAgICAgICAgICAgICAgICAg
ICBQTlZNLCAgIDEKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
IE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChIOERS
KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBIU1BBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTUJFQyAoMHgwNSwgMHhGRSwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgXkhLRVkuV0dJTiAoKQogICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKFdMQUMgPT0gMHgwMikpIHt9CiAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2VJZiAoKEVMTksgJiYgKFdMQUMgPT0gMHgwMSkpKQogICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQ1dMID0g
MHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRENXTCA9IDB4MDEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VU
ZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYyLCAgICAgICAgICAgICAvLyBSYW5n
ZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjIsICAgICAgICAg
ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEs
ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAweDAwNjYsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt
dW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NiwgICAgICAgICAgICAgLy8g
UmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg
ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEs
ICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKExF
RCwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMCA9IChBcmcwIHwgQXJnMSkKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKEg4RFIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEhMQ0wgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdCRUMgKDB4MEMsIExvY2FsMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgTmFtZSAoQkFPTiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBOYW1l
IChXQk9OLCAweDAwKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQkVFUCwgMSwgTm90
U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoQXJnMCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV0JPTiA9IDB4MDAKICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gV0JPTiAvKiBcX1NC
Xy5QQ0kwLkxQQzAuRUMwXy5XQk9OICovCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChC
QU9OKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBJZiAoKEFyZzAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFPTiA9IDB4MDAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBJZiAoV0JPTikKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g
MHgwOAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
MHhGRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4RkYKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgxMSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXQk9OID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MTAp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV0JPTiA9IDB4MDEKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBcmcw
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweEZGCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwRikpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
QXJnMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDgKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQU9OID0gMHgwMQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn
MCA9PSAweDExKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwxID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdCT04gPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MTApKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDA4
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0JPTiA9IDB4MDEKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDMpKQogICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXQk9OID0gMHgwMAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExvY2FsMikKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAw
eDA3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoU1BTID09IDB4MDMp
IHx8IChTUFMgPT0gMHgwNCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweEZGCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4RkYKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo
QXJnMCA9PSAweDA3KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSWYgKExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHhGRgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4RkYKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKEg4RFIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoTG9jYWwyICYmICFXQk9OKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIU1JQID0g
MHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhTVU4gPSAweDAwCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2Nh
bDEgIT0gMHhGRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSFNSUCA9IExvY2FsMQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwICE9
IDB4RkYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEhTVU4gPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElmICgoTG9jYWwyICYmICFXQk9OKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXQkVDICgweDA3LCAweDAw
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdCRUMgKDB4MDYsIDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM
b2NhbDEgIT0gMHhGRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV0JFQyAoMHgwNywgTG9jYWwxKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo
TG9jYWwwICE9IDB4RkYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdCRUMgKDB4MDYsIExvY2FsMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDMpKSB7fQogICAgICAgICAgICAg
ICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNykpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDAxRjQpCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgICAgIE1ldGhvZCAoRVZOVCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChIOERSKQogICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQXJnMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBIQU01IHw9IDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU01ICY9IDB4RkIKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKEFyZzApCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRUMgKDB4MTUsIDB4RkYsIDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBNQkVDICgweDE1LCAweEZCLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKENI
S1MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAweDAzRTgKICAgICAgICAgICAgICAgICAgICAgICAg
V2hpbGUgKEhNUFIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNsZWVwICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwwLS0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICghTG9jYWwwKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoMHg4MDgwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoSE1E
TikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKDB4ODA4MSkKICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTFBNRCwgMCwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4
MDAKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
biAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
TWV0aG9kIChDTFBNLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoRUNO
VCwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcwKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKElTR0QgPT0gMHgwMCkpIHt9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSWYgKCheSEtFWS5NU0NCID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEg4RFIp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVTTFMgPSAweDAwCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBSQkVDICgweENGKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICY9IDB4RkZG
RkZGRkZGRkZGRkZERgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V0JFQyAoMHhDRiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRUQgKDB4MEEsIDB4
ODApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFRCAoMHgwMCwgMHg4
MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNDTVMgKDB4MjEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKElTR0Qg
PT0gMHgwMCkpIHt9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheSEtF
WS5NU0NCID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEg4RFIpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVTTFMgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBSQkVDICgweENGKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxIHw9IDB4MjAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdCRUMgKDB4Q0YsIExvY2FsMSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTEVEICgweDAwLCAweEEwKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMRUQgKDB4MEEsIDB4QTApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4
MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChIOERSKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVNMUCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
UkJFQyAoMHhDRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww
ICY9IDB4RkZGRkZGRkZGRkZGRkZCRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXQkVDICgweENGLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTUJGICgweDY0KQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTTkgfD0gMHg0MAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSWYgKEg4RFIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU0xQID0gMHgwMQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBSQkVDICgweENGKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgfD0gMHg0MAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXQkVDICgweENGLCBMb2NhbDEpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBI
QU05ICY9IDB4QkYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4
MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDYXNlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFM0UkYgPSBTWFJGIC8qIFxTWFJGICovCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUzRFRiA9IFNYRUYgLyogXFNYRUYgKi8K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoSDhEUikKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVTTFMgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCA9IFJCRUMgKDB4Q0YpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMCAmPSAweEZGRkZGRkZGRkZGRkZGREYKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV0JFQyAoMHhDRiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVEICgweDBBLCAw
eDgwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFRCAoMHgwMCwgMHg4MCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ01TICgweDIxKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDUpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU1hSRiA9IFM0UkYgLyogXF9TQl8uUENJMC5TNFJGICovCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU1hFRiA9IFM0RUYgLyogXF9TQl8uUENJMC5TNEVGICovCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUzRSRiA9IDB4MDAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTNEVGID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElmIChIOERSKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNMUyA9IDB4MDEKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFdMTyA9IDB4MDEKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheXl5eTElELl9MSUQgKCkgPT0gMHgwMSkp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEhXRk4gPSAweDAxCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIV0ZOID0gMHgwMAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMSA9IFJCRUMgKDB4Q0YpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMSB8PSAweDIwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdCRUMgKDB4Q0YsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFRCAoMHgwMCwgMHhB
MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRUQgKDB4MEEsIDB4QTApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVs
dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoMHhGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgIERldmljZSAoSEtFWSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIkxFTjAyNjgiKSkg
IC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo
X1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp
CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1l
dGhvZCAoTUhLViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyMDApCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKERIS0Ms
IDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKERIS0IsIDB4MDEpCiAgICAg
ICAgICAgICAgICAgICAgICAgIE5hbWUgKERIS0gsIDB4MDApCiAgICAgICAgICAgICAgICAg
ICAgICAgIE5hbWUgKERIS1csIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUg
KERIS1MsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKERIS0QsIDB4MDAp
CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKERIS04sIDB4MDgwOCkKICAgICAgICAg
ICAgICAgICAgICAgICAgTmFtZSAoREhLRSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgTmFtZSAoREhLRiwgMHgwQkZGNDAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTmFt
ZSAoREhLVCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoREhXVywgMHgw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoREhERiwgMHgwMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgTXV0ZXggKFhESEssIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
ICAgIE1ldGhvZCAoTUhLQSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDAp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gMHgwMSkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmV0dXJuICgweEZGRkZGRkZCKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSAweDAyKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcwID09IDB4MDMpKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoMHgwQkZGNDAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTUhLTiwgMSwgTm90U2VyaWFs
aXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChBcmcwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs
c2VJZiAoKEFyZzAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChESEtOKSAvKiBcX1NCXy5Q
Q0kwLkxQQzAuRUMwXy5IS0VZLkRIS04gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gMHgwMikp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuIChESEtFKSAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IS0VZLkRI
S0UgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChESEtG
KSAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IS0VZLkRIS0YgKi8KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTUhL
SywgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDApKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
biAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2VJZiAoREhLQykKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMSkp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKChESEtOICYgQXJnMSkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs
c2VJZiAoKEFyZzAgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKChESEtFICYg
QXJnMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gMHgwMykpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKChESEtGICYgQXJnMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
ICAgICBNZXRob2QgKE1IS00sIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFhESEssIDB4
RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA+IDB4NjApKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5vb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPD0gMHgyMCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww
ID0gKE9uZSA8PCBBcmcwLS0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KChMb2NhbDAgJiAweEZGRkZGRkZCKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBcmcxKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBESEtOIHw9IExvY2FsMCAvKiBcX1NCXy5QQ0kwLkxQQzAu
RUMwXy5IS0VZLkRIS04gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIERIS04gJj0gKExvY2FsMCBeIDB4RkZGRkZGRkYpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTm9vcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJ
ZiAoKEFyZzAgPD0gMHg0MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9vcAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA8PSAw
eDYwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBcmcwIC09IDB4NDAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAoT25lIDw8IEFyZzAtLSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKExvY2FsMCAmIDB4MEJGRjQwMDApKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KEFyZzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERIS0YgfD0gTG9jYWwwIC8qIFxfU0Jf
LlBDSTAuTFBDMC5FQzBfLkhLRVkuREhLRiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgREhLRiAmPSAoTG9jYWwwIF4gMHhGRkZGRkZGRikK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNl
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOb29wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlbGVhc2UgKFhESEspCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTUhLUywgMCwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90
aWZ5IChTTFBCLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTUhLQywgMSwgTm90U2Vy
aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgREhLQyA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICAgICAgTWV0aG9kIChNSEtQLCAwLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1
aXJlIChYREhLLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoREhX
VykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDEgPSBESFdXIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLkhLRVku
REhXVyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERIV1cgPSBaZXJvCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFbHNlSWYgKERIREYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gREhERiAvKiBcX1NCXy5QQ0kwLkxQ
QzAuRUMwXy5IS0VZLkRIREYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE
SERGID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRWxzZUlmIChESEtXKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IERIS1cgLyog
XF9TQl8uUENJMC5MUEMwLkVDMF8uSEtFWS5ESEtXICovCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgREhLVyA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoREhLRCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDEgPSBESEtEIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLkhLRVkuREhLRCAqLwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIERIS0QgPSBaZXJvCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKERIS1Mp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwxID0gREhLUyAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IS0VZLkRI
S1MgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESEtTID0gWmVybwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
RWxzZUlmIChESEtUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IERIS1QgLyogXF9TQl8uUENJMC5MUEMw
LkVDMF8uSEtFWS5ESEtUICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREhL
VCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBESEtIIC8qIFxfU0JfLlBDSTAu
TFBDMC5FQzBfLkhLRVkuREhLSCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IERIS0ggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoWERISykKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKE1IS0UsIDEsIFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERIS0Ig
PSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChYREhLLCAweEZG
RkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBESEtIID0gWmVybwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgREhLVyA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERIS1MgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBESEtEID0gWmVy
bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgREhLVCA9IFplcm8KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIERIV1cgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZWxlYXNlIChYREhLKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgICAgICBNZXRob2QgKE1IS1EsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChESEtCKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElmIChESEtDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoWERISywgMHhGRkZG
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPCAweDEw
MDApKSB7fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChB
cmcwIDwgMHgyMDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREhLSCA9IEFyZzAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcwIDwgMHgzMDAwKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgREhLVyA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChB
cmcwIDwgMHg0MDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREhLUyA9IEFyZzAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcwIDwgMHg1MDAwKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgREhLRCA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChB
cmcwIDwgMHg2MDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREhLSCA9IEFyZzAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcwIDwgMHg3MDAwKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgREhLVCA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChB
cmcwIDwgMHg4MDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREhXVyA9IEFyZzAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcwIDwgMHg5MDAwKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgREhERiA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UmVsZWFzZSAoWERISykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90
aWZ5IChIS0VZLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAo
KEFyZzAgPT0gMHgxMDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoU0xQQiwgMHg4MCkg
Ly8gU3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChNSEtCLCAxLCBOb3RTZXJpYWxpemVk
KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKEFyZzAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkVFUCAoMHgxMSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMSURCID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSAw
eDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBCRUVQICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExJREIgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTUhLRCwgMCwgTm90U2VyaWFs
aXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChQTFVYID09IDB4MDApKSB7fQogICAgICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKE1IUUMsIDEsIE5vdFNlcmlhbGl6
ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIElmIChXTlRGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoQ1dBQykgLyogXENXQUMgKi8KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJn
MCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ1dBUCkgLyogXENXQVAgKi8K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoQ1dBVCkgLyogXENXQVQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTm9vcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBOb29wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKE1IR0MsIDAsIE5vdFNlcmlhbGl6
ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIElmIChXTlRGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFhESEssIDB4RkZGRikKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ0tDNCAoMHgwMCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDAgPSAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFhESEspCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9vcAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICAgICAgTWV0aG9kIChNSFNDLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgICAgIE1ldGhvZCAoQ0tDNCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww
ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEM0V1IpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKCFDNEFDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4MDEKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEM0TkEpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9
IDB4MDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBJZiAoKENXQUMgJiYgQ1dBUykpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4MDQK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgJj0gfkFyZzAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
biAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgICAgICBNZXRob2QgKE1IUUUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0
aG9kIChNSEdFLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEM0V1IgJiYgQzRBQykpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChNSFNFLCAxLCBOb3RT
ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoVUFXTywgMSwgTm90
U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUmV0dXJuIChVQVdTIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChNTENHLCAxLCBOb3RTZXJp
YWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDAgPSBLQkxTICgweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTUxDUywgMSwgTm90U2VyaWFsaXplZCkK
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwwID0gS0JMUyAoMHgwMSwgQXJnMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElmICghKExvY2FsMCAmIDB4ODAwMDAwMDApKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCAmIDB4MDAw
MTAwMDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTUhLUSAoMHg2MDAxKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNl
SWYgKE1IS0sgKDB4MDEsIDB4MDAwMjAwMDApKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUhLUSAoMHgx
MDEyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExv
Y2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg
ICAgTWV0aG9kIChEU1NHLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoMHgwNDAwIHwg
UERDSSkgLyogXFBEQ0kgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo
TG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
ICAgICBNZXRob2QgKERTU1MsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBEQ0kgfD0gQXJnMAogICAg
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2Qg
KFNCU0csIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU1lCQyAoMHgwMCwgMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv
ZCAoU0JTUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTWUJDICgweDAxLCBBcmcwKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0
aG9kIChQQkxHLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBCUkxWIC8qIFxCUkxWICov
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoTG9jYWwwIHwgMHgwRjAw
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUEJM
UywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQlJMViA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElmIChWSUdEKSB7fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFZCUkMgKEJSTFYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCFOQkNGKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1IS1EgKDB4NjA1
MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUE1TRywgMSwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwwID0gUFJTTSAoMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgICAgICAgICBNZXRob2QgKFBNU1MsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSU00gKDB4MDEs
IEFyZzApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo
SVNTRywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gSVNTUCAvKiBcSVNTUCAqLwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKElTU1ApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4
MDEwMDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gKElT
RlMgPDwgMHgxOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gKElTQ0cgJiAweDMwKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwICY9IDB4RkZGRkZGRkUKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMCB8PSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgfD0gKChJU1dLICYgMHgwMikgPDwgMHgwMikKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKElTU1MsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElT
Q0cgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv
ZCAoRkZTRywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEZGU1MsIDEs
IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoMHg4MDAwMDAwMCkKICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChHTUtTLCAwLCBOb3RT
ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKEZOU0MgKDB4MDIsIDB4MDApKQogICAgICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFNNS1MsIDEsIE5v
dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoRk5TQyAoMHgwMywgKEFyZzAgJiAweDAwMDEwMDAxKSkp
CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1l
dGhvZCAoR1NLTCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChGTlNDICgweDA0LCAoQXJn
MCAmIDB4MEYwMDAwMDApKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICAgICAgTWV0aG9kIChTU0tMLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KEZOU0MgKDB4MDUsIChBcmcwICYgMHgwRjAwRkZGRikpKQogICAgICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKElOU0csIDEsIE5vdFNl
cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMCA9IElPRU4gLyogXElPRU4gKi8KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMCB8PSAoSU9TVCA8PCAweDA3KQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwIHw9IChJT0NQIDw8IDB4MDgpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDAgfD0gMHgxMDAwMDAwMAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgICAgIE1ldGhvZCAoSU5TUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB
cmcwICYgMHgxMDAwMDAwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKElPQ1ApCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSAoKEFyZzAgJiAweDgwKSA+PiAweDA3KQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoIUVaUkMgKExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIElPU1QgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoSU9DUCAmJiAoQXJnMCAm
IDB4MDEpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJT0VOID0gMHgwMQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPRU4gPSAw
eDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKElPU1QpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoIUlTT0MgKDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT1NU
ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgRGV2aWNlIChBQykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIE5hbWUgKF9ISUQsICJBQ1BJMDAwMyIgLyogUG93ZXIgU291cmNlIERldmlj
ZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAgICAgIE5h
bWUgKF9VSUQsIDB4MDApICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgICAg
ICAgICAgTmFtZSAoX1BDTCwgUGFja2FnZSAoMHgwMSkgIC8vIF9QQ0w6IFBvd2VyIENvbnN1
bWVyIExpc3QKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgX1NCCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg
ICAgICAgICAgIE5hbWUgKFhYMDAsIEJ1ZmZlciAoMHgwMykge30pCiAgICAgICAgICAgICAg
ICAgICAgICAgIE5hbWUgKEFDREMsIDB4RkYpCiAgICAgICAgICAgICAgICAgICAgICAgIE1l
dGhvZCAoX1BTUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QU1I6IFBvd2VyIFNvdXJjZQog
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ
ZiAoSDhEUikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgPSBIUEFDIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBf
LkhQQUMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1YID0gTG9jYWww
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKChSQkVDICgweDQ2KSAmIDB4MTApKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwID0gMHgwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXQkVDICgweEM4LCBMb2NhbDApCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwxID0gQWNxdWlyZSAoU01VTSwgMHgwM0U4KQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSWYgKChMb2NhbDEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChYWDAw
LCAweDAwLCBTU1pFKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5
dGVGaWVsZCAoWFgwMCwgMHgwMiwgQUNTVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTU1pFID0gMHgwMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo
KExvY2FsMCAhPSBBQ0RDKSB8fCAoQUNEQyA9PSAweEZGKSkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ
ZiAoQ29uZFJlZk9mIChBRk40KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2Nh
bDAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUZONCAoMHgw
MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQ1NUID0g
MHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDAp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFGTjQgKDB4MDIpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUNTVCA9IDB4MDEKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5BTElCKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QUxJQiAoMHgwMSwgWFgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUNEQyA9IExvY2FsMAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUmVsZWFzZSAoU01VTSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf
U1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikK
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgU2NvcGUgKEhLRVkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFNNUFMsIDEsIFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo
KEFyZzAgJiAweEZGRkZGRkZGRkZGRjAwMDApICE9IDB4MDApKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo
MHg4MDAwMDAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTd2l0Y2ggKChBcmcwICYgMHhGRkZGKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl
ICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMTAwCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENh
c2UgKDB4MDEwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEhXQVQgLyogXF9TQl8uUENJ
MC5MUEMwLkVDMF8uSFdBVCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDEgfD0gMHgwMDJEMDAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDEgPSAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTIy
LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEhCMEEp
CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5vdGlmeSAoQkFUMCwgMHg4MCkgLy8gU3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBN
ZXRob2QgKF9RNEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9
MHgwMC0weEZGCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBOb3RpZnkgKEJBVDAsIDB4ODEpIC8vIEluZm9ybWF0aW9uIENoYW5nZQogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTRCLCAwLCBOb3RT
ZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChCQVQwLCAweDgw
KSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgICAgICAgICAgICAgIF5IS0VZLkRZVEMg
KDB4MDAwRjAwMDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICBNZXRob2QgKF9RMjQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwg
eHg9MHgwMC0weEZGCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICBOb3RpZnkgKEJBVDAsIDB4ODApIC8vIFN0YXR1cyBDaGFuZ2UKICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQkZDQywgMCwgTm90U2Vy
aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IElmICheQkFUMC5CMFNUKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOb3RpZnkgKEJBVDAsIDB4ODEpIC8vIEluZm9ybWF0aW9uIENo
YW5nZQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEJBVFcsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQlQyVCkg
e30KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKEJD
TFMsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEVDT1IsIEJ5dGVBY2MsIE5v
TG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBPZmZzZXQgKDB4QTApLCAKICAgICAgICAgICAgICAgICAgICAgICAgU0JSQywg
ICAxNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNCRkMsICAgMTYsIAogICAgICAgICAg
ICAgICAgICAgICAgICBTQkFFLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAgU0JS
UywgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNCQUMsICAgMTYsIAogICAgICAg
ICAgICAgICAgICAgICAgICBTQlZPLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAg
U0JBRiwgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNCQlMsICAgMTYKICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEZpZWxkIChFQ09SLCBCeXRl
QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgT2Zmc2V0ICgweEEwKSwgCiAgICAgICAgICAgICAgICAgICAgICAg
IFNCQk0sICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAgICBTQk1ELCAgIDE2LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgU0JDQywgICAxNgogICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEVDT1IsIEJ5dGVBY2MsIE5vTG9jaywgUHJl
c2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBP
ZmZzZXQgKDB4QTApLCAKICAgICAgICAgICAgICAgICAgICAgICAgU0JEQywgICAxNiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIFNCRFYsICAgMTYsIAogICAgICAgICAgICAgICAgICAg
ICAgICBTQk9NLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAgU0JTSSwgICAxNiwg
CiAgICAgICAgICAgICAgICAgICAgICAgIFNCRFQsICAgMTYsIAogICAgICAgICAgICAgICAg
ICAgICAgICBTQlNOLCAgIDE2CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICBGaWVsZCAoRUNPUiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBMCks
IAogICAgICAgICAgICAgICAgICAgICAgICBTQkNILCAgIDMyCiAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoRUNPUiwgQnl0ZUFjYywgTm9Mb2Nr
LCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIE9mZnNldCAoMHhBMCksIAogICAgICAgICAgICAgICAgICAgICAgICBTQk1OLCAgIDEy
OAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEVD
T1IsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTApLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgU0JETiwgICAxMjgKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgIE11dGV4IChCQVRNLCAweDAwKQogICAgICAgICAgICAgICAgICAgIE1ldGhv
ZCAoR0JJRiwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKEJBVE0sIDB4RkZGRikKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKEFyZzIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEhJSUQgPSAoQXJnMCB8IDB4MDEpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDcgPSBTQkJNIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBf
LlNCQk0gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNyA+Pj0gMHgwRgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJnMSBbMHgwMF0gPSAoTG9jYWw3IF4gMHgw
MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhJSUQgPSBBcmcwCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJZiAoTG9jYWw3KQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IChTQkZDICog
MHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBTQkZDIC8qIFxfU0JfLlBDSTAuTFBD
MC5FQzBfLlNCRkMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBcmcxIFsweDAyXSA9IExvY2FsMQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSElJRCA9IChBcmcwIHwgMHgwMikKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElmIChMb2NhbDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKFNCREMgKiAweDBBKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IFNCREMgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8u
U0JEQyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFyZzEgWzB4MDFdID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBEaXZpZGUgKExvY2FsMSwgMHgxNCwgTG9jYWwyLCBBcmcxIFsweDA1XSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMb2NhbDcpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJnMSBbMHgw
Nl0gPSAweEM4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFbHNlSWYgKFNCRFYpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGl2aWRlICgweDAwMDMwRDQw
LCBTQkRWLCBMb2NhbDIsIEFyZzEgWzB4MDZdKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZzEgWzB4
MDZdID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFyZzEgWzB4MDRdID0gU0JEViAvKiBcX1NCXy5QQ0kwLkxQQzAu
RUMwXy5TQkRWICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBTQlNO
IC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLlNCU04gKi8KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5hbWUgKFNFUk4sIEJ1ZmZlciAoMHgwNikKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAiCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwyID0gMHgwNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKExvY2Fs
MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEaXZpZGUgKExvY2FsMCwgMHgwQSwgTG9jYWwxLCBMb2NhbDApCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VSTiBbTG9jYWwyXSA9IChMb2NhbDEgKyAw
eDMwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMi0tCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJn
MSBbMHgwQV0gPSBTRVJOIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLkdCSUYuU0VSTiAqLwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSElJRCA9IChBcmcwIHwgMHgwNikKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFyZzEgWzB4MDldID0gU0JETiAvKiBcX1NCXy5QQ0kw
LkxQQzAuRUMwXy5TQkROICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBISUlEID0g
KEFyZzAgfCAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlRZUCwg
QnVmZmVyICgweDA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAg
ICAgICAgICAgICAgICAgICAgLy8gLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVFlQID0gU0JDSCAvKiBcX1NCXy5Q
Q0kwLkxQQzAuRUMwXy5TQkNIICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcx
IFsweDBCXSA9IEJUWVAgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uR0JJRi5CVFlQICovCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBISUlEID0gKEFyZzAgfCAweDA1KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQXJnMSBbMHgwQ10gPSBTQk1OIC8qIFxfU0JfLlBDSTAu
TFBDMC5FQzBfLlNCTU4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFyZzEgWzB4MDFdID0gMHhGRkZGRkZGRgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQXJnMSBbMHgwNV0gPSAweDAwCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBcmcxIFsweDA2XSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFyZzEgWzB4MDJdID0gMHhGRkZGRkZGRgogICAgICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChCQVRNKQogICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKEFyZzEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICBNZXRob2QgKEdCSVgsIDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChCQVRNLCAweEZG
RkYpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBcmcyKQogICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBISUlEID0gKEFyZzAgfCAw
eDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3ID0gU0JDQyAvKiBcX1NC
Xy5QQ0kwLkxQQzAuRUMwXy5TQkNDICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
cmcxIFsweDA4XSA9IExvY2FsNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3
ID0gU0JCTSAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5TQkJNICovCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDcgPj49IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFyZzEgWzB4MDFdID0gKExvY2FsNyBeIDB4MDEpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBISUlEID0gQXJnMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExv
Y2FsNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDEgPSAoU0JGQyAqIDB4MEEpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwxID0gU0JGQyAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5TQkZDICovCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJn
MSBbMHgwM10gPSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhJSUQgPSAo
QXJnMCB8IDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTG9jYWw3KQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMCA9IChTQkRDICogMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
PSBTQkRDIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLlNCREMgKi8KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcxIFsweDAy
XSA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGl2aWRlIChMb2NhbDEs
IDB4MTQsIExvY2FsMiwgQXJnMSBbMHgwNl0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoTG9jYWw3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFyZzEgWzB4MDddID0gMHhDOAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmIChT
QkRWKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIERpdmlkZSAoMHgwMDAzMEQ0MCwgU0JEViwgTG9jYWwyLCBBcmcxIFsw
eDA3XSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBcmcxIFsweDA3XSA9IDB4MDAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcxIFsw
eDA1XSA9IFNCRFYgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uU0JEViAqLwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gU0JTTiAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMw
Xy5TQlNOICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChTRVJOLCBCdWZm
ZXIgKDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIiAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4MDQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdoaWxlIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGl2aWRlIChMb2Nh
bDAsIDB4MEEsIExvY2FsMSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNFUk4gW0xvY2FsMl0gPSAoTG9jYWwxICsgMHgzMCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDItLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZzEgWzB4MTFdID0gU0VSTiAvKiBcX1NC
Xy5QQ0kwLkxQQzAuRUMwXy5HQklYLlNFUk4gKi8KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEhJSUQgPSAoQXJnMCB8IDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
cmcxIFsweDEwXSA9IFNCRE4gLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uU0JETiAqLwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSElJRCA9IChBcmcwIHwgMHgwNCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5hbWUgKEJUWVAsIEJ1ZmZlciAoMHgwNSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgIC8vIC4u
Li4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQlRZUCA9IFNCQ0ggLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uU0JDSCAqLwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJnMSBbMHgxMl0gPSBCVFlQIC8qIFxfU0Jf
LlBDSTAuTFBDMC5FQzBfLkdCSVguQlRZUCAqLwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSElJRCA9IChBcmcwIHwgMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFy
ZzEgWzB4MTNdID0gU0JNTiAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5TQk1OICovCiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcx
IFsweDAyXSA9IDB4RkZGRkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZzEg
WzB4MDZdID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJnMSBbMHgwN10g
PSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcxIFsweDAzXSA9IDB4RkZG
RkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg
ICAgUmVsZWFzZSAoQkFUTSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBcmcx
KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChH
QkNMLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChCQ0xTID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9
PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwID0gQlNDMCAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5CU0MwICov
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBCRUMwIC8qIFxfU0JfLlBD
STAuTFBDMC5FQzBfLkJFQzAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEJTQzEgLyogXF9TQl8uUENJMC5MUEMw
LkVDMF8uQlNDMSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQkVD
MSAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5CRUMxICovCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMCA+IDB4MDApICYm
IChMb2NhbDAgPD0gMHg2NCkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgPiAweDAwKSAmJiAoTG9jYWwxIDw9
IDB4NjQpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA+IExvY2FsMCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChCMEkwLCAweDAwKQogICAgICAgICAg
ICAgICAgICAgIE5hbWUgKEIwSTEsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo
QjBJMiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBOYW1lIChCMEkzLCAweDAwKQogICAg
ICAgICAgICAgICAgICAgIE5hbWUgKEIxSTAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
TmFtZSAoQjFJMSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBOYW1lIChCMUkyLCAweDAw
KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKEIxSTMsIDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgTWV0aG9kIChHQlNULCA0LCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoQkFUTSwgMHhGRkZGKQogICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgJiAweDIwKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMgog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJ
ZiAoKEFyZzEgJiAweDQwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMQogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEg
JiAweDA3KSkge30KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gMHgw
NAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJ
ZiAoKChBcmcxICYgMHgwNykgPT0gMHgwNykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4RkZGRkZGRkYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4RkZGRkZGRkYKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsMyA9IDB4RkZGRkZGRkYKICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhJSUQgPSBBcmcwCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSBTQlZPIC8qIFxfU0JfLlBDSTAuTFBD
MC5FQzBfLlNCVk8gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBcmcyKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMiA9IChTQlJDICogMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIg
PSBTQlJDIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLlNCUkMgKi8KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBT
QkFDIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLlNCQUMgKi8KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoTG9jYWwxID49IDB4ODAwMCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAg
JiAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9ICgweDAwMDEwMDAwIC0gTG9jYWwx
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAwCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICghKExvY2FsMCAmIDB4
MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQXJnMikKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDEgKj0gTG9jYWwzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxIC89
IDB4MDNFOAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUgPSAoMHgwMSA8PCAo
QXJnMCA+PiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgQlNXQSB8PSBCU1dSIC8q
IFxfU0JfLlBDSTAuTFBDMC5FQzBfLkJTV1IgKi8KICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKCgoQlNXQSAmIExvY2FsNSkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZzMgWzB4MDBdID0gTG9jYWwwCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBcmczIFsweDAxXSA9IExvY2FsMQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQXJnMyBbMHgwMl0gPSBMb2NhbDIKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFyZzMgWzB4MDNdID0gTG9jYWwzCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQjBJMCA9IExvY2FsMAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIwSTEgPSBMb2NhbDEKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBCMEkyID0gTG9jYWwyCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQjBJMyA9IExvY2FsMwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIxSTAgPSBM
b2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCMUkxID0gTG9jYWwxCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQjFJMiA9IExvY2FsMgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEIxSTMgPSBMb2NhbDMKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIElmICheQUMuX1BTUiAoKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgw
MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBcmczIFsweDAwXSA9IEIwSTAgLyogXF9TQl8uUENJMC5M
UEMwLkVDMF8uQjBJMCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
cmczIFsweDAxXSA9IEIwSTEgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uQjBJMSAqLwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmczIFsweDAyXSA9IEIwSTIgLyog
XF9TQl8uUENJMC5MUEMwLkVDMF8uQjBJMiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBcmczIFsweDAzXSA9IEIwSTMgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8u
QjBJMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmczIFsweDAwXSA9
IEIxSTAgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uQjFJMCAqLwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBcmczIFsweDAxXSA9IEIxSTEgLyogXF9TQl8uUENJMC5M
UEMwLkVDMF8uQjFJMSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
cmczIFsweDAyXSA9IEIxSTIgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uQjFJMiAqLwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmczIFsweDAzXSA9IEIxSTMgLyog
XF9TQl8uUENJMC5MUEMwLkVDMF8uQjFJMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBcmczIFsweDAwXSA9IExvY2FsMAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFyZzMgWzB4MDFdID0gTG9jYWwxCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQXJnMyBbMHgwMl0gPSBMb2NhbDIKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBcmczIFsweDAzXSA9IExvY2FsMwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo
KChMb2NhbDAgJiAweDA0KSA9PSAweDAwKSAmJiAoKExvY2FsMiA+IDB4MDApICYmIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMb2NhbDMgPiAweDAwKSkpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJTV0EgJj0gfkxvY2FsNQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZzMg
WzB4MDBdID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJnMyBb
MHgwMV0gPSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmczIFsw
eDAyXSA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZzMgWzB4
MDNdID0gTG9jYWwzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKEJBVE0p
CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChHQkNMIChBcmcwKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4
MDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZzMgWzB4MDBdID0gTG9jYWwwCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
biAoQXJnMykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5h
bWUgKEJTV1IsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlNXQSwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEFKVFAsIDMsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBB
cmcxCiAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKEJBVE0sIDB4RkZGRikKICAg
ICAgICAgICAgICAgICAgICAgICAgSElJRCA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwxID0gU0JSQyAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5TQlJDICovCiAgICAg
ICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKEJBVE0pCiAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gSEIwUyAvKiBcX1NCXy5QQ0kwLkxQ
QzAuRUMwXy5IQjBTICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDIgPSBIQjFTIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBf
LkhCMVMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDIgJiAweDIwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID4gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwwICs9IDB4MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA8PSBMb2NhbDEpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9IChMb2NhbDEgKyAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJ
ZiAoKExvY2FsMiAmIDB4NDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+PSBMb2NhbDEpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9IChMb2NhbDEgLSAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1
cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
IERldmljZSAoQkFUMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEEiKSAvKiBDb250cm9sIE1ldGhv
ZCBCYXR0ZXJ5ICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAg
ICAgICAgTmFtZSAoX1VJRCwgMHgwMCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAg
ICAgICAgICAgICAgICBOYW1lIChfUENMLCBQYWNrYWdlICgweDAxKSAgLy8gX1BDTDogUG93
ZXIgQ29uc3VtZXIgTGlzdAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfU0IKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg
ICAgICAgICAgICAgICAgICAgTmFtZSAoQjBTVCwgMHgwMCkKICAgICAgICAgICAgICAgICAg
ICAgICAgTmFtZSAoQlQwSSwgUGFja2FnZSAoMHgwRCkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDJBMzAsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIgogICAgICAgICAgICAgICAgICAgICAg
ICB9KQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChCWDBJLCBQYWNrYWdlICgweDE1
KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAweDAwMDE3MzE4LCAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZG
RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzRTgsIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMUY0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4
RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw
CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE5h
bWUgKEJUMFAsIFBhY2thZ2UgKDB4MDQpIHt9KQogICAgICAgICAgICAgICAgICAgICAgICBN
ZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEg4
RFIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQjBTVCA9IEhCMEEgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uSEIwQSAq
LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRWxzZUlmICgoUkJFQyAoMHgzOCkgJiAweDgwKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCMFNUID0gMHgw
MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEIwU1QgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEIwU1QpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UmV0dXJuICgweDFGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQklGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g
X0JJRjogQmF0dGVyeSBJbmZvcm1hdGlvbgogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDcgPSAweDAwCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDYgPSAweDBBCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXaGlsZSAoKCFMb2NhbDcgJiYgTG9jYWw2KSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoSEIwQSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoKEhCMFMgJiAweDA3KSA9PSAweDA3KSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU2xlZXAgKDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsNi0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDcgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw2ID0g
MHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQklYICgweDAw
LCBCWDBJLCBMb2NhbDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVDBJIFsweDAw
XSA9IERlcmVmT2YgKEJYMEkgWzB4MDFdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
QlQwSSBbMHgwMV0gPSBEZXJlZk9mIChCWDBJIFsweDAyXSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEJUMEkgWzB4MDJdID0gRGVyZWZPZiAoQlgwSSBbMHgwM10pCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBCVDBJIFsweDAzXSA9IERlcmVmT2YgKEJYMEkgWzB4MDRd
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlQwSSBbMHgwNF0gPSBEZXJlZk9mIChC
WDBJIFsweDA1XSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJUMEkgWzB4MDVdID0g
RGVyZWZPZiAoQlgwSSBbMHgwNl0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVDBJ
IFsweDA2XSA9IERlcmVmT2YgKEJYMEkgWzB4MDddKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQlQwSSBbMHgwN10gPSBEZXJlZk9mIChCWDBJIFsweDBFXSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEJUMEkgWzB4MDhdID0gRGVyZWZPZiAoQlgwSSBbMHgwRl0pCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBCVDBJIFsweDA5XSA9IERlcmVmT2YgKEJYMEkg
WzB4MTBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlQwSSBbMHgwQV0gPSBEZXJl
Zk9mIChCWDBJIFsweDExXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJUMEkgWzB4
MEJdID0gRGVyZWZPZiAoQlgwSSBbMHgxMl0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBCVDBJIFsweDBDXSA9IERlcmVmT2YgKEJYMEkgWzB4MTNdKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUmV0dXJuIChCVDBJKSAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5CQVQw
LkJUMEkgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICAgICAgTWV0aG9kIChfQklYLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0JJWDogQmF0dGVy
eSBJbmZvcm1hdGlvbiBFeHRlbmRlZAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDcgPSAweDAwCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDYgPSAweDBBCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
aGlsZSAoKCFMb2NhbDcgJiYgTG9jYWw2KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoSEIwQSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElmICgoKEhCMFMgJiAweDA3KSA9PSAweDA3KSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU2xlZXAgKDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsNi0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDcgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw2ID0gMHgw
MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdCSVgg
KDB4MDAsIEJYMEksIExvY2FsNykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0JTVCwgMCwgTm90U2VyaWFsaXplZCkgIC8v
IF9CU1Q6IEJhdHRlcnkgU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChEZXJlZk9mIChCWDBJIFsweDAxXSkg
XiAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgR0JTVCAoMHgwMCwgSEIwUywg
TG9jYWwwLCBCVDBQKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoSEIwUyAm
IDB4MDcpICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRGVyZWZPZiAoQlQwUCBbMHgwMl0pID09
IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTQpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdCU1QgKDB4MDAsIEhCMFMsIExvY2FsMCwgQlQwUCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoSEIwUyAmIDB4MDcp
ID09IDB4MDcpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEJUMFAgWzB4MDFdID0gMHhGRkZGRkZGRgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEJUMFAgWzB4MDJdID0gMHhGRkZGRkZGRgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEJUMFAgWzB4MDNdID0gMHhGRkZGRkZGRgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF5eXl5eRkFOMC5TUlBNIChUTVAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5e
Xl5GQU4wLkNSTkYgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQlQw
UCkgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uQkFUMC5CVDBQICovCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0JUUCwgMSwg
Tm90U2VyaWFsaXplZCkgIC8vIF9CVFA6IEJhdHRlcnkgVHJpcCBQb2ludAogICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU00ICY9IDB4
RUYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBcmcwKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBBcmcw
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCFEZXJlZk9mIChCWDBJIFsw
eDAxXSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBEaXZpZGUgKExvY2FsMSwgMHgwQSwgTG9jYWwwLCBM
b2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBBSlRQICgweDAwLCBMb2NhbDEsIExvY2Fs
MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVDBMID0gKExvY2FsMSAmIDB4
RkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFQwSCA9ICgoTG9jYWwxID4+
IDB4MDgpICYgMHhGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU00IHw9
IDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2Nv
cGUgKFxfU0IuUENJMC5MUEMwLkVDMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoRUNNTSwgU3lzdGVtTWVtb3J5LCAw
eEZFRUMyMDAwLCAweDAxMDApCiAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkIChFQ01N
LCBBbnlBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUV0JULCAgIDIwNDgKICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlRCRiwgQnVmZmVy
ICgweDAxMDApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg
ICAgICAgICBNZXRob2QgKEJUSUYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJUQkYgPSBUV0JUIC8q
IFxfU0JfLlBDSTAuTFBDMC5FQzBfLlRXQlQgKi8KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoQlRCRikgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uQlRCRiAqLwogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICBTY29wZSAoSEtFWSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIE1ldGhvZCAoU0JJRywgMSwgTm90U2VyaWFsaXplZCkKICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu
IChCVElGICgpKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAg
ICBPcGVyYXRpb25SZWdpb24gKFBJUlEsIFN5c3RlbUlPLCAweDBDMDAsIDB4MDIpCiAgICAg
ICAgRmllbGQgKFBJUlEsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewog
ICAgICAgICAgICBQSURYLCAgIDgsIAogICAgICAgICAgICBQREFULCAgIDgKICAgICAgICB9
CgogICAgICAgIEluZGV4RmllbGQgKFBJRFgsIFBEQVQsIEJ5dGVBY2MsIE5vTG9jaywgUHJl
c2VydmUpCiAgICAgICAgewogICAgICAgICAgICBQSVJBLCAgIDgsIAogICAgICAgICAgICBQ
SVJCLCAgIDgsIAogICAgICAgICAgICBQSVJDLCAgIDgsIAogICAgICAgICAgICBQSVJELCAg
IDgsIAogICAgICAgICAgICBQSVJFLCAgIDgsIAogICAgICAgICAgICBQSVJGLCAgIDgsIAog
ICAgICAgICAgICBQSVJHLCAgIDgsIAogICAgICAgICAgICBQSVJILCAgIDgsIAogICAgICAg
ICAgICBPZmZzZXQgKDB4MEMpLCAKICAgICAgICAgICAgU0lSQSwgICA4LCAKICAgICAgICAg
ICAgU0lSQiwgICA4LCAKICAgICAgICAgICAgU0lSQywgICA4LCAKICAgICAgICAgICAgU0lS
RCwgICA4LCAKICAgICAgICAgICAgUElSUywgICA4LCAKICAgICAgICAgICAgT2Zmc2V0ICgw
eDEzKSwgCiAgICAgICAgICAgIEhEQUQsICAgOCwgCiAgICAgICAgICAgIE9mZnNldCAoMHgx
NyksIAogICAgICAgICAgICBTRENMLCAgIDgsIAogICAgICAgICAgICBPZmZzZXQgKDB4MUEp
LCAKICAgICAgICAgICAgU0RJTywgICA4LCAKICAgICAgICAgICAgT2Zmc2V0ICgweDMwKSwg
CiAgICAgICAgICAgIFVTQjEsICAgOCwgCiAgICAgICAgICAgIE9mZnNldCAoMHgzNCksIAog
ICAgICAgICAgICBVU0IzLCAgIDgsIAogICAgICAgICAgICBPZmZzZXQgKDB4NDEpLCAKICAg
ICAgICAgICAgU0FUQSwgICA4LCAKICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAg
ICAgICAgIEdJT0MsICAgOCwgCiAgICAgICAgICAgIE9mZnNldCAoMHg3MCksIAogICAgICAg
ICAgICBJMkMwLCAgIDgsIAogICAgICAgICAgICBJMkMxLCAgIDgsIAogICAgICAgICAgICBJ
MkMyLCAgIDgsIAogICAgICAgICAgICBJMkMzLCAgIDgsIAogICAgICAgICAgICBVUlQwLCAg
IDgsIAogICAgICAgICAgICBVUlQxLCAgIDgKICAgICAgICB9CgogICAgICAgIE9wZXJhdGlv
blJlZ2lvbiAoS0JERCwgU3lzdGVtSU8sIDB4NjQsIE9uZSkKICAgICAgICBGaWVsZCAoS0JE
RCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIFBE
NjQsICAgOAogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChEU1BJLCAwLCBOb3RTZXJpYWxp
emVkKQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuRFNQSVxu
IiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgSU5U
QSAoMHgxRikKICAgICAgICAgICAgSU5UQiAoMHgxRikKICAgICAgICAgICAgSU5UQyAoMHgx
RikKICAgICAgICAgICAgSU5URCAoMHgxRikKICAgICAgICAgICAgTG9jYWwxID0gUEQ2NCAv
KiBcX1NCXy5QRDY0ICovCiAgICAgICAgICAgIFBJUkUgPSAweDFGCiAgICAgICAgICAgIFBJ
UkYgPSAweDFGCiAgICAgICAgICAgIFBJUkcgPSAweDFGCiAgICAgICAgICAgIFBJUkggPSAw
eDFGCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKElOVEEsIDEsIE5vdFNlcmlhbGl6ZWQp
CiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9TQi5JTlRBIEFyZzAg
PSAweCVYXG4iLCBUb0ludGVnZXIgKEFyZzApLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBa
ZXJvKQogICAgICAgICAgICBQSVJBID0gQXJnMAogICAgICAgICAgICBJZiAoUElDTSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgSERBRCA9IEFyZzAKICAgICAgICAgICAgICAg
IFNEQ0wgPSBBcmcwCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo
SU5UQiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCJQ
TEEtQVNMLVxcX1NCLklOVEIgQXJnMCA9IDB4JVhcbiIsIFRvSW50ZWdlciAoQXJnMCksIFpl
cm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgIFBJUkIgPSBBcmcwCiAg
ICAgICAgfQoKICAgICAgICBNZXRob2QgKElOVEMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgewogICAgICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9TQi5JTlRDIEFyZzAgPSAweCVY
XG4iLCBUb0ludGVnZXIgKEFyZzApLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQog
ICAgICAgICAgICBQSVJDID0gQXJnMAogICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgVVNCMSA9IEFyZzAKICAgICAgICAgICAgICAgIFVTQjMg
PSBBcmcwCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoSU5URCwg
MSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCJQTEEtQVNM
LVxcX1NCLklOVEQgQXJnMCA9IDB4JVhcbiIsIFRvSW50ZWdlciAoQXJnMCksIFplcm8sIFpl
cm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgIFBJUkQgPSBBcmcwCiAgICAgICAg
ICAgIElmIChQSUNNKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTQVRBID0gQXJn
MAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBOYW1lIChQUlMxLCBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVM
b3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezMsNSw2LDEwLDExfQogICAgICAgIH0p
CiAgICAgICAgTmFtZSAoQlVGQSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgIHsKICAg
ICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkKICAgICAgICAgICAg
ICAgIHsxNX0KICAgICAgICB9KQogICAgICAgIERldmljZSAoTE5LQSkKICAgICAgICB7CiAg
ICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSAvKiBQQ0kgSW50ZXJy
dXB0IExpbmsgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg
TmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE1ldGhv
ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBJZiAoKFBJUkEgJiYgKFBJUkEgIT0gMHgxRikpKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NC
LkxOS0EuX1NUQSA9IDB4QlxuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVy
bykKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LQS5fU1RBID0gMHg5XG4iLCBaZXJvLCBa
ZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIFJldHVy
biAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9zc2libGUgUmVz
b3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIlBM
QS1BU0wtXFxfU0IuTE5LQS5fUFJTXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJv
LCBaZXJvKQogICAgICAgICAgICAgICAgUmV0dXJuIChQUlMxKSAvKiBcX1NCXy5QUlMxICov
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFs
aXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0EuX0RJU1xuIiwgWmVybywgWmVybywg
WmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgIElOVEEgKDB4MUYpCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXpl
ZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LQS5fQ1JTXG4iLCBaZXJv
LCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgQ3JlYXRl
V29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAgICAgICAgICBJUlFYID0gKE9u
ZSA8PCBQSVJBKSAvKiBcX1NCXy5QSVJBICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJV
RkEpIC8qIFxfU0JfLkJVRkEgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k
IChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRp
bmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NC
LkxOS0EuX1NSU1xuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAg
ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUkEpCiAgICAgICAg
ICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWwwKQogICAgICAgICAgICAgICAg
TG9jYWwwLS0KICAgICAgICAgICAgICAgIFBJUkEgPSBMb2NhbDAKICAgICAgICAgICAgfQog
ICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMTktCKQogICAgICAgIHsKICAgICAgICAgICAg
TmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1cHQgTGluayBE
ZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfVUlE
LCAweDAyKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg
MCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBJZiAoKFBJUkIgJiYgKFBJUkIgIT0gMHgxRikpKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0IuX1NU
QSA9IDB4QlxuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2
MCAoIlBMQS1BU0wtXFxfU0IuTE5LQi5fU1RBID0gMHg5XG4iLCBaZXJvLCBaZXJvLCBaZXJv
LCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChf
UFJTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0
dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxf
U0IuTE5LQi5fUFJTXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQog
ICAgICAgICAgICAgICAgUmV0dXJuIChQUlMxKSAvKiBcX1NCXy5QUlMxICovCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkgIC8v
IF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00
NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0IuX0RJU1xuIiwgWmVybywgWmVybywgWmVybywgWmVy
bywgWmVybywgWmVybykKICAgICAgICAgICAgICAgIElOVEIgKDB4MUYpCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9D
UlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LQi5fQ1JTXG4iLCBaZXJvLCBaZXJvLCBa
ZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk
IChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAgICAgICAgICBJUlFYID0gKE9uZSA8PCBQSVJC
KSAvKiBcX1NCXy5QSVJCICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRkEpIC8qIFxf
U0JfLkJVRkEgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAx
LCBOb3RTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRpbmdzCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0IuX1NS
U1xuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAg
ICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUkEpCiAgICAgICAgICAgICAgICBG
aW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWwwKQogICAgICAgICAgICAgICAgTG9jYWwwLS0K
ICAgICAgICAgICAgICAgIFBJUkIgPSBMb2NhbDAKICAgICAgICAgICAgfQogICAgICAgIH0K
CiAgICAgICAgRGV2aWNlIChMTktDKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJ
RCwgRWlzYUlkICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1cHQgTGluayBEZXZpY2UgKi8p
ICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCAweDAzKSAg
Ly8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy
aWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBJZiAoKFBJUkMgJiYgKFBJUkMgIT0gMHgxRikpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0MuX1NUQSA9IDB4Qlxu
IiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1B
U0wtXFxfU0IuTE5LQy5fU1RBID0gMHg5XG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBa
ZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBO
b3RTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0dGluZ3MKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LQy5f
UFJTXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAg
ICAgICAgUmV0dXJuIChQUlMxKSAvKiBcX1NCXy5QUlMxICovCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ESVM6IERp
c2FibGUgRGV2aWNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEt
QVNMLVxcX1NCLkxOS0MuX0RJU1xuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywg
WmVybykKICAgICAgICAgICAgICAgIElOVEMgKDB4MUYpCiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJl
bnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2
MCAoIlBMQS1BU0wtXFxfU0IuTE5LQy5fQ1JTXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJv
LCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBP
bmUsIElSUVgpCiAgICAgICAgICAgICAgICBJUlFYID0gKE9uZSA8PCBQSVJDKSAvKiBcX1NC
Xy5QSVJDICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRkEpIC8qIFxfU0JfLkJVRkEg
Ki8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJp
YWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0MuX1NSU1xuIiwgWmVy
bywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgIENyZWF0
ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0Umln
aHRCaXQgKElSQSwgTG9jYWwwKQogICAgICAgICAgICAgICAgTG9jYWwwLS0KICAgICAgICAg
ICAgICAgIFBJUkMgPSBMb2NhbDAKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
RGV2aWNlIChMTktEKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk
ICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1cHQgTGluayBEZXZpY2UgKi8pICAvLyBfSElE
OiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCAweDA0KSAgLy8gX1VJRDog
VW5pcXVlIElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkg
IC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBJ
UkQgJiYgKFBJUkQgIT0gMHgxRikpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0QuX1NUQSA9IDB4QlxuIiwgWmVybywg
WmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgICAgICBSZXR1
cm4gKDB4MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0Iu
TE5LRC5fU1RBID0gMHg5XG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJv
KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxp
emVkKSAgLy8gX1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LRC5fUFJTXG4iLCBa
ZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgUmV0
dXJuIChQUlMxKSAvKiBcX1NCXy5QUlMxICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2
aWNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NC
LkxOS0QuX0RJU1xuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAg
ICAgICAgICAgICAgIElOVEQgKDB4MUYpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l
dGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy
Y2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1B
U0wtXFxfU0IuTE5LRC5fQ1JTXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBa
ZXJvKQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgp
CiAgICAgICAgICAgICAgICBJUlFYID0gKE9uZSA8PCBQSVJEKSAvKiBcX1NCXy5QSVJEICov
CiAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRkEpIC8qIFxfU0JfLkJVRkEgKi8KICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKSAg
Ly8gX1NSUzogU2V0IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0QuX1NSU1xuIiwgWmVybywgWmVybywg
WmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs
ZCAoQXJnMCwgT25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElS
QSwgTG9jYWwwKQogICAgICAgICAgICAgICAgTG9jYWwwLS0KICAgICAgICAgICAgICAgIFBJ
UkQgPSBMb2NhbDAKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChM
TktFKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMw
RiIpIC8qIFBDSSBJbnRlcnJ1cHQgTGluayBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2Fy
ZSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCAweDA1KSAgLy8gX1VJRDogVW5pcXVlIElE
CiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6
IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBJUkUgJiYgKFBJ
UkUgIT0gMHgxRikpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00
NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0UuX1NUQSA9IDB4QlxuIiwgWmVybywgWmVybywgWmVy
bywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIp
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LRS5fU1RB
ID0gMHg5XG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g
X1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LRS5fUFJTXG4iLCBaZXJvLCBaZXJv
LCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgUmV0dXJuIChQUlMx
KSAvKiBcX1NCXy5QUlMxICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo
X0RJUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0UuX0RJ
U1xuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAg
ICAgIFBJUkUgPSAweDFGCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NS
UywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGlu
Z3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0Iu
TE5LRS5fQ1JTXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAg
ICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAg
ICAgICAgICBJUlFYID0gKE9uZSA8PCBQSVJFKSAvKiBcX1NCXy5QSVJFICovCiAgICAgICAg
ICAgICAgICBSZXR1cm4gKEJVRkEpIC8qIFxfU0JfLkJVRkEgKi8KICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NSUzog
U2V0IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00
NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0UuX1NSU1xuIiwgWmVybywgWmVybywgWmVybywgWmVy
bywgWmVybywgWmVybykKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwg
T25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWww
KQogICAgICAgICAgICAgICAgTG9jYWwwLS0KICAgICAgICAgICAgICAgIFBJUkUgPSBMb2Nh
bDAKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMTktGKQogICAg
ICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpIC8qIFBD
SSBJbnRlcnJ1cHQgTGluayBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAg
ICAgICAgICBOYW1lIChfVUlELCAweDA2KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAg
ICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBJUkYgJiYgKFBJUkYgIT0gMHgx
RikpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCJQTEEt
QVNMLVxcX1NCLkxOS0YuX1NUQSA9IDB4QlxuIiwgWmVybywgWmVybywgWmVybywgWmVybywg
WmVybywgWmVybykKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LRi5fU1RBID0gMHg5XG4i
LCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9z
c2libGUgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
TTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LRi5fUFJTXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBa
ZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgUmV0dXJuIChQUlMxKSAvKiBcX1NC
Xy5QUlMxICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwg
Tm90U2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0YuX0RJU1xuIiwgWmVy
bywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgIFBJUkYg
PSAweDFGCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90
U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LRi5fQ1JT
XG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAg
ICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAgICAgICAgICBJ
UlFYID0gKE9uZSA8PCBQSVJGKSAvKiBcX1NCXy5QSVJGICovCiAgICAgICAgICAgICAgICBS
ZXR1cm4gKEJVRkEpIC8qIFxfU0JfLkJVRkEgKi8KICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291
cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEt
QVNMLVxcX1NCLkxOS0YuX1NSU1xuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywg
WmVybykKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUkEp
CiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWwwKQogICAgICAg
ICAgICAgICAgTG9jYWwwLS0KICAgICAgICAgICAgICAgIFBJUkYgPSBMb2NhbDAKICAgICAg
ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMTktHKQogICAgICAgIHsKICAg
ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1
cHQgTGluayBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBO
YW1lIChfVUlELCAweDA3KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE1ldGhv
ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBJZiAoKFBJUkcgJiYgKFBJUkcgIT0gMHgxRikpKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NC
LkxOS0cuX1NUQSA9IDB4QlxuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVy
bykKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LRy5fU1RBID0gMHg5XG4iLCBaZXJvLCBa
ZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIFJldHVy
biAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9zc2libGUgUmVz
b3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIlBM
QS1BU0wtXFxfU0IuTE5LRy5fUFJTXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJv
LCBaZXJvKQogICAgICAgICAgICAgICAgUmV0dXJuIChQUlMxKSAvKiBcX1NCXy5QUlMxICov
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFs
aXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0cuX0RJU1xuIiwgWmVybywgWmVybywg
WmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAgIFBJUkcgPSAweDFGCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXpl
ZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LRy5fQ1JTXG4iLCBaZXJv
LCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgQ3JlYXRl
V29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAgICAgICAgICBJUlFYID0gKE9u
ZSA8PCBQSVJHKSAvKiBcX1NCXy5QSVJHICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJV
RkEpIC8qIFxfU0JfLkJVRkEgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k
IChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRp
bmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NC
LkxOS0cuX1NSU1xuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAg
ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUkEpCiAgICAgICAg
ICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWwwKQogICAgICAgICAgICAgICAg
TG9jYWwwLS0KICAgICAgICAgICAgICAgIFBJUkcgPSBMb2NhbDAKICAgICAgICAgICAgfQog
ICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMTktIKQogICAgICAgIHsKICAgICAgICAgICAg
TmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1cHQgTGluayBE
ZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfVUlE
LCAweDA4KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg
MCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBJZiAoKFBJUkggJiYgKFBJUkggIT0gMHgxRikpKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0guX1NU
QSA9IDB4QlxuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2
MCAoIlBMQS1BU0wtXFxfU0IuTE5LSC5fU1RBID0gMHg5XG4iLCBaZXJvLCBaZXJvLCBaZXJv
LCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChf
UFJTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0
dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxf
U0IuTE5LSC5fUFJTXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQog
ICAgICAgICAgICAgICAgUmV0dXJuIChQUlMxKSAvKiBcX1NCXy5QUlMxICovCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkgIC8v
IF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00
NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0guX0RJU1xuIiwgWmVybywgWmVybywgWmVybywgWmVy
bywgWmVybywgWmVybykKICAgICAgICAgICAgICAgIFBJUkggPSAweDFGCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9D
UlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuTE5LSC5fQ1JTXG4iLCBaZXJvLCBaZXJvLCBa
ZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk
IChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAgICAgICAgICBJUlFYID0gKE9uZSA8PCBQSVJI
KSAvKiBcX1NCXy5QSVJIICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRkEpIC8qIFxf
U0JfLkJVRkEgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAx
LCBOb3RTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRpbmdzCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLkxOS0guX1NS
U1xuIiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAg
ICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUkEpCiAgICAgICAgICAgICAgICBG
aW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWwwKQogICAgICAgICAgICAgICAgTG9jYWwwLS0K
ICAgICAgICAgICAgICAgIFBJUkggPSBMb2NhbDAKICAgICAgICAgICAgfQogICAgICAgIH0K
CiAgICAgICAgTWV0aG9kIChHU01JLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAg
ICAgICAgICAgQVBNRCA9IEFyZzAKICAgICAgICAgICAgQVBNQyA9IDB4RTQKICAgICAgICAg
ICAgU2xlZXAgKDB4MDIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFM4MEgsIDEsIE5v
dFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBQODBIID0gQXJnMAogICAgICAg
IH0KCiAgICAgICAgTWV0aG9kIChCU01JLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsK
ICAgICAgICAgICAgQVBNRCA9IEFyZzAKICAgICAgICAgICAgQVBNQyA9IDB4QkUKICAgICAg
ICAgICAgU2xlZXAgKE9uZSkKICAgICAgICB9CiAgICB9CgogICAgTmFtZSAoVFNPUywgMHg3
NSkKICAgIE5hbWUgKFVSMEksIDB4MDMpCiAgICBOYW1lIChVUjFJLCAweDBFKQogICAgTmFt
ZSAoVVIySSwgMHgwNSkKICAgIE5hbWUgKFVSM0ksIDB4MEYpCiAgICBOYW1lIChVUjRJLCAw
eDBEKQogICAgTmFtZSAoSUMwSSwgMHgwQSkKICAgIE5hbWUgKElDMUksIDB4MEIpCiAgICBO
YW1lIChJQzJJLCAweDA0KQogICAgTmFtZSAoSUMzSSwgMHgwNikKICAgIE5hbWUgKElDNEks
IDB4MEUpCiAgICBJZiAoQ29uZFJlZk9mIChcX09TSSkpCiAgICB7CiAgICAgICAgSWYgKF9P
U0kgKCJXaW5kb3dzIDIwMDkiKSkKICAgICAgICB7CiAgICAgICAgICAgIFRTT1MgPSAweDUw
CiAgICAgICAgfQoKICAgICAgICBJZiAoX09TSSAoIldpbmRvd3MgMjAxNSIpKQogICAgICAg
IHsKICAgICAgICAgICAgVFNPUyA9IDB4NzAKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUg
KF9TQikKICAgIHsKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFNNSUMsIFN5c3RlbU1lbW9y
eSwgMHhGRUQ4MDAwMCwgMHgwMDgwMDAwMCkKICAgICAgICBGaWVsZCAoU01JQywgQnl0ZUFj
YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAoMHgz
NkEpLCAKICAgICAgICAgICAgU01JQiwgICA4CiAgICAgICAgfQoKICAgICAgICBPcGVyYXRp
b25SZWdpb24gKFNTTUksIFN5c3RlbUlPLCBTTUlCLCAweDAyKQogICAgICAgIEZpZWxkIChT
U01JLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBT
TUlXLCAgIDE2CiAgICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24gKEVDTUMsIFN5
c3RlbUlPLCAweDcyLCAweDAyKQogICAgICAgIEZpZWxkIChFQ01DLCBBbnlBY2MsIE5vTG9j
aywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBFQ01JLCAgIDgsIAogICAgICAg
ICAgICBFQ01ELCAgIDgKICAgICAgICB9CgogICAgICAgIEluZGV4RmllbGQgKEVDTUksIEVD
TUQsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBP
ZmZzZXQgKDB4MDgpLCAKICAgICAgICAgICAgRlJUQiwgICAzMgogICAgICAgIH0KCiAgICAg
ICAgT3BlcmF0aW9uUmVnaW9uIChGUlRQLCBTeXN0ZW1NZW1vcnksIEZSVEIsIDB4MDEwMCkK
ICAgICAgICBGaWVsZCAoRlJUUCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg
IHsKICAgICAgICAgICAgUEVCQSwgICAzMiwgCiAgICAgICAgICAgICAgICAsICAgNSwgCiAg
ICAgICAgICAgIElDMEUsICAgMSwgCiAgICAgICAgICAgIElDMUUsICAgMSwgCiAgICAgICAg
ICAgIElDMkUsICAgMSwgCiAgICAgICAgICAgIElDM0UsICAgMSwgCiAgICAgICAgICAgIElD
NEUsICAgMSwgCiAgICAgICAgICAgIElDNUUsICAgMSwgCiAgICAgICAgICAgIFVUMEUsICAg
MSwgCiAgICAgICAgICAgIFVUMUUsICAgMSwgCiAgICAgICAgICAgIEkzMUUsICAgMSwgCiAg
ICAgICAgICAgIEkzMkUsICAgMSwgCiAgICAgICAgICAgIEkzM0UsICAgMSwgCiAgICAgICAg
ICAgIFVUMkUsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIEVN
TUQsICAgMiwgCiAgICAgICAgICAgIFVUNEUsICAgMSwgCiAgICAgICAgICAgIEkzMEUsICAg
MSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIFhIQ0UsICAgMSwgCiAg
ICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAg
ICAgIFVUM0UsICAgMSwgCiAgICAgICAgICAgIEVTUEksICAgMSwgCiAgICAgICAgICAgIEVN
TUUsICAgMSwgCiAgICAgICAgICAgIEhGUEUsICAgMSwgCiAgICAgICAgICAgIEhEMEUsICAg
MSwgCiAgICAgICAgICAgIEhEMkUsICAgMSwgCiAgICAgICAgICAgIFBDRUYsICAgMSwgCiAg
ICAgICAgICAgICAgICAsICAgNCwgCiAgICAgICAgICAgIElDMEQsICAgMSwgCiAgICAgICAg
ICAgIElDMUQsICAgMSwgCiAgICAgICAgICAgIElDMkQsICAgMSwgCiAgICAgICAgICAgIElD
M0QsICAgMSwgCiAgICAgICAgICAgIElDNEQsICAgMSwgCiAgICAgICAgICAgIElDNUQsICAg
MSwgCiAgICAgICAgICAgIFVUMEQsICAgMSwgCiAgICAgICAgICAgIFVUMUQsICAgMSwgCiAg
ICAgICAgICAgIEkzMUQsICAgMSwgCiAgICAgICAgICAgIEkzMkQsICAgMSwgCiAgICAgICAg
ICAgIEkzM0QsICAgMSwgCiAgICAgICAgICAgIFVUMkQsICAgMSwgCiAgICAgICAgICAgICAg
ICAsICAgMSwgCiAgICAgICAgICAgIEVIQ0QsICAgMSwgCiAgICAgICAgICAgICAgICAsICAg
MSwgCiAgICAgICAgICAgIFVUNEQsICAgMSwgCiAgICAgICAgICAgIEkzMEQsICAgMSwgCiAg
ICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIFhIQ0QsICAgMSwgCiAgICAgICAg
ICAgIFNEX0QsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIFVU
M0QsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIEVNRDMsICAg
MSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIFVTNEQsICAgMSwgCiAg
ICAgICAgICAgIFMwM0QsICAgMSwgCiAgICAgICAgICAgIFVUME8sICAgMSwgCiAgICAgICAg
ICAgIFVUMU8sICAgMSwgCiAgICAgICAgICAgIFVUMk8sICAgMSwgCiAgICAgICAgICAgIFVU
M08sICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgxQyksIAogICAgICAgICAgICBJMzBN
LCAgIDEsIAogICAgICAgICAgICBJMzFNLCAgIDEsIAogICAgICAgICAgICBJMzJNLCAgIDEs
IAogICAgICAgICAgICBJMzNNLCAgIDEsIAogICAgICAgICAgICBPZmZzZXQgKDB4MkQpLCAK
ICAgICAgICAgICAgVVQwSSwgICAxLCAKICAgICAgICAgICAgVVQxSSwgICAxLCAKICAgICAg
ICAgICAgVVQySSwgICAxLCAKICAgICAgICAgICAgVVQzSSwgICAxLCAKICAgICAgICAgICAg
VVQ0SSwgICAxLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDJFKSwgCiAgICAgICAgICAgIFVM
MEksICAgMSwgCiAgICAgICAgICAgIFVMMUksICAgMSwgCiAgICAgICAgICAgIFVMMkksICAg
MSwgCiAgICAgICAgICAgIFVMM0ksICAgMQogICAgICAgIH0KCiAgICAgICAgT3BlcmF0aW9u
UmVnaW9uIChGQ0ZHLCBTeXN0ZW1NZW1vcnksIFBFQkEsIDB4MDEwMDAwMDApCiAgICAgICAg
RmllbGQgKEZDRkcsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAg
ICAgICAgICAgT2Zmc2V0ICgweEEzMDc4KSwgCiAgICAgICAgICAgICAgICAsICAgMiwgCiAg
ICAgICAgICAgIExEUTAsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHhBMzBDQiksIAog
ICAgICAgICAgICAgICAgLCAgIDcsIAogICAgICAgICAgICBBVVNTLCAgIDEKICAgICAgICB9
CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoSU9NWCwgU3lzdGVtTWVtb3J5LCAweEZFRDgw
RDAwLCAweDAxMDApCiAgICAgICAgRmllbGQgKElPTVgsIEFueUFjYywgTm9Mb2NrLCBQcmVz
ZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAoMHgxNSksIAogICAgICAgICAg
ICBJTTE1LCAgIDgsIAogICAgICAgICAgICBJTTE2LCAgIDgsIAogICAgICAgICAgICBPZmZz
ZXQgKDB4MUYpLCAKICAgICAgICAgICAgSU0xRiwgICA4LCAKICAgICAgICAgICAgSU0yMCwg
ICA4LCAKICAgICAgICAgICAgT2Zmc2V0ICgweDQ0KSwgCiAgICAgICAgICAgIElNNDQsICAg
OCwgCiAgICAgICAgICAgIE9mZnNldCAoMHg0NiksIAogICAgICAgICAgICBJTTQ2LCAgIDgs
IAogICAgICAgICAgICBPZmZzZXQgKDB4NEEpLCAKICAgICAgICAgICAgSU00QSwgICA4LCAK
ICAgICAgICAgICAgSU00QiwgICA4LCAKICAgICAgICAgICAgT2Zmc2V0ICgweDU3KSwgCiAg
ICAgICAgICAgIElNNTcsICAgOCwgCiAgICAgICAgICAgIElNNTgsICAgOCwgCiAgICAgICAg
ICAgIE9mZnNldCAoMHg2OCksIAogICAgICAgICAgICBJTTY4LCAgIDgsIAogICAgICAgICAg
ICBJTTY5LCAgIDgsIAogICAgICAgICAgICBJTTZBLCAgIDgsIAogICAgICAgICAgICBJTTZC
LCAgIDgsIAogICAgICAgICAgICBPZmZzZXQgKDB4NkQpLCAKICAgICAgICAgICAgSU02RCwg
ICA4CiAgICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24gKEZBQ1IsIFN5c3RlbU1l
bW9yeSwgMHhGRUQ4MUUwMCwgMHgwMTAwKQogICAgICAgIEZpZWxkIChGQUNSLCBBbnlBY2Ms
IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBPZmZzZXQgKDB4ODAp
LCAKICAgICAgICAgICAgICAgICwgICAyOCwgCiAgICAgICAgICAgIFJEMjgsICAgMSwgCiAg
ICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIFJRVFksICAgMSwgCiAgICAgICAg
ICAgIE9mZnNldCAoMHg4NCksIAogICAgICAgICAgICAgICAgLCAgIDI4LCAKICAgICAgICAg
ICAgU0QyOCwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgT2Zm
c2V0ICgweEEwKSwgCiAgICAgICAgICAgIFBHMUEsICAgMQogICAgICAgIH0KCiAgICAgICAg
T3BlcmF0aW9uUmVnaW9uIChMVUlFLCBTeXN0ZW1NZW1vcnksIDB4RkVEQzAwMjAsIDB4MDQp
CiAgICAgICAgRmllbGQgKExVSUUsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg
ICB7CiAgICAgICAgICAgIElFUjAsICAgMSwgCiAgICAgICAgICAgIElFUjEsICAgMSwgCiAg
ICAgICAgICAgIElFUjIsICAgMSwgCiAgICAgICAgICAgIElFUjMsICAgMSwgCiAgICAgICAg
ICAgIFVPTDAsICAgMSwgCiAgICAgICAgICAgIFVPTDEsICAgMSwgCiAgICAgICAgICAgIFVP
TDIsICAgMSwgCiAgICAgICAgICAgIFVPTDMsICAgMSwgCiAgICAgICAgICAgIFdVUjAsICAg
MiwgCiAgICAgICAgICAgIFdVUjEsICAgMiwgCiAgICAgICAgICAgIFdVUjIsICAgMiwgCiAg
ICAgICAgICAgIFdVUjMsICAgMgogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChGUlVJLCAx
LCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDAp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKElVQTApIC8qIFxfU0Jf
LklVQTAgKi8KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcwID09IDB4
MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKElVQTEpIC8qIFxf
U0JfLklVQTEgKi8KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcwID09
IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKElVQTIpIC8q
IFxfU0JfLklVQTIgKi8KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcw
ID09IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKElVQTMp
IC8qIFxfU0JfLklVQTMgKi8KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgfQog
ICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChGVUlPLCAxLCBTZXJpYWxpemVkKQogICAgICAg
IHsKICAgICAgICAgICAgSWYgKChJRVIwID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBJZiAoKFdVUjAgPT0gQXJnMCkpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBJZiAoKElFUjEgPT0gMHgwMSkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIElmICgoV1VSMSA9PSBBcmcwKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoSUVSMiA9PSAweDAxKSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgSWYgKChXVVIyID09IEFyZzApKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChJRVIzID09IDB4MDEpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFdVUjMgPT0gQXJnMCkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAg
ICAgfQoKICAgICAgICBNZXRob2QgKFNSQUQsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgewog
ICAgICAgICAgICBMb2NhbDAgPSAoQXJnMCA8PCAweDAxKQogICAgICAgICAgICBMb2NhbDAg
Kz0gMHhGRUQ4MUU0MAogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEFEQ1IsIFN5c3Rl
bU1lbW9yeSwgTG9jYWwwLCAweDAyKQogICAgICAgICAgICBGaWVsZCAoQURDUiwgQnl0ZUFj
YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURU
RCwgICAyLCAKICAgICAgICAgICAgICAgIEFEUFMsICAgMSwgCiAgICAgICAgICAgICAgICBB
RFBELCAgIDEsIAogICAgICAgICAgICAgICAgQURTTywgICAxLCAKICAgICAgICAgICAgICAg
IEFEU0MsICAgMSwgCiAgICAgICAgICAgICAgICBBRFNSLCAgIDEsIAogICAgICAgICAgICAg
ICAgQURJUywgICAxLCAKICAgICAgICAgICAgICAgIEFERFMsICAgMwogICAgICAgICAgICB9
CgogICAgICAgICAgICBBRElTID0gT25lCiAgICAgICAgICAgIEFEU1IgPSBaZXJvCiAgICAg
ICAgICAgIFN0YWxsIChBcmcxKQogICAgICAgICAgICBBRFNSID0gT25lCiAgICAgICAgICAg
IEFESVMgPSBaZXJvCiAgICAgICAgICAgIFN0YWxsIChBcmcxKQogICAgICAgIH0KCiAgICAg
ICAgTWV0aG9kIChEU0FELCAyLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg
TG9jYWwwID0gKEFyZzAgPDwgMHgwMSkKICAgICAgICAgICAgTG9jYWwwICs9IDB4RkVEODFF
NDAKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChBRENSLCBTeXN0ZW1NZW1vcnksIExv
Y2FsMCwgMHgwMikKICAgICAgICAgICAgRmllbGQgKEFEQ1IsIEJ5dGVBY2MsIE5vTG9jaywg
UHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFEVEQsICAgMiwgCiAg
ICAgICAgICAgICAgICBBRFBTLCAgIDEsIAogICAgICAgICAgICAgICAgQURQRCwgICAxLCAK
ICAgICAgICAgICAgICAgIEFEU08sICAgMSwgCiAgICAgICAgICAgICAgICBBRFNDLCAgIDEs
IAogICAgICAgICAgICAgICAgQURTUiwgICAxLCAKICAgICAgICAgICAgICAgIEFESVMsICAg
MSwgCiAgICAgICAgICAgICAgICBBRERTLCAgIDMKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgSWYgKChBcmcxICE9IEFEVEQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ
ZiAoKEFyZzEgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgQURURCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBBRFBEID0gT25lCiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwwID0gQUREUyAvKiBcX1NCXy5EU0FELkFERFMgKi8KICAgICAg
ICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCAhPSAweDA3KSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEFERFMgLyogXF9TQl8u
RFNBRC5BRERTICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAzKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBBRFBEID0gWmVybwogICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9IEFERFMgLyogXF9TQl8uRFNBRC5BRERTICovCiAgICAgICAgICAgICAgICAgICAg
V2hpbGUgKChMb2NhbDAgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBRERTIC8qIFxfU0JfLkRTQUQuQUREUyAqLwog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQURURCA9IDB4MDMK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0
aG9kIChIU0FELCAyLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwz
ID0gKDB4MDEgPDwgQXJnMCkKICAgICAgICAgICAgTG9jYWwwID0gKEFyZzAgPDwgMHgwMSkK
ICAgICAgICAgICAgTG9jYWwwICs9IDB4RkVEODFFNDAKICAgICAgICAgICAgT3BlcmF0aW9u
UmVnaW9uIChBRENSLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMikKICAgICAgICAgICAg
RmllbGQgKEFEQ1IsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIEFEVEQsICAgMiwgCiAgICAgICAgICAgICAgICBBRFBTLCAgIDEs
IAogICAgICAgICAgICAgICAgQURQRCwgICAxLCAKICAgICAgICAgICAgICAgIEFEU08sICAg
MSwgCiAgICAgICAgICAgICAgICBBRFNDLCAgIDEsIAogICAgICAgICAgICAgICAgQURTUiwg
ICAxLCAKICAgICAgICAgICAgICAgIEFESVMsICAgMSwgCiAgICAgICAgICAgICAgICBBRERT
LCAgIDMKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcxICE9IEFEVEQpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMCkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUEcxQSA9IE9uZQogICAgICAgICAg
ICAgICAgICAgIEFEVEQgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgQURQRCA9IE9uZQog
ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEFERFMgLyogXF9TQl8uSFNBRC5BRERTICov
CiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgIT0gMHgwNykpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBRERTIC8q
IFxfU0JfLkhTQUQuQUREUyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAgICAgUlFUWSA9IE9uZQogICAgICAgICAgICAgICAgICAgIFJEMjggPSBPbmUKICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgPSBTRDI4IC8qIFxfU0JfLlNEMjggKi8KICAgICAg
ICAgICAgICAgICAgICBXaGlsZSAoIUxvY2FsMCkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFNEMjggLyogXF9TQl8uU0QyOCAqLwog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBJZiAoKEFyZzEgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUlFUWSA9IFplcm8KICAgICAgICAgICAgICAgICAgICBSRDI4ID0gT25lCiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gU0QyOCAvKiBcX1NCXy5TRDI4ICovCiAgICAgICAg
ICAgICAgICAgICAgV2hpbGUgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFNEMjggLyogXF9TQl8uU0QyOCAqLwogICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQURQRCA9IFplcm8KICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBRERTIC8qIFxfU0JfLkhTQUQuQUREUyAqLwog
ICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwICE9IDB4MDApKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQUREUyAvKiBc
X1NCXy5IU0FELkFERFMgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgICAgIEFEVEQgPSAweDAzCiAgICAgICAgICAgICAgICAgICAgUEcxQSA9IFplcm8KICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgT3BlcmF0
aW9uUmVnaW9uIChGUElDLCBTeXN0ZW1JTywgMHgwQzAwLCAweDAyKQogICAgICAgIEZpZWxk
IChGUElDLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAg
ICBGUElJLCAgIDgsIAogICAgICAgICAgICBGUElELCAgIDgKICAgICAgICB9CgogICAgICAg
IEluZGV4RmllbGQgKEZQSUksIEZQSUQsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg
ICAgICAgewogICAgICAgICAgICBPZmZzZXQgKDB4RjQpLCAKICAgICAgICAgICAgSVVBMCwg
ICA4LCAKICAgICAgICAgICAgSVVBMSwgICA4LCAKICAgICAgICAgICAgSUlGNiwgICA4LCAK
ICAgICAgICAgICAgSUlGNywgICA4LCAKICAgICAgICAgICAgSVVBMiwgICA4LCAKICAgICAg
ICAgICAgSVVBMywgICA4CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKEhGUDEpCiAgICAg
ICAgewogICAgICAgICAgICBOYW1lIChfSElELCAiQU1ESTAwNjAiKSAgLy8gX0hJRDogSGFy
ZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMCkgIC8vIF9VSUQ6IFVuaXF1
ZSBJRAogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf
U1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKEhGUEUpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVk
KSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRl
LAogICAgICAgICAgICAgICAgICAgICAgICAweEZFQzExMDAwLCAgICAgICAgIC8vIEFkZHJl
c3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwLCAgICAgICAgIC8v
IEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLkhGUDEuX0NS
Uy5SQlVGICovCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoSElE
MCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBTURJMDA2MyIpICAvLyBf
SElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCAweDAwKSAgLy8gX1VJ
RDogVW5pcXVlIElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl
ZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo
SEQwRSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4
MEYpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChS
ZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVDMTMwMDAsICAgICAgICAg
Ly8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDAsICAg
ICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICAgICAgICAgIEdwaW9JbnQgKEVkZ2UsIEFjdGl2ZUhpZ2gsIFNoYXJlZEFuZFdh
a2UsIFB1bGxOb25lLCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5H
UElPIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAg
ICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMEFCCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0Jf
LkhJRDAuX0NSUy5SQlVGICovCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERl
dmljZSAoSElEMikKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBTURJMDA2
MyIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCAweDAy
KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90
U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBJZiAoSEQyRSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMs
IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdz
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVt
cGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNZW1vcnkz
MkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVDMTIwMDAs
ICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAyMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAg
ICAgKQogICAgICAgICAgICAgICAgICAgIEdwaW9JbnQgKEVkZ2UsIEFjdGl2ZUhpZ2gsIFNo
YXJlZEFuZFdha2UsIFB1bGxOb25lLCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAg
ICJcXF9TQi5HUElPIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAg
ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEFCCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYp
IC8qIFxfU0JfLkhJRDIuX0NSUy5SQlVGICovCiAgICAgICAgICAgIH0KICAgICAgICB9Cgog
ICAgICAgIERldmljZSAoR1BJTykKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQs
ICJBTURJMDAzMCIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChf
Q0lELCAiQU1ESTAwMzAiKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICBO
YW1lIChfVUlELCAweDAwKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE1ldGhv
ZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2Ug
U2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoUkJVRiwgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVk
LCAsLCApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDA3LAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBN
ZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVE
ODE1MDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDA0MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAg
ICAgICAgICAgKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIFJldHVybiAo
UkJVRikgLyogXF9TQl8uR1BJTy5fQ1JTLlJCVUYgKi8KICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVz
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoVFNPUyA+PSAweDcwKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFBQS0cpCiAgICAgICAgewog
ICAgICAgICAgICBOYW1lIChfSElELCAiQU1ESTAwNTIiKSAgLy8gX0hJRDogSGFyZHdhcmUg
SUQKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NU
QTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikK
ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChGVVIwKQogICAgICAg
IHsKICAgICAgICAgICAgTWV0aG9kIChfSElELCAwLCBTZXJpYWxpemVkKSAgLy8gX0hJRDog
SGFyZHdhcmUgSUQKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChVVDBPID09
IDB4MDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo
IkFNREkwMDI5IikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4g
KCJBTURJMDAyMCIpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4
MDApICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBT
ZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNv
dXJjZUNvbnN1bWVyLCBFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUsICwsIF9ZMEEpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAz
LAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp
eGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVEQzkwMDAsICAg
ICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEw
MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAg
KQogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgMHhGRURDNzAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNz
IExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9KQog
ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBcX1NCLkZVUjAuX0NSUy5f
WTBBLl9JTlQsIElSUVcpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAgICBJ
UlFXID0gSVVBMCAvKiBcX1NCXy5JVUEwICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJV
RjApIC8qIFxfU0JfLkZVUjAuX0NSUy5CVUYwICovCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAg
ICAgICBMb2NhbDEgPSBGVUlPICgweDAwKQogICAgICAgICAgICAgICAgSWYgKChUU09TID49
IDB4NzApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoVVQw
RSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgSWYgKChMb2NhbDEgPT0gMHgwRikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MEYKICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBJZiAoKFVUMEkgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE1ldGhvZCAoX1MwVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TMFc6IFMwIERldmljZSBX
YWtlIFN0YXRlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoVVQwRCAmJiBV
VDBFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4
MDQpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIElmICgoVVQwRCAmJiBVVDBFKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBEU0FEICgweDBCLCAweDAwKQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQp
ICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IElmICgoVVQwRCAmJiBVVDBFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBEU0FEICgweDBCLCAweDAzKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKEZVUjEpCiAgICAgICAgewogICAgICAgICAg
ICBNZXRob2QgKF9ISUQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJkd2FyZSBJRAog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFVUMU8gPT0gMHgwMSkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiQU1ESTAwMjkiKQog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoIkFNREkwMDIwIikK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMSkgIC8vIF9VSUQ6
IFVuaXF1ZSBJRAogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAv
LyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIs
IEVkZ2UsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSwgLCwgX1kwQikKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEUsCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRURDQTAwMCwgICAgICAgICAvLyBBZGRy
ZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAv
LyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
ICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAg
ICAgICAweEZFREM4MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAg
ICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg
ICBDcmVhdGVXb3JkRmllbGQgKEJVRjAsIFxfU0IuRlVSMS5fQ1JTLl9ZMEIuX0lOVCwgSVJR
VykgIC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAgICAgICAgICAgIElSUVcgPSBJVUExIC8q
IFxfU0JfLklVQTEgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMCkgLyogXF9TQl8u
RlVSMS5fQ1JTLkJVRjAgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChf
U1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgIExvY2FsMSA9
IEZVSU8gKDB4MDEpCiAgICAgICAgICAgICAgICBJZiAoKFRTT1MgPj0gMHg3MCkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChVVDFFID09IE9uZSkpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2Fs
MSA9PSAweDBGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwwID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IElmICgoVVQxSSA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBS
ZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUzBX
LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChVVDFEICYmIFVUMUUpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNCkKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8v
IF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYg
KChVVDFEICYmIFVUMUUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IERTQUQgKDB4MEMsIDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBv
d2VyIFN0YXRlIDMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChVVDFEICYm
IFVUMUUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERTQUQgKDB4
MEMsIDB4MDMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9Cgog
ICAgICAgIERldmljZSAoRlVSMikKICAgICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoX0hJ
RCwgMCwgU2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIElmICgoVVQyTyA9PSAweDAxKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJBTURJMDAyOSIpCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgUmV0dXJuICgiQU1ESTAwMjAiKQogICAgICAgICAgICB9
CgogICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKSAgLy8gX1VJRDogVW5pcXVlIElECiAg
ICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJl
bnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFt
ZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgRWRnZSwgQWN0aXZl
SGlnaCwgRXhjbHVzaXZlLCAsLCBfWTBDKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNSwKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAg
ICAgICAgICAgICAgICAweEZFRENFMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAg
ICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVu
Z3RoCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBNZW1v
cnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVEQ0Mw
MDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG
aWVsZCAoQlVGMCwgXF9TQi5GVVIyLl9DUlMuX1kwQy5fSU5ULCBJUlFXKSAgLy8gX0lOVDog
SW50ZXJydXB0cwogICAgICAgICAgICAgICAgSVJRVyA9IElVQTIgLyogXF9TQl8uSVVBMiAq
LwogICAgICAgICAgICAgICAgUmV0dXJuIChCVUYwKSAvKiBcX1NCXy5GVVIyLl9DUlMuQlVG
MCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgTG9jYWwxID0gRlVJTyAoMHgwMikK
ICAgICAgICAgICAgICAgIElmICgoVFNPUyA+PSAweDcwKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBJZiAoKFVUMkUgPT0gT25lKSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MEYpKQog
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChVVDJJID09
IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
MHgwMAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWww
KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TMFcsIDAsIE5vdFNlcmlh
bGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoKFVUMkQgJiYgVVQyRSkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA0KQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIg
U3RhdGUgMAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFVUMkQgJiYgVVQy
RSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFNBRCAoMHgxMCwg
MHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0
aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFVUMkQgJiYgVVQyRSkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFNBRCAoMHgxMCwgMHgwMykKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNl
IChGVVIzKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfSElELCAwLCBTZXJpYWxp
emVkKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgSWYgKChVVDNPID09IDB4MDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoIkFNREkwMDI5IikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBSZXR1cm4gKCJBTURJMDAyMCIpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE5hbWUgKF9VSUQsIDB4MDMpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTWV0
aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBT
ZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChCVUYwLCBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
SW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNp
dmUsICwsIF9ZMEQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwMDAwMDBGLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4RkVEQ0YwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAg
ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJl
YWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRURDRDAwMCwgICAgICAgICAv
LyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAg
ICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg
ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBc
X1NCLkZVUjMuX0NSUy5fWTBELl9JTlQsIElSUVcpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAg
ICAgICAgICAgICAgICBJUlFXID0gSVVBMyAvKiBcX1NCXy5JVUEzICovCiAgICAgICAgICAg
ICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0JfLkZVUjMuX0NSUy5CVUYwICovCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8v
IF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAw
eDAwCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBGVUlPICgweDAzKQogICAgICAgICAgICAg
ICAgSWYgKChUU09TID49IDB4NzApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIElmICgoVVQzRSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgwRikpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MEYK
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKFVUM0kgPT0gT25lKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1MwVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9T
MFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IElmICgoVVQzRCAmJiBVVDNFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKDB4MDQpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAw
KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg
KF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoVVQzRCAmJiBVVDNFKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEU0FEICgweDFBLCAweDAwKQogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAs
IE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIElmICgoVVQzRCAmJiBVVDNFKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBEU0FEICgweDFBLCAweDAzKQogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKEZVUjQpCiAgICAg
ICAgewogICAgICAgICAgICBOYW1lIChfSElELCAiQU1ESTAwMjAiKSAgLy8gX0hJRDogSGFy
ZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNCkgIC8vIF9VSUQ6IFVuaXF1
ZSBJRAogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JT
OiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIEVkZ2Us
IEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSwgLCwgX1kwRSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTAsCiAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgMHhGRUREMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJh
c2UKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRy
ZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg
ICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAw
eEZFREQwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBDcmVh
dGVCeXRlRmllbGQgKEJVRjAsIFxfU0IuRlVSNC5fQ1JTLl9ZMEUuX0lOVCwgSVJRQikgIC8v
IF9JTlQ6IEludGVycnVwdHMKICAgICAgICAgICAgICAgIElSUUIgPSBJSUY3IC8qIFxfU0Jf
LklJRjcgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMCkgLyogXF9TQl8uRlVSNC5f
Q1JTLkJVRjAgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAw
LCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgIElmICgoVFNPUyA+PSAw
eDcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFVUNEUg
PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IExvY2FsMCA9IDB4MEYKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgSWYgKChVVDRJID09IE9uZSkpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNZXRob2QgKF9TMFcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZp
Y2UgV2FrZSBTdGF0ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFVUNEQg
JiYgVVQ0RSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu
ICgweDA0KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBO
b3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoKFVUNEQgJiYgVVQ0RSkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgRFNBRCAoMHgxNCwgMHgwMCkKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxp
emVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBJZiAoKFVUNEQgJiYgVVQ0RSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgRFNBRCAoMHgxNCwgMHgwMykKICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChJMkNBKQogICAgICAgIHsKICAgICAg
ICAgICAgTmFtZSAoX0hJRCwgIkFNREkwMDEwIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAg
ICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDApICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAg
ICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBS
ZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChC
VUYwLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgSVJRIChFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUsIF9ZMEYpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsxMH0KICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp
eGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVEQzIwMDAsICAg
ICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEw
MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAg
KQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo
QlVGMCwgXF9TQi5JMkNBLl9DUlMuX1kwRi5fSU5ULCBJUlFXKSAgLy8gX0lOVDogSW50ZXJy
dXB0cwogICAgICAgICAgICAgICAgSVJRVyA9IChPbmUgPDwgKElDMEkgJiAweDBGKSkKICAg
ICAgICAgICAgICAgIFJldHVybiAoQlVGMCkgLyogXF9TQl8uSTJDQS5fQ1JTLkJVRjAgKi8K
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxp
emVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm
ICgoVFNPUyA+PSAweDcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBJZiAoKElDMEUgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVj
aWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09
IFRvVVVJRCAoImQ5M2U0ZDFjLTU4YmItNDkzYy1hMDZhLTYwNWE3MTdmOWUyZSIpIC8qIFVu
a25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
U3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMSkKICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChC
dWZmZXIgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4RTUsIDB4MDAsIDB4NkEsIDB4MDAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAuLmouCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAg
fSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k
IChSU0VULCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBTUkFEICgweDA1LCAweEM4KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg
KF9TMFcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0
ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKElDMEQgJiYgSUMwRSkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA0KQogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVk
KSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBJZiAoKElDMEQgJiYgSUMwRSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgRFNBRCAoMHgwNSwgMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
fQoKICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BT
MzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKElD
MEQgJiYgSUMwRSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFNB
RCAoMHgwNSwgMHgwMykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAg
IH0KCiAgICAgICAgRGV2aWNlIChJMkNCKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAo
X0hJRCwgIkFNREkwMDEwIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5h
bWUgKF9VSUQsIDB4MDEpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTWV0aG9k
IChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0
aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSVJR
IChFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUsIF9ZMTApCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsxMX0KICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3Jp
dGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVEQzMwMDAsICAgICAgICAgLy8gQWRk
cmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAg
Ly8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg
ICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGMCwgXF9TQi5J
MkNCLl9DUlMuX1kxMC5fSU5ULCBJUlFXKSAgLy8gX0lOVDogSW50ZXJydXB0cwogICAgICAg
ICAgICAgICAgSVJRVyA9IChPbmUgPDwgKElDMUkgJiAweDBGKSkKICAgICAgICAgICAgICAg
IFJldHVybiAoQlVGMCkgLyogXF9TQl8uSTJDQi5fQ1JTLkJVRjAgKi8KICAgICAgICAgICAg
fQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NU
QTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoVFNPUyA+PSAw
eDcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKElDMUUg
PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs
c2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAp
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo
X0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImQ5
M2U0ZDFjLTU4YmItNDkzYy1hMDZhLTYwNWE3MTdmOWUyZSIpIC8qIFVua25vd24gVVVJRCAq
LykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0lu
dGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgQ2FzZSAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4RTUsIDB4MDAsIDB4NkEsIDB4MDAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyAuLmouCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChSU0VULCAwLCBO
b3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTUkFEICgweDA2
LCAweEM4KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TMFcsIDAsIE5v
dFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBJZiAoKElDMUQgJiYgSUMxRSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA0KQogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDog
UG93ZXIgU3RhdGUgMAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKElDMUQg
JiYgSUMxRSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFNBRCAo
MHgwNiwgMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3Rh
dGUgMwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKElDMUQgJiYgSUMxRSkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFNBRCAoMHgwNiwgMHgw
MykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
RGV2aWNlIChJMkNDKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFNREkw
MDEwIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4
MDIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBT
ZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSVJRIChFZGdlLCBBY3Rp
dmVIaWdoLCBFeGNsdXNpdmUsIF9ZMTEpCiAgICAgICAgICAgICAgICAgICAgICAgIHs0fQog
ICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgMHhGRURDNDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExl
bmd0aAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9KQogICAg
ICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBcX1NCLkkyQ0MuX0NSUy5fWTEx
Ll9JTlQsIElSUVcpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAgICBJUlFX
ID0gKE9uZSA8PCAoSUMySSAmIDB4MEYpKQogICAgICAgICAgICAgICAgUmV0dXJuIChCVUYw
KSAvKiBcX1NCXy5JMkNDLl9DUlMuQlVGMCAqLwogICAgICAgICAgICB9CgogICAgICAgICAg
ICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChUU09TID49IDB4NzApKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoSUMyRSA9PSBPbmUpKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBG
KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw
eDAwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJp
YWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiZDkzZTRkMWMtNThiYi00
OTNjLWEwNmEtNjA1YTcxN2Y5ZTJlIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw
eDAwKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICBDYXNlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgwNCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhF
NSwgMHgwMCwgMHg2QSwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uai4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy
biAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFJTRVQsIDAsIE5vdFNlcmlhbGl6ZWQp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNSQUQgKDB4MDcsIDB4QzgpCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1MwVywgMCwgTm90U2VyaWFsaXplZCkg
IC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIElmICgoSUMyRCAmJiBJQzJFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKDB4MDQpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu
ICgweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBN
ZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAw
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoSUMyRCAmJiBJQzJFKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEU0FEICgweDA3LCAweDAwKQog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9Q
UzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIElmICgoSUMyRCAmJiBJQzJFKSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBEU0FEICgweDA3LCAweDAzKQogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKEkyQ0Qp
CiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCAiQU1ESTAwMTAiKSAgLy8gX0hJ
RDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMykgIC8vIF9VSUQ6
IFVuaXF1ZSBJRAogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAv
LyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBJUlEgKEVkZ2UsIEFjdGl2ZUhpZ2gsIEV4Y2x1
c2l2ZSwgX1kxMikKICAgICAgICAgICAgICAgICAgICAgICAgezZ9CiAgICAgICAgICAgICAg
ICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAg
ICAweEZFREM1MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAg
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBD
cmVhdGVXb3JkRmllbGQgKEJVRjAsIFxfU0IuSTJDRC5fQ1JTLl9ZMTIuX0lOVCwgSVJRVykg
IC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAgICAgICAgICAgIElSUVcgPSAoT25lIDw8IChJ
QzNJICYgMHgwRikpCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0JfLkky
Q0QuX0NSUy5CVUYwICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NU
QSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoKFRTT1MgPj0gMHg3MCkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgSWYgKChJQzNFID09IE9uZSkpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBf
RFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJkOTNlNGQxYy01OGJiLTQ5M2MtYTA2YS02MDVh
NzE3ZjllMmUiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDApCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo
QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2Ug
KDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoQnVmZmVyICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEU1LCAweDAwLCAweDZB
LCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi5qLgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9u
ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAg
ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIE1ldGhvZCAoUlNFVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgU1JBRCAoMHgwOCwgMHhDOCkKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgTWV0aG9kIChfUzBXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1MwVzogUzAg
RGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChJ
QzNEICYmIElDM0UpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoMHgwNCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwg
MCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgSWYgKChJQzNEICYmIElDM0UpKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIERTQUQgKDB4MDgsIDB4MDApCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2Vy
aWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgSWYgKChJQzNEICYmIElDM0UpKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIERTQUQgKDB4MDgsIDB4MDMpCiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE5hbWUgKEkzSUQsICJBTURJMDAxNSIpCiAg
ICAgICAgTmFtZSAoSTJJRCwgIkFNREkwMDE2IikKICAgICAgICBEZXZpY2UgKEkzQ0EpCiAg
ICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9ISUQsIDAsIFNlcmlhbGl6ZWQpICAvLyBf
SElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEkz
ME0gPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0
dXJuIChJM0lEKSAvKiBcX1NCXy5JM0lEICovCiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0
dXJuIChJMklEKSAvKiBcX1NCXy5JMklEICovCiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDApICAvLyBfVUlEOiBVbmlxdWUg
SUQKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzog
Q3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBOYW1lIChCVUYwLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgSVJRIChFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUsIF9Z
MTMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsxMH0KICAgICAgICAgICAgICAgICAgICBN
ZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVE
RDIwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAg
ICAgICAgICAgKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdv
cmRGaWVsZCAoQlVGMCwgXF9TQi5JM0NBLl9DUlMuX1kxMy5fSU5ULCBJUlFXKSAgLy8gX0lO
VDogSW50ZXJydXB0cwogICAgICAgICAgICAgICAgSVJRVyA9IChPbmUgPDwgKElDMEkgJiAw
eDBGKSkKICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMCkgLyogXF9TQl8uSTNDQS5fQ1JT
LkJVRjAgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBO
b3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIElmICgoVFNPUyA+PSAweDcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBJZiAoKEkzMEUgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE1ldGhvZCAoUlNFVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgU1JBRCAoMHgxNSwgMHhDOCkKICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgTWV0aG9kIChfUzBXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1MwVzog
UzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYg
KChJMzBEICYmIEkzMEUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJldHVybiAoMHgwNCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BT
MCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgSWYgKChJMzBEICYmIEkzMEUpKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIERTQUQgKDB4MTUsIDB4MDApCiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90
U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgSWYgKChJMzBEICYmIEkzMEUpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIERTQUQgKDB4MTUsIDB4MDMpCiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoSTNDQikKICAgICAgICB7
CiAgICAgICAgICAgIE1ldGhvZCAoX0hJRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhh
cmR3YXJlIElECiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoSTMxTSA9PSAw
eDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEkz
SUQpIC8qIFxfU0JfLkkzSUQgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEky
SUQpIC8qIFxfU0JfLkkySUQgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg
ICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50
IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUg
KEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBJUlEgKEVkZ2UsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSwgX1kxNCkKICAg
ICAgICAgICAgICAgICAgICAgICAgezExfQogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMy
Rml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRUREMzAwMCwg
ICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw
MTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAg
ICApCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk
IChCVUYwLCBcX1NCLkkzQ0IuX0NSUy5fWTE0Ll9JTlQsIElSUVcpICAvLyBfSU5UOiBJbnRl
cnJ1cHRzCiAgICAgICAgICAgICAgICBJUlFXID0gKE9uZSA8PCAoSUMxSSAmIDB4MEYpKQog
ICAgICAgICAgICAgICAgUmV0dXJuIChCVUYwKSAvKiBcX1NCXy5JM0NCLl9DUlMuQlVGMCAq
LwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh
bGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
SWYgKChUU09TID49IDB4NzApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElmICgoSTMxRSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChSU0VULCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBTUkFEICgweDBELCAweEM4KQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNZXRob2QgKF9TMFcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZp
Y2UgV2FrZSBTdGF0ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEkzMUQg
JiYgSTMxRSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu
ICgweDA0KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBO
b3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoKEkzMUQgJiYgSTMxRSkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgRFNBRCAoMHgwRCwgMHgwMCkKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxp
emVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBJZiAoKEkzMUQgJiYgSTMxRSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgRFNBRCAoMHgwRCwgMHgwMykKICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChJM0NDKQogICAgICAgIHsKICAgICAg
ICAgICAgTWV0aG9kIChfSElELCAwLCBTZXJpYWxpemVkKSAgLy8gX0hJRDogSGFyZHdhcmUg
SUQKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChJMzJNID09IDB4MDApKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoSTNJRCkgLyog
XF9TQl8uSTNJRCAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoSTJJRCkgLyog
XF9TQl8uSTJJRCAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBOYW1lIChfVUlELCAweDAyKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAg
IE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy
Y2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoQlVGMCwg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElSUSAoRWRnZSwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlLCBfWTE1KQogICAgICAgICAg
ICAgICAgICAgICAgICB7NH0KICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChS
ZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVERDQwMDAsICAgICAgICAg
Ly8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAg
ICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGMCwg
XF9TQi5JM0NDLl9DUlMuX1kxNS5fSU5ULCBJUlFXKSAgLy8gX0lOVDogSW50ZXJydXB0cwog
ICAgICAgICAgICAgICAgSVJRVyA9IChPbmUgPDwgKElDMkkgJiAweDBGKSkKICAgICAgICAg
ICAgICAgIFJldHVybiAoQlVGMCkgLyogXF9TQl8uSTNDQy5fQ1JTLkJVRjAgKi8KICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAg
Ly8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoVFNP
UyA+PSAweDcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo
KEkzMkUgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l
dGhvZCAoUlNFVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgU1JBRCAoMHgwRSwgMHhDOCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0
aG9kIChfUzBXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2Ug
U3RhdGUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChJMzJEICYmIEkzMkUp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNCkK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFs
aXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgSWYgKChJMzJEICYmIEkzMkUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIERTQUQgKDB4MEUsIDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8v
IF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYg
KChJMzJEICYmIEkzMkUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IERTQUQgKDB4MEUsIDB4MDMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAg
ICAgICB9CgogICAgICAgIERldmljZSAoSTNDRCkKICAgICAgICB7CiAgICAgICAgICAgIE1l
dGhvZCAoX0hJRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoSTMzTSA9PSAweDAwKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEkzSUQpIC8qIFxfU0JfLkkz
SUQgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEkySUQpIC8qIFxfU0JfLkky
SUQgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFt
ZSAoX1VJRCwgMHgwMykgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBNZXRob2Qg
KF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRp
bmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJUlEg
KEVkZ2UsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSwgX1kxNikKICAgICAgICAgICAgICAgICAg
ICAgICAgezZ9CiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRl
LAogICAgICAgICAgICAgICAgICAgICAgICAweEZFREQ2MDAwLCAgICAgICAgIC8vIEFkZHJl
c3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8v
IEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRjAsIFxfU0IuSTND
RC5fQ1JTLl9ZMTYuX0lOVCwgSVJRVykgIC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAgICAg
ICAgICAgIElSUVcgPSAoT25lIDw8IChJQzNJICYgMHgwRikpCiAgICAgICAgICAgICAgICBS
ZXR1cm4gKEJVRjApIC8qIFxfU0JfLkkzQ0QuX0NSUy5CVUYwICovCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6
IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFRTT1MgPj0gMHg3
MCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChJMzNFID09
IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNl
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFJT
RVQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNS
QUQgKDB4MEYsIDB4QzgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1Mw
VywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoSTMzRCAmJiBJMzNFKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDQpCiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAv
LyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm
ICgoSTMzRCAmJiBJMzNFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBEU0FEICgweDBGLCAweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQ
b3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoSTMzRCAm
JiBJMzNFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEU0FEICgw
eDBGLCAweDAzKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQog
ICAgfQoKICAgIFNjb3BlIChfU0IuUENJMCkKICAgIHsKICAgICAgICBEZXZpY2UgKFVBUjEp
CiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwNTAwIikg
LyogU3RhbmRhcmQgUEMgQ09NIFNlcmlhbCBQb3J0ICovKSAgLy8gX0hJRDogSGFyZHdhcmUg
SUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAog
ICAgICAgICAgICBOYW1lIChfREROLCAiQ09NMSIpICAvLyBfREROOiBET1MgRGV2aWNlIE5h
bWUKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NU
QTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDAK
ICAgICAgICAgICAgICAgIExvY2FsMSA9IEZVSU8gKDB4MDApCiAgICAgICAgICAgICAgICBJ
ZiAoKExvY2FsMSAhPSAweDBGKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAweDBGCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
SWYgKChVTDBJID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJl
dHVybiAoTG9jYWwwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMs
IDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxh
dGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl
MTYsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJFOCwgICAgICAgICAgICAgLy8gUmFu
Z2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAweDAyRTgsICAgICAgICAgICAg
IC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg
ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAg
ICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgX1kxNykKICAg
ICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzIChfWTE4KQogICAgICAgICAgICAgICAgICAg
ICAgICB7M30KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVCeXRl
RmllbGQgKEJVRjAsIFxfU0IuUENJMC5VQVIxLl9DUlMuX1kxNy5fTUlOLCBJT0xPKSAgLy8g
X01JTjogTWluaW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVG
aWVsZCAoQlVGMCwgMHgwMywgSU9ISSkKICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVs
ZCAoQlVGMCwgXF9TQi5QQ0kwLlVBUjEuX0NSUy5fWTE3Ll9NQVgsIElPUkwpICAvLyBfTUFY
OiBNYXhpbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxk
IChCVUYwLCAweDA1LCBJT1JIKQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChC
VUYwLCBcX1NCLlBDSTAuVUFSMS5fQ1JTLl9ZMTguX0lOVCwgSVJRTCkgIC8vIF9JTlQ6IElu
dGVycnVwdHMKICAgICAgICAgICAgICAgIExvY2FsMCA9IEZVSU8gKDB4MDApCiAgICAgICAg
ICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoTG9jYWwwKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAwKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgSU9MTyA9IDB4RTgKICAgICAgICAgICAgICAgICAg
ICAgICAgSU9ISSA9IDB4MDIKICAgICAgICAgICAgICAgICAgICAgICAgSU9STCA9IDB4RTgK
ICAgICAgICAgICAgICAgICAgICAgICAgSU9SSCA9IDB4MDIKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPTE8gPSAweEY4CiAgICAgICAgICAgICAg
ICAgICAgICAgIElPSEkgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgIElPUkwgPSAw
eEY4CiAgICAgICAgICAgICAgICAgICAgICAgIElPUkggPSAweDAyCiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJT0xPID0gMHhFOAogICAgICAgICAg
ICAgICAgICAgICAgICBJT0hJID0gMHgwMwogICAgICAgICAgICAgICAgICAgICAgICBJT1JM
ID0gMHhFOAogICAgICAgICAgICAgICAgICAgICAgICBJT1JIID0gMHgwMwogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAzKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU9MTyA9IDB4RjgKICAgICAg
ICAgICAgICAgICAgICAgICAgSU9ISSA9IDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAg
SU9STCA9IDB4RjgKICAgICAgICAgICAgICAgICAgICAgICAgSU9SSCA9IDB4MDMKICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElS
UUwgPSAoT25lIDw8IChGUlVJICgweDAwKSAmIDB4MEYpKQogICAgICAgICAgICAgICAgUmV0
dXJuIChCVUYwKSAvKiBcX1NCXy5QQ0kwLlVBUjEuX0NSUy5CVUYwICovCiAgICAgICAgICAg
IH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoVUFSMikKICAgICAgICB7CiAgICAgICAg
ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDA1MDAiKSAvKiBTdGFuZGFyZCBQQyBDT00g
U2VyaWFsIFBvcnQgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1l
IChfVUlELCAweDAyKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9E
RE4sICJDT00yIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICBNZXRo
b2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgTG9j
YWwxID0gRlVJTyAoMHgwMSkKICAgICAgICAgICAgICAgIElmICgoTG9jYWwxICE9IDB4MEYp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MEYK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKFVMMUkgPT0gT25lKSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8v
IF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMkY4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDJGOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog
ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVu
dAogICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIExlbmd0
aAogICAgICAgICAgICAgICAgICAgICAgICBfWTE5KQogICAgICAgICAgICAgICAgICAgIElS
UU5vRmxhZ3MgKF9ZMUEpCiAgICAgICAgICAgICAgICAgICAgICAgIHs0fQogICAgICAgICAg
ICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGMCwgXF9TQi5Q
Q0kwLlVBUjIuX0NSUy5fWTE5Ll9NSU4sIElPTE8pICAvLyBfTUlOOiBNaW5pbXVtIEJhc2Ug
QWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUYwLCAweDAzLCBJ
T0hJKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUYwLCBcX1NCLlBDSTAu
VUFSMi5fQ1JTLl9ZMTkuX01BWCwgSU9STCkgIC8vIF9NQVg6IE1heGltdW0gQmFzZSBBZGRy
ZXNzCiAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRjAsIDB4MDUsIElPUkgp
CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5VQVIy
Ll9DUlMuX1kxQS5fSU5ULCBJUlFMKSAgLy8gX0lOVDogSW50ZXJydXB0cwogICAgICAgICAg
ICAgICAgTG9jYWwwID0gRlVJTyAoMHgwMSkKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9J
bnRlZ2VyIChMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IENhc2UgKDB4MDApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICBJT0xPID0gMHhFOAogICAgICAgICAgICAgICAgICAgICAgICBJT0hJID0gMHgwMgog
ICAgICAgICAgICAgICAgICAgICAgICBJT1JMID0gMHhFOAogICAgICAgICAgICAgICAgICAg
ICAgICBJT1JIID0gMHgwMgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICBDYXNlICgweDAxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgSU9MTyA9IDB4RjgKICAgICAgICAgICAgICAgICAgICAgICAgSU9ISSA9IDB4
MDIKICAgICAgICAgICAgICAgICAgICAgICAgSU9STCA9IDB4RjgKICAgICAgICAgICAgICAg
ICAgICAgICAgSU9SSCA9IDB4MDIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIElPTE8gPSAweEU4CiAgICAgICAgICAgICAgICAgICAgICAgIElPSEkg
PSAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgIElPUkwgPSAweEU4CiAgICAgICAgICAg
ICAgICAgICAgICAgIElPUkggPSAweDAzCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBJT0xPID0gMHhGOAogICAgICAgICAgICAgICAgICAgICAgICBJ
T0hJID0gMHgwMwogICAgICAgICAgICAgICAgICAgICAgICBJT1JMID0gMHhGOAogICAgICAg
ICAgICAgICAgICAgICAgICBJT1JIID0gMHgwMwogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSVJRTCA9IChPbmUgPDwgKEZSVUkg
KDB4MDEpICYgMHgwRikpCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0Jf
LlBDSTAuVUFSMi5fQ1JTLkJVRjAgKi8KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAg
ICAgRGV2aWNlIChVQVIzKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlz
YUlkICgiUE5QMDUwMCIpIC8qIFN0YW5kYXJkIFBDIENPTSBTZXJpYWwgUG9ydCAqLykgIC8v
IF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDMpICAvLyBf
VUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFtZSAoX0RETiwgIkNPTTMiKSAgLy8gX0RE
TjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy
aWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBGVUlPICgweDAyKQog
ICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgIT0gMHgwRikpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwRgogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIElmICgoVUwySSA9PSBPbmUpKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNv
dXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChCVUYw
LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAweDAzRTgsICAg
ICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgMHgw
M0U4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg
ICAgICAgIF9ZMUIpCiAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoX1kxQykKICAg
ICAgICAgICAgICAgICAgICAgICAgezN9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAg
ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUYwLCBcX1NCLlBDSTAuVUFSMy5fQ1JTLl9ZMUIu
X01JTiwgSU9MTykgIC8vIF9NSU46IE1pbmltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAgICAg
ICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRjAsIDB4MDMsIElPSEkpCiAgICAgICAgICAgICAg
ICBDcmVhdGVCeXRlRmllbGQgKEJVRjAsIFxfU0IuUENJMC5VQVIzLl9DUlMuX1kxQi5fTUFY
LCBJT1JMKSAgLy8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAg
IENyZWF0ZUJ5dGVGaWVsZCAoQlVGMCwgMHgwNSwgSU9SSCkKICAgICAgICAgICAgICAgIENy
ZWF0ZVdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLlVBUjMuX0NSUy5fWTFDLl9JTlQsIElS
UUwpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBGVUlP
ICgweDAyKQogICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKExvY2FsMCkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPTE8gPSAweEU4CiAg
ICAgICAgICAgICAgICAgICAgICAgIElPSEkgPSAweDAyCiAgICAgICAgICAgICAgICAgICAg
ICAgIElPUkwgPSAweEU4CiAgICAgICAgICAgICAgICAgICAgICAgIElPUkggPSAweDAyCiAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDEpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJT0xPID0gMHhG
OAogICAgICAgICAgICAgICAgICAgICAgICBJT0hJID0gMHgwMgogICAgICAgICAgICAgICAg
ICAgICAgICBJT1JMID0gMHhGOAogICAgICAgICAgICAgICAgICAgICAgICBJT1JIID0gMHgw
MgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAy
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU9MTyA9
IDB4RTgKICAgICAgICAgICAgICAgICAgICAgICAgSU9ISSA9IDB4MDMKICAgICAgICAgICAg
ICAgICAgICAgICAgSU9STCA9IDB4RTgKICAgICAgICAgICAgICAgICAgICAgICAgSU9SSCA9
IDB4MDMKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAo
MHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElP
TE8gPSAweEY4CiAgICAgICAgICAgICAgICAgICAgICAgIElPSEkgPSAweDAzCiAgICAgICAg
ICAgICAgICAgICAgICAgIElPUkwgPSAweEY4CiAgICAgICAgICAgICAgICAgICAgICAgIElP
UkggPSAweDAzCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBJUlFMID0gKE9uZSA8PCAoRlJVSSAoMHgwMikgJiAweDBGKSkKICAg
ICAgICAgICAgICAgIFJldHVybiAoQlVGMCkgLyogXF9TQl8uUENJMC5VQVIzLl9DUlMuQlVG
MCAqLwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFVBUjQpCiAg
ICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwNTAwIikgLyog
U3RhbmRhcmQgUEMgQ09NIFNlcmlhbCBQb3J0ICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK
ICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg
ICAgICAgICBOYW1lIChfREROLCAiQ09NNCIpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUK
ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTog
U3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAg
ICAgICAgICAgICAgIExvY2FsMSA9IEZVSU8gKDB4MDMpCiAgICAgICAgICAgICAgICBJZiAo
KExvY2FsMSAhPSAweDBGKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBMb2NhbDAgPSAweDBGCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYg
KChVTDNJID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
TG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVy
biAoTG9jYWwwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAs
IFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUg
KCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNGOCwgICAgICAgICAgICAgLy8gUmFuZ2Ug
TWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAweDAzRjgsICAgICAgICAgICAgIC8v
IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAg
ICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgX1kxRCkKICAgICAg
ICAgICAgICAgICAgICBJUlFOb0ZsYWdzIChfWTFFKQogICAgICAgICAgICAgICAgICAgICAg
ICB7NH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmll
bGQgKEJVRjAsIFxfU0IuUENJMC5VQVI0Ll9DUlMuX1kxRC5fTUlOLCBJT0xPKSAgLy8gX01J
TjogTWluaW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVs
ZCAoQlVGMCwgMHgwMywgSU9ISSkKICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAo
QlVGMCwgXF9TQi5QQ0kwLlVBUjQuX0NSUy5fWTFELl9NQVgsIElPUkwpICAvLyBfTUFYOiBN
YXhpbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChC
VUYwLCAweDA1LCBJT1JIKQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYw
LCBcX1NCLlBDSTAuVUFSNC5fQ1JTLl9ZMUUuX0lOVCwgSVJRTCkgIC8vIF9JTlQ6IEludGVy
cnVwdHMKICAgICAgICAgICAgICAgIExvY2FsMCA9IEZVSU8gKDB4MDMpCiAgICAgICAgICAg
ICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoTG9jYWwwKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBDYXNlICgweDAwKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgSU9MTyA9IDB4RTgKICAgICAgICAgICAgICAgICAgICAg
ICAgSU9ISSA9IDB4MDIKICAgICAgICAgICAgICAgICAgICAgICAgSU9STCA9IDB4RTgKICAg
ICAgICAgICAgICAgICAgICAgICAgSU9SSCA9IDB4MDIKICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIElPTE8gPSAweEY4CiAgICAgICAgICAgICAgICAg
ICAgICAgIElPSEkgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgIElPUkwgPSAweEY4
CiAgICAgICAgICAgICAgICAgICAgICAgIElPUkggPSAweDAyCiAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJT0xPID0gMHhFOAogICAgICAgICAgICAg
ICAgICAgICAgICBJT0hJID0gMHgwMwogICAgICAgICAgICAgICAgICAgICAgICBJT1JMID0g
MHhFOAogICAgICAgICAgICAgICAgICAgICAgICBJT1JIID0gMHgwMwogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAzKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU9MTyA9IDB4RjgKICAgICAgICAg
ICAgICAgICAgICAgICAgSU9ISSA9IDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgSU9S
TCA9IDB4RjgKICAgICAgICAgICAgICAgICAgICAgICAgSU9SSCA9IDB4MDMKICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElSUUwg
PSAoT25lIDw8IChGUlVJICgweDAzKSAmIDB4MEYpKQogICAgICAgICAgICAgICAgUmV0dXJu
IChCVUYwKSAvKiBcX1NCXy5QQ0kwLlVBUjQuX0NSUy5CVUYwICovCiAgICAgICAgICAgIH0K
ICAgICAgICB9CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChNTlZTLCBTeXN0ZW1NZW1v
cnksIDB4MUJBRkEwMTgsIDB4NEIwMCkKICAgIEZpZWxkIChNTlZTLCBEV29yZEFjYywgTm9M
b2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBPZmZzZXQgKDB4RDAwKSwgCiAgICAgICAg
R0FQQSwgICAzMiwgCiAgICAgICAgR0FQTCwgICAzMiwgCiAgICAgICAgRENLSSwgICAzMiwg
CiAgICAgICAgRENLUywgICAzMiwgCiAgICAgICAgVkNETCwgICAxLCAKICAgICAgICBWQ0RD
LCAgIDEsIAogICAgICAgIFZDRFQsICAgMSwgCiAgICAgICAgVkNERCwgICAxLCAKICAgICAg
ICAgICAgLCAgIDEsIAogICAgICAgIFZDU1MsICAgMSwgCiAgICAgICAgVkNEQiwgICAxLCAK
ICAgICAgICBWQ0lOLCAgIDEsIAogICAgICAgIFZWUE8sICAgOCwgCiAgICAgICAgQk5UTiwg
ICA4LCAKICAgICAgICBCUkxWLCAgIDgsIAogICAgICAgIENERkwsICAgOCwgCiAgICAgICAg
Q0RBSCwgICA4LCAKICAgICAgICBQTU9ELCAgIDIsIAogICAgICAgIFBESVIsICAgMSwgCiAg
ICAgICAgUERNQSwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDE3KSwgCiAgICAgICAgTEZE
QywgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDE4KSwgCiAgICAgICAgQzJOQSwgICAxLCAK
ICAgICAgICBDM05BLCAgIDEsIAogICAgICAgIEM0TkEsICAgMSwgCiAgICAgICAgQzZOQSwg
ICAxLCAKICAgICAgICBDN05BLCAgIDEsIAogICAgICAgIE9mZnNldCAoMHhEMTkpLCAKICAg
ICAgICBPZmZzZXQgKDB4RDFBKSwgCiAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAg
LCAgIDEsIAogICAgICAgIE5IUFMsICAgMSwgCiAgICAgICAgTlBNUywgICAxLCAKICAgICAg
ICBPZmZzZXQgKDB4RDFCKSwgCiAgICAgICAgVU9QVCwgICA4LCAKICAgICAgICBCVElELCAg
IDMyLCAKICAgICAgICBEUFAwLCAgIDEsIAogICAgICAgIERQUDEsICAgMSwgCiAgICAgICAg
RFBQMiwgICAxLCAKICAgICAgICBEUFAzLCAgIDEsIAogICAgICAgIERQUDQsICAgMSwgCiAg
ICAgICAgRFBQNSwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDIxKSwgCiAgICAgICAgT2Zm
c2V0ICgweEQyMiksIAogICAgICAgIFRDUlQsICAgMTYsIAogICAgICAgIFRQU1YsICAgMTYs
IAogICAgICAgIFRUQzEsICAgMTYsIAogICAgICAgIFRUQzIsICAgMTYsIAogICAgICAgIFRU
U1AsICAgMTYsIAogICAgICAgIFNSQUgsICAgOCwgCiAgICAgICAgU1JIRSwgICA4LCAKICAg
ICAgICBTUkUxLCAgIDgsIAogICAgICAgIFNSRTIsICAgOCwgCiAgICAgICAgU1JFMywgICA4
LCAKICAgICAgICBTUkU0LCAgIDgsIAogICAgICAgIFNSRTUsICAgOCwgCiAgICAgICAgU1JF
NiwgICA4LCAKICAgICAgICBTUlUxLCAgIDgsIAogICAgICAgIFNSVTIsICAgOCwgCiAgICAg
ICAgU1JVMywgICA4LCAKICAgICAgICBTUlU3LCAgIDgsIAogICAgICAgIFNSVTQsICAgOCwg
CiAgICAgICAgU1JVNSwgICA4LCAKICAgICAgICBTUlU4LCAgIDgsIAogICAgICAgIFNSUEIs
ICAgOCwgCiAgICAgICAgU1JMUCwgICA4LCAKICAgICAgICBTUlNBLCAgIDgsIAogICAgICAg
IFNSU00sICAgOCwgCiAgICAgICAgQ1dBQywgICAxLCAKICAgICAgICBDV0FTLCAgIDEsIAog
ICAgICAgIENXVUUsICAgMSwgCiAgICAgICAgQ1dVUywgICAxLCAKICAgICAgICBPZmZzZXQg
KDB4RDQwKSwgCiAgICAgICAgQ1dBUCwgICAxNiwgCiAgICAgICAgQ1dBVCwgICAxNiwgCiAg
ICAgICAgREJHQywgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDQ1KSwgCiAgICAgICAgRlMx
TCwgICAxNiwgCiAgICAgICAgRlMxTSwgICAxNiwgCiAgICAgICAgRlMxSCwgICAxNiwgCiAg
ICAgICAgRlMyTCwgICAxNiwgCiAgICAgICAgRlMyTSwgICAxNiwgCiAgICAgICAgRlMySCwg
ICAxNiwgCiAgICAgICAgRlMzTCwgICAxNiwgCiAgICAgICAgRlMzTSwgICAxNiwgCiAgICAg
ICAgRlMzSCwgICAxNiwgCiAgICAgICAgVEFUQywgICAxLCAKICAgICAgICAgICAgLCAgIDYs
IAogICAgICAgIFRBVEwsICAgMSwgCiAgICAgICAgVEFUVywgICA4LCAKICAgICAgICBUTkZU
LCAgIDQsIAogICAgICAgIFROVFQsICAgNCwgCiAgICAgICAgVERGQSwgICA0LCAKICAgICAg
ICBURFRBLCAgIDQsIAogICAgICAgIFRERkQsICAgNCwgCiAgICAgICAgVERURCwgICA0LCAK
ICAgICAgICBUQ0ZBLCAgIDQsIAogICAgICAgIFRDVEEsICAgNCwgCiAgICAgICAgVENGRCwg
ICA0LCAKICAgICAgICBUQ1RELCAgIDQsIAogICAgICAgIFRTRlQsICAgNCwgCiAgICAgICAg
VFNUVCwgICA0LCAKICAgICAgICBUSVQwLCAgIDgsIAogICAgICAgIFRDUjAsICAgMTYsIAog
ICAgICAgIFRQUzAsICAgMTYsIAogICAgICAgIFRJVDEsICAgOCwgCiAgICAgICAgVENSMSwg
ICAxNiwgCiAgICAgICAgVFBTMSwgICAxNiwgCiAgICAgICAgVElUMiwgICA4LCAKICAgICAg
ICBUQ1IyLCAgIDE2LCAKICAgICAgICBUUFMyLCAgIDE2LCAKICAgICAgICBUSUYwLCAgIDgs
IAogICAgICAgIFRJRjEsICAgOCwgCiAgICAgICAgVElGMiwgICA4LCAKICAgICAgICBPZmZz
ZXQgKDB4RDc4KSwgCiAgICAgICAgQlRISSwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDc5
KSwgCiAgICAgICAgSERJUiwgICAxLCAKICAgICAgICBIREVILCAgIDEsIAogICAgICAgIEhE
U1AsICAgMSwgCiAgICAgICAgSERQUCwgICAxLCAKICAgICAgICBIRFVCLCAgIDEsIAogICAg
ICAgIEhETUMsICAgMSwgCiAgICAgICAgTkZDRiwgICAxLCAKICAgICAgICBOT01DLCAgIDEs
IAogICAgICAgIFRQTUUsICAgOCwgCiAgICAgICAgQklERSwgICA0LCAKICAgICAgICBJREVU
LCAgIDQsIAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICwgICAxLCAKICAgICAg
ICBPZmZzZXQgKDB4RDdEKSwgCiAgICAgICAgRFRTMCwgICA4LCAKICAgICAgICBPZmZzZXQg
KDB4RDdGKSwgCiAgICAgICAgRFQwMCwgICAxLCAKICAgICAgICBEVDAxLCAgIDEsIAogICAg
ICAgIERUMDIsICAgMSwgCiAgICAgICAgRFQwMywgICAxLCAKICAgICAgICBPZmZzZXQgKDB4
RDgwKSwgCiAgICAgICAgTElEQiwgICAxLCAKICAgICAgICBDNFdSLCAgIDEsIAogICAgICAg
IEM0QUMsICAgMSwgCiAgICAgICAgT0REWCwgICAxLCAKICAgICAgICBDTVBSLCAgIDEsIAog
ICAgICAgIElMTkYsICAgMSwgCiAgICAgICAgUExVWCwgICAxLCAKICAgICAgICBPZmZzZXQg
KDB4RDgxKSwgCiAgICAgICAgT2Zmc2V0ICgweEQ4QSksIAogICAgICAgIFdMQUMsICAgOCwg
CiAgICAgICAgV0lXSywgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDhDKSwgCiAgICAgICAg
ICAgICwgICA0LCAKICAgICAgICAgICAgLCAgIDEsIAogICAgICAgIElETU0sICAgMSwgCiAg
ICAgICAgT2Zmc2V0ICgweEQ4RCksIAogICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAg
ICwgICAxLCAKICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAsICAgMSwgCiAgICAg
ICAgT2Zmc2V0ICgweEQ4RSksIAogICAgICAgIE9mZnNldCAoMHhEOEYpLCAKICAgICAgICAg
ICAgLCAgIDQsIAogICAgICAgIE9mZnNldCAoMHhEOTApLCAKICAgICAgICBPZmZzZXQgKDB4
RDkxKSwgCiAgICAgICAgU1dHUCwgICA4LCAKICAgICAgICBJUE1TLCAgIDgsIAogICAgICAg
IElQTUIsICAgMTIwLCAKICAgICAgICBJUE1SLCAgIDI0LCAKICAgICAgICBJUE1PLCAgIDI0
LCAKICAgICAgICBJUE1BLCAgIDgsIAogICAgICAgIFZJR0QsICAgMSwgCiAgICAgICAgVkRT
QywgICAxLCAKICAgICAgICBWTVNILCAgIDEsIAogICAgICAgICAgICAsICAgMSwgCiAgICAg
ICAgVkRTUCwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4REFBKSwgCiAgICAgICAgT2Zmc2V0
ICgweERBRCksIAogICAgICAgIEFTRlQsICAgOCwgCiAgICAgICAgUEwxTCwgICA4LCAKICAg
ICAgICBQTDFNLCAgIDgsIAogICAgICAgIENIS0MsICAgMzIsIAogICAgICAgIENIS0UsICAg
MzIsIAogICAgICAgIEFUUkIsICAgMzIsIAogICAgICAgIE9mZnNldCAoMHhEQkQpLCAKICAg
ICAgICBQUENSLCAgIDgsIAogICAgICAgIFRQQ1IsICAgNSwgCiAgICAgICAgT2Zmc2V0ICgw
eERCRiksIAogICAgICAgIE9mZnNldCAoMHhEQ0UpLCAKICAgICAgICBDVFBSLCAgIDgsIAog
ICAgICAgIFBQQ0EsICAgOCwgCiAgICAgICAgVFBDQSwgICA1LCAKICAgICAgICBPZmZzZXQg
KDB4REQxKSwgCiAgICAgICAgQkZXQiwgICAyOTYsIAogICAgICAgIE9TUFgsICAgMSwgCiAg
ICAgICAgT1NDNCwgICAxLCAKICAgICAgICBDUFBYLCAgIDEsIAogICAgICAgIE9mZnNldCAo
MHhERjcpLCAKICAgICAgICBTUEVOLCAgIDEsIAogICAgICAgIFNDUk0sICAgMSwgCiAgICAg
ICAgICAgICwgICAxLCAKICAgICAgICBFVEFVLCAgIDEsIAogICAgICAgIElIQkMsICAgMSwg
CiAgICAgICAgQVJQTSwgICAxLCAKICAgICAgICBBUE1GLCAgIDEsIAogICAgICAgIE9mZnNl
dCAoMHhERjgpLCAKICAgICAgICBGVFBTLCAgIDgsIAogICAgICAgIEhJU1QsICAgOCwgCiAg
ICAgICAgTFBTVCwgICA4LCAKICAgICAgICBMV1NULCAgIDgsIAogICAgICAgIE9mZnNldCAo
MHhERkYpLCAKICAgICAgICBPZmZzZXQgKDB4RTAwKSwgCiAgICAgICAgT2Zmc2V0ICgweEUy
MCksIAogICAgICAgIEhQRVQsICAgMzIsIAogICAgICAgIFBLTEksICAgMTYsIAogICAgICAg
IFZMQ1gsICAgMTYsIAogICAgICAgIFZOSVQsICAgOCwgCiAgICAgICAgVkJEMCwgICA4LCAK
ICAgICAgICBWQkRULCAgIDEyOCwgCiAgICAgICAgVkJQTCwgICAxNiwgCiAgICAgICAgVkJQ
SCwgICAxNiwgCiAgICAgICAgVkJNTCwgICA4LCAKICAgICAgICBWQk1ILCAgIDgsIAogICAg
ICAgIFZFREksICAgMTAyNCwgCiAgICAgICAgUERDSSwgICAxNiwgCiAgICAgICAgSVNDRywg
ICAzMiwgCiAgICAgICAgSVNTUCwgICAxLCAKICAgICAgICBJU1dLLCAgIDIsIAogICAgICAg
IElTRlMsICAgMywgCiAgICAgICAgT2Zmc2V0ICgweEVDNyksIAogICAgICAgIFNIQTEsICAg
MTYwLCAKICAgICAgICBPZmZzZXQgKDB4RURDKSwgCiAgICAgICAgTFdDUCwgICAxLCAKICAg
ICAgICBMV0VOLCAgIDEsIAogICAgICAgIElPQ1AsICAgMSwgCiAgICAgICAgSU9FTiwgICAx
LCAKICAgICAgICBJT1NULCAgIDEsIAogICAgICAgIEZUQkMsICAgMSwgCiAgICAgICAgRlRC
RSwgICAxLCAKICAgICAgICBGVEJGLCAgIDEsIAogICAgICAgIFVTQlIsICAgMSwgCiAgICAg
ICAgT2Zmc2V0ICgweEVERSksIAogICAgICAgIE9mZnNldCAoMHhFREYpLCAKICAgICAgICBP
ZmZzZXQgKDB4RUUxKSwgCiAgICAgICAgQlQyVCwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4
RUUyKSwgCiAgICAgICAgVFBQUCwgICA4LCAKICAgICAgICBUUFBDLCAgIDgsIAogICAgICAg
IENUUEMsICAgOCwgCiAgICAgICAgRk5XSywgICA4LCAKICAgICAgICBPZmZzZXQgKDB4RUU3
KSwgCiAgICAgICAgWEhDQywgICA4LCAKICAgICAgICBGQ0FQLCAgIDE2LCAKICAgICAgICBW
U1RELCAgIDEsIAogICAgICAgIFZDUUwsICAgMSwgCiAgICAgICAgVlRJTywgICAxLCAKICAg
ICAgICBWTVlILCAgIDEsIAogICAgICAgIFZTVFAsICAgMSwgCiAgICAgICAgVkxDTSwgICAx
LCAKICAgICAgICBWREdNLCAgIDEsIAogICAgICAgIFZBRE0sICAgMSwgCiAgICAgICAgVlJQ
QywgICAxLCAKICAgICAgICBWVE1TLCAgIDEsIAogICAgICAgIFZETFMsICAgMSwgCiAgICAg
ICAgVk1NQywgICAxLCAKICAgICAgICBWTVNDLCAgIDEsIAogICAgICAgIFZQU0MsICAgMSwg
CiAgICAgICAgVkNTQywgICAxLCAKICAgICAgICBWQU1ULCAgIDEsIAogICAgICAgIENJQ0Ys
ICAgNCwgCiAgICAgICAgQ0lDTSwgICA0LCAKICAgICAgICBNWUhDLCAgIDgsIAogICAgICAg
IE1NQ0MsICAgOCwgCiAgICAgICAgUFQxRCwgICAxNSwgCiAgICAgICAgT2Zmc2V0ICgweEVG
MSksIAogICAgICAgIFBUMkQsICAgMTUsIAogICAgICAgIE9mZnNldCAoMHhFRjMpLCAKICAg
ICAgICBQVDBELCAgIDE1LCAKICAgICAgICBPZmZzZXQgKDB4RUY1KSwgCiAgICAgICAgRFZT
MCwgICAxLCAKICAgICAgICBEVlMxLCAgIDEsIAogICAgICAgIERWUzIsICAgMSwgCiAgICAg
ICAgRFZTMywgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RUY3KSwgCiAgICAgICAgT2Zmc2V0
ICgweEYxMyksIAogICAgICAgIE9mZnNldCAoMHhGMTQpLCAKICAgICAgICAgICAgLCAgIDQs
IAogICAgICAgIFNBRE0sICAgNCwgCiAgICAgICAgU01ZSCwgICA0LCAKICAgICAgICBTTU1D
LCAgIDQsIAogICAgICAgIFNQU0MsICAgNCwgCiAgICAgICAgU0FNVCwgICA0LCAKICAgICAg
ICBTVERWLCAgIDgsIAogICAgICAgIFNDUkIsICAgOCwgCiAgICAgICAgUE1PRiwgICA4LCAK
ICAgICAgICBNUElELCAgIDgsIAogICAgICAgIFZFRFgsICAgMTAyNCwgCiAgICAgICAgU0hE
VywgICA4LCAKICAgICAgICBUUElELCAgIDE2LCAKICAgICAgICBUUEFELCAgIDgsIAogICAg
ICAgIFREVkksICAgMTYsIAogICAgICAgIFREUEksICAgMTYsIAogICAgICAgIFRMVkksICAg
MTYsIAogICAgICAgIFRMUEksICAgMTYsIAogICAgICAgIEVQQU8sICAgOCwgCiAgICAgICAg
VExBUywgICA4LCAKICAgICAgICBGQURNLCAgIDgsIAogICAgICAgIEZTVEEsICAgMSwgCiAg
ICAgICAgT2Zmc2V0ICgweEZBQiksIAogICAgICAgIFNSUEMsICAgOCwgCiAgICAgICAgVFNU
ViwgICA4LCAKICAgICAgICBQQ0tWLCAgIDgsIAogICAgICAgIFRJRFgsICAgOCwgCiAgICAg
ICAgTUlOUCwgICA4LCAKICAgICAgICBGUFBULCAgIDgsIAogICAgICAgIFNQUFQsICAgOAog
ICAgfQoKICAgIEZpZWxkIChNTlZTLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg
ewogICAgICAgIE9mZnNldCAoMHhCMDApLCAKICAgICAgICBXSVRNLCAgIDgsIAogICAgICAg
IFdTRUwsICAgOCwgCiAgICAgICAgV0xTMCwgICA4LCAKICAgICAgICBXTFMxLCAgIDgsIAog
ICAgICAgIFdMUzIsICAgOCwgCiAgICAgICAgV0xTMywgICA4LCAKICAgICAgICBXTFM0LCAg
IDgsIAogICAgICAgIFdMUzUsICAgOCwgCiAgICAgICAgV0xTNiwgICA4LCAKICAgICAgICBX
TFM3LCAgIDgsIAogICAgICAgIFdMUzgsICAgOCwgCiAgICAgICAgV0xTOSwgICA4LCAKICAg
ICAgICBXTFNBLCAgIDgsIAogICAgICAgIFdMU0IsICAgOCwgCiAgICAgICAgV0xTQywgICA4
LCAKICAgICAgICBXTFNELCAgIDgsIAogICAgICAgIFdFTkMsICAgOCwgCiAgICAgICAgV0tC
RCwgICA4LCAKICAgICAgICBXUFRZLCAgIDgsIAogICAgICAgIFdQQVMsICAgMTAzMiwgCiAg
ICAgICAgV1BOVywgICAxMDMyLCAKICAgICAgICBXU1BNLCAgIDgsIAogICAgICAgIFdTUFMs
ICAgOCwgCiAgICAgICAgV1NNTiwgICA4LCAKICAgICAgICBXU01YLCAgIDgsIAogICAgICAg
IFdTRU4sICAgOCwgCiAgICAgICAgV1NLQiwgICA4LCAKICAgICAgICBXQVNCLCAgIDgsIAog
ICAgICAgIFdBU0ksICAgMTYsIAogICAgICAgIFdBU0QsICAgOCwgCiAgICAgICAgV0FTUywg
ICAzMiwgCiAgICAgICAgV0RSViwgICA4LCAKICAgICAgICBXTVRILCAgIDgsIAogICAgICAg
IFJUQzAsICAgOCwgCiAgICAgICAgUlRDMSwgICA4LCAKICAgICAgICBSVEMyLCAgIDgsIAog
ICAgICAgIFdTSFMsICAgOCwgCiAgICAgICAgV0VYRiwgICA4LCAKICAgICAgICBTREJNLCAg
IDgKICAgIH0KCiAgICBGaWVsZCAoTU5WUywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK
ICAgIHsKICAgICAgICBPZmZzZXQgKDB4MTAwMCksIAogICAgICAgIENCRkYsICAgMzI3NjgK
ICAgIH0KCiAgICBGaWVsZCAoTU5WUywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg
IHsKICAgICAgICBPZmZzZXQgKDB4QTAwKSwgCiAgICAgICAgREJHQiwgICAxMDI0CiAgICB9
CgogICAgRmllbGQgKE1OVlMsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAg
ICAgICAgT2Zmc2V0ICgweDgwMCksIAogICAgICAgIE9mZnNldCAoMHg4MDQpLCAKICAgICAg
ICBPZmZzZXQgKDB4ODA4KSwgCiAgICAgICAgT2Zmc2V0ICgweDgwQyksIAogICAgICAgIE9m
ZnNldCAoMHg4MTApLCAKICAgICAgICBXTFZELCAgIDE2CiAgICB9CgogICAgT3BlcmF0aW9u
UmVnaW9uIChPTlZTLCBTeXN0ZW1NZW1vcnksIDB4MUJCMTBFOTgsIDB4MDAwMDAwNzYpCiAg
ICBGaWVsZCAoT05WUywgQW55QWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBP
ZmZzZXQgKDB4MDQpLCAKICAgICAgICBNQklELCAgIDgsIAogICAgICAgIE9mZnNldCAoMHgw
NiksIAogICAgICAgIE1JQUMsICAgMTYsIAogICAgICAgIEMxNk4sICAgOCwgCiAgICAgICAg
U1BERiwgICA4LCAKICAgICAgICBJR0NDLCAgIDgsIAogICAgICAgIE5QQ1MsICAgOCwgCiAg
ICAgICAgV0lTUCwgICA4LCAKICAgICAgICBPZmZzZXQgKDB4MTApLCAKICAgICAgICBHVkRJ
LCAgIDMyLCAKICAgICAgICBETlBGLCAgIDgsIAogICAgICAgIEdDUEksICAgOCwgCiAgICAg
ICAgTlBCRiwgICAxNiwgCiAgICAgICAgT0xFRCwgICA4LCAKICAgICAgICBHQzYzLCAgIDgs
IAogICAgICAgIE5FWFIsICAgOCwgCiAgICAgICAgRE5UQywgICAxLCAKICAgICAgICBHUE1D
LCAgIDEsIAogICAgICAgIERCVEMsICAgMSwgCiAgICAgICAgV1NQQywgICAxLCAKICAgICAg
ICBPZmZzZXQgKDB4MUMpLCAKICAgICAgICBBVVhFLCAgIDgsIAogICAgICAgIE5IQUMsICAg
OCwgCiAgICAgICAgT2Zmc2V0ICgweDIwKSwgCiAgICAgICAgQ1BMMSwgICAxNiwgCiAgICAg
ICAgQ0dUQywgICAxNiwgCiAgICAgICAgTlRQUCwgICAxNiwgCiAgICAgICAgTUFURywgICAx
NiwgCiAgICAgICAgTUlURywgICAxNiwgCiAgICAgICAgTlRQRCwgICAxNiwgCiAgICAgICAg
TUFURCwgICAxNiwgCiAgICAgICAgTUlURCwgICAxNiwgCiAgICAgICAgVUNURywgICAxNiwg
CiAgICAgICAgTUFQTCwgICA4LCAKICAgICAgICBNSVBMLCAgIDgsIAogICAgICAgIFNLVU0s
ICAgOCwgCiAgICAgICAgT2Zmc2V0ICgweDM2KSwgCiAgICAgICAgRFBOVCwgICA4LCAKICAg
ICAgICBPZmZzZXQgKDB4MzgpLCAKICAgICAgICBUUE9SLCAgIDE2LCAKICAgICAgICBBVE9S
LCAgIDE2LCAKICAgICAgICBJVE9SLCAgIDE2LCAKICAgICAgICBPZmZzZXQgKDB4NDApLCAK
ICAgICAgICBUUERSLCAgIDE2LCAKICAgICAgICBBVERSLCAgIDE2LCAKICAgICAgICBJSURS
LCAgIDE2LCAKICAgICAgICBUR09SLCAgIDE2LCAKICAgICAgICBDRE4wLCAgIDgsIAogICAg
ICAgIENVUDAsICAgOCwgCiAgICAgICAgQ0ROMSwgICA4LCAKICAgICAgICBDVVAxLCAgIDgs
IAogICAgICAgIENETjIsICAgOCwgCiAgICAgICAgQ1VQMiwgICA4LCAKICAgICAgICBDRE4z
LCAgIDgsIAogICAgICAgIENVUDMsICAgOCwgCiAgICAgICAgR0ROMCwgICA4LCAKICAgICAg
ICBHVVAwLCAgIDgsIAogICAgICAgIEdETjEsICAgOCwgCiAgICAgICAgR1VQMSwgICA4LCAK
ICAgICAgICBHRE4yLCAgIDgsIAogICAgICAgIEdVUDIsICAgOCwgCiAgICAgICAgR0ROMywg
ICA4LCAKICAgICAgICBHVVAzLCAgIDgsIAogICAgICAgIE9mZnNldCAoMHg2MCksIAogICAg
ICAgIE1URzYsICAgMTYsIAogICAgICAgIE1URzgsICAgMTYsIAogICAgICAgIFRQUDQsICAg
MTYsIAogICAgICAgIFRQUDYsICAgMTYsIAogICAgICAgIFRQUDgsICAgMTYsIAogICAgICAg
IFRDSUQsICAgOCwgCiAgICAgICAgT2Zmc2V0ICgweDcwKSwgCiAgICAgICAgRFZNRywgICA4
LCAKICAgICAgICBVVFBNLCAgIDgsIAogICAgICAgIFIzNTcsICAgOCwgCiAgICAgICAgTkRO
UywgICA4LCAKICAgICAgICBJU0dELCAgIDgsIAogICAgICAgIEhQRFMsICAgOAogICAgfQoK
ICAgIE9wZXJhdGlvblJlZ2lvbiAoQ05WUywgU3lzdGVtTWVtb3J5LCAweDFCQjBCMDE4LCAw
eDIwMDApCiAgICBGaWVsZCAoQ05WUywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg
IHsKICAgICAgICBTQ1NCLCAgIDY1NTM2CiAgICB9CgogICAgRmllbGQgKENOVlMsIEJ5dGVB
Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgU05NQSwgICAzMgogICAgfQoK
ICAgIEZpZWxkIChDTlZTLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAg
ICAgIFNTTUIsICAgMjQ3NjgsIAogICAgICAgIFNTUEwsICAgMTYsIAogICAgICAgIFNTUEIs
ICAgMjA0OAogICAgfQoKICAgIEZpZWxkIChDTlZTLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNl
cnZlKQogICAgewogICAgICAgIFNHTUIsICAgMTI4LCAKICAgICAgICBTR1BMLCAgIDE2LCAK
ICAgICAgICBTR1BCLCAgIDIwNDgKICAgIH0KCiAgICBGaWVsZCAoQ05WUywgQnl0ZUFjYywg
Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBTR1NCLCAgIDI0NjA4CiAgICB9Cgog
ICAgRmllbGQgKENOVlMsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAg
ICAgU0VETCwgICA3NjgsIAogICAgICAgIFNFTlMsICAgMzIKICAgIH0KCiAgICBGaWVsZCAo
Q05WUywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBTV01CLCAg
IDYwOTkyLCAKICAgICAgICBTV0FMLCAgIDE2LCAKICAgICAgICBTV0FCLCAgIDIwNDgKICAg
IH0KCiAgICBGaWVsZCAoQ05WUywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsK
ICAgICAgICBHV01CLCAgIDYwODY0CiAgICB9CgogICAgRmllbGQgKENOVlMsIEJ5dGVBY2Ms
IE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgU1BNQiwgICAxMTA0CiAgICB9Cgog
ICAgRmllbGQgKENOVlMsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAg
ICAgR1BNQiwgICA1NTIwCiAgICB9CgogICAgTmFtZSAoU1BTLCAweDAwKQogICAgTmFtZSAo
T1NJRiwgMHgwMCkKICAgIE5hbWUgKFdOVEYsIDB4MDApCiAgICBOYW1lIChXWFBGLCAweDAw
KQogICAgTmFtZSAoV1ZJUywgMHgwMCkKICAgIE5hbWUgKFdJTjcsIDB4MDApCiAgICBOYW1l
IChXSU44LCAweDAwKQogICAgTmFtZSAoV1NQViwgMHgwMCkKICAgIE5hbWUgKExOVVgsIDB4
MDApCiAgICBOYW1lIChIOERSLCAweDAwKQogICAgTmFtZSAoTUVNWCwgMHgwMCkKICAgIE5h
bWUgKEFDU1QsIDB4MDApCiAgICBOYW1lIChGTUJMLCAweDAxKQogICAgTmFtZSAoRkRUUCwg
MHgwMikKICAgIE5hbWUgKEZVUFMsIDB4MDMpCiAgICBOYW1lIChGTklELCAweDAwKQogICAg
TmFtZSAoUlJCRiwgMHgwMCkKICAgIE5hbWUgKE5CQ0YsIDB4MDApCiAgICBOYW1lIChIQVVG
LCAweDAwKQogICAgTmFtZSAoU1hSRiwgMHgwMCkKICAgIE5hbWUgKFNYRUYsIDB4MDApCiAg
ICBPcGVyYXRpb25SZWdpb24gKFNNSTAsIFN5c3RlbUlPLCAweEIwLCAweDAyKQogICAgRmll
bGQgKFNNSTAsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgQVBN
QywgICA4LCAKICAgICAgICBBUE1ELCAgIDgKICAgIH0KCiAgICBGaWVsZCAoTU5WUywgQW55
QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIE9mZnNldCAoMHhGQzApLCAK
ICAgICAgICBDTUQsICAgIDgsIAogICAgICAgIEVSUiwgICAgMzIsIAogICAgICAgIFBBUjAs
ICAgMzIsIAogICAgICAgIFBBUjEsICAgMzIsIAogICAgICAgIFBBUjIsICAgMzIsIAogICAg
ICAgIFBBUjMsICAgMzIKICAgIH0KCiAgICBNdXRleCAoTVNNSSwgMHgwMCkKICAgIE1ldGhv
ZCAoU01JLCA1LCBTZXJpYWxpemVkKQogICAgewogICAgICAgIEFjcXVpcmUgKE1TTUksIDB4
RkZGRikKICAgICAgICBDTUQgPSBBcmcwCiAgICAgICAgRVJSID0gMHgwMQogICAgICAgIFBB
UjAgPSBBcmcxCiAgICAgICAgUEFSMSA9IEFyZzIKICAgICAgICBQQVIyID0gQXJnMwogICAg
ICAgIFBBUjMgPSBBcmc0CiAgICAgICAgQVBNQyA9IDB4RjUKICAgICAgICBXaGlsZSAoKEVS
UiA9PSAweDAxKSkKICAgICAgICB7CiAgICAgICAgICAgIFNsZWVwICgweDAxKQogICAgICAg
ICAgICBBUE1DID0gMHhGNQogICAgICAgIH0KCiAgICAgICAgTG9jYWwwID0gUEFSMCAvKiBc
UEFSMCAqLwogICAgICAgIFJlbGVhc2UgKE1TTUkpCiAgICAgICAgUmV0dXJuIChMb2NhbDAp
CiAgICB9CgogICAgTWV0aG9kIChSUENJLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAg
ICAgIFJldHVybiAoU01JICgweDAwLCAweDAwLCBBcmcwLCAweDAwLCAweDAwKSkKICAgIH0K
CiAgICBNZXRob2QgKFdQQ0ksIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU01J
ICgweDAwLCAweDAxLCBBcmcwLCBBcmcxLCAweDAwKQogICAgfQoKICAgIE1ldGhvZCAoTVBD
SSwgMywgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTTUkgKDB4MDAsIDB4MDIsIEFy
ZzAsIEFyZzEsIEFyZzIpCiAgICB9CgogICAgTWV0aG9kIChSQkVDLCAxLCBOb3RTZXJpYWxp
emVkKQogICAgewogICAgICAgIFJldHVybiAoU01JICgweDAwLCAweDAzLCBBcmcwLCAweDAw
LCAweDAwKSkKICAgIH0KCiAgICBNZXRob2QgKFdCRUMsIDIsIE5vdFNlcmlhbGl6ZWQpCiAg
ICB7CiAgICAgICAgU01JICgweDAwLCAweDA0LCBBcmcwLCBBcmcxLCAweDAwKQogICAgfQoK
ICAgIE1ldGhvZCAoTUJFQywgMywgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTTUkg
KDB4MDAsIDB4MDUsIEFyZzAsIEFyZzEsIEFyZzIpCiAgICB9CgogICAgTWV0aG9kIChSSVNB
LCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFJldHVybiAoU01JICgweDAwLCAw
eDA2LCBBcmcwLCAweDAwLCAweDAwKSkKICAgIH0KCiAgICBNZXRob2QgKFdJU0EsIDIsIE5v
dFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU01JICgweDAwLCAweDA3LCBBcmcwLCBBcmcx
LCAweDAwKQogICAgfQoKICAgIE1ldGhvZCAoTUlTQSwgMywgTm90U2VyaWFsaXplZCkKICAg
IHsKICAgICAgICBTTUkgKDB4MDAsIDB4MDgsIEFyZzAsIEFyZzEsIEFyZzIpCiAgICB9Cgog
ICAgTWV0aG9kIChWRVhQLCAwLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFNNSSAo
MHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgIH0KCiAgICBNZXRob2QgKFZVUFMs
IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU01JICgweDAxLCAweDAxLCBBcmcw
LCAweDAwLCAweDAwKQogICAgfQoKICAgIE1ldGhvZCAoVlNEUywgMiwgTm90U2VyaWFsaXpl
ZCkKICAgIHsKICAgICAgICBTTUkgKDB4MDEsIDB4MDIsIEFyZzAsIEFyZzEsIDB4MDApCiAg
ICB9CgogICAgTWV0aG9kIChWRERDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAg
IFNNSSAoMHgwMSwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCkKICAgIH0KCiAgICBNZXRob2Qg
KFZWUEQsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU01JICgweDAxLCAweDA0
LCBBcmcwLCAweDAwLCAweDAwKQogICAgfQoKICAgIE1ldGhvZCAoVk5SUywgMSwgTm90U2Vy
aWFsaXplZCkKICAgIHsKICAgICAgICBTTUkgKDB4MDEsIDB4MDUsIEFyZzAsIDB4MDAsIDB4
MDApCiAgICB9CgogICAgTWV0aG9kIChHTFBXLCAwLCBOb3RTZXJpYWxpemVkKQogICAgewog
ICAgICAgIFJldHVybiAoU01JICgweDAxLCAweDA2LCAweDAwLCAweDAwLCAweDAwKSkKICAg
IH0KCiAgICBNZXRob2QgKFZTTEQsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAg
U01JICgweDAxLCAweDA3LCBBcmcwLCAweDAwLCAweDAwKQogICAgfQoKICAgIE1ldGhvZCAo
VkVWVCwgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKFNNSSAoMHgw
MSwgMHgwOCwgQXJnMCwgMHgwMCwgMHgwMCkpCiAgICB9CgogICAgTWV0aG9kIChWVEhSLCAw
LCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFJldHVybiAoU01JICgweDAxLCAweDA5
LCAweDAwLCAweDAwLCAweDAwKSkKICAgIH0KCiAgICBNZXRob2QgKFZCUkMsIDEsIE5vdFNl
cmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU01JICgweDAxLCAweDBBLCBBcmcwLCAweDAwLCAw
eDAwKQogICAgfQoKICAgIE1ldGhvZCAoVkJSRywgMCwgTm90U2VyaWFsaXplZCkKICAgIHsK
ICAgICAgICBSZXR1cm4gKFNNSSAoMHgwMSwgMHgwRSwgMHgwMCwgMHgwMCwgMHgwMCkpCiAg
ICB9CgogICAgTWV0aG9kIChWQ01TLCAyLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAg
IFJldHVybiAoU01JICgweDAxLCAweDBCLCBBcmcwLCBBcmcxLCAweDAwKSkKICAgIH0KCiAg
ICBNZXRob2QgKFZCVEQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgUmV0dXJu
IChTTUkgKDB4MDEsIDB4MEYsIDB4MDAsIDB4MDAsIDB4MDApKQogICAgfQoKICAgIE1ldGhv
ZCAoVkRZTiwgMiwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKFNNSSAo
MHgwMSwgMHgxMSwgQXJnMCwgQXJnMSwgMHgwMCkpCiAgICB9CgogICAgTWV0aG9kIChTRFBT
LCAyLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFJldHVybiAoU01JICgweDAxLCAw
eDEyLCBBcmcwLCBBcmcxLCAweDAwKSkKICAgIH0KCiAgICBNZXRob2QgKFNDTVMsIDEsIE5v
dFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgUmV0dXJuIChTTUkgKDB4MDIsIEFyZzAsIDB4
MDAsIDB4MDAsIDB4MDApKQogICAgfQoKICAgIE1ldGhvZCAoQkhEUCwgMiwgTm90U2VyaWFs
aXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKFNNSSAoMHgwMywgMHgwMCwgQXJnMCwgQXJn
MSwgMHgwMCkpCiAgICB9CgogICAgTWV0aG9kIChTVEVQLCAxLCBOb3RTZXJpYWxpemVkKQog
ICAgewogICAgICAgIFNNSSAoMHgwNCwgQXJnMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgIH0K
CiAgICBNZXRob2QgKFNMVFAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU01J
ICgweDA1LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgfQoKICAgIE1ldGhvZCAoQ0JS
SSwgMCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTTUkgKDB4MDUsIDB4MDEsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICB9CgogICAgTWV0aG9kIChCQ0hLLCAwLCBOb3RTZXJpYWxp
emVkKQogICAgewogICAgICAgIFJldHVybiAoU01JICgweDA1LCAweDA0LCAweDAwLCAweDAw
LCAweDAwKSkKICAgIH0KCiAgICBNZXRob2QgKEJZUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg
ICB7CiAgICAgICAgU01JICgweDA1LCAweDA1LCAweDAwLCAweDAwLCAweDAwKQogICAgfQoK
ICAgIE1ldGhvZCAoTENISywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1
cm4gKFNNSSAoMHgwNSwgMHgwNiwgQXJnMCwgMHgwMCwgMHgwMCkpCiAgICB9CgogICAgTWV0
aG9kIChCTFRILCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFJldHVybiAoU01J
ICgweDA2LCBBcmcwLCAweDAwLCAweDAwLCAweDAwKSkKICAgIH0KCiAgICBNZXRob2QgKFBS
U00sIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgUmV0dXJuIChTTUkgKDB4MDcs
IDB4MDAsIEFyZzAsIEFyZzEsIDB4MDApKQogICAgfQoKICAgIE1ldGhvZCAoSVNPQywgMSwg
Tm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKFNNSSAoMHgwNywgMHgwMywg
QXJnMCwgMHgwMCwgMHgwMCkpCiAgICB9CgogICAgTWV0aG9kIChFWlJDLCAxLCBOb3RTZXJp
YWxpemVkKQogICAgewogICAgICAgIFJldHVybiAoU01JICgweDA3LCAweDA0LCBBcmcwLCAw
eDAwLCAweDAwKSkKICAgIH0KCiAgICBNZXRob2QgKFdHU1YsIDEsIE5vdFNlcmlhbGl6ZWQp
CiAgICB7CiAgICAgICAgUmV0dXJuIChTTUkgKDB4MDksIEFyZzAsIDB4MDAsIDB4MDAsIDB4
MDApKQogICAgfQoKICAgIE1ldGhvZCAoVFNETCwgMCwgTm90U2VyaWFsaXplZCkKICAgIHsK
ICAgICAgICBSZXR1cm4gKFNNSSAoMHgwQSwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCkpCiAg
ICB9CgogICAgTWV0aG9kIChGTFBGLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAg
IFJldHVybiAoU01JICgweDBBLCAweDA0LCBBcmcwLCAweDAwLCAweDAwKSkKICAgIH0KCiAg
ICBNZXRob2QgKEdUU1QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgUmV0dXJu
IChTTUkgKDB4MEEsIDB4MDUsIDB4MDAsIDB4MDAsIDB4MDApKQogICAgfQoKICAgIE1ldGhv
ZCAoSE9UTCwgMCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKFNNSSAo
MHgwQSwgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCkpCiAgICB9CgogICAgTWV0aG9kIChDU1VN
LCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFJldHVybiAoU01JICgweDBFLCBB
cmcwLCAweDAwLCAweDAwLCAweDAwKSkKICAgIH0KCiAgICBNZXRob2QgKE5WU1MsIDEsIE5v
dFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgUmV0dXJuIChTTUkgKDB4MEYsIEFyZzAsIDB4
MDAsIDB4MDAsIDB4MDApKQogICAgfQoKICAgIE1ldGhvZCAoV01JUywgMiwgTm90U2VyaWFs
aXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKFNNSSAoMHgxMCwgQXJnMCwgQXJnMSwgMHgw
MCwgMHgwMCkpCiAgICB9CgogICAgTWV0aG9kIChBV09OLCAxLCBOb3RTZXJpYWxpemVkKQog
ICAgewogICAgICAgIFJldHVybiAoU01JICgweDEyLCBBcmcwLCAweDAwLCAweDAwLCAweDAw
KSkKICAgIH0KCiAgICBNZXRob2QgKFBNT04sIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAg
ICAgICAgTG9jYWwwID0gU2l6ZU9mIChBcmcwKQogICAgICAgIE5hbWUgKFRTVFIsIEJ1ZmZl
ciAoTG9jYWwwKSB7fSkKICAgICAgICBUU1RSID0gQXJnMAogICAgICAgIERCR0IgPSBUU1RS
IC8qIFxQTU9OLlRTVFIgKi8KICAgICAgICBTTUkgKDB4MTEsIEFyZzEsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICB9CgogICAgTWV0aG9kIChVQVdTLCAxLCBOb3RTZXJpYWxpemVkKQogICAg
ewogICAgICAgIFJldHVybiAoU01JICgweDEzLCBBcmcwLCAweDAwLCAweDAwLCAweDAwKSkK
ICAgIH0KCiAgICBNZXRob2QgKEJGV0MsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAg
ICAgUmV0dXJuIChTTUkgKDB4MTQsIDB4MDAsIEFyZzAsIDB4MDAsIDB4MDApKQogICAgfQoK
ICAgIE1ldGhvZCAoQkZXUCwgMCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1
cm4gKFNNSSAoMHgxNCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCkpCiAgICB9CgogICAgTWV0
aG9kIChCRldMLCAwLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFNNSSAoMHgxNCwg
MHgwMiwgMHgwMCwgMHgwMCwgMHgwMCkKICAgIH0KCiAgICBNZXRob2QgKEJGV0csIDEsIE5v
dFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU01JICgweDE0LCAweDAzLCBBcmcwLCAweDAw
LCAweDAwKQogICAgfQoKICAgIE1ldGhvZCAoQkRNQywgMSwgTm90U2VyaWFsaXplZCkKICAg
IHsKICAgICAgICBTTUkgKDB4MTQsIDB4MDQsIEFyZzAsIDB4MDAsIDB4MDApCiAgICB9Cgog
ICAgTWV0aG9kIChQU0lGLCAyLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFJldHVy
biAoU01JICgweDE0LCAweDA1LCBBcmcwLCBBcmcxLCAweDAwKSkKICAgIH0KCiAgICBNZXRo
b2QgKEZOU0MsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgUmV0dXJuIChTTUkg
KDB4MTQsIDB4MDYsIEFyZzAsIEFyZzEsIDB4MDApKQogICAgfQoKICAgIE1ldGhvZCAoQVVE
QywgMiwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKFNNSSAoMHgxNCwg
MHgwNywgQXJnMCwgQXJnMSwgMHgwMCkpCiAgICB9CgogICAgTWV0aG9kIChTWUJDLCAyLCBO
b3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFJldHVybiAoU01JICgweDE0LCAweDA4LCBB
cmcwLCBBcmcxLCAweDAwKSkKICAgIH0KCiAgICBNZXRob2QgKEtCTFMsIDIsIE5vdFNlcmlh
bGl6ZWQpCiAgICB7CiAgICAgICAgUmV0dXJuIChTTUkgKDB4MTQsIDB4MDksIEFyZzAsIEFy
ZzEsIDB4MDApKQogICAgfQoKICAgIE1ldGhvZCAoU1NUSSwgMiwgTm90U2VyaWFsaXplZCkK
ICAgIHsKICAgICAgICBSZXR1cm4gKFNNSSAoMHgxNCwgMHgwQSwgQXJnMCwgQXJnMSwgMHgw
MCkpCiAgICB9CgogICAgTWV0aG9kIChTU1RILCAyLCBOb3RTZXJpYWxpemVkKQogICAgewog
ICAgICAgIFJldHVybiAoU01JICgweDE0LCAweDBCLCBBcmcwLCBBcmcxLCAweDAwKSkKICAg
IH0KCiAgICBNZXRob2QgKFVCSVMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAg
UmV0dXJuIChTTUkgKDB4MTUsIDB4MDAsIEFyZzAsIDB4MDAsIDB4MDApKQogICAgfQoKICAg
IE1ldGhvZCAoRElFSCwgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1cm4g
KFNNSSAoMHgxNiwgMHgwMCwgQXJnMCwgMHgwMCwgMHgwMCkpCiAgICB9CgogICAgTWV0aG9k
IChPVVRQLCAyLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFNNSSAoMHgxNywgQXJn
MCwgQXJnMSwgMHgwMCwgMHgwMCkKICAgIH0KCiAgICBNZXRob2QgKFNSRVEsIDMsIE5vdFNl
cmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU01JICgweDE4LCAoQXJnMCAmIDB4RkYpLCAoQXJn
MSAmIDB4RkYpLCAoQXJnMiAmIAogICAgICAgICAgICAweEZGKSwgMHgwMCkKICAgIH0KCiAg
ICBNZXRob2QgKFNQTVMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU01JICgw
eDE5LCAoQXJnMCAmIDB4RkYpLCAweDAwLCAweDAwLCAweDAwKQogICAgfQoKICAgIE1ldGhv
ZCAoTFZTUywgMiwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKFNNSSAo
MHgxQSwgKEFyZzAgJiAweEZGKSwgQXJnMSwgMHgwMCwgMHgwMCkpCiAgICB9CgogICAgTWV0
aG9kIChTQ01QLCAyLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9IFNp
emVPZiAoQXJnMCkKICAgICAgICBJZiAoKExvY2FsMCAhPSBTaXplT2YgKEFyZzEpKSkKICAg
ICAgICB7CiAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgIH0KCiAgICAgICAgTG9j
YWwwKysKICAgICAgICBOYW1lIChTVFIxLCBCdWZmZXIgKExvY2FsMCkge30pCiAgICAgICAg
TmFtZSAoU1RSMiwgQnVmZmVyIChMb2NhbDApIHt9KQogICAgICAgIFNUUjEgPSBBcmcwCiAg
ICAgICAgU1RSMiA9IEFyZzEKICAgICAgICBMb2NhbDEgPSBaZXJvCiAgICAgICAgV2hpbGUg
KChMb2NhbDEgPCBMb2NhbDApKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwyID0gRGVy
ZWZPZiAoU1RSMSBbTG9jYWwxXSkKICAgICAgICAgICAgTG9jYWwzID0gRGVyZWZPZiAoU1RS
MiBbTG9jYWwxXSkKICAgICAgICAgICAgSWYgKChMb2NhbDIgIT0gTG9jYWwzKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIExvY2FsMSsrCiAgICAgICAgfQoKICAgICAgICBSZXR1cm4gKFplcm8pCiAg
ICB9CgogICAgTmFtZSAoTUFDQSwgIl9BVVhNQVhfI1hYWFhYWFhYWFhYWCMiKQogICAgTmFt
ZSAoV09MRCwgIl9TNVdPTF8jMDFFRjE3MDAwMDAwMDAjIikKICAgIFNjb3BlIChfU0IpCiAg
ICB7CiAgICAgICAgTWV0aG9kIChXTUVNLCA1LCBTZXJpYWxpemVkKQogICAgICAgIHsKICAg
ICAgICAgICAgTG9jYWwwID0gKEFyZzAgKyBBcmcxKQogICAgICAgICAgICBPcGVyYXRpb25S
ZWdpb24gKFZBUk0sIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICBG
aWVsZCAoVkFSTSwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIFZBUlIsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TG9jYWwxID0gVkFSUiAvKiBcX1NCXy5XTUVNLlZBUlIgKi8KICAgICAgICAgICAgTG9jYWw1
ID0gMHg3RkZGRkZGRgogICAgICAgICAgICBMb2NhbDUgfD0gMHg4MDAwMDAwMAogICAgICAg
ICAgICBMb2NhbDIgPSAoQXJnMiArIEFyZzMpCiAgICAgICAgICAgIExvY2FsMiA9ICgweDIw
IC0gTG9jYWwyKQogICAgICAgICAgICBMb2NhbDIgPSAoKChMb2NhbDUgPDwgTG9jYWwyKSAm
IExvY2FsNSkgPj4gTG9jYWwyKQogICAgICAgICAgICBMb2NhbDIgPSAoKExvY2FsMiA+PiBB
cmcyKSA8PCBBcmcyKQogICAgICAgICAgICBMb2NhbDMgPSAoQXJnNCA8PCBBcmcyKQogICAg
ICAgICAgICBMb2NhbDQgPSAoKExvY2FsMSAmIChMb2NhbDUgXiBMb2NhbDIpKSB8IExvY2Fs
MykKICAgICAgICAgICAgVkFSUiA9IExvY2FsNAogICAgICAgIH0KCiAgICAgICAgTWV0aG9k
IChXRklPLCAyLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcw
IDw9IDB4RkYpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQXJn
MCA8PCAweDAyKQogICAgICAgICAgICAgICAgV01FTSAoMHhGRUQ4MTUwMCwgTG9jYWwwLCAw
eDE2LCAweDAxLCBBcmcxKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gKEFyZzAgJj0gMHhGRiA8PCAweDAy
KQogICAgICAgICAgICAgICAgV01FTSAoMHhGRUQ4MTIwMCwgTG9jYWwwLCAweDE2LCAweDAx
LCBBcmcxKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFJGSU8s
IDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAoMHhGRUQ4
MTUwMCArIChMb2NhbDAgPSAoQXJnMCA8PCAweDAyKSkpCiAgICAgICAgICAgIE9wZXJhdGlv
blJlZ2lvbiAoUkdQSSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAg
IEZpZWxkIChSR1BJLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwMiksIAogICAgICAgICAgICAgICAgR1BMViwg
ICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoR1BMVikgLyogXF9TQl8u
UkZJTy5HUExWICovCiAgICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24gKEdTQ0ks
IFN5c3RlbU1lbW9yeSwgMHhGRUQ4MDIwMCwgMHgxMCkKICAgICAgICBGaWVsZCAoR1NDSSwg
RFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBPZmZz
ZXQgKDB4MDgpLCAKICAgICAgICAgICAgR0FITCwgICAzMiwgCiAgICAgICAgICAgIEdMRVYs
ICAgMzIKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoR0NUTCwgMiwgU2VyaWFsaXplZCkK
ICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IEdBSEwgLyogXF9TQl8uR0FITCAqLwog
ICAgICAgICAgICBMb2NhbDEgPSBHTEVWIC8qIFxfU0JfLkdMRVYgKi8KICAgICAgICAgICAg
SWYgKChBcmcwID09IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2Nh
bDIgPSAoTG9jYWwwICYgfigweDAxIDw8IEFyZzEpKQogICAgICAgICAgICAgICAgTG9jYWwz
ID0gKExvY2FsMSAmIH4oMHgwMSA8PCBBcmcxKSkKICAgICAgICAgICAgfQogICAgICAgICAg
ICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMiA9IChMb2NhbDAg
fCAoMHgwMSA8PCBBcmcxKSkKICAgICAgICAgICAgICAgIExvY2FsMyA9IChMb2NhbDEgfCAo
MHgwMSA8PCBBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgR0FITCA9IExvY2Fs
MgogICAgICAgICAgICBHTEVWID0gTG9jYWwzCiAgICAgICAgfQoKICAgICAgICBEZXZpY2Ug
KExJRCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBD
MEQiKSAvKiBMaWQgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAg
ICAgTWV0aG9kIChfTElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0xJRDogTGlkIFN0YXR1
cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKChJTE5GID09IDB4MDApICYm
IChQTFVYID09IDB4MDApKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBJZiAoSDhEUikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoXl5QQ0kwLkxQQzAuRUMwLkhQTEQpIC8qIFxfU0JfLlBDSTAuTFBDMC5F
QzBfLkhQTEQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
RWxzZUlmICgoUkJFQyAoMHg0NikgJiAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2Vy
aWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBJZiAoTFdDUCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwNAogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMK
ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CgogICAgICAgICAgICBNZXRob2QgKF9QU1csIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFNX
OiBQb3dlciBTdGF0ZSBXYWtlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChI
OERSKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChBcmcwKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgXl5QQ0kwLkxQ
QzAuRUMwLkhXTE8gPSAweDAxCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIF5eUENJMC5MUEMwLkVDMC5IV0xPID0gMHgwMAogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2VJZiAoQXJnMCkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNQkVDICgweDMyLCAweEZGLCAweDA0
KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIE1CRUMgKDB4MzIsIDB4RkIsIDB4MDApCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExXQ1ApCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEFyZzApCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBMV0VOID0gMHgwMQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBMV0VOID0gMHgwMAogICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
RGV2aWNlIChTTFBCKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk
ICgiUE5QMEMwRSIpIC8qIFNsZWVwIEJ1dHRvbiBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJk
d2FyZSBJRAogICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAv
LyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIDB4MDgsIAogICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAg
ICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTVywg
MSwgTm90U2VyaWFsaXplZCkgIC8vIF9QU1c6IFBvd2VyIFN0YXRlIFdha2UKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgSWYgKEg4RFIpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgSWYgKEFyZzApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBeXlBDSTAuTFBDMC5FQzAuSFdGTiA9IDB4MDEKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgXl5QQ0kwLkxQQzAuRUMwLkhXRk4gPSAw
eDAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgRWxzZUlmIChBcmcwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIE1CRUMgKDB4MzIsIDB4RkYsIDB4MTApCiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTUJF
QyAoMHgzMiwgMHhFRiwgMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQog
ICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChXTUkxKQogICAgICAgIHsKICAgICAgICAgICAg
TmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMxNCIpIC8qIFdpbmRvd3MgTWFuYWdlbWVudCBJ
bnN0cnVtZW50YXRpb24gRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAg
ICAgICAgTmFtZSAoX1VJRCwgMHgwMSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAg
ICBOYW1lIChfV0RHLCBCdWZmZXIgKDB4MDFFMCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgLyogMDAwMCAqLyAgMHgwRSwgMHgyMywgMHhGNSwgMHg1MSwgMHg3NywgMHg5Niwg
MHhDRCwgMHg0NiwgIC8vIC4jLlF3Li5GCiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAw
eEExLCAweENGLCAweEMwLCAweEIyLCAweDNFLCAweEUzLCAweDRELCAweEI3LCAgLy8gLi4u
Lj4uTS4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4NDEsIDB4MzAsIDB4RkYsIDB4
MDUsIDB4NjQsIDB4OUEsIDB4NDcsIDB4OTgsICAvLyBBMC4uZC5HLgogICAgICAgICAgICAg
ICAgLyogMDAxOCAqLyAgMHhGNSwgMHgzMywgMHgzMywgMHg0RSwgMHhBNywgMHgwNywgMHg4
RSwgMHgyNSwgIC8vIC4zM04uLi4lCiAgICAgICAgICAgICAgICAvKiAwMDIwICovICAweDFF
LCAweEJCLCAweEMzLCAweEExLCAweDQxLCAweDMxLCAweDAxLCAweDA2LCAgLy8gLi4uLkEx
Li4KICAgICAgICAgICAgICAgIC8qIDAwMjggKi8gIDB4RUYsIDB4NTQsIDB4NEIsIDB4NkEs
IDB4RUQsIDB4QTUsIDB4MzMsIDB4NEQsICAvLyAuVEtqLi4zTQogICAgICAgICAgICAgICAg
LyogMDAzMCAqLyAgMHg5NCwgMHg1NSwgMHhCMCwgMHhEOSwgMHhCNCwgMHg4RCwgMHhGNCwg
MHhCMywgIC8vIC5VLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDM4ICovICAweDQxLCAw
eDMyLCAweDAxLCAweDA2LCAweEI2LCAweEVCLCAweEYxLCAweDc0LCAgLy8gQTIuLi4uLnQK
ICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4N0EsIDB4OTIsIDB4N0QsIDB4NEMsIDB4
OTUsIDB4REYsIDB4NjksIDB4OEUsICAvLyB6Ln1MLi5pLgogICAgICAgICAgICAgICAgLyog
MDA0OCAqLyAgMHgyMSwgMHhFOCwgMHgwRSwgMHhCNSwgMHg0MSwgMHgzMywgMHgwMSwgMHgw
NiwgIC8vICEuLi5BMy4uCiAgICAgICAgICAgICAgICAvKiAwMDUwICovICAweEZGLCAweDA0
LCAweEVGLCAweDdFLCAweDI4LCAweDQzLCAweDdDLCAweDQ0LCAgLy8gLi4ufihDfEQKICAg
ICAgICAgICAgICAgIC8qIDAwNTggKi8gIDB4QjUsIDB4QkIsIDB4RDQsIDB4NDksIDB4OTIs
IDB4NUQsIDB4NTMsIDB4OEQsICAvLyAuLi5JLl1TLgogICAgICAgICAgICAgICAgLyogMDA2
MCAqLyAgMHg0MSwgMHgzNCwgMHgwMSwgMHgwNiwgMHg5RSwgMHgxNSwgMHhEQiwgMHg4QSwg
IC8vIEE0Li4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDY4ICovICAweDMyLCAweDFFLCAw
eDVDLCAweDQ1LCAweEJDLCAweDkzLCAweDMwLCAweDhBLCAgLy8gMi5cRS4uMC4KICAgICAg
ICAgICAgICAgIC8qIDAwNzAgKi8gIDB4N0UsIDB4RDksIDB4ODIsIDB4NDYsIDB4NDEsIDB4
MzUsIDB4MDEsIDB4MDEsICAvLyB+Li5GQTUuLgogICAgICAgICAgICAgICAgLyogMDA3OCAq
LyAgMHhGRCwgMHhEOSwgMHg1MSwgMHgyNiwgMHgxQywgMHg5MSwgMHg2OSwgMHg0QiwgIC8v
IC4uUSYuLmlLCiAgICAgICAgICAgICAgICAvKiAwMDgwICovICAweEI5LCAweDRFLCAweEQw
LCAweERFLCAweEQ1LCAweDk2LCAweDNCLCAweEQ3LCAgLy8gLk4uLi4uOy4KICAgICAgICAg
ICAgICAgIC8qIDAwODggKi8gIDB4NDEsIDB4MzYsIDB4MDEsIDB4MDYsIDB4MUEsIDB4NjUs
IDB4NjQsIDB4NzMsICAvLyBBNi4uLmVkcwogICAgICAgICAgICAgICAgLyogMDA5MCAqLyAg
MHgyRiwgMHgxMywgMHhFNywgMHg0RiwgMHhBRCwgMHhBQSwgMHg0MCwgMHhDNiwgIC8vIC8u
Lk8uLkAuCiAgICAgICAgICAgICAgICAvKiAwMDk4ICovICAweEM3LCAweEVFLCAweDJFLCAw
eDNCLCAweDQxLCAweDM3LCAweDAxLCAweDA2LCAgLy8gLi4uO0E3Li4KICAgICAgICAgICAg
ICAgIC8qIDAwQTAgKi8gIDB4MkMsIDB4RUYsIDB4REQsIDB4REYsIDB4RDQsIDB4NTcsIDB4
Q0UsIDB4NDgsICAvLyAsLi4uLlcuSAogICAgICAgICAgICAgICAgLyogMDBBOCAqLyAgMHhC
MSwgMHg5NiwgMHgwRiwgMHhCNywgMHg4NywgMHhEOSwgMHgwOCwgMHgzNiwgIC8vIC4uLi4u
Li42CiAgICAgICAgICAgICAgICAvKiAwMEIwICovICAweDQ2LCAweDMwLCAweDAxLCAweDA2
LCAweEE2LCAweEVCLCAweDcwLCAweDczLCAgLy8gRjAuLi4ucHMKICAgICAgICAgICAgICAg
IC8qIDAwQjggKi8gIDB4NzMsIDB4N0UsIDB4OUMsIDB4NDAsIDB4OUEsIDB4ODksIDB4ODIs
IDB4OTcsICAvLyBzfi5ALi4uLgogICAgICAgICAgICAgICAgLyogMDBDMCAqLyAgMHg5NSwg
MHgzMSwgMHgzRCwgMHg3OCwgMHg0NiwgMHgzMSwgMHgyMCwgMHgwNSwgIC8vIC4xPXhGMSAu
CiAgICAgICAgICAgICAgICAvKiAwMEM4ICovICAweDg5LCAweEE1LCAweDk0LCAweDdFLCAw
eDY1LCAweDQ2LCAweERFLCAweDQ3LCAgLy8gLi4ufmVGLkcKICAgICAgICAgICAgICAgIC8q
IDAwRDAgKi8gIDB4QkUsIDB4MkIsIDB4REQsIDB4RTQsIDB4QTIsIDB4ODAsIDB4QUQsIDB4
NDcsICAvLyAuKy4uLi4uRwogICAgICAgICAgICAgICAgLyogMDBEOCAqLyAgMHg0NiwgMHgz
MiwgMHgwMSwgMHgwNiwgMHhDQywgMHgwOCwgMHhBMCwgMHgzNCwgIC8vIEYyLi4uLi40CiAg
ICAgICAgICAgICAgICAvKiAwMEUwICovICAweDA1LCAweEQyLCAweDYyLCAweDRCLCAweDlF
LCAweDY3LCAweDMxLCAweERGLCAgLy8gLi5iSy5nMS4KICAgICAgICAgICAgICAgIC8qIDAw
RTggKi8gIDB4QTgsIDB4QjksIDB4MDAsIDB4MDMsIDB4NDYsIDB4MzMsIDB4MDEsIDB4MDYs
ICAvLyAuLi4uRjMuLgogICAgICAgICAgICAgICAgLyogMDBGMCAqLyAgMHg5RCwgMHhGQiwg
MHg1MCwgMHhDMCwgMHg1RiwgMHhERiwgMHgwNiwgMHg0NiwgIC8vIC4uUC5fLi5GCiAgICAg
ICAgICAgICAgICAvKiAwMEY4ICovICAweEIwLCAweDY2LCAweDlFLCAweEZDLCAweDQwLCAw
eDFCLCAweDI1LCAweDUxLCAgLy8gLmYuLkAuJVEKICAgICAgICAgICAgICAgIC8qIDAxMDAg
Ki8gIDB4NDYsIDB4MzQsIDB4MDEsIDB4MDYsIDB4OTUsIDB4RTksIDB4OUMsIDB4OUIsICAv
LyBGNC4uLi4uLgogICAgICAgICAgICAgICAgLyogMDEwOCAqLyAgMHhDMywgMHhDMiwgMHhF
RSwgMHg0MCwgMHg4MSwgMHhENSwgMHg5NCwgMHg2OCwgIC8vIC4uLkAuLi5oCiAgICAgICAg
ICAgICAgICAvKiAwMTEwICovICAweDk1LCAweDM3LCAweDU5LCAweEJFLCAweDQ2LCAweDM1
LCAweDAxLCAweDA2LCAgLy8gLjdZLkY1Li4KICAgICAgICAgICAgICAgIC8qIDAxMTggKi8g
IDB4ODksIDB4NzgsIDB4MzQsIDB4OTgsIDB4MTIsIDB4RTEsIDB4MTQsIDB4NEYsICAvLyAu
eDQuLi4uTwogICAgICAgICAgICAgICAgLyogMDEyMCAqLyAgMHhCNCwgMHgxOCwgMHgyNywg
MHgzQSwgMHgxMywgMHg2NywgMHhERSwgMHg5QywgIC8vIC4uJzouZy4uCiAgICAgICAgICAg
ICAgICAvKiAwMTI4ICovICAweDQ2LCAweDM2LCAweDAxLCAweDA2LCAweDNBLCAweDI1LCAw
eDIxLCAweDM0LCAgLy8gRjYuLjolITQKICAgICAgICAgICAgICAgIC8qIDAxMzAgKi8gIDB4
N0MsIDB4QkQsIDB4MjIsIDB4NDIsIDB4ODQsIDB4N0YsIDB4MUQsIDB4QTYsICAvLyB8LiJC
Li4uLgogICAgICAgICAgICAgICAgLyogMDEzOCAqLyAgMHg0RSwgMHgzRSwgMHg4RiwgMHhD
RiwgMHg0NiwgMHgzNywgMHgwMSwgMHgwNiwgIC8vIE4+Li5GNy4uCiAgICAgICAgICAgICAg
ICAvKiAwMTQwICovICAweDM1LCAweENFLCAweDA3LCAweEYzLCAweDM5LCAweEQ1LCAweEQ2
LCAweDQyLCAgLy8gNS4uLjkuLkIKICAgICAgICAgICAgICAgIC8qIDAxNDggKi8gIDB4OUUs
IDB4ODcsIDB4NTUsIDB4NkQsIDB4N0QsIDB4RkYsIDB4OTEsIDB4NjQsICAvLyAuLlVtfS4u
ZAogICAgICAgICAgICAgICAgLyogMDE1MCAqLyAgMHg0NiwgMHgzOCwgMHgwMSwgMHgwNiwg
MHg3RiwgMHg0OSwgMHhCRiwgMHhDNywgIC8vIEY4Li4uSS4uCiAgICAgICAgICAgICAgICAv
KiAwMTU4ICovICAweEUwLCAweEVFLCAweEQxLCAweDRGLCAweEIxLCAweDFFLCAweDhBLCAw
eDcxLCAgLy8gLi4uTy4uLnEKICAgICAgICAgICAgICAgIC8qIDAxNjAgKi8gIDB4QjEsIDB4
MTAsIDB4RjQsIDB4MTYsIDB4NDUsIDB4MzAsIDB4MDEsIDB4MDYsICAvLyAuLi4uRTAuLgog
ICAgICAgICAgICAgICAgLyogMDE2OCAqLyAgMHgwRCwgMHgyMywgMHg0NywgMHgzMywgMHg5
NiwgMHgzMSwgMHg3MywgMHg0RSwgIC8vIC4jRzMuMXNOCiAgICAgICAgICAgICAgICAvKiAw
MTcwICovICAweEE1LCAweEYwLCAweDVGLCAweEU1LCAweDM3LCAweEI4LCAweEJDLCAweDA3
LCAgLy8gLi5fLjcuLi4KICAgICAgICAgICAgICAgIC8qIDAxNzggKi8gIDB4NDUsIDB4MzEs
IDB4MDEsIDB4MDYsIDB4NTUsIDB4MTYsIDB4MzEsIDB4ODksICAvLyBFMS4uVS4xLgogICAg
ICAgICAgICAgICAgLyogMDE4MCAqLyAgMHg5MSwgMHhBRCwgMHg2NSwgMHg0NiwgMHg4MCwg
MHgxRiwgMHhBQiwgMHgxNiwgIC8vIC4uZUYuLi4uCiAgICAgICAgICAgICAgICAvKiAwMTg4
ICovICAweDI1LCAweDBCLCAweDE5LCAweDQwLCAweDQ1LCAweDMyLCAweDAxLCAweDA2LCAg
Ly8gJS4uQEUyLi4KICAgICAgICAgICAgICAgIC8qIDAxOTAgKi8gIDB4N0YsIDB4OEIsIDB4
NDAsIDB4NEEsIDB4MzEsIDB4NTMsIDB4MUYsIDB4NDYsICAvLyAuLkBKMVMuRgogICAgICAg
ICAgICAgICAgLyogMDE5OCAqLyAgMHhBOSwgMHgzQSwgMHhCOSwgMHhGQiwgMHg2MSwgMHgy
NywgMHg2QSwgMHg0QSwgIC8vIC46Li5hJ2pKCiAgICAgICAgICAgICAgICAvKiAwMUEwICov
ICAweDQ1LCAweDMzLCAweDAxLCAweDA2LCAweDUwLCAweEQ1LCAweEM5LCAweDE3LCAgLy8g
RTMuLlAuLi4KICAgICAgICAgICAgICAgIC8qIDAxQTggKi8gIDB4Q0MsIDB4QjYsIDB4OTIs
IDB4NDEsIDB4OUMsIDB4NzEsIDB4NEUsIDB4M0YsICAvLyAuLi5BLnFOPwogICAgICAgICAg
ICAgICAgLyogMDFCMCAqLyAgMHgwQiwgMHgyOSwgMHg2RiwgMHhENiwgMHg0NSwgMHgzNCwg
MHgwMSwgMHgwNiwgIC8vIC4pby5FNC4uCiAgICAgICAgICAgICAgICAvKiAwMUI4ICovICAw
eENBLCAweDY2LCAweEMyLCAweENBLCAweEQzLCAweEI0LCAweEY5LCAweDQ5LCAgLy8gLmYu
Li4uLkkKICAgICAgICAgICAgICAgIC8qIDAxQzAgKi8gIDB4QTcsIDB4RDksIDB4RDcsIDB4
MzEsIDB4QTEsIDB4QkYsIDB4MTYsIDB4NzgsICAvLyAuLi4xLi4ueAogICAgICAgICAgICAg
ICAgLyogMDFDOCAqLyAgMHg0NSwgMHgzNSwgMHgwMSwgMHgwNiwgMHgyMSwgMHgxMiwgMHg5
MCwgMHgwNSwgIC8vIEU1Li4hLi4uCiAgICAgICAgICAgICAgICAvKiAwMUQwICovICAweDY2
LCAweEQ1LCAweEQxLCAweDExLCAweEIyLCAweEYwLCAweDAwLCAweEEwLCAgLy8gZi4uLi4u
Li4KICAgICAgICAgICAgICAgIC8qIDAxRDggKi8gIDB4QzksIDB4MDYsIDB4MjksIDB4MTAs
IDB4NDIsIDB4NDEsIDB4MDEsIDB4MDAgICAvLyAuLikuQkEuLgogICAgICAgICAgICB9KQog
ICAgICAgICAgICBOYW1lIChSRVROLCBQYWNrYWdlICgweDA1KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAiU3VjY2VzcyIsIAogICAgICAgICAgICAgICAgIk5vdCBTdXBwb3J0
ZWQiLCAKICAgICAgICAgICAgICAgICJJbnZhbGlkIFBhcmFtZXRlciIsIAogICAgICAgICAg
ICAgICAgIkFjY2VzcyBEZW5pZWQiLCAKICAgICAgICAgICAgICAgICJTeXN0ZW0gQnVzeSIK
ICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoSVRFTSwgUGFja2FnZSAoMHhBNykK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDBFLCAKICAgICAgICAgICAgICAgICAg
ICAiV2FrZU9uTEFOIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJVU0JCSU9TU3Vw
cG9ydCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAgICAgIkFsd2F5c09uVVNCIgogICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiVHJhY2tQb2ludCIKICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAgICAgIlRvdWNoUGFkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgICAgICAiRm5TdGlja3kiCiAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIDB4MDQsIAogICAgICAgICAgICAgICAgICAgICJUaGlua1Bh
ZE51bUxvY2siCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MEMsIAog
ICAgICAgICAgICAgICAgICAgICJQb3dlck9uTnVtTG9jayIKICAgICAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgMHgwNSwgCiAgICAgICAgICAgICAgICAgICAgIkJvb3REaXNw
bGF5RGV2aWNlIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZCIKICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAgICAgIlJlc2VydmVkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw
eDA2LCAKICAgICAgICAgICAgICAgICAgICAiQ0RST01TcGVlZCIKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIkNQVVBv
d2VyTWFuYWdlbWVudCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAgICAgIlBvd2VyQ29udHJvbEJlZXAiCiAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJM
b3dCYXR0ZXJ5QWxhcm0iCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgICAgICJQYXNzd29yZEJlZXAiCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJLZXli
b2FyZEJlZXAiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgICAgICJFeHRlbmRlZE1lbW9yeVRlc3QiCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgICJTQVRB
Q29udHJvbGxlck1vZGUiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgICAgICJDb3JlTXVsdGlQcm9jZXNzaW5nIgogICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAg
ICAiVmlydHVhbGl6YXRpb25UZWNobm9sb2d5IgogICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiTG9ja0JJT1NTZXR0aW5n
IgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDBCLCAKICAgICAgICAg
ICAgICAgICAgICAiTWluaW11bVBhc3N3b3JkTGVuZ3RoIgogICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiQklPU1Bhc3N3
b3JkQXRVbmF0dGVuZGVkQm9vdCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIkZpbmdlcnByaW50UHJlZGVza3RvcEF1
dGhlbnRpY2F0aW9uIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICJGaW5nZXJwcmlu
dFNlY3VyaXR5TW9kZSIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgw
MiwgCiAgICAgICAgICAgICAgICAgICAgIlNlY3VyaXR5Q2hpcCIKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIkJJT1NV
cGRhdGVCeUVuZFVzZXJzIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgICAgICAiRGF0YUV4ZWN1dGlvblByZXZlbnRpb24iCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgICAgICJFdGhlcm5ldExBTkFjY2VzcyIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIldpcmVsZXNzTEFOQWNjZXNz
IgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgICAgICAiV2lyZWxlc3NXQU5BY2Nlc3MiCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJCbHVldG9vdGhBY2Nl
c3MiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgICAgICJXaXJlbGVzc1VTQkFjY2VzcyIKICAgICAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIk1vZGVtQWNjZXNz
IgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgICAgICAiVVNCUG9ydEFjY2VzcyIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIklFRUUxMzk0QWNjZXNzIgog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgICAgICAiRXhwcmVzc0NhcmRBY2Nlc3MiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJQQ0lFeHByZXNzU2xvdEFj
Y2VzcyIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAgICAgIlVsdHJhYmF5QWNjZXNzIgogICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiTWVtb3J5Q2FyZFNs
b3RBY2Nlc3MiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgICAgICJTbWFydENhcmRTbG90QWNjZXNzIgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiSW50
ZWdyYXRlZENhbWVyYUFjY2VzcyIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIk1pY3JvcGhvbmVBY2Nlc3MiCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MEEsIAogICAgICAgICAgICAgICAg
ICAgICJCb290TW9kZSIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAgICAgIlN0YXJ0dXBPcHRpb25LZXlzIgogICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAi
Qm9vdERldmljZUxpc3RGMTJPcHRpb24iCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIDB4NjQsIAogICAgICAgICAgICAgICAgICAgICJCb290T3JkZXIiCiAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg
ICJXaU1BWEFjY2VzcyIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgw
RCwgCiAgICAgICAgICAgICAgICAgICAgIkdyYXBoaWNzRGV2aWNlIgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiVFhU
RmVhdHVyZSIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAgICAgIkFtZFZ0IgogICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAweDBGLCAKICAgICAgICAgICAgICAgICAgICAiQU1UQ29udHJvbCIKICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAg
ICAgIkZpbmdlcnByaW50UGFzc3dvcmRBdXRoZW50aWNhdGlvbiIKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIkZpbmdl
cnByaW50UmVhZGVyQWNjZXNzIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiT3NEZXRlY3Rpb25Gb3JTd2l0Y2hhYmxl
R3JhcGhpY3MiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MEYsIAog
ICAgICAgICAgICAgICAgICAgICJBYnNvbHV0ZVBlcnNpc3RlbmNlTW9kdWxlQWN0aXZhdGlv
biIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAg
ICAgICAgICAgICAgIlBDSUV4cHJlc3NQb3dlck1hbmFnZW1lbnQiCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJSZXNl
cnZlZCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAgICAgImVTQVRBUG9ydEFjY2VzcyIKICAgICAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIkhhcmR3YXJlUGFz
c3dvcmRNYW5hZ2VyIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgICAgICAiSHlwZXJUaHJlYWRpbmdUZWNobm9sb2d5IgogICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
ICAgICAiRm5DdHJsS2V5U3dhcCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIkJJT1NQYXNzd29yZEF0UmVib290Igog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgICAgICAiT25CeUFjQXR0YWNoIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAweDY0LCAKICAgICAgICAgICAgICAgICAgICAiTmV0d29ya0Jvb3QiCiAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg
ICJCb290T3JkZXJMb2NrIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIDB4MTEsIAogICAgICAgICAgICAgICAgICAgICJFeHByZXNz
Q2FyZFNwZWVkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgICAgICAiUmFwaWRTdGFydFRlY2hub2xvZ3kiCiAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIDB4MTIsIAogICAgICAgICAgICAgICAgICAgICJL
ZXlib2FyZElsbHVtaW5hdGlvbiIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIklQdjROZXR3b3JrU3RhY2siCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
ICAgICJJUHY2TmV0d29ya1N0YWNrIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAweDEzLCAKICAgICAgICAgICAgICAgICAgICAiVWVmaVB4ZUJvb3RQcmlvcml0eSIK
ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAgICAgIlJlc2VydmVkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiUGh5c2ljYWxQcmVzZW5jZUZvclRwbUNs
ZWFyIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgICAgICAiU2VjdXJlUm9sbEJhY2tQcmV2ZW50aW9uIgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiU2Vj
dXJlQm9vdCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAgICAgIk5mY0FjY2VzcyIKICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIkJvdHRvbUNvdmVyVGFt
cGVyRGV0ZWN0ZWQiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNr
YWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgICAgICJQYXNzd29yZENvdW50RXhjZWVkZWRFcnJvciIKICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAgICAgIkJJT1NQYXNzd29yZEF0Qm9vdERldmljZUxpc3QiCiAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIDB4MTQsIAogICAgICAgICAgICAgICAgICAgICJVTUFGcmFt
ZWJ1ZmZlclNpemUiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNr
YWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MTUs
IAogICAgICAgICAgICAgICAgICAgICJCb290VGltZUV4dGVuc2lvbiIKICAgICAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIkZu
S2V5QXNQcmltYXJ5IgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgICAgICAiV2lHaWciCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJCSU9TUGFzc3dvcmRB
dFBvd2VyT24iCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZCIKICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkIgogICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
ICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgICAgICJXaXJlbGVzc0F1dG9EaXNjb25uZWN0aW9uIgog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJVU0JLZXlQcm92aXNpb25pbmciCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MUIsIAogICAgICAgICAgICAgICAg
ICAgICJNQUNBZGRyZXNzUGFzc1Rocm91Z2giCiAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJUaHVuZGVyYm9sdEFjY2Vz
cyIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAgICAgIldpbmRvd3NVRUZJRmlybXdhcmVVcGRhdGUiCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJXYWtl
T25MQU5Eb2NrIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZCIKICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAgICAgIlJlc2VydmVkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJSZXNlcnZl
ZCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAgICAgIlJlc2VydmVkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJX
aUZpTmV0d29ya0Jvb3QiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgICAgICJMZW5vdm9DbG91ZFNlcnZpY2VzIgogICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAg
ICAiSW50ZWdyYXRlZEF1ZGlvQWNjZXNzIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg
ICJSZXNlcnZlZCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwRiwg
CiAgICAgICAgICAgICAgICAgICAgIkNvbXB1dHJhY2VNb2R1bGVBY3RpdmF0aW9uIgogICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
ICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4
MUMsIAogICAgICAgICAgICAgICAgICAgICJNYXhQYXNzd29yZEF0dGVtcHRzIgogICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDFELCAKICAgICAgICAgICAgICAgICAg
ICAiUGFzc3dvcmRDaGFuZ2VUaW1lIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiU3lzdGVtTWFuYWdlbWVudFBhc3N3
b3JkQ29udHJvbCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAgICAgIlBvd2VyT25QYXNzd29yZENvbnRyb2wiCiAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg
ICJIYXJkRGlza1Bhc3N3b3JkQ29udHJvbCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIkJJT1NTZXR1cENvbmZpZ3Vy
YXRpb25zIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAg
ICAgICAgICAgICAgICAgICAiRW5oYW5jZWRXaW5kb3dzQmlvbWV0cmljU2VjdXJpdHkiCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgICAgICJUaGlua1NoaWVsZHNlY3VyZXdpcGUiCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJLZXJuZWxETUFQcm90
ZWN0aW9uIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAg
ICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJDaGFyZ2VJbkJhdHRlcnlN
b2RlIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgICAgICAiU3Ryb25nUGFzc3dvcmQiCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIDB4MjAsIAogICAgICAgICAgICAgICAgICAgICJLZXlib2FyZExheW91
dCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAgICAgIlBDSWVUdW5uZWxpbmciCiAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZCIKICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAg
ICAgIlJlc2VydmVkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZCIK
ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAgICAgIlJlc2VydmVkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJSZXNl
cnZlZCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAgICAgIlJlc2VydmVkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAweDIxLCAKICAgICAgICAgICAgICAgICAgICAiV2FrZVVwb25BbGFybSIKICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgyMiwgCiAgICAgICAgICAgICAg
ICAgICAgIkFsYXJtRGF0ZSIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
MHgyMywgCiAgICAgICAgICAgICAgICAgICAgIkFsYXJtVGltZSIKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgMHgyNCwgCiAgICAgICAgICAgICAgICAgICAgIkFsYXJt
RGF5b2ZXZWVrIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgICAgICAiVXNlckRlZmluZWRBbGFybVN1bmRheSIKICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAg
IlVzZXJEZWZpbmVkQWxhcm1Nb25kYXkiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJVc2VyRGVmaW5lZEFsYXJtVHVl
c2RheSIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAgICAgIlVzZXJEZWZpbmVkQWxhcm1XZWRuZXNkYXkiCiAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJV
c2VyRGVmaW5lZEFsYXJtVGh1cnNkYXkiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJVc2VyRGVmaW5lZEFsYXJtRnJp
ZGF5IgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgICAgICAiVXNlckRlZmluZWRBbGFybVNhdHVyZGF5IgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAweDIzLCAKICAgICAgICAgICAgICAgICAgICAiVXNl
ckRlZmluZWRBbGFybVRpbWUiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJCbG9ja1NJREF1dGhlbnRpY2F0aW9uIgog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJPZmZCeUFjRGV0YWNoIgogICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAi
QWxsb3czcmRQYXJ0eVVFRklDQSIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgImVQcml2YWN5TG9jayIKICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAg
IlRoaW5rU2hpZWxkUGFzc3dvcmRsZXNzUG93ZXJPbkF1dGhlbnRpY2F0aW9uIgogICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAg
ICAiQ29vbFF1aWV0T25MYXAiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJJbnRlbGxpZ2VudENvb2xpbmdCb29zdCIK
ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAg
ICAgICAgICAgIlRwbVNlbGVjdGlvbiIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgMHgyOSwgCiAgICAgICAgICAgICAgICAgICAgIlBsdXRvblNlY3VyaXR5UHJvY2Vz
c29yIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZCIKICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAg
IlJlc2VydmVkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZCIKICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAgICAgIlJlc2VydmVkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgICAgICAiRGFzaEVuYWJsZWQiCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICJUU01F
IgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgICAgICAiQUlNVENvbnRyb2wiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
IH0pCiAgICAgICAgICAgIE5hbWUgKFZTRUwsIFBhY2thZ2UgKDB4MkYpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgIkRpc2FibGUiLCAKICAgICAgICAgICAgICAgICAgICAiRW5h
YmxlIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiRGlzYWJsZSIsIAog
ICAgICAgICAgICAgICAgICAgICJBdXRvbWF0aWMiCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICJBY3RpdmUiLCAKICAgICAgICAgICAgICAgICAgICAiSW5hY3RpdmUi
LCAKICAgICAgICAgICAgICAgICAgICAiRGlzYWJsZSIsIAogICAgICAgICAgICAgICAgICAg
ICJFbmFibGUiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJOb3JtYWwi
LCAKICAgICAgICAgICAgICAgICAgICAiSGlnaCIKICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgIkluZGVwZW5kZW50IiwgCiAgICAgICAgICAgICAgICAgICAgIlN5bmNo
cm9uaXplZCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIkxDRCIsIAog
ICAgICAgICAgICAgICAgICAgICJFeHRlcm5hbERpc3BsYXkiCiAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICJIaWdoIiwgCiAgICAgICAgICAgICAgICAgICAgIk5vcm1h
bCIsIAogICAgICAgICAgICAgICAgICAgICJTaWxlbnQiCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICJDb21wYXRpYmlsaXR5IiwgCiAgICAgICAgICAgICAgICAgICAg
IkFIQ0kiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw
eDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJFeHRlcm5hbCIs
IAogICAgICAgICAgICAgICAgICAgICJJbnRlcm5hbE9ubHkiCiAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICJNYXhpbWl6ZVBlcmZvcm1hbmNlIiwgCiAgICAgICAgICAg
ICAgICAgICAgIkJhbGFuY2VkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAiUXVpY2siLCAKICAgICAgICAgICAgICAgICAgICAiRGlhZ25vc3RpY3MiCiAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICJEaXNhYmxlIiwgCiAgICAgICAgICAgICAg
ICAgICAgIjQiLCAKICAgICAgICAgICAgICAgICAgICAiNSIsIAogICAgICAgICAgICAgICAg
ICAgICI2IiwgCiAgICAgICAgICAgICAgICAgICAgIjciLCAKICAgICAgICAgICAgICAgICAg
ICAiOCIsIAogICAgICAgICAgICAgICAgICAgICI5IiwgCiAgICAgICAgICAgICAgICAgICAg
IjEwIiwgCiAgICAgICAgICAgICAgICAgICAgIjExIiwgCiAgICAgICAgICAgICAgICAgICAg
IjEyIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
MykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiQXV0byIsIAogICAg
ICAgICAgICAgICAgICAgICJPbiIsIAogICAgICAgICAgICAgICAgICAgICJPZmYiCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJJbnRlZ3JhdGVkR2Z4IiwgCiAgICAg
ICAgICAgICAgICAgICAgIkRpc2NyZXRlR2Z4IiwgCiAgICAgICAgICAgICAgICAgICAgIlN3
aXRjaGFibGVHZngiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNr
YWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJEaXNh
YmxlIiwgCiAgICAgICAgICAgICAgICAgICAgIkFDT25seSIsIAogICAgICAgICAgICAgICAg
ICAgICJBQ2FuZEJhdHRlcnkiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICJEaXNhYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgIkVuYWJsZSIsIAogICAgICAgICAg
ICAgICAgICAgICJQZXJtYW5lbnRseURpc2FibGUiCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICJIRE1JIiwgCiAgICAgICAgICAgICAgICAgICAgIlVTQlR5cGVDIgog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiR2VuZXJhdGlvbjEiLCAKICAg
ICAgICAgICAgICAgICAgICAiQXV0b21hdGljIgogICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAiVGhpbmtMaWdodE9ubHkiLCAKICAgICAgICAgICAgICAgICAgICAiQmFj
a2xpZ2h0T25seSIsIAogICAgICAgICAgICAgICAgICAgICJCb3RoIgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAiSVB2NkZpcnN0IiwgCiAgICAgICAgICAgICAgICAg
ICAgIklQdjRGaXJzdCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIkF1
dG8iLCAKICAgICAgICAgICAgICAgICAgICAiMUdCIiwgCiAgICAgICAgICAgICAgICAgICAg
IjJHQiIsIAogICAgICAgICAgICAgICAgICAgICI0R0IiLCAKICAgICAgICAgICAgICAgICAg
ICAiOEdCIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwQikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiRGlzYWJsZSIs
IAogICAgICAgICAgICAgICAgICAgICIxIiwgCiAgICAgICAgICAgICAgICAgICAgIjIiLCAK
ICAgICAgICAgICAgICAgICAgICAiMyIsIAogICAgICAgICAgICAgICAgICAgICIiLCAKICAg
ICAgICAgICAgICAgICAgICAiNSIsIAogICAgICAgICAgICAgICAgICAgICIiLCAKICAgICAg
ICAgICAgICAgICAgICAiIiwgCiAgICAgICAgICAgICAgICAgICAgIiIsIAogICAgICAgICAg
ICAgICAgICAgICIiLCAKICAgICAgICAgICAgICAgICAgICAiMTAiCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICJEaXNhYmxlIiwgCiAgICAgICAgICAgICAgICAgICAg
IkVuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICJTb2Z0d2FyZUNvbnRyb2wiCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJOb1NlY3VyaXR5IiwgCiAgICAgICAg
ICAgICAgICAgICAgIlVzZXJBdXRob3JpemF0aW9uIiwgCiAgICAgICAgICAgICAgICAgICAg
IlNlY3VyZUNvbm5lY3QiLCAKICAgICAgICAgICAgICAgICAgICAiRGlzcGxheVBvcnRhbmRV
U0IiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJEaXNhYmxlIiwgCiAg
ICAgICAgICAgICAgICAgICAgIkVuYWJsZSIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgIkVuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICJEaXNhYmxlIiwgCiAg
ICAgICAgICAgICAgICAgICAgIiIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIkRpc2FibGUiLCAKICAgICAgICAgICAgICAgICAgICAiRW5hYmxlIiwgCiAgICAgICAg
ICAgICAgICAgICAgIlByZS1Cb290QUNMIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAiRGlzYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICJFbmFibGUiLCAKICAg
ICAgICAgICAgICAgICAgICAiU2Vjb25kIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAiVW5saW1pdGVkIiwgCiAgICAgICAgICAgICAgICAgICAgIjEiLCAKICAgICAg
ICAgICAgICAgICAgICAiMyIsIAogICAgICAgICAgICAgICAgICAgICIxMDAiCiAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICJJbW1lZGlhdGVseSIsIAogICAgICAgICAg
ICAgICAgICAgICJBZnRlclJlYm9vdCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgIlNpbXBsZVRleHQiLCAKICAgICAgICAgICAgICAgICAgICAiR3JhcGhpY2FsIgog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiTGludXgiLCAKICAgICAgICAg
ICAgICAgICAgICAiV2luZG93cyAxMCIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MUIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgIkVuZ2xpc2hfVVMiLCAKICAgICAgICAgICAgICAgICAgICAiQ2FuYWRpYW5GcmVu
Y2hNdWx0aWxpbmd1YWwiLCAKICAgICAgICAgICAgICAgICAgICAiQ2FuYWRpYW5GcmVuY2gi
LCAKICAgICAgICAgICAgICAgICAgICAiU3BhbmlzaF9MQSIsIAogICAgICAgICAgICAgICAg
ICAgICJQb3J0dWd1ZXNlX0JSIiwgCiAgICAgICAgICAgICAgICAgICAgIkJlbGdpYW4iLCAK
ICAgICAgICAgICAgICAgICAgICAiRGFuaXNoIiwgCiAgICAgICAgICAgICAgICAgICAgIlNw
YW5pc2giLCAKICAgICAgICAgICAgICAgICAgICAiRnJlbmNoIiwgCiAgICAgICAgICAgICAg
ICAgICAgIkdlcm1hbiIsIAogICAgICAgICAgICAgICAgICAgICJIdW5nYXJpYW4iLCAKICAg
ICAgICAgICAgICAgICAgICAiSWNlbGFuZGljIiwgCiAgICAgICAgICAgICAgICAgICAgIkl0
YWxpYW4iLCAKICAgICAgICAgICAgICAgICAgICAiTm9yd2VnaWFuIiwgCiAgICAgICAgICAg
ICAgICAgICAgIlBvcnR1Z3Vlc2UiLCAKICAgICAgICAgICAgICAgICAgICAiU2xvdmVuaWFu
IiwgCiAgICAgICAgICAgICAgICAgICAgIlN3ZWRpc2giLCAKICAgICAgICAgICAgICAgICAg
ICAiU3dpc3MiLCAKICAgICAgICAgICAgICAgICAgICAiVHVya2lzaCIsIAogICAgICAgICAg
ICAgICAgICAgICJFbmdsaXNoX1VLIiwgCiAgICAgICAgICAgICAgICAgICAgIkphcGFuZXNl
IiwgCiAgICAgICAgICAgICAgICAgICAgIktvcmVhbiIsIAogICAgICAgICAgICAgICAgICAg
ICJUcmFkaXRpb25hbENoaW5lc2UiLCAKICAgICAgICAgICAgICAgICAgICAiVHVya2lzaC1G
IiwgCiAgICAgICAgICAgICAgICAgICAgIkVzdG9uaWFuIiwgCiAgICAgICAgICAgICAgICAg
ICAgIkZpbm5pc2giLCAKICAgICAgICAgICAgICAgICAgICAiQ3plY2giCiAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICJEaXNhYmxlIiwgCiAgICAgICAgICAgICAgICAg
ICAgIlVzZXJEZWZpbmVkIiwgCiAgICAgICAgICAgICAgICAgICAgIldlZWtseUV2ZW50Iiwg
CiAgICAgICAgICAgICAgICAgICAgIkRhaWx5RXZlbnQiLCAKICAgICAgICAgICAgICAgICAg
ICAiU2luZ2xlRXZlbnQiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJN
TS9ERC9ZWVlZIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiSEgvTU0v
U1MiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA3
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJTdW5kYXkiLCAKICAg
ICAgICAgICAgICAgICAgICAiTW9uZGF5IiwgCiAgICAgICAgICAgICAgICAgICAgIlR1ZXNk
YXkiLCAKICAgICAgICAgICAgICAgICAgICAiV2VkbmVzZGF5IiwgCiAgICAgICAgICAgICAg
ICAgICAgIlRodXJzZGF5IiwgCiAgICAgICAgICAgICAgICAgICAgIkZyaWRheSIsIAogICAg
ICAgICAgICAgICAgICAgICJTYXR1cmRheSIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgIk5lYXIiLCAKICAgICAgICAgICAgICAgICAgICAiTWlkZGxlIiwgCiAgICAg
ICAgICAgICAgICAgICAgIkZhciIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIkZhc3QiLCAKICAgICAgICAgICAgICAgICAgICAiTWVkaXVtIiwgCiAgICAgICAgICAg
ICAgICAgICAgIlNsb3ciCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJO
byIsIAogICAgICAgICAgICAgICAgICAgICJZZXMiCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICJEaXNjcmV0ZVRQTTIuMCIsIAogICAgICAgICAgICAgICAgICAgICJQ
bHV0b25UUE0yLjAiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNr
YWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJEaXNh
YmxlIiwgCiAgICAgICAgICAgICAgICAgICAgIkVuYWJsZSIsIAogICAgICAgICAgICAgICAg
ICAgICJEaXNhYmxlKFNXX0NvbnRyb2xsZWQpIgogICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAiRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgIkRpc2FibGUiCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZCIKICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkIgogICAgICAgICAgICAgICAg
fSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQiCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICJSZXNlcnZlZCIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
fSkKICAgICAgICAgICAgTmFtZSAoVkxTVCwgUGFja2FnZSAoMHgxNCkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIkhERDAiLCAKICAgICAgICAgICAgICAgICJIREQxIiwgCiAg
ICAgICAgICAgICAgICAiSEREMiIsIAogICAgICAgICAgICAgICAgIkhERDMiLCAKICAgICAg
ICAgICAgICAgICJIREQ0IiwgCiAgICAgICAgICAgICAgICAiUFhFQk9PVCIsIAogICAgICAg
ICAgICAgICAgIkFUQVBJQ0QwIiwgCiAgICAgICAgICAgICAgICAiQVRBUElDRDEiLCAKICAg
ICAgICAgICAgICAgICJBVEFQSUNEMiIsIAogICAgICAgICAgICAgICAgIlVTQkZERCIsIAog
ICAgICAgICAgICAgICAgIlVTQkNEIiwgCiAgICAgICAgICAgICAgICAiVVNCSEREIiwgCiAg
ICAgICAgICAgICAgICAiT3RoZXJIREQiLCAKICAgICAgICAgICAgICAgICJPdGhlckNEIiwg
CiAgICAgICAgICAgICAgICAiTlZNZTAiLCAKICAgICAgICAgICAgICAgICJOVk1lMSIsIAog
ICAgICAgICAgICAgICAgIkhUVFBTQk9PVCIsIAogICAgICAgICAgICAgICAgIkxFTk9WT0NM
T1VEIiwgCiAgICAgICAgICAgICAgICAiT04tUFJFTUlTRSIsIAogICAgICAgICAgICAgICAg
Ik5PREVWIgogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChWUjAxLCBQYWNrYWdl
ICgweDY3KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiMDAwMCIsIAogICAgICAg
ICAgICAgICAgIjE5OTgiLCAKICAgICAgICAgICAgICAgICIxOTk5IiwgCiAgICAgICAgICAg
ICAgICAiMjAwMCIsIAogICAgICAgICAgICAgICAgIjIwMDEiLCAKICAgICAgICAgICAgICAg
ICIyMDAyIiwgCiAgICAgICAgICAgICAgICAiMjAwMyIsIAogICAgICAgICAgICAgICAgIjIw
MDQiLCAKICAgICAgICAgICAgICAgICIyMDA1IiwgCiAgICAgICAgICAgICAgICAiMjAwNiIs
IAogICAgICAgICAgICAgICAgIjIwMDciLCAKICAgICAgICAgICAgICAgICIyMDA4IiwgCiAg
ICAgICAgICAgICAgICAiMjAwOSIsIAogICAgICAgICAgICAgICAgIjIwMTAiLCAKICAgICAg
ICAgICAgICAgICIyMDExIiwgCiAgICAgICAgICAgICAgICAiMjAxMiIsIAogICAgICAgICAg
ICAgICAgIjIwMTMiLCAKICAgICAgICAgICAgICAgICIyMDE0IiwgCiAgICAgICAgICAgICAg
ICAiMjAxNSIsIAogICAgICAgICAgICAgICAgIjIwMTYiLCAKICAgICAgICAgICAgICAgICIy
MDE3IiwgCiAgICAgICAgICAgICAgICAiMjAxOCIsIAogICAgICAgICAgICAgICAgIjIwMTki
LCAKICAgICAgICAgICAgICAgICIyMDIwIiwgCiAgICAgICAgICAgICAgICAiMjAyMSIsIAog
ICAgICAgICAgICAgICAgIjIwMjIiLCAKICAgICAgICAgICAgICAgICIyMDIzIiwgCiAgICAg
ICAgICAgICAgICAiMjAyNCIsIAogICAgICAgICAgICAgICAgIjIwMjUiLCAKICAgICAgICAg
ICAgICAgICIyMDI2IiwgCiAgICAgICAgICAgICAgICAiMjAyNyIsIAogICAgICAgICAgICAg
ICAgIjIwMjgiLCAKICAgICAgICAgICAgICAgICIyMDI5IiwgCiAgICAgICAgICAgICAgICAi
MjAzMCIsIAogICAgICAgICAgICAgICAgIjIwMzEiLCAKICAgICAgICAgICAgICAgICIyMDMy
IiwgCiAgICAgICAgICAgICAgICAiMjAzMyIsIAogICAgICAgICAgICAgICAgIjIwMzQiLCAK
ICAgICAgICAgICAgICAgICIyMDM1IiwgCiAgICAgICAgICAgICAgICAiMjAzNiIsIAogICAg
ICAgICAgICAgICAgIjIwMzciLCAKICAgICAgICAgICAgICAgICIyMDM4IiwgCiAgICAgICAg
ICAgICAgICAiMjAzOSIsIAogICAgICAgICAgICAgICAgIjIwNDAiLCAKICAgICAgICAgICAg
ICAgICIyMDQxIiwgCiAgICAgICAgICAgICAgICAiMjA0MiIsIAogICAgICAgICAgICAgICAg
IjIwNDMiLCAKICAgICAgICAgICAgICAgICIyMDQ0IiwgCiAgICAgICAgICAgICAgICAiMjA0
NSIsIAogICAgICAgICAgICAgICAgIjIwNDYiLCAKICAgICAgICAgICAgICAgICIyMDQ3Iiwg
CiAgICAgICAgICAgICAgICAiMjA0OCIsIAogICAgICAgICAgICAgICAgIjIwNDkiLCAKICAg
ICAgICAgICAgICAgICIyMDUwIiwgCiAgICAgICAgICAgICAgICAiMjA1MSIsIAogICAgICAg
ICAgICAgICAgIjIwNTIiLCAKICAgICAgICAgICAgICAgICIyMDUzIiwgCiAgICAgICAgICAg
ICAgICAiMjA1NCIsIAogICAgICAgICAgICAgICAgIjIwNTUiLCAKICAgICAgICAgICAgICAg
ICIyMDU2IiwgCiAgICAgICAgICAgICAgICAiMjA1NyIsIAogICAgICAgICAgICAgICAgIjIw
NTgiLCAKICAgICAgICAgICAgICAgICIyMDU5IiwgCiAgICAgICAgICAgICAgICAiMjA2MCIs
IAogICAgICAgICAgICAgICAgIjIwNjEiLCAKICAgICAgICAgICAgICAgICIyMDYyIiwgCiAg
ICAgICAgICAgICAgICAiMjA2MyIsIAogICAgICAgICAgICAgICAgIjIwNjQiLCAKICAgICAg
ICAgICAgICAgICIyMDY1IiwgCiAgICAgICAgICAgICAgICAiMjA2NiIsIAogICAgICAgICAg
ICAgICAgIjIwNjciLCAKICAgICAgICAgICAgICAgICIyMDY4IiwgCiAgICAgICAgICAgICAg
ICAiMjA2OSIsIAogICAgICAgICAgICAgICAgIjIwNzAiLCAKICAgICAgICAgICAgICAgICIy
MDcxIiwgCiAgICAgICAgICAgICAgICAiMjA3MiIsIAogICAgICAgICAgICAgICAgIjIwNzMi
LCAKICAgICAgICAgICAgICAgICIyMDc0IiwgCiAgICAgICAgICAgICAgICAiMjA3NSIsIAog
ICAgICAgICAgICAgICAgIjIwNzYiLCAKICAgICAgICAgICAgICAgICIyMDc3IiwgCiAgICAg
ICAgICAgICAgICAiMjA3OCIsIAogICAgICAgICAgICAgICAgIjIwNzkiLCAKICAgICAgICAg
ICAgICAgICIyMDgwIiwgCiAgICAgICAgICAgICAgICAiMjA4MSIsIAogICAgICAgICAgICAg
ICAgIjIwODIiLCAKICAgICAgICAgICAgICAgICIyMDgzIiwgCiAgICAgICAgICAgICAgICAi
MjA4NCIsIAogICAgICAgICAgICAgICAgIjIwODUiLCAKICAgICAgICAgICAgICAgICIyMDg2
IiwgCiAgICAgICAgICAgICAgICAiMjA4NyIsIAogICAgICAgICAgICAgICAgIjIwODgiLCAK
ICAgICAgICAgICAgICAgICIyMDg5IiwgCiAgICAgICAgICAgICAgICAiMjA5MCIsIAogICAg
ICAgICAgICAgICAgIjIwOTEiLCAKICAgICAgICAgICAgICAgICIyMDkyIiwgCiAgICAgICAg
ICAgICAgICAiMjA5MyIsIAogICAgICAgICAgICAgICAgIjIwOTQiLCAKICAgICAgICAgICAg
ICAgICIyMDk1IiwgCiAgICAgICAgICAgICAgICAiMjA5NiIsIAogICAgICAgICAgICAgICAg
IjIwOTciLCAKICAgICAgICAgICAgICAgICIyMDk4IiwgCiAgICAgICAgICAgICAgICAiMjA5
OSIKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoVlIwMiwgUGFja2FnZSAoMHgw
RCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIjAwIiwgCiAgICAgICAgICAgICAg
ICAiMDEiLCAKICAgICAgICAgICAgICAgICIwMiIsIAogICAgICAgICAgICAgICAgIjAzIiwg
CiAgICAgICAgICAgICAgICAiMDQiLCAKICAgICAgICAgICAgICAgICIwNSIsIAogICAgICAg
ICAgICAgICAgIjA2IiwgCiAgICAgICAgICAgICAgICAiMDciLCAKICAgICAgICAgICAgICAg
ICIwOCIsIAogICAgICAgICAgICAgICAgIjA5IiwgCiAgICAgICAgICAgICAgICAiMTAiLCAK
ICAgICAgICAgICAgICAgICIxMSIsIAogICAgICAgICAgICAgICAgIjEyIgogICAgICAgICAg
ICB9KQogICAgICAgICAgICBOYW1lIChWUjAzLCBQYWNrYWdlICgweDIwKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAiMDAiLCAKICAgICAgICAgICAgICAgICIwMSIsIAogICAg
ICAgICAgICAgICAgIjAyIiwgCiAgICAgICAgICAgICAgICAiMDMiLCAKICAgICAgICAgICAg
ICAgICIwNCIsIAogICAgICAgICAgICAgICAgIjA1IiwgCiAgICAgICAgICAgICAgICAiMDYi
LCAKICAgICAgICAgICAgICAgICIwNyIsIAogICAgICAgICAgICAgICAgIjA4IiwgCiAgICAg
ICAgICAgICAgICAiMDkiLCAKICAgICAgICAgICAgICAgICIxMCIsIAogICAgICAgICAgICAg
ICAgIjExIiwgCiAgICAgICAgICAgICAgICAiMTIiLCAKICAgICAgICAgICAgICAgICIxMyIs
IAogICAgICAgICAgICAgICAgIjE0IiwgCiAgICAgICAgICAgICAgICAiMTUiLCAKICAgICAg
ICAgICAgICAgICIxNiIsIAogICAgICAgICAgICAgICAgIjE3IiwgCiAgICAgICAgICAgICAg
ICAiMTgiLCAKICAgICAgICAgICAgICAgICIxOSIsIAogICAgICAgICAgICAgICAgIjIwIiwg
CiAgICAgICAgICAgICAgICAiMjEiLCAKICAgICAgICAgICAgICAgICIyMiIsIAogICAgICAg
ICAgICAgICAgIjIzIiwgCiAgICAgICAgICAgICAgICAiMjQiLCAKICAgICAgICAgICAgICAg
ICIyNSIsIAogICAgICAgICAgICAgICAgIjI2IiwgCiAgICAgICAgICAgICAgICAiMjciLCAK
ICAgICAgICAgICAgICAgICIyOCIsIAogICAgICAgICAgICAgICAgIjI5IiwgCiAgICAgICAg
ICAgICAgICAiMzAiLCAKICAgICAgICAgICAgICAgICIzMSIKICAgICAgICAgICAgfSkKICAg
ICAgICAgICAgTmFtZSAoVlIwNCwgUGFja2FnZSAoMHgxOCkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgIjAwIiwgCiAgICAgICAgICAgICAgICAiMDEiLCAKICAgICAgICAgICAg
ICAgICIwMiIsIAogICAgICAgICAgICAgICAgIjAzIiwgCiAgICAgICAgICAgICAgICAiMDQi
LCAKICAgICAgICAgICAgICAgICIwNSIsIAogICAgICAgICAgICAgICAgIjA2IiwgCiAgICAg
ICAgICAgICAgICAiMDciLCAKICAgICAgICAgICAgICAgICIwOCIsIAogICAgICAgICAgICAg
ICAgIjA5IiwgCiAgICAgICAgICAgICAgICAiMTAiLCAKICAgICAgICAgICAgICAgICIxMSIs
IAogICAgICAgICAgICAgICAgIjEyIiwgCiAgICAgICAgICAgICAgICAiMTMiLCAKICAgICAg
ICAgICAgICAgICIxNCIsIAogICAgICAgICAgICAgICAgIjE1IiwgCiAgICAgICAgICAgICAg
ICAiMTYiLCAKICAgICAgICAgICAgICAgICIxNyIsIAogICAgICAgICAgICAgICAgIjE4Iiwg
CiAgICAgICAgICAgICAgICAiMTkiLCAKICAgICAgICAgICAgICAgICIyMCIsIAogICAgICAg
ICAgICAgICAgIjIxIiwgCiAgICAgICAgICAgICAgICAiMjIiLCAKICAgICAgICAgICAgICAg
ICIyMyIKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoVlIwNSwgUGFja2FnZSAo
MHgzQykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIjAwIiwgCiAgICAgICAgICAg
ICAgICAiMDEiLCAKICAgICAgICAgICAgICAgICIwMiIsIAogICAgICAgICAgICAgICAgIjAz
IiwgCiAgICAgICAgICAgICAgICAiMDQiLCAKICAgICAgICAgICAgICAgICIwNSIsIAogICAg
ICAgICAgICAgICAgIjA2IiwgCiAgICAgICAgICAgICAgICAiMDciLCAKICAgICAgICAgICAg
ICAgICIwOCIsIAogICAgICAgICAgICAgICAgIjA5IiwgCiAgICAgICAgICAgICAgICAiMTAi
LCAKICAgICAgICAgICAgICAgICIxMSIsIAogICAgICAgICAgICAgICAgIjEyIiwgCiAgICAg
ICAgICAgICAgICAiMTMiLCAKICAgICAgICAgICAgICAgICIxNCIsIAogICAgICAgICAgICAg
ICAgIjE1IiwgCiAgICAgICAgICAgICAgICAiMTYiLCAKICAgICAgICAgICAgICAgICIxNyIs
IAogICAgICAgICAgICAgICAgIjE4IiwgCiAgICAgICAgICAgICAgICAiMTkiLCAKICAgICAg
ICAgICAgICAgICIyMCIsIAogICAgICAgICAgICAgICAgIjIxIiwgCiAgICAgICAgICAgICAg
ICAiMjIiLCAKICAgICAgICAgICAgICAgICIyMyIsIAogICAgICAgICAgICAgICAgIjI0Iiwg
CiAgICAgICAgICAgICAgICAiMjUiLCAKICAgICAgICAgICAgICAgICIyNiIsIAogICAgICAg
ICAgICAgICAgIjI3IiwgCiAgICAgICAgICAgICAgICAiMjgiLCAKICAgICAgICAgICAgICAg
ICIyOSIsIAogICAgICAgICAgICAgICAgIjMwIiwgCiAgICAgICAgICAgICAgICAiMzEiLCAK
ICAgICAgICAgICAgICAgICIzMiIsIAogICAgICAgICAgICAgICAgIjMzIiwgCiAgICAgICAg
ICAgICAgICAiMzQiLCAKICAgICAgICAgICAgICAgICIzNSIsIAogICAgICAgICAgICAgICAg
IjM2IiwgCiAgICAgICAgICAgICAgICAiMzciLCAKICAgICAgICAgICAgICAgICIzOCIsIAog
ICAgICAgICAgICAgICAgIjM5IiwgCiAgICAgICAgICAgICAgICAiNDAiLCAKICAgICAgICAg
ICAgICAgICI0MSIsIAogICAgICAgICAgICAgICAgIjQyIiwgCiAgICAgICAgICAgICAgICAi
NDMiLCAKICAgICAgICAgICAgICAgICI0NCIsIAogICAgICAgICAgICAgICAgIjQ1IiwgCiAg
ICAgICAgICAgICAgICAiNDYiLCAKICAgICAgICAgICAgICAgICI0NyIsIAogICAgICAgICAg
ICAgICAgIjQ4IiwgCiAgICAgICAgICAgICAgICAiNDkiLCAKICAgICAgICAgICAgICAgICI1
MCIsIAogICAgICAgICAgICAgICAgIjUxIiwgCiAgICAgICAgICAgICAgICAiNTIiLCAKICAg
ICAgICAgICAgICAgICI1MyIsIAogICAgICAgICAgICAgICAgIjU0IiwgCiAgICAgICAgICAg
ICAgICAiNTUiLCAKICAgICAgICAgICAgICAgICI1NiIsIAogICAgICAgICAgICAgICAgIjU3
IiwgCiAgICAgICAgICAgICAgICAiNTgiLCAKICAgICAgICAgICAgICAgICI1OSIKICAgICAg
ICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoUEVOQywgUGFja2FnZSAoMHgwMikKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgImFzY2lpIiwgCiAgICAgICAgICAgICAgICAic2Nh
bmNvZGUiCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKFBLQkQsIFBhY2thZ2Ug
KDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJ1cyIsIAogICAgICAgICAg
ICAgICAgImZyIiwgCiAgICAgICAgICAgICAgICAiZ3IiCiAgICAgICAgICAgIH0pCiAgICAg
ICAgICAgIE5hbWUgKFBUWVAsIFBhY2thZ2UgKDB4MTMpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICJwYXAiLCAKICAgICAgICAgICAgICAgICJwb3AiLCAKICAgICAgICAgICAg
ICAgICJ1aGRwMSIsIAogICAgICAgICAgICAgICAgIm1oZHAxIiwgCiAgICAgICAgICAgICAg
ICAidWhkcDIiLCAKICAgICAgICAgICAgICAgICJtaGRwMiIsIAogICAgICAgICAgICAgICAg
InVoZHAzIiwgCiAgICAgICAgICAgICAgICAibWhkcDMiLCAKICAgICAgICAgICAgICAgICJ1
aGRwNCIsIAogICAgICAgICAgICAgICAgIm1oZHA0IiwgCiAgICAgICAgICAgICAgICAidWRy
cDEiLCAKICAgICAgICAgICAgICAgICJhZHJwMSIsIAogICAgICAgICAgICAgICAgInVkcnAy
IiwgCiAgICAgICAgICAgICAgICAiYWRycDIiLCAKICAgICAgICAgICAgICAgICJ1ZHJwMyIs
IAogICAgICAgICAgICAgICAgImFkcnAzIiwgCiAgICAgICAgICAgICAgICAidWRycDQiLCAK
ICAgICAgICAgICAgICAgICJhZHJwNCIsIAogICAgICAgICAgICAgICAgInNtcCIKICAgICAg
ICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoT1BDRCwgUGFja2FnZSAoMHgwRSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgIldtaU9wY29kZVBhc3N3b3JkVHlwZSIsIAogICAg
ICAgICAgICAgICAgIldtaU9wY29kZVBhc3N3b3JkQ3VycmVudDAxIiwgCiAgICAgICAgICAg
ICAgICAiV21pT3Bjb2RlUGFzc3dvcmRDdXJyZW50MDIiLCAKICAgICAgICAgICAgICAgICJX
bWlPcGNvZGVQYXNzd29yZEN1cnJlbnQwMyIsIAogICAgICAgICAgICAgICAgIldtaU9wY29k
ZVBhc3N3b3JkQ3VycmVudDA0IiwgCiAgICAgICAgICAgICAgICAiV21pT3Bjb2RlUGFzc3dv
cmROZXcwMSIsIAogICAgICAgICAgICAgICAgIldtaU9wY29kZVBhc3N3b3JkTmV3MDIiLCAK
ICAgICAgICAgICAgICAgICJXbWlPcGNvZGVQYXNzd29yZE5ldzAzIiwgCiAgICAgICAgICAg
ICAgICAiV21pT3Bjb2RlUGFzc3dvcmROZXcwNCIsIAogICAgICAgICAgICAgICAgIldtaU9w
Y29kZVBhc3N3b3JkRW5jb2RlIiwgCiAgICAgICAgICAgICAgICAiV21pT3Bjb2RlUGFzc3dv
cmRTZXRVcGRhdGUiLCAKICAgICAgICAgICAgICAgICJXbWlPcGNvZGVQYXNzd29yZEFkbWlu
IiwgCiAgICAgICAgICAgICAgICAiV21pT3Bjb2RlVFBNIiwgCiAgICAgICAgICAgICAgICAi
V21pT3Bjb2RlUGFzc3dvcmRGcmVlIgogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1l
IChGVU5DLCBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4
MjcsIAogICAgICAgICAgICAgICAgICAgICJDbGVhclNlY3VyaXR5Q2hpcCIKICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgyNywgCiAgICAgICAgICAgICAgICAgICAg
IlJlc2V0RmluZ2VycHJpbnREYXRhIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAweDI3LCAKICAgICAgICAgICAgICAgICAgICAiUmVzZXR0b1NldHVwTW9kZSIKICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgyNywgCiAgICAgICAgICAgICAg
ICAgICAgIlJlc3RvcmVGYWN0b3J5S2V5cyIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgMHgyNywgCiAgICAgICAgICAgICAgICAgICAgIkNsZWFyQWxsU2VjdXJlQm9v
dEtleXMiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw
eDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MjcsIAogICAg
ICAgICAgICAgICAgICAgICJSZXNldFN5c3RlbVRvRmFjdG9yeURlZmF1bHRzIgogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNdXRleCAoTVdNSSwgMHgw
MCkKICAgICAgICAgICAgTmFtZSAoUENGRywgQnVmZmVyICgweDE4KSB7fSkKICAgICAgICAg
ICAgTmFtZSAoSUJVRiwgQnVmZmVyICgweDA2MDApIHt9KQogICAgICAgICAgICBOYW1lIChJ
TEVOLCAweDAwKQogICAgICAgICAgICBOYW1lIChQU1RSLCBCdWZmZXIgKDB4ODEpIHt9KQog
ICAgICAgICAgICBOYW1lIChBTEVOLCAweDAwKQogICAgICAgICAgICBOYW1lIChEU1VSLCBC
dWZmZXIgKDB4MDFGRikge30pCiAgICAgICAgICAgIE5hbWUgKENFUlQsIEJ1ZmZlciAoMHgw
ODAwKSB7fSkKICAgICAgICAgICAgTWV0aG9kIChXUUEwLCAxLCBOb3RTZXJpYWxpemVkKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBY3F1aXJlIChNV01JLCAweEZGRkYpCiAg
ICAgICAgICAgICAgICBJZiAoKFdNSVMgKDB4MDAsIEFyZzApICE9IDB4MDApKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKE1XTUkpCiAgICAgICAg
ICAgICAgICAgICAgUmV0dXJuICgiIikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBMb2NhbDAgPSBEZXJlZk9mIChJVEVNIFtXSVRNXSkKICAgICAgICAgICAgICAgIExv
Y2FsMSA9IERlcmVmT2YgKExvY2FsMCBbMHgwMF0pCiAgICAgICAgICAgICAgICBMb2NhbDIg
PSBEZXJlZk9mIChMb2NhbDAgWzB4MDFdKQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEg
PT0gMHgyMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ29uY2F0
ZW5hdGUgKExvY2FsMiwgIiwiLCBMb2NhbDYpCiAgICAgICAgICAgICAgICAgICAgQ29uY2F0
ZW5hdGUgKExvY2FsNiwgRGVyZWZPZiAoVlIwMiBbUlRDMV0pLCBMb2NhbDcpCiAgICAgICAg
ICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsNywgIi8iLCBMb2NhbDYpCiAgICAgICAg
ICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsNiwgRGVyZWZPZiAoVlIwMyBbUlRDMl0p
LCBMb2NhbDcpCiAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsNywgIi8i
LCBMb2NhbDYpCiAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsNiwgRGVy
ZWZPZiAoVlIwMSBbUlRDMF0pLCBMb2NhbDcpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICBFbHNlSWYgKChMb2NhbDEgPT0gMHgyMykpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsMiwgIiwiLCBMb2NhbDYpCiAg
ICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsNiwgRGVyZWZPZiAoVlIwNCBb
UlRDMF0pLCBMb2NhbDcpCiAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2Fs
NywgIjoiLCBMb2NhbDYpCiAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2Fs
NiwgRGVyZWZPZiAoVlIwNSBbUlRDMV0pLCBMb2NhbDcpCiAgICAgICAgICAgICAgICAgICAg
Q29uY2F0ZW5hdGUgKExvY2FsNywgIjoiLCBMb2NhbDYpCiAgICAgICAgICAgICAgICAgICAg
Q29uY2F0ZW5hdGUgKExvY2FsNiwgRGVyZWZPZiAoVlIwNSBbUlRDMl0pLCBMb2NhbDcpCiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDEgPCAweDY0
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAo
TG9jYWwyLCAiLCIsIExvY2FsNikKICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSBEZXJl
Zk9mIChWU0VMIFtMb2NhbDFdKQogICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlIChM
b2NhbDYsIERlcmVmT2YgKExvY2FsMyBbV1NFTF0pLCBMb2NhbDcpCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwzID0gU2l6ZU9mIChWTFNUKQogICAgICAgICAgICAgICAgICAgIElm
ICgoV0xTMCA8PSBMb2NhbDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsMiwgIiwiLCBMb2NhbDcpCiAgICAgICAg
ICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlIChMb2NhbDcsIERlcmVmT2YgKFZMU1QgW1dM
UzBdKSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChXTFMxIDw9IExvY2FsMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAoTG9jYWwyLCAiOiIsIExvY2FsNykKICAg
ICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsNywgRGVyZWZPZiAoVkxT
VCBbV0xTMV0pLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICBJZiAoKFdMUzIgPD0gTG9jYWwzKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlIChMb2NhbDIsICI6IiwgTG9jYWw3
KQogICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAoTG9jYWw3LCBEZXJlZk9m
IChWTFNUIFtXTFMyXSksIExvY2FsMikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgIElmICgoV0xTMyA8PSBMb2NhbDMpKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsMiwgIjoiLCBM
b2NhbDcpCiAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlIChMb2NhbDcsIERl
cmVmT2YgKFZMU1QgW1dMUzNdKSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgSWYgKChXTFM0IDw9IExvY2FsMykpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAoTG9jYWwyLCAi
OiIsIExvY2FsNykKICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2Fs
NywgRGVyZWZPZiAoVkxTVCBbV0xTNF0pLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFdMUzUgPD0gTG9jYWwzKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlIChMb2Nh
bDIsICI6IiwgTG9jYWw3KQogICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAo
TG9jYWw3LCBEZXJlZk9mIChWTFNUIFtXTFM1XSksIExvY2FsMikKICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoV0xTNiA8PSBMb2NhbDMpKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUg
KExvY2FsMiwgIjoiLCBMb2NhbDcpCiAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVu
YXRlIChMb2NhbDcsIERlcmVmT2YgKFZMU1QgW1dMUzZdKSwgTG9jYWwyKQogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChXTFM3IDw9IExvY2FsMykp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRl
bmF0ZSAoTG9jYWwyLCAiOiIsIExvY2FsNykKICAgICAgICAgICAgICAgICAgICAgICAgQ29u
Y2F0ZW5hdGUgKExvY2FsNywgRGVyZWZPZiAoVkxTVCBbV0xTN10pLCBMb2NhbDIpCiAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFdMUzggPD0gTG9j
YWwzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENv
bmNhdGVuYXRlIChMb2NhbDIsICI6IiwgTG9jYWw3KQogICAgICAgICAgICAgICAgICAgICAg
ICBDb25jYXRlbmF0ZSAoTG9jYWw3LCBEZXJlZk9mIChWTFNUIFtXTFM4XSksIExvY2FsMikK
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoV0xTOSA8
PSBMb2NhbDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgQ29uY2F0ZW5hdGUgKExvY2FsMiwgIjoiLCBMb2NhbDcpCiAgICAgICAgICAgICAgICAg
ICAgICAgIENvbmNhdGVuYXRlIChMb2NhbDcsIERlcmVmT2YgKFZMU1QgW1dMUzldKSwgTG9j
YWwyKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChX
TFNBIDw9IExvY2FsMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBDb25jYXRlbmF0ZSAoTG9jYWwyLCAiOiIsIExvY2FsNykKICAgICAgICAgICAg
ICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsNywgRGVyZWZPZiAoVkxTVCBbV0xTQV0p
LCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJ
ZiAoKFdMU0IgPD0gTG9jYWwzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIENvbmNhdGVuYXRlIChMb2NhbDIsICI6IiwgTG9jYWw3KQogICAgICAg
ICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAoTG9jYWw3LCBEZXJlZk9mIChWTFNUIFtX
TFNCXSksIExvY2FsMikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgIElmICgoV0xTQyA8PSBMb2NhbDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsMiwgIjoiLCBMb2NhbDcpCiAg
ICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlIChMb2NhbDcsIERlcmVmT2YgKFZM
U1QgW1dMU0NdKSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAgICAgSWYgKChXTFNEIDw9IExvY2FsMykpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAoTG9jYWwyLCAiOiIsIExvY2Fs
NykKICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsNywgRGVyZWZP
ZiAoVkxTVCBbV0xTRF0pLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDcgPSBMb2NhbDIKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBSZWxlYXNlIChNV01JKQogICAgICAgICAgICAgICAgUmV0dXJuIChMb2Nh
bDcpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV01BMSwgMywgTm90U2Vy
aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQWNxdWlyZSAoTVdNSSwg
MHhGRkZGKQogICAgICAgICAgICAgICAgSWYgKChTaXplT2YgKEFyZzIpID09IDB4MDApKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDIKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBDQVJHIChBcmcyKQogICAgICAgICAgICAg
ICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gV1NFVCAoSVRFTSwgVlNFTCkKICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFdNSVMg
KDB4MDEsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmVsZWFzZSAoTVdN
SSkKICAgICAgICAgICAgICAgIFJldHVybiAoRGVyZWZPZiAoUkVUTiBbTG9jYWwwXSkpCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV01BMiwgMywgTm90U2VyaWFsaXpl
ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQWNxdWlyZSAoTVdNSSwgMHhGRkZG
KQogICAgICAgICAgICAgICAgTG9jYWwwID0gQ0FSRyAoQXJnMikKICAgICAgICAgICAgICAg
IElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIElmICgoSUxFTiAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IENQQVMgKElCVUYsIDB4MDApCiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAw
KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCA9IFdNSVMgKDB4MDIsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIFJlbGVhc2UgKE1XTUkpCiAgICAgICAgICAgICAg
ICBSZXR1cm4gKERlcmVmT2YgKFJFVE4gW0xvY2FsMF0pKQogICAgICAgICAgICB9CgogICAg
ICAgICAgICBNZXRob2QgKFdNQTMsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIEFjcXVpcmUgKE1XTUksIDB4RkZGRikKICAgICAgICAgICAgICAg
IExvY2FsMCA9IENBUkcgKEFyZzIpCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAw
eDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKElMRU4g
IT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDAgPSBDUEFTIChJQlVGLCAweDAwKQogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBXTUlTICgweDAzLCAw
eDAwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBSZWxlYXNlIChNV01JKQogICAgICAgICAgICAgICAgUmV0dXJuIChEZXJlZk9m
IChSRVROIFtMb2NhbDBdKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChX
TUE0LCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBB
Y3F1aXJlIChNV01JLCAweEZGRkYpCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBDQVJHIChB
cmcyKQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChJTEVOICE9IDB4MDApKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQ1BBUyAo
SUJVRiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
IElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gV01JUyAoMHgwNCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmVsZWFzZSAo
TVdNSSkKICAgICAgICAgICAgICAgIFJldHVybiAoRGVyZWZPZiAoUkVUTiBbTG9jYWwwXSkp
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV1FBNSwgMSwgTm90U2VyaWFs
aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQWNxdWlyZSAoTVdNSSwgMHhG
RkZGKQogICAgICAgICAgICAgICAgV01JUyAoMHgwNSwgMHgwMCkKICAgICAgICAgICAgICAg
IFBDRkcgWzB4MDBdID0gV1NQTSAvKiBcV1NQTSAqLwogICAgICAgICAgICAgICAgUENGRyBb
MHgwNF0gPSBXU1BTIC8qIFxXU1BTICovCiAgICAgICAgICAgICAgICBQQ0ZHIFsweDA4XSA9
IFdTTU4gLyogXFdTTU4gKi8KICAgICAgICAgICAgICAgIFBDRkcgWzB4MENdID0gV1NNWCAv
KiBcV1NNWCAqLwogICAgICAgICAgICAgICAgUENGRyBbMHgxMF0gPSBXU0VOIC8qIFxXU0VO
ICovCiAgICAgICAgICAgICAgICBQQ0ZHIFsweDE0XSA9IFdTS0IgLyogXFdTS0IgKi8KICAg
ICAgICAgICAgICAgIFJlbGVhc2UgKE1XTUkpCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBD
RkcpIC8qIFxfU0JfLldNSTEuUENGRyAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBN
ZXRob2QgKFdNQTYsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIEFjcXVpcmUgKE1XTUksIDB4RkZGRikKICAgICAgICAgICAgICAgIElmICgoU2l6
ZU9mIChBcmcyKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAweDAyCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQ0FS
RyAoQXJnMikKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoSUxFTiAh
PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwID0gU1BBUyAoSUJVRikKICAgICAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCA9IFdNSVMgKDB4MDYsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmVs
ZWFzZSAoTVdNSSkKICAgICAgICAgICAgICAgIFJldHVybiAoRGVyZWZPZiAoUkVUTiBbTG9j
YWwwXSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV01BNywgMywgTm90
U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChTaXplT2Yg
KEFyZzIpID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJldHVybiAoIiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWww
ID0gQ0FSRyAoQXJnMikKICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEdJVE0gKElC
VUYsIElURU0pCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gT25lcykpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCIi
KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
RGVyZWZPZiAoSVRFTSBbTG9jYWwxXSkKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBE
ZXJlZk9mIChMb2NhbDAgWzB4MDBdKQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwx
IDwgMHg2NCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDMgPSBEZXJlZk9mIChWU0VMIFtMb2NhbDFdKQogICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDIgPSBEZXJlZk9mIChMb2NhbDMgWzB4MDBdKQogICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDQgPSBTaXplT2YgKExvY2FsMykKICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWw1ID0gMHgwMQogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2Fs
NSA8IExvY2FsNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsNiA9IERlcmVmT2YgKExvY2FsMyBbTG9jYWw1XSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoU2l6ZU9mIChMb2NhbDYpICE9IDB4MDApKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENvbmNhdGVuYXRlIChMb2NhbDIsICIsIiwgTG9jYWw3KQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlIChMb2NhbDcsIExvY2FsNiwgTG9jYWwy
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsNSsrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gRGVyZWZPZiAoVkxTVCBbMHgw
MF0pCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IFNpemVPZiAoVkxTVCkKICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gMHgwMQogICAgICAgICAgICAgICAgICAg
ICAgICBXaGlsZSAoKExvY2FsNSA8IExvY2FsNCkpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IERlcmVmT2YgKFZMU1Qg
W0xvY2FsNV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAoTG9j
YWwyLCAiLCIsIExvY2FsNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVu
YXRlIChMb2NhbDcsIExvY2FsNiwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWw1KysKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2Fs
MikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXUUYxLCAxLCBOb3RTZXJp
YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBY3F1aXJlIChNV01JLCAw
eEZGRkYpCiAgICAgICAgICAgICAgICBJZiAoKFdNSVMgKDB4MTAsIEFyZzApICE9IDB4MDAp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKE1XTUkp
CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiIikKICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBMb2NhbDAgPSBEZXJlZk9mIChGVU5DIFtXSVRNXSkKICAgICAgICAg
ICAgICAgIExvY2FsMSA9IERlcmVmT2YgKExvY2FsMCBbMHgwMF0pCiAgICAgICAgICAgICAg
ICBMb2NhbDIgPSBEZXJlZk9mIChMb2NhbDAgWzB4MDFdKQogICAgICAgICAgICAgICAgQ29u
Y2F0ZW5hdGUgKExvY2FsMiwgIiwiLCBMb2NhbDYpCiAgICAgICAgICAgICAgICBMb2NhbDMg
PSBEZXJlZk9mIChWU0VMIFtMb2NhbDFdKQogICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUg
KExvY2FsNiwgRGVyZWZPZiAoTG9jYWwzIFtXU0VMXSksIExvY2FsNykKICAgICAgICAgICAg
ICAgIFJlbGVhc2UgKE1XTUkpCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsNykKICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXTUYyLCAzLCBOb3RTZXJpYWxpemVk
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBY3F1aXJlIChNV01JLCAweEZGRkYp
CiAgICAgICAgICAgICAgICBJZiAoKFNpemVPZiAoQXJnMikgPT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMgogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIExvY2FsMCA9IENBUkcgKEFyZzIpCiAgICAgICAgICAgICAgICAgICAg
SWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSBXU0VUIChGVU5DLCBWU0VMKQogICAgICAgICAgICAg
ICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gV01JUyAoMHgxMSwg
MHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZWxlYXNlIChNV01JKQogICAg
ICAgICAgICAgICAgUmV0dXJuIChEZXJlZk9mIChSRVROIFtMb2NhbDBdKSkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXTUYwLCAzLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBBY3F1aXJlIChNV01JLCAweEZGRkYpCiAgICAg
ICAgICAgICAgICBJZiAoKFNpemVPZiAoQXJnMikgPT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMgogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIExvY2FsMCA9IENBUkcgKEFyZzIpCiAgICAgICAgICAgICAgICAgICAgSWYgKChM
b2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDYgPSBHU0VMIChPUENELCBJQlVGLCAweDAwLCAweDAxKQogICAgICAg
ICAgICAgICAgICAgICAgICBJZiAoKExvY2FsNiAhPSBPbmVzKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw0ID0gRGVyZWZP
ZiAoT1BDRCBbTG9jYWw2XSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9
IFNpemVPZiAoTG9jYWw0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0g
RGVyZWZPZiAoSUJVRiBbTG9jYWwyXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm
ICgoKExvY2FsMyA9PSAweDJDKSB8fCAoTG9jYWwzID09IDB4M0EpKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDIrKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm
ICgoTG9jYWw2ID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdQVFkgPSAweEZGCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWw3ID0gR1NFTCAoUFRZUCwgSUJVRiwgTG9jYWwyLCAw
eDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWw3ICE9IE9u
ZXMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV1BUWSA9IExvY2FsNwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRWxzZUlmICgoTG9jYWw2ID09IDB4MDEpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTVFIgPSAw
eDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gR1BBTyAoSUJV
RiwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwx
ID09IE9uZXMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXUEFTID0gUFNUUiAvKiBc
X1NCXy5XTUkxLlBTVFIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFbHNlSWYgKChMb2NhbDYgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNUUiA9IDB4MDAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBHUEFPIChJQlVGLCBMb2NhbDIp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gT25lcykp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2Fs
MSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTVFIgPSAweDAwCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ
ZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdQTlcgPSBQU1RSIC8qIFxf
U0JfLldNSTEuUFNUUiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVsc2VJZiAoKExvY2FsNiA9PSAweDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
bHNlSWYgKChMb2NhbDYgPT0gMHgwQikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNUUiA9IDB4MDAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBHUEFPIChJQlVGLCBMb2NhbDIpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gT25lcykpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9
PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDIKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm
ICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1BBUyA9IFBTVFIgLyogXF9T
Ql8uV01JMS5QU1RSICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMCA9IDB4MDIKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDAgPSBXTUlTICgweDBGLCBMb2NhbDYpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgUmVsZWFzZSAoTVdNSSkKICAgICAgICAgICAgICAgIFJldHVybiAoRGVyZWZPZiAoUkVU
TiBbTG9jYWwwXSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV01GMywg
MywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQWNxdWly
ZSAoTVdNSSwgMHhGRkZGKQogICAgICAgICAgICAgICAgV0VYRiA9IDB4MDEKICAgICAgICAg
ICAgICAgIElmICgoU2l6ZU9mIChBcmcyKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAyCiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gQ0FSRyAoQXJnMikKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2Fs
MCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIENCRkYgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIENCRkYgPSBJQlVGIC8q
IFxfU0JfLldNSTEuSUJVRiAqLwogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBX
U0VUIChJVEVNLCBWU0VMKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9
PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwID0gV01JUyAoMHgwMSwgMHgwMCkKICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgQ0JGRiA9IDB4MDAKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgV0VYRiA9
IDB4MDAKICAgICAgICAgICAgICAgIFJlbGVhc2UgKE1XTUkpCiAgICAgICAgICAgICAgICBS
ZXR1cm4gKERlcmVmT2YgKFJFVE4gW0xvY2FsMF0pKQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNZXRob2QgKFdNRjQsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIEFjcXVpcmUgKE1XTUksIDB4RkZGRikKICAgICAgICAgICAgICAgIFdF
WEYgPSAweDAxCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBDQVJHIChBcmcyKQogICAgICAg
ICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgSWYgKChJTEVOICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgQ0JGRiA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICAgICAgQ0JGRiA9IElCVUYgLyogXF9TQl8uV01JMS5JQlVGICovCiAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMCA9IFdNSVMgKDB4MDIsIDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDIKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgQ0JGRiA9IDB4MDAK
ICAgICAgICAgICAgICAgIFdFWEYgPSAweDAwCiAgICAgICAgICAgICAgICBSZWxlYXNlIChN
V01JKQogICAgICAgICAgICAgICAgUmV0dXJuIChEZXJlZk9mIChSRVROIFtMb2NhbDBdKSkK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXTUY1LCAzLCBOb3RTZXJpYWxp
emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBY3F1aXJlIChNV01JLCAweEZG
RkYpCiAgICAgICAgICAgICAgICBXRVhGID0gMHgwMQogICAgICAgICAgICAgICAgTG9jYWww
ID0gQ0FSRyAoQXJnMikKICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoSUxFTiAhPSAweDAw
KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENCRkYg
PSBJQlVGIC8qIFxfU0JfLldNSTEuSUJVRiAqLwogICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSBXTUlTICgweDAzLCAweDAwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIENCRkYgPSAweDAwCiAgICAgICAgICAgICAg
ICBXRVhGID0gMHgwMAogICAgICAgICAgICAgICAgUmVsZWFzZSAoTVdNSSkKICAgICAgICAg
ICAgICAgIFJldHVybiAoRGVyZWZPZiAoUkVUTiBbTG9jYWwwXSkpCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE1ldGhvZCAoV01GNiwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgQWNxdWlyZSAoTVdNSSwgMHhGRkZGKQogICAgICAgICAg
ICAgICAgV0VYRiA9IDB4MDEKICAgICAgICAgICAgICAgIExvY2FsMCA9IENBUkcgKEFyZzIp
CiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKElMRU4gIT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDQkZGID0gSUJVRiAvKiBcX1NC
Xy5XTUkxLklCVUYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gV01JUyAo
MHgwNCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwwID0gMHgwMgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBDQkZGID0gMHgwMAogICAgICAgICAgICAgICAgV0VYRiA9IDB4MDAK
ICAgICAgICAgICAgICAgIFJlbGVhc2UgKE1XTUkpCiAgICAgICAgICAgICAgICBSZXR1cm4g
KERlcmVmT2YgKFJFVE4gW0xvY2FsMF0pKQogICAgICAgICAgICB9CgogICAgICAgICAgICBN
ZXRob2QgKFdNRjcsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIEFjcXVpcmUgKE1XTUksIDB4RkZGRikKICAgICAgICAgICAgICAgIFdFWEYgPSAw
eDAxCiAgICAgICAgICAgICAgICBJZiAoKFNpemVPZiAoQXJnMikgPT0gMHgwMCkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMgogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IENBUkcgKEFyZzIpCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBJZiAoKElMRU4gIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENCRkYgPSBJQlVGIC8qIFxf
U0JfLldNSTEuSUJVRiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
V01JUyAoMHgwNiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDIKICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBDQkZGID0gMHgwMAogICAgICAgICAgICAgICAgV0VYRiA9IDB4MDAKICAgICAg
ICAgICAgICAgIFJlbGVhc2UgKE1XTUkpCiAgICAgICAgICAgICAgICBSZXR1cm4gKERlcmVm
T2YgKFJFVE4gW0xvY2FsMF0pKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg
KFdNRjgsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IEFjcXVpcmUgKE1XTUksIDB4RkZGRikKICAgICAgICAgICAgICAgIFdFWEYgPSAweDAxCiAg
ICAgICAgICAgICAgICBJZiAoKFNpemVPZiAoQXJnMikgPT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMgogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIENCRkYgPSBJQlVGIC8qIFxfU0JfLldNSTEuSUJVRiAqLwogICAgICAgICAg
ICAgICAgICAgIExvY2FsMCA9IENBUkcgKEFyZzIpCiAgICAgICAgICAgICAgICAgICAgSWYg
KChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBDQkZGID0gSUJVRiAvKiBcX1NCXy5XTUkxLklCVUYgKi8KICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gV1NFVCAoRlVOQywgVlNFTCkKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFdNSVMgKDB4MTEs
IDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgQ0JGRiA9IDB4MDAKICAgICAg
ICAgICAgICAgIFdFWEYgPSAweDAwCiAgICAgICAgICAgICAgICBSZWxlYXNlIChNV01JKQog
ICAgICAgICAgICAgICAgUmV0dXJuIChEZXJlZk9mIChSRVROIFtMb2NhbDBdKSkKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChDQVJHLCAxLCBOb3RTZXJpYWxpemVkKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBTaXplT2YgKEFyZzApCiAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBJQlVGID0gMHgwMAogICAgICAgICAgICAgICAgICAgIElM
RU4gPSAweDAwCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoT2JqZWN0VHlwZSAoQXJnMCkgIT0gMHgw
MikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAy
KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoV0VYRiA9PSAweDAx
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+
PSAweDA1RkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIEVsc2VJZiAoKExvY2FsMCA+PSAweDAxRkYpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICBJQlVGID0gQXJnMAogICAgICAgICAgICAgICAg
TG9jYWwwLS0KICAgICAgICAgICAgICAgIExvY2FsMSA9IERlcmVmT2YgKElCVUYgW0xvY2Fs
MF0pCiAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgPT0gMHgzQikgfHwgKExvY2FsMSA9
PSAweDJBKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSUJVRiBb
TG9jYWwwXSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBJTEVOID0gTG9jYWwwCiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgSUxFTiA9IFNpemVPZiAoQXJnMCkKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIE1ldGhvZCAoU0NNUCwgNCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTG9jYWwwID0gU2l6ZU9mIChBcmcwKQogICAgICAgICAgICAgICAg
SWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IExvY2FsMCsrCiAgICAgICAgICAgICAgICBOYW1lIChTVFIxLCBCdWZmZXIgKExvY2FsMCkg
e30pCiAgICAgICAgICAgICAgICBTVFIxID0gQXJnMAogICAgICAgICAgICAgICAgTG9jYWww
LS0KICAgICAgICAgICAgICAgIElmICgoQUxFTiAhPSAweDAwKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBTEVOIC8qIFxfU0JfLldNSTEuQUxF
TiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAK
ICAgICAgICAgICAgICAgIExvY2FsMiA9IEFyZzIKICAgICAgICAgICAgICAgIFdoaWxlICgo
TG9jYWwxIDwgTG9jYWwwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBMb2NhbDMgPSBEZXJlZk9mIChTVFIxIFtMb2NhbDFdKQogICAgICAgICAgICAgICAgICAg
IExvY2FsNCA9IERlcmVmT2YgKEFyZzEgW0xvY2FsMl0pCiAgICAgICAgICAgICAgICAgICAg
SWYgKChBcmczID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChMb2NhbDMgPj0gMHg0MSkpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwzIDw9IDB4NUEp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMyArPSAweDIwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm
ICgoTG9jYWw0ID49IDB4NDEpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsNCA8PSAweDVBKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDQgKz0gMHgyMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICBJZiAoKExvY2FsMyAhPSBMb2NhbDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxKysKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDIrKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQUxFTiAhPSAw
eDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4
MDEpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWw0ID0gRGVyZWZP
ZiAoQXJnMSBbTG9jYWwyXSkKICAgICAgICAgICAgICAgIElmICgoTG9jYWw0ID09IDB4MDAp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDQgPT0gMHgy
QykgfHwgKExvY2FsNCA9PSAweDNBKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChH
SVRNLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBM
b2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBTaXplT2YgKEFyZzEpCiAg
ICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IExvY2FsMSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gRGVyZWZPZiAoRGVyZWZPZiAoQXJn
MSBbTG9jYWwwXSkgWzB4MDFdKQogICAgICAgICAgICAgICAgICAgIElmIChTQ01QIChMb2Nh
bDMsIEFyZzAsIDB4MDAsIDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIFJldHVybiAoT25lcykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0
aG9kIChHU0VMLCA0LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBTaXplT2YgKEFy
ZzApCiAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IExvY2FsMSkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gRGVyZWZPZiAoQXJnMCBb
TG9jYWwwXSkKICAgICAgICAgICAgICAgICAgICBJZiAoU0NNUCAoTG9jYWwyLCBBcmcxLCBB
cmcyLCBBcmczKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBS
ZXR1cm4gKE9uZXMpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoU0xFTiwg
MiwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWww
ID0gRGVyZWZPZiAoQXJnMCBbQXJnMV0pCiAgICAgICAgICAgICAgICBSZXR1cm4gKFNpemVP
ZiAoTG9jYWwwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChDTFJQLCAw
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBXUEFTID0g
MHgwMAogICAgICAgICAgICAgICAgV1BOVyA9IDB4MDAKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChHUEFTLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBMb2NhbDAgPSBBcmcxCiAgICAgICAgICAgICAgICBMb2NhbDEgPSAw
eDAwCiAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMSA8PSAweDgwKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBEZXJlZk9mIChBcmcwIFtM
b2NhbDBdKQogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMiA9PSAweDJDKSB8fCAo
TG9jYWwyID09IDB4MDApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIFBTVFIgW0xvY2FsMV0gPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgUFNUUiBbTG9jYWwxXSA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgIExvY2Fs
MCsrCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxKysKICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBQU1RSIFtMb2NhbDFdID0gMHgwMAogICAgICAgICAgICAgICAgUmV0
dXJuIChPbmVzKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEdQQU8sIDIs
IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9
IEFyZzEKICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgIFdo
aWxlICgoTG9jYWwxIDw9IDB4ODApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIExvY2FsMiA9IERlcmVmT2YgKEFyZzAgW0xvY2FsMF0pCiAgICAgICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDIgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBQU1RSIFtMb2NhbDFdID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgIFBTVFIgW0xvY2FsMV0gPSBMb2NhbDIKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIExvY2FsMSsrCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwxLS0KICAgICAgICAgICAgICAgIFBTVFIg
W0xvY2FsMV0gPSAweDAwCiAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZXMpCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoQ1BBUywgMiwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgQ0xSUCAoKQogICAgICAgICAgICAgICAgTG9j
YWwwID0gQXJnMQogICAgICAgICAgICAgICAgTG9jYWwxID0gR1BBUyAoQXJnMCwgTG9jYWww
KQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gT25lcykpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MDApKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBXUEFTID0gUFNUUiAvKiBcX1NCXy5XTUkxLlBTVFIgKi8K
ICAgICAgICAgICAgICAgIExvY2FsMCArPSBMb2NhbDEKICAgICAgICAgICAgICAgIExvY2Fs
MCsrCiAgICAgICAgICAgICAgICBMb2NhbDYgPSBHU0VMIChQRU5DLCBBcmcwLCBMb2NhbDAs
IDB4MDApCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsNiA9PSBPbmVzKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgV0VOQyA9IExvY2FsNgogICAgICAgICAgICAgICAg
SWYgKChMb2NhbDYgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwICs9IFNMRU4gKFBFTkMsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
SWYgKChEZXJlZk9mIChBcmcwIFtMb2NhbDBdKSAhPSAweDJDKSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAg
ICAgICAgICAgTG9jYWw2ID0gR1NFTCAoUEtCRCwgQXJnMCwgTG9jYWwwLCAweDAwKQogICAg
ICAgICAgICAgICAgICAgIElmICgoTG9jYWw2ID09IE9uZXMpKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgV0tCRCA9IExvY2FsNgogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgTWV0aG9kIChTUEFTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBDTFJQICgpCiAgICAgICAgICAgICAgICBMb2NhbDYg
PSBHU0VMIChQVFlQLCBBcmcwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgSWYgKChM
b2NhbDYgPT0gT25lcykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
UmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFdQVFkg
PSBMb2NhbDYKICAgICAgICAgICAgICAgIExvY2FsMCA9IFNMRU4gKFBUWVAsIExvY2FsNikK
ICAgICAgICAgICAgICAgIElmICgoRGVyZWZPZiAoQXJnMCBbTG9jYWwwXSkgIT0gMHgyQykp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAg
ICAgICBQU1RSID0gMHgwMAogICAgICAgICAgICAgICAgTG9jYWwxID0gR1BBUyAoQXJnMCwg
TG9jYWwwKQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gT25lcykpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIFdQQVMgPSBQU1RSIC8qIFxfU0JfLldNSTEuUFNU
UiAqLwogICAgICAgICAgICAgICAgTG9jYWwwICs9IExvY2FsMQogICAgICAgICAgICAgICAg
SWYgKChEZXJlZk9mIChBcmcwIFtMb2NhbDBdKSAhPSAweDJDKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIFBTVFIgPSAweDAw
CiAgICAgICAgICAgICAgICBMb2NhbDEgPSBHUEFTIChBcmcwLCBMb2NhbDApCiAgICAgICAg
ICAgICAgICBJZiAoKExvY2FsMSA9PSBPbmVzKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUFNUUiA9IDB4MDAKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBXUE5XID0gUFNUUiAvKiBcX1NCXy5XTUkxLlBTVFIgKi8KICAgICAgICAgICAg
ICAgIExvY2FsMCArPSBMb2NhbDEKICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAg
ICAgICAgICBMb2NhbDYgPSBHU0VMIChQRU5DLCBBcmcwLCBMb2NhbDAsIDB4MDApCiAgICAg
ICAgICAgICAgICBJZiAoKExvY2FsNiA9PSBPbmVzKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgV0VOQyA9IExvY2FsNgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDYg
PT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWww
ICs9IFNMRU4gKFBFTkMsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgSWYgKChEZXJlZk9m
IChBcmcwIFtMb2NhbDBdKSAhPSAweDJDKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgTG9j
YWw2ID0gR1NFTCAoUEtCRCwgQXJnMCwgTG9jYWwwLCAweDAwKQogICAgICAgICAgICAgICAg
ICAgIElmICgoTG9jYWw2ID09IE9uZXMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgV0tCRCA9IExvY2FsNgogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTWV0aG9kIChXU0VULCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBMb2NhbDAgPSBJTEVOIC8qIFxfU0JfLldNSTEuSUxFTiAqLwogICAgICAg
ICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIExvY2FsMSA9IEdJVE0gKElCVUYs
IEFyZzApCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSBPbmVzKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgV0lUTSA9IExvY2FsMQogICAgICAgICAgICAgICAg
TG9jYWwzID0gRGVyZWZPZiAoQXJnMCBbTG9jYWwxXSkKICAgICAgICAgICAgICAgIExvY2Fs
NCA9IERlcmVmT2YgKExvY2FsMyBbMHgwMV0pCiAgICAgICAgICAgICAgICBMb2NhbDIgPSBT
aXplT2YgKExvY2FsNCkKICAgICAgICAgICAgICAgIExvY2FsMisrCiAgICAgICAgICAgICAg
ICBMb2NhbDQgPSBEZXJlZk9mIChMb2NhbDMgWzB4MDBdKQogICAgICAgICAgICAgICAgSWYg
KChMb2NhbDQgPT0gMHgyMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgSWYgKChBTE1EIChMb2NhbDIpICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwyICs9IDB4MEEKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDQgPSBEZXJlZk9mIChJQlVGIFtMb2NhbDJdKQogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoTG9jYWw0ID09IDB4MjMpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQUxNVCAoTG9jYWwyKSAhPSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
IExvY2FsMiArPSAweDA4CiAgICAgICAgICAgICAgICAgICAgTG9jYWw0ID0gRGVyZWZPZiAo
SUJVRiBbTG9jYWwyXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2VJ
ZiAoKExvY2FsNCA8IDB4NjQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIExvY2FsNSA9IERlcmVmT2YgKEFyZzEgW0xvY2FsNF0pCiAgICAgICAgICAgICAgICAg
ICAgTG9jYWw2ID0gR1NFTCAoTG9jYWw1LCBJQlVGLCBMb2NhbDIsIDB4MDApCiAgICAgICAg
ICAgICAgICAgICAgSWYgKChMb2NhbDYgPT0gT25lcykpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBXU0VMID0gTG9jYWw2CiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwyICs9IFNMRU4gKExvY2FsNSwgTG9jYWw2KQogICAgICAgICAgICAg
ICAgICAgIExvY2FsNCA9IERlcmVmT2YgKElCVUYgW0xvY2FsMl0pCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgV0xTMCA9IDB4M0YKICAgICAgICAgICAgICAgICAgICBXTFMxID0gMHgzRgog
ICAgICAgICAgICAgICAgICAgIFdMUzIgPSAweDNGCiAgICAgICAgICAgICAgICAgICAgV0xT
MyA9IDB4M0YKICAgICAgICAgICAgICAgICAgICBXTFM0ID0gMHgzRgogICAgICAgICAgICAg
ICAgICAgIFdMUzUgPSAweDNGCiAgICAgICAgICAgICAgICAgICAgV0xTNiA9IDB4M0YKICAg
ICAgICAgICAgICAgICAgICBXTFM3ID0gMHgzRgogICAgICAgICAgICAgICAgICAgIFdMUzgg
PSAweDNGCiAgICAgICAgICAgICAgICAgICAgV0xTOSA9IDB4M0YKICAgICAgICAgICAgICAg
ICAgICBXTFNBID0gMHgzRgogICAgICAgICAgICAgICAgICAgIFdMU0IgPSAweDNGCiAgICAg
ICAgICAgICAgICAgICAgV0xTQyA9IDB4M0YKICAgICAgICAgICAgICAgICAgICBXTFNEID0g
MHgzRgogICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IEdTRUwgKFZMU1QsIElCVUYsIExv
Y2FsMiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsNiA9PSBPbmVzKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo
MHgwMikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFdMUzAg
PSBMb2NhbDYKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgKz0gU0xFTiAoVkxTVCwgTG9j
YWw2KQogICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IERlcmVmT2YgKElCVUYgW0xvY2Fs
Ml0pCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwyIDwgTG9jYWwwKSAmJiAoTG9j
YWw0ID09IDB4M0EpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMisrCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IEdTRUwg
KFZMU1QsIElCVUYsIExvY2FsMiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KChMb2NhbDYgPT0gT25lcykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgV0xTMSA9IExvY2FsNgogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDIgKz0gU0xFTiAoVkxTVCwgTG9jYWw2KQogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDQgPSBEZXJlZk9mIChJQlVGIFtMb2NhbDJdKQogICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwyIDwgTG9j
YWwwKSAmJiAoTG9jYWw0ID09IDB4M0EpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMisrCiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsNiA9IEdTRUwgKFZMU1QsIElCVUYsIExvY2FsMiwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgSWYgKChMb2NhbDYgPT0gT25lcykpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgV0xTMiA9IExvY2Fs
NgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgKz0gU0xFTiAoVkxTVCwgTG9jYWw2
KQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBEZXJlZk9mIChJQlVGIFtMb2Nh
bDJdKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCgo
TG9jYWwyIDwgTG9jYWwwKSAmJiAoTG9jYWw0ID09IDB4M0EpKSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMisrCiAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsNiA9IEdTRUwgKFZMU1QsIElCVUYsIExvY2FsMiwgMHgwMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDYgPT0gT25lcykpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw
MikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg
V0xTMyA9IExvY2FsNgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgKz0gU0xFTiAo
VkxTVCwgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBEZXJlZk9m
IChJQlVGIFtMb2NhbDJdKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgSWYgKCgoTG9jYWwyIDwgTG9jYWwwKSAmJiAoTG9jYWw0ID09IDB4M0EpKSkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMisrCiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IEdTRUwgKFZMU1QsIElCVUYsIExvY2Fs
MiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDYgPT0gT25lcykp
CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICAgICAgV0xTNCA9IExvY2FsNgogICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDIgKz0gU0xFTiAoVkxTVCwgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDQgPSBEZXJlZk9mIChJQlVGIFtMb2NhbDJdKQogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwyIDwgTG9jYWwwKSAmJiAoTG9jYWw0ID09
IDB4M0EpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IExvY2FsMisrCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IEdTRUwgKFZMU1Qs
IElCVUYsIExvY2FsMiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2Nh
bDYgPT0gT25lcykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICAgICAgV0xTNSA9IExvY2FsNgogICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDIgKz0gU0xFTiAoVkxTVCwgTG9jYWw2KQogICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDQgPSBEZXJlZk9mIChJQlVGIFtMb2NhbDJdKQogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwyIDwgTG9jYWwwKSAm
JiAoTG9jYWw0ID09IDB4M0EpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMisrCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9
IEdTRUwgKFZMU1QsIElCVUYsIExvY2FsMiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgSWYgKChMb2NhbDYgPT0gT25lcykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgV0xTNiA9IExvY2FsNgogICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDIgKz0gU0xFTiAoVkxTVCwgTG9jYWw2KQogICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBEZXJlZk9mIChJQlVGIFtMb2NhbDJdKQog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwy
IDwgTG9jYWwwKSAmJiAoTG9jYWw0ID09IDB4M0EpKSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMisrCiAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2FsNiA9IEdTRUwgKFZMU1QsIElCVUYsIExvY2FsMiwgMHgwMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgSWYgKChMb2NhbDYgPT0gT25lcykpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAg
ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgV0xTNyA9
IExvY2FsNgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgKz0gU0xFTiAoVkxTVCwg
TG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBEZXJlZk9mIChJQlVG
IFtMb2NhbDJdKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
SWYgKCgoTG9jYWwyIDwgTG9jYWwwKSAmJiAoTG9jYWw0ID09IDB4M0EpKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMisrCiAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsNiA9IEdTRUwgKFZMU1QsIElCVUYsIExvY2FsMiwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDYgPT0gT25lcykpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
biAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICAgICAgV0xTOCA9IExvY2FsNgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgKz0g
U0xFTiAoVkxTVCwgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBE
ZXJlZk9mIChJQlVGIFtMb2NhbDJdKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgSWYgKCgoTG9jYWwyIDwgTG9jYWwwKSAmJiAoTG9jYWw0ID09IDB4M0Ep
KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MisrCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IEdTRUwgKFZMU1QsIElCVUYs
IExvY2FsMiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDYgPT0g
T25lcykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICAgICAgV0xTOSA9IExvY2FsNgogICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDIgKz0gU0xFTiAoVkxTVCwgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDQgPSBEZXJlZk9mIChJQlVGIFtMb2NhbDJdKQogICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwyIDwgTG9jYWwwKSAmJiAoTG9j
YWw0ID09IDB4M0EpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMisrCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IEdTRUwg
KFZMU1QsIElCVUYsIExvY2FsMiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KChMb2NhbDYgPT0gT25lcykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgV0xTQSA9IExvY2FsNgogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDIgKz0gU0xFTiAoVkxTVCwgTG9jYWw2KQogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDQgPSBEZXJlZk9mIChJQlVGIFtMb2NhbDJdKQogICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwyIDwgTG9j
YWwwKSAmJiAoTG9jYWw0ID09IDB4M0EpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMisrCiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsNiA9IEdTRUwgKFZMU1QsIElCVUYsIExvY2FsMiwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgSWYgKChMb2NhbDYgPT0gT25lcykpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgV0xTQiA9IExvY2Fs
NgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgKz0gU0xFTiAoVkxTVCwgTG9jYWw2
KQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBEZXJlZk9mIChJQlVGIFtMb2Nh
bDJdKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCgo
TG9jYWwyIDwgTG9jYWwwKSAmJiAoTG9jYWw0ID09IDB4M0EpKSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMisrCiAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsNiA9IEdTRUwgKFZMU1QsIElCVUYsIExvY2FsMiwgMHgwMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDYgPT0gT25lcykpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw
MikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg
V0xTQyA9IExvY2FsNgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgKz0gU0xFTiAo
VkxTVCwgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBEZXJlZk9m
IChJQlVGIFtMb2NhbDJdKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgSWYgKCgoTG9jYWwyIDwgTG9jYWwwKSAmJiAoTG9jYWw0ID09IDB4M0EpKSkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMisrCiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IEdTRUwgKFZMU1QsIElCVUYsIExvY2Fs
MiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDYgPT0gT25lcykp
CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICAgICAgV0xTRCA9IExvY2FsNgogICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDIgKz0gU0xFTiAoVkxTVCwgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDQgPSBEZXJlZk9mIChJQlVGIFtMb2NhbDJdKQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKFdFWEYgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw0ID09IDB4
MkMpICYmIChMb2NhbDIgPCBMb2NhbDApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMisrCiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9IENQQVMgKElCVUYsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KChMb2NhbDAgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0
aG9kIChBTE1ELCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBWUjAyIC8qIFxf
U0JfLldNSTEuVlIwMiAqLwogICAgICAgICAgICAgICAgQUxFTiA9IDB4MDIKICAgICAgICAg
ICAgICAgIExvY2FsMiA9IEdTRUwgKExvY2FsMSwgSUJVRiwgTG9jYWwwLCAweDAwKQogICAg
ICAgICAgICAgICAgQUxFTiA9IDB4MDAKICAgICAgICAgICAgICAgIElmICgoTG9jYWwyID09
IE9uZXMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo
MHgwMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSVEMxID0gTG9jYWwy
CiAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgTG9jYWwwKysKICAg
ICAgICAgICAgICAgIExvY2FsMyA9IERlcmVmT2YgKElCVUYgW0xvY2FsMF0pCiAgICAgICAg
ICAgICAgICBJZiAoKExvY2FsMyAhPSAweDJGKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIExvY2FsMSA9IFZSMDMgLyogXF9T
Ql8uV01JMS5WUjAzICovCiAgICAgICAgICAgICAgICBBTEVOID0gMHgwMgogICAgICAgICAg
ICAgICAgTG9jYWwyID0gR1NFTCAoTG9jYWwxLCBJQlVGLCBMb2NhbDAsIDB4MDApCiAgICAg
ICAgICAgICAgICBBTEVOID0gMHgwMAogICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0g
T25lcykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw
eDAyKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJUQzIgPSBMb2NhbDIK
ICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICBMb2NhbDArKwogICAg
ICAgICAgICAgICAgTG9jYWwzID0gRGVyZWZPZiAoSUJVRiBbTG9jYWwwXSkKICAgICAgICAg
ICAgICAgIElmICgoTG9jYWwzICE9IDB4MkYpKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgTG9jYWwxID0gVlIwMSAvKiBcX1NC
Xy5XTUkxLlZSMDEgKi8KICAgICAgICAgICAgICAgIExvY2FsMiA9IEdTRUwgKExvY2FsMSwg
SUJVRiwgTG9jYWwwLCAweDAwKQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gT25l
cykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAy
KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJUQzAgPSBMb2NhbDIKICAg
ICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TWV0aG9kIChBTE1ULCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBWUjA0IC8q
IFxfU0JfLldNSTEuVlIwNCAqLwogICAgICAgICAgICAgICAgQUxFTiA9IDB4MDIKICAgICAg
ICAgICAgICAgIExvY2FsMiA9IEdTRUwgKExvY2FsMSwgSUJVRiwgTG9jYWwwLCAweDAwKQog
ICAgICAgICAgICAgICAgQUxFTiA9IDB4MDAKICAgICAgICAgICAgICAgIElmICgoTG9jYWwy
ID09IE9uZXMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy
biAoMHgwMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSVEMwID0gTG9j
YWwyCiAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgTG9jYWwwKysK
ICAgICAgICAgICAgICAgIExvY2FsMyA9IERlcmVmT2YgKElCVUYgW0xvY2FsMF0pCiAgICAg
ICAgICAgICAgICBJZiAoKExvY2FsMyAhPSAweDNBKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIExvY2FsMSA9IFZSMDUgLyog
XF9TQl8uV01JMS5WUjA1ICovCiAgICAgICAgICAgICAgICBBTEVOID0gMHgwMgogICAgICAg
ICAgICAgICAgTG9jYWwyID0gR1NFTCAoTG9jYWwxLCBJQlVGLCBMb2NhbDAsIDB4MDApCiAg
ICAgICAgICAgICAgICBBTEVOID0gMHgwMAogICAgICAgICAgICAgICAgSWYgKChMb2NhbDIg
PT0gT25lcykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu
ICgweDAyKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJUQzEgPSBMb2Nh
bDIKICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICBMb2NhbDArKwog
ICAgICAgICAgICAgICAgTG9jYWwzID0gRGVyZWZPZiAoSUJVRiBbTG9jYWwwXSkKICAgICAg
ICAgICAgICAgIElmICgoTG9jYWwzICE9IDB4M0EpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgTG9jYWwxID0gVlIwNSAvKiBc
X1NCXy5XTUkxLlZSMDUgKi8KICAgICAgICAgICAgICAgIExvY2FsMiA9IEdTRUwgKExvY2Fs
MSwgSUJVRiwgTG9jYWwwLCAweDAwKQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0g
T25lcykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw
eDAyKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJUQzIgPSBMb2NhbDIK
ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTWV0aG9kIChXTUUwLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBBY3F1aXJlIChNV01JLCAweEZGRkYpCiAgICAgICAgICAgICAgICBMb2Nh
bDAgPSBDQVJHIChBcmcyKQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChJTEVOICE9IDB4
MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwwID0gQ1BBUyAoSUJVRiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gV01JUyAoMHgxMywgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgUmVsZWFzZSAoTVdNSSkKICAgICAgICAgICAgICAgIFJldHVybiAoRGVyZWZPZiAoUkVU
TiBbTG9jYWwwXSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV01FMSwg
MywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQWNxdWly
ZSAoTVdNSSwgMHhGRkZGKQogICAgICAgICAgICAgICAgTG9jYWwwID0gQ0FSRyAoQXJnMikK
ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIElmICgoSUxFTiAhPSAweDAwKSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IENQQVMgKElCVUYs
IDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo
KExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMCA9IFdNSVMgKDB4MTQsIDB4MDApCiAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJlbGVhc2UgKE1XTUkp
CiAgICAgICAgICAgICAgICBSZXR1cm4gKERlcmVmT2YgKFJFVE4gW0xvY2FsMF0pKQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFdNRTIsIDMsIE5vdFNlcmlhbGl6ZWQp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFjcXVpcmUgKE1XTUksIDB4RkZGRikK
ICAgICAgICAgICAgICAgIExvY2FsMCA9IENBUkcgKEFyZzIpCiAgICAgICAgICAgICAgICBJ
ZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBJZiAoKElMRU4gIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgPSBDUEFTIChJQlVGLCAweDAwKQogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
PSBXTUlTICgweDE1LCAweDAwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICBSZWxlYXNlIChNV01JKQogICAgICAgICAgICAgICAg
UmV0dXJuIChEZXJlZk9mIChSRVROIFtMb2NhbDBdKSkKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChXTUUzLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBBY3F1aXJlIChNV01JLCAweEZGRkYpCiAgICAgICAgICAgICAgICBX
RVhGID0gMHgwMQogICAgICAgICAgICAgICAgTG9jYWwwID0gQ0FSRyAoQXJnMikKICAgICAg
ICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIElmICgoSUxFTiAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENCRkYgPSBJQlVGIC8qIFxfU0JfLldNSTEu
SUJVRiAqLwogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBXTUlTICgweDEzLCAw
eDAwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAw
eDAyCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIENCRkYgPSAweDAwCiAgICAgICAgICAgICAgICBXRVhGID0gMHgwMAogICAgICAg
ICAgICAgICAgUmVsZWFzZSAoTVdNSSkKICAgICAgICAgICAgICAgIFJldHVybiAoRGVyZWZP
ZiAoUkVUTiBbTG9jYWwwXSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo
V01FNCwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
QWNxdWlyZSAoTVdNSSwgMHhGRkZGKQogICAgICAgICAgICAgICAgV0VYRiA9IDB4MDEKICAg
ICAgICAgICAgICAgIExvY2FsMCA9IENBUkcgKEFyZzIpCiAgICAgICAgICAgICAgICBJZiAo
KExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBJZiAoKElMRU4gIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBDQkZGID0gSUJVRiAvKiBcX1NCXy5XTUkxLklCVUYgKi8KICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gV01JUyAoMHgxNCwgMHgwMCkKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMgogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBDQkZGID0g
MHgwMAogICAgICAgICAgICAgICAgV0VYRiA9IDB4MDAKICAgICAgICAgICAgICAgIFJlbGVh
c2UgKE1XTUkpCiAgICAgICAgICAgICAgICBSZXR1cm4gKERlcmVmT2YgKFJFVE4gW0xvY2Fs
MF0pKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFdNRTUsIDMsIE5vdFNl
cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFjcXVpcmUgKE1XTUks
IDB4RkZGRikKICAgICAgICAgICAgICAgIFdFWEYgPSAweDAxCiAgICAgICAgICAgICAgICBM
b2NhbDAgPSBDQVJHIChBcmcyKQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgw
MCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChJTEVOICE9
IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
Q0JGRiA9IElCVUYgLyogXF9TQl8uV01JMS5JQlVGICovCiAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2FsMCA9IFdNSVMgKDB4MTUsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDIKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgQ0JGRiA9IDB4MDAKICAgICAgICAg
ICAgICAgIFdFWEYgPSAweDAwCiAgICAgICAgICAgICAgICBSZWxlYXNlIChNV01JKQogICAg
ICAgICAgICAgICAgUmV0dXJuIChEZXJlZk9mIChSRVROIFtMb2NhbDBdKSkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTmFtZSAoV1FCQSwgQnVmZmVyICgweDEyMUYpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4NDYsIDB4NEYsIDB4NEQsIDB4
NDIsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyBGT01CLi4uLgogICAgICAgICAgICAg
ICAgLyogMDAwOCAqLyAgMHgwRiwgMHgxMiwgMHgwMCwgMHgwMCwgMHg0RSwgMHg5RSwgMHgw
MCwgMHgwMCwgIC8vIC4uLi5OLi4uCiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDQ0
LCAweDUzLCAweDAwLCAweDAxLCAweDFBLCAweDdELCAweERBLCAweDU0LCAgLy8gRFMuLi59
LlQKICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4QTgsIDB4QjQsIDB4OEMsIDB4MDAs
IDB4MDEsIDB4MDYsIDB4MTgsIDB4NDIsICAvLyAuLi4uLi4uQgogICAgICAgICAgICAgICAg
LyogMDAyMCAqLyAgMHgxMCwgMHgzMSwgMHgxMCwgMHgwQSwgMHgwRCwgMHgyMSwgMHgwMiwg
MHgwQiwgIC8vIC4xLi4uIS4uCiAgICAgICAgICAgICAgICAvKiAwMDI4ICovICAweDgzLCAw
eDUwLCAweDRDLCAweDE4LCAweDE0LCAweEEwLCAweDQ1LCAweDQxLCAgLy8gLlBMLi4uRUEK
ICAgICAgICAgICAgICAgIC8qIDAwMzAgKi8gIDB4QzgsIDB4MDUsIDB4MTQsIDB4OTUsIDB4
MDIsIDB4MjEsIDB4QzMsIDB4MDIsICAvLyAuLi4uLiEuLgogICAgICAgICAgICAgICAgLyog
MDAzOCAqLyAgMHgxNCwgMHgwQiwgMHg3MCwgMHgyRSwgMHg0MCwgMHhCQSwgMHgwMCwgMHhF
NSwgIC8vIC4ucC5ALi4uCiAgICAgICAgICAgICAgICAvKiAwMDQwICovICAweDI4LCAweDcy
LCAweDBDLCAweDIyLCAweDAyLCAweEY3LCAweEVGLCAweDBGLCAgLy8gKHIuIi4uLi4KICAg
ICAgICAgICAgICAgIC8qIDAwNDggKi8gIDB4MzEsIDB4MEUsIDB4ODgsIDB4MTQsIDB4NDAs
IDB4NDgsIDB4MjYsIDB4ODQsICAvLyAxLi4uQEgmLgogICAgICAgICAgICAgICAgLyogMDA1
MCAqLyAgMHg0NCwgMHgwMCwgMHg1MywgMHgyMSwgMHg3MCwgMHg4NCwgMHhBMCwgMHg1Riwg
IC8vIEQuUyFwLi5fCiAgICAgICAgICAgICAgICAvKiAwMDU4ICovICAweDAxLCAweDA4LCAw
eDFELCAweEEyLCAweEM5LCAweEEwLCAweDAwLCAweEE3LCAgLy8gLi4uLi4uLi4KICAgICAg
ICAgICAgICAgIC8qIDAwNjAgKi8gIDB4MDgsIDB4ODIsIDB4QjQsIDB4NjUsIDB4MDEsIDB4
QkEsIDB4MDUsIDB4RjgsICAvLyAuLi5lLi4uLgogICAgICAgICAgICAgICAgLyogMDA2OCAq
LyAgMHgxNiwgMHhBMCwgMHgxRCwgMHg0MiwgMHg2OCwgMHgxNSwgMHgwQSwgMHgzMCwgIC8v
IC4uLkJoLi4wCiAgICAgICAgICAgICAgICAvKiAwMDcwICovICAweDI5LCAweEMwLCAweDI3
LCAweDk4LCAweDJDLCAweDBBLCAweDkwLCAweDBELCAgLy8gKS4nLiwuLi4KICAgICAgICAg
ICAgICAgIC8qIDAwNzggKi8gIDB4MjYsIDB4REIsIDB4NzAsIDB4NjQsIDB4MTgsIDB4NEMs
IDB4RTQsIDB4MTgsICAvLyAmLnBkLkwuLgogICAgICAgICAgICAgICAgLyogMDA4MCAqLyAg
MHg1MCwgMHg0MywgMHhGMywgMHgxOCwgMHhCOCwgMHhDRSwgMHgyOSwgMHhDOCwgIC8vIFBD
Li4uLikuCiAgICAgICAgICAgICAgICAvKiAwMDg4ICovICAweDI2LCAweEIwLCAweEEwLCAw
eDBCLCAweDQ1LCAweEQxLCAweDM0LCAweEEyLCAgLy8gJi4uLkUuNC4KICAgICAgICAgICAg
ICAgIC8qIDAwOTAgKi8gIDB4MjQsIDB4MzgsIDB4QTgsIDB4NjMsIDB4ODgsIDB4MTAsIDB4
QkMsIDB4NUMsICAvLyAkOC5jLi4uXAogICAgICAgICAgICAgICAgLyogMDA5OCAqLyAgMHgw
MSwgMHg5MiwgMHgyNywgMHgyMCwgMHhDRCwgMHhGMywgMHg5MiwgMHhGNSwgIC8vIC4uJyAu
Li4uCiAgICAgICAgICAgICAgICAvKiAwMEEwICovICAweDQxLCAweDY4LCAweDA4LCAweDZD
LCAweDA0LCAweDNDLCAweDhBLCAweDA0LCAgLy8gQWgubC48Li4KICAgICAgICAgICAgICAg
IC8qIDAwQTggKi8gIDB4MTAsIDB4MTYsIDB4NjMsIDB4OTksIDB4MTIsIDB4MEYsIDB4ODMs
IDB4RjIsICAvLyAuLmMuLi4uLgogICAgICAgICAgICAgICAgLyogMDBCMCAqLyAgMHgwMCwg
MHgyMiwgMHgzOSwgMHg0MywgMHg0NSwgMHgwMSwgMHhEQiwgMHhFQiwgIC8vIC4iOUNFLi4u
CiAgICAgICAgICAgICAgICAvKiAwMEI4ICovICAweDQ0LCAweDM0LCAweEFDLCAweEUzLCAw
eDY0LCAweDkyLCAweEUwLCAweDUwLCAgLy8gRDQuLmQuLlAKICAgICAgICAgICAgICAgIC8q
IDAwQzAgKi8gIDB4QTMsIDB4QjQsIDB4NDQsIDB4MDEsIDB4RTYsIDB4NDcsIDB4QTYsIDB4
ODksICAvLyAuLkQuLkcuLgogICAgICAgICAgICAgICAgLyogMDBDOCAqLyAgMHgxQywgMHg1
QiwgMHhEMywgMHgyMywgMHgxNiwgMHgyNCwgMHg5MywgMHgzNiwgIC8vIC5bLiMuJC42CiAg
ICAgICAgICAgICAgICAvKiAwMEQwICovICAweDE0LCAweEQ0LCAweEQwLCAweDNELCAweEFE
LCAweDkzLCAweEYyLCAweDQ0LCAgLy8gLi4uPS4uLkQKICAgICAgICAgICAgICAgIC8qIDAw
RDggKi8gIDB4MjMsIDB4MUUsIDB4OTQsIDB4NjEsIDB4MTIsIDB4NzgsIDB4MTQsIDB4MEMs
ICAvLyAjLi5hLnguLgogICAgICAgICAgICAgICAgLyogMDBFMCAqLyAgMHg4RCwgMHgxMywg
MHg5NCwgMHgwNSwgMHgyMSwgMHgwNywgMHgwMywgMHg0NSwgIC8vIC4uLi4hLi5FCiAgICAg
ICAgICAgICAgICAvKiAwMEU4ICovICAweDAxLCAweDlFLCAweDg0LCAweEU3LCAweDU4LCAw
eEJDLCAweDAwLCAweEUxLCAgLy8gLi4uLlguLi4KICAgICAgICAgICAgICAgIC8qIDAwRjAg
Ki8gIDB4MzMsIDB4MjYsIDB4NDcsIDB4ODEsIDB4MTgsIDB4MDksIDB4N0MsIDB4MjQsICAv
LyAzJkcuLi58JAogICAgICAgICAgICAgICAgLyogMDBGOCAqLyAgMHhGMCwgMHg2OCwgMHg4
RSwgMHgxOSwgMHgwQiwgMHgxNCwgMHgyRSwgMHhFMCwgIC8vIC5oLi4uLi4uCiAgICAgICAg
ICAgICAgICAvKiAwMTAwICovICAweEY5LCAweDFDLCAweDQzLCAweEU0LCAweEI4LCAweDg3
LCAweDFBLCAweEUzLCAgLy8gLi5DLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAxMDggKi8g
IDB4MjgsIDB4MjIsIDB4MjcsIDB4NzgsIDB4MDcsIDB4ODgsIDB4NjIsIDB4QjQsICAvLyAo
Iid4Li5iLgogICAgICAgICAgICAgICAgLyogMDExMCAqLyAgMHg4MiwgMHhFNiwgMHgyRCwg
MHhDNCwgMHg2MCwgMHhEMSwgMHgwQywgMHhENiwgIC8vIC4uLS5gLi4uCiAgICAgICAgICAg
ICAgICAvKiAwMTE4ICovICAweDMzLCAweDM4LCAweDE5LCAweDc0LCAweDgyLCAweEZGLCAw
eEZGLCAweDExLCAgLy8gMzgudC4uLi4KICAgICAgICAgICAgICAgIC8qIDAxMjAgKi8gIDB4
NzAsIDB4MTksIDB4MTAsIDB4RjIsIDB4MjgsIDB4QzAsIDB4RUEsIDB4QTAsICAvLyBwLi4u
KC4uLgogICAgICAgICAgICAgICAgLyogMDEyOCAqLyAgMHgzNCwgMHgwRCwgMHgxMywgMHg3
NCwgMHgyRiwgMHhDMCwgMHg5QSwgMHgwMCwgIC8vIDQuLnQvLi4uCiAgICAgICAgICAgICAg
ICAvKiAwMTMwICovICAweDYzLCAweDAyLCAweDM0LCAweDYyLCAweDQ4LCAweDk5LCAweDAw
LCAweDY3LCAgLy8gYy40YkguLmcKICAgICAgICAgICAgICAgIC8qIDAxMzggKi8gIDB4Rjcs
IDB4MDUsIDB4Q0QsIDB4QTgsIDB4MkQsIDB4MDEsIDB4RTYsIDB4MDQsICAvLyAuLi4uLS4u
LgogICAgICAgICAgICAgICAgLyogMDE0MCAqLyAgMHg2OCwgMHgxMywgMHhFMCwgMHgwRCwg
MHg0MSwgMHgyOCwgMHhFNywgMHgxOSwgIC8vIGguLi5BKC4uCiAgICAgICAgICAgICAgICAv
KiAwMTQ4ICovICAweEU1LCAweDU4LCAweDRFLCAweDMxLCAweENBLCAweEMzLCAweDQwLCAw
eENDLCAgLy8gLlhOMS4uQC4KICAgICAgICAgICAgICAgIC8qIDAxNTAgKi8gIDB4OTcsIDB4
ODEsIDB4QTAsIDB4NTEsIDB4NjIsIDB4QzQsIDB4M0MsIDB4OTcsICAvLyAuLi5RYi48Lgog
ICAgICAgICAgICAgICAgLyogMDE1OCAqLyAgMHhCOCwgMHg4NiwgMHg4RCwgMHgxMCwgMHgy
MywgMHhFNCwgMHgyOSwgMHgwNCwgIC8vIC4uLi4jLikuCiAgICAgICAgICAgICAgICAvKiAw
MTYwICovICAweDhBLCAweERCLCAweEZFLCAweDIwLCAweEM4LCAweEEwLCAweDcxLCAweEEz
LCAgLy8gLi4uIC4ucS4KICAgICAgICAgICAgICAgIC8qIDAxNjggKi8gIDB4RjcsIDB4Njks
IDB4RTEsIDB4QUMsIDB4NEUsIDB4RTAsIDB4RTgsIDB4OUYsICAvLyAuaS4uTi4uLgogICAg
ICAgICAgICAgICAgLyogMDE3MCAqLyAgMHgxNCwgMHg0QywgMHhFMCwgMHgyOSwgMHgxRiwg
MHhEOCwgMHhCMywgMHhDMSwgIC8vIC5MLikuLi4uCiAgICAgICAgICAgICAgICAvKiAwMTc4
ICovICAweDA5LCAweDFDLCAweDZCLCAweEQ0LCAweDE4LCAweEE3LCAweDkyLCAweEMwLCAg
Ly8gLi5rLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAxODAgKi8gIDB4QjEsIDB4MUYsIDB4
MTAsIDB4RDIsIDB4MDAsIDB4QTIsIDB4NDgsIDB4RjAsICAvLyAuLi4uLi5ILgogICAgICAg
ICAgICAgICAgLyogMDE4OCAqLyAgMHhBOCwgMHhEMywgMHg4MiwgMHhDRiwgMHgwNSwgMHgx
RSwgMHhEQSwgMHg0MSwgIC8vIC4uLi4uLi5BCiAgICAgICAgICAgICAgICAvKiAwMTkwICov
ICAweDdCLCAweDhFLCAweDI3LCAweDEwLCAweEU0LCAweDEwLCAweDhFLCAweEUwLCAgLy8g
ey4nLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAxOTggKi8gIDB4ODksIDB4RTEsIDB4ODEs
IDB4QzAsIDB4NjMsIDB4NjAsIDB4MzcsIDB4MDUsICAvLyAuLi4uY2A3LgogICAgICAgICAg
ICAgICAgLyogMDFBMCAqLyAgMHgxRiwgMHgwMSwgMHg3QywgMHg0MiwgMHhDMCwgMHhCQiwg
MHgwNiwgMHhENCwgIC8vIC4ufEIuLi4uCiAgICAgICAgICAgICAgICAvKiAwMUE4ICovICAw
eEQ1LCAweEUwLCAweEMxLCAweDgwLCAweDBELCAweDNBLCAweDFDLCAweDY2LCAgLy8gLi4u
Li46LmYKICAgICAgICAgICAgICAgIC8qIDAxQjAgKi8gIDB4QkMsIDB4MUUsIDB4N0UsIDB4
QjgsIDB4MTMsIDB4MzgsIDB4QzksIDB4MDcsICAvLyAuLn4uLjguLgogICAgICAgICAgICAg
ICAgLyogMDFCOCAqLyAgMHgwQywgMHg3RSwgMHhEOCwgMHhGMCwgMHhFMCwgMHg3MCwgMHhG
MywgMHgzQywgIC8vIC5+Li4ucC48CiAgICAgICAgICAgICAgICAvKiAwMUMwICovICAweDk5
LCAweDIzLCAweDJCLCAweDU1LCAweDgwLCAweEQ5LCAweEMzLCAweDgxLCAgLy8gLiMrVS4u
Li4KICAgICAgICAgICAgICAgIC8qIDAxQzggKi8gIDB4MEUsIDB4MTIsIDB4M0UsIDB4NkQs
IDB4QjAsIDB4MzMsIDB4MDAsIDB4NDYsICAvLyAuLj5tLjMuRgogICAgICAgICAgICAgICAg
LyogMDFEMCAqLyAgMHhGRSwgMHgyMCwgMHg1MCwgMHgyMywgMHgzMywgMHhCNCwgMHhDNywg
MHhGRCwgIC8vIC4gUCMzLi4uCiAgICAgICAgICAgICAgICAvKiAwMUQ4ICovICAweEQyLCAw
eDYxLCAweEM4LCAweEU3LCAweDg0LCAweEMzLCAweDYyLCAweDYyLCAgLy8gLmEuLi4uYmIK
ICAgICAgICAgICAgICAgIC8qIDAxRTAgKi8gIDB4NEYsIDB4MUQsIDB4NzQsIDB4M0MsIDB4
RTAsIDB4QkYsIDB4OEMsIDB4M0MsICAvLyBPLnQ8Li4uPAogICAgICAgICAgICAgICAgLyog
MDFFOCAqLyAgMHg2NywgMHg3OCwgMHhGQSwgMHg5RSwgMHhBRiwgMHgwOSwgMHg4NiwgMHgx
RCwgIC8vIGd4Li4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMUYwICovICAweDM4LCAweDdB
LCAweDIwLCAweDg2LCAweDdFLCAweEQ4LCAweDM4LCAweDhDLCAgLy8gOHogLn4uOC4KICAg
ICAgICAgICAgICAgIC8qIDAxRjggKi8gIDB4RDMsIDB4RjAsIDB4RkQsIDB4QzMsIDB4RTcs
IDB4MDUsIDB4MTgsIDB4QTcsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDIw
MCAqLyAgMHgwMCwgMHg4RiwgMHhEQywgMHhGRiwgMHhGRiwgMHg0MywgMHg4QSwgMHg0Riwg
IC8vIC4uLi4uQy5PCiAgICAgICAgICAgICAgICAvKiAwMjA4ICovICAweDEzLCAweEZDLCAw
eDY4LCAweEUxLCAweEQzLCAweDA0LCAweEJCLCAweDFFLCAgLy8gLi5oLi4uLi4KICAgICAg
ICAgICAgICAgIC8qIDAyMTAgKi8gIDB4OUMsIDB4QzYsIDB4NzMsIDB4ODAsIDB4ODcsIDB4
NzMsIDB4NTYsIDB4M0UsICAvLyAuLnMuLnNWPgogICAgICAgICAgICAgICAgLyogMDIxOCAq
LyAgMHg0QywgMHg4MCwgMHhFRCwgMHg3RSwgMHhDMiwgMHg0NiwgMHhGNCwgMHg2RSwgIC8v
IEwuLn4uRi5uCiAgICAgICAgICAgICAgICAvKiAwMjIwICovICAweEUxLCAweEQxLCAweDYw
LCAweDRGLCAweDAxLCAweEUwLCAweDNCLCAweEJGLCAgLy8gLi5gTy4uOy4KICAgICAgICAg
ICAgICAgIC8qIDAyMjggKi8gIDB4ODAsIDB4RjMsIDB4QUUsIDB4QzEsIDB4MDYsIDB4MEIs
IDB4RTMsIDB4RkMsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDIzMCAqLyAg
MHgwMiwgMHgzQywgMHg0RSwgMHgwOCwgMHgxRSwgMHgwMiwgMHgzRiwgMHg0OCwgIC8vIC48
Ti4uLj9ICiAgICAgICAgICAgICAgICAvKiAwMjM4ICovICAweDc4LCAweDA4LCAweDdDLCAw
eDAwLCAweENGLCAweDFGLCAweDY3LCAweDY4LCAgLy8geC58Li4uZ2gKICAgICAgICAgICAg
ICAgIC8qIDAyNDAgKi8gIDB4QTUsIDB4RjMsIDB4NDIsIDB4MEUsIDB4MEMsIDB4REUsIDB4
MzksIDB4MDcsICAvLyAuLkIuLi45LgogICAgICAgICAgICAgICAgLyogMDI0OCAqLyAgMHhD
NiwgMHgyOCwgMHg3OCwgMHg5RSwgMHhDNywgMHg4NiwgMHgwOSwgMHgxNCwgIC8vIC4oeC4u
Li4uCiAgICAgICAgICAgICAgICAvKiAwMjUwICovICAweEU0LCAweDM1LCAweEEwLCAweDUw
LCAweENGLCAweDAyLCAweDBBLCAweEUzLCAgLy8gLjUuUC4uLi4KICAgICAgICAgICAgICAg
IC8qIDAyNTggKi8gIDB4NTMsIDB4MEQsIDB4RjAsIDB4RkEsIDB4RkYsIDB4OUYsIDB4NkEs
IDB4ODAsICAvLyBTLi4uLi5qLgogICAgICAgICAgICAgICAgLyogMDI2MCAqLyAgMHhDQiwg
MHhFMSwgMHgwMCwgMHg3NywgMHg3MiwgMHg4MCwgMHg3QiwgMHgyRiwgIC8vIC4uLndyLnsv
CiAgICAgICAgICAgICAgICAvKiAwMjY4ICovICAweDYwLCAweDE3LCAweDg3LCAweEU3LCAw
eDFBLCAweEI4LCAweEEyLCAweENGLCAgLy8gYC4uLi4uLi4KICAgICAgICAgICAgICAgIC8q
IDAyNzAgKi8gIDB4MzUsIDB4NTAsIDB4RUYsIDB4MkQsIDB4QzUsIDB4OEQsIDB4NTEsIDB4
RDcsICAvLyA1UC4tLi5RLgogICAgICAgICAgICAgICAgLyogMDI3OCAqLyAgMHg5OCwgMHgy
MCwgMHg4RiwgMHgwMiwgMHg4RiwgMHgzNCwgMHg1MSwgMHg5RSwgIC8vIC4gLi4uNFEuCiAg
ICAgICAgICAgICAgICAvKiAwMjgwICovICAweDY3LCAweERFLCAweDY1LCAweDIyLCAweDND
LCAweERCLCAweEY4LCAweDVBLCAgLy8gZy5lIjwuLloKICAgICAgICAgICAgICAgIC8qIDAy
ODggKi8gIDB4RTMsIDB4MjksIDB4QzQsIDB4RjEsIDB4QjUsIDB4QzYsIDB4ODgsIDB4MkYs
ICAvLyAuKS4uLi4uLwogICAgICAgICAgICAgICAgLyogMDI5MCAqLyAgMHgxMywgMHhFRiwg
MHgzNiwgMHhDNiwgMHgzRCwgMHhCOCwgMHhDNywgMHg5QSwgIC8vIC4uNi49Li4uCiAgICAg
ICAgICAgICAgICAvKiAwMjk4ICovICAweDg3LCAweDFDLCAweDgzLCAweDFDLCAweDRELCAw
eDg0LCAweDE3LCAweDgzLCAgLy8gLi4uLk0uLi4KICAgICAgICAgICAgICAgIC8qIDAyQTAg
Ki8gIDB4ODAsIDB4OEYsIDB4MzcsIDB4M0UsIDB4RDYsIDB4ODAsIDB4NTcsIDB4Q0MsICAv
LyAuLjc+Li5XLgogICAgICAgICAgICAgICAgLyogMDJBOCAqLyAgMHgwQiwgMHg0NSwgMHgx
NiwgMHg4RSwgMHgzNSwgMHg4MCwgMHhDNiwgMHhGRiwgIC8vIC5FLi41Li4uCiAgICAgICAg
ICAgICAgICAvKiAwMkIwICovICAweEZGLCAweEIxLCAweDA2LCAweEI4LCAweDYxLCAweDNE
LCAweEEwLCAweDgwLCAgLy8gLi4uLmE9Li4KICAgICAgICAgICAgICAgIC8qIDAyQjggKi8g
IDB4RUYsIDB4QzgsIDB4QzAsIDB4NkUsIDB4MjgsIDB4RjAsIDB4NEUsIDB4MjgsICAvLyAu
Li5uKC5OKAogICAgICAgICAgICAgICAgLyogMDJDMCAqLyAgMHg4MCwgMHg5RiwgMHhDNCwg
MHgyRiwgMHgwMCwgMHgxRCwgMHgzOSwgMHg5QywgIC8vIC4uLi8uLjkuCiAgICAgICAgICAg
ICAgICAvKiAwMkM4ICovICAweDE2LCAweDQ0LCAweDM2LCAweERFLCAweDAwLCAweDNFLCAw
eDA1LCAweDUwLCAgLy8gLkQ2Li4+LlAKICAgICAgICAgICAgICAgIC8qIDAyRDAgKi8gIDB4
MzUsIDB4NDAsIDB4OUEsIDB4MjYsIDB4NkMsIDB4ODIsIDB4RTksIDB4QzksICAvLyA1QC4m
bC4uLgogICAgICAgICAgICAgICAgLyogMDJEOCAqLyAgMHgwNSwgMHhFRiwgMHgyMywgMHg4
MSwgMHg3MywgMHg5MywgMHgyOCwgMHhGOSwgIC8vIC4uIy5zLiguCiAgICAgICAgICAgICAg
ICAvKiAwMkUwICovICAweEIwLCAweDI4LCAweDlDLCAweEIzLCAweDFFLCAweDQ0LCAweDI4
LCAweDg4LCAgLy8gLiguLi5EKC4KICAgICAgICAgICAgICAgIC8qIDAyRTggKi8gIDB4MDEs
IDB4MUQsIDB4RTQsIDB4MzgsIDB4ODEsIDB4M0UsIDB4QTMsIDB4RjgsICAvLyAuLi44Lj4u
LgogICAgICAgICAgICAgICAgLyogMDJGMCAqLyAgMHgyMCwgMHg3MiwgMHhBMiwgMHg0Riwg
MHg4NCwgMHgxRSwgMHg5NCwgMHg4NywgIC8vICByLk8uLi4uCiAgICAgICAgICAgICAgICAv
KiAwMkY4ICovICAweEYxLCAweDhFLCAweEMyLCAweDRFLCAweDIwLCAweDNFLCAweDRDLCAw
eDc4LCAgLy8gLi4uTiA+THgKICAgICAgICAgICAgICAgIC8qIDAzMDAgKi8gIDB4RUMsIDB4
M0UsIDB4MjYsIDB4RjAsIDB4N0YsIDB4OEMsIDB4NjcsIDB4NjMsICAvLyAuPiYuLi5nYwog
ICAgICAgICAgICAgICAgLyogMDMwOCAqLyAgMHg3NCwgMHhBQiwgMHhDMSwgMHhEMCwgMHhG
RiwgMHhGRiwgMHg5QywgMHhDMiwgIC8vIHQuLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAw
MzEwICovICAweEMxLCAweDdDLCAweDEwLCAweEUxLCAweDA0LCAweDc1LCAweERELCAweDI0
LCAgLy8gLnwuLi51LiQKICAgICAgICAgICAgICAgIC8qIDAzMTggKi8gIDB4NDAsIDB4QTYs
IDB4RUYsIDB4QTgsIDB4MDAsIDB4MEEsIDB4MjAsIDB4REYsICAvLyBALi4uLi4gLgogICAg
ICAgICAgICAgICAgLyogMDMyMCAqLyAgMHgwQiwgMHg3QywgMHgwRSwgMHg3OCwgMHgzNiwg
MHg2MCwgMHg2MywgMHg3OCwgIC8vIC58Lng2YGN4CiAgICAgICAgICAgICAgICAvKiAwMzI4
ICovICAweDE0LCAweDMwLCAweDlBLCAweEQxLCAweDc5LCAweEY4LCAweEM5LCAweEEyLCAg
Ly8gLjAuLnkuLi4KICAgICAgICAgICAgICAgIC8qIDAzMzAgKi8gIDB4RTIsIDB4NEUsIDB4
OTYsIDB4ODIsIDB4NzgsIDB4QjIsIDB4OEUsIDB4MzIsICAvLyAuTi4ueC4uMgogICAgICAg
ICAgICAgICAgLyogMDMzOCAqLyAgMHg1OSwgMHhGNCwgMHg0QywgMHg3QywgMHhBRiwgMHhG
MCwgMHg4QywgMHhERSwgIC8vIFkuTHwuLi4uCiAgICAgICAgICAgICAgICAvKiAwMzQwICov
ICAweEI0LCAweDNDLCAweDQ3LCAweDRGLCAweEQ4LCAweEY3LCAweDEwLCAweDU4LCAgLy8g
LjxHTy4uLlgKICAgICAgICAgICAgICAgIC8qIDAzNDggKi8gIDB4ODcsIDB4ODEsIDB4OTAs
IDB4MEYsIDB4MDYsIDB4OUUsIDB4ODYsIDB4RTEsICAvLyAuLi4uLi4uLgogICAgICAgICAg
ICAgICAgLyogMDM1MCAqLyAgMHgzQywgMHg1OSwgMHgwRSwgMHhFNywgMHhDOSwgMHhGMiwg
MHhCMSwgMHhGOCwgIC8vIDxZLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMzU4ICovICAw
eDFBLCAweDAyLCAweDNFLCAweDgxLCAweEIzLCAweDA1LCAweDM5LCAweDNDLCAgLy8gLi4+
Li4uOTwKICAgICAgICAgICAgICAgIC8qIDAzNjAgKi8gIDB4MjYsIDB4RDYsIDB4QTgsIDB4
RTgsIDB4NTUsIDB4QzgsIDB4QzMsIDB4RTMsICAvLyAmLi4uVS4uLgogICAgICAgICAgICAg
ICAgLyogMDM2OCAqLyAgMHg5NywgMHgwMywgMHhDRiwgMHhFNywgMHgxOSwgMHhFMSwgMHgy
OCwgMHg5RiwgIC8vIC4uLi4uLiguCiAgICAgICAgICAgICAgICAvKiAwMzcwICovICAweDI0
LCAweDcwLCAweDE4LCAweENGLCAweDI0LCAweDFFLCAweEEyLCAweDZGLCAgLy8gJHAuLiQu
Lm8KICAgICAgICAgICAgICAgIC8qIDAzNzggKi8gIDB4NDUsIDB4QjAsIDB4MjYsIDB4NzIs
IDB4RDIsIDB4QkUsIDB4MkQsIDB4OUMsICAvLyBFLiZyLi4tLgogICAgICAgICAgICAgICAg
LyogMDM4MCAqLyAgMHg2QywgMHhEMCwgMHhENywgMHgzMywgMHhDQywgMHhBRCwgMHgwOCwg
MHhGNiwgIC8vIGwuLjMuLi4uCiAgICAgICAgICAgICAgICAvKiAwMzg4ICovICAweEZGLCAw
eEZGLCAweDU2LCAweDA0LCAweEU3LCAweDgyLCAweDA2LCAweDMzLCAgLy8gLi5WLi4uLjMK
ICAgICAgICAgICAgICAgIC8qIDAzOTAgKi8gIDB4RDMsIDB4QkQsIDB4MEEsIDB4MTUsIDB4
RUIsIDB4NUUsIDB4MDUsIDB4ODgsICAvLyAuLi4uLl4uLgogICAgICAgICAgICAgICAgLyog
MDM5OCAqLyAgMHgxRCwgMHhENiwgMHg2QiwgMHg4RiwgMHgwRiwgMHg1NiwgMHg3MCwgMHhF
RiwgIC8vIC4uay4uVnAuCiAgICAgICAgICAgICAgICAvKiAwM0EwICovICAweDU1LCAweDcw
LCAweDJGLCAweDU1LCAweENGLCAweDBBLCAweEM3LCAweDE4LCAgLy8gVXAvVS4uLi4KICAg
ICAgICAgICAgICAgIC8qIDAzQTggKi8gIDB4RkUsIDB4NjEsIDB4MkEsIDB4QzYsIDB4Mjks
IDB4QkQsIDB4NzYsIDB4MUEsICAvLyAuYSouKS52LgogICAgICAgICAgICAgICAgLyogMDNC
MCAqLyAgMHgyOCwgMHg0QywgMHg5NCwgMHg3OCwgMHhFRiwgMHg1NSwgMHgxRSwgMHhFMywg
IC8vIChMLnguVS4uCiAgICAgICAgICAgICAgICAvKiAwM0I4ICovICAweDdCLCAweDE1LCAw
eEJCLCAweDQyLCAweDg1LCAweDg5LCAweEY1LCAweDcyLCAgLy8gey4uQi4uLnIKICAgICAg
ICAgICAgICAgIC8qIDAzQzAgKi8gIDB4NjUsIDB4RDQsIDB4RDcsIDB4ODksIDB4NzAsIDB4
ODEsIDB4ODIsIDB4NDQsICAvLyBlLi4ucC4uRAogICAgICAgICAgICAgICAgLyogMDNDOCAq
LyAgMHg3QSwgMHhCNSwgMHg4QSwgMHgxMiwgMHgzOSwgMHhCRSwgMHgyMSwgMHhERiwgIC8v
IHouLi45LiEuCiAgICAgICAgICAgICAgICAvKiAwM0QwICovICAweEFCLCAweEMwLCAweDJC
LCAweEU3LCAweDVFLCAweDA1LCAweEIyLCAweEZGLCAgLy8gLi4rLl4uLi4KICAgICAgICAg
ICAgICAgIC8qIDAzRDggKi8gIDB4RkYsIDB4QkQsIDB4MEEsIDB4MzAsIDB4OEYsIDB4RjYs
IDB4NUUsIDB4MDUsICAvLyAuLi4wLi5eLgogICAgICAgICAgICAgICAgLyogMDNFMCAqLyAg
MHhDNiwgMHg2QiwgMHgwMywgMHhCQiwgMHgyMSwgMHhDMSwgMHgwMiwgMHg3QSwgIC8vIC5r
Li4hLi56CiAgICAgICAgICAgICAgICAvKiAwM0U4ICovICAweEIxLCAweDAyLCAweDBDLCAw
eDY1LCAweEJFLCAweDU4LCAweEQxLCAweEJDLCAgLy8gLi4uZS5YLi4KICAgICAgICAgICAg
ICAgIC8qIDAzRjAgKi8gIDB4MTcsIDB4MkIsIDB4QzQsIDB4RkYsIDB4RkYsIDB4NUMsIDB4
QzIsIDB4RjQsICAvLyAuKy4uLlwuLgogICAgICAgICAgICAgICAgLyogMDNGOCAqLyAgMHg1
QywgMHhBQywgMHhDOCwgMHgzQywgMHhFMSwgMHhERiwgMHhBQywgMHgwMCwgIC8vIFwuLjwu
Li4uCiAgICAgICAgICAgICAgICAvKiAwNDAwICovICAweDRFLCAweEZGLCAweEZGLCAweDZG
LCAweDU2LCAweDgwLCAweEIxLCAweDdCLCAgLy8gTi4ub1YuLnsKICAgICAgICAgICAgICAg
IC8qIDA0MDggKi8gIDB4MTEsIDB4RTYsIDB4NjgsIDB4MDUsIDB4MkYsIDB4RTUsIDB4Q0Qs
IDB4OEEsICAvLyAuLmguLy4uLgogICAgICAgICAgICAgICAgLyogMDQxMCAqLyAgMHhDNiwg
MHg1OSwgMHg4NiwgMHgwMiwgMHgyRSwgMHg4OCwgMHhDMiwgMHhGOCwgIC8vIC5ZLi4uLi4u
CiAgICAgICAgICAgICAgICAvKiAwNDE4ICovICAweDY2LCAweDA1LCAweDM4LCAweEJBLCAw
eEFFLCAweEUwLCAweDg2LCAweDBDLCAgLy8gZi44Li4uLi4KICAgICAgICAgICAgICAgIC8q
IDA0MjAgKi8gIDB4MTcsIDB4MkMsIDB4NEEsIDB4MzAsIDB4MUYsIDB4NDIsIDB4M0MsIDB4
OUQsICAvLyAuLEowLkI8LgogICAgICAgICAgICAgICAgLyogMDQyOCAqLyAgMHgyMywgMHg3
RSwgMHg0OCwgMHg3OCwgMHgwOSwgMHg3OCwgMHhDQywgMHhGMSwgIC8vICN+SHgueC4uCiAg
ICAgICAgICAgICAgICAvKiAwNDMwICovICAweDgwLCAweDFGLCAweDA4LCAweDdDLCAweEI5
LCAweDAyLCAweEQzLCAweEZGLCAgLy8gLi4ufC4uLi4KICAgICAgICAgICAgICAgIC8qIDA0
MzggKi8gIDB4OUYsIDB4QzAsIDB4MjcsIDB4REYsIDB4QjMsIDB4N0MsIDB4OUIsIDB4N0Es
ICAvLyAuLicuLnwuegogICAgICAgICAgICAgICAgLyogMDQ0MCAqLyAgMHhFRiwgMHhFNSwg
MHgwNywgMHhBQywgMHhGNywgMHgyQSwgMHgxRiwgMHg3RSwgIC8vIC4uLi4uKi5+CiAgICAg
ICAgICAgICAgICAvKiAwNDQ4ICovICAweDYzLCAweEJELCAweDMzLCAweEJDLCAweDVDLCAw
eDc5LCAweDI0LCAweDUxLCAgLy8gYy4zLlx5JFEKICAgICAgICAgICAgICAgIC8qIDA0NTAg
Ki8gIDB4NEUsIDB4MjIsIDB4OTQsIDB4RUYsIDB4NTYsIDB4RUYsIDB4NTUsIDB4NDYsICAv
LyBOIi4uVi5VRgogICAgICAgICAgICAgICAgLyogMDQ1OCAqLyAgMHg4OSwgMHhGOCwgMHg0
MiwgMHhFQywgMHg1MywgMHhCMCwgMHhBMSwgMHg4RCwgIC8vIC4uQi5TLi4uCiAgICAgICAg
ICAgICAgICAvKiAwNDYwICovICAweEYyLCAweDU0LCAweDExLCAweERELCAweDc4LCAweDJG
LCAweDU3LCAweEUwLCAgLy8gLlQuLngvVy4KICAgICAgICAgICAgICAgIC8qIDA0NjggKi8g
IDB4OTUsIDB4NzQsIDB4QjksIDB4MDIsIDB4NjgsIDB4MzIsIDB4RkMsIDB4OTcsICAvLyAu
dC4uaDIuLgogICAgICAgICAgICAgICAgLyogMDQ3MCAqLyAgMHgyQiwgMHhGMCwgMHhERCwg
MHgxQywgMHhCMCwgMHhENywgMHgyNCwgMHgzOCwgIC8vICsuLi4uLiQ4CiAgICAgICAgICAg
ICAgICAvKiAwNDc4ICovICAweEZGLCAweEZGLCAweDZCLCAweDEyLCAweEJGLCAweDVFLCAw
eDAxLCAweDdFLCAgLy8gLi5rLi5eLn4KICAgICAgICAgICAgICAgIC8qIDA0ODAgKi8gIDB4
QjIsIDB4NUYsIDB4QUYsIDB4NjgsIDB4RUUsIDB4RUIsIDB4MTUsIDB4NEEsICAvLyAuXy5o
Li4uSgogICAgICAgICAgICAgICAgLyogMDQ4OCAqLyAgMHgxNCwgMHg4NCwgMHgxNCwgMHgw
MSwgMHg2OSwgMHhBNiwgMHhFMCwgMHhCOSwgIC8vIC4uLi5pLi4uCiAgICAgICAgICAgICAg
ICAvKiAwNDkwICovICAweDVGLCAweDAxLCAweDlDLCAweEY4LCAweEZGLCAweERGLCAweEFG
LCAweDAwLCAgLy8gXy4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA0OTggKi8gIDB4Q0Is
IDB4RTEsIDB4RUUsIDB4NTcsIDB4NDAsIDB4RUYsIDB4NzYsIDB4MDQsICAvLyAuLi5XQC52
LgogICAgICAgICAgICAgICAgLyogMDRBMCAqLyAgMHg1RSwgMHg5NCwgMHhCNywgMHgyMywg
MHhFQywgMHgxNSwgMHgwQiwgMHg5RiwgIC8vIF4uLiMuLi4uCiAgICAgICAgICAgICAgICAv
KiAwNEE4ICovICAweEYxLCAweDhBLCAweDQ1LCAweEMzLCAweEFDLCAweDQ0LCAweEYxLCAw
eEQ2LCAgLy8gLi5FLi5ELi4KICAgICAgICAgICAgICAgIC8qIDA0QjAgKi8gIDB4NDQsIDB4
NjEsIDB4N0MsIDB4QzUsIDB4MDIsIDB4MjYsIDB4RkYsIDB4RkYsICAvLyBEYXwuLiYuLgog
ICAgICAgICAgICAgICAgLyogMDRCOCAqLyAgMHgyQiwgMHgxNiwgMHgzMCwgMHgzQiwgMHg4
OCwgMHhFMiwgMHg0NiwgMHgwRCwgIC8vICsuMDsuLkYuCiAgICAgICAgICAgICAgICAvKiAw
NEMwICovICAweEY3LCAweEUyLCAweEU0LCAweDVCLCAweDhGLCAweEU3LCAweDFCLCAweEQx
LCAgLy8gLi4uWy4uLi4KICAgICAgICAgICAgICAgIC8qIDA0QzggKi8gIDB4NzcsIDB4MTgs
IDB4Q0MsIDB4MDksIDB4MEIsIDB4QzYsIDB4MEQsIDB4MEIsICAvLyB3Li4uLi4uLgogICAg
ICAgICAgICAgICAgLyogMDREMCAqLyAgMHhGRSwgMHg5MCwgMHgxRSwgMHg4NiwgMHg3RCwg
MHg5MiwgMHg3OCwgMHhDNywgIC8vIC4uLi59LnguCiAgICAgICAgICAgICAgICAvKiAwNEQ4
ICovICAweEYyLCAweEQxLCAweENBLCAweDIwLCAweDZGLCAweEMwLCAweDRGLCAweDU2LCAg
Ly8gLi4uIG8uT1YKICAgICAgICAgICAgICAgIC8qIDA0RTAgKi8gIDB4MEYsIDB4NTYsIDB4
NTEsIDB4OEMsIDB4MTAsIDB4RjAsIDB4NzgsIDB4REUsICAvLyAuVlEuLi54LgogICAgICAg
ICAgICAgICAgLyogMDRFOCAqLyAgMHg4NSwgMHg3RCwgMHhCNCwgMHg3QSwgMHhEMywgMHgz
MiwgMHg0QSwgMHhFQywgIC8vIC59LnouMkouCiAgICAgICAgICAgICAgICAvKiAwNEYwICov
ICAweDU4LCAweEJFLCAweDUwLCAweDNELCAweDZCLCAweEY5LCAweDlBLCAweDY1LCAgLy8g
WC5QPWsuLmUKICAgICAgICAgICAgICAgIC8qIDA0RjggKi8gIDB4ODgsIDB4QjgsIDB4MEYs
IDB4QzQsIDB4QkUsIDB4NjEsIDB4MDEsIDB4QjYsICAvLyAuLi4uLmEuLgogICAgICAgICAg
ICAgICAgLyogMDUwMCAqLyAgMHhGRiwgMHhGRiwgMHgzNywgMHgyQywgMHhDMCwgMHhEMSwg
MHhDNSwgMHg4MSwgIC8vIC4uNywuLi4uCiAgICAgICAgICAgICAgICAvKiAwNTA4ICovICAw
eDFGLCAweDFDLCAweEIwLCAweDM3LCAweDJDLCAweEMwLCAweEU3LCAweDRDLCAgLy8gLi4u
NywuLkwKICAgICAgICAgICAgICAgIC8qIDA1MTAgKi8gIDB4QzEsIDB4NzMsIDB4QzMsIDB4
MDIsIDB4MzYsIDB4RkYsIDB4RkYsIDB4MUIsICAvLyAucy4uNi4uLgogICAgICAgICAgICAg
ICAgLyogMDUxOCAqLyAgMHgxNiwgMHhDMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHgwRCwgMHgw
QiwgMHgzOCwgIC8vIC4uLi4uLi44CiAgICAgICAgICAgICAgICAvKiAwNTIwICovICAweERD
LCAweEFFLCAweEIwLCAweEI3LCAweDJDLCAweEVDLCAweEVELCAweDg1LCAgLy8gLi4uLiwu
Li4KICAgICAgICAgICAgICAgIC8qIDA1MjggKi8gIDB4QUMsIDB4ODIsIDB4ODYsIDB4NUEs
IDB4ODksIDB4ODIsIDB4N0YsIDB4QUYsICAvLyAuLi5aLi4uLgogICAgICAgICAgICAgICAg
LyogMDUzMCAqLyAgMHgwQywgMHg0MywgMHg2RiwgMHg1OCwgMHg4MCwgMHhBMywgMHg3MSwg
MHg3QiwgIC8vIC5Db1guLnF7CiAgICAgICAgICAgICAgICAvKiAwNTM4ICovICAweEQ0LCAw
eEUwLCAweDM4LCAweDFCLCAweDNDLCAweDQ5LCAweDYwLCAweENFLCAgLy8gLi44LjxJYC4K
ICAgICAgICAgICAgICAgIC8qIDA1NDAgKi8gIDB4RDUsIDB4QjgsIDB4RDksIDB4MUMsIDB4
NUMsIDB4RTAsIDB4MDgsIDB4QkQsICAvLyAuLi4uXC4uLgogICAgICAgICAgICAgICAgLyog
MDU0OCAqLyAgMHg4MywgMHg2QSwgMHhFRSwgMHhFQywgMHg5MiwgMHgwMiwgMHhFMywgMHg5
NiwgIC8vIC5qLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNTUwICovICAweDA1LCAweEY3
LCAweDUyLCAweEY1LCAweEQwLCAweDEwLCAweEU1LCAweDIwLCAgLy8gLi5SLi4uLiAKICAg
ICAgICAgICAgICAgIC8qIDA1NTggKi8gIDB4NUUsIDB4ODUsIDB4MUYsIDB4QUMsIDB4MUUs
IDB4QTUsIDB4OEUsIDB4RUMsICAvLyBeLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDU2
MCAqLyAgMHhGMSwgMHhFQSwgMHg2OSwgMHhEOCwgMHhDNywgMHgyQywgMHhERiwgMHhCMiwg
IC8vIC4uaS4uLC4uCiAgICAgICAgICAgICAgICAvKiAwNTY4ICovICAweDBDLCAweDE1LCAw
eEUxLCAweDJELCAweDhCLCAweDlELCAweDIxLCAweEUyLCAgLy8gLi4uLS4uIS4KICAgICAg
ICAgICAgICAgIC8qIDA1NzAgKi8gIDB4QzUsIDB4OEEsIDB4MTIsIDB4RTIsIDB4QkQsIDB4
MjIsIDB4QjQsIDB4RUYsICAvLyAuLi4uLiIuLgogICAgICAgICAgICAgICAgLyogMDU3OCAq
LyAgMHg1QywgMHgwNiwgMHg3RiwgMHgzNCwgMHgzNiwgMHg2QSwgMHhEMCwgMHg5NywgIC8v
IFwuLjQ2ai4uCiAgICAgICAgICAgICAgICAvKiAwNTgwICovICAweEUzLCAweEI3LCAweDJD
LCAweDc4LCAweEZGLCAweEZGLCAweDVCLCAweDE2LCAgLy8gLi4seC4uWy4KICAgICAgICAg
ICAgICAgIC8qIDA1ODggKi8gIDB4N0MsIDB4OTEsIDB4N0YsIDB4MTUsIDB4OUQsIDB4MDgs
IDB4N0MsIDB4Q0IsICAvLyB8Li4uLi58LgogICAgICAgICAgICAgICAgLyogMDU5MCAqLyAg
MHgwMiwgMHhGOCwgMHgxMSwgMHgwQywgMHg0MiwgMHg0RSwgMHgwNiwgMHg4RSwgIC8vIC4u
Li5CTi4uCiAgICAgICAgICAgICAgICAvKiAwNTk4ICovICAweDNFLCAweDJGLCAweEUwLCAw
eDA3LCAweEYwLCAweDMwLCAweEUyLCAweDIxLCAgLy8gPi8uLi4wLiEKICAgICAgICAgICAg
ICAgIC8qIDA1QTAgKi8gIDB4QjEsIDB4MDAsIDB4MDMsIDB4QTcsIDB4RjcsIDB4MjUsIDB4
OUYsIDB4MjksICAvLyAuLi4uLiUuKQogICAgICAgICAgICAgICAgLyogMDVBOCAqLyAgMHhG
OCwgMHgwMSwgMHhDMywgMHg2NywgMHgwQSwgMHg3NiwgMHgzRCwgMHg4OCwgIC8vIC4uLmcu
dj0uCiAgICAgICAgICAgICAgICAvKiAwNUIwICovICAweEZFLCAweDE4LCAweEUwLCAweDcz
LCAweDA5LCAweDY2LCAweDcwLCAweEUwLCAgLy8gLi4ucy5mcC4KICAgICAgICAgICAgICAg
IC8qIDA1QjggKi8gIDB4QkYsIDB4NTYsIDB4MUMsIDB4QkEsIDB4NDcsIDB4RjEsIDB4RkEs
IDB4NjAsICAvLyAuVi4uRy4uYAogICAgICAgICAgICAgICAgLyogMDVDMCAqLyAgMHgwMiwg
MHgwRiwgMHg4RSwgMHhGRiwgMHhGRiwgMHgwNywgMHgwNywgMHhGNywgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgICAgICAvKiAwNUM4ICovICAweENFLCAweDcwLCAweDQ0LCAweEJFLCAw
eEMzLCAweDc4LCAweDcwLCAweDYwLCAgLy8gLnBELi54cGAKICAgICAgICAgICAgICAgIC8q
IDA1RDAgKi8gIDB4M0IsIDB4MDgsIDB4MDAsIDB4ODcsIDB4QzEsIDB4RTEsIDB4NDMsIDB4
MEQsICAvLyA7Li4uLi5DLgogICAgICAgICAgICAgICAgLyogMDVEOCAqLyAgMHgwRSwgMHgz
RCwgMHgxRSwgMHgwMywgMHg4NywgMHhGNCwgMHg3OSwgMHg4QywgIC8vIC49Li4uLnkuCiAg
ICAgICAgICAgICAgICAvKiAwNUUwICovICAweDVELCAweDE4LCAweDFFLCAweDcyLCAweDND
LCAweDM0LCAweEIwLCAweDAxLCAgLy8gXS4ucjw0Li4KICAgICAgICAgICAgICAgIC8qIDA1
RTggKi8gIDB4N0EsIDB4NjgsIDB4QzAsIDB4NzIsIDB4MTIsIDB4NEYsIDB4MjEsIDB4ODcs
ICAvLyB6aC5yLk8hLgogICAgICAgICAgICAgICAgLyogMDVGMCAqLyAgMHgwNiwgMHg2Niwg
MHgwOSwgMHg0MywgMHgwMywgMHg0QSwgMHhGMSwgMHg4NiwgIC8vIC5mLkMuSi4uCiAgICAg
ICAgICAgICAgICAvKiAwNUY4ICovICAweDQ2LCAweEZGLCAweEZGLCAweDQzLCAweEUzLCAw
eDQzLCAweEYyLCAweDYxLCAgLy8gRi4uQy5DLmEKICAgICAgICAgICAgICAgIC8qIDA2MDAg
Ki8gIDB4MjEsIDB4RTYsIDB4NTMsIDB4NEUsIDB4ODQsIDB4RjcsIDB4MDUsIDB4OUYsICAv
LyAhLlNOLi4uLgogICAgICAgICAgICAgICAgLyogMDYwOCAqLyAgMHhBMCwgMHgxOCwgMHhG
QSwgMHg2QiwgMHg4QSwgMHg2RiwgMHgxNywgMHhCRSwgIC8vIC4uLmsuby4uCiAgICAgICAg
ICAgICAgICAvKiAwNjEwICovICAweDA5LCAweEUyLCAweEM2LCAweDA3LCAweEFFLCAweDRC
LCAweEE3LCAweEM3LCAgLy8gLi4uLi5LLi4KICAgICAgICAgICAgICAgIC8qIDA2MTggKi8g
IDB4MDcsIDB4N0MsIDB4OEUsIDB4NUMsIDB4MUUsIDB4MUYsIDB4RUUsIDB4RTgsICAvLyAu
fC5cLi4uLgogICAgICAgICAgICAgICAgLyogMDYyMCAqLyAgMHhFNCwgMHhGMSwgMHhDMSwg
MHg3MCwgMHg3OSwgMHg5NSwgMHgyMSwgMHg0NywgIC8vIC4uLnB5LiFHCiAgICAgICAgICAg
ICAgICAvKiAwNjI4ICovICAweDEzLCAweDFGLCAweEFELCAweEQ4LCAweEYwLCAweEMwLCAw
eDc2LCAweEQzLCAgLy8gLi4uLi4udi4KICAgICAgICAgICAgICAgIC8qIDA2MzAgKi8gIDB4
RjMsIDB4RjAsIDB4ODAsIDB4Q0YsIDB4NzUsIDB4MTMsIDB4OEMsIDB4NTcsICAvLyAuLi4u
dS4uVwogICAgICAgICAgICAgICAgLyogMDYzOCAqLyAgMHg0OCwgMHg3RSwgMHgyRCwgMHg4
MSwgMHg3MSwgMHg4MiwgMHhDMiwgMHg1RiwgIC8vIEh+LS5xLi5fCiAgICAgICAgICAgICAg
ICAvKiAwNjQwICovICAweDM3LCAweEMxLCAweEZCLCAweEZGLCAweEJGLCAweDZFLCAweDAy
LCAweENGLCAgLy8gNy4uLi5uLi4KICAgICAgICAgICAgICAgIC8qIDA2NDggKi8gIDB4NTEs
IDB4NzAsIDB4QUQsIDB4OTcsIDB4NkMsIDB4MUEsIDB4RTQsIDB4OTUsICAvLyBRcC4ubC4u
LgogICAgICAgICAgICAgICAgLyogMDY1MCAqLyAgMHhBMywgMHg1OCwgMHgyRiwgMHgwMiwg
MHgwQSwgMHhFMywgMHgzMywgMHgxQiwgIC8vIC5YLy4uLjMuCiAgICAgICAgICAgICAgICAv
KiAwNjU4ICovICAweEUwLCAweDY4LCAweEFDLCAweENGLCAweDZDLCAweDYwLCAweEI5LCAw
eDE3LCAgLy8gLmguLmxgLi4KICAgICAgICAgICAgICAgIC8qIDA2NjAgKi8gIDB4QjAsIDB4
MUIsIDB4MUIsIDB4REMsIDB4RDMsIDB4MUEsIDB4RUMsIDB4QkIsICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAgICAgLyogMDY2OCAqLyAgMHhDMywgMHhDMywgMHhEOSwgMHg2MywgMHhE
QSwgMHhBMywgMHhEQSwgMHgwMywgIC8vIC4uLmMuLi4uCiAgICAgICAgICAgICAgICAvKiAw
NjcwICovICAweDlBLCAweDhGLCAweEQ4LCAweDMxLCAweERFLCAweEQyLCAweDgyLCAweEM0
LCAgLy8gLi4uMS4uLi4KICAgICAgICAgICAgICAgIC8qIDA2NzggKi8gIDB4ODksIDB4RjAs
IDB4M0EsIDB4RjAsIDB4QjQsIDB4RTYsIDB4NEIsIDB4NDYsICAvLyAuLjouLi5LRgogICAg
ICAgICAgICAgICAgLyogMDY4MCAqLyAgMHhCQywgMHg0MCwgMHg0RiwgMHg2QiwgMHhDNiwg
MHg4OCwgMHhGMywgMHhEMiwgIC8vIC5AT2suLi4uCiAgICAgICAgICAgICAgICAvKiAwNjg4
ICovICAweDY2LCAweEM0LCAweDU3LCAweDhBLCAweDEwLCAweDBGLCAweDZCLCAweDNFLCAg
Ly8gZi5XLi4uaz4KICAgICAgICAgICAgICAgIC8qIDA2OTAgKi8gIDB4QjksIDB4MTksIDB4
RUYsIDB4NjEsIDB4MjIsIDB4NUMsIDB4OTgsIDB4MTcsICAvLyAuLi5hIlwuLgogICAgICAg
ICAgICAgICAgLyogMDY5OCAqLyAgMHhCNiwgMHhBNywgMHgzNSwgMHg3MCwgMHhGQywgMHhG
RiwgMHg0RiwgMHg2QiwgIC8vIC4uNXAuLk9rCiAgICAgICAgICAgICAgICAvKiAwNkEwICov
ICAweDcwLCAweEU0LCAweDVDLCAweEIxLCAweDAxLCAweDlBLCAweDVDLCAweEY0LCAgLy8g
cC5cLi4uXC4KICAgICAgICAgICAgICAgIC8qIDA2QTggKi8gIDB4NzEsIDB4ODcsIDB4MTQs
IDB4QjAsIDB4NUMsIDB4MUIsIDB4RDgsIDB4MkQsICAvLyBxLi4uXC4uLQogICAgICAgICAg
ICAgICAgLyogMDZCMCAqLyAgMHgwNSwgMHhERSwgMHgwNSwgMHgxQiwgMHgzOCwgMHhGRiwg
MHhGRiwgMHg4RiwgIC8vIC4uLi44Li4uCiAgICAgICAgICAgICAgICAvKiAwNkI4ICovICAw
eDI4LCAweEUwLCAweENCLCAweDcyLCAweEMxLCAweEE2LCAweDM5LCAweDJFLCAgLy8gKC4u
ci4uOS4KICAgICAgICAgICAgICAgIC8qIDA2QzAgKi8gIDB4RDgsIDB4MjgsIDB4MEUsIDB4
QUIsIDB4MDEsIDB4RDIsIDB4M0MsIDB4RTEsICAvLyAuKC4uLi48LgogICAgICAgICAgICAg
ICAgLyogMDZDOCAqLyAgMHg1RiwgMHhBRiwgMHhDMSwgMHgzRiwgMHgwOSwgMHg1RiwgMHhB
RiwgMHgwMSwgIC8vIF8uLj8uXy4uCiAgICAgICAgICAgICAgICAvKiAwNkQwICovICAweERC
LCAweEI3LCAweDU4LCAweERDLCAweEY1LCAweDFBLCAweDU4LCAweEZELCAgLy8gLi5YLi4u
WC4KICAgICAgICAgICAgICAgIC8qIDA2RDggKi8gIDB4RkYsIDB4QUYsIDB4RDcsIDB4QzAs
IDB4NTIsIDB4RjAsIDB4NDgsIDB4RTksICAvLyAuLi4uUi5ILgogICAgICAgICAgICAgICAg
LyogMDZFMCAqLyAgMHg5RCwgMHgxQSwgMHg1QywgMHgzNywgMHg2RCwgMHgzQywgMHhFOCwg
MHg5QiwgIC8vIC4uXDdtPC4uCiAgICAgICAgICAgICAgICAvKiAwNkU4ICovICAweDM2LCAw
eDRDLCAweEMxLCAweEI3LCAweDI4LCAweDFBLCAweDg1LCAweDVDLCAgLy8gNkwuLiguLlwK
ICAgICAgICAgICAgICAgIC8qIDA2RjAgKi8gIDB4RDEsIDB4MTYsIDB4NDIsIDB4NjEsIDB4
N0MsIDB4OEIsIDB4MDIsIDB4MUMsICAvLyAuLkJhfC4uLgogICAgICAgICAgICAgICAgLyog
MDZGOCAqLyAgMHg2MSwgMHhCRiwgMHg0NSwgMHg4MSwgMHhFNSwgMHhFMiwgMHhGNCwgMHgx
NiwgIC8vIGEuRS4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNzAwICovICAweDg1LCAweDlG
LCAweDgxLCAweDA3LCAweEVELCAweEJCLCAweDBFLCAweEMzLCAgLy8gLi4uLi4uLi4KICAg
ICAgICAgICAgICAgIC8qIDA3MDggKi8gIDB4RjQsIDB4MUQsIDB4MUEsIDB4RkUsIDB4QTks
IDB4RTksIDB4QjksIDB4RTksICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDcx
MCAqLyAgMHhDMSwgMHhFOSwgMHhBMSwgMHhEOSwgMHgwNywgMHgyOSwgMHgxRiwgMHgwRSwg
IC8vIC4uLi4uKS4uCiAgICAgICAgICAgICAgICAvKiAwNzE4ICovICAweDlFLCAweDlGLCAw
eEZFLCAweEZGLCAweDMxLCAweERFLCAweEVCLCAweDdDLCAgLy8gLi4uLjEuLnwKICAgICAg
ICAgICAgICAgIC8qIDA3MjAgKi8gIDB4OTMsIDB4N0EsIDB4OEQsIDB4RjIsIDB4MDUsIDB4
RTYsIDB4MTgsIDB4MjIsICAvLyAuei4uLi4uIgogICAgICAgICAgICAgICAgLyogMDcyOCAq
LyAgMHg0NiwgMHg3OSwgMHg5OSwgMHgzNiwgMHg0NCwgMHgzQywgMHg5RiwgMHg5QSwgIC8v
IEZ5LjZEPC4uCiAgICAgICAgICAgICAgICAvKiAwNzMwICovICAweDdDLCAweDU2LCAweDg4
LCAweDFCLCAweEUyLCAweDIxLCAweERBLCAweDA4LCAgLy8gfFYuLi4hLi4KICAgICAgICAg
ICAgICAgIC8qIDA3MzggKi8gIDB4NTEsIDB4OUYsIDB4QTcsIDB4M0QsIDB4QTEsIDB4RDcs
IDB4MjgsIDB4RjAsICAvLyBRLi49Li4oLgogICAgICAgICAgICAgICAgLyogMDc0MCAqLyAg
MHgwQSwgMHhCQSwgMHg0NiwgMHgwMSwgMHgzNCwgMHhCOSwgMHgxRiwgMHhFMSwgIC8vIC4u
Ri40Li4uCiAgICAgICAgICAgICAgICAvKiAwNzQ4ICovICAweEFFLCAweDUxLCAweDYwLCAw
eEI5LCAweDM3LCAweEIwLCAweEYzLCAweDEwLCAgLy8gLlFgLjcuLi4KICAgICAgICAgICAg
ICAgIC8qIDA3NTAgKi8gIDB4QkYsIDB4MTIsIDB4RjksIDB4REEsIDB4MDAsIDB4RTMsIDB4
MUUsIDB4MDUsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDc1OCAqLyAgMHhF
NywgMHhGRiwgMHg3RiwgMHg4RiwgMHgwMiwgMHg2QywgMHg4NCwgMHhCOSwgIC8vIC4uLi4u
bC4uCiAgICAgICAgICAgICAgICAvKiAwNzYwICovICAweDQ3LCAweEQxLCAweDIwLCAweEY3
LCAweDI4LCAweEQ0LCAweEM5LCAweEM0LCAgLy8gRy4gLiguLi4KICAgICAgICAgICAgICAg
IC8qIDA3NjggKi8gIDB4OTcsIDB4M0EsIDB4NEYsIDB4MTQsIDB4MUMsIDB4RTEsIDB4MkYs
IDB4NTIsICAvLyAuOk8uLi4vUgogICAgICAgICAgICAgICAgLyogMDc3MCAqLyAgMHhBOCwg
MHhEOCwgMHgyNCwgMHgwQSwgMHg3RCwgMHgxOCwgMHg0MiwgMHhDNSwgIC8vIC4uJC59LkIu
CiAgICAgICAgICAgICAgICAvKiAwNzc4ICovICAweDNDLCAweDhDLCAweDUwLCAweDEwLCAw
eDAzLCAweDNBLCAweEMzLCAweDg5LCAgLy8gPC5QLi46Li4KICAgICAgICAgICAgICAgIC8q
IDA3ODAgKi8gIDB4MDIsIDB4QUQsIDB4RTIsIDB4NDQsIDB4NDEsIDB4NkUsIDB4MzEsIDB4
OUUsICAvLyAuLi5EQW4xLgogICAgICAgICAgICAgICAgLyogMDc4OCAqLyAgMHhENCwgMHg2
MywgMHgxNCwgMHhFMCwgMHg2QiwgMHg5OSwgMHgxRSwgMHgyQSwgIC8vIC5jLi5rLi4qCiAg
ICAgICAgICAgICAgICAvKiAwNzkwICovICAweDhGLCAweDNDLCAweDU0LCAweDBBLCAweEUy
LCAweEExLCAweDNBLCAweENFLCAgLy8gLjxULi4uOi4KICAgICAgICAgICAgICAgIC8qIDA3
OTggKi8gIDB4NTAsIDB4RDEsIDB4OTMsIDB4RjQsIDB4RkMsIDB4MzEsIDB4RkYsIDB4RkYs
ICAvLyBQLi4uLjEuLgogICAgICAgICAgICAgICAgLyogMDdBMCAqLyAgMHg4MywgMHgwMywg
MHhGNiwgMHgyMCwgMHgwNSwgMHhGMCwgMHg0MiwgMHhGNSwgIC8vIC4uLiAuLkIuCiAgICAg
ICAgICAgICAgICAvKiAwN0E4ICovICAweDQxLCAweDhBLCAweDg2LCAweDIxLCAweDU3LCAw
eEI4LCAweDg1LCAweDUwLCAgLy8gQS4uIVcuLlAKICAgICAgICAgICAgICAgIC8qIDA3QjAg
Ki8gIDB4MTgsIDB4MUYsIDB4QTQsIDB4MDAsIDB4NDcsIDB4MzcsIDB4NEIsIDB4REMsICAv
LyAuLi4uRzdLLgogICAgICAgICAgICAgICAgLyogMDdCOCAqLyAgMHg0MSwgMHgwQSwgMHhD
NiwgMHhGRiwgMHhGRiwgMHgyMCwgMHg4NSwgMHgxOSwgIC8vIEEuLi4uIC4uCiAgICAgICAg
ICAgICAgICAvKiAwN0MwICovICAweDAxLCAweDdCLCAweDhELCAweDNDLCAweDQ3LCAweEM1
LCAweDdBLCAweDVBLCAgLy8gLnsuPEcueloKICAgICAgICAgICAgICAgIC8qIDA3QzggKi8g
IDB4NjcsIDB4QTAsIDB4NzEsIDB4REUsIDB4OEEsIDB4N0MsIDB4MTYsIDB4NjQsICAvLyBn
LnEuLnwuZAogICAgICAgICAgICAgICAgLyogMDdEMCAqLyAgMHgxNywgMHgxNiwgMHgxRiwg
MHg4QiwgMHg0QywgMHhFMCwgMHg5MywgMHgxNCwgIC8vIC4uLi5MLi4uCiAgICAgICAgICAg
ICAgICAvKiAwN0Q4ICovICAweDVDLCAweDhDLCAweEE3LCAweDVCLCAweDFGLCAweDZBLCAw
eDBELCAweEYyLCAgLy8gXC4uWy5qLi4KICAgICAgICAgICAgICAgIC8qIDA3RTAgKi8gIDB4
RjAsIDB4RjQsIDB4NzQsIDB4RUIsIDB4QjMsIDB4RDQsIDB4RkIsIDB4NTMsICAvLyAuLnQu
Li4uUwogICAgICAgICAgICAgICAgLyogMDdFOCAqLyAgMHhBMCwgMHg0MywgMHg3RCwgMHg4
OCwgMHhCMiwgMHhCOCwgMHgxMSwgMHg5MCwgIC8vIC5DfS4uLi4uCiAgICAgICAgICAgICAg
ICAvKiAwN0YwICovICAweEZCLCAweEFELCAweEFGLCAweDUzLCAweENGLCAweEI2LCAweDQ2
LCAweDc5LCAgLy8gLi4uUy4uRnkKICAgICAgICAgICAgICAgIC8qIDA3RjggKi8gIDB4N0Es
IDB4MDgsIDB4MUEsIDB4MjcsIDB4NjIsIDB4QjQsIDB4OTgsIDB4ODYsICAvLyB6Li4nYi4u
LgogICAgICAgICAgICAgICAgLyogMDgwMCAqLyAgMHgwQSwgMHgxNCwgMHhFNSwgMHhDRCwg
MHhDQSwgMHgyNywgMHgyOSwgMHg4MCwgIC8vIC4uLi4uJykuCiAgICAgICAgICAgICAgICAv
KiAwODA4ICovICAweDY1LCAweEZGLCAweEZGLCAweDkzLCAweDE0LCAweEI4LCAweDJFLCAw
eDBFLCAgLy8gZS4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA4MTAgKi8gIDB4RUMsIDB4
RTAsIDB4ODAsIDB4QkIsIDB4MzcsIDB4QzAsIDB4MzksIDB4NDksICAvLyAuLi4uNy45SQog
ICAgICAgICAgICAgICAgLyogMDgxOCAqLyAgMHgwMSwgMHg3RSwgMHhGMiwgMHg5QywgMHhB
NCwgMHhFOCwgMHgxNSwgMHhENywgIC8vIC5+Li4uLi4uCiAgICAgICAgICAgICAgICAvKiAw
ODIwICovICAweDI3LCAweDI5LCAweDJFLCAweDBBLCAweDQyLCAweDhBLCAweDgwLCAweDM0
LCAgLy8gJykuLkIuLjQKICAgICAgICAgICAgICAgIC8qIDA4MjggKi8gIDB4NTEsIDB4QjAs
IDB4NUMsIDB4NzEsIDB4MDEsIDB4OTcsIDB4RkYsIDB4RkYsICAvLyBRLlxxLi4uLgogICAg
ICAgICAgICAgICAgLyogMDgzMCAqLyAgMHgyQiwgMHgyRSwgMHhDMCwgMHhDNywgMHg1OCwg
MHgxMiwgMHhFRSwgMHhCNywgIC8vICsuLi5YLi4uCiAgICAgICAgICAgICAgICAvKiAwODM4
ICovICAweDk4LCAweDIwLCAweDMwLCAweEE4LCAweEFCLCAweDE0LCAweEYwLCAweEZBLCAg
Ly8gLiAwLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA4NDAgKi8gIDB4RkYsIDB4NUYsIDB4
QTUsIDB4ODAsIDB4Q0IsIDB4MTUsIDB4RTAsIDB4NTUsICAvLyAuXy4uLi4uVQogICAgICAg
ICAgICAgICAgLyogMDg0OCAqLyAgMHgwQSwgMHgyQywgMHg4NywgMHhBNSwgMHgyNywgMHg4
NSwgMHgwNywgMHgyMiwgIC8vIC4sLi4nLi4iCiAgICAgICAgICAgICAgICAvKiAwODUwICov
ICAweDIzLCAweEYxLCAweDE3LCAweEM5LCAweDdCLCAweDgzLCAweDhELCAweDYzLCAgLy8g
Iy4uLnsuLmMKICAgICAgICAgICAgICAgIC8qIDA4NTggKi8gIDB4MDksIDB4RDgsIDB4Mzcs
IDB4MTMsIDB4MzYsIDB4RUYsIDB4MTcsIDB4MjksICAvLyAuLjcuNi4uKQogICAgICAgICAg
ICAgICAgLyogMDg2MCAqLyAgMHg5OCwgMHhFRSwgMHg4RiwgMHhCOCwgMHgwNCwgMHhFMiwg
MHg4OSwgMHgyMSwgIC8vIC4uLi4uLi4hCiAgICAgICAgICAgICAgICAvKiAwODY4ICovICAw
eEYwLCAweDVCLCAweENFLCAweDkxLCAweEJFLCAweDQxLCAweDE5LCAweEU3LCAgLy8gLlsu
Li5BLi4KICAgICAgICAgICAgICAgIC8qIDA4NzAgKi8gIDB4RjksIDB4RDYsIDB4NTgsIDB4
NEYsIDB4QjcsIDB4RUMsIDB4Q0EsIDB4NzQsICAvLyAuLlhPLi4udAogICAgICAgICAgICAg
ICAgLyogMDg3OCAqLyAgMHgxRSwgMHg1MSwgMHg2MiwgMHg4NCwgMHg3QiwgMHg4NiwgMHg4
QSwgMHgxMSwgIC8vIC5RYi57Li4uCiAgICAgICAgICAgICAgICAvKiAwODgwICovICAweDI1
LCAweEM2LCAweDJCLCAweDU1LCAweDkwLCAweDgwLCAweDIxLCAweDlFLCAgLy8gJS4rVS4u
IS4KICAgICAgICAgICAgICAgIC8qIDA4ODggKi8gIDB4QTksIDB4NDIsIDB4M0UsIDB4RUQs
IDB4N0EsIDB4QjIsIDB4MkYsIDB4NTMsICAvLyAuQj4uei4vUwogICAgICAgICAgICAgICAg
LyogMDg5MCAqLyAgMHhCNiwgMHg3RiwgMHg5MywgMHgwMiwgMHg3MSwgMHhGQywgMHgxNywg
MHg4MywgIC8vIC4uLi5xLi4uCiAgICAgICAgICAgICAgICAvKiAwODk4ICovICAweDZFLCAw
eDI0LCAweEJFLCAweDQ5LCAweDAxLCAweEZFLCAweEZFLCAweEZGLCAgLy8gbiQuSS4uLi4K
ICAgICAgICAgICAgICAgIC8qIDA4QTAgKi8gIDB4MzcsIDB4MjksIDB4RTAsIDB4MTcsIDB4
NzgsIDB4RTAsIDB4RTgsIDB4ODEsICAvLyA3KS4ueC4uLgogICAgICAgICAgICAgICAgLyog
MDhBOCAqLyAgMHgxOCwgMHhGQSwgMHg5MSwgMHhDNSwgMHhEMywgMHhGMCwgMHg3OSwgMHhD
MywgIC8vIC4uLi4uLnkuCiAgICAgICAgICAgICAgICAvKiAwOEIwICovICAweDY3LCAweDRB
LCAweDYzLCAweDFDLCAweDkzLCAweDA3LCAweEM3LCAweDYzLCAgLy8gZ0pjLi4uLmMKICAg
ICAgICAgICAgICAgIC8qIDA4QjggKi8gIDB4OEQsIDB4OUMsIDB4REUsIDB4OEEsIDB4N0Ms
IDB4OUUsIDB4RTAsIDB4ODcsICAvLyAuLi4ufC4uLgogICAgICAgICAgICAgICAgLyogMDhD
MCAqLyAgMHgwQiwgMHg5RiwgMHgyNywgMHhEOCwgMHg4OSwgMHhFMSwgMHgzNCwgMHg5RSwg
IC8vIC4uJy4uLjQuCiAgICAgICAgICAgICAgICAvKiAwOEM4ICovICAweDAzLCAweDdDLCAw
eDEwLCAweEMxLCAweDFDLCAweDI3LCAweDgwLCAweENCLCAgLy8gLnwuLi4nLi4KICAgICAg
ICAgICAgICAgIC8qIDA4RDAgKi8gIDB4MzksIDB4MDAsIDB4N0MsIDB4RjcsIDB4NDAsIDB4
REMsIDB4MEQsIDB4MEMsICAvLyA5LnwuQC4uLgogICAgICAgICAgICAgICAgLyogMDhEOCAq
LyAgMHgyQywgMHgzMywgMHhDMiwgMHg4RiwgMHgwOCwgMHhDNiwgMHgwNSwgMHgwQywgIC8v
ICwzLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwOEUwICovICAweEI4LCAweEZFLCAweEZG
LCAweDJGLCAweDYwLCAweEUwLCAweDFDLCAweDA1LCAgLy8gLi4uL2AuLi4KICAgICAgICAg
ICAgICAgIC8qIDA4RTggKi8gIDB4Q0YsIDB4NzcsIDB4RUIsIDB4MDQsIDB4MTQsIDB4REYs
IDB4MkIsIDB4RDgsICAvLyAudy4uLi4rLgogICAgICAgICAgICAgICAgLyogMDhGMCAqLyAg
MHhENSwgMHhFMSwgMHhGOSwgMHgwMSwgMHgxQywgMHhCNywgMHg0RSwgMHhCOCwgIC8vIC4u
Li4uLk4uCiAgICAgICAgICAgICAgICAvKiAwOEY4ICovICAweDA3LCAweDFCLCAweDVGLCAw
eDVGLCAweENFLCAweEYyLCAweDRDLCAweDVGLCAgLy8gLi5fXy4uTF8KICAgICAgICAgICAg
ICAgIC8qIDA5MDAgKi8gIDB4NjgsIDB4OUUsIDB4NkEsIDB4MTgsIDB4Q0MsIDB4RTMsIDB4
NEQsIDB4ODQsICAvLyBoLmouLi5NLgogICAgICAgICAgICAgICAgLyogMDkwOCAqLyAgMHgz
OCwgMHg1MSwgMHg4QywgMHg3NywgMHg5NiwgMHg0NiwgMHg3OSwgMHhGRiwgIC8vIDhRLncu
RnkuCiAgICAgICAgICAgICAgICAvKiAwOTEwICovICAweDg4LCAweEYxLCAweDZBLCAweDEz
LCAweDIzLCAweDRBLCAweEEwLCAweDQ4LCAgLy8gLi5qLiNKLkgKICAgICAgICAgICAgICAg
IC8qIDA5MTggKi8gIDB4MDYsIDB4MzYsIDB4NTAsIDB4RTAsIDB4QjcsIDB4OEEsIDB4Mjcs
IDB4MTIsICAvLyAuNlAuLi4nLgogICAgICAgICAgICAgICAgLyogMDkyMCAqLyAgMHg4Mywg
MHhGQSwgMHhENiwgMHgwOSwgMHg3QywgMHhGRSwgMHhGRiwgMHhCNywgIC8vIC4uLi58Li4u
CiAgICAgICAgICAgICAgICAvKiAwOTI4ICovICAweDRFLCAweDgwLCAweDQxLCAweDE3LCAw
eDA3LCAweDc2LCAweDRCLCAweDgxLCAgLy8gTi5BLi52Sy4KICAgICAgICAgICAgICAgIC8q
IDA5MzAgKi8gIDB4N0YsIDB4NEEsIDB4MDEsIDB4QkMsIDB4RkMsIDB4RkYsIDB4NEYsIDB4
MjksICAvLyAuSi4uLi5PKQogICAgICAgICAgICAgICAgLyogMDkzOCAqLyAgMHgzQywgMHhG
OSwgMHhBRCwgMHg5MywgMHhBNiwgMHhCRSwgMHg3NSwgMHg0MiwgIC8vIDwuLi4uLnVCCiAg
ICAgICAgICAgICAgICAvKiAwOTQwICovICAweDk5LCAweDI4LCAweDU4LCAweDZFLCAweDlE
LCAweEMwLCAweEUwLCAweDM4LCAgLy8gLihYbi4uLjgKICAgICAgICAgICAgICAgIC8qIDA5
NDggKi8gIDB4RjIsIDB4RDYsIDB4MDksIDB4RjgsIDB4QkUsIDB4NUIsIDB4RjgsIDB4RDYs
ICAvLyAuLi4uLlsuLgogICAgICAgICAgICAgICAgLyogMDk1MCAqLyAgMHgwOSwgMHhFQywg
MHhGRiwgMHhGRiwgMHhCNywgMHg0RSwgMHg2MCwgMHgxMSwgIC8vIC4uLi4uTmAuCiAgICAg
ICAgICAgICAgICAvKiAwOTU4ICovICAweDZELCAweDU0LCAweEY0LCAweEFBLCAweDg5LCAw
eDlGLCAweENGLCAweEFCLCAgLy8gbVQuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA5NjAg
Ki8gIDB4MjYsIDB4Q0MsIDB4MEIsIDB4MjgsIDB4QjgsIDB4RUUsIDB4NDYsIDB4QzAsICAv
LyAmLi4oLi5GLgogICAgICAgICAgICAgICAgLyogMDk2OCAqLyAgMHgyOSwgMHhENywgMHhG
RCwgMHg4QSwgMHhERSwgMHg0MywgMHgxRCwgMHg2QywgIC8vICkuLi4uQy5sCiAgICAgICAg
ICAgICAgICAvKiAwOTcwICovICAweDQ5LCAweEY0LCAweDJBLCAweDBBLCAweDc4LCAweEMy
LCAweDNFLCAweDY4LCAgLy8gSS4qLnguPmgKICAgICAgICAgICAgICAgIC8qIDA5NzggKi8g
IDB4QjAsIDB4MUQsIDB4NTcsIDB4MzgsIDB4Q0EsIDB4QkIsIDB4MjAsIDB4MTYsICAvLyAu
Llc4Li4gLgogICAgICAgICAgICAgICAgLyogMDk4MCAqLyAgMHhFOCwgMHhGRiwgMHg3Riwg
MHgyMCwgMHhCRSwgMHg1RSwgMHhDMSwgMHgzRSwgIC8vIC4uLiAuXi4+CiAgICAgICAgICAg
ICAgICAvKiAwOTg4ICovICAweDdCLCAweDlFLCAweEUzLCAweEVCLCAweEMyLCAweDZCLCAw
eDQ0LCAweDg0LCAgLy8gey4uLi5rRC4KICAgICAgICAgICAgICAgIC8qIDA5OTAgKi8gIDB4
NDcsIDB4QUEsIDB4QzcsIDB4ODYsIDB4MDgsIDB4Q0YsIDB4NTUsIDB4QzEsICAvLyBHLi4u
Li5VLgogICAgICAgICAgICAgICAgLyogMDk5OCAqLyAgMHg5RSwgMHhBQSwgMHhFMiwgMHhC
QywgMHg1RSwgMHhCMSwgMHg2OSwgMHgzQywgIC8vIC4uLi5eLmk8CiAgICAgICAgICAgICAg
ICAvKiAwOUEwICovICAweDYxLCAweEM1LCAweDc5LCAweDE2LCAweEY1LCAweDE0LCAweEEy
LCAweDNDLCAgLy8gYS55Li4uLjwKICAgICAgICAgICAgICAgIC8qIDA5QTggKi8gIDB4NTgs
IDB4NDUsIDB4NzksIDB4MTAsIDB4MzUsIDB4RTIsIDB4MEIsIDB4NDEsICAvLyBYRXkuNS4u
QQogICAgICAgICAgICAgICAgLyogMDlCMCAqLyAgMHhFOCwgMHhDMCwgMHhGMSwgMHg4Miwg
MHg0NSwgMHgzNywgMHg0MiwgMHhBQywgIC8vIC4uLi5FN0IuCiAgICAgICAgICAgICAgICAv
KiAwOUI4ICovICAweEQ3LCAweDJCLCAweEYwLCAweENBLCAweEI5LCAweDVFLCAweDAxLCAw
eDM0LCAgLy8gLisuLi5eLjQKICAgICAgICAgICAgICAgIC8qIDA5QzAgKi8gIDB4QjksIDB4
NTIsIDB4ODIsIDB4RjEsIDB4Q0MsIDB4RTAsIDB4RkYsIDB4RkYsICAvLyAuUi4uLi4uLgog
ICAgICAgICAgICAgICAgLyogMDlDOCAqLyAgMHhCNCwgMHg5RSwgMHgxQiwgMHhGOCwgMHhC
NSwgMHgwMSwgMHg3QiwgMHg2QywgIC8vIC4uLi4uLntsCiAgICAgICAgICAgICAgICAvKiAw
OUQwICovICAweDYwLCAweEI3LCAweDJCLCAweEMwLCAweENGLCAweERELCAweENBLCAweDg3
LCAgLy8gYC4rLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA5RDggKi8gIDB4MEUsIDB4Mjcs
IDB4QkUsIDB4NUQsIDB4QTEsIDB4MEUsIDB4MjYsIDB4RDYsICAvLyAuJy5dLi4mLgogICAg
ICAgICAgICAgICAgLyogMDlFMCAqLyAgMHg3MywgMHhCQiwgMHg0MiwgMHhDQywgMHgxMywg
MHhFRSwgMHhFNSwgMHgwQSwgIC8vIHMuQi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwOUU4
ICovICAweEUwLCAweEMwLCAweEZGLCAweEZGLCAweDcyLCAweDA1LCAweDc4LCAweDBGLCAg
Ly8gLi4uLnIueC4KICAgICAgICAgICAgICAgIC8qIDA5RjAgKi8gIDB4NzYsIDB4QjksIDB4
MDIsIDB4N0EsIDB4MTcsIDB4MjMsIDB4MzAsIDB4QzIsICAvLyB2Li56LiMwLgogICAgICAg
ICAgICAgICAgLyogMDlGOCAqLyAgMHhGNywgMHg4OSwgMHgyMywgMHg5NCwgMHg0NywgMHgy
NSwgMHg1RiwgMHg4QywgIC8vIC4uIy5HJV8uCiAgICAgICAgICAgICAgICAvKiAwQTAwICov
ICAweDYwLCAweDlDLCAweDg1LCAweDgxLCAweEQ3LCAweEZGLCAweEZGLCAweDJDLCAgLy8g
YC4uLi4uLiwKICAgICAgICAgICAgICAgIC8qIDBBMDggKi8gIDB4MEMsIDB4RDgsIDB4MTgs
IDB4RDYsIDB4OUIsIDB4OEYsIDB4MEYsIDB4NTcsICAvLyAuLi4uLi4uVwogICAgICAgICAg
ICAgICAgLyogMEExMCAqLyAgMHg2MCwgMHhCOCwgMHg1QywgMHhDMSwgMHgzRSwgMHgzMywg
MHhCQywgMHg1NywgIC8vIGAuXC4+My5XCiAgICAgICAgICAgICAgICAvKiAwQTE4ICovICAw
eDE5LCAweEUyLCAweDg5LCAweEVBLCAweDgxLCAweENBLCAweDUwLCAweDJGLCAgLy8gLi4u
Li4uUC8KICAgICAgICAgICAgICAgIC8qIDBBMjAgKi8gIDB4NTcsIDB4ODYsIDB4ODksIDB4
MTQsIDB4RTIsIDB4NkQsIDB4OTgsIDB4QTEsICAvLyBXLi4uLm0uLgogICAgICAgICAgICAg
ICAgLyogMEEyOCAqLyAgMHg4NSwgMHg4OCwgMHgxMiwgMHgyRSwgMHg4OCwgMHg1MSwgMHg3
QywgMHhCRSwgIC8vIC4uLi4uUXwuCiAgICAgICAgICAgICAgICAvKiAwQTMwICovICAweDMy
LCAweDVDLCAweEVDLCAweEE3LCAweDI5LCAweDlGLCAweEFGLCAweDgyLCAgLy8gMlwuLiku
Li4KICAgICAgICAgICAgICAgIC8qIDBBMzggKi8gIDB4M0QsIDB4NjQsIDB4ODUsIDB4OEQs
IDB4MTAsIDB4RTUsIDB4NTksIDB4MTgsICAvLyA9ZC4uLi5ZLgogICAgICAgICAgICAgICAg
LyogMEE0MCAqLyAgMHg3MCwgMHhGQywgMHhGRiwgMHgzRiwgMHgwQiwgMHgwMywgMHhCRSwg
MHgyRSwgIC8vIHAuLj8uLi4uCiAgICAgICAgICAgICAgICAvKiAwQTQ4ICovICAweDBFLCAw
eEVDLCAweDk2LCAweDA0LCAweEVCLCAweEUyLCAweEU0LCAweERCLCAgLy8gLi4uLi4uLi4K
ICAgICAgICAgICAgICAgIC8qIDBBNTAgKi8gIDB4MTUsIDB4RTAsIDB4RTgsIDB4MkMsIDB4
MEMsIDB4N0IsIDB4QTIsIDB4RTAsICAvLyAuLi4sLnsuLgogICAgICAgICAgICAgICAgLyog
MEE1OCAqLyAgMHhCOCwgMHg1RSwgMHgwMSwgMHg5MywgMHhGRiwgMHhGRiwgMHg1OSwgMHgx
OCwgIC8vIC5eLi4uLlkuCiAgICAgICAgICAgICAgICAvKiAwQTYwICovICAweEUwLCAweEZG
LCAweEZGLCAweEZGLCAweDJDLCAweDBDLCAweEVFLCAweEJCLCAgLy8gLi4uLiwuLi4KICAg
ICAgICAgICAgICAgIC8qIDBBNjggKi8gIDB4MTEsIDB4RTYsIDB4N0MsIDB4MDUsIDB4RkIs
IDB4NjAsIDB4QTgsIDB4RkIsICAvLyAuLnwuLmAuLgogICAgICAgICAgICAgICAgLyogMEE3
MCAqLyAgMHgxNSwgMHg4RCwgMHhCNCwgMHgxMCwgMHhDNSwgMHg1QywgMHgxMiwgMHg4NSwg
IC8vIC4uLi4uXC4uCiAgICAgICAgICAgICAgICAvKiAwQTc4ICovICAweEYxLCAweEZELCAw
eDBBLCAweDcwLCAweDI0LCAweDc4LCAweEQwLCAweEEwLCAgLy8gLi4ucCR4Li4KICAgICAg
ICAgICAgICAgIC8qIDBBODAgKi8gIDB4MDEsIDB4OEIsIDB4MTIsIDB4Q0MsIDB4QzcsIDB4
MTAsIDB4NEYsIDB4RTcsICAvLyAuLi4uLi5PLgogICAgICAgICAgICAgICAgLyogMEE4OCAq
LyAgMHg3OCwgMHgxRiwgMHgxMywgMHg1RSwgMHgwMywgMHgxRSwgMHg3NSwgMHgzQywgIC8v
IHguLl4uLnU8CiAgICAgICAgICAgICAgICAvKiAwQTkwICovICAweEU0LCAweDQ3LCAweDAy
LCAweDVGLCAweEIxLCAweEMwLCAweDdBLCAweDg4LCAgLy8gLkcuXy4uei4KICAgICAgICAg
ICAgICAgIC8qIDBBOTggKi8gIDB4N0EsIDB4QzEsIDB4RjIsIDB4RDUsIDB4QzYsIDB4MTgs
IDB4MTEsIDB4NUUsICAvLyB6Li4uLi4uXgogICAgICAgICAgICAgICAgLyogMEFBMCAqLyAg
MHg4NiwgMHgwRCwgMHhGMywgMHg1RSwgMHgxNSwgMHhFMiwgMHgxRCwgMHhGOCwgIC8vIC4u
Ll4uLi4uCiAgICAgICAgICAgICAgICAvKiAwQUE4ICovICAweDE1LCAweENCLCAweDE3LCAw
eDhBLCAweDYwLCAweDExLCAweEEyLCAweDNDLCAgLy8gLi4uLmAuLjwKICAgICAgICAgICAg
ICAgIC8qIDBBQjAgKi8gIDB4MEEsIDB4QkYsIDB4MEMsIDB4MUIsIDB4Q0YsIDB4OTAsIDB4
MEYsIDB4NUEsICAvLyAuLi4uLi4uWgogICAgICAgICAgICAgICAgLyogMEFCOCAqLyAgMHgw
NiwgMHgwQSwgMHg2QiwgMHhDOCwgMHg3NywgMHhFMiwgMHgxOCwgMHgyNywgIC8vIC4uay53
Li4nCiAgICAgICAgICAgICAgICAvKiAwQUMwICovICAweEUwLCAweDNCLCAweDg1LCAweEFG
LCAweDU4LCAweEYwLCAweEZFLCAweEZGLCAgLy8gLjsuLlguLi4KICAgICAgICAgICAgICAg
IC8qIDBBQzggKi8gIDB4NTcsIDB4MkMsIDB4RDgsIDB4QTIsIDB4QUUsIDB4NTgsIDB4MDAs
IDB4NEQsICAvLyBXLC4uLlguTQogICAgICAgICAgICAgICAgLyogMEFEMCAqLyAgMHg0RSwg
MHgwRSwgMHhCOCwgMHgyQiwgMHgxNiwgMHg1OCwgMHhFRSwgMHgwRSwgIC8vIE4uLisuWC4u
CiAgICAgICAgICAgICAgICAvKiAwQUQ4ICovICAweEQ4LCAweEJCLCAweDEyLCAweEZDLCAw
eDRCLCAweDE2LCAweDMwLCAweEZCLCAgLy8gLi4uLksuMC4KICAgICAgICAgICAgICAgIC8q
IDBBRTAgKi8gIDB4RkYsIDB4NUYsIDB4QjIsIDB4ODAsIDB4ODUsIDB4ODIsIDB4QjcsIDB4
ODIsICAvLyAuXy4uLi4uLgogICAgICAgICAgICAgICAgLyogMEFFOCAqLyAgMHhDRSwgMHgx
RSwgMHg0RSwgMHg3RiwgMHhDOSwgMHg0MiwgMHg5RCwgMHg0NCwgIC8vIC4uTi4uQi5ECiAg
ICAgICAgICAgICAgICAvKiAwQUYwICovICAweEFDLCAweDA5LCAweDQ4LCAweDUzLCAweDA1
LCAweEQ3LCAweDJELCAweDBCLCAgLy8gLi5IUy4uLS4KICAgICAgICAgICAgICAgIC8qIDBB
RjggKi8gIDB4NjAsIDB4REMsIDB4RkYsIDB4RkYsIDB4OTYsIDB4MDUsIDB4NzgsIDB4MDgs
ICAvLyBgLi4uLi54LgogICAgICAgICAgICAgICAgLyogMEIwMCAqLyAgMHg3OCwgMHhDQiwg
MHgwMiwgMHg3QSwgMHgzNywgMHgyNCwgMHhGMCwgMHhBMiwgIC8vIHguLno3JC4uCiAgICAg
ICAgICAgICAgICAvKiAwQjA4ICovICAweEJDLCAweDIxLCAweDYxLCAweDJGLCAweDVBLCAw
eEYwLCAweDkyLCAweDVFLCAgLy8gLiFhL1ouLl4KICAgICAgICAgICAgICAgIC8qIDBCMTAg
Ki8gIDB4QjQsIDB4NjgsIDB4OUMsIDB4QjUsIDB4MjgsIDB4RTIsIDB4QUEsIDB4MjgsICAv
LyAuaC4uKC4uKAogICAgICAgICAgICAgICAgLyogMEIxOCAqLyAgMHg4QywgMHgyRiwgMHg1
QSwgMHg4MCwgMHg5RiwgMHhGRiwgMHhGRiwgMHhCOCwgIC8vIC4vWi4uLi4uCiAgICAgICAg
ICAgICAgICAvKiAwQjIwICovICAweDdELCAweDZCLCAweEMxLCAweDhELCAweDFCLCAweEVF
LCAweEU1LCAweEM5LCAgLy8gfWsuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBCMjggKi8g
IDB4MzcsIDB4MUYsIDB4Q0YsIDB4MzYsIDB4QTIsIDB4QUYsIDB4MzEsIDB4OTgsICAvLyA3
Li42Li4xLgogICAgICAgICAgICAgICAgLyogMEIzMCAqLyAgMHg3MywgMHgxNiwgMHhCQywg
MHg2QiwgMHgxNiwgMHhFQywgMHg5QiwgMHhENSwgIC8vIHMuLmsuLi4uCiAgICAgICAgICAg
ICAgICAvKiAwQjM4ICovICAweDhCLCAweEQ1LCAweDY5LCAweDNFLCAweDU5LCAweDA1LCAw
eDc5LCAweEI4LCAgLy8gLi5pPlkueS4KICAgICAgICAgICAgICAgIC8qIDBCNDAgKi8gIDB4
RjIsIDB4RjksIDB4MkEsIDB4RjQsIDB4MUIsIDB4NTYsIDB4ODQsIDB4RjcsICAvLyAuLiou
LlYuLgogICAgICAgICAgICAgICAgLyogMEI0OCAqLyAgMHhBQywgMHhENywgMHgyQywgMHhE
RiwgMHg4OSwgMHhBMywgMHhDNCwgMHg3OCwgIC8vIC4uLC4uLi54CiAgICAgICAgICAgICAg
ICAvKiAwQjUwICovICAweDMyLCAweDM2LCAweDQ2LCAweDk0LCAweDgwLCAweDUxLCAweDgy
LCAweDQ1LCAgLy8gMjZGLi5RLkUKICAgICAgICAgICAgICAgIC8qIDBCNTggKi8gIDB4MEQs
IDB4RkMsIDB4MDAsIDB4MTEsIDB4MjcsIDB4QzYsIDB4OEIsIDB4NTYsICAvLyAuLi4uJy4u
VgogICAgICAgICAgICAgICAgLyogMEI2MCAqLyAgMHg5OCwgMHgzMywgMHg3OCwgMHhFQSwg
MHhGMiwgMHg0RCwgMHhFMiwgMHgzNSwgIC8vIC4zeC4uTS41CiAgICAgICAgICAgICAgICAv
KiAwQjY4ICovICAweDBCLCAweEUwLCAweENGLCAweEZGLCAweEZGLCAweDlBLCAweDA1LCAw
eDhDLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBCNzAgKi8gIDB4NkUsIDB4
MEUsIDB4RkMsIDB4RTQsIDB4ODAsIDB4QkQsIDB4NjYsIDB4MDEsICAvLyBuLi4uLi5mLgog
ICAgICAgICAgICAgICAgLyogMEI3OCAqLyAgMHhERSwgMHgyRSwgMHg1OSwgMHgzRSwgMHg3
OSwgMHhGOCwgMHg3NCwgMHhFQywgIC8vIC4uWT55LnQuCiAgICAgICAgICAgICAgICAvKiAw
QjgwICovICAweDZCLCAweDE2LCAweDdFLCAweEFBLCAweEUwLCAweEJBLCAweDY2LCAweDAx
LCAgLy8gay5+Li4uZi4KICAgICAgICAgICAgICAgIC8qIDBCODggKi8gIDB4NUUsIDB4RkUs
IDB4RkYsIDB4RDcsIDB4MkMsIDB4ODAsIDB4NjEsIDB4RTEsICAvLyBeLi4uLC5hLgogICAg
ICAgICAgICAgICAgLyogMEI5MCAqLyAgMHhBRSwgMHg1OSwgMHg0MCwgMHhFRiwgMHg3RSwg
MHgwNCwgMHhGNiwgMHhGRiwgIC8vIC5ZQC5+Li4uCiAgICAgICAgICAgICAgICAvKiAwQjk4
ICovICAweEZGLCAweEZELCAweDA4LCAweEE2LCAweEU2LCAweDRCLCAweDE2LCAweDBELCAg
Ly8gLi4uLi5LLi4KICAgICAgICAgICAgICAgIC8qIDBCQTAgKi8gIDB4QjMsIDB4MTIsIDB4
ODUsIDB4NUIsIDB4MTMsIDB4ODUsIDB4RjEsIDB4MjUsICAvLyAuLi5bLi4uJQogICAgICAg
ICAgICAgICAgLyogMEJBOCAqLyAgMHgwQiwgMHg3MCwgMHg3NCwgMHhDMiwgMHgwNiwgMHhE
MywgMHg3NCwgMHg3RCwgIC8vIC5wdC4uLnR9CiAgICAgICAgICAgICAgICAvKiAwQkIwICov
ICAweEMxLCAweEM2LCAweDBELCAweEU2LCAweEQ0LCAweEEyLCAweDQ2LCAweEU4LCAgLy8g
Li4uLi4uRi4KICAgICAgICAgICAgICAgIC8qIDBCQjggKi8gIDB4MUQsIDB4NTEsIDB4MTcs
IDB4MzYsIDB4NzYsIDB4MzQsIDB4MDYsIDB4QzcsICAvLyAuUS42djQuLgogICAgICAgICAg
ICAgICAgLyogMEJDMCAqLyAgMHgxNSwgMHhDQiwgMHgxNywgMHhBQiwgMHhGNywgMHgyQiwg
MHgxRiwgMHg4NywgIC8vIC4uLi4uKy4uCiAgICAgICAgICAgICAgICAvKiAwQkM4ICovICAw
eDdELCAweDY2LCAweDc4LCAweEJELCAweDMyLCAweERBLCAweDlCLCAweEQ1LCAgLy8gfWZ4
LjIuLi4KICAgICAgICAgICAgICAgIC8qIDBCRDAgKi8gIDB4QjMsIDB4QzMsIDB4M0IsIDB4
OTYsIDB4QjEsIDB4MjIsIDB4RjgsIDB4NjgsICAvLyAuLjsuLiIuaAogICAgICAgICAgICAg
ICAgLyogMEJEOCAqLyAgMHhFQywgMHhDMywgMHg5NiwgMHhDRiwgMHg1OSwgMHg1MSwgMHgx
RSwgMHg4RSwgIC8vIC4uLi5ZUS4uCiAgICAgICAgICAgICAgICAvKiAwQkUwICovICAweDhE
LCAweEY5LCAweDg4LCAweDE1LCAweEU4LCAweDNDLCAweDAyLCAweDg3LCAgLy8gLi4uLi48
Li4KICAgICAgICAgICAgICAgIC8qIDBCRTggKi8gIDB4ODgsIDB4MTYsIDB4MkIsIDB4NkMs
IDB4ODgsIDB4NzcsIDB4MkMsIDB4RjAsICAvLyAuLitsLncsLgogICAgICAgICAgICAgICAg
LyogMEJGMCAqLyAgMHgwQSwgMHhCQSwgMHg2MywgMHg4MSwgMHhGOCwgMHhGRiwgMHg3Riwg
MHhDNywgIC8vIC4uYy4uLi4uCiAgICAgICAgICAgICAgICAvKiAwQkY4ICovICAweDAyLCAw
eDZDLCAweDlGLCAweDNELCAweDcwLCAweDc3LCAweDJDLCAweEIwLCAgLy8gLmwuPXB3LC4K
ICAgICAgICAgICAgICAgIC8qIDBDMDAgKi8gIDB4NUMsIDB4MUMsIDB4RDgsIDB4QzEsIDB4
ODksIDB4REYsIDB4MUIsIDB4RjAsICAvLyBcLi4uLi4uLgogICAgICAgICAgICAgICAgLyog
MEMwOCAqLyAgMHgzNywgMHgyQywgMHhDMCwgMHg1MywgMHg5QSwgMHgxQiwgMHgxNiwgMHg0
RCwgIC8vIDcsLlMuLi5NCiAgICAgICAgICAgICAgICAvKiAwQzEwICovICAweDcyLCAweEMz
LCAweDQyLCAweDFELCAweDRELCAweEFDLCAweDQ3LCAweEMxLCAgLy8gci5CLk0uRy4KICAg
ICAgICAgICAgICAgIC8qIDBDMTggKi8gIDB4RkYsIDB4RkYsIDB4QzQsIDB4QzEsIDB4Mjcs
IDB4MEEsIDB4RkIsIDB4N0UsICAvLyAuLi4uJy4ufgogICAgICAgICAgICAgICAgLyogMEMy
MCAqLyAgMHgwNSwgMHhGRSwgMHg1OSwgMHhGOCwgMHg3RSwgMHgwNSwgMHhEOCwgMHhDNiwg
IC8vIC4uWS5+Li4uCiAgICAgICAgICAgICAgICAvKiAwQzI4ICovICAweDdGLCAweEJGLCAw
eDAyLCAweDJDLCAweEZELCAweEZGLCAweEVGLCAweDU3LCAgLy8gLi4uLC4uLlcKICAgICAg
ICAgICAgICAgIC8qIDBDMzAgKi8gIDB4RjAsIDB4MEYsIDB4OEMsIDB4MUUsIDB4QTksIDB4
MkYsIDB4NTUsIDB4RTAsICAvLyAuLi4uLi9VLgogICAgICAgICAgICAgICAgLyogMEMzOCAq
LyAgMHhCQSwgMHg2QSwgMHhFMSwgMHg0MSwgMHg1RiwgMHhCNSwgMHg2MCwgMHhFNiwgIC8v
IC5qLkFfLmAuCiAgICAgICAgICAgICAgICAvKiAwQzQwICovICAweDNDLCAweEZFLCAweEEy
LCAweDAyLCAweDFFLCAweDdGLCAweDAxLCAweEFELCAgLy8gPC4uLi4uLi4KICAgICAgICAg
ICAgICAgIC8qIDBDNDggKi8gIDB4MzcsIDB4MjksIDB4N0UsIDB4NTAsIDB4N0EsIDB4NTYs
IDB4NzgsIDB4MjIsICAvLyA3KX5QelZ4IgogICAgICAgICAgICAgICAgLyogMEM1MCAqLyAg
MHgzMiwgMHgxQSwgMHg0NywgMHg3QSwgMHg3MywgMHhCMCwgMHg3MSwgMHgyQywgIC8vIDIu
R3pzLnEsCiAgICAgICAgICAgICAgICAvKiAwQzU4ICovICAweDgxLCAweDFCLCAweEQxLCAw
eEM3LCAweDVGLCAweDMwLCAweDhDLCAweEUwLCAgLy8gLi4uLl8wLi4KICAgICAgICAgICAg
ICAgIC8qIDBDNjAgKi8gIDB4RTEsIDB4RTksIDB4OTksIDB4RTEsIDB4MzUsIDB4Q0EsIDB4
RDcsIDB4MjcsICAvLyAuLi4uNS4uJwogICAgICAgICAgICAgICAgLyogMEM2OCAqLyAgMHhE
RiwgMHhBNSwgMHg5RSwgMHhBMSwgMHg4MiwgMHgzRCwgMHg0RCwgMHhGOSwgIC8vIC4uLi4u
PU0uCiAgICAgICAgICAgICAgICAvKiAwQzcwICovICAweDAyLCAweEVDLCAweEFCLCAweDk0
LCAweDcxLCAweERFLCAweEEyLCAweEEyLCAgLy8gLi4uLnEuLi4KICAgICAgICAgICAgICAg
IC8qIDBDNzggKi8gIDB4QzQsIDB4NzksIDB4OEEsIDB4MzIsIDB4NjYsIDB4OTQsIDB4NzAs
IDB4MTEsICAvLyAueS4yZi5wLgogICAgICAgICAgICAgICAgLyogMEM4MCAqLyAgMHgyMiwg
MHgzRCwgMHg1MywgMHgxOSwgMHgyMiwgMHg3QywgMHg4NCwgMHg2OCwgIC8vICI9Uy4ifC5o
CiAgICAgICAgICAgICAgICAvKiAwQzg4ICovICAweENGLCAweDUzLCAweDhGLCAweDUzLCAw
eEJFLCAweDRBLCAweEYxLCAweEZGLCAgLy8gLlMuUy5KLi4KICAgICAgICAgICAgICAgIC8q
IDBDOTAgKi8gIDB4RkYsIDB4NTUsIDB4MEEsIDB4N0MsIDB4OTIsIDB4QUUsIDB4NTIsIDB4
MDAsICAvLyAuVS58Li5SLgogICAgICAgICAgICAgICAgLyogMEM5OCAqLyAgMHg0RCwgMHg4
NiwgMHhGRiwgMHgyQSwgMHgwNSwgMHhENiwgMHg5MywgMHgwMywgIC8vIE0uLiouLi4uCiAg
ICAgICAgICAgICAgICAvKiAwQ0EwICovICAweEZFLCAweEUyLCAweDgwLCAweDNELCAweDM4
LCAweEIwLCAweEJCLCAweDE0LCAgLy8gLi4uPTguLi4KICAgICAgICAgICAgICAgIC8qIDBD
QTggKi8gIDB4NzAsIDB4RjksIDB4RkYsIDB4OUYsIDB4N0UsIDB4ODEsIDB4RUYsIDB4NEMs
ICAvLyBwLi4ufi4uTAogICAgICAgICAgICAgICAgLyogMENCMCAqLyAgMHhDMSwgMHg3NCwg
MHhGQSwgMHgwNSwgMHg1OCwgMHhGNiwgMHhGRiwgMHgzRiwgIC8vIC50Li5YLi4/CiAgICAg
ICAgICAgICAgICAvKiAwQ0I4ICovICAweEZELCAweDAyLCAweEVDLCAweEI4LCAweDFFLCAw
eDgxLCAweDJGLCAweEY5LCAgLy8gLi4uLi4uLy4KICAgICAgICAgICAgICAgIC8qIDBDQzAg
Ki8gIDB4MUQsIDB4OEIsIDB4NDYsIDB4NUEsIDB4ODksIDB4QTIsIDB4QUUsIDB4ODksICAv
LyAuLkZaLi4uLgogICAgICAgICAgICAgICAgLyogMENDOCAqLyAgMHhDMiwgMHhGOCwgMHg4
RSwgMHgwNSwgMHg5OCwgMHhGOSwgMHhGRiwgMHhERiwgIC8vIC4uLi4uLi4uCiAgICAgICAg
ICAgICAgICAvKiAwQ0QwICovICAweEIxLCAweDMwLCAweDU3LCAweDM1LCAweDhGLCAweDFB
LCAweDJDLCAweEMzLCAgLy8gLjBXNS4uLC4KICAgICAgICAgICAgICAgIC8qIDBDRDggKi8g
IDB4N0EsIDB4RkYsIDB4RjEsIDB4NjgsIDB4REYsIDB4MTIsIDB4MEUsIDB4RjgsICAvLyB6
Li5oLi4uLgogICAgICAgICAgICAgICAgLyogMENFMCAqLyAgMHg3QywgMHgwRCwgMHg3Niwg
MHgxNiwgMHg2RiwgMHhEMSwgMHhGMCwgMHg2RiwgIC8vIHwudi5vLi5vCiAgICAgICAgICAg
ICAgICAvKiAwQ0U4ICovICAweDU5LCAweEIwLCAweEE3LCAweEYwLCAweDYwLCAweEY1LCAw
eDEwLCAweEYzLCAgLy8gWS4uLmAuLi4KICAgICAgICAgICAgICAgIC8qIDBDRjAgKi8gIDB4
MjYsIDB4NzAsIDB4QTQsIDB4NkYsIDB4NTIsIDB4MkYsIDB4QkUsIDB4NkMsICAvLyAmcC5v
Ui8ubAogICAgICAgICAgICAgICAgLyogMENGOCAqLyAgMHg2NCwgMHgxMSwgMHg3QywgMHhB
MCwgMHg3OCwgMHhDQiwgMHgzMiwgMHg1MCwgIC8vIGQufC54LjJQCiAgICAgICAgICAgICAg
ICAvKiAwRDAwICovICAweENDLCAweEI3LCAweEFCLCAweEE3LCAweDYwLCAweDYzLCAweDQ0
LCAweDg4LCAgLy8gLi4uLmBjRC4KICAgICAgICAgICAgICAgIC8qIDBEMDggKi8gIDB4RjUs
IDB4MEEsIDB4RUMsIDB4RjMsIDB4NDMsIDB4RDAsIDB4MzAsIDB4OTEsICAvLyAuLi4uQy4w
LgogICAgICAgICAgICAgICAgLyogMEQxMCAqLyAgMHgxOCwgMHg2NiwgMHg3NCwgMHgxRiwg
MHhCMywgMHg3QywgMHhDQiwgMHgwMiwgIC8vIC5mdC4ufC4uCiAgICAgICAgICAgICAgICAv
KiAwRDE4ICovICAweEFGLCAweEIwLCAweDVCLCAweDE2LCAweDIwLCAweEZFLCAweEZGLCAw
eDdGLCAgLy8gLi5bLiAuLi4KICAgICAgICAgICAgICAgIC8qIDBEMjAgKi8gIDB4Q0IsIDB4
MDIsIDB4REIsIDB4MDksIDB4MDEsIDB4NzcsIDB4Q0IsIDB4MDIsICAvLyAuLi4uLncuLgog
ICAgICAgICAgICAgICAgLyogMEQyOCAqLyAgMHhDRiwgMHhERCwgMHg4MSwgMHg5RCwgMHgx
RCwgMHg3MCwgMHg1NywgMHgwNywgIC8vIC4uLi4ucFcuCiAgICAgICAgICAgICAgICAvKiAw
RDMwICovICAweEVDLCAweEQxLCAweDAxLCAweDBCLCAweEY5LCAweDEwLCAweDBDLCAweDM4
LCAgLy8gLi4uLi4uLjgKICAgICAgICAgICAgICAgIC8qIDBEMzggKi8gIDB4NTIsIDB4RjEs
IDB4NUEsIDB4RDAsIDB4QjUsIDB4OEEsIDB4ODAsIDB4RTgsICAvLyBSLlouLi4uLgogICAg
ICAgICAgICAgICAgLyogMEQ0MCAqLyAgMHhBMiwgMHhDNSwgMHg4RiwgMHgxMywgMHhENiwg
MHg3NSwgMHhEMSwgMHgyMiwgIC8vIC4uLi4udS4iCiAgICAgICAgICAgICAgICAvKiAwRDQ4
ICovICAweDkzLCAweDA1LCAweEUzLCAweDU1LCAweDBCLCAweDk4LCAweEZGLCAweEZGLCAg
Ly8gLi4uVS4uLi4KICAgICAgICAgICAgICAgIC8qIDBENTAgKi8gIDB4QUYsIDB4NUEsIDB4
MDAsIDB4RkYsIDB4MDIsIDB4NUUsIDB4QjUsIDB4ODAsICAvLyAuWi4uLl4uLgogICAgICAg
ICAgICAgICAgLyogMEQ1OCAqLyAgMHhERSwgMHgyRCwgMHgwOSwgMHhGRSwgMHhGRiwgMHhG
RiwgMHg5NiwgMHgwNCwgIC8vIC4tLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwRDYwICov
ICAweEZFLCAweENCLCAweDE2LCAweEUwLCAweEY4LCAweDAyLCAweEU1LCAweERCLCAgLy8g
Li4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBENjggKi8gIDB4OEYsIDB4MkYsIDB4NUIs
IDB4QzAsIDB4RTUsIDB4NzIsIDB4MUMsIDB4RTEsICAvLyAuL1suLnIuLgogICAgICAgICAg
ICAgICAgLyogMEQ3MCAqLyAgMHg0MCwgMHg5RiwgMHhCMCwgMHg1RSwgMHg4RSwgMHgxRiwg
MHg5MiwgMHgwRCwgIC8vIEAuLl4uLi4uCiAgICAgICAgICAgICAgICAvKiAwRDc4ICovICAw
eEY1LCAweDk0LCAweDE1LCAweEU0LCAweDA1LCAweEVCLCAweDlELCAweEVBLCAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgICAgIC8qIDBEODAgKi8gIDB4RkQsIDB4RDgsIDB4NjAsIDB4
MDcsIDB4MTcsIDB4MkQsIDB4NTAsIDB4OTQsICAvLyAuLmAuLi1QLgogICAgICAgICAgICAg
ICAgLyogMEQ4OCAqLyAgMHhDNywgMHg4NywgMHhGNywgMHhFMywgMHhFNywgMHhBQywgMHgz
NywgMHgyRSwgIC8vIC4uLi4uLjcuCiAgICAgICAgICAgICAgICAvKiAwRDkwICovICAweDgz
LCAweDE4LCAweEVCLCAweDU1LCAweEQ5LCAweDU3LCAweDJGLCAweDFGLCAgLy8gLi4uVS5X
Ly4KICAgICAgICAgICAgICAgIC8qIDBEOTggKi8gIDB4QjgsIDB4NDIsIDB4MUMsIDB4RDMs
IDB4MjMsIDB4QjMsIDB4MkYsIDB4NUIsICAvLyAuQi4uIy4vWwogICAgICAgICAgICAgICAg
LyogMERBMCAqLyAgMHhFMCwgMHhGRiwgMHhGRiwgMHg1RiwgMHhCNiwgMHgwMCwgMHg0Niwg
MHhERCwgIC8vIC4uLl8uLkYuCiAgICAgICAgICAgICAgICAvKiAwREE4ICovICAweDFELCAw
eEY4LCAweDY1LCAweDBCLCAweEIwLCAweEY0LCAweEZGLCAweEJGLCAgLy8gLi5lLi4uLi4K
ICAgICAgICAgICAgICAgIC8qIDBEQjAgKi8gIDB4NkMsIDB4MDEsIDB4ODcsIDB4QzksIDB4
ODIsIDB4RjMsIDB4QjIsIDB4MDUsICAvLyBsLi4uLi4uLgogICAgICAgICAgICAgICAgLyog
MERCOCAqLyAgMHhGMCwgMHhGMCwgMHhGRiwgMHg3RiwgMHhEOSwgMHgwMiwgMHhDQywgMHhE
RiwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwREMwICovICAweDkyLCAweEMw
LCAweDlCLCAweEZGLCAweEIyLCAweDQ1LCAweDQzLCAweEFELCAgLy8gLi4uLi5FQy4KICAg
ICAgICAgICAgICAgIC8qIDBEQzggKi8gIDB4NDUsIDB4NjEsIDB4NTcsIDB4NDUsIDB4NjEs
IDB4N0MsIDB4RDksIDB4MDIsICAvLyBFYVdFYXwuLgogICAgICAgICAgICAgICAgLyogMERE
MCAqLyAgMHgxQywgMHg4RCwgMHhEQywgMHhFMywgMHhDNiwgMHhGRSwgMHhGRiwgMHhDNywg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwREQ4ICovICAweDBELCAweEZGLCAw
eDM2LCAweDE1LCAweEU0LCAweDU1LCAweEM4LCAweDQwLCAgLy8gLi42Li5VLkAKICAgICAg
ICAgICAgICAgIC8qIDBERTAgKi8gIDB4MjEsIDB4MEYsIDB4RUUsIDB4QkMsIDB4QzEsIDB4
NzAsIDB4REIsIDB4ODIsICAvLyAhLi4uLnAuLgogICAgICAgICAgICAgICAgLyogMERFOCAq
LyAgMHg3RCwgMHhCQywgMHg3QSwgMHg5RiwgMHg3QSwgMHhENCwgMHhGMiwgMHhEOSwgIC8v
IH0uei56Li4uCiAgICAgICAgICAgICAgICAvKiAwREYwICovICAweEQ4LCAweDY3LCAweEFD
LCAweDA4LCAweDJGLCAweDVBLCAweDQ2LCAweDBCLCAgLy8gLmcuLi9aRi4KICAgICAgICAg
ICAgICAgIC8qIDBERjggKi8gIDB4RjUsIDB4OUUsIDB4RUMsIDB4RjEsIDB4ODYsIDB4OEEs
IDB4RTUsIDB4N0IsICAvLyAuLi4uLi4uewogICAgICAgICAgICAgICAgLyogMEUwMCAqLyAg
MHhCMiwgMHhDRiwgMHgxNSwgMHg5MSwgMHhERSwgMHg5OCwgMHg4RCwgMHhGNywgIC8vIC4u
Li4uLi4uCiAgICAgICAgICAgICAgICAvKiAwRTA4ICovICAweEEyLCAweDZDLCAweEFDLCAw
eDM3LCAweEFGLCAweDYwLCAweEExLCAweEMyLCAgLy8gLmwuNy5gLi4KICAgICAgICAgICAg
ICAgIC8qIDBFMTAgKi8gIDB4MTgsIDB4RjYsIDB4MDksIDB4Q0IsIDB4QjcsIDB4MkQsIDB4
ODAsIDB4NDksICAvLyAuLi4uLi0uSQogICAgICAgICAgICAgICAgLyogMEUxOCAqLyAgMHhG
RiwgMHhGRiwgMHhEQiwgMHgxNiwgMHhGMCwgMHgzOSwgMHgzQywgMHg2MCwgIC8vIC4uLi4u
OTxgCiAgICAgICAgICAgICAgICAvKiAwRTIwICovICAweDZGLCAweDRDLCAweEYwLCAweDZG
LCAweDVCLCAweDgwLCAweDFGLCAweDI1LCAgLy8gb0wub1suLiUKICAgICAgICAgICAgICAg
IC8qIDBFMjggKi8gIDB4QjcsIDB4MkQsIDB4N0EsIDB4REYsIDB4RjIsIDB4NkQsIDB4OEIs
IDB4REYsICAvLyAuLXouLm0uLgogICAgICAgICAgICAgICAgLyogMEUzMCAqLyAgMHgyQiwg
MHgxMiwgMHg1NCwgMHg3NiwgMHhEQiwgMHg0MiwgMHg0RCwgMHgxNiwgIC8vICsuVHYuQk0u
CiAgICAgICAgICAgICAgICAvKiAwRTM4ICovICAweDZDLCAweEQ3LCAweDJELCAweEMwLCAw
eEM3LCAweEZGLCAweEZGLCAweEJBLCAgLy8gbC4tLi4uLi4KICAgICAgICAgICAgICAgIC8q
IDBFNDAgKi8gIDB4MDUsIDB4NzAsIDB4MkQsIDB4RTIsIDB4NzUsIDB4MEIsIDB4RTgsIDB4
REQsICAvLyAucC0udS4uLgogICAgICAgICAgICAgICAgLyogMEU0OCAqLyAgMHg5MywgMHhD
MCwgMHhGOSwgMHhGRiwgMHhCRiwgMHgyNywgMHg4MSwgMHg0RiwgIC8vIC4uLi4uJy5PCiAg
ICAgICAgICAgICAgICAvKiAwRTUwICovICAweEM1LCAweDRGLCAweENCLCAweDA0LCAweDhB
LCAweEI1LCAweDE4LCAweDA1LCAgLy8gLk8uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBF
NTggKi8gIDB4NUUsIDB4MTYsIDB4ODUsIDB4RjEsIDB4N0QsIDB4MEIsIDB4NzAsIDB4NzQs
ICAvLyBeLi4ufS5wdAogICAgICAgICAgICAgICAgLyogMEU2MCAqLyAgMHhDQiwgMHhDMSwg
MHg5RCwgMHhCOSwgMHg4MSwgMHgxMSwgMHhEMCwgMHhEOSwgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgICAgICAvKiAwRTY4ICovICAweEY4LCAweEMyLCAweDA1LCAweDdGLCAweEE0LCAw
eDBGLCAweDBFLCAweDBGLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBFNzAg
Ki8gIDB4NTUsIDB4QkUsIDB4MjAsIDB4RkIsIDB4N0UsIDB4RkMsIDB4QTQsIDB4RTUsICAv
LyBVLiAufi4uLgogICAgICAgICAgICAgICAgLyogMEU3OCAqLyAgMHg1MywgMHhCMiwgMHg0
RiwgMHg1RCwgMHhCRSwgMHg3MCwgMHhCMSwgMHhFMywgIC8vIFMuT10ucC4uCiAgICAgICAg
ICAgICAgICAvKiAwRTgwICovICAweDE2LCAweDNGLCAweDdBLCAweDE5LCAweDIzLCAweDRB
LCAweENDLCAweDI4LCAgLy8gLj96LiNKLigKICAgICAgICAgICAgICAgIC8qIDBFODggKi8g
IDB4OTEsIDB4NjIsIDB4NDQsIDB4RjMsIDB4OEQsIDB4MkIsIDB4NzIsIDB4OTAsICAvLyAu
YkQuLityLgogICAgICAgICAgICAgICAgLyogMEU5MCAqLyAgMHgwMywgMHgzMCwgMHhDNCwg
MHgwQiwgMHgxNywgMHg3OCwgMHhBNSwgMHg1RCwgIC8vIC4wLi4ueC5dCiAgICAgICAgICAg
ICAgICAvKiAwRTk4ICovICAweEI4LCAweEQwLCAweEZGLCAweEZGLCAweDBCLCAweDE3LCAw
eEMwLCAweDBCLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBFQTAgKi8gIDB4
OTQsIDB4MTcsIDB4MkUsIDB4RjAsIDB4REQsIDB4MUUsIDB4RjgsIDB4OEQsICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAgICAgLyogMEVBOCAqLyAgMHgxNywgMHg0QywgMHg4NywgMHgw
NywgMHg3RSwgMHhFMywgMHgwMiwgMHhFRSwgIC8vIC5MLi5+Li4uCiAgICAgICAgICAgICAg
ICAvKiAwRUIwICovICAweEZGLCAweEZGLCAweDFCLCAweDE3LCAweDM4LCAweEI0LCAweERD
LCAweEI4LCAgLy8gLi4uLjguLi4KICAgICAgICAgICAgICAgIC8qIDBFQjggKi8gIDB4QTgs
IDB4OEUsIDB4MUIsIDB4MTcsIDB4OTQsIDB4RDksIDB4ODIsIDB4RjcsICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAgICAgLyogMEVDMCAqLyAgMHhDNiwgMHgwNSwgMHhGMCwgMHhGMCwg
MHhGRiwgMHg3RiwgMHhFMywgMHgwMiwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAv
KiAwRUM4ICovICAweEM2LCAweDIxLCAweDZGLCAweDVDLCAweDQwLCAweEVGLCAweEE2LCAw
eDA0LCAgLy8gLiFvXEAuLi4KICAgICAgICAgICAgICAgIC8qIDBFRDAgKi8gIDB4M0MsIDB4
QUYsIDB4NUMsIDB4ODAsIDB4QzUsIDB4RkYsIDB4RkYsIDB4QzksICAvLyA8LlwuLi4uLgog
ICAgICAgICAgICAgICAgLyogMEVEOCAqLyAgMHgxQiwgMHgzOCwgMHg1RCwgMHhCOSwgMHhD
MCwgMHg3MiwgMHhDOCwgMHg3QSwgIC8vIC44XS4uci56CiAgICAgICAgICAgICAgICAvKiAw
RUUwICovICAweEM3LCAweDNBLCAweDhCLCAweEI3LCAweEFBLCAweDM4LCAweEFGLCAweEND
LCAgLy8gLjouLi44Li4KICAgICAgICAgICAgICAgIC8qIDBFRTggKi8gIDB4QkUsIDB4NTMs
IDB4M0MsIDB4NkIsIDB4RjksIDB4OUUsIDB4MTUsIDB4MjksICAvLyAuUzxrLi4uKQogICAg
ICAgICAgICAgICAgLyogMEVGMCAqLyAgMHhDMiwgMHgyQiwgMHg5NywgMHhBRiwgMHhDQSwg
MHgzRSwgMHg2QywgMHg0NSwgIC8vIC4rLi4uPmxFCiAgICAgICAgICAgICAgICAvKiAwRUY4
ICovICAweDg5LCAweDExLCAweDI4LCAweEU4LCAweDdCLCAweDE3LCAweDlCLCAweEM1LCAg
Ly8gLi4oLnsuLi4KICAgICAgICAgICAgICAgIC8qIDBGMDAgKi8gIDB4NTMsIDB4RDcsIDB4
MzMsIDB4RDcsIDB4MjMsIDB4QjMsIDB4RDEsIDB4ODIsICAvLyBTLjMuIy4uLgogICAgICAg
ICAgICAgICAgLyogMEYwOCAqLyAgMHg4NSwgMHgwRCwgMHgxMywgMHgzRSwgMHhDNiwgMHgy
QiwgMHgxNywgMHhDMCwgIC8vIC4uLj4uKy4uCiAgICAgICAgICAgICAgICAvKiAwRjEwICov
ICAweDlFLCAweEZGLCAweEZGLCAweDk1LCAweDBCLCAweDM4LCAweERELCAweDFFLCAgLy8g
Li4uLi44Li4KICAgICAgICAgICAgICAgIC8qIDBGMTggKi8gIDB4RjgsIDB4OTUsIDB4MEIs
IDB4QjAsIDB4M0QsIDB4NUIsIDB4RjAsIDB4NUUsICAvLyAuLi4uPVsuXgogICAgICAgICAg
ICAgICAgLyogMEYyMCAqLyAgMHhCOSwgMHg4MCwgMHhGRCwgMHhGRiwgMHhGRiwgMHhDQSwg
MHgwNSwgMHhGMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwRjI4ICovICAw
eEZGLCAweEZGLCAweDdGLCAweDUzLCAweDAyLCAweDBFLCAweDNBLCAweEFFLCAgLy8gLi4u
Uy4uOi4KICAgICAgICAgICAgICAgIC8qIDBGMzAgKi8gIDB4NUMsIDB4ODAsIDB4RUMsIDB4
RDMsIDB4MzcsIDB4RDgsIDB4NjYsIDB4Q0UsICAvLyBcLi4uNy5mLgogICAgICAgICAgICAg
ICAgLyogMEYzOCAqLyAgMHhBRiwgMHg1QywgMHg3MCwgMHg2RiwgMHgwMywgMHg0RiwgMHgz
OSwgMHgzRSwgIC8vIC5ccG8uTzk+CiAgICAgICAgICAgICAgICAvKiAwRjQwICovICAweDY1
LCAweDNELCAweDYzLCAweDNELCAweDcwLCAweEY5LCAweEI2LCAweENDLCAgLy8gZT1jPXAu
Li4KICAgICAgICAgICAgICAgIC8qIDBGNDggKi8gIDB4ODYsIDB4MUIsIDB4RUUsIDB4NUQs
IDB4RUIsIDB4NkQsIDB4Q0IsIDB4MDcsICAvLyAuLi5dLm0uLgogICAgICAgICAgICAgICAg
LyogMEY1MCAqLyAgMHg2NiwgMHg0MywgMHgzQywgMHgzNSwgMHhGQiwgMHhDOCwgMHgxNSwg
MHgyQSwgIC8vIGZDPDUuLi4qCiAgICAgICAgICAgICAgICAvKiAwRjU4ICovICAweDhBLCAw
eDMxLCAweEEyLCAweEJDLCAweDNDLCAweDFCLCAweDI5LCAweDQ0LCAgLy8gLjEuLjwuKUQK
ICAgICAgICAgICAgICAgIC8qIDBGNjAgKi8gIDB4RDQsIDB4NzgsIDB4MzEsIDB4ODIsIDB4
NDcsIDB4N0EsIDB4QTQsIDB4RjEsICAvLyAueDEuR3ouLgogICAgICAgICAgICAgICAgLyog
MEY2OCAqLyAgMHg5NSwgMHgwQiwgMHg4QywgMHhGRiwgMHhGRiwgMHgyQiwgMHgxNywgMHhD
MCwgIC8vIC4uLi4uKy4uCiAgICAgICAgICAgICAgICAvKiAwRjcwICovICAweEIyLCAweEQz
LCAweDAzLCAweEY2LCAweEQ2LCAweDA0LCAweDhFLCAweDJCLCAgLy8gLi4uLi4uLisKICAg
ICAgICAgICAgICAgIC8qIDBGNzggKi8gIDB4MTcsIDB4RjAsIDB4RkMsIDB4RkYsIDB4NUYs
IDB4QjksIDB4QzAsIDB4QUIsICAvLyAuLi4uXy4uLgogICAgICAgICAgICAgICAgLyogMEY4
MCAqLyAgMHhFNiwgMHhDQSwgMHg0NSwgMHg5NSwgMHg1QywgMHhCOSwgMHg1MCwgMHhGMiwg
IC8vIC4uRS5cLlAuCiAgICAgICAgICAgICAgICAvKiAwRjg4ICovICAweDIwLCAweEE0LCAw
eEVELCAweENBLCAweDg1LCAweDlBLCAweDJELCAweDE4LCAgLy8gIC4uLi4uLS4KICAgICAg
ICAgICAgICAgIC8qIDBGOTAgKi8gIDB4RUYsIDB4NUMsIDB4MDAsIDB4RTMsIDB4RkUsIDB4
RkYsIDB4NzcsIDB4MkUsICAvLyAuXC4uLi53LgogICAgICAgICAgICAgICAgLyogMEY5OCAq
LyAgMHg4MCwgMHgxQiwgMHg1NywgMHgyNSwgMHhCMCwgMHgyQSwgMHhCNCwgMHhFOSwgIC8v
IC4uVyUuKi4uCiAgICAgICAgICAgICAgICAvKiAwRkEwICovICAweDUzLCAweEEzLCAweDUx
LCAweEFCLCAweDA2LCAweDY1LCAweDZBLCAweDk0LCAgLy8gUy5RLi5lai4KICAgICAgICAg
ICAgICAgIC8qIDBGQTggKi8gIDB4NjksIDB4NTAsIDB4QUIsIDB4NEYsIDB4QTUsIDB4QzYs
IDB4OEMsIDB4RDUsICAvLyBpUC5PLi4uLgogICAgICAgICAgICAgICAgLyogMEZCMCAqLyAg
MHhCOSwgMHgwOCwgMHhGOSwgMHg5NiwgMHg0MSwgMHhDNSwgMHhBQywgMHg0RCwgIC8vIC4u
Li5BLi5NCiAgICAgICAgICAgICAgICAvKiAwRkI4ICovICAweDgzLCAweDczLCAweDE0LCAw
eDEwLCAweDJBLCAweDVCLCAweDAyLCAweDA4LCAgLy8gLnMuLipbLi4KICAgICAgICAgICAg
ICAgIC8qIDBGQzAgKi8gIDB4MEIsIDB4RjksIDB4MUYsIDB4MTIsIDB4QTAsIDB4ODMsIDB4
N0QsIDB4QkUsICAvLyAuLi4uLi59LgogICAgICAgICAgICAgICAgLyogMEZDOCAqLyAgMHgz
NCwgMHg2MiwgMHhCMiwgMHgzNCwgMHg4MSwgMHgzOCwgMHhCRSwgMHgwOSwgIC8vIDRiLjQu
OC4uCiAgICAgICAgICAgICAgICAvKiAwRkQwICovICAweDg4LCAweDQ2LCAweDhFLCAweDkz
LCAweDU2LCAweDAxLCAweEM0LCAweDcyLCAgLy8gLkYuLlYuLnIKICAgICAgICAgICAgICAg
IC8qIDBGRDggKi8gIDB4ODMsIDB4MDgsIDB4QzgsIDB4MkEsIDB4MTYsIDB4MkUsIDB4MjAs
IDB4NkIsICAvLyAuLi4qLi4gawogICAgICAgICAgICAgICAgLyogMEZFMCAqLyAgMHhGRSwg
MHhFNSwgMHgwOCwgMHhEQywgMHgzQSwgMHg3NSwgMHgwMCwgMHhCMSwgIC8vIC4uLi46dS4u
CiAgICAgICAgICAgICAgICAvKiAwRkU4ICovICAweDk0LCAweDIwLCAweDM0LCAweEQxLCAw
eDkzLCAweDQwLCAweEEwLCAweDhFLCAgLy8gLiA0Li5ALi4KICAgICAgICAgICAgICAgIC8q
IDBGRjAgKi8gIDB4MDcsIDB4QTIsIDB4QzEsIDB4MTAsIDB4MUEsIDB4MDEsIDB4MzksIDB4
MTgsICAvLyAuLi4uLi45LgogICAgICAgICAgICAgICAgLyogMEZGOCAqLyAgMHg4NSwgMHg4
MCwgMHgyQywgMHhDMywgMHgwOSwgMHgzOCwgMHgxMywgMHg2MCwgIC8vIC4uLC4uOC5gCiAg
ICAgICAgICAgICAgICAvKiAxMDAwICovICAweEU1LCAweEZGLCAweDBGLCAweEM0LCAweEU0
LCAweDgzLCAweDUwLCAweEMxLCAgLy8gLi4uLi4uUC4KICAgICAgICAgICAgICAgIC8qIDEw
MDggKi8gIDB4NUUsIDB4NDAsIDB4OTksIDB4N0EsIDB4MTAsIDB4MDEsIDB4NTksIDB4RTks
ICAvLyBeQC56Li5ZLgogICAgICAgICAgICAgICAgLyogMTAxMCAqLyAgMHhEMiwgMHgwNSwg
MHg2NCwgMHhERCwgMHgyMCwgMHgwMiwgMHg3MiwgMHg1NiwgIC8vIC4uZC4gLnJWCiAgICAg
ICAgICAgICAgICAvKiAxMDE4ICovICAweDMzLCAweEUwLCAweDJDLCAweEEzLCAweDFCLCAw
eDIwLCAweEE2LCAweEYwLCAgLy8gMy4sLi4gLi4KICAgICAgICAgICAgICAgIC8qIDEwMjAg
Ki8gIDB4MDksIDB4MjEsIDB4MTAsIDB4NkIsIDB4RDIsIDB4MDMsIDB4Q0EsIDB4MDQsICAv
LyAuIS5rLi4uLgogICAgICAgICAgICAgICAgLyogMTAyOCAqLyAgMHg4MiwgMHhFOCwgMHgy
QSwgMHg0MiwgMHhGQywgMHgwMCwgMHgzMSwgMHg2OSwgIC8vIC4uKkIuLjFpCiAgICAgICAg
ICAgICAgICAvKiAxMDMwICovICAweDIwLCAweDAyLCAweDcyLCAweDlDLCAweDhCLCAweDhC
LCAweEMwLCAweDFELCAgLy8gIC5yLi4uLi4KICAgICAgICAgICAgICAgIC8qIDEwMzggKi8g
IDB4NDcsIDB4MTEsIDB4MjAsIDB4NzUsIDB4MzQsIDB4NUMsIDB4MEEsIDB4NDIsICAvLyBH
LiB1NFwuQgogICAgICAgICAgICAgICAgLyogMTA0MCAqLyAgMHhDNSwgMHg3RiwgMHhEOSwg
MHgwNCwgMHg2MiwgMHg0MSwgMHg5NiwgMHhDMCwgIC8vIC4uLi5iQS4uCiAgICAgICAgICAg
ICAgICAvKiAxMDQ4ICovICAweDI4LCAweDA4LCAweDhELCAweEEwLCAweDA5LCAweDg0LCAw
eEM5LCAweEYzLCAgLy8gKC4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDEwNTAgKi8gIDB4
MDQsIDB4QzIsIDB4NDIsIDB4ODksIDB4MUEsIDB4MDIsIDB4MEIsIDB4QTIsICAvLyAuLkIu
Li4uLgogICAgICAgICAgICAgICAgLyogMTA1OCAqLyAgMHg2QSwgMHg4OCwgMHhENCwgMHgx
NSwgMHgwOCwgMHgwQiwgMHhGQywgMHg2NCwgIC8vIGouLi4uLi5kCiAgICAgICAgICAgICAg
ICAvKiAxMDYwICovICAweEQwLCAweDYwLCAweDlDLCAweDFFLCAweDQ0LCAweDQwLCAweDRF
LCAweEZBLCAgLy8gLmAuLkRATi4KICAgICAgICAgICAgICAgIC8qIDEwNjggKi8gIDB4RjIs
IDB4MEEsIDB4NDQsIDB4NzIsIDB4ODMsIDB4MDgsIDB4QzgsIDB4RjksICAvLyAuLkRyLi4u
LgogICAgICAgICAgICAgICAgLyogMTA3MCAqLyAgMHg5RiwgMHgyOCwgMHgwMiwgMHg3Nywg
MHhFQSwgMHg3NywgMHg4NiwgMHg4NiwgIC8vIC4oLncudy4uCiAgICAgICAgICAgICAgICAv
KiAxMDc4ICovICAweDRGLCAweDNFLCAweDVGLCAweDQxLCAweDg4LCAweEI4LCAweDFGLCAw
eDU4LCAgLy8gTz5fQS4uLlgKICAgICAgICAgICAgICAgIC8qIDEwODAgKi8gIDB4NTAsIDB4
QTIsIDB4MTQsIDB4NDQsIDB4NDAsIDB4NTYsIDB4RjYsIDB4RkYsICAvLyBQLi5EQFYuLgog
ICAgICAgICAgICAgICAgLyogMTA4OCAqLyAgMHgxMiwgMHg5MCwgMHg3NSwgMHg4MiwgMHgw
OCwgMHhDOCwgMHg3QSwgMHg5RiwgIC8vIC4udS4uLnouCiAgICAgICAgICAgICAgICAvKiAx
MDkwICovICAweEQ1LCAweDBGLCAweDAyLCAweEVDLCAweDFGLCAweEY2LCAweDIwLCAweEMw
LCAgLy8gLi4uLi4uIC4KICAgICAgICAgICAgICAgIC8qIDEwOTggKi8gIDB4NDAsIDB4Njgs
IDB4QUEsIDB4RTcsIDB4OTcsIDB4NDAsIDB4MUQsIDB4MTEsICAvLyBAaC4uLkAuLgogICAg
ICAgICAgICAgICAgLyogMTBBMCAqLyAgMHg0NCwgMHgwMywgMHgyNSwgMHhFQSwgMHg4MCwg
MHg1OCwgMHgzOCwgMHgxMCwgIC8vIEQuJS4uWDguCiAgICAgICAgICAgICAgICAvKiAxMEE4
ICovICAweDBELCAweDkwLCAweEI4LCAweDAzLCAweDY3LCAweEQxLCAweEVDLCAweDAxLCAg
Ly8gLi4uLmcuLi4KICAgICAgICAgICAgICAgIC8qIDEwQjAgKi8gIDB4MzEsIDB4NjEsIDB4
REYsIDB4MTYsIDB4ODEsIDB4NTgsIDB4ODgsIDB4M0YsICAvLyAxYS4uLlguPwogICAgICAg
ICAgICAgICAgLyogMTBCOCAqLyAgMHgxMCwgMHgyNiwgMHhGRCwgMHhGNSwgMHgyMSwgMHg0
MCwgMHg0QiwgMHg3RSwgIC8vIC4mLi4hQEt+CiAgICAgICAgICAgICAgICAvKiAxMEMwICov
ICAweDA4LCAweDFELCAweDIwLCAweDAzLCAweEExLCAweDAxLCAweDdGLCAweDI0LCAgLy8g
Li4gLi4uLiQKICAgICAgICAgICAgICAgIC8qIDEwQzggKi8gIDB4MUEsIDB4ODIsIDB4RDMs
IDB4ODIsIDB4MDgsIDB4QzgsIDB4QzksIDB4MUUsICAvLyAuLi4uLi4uLgogICAgICAgICAg
ICAgICAgLyogMTBEMCAqLyAgMHgyMywgMHgwMiwgMHg3MiwgMHg0RSwgMHgxMCwgMHgwRCwg
MHg4QywgMHhGQywgIC8vICMuck4uLi4uCiAgICAgICAgICAgICAgICAvKiAxMEQ4ICovICAw
eERFLCAweDgyLCAweDEzLCAweDNELCAweDFGLCAweDQwLCAweDAxLCAweDM5LCAgLy8gLi4u
PS5ALjkKICAgICAgICAgICAgICAgIC8qIDEwRTAgKi8gIDB4MEQsIDB4MDgsIDB4NTUsIDB4
RUUsIDB4MTIsIDB4OTQsIDB4QzUsIDB4MDAsICAvLyAuLlUuLi4uLgogICAgICAgICAgICAg
ICAgLyogMTBFOCAqLyAgMHgxMSwgMHg5MCwgMHgyNSwgMHhCRiwgMHgzMCwgMHgwMiwgMHg5
MSwgMHgwMCwgIC8vIC4uJS4wLi4uCiAgICAgICAgICAgICAgICAvKiAxMEYwICovICAweDIw
LCAweDFBLCAweDA4LCAweEY5LCAweDc0LCAweDA0LCAweDI3LCAweDQxLCAgLy8gIC4uLnQu
J0EKICAgICAgICAgICAgICAgIC8qIDEwRjggKi8gIDB4N0QsIDB4MDIsIDB4MzEsIDB4OTks
IDB4NkYsIDB4OTIsIDB4NDcsIDB4MDksICAvLyB9LjEuby5HLgogICAgICAgICAgICAgICAg
LyogMTEwMCAqLyAgMHhBNiwgMHhGNCwgMHhGRiwgMHgwRiwgMHhDQSwgMHgzNCwgMHg4Miwg
MHgwOCwgIC8vIC4uLi4uNC4uCiAgICAgICAgICAgICAgICAvKiAxMTA4ICovICAweEM4LCAw
eDdBLCAweDNFLCAweDI1LCAweDAyLCAweEIyLCAweDNBLCAweDEwLCAgLy8gLno+JS4uOi4K
ICAgICAgICAgICAgICAgIC8qIDExMTAgKi8gIDB4MDEsIDB4MzksIDB4Q0YsIDB4RDMsIDB4
MjQsIDB4MzgsIDB4NDksIDB4QTMsICAvLyAuOS4uJDhJLgogICAgICAgICAgICAgICAgLyog
MTExOCAqLyAgMHgxNSwgMHg4OCwgMHg2OSwgMHg3OSwgMHg4OCwgMHgwNCwgMHgyMSwgMHgw
QSwgIC8vIC4uaXkuLiEuCiAgICAgICAgICAgICAgICAvKiAxMTIwICovICAweERFLCAweDJD
LCAweDQxLCAweDg5LCAweDFDLCAweDEwLCAweDAxLCAweDM5LCAgLy8gLixBLi4uLjkKICAg
ICAgICAgICAgICAgIC8qIDExMjggKi8gIDB4M0EsIDB4MTAsIDB4MTUsIDB4QTIsIDB4MTYs
IDB4ODgsIDB4MDUsIDB4NzAsICAvLyA6Li4uLi4ucAogICAgICAgICAgICAgICAgLyogMTEz
MCAqLyAgMHgwQiwgMHhDRSwgMHhBNCwgMHhEQiwgMHgwNSwgMHg2MiwgMHhDMSwgMHg0MSwg
IC8vIC4uLi4uYi5BCiAgICAgICAgICAgICAgICAvKiAxMTM4ICovICAweDY4LCAweERDLCAw
eDFGLCAweDRCLCAweDUwLCAweDkyLCAweDFELCAweDQ0LCAgLy8gaC4uS1AuLkQKICAgICAg
ICAgICAgICAgIC8qIDExNDAgKi8gIDB4NDAsIDB4Q0UsIDB4MjksIDB4MTgsIDB4ODgsIDB4
QTUsIDB4MDYsIDB4RDEsICAvLyBALikuLi4uLgogICAgICAgICAgICAgICAgLyogMTE0OCAq
LyAgMHg2MSwgMHg4MiwgMHg3QywgMHhDNiwgMHg4MiwgMHgxMywgMHg4NSwgMHhBRiwgIC8v
IGEufC4uLi4uCiAgICAgICAgICAgICAgICAvKiAxMTUwICovICAweDEzLCAweDAxLCAweDM5
LCAweDFGLCAweDA4LCAweDRELCAweEYzLCAweDFCLCAgLy8gLi45Li5NLi4KICAgICAgICAg
ICAgICAgIC8qIDExNTggKi8gIDB4MDksIDB4NEEsIDB4QTIsIDB4ODEsIDB4MDgsIDB4Qzgs
IDB4MzEsIDB4QkUsICAvLyAuSi4uLi4xLgogICAgICAgICAgICAgICAgLyogMTE2MCAqLyAg
MHgzMywgMHgwMiwgMHg3MiwgMHgyOCwgMHgxMCwgMHgwMSwgMHgzOSwgMHhEQywgIC8vIDMu
ciguLjkuCiAgICAgICAgICAgICAgICAvKiAxMTY4ICovICAweDNCLCAweDQ1LCAweEUwLCAw
eDhFLCAweEE1LCAweDFBLCAweDg4LCAweDg5LCAgLy8gO0UuLi4uLi4KICAgICAgICAgICAg
ICAgIC8qIDExNzAgKi8gIDB4RkEsIDB4RDAsIDB4M0QsIDB4MEMsIDB4QjAsIDB4M0YsIDB4
NEIsIDB4NTAsICAvLyAuLj0uLj9LUAogICAgICAgICAgICAgICAgLyogMTE3OCAqLyAgMHhB
MiwgMHgwQSwgMHg0NCwgMHhDMywgMHgyMywgMHgwRiwgMHgxNSwgMHgwMSwgIC8vIC4uRC4j
Li4uCiAgICAgICAgICAgICAgICAvKiAxMTgwICovICAweDU5LCAweDBGLCAweDg4LCAweDgw
LCAweDlDLCAweEUxLCAweDlCLCAweDEyLCAgLy8gWS4uLi4uLi4KICAgICAgICAgICAgICAg
IC8qIDExODggKi8gIDB4OUMsIDB4MjQsIDB4MzAsIDB4N0UsIDB4NzQsIDB4QTAsIDB4MjAs
IDB4MzQsICAvLyAuJDB+dC4gNAogICAgICAgICAgICAgICAgLyogMTE5MCAqLyAgMHhGRCwg
MHhCMywgMHgyNSwgMHgyOCwgMHg5MSwgMHhGMiwgMHhGOCwgMHgxMSwgIC8vIC4uJSguLi4u
CiAgICAgICAgICAgICAgICAvKiAxMTk4ICovICAweDkwLCAweDYzLCAweDgzLCAweDA4LCAw
eEM4LCAweDIyLCAweEJFLCAweDJCLCAgLy8gLmMuLi4iLisKICAgICAgICAgICAgICAgIC8q
IDExQTAgKi8gIDB4MEYsIDB4MTcsIDB4RUMsIDB4MjcsIDB4QTksIDB4ODEsIDB4OTIsIDB4
QzcsICAvLyAuLi4nLi4uLgogICAgICAgICAgICAgICAgLyogMTFBOCAqLyAgMHg4QSwgMHgw
NiwgMHg0QSwgMHg0MCwgMHg2OCwgMHg2QywgMHhGNSwgMHhBMCwgIC8vIC4uSkBobC4uCiAg
ICAgICAgICAgICAgICAvKiAxMUIwICovICAweDRDLCAweDgzLCAweDdCLCAweDIwLCAweDk2
LCAweDE3LCAweDQ0LCAweEM3LCAgLy8gTC57IC4uRC4KICAgICAgICAgICAgICAgIC8qIDEx
QjggKi8gIDB4MEEsIDB4MDIsIDB4NDQsIDB4NTUsIDB4REIsIDB4MDcsIDB4NjcsIDB4QUEs
ICAvLyAuLkRVLi5nLgogICAgICAgICAgICAgICAgLyogMTFDMCAqLyAgMHhGRCwgMHgwMywg
MHhCMSwgMHhDQywgMHgyMCwgMHhCQywgMHgwMCwgMHgyOCwgIC8vIC4uLi4gLi4oCiAgICAg
ICAgICAgICAgICAvKiAxMUM4ICovICAweDVCLCAweDUyLCAweDIwLCAweDE2LCAweDE2LCAw
eDQ0LCAweDQwLCAweDhFLCAgLy8gW1IgLi5EQC4KICAgICAgICAgICAgICAgIC8qIDExRDAg
Ki8gIDB4MEUsIDB4NDQsIDB4NDUsIDB4NDcsIDB4MDAsIDB4NjcsIDB4QjIsIDB4MzMsICAv
LyAuREVHLmcuMwogICAgICAgICAgICAgICAgLyogMTFEOCAqLyAgMHgwMCwgMHhCMSwgMHhE
MCwgMHgyMCwgMHgzNCwgMHg3NiwgMHg4OCwgMHhDMSwgIC8vIC4uLiA0di4uCiAgICAgICAg
ICAgICAgICAvKiAxMUUwICovICAweEQwLCAweDEyLCAweDgzLCAweEExLCAweDIwLCAweDFB
LCAweDBDLCAweDAxLCAgLy8gLi4uLiAuLi4KICAgICAgICAgICAgICAgIC8qIDExRTggKi8g
IDB4QTIsIDB4Q0EsIDB4NUIsIDB4ODAsIDB4MzMsIDB4RUQsIDB4MzUsIDB4ODAsICAvLyAu
LlsuMy41LgogICAgICAgICAgICAgICAgLyogMTFGMCAqLyAgMHg1OCwgMHg3MiwgMHgxMCwg
MHg5QSwgMHhCRCwgMHhDNywgMHhFMSwgMHg4MCwgIC8vIFhyLi4uLi4uCiAgICAgICAgICAg
ICAgICAvKiAxMUY4ICovICAweDA2LCAweEY5LCAweEZGLCAweDBGLCAweDgyLCAweDgyLCAw
eDA4LCAweEM4LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDEyMDAgKi8gIDB4
MTIsIDB4OEEsIDB4MUMsIDB4NUEsIDB4NjgsIDB4MTIsIDB4NzAsIDB4MTYsICAvLyAuLi5a
aC5wLgogICAgICAgICAgICAgICAgLyogMTIwOCAqLyAgMHhFMCwgMHgzMSwgMHhBNSwgMHgy
MywgMHgwRCwgMHgwMSwgMHhBMSwgMHgxMiwgIC8vIC4xLiMuLi4uCiAgICAgICAgICAgICAg
ICAvKiAxMjEwICovICAweEJBLCAweDFDLCAweDAwLCAweDI4LCAweDg4LCAweDg2LCAweDQw
LCAweDgwLCAgLy8gLi4uKC4uQC4KICAgICAgICAgICAgICAgIC8qIDEyMTggKi8gIDB4QTgs
IDB4OTIsIDB4MzAsIDB4NDAsIDB4RUMsIDB4RkYsIDB4MEYgICAgICAgICAvLyAuLjBALi4u
CiAgICAgICAgICAgIH0pCiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFdNSTIpCiAgICAg
ICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzE0IikgLyogV2lu
ZG93cyBNYW5hZ2VtZW50IEluc3RydW1lbnRhdGlvbiBEZXZpY2UgKi8pICAvLyBfSElEOiBI
YXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKSAgLy8gX1VJRDogVW5p
cXVlIElECiAgICAgICAgICAgIE5hbWUgKF9XREcsIEJ1ZmZlciAoMHg3OCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHhGMSwgMHgyNCwgMHhCNCwgMHhG
QywgMHg1QSwgMHgwNywgMHgwRSwgMHg0RSwgIC8vIC4kLi5aLi5OCiAgICAgICAgICAgICAg
ICAvKiAwMDA4ICovICAweEJGLCAweEM0LCAweDYyLCAweEYzLCAweEU3LCAweDE3LCAweDcx
LCAweEZBLCAgLy8gLi5iLi4ucS4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4NDEs
IDB4MzcsIDB4MDEsIDB4MDEsIDB4RTMsIDB4NUUsIDB4QkUsIDB4RTIsICAvLyBBNy4uLl4u
LgogICAgICAgICAgICAgICAgLyogMDAxOCAqLyAgMHhEQSwgMHg0MiwgMHhEQiwgMHg0OSwg
MHg4MywgMHg3OCwgMHgxRiwgMHg1MiwgIC8vIC5CLkkueC5SCiAgICAgICAgICAgICAgICAv
KiAwMDIwICovICAweDQ3LCAweDM4LCAweDgyLCAweDAyLCAweDQxLCAweDM4LCAweDAxLCAw
eDAyLCAgLy8gRzguLkE4Li4KICAgICAgICAgICAgICAgIC8qIDAwMjggKi8gIDB4OUEsIDB4
MDEsIDB4MzAsIDB4NzQsIDB4RTksIDB4REMsIDB4NDgsIDB4NDUsICAvLyAuLjB0Li5IRQog
ICAgICAgICAgICAgICAgLyogMDAzMCAqLyAgMHhCQSwgMHhCMCwgMHg5RiwgMHhERSwgMHgw
OSwgMHgzNSwgMHhDQSwgMHhGRiwgIC8vIC4uLi4uNS4uCiAgICAgICAgICAgICAgICAvKiAw
MDM4ICovICAweDQxLCAweDM5LCAweDE0LCAweDA1LCAweDAzLCAweDcwLCAweEY0LCAweDdG
LCAgLy8gQTkuLi5wLi4KICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4NkMsIDB4M0Is
IDB4NUUsIDB4NEUsIDB4QTIsIDB4MjcsIDB4RTksIDB4NzksICAvLyBsO15OLicueQogICAg
ICAgICAgICAgICAgLyogMDA0OCAqLyAgMHg4MiwgMHg0QSwgMHg4NSwgMHhEMSwgMHg0MSwg
MHg0MSwgMHgwMSwgMHgwNiwgIC8vIC5KLi5BQS4uCiAgICAgICAgICAgICAgICAvKiAwMDUw
ICovICAweDIwLCAweDYzLCAweDExLCAweDkxLCAweDdFLCAweDU5LCAweDk4LCAweDQ1LCAg
Ly8gIGMuLn5ZLkUKICAgICAgICAgICAgICAgIC8qIDAwNTggKi8gIDB4QTEsIDB4MDIsIDB4
NEEsIDB4RUMsIDB4ODMsIDB4NzUsIDB4QzYsIDB4NDksICAvLyAuLkouLnUuSQogICAgICAg
ICAgICAgICAgLyogMDA2MCAqLyAgMHg0NiwgMHgzOSwgMHgwMSwgMHgwNiwgMHgyMSwgMHgx
MiwgMHg5MCwgMHgwNSwgIC8vIEY5Li4hLi4uCiAgICAgICAgICAgICAgICAvKiAwMDY4ICov
ICAweDY2LCAweEQ1LCAweEQxLCAweDExLCAweEIyLCAweEYwLCAweDAwLCAweEEwLCAgLy8g
Zi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwNzAgKi8gIDB4QzksIDB4MDYsIDB4Mjks
IDB4MTAsIDB4NDIsIDB4NDIsIDB4MDEsIDB4MDAgICAvLyAuLikuQkIuLgogICAgICAgICAg
ICB9KQogICAgICAgICAgICBOYW1lIChQUkVMLCBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgfSkKICAgICAgICAgICAg
TWV0aG9kIChXUUE3LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBBY3F1aXJlICheXldNSTEuTVdNSSwgMHhGRkZGKQogICAgICAgICAgICAgICAg
V01JUyAoMHgwNywgMHgwMCkKICAgICAgICAgICAgICAgIFBSRUwgWzB4MDBdID0gV0xTMCAv
KiBcV0xTMCAqLwogICAgICAgICAgICAgICAgUFJFTCBbMHgwMV0gPSBXTFMxIC8qIFxXTFMx
ICovCiAgICAgICAgICAgICAgICBQUkVMIFsweDAyXSA9IFdMUzIgLyogXFdMUzIgKi8KICAg
ICAgICAgICAgICAgIFBSRUwgWzB4MDNdID0gV0xTMyAvKiBcV0xTMyAqLwogICAgICAgICAg
ICAgICAgUFJFTCBbMHgwNF0gPSBXTFM0IC8qIFxXTFM0ICovCiAgICAgICAgICAgICAgICBQ
UkVMIFsweDA1XSA9IFdMUzUgLyogXFdMUzUgKi8KICAgICAgICAgICAgICAgIFBSRUwgWzB4
MDZdID0gV0xTNiAvKiBcV0xTNiAqLwogICAgICAgICAgICAgICAgUFJFTCBbMHgwN10gPSBX
TFM3IC8qIFxXTFM3ICovCiAgICAgICAgICAgICAgICBSZWxlYXNlICheXldNSTEuTVdNSSkK
ICAgICAgICAgICAgICAgIFJldHVybiAoUFJFTCkgLyogXF9TQl8uV01JMi5QUkVMICovCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV01BOCwgMywgTm90U2VyaWFsaXpl
ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcy
LCAweDAwLCBQUkUwKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcyLCAw
eDAxLCBQUkUxKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcyLCAweDAy
LCBQUkUyKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcyLCAweDAzLCBQ
UkUzKQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcyLCAweDA0LCBQUkU0
KQogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcyLCAweDA1LCBQUkU1KQog
ICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcyLCAweDA2LCBQUkU2KQogICAg
ICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcyLCAweDA3LCBQUkU3KQogICAgICAg
ICAgICAgICAgQWNxdWlyZSAoXl5XTUkxLk1XTUksIDB4RkZGRikKICAgICAgICAgICAgICAg
IFdMUzAgPSBQUkUwIC8qIFxfU0JfLldNSTIuV01BOC5QUkUwICovCiAgICAgICAgICAgICAg
ICBXTFMxID0gUFJFMSAvKiBcX1NCXy5XTUkyLldNQTguUFJFMSAqLwogICAgICAgICAgICAg
ICAgV0xTMiA9IFBSRTIgLyogXF9TQl8uV01JMi5XTUE4LlBSRTIgKi8KICAgICAgICAgICAg
ICAgIFdMUzMgPSBQUkUzIC8qIFxfU0JfLldNSTIuV01BOC5QUkUzICovCiAgICAgICAgICAg
ICAgICBXTFM0ID0gUFJFNCAvKiBcX1NCXy5XTUkyLldNQTguUFJFNCAqLwogICAgICAgICAg
ICAgICAgV0xTNSA9IFBSRTUgLyogXF9TQl8uV01JMi5XTUE4LlBSRTUgKi8KICAgICAgICAg
ICAgICAgIFdMUzYgPSBQUkU2IC8qIFxfU0JfLldNSTIuV01BOC5QUkU2ICovCiAgICAgICAg
ICAgICAgICBXTFM3ID0gUFJFNyAvKiBcX1NCXy5XTUkyLldNQTguUFJFNyAqLwogICAgICAg
ICAgICAgICAgV01JUyAoMHgwOCwgMHgwMCkKICAgICAgICAgICAgICAgIFJlbGVhc2UgKF5e
V01JMS5NV01JKQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChJVEVNLCBQYWNr
YWdlICgweDBGKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgICAgICJJbmhpYml0RW50ZXJpbmdUaGlua1BhZFNldHVwIgogICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAi
TVRNU2VyaWFsQ29uY2F0ZW5hdGlvbiIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgIlN3YXBQcm9kdWN0TmFtZSIKICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAgICAgIkNvbXB1dHJhY2VNc2dEaXNhYmxlIgogICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiQ3B1RGVidWdFbmFibGUi
CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgICAgICJQYXNzd29yZEFmdGVyQm9vdERldmljZUxpc3QiCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICJTcGVj
aWFsQ2hhckZvclBhc3N3b3JkIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiQ3VzdG9tUGFzc3dvcmRNb2RlIgogICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
ICAgICAiQWJzb2x1dGVGcmVlIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiU2h1dGRvd25CeUJvdHRvbUNvdmVyVGFt
cGVyIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgICAgICAiVHBtQ2xlYXJCeUJvdHRvbUNvdmVyVGFtcGVyIgogICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAi
Q3VzdG9tUG93ZXJPZmZTZXR0aW5nIgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiU2h1dGRvd25CeUNvdmVyVGFtcGVy
IgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgICAgICAiVHBtQ2xlYXJCeUNvdmVyVGFtcGVyIgogICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAiUG93ZXJPbkJ5
QWNXb2wiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5h
bWUgKFZTRUwsIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
IkRpc2FibGUiLCAKICAgICAgICAgICAgICAgICAgICAiRW5hYmxlIgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAiT2ZmIiwgCiAgICAgICAgICAgICAgICAgICAgIk9u
IgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgyNikK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiNDA5IiwgCiAgICAgICAg
ICAgICAgICAgICAgImMwYyIsIAogICAgICAgICAgICAgICAgICAgICIxMDA5IiwgCiAgICAg
ICAgICAgICAgICAgICAgIjgwYSIsIAogICAgICAgICAgICAgICAgICAgICI0MTYiLCAKICAg
ICAgICAgICAgICAgICAgICAiODEzIiwgCiAgICAgICAgICAgICAgICAgICAgIjQwNiIsIAog
ICAgICAgICAgICAgICAgICAgICI0MGEiLCAKICAgICAgICAgICAgICAgICAgICAiNDBjIiwg
CiAgICAgICAgICAgICAgICAgICAgIjQwNyIsIAogICAgICAgICAgICAgICAgICAgICI0MGUi
LCAKICAgICAgICAgICAgICAgICAgICAiNDBmIiwgCiAgICAgICAgICAgICAgICAgICAgIjQx
MCIsIAogICAgICAgICAgICAgICAgICAgICI0MTQiLCAKICAgICAgICAgICAgICAgICAgICAi
ODE2IiwgCiAgICAgICAgICAgICAgICAgICAgIjQyNCIsIAogICAgICAgICAgICAgICAgICAg
ICI0MGIiLCAKICAgICAgICAgICAgICAgICAgICAiODA3IiwgCiAgICAgICAgICAgICAgICAg
ICAgIjQxZiIsIAogICAgICAgICAgICAgICAgICAgICI4MDkiLCAKICAgICAgICAgICAgICAg
ICAgICAiNDExIiwgCiAgICAgICAgICAgICAgICAgICAgIjQxMiIsIAogICAgICAgICAgICAg
ICAgICAgICI0MDQiLCAKICAgICAgICAgICAgICAgICAgICAiODQxZiIsIAogICAgICAgICAg
ICAgICAgICAgICI0MjUiLCAKICAgICAgICAgICAgICAgICAgICAiODQwNiIsIAogICAgICAg
ICAgICAgICAgICAgICI0MDUiLCAKICAgICAgICAgICAgICAgICAgICAiNDAxIiwgCiAgICAg
ICAgICAgICAgICAgICAgIjQwMiIsIAogICAgICAgICAgICAgICAgICAgICI0MDgiLCAKICAg
ICAgICAgICAgICAgICAgICAiNDBkIiwgCiAgICAgICAgICAgICAgICAgICAgIjQxOSIsIAog
ICAgICAgICAgICAgICAgICAgICI4NDA5IiwgCiAgICAgICAgICAgICAgICAgICAgIjQxZSIs
IAogICAgICAgICAgICAgICAgICAgICI0MDA5IiwgCiAgICAgICAgICAgICAgICAgICAgIjkw
MDkiLCAKICAgICAgICAgICAgICAgICAgICAiNDIyIiwgCiAgICAgICAgICAgICAgICAgICAg
IjQ4MSIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIkRpc2FibGUiLCAK
ICAgICAgICAgICAgICAgICAgICAiRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgIkRl
ZmF1bHQiLCAKICAgICAgICAgICAgICAgICAgICAiTVRNU04iLCAKICAgICAgICAgICAgICAg
ICAgICAiMVNNVE1TTiIsIAogICAgICAgICAgICAgICAgICAgICJNVFNOIgogICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAiMHgwMCIsIAogICAgICAgICAgICAgICAgICAg
ICIweDAxIiwgCiAgICAgICAgICAgICAgICAgICAgIjB4MDIiLCAKICAgICAgICAgICAgICAg
ICAgICAiMHgwMyIsIAogICAgICAgICAgICAgICAgICAgICIweDA0IiwgCiAgICAgICAgICAg
ICAgICAgICAgIjB4MDUiLCAKICAgICAgICAgICAgICAgICAgICAiMHgwNiIsIAogICAgICAg
ICAgICAgICAgICAgICIweDA3IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQog
ICAgICAgICAgICBNZXRob2QgKFdRQTksIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIEFjcXVpcmUgKF5eV01JMS5NV01JLCAweEZGRkYpCiAgICAg
ICAgICAgICAgICBJZiAoKFdNSVMgKDB4MDksIEFyZzApICE9IDB4MDApKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKF5eV01JMS5NV01JKQogICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoIiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgTG9jYWwwID0gRGVyZWZPZiAoSVRFTSBbV0lUTV0pCiAgICAgICAgICAgICAg
ICBMb2NhbDEgPSBEZXJlZk9mIChMb2NhbDAgWzB4MDBdKQogICAgICAgICAgICAgICAgTG9j
YWwyID0gRGVyZWZPZiAoTG9jYWwwIFsweDAxXSkKICAgICAgICAgICAgICAgIENvbmNhdGVu
YXRlIChMb2NhbDIsICIsIiwgTG9jYWw2KQogICAgICAgICAgICAgICAgTG9jYWwzID0gRGVy
ZWZPZiAoVlNFTCBbTG9jYWwxXSkKICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlIChMb2Nh
bDYsIERlcmVmT2YgKExvY2FsMyBbV1NFTF0pLCBMb2NhbDcpCiAgICAgICAgICAgICAgICBS
ZWxlYXNlICheXldNSTEuTVdNSSkKICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWw3KQog
ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFdNQUEsIDMsIE5vdFNlcmlhbGl6
ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFjcXVpcmUgKF5eV01JMS5NV01J
LCAweEZGRkYpCiAgICAgICAgICAgICAgICBJZiAoKFNpemVPZiAoQXJnMikgPT0gMHgwMCkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMgog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IF5eV01JMS5DQVJHIChBcmcyKQogICAg
ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gXl5XTUkxLldTRVQgKElU
RU0sIFZTRUwpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDAp
KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDAgPSBXTUlTICgweDBBLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIFJlbGVhc2UgKF5eV01JMS5NV01JKQogICAgICAgICAgICAgICAgUmV0dXJuIChEZXJl
Zk9mICheXldNSTEuUkVUTiBbTG9jYWwwXSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE1ldGhvZCAoV01GOSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgQWNxdWlyZSAoXl5XTUkxLk1XTUksIDB4RkZGRikKICAgICAgICAgICAgICAg
IFdFWEYgPSAweDAxCiAgICAgICAgICAgICAgICBJZiAoKFNpemVPZiAoQXJnMikgPT0gMHgw
MCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgw
MgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IF5eV01JMS5DQVJHIChBcmcyKQog
ICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ0JGRiA9IDB4MDAKICAgICAgICAg
ICAgICAgICAgICAgICAgQ0JGRiA9IF5eV01JMS5JQlVGIC8qIFxfU0JfLldNSTEuSUJVRiAq
LwogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBeXldNSTEuV1NFVCAoSVRFTSwg
VlNFTCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9IFdNSVMgKDB4MEEsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgICAgIENCRkYgPSAweDAwCiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFdFWEYgPSAweDAwCiAgICAg
ICAgICAgICAgICBSZWxlYXNlICheXldNSTEuTVdNSSkKICAgICAgICAgICAgICAgIFJldHVy
biAoRGVyZWZPZiAoXl5XTUkxLlJFVE4gW0xvY2FsMF0pKQogICAgICAgICAgICB9CgogICAg
ICAgICAgICBOYW1lIChXUUJCLCBCdWZmZXIgKDB4MDVERCkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg0NiwgMHg0RiwgMHg0RCwgMHg0MiwgMHgwMSwg
MHgwMCwgMHgwMCwgMHgwMCwgIC8vIEZPTUIuLi4uCiAgICAgICAgICAgICAgICAvKiAwMDA4
ICovICAweENELCAweDA1LCAweDAwLCAweDAwLCAweEJDLCAweDFGLCAweDAwLCAweDAwLCAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4NDQsIDB4NTMsIDB4
MDAsIDB4MDEsIDB4MUEsIDB4N0QsIDB4REEsIDB4NTQsICAvLyBEUy4uLn0uVAogICAgICAg
ICAgICAgICAgLyogMDAxOCAqLyAgMHgxOCwgMHg1NCwgMHg4RiwgMHgwMCwgMHgwMSwgMHgw
NiwgMHgxOCwgMHg0MiwgIC8vIC5ULi4uLi5CCiAgICAgICAgICAgICAgICAvKiAwMDIwICov
ICAweDEwLCAweDBGLCAweDEwLCAweDhBLCAweDBELCAweDIxLCAweDAyLCAweDBCLCAgLy8g
Li4uLi4hLi4KICAgICAgICAgICAgICAgIC8qIDAwMjggKi8gIDB4ODMsIDB4NTAsIDB4NTAs
IDB4MTgsIDB4MTQsIDB4QTAsIDB4NDUsIDB4NDEsICAvLyAuUFAuLi5FQQogICAgICAgICAg
ICAgICAgLyogMDAzMCAqLyAgMHhDOCwgMHgwNSwgMHgxNCwgMHg5NSwgMHgwMiwgMHgyMSwg
MHhDMywgMHgwMiwgIC8vIC4uLi4uIS4uCiAgICAgICAgICAgICAgICAvKiAwMDM4ICovICAw
eDE0LCAweDBCLCAweDcwLCAweDJFLCAweDQwLCAweEJBLCAweDAwLCAweEU1LCAgLy8gLi5w
LkAuLi4KICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4MjgsIDB4NzIsIDB4MEMsIDB4
MjIsIDB4MDIsIDB4RjcsIDB4RUYsIDB4MEYsICAvLyAoci4iLi4uLgogICAgICAgICAgICAg
ICAgLyogMDA0OCAqLyAgMHgzMSwgMHgxMCwgMHg4OCwgMHgxNCwgMHg0MCwgMHg0OCwgMHgy
OCwgMHg4NCwgIC8vIDEuLi5ASCguCiAgICAgICAgICAgICAgICAvKiAwMDUwICovICAweDQ0
LCAweDAwLCAweDUzLCAweDIxLCAweDcwLCAweDg0LCAweEEwLCAweDVGLCAgLy8gRC5TIXAu
Ll8KICAgICAgICAgICAgICAgIC8qIDAwNTggKi8gIDB4MDEsIDB4MDgsIDB4MUQsIDB4MEEs
IDB4OTAsIDB4MjksIDB4QzAsIDB4QTAsICAvLyAuLi4uLikuLgogICAgICAgICAgICAgICAg
LyogMDA2MCAqLyAgMHgwMCwgMHhBNywgMHgwOCwgMHgyMiwgMHg4OCwgMHhEMiwgMHhCMiwg
MHgwMCwgIC8vIC4uLiIuLi4uCiAgICAgICAgICAgICAgICAvKiAwMDY4ICovICAweERELCAw
eDAyLCAweDdDLCAweDBCLCAweEQwLCAweDBFLCAweDIxLCAweEI0LCAgLy8gLi58Li4uIS4K
ICAgICAgICAgICAgICAgIC8qIDAwNzAgKi8gIDB4QzgsIDB4OTUsIDB4MEEsIDB4QjAsIDB4
MDgsIDB4MjUsIDB4OUYsIDB4ODAsICAvLyAuLi4uLiUuLgogICAgICAgICAgICAgICAgLyog
MDA3OCAqLyAgMHg5MiwgMHg4OCwgMHgyMiwgMHhEOSwgMHg3OCwgMHhCMiwgMHg4RCwgMHg0
OCwgIC8vIC4uIi54Li5ICiAgICAgICAgICAgICAgICAvKiAwMDgwICovICAweEU2LCAweDYx
LCAweDkxLCAweDgzLCAweDQwLCAweDg5LCAweDE5LCAweDA0LCAgLy8gLmEuLkAuLi4KICAg
ICAgICAgICAgICAgIC8qIDAwODggKi8gIDB4NEEsIDB4MjcsIDB4QUUsIDB4NkMsIDB4RTIs
IDB4NkEsIDB4MTAsIDB4MDcsICAvLyBKJy5sLmouLgogICAgICAgICAgICAgICAgLyogMDA5
MCAqLyAgMHgxMCwgMHhFNSwgMHgzQywgMHhBMiwgMHgyNCwgMHgzOCwgMHhBQSwgMHg4Mywg
IC8vIC4uPC4kOC4uCiAgICAgICAgICAgICAgICAvKiAwMDk4ICovICAweDg4LCAweDEwLCAw
eEJCLCAweDVDLCAweDAxLCAweDkyLCAweDA3LCAweDIwLCAgLy8gLi4uXC4uLiAKICAgICAg
ICAgICAgICAgIC8qIDAwQTAgKi8gIDB4Q0QsIDB4MTMsIDB4OTMsIDB4RjUsIDB4MzksIDB4
NjgsIDB4NjQsIDB4NkMsICAvLyAuLi4uOWhkbAogICAgICAgICAgICAgICAgLyogMDBBOCAq
LyAgMHgwNCwgMHgzQywgMHg5OCwgMHgwNCwgMHgxMCwgMHgxNiwgMHg2NSwgMHg5RCwgIC8v
IC48Li4uLmUuCiAgICAgICAgICAgICAgICAvKiAwMEIwICovICAweDhBLCAweDAyLCAweDgz
LCAweDFBLCAweEIyLCAweEU1LCAweDhDLCAweDE1LCAgLy8gLi4uLi4uLi4KICAgICAgICAg
ICAgICAgIC8qIDAwQjggKi8gIDB4MDUsIDB4NkMsIDB4QUYsIDB4MTMsIDB4OTEsIDB4Qzks
IDB4ODEsIDB4NTIsICAvLyAubC4uLi4uUgogICAgICAgICAgICAgICAgLyogMDBDMCAqLyAg
MHg0OSwgMHg3MCwgMHhBOCwgMHg2MSwgMHg3QSwgMHg2QSwgMHhDRCwgMHg0RiwgIC8vIElw
LmF6ai5PCiAgICAgICAgICAgICAgICAvKiAwMEM4ICovICAweDRDLCAweDEzLCAweDM5LCAw
eEI1LCAweEE2LCAweDg3LCAweDJDLCAweDQ4LCAgLy8gTC45Li4uLEgKICAgICAgICAgICAg
ICAgIC8qIDAwRDAgKi8gIDB4MjYsIDB4NkQsIDB4MjgsIDB4QTgsIDB4QjEsIDB4N0IsIDB4
NUEsIDB4MjcsICAvLyAmbSguLntaJwogICAgICAgICAgICAgICAgLyogMDBEOCAqLyAgMHhF
NSwgMHg5OSwgMHg0NiwgMHgzQywgMHgyOCwgMHhDMywgMHgyNCwgMHhGMCwgIC8vIC4uRjwo
LiQuCiAgICAgICAgICAgICAgICAvKiAwMEUwICovICAweDI4LCAweDE4LCAweDFBLCAweDI3
LCAweDI4LCAweDBCLCAweDQyLCAweDBFLCAgLy8gKC4uJyguQi4KICAgICAgICAgICAgICAg
IC8qIDAwRTggKi8gIDB4MDYsIDB4OEEsIDB4MDIsIDB4M0MsIDB4MDksIDB4Q0YsIDB4QjEs
IDB4NzgsICAvLyAuLi48Li4ueAogICAgICAgICAgICAgICAgLyogMDBGMCAqLyAgMHgwMSwg
MHhDMiwgMHg0NywgMHg0QywgMHhDRSwgMHgwMiwgMHgzMSwgMHgxMiwgIC8vIC4uR0wuLjEu
CiAgICAgICAgICAgICAgICAvKiAwMEY4ICovICAweEY4LCAweDRDLCAweEUwLCAweDkxLCAw
eDFGLCAweDMzLCAweDc2LCAweDQ0LCAgLy8gLkwuLi4zdkQKICAgICAgICAgICAgICAgIC8q
IDAxMDAgKi8gIDB4RTEsIDB4MDIsIDB4OUUsIDB4Q0YsIDB4MzEsIDB4NDQsIDB4OEUsIDB4
N0IsICAvLyAuLi4uMUQuewogICAgICAgICAgICAgICAgLyogMDEwOCAqLyAgMHhBOCwgMHgz
MSwgMHg4RSwgMHgyMiwgMHhGMiwgMHhFMSwgMHgzMCwgMHhCNCwgIC8vIC4xLiIuLjAuCiAg
ICAgICAgICAgICAgICAvKiAwMTEwICovICAweEQzLCAweDhELCAweDczLCAweDYwLCAweEE3
LCAweDUzLCAweDEwLCAweEI4LCAgLy8gLi5zYC5TLi4KICAgICAgICAgICAgICAgIC8qIDAx
MTggKi8gIDB4NDAsIDB4ODIsIDB4RjUsIDB4M0MsIDB4NjcsIDB4ODEsIDB4RkMsIDB4RkYs
ICAvLyBALi48Zy4uLgogICAgICAgICAgICAgICAgLyogMDEyMCAqLyAgMHg2MywgMHgxQywg
MHgwNCwgMHhDMywgMHgzQiwgMHgwNiwgMHg4QywgMHgwQywgIC8vIGMuLi47Li4uCiAgICAg
ICAgICAgICAgICAvKiAwMTI4ICovICAweDA4LCAweDc5LCAweDE0LCAweDYwLCAweDc1LCAw
eDU4LCAweDlBLCAweDQ0LCAgLy8gLnkuYHVYLkQKICAgICAgICAgICAgICAgIC8qIDAxMzAg
Ki8gIDB4MDIsIDB4QkIsIDB4MTcsIDB4QTAsIDB4RjEsIDB4MTIsIDB4MjAsIDB4ODUsICAv
LyAuLi4uLi4gLgogICAgICAgICAgICAgICAgLyogMDEzOCAqLyAgMHg4MywgMHg5NCwgMHgz
MiwgMHgwOCwgMHhDMSwgMHgzNCwgMHgyNiwgMHhDMCwgIC8vIC4uMi4uNCYuCiAgICAgICAg
ICAgICAgICAvKiAwMTQwICovICAweEQ2LCAweEExLCAweDQxLCAweERFLCAweDA0LCAweDU4
LCAweEJCLCAweDBBLCAgLy8gLi5BLi5YLi4KICAgICAgICAgICAgICAgIC8qIDAxNDggKi8g
IDB4MDgsIDB4MjUsIDB4RDIsIDB4MDksIDB4QzQsIDB4MDksIDB4MTEsIDB4MjUsICAvLyAu
JS4uLi4uJQogICAgICAgICAgICAgICAgLyogMDE1MCAqLyAgMHg2MiwgMHg1MCwgMHgwMywg
MHg0NSwgMHhBOSwgMHgwRCwgMHg1NSwgMHgzMCwgIC8vIGJQLkUuLlUwCiAgICAgICAgICAg
ICAgICAvKiAwMTU4ICovICAweDlELCAweDBELCAweDRGLCAweDk4LCAweDcxLCAweDQzLCAw
eEM0LCAweDMwLCAgLy8gLi5PLnFDLjAKICAgICAgICAgICAgICAgIC8qIDAxNjAgKi8gIDB4
NTAsIDB4REMsIDB4RjYsIDB4MDcsIDB4NDEsIDB4ODYsIDB4OEQsIDB4MUIsICAvLyBQLi4u
QS4uLgogICAgICAgICAgICAgICAgLyogMDE2OCAqLyAgMHhCRiwgMHgwNywgMHg3NSwgMHg1
QSwgMHg2NywgMHg3NywgMHg0QywgMHhBRiwgIC8vIC4udVpnd0wuCiAgICAgICAgICAgICAg
ICAvKiAwMTcwICovICAweDBBLCAweDI2LCAweEYwLCAweEE0LCAweERGLCAweDEwLCAweDlF
LCAweDBFLCAgLy8gLiYuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAxNzggKi8gIDB4OEUs
IDB4RTIsIDB4NjgsIDB4QTMsIDB4QzYsIDB4NjgsIDB4OEUsIDB4OTQsICAvLyAuLmguLmgu
LgogICAgICAgICAgICAgICAgLyogMDE4MCAqLyAgMHhBRCwgMHg1QSwgMHgxQSwgMHgzOCwg
MHgxNCwgMHgwOSwgMHgxRSwgMHg3NSwgIC8vIC5aLjguLi51CiAgICAgICAgICAgICAgICAv
KiAwMTg4ICovICAweDVFLCAweEYwLCAweEM5LCAweEMwLCAweDQzLCAweDNCLCAweDZDLCAw
eDBGLCAgLy8gXi4uLkM7bC4KICAgICAgICAgICAgICAgIC8qIDAxOTAgKi8gIDB4RjYsIDB4
MkMsIDB4M0QsIDB4ODQsIDB4MjMsIDB4NzgsIDB4NjYsIDB4NzgsICAvLyAuLD0uI3hmeAog
ICAgICAgICAgICAgICAgLyogMDE5OCAqLyAgMHgyNCwgMHhGMCwgMHgxOCwgMHhEOCwgMHg1
RCwgMHhDMSwgMHg4NywgMHgwMCwgIC8vICQuLi5dLi4uCiAgICAgICAgICAgICAgICAvKiAw
MUEwICovICAweDlGLCAweDExLCAweEYwLCAweEFFLCAweDAxLCAweDc1LCAweDM5LCAweDc4
LCAgLy8gLi4uLi51OXgKICAgICAgICAgICAgICAgIC8qIDAxQTggKi8gIDB4MzQsIDB4NjAs
IDB4OTMsIDB4MEUsIDB4ODcsIDB4MTksIDB4QUYsIDB4RTcsICAvLyA0YC4uLi4uLgogICAg
ICAgICAgICAgICAgLyogMDFCMCAqLyAgMHhFRSwgMHhBOSwgMHhGQiwgMHg4QywgMHhDMSwg
MHhDRiwgMHgxQiwgMHgxRSwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMUI4
ICovICAweDFDLCAweDZFLCAweEE0LCAweDI3LCAweDczLCAweDY0LCAweEE1LCAweDBBLCAg
Ly8gLm4uJ3NkLi4KICAgICAgICAgICAgICAgIC8qIDAxQzAgKi8gIDB4MzAsIDB4N0IsIDB4
MEQsIDB4RDAsIDB4NTEsIDB4QzIsIDB4MDcsIDB4MEUsICAvLyAwey4uUS4uLgogICAgICAg
ICAgICAgICAgLyogMDFDOCAqLyAgMHg3NiwgMHgxNywgMHg3OCwgMHgwQSwgMHgzMCwgMHg4
MSwgMHhFNSwgMHgwRiwgIC8vIHYueC4wLi4uCiAgICAgICAgICAgICAgICAvKiAwMUQwICov
ICAweDAyLCAweDM1LCAweDMyLCAweDQzLCAweDdCLCAweEJDLCAweEVGLCAweDFELCAgLy8g
LjUyQ3suLi4KICAgICAgICAgICAgICAgIC8qIDAxRDggKi8gIDB4ODYsIDB4N0MsIDB4NTIs
IDB4MzgsIDB4MkMsIDB4MjYsIDB4RjYsIDB4RTAsICAvLyAufFI4LCYuLgogICAgICAgICAg
ICAgICAgLyogMDFFMCAqLyAgMHg0MSwgMHhDNywgMHgwMywgMHhGRSwgMHhGQiwgMHhDOCwg
MHg5MywgMHg4NiwgIC8vIEEuLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMUU4ICovICAw
eEE3LCAweEVGLCAweEY5LCAweDlBLCAweDYwLCAweDYwLCAweDA4LCAweDU5LCAgLy8gLi4u
LmBgLlkKICAgICAgICAgICAgICAgIC8qIDAxRjAgKi8gIDB4MTksIDB4MEYsIDB4NkEsIDB4
MjAsIDB4ODYsIDB4N0UsIDB4NTUsIDB4MzgsICAvLyAuLmogLn5VOAogICAgICAgICAgICAg
ICAgLyogMDFGOCAqLyAgMHg4QywgMHhEMywgMHhGMCwgMHgwOSwgMHhDNCwgMHhFNywgMHg4
MCwgMHgyMCwgIC8vIC4uLi4uLi4gCiAgICAgICAgICAgICAgICAvKiAwMjAwICovICAweDMx
LCAweDhFLCAweEM5LCAweDgzLCAweEYzLCAweEZGLCAweDlGLCAweEMwLCAgLy8gMS4uLi4u
Li4KICAgICAgICAgICAgICAgIC8qIDAyMDggKi8gIDB4QjEsIDB4NDYsIDB4NEUsIDB4Q0Ys
IDB4MjksIDB4M0UsIDB4NEYsIDB4RjAsICAvLyAuRk4uKT5PLgogICAgICAgICAgICAgICAg
LyogMDIxMCAqLyAgMHhDMywgMHg4NSwgMHhDRiwgMHgxMywgMHhFQywgMHhDNCwgMHg3MCwg
MHgxQSwgIC8vIC4uLi4uLnAuCiAgICAgICAgICAgICAgICAvKiAwMjE4ICovICAweENGLCAw
eDAxLCAweDFFLCAweENFLCAweDU5LCAweEY5LCAweDM4LCAweDAxLCAgLy8gLi4uLlkuOC4K
ICAgICAgICAgICAgICAgIC8qIDAyMjAgKi8gIDB4MkMsIDB4MjAsIDB4NUUsIDB4MjcsIDB4
RjgsIDB4NDAsIDB4RTEsIDB4QzMsICAvLyAsIF4nLkAuLgogICAgICAgICAgICAgICAgLyog
MDIyOCAqLyAgMHgxRSwgMHg5QSwgMHg0NywgMHhGMSwgMHgxMiwgMHhGMSwgMHhGNiwgMHg2
MCwgIC8vIC4uRy4uLi5gCiAgICAgICAgICAgICAgICAvKiAwMjMwICovICAweDgyLCAweDY4
LCAweDBGLCAweDMxLCAweDYwLCAweDlDLCAweDExLCAweEVFLCAgLy8gLmguMWAuLi4KICAg
ICAgICAgICAgICAgIC8qIDAyMzggKi8gIDB4QkMsIDB4MDEsIDB4RTcsIDB4MTQsIDB4MDMs
IDB4M0MsIDB4QTAsIDB4MEUsICAvLyAuLi4uLjwuLgogICAgICAgICAgICAgICAgLyogMDI0
MCAqLyAgMHgwMSwgMHg3MywgMHg5OCwgMHhGMCwgMHgxMCwgMHhGOCwgMHgwMCwgMHg5RSwg
IC8vIC5zLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMjQ4ICovICAweDQxLCAweENFLCAw
eEQxLCAweEM3LCAweDlDLCAweDMzLCAweEMzLCAweDFELCAgLy8gQS4uLi4zLi4KICAgICAg
ICAgICAgICAgIC8qIDAyNTAgKi8gIDB4NzcsIDB4QzAsIDB4MzYsIDB4MEMsIDB4MUUsIDB4
RDksIDB4MDIsIDB4MDgsICAvLyB3LjYuLi4uLgogICAgICAgICAgICAgICAgLyogMDI1OCAq
LyAgMHg4QiwgMHhGMywgMHgyNCwgMHg1MCwgMHhDMCwgMHhCNywgMHgwMSwgMHg4NSwgIC8v
IC4uJFAuLi4uCiAgICAgICAgICAgICAgICAvKiAwMjYwICovICAweEYxLCAweEUxLCAweDA2
LCAweEJDLCAweEZGLCAweEZGLCAweEMzLCAweDBELCAgLy8gLi4uLi4uLi4KICAgICAgICAg
ICAgICAgIC8qIDAyNjggKi8gIDB4NzAsIDB4M0QsIDB4MUYsIDB4RTAsIDB4OEUsIDB4MEYs
IDB4NzAsIDB4MkYsICAvLyBwPS4uLi5wLwogICAgICAgICAgICAgICAgLyogMDI3MCAqLyAg
MHgxNiwgMHhFQywgMHhGMCwgMHhGMCwgMHg3OCwgMHgwMywgMHgwQywgMHg4NiwgIC8vIC4u
Li54Li4uCiAgICAgICAgICAgICAgICAvKiAwMjc4ICovICAweEY0LCAweDQ4LCAweEYzLCAw
eDU2LCAweDEzLCAweEUzLCAweEQ1LCAweDI2LCAgLy8gLkguVi4uLiYKICAgICAgICAgICAg
ICAgIC8qIDAyODAgKi8gIDB4NDQsIDB4ODQsIDB4ODcsIDB4OUEsIDB4NzcsIDB4MUIsIDB4
MjMsIDB4QzUsICAvLyBELi4udy4jLgogICAgICAgICAgICAgICAgLyogMDI4OCAqLyAgMHg3
QiwgMHhCQywgMHg2MSwgMHhENywgMHg5OCwgMHhCMywgMHg3OCwgMHgwMCwgIC8vIHsuYS4u
LnguCiAgICAgICAgICAgICAgICAvKiAwMjkwICovICAweDg5LCAweDUyLCAweDFDLCAweDlB
LCAweDJFLCAweDM2LCAweDMxLCAweEEyLCAgLy8gLlIuLi42MS4KICAgICAgICAgICAgICAg
IC8qIDAyOTggKi8gIDB4QkMsIDB4RDksIDB4MTgsIDB4RjYsIDB4NEQsIDB4QzcsIDB4NDAs
IDB4QTEsICAvLyAuLi4uTS5ALgogICAgICAgICAgICAgICAgLyogMDJBMCAqLyAgMHgyMiwg
MHg0NSwgMHgwOCwgMHhGMywgMHg2MiwgMHgxMSwgMHhFMiwgMHhGMSwgIC8vICJFLi5iLi4u
CiAgICAgICAgICAgICAgICAvKiAwMkE4ICovICAweDA2LCAweENDLCAweDkyLCAweDVFLCAw
eDJBLCAweEZBLCAweDFDLCAweEY4LCAgLy8gLi4uXiouLi4KICAgICAgICAgICAgICAgIC8q
IDAyQjAgKi8gIDB4NzgsIDB4MDMsIDB4NzgsIDB4RjksIDB4RkYsIDB4MUYsIDB4NkYsIDB4
MDAsICAvLyB4LnguLi5vLgogICAgICAgICAgICAgICAgLyogMDJCOCAqLyAgMHgwRiwgMHhD
MywgMHhGMCwgMHgzMSwgMHgwNSwgMHg2QywgMHgzNywgMHgwNywgIC8vIC4uLjEubDcuCiAg
ICAgICAgICAgICAgICAvKiAwMkMwICovICAweDc2LCAweDRGLCAweDgxLCAweDdGLCAweDRF
LCAweDAxLCAweDFDLCAweDA5LCAgLy8gdk8uLk4uLi4KICAgICAgICAgICAgICAgIC8qIDAy
QzggKi8gIDB4NzksIDB4MDQsIDB4RTgsIDB4RTAsIDB4NjEsIDB4MTEsIDB4MjAsIDB4QjIs
ICAvLyB5Li4uYS4gLgogICAgICAgICAgICAgICAgLyogMDJEMCAqLyAgMHhGMSwgMHgwQywg
MHhGMCwgMHg5OSwgMHg4OCwgMHgwQSwgMHhBNCwgMHhEMiwgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgICAgICAvKiAwMkQ4ICovICAweDRDLCAweEMxLCAweDMyLCAweDRFLCAweEMxLCAw
eEVBLCAweDg0LCAweEM4LCAgLy8gTC4yTi4uLi4KICAgICAgICAgICAgICAgIC8qIDAyRTAg
Ki8gIDB4NjUsIDB4NTAsIDB4NDgsIDB4MDQsIDB4ODQsIDB4NDYsIDB4NjYsIDB4MzgsICAv
LyBlUEguLkZmOAogICAgICAgICAgICAgICAgLyogMDJFOCAqLyAgMHgxRiwgMHgxMiwgMHgw
RCwgMHg2NiwgMHgxMCwgMHg5RiwgMHgwRiwgMHg3QywgIC8vIC4uLmYuLi58CiAgICAgICAg
ICAgICAgICAvKiAwMkYwICovICAweEE2LCAweEYwLCAweEM5LCAweDg5LCAweEZGLCAweEZG
LCAweDRGLCAweDRFLCAgLy8gLi4uLi4uT04KICAgICAgICAgICAgICAgIC8qIDAyRjggKi8g
IDB4RTAsIDB4MzksIDB4OTgsIDB4M0MsIDB4NTQsIDB4QzAsIDB4NDIsIDB4RjQsICAvLyAu
OS48VC5CLgogICAgICAgICAgICAgICAgLyogMDMwMCAqLyAgMHg2OSwgMHg4MSwgMHhDMywg
MHhGOSwgMHhDQywgMHhDMiwgMHhFMSwgMHg3QywgIC8vIGkuLi4uLi58CiAgICAgICAgICAg
ICAgICAvKiAwMzA4ICovICAweDI0LCAweEUxLCAweDA3LCAweDQ4LCAweDdFLCAweDU0LCAw
eDAyLCAweDk3LCAgLy8gJC4uSH5ULi4KICAgICAgICAgICAgICAgIC8qIDAzMTAgKi8gIDB4
QzAsIDB4NDMsIDB4MDMsIDB4MjgsIDB4ODAsIDB4N0MsIDB4M0YsIDB4RjAsICAvLyAuQy4o
Lnw/LgogICAgICAgICAgICAgICAgLyogMDMxOCAqLyAgMHgzOSwgMHhFMCwgMHgxOSwgMHg4
MSwgMHhDRCwgMHhFMSwgMHg5MSwgMHhDMCwgIC8vIDkuLi4uLi4uCiAgICAgICAgICAgICAg
ICAvKiAwMzIwICovICAweDA3LCAweDAyLCAweDA2LCAweENGLCAweEEzLCAweDhELCAweDhB
LCAweDFFLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAzMjggKi8gIDB4NkQs
IDB4M0MsIDB4M0MsIDB4N0UsIDB4NjQsIDB4RjAsIDB4N0MsIDB4MUUsICAvLyBtPDx+ZC58
LgogICAgICAgICAgICAgICAgLyogMDMzMCAqLyAgMHgwOCwgMHg4RSwgMHhGMiwgMHg5MSwg
MHgwMCwgMHg4NywgMHhGMSwgMHg3RSwgIC8vIC4uLi4uLi5+CiAgICAgICAgICAgICAgICAv
KiAwMzM4ICovICAweEUxLCAweDIxLCAweEZBLCAweDk0LCAweDAzLCAweDZCLCAweDIyLCAw
eDQ3LCAgLy8gLiEuLi5rIkcKICAgICAgICAgICAgICAgIC8qIDAzNDAgKi8gIDB4NkQsIDB4
RDEsIDB4MjcsIDB4MDIsIDB4ODEsIDB4M0UsIDB4NzMsIDB4NjEsICAvLyBtLicuLj5zYQog
ICAgICAgICAgICAgICAgLyogMDM0OCAqLyAgMHg0RSwgMHgzOSwgMHhDMCwgMHgyOSwgMHhG
OCwgMHhFOCwgMHg1MSwgMHg1MSwgIC8vIE45LikuLlFRCiAgICAgICAgICAgICAgICAvKiAw
MzUwICovICAweDBGLCAweEE0LCAweEEwLCAweDNELCAweDI5LCAweEY4LCAweEFDLCAweEUw
LCAgLy8gLi4uPSkuLi4KICAgICAgICAgICAgICAgIC8qIDAzNTggKi8gIDB4QzMsIDB4MTcs
IDB4RkMsIDB4RkYsIDB4RkYsIDB4RTEsIDB4MEIsIDB4Q0UsICAvLyAuLi4uLi4uLgogICAg
ICAgICAgICAgICAgLyogMDM2MCAqLyAgMHhCQywgMHg1RSwgMHhENiwgMHg3QywgMHhFMCwg
MHg4OCwgMHg3MywgMHgxNiwgIC8vIC5eLnwuLnMuCiAgICAgICAgICAgICAgICAvKiAwMzY4
ICovICAweEE3LCAweEZCLCAweDZFLCAweDgxLCAweDNGLCAweDkxLCAweDAyLCAweEIzLCAg
Ly8gLi5uLj8uLi4KICAgICAgICAgICAgICAgIC8qIDAzNzAgKi8gIDB4MjAsIDB4MjcsIDB4
NTIsIDB4MTQsIDB4OEMsIDB4NEYsIDB4QTQsIDB4ODAsICAvLyAgJ1IuLk8uLgogICAgICAg
ICAgICAgICAgLyogMDM3OCAqLyAgMHhDRCwgMHg1QiwgMHgwMCwgMHhGNiwgMHhCQSwgMHhG
MCwgMHgyNCwgMHgwMiwgIC8vIC5bLi4uLiQuCiAgICAgICAgICAgICAgICAvKiAwMzgwICov
ICAweEUzLCAweDFDLCAweEYxLCAweDhDLCAweDA1LCAweEYzLCAweDUwLCAweDc1LCAgLy8g
Li4uLi4uUHUKICAgICAgICAgICAgICAgIC8qIDAzODggKi8gIDB4OEEsIDB4MkYsIDB4NTUs
IDB4NkYsIDB4MEMsIDB4MTEsIDB4OUUsIDB4QUMsICAvLyAuL1VvLi4uLgogICAgICAgICAg
ICAgICAgLyogMDM5MCAqLyAgMHg1RSwgMHhBMywgMHgxRSwgMHhCMCwgMHgwQywgMHhGNiwg
MHgyMiwgMHg2MCwgIC8vIF4uLi4uLiJgCiAgICAgICAgICAgICAgICAvKiAwMzk4ICovICAw
eDk4LCAweDU3LCAweDJDLCAweDlGLCAweEFFLCAweDQyLCAweDNDLCAweDYwLCAgLy8gLlcs
Li5CPGAKICAgICAgICAgICAgICAgIC8qIDAzQTAgKi8gIDB4RjksIDB4QUMsIDB4MTUsIDB4
MkQsIDB4NDQsIDB4QzgsIDB4MjgsIDB4QzEsICAvLyAuLi4tRC4oLgogICAgICAgICAgICAg
ICAgLyogMDNBOCAqLyAgMHg1RSwgMHhCMSwgMHg1RSwgMHg2NSwgMHg3QywgMHhBNCwgMHgz
MiwgMHg3OCwgIC8vIF4uXmV8LjJ4CiAgICAgICAgICAgICAgICAvKiAwM0IwICovICAweEMw
LCAweEIwLCAweEQxLCAweDIyLCAweDQ1LCAweDc4LCAweEM0LCAweEMyLCAgLy8gLi4uIkV4
Li4KICAgICAgICAgICAgICAgIC8qIDAzQjggKi8gIDB4RkYsIDB4RkYsIDB4OEYsIDB4NTgs
IDB4RTAsIDB4OTEsIDB4NzAsIDB4MjAsICAvLyAuLi5YLi5wIAogICAgICAgICAgICAgICAg
LyogMDNDMCAqLyAgMHgwNSwgMHhBOCwgMHgzMiwgMHg3MCwgMHhEQywgMHg4MSwgMHgxNCwg
MHhEOCwgIC8vIC4uMnAuLi4uCiAgICAgICAgICAgICAgICAvKiAwM0M4ICovICAweDlGLCAw
eDI2LCAweEYwLCAweEQ3LCAweDBCLCAweDhGLCAweDA3LCAweEZCLCAgLy8gLiYuLi4uLi4K
ICAgICAgICAgICAgICAgIC8qIDAzRDAgKi8gIDB4RkYsIDB4M0YsIDB4MDcsIDB4ODAsIDB4
RUYsIDB4MTAsIDB4MDMsIDB4MEMsICAvLyAuPy4uLi4uLgogICAgICAgICAgICAgICAgLyog
MDNEOCAqLyAgMHgwNiwgMHgwQywgMHhFMywgMHgxMCwgMHgwMywgMHgzQywgMHgwNCwgMHg5
RiwgIC8vIC4uLi4uPC4uCiAgICAgICAgICAgICAgICAvKiAwM0UwICovICAweENDLCAweDQw
LCAweDdGLCAweERDLCAweDgxLCAweDNGLCAweDBFLCAweDlFLCAgLy8gLkAuLi4/Li4KICAg
ICAgICAgICAgICAgIC8qIDAzRTggKi8gIDB4RjEsIDB4QzksIDB4NjEsIDB4MDIsIDB4ODUs
IDB4MzksIDB4OTEsIDB4QTIsICAvLyAuLmEuLjkuLgogICAgICAgICAgICAgICAgLyogMDNG
MCAqLyAgMHg2MCwgMHg3QywgMHgyMiwgMHgwNSwgMHg5QywgMHhGRCwgMHhGRiwgMHgwRiwg
IC8vIGB8Ii4uLi4uCiAgICAgICAgICAgICAgICAvKiAwM0Y4ICovICAweDU3LCAweDYwLCAw
eDM4LCAweERFLCAweDgwLCAweEZGLCAweDM2LCAweEUzLCAgLy8gV2A4Li4uNi4KICAgICAg
ICAgICAgICAgIC8qIDA0MDAgKi8gIDB4NDMsIDB4QTgsIDB4Q0YsIDB4MzcsIDB4QkUsIDB4
OTAsIDB4MUEsIDB4RTIsICAvLyBDLi43Li4uLgogICAgICAgICAgICAgICAgLyogMDQwOCAq
LyAgMHhDNSwgMHhFNiwgMHg0RCwgMHhFRCwgMHg5NSwgMHhFMCwgMHhGNSwgMHg5RCwgIC8v
IC4uTS4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNDEwICovICAweDVELCAweDZCLCAweDVF
LCAweERGLCAweDdELCAweDJBLCAweDc4LCAweDEyLCAgLy8gXWteLn0qeC4KICAgICAgICAg
ICAgICAgIC8qIDA0MTggKi8gIDB4OEQsIDB4MTAsIDB4MzIsIDB4Q0EsIDB4NEIsIDB4OEUs
IDB4NDEsIDB4NDIsICAvLyAuLjIuSy5BQgogICAgICAgICAgICAgICAgLyogMDQyMCAqLyAg
MHhCQywgMHg4RSwgMHgxQSwgMHgzMCwgMHg1OCwgMHg5MCwgMHg4OCwgMHhBNywgIC8vIC4u
LjBYLi4uCiAgICAgICAgICAgICAgICAvKiAwNDI4ICovICAweEYwLCAweEI0LCAweEYzLCAw
eDc4LCAweDAzLCAweDVFLCAweDUxLCAweDA3LCAgLy8gLi4ueC5eUS4KICAgICAgICAgICAg
ICAgIC8qIDA0MzAgKi8gIDB4NTIsIDB4ODAsIDB4MUUsIDB4RkYsIDB4RkYsIDB4MDMsIDB4
MjksIDB4MzAsICAvLyBSLi4uLi4pMAogICAgICAgICAgICAgICAgLyogMDQzOCAqLyAgMHhC
OCwgMHhBNywgMHhDMCwgMHgzRSwgMHhBNywgMHgwMCwgMHg5RSwgMHg5MiwgIC8vIC4uLj4u
Li4uCiAgICAgICAgICAgICAgICAvKiAwNDQwICovICAweDlGLCAweDQ4LCAweDY5LCAweEVB
LCAweDEzLCAweDI5LCAweDVBLCAweDExLCAgLy8gLkhpLi4pWi4KICAgICAgICAgICAgICAg
IC8qIDA0NDggKi8gIDB4OTAsIDB4QTYsIDB4MEEsIDB4MTYsIDB4ODIsIDB4RTksIDB4NEYs
IDB4QTQsICAvLyAuLi4uLi5PLgogICAgICAgICAgICAgICAgLyogMDQ1MCAqLyAgMHhGNCwg
MHg2MCwgMHhFMCwgMHhEQywgMHgyNCwgMHg0QSwgMHgzRSwgMHgzNCwgIC8vIC5gLi4kSj40
CiAgICAgICAgICAgICAgICAvKiAwNDU4ICovICAweDBBLCAweEU3LCAweEFDLCAweDA3LCAw
eDEyLCAweDBBLCAweDYyLCAweDQwLCAgLy8gLi4uLi4uYkAKICAgICAgICAgICAgICAgIC8q
IDA0NjAgKi8gIDB4MDcsIDB4MzksIDB4NTQsIDB4QTAsIDB4Q0YsIDB4MkEsIDB4M0UsIDB4
OTAsICAvLyAuOVQuLio+LgogICAgICAgICAgICAgICAgLyogMDQ2OCAqLyAgMHgxQywgMHhD
OCwgMHgyMywgMHhBMiwgMHg4NywgMHhFNSwgMHg0MywgMHhBNSwgIC8vIC4uIy4uLkMuCiAg
ICAgICAgICAgICAgICAvKiAwNDcwICovICAweEVGLCAweDJBLCAweDNFLCAweDg3LCAweEY4
LCAweDQ4LCAweEUxLCAweEYxLCAgLy8gLio+Li5ILi4KICAgICAgICAgICAgICAgIC8qIDA0
NzggKi8gIDB4RkIsIDB4QjAsIDB4QzAsIDB4RkYsIDB4MzMsIDB4M0UsIDB4OEUsIDB4MzIs
ICAvLyAuLi4uMz4uMgogICAgICAgICAgICAgICAgLyogMDQ4MCAqLyAgMHhGMCwgMHg2QSwg
MHhDRSwgMHgyQiwgMHgyOCwgMHgzMCwgMHg5RiwgMHg0NiwgIC8vIC5qLisoMC5GCiAgICAg
ICAgICAgICAgICAvKiAwNDg4ICovICAweDMxLCAweEJBLCAweEVFLCAweDEzLCAweDIwLCAw
eEY5LCAweEZGLCAweENGLCAgLy8gMS4uLiAuLi4KICAgICAgICAgICAgICAgIC8qIDA0OTAg
Ki8gIDB4OEYsIDB4RUIsIDB4M0IsIDB4OEMsIDB4ODIsIDB4MUMsIDB4OUQsIDB4ODcsICAv
LyAuLjsuLi4uLgogICAgICAgICAgICAgICAgLyogMDQ5OCAqLyAgMHg5RiwgMHgyQywgMHgy
QSwgMHhFRSwgMHg2NCwgMHgyOSwgMHg4OCwgMHgyNywgIC8vIC4sKi5kKS4nCiAgICAgICAg
ICAgICAgICAvKiAwNEEwICovICAweEVCLCAweDI4LCAweDkzLCAweDQ1LCAweENGLCAweEM0
LCAweEI3LCAweDBCLCAgLy8gLiguRS4uLi4KICAgICAgICAgICAgICAgIC8qIDA0QTggKi8g
IDB4Q0YsIDB4RTgsIDB4QkQsIDB4Q0IsIDB4MzcsIDB4NTgsIDB4NzYsIDB4OTMsICAvLyAu
Li4uN1h2LgogICAgICAgICAgICAgICAgLyogMDRCMCAqLyAgMHg4NSwgMHg3NywgMHgxOSwg
MHgwOCwgMHhGOSwgMHg2OCwgMHhFMCwgMHg5QiwgIC8vIC53Li4uaC4uCiAgICAgICAgICAg
ICAgICAvKiAwNEI4ICovICAweDJDLCAweERDLCAweEIxLCAweEY4LCAweDMyLCAweDAyLCAw
eEJFLCAweDlCLCAgLy8gLC4uLjIuLi4KICAgICAgICAgICAgICAgIC8qIDA0QzAgKi8gIDB4
MkMsIDB4RTAsIDB4NzUsIDB4MzQsIDB4M0UsIDB4NUIsIDB4QjAsIDB4NTMsICAvLyAsLnU0
PlsuUwogICAgICAgICAgICAgICAgLyogMDRDOCAqLyAgMHg4OCwgMHhBRiwgMHg2QiwgMHhC
MCwgMHhCMiwgMHhERSwgMHhCMCwgMHhDOCwgIC8vIC4uay4uLi4uCiAgICAgICAgICAgICAg
ICAvKiAwNEQwICovICAweEZGLCAweDlGLCAweDYwLCAweDlDLCAweDg1LCAweDI4LCAweEU0
LCAweDkyLCAgLy8gLi5gLi4oLi4KICAgICAgICAgICAgICAgIC8qIDA0RDggKi8gIDB4Mjgs
IDB4OEMsIDB4NkYsIDB4NTgsIDB4ODAsIDB4QTMsIDB4QkIsIDB4MEQsICAvLyAoLm9YLi4u
LgogICAgICAgICAgICAgICAgLyogMDRFMCAqLyAgMHhFRSwgMHg4NiwgMHgwNSwgMHgxQywg
MHg4MCwgMHgwRSwgMHhDNSwgMHg1NywgIC8vIC4uLi4uLi5XCiAgICAgICAgICAgICAgICAv
KiAwNEU4ICovICAweDJDLCAweEQ4LCAweDg3LCAweEE4LCAweDM3LCAweEFBLCAweDA4LCAw
eDNFLCAgLy8gLC4uLjcuLj4KICAgICAgICAgICAgICAgIC8qIDA0RjAgKi8gIDB4NUYsIDB4
QkQsIDB4NjAsIDB4M0QsIDB4NTcsIDB4M0QsIDB4ODksIDB4RkEsICAvLyBfLmA9Vz0uLgog
ICAgICAgICAgICAgICAgLyogMDRGOCAqLyAgMHg1QSwgMHhGNSwgMHg2QywgMHg2NSwgMHhG
NCwgMHgxNywgMHg1MiwgMHg3NiwgIC8vIFoubGUuLlJ2CiAgICAgICAgICAgICAgICAvKiAw
NTAwICovICAweEJBLCAweEYyLCAweDE1LCAweENCLCAweDg4LCAweEUxLCAweDAyLCAweDg2
LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA1MDggKi8gIDB4MzIsIDB4NEMs
IDB4QjgsIDB4NTcsIDB4ODgsIDB4NTgsIDB4ODEsIDB4NjMsICAvLyAyTC5XLlguYwogICAg
ICAgICAgICAgICAgLyogMDUxMCAqLyAgMHhCRSwgMHg5MCwgMHhGQSwgMHg5QywgMHhFRCwg
MHg1QiwgMHgxNSwgMHhCQiwgIC8vIC4uLi4uWy4uCiAgICAgICAgICAgICAgICAvKiAwNTE4
ICovICAweDYyLCAweDgxLCAweDUzLCAweEQ2LCAweDE1LCAweDBCLCAweDQ4LCAweEZELCAg
Ly8gYi5TLi4uSC4KICAgICAgICAgICAgICAgIC8qIDA1MjAgKi8gIDB4RkYsIDB4QUYsIDB4
NTgsIDB4ODAsIDB4RDEsIDB4RTEsIDB4QkYsIDB4NjIsICAvLyAuLlguLi4uYgogICAgICAg
ICAgICAgICAgLyogMDUyOCAqLyAgMHgwMSwgMHhBNywgMHg4MywgMHgwMywgMHhCQiwgMHg2
MywgMHgwMSwgMHg5RSwgIC8vIC4uLi4uYy4uCiAgICAgICAgICAgICAgICAvKiAwNTMwICov
ICAweEQyLCAweERGLCAweEIxLCAweEU4LCAweDJELCAweENCLCAweDc3LCAweDJDLCAgLy8g
Li4uLi0udywKICAgICAgICAgICAgICAgIC8qIDA1MzggKi8gIDB4N0UsIDB4MTAsIDB4QjEs
IDB4QTYsIDB4M0IsIDB4MTYsIDB4ODQsIDB4RkYsICAvLyB+Li4uOy4uLgogICAgICAgICAg
ICAgICAgLyogMDU0MCAqLyAgMHhGRiwgMHg1QywgMHhFMSwgMHg1RSwgMHhCMiwgMHgwMCwg
MHg4RSwgMHhGRiwgIC8vIC5cLl4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNTQ4ICovICAw
eEZGLCAweDJGLCAweDU5LCAweEYwLCAweEMyLCAweDVELCAweEIyLCAweDgwLCAgLy8gLi9Z
Li5dLi4KICAgICAgICAgICAgICAgIC8qIDA1NTAgKi8gIDB4REUsIDB4MDUsIDB4MDksIDB4
N0MsIDB4OTcsIDB4MkMsIDB4RjgsIDB4MTcsICAvLyAuLi58LiwuLgogICAgICAgICAgICAg
ICAgLyogMDU1OCAqLyAgMHgyNCwgMHhBRSwgMHhEMCwgMHhBNiwgMHg0RiwgMHg4RCwgMHg0
NiwgMHhBRCwgIC8vICQuLi5PLkYuCiAgICAgICAgICAgICAgICAvKiAwNTYwICovICAweDFB
LCAweDk0LCAweEE5LCAweDUxLCAweEE2LCAweDQxLCAweEFELCAweDNFLCAgLy8gLi4uUS5B
Lj4KICAgICAgICAgICAgICAgIC8qIDA1NjggKi8gIDB4OTUsIDB4MUEsIDB4MzMsIDB4RTYs
IDB4MDYsIDB4NEEsIDB4RTIsIDB4NkUsICAvLyAuLjMuLkoubgogICAgICAgICAgICAgICAg
LyogMDU3MCAqLyAgMHgxOCwgMHg1NCwgMHhEMiwgMHhCQSwgMHgzNCwgMHgzMCwgMHgwNywg
MHgwMiwgIC8vIC5ULi40MC4uCiAgICAgICAgICAgICAgICAvKiAwNTc4ICovICAweEExLCAw
eDAxLCAweDI0LCAweDgwLCAweEIwLCAweEQwLCAweEJGLCAweDIwLCAgLy8gLi4kLi4uLiAK
ICAgICAgICAgICAgICAgIC8qIDA1ODAgKi8gIDB4MUQsIDB4MTMsIDB4QzgsIDB4NzcsIDB4
NEIsIDB4NDAsIDB4MTYsIDB4QkIsICAvLyAuLi53S0AuLgogICAgICAgICAgICAgICAgLyog
MDU4OCAqLyAgMHgyQywgMHg4MSwgMHg1OCwgMHhBNiwgMHgwQSwgMHg4OCwgMHg0NiwgMHgy
RSwgIC8vICwuWC4uLkYuCiAgICAgICAgICAgICAgICAvKiAwNTkwICovICAweDE3LCAweDA2
LCAweDExLCAweDkwLCAweEUzLCAweEZELCAweDZCLCAweDA0LCAgLy8gLi4uLi4uay4KICAg
ICAgICAgICAgICAgIC8qIDA1OTggKi8gIDB4RUEsIDB4NDgsIDB4M0EsIDB4ODAsIDB4OTgs
IDB4MjAsIDB4MUYsIDB4ODMsICAvLyAuSDouLiAuLgogICAgICAgICAgICAgICAgLyogMDVB
MCAqLyAgMHhBNSwgMHg0RiwgMHgwMSwgMHg4MSwgMHg1OCwgMHgzNiwgMHhBRCwgMHgwMCwg
IC8vIC5PLi5YNi4uCiAgICAgICAgICAgICAgICAvKiAwNUE4ICovICAweDJELCAweEQ3LCAw
eDA5LCAweDEwLCAweDBCLCAweDBCLCAweDQyLCAweDAzLCAgLy8gLS4uLi4uQi4KICAgICAg
ICAgICAgICAgIC8qIDA1QjAgKi8gIDB4NUEsIDB4MTksIDB4MDIsIDB4NEIsIDB4MEIsIDB4
MjIsIDB4MjAsIDB4MjcsICAvLyBaLi5LLiIgJwogICAgICAgICAgICAgICAgLyogMDVCOCAq
LyAgMHhEMywgMHgwMiwgMHhDNCwgMHg3MiwgMHg4MiwgMHgwOCwgMHhDOCwgMHhDQSwgIC8v
IC4uLnIuLi4uCiAgICAgICAgICAgICAgICAvKiAwNUMwICovICAweDE2LCAweDJDLCAweDcw
LCAweDZCLCAweEZBLCAweDZFLCAweDA4LCAweEM4LCAgLy8gLixway5uLi4KICAgICAgICAg
ICAgICAgIC8qIDA1QzggKi8gIDB4ODksIDB4NDAsIDB4NjgsIDB4OTIsIDB4NjcsIDB4ODMs
IDB4NDAsIDB4MUQsICAvLyAuQGguZy5ALgogICAgICAgICAgICAgICAgLyogMDVEMCAqLyAg
MHgwQiwgMHg0NCwgMHg0MCwgMHg4RSwgMHg2MCwgMHgwNywgMHg4OCwgMHgwNSwgIC8vIC5E
QC5gLi4uCiAgICAgICAgICAgICAgICAvKiAwNUQ4ICovICAweDAyLCAweDExLCAweDkwLCAw
eEZGLCAweEZGICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLi4KICAgICAgICAgICAgfSkK
ICAgICAgICB9CgogICAgICAgIERldmljZSAoV01JMykKICAgICAgICB7CiAgICAgICAgICAg
IE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMTQiKSAvKiBXaW5kb3dzIE1hbmFnZW1lbnQg
SW5zdHJ1bWVudGF0aW9uIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAg
ICAgICAgIE5hbWUgKF9VSUQsIDB4MDMpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAg
ICAgTmFtZSAoX1dERywgLyoqKiogSXMgUmVzb3VyY2VUZW1wbGF0ZSwgYnV0IEVuZFRhZyBu
b3QgYXQgYnVmZmVyIGVuZCAqKioqLyBCdWZmZXIgKDB4M0MpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4NzksIDB4MzYsIDB4NEQsIDB4OEYsIDB4OUUs
IDB4NzQsIDB4NzksIDB4NDQsICAvLyB5Nk0uLnR5RAogICAgICAgICAgICAgICAgLyogMDAw
OCAqLyAgMHg5QiwgMHgxNiwgMHhDNiwgMHgyNiwgMHgwMSwgMHhGRCwgMHgyNSwgMHhGMCwg
IC8vIC4uLiYuLiUuCiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDQxLCAweDQyLCAw
eDAxLCAweDAyLCAweDY5LCAweEU4LCAweEQyLCAweDg1LCAgLy8gQUIuLmkuLi4KICAgICAg
ICAgICAgICAgIC8qIDAwMTggKi8gIDB4NUEsIDB4MzYsIDB4Q0UsIDB4NEEsIDB4QTQsIDB4
RDMsIDB4Q0QsIDB4NjksICAvLyBaNi5KLi4uaQogICAgICAgICAgICAgICAgLyogMDAyMCAq
LyAgMHgyQiwgMHgxNiwgMHg5OCwgMHhBMCwgMHg0MSwgMHg0MywgMHgwMSwgMHgwMiwgIC8v
ICsuLi5BQy4uCiAgICAgICAgICAgICAgICAvKiAwMDI4ICovICAweDIxLCAweDEyLCAweDkw
LCAweDA1LCAweDY2LCAweEQ1LCAweEQxLCAweDExLCAgLy8gIS4uLmYuLi4KICAgICAgICAg
ICAgICAgIC8qIDAwMzAgKi8gIDB4QjIsIDB4RjAsIDB4MDAsIDB4QTAsIDB4QzksIDB4MDYs
IDB4MjksIDB4MTAsICAvLyAuLi4uLi4pLgogICAgICAgICAgICAgICAgLyogMDAzOCAqLyAg
MHg0MiwgMHg0MywgMHgwMSwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJD
Li4KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChXTUFCLCAzLCBOb3RTZXJp
YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQg
KEFyZzIsIDB4MDAsIEFTUzApCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFy
ZzIsIDB4MDEsIEFTUzEpCiAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzIs
IDB4MDMsIEFTUzIpCiAgICAgICAgICAgICAgICBBY3F1aXJlICheXldNSTEuTVdNSSwgMHhG
RkZGKQogICAgICAgICAgICAgICAgV0FTQiA9IEFTUzAgLyogXF9TQl8uV01JMy5XTUFCLkFT
UzAgKi8KICAgICAgICAgICAgICAgIFdBU0kgPSBBU1MxIC8qIFxfU0JfLldNSTMuV01BQi5B
U1MxICovCiAgICAgICAgICAgICAgICBXQVNEID0gQVNTMiAvKiBcX1NCXy5XTUkzLldNQUIu
QVNTMiAqLwogICAgICAgICAgICAgICAgV01JUyAoMHgwQiwgMHgwMCkKICAgICAgICAgICAg
ICAgIExvY2FsMCA9IFdBU1MgLyogXFdBU1MgKi8KICAgICAgICAgICAgICAgIFJlbGVhc2Ug
KF5eV01JMS5NV01JKQogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV01BQywgMywgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcyLCAweDAw
LCBBU1MwKQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcyLCAweDAxLCBB
U1MxKQogICAgICAgICAgICAgICAgQWNxdWlyZSAoXl5XTUkxLk1XTUksIDB4RkZGRikKICAg
ICAgICAgICAgICAgIFdBU0IgPSBBU1MwIC8qIFxfU0JfLldNSTMuV01BQy5BU1MwICovCiAg
ICAgICAgICAgICAgICBXQVNJID0gQVNTMSAvKiBcX1NCXy5XTUkzLldNQUMuQVNTMSAqLwog
ICAgICAgICAgICAgICAgV01JUyAoMHgwQywgQXJnMSkKICAgICAgICAgICAgICAgIExvY2Fs
MCA9IFdBU1MgLyogXFdBU1MgKi8KICAgICAgICAgICAgICAgIFJlbGVhc2UgKF5eV01JMS5N
V01JKQogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIE5hbWUgKFdRQkMsIEJ1ZmZlciAoMHgwNDBBKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAvKiAwMDAwICovICAweDQ2LCAweDRGLCAweDRELCAweDQyLCAweDAx
LCAweDAwLCAweDAwLCAweDAwLCAgLy8gRk9NQi4uLi4KICAgICAgICAgICAgICAgIC8qIDAw
MDggKi8gIDB4RkEsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MzIsIDB4MTIsIDB4MDAsIDB4MDAs
ICAvLyAuLi4uMi4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHg0NCwgMHg1Mywg
MHgwMCwgMHgwMSwgMHgxQSwgMHg3RCwgMHhEQSwgMHg1NCwgIC8vIERTLi4ufS5UCiAgICAg
ICAgICAgICAgICAvKiAwMDE4ICovICAweDk4LCAweEMzLCAweDg4LCAweDAwLCAweDAxLCAw
eDA2LCAweDE4LCAweDQyLCAgLy8gLi4uLi4uLkIKICAgICAgICAgICAgICAgIC8qIDAwMjAg
Ki8gIDB4MTAsIDB4MDcsIDB4MTAsIDB4OEEsIDB4MEQsIDB4MjEsIDB4MDIsIDB4MEIsICAv
LyAuLi4uLiEuLgogICAgICAgICAgICAgICAgLyogMDAyOCAqLyAgMHg4MywgMHg1MCwgMHg1
MCwgMHgxOCwgMHgxNCwgMHhBMCwgMHg0NSwgMHg0MSwgIC8vIC5QUC4uLkVBCiAgICAgICAg
ICAgICAgICAvKiAwMDMwICovICAweEM4LCAweDA1LCAweDE0LCAweDk1LCAweDAyLCAweDIx
LCAweEMzLCAweDAyLCAgLy8gLi4uLi4hLi4KICAgICAgICAgICAgICAgIC8qIDAwMzggKi8g
IDB4MTQsIDB4MEIsIDB4NzAsIDB4MkUsIDB4NDAsIDB4QkEsIDB4MDAsIDB4RTUsICAvLyAu
LnAuQC4uLgogICAgICAgICAgICAgICAgLyogMDA0MCAqLyAgMHgyOCwgMHg3MiwgMHgwQywg
MHgyMiwgMHgwMiwgMHhGNywgMHhFRiwgMHgwRiwgIC8vIChyLiIuLi4uCiAgICAgICAgICAg
ICAgICAvKiAwMDQ4ICovICAweDMxLCAweDEwLCAweDg4LCAweDE0LCAweDQwLCAweDQ4LCAw
eDI4LCAweDg0LCAgLy8gMS4uLkBIKC4KICAgICAgICAgICAgICAgIC8qIDAwNTAgKi8gIDB4
NDQsIDB4MDAsIDB4NTMsIDB4MjEsIDB4NzAsIDB4ODQsIDB4QTAsIDB4NUYsICAvLyBELlMh
cC4uXwogICAgICAgICAgICAgICAgLyogMDA1OCAqLyAgMHgwMSwgMHgwOCwgMHgxRCwgMHgw
QSwgMHg5MCwgMHgyOSwgMHhDMCwgMHhBMCwgIC8vIC4uLi4uKS4uCiAgICAgICAgICAgICAg
ICAvKiAwMDYwICovICAweDAwLCAweEE3LCAweDA4LCAweDIyLCAweDg4LCAweEQyLCAweEIy
LCAweDAwLCAgLy8gLi4uIi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwNjggKi8gIDB4REQs
IDB4MDIsIDB4N0MsIDB4MEIsIDB4RDAsIDB4MEUsIDB4MjEsIDB4QjQsICAvLyAuLnwuLi4h
LgogICAgICAgICAgICAgICAgLyogMDA3MCAqLyAgMHg1OCwgMHgwNywgMHgxMSwgMHgyMSwg
MHhEMiwgMHgzMSwgMHgzNCwgMHgyOSwgIC8vIFguLiEuMTQpCiAgICAgICAgICAgICAgICAv
KiAwMDc4ICovICAweDQwLCAweEEyLCAweDAwLCAweDhCLCAweDAyLCAweDY0LCAweEMzLCAw
eEM4LCAgLy8gQC4uLi5kLi4KICAgICAgICAgICAgICAgIC8qIDAwODAgKi8gIDB4MzYsIDB4
MjIsIDB4OTksIDB4ODcsIDB4NDUsIDB4MEUsIDB4MDIsIDB4MjUsICAvLyA2Ii4uRS4uJQog
ICAgICAgICAgICAgICAgLyogMDA4OCAqLyAgMHg2NiwgMHgxMCwgMHgyOCwgMHg5RCwgMHhF
MCwgMHhCMiwgMHg4OSwgMHhBQiwgIC8vIGYuKC4uLi4uCiAgICAgICAgICAgICAgICAvKiAw
MDkwICovICAweDQxLCAweDlDLCAweDRDLCAweDk0LCAweEYzLCAweDg4LCAweDkyLCAweEUw
LCAgLy8gQS5MLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwOTggKi8gIDB4QTgsIDB4MEUs
IDB4MjIsIDB4NDIsIDB4RUMsIDB4NzIsIDB4MDUsIDB4NDgsICAvLyAuLiJCLnIuSAogICAg
ICAgICAgICAgICAgLyogMDBBMCAqLyAgMHgxRSwgMHg4MCwgMHgzNCwgMHg0RiwgMHg0Qywg
MHhENiwgMHhFNywgMHhBMCwgIC8vIC4uNE9MLi4uCiAgICAgICAgICAgICAgICAvKiAwMEE4
ICovICAweDkxLCAweEIxLCAweDExLCAweEYwLCAweDk0LCAweDFBLCAweDQwLCAweDU4LCAg
Ly8gLi4uLi4uQFgKICAgICAgICAgICAgICAgIC8qIDAwQjAgKi8gIDB4QTAsIDB4NzUsIDB4
MkEsIDB4RTAsIDB4N0EsIDB4MEQsIDB4NDMsIDB4M0QsICAvLyAudSouei5DPQogICAgICAg
ICAgICAgICAgLyogMDBCOCAqLyAgMHg4MCwgMHg0OCwgMHhDRSwgMHg1OCwgMHg1MSwgMHhD
MCwgMHhGNiwgMHgzQSwgIC8vIC5ILlhRLi46CiAgICAgICAgICAgICAgICAvKiAwMEMwICov
ICAweDExLCAweDhELCAweEVBLCAweDQwLCAweDk5LCAweDI0LCAweDM4LCAweEQ0LCAgLy8g
Li4uQC4kOC4KICAgICAgICAgICAgICAgIC8qIDAwQzggKi8gIDB4MzAsIDB4M0QsIDB4QjUs
IDB4RTYsIDB4MjcsIDB4QTYsIDB4ODksIDB4OUMsICAvLyAwPS4uJy4uLgogICAgICAgICAg
ICAgICAgLyogMDBEMCAqLyAgMHg1QSwgMHhEMywgMHg0MywgMHgxNiwgMHgyNCwgMHg5Mywg
MHgzNiwgMHgxNCwgIC8vIFouQy4kLjYuCiAgICAgICAgICAgICAgICAvKiAwMEQ4ICovICAw
eEQ0LCAweEQ4LCAweDNELCAweEFELCAweDkzLCAweEYyLCAweDRDLCAweDIzLCAgLy8gLi49
Li4uTCMKICAgICAgICAgICAgICAgIC8qIDAwRTAgKi8gIDB4MUUsIDB4OTQsIDB4NjEsIDB4
MTIsIDB4NzgsIDB4MTQsIDB4MEMsIDB4OEQsICAvLyAuLmEueC4uLgogICAgICAgICAgICAg
ICAgLyogMDBFOCAqLyAgMHgxMywgMHg5NCwgMHg3NSwgMHgyMiwgMHhBMCwgMHgwMywgMHhF
NSwgMHg4MCwgIC8vIC4udSIuLi4uCiAgICAgICAgICAgICAgICAvKiAwMEYwICovICAweDI3
LCAweEUxLCAweDM5LCAweDE2LCAweDJGLCAweDQwLCAweEY4LCAweDg4LCAgLy8gJy45Li9A
Li4KICAgICAgICAgICAgICAgIC8qIDAwRjggKi8gIDB4QzksIDB4QjQsIDB4NEQsIDB4RTAs
IDB4MzMsIDB4ODEsIDB4ODcsIDB4NzksICAvLyAuLk0uMy4ueQogICAgICAgICAgICAgICAg
LyogMDEwMCAqLyAgMHhDQywgMHhEOCwgMHgxMSwgMHg4NSwgMHgwQiwgMHg3OCwgMHgzRSwg
MHhDNywgIC8vIC4uLi4ueD4uCiAgICAgICAgICAgICAgICAvKiAwMTA4ICovICAweDEwLCAw
eDM5LCAweEVFLCAweEExLCAweEM2LCAweDM4LCAweDhBLCAweEM4LCAgLy8gLjkuLi44Li4K
ICAgICAgICAgICAgICAgIC8qIDAxMTAgKi8gIDB4NDcsIDB4NjAsIDB4MjQsIDB4MDMsIDB4
QzUsIDB4MkIsIDB4MDgsIDB4ODksICAvLyBHYCQuLisuLgogICAgICAgICAgICAgICAgLyog
MDExOCAqLyAgMHg4MCwgMHhGOCwgMHg3NiwgMHg3MCwgMHg3MCwgMHg5MSwgMHhGQywgMHhG
RiwgIC8vIC4udnBwLi4uCiAgICAgICAgICAgICAgICAvKiAwMTIwICovICAweDQ3LCAweDg5
LCAweDExLCAweDJBLCAweEM2LCAweERCLCAweDAwLCAweDZFLCAgLy8gRy4uKi4uLm4KICAg
ICAgICAgICAgICAgIC8qIDAxMjggKi8gIDB4NUUsIDB4MDksIDB4OEEsIDB4MUUsIDB4MDcs
IDB4NEEsIDB4MDYsIDB4ODQsICAvLyBeLi4uLkouLgogICAgICAgICAgICAgICAgLyogMDEz
MCAqLyAgMHgzQywgMHgwQSwgMHhCMCwgMHg3QSwgMHgyOCwgMHgyMCwgMHgwNCwgMHgxNiwg
IC8vIDwuLnooIC4uCiAgICAgICAgICAgICAgICAvKiAwMTM4ICovICAweDI3LCAweDQwLCAw
eEUzLCAweDM4LCAweDA1LCAweEQzLCAweDk5LCAweDAwLCAgLy8gJ0AuOC4uLi4KICAgICAg
ICAgICAgICAgIC8qIDAxNDAgKi8gIDB4NkQsIDB4MDIsIDB4QkMsIDB4MDksIDB4MzAsIDB4
MjcsIDB4QzAsIDB4MTYsICAvLyBtLi4uMCcuLgogICAgICAgICAgICAgICAgLyogMDE0OCAq
LyAgMHg4NiwgMHg4MCwgMHg4MiwgMHg5QywgMHg1OSwgMHg5NCwgMHgyMCwgMHgxMSwgIC8v
IC4uLi5ZLiAuCiAgICAgICAgICAgICAgICAvKiAwMTUwICovICAweDQyLCAweDMxLCAweDg4
LCAweDBBLCAweDA1LCAweDE4LCAweDQzLCAweDE0LCAgLy8gQjEuLi4uQy4KICAgICAgICAg
ICAgICAgIC8qIDAxNTggKi8gIDB4Q0EsIDB4M0IsIDB4NDEsIDB4OEMsIDB4Q0EsIDB4MjAs
IDB4NzQsIDB4ODIsICAvLyAuO0EuLiB0LgogICAgICAgICAgICAgICAgLyogMDE2MCAqLyAg
MHgwOCwgMHgxNCwgMHgzRCwgMHg3OCwgMHg5OCwgMHhENiwgMHg0MCwgMHg3NCwgIC8vIC4u
PXguLkB0CiAgICAgICAgICAgICAgICAvKiAwMTY4ICovICAweDg5LCAweEYwLCAweEM4LCAw
eEIxLCAweDQ3LCAweDAwLCAweDlGLCAweDE5LCAgLy8gLi4uLkcuLi4KICAgICAgICAgICAg
ICAgIC8qIDAxNzAgKi8gIDB4Q0UsIDB4RTksIDB4MDQsIDB4MUYsIDB4MDEsIDB4REUsIDB4
MTYsIDB4NEMsICAvLyAuLi4uLi4uTAogICAgICAgICAgICAgICAgLyogMDE3OCAqLyAgMHhF
MCwgMHg3OSwgMHhCRiwgMHgyNCwgMHgxQywgMHg2QSwgMHhEOCwgMHgwMywgIC8vIC55LiQu
ai4uCiAgICAgICAgICAgICAgICAvKiAwMTgwICovICAweDhFLCAweDFBLCAweEUzLCAweDI4
LCAweDEyLCAweDU4LCAweEQwLCAweDMzLCAgLy8gLi4uKC5YLjMKICAgICAgICAgICAgICAg
IC8qIDAxODggKi8gIDB4NDIsIDB4MTYsIDB4NDAsIDB4MTQsIDB4MDksIDB4MUUsIDB4NzUs
IDB4NjQsICAvLyBCLkAuLi51ZAogICAgICAgICAgICAgICAgLyogMDE5MCAqLyAgMHhGMCwg
MHhFMSwgMHhDMCwgMHgyMywgMHgzQiwgMHg3MiwgMHhDRiwgMHhGMCwgIC8vIC4uLiM7ci4u
CiAgICAgICAgICAgICAgICAvKiAwMTk4ICovICAweDA0LCAweDgyLCAweDFDLCAweEMyLCAw
eDExLCAweDNDLCAweDM2LCAweDNDLCAgLy8gLi4uLi48NjwKICAgICAgICAgICAgICAgIC8q
IDAxQTAgKi8gIDB4MTUsIDB4NzgsIDB4MEMsIDB4RUMsIDB4QkEsIDB4RTAsIDB4NzMsIDB4
ODAsICAvLyAueC4uLi5zLgogICAgICAgICAgICAgICAgLyogMDFBOCAqLyAgMHg4RiwgMHgw
OSwgMHg3OCwgMHhENywgMHg4MCwgMHg5QSwgMHhGMywgMHhEMywgIC8vIC4ueC4uLi4uCiAg
ICAgICAgICAgICAgICAvKiAwMUIwICovICAweDAxLCAweDlCLCAweDcyLCAweDM4LCAweEND
LCAweDcwLCAweDNELCAweEZELCAgLy8gLi5yOC5wPS4KICAgICAgICAgICAgICAgIC8qIDAx
QjggKi8gIDB4NzAsIDB4MjcsIDB4NzAsIDB4RDIsIDB4MDYsIDB4NjQsIDB4QjMsIDB4RjMs
ICAvLyBwJ3AuLmQuLgogICAgICAgICAgICAgICAgLyogMDFDMCAqLyAgMHhFMCwgMHg3MCwg
MHhFMywgMHgzQywgMHg5OSwgMHgyMywgMHgyQiwgMHg1NSwgIC8vIC5wLjwuIytVCiAgICAg
ICAgICAgICAgICAvKiAwMUM4ICovICAweDgwLCAweEQ5LCAweDEzLCAweDgyLCAweDRFLCAw
eDEzLCAweDNFLCAweDczLCAgLy8gLi4uLk4uPnMKICAgICAgICAgICAgICAgIC8qIDAxRDAg
Ki8gIDB4QjAsIDB4QkIsIDB4QzAsIDB4RjksIDB4RjQsIDB4MEMsIDB4NDksIDB4RTQsICAv
LyAuLi4uLi5JLgogICAgICAgICAgICAgICAgLyogMDFEOCAqLyAgMHgwRiwgMHgwMiwgMHgz
NSwgMHgzMiwgMHg0MywgMHhGQiwgMHgyQywgMHhGMCwgIC8vIC4uNTJDLiwuCiAgICAgICAg
ICAgICAgICAvKiAwMUUwICovICAweEVBLCAweDYxLCAweEM4LCAweDg3LCAweDg1LCAweEMz
LCAweDYyLCAweDYyLCAgLy8gLmEuLi4uYmIKICAgICAgICAgICAgICAgIC8qIDAxRTggKi8g
IDB4Q0YsIDB4MUUsIDB4NzQsIDB4M0MsIDB4RTAsIDB4M0YsIDB4MjUsIDB4M0MsICAvLyAu
LnQ8Lj8lPAogICAgICAgICAgICAgICAgLyogMDFGMCAqLyAgMHg2QywgMHg3OCwgMHhGQSwg
MHg5RSwgMHhBRiwgMHgwOSwgMHhBMiwgMHgzRCwgIC8vIGx4Li4uLi49CiAgICAgICAgICAg
ICAgICAvKiAwMUY4ICovICAweDhGLCAweDgwLCAweEUxLCAweEZGLCAweDdGLCAweDFFLCAw
eDgxLCAweDM5LCAgLy8gLi4uLi4uLjkKICAgICAgICAgICAgICAgIC8qIDAyMDAgKi8gIDB4
OUMsIDB4MDcsIDB4ODQsIDB4MjcsIDB4MDcsIDB4NzYsIDB4ODAsIDB4QzAsICAvLyAuLi4n
LnYuLgogICAgICAgICAgICAgICAgLyogMDIwOCAqLyAgMHgxQywgMHg0OCwgMHg4MCwgMHhD
OSwgMHhGOSwgMHgwMiwgMHg3NywgMHgyOCwgIC8vIC5ILi4uLncoCiAgICAgICAgICAgICAg
ICAvKiAwMjEwICovICAweEYwLCAweDEwLCAweEY4LCAweDAwLCAweDFFLCAweDI1LCAweENF
LCAweEQxLCAgLy8gLi4uLi4lLi4KICAgICAgICAgICAgICAgIC8qIDAyMTggKi8gIDB4NEEs
IDB4NjcsIDB4ODYsIDB4M0MsIDB4QjksIDB4ODAsIDB4MkQsIDB4RkIsICAvLyBKZy48Li4t
LgogICAgICAgICAgICAgICAgLyogMDIyMCAqLyAgMHgxQiwgMHg0MCwgMHgwNywgMHgwRiwg
MHhFNywgMHgwNiwgMHg5MSwgMHg4RCwgIC8vIC5ALi4uLi4uCiAgICAgICAgICAgICAgICAv
KiAwMjI4ICovICAweDU3LCAweDgwLCAweDA5LCAweDc0LCAweDM4LCAweEIxLCAweDFFLCAw
eDIwLCAgLy8gVy4udDguLiAKICAgICAgICAgICAgICAgIC8qIDAyMzAgKi8gIDB4NEQsIDB4
MTQsIDB4MEMsIDB4MDQsIDB4RDMsIDB4RDMsIDB4NkIsIDB4MDAsICAvLyBNLi4uLi5rLgog
ICAgICAgICAgICAgICAgLyogMDIzOCAqLyAgMHgzRSwgMHgxNSwgMHgzOCwgMHgzNywgMHg4
OSwgMHg5MiwgMHgwRiwgMHg4QywgIC8vID4uODcuLi4uCiAgICAgICAgICAgICAgICAvKiAw
MjQwICovICAweEMyLCAweDM5LCAweEVCLCAweDc5LCAweDg0LCAweDgyLCAweDE4LCAweEQw
LCAgLy8gLjkueS4uLi4KICAgICAgICAgICAgICAgIC8qIDAyNDggKi8gIDB4NDEsIDB4MjAs
IDB4RTQsIDB4RTQsIDB4QTAsIDB4ODAsIDB4M0EsIDB4QUEsICAvLyBBIC4uLi46LgogICAg
ICAgICAgICAgICAgLyogMDI1MCAqLyAgMHhGOCwgMHgzQywgMHg3MiwgMHhBQSwgMHgwRiwg
MHgzRCwgMHg5RSwgMHg5NCwgIC8vIC48ci4uPS4uCiAgICAgICAgICAgICAgICAvKiAwMjU4
ICovICAweDQ3LCAweEUxLCAweEFCLCAweDhBLCAweDBGLCAweDIxLCAweDNFLCAweDRGLCAg
Ly8gRy4uLi4hPk8KICAgICAgICAgICAgICAgIC8qIDAyNjAgKi8gIDB4NzgsIDB4RjQsIDB4
M0UsIDB4MjksIDB4RjAsIDB4RUYsIDB4OEMsIDB4QUYsICAvLyB4Lj4pLi4uLgogICAgICAg
ICAgICAgICAgLyogMDI2OCAqLyAgMHgwRSwgMHg0NiwgMHhCNywgMHg5QSwgMHhFMywgMHgw
QSwgMHgwQSwgMHhDQywgIC8vIC5GLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMjcwICov
ICAweDY3LCAweDExLCAweDRFLCAweDUwLCAweEQ3LCAweDZELCAweDAxLCAweEZBLCAgLy8g
Zy5OUC5tLi4KICAgICAgICAgICAgICAgIC8qIDAyNzggKi8gIDB4MjksIDB4RTAsIDB4MDgs
IDB4M0MsIDB4OTQsIDB4NzcsIDB4OTIsIDB4QzcsICAvLyApLi48LncuLgogICAgICAgICAg
ICAgICAgLyogMDI4MCAqLyAgMHg5MCwgMHgwNCwgMHhGNSwgMHg5RCwgMHgxNiwgMHg0MCwg
MHgwMSwgMHhFNCwgIC8vIC4uLi4uQC4uCiAgICAgICAgICAgICAgICAvKiAwMjg4ICovICAw
eDlCLCAweDgxLCAweDRGLCAweDAyLCAweDIxLCAweEZFLCAweEZGLCAweDRGLCAgLy8gLi5P
LiEuLk8KICAgICAgICAgICAgICAgIC8qIDAyOTAgKi8gIDB4MDcsIDB4MUUsIDB4QzMsIDB4
QzMsIDB4ODAsIDB4RDEsIDB4OEMsIDB4Q0UsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAg
ICAgLyogMDI5OCAqLyAgMHhDMywgMHg0RiwgMHgxNiwgMHgxNSwgMHg3NywgMHhCMiwgMHgx
NCwgMHhDNCwgIC8vIC5PLi53Li4uCiAgICAgICAgICAgICAgICAvKiAwMkEwICovICAweDkz
LCAweDc1LCAweDk0LCAweEM5LCAweEEyLCAweDY3LCAweEUyLCAweEFCLCAgLy8gLnUuLi5n
Li4KICAgICAgICAgICAgICAgIC8qIDAyQTggKi8gIDB4ODUsIDB4MjcsIDB4NzQsIDB4NEEs
IDB4NDEsIDB4Q0UsIDB4RDEsIDB4MTMsICAvLyAuJ3RKQS4uLgogICAgICAgICAgICAgICAg
LyogMDJCMCAqLyAgMHhGNiwgMHg1NSwgMHgwNCwgMHhENiwgMHhGOSwgMHgyMCwgMHhFNCwg
MHg4QiwgIC8vIC5VLi4uIC4uCiAgICAgICAgICAgICAgICAvKiAwMkI4ICovICAweDgxLCAw
eEE3LCAweDYxLCAweDM4LCAweDRGLCAweDk2LCAweEMzLCAweDc5LCAgLy8gLi5hOE8uLnkK
ICAgICAgICAgICAgICAgIC8qIDAyQzAgKi8gIDB4QjIsIDB4N0MsIDB4MkMsIDB4QkUsIDB4
NkEsIDB4QzAsIDB4MUYsIDB4MkQsICAvLyAufCwuai4uLQogICAgICAgICAgICAgICAgLyog
MDJDOCAqLyAgMHg5NiwgMHhBMCwgMHhDMCwgMHhEOSwgMHg4MiwgMHgxQywgMHgxRSwgMHgx
MywgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMkQwICovICAweDZGLCAweDU0
LCAweEY0LCAweDQ2LCAweEU0LCAweEUxLCAweEYxLCAweENCLCAgLy8gb1QuRi4uLi4KICAg
ICAgICAgICAgICAgIC8qIDAyRDggKi8gIDB4ODEsIDB4RTcsIDB4RjMsIDB4OEMsIDB4NzAs
IDB4OTQsIDB4NkYsIDB4MTIsICAvLyAuLi4ucC5vLgogICAgICAgICAgICAgICAgLyogMDJF
MCAqLyAgMHgzOCwgMHg4QywgMHhDNywgMHgxMiwgMHgwRiwgMHhEMSwgMHg5NywgMHgyMywg
IC8vIDguLi4uLi4jCiAgICAgICAgICAgICAgICAvKiAwMkU4ICovICAweDU4LCAweDEzLCAw
eDM5LCAweDY5LCAweERGLCAweDE2LCAweDRFLCAweDM2LCAgLy8gWC45aS4uTjYKICAgICAg
ICAgICAgICAgIC8qIDAyRjAgKi8gIDB4RTgsIDB4NEIsIDB4MTAsIDB4QkIsIDB4MUMsIDB4
MDEsIDB4QkYsIDB4ODgsICAvLyAuSy4uLi4uLgogICAgICAgICAgICAgICAgLyogMDJGOCAq
LyAgMHgyNiwgMHg4NiwgMHhDMSwgMHgyMiwgMHgyRCwgMHg0NSwgMHgxMSwgMHgxNywgIC8v
ICYuLiItRS4uCiAgICAgICAgICAgICAgICAvKiAwMzAwICovICAweDQ1LCAweDYxLCAweDdD
LCAweEM1LCAweDgyLCAweEZELCAweEZGLCAweEJGLCAgLy8gRWF8Li4uLi4KICAgICAgICAg
ICAgICAgIC8qIDAzMDggKi8gIDB4NjIsIDB4MDEsIDB4MTYsIDB4MDQsIDB4MEYsIDB4MUIs
IDB4MzQsIDB4ODcsICAvLyBiLi4uLi40LgogICAgICAgICAgICAgICAgLyogMDMxMCAqLyAg
MHg4MywgMHg5NywgMHgxRSwgMHgzNiwgMHg2QiwgMHgzOCwgMHgwNywgMHg5OSwgIC8vIC4u
LjZrOC4uCiAgICAgICAgICAgICAgICAvKiAwMzE4ICovICAweEQzLCAweEYxLCAweDQ4LCAw
eDRFLCAweDFCLCAweEM2LCAweDFELCAweDBCLCAgLy8gLi5ITi4uLi4KICAgICAgICAgICAg
ICAgIC8qIDAzMjAgKi8gIDB4RkUsIDB4OUQsIDB4RUEsIDB4QTksIDB4Q0EsIDB4RDMsIDB4
OEEsIDB4RjIsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDMyOCAqLyAgMHg2
NCwgMHhGNSwgMHg3QSwgMHhFNSwgMHg2MywgMHg5NiwgMHhBMSwgMHhDRSwgIC8vIGQuei5j
Li4uCiAgICAgICAgICAgICAgICAvKiAwMzMwICovICAweEUwLCAweDFELCAweENCLCAweEI3
LCAweDNDLCAweDRGLCAweDIxLCAweDRBLCAgLy8gLi4uLjxPIUoKICAgICAgICAgICAgICAg
IC8qIDAzMzggKi8gIDB4OUMsIDB4OTcsIDB4MkQsIDB4NzYsIDB4QzcsIDB4MzIsIDB4NDgs
IDB4NTAsICAvLyAuLi12LjJIUAogICAgICAgICAgICAgICAgLyogMDM0MCAqLyAgMHgyMywg
MHgzRiwgMHg2OCwgMHgzMSwgMHg5NCwgMHhFMCwgMHhGMSwgMHhERSwgIC8vICM/aDEuLi4u
CiAgICAgICAgICAgICAgICAvKiAwMzQ4ICovICAweEIxLCAweDAwLCAweDZGLCAweEZGLCAw
eEZGLCAweDNCLCAweDE2LCAweDYwLCAgLy8gLi5vLi47LmAKICAgICAgICAgICAgICAgIC8q
IDAzNTAgKi8gIDB4RkMsIDB4MDQsIDB4QzEsIDB4MDksIDB4N0MsIDB4QzcsIDB4MDIsIDB4
MUMsICAvLyAuLi4ufC4uLgogICAgICAgICAgICAgICAgLyogMDM1OCAqLyAgMHhDNSwgMHg3
RSwgMHgzNywgMHhFOCwgMHg0QSwgMHg0NSwgMHhFRSwgMHg1OCwgIC8vIC5+Ny5KRS5YCiAg
ICAgICAgICAgICAgICAvKiAwMzYwICovICAweDI4LCAweDBFLCAweEFCLCAweEI5LCAweDYz
LCAweDQxLCAweDlDLCAweDI4LCAgLy8gKC4uLmNBLigKICAgICAgICAgICAgICAgIC8qIDAz
NjggKi8gIDB4RTYsIDB4OEEsIDB4MDUsIDB4ODYsIDB4RkYsIDB4RkYsIDB4MTUsIDB4MEIs
ICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDM3MCAqLyAgMHhFMCwgMHg3NSwg
MHhDMCwgMHgyQiwgMHgxNiwgMHg2OCwgMHhGRSwgMHhGRiwgIC8vIC51LisuaC4uCiAgICAg
ICAgICAgICAgICAvKiAwMzc4ICovICAweDU3LCAweDJDLCAweEYwLCAweDVFLCAweDhFLCAw
eDgwLCAweERGLCAweDA5LCAgLy8gVywuXi4uLi4KICAgICAgICAgICAgICAgIC8qIDAzODAg
Ki8gIDB4RDEsIDB4NzcsIDB4MEQsIDB4N0UsIDB4OUEsIDB4QjYsIDB4QTIsIDB4QkIsICAv
LyAudy5+Li4uLgogICAgICAgICAgICAgICAgLyogMDM4OCAqLyAgMHgwNiwgMHg5NCwgMHgx
OSwgMHhCRSwgMHgwNywgMHhGOSwgMHhCMCwgMHgxMywgIC8vIC4uLi4uLi4uCiAgICAgICAg
ICAgICAgICAvKiAwMzkwICovICAweDJDLCAweEQyLCAweEEzLCAweDhELCAweDZGLCAweDQ5
LCAweEUxLCAweDdDLCAgLy8gLC4uLm9JLnwKICAgICAgICAgICAgICAgIC8qIDAzOTggKi8g
IDB4REIsIDB4MDAsIDB4RDgsIDB4RjIsIDB4RkYsIDB4QkYsIDB4NkQsIDB4MDAsICAvLyAu
Li4uLi5tLgogICAgICAgICAgICAgICAgLyogMDNBMCAqLyAgMHg0QywgMHgxOSwgMHhCRiwg
MHg2RiwgMHgxQiwgMHhDMCwgMHg0RiwgMHhBMSwgIC8vIEwuLm8uLk8uCiAgICAgICAgICAg
ICAgICAvKiAwM0E4ICovICAweDRELCAweDlGLCAweDFBLCAweDhELCAweDVBLCAweDM1LCAw
eDI4LCAweDUzLCAgLy8gTS4uLlo1KFMKICAgICAgICAgICAgICAgIC8qIDAzQjAgKi8gIDB4
QTMsIDB4NEMsIDB4ODMsIDB4NUEsIDB4N0QsIDB4MkEsIDB4MzUsIDB4NjYsICAvLyAuTC5a
fSo1ZgogICAgICAgICAgICAgICAgLyogMDNCOCAqLyAgMHg0QywgMHhDOSwgMHhDMSwgMHhD
RSwgMHg3NywgMHgwQywgMHgyQSwgMHg2QywgIC8vIEwuLi53LipsCiAgICAgICAgICAgICAg
ICAvKiAwM0MwICovICAweDY1LCAweDFBLCAweDlBLCAweDYzLCAweDgxLCAweEQwLCAweDEw
LCAweEM3LCAgLy8gZS4uYy4uLi4KICAgICAgICAgICAgICAgIC8qIDAzQzggKi8gIDB4MjYs
IDB4MTksIDB4MDEsIDB4NTEsIDB4MjIsIDB4MTAsIDB4MDEsIDB4NTksICAvLyAmLi5RIi4u
WQogICAgICAgICAgICAgICAgLyogMDNEMCAqLyAgMHhGRCwgMHg2RiwgMHg0MiwgMHg0MCwg
MHhDRSwgMHgwMiwgMHgyMiwgMHgyMCwgIC8vIC5vQkAuLiIgCiAgICAgICAgICAgICAgICAv
KiAwM0Q4ICovICAweDJCLCAweDU4LCAweDlBLCAweEMwLCAweDlELCAweEZGLCAweEQ4LCAw
eDI4LCAgLy8gK1guLi4uLigKICAgICAgICAgICAgICAgIC8qIDAzRTAgKi8gIDB4NDAsIDB4
QTIsIDB4MDIsIDB4ODQsIDB4MjksIDB4N0QsIDB4OTMsIDB4MDksICAvLyBALi4uKX0uLgog
ICAgICAgICAgICAgICAgLyogMDNFOCAqLyAgMHhENCwgMHhCMiwgMHg0MSwgMHgwNCwgMHhG
NCwgMHhGRiwgMHgzRiwgMHg0MiwgIC8vIC4uQS4uLj9CCiAgICAgICAgICAgICAgICAvKiAw
M0YwICovICAweEQ5LCAweDAwLCAweDYyLCAweDgyLCAweDQxLCAweDA0LCAweDY0LCAweDkx
LCAgLy8gLi5iLkEuZC4KICAgICAgICAgICAgICAgIC8qIDAzRjggKi8gIDB4M0UsIDB4ODAs
IDB4OTgsIDB4NjIsIDB4MTAsIDB4MDEsIDB4NTksIDB4REQsICAvLyA+Li5iLi5ZLgogICAg
ICAgICAgICAgICAgLyogMDQwMCAqLyAgMHhBMywgMHg0MCwgMHg0MCwgMHhENiwgMHgwQSwg
MHgyMiwgMHgyMCwgMHhGRiwgIC8vIC5AQC4uIiAuCiAgICAgICAgICAgICAgICAvKiAwNDA4
ICovICAweEZGLCAweDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gLi4KICAgICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAgIERldmljZSAoV01JNCkK
ICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMTQiKSAv
KiBXaW5kb3dzIE1hbmFnZW1lbnQgSW5zdHJ1bWVudGF0aW9uIERldmljZSAqLykgIC8vIF9I
SUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDQpICAvLyBfVUlE
OiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFtZSAoX1dERywgQnVmZmVyICgweDI4KQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDU3LCAweEJCLCAweDg0
LCAweDg1LCAweDMxLCAweDVFLCAweEM0LCAweDQ2LCAgLy8gVy4uLjFeLkYKICAgICAgICAg
ICAgICAgIC8qIDAwMDggKi8gIDB4QkMsIDB4OEUsIDB4NUUsIDB4OTQsIDB4NTYsIDB4M0Es
IDB4RTQsIDB4MTUsICAvLyAuLl4uVjouLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAg
MHg0MSwgMHg0NCwgMHgwMSwgMHgwNiwgMHgyMSwgMHgxMiwgMHg5MCwgMHgwNSwgIC8vIEFE
Li4hLi4uCiAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweDY2LCAweEQ1LCAweEQxLCAw
eDExLCAweEIyLCAweEYwLCAweDAwLCAweEEwLCAgLy8gZi4uLi4uLi4KICAgICAgICAgICAg
ICAgIC8qIDAwMjAgKi8gIDB4QzksIDB4MDYsIDB4MjksIDB4MTAsIDB4NDIsIDB4NDQsIDB4
MDEsIDB4MDAgICAvLyAuLikuQkQuLgogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1l
IChURFJWLCBQYWNrYWdlICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAi
RHJ2MSIsIAogICAgICAgICAgICAgICAgIkRydjIiLCAKICAgICAgICAgICAgICAgICJEcnYz
IiwgCiAgICAgICAgICAgICAgICAiRHJ2NCIsIAogICAgICAgICAgICAgICAgIkRydjUiLCAK
ICAgICAgICAgICAgICAgICJEcnY2IiwgCiAgICAgICAgICAgICAgICAiRHJ2NyIsIAogICAg
ICAgICAgICAgICAgIkRydjgiCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKFBU
WVAsIFBhY2thZ2UgKDB4MDcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJQT1Ai
LCAKICAgICAgICAgICAgICAgICJTVlAiLCAKICAgICAgICAgICAgICAgICJTTVAiLCAKICAg
ICAgICAgICAgICAgICJVSERQIiwgCiAgICAgICAgICAgICAgICAiTUhEUCIsIAogICAgICAg
ICAgICAgICAgIlVEUlAiLCAKICAgICAgICAgICAgICAgICJBRFJQIgogICAgICAgICAgICB9
KQogICAgICAgICAgICBOYW1lIChFTVRILCBQYWNrYWdlICgweDBFKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAiQVRBTiIsIAogICAgICAgICAgICAgICAgIkFUQUMiLCAKICAg
ICAgICAgICAgICAgICJET0QiLCAKICAgICAgICAgICAgICAgICJTUFoiLCAKICAgICAgICAg
ICAgICAgICJVU05BRiIsIAogICAgICAgICAgICAgICAgIkNDSTYiLCAKICAgICAgICAgICAg
ICAgICJCSEk1IiwgCiAgICAgICAgICAgICAgICAiR1YiLCAKICAgICAgICAgICAgICAgICJS
R1AxIiwgCiAgICAgICAgICAgICAgICAiUkdQNCIsIAogICAgICAgICAgICAgICAgIlJUT0lJ
IiwgCiAgICAgICAgICAgICAgICAiT1BBTFBBU1MiLCAKICAgICAgICAgICAgICAgICJOVk1F
VSIsIAogICAgICAgICAgICAgICAgIk5WTUVDIgogICAgICAgICAgICB9KQogICAgICAgICAg
ICBNZXRob2QgKFdNQUQsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIEFjcXVpcmUgKF5eV01JMS5NV01JLCAweEZGRkYpCiAgICAgICAgICAgICAg
ICBJZiAoKFNpemVPZiAoQXJnMikgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMgogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9IF5eV01JMS5DQVJHIChBcmcyKQogICAgICAgICAgICAgICAgICAgIElmICgoTG9j
YWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKCheXldNSTEuSUxFTiAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5XTUkxLkNMUlAgKCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFNXSVAgKF5eV01JMS5JQlVGKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwwID0gV01JUyAoMHgwRCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXldNSTEuQ0xSUCAoKQogICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgIFJlbGVhc2UgKF5eV01JMS5NV01JKQogICAgICAgICAg
ICAgICAgUmV0dXJuIChEZXJlZk9mICheXldNSTEuUkVUTiBbTG9jYWwwXSkpCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoU1dJUCwgMSwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWw2ID0gXl5XTUkxLkdTRUwgKFREUlYs
IEFyZzAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsNiA9PSBPbmVz
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIp
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgV0RSViA9IExvY2FsNgogICAg
ICAgICAgICAgICAgTG9jYWwwID0gXl5XTUkxLlNMRU4gKFREUlYsIExvY2FsNikKICAgICAg
ICAgICAgICAgIElmICgoRGVyZWZPZiAoQXJnMCBbTG9jYWwwXSkgIT0gMHgyQykpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICBM
b2NhbDYgPSBeXldNSTEuR1NFTCAoRU1USCwgQXJnMCwgTG9jYWwwLCAweDAwKQogICAgICAg
ICAgICAgICAgSWYgKChMb2NhbDYgPT0gT25lcykpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIFdNVEggPSBMb2NhbDYKICAgICAgICAgICAgICAgIExvY2FsMCArPSBeXldN
STEuU0xFTiAoRU1USCwgTG9jYWw2KQogICAgICAgICAgICAgICAgSWYgKChEZXJlZk9mIChB
cmcwIFtMb2NhbDBdKSAhPSAweDJDKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIExvY2FsNiA9IF5eV01JMS5HU0VMIChQVFlQ
LCBBcmcwLCBMb2NhbDAsIDB4MDApCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsNiA9PSBP
bmVzKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4
MDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgV1BUWSA9IExvY2FsNgog
ICAgICAgICAgICAgICAgTG9jYWwwICs9IF5eV01JMS5TTEVOIChQVFlQLCBMb2NhbDYpCiAg
ICAgICAgICAgICAgICBJZiAoKERlcmVmT2YgKEFyZzAgW0xvY2FsMF0pICE9IDB4MkMpKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAg
ICAgTG9jYWwxID0gXl5XTUkxLkdQQVMgKEFyZzAsIExvY2FsMCkKICAgICAgICAgICAgICAg
IElmICgoKExvY2FsMSA9PSBPbmVzKSB8fCAoTG9jYWwxID09IDB4MDApKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgV1BBUyA9IF5eV01JMS5QU1RSIC8qIFxfU0JfLldN
STEuUFNUUiAqLwogICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICB9
CgogICAgICAgICAgICBOYW1lIChXUUJELCBCdWZmZXIgKDB4MDMyMikKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg0NiwgMHg0RiwgMHg0RCwgMHg0Miwg
MHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIEZPTUIuLi4uCiAgICAgICAgICAgICAgICAv
KiAwMDA4ICovICAweDEyLCAweDAzLCAweDAwLCAweDAwLCAweDM2LCAweDA4LCAweDAwLCAw
eDAwLCAgLy8gLi4uLjYuLi4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4NDQsIDB4
NTMsIDB4MDAsIDB4MDEsIDB4MUEsIDB4N0QsIDB4REEsIDB4NTQsICAvLyBEUy4uLn0uVAog
ICAgICAgICAgICAgICAgLyogMDAxOCAqLyAgMHg5OCwgMHhEQSwgMHg4MywgMHgwMCwgMHgw
MSwgMHgwNiwgMHgxOCwgMHg0MiwgIC8vIC4uLi4uLi5CCiAgICAgICAgICAgICAgICAvKiAw
MDIwICovICAweDEwLCAweDA1LCAweDEwLCAweDhBLCAweDBFLCAweDIxLCAweDAyLCAweDBC
LCAgLy8gLi4uLi4hLi4KICAgICAgICAgICAgICAgIC8qIDAwMjggKi8gIDB4ODMsIDB4NTAs
IDB4NTgsIDB4MTgsIDB4MTQsIDB4QTAsIDB4NDUsIDB4NDEsICAvLyAuUFguLi5FQQogICAg
ICAgICAgICAgICAgLyogMDAzMCAqLyAgMHhDOCwgMHgwNSwgMHgxNCwgMHg5NSwgMHgwMiwg
MHgyMSwgMHhDMywgMHgwMiwgIC8vIC4uLi4uIS4uCiAgICAgICAgICAgICAgICAvKiAwMDM4
ICovICAweDE0LCAweDBCLCAweDcwLCAweDJFLCAweDQwLCAweEJBLCAweDAwLCAweEU1LCAg
Ly8gLi5wLkAuLi4KICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4MjgsIDB4NzIsIDB4
MEMsIDB4MjIsIDB4MDIsIDB4RjcsIDB4RUYsIDB4MEYsICAvLyAoci4iLi4uLgogICAgICAg
ICAgICAgICAgLyogMDA0OCAqLyAgMHgzMSwgMHhENCwgMHgxOCwgMHhBOCwgMHg1OCwgMHgw
OCwgMHg4OSwgMHgwMCwgIC8vIDEuLi5YLi4uCiAgICAgICAgICAgICAgICAvKiAwMDUwICov
ICAweEE2LCAweDQyLCAweEUwLCAweDA4LCAweDQxLCAweEJGLCAweDAyLCAweDEwLCAgLy8g
LkIuLkEuLi4KICAgICAgICAgICAgICAgIC8qIDAwNTggKi8gIDB4M0EsIDB4MTQsIDB4MjAs
IDB4NTMsIDB4ODAsIDB4NDEsIDB4MDEsIDB4NEUsICAvLyA6LiBTLkEuTgogICAgICAgICAg
ICAgICAgLyogMDA2MCAqLyAgMHgxMSwgMHg0NCwgMHgxMCwgMHhBNSwgMHg2NSwgMHgwMSwg
MHhCQSwgMHgwNSwgIC8vIC5ELi5lLi4uCiAgICAgICAgICAgICAgICAvKiAwMDY4ICovICAw
eEY4LCAweDE2LCAweEEwLCAweDFELCAweDQyLCAweDY4LCAweDkxLCAweEUyLCAgLy8gLi4u
LkJoLi4KICAgICAgICAgICAgICAgIC8qIDAwNzAgKi8gIDB4OUMsIDB4NDIsIDB4RUIsIDB4
OTMsIDB4MTAsIDB4NDgsIDB4QUYsIDB4MDIsICAvLyAuQi4uLkguLgogICAgICAgICAgICAg
ICAgLyogMDA3OCAqLyAgMHg0QywgMHgwQiwgMHgxMCwgMHgwRSwgMHgyMiwgMHg4QiwgMHgw
MiwgMHg2NCwgIC8vIEwuLi4iLi5kCiAgICAgICAgICAgICAgICAvKiAwMDgwICovICAweDYz
LCAweEM4LCAweDM2LCAweDI4LCAweDE5LCAweDA5LCAweDEzLCAweDM5LCAgLy8gYy42KC4u
LjkKICAgICAgICAgICAgICAgIC8qIDAwODggKi8gIDB4MEMsIDB4OTQsIDB4OTgsIDB4NjEs
IDB4QTAsIDB4NzQsIDB4Q0UsIDB4NDIsICAvLyAuLi5hLnQuQgogICAgICAgICAgICAgICAg
LyogMDA5MCAqLyAgMHgzNiwgMHg4MSwgMHgzNSwgMHg4MywgMHg0MiwgMHg1MSwgMHgzNCwg
MHg5MywgIC8vIDYuNS5CUTQuCiAgICAgICAgICAgICAgICAvKiAwMDk4ICovICAweDI4LCAw
eDA5LCAweDRFLCAweEUxLCAweDMwLCAweDIyLCAweDA0LCAweDJGLCAgLy8gKC5OLjAiLi8K
ICAgICAgICAgICAgICAgIC8qIDAwQTAgKi8gIDB4NTcsIDB4ODAsIDB4RTQsIDB4MDksIDB4
NDgsIDB4RjMsIDB4RDQsIDB4MzQsICAvLyBXLi4uSC4uNAogICAgICAgICAgICAgICAgLyog
MDBBOCAqLyAgMHg4RiwgMHg4MywgMHgzOCwgMHgwNCwgMHgzNiwgMHgwMiwgMHg5RSwgMHg1
OCwgIC8vIC4uOC42Li5YCiAgICAgICAgICAgICAgICAvKiAwMEIwICovICAweDAzLCAweDA4
LCAweDhCLCAweEI1LCAweDUyLCAweDA1LCAweDc1LCAweDAwLCAgLy8gLi4uLlIudS4KICAg
ICAgICAgICAgICAgIC8qIDAwQjggKi8gIDB4ODMsIDB4RDksIDB4QjYsIDB4MDQsIDB4Qzgs
IDB4MTksIDB4MkQsIDB4MEEsICAvLyAuLi4uLi4tLgogICAgICAgICAgICAgICAgLyogMDBD
MCAqLyAgMHhEOCwgMHhCMywgMHgzQSwgMHg5MSwgMHgyNiwgMHg4NywgMHg0QSwgMHgyNSwg
IC8vIC4uOi4mLkolCiAgICAgICAgICAgICAgICAvKiAwMEM4ICovICAweEMxLCAweEExLCAw
eDA2LCAweDZBLCAweDg5LCAweDAyLCAweENDLCAweDhGLCAgLy8gLi4uai4uLi4KICAgICAg
ICAgICAgICAgIC8qIDAwRDAgKi8gIDB4NEMsIDB4MTMsIDB4MzksIDB4QjYsIDB4RDMsIDB4
M0IsIDB4QzMsIDB4OTAsICAvLyBMLjkuLjsuLgogICAgICAgICAgICAgICAgLyogMDBEOCAq
LyAgMHg0QywgMHhEQSwgMHg1MCwgMHg1MCwgMHhBMywgMHhGNywgMHhCNCwgMHg0RSwgIC8v
IEwuUFAuLi5OCiAgICAgICAgICAgICAgICAvKiAwMEUwICovICAweENBLCAweDczLCAweDhE
LCAweDc4LCAweDUwLCAweDg2LCAweDQ5LCAweEUwLCAgLy8gLnMueFAuSS4KICAgICAgICAg
ICAgICAgIC8qIDAwRTggKi8gIDB4NTEsIDB4MzAsIDB4MzQsIDB4NEUsIDB4NTAsIDB4MTYs
IDB4ODQsIDB4NzYsICAvLyBRMDROUC4udgogICAgICAgICAgICAgICAgLyogMDBGMCAqLyAg
MHg0NCwgMHgwNywgMHg0QSwgMHgwMCwgMHg0RiwgMHhDMiwgMHg3MywgMHgyQywgIC8vIEQu
Si5PLnMsCiAgICAgICAgICAgICAgICAvKiAwMEY4ICovICAweDdFLCAweEQwLCAweDY0LCAw
eDIyLCAweDRGLCAweDAzLCAweDMxLCAweDEyLCAgLy8gfi5kIk8uMS4KICAgICAgICAgICAg
ICAgIC8qIDAxMDAgKi8gIDB4RjgsIDB4NTQsIDB4NjAsIDB4RDEsIDB4NjMsIDB4NDYsIDB4
OEYsIDB4MjgsICAvLyAuVGAuY0YuKAogICAgICAgICAgICAgICAgLyogMDEwOCAqLyAgMHg1
QywgMHhDMCwgMHhGMywgMHgzOSwgMHg4NiwgMHhGMywgMHhGNywgMHg1MCwgIC8vIFwuLjku
Li5QCiAgICAgICAgICAgICAgICAvKiAwMTEwICovICAweDYzLCAweDFDLCAweDQ1LCAweEU0
LCAweDA0LCAweEYxLCAweDdELCAweDBFLCAgLy8gYy5FLi4ufS4KICAgICAgICAgICAgICAg
IC8qIDAxMTggKi8gIDB4NjAsIDB4NTAsIDB4NDEsIDB4MEEsIDB4MTIsIDB4MjAsIDB4MTUs
IDB4NUQsICAvLyBgUEEuLiAuXQogICAgICAgICAgICAgICAgLyogMDEyMCAqLyAgMHhGRiwg
MHg3RiwgMHhCOCwgMHg2OCwgMHg1RCwgMHhDRiwgMHg1RCwgMHgyOCwgIC8vIC4uLmhdLl0o
CiAgICAgICAgICAgICAgICAvKiAwMTI4ICovICAweDg2LCAweDNBLCAweEVCLCAweDkzLCAw
eDBBLCAweDc2LCAweDFDLCAweEJFLCAgLy8gLjouLi52Li4KICAgICAgICAgICAgICAgIC8q
IDAxMzAgKi8gIDB4MTAsIDB4NzAsIDB4OUMsIDB4REUsIDB4NEYsIDB4MDQsIDB4NzQsIDB4
MjgsICAvLyAucC4uTy50KAogICAgICAgICAgICAgICAgLyogMDEzOCAqLyAgMHg1OCwgMHgx
OSwgMHgxMCwgMHhGMiwgMHgyOCwgMHhDMCwgMHhFQSwgMHhFOCwgIC8vIFguLi4oLi4uCiAg
ICAgICAgICAgICAgICAvKiAwMTQwICovICAweDM0LCAweDk3LCAweDA0LCAweDE2LCAweDI3
LCAweEMwLCAweDFBLCAweDg0LCAgLy8gNC4uLicuLi4KICAgICAgICAgICAgICAgIC8qIDAx
NDggKi8gIDB4QTYsIDB4NUEsIDB4MjEsIDB4ODIsIDB4NTAsIDB4N0EsIDB4MTMsIDB4NjAs
ICAvLyAuWiEuUHouYAogICAgICAgICAgICAgICAgLyogMDE1MCAqLyAgMHgwQiwgMHg0Mywg
MHg4MywgMHhFOSwgMHg0QywgMHg4MCwgMHgzMSwgMHgxNCwgIC8vIC5DLi5MLjEuCiAgICAg
ICAgICAgICAgICAvKiAwMTU4ICovICAweDYxLCAweEQ1LCAweDc2LCAweDI1LCAweDEwLCAw
eDQ2LCAweDk0LCAweDcwLCAgLy8gYS52JS5GLnAKICAgICAgICAgICAgICAgIC8qIDAxNjAg
Ki8gIDB4NDEsIDB4NjIsIDB4MDYsIDB4OEIsIDB4QzcsIDB4Q0MsIDB4NDEsIDB4MDksICAv
LyBBYi4uLi5BLgogICAgICAgICAgICAgICAgLyogMDE2OCAqLyAgMHgyNCwgMHg1QywgMHhD
QywgMHg1NywgMHg4MywgMHgzOCwgMHg2MSwgMHhDMiwgIC8vICRcLlcuOGEuCiAgICAgICAg
ICAgICAgICAvKiAwMTcwICovICAweEM2LCAweDQ5LCAweEUwLCAweEMxLCAweEUzLCAweDRF
LCAweDAxLCAweDNFLCAgLy8gLkkuLi5OLj4KICAgICAgICAgICAgICAgIC8qIDAxNzggKi8g
IDB4MzgsIDB4MUMsIDB4RTAsIDB4NDEsIDB4M0QsIDB4MDUsIDB4M0MsIDB4MzEsICAvLyA4
Li5BPS48MQogICAgICAgICAgICAgICAgLyogMDE4MCAqLyAgMHg5OCwgMHhDMCwgMHg1Mywg
MHgzRiwgMHhCOCwgMHg2NywgMHg4NCwgMHg5NywgIC8vIC4uUz8uZy4uCiAgICAgICAgICAg
ICAgICAvKiAwMTg4ICovICAweDhBLCAweDczLCAweDhDLCAweDFBLCAweEUzLCAweDBDLCAw
eDEyLCAweDU4LCAgLy8gLnMuLi4uLlgKICAgICAgICAgICAgICAgIC8qIDAxOTAgKi8gIDB4
RDIsIDB4NUIsIDB4NDIsIDB4MTYsIDB4NDAsIDB4MTQsIDB4MDksIDB4MUUsICAvLyAuW0Iu
QC4uLgogICAgICAgICAgICAgICAgLyogMDE5OCAqLyAgMHg3NSwgMHg2QSwgMHhGMCwgMHhG
OSwgMHhDMCwgMHgyMywgMHgzQiwgMHg3OCwgIC8vIHVqLi4uIzt4CiAgICAgICAgICAgICAg
ICAvKiAwMUEwICovICAweDhGLCAweEY2LCAweDA0LCAweDgyLCAweDFDLCAweEMyLCAweDEx
LCAweDNDLCAgLy8gLi4uLi4uLjwKICAgICAgICAgICAgICAgIC8qIDAxQTggKi8gIDB4Mzks
IDB4M0MsIDB4MTgsIDB4NzgsIDB4MEMsIDB4RUMsIDB4QzYsIDB4RTAsICAvLyA5PC54Li4u
LgogICAgICAgICAgICAgICAgLyogMDFCMCAqLyAgMHhBMywgMHg4MCwgMHg0RiwgMHgwQSwg
MHhGOCwgMHg1MSwgMHgwNywgMHg3QywgIC8vIC4uTy4uUS58CiAgICAgICAgICAgICAgICAv
KiAwMUI4ICovICAweDQ1LCAweDc4LCAweDQwLCAweDYwLCAweDIzLCAweDBFLCAweDg3LCAw
eDE5LCAgLy8gRXhAYCMuLi4KICAgICAgICAgICAgICAgIC8qIDAxQzAgKi8gIDB4QUUsIDB4
ODcsIDB4RUQsIDB4MDksIDB4OUMsIDB4RkEsIDB4QjMsIDB4MDYsICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAgICAgLyogMDFDOCAqLyAgMHgzRiwgMHg3NywgMHg3OCwgMHg3MCwgMHhC
OCwgMHg5MSwgMHg5RSwgMHhDQywgIC8vID93eHAuLi4uCiAgICAgICAgICAgICAgICAvKiAw
MUQwICovICAweDkxLCAweEJELCAweDA3LCAweDM0LCAweDdCLCAweDQ4LCAweEQwLCAweDgx
LCAgLy8gLi4uNHtILi4KICAgICAgICAgICAgICAgIC8qIDAxRDggKi8gIDB4QzIsIDB4MDcs
IDB4MEYsIDB4NzYsIDB4MTUsIDB4QjAsIDB4NjcsIDB4NDgsICAvLyAuLi52Li5nSAogICAg
ICAgICAgICAgICAgLyogMDFFMCAqLyAgMHgyMiwgMHg3RiwgMHgxMCwgMHhBOCwgMHg5MSwg
MHgxOSwgMHhEQSwgMHgxMywgIC8vICIuLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMUU4
ICovICAweDdFLCAweEZGLCAweDMwLCAweEU0LCAweEYzLCAweEMyLCAweDYxLCAweEIxLCAg
Ly8gfi4wLi4uYS4KICAgICAgICAgICAgICAgIC8qIDAxRjAgKi8gIDB4RTMsIDB4ODcsIDB4
MEYsIDB4MjAsIDB4MUUsIDB4MEYsIDB4RjgsIDB4RUYsICAvLyAuLi4gLi4uLgogICAgICAg
ICAgICAgICAgLyogMDFGOCAqLyAgMHgyNSwgMHhDRiwgMHgxQiwgMHg5RSwgMHhCRSwgMHhF
NywgMHhFQiwgMHhGMywgIC8vICUuLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMjAwICov
ICAweDg0LCAweDgxLCAweEIxLCAweEZGLCAweEZGLCAweDQzLCAweDA5LCAweDE4LCAgLy8g
Li4uLi5DLi4KICAgICAgICAgICAgICAgIC8qIDAyMDggKi8gIDB4NkUsIDB4MEYsIDB4RkMs
IDB4NTgsIDB4MDIsIDB4RTcsIDB4NDgsIDB4MDIsICAvLyBuLi5YLi5ILgogICAgICAgICAg
ICAgICAgLyogMDIxMCAqLyAgMHg0QywgMHgyNiwgMHhFOSwgMHgyMSwgMHhGMCwgMHgzMywg
MHg4MSwgMHg4NywgIC8vIEwmLiEuMy4uCiAgICAgICAgICAgICAgICAvKiAwMjE4ICovICAw
eEMwLCAweDA3LCAweEYwLCAweDI0LCAweDcxLCAweDhBLCAweDU2LCAweDNBLCAgLy8gLi4u
JHEuVjoKICAgICAgICAgICAgICAgIC8qIDAyMjAgKi8gIDB4MzEsIDB4RTQsIDB4RTksIDB4
MDUsIDB4QUMsIDB4RjksIDB4MUYsIDB4MDEsICAvLyAxLi4uLi4uLgogICAgICAgICAgICAg
ICAgLyogMDIyOCAqLyAgMHgzQSwgMHg3QywgMHgzOCwgMHgzQiwgMHg4OCwgMHg2QywgMHgz
QywgMHgwMywgIC8vIDp8ODsubDwuCiAgICAgICAgICAgICAgICAvKiAwMjMwICovICAweDdD
LCAweDEwLCAweEEwLCAweDZBLCAweDgwLCAweDM0LCAweDUzLCAweEQ4LCAgLy8gfC4uai40
Uy4KICAgICAgICAgICAgICAgIC8qIDAyMzggKi8gIDB4MDQsIDB4RDMsIDB4OTMsIDB4RUIs
IDB4RTAsIDB4QzMsIDB4NzMsIDB4OTMsICAvLyAuLi4uLi5zLgogICAgICAgICAgICAgICAg
LyogMDI0MCAqLyAgMHgyOCwgMHhGOSwgMHhDOCwgMHgyOCwgMHg5QywgMHhCMywgMHgxRSwg
MHg0OSwgIC8vICguLiguLi5JCiAgICAgICAgICAgICAgICAvKiAwMjQ4ICovICAweDI4LCAw
eDg4LCAweDAxLCAweDFELCAweEU0LCAweDQ0LCAweDgxLCAweDNFLCAgLy8gKC4uLi5ELj4K
ICAgICAgICAgICAgICAgIC8qIDAyNTAgKi8gIDB4QUQsIDB4NzgsIDB4MDgsIDB4RTcsIDB4
RkEsIDB4RTQsIDB4RTMsIDB4NDEsICAvLyAueC4uLi4uQQogICAgICAgICAgICAgICAgLyog
MDI1OCAqLyAgMHhGOSwgMHgzRSwgMHhFMiwgMHhEQiwgMHg4QSwgMHgwRiwgMHgyMSwgMHgz
RSwgIC8vIC4+Li4uLiE+CiAgICAgICAgICAgICAgICAvKiAwMjYwICovICAweDRGLCAweDc4
LCAweEY4LCAweDNFLCAweDI5LCAweEYwLCAweDFGLCAweDhELCAgLy8gT3guPikuLi4KICAg
ICAgICAgICAgICAgIC8qIDAyNjggKi8gIDB4QUYsIDB4MEUsIDB4NDYsIDB4QjcsIDB4OUEs
IDB4MTMsIDB4MEIsIDB4MEEsICAvLyAuLkYuLi4uLgogICAgICAgICAgICAgICAgLyogMDI3
MCAqLyAgMHhDQywgMHg2NywgMHgxMSwgMHg0RSwgMHg1MCwgMHhENywgMHg2NSwgMHgwMiwg
IC8vIC5nLk5QLmUuCiAgICAgICAgICAgICAgICAvKiAwMjc4ICovICAweDY0LCAweEZBLCAw
eDRFLCAweDBCLCAweDUwLCAweEZGLCAweEZGLCAweDk3LCAgLy8gZC5OLlAuLi4KICAgICAg
ICAgICAgICAgIC8qIDAyODAgKi8gIDB4MDAsIDB4MEUsIDB4RTQsIDB4QUIsIDB4ODEsIDB4
OEYsIDB4MDIsIDB4OEYsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDI4OCAq
LyAgMHgwNywgMHg2QywgMHgwQywgMHg0RiwgMHgwMywgMHg0NiwgMHgzMywgMHgzQSwgIC8v
IC5sLk8uRjM6CiAgICAgICAgICAgICAgICAvKiAwMjkwICovICAweDBGLCAweDNGLCAweDU5
LCAweDU0LCAweERDLCAweEM5LCAweDUyLCAweDEwLCAgLy8gLj9ZVC4uUi4KICAgICAgICAg
ICAgICAgIC8qIDAyOTggKi8gIDB4NEYsIDB4RDYsIDB4NTEsIDB4MjYsIDB4OEIsIDB4OUUs
IDB4ODksIDB4MkYsICAvLyBPLlEmLi4uLwogICAgICAgICAgICAgICAgLyogMDJBMCAqLyAg
MHgwMCwgMHg5RSwgMHhEMSwgMHgyQiwgMHg4MCwgMHhFNywgMHhFOCwgMHgwOSwgIC8vIC4u
LisuLi4uCiAgICAgICAgICAgICAgICAvKiAwMkE4ICovICAweEZCLCAweDJBLCAweDAyLCAw
eEVCLCAweDgwLCAweEYwLCAweDUwLCAweEUzLCAgLy8gLiouLi4uUC4KICAgICAgICAgICAg
ICAgIC8qIDAyQjAgKi8gIDB4M0IsIDB4MDYsIDB4ODMsIDB4RjMsIDB4NjQsIDB4MzksIDB4
OUMsIDB4MjcsICAvLyA7Li4uZDkuJwogICAgICAgICAgICAgICAgLyogMDJCOCAqLyAgMHhD
QiwgMHhDNywgMHhFMiwgMHg5QiwgMHgwOCwgMHhGOCwgMHgwNCwgMHhDRSwgIC8vIC4uLi4u
Li4uCiAgICAgICAgICAgICAgICAvKiAwMkMwICovICAweDE2LCAweEU0LCAweEYwLCAweDk4
LCAweDkwLCAweEEzLCAweEEyLCAweDk3LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAg
IC8qIDAyQzggKi8gIDB4MjIsIDB4MEYsIDB4OEYsIDB4NUYsIDB4MEUsIDB4M0MsIDB4OUYs
IDB4NjcsICAvLyAiLi5fLjwuZwogICAgICAgICAgICAgICAgLyogMDJEMCAqLyAgMHg4NCwg
MHhBMywgMHg3QywgMHg5MiwgMHhDMCwgMHg2MSwgMHhCQywgMHg2MSwgIC8vIC4ufC4uYS5h
CiAgICAgICAgICAgICAgICAvKiAwMkQ4ICovICAweDc4LCAweDg4LCAweEJFLCAweDFGLCAw
eEMxLCAweDlBLCAweEM4LCAweDQ5LCAgLy8geC4uLi4uLkkKICAgICAgICAgICAgICAgIC8q
IDAyRTAgKi8gIDB4RkIsIDB4QjYsIDB4NzAsIDB4QjIsIDB4NDEsIDB4RTMsIDB4ODcsIDB4
RjUsICAvLyAuLnAuQS4uLgogICAgICAgICAgICAgICAgLyogMDJFOCAqLyAgMHhGRCwgMHgw
OCwgMHhCOCwgMHgyQSwgMHhCNCwgMHhFOSwgMHg1MywgMHhBMywgIC8vIC4uLiouLlMuCiAg
ICAgICAgICAgICAgICAvKiAwMkYwICovICAweDUxLCAweEFCLCAweDA2LCAweDY1LCAweDZB
LCAweDk0LCAweDY5LCAweDUwLCAgLy8gUS4uZWouaVAKICAgICAgICAgICAgICAgIC8qIDAy
RjggKi8gIDB4QUIsIDB4NEYsIDB4QTUsIDB4QzYsIDB4OEMsIDB4NUQsIDB4QjMsIDB4MkMs
ICAvLyAuTy4uLl0uLAogICAgICAgICAgICAgICAgLyogMDMwMCAqLyAgMHhEMCwgMHhDMCwg
MHhGRiwgMHg3RiwgMHg0NCwgMHg0QywgMHhFMiwgMHhEQSwgIC8vIC4uLi5ETC4uCiAgICAg
ICAgICAgICAgICAvKiAwMzA4ICovICAweDM0LCAweDM4LCAweDA3LCAweDA0LCAweEExLCAw
eDcxLCAweEJFLCAweDQwLCAgLy8gNDguLi5xLkAKICAgICAgICAgICAgICAgIC8qIDAzMTAg
Ki8gIDB4MzIsIDB4MDIsIDB4QTIsIDB4NkMsIDB4MjAsIDB4MDIsIDB4NzIsIDB4OEUsICAv
LyAyLi5sIC5yLgogICAgICAgICAgICAgICAgLyogMDMxOCAqLyAgMHhGRiwgMHg4NCwgMHg4
MCwgMHg5QywgMHgwQSwgMHg0NCwgMHg0MCwgMHhGRSwgIC8vIC4uLi4uREAuCiAgICAgICAg
ICAgICAgICAvKiAwMzIwICovICAweEZGLCAweDAzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gLi4KICAgICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAg
IERldmljZSAoV01JNSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJ
ZCAoIlBOUDBDMTQiKSAvKiBXaW5kb3dzIE1hbmFnZW1lbnQgSW5zdHJ1bWVudGF0aW9uIERl
dmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQs
IDB4MDUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFtZSAoX1dERywgQnVm
ZmVyICgweERDKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAw
eEJGLCAweEVGLCAweDQyLCAweDIwLCAweEY5LCAweDlBLCAweERGLCAweDQ3LCAgLy8gLi5C
IC4uLkcKICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4QjcsIDB4MUEsIDB4MjgsIDB4
N0MsIDB4MDMsIDB4MEMsIDB4OTEsIDB4Q0YsICAvLyAuLih8Li4uLgogICAgICAgICAgICAg
ICAgLyogMDAxMCAqLyAgMHg0NywgMHg0RSwgMHgwMSwgMHgwMSwgMHg1RSwgMHhCNCwgMHg5
RSwgMHhCNywgIC8vIEdOLi5eLi4uCiAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweEIz
LCAweDg1LCAweEQ1LCAweDQxLCAweEE5LCAweDY1LCAweENDLCAweDE3LCAgLy8gLi4uQS5l
Li4KICAgICAgICAgICAgICAgIC8qIDAwMjAgKi8gIDB4RDIsIDB4MkEsIDB4NkQsIDB4OEIs
IDB4NDcsIDB4NEQsIDB4MDEsIDB4MDEsICAvLyAuKm0uR00uLgogICAgICAgICAgICAgICAg
LyogMDAyOCAqLyAgMHg3NywgMHg4MCwgMHg5MiwgMHgwMiwgMHgwQSwgMHhBRCwgMHhDNywg
MHg0QywgIC8vIHcuLi4uLi5MCiAgICAgICAgICAgICAgICAvKiAwMDMwICovICAweDk2LCAw
eEI0LCAweDJCLCAweDg5LCAweDgzLCAweEM0LCAweDM4LCAweDA0LCAgLy8gLi4rLi4uOC4K
ICAgICAgICAgICAgICAgIC8qIDAwMzggKi8gIDB4NTMsIDB4NDMsIDB4MDEsIDB4MDIsIDB4
NjEsIDB4NTcsIDB4NTAsIDB4MUYsICAvLyBTQy4uYVdQLgogICAgICAgICAgICAgICAgLyog
MDA0MCAqLyAgMHg0QSwgMHgxRiwgMHg3OCwgMHg0QiwgMHg4QiwgMHhENywgMHhCQiwgMHg1
MiwgIC8vIEoueEsuLi5SCiAgICAgICAgICAgICAgICAvKiAwMDQ4ICovICAweEZBLCAweDdF
LCAweDRGLCAweDM3LCAweDQ3LCAweDQzLCAweDAxLCAweDAyLCAgLy8gLn5PN0dDLi4KICAg
ICAgICAgICAgICAgIC8qIDAwNTAgKi8gIDB4ODQsIDB4QzIsIDB4OTUsIDB4MjgsIDB4ODQs
IDB4MDAsIDB4OUUsIDB4NDEsICAvLyAuLi4oLi4uQQogICAgICAgICAgICAgICAgLyogMDA1
OCAqLyAgMHhBRSwgMHhGNiwgMHg4RCwgMHhDQiwgMHhCQiwgMHg1NSwgMHhCMCwgMHhCMSwg
IC8vIC4uLi4uVS4uCiAgICAgICAgICAgICAgICAvKiAwMDYwICovICAweDQ1LCAweDQzLCAw
eDAxLCAweDAxLCAweENGLCAweEI0LCAweDMxLCAweEQ5LCAgLy8gRUMuLi4uMS4KICAgICAg
ICAgICAgICAgIC8qIDAwNjggKi8gIDB4NEUsIDB4RjUsIDB4MDcsIDB4NEQsIDB4OTQsIDB4
MjAsIDB4NDIsIDB4ODUsICAvLyBOLi5NLiBCLgogICAgICAgICAgICAgICAgLyogMDA3MCAq
LyAgMHg4QywgMHhDNiwgMHhBMiwgMHgzNCwgMHg0RSwgMHg1MywgMHgwMSwgMHgwMSwgIC8v
IC4uLjROUy4uCiAgICAgICAgICAgICAgICAvKiAwMDc4ICovICAweENDLCAweEFELCAweDEx
LCAweEJFLCAweDIzLCAweDk5LCAweEFELCAweDQ1LCAgLy8gLi4uLiMuLkUKICAgICAgICAg
ICAgICAgIC8qIDAwODAgKi8gIDB4OUUsIDB4NzQsIDB4Q0IsIDB4NUYsIDB4QjEsIDB4MDQs
IDB4QkUsIDB4OUQsICAvLyAudC5fLi4uLgogICAgICAgICAgICAgICAgLyogMDA4OCAqLyAg
MHg1NywgMHg0NCwgMHgwMSwgMHgwMiwgMHhDMiwgMHg4MSwgMHhFMCwgMHg0OCwgIC8vIFdE
Li4uLi5ICiAgICAgICAgICAgICAgICAvKiAwMDkwICovICAweDdFLCAweDE4LCAweEUxLCAw
eDQzLCAweDhCLCAweEIxLCAweDYyLCAweEY0LCAgLy8gfi4uQy4uYi4KICAgICAgICAgICAg
ICAgIC8qIDAwOTggKi8gIDB4ODIsIDB4Q0MsIDB4NjYsIDB4OUMsIDB4NTIsIDB4NDQsIDB4
MDEsIDB4MDIsICAvLyAuLmYuUkQuLgogICAgICAgICAgICAgICAgLyogMDBBMCAqLyAgMHhC
OCwgMHhFMiwgMHgwMiwgMHhFNywgMHgxMiwgMHg0MSwgMHg3NiwgMHg0NywgIC8vIC4uLi4u
QXZHCiAgICAgICAgICAgICAgICAvKiAwMEE4ICovICAweDk4LCAweEIzLCAweENDLCAweDFC
LCAweDBDLCAweDczLCAweDkyLCAweEI0LCAgLy8gLi4uLi5zLi4KICAgICAgICAgICAgICAg
IC8qIDAwQjAgKi8gIDB4NTcsIDB4NTAsIDB4MDEsIDB4MDIsIDB4RUQsIDB4RDIsIDB4OTQs
IDB4MkIsICAvLyBXUC4uLi4uKwogICAgICAgICAgICAgICAgLyogMDBCOCAqLyAgMHg0OCwg
MHgyNSwgMHhERSwgMHg0RiwgMHhBQywgMHg3MiwgMHg5NiwgMHhDQSwgIC8vIEglLk8uci4u
CiAgICAgICAgICAgICAgICAvKiAwMEMwICovICAweDk5LCAweEM2LCAweEJGLCAweEU2LCAw
eDUyLCAweDUwLCAweDAxLCAweDAxLCAgLy8gLi4uLlJQLi4KICAgICAgICAgICAgICAgIC8q
IDAwQzggKi8gIDB4MjEsIDB4MTIsIDB4OTAsIDB4MDUsIDB4NjYsIDB4RDUsIDB4RDEsIDB4
MTEsICAvLyAhLi4uZi4uLgogICAgICAgICAgICAgICAgLyogMDBEMCAqLyAgMHhCMiwgMHhG
MCwgMHgwMCwgMHhBMCwgMHhDOSwgMHgwNiwgMHgyOSwgMHgxMCwgIC8vIC4uLi4uLikuCiAg
ICAgICAgICAgICAgICAvKiAwMEQ4ICovICAweDQyLCAweDQ1LCAweDAxLCAweDAwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gQkUuLgogICAgICAgICAgICB9KQogICAgICAgICAg
ICBOYW1lIChSRVROLCBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAiU1VDQ0VTUyIsIAogICAgICAgICAgICAgICAgIkVSUk9SOiBOT1RfU1VQUE9SVEVE
IiwgCiAgICAgICAgICAgICAgICAiRVJST1I6IElOVkFMSURfUEFSQU1FVEVSIiwgCiAgICAg
ICAgICAgICAgICAiRVJST1I6IEFDQ0VTU19ERU5JRUQiLCAKICAgICAgICAgICAgICAgICJF
UlJPUjogU1lTVEVNX0JVU1kiLCAKICAgICAgICAgICAgICAgICJFUlJPUjogT1VUX09GX1JF
U09VUkNFUyIsIAogICAgICAgICAgICAgICAgIkVSUk9SOiBOT1RfRk9VTkQiLCAKICAgICAg
ICAgICAgICAgICJFUlJPUjogU0VDVVJJVFlfVklPUkFUSU9OIiwgCiAgICAgICAgICAgICAg
ICAiRVJST1I6IEFCT1JURUQiLCAKICAgICAgICAgICAgICAgICJFUlJPUjogQlVGRkVSVE9P
U01BTEwiCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoQ0FSVSwgMiwgTm90
U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gQXJn
MQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgXl5XTUkxLklCVUYgPSAweDAwCiAgICAgICAgICAg
ICAgICAgICAgXl5XTUkxLklMRU4gPSAweDAwCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu
ICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMSA9IFNp
emVPZiAoXl5XTUkxLklCVUYpCiAgICAgICAgICAgICAgICBMb2NhbDEtLQogICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDAgPj0gTG9jYWwxKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgXl5XTUkxLklCVUYgPSAweDAwCiAgICAgICAgICAgICAgICBMb2NhbDIgPSAw
eDAwCiAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMiA8IExvY2FsMCkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gKExvY2FsMiAqIDB4MDIp
CiAgICAgICAgICAgICAgICAgICAgXl5XTUkxLklCVUYgW0xvY2FsMl0gPSBEZXJlZk9mIChB
cmcwIFtMb2NhbDNdKQogICAgICAgICAgICAgICAgICAgIExvY2FsMisrCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwwLS0KICAgICAgICAgICAgICAgIExvY2Fs
MSA9IERlcmVmT2YgKF5eV01JMS5JQlVGIFtMb2NhbDBdKQogICAgICAgICAgICAgICAgSWYg
KCgoTG9jYWwxID09IDB4M0IpIHx8IChMb2NhbDEgPT0gMHgyQSkpKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIF5eV01JMS5JQlVGIFtMb2NhbDBdID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgIF5eV01JMS5JTEVOID0gTG9jYWwwCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgXl5XTUkxLklMRU4gPSBBcmcxCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo
b2QgKFdRR04sIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIEFjcXVpcmUgKF5eV01JMS5NV01JLCAweEZGRkYpCiAgICAgICAgICAgICAgICBXTUlT
ICgweDBFLCAweDAwKQogICAgICAgICAgICAgICAgUmVsZWFzZSAoXl5XTUkxLk1XTUkpCiAg
ICAgICAgICAgICAgICBSZXR1cm4gKFNOTUEpIC8qIFxTTk1BICovCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE1ldGhvZCAoV1FHTSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgQWNxdWlyZSAoXl5XTUkxLk1XTUksIDB4RkZGRikKICAg
ICAgICAgICAgICAgIFdNSVMgKDB4MEUsIDB4MDEpCiAgICAgICAgICAgICAgICBSZWxlYXNl
ICheXldNSTEuTVdNSSkKICAgICAgICAgICAgICAgIFJldHVybiAoU05NQSkgLyogXFNOTUEg
Ki8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXTVNDLCAzLCBOb3RTZXJp
YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBY3F1aXJlICheXldNSTEu
TVdNSSwgMHhGRkZGKQogICAgICAgICAgICAgICAgU0NTQiA9IEFyZzIKICAgICAgICAgICAg
ICAgIExvY2FsMCA9IFNTUEwgLyogXFNTUEwgKi8KICAgICAgICAgICAgICAgIElmICgoTG9j
YWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNT
UEIgPSAweDAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIC89IDB4MDIKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBDQVJVIChTU1BCLCBMb2Nh
bDApCiAgICAgICAgICAgICAgICBTU1BCID0gMHgwMAogICAgICAgICAgICAgICAgU1NQTCA9
IDB4MDAKICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MDApKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoXl5XTUkxLklMRU4gIT0gMHgwMCkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEg
PSBeXldNSTEuQ1BBUyAoXl5XTUkxLklCVUYsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAwKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFdNSVMgKDB4
MEUsIDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIElmICgoTG9jYWwxICE9IDB4MDApKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFNDU0IgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgXl5X
TUkxLkNMUlAgKCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZWxlYXNl
ICheXldNSTEuTVdNSSkKICAgICAgICAgICAgICAgIFJldHVybiAoRGVyZWZPZiAoUkVUTiBb
TG9jYWwxXSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV01HQywgMywg
Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQWNxdWlyZSAo
Xl5XTUkxLk1XTUksIDB4RkZGRikKICAgICAgICAgICAgICAgIFNDU0IgPSBBcmcyCiAgICAg
ICAgICAgICAgICBMb2NhbDAgPSBTR1BMIC8qIFxTR1BMICovCiAgICAgICAgICAgICAgICBJ
ZiAoKFNHUEwgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgU0dQQiA9IDB4MDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgLz0gMHgwMgog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMSA9IENBUlUgKFNHUEIs
IExvY2FsMCkKICAgICAgICAgICAgICAgIFNHUEIgPSAweDAwCiAgICAgICAgICAgICAgICBT
R1BMID0gMHgwMAogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCheXldNSTEuSUxFTiAhPSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMSA9IF5eV01JMS5DUEFTICheXldNSTEuSUJVRiwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MDApKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gV01J
UyAoMHgwRSwgMHgwMykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgIT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgU0NTQiA9IDB4MDAKICAgICAgICAgICAgICAgICAg
ICBeXldNSTEuQ0xSUCAoKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJl
bGVhc2UgKF5eV01JMS5NV01JKQogICAgICAgICAgICAgICAgUmV0dXJuIChTR1NCKSAvKiBc
U0dTQiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFdRRUMsIDEsIE5v
dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFjcXVpcmUgKF5e
V01JMS5NV01JLCAweEZGRkYpCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBXTUlTICgweDBF
LCAweDA0KQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgIT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU0NTQiA9IDB4MDAKICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICBSZWxlYXNlICheXldNSTEuTVdNSSkKICAgICAgICAg
ICAgICAgIFJldHVybiAoU0VETCkgLyogXFNFREwgKi8KICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChXUU5TLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBBY3F1aXJlICheXldNSTEuTVdNSSwgMHhGRkZGKQogICAgICAgICAg
ICAgICAgTG9jYWwwID0gV01JUyAoMHgwRSwgMHgwNCkKICAgICAgICAgICAgICAgIElmICgo
TG9jYWwwICE9IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFNDU0IgPSAweDAwCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmVsZWFz
ZSAoXl5XTUkxLk1XTUkpCiAgICAgICAgICAgICAgICBSZXR1cm4gKFNFTlMpIC8qIFxTRU5T
ICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV01XRCwgMywgTm90U2Vy
aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQWNxdWlyZSAoXl5XTUkx
Lk1XTUksIDB4RkZGRikKICAgICAgICAgICAgICAgIFNDU0IgPSBBcmcyCiAgICAgICAgICAg
ICAgICBMb2NhbDAgPSBTV0FMIC8qIFxTV0FMICovCiAgICAgICAgICAgICAgICBJZiAoKExv
Y2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBT
V0FCID0gMHgwMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCAvPSAweDAyCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwxID0gQ0FSVSAoU1dBQiwgTG9j
YWwwKQogICAgICAgICAgICAgICAgU1dBTCA9IDB4MDAKICAgICAgICAgICAgICAgIFNXQUIg
PSAweDAwCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAwKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKF5eV01JMS5JTEVOICE9IDB4MDAp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwx
ID0gXl5XTUkxLkNQQVMgKF5eV01JMS5JQlVGLCAweDAwKQogICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBXTUlTICgw
eDBFLCAweDA1KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsMSAhPSAweDAwKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBTQ1NCID0gMHgwMAogICAgICAgICAgICAgICAgICAgIF5e
V01JMS5DTFJQICgpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmVsZWFz
ZSAoXl5XTUkxLk1XTUkpCiAgICAgICAgICAgICAgICBSZXR1cm4gKERlcmVmT2YgKFJFVE4g
W0xvY2FsMV0pKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFdNUkQsIDMs
IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFjcXVpcmUg
KF5eV01JMS5NV01JLCAweEZGRkYpCiAgICAgICAgICAgICAgICBTQ1NCID0gQXJnMgogICAg
ICAgICAgICAgICAgTG9jYWwxID0gV01JUyAoMHgwRSwgMHgwOCkKICAgICAgICAgICAgICAg
IElmICgoTG9jYWwxICE9IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFNDU0IgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgXl5XTUkxLkNMUlAgKCkK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZWxlYXNlICheXldNSTEuTVdN
SSkKICAgICAgICAgICAgICAgIFJldHVybiAoR1dNQikgLyogXEdXTUIgKi8KICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXTVdQLCAzLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBBY3F1aXJlICheXldNSTEuTVdNSSwgMHhGRkZG
KQogICAgICAgICAgICAgICAgU0NTQiA9IEFyZzIKICAgICAgICAgICAgICAgIExvY2FsMCA9
IFdNSVMgKDB4MEUsIDB4MDYpCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCAhPSAweDAw
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTQ1NCID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgIF5eV01JMS5DTFJQICgpCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgUmVsZWFzZSAoXl5XTUkxLk1XTUkpCiAgICAgICAgICAgICAgICBS
ZXR1cm4gKERlcmVmT2YgKFJFVE4gW0xvY2FsMF0pKQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNZXRob2QgKFdRUlAsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIEFjcXVpcmUgKF5eV01JMS5NV01JLCAweEZGRkYpCiAgICAgICAgICAg
ICAgICBMb2NhbDAgPSBXTUlTICgweDBFLCAweDA3KQogICAgICAgICAgICAgICAgSWYgKChM
b2NhbDAgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
U0NTQiA9IDB4MDAKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZWxlYXNl
ICheXldNSTEuTVdNSSkKICAgICAgICAgICAgICAgIFJldHVybiAoR1BNQikgLyogXEdQTUIg
Ki8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV1FCRSwgQnVmZmVyICgweDEw
MTkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4NDYsIDB4
NEYsIDB4NEQsIDB4NDIsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyBGT01CLi4uLgog
ICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwOSwgMHgxMCwgMHgwMCwgMHgwMCwgMHgw
QywgMHg1QywgMHgwMCwgMHgwMCwgIC8vIC4uLi4uXC4uCiAgICAgICAgICAgICAgICAvKiAw
MDEwICovICAweDQ0LCAweDUzLCAweDAwLCAweDAxLCAweDFBLCAweDdELCAweERBLCAweDU0
LCAgLy8gRFMuLi59LlQKICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4MjgsIDB4QzQs
IDB4QUMsIDB4MDAsIDB4MDEsIDB4MDYsIDB4MTgsIDB4NDIsICAvLyAoLi4uLi4uQgogICAg
ICAgICAgICAgICAgLyogMDAyMCAqLyAgMHgxMCwgMHgxQiwgMHgxMCwgMHg5MiwgMHg0MCwg
MHg2MiwgMHgwMiwgMHgwOSwgIC8vIC4uLi5AYi4uCiAgICAgICAgICAgICAgICAvKiAwMDI4
ICovICAweDgzLCAweDUwLCAweDY4LCAweDE2LCAweDA2LCAweDQzLCAweEI4LCAweDJDLCAg
Ly8gLlBoLi5DLiwKICAgICAgICAgICAgICAgIC8qIDAwMzAgKi8gIDB4MEEsIDB4NDIsIDB4
MkUsIDB4QTAsIDB4QTgsIDB4MTQsIDB4MDgsIDB4MTksICAvLyAuQi4uLi4uLgogICAgICAg
ICAgICAgICAgLyogMDAzOCAqLyAgMHgxNiwgMHhBMCwgMHg1OCwgMHg4MCwgMHg3MywgMHgw
MSwgMHhEMiwgMHgwNSwgIC8vIC4uWC5zLi4uCiAgICAgICAgICAgICAgICAvKiAwMDQwICov
ICAweDI4LCAweDQ3LCAweDkxLCAweDYzLCAweDEwLCAweDExLCAweEI4LCAweDdGLCAgLy8g
KEcuYy4uLi4KICAgICAgICAgICAgICAgIC8qIDAwNDggKi8gIDB4N0YsIDB4ODgsIDB4RTEs
IDB4NDAsIDB4QTQsIDB4MDAsIDB4NDIsIDB4QTIsICAvLyAuLi5ALi5CLgogICAgICAgICAg
ICAgICAgLyogMDA1MCAqLyAgMHgyMSwgMHgyNCwgMHgwMiwgMHg5OCwgMHgwQSwgMHg4MSwg
MHgyMywgMHgwNCwgIC8vICEkLi4uLiMuCiAgICAgICAgICAgICAgICAvKiAwMDU4ICovICAw
eEZELCAweDBBLCAweDQwLCAweEU4LCAweDUwLCAweDgwLCAweDRDLCAweDAxLCAgLy8gLi5A
LlAuTC4KICAgICAgICAgICAgICAgIC8qIDAwNjAgKi8gIDB4MDYsIDB4MDUsIDB4MzgsIDB4
NDUsIDB4MTAsIDB4NDEsIDB4OTQsIDB4OTYsICAvLyAuLjhFLkEuLgogICAgICAgICAgICAg
ICAgLyogMDA2OCAqLyAgMHgwNSwgMHhFOCwgMHgxNiwgMHhFMCwgMHg1QiwgMHg4MCwgMHg3
NiwgMHgwOCwgIC8vIC4uLi5bLnYuCiAgICAgICAgICAgICAgICAvKiAwMDcwICovICAweEEx
LCAweDE5LCAweEU3LCAweDFDLCAweDRFLCAweEExLCAweDY5LCAweDAxLCAgLy8gLi4uLk4u
aS4KICAgICAgICAgICAgICAgIC8qIDAwNzggKi8gIDB4OUEsIDB4MjEsIDB4MzQsIDB4OEEs
IDB4QzMsIDB4MDgsIDB4MTMsIDB4MjksICAvLyAuITQuLi4uKQogICAgICAgICAgICAgICAg
LyogMDA4MCAqLyAgMHg2OCwgMHg4QywgMHg3OCwgMHg2NywgMHg2MiwgMHhDRiwgMHgzOCwg
MHhCMiwgIC8vIGgueGdiLjguCiAgICAgICAgICAgICAgICAvKiAwMDg4ICovICAweDI4LCAw
eDQwLCAweDM2LCAweDg2LCAweDZDLCAweDgzLCAweDkzLCAweEQxLCAgLy8gKEA2LmwuLi4K
ICAgICAgICAgICAgICAgIC8qIDAwOTAgKi8gIDB4MzAsIDB4OTEsIDB4NDMsIDB4NDEsIDB4
ODksIDB4MTksIDB4MEEsIDB4NEEsICAvLyAwLkNBLi4uSgogICAgICAgICAgICAgICAgLyog
MDA5OCAqLyAgMHhFNywgMHg0QywgMHg2NCwgMHgxMywgMHg1OCwgMHgwMywgMHgyOCwgMHgx
NCwgIC8vIC5MZC5YLiguCiAgICAgICAgICAgICAgICAvKiAwMEEwICovICAweDQ1LCAweEUz
LCAweDg4LCAweDkyLCAweEUwLCAweDBDLCAweDRFLCAweDIxLCAgLy8gRS4uLi4uTiEKICAg
ICAgICAgICAgICAgIC8qIDAwQTggKi8gIDB4NDIsIDB4RjAsIDB4NzIsIDB4MDUsIDB4NDgs
IDB4OUUsIDB4ODAsIDB4NjYsICAvLyBCLnIuSC4uZgogICAgICAgICAgICAgICAgLyogMDBC
MCAqLyAgMHg3MiwgMHgxNCwgMHhBRCwgMHgwRiwgMHg0MiwgMHg0MywgMHg2MCwgMHgyMywg
IC8vIHIuLi5CQ2AjCiAgICAgICAgICAgICAgICAvKiAwMEI4ICovICAweEUwLCAweDkyLCAw
eDJELCAweDgwLCAweDMwLCAweDUxLCAweEFCLCAweDk1LCAgLy8gLi4tLjBRLi4KICAgICAg
ICAgICAgICAgIC8qIDAwQzAgKi8gIDB4NDgsIDB4MTgsIDB4OTQsIDB4MDQsIDB4MTAsIDB4
QzksIDB4MTksIDB4MzEsICAvLyBILi4uLi4uMQogICAgICAgICAgICAgICAgLyogMDBDOCAq
LyAgMHgwQSwgMHhEOCwgMHg1RSwgMHgyNywgMHgyMiwgMHg5MywgMHhDMywgMHhBNSwgIC8v
IC4uXiciLi4uCiAgICAgICAgICAgICAgICAvKiAwMEQwICovICAweEQyLCAweDA2LCAweDhC
LCAweDFFLCAweEU3LCAweEE5LCAweDFDLCAweEExLCAgLy8gLi4uLi4uLi4KICAgICAgICAg
ICAgICAgIC8qIDAwRDggKi8gIDB4MDcsIDB4NjcsIDB4MDIsIDB4QTMsIDB4OUUsIDB4RDIs
IDB4RTEsIDB4QkMsICAvLyAuZy4uLi4uLgogICAgICAgICAgICAgICAgLyogMDBFMCAqLyAg
MHgwMywgMHgxNCwgMHg4RiwgMHgyQSwgMHg4QywgMHhFNiwgMHhBMCwgMHhDOCwgIC8vIC4u
LiouLi4uCiAgICAgICAgICAgICAgICAvKiAwMEU4ICovICAweEM4LCAweDcxLCAweEUzLCAw
eEIzLCAweDQ0LCAweDU4LCAweDlELCAweDAyLCAgLy8gLnEuLkRYLi4KICAgICAgICAgICAg
ICAgIC8qIDAwRjAgKi8gIDB4NjIsIDB4MUYsIDB4REEsIDB4MDEsIDB4MTcsIDB4M0UsIDB4
NjUsIDB4MzIsICAvLyBiLi4uLj5lMgogICAgICAgICAgICAgICAgLyogMDBGOCAqLyAgMHg4
MiwgMHg0MywgMHg0RCwgMHg3MCwgMHg3QywgMHgzMSwgMHg0RSwgMHhFRCwgIC8vIC5DTXB8
MU4uCiAgICAgICAgICAgICAgICAvKiAwMTAwICovICAweDZDLCAweDNELCAweDY0LCAweENG
LCAweERBLCAweDAzLCAweDJDLCAweDA4LCAgLy8gbD1kLi4uLC4KICAgICAgICAgICAgICAg
IC8qIDAxMDggKi8gIDB4NTQsIDB4ODMsIDB4ODcsIDB4MDMsIDB4MTYsIDB4MkUsIDB4OEEs
IDB4MjEsICAvLyBULi4uLi4uIQogICAgICAgICAgICAgICAgLyogMDExMCAqLyAgMHhBMiwg
MHgxQywgMHg0MywgMHhBMCwgMHhGMywgMHhGNCwgMHg1MCwgMHg3MCwgIC8vIC4uQy4uLlBw
CiAgICAgICAgICAgICAgICAvKiAwMTE4ICovICAweDMyLCAweDIwLCAweEU0LCAweDUxLCAw
eDgwLCAweDU1LCAweDAxLCAweEZGLCAgLy8gMiAuUS5VLi4KICAgICAgICAgICAgICAgIC8q
IDAxMjAgKi8gIDB4RkYsIDB4RTEsIDB4OUQsIDB4NEIsIDB4MDIsIDB4Q0YsIDB4QzAsIDB4
OTMsICAvLyAuLi5LLi4uLgogICAgICAgICAgICAgICAgLyogMDEyOCAqLyAgMHg2QSwgMHg0
QywgMHg4MCwgMHgzMiwgMHgwNCwgMHg4OSwgMHgxQiwgMHg5NiwgIC8vIGpMLjIuLi4uCiAg
ICAgICAgICAgICAgICAvKiAwMTMwICovICAweDZDLCAweDFELCAweDEzLCAweDM0LCAweEIw
LCAweERBLCAweDkwLCAweDg0LCAgLy8gbC4uNC4uLi4KICAgICAgICAgICAgICAgIC8qIDAx
MzggKi8gIDB4MTIsIDB4MkMsIDB4NTAsIDB4OTQsIDB4NjAsIDB4NTEsIDB4QTIsIDB4QzUs
ICAvLyAuLFAuYFEuLgogICAgICAgICAgICAgICAgLyogMDE0MCAqLyAgMHg4QSwgMHg3NCwg
MHgyOCwgMHhBMSwgMHgwQywgMHg2QSwgMHhBQywgMHg0MCwgIC8vIC50KC4uai5ACiAgICAg
ICAgICAgICAgICAvKiAwMTQ4ICovICAweEFELCAweDQxLCAweDY4LCAweDJDLCAweDMxLCAw
eDAyLCAweEM1LCAweDc4LCAgLy8gLkFoLDEuLngKICAgICAgICAgICAgICAgIC8qIDAxNTAg
Ki8gIDB4NzMsIDB4MzAsIDB4NDEsIDB4NDEsIDB4MkIsIDB4OTcsIDB4ODYsIDB4OTEsICAv
LyBzMEFBKy4uLgogICAgICAgICAgICAgICAgLyogMDE1OCAqLyAgMHg3OCwgMHhGMCwgMHgz
MiwgMHhCMiwgMHg5RiwgMHhBNywgMHgwNiwgMHg0QSwgIC8vIHguMi4uLi5KCiAgICAgICAg
ICAgICAgICAvKiAwMTYwICovICAweDcwLCAweDM0LCAweDZDLCAweDgyLCAweDY3LCAweDE2
LCAweDM1LCAweDgxLCAgLy8gcDRsLmcuNS4KICAgICAgICAgICAgICAgIC8qIDAxNjggKi8g
IDB4NjMsIDB4NDMsIDB4MDgsIDB4RDQsIDB4QTcsIDB4MDgsIDB4M0IsIDB4MzgsICAvLyBj
Qy4uLi47OAogICAgICAgICAgICAgICAgLyogMDE3MCAqLyAgMHg0NSwgMHhBMCwgMHgwRSwg
MHgwMSwgMHg0NywgMHgxQSwgMHhGMiwgMHhCMCwgIC8vIEUuLi5HLi4uCiAgICAgICAgICAg
ICAgICAvKiAwMTc4ICovICAweDBFLCAweDkwLCAweDRELCAweDJDLCAweEFFLCAweENGLCAw
eDEzLCAweERFLCAgLy8gLi5NLC4uLi4KICAgICAgICAgICAgICAgIC8qIDAxODAgKi8gIDB4
ODIsIDB4OEYsIDB4MDMsIDB4N0MsIDB4MEMsIDB4OUUsIDB4RUQsIDB4RDEsICAvLyAuLi58
Li4uLgogICAgICAgICAgICAgICAgLyogMDE4OCAqLyAgMHgwNSwgMHgzQywgMHgwNiwgMHg3
NiwgMHgxRSwgMHgzMCwgMHgyMCwgMHhERSwgIC8vIC48LnYuMCAuCiAgICAgICAgICAgICAg
ICAvKiAwMTkwICovICAweEZCLCAweDA1LCAweDgwLCAweENDLCAweEQ5LCAweEU3LCAweDAy
LCAweDE4LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAxOTggKi8gIDB4NDcs
IDB4MDEsIDB4QjgsIDB4MjMsIDB4QzMsIDB4OUQsIDB4MTUsIDB4M0MsICAvLyBHLi4jLi4u
PAogICAgICAgICAgICAgICAgLyogMDFBMCAqLyAgMHgyRSwgMHgwRSwgMHhFRiwgMHgwMywg
MHhDMiwgMHgxQiwgMHg0NCwgMHhCMSwgIC8vIC4uLi4uLkQuCiAgICAgICAgICAgICAgICAv
KiAwMUE4ICovICAweEU3LCAweDA0LCAweDJBLCAweEVCLCAweEFDLCAweDgwLCAweEJFLCAw
eDQ3LCAgLy8gLi4qLi4uLkcKICAgICAgICAgICAgICAgIC8qIDAxQjAgKi8gIDB4MUMsIDB4
NUIsIDB4QzAsIDB4NTIsIDB4MDUsIDB4RkMsIDB4NDEsIDB4OUUsICAvLyAuWy5SLi5BLgog
ICAgICAgICAgICAgICAgLyogMDFCOCAqLyAgMHgyNSwgMHgxRSwgMHgyNSwgMHgzQywgMHgw
MywgMHgxRiwgMHgyQywgMHgzQywgIC8vICUuJTwuLiw8CiAgICAgICAgICAgICAgICAvKiAw
MUMwICovICAweEY0LCAweDA0LCAweEEzLCAweDQzLCAweEM4LCAweDA5LCAweDJDLCAweDFE
LCAgLy8gLi4uQy4uLC4KICAgICAgICAgICAgICAgIC8qIDAxQzggKi8gIDB4MzMsIDB4NDcs
IDB4NkQsIDB4N0UsIDB4MzgsIDB4M0EsIDB4MzYsIDB4QjAsICAvLyAzR21+ODo2LgogICAg
ICAgICAgICAgICAgLyogMDFEMCAqLyAgMHhBOCwgMHgxMCwgMHhGQSwgMHg0OSwgMHg3OCwg
MHhDQywgMHhFMCwgMHgzOCwgIC8vIC4uLkl4Li44CiAgICAgICAgICAgICAgICAvKiAwMUQ4
ICovICAweDg2LCAweDc4LCAweENDLCAweEMwLCAweEUzLCAweEZGLCAweDNGLCAweDY2LCAg
Ly8gLnguLi4uP2YKICAgICAgICAgICAgICAgIC8qIDAxRTAgKi8gIDB4RjgsIDB4MjMsIDB4
QzMsIDB4REQsIDB4MTMsIDB4M0MsIDB4NTgsIDB4NzAsICAvLyAuIy4uLjxYcAogICAgICAg
ICAgICAgICAgLyogMDFFOCAqLyAgMHgzOCwgMHgzQiwgMHgzMywgMHg4OCwgMHhDMCwgMHg0
NywgMHgxOCwgMHg4RiwgIC8vIDg7My4uRy4uCiAgICAgICAgICAgICAgICAvKiAwMUYwICov
ICAweDE2LCAweDM3LCAweDQ4LCAweDRGLCAweDkxLCAweERGLCAweDM4LCAweEMyLCAgLy8g
LjdITy4uOC4KICAgICAgICAgICAgICAgIC8qIDAxRjggKi8gIDB4NTYsIDB4M0YsIDB4MEMs
IDB4MUEsIDB4NzcsIDB4QkMsIDB4QTAsIDB4MDIsICAvLyBWPy4udy4uLgogICAgICAgICAg
ICAgICAgLyogMDIwMCAqLyAgMHhGNCwgMHg3OCwgMHhDMSwgMHgyRiwgMHg2RiwgMHhCQywg
MHhBMCwgMHgxOSwgIC8vIC54Li9vLi4uCiAgICAgICAgICAgICAgICAvKiAwMjA4ICovICAw
eDFCLCAweDlDLCAweDExLCAweDgzLCAweEVGLCAweEVDLCAweEUwLCAweDAzLCAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgICAgIC8qIDAyMTAgKi8gIDB4MEYsIDB4NzAsIDB4MTgsIDB4
MTMsIDB4RTYsIDB4OEMsIDB4QzIsIDB4MEUsICAvLyAucC4uLi4uLgogICAgICAgICAgICAg
ICAgLyogMDIxOCAqLyAgMHgzQiwgMHhDMCwgMHhFMywgMHhGRiwgMHg4RiwgMHhFMSwgMHgy
MSwgMHhGMCwgIC8vIDsuLi4uLiEuCiAgICAgICAgICAgICAgICAvKiAwMjIwICovICAweEIz
LCAweDg2LCAweDg3LCAweEMwLCAweDA3LCAweEYwLCAweERDLCAweDcyLCAgLy8gLi4uLi4u
LnIKICAgICAgICAgICAgICAgIC8qIDAyMjggKi8gIDB4OTIsIDB4NTYsIDB4M0EsIDB4MzUs
IDB4RTQsIDB4RDksIDB4MDgsIDB4NTgsICAvLyAuVjo1Li4uWAogICAgICAgICAgICAgICAg
LyogMDIzMCAqLyAgMHgwQywgMHg4NiwgMHgwNywgMHg3QywgMHgwMywgMHg5OSwgMHg0MCwg
MHg1MSwgIC8vIC4uLnwuLkBRCiAgICAgICAgICAgICAgICAvKiAwMjM4ICovICAweDhFLCAw
eDBFLCAweDhBLCAweDA0LCAweDgzLCAweEYyLCAweDcwLCAweDEyLCAgLy8gLi4uLi4ucC4K
ICAgICAgICAgICAgICAgIC8qIDAyNDAgKi8gIDB4ODIsIDB4MkUsIDB4MDksIDB4MEUsIDB4
NzUsIDB4MEEsIDB4RjAsIDB4QjgsICAvLyAuLi4udS4uLgogICAgICAgICAgICAgICAgLyog
MDI0OCAqLyAgMHg5RiwgMHgyQywgMHg4RSwgMHhFMywgMHg1QywgMHhERSwgMHgxRCwgMHgz
QywgIC8vIC4sLi5cLi48CiAgICAgICAgICAgICAgICAvKiAwMjUwICovICAweEEyLCAweDA3
LCAweDBELCAweDE4LCAweDY3LCAweDA4LCAweDhGLCAweEYxLCAgLy8gLi4uLmcuLi4KICAg
ICAgICAgICAgICAgIC8qIDAyNTggKi8gIDB4OEMsIDB4M0QsIDB4QkIsIDB4QzcsIDB4MTQs
IDB4OEYsIDB4Q0UsIDB4MDQsICAvLyAuPS4uLi4uLgogICAgICAgICAgICAgICAgLyogMDI2
MCAqLyAgMHgxRSwgMHgwNSwgMHg0MywgMHhFMywgMHg4NywgMHgxNCwgMHg3NiwgMHhBMCwg
IC8vIC4uQy4uLnYuCiAgICAgICAgICAgICAgICAvKiAwMjY4ICovICAweEUwLCAweEE3LCAw
eDAwLCAweDFGLCAweDI4LCAweEQ4LCAweDAwLCAweDlGLCAgLy8gLi4uLiguLi4KICAgICAg
ICAgICAgICAgIC8qIDAyNzAgKi8gIDB4OEQsIDB4NUUsIDB4MzgsIDB4M0MsIDB4OTEsIDB4
NDcsIDB4MjAsIDB4MTMsICAvLyAuXjg8LkcgLgogICAgICAgICAgICAgICAgLyogMDI3OCAq
LyAgMHhGOCwgMHg0QywgMHg2MywgMHhFQywgMHg2NywgMHgxOCwgMHhGMCwgMHgxQywgIC8v
IC5MYy5nLi4uCiAgICAgICAgICAgICAgICAvKiAwMjgwICovICAweDBFLCAweDdDLCAweEE5
LCAweDc4LCAweDNELCAweDYyLCAweDU3LCAweDlGLCAgLy8gLnwueD1iVy4KICAgICAgICAg
ICAgICAgIC8qIDAyODggKi8gIDB4RTMsIDB4MzEsIDB4NEUsIDB4QjgsIDB4ODMsIDB4N0Ys
IDB4MkMsIDB4RjIsICAvLyAuMU4uLi4sLgogICAgICAgICAgICAgICAgLyogMDI5MCAqLyAg
MHhCNCwgMHgxRiwgMHgwQiwgMHgwQywgMHhGMiwgMHg1QywgMHgwNCwgMHhGQiwgIC8vIC4u
Li4uXC4uCiAgICAgICAgICAgICAgICAvKiAwMjk4ICovICAweDBBLCAweEYxLCAweDM2LCAw
eEYxLCAweDMwLCAweEU0LCAweEYzLCAweDgxLCAgLy8gLi42LjAuLi4KICAgICAgICAgICAg
ICAgIC8qIDAyQTAgKi8gIDB4MjcsIDB4RjAsIDB4M0UsIDB4RTQsIDB4NDMsIDB4RDEsIDB4
QjksIDB4MDYsICAvLyAnLj4uQy4uLgogICAgICAgICAgICAgICAgLyogMDJBOCAqLyAgMHg3
OSwgMHgzMywgMHgzMiwgMHg1OCwgMHg2RiwgMHg5MywgMHgxNCwgMHg5NCwgIC8vIHkzMlhv
Li4uCiAgICAgICAgICAgICAgICAvKiAwMkIwICovICAweEQxLCAweEEyLCAweDNDLCAweDE3
LCAweDA1LCAweDhCLCAweEYyLCAweDVBLCAgLy8gLi48Li4uLloKICAgICAgICAgICAgICAg
IC8qIDAyQjggKi8gIDB4NjQsIDB4OTgsIDB4NjMsIDB4OEEsIDB4RkQsIDB4NDYsIDB4MTEs
IDB4MjIsICAvLyBkLmMuLkYuIgogICAgICAgICAgICAgICAgLyogMDJDMCAqLyAgMHg0OCwg
MHhEMCwgMHg2MCwgMHgzMSwgMHg0MiwgMHgyNiwgMHhGMCwgMHhDMSwgIC8vIEguYDFCJi4u
CiAgICAgICAgICAgICAgICAvKiAwMkM4ICovICAweDBBLCAweEZGLCAweEZGLCAweDNGLCAw
eDU4LCAweDgxLCAweDQzLCAweEM4LCAgLy8gLi4uP1guQy4KICAgICAgICAgICAgICAgIC8q
IDAyRDAgKi8gIDB4QUEsIDB4NzUsIDB4MzQsIDB4NzIsIDB4MjQsIDB4NzgsIDB4RDQsIDB4
RDEsICAvLyAudTRyJHguLgogICAgICAgICAgICAgICAgLyogMDJEOCAqLyAgMHhDMSwgMHgy
NywgMHgwMywgMHg4RiwgMHhFQywgMHhCMCwgMHg3RCwgMHhBRCwgIC8vIC4nLi4uLn0uCiAg
ICAgICAgICAgICAgICAvKiAwMkUwICovICAweDMwLCAweEM4LCAweDEzLCAweDk0LCAweDBG
LCAweDE0LCAweDhGLCAweDA0LCAgLy8gMC4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAy
RTggKi8gIDB4MUUsIDB4MDMsIDB4QkIsIDB4MkIsIDB4RjgsIDB4MTAsIDB4RTAsIDB4MzMs
ICAvLyAuLi4rLi4uMwogICAgICAgICAgICAgICAgLyogMDJGMCAqLyAgMHgwMiwgMHhERSwg
MHgzNSwgMHhBMCwgMHgyRSwgMHgwNywgMHhDRiwgMHgyNiwgIC8vIC4uNS4uLi4mCiAgICAg
ICAgICAgICAgICAvKiAwMkY4ICovICAweEIwLCAweENFLCAweDI4LCAweEY4LCAweEMzLCAw
eDA4LCAweEZDLCAweEYzLCAgLy8gLi4oLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAzMDAg
Ki8gIDB4MUMsIDB4M0IsIDB4OEQsIDB4RjgsIDB4MkMsIDB4OTEsIDB4QzAsIDB4RjIsICAv
LyAuOy4uLC4uLgogICAgICAgICAgICAgICAgLyogMDMwOCAqLyAgMHgwNywgMHg4MSwgMHgx
QSwgMHg5OSwgMHhBMSwgMHg3RCwgMHhCRiwgMHg3OCwgIC8vIC4uLi4ufS54CiAgICAgICAg
ICAgICAgICAvKiAwMzEwICovICAweEFELCAweDMzLCAweEU0LCAweDkzLCAweEMyLCAweDYx
LCAweEIxLCAweDUzLCAgLy8gLjMuLi5hLlMKICAgICAgICAgICAgICAgIC8qIDAzMTggKi8g
IDB4ODksIDB4NEYsIDB4NDAsIDB4RTAsIDB4MTgsIDB4MEYsIDB4RkMsIDB4Q0IsICAvLyAu
T0AuLi4uLgogICAgICAgICAgICAgICAgLyogMDMyMCAqLyAgMHhDMCwgMHg2MywgMHg4OCwg
MHhBNywgMHhFRiwgMHhGOSwgMHg5QSwgMHg2MCwgIC8vIC5jLi4uLi5gCiAgICAgICAgICAg
ICAgICAvKiAwMzI4ICovICAweEQ4LCAweDkzLCAweDEyLCAweDdBLCAweEI4LCAweDFFLCAw
eEY0LCAweEUzLCAgLy8gLi4uei4uLi4KICAgICAgICAgICAgICAgIC8qIDAzMzAgKi8gIDB4
MDIsIDB4QzYsIDB4RTcsIDB4ODksIDB4NDAsIDB4RjcsIDB4ODAsIDB4QTcsICAvLyAuLi4u
QC4uLgogICAgICAgICAgICAgICAgLyogMDMzOCAqLyAgMHgwNSwgMHg0QywgMHhBOCwgMHg4
MSwgMHhEMywgMHgwMywgMHgxNywgMHg3OCwgIC8vIC5MLi4uLi54CiAgICAgICAgICAgICAg
ICAvKiAwMzQwICovICAweDRFLCAweDJCLCAweEY4LCAweEQzLCAweDA0LCAweEJDLCAweEQx
LCAweEUwLCAgLy8gTisuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAzNDggKi8gIDB4Q0Us
IDB4MTIsIDB4NzAsIDB4ODYsIDB4ODksIDB4RkIsIDB4RkYsIDB4OUYsICAvLyAuLnAuLi4u
LgogICAgICAgICAgICAgICAgLyogMDM1MCAqLyAgMHg3MCwgMHhDMCwgMHg4MSwgMHhGNiwg
MHg4NCwgMHgwMywgMHhCRSwgMHhEQiwgIC8vIHAuLi4uLi4uCiAgICAgICAgICAgICAgICAv
KiAwMzU4ICovICAweDA2LCAweDFCLCAweDJGLCAweERDLCAweDAzLCAweDBFLCAweEUwLCAw
eDUwLCAgLy8gLi4vLi4uLlAKICAgICAgICAgICAgICAgIC8qIDAzNjAgKi8gIDB4QzgsIDB4
QjEsIDB4OTEsIDB4QzYsIDB4N0EsIDB4MTcsIDB4MjgsIDB4RkEsICAvLyAuLi4uei4oLgog
ICAgICAgICAgICAgICAgLyogMDM2OCAqLyAgMHgwMSwgMHg4NywgMHhDMiwgMHhGOCwgMHg4
MCwgMHgwMywgMHgzOCwgMHgzQSwgIC8vIC4uLi4uLjg6CiAgICAgICAgICAgICAgICAvKiAw
MzcwICovICAweENDLCAweEYwLCAweEZGLCAweEZGLCAweDAxLCAweDA3LCAweDNDLCAweDUz
LCAgLy8gLi4uLi4uPFMKICAgICAgICAgICAgICAgIC8qIDAzNzggKi8gIDB4MzgsIDB4QjAs
IDB4NDMsIDB4ODgsIDB4MTUsIDB4RTQsIDB4MjksIDB4QzEsICAvLyA4LkMuLi4pLgogICAg
ICAgICAgICAgICAgLyogMDM4MCAqLyAgMHhCNywgMHg0OSwgMHg5OCwgMHg2MywgMHhGNywg
MHg5OSwgMHhDNCwgMHgzOCwgIC8vIC5JLmMuLi44CiAgICAgICAgICAgICAgICAvKiAwMzg4
ICovICAweDI3LCAweEUyLCAweDYzLCAweDBFLCAweEVDLCAweENCLCAweDhELCAweDJGLCAg
Ly8gJy5jLi4uLi8KICAgICAgICAgICAgICAgIC8qIDAzOTAgKi8gIDB4MzIsIDB4ODEsIDB4
ODMsIDB4OUMsIDB4RUIsIDB4MDMsIDB4NjQsIDB4OTAsICAvLyAyLi4uLi5kLgogICAgICAg
ICAgICAgICAgLyogMDM5OCAqLyAgMHgwNywgMHg0OSwgMHhERiwgMHgyMSwgMHg3RCwgMHg5
QywgMHg3OCwgMHhDQywgIC8vIC5JLiF9LnguCiAgICAgICAgICAgICAgICAvKiAwM0EwICov
ICAweEYxLCAweEU5LCAweEU2LCAweDJELCAweEQyLCAweDI4LCAweEE3LCAweEYxLCAgLy8g
Li4uLS4oLi4KICAgICAgICAgICAgICAgIC8qIDAzQTggKi8gIDB4M0UsIDB4NjksIDB4MTQs
IDB4Q0YsIDB4MjQsIDB4NDIsIDB4QUMsIDB4ODcsICAvLyA+aS4uJEIuLgogICAgICAgICAg
ICAgICAgLyogMDNCMCAqLyAgMHgxRCwgMHhERiwgMHgyQywgMHgwRCwgMHgxNiwgMHgyQiwg
MHhDQSwgMHg0QiwgIC8vIC4uLC4uKy5LCiAgICAgICAgICAgICAgICAvKiAwM0I4ICovICAw
eEE1LCAweDhGLCAweDM5LCAweEUwLCAweDE1LCAweDc5LCAweENDLCAweDAxLCAgLy8gLi45
Li55Li4KICAgICAgICAgICAgICAgIC8qIDAzQzAgKi8gIDB4MjgsIDB4RjAsIDB4RkYsIDB4
M0YsIDB4RTYsIDB4ODAsIDB4RTMsIDB4RjEsICAvLyAoLi4/Li4uLgogICAgICAgICAgICAg
ICAgLyogMDNDOCAqLyAgMHhFMCwgMHg2MywgMHgwRSwgMHhFRSwgMHgyOCwgMHg2MSwgMHhF
MCwgMHg4NywgIC8vIC5jLi4oYS4uCiAgICAgICAgICAgICAgICAvKiAwM0QwICovICAweDA2
LCAweDFGLCAweDQwLCAweDYwLCAweDlELCAweDQ0LCAweEQ4LCAweDg5LCAgLy8gLi5AYC5E
Li4KICAgICAgICAgICAgICAgIC8qIDAzRDggKi8gIDB4MDEsIDB4MTMsIDB4RjAsIDB4QTgs
IDB4MDMsIDB4M0EsIDB4QzEsIDB4RTcsICAvLyAuLi4uLjouLgogICAgICAgICAgICAgICAg
LyogMDNFMCAqLyAgMHgwQSwgMHhEMCwgMHg4QywgMHg4OCwgMHg5RCwgMHgyQSwgMHhDMCwg
MHg3OCwgIC8vIC4uLi4uKi54CiAgICAgICAgICAgICAgICAvKiAwM0U4ICovICAweEUwLCAw
eDAxLCAweERGLCAweEIwLCAweDdDLCAweEUwLCAweDAxLCAweEU3LCAgLy8gLi4uLnwuLi4K
ICAgICAgICAgICAgICAgIC8qIDAzRjAgKi8gIDB4QzgsIDB4QzEsIDB4NzUsIDB4RTgsIDB4
MDEsIDB4REUsIDB4RkYsIDB4RkYsICAvLyAuLnUuLi4uLgogICAgICAgICAgICAgICAgLyog
MDNGOCAqLyAgMHg0MywgMHgwRiwgMHg3MCwgMHhEMSwgMHg2OSwgMHgwMiwgMHg4NCwgMHgw
NSwgIC8vIEMucC5pLi4uCiAgICAgICAgICAgICAgICAvKiAwNDAwICovICAweDdCLCAweDIx
LCAweDI4LCAweEYyLCAweDUzLCAweDgxLCAweEMyLCAweEY4LCAgLy8geyEoLlMuLi4KICAg
ICAgICAgICAgICAgIC8qIDA0MDggKi8gIDB4RDAsIDB4MDMsIDB4MzgsIDB4MUEsIDB4RTUs
IDB4RDMsIDB4MDQsIDB4NTgsICAvLyAuLjguLi4uWAogICAgICAgICAgICAgICAgLyogMDQx
MCAqLyAgMHgwRSwgMHhBNCwgMHhFQywgMHgxNiwgMHhFNiwgMHg3MywgMHg5OCwgMHhDNywg
IC8vIC4uLi4ucy4uCiAgICAgICAgICAgICAgICAvKiAwNDE4ICovICAweEUzLCAweDM5LCAw
eEZCLCAweDI4LCAweEMxLCAweENFLCAweEUyLCAweEJFLCAgLy8gLjkuKC4uLi4KICAgICAg
ICAgICAgICAgIC8qIDA0MjAgKi8gIDB4OTMsIDB4QzMsIDB4M0YsIDB4RjUsIDB4QzAsIDB4
M0YsIDB4NTcsIDB4M0MsICAvLyAuLj8uLj9XPAogICAgICAgICAgICAgICAgLyogMDQyOCAq
LyAgMHg0RCwgMHhCQywgMHhENywgMHhCQywgMHgyMCwgMHgxQSwgMHhFNSwgMHg1NSwgIC8v
IE0uLi4gLi5VCiAgICAgICAgICAgICAgICAvKiAwNDMwICovICAweDI3LCAweEMyLCAweDAz
LCAweDhGLCAweDhGLCAweEUxLCAweDNFLCAweDI2LCAgLy8gJy4uLi4uPiYKICAgICAgICAg
ICAgICAgIC8qIDA0MzggKi8gIDB4N0EsIDB4QzQsIDB4MkYsIDB4M0MsIDB4ODYsIDB4RjIs
IDB4QTUsIDB4QzcsICAvLyB6Li88Li4uLgogICAgICAgICAgICAgICAgLyogMDQ0MCAqLyAg
MHhCNywgMHgxRiwgMHg5RiwgMHgxNSwgMHgwRCwgMHhGMiwgMHg3MCwgMHg2RSwgIC8vIC4u
Li4uLnBuCiAgICAgICAgICAgICAgICAvKiAwNDQ4ICovICAweDg4LCAweDc3LCAweDhCLCAw
eDcwLCAweDkxLCAweDYyLCAweDQ0LCAweEY3LCAgLy8gLncucC5iRC4KICAgICAgICAgICAg
ICAgIC8qIDA0NTAgKi8gIDB4REMsIDB4N0QsIDB4RUEsIDB4MDEsIDB4Q0IsIDB4RkYsIDB4
RkYsIDB4RDQsICAvLyAufS4uLi4uLgogICAgICAgICAgICAgICAgLyogMDQ1OCAqLyAgMHg4
MywgMHg5NywgMHhGNiwgMHg4MCwgMHhEMSwgMHgyRiwgMHhDQiwgMHhBNywgIC8vIC4uLi4u
Ly4uCiAgICAgICAgICAgICAgICAvKiAwNDYwICovICAweDFFLCAweDgwLCAweDFGLCAweDA3
LCAweDU2LCAweERDLCAweEE5LCAweDA1LCAgLy8gLi4uLlYuLi4KICAgICAgICAgICAgICAg
IC8qIDA0NjggKi8gIDB4MkMsIDB4RDcsIDB4MDcsIDB4NzYsIDB4MTEsIDB4ODEsIDB4NzUs
IDB4NjAsICAvLyAsLi52Li51YAogICAgICAgICAgICAgICAgLyogMDQ3MCAqLyAgMHgwMSwg
MHhFNiwgMHhGRiwgMHhGRiwgMHgwMywgMHgwQiwgMHg3MCwgMHhEMCwgIC8vIC4uLi4uLnAu
CiAgICAgICAgICAgICAgICAvKiAwNDc4ICovICAweEZBLCAweDc4LCAweEQwLCAweDA5LCAw
eEM0LCAweDNBLCAweDQxLCAweDY0LCAgLy8gLnguLi46QWQKICAgICAgICAgICAgICAgIC8q
IDA0ODAgKi8gIDB4RTMsIDB4MjksIDB4RTAsIDB4QzMsIDB4MDAsIDB4RDUsIDB4N0QsIDB4
RUEsICAvLyAuKS4uLi59LgogICAgICAgICAgICAgICAgLyogMDQ4OCAqLyAgMHhEMywgMHg2
QywgMHg2MSwgMHg0MywgMHgwQiwgMHg1MiwgMHhGMCwgMHgzRSwgIC8vIC5sYUMuUi4+CiAg
ICAgICAgICAgICAgICAvKiAwNDkwICovICAweDE5LCAweDU4LCAweDIxLCAweDhDLCAweDM0
LCAweEJFLCAweDIwLCAweDM0LCAgLy8gLlghLjQuIDQKICAgICAgICAgICAgICAgIC8qIDA0
OTggKi8gIDB4M0EsIDB4QzMsIDB4NTksIDB4MTUsIDB4OEMsIDB4RTAsIDB4MEMsIDB4RTIs
ICAvLyA6LlkuLi4uLgogICAgICAgICAgICAgICAgLyogMDRBMCAqLyAgMHhBMywgMHg5OSwg
MHgwMywgMHg0MSwgMHhDOCwgMHhDOCwgMHg0MCwgMHgyOCwgIC8vIC4uLkEuLkAoCiAgICAg
ICAgICAgICAgICAvKiAwNEE4ICovICAweEE0LCAweDU1LCAweDlDLCAweDNGLCAweEM4LCAw
eERELCAweEM4LCAweDQ3LCAgLy8gLlUuPy4uLkcKICAgICAgICAgICAgICAgIC8qIDA0QjAg
Ki8gIDB4MDQsIDB4MjcsIDB4QjgsIDB4Q0MsIDB4N0IsIDB4RkUsIDB4RjQsIDB4QUEsICAv
LyAuJy4uey4uLgogICAgICAgICAgICAgICAgLyogMDRCOCAqLyAgMHhDMCwgMHhCMSwgMHg3
RCwgMHg3OCwgMHgzMCwgMHhCMCwgMHhFNywgMHhFQywgIC8vIC4ufXgwLi4uCiAgICAgICAg
ICAgICAgICAvKiAwNEMwICovICAweDNCLCAweDBCLCAweDlGLCAweEI4LCAweDZGLCAweDAx
LCAweDY3LCAweEZDLCAgLy8gOy4uLm8uZy4KICAgICAgICAgICAgICAgIC8qIDA0QzggKi8g
IDB4REUsIDB4RTAsIDB4RkIsIDB4ODEsIDB4RDUsIDB4QzAsIDB4QTEsIDB4QTAsICAvLyAu
Li4uLi4uLgogICAgICAgICAgICAgICAgLyogMDREMCAqLyAgMHg3RCwgMHgyNywgMHhFMSwg
MHgyNywgMHgxOCwgMHg3NiwgMHg3NiwgMHgwMiwgIC8vIH0nLicudnYuCiAgICAgICAgICAg
ICAgICAvKiAwNEQ4ICovICAweEM3LCAweDZELCAweDI0LCAweEMxLCAweDBDLCAweDA3LCAw
eDU2LCAweEY0LCAgLy8gLm0kLi4uVi4KICAgICAgICAgICAgICAgIC8qIDA0RTAgKi8gIDB4
QzAsIDB4OEMsIDB4RkEsIDB4QkUsIDB4RjEsIDB4MkUsIDB4RTMsIDB4REIsICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAgICAgLyogMDRFOCAqLyAgMHgwQSwgMHgxQiwgMHg4OSwgMHgw
NywgMHgwNiwgMHg2RiwgMHg0NCwgMHhCMCwgIC8vIC4uLi4ub0QuCiAgICAgICAgICAgICAg
ICAvKiAwNEYwICovICAweDA2LCAweDZDLCAweDVELCAweDg3LCAweDJCLCAweDkwLCAweEU1
LCAweDk4LCAgLy8gLmxdLisuLi4KICAgICAgICAgICAgICAgIC8qIDA0RjggKi8gIDB4MTEs
IDB4NUEsIDB4QzksIDB4MTUsIDB4MUYsIDB4RDIsIDB4OUMsIDB4RjgsICAvLyAuWi4uLi4u
LgogICAgICAgICAgICAgICAgLyogMDUwMCAqLyAgMHhGRiwgMHg3RiwgMHg0RSwgMHg2MCwg
MHhCQiwgMHgxOSwgMHg3OCwgMHg0RSwgIC8vIC4uTmAuLnhOCiAgICAgICAgICAgICAgICAv
KiAwNTA4ICovICAweDYwLCAweDNCLCAweDFELCAweEMwLCAweDk5LCAweDEzLCAweDNGLCAw
eDFELCAgLy8gYDsuLi4uPy4KICAgICAgICAgICAgICAgIC8qIDA1MTAgKi8gIDB4ODAsIDB4
RjksIDB4ODMsIDB4RTIsIDB4ODksIDB4QzEsIDB4NDIsIDB4RjIsICAvLyAuLi4uLi5CLgog
ICAgICAgICAgICAgICAgLyogMDUxOCAqLyAgMHhFOSwgMHgwMCwgMHg1QywgMHg0MSwgMHg4
RSwgMHgzQSwgMHhFOCwgMHg3MywgIC8vIC4uXEEuOi5zCiAgICAgICAgICAgICAgICAvKiAw
NTIwICovICAweDE0LCAweDFCLCAweEQ3LCAweEJCLCAweDg2LCAweDRGLCAweDFBLCAweDNF
LCAgLy8gLi4uLi5PLj4KICAgICAgICAgICAgICAgIC8qIDA1MjggKi8gIDB4NUEsIDB4Rjgs
IDB4MUUsIDB4RTUsIDB4QzEsIDB4ODMsIDB4NzUsIDB4OUMsICAvLyBaLi4uLi51LgogICAg
ICAgICAgICAgICAgLyogMDUzMCAqLyAgMHgxRSwgMHgzQywgMHhGQywgMHg1QiwgMHgwRSwg
MHg1NiwgMHhERiwgMHgzMSwgIC8vIC48LlsuVi4xCiAgICAgICAgICAgICAgICAvKiAwNTM4
ICovICAweDA2LCAweDE0LCAweDQwLCAweEJFLCAweEIzLCAweEY4LCAweDhDLCAweEYyLCAg
Ly8gLi5ALi4uLi4KICAgICAgICAgICAgICAgIC8qIDA1NDAgKi8gIDB4REMsIDB4QzIsIDB4
QzYsIDB4RjAsIDB4OTgsIDB4NjIsIDB4MzQsIDB4QTMsICAvLyAuLi4uLmI0LgogICAgICAg
ICAgICAgICAgLyogMDU0OCAqLyAgMHhGMywgMHhGMCwgMHhFOCwgMHgxNCwgMHhDNiwgMHg3
MSwgMHg2RiwgMHgxMCwgIC8vIC4uLi4ucW8uCiAgICAgICAgICAgICAgICAvKiAwNTUwICov
ICAweDE0LCAweEM0LCAweDA3LCAweDA0LCAweDQ3LCAweDk5LCAweDJDLCAweEYyLCAgLy8g
Li4uLkcuLC4KICAgICAgICAgICAgICAgIC8qIDA1NTggKi8gIDB4RkYsIDB4N0YsIDB4RkIs
IDB4NjEsIDB4NzcsIDB4MUUsIDB4Q0YsIDB4RTgsICAvLyAuLi5hdy4uLgogICAgICAgICAg
ICAgICAgLyogMDU2MCAqLyAgMHhCMCwgMHg4MywgMHgzQywgMHgyQywgMHg5MiwgMHhDQiwg
MHg4NSwgMHhFRSwgIC8vIC4uPCwuLi4uCiAgICAgICAgICAgICAgICAvKiAwNTY4ICovICAw
eDQ4LCAweEIwLCAweDZFLCAweDJDLCAweDIxLCAweDlGLCAweDU2LCAweDNDLCAgLy8gSC5u
LCEuVjwKICAgICAgICAgICAgICAgIC8qIDA1NzAgKi8gIDB4MEQsIDB4OUYsIDB4MEIsIDB4
RjAsIDB4QTcsIDB4MEYsIDB4N0UsIDB4N0YsICAvLyAuLi4uLi5+LgogICAgICAgICAgICAg
ICAgLyogMDU3OCAqLyAgMHhGMiwgMHgxNSwgMHgwOSwgMHg3QywgMHgwMiwgMHg2NywgMHgw
QiwgMHg3MiwgIC8vIC4uLnwuZy5yCiAgICAgICAgICAgICAgICAvKiAwNTgwICovICAweDc4
LCAweDRDLCAweENDLCAweDBCLCAweDAzLCAweDZBLCAweDc4LCAweEZDLCAgLy8geEwuLi5q
eC4KICAgICAgICAgICAgICAgIC8qIDA1ODggKi8gIDB4NzIsIDB4RTAsIDB4RjksIDB4M0Ms
IDB4MjMsIDB4MUMsIDB4RTUsIDB4RTMsICAvLyByLi48Iy4uLgogICAgICAgICAgICAgICAg
LyogMDU5MCAqLyAgMHgwRCwgMHgwRSwgMHhFMywgMHhFOSwgMHhDNSwgMHg0MywgMHhGNCwg
MHhDRCwgIC8vIC4uLi4uQy4uCiAgICAgICAgICAgICAgICAvKiAwNTk4ICovICAweDBELCAw
eEQ2LCAweDQ0LCAweDRFLCAweERBLCAweEI3LCAweDg1LCAweDkzLCAgLy8gLi5ETi4uLi4K
ICAgICAgICAgICAgICAgIC8qIDA1QTAgKi8gIDB4MEQsIDB4RkEsIDB4NUEsIDB4ODksIDB4
QjksIDB4QjksIDB4MDEsIDB4NTcsICAvLyAuLlouLi4uVwogICAgICAgICAgICAgICAgLyog
MDVBOCAqLyAgMHg0RCwgMHg0QiwgMHhBMSwgMHg4MSwgMHg5NiwgMHhBMywgMHhBOCwgMHgw
QiwgIC8vIE1LLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNUIwICovICAweEEzLCAweDMw
LCAweEJFLCAweDAzLCAweDAyLCAweDlCLCAweEZGLCAweEZGLCAgLy8gLjAuLi4uLi4KICAg
ICAgICAgICAgICAgIC8qIDA1QjggKi8gIDB4MUQsIDB4MTAsIDB4NTgsIDB4NUQsIDB4QUIs
IDB4MEUsIDB4MUQsIDB4MkMsICAvLyAuLlhdLi4uLAogICAgICAgICAgICAgICAgLyogMDVD
MCAqLyAgMHgwNywgMHg4NCwgMHhDNywgMHgwOSwgMHhDQywgMHhCNCwgMHhDMSwgMHg3Mywg
IC8vIC4uLi4uLi5zCiAgICAgICAgICAgICAgICAvKiAwNUM4ICovICAweEZGLCAweDgzLCAw
eDdCLCAweDZGLCAweDhFLCAweEZELCAweEVBLCAweEZDLCAgLy8gLi57by4uLi4KICAgICAg
ICAgICAgICAgIC8qIDA1RDAgKi8gIDB4M0UsIDB4MTEsIDB4RTIsIDB4Q0QsIDB4RUYsIDB4
QzUsIDB4MkYsIDB4Q0UsICAvLyA+Li4uLi4vLgogICAgICAgICAgICAgICAgLyogMDVEOCAq
LyAgMHg4MywgMHg1RiwgMHgyNCwgMHhDRiwgMHhGNSwgMHhGRCwgMHg4RiwgMHgxRCwgIC8v
IC5fJC4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNUUwICovICAweEE2LCAweDdELCAweDVB
LCAweDc5LCAweDkzLCAweDM2LCAweENBLCAweDQxLCAgLy8gLn1aeS42LkEKICAgICAgICAg
ICAgICAgIC8qIDA1RTggKi8gIDB4M0MsIDB4MDIsIDB4MUEsIDB4MjQsIDB4NDIsIDB4RDgs
IDB4NDcsIDB4OUIsICAvLyA8Li4kQi5HLgogICAgICAgICAgICAgICAgLyogMDVGMCAqLyAg
MHgyNywgMHgzMCwgMHgwMywgMHgxRCwgMHg0QSwgMHhDOCwgMHgyOCwgMHg4RiwgIC8vICcw
Li5KLiguCiAgICAgICAgICAgICAgICAvKiAwNUY4ICovICAweDM3LCAweDUxLCAweERFLCAw
eEZGLCAweDAwLCAweEQzLCAweEZGLCAweEZGLCAgLy8gN1EuLi4uLi4KICAgICAgICAgICAg
ICAgIC8qIDA2MDAgKi8gIDB4RkIsIDB4MUYsIDB4RTAsIDB4RTksIDB4MTIsIDB4Q0MsIDB4
RUUsIDB4N0YsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDYwOCAqLyAgMHg4
MCwgMHg1MywgMHg3RCwgMHgxNywgMHgzRSwgMHhBQSwgMHgwRCwgMHg0NCwgIC8vIC5TfS4+
Li5ECiAgICAgICAgICAgICAgICAvKiAwNjEwICovICAweEY3LCAweDNGLCAweDlDLCAweEU2
LCAweDQ3LCAweDgzLCAweDY2LCAweDBCLCAgLy8gLj8uLkcuZi4KICAgICAgICAgICAgICAg
IC8qIDA2MTggKi8gIDB4RkIsIDB4RUUsIDB4QzcsIDB4RUUsIDB4N0YsIDB4NUMsIDB4MUQs
IDB4OEMsICAvLyAuLi4uLlwuLgogICAgICAgICAgICAgICAgLyogMDYyMCAqLyAgMHg5Miwg
MHhEMCwgMHhFOCwgMHhCOCwgMHhDNCwgMHhCNSwgMHhDMywgMHgwOCwgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgICAgICAvKiAwNjI4ICovICAweENFLCAweDIwLCAweDNFLCAweDQ3LCAw
eEY4LCAweEZFLCAweDA3LCAweEVCLCAgLy8gLiA+Ry4uLi4KICAgICAgICAgICAgICAgIC8q
IDA2MzAgKi8gIDB4RkYsIDB4N0YsIDB4RkYsIDB4MDMsIDB4NEMsIDB4NUMsIDB4QzksIDB4
ODAsICAvLyAuLi4uTFwuLgogICAgICAgICAgICAgICAgLyogMDYzOCAqLyAgMHhERCwgMHgx
MSwgMHgxMCwgMHgxQywgMHg1NywgMHgzMiwgMHhFMCwgMHgxNCwgIC8vIC4uLi5XMi4uCiAg
ICAgICAgICAgICAgICAvKiAwNjQwICovICAweEU5LCAweDUyLCAweDgwLCAweDBBLCAweDcx
LCAweDI5LCAweEEwLCAweDIwLCAgLy8gLlIuLnEpLiAKICAgICAgICAgICAgICAgIC8qIDA2
NDggKi8gIDB4OUUsIDB4OTgsIDB4QzMsIDB4NUMsIDB4MEQsIDB4RDEsIDB4OTMsIDB4RjUs
ICAvLyAuLi5cLi4uLgogICAgICAgICAgICAgICAgLyogMDY1MCAqLyAgMHhENSwgMHgxMCwg
MHhDNiwgMHg5RCwgMHgwQywgMHhFQywgMHhENywgMHgwNiwgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgICAgICAvKiAwNjU4ICovICAweERGLCAweDRCLCAweEUwLCAweEZFLCAweEZGLCAw
eDBGLCAweEZCLCAweDcwLCAgLy8gLksuLi4uLnAKICAgICAgICAgICAgICAgIC8qIDA2NjAg
Ki8gIDB4NDIsIDB4NUQsIDB4MUQsIDB4RDAsIDB4OTcsIDB4MTUsIDB4OUYsIDB4MEUsICAv
LyBCXS4uLi4uLgogICAgICAgICAgICAgICAgLyogMDY2OCAqLyAgMHgzMSwgMHgwMywgMHhE
NCwgMHhEOSwgMHg4MSwgMHgwRSwgMHgwQSwgMHg1QywgIC8vIDEuLi4uLi5cCiAgICAgICAg
ICAgICAgICAvKiAwNjcwICovICAweEQ3LCAweDQzLCAweERDLCAweEQ4LCAweEUwLCAweDlE
LCAweDBGLCAweEMxLCAgLy8gLkMuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA2NzggKi8g
IDB4NzcsIDB4N0IsIDB4MDMsIDB4MUUsIDB4RjEsIDB4NkUsIDB4NkYsIDB4NDAsICAvLyB3
ey4uLm5vQAogICAgICAgICAgICAgICAgLyogMDY4MCAqLyAgMHhFRiwgMHhDRSwgMHgwNSwg
MHhEQywgMHgwNCwgMHhGRSwgMHhBNSwgMHg0QywgIC8vIC4uLi4uLi5MCiAgICAgICAgICAg
ICAgICAvKiAwNjg4ICovICAweEEwLCAweDM4LCAweDRCLCAweDkxLCAweDI0LCAweDE4LCAw
eEQ0LCAweENELCAgLy8gLjhLLiQuLi4KICAgICAgICAgICAgICAgIC8qIDA2OTAgKi8gIDB4
MEQsIDB4M0MsIDB4RkYsIDB4RkYsIDB4OUIsIDB4MUIsIDB4NzAsIDB4M0YsICAvLyAuPC4u
Li5wPwogICAgICAgICAgICAgICAgLyogMDY5OCAqLyAgMHgzNCwgMHg3OCwgMHhEOCwgMHhF
MCwgMHhDMCwgMHg4RiwgMHg3MSwgMHhENiwgIC8vIDR4Li4uLnEuCiAgICAgICAgICAgICAg
ICAvKiAwNkEwICovICAweDRGLCAweDA0LCAweDNFLCAweEIzLCAweDc4LCAweEMyLCAweDZD
LCAweERBLCAgLy8gTy4+LngubC4KICAgICAgICAgICAgICAgIC8qIDA2QTggKi8gIDB4QjAs
IDB4RjAsIDB4MTMsIDB4RjgsIDB4RTIsIDB4MDYsIDB4RjcsIDB4QTIsICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAgICAgLyogMDZCMCAqLyAgMHhGMSwgMHhFRSwgMHhFRiwgMHhEMywg
MHg1QSwgMHhFNCwgMHgyOCwgMHg5RSwgIC8vIC4uLi5aLiguCiAgICAgICAgICAgICAgICAv
KiAwNkI4ICovICAweEU4LCAweDEzLCAweERCLCAweDdCLCAweDQ3LCAweDg0LCAweDI4LCAw
eDBDLCAgLy8gLi4ue0cuKC4KICAgICAgICAgICAgICAgIC8qIDA2QzAgKi8gIDB4RTIsIDB4
REQsIDB4MkQsIDB4REMsIDB4MTksIDB4NDQsIDB4MzksIDB4ODcsICAvLyAuLi0uLkQ5Lgog
ICAgICAgICAgICAgICAgLyogMDZDOCAqLyAgMHhENywgMHgyNiwgMHg1RiwgMHhFMCwgMHg5
RSwgMHhERCwgMHgzQywgMHhENiwgIC8vIC4mXy4uLjwuCiAgICAgICAgICAgICAgICAvKiAw
NkQwICovICAweEIwLCAweDhGLCAweDZFLCAweEJFLCAweEJBLCAweDE5LCAweDIxLCAweDQ2
LCAgLy8gLi5uLi4uIUYKICAgICAgICAgICAgICAgIC8qIDA2RDggKi8gIDB4REMsIDB4MTAs
IDB4NDEsIDB4NUYsIDB4REMsIDB4QzAsIDB4MUIsIDB4RTIsICAvLyAuLkFfLi4uLgogICAg
ICAgICAgICAgICAgLyogMDZFMCAqLyAgMHg4QywgMHg0RCwgMHgyRiwgMHg2RSwgMHg4MCwg
MHg4NywgMHhGRiwgMHhGRiwgIC8vIC5NL24uLi4uCiAgICAgICAgICAgICAgICAvKiAwNkU4
ICovICAweEM1LCAweDBELCAweEYwLCAweDIyLCAweEYxLCAweEUxLCAweEEwLCAweDNCLCAg
Ly8gLi4uIi4uLjsKICAgICAgICAgICAgICAgIC8qIDA2RjAgKi8gIDB4MTcsIDB4MUYsIDB4
OEYsIDB4NDUsIDB4NDEsIDB4OTMsIDB4RDMsIDB4MDIsICAvLyAuLi5FQS4uLgogICAgICAg
ICAgICAgICAgLyogMDZGOCAqLyAgMHg5QywgMHhDQiwgMHgwRiwgMHhFNiwgMHhGRSwgMHhF
MSwgMHgwQiwgMHg4MywgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNzAwICov
ICAweDQ1LCAweEMwLCAweEVCLCAweDYwLCAweDYzLCAweDY4LCAweDlGLCAweDI5LCAgLy8g
RS4uYGNoLikKICAgICAgICAgICAgICAgIC8qIDA3MDggKi8gIDB4RjgsIDB4MDEsIDB4QzMs
IDB4NjcsIDB4MEEsIDB4MDYsIDB4Q0MsIDB4MEYsICAvLyAuLi5nLi4uLgogICAgICAgICAg
ICAgICAgLyogMDcxMCAqLyAgMHgyNiwgMHg5OCwgMHgyMywgMHgwNSwgMHhGMCwgMHgzQSwg
MHhGMSwgMHhDMCwgIC8vICYuIy4uOi4uCiAgICAgICAgICAgICAgICAvKiAwNzE4ICovICAw
eDFCLCAweDk3LCAweEM3LCAweEUzLCAweDQxLCAweEMzLCAweDlELCAweENDLCAgLy8gLi4u
LkEuLi4KICAgICAgICAgICAgICAgIC8qIDA3MjAgKi8gIDB4NDksIDB4NTcsIDB4M0QsIDB4
MDUsIDB4REQsIDB4MDUsIDB4QUMsIDB4RUUsICAvLyBJVz0uLi4uLgogICAgICAgICAgICAg
ICAgLyogMDcyOCAqLyAgMHgyOCwgMHgwNywgMHg5MiwgMHgyMSwgMHg2MywgMHgwOSwgMHgy
QywgMHhGOCwgIC8vICguLiFjLiwuCiAgICAgICAgICAgICAgICAvKiAwNzMwICovICAweEUw
LCAweDAzLCAweDhBLCAweEZGLCAweEZGLCAweDM0LCAweEIwLCAweDEzLCAgLy8gLi4uLi40
Li4KICAgICAgICAgICAgICAgIC8qIDA3MzggKi8gIDB4ODUsIDB4MzEsIDB4MTYsIDB4NTgs
IDB4MDMsIDB4NjUsIDB4QjcsIDB4NDEsICAvLyAuMS5YLmUuQQogICAgICAgICAgICAgICAg
LyogMDc0MCAqLyAgMHhDMCwgMHhERCwgMHg2MCwgMHhCOCwgMHg4NCwgMHhEMywgMHgwRiwg
MHgyQSwgIC8vIC4uYC4uLi4qCiAgICAgICAgICAgICAgICAvKiAwNzQ4ICovICAweEY0LCAw
eEIzLCAweEMwLCAweDA3LCAweDIwLCAweDQwLCAweEY3LCAweEZGLCAgLy8gLi4uLiBALi4K
ICAgICAgICAgICAgICAgIC8qIDA3NTAgKi8gIDB4RkYsIDB4MDAsIDB4MDQsIDB4QkUsIDB4
RTksIDB4M0QsIDB4RTIsIDB4M0MsICAvLyAuLi4uLj0uPAogICAgICAgICAgICAgICAgLyog
MDc1OCAqLyAgMHhCQSwgMHgzRCwgMHhGMCwgMHhCQywgMHg1NywgMHg5QywgMHg2NywgMHhF
QywgIC8vIC49Li5XLmcuCiAgICAgICAgICAgICAgICAvKiAwNzYwICovICAweEYwLCAweDJG
LCAweDNFLCAweDJGLCAweEMzLCAweDg2LCAweDc5LCAweEZCLCAgLy8gLi8+Ly4ueS4KICAg
ICAgICAgICAgICAgIC8qIDA3NjggKi8gIDB4MzEsIDB4NDYsIDB4QkMsIDB4NDcsIDB4OTUs
IDB4QzcsIDB4NjAsIDB4NDMsICAvLyAxRi5HLi5gQwogICAgICAgICAgICAgICAgLyogMDc3
MCAqLyAgMHg4NiwgMHg3OSwgMHgxMCwgMHgwQSwgMHgxMywgMHhDQSwgMHg0NywgMHgyMSwg
IC8vIC55Li4uLkchCiAgICAgICAgICAgICAgICAvKiAwNzc4ICovICAweDIzLCAweDg2LCAw
eDg4LCAweDFCLCAweEUxLCAweDI1LCAweEU4LCAweDUwLCAgLy8gIy4uLi4lLlAKICAgICAg
ICAgICAgICAgIC8qIDA3ODAgKi8gIDB4MDIsIDB4MUQsIDB4QzAsIDB4NjksIDB4RkIsIDB4
MDAsIDB4MDQsIDB4NTYsICAvLyAuLi5pLi4uVgogICAgICAgICAgICAgICAgLyogMDc4OCAq
LyAgMHg5OSwgMHgwNywgMHgyMCwgMHg4MCwgMHgyNiwgMHgwRiwgMHgwNywgMHg5RiwgIC8v
IC4uIC4mLi4uCiAgICAgICAgICAgICAgICAvKiAwNzkwICovICAweDIzLCAweDcxLCAweDAz
LCAweEYwLCAweEEwLCAweERGLCAweDE4LCAweDhDLCAgLy8gI3EuLi4uLi4KICAgICAgICAg
ICAgICAgIC8qIDA3OTggKi8gIDB4RkEsIDB4QkEsIDB4NjAsIDB4OUYsIDB4QzcsIDB4MDMs
IDB4OEQsIDB4RTksICAvLyAuLmAuLi4uLgogICAgICAgICAgICAgICAgLyogMDdBMCAqLyAg
MHg4QywgMHhGRSwgMHhGRiwgMHg3MSwgMHg4RiwgMHgyOSwgMHg3NiwgMHg4QywgIC8vIC4u
LnEuKXYuCiAgICAgICAgICAgICAgICAvKiAwN0E4ICovICAweDU4LCAweEUxLCAweDdELCAw
eDE4LCAweDg4LCAweEYxLCAweDY2LCAweEUyLCAgLy8gWC59Li4uZi4KICAgICAgICAgICAg
ICAgIC8qIDA3QjAgKi8gIDB4MjMsIDB4MDMsIDB4M0IsIDB4RjYsIDB4RjEsIDB4MjMsIDB4
MTAsIDB4NzgsICAvLyAjLjsuLiMueAogICAgICAgICAgICAgICAgLyogMDdCOCAqLyAgMHg4
RSwgMHg3QSwgMHhFMCwgMHgxOSwgMHgxMiwgMHhFRSwgMHhFNCwgMHhFRiwgIC8vIC56Li4u
Li4uCiAgICAgICAgICAgICAgICAvKiAwN0MwICovICAweDI5LCAweEJELCAweEVCLCAweDc5
LCAweDRDLCAweDc4LCAweEE4LCAweEYwLCAgLy8gKS4ueUx4Li4KICAgICAgICAgICAgICAg
IC8qIDA3QzggKi8gIDB4RTcsIDB4ODQsIDB4MzksIDB4NjEsIDB4ODIsIDB4RUYsIDB4ODQs
IDB4ODEsICAvLyAuLjlhLi4uLgogICAgICAgICAgICAgICAgLyogMDdEMCAqLyAgMHhCQiwg
MHg0OCwgMHg4MywgMHg2QiwgMHhFNCwgMHhFMCwgMHgzQiwgMHhGMSwgIC8vIC5ILmsuLjsu
CiAgICAgICAgICAgICAgICAvKiAwN0Q4ICovICAweDAwLCAweEZFLCAweEZFLCAweEZGLCAw
eDA0LCAweDhFLCAweEE1LCAweDAzLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8q
IDA3RTAgKi8gIDB4ODQsIDB4NDksIDB4N0IsIDB4MjEsIDB4MjgsIDB4MDgsIDB4MEMsIDB4
RUEsICAvLyAuSXshKC4uLgogICAgICAgICAgICAgICAgLyogMDdFOCAqLyAgMHhBNCwgMHgw
QSwgMHhFNywgMHhDNCwgMHg4MywgMHgzQiwgMHhBMCwgMHg4MCwgIC8vIC4uLi4uOy4uCiAg
ICAgICAgICAgICAgICAvKiAwN0YwICovICAweDczLCAweEE4LCAweEI4LCAweDkzLCAweDAz
LCAweERDLCAweEExLCAweDFDLCAgLy8gcy4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA3
RjggKi8gIDB4MjMsIDB4QkIsIDB4MzEsIDB4QzQsIDB4M0EsIDB4N0MsIDB4QzMsIDB4Rjgs
ICAvLyAjLjEuOnwuLgogICAgICAgICAgICAgICAgLyogMDgwMCAqLyAgMHhENiwgMHhDMCwg
MHg4RSwgMHgwQSwgMHhDNiwgMHgzOSwgMHg0QywgMHg4RiwgIC8vIC4uLi4uOUwuCiAgICAg
ICAgICAgICAgICAvKiAwODA4ICovICAweEYxLCAweDUwLCAweDhELCAweENDLCAweDRFLCAw
eDlELCAweDk4LCAweEUzLCAgLy8gLlAuLk4uLi4KICAgICAgICAgICAgICAgIC8qIDA4MTAg
Ki8gIDB4ODMsIDB4OEYsIDB4MjQsIDB4M0UsIDB4MDcsIDB4QkMsIDB4OEEsIDB4RjgsICAv
LyAuLiQ+Li4uLgogICAgICAgICAgICAgICAgLyogMDgxOCAqLyAgMHg5MCwgMHgwMywgMHhG
RiwgMHg5MiwgMHhFQSwgMHg1QiwgMHhDRCwgMHg3OSwgIC8vIC4uLi4uWy55CiAgICAgICAg
ICAgICAgICAvKiAwODIwICovICAweDNELCAweDM2LCAweEIyLCAweDFCLCAweEEzLCAweDBG
LCAweDM4LCAweDkxLCAgLy8gPTYuLi4uOC4KICAgICAgICAgICAgICAgIC8qIDA4MjggKi8g
IDB4ODIsIDB4M0MsIDB4MzQsIDB4NjIsIDB4QzAsIDB4MUUsIDB4NzIsIDB4N0MsICAvLyAu
PDRiLi5yfAogICAgICAgICAgICAgICAgLyogMDgzMCAqLyAgMHg4QywgMHg3OCwgMHhDMiwg
MHg3OSwgMHhDOCwgMHgzMSwgMHg2QywgMHhENCwgIC8vIC54LnkuMWwuCiAgICAgICAgICAg
ICAgICAvKiAwODM4ICovICAweEY3LCAweDFELCAweEUzLCAweDlDLCAweENBLCAweEIzLCAw
eDg0LCAweDIxLCAgLy8gLi4uLi4uLiEKICAgICAgICAgICAgICAgIC8qIDA4NDAgKi8gIDB4
NjIsIDB4QkQsIDB4RUYsIDB4OTgsIDB4QzAsIDB4NzIsIDB4NkQsIDB4NDAsICAvLyBiLi4u
LnJtQAogICAgICAgICAgICAgICAgLyogMDg0OCAqLyAgMHhEQywgMHhCRiwgMHg2NSwgMHg4
QywgMHg1RiwgMHgwNywgMHg2MCwgMHhGQywgIC8vIC4uZS5fLmAuCiAgICAgICAgICAgICAg
ICAvKiAwODUwICovICAweEYxLCAweEMwLCAweEEzLCAweEUxLCAweEIxLCAweEFGLCAweEQ1
LCAweEY0LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA4NTggKi8gIDB4MTgs
IDB4MDIsIDB4OUUsIDB4NzMsIDB4MEIsIDB4N0MsIDB4NDAsIDB4QkMsICAvLyAuLi5zLnxA
LgogICAgICAgICAgICAgICAgLyogMDg2MCAqLyAgMHhGNywgMHgzQiwgMHgwMCwgMHgzOSwg
MHhCOSwgMHhCMywgMHhBMywgMHgwMSwgIC8vIC47LjkuLi4uCiAgICAgICAgICAgICAgICAv
KiAwODY4ICovICAweEZFLCAweDM0LCAweDgwLCAweEZGLCAweEZGLCAweDlGLCAweDA2LCAw
eDcwLCAgLy8gLjQuLi4uLnAKICAgICAgICAgICAgICAgIC8qIDA4NzAgKi8gIDB4MjMsIDB4
QzMsIDB4OUQsIDB4RUYsIDB4RTAsIDB4MTksIDB4M0EsIDB4MTksICAvLyAjLi4uLi46Lgog
ICAgICAgICAgICAgICAgLyogMDg3OCAqLyAgMHg4MywgMHg0RSwgMHhDOCwgMHg5OCwgMHg3
RCwgMHgzNCwgMHg0MiwgMHg1RiwgIC8vIC5OLi59NEJfCiAgICAgICAgICAgICAgICAvKiAw
ODgwICovICAweEVDLCAweDNDLCAweDlGLCAweDQ3LCAweDVELCAweENGLCAweENDLCAweEY3
LCAgLy8gLjwuR10uLi4KICAgICAgICAgICAgICAgIC8qIDA4ODggKi8gIDB4QTEsIDB4RTgs
IDB4MjEsIDB4REUsIDB4QjMsIDB4NEMsIDB4RTAsIDB4QzAsICAvLyAuLiEuLkwuLgogICAg
ICAgICAgICAgICAgLyogMDg5MCAqLyAgMHgxMCwgMHhGQSwgMHg5NCwgMHg3OSwgMHhEQywg
MHhFMCwgMHgzOCwgMHhGRSwgIC8vIC4uLnkuLjguCiAgICAgICAgICAgICAgICAvKiAwODk4
ICovICAweDgwLCAweDYzLCAweERDLCAweEYwLCAweEU3LCAweEVBLCAweDcxLCAweDgzLCAg
Ly8gLmMuLi4ucS4KICAgICAgICAgICAgICAgIC8qIDA4QTAgKi8gIDB4NjUsIDB4NzQsIDB4
MzAsIDB4MDcsIDB4MEQsIDB4N0UsIDB4QzgsIDB4OTMsICAvLyBldDAuLn4uLgogICAgICAg
ICAgICAgICAgLyogMDhBOCAqLyAgMHgzQiwgMHg4NiwgMHgwNywgMHg4MSwgMHhGNywgMHg2
RiwgMHg5RiwgMHgyRCwgIC8vIDsuLi4uby4tCiAgICAgICAgICAgICAgICAvKiAwOEIwICov
ICAweDlFLCAweEEwLCAweDcxLCAweDgzLCAweDA2LCAweDFCLCAweEEwLCAweDA3LCAgLy8g
Li5xLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA4QjggKi8gIDB4MEQsIDB4QkUsIDB4RkYs
IDB4RkYsIDB4QTAsIDB4QzEsIDB4M0IsIDB4M0EsICAvLyAuLi4uLi47OgogICAgICAgICAg
ICAgICAgLyogMDhDMCAqLyAgMHhCOCwgMHg4MywgMHgwNiwgMHg5NywgMHhBMCwgMHg0MSwg
MHhBMywgMHg4RiwgIC8vIC4uLi4uQS4uCiAgICAgICAgICAgICAgICAvKiAwOEM4ICovICAw
eDgxLCAweDFFLCAweDA3LCAweEJCLCAweDBDLCAweEIwLCAweDg5LCAweEMwLCAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgICAgIC8qIDA4RDAgKi8gIDB4M0EsIDB4MUIsIDB4NkEsIDB4
RDgsIDB4QTAsIDB4M0EsIDB4RTIsIDB4NzgsICAvLyA6LmouLjoueAogICAgICAgICAgICAg
ICAgLyogMDhEOCAqLyAgMHhEOCwgMHhFMCwgMHgzRiwgMHhFNywgMHgxQywgMHgzNiwgMHhC
OCwgMHhDNiwgIC8vIC4uPy4uNi4uCiAgICAgICAgICAgICAgICAvKiAwOEUwICovICAweDA3
LCAweDdCLCAweEUwLCAweEUwLCAweDNBLCAweEUzLCAweDdBLCAweEUwLCAgLy8gLnsuLjou
ei4KICAgICAgICAgICAgICAgIC8qIDA4RTggKi8gIDB4QjgsIDB4RjEsIDB4NzgsIDB4MUUs
IDB4NkYsIDB4NDIsIDB4NDYsIDB4M0MsICAvLyAuLngub0JGPAogICAgICAgICAgICAgICAg
LyogMDhGMCAqLyAgMHg5MCwgMHgxMCwgMHg2RiwgMHgxNCwgMHgyNywgMHgxQiwgMHhFNiwg
MHgwNSwgIC8vIC4uby4nLi4uCiAgICAgICAgICAgICAgICAvKiAwOEY4ICovICAweENGLCAw
eDA0LCAweEUzLCAweDhFLCAweDFBLCAweDU0LCAweEEwLCAweDFFLCAgLy8gLi4uLi5ULi4K
ICAgICAgICAgICAgICAgIC8qIDA5MDAgKi8gIDB4QUQsIDB4RkYsIDB4RkYsIDB4QTMsIDB4
MDYsIDB4QjcsIDB4QzAsIDB4RjMsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyog
MDkwOCAqLyAgMHgwNywgMHg4OCwgMHgwNiwgMHgwNywgMHg2QiwgMHhDOCwgMHhFMCwgMHg5
MiwgIC8vIC4uLi5rLi4uCiAgICAgICAgICAgICAgICAvKiAwOTEwICovICAweDc0LCAweDBB
LCAweDQyLCAweDBGLCAweEM2LCAweDY3LCAweDAxLCAweDM2LCAgLy8gdC5CLi5nLjYKICAg
ICAgICAgICAgICAgIC8qIDA5MTggKi8gIDB4NDgsIDB4OUYsIDB4QjIsIDB4RDgsIDB4QjUs
IDB4ODQsIDB4MTEsIDB4MEMsICAvLyBILi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDky
MCAqLyAgMHg3RiwgMHgxMCwgMHgwMiwgMHgxNSwgMHhBOCwgMHg4NywgMHgwQywgMHgzQywg
IC8vIC4uLi4uLi48CiAgICAgICAgICAgICAgICAvKiAwOTI4ICovICAweDA3LCAweDA3LCAw
eEVGLCAweDJDLCAweDA0LCAweENGLCAweENBLCAweEM4LCAgLy8gLi4uLC4uLi4KICAgICAg
ICAgICAgICAgIC8qIDA5MzAgKi8gIDB4ODEsIDB4MDIsIDB4RjAsIDB4RDEsIDB4QkMsIDB4
QjcsIDB4RjEsIDB4RTMsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDkzOCAq
LyAgMHg1NiwgMHg1QywgMHgwRiwgMHg5MywgMHg4RCwgMHg5QywgMHhGRiwgMHhGRiwgIC8v
IFZcLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwOTQwICovICAweDQ3LCAweDBFLCAweDhF
LCAweDMzLCAweEFGLCAweDQ3LCAweDBFLCAweDNDLCAgLy8gRy4uMy5HLjwKICAgICAgICAg
ICAgICAgIC8qIDA5NDggKi8gIDB4MDcsIDB4MDcsIDB4NkYsIDB4RTQsIDB4RjAsIDB4NDYs
IDB4RUQsIDB4OTEsICAvLyAuLm8uLkYuLgogICAgICAgICAgICAgICAgLyogMDk1MCAqLyAg
MHg4MywgMHhFQiwgMHg5OCwgMHhFNywgMHg5MSwgMHhFMywgMHg1OCwgMHgwQywgIC8vIC4u
Li4uLlguCiAgICAgICAgICAgICAgICAvKiAwOTU4ICovICAweEZDLCAweDFBLCAweDE3LCAw
eEYxLCAweEE5LCAweDgwLCAweDhELCAweDA3LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg
ICAgIC8qIDA5NjAgKi8gIDB4Q0UsIDB4OEIsIDB4Q0MsIDB4NjMsIDB4MDcsIDB4Q0YsIDB4
OTAsIDB4M0MsICAvLyAuLi5jLi4uPAogICAgICAgICAgICAgICAgLyogMDk2OCAqLyAgMHg3
NiwgMHhGMCwgMHg5RiwgMHgyMiwgMHhGMSwgMHg2MywgMHg4NywgMHgzOSwgIC8vIHYuLiIu
Yy45CiAgICAgICAgICAgICAgICAvKiAwOTcwICovICAweDNDLCAweEQ4LCAweEEzLCAweDA3
LCAweEM3LCAweEZGLCAweDdGLCAweEY0LCAgLy8gPC4uLi4uLi4KICAgICAgICAgICAgICAg
IC8qIDA5NzggKi8gIDB4RTAsIDB4OTAsIDB4MzUsIDB4N0EsIDB4RjQsIDB4MzAsIDB4M0Ms
IDB4MUUsICAvLyAuLjV6LjA8LgogICAgICAgICAgICAgICAgLyogMDk4MCAqLyAgMHgxQywg
MHg3MiwgMHg5NywgMHhDMywgMHg0MSwgMHhDNiwgMHgzRiwgMHg0NywgIC8vIC5yLi5BLj9H
CiAgICAgICAgICAgICAgICAvKiAwOTg4ICovICAweDgwLCAweENBLCAweEM0LCAweEU5LCAw
eDBBLCAweEE4LCAweDhFLCAweDBFLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8q
IDA5OTAgKi8gIDB4RUUsIDB4RDgsIDB4ODEsIDB4QzcsIDB4RDEsIDB4MDYsIDB4MjYsIDB4
RUMsICAvLyAuLi4uLi4mLgogICAgICAgICAgICAgICAgLyogMDk5OCAqLyAgMHhFMSwgMHgx
RCwgMHhDQiwgMHgxMywgMHgwOSwgMHg3OCwgMHg1NSwgMHg5QywgIC8vIC4uLi4ueFUuCiAg
ICAgICAgICAgICAgICAvKiAwOUEwICovICAweDQ4LCAweDgwLCAweEQ2LCAweEZGLCAweEZG
LCAweDY4LCAweDAzLCAweDczLCAgLy8gSC4uLi5oLnMKICAgICAgICAgICAgICAgIC8qIDA5
QTggKi8gIDB4NzAsIDB4MzAsIDB4NDYsIDB4MEUsIDB4REMsIDB4MzAsIDB4NEYsIDB4RTks
ICAvLyBwMEYuLjBPLgogICAgICAgICAgICAgICAgLyogMDlCMCAqLyAgMHg5OSwgMHhGQywg
MHhDOCwgMHhDMSwgMHgzRSwgMHg1RSwgMHg4RiwgMHgxQywgIC8vIC4uLi4+Xi4uCiAgICAg
ICAgICAgICAgICAvKiAwOUI4ICovICAweDc4LCAweDBFLCAweDBFLCAweERFLCAweEM4LCAw
eDgxLCAweDA3LCAweEQ2LCAgLy8geC4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA5QzAg
Ki8gIDB4MDMsIDB4MzYsIDB4RjgsIDB4MkUsIDB4QkYsIDB4N0MsIDB4MEMsIDB4MEYsICAv
LyAuNi4uLnwuLgogICAgICAgICAgICAgICAgLyogMDlDOCAqLyAgMHhCRiwgMHhCOCwgMHg1
MywgMHhCRiwgMHhFRiwgMHhCRSwgMHgzRSwgMHg1QiwgIC8vIC4uUy4uLj5bCiAgICAgICAg
ICAgICAgICAvKiAwOUQwICovICAweEMzLCAweEZCLCAweEZGLCAweDlGLCAweEFELCAweDAx
LCAweDVGLCAweDA5LCAgLy8gLi4uLi4uXy4KICAgICAgICAgICAgICAgIC8qIDA5RDggKi8g
IDB4MUUsIDB4MkYsIDB4MjYsIDB4NTAsIDB4QzgsIDB4MTMsIDB4ODQsIDB4QzIsICAvLyAu
LyZQLi4uLgogICAgICAgICAgICAgICAgLyogMDlFMCAqLyAgMHgzRiwgMHgwNSwgMHgyOCwg
MHg4QywgMHg0RiwgMHg1NiwgMHgzRSwgMHg1QiwgIC8vID8uKC5PVj5bCiAgICAgICAgICAg
ICAgICAvKiAwOUU4ICovICAweEMzLCAweDNELCAweDQ2LCAweDFBLCAweDhFLCAweDFGLCAw
eDAyLCAweDdDLCAgLy8gLj1GLi4uLnwKICAgICAgICAgICAgICAgIC8qIDA5RjAgKi8gIDB4
NEMsIDB4NzgsIDB4MUQsIDB4M0IsIDB4OEUsIDB4NzMsIDB4NzksIDB4ODMsICAvLyBMeC47
LnN5LgogICAgICAgICAgICAgICAgLyogMDlGOCAqLyAgMHhGMCwgMHg4OCwgMHgxRSwgMHg3
RCwgMHg2MSwgMHg5QywgMHgyNCwgMHg3QywgIC8vIC4uLn1hLiR8CiAgICAgICAgICAgICAg
ICAvKiAwQTAwICovICAweDA1LCAweDYwLCAweEIzLCAweDdCLCAweDRFLCAweEYwLCAweEU4
LCAweDRDLCAgLy8gLmAue04uLkwKICAgICAgICAgICAgICAgIC8qIDBBMDggKi8gIDB4RTAs
IDB4NTEsIDB4MzAsIDB4MzQsIDB4N0UsIDB4NEEsIDB4NjAsIDB4ODcsICAvLyAuUTA0fkpg
LgogICAgICAgICAgICAgICAgLyogMEExMCAqLyAgMHgwNSwgMHg3RSwgMHgwQSwgMHhGMCwg
MHhCMSwgMHg4MiwgMHgwRCwgMHhGMCwgIC8vIC5+Li4uLi4uCiAgICAgICAgICAgICAgICAv
KiAwQTE4ICovICAweDY5LCAweEZCLCAweEJELCAweEQ1LCAweDEzLCAweDc5LCAweDczLCAw
eDc4LCAgLy8gaS4uLi55c3gKICAgICAgICAgICAgICAgIC8qIDBBMjAgKi8gIDB4NzIsIDB4
NjUsIDB4NDcsIDB4NjQsIDB4NDcsIDB4MzgsIDB4Q0IsIDB4ODIsICAvLyByZUdkRzguLgog
ICAgICAgICAgICAgICAgLyogMEEyOCAqLyAgMHgwQSwgMHhFNywgMHhBOSwgMHhERiwgMHgx
MCwgMHg4RiwgMHhEQywgMHg5OCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAw
QTMwICovICAweEUxLCAweEMzLCAweDQxLCAweDY2LCAweEJFLCAweDA2LCAweDQ1LCAweDYw
LCAgLy8gLi5BZi4uRWAKICAgICAgICAgICAgICAgIC8qIDBBMzggKi8gIDB4NUUsIDB4RUQs
IDB4N0QsIDB4MDYsIDB4RjAsIDB4MzUsIDB4MjcsIDB4QzQsICAvLyBeLn0uLjUnLgogICAg
ICAgICAgICAgICAgLyogMEE0MCAqLyAgMHg3OSwgMHhDNiwgMHgzMiwgMHhEMCwgMHg4MSwg
MHg0NCwgMHg3OCwgMHhCMiwgIC8vIHkuMi4uRHguCiAgICAgICAgICAgICAgICAvKiAwQTQ4
ICovICAweDc4LCAweDBELCAweEYwLCAweEMxLCAweDgyLCAweDlELCAweEI5LCAweEYxLCAg
Ly8geC4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBBNTAgKi8gIDB4RkYsIDB4RkYsIDB4
MzMsIDB4MzcsIDB4RUUsIDB4QjYsIDB4RUYsIDB4NzMsICAvLyAuLjM3Li4ucwogICAgICAg
ICAgICAgICAgLyogMEE1OCAqLyAgMHg3NiwgMHg4NCwgMHg4NywgMHgwRiwgMHgwRiwgMHgy
NCwgMHhDMiwgMHhFMywgIC8vIHYuLi4uJC4uCiAgICAgICAgICAgICAgICAvKiAwQTYwICov
ICAweEI2LCAweDExLCAweDlFLCAweEI0LCAweDdELCAweEU2LCAweEY2LCAweDY1LCAgLy8g
Li4uLn0uLmUKICAgICAgICAgICAgICAgIC8qIDBBNjggKi8gIDB4REIsIDB4NjAsIDB4QTEs
IDB4OEMsIDB4RjksIDB4RTQsIDB4RkQsIDB4RTAsICAvLyAuYC4uLi4uLgogICAgICAgICAg
ICAgICAgLyogMEE3MCAqLyAgMHg2RCwgMHhDNCwgMHg0NywgMHg2RSwgMHhDRiwgMHgyOSwg
MHg0NiwgMHhFOCwgIC8vIG0uR24uKUYuCiAgICAgICAgICAgICAgICAvKiAwQTc4ICovICAw
eDM3LCAweDZFLCAweDBGLCAweEMwLCAweDc4LCAweDg3LCAweEMyLCAweENFLCAgLy8gN24u
LnguLi4KICAgICAgICAgICAgICAgIC8qIDBBODAgKi8gIDB4RUQsIDB4RTAsIDB4MTQsIDB4
RjYsIDB4NDgsIDB4RDYsIDB4QjEsIDB4RDIsICAvLyAuLi4uSC4uLgogICAgICAgICAgICAg
ICAgLyogMEE4OCAqLyAgMHg5MSwgMHhFMCwgMHg1MSwgMHg4NywgMHgyOSwgMHg3RSwgMHhD
NCwgMHhGMCwgIC8vIC4uUS4pfi4uCiAgICAgICAgICAgICAgICAvKiAwQTkwICovICAweDMx
LCAweERELCAweDQ3LCAweDQ4LCAweDBGLCAweEUxLCAweDA4LCAweDlFLCAgLy8gMS5HSC4u
Li4KICAgICAgICAgICAgICAgIC8qIDBBOTggKi8gIDB4MkUsIDB4OUUsIDB4MEYsIDB4M0Ms
IDB4MDYsIDB4NzYsIDB4NzEsIDB4RjAsICAvLyAuLi48LnZxLgogICAgICAgICAgICAgICAg
LyogMEFBMCAqLyAgMHg4OSwgMHhDMCwgMHgwNywgMHgwNiwgMHhGQywgMHhDMSwgMHhFNCwg
MHg5MCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwQUE4ICovICAweDdELCAw
eDVDLCAweDgxLCAweDc1LCAweDZDLCAweEMxLCAweDhGLCAweEU4LCAgLy8gfVwudWwuLi4K
ICAgICAgICAgICAgICAgIC8qIDBBQjAgKi8gIDB4QjksIDB4MDQsIDB4RjYsIDB4MjksIDB4
OUUsIDB4MUQsIDB4NEMsIDB4N0MsICAvLyAuLi4pLi5MfAogICAgICAgICAgICAgICAgLyog
MEFCOCAqLyAgMHhCMCwgMHg0OCwgMHg2MCwgMHhGOSwgMHg4MywgMHg0MCwgMHg4RCwgMHhD
QywgIC8vIC5IYC4uQC4uCiAgICAgICAgICAgICAgICAvKiAwQUMwICovICAweEQwLCAweEJF
LCAweDZDLCAweEJDLCAweENDLCAweEZCLCAweDQ4LCAweEUwLCAgLy8gLi5sLi4uSC4KICAg
ICAgICAgICAgICAgIC8qIDBBQzggKi8gIDB4NjEsIDB4QjEsIDB4RTMsIDB4OEEsIDB4NEYs
IDB4RDYsIDB4RTAsIDB4MTgsICAvLyBhLi4uTy4uLgogICAgICAgICAgICAgICAgLyogMEFE
MCAqLyAgMHgwRiwgMHhGQywgMHg2MywgMHhDMCwgMHgzMywgMHg4OSwgMHhBNywgMHhFRiwg
IC8vIC4uYy4zLi4uCiAgICAgICAgICAgICAgICAvKiAwQUQ4ICovICAweEY5LCAweEZBLCAw
eDRDLCAweDhCLCAweDNELCAweEI3LCAweDgwLCAweEU1LCAgLy8gLi5MLj0uLi4KICAgICAg
ICAgICAgICAgIC8qIDBBRTAgKi8gIDB4MTIsIDB4QzEsIDB4Q0UsIDB4MTAsIDB4RkMsIDB4
RjYsIDB4QzMsIDB4MDksICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMEFFOCAq
LyAgMHhGQywgMHhGRiwgMHgzRiwgMHhCNSwgMHgwMCwgMHhFRSwgMHhCNCwgMHhCRiwgIC8v
IC4uPy4uLi4uCiAgICAgICAgICAgICAgICAvKiAwQUYwICovICAweDFELCAweDc0LCAweDBD
LCAweEIxLCAweDZFLCAweDEwLCAweEQ5LCAweDM4LCAgLy8gLnQuLm4uLjgKICAgICAgICAg
ICAgICAgIC8qIDBBRjggKi8gIDB4NDQsIDB4RDEsIDB4MTEsIDB4NUEsIDB4RkIsIDB4NjMs
IDB4NTksIDB4OTMsICAvLyBELi5aLmNZLgogICAgICAgICAgICAgICAgLyogMEIwMCAqLyAg
MHg4NSwgMHhBNywgMHgxNywgMHg0RSwgMHhEMCwgMHgzRSwgMHgxNiwgMHg1OCwgIC8vIC4u
Lk4uPi5YCiAgICAgICAgICAgICAgICAvKiAwQjA4ICovICAweDI5LCAweDhDLCAweEI0LCAw
eDNFLCAweDFGLCAweDM0LCAweDM2LCAweEMzLCAgLy8gKS4uPi40Ni4KICAgICAgICAgICAg
ICAgIC8qIDBCMTAgKi8gIDB4NUIsIDB4MUQsIDB4OEMsIDB4RTAsIDB4MEMsIDB4RTIsIDB4
RDMsIDB4OTQsICAvLyBbLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMEIxOCAqLyAgMHgw
MywgMHg0MSwgMHhFOCwgMHg2OCwgMHg4NSwgMHgzQiwgMHg5MSwgMHhGOSwgIC8vIC5BLmgu
Oy4uCiAgICAgICAgICAgICAgICAvKiAwQjIwICovICAweEFDLCAweDg0LCAweDQ5LCAweDcw
LCAweDhELCAweEE2LCAweDkzLCAweEYxLCAgLy8gLi5JcC4uLi4KICAgICAgICAgICAgICAg
IC8qIDBCMjggKi8gIDB4M0QsIDB4ODEsIDB4NjMsIDB4RkIsIDB4RTQsIDB4NjAsIDB4NjAs
IDB4NUYsICAvLyA9LmMuLmBgXwogICAgICAgICAgICAgICAgLyogMEIzMCAqLyAgMHg5OSwg
MHhFMCwgMHhBQSwgMHg4MSwgMHg0MywgMHg0MSwgMHhGQiwgMHg0MiwgIC8vIC4uLi5DQS5C
CiAgICAgICAgICAgICAgICAvKiAwQjM4ICovICAweEMyLCAweDRGLCAweDRFLCAweDYwLCAw
eENCLCAweDAyLCAweDIxLCAweDI3LCAgLy8gLk9OYC4uIScKICAgICAgICAgICAgICAgIC8q
IDBCNDAgKi8gIDB4MjcsIDB4MEEsIDB4RDQsIDB4MkMsIDB4M0MsIDB4NTksIDB4RkMsIDB4
RDEsICAvLyAnLi4sPFkuLgogICAgICAgICAgICAgICAgLyogMEI0OCAqLyAgMHgxRSwgMHg3
MywgMHg1RCwgMHhGMSwgMHg2OCwgMHgzQywgMHgzOCwgMHhFQywgIC8vIC5zXS5oPDguCiAg
ICAgICAgICAgICAgICAvKiAwQjUwICovICAweEZGLCAweDdGLCAweDcwLCAweDk4LCAweDUx
LCAweEMxLCAweDFBLCAweEI0LCAgLy8gLi5wLlEuLi4KICAgICAgICAgICAgICAgIC8qIDBC
NTggKi8gIDB4NzUsIDB4OEQsIDB4MEEsIDB4MzQsIDB4NDcsIDB4OTcsIDB4NjcsIDB4OTcs
ICAvLyB1Li40Ry5nLgogICAgICAgICAgICAgICAgLyogMEI2MCAqLyAgMHgwNCwgMHg3Mywg
MHhDQywgMHgwQSwgMHhBRCwgMHhFNCwgMHhBQSwgMHg0MywgIC8vIC5zLi4uLi5DCiAgICAg
ICAgICAgICAgICAvKiAwQjY4ICovICAweEU2LCAweEM0LCAweDZFLCAweDA1LCAweDUxLCAw
eEFCLCAweDlGLCAweDEzLCAgLy8gLi5uLlEuLi4KICAgICAgICAgICAgICAgIC8qIDBCNzAg
Ki8gIDB4QTgsIDB4NkYsIDB4MDcsIDB4OUUsIDB4MTMsIDB4RDgsIDB4NEUsIDB4MDgsICAv
LyAuby4uLi5OLgogICAgICAgICAgICAgICAgLyogMEI3OCAqLyAgMHg3MCwgMHhFRSwgMHgw
QywgMHg5OCwgMHgxMywgMHgwMiwgMHg3OCwgMHg4MywgIC8vIHAuLi4uLnguCiAgICAgICAg
ICAgICAgICAvKiAwQjgwICovICAweEQ5LCAweDM5LCAweDIxLCAweEMwLCAweDQzLCAweEYy
LCAweDA5LCAweDAxLCAgLy8gLjkhLkMuLi4KICAgICAgICAgICAgICAgIC8qIDBCODggKi8g
IDB4NUMsIDB4NDEsIDB4Q0UsIDB4M0EsIDB4RTgsIDB4RTMsIDB4MTQsIDB4MUIsICAvLyBc
QS46Li4uLgogICAgICAgICAgICAgICAgLyogMEI5MCAqLyAgMHhENywgMHhEQiwgMHg4Niwg
MHhDRiwgMHgxQSwgMHgzRSwgMHg3MiwgMHhGOCwgIC8vIC4uLi4uPnIuCiAgICAgICAgICAg
ICAgICAvKiAwQjk4ICovICAweDNBLCAweEU1LCAweEMxLCAweDgzLCAweDc1LCAweDlDLCAw
eDFFLCAweDNDLCAgLy8gOi4uLnUuLjwKICAgICAgICAgICAgICAgIC8qIDBCQTAgKi8gIDB4
RUMsIDB4RkYsIDB4RkYsIDB4MzUsIDB4MDcsIDB4QUYsIDB4RUYsIDB4MUMsICAvLyAuLi41
Li4uLgogICAgICAgICAgICAgICAgLyogMEJBOCAqLyAgMHgwMywgMHgwQSwgMHgyMCwgMHhE
RiwgMHg1QSwgMHg3QywgMHg0QSwgMHg3OSwgIC8vIC4uIC5afEp5CiAgICAgICAgICAgICAg
ICAvKiAwQkIwICovICAweDcyLCAweDYxLCAweDYzLCAweDc4LCAweDUwLCAweDMxLCAweDlB
LCAweEQxLCAgLy8gcmFjeFAxLi4KICAgICAgICAgICAgICAgIC8qIDBCQjggKi8gIDB4Rjks
IDB4RUQsIDB4RDAsIDB4QjcsIDB4MTAsIDB4N0UsIDB4QUIsIDB4RjcsICAvLyAuLi4uLn4u
LgogICAgICAgICAgICAgICAgLyogMEJDMCAqLyAgMHgwRCwgMHhDMiwgMHgyMCwgMHgzRSwg
MHgyMCwgMHgzOCwgMHhDQSwgMHg2NCwgIC8vIC4uID4gOC5kCiAgICAgICAgICAgICAgICAv
KiAwQkM4ICovICAweEQxLCAweDMzLCAweEYxLCAweEE1LCAweEM3LCAweDMzLCAweDNBLCAw
eEVDLCAgLy8gLjMuLi4zOi4KICAgICAgICAgICAgICAgIC8qIDBCRDAgKi8gIDB4MjAsIDB4
RTcsIDB4NjgsIDB4ODIsIDB4OTcsIDB4OEIsIDB4OTcsIDB4MjQsICAvLyAgLmguLi4uJAog
ICAgICAgICAgICAgICAgLyogMEJEOCAqLyAgMHg1OCwgMHg3NywgMHg5NiwgMHg5MCwgMHhD
RiwgMHgyQiwgMHg5RSwgMHg4NiwgIC8vIFh3Li4uKy4uCiAgICAgICAgICAgICAgICAvKiAw
QkUwICovICAweENGLCAweDA1LCAweEY4LCAweDEzLCAweDA4LCAweEJGLCAweDQwLCAweEY5
LCAgLy8gLi4uLi4uQC4KICAgICAgICAgICAgICAgIC8qIDBCRTggKi8gIDB4OEUsIDB4MDQs
IDB4QkUsIDB4REIsIDB4MjIsIDB4NkUsIDB4QjYsIDB4NjAsICAvLyAuLi4uIm4uYAogICAg
ICAgICAgICAgICAgLyogMEJGMCAqLyAgMHg4NCwgMHhDNywgMHg0NCwgMHhCRSwgMHgzMCwg
MHhBMCwgMHg4NiwgMHhDNywgIC8vIC4uRC4wLi4uCiAgICAgICAgICAgICAgICAvKiAwQkY4
ICovICAweDJGLCAweDA3LCAweDlFLCAweENGLCAweDMzLCAweEMyLCAweDUxLCAweDNFLCAg
Ly8gLy4uLjMuUT4KICAgICAgICAgICAgICAgIC8qIDBDMDAgKi8gIDB4RTAsIDB4RTAsIDB4
MzAsIDB4OUUsIDB4NjAsIDB4M0MsIDB4NDQsIDB4NUYsICAvLyAuLjAuYDxEXwogICAgICAg
ICAgICAgICAgLyogMEMwOCAqLyAgMHhFMCwgMHg2MCwgMHg0RCwgMHhFNCwgMHhBNCwgMHg3
RCwgMHg1QiwgMHgzOCwgIC8vIC5gTS4ufVs4CiAgICAgICAgICAgICAgICAvKiAwQzEwICov
ICAweEQ5LCAweEEwLCAweEVGLCAweDk5LCAweEVDLCAweDAyLCAweDA3LCAweEFDLCAgLy8g
Li4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBDMTggKi8gIDB4RkUsIDB4RkYsIDB4MTcs
IDB4MzgsIDB4MzAsIDB4MkEsIDB4NUQsIDB4MTAsICAvLyAuLi44MCpdLgogICAgICAgICAg
ICAgICAgLyogMEMyMCAqLyAgMHg4RCwgMHhCNiwgMHgyOCwgMHg0NSwgMHg1RSwgMHgxRSwg
MHg4NSwgMHhGMSwgIC8vIC4uKEVeLi4uCiAgICAgICAgICAgICAgICAvKiAwQzI4ICovICAw
eDg1LCAweDEwLCAweDcwLCAweDc0LCAweDhDLCAweEYwLCAweDAxLCAweDAwLCAgLy8gLi5w
dC4uLi4KICAgICAgICAgICAgICAgIC8qIDBDMzAgKi8gIDB4MUMsIDB4MzcsIDB4QTUsIDB4
MDcsIDB4MDAsIDB4NTgsIDB4RDcsIDB4ODUsICAvLyAuNy4uLlguLgogICAgICAgICAgICAg
ICAgLyogMEMzOCAqLyAgMHhBMywgMHg3RSwgMHg4MywgMHhDNiwgMHg5RCwgMHgwMiwgMHhF
MCwgMHhERSwgIC8vIC5+Li4uLi4uCiAgICAgICAgICAgICAgICAvKiAwQzQwICovICAweDA1
LCAweEUxLCAweDhGLCAweEY1LCAweDgxLCAweDI1LCAweEZDLCAweEFCLCAgLy8gLi4uLi4l
Li4KICAgICAgICAgICAgICAgIC8qIDBDNDggKi8gIDB4NDUsIDB4OEMsIDB4RjcsIDB4QkYs
IDB4RTAsIDB4Q0YsIDB4MzYsIDB4MEYsICAvLyBFLi4uLi42LgogICAgICAgICAgICAgICAg
LyogMEM1MCAqLyAgMHg4MSwgMHg0MSwgMHhDMiwgMHhCQywgMHgwNiwgMHg4NiwgMHg3QSwg
MHgxNywgIC8vIC5BLi4uLnouCiAgICAgICAgICAgICAgICAvKiAwQzU4ICovICAweEY0LCAw
eEZELCAweEU2LCAweDk5LCAweEQwLCAweDI4LCAweDkxLCAweERFLCAgLy8gLi4uLi4oLi4K
ICAgICAgICAgICAgICAgIC8qIDBDNjAgKi8gIDB4RDcsIDB4MUUsIDB4MDQsIDB4OEQsIDB4
NTIsIDB4MUIsIDB4QTQsIDB4NDYsICAvLyAuLi4uUi4uRgogICAgICAgICAgICAgICAgLyog
MEM2OCAqLyAgMHgxMiwgMHhEQiwgMHgyMCwgMHhFRiwgMHg4NSwgMHgwNiwgMHg4QSwgMHhG
MCwgIC8vIC4uIC4uLi4uCiAgICAgICAgICAgICAgICAvKiAwQzcwICovICAweEY4LCAweDc3
LCAweEZBLCAweEJFLCAweDBCLCAweDgyLCAweEZCLCAweEZGLCAgLy8gLncuLi4uLi4KICAg
ICAgICAgICAgICAgIC8qIDBDNzggKi8gIDB4N0YsIDB4MTcsIDB4MDQsIDB4MzgsIDB4NzUs
IDB4N0YsIDB4NjAsIDB4NzcsICAvLyAuLi44dS5gdwogICAgICAgICAgICAgICAgLyogMEM4
MCAqLyAgMHg0MSwgMHhDMCwgMHhEMiwgMHhGRiwgMHhGRiwgMHgyRSwgMHgwOCwgMHgyNiwg
IC8vIEEuLi4uLi4mCiAgICAgICAgICAgICAgICAvKiAwQzg4ICovICAweEI1LCAweEQ3LCAw
eDNGLCAweDdBLCAweEZCLCAweEYzLCAweDVELCAweDEwLCAgLy8gLi4/ei4uXS4KICAgICAg
ICAgICAgICAgIC8qIDBDOTAgKi8gIDB4QTcsIDB4RkIsIDB4Q0QsIDB4QTAsIDB4QzksIDB4
QzIsIDB4QkIsIDB4MDcsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMEM5OCAq
LyAgMHhGQSwgMHgyRSwgMHhDOCwgMHg1NSwgMHhDMiwgMHg0OCwgMHgwMSwgMHg4RCwgIC8v
IC4uLlUuSC4uCiAgICAgICAgICAgICAgICAvKiAwQ0EwICovICAweDhFLCAweDRELCAweDND
LCAweEYzLCAweEE5LCAweDg0LCAweDgyLCAweDE4LCAgLy8gLk08Li4uLi4KICAgICAgICAg
ICAgICAgIC8qIDBDQTggKi8gIDB4RDAsIDB4NzcsIDB4NDEsIDB4QzAsIDB4Q0YsIDB4QjUs
IDB4MEIsIDB4NTgsICAvLyAud0EuLi4uWAogICAgICAgICAgICAgICAgLyogMENCMCAqLyAg
MHg0OCwgMHhEQywgMHhBQSwgMHgyNiwgMHhDQywgMHg0NSwgMHhDMSwgMHg2OCwgIC8vIEgu
LiYuRS5oCiAgICAgICAgICAgICAgICAvKiAwQ0I4ICovICAweEMyLCAweDA2LCAweEYxLCAw
eDM4LCAweDNELCAweDYxLCAweDVGLCAweEZGLCAgLy8gLi4uOD1hXy4KICAgICAgICAgICAg
ICAgIC8qIDBDQzAgKi8gIDB4NzAsIDB4QTMsIDB4RjQsIDB4MjEsIDB4MTEsIDB4RTYsIDB4
Q0QsIDB4MEIsICAvLyBwLi4hLi4uLgogICAgICAgICAgICAgICAgLyogMENDOCAqLyAgMHhF
QywgMHhDMywgMHhGMSwgMHg5NSwgMHhDMywgMHhGRiwgMHhGRiwgMHgyQiwgIC8vIC4uLi4u
Li4rCiAgICAgICAgICAgICAgICAvKiAwQ0QwICovICAweDIwLCAweDk4LCAweDA4LCAweDg2
LCAweDE5LCAweDE4LCAweEZBLCAweDYyLCAgLy8gIC4uLi4uLmIKICAgICAgICAgICAgICAg
IC8qIDBDRDggKi8gIDB4RTQsIDB4NkIsIDB4MjIsIDB4OEMsIDB4NjEsIDB4ODEsIDB4RkQs
IDB4Q0EsICAvLyAuayIuYS4uLgogICAgICAgICAgICAgICAgLyogMENFMCAqLyAgMHhFMCwg
MHg2MSwgMHg4MSwgMHgyRiwgMHhENCwgMHhGNSwgMHgwMSwgMHg3RCwgIC8vIC5hLi8uLi59
CiAgICAgICAgICAgICAgICAvKiAwQ0U4ICovICAweDVCLCAweEYxLCAweDZELCAweDA0LCAw
eDE3LCAweEUyLCAweEZDLCAweDQwLCAgLy8gWy5tLi4uLkAKICAgICAgICAgICAgICAgIC8q
IDBDRjAgKi8gIDB4MDcsIDB4MDUsIDB4QUUsIDB4QUIsIDB4MjIsIDB4NkUsIDB4NkMsIDB4
RjAsICAvLyAuLi4uIm5sLgogICAgICAgICAgICAgICAgLyogMENGOCAqLyAgMHhDRSwgMHg4
QSwgMHhFMCwgMHhCQiwgMHhDOSwgMHgwMSwgMHg4RiwgMHhBMCwgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICAvKiAwRDAwICovICAweDM3LCAweDM5LCAweEEwLCAweEYyLCAweEZG
LCAweEJGLCAweEM5LCAweEMxLCAgLy8gNzkuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBE
MDggKi8gIDB4QjksIDB4NzksIDB4MDEsIDB4REYsIDB4RjgsIDB4QUYsIDB4MTIsIDB4NUYs
ICAvLyAueS4uLi4uXwogICAgICAgICAgICAgICAgLyogMEQxMCAqLyAgMHgxQiwgMHhCRCwg
MHgxRSwgMHg4NSwgMHg1QywgMHgxOSwgMHg4NSwgMHhGMSwgIC8vIC4uLi5cLi4uCiAgICAg
ICAgICAgICAgICAvKiAwRDE4ICovICAweDI1LCAweDBFLCAweDcwLCAweDg0LCAweEZELCAw
eDUyLCAweDA4LCAweEVFLCAgLy8gJS5wLi5SLi4KICAgICAgICAgICAgICAgIC8qIDBEMjAg
Ki8gIDB4RDEsIDB4MzAsIDB4MTgsIDB4NUYsIDB4Q0QsIDB4RjgsIDB4RTUsIDB4MEQsICAv
LyAuMC5fLi4uLgogICAgICAgICAgICAgICAgLyogMEQyOCAqLyAgMHgyRSwgMHhFMiwgMHg3
QiwgMHhEQiwgMHg3MywgMHhDNywgMHhEMywgMHg0NiwgIC8vIC4uey5zLi5GCiAgICAgICAg
ICAgICAgICAvKiAwRDMwICovICAweDkwLCAweDEwLCAweDZGLCAweDU2LCAweDJGLCAweDEx
LCAweDhGLCAweDZFLCAgLy8gLi5vVi8uLm4KICAgICAgICAgICAgICAgIC8qIDBEMzggKi8g
IDB4QkUsIDB4QjYsIDB4NDUsIDB4NzgsIDB4N0UsIDB4MzMsIDB4NEEsIDB4QjgsICAvLyAu
LkV4fjNKLgogICAgICAgICAgICAgICAgLyogMEQ0MCAqLyAgMHgwOCwgMHgyRiwgMHg2RCwg
MHg1MSwgMHhERSwgMHhEMywgMHg5RSwgMHhERSwgIC8vIC4vbVEuLi4uCiAgICAgICAgICAg
ICAgICAvKiAwRDQ4ICovICAweDdDLCAweEVFLCAweDg4LCAweEYyLCAweEU2LCAweDY2LCAw
eEJDLCAweDMwLCAgLy8gfC4uLi5mLjAKICAgICAgICAgICAgICAgIC8qIDBENTAgKi8gIDB4
QTEsIDB4ODMsIDB4ODQsIDB4OEIsIDB4MTQsIDB4MkQsIDB4QjgsIDB4MjcsICAvLyAuLi4u
Li0uJwogICAgICAgICAgICAgICAgLyogMEQ1OCAqLyAgMHhFRCwgMHg2MSwgMHg2MywgMHhG
RSwgMHhGRiwgMHg5NywgMHgzNywgMHg3MCwgIC8vIC5hYy4uLjdwCiAgICAgICAgICAgICAg
ICAvKiAwRDYwICovICAweDQ5LCAweEJCLCAweEJDLCAweDAxLCAweDM0LCAweDM5LCAweDM1
LCAweEUwLCAgLy8gSS4uLjQ5NS4KICAgICAgICAgICAgICAgIC8qIDBENjggKi8gIDB4MkUs
IDB4NkYsIDB4NjAsIDB4QjksIDB4REIsIDB4NjMsIDB4NkYsIDB4MEQsICAvLyAub2AuLmNv
LgogICAgICAgICAgICAgICAgLyogMEQ3MCAqLyAgMHhGOCwgMHhEQiwgMHgxQiwgMHg3MCwg
MHhGQiwgMHhGRiwgMHhERiwgMHhERSwgIC8vIC4uLnAuLi4uCiAgICAgICAgICAgICAgICAv
KiAwRDc4ICovICAweDgwLCAweDlGLCAweEEwLCAweDBCLCAweDFCLCAweDE1LCAweDAzLCAw
eEEyLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBEODAgKi8gIDB4REIsIDB4
MUIsIDB4RTcsIDB4QjAsIDB4RDQsIDB4RTcsIDB4ODAsIDB4NjYsICAvLyAuLi4uLi4uZgog
ICAgICAgICAgICAgICAgLyogMEQ4OCAqLyAgMHgwQiwgMHhGQiwgMHgzMCwgMHhDMSwgMHhF
RSwgMHg2RiwgMHhGQywgMHhFNCwgIC8vIC4uMC4uby4uCiAgICAgICAgICAgICAgICAvKiAw
RDkwICovICAweDY1LCAweDU5LCAweEY3LCAweDM3LCAweDk0LCAweDEwLCAweDE4LCAweEMx
LCAgLy8gZVkuNy4uLi4KICAgICAgICAgICAgICAgIC8qIDBEOTggKi8gIDB4MTksIDB4QzQs
IDB4ODAsIDB4NEUsIDB4MDksIDB4MjEsIDB4MUIsIDB4ODcsICAvLyAuLi5OLiEuLgogICAg
ICAgICAgICAgICAgLyogMERBMCAqLyAgMHgwNSwgMHhENCwgMHg0OCwgMHgzQywgMHgwRCwg
MHg1OCwgMHg1NywgMHgwQiwgIC8vIC4uSDwuWFcuCiAgICAgICAgICAgICAgICAvKiAwREE4
ICovICAweEMzLCAweDA0LCAweDRBLCAweDMwLCAweENCLCAweDI5LCAweDFDLCAweEE0LCAg
Ly8gLi5KMC4pLi4KICAgICAgICAgICAgICAgIC8qIDBEQjAgKi8gIDB4MDQsIDB4QkUsIDB4
MDcsIDB4QkMsIDB4MzQsIDB4QzAsIDB4OUUsIDB4QzcsICAvLyAuLi4uNC4uLgogICAgICAg
ICAgICAgICAgLyogMERCOCAqLyAgMHg1MywgMHg0MywgMHhENSwgMHg2MywgMHhEMSwgMHg2
MSwgMHhDMiwgMHhFQSwgIC8vIFNDLmMuYS4uCiAgICAgICAgICAgICAgICAvKiAwREMwICov
ICAweDhFLCAweDAwLCAweEU4LCAweDU5LCAweEMxLCAweEJGLCAweDkwLCAweDAzLCAgLy8g
Li4uWS4uLi4KICAgICAgICAgICAgICAgIC8qIDBEQzggKi8gIDB4REIsIDB4RkYsIDB4RkYs
IDB4ODUsIDB4MUMsIDB4MzgsIDB4OUQsIDB4RTMsICAvLyAuLi4uLjguLgogICAgICAgICAg
ICAgICAgLyogMEREMCAqLyAgMHhDMCwgMHg3MSwgMHgyMSwgMHgwNywgMHg1RSwgMHhDMSwg
MHhDRSwgMHg1RCwgIC8vIC5xIS5eLi5dCiAgICAgICAgICAgICAgICAvKiAwREQ4ICovICAw
eDQwLCAweEVGLCAweEIwLCAweDA0LCAweDdDLCAweDgyLCAweDNDLCAweDgyLCAgLy8gQC4u
LnwuPC4KICAgICAgICAgICAgICAgIC8qIDBERTAgKi8gIDB4NEMsIDB4QTAsIDB4QTgsIDB4
RUIsIDB4OTAsIDB4NzQsIDB4MTgsIDB4RDQsICAvLyBMLi4uLnQuLgogICAgICAgICAgICAg
ICAgLyogMERFOCAqLyAgMHg3OSwgMHgwQiwgMHg3OCwgMHhGRSwgMHhGRiwgMHhDRiwgMHg1
QiwgMHhFMCwgIC8vIHkueC4uLlsuCiAgICAgICAgICAgICAgICAvKiAwREYwICovICAweDBF
LCAweDcyLCAweDc0LCAweDAzLCAweEU1LCAweDAwLCAweDBDLCAweDEzLCAgLy8gLnJ0Li4u
Li4KICAgICAgICAgICAgICAgIC8qIDBERjggKi8gIDB4MjMsIDB4Q0EsIDB4MjEsIDB4N0Is
IDB4REMsIDB4MzAsIDB4ODEsIDB4OUUsICAvLyAjLiF7LjAuLgogICAgICAgICAgICAgICAg
LyogMEUwMCAqLyAgMHgwNywgMHg3QywgMHg5MiwgMHgzMSwgMHg0QSwgMHhBNCwgMHhDMCwg
MHhCRSwgIC8vIC58LjFKLi4uCiAgICAgICAgICAgICAgICAvKiAwRTA4ICovICAweDNDLCAw
eEY4LCAweDJBLCAweEUzLCAweEUzLCAweDgxLCAweEExLCAweDNDLCAgLy8gPC4qLi4uLjwK
ICAgICAgICAgICAgICAgIC8qIDBFMTAgKi8gIDB4OEQsIDB4NTAsIDB4OUUsIDB4NkQsIDB4
MzAsIDB4REYsIDB4MTIsIDB4N0MsICAvLyAuUC5tMC4ufAogICAgICAgICAgICAgICAgLyog
MEUxOCAqLyAgMHhGRSwgMHg4MiwgMHg3RCwgMHhERCwgMHhGMiwgMHgwRCwgMHhFQiwgMHhB
NCwgIC8vIC4ufS4uLi4uCiAgICAgICAgICAgICAgICAvKiAwRTIwICovICAweEMzLCAweDNG
LCAweDgwLCAweDE5LCAweEUzLCAweEJELCAweDJCLCAweDQ4LCAgLy8gLj8uLi4uK0gKICAg
ICAgICAgICAgICAgIC8qIDBFMjggKi8gIDB4NkIsIDB4NzcsIDB4NzAsIDB4NzIsIDB4RkUs
IDB4RjIsIDB4NkMsIDB4NEUsICAvLyBrd3ByLi5sTgogICAgICAgICAgICAgICAgLyogMEUz
MCAqLyAgMHhEQSwgMHgyOCwgMHgwNywgMHhGMywgMHhFQSwgMHhFNSwgMHg0MywgMHg5OCwg
IC8vIC4oLi4uLkMuCiAgICAgICAgICAgICAgICAvKiAwRTM4ICovICAweDYxLCAweDlGLCAw
eEMxLCAweDlFLCAweDc0LCAweDBDLCAweEYyLCAweDI0LCAgLy8gYS4uLnQuLiQKICAgICAg
ICAgICAgICAgIC8qIDBFNDAgKi8gIDB4NkUsIDB4OTgsIDB4RjgsIDB4MjEsIDB4MjMsIDB4
MDYsIDB4NzksIDB4RkUsICAvLyBuLi4hIy55LgogICAgICAgICAgICAgICAgLyogMEU0OCAq
LyAgMHgwMiwgMHg2RiwgMHhBMCwgMHg1NywgMHg4MCwgMHg0RSwgMHgzMCwgMHgzRSwgIC8v
IC5vLlcuTjA+CiAgICAgICAgICAgICAgICAvKiAwRTUwICovICAweDdGLCAweDAxLCAweDNF
LCAweEZFLCAweEZGLCAweEU3LCAweDJGLCAweEMwLCAgLy8gLi4+Li4uLy4KICAgICAgICAg
ICAgICAgIC8qIDBFNTggKi8gIDB4ODcsIDB4RUMsIDB4NjcsIDB4ODQsIDB4OEUsIDB4NEUs
IDB4RkMsIDB4ODgsICAvLyAuLmcuLk4uLgogICAgICAgICAgICAgICAgLyogMEU2MCAqLyAg
MHgwNCwgMHgxRSwgMHg3MSwgMHhEMCwgMHgzQSwgMHhBOCwgMHg1QSwgMHhENCwgIC8vIC4u
cS46LlouCiAgICAgICAgICAgICAgICAvKiAwRTY4ICovICAweEY5LCAweDAyLCAweDc1LCAw
eEQ4LCAweEYwLCAweEY5LCAweDgyLCAweDVELCAgLy8gLi51Li4uLl0KICAgICAgICAgICAg
ICAgIC8qIDBFNzAgKi8gIDB4NTksIDB4RjksIDB4MDksIDB4MDUsIDB4NzMsIDB4QkMsIDB4
MDAsIDB4N0MsICAvLyBZLi4ucy4ufAogICAgICAgICAgICAgICAgLyogMEU3OCAqLyAgMHg5
QywgMHg2NywgMHhFMSwgMHhGRCwgMHg1OSwgMHg3QywgMHg5NSwgMHgwMiwgIC8vIC5nLi5Z
fC4uCiAgICAgICAgICAgICAgICAvKiAwRTgwICovICAweDZFLCAweDY3LCAweDFDLCAweEZG
LCAweEZGLCAweEFGLCAweEY5LCAweEUwLCAgLy8gbmcuLi4uLi4KICAgICAgICAgICAgICAg
IC8qIDBFODggKi8gIDB4M0UsIDB4REEsIDB4MDEsIDB4MkUsIDB4MDcsIDB4QzMsIDB4MTUs
IDB4REEsICAvLyA+Li4uLi4uLgogICAgICAgICAgICAgICAgLyogMEU5MCAqLyAgMHhGNCwg
MHhBOSwgMHhEMSwgMHhBOCwgMHg1NSwgMHg4MywgMHgzMiwgMHgzNSwgIC8vIC4uLi5VLjI1
CiAgICAgICAgICAgICAgICAvKiAwRTk4ICovICAweENBLCAweDM0LCAweEE4LCAweEQ1LCAw
eEE3LCAweDUyLCAweDYzLCAweEM2LCAgLy8gLjQuLi5SYy4KICAgICAgICAgICAgICAgIC8q
IDBFQTAgKi8gIDB4RUMsIDB4NDIsIDB4NDksIDB4REUsIDB4QkIsIDB4NDAsIDB4QTcsIDB4
MjgsICAvLyAuQkkuLkAuKAogICAgICAgICAgICAgICAgLyogMEVBOCAqLyAgMHhGMiwgMHg5
MiwgMHgxMCwgMHg4OCwgMHg4NSwgMHgzRCwgMHgwQiwgMHgwNCwgIC8vIC4uLi4uPS4uCiAg
ICAgICAgICAgICAgICAvKiAwRUIwICovICAweEUyLCAweDY4LCAweDhGLCAweDE0LCAweDFE
LCAweDIyLCAweDFDLCAweDg4LCAgLy8gLmguLi4iLi4KICAgICAgICAgICAgICAgIC8qIDBF
QjggKi8gIDB4NUUsIDB4MjcsIDB4MTMsIDB4NjIsIDB4MDIsIDB4ODQsIDB4NDUsIDB4MDcs
ICAvLyBeJy5iLi5FLgogICAgICAgICAgICAgICAgLyogMEVDMCAqLyAgMHhBMSwgMHhEMiwg
MHg5RiwgMHgxRCwgMHgwMiwgMHhCNCwgMHhGOCwgMHg2NywgIC8vIC4uLi4uLi5nCiAgICAg
ICAgICAgICAgICAvKiAwRUM4ICovICAweDlELCAweEMwLCAweDA4LCAweDA4LCAweEQ3LCAw
eDAxLCAweEMyLCAweDIyLCAgLy8gLi4uLi4uLiIKICAgICAgICAgICAgICAgIC8qIDBFRDAg
Ki8gIDB4QkMsIDB4MDYsIDB4MDQsIDB4RTgsIDB4MTgsIDB4NEEsIDB4ODAsIDB4OTgsICAv
LyAuLi4uLkouLgogICAgICAgICAgICAgICAgLyogMEVEOCAqLyAgMHg4OCwgMHg3NywgMHhC
OCwgMHg0MCwgMHhBQywgMHhDMSwgMHhDQSwgMHgyMSwgIC8vIC53LkAuLi4hCiAgICAgICAg
ICAgICAgICAvKiAwRUUwICovICAweDVCLCAweEU3LCAweDEwLCAweDgzLCAweDA4LCAweEM4
LCAweDI5LCAweDgwLCAgLy8gWy4uLi4uKS4KICAgICAgICAgICAgICAgIC8qIDBFRTggKi8g
IDB4NjgsIDB4MjQsIDB4MjAsIDB4MkEsIDB4NDYsIDB4MEIsIDB4MTAsIDB4NTMsICAvLyBo
JCAqRi4uUwogICAgICAgICAgICAgICAgLyogMEVGMCAqLyAgMHgwNiwgMHgyMiwgMHgyMCwg
MHhBNywgMHgwMywgMHhBMiwgMHg1MSwgMHg4MSwgIC8vIC4iIC4uLlEuCiAgICAgICAgICAg
ICAgICAvKiAwRUY4ICovICAweEE4LCAweDQ4LCAweDJGLCAweDQwLCAweDRDLCAweDMxLCAw
eDg4LCAweDgwLCAgLy8gLkgvQEwxLi4KICAgICAgICAgICAgICAgIC8qIDBGMDAgKi8gIDB4
QUMsIDB4RUUsIDB4NEQsIDB4MjAsIDB4MjAsIDB4NkIsIDB4MDUsIDB4MTEsICAvLyAuLk0g
IGsuLgogICAgICAgICAgICAgICAgLyogMEYwOCAqLyAgMHg5MCwgMHg5MywgMHg5QSwgMHgx
OSwgMHgwRSwgMHg0QiwgMHhFOSwgMHgwNiwgIC8vIC4uLi4uSy4uCiAgICAgICAgICAgICAg
ICAvKiAwRjEwICovICAweEUyLCAweEZGLCAweDFGLCAweEM4LCAweDFBLCAweDVGLCAweDAy
LCAweDAyLCAgLy8gLi4uLi5fLi4KICAgICAgICAgICAgICAgIC8qIDBGMTggKi8gIDB4QjEs
IDB4NDQsIDB4M0QsIDB4QTAsIDB4NEMsIDB4MkYsIDB4ODgsIDB4NDAsICAvLyAuRD0uTC8u
QAogICAgICAgICAgICAgICAgLyogMEYyMCAqLyAgMHgwOSwgMHgxMCwgMHg4RCwgMHgwRCwg
MHg0NCwgMHg0MywgMHhGQSwgMHgwMSwgIC8vIC4uLi5EQy4uCiAgICAgICAgICAgICAgICAv
KiAwRjI4ICovICAweDYyLCAweDkxLCAweDQxLCAweDM0LCAweDUwLCAweEYyLCAweDJFLCAw
eDExLCAgLy8gYi5BNFAuLi4KICAgICAgICAgICAgICAgIC8qIDBGMzAgKi8gIDB4OTAsIDB4
ODMsIDB4ODAsIDB4MDgsIDB4QzgsIDB4RTEsIDB4MEQsIDB4MEQsICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAgICAgLyogMEYzOCAqLyAgMHg4MywgMHhDNSwgMHg3NiwgMHgwNCwgMHhD
NCwgMHg0NCwgMHhCRiwgMHhBQywgIC8vIC4udi4uRC4uCiAgICAgICAgICAgICAgICAvKiAw
RjQwICovICAweDA0LCAweDYyLCAweEYxLCAweDk2LCAweDQwLCAweDk4LCAweDM4LCAweDRG
LCAgLy8gLmIuLkAuOE8KICAgICAgICAgICAgICAgIC8qIDBGNDggKi8gIDB4ODAsIDB4NEMs
IDB4OTYsIDB4MjksIDB4MjAsIDB4MTYsIDB4MEEsIDB4ODQsICAvLyAuTC4pIC4uLgogICAg
ICAgICAgICAgICAgLyogMEY1MCAqLyAgMHhBQiwgMHgwMiwgMHg2MSwgMHhEMiwgMHg3NCwg
MHgwRCwgMHg4OSwgMHhGRSwgIC8vIC4uYS50Li4uCiAgICAgICAgICAgICAgICAvKiAwRjU4
ICovICAweDlGLCAweDgzLCAweDEwLCAweEE5LCAweEVGLCAweDE3LCAweDBELCAweDg1LCAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBGNjAgKi8gIDB4QkMsIDB4NzAsIDB4
ODMsIDB4MTAsIDB4RjksIDB4N0YsIDB4NzUsIDB4ODEsICAvLyAucC4uLi51LgogICAgICAg
ICAgICAgICAgLyogMEY2OCAqLyAgMHgzOCwgMHhEMCwgMHgxNywgMHgzNywgMHgwOCwgMHg4
OSwgMHhGOCwgMHgyNCwgIC8vIDguLjcuLi4kCiAgICAgICAgICAgICAgICAvKiAwRjcwICov
ICAweEQyLCAweDcwLCAweEM4LCAweDEzLCAweDI5LCAweDA4LCAweDkxLCAweEY0LCAgLy8g
LnAuLikuLi4KICAgICAgICAgICAgICAgIC8qIDBGNzggKi8gIDB4M0QsIDB4M0EsIDB4NjAs
IDB4RjYsIDB4MTYsIDB4MTcsIDB4ODgsIDB4NjUsICAvLyA9OmAuLi4uZQogICAgICAgICAg
ICAgICAgLyogMEY4MCAqLyAgMHg3RiwgMHg4NywgMHgwNCwgMHhFMiwgMHhEMCwgMHhDRiwg
MHg4RSwgMHhDMywgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwRjg4ICovICAw
eDIxLCAweDIyLCAweEVDLCAweDFELCAweDA3LCAweDI4LCAweDA4LCAweEQ1LCAgLy8gISIu
Li4oLi4KICAgICAgICAgICAgICAgIC8qIDBGOTAgKi8gIDB4RUUsIDB4NkYsIDB4ODAsIDB4
MTQsIDB4NDQsIDB4NDAsIDB4NTYsIDB4RjEsICAvLyAuby4uREBWLgogICAgICAgICAgICAg
ICAgLyogMEY5OCAqLyAgMHhBMiwgMHgxMywgMHg5MCwgMHgyNSwgMHg4MSwgMHgwOCwgMHhD
OCwgMHg2MSwgIC8vIC4uLiUuLi5hCiAgICAgICAgICAgICAgICAvKiAwRkEwICovICAweDgw
LCAweDY4LCAweDMyLCAweDIwLCAweEFBLCAweEVFLCAweDMzLCAweDExLCAgLy8gLmgyIC4u
My4KICAgICAgICAgICAgICAgIC8qIDBGQTggKi8gIDB4ODgsIDB4NDgsIDB4MDUsIDB4RDEs
IDB4QTAsIDB4MDksIDB4MTAsIDB4NEQsICAvLyAuSC4uLi4uTQogICAgICAgICAgICAgICAg
LyogMEZCMCAqLyAgMHgwQywgMHg0NCwgMHhEMywgMHgyOSwgMHgwNCwgMHg2MiwgMHg1OSwg
MHg0MSwgIC8vIC5ELikuYllBCiAgICAgICAgICAgICAgICAvKiAwRkI4ICovICAweDA0LCAw
eDY0LCAweEQ1LCAweERGLCAweDI5LCAweDBELCAweEM3LCAweERBLCAgLy8gLmQuLikuLi4K
ICAgICAgICAgICAgICAgIC8qIDBGQzAgKi8gIDB4MzUsIDB4MDIsIDB4QjEsIDB4RTQsIDB4
MjAsIDB4MzQsIDB4RjIsIDB4RDMsICAvLyA1Li4uIDQuLgogICAgICAgICAgICAgICAgLyog
MEZDOCAqLyAgMHg0MywgMHhBMCwgMHhDRSwgMHgwRiwgMHgyMiwgMHgyMCwgMHgwNywgMHg3
RSwgIC8vIEMuLi4iIC5+CiAgICAgICAgICAgICAgICAvKiAwRkQwICovICAweEE1LCAweDA5
LCAweEM4LCAweEYxLCAweDQxLCAweDM0LCAweDc4LCAweEEyLCAgLy8gLi4uLkE0eC4KICAg
ICAgICAgICAgICAgIC8qIDBGRDggKi8gIDB4MTIsIDB4ODgsIDB4NDUsIDB4MDEsIDB4RDEs
IDB4MzAsIDB4ODksIDB4NEIsICAvLyAuLkUuLjAuSwogICAgICAgICAgICAgICAgLyogMEZF
MCAqLyAgMHgyMCwgMHgyNiwgMHgxMCwgMHg0NCwgMHg0MCwgMHg4RSwgMHhGNywgMHhEOCwg
IC8vICAmLkRALi4uCiAgICAgICAgICAgICAgICAvKiAwRkU4ICovICAweDM4LCAweDBDLCAw
eDEyLCAweEVBLCAweDE5LCAweDEyLCAweDkwLCAweEY5LCAgLy8gOC4uLi4uLi4KICAgICAg
ICAgICAgICAgIC8qIDBGRjAgKi8gIDB4M0MsIDB4NTAsIDB4NTAsIDB4QTMsIDB4QTAsIDB4
NEMsIDB4MUIsIDB4ODgsICAvLyA8UFAuLkwuLgogICAgICAgICAgICAgICAgLyogMEZGOCAq
LyAgMHg4MCwgMHgyQywgMHhFRiwgMHhFOSwgMHgxMSwgMHg4OCwgMHg4OCwgMHgwNSwgIC8v
IC4sLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAxMDAwICovICAweDExLCAweDkwLCAweEMz
LCAweEZELCAweDNELCAweDA0LCAweEVFLCAweEM4LCAgLy8gLi4uLj0uLi4KICAgICAgICAg
ICAgICAgIC8qIDEwMDggKi8gIDB4M0YsIDB4OTAsIDB4NDAsIDB4NDQsIDB4QjAsIDB4NTYs
IDB4ODgsIDB4RkYsICAvLyA/LkBELlYuLgogICAgICAgICAgICAgICAgLyogMTAxMCAqLyAg
MHhGRiwgMHg0MywgMHgwMCwgMHg3OSwgMHhBNCwgMHgwNCwgMHgyMSwgMHhGRiwgIC8vIC5D
LnkuLiEuCiAgICAgICAgICAgICAgICAvKiAxMDE4ICovICAweDdGICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICB9KQogICAg
ICAgIH0KCiAgICAgICAgRGV2aWNlIChXTUk2KQogICAgICAgIHsKICAgICAgICAgICAgTmFt
ZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMxNCIpIC8qIFdpbmRvd3MgTWFuYWdlbWVudCBJbnN0
cnVtZW50YXRpb24gRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAg
ICAgTmFtZSAoX1VJRCwgMHgwNikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBO
YW1lIChfV0RHLCBCdWZmZXIgKDB4NzgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IC8qIDAwMDAgKi8gIDB4OUYsIDB4MUMsIDB4ODYsIDB4MjYsIDB4RTksIDB4NDcsIDB4QzQs
IDB4NDQsICAvLyAuLi4mLkcuRAogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHhCRCwg
MHg4QiwgMHhERiwgMHhFNywgMHhGQSwgMHgyNiwgMHgxMCwgMHhGRSwgIC8vIC4uLi4uJi4u
CiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDQ0LCAweDMwLCAweDAxLCAweDA2LCAw
eDBBLCAweDE4LCAweEEzLCAweDlBLCAgLy8gRDAuLi4uLi4KICAgICAgICAgICAgICAgIC8q
IDAwMTggKi8gIDB4NTAsIDB4OTcsIDB4RjcsIDB4NDEsIDB4QjksIDB4RjcsIDB4RDUsIDB4
RDMsICAvLyBQLi5BLi4uLgogICAgICAgICAgICAgICAgLyogMDAyMCAqLyAgMHhCMSwgMHhC
QSwgMHhDMywgMHhDRSwgMHg0NCwgMHgzMSwgMHgwMSwgMHgwNiwgIC8vIC4uLi5EMS4uCiAg
ICAgICAgICAgICAgICAvKiAwMDI4ICovICAweEE3LCAweDM5LCAweEJDLCAweEIyLCAweERE
LCAweDc4LCAweDcxLCAweDRELCAgLy8gLjkuLi54cU0KICAgICAgICAgICAgICAgIC8qIDAw
MzAgKi8gIDB4QjAsIDB4NTksIDB4QTUsIDB4MTAsIDB4REUsIDB4QzQsIDB4NDgsIDB4OTAs
ICAvLyAuWS4uLi5ILgogICAgICAgICAgICAgICAgLyogMDAzOCAqLyAgMHg0NCwgMHgzMiwg
MHgwMSwgMHgwNiwgMHgwRCwgMHg1OSwgMHhFOCwgMHgwRCwgIC8vIEQyLi4uWS4uCiAgICAg
ICAgICAgICAgICAvKiAwMDQwICovICAweDEwLCAweDU1LCAweDQ0LCAweDQwLCAweDk2LCAw
eDIxLCAweDc3LCAweEMyLCAgLy8gLlVEQC4hdy4KICAgICAgICAgICAgICAgIC8qIDAwNDgg
Ki8gIDB4MjcsIDB4RjUsIDB4QTcsIDB4MEQsIDB4NDQsIDB4MzMsIDB4MDEsIDB4MDYsICAv
LyAnLi4uRDMuLgogICAgICAgICAgICAgICAgLyogMDA1MCAqLyAgMHhFRCwgMHgxOSwgMHg5
MSwgMHhDNSwgMHgwRCwgMHgxQywgMHgwNiwgMHg0OCwgIC8vIC4uLi4uLi5ICiAgICAgICAg
ICAgICAgICAvKiAwMDU4ICovICAweEE4LCAweEU5LCAweDU5LCAweEFBLCAweDMxLCAweDgx
LCAweDc2LCAweEM0LCAgLy8gLi5ZLjEudi4KICAgICAgICAgICAgICAgIC8qIDAwNjAgKi8g
IDB4NDQsIDB4MzQsIDB4MDEsIDB4MDYsIDB4MjEsIDB4MTIsIDB4OTAsIDB4MDUsICAvLyBE
NC4uIS4uLgogICAgICAgICAgICAgICAgLyogMDA2OCAqLyAgMHg2NiwgMHhENSwgMHhEMSwg
MHgxMSwgMHhCMiwgMHhGMCwgMHgwMCwgMHhBMCwgIC8vIGYuLi4uLi4uCiAgICAgICAgICAg
ICAgICAvKiAwMDcwICovICAweEM5LCAweDA2LCAweDI5LCAweDEwLCAweDQyLCAweDQ2LCAw
eDAxLCAweDAwICAgLy8gLi4pLkJGLi4KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0
aG9kIChXTUQwLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBBY3F1aXJlICheXldNSTEuTVdNSSwgMHhGRkZGKQogICAgICAgICAgICAgICAgTG9j
YWwwID0gQ0FSQyAoQXJnMikKICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDAp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDIK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBXTUlTICgweDEyLCAweDAwKQogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJlbGVhc2UgKF5eV01JMS5NV01JKQogICAg
ICAgICAgICAgICAgUmV0dXJuIChEZXJlZk9mICheXldNSTEuUkVUTiBbTG9jYWwwXSkpCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV01EMSwgMywgTm90U2VyaWFsaXpl
ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQWNxdWlyZSAoXl5XTUkxLk1XTUks
IDB4RkZGRikKICAgICAgICAgICAgICAgIExvY2FsMCA9IENBUkMgKEFyZzIpCiAgICAgICAg
ICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgTG9jYWww
ID0gV01JUyAoMHgxMiwgMHgwMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBSZWxlYXNlICheXldNSTEuTVdNSSkKICAgICAgICAgICAgICAgIFJldHVybiAoRGVyZWZP
ZiAoXl5XTUkxLlJFVE4gW0xvY2FsMF0pKQogICAgICAgICAgICB9CgogICAgICAgICAgICBN
ZXRob2QgKFdNRDIsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIEFjcXVpcmUgKF5eV01JMS5NV01JLCAweEZGRkYpCiAgICAgICAgICAgICAgICBM
b2NhbDAgPSBDQVJDIChBcmcyKQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgw
MCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgw
MgogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFdNSVMgKDB4MTIsIDB4MDIpCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmVsZWFzZSAoXl5XTUkxLk1XTUkpCiAg
ICAgICAgICAgICAgICBSZXR1cm4gKERlcmVmT2YgKF5eV01JMS5SRVROIFtMb2NhbDBdKSkK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXTUQzLCAzLCBOb3RTZXJpYWxp
emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBY3F1aXJlICheXldNSTEuTVdN
SSwgMHhGRkZGKQogICAgICAgICAgICAgICAgTG9jYWwwID0gQ0FSQyAoQXJnMikKICAgICAg
ICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDIKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDAgPSBXTUlTICgweDEyLCAweDAzKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIFJlbGVhc2UgKF5eV01JMS5NV01JKQogICAgICAgICAgICAgICAgUmV0dXJuIChEZXJl
Zk9mICheXldNSTEuUkVUTiBbTG9jYWwwXSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE1ldGhvZCAoV01ENCwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTmFtZSAoSVRFTSwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICJTaGExIgogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICJTaGEyNTYiCiAgICAg
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgIk1kNSIKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgQWNxdWlyZSAoXl5XTUkxLk1XTUks
IDB4RkZGRikKICAgICAgICAgICAgICAgIExvY2FsMCA9IENBUkMgKEFyZzIpCiAgICAgICAg
ICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDEgPSBeXldNSTEuR0lUTSAoQ0JGRiwgSVRFTSkKICAgICAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSBPbmVzKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDIKICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgQ0JGRiA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwID0gV01JUyAoMHgxMiwgMHgwNCkKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MDApKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2FsMiA9IEdFVFMgKENCRkYsIDB4MDAsIDB4MTQpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChMb2Nh
bDEgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gR0VUUyAoQ0JGRiwgMHgxNCwgMHgyMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVsc2VJZiAoKExvY2FsMSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBHRVRTIChD
QkZGLCAweDM0LCAweDEwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKF5eV01JMS5NV01JKQogICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwyKQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJlbGVhc2UgKF5eV01JMS5NV01JKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoRGVy
ZWZPZiAoXl5XTUkxLlJFVE4gW0xvY2FsMF0pKQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKENBUkMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENCRkYgPSAweDAwCiAgICAgICAgICAgICAg
ICBMb2NhbDAgPSBTaXplT2YgKEFyZzApCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9
PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChPYmplY3RU
eXBlIChBcmcwKSAhPSAweDAyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
SWYgKChMb2NhbDAgPj0gMHgxMDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgQ0JGRiA9IEFyZzAKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChHRVRTLCAzLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBBcmcxCiAgICAgICAgICAgICAg
ICBMb2NhbDEgPSBHRVRCIChBcmcwLCBMb2NhbDApCiAgICAgICAgICAgICAgICBMb2NhbDMg
PSBHRVRDIChMb2NhbDEpCiAgICAgICAgICAgICAgICBMb2NhbDQgPSAoTG9jYWwwICsgQXJn
MikKICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICBXaGlsZSAoKExv
Y2FsMCA8IExvY2FsNCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
TG9jYWwxID0gR0VUQiAoQXJnMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIExvY2Fs
MiA9IEdFVEMgKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAoTG9j
YWwzLCBMb2NhbDIsIExvY2FsMykKICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwzKQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEdFVEIsIDIsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgQXJn
MSwgVE1QQikKICAgICAgICAgICAgICAgIFJldHVybiAoVE1QQikgLyogXF9TQl8uV01JNi5H
RVRCLlRNUEIgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChHRVRDLCAx
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChS
RVRCLCBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk
IChSRVRCLCAweDAwLCBSVEIwKQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChS
RVRCLCAweDAxLCBSVEIxKQogICAgICAgICAgICAgICAgTmFtZSAoQVNDSSwgUGFja2FnZSAo
MHgxMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiMCIsIAogICAg
ICAgICAgICAgICAgICAgICIxIiwgCiAgICAgICAgICAgICAgICAgICAgIjIiLCAKICAgICAg
ICAgICAgICAgICAgICAiMyIsIAogICAgICAgICAgICAgICAgICAgICI0IiwgCiAgICAgICAg
ICAgICAgICAgICAgIjUiLCAKICAgICAgICAgICAgICAgICAgICAiNiIsIAogICAgICAgICAg
ICAgICAgICAgICI3IiwgCiAgICAgICAgICAgICAgICAgICAgIjgiLCAKICAgICAgICAgICAg
ICAgICAgICAiOSIsIAogICAgICAgICAgICAgICAgICAgICJBIiwgCiAgICAgICAgICAgICAg
ICAgICAgIkIiLCAKICAgICAgICAgICAgICAgICAgICAiQyIsIAogICAgICAgICAgICAgICAg
ICAgICJEIiwgCiAgICAgICAgICAgICAgICAgICAgIkUiLCAKICAgICAgICAgICAgICAgICAg
ICAiRiIKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChUTVBXLCAw
eDAwKQogICAgICAgICAgICAgICAgVE1QVyA9IEFyZzAKICAgICAgICAgICAgICAgIFJUQjAg
PSBEZXJlZk9mIChBU0NJIFsoKFRNUFcgPj4gMHgwNCkgJiAweDBGKV0KICAgICAgICAgICAg
ICAgICAgICApCiAgICAgICAgICAgICAgICBSVEIxID0gRGVyZWZPZiAoQVNDSSBbKFRNUFcg
JiAweDBGKV0pCiAgICAgICAgICAgICAgICBSZXR1cm4gKFRvU3RyaW5nIChSRVRCLCBPbmVz
KSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV1FCRiwgQnVmZmVyICgweDA1
RDcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4NDYsIDB4
NEYsIDB4NEQsIDB4NDIsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyBGT01CLi4uLgog
ICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHhDNywgMHgwNSwgMHgwMCwgMHgwMCwgMHgx
QSwgMHgyNSwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uJS4uCiAgICAgICAgICAgICAgICAvKiAw
MDEwICovICAweDQ0LCAweDUzLCAweDAwLCAweDAxLCAweDFBLCAweDdELCAweERBLCAweDU0
LCAgLy8gRFMuLi59LlQKICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4OTgsIDB4REIs
IDB4OTEsIDB4MDAsIDB4MDEsIDB4MDYsIDB4MTgsIDB4NDIsICAvLyAuLi4uLi4uQgogICAg
ICAgICAgICAgICAgLyogMDAyMCAqLyAgMHgxMCwgMHgwRCwgMHgxMCwgMHg4QSwgMHgwRiwg
MHgyMSwgMHgwMiwgMHgwQiwgIC8vIC4uLi4uIS4uCiAgICAgICAgICAgICAgICAvKiAwMDI4
ICovICAweDgzLCAweDUwLCAweDYwLCAweDE4LCAweDE0LCAweEEwLCAweDQ1LCAweDQxLCAg
Ly8gLlBgLi4uRUEKICAgICAgICAgICAgICAgIC8qIDAwMzAgKi8gIDB4QzgsIDB4MDUsIDB4
MTQsIDB4OTUsIDB4MDIsIDB4MjEsIDB4QzMsIDB4MDIsICAvLyAuLi4uLiEuLgogICAgICAg
ICAgICAgICAgLyogMDAzOCAqLyAgMHgxNCwgMHgwQiwgMHg3MCwgMHgyRSwgMHg0MCwgMHhC
QSwgMHgwMCwgMHhFNSwgIC8vIC4ucC5ALi4uCiAgICAgICAgICAgICAgICAvKiAwMDQwICov
ICAweDI4LCAweDcyLCAweDBDLCAweDIyLCAweDAyLCAweEY3LCAweEVGLCAweDBGLCAgLy8g
KHIuIi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwNDggKi8gIDB4MzEsIDB4MTgsIDB4ODgs
IDB4MTQsIDB4NDAsIDB4NDgsIDB4MzAsIDB4ODQsICAvLyAxLi4uQEgwLgogICAgICAgICAg
ICAgICAgLyogMDA1MCAqLyAgMHg0NCwgMHgwMCwgMHg1MywgMHgyMSwgMHg3MCwgMHg4NCwg
MHhBMCwgMHg1RiwgIC8vIEQuUyFwLi5fCiAgICAgICAgICAgICAgICAvKiAwMDU4ICovICAw
eDAxLCAweDA4LCAweDFELCAweDBBLCAweDkwLCAweDI5LCAweEMwLCAweEEwLCAgLy8gLi4u
Li4pLi4KICAgICAgICAgICAgICAgIC8qIDAwNjAgKi8gIDB4MDAsIDB4QTcsIDB4MDgsIDB4
MjIsIDB4ODgsIDB4RDIsIDB4QjIsIDB4MDAsICAvLyAuLi4iLi4uLgogICAgICAgICAgICAg
ICAgLyogMDA2OCAqLyAgMHhERCwgMHgwMiwgMHg3QywgMHgwQiwgMHhEMCwgMHgwRSwgMHgy
MSwgMHhCNCwgIC8vIC4ufC4uLiEuCiAgICAgICAgICAgICAgICAvKiAwMDcwICovICAweDBB
LCAweDA1LCAweDk4LCAweDE0LCAweEUwLCAweDEzLCAweDRDLCAweDg4LCAgLy8gLi4uLi4u
TC4KICAgICAgICAgICAgICAgIC8qIDAwNzggKi8gIDB4QjEsIDB4Q0UsIDB4RTIsIDB4MjQs
IDB4OUEsIDB4MTYsIDB4QTAsIDB4MTksICAvLyAuLi4kLi4uLgogICAgICAgICAgICAgICAg
LyogMDA4MCAqLyAgMHg0MiwgMHhFMywgMHgzOCwgMHg5MCwgMHgzMCwgMHg5MSwgMHg1QSwg
MHgxNCwgIC8vIEIuOC4wLlouCiAgICAgICAgICAgICAgICAvKiAwMDg4ICovICAweDIwLCAw
eDFCLCAweDQzLCAweEI2LCAweDkxLCAweEM5LCAweDVDLCAweDJDLCAgLy8gIC5DLi4uXCwK
ICAgICAgICAgICAgICAgIC8qIDAwOTAgKi8gIDB4NzIsIDB4MjAsIDB4MjgsIDB4MzEsIDB4
MDMsIDB4NDEsIDB4RTksIDB4OUMsICAvLyByICgxLkEuLgogICAgICAgICAgICAgICAgLyog
MDA5OCAqLyAgMHg4NywgMHg2QywgMHhFMiwgMHg2QSwgMHgwOCwgMHg4NSwgMHhBMiwgMHg2
OCwgIC8vIC5sLmouLi5oCiAgICAgICAgICAgICAgICAvKiAwMEEwICovICAweDBDLCAweDUx
LCAweDEyLCAweDlDLCAweEMzLCAweDgxLCAweDQ0LCAweDg4LCAgLy8gLlEuLi4uRC4KICAg
ICAgICAgICAgICAgIC8qIDAwQTggKi8gIDB4NUQsIDB4QUUsIDB4MDAsIDB4QzksIDB4MDMs
IDB4RDAsIDB4MkMsIDB4NEUsICAvLyBdLi4uLi4sTgogICAgICAgICAgICAgICAgLyogMDBC
MCAqLyAgMHhBMiwgMHhGNSwgMHgzOSwgMHg2OCwgMHg3NCwgMHg2QywgMHgwNCwgMHgzQywg
IC8vIC4uOWh0bC48CiAgICAgICAgICAgICAgICAvKiAwMEI4ICovICAweEU5LCAweDgyLCAw
eDRELCAweEEwLCAweDMwLCAweDZCLCAweDU1LCAweDRDLCAgLy8gLi5NLjBrVUwKICAgICAg
ICAgICAgICAgIC8qIDAwQzAgKi8gIDB4MDcsIDB4MzAsIDB4MTgsIDB4MEYsIDB4MjAsIDB4
OTIsIDB4MzMsIDB4NUUsICAvLyAuMC4uIC4zXgogICAgICAgICAgICAgICAgLyogMDBDOCAq
LyAgMHgxNCwgMHhCMCwgMHhCRCwgMHg0RSwgMHg0NCwgMHg2MywgMHgzQiwgMHg1OCwgIC8v
IC4uLk5EYztYCiAgICAgICAgICAgICAgICAvKiAwMEQwICovICAweDI2LCAweDA5LCAweDBF
LCAweDM1LCAweDU0LCAweDRCLCAweDE0LCAweDYwLCAgLy8gJi4uNVRLLmAKICAgICAgICAg
ICAgICAgIC8qIDAwRDggKi8gIDB4N0UsIDB4NjIsIDB4OUEsIDB4QzgsIDB4QTksIDB4MUQs
IDB4OUYsIDB4MjEsICAvLyB+Yi4uLi4uIQogICAgICAgICAgICAgICAgLyogMDBFMCAqLyAg
MHg5OSwgMHhCNCwgMHhBMSwgMHhBMCwgMHhDNiwgMHhFRiwgMHg2OSwgMHg5RCwgIC8vIC4u
Li4uLmkuCiAgICAgICAgICAgICAgICAvKiAwMEU4ICovICAweDk0LCAweDY3LCAweDFCLCAw
eEYxLCAweEEwLCAweDBDLCAweDkzLCAweEMwLCAgLy8gLmcuLi4uLi4KICAgICAgICAgICAg
ICAgIC8qIDAwRjAgKi8gIDB4QTMsIDB4NjAsIDB4NjgsIDB4OUMsIDB4QTAsIDB4MkMsIDB4
MDgsIDB4RUQsICAvLyAuYGguLiwuLgogICAgICAgICAgICAgICAgLyogMDBGOCAqLyAgMHg4
OCwgMHgwRSwgMHg5NCwgMHgwMCwgMHg5RSwgMHg4NCwgMHhFNywgMHg1OCwgIC8vIC4uLi4u
Li5YCiAgICAgICAgICAgICAgICAvKiAwMTAwICovICAweEJDLCAweDAwLCAweEUxLCAweDIz
LCAweDI2LCAweEU3LCAweDgxLCAweDE4LCAgLy8gLi4uIyYuLi4KICAgICAgICAgICAgICAg
IC8qIDAxMDggKi8gIDB4MDksIDB4N0MsIDB4MkUsIDB4QjAsIDB4RDQsIDB4MzEsIDB4QTMs
IDB4NDcsICAvLyAufC4uLjEuRwogICAgICAgICAgICAgICAgLyogMDExMCAqLyAgMHgxNCwg
MHgyRSwgMHhFMCwgMHhGOSwgMHgxQywgMHg0MywgMHhFNCwgMHhCOCwgIC8vIC4uLi4uQy4u
CiAgICAgICAgICAgICAgICAvKiAwMTE4ICovICAweEFGLCAweDAwLCAweDFFLCAweDQ1LCAw
eEU0LCAweDA0LCAweDQ3LCAweDFELCAgLy8gLi4uRS4uRy4KICAgICAgICAgICAgICAgIC8q
IDAxMjAgKi8gIDB4MkMsIDB4NEUsIDB4NDEsIDB4NTcsIDB4MDEsIDB4RjIsIDB4RkYsIDB4
QkYsICAvLyAsTkFXLi4uLgogICAgICAgICAgICAgICAgLyogMDEyOCAqLyAgMHgwQSwgMHgx
OCwgMHhFNSwgMHg1OSwgMHgwMCwgMHgxNiwgMHg4MSwgMHg0NSwgIC8vIC4uLlkuLi5FCiAg
ICAgICAgICAgICAgICAvKiAwMTMwICovICAweDhGLCAweDAyLCAweDI1LCAweDAzLCAweDQy
LCAweDFFLCAweDA1LCAweDU4LCAgLy8gLi4lLkIuLlgKICAgICAgICAgICAgICAgIC8qIDAx
MzggKi8gIDB4QzUsIDB4RDYsIDB4MzQsIDB4MTIsIDB4NTgsIDB4OTksIDB4MDAsIDB4NkQs
ICAvLyAuLjQuWC4ubQogICAgICAgICAgICAgICAgLyogMDE0MCAqLyAgMHgwMiwgMHhDNCwg
MHg0MSwgMHhDOCwgMHhEOCwgMHgwMCwgMHg2NCwgMHg0RSwgIC8vIC4uQS4uLmROCiAgICAg
ICAgICAgICAgICAvKiAwMTQ4ICovICAweDgwLCAweDQ2LCAweDAxLCAweEI2LCAweDI2LCAw
eDJBLCAweDZGLCAweEUzLCAgLy8gLkYuLiYqby4KICAgICAgICAgICAgICAgIC8qIDAxNTAg
Ki8gIDB4MTIsIDB4NEMsIDB4MTQsIDB4MjMsIDB4QzQsIDB4MEEsIDB4MTEsIDB4RTUsICAv
LyAuTC4jLi4uLgogICAgICAgICAgICAgICAgLyogMDE1OCAqLyAgMHg0QywgMHhFMiwgMHhD
NiwgMHg4QywgMHgxMSwgMHgyNSwgMHg0OCwgMHhDOCwgIC8vIEwuLi4uJUguCiAgICAgICAg
ICAgICAgICAvKiAwMTYwICovICAweDc4LCAweDExLCAweDYzLCAweEJDLCAweDE0LCAweDg0
LCAweDM3LCAweEY4LCAgLy8geC5jLi4uNy4KICAgICAgICAgICAgICAgIC8qIDAxNjggKi8g
IDB4NUIsIDB4NDQsIDB4MjQsIDB4MTMsIDB4NzgsIDB4REMsIDB4QjgsIDB4MDMsICAvLyBb
RCQueC4uLgogICAgICAgICAgICAgICAgLyogMDE3MCAqLyAgMHg4MCwgMHg0RiwgMHgwRCwg
MHhDNywgMHg3NiwgMHg0OCwgMHhCRSwgMHgyQiwgIC8vIC5PLi52SC4rCiAgICAgICAgICAg
ICAgICAvKiAwMTc4ICovICAweDk4LCAweEMwLCAweEIzLCAweDNFLCAweEI0LCAweEM3LCAw
eDgzLCAweEMwLCAgLy8gLi4uPi4uLi4KICAgICAgICAgICAgICAgIC8qIDAxODAgKi8gIDB4
ODcsIDB4MUIsIDB4MzUsIDB4QzYsIDB4ODksIDB4ODQsIDB4MjYsIDB4MEYsICAvLyAuLjUu
Li4mLgogICAgICAgICAgICAgICAgLyogMDE4OCAqLyAgMHgwOSwgMHg1OSwgMHgwMCwgMHg1
MSwgMHgyNCwgMHg3OCwgMHhENCwgMHg4MSwgIC8vIC5ZLlEkeC4uCiAgICAgICAgICAgICAg
ICAvKiAwMTkwICovICAweEMxLCAweDQ3LCAweDAzLCAweDhGLCAweEVDLCAweEI4LCAweDNE
LCAweEMzLCAgLy8gLkcuLi4uPS4KICAgICAgICAgICAgICAgIC8qIDAxOTggKi8gIDB4MTMs
IDB4MDgsIDB4NzIsIDB4MDgsIDB4NDcsIDB4RjAsIDB4RDAsIDB4RjAsICAvLyAuLnIuRy4u
LgogICAgICAgICAgICAgICAgLyogMDFBMCAqLyAgMHg0QywgMHhFMCwgMHgzMSwgMHhCMCwg
MHhDQiwgMHg4MiwgMHg0RiwgMHgwMSwgIC8vIEwuMS4uLk8uCiAgICAgICAgICAgICAgICAv
KiAwMUE4ICovICAweDNFLCAweDI0LCAweEUwLCAweDVELCAweDAzLCAweEVBLCAweDc2LCAw
eEYwLCAgLy8gPiQuXS4udi4KICAgICAgICAgICAgICAgIC8qIDAxQjAgKi8gIDB4NkMsIDB4
QzAsIDB4NDYsIDB4MUQsIDB4MEUsIDB4MzMsIDB4NUMsIDB4Q0YsICAvLyBsLkYuLjNcLgog
ICAgICAgICAgICAgICAgLyogMDFCOCAqLyAgMHgzQiwgMHhEQywgMHgwOSwgMHgzQywgMHgx
QSwgMHgzQywgMHg2OCwgMHhGMCwgIC8vIDsuLjwuPGguCiAgICAgICAgICAgICAgICAvKiAw
MUMwICovICAweDQzLCAweDg3LCAweDA3LCAweDg3LCAweDFCLCAweEVCLCAweEM5LCAweDFD
LCAgLy8gQy4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAxQzggKi8gIDB4RDksIDB4MEIs
IDB4NDEsIDB4QjMsIDB4RTcsIDB4MDMsIDB4NEQsIDB4RDIsICAvLyAuLkEuLi5NLgogICAg
ICAgICAgICAgICAgLyogMDFEMCAqLyAgMHhBNywgMHgwRSwgMHg3NiwgMHgwNiwgMHgzOCwg
MHg5RiwgMHg5RSwgMHgyMSwgIC8vIC4udi44Li4hCiAgICAgICAgICAgICAgICAvKiAwMUQ4
ICovICAweDg5LCAweEZDLCAweDQxLCAweEEwLCAweDQ2LCAweDY2LCAweDY4LCAweENGLCAg
Ly8gLi5BLkZmaC4KICAgICAgICAgICAgICAgIC8qIDAxRTAgKi8gIDB4RjgsIDB4RTUsIDB4
QzMsIDB4OTAsIDB4OEYsIDB4MEEsIDB4ODcsIDB4QzUsICAvLyAuLi4uLi4uLgogICAgICAg
ICAgICAgICAgLyogMDFFOCAqLyAgMHhDNCwgMHg5RSwgMHgzRSwgMHhFOCwgMHg3OCwgMHhD
MCwgMHg3RiwgMHgyOSwgIC8vIC4uPi54Li4pCiAgICAgICAgICAgICAgICAvKiAwMUYwICov
ICAweDc5LCAweEQ0LCAweEYwLCAweEY0LCAweDNELCAweDVGLCAweDBGLCAweDgzLCAgLy8g
eS4uLj1fLi4KICAgICAgICAgICAgICAgIC8qIDAxRjggKi8gIDB4OUQsIDB4NDgsIDB4RTAs
IDB4RkQsIDB4RkYsIDB4NEYsIDB4MjQsIDB4QjAsICAvLyAuSC4uLk8kLgogICAgICAgICAg
ICAgICAgLyogMDIwMCAqLyAgMHgyRSwgMHgwRSwgMHhFQywgMHg3NCwgMHhGMCwgMHhGMiwg
MHhFMCwgMHgyOSwgIC8vIC4uLnQuLi4pCiAgICAgICAgICAgICAgICAvKiAwMjA4ICovICAw
eEJFLCAweDM3LCAweEMwLCAweDNCLCAweDhGLCAweDAwLCAweDBGLCAweDkwLCAgLy8gLjcu
Oy4uLi4KICAgICAgICAgICAgICAgIC8qIDAyMTAgKi8gIDB4NDMsIDB4QzAsIDB4OUMsIDB4
MEEsIDB4M0MsIDB4MDQsIDB4M0UsIDB4ODAsICAvLyBDLi4uPC4+LgogICAgICAgICAgICAg
ICAgLyogMDIxOCAqLyAgMHg2NywgMHg4OSwgMHg5MywgMHhCNCwgMHhEMiwgMHhBOSwgMHgy
MSwgMHgwRiwgIC8vIGcuLi4uLiEuCiAgICAgICAgICAgICAgICAvKiAwMjIwICovICAweDJG
LCAweDMwLCAweDY2LCAweDA2LCAweEY3LCAweEYwLCAweDgyLCAweDRGLCAgLy8gLzBmLi4u
Lk8KICAgICAgICAgICAgICAgIC8qIDAyMjggKi8gIDB4RkUsIDB4MTAsIDB4RDAsIDB4RDks
IDB4QzMsIDB4QTksIDB4NDEsIDB4NjQsICAvLyAuLi4uLi5BZAogICAgICAgICAgICAgICAg
LyogMDIzMCAqLyAgMHhFMywgMHgyOSwgMHhFMCwgMHg1MywgMHgwRSwgMHg1NSwgMHgwNCwg
MHhBNCwgIC8vIC4pLlMuVS4uCiAgICAgICAgICAgICAgICAvKiAwMjM4ICovICAweEQ5LCAw
eDgyLCAweDg1LCAweDYwLCAweEZBLCAweDA1LCAweDY4LCAweDA0LCAgLy8gLi4uYC4uaC4K
ICAgICAgICAgICAgICAgIC8qIDAyNDAgKi8gIDB4M0UsIDB4MUIsIDB4MzgsIDB4MzcsIDB4
ODksIDB4OTIsIDB4OEYsIDB4OEUsICAvLyA+Ljg3Li4uLgogICAgICAgICAgICAgICAgLyog
MDI0OCAqLyAgMHhDMiwgMHgzOSwgMHhFQiwgMHg5OSwgMHg4NCwgMHg4MiwgMHgxOCwgMHhE
MCwgIC8vIC45Li4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMjUwICovICAweDQxLCAweENF
LCAweDE1LCAweEU4LCAweEUzLCAweDhBLCAweENGLCAweDI0LCAgLy8gQS4uLi4uLiQKICAg
ICAgICAgICAgICAgIC8qIDAyNTggKi8gIDB4QzcsIDB4RjAsIDB4RjAsIDB4RTMsIDB4NTks
IDB4NzksIDB4MTQsIDB4QkUsICAvLyAuLi4uWXkuLgogICAgICAgICAgICAgICAgLyogMDI2
MCAqLyAgMHhBRSwgMHhGOCwgMHgyOCwgMHhFMiwgMHg1MywgMHg4NSwgMHg4RiwgMHgwMCwg
IC8vIC4uKC5TLi4uCiAgICAgICAgICAgICAgICAvKiAwMjY4ICovICAweDNFLCAweDJGLCAw
eEYwLCAweDJGLCAweDhELCAweDJGLCAweDEwLCAweDQ2LCAgLy8gPi8uLy4vLkYKICAgICAg
ICAgICAgICAgIC8qIDAyNzAgKi8gIDB4QjcsIDB4OUEsIDB4MjMsIDB4MEIsIDB4MEEsIDB4
Q0MsIDB4MjcsIDB4MTIsICAvLyAuLiMuLi4nLgogICAgICAgICAgICAgICAgLyogMDI3OCAq
LyAgMHg0RSwgMHg1MCwgMHhENywgMHg5NSwgMHgwMiwgMHg2NCwgMHhGQSwgMHg3MCwgIC8v
IE5QLi4uZC5wCiAgICAgICAgICAgICAgICAvKiAwMjgwICovICAweEQxLCAweEZGLCAweEZG
LCAweDMzLCAweDAzLCAweDFDLCAweDIwLCAweDVGLCAgLy8gLi4uMy4uIF8KICAgICAgICAg
ICAgICAgIC8qIDAyODggKi8gIDB4MEYsIDB4N0MsIDB4MUMsIDB4NzgsIDB4NDQsIDB4NjAs
IDB4NjMsIDB4NzgsICAvLyAufC54RGBjeAogICAgICAgICAgICAgICAgLyogMDI5MCAqLyAg
MHgyMiwgMHgzMCwgMHg5QSwgMHhEMSwgMHg3OSwgMHhGOCwgMHhDOSwgMHhBMiwgIC8vICIw
Li55Li4uCiAgICAgICAgICAgICAgICAvKiAwMjk4ICovICAweEUyLCAweDRFLCAweDk2LCAw
eDgyLCAweDc4LCAweEIyLCAweDhFLCAweDMyLCAgLy8gLk4uLnguLjIKICAgICAgICAgICAg
ICAgIC8qIDAyQTAgKi8gIDB4NTksIDB4RjQsIDB4NEMsIDB4N0MsIDB4QzEsIDB4RjAsIDB4
OEMsIDB4NUUsICAvLyBZLkx8Li4uXgogICAgICAgICAgICAgICAgLyogMDJBOCAqLyAgMHgx
NiwgMHg4MiwgMHg5QywgMHhBMywgMHgyNywgMHhFQywgMHgwQiwgMHgwOSwgIC8vIC4uLi4n
Li4uCiAgICAgICAgICAgICAgICAvKiAwMkIwICovICAweEFDLCAweEUzLCAweDQwLCAweEM4
LCAweDM3LCAweDAzLCAweDRGLCAweEMzLCAgLy8gLi5ALjcuTy4KICAgICAgICAgICAgICAg
IC8qIDAyQjggKi8gIDB4NzAsIDB4OUUsIDB4MkMsIDB4ODcsIDB4RjMsIDB4NjQsIDB4Rjks
IDB4NTgsICAvLyBwLiwuLmQuWAogICAgICAgICAgICAgICAgLyogMDJDMCAqLyAgMHg3Qywg
MHgxRiwgMHgwMSwgMHg5RiwgMHhDMCwgMHhEOSwgMHg4MiwgMHgxQywgIC8vIHwuLi4uLi4u
CiAgICAgICAgICAgICAgICAvKiAwMkM4ICovICAweDFFLCAweDEzLCAweDZELCAweDU0LCAw
eEY0LCAweDU2LCAweEU0LCAweEUxLCAgLy8gLi5tVC5WLi4KICAgICAgICAgICAgICAgIC8q
IDAyRDAgKi8gIDB4RjEsIDB4Q0IsIDB4ODEsIDB4RTcsIDB4RjMsIDB4OEMsIDB4NzAsIDB4
OTQsICAvLyAuLi4uLi5wLgogICAgICAgICAgICAgICAgLyogMDJEOCAqLyAgMHhBRiwgMHgx
MiwgMHgzOCwgMHg4QywgMHg4NywgMHgxMywgMHgwRiwgMHhEMSwgIC8vIC4uOC4uLi4uCiAg
ICAgICAgICAgICAgICAvKiAwMkUwICovICAweDE3LCAweDI0LCAweDU4LCAweDEzLCAweDM5
LCAweDY5LCAweERGLCAweDE2LCAgLy8gLiRYLjlpLi4KICAgICAgICAgICAgICAgIC8qIDAy
RTggKi8gIDB4NEUsIDB4MzYsIDB4NjgsIDB4RkMsIDB4QjAsIDB4QkUsIDB4MjAsIDB4MDEs
ICAvLyBONmguLi4gLgogICAgICAgICAgICAgICAgLyogMDJGMCAqLyAgMHhBRiwgMHhDQywg
MHg5NywgMHgyQywgMHgxQSwgMHg2NywgMHgyMSwgMHgwQSwgIC8vIC4uLiwuZyEuCiAgICAg
ICAgICAgICAgICAvKiAwMkY4ICovICAweEJCLCAweDI0LCAweDBBLCAweEUzLCAweDRCLCAw
eDE2LCAweEZCLCAweEZGLCAgLy8gLiQuLksuLi4KICAgICAgICAgICAgICAgIC8qIDAzMDAg
Ki8gIDB4NUYsIDB4QjIsIDB4MDAsIDB4M0IsIDB4RDcsIDB4MUIsIDB4REMsIDB4QTAsICAv
LyBfLi47Li4uLgogICAgICAgICAgICAgICAgLyogMDMwOCAqLyAgMHhFMSwgMHgxRSwgMHg1
RCwgMHhFMiwgMHg5QywgMHhDQywgMHhEMSwgMHhCMiwgIC8vIC4uXS4uLi4uCiAgICAgICAg
ICAgICAgICAvKiAwMzEwICovICAweDU5LCAweDgzLCAweEUzLCAweDk2LCAweDA1LCAweEY3
LCAweDFDLCAweEY1LCAgLy8gWS4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAzMTggKi8g
IDB4QzAsIDB4MTAsIDB4QTEsIDB4QjMsIDB4N0IsIDB4OTUsIDB4NkUsIDB4NTcsICAvLyAu
Li4uey5uVwogICAgICAgICAgICAgICAgLyogMDMyMCAqLyAgMHg4RiwgMHgxMiwgMHg1MSwg
MHgxRSwgMHhBRiwgMHgyMiwgMHgzRCwgMHg1RCwgIC8vIC4uUS4uIj1dCiAgICAgICAgICAg
ICAgICAvKiAwMzI4ICovICAweEI1LCAweDA2LCAweEEzLCAweDVCLCAweDk2LCAweEIxLCAw
eDVFLCAweEFFLCAgLy8gLi4uWy4uXi4KICAgICAgICAgICAgICAgIC8qIDAzMzAgKi8gIDB4
RTIsIDB4QkMsIDB4NjUsIDB4RjksIDB4QjIsIDB4NjUsIDB4MTQsIDB4NjMsICAvLyAuLmUu
LmUuYwogICAgICAgICAgICAgICAgLyogMDMzOCAqLyAgMHg4NywgMHgwQiwgMHgxMSwgMHgz
OCwgMHg1MiwgMHhCOCwgMHgxMCwgMHgwRiwgIC8vIC4uLjhSLi4uCiAgICAgICAgICAgICAg
ICAvKiAwMzQwICovICAweDNCLCAweDg2LCAweDc5LCAweERBLCAweDYxLCAweEI3LCAweDJD
LCAweEIwLCAgLy8gOy55LmEuLC4KICAgICAgICAgICAgICAgIC8qIDAzNDggKi8gIDB4Q0Es
IDB4QkIsIDB4NjUsIDB4MDEsIDB4RDksIDB4RkYsIDB4RkYsIDB4MkQsICAvLyAuLmUuLi4u
LQogICAgICAgICAgICAgICAgLyogMDM1MCAqLyAgMHgwQiwgMHgzMCwgMHg3NywgMHg4RCwg
MHgwNCwgMHhFMywgMHhDRCwgMHgwMSwgIC8vIC4wdy4uLi4uCiAgICAgICAgICAgICAgICAv
KiAwMzU4ICovICAweDc3LCAweDUzLCAweDAyLCAweEMzLCAweDNELCAweDBCLCAweDcwLCAw
eDk2LCAgLy8gd1MuLj0ucC4KICAgICAgICAgICAgICAgIC8qIDAzNjAgKi8gIDB4RkUsIDB4
OUUsIDB4NDUsIDB4NkYsIDB4NUEsIDB4QkUsIDB4NjcsIDB4RjEsICAvLyAuLkVvWi5nLgog
ICAgICAgICAgICAgICAgLyogMDM2OCAqLyAgMHhDMywgMHg4OCwgMHgzNSwgMHgwMSwgMHg2
OSwgMHhCRSwgMHhCMCwgMHhGRSwgIC8vIC4uNS5pLi4uCiAgICAgICAgICAgICAgICAvKiAw
MzcwICovICAweEZGLCAweEYzLCAweDg1LCAweDc1LCAweEQxLCAweDAyLCAweDk4LCAweEZF
LCAgLy8gLi4udS4uLi4KICAgICAgICAgICAgICAgIC8qIDAzNzggKi8gIDB4RkYsIDB4QkYs
IDB4NjgsIDB4RTEsIDB4QzMsIDB4NUQsIDB4QjQsIDB4ODAsICAvLyAuLmguLl0uLgogICAg
ICAgICAgICAgICAgLyogMDM4MCAqLyAgMHhERSwgMHgyNSwgMHgwOSwgMHg3OCwgMHgyNSwg
MHhCRSwgMHg2OSwgMHhBMSwgIC8vIC4lLnglLmkuCiAgICAgICAgICAgICAgICAvKiAwMzg4
ICovICAweEEyLCAweERFLCAweEI0LCAweDAwLCAweEFELCAweEUzLCAweDdELCAweERGLCAg
Ly8gLi4uLi4ufS4KICAgICAgICAgICAgICAgIC8qIDAzOTAgKi8gIDB4NjEsIDB4NjAsIDB4
Q0YsIDB4QzcsIDB4QzAsIDB4NjAsIDB4MDAsIDB4MkYsICAvLyBhYC4uLmAuLwogICAgICAg
ICAgICAgICAgLyogMDM5OCAqLyAgMHhDNCwgMHgyMSwgMHhDMiwgMHhGRiwgMHhGRiwgMHg5
RiwgMHhBRCwgMHgxRSwgIC8vIC4hLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwM0EwICov
ICAweEI2LCAweDdDLCAweEM0LCAweDMyLCAweEM0LCAweEMzLCAweDU2LCAweEI4LCAgLy8g
LnwuMi4uVi4KICAgICAgICAgICAgICAgIC8qIDAzQTggKi8gIDB4MDgsIDB4NkYsIDB4NUEs
IDB4QzYsIDB4ODgsIDB4RjMsIDB4OEUsIDB4RjUsICAvLyAub1ouLi4uLgogICAgICAgICAg
ICAgICAgLyogMDNCMCAqLyAgMHhBNiwgMHhFNSwgMHgyMywgMHhDNSwgMHg3QiwgMHhENiwg
MHg0MywgMHhCMiwgIC8vIC4uIy57LkMuCiAgICAgICAgICAgICAgICAvKiAwM0I4ICovICAw
eDIxLCAweDgzLCAweDNDLCAweDFDLCAweDFCLCAweEVELCAweDA4LCAweDFGLCAgLy8gIS48
Li4uLi4KICAgICAgICAgICAgICAgIC8qIDAzQzAgKi8gIDB4OTMsIDB4OEQsIDB4MTAsIDB4
MzcsIDB4RDgsIDB4OUIsIDB4ODUsIDB4NkYsICAvLyAuLi43Li4ubwogICAgICAgICAgICAg
ICAgLyogMDNDOCAqLyAgMHg1QSwgMHg2MCwgMHgxNSwgMHg3NywgMHhEMywgMHgwMiwgMHg2
OCwgMHgzMiwgIC8vIFpgLncuLmgyCiAgICAgICAgICAgICAgICAvKiAwM0QwICovICAweEZD
LCAweDM3LCAweDJELCAweEYwLCAweERELCAweDFDLCAweDMwLCAweDA3LCAgLy8gLjctLi4u
MC4KICAgICAgICAgICAgICAgIC8qIDAzRDggKi8gIDB4NjQsIDB4NzAsIDB4RkMsIDB4RkYs
IDB4MkYsIDB4NUEsIDB4ODAsIDB4Q0IsICAvLyBkcC4uL1ouLgogICAgICAgICAgICAgICAg
LyogMDNFMCAqLyAgMHhFOSwgMHg4MiwgMHhFOSwgMHhBMiwgMHgwNSwgMHgzMCwgMHhFMSwg
MHhGRiwgIC8vIC4uLi4uMC4uCiAgICAgICAgICAgICAgICAvKiAwM0U4ICovICAweDdGLCAw
eEQxLCAweDAyLCAweDk4LCAweDc3LCAweDQ3LCAweDAyLCAweDlGLCAgLy8gLi4uLndHLi4K
ICAgICAgICAgICAgICAgIC8qIDAzRjAgKi8gIDB4QkUsIDB4MkYsIDB4OTYsIDB4NEYsIDB4
RDQsIDB4NUUsIDB4ODksIDB4MjQsICAvLyAuLy5PLl4uJAogICAgICAgICAgICAgICAgLyog
MDNGOCAqLyAgMHg0OCwgMHg4MCwgMHhDMSwgMHg1QywgMHhCNCwgMHhDMCwgMHhGRSwgMHhG
RiwgIC8vIEguLlwuLi4uCiAgICAgICAgICAgICAgICAvKiAwNDAwICovICAweEJGLCAweDY4
LCAweDAxLCAweENCLCAweEIzLCAweDgzLCAweDQ3LCAweDBELCAgLy8gLmguLi4uRy4KICAg
ICAgICAgICAgICAgIC8qIDA0MDggKi8gIDB4OTYsIDB4M0IsIDB4QzAsIDB4RTMsIDB4OEUs
IDB4MkYsIDB4MEIsIDB4NkYsICAvLyAuOy4uLi8ubwogICAgICAgICAgICAgICAgLyogMDQx
MCAqLyAgMHg2QiwgMHhFQywgMHg4NiwgMHhDMiwgMHg2NiwgMHgwRCwgMHgwRiwgMHgyQywg
IC8vIGsuLi5mLi4sCiAgICAgICAgICAgICAgICAvKiAwNDE4ICovICAweDQ2LCAweEMwLCAw
eDE4LCAweDQ3LCAweDE1LCAweDI4LCAweDY2LCAweDg0LCAgLy8gRi4uRy4oZi4KICAgICAg
ICAgICAgICAgIC8qIDA0MjAgKi8gIDB4REUsIDB4NzEsIDB4ODQsIDB4RjksIDB4NDgsIDB4
RTAsIDB4RUIsIDB4MTYsICAvLyAucS4uSC4uLgogICAgICAgICAgICAgICAgLyogMDQyOCAq
LyAgMHhEQywgMHgxMywgMHgxNiwgMHhCQiwgMHg1RiwgMHgzRCwgMHg2NiwgMHgxOSwgIC8v
IC4uLi5fPWYuCiAgICAgICAgICAgICAgICAvKiAwNDMwICovICAweEM2LCAweEU3LCAweEFD
LCAweDI4LCAweENGLCAweDU5LCAweEVDLCAweEJBLCAgLy8gLi4uKC5ZLi4KICAgICAgICAg
ICAgICAgIC8qIDA0MzggKi8gIDB4NjUsIDB4OEMsIDB4RTcsIDB4MkMsIDB4OUYsIDB4OTYs
IDB4QUQsIDB4RUQsICAvLyBlLi4sLi4uLgogICAgICAgICAgICAgICAgLyogMDQ0MCAqLyAg
MHhFMiwgMHhBNSwgMHgxMywgMHg5NywgMHhBRiwgMHg1QywgMHgxMSwgMHgwRSwgIC8vIC4u
Li4uXC4uCiAgICAgICAgICAgICAgICAvKiAwNDQ4ICovICAweDI4LCAweDRDLCAweDg0LCAw
eDIwLCAweDJGLCAweENCLCAweDUxLCAweERGLCAgLy8gKEwuIC8uUS4KICAgICAgICAgICAg
ICAgIC8qIDA0NTAgKi8gIDB4QkQsIDB4MEMsIDB4RUUsIDB4RUIsIDB4MTYsIDB4NzgsIDB4
ODUsIDB4NUUsICAvLyAuLi4uLnguXgogICAgICAgICAgICAgICAgLyogMDQ1OCAqLyAgMHhC
NywgMHgwMCwgMHgxOSwgMHhGRiwgMHhGRiwgMHhFQiwgMHgxNiwgMHg2MCwgIC8vIC4uLi4u
Li5gCiAgICAgICAgICAgICAgICAvKiAwNDYwICovICAweDY2LCAweEIwLCAweEJFLCAweDZF
LCAweDgxLCAweEVGLCAweEZFLCAweDgwLCAgLy8gZi4ubi4uLi4KICAgICAgICAgICAgICAg
IC8qIDA0NjggKi8gIDB4QjksIDB4MzAsIDB4QzEsIDB4OUUsIDB4NEQsIDB4QjgsIDB4Qjcs
IDB4MDcsICAvLyAuMC4uTS4uLgogICAgICAgICAgICAgICAgLyogMDQ3MCAqLyAgMHgxOCwg
MHg5NywgMHgyRSwgMHhDMCwgMHg5QSwgMHhBNiwgMHg1NywgMHg4MywgIC8vIC4uLi4uLlcu
CiAgICAgICAgICAgICAgICAvKiAwNDc4ICovICAweDRFLCAweDIyLCAweEQ2LCAweDAzLCAw
eEEyLCAweDRCLCAweDE3LCAweDNGLCAgLy8gTiIuLi5LLj8KICAgICAgICAgICAgICAgIC8q
IDA0ODAgKi8gIDB4RkIsIDB4NTgsIDB4REQsIDB4QTUsIDB4OEIsIDB4NEMsIDB4MUEsIDB4
RkUsICAvLyAuWC4uLkwuLgogICAgICAgICAgICAgICAgLyogMDQ4OCAqLyAgMHhGRiwgMHg3
RiwgMHhEMiwgMHhCMCwgMHg2RiwgMHg1RSwgMHgwMCwgMHhDMywgIC8vIC4uLi5vXi4uCiAg
ICAgICAgICAgICAgICAvKiAwNDkwICovICAweEZGLCAweEZGLCAweDM3LCAweDJGLCAweDc4
LCAweDQxLCAweDZGLCAweDVFLCAgLy8gLi43L3hBb14KICAgICAgICAgICAgICAgIC8qIDA0
OTggKi8gIDB4NDAsIDB4RUYsIDB4RDIsIDB4MDQsIDB4QkMsIDB4OEUsIDB4MTgsIDB4QkUs
ICAvLyBALi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDRBMCAqLyAgMHgzNCwgMHhDMSwg
MHhEMSwgMHg3MCwgMHhGRiwgMHhBMiwgMHg5MSwgMHhENiwgIC8vIDQuLnAuLi4uCiAgICAg
ICAgICAgICAgICAvKiAwNEE4ICovICAweEEzLCAweEQwLCAweDJCLCAweEEzLCAweDMwLCAw
eEJFLCAweDdGLCAweDAxLCAgLy8gLi4rLjAuLi4KICAgICAgICAgICAgICAgIC8qIDA0QjAg
Ki8gIDB4OEUsIDB4MDQsIDB4OEYsIDB4MUQsIDB4MzQsIDB4MzcsIDB4MzgsIDB4RjgsICAv
LyAuLi4uNDc4LgogICAgICAgICAgICAgICAgLyogMDRCOCAqLyAgMHhGMywgMHhGNiwgMHgx
RCwgMHhFMCwgMHg3MSwgMHhFMiwgMHg1NCwgMHg5RSwgIC8vIC4uLi5xLlQuCiAgICAgICAg
ICAgICAgICAvKiAwNEMwICovICAweDg1LCAweDgyLCAweEJGLCAweDNELCAweEIwLCAweEZG
LCAweEZGLCAweDg5LCAgLy8gLi4uPS4uLi4KICAgICAgICAgICAgICAgIC8qIDA0QzggKi8g
IDB4QzIsIDB4NzcsIDB4MkYsIDB4QjgsIDB4NTMsIDB4NzgsIDB4RjQsIDB4RjIsICAvLyAu
dy8uU3guLgogICAgICAgICAgICAgICAgLyogMDREMCAqLyAgMHg5MSwgMHgyQiwgMHg0Miwg
MHg4QywgMHhGMywgMHg3QSwgMHhGNywgMHgzMiwgIC8vIC4rQi4uei4yCiAgICAgICAgICAg
ICAgICAvKiAwNEQ4ICovICAweDRBLCAweEE4LCAweEM3LCAweDJGLCAweDc2LCAweDYyLCAw
eDM2LCAweENBLCAgLy8gSi4uL3ZiNi4KICAgICAgICAgICAgICAgIC8qIDA0RTAgKi8gIDB4
QTMsIDB4RDcsIDB4N0IsIDB4QjMsIDB4NTEsIDB4RTIsIDB4M0QsIDB4M0EsICAvLyAuLnsu
US49OgogICAgICAgICAgICAgICAgLyogMDRFOCAqLyAgMHgxQiwgMHhENywgMHgzOCwgMHgx
MSwgMHgxRSwgMHhBMywgMHg4MywgMHg4NiwgIC8vIC4uOC4uLi4uCiAgICAgICAgICAgICAg
ICAvKiAwNEYwICovICAweDBBLCAweEYxLCAweEVDLCAweDE1LCAweEYwLCAweEUxLCAweEQ5
LCAweDc3LCAgLy8gLi4uLi4uLncKICAgICAgICAgICAgICAgIC8qIDA0RjggKi8gIDB4MkYs
IDB4RjAsIDB4NEEsIDB4QkMsIDB4N0IsIDB4MDEsIDB4MzQsIDB4MzksICAvLyAvLkouey40
OQogICAgICAgICAgICAgICAgLyogMDUwMCAqLyAgMHgyMSwgMHhFMCwgMHhFRSwgMHg1RSwg
MHg2MCwgMHgzOSwgMHg4MywgMHhCMCwgIC8vICEuLl5gOS4uCiAgICAgICAgICAgICAgICAv
KiAwNTA4ICovICAweEZGLCAweEZGLCAweEExLCAweDA5LCAweEU2LCAweEQ1LCAweDAxLCAw
eENFLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA1MTAgKi8gIDB4QzUsIDB4
MEIsIDB4QjAsIDB4QTYsIDB4RTIsIDB4RTIsIDB4NDUsIDB4MTUsICAvLyAuLi4uLi5FLgog
ICAgICAgICAgICAgICAgLyogMDUxOCAqLyAgMHg1QywgMHhCQywgMHg1MCwgMHg2NywgMHgw
QSwgMHhFQiwgMHg3QSwgMHgxMiwgIC8vIFwuUGcuLnouCiAgICAgICAgICAgICAgICAvKiAw
NTIwICovICAweDY4LCAweEM2LCAweEUwLCAweEJDLCAweDc1LCAweDAxLCAweDJFLCAweEZG
LCAgLy8gaC4uLnUuLi4KICAgICAgICAgICAgICAgIC8qIDA1MjggKi8gIDB4RkYsIDB4Qjcs
IDB4MkUsIDB4ODAsIDB4MkQsIDB4MDEsIDB4NkYsIDB4NUQsICAvLyAuLi4uLS5vXQogICAg
ICAgICAgICAgICAgLyogMDUzMCAqLyAgMHg0MCwgMHhFRiwgMHhBQSwgMHgwNCwgMHhGQywg
MHgxNCwgMHhEQSwgMHhGNCwgIC8vIEAuLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNTM4
ICovICAweEE5LCAweEQxLCAweEE4LCAweDU1LCAweDgzLCAweDMyLCAweDM1LCAweENBLCAg
Ly8gLi4uVS4yNS4KICAgICAgICAgICAgICAgIC8qIDA1NDAgKi8gIDB4MzQsIDB4QTgsIDB4
RDUsIDB4QTcsIDB4NTIsIDB4NjMsIDB4QzYsIDB4MUMsICAvLyA0Li4uUmMuLgogICAgICAg
ICAgICAgICAgLyogMDU0OCAqLyAgMHgwOSwgMHhGOCwgMHhGRiwgMHg1RiwgMHg1MiwgMHg3
NCwgMHhDNywgMHhBMCwgIC8vIC4uLl9SdC4uCiAgICAgICAgICAgICAgICAvKiAwNTUwICov
ICAweEUyLCAweDU2LCAweEE2LCAweEExLCAweDM5LCAweDFBLCAweDA4LCAweDBELCAgLy8g
LlYuLjkuLi4KICAgICAgICAgICAgICAgIC8qIDA1NTggKi8gIDB4RjUsIDB4MUIsIDB4OTIs
IDB4MTEsIDB4MTAsIDB4MjUsIDB4MDQsIDB4MTEsICAvLyAuLi4uLiUuLgogICAgICAgICAg
ICAgICAgLyogMDU2MCAqLyAgMHg5MCwgMHhEMywgMHhGQywgMHgyNiwgMHgwNCwgMHhFNCwg
MHg2QywgMHgyMCwgIC8vIC4uLiYuLmwgCiAgICAgICAgICAgICAgICAvKiAwNTY4ICovICAw
eDAyLCAweEIyLCAweDlBLCAweEE1LCAweDA5LCAweERDLCAweDNBLCAweDU0LCAgLy8gLi4u
Li4uOlQKICAgICAgICAgICAgICAgIC8qIDA1NzAgKi8gIDB4MDAsIDB4QjEsIDB4MTQsIDB4
MjAsIDB4RkMsIDB4OEYsIDB4MjMsIDB4NTAsICAvLyAuLi4gLi4jUAogICAgICAgICAgICAg
ICAgLyogMDU3OCAqLyAgMHg0NywgMHgwMiwgMHgxMSwgMHg5MCwgMHhFNSwgMHhEQiwgMHgw
MCwgMHg2MiwgIC8vIEcuLi4uLi5iCiAgICAgICAgICAgICAgICAvKiAwNTgwICovICAweDYx
LCAweDQwLCAweDM0LCAweDY0LCAweEUyLCAweDAzLCAweDlDLCAweDQ1LCAgLy8gYUA0ZC4u
LkUKICAgICAgICAgICAgICAgIC8qIDA1ODggKi8gIDB4N0YsIDB4MTIsIDB4MDgsIDB4Qzgs
IDB4QzIsIDB4RTksIDB4MDQsIDB4NjIsICAvLyAuLi4uLi4uYgogICAgICAgICAgICAgICAg
LyogMDU5MCAqLyAgMHhEOSwgMHg0RSwgMHg0MCwgMHg1OSwgMHgwNiwgMHgxMCwgMHgwMSwg
MHg1OSwgIC8vIC5OQFkuLi5ZCiAgICAgICAgICAgICAgICAvKiAwNTk4ICovICAweEVGLCAw
eEQ3LCAweDQzLCAweDQwLCAweDU2LCAweDBGLCAweDIyLCAweDIwLCAgLy8gLi5DQFYuIiAK
ICAgICAgICAgICAgICAgIC8qIDA1QTAgKi8gIDB4MjcsIDB4QjYsIDB4MDIsIDB4Q0UsIDB4
NzIsIDB4N0IsIDB4MDEsIDB4NjIsICAvLyAnLi4ucnsuYgogICAgICAgICAgICAgICAgLyog
MDVBOCAqLyAgMHhBQSwgMHgxNywgMHgyRSwgMHgxMCwgMHgyNywgMHhGOSwgMHg3NiwgMHgw
OCwgIC8vIC4uLi4nLnYuCiAgICAgICAgICAgICAgICAvKiAwNUIwICovICAweEQ0LCAweEIx
LCAweDQwLCAweDA0LCAweEU0LCAweDA4LCAweDZFLCAweDgwLCAgLy8gLi5ALi4ubi4KICAg
ICAgICAgICAgICAgIC8qIDA1QjggKi8gIDB4NTgsIDB4MjAsIDB4MTAsIDB4MDEsIDB4NTks
IDB4OTAsIDB4MUQsIDB4NzAsICAvLyBYIC4uWS4ucAogICAgICAgICAgICAgICAgLyogMDVD
MCAqLyAgMHgyNiwgMHhDNywgMHgwRiwgMHgxMCwgMHgwQiwgMHgwMywgMHg0MiwgMHg0Mywg
IC8vICYuLi4uLkJDCiAgICAgICAgICAgICAgICAvKiAwNUM4ICovICAweDE5LCAweDFBLCAw
eDI4LCAweDA1LCAweEQxLCAweDQwLCAweDg5LCAweEEyLCAgLy8gLi4oLi5ALi4KICAgICAg
ICAgICAgICAgIC8qIDA1RDAgKi8gIDB4ODEsIDB4NTIsIDB4MTAsIDB4MDEsIDB4RjksIDB4
RkYsIDB4MEYgICAgICAgICAvLyAuUi4uLi4uCiAgICAgICAgICAgIH0pCiAgICAgICAgfQoK
ICAgICAgICBEZXZpY2UgKFdNSTcpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElE
LCBFaXNhSWQgKCJQTlAwQzE0IikgLyogV2luZG93cyBNYW5hZ2VtZW50IEluc3RydW1lbnRh
dGlvbiBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1l
IChfVUlELCAweDA3KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9X
REcsIEJ1ZmZlciAoMHgyOCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAw
MCAqLyAgMHgyNCwgMHhEOCwgMHgwNiwgMHgwRiwgMHgxOCwgMHhGOSwgMHg4QSwgMHg0Mywg
IC8vICQuLi4uLi5DCiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweEE2LCAweDcwLCAw
eDg0LCAweDM1LCAweDFFLCAweDA4LCAweERDLCAweEM2LCAgLy8gLnAuNS4uLi4KICAgICAg
ICAgICAgICAgIC8qIDAwMTAgKi8gIDB4NDMsIDB4MzAsIDB4MDEsIDB4MDUsIDB4MjEsIDB4
MTIsIDB4OTAsIDB4MDUsICAvLyBDMC4uIS4uLgogICAgICAgICAgICAgICAgLyogMDAxOCAq
LyAgMHg2NiwgMHhENSwgMHhEMSwgMHgxMSwgMHhCMiwgMHhGMCwgMHgwMCwgMHhBMCwgIC8v
IGYuLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDIwICovICAweEM5LCAweDA2LCAweDI5
LCAweDEwLCAweDQzLCAweDMxLCAweDAxLCAweDAwICAgLy8gLi4pLkMxLi4KICAgICAgICAg
ICAgfSkKICAgICAgICAgICAgTmFtZSAoVlNFTCwgUGFja2FnZSAoMHgwMikKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgIkRpc2FibGUiLCAKICAgICAgICAgICAgICAgICJFbmFi
bGUiCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1FDMCwgMSwgTm90U2Vy
aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQWNxdWlyZSAoXl5XTUkx
Lk1XTUksIDB4RkZGRikKICAgICAgICAgICAgICAgIExvY2FsMCA9IERlcmVmT2YgKFZTRUwg
W1NEQk1dKQogICAgICAgICAgICAgICAgUmVsZWFzZSAoXl5XTUkxLk1XTUkpCiAgICAgICAg
ICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFt
ZSAoV1FDMSwgQnVmZmVyICgweDAyN0UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IC8qIDAwMDAgKi8gIDB4NDYsIDB4NEYsIDB4NEQsIDB4NDIsIDB4MDEsIDB4MDAsIDB4MDAs
IDB4MDAsICAvLyBGT01CLi4uLgogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg2RSwg
MHgwMiwgMHgwMCwgMHgwMCwgMHgxNCwgMHgwNiwgMHgwMCwgMHgwMCwgIC8vIG4uLi4uLi4u
CiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDQ0LCAweDUzLCAweDAwLCAweDAxLCAw
eDFBLCAweDdELCAweERBLCAweDU0LCAgLy8gRFMuLi59LlQKICAgICAgICAgICAgICAgIC8q
IDAwMTggKi8gIDB4MTgsIDB4RDgsIDB4ODIsIDB4MDAsIDB4MDEsIDB4MDYsIDB4MTgsIDB4
NDIsICAvLyAuLi4uLi4uQgogICAgICAgICAgICAgICAgLyogMDAyMCAqLyAgMHgxMCwgMHgw
NSwgMHgxMCwgMHgwQSwgMHgwRCwgMHgyMSwgMHgwMiwgMHgwQiwgIC8vIC4uLi4uIS4uCiAg
ICAgICAgICAgICAgICAvKiAwMDI4ICovICAweDgzLCAweDUwLCAweDRDLCAweDE4LCAweDE0
LCAweEEwLCAweDQ1LCAweDQxLCAgLy8gLlBMLi4uRUEKICAgICAgICAgICAgICAgIC8qIDAw
MzAgKi8gIDB4QzgsIDB4MDUsIDB4MTQsIDB4OTUsIDB4MDIsIDB4MjEsIDB4QzMsIDB4MDIs
ICAvLyAuLi4uLiEuLgogICAgICAgICAgICAgICAgLyogMDAzOCAqLyAgMHgxNCwgMHgwQiwg
MHg3MCwgMHgyRSwgMHg0MCwgMHhCQSwgMHgwMCwgMHhFNSwgIC8vIC4ucC5ALi4uCiAgICAg
ICAgICAgICAgICAvKiAwMDQwICovICAweDI4LCAweDcyLCAweDBDLCAweDIyLCAweDAyLCAw
eEY3LCAweEVGLCAweDBGLCAgLy8gKHIuIi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwNDgg
Ki8gIDB4MzEsIDB4Q0UsIDB4MTgsIDB4QTgsIDB4NEMsIDB4MDgsIDB4ODksIDB4MDAsICAv
LyAxLi4uTC4uLgogICAgICAgICAgICAgICAgLyogMDA1MCAqLyAgMHhBNiwgMHg0MiwgMHhF
MCwgMHgwOCwgMHg0MSwgMHhCRiwgMHgwMiwgMHgxMCwgIC8vIC5CLi5BLi4uCiAgICAgICAg
ICAgICAgICAvKiAwMDU4ICovICAweDNBLCAweDQ0LCAweDkzLCAweDQxLCAweDAxLCAweDRF
LCAweDExLCAweDA0LCAgLy8gOkQuQS5OLi4KICAgICAgICAgICAgICAgIC8qIDAwNjAgKi8g
IDB4NjksIDB4Q0IsIDB4MDIsIDB4NzQsIDB4MEIsIDB4RjAsIDB4MkQsIDB4NDAsICAvLyBp
Li50Li4tQAogICAgICAgICAgICAgICAgLyogMDA2OCAqLyAgMHgzQiwgMHg4NCwgMHhEMCwg
MHgyMiwgMHg5NSwgMHgyOCwgMHg0MCwgMHhBMSwgIC8vIDsuLiIuKEAuCiAgICAgICAgICAg
ICAgICAvKiAwMDcwICovICAweDAwLCAweDlCLCAweDAyLCAweDJDLCAweDBBLCAweDkwLCAw
eDBELCAweDI2LCAgLy8gLi4uLC4uLiYKICAgICAgICAgICAgICAgIC8qIDAwNzggKi8gIDB4
REIsIDB4NzAsIDB4NjQsIDB4MTgsIDB4NEMsIDB4RTQsIDB4MTgsIDB4NTAsICAvLyAucGQu
TC4uUAogICAgICAgICAgICAgICAgLyogMDA4MCAqLyAgMHg2MiwgMHhDNiwgMHg4MCwgMHhE
MiwgMHgzOSwgMHgwNSwgMHgwMSwgMHgxQiwgIC8vIGIuLi45Li4uCiAgICAgICAgICAgICAg
ICAvKiAwMDg4ICovICAweEJELCAweDUwLCAweDE0LCAweDRELCAweDIzLCAweDRBLCAweDgy
LCAweDgzLCAgLy8gLlAuTSNKLi4KICAgICAgICAgICAgICAgIC8qIDAwOTAgKi8gIDB4M0Es
IDB4ODYsIDB4MDgsIDB4QzEsIDB4Q0IsIDB4MTUsIDB4MjAsIDB4NzksICAvLyA6Li4uLi4g
eQogICAgICAgICAgICAgICAgLyogMDA5OCAqLyAgMHgwMiwgMHhEMiwgMHgzQywgMHgyRiwg
MHg1OSwgMHgxRiwgMHg4NCwgMHg4NiwgIC8vIC4uPC9ZLi4uCiAgICAgICAgICAgICAgICAv
KiAwMEEwICovICAweEMwLCAweDQ2LCAweEMwLCAweDIzLCAweDRCLCAweDAwLCAweDYxLCAw
eEExLCAgLy8gLkYuI0suYS4KICAgICAgICAgICAgICAgIC8qIDAwQTggKi8gIDB4OTYsIDB4
QTksIDB4OTAsIDB4MzAsIDB4MjgsIDB4MEYsIDB4MjAsIDB4OTIsICAvLyAuLi4wKC4gLgog
ICAgICAgICAgICAgICAgLyogMDBCMCAqLyAgMHgzMywgMHg1NCwgMHgxNCwgMHhCMCwgMHhC
RCwgMHg0RSwgMHg0NCwgMHgyNiwgIC8vIDNULi4uTkQmCiAgICAgICAgICAgICAgICAvKiAw
MEI4ICovICAweEM3LCAweDQ5LCAweDI1LCAweEMxLCAweEExLCAweDQ2LCAweEU5LCAweEMx
LCAgLy8gLkklLi5GLi4KICAgICAgICAgICAgICAgIC8qIDAwQzAgKi8gIDB4MzUsIDB4M0Ys
IDB4MzIsIDB4NEQsIDB4RTQsIDB4RDgsIDB4OUEsIDB4MUUsICAvLyA1PzJNLi4uLgogICAg
ICAgICAgICAgICAgLyogMDBDOCAqLyAgMHhCMSwgMHgyMCwgMHg5OSwgMHhCNCwgMHhBMSwg
MHhBMCwgMHg4NiwgMHhFRSwgIC8vIC4gLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMEQw
ICovICAweDY5LCAweDlELCAweDk0LCAweDI3LCAweDFBLCAweEYxLCAweEEwLCAweDBDLCAg
Ly8gaS4uJy4uLi4KICAgICAgICAgICAgICAgIC8qIDAwRDggKi8gIDB4OTMsIDB4QzAsIDB4
QTMsIDB4NjAsIDB4NjgsIDB4OUMsIDB4QTAsIDB4MkMsICAvLyAuLi5gaC4uLAogICAgICAg
ICAgICAgICAgLyogMDBFMCAqLyAgMHgwOCwgMHgzOSwgMHgxOCwgMHgyOCwgMHgwQSwgMHhG
MCwgMHgyNCwgMHgzQywgIC8vIC45LiguLiQ8CiAgICAgICAgICAgICAgICAvKiAwMEU4ICov
ICAweEM3LCAweEUyLCAweDA1LCAweDA4LCAweDlGLCAweDMxLCAweDM5LCAweDBBLCAgLy8g
Li4uLi4xOS4KICAgICAgICAgICAgICAgIC8qIDAwRjAgKi8gIDB4QzQsIDB4NDgsIDB4RTAs
IDB4MjMsIDB4ODEsIDB4MDUsIDB4OEYsIDB4MTksICAvLyAuSC4jLi4uLgogICAgICAgICAg
ICAgICAgLyogMDBGOCAqLyAgMHgzRCwgMHhBMiwgMHg3MCwgMHgwMSwgMHhDRiwgMHhFNywg
MHgxOCwgMHgyMiwgIC8vID0ucC4uLi4iCiAgICAgICAgICAgICAgICAvKiAwMTAwICovICAw
eEM3LCAweDNELCAweEQ0LCAweDE4LCAweDQ3LCAweDExLCAweDM5LCAweEMxLCAgLy8gLj0u
LkcuOS4KICAgICAgICAgICAgICAgIC8qIDAxMDggKi8gIDB4NTEsIDB4MUYsIDB4RDcsIDB4
ODMsIDB4ODEsIDB4QUYsIDB4MDAsIDB4MTYsICAvLyBRLi4uLi4uLgogICAgICAgICAgICAg
ICAgLyogMDExMCAqLyAgMHg4NCwgMHg0OSwgMHhGMCwgMHgwRSwgMHgzOSwgMHg1QywgMHhB
QywgMHhENywgIC8vIC5JLi45XC4uCiAgICAgICAgICAgICAgICAvKiAwMTE4ICovICAweDAw
LCAweEY2LCAweEZGLCAweDQ3LCAweDhCLCAweEY1LCAweDJFLCAweDcwLCAgLy8gLi4uRy4u
LnAKICAgICAgICAgICAgICAgIC8qIDAxMjAgKi8gIDB4RUMsIDB4MEMsIDB4RTUsIDB4QTAs
IDB4ODIsIDB4MUMsIDB4OTgsIDB4MDksICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg
LyogMDEyOCAqLyAgMHg0MiwgMHgxRSwgMHgwOCwgMHg0NiwgMHgwNiwgMHg4NCwgMHgzQywg
MHgwQSwgIC8vIEIuLkYuLjwuCiAgICAgICAgICAgICAgICAvKiAwMTMwICovICAweEIwLCAw
eDNBLCAweDM2LCAweDBELCAweDIwLCAweDgxLCAweERELCAweERGLCAgLy8gLjo2LiAuLi4K
ICAgICAgICAgICAgICAgIC8qIDAxMzggKi8gIDB4MTksIDB4QTQsIDB4MTEsIDB4NDIsIDB4
REEsIDB4ODAsIDB4MjQsIDB4NEUsICAvLyAuLi5CLi4kTgogICAgICAgICAgICAgICAgLyog
MDE0MCAqLyAgMHg4MCwgMHhCMiwgMHhCMSwgMHhDQSwgMHgxNiwgMHg5MCwgMHhDQywgMHgw
OSwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMTQ4ICovICAweDMwLCAweDg2
LCAweDIzLCAweDk0LCAweDM4LCAweDlELCAweDgxLCAweEU4LCAgLy8gMC4jLjguLi4KICAg
ICAgICAgICAgICAgIC8qIDAxNTAgKi8gIDB4NDgsIDB4MTAsIDB4MjUsIDB4NDQsIDB4QzQs
IDB4REUsIDB4NDAsIDB4ODUsICAvLyBILiVELi5ALgogICAgICAgICAgICAgICAgLyogMDE1
OCAqLyAgMHgxMiwgMHgyOCwgMHg5NiwgMHhBRCwgMHgyMSwgMHg2QSwgMHg4RSwgMHg4MSwg
IC8vIC4oLi4hai4uCiAgICAgICAgICAgICAgICAvKiAwMTYwICovICAweEUyLCAweDA0LCAw
eDdGLCAweDMzLCAweDg4LCAweDEwLCAweEFGLCAweEZELCAgLy8gLi4uMy4uLi4KICAgICAg
ICAgICAgICAgIC8qIDAxNjggKi8gIDB4NDEsIDB4OTAsIDB4QjEsIDB4RTMsIDB4MEUsIDB4
MDEsIDB4M0UsIDB4MzQsICAvLyBBLi4uLi4+NAogICAgICAgICAgICAgICAgLyogMDE3MCAq
LyAgMHg5QywgMHhEMSwgMHgyOSwgMHgzRSwgMHgwNCwgMHgzQywgMHgzMCwgMHg5OCwgIC8v
IC4uKT4uPDAuCiAgICAgICAgICAgICAgICAvKiAwMTc4ICovICAweEMwLCAweEIzLCAweDNB
LCAweEMzLCAweDQ3LCAweDg0LCAweEUwLCAweDg3LCAgLy8gLi46LkcuLi4KICAgICAgICAg
ICAgICAgIC8qIDAxODAgKi8gIDB4MUMsIDB4MzUsIDB4QzYsIDB4QTEsIDB4MjQsIDB4QjAs
IDB4QTAsIDB4QTUsICAvLyAuNS4uJC4uLgogICAgICAgICAgICAgICAgLyogMDE4OCAqLyAg
MHg0QiwgMHgwMywgMHg4OCwgMHgyMiwgMHhDMSwgMHhBMywgMHgwRSwgMHgwRCwgIC8vIEsu
LiIuLi4uCiAgICAgICAgICAgICAgICAvKiAwMTkwICovICAweDNFLCAweDFFLCAweDc4LCAw
eDY4LCAweEM3LCAweEVFLCAweDQxLCAweDlFLCAgLy8gPi54aC4uQS4KICAgICAgICAgICAg
ICAgIC8qIDAxOTggKi8gIDB4NDAsIDB4OTAsIDB4NDMsIDB4MzgsIDB4ODIsIDB4MDcsIDB4
ODcsIDB4RTcsICAvLyBALkM4Li4uLgogICAgICAgICAgICAgICAgLyogMDFBMCAqLyAgMHgw
MiwgMHg4RiwgMHg4MSwgMHg1RCwgMHgxOCwgMHg3QywgMHgxMiwgMHhGMCwgIC8vIC4uLl0u
fC4uCiAgICAgICAgICAgICAgICAvKiAwMUE4ICovICAweDQxLCAweDAxLCAweEVGLCAweDFB
LCAweDUwLCAweEEzLCAweDdFLCAweDNFLCAgLy8gQS4uLlAufj4KICAgICAgICAgICAgICAg
IC8qIDAxQjAgKi8gIDB4NjAsIDB4NDMsIDB4MEUsIDB4ODcsIDB4MTksIDB4QUYsIDB4NEYs
IDB4MDEsICAvLyBgQy4uLi5PLgogICAgICAgICAgICAgICAgLyogMDFCOCAqLyAgMHhFMSwg
MHg0RSwgMHhFMCwgMHhCMCwgMHg5RiwgMHgzMywgMHhGOCwgMHg5OSwgIC8vIC5OLi4uMy4u
CiAgICAgICAgICAgICAgICAvKiAwMUMwICovICAweEMzLCAweDgzLCAweEMzLCAweDRELCAw
eEYxLCAweDY0LCAweDhFLCAweEFDLCAgLy8gLi4uTS5kLi4KICAgICAgICAgICAgICAgIC8q
IDAxQzggKi8gIDB4NTQsIDB4MDEsIDB4NjYsIDB4Q0YsIDB4MDgsIDB4M0EsIDB4NEYsIDB4
RjgsICAvLyBULmYuLjpPLgogICAgICAgICAgICAgICAgLyogMDFEMCAqLyAgMHhEMCwgMHhD
MSwgMHgyRSwgMHgwNCwgMHhFNywgMHhEMywgMHgzMywgMHgyNCwgIC8vIC4uLi4uLjMkCiAg
ICAgICAgICAgICAgICAvKiAwMUQ4ICovICAweDkxLCAweDNGLCAweDA4LCAweEQ0LCAweEM4
LCAweDBDLCAweEVELCAweDcxLCAgLy8gLj8uLi4uLnEKICAgICAgICAgICAgICAgIC8qIDAx
RTAgKi8gIDB4QkYsIDB4N0IsIDB4MTgsIDB4RjIsIDB4NzEsIDB4RTEsIDB4QjAsIDB4OTgs
ICAvLyAuey4ucS4uLgogICAgICAgICAgICAgICAgLyogMDFFOCAqLyAgMHhEOCwgMHhDMywg
MHgwNywgMHgxRCwgMHgwRiwgMHhGOCwgMHhFRiwgMHgyNCwgIC8vIC4uLi4uLi4kCiAgICAg
ICAgICAgICAgICAvKiAwMUYwICovICAweENGLCAweDA4LCAweDlFLCAweEJFLCAweEU3LCAw
eDZCLCAweDgyLCAweEQxLCAgLy8gLi4uLi5rLi4KICAgICAgICAgICAgICAgIC8qIDAxRjgg
Ki8gIDB4MDcsIDB4OEUsIDB4MUUsIDB4ODgsIDB4QTEsIDB4OUYsIDB4MzksIDB4MEUsICAv
LyAuLi4uLi45LgogICAgICAgICAgICAgICAgLyogMDIwMCAqLyAgMHhFMywgMHgzNCwgMHg4
QywgMHhGOCwgMHhGRiwgMHgzRiwgMHhBMiwgMHhFNywgIC8vIC40Li4uPy4uCiAgICAgICAg
ICAgICAgICAvKiAwMjA4ICovICAweDgwLCAweDIwLCAweDMxLCAweDhFLCAweEM5LCAweDgz
LCAweEUzLCAweDAxLCAgLy8gLiAxLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAyMTAgKi8g
IDB4NDcsIDB4NEUsIDB4Q0YsIDB4MkEsIDB4M0UsIDB4NTQsIDB4RjAsIDB4MTMsICAvLyBH
Ti4qPlQuLgogICAgICAgICAgICAgICAgLyogMDIxOCAqLyAgMHg4NiwgMHgwRiwgMHgxNSwg
MHhFQywgMHg3QywgMHg3MCwgMHgxQSwgMHhDRiwgIC8vIC4uLi58cC4uCiAgICAgICAgICAg
ICAgICAvKiAwMjIwICovICAweDAxLCAweDFFLCAweENFLCAweDU5LCAweEY5LCAweDRDLCAw
eDAxLCAweDFDLCAgLy8gLi4uWS5MLi4KICAgICAgICAgICAgICAgIC8qIDAyMjggKi8gIDB4
MEYsIDB4MDMsIDB4RTAsIDB4MUIsIDB4OTYsIDB4NEYsIDB4MzMsIDB4RTAsICAvLyAuLi4u
Lk8zLgogICAgICAgICAgICAgICAgLyogMDIzMCAqLyAgMHg5QiwgMHgxNiwgMHg2NiwgMHg1
OCwgMHg3MCwgMHg2NiwgMHhDNSwgMHg0NywgIC8vIC4uZlhwZi5HCiAgICAgICAgICAgICAg
ICAvKiAwMjM4ICovICAweDg1LCAweDM5LCAweEQzLCAweDAwLCAweDhGLCAweEUzLCAweDgy
LCAweDg3LCAgLy8gLjkuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAyNDAgKi8gIDB4QzAs
IDB4NEYsIDB4MTUsIDB4MUUsIDB4MDIsIDB4MUYsIDB4QzAsIDB4QzMsICAvLyAuTy4uLi4u
LgogICAgICAgICAgICAgICAgLyogMDI0OCAqLyAgMHhDOCwgMHg3OSwgMHg1QSwgMHhFOSwg
MHhFQywgMHg5MCwgMHg2NywgMHgxRiwgIC8vIC55Wi4uLmcuCiAgICAgICAgICAgICAgICAv
KiAwMjUwICovICAweDMwLCAweDhELCAweDgyLCAweDJCLCAweEI0LCAweEU5LCAweDUzLCAw
eEEzLCAgLy8gMC4uKy4uUy4KICAgICAgICAgICAgICAgIC8qIDAyNTggKi8gIDB4NTEsIDB4
QUIsIDB4MDYsIDB4NjUsIDB4NkEsIDB4OTQsIDB4NjksIDB4NTAsICAvLyBRLi5lai5pUAog
ICAgICAgICAgICAgICAgLyogMDI2MCAqLyAgMHhBQiwgMHg0RiwgMHhBNSwgMHhDNiwgMHg4
QywgMHhGRCwgMHg3NCwgMHgyQywgIC8vIC5PLi4uLnQsCiAgICAgICAgICAgICAgICAvKiAw
MjY4ICovICAweEVELCAweDc1LCAweEEwLCAweEUzLCAweDgxLCAweEE1LCAweEJELCAweDEz
LCAgLy8gLnUuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAyNzAgKi8gIDB4RjQsIDB4RkYs
IDB4M0YsIDB4MjgsIDB4MzgsIDB4MTgsIDB4MDgsIDB4OEQsICAvLyAuLj8oOC4uLgogICAg
ICAgICAgICAgICAgLyogMDI3OCAqLyAgMHg0NCwgMHgyNywgMHgxMCwgMHhGRiwgMHhGRiwg
MHgwMSAgICAgICAgICAgICAgIC8vIEQnLi4uLgogICAgICAgICAgICB9KQogICAgICAgIH0K
CiAgICAgICAgTWV0aG9kIChXRlJULCAzLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAg
ICAgICAgSWYgKChBcmcwID09IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBXRklPICgweDAzLCAweDAxKQogICAgICAgICAgICAgICAgU2xlZXAgKDB4MzIpCiAgICAg
ICAgICAgICAgICBTbGVlcCAoQXJnMSkKICAgICAgICAgICAgICAgIE5vdGlmeSAoXlBDSTAu
R1BQMi5XV0FOLCAweDAxKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgIFdGSU8g
KDB4MDMsIDB4MDApCiAgICAgICAgICAgICAgICBTbGVlcCAoQXJnMikKICAgICAgICAgICAg
ICAgIE5vdGlmeSAoXlBDSTAuR1BQMi5XV0FOLCAweDAxKSAvLyBEZXZpY2UgQ2hlY2sKICAg
ICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFdGSU8gKDB4MDYsIDB4MDApCiAgICAgICAgICAgICAgICBTbGVlcCAoMHgxNCkKICAg
ICAgICAgICAgICAgIFdGSU8gKDB4MDMsIDB4MDEpCiAgICAgICAgICAgICAgICBTbGVlcCAo
MHgwQSkKICAgICAgICAgICAgICAgIFdGSU8gKDB4MjgsIDB4MDApCiAgICAgICAgICAgICAg
ICBTbGVlcCAoMHgwMUY0KQogICAgICAgICAgICAgICAgU2xlZXAgKEFyZzEpCiAgICAgICAg
ICAgICAgICBOb3RpZnkgKF5QQ0kwLkdQUDIuV1dBTiwgMHgwMSkgLy8gRGV2aWNlIENoZWNr
CiAgICAgICAgICAgICAgICBXRklPICgweDI4LCAweDAxKQogICAgICAgICAgICAgICAgU2xl
ZXAgKDB4MTQpCiAgICAgICAgICAgICAgICBXRklPICgweDAzLCAweDAwKQogICAgICAgICAg
ICAgICAgU2xlZXAgKDB4NTApCiAgICAgICAgICAgICAgICBXRklPICgweDA2LCAweDAxKQog
ICAgICAgICAgICAgICAgU2xlZXAgKEFyZzIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKF5Q
Q0kwLkdQUDIuV1dBTiwgMHgwMSkgLy8gRGV2aWNlIENoZWNrCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJMC5HUFAyLldXQU4uRE9TVikpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIF5QQ0kwLkdQUDIuV1dBTi5ET1NWICgpCiAg
ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoTUZGRCkKICAgICAgICB7
CiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlRDMTA3MyIpICAvLyBfSElEOiBIYXJkd2Fy
ZSBJRAogICAgICAgICAgICBOYW1lIChfU1RSLCBVbmljb2RlICgiTW9kZW0gRmlybXdhcmUg
Rmxhc2ggRGV2aWNlIikpICAvLyBfU1RSOiBEZXNjcmlwdGlvbiBTdHJpbmcKICAgICAgICAg
ICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoXl5QQ0kwLkxQQzAuRUMwLldXRFQg
PT0gMHgwRSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu
ICgweDBGKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBT
ZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMGYzZDU3YWEtNjA0
Ni00N2IyLThhOWEtODhmMTAyMWQzODY1IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEg
PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAxKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09
IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBX
RlJUICgweDAwLCBEZXJlZk9mIChBcmczIFsweDAwXSksIERlcmVmT2YgKEFyZzMgWzB4MDFd
KSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDEpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAg
ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgV0ZSVCAoMHgwMSwgRGVyZWZPZiAoQXJnMyBbMHgw
MF0pLCBEZXJlZk9mIChBcmczIFsweDAxXSkpCiAgICAgICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoQnVmZmVyICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgwMSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAg
IH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cgog
ICAgU2NvcGUgKF9TQi5QQ0kwLkxQQzAuRUMwKQogICAgewogICAgICAgIE11dGV4IChNQ1BV
LCAweDAwKQogICAgICAgIE11dGV4IChMSURRLCAweDAwKQogICAgICAgIE1ldGhvZCAoX1Ex
RiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYK
ICAgICAgICB7CiAgICAgICAgICAgIElmICheSEtFWS5NSEtLICgweDAxLCAweDAwMDIwMDAw
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChQS0xJICYgMHgwQzAwKSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBeSEtFWS5NSEtRICgweDEw
MTIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFNDTVMg
KDB4MEUpCiAgICAgICAgICAgIFNDTVMgKDB4MjApCiAgICAgICAgfQoKICAgICAgICBNZXRo
b2QgKF9RMTYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgw
MC0weEZGCiAgICAgICAgewogICAgICAgICAgICBJZiAoXkhLRVkuTUhLSyAoMHgwMSwgMHg0
MCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIF5IS0VZLk1IS1EgKDB4MTAwNykK
ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUTFDLCAwLCBOb3RT
ZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgIHsK
ICAgICAgICAgICAgSWYgKF5IS0VZLk1IS0sgKDB4MDEsIDB4MDEwMDAwMDApKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBeSEtFWS5NSEtRICgweDEwMTkpCiAgICAgICAgICAg
IH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1ExRCwgMCwgTm90U2VyaWFsaXplZCkg
IC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAgICAgICAgICAg
IElmICheSEtFWS5NSEtLICgweDAxLCAweDAyMDAwMDAwKSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgXkhLRVkuTUhLUSAoMHgxMDFBKQogICAgICAgICAgICB9CiAgICAgICAg
fQoKICAgICAgICBNZXRob2QgKF9RMTMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBF
QyBRdWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgewogICAgICAgICAgICBJZiAoXkhLRVku
REhLQykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXkhLRVkuTUhLUSAoMHgxMDA0
KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTm90aWZ5IChTTFBCLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAg
ICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1E2NCwgMCwgTm90U2VyaWFsaXpl
ZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAgICAgICAg
ICAgIElmICheSEtFWS5NSEtLICgweDAxLCAweDEwKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgXkhLRVkuTUhLUSAoMHgxMDA1KQogICAgICAgICAgICB9CiAgICAgICAgfQoK
ICAgICAgICBNZXRob2QgKF9RNjIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBR
dWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgewogICAgICAgICAgICBJZiAoXkhLRVkuTUhL
SyAoMHgwMywgMHgwMDAxMDAwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIF5I
S0VZLk1IS1EgKDB4MTMxMSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0
aG9kIChfUTZCLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4
MDAtMHhGRgogICAgICAgIHsKICAgICAgICAgICAgSWYgKF5IS0VZLk1IS0sgKDB4MDMsIDB4
NDAwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIF5IS0VZLlRTU1MgKCkKICAg
ICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUTc2LCAwLCBOb3RTZXJp
YWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgIHsKICAg
ICAgICAgICAgSWYgKF5IS0VZLk1IS0sgKDB4MDMsIDB4MDAwNDAwMDApKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBeSEtFWS5NSEtRICgweDEzMTMpCiAgICAgICAgICAgIH0K
ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1E3OCwgMCwgTm90U2VyaWFsaXplZCkgIC8v
IF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAgICAgICAgICAgIElm
ICheSEtFWS5NSEtLICgweDAzLCAweDAwNDAwMDAwKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgXkhLRVkuTUhLUSAoMHgxMzE3KQogICAgICAgICAgICB9CiAgICAgICAgfQoK
ICAgICAgICBNZXRob2QgKF9RNzksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBR
dWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgewogICAgICAgICAgICBJZiAoXkhLRVkuTUhL
SyAoMHgwMywgMHgwMDgwMDAwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIF5I
S0VZLk1IS1EgKDB4MTMxOCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0
aG9kIChfUTdBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4
MDAtMHhGRgogICAgICAgIHsKICAgICAgICAgICAgSWYgKF5IS0VZLk1IS0sgKDB4MDMsIDB4
MDEwMDAwMDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBeSEtFWS5NSEtRICgw
eDEzMTkpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1E2NSwg
MCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAg
ICAgICB7CiAgICAgICAgICAgIElmICheSEtFWS5NSEtLICgweDAzLCAweDAwMDIwMDAwKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXkhLRVkuTUhLUSAoMHgxMzEyKQogICAg
ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9RNkMsIDAsIE5vdFNlcmlh
bGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgewogICAg
ICAgICAgICBeSEtFWS5NSEtRICgweDEzMUEpCiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg
KF9RM0MsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0w
eEZGCiAgICAgICAgewogICAgICAgICAgICBJZiAoKENRTFMgPT0gMHgwMSkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIF5IS0VZLkRZVEMgKDB4MDAxRjEwMDEpCiAgICAgICAg
ICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQ1FMUyA9PSAweDAwKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgXkhLRVkuRFlUQyAoMHgwMDBGMTAwMSkKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgRFBSUyAoKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUTZE
LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgog
ICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkxQQzAuRUMw
LkhLRVkuTVNDQikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoXkhLRVku
TVNDQiA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBe
SEtFWS5EWVRDICgweDAwMTdEMDAxKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXkhLRVku
RFlUQyAoMHgwMDE3RDAwMSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0
aG9kIChfUTZFLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4
MDAtMHhGRgogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kw
LkxQQzAuRUMwLkhLRVkuTVNDQikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm
ICgoXkhLRVkuTVNDQiA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBeSEtFWS5EWVRDICgweDAwMTVEMDAxKQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgXkhLRVkuRFlUQyAoMHgwMDE1RDAwMSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAg
ICAgICAgTWV0aG9kIChfUTZGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVl
cnksIHh4PTB4MDAtMHhGRgogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo
XF9TQi5QQ0kwLkxQQzAuRUMwLkhLRVkuTVNDQikpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIElmICgoXkhLRVkuTVNDQiA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBeSEtFWS5EWVRDICgweDAwMTNEMDAxKQogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgXkhLRVkuRFlUQyAoMHgwMDEzRDAwMSkKICAgICAgICAgICAgfQogICAg
ICAgIH0KCiAgICAgICAgTWV0aG9kIChfUTI2LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4
eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgIHsKICAgICAgICAgICAgSWYgKChB
Y3F1aXJlIChVQ0NJLCAweEEwMDApID09IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBTQ01TICgweDEyKQogICAgICAgICAgICAgICAgXkhLRVkuRFlUQyAoMHgwMDBG
QTAwMSkKICAgICAgICAgICAgICAgIFNsZWVwICgweDAxRjQpCiAgICAgICAgICAgICAgICBO
b3RpZnkgKEFDLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgICAgICBOb3Rp
ZnkgKFxfVFouVEhNMCwgMHg4MCkgLy8gVGhlcm1hbCBTdGF0dXMgQ2hhbmdlCiAgICAgICAg
ICAgICAgICBJZiAoV1hQRikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBBY3F1aXJlIChNQ1BVLCAweEZGRkYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgSWYgKFdYUEYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
U2xlZXAgKDB4NjQpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKFdY
UEYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoTUNQ
VSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBeSEtFWS5NSEtRICgweDYw
NDApCiAgICAgICAgICAgICAgICBBVE1DICgpCiAgICAgICAgICAgICAgICBSZWxlYXNlIChV
Q0NJKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9RMjcsIDAs
IE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGCiAgICAg
ICAgewogICAgICAgICAgICBJZiAoKEFjcXVpcmUgKFVDQ0ksIDB4QTAwMCkgPT0gMHgwMCkp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNDTVMgKDB4MTIpCiAgICAgICAgICAg
ICAgICBJZiAoKF5eXl5MSUQuX0xJRCAoKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBeSEtFWS5EWVRDICgweDAwMUZBMDAxKQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIFNsZWVwICgweDAxRjQpCiAgICAgICAgICAgICAg
ICBOb3RpZnkgKEFDLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgICAgICBO
b3RpZnkgKFxfVFouVEhNMCwgMHg4MCkgLy8gVGhlcm1hbCBTdGF0dXMgQ2hhbmdlCiAgICAg
ICAgICAgICAgICBJZiAoV1hQRikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBBY3F1aXJlIChNQ1BVLCAweEZGRkYpCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgSWYgKFdYUEYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYg
KFdYUEYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAo
TUNQVSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBeSEtFWS5NSEtRICgw
eDYwNDApCiAgICAgICAgICAgICAgICBBVE1DICgpCiAgICAgICAgICAgICAgICBSZWxlYXNl
IChVQ0NJKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9RMkEs
IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGCiAg
ICAgICAgewogICAgICAgICAgICBJZiAoKEFjcXVpcmUgKExJRFEsIDB4QTAwMCkgPT0gMHgw
MCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZDTVMgKDB4MDEsIF5eXl5MSUQu
X0xJRCAoKSkKICAgICAgICAgICAgICAgIFNDTVMgKDB4MjEpCiAgICAgICAgICAgICAgICBe
SEtFWS5EWVRDICgweDAwMEZBMDAxKQogICAgICAgICAgICAgICAgSWYgKChJTE5GID09IDB4
MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChJT1NUKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCFJU09D
ICgweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSU9TVCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5IS0VZ
Lk1IS1EgKDB4NjBEMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgXkhLRVkuTUhLUSAoMHg1MDAyKQogICAg
ICAgICAgICAgICAgICAgIElmICgoUExVWCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoTElELCAweDgwKSAvLyBTdGF0
dXMgQ2hhbmdlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIFJlbGVhc2UgKExJRFEpCiAgICAgICAgICAgIH0KICAgICAgICB9Cgog
ICAgICAgIE1ldGhvZCAoX1EyQiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1
ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAgICAgICAgICAgIElmICgoQWNxdWlyZSAo
TElEUSwgMHhBMDAwKSA9PSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
U0NNUyAoMHgwRCkKICAgICAgICAgICAgICAgIFZDTVMgKDB4MDEsIF5eXl5MSUQuX0xJRCAo
KSkKICAgICAgICAgICAgICAgIElmICgoXkFDLl9QU1IgKCkgPT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgXkhLRVkuRFlUQyAoMHgwMDFGQTAwMSkK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKElMTkYgPT0gMHgwMCkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChJT0VOICYmICFJ
T1NUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm
ICghSVNPQyAoMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIElPU1QgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBeSEtFWS5NSEtRICgweDYwRDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIF5IS0VZLk1IS1EgKDB4NTAw
MSkKICAgICAgICAgICAgICAgICAgICBJZiAoKFBMVVggPT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKExJRCwgMHg4MCkg
Ly8gU3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBSZWxlYXNlIChMSURRKQogICAgICAgICAgICB9CiAgICAg
ICAgfQoKICAgICAgICBNZXRob2QgKF9RM0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4
OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgewogICAgICAgIH0KCiAgICAgICAg
TWV0aG9kIChfUTQ4LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4
PTB4MDAtMHhGRgogICAgICAgIHsKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1E0OSwg
MCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAg
ICAgICB7CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9RNDYsIDAsIE5vdFNlcmlhbGl6
ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgewogICAgICAg
ICAgICBeSEtFWS5NSEtRICgweDYwMTIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9R
M0IsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZG
CiAgICAgICAgewogICAgICAgICAgICBJZiAoKFdMQUMgPT0gMHgwMikpIHt9CiAgICAgICAg
ICAgIEVsc2VJZiAoKEVMTksgJiYgKFdMQUMgPT0gMHgwMSkpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBEQ1dMID0gMHgwMAogICAgICAgICAgICB9CiAgICAgICAgICAgIEVs
c2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRENXTCA9IDB4MDEKICAgICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUTRGLCAwLCBOb3RTZXJpYWxpemVk
KSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgIHsKICAgICAgICAg
ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5VQlRDLk5URlkpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBeXl5eVUJUQy5OVEZZICgpCiAgICAgICAgICAgIH0KICAgICAgICB9Cgog
ICAgICAgIE1ldGhvZCAoX1EyRiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1
ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAgICAgICAgICAgIEJGQ0MgKCkKICAgICAg
ICB9CgogICAgICAgIE1ldGhvZCAoX1E3MSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6
IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAgICAgICAgICAgIF5IS0VZLk1I
S1EgKDB4MTMxNikKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1EyMCwgMCwgTm90U2Vy
aWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAg
ICAgICAgICAgIF5IS0VZLk1IS1EgKDB4ODAzNikKICAgICAgICB9CgogICAgICAgIE1ldGhv
ZCAoX1E3NSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAw
LTB4RkYKICAgICAgICB7CiAgICAgICAgICAgIF5IS0VZLk1IS1EgKDB4MTMxQykKICAgICAg
ICB9CgogICAgICAgIE1ldGhvZCAoX1E1RCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6
IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAgICAgICAgICAgIF5IS0VZLlND
UEYgKFRJRFgpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKExJRE8sIDAsIE5vdFNlcmlh
bGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEFjcXVpcmUgKExJRFEsIDB4QTAw
MCkgPT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZDTVMgKDB4MDEs
IF5eXl5MSUQuX0xJRCAoKSkKICAgICAgICAgICAgICAgIF5IS0VZLkRZVEMgKDB4MDAwRkEw
MDEpCiAgICAgICAgICAgICAgICBJZiAoKElMTkYgPT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKElPU1QpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoIUlTT0MgKDB4MDApKQogICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT1NUID0gMHgw
MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXkhLRVkuTUhLUSAoMHg2MEQwKQogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICBeSEtFWS5NSEtRICgweDUwMDIpCiAgICAgICAgICAgICAgICAgICAgSWYg
KChQTFVYID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgTm90aWZ5IChMSUQsIDB4ODApIC8vIFN0YXR1cyBDaGFuZ2UKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmVsZWFz
ZSAoTElEUSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChMSURD
LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSEFNNiA9IDB4MDAK
ICAgICAgICAgICAgU0NNUyAoMHgwRCkKICAgICAgICAgICAgVkNNUyAoMHgwMSwgXl5eXkxJ
RC5fTElEICgpKQogICAgICAgICAgICBJZiAoKF5BQy5fUFNSICgpID09IDB4MDApKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBeSEtFWS5EWVRDICgweDAwMUZBMDAxKQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBJZiAoKElMTkYgPT0gMHgwMCkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIElmICgoSU9FTiAmJiAhSU9TVCkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCFJU09DICgweDAxKSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPU1QgPSAweDAxCiAgICAgICAg
ICAgICAgICAgICAgICAgIF5IS0VZLk1IS1EgKDB4NjBEMCkKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgXkhLRVkuTUhLUSAoMHg1
MDAxKQogICAgICAgICAgICAgICAgSWYgKChQTFVYID09IDB4MDApKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoTElELCAweDgwKSAvLyBTdGF0dXMg
Q2hhbmdlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAg
ICAgIE1ldGhvZCAoQUNJTiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg
ICAgIElmICgoQWNxdWlyZSAoVUNDSSwgMHhBMDAwKSA9PSAweDAwKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgU0NNUyAoMHgxMikKICAgICAgICAgICAgICAgIF5IS0VZLkRZ
VEMgKDB4MDAwRkEwMDEpCiAgICAgICAgICAgICAgICBTbGVlcCAoMHgwMUY0KQogICAgICAg
ICAgICAgICAgTm90aWZ5IChBQywgMHg4MCkgLy8gU3RhdHVzIENoYW5nZQogICAgICAgICAg
ICAgICAgTm90aWZ5IChcX1RaLlRITTAsIDB4ODApIC8vIFRoZXJtYWwgU3RhdHVzIENoYW5n
ZQogICAgICAgICAgICAgICAgSWYgKFdYUEYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgQWNxdWlyZSAoTUNQVSwgMHhGRkZGKQogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIElmIChXWFBGKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFNsZWVwICgweDY0KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIElmIChXWFBGKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJl
bGVhc2UgKE1DUFUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgXkhLRVku
TUhLUSAoMHg2MDQwKQogICAgICAgICAgICAgICAgQVRNQyAoKQogICAgICAgICAgICAgICAg
UmVsZWFzZSAoVUNDSSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k
IChBQ09VLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChB
Y3F1aXJlIChVQ0NJLCAweEEwMDApID09IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBTQ01TICgweDEyKQogICAgICAgICAgICAgICAgSWYgKCheXl5eTElELl9MSUQg
KCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgXkhL
RVkuRFlUQyAoMHgwMDFGQTAwMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBTbGVlcCAoMHgwMUY0KQogICAgICAgICAgICAgICAgTm90aWZ5IChBQywgMHg4MCkgLy8g
U3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1RaLlRITTAsIDB4ODAp
IC8vIFRoZXJtYWwgU3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgSWYgKFdYUEYpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoTUNQVSwgMHhG
RkZGKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChXWFBGKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChXWFBGKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKE1DUFUpCiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgXkhLRVkuTUhLUSAoMHg2MDQwKQogICAgICAgICAgICAgICAg
QVRNQyAoKQogICAgICAgICAgICAgICAgUmVsZWFzZSAoVUNDSSkKICAgICAgICAgICAgfQog
ICAgICAgIH0KCiAgICAgICAgU2NvcGUgKFxfU0IuUENJMC5MUEMwLkVDMCkKICAgICAgICB7
CiAgICAgICAgICAgIE1ldGhvZCAoX1E2QSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6
IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
SWYgKEhETUMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTm9vcAog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICheSEtFWS5NSEtLICgw
eDAxLCAweDA0MDAwMDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBeSEtFWS5NSEtRICgweDEwMUIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
ICAgICAgICB9CgogICAgICAgIFNjb3BlIChIS0VZKQogICAgICAgIHsKICAgICAgICAgICAg
TWV0aG9kIChNTVRHLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBMb2NhbDAgPSAweDAxMDEKICAgICAgICAgICAgICAgIElmIChIRE1DKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAweDAwMDEwMDAw
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTU1UUywgMSwgTm90U2VyaWFsaXpl
ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKEhETUMpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTm9vcAogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSAweDAyKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBMRUQgKDB4MEUsIDB4ODApCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcwID09IDB4MDMpKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIExFRCAoMHgwRSwgMHhDMCkKICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBMRUQgKDB4MEUsIDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgIH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChcX1NCLlBDSTAuTFBDMC5FQzApCiAg
ICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9RM0YsIDAsIE5vdFNlcmlhbGl6ZWQpICAv
LyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIF5IS0VZLk1IS1EgKDB4NjAwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TWV0aG9kIChfUTc0LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4
PTB4MDAtMHhGRgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBeSEtFWS5NSEtRICgw
eDYwNjApCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChIS0VZKQog
ICAgICAgIHsKICAgICAgICB9CgogICAgICAgIFNjb3BlIChcX1NCLlBDSTAuTFBDMC5FQzAp
CiAgICAgICAgewogICAgICAgICAgICBOYW1lIChCUlRXLCBQYWNrYWdlICgweDEyKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDY0LCAKICAgICAgICAgICAgICAgIDB4NjQs
IAogICAgICAgICAgICAgICAgMHgwNSwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAg
ICAgICAgICAgIDB4MTQsIAogICAgICAgICAgICAgICAgMHgxOSwgCiAgICAgICAgICAgICAg
ICAweDFFLCAKICAgICAgICAgICAgICAgIDB4MjMsIAogICAgICAgICAgICAgICAgMHgyOCwg
CiAgICAgICAgICAgICAgICAweDJELCAKICAgICAgICAgICAgICAgIDB4MzIsIAogICAgICAg
ICAgICAgICAgMHgzNywgCiAgICAgICAgICAgICAgICAweDNDLCAKICAgICAgICAgICAgICAg
IDB4NDEsIAogICAgICAgICAgICAgICAgMHg0NiwgCiAgICAgICAgICAgICAgICAweDUwLCAK
ICAgICAgICAgICAgICAgIDB4NUEsIAogICAgICAgICAgICAgICAgMHg2NAogICAgICAgICAg
ICB9KQogICAgICAgICAgICBOYW1lIChCUlRCLCBQYWNrYWdlICgweDAxKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDE2KQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIDB4MUUsIAogICAgICAgICAgICAgICAgICAgIDB4MDQsIAog
ICAgICAgICAgICAgICAgICAgIDB4MDQsIAogICAgICAgICAgICAgICAgICAgIDB4MDcsIAog
ICAgICAgICAgICAgICAgICAgIDB4MEEsIAogICAgICAgICAgICAgICAgICAgIDB4MEUsIAog
ICAgICAgICAgICAgICAgICAgIDB4MTEsIAogICAgICAgICAgICAgICAgICAgIDB4MTYsIAog
ICAgICAgICAgICAgICAgICAgIDB4MUIsIAogICAgICAgICAgICAgICAgICAgIDB4MjEsIAog
ICAgICAgICAgICAgICAgICAgIDB4MjksIAogICAgICAgICAgICAgICAgICAgIDB4MzIsIAog
ICAgICAgICAgICAgICAgICAgIDB4M0MsIAogICAgICAgICAgICAgICAgICAgIDB4NDYsIAog
ICAgICAgICAgICAgICAgICAgIDB4NjQsIAogICAgICAgICAgICAgICAgICAgIDB4OEMsIAog
ICAgICAgICAgICAgICAgICAgIDB4QjQsIAogICAgICAgICAgICAgICAgICAgIDB4RkYsIAog
ICAgICAgICAgICAgICAgICAgIDB4MDRFMiwgCiAgICAgICAgICAgICAgICAgICAgMHgwNEUy
LCAKICAgICAgICAgICAgICAgICAgICAweDA0LCAKICAgICAgICAgICAgICAgICAgICAweDA0
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAo
X1ExNCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4
RkYKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKF5IS0VZLk1IS0sgKDB4MDEs
IDB4ODAwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgXkhLRVku
TUhLUSAoMHgxMDEwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5vdGlm
eSAoXl5eR1AxNy5WR0EuTENELCAweDg2KSAvLyBEZXZpY2UtU3BlY2lmaWMKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUTE1LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g
X1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBJZiAoXkhLRVkuTUhLSyAoMHgwMSwgMHgwMDAxMDAwMCkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgXkhLRVkuTUhLUSAoMHgxMDExKQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5eR1AxNy5WR0EuTENELCAweDg3
KSAvLyBEZXZpY2UtU3BlY2lmaWMKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k
IChCUk5TLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBMb2NhbDAgPSAoQlJMViArIDB4MDIpCiAgICAgICAgICAgICAgICBMb2NhbDMgPSBCTlRO
IC8qIFxCTlROICovCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChBRk43KSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBEZXJlZk9mIChE
ZXJlZk9mIChCUlRCIFtMb2NhbDNdKSBbTG9jYWwwXSkKICAgICAgICAgICAgICAgICAgICBB
Rk43IChMb2NhbDIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIE1ldGhvZCAoQkZSUSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgTG9jYWwwID0gMHg4MDAwMDEwMAogICAgICAgICAgICAgICAgTG9jYWwx
ID0gRGVyZWZPZiAoRGVyZWZPZiAoQlJUQiBbQk5UTl0pIFsweDEzXSkKICAgICAgICAgICAg
ICAgIExvY2FsMCB8PSAoTG9jYWwxIDw8IDB4MDkpCiAgICAgICAgICAgICAgICBMb2NhbDEg
PSBEZXJlZk9mIChEZXJlZk9mIChCUlRCIFtCTlROXSkgWzB4MTVdKQogICAgICAgICAgICAg
ICAgTG9jYWwwIHw9IExvY2FsMQogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAg
ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChcX1NCLlBDSTAuTFBDMC5F
QzApCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9RNDMsIDAsIE5vdFNlcmlhbGl6
ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFNDTVMgKDB4MTgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l
dGhvZCAoU0FVTSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgSWYgKChBcmcwID4gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTm9vcAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlm
IChIOERSKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEhBVU0gPSBB
cmcwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTUJFQyAoMHgwMywgMHg5RiwgKEFyZzAgPDwg
MHgwNSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAg
ICAgIFNjb3BlIChIS0VZKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChHU01TLCAx
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4g
KEFVREMgKDB4MDAsIDB4MDApKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg
KFNTTVMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IFJldHVybiAoQVVEQyAoMHgwMSwgKEFyZzAgJiAweDAxKSkpCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIE1ldGhvZCAoU0hEQSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTG9jYWwwID0gQXJnMAogICAgICAgICAgICAgICAgTG9jYWww
ID0gMHgwMgogICAgICAgICAgICAgICAgUmV0dXJuIChBVURDICgweDAyLCAoTG9jYWwwICYg
MHgwMykpKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBTY29wZSAoXF9TQi5Q
Q0kwLkxQQzAuRUMwKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfUTE5LCAwLCBO
b3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBJZiAoXkhLRVkuTUhLSyAoMHgwMSwgMHgwMDgwMDAw
MCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgXkhLRVkuTUhLUSAo
MHgxMDE4KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFNDTVMgKDB4MDMp
CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChcX1NCLlBDSTAuTFBD
MC5FQzApCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9RNjMsIDAsIE5vdFNlcmlh
bGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIElmICheSEtFWS5NSEtLICgweDAxLCAweDAwMDgwMDAwKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBeSEtFWS5NSEtRICgweDEwMTQp
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU0NNUyAoMHgwQikKICAgICAg
ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKFxfU0IuUENJMC5MUEMwLkVDMCkK
ICAgICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoX1E3MCwgMCwgTm90U2VyaWFsaXplZCkg
IC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgRk5TVCAoKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9R
NzIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZG
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEZOU1QgKCkKICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgTWV0aG9kIChfUTczLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDog
RUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBG
TlNUICgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoRk5TVCwgMCwgTm90
U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKEg4RFIpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gSEZOUyAvKiBc
X1NCXy5QQ0kwLkxQQzAuRUMwXy5IRk5TICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwx
ID0gSEZORSAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IRk5FICovCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwID0gKFJCRUMgKDB4MEUpICYgMHgwMykKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDEgPSAoUkJFQyAoMHgwMCkgJiAweDA4KQogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIElmIChMb2NhbDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBTQ01TICgweDExKQogICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMSkpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTQ01TICgweDBGKQog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAg
PT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBTQ01TICgweDEwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgXkhLRVkuTUhLUSAoMHg2MDA1KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CiAgICAgICAgfQoKICAgICAgICBTY29wZSAoSEtFWSkKICAgICAgICB7CiAgICAgICAgICAg
IE1ldGhvZCAoR0hTTCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgUmV0dXJuIChGTlNDICgweDAwLCAweDAwKSkKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgTWV0aG9kIChTSFNMLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZXR1cm4gKEZOU0MgKDB4MDEsIChBcmcwICYgMHgwMDAxMDAw
MSkpKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBTY29wZSAoSEtFWSkKICAg
ICAgICB7CiAgICAgICAgICAgIE5hbWUgKElORFYsIDB4MDApCiAgICAgICAgICAgIE1ldGhv
ZCAoTUhRSSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKE1I
R0ksIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5h
bWUgKFJFVEIsIEJ1ZmZlciAoMHgxMCkge30pCiAgICAgICAgICAgICAgICBDcmVhdGVCeXRl
RmllbGQgKFJFVEIsIDB4MDAsIE1IR1MpCiAgICAgICAgICAgICAgICBMb2NhbDAgPSAoMHgw
MSA8PCBBcmcwKQogICAgICAgICAgICAgICAgSWYgKChJTkRWICYgTG9jYWwwKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVGaWVs
ZCAoUkVUQiwgMHgwOCwgMHg3OCwgQlJCVSkKICAgICAgICAgICAgICAgICAgICAgICAgQlJC
VSA9IElQTUIgLyogXElQTUIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgTUhHUyA9IDB4
MTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgo
QXJnMCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIENyZWF0ZUZpZWxkIChSRVRCLCAweDA4LCAweDE4LCBSUkJVKQogICAgICAgICAg
ICAgICAgICAgICAgICBSUkJVID0gSVBNUiAvKiBcSVBNUiAqLwogICAgICAgICAgICAgICAg
ICAgICAgICBNSEdTID0gMHgwNAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICBFbHNlSWYgKChBcmcwID09IDB4MDgpKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRmllbGQgKFJFVEIsIDB4MTAsIDB4MTgs
IE9EQlUpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoUkVUQiwg
MHgwMSwgTUhHWikKICAgICAgICAgICAgICAgICAgICAgICAgT0RCVSA9IElQTU8gLyogXElQ
TU8gKi8KICAgICAgICAgICAgICAgICAgICAgICAgTUhHUyA9IDB4MDUKICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSAweDA5KSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUZp
ZWxkIChSRVRCLCAweDEwLCAweDA4LCBBVUJVKQogICAgICAgICAgICAgICAgICAgICAgICBB
VUJVID0gSVBNQSAvKiBcSVBNQSAqLwogICAgICAgICAgICAgICAgICAgICAgICBSRVRCIFsw
eDAxXSA9IDB4MDEKICAgICAgICAgICAgICAgICAgICAgICAgTUhHUyA9IDB4MDMKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSAw
eDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMSA9IFZEWU4gKDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIFJFVEIg
WzB4MDJdID0gKExvY2FsMSAmIDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MSA+Pj0gMHgwNAogICAgICAgICAgICAgICAgICAgICAgICBSRVRCIFsweDAxXSA9IChMb2Nh
bDEgJiAweDBGKQogICAgICAgICAgICAgICAgICAgICAgICBNSEdTID0gMHgwMwogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1
cm4gKFJFVEIpIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLkhLRVkuTUhHSS5SRVRCICovCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTUhTSSwgMiwgTm90U2VyaWFsaXpl
ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gKDB4MDEgPDwgQXJn
MCkKICAgICAgICAgICAgICAgIElmICgoSU5EViAmIExvY2FsMCkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDgpKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFyZzEpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChIOERS
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMSA9IEhQQlUgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uSFBCVSAq
LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IChSQkVDICgweDQ3KSAmIDB4MDEpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9
PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IFZEWU4gKDB4MDEsIEFyZzEpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBTY29wZSAoSEtFWSkKICAg
ICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoUFdNQywgMCwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICB9
CgogICAgICAgICAgICBNZXRob2QgKFBXTUcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IFBXTUggLyogXF9TQl8uUENJMC5MUEMw
LkVDMF8uUFdNSCAqLwogICAgICAgICAgICAgICAgTG9jYWwwIDw8PSAweDA4CiAgICAgICAg
ICAgICAgICBMb2NhbDAgfD0gUFdNTCAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5QV01MICov
CiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgfQogICAgICAg
IH0KCiAgICAgICAgU2NvcGUgKEhLRVkpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChX
R0ZMLCAweDAwKQogICAgICAgICAgICBNZXRob2QgKFdTSUYsIDAsIE5vdFNlcmlhbGl6ZWQp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXTFNXLCAwLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MTAwMTAwMDEpCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoR1dBTiwgMCwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAg
ICAgSWYgKChXR0ZMICYgMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwIHw9IDB4MDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBJZiAoKFdHRkwgJiAweDA4KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBJZiAoV1BXUyAoKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgfD0gMHgwMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2Fs
MCB8PSAweDA0CiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgTWV0aG9kIChTV0FOLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgJiAweDAyKSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBXUFdDICgweDAxKQogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFdQV0MgKDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIE1ldGhvZCAoR0JEQywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgSWYgKChX
R0ZMICYgMHgxMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9j
YWwwIHw9IDB4MDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKFdH
RkwgJiAweDgwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1
cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQlBX
UyAoKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0g
MHgwMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMCB8PSAweDA0
CiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChTQkRDLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoKEFyZzAgJiAweDAyKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBCUFdDICgweDAxKQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJQ
V0MgKDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE1ldGhvZCAoV1BXUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgSWYgKEg4RFIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gRENXVyAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5EQ1dXICovCiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKChSQkVDICgweDNBKSAmIDB4NDApID4+IDB4
MDYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDAp
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoV1BXQywgMSwgTm90U2VyaWFs
aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwICYmICgoV0dG
TCAmIDB4MDEpICYmICEoV0dGTCAmIDB4MDgKICAgICAgICAgICAgICAgICAgICApKSkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEg4RFIpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEQ1dXID0gT25lCiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1CRUMgKDB4M0EsIDB4RkYsIDB4
NDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBXR0ZMIHw9
IDB4MDIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoSDhEUikKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERDV1cgPSBaZXJvCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1CRUMgKDB4M0EsIDB4QkYsIDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBXR0ZMICY9IDB4RkZG
RkZGRkZGRkZGRkZGRAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNZXRob2QgKEJQV1MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIElmIChIOERSKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIExvY2FsMCA9IERDQkQgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uRENCRCAqLwog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9ICgoUkJFQyAoMHgzQSkgJiAweDEwKSA+
PiAweDA0KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoTG9j
YWwwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEJQV0MsIDEsIE5vdFNl
cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCAmJiAo
KFdHRkwgJiAweDEwKSAmJiAhKFdHRkwgJiAweDgwCiAgICAgICAgICAgICAgICAgICAgKSkp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChIOERSKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRENCRCA9IE9uZQog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNQkVDICgweDNBLCAweEZG
LCAweDEwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgV0dG
TCB8PSAweDIwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEg4RFIpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEQ0JEID0gWmVybwogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNQkVDICgweDNBLCAweEVGLCAweDAw
KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgV0dGTCAmPSAw
eEZGRkZGRkZGRkZGRkZGREYKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgTWV0aG9kIChXR0lOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBXR0ZMID0gMHgwMAogICAgICAgICAgICAgICAgV0dGTCA9IFdH
U1YgKDB4MDEpCiAgICAgICAgICAgICAgICBJZiAoV0lOOCkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBJZiAoKFdHRkwgJiYgMHgxMCkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCUFdDICgweDAxKQogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoV1BX
UyAoKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBXR0ZMIHw9IDB4
MDIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQlBXUyAoKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBXR0ZMIHw9IDB4MjAKICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXR1BTLCAx
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFy
ZzAgPj0gMHgwNCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQkxU
SCAoMHgwNSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TWV0aG9kIChXR1dLLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBOb29wCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChc
X1NCLlBDSTAuTFBDMC5FQzApCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9RNDEs
IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIF5IS0VZLk1IS1EgKDB4NzAwMCkKICAgICAg
ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKEhLRVkpCiAgICAgICAgewogICAg
ICAgICAgICBNdXRleCAoQkZXTSwgMHgwMCkKICAgICAgICAgICAgTWV0aG9kIChNSENGLCAx
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAg
PSBCRldDIChBcmcwKQogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTUhQRiwgMSwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoUkVUQiwgQnVmZmVyICgweDI1KSB7
fSkKICAgICAgICAgICAgICAgIEFjcXVpcmUgKEJGV00sIDB4RkZGRikKICAgICAgICAgICAg
ICAgIElmICgoU2l6ZU9mIChBcmcwKSA8PSAweDI1KSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBCRldCID0gQXJnMAogICAgICAgICAgICAgICAgICAgIFNsZWVw
ICgweDAyKQogICAgICAgICAgICAgICAgICAgIElmIChCRldQICgpKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ0hLUyAoKQogICAgICAgICAgICAg
ICAgICAgICAgICBCRldMICgpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICBSRVRCID0gQkZXQiAvKiBcQkZXQiAqLwogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIFJlbGVhc2UgKEJGV00pCiAgICAgICAgICAgICAgICBSZXR1cm4gKFJF
VEIpIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLkhLRVkuTUhQRi5SRVRCICovCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTUhJRiwgMSwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoUkVUQiwgQnVmZmVyICgweDBBKSB7
fSkKICAgICAgICAgICAgICAgIEFjcXVpcmUgKEJGV00sIDB4RkZGRikKICAgICAgICAgICAg
ICAgIEJGV0cgKEFyZzApCiAgICAgICAgICAgICAgICBSRVRCID0gQkZXQiAvKiBcQkZXQiAq
LwogICAgICAgICAgICAgICAgUmVsZWFzZSAoQkZXTSkKICAgICAgICAgICAgICAgIFJldHVy
biAoUkVUQikgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uSEtFWS5NSElGLlJFVEIgKi8KICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChNSERNLCAxLCBOb3RTZXJpYWxpemVk
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBCRE1DIChBcmcwKQogICAgICAgICAg
ICB9CiAgICAgICAgfQoKICAgICAgICBTY29wZSAoSEtFWSkKICAgICAgICB7CiAgICAgICAg
ICAgIE1ldGhvZCAoUFNTRywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgUmV0dXJuIChQU0lGICgweDAwLCAweDAwKSkKICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgTWV0aG9kIChQU1NTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBTSUYgKDB4MDEsIEFyZzApKQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBTQlMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFNJRiAoMHgwMiwgQXJnMCkp
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoQklDRywgMSwgTm90U2VyaWFs
aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChQU0lGICgweDAz
LCBBcmcwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChCSUNTLCAxLCBO
b3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBT
SUYgKDB4MDQsIEFyZzApKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEJD
VEcsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJl
dHVybiAoUFNJRiAoMHgwNSwgQXJnMCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l
dGhvZCAoQkNDUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUmV0dXJuIChQU0lGICgweDA2LCBBcmcwKSkKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChCQ1NHLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZXR1cm4gKFBTSUYgKDB4MDcsIEFyZzApKQogICAgICAgICAgICB9
CgogICAgICAgICAgICBNZXRob2QgKEJDU1MsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFNJRiAoMHgwOCwgQXJnMCkpCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoQkRTRywgMSwgTm90U2VyaWFsaXplZCkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChQU0lGICgweDA5LCBBcmcw
KSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChCRFNTLCAxLCBOb3RTZXJp
YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBTSUYgKDB4
MEEsIEFyZzApKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBTY29wZSAoSEtF
WSkKICAgICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoR0lMTiwgMCwgTm90U2VyaWFsaXpl
ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgoMHgwMiB8IElMTkYp
KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFNJTE4sIDEsIE5vdFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoMHgwMSA9PSBBcmcw
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJTE5GID0gMHgwMQog
ICAgICAgICAgICAgICAgICAgIEJCTFMgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgUmV0
dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgo
MHgwMiA9PSBBcmcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ
TE5GID0gMHgwMAogICAgICAgICAgICAgICAgICAgIEJCTFMgPSAweDAxCiAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo
MHgwMSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0
aG9kIChHTFNJLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBJZiAoSDhEUikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKCgweDAyICsgSFBMRCkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICBFbHNlSWYgKChSQkVDICgweDQ2KSAmIDB4MDQpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9
CgogICAgICAgIFNjb3BlIChIS0VZKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChH
RExOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZXR1cm4gKCgweDAyIHwgUExVWCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv
ZCAoU0RMTiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgSWYgKCgweDAxID09IEFyZzApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFBMVVggPSAweDAxCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoMHgwMiA9PSBBcmcw
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQTFVYID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAg
ICB9CgogICAgICAgIE1ldGhvZCAoRFRSMSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7
CiAgICAgICAgICAgIElmIChQU1NUKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZXR1cm4gKDB4MDEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoMHgwMCkK
ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoRFRSMiwgMCwgTm90U2VyaWFsaXplZCkKICAg
ICAgICB7CiAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICB9CgogICAgICAgIE1l
dGhvZCAoRFROMSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElm
ICgoUkJFQyAoMHg0NikgJiAweDQwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
UmV0dXJuICgweDAxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKDB4MDAp
CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKERUTjIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgfQoKICAgICAgICBN
ZXRob2QgKERQUzEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJ
ZiAoSDhEUikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChEVFIxICgp
KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgUmV0dXJuIChEVE4xICgpKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAg
ICAgICBNZXRob2QgKERQUzIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg
ICAgICBJZiAoSDhEUikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChE
VFIyICgpKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmV0dXJuIChEVE4yICgpKQogICAgICAgICAgICB9CiAgICAgICAg
fQoKICAgICAgICBNZXRob2QgKExBUFMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewog
ICAgICAgICAgICBJZiAoQ1FMUykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0
dXJuICgweDAxKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICB9CiAgICAgICAg
fQoKICAgICAgICBTY29wZSAoXF9TQi5QQ0kwLkxQQzAuRUMwKQogICAgICAgIHsKICAgICAg
ICAgICAgTWV0aG9kIChXR1BJLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAweDAxQTAKICAgICAgICAgICAgICAgIFdNRU0gKDB4
RkVEODE1MDAsIExvY2FsMCwgMHgxNywgMHgwMSwgMHgwMCkKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgTWV0aG9kIChXR1BPLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAxQTAKICAgICAgICAgICAgICAgIFdNRU0g
KDB4RkVEODE1MDAsIExvY2FsMCwgMHgxNywgMHgwMSwgMHgwMSkKICAgICAgICAgICAgICAg
IFdNRU0gKDB4RkVEODE1MDAsIExvY2FsMCwgMHgxNiwgMHgwMSwgMHgwMCkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChEUFJTLCAwLCBTZXJpYWxpemVkKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBEUFMxICgpCiAgICAgICAgICAgICAg
ICBMb2NhbDEgPSBMQVBTICgpCiAgICAgICAgICAgICAgICBMb2NhbDEgfD0gKExvY2FsMCA8
PCAweDAxKQogICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKExvY2FsMSkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFdHUEkgKCkKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFdHUEkgKCkKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFdHUEkgKCkKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMykKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFdHUE8gKCkKICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg
ICAgICAgICBNZXRob2QgKF9RNEUsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBR
dWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERQUlMg
KCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKEhLRVkpCiAgICAg
ICAgewogICAgICAgICAgICBNZXRob2QgKEdQU1MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChIOERSKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIElmICgoRFRSMSAoKSB8fCBEVFIyICgpKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDEKICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMAogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs
c2VJZiAoKERUTjEgKCkgfHwgRFROMiAoKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwxID0gMHgwMQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2Fs
MSA9IDB4MDAKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDAgPSAw
eDAxCiAgICAgICAgICAgICAgICBMb2NhbDAgfD0gKExvY2FsMSA8PCAweDAxKQogICAgICAg
ICAgICAgICAgTG9jYWwwICY9IDB4MDMKICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWww
KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBTY29wZSAoSEtFWSkKICAgICAg
ICB7CiAgICAgICAgICAgIE1ldGhvZCAoR1NTUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAg
Q3JlYXRlQnl0ZUZpZWxkIChWRURJLCAweDY2LCBFRkIxKQogICAgICAgICAgICAgICAgSWYg
KCgoKFNIRFcgJiAweDgwKSA9PSAweDAwKSAmJiAoKEVGQjEgJiAweDgwCiAgICAgICAgICAg
ICAgICAgICAgKSA9PSAweDgwKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwIHw9IDB4MDAwMTAwMDAKICAgICAgICAgICAgICAgICAgICBJZiAoKChF
UEFPICYgMHgwMSkgJiYgKFNIRFcgJiAweDAxKSkpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gMHgwMDAyMDAwMAogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKFNI
RFcgJiAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDAgfD0gMHgwMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMCB8
PSAweDMyMDAwMDAwCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChTU1NTLCAxLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFZFREksIDB4NjYs
IEVGQjEpCiAgICAgICAgICAgICAgICBJZiAoKCgoU0hEVyAmIDB4ODApID09IDB4MDApICYm
ICgoRUZCMSAmIDB4ODAKICAgICAgICAgICAgICAgICAgICApID09IDB4ODApKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChFUEFPICYgMHgwMSkgPT0g
MHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ
ZiAoKEFyZzAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIElmICgoKFNIRFcgJiAweDAxKSAhPSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTQ01TICgweDFFKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIRFcgPSAo
U0hEVyAmIDB4RkZGRkZGRkZGRkZGRkZGRSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBNSEtRICgweDEzMEYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0
dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgw
MSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoKFNIRFcgJiAweDAxKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ01TICgweDFGKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIRFcgPSAoU0hEVyB8IDB4MDEpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUhLUSAoMHgxMzBGKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoRVBBTyAmIDB4MDEpID09IDB4MDEp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu
ICgweDAwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBSZXR1cm4gKDB4ODAwMDAwMDApCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIE1ldGhvZCAoVFNTUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChWRURJLCAweDY2LCBFRkIxKQogICAgICAg
ICAgICAgICAgSWYgKCgoKFNIRFcgJiAweDgwKSA9PSAweDAwKSAmJiAoKEVGQjEgJiAweDgw
CiAgICAgICAgICAgICAgICAgICAgKSA9PSAweDgwKSkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgSWYgKCgoU0hEVyAmIDB4MDEpICE9IDB4MDApKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU1NTUyAoMHgwMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoU0hEVyAmIDB4MDEpID09IDB4MDApKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU1NTUyAoMHgw
MSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4
ODAwMDAwMDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoQ1NTUywgMCwg
Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoKFNI
RFcgJiAweDgwKSA9PSAweDAwKSAmJiAoKFNIRFcgJiAKICAgICAgICAgICAgICAgICAgICAw
eDAxKSAhPSAweDAwKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
UmV0dXJuIChTU1NTICgweDAxKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNT
U1MgKDB4MDApKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoK
ICAgICAgICBTY29wZSAoSEtFWSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKEFNMDAs
IDB4MDApCiAgICAgICAgICAgIE5hbWUgKEFNMDEsIDB4MDApCiAgICAgICAgICAgIE5hbWUg
KEFNMDIsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKEFNMDMsIDB4MDApCiAgICAgICAgICAg
IE5hbWUgKEFNMDQsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKEFNMDUsIDB4MDApCiAgICAg
ICAgICAgIE5hbWUgKEFNMDYsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKEFNMDcsIDB4MDAp
CiAgICAgICAgICAgIE5hbWUgKEFNMDgsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKEFNMDks
IDB4MDApCiAgICAgICAgICAgIE5hbWUgKEFNMEEsIDB4MDApCiAgICAgICAgICAgIE5hbWUg
KEFNMEIsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKEFNMEMsIDB4MDApCiAgICAgICAgICAg
IE5hbWUgKEFNMEQsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKEFNMEUsIDB4MDApCiAgICAg
ICAgICAgIE5hbWUgKEFNMEYsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKEZOTEIsIDB4MDAp
CiAgICAgICAgICAgIE5hbWUgKFFDS0IsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKFFDTVMs
IDB4MDApCiAgICAgICAgICAgIE1ldGhvZCAoTFFDQywgMSwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxID0gKEFyZzAgJiAweEZGRkYpCiAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICBJZiAoKExvY2Fs
MSA9PSAweDAxMDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExv
Y2FsMSA9IDB4MDEKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAxMDEpKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKEFyZzAgJiAweDAw
MDEwMDAwKSA9PSAweDAwMDEwMDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoUUNNUyA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQU0wMCA9IChIQU0wICYgMHgw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFNMDEgPSAoSEFNMSAmIDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBTTAyID0gKEhBTTIgJiAweDc4KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQU0wMyA9IChIQU0zICYgMHhCMikKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFNMDQgPSAoSEFNNCAmIDB4MDEpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBTTA1ID0gKEhBTTUgJiAweDAwKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQU0wNiA9IChIQU02ICYgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFNMDcgPSAoSEFNNyAmIDB4NzApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTTA4
ID0gKEhBTTggJiAweDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQU0wOSA9IChI
QU05ICYgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFNMEEgPSAoSEFNQSAm
IDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTTBCID0gKEhBTUIgJiAweDAw
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQU0wQyA9IChIQU1DICYgMHhGRikKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFNMEQgPSAoSEFNRCAmIDB4RkYpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBTTBFID0gKEhBTUUgJiAweDdEKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQU0wRiA9IChIQU1GICYgMHg0NykKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEhBTTAgJj0gMHhGRkZGRkZGRkZGRkZGRkZGCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBIQU0xICY9IDB4RkZGRkZGRkZGRkZGRkZGRgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSEFNMiAmPSAweEZGRkZGRkZGRkZGRkZGODcKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEhBTTMgJj0gMHhGRkZGRkZGRkZGRkZGRjRECiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBIQU00ICY9IDB4RkZGRkZGRkZGRkZGRkZGRQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSEFNNSAmPSAweEZGRkZGRkZGRkZGRkZGRkYKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEhBTTYgJj0gMHhGRkZGRkZGRkZGRkZGRkZGCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBIQU03ICY9IDB4RkZGRkZGRkZGRkZGRkY4RgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSEFNOCAmPSAweEZGRkZGRkZGRkZGRkZGRjcKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEhBTTkgJj0gMHhGRkZGRkZGRkZGRkZGRkZGCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBIQU1BICY9IDB4RkZGRkZGRkZGRkZGRkZGRgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSEFNQiAmPSAweEZGRkZGRkZGRkZGRkZGRkYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEhBTUMgJj0gMHhGRkZGRkZGRkZGRkZGRjAwCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBIQU1EICY9IDB4RkZGRkZGRkZGRkZGRkYwMAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSEFNRSAmPSAweEZGRkZGRkZGRkZGRkZGODIKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEhBTUYgJj0gMHhGRkZGRkZGRkZGRkZGRkI4CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBGTkxCID0gRVNGTCAvKiBcX1NCXy5QQ0kwLkxQ
QzAuRUMwXy5FU0ZMICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU0ZMID0gMHgw
MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUUNLQiA9IFFDT04gLyogXF9TQl8uUENJ
MC5MUEMwLkVDMF8uUUNPTiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgUUNPTiA9
IDB4MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFDTVMgPSAweDAxCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgRWxzZUlmICgoUUNNUyA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIEhBTTAgfD0gQU0wMCAvKiBcX1NCXy5QQ0kwLkxQ
QzAuRUMwXy5IQU0wICovCiAgICAgICAgICAgICAgICAgICAgICAgIEhBTTEgfD0gQU0wMSAv
KiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IQU0xICovCiAgICAgICAgICAgICAgICAgICAgICAg
IEhBTTIgfD0gQU0wMiAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IQU0yICovCiAgICAgICAg
ICAgICAgICAgICAgICAgIEhBTTMgfD0gQU0wMyAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5I
QU0zICovCiAgICAgICAgICAgICAgICAgICAgICAgIEhBTTQgfD0gQU0wNCAvKiBcX1NCXy5Q
Q0kwLkxQQzAuRUMwXy5IQU00ICovCiAgICAgICAgICAgICAgICAgICAgICAgIEhBTTUgfD0g
QU0wNSAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IQU01ICovCiAgICAgICAgICAgICAgICAg
ICAgICAgIEhBTTYgfD0gQU0wNiAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IQU02ICovCiAg
ICAgICAgICAgICAgICAgICAgICAgIEhBTTcgfD0gQU0wNyAvKiBcX1NCXy5QQ0kwLkxQQzAu
RUMwXy5IQU03ICovCiAgICAgICAgICAgICAgICAgICAgICAgIEhBTTggfD0gQU0wOCAvKiBc
X1NCXy5QQ0kwLkxQQzAuRUMwXy5IQU04ICovCiAgICAgICAgICAgICAgICAgICAgICAgIEhB
TTkgfD0gQU0wOSAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IQU05ICovCiAgICAgICAgICAg
ICAgICAgICAgICAgIEhBTUEgfD0gQU0wQSAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IQU1B
ICovCiAgICAgICAgICAgICAgICAgICAgICAgIEhBTUIgfD0gQU0wQiAvKiBcX1NCXy5QQ0kw
LkxQQzAuRUMwXy5IQU1CICovCiAgICAgICAgICAgICAgICAgICAgICAgIEhBTUMgfD0gQU0w
QyAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IQU1DICovCiAgICAgICAgICAgICAgICAgICAg
ICAgIEhBTUQgfD0gQU0wRCAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IQU1EICovCiAgICAg
ICAgICAgICAgICAgICAgICAgIEhBTUUgfD0gQU0wRSAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMw
Xy5IQU1FICovCiAgICAgICAgICAgICAgICAgICAgICAgIEhBTUYgfD0gQU0wRiAvKiBcX1NC
Xy5QQ0kwLkxQQzAuRUMwXy5IQU1GICovCiAgICAgICAgICAgICAgICAgICAgICAgIEVTRkwg
PSBGTkxCIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBfLkhLRVkuRk5MQiAqLwogICAgICAgICAg
ICAgICAgICAgICAgICBRQ09OID0gUUNLQiAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5IS0VZ
LlFDS0IgKi8KICAgICAgICAgICAgICAgICAgICAgICAgUUNNUyA9IDB4MDAKICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAg
ICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IpCiAgICB7CiAgICAgICAg
TmFtZSAoSElERywgVG9VVUlEICgiM2NkZmY2ZjctNDI2Ny00NTU1LWFkMDUtYjMwYTNkODkz
OGRlIikgLyogSElEIEkyQyBEZXZpY2UgKi8pCiAgICAgICAgTWV0aG9kIChISURELCA1LCBT
ZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcwID09IEhJREcpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IE9uZSkpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1
ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09
IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChB
cmc0KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1
cm4gKEJ1ZmZlciAoMHgwMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIDB4MDAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAg
ICAgICAgIH0pCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEkyQ00sIDMsIFNlcmlhbGl6
ZWQpCiAgICAgICAgewogICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMCkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENhc2UgKDB4MDApCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoSUlDQSwgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2Vy
aWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLkky
Q0EiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1l
ciwgX1kxRiwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk
IChJSUNBLCBcX1NCLkkyQ00uX1kxRi5fQURSLCBEQURBKSAgLy8gX0FEUjogQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKElJQ0EsIFxfU0IuSTJDTS5f
WTFGLl9TUEUsIERTUEEpICAvLyBfU1BFOiBTcGVlZAogICAgICAgICAgICAgICAgICAgIERB
REEgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgRFNQQSA9IEFyZzIKICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKElJQ0EpIC8qIFxfU0JfLkkyQ00uSUlDQSAqLwogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgwMSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBOYW1lIChJSUNCLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxC
dXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuSTJDQiIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBf
WTIwLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKElJ
Q0IsIFxfU0IuSTJDTS5fWTIwLl9BRFIsIERBREIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAg
ICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoSUlDQiwgXF9TQi5JMkNNLl9ZMjAu
X1NQRSwgRFNQQikgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICAgICAgREFEQiA9
IEFyZzEKICAgICAgICAgICAgICAgICAgICBEU1BCID0gQXJnMgogICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoSUlDQikgLyogXF9TQl8uSTJDTS5JSUNCICovCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIE5hbWUgKElJQ0MsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1Yy
ICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5JMkNDIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZMjEs
IEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg
ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUlDQywg
XF9TQi5JMkNNLl9ZMjEuX0FEUiwgREFEQykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChJSUNDLCBcX1NCLkkyQ00uX1kyMS5fU1BF
LCBEU1BDKSAgLy8gX1NQRTogU3BlZWQKICAgICAgICAgICAgICAgICAgICBEQURDID0gQXJn
MQogICAgICAgICAgICAgICAgICAgIERTUEMgPSBBcmcyCiAgICAgICAgICAgICAgICAgICAg
UmV0dXJuIChJSUNDKSAvKiBcX1NCXy5JMkNNLklJQ0MgKi8KICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgTmFtZSAoSUlDRCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4
MDAwMCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLkkyQ0QiLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1kyMiwgRXhj
bHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChJSUNELCBcX1NC
LkkyQ00uX1kyMi5fQURSLCBEQUREKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKElJQ0QsIFxfU0IuSTJDTS5fWTIyLl9TUEUsIERT
UEQpICAvLyBfU1BFOiBTcGVlZAogICAgICAgICAgICAgICAgICAgIERBREQgPSBBcmcxCiAg
ICAgICAgICAgICAgICAgICAgRFNQRCA9IEFyZzIKICAgICAgICAgICAgICAgICAgICBSZXR1
cm4gKElJQ0QpIC8qIFxfU0JfLkkyQ00uSUlDRCAqLwogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0KICAg
ICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5JMkNBKQogICAgewogICAgICAgIE5hbWUg
KEkyQ04sIDB4MDApCiAgICAgICAgTmFtZSAoSTJDWCwgMHgwMCkKICAgICAgICBJMkNOID0g
SUMwRSAvKiBcX1NCXy5JQzBFICovCiAgICAgICAgSTJDWCA9IDB4MDAKICAgIH0KCiAgICBT
Y29wZSAoX1NCLkkyQ0IpCiAgICB7CiAgICAgICAgTmFtZSAoSTJDTiwgMHgwMCkKICAgICAg
ICBOYW1lIChJMkNYLCAweDAwKQogICAgICAgIEkyQ04gPSBJQzFFIC8qIFxfU0JfLklDMUUg
Ki8KICAgICAgICBJMkNYID0gMHgwMQogICAgfQoKICAgIFNjb3BlIChfU0IuSTJDQykKICAg
IHsKICAgICAgICBOYW1lIChJMkNOLCAweDAwKQogICAgICAgIE5hbWUgKEkyQ1gsIDB4MDAp
CiAgICAgICAgSTJDTiA9IElDMkUgLyogXF9TQl8uSUMyRSAqLwogICAgICAgIEkyQ1ggPSAw
eDAyCiAgICB9CgogICAgU2NvcGUgKF9TQi5JMkNCKQogICAgewogICAgICAgIERldmljZSAo
VFBEMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKEhJRDIsIDB4MDApCiAgICAgICAg
ICAgIE5hbWUgKFNCRkIsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRl
ZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQs
ICJOVUxMIiwKICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBf
WTIzLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9KQog
ICAgICAgICAgICBOYW1lIChTQkZHLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIEdwaW9JbnQgKExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2
ZUFuZFdha2UsIFB1bGxVcCwgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICJcXF9TQi5H
UElPIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMDAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAg
ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkIsIFxfU0IuSTJDQi5UUEQwLl9ZMjMuX0FE
UiwgQkFEUikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs
ZCAoU0JGQiwgXF9TQi5JMkNCLlRQRDAuX1kyMy5fU1BFLCBTUEVEKSAgLy8gX1NQRTogU3Bl
ZWQKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChTQkZHLCAweDE3LCBJTlQxKQogICAg
ICAgICAgICBOYW1lIChJVE1MLCBQYWNrYWdlICgweDA4KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIDB4MDRGMywgCiAgICAgICAgICAgICAgICAgICAgMHgzMTk1LCAKICAgICAg
ICAgICAgICAgICAgICAweDE1LCAKICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAg
ICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAiRUxBTjA2NzYiCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDRGMywgCiAgICAgICAgICAg
ICAgICAgICAgMHgzMjBCLCAKICAgICAgICAgICAgICAgICAgICAweDE1LCAKICAgICAgICAg
ICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAg
ICAgICAgICAgICAiRUxBTjA2ODgiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
ICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIDB4MDRGMywgCiAgICAgICAgICAgICAgICAgICAgMHgzMTk2LCAKICAgICAgICAgICAg
ICAgICAgICAweDE1LCAKICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAg
ICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAiRUxBTjA2NzciCiAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDRGMywgCiAgICAgICAgICAgICAgICAg
ICAgMHgzMjBDLCAKICAgICAgICAgICAgICAgICAgICAweDE1LCAKICAgICAgICAgICAgICAg
ICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAg
ICAgICAiRUxBTjA2ODkiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDA2KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4
MDZDQiwgCiAgICAgICAgICAgICAgICAgICAgMHhDRTY3LCAKICAgICAgICAgICAgICAgICAg
ICAweDJDLCAKICAgICAgICAgICAgICAgICAgICAweDIwLCAKICAgICAgICAgICAgICAgICAg
ICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAiU1lOQTgwMTgiCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIDB4MDZDQiwgCiAgICAgICAgICAgICAgICAgICAgMHhD
RTY4LCAKICAgICAgICAgICAgICAgICAgICAweDJDLCAKICAgICAgICAgICAgICAgICAgICAw
eDIwLCAKICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAi
U1lOQTgwMTkiCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDA2KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDZDQiwg
CiAgICAgICAgICAgICAgICAgICAgMHhDRUM2LCAKICAgICAgICAgICAgICAgICAgICAweDJD
LCAKICAgICAgICAgICAgICAgICAgICAweDIwLCAKICAgICAgICAgICAgICAgICAgICAweDAx
LCAKICAgICAgICAgICAgICAgICAgICAiU1lOQTgwMUEiCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIDB4MDZDQiwgCiAgICAgICAgICAgICAgICAgICAgMHhDRUM3LCAK
ICAgICAgICAgICAgICAgICAgICAweDJDLCAKICAgICAgICAgICAgICAgICAgICAweDIwLCAK
ICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAiU1lOQTgw
MUIiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhv
ZCAoVUhNUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgTG9jYWwxID0gU2l6ZU9mIChJVE1M
KQogICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPCBMb2NhbDEpKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IERlcmVmT2YgKElUTUwgW0xv
Y2FsMF0pCiAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gRGVyZWZPZiAoTG9jYWwyIFsw
eDAwXSkKICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBEZXJlZk9mIChMb2NhbDIgWzB4
MDFdKQogICAgICAgICAgICAgICAgICAgIElmICgoVERWSSA9PSBMb2NhbDMpKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChURFBJID09IExv
Y2FsNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEJBRFIgPSBEZXJlZk9mIChMb2NhbDIgWzB4MDJdKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSElEMiA9IERlcmVmT2YgKExvY2FsMiBbMHgwM10pCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDUgPSBEZXJlZk9mIChMb2NhbDIgWzB4MDRdKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9IERlcmVmT2YgKExvY2FsMiBbMHgwNV0p
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsNSA9PSAweDAwKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTUEVEID0gMHgwMDAxODZBMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWw1ID09IDB4MDEpKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDUgPT0gMHgwMikpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU1BFRCA9IDB4MDAwRjQyNDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
IExvY2FsMCsrCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuICgw
eDAwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIElOVDEgPSAweDA4CiAgICAgICAgICAgICAgICBVSE1TICgpCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJYWFhYMDAwMCIpICAvLyBfSElEOiBIYXJk
d2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCAiUE5QMEM1MCIgLyogSElEIFByb3Rv
Y29sIERldmljZSAoSTJDIGJ1cykgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAg
ICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1T
cGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcw
ID09IEhJREcpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy
biAoSElERCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgSElEMikpCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDEpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAv
LyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoVERW
SSA9PSAweDAwKSAmJiAoVERQSSA9PSAweDAwKSkpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0
aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJj
ZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNh
dGVuYXRlUmVzVGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJBRFIsIFNQRUQpLCBTQkZHKSkKICAg
ICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLkkyQ0EpCiAgICB7
CiAgICAgICAgRGV2aWNlIChUUE5MKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoSElE
MiwgMHgwMCkKICAgICAgICAgICAgTmFtZSAoU0JGQiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBD
b250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgIEFk
ZHJlc3NpbmdNb2RlN0JpdCwgIk5VTEwiLAogICAgICAgICAgICAgICAgICAgIDB4MDAsIFJl
c291cmNlQ29uc3VtZXIsIF9ZMjQsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKFNCRkcsIFJlc291cmNlVGVtcGxh
dGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFj
dGl2ZUxvdywgU2hhcmVkQW5kV2FrZSwgUHVsbFVwLCAweDAwMDAsCiAgICAgICAgICAgICAg
ICAgICAgIlxcX1NCLkdQSU8iLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAg
ICAgICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0pCiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoU0JGQiwgXF9TQi5JMkNB
LlRQTkwuX1kyNC5fQURSLCBCQURSKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBD
cmVhdGVEV29yZEZpZWxkIChTQkZCLCBcX1NCLkkyQ0EuVFBOTC5fWTI0Ll9TUEUsIFNQRUQp
ICAvLyBfU1BFOiBTcGVlZAogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkcsIDB4
MTcsIElOVDEpCiAgICAgICAgICAgIE5hbWUgKElUTUwsIFBhY2thZ2UgKDB4MDkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgMHgyQTk0LCAKICAgICAgICAgICAgICAgICAgICAw
eEE4MTksIAogICAgICAgICAgICAgICAgICAgIDB4MTAsIAogICAgICAgICAgICAgICAgICAg
IDB4MDEsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAg
ICJHVENINzUwMyIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNEYz
LCAKICAgICAgICAgICAgICAgICAgICAweDJFREEsIAogICAgICAgICAgICAgICAgICAgIDB4
MTAsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgIDB4
MDEsIAogICAgICAgICAgICAgICAgICAgICJFTEFOOTAxQyIKICAgICAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgMHgwNEYzLCAKICAgICAgICAgICAgICAgICAgICAweDJFQTMs
IAogICAgICAgICAgICAgICAgICAgIDB4MTAsIAogICAgICAgICAgICAgICAgICAgIDB4MDEs
IAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICJFTEFO
OTAxQyIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNEYzLCAKICAg
ICAgICAgICAgICAgICAgICAweDJFREUsIAogICAgICAgICAgICAgICAgICAgIDB4MTAsIAog
ICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAog
ICAgICAgICAgICAgICAgICAgICJFTEFOOTAxQyIKICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgMHgwNEYzLCAKICAgICAgICAgICAgICAgICAgICAweDQxMTEsIAogICAg
ICAgICAgICAgICAgICAgIDB4MTAsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICJFTEFOOTAxQyIK
ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNEYzLCAKICAgICAgICAg
ICAgICAgICAgICAweDJGNTIsIAogICAgICAgICAgICAgICAgICAgIDB4MTAsIAogICAgICAg
ICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg
ICAgICAgICAgICAgICJFTEFOOTAxQyIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgMHgyOUJELCAKICAgICAgICAgICAgICAgICAgICAweDk5MDIsIAogICAgICAgICAg
ICAgICAgICAgIDB4MDksIAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAg
ICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICJMWFNUMjAyMSIKICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNEYzLCAKICAgICAgICAgICAgICAg
ICAgICAweDJFQTQsIAogICAgICAgICAgICAgICAgICAgIDB4MTAsIAogICAgICAgICAgICAg
ICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAg
ICAgICAgICJFTEFOOTAxQyIKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
MHgyOUJELCAKICAgICAgICAgICAgICAgICAgICAweDk5MDEsIAogICAgICAgICAgICAgICAg
ICAgIDB4MDksIAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAg
ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICJMWFNUMjAyMSIKICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChVSE1TLCAwLCBOb3RT
ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAw
CiAgICAgICAgICAgICAgICBMb2NhbDEgPSBTaXplT2YgKElUTUwpCiAgICAgICAgICAgICAg
ICBXaGlsZSAoKExvY2FsMCA8IExvY2FsMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwyID0gRGVyZWZPZiAoSVRNTCBbTG9jYWwwXSkKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDMgPSBEZXJlZk9mIChMb2NhbDIgWzB4MDBdKQogICAgICAgICAg
ICAgICAgICAgIExvY2FsNCA9IERlcmVmT2YgKExvY2FsMiBbMHgwMV0pCiAgICAgICAgICAg
ICAgICAgICAgSWYgKChUTFZJID09IExvY2FsMykpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRMUEkgPT0gTG9jYWw0KSkKICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IERl
cmVmT2YgKExvY2FsMiBbMHgwMl0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBISUQy
ID0gRGVyZWZPZiAoTG9jYWwyIFsweDAzXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExvY2FsNSA9IERlcmVmT2YgKExvY2FsMiBbMHgwNF0pCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfSElEID0gRGVyZWZPZiAoTG9jYWwyIFsweDA1XSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIElmICgoTG9jYWw1ID09IDB4MDApKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAw
MDE4NkEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChMb2NhbDUgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAw
NjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBJZiAoKExvY2FsNSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDBG
NDI0MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJYWFhYMDAwMCIpICAvLyBfSElEOiBIYXJk
d2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCAiUE5QMEM1MCIgLyogSElEIFByb3Rv
Y29sIERldmljZSAoSTJDIGJ1cykgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAg
ICAgICAgIE5hbWUgKF9TMFcsIDB4MDMpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0
ZQogICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5J
OiBJbml0aWFsaXplCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElOVDEgPSAweDIw
CiAgICAgICAgICAgICAgICBVSE1TICgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l
dGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBN
ZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IEhJREcp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoSElERCAo
QXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgSElEMikpCiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDEpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBT
dGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoVExWSSA9PSAweDAw
KSAmJiAoVExQSSA9PSAweDAwKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IFJldHVybiAoMHgwRikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQ1JT
LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5n
cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVz
VGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJBRFIsIFNQRUQpLCBTQkZHKSkKICAgICAgICAgICAg
fQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLkkyQ0IpCiAgICB7CiAgICAgICAg
RGV2aWNlIChORkMxKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkg
IC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIk5YUDEwMDEiKSAg
Ly8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0RETiwgIk5YUCBORkMg
Rm9yIFdpbjEwIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICBOYW1l
IChfVUlELCAweDAxKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE1ldGhvZCAo
X0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0
dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoUkJVRiwgUmVzb3Vy
Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEky
Y1NlcmlhbEJ1c1YyICgweDAwMjksIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwMTg2QTAs
CiAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLkky
Q0IiLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAs
IEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg
ICAgIEdwaW9JbnQgKExldmVsLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUsIFB1bGxOb25lLCAw
eDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUElPIiwgMHgwMCwgUmVz
b3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMDU0CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jl
c3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQ
SU8iLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAweDAwOUQKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAw
LCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAg
ICAgICAiXFxfU0IuR1BJTyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAg
ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxp
c3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MAogICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgUmV0dXJuIChS
QlVGKSAvKiBcX1NCXy5JMkNCLk5GQzEuX0NSUy5SQlVGICovCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0
YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFRQT1MgPj0gMHg2MCkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoUkZJTyAoMHg2
OSkgPT0gMHgwMCkgJiYgKE5GQ0YgPT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAp
CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQ0kwLkxQ
QzAuRUMwKQogICAgewogICAgICAgIERldmljZSAoTFNTRCkKICAgICAgICB7CiAgICAgICAg
ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIkxFTjAxMTEiKSkgIC8vIF9ISUQ6IEhhcmR3YXJl
IElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9T
VEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp
CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQ0kwLkxQ
QzAuRUMwLkhLRVkpCiAgICB7CiAgICAgICAgTmFtZSAoU1RUSSwgUGFja2FnZSAoMHgxNSkK
ICAgICAgICB7CiAgICAgICAgICAgIDB4MjAsIAogICAgICAgICAgICAweDIxLCAKICAgICAg
ICAgICAgMHgyMiwgCiAgICAgICAgICAgIDB4MjMsIAogICAgICAgICAgICAweDI0LCAKICAg
ICAgICAgICAgMHgyNSwgCiAgICAgICAgICAgIDB4MjYsIAogICAgICAgICAgICAweDI3LCAK
ICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgIDB4MjksIAogICAgICAgICAgICAweDJB
LCAKICAgICAgICAgICAgMHgyQiwgCiAgICAgICAgICAgIDB4MkMsIAogICAgICAgICAgICAw
eDJELCAKICAgICAgICAgICAgMHgyRSwgCiAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAg
ICAweDEzLCAKICAgICAgICAgICAgMHgwNiwgCiAgICAgICAgICAgIDB4MDgsIAogICAgICAg
ICAgICAweDAzLCAKICAgICAgICAgICAgMHgzMgogICAgICAgIH0pCiAgICAgICAgTmFtZSAo
U1RUUywgUGFja2FnZSAoMHgzNCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4
MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAg
IDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAg
ICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI3MDAsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAg
ICAgICAgICAgICAgICAweDAxODUsIAogICAgICAgICAgICAgICAgMHgwMzMwLCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGOTJC
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgzQTk4LCAKICAg
ICAgICAgICAgICAgIDB4NURDMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgIDB4NkQ2MCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAg
IDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgICAgICAweEZGRkZG
RkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhG
RkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAg
IDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgwOCwgCiAgICAgICAgICAgICAgICAw
eDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI3MDAs
IAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAg
ICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRDQsIAogICAgICAgICAg
ICAgICAgMHgwMkZELCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
MHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHhGOTE0LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgMHgzNkIwLCAKICAgICAgICAgICAgICAgIDB4MzZCMCwgCiAgICAgICAgICAg
ICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MzZCMCwgCiAgICAgICAgICAgICAgICAw
eDBBLCAKICAgICAgICAgICAgICAgIDB4NDYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1
OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMSwgCiAg
ICAgICAgICAgICAgICAweDAxODAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs
IAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZG
RkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAweDI3MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAg
ICAweDAxODUsIAogICAgICAgICAgICAgICAgMHgwMzMwLCAKICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGOTJCLCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0NjUwLCAKICAgICAgICAgICAgICAg
IDB4NURDMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4NkQ2
MCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAg
ICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHgwQSwgCiAgICAgICAgICAgICAgICAweDAxODAwMDAwLCAKICAgICAg
ICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAg
ICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs
IAogICAgICAgICAgICAgICAgMHgyNCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAg
ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI3MDAsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4
MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxODUsIAogICAgICAgICAgICAgICAgMHgwMzMw
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgMHhGOTJCLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0
NjUwLCAKICAgICAgICAgICAgICAgIDB4NURDMCwgCiAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgIDB4NkQ2MCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAg
ICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwQSwgCiAgICAgICAgICAgICAg
ICAweDAwNjAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAg
ICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAg
ICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgyMCwgCiAgICAgICAg
ICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAweDI3MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQy
LCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxODUsIAog
ICAgICAgICAgICAgICAgMHgwMzMwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHhGOTJCLCAKICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgMHg0NjUwLCAKICAgICAgICAgICAgICAgIDB4NURDMCwgCiAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4NkQ2MCwgCiAgICAgICAg
ICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAg
MHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
MHgwQSwgCiAgICAgICAgICAgICAgICAweDAwMUMwMDAwLCAKICAgICAgICAgICAgICAgIDB4
RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAg
ICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAg
ICAgICAgMHgyMiwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAg
MHgwMCwgCiAgICAgICAgICAgICAgICAweDI3MDAsIAogICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAg
ICAgICAgICAgICAweDAxODUsIAogICAgICAgICAgICAgICAgMHgwMzMwLCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGOTJCLCAK
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0NjUwLCAKICAgICAg
ICAgICAgICAgIDB4NURDMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgIDB4NkQ2MCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4
NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAweDAxODAwMDAw
LCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZG
RkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4
RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgICAgICAweDE5
OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDJBODAsIAog
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAg
ICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxOEEsIAogICAgICAgICAgICAg
ICAgMHgwMjIxLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMTM4LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHg1OUQ4LCAKICAgICAgICAgICAgICAgIDB4NkQ2MCwgCiAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgIDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDFF
LCAKICAgICAgICAgICAgICAgIDB4NjAsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAog
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwRCwgCiAgICAg
ICAgICAgICAgICAweDAwNjAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAog
ICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZG
LCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDI3MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAw
eDAxODUsIAogICAgICAgICAgICAgICAgMHgwMzMwLCAKICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGOTJCLCAKICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgzQTk4LCAKICAgICAgICAgICAgICAgIDB4
NURDMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4NkQ2MCwg
CiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAg
ICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th
Z2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAweDAwMUMwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAg
ICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAog
ICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI3MDAsIAogICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2
NiwgCiAgICAgICAgICAgICAgICAweDAxRDQsIAogICAgICAgICAgICAgICAgMHgwMkZELCAK
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
MHhGOTE0LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgyRUUw
LCAKICAgICAgICAgICAgICAgIDB4MkVFMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAg
ICAgICAgICAgICAgIDB4MkVFMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAg
ICAgICAgIDB4NDYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAw
eDAwNjAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAg
ICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAg
ICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAw
eDI3MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAK
ICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRDQsIAogICAg
ICAgICAgICAgICAgMHgwMkZELCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgMHhGOTE0LCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgzNkIwLCAKICAgICAgICAgICAgICAgIDB4M0U4MCwgCiAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4NDY1MCwgCiAgICAgICAgICAg
ICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgw
MDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZG
RkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAw
eEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAg
ICAgMHgzNCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAg
ICAgICAgICAweDAxOEEsIAogICAgICAgICAgICAgICAgMHgwMjIxLCAKICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMTM4LCAKICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0NjUwLCAKICAgICAgICAg
ICAgICAgIDB4NjU5MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
IDB4NzUzMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYs
IAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDEs
IAogICAgICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK
ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZG
RiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZG
RkZGRkYsIAogICAgICAgICAgICAgICAgMHgzOCwgCiAgICAgICAgICAgICAgICAweDE5OUEs
IAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAg
ICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRDQsIAogICAgICAgICAgICAgICAg
MHgwMkZELCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgMHhGOTE0LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgMHgzRTgwLCAKICAgICAgICAgICAgICAgIDB4M0U4MCwgCiAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgIDB4M0U4MCwgCiAgICAgICAgICAgICAgICAweDBBLCAK
ICAgICAgICAgICAgICAgIDB4NDYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAg
ICAgICAgICAweDAxODAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAg
ICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK
ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgzNCwgCiAg
ICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAx
OEEsIAogICAgICAgICAgICAgICAgMHgwMjIxLCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMTM4LCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHg1MjA4LCAKICAgICAgICAgICAgICAgIDB4NjU5
MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4NzUzMCwgCiAg
ICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAg
ICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAg
ICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAweDAwNjEwMDAwLCAKICAgICAgICAgICAg
ICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAg
ICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAg
ICAgICAgICAgICAgMHgzNCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAg
MHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2Niwg
CiAgICAgICAgICAgICAgICAweDAxOEEsIAogICAgICAgICAgICAgICAgMHgwMjIxLCAKICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw
MTM4LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg1MjA4LCAK
ICAgICAgICAgICAgICAgIDB4NjU5MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgIDB4NzUzMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAg
ICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwQSwgCiAgICAgICAgICAgICAgICAweDAx
ODAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAg
MHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAg
ICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgzQywgCiAgICAgICAgICAgICAg
ICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4
MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAg
ICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxOEEsIAogICAgICAg
ICAgICAgICAgMHgwMjIxLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgMHgwMTM4LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHg1MjA4LCAKICAgICAgICAgICAgICAgIDB4NjU5MCwgCiAgICAgICAg
ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4NzUzMCwgCiAgICAgICAgICAgICAg
ICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAy
OEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwQSwg
CiAgICAgICAgICAgICAgICAweDAwNjAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZG
RkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZG
RkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAg
MHgzQiwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAg
ICAgICAweDAxOEEsIAogICAgICAgICAgICAgICAgMHgwMjIxLCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMTM4LCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg1MjA4LCAKICAgICAgICAgICAg
ICAgIDB4NjU5MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4
NzUzMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAog
ICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDEsIAog
ICAgICAgICAgICAgICAgMHgwQSwgCiAgICAgICAgICAgICAgICAweDAwMUMwMDAwLCAKICAg
ICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwg
CiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZG
RkYsIAogICAgICAgICAgICAgICAgMHgzQSwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAog
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAg
IDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxOEEsIAogICAgICAgICAgICAgICAgMHgw
MjIxLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHgwMTM4LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
MHg1MjA4LCAKICAgICAgICAgICAgICAgIDB4NjU5MCwgCiAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgIDB4NzUzMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAg
ICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAg
ICAgICAweDAxODAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAg
ICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAg
ICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgzNSwgCiAgICAg
ICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAweDJCMDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAw
eDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRDQs
IAogICAgICAgICAgICAgICAgMHgwMjlELCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGNzhELCAKICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgMHg1REMwLCAKICAgICAgICAgICAgICAgIDB4N0QwMCwg
CiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4OENBMCwgCiAgICAg
ICAgICAgICAgICAweDFFLCAKICAgICAgICAgICAgICAgIDB4NjAsIAogICAgICAgICAgICAg
ICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4
MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAg
ICAgMHgwRCwgCiAgICAgICAgICAgICAgICAweDAwNjAwMDAwLCAKICAgICAgICAgICAgICAg
IDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAg
ICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAg
ICAgICAgICAgMHgzNCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAg
ICAgICAgICAgICAgICAweDAxOEEsIAogICAgICAgICAgICAgICAgMHgwMjIxLCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMTM4
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0NjUwLCAKICAg
ICAgICAgICAgICAgIDB4NjU5MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgIDB4NzUzMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAg
IDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IDB4MDEsIAogICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAweDAwMUMw
MDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhG
RkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAg
IDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgzOSwgCiAgICAgICAgICAgICAgICAw
eDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAs
IAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAg
ICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRDQsIAogICAgICAgICAg
ICAgICAgMHgwMkZELCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
MHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHhGOTE0LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgMHgzQTk4LCAKICAgICAgICAgICAgICAgIDB4M0E5OCwgCiAgICAgICAgICAg
ICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4M0E5OCwgCiAgICAgICAgICAgICAgICAw
eDBBLCAKICAgICAgICAgICAgICAgIDB4NDYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1
OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwRCwgCiAg
ICAgICAgICAgICAgICAweDAxODEwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs
IAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZG
RkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgz
NiwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAweDJDODAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAg
ICAweDAxOEEsIAogICAgICAgICAgICAgICAgMHgwMjIxLCAKICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMTM4LCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg2RDYwLCAKICAgICAgICAgICAgICAg
IDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4OUM0
MCwgCiAgICAgICAgICAgICAgICAweDFFLCAKICAgICAgICAgICAgICAgIDB4NjAsIAogICAg
ICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDEsIAogICAg
ICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAweDAwNjEwMDAwLCAKICAgICAg
ICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAg
ICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs
IAogICAgICAgICAgICAgICAgMHgzNSwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAg
ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDJCMDAsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4
MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRDQsIAogICAgICAgICAgICAgICAgMHgwMjlE
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgMHhGNzhELCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg1
REMwLCAKICAgICAgICAgICAgICAgIDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgIDB4OENBMCwgCiAgICAgICAgICAgICAgICAweDFFLCAKICAgICAg
ICAgICAgICAgIDB4NjAsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAg
ICAweDAwMTkwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAg
ICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAg
ICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgzNCwgCiAgICAgICAg
ICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQy
LCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxOEEsIAog
ICAgICAgICAgICAgICAgMHgwMjIxLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMTM4LCAKICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgMHg0NjUwLCAKICAgICAgICAgICAgICAgIDB4NjU5MCwgCiAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4NzUzMCwgCiAgICAgICAg
ICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAg
MHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAg
MHgwRCwgCiAgICAgICAgICAgICAgICAweDAwMDUwMDAwLCAKICAgICAgICAgICAgICAgIDB4
RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAg
ICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAg
ICAgICAgMHgzOSwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAg
MHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAg
ICAgICAgICAgICAweDAxRDQsIAogICAgICAgICAgICAgICAgMHgwMkZELCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGOTE0LCAK
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgzQTk4LCAKICAgICAg
ICAgICAgICAgIDB4M0E5OCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgIDB4M0E5OCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4
NDYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4
MDEsIAogICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAweDAwMTkwMDAw
LCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZG
RkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4
RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgzNCwgCiAgICAgICAgICAgICAgICAweDE5
OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI5MDAsIAog
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAg
ICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxOEEsIAogICAgICAgICAgICAg
ICAgMHgwMjIxLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMTM4LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHg0NjUwLCAKICAgICAgICAgICAgICAgIDB4NjFBOCwgCiAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgIDB4NzUzMCwgCiAgICAgICAgICAgICAgICAweDBB
LCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAog
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwNywgCiAgICAg
ICAgICAgICAgICAweDAwNjAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAog
ICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZG
LCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgzNCwg
CiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDI5MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAw
eDAxOEEsIAogICAgICAgICAgICAgICAgMHgwMjIxLCAKICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMTM4LCAKICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0NjUwLCAKICAgICAgICAgICAgICAgIDB4
NjFBOCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4NzUzMCwg
CiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAg
ICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th
Z2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAg
ICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAg
ICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAog
ICAgICAgICAgICAgICAgMHgwQSwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2
NiwgCiAgICAgICAgICAgICAgICAweDAxRjMsIAogICAgICAgICAgICAgICAgMHgwMjk4LCAK
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
MHhGNjNFLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0NjUw
LCAKICAgICAgICAgICAgICAgIDB4Njk3OCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAg
ICAgICAgICAgICAgIDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAg
ICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgICAgICAw
eEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAg
ICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAg
ICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAg
ICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAw
eDI3MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAK
ICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAyM0MsIAogICAg
ICAgICAgICAgICAgMHgwMTRGLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgMHhGRERFLCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgzQTk4LCAKICAgICAgICAgICAgICAgIDB4M0E5OCwgCiAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4M0E5OCwgCiAgICAgICAgICAg
ICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NDYsIAogICAgICAgICAgICAgICAgMHgw
MDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgw
MSwgCiAgICAgICAgICAgICAgICAweDAxODAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZG
RkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAw
eEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAg
ICAgMHgwQSwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAg
ICAgICAgICAweDAxRjMsIAogICAgICAgICAgICAgICAgMHgwMjk4LCAKICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGNjNFLCAKICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0RTIwLCAKICAgICAgICAg
ICAgICAgIDB4Njk3OCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
IDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYs
IAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDIs
IAogICAgICAgICAgICAgICAgMHgwQSwgCiAgICAgICAgICAgICAgICAweDAxODAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZG
RiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZG
RkZGRkYsIAogICAgICAgICAgICAgICAgMHgyQSwgCiAgICAgICAgICAgICAgICAweDE5OUEs
IAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAg
ICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRjMsIAogICAgICAgICAgICAgICAg
MHgwMjk4LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgMHhGNjNFLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgMHg0RTIwLCAKICAgICAgICAgICAgICAgIDB4Njk3OCwgCiAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgIDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDBBLCAK
ICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwQSwgCiAgICAgICAg
ICAgICAgICAweDAwNjAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAg
ICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK
ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgyNiwgCiAg
ICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAx
RjMsIAogICAgICAgICAgICAgICAgMHgwMjk4LCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGNjNFLCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHg0RTIwLCAKICAgICAgICAgICAgICAgIDB4Njk3
OCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4N0QwMCwgCiAg
ICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAg
ICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAg
ICAgICAgMHgwQSwgCiAgICAgICAgICAgICAgICAweDAwMUMwMDAwLCAKICAgICAgICAgICAg
ICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAg
ICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAg
ICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAg
MHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2Niwg
CiAgICAgICAgICAgICAgICAweDAxRjMsIAogICAgICAgICAgICAgICAgMHgwMjk4LCAKICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhG
NjNFLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0RTIwLCAK
ICAgICAgICAgICAgICAgIDB4Njk3OCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgIDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAg
ICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAweDAx
ODAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAg
MHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAg
ICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgwRSwgCiAgICAgICAgICAgICAg
ICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDJC
MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAg
ICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxQzQsIAogICAgICAg
ICAgICAgICAgMHgwM0JDLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgMHhFRUIyLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHg2MUE4LCAKICAgICAgICAgICAgICAgIDB4N0QwMCwgCiAgICAgICAg
ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4OTA4OCwgCiAgICAgICAgICAgICAg
ICAweDFFLCAKICAgICAgICAgICAgICAgIDB4NjAsIAogICAgICAgICAgICAgICAgMHgwMDAy
OEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwRCwg
CiAgICAgICAgICAgICAgICAweDAwNjAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZG
RkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZG
RkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAg
MHgwQSwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAg
ICAgICAweDAxRjMsIAogICAgICAgICAgICAgICAgMHgwMjk4LCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGNjNFLCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0NjUwLCAKICAgICAgICAgICAg
ICAgIDB4Njk3OCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4
N0QwMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAog
ICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAog
ICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAweDAwMUMwMDAwLCAKICAg
ICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwg
CiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZG
RkYsIAogICAgICAgICAgICAgICAgMHgwQywgCiAgICAgICAgICAgICAgICAweDE5OUEsIAog
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI3MDAsIAogICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAg
IDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAyM0MsIAogICAgICAgICAgICAgICAgMHgw
MTRGLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHhGRERFLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
MHgzMkM4LCAKICAgICAgICAgICAgICAgIDB4MzJDOCwgCiAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgIDB4MzJDOCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAg
ICAgICAgICAgICAgIDB4NDYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAg
ICAgICAweDAwNjAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAg
ICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAg
ICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgwQSwgCiAgICAg
ICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAweDI3MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAw
eDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAyM0Ms
IAogICAgICAgICAgICAgICAgMHgwMTRGLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGRERFLCAKICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgMHgzQTk4LCAKICAgICAgICAgICAgICAgIDB4NDY1MCwg
CiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4NEUyMCwgCiAgICAg
ICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAg
ICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4
MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAg
IDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAg
ICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAg
ICAgICAgICAgMHgxNCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAg
ICAgICAgICAgICAgICAweDAxRjAsIAogICAgICAgICAgICAgICAgMHgwMjI2LCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGQTFC
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0NjUwLCAKICAg
ICAgICAgICAgICAgIDB4NzUzMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgIDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAg
IDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IDB4MDMsIAogICAgICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgICAgICAweEZGRkZG
RkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhG
RkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAg
IDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgxQywgCiAgICAgICAgICAgICAgICAw
eDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI3MDAs
IAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAg
ICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAyMEMsIAogICAgICAgICAg
ICAgICAgMHgwMkRELCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
MHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHhGMzgxLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgMHg0MjY4LCAKICAgICAgICAgICAgICAgIDB4NDI2OCwgCiAgICAgICAgICAg
ICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4NDI2OCwgCiAgICAgICAgICAgICAgICAw
eDBBLCAKICAgICAgICAgICAgICAgIDB4NDYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1
OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMSwgCiAg
ICAgICAgICAgICAgICAweDAxODAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs
IAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZG
RkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgx
NCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAg
ICAweDAxRjAsIAogICAgICAgICAgICAgICAgMHgwMjI2LCAKICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGQTFCLCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg1NUYwLCAKICAgICAgICAgICAgICAg
IDB4NzUzMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4N0Qw
MCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAg
ICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDMsIAogICAg
ICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAweDAwNjEwMDAwLCAKICAgICAg
ICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAg
ICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs
IAogICAgICAgICAgICAgICAgMHgxNCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAg
ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4
MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRjAsIAogICAgICAgICAgICAgICAgMHgwMjI2
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgMHhGQTFCLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg1
NUYwLCAKICAgICAgICAgICAgICAgIDB4NzUzMCwgCiAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgIDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAg
ICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwQSwgCiAgICAgICAgICAgICAg
ICAweDAxODAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAg
ICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAg
ICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgzMCwgCiAgICAgICAg
ICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQy
LCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRjAsIAog
ICAgICAgICAgICAgICAgMHgwMjI2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHhGQTFCLCAKICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgMHg1NUYwLCAKICAgICAgICAgICAgICAgIDB4NzUzMCwgCiAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4N0QwMCwgCiAgICAgICAg
ICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAg
MHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAg
MHgwQSwgCiAgICAgICAgICAgICAgICAweDAwNjAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAg
ICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAg
ICAgICAgMHgyRSwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAg
MHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAg
ICAgICAgICAgICAweDAxRjAsIAogICAgICAgICAgICAgICAgMHgwMjI2LCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGQTFCLCAK
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg1NUYwLCAKICAgICAg
ICAgICAgICAgIDB4NzUzMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgIDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4
NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4
MDMsIAogICAgICAgICAgICAgICAgMHgwQSwgCiAgICAgICAgICAgICAgICAweDAwMUMwMDAw
LCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZG
RkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4
RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgyQywgCiAgICAgICAgICAgICAgICAweDE5
OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAog
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAg
ICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRjAsIAogICAgICAgICAgICAg
ICAgMHgwMjI2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHhGQTFCLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHg1NUYwLCAKICAgICAgICAgICAgICAgIDB4NzUzMCwgCiAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgIDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDBB
LCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAog
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwRCwgCiAgICAg
ICAgICAgICAgICAweDAxODAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAog
ICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZG
LCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgxNiwg
CiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDJCMDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAw
eDAxRDQsIAogICAgICAgICAgICAgICAgMHgwMjlELCAKICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGNzhELCAKICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg2RDYwLCAKICAgICAgICAgICAgICAgIDB4
OENBMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4OUM0MCwg
CiAgICAgICAgICAgICAgICAweDFFLCAKICAgICAgICAgICAgICAgIDB4NjAsIAogICAgICAg
ICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th
Z2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAg
ICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAweDAwNjAwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAg
ICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAog
ICAgICAgICAgICAgICAgMHgxNCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2
NiwgCiAgICAgICAgICAgICAgICAweDAxRjAsIAogICAgICAgICAgICAgICAgMHgwMjI2LCAK
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
MHhGQTFCLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0NjUw
LCAKICAgICAgICAgICAgICAgIDB4NzUzMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAg
ICAgICAgICAgICAgIDB4N0QwMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAg
ICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAw
eDAwMUMwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAg
ICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAg
ICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgxRSwgCiAgICAgICAgICAg
ICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAw
eDI3MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAK
ICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAyMEMsIAogICAg
ICAgICAgICAgICAgMHgwMkRELCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgMHhGMzgxLCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgzRTgwLCAKICAgICAgICAgICAgICAgIDB4M0U4MCwgCiAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4M0U4MCwgCiAgICAgICAgICAg
ICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NDYsIAogICAgICAgICAgICAgICAgMHgw
MDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgw
RCwgCiAgICAgICAgICAgICAgICAweDAxODEwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZG
RkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAw
eEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAg
ICAgMHgxOCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDJEMDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAg
ICAgICAgICAweDAxRDQsIAogICAgICAgICAgICAgICAgMHgwMjlELCAKICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGNzhELCAKICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg3OTE4LCAKICAgICAgICAg
ICAgICAgIDB4QTAyOCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
IDB4QzczOCwgCiAgICAgICAgICAgICAgICAweDFFLCAKICAgICAgICAgICAgICAgIDB4NjAs
IAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDMs
IAogICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAweDAwNjEwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZG
RiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZG
RkZGRkYsIAogICAgICAgICAgICAgICAgMHgxNiwgCiAgICAgICAgICAgICAgICAweDE5OUEs
IAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDJCMDAsIAogICAg
ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAg
ICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRDQsIAogICAgICAgICAgICAgICAg
MHgwMjlELCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgMHhGNzhELCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgMHg2RDYwLCAKICAgICAgICAgICAgICAgIDB4OENBMCwgCiAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgIDB4OUM0MCwgCiAgICAgICAgICAgICAgICAweDFFLCAK
ICAgICAgICAgICAgICAgIDB4NjAsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAg
ICAgICAgICAweDAwMTkwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAg
ICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK
ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgxNCwgCiAg
ICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAweDI4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAx
RjAsIAogICAgICAgICAgICAgICAgMHgwMjI2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGQTFCLCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHg0NjUwLCAKICAgICAgICAgICAgICAgIDB4NzUz
MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4N0QwMCwgCiAg
ICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAg
ICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAg
ICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAweDAwMDUwMDAwLCAKICAgICAgICAgICAg
ICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAg
ICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAg
ICAgICAgICAgICAgMHgxRSwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI3MDAsIAogICAgICAgICAgICAgICAg
MHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2Niwg
CiAgICAgICAgICAgICAgICAweDAyMEMsIAogICAgICAgICAgICAgICAgMHgwMkRELCAKICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhG
MzgxLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgzRTgwLCAK
ICAgICAgICAgICAgICAgIDB4M0U4MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgIDB4M0U4MCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAg
ICAgIDB4NDYsIAogICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAweDAw
MTkwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAg
MHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAg
ICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgxNCwgCiAgICAgICAgICAgICAg
ICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDI5
ODAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDQyLCAKICAg
ICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAgICAgICAweDAxRjAsIAogICAgICAg
ICAgICAgICAgMHgwMjI2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgMHhGQTFCLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHg0NjUwLCAKICAgICAgICAgICAgICAgIDB4NjFBOCwgCiAgICAgICAg
ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4N0QwMCwgCiAgICAgICAgICAgICAg
ICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgMHgwMDAy
OEM1OAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MUQpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwNywg
CiAgICAgICAgICAgICAgICAweDAwNjAwMDAwLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZG
RkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZG
RkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAg
MHgxNCwgCiAgICAgICAgICAgICAgICAweDE5OUEsIAogICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAweDI5ODAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDQyLCAKICAgICAgICAgICAgICAgIDB4MjY2NiwgCiAgICAgICAgICAg
ICAgICAweDAxRjAsIAogICAgICAgICAgICAgICAgMHgwMjI2LCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGQTFCLCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHg0NjUwLCAKICAgICAgICAgICAg
ICAgIDB4NjFBOCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4
N0QwMCwgCiAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgIDB4NTYsIAog
ICAgICAgICAgICAgICAgMHgwMDAyOEM1OAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAg
ICAgICBOYW1lIChQU0RULCAweDAwKQogICAgICAgIE1ldGhvZCAoU0NQRiwgMSwgU2VyaWFs
aXplZCkKICAgICAgICB7CiAgICAgICAgICAgIENJQ0YgPSBBcmcwCiAgICAgICAgICAgIExv
Y2FsMCA9IDB4MDAKICAgICAgICAgICAgTG9jYWwxID0gU2l6ZU9mIChTVFRJKQogICAgICAg
ICAgICBMb2NhbDIgPSBTaXplT2YgKFNUVFMpCiAgICAgICAgICAgIE5hbWUgKENQU0MsIDB4
MDApCiAgICAgICAgICAgIE5hbWUgKENNTUMsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKEND
UUwsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKENUTVMsIDB4MDApCiAgICAgICAgICAgIE5h
bWUgKEdQVUMsIDB4RkZGRkZGRkYpCiAgICAgICAgICAgIE5hbWUgKEdQVUIsIDB4MDApCiAg
ICAgICAgICAgIE5hbWUgKENBRE0sIDB4MDApCiAgICAgICAgICAgIE5hbWUgKFRBU1IsIDB4
MDApCiAgICAgICAgICAgIE5hbWUgKFNEU1IsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKFRN
SUQsIDB4RkZGRkZGRkYpCiAgICAgICAgICAgIE5hbWUgKFRJQ0YsIDB4RkZGRkZGRkYpCiAg
ICAgICAgICAgIE5hbWUgKFRJQ0MsIDB4RkZGRkZGRkYpCiAgICAgICAgICAgIE5hbWUgKFRD
Rk0sIDB4RkZGRkZGRkYpCiAgICAgICAgICAgIE5hbWUgKFRHQ0QsIDB4RkZGRkZGRkYpCiAg
ICAgICAgICAgIE5hbWUgKFRHT0YsIDB4RkZGRkZGRkYpCiAgICAgICAgICAgIENQU0MgPSAo
T25lIDw8IChTUFNDICsgMHgxMCkpCiAgICAgICAgICAgIENBRE0gPSAoT25lIDw8IChTQURN
ICsgMHgxOCkpCiAgICAgICAgICAgIENNTUMgPSAoT25lIDw8IChTTU1DICsgMHgwNykpCiAg
ICAgICAgICAgIElmICgoVkNRTCA9PSAweDAxKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgQ0NRTCA9IDB4MDgKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChWVE1T
ID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDVE1TID0gMHgwMDAx
MDAwMAogICAgICAgICAgICB9CgogICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IExvY2Fs
MikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMyA9IERlcmVmT2YgKFNU
VFMgW0xvY2FsMF0pCiAgICAgICAgICAgICAgICBUTUlEID0gRGVyZWZPZiAoTG9jYWwzIFsw
eDAwXSkKICAgICAgICAgICAgICAgIFRJQ0YgPSBEZXJlZk9mIChMb2NhbDMgWzB4MDFdKQog
ICAgICAgICAgICAgICAgVElDQyA9IERlcmVmT2YgKExvY2FsMyBbMHgwMl0pCiAgICAgICAg
ICAgICAgICBUQ0ZNID0gRGVyZWZPZiAoTG9jYWwzIFsweDAzXSkKICAgICAgICAgICAgICAg
IFRHQ0QgPSBEZXJlZk9mIChMb2NhbDMgWzB4MDRdKQogICAgICAgICAgICAgICAgVEdPRiA9
IERlcmVmT2YgKExvY2FsMyBbMHgwNV0pCiAgICAgICAgICAgICAgICBUQVNSID0gRGVyZWZP
ZiAoTG9jYWwzIFsweDA2XSkKICAgICAgICAgICAgICAgIElmICgoKFRNSUQgIT0gMHhGRkZG
RkZGRikgJiYgKE1CSUQgIT0gVE1JRCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgQ29udGludWUKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKChUSUNGICE9IDB4RkZGRkZGRkYp
ICYmIChBcmcwICE9IFRJQ0YpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIENvbnRpbnVlCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChUSUNDICE9IDB4RkZGRkZGRkYpKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFRJQ0MgJiAweDAwMDIw
MDAwKSB8fCAoKFRJQ0MgJiAweDAwMDQwMDAwKSB8fCAoCiAgICAgICAgICAgICAgICAgICAg
ICAgIChUSUNDICYgMHgwMDA4MDAwMCkgfHwgKChUSUNDICYgMHgwMDEwMDAwMCkgfHwgKChU
SUNDICYgMHgwMDIwMDAwMAogICAgICAgICAgICAgICAgICAgICAgICApIHx8ICgoVElDQyAm
IDB4MDA0MDAwMDApIHx8ICgoVElDQyAmIDB4MDA4MDAwMDApIHx8IChUSUNDICYgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDApKSkpKSkpKSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFRJQ0MgJiBDUFNDKSA9PSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRpbnVlCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgIElmICgoKFRJQ0MgJiAweDgwKSB8fCAoKFRJQ0MgJiAweDAxMDApIHx8
ICgKICAgICAgICAgICAgICAgICAgICAgICAgKFRJQ0MgJiAweDAyMDApIHx8IChUSUNDICYg
MHgwNDAwKSkpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoKFRJQ0MgJiBDTU1DKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVElDQyAmIDB4
MDgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KCgoVElDQyAmIENDUUwpID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ29udGludWUKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUSUNDICYgMHgwMDAxMDAw
MCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo
KChUSUNDICYgQ1RNUykgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDb250aW51ZQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKChUSUNDICYgMHgwMjAwMDAw
MCkgfHwgKChUSUNDICYgMHgwNDAwMDAwMCkgfHwgKAogICAgICAgICAgICAgICAgICAgICAg
ICAoVElDQyAmIDB4MDgwMDAwMDApIHx8ICgoVElDQyAmIDB4MTAwMDAwMDApIHx8ICgoVElD
QyAmIDB4MjAwMDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgKSB8fCAoKFRJQ0MgJiAw
eDQwMDAwMDAwKSB8fCAoVElDQyAmIDB4ODAwMDAwMDApKSkpKSkpKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoVElDQyAmIENBRE0pID09
IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGludWUK
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKChUQ0ZNICE9IDB4RkZGRkZGRkYp
ICYmIChSMzU3ICE9IFRDRk0pKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIENvbnRpbnVlCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChUR09GICE9IDB4RkZGRkZGRkYpKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoUkZJTyAoMHg1NCkgPT0g
MHgwMSkpIHt9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAg
ICAgICAgQ29udGludWUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgSWYgKChUQVNSICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IDB4MzIKICAgICAgICAgICAg
ICAgICAgICBJZiAoKFRBU0MgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBUQVNUIC8qIFxfU0JfLlBDSTAuTFBDMC5F
QzBfLlRBU1QgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
IElmICgoKFRNUDMgPCBMb2NhbDQpICYgKFRBU1IgJiAweDIwMDApKSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAg
ICAgICAgICAgICAgIENvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMSA9IERlcmVmT2YgKExvY2FsMyBbMHgw
N10pCiAgICAgICAgICAgICAgICBJZiAoKFBTRFQgPT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgRkxQRiAoTG9jYWwxKQogICAgICAgICAgICAgICAg
ICAgIFNTVFQgKExvY2FsMykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBM
b2NhbDArKwogICAgICAgICAgICB9CgogICAgICAgICAgICBERUJOICgpCiAgICAgICAgfQoK
ICAgICAgICBNZXRob2QgKFNTVFQsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAg
ICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgIExvY2FsMSA9IFNpemVPZiAoU1RU
SSkKICAgICAgICAgICAgTG9jYWwyID0gU2l6ZU9mIChBcmcwKQogICAgICAgICAgICBOYW1l
IChYWDExLCBCdWZmZXIgKDB4MDcpIHt9KQogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg
KFhYMTEsIDB4MDAsIFNTWkUpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoWFgxMSwg
MHgwMiwgU01VRikKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoWFgxMSwgMHgwMywg
U01VRCkKICAgICAgICAgICAgU1NaRSA9IDB4MDcKICAgICAgICAgICAgTG9jYWwwID0gMHgw
MAogICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IFNpemVPZiAoU1RUSSkpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDMgPSAoTG9jYWwwICsgMHgwOCkKICAgICAg
ICAgICAgICAgIFNNVUYgPSBEZXJlZk9mIChTVFRJIFtMb2NhbDBdKQogICAgICAgICAgICAg
ICAgU01VRCA9IERlcmVmT2YgKEFyZzAgW0xvY2FsM10pCiAgICAgICAgICAgICAgICBBTElC
ICgweDBDLCBYWDExKQogICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgfQog
ICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChERUJOLCAwLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgIHsKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJNLCBTeXN0ZW1NZW1vcnks
IDB4RkVEODE1MDAsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChWQVJNLCBEV29yZEFjYywg
Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVkFSUiwg
ICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBMb2NhbDAgPSBWQVJSIC8qIFxfU0Jf
LlBDSTAuTFBDMC5FQzBfLkhLRVkuREVCTi5WQVJSICovCiAgICAgICAgICAgIElmICgoKDB4
RkYgJiBMb2NhbDApID09IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBW
QVJSID0gKDB4NUYgfCBMb2NhbDApCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAg
IE5hbWUgKE1TQ0IsIDB4MDApCiAgICAgICAgTmFtZSAoSVNNUCwgMHgwMCkKICAgICAgICBN
ZXRob2QgKERZVEMsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2Nh
bDAgPSBBcmcwCiAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgU3dpdGNo
IChUb0ludGVnZXIgKChMb2NhbDAgJiAweDAxRkYpKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgQ2FzZSAoMHgwMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDEgPSAweDAxMDAKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgfD0gMHg4
MDAwMDAwMAogICAgICAgICAgICAgICAgICAgIExvY2FsMSB8PSAweDAwCiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwxIHw9IDB4MDEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIENhc2UgKDB4MDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
TG9jYWwyID0gKChMb2NhbDAgPj4gMHgwQykgJiAweDBGKQogICAgICAgICAgICAgICAgICAg
IExvY2FsMyA9ICgoTG9jYWwwID4+IDB4MTApICYgMHgwRikKICAgICAgICAgICAgICAgICAg
ICBMb2NhbDQgPSAoKExvY2FsMCA+PiAweDE0KSAmIDB4MDEpCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChJU01QID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwNgogICAgICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgIElmICgoKChGQ0FQID4+IExvY2FsMikgJiAweDAxKSA9PSAweDAwKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDIKICAg
ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoTG9jYWwyKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4
MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoTG9jYWwzICE9IDB4MEYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MEEKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExv
Y2FsNCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBWQ1FMID0gMHgwMAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZD
UUwgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM
b2NhbDMgIT0gMHgwRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwQQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWw0ID09IDB4
MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFZTVFAgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlNUUCA9IDB4MDEK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA3KQogICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDMgPD0g
MHgwNykgJiYgKExvY2FsMyA+PSAweDAxKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDQgIT0gMHgw
MSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDBBCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEVsc2VJZiAoKExvY2FsMyA9PSAweDBGKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo
KExvY2FsNCAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MEEKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4
MEEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKExvY2FsNCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWQURNID0gMHgwMAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNBRE0gPSAweDAwCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTmFtZSAoWFgxMSwgQnVmZmVyICgweDA3KSB7fSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFhYMTEsIDB4MDAsIFNTWkUp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChYWDEx
LCAweDAyLCBTTVVGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURX
b3JkRmllbGQgKFhYMTEsIDB4MDMsIFNNVUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU1NaRSA9IDB4MDcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTVVG
ID0gMHgzMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNNVUQgPSAweDAwMDI4
QzU4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxJQiAoMHgwQywgWFgxMSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBWQURNID0gMHgwMQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNBRE0gPSBMb2NhbDMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw
eDA5KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBJZiAoKExvY2FsMyAhPSAweDBGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDBBCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM
b2NhbDQgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVlRNUyA9IDB4MDAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBW
VE1TID0gMHgwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEEpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo
TG9jYWwzICE9IDB4MEYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MEEKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsNCA9PSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBWRExTID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZETFMgPSAweDAx
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwRCkKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwzIDw9
IDB4MDgpICYmIChMb2NhbDMgPj0gMHgwMSkpKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWw0ICE9IDB4
MDEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwQQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDMgPT0gMHgwRikpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KChMb2NhbDQgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDBBCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAw
eDBBCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSWYgKChMb2NhbDQgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlBTQyA9IDB4MDAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBTUFNDID0gMHgwMAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZQ
U0MgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BTQyA9IExvY2Fs
MwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF5eXl5eRkFOMC5DUk5GICgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDMgIT0gMHgwRikp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwxID0gMHgwQQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwxID0gMHgwMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEp
CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBMb2NhbDcgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgSWYg
KChWU1RQID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgU0NQRiAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3ID0g
MHgwNAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYg
KChWRExTID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgU0NQRiAoMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3ID0g
MHgwQQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYg
KChWQURNID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgU0NQRiAoMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3ID0g
MHgwNwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYg
KChWQ1FMID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgU0NQRiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3ID0g
MHgwMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYg
KChWUFNDID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgU0NQRiAoMHgwRCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3ID0g
MHgwRAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTQ1BGICgweDAw
KQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDcgPSAweDAwCiAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBUSURYID0gTG9jYWw3CiAgICAgICAgICAg
ICAgICAgICAgTG9jYWw1ID0gMHgwMQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAo
VkNRTCA8PCAweDAxKQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVlRJTyA8PCAw
eDAyKQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVk1ZSCA8PCAweDAzKQogICAg
ICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVlNUUCA8PCAweDA0KQogICAgICAgICAgICAg
ICAgICAgIExvY2FsNSB8PSAoVkxDTSA8PCAweDA1KQogICAgICAgICAgICAgICAgICAgIExv
Y2FsNSB8PSAoVkRHTSA8PCAweDA2KQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAo
VkFETSA8PCAweDA3KQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVlJQQyA8PCAw
eDA4KQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVlRNUyA8PCAweDA5KQogICAg
ICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVkRMUyA8PCAweDBBKQogICAgICAgICAgICAg
ICAgICAgIExvY2FsNSB8PSAoVk1NQyA8PCAweDBCKQogICAgICAgICAgICAgICAgICAgIExv
Y2FsNSB8PSAoVk1TQyA8PCAweDBDKQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAo
VlBTQyA8PCAweDBEKQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVkNTQyA8PCAw
eDBFKQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVkFNVCA8PCAweDBGKQogICAg
ICAgICAgICAgICAgICAgIExvY2FsMSA9IChDSUNGIDw8IDB4MDgpCiAgICAgICAgICAgICAg
ICAgICAgSWYgKChDSUNGID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgQ0lDTSA9IFNNWUggLyogXFNNWUggKi8KICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQ0lDRiA9PSAweDBCKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENJQ00gPSBT
TU1DIC8qIFxTTU1DICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgIEVsc2VJZiAoKENJQ0YgPT0gMHgwRCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBDSUNNID0gU1BTQyAvKiBcU1BTQyAqLwogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChDSUNGID09IDB4MEYp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ0lDTSA9
IFNBTVQgLyogXFNBTVQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgRWxzZUlmICgoQ0lDRiA9PSAweDA3KSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIENJQ00gPSBTQURNIC8qIFxTQURNICovCiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKENJQ0YgPT0gMHgw
OCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDSUNN
ID0gU1JQQyAvKiBcU1JQQyAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICBDSUNNID0gMHgwRgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwxIHw9IChDSUNNIDw8IDB4MEMpCiAgICAgICAgICAgICAgICAgICAgTG9j
YWwxIHw9IChMb2NhbDUgPDwgMHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgfD0g
MHgwMQogICAgICAgICAgICAgICAgICAgIElmIChESEtDKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgTUhLUSAoMHg2MDMyKQogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1RaLlRITTAsIDB4ODAp
IC8vIFRoZXJtYWwgU3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgQ2FzZSAoMHgwNykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBMb2NhbDEgPSAoKExvY2FsMCA+PiAweDEwKSAmIDB4RkYpCiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwyID0gKChMb2NhbDAgPj4gMHgxOCkgJiAweEZGKQogICAgICAgICAgICAgICAg
ICAgIElmICgoQ0lDRiA9PSAweDBGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIFRUQ0kgPSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKCgoTG9jYWwyID09IDB4MDMpIHx8IChMb2NhbDIgPT0gMHgwMSkpKQogICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChUU1RW
ID09IDB4MDApIHx8IChUU1RWID09IDB4MDEpKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSEtRICgweDgwMzQpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFNUViA9IDB4MDIKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICBFbHNlSWYgKCgoVFNUViA9PSAweDAwKSB8fCAoVFNUViA9PSAweDAy
KSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE1IS1EgKDB4ODAzNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRTVFYgPSAw
eDAxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMAogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgTG9jYWwxID0gKExvY2FsMSA8PCAweDEwKQogICAgICAgICAg
ICAgICAgICAgIExvY2FsMSB8PSAweDAxCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICBDYXNlICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IExvY2FsMSA9IChWTU1DIDw8IDB4MDgpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxIHw9
IChTTU1DIDw8IDB4MEMpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxIHw9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICBMb2NhbDEgfD0gMHgwMQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDIgPSAoKExvY2FsMCA+PiAweDBDKSAmIDB4MEYpCiAgICAgICAgICAg
ICAgICAgICAgTG9jYWw1ID0gMHgwMQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAo
VkNRTCA8PCAweDAxKQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVlRJTyA8PCAw
eDAyKQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVk1ZSCA8PCAweDAzKQogICAg
ICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVlNUUCA8PCAweDA0KQogICAgICAgICAgICAg
ICAgICAgIExvY2FsNSB8PSAoVkxDTSA8PCAweDA1KQogICAgICAgICAgICAgICAgICAgIExv
Y2FsNSB8PSAoVkRHTSA8PCAweDA2KQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAo
VkFETSA8PCAweDA3KQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVlJQQyA8PCAw
eDA4KQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVlRNUyA8PCAweDA5KQogICAg
ICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVkRMUyA8PCAweDBBKQogICAgICAgICAgICAg
ICAgICAgIExvY2FsNSB8PSAoVk1NQyA8PCAweDBCKQogICAgICAgICAgICAgICAgICAgIExv
Y2FsNSB8PSAoVk1TQyA8PCAweDBDKQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAo
VlBTQyA8PCAweDBEKQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVkNTQyA8PCAw
eDBFKQogICAgICAgICAgICAgICAgICAgIExvY2FsNSB8PSAoVkFNVCA8PCAweDBGKQogICAg
ICAgICAgICAgICAgICAgIExvY2FsMSA9IChDSUNGIDw8IDB4MDgpCiAgICAgICAgICAgICAg
ICAgICAgSWYgKCgoQ0lDRiA9PSAweDBCKSB8fCAoTG9jYWwyID09IDB4MEIpKSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENJQ00gPSBTTU1DIC8q
IFxTTU1DICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs
c2VJZiAoKChDSUNGID09IDB4MDgpIHx8IChMb2NhbDIgPT0gMHgwOCkpKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ0lDTSA9IFNSUEMgLyogXFNS
UEMgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlm
ICgoKENJQ0YgPT0gMHgwNykgfHwgKExvY2FsMiA9PSAweDA3KSkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDSUNNID0gU0FETSAvKiBcU0FETSAq
LwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgo
Q0lDRiA9PSAweDBEKSB8fCAoTG9jYWwyID09IDB4MEQpKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENJQ00gPSBTUFNDIC8qIFxTUFNDICovCiAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKChDSUNG
ID09IDB4MDMpIHx8IChMb2NhbDIgPT0gMHgwMykpKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgQ0lDTSA9IFNNWUggLyogXFNNWUggKi8KICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKENJQ0YgPT0g
MHgwRikgfHwgKExvY2FsMiA9PSAweDBGKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBDSUNNID0gU0FNVCAvKiBcU0FNVCAqLwogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBDSUNNID0gMHgwRgogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxIHw9IChDSUNNIDw8IDB4MEMp
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxIHw9IChMb2NhbDUgPDwgMHgxMCkKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDEgfD0gMHgwMQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgQ2FzZSAoMHgwOSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBNU0NCID0gMHgwMQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICBMb2NhbDEgfD0gMHgwMQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgQ2FzZSAoMHgwQSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChcVVRQTSkpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoVVRQTSA8PCAweDA4KQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAwCiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgfD0gMHgwMQogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgwMykKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoRkNBUCA8PCAweDEwKQogICAg
ICAgICAgICAgICAgICAgIExvY2FsMSB8PSAweDAxCiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICBDYXNlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIExvY2FsMSA9IChNWUhDIDw8IDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9j
YWwxIHw9IDB4MDEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENhc2UgKDB4
MDYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gKChM
b2NhbDAgPj4gMHgwOSkgJiAweDBGKQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwy
ICE9IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwxID0gKE1NQ0MgPDwgMHgxMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwxID0gMHgwMAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwxIHw9IDB4MDEKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIENhc2UgKDB4MDUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgSWYgKDB4RkZGRkZGRkZGRkZGRkZGRikKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDUwMAogICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDEgfD0gMHgxMEUwMDAwMAogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgTG9jYWwxIHw9IDB4MDEKICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIENhc2UgKDB4MEIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwxID0gKEZBRE0gPDwgMHgwOCkKICAgICAgICAgICAgICAgICAgICBM
b2NhbDEgfD0gMHgwMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAo
MHgwMTAwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9
IDB4MTAwMTAwMDAKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgfD0gMHgwMQogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgwMUZGKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFZDUUwgPSAweDAwCiAgICAgICAgICAgICAgICAg
ICAgVlRJTyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBWTVlIID0gMHgwMAogICAgICAg
ICAgICAgICAgICAgIFZTVFAgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgVkxDTSA9IDB4
MDAKICAgICAgICAgICAgICAgICAgICBWREdNID0gMHgwMAogICAgICAgICAgICAgICAgICAg
IFZBRE0gPSAweDAwCiAgICAgICAgICAgICAgICAgICAgVlJQQyA9IDB4MDAKICAgICAgICAg
ICAgICAgICAgICBWVE1TID0gMHgwMAogICAgICAgICAgICAgICAgICAgIFZETFMgPSAweDAw
CiAgICAgICAgICAgICAgICAgICAgVk1NQyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBW
TVNDID0gMHgwMAogICAgICAgICAgICAgICAgICAgIFZQU0MgPSAweDAwCiAgICAgICAgICAg
ICAgICAgICAgVkNTQyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBWQU1UID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgIFNNWUggPSAweDAwCiAgICAgICAgICAgICAgICAgICAgU01N
QyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBTUFNDID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgIFNBTVQgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgU0FETSA9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICBDSUNGID0gMHgwMAogICAgICAgICAgICAgICAgICAgIFNDUEYg
KDB4MDApCiAgICAgICAgICAgICAgICAgICAgQ0lDTSA9IDB4MEYKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDUgPSBWU1REIC8qIFxWU1REICovCiAgICAgICAgICAgICAgICAgICAgTG9j
YWw1IHw9IChWQ1FMIDw8IDB4MDEpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw1IHw9IChW
VElPIDw8IDB4MDIpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw1IHw9IChWTVlIIDw8IDB4
MDMpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw1IHw9IChWU1RQIDw8IDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgTG9jYWw1IHw9IChWTENNIDw8IDB4MDUpCiAgICAgICAgICAgICAg
ICAgICAgTG9jYWw1IHw9IChWREdNIDw8IDB4MDYpCiAgICAgICAgICAgICAgICAgICAgTG9j
YWw1IHw9IChWQURNIDw8IDB4MDcpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw1IHw9IChW
UlBDIDw8IDB4MDgpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw1IHw9IChWVE1TIDw8IDB4
MDkpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw1IHw9IChWRExTIDw8IDB4MEEpCiAgICAg
ICAgICAgICAgICAgICAgTG9jYWw1IHw9IChWTU1DIDw8IDB4MEIpCiAgICAgICAgICAgICAg
ICAgICAgTG9jYWw1IHw9IChWTVNDIDw8IDB4MEMpCiAgICAgICAgICAgICAgICAgICAgTG9j
YWw1IHw9IChWUFNDIDw8IDB4MEQpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw1IHw9IChW
Q1NDIDw8IDB4MEUpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw1IHw9IChWQU1UIDw8IDB4
MEYpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gKENJQ0YgPDwgMHgwOCkKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDEgfD0gKENJQ00gPDwgMHgwQykKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDEgfD0gKExvY2FsNSA8PCAweDEwKQogICAgICAgICAgICAgICAgICAgIExv
Y2FsMSB8PSAweDAxCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBEZWZhdWx0
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwNAog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChM
b2NhbDEpCiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IuUENJMC5MUEMwLkVDMCkK
ICAgIHsKICAgICAgICBNZXRob2QgKEFUTUMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg
ewogICAgICAgICAgICBJZiAoKFdOVEYgJiYgVEFUQykpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIElmIChIUEFDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIExvY2FsMyA9IChIUEFDIF4gQVRNWCkgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8uQVRN
WCAqLwogICAgICAgICAgICAgICAgICAgIEFUTVggPSAweDAxCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChUQ1RBID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgVENSVCA9IFRDUjAgLyogXFRDUjAgKi8KICAgICAgICAgICAgICAg
ICAgICAgICAgVFBTViA9IFRQUzAgLyogXFRQUzAgKi8KICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoVENUQSA9PSAweDAxKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFRDUlQgPSBUQ1IxIC8qIFxU
Q1IxICovCiAgICAgICAgICAgICAgICAgICAgICAgIFRQU1YgPSBUUFMxIC8qIFxUUFMxICov
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIExvY2FsMyA9IChIUEFDIF4gQVRNWCkgLyogXF9TQl8uUENJMC5MUEMwLkVDMF8u
QVRNWCAqLwogICAgICAgICAgICAgICAgICAgIEFUTVggPSAweDAwCiAgICAgICAgICAgICAg
ICAgICAgSWYgKChUQ1REID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgVENSVCA9IFRDUjAgLyogXFRDUjAgKi8KICAgICAgICAgICAg
ICAgICAgICAgICAgVFBTViA9IFRQUzAgLyogXFRQUzAgKi8KICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoVENURCA9PSAweDAxKSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFRDUlQgPSBUQ1IxIC8q
IFxUQ1IxICovCiAgICAgICAgICAgICAgICAgICAgICAgIFRQU1YgPSBUUFMxIC8qIFxUUFMx
ICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgIElmIChMb2NhbDMpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgSWYgKF5IS0VZLkRIS0MpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBeSEtFWS5NSEtRICgweDYwMzApCiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAg
fQogICAgfQoKICAgIFNjb3BlIChfU0IuUENJMC5MUEMwLkVDMCkKICAgIHsKICAgICAgICBE
ZXZpY2UgKElUU0QpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQg
KCJMRU4wMTAwIikpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBfSElEID0g
MHgwMDAxQUUzMAogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQp
ICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJu
ICgweDBGKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfVFop
CiAgICB7CiAgICAgICAgVGhlcm1hbFpvbmUgKFRITTApCiAgICAgICAgewogICAgICAgICAg
ICBNZXRob2QgKF9DUlQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JUOiBDcml0aWNhbCBUZW1w
ZXJhdHVyZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFRDUlQpIC8q
IFxUQ1JUICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0hPVCwgMCwg
U2VyaWFsaXplZCkgIC8vIF9IT1Q6IEhvdCBUZW1wZXJhdHVyZQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZXR1cm4gKChUQ1JUIC0gMHgwMSkpCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIE1ldGhvZCAoX1RNUCwgMCwgU2VyaWFsaXplZCkgIC8vIF9UTVA6IFRlbXBl
cmF0dXJlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChIOERSKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFxfU0IuUENJMC5MUEMw
LkVDMC5UTVAwCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gXF9TQi5QQ0kwLkxQQzAu
RUMwLlRTTDEKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBcX1NCLlBDSTAuTFBDMC5F
QzAuVFNMMgogICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IFxfU0IuUENJMC5MUEMwLkVD
MC5UU0wzCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gUkJFQyAoMHg3OCkKICAg
ICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoUkJFQyAoMHg4OSkgJiAweDdGKQogICAgICAg
ICAgICAgICAgICAgIExvY2FsMiA9IChSQkVDICgweDhBKSAmIDB4N0YpCiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwzID0gKFJCRUMgKDB4OEIpICYgMHg3RikKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDgwKSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDMwCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgSWYgKExvY2FsMykKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBJZiAoKENJQ0YgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBIT1RMICgpCiAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoKFRDUlQgLSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgIFRTREwgKCkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KFRDUlQpIC8qIFxUQ1JUICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
SWYgKExvY2FsMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo
IVxfU0IuUENJMC5MUEMwLkVDMC5IS0VZLkRIS0MpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBUU0RMICgpCiAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoVENSVCkgLyogXFRDUlQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExvY2FsMSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKENJQ0YgPT0gMHgwQykpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBIT1RMICgpCiAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoKFRDUlQgLSAweDAxKSkKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChUQzJL
IChMb2NhbDApKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFRD
MkssIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAoKEFy
ZzAgKiAweDBBKSArIDB4MEFBQykKICAgICAgICAgICAgSWYgKChMb2NhbDAgPD0gMHgwQUFD
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwQzhDCiAgICAg
ICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoTG9jYWwwID4gMHgwRkFDKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwQzhDCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KICAgIH0KCiAgICBTY29w
ZSAoX1NCLlBDSTAuTFBDMC5FQzApCiAgICB7CiAgICAgICAgTWV0aG9kIChfUTQwLCAwLCBO
b3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAg
IHsKICAgICAgICAgICAgTm90aWZ5IChcX1RaLlRITTAsIDB4ODApIC8vIFRoZXJtYWwgU3Rh
dHVzIENoYW5nZQogICAgICAgICAgICBJZiAoSDhEUikKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTG9jYWwwID0gVFNMMCAvKiBcX1NCXy5QQ0kwLkxQQzAuRUMwXy5UU0wwICov
CiAgICAgICAgICAgICAgICBMb2NhbDEgPSBUU0wxIC8qIFxfU0JfLlBDSTAuTFBDMC5FQzBf
LlRTTDEgKi8KICAgICAgICAgICAgICAgIExvY2FsMiA9IFRTTDIgLyogXF9TQl8uUENJMC5M
UEMwLkVDMF8uVFNMMiAqLwogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gKFJCRUMgKDB4ODgpICYgMHg3RikK
ICAgICAgICAgICAgICAgIExvY2FsMSA9IChSQkVDICgweDg5KSAmIDB4N0YpCiAgICAgICAg
ICAgICAgICBMb2NhbDIgPSAoUkJFQyAoMHg4QSkgJiAweDdGKQogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBJZiAoKExvY2FsMSAmIDB4NzcpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBJZiAoKENJQ0YgIT0gMHgwQykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgXkhLRVkuRFlUQyAoMHgwMDFGNDAwMSkKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIF5IS0VZLkRZVEMgKDB4MDAwRjQwMDEpCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIElmICgoTG9jYWwwICYgMHg3NikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IF5IS0VZLkRZVEMgKDB4MDAxRkUwMDEpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxz
ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBeSEtFWS5EWVRDICgweDAwMEZFMDAx
KQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKF5IS0VZLkRIS0MgJiYgTG9jYWwy
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXkhLRVkuTUhLUSAoMHg2MDIyKQog
ICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoIVZJR0QpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFZUSFIgKCkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAg
ICBTY29wZSAoX1NJKQogICAgewogICAgICAgIE1ldGhvZCAoX1NTVCwgMSwgTm90U2VyaWFs
aXplZCkgIC8vIF9TU1Q6IFN5c3RlbSBTdGF0dXMKICAgICAgICB7CiAgICAgICAgICAgIElm
ICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9TQi5Q
Q0kwLkxQQzAuRUMwLkxFRCAoMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFxfU0IuUENJ
MC5MUEMwLkVDMC5MRUQgKDB4MEEsIDB4MDApCiAgICAgICAgICAgICAgICBcX1NCLlBDSTAu
TFBDMC5FQzAuTEVEICgweDA3LCAweDAwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoKEFyZzAgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgo
U1BTIHx8IFdOVEYpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFxf
U0IuUENJMC5MUEMwLkVDMC5CRUVQICgweDA1KQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5MRUQgKDB4MDAsIDB4ODApCiAgICAgICAg
ICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuTEVEICgweDBBLCAweDgwKQogICAgICAgICAg
ICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkxFRCAoMHgwNywgMHgwMCkKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuTEVEICgweDAwLCAweDgwKQogICAgICAg
ICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkxFRCAoMHgwQSwgMHg4MCkKICAgICAgICAg
ICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5MRUQgKDB4MDcsIDB4QzApCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgSWYgKChTUFMgPiAweDAzKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuQkVFUCAoMHgwNykKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2VJZiAoKFNQUyA9PSAweDAzKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuQkVF
UCAoMHgwMykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuQkVF
UCAoMHgwNCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKFNQUyA9
PSAweDAzKSkge30KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuTEVEICgweDAwLCAweDgwKQog
ICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5MRUQgKDB4MEEsIDB4ODAp
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMw
LkxFRCAoMHgwMCwgMHhDMCkKICAgICAgICAgICAgICAgIFN0YWxsICgweDY0KQogICAgICAg
ICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkxFRCAoMHgwQSwgMHhDMCkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDQpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuQkVFUCAoMHgwMykKICAgICAgICAg
ICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5MRUQgKDB4MDcsIDB4QzApCiAgICAgICAgICAg
ICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuTEVEICgweDAwLCAweEMwKQogICAgICAgICAgICAg
ICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkxFRCAoMHgwQSwgMHhDMCkKICAgICAgICAgICAgfQog
ICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLlBDSTAuR1BQNikKICAgIHsKICAgICAg
ICBEZXZpY2UgKFdMQU4pCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfQURSLCBaZXJv
KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBNZXRob2QgKF9STVYsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUk1WOiBSZW1vdmFsIFN0YXR1cwogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9w
ZXJhdGlvblJlZ2lvbiAoUlBYWCwgUENJX0NvbmZpZywgMHgwMCwgMHgxMCkKICAgICAgICAg
ICAgRmllbGQgKFJQWFgsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgVkRJRCwgICAzMgogICAgICAgICAgICB9CgogICAgICAgICAg
ICBNZXRob2QgKENBUEEsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIExvY2FsMCA9IFRvSW50ZWdlciAoVkRJRCkKICAgICAgICAgICAgICAgIElmICgo
KExvY2FsMCAmIDB4RkZGRikgPT0gMHgxNEMzKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDEgPSAweDg0CiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9j
YWwxID0gMHg0NAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAo
TG9jYWwxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEZM
RFIsIFBDSV9Db25maWcsIENBUEEgKCksIDB4MDYpCiAgICAgICAgICAgIEZpZWxkIChGTERS
LCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBEQ0FQLCAgIDMyLCAKICAgICAgICAgICAgICAgIERDVFIsICAgMTYKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXSVNULCAwLCBTZXJpYWxpemVkKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChWRElEKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoVkRJRCkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw
eEI4MjIxMEVDKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNjE2MTRDMykKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2Ug
KDB4MTEwMzE3Q0IpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CgogICAgICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUG93ZXJSZXNvdXJjZSAoV1JTVCwgMHgwNSwgMHgwMDAwKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkg
IC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgTWV0aG9kIChfT04sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQ
b3dlciBPbgogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX09GRiwgMCwgTm90U2VyaWFsaXplZCkgIC8v
IF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwgTm90U2VyaWFs
aXplZCkgIC8vIF9SU1Q6IERldmljZSBSZXNldAogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgSWYgKChEQ0FQICYgMHgxMDAwMDAwMCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9
IERDVFIgLyogXF9TQl8uUENJMC5HUFA2LldMQU4uRENUUiAqLwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRENUUiA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo
X1BSUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlI6IFBvd2VyIFJlc291cmNlIGZvciBS
ZXNldAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFj
a2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIFdSU1QKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIExvY2FsMCA9IFRvSW50ZWdlciAoVkRJRCkKICAgICAgICAgICAgICAg
IElmICgoKExvY2FsMCAmIDB4RkZGRkZGRkYpID09IDB4MDYxNjE0QzMpKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTVREUywgMCwgU2VyaWFsaXpl
ZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUg
KFNBUjEsIFBhY2thZ2UgKDB4MUYpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4NEQsIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHg1NCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQ0LCAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4NTMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
MHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFFLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFBLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MTQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MTQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAweDFFLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAweDFBLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4
MUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAweDE0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQs
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDE0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQKICAg
ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu
IChTQVIxKSAvKiBcX1NCXy5QQ0kwLkdQUDYuV0xBTi5NVERTLlNBUjEgKi8KICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTVRHUywgMCwgU2Vy
aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IE5hbWUgKEdFTzEsIFBhY2thZ2UgKDB4MUMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NEQsIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHg1NCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQ3LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTMsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFFLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
MHgxQSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MUUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFBLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAweDFBLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuIChHRU8xKSAvKiBcX1NCXy5QQ0kwLkdQUDYuV0xBTi5NVEdTLkdFTzEgKi8K
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTVRD
TCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIE5hbWUgKENMNkcsIFBhY2thZ2UgKDB4MEMpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NEQsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHg1NCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDQzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NEMsIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RDksIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHhDQywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEM5LCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgsIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAg
ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo
Q0w2RykgLyogXF9TQl8uUENJMC5HUFA2LldMQU4uTVRDTC5DTDZHICovCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoKExv
Y2FsMCAmIDB4RkZGRkZGRkYpID09IDB4MTEwMzE3Q0IpKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIE5hbWUgKFBXTFMsIDB4MDApCiAgICAgICAgICAgICAgICAg
ICAgTmFtZSAoUFdMMCwgQnVmZmVyICgweDFFKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwMSwgMHgwMSwgMHgwQywgMHgw
QywgMHgwQywgMHgwQywgMHgwQywgMHgwQywgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIDAwMDggKi8gIDB4M0MsIDB4MzQsIDB4MzQsIDB4MzQsIDB4MzQsIDB4
MzQsIDB4MzQsIDB4MzQsICAvLyA8NDQ0NDQ0NAogICAgICAgICAgICAgICAgICAgICAgICAv
KiAwMDEwICovICAweDM0LCAweDM0LCAweDM0LCAweDNDLCAweDM0LCAweDM0LCAweDM0LCAw
eDM0LCAgLy8gNDQ0PDQ0NDQKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxOCAqLyAg
MHgzNCwgMHgzNCwgMHgzNCwgMHgzNCwgMHgzNCwgMHgzNCAgICAgICAgICAgICAgIC8vIDQ0
NDQ0NAogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo
UFdMMSwgQnVmZmVyICgweDFFKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwMSwgMHgwMSwgMHgwQywgMHgwQywgMHgwQywg
MHgwQywgMHgwQywgMHgwQywgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAg
IC8qIDAwMDggKi8gIDB4M0MsIDB4MzQsIDB4MzQsIDB4MzQsIDB4MzQsIDB4MzQsIDB4MzQs
IDB4MzQsICAvLyA8NDQ0NDQ0NAogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICov
ICAweDM0LCAweDM0LCAweDM0LCAweDNDLCAweDM0LCAweDM0LCAweDM0LCAweDM0LCAgLy8g
NDQ0PDQ0NDQKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxOCAqLyAgMHgzNCwgMHgz
NCwgMHgzNCwgMHgzNCwgMHgzNCwgMHgzNCAgICAgICAgICAgICAgIC8vIDQ0NDQ0NAogICAg
ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChRUFdMLCAw
LCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChQV0xTID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBXTDApIC8qIFxfU0JfLlBDSTAu
R1BQNi5XTEFOLlBXTDAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFdMMSkgLyogXF9TQl8uUENJMC5HUFA2LldM
QU4uUFdMMSAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFFSTywgMCwgU2VyaWFsaXplZCkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJP
LCBCdWZmZXIgKDB4MTMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvKiAwMDEwICovICAweDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoUk8pIC8qIFxfU0JfLlBDSTAuR1BQNi5XTEFOLlFST18u
Uk9fXyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0
aG9kIChRU0dCLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgTmFtZSAoU0dCLCBCdWZmZXIgKDB4MjApCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8g
IDB4NEYsIDB4MDUsIDB4NTQsIDB4RDMsIDB4QzksIDB4QTksIDB4NjgsIDB4Q0UsICAvLyBP
LlQuLi5oLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg1Mywg
MHg1MywgMHg3MCwgMHhBMSwgMHgzMCwgMHhBQSwgMHgzQiwgMHg3NiwgIC8vIFNTcC4wLjt2
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweEZCLCAweDVFLCAw
eDI5LCAweEU3LCAweDc1LCAweDY0LCAweENFLCAweEM3LCAgLy8gLl4pLnVkLi4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4RkEsIDB4RDAsIDB4RkYsIDB4
RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAg
ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNHQikgLyog
XF9TQl8uUENJMC5HUFA2LldMQU4uUVNHQi5TR0JfICovCiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAg
IE11dGV4IChDTk1ULCAweDAwKQogICAgU2NvcGUgKF9TQi5QQ0kwLkdQMTcuWEhDMC5SSFVC
LlBSVDMuUFJUMSkKICAgIHsKICAgICAgICBQb3dlclJlc291cmNlIChCVFJULCAweDA1LCAw
eDAwMDApCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh
bGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
UmV0dXJuICgweDAxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9PTiwg
MCwgTm90U2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2VyIE9uCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBOb3RTZXJpYWxpemVk
KSAgLy8gX09GRjogUG93ZXIgT2ZmCiAgICAgICAgICAgIHsKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgTWV0aG9kIChfUlNULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2
aWNlIFJlc2V0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IEFjcXVp
cmUgKENOTVQsIDB4MDNFOCkKICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IFplcm8p
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIF5eXl5eXl5MUEMwLkVD
MC5EQ0JEID0gMHgwMAogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweEM4KQogICAgICAg
ICAgICAgICAgICAgIF5eXl5eXl5MUEMwLkVDMC5EQ0JEID0gMHgwMQogICAgICAgICAgICAg
ICAgICAgIFNsZWVwICgweEM4KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IFJlbGVhc2UgKENOTVQpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhv
ZCAoX1BSUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlI6IFBvd2VyIFJlc291cmNlIGZv
ciBSZXNldAogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBCVFJUCiAgICAgICAgICAgIH0pCiAgICAg
ICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IuUENJMC5HUFAyKQogICAgewogICAgICAgIE5h
bWUgKF9TMFcsIDB4MDQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAg
IE5hbWUgKF9QUjAsIFBhY2thZ2UgKDB4MDEpICAvLyBfUFIwOiBQb3dlciBSZXNvdXJjZXMg
Zm9yIEQwCiAgICAgICAgewogICAgICAgICAgICBQMFdXCiAgICAgICAgfSkKICAgICAgICBO
YW1lIChfUFIzLCBQYWNrYWdlICgweDAxKSAgLy8gX1BSMzogUG93ZXIgUmVzb3VyY2VzIGZv
ciBEM2hvdAogICAgICAgIHsKICAgICAgICAgICAgUDBXVwogICAgICAgIH0pCiAgICAgICAg
TmFtZSAoX1BSUiwgUGFja2FnZSAoMHgwMSkgIC8vIF9QUlI6IFBvd2VyIFJlc291cmNlIGZv
ciBSZXNldAogICAgICAgIHsKICAgICAgICAgICAgUDBXVwogICAgICAgIH0pCiAgICAgICAg
TmFtZSAoRDBXVywgMHgwMSkKICAgICAgICBQb3dlclJlc291cmNlIChQMFdXLCAweDAwLCAw
eDAwMDApCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9SU1QsIDAsIE5vdFNlcmlh
bGl6ZWQpICAvLyBfUlNUOiBEZXZpY2UgUmVzZXQKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgTTQ2MCAoIkxOVi1BU0wtXFxfU0IuUENJMC5HUFAyLlAwV1cuX1JTVFxuIiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFdGSU8g
KDB4MDYsIDB4MDApCiAgICAgICAgICAgICAgICBTbGVlcCAoMHgxRSkKICAgICAgICAgICAg
ICAgIFdGSU8gKDB4MDMsIDB4MDEpCiAgICAgICAgICAgICAgICBTbGVlcCAoMHgwQSkKICAg
ICAgICAgICAgICAgIFdGSU8gKDB4MjgsIDB4MDApCiAgICAgICAgICAgICAgICBTbGVlcCAo
MHgwMUY0KQogICAgICAgICAgICAgICAgTm90aWZ5IChXV0FOLCAweDAxKSAvLyBEZXZpY2Ug
Q2hlY2sKICAgICAgICAgICAgICAgIFdGSU8gKDB4MjgsIDB4MDEpCiAgICAgICAgICAgICAg
ICBTbGVlcCAoMHgxRSkKICAgICAgICAgICAgICAgIFdGSU8gKDB4MDMsIDB4MDApCiAgICAg
ICAgICAgICAgICBTbGVlcCAoMHg0NikKICAgICAgICAgICAgICAgIFdGSU8gKDB4MDYsIDB4
MDEpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFdXQU4sIDB4MDEpIC8vIERldmljZSBDaGVj
awogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh
bGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
TTQ2MCAoIkxOVi1BU0wtXFxfU0IuUENJMC5HUFAyLlAwV1cuX1NUQT0lWFxuIiwgRDBXVywg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFJldHVybiAo
RDBXVykgLyogXF9TQl8uUENJMC5HUFAyLkQwV1cgKi8KICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChfT04sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBP
bgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEQwV1cgIT0gMHgwMSkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIkxOVi1BU0wtXFxf
U0IuUENJMC5HUFAyLlAwV1cuX09OXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwKQogICAgICAgICAgICAgICAgICAgIFdXT04gKCkKICAgICAgICAgICAgICAgICAg
ICBEMFdXID0gMHgwMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNZXRob2QgKF9PRkYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT0ZGOiBQb3dlciBP
ZmYKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChEMFdXICE9IDB4MDApKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCJMTlYtQVNMLVxc
X1NCLlBDSTAuR1BQMi5QMFdXLl9PRkZcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgV09GRiAoKQogICAgICAgICAgICAgICAg
ICAgIEQwV1cgPSAweDAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAg
ICB9CgogICAgICAgIE1ldGhvZCAoV1dPTiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7
CiAgICAgICAgICAgIExvY2FsMCA9IFJQU1QgKCkKICAgICAgICAgICAgSWYgKChMb2NhbDAg
PT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFdGSU8gKDB4MDYsIDB4
MDEpCiAgICAgICAgICAgICAgICBTbGVlcCAoMHgyMCkKICAgICAgICAgICAgICAgIEFMSUIg
KDB4MTMsIDB4MEIpCiAgICAgICAgICAgICAgICBTbGVlcCAoMHgyMCkKICAgICAgICAgICAg
ICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4Mjc3NQogICAg
ICAgICAgICAgICAgV2hpbGUgKCgoKExvY2FsMSAmIDB4MjgpICE9IDB4MjApICYmIChMb2Nh
bDIgPiAweDAwKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9j
YWwxID0gTTAxNyAoMHgwMCwgMHgwMSwgMHgwMywgMHg2QiwgMHgwMCwgMHgwOCkKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDIgPSAoTG9jYWwyIC0gMHgwMSkKICAgICAgICAgICAgICAg
ICAgICBTdGFsbCAoMHg2MykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBT
bGVlcCAoMHgwMTAwKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg
KFdPRkYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAg
PSBSUFNUICgpCiAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBNNDAyICgweDAwLCAweDAxLCAweDAzKQogICAgICAgICAg
ICAgICAgTG9jYWwyID0gTTAxNyAoMHgwMCwgMHgwMSwgMHgwMywgMHg3MCwgMHgwMCwgMHgx
MCkKICAgICAgICAgICAgICAgIE0wMTggKDB4MDAsIDB4MDEsIDB4MDMsIDB4NzAsIDB4MDAs
IDB4MTAsIChMb2NhbDIgJiAweEVGRkYpKQogICAgICAgICAgICAgICAgQUxJQiAoMHgxMiwg
MHgwQikKICAgICAgICAgICAgICAgIE0wMTggKDB4MDAsIDB4MDEsIDB4MDMsIDB4NzAsIDB4
MDAsIDB4MTAsIExvY2FsMikKICAgICAgICAgICAgICAgIFNsZWVwICgweDBBKQogICAgICAg
ICAgICAgICAgV0ZJTyAoMHgwNiwgMHgwMCkKICAgICAgICAgICAgICAgIFNsZWVwICgweDFF
KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFJQU1QsIDAsIFNl
cmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBSRklPICgweDA2KQog
ICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAxKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAg
ICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFdXQU4pCiAgICAgICAgewogICAgICAg
ICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBO
YW1lIChXVzVHLCAweDAwKQogICAgICAgICAgICBOYW1lIChXV1FDLCAweDAwKQogICAgICAg
ICAgICBOYW1lIChXV0ZDLCAweDAwKQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKENX
QVIsIFBDSV9Db25maWcsIDB4MDAsIDB4MzApCiAgICAgICAgICAgIEZpZWxkIChDV0FSLCBX
b3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBWRElELCAgIDMyLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyQyksIAogICAgICAg
ICAgICAgICAgU1ZJRCwgICAxNgogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg
KERPU1YsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgIFdoaWxlICgoKFNWSUQgIT0gMHgxQ0Y4
KSAmJiAoTG9jYWwwIDwgMHgwM0U4KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwMSkKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfSU5J
LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChWRElEKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHgxMDAxMUVBQykpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBXV1FDID0gMHgwMQog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEID09
IDB4MTAwMjFFQUMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgV1dRQyA9IDB4MDEKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgICAgIElmICgoVkRJRCA9PSAweEUwQUIxMDVCKSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIFdXNUcgPSAweDAxCiAgICAgICAgICAgICAgICAg
ICAgICAgIFdXRkMgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICBJZiAoKFZESUQgPT0gMHg0RDc1MTRDMykpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBXVzVHID0gMHgwMQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBeXl5MUEMwLkVDMC5E
UFJTICgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoSVNRQywgMCwgTm90
U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChXV1FD
KSAvKiBcX1NCXy5QQ0kwLkdQUDIuV1dBTi5XV1FDICovCiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIE1ldGhvZCAoSVNGQywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmV0dXJuIChXV0ZDKSAvKiBcX1NCXy5QQ0kwLkdQUDIuV1dBTi5X
V0ZDICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoSVM1RywgMCwgTm90
U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChXVzVH
KSAvKiBcX1NCXy5QQ0kwLkdQUDIuV1dBTi5XVzVHICovCiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2Vy
IFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo
b2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRFNXLCAz
LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTVzogRGV2aWNlIFNsZWVwIFdha2UKICAgICAgICAg
ICAgewogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9SU1QsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUlNUOiBEZXZpY2UgUmVzZXQKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTTQ2MCAoIkxOVi1BU0wtXFxfU0IuUENJMC5HUFAyLldXQU4uX1JTVFxuIiwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFdG
SU8gKDB4MDMsIDB4MDEpCiAgICAgICAgICAgICAgICBTbGVlcCAoMHhDOCkKICAgICAgICAg
ICAgICAgIE5vdGlmeSAoV1dBTiwgMHgwMSkgLy8gRGV2aWNlIENoZWNrCiAgICAgICAgICAg
ICAgICBXRklPICgweDAzLCAweDAwKQogICAgICAgICAgICAgICAgU2xlZXAgKDB4MDE5MCkK
ICAgICAgICAgICAgICAgIE5vdGlmeSAoV1dBTiwgMHgwMSkgLy8gRGV2aWNlIENoZWNrCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkg
IC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImJhZDAxYjc1LTIyYTgtNGY0OC04Nzky
LWJkZGU5NDY3NzQ3ZCIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu
CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMSkpIHt9CiAgICAgICAgICAgICAg
ICAgICAgSWYgKChBcmcyID09IDB4MDIpKSB7fQogICAgICAgICAgICAgICAgICAgIElmICgo
QXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgIH0pCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIFBvd2VyUmVzb3VyY2UgKE1SU1QsIDB4MDUsIDB4MDAw
MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJp
YWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIE1ldGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo
b2QgKF9PRkYsIDAsIFNlcmlhbGl6ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9S
U1QsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUlNUOiBEZXZpY2UgUmVzZXQKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBXRklPICgweDA2LCAweDAwKQogICAgICAgICAg
ICAgICAgICAgIFNsZWVwICgweDE0KQogICAgICAgICAgICAgICAgICAgIFdGSU8gKDB4MDMs
IDB4MDEpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MEEpCiAgICAgICAgICAgICAg
ICAgICAgV0ZJTyAoMHgyOCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgw
MUY0KQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoV1dBTiwgMHgwMSkgLy8gRGV2aWNl
IENoZWNrCiAgICAgICAgICAgICAgICAgICAgV0ZJTyAoMHgyOCwgMHgwMSkKICAgICAgICAg
ICAgICAgICAgICBTbGVlcCAoMHgxNCkKICAgICAgICAgICAgICAgICAgICBXRklPICgweDAz
LCAweDAwKQogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDUwKQogICAgICAgICAgICAg
ICAgICAgIFdGSU8gKDB4MDYsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChX
V0FOLCAweDAxKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgICAgICBET1NWICgp
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo
X1BSUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlI6IFBvd2VyIFJlc291cmNlIGZvciBS
ZXNldAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4
MDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTVJTVAogICAgICAg
ICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAo
X1NCLlBDSTAuR1AxNy5YSEMwLlJIVUIuUFJUNCkKICAgIHsKICAgICAgICBQb3dlclJlc291
cmNlIChXV1BSLCAweDAwLCAweDAwMDApCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChf
U1RBLCAweDAxKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIE1ldGhvZCAoX09OLCAw
LCBTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgX1NUQSA9IDB4MDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k
IChfT0ZGLCAwLCBTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIgT2ZmCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIF9TVEEgPSAweDAwCiAgICAgICAgICAgIH0KICAgICAgICB9
CgogICAgICAgIE5hbWUgKF9TMFcsIDB4MDQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBT
dGF0ZQogICAgICAgIE5hbWUgKF9QUjAsIFBhY2thZ2UgKDB4MDEpICAvLyBfUFIwOiBQb3dl
ciBSZXNvdXJjZXMgZm9yIEQwCiAgICAgICAgewogICAgICAgICAgICBXV1BSCiAgICAgICAg
fSkKICAgICAgICBOYW1lIChfUFIyLCBQYWNrYWdlICgweDAxKSAgLy8gX1BSMjogUG93ZXIg
UmVzb3VyY2VzIGZvciBEMgogICAgICAgIHsKICAgICAgICAgICAgV1dQUgogICAgICAgIH0p
CiAgICAgICAgTmFtZSAoX1BSMywgUGFja2FnZSAoMHgwMSkgIC8vIF9QUjM6IFBvd2VyIFJl
c291cmNlcyBmb3IgRDNob3QKICAgICAgICB7CiAgICAgICAgICAgIFdXUFIKICAgICAgICB9
KQogICAgfQoKICAgIFNjb3BlIChcKQogICAgewogICAgICAgIE5hbWUgKFhVUEMsIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAweDAwCiAgICAgICAgfSkKICAg
ICAgICBOYW1lIChYUExELCBCdWZmZXIgKDB4MTQpCiAgICAgICAgewogICAgICAgICAgICAv
KiAwMDAwICovICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgIC8qIDAwMTAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgfSkKICAgICAgICBOYW1lIChVUENMLCBQ
YWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAg
IDB4MDksIAogICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgMHgwMAogICAgICAgIH0p
CiAgICAgICAgTmFtZSAoUExETCwgQnVmZmVyICgweDEwKQogICAgICAgIHsKICAgICAgICAg
ICAgLyogMDAwMCAqLyAgMHg4MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgw
MywgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4NTEsIDB4
MDQsIDB4ODAsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyBRLi4uLi4uLgog
ICAgICAgIH0pCiAgICAgICAgTmFtZSAoUExEOCwgQnVmZmVyICgweDEwKQogICAgICAgIHsK
ICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwOCwg
MHgwMCwgMHgwMywgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAwMDggKi8g
IDB4NTEsIDB4MDQsIDB4MDAsIDB4MDQsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyBR
Li4uLi4uLgogICAgICAgIH0pCiAgICAgICAgTmFtZSAoVVBDUiwgUGFja2FnZSAoMHgwNCkK
ICAgICAgICB7CiAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAweDA5LCAKICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgIDB4MDAKICAgICAgICB9KQogICAgICAgIE5hbWUg
KFBMRFIsIEJ1ZmZlciAoMHgxMCkKICAgICAgICB7CiAgICAgICAgICAgIC8qIDAwMDAgKi8g
IDB4ODEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDMsIDB4MDAsICAvLyAu
Li4uLi4uLgogICAgICAgICAgICAvKiAwMDA4ICovICAweDU5LCAweDA0LCAweDAwLCAweDAx
LCAweDAzLCAweDAwLCAweDAwLCAweDAwICAgLy8gWS4uLi4uLi4KICAgICAgICB9KQogICAg
ICAgIE5hbWUgKFVQTEEsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAw
eEZGLCAKICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAweDAwCiAgICAgICAgfSkKICAgICAgICBOYW1lIChQTExBLCBCdWZmZXIgKDB4MTApCiAg
ICAgICAgewogICAgICAgICAgICAvKiAwMDAwICovICAweDgxLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyog
MDAwOCAqLyAgMHg1MSwgMHgxMSwgMHg4MCwgMHgwMSwgMHgwMywgMHgwMCwgMHgwMCwgMHgw
MCAgIC8vIFEuLi4uLi4uCiAgICAgICAgfSkKICAgICAgICBOYW1lIChVUFJBLCBQYWNrYWdl
ICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgMHgwMAogICAgICAgIH0pCiAgICAg
ICAgTmFtZSAoUExSQSwgQnVmZmVyICgweDEwKQogICAgICAgIHsKICAgICAgICAgICAgLyog
MDAwMCAqLyAgMHg4MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4NTksIDB4MTIsIDB4
MDAsIDB4MDIsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyBZLi4uLi4uLgogICAgICAg
IH0pCiAgICAgICAgTmFtZSAoVVBDSSwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgIDB4MDAKICAgICAgICB9KQogICAgICAgIE5hbWUgKFBMREksIEJ1ZmZlciAo
MHgxMCkKICAgICAgICB7CiAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4ODEsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAg
ICAgICAvKiAwMDA4ICovICAweDMwLCAweDFDLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwICAgLy8gMC4uLi4uLi4KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBMREMs
IEJ1ZmZlciAoMHgxNCkKICAgICAgICB7CiAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4ODIs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAvKiAwMDA4ICovICAweDI0LCAweDAxLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAgLy8gJC4uLi4uLi4KICAgICAgICAgICAgLyogMDAxMCAq
LyAgMHhERCwgMHgwMCwgMHg5NSwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IC4uLi4KICAgICAgICB9KQogICAgfQoKICAgIFNjb3BlIChfU0IpCiAgICB7CiAgICAgICAg
RGV2aWNlIChGQU4wKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk
ICgiUE5QMEMwQiIpIC8qIEZhbiAoVGhlcm1hbCBTb2x1dGlvbikgKi8pICAvLyBfSElEOiBI
YXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCAweDAwKSAgLy8gX1VJRDogVW5p
cXVlIElECiAgICAgICAgICAgIE5hbWUgKF9TVFIsIFVuaWNvZGUgKCJDUFUgZmFuIikpICAv
LyBfU1RSOiBEZXNjcmlwdGlvbiBTdHJpbmcKICAgICAgICAgICAgTmFtZSAoTFJQTSwgMHgw
MCkKICAgICAgICAgICAgTmFtZSAoVVJQTSwgMHgyNzEwKQogICAgICAgICAgICBOYW1lIChH
UkFOLCAweDY0KQogICAgICAgICAgICBOYW1lIChDUlBNLCAweDAwKQogICAgICAgICAgICBO
YW1lIChURlNULCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHhGRkZG
RkZGRgogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFNSUE0sIDEsIFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENSUE0gPSAoQXJnMCAqIEdS
QU4pIC8qIFxfU0JfLkZBTjAuR1JBTiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBN
ZXRob2QgKEdSUE0sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgIElmICgoKFNQU0MgPj0gMHgwNSkg
JiYgKFNQU0MgPD0gMHgwNikpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIExvY2FsMCA9IENSUE0gLyogXF9TQl8uRkFOMC5DUlBNICovCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIE1ldGhvZCAoX0ZTVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9GU1Q6IEZh
biBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVEZTVCBbMHgwMl0gPSBH
UlBNICgpCiAgICAgICAgICAgICAgICBSZXR1cm4gKFRGU1QpIC8qIFxfU0JfLkZBTjAuVEZT
VCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKENSTkYsIDAsIFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IEdSUE0gKCkK
ICAgICAgICAgICAgICAgIElmICgoKExvY2FsMCA+IFVSUE0pIHx8IChMb2NhbDAgPCBMUlBN
KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChGQU4w
LCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006
IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
SWYgKChBcmcwID09IFRvVVVJRCAoImE3NjExODQwLTk5ZmUtNDFhZS1hNDg4LTM1Yzc1OTI2
YzhlYiIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm
ZXIgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4
MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoR1JBTikgLyogXF9TQl8uRkFOMC5HUkFOICovCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTFJQTSA9
IERlcmVmT2YgKEFyZzMgWzB4MDBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJQ
TSA9IERlcmVmT2YgKEFyZzMgWzB4MDFdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
UmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDAzRTgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDdEMCwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKChEUE5UIC0gMHgwMSkgKiBHUkFOKSwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI3MTAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm
ZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
LgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
IH0KICAgICAgICB9CiAgICB9Cn0KCg==
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt1.dsl"
Content-Disposition: attachment; filename="ssdt1.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MS5kYXQsIFR1ZSBKdWwgIDkgMDg6MzI6MDAgMjAyNAogKgogKiBPcmlnaW5hbCBUYWJs
ZSBIZWFkZXI6CiAqICAgICBTaWduYXR1cmUgICAgICAgICJTU0RUIgogKiAgICAgTGVuZ3Ro
ICAgICAgICAgICAweDAwMDAwMDgzICgxMzEpCiAqICAgICBSZXZpc2lvbiAgICAgICAgIDB4
MDIKICogICAgIENoZWNrc3VtICAgICAgICAgMHgxNwogKiAgICAgT0VNIElEICAgICAgICAg
ICAiTEVOT1ZPIgogKiAgICAgT0VNIFRhYmxlIElEICAgICAiUElEMVNzZHQiCiAqICAgICBP
RU0gUmV2aXNpb24gICAgIDB4MDAwMDAwMTAgKDE2KQogKiAgICAgQ29tcGlsZXIgSUQgICAg
ICAiSU5UTCIKICogICAgIENvbXBpbGVyIFZlcnNpb24gMHgyMDE4MDMxMyAoNTM4NDQ0NTYz
KQogKi8KRGVmaW5pdGlvbkJsb2NrICgiIiwgIlNTRFQiLCAyLCAiTEVOT1ZPIiwgIlBJRDFT
c2R0IiwgMHgwMDAwMDAxMCkKewogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5MUEMwLkVDMF8s
IERldmljZU9iaikKCiAgICBTY29wZSAoXF9TQi5QQ0kwLkxQQzAuRUMwKQogICAgewogICAg
ICAgIERldmljZSAoTEhLRikKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp
c2FJZCAoIkxFTjAxMzAiKSkgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE1l
dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgIH0KICAg
ICAgICB9CiAgICB9Cn0KCg==
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt2.dsl"
Content-Disposition: attachment; filename="ssdt2.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0Mi5kYXQsIFR1ZSBKdWwgIDkgMDg6MzI6MDAgMjAyNAogKgogKiBPcmlnaW5hbCBUYWJs
ZSBIZWFkZXI6CiAqICAgICBTaWduYXR1cmUgICAgICAgICJTU0RUIgogKiAgICAgTGVuZ3Ro
ICAgICAgICAgICAweDAwMDA4NDE2ICgzMzgxNCkKICogICAgIFJldmlzaW9uICAgICAgICAg
MHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweDkzCiAqICAgICBPRU0gSUQgICAgICAg
ICAgICJMRU5PVk8iCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJBbWRUYWJsZSIKICogICAg
IE9FTSBSZXZpc2lvbiAgICAgMHgwMDAwMDAwMiAoMikKICogICAgIENvbXBpbGVyIElEICAg
ICAgIk1TRlQiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MDIwMDAwMDIgKDMzNTU0NDM0
KQogKi8KRGVmaW5pdGlvbkJsb2NrICgiIiwgIlNTRFQiLCAyLCAiTEVOT1ZPIiwgIkFtZFRh
YmxlIiwgMHgwMDAwMDAwMikKewogICAgU2NvcGUgKFxfU0IpCiAgICB7CiAgICAgICAgTmFt
ZSAoQUdSQiwgMHhFMDAwMDAwMCkKICAgICAgICBOYW1lIChBREJHLCBCdWZmZXIgKDB4MDEw
MCkge30pCiAgICAgICAgTXV0ZXggKEFNMDAsIDB4MDApCiAgICAgICAgTmFtZSAoQURBVCwg
QnVmZmVyICgweDA1MjApCiAgICAgICAgewogICAgICAgICAgICAvKiAwMDAwICovICAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4u
Li4KICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAwMTAg
Ki8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAv
LyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMDE4ICovICAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg
LyogMDAyMCAqLyAgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMSwg
MHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAwMjggKi8gIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAg
ICAgICAgICAvKiAwMDMwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAx
LCAweDAxLCAweDAxLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDAzOCAqLyAgMHgw
MCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4u
Li4uCiAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMDQ4
ICovICAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDA1MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAg
IC8qIDAwNTggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDEs
IDB4MDEsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMDYwICovICAweDAwLCAweDAw
LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAg
ICAgICAgICAgLyogMDA2OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAwNzAgKi8gIDB4
MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAvKiAwMDc4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDA4
MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAwODggKi8gIDB4MDAsIDB4MDAsIDB4MDEs
IDB4MTgsIDB4MUIsIDB4RkYsIDB4RkYsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAg
ICAvKiAwMDkwICovICAweDAwLCAweDAyLCAweDA0LCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDA5OCAqLyAgMHgwMSwgMHgw
MSwgMHgwMSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgIC8qIDAwQTAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMEE4ICovICAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgLyogMDBCMCAqLyAgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAw
QjggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
ICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMEMwICovICAweDAwLCAweDAwLCAweDAx
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDE2LCAgLy8gLi4uLi4uLi4KICAgICAgICAg
ICAgLyogMDBDOCAqLyAgMHgxNiwgMHhGRiwgMHhGRiwgMHgwMywgMHgwMCwgMHgwMiwgMHgw
MSwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAwRDAgKi8gIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAvKiAwMEQ4ICovICAweDAwLCAweDAwLCAweDAwLCAweDE3LCAweDE3LCAw
eEZGLCAweEZGLCAweDA0LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDBFMCAqLyAg
MHgwMCwgMHgwMiwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4u
Li4uLi4uCiAgICAgICAgICAgIC8qIDAwRTggKi8gIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEs
IDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAw
MEYwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDBGOCAqLyAgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAg
ICAgIC8qIDAxMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMTA4ICovICAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4K
ICAgICAgICAgICAgLyogMDExMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAxMTggKi8g
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAu
Li4uLi4uLgogICAgICAgICAgICAvKiAwMTIwICovICAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyog
MDEyOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAxMzAgKi8gIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAg
ICAgICAvKiAwMTM4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDE0MCAqLyAgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgIC8qIDAxNDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMTUwICov
ICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8g
Li4uLi4uLi4KICAgICAgICAgICAgLyogMDE1OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8q
IDAxNjAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMTY4ICovICAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAg
ICAgICAgLyogMDE3MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAxNzggKi8gIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAvKiAwMTgwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDE4OCAq
LyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8v
IC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAxOTAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAv
KiAwMTk4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDFBMCAqLyAgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgIC8qIDAxQTggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMUIwICovICAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4u
Li4KICAgICAgICAgICAgLyogMDFCOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAxQzAg
Ki8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAv
LyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMUM4ICovICAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg
LyogMDFEMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAxRDggKi8gIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAg
ICAgICAgICAvKiAwMUUwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDFFOCAqLyAgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4u
Li4uCiAgICAgICAgICAgIC8qIDAxRjAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMUY4
ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDIwMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAg
IC8qIDAyMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMjEwICovICAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAg
ICAgICAgICAgLyogMDIxOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAyMjAgKi8gIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAvKiAwMjI4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDIz
MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAyMzggKi8gIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAg
ICAvKiAwMjQwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDI0OCAqLyAgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgIC8qIDAyNTAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMjU4ICovICAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgLyogMDI2MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAy
NjggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
ICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMjcwICovICAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAg
ICAgLyogMDI3OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAyODAgKi8gIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAvKiAwMjg4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDI5MCAqLyAg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4u
Li4uLi4uCiAgICAgICAgICAgIC8qIDAyOTggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAw
MkEwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDJBOCAqLyAgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAg
ICAgIC8qIDAyQjAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMkI4ICovICAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4K
ICAgICAgICAgICAgLyogMDJDMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAyQzggKi8g
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAu
Li4uLi4uLgogICAgICAgICAgICAvKiAwMkQwICovICAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyog
MDJEOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAyRTAgKi8gIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAg
ICAgICAvKiAwMkU4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDJGMCAqLyAgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgIC8qIDAyRjggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMzAwICov
ICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8g
Li4uLi4uLi4KICAgICAgICAgICAgLyogMDMwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8q
IDAzMTAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMzE4ICovICAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAg
ICAgICAgLyogMDMyMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAzMjggKi8gIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAvKiAwMzMwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDMzOCAq
LyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8v
IC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAzNDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAv
KiAwMzQ4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDM1MCAqLyAgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgIC8qIDAzNTggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMzYwICovICAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4u
Li4KICAgICAgICAgICAgLyogMDM2OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAzNzAg
Ki8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAv
LyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwMzc4ICovICAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg
LyogMDM4MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAzODggKi8gIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAg
ICAgICAgICAvKiAwMzkwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDM5OCAqLyAgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4u
Li4uCiAgICAgICAgICAgIC8qIDAzQTAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwM0E4
ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDNCMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAg
IC8qIDAzQjggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwM0MwICovICAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAg
ICAgICAgICAgLyogMDNDOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAzRDAgKi8gIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAvKiAwM0Q4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDNF
MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDAzRTggKi8gIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAg
ICAvKiAwM0YwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDNGOCAqLyAgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgIC8qIDA0MDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwNDA4ICovICAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgLyogMDQxMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDA0
MTggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
ICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwNDIwICovICAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAg
ICAgLyogMDQyOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDA0MzAgKi8gIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAvKiAwNDM4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDQ0MCAqLyAg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4u
Li4uLi4uCiAgICAgICAgICAgIC8qIDA0NDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAw
NDUwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDQ1OCAqLyAgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAg
ICAgIC8qIDA0NjAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwNDY4ICovICAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4K
ICAgICAgICAgICAgLyogMDQ3MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDA0NzggKi8g
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAu
Li4uLi4uLgogICAgICAgICAgICAvKiAwNDgwICovICAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyog
MDQ4OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDA0OTAgKi8gIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAg
ICAgICAvKiAwNDk4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDRBMCAqLyAgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgIC8qIDA0QTggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwNEIwICov
ICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8g
Li4uLi4uLi4KICAgICAgICAgICAgLyogMDRCOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8q
IDA0QzAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwNEM4ICovICAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAg
ICAgICAgLyogMDREMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDA0RDggKi8gIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAvKiAwNEUwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDRFOCAq
LyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8v
IC4uLi4uLi4uCiAgICAgICAgICAgIC8qIDA0RjAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAv
KiAwNEY4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgLyogMDUwMCAqLyAgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgIC8qIDA1MDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAvKiAwNTEwICovICAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4u
Li4KICAgICAgICAgICAgLyogMDUxOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgfSkKICAgICAgICBP
cGVyYXRpb25SZWdpb24gKEEwMDEsIFN5c3RlbUlPLCAweDgwLCAweDA0KQogICAgICAgIEZp
ZWxkIChBMDAxLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAg
ICAgICAgIEEwMDIsICAgMzIKICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo
QTAwMywgU3lzdGVtSU8sIDB4ODAsIDB4MDIpCiAgICAgICAgRmllbGQgKEEwMDMsIFdvcmRB
Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBBMDA0LCAgIDE2
CiAgICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24gKEEwMDUsIFN5c3RlbUlPLCAw
eDgwLCAweDAxKQogICAgICAgIEZpZWxkIChBMDA1LCBCeXRlQWNjLCBOb0xvY2ssIFByZXNl
cnZlKQogICAgICAgIHsKICAgICAgICAgICAgQTAwNiwgICA4CiAgICAgICAgfQoKICAgICAg
ICBNZXRob2QgKEEwMDcsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg
ICBBMDAyID0gKEFyZzAgfCAweEIwMDAwMDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k
IChBTElCLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChB
cmcwID09IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBMDA3ICgweEFB
ODApCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzEsIDB4MDAsIEEwMjAp
CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzEsIDB4MDIsIEEwMjEpCiAg
ICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmcxLCAweDA0LCBBMDIyKQogICAg
ICAgICAgICAgICAgTG9jYWwwID0gQnVmZmVyICgweDAxMDApIHt9CiAgICAgICAgICAgICAg
ICBDcmVhdGVXb3JkRmllbGQgKExvY2FsMCwgMHgwMCwgQTAyMykKICAgICAgICAgICAgICAg
IEEwMjMgPSBBMDIwIC8qIFxfU0JfLkFMSUIuQTAyMCAqLwogICAgICAgICAgICAgICAgQ3Jl
YXRlV29yZEZpZWxkIChMb2NhbDAsIDB4MDIsIEEwMjQpCiAgICAgICAgICAgICAgICBBMDI0
ID0gQTAyMSAvKiBcX1NCXy5BTElCLkEwMjEgKi8KICAgICAgICAgICAgICAgIENyZWF0ZURX
b3JkRmllbGQgKExvY2FsMCwgMHgwNCwgQTAyNSkKICAgICAgICAgICAgICAgIEEwMjUgPSBB
MDIyIC8qIFxfU0JfLkFMSUIuQTAyMiAqLwogICAgICAgICAgICAgICAgQTAyNSAmPSB+MHgw
RgogICAgICAgICAgICAgICAgSWYgKChEZXJlZk9mIChcX1NCLkFEQVQgWzB4MDBdKSA+IDB4
MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4
MEYKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAxCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgQTAyNSB8PSBMb2NhbDEKICAgICAgICAgICAgICAgIEEw
MDcgKDB4QUE4MSkKICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIEEwMDcgKDB4QUE4MikKICAgICAgICAgICAgICAgIExvY2FsMCA9IERl
cmVmT2YgKEFyZzEgWzB4MDJdKQogICAgICAgICAgICAgICAgTG9jYWwxID0gQTAyNiAoTG9j
YWwwKQogICAgICAgICAgICAgICAgQTAwNyAoMHhBQTgzKQogICAgICAgICAgICAgICAgUmV0
dXJuIChMb2NhbDEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAw
eDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQTAwNyAoMHhBQTg0KQogICAg
ICAgICAgICAgICAgTG9jYWwwID0gQnVmZmVyICgweDAxMDApCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgMHgwMCwgMHgwMCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLgogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIEEwMDcgKDB4QUE4NSkKICAgICAgICAgICAgICAgIFJldHVybiAo
TG9jYWwwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMykp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEEwMDcgKDB4QUE4NikKICAgICAgICAg
ICAgICAgIExvY2FsMCA9IEJ1ZmZlciAoMHgwMTAwKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MDAsIDB4MDAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyAuLi4KICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICBBMDA3ICgweEFBODcpCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2Fs
MCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDYpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBBMDA3ICgweEFBODgpCiAgICAgICAgICAgICAg
ICBMb2NhbDAgPSBEZXJlZk9mIChBcmcxIFsweDA0XSkKICAgICAgICAgICAgICAgIExvY2Fs
MSA9IERlcmVmT2YgKEFyZzEgWzB4MDJdKQogICAgICAgICAgICAgICAgTG9jYWwyID0gQTAy
OSAoTG9jYWwwLCBMb2NhbDEpCiAgICAgICAgICAgICAgICBBMDA3ICgweEFBODkpCiAgICAg
ICAgICAgICAgICBSZXR1cm4gKExvY2FsMikKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
SWYgKChBcmcwID09IDB4MEEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBMDA3
ICgweEFBOEEpCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBEZXJlZk9mIChBcmcxIFsweDAy
XSkKICAgICAgICAgICAgICAgIExvY2FsMSA9IEEwMzAgKExvY2FsMCkKICAgICAgICAgICAg
ICAgIEEwMDcgKDB4QUE4QikKICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwQikpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIEEwMDcgKDB4QUE4QykKICAgICAgICAgICAgICAgIExvY2Fs
MCA9IERlcmVmT2YgKEFyZzEgWzB4MDJdKQogICAgICAgICAgICAgICAgTG9jYWwxID0gRGVy
ZWZPZiAoQXJnMSBbMHgwM10pCiAgICAgICAgICAgICAgICBMb2NhbDIgPSBEZXJlZk9mIChB
cmcxIFsweDA0XSkKICAgICAgICAgICAgICAgIExvY2FsMiB8PSAoRGVyZWZPZiAoQXJnMSBb
MHgwNV0pIDw8IDB4MDgpCiAgICAgICAgICAgICAgICBMb2NhbDIgfD0gKERlcmVmT2YgKEFy
ZzEgWzB4MDZdKSA8PCAweDEwKQogICAgICAgICAgICAgICAgTG9jYWwyIHw9IChEZXJlZk9m
IChBcmcxIFsweDA3XSkgPDwgMHgxOCkKICAgICAgICAgICAgICAgIExvY2FsMyA9IERlcmVm
T2YgKEFyZzEgWzB4MDhdKQogICAgICAgICAgICAgICAgTG9jYWwzIHw9IChEZXJlZk9mIChB
cmcxIFsweDA5XSkgPDwgMHgwOCkKICAgICAgICAgICAgICAgIExvY2FsMyB8PSAoRGVyZWZP
ZiAoQXJnMSBbMHgwQV0pIDw8IDB4MTApCiAgICAgICAgICAgICAgICBMb2NhbDMgfD0gKERl
cmVmT2YgKEFyZzEgWzB4MEJdKSA8PCAweDE4KQogICAgICAgICAgICAgICAgTG9jYWw0ID0g
RGVyZWZPZiAoQXJnMSBbMHgwQ10pCiAgICAgICAgICAgICAgICBMb2NhbDQgfD0gKERlcmVm
T2YgKEFyZzEgWzB4MERdKSA8PCAweDA4KQogICAgICAgICAgICAgICAgTG9jYWw0IHw9IChE
ZXJlZk9mIChBcmcxIFsweDBFXSkgPDwgMHgxMCkKICAgICAgICAgICAgICAgIExvY2FsNCB8
PSAoRGVyZWZPZiAoQXJnMSBbMHgwRl0pIDw8IDB4MTgpCiAgICAgICAgICAgICAgICBMb2Nh
bDUgPSBBMDMxIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyLCBMb2NhbDMsIExvY2FsNCkKICAg
ICAgICAgICAgICAgIEEwMDcgKDB4QUE4RCkKICAgICAgICAgICAgICAgIFJldHVybiAoTG9j
YWw1KQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwQykpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEEwMDcgKDB4QUE4RSkKICAgICAgICAgICAg
ICAgIExvY2FsMCA9IEEwMzIgKEFyZzEpCiAgICAgICAgICAgICAgICBBMDA3ICgweEFBOEYp
CiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgSWYgKChBcmcwID09IDB4MTApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBBMDA3ICgweEFBOTApCiAgICAgICAgICAgICAgICBMb2NhbDcgPSBCdWZmZXIgKDB4MTgp
IHt9CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDcsIDB4MDAsIEEw
MzMpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDcsIDB4MDQsIEEw
MzQpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDcsIDB4MDgsIEEw
MzUpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDcsIDB4MEMsIEEw
MzYpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDcsIDB4MTAsIEEw
MzcpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDcsIDB4MTQsIEEw
MzgpCiAgICAgICAgICAgICAgICBBMDMzID0gMHgwMAogICAgICAgICAgICAgICAgQTAzNCA9
IDB4MDAKICAgICAgICAgICAgICAgIEEwMzUgPSAweDAwCiAgICAgICAgICAgICAgICBBMDM2
ID0gMHgwMAogICAgICAgICAgICAgICAgQTAzNyA9IDB4MDAKICAgICAgICAgICAgICAgIEEw
MzggPSAweDAwCiAgICAgICAgICAgICAgICBBMDE4ICgweDI4LCBMb2NhbDcpCiAgICAgICAg
ICAgICAgICBBMDA3ICgweEFBOTEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgo
QXJnMCA9PSAweDExKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQTAwNyAoMHhB
QTkyKQogICAgICAgICAgICAgICAgTG9jYWw2ID0gQnVmZmVyICgweDE4KSB7fQogICAgICAg
ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw2LCAweDAwLCBBMDEyKQogICAgICAg
ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw2LCAweDA0LCBBMDEzKQogICAgICAg
ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw2LCAweDA4LCBBMDE0KQogICAgICAg
ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw2LCAweDBDLCBBMDE1KQogICAgICAg
ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw2LCAweDEwLCBBMDE2KQogICAgICAg
ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw2LCAweDE0LCBBMDE3KQogICAgICAg
ICAgICAgICAgQTAxMiA9IDB4MDAKICAgICAgICAgICAgICAgIEEwMTMgPSAweDAwCiAgICAg
ICAgICAgICAgICBBMDE0ID0gMHgwMAogICAgICAgICAgICAgICAgQTAxNSA9IDB4MDAKICAg
ICAgICAgICAgICAgIEEwMTYgPSAweDAwCiAgICAgICAgICAgICAgICBBMDE3ID0gMHgwMAog
ICAgICAgICAgICAgICAgQTAxOCAoMHgyNywgTG9jYWw2KQogICAgICAgICAgICAgICAgQTAw
NyAoMHhBQTkzKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgx
MikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEEwMDcgKDB4QUE5NCkKICAgICAg
ICAgICAgICAgIExvY2FsNiA9IEJ1ZmZlciAoMHgxOCkge30KICAgICAgICAgICAgICAgIENy
ZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwMCwgQTAzOSkKICAgICAgICAgICAgICAgIENy
ZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwNCwgQTA0MCkKICAgICAgICAgICAgICAgIENy
ZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwOCwgQTA0MSkKICAgICAgICAgICAgICAgIENy
ZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwQywgQTA0MikKICAgICAgICAgICAgICAgIENy
ZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgxMCwgQTA0MykKICAgICAgICAgICAgICAgIENy
ZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgxNCwgQTA0NCkKICAgICAgICAgICAgICAgIEEw
MzkgPSAweDAwCiAgICAgICAgICAgICAgICBBMDQwID0gMHgwMAogICAgICAgICAgICAgICAg
QTA0MSA9IDB4MDAKICAgICAgICAgICAgICAgIEEwNDIgPSAweDAwCiAgICAgICAgICAgICAg
ICBBMDQzID0gMHgwMAogICAgICAgICAgICAgICAgQTA0NCA9IDB4MDAKICAgICAgICAgICAg
ICAgIExvY2FsNSA9IEEwNDUgKEFyZzEpCiAgICAgICAgICAgICAgICBJZiAoKDB4RkYgIT0g
TG9jYWw1KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBMDM5ID0g
TG9jYWw1CiAgICAgICAgICAgICAgICAgICAgQTA0MCA9IDB4MDIKICAgICAgICAgICAgICAg
ICAgICBBMDQ2ICgweDI0LCBMb2NhbDYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgQTAwNyAoMHhBQTk1KQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFy
ZzAgPT0gMHgxMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEEwMDcgKDB4QUE5
NikKICAgICAgICAgICAgICAgIExvY2FsNiA9IEJ1ZmZlciAoMHgxOCkge30KICAgICAgICAg
ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwMCwgQTA0NykKICAgICAgICAg
ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwNCwgQTA0OCkKICAgICAgICAg
ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwOCwgQTA0OSkKICAgICAgICAg
ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwQywgQTA1MCkKICAgICAgICAg
ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgxMCwgQTA1MSkKICAgICAgICAg
ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgxNCwgQTA1MikKICAgICAgICAg
ICAgICAgIEEwNDcgPSAweDAwCiAgICAgICAgICAgICAgICBBMDQ4ID0gMHgwMAogICAgICAg
ICAgICAgICAgQTA0OSA9IDB4MDAKICAgICAgICAgICAgICAgIEEwNTAgPSAweDAwCiAgICAg
ICAgICAgICAgICBBMDUxID0gMHgwMAogICAgICAgICAgICAgICAgQTA1MiA9IDB4MDAKICAg
ICAgICAgICAgICAgIExvY2FsNSA9IEEwNDUgKEFyZzEpCiAgICAgICAgICAgICAgICBJZiAo
KDB4RkYgIT0gTG9jYWw1KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBBMDQ3ID0gTG9jYWw1CiAgICAgICAgICAgICAgICAgICAgQTA0OCA9IDB4MDEKICAgICAg
ICAgICAgICAgICAgICBBMDQ2ICgweDI0LCBMb2NhbDYpCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgQTAwNyAoMHhBQTk3KQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBJZiAoKEFyZzAgPT0gMHgxNCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEEw
MDcgKDB4QUE5QykKICAgICAgICAgICAgICAgIExvY2FsNiA9IEJ1ZmZlciAoMHgxOCkge30K
ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwMCwgQTA1MykK
ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwNCwgQTA1NCkK
ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwOCwgQTA1NSkK
ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgwQywgQTA1NikK
ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgxMCwgQTA1NykK
ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNiwgMHgxNCwgQTA1OCkK
ICAgICAgICAgICAgICAgIEEwNTMgPSBBcmcxCiAgICAgICAgICAgICAgICBBMDU0ID0gMHgw
MAogICAgICAgICAgICAgICAgQTA1NSA9IDB4MDAKICAgICAgICAgICAgICAgIEEwNTYgPSAw
eDAwCiAgICAgICAgICAgICAgICBBMDU3ID0gMHgwMAogICAgICAgICAgICAgICAgQTA1OCA9
IDB4MDAKICAgICAgICAgICAgICAgIEEwMTggKDB4NjEsIExvY2FsNikKICAgICAgICAgICAg
ICAgIEEwMDcgKDB4QUE5RCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcw
ID09IDB4MTUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBMDA3ICgweEFBOUUp
CiAgICAgICAgICAgICAgICBMb2NhbDYgPSBCdWZmZXIgKDB4MTgpIHt9CiAgICAgICAgICAg
ICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDYsIDB4MDAsIEEwNTkpCiAgICAgICAgICAg
ICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDYsIDB4MDQsIEEwNjApCiAgICAgICAgICAg
ICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDYsIDB4MDgsIEEwNjEpCiAgICAgICAgICAg
ICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDYsIDB4MEMsIEEwNjIpCiAgICAgICAgICAg
ICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDYsIDB4MTAsIEEwNjMpCiAgICAgICAgICAg
ICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDYsIDB4MTQsIEEwNjQpCiAgICAgICAgICAg
ICAgICBBMDU5ID0gQXJnMQogICAgICAgICAgICAgICAgQTA2MCA9IDB4MDAKICAgICAgICAg
ICAgICAgIEEwNjEgPSAweDAwCiAgICAgICAgICAgICAgICBBMDYyID0gMHgwMAogICAgICAg
ICAgICAgICAgQTA2MyA9IDB4MDAKICAgICAgICAgICAgICAgIEEwNjQgPSAweDAwCiAgICAg
ICAgICAgICAgICBBMDE4ICgweDY1LCBMb2NhbDYpCiAgICAgICAgICAgICAgICBBMDA3ICgw
eEFBOUYpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweEFBKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQTAwNyAoMHhBQTk4KQogICAgICAgICAg
ICAgICAgTG9jYWw2ID0gQnVmZmVyICgweDE4KSB7fQogICAgICAgICAgICAgICAgQ3JlYXRl
RFdvcmRGaWVsZCAoTG9jYWw2LCAweDAwLCBBMDY1KQogICAgICAgICAgICAgICAgQ3JlYXRl
RFdvcmRGaWVsZCAoTG9jYWw2LCAweDA0LCBBMDY2KQogICAgICAgICAgICAgICAgQ3JlYXRl
RFdvcmRGaWVsZCAoTG9jYWw2LCAweDA4LCBBMDY3KQogICAgICAgICAgICAgICAgQ3JlYXRl
RFdvcmRGaWVsZCAoTG9jYWw2LCAweDBDLCBBMDY4KQogICAgICAgICAgICAgICAgQ3JlYXRl
RFdvcmRGaWVsZCAoTG9jYWw2LCAweDEwLCBBMDY5KQogICAgICAgICAgICAgICAgQ3JlYXRl
RFdvcmRGaWVsZCAoTG9jYWw2LCAweDE0LCBBMDcwKQogICAgICAgICAgICAgICAgQTA2NSA9
IDB4MDAKICAgICAgICAgICAgICAgIEEwNjYgPSAweDAwCiAgICAgICAgICAgICAgICBBMDY3
ID0gMHgwMAogICAgICAgICAgICAgICAgQTA2OCA9IDB4MDAKICAgICAgICAgICAgICAgIEEw
NjkgPSAweDAwCiAgICAgICAgICAgICAgICBBMDcwID0gMHgwMAogICAgICAgICAgICAgICAg
QTA3MSAoQXJnMSkKICAgICAgICAgICAgICAgIEEwMDcgKDB4QUE5OSkKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k
IChBMDI5LCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWww
ID0gMHgwMAogICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IDB4MEIpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgPSBBMTIzIChMb2NhbDAsIEFyZzEpCiAgICAg
ICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBMb2NhbDIgPSBBMTI0IChMb2NhbDAsIEFyZzApCiAgICAgICAg
ICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBM
b2NhbDArKwogICAgICAgICAgICB9CgogICAgICAgICAgICBMb2NhbDcgPSBCdWZmZXIgKDB4
MEEpIHt9CiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoTG9jYWw3LCAweDAwLCBBMDIz
KQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKExvY2FsNywgMHgwMiwgQTA3MykKICAg
ICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChMb2NhbDcsIDB4MDMsIEExMjUpCiAgICAgICAg
ICAgIEEwMjMgPSAweDA0CiAgICAgICAgICAgIEEwNzMgPSAweDAwCiAgICAgICAgICAgIElm
ICgoTG9jYWwyID09IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBMTI1
ID0gMHgwMAogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgQTEyNSA9IDB4MDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
UmV0dXJuIChMb2NhbDcpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEExMjMsIDIsIE5v
dFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMCkp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjAu
QTExOCAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAw
eDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAu
QUJSMS5BMTE4IChBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcw
ID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0Iu
QVdSMC5BQlIyLkExMTggKEFyZzEpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAo
KEFyZzAgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAo
XF9TQi5BV1IwLkFCUjMuQTExOCAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IElmICgoQXJnMCA9PSAweDA0KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0
dXJuIChcX1NCLkFXUjAuQUJSNC5BMTE4IChBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgSWYgKChBcmcwID09IDB4MDUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBSZXR1cm4gKFxfU0IuQVdSMC5BQlI1LkExMTggKEFyZzEpKQogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNikpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjYuQTExOCAoQXJnMSkpCiAgICAgICAgICAg
IH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQTEyNCwgMiwgTm90U2VyaWFsaXplZCkK
ICAgICAgICB7CiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSMC5BMTE5IChBcmcxKSkK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlIxLkExMTkgKEFy
ZzEpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMikpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjIuQTEx
OSAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAz
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJS
My5BMTE5IChBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09
IDB4MDQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdS
MC5BQlI0LkExMTkgKEFyZzEpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFy
ZzAgPT0gMHgwNSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9T
Qi5BV1IwLkFCUjUuQTExOSAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElm
ICgoQXJnMCA9PSAweDA2KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJu
IChcX1NCLkFXUjAuQUJSNi5BMTE5IChBcmcxKSkKICAgICAgICAgICAgfQogICAgICAgIH0K
CiAgICAgICAgTmFtZSAoQUQwMCwgMHgwMCkKICAgICAgICBOYW1lIChESzAwLCAweDAwKQog
ICAgICAgIE1ldGhvZCAoQTAyNiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAg
ICAgICAgIEFEMDAgPSBBcmcwCiAgICAgICAgICAgIEEwMTEgKCkKICAgICAgICB9CgogICAg
ICAgIE1ldGhvZCAoQTAzMCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg
ICAgIERLMDAgPSBBcmcwCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEEwMzEsIDUsIE5v
dFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgIH0KCiAgICAgICAgTmFtZSAoQVAwMSwg
MHgwMCkKICAgICAgICBOYW1lIChBUDAyLCAweDAwKQogICAgICAgIE5hbWUgKEFQMDMsIDB4
MDApCiAgICAgICAgTmFtZSAoQVAwNSwgMHgwMCkKICAgICAgICBOYW1lIChBUDBCLCAweEZG
KQogICAgICAgIE5hbWUgKEFQMTAsIDB4MDApCiAgICAgICAgTWV0aG9kIChBMDcyLCAxLCBO
b3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWw3ID0gQnVmZmVyICgw
eDAxMDApIHt9CiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoTG9jYWw3LCAweDAwLCBB
MDIzKQogICAgICAgICAgICBBMDIzID0gMHgwMwogICAgICAgICAgICBDcmVhdGVCeXRlRmll
bGQgKExvY2FsNywgMHgwMiwgQTA3MykKICAgICAgICAgICAgQTA3MyA9IDB4MDEKICAgICAg
ICAgICAgSWYgKChEZXJlZk9mIChcX1NCLkFEQVQgWzB4MDBdKSA9PSAweDAxKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgQTA3MyA9IDB4MDIKICAgICAgICAgICAgICAgIFJl
dHVybiAoTG9jYWw3KQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKERlcmVmT2Yg
KFxfU0IuQURBVCBbMHgwMF0pID09IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBBMDczID0gMHgwMQogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDcpCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIEEwNzQgKEFyZzApCiAgICAgICAgICAgIElmICgoQVAw
NSAhPSAweDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChMb2Nh
bDcpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEEwNzUgKCkKICAgICAgICAgICAgQTA3
MyA9IDB4MDIKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDcpCiAgICAgICAgfQoKICAgICAg
ICBNZXRob2QgKEEwNzYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg
ICBJZiAoKERlcmVmT2YgKFxfU0IuQURBVCBbMHgwMF0pIDw9IDB4MDEpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIElmICgoQVAwNSAhPSAweDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBBMDc1ICgpCiAg
ICAgICAgfQoKICAgICAgICBNZXRob2QgKEEwNzcsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgewogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIEFQMDEgPSAweDAwCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAg
ICAgIE1ldGhvZCAoQTA3OCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg
ICAgIEFQMTAgPSAweDAxCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEEwNzksIDEsIE5v
dFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBBUDA1ID0gQXJnMAogICAgICAg
ICAgICBJZiAoKERlcmVmT2YgKFxfU0IuQURBVCBbMHgwMF0pIDw9IDB4MDEpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIExvY2FsMSA9IEFQMEIgLyogXF9TQl8uQVAwQiAqLwogICAgICAgICAgICBJ
ZiAoKEFQMDUgPT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDAKICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwIDwgMHgwQikpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQTA4MCAoTG9jYWwwKQogICAgICAg
ICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgQVAwQiA9IDB4MDAKICAgICAgICAgICAgfQoKICAgICAgICAgICAgQTA3NSAoKQogICAg
ICAgICAgICBBUDBCID0gTG9jYWwxCiAgICAgICAgICAgIExvY2FsNyA9IEJ1ZmZlciAoMHgw
MTAwKSB7fQogICAgICAgICAgICBMb2NhbDcgWzB4MDBdID0gMHgwMwogICAgICAgICAgICBM
b2NhbDcgWzB4MDFdID0gMHgwMAogICAgICAgICAgICBMb2NhbDcgWzB4MDJdID0gMHgwMAog
ICAgICAgICAgICBSZXR1cm4gKExvY2FsNykKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo
QTA4MSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoQVAw
QiAhPSAweEZGKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChBUDBC
KSAvKiBcX1NCXy5BUDBCICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAo
QUQwMCkgLyogXF9TQl8uQUQwMCAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChBMDc0
LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQ3JlYXRlV29yZEZp
ZWxkIChBcmcwLCAweDAyLCBBUDA2KQogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFy
ZzAsIDB4MDQsIEFQMDcpCiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgMHgw
NiwgQVAwOCkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDA4LCBBUDA5
KQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzAsIDB4MDksIEFQMEEpCiAgICAg
ICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPCAweDBC
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBMDgyIChMb2NhbDAsIEFQ
MDYpID09IDB4MDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm
ICgoKEFQMDcgJiBBUDA4KSA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEEwODMgKExvY2FsMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgQTA4NCAoTG9jYWwwLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIEEwODQgKExvY2FsMCwgQVAwQSkKICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAg
ICAgTWV0aG9kIChBMDg1LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAg
ICAgQVAwMiA9IDB4MDEKICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICBX
aGlsZSAoKExvY2FsMCA8IDB4MEIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBM
b2NhbDEgPSBBMDg2IChMb2NhbDApCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA+IEFQ
MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFQMDIgPSBMb2Nh
bDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAg
ICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEEwODcsIDAsIE5vdFNlcmlhbGl6
ZWQpCiAgICAgICAgewogICAgICAgICAgICBBUDAzID0gMHgwMAogICAgICAgICAgICBMb2Nh
bDAgPSAweDAwCiAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwIDwgMHgwQikpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSA9IEEwODggKExvY2FsMCkKICAgICAgICAg
ICAgICAgIElmICgoTG9jYWwxID4gQVAwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgQVAwMyA9IExvY2FsMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhv
ZCAoQTA3NSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIEEwODcg
KCkKICAgICAgICAgICAgQTA4NSAoKQogICAgICAgICAgICBJZiAoKEFQMDIgIT0gQVAwMSkp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEEwMTkgKEFQMDIsIEFQMDEpCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQVAwMiA+IEFQMDEpKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBBUDAxID0gQVAwMiAvKiBcX1NCXy5BUDAyICovCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgV2hpbGUgKChM
b2NhbDAgPCAweDBCKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxID0g
QTA4NiAoTG9jYWwwKQogICAgICAgICAgICAgICAgTG9jYWwyID0gQTA4OSAoTG9jYWwwKQog
ICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgIT0gTG9jYWwyKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBBMDkwIChMb2NhbDAsIExvY2FsMSkKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFQMTAgPT0gMHgwMSkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQTA5MCAoTG9jYWwwLCBMb2NhbDEp
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgSWYgKChBUDAyIDwgQVAwMSkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIEFQMDEgPSBBUDAyIC8qIFxfU0JfLkFQMDIgKi8KICAgICAgICAgICAg
fQogICAgICAgICAgICBFbHNlSWYgKChBUDEwID09IDB4MDEpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBBUDAxID0gQVAwMiAvKiBcX1NCXy5BUDAyICovCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIEFQMTAgPSAweDAwCiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg
KEEwOTAsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEFy
ZzAgPT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9T
Qi5BV1IwLkFCUjAuQTA5MSAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElm
ICgoQXJnMCA9PSAweDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJu
IChcX1NCLkFXUjAuQUJSMS5BMDkxIChBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgSWYgKChBcmcwID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZXR1cm4gKFxfU0IuQVdSMC5BQlIyLkEwOTEgKEFyZzEpKQogICAgICAgICAgICB9CgogICAg
ICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjMuQTA5MSAoQXJnMSkpCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA0KSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSNC5BMDkxIChBcmcxKSkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDUpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlI1LkEwOTEgKEFyZzEpKQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNikpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjYuQTA5MSAoQXJnMSkp
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA3KSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSNy5BMDkxIChB
cmcxKSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChBMDg5LCAx
LCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4
MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5B
QlIwLkEwOTIgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAw
eDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAu
QUJSMS5BMDkyICgpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0g
MHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1Iw
LkFCUjIuQTA5MiAoKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09
IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdS
MC5BQlIzLkEwOTIgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9
PSAweDA0KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFX
UjAuQUJSNC5BMDkyICgpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAg
PT0gMHgwNSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5B
V1IwLkFCUjUuQTA5MiAoKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcw
ID09IDB4MDYpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0Iu
QVdSMC5BQlI2LkEwOTIgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJn
MCA9PSAweDA3KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NC
LkFXUjAuQUJSNy5BMDkyICgpKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBN
ZXRob2QgKEEwODYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJ
ZiAoKEFyZzAgPT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVy
biAoXF9TQi5BV1IwLkFCUjAuQTA5MyAoKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
SWYgKChBcmcwID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1
cm4gKFxfU0IuQVdSMC5BQlIxLkEwOTMgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IElmICgoQXJnMCA9PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0
dXJuIChcX1NCLkFXUjAuQUJSMi5BMDkzICgpKQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBJZiAoKEFyZzAgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJl
dHVybiAoXF9TQi5BV1IwLkFCUjMuQTA5MyAoKSkKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgSWYgKChBcmcwID09IDB4MDQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZXR1cm4gKFxfU0IuQVdSMC5BQlI0LkEwOTMgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIElmICgoQXJnMCA9PSAweDA1KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
UmV0dXJuIChcX1NCLkFXUjAuQUJSNS5BMDkzICgpKQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBJZiAoKEFyZzAgPT0gMHgwNikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IFJldHVybiAoXF9TQi5BV1IwLkFCUjYuQTA5MyAoKSkKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgSWYgKChBcmcwID09IDB4MDcpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBSZXR1cm4gKFxfU0IuQVdSMC5BQlI3LkEwOTMgKCkpCiAgICAgICAgICAgIH0KICAgICAg
ICB9CgogICAgICAgIE1ldGhvZCAoQTA4OCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7
CiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSMC5BMDk0ICgpKQogICAgICAgICAgICB9
CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjEuQTA5NCAoKSkKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlIyLkEwOTQgKCkpCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSMy5BMDk0ICgpKQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNCkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjQuQTA5NCAoKSkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDUpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlI1LkEwOTQgKCkpCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA2KSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSNi5BMDk0ICgpKQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNykpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjcuQTA5NCAoKSkKICAgICAg
ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChBMDgzLCAxLCBOb3RTZXJpYWxp
emVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDApKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlIwLkEwOTUgKCkp
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAxKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSMS5BMDk1ICgp
KQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMikpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjIuQTA5NSAo
KSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDMpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlIzLkEwOTUg
KCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA0KSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSNC5BMDk1
ICgpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNSkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjUuQTA5
NSAoKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDYpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlI2LkEw
OTUgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA3KSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSNy5B
MDk1ICgpKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEEwODQs
IDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEFyZzAgPT0g
MHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1Iw
LkFCUjAuQTA5NiAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJn
MCA9PSAweDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NC
LkFXUjAuQUJSMS5BMDk2IChBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg
KChBcmcwID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4g
KFxfU0IuQVdSMC5BQlIyLkEwOTYgKEFyZzEpKQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBJZiAoKEFyZzAgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJl
dHVybiAoXF9TQi5BV1IwLkFCUjMuQTA5NiAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIElmICgoQXJnMCA9PSAweDA0KSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSNC5BMDk2IChBcmcxKSkKICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDUpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlI1LkEwOTYgKEFyZzEpKQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNikpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjYuQTA5NiAoQXJnMSkpCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA3KSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSNy5BMDk2IChBcmcxKSkK
ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChBMDgyLCAyLCBOb3RT
ZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDApKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlIwLkEw
OTcgKEFyZzEpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgw
MSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFC
UjEuQTA5NyAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9
PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFX
UjAuQUJSMi5BMDk3IChBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChB
cmcwID09IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxf
U0IuQVdSMC5BQlIzLkEwOTcgKEFyZzEpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoKEFyZzAgPT0gMHgwNCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVy
biAoXF9TQi5BV1IwLkFCUjQuQTA5NyAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIElmICgoQXJnMCA9PSAweDA1KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
UmV0dXJuIChcX1NCLkFXUjAuQUJSNS5BMDk3IChBcmcxKSkKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgSWYgKChBcmcwID09IDB4MDYpKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlI2LkEwOTcgKEFyZzEpKQogICAgICAgICAgICB9
CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNykpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjcuQTA5NyAoQXJnMSkpCiAgICAgICAg
ICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQTA4MCwgMSwgTm90U2VyaWFsaXpl
ZCkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSMC5BMDk4ICgpKQog
ICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMSkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjEuQTA5OCAoKSkK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDIpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlIyLkEwOTggKCkp
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSMy5BMDk4ICgp
KQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNCkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjQuQTA5OCAo
KSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDUpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlI1LkEwOTgg
KCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA2KSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSNi5BMDk4
ICgpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNykpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjcuQTA5
OCAoKSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgT3BlcmF0aW9uUmVnaW9u
IChBMTY4LCBTeXN0ZW1NZW1vcnksIEFHUkIsIDB4MTAwMCkKICAgICAgICBGaWVsZCAoQTE2
OCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zm
c2V0ICgweEEwKSwgCiAgICAgICAgICAgIEExNjksICAgMzIKICAgICAgICB9CgogICAgICAg
IEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgwM0IxMDUyOCwgRFdvcmRBY2MsIExvY2ssIFBy
ZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAg
ICAgIEExNTMsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2
OSwgMHgwM0IxMDU3OCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAg
ICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExNDYsICAgMzIKICAgICAg
ICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgwM0IxMDk5OCwgRFdvcmRB
Y2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0
KSwgCiAgICAgICAgICAgIEExNDcsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVs
ZCAoQTE2OCwgQTE2OSwgMHgwM0IxMDk5QywgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQog
ICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExNDgs
ICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgwM0Ix
MDlBMCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAg
T2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExNDksICAgMzIKICAgICAgICB9CgogICAg
ICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgwM0IxMDlBNCwgRFdvcmRBY2MsIExvY2ss
IFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAg
ICAgICAgIEExNTAsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwg
QTE2OSwgMHgwM0IxMDlBOCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsK
ICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExNTEsICAgMzIKICAg
ICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgwM0IxMDlBQywgRFdv
cmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgw
eEE0KSwgCiAgICAgICAgICAgIEExNTIsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtG
aWVsZCAoQTE2OCwgQTE2OSwgMHgxM0IwMDA4NCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZl
KQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEEx
MjgsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgx
MTE0MDI4MCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAg
ICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExMjksICAgMzIKICAgICAgICB9Cgog
ICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgxMTE0MTI4MCwgRFdvcmRBY2MsIExv
Y2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAg
ICAgICAgICAgIEExMzAsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2
OCwgQTE2OSwgMHgxMTE0MjI4MCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAg
IHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExMzEsICAgMzIK
ICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgxMTE0MzI4MCwg
RFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0
ICgweEE0KSwgCiAgICAgICAgICAgIEExMzIsICAgMzIKICAgICAgICB9CgogICAgICAgIEJh
bmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgxMTE0NDI4MCwgRFdvcmRBY2MsIExvY2ssIFByZXNl
cnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAg
IEExMzMsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwg
MHgxMTI0MDI4MCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAg
ICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExMzQsICAgMzIKICAgICAgICB9
CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgxMTI0MTI4MCwgRFdvcmRBY2Ms
IExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwg
CiAgICAgICAgICAgIEExMzUsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAo
QTE2OCwgQTE2OSwgMHgxMTI0MjI4MCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAg
ICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExMzYsICAg
MzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgxMTI0MzI4
MCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zm
c2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExMzcsICAgMzIKICAgICAgICB9CgogICAgICAg
IEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgxMTI0NDI4MCwgRFdvcmRBY2MsIExvY2ssIFBy
ZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAg
ICAgIEExMzgsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2
OSwgMHgxMTI0NTI4MCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAg
ICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExMzksICAgMzIKICAgICAg
ICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgxMTE0MDI5NCwgRFdvcmRB
Y2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0
KSwgCiAgICAgICAgICAgIEExNzUsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVs
ZCAoQTE2OCwgQTE2OSwgMHgxMTE0MTI5NCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQog
ICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExNzYs
ICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgxMTE0
MjI5NCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAg
T2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExNzcsICAgMzIKICAgICAgICB9CgogICAg
ICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgxMTE0MzI5NCwgRFdvcmRBY2MsIExvY2ss
IFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAg
ICAgICAgIEExNzgsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwg
QTE2OSwgMHgwQzkxMDlDOCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsK
ICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExNjAsICAgMzIKICAg
ICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgwQzkxMDlDQywgRFdv
cmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgw
eEE0KSwgCiAgICAgICAgICAgIEExNjEsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtG
aWVsZCAoQTE2OCwgQTE2OSwgMHgwQzkxMDlEMCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZl
KQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEEx
NjIsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgw
QzkxMDlENCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAg
ICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExNjMsICAgMzIKICAgICAgICB9Cgog
ICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgwQzkxMDlEOCwgRFdvcmRBY2MsIExv
Y2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAg
ICAgICAgICAgIEExNjQsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2
OCwgQTE2OSwgMHgwQzkxMDlEQywgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAg
IHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgIEExNjUsICAgMzIK
ICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgwQzkxMDlFMCwg
RFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0
ICgweEE0KSwgCiAgICAgICAgICAgIEExNjYsICAgMzIKICAgICAgICB9CgogICAgICAgIEJh
bmtGaWVsZCAoQTE2OCwgQTE2OSwgMHgwQzkxMDU1NCwgRFdvcmRBY2MsIExvY2ssIFByZXNl
cnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAg
IEExNjcsICAgMzIKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQTEyNiwgMiwgTm90U2Vy
aWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAwKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSMC5BMTA2
IChBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDEp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlIx
LkExMDYgKEFyZzEpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0g
MHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1Iw
LkFCUjIuQTEwNiAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJn
MCA9PSAweDAzKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NC
LkFXUjAuQUJSMy5BMTA2IChBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg
KChBcmcwID09IDB4MDQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4g
KFxfU0IuQVdSMC5BQlI0LkExMDYgKEFyZzEpKQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBJZiAoKEFyZzAgPT0gMHgwNSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJl
dHVybiAoXF9TQi5BV1IwLkFCUjUuQTEwNiAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIElmICgoQXJnMCA9PSAweDA2KSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSNi5BMTA2IChBcmcxKSkKICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDcpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlI3LkExMDYgKEFyZzEpKQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwOCkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjguQTEwNiAoQXJnMSkpCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA5KSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSOS5BMTA2IChBcmcxKSkK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MEEpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlJBLkExMDYgKEFy
ZzEpKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEExMjcsIDIs
IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBBY3F1aXJlIChcX1NCLkFN
MDAsIDB4RkZGRikKICAgICAgICAgICAgSWYgKChBcmcxID09IDB4MDEpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMDE5MDMwMAogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAxKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwMUEwMzAwCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDIpKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDAxQjAzMDAK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMykp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMDFD
MDMwMAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAw
eDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAw
eDAwMUQwMzAwCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcw
ID09IDB4MDUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDAxRTAzMDAKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo
KEFyZzAgPT0gMHgwNikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
TG9jYWwwID0gMHgwMDFGMDMwMAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IElmICgoQXJnMCA9PSAweDA3KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAweDAwMDkwMzAwCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgSWYgKChBcmcwID09IDB4MDgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIExvY2FsMCA9IDB4MDAwQTAzMDAKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwOSkpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMDBCMDMwMAogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDBBKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwMEMwMzAwCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgTG9jYWwxID0gQTEyOCAvKiBcX1NCXy5BMTI4ICovCiAg
ICAgICAgICAgICAgICBMb2NhbDEgJj0gMHhGRjAwRkNGRgogICAgICAgICAgICAgICAgQTEy
OCA9IChMb2NhbDAgfCBMb2NhbDEpCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBBMTI4IC8q
IFxfU0JfLkExMjggKi8KICAgICAgICAgICAgICAgIEExMjggPSAoMHhGRkZGRkRGRiAmIExv
Y2FsMSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDAp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQTEyOSAvKiBc
X1NCXy5BMTI5ICovCiAgICAgICAgICAgICAgICAgICAgQTEyOSA9ICgweDAwNDAwMDAwIHwg
TG9jYWwxKQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEExMjkgLyogXF9TQl8uQTEy
OSAqLwogICAgICAgICAgICAgICAgICAgIEExMjkgPSAoMHhGRkJGRkZGRiAmIExvY2FsMSkK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMSkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQTEzMCAv
KiBcX1NCXy5BMTMwICovCiAgICAgICAgICAgICAgICAgICAgQTEzMCA9ICgweDAwNDAwMDAw
IHwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEExMzAgLyogXF9TQl8u
QTEzMCAqLwogICAgICAgICAgICAgICAgICAgIEExMzAgPSAoMHhGRkJGRkZGRiAmIExvY2Fs
MSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgw
MikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQTEz
MSAvKiBcX1NCXy5BMTMxICovCiAgICAgICAgICAgICAgICAgICAgQTEzMSA9ICgweDAwNDAw
MDAwIHwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEExMzEgLyogXF9T
Ql8uQTEzMSAqLwogICAgICAgICAgICAgICAgICAgIEExMzEgPSAoMHhGRkJGRkZGRiAmIExv
Y2FsMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0g
MHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g
QTEzMiAvKiBcX1NCXy5BMTMyICovCiAgICAgICAgICAgICAgICAgICAgQTEzMiA9ICgweDAw
NDAwMDAwIHwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEExMzIgLyog
XF9TQl8uQTEzMiAqLwogICAgICAgICAgICAgICAgICAgIEExMzIgPSAoMHhGRkJGRkZGRiAm
IExvY2FsMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzAg
PT0gMHgwNCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwx
ID0gQTEzMyAvKiBcX1NCXy5BMTMzICovCiAgICAgICAgICAgICAgICAgICAgQTEzMyA9ICgw
eDAwNDAwMDAwIHwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEExMzMg
LyogXF9TQl8uQTEzMyAqLwogICAgICAgICAgICAgICAgICAgIEExMzMgPSAoMHhGRkJGRkZG
RiAmIExvY2FsMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFy
ZzAgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9j
YWwxID0gQTEzNCAvKiBcX1NCXy5BMTM0ICovCiAgICAgICAgICAgICAgICAgICAgQTEzNCA9
ICgweDAwNDAwMDAwIHwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEEx
MzQgLyogXF9TQl8uQTEzNCAqLwogICAgICAgICAgICAgICAgICAgIEExMzQgPSAoMHhGRkJG
RkZGRiAmIExvY2FsMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo
KEFyZzAgPT0gMHgwNikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
TG9jYWwxID0gQTEzNSAvKiBcX1NCXy5BMTM1ICovCiAgICAgICAgICAgICAgICAgICAgQTEz
NSA9ICgweDAwNDAwMDAwIHwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9
IEExMzUgLyogXF9TQl8uQTEzNSAqLwogICAgICAgICAgICAgICAgICAgIEExMzUgPSAoMHhG
RkJGRkZGRiAmIExvY2FsMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ
ZiAoKEFyZzAgPT0gMHgwNykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwxID0gQTEzNiAvKiBcX1NCXy5BMTM2ICovCiAgICAgICAgICAgICAgICAgICAg
QTEzNiA9ICgweDAwNDAwMDAwIHwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIExvY2Fs
MSA9IEExMzYgLyogXF9TQl8uQTEzNiAqLwogICAgICAgICAgICAgICAgICAgIEExMzYgPSAo
MHhGRkJGRkZGRiAmIExvY2FsMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBJZiAoKEFyZzAgPT0gMHgwOCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwxID0gQTEzNyAvKiBcX1NCXy5BMTM3ICovCiAgICAgICAgICAgICAgICAg
ICAgQTEzNyA9ICgweDAwNDAwMDAwIHwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIExv
Y2FsMSA9IEExMzcgLyogXF9TQl8uQTEzNyAqLwogICAgICAgICAgICAgICAgICAgIEExMzcg
PSAoMHhGRkJGRkZGRiAmIExvY2FsMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBJZiAoKEFyZzAgPT0gMHgwOSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwxID0gQTEzOCAvKiBcX1NCXy5BMTM4ICovCiAgICAgICAgICAgICAg
ICAgICAgQTEzOCA9ICgweDAwNDAwMDAwIHwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAg
IExvY2FsMSA9IEExMzggLyogXF9TQl8uQTEzOCAqLwogICAgICAgICAgICAgICAgICAgIEEx
MzggPSAoMHhGRkJGRkZGRiAmIExvY2FsMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBJZiAoKEFyZzAgPT0gMHgwQSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwxID0gQTEzOSAvKiBcX1NCXy5BMTM5ICovCiAgICAgICAgICAg
ICAgICAgICAgQTEzOSA9ICgweDAwNDAwMDAwIHwgTG9jYWwxKQogICAgICAgICAgICAgICAg
ICAgIExvY2FsMSA9IEExMzkgLyogXF9TQl8uQTEzOSAqLwogICAgICAgICAgICAgICAgICAg
IEExMzkgPSAoMHhGRkJGRkZGRiAmIExvY2FsMSkKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgUmVsZWFzZSAoXF9TQi5BTTAwKQogICAgICAgIH0KCiAg
ICAgICAgTWV0aG9kIChBMDEwLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAg
ICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IDB4MEIp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgPSBBMTI2IChMb2NhbDAs
IEFyZzEpCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAxKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBMTI3IChMb2NhbDAsIEFyZzEpCiAgICAg
ICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBMb2NhbDArKwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEEw
NDUsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAw
eEZGCiAgICAgICAgICAgIElmICgoMHhGRiA9PSBMb2NhbDApKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBMb2NhbDAgPSBcX1NCLkFXUjAuQUJSMC5BMTEwIChBcmcwKQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBJZiAoKDB4RkYgPT0gTG9jYWwwKSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gXF9TQi5BV1IwLkFCUjEuQTExMCAoQXJn
MCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgweEZGID09IExvY2FsMCkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IFxfU0IuQVdSMC5BQlIyLkEx
MTAgKEFyZzApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoMHhGRiA9PSBMb2Nh
bDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBcX1NCLkFXUjAu
QUJSMy5BMTEwIChBcmcwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKDB4RkYg
PT0gTG9jYWwwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gXF9T
Qi5BV1IwLkFCUjQuQTExMCAoQXJnMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg
KCgweEZGID09IExvY2FsMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2Fs
MCA9IFxfU0IuQVdSMC5BQlI1LkExMTAgKEFyZzApCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIElmICgoMHhGRiA9PSBMb2NhbDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBMb2NhbDAgPSBcX1NCLkFXUjAuQUJSNi5BMTEwIChBcmcwKQogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBJZiAoKDB4RkYgPT0gTG9jYWwwKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTG9jYWwwID0gXF9TQi5BV1IwLkFCUjcuQTExMCAoQXJnMCkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgSWYgKCgweEZGID09IExvY2FsMCkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIExvY2FsMCA9IFxfU0IuQVdSMC5BQlI4LkExMTAgKEFyZzApCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoMHhGRiA9PSBMb2NhbDApKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBcX1NCLkFXUjAuQUJSOS5BMTEwIChB
cmcwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKDB4RkYgPT0gTG9jYWwwKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gXF9TQi5BV1IwLkFCUkEu
QTExMCAoQXJnMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDAp
CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEEwMTgsIDIsIFNlcmlhbGl6ZWQpCiAgICAg
ICAgewogICAgICAgICAgICBBY3F1aXJlIChcX1NCLkFNMDAsIDB4RkZGRikKICAgICAgICAg
ICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMSwgMHgwMCwgQTE0MCkKICAgICAgICAgICAgQ3Jl
YXRlRFdvcmRGaWVsZCAoQXJnMSwgMHgwNCwgQTE0MSkKICAgICAgICAgICAgQ3JlYXRlRFdv
cmRGaWVsZCAoQXJnMSwgMHgwOCwgQTE0MikKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs
ZCAoQXJnMSwgMHgwQywgQTE0MykKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJn
MSwgMHgxMCwgQTE0NCkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMSwgMHgx
NCwgQTE0NSkKICAgICAgICAgICAgV2hpbGUgKChBMTQ2ID09IDB4MDApKSB7fQogICAgICAg
ICAgICBBMTQ2ID0gMHgwMAogICAgICAgICAgICBXaGlsZSAoKEExNDYgIT0gMHgwMCkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEExNDYgPSAweDAwCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIEExNDcgPSBBMTQwIC8qIFxfU0JfLkEwMTguQTE0MCAqLwogICAgICAg
ICAgICBBMTQ4ID0gQTE0MSAvKiBcX1NCXy5BMDE4LkExNDEgKi8KICAgICAgICAgICAgQTE0
OSA9IEExNDIgLyogXF9TQl8uQTAxOC5BMTQyICovCiAgICAgICAgICAgIEExNTAgPSBBMTQz
IC8qIFxfU0JfLkEwMTguQTE0MyAqLwogICAgICAgICAgICBBMTUxID0gQTE0NCAvKiBcX1NC
Xy5BMDE4LkExNDQgKi8KICAgICAgICAgICAgQTE1MiA9IEExNDUgLyogXF9TQl8uQTAxOC5B
MTQ1ICovCiAgICAgICAgICAgIEExNTMgPSBBcmcwCiAgICAgICAgICAgIFdoaWxlICgoQTE0
NiA9PSAweDAwKSkge30KICAgICAgICAgICAgUmVsZWFzZSAoXF9TQi5BTTAwKQogICAgICAg
IH0KCiAgICAgICAgTWV0aG9kIChBMTIxLCA1LCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsK
ICAgICAgICAgICAgTG9jYWw3ID0gQnVmZmVyICgweDE4KSB7fQogICAgICAgICAgICBDcmVh
dGVEV29yZEZpZWxkIChMb2NhbDcsIDB4MDAsIEEwMTIpCiAgICAgICAgICAgIENyZWF0ZURX
b3JkRmllbGQgKExvY2FsNywgMHgwNCwgQTAxMykKICAgICAgICAgICAgQ3JlYXRlRFdvcmRG
aWVsZCAoTG9jYWw3LCAweDA4LCBBMDE0KQogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk
IChMb2NhbDcsIDB4MEMsIEEwMTUpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExv
Y2FsNywgMHgxMCwgQTAxNikKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw3
LCAweDE0LCBBMDE3KQogICAgICAgICAgICBBMDEyID0gQXJnMAogICAgICAgICAgICBBMDEz
ID0gQXJnMQogICAgICAgICAgICBBMDE0ID0gQXJnMgogICAgICAgICAgICBBMDE1ID0gQXJn
MwogICAgICAgICAgICBBMDE4ICgweDA5LCBMb2NhbDcpCiAgICAgICAgfQoKICAgICAgICBN
ZXRob2QgKEEwNDYsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBBY3F1
aXJlIChcX1NCLkFNMDAsIDB4RkZGRikKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo
QXJnMSwgMHgwMCwgQTE1NCkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMSwg
MHgwNCwgQTE1NSkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMSwgMHgwOCwg
QTE1NikKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMSwgMHgwQywgQTE1NykK
ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMSwgMHgxMCwgQTE1OCkKICAgICAg
ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMSwgMHgxNCwgQTE1OSkKICAgICAgICAgICAg
TG9jYWwwID0gKDB4ODAwMDAwMDAgJiBBMTYwKSAvKiBcX1NCXy5BMTYwICovCiAgICAgICAg
ICAgIFdoaWxlICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAoMHg4MDAwMDAwMCAmIEExNjApIC8qIFxfU0JfLkExNjAgKi8KICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgQTE2MSA9IEExNTQgLyogXF9TQl8uQTA0Ni5BMTU0
ICovCiAgICAgICAgICAgIEExNjIgPSBBMTU1IC8qIFxfU0JfLkEwNDYuQTE1NSAqLwogICAg
ICAgICAgICBBMTYzID0gQTE1NiAvKiBcX1NCXy5BMDQ2LkExNTYgKi8KICAgICAgICAgICAg
QTE2NCA9IEExNTcgLyogXF9TQl8uQTA0Ni5BMTU3ICovCiAgICAgICAgICAgIEExNjUgPSBB
MTU4IC8qIFxfU0JfLkEwNDYuQTE1OCAqLwogICAgICAgICAgICBBMTY2ID0gQTE1OSAvKiBc
X1NCXy5BMDQ2LkExNTkgKi8KICAgICAgICAgICAgTG9jYWwxID0gKEFyZzAgJiAweEZGKQog
ICAgICAgICAgICBMb2NhbDEgPDw9IDB4MDgKICAgICAgICAgICAgQTE2MCA9IExvY2FsMQog
ICAgICAgICAgICBBMTY3ID0gMHhGRkZGRkZGRgogICAgICAgICAgICBMb2NhbDAgPSAoMHg4
MDAwMDAwMCAmIEExNjApIC8qIFxfU0JfLkExNjAgKi8KICAgICAgICAgICAgV2hpbGUgKChM
b2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9
ICgweDgwMDAwMDAwICYgQTE2MCkgLyogXF9TQl8uQTE2MCAqLwogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBSZWxlYXNlIChcX1NCLkFNMDApCiAgICAgICAgfQoKICAgICAgICBNZXRo
b2QgKEFNTlIsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBBY3F1
aXJlIChcX1NCLkFNMDAsIDB4RkZGRikKICAgICAgICAgICAgQmFua0ZpZWxkIChBMTY4LCBB
MTY5LCBBcmcwLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgT2Zmc2V0ICgweEJDKSwgCiAgICAgICAgICAgICAgICBBMTcwLCAg
IDMyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJlbGVhc2UgKFxfU0IuQU0wMCkKICAg
ICAgICAgICAgUmV0dXJuIChBMTcwKSAvKiBcX1NCXy5BTU5SLkExNzAgKi8KICAgICAgICB9
CgogICAgICAgIE1ldGhvZCAoQU1OVywgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAg
ICAgICAgICAgIEFjcXVpcmUgKFxfU0IuQU0wMCwgMHhGRkZGKQogICAgICAgICAgICBCYW5r
RmllbGQgKEExNjgsIEExNjksIEFyZzAsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QkMpLCAKICAgICAgICAg
ICAgICAgIEExNzEsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgQTE3MSA9IEFy
ZzEKICAgICAgICAgICAgUmVsZWFzZSAoXF9TQi5BTTAwKQogICAgICAgIH0KCiAgICAgICAg
TWV0aG9kIChBMDMyLCAxLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQ3Jl
YXRlV29yZEZpZWxkIChBcmcwLCAweDAwLCBBMTcyKQogICAgICAgICAgICBMb2NhbDcgPSBC
dWZmZXIgKDB4MTgpIHt9CiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNywg
MHgwMCwgQTAxMikKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw3LCAweDA0
LCBBMDEzKQogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDcsIDB4MDgsIEEw
MTQpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNywgMHgwQywgQTAxNSkK
ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw3LCAweDEwLCBBMDE2KQogICAg
ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDcsIDB4MTQsIEEwMTcpCiAgICAgICAg
ICAgIExvY2FsMCA9IDB4MDIKICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPCBBMTcyKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxID0gRGVyZWZPZiAoQXJnMCBb
TG9jYWwwXSkKICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICBMb2Nh
bDIgPSBEZXJlZk9mIChBcmcwIFtMb2NhbDBdKQogICAgICAgICAgICAgICAgTG9jYWwwKysK
ICAgICAgICAgICAgICAgIExvY2FsMiB8PSAoRGVyZWZPZiAoQXJnMCBbTG9jYWwwXSkgPDwg
MHgwOCkKICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICBMb2NhbDIg
fD0gKERlcmVmT2YgKEFyZzAgW0xvY2FsMF0pIDw8IDB4MTApCiAgICAgICAgICAgICAgICBM
b2NhbDArKwogICAgICAgICAgICAgICAgTG9jYWwyIHw9IChEZXJlZk9mIChBcmcwIFtMb2Nh
bDBdKSA8PCAweDE4KQogICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAg
IEEwMTIgPSAweDAwCiAgICAgICAgICAgICAgICBBMDEzID0gMHgwMAogICAgICAgICAgICAg
ICAgQTAxNCA9IDB4MDAKICAgICAgICAgICAgICAgIEEwMTUgPSAweDAwCiAgICAgICAgICAg
ICAgICBBMDE2ID0gMHgwMAogICAgICAgICAgICAgICAgQTAxNyA9IDB4MDAKICAgICAgICAg
ICAgICAgIElmICgoTG9jYWwxID09IDB4MDEpKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIEEwMTIgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICBBMDE4ICgw
eDE4LCBMb2NhbDcpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChM
b2NhbDEgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
QTAxMiA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgIEEwMTggKDB4MTksIExvY2FsNykK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDA1
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBMDEyID0gTG9jYWwy
CiAgICAgICAgICAgICAgICAgICAgQTAxOCAoMHgxNCwgTG9jYWw3KQogICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MDYpKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIEEwMTIgPSBMb2NhbDIKICAgICAgICAgICAg
ICAgICAgICBBMDE4ICgweDE1LCBMb2NhbDcpCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgwNykpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgQTAxMiA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgIEEwMTgg
KDB4MTYsIExvY2FsNykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo
KExvY2FsMSA9PSAweDA4KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBBMDEyID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgQTAxOCAoMHgxNywgTG9jYWw3
KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4
MDkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEEwMTIgPSBMb2Nh
bDIKICAgICAgICAgICAgICAgICAgICBBMDE4ICgweDFGLCBMb2NhbDcpCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgwQikpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQTAxMiA9IExvY2FsMgogICAgICAgICAg
ICAgICAgICAgIEEwMTggKDB4MUEsIExvY2FsNykKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDBDKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBBMDEyID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgQTAx
OCAoMHgxQywgTG9jYWw3KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm
ICgoTG9jYWwxID09IDB4MEQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIEEwMTIgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICBBMDE4ICgweDFFLCBMb2Nh
bDcpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0g
MHgwRSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQTAxMiA9IExv
Y2FsMgogICAgICAgICAgICAgICAgICAgIEEwMTggKDB4MUIsIExvY2FsNykKICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKERlcmVmT2YgKFxfU0IuQURBVCBbMHgw
OF0pID09IDB4MDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm
ICgoTG9jYWwxID09IDB4MTApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEwMTggKDB4MjgsIExvY2FsNykK
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNl
CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEEwMTggKDB4MjcsIExvY2FsNykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo
KExvY2FsMSA9PSAweDExKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBBMDEyID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgQTAxOCAoMHgxRCwgTG9jYWw3
KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4
MTIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEEwMTIgPSBMb2Nh
bDIKICAgICAgICAgICAgICAgICAgICBBMDE4ICgweDU0LCBMb2NhbDcpCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgxMykpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQTAxMiA9IExvY2FsMgogICAgICAgICAg
ICAgICAgICAgIEEwMTggKDB4MjMsIExvY2FsNykKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDIwKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBBMDEyID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgQTAx
OCAoMHgzMSwgTG9jYWw3KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm
ICgoTG9jYWwxID09IDB4MjEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIEEwMTIgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICBBMDE4ICgweDMyLCBMb2Nh
bDcpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0g
MHgyMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQTAxMiA9IExv
Y2FsMgogICAgICAgICAgICAgICAgICAgIEEwMTggKDB4MzMsIExvY2FsNykKICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDIzKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBMDEyID0gTG9jYWwyCiAgICAgICAg
ICAgICAgICAgICAgQTAxOCAoMHgzNCwgTG9jYWw3KQogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MjQpKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIEEwMTIgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICBB
MDE4ICgweDM1LCBMb2NhbDcpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
SWYgKChMb2NhbDEgPT0gMHgyNSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgQTAxMiA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgIEEwMTggKDB4MzYsIExv
Y2FsNykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9
PSAweDI2KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBMDEyID0g
TG9jYWwyCiAgICAgICAgICAgICAgICAgICAgQTAxOCAoMHgzNywgTG9jYWw3KQogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MjcpKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEEwMTIgPSBMb2NhbDIKICAgICAg
ICAgICAgICAgICAgICBBMDE4ICgweDM4LCBMb2NhbDcpCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgyOCkpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgQTAxMiA9IExvY2FsMgogICAgICAgICAgICAgICAgICAg
IEEwMTggKDB4MzksIExvY2FsNykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBJZiAoKExvY2FsMSA9PSAweDI5KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBBMDEyID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgQTAxOCAoMHgzQSwg
TG9jYWw3KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoTG9jYWwx
ID09IDB4MkEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEEwMTIg
PSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICBBMDE4ICgweDNCLCBMb2NhbDcpCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgyQikpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQTAxMiA9IExvY2FsMgogICAg
ICAgICAgICAgICAgICAgIEEwMTggKDB4M0MsIExvY2FsNykKICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDJDKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBBMDEyID0gTG9jYWwyCiAgICAgICAgICAgICAgICAg
ICAgQTAxOCAoMHgzRCwgTG9jYWw3KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIElmICgoTG9jYWwxID09IDB4MkQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIEEwMTIgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICBBMDE4ICgweDNF
LCBMb2NhbDcpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2Nh
bDEgPT0gMHgyRSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQTAx
MiA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgIEEwMTggKDB4NEEsIExvY2FsNykKICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDMwKSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBMDEyID0gTG9jYWwyCiAg
ICAgICAgICAgICAgICAgICAgQTAxOCAoMHg1NSwgTG9jYWw3KQogICAgICAgICAgICAgICAg
ICAgIEFjcXVpcmUgKFxfU0IuQU0wMCwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgIExv
Y2FsMyA9IEJ1ZmZlciAoMHgwOCkge30KICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29y
ZEZpZWxkIChMb2NhbDMsIDB4MDAsIEExNzMpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl
RFdvcmRGaWVsZCAoTG9jYWwzLCAweDA0LCBBMTc0KQogICAgICAgICAgICAgICAgICAgIEEx
NzMgPSBBMTQ3IC8qIFxfU0JfLkExNDcgKi8KICAgICAgICAgICAgICAgICAgICBBMTc0ID0g
QTE0OCAvKiBcX1NCXy5BMTQ4ICovCiAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoXF9T
Qi5BTTAwKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwzKQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MzEpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEEwMTIgPSBMb2NhbDIKICAgICAgICAg
ICAgICAgICAgICBBMDE4ICgweDU2LCBMb2NhbDcpCiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgzMikpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgQTAxMiA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgIEEw
MTggKDB4MjAsIExvY2FsNykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg
ICAgIH0KCiAgICAgICAgRGV2aWNlIChBV1IwKQogICAgICAgIHsKICAgICAgICAgICAgTmFt
ZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpIC8qIFBOUCBNb3RoZXJib2FyZCBSZXNvdXJj
ZXMgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCAw
eDkwKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIERldmljZSAoQUJSMCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMw
MiIpIC8qIFBOUCBNb3RoZXJib2FyZCBSZXNvdXJjZXMgKi8pICAvLyBfSElEOiBIYXJkd2Fy
ZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHg4MCkgIC8vIF9VSUQ6IFVuaXF1
ZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoQUIxMiwgMHgyMCkKICAgICAgICAgICAgICAg
IE5hbWUgKEFCMDAsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjAxLCAweDAwKQog
ICAgICAgICAgICAgICAgTmFtZSAoQUIwRSwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUg
KEFCMDIsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjAzLCAweDAwKQogICAgICAg
ICAgICAgICAgTmFtZSAoQUIwNCwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDUs
IDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjA2LCAweDAwKQogICAgICAgICAgICAg
ICAgTmFtZSAoQUIwNywgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDgsIDB4MDAp
CiAgICAgICAgICAgICAgICBOYW1lIChBQjA5LCAweDAwKQogICAgICAgICAgICAgICAgTmFt
ZSAoQUIwQSwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMEIsIDB4MDApCiAgICAg
ICAgICAgICAgICBOYW1lIChBQjBDLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIw
RCwgMHgwMCkKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQTExMSwgU3lzdGVt
TWVtb3J5LCAoQUdSQiArICgoRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEQpXQog
ICAgICAgICAgICAgICAgICAgICkgPDwgMHgwRikgfCAoRGVyZWZPZiAoXF9TQi5BREFUIFso
QUIxMiArIDB4MEUpXSkgPDwgMHgwQwogICAgICAgICAgICAgICAgICAgICkpKSwgMHgxMDAw
KQogICAgICAgICAgICAgICAgRmllbGQgKEExMTEsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2Vy
dmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDE4
KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDE5KSwgCiAgICAgICAgICAgICAg
ICAgICAgQTEwNCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBBMTA1LCAgIDgsIAogICAg
ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2OCksIAogICAgICAgICAgICAgICAgICAgIEEx
MTIsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAg
ICAgICAgICBBMTEzLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEExMTQsICAgMSwgCiAg
ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDZBKSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICwgICAxMSwgCiAgICAgICAgICAgICAgICAgICAgQTExNSwgICAxLCAKICAgICAgICAg
ICAgICAgICAgICBPZmZzZXQgKDB4ODgpLCAKICAgICAgICAgICAgICAgICAgICBBMTE2LCAg
IDQsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAg
ICAgQTExNywgICAxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAo
QUIxMCwgMHgwMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFs
aXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBBQjAwID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDApXSkK
ICAgICAgICAgICAgICAgICAgICBBQjBFID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiAr
IDB4MDEpXSkKICAgICAgICAgICAgICAgICAgICBBQjAxID0gRGVyZWZPZiAoXF9TQi5BREFU
IFsoQUIxMiArIDB4MDIpXSkKICAgICAgICAgICAgICAgICAgICBBQjAyID0gRGVyZWZPZiAo
XF9TQi5BREFUIFsoQUIxMiArIDB4MDMpXSkKICAgICAgICAgICAgICAgICAgICBBQjAzID0g
RGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDQpXSkKICAgICAgICAgICAgICAgICAg
ICBBQjA0ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDUpXSkKICAgICAgICAg
ICAgICAgICAgICBBQjA1ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDYpXSkK
ICAgICAgICAgICAgICAgICAgICBBQjA2ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiAr
IDB4MDcpXSkKICAgICAgICAgICAgICAgICAgICBBQjA3ID0gRGVyZWZPZiAoXF9TQi5BREFU
IFsoQUIxMiArIDB4MDgpXSkKICAgICAgICAgICAgICAgICAgICBBQjA4ID0gRGVyZWZPZiAo
XF9TQi5BREFUIFsoQUIxMiArIDB4MDkpXSkKICAgICAgICAgICAgICAgICAgICBBQjA5ID0g
RGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEEpXSkKICAgICAgICAgICAgICAgICAg
ICBBQjBBID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEIpXSkKICAgICAgICAg
ICAgICAgICAgICBBQjBCID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEMpXSkK
ICAgICAgICAgICAgICAgICAgICBBQjBDID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiAr
IDB4MEQpXSkKICAgICAgICAgICAgICAgICAgICBBQjBEID0gRGVyZWZPZiAoXF9TQi5BREFU
IFsoQUIxMiArIDB4MEUpXSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN
ZXRob2QgKEEwOTksIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gQTA4MSAoKQogICAgICAgICAgICAgICAgICAgIElm
ICgoTG9jYWwwID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgUmV0dXJuIChBQjAxKSAvKiBcX1NCXy5BV1IwLkFCUjAuQUIwMSAqLwog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAg
PT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKEFCMEUpIC8qIFxfU0JfLkFXUjAuQUJSMC5BQjBFICovCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo
QTA5NCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBJZiAoKEFCMTAgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMTAgPT0gMHgwMSkpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkK
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIE1ldGhvZCAoQTEwMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMDUgIT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDUpIC8q
IFxfU0JfLkFXUjAuQUJSMC5BQjA1ICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICBJZiAoKEFCMTAgPiAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoKEFCMTAgLSAweDAxKSkKICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTMsIDAsIE5vdFNl
cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChc
X1NCLkFQMDUgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBJZiAoKEFCMDUgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwNSkgLyogXF9TQl8u
QVdSMC5BQlIwLkFCMDUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuIChBQjBFKSAvKiBcX1NCXy5BV1IwLkFCUjAuQUIwRSAq
LwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
QTEwMCAoKQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwICE9IDB4MDApKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAg
PiBBQjAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuIChBQjAwKSAvKiBcX1NCXy5BV1IwLkFCUjAuQUIwMCAqLwogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0
dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEEwOTkgKCkKICAgICAgICAg
ICAgICAgICAgICBJZiAoKFxfU0IuQVAwMyAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXF9TQi5BUDAzIDwgTG9jYWwwKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
UmV0dXJuIChcX1NCLkFQMDMpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5MiwgMCwgTm90U2Vy
aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KEFCMDIpIC8qIFxfU0JfLkFXUjAuQUJSMC5BQjAyICovCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgTWV0aG9kIChBMDk1LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwMCkgLyogXF9TQl8u
QVdSMC5BQlIwLkFCMDAgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN
ZXRob2QgKEEwOTEsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgQUIwMiA9IEFyZzAKICAgICAgICAgICAgICAgICAgICBBMTAxIChB
cmcwKQogICAgICAgICAgICAgICAgICAgIElmICgoQUIxMCAhPSAweDAwKSkge30KICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQTEwMiAoMHgwMCkKICAgICAgICAgICAg
ICAgICAgICBOYW1lIChBMTAzLCAweDAwKQogICAgICAgICAgICAgICAgICAgIEExMDIgKDB4
MDEpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDk2LCAx
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IEFCMTAgPSBBcmcwCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k
IChBMDk3LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIExvY2FsMCA9IChBcmcwID4+IDB4MDgpCiAgICAgICAgICAgICAgICAgICAg
SWYgKCgoTG9jYWwwID49IEExMDQpICYmIChMb2NhbDAgPD0gQTEwNSkpKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEwNiwgMSwgTm90
U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDAgPSAoQUIwRCB8IChBQjBDIDw8IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIElmICgo
QXJnMCA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIE1ldGhvZCAoQTA5OCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBBQjEwID0gMHgwMAogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEwMSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPj0gMHgwMikpIHt9
CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID49IDB4MDMpKSB7fQogICAgICAgICAg
ICAgICAgICAgIElmICgoQXJnMCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoQUIwNCA9PSAweDAxKSkge30KICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgTWV0aG9kIChBMTA3LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDEgPSBBMTA4IChMb2NhbDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
TG9jYWwyID0gQTEwOCAoTG9jYWwwLCAweDA4KQogICAgICAgICAgICAgICAgICAgIElmICgo
TG9jYWwxICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwzID0gKChMb2NhbDEgPj4gMHgxMCkgJiAweEZGRkYpCiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweEZGRkYKICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwyID0gKChMb2NhbDIgPj4gMHgxOCkgJiAweEZGKQogICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwxID09IDB4
MTAwMikgfHwgKExvY2FsMSA9PSAweDEwMjIpKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDEwCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPCAweDMwKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsNCA9IEExMDggKDB4MDAsIExvY2FsMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKCgoTG9jYWw0ICYgMHgwOSkgPT0gMHgwMCkg
JiYgKExvY2FsNCAhPSAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExv
Y2FsNCAmIDB4MDYpID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExvY2FsMCArPSAweDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYWw1ID0gQTEwOCAoMHgwMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoQXJnMCAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBMTA5ICgweDI1LCAoTG9jYWw0ICYgMHhGRkZGRkZGMCksIDB4MDApCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwOSAoMHgyNiwgTG9j
YWw1LCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEExMDkgKDB4MjgsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQTEwOSAoMHgyNywgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMDkgKDB4
MjgsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQTEwOSAoMHgwNywgMHgwMCwgKDB4MDEgPDwgMHgwQSkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgo
TG9jYWw0ICYgMHgwNikgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCArPSAweDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSAweDA0CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTExMCwgMSwgTm90U2Vy
aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
PSAoQUIwRCB8IChBQjBDIDw8IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIElmICgoQXJn
MCA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChBQjA2ID4gQUIwNykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwNykgLyogXF9TQl8uQVdSMC5B
QlIwLkFCMDcgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoQUIwNikgLyogXF9TQl8uQVdSMC5BQlIwLkFCMDYgKi8K
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweEZGKQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIE1ldGhvZCAoQTEyMiwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEExMDggKEFyZzAsIDB4MDApID09IDB4
RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwID0gQTEwOCAoQXJnMCwgMHgzNCkKICAgICAgICAgICAgICAgICAgICBX
aGlsZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2FsMSA9IEExMDggKEFyZzAsIChMb2NhbDAgJiAweEZGKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKCgoTG9jYWwxICYgMHhGRikgPT0gQXJnMSkpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoKExv
Y2FsMCAmIDB4RkYpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgPSAoKExvY2FsMSA+PiAweDA4KSAmIDB4RkYpCiAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChBRVNQLCBQYWNrYWdlICgweDA4
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBN
ZXRob2QgKEExMDIsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgICAgIElmICgo
QTEwOCAoTG9jYWwwLCAweDAwKSAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IChBMTA4IChMb2NhbDAsIDB4
MDgpICYgMHg4MCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHg4
MCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2FsNyA9IDB4MDcKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsNyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPD0gTG9jYWw3
KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwxID0gQTEyMiAoTG9jYWwwLCAweDEwKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDb250aW51ZQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAw
KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDIgPSBBMTA4IChMb2NhbDAsIChMb2NhbDEgKyAweDEwKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIwIChMb2NhbDAsIChMb2NhbDEgKyAw
eDEwKSwgKExvY2FsMiAmIH4weDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBRVNQIFtMb2NhbDBdID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gRGVy
ZWZPZiAoQUVTUCBbTG9jYWwwXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
MTIwIChMb2NhbDAsIChMb2NhbDEgKyAweDEwKSwgTG9jYWwyKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTIw
LCAzLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IExvY2FsMCA9IChBR1JCICsgKEExMDUgPDwgMHgxNCkpCiAgICAgICAgICAgICAgICAgICAg
TG9jYWwwICs9IChBcmcwIDw8IDB4MEMpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9
IEFyZzEKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEFEUkIsIFN5c3Rl
bU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChBRFJC
LCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIEFEUlIsICAgMzIKICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgIEFEUlIgPSBBcmcyCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgTWV0aG9kIChBMTA4LCAyLCBTZXJpYWxpemVkKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChBR1JCICsgKEExMDUgPDwg
MHgxNCkpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IChBcmcwIDw8IDB4MEMpCiAg
ICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IEFyZzEKICAgICAgICAgICAgICAgICAgICBP
cGVyYXRpb25SZWdpb24gKEFEUkIsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAg
ICAgICAgICAgICAgICAgIEZpZWxkIChBRFJCLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2
ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEUlIs
ICAgMzIKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVy
biAoQURSUikgLyogXF9TQl8uQVdSMC5BQlIwLkExMDguQURSUiAqLwogICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTExOCwgMSwgTm90U2VyaWFsaXplZCkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMEIgIT0gMHgw
MSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1
cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKEExMDYgKEFyZzApKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IE1ldGhvZCAoQTExOSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBOYW1lIChBMTAzLCAweDAwKQogICAgICAgICAgICAgICAgICAg
IExvY2FsMiA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBBMTAzID0gQTExMiAvKiBcX1NC
Xy5BV1IwLkFCUjAuQTExMiAqLwogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IChBQjBE
IHwgKEFCMEMgPDwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4
MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQTEx
MyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBMTAyICgweDAwKQogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSBBMTA4ICgweDAwLCAweDA0KQogICAgICAgICAgICAg
ICAgICAgICAgICBJZiAoKExvY2FsMCAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEyMCAoMHgwMCwgMHgw
NCwgKExvY2FsMCAmIH4weDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCA9IEExMDggKDB4MDEsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo
KExvY2FsMCAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIwICgweDAxLCAweDA0LCAoTG9j
YWwwICYgfjB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAw
CiAgICAgICAgICAgICAgICAgICAgICAgIEExMTMgPSAweDAxCiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMCA9IDB4MDUKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgIEExMTIgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChMb2Nh
bDAgIT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICBJZiAoKExvY2FsMCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEyMSAoMHgyOSwgTG9jYWwxLCAweDAwLCAw
eDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwOAogICAgICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAw
eDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQTEwOCAoMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEx
MjEgKDB4MkEsIExvY2FsMSwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFCMDUgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQjA0
ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQUIxMCA9IDB4MDAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMCA9IDB4MDgKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQTExMiA9IEExMDMgLyog
XF9TQl8uQVdSMC5BQlIwLkExMTkuQTEwMyAqLwogICAgICAgICAgICAgICAgICAgIElmICgo
QTEwMyAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIEExMDIgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKExvY2FsMikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
fQoKICAgICAgICAgICAgRGV2aWNlIChBQlIxKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJvYXJk
IFJlc291cmNlcyAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBO
YW1lIChfVUlELCAweDgxKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBO
YW1lIChBQjEyLCAweDM0KQogICAgICAgICAgICAgICAgTmFtZSAoQUIwMCwgMHgwMCkKICAg
ICAgICAgICAgICAgIE5hbWUgKEFCMDEsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChB
QjBFLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwMiwgMHgwMCkKICAgICAgICAg
ICAgICAgIE5hbWUgKEFCMDMsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjA0LCAw
eDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwNSwgMHgwMCkKICAgICAgICAgICAgICAg
IE5hbWUgKEFCMDYsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjA3LCAweDAwKQog
ICAgICAgICAgICAgICAgTmFtZSAoQUIwOCwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUg
KEFCMDksIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjBBLCAweDAwKQogICAgICAg
ICAgICAgICAgTmFtZSAoQUIwQiwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMEMs
IDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjBELCAweDAwKQogICAgICAgICAgICAg
ICAgT3BlcmF0aW9uUmVnaW9uIChBMTExLCBTeXN0ZW1NZW1vcnksIChBR1JCICsgKChEZXJl
Zk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwRCldCiAgICAgICAgICAgICAgICAgICAgKSA8
PCAweDBGKSB8IChEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwRSldKSA8PCAweDBD
CiAgICAgICAgICAgICAgICAgICAgKSkpLCAweDEwMDApCiAgICAgICAgICAgICAgICBGaWVs
ZCAoQTExMSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTgpLCAKICAgICAgICAgICAgICAgICAg
ICBPZmZzZXQgKDB4MTkpLCAKICAgICAgICAgICAgICAgICAgICBBMTA0LCAgIDgsIAogICAg
ICAgICAgICAgICAgICAgIEExMDUsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0
ICgweDY4KSwgCiAgICAgICAgICAgICAgICAgICAgQTExMiwgICAyLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIEExMTMsICAgMSwgCiAg
ICAgICAgICAgICAgICAgICAgQTExNCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZz
ZXQgKDB4NkEpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDExLCAKICAgICAgICAg
ICAgICAgICAgICBBMTE1LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4
OCksIAogICAgICAgICAgICAgICAgICAgIEExMTYsICAgNCwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICAgICBBMTE3LCAgIDEKICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChBQjEwLCAweDAwKQogICAgICAgICAg
ICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlh
bGl6ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFCMDAgPSBEZXJl
Zk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwMCldKQogICAgICAgICAgICAgICAgICAgIEFC
MEUgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwMSldKQogICAgICAgICAgICAg
ICAgICAgIEFCMDEgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwMildKQogICAg
ICAgICAgICAgICAgICAgIEFCMDIgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgw
MyldKQogICAgICAgICAgICAgICAgICAgIEFCMDMgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhB
QjEyICsgMHgwNCldKQogICAgICAgICAgICAgICAgICAgIEFCMDQgPSBEZXJlZk9mIChcX1NC
LkFEQVQgWyhBQjEyICsgMHgwNSldKQogICAgICAgICAgICAgICAgICAgIEFCMDUgPSBEZXJl
Zk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwNildKQogICAgICAgICAgICAgICAgICAgIEFC
MDYgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwNyldKQogICAgICAgICAgICAg
ICAgICAgIEFCMDcgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwOCldKQogICAg
ICAgICAgICAgICAgICAgIEFCMDggPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgw
OSldKQogICAgICAgICAgICAgICAgICAgIEFCMDkgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhB
QjEyICsgMHgwQSldKQogICAgICAgICAgICAgICAgICAgIEFCMEEgPSBEZXJlZk9mIChcX1NC
LkFEQVQgWyhBQjEyICsgMHgwQildKQogICAgICAgICAgICAgICAgICAgIEFCMEIgPSBEZXJl
Zk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwQyldKQogICAgICAgICAgICAgICAgICAgIEFC
MEMgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwRCldKQogICAgICAgICAgICAg
ICAgICAgIEFCMEQgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwRSldKQogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5OSwgMCwgTm90U2Vy
aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
PSBBMDgxICgpCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMSkpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFC
MDEpIC8qIFxfU0JfLkFXUjAuQUJSMS5BQjAxICovCiAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwRSkgLyogXF9T
Ql8uQVdSMC5BQlIxLkFCMEUgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDk0LCAwLCBOb3RTZXJpYWxpemVk
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQUIxMCAhPSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm
ICgoQUIxMCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KDB4MDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTAw
LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElmICgoQUIwNSAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoQUIwNSkgLyogXF9TQl8uQVdSMC5BQlIxLkFCMDUg
Ki8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQUIx
MCA+IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuICgoQUIxMCAtIDB4MDEpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIE1ldGhvZCAoQTA5MywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFxfU0IuQVAwNSA9PSAweDAwKSkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQUIwNSAh
PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuIChBQjA1KSAvKiBcX1NCXy5BV1IwLkFCUjEuQUIwNSAqLwogICAg
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KEFCMEUpIC8qIFxfU0JfLkFXUjAuQUJSMS5BQjBFICovCiAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBMTAwICgpCiAgICAgICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDAgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IEFCMDApKQogICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDAp
IC8qIFxfU0JfLkFXUjAuQUJSMS5BQjAwICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwID0gQTA5OSAoKQogICAgICAgICAgICAgICAgICAgIElmICgoXF9TQi5B
UDAzICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChcX1NCLkFQMDMgPCBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVAwMykKICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgTWV0aG9kIChBMDkyLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwMikgLyogXF9TQl8uQVdSMC5B
QlIxLkFCMDIgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg
KEEwOTUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuIChBQjAwKSAvKiBcX1NCXy5BV1IwLkFCUjEuQUIwMCAqLwogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5MSwgMSwgTm90U2Vy
aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBQjAyID0g
QXJnMAogICAgICAgICAgICAgICAgICAgIEExMDEgKEFyZzApCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChBQjEwICE9IDB4MDApKSB7fQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICBBMTAyICgweDAwKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKEExMDMsIDB4
MDApCiAgICAgICAgICAgICAgICAgICAgQTEwMiAoMHgwMSkKICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQUIxMCA9IEFyZzAKICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTcsIDEsIE5vdFNlcmlhbGl6
ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKEFy
ZzAgPj4gMHgwOCkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDAgPj0gQTEwNCkg
JiYgKExvY2FsMCA8PSBBMTA1KSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgTWV0aG9kIChBMTA2LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChBQjBEIHwgKEFCMEMgPDwg
MHgwMykpCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IExvY2FsMCkpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEp
CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4
MDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDk4LCAw
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IEFCMTAgPSAweDAwCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k
IChBMTAxLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIElmICgoQXJnMCA+PSAweDAyKSkge30KICAgICAgICAgICAgICAgICAgICBJ
ZiAoKEFyZzAgPj0gMHgwMykpIHt9CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09
IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKChBQjA0ID09IDB4MDEpKSB7fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDcs
IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEExMDggKExv
Y2FsMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBBMTA4IChMb2NhbDAs
IDB4MDgpCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgIT0gMHhGRkZGRkZGRikp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMg
PSAoKExvY2FsMSA+PiAweDEwKSAmIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwxICY9IDB4RkZGRgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoKExv
Y2FsMiA+PiAweDE4KSAmIDB4RkYpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9j
YWwyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgPT0gMHgxMDAyKSB8fCAoTG9jYWwxID09IDB4
MTAyMikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXaGlsZSAoKExvY2FsMCA8IDB4MzApKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw0
ID0gQTEwOCAoMHgwMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDUgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElmICgoKChMb2NhbDQgJiAweDA5KSA9PSAweDAwKSAmJiAoTG9jYWw0ICE9IDB4MDApKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw0ICYgMHgwNikgPT0gMHgwNCkp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IDB4MDQKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUgPSBBMTA4ICgw
eDAwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwICE9
IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMDkgKDB4MjUsIChM
b2NhbDQgJiAweEZGRkZGRkYwKSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBMTA5ICgweDI2LCBMb2NhbDUsIDB4MDApCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwOSAoMHgyOCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgw
eDI3LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQTEwOSAoMHgyOCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgweDA3LCAweDAw
LCAoMHgwMSA8PCAweDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKChMb2NhbDQgJiAweDA2KSA9PSAweDA0
KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IDB4MDQKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwICs9IDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgTWV0aG9kIChBMTEwLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChBQjBEIHwgKEFCMEMgPDwgMHgw
MykpCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IExvY2FsMCkpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMDYgPiBBQjA3
KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuIChBQjA3KSAvKiBcX1NCXy5BV1IwLkFCUjEuQUIwNyAqLwogICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChB
QjA2KSAvKiBcX1NCXy5BV1IwLkFCUjEuQUIwNiAqLwogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KDB4RkYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTIy
LCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElmICgoQTEwOCAoQXJnMCwgMHgwMCkgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBMTA4IChB
cmcwLCAweDM0KQogICAgICAgICAgICAgICAgICAgIFdoaWxlICgweDAxKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQTEwOCAoQXJn
MCwgKExvY2FsMCAmIDB4RkYpKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2Nh
bDEgJiAweEZGKSA9PSBBcmcxKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoTG9jYWwwICYgMHhGRikpCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9ICgo
TG9jYWwxID4+IDB4MDgpICYgMHhGRikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM
b2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIE5hbWUgKEFFU1AsIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAg
ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEwMiwgMSwgTm90U2Vy
aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
PSAweDAwCiAgICAgICAgICAgICAgICAgICAgSWYgKChBMTA4IChMb2NhbDAsIDB4MDApICE9
IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYWwxID0gKEExMDggKExvY2FsMCwgMHgwOCkgJiAweDgwKQogICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDgwKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3ID0gMHgwNwogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWw3ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgICAgICBXaGlsZSAoKExvY2FsMCA8PSBMb2NhbDcpKQogICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBBMTIyIChMb2Nh
bDAsIDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IEEx
MDggKExvY2FsMCwgKExvY2FsMSArIDB4MTApKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEExMjAgKExvY2FsMCwgKExvY2FsMSArIDB4MTApLCAoTG9jYWwyICYgfjB4MDMp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFFU1AgW0xvY2FsMF0gPSBMb2Nh
bDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBEZXJlZk9mIChBRVNQIFtMb2NhbDBdKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMjAgKExvY2FsMCwgKExvY2FsMSAr
IDB4MTApLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMjAsIDMsIFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKEFHUkIgKyAoQTEw
NSA8PCAweDE0KSkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gKEFyZzAgPDwgMHgw
QykKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gQXJnMQogICAgICAgICAgICAgICAg
ICAgIE9wZXJhdGlvblJlZ2lvbiAoQURSQiwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEFEUkIsIERXb3JkQWNjLCBOb0xvY2ssIFBy
ZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
QURSUiwgICAzMgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
QURSUiA9IEFyZzIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg
KEExMDgsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwID0gKEFHUkIgKyAoQTEwNSA8PCAweDE0KSkKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgKz0gKEFyZzAgPDwgMHgwQykKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDAgKz0gQXJnMQogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQURSQiwg
U3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgRmllbGQg
KEFEUkIsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgQURSUiwgICAzMgogICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBRFJSKSAvKiBcX1NCXy5BV1Iw
LkFCUjEuQTEwOC5BRFJSICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
TWV0aG9kIChBMTE4LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIElmICgoQUIwQiAhPSAweDAxKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQTEwNiAoQXJnMCkpCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTE5LCAxLCBOb3RT
ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUg
KEExMDMsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMAogICAgICAg
ICAgICAgICAgICAgIEExMDMgPSBBMTEyIC8qIFxfU0JfLkFXUjAuQUJSMS5BMTEyICovCiAg
ICAgICAgICAgICAgICAgICAgTG9jYWwxID0gKEFCMEQgfCAoQUIwQyA8PCAweDAzKSkKICAg
ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBBMTEzID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIEExMDIgKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9
IEExMDggKDB4MDAsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWww
ICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBMTIwICgweDAwLCAweDA0LCAoTG9jYWwwICYgfjB4MDQpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQTEwOCAoMHgwMSwgMHgwNCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwICE9IDB4RkZGRkZGRkYp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEExMjAgKDB4MDEsIDB4MDQsIChMb2NhbDAgJiB+MHgwNCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAg
ICAgQTExMyA9IDB4MDEKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwNQog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQTExMiA9IDB4MDAK
ICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCAhPSAweDA4KSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4
MDEpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBMTIxICgweDI5LCBMb2NhbDEsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAweDA4CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDUpKQogICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA4ICgweDAwLCAweDAw
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEyMSAoMHgyQSwgTG9jYWwxLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQUIwNSA9IDB4MDAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFCMDQgPSAweDAwCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBQjEwID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwyID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgw
OAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBBMTEyID0gQTEwMyAvKiBcX1NCXy5BV1IwLkFCUjEuQTExOS5B
MTAzICovCiAgICAgICAgICAgICAgICAgICAgSWYgKChBMTAzICE9IDB4MDApKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQTEwMiAoMHgwMSkKICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwy
KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2Ug
KEFCUjIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJ
ZCAoIlBOUDBDMDIiKSAvKiBQTlAgTW90aGVyYm9hcmQgUmVzb3VyY2VzICovKSAgLy8gX0hJ
RDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4ODIpICAvLyBf
VUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKEFCMTIsIDB4NDgpCiAgICAg
ICAgICAgICAgICBOYW1lIChBQjAwLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIw
MSwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMEUsIDB4MDApCiAgICAgICAgICAg
ICAgICBOYW1lIChBQjAyLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwMywgMHgw
MCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDQsIDB4MDApCiAgICAgICAgICAgICAgICBO
YW1lIChBQjA1LCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwNiwgMHgwMCkKICAg
ICAgICAgICAgICAgIE5hbWUgKEFCMDcsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChB
QjA4LCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwOSwgMHgwMCkKICAgICAgICAg
ICAgICAgIE5hbWUgKEFCMEEsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjBCLCAw
eDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwQywgMHgwMCkKICAgICAgICAgICAgICAg
IE5hbWUgKEFCMEQsIDB4MDApCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEEx
MTEsIFN5c3RlbU1lbW9yeSwgKEFHUkIgKyAoKERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIg
KyAweDBEKV0KICAgICAgICAgICAgICAgICAgICApIDw8IDB4MEYpIHwgKERlcmVmT2YgKFxf
U0IuQURBVCBbKEFCMTIgKyAweDBFKV0pIDw8IDB4MEMKICAgICAgICAgICAgICAgICAgICAp
KSksIDB4MTAwMCkKICAgICAgICAgICAgICAgIEZpZWxkIChBMTExLCBCeXRlQWNjLCBOb0xv
Y2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE9m
ZnNldCAoMHgxOCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxOSksIAogICAg
ICAgICAgICAgICAgICAgIEExMDQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgQTEwNSwg
ICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAg
ICAgICAgICBBMTEyLCAgIDIsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAg
ICAgICAgICAgICAgICAgICAgQTExMywgICAxLCAKICAgICAgICAgICAgICAgICAgICBBMTE0
LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2QSksIAogICAgICAgICAg
ICAgICAgICAgICAgICAsICAgMTEsIAogICAgICAgICAgICAgICAgICAgIEExMTUsICAgMSwg
CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg4KSwgCiAgICAgICAgICAgICAgICAg
ICAgQTExNiwgICA0LCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAg
ICAgICAgICAgICAgIEExMTcsICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIE5hbWUgKEFCMTAsIDB4MDApCiAgICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAs
IE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgQUIwMCA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIg
KyAweDAwKV0pCiAgICAgICAgICAgICAgICAgICAgQUIwRSA9IERlcmVmT2YgKFxfU0IuQURB
VCBbKEFCMTIgKyAweDAxKV0pCiAgICAgICAgICAgICAgICAgICAgQUIwMSA9IERlcmVmT2Yg
KFxfU0IuQURBVCBbKEFCMTIgKyAweDAyKV0pCiAgICAgICAgICAgICAgICAgICAgQUIwMiA9
IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDAzKV0pCiAgICAgICAgICAgICAgICAg
ICAgQUIwMyA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDA0KV0pCiAgICAgICAg
ICAgICAgICAgICAgQUIwNCA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDA1KV0p
CiAgICAgICAgICAgICAgICAgICAgQUIwNSA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIg
KyAweDA2KV0pCiAgICAgICAgICAgICAgICAgICAgQUIwNiA9IERlcmVmT2YgKFxfU0IuQURB
VCBbKEFCMTIgKyAweDA3KV0pCiAgICAgICAgICAgICAgICAgICAgQUIwNyA9IERlcmVmT2Yg
KFxfU0IuQURBVCBbKEFCMTIgKyAweDA4KV0pCiAgICAgICAgICAgICAgICAgICAgQUIwOCA9
IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDA5KV0pCiAgICAgICAgICAgICAgICAg
ICAgQUIwOSA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBBKV0pCiAgICAgICAg
ICAgICAgICAgICAgQUIwQSA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBCKV0p
CiAgICAgICAgICAgICAgICAgICAgQUIwQiA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIg
KyAweDBDKV0pCiAgICAgICAgICAgICAgICAgICAgQUIwQyA9IERlcmVmT2YgKFxfU0IuQURB
VCBbKEFCMTIgKyAweDBEKV0pCiAgICAgICAgICAgICAgICAgICAgQUIwRCA9IERlcmVmT2Yg
KFxfU0IuQURBVCBbKEFCMTIgKyAweDBFKV0pCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgTWV0aG9kIChBMDk5LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEEwODEgKCkKICAgICAgICAgICAg
ICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwMSkgLyogXF9TQl8uQVdSMC5BQlIy
LkFCMDEgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm
ICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgUmV0dXJuIChBQjBFKSAvKiBcX1NCXy5BV1IwLkFCUjIuQUIwRSAqLwog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBNZXRob2QgKEEwOTQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgSWYgKChBQjEwICE9IDB4MDApKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBQjEwID09IDB4MDEpKQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1
cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBQjA1ICE9IDB4MDAp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu
IChBQjA1KSAvKiBcX1NCXy5BV1IwLkFCUjIuQUIwNSAqLwogICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBQjEwID4gMHgwMSkpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKChBQjEwIC0gMHgw
MSkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KDB4MDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDkz
LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElmICgoXF9TQi5BUDA1ID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgSWYgKChBQjA1ICE9IDB4MDApKQogICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDUp
IC8qIFxfU0JfLkFXUjAuQUJSMi5BQjA1ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwRSkgLyogXF9TQl8uQVdSMC5B
QlIyLkFCMEUgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
IExvY2FsMCA9IEExMDAgKCkKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCAhPSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm
ICgoTG9jYWwwID4gQUIwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwMCkgLyogXF9TQl8uQVdSMC5BQlIyLkFC
MDAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBMDk5ICgp
CiAgICAgICAgICAgICAgICAgICAgSWYgKChcX1NCLkFQMDMgIT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFxfU0IuQVAwMyA8
IExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoXF9TQi5BUDAzKQogICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExv
Y2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTIs
IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuIChBQjAyKSAvKiBcX1NCXy5BV1IwLkFCUjIuQUIwMiAqLwogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5NSwgMCwgTm90U2VyaWFsaXpl
ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDAp
IC8qIFxfU0JfLkFXUjAuQUJSMi5BQjAwICovCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgTWV0aG9kIChBMDkxLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIEFCMDIgPSBBcmcwCiAgICAgICAgICAgICAgICAg
ICAgQTEwMSAoQXJnMCkKICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMTAgIT0gMHgwMCkp
IHt9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEExMDIgKDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgTmFtZSAoQTEwMywgMHgwMCkKICAgICAgICAgICAgICAgICAg
ICBBMTAyICgweDAxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv
ZCAoQTA5NiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBBQjEwID0gQXJnMAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIE1ldGhvZCAoQTA5NywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQXJnMCA+PiAweDA4KQogICAgICAgICAg
ICAgICAgICAgIElmICgoKExvY2FsMCA+PSBBMTA0KSAmJiAoTG9jYWwwIDw9IEExMDUpKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo
MHgwMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVy
biAoMHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEx
MDYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwID0gKEFCMEQgfCAoQUIwQyA8PCAweDAzKSkKICAgICAgICAgICAgICAg
ICAgICBJZiAoKEFyZzAgPT0gTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTgsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQUIxMCA9IDB4MDAKICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDEsIDEsIE5vdFNlcmlhbGl6
ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID49
IDB4MDIpKSB7fQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA+PSAweDAzKSkge30K
ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMSkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMDQgPT0gMHgwMSkpIHt9
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEwNywgMSwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwxID0gQTEwOCAoTG9jYWwwLCAweDAwKQogICAgICAgICAg
ICAgICAgICAgIExvY2FsMiA9IEExMDggKExvY2FsMCwgMHgwOCkKICAgICAgICAgICAgICAg
ICAgICBJZiAoKExvY2FsMSAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMyA9ICgoTG9jYWwxID4+IDB4MTApICYg
MHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHhGRkZGCiAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMiA9ICgoTG9jYWwyID4+IDB4MTgpICYgMHhGRikK
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gMHgwMykpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExv
Y2FsMSA9PSAweDEwMDIpIHx8IChMb2NhbDEgPT0gMHgxMDIyKSkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww
ID0gMHgxMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWww
IDwgMHgzMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBBMTA4ICgweDAwLCBMb2NhbDAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoKExvY2FsNCAmIDB4MDkp
ID09IDB4MDApICYmIChMb2NhbDQgIT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKChMb2NhbDQgJiAweDA2KSA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgKz0gMHgwNAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsNSA9IEExMDggKDB4MDAsIExvY2FsMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgIT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQTEwOSAoMHgyNSwgKExvY2FsNCAmIDB4RkZGRkZGRjApLCAw
eDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMDkg
KDB4MjYsIExvY2FsNSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBMTA5ICgweDI4LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEExMDkgKDB4MjcsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBMTA5ICgweDI4LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEExMDkgKDB4MDcsIDB4MDAsICgweDAxIDw8IDB4MEEpKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RWxzZUlmICgoKExvY2FsNCAmIDB4MDYpID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgKz0gMHgwNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gMHgw
NAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMTAs
IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gKEFCMEQgfCAoQUIwQyA8PCAweDAzKSkKICAgICAgICAgICAgICAgICAg
ICBJZiAoKEFyZzAgPT0gTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoQUIwNiA+IEFCMDcpKQogICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDcpIC8qIFxf
U0JfLkFXUjAuQUJSMi5BQjA3ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDYpIC8qIFxfU0JfLkFXUjAuQUJS
Mi5BQjA2ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHhGRikKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMjIsIDIsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBMTA4IChBcmcwLCAw
eDAwKSA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IEExMDggKEFyZzAsIDB4MzQpCiAgICAgICAgICAg
ICAgICAgICAgV2hpbGUgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDEgPSBBMTA4IChBcmcwLCAoTG9jYWwwICYgMHhGRikpCiAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSAmIDB4RkYpID09IEFyZzEpKQog
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKChMb2NhbDAgJiAweEZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKChMb2NhbDEgPj4gMHgwOCkgJiAweEZG
KQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu
IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoQUVTUCwgUGFj
a2FnZSAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICB9KQogICAgICAg
ICAgICAgICAgTWV0aG9kIChBMTAyLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICBJZiAoKEExMDggKExvY2FsMCwgMHgwMCkgIT0gMHhGRkZGRkZGRikpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoQTEwOCAo
TG9jYWwwLCAweDA4KSAmIDB4ODApCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9j
YWwxID09IDB4ODApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDcgPSAweDA3CiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDcgPSAweDAwCiAgICAgICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWww
IDw9IExvY2FsNykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMSA9IEExMjIgKExvY2FsMCwgMHgxMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MDApKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsr
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGludWUKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFy
ZzAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gQTEwOCAoTG9jYWwwLCAoTG9jYWwxICsg
MHgxMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEyMCAoTG9jYWwwLCAo
TG9jYWwxICsgMHgxMCksIChMb2NhbDIgJiB+MHgwMykpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQUVTUCBbTG9jYWwwXSA9IExvY2FsMgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMiA9IERlcmVmT2YgKEFFU1AgW0xvY2FsMF0pCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQTEyMCAoTG9jYWwwLCAoTG9jYWwxICsgMHgxMCksIExvY2FsMikKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l
dGhvZCAoQTEyMCwgMywgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgPSAoQUdSQiArIChBMTA1IDw8IDB4MTQpKQogICAgICAgICAg
ICAgICAgICAgIExvY2FsMCArPSAoQXJnMCA8PCAweDBDKQogICAgICAgICAgICAgICAgICAg
IExvY2FsMCArPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChB
RFJCLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBG
aWVsZCAoQURSQiwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBRFJSLCAgIDMyCiAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBRFJSID0gQXJnMgogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEwOCwgMiwgU2VyaWFsaXplZCkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQUdSQiAr
IChBMTA1IDw8IDB4MTQpKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSAoQXJnMCA8
PCAweDBDKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSBBcmcxCiAgICAgICAgICAg
ICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChBRFJCLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwg
MHgwNCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoQURSQiwgRFdvcmRBY2MsIE5vTG9j
aywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICBBRFJSLCAgIDMyCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKEFEUlIpIC8qIFxfU0JfLkFXUjAuQUJSMi5BMTA4LkFEUlIgKi8KICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMTgsIDEsIE5vdFNl
cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChB
QjBCICE9IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuIChBMTA2IChBcmcwKSkKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBNZXRob2QgKEExMTksIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQTEwMywgMHgwMCkKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgQTEwMyA9IEEx
MTIgLyogXF9TQl8uQVdSMC5BQlIyLkExMTIgKi8KICAgICAgICAgICAgICAgICAgICBMb2Nh
bDEgPSAoQUIwRCB8IChBQjBDIDw8IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIElmICgo
QXJnMCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIEExMTMgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4
MDEKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQTEwMiAoMHgwMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQTEwOCAoMHgwMCwgMHgwNCkKICAg
ICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgIT0gMHhGRkZGRkZGRikpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMjAg
KDB4MDAsIDB4MDQsIChMb2NhbDAgJiB+MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgPSBBMTA4ICgweDAxLCAweDA0KQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDAgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEyMCAoMHgwMSwg
MHgwNCwgKExvY2FsMCAmIH4weDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwyID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICBBMTEzID0gMHgwMQogICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDA1CiAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICBBMTEyID0gMHgwMAogICAgICAgICAgICAgICAgICAgIFdo
aWxlICgoTG9jYWwwICE9IDB4MDgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMjEgKDB4MjksIExvY2Fs
MSwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MiA9IDB4MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDgKICAg
ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM
b2NhbDAgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEExMDggKDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBMTIxICgweDJBLCBMb2NhbDEsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBQjA1ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQUIwNCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFCMTAgPSAw
eDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDA4CiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEExMTIg
PSBBMTAzIC8qIFxfU0JfLkFXUjAuQUJSMi5BMTE5LkExMDMgKi8KICAgICAgICAgICAgICAg
ICAgICBJZiAoKEExMDMgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBBMTAyICgweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDIpCiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQUJSMykKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpIC8qIFBOUCBN
b3RoZXJib2FyZCBSZXNvdXJjZXMgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAg
ICAgICAgICAgTmFtZSAoX1VJRCwgMHg4MykgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAg
ICAgICAgICAgTmFtZSAoQUIxMiwgMHg1QykKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDAs
IDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjAxLCAweDAwKQogICAgICAgICAgICAg
ICAgTmFtZSAoQUIwRSwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDIsIDB4MDAp
CiAgICAgICAgICAgICAgICBOYW1lIChBQjAzLCAweDAwKQogICAgICAgICAgICAgICAgTmFt
ZSAoQUIwNCwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDUsIDB4MDApCiAgICAg
ICAgICAgICAgICBOYW1lIChBQjA2LCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIw
NywgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDgsIDB4MDApCiAgICAgICAgICAg
ICAgICBOYW1lIChBQjA5LCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwQSwgMHgw
MCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMEIsIDB4MDApCiAgICAgICAgICAgICAgICBO
YW1lIChBQjBDLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwRCwgMHgwMCkKICAg
ICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQTExMSwgU3lzdGVtTWVtb3J5LCAoQUdS
QiArICgoRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEQpXQogICAgICAgICAgICAg
ICAgICAgICkgPDwgMHgwRikgfCAoRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEUp
XSkgPDwgMHgwQwogICAgICAgICAgICAgICAgICAgICkpKSwgMHgxMDAwKQogICAgICAgICAg
ICAgICAgRmllbGQgKEExMTEsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDE4KSwgCiAgICAgICAg
ICAgICAgICAgICAgT2Zmc2V0ICgweDE5KSwgCiAgICAgICAgICAgICAgICAgICAgQTEwNCwg
ICA4LCAKICAgICAgICAgICAgICAgICAgICBBMTA1LCAgIDgsIAogICAgICAgICAgICAgICAg
ICAgIE9mZnNldCAoMHg2OCksIAogICAgICAgICAgICAgICAgICAgIEExMTIsICAgMiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBBMTEz
LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEExMTQsICAgMSwgCiAgICAgICAgICAgICAg
ICAgICAgT2Zmc2V0ICgweDZBKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxMSwg
CiAgICAgICAgICAgICAgICAgICAgQTExNSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBP
ZmZzZXQgKDB4ODgpLCAKICAgICAgICAgICAgICAgICAgICBBMTE2LCAgIDQsIAogICAgICAg
ICAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQTExNywgICAx
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoQUIxMCwgMHgwMCkK
ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9J
Tkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBB
QjAwID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDApXSkKICAgICAgICAgICAg
ICAgICAgICBBQjBFID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDEpXSkKICAg
ICAgICAgICAgICAgICAgICBBQjAxID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4
MDIpXSkKICAgICAgICAgICAgICAgICAgICBBQjAyID0gRGVyZWZPZiAoXF9TQi5BREFUIFso
QUIxMiArIDB4MDMpXSkKICAgICAgICAgICAgICAgICAgICBBQjAzID0gRGVyZWZPZiAoXF9T
Qi5BREFUIFsoQUIxMiArIDB4MDQpXSkKICAgICAgICAgICAgICAgICAgICBBQjA0ID0gRGVy
ZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDUpXSkKICAgICAgICAgICAgICAgICAgICBB
QjA1ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDYpXSkKICAgICAgICAgICAg
ICAgICAgICBBQjA2ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDcpXSkKICAg
ICAgICAgICAgICAgICAgICBBQjA3ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4
MDgpXSkKICAgICAgICAgICAgICAgICAgICBBQjA4ID0gRGVyZWZPZiAoXF9TQi5BREFUIFso
QUIxMiArIDB4MDkpXSkKICAgICAgICAgICAgICAgICAgICBBQjA5ID0gRGVyZWZPZiAoXF9T
Qi5BREFUIFsoQUIxMiArIDB4MEEpXSkKICAgICAgICAgICAgICAgICAgICBBQjBBID0gRGVy
ZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEIpXSkKICAgICAgICAgICAgICAgICAgICBB
QjBCID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEMpXSkKICAgICAgICAgICAg
ICAgICAgICBBQjBDID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEQpXSkKICAg
ICAgICAgICAgICAgICAgICBBQjBEID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4
MEUpXSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTks
IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gQTA4MSAoKQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09
IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
UmV0dXJuIChBQjAxKSAvKiBcX1NCXy5BV1IwLkFCUjMuQUIwMSAqLwogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFC
MEUpIC8qIFxfU0JfLkFXUjAuQUJSMy5BQjBFICovCiAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5NCwgMCwgTm90
U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo
KEFCMTAgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKEFCMTAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l
dGhvZCAoQTEwMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBJZiAoKEFCMDUgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDUpIC8qIFxfU0JfLkFXUjAu
QUJSMy5BQjA1ICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICBJZiAoKEFCMTAgPiAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoKEFCMTAgLSAweDAxKSkKICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChcX1NCLkFQMDUgPT0g
MHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ
ZiAoKEFCMDUgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwNSkgLyogXF9TQl8uQVdSMC5BQlIzLkFC
MDUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuIChBQjBFKSAvKiBcX1NCXy5BV1IwLkFCUjMuQUIwRSAqLwogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQTEwMCAoKQogICAg
ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwICE9IDB4MDApKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiBBQjAwKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0
dXJuIChBQjAwKSAvKiBcX1NCXy5BV1IwLkFCUjMuQUIwMCAqLwogICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDAp
CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IEEwOTkgKCkKICAgICAgICAgICAgICAgICAgICBJ
ZiAoKFxfU0IuQVAwMyAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoXF9TQi5BUDAzIDwgTG9jYWwwKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChcX1NC
LkFQMDMpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5MiwgMCwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDIpIC8qIFxf
U0JfLkFXUjAuQUJSMy5BQjAyICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgTWV0aG9kIChBMDk1LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwMCkgLyogXF9TQl8uQVdSMC5BQlIzLkFC
MDAgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTEs
IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgQUIwMiA9IEFyZzAKICAgICAgICAgICAgICAgICAgICBBMTAxIChBcmcwKQogICAgICAg
ICAgICAgICAgICAgIElmICgoQUIxMCAhPSAweDAwKSkge30KICAgICAgICAgICAgICAgICAg
ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgQTEwMiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICBOYW1l
IChBMTAzLCAweDAwKQogICAgICAgICAgICAgICAgICAgIEExMDIgKDB4MDEpCiAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDk2LCAxLCBOb3RTZXJpYWxp
emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFCMTAgPSBBcmcw
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDk3LCAxLCBO
b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9IChBcmcwID4+IDB4MDgpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWww
ID49IEExMDQpICYmIChMb2NhbDAgPD0gQTEwNSkpKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEwNiwgMSwgTm90U2VyaWFsaXplZCkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQUIwRCB8
IChBQjBDIDw8IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBMb2Nh
bDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0
dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
UmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv
ZCAoQTA5OCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBBQjEwID0gMHgwMAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIE1ldGhvZCAoQTEwMSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPj0gMHgwMikpIHt9CiAgICAgICAgICAg
ICAgICAgICAgSWYgKChBcmcwID49IDB4MDMpKSB7fQogICAgICAgICAgICAgICAgICAgIElm
ICgoQXJnMCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoQUIwNCA9PSAweDAxKSkge30KICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0
aG9kIChBMTA3LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBMb2NhbDEg
PSBBMTA4IChMb2NhbDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gQTEw
OCAoTG9jYWwwLCAweDA4KQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwxICE9IDB4
RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwzID0gKChMb2NhbDEgPj4gMHgxMCkgJiAweEZGRkYpCiAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMSAmPSAweEZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwyID0gKChMb2NhbDIgPj4gMHgxOCkgJiAweEZGKQogICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKExvY2FsMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwxID09IDB4MTAwMikgfHwgKExv
Y2FsMSA9PSAweDEwMjIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDEwCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPCAweDMwKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2FsNCA9IEExMDggKDB4MDAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWw1ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBJZiAoKCgoTG9jYWw0ICYgMHgwOSkgPT0gMHgwMCkgJiYgKExvY2FsNCAh
PSAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsNCAmIDB4MDYp
ID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSAw
eDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1
ID0gQTEwOCAoMHgwMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm
ICgoQXJnMCAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5
ICgweDI1LCAoTG9jYWw0ICYgMHhGRkZGRkZGMCksIDB4MDApCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwOSAoMHgyNiwgTG9jYWw1LCAweDAwKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMDkgKDB4Mjgs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQTEwOSAoMHgyNywgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMDkgKDB4MjgsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwOSAo
MHgwNywgMHgwMCwgKDB4MDEgPDwgMHgwQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgoTG9jYWw0ICYgMHgw
NikgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSAweDA0CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSAweDA0CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTExMCwgMSwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQUIwRCB8IChB
QjBDIDw8IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBMb2NhbDAp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB
QjA2ID4gQUIwNykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoQUIwNykgLyogXF9TQl8uQVdSMC5BQlIzLkFCMDcgKi8K
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNl
CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoQUIwNikgLyogXF9TQl8uQVdSMC5BQlIzLkFCMDYgKi8KICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuICgweEZGKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l
dGhvZCAoQTEyMiwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBJZiAoKEExMDggKEFyZzAsIDB4MDApID09IDB4RkZGRkZGRkYpKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw
eDAwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWww
ID0gQTEwOCAoQXJnMCwgMHgzNCkKICAgICAgICAgICAgICAgICAgICBXaGlsZSAoMHgwMSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9
IEExMDggKEFyZzAsIChMb2NhbDAgJiAweEZGKSkKICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKCgoTG9jYWwxICYgMHhGRikgPT0gQXJnMSkpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoKExvY2FsMCAmIDB4RkYp
KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSAoKExvY2FsMSA+PiAweDA4KSAmIDB4RkYpCiAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBOYW1lIChBRVNQLCBQYWNrYWdlICgweDA4KQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg
IDB4MDAKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDIs
IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgICAgIElmICgoQTEwOCAoTG9jYWww
LCAweDAwKSAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsMSA9IChBMTA4IChMb2NhbDAsIDB4MDgpICYgMHg4MCkK
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHg4MCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNyA9
IDB4MDcKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsNyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPD0gTG9jYWw3KSkKICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g
QTEyMiAoTG9jYWwwLCAweDEwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM
b2NhbDEgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDb250aW51ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDIgPSBBMTA4IChMb2NhbDAsIChMb2NhbDEgKyAweDEwKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBMTIwIChMb2NhbDAsIChMb2NhbDEgKyAweDEwKSwgKExvY2Fs
MiAmIH4weDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBRVNQIFtMb2Nh
bDBdID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gRGVyZWZPZiAoQUVTUCBb
TG9jYWwwXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIwIChMb2NhbDAs
IChMb2NhbDEgKyAweDEwKSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTIwLCAzLCBTZXJpYWxp
emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChB
R1JCICsgKEExMDUgPDwgMHgxNCkpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IChB
cmcwIDw8IDB4MEMpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IEFyZzEKICAgICAg
ICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEFEUkIsIFN5c3RlbU1lbW9yeSwgTG9j
YWwwLCAweDA0KQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChBRFJCLCBEV29yZEFjYywg
Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIEFEUlIsICAgMzIKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgIEFEUlIgPSBBcmcyCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgTWV0aG9kIChBMTA4LCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IChBR1JCICsgKEExMDUgPDwgMHgxNCkpCiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwICs9IChBcmcwIDw8IDB4MEMpCiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwICs9IEFyZzEKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp
b24gKEFEUkIsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICAgICAg
ICAgIEZpZWxkIChBRFJCLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEUlIsICAgMzIKICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQURSUikgLyog
XF9TQl8uQVdSMC5BQlIzLkExMDguQURSUiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIE1ldGhvZCAoQTExOCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMEIgIT0gMHgwMSkpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEExMDYg
KEFyZzApKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEx
OSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBOYW1lIChBMTAzLCAweDAwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4
MDAKICAgICAgICAgICAgICAgICAgICBBMTAzID0gQTExMiAvKiBcX1NCXy5BV1IwLkFCUjMu
QTExMiAqLwogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IChBQjBEIHwgKEFCMEMgPDwg
MHgwMykpCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQTExMyA9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMQogICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBBMTAyICgweDAwKQogICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDAgPSBBMTA4ICgweDAwLCAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICBJ
ZiAoKExvY2FsMCAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEyMCAoMHgwMCwgMHgwNCwgKExvY2FsMCAm
IH4weDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEExMDggKDB4
MDEsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCAhPSAw
eEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBMTIwICgweDAxLCAweDA0LCAoTG9jYWwwICYgfjB4MDQp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAg
ICAgICAgICAgICAgIEExMTMgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDUKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEEx
MTIgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgIT0gMHgwOCkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExv
Y2FsMCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQTEyMSAoMHgyOSwgTG9jYWwxLCAweDAwLCAweDAwLCAweDAwKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwOAogICAgICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDA1KSkKICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwOCAo
MHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMjEgKDB4MkEsIExv
Y2FsMSwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFC
MDUgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQjA0ID0gMHgwMAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQUIxMCA9IDB4MDAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9IDB4MDgKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQTExMiA9IEExMDMgLyogXF9TQl8uQVdSMC5B
QlIzLkExMTkuQTEwMyAqLwogICAgICAgICAgICAgICAgICAgIElmICgoQTEwMyAhPSAweDAw
KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEExMDIg
KDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1
cm4gKExvY2FsMikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgRGV2aWNlIChBQlI0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf
SElELCBFaXNhSWQgKCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJvYXJkIFJlc291cmNlcyAq
LykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAw
eDg0KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBOYW1lIChBQjEyLCAw
eDcwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwMCwgMHgwMCkKICAgICAgICAgICAgICAg
IE5hbWUgKEFCMDEsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjBFLCAweDAwKQog
ICAgICAgICAgICAgICAgTmFtZSAoQUIwMiwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUg
KEFCMDMsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjA0LCAweDAwKQogICAgICAg
ICAgICAgICAgTmFtZSAoQUIwNSwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDYs
IDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjA3LCAweDAwKQogICAgICAgICAgICAg
ICAgTmFtZSAoQUIwOCwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDksIDB4MDAp
CiAgICAgICAgICAgICAgICBOYW1lIChBQjBBLCAweDAwKQogICAgICAgICAgICAgICAgTmFt
ZSAoQUIwQiwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMEMsIDB4MDApCiAgICAg
ICAgICAgICAgICBOYW1lIChBQjBELCAweDAwKQogICAgICAgICAgICAgICAgT3BlcmF0aW9u
UmVnaW9uIChBMTExLCBTeXN0ZW1NZW1vcnksIChBR1JCICsgKChEZXJlZk9mIChcX1NCLkFE
QVQgWyhBQjEyICsgMHgwRCldCiAgICAgICAgICAgICAgICAgICAgKSA8PCAweDBGKSB8IChE
ZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwRSldKSA8PCAweDBDCiAgICAgICAgICAg
ICAgICAgICAgKSkpLCAweDEwMDApCiAgICAgICAgICAgICAgICBGaWVsZCAoQTExMSwgQnl0
ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBPZmZzZXQgKDB4MTgpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4
MTkpLCAKICAgICAgICAgICAgICAgICAgICBBMTA0LCAgIDgsIAogICAgICAgICAgICAgICAg
ICAgIEExMDUsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAg
ICAgICAgICAgICAgICAgICAgQTExMiwgICAyLCAKICAgICAgICAgICAgICAgICAgICAgICAg
LCAgIDIsIAogICAgICAgICAgICAgICAgICAgIEExMTMsICAgMSwgCiAgICAgICAgICAgICAg
ICAgICAgQTExNCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NkEpLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDExLCAKICAgICAgICAgICAgICAgICAgICBB
MTE1LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4OCksIAogICAgICAg
ICAgICAgICAgICAgIEExMTYsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAx
LCAKICAgICAgICAgICAgICAgICAgICBBMTE3LCAgIDEKICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBOYW1lIChBQjEwLCAweDAwKQogICAgICAgICAgICAgICAgTWV0aG9k
IChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFCMDAgPSBEZXJlZk9mIChcX1NCLkFE
QVQgWyhBQjEyICsgMHgwMCldKQogICAgICAgICAgICAgICAgICAgIEFCMEUgPSBEZXJlZk9m
IChcX1NCLkFEQVQgWyhBQjEyICsgMHgwMSldKQogICAgICAgICAgICAgICAgICAgIEFCMDEg
PSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwMildKQogICAgICAgICAgICAgICAg
ICAgIEFCMDIgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwMyldKQogICAgICAg
ICAgICAgICAgICAgIEFCMDMgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwNCld
KQogICAgICAgICAgICAgICAgICAgIEFCMDQgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEy
ICsgMHgwNSldKQogICAgICAgICAgICAgICAgICAgIEFCMDUgPSBEZXJlZk9mIChcX1NCLkFE
QVQgWyhBQjEyICsgMHgwNildKQogICAgICAgICAgICAgICAgICAgIEFCMDYgPSBEZXJlZk9m
IChcX1NCLkFEQVQgWyhBQjEyICsgMHgwNyldKQogICAgICAgICAgICAgICAgICAgIEFCMDcg
PSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwOCldKQogICAgICAgICAgICAgICAg
ICAgIEFCMDggPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwOSldKQogICAgICAg
ICAgICAgICAgICAgIEFCMDkgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwQSld
KQogICAgICAgICAgICAgICAgICAgIEFCMEEgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEy
ICsgMHgwQildKQogICAgICAgICAgICAgICAgICAgIEFCMEIgPSBEZXJlZk9mIChcX1NCLkFE
QVQgWyhBQjEyICsgMHgwQyldKQogICAgICAgICAgICAgICAgICAgIEFCMEMgPSBEZXJlZk9m
IChcX1NCLkFEQVQgWyhBQjEyICsgMHgwRCldKQogICAgICAgICAgICAgICAgICAgIEFCMEQg
PSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwRSldKQogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5OSwgMCwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBMDgxICgpCiAg
ICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMSkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDEpIC8qIFxfU0Jf
LkFXUjAuQUJSNC5BQjAxICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwRSkgLyogXF9TQl8uQVdSMC5BQlI0
LkFCMEUgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgTWV0aG9kIChBMDk0LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQUIxMCAhPSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQUIxMCA9PSAw
eDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTAwLCAwLCBOb3RTZXJp
YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQUIw
NSAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoQUIwNSkgLyogXF9TQl8uQVdSMC5BQlI0LkFCMDUgKi8KICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQUIxMCA+IDB4MDEpKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgo
QUIxMCAtIDB4MDEpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l
dGhvZCAoQTA5MywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBJZiAoKFxfU0IuQVAwNSA9PSAweDAwKSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQUIwNSAhPSAweDAwKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0
dXJuIChBQjA1KSAvKiBcX1NCXy5BV1IwLkFCUjQuQUIwNSAqLwogICAgICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMEUpIC8qIFxf
U0JfLkFXUjAuQUJSNC5BQjBFICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgPSBBMTAwICgpCiAgICAgICAgICAgICAgICAgICAgSWYgKChM
b2NhbDAgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKExvY2FsMCA+IEFCMDApKQogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDApIC8qIFxfU0JfLkFX
UjAuQUJSNC5BQjAwICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWww
ID0gQTA5OSAoKQogICAgICAgICAgICAgICAgICAgIElmICgoXF9TQi5BUDAzICE9IDB4MDAp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChc
X1NCLkFQMDMgPCBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVAwMykKICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
UmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0
aG9kIChBMDkyLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoQUIwMikgLyogXF9TQl8uQVdSMC5BQlI0LkFCMDIgKi8K
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTUsIDAsIE5v
dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0
dXJuIChBQjAwKSAvKiBcX1NCXy5BV1IwLkFCUjQuQUIwMCAqLwogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5MSwgMSwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBQjAyID0gQXJnMAogICAgICAg
ICAgICAgICAgICAgIEExMDEgKEFyZzApCiAgICAgICAgICAgICAgICAgICAgSWYgKChBQjEw
ICE9IDB4MDApKSB7fQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBMTAy
ICgweDAwKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKEExMDMsIDB4MDApCiAgICAgICAg
ICAgICAgICAgICAgQTEwMiAoMHgwMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBNZXRob2QgKEEwOTYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgQUIxMCA9IEFyZzAKICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBNZXRob2QgKEEwOTcsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKEFyZzAgPj4gMHgwOCkK
ICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDAgPj0gQTEwNCkgJiYgKExvY2FsMCA8
PSBBMTA1KSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
TWV0aG9kIChBMTA2LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IChBQjBEIHwgKEFCMEMgPDwgMHgwMykpCiAgICAg
ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IExvY2FsMCkpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDk4LCAwLCBOb3RTZXJpYWxp
emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFCMTAgPSAweDAw
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTAxLCAxLCBO
b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm
ICgoQXJnMCA+PSAweDAyKSkge30KICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPj0g
MHgwMykpIHt9CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBQjA0ID09
IDB4MDEpKSB7fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDcsIDEsIE5vdFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
MHgwMAogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEExMDggKExvY2FsMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBBMTA4IChMb2NhbDAsIDB4MDgpCiAgICAg
ICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSAoKExvY2FsMSA+
PiAweDEwKSAmIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxICY9IDB4
RkZGRgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoKExvY2FsMiA+PiAweDE4
KSAmIDB4RkYpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwyID09IDB4MDMp
KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKChMb2NhbDEgPT0gMHgxMDAyKSB8fCAoTG9jYWwxID09IDB4MTAyMikpKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2FsMCA9IDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGls
ZSAoKExvY2FsMCA8IDB4MzApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw0ID0gQTEwOCAoMHgw
MCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUg
PSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKChMb2Nh
bDQgJiAweDA5KSA9PSAweDAwKSAmJiAoTG9jYWw0ICE9IDB4MDApKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKCgoTG9jYWw0ICYgMHgwNikgPT0gMHgwNCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IDB4MDQKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUgPSBBMTA4ICgweDAwLCBMb2NhbDAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwICE9IDB4MDApKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMDkgKDB4MjUsIChMb2NhbDQgJiAweEZG
RkZGRkYwKSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBMTA5ICgweDI2LCBMb2NhbDUsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQTEwOSAoMHgyOCwgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgweDI3LCAweDAwLCAw
eDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFr
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQTEwOSAoMHgyOCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgweDA3LCAweDAwLCAoMHgwMSA8PCAw
eDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVh
awogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2VJZiAoKChMb2NhbDQgJiAweDA2KSA9PSAweDA0KSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwICs9IDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwwICs9IDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0
aG9kIChBMTEwLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIExvY2FsMCA9IChBQjBEIHwgKEFCMEMgPDwgMHgwMykpCiAgICAgICAg
ICAgICAgICAgICAgSWYgKChBcmcwID09IExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMDYgPiBBQjA3KSkKICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChB
QjA3KSAvKiBcX1NCXy5BV1IwLkFCUjQuQUIwNyAqLwogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjA2KSAvKiBcX1NC
Xy5BV1IwLkFCUjQuQUIwNiAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkYpCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTIyLCAyLCBOb3RTZXJp
YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQTEw
OCAoQXJnMCwgMHgwMCkgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBMTA4IChBcmcwLCAweDM0KQog
ICAgICAgICAgICAgICAgICAgIFdoaWxlICgweDAxKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQTEwOCAoQXJnMCwgKExvY2FsMCAm
IDB4RkYpKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgJiAweEZGKSA9
PSBBcmcxKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuICgoTG9jYWwwICYgMHhGRikpCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9ICgoTG9jYWwxID4+IDB4
MDgpICYgMHhGRikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgw
MCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUg
KEFFU1AsIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAg
fSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEwMiwgMSwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAg
ICAgICAgICAgICAgICAgSWYgKChBMTA4IChMb2NhbDAsIDB4MDApICE9IDB4RkZGRkZGRkYp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwx
ID0gKEExMDggKExvY2FsMCwgMHgwOCkgJiAweDgwKQogICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKExvY2FsMSA9PSAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3ID0gMHgwNwogICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3ID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBXaGls
ZSAoKExvY2FsMCA8PSBMb2NhbDcpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBBMTIyIChMb2NhbDAsIDB4MTApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRpbnVlCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSWYgKChBcmcwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IEExMDggKExvY2FsMCwg
KExvY2FsMSArIDB4MTApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMjAg
KExvY2FsMCwgKExvY2FsMSArIDB4MTApLCAoTG9jYWwyICYgfjB4MDMpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFFU1AgW0xvY2FsMF0gPSBMb2NhbDIKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDIgPSBEZXJlZk9mIChBRVNQIFtMb2NhbDBdKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEExMjAgKExvY2FsMCwgKExvY2FsMSArIDB4MTApLCBMb2Nh
bDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBNZXRob2QgKEExMjAsIDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKEFHUkIgKyAoQTEwNSA8PCAweDE0KSkK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gKEFyZzAgPDwgMHgwQykKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgKz0gQXJnMQogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlv
blJlZ2lvbiAoQURSQiwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAg
ICAgICAgICAgRmllbGQgKEFEUkIsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURSUiwgICAzMgog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQURSUiA9IEFyZzIK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDgsIDIsIFNl
cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWww
ID0gKEFHUkIgKyAoQTEwNSA8PCAweDE0KSkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
Kz0gKEFyZzAgPDwgMHgwQykKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gQXJnMQog
ICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQURSQiwgU3lzdGVtTWVtb3J5
LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEFEUkIsIERXb3Jk
QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgQURSUiwgICAzMgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuIChBRFJSKSAvKiBcX1NCXy5BV1IwLkFCUjQuQTEwOC5B
RFJSICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTE4
LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElmICgoQUIwQiAhPSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQTEwNiAoQXJnMCkpCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTE5LCAxLCBOb3RTZXJpYWxpemVkKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKEExMDMsIDB4MDAp
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMAogICAgICAgICAgICAgICAgICAg
IEExMDMgPSBBMTEyIC8qIFxfU0JfLkFXUjAuQUJSNC5BMTEyICovCiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwxID0gKEFCMEQgfCAoQUIwQyA8PCAweDAzKSkKICAgICAgICAgICAgICAg
ICAgICBJZiAoKEFyZzAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBBMTEzID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEEx
MDIgKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEExMDggKDB4MDAs
IDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwICE9IDB4RkZGRkZG
RkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBMTIwICgweDAwLCAweDA0LCAoTG9jYWwwICYgfjB4MDQpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gQTEwOCAoMHgwMSwgMHgwNCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEx
MjAgKDB4MDEsIDB4MDQsIChMb2NhbDAgJiB+MHgwNCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgQTExMyA9IDB4
MDEKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwNQogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQTExMiA9IDB4MDAKICAgICAgICAgICAg
ICAgICAgICBXaGlsZSAoKExvY2FsMCAhPSAweDA4KSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDEpKQogICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIxICgw
eDI5LCBMb2NhbDEsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDIgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
PSAweDA4CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoTG9jYWwwID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA4ICgweDAwLCAweDAwKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQTEyMSAoMHgyQSwgTG9jYWwxLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQUIwNSA9IDB4MDAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFCMDQgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBQjEwID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgw
MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwOAogICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
ICAgICBBMTEyID0gQTEwMyAvKiBcX1NCXy5BV1IwLkFCUjQuQTExOS5BMTAzICovCiAgICAg
ICAgICAgICAgICAgICAgSWYgKChBMTAzICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgQTEwMiAoMHgwMSkKICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwyKQogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEFCUjUpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIi
KSAvKiBQTlAgTW90aGVyYm9hcmQgUmVzb3VyY2VzICovKSAgLy8gX0hJRDogSGFyZHdhcmUg
SUQKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4ODUpICAvLyBfVUlEOiBVbmlxdWUg
SUQKICAgICAgICAgICAgICAgIE5hbWUgKEFCMTIsIDB4ODQpCiAgICAgICAgICAgICAgICBO
YW1lIChBQjAwLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwMSwgMHgwMCkKICAg
ICAgICAgICAgICAgIE5hbWUgKEFCMEUsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChB
QjAyLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwMywgMHgwMCkKICAgICAgICAg
ICAgICAgIE5hbWUgKEFCMDQsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjA1LCAw
eDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwNiwgMHgwMCkKICAgICAgICAgICAgICAg
IE5hbWUgKEFCMDcsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjA4LCAweDAwKQog
ICAgICAgICAgICAgICAgTmFtZSAoQUIwOSwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUg
KEFCMEEsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjBCLCAweDAwKQogICAgICAg
ICAgICAgICAgTmFtZSAoQUIwQywgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMEQs
IDB4MDApCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEExMTEsIFN5c3RlbU1l
bW9yeSwgKEFHUkIgKyAoKERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBEKV0KICAg
ICAgICAgICAgICAgICAgICApIDw8IDB4MEYpIHwgKERlcmVmT2YgKFxfU0IuQURBVCBbKEFC
MTIgKyAweDBFKV0pIDw8IDB4MEMKICAgICAgICAgICAgICAgICAgICApKSksIDB4MTAwMCkK
ICAgICAgICAgICAgICAgIEZpZWxkIChBMTExLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZl
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxOCks
IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxOSksIAogICAgICAgICAgICAgICAg
ICAgIEExMDQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgQTEwNSwgICA4LCAKICAgICAg
ICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAgICAgICAgICBBMTEy
LCAgIDIsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAg
ICAgICAgQTExMywgICAxLCAKICAgICAgICAgICAgICAgICAgICBBMTE0LCAgIDEsIAogICAg
ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2QSksIAogICAgICAgICAgICAgICAgICAgICAg
ICAsICAgMTEsIAogICAgICAgICAgICAgICAgICAgIEExMTUsICAgMSwgCiAgICAgICAgICAg
ICAgICAgICAgT2Zmc2V0ICgweDg4KSwgCiAgICAgICAgICAgICAgICAgICAgQTExNiwgICA0
LCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgICAg
IEExMTcsICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKEFC
MTAsIDB4MDApCiAgICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6
ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgQUIwMCA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDAwKV0pCiAg
ICAgICAgICAgICAgICAgICAgQUIwRSA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAw
eDAxKV0pCiAgICAgICAgICAgICAgICAgICAgQUIwMSA9IERlcmVmT2YgKFxfU0IuQURBVCBb
KEFCMTIgKyAweDAyKV0pCiAgICAgICAgICAgICAgICAgICAgQUIwMiA9IERlcmVmT2YgKFxf
U0IuQURBVCBbKEFCMTIgKyAweDAzKV0pCiAgICAgICAgICAgICAgICAgICAgQUIwMyA9IERl
cmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDA0KV0pCiAgICAgICAgICAgICAgICAgICAg
QUIwNCA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDA1KV0pCiAgICAgICAgICAg
ICAgICAgICAgQUIwNSA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDA2KV0pCiAg
ICAgICAgICAgICAgICAgICAgQUIwNiA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAw
eDA3KV0pCiAgICAgICAgICAgICAgICAgICAgQUIwNyA9IERlcmVmT2YgKFxfU0IuQURBVCBb
KEFCMTIgKyAweDA4KV0pCiAgICAgICAgICAgICAgICAgICAgQUIwOCA9IERlcmVmT2YgKFxf
U0IuQURBVCBbKEFCMTIgKyAweDA5KV0pCiAgICAgICAgICAgICAgICAgICAgQUIwOSA9IERl
cmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBBKV0pCiAgICAgICAgICAgICAgICAgICAg
QUIwQSA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBCKV0pCiAgICAgICAgICAg
ICAgICAgICAgQUIwQiA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBDKV0pCiAg
ICAgICAgICAgICAgICAgICAgQUIwQyA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAw
eDBEKV0pCiAgICAgICAgICAgICAgICAgICAgQUIwRCA9IERlcmVmT2YgKFxfU0IuQURBVCBb
KEFCMTIgKyAweDBFKV0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0
aG9kIChBMDk5LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIExvY2FsMCA9IEEwODEgKCkKICAgICAgICAgICAgICAgICAgICBJZiAo
KExvY2FsMCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoQUIwMSkgLyogXF9TQl8uQVdSMC5BQlI1LkFCMDEgKi8KICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09
IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
UmV0dXJuIChBQjBFKSAvKiBcX1NCXy5BV1IwLkFCUjUuQUIwRSAqLwogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEw
OTQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgSWYgKChBQjEwICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKChBQjEwID09IDB4MDEpKQogICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBNZXRob2QgKEExMDAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBQjA1ICE9IDB4MDApKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjA1KSAvKiBc
X1NCXy5BV1IwLkFCUjUuQUIwNSAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgSWYgKChBQjEwID4gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKChBQjEwIC0gMHgwMSkpCiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDkzLCAwLCBOb3RTZXJp
YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoXF9T
Qi5BUDA1ID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgSWYgKChBQjA1ICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDUpIC8qIFxfU0JfLkFX
UjAuQUJSNS5BQjA1ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoQUIwRSkgLyogXF9TQl8uQVdSMC5BQlI1LkFCMEUgKi8K
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEEx
MDAgKCkKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCAhPSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4g
QUIwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoQUIwMCkgLyogXF9TQl8uQVdSMC5BQlI1LkFCMDAgKi8KICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
biAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBMDk5ICgpCiAgICAgICAgICAg
ICAgICAgICAgSWYgKChcX1NCLkFQMDMgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFxfU0IuQVAwMyA8IExvY2FsMCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoXF9TQi5BUDAzKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTIsIDAsIE5vdFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChB
QjAyKSAvKiBcX1NCXy5BV1IwLkFCUjUuQUIwMiAqLwogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIE1ldGhvZCAoQTA5NSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDApIC8qIFxfU0JfLkFX
UjAuQUJSNS5BQjAwICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0
aG9kIChBMDkxLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIEFCMDIgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgQTEwMSAoQXJn
MCkKICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMTAgIT0gMHgwMCkpIHt9CiAgICAgICAg
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIEExMDIgKDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgTmFtZSAoQTEwMywgMHgwMCkKICAgICAgICAgICAgICAgICAgICBBMTAyICgweDAx
KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5NiwgMSwg
Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBB
QjEwID0gQXJnMAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo
QTA5NywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDAgPSAoQXJnMCA+PiAweDA4KQogICAgICAgICAgICAgICAgICAgIElm
ICgoKExvY2FsMCA+PSBBMTA0KSAmJiAoTG9jYWwwIDw9IEExMDUpKSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDYsIDEsIE5vdFNl
cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWww
ID0gKEFCMEQgfCAoQUIwQyA8PCAweDAzKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKEFy
ZzAgPT0gTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBNZXRob2QgKEEwOTgsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgQUIxMCA9IDB4MDAKICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBNZXRob2QgKEExMDEsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID49IDB4MDIpKSB7fQog
ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA+PSAweDAzKSkge30KICAgICAgICAgICAg
ICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMDQgPT0gMHgwMSkpIHt9CiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIE1ldGhvZCAoQTEwNywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwxID0gQTEwOCAoTG9jYWwwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIExv
Y2FsMiA9IEExMDggKExvY2FsMCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICBJZiAoKExv
Y2FsMSAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMyA9ICgoTG9jYWwxID4+IDB4MTApICYgMHhGRkZGKQogICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHhGRkZGCiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMiA9ICgoTG9jYWwyID4+IDB4MTgpICYgMHhGRikKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSA9PSAweDEw
MDIpIHx8IChMb2NhbDEgPT0gMHgxMDIyKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgxMAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwIDwgMHgzMCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDQgPSBBMTA4ICgweDAwLCBMb2NhbDApCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSWYgKCgoKExvY2FsNCAmIDB4MDkpID09IDB4MDApICYm
IChMb2NhbDQgIT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2Nh
bDQgJiAweDA2KSA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgKz0gMHgwNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2FsNSA9IEExMDggKDB4MDAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKEFyZzAgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQTEwOSAoMHgyNSwgKExvY2FsNCAmIDB4RkZGRkZGRjApLCAweDAwKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMDkgKDB4MjYsIExvY2Fs
NSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
MTA5ICgweDI4LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEExMDkgKDB4MjcsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgweDI4
LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEExMDkgKDB4MDcsIDB4MDAsICgweDAxIDw8IDB4MEEpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKExv
Y2FsNCAmIDB4MDYpID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
Kz0gMHgwNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gMHgwNAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMTAsIDEsIE5vdFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
KEFCMEQgfCAoQUIwQyA8PCAweDAzKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAg
PT0gTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoQUIwNiA+IEFCMDcpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDcpIC8qIFxfU0JfLkFXUjAuQUJS
NS5BQjA3ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKEFCMDYpIC8qIFxfU0JfLkFXUjAuQUJSNS5BQjA2ICovCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoMHhGRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBNZXRob2QgKEExMjIsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBMTA4IChBcmcwLCAweDAwKSA9PSAweEZG
RkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgIExvY2FsMCA9IEExMDggKEFyZzAsIDB4MzQpCiAgICAgICAgICAgICAgICAgICAgV2hp
bGUgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDEgPSBBMTA4IChBcmcwLCAoTG9jYWwwICYgMHhGRikpCiAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoKExvY2FsMSAmIDB4RkYpID09IEFyZzEpKQogICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKChMb2Nh
bDAgJiAweEZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwID0gKChMb2NhbDEgPj4gMHgwOCkgJiAweEZGKQogICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoQUVTUCwgUGFja2FnZSAoMHgwOCkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0
aG9kIChBMTAyLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBJZiAoKEEx
MDggKExvY2FsMCwgMHgwMCkgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoQTEwOCAoTG9jYWwwLCAweDA4
KSAmIDB4ODApCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4ODAp
KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDcgPSAweDA3CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDcgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwIDw9IExvY2FsNykp
CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExvY2FsMSA9IEExMjIgKExvY2FsMCwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoTG9jYWwxID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ29udGludWUKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMCkp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwyID0gQTEwOCAoTG9jYWwwLCAoTG9jYWwxICsgMHgxMCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEyMCAoTG9jYWwwLCAoTG9jYWwxICsgMHgx
MCksIChMb2NhbDIgJiB+MHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QUVTUCBbTG9jYWwwXSA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IERlcmVm
T2YgKEFFU1AgW0xvY2FsMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEy
MCAoTG9jYWwwLCAoTG9jYWwxICsgMHgxMCksIExvY2FsMikKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEyMCwg
MywgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSAoQUdSQiArIChBMTA1IDw8IDB4MTQpKQogICAgICAgICAgICAgICAgICAgIExv
Y2FsMCArPSAoQXJnMCA8PCAweDBDKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSBB
cmcxCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChBRFJCLCBTeXN0ZW1N
ZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoQURSQiwg
RFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBBRFJSLCAgIDMyCiAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICBBRFJSID0gQXJnMgogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIE1ldGhvZCAoQTEwOCwgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQUdSQiArIChBMTA1IDw8IDB4
MTQpKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSAoQXJnMCA8PCAweDBDKQogICAg
ICAgICAgICAgICAgICAgIExvY2FsMCArPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgT3Bl
cmF0aW9uUmVnaW9uIChBRFJCLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAg
ICAgICAgICAgICAgICBGaWVsZCAoQURSQiwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBRFJSLCAg
IDMyCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KEFEUlIpIC8qIFxfU0JfLkFXUjAuQUJSNS5BMTA4LkFEUlIgKi8KICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMTgsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBQjBCICE9IDB4MDEp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu
ICgweDAwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0
dXJuIChBMTA2IChBcmcwKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN
ZXRob2QgKEExMTksIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgTmFtZSAoQTEwMywgMHgwMCkKICAgICAgICAgICAgICAgICAgICBM
b2NhbDIgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgQTEwMyA9IEExMTIgLyogXF9TQl8u
QVdSMC5BQlI1LkExMTIgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoQUIwRCB8
IChBQjBDIDw8IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAx
KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEExMTMg
PSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDEKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQTEwMiAoMHgwMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwwID0gQTEwOCAoMHgwMCwgMHgwNCkKICAgICAgICAgICAgICAg
ICAgICAgICAgSWYgKChMb2NhbDAgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMjAgKDB4MDAsIDB4MDQs
IChMb2NhbDAgJiB+MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
PSBBMTA4ICgweDAxLCAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM
b2NhbDAgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEyMCAoMHgwMSwgMHgwNCwgKExvY2Fs
MCAmIH4weDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgICAgICBBMTEzID0gMHgwMQogICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAweDA1CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICBBMTEyID0gMHgwMAogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWww
ICE9IDB4MDgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgSWYgKChMb2NhbDAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEExMjEgKDB4MjksIExvY2FsMSwgMHgwMCwgMHgw
MCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4MDEKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDgKICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgw
NSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEExMDggKDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIx
ICgweDJBLCBMb2NhbDEsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBQjA1ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQUIwNCA9
IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFCMTAgPSAweDAwCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDAgPSAweDA4CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEExMTIgPSBBMTAzIC8qIFxf
U0JfLkFXUjAuQUJSNS5BMTE5LkExMDMgKi8KICAgICAgICAgICAgICAgICAgICBJZiAoKEEx
MDMgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICBBMTAyICgweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgUmV0dXJuIChMb2NhbDIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIERldmljZSAoQUJSNikKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpIC8qIFBOUCBNb3RoZXJib2FyZCBS
ZXNvdXJjZXMgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFt
ZSAoX1VJRCwgMHg4NikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgTmFt
ZSAoQUIxMiwgMHg5OCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDAsIDB4MDApCiAgICAg
ICAgICAgICAgICBOYW1lIChBQjAxLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIw
RSwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDIsIDB4MDApCiAgICAgICAgICAg
ICAgICBOYW1lIChBQjAzLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwNCwgMHgw
MCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDUsIDB4MDApCiAgICAgICAgICAgICAgICBO
YW1lIChBQjA2LCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwNywgMHgwMCkKICAg
ICAgICAgICAgICAgIE5hbWUgKEFCMDgsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChB
QjA5LCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwQSwgMHgwMCkKICAgICAgICAg
ICAgICAgIE5hbWUgKEFCMEIsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjBDLCAw
eDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwRCwgMHgwMCkKICAgICAgICAgICAgICAg
IE9wZXJhdGlvblJlZ2lvbiAoQTExMSwgU3lzdGVtTWVtb3J5LCAoQUdSQiArICgoRGVyZWZP
ZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEQpXQogICAgICAgICAgICAgICAgICAgICkgPDwg
MHgwRikgfCAoRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEUpXSkgPDwgMHgwQwog
ICAgICAgICAgICAgICAgICAgICkpKSwgMHgxMDAwKQogICAgICAgICAgICAgICAgRmllbGQg
KEExMTEsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDE4KSwgCiAgICAgICAgICAgICAgICAgICAg
T2Zmc2V0ICgweDE5KSwgCiAgICAgICAgICAgICAgICAgICAgQTEwNCwgICA4LCAKICAgICAg
ICAgICAgICAgICAgICBBMTA1LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo
MHg2OCksIAogICAgICAgICAgICAgICAgICAgIEExMTIsICAgMiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBBMTEzLCAgIDEsIAogICAg
ICAgICAgICAgICAgICAgIEExMTQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0
ICgweDZBKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxMSwgCiAgICAgICAgICAg
ICAgICAgICAgQTExNSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODgp
LCAKICAgICAgICAgICAgICAgICAgICBBMTE2LCAgIDQsIAogICAgICAgICAgICAgICAgICAg
ICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQTExNywgICAxCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoQUIxMCwgMHgwMCkKICAgICAgICAgICAg
ICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxp
emUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBQjAwID0gRGVyZWZP
ZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDApXSkKICAgICAgICAgICAgICAgICAgICBBQjBF
ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDEpXSkKICAgICAgICAgICAgICAg
ICAgICBBQjAxID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDIpXSkKICAgICAg
ICAgICAgICAgICAgICBBQjAyID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDMp
XSkKICAgICAgICAgICAgICAgICAgICBBQjAzID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIx
MiArIDB4MDQpXSkKICAgICAgICAgICAgICAgICAgICBBQjA0ID0gRGVyZWZPZiAoXF9TQi5B
REFUIFsoQUIxMiArIDB4MDUpXSkKICAgICAgICAgICAgICAgICAgICBBQjA1ID0gRGVyZWZP
ZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDYpXSkKICAgICAgICAgICAgICAgICAgICBBQjA2
ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDcpXSkKICAgICAgICAgICAgICAg
ICAgICBBQjA3ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDgpXSkKICAgICAg
ICAgICAgICAgICAgICBBQjA4ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDkp
XSkKICAgICAgICAgICAgICAgICAgICBBQjA5ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIx
MiArIDB4MEEpXSkKICAgICAgICAgICAgICAgICAgICBBQjBBID0gRGVyZWZPZiAoXF9TQi5B
REFUIFsoQUIxMiArIDB4MEIpXSkKICAgICAgICAgICAgICAgICAgICBBQjBCID0gRGVyZWZP
ZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEMpXSkKICAgICAgICAgICAgICAgICAgICBBQjBD
ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEQpXSkKICAgICAgICAgICAgICAg
ICAgICBBQjBEID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEUpXSkKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTksIDAsIE5vdFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
QTA4MSAoKQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDEpKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjAx
KSAvKiBcX1NCXy5BV1IwLkFCUjYuQUIwMSAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMEUpIC8qIFxfU0Jf
LkFXUjAuQUJSNi5BQjBFICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5NCwgMCwgTm90U2VyaWFsaXplZCkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMTAgIT0gMHgw
MCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo
KEFCMTAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw
eDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEwMCwg
MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBJZiAoKEFCMDUgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKEFCMDUpIC8qIFxfU0JfLkFXUjAuQUJSNi5BQjA1ICov
CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMTAg
PiAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoKEFCMTAgLSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBNZXRob2QgKEEwOTMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChcX1NCLkFQMDUgPT0gMHgwMCkpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMDUgIT0g
MHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoQUIwNSkgLyogXF9TQl8uQVdSMC5BQlI2LkFCMDUgKi8KICAgICAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChB
QjBFKSAvKiBcX1NCXy5BV1IwLkFCUjYuQUIwRSAqLwogICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQTEwMCAoKQogICAgICAgICAgICAgICAg
ICAgIElmICgoTG9jYWwwICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiBBQjAwKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjAwKSAv
KiBcX1NCXy5BV1IwLkFCUjYuQUIwMCAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgIExvY2FsMCA9IEEwOTkgKCkKICAgICAgICAgICAgICAgICAgICBJZiAoKFxfU0IuQVAw
MyAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoXF9TQi5BUDAzIDwgTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFQMDMpCiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIE1ldGhvZCAoQTA5MiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDIpIC8qIFxfU0JfLkFXUjAuQUJS
Ni5BQjAyICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChB
MDk1LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoQUIwMCkgLyogXF9TQl8uQVdSMC5BQlI2LkFCMDAgKi8KICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTEsIDEsIE5vdFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQUIwMiA9IEFy
ZzAKICAgICAgICAgICAgICAgICAgICBBMTAxIChBcmcwKQogICAgICAgICAgICAgICAgICAg
IElmICgoQUIxMCAhPSAweDAwKSkge30KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgQTEwMiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICBOYW1lIChBMTAzLCAweDAw
KQogICAgICAgICAgICAgICAgICAgIEExMDIgKDB4MDEpCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgTWV0aG9kIChBMDk2LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFCMTAgPSBBcmcwCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDk3LCAxLCBOb3RTZXJpYWxpemVk
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChBcmcw
ID4+IDB4MDgpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwwID49IEExMDQpICYm
IChMb2NhbDAgPD0gQTEwNSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIE1ldGhvZCAoQTEwNiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQUIwRCB8IChBQjBDIDw8IDB4
MDMpKQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBMb2NhbDApKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAw
KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5OCwgMCwg
Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBB
QjEwID0gMHgwMAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo
QTEwMSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBJZiAoKEFyZzAgPj0gMHgwMikpIHt9CiAgICAgICAgICAgICAgICAgICAgSWYg
KChBcmcwID49IDB4MDMpKSB7fQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAw
eDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm
ICgoQUIwNCA9PSAweDAxKSkge30KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTA3LCAx
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBBMTA4IChMb2Nh
bDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gQTEwOCAoTG9jYWwwLCAw
eDA4KQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwxICE9IDB4RkZGRkZGRkYpKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0g
KChMb2NhbDEgPj4gMHgxMCkgJiAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMSAmPSAweEZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gKChMb2Nh
bDIgPj4gMHgxOCkgJiAweEZGKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2Fs
MiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKCgoTG9jYWwxID09IDB4MTAwMikgfHwgKExvY2FsMSA9PSAweDEw
MjIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAweDEwCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2hpbGUgKChMb2NhbDAgPCAweDMwKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNCA9
IEExMDggKDB4MDAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWw1ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ
ZiAoKCgoTG9jYWw0ICYgMHgwOSkgPT0gMHgwMCkgJiYgKExvY2FsNCAhPSAweDAwKSkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsNCAmIDB4MDYpID09IDB4MDQpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSAweDA0CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gQTEwOCAoMHgw
MCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCAhPSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgweDI1LCAoTG9j
YWw0ICYgMHhGRkZGRkZGMCksIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQTEwOSAoMHgyNiwgTG9jYWw1LCAweDAwKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMDkgKDB4MjgsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwOSAoMHgy
NywgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEExMDkgKDB4MjgsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwOSAoMHgwNywgMHgwMCwg
KDB4MDEgPDwgMHgwQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgoTG9jYWw0ICYgMHgwNikgPT0gMHgwNCkp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSAweDA0CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMCArPSAweDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIE1ldGhvZCAoQTExMCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQUIwRCB8IChBQjBDIDw8IDB4MDMp
KQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBMb2NhbDApKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBQjA2ID4gQUIwNykp
CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoQUIwNykgLyogXF9TQl8uQVdSMC5BQlI2LkFCMDcgKi8KICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIw
NikgLyogXF9TQl8uQVdSMC5BQlI2LkFCMDYgKi8KICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw
eEZGKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEyMiwg
MiwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBJZiAoKEExMDggKEFyZzAsIDB4MDApID09IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQTEwOCAoQXJn
MCwgMHgzNCkKICAgICAgICAgICAgICAgICAgICBXaGlsZSAoMHgwMSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEExMDggKEFyZzAs
IChMb2NhbDAgJiAweEZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwx
ICYgMHhGRikgPT0gQXJnMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoKExvY2FsMCAmIDB4RkYpKQogICAgICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoKExv
Y2FsMSA+PiAweDA4KSAmIDB4RkYpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9j
YWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBOYW1lIChBRVNQLCBQYWNrYWdlICgweDA4KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAg
ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDIsIDEsIE5vdFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
MHgwMAogICAgICAgICAgICAgICAgICAgIElmICgoQTEwOCAoTG9jYWwwLCAweDAwKSAhPSAw
eEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2FsMSA9IChBMTA4IChMb2NhbDAsIDB4MDgpICYgMHg4MCkKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHg4MCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNyA9IDB4MDcKICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
NyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICAgICAgV2hpbGUgKChMb2NhbDAgPD0gTG9jYWw3KSkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQTEyMiAoTG9jYWww
LCAweDEwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgw
MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
b250aW51ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBBMTA4
IChMb2NhbDAsIChMb2NhbDEgKyAweDEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBMTIwIChMb2NhbDAsIChMb2NhbDEgKyAweDEwKSwgKExvY2FsMiAmIH4weDAzKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBRVNQIFtMb2NhbDBdID0gTG9jYWwy
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWwyID0gRGVyZWZPZiAoQUVTUCBbTG9jYWwwXSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIwIChMb2NhbDAsIChMb2NhbDEgKyAw
eDEwKSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTIwLCAzLCBTZXJpYWxpemVkKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChBR1JCICsgKEExMDUg
PDwgMHgxNCkpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IChBcmcwIDw8IDB4MEMp
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IEFyZzEKICAgICAgICAgICAgICAgICAg
ICBPcGVyYXRpb25SZWdpb24gKEFEUkIsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQog
ICAgICAgICAgICAgICAgICAgIEZpZWxkIChBRFJCLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVz
ZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFE
UlIsICAgMzIKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFE
UlIgPSBBcmcyCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChB
MTA4LCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIExvY2FsMCA9IChBR1JCICsgKEExMDUgPDwgMHgxNCkpCiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwICs9IChBcmcwIDw8IDB4MEMpCiAgICAgICAgICAgICAgICAgICAgTG9jYWww
ICs9IEFyZzEKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEFEUkIsIFN5
c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChB
RFJCLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIEFEUlIsICAgMzIKICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQURSUikgLyogXF9TQl8uQVdSMC5B
QlI2LkExMDguQURSUiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l
dGhvZCAoQTExOCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBJZiAoKEFCMEIgIT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEExMDYgKEFyZzApKQogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTExOSwgMSwgTm90U2Vy
aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChB
MTAzLCAweDAwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAgICAg
ICAgICAgICAgICBBMTAzID0gQTExMiAvKiBcX1NCXy5BV1IwLkFCUjYuQTExMiAqLwogICAg
ICAgICAgICAgICAgICAgIExvY2FsMSA9IChBQjBEIHwgKEFCMEMgPDwgMHgwMykpCiAgICAg
ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgQTExMyA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwID0gMHgwMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBBMTAyICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBB
MTA4ICgweDAwLCAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCAh
PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQTEyMCAoMHgwMCwgMHgwNCwgKExvY2FsMCAmIH4weDA0KSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEExMDggKDB4MDEsIDB4MDQpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCAhPSAweEZGRkZGRkZGKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBMTIwICgweDAxLCAweDA0LCAoTG9jYWwwICYgfjB4MDQpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAg
IEExMTMgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDUKICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEExMTIgPSAweDAwCiAg
ICAgICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgIT0gMHgwOCkpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAx
KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQTEyMSAoMHgyOSwgTG9jYWwxLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gMHgwOAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwOCAoMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMjEgKDB4MkEsIExvY2FsMSwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFCMDUgPSAweDAwCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBQjA0ID0gMHgwMAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQUIxMCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMiA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDgK
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgQTExMiA9IEExMDMgLyogXF9TQl8uQVdSMC5BQlI2LkExMTkuQTEw
MyAqLwogICAgICAgICAgICAgICAgICAgIElmICgoQTEwMyAhPSAweDAwKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEExMDIgKDB4MDEpCiAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMikK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChB
QlI3KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQg
KCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJvYXJkIFJlc291cmNlcyAqLykgIC8vIF9ISUQ6
IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDg3KSAgLy8gX1VJ
RDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBOYW1lIChBQjEyLCAweEFDKQogICAgICAg
ICAgICAgICAgTmFtZSAoQUIwMCwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDEs
IDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjBFLCAweDAwKQogICAgICAgICAgICAg
ICAgTmFtZSAoQUIwMiwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDMsIDB4MDAp
CiAgICAgICAgICAgICAgICBOYW1lIChBQjA0LCAweDAwKQogICAgICAgICAgICAgICAgTmFt
ZSAoQUIwNSwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDYsIDB4MDApCiAgICAg
ICAgICAgICAgICBOYW1lIChBQjA3LCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIw
OCwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDksIDB4MDApCiAgICAgICAgICAg
ICAgICBOYW1lIChBQjBBLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwQiwgMHgw
MCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMEMsIDB4MDApCiAgICAgICAgICAgICAgICBO
YW1lIChBQjBELCAweDAwKQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChBMTEx
LCBTeXN0ZW1NZW1vcnksIChBR1JCICsgKChEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsg
MHgwRCldCiAgICAgICAgICAgICAgICAgICAgKSA8PCAweDBGKSB8IChEZXJlZk9mIChcX1NC
LkFEQVQgWyhBQjEyICsgMHgwRSldKSA8PCAweDBDCiAgICAgICAgICAgICAgICAgICAgKSkp
LCAweDEwMDApCiAgICAgICAgICAgICAgICBGaWVsZCAoQTExMSwgQnl0ZUFjYywgTm9Mb2Nr
LCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZz
ZXQgKDB4MTgpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTkpLCAKICAgICAg
ICAgICAgICAgICAgICBBMTA0LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIEExMDUsICAg
OCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgICAg
ICAgICAgQTExMiwgICAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAg
ICAgICAgICAgICAgICAgIEExMTMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQTExNCwg
ICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NkEpLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgLCAgIDExLCAKICAgICAgICAgICAgICAgICAgICBBMTE1LCAgIDEsIAog
ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4OCksIAogICAgICAgICAgICAgICAgICAg
IEExMTYsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAg
ICAgICAgICAgICBBMTE3LCAgIDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBOYW1lIChBQjEwLCAweDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBO
b3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIEFCMDAgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsg
MHgwMCldKQogICAgICAgICAgICAgICAgICAgIEFCMEUgPSBEZXJlZk9mIChcX1NCLkFEQVQg
WyhBQjEyICsgMHgwMSldKQogICAgICAgICAgICAgICAgICAgIEFCMDEgPSBEZXJlZk9mIChc
X1NCLkFEQVQgWyhBQjEyICsgMHgwMildKQogICAgICAgICAgICAgICAgICAgIEFCMDIgPSBE
ZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwMyldKQogICAgICAgICAgICAgICAgICAg
IEFCMDMgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwNCldKQogICAgICAgICAg
ICAgICAgICAgIEFCMDQgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwNSldKQog
ICAgICAgICAgICAgICAgICAgIEFCMDUgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsg
MHgwNildKQogICAgICAgICAgICAgICAgICAgIEFCMDYgPSBEZXJlZk9mIChcX1NCLkFEQVQg
WyhBQjEyICsgMHgwNyldKQogICAgICAgICAgICAgICAgICAgIEFCMDcgPSBEZXJlZk9mIChc
X1NCLkFEQVQgWyhBQjEyICsgMHgwOCldKQogICAgICAgICAgICAgICAgICAgIEFCMDggPSBE
ZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwOSldKQogICAgICAgICAgICAgICAgICAg
IEFCMDkgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwQSldKQogICAgICAgICAg
ICAgICAgICAgIEFCMEEgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwQildKQog
ICAgICAgICAgICAgICAgICAgIEFCMEIgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsg
MHgwQyldKQogICAgICAgICAgICAgICAgICAgIEFCMEMgPSBEZXJlZk9mIChcX1NCLkFEQVQg
WyhBQjEyICsgMHgwRCldKQogICAgICAgICAgICAgICAgICAgIEFCMEQgPSBEZXJlZk9mIChc
X1NCLkFEQVQgWyhBQjEyICsgMHgwRSldKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIE1ldGhvZCAoQTA5OSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBMDgxICgpCiAgICAgICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDEpIC8qIFxfU0JfLkFXUjAuQUJSNy5B
QjAxICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo
KExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoQUIwRSkgLyogXF9TQl8uQVdSMC5BQlI3LkFCMEUgKi8KICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
TWV0aG9kIChBMDk0LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIElmICgoQUIxMCAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQUIxMCA9PSAweDAxKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu
ICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTAwLCAwLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQUIwNSAhPSAweDAwKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo
QUIwNSkgLyogXF9TQl8uQVdSMC5BQlI3LkFCMDUgKi8KICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgIElmICgoQUIxMCA+IDB4MDEpKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoQUIxMCAtIDB4MDEp
KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw
eDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5Mywg
MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBJZiAoKFxfU0IuQVAwNSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIElmICgoQUIwNSAhPSAweDAwKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjA1KSAv
KiBcX1NCXy5BV1IwLkFCUjcuQUIwNSAqLwogICAgICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMEUpIC8qIFxfU0JfLkFXUjAuQUJS
Ny5BQjBFICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSBBMTAwICgpCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgIT0gMHgw
MCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo
KExvY2FsMCA+IEFCMDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDApIC8qIFxfU0JfLkFXUjAuQUJSNy5BQjAw
ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQTA5OSAoKQog
ICAgICAgICAgICAgICAgICAgIElmICgoXF9TQi5BUDAzICE9IDB4MDApKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChcX1NCLkFQMDMgPCBM
b2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKFxfU0IuQVAwMykKICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2Nh
bDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDkyLCAw
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJldHVybiAoQUIwMikgLyogXF9TQl8uQVdSMC5BQlI3LkFCMDIgKi8KICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTUsIDAsIE5vdFNlcmlhbGl6ZWQp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjAwKSAv
KiBcX1NCXy5BV1IwLkFCUjcuQUIwMCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIE1ldGhvZCAoQTA5MSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBBQjAyID0gQXJnMAogICAgICAgICAgICAgICAgICAg
IEExMDEgKEFyZzApCiAgICAgICAgICAgICAgICAgICAgSWYgKChBQjEwICE9IDB4MDApKSB7
fQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBMTAyICgweDAwKQogICAg
ICAgICAgICAgICAgICAgIE5hbWUgKEExMDMsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
QTEwMiAoMHgwMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg
KEEwOTYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgQUIxMCA9IEFyZzAKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBNZXRob2QgKEEwOTcsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKEFyZzAgPj4gMHgwOCkKICAgICAgICAgICAg
ICAgICAgICBJZiAoKChMb2NhbDAgPj0gQTEwNCkgJiYgKExvY2FsMCA8PSBBMTA1KSkpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4
MDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KDB4MDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTA2
LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIExvY2FsMCA9IChBQjBEIHwgKEFCMEMgPDwgMHgwMykpCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChBcmcwID09IExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgTWV0aG9kIChBMDk4LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFCMTAgPSAweDAwCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTAxLCAxLCBOb3RTZXJpYWxpemVk
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA+PSAw
eDAyKSkge30KICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPj0gMHgwMykpIHt9CiAg
ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBQjA0ID09IDB4MDEpKSB7fQog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDcsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAg
ICAgICAgICAgICAgIExvY2FsMSA9IEExMDggKExvY2FsMCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDIgPSBBMTA4IChMb2NhbDAsIDB4MDgpCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChMb2NhbDEgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSAoKExvY2FsMSA+PiAweDEwKSAmIDB4
RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxICY9IDB4RkZGRgogICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoKExvY2FsMiA+PiAweDE4KSAmIDB4RkYpCiAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwyID09IDB4MDMpKQogICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2Nh
bDEgPT0gMHgxMDAyKSB8fCAoTG9jYWwxID09IDB4MTAyMikpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9
IDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8
IDB4MzApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw0ID0gQTEwOCAoMHgwMCwgTG9jYWwwKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUgPSAweDAwCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKChMb2NhbDQgJiAweDA5KSA9
PSAweDAwKSAmJiAoTG9jYWw0ICE9IDB4MDApKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKCgoTG9jYWw0ICYgMHgwNikgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwICs9IDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDUgPSBBMTA4ICgweDAwLCBMb2NhbDApCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwICE9IDB4MDApKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEExMDkgKDB4MjUsIChMb2NhbDQgJiAweEZGRkZGRkYwKSwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgw
eDI2LCBMb2NhbDUsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQTEwOSAoMHgyOCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgweDI3LCAweDAwLCAweDAwKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QTEwOSAoMHgyOCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBMTA5ICgweDA3LCAweDAwLCAoMHgwMSA8PCAweDBBKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs
c2VJZiAoKChMb2NhbDQgJiAweDA2KSA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwICs9IDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IDB4MDQK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTEwLCAx
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IExvY2FsMCA9IChBQjBEIHwgKEFCMEMgPDwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAg
SWYgKChBcmcwID09IExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoKEFCMDYgPiBBQjA3KSkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjA3KSAvKiBcX1NC
Xy5BV1IwLkFCUjcuQUIwNyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjA2KSAvKiBcX1NCXy5BV1IwLkFCUjcu
QUIwNiAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkYpCiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTIyLCAyLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQTEwOCAoQXJnMCwgMHgw
MCkgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSBBMTA4IChBcmcwLCAweDM0KQogICAgICAgICAgICAg
ICAgICAgIFdoaWxlICgweDAxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwxID0gQTEwOCAoQXJnMCwgKExvY2FsMCAmIDB4RkYpKQogICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgJiAweEZGKSA9PSBBcmcxKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0
dXJuICgoTG9jYWwwICYgMHhGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9ICgoTG9jYWwxID4+IDB4MDgpICYgMHhGRikK
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo
TG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKEFFU1AsIFBhY2th
Z2UgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSkKICAgICAgICAg
ICAgICAgIE1ldGhvZCAoQTEwMiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChBMTA4IChMb2NhbDAsIDB4MDApICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gKEExMDggKExv
Y2FsMCwgMHgwOCkgJiAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2Fs
MSA9PSAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWw3ID0gMHgwNwogICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3ID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8
PSBMb2NhbDcpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDEgPSBBMTIyIChMb2NhbDAsIDB4MTApCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRpbnVlCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw
ID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IEExMDggKExvY2FsMCwgKExvY2FsMSArIDB4
MTApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMjAgKExvY2FsMCwgKExv
Y2FsMSArIDB4MTApLCAoTG9jYWwyICYgfjB4MDMpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFFU1AgW0xvY2FsMF0gPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDIgPSBEZXJlZk9mIChBRVNQIFtMb2NhbDBdKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEExMjAgKExvY2FsMCwgKExvY2FsMSArIDB4MTApLCBMb2NhbDIpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo
b2QgKEExMjAsIDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwID0gKEFHUkIgKyAoQTEwNSA8PCAweDE0KSkKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDAgKz0gKEFyZzAgPDwgMHgwQykKICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgKz0gQXJnMQogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQURS
QiwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgRmll
bGQgKEFEUkIsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURSUiwgICAzMgogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQURSUiA9IEFyZzIKICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDgsIDIsIFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKEFHUkIgKyAo
QTEwNSA8PCAweDE0KSkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gKEFyZzAgPDwg
MHgwQykKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gQXJnMQogICAgICAgICAgICAg
ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQURSQiwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEFEUkIsIERXb3JkQWNjLCBOb0xvY2ss
IFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgQURSUiwgICAzMgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuIChBRFJSKSAvKiBcX1NCXy5BV1IwLkFCUjcuQTEwOC5BRFJSICovCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTE4LCAxLCBOb3RTZXJp
YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQUIw
QiAhPSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoQTEwNiAoQXJnMCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgTWV0aG9kIChBMTE5LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKEExMDMsIDB4MDApCiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwyID0gMHgwMAogICAgICAgICAgICAgICAgICAgIEExMDMgPSBBMTEy
IC8qIFxfU0JfLkFXUjAuQUJSNy5BMTEyICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwx
ID0gKEFCMEQgfCAoQUIwQyA8PCAweDAzKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKEFy
ZzAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICBBMTEzID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAx
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEExMDIgKDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEExMDggKDB4MDAsIDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwICE9IDB4RkZGRkZGRkYpKQogICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIwICgw
eDAwLCAweDA0LCAoTG9jYWwwICYgfjB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gQTEwOCAoMHgwMSwgMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoTG9jYWwwICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMjAgKDB4MDEsIDB4
MDQsIChMb2NhbDAgJiB+MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MiA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgQTExMyA9IDB4MDEKICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwNQogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgQTExMiA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBXaGls
ZSAoKExvY2FsMCAhPSAweDA4KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIxICgweDI5LCBMb2NhbDEs
IDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIg
PSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDA4CiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9j
YWwwID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBMTA4ICgweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQTEyMSAoMHgyQSwgTG9jYWwxLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQUIwNSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFCMDQgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQjEwID0gMHgw
MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwOAogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBMTEyID0g
QTEwMyAvKiBcX1NCXy5BV1IwLkFCUjcuQTExOS5BMTAzICovCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChBMTAzICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgQTEwMiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwyKQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEFCUjgpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIiKSAvKiBQTlAgTW90
aGVyYm9hcmQgUmVzb3VyY2VzICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAg
ICAgICAgIE5hbWUgKF9VSUQsIDB4ODgpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAg
ICAgICAgIE5hbWUgKEFCMTIsIDB4QzApCiAgICAgICAgICAgICAgICBOYW1lIChBQjAwLCAw
eDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwMSwgMHgwMCkKICAgICAgICAgICAgICAg
IE5hbWUgKEFCMEUsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjAyLCAweDAwKQog
ICAgICAgICAgICAgICAgTmFtZSAoQUIwMywgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUg
KEFCMDQsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjA1LCAweDAwKQogICAgICAg
ICAgICAgICAgTmFtZSAoQUIwNiwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDcs
IDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjA4LCAweDAwKQogICAgICAgICAgICAg
ICAgTmFtZSAoQUIwOSwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMEEsIDB4MDAp
CiAgICAgICAgICAgICAgICBOYW1lIChBQjBCLCAweDAwKQogICAgICAgICAgICAgICAgTmFt
ZSAoQUIwQywgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMEQsIDB4MDApCiAgICAg
ICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEExMTEsIFN5c3RlbU1lbW9yeSwgKEFHUkIg
KyAoKERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBEKV0KICAgICAgICAgICAgICAg
ICAgICApIDw8IDB4MEYpIHwgKERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBFKV0p
IDw8IDB4MEMKICAgICAgICAgICAgICAgICAgICApKSksIDB4MTAwMCkKICAgICAgICAgICAg
ICAgIEZpZWxkIChBMTExLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxOCksIAogICAgICAgICAg
ICAgICAgICAgIE9mZnNldCAoMHgxOSksIAogICAgICAgICAgICAgICAgICAgIEExMDQsICAg
OCwgCiAgICAgICAgICAgICAgICAgICAgQTEwNSwgICA4LCAKICAgICAgICAgICAgICAgICAg
ICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAgICAgICAgICBBMTEyLCAgIDIsIAogICAg
ICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgQTExMywg
ICAxLCAKICAgICAgICAgICAgICAgICAgICBBMTE0LCAgIDEsIAogICAgICAgICAgICAgICAg
ICAgIE9mZnNldCAoMHg2QSksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMTEsIAog
ICAgICAgICAgICAgICAgICAgIEExMTUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm
c2V0ICgweDg4KSwgCiAgICAgICAgICAgICAgICAgICAgQTExNiwgICA0LCAKICAgICAgICAg
ICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEExMTcsICAgMQog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKEFCMTAsIDB4MDApCiAg
ICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5J
OiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQUIw
MCA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDAwKV0pCiAgICAgICAgICAgICAg
ICAgICAgQUIwRSA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDAxKV0pCiAgICAg
ICAgICAgICAgICAgICAgQUIwMSA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDAy
KV0pCiAgICAgICAgICAgICAgICAgICAgQUIwMiA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFC
MTIgKyAweDAzKV0pCiAgICAgICAgICAgICAgICAgICAgQUIwMyA9IERlcmVmT2YgKFxfU0Iu
QURBVCBbKEFCMTIgKyAweDA0KV0pCiAgICAgICAgICAgICAgICAgICAgQUIwNCA9IERlcmVm
T2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDA1KV0pCiAgICAgICAgICAgICAgICAgICAgQUIw
NSA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDA2KV0pCiAgICAgICAgICAgICAg
ICAgICAgQUIwNiA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDA3KV0pCiAgICAg
ICAgICAgICAgICAgICAgQUIwNyA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDA4
KV0pCiAgICAgICAgICAgICAgICAgICAgQUIwOCA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFC
MTIgKyAweDA5KV0pCiAgICAgICAgICAgICAgICAgICAgQUIwOSA9IERlcmVmT2YgKFxfU0Iu
QURBVCBbKEFCMTIgKyAweDBBKV0pCiAgICAgICAgICAgICAgICAgICAgQUIwQSA9IERlcmVm
T2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBCKV0pCiAgICAgICAgICAgICAgICAgICAgQUIw
QiA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBDKV0pCiAgICAgICAgICAgICAg
ICAgICAgQUIwQyA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBEKV0pCiAgICAg
ICAgICAgICAgICAgICAgQUIwRCA9IERlcmVmT2YgKFxfU0IuQURBVCBbKEFCMTIgKyAweDBF
KV0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDk5LCAw
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IExvY2FsMCA9IEEwODEgKCkKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAw
eDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoQUIwMSkgLyogXF9TQl8uQVdSMC5BQlI4LkFCMDEgKi8KICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjBF
KSAvKiBcX1NCXy5BV1IwLkFCUjguQUIwRSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTQsIDAsIE5vdFNl
cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChB
QjEwICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChBQjEwID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
IFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo
b2QgKEExMDAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgSWYgKChBQjA1ICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjA1KSAvKiBcX1NCXy5BV1IwLkFC
UjguQUIwNSAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
SWYgKChBQjEwID4gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKChBQjEwIC0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDkzLCAwLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoXF9TQi5BUDA1ID09IDB4
MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KChBQjA1ICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDUpIC8qIFxfU0JfLkFXUjAuQUJSOC5BQjA1
ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoQUIwRSkgLyogXF9TQl8uQVdSMC5BQlI4LkFCMEUgKi8KICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEExMDAgKCkKICAgICAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsMCAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gQUIwMCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
biAoQUIwMCkgLyogXF9TQl8uQVdSMC5BQlI4LkFCMDAgKi8KICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSBBMDk5ICgpCiAgICAgICAgICAgICAgICAgICAgSWYg
KChcX1NCLkFQMDMgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoKFxfU0IuQVAwMyA8IExvY2FsMCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5B
UDAzKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjAyKSAvKiBcX1NC
Xy5BV1IwLkFCUjguQUIwMiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IE1ldGhvZCAoQTA5NSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMDApIC8qIFxfU0JfLkFXUjAuQUJSOC5BQjAw
ICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDkxLCAx
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IEFCMDIgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgQTEwMSAoQXJnMCkKICAgICAgICAg
ICAgICAgICAgICBJZiAoKEFCMTAgIT0gMHgwMCkpIHt9CiAgICAgICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgIEExMDIgKDB4MDApCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo
QTEwMywgMHgwMCkKICAgICAgICAgICAgICAgICAgICBBMTAyICgweDAxKQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5NiwgMSwgTm90U2VyaWFsaXpl
ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBQjEwID0gQXJnMAog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5NywgMSwgTm90
U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDAgPSAoQXJnMCA+PiAweDA4KQogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMCA+
PSBBMTA0KSAmJiAoTG9jYWwwIDw9IEExMDUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKEFCMEQgfCAo
QUIwQyA8PCAweDAzKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gTG9jYWww
KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
biAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg
KEEwOTgsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgQUIxMCA9IDB4MDAKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBNZXRob2QgKEExMDEsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID49IDB4MDIpKSB7fQogICAgICAgICAgICAg
ICAgICAgIElmICgoQXJnMCA+PSAweDAzKSkge30KICAgICAgICAgICAgICAgICAgICBJZiAo
KEFyZzAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKEFCMDQgPT0gMHgwMSkpIHt9CiAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv
ZCAoQTEwNywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g
QTEwOCAoTG9jYWwwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IEExMDgg
KExvY2FsMCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSAhPSAweEZG
RkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IExvY2FsMyA9ICgoTG9jYWwxID4+IDB4MTApICYgMHhGRkZGKQogICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDEgJj0gMHhGRkZGCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MiA9ICgoTG9jYWwyID4+IDB4MTgpICYgMHhGRikKICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKChMb2NhbDIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSA9PSAweDEwMDIpIHx8IChMb2Nh
bDEgPT0gMHgxMDIyKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgxMAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwIDwgMHgzMCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDQgPSBBMTA4ICgweDAwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsNSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSWYgKCgoKExvY2FsNCAmIDB4MDkpID09IDB4MDApICYmIChMb2NhbDQgIT0g
MHgwMCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDQgJiAweDA2KSA9
PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gMHgw
NAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNSA9
IEExMDggKDB4MDAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo
KEFyZzAgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwOSAo
MHgyNSwgKExvY2FsNCAmIDB4RkZGRkZGRjApLCAweDAwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEExMDkgKDB4MjYsIExvY2FsNSwgMHgwMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgweDI4LCAw
eDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEExMDkgKDB4MjcsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgweDI4LCAweDAwLCAweDAw
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMDkgKDB4
MDcsIDB4MDAsICgweDAxIDw8IDB4MEEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKExvY2FsNCAmIDB4MDYp
ID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gMHgwNAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gMHgwNAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBNZXRob2QgKEExMTAsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKEFCMEQgfCAoQUIw
QyA8PCAweDAzKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gTG9jYWwwKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQUIw
NiA+IEFCMDcpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKEFCMDcpIC8qIFxfU0JfLkFXUjAuQUJSOC5BQjA3ICovCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKEFCMDYpIC8qIFxfU0JfLkFXUjAuQUJSOC5BQjA2ICovCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
IFJldHVybiAoMHhGRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo
b2QgKEExMjIsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgSWYgKChBMTA4IChBcmcwLCAweDAwKSA9PSAweEZGRkZGRkZGKSkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw
MCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9
IEExMDggKEFyZzAsIDB4MzQpCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKDB4MDEpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBB
MTA4IChBcmcwLCAoTG9jYWwwICYgMHhGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIElm
ICgoKExvY2FsMSAmIDB4RkYpID09IEFyZzEpKQogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKChMb2NhbDAgJiAweEZGKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwwID0gKChMb2NhbDEgPj4gMHgwOCkgJiAweEZGKQogICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgTmFtZSAoQUVTUCwgUGFja2FnZSAoMHgwOCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAw
eDAwCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChBMTAyLCAx
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBJZiAoKEExMDggKExvY2FsMCwg
MHgwMCkgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDEgPSAoQTEwOCAoTG9jYWwwLCAweDA4KSAmIDB4ODApCiAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4ODApKQogICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDcgPSAw
eDA3CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDcgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwIDw9IExvY2FsNykpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEEx
MjIgKExvY2FsMCwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9j
YWwxID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ29udGludWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwyID0gQTEwOCAoTG9jYWwwLCAoTG9jYWwxICsgMHgxMCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQTEyMCAoTG9jYWwwLCAoTG9jYWwxICsgMHgxMCksIChMb2NhbDIg
JiB+MHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUVTUCBbTG9jYWww
XSA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IERlcmVmT2YgKEFFU1AgW0xv
Y2FsMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEyMCAoTG9jYWwwLCAo
TG9jYWwxICsgMHgxMCksIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs
c2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEyMCwgMywgU2VyaWFsaXpl
ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQUdS
QiArIChBMTA1IDw8IDB4MTQpKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSAoQXJn
MCA8PCAweDBDKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSBBcmcxCiAgICAgICAg
ICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChBRFJCLCBTeXN0ZW1NZW1vcnksIExvY2Fs
MCwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoQURSQiwgRFdvcmRBY2MsIE5v
TG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBBRFJSLCAgIDMyCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICBBRFJSID0gQXJnMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IE1ldGhvZCAoQTEwOCwgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAoQUdSQiArIChBMTA1IDw8IDB4MTQpKQogICAgICAg
ICAgICAgICAgICAgIExvY2FsMCArPSAoQXJnMCA8PCAweDBDKQogICAgICAgICAgICAgICAg
ICAgIExvY2FsMCArPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u
IChBRFJCLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgICAgICAg
ICBGaWVsZCAoQURSQiwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBRFJSLCAgIDMyCiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFEUlIpIC8qIFxf
U0JfLkFXUjAuQUJSOC5BMTA4LkFEUlIgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBNZXRob2QgKEExMTgsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBQjBCICE9IDB4MDEpKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBMTA2IChB
cmcwKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMTks
IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTmFtZSAoQTEwMywgMHgwMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAw
CiAgICAgICAgICAgICAgICAgICAgQTEwMyA9IEExMTIgLyogXF9TQl8uQVdSMC5BQlI4LkEx
MTIgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoQUIwRCB8IChBQjBDIDw8IDB4
MDMpKQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAxKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEExMTMgPSAweDAwCiAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDEKICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgQTEwMiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwwID0gQTEwOCAoMHgwMCwgMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KChMb2NhbDAgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEExMjAgKDB4MDAsIDB4MDQsIChMb2NhbDAgJiB+
MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBMTA4ICgweDAx
LCAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgIT0gMHhG
RkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQTEyMCAoMHgwMSwgMHgwNCwgKExvY2FsMCAmIH4weDA0KSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgICAgICBBMTEzID0gMHgwMQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
PSAweDA1CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBMTEy
ID0gMHgwMAogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwICE9IDB4MDgpKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2Nh
bDAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEExMjEgKDB4MjksIExvY2FsMSwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4MDEKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMCA9IDB4MDgKICAgICAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwNSkpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMDggKDB4
MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIxICgweDJBLCBMb2Nh
bDEsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQjA1
ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQUIwNCA9IDB4MDAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFCMTAgPSAweDAwCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDAgPSAweDA4CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgIEExMTIgPSBBMTAzIC8qIFxfU0JfLkFXUjAuQUJS
OC5BMTE5LkExMDMgKi8KICAgICAgICAgICAgICAgICAgICBJZiAoKEExMDMgIT0gMHgwMCkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBMTAyICgw
eDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu
IChMb2NhbDIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IERldmljZSAoQUJSOSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0hJ
RCwgRWlzYUlkICgiUE5QMEMwMiIpIC8qIFBOUCBNb3RoZXJib2FyZCBSZXNvdXJjZXMgKi8p
ICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHg4
OSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoQUIxMiwgMHhE
NCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDAsIDB4MDApCiAgICAgICAgICAgICAgICBO
YW1lIChBQjAxLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwRSwgMHgwMCkKICAg
ICAgICAgICAgICAgIE5hbWUgKEFCMDIsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChB
QjAzLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwNCwgMHgwMCkKICAgICAgICAg
ICAgICAgIE5hbWUgKEFCMDUsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjA2LCAw
eDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwNywgMHgwMCkKICAgICAgICAgICAgICAg
IE5hbWUgKEFCMDgsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjA5LCAweDAwKQog
ICAgICAgICAgICAgICAgTmFtZSAoQUIwQSwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUg
KEFCMEIsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjBDLCAweDAwKQogICAgICAg
ICAgICAgICAgTmFtZSAoQUIwRCwgMHgwMCkKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJl
Z2lvbiAoQTExMSwgU3lzdGVtTWVtb3J5LCAoQUdSQiArICgoRGVyZWZPZiAoXF9TQi5BREFU
IFsoQUIxMiArIDB4MEQpXQogICAgICAgICAgICAgICAgICAgICkgPDwgMHgwRikgfCAoRGVy
ZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEUpXSkgPDwgMHgwQwogICAgICAgICAgICAg
ICAgICAgICkpKSwgMHgxMDAwKQogICAgICAgICAgICAgICAgRmllbGQgKEExMTEsIEJ5dGVB
Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgT2Zmc2V0ICgweDE4KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDE5
KSwgCiAgICAgICAgICAgICAgICAgICAgQTEwNCwgICA4LCAKICAgICAgICAgICAgICAgICAg
ICBBMTA1LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2OCksIAogICAg
ICAgICAgICAgICAgICAgIEExMTIsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICwg
ICAyLCAKICAgICAgICAgICAgICAgICAgICBBMTEzLCAgIDEsIAogICAgICAgICAgICAgICAg
ICAgIEExMTQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDZBKSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICwgICAxMSwgCiAgICAgICAgICAgICAgICAgICAgQTEx
NSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODgpLCAKICAgICAgICAg
ICAgICAgICAgICBBMTE2LCAgIDQsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwg
CiAgICAgICAgICAgICAgICAgICAgQTExNywgICAxCiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgTmFtZSAoQUIxMCwgMHgwMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAo
X0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBQjAwID0gRGVyZWZPZiAoXF9TQi5BREFU
IFsoQUIxMiArIDB4MDApXSkKICAgICAgICAgICAgICAgICAgICBBQjBFID0gRGVyZWZPZiAo
XF9TQi5BREFUIFsoQUIxMiArIDB4MDEpXSkKICAgICAgICAgICAgICAgICAgICBBQjAxID0g
RGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDIpXSkKICAgICAgICAgICAgICAgICAg
ICBBQjAyID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDMpXSkKICAgICAgICAg
ICAgICAgICAgICBBQjAzID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDQpXSkK
ICAgICAgICAgICAgICAgICAgICBBQjA0ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiAr
IDB4MDUpXSkKICAgICAgICAgICAgICAgICAgICBBQjA1ID0gRGVyZWZPZiAoXF9TQi5BREFU
IFsoQUIxMiArIDB4MDYpXSkKICAgICAgICAgICAgICAgICAgICBBQjA2ID0gRGVyZWZPZiAo
XF9TQi5BREFUIFsoQUIxMiArIDB4MDcpXSkKICAgICAgICAgICAgICAgICAgICBBQjA3ID0g
RGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDgpXSkKICAgICAgICAgICAgICAgICAg
ICBBQjA4ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MDkpXSkKICAgICAgICAg
ICAgICAgICAgICBBQjA5ID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEEpXSkK
ICAgICAgICAgICAgICAgICAgICBBQjBBID0gRGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiAr
IDB4MEIpXSkKICAgICAgICAgICAgICAgICAgICBBQjBCID0gRGVyZWZPZiAoXF9TQi5BREFU
IFsoQUIxMiArIDB4MEMpXSkKICAgICAgICAgICAgICAgICAgICBBQjBDID0gRGVyZWZPZiAo
XF9TQi5BREFUIFsoQUIxMiArIDB4MEQpXSkKICAgICAgICAgICAgICAgICAgICBBQjBEID0g
RGVyZWZPZiAoXF9TQi5BREFUIFsoQUIxMiArIDB4MEUpXSkKICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTksIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQTA4MSAoKQogICAg
ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDEpKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjAxKSAvKiBcX1NCXy5B
V1IwLkFCUjkuQUIwMSAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFCMEUpIC8qIFxfU0JfLkFXUjAuQUJSOS5B
QjBFICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIE1ldGhvZCAoQTA5NCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMTAgIT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMTAgPT0gMHgw
MSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEwMCwgMCwgTm90U2VyaWFs
aXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMDUg
IT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKEFCMDUpIC8qIFxfU0JfLkFXUjAuQUJSOS5BQjA1ICovCiAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMTAgPiAweDAxKSkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoKEFC
MTAgLSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
IFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo
b2QgKEEwOTMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgSWYgKChcX1NCLkFQMDUgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFCMDUgIT0gMHgwMCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy
biAoQUIwNSkgLyogXF9TQl8uQVdSMC5BQlI5LkFCMDUgKi8KICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjBFKSAvKiBcX1NC
Xy5BV1IwLkFCUjkuQUIwRSAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwID0gQTEwMCAoKQogICAgICAgICAgICAgICAgICAgIElmICgoTG9j
YWwwICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDAgPiBBQjAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjAwKSAvKiBcX1NCXy5BV1Iw
LkFCUjkuQUIwMCAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9
IEEwOTkgKCkKICAgICAgICAgICAgICAgICAgICBJZiAoKFxfU0IuQVAwMyAhPSAweDAwKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXF9T
Qi5BUDAzIDwgTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFQMDMpCiAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv
ZCAoQTA5MiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKEFCMDIpIC8qIFxfU0JfLkFXUjAuQUJSOS5BQjAyICovCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDk1LCAwLCBOb3RT
ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy
biAoQUIwMCkgLyogXF9TQl8uQVdSMC5BQlI5LkFCMDAgKi8KICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTEsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQUIwMiA9IEFyZzAKICAgICAgICAg
ICAgICAgICAgICBBMTAxIChBcmcwKQogICAgICAgICAgICAgICAgICAgIElmICgoQUIxMCAh
PSAweDAwKSkge30KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQTEwMiAo
MHgwMCkKICAgICAgICAgICAgICAgICAgICBOYW1lIChBMTAzLCAweDAwKQogICAgICAgICAg
ICAgICAgICAgIEExMDIgKDB4MDEpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgTWV0aG9kIChBMDk2LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIEFCMTAgPSBBcmcwCiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgTWV0aG9kIChBMDk3LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChBcmcwID4+IDB4MDgpCiAg
ICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwwID49IEExMDQpICYmIChMb2NhbDAgPD0g
QTEwNSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
UmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l
dGhvZCAoQTEwNiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAoQUIwRCB8IChBQjBDIDw8IDB4MDMpKQogICAgICAg
ICAgICAgICAgICAgIElmICgoQXJnMCA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5OCwgMCwgTm90U2VyaWFsaXpl
ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBQjEwID0gMHgwMAog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEwMSwgMSwgTm90
U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo
KEFyZzAgPj0gMHgwMikpIHt9CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID49IDB4
MDMpKSB7fQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAxKSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQUIwNCA9PSAw
eDAxKSkge30KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxz
ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTA3LCAxLCBOb3RTZXJpYWxp
emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4
MDAKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBBMTA4IChMb2NhbDAsIDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgTG9jYWwyID0gQTEwOCAoTG9jYWwwLCAweDA4KQogICAgICAg
ICAgICAgICAgICAgIElmICgoTG9jYWwxICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gKChMb2NhbDEgPj4g
MHgxMCkgJiAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweEZG
RkYKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gKChMb2NhbDIgPj4gMHgxOCkg
JiAweEZGKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMiA9PSAweDAzKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKCgoTG9jYWwxID09IDB4MTAwMikgfHwgKExvY2FsMSA9PSAweDEwMjIpKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDAgPSAweDEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUg
KChMb2NhbDAgPCAweDMwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IEExMDggKDB4MDAs
IExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0g
MHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKCgoTG9jYWw0
ICYgMHgwOSkgPT0gMHgwMCkgJiYgKExvY2FsNCAhPSAweDAwKSkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoKExvY2FsNCAmIDB4MDYpID09IDB4MDQpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSAweDA0CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gQTEwOCAoMHgwMCwgTG9jYWwwKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCAhPSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgweDI1LCAoTG9jYWw0ICYgMHhGRkZG
RkZGMCksIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQTEwOSAoMHgyNiwgTG9jYWw1LCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEExMDkgKDB4MjgsIDB4MDAsIDB4MDApCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwOSAoMHgyNywgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEExMDkgKDB4MjgsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQTEwOSAoMHgwNywgMHgwMCwgKDB4MDEgPDwgMHgw
QSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFbHNlSWYgKCgoTG9jYWw0ICYgMHgwNikgPT0gMHgwNCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMCArPSAweDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCArPSAweDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv
ZCAoQTExMCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgPSAoQUIwRCB8IChBQjBDIDw8IDB4MDMpKQogICAgICAgICAg
ICAgICAgICAgIElmICgoQXJnMCA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBQjA2ID4gQUIwNykpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIw
NykgLyogXF9TQl8uQVdSMC5BQlI5LkFCMDcgKi8KICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwNikgLyogXF9TQl8u
QVdSMC5BQlI5LkFCMDYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweEZGKQogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTEyMiwgMiwgTm90U2VyaWFs
aXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEExMDgg
KEFyZzAsIDB4MDApID09IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQTEwOCAoQXJnMCwgMHgzNCkKICAg
ICAgICAgICAgICAgICAgICBXaGlsZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEExMDggKEFyZzAsIChMb2NhbDAgJiAw
eEZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwxICYgMHhGRikgPT0g
QXJnMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoKExvY2FsMCAmIDB4RkYpKQogICAgICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoKExvY2FsMSA+PiAweDA4
KSAmIDB4RkYpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDAp
KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChB
RVNQLCBQYWNrYWdlICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgIH0p
CiAgICAgICAgICAgICAgICBNZXRob2QgKEExMDIsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAg
ICAgICAgICAgICAgIElmICgoQTEwOCAoTG9jYWwwLCAweDAwKSAhPSAweEZGRkZGRkZGKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9
IChBMTA4IChMb2NhbDAsIDB4MDgpICYgMHg4MCkKICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKChMb2NhbDEgPT0gMHg4MCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsNyA9IDB4MDcKICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNyA9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUg
KChMb2NhbDAgPD0gTG9jYWw3KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQTEyMiAoTG9jYWwwLCAweDEwKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250aW51ZQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElmICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBBMTA4IChMb2NhbDAsIChM
b2NhbDEgKyAweDEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIwIChM
b2NhbDAsIChMb2NhbDEgKyAweDEwKSwgKExvY2FsMiAmIH4weDAzKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBRVNQIFtMb2NhbDBdID0gTG9jYWwyCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYWwyID0gRGVyZWZPZiAoQUVTUCBbTG9jYWwwXSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBMTIwIChMb2NhbDAsIChMb2NhbDEgKyAweDEwKSwgTG9jYWwy
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgTWV0aG9kIChBMTIwLCAzLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChBR1JCICsgKEExMDUgPDwgMHgxNCkpCiAg
ICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IChBcmcwIDw8IDB4MEMpCiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwICs9IEFyZzEKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25S
ZWdpb24gKEFEUkIsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICAg
ICAgICAgIEZpZWxkIChBRFJCLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEUlIsICAgMzIKICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEUlIgPSBBcmcyCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTA4LCAyLCBTZXJp
YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9
IChBR1JCICsgKEExMDUgPDwgMHgxNCkpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9
IChBcmcwIDw8IDB4MEMpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IEFyZzEKICAg
ICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEFEUkIsIFN5c3RlbU1lbW9yeSwg
TG9jYWwwLCAweDA0KQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChBRFJCLCBEV29yZEFj
YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIEFEUlIsICAgMzIKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoQURSUikgLyogXF9TQl8uQVdSMC5BQlI5LkExMDguQURS
UiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTExOCwg
MSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBJZiAoKEFCMEIgIT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKEExMDYgKEFyZzApKQogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTExOSwgMSwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChBMTAzLCAweDAwKQog
ICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBB
MTAzID0gQTExMiAvKiBcX1NCXy5BV1IwLkFCUjkuQTExMiAqLwogICAgICAgICAgICAgICAg
ICAgIExvY2FsMSA9IChBQjBEIHwgKEFCMEMgPDwgMHgwMykpCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgQTExMyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwwID0gMHgwMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBMTAy
ICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBMTA4ICgweDAwLCAw
eDA0KQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCAhPSAweEZGRkZGRkZG
KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQTEyMCAoMHgwMCwgMHgwNCwgKExvY2FsMCAmIH4weDA0KSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMCA9IEExMDggKDB4MDEsIDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsMCAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIw
ICgweDAxLCAweDA0LCAoTG9jYWwwICYgfjB4MDQpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIEExMTMgPSAweDAx
CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDUKICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIEExMTIgPSAweDAwCiAgICAgICAgICAgICAg
ICAgICAgV2hpbGUgKChMb2NhbDAgIT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAxKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEyMSAoMHgy
OSwgTG9jYWwxLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwyID0gMHgwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
MHgwOAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKExvY2FsMCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQTEwOCAoMHgwMCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEExMjEgKDB4MkEsIExvY2FsMSwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFCMDUgPSAweDAwCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBQjA0ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
QUIxMCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4MDAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDgKICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgQTExMiA9IEExMDMgLyogXF9TQl8uQVdSMC5BQlI5LkExMTkuQTEwMyAqLwogICAgICAg
ICAgICAgICAgICAgIElmICgoQTEwMyAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIEExMDIgKDB4MDEpCiAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMikKICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChBQlJBKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzAyIikg
LyogUE5QIE1vdGhlcmJvYXJkIFJlc291cmNlcyAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElE
CiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDhBKSAgLy8gX1VJRDogVW5pcXVlIElE
CiAgICAgICAgICAgICAgICBOYW1lIChBQjEyLCAweEU4KQogICAgICAgICAgICAgICAgTmFt
ZSAoQUIwMCwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDEsIDB4MDApCiAgICAg
ICAgICAgICAgICBOYW1lIChBQjBFLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIw
MiwgMHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDMsIDB4MDApCiAgICAgICAgICAg
ICAgICBOYW1lIChBQjA0LCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwNSwgMHgw
MCkKICAgICAgICAgICAgICAgIE5hbWUgKEFCMDYsIDB4MDApCiAgICAgICAgICAgICAgICBO
YW1lIChBQjA3LCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwOCwgMHgwMCkKICAg
ICAgICAgICAgICAgIE5hbWUgKEFCMDksIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChB
QjBBLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoQUIwQiwgMHgwMCkKICAgICAgICAg
ICAgICAgIE5hbWUgKEFCMEMsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChBQjBELCAw
eDAwKQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChBMTExLCBTeXN0ZW1NZW1v
cnksIChBR1JCICsgKChEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwRCldCiAgICAg
ICAgICAgICAgICAgICAgKSA8PCAweDBGKSB8IChEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEy
ICsgMHgwRSldKSA8PCAweDBDCiAgICAgICAgICAgICAgICAgICAgKSkpLCAweDEwMDApCiAg
ICAgICAgICAgICAgICBGaWVsZCAoQTExMSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTgpLCAK
ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTkpLCAKICAgICAgICAgICAgICAgICAg
ICBBMTA0LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIEExMDUsICAgOCwgCiAgICAgICAg
ICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgICAgICAgICAgQTExMiwg
ICAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAg
ICAgIEExMTMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQTExNCwgICAxLCAKICAgICAg
ICAgICAgICAgICAgICBPZmZzZXQgKDB4NkEpLCAKICAgICAgICAgICAgICAgICAgICAgICAg
LCAgIDExLCAKICAgICAgICAgICAgICAgICAgICBBMTE1LCAgIDEsIAogICAgICAgICAgICAg
ICAgICAgIE9mZnNldCAoMHg4OCksIAogICAgICAgICAgICAgICAgICAgIEExMTYsICAgNCwg
CiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICAgICBB
MTE3LCAgIDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChBQjEw
LCAweDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVk
KSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIEFCMDAgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwMCldKQogICAg
ICAgICAgICAgICAgICAgIEFCMEUgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgw
MSldKQogICAgICAgICAgICAgICAgICAgIEFCMDEgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhB
QjEyICsgMHgwMildKQogICAgICAgICAgICAgICAgICAgIEFCMDIgPSBEZXJlZk9mIChcX1NC
LkFEQVQgWyhBQjEyICsgMHgwMyldKQogICAgICAgICAgICAgICAgICAgIEFCMDMgPSBEZXJl
Zk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwNCldKQogICAgICAgICAgICAgICAgICAgIEFC
MDQgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwNSldKQogICAgICAgICAgICAg
ICAgICAgIEFCMDUgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwNildKQogICAg
ICAgICAgICAgICAgICAgIEFCMDYgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgw
NyldKQogICAgICAgICAgICAgICAgICAgIEFCMDcgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhB
QjEyICsgMHgwOCldKQogICAgICAgICAgICAgICAgICAgIEFCMDggPSBEZXJlZk9mIChcX1NC
LkFEQVQgWyhBQjEyICsgMHgwOSldKQogICAgICAgICAgICAgICAgICAgIEFCMDkgPSBEZXJl
Zk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwQSldKQogICAgICAgICAgICAgICAgICAgIEFC
MEEgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwQildKQogICAgICAgICAgICAg
ICAgICAgIEFCMEIgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgwQyldKQogICAg
ICAgICAgICAgICAgICAgIEFCMEMgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhBQjEyICsgMHgw
RCldKQogICAgICAgICAgICAgICAgICAgIEFCMEQgPSBEZXJlZk9mIChcX1NCLkFEQVQgWyhB
QjEyICsgMHgwRSldKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv
ZCAoQTA5OSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgPSBBMDgxICgpCiAgICAgICAgICAgICAgICAgICAgSWYgKChM
b2NhbDAgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKEFCMDEpIC8qIFxfU0JfLkFXUjAuQUJSQS5BQjAxICovCiAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoQUIwRSkgLyogXF9TQl8uQVdSMC5BQlJBLkFCMEUgKi8KICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDk0
LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElmICgoQUIxMCAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoQUIxMCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgTWV0aG9kIChBMTAwLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIElmICgoQUIwNSAhPSAweDAwKSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIwNSkgLyogXF9T
Ql8uQVdSMC5BQlJBLkFCMDUgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgIElmICgoQUIxMCA+IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoQUIxMCAtIDB4MDEpKQogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQTA5MywgMCwgTm90U2VyaWFs
aXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFxfU0Iu
QVAwNSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIElmICgoQUIwNSAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjA1KSAvKiBcX1NCXy5BV1Iw
LkFCUkEuQUIwNSAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKEFCMEUpIC8qIFxfU0JfLkFXUjAuQUJSQS5BQjBFICovCiAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBMTAw
ICgpCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgIT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IEFC
MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKEFCMDApIC8qIFxfU0JfLkFXUjAuQUJSQS5BQjAwICovCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQTA5OSAoKQogICAgICAgICAgICAg
ICAgICAgIElmICgoXF9TQi5BUDAzICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChcX1NCLkFQMDMgPCBMb2NhbDApKQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1
cm4gKFxfU0IuQVAwMykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMDkyLCAwLCBOb3RTZXJpYWxp
emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUIw
MikgLyogXF9TQl8uQVdSMC5BQlJBLkFCMDIgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBNZXRob2QgKEEwOTUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjAwKSAvKiBcX1NCXy5BV1Iw
LkFCUkEuQUIwMCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv
ZCAoQTA5MSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBBQjAyID0gQXJnMAogICAgICAgICAgICAgICAgICAgIEExMDEgKEFyZzAp
CiAgICAgICAgICAgICAgICAgICAgSWYgKChBQjEwICE9IDB4MDApKSB7fQogICAgICAgICAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICBBMTAyICgweDAwKQogICAgICAgICAgICAgICAg
ICAgIE5hbWUgKEExMDMsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgQTEwMiAoMHgwMSkK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEwOTYsIDEsIE5v
dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQUIx
MCA9IEFyZzAKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEEw
OTcsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwID0gKEFyZzAgPj4gMHgwOCkKICAgICAgICAgICAgICAgICAgICBJZiAo
KChMb2NhbDAgPj0gQTEwNCkgJiYgKExvY2FsMCA8PSBBMTA1KSkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTA2LCAxLCBOb3RTZXJp
YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9
IChBQjBEIHwgKEFCMEMgPDwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw
ID09IExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgTWV0aG9kIChBMDk4LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIEFCMTAgPSAweDAwCiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgTWV0aG9kIChBMTAxLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA+PSAweDAyKSkge30KICAg
ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPj0gMHgwMykpIHt9CiAgICAgICAgICAgICAg
ICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKChBQjA0ID09IDB4MDEpKSB7fQogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBNZXRob2QgKEExMDcsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgICAg
IExvY2FsMSA9IEExMDggKExvY2FsMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDIgPSBBMTA4IChMb2NhbDAsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2Nh
bDEgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDMgPSAoKExvY2FsMSA+PiAweDEwKSAmIDB4RkZGRikKICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWwxICY9IDB4RkZGRgogICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDIgPSAoKExvY2FsMiA+PiAweDE4KSAmIDB4RkYpCiAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoTG9jYWwyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgPT0gMHgxMDAy
KSB8fCAoTG9jYWwxID09IDB4MTAyMikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MTAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IDB4MzApKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWw0ID0gQTEwOCAoMHgwMCwgTG9jYWwwKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUgPSAweDAwCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIElmICgoKChMb2NhbDQgJiAweDA5KSA9PSAweDAwKSAmJiAo
TG9jYWw0ICE9IDB4MDApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw0
ICYgMHgwNikgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwwICs9IDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDUgPSBBMTA4ICgweDAwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChBcmcwICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEExMDkgKDB4MjUsIChMb2NhbDQgJiAweEZGRkZGRkYwKSwgMHgwMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTA5ICgweDI2LCBMb2NhbDUs
IDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEw
OSAoMHgyOCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBMTA5ICgweDI3LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwOSAoMHgyOCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBMTA5ICgweDA3LCAweDAwLCAoMHgwMSA8PCAweDBBKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKChMb2Nh
bDQgJiAweDA2KSA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9
IDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IDB4MDQKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTEwLCAxLCBOb3RTZXJpYWxp
emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChB
QjBEIHwgKEFCMEMgPDwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09
IExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKEFCMDYgPiBBQjA3KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQjA3KSAvKiBcX1NCXy5BV1IwLkFCUkEu
QUIwNyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuIChBQjA2KSAvKiBcX1NCXy5BV1IwLkFCUkEuQUIwNiAqLwogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKDB4RkYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgTWV0aG9kIChBMTIyLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIElmICgoQTEwOCAoQXJnMCwgMHgwMCkgPT0gMHhGRkZG
RkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICBMb2NhbDAgPSBBMTA4IChBcmcwLCAweDM0KQogICAgICAgICAgICAgICAgICAgIFdoaWxl
ICgweDAxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwxID0gQTEwOCAoQXJnMCwgKExvY2FsMCAmIDB4RkYpKQogICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKChMb2NhbDEgJiAweEZGKSA9PSBBcmcxKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoTG9jYWww
ICYgMHhGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMCA9ICgoTG9jYWwxID4+IDB4MDgpICYgMHhGRikKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKEFFU1AsIFBhY2thZ2UgKDB4MDgpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg
ICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhv
ZCAoQTEwMiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgSWYgKChBMTA4
IChMb2NhbDAsIDB4MDApICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gKEExMDggKExvY2FsMCwgMHgwOCkg
JiAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDgwKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWw3ID0gMHgwNwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWw3ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8PSBMb2NhbDcpKQog
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDEgPSBBMTIyIChMb2NhbDAsIDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKExvY2FsMSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDApKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMiA9IEExMDggKExvY2FsMCwgKExvY2FsMSArIDB4MTApKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEExMjAgKExvY2FsMCwgKExvY2FsMSArIDB4MTAp
LCAoTG9jYWwyICYgfjB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFF
U1AgW0xvY2FsMF0gPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBEZXJlZk9m
IChBRVNQIFtMb2NhbDBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMjAg
KExvY2FsMCwgKExvY2FsMSArIDB4MTApLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEExMjAsIDMs
IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9j
YWwwID0gKEFHUkIgKyAoQTEwNSA8PCAweDE0KSkKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDAgKz0gKEFyZzAgPDwgMHgwQykKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gQXJn
MQogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQURSQiwgU3lzdGVtTWVt
b3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEFEUkIsIERX
b3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgQURSUiwgICAzMgogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgQURSUiA9IEFyZzIKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBNZXRob2QgKEExMDgsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKEFHUkIgKyAoQTEwNSA8PCAweDE0
KSkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gKEFyZzAgPDwgMHgwQykKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgKz0gQXJnMQogICAgICAgICAgICAgICAgICAgIE9wZXJh
dGlvblJlZ2lvbiAoQURSQiwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAg
ICAgICAgICAgICAgRmllbGQgKEFEUkIsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURSUiwgICAz
MgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChB
RFJSKSAvKiBcX1NCXy5BV1IwLkFCUkEuQTEwOC5BRFJSICovCiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgTWV0aG9kIChBMTE4LCAxLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQUIwQiAhPSAweDAxKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo
MHgwMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVy
biAoQTEwNiAoQXJnMCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0
aG9kIChBMTE5LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIE5hbWUgKEExMDMsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTG9j
YWwyID0gMHgwMAogICAgICAgICAgICAgICAgICAgIEExMDMgPSBBMTEyIC8qIFxfU0JfLkFX
UjAuQUJSQS5BMTEyICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gKEFCMEQgfCAo
QUIwQyA8PCAweDAzKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMSkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBMTEzID0g
MHgwMAogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAxCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEExMDIgKDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMCA9IEExMDggKDB4MDAsIDB4MDQpCiAgICAgICAgICAgICAgICAg
ICAgICAgIElmICgoTG9jYWwwICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTIwICgweDAwLCAweDA0LCAo
TG9jYWwwICYgfjB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
QTEwOCAoMHgwMSwgMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9j
YWwwICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExMjAgKDB4MDEsIDB4MDQsIChMb2NhbDAg
JiB+MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICAgICAgQTExMyA9IDB4MDEKICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gMHgwNQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgQTExMiA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCAh
PSAweDA4KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IElmICgoTG9jYWwwID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBMTIxICgweDI5LCBMb2NhbDEsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAxCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDA4CiAgICAgICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDUp
KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBMTA4ICgweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEyMSAo
MHgyQSwgTG9jYWwxLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQUIwNSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFCMDQgPSAw
eDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQjEwID0gMHgwMAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwID0gMHgwOAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBMTEyID0gQTEwMyAvKiBcX1NC
Xy5BV1IwLkFCUkEuQTExOS5BMTAzICovCiAgICAgICAgICAgICAgICAgICAgSWYgKChBMTAz
ICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgQTEwMiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoTG9jYWwyKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg
ICAgICAgfQoKICAgICAgICBNZXRob2QgKEExNzksIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAg
ewogICAgICAgICAgICBJZiAoKERlcmVmT2YgKFxfU0IuQURBVCBbMHgwOF0pID09IDB4MDEp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAg
ICAgICAgICBXaGlsZSAoKExvY2FsMCA8IDB4MEIpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIEExODAgKExvY2FsMCwgQXJnMCkKICAgICAgICAgICAgICAgICAg
ICBMb2NhbDArKwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoK
ICAgICAgICBNZXRob2QgKEExMDksIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAg
ICAgICAgICBMb2NhbDcgPSBCdWZmZXIgKDB4MTgpIHt9CiAgICAgICAgICAgIENyZWF0ZURX
b3JkRmllbGQgKExvY2FsNywgMHgwMCwgQTAxMikKICAgICAgICAgICAgQ3JlYXRlRFdvcmRG
aWVsZCAoTG9jYWw3LCAweDA0LCBBMDEzKQogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk
IChMb2NhbDcsIDB4MDgsIEEwMTQpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExv
Y2FsNywgMHgwQywgQTAxNSkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw3
LCAweDEwLCBBMDE2KQogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDcsIDB4
MTQsIEEwMTcpCiAgICAgICAgICAgIEEwMTIgPSBBcmcxCiAgICAgICAgICAgIEEwMTMgPSBB
cmcyCiAgICAgICAgICAgIEEwMTggKEFyZzAsIExvY2FsNykKICAgICAgICB9CgogICAgICAg
IE1ldGhvZCAoQTE4MCwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAg
IElmICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0
dXJuIChcX1NCLkFXUjAuQUJSMC5BMTA3IChBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBSZXR1cm4gKFxfU0IuQVdSMC5BQlIxLkExMDcgKEFyZzEpKQogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjIuQTEwNyAoQXJnMSkpCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSMy5BMTA3IChBcmcxKSkKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDQpKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlI0LkExMDcgKEFyZzEpKQog
ICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwNSkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1IwLkFCUjUuQTEwNyAoQXJn
MSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA2KSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NCLkFXUjAuQUJSNi5BMTA3
IChBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDcp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQVdSMC5BQlI3
LkExMDcgKEFyZzEpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0g
MHgwOCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5BV1Iw
LkFCUjguQTEwNyAoQXJnMSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJn
MCA9PSAweDA5KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NC
LkFXUjAuQUJSOS5BMTA3IChBcmcxKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg
KChBcmcwID09IDB4MEEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4g
KFxfU0IuQVdSMC5BQlJBLkExMDcgKEFyZzEpKQogICAgICAgICAgICB9CiAgICAgICAgfQoK
ICAgICAgICBNZXRob2QgKEEwNzEsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg
ICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgIExvY2FsNiA9IERlcmVmT2YgKEFyZzAg
W0xvY2FsMF0pCiAgICAgICAgICAgIExvY2FsNyA9IEJ1ZmZlciAoMHgxOCkge30KICAgICAg
ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw3LCAweDAwLCBBMDEyKQogICAgICAgICAg
ICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDcsIDB4MDQsIEEwMTMpCiAgICAgICAgICAgIENy
ZWF0ZURXb3JkRmllbGQgKExvY2FsNywgMHgwOCwgQTAxNCkKICAgICAgICAgICAgQ3JlYXRl
RFdvcmRGaWVsZCAoTG9jYWw3LCAweDBDLCBBMDE1KQogICAgICAgICAgICBDcmVhdGVEV29y
ZEZpZWxkIChMb2NhbDcsIDB4MTAsIEEwMTYpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmll
bGQgKExvY2FsNywgMHgxNCwgQTAxNykKICAgICAgICAgICAgTG9jYWwwID0gMHgwMgogICAg
ICAgICAgICBMb2NhbDEgPSBEZXJlZk9mIChBcmcwIFtMb2NhbDBdKQogICAgICAgICAgICBM
b2NhbDArKwogICAgICAgICAgICBMb2NhbDIgPSBEZXJlZk9mIChBcmcwIFtMb2NhbDBdKQog
ICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICBMb2NhbDIgfD0gKERlcmVmT2YgKEFy
ZzAgW0xvY2FsMF0pIDw8IDB4MDgpCiAgICAgICAgICAgIEEwMTIgPSAweDAwCiAgICAgICAg
ICAgIEEwMTMgPSAweDAwCiAgICAgICAgICAgIEEwMTQgPSAweDAwCiAgICAgICAgICAgIEEw
MTUgPSAweDAwCiAgICAgICAgICAgIEEwMTYgPSAweDAwCiAgICAgICAgICAgIEEwMTcgPSAw
eDAwCiAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MDApKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBBMDEyID0gTG9jYWwyCiAgICAgICAgICAgICAgICBBMTc5ICgweDAw
KQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAxKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgQTAxMiA9IExvY2FsMgogICAgICAgICAgICAg
ICAgQTE3OSAoMHgwMSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChMb2NhbDEg
PT0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEEwMTIgPSBMb2NhbDIK
ICAgICAgICAgICAgICAgIEEwMTggKDB4MjcsIExvY2FsNykKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgSWYgKChMb2NhbDEgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIEEwMTIgPSBMb2NhbDIKICAgICAgICAgICAgICAgIEEwMTggKDB4MjgsIExvY2Fs
NykKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTmFtZSAoQTAwOCwgMHgwMSkK
ICAgICAgICBOYW1lIChBMDA5LCAweDAwKQogICAgICAgIE1ldGhvZCAoQVBUUywgMSwgTm90
U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkg
e30KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQVdBSywgMSwgTm90U2VyaWFsaXplZCkK
ICAgICAgICB7CiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkge30KICAgICAgICB9
CgogICAgICAgIE1ldGhvZCAoQVBQTSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAg
ICAgICAgICAgIExvY2FsMCA9IERlcmVmT2YgKEFyZzAgWzB4MDRdKQogICAgICAgICAgICBM
b2NhbDEgPSBEZXJlZk9mIChBcmcwIFsweDAyXSkKICAgICAgICAgICAgQTAxMCAoTG9jYWww
LCBMb2NhbDEpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEEwMTEsIDAsIE5vdFNlcmlh
bGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDcgPSBCdWZmZXIgKDB4MTgpIHt9
CiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsNywgMHgwMCwgQTAxMikKICAg
ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWw3LCAweDA0LCBBMDEzKQogICAgICAg
ICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDcsIDB4MDgsIEEwMTQpCiAgICAgICAgICAg
IENyZWF0ZURXb3JkRmllbGQgKExvY2FsNywgMHgwQywgQTAxNSkKICAgICAgICAgICAgQ3Jl
YXRlRFdvcmRGaWVsZCAoTG9jYWw3LCAweDEwLCBBMDE2KQogICAgICAgICAgICBDcmVhdGVE
V29yZEZpZWxkIChMb2NhbDcsIDB4MTQsIEEwMTcpCiAgICAgICAgICAgIEEwMTIgPSAweDAw
CiAgICAgICAgICAgIEEwMTMgPSAweDAwCiAgICAgICAgICAgIEEwMTQgPSAweDAwCiAgICAg
ICAgICAgIEEwMTUgPSAweDAwCiAgICAgICAgICAgIEEwMTYgPSAweDAwCiAgICAgICAgICAg
IEEwMTcgPSAweDAwCiAgICAgICAgICAgIElmICgoQUQwMCA9PSAweDAwKSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgQTAxOCAoMHgxMSwgTG9jYWw3KQogICAgICAgICAgICB9
CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQTAxOCAo
MHgxMiwgTG9jYWw3KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg
KEEwMTksIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgIH0KICAgIH0KfQoK

--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt3.dsl"
Content-Disposition: attachment; filename="ssdt3.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0My5kYXQsIFR1ZSBKdWwgIDkgMDg6MzI6MDAgMjAyNAogKgogKiBPcmlnaW5hbCBUYWJs
ZSBIZWFkZXI6CiAqICAgICBTaWduYXR1cmUgICAgICAgICJTU0RUIgogKiAgICAgTGVuZ3Ro
ICAgICAgICAgICAweDAwMDA5RkU2ICg0MDkzNCkKICogICAgIFJldmlzaW9uICAgICAgICAg
MHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweDgxCiAqICAgICBPRU0gSUQgICAgICAg
ICAgICJMRU5PVk8iCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJJTlRHUFAwMyIKICogICAg
IE9FTSBSZXZpc2lvbiAgICAgMHgwMDAwMDAwMSAoMSkKICogICAgIENvbXBpbGVyIElEICAg
ICAgIklOVEwiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MjAxODAzMTMgKDUzODQ0NDU2
MykKICovCkRlZmluaXRpb25CbG9jayAoIiIsICJTU0RUIiwgMiwgIkxFTk9WTyIsICJJTlRH
UFAwMyIsIDB4MDAwMDAwMDEpCnsKICAgIEV4dGVybmFsIChfQURSLCBJbnRPYmopCiAgICBF
eHRlcm5hbCAoX0dQRSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uQUxJQiwgTWV0
aG9kT2JqKSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uQ0sxNywgTWV0
aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUENJMCwgVW5r
bm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuREFEUiwgSW50T2JqKQogICAgRXh0
ZXJuYWwgKF9TQl8uUENJMC5FQlVTLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kw
LkdQMTEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxMiwgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE5LCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoX1NCXy5QQ0kwLkdQMTkuTkhJMCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9T
Ql8uUENJMC5HUDE5Lk5ISTEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAu
R1AxOS5YSEMyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTkuWEhD
MywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE5LlhIQzMuUkhVQi5Q
UlQyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTkuWEhDNCwgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE5LlhIQzQuUkhVQi5QUlQyLCBE
ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLlJQUk0sIE1ldGhvZE9iaikgICAg
Ly8gMiBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuU1BDSCwgTWV0aG9kT2Jq
KSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0wMDAsIE1ldGhvZE9iaikgICAg
Ly8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMDE3LCBNZXRob2RPYmopICAgIC8vIDYg
QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTAyMCwgTWV0aG9kT2JqKSAgICAvLyA1IEFyZ3Vt
ZW50cwogICAgRXh0ZXJuYWwgKE0wMzcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDQ1
LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTA0NiwgSW50
T2JqKQogICAgRXh0ZXJuYWwgKE0wNDcsIEludE9iaikKICAgIEV4dGVybmFsIChNMDUwLCBE
ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwg
KE0wNTIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDUzLCBEZXZpY2VPYmopCiAgICBF
eHRlcm5hbCAoTTA1NCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTUsIERldmljZU9i
aikKICAgIEV4dGVybmFsIChNMDU2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1Nywg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTgsIERldmljZU9iaikKICAgIEV4dGVybmFs
IChNMDU5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA2MiwgRGV2aWNlT2JqKQogICAg
RXh0ZXJuYWwgKE0wNjgsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDY5LCBEZXZpY2VP
YmopCiAgICBFeHRlcm5hbCAoTTA3MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzEs
IERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDcyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5h
bCAoTTA3NCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzUsIERldmljZU9iaikKICAg
IEV4dGVybmFsIChNMDc2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NywgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKE0wNzgsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc5
LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA4MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKE0wODEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDgyLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTA4MywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODQs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDg1LCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTA4NiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODcsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMDg4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTA4OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTAsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMDkxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5
MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTMsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMDk0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5NSwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMDk3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5OCwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0wOTksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MTAwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwMSwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0xMDIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAzLCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwNCwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0xMDUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA2LCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTEwNywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0xMDgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA5LCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTExMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMTUs
IEJ1ZmZPYmopCiAgICBFeHRlcm5hbCAoTTExNiwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJu
YWwgKE0xMTcsIEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChNMTE4LCBCdWZmRmllbGRP
YmopCiAgICBFeHRlcm5hbCAoTTExOSwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0x
MjAsIEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChNMTIyLCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTEyNywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0xMjgsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMTMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTEzMiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzMsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMTM0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEz
NSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzYsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMjIwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIyMSwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMjYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMjI3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTIyOSwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0yMzEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjMy
LCBNZXRob2RPYmopICAgIC8vIDMgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTIzMywgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMzUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMjNBLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTI0OSwgTWV0aG9kT2Jq
KSAgICAvLyA0IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0yNTEsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMjgwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTI5MCwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yOUEsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMzEwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMxQywgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMzIxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyMiwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0zMjMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI0
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyNSwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0zMjYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI3LCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyOCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0zMjksIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMzJBLCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoTTMyQiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0zMzAsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChNMzMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTM3OCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zNzksIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMzgwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4MSwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODIsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMzgzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4NCwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMzg2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4NywgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0zODgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg5
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM5MCwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0zOTEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzkyLCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQwMSwgTWV0aG9kT2JqKSAgICAvLyAzIEFyZ3Vt
ZW50cwogICAgRXh0ZXJuYWwgKE00MDIsIE1ldGhvZE9iaikgICAgLy8gMyBBcmd1bWVudHMK
ICAgIEV4dGVybmFsIChNNDA0LCBCdWZmT2JqKQogICAgRXh0ZXJuYWwgKE00MDgsIE11dGV4
T2JqKQogICAgRXh0ZXJuYWwgKE00MTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
NDQ0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ0OSwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE00NTMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU0LCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1NSwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE00NTYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU3LCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTQ2MCwgTWV0aG9kT2JqKSAgICAvLyA3IEFyZ3VtZW50
cwogICAgRXh0ZXJuYWwgKE00NzEsIE1ldGhvZE9iaikgICAgLy8gMyBBcmd1bWVudHMKICAg
IEV4dGVybmFsIChNNEMwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTRGMCwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE02MTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNNjIwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTYzMSwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE02NTIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChT
RFNXLCBNZXRob2RPYmopICAgIC8vIDMgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoU0lOSSwg
TWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKFNSRUcsIE1ldGhv
ZE9iaikgICAgLy8gMiBBcmd1bWVudHMKICAgIEV4dGVybmFsIChTU1RBLCBNZXRob2RPYmop
ICAgIC8vIDAgQXJndW1lbnRzCgogICAgU2NvcGUgKFwpCiAgICB7CiAgICAgICAgTmFtZSAo
UDNEMywgMHg1NSkKICAgICAgICBOYW1lIChHMEQzLCAweDA0KQogICAgICAgIE5hbWUgKEcz
RDMsIDB4MDQpCiAgICAgICAgTmFtZSAoUkNSUywgMHg1NSkKICAgICAgICBOYW1lIChHNUQz
LCAweDA0KQogICAgICAgIE5hbWUgKFA0RDMsIDB4MDQpCiAgICAgICAgTmFtZSAoSDBEMywg
MHgwNCkKICAgICAgICBOYW1lIChESU1TLCAweENGKQogICAgICAgIE5hbWUgKERERVAsIDB4
NTUpCiAgICB9CgogICAgU2NvcGUgKFxfU0IpCiAgICB7CiAgICAgICAgTWV0aG9kIChDSzE5
LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gXF9T
Qi5QQ0kwLkdQMTkuUlBSTSAoKFxfU0IuUENJMC5HUDE5LkRBRFIgKyAweDU0KSwgMHgwMikK
ICAgICAgICAgICAgXF9TQi5QQ0kwLkdQMTkuV1BSTSAoKFxfU0IuUENJMC5HUDE5LkRBRFIg
KyAweDU0KSwgMHgwMiwgKExvY2FsMCAmIDB4N0ZGQykpCiAgICAgICAgICAgIExvY2FsMSA9
IFxfU0IuUENJMC5HUDE5LlhIQzIuUlBSTSAoKFxfU0IuUENJMC5HUDE5LlhIQzIuREFEUiAr
IDB4NTQpLCAweDAyKQogICAgICAgICAgICBMb2NhbDEgPSBcX1NCLlBDSTAuR1AxOS5YSEMz
LlJQUk0gKChcX1NCLlBDSTAuR1AxOS5YSEMzLkRBRFIgKyAweDU0KSwgMHgwMikKICAgICAg
ICAgICAgTG9jYWwxID0gXF9TQi5QQ0kwLkdQMTkuWEhDNC5SUFJNICgoXF9TQi5QQ0kwLkdQ
MTkuWEhDNC5EQURSICsgMHg1NCksIDB4MDIpCiAgICAgICAgICAgIExvY2FsMSA9IFxfU0Iu
UENJMC5HUDE5Lk5ISTAuUlBSTSAoKFxfU0IuUENJMC5HUDE5Lk5ISTAuREFEUiArIDB4NTQp
LCAweDAyKQogICAgICAgICAgICBMb2NhbDEgPSBcX1NCLlBDSTAuR1AxOS5OSEkxLlJQUk0g
KChcX1NCLlBDSTAuR1AxOS5OSEkxLkRBRFIgKyAweDU0KSwgMHgwMikKICAgICAgICAgICAg
XF9TQi5QQ0kwLkdQMTkuV1BSTSAoKFxfU0IuUENJMC5HUDE5LkRBRFIgKyAweDU0KSwgMHgw
MiwgKExvY2FsMCAmIDB4N0ZGRikpCiAgICAgICAgICAgIExvY2FsMCA9IFxfU0IuUENJMC5H
UDExLlJQUk0gKChcX1NCLlBDSTAuR1AxMS5EQURSICsgMHg1NCksIDB4MDIpCiAgICAgICAg
ICAgIExvY2FsMCA9IFxfU0IuUENJMC5HUDEyLlJQUk0gKChcX1NCLlBDSTAuR1AxMi5EQURS
ICsgMHg1NCksIDB4MDIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKE9QVFMsIDEsIE5v
dFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVxc
X1NCLk9QVFMgKDB4JVgpIFN0YXJ0XG4iLCBBcmcwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwKQogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLkNLMTcpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBcX1NCLkNLMTcgKCkKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgXF9TQi5DSzE5ICgpCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxf
U0IuT1BUUyAoMHglWCkgRW5kXG4iLCBBcmcwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChPV0FLLCAxLCBOb3RTZXJpYWxpemVk
KQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5PV0FLICgw
eCVYKSBTdGFydFxuIiwgQXJnMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5DSzE3KSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgXF9TQi5DSzE3ICgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFxf
U0IuQ0sxOSAoKQogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVxcX1NCLk9XQUsgKDB4
JVgpIEVuZFxuIiwgQXJnMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5HUDE5KQogICAgewogICAgICAgIE1l
dGhvZCAoWVMwVywgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDAKICAgICAgICAgICAgSWYgKChcUDNEMyAhPSAweDU1KSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTG9jYWwwID0gXFAzRDMKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9TMFcgKCkgIFJl
dHVybiAlZFxuIiwgREFEUiwgTG9jYWwwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoWVBS
VywgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1B
U0wtUENJZSBBZGRyZXNzICgweCVYKS5fUFJXICgpICBSZXR1cm4gUGFja2FnZSAoMikgezB4
MUEsIDB4MDR9XG4iLCBEQURSLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIDB4MUEsIAogICAgICAgICAgICAgICAgMHgwNAogICAgICAgICAgICB9KQogICAg
ICAgIH0KCiAgICAgICAgTmFtZSAoREFEUiwgMHhFRUVFRUVFRSkKICAgICAgICBOYW1lIChE
U1RBLCAweEVFKQogICAgICAgIE5hbWUgKERCVVMsIDB4RUVFRSkKICAgICAgICBOYW1lIChQ
Q1NBLCAweDAwKQogICAgICAgIE5hbWUgKFBXU1QsIDB4RDMpCiAgICAgICAgTmFtZSAoRVNU
QSwgMHhFRSkKICAgICAgICBOYW1lIChFQlVTLCAweEVFRUUpCiAgICAgICAgTWV0aG9kIChS
UFJNLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0g
QXJnMAogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUk0sIFN5c3RlbU1lbW9yeSwg
TG9jYWwwLCAweDA0KQogICAgICAgICAgICBGaWVsZCAoVkFSTSwgQW55QWNjLCBOb0xvY2ss
IFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWQVJSLCAgIDMyCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIExvY2FsMSA9IFZBUlIgLyogXF9TQl8uUENJMC5H
UDE5LlJQUk0uVkFSUiAqLwogICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMSkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweEZGCiAgICAgICAgICAgIH0K
ICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgTG9jYWwxICY9IDB4RkZGRgogICAgICAgICAgICB9CiAgICAgICAgICAg
IEVsc2VJZiAoKEFyZzEgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IExvY2FsMSAmPSAweDAwRkZGRkZGCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAg
KCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5SUFJNICgweCVYIDB4JVgpID0gMHgl
WFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgTG9jYWwxLCAweDAwLCAweDAwKQogICAgICAgICAg
ICBSZXR1cm4gKExvY2FsMSkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoV1BSTSwgMywg
Tm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IEFyZzAKICAg
ICAgICAgICAgSWYgKChBcmcxID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkEsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAx
KQogICAgICAgICAgICAgICAgRmllbGQgKFZBUkEsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2
ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWQVJFLCAgIDgKICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBWQVJFID0gQXJnMgogICAgICAgICAg
ICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSQiwgU3lzdGVtTWVtb3J5LCBM
b2NhbDAsIDB4MDIpCiAgICAgICAgICAgICAgICBGaWVsZCAoVkFSQiwgQW55QWNjLCBOb0xv
Y2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZB
UkYsICAgMTYKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBWQVJGID0gQXJn
MgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMykpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSQywgU3lz
dGVtTWVtb3J5LCBMb2NhbDAsIDB4MDMpCiAgICAgICAgICAgICAgICBGaWVsZCAoVkFSQywg
QW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFZBUkcsICAgMjQKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBWQVJHID0gQXJnMgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJELCBTeXN0ZW1NZW1v
cnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJELCBBbnlBY2Ms
IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgVkFSSCwgICAzMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFZBUkgg
PSBBcmcyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJ
ZSBBZGRyZXNzICgweCVYKS5XUFJNICgweCVYIDB4JVggMHglWClcbiIsIERBRFIsIEFyZzAs
IEFyZzEsIEFyZzIsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNQ
RFAsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDUgPSAw
eDdGRkZGRkZGCiAgICAgICAgICAgIExvY2FsNSB8PSAweDgwMDAwMDAwCiAgICAgICAgICAg
IExvY2FsMiA9IDB4MDAKICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICBX
aGlsZSAoKExvY2FsMCA8PSAweDFGKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
TG9jYWwxID0gMHgwMAogICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDEgPD0gMHgwNykp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gKCgoQXJn
MCA8PCAweDE0KSAmIDB4MEZGMDAwMDApIHwgKChMb2NhbDAgPDwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MEYpICYgMHgwMDBGODAwMCkpCiAgICAgICAgICAgICAgICAgICAgTG9j
YWwzIHw9ICgoTG9jYWwxIDw8IDB4MEMpICYgMHg3MDAwKQogICAgICAgICAgICAgICAgICAg
IExvY2FsNCA9IFJQUk0gKChNMDgzICsgTG9jYWwzKSwgMHgwNCkKICAgICAgICAgICAgICAg
ICAgICBJZiAoKChMb2NhbDQgIT0gTG9jYWw1KSAmJiAoTG9jYWw0ICE9IDB4MDApKSkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiB8PSAo
MHgwMSA8PCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgIEVsc2VJZiAoKExvY2FsMSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBMb2NhbDErKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9F
TS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5TUERQICgweCVYKSA9IDB4JVhcbiIsIERBRFIs
IEFyZzAsIExvY2FsMiwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChM
b2NhbDIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNQQ0gsIDIsIE5vdFNlcmlhbGl6
ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgIExv
Y2FsMSA9IFJQUk0gKChBcmcwICsgMHgzNCksIDB4MDEpCiAgICAgICAgICAgIFdoaWxlICgo
TG9jYWwxICE9IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDIg
PSBSUFJNICgoREFEUiArIExvY2FsMSksIDB4MDEpCiAgICAgICAgICAgICAgICBJZiAoKChM
b2NhbDIgPT0gMHgwMCkgfHwgKExvY2FsMiA9PSAweEZGKSkpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBJZiAoKExvY2FsMiA9PSBBcmcxKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICBCcmVh
awogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChE
QURSICsgKExvY2FsMSArIDB4MDEpKSwgMHgwMSkKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlNQQ0ggKDB4JVgsIDB4
JVgpID0gMHglWFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgTG9jYWwwLCAweDAwLCAweDAwKQog
ICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo
X1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgIHsKICAgICAg
ICAgICAgSWYgKCgoRFNUQSA9PSAweEVFKSB8fCAoRVNUQSA9PSAweEVFKSkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIElmICgoREJVUyA9PSAweEVFRUUpKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKF5eRUJVUykpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEQlVTID0gXl5F
QlVTIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBEQlVTID0gMHgwMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKERCVVMgIT0gMHhFRUVFKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKERBRFIgPT0gMHhFRUVF
RUVFRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSAoKChfQURSIDw8IDB4MEMpICYgMHg3MDAwKSB8ICgoX0FEUiA+PiAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDEpICYgMHgwMDBGODAwMCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMCB8PSAoKERCVVMgPDwgMHgxNCkgJiAweDBGRjAwMDAwKQog
ICAgICAgICAgICAgICAgICAgICAgICBEQURSID0gKE0wODMgKyBMb2NhbDApCiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDdGRkZGRkZG
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMDAwMDAKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIDB4MDApLCAweDA0KQogICAgICAgICAg
ICAgICAgICAgIElmICgoKExvY2FsMSA9PSBMb2NhbDApIHx8IChMb2NhbDEgPT0gMHgwMCkp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9
IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChEQlVTICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBeXlNQQ0ggKF5eREFE
UiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKF5eUlBSTSAoKF5e
REFEUiArIChMb2NhbDIgKyAweDE0KSksIDB4MDEpICYgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHg0MCkgPT0gMHg0MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFJQUk0gKChEQURSICsgMHgw
QSksIDB4MDIpID09IDB4MDYwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBFQlVTID0gUlBSTSAoKERBRFIgKyAweDE5KSwgMHgwMSkKICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWwyID0gU1BDSCAoREFEUiwgMHgxMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgSWYgKCgoKFJQUk0gKChEQURSICsgKExvY2FsMiArIDB4MDIpKSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxKSA+PiAweDA0KSAmIDB4MEYpID09
IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoU1BE
UCAoRUJVUykgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAw
eDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MEYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgoUlBSTSAoKERBRFIgKyAoTG9jYWwyICsg
MHgxQSkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEpICYgMHg0MCkgPT0g
MHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElmICgoKFJQUk0gKChEQURSICsgKExvY2FsMiArIDB4MTQpKSwgMHgwMSkgJiAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwKSA9PSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAw
eDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJ
ZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAg
ICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhF
RQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChQ
Q1NBID09IDB4MDEpICYmIChQV1NUID09IDB4RDMpKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgUFdTVCA9IDB4RDAKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgo
UENTQSA9PSAweDAwKSAmJiAoUFdTVCA9PSAweEQwKSkpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFBXU1QgPSAweEQzCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChD
b25kUmVmT2YgKFNTVEEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTU1RBICgp
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRy
ZXNzICgweCVYKS5fU1RBID0gMHglWCAgUFdTVCA9IDB4JVggIERCVVMgPSAweCVYICBFU1RB
ID0gMHglWCAgRUJVUyA9IDB4JVhcbiIsIERBRFIsIERTVEEsIFBXU1QsIERCVVMsIEVTVEEs
IEVCVVMpCiAgICAgICAgICAgIFJldHVybiAoRFNUQSkgLyogXF9TQl8uUENJMC5HUDE5LkRT
VEEgKi8KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgU2VyaWFsaXplZCkg
IC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IDB4
N0ZGRkZGRkYKICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMDAwMDAKICAgICAgICAgICAg
TG9jYWwxID0gUlBSTSAoKERBRFIgKyAweDAwKSwgMHgwNCkKICAgICAgICAgICAgSWYgKCgo
TG9jYWwxID09IExvY2FsMCkgfHwgKExvY2FsMSA9PSAweDAwKSkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIFBDU0EgPSAweDAwCiAgICAgICAgICAgICAgICBQV1NUID0gMHhE
MwogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgUENTQSA9IDB4MDEKICAgICAgICAgICAgICAgIFBXU1QgPSAweEQwCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgw
eCVYKS5fSU5JICBQQ1NBID0gMHglWCAgUFdTVCA9IDB4JVhcbiIsIERBRFIsIFBDU0EsIFBX
U1QsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFNJTkkp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTSU5JICgpCiAgICAgICAgICAgIH0K
ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1JFRywgMiwgU2VyaWFsaXplZCkgIC8vIF9S
RUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoKEFy
ZzAgPT0gMHgwMikgJiYgKEFyZzEgPT0gMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBJZiAoKERTVEEgPT0gMHgwRikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgSWYgKCgoUlBSTSAoKERBRFIgKyAweDA0KSwgMHgwMSkgJiAweEZDKSA9
PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IFBDU0EgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChBcmcwID09IDB4MDIpICYmIChBcmcx
ID09IDB4MDApKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUENTQSA9IDB4MDAK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoU1JFRykpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIFNSRUcgKEFyZzAsIEFyZzEpCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5f
UkVHICglZCAlZCkgIFBDU0EgPSAlZFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgUENTQSwgMHgw
MCwgMHgwMCkKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5HUDE5LlhI
QzIpCiAgICB7CiAgICAgICAgTWV0aG9kIChfUzBXLCAwLCBTZXJpYWxpemVkKSAgLy8gX1Mw
VzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9
IDB4MDAKICAgICAgICAgICAgSWYgKChcRzBEMyAhPSAweDU1KSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTG9jYWwwID0gXEcwRDMKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9TMFcgKCkgIFJldHVy
biAlZFxuIiwgREFEUiwgTG9jYWwwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAg
ICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BSVywg
MCwgU2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAg
ICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgp
Ll9QUlcgKCkgIFJldHVybiBQYWNrYWdlICgyKSB7MHgxQSwgMHgwNH1cbiIsIERBRFIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoUGFja2Fn
ZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgxQSwgCiAgICAgICAg
ICAgICAgICAweDA0CiAgICAgICAgICAgIH0pCiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg
KFNSRUcsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNG
MDApCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDE5LlhIQzIu
X1JFRyAoJWQgJWQpXG4iLCBBcmcwLCBBcmcxLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQog
ICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQUFMwLCAwLCBTZXJpYWxpemVkKQogICAgICAg
IHsKICAgICAgICAgICAgTTAwMCAoMHgzRjAxKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k
IChQUFMzLCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgz
RjAzKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQU1RBLCAwLCBTZXJpYWxpemVkKQog
ICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzRjA1KQogICAgICAgIH0KCiAgICAgICAg
TWV0aG9kIChQX09OLCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTAw
MCAoMHgzRjA2KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQX09GLCAwLCBTZXJpYWxp
emVkKQogICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzRjA4KQogICAgICAgIH0KCiAg
ICAgICAgTmFtZSAoREFEUiwgMHhFRUVFRUVFRSkKICAgICAgICBOYW1lIChEU1RBLCAweEVF
KQogICAgICAgIE5hbWUgKERCVVMsIDB4RUVFRSkKICAgICAgICBOYW1lIChQQ1NBLCAweDAw
KQogICAgICAgIE5hbWUgKFBXU1QsIDB4RDMpCiAgICAgICAgTmFtZSAoRVNUQSwgMHhFRSkK
ICAgICAgICBOYW1lIChFQlVTLCAweEVFRUUpCiAgICAgICAgTmFtZSAoUFczUywgMHgwMCkK
ICAgICAgICBNZXRob2QgKFJQUk0sIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAg
ICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFS
TSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChWQVJN
LCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFZBUlIsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwxID0gVkFS
UiAvKiBcX1NCXy5QQ0kwLkdQMTkuWEhDMi5SUFJNLlZBUlIgKi8KICAgICAgICAgICAgSWYg
KChBcmcxID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEg
Jj0gMHhGRgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgw
MikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweEZGRkYKICAg
ICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDMpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHgwMEZGRkZGRgogICAgICAgICAg
ICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCku
UlBSTSAoMHglWCAweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEsIExvY2FsMSwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgfQoKICAg
ICAgICBNZXRob2QgKFdQUk0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg
ICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAxKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJBLCBTeXN0
ZW1NZW1vcnksIExvY2FsMCwgMHgwMSkKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJBLCBB
bnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgVkFSRSwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
VkFSRSA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09
IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24g
KFZBUkIsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAyKQogICAgICAgICAgICAgICAgRmll
bGQgKFZBUkIsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBWQVJGLCAgIDE2CiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgVkFSRiA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNl
SWYgKChBcmcxID09IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVy
YXRpb25SZWdpb24gKFZBUkMsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAzKQogICAgICAg
ICAgICAgICAgRmllbGQgKFZBUkMsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWQVJHLCAgIDI0CiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgVkFSRyA9IEFyZzIKICAgICAgICAgICAgfQogICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJl
Z2lvbiAoVkFSRCwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAg
ICBGaWVsZCAoVkFSRCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFZBUkgsICAgMzIKICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBWQVJIID0gQXJnMgogICAgICAgICAgICB9CgogICAgICAgICAg
ICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuV1BSTSAoMHglWCAweCVY
IDB4JVgpXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBBcmcyLCAweDAwLCAweDAwKQogICAgICAg
IH0KCiAgICAgICAgTWV0aG9kIChTUERQLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsK
ICAgICAgICAgICAgTG9jYWw1ID0gMHg3RkZGRkZGRgogICAgICAgICAgICBMb2NhbDUgfD0g
MHg4MDAwMDAwMAogICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDAKICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPD0gMHgxRikpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgIFdo
aWxlICgoTG9jYWwxIDw9IDB4MDcpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIExvY2FsMyA9ICgoKEFyZzAgPDwgMHgxNCkgJiAweDBGRjAwMDAwKSB8ICgoTG9j
YWwwIDw8IAogICAgICAgICAgICAgICAgICAgICAgICAweDBGKSAmIDB4MDAwRjgwMDApKQog
ICAgICAgICAgICAgICAgICAgIExvY2FsMyB8PSAoKExvY2FsMSA8PCAweDBDKSAmIDB4NzAw
MCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBSUFJNICgoTTA4MyArIExvY2FsMyks
IDB4MDQpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw0ICE9IExvY2FsNSkgJiYg
KExvY2FsNCAhPSAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDIgfD0gKDB4MDEgPDwgTG9jYWwwKQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxKysKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuU1BEUCAo
MHglWCkgPSAweCVYXG4iLCBEQURSLCBBcmcwLCBMb2NhbDIsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgIFJldHVybiAoTG9jYWwyKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k
IChTUENILCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWww
ID0gMHgwMAogICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoQXJnMCArIDB4MzQpLCAweDAx
KQogICAgICAgICAgICBXaGlsZSAoKExvY2FsMSAhPSAweDAwKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTG9jYWwyID0gUlBSTSAoKERBRFIgKyBMb2NhbDEpLCAweDAxKQog
ICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwyID09IDB4MDApIHx8IChMb2NhbDIgPT0gMHhG
RikpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gQXJnMSkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwxCiAg
ICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIChMb2NhbDEgKyAweDAxKSksIDB4MDEpCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNz
ICgweCVYKS5TUENIICgweCVYLCAweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEs
IExvY2FsMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAg
ICAgfQoKICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBT
dGF0dXMKICAgICAgICB7CiAgICAgICAgICAgIElmICgoKERTVEEgPT0gMHhFRSkgfHwgKEVT
VEEgPT0gMHhFRSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERCVVMg
PT0gMHhFRUVFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo
Q29uZFJlZk9mICheXkVCVVMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgREJVUyA9IF5eRUJVUyAvKiBcX1NCXy5QQ0kwLkdQMTkuRUJVUyAqLwog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEQlVTID0gMHgwMAogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ
ZiAoKERCVVMgIT0gMHhFRUVFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBJZiAoKERBRFIgPT0gMHhFRUVFRUVFRSkpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoKChfQURSIDw8IDB4MEMpICYgMHg3
MDAwKSB8ICgoX0FEUiA+PiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEpICYg
MHgwMDBGODAwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAoKERCVVMg
PDwgMHgxNCkgJiAweDBGRjAwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICBEQURSID0g
KE0wODMgKyBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAweDdGRkZGRkZGCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9
IDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiAr
IDB4MDApLCAweDA0KQogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSA9PSBMb2Nh
bDApIHx8IChMb2NhbDEgPT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAg
RVNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEQlVTICE9IDB4MDAp
KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDIgPSBeXlNQQ0ggKF5eREFEUiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElmICgoKF5eUlBSTSAoKF5eREFEUiArIChMb2NhbDIgKyAweDE0KSksIDB4MDEp
ICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCkgPT0gMHg0MCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RB
ID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs
c2VJZiAoKFJQUk0gKChEQURSICsgMHgwQSksIDB4MDIpID09IDB4MDYwNCkpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBFQlVTID0gUlBSTSAoKERB
RFIgKyAweDE5KSwgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gU1BD
SCAoREFEUiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoKFJQUk0gKChE
QURSICsgKExvY2FsMiArIDB4MDIpKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDAxKSA+PiAweDA0KSAmIDB4MEYpID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVCVVMgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RB
ID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRWxzZUlmICgoU1BEUCAoRUJVUykgPT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNU
QSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRVNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgo
UlBSTSAoKERBRFIgKyAoTG9jYWwyICsgMHgxQSkpLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDEpICYgMHg0MCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURSICsgKExv
Y2FsMiArIDB4MTQpKSwgMHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDQwKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4
MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBG
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweDBGCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNU
QSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAg
ICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAxKSAmJiAoUFdTVCA9PSAweEQz
KSkgJiYgKFBXM1MgPT0gMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQ
V1NUID0gMHhEMAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAw
eDAwKSAmJiAoUFdTVCA9PSAweEQwKSkgJiYgKFBXM1MgPT0gMHgwMCkpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBQV1NUID0gMHhEMwogICAgICAgICAgICB9CgogICAgICAg
ICAgICBJZiAoQ29uZFJlZk9mIChTU1RBKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgU1NUQSAoKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNM
LVBDSWUgQWRkcmVzcyAoMHglWCkuX1NUQSA9IDB4JVggIFBXU1QgPSAweCVYICBEQlVTID0g
MHglWCAgRVNUQSA9IDB4JVggIEVCVVMgPSAweCVYXG4iLCBEQURSLCBEU1RBLCBQV1NULCBE
QlVTLCBFU1RBLCBFQlVTKQogICAgICAgICAgICBSZXR1cm4gKERTVEEpIC8qIFxfU0JfLlBD
STAuR1AxOS5YSEMyLkRTVEEgKi8KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0lOSSwg
MCwgU2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICB7CiAgICAgICAg
ICAgIExvY2FsMCA9IDB4N0ZGRkZGRkYKICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMDAw
MDAKICAgICAgICAgICAgTG9jYWwxID0gUlBSTSAoKERBRFIgKyAweDAwKSwgMHgwNCkKICAg
ICAgICAgICAgSWYgKCgoTG9jYWwxID09IExvY2FsMCkgfHwgKExvY2FsMSA9PSAweDAwKSkp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBDU0EgPSAweDAwCiAgICAgICAgICAg
ICAgICBQV1NUID0gMHhEMwogICAgICAgICAgICAgICAgUFczUyA9IDB4MDAKICAgICAgICAg
ICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBD
U0EgPSAweDAxCiAgICAgICAgICAgICAgICBQV1NUID0gMHhEMAogICAgICAgICAgICAgICAg
UFczUyA9IDB4MDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFT
TC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9JTkkgIFBDU0EgPSAweCVYICBQV1NUID0gMHglWCAg
UFczUyA9IDB4JVhcbiIsIERBRFIsIFBDU0EsIFBXU1QsIFBXM1MsIDB4MDAsIDB4MDApCiAg
ICAgICAgICAgIElmIChDb25kUmVmT2YgKFNJTkkpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBTSU5JICgpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhv
ZCAoX1JFRywgMiwgU2VyaWFsaXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkK
ICAgICAgICB7CiAgICAgICAgICAgIElmICgoKEFyZzAgPT0gMHgwMikgJiYgKEFyZzEgPT0g
MHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERTVEEgPT0gMHgw
RikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoUlBSTSAo
KERBRFIgKyAweDA0KSwgMHgwMSkgJiAweEZDKSA9PSAweDA0KSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBDU0EgPSAweDAxCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBJZiAoKChBcmcwID09IDB4MDIpICYmIChBcmcxID09IDB4MDApKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgUENTQSA9IDB4MDAKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgSWYgKENvbmRSZWZPZiAoU1JFRykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IFNSRUcgKEFyZzAsIEFyZzEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIg
IE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUkVHICglZCAlZCkgIFBDU0EgPSAlZFxu
IiwgREFEUiwgQXJnMCwgQXJnMSwgUENTQSwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAg
ICAgIE1ldGhvZCAoX0RTVywgMywgU2VyaWFsaXplZCkgIC8vIF9EU1c6IERldmljZSBTbGVl
cCBXYWtlCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChTRFNXKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgU0RTVyAoQXJnMCwgQXJnMSwgQXJnMikKICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3Mg
KDB4JVgpLl9EU1cgKCVkICVkICVkKSAgUENTQSA9ICVkXG4iLCBEQURSLCBBcmcwLCBBcmcx
LCBBcmcyLCBQQ1NBLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUFMwLCAw
LCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgIHsKICAgICAg
ICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9QUzBcbiIsIERB
RFIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmIChDb25k
UmVmT2YgKFBQUzApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQUFMwICgpCiAg
ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFs
aXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICB7CiAgICAgICAgICAgIE00
NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUFMzXG4iLCBEQURSLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQ
UFMzKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFBTMyAoKQogICAgICAgICAg
ICB9CiAgICAgICAgfQoKICAgICAgICBQb3dlclJlc291cmNlIChQV1JTLCAweDAwLCAweDAw
MDApCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQp
ICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAo
IiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX1NUQSA9IDB4JVhcbiIsIERB
RFIsIFBXM1MsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBJZiAo
Q29uZFJlZk9mIChQU1RBKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBQU1RBICgpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQ
VzNTKSAvKiBcX1NCXy5QQ0kwLkdQMTkuWEhDMi5QVzNTICovCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIg
T24KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChQVzNTID09IDB4MDApKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBXM1MgPSAweDAxCiAgICAg
ICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBX
UlMuX09OID0gMHglWFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQX09OKSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBfT04gKCkKICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE1ldGhvZCAoX09GRiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBXM1MgPT0gMHgwMSkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUFczUyA9IDB4MDAKICAgICAgICAgICAg
ICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT0ZG
ID0gMHglWFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQX09GKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBfT0YgKCkKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAg
IE5hbWUgKF9QUjAsIFBhY2thZ2UgKDB4MDEpICAvLyBfUFIwOiBQb3dlciBSZXNvdXJjZXMg
Zm9yIEQwCiAgICAgICAgewogICAgICAgICAgICBQV1JTCiAgICAgICAgfSkKICAgICAgICBO
YW1lIChfUFIzLCBQYWNrYWdlICgweDAxKSAgLy8gX1BSMzogUG93ZXIgUmVzb3VyY2VzIGZv
ciBEM2hvdAogICAgICAgIHsKICAgICAgICAgICAgUFdSUwogICAgICAgIH0pCiAgICB9Cgog
ICAgU2NvcGUgKFxfU0IuUENJMC5HUDE5LlhIQzMpCiAgICB7CiAgICAgICAgTWV0aG9kIChf
UzBXLCAwLCBTZXJpYWxpemVkKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAg
ICAgICB7CiAgICAgICAgICAgIE0wMDAgKDB4M0YzNCkKICAgICAgICAgICAgTG9jYWwwID0g
MHgwMAogICAgICAgICAgICBJZiAoKFxHM0QzICE9IDB4NTUpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBMb2NhbDAgPSBcRzNEMwogICAgICAgICAgICB9CgogICAgICAgICAg
ICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1MwVyAoKSAgUmV0dXJu
ICVkXG4iLCBEQURSLCBMb2NhbDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUFJXLCAw
LCBTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAg
ICAgewogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCku
X1BSVyAoKSAgUmV0dXJuIFBhY2thZ2UgKDIpIHsweDFBLCAweDA0fVxuIiwgREFEUiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl
ICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDFBLCAKICAgICAgICAg
ICAgICAgIDB4MDMKICAgICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo
U1NUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIE9F
TS1BU0wtXFxfU0IuUENJMC5HUDE5LlhIQzMuX1NUQSAoKVxuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoU1JFRywg
MiwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE0wMDAgKDB4M0YzMCkKICAg
ICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTkuWEhDMy5fUkVHICgl
ZCAlZClcbiIsIEFyZzAsIEFyZzEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
fQoKICAgICAgICBNZXRob2QgKFBQUzAsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAg
ICAgICAgICBNMDAwICgweDNGMzEpCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxf
U0IuUENJMC5HUDE5LlhIQzMuX1BTMCAoKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoUFBTMywgMCwgU2VyaWFs
aXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE0wMDAgKDB4M0YzMykKICAgICAgICAgICAg
SWYgKChDb25kUmVmT2YgKFxfU0IuUENJMC5HUDExLlBDU0EpICYmIENvbmRSZWZPZiAoXF9T
Qi5QQ0kwLkdQMTkuTkhJMC5QQ1NBKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IE00NjAgKCIgICAgR1AxMS5QQ1NBID0gJWQgIFhIQzMuUENTQSA9ICVkICBOSEkwLlBDU0Eg
PSAlZFxuIiwgXF9TQi5QQ0kwLkdQMTEuUENTQSwgXF9TQi5QQ0kwLkdQMTkuWEhDMy5QQ1NB
LCBcX1NCLlBDSTAuR1AxOS5OSEkwLlBDU0EsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDE5LlhI
QzMuX1BTMyAoKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICB9CgogICAgICAgIE1ldGhvZCAoUFNUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7
CiAgICAgICAgICAgIE0wMDAgKDB4M0YzNSkKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFT
TC1cXF9TQi5QQ0kwLkdQMTkuWEhDMy5QV1JTLl9TVEEgKClcbiIsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBfT04s
IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNGMzYpCiAg
ICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDE5LlhIQzMuUFdSUy5f
T04gKClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
fQoKICAgICAgICBNZXRob2QgKFBfT0YsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAg
ICAgICAgICBNMDAwICgweDNGMzgpCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxf
U0IuUENJMC5HUDE5LlhIQzMuUFdSUy5fT0ZGICgpXG4iLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTmFtZSAoREFEUiwgMHhFRUVF
RUVFRSkKICAgICAgICBOYW1lIChEU1RBLCAweEVFKQogICAgICAgIE5hbWUgKERCVVMsIDB4
RUVFRSkKICAgICAgICBOYW1lIChQQ1NBLCAweDAwKQogICAgICAgIE5hbWUgKFBXU1QsIDB4
RDMpCiAgICAgICAgTmFtZSAoRVNUQSwgMHhFRSkKICAgICAgICBOYW1lIChFQlVTLCAweEVF
RUUpCiAgICAgICAgTmFtZSAoUFczUywgMHgwMCkKICAgICAgICBNZXRob2QgKFJQUk0sIDIs
IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBBcmcwCiAg
ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAs
IDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChWQVJNLCBBbnlBY2MsIE5vTG9jaywgUHJlc2Vy
dmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZBUlIsICAgMzIKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTG9jYWwxID0gVkFSUiAvKiBcX1NCXy5QQ0kwLkdQMTkuWEhD
My5SUFJNLlZBUlIgKi8KICAgICAgICAgICAgSWYgKChBcmcxID09IDB4MDEpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHhGRgogICAgICAgICAgICB9CiAg
ICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIExvY2FsMSAmPSAweEZGRkYKICAgICAgICAgICAgfQogICAgICAgICAgICBF
bHNlSWYgKChBcmcxID09IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBM
b2NhbDEgJj0gMHgwMEZGRkZGRgogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgi
ICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUlBSTSAoMHglWCAweCVYKSA9IDB4JVhc
biIsIERBRFIsIEFyZzAsIEFyZzEsIExvY2FsMSwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
UmV0dXJuIChMb2NhbDEpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFdQUk0sIDMsIE5v
dFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAg
ICAgICAgIElmICgoQXJnMSA9PSAweDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgT3BlcmF0aW9uUmVnaW9uIChWQVJBLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMSkK
ICAgICAgICAgICAgICAgIEZpZWxkIChWQVJBLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkFSRSwgICA4CiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgVkFSRSA9IEFyZzIKICAgICAgICAgICAg
fQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDIpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkIsIFN5c3RlbU1lbW9yeSwgTG9j
YWwwLCAweDAyKQogICAgICAgICAgICAgICAgRmllbGQgKFZBUkIsIEFueUFjYywgTm9Mb2Nr
LCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWQVJG
LCAgIDE2CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgVkFSRiA9IEFyZzIK
ICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDMpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkMsIFN5c3Rl
bU1lbW9yeSwgTG9jYWwwLCAweDAzKQogICAgICAgICAgICAgICAgRmllbGQgKFZBUkMsIEFu
eUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBWQVJHLCAgIDI0CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
VkFSRyA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSRCwgU3lzdGVtTWVtb3J5
LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAgICBGaWVsZCAoVkFSRCwgQW55QWNjLCBO
b0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFZBUkgsICAgMzIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBWQVJIID0g
QXJnMgogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUg
QWRkcmVzcyAoMHglWCkuV1BSTSAoMHglWCAweCVYIDB4JVgpXG4iLCBEQURSLCBBcmcwLCBB
cmcxLCBBcmcyLCAweDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChTUERQ
LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWw1ID0gMHg3
RkZGRkZGRgogICAgICAgICAgICBMb2NhbDUgfD0gMHg4MDAwMDAwMAogICAgICAgICAgICBM
b2NhbDIgPSAweDAwCiAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgV2hp
bGUgKChMb2NhbDAgPD0gMHgxRikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExv
Y2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwxIDw9IDB4MDcpKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMyA9ICgoKEFyZzAg
PDwgMHgxNCkgJiAweDBGRjAwMDAwKSB8ICgoTG9jYWwwIDw8IAogICAgICAgICAgICAgICAg
ICAgICAgICAweDBGKSAmIDB4MDAwRjgwMDApKQogICAgICAgICAgICAgICAgICAgIExvY2Fs
MyB8PSAoKExvY2FsMSA8PCAweDBDKSAmIDB4NzAwMCkKICAgICAgICAgICAgICAgICAgICBM
b2NhbDQgPSBSUFJNICgoTTA4MyArIExvY2FsMyksIDB4MDQpCiAgICAgICAgICAgICAgICAg
ICAgSWYgKCgoTG9jYWw0ICE9IExvY2FsNSkgJiYgKExvY2FsNCAhPSAweDAwKSkpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgfD0gKDB4
MDEgPDwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICBFbHNlSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwxKysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBMb2NhbDArKwogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0t
QVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuU1BEUCAoMHglWCkgPSAweCVYXG4iLCBEQURSLCBB
cmcwLCBMb2NhbDIsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoTG9j
YWwyKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChTUENILCAyLCBOb3RTZXJpYWxpemVk
KQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICBMb2Nh
bDEgPSBSUFJNICgoQXJnMCArIDB4MzQpLCAweDAxKQogICAgICAgICAgICBXaGlsZSAoKExv
Y2FsMSAhPSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwyID0g
UlBSTSAoKERBRFIgKyBMb2NhbDEpLCAweDAxKQogICAgICAgICAgICAgICAgSWYgKCgoTG9j
YWwyID09IDB4MDApIHx8IChMb2NhbDIgPT0gMHhGRikpKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDIgPT0gQXJnMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwxCiAgICAgICAgICAgICAgICAgICAgQnJlYWsK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFE
UiArIChMb2NhbDEgKyAweDAxKSksIDB4MDEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5TUENIICgweCVYLCAweCVY
KSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEsIExvY2FsMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9T
VEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICB7CiAgICAgICAg
ICAgIElmICgoKERTVEEgPT0gMHhFRSkgfHwgKEVTVEEgPT0gMHhFRSkpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBJZiAoKERCVVMgPT0gMHhFRUVFKSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mICheXkVCVVMpKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgREJVUyA9IF5eRUJV
UyAvKiBcX1NCXy5QQ0kwLkdQMTkuRUJVUyAqLwogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBEQlVTID0gMHgwMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKERCVVMgIT0gMHhFRUVFKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKERBRFIgPT0gMHhFRUVF
RUVFRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSAoKChfQURSIDw8IDB4MEMpICYgMHg3MDAwKSB8ICgoX0FEUiA+PiAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDEpICYgMHgwMDBGODAwMCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMCB8PSAoKERCVVMgPDwgMHgxNCkgJiAweDBGRjAwMDAwKQog
ICAgICAgICAgICAgICAgICAgICAgICBEQURSID0gKE0wODMgKyBMb2NhbDApCiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDdGRkZGRkZG
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMDAwMDAKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIDB4MDApLCAweDA0KQogICAgICAgICAg
ICAgICAgICAgIElmICgoKExvY2FsMSA9PSBMb2NhbDApIHx8IChMb2NhbDEgPT0gMHgwMCkp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9
IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChEQlVTICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBeXlNQQ0ggKF5eREFE
UiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKF5eUlBSTSAoKF5e
REFEUiArIChMb2NhbDIgKyAweDE0KSksIDB4MDEpICYgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHg0MCkgPT0gMHg0MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFJQUk0gKChEQURSICsgMHgw
QSksIDB4MDIpID09IDB4MDYwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBFQlVTID0gUlBSTSAoKERBRFIgKyAweDE5KSwgMHgwMSkKICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWwyID0gU1BDSCAoREFEUiwgMHgxMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgSWYgKCgoKFJQUk0gKChEQURSICsgKExvY2FsMiArIDB4MDIpKSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxKSA+PiAweDA0KSAmIDB4MEYpID09
IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoU1BE
UCAoRUJVUykgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAw
eDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MEYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgoUlBSTSAoKERBRFIgKyAoTG9jYWwyICsg
MHgxQSkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEpICYgMHg0MCkgPT0g
MHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElmICgoKFJQUk0gKChEQURSICsgKExvY2FsMiArIDB4MTQpKSwgMHgwMSkgJiAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwKSA9PSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAw
eDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJ
ZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAg
ICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhF
RQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKCgo
UENTQSA9PSAweDAxKSAmJiAoUFdTVCA9PSAweEQzKSkgJiYgKFBXM1MgPT0gMHgwMSkpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQV1NUID0gMHhEMAogICAgICAgICAgICB9
CgogICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAwKSAmJiAoUFdTVCA9PSAweEQwKSkg
JiYgKFBXM1MgPT0gMHgwMCkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQV1NU
ID0gMHhEMwogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChTU1RB
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU1NUQSAoKQogICAgICAgICAgICB9
CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1NU
QSA9IDB4JVggIFBXU1QgPSAweCVYICBEQlVTID0gMHglWCAgRVNUQSA9IDB4JVggIEVCVVMg
PSAweCVYXG4iLCBEQURSLCBEU1RBLCBQV1NULCBEQlVTLCBFU1RBLCBFQlVTKQogICAgICAg
ICAgICBSZXR1cm4gKERTVEEpIC8qIFxfU0JfLlBDSTAuR1AxOS5YSEMzLkRTVEEgKi8KICAg
ICAgICB9CgogICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgU2VyaWFsaXplZCkgIC8vIF9JTkk6
IEluaXRpYWxpemUKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IDB4N0ZGRkZGRkYK
ICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMDAwMDAKICAgICAgICAgICAgTG9jYWwxID0g
UlBSTSAoKERBRFIgKyAweDAwKSwgMHgwNCkKICAgICAgICAgICAgSWYgKCgoTG9jYWwxID09
IExvY2FsMCkgfHwgKExvY2FsMSA9PSAweDAwKSkpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIFBDU0EgPSAweDAwCiAgICAgICAgICAgICAgICBQV1NUID0gMHhEMwogICAgICAg
ICAgICAgICAgUFczUyA9IDB4MDAKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBDU0EgPSAweDAxCiAgICAgICAgICAgICAg
ICBQV1NUID0gMHhEMAogICAgICAgICAgICAgICAgUFczUyA9IDB4MDEKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9J
TkkgIFBDU0EgPSAweCVYICBQV1NUID0gMHglWCAgUFczUyA9IDB4JVhcbiIsIERBRFIsIFBD
U0EsIFBXU1QsIFBXM1MsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmIChDb25kUmVmT2Yg
KFNJTkkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTSU5JICgpCiAgICAgICAg
ICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1JFRywgMiwgU2VyaWFsaXplZCkg
IC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkKICAgICAgICB7CiAgICAgICAgICAgIElm
ICgoKEFyZzAgPT0gMHgwMikgJiYgKEFyZzEgPT0gMHgwMSkpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoKERTVEEgPT0gMHgwRikpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgSWYgKCgoUlBSTSAoKERBRFIgKyAweDA0KSwgMHgwMSkgJiAw
eEZDKSA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIFBDU0EgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChBcmcwID09IDB4MDIpICYm
IChBcmcxID09IDB4MDApKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUENTQSA9
IDB4MDAKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoU1JFRykp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNSRUcgKEFyZzAsIEFyZzEpCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgw
eCVYKS5fUkVHICglZCAlZCkgIFBDU0EgPSAlZFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgUENT
QSwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0RTVywgMywgU2Vy
aWFsaXplZCkgIC8vIF9EU1c6IERldmljZSBTbGVlcCBXYWtlCiAgICAgICAgewogICAgICAg
ICAgICBJZiAoQ29uZFJlZk9mIChTRFNXKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgU0RTVyAoQXJnMCwgQXJnMSwgQXJnMikKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9EU1cgKCVkICVkICVkKSAg
UENTQSA9ICVkXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBBcmcyLCBQQ1NBLCAweDAwKQogICAg
ICAgIH0KCiAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDog
UG93ZXIgU3RhdGUgMAogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1Q
Q0llIEFkZHJlc3MgKDB4JVgpLl9QUzBcbiIsIERBRFIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDApCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzApKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBQUFMwICgpCiAgICAgICAgICAgIH0KICAgICAgICB9Cgog
ICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0
YXRlIDMKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRy
ZXNzICgweCVYKS5fUFMzXG4iLCBEQURSLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMzKSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgUFBTMyAoKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBQ
b3dlclJlc291cmNlIChQV1JTLCAweDAwLCAweDAwMDApCiAgICAgICAgewogICAgICAgICAg
ICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3Mg
KDB4JVgpLlBXUlMuX1NUQSA9IDB4JVhcbiIsIERBRFIsIFBXM1MsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDApCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQU1RBKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQU1RBICgpCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQVzNTKSAvKiBcX1NCXy5QQ0kwLkdQMTku
WEhDMy5QVzNTICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX09OLCAw
LCBTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgSWYgKChQVzNTID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIFBXM1MgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAg
T0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX09OID0gMHglWFxuIiwgREFEUiwg
UFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBJZiAo
Q29uZFJlZk9mIChQX09OKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIFBfT04gKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX09GRiwgMCwgU2VyaWFs
aXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBJZiAoKFBXM1MgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUFczUyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0tQVNM
LVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT0ZGID0gMHglWFxuIiwgREFEUiwgUFczUywg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl
Zk9mIChQX09GKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIFBfT0YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE5hbWUgKF9QUjAsIFBhY2thZ2UgKDB4
MDEpICAvLyBfUFIwOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQwCiAgICAgICAgewogICAgICAg
ICAgICBQV1JTCiAgICAgICAgfSkKICAgICAgICBOYW1lIChfUFIzLCBQYWNrYWdlICgweDAx
KSAgLy8gX1BSMzogUG93ZXIgUmVzb3VyY2VzIGZvciBEM2hvdAogICAgICAgIHsKICAgICAg
ICAgICAgUFdSUwogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5HUDE5
LlhIQzMuUkhVQi5QUlQyKQogICAgewogICAgICAgIE1ldGhvZCAoX0RFUCwgMCwgU2VyaWFs
aXplZCkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgIHsKICAgICAgICAgICAgSWYg
KChNMDQ2ID09IDB4QUEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAg
PSBNMDQ1ICgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKChcRERFUCA9PSAw
eDAxKSAmJiBDb25kUmVmT2YgKFxfU0IuUENJMC5HUDE5LlhIQzMuUkhVQi5QUlQyLl9EU0Qp
KSAmJiAoQ29uZFJlZk9mIChcX1NCLlBDSTAuR1AxOS5OSEkwCiAgICAgICAgICAgICAgICAp
ICYmIChNMDQ2IDwgMHgwQikpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2
MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTkuWEhDMy5SSFVCLlBSVDIuX0RFUCAgUmV0
dXJuIFBhY2thZ2UgKDEpIHtcXF9TQi5QQ0kwLkdQMTkuTkhJMH1cbiIsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2th
Z2UgKDB4MDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgXF9TQi5Q
Q0kwCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5Q
Q0kwLkdQMTkuWEhDMy5SSFVCLlBSVDIuX0RFUCAgUmV0dXJuIFBhY2thZ2UgKDEpIHtcXF9T
Qi5QQ0kwfVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBcX1NCLlBDSTAKICAgICAgICAgICAgICAgIH0pCiAgICAgICAg
ICAgIH0KICAgICAgICB9CgogICAgICAgIE5hbWUgKFhEU0QsIFBhY2thZ2UgKDB4MDIpCiAg
ICAgICAgewogICAgICAgICAgICBUb1VVSUQgKCJkYWZmZDgxNC02ZWJhLTRkOGMtOGE5MS1i
YzliYmY0YWEzMDEiKSAvKiBEZXZpY2UgUHJvcGVydGllcyBmb3IgX0RTRCAqLywgCiAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInVz
YjQtaG9zdC1pbnRlcmZhY2UiLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuR1Ax
OS5OSEkwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw
eDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJ1c2I0LXBvcnQt
bnVtYmVyIiwgCiAgICAgICAgICAgICAgICAgICAgMHgwMQogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlh
bGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgewogICAg
ICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiY2UyZWUzODUtMDBlNi00OGNiLTlmMDUt
MmVkYjkyN2M0ODk5IikgLyogVVNCIENvbnRyb2xsZXIgKi8pKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmcwLCAweDAwLCBVSUQwKQogICAg
ICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTkuWEhDMy5SSFVC
LlBSVDIuX0RTTSAoVVVJRCAweCVYLCAweCVYLCAweCVYKVxuIiwgVUlEMCwgQXJnMSwgQXJn
MiwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFN3aXRjaCAoQXJnMikKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAwKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChNMDQ2IDwgMHgw
QikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE00NjAgKCIgICAgUmV0dXJuIEJ1ZmZlciAoMSkgezB4MjF9XG4iLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
UmV0dXJuIChCdWZmZXIgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjEgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAhCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTTQ2MCAoIiAgICBSZXR1cm4gQnVmZmVyICgxKSB7MHgwMH1cbiIsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTTA0NiA8IDB4MEIpKQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNNDYw
ICgiICAgIFJldHVybiBJbnRlZ2VyIDB4MDFcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEp
CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxz
ZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBNNDYwICgiICAgIFVuc3VwcG9ydGVkIGZ1bmN0aW9uXG4iLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE00NjAgKCIgICAgVW5zdXBwb3J0
ZWQgZnVuY3Rpb25cbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQog
ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCIg
ICAgUmV0dXJuIEJ1ZmZlciAoMSkgezB4MDB9IChVbnN1cHBvcnRlZCBVVUlEKVxuIiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFJldHVy
biAoQnVmZmVyICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
LgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAg
ICBTY29wZSAoXF9TQi5QQ0kwLkdQMTkuWEhDNCkKICAgIHsKICAgICAgICBNZXRob2QgKF9T
MFcsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAg
ICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzRjQ0KQogICAgICAgICAgICBMb2NhbDAgPSAw
eDAwCiAgICAgICAgICAgIElmICgoXEczRDMgIT0gMHg1NSkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIExvY2FsMCA9IFxHM0QzCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUzBXICgpICBSZXR1cm4g
JWRcbiIsIERBRFIsIExvY2FsMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9QUlcsIDAs
IFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAg
ICB7CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5f
UFJXICgpICBSZXR1cm4gUGFja2FnZSAoMikgezB4MUEsIDB4MDR9XG4iLCBEQURSLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2Ug
KDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MUEsIAogICAgICAgICAg
ICAgICAgMHgwMwogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChT
U1RBLCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgT0VN
LUFTTC1cXF9TQi5QQ0kwLkdQMTkuWEhDNC5fU1RBICgpXG4iLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChTUkVHLCAy
LCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzRjQwKQogICAg
ICAgICAgICBNNDYwICgiICBPRU0tQVNMLVxcX1NCLlBDSTAuR1AxOS5YSEM0Ll9SRUcgKCVk
ICVkKVxuIiwgQXJnMCwgQXJnMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9
CgogICAgICAgIE1ldGhvZCAoUFBTMCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAg
ICAgICAgIE0wMDAgKDB4M0Y0MSkKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9T
Qi5QQ0kwLkdQMTkuWEhDNC5fUFMwICgpXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQUFMzLCAwLCBTZXJpYWxp
emVkKQogICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzRjQzKQogICAgICAgICAgICBJ
ZiAoKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQMTIuUENTQSkgJiYgQ29uZFJlZk9mIChcX1NC
LlBDSTAuR1AxOS5OSEkxLlBDU0EpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
TTQ2MCAoIiAgICBHUDEyLlBDU0EgPSAlZCAgWEhDNC5QQ1NBID0gJWQgIE5ISTEuUENTQSA9
ICVkXG4iLCBcX1NCLlBDSTAuR1AxMi5QQ1NBLCBcX1NCLlBDSTAuR1AxOS5YSEM0LlBDU0Es
IFxfU0IuUENJMC5HUDE5Lk5ISTEuUENTQSwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTkuWEhD
NC5fUFMzICgpXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgIH0KCiAgICAgICAgTWV0aG9kIChQU1RBLCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsK
ICAgICAgICAgICAgTTAwMCAoMHgzRjQ1KQogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNM
LVxcX1NCLlBDSTAuR1AxOS5YSEM0LlBXUlMuX1NUQSAoKVxuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoUF9PTiwg
MCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE0wMDAgKDB4M0Y0NikKICAg
ICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTkuWEhDNC5QV1JTLl9P
TiAoKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9
CgogICAgICAgIE1ldGhvZCAoUF9PRiwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAg
ICAgICAgIE0wMDAgKDB4M0Y0OCkKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9T
Qi5QQ0kwLkdQMTkuWEhDNC5QV1JTLl9PRkYgKClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBOYW1lIChEQURSLCAweEVFRUVF
RUVFKQogICAgICAgIE5hbWUgKERTVEEsIDB4RUUpCiAgICAgICAgTmFtZSAoREJVUywgMHhF
RUVFKQogICAgICAgIE5hbWUgKFBDU0EsIDB4MDApCiAgICAgICAgTmFtZSAoUFdTVCwgMHhE
MykKICAgICAgICBOYW1lIChFU1RBLCAweEVFKQogICAgICAgIE5hbWUgKEVCVVMsIDB4RUVF
RSkKICAgICAgICBOYW1lIChQVzNTLCAweDAwKQogICAgICAgIE1ldGhvZCAoUlBSTSwgMiwg
Tm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IEFyZzAKICAg
ICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJNLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwg
MHgwNCkKICAgICAgICAgICAgRmllbGQgKFZBUk0sIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2
ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVkFSUiwgICAzMgogICAgICAgICAg
ICB9CgogICAgICAgICAgICBMb2NhbDEgPSBWQVJSIC8qIFxfU0JfLlBDSTAuR1AxOS5YSEM0
LlJQUk0uVkFSUiAqLwogICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMSkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweEZGCiAgICAgICAgICAgIH0KICAg
ICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTG9jYWwxICY9IDB4RkZGRgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVs
c2VJZiAoKEFyZzEgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExv
Y2FsMSAmPSAweDAwRkZGRkZGCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIg
IE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5SUFJNICgweCVYIDB4JVgpID0gMHglWFxu
IiwgREFEUiwgQXJnMCwgQXJnMSwgTG9jYWwxLCAweDAwLCAweDAwKQogICAgICAgICAgICBS
ZXR1cm4gKExvY2FsMSkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoV1BSTSwgMywgTm90
U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IEFyZzAKICAgICAg
ICAgICAgSWYgKChBcmcxID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBPcGVyYXRpb25SZWdpb24gKFZBUkEsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAxKQog
ICAgICAgICAgICAgICAgRmllbGQgKFZBUkEsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWQVJFLCAgIDgKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBWQVJFID0gQXJnMgogICAgICAgICAgICB9
CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSQiwgU3lzdGVtTWVtb3J5LCBMb2Nh
bDAsIDB4MDIpCiAgICAgICAgICAgICAgICBGaWVsZCAoVkFSQiwgQW55QWNjLCBOb0xvY2ss
IFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZBUkYs
ICAgMTYKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBWQVJGID0gQXJnMgog
ICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMykpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSQywgU3lzdGVt
TWVtb3J5LCBMb2NhbDAsIDB4MDMpCiAgICAgICAgICAgICAgICBGaWVsZCAoVkFSQywgQW55
QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFZBUkcsICAgMjQKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBW
QVJHID0gQXJnMgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJELCBTeXN0ZW1NZW1vcnks
IExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJELCBBbnlBY2MsIE5v
TG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
VkFSSCwgICAzMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFZBUkggPSBB
cmcyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBB
ZGRyZXNzICgweCVYKS5XUFJNICgweCVYIDB4JVggMHglWClcbiIsIERBRFIsIEFyZzAsIEFy
ZzEsIEFyZzIsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNQRFAs
IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDUgPSAweDdG
RkZGRkZGCiAgICAgICAgICAgIExvY2FsNSB8PSAweDgwMDAwMDAwCiAgICAgICAgICAgIExv
Y2FsMiA9IDB4MDAKICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICBXaGls
ZSAoKExvY2FsMCA8PSAweDFGKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9j
YWwxID0gMHgwMAogICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDEgPD0gMHgwNykpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gKCgoQXJnMCA8
PCAweDE0KSAmIDB4MEZGMDAwMDApIHwgKChMb2NhbDAgPDwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MEYpICYgMHgwMDBGODAwMCkpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwz
IHw9ICgoTG9jYWwxIDw8IDB4MEMpICYgMHg3MDAwKQogICAgICAgICAgICAgICAgICAgIExv
Y2FsNCA9IFJQUk0gKChNMDgzICsgTG9jYWwzKSwgMHgwNCkKICAgICAgICAgICAgICAgICAg
ICBJZiAoKChMb2NhbDQgIT0gTG9jYWw1KSAmJiAoTG9jYWw0ICE9IDB4MDApKSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiB8PSAoMHgw
MSA8PCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IEVsc2VJZiAoKExvY2FsMSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDErKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIExvY2FsMCsrCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1B
U0wtUENJZSBBZGRyZXNzICgweCVYKS5TUERQICgweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFy
ZzAsIExvY2FsMiwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2Nh
bDIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNQQ0gsIDIsIE5vdFNlcmlhbGl6ZWQp
CiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgIExvY2Fs
MSA9IFJQUk0gKChBcmcwICsgMHgzNCksIDB4MDEpCiAgICAgICAgICAgIFdoaWxlICgoTG9j
YWwxICE9IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDIgPSBS
UFJNICgoREFEUiArIExvY2FsMSksIDB4MDEpCiAgICAgICAgICAgICAgICBJZiAoKChMb2Nh
bDIgPT0gMHgwMCkgfHwgKExvY2FsMiA9PSAweEZGKSkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBJZiAoKExvY2FsMiA9PSBBcmcxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICBCcmVhawog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChEQURS
ICsgKExvY2FsMSArIDB4MDEpKSwgMHgwMSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlNQQ0ggKDB4JVgsIDB4JVgp
ID0gMHglWFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgTG9jYWwwLCAweDAwLCAweDAwKQogICAg
ICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1NU
QSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgIHsKICAgICAgICAg
ICAgSWYgKCgoRFNUQSA9PSAweEVFKSB8fCAoRVNUQSA9PSAweEVFKSkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIElmICgoREJVUyA9PSAweEVFRUUpKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKF5eRUJVUykpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEQlVTID0gXl5FQlVT
IC8qIFxfU0JfLlBDSTAuR1AxOS5FQlVTICovCiAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIERCVVMgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoREJVUyAhPSAweEVFRUUpKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoREFEUiA9PSAweEVFRUVF
RUVFKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9ICgoKF9BRFIgPDwgMHgwQykgJiAweDcwMDApIHwgKChfQURSID4+IAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMSkgJiAweDAwMEY4MDAwKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwwIHw9ICgoREJVUyA8PCAweDE0KSAmIDB4MEZGMDAwMDApCiAg
ICAgICAgICAgICAgICAgICAgICAgIERBRFIgPSAoTTA4MyArIExvY2FsMCkKICAgICAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4N0ZGRkZGRkYK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gMHg4MDAwMDAwMAogICAgICAgICAgICAg
ICAgICAgIExvY2FsMSA9IFJQUk0gKChEQURSICsgMHgwMCksIDB4MDQpCiAgICAgICAgICAg
ICAgICAgICAgSWYgKCgoTG9jYWwxID09IExvY2FsMCkgfHwgKExvY2FsMSA9PSAweDAwKSkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0g
MHgwMAogICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgICAgICBJZiAoKERCVVMgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IF5eU1BDSCAoXl5EQURS
LCAweDEwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoXl5SUFJNICgoXl5E
QURSICsgKExvY2FsMiArIDB4MTQpKSwgMHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDQwKSA9PSAweDQwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoUlBSTSAoKERBRFIgKyAweDBB
KSwgMHgwMikgPT0gMHgwNjA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIEVCVVMgPSBSUFJNICgoREFEUiArIDB4MTkpLCAweDAxKQogICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDIgPSBTUENIIChEQURSLCAweDEwKQogICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoKCgoUlBSTSAoKERBRFIgKyAoTG9jYWwyICsgMHgwMikpLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEpID4+IDB4MDQpICYgMHgwRikgPT0g
MHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElmICgoRUJVUyA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChTUERQ
IChFQlVTKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4
MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwRgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKChSUFJNICgoREFEUiArIChMb2NhbDIgKyAw
eDFBKSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSkgJiAweDQwKSA9PSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKCgoUlBSTSAoKERBRFIgKyAoTG9jYWwyICsgMHgxNCkpLCAweDAxKSAmIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDApID09IDB4MDApKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IERTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4
MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlm
ICgoRUJVUyA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRVNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAg
ICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweEVF
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKChQ
Q1NBID09IDB4MDEpICYmIChQV1NUID09IDB4RDMpKSAmJiAoUFczUyA9PSAweDAxKSkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBXU1QgPSAweEQwCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIElmICgoKChQQ1NBID09IDB4MDApICYmIChQV1NUID09IDB4RDApKSAm
JiAoUFczUyA9PSAweDAwKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBXU1Qg
PSAweEQzCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFNTVEEp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTU1RBICgpCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fU1RB
ID0gMHglWCAgUFdTVCA9IDB4JVggIERCVVMgPSAweCVYICBFU1RBID0gMHglWCAgRUJVUyA9
IDB4JVhcbiIsIERBRFIsIERTVEEsIFBXU1QsIERCVVMsIEVTVEEsIEVCVVMpCiAgICAgICAg
ICAgIFJldHVybiAoRFNUQSkgLyogXF9TQl8uUENJMC5HUDE5LlhIQzQuRFNUQSAqLwogICAg
ICAgIH0KCiAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBTZXJpYWxpemVkKSAgLy8gX0lOSTog
SW5pdGlhbGl6ZQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gMHg3RkZGRkZGRgog
ICAgICAgICAgICBMb2NhbDAgfD0gMHg4MDAwMDAwMAogICAgICAgICAgICBMb2NhbDEgPSBS
UFJNICgoREFEUiArIDB4MDApLCAweDA0KQogICAgICAgICAgICBJZiAoKChMb2NhbDEgPT0g
TG9jYWwwKSB8fCAoTG9jYWwxID09IDB4MDApKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUENTQSA9IDB4MDAKICAgICAgICAgICAgICAgIFBXU1QgPSAweEQzCiAgICAgICAg
ICAgICAgICBQVzNTID0gMHgwMAogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgUENTQSA9IDB4MDEKICAgICAgICAgICAgICAg
IFBXU1QgPSAweEQwCiAgICAgICAgICAgICAgICBQVzNTID0gMHgwMQogICAgICAgICAgICB9
CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX0lO
SSAgUENTQSA9IDB4JVggIFBXU1QgPSAweCVYICBQVzNTID0gMHglWFxuIiwgREFEUiwgUENT
QSwgUFdTVCwgUFczUywgMHgwMCwgMHgwMCkKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo
U0lOSSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNJTkkgKCkKICAgICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUkVHLCAyLCBTZXJpYWxpemVkKSAg
Ly8gX1JFRzogUmVnaW9uIEF2YWlsYWJpbGl0eQogICAgICAgIHsKICAgICAgICAgICAgSWYg
KCgoQXJnMCA9PSAweDAyKSAmJiAoQXJnMSA9PSAweDAxKSkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIElmICgoRFNUQSA9PSAweDBGKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBJZiAoKChSUFJNICgoREFEUiArIDB4MDQpLCAweDAxKSAmIDB4
RkMpID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgUENTQSA9IDB4MDEKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKEFyZzAgPT0gMHgwMikgJiYg
KEFyZzEgPT0gMHgwMCkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQQ1NBID0g
MHgwMAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChTUkVHKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU1JFRyAoQXJnMCwgQXJnMSkKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4
JVgpLl9SRUcgKCVkICVkKSAgUENTQSA9ICVkXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBQQ1NB
LCAweDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfRFNXLCAzLCBTZXJp
YWxpemVkKSAgLy8gX0RTVzogRGV2aWNlIFNsZWVwIFdha2UKICAgICAgICB7CiAgICAgICAg
ICAgIElmIChDb25kUmVmT2YgKFNEU1cpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBTRFNXIChBcmcwLCBBcmcxLCBBcmcyKQogICAgICAgICAgICB9CgogICAgICAgICAgICBN
NDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX0RTVyAoJWQgJWQgJWQpICBQ
Q1NBID0gJWRcbiIsIERBRFIsIEFyZzAsIEFyZzEsIEFyZzIsIFBDU0EsIDB4MDApCiAgICAg
ICAgfQoKICAgICAgICBNZXRob2QgKF9QUzAsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQ
b3dlciBTdGF0ZSAwCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBD
SWUgQWRkcmVzcyAoMHglWCkuX1BTMFxuIiwgREFEUiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCkKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMCkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIFBQUzAgKCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAg
ICAgICAgTWV0aG9kIChfUFMzLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3Rh
dGUgMwogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJl
c3MgKDB4JVgpLl9QUzNcbiIsIERBRFIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBQUFMzICgpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFBv
d2VyUmVzb3VyY2UgKFBXUlMsIDB4MDAsIDB4MDAwMCkKICAgICAgICB7CiAgICAgICAgICAg
IE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAo
MHglWCkuUFdSUy5fU1RBID0gMHglWFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCkKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBTVEEpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBTVEEgKCkKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBXM1MpIC8qIFxfU0JfLlBDSTAuR1AxOS5Y
SEM0LlBXM1MgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfT04sIDAs
IFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBJZiAoKFBXM1MgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgUFczUyA9IDB4MDEKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBP
RU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT04gPSAweCVYXG4iLCBEQURSLCBQ
VzNTLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIElmIChD
b25kUmVmT2YgKFBfT04pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgUF9PTiAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBTZXJpYWxp
emVkKSAgLy8gX09GRjogUG93ZXIgT2ZmCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IElmICgoUFczUyA9PSAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBQVzNTID0gMHgwMAogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wt
UENJZSBBZGRyZXNzICgweCVYKS5QV1JTLl9PRkYgPSAweCVYXG4iLCBEQURSLCBQVzNTLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm
T2YgKFBfT0YpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgUF9PRiAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX1BSMCwgUGFja2FnZSAoMHgw
MSkgIC8vIF9QUjA6IFBvd2VyIFJlc291cmNlcyBmb3IgRDAKICAgICAgICB7CiAgICAgICAg
ICAgIFBXUlMKICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QUjMsIFBhY2thZ2UgKDB4MDEp
ICAvLyBfUFIzOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQzaG90CiAgICAgICAgewogICAgICAg
ICAgICBQV1JTCiAgICAgICAgfSkKICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkdQMTku
WEhDNC5SSFVCLlBSVDIpCiAgICB7CiAgICAgICAgTWV0aG9kIChfREVQLCAwLCBTZXJpYWxp
emVkKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBJZiAo
KE0wNDYgPT0gMHhBQSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9
IE0wNDUgKCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoKFxEREVQID09IDB4
MDEpICYmIENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQMTkuWEhDNC5SSFVCLlBSVDIuX0RTRCkp
ICYmIChDb25kUmVmT2YgKFxfU0IuUENJMC5HUDE5Lk5ISTEKICAgICAgICAgICAgICAgICkg
JiYgKE0wNDYgPCAweDBCKSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYw
ICgiICBPRU0tQVNMLVxcX1NCLlBDSTAuR1AxOS5YSEM0LlJIVUIuUFJUMi5fREVQICBSZXR1
cm4gUGFja2FnZSAoMSkge1xcX1NCLlBDSTAuR1AxOS5OSEkxfVxuIiwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2Fn
ZSAoMHgwMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBcX1NCLlBD
STAuR1AxOS5OSEkxCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAg
ICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFT
TC1cXF9TQi5QQ0kwLkdQMTkuWEhDNC5SSFVCLlBSVDIuX0RFUCAgUmV0dXJuIFBhY2thZ2Ug
KDEpIHtcXF9TQi5QQ0kwfVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAKICAgICAgICAgICAgICAgIH0p
CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE5hbWUgKF9EU0QsIFBhY2thZ2Ug
KDB4MDIpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgIHsKICAgICAg
ICAgICAgVG9VVUlEICgiZGFmZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJmNGFhMzAxIikg
LyogRGV2aWNlIFByb3BlcnRpZXMgZm9yIF9EU0QgKi8sIAogICAgICAgICAgICBQYWNrYWdl
ICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJ1c2I0LWhvc3QtaW50ZXJm
YWNlIiwgCiAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkdQMTkuTkhJMQogICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAidXNiNC1wb3J0LW51bWJlciIsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQog
ICAgICAgIH0pCiAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RT
TTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgIHsKICAgICAgICAgICAgSWYgKChB
cmcwID09IFRvVVVJRCAoImNlMmVlMzg1LTAwZTYtNDhjYi05ZjA1LTJlZGI5MjdjNDg5OSIp
IC8qIFVTQiBDb250cm9sbGVyICovKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
Q3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwMCwgVUlEMCkKICAgICAgICAgICAgICAgIE00
NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDE5LlhIQzQuUkhVQi5QUlQyLl9EU00gKFVV
SUQgMHglWCwgMHglWCwgMHglWClcbiIsIFVJRDAsIEFyZzEsIEFyZzIsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgICAgICBTd2l0Y2ggKEFyZzIpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMCkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTTA0NiA8IDB4MEIpKQogICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAg
IFJldHVybiBCdWZmZXIgKDEpIHsweDIxfVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVy
ICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAweDIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gIQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE00NjAg
KCIgICAgUmV0dXJuIEJ1ZmZlciAoMSkgezB4MDB9XG4iLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChC
dWZmZXIgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgIENhc2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBJZiAoKE0wNDYgPCAweDBCKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBSZXR1cm4g
SW50ZWdlciAweDAxXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBV
bnN1cHBvcnRlZCBmdW5jdGlvblxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAgIFVuc3VwcG9ydGVkIGZ1bmN0aW9uXG4i
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxz
ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICAgIFJldHVybiBCdWZm
ZXIgKDEpIHsweDAwfSAoVW5zdXBwb3J0ZWQgVVVJRClcbiIsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgw
MSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0Iu
UENJMC5HUDE5Lk5ISTApCiAgICB7CiAgICAgICAgTWV0aG9kIChTREVQLCAxLCBTZXJpYWxp
emVkKQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kw
LkdQMTkuTkhJMC5TREVQICglZClcbiIsIEFyZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgIElmICgoXERERVAgIT0gMHgwMSkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIExvY2FsMSA9IFxESU1TCiAgICAgICAgICAgICAgICBNMjMyIChM
b2NhbDEsIEFyZzAsIDB4MDApCiAgICAgICAgICAgICAgICBcRERFUCA9IDB4MDEKICAgICAg
ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUlNULCAwLCBTZXJpYWxpemVk
KSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAgICAgewogICAgICAgICAgICBNNDYwICgi
ICBPRU0tQVNMLVxcX1NCLlBDSTAuR1AxOS5OSEkwLl9SU1QgQ2FsbCBcXF9TQi5BTElCICgw
eDE1LCAwKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgXF9TQi5BTElCICgweDE1LCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k
IChfUzBXLCAwLCBTZXJpYWxpemVkKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUK
ICAgICAgICB7CiAgICAgICAgICAgIE0wMDAgKDB4M0Y1NCkKICAgICAgICAgICAgTG9jYWww
ID0gMHgwMAogICAgICAgICAgICBJZiAoKFxHNUQzICE9IDB4NTUpKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBcRzVEMwogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1MwVyAoKSAgUmV0
dXJuICVkXG4iLCBEQURSLCBMb2NhbDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUFJX
LCAwLCBTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAg
ICAgICAgewogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHgl
WCkuX1BSVyAoKSAgUmV0dXJuIFBhY2thZ2UgKDIpIHsweDFBLCAweDA0fVxuIiwgREFEUiwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChQYWNr
YWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDFBLCAKICAgICAg
ICAgICAgICAgIDB4MDMKICAgICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAgIE1ldGhv
ZCAoU1NUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIg
IE9FTS1BU0wtXFxfU0IuUENJMC5HUDE5Lk5ISTAuX1NUQSAoKVxuIiwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoU1JF
RywgMiwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE0wMDAgKDB4M0Y1MCkK
ICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTkuTkhJMC5fUkVH
ICglZCAlZClcbiIsIEFyZzAsIEFyZzEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAg
ICAgfQoKICAgICAgICBNZXRob2QgKFBQUzAsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewog
ICAgICAgICAgICBNMDAwICgweDNGNTEpCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wt
XFxfU0IuUENJMC5HUDE5Lk5ISTAuX1BTMCAoKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE5hbWUgKFJQTk0sIDB4RUUpCiAg
ICAgICAgTmFtZSAoTENSRywgMHhFRUVFRUVFRSkKICAgICAgICBNZXRob2QgKFBQUzMsIDAs
IFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNGNTMpCiAgICAg
ICAgICAgIElmICgoQ29uZFJlZk9mIChcX1NCLlBDSTAuR1AxMS5QQ1NBKSAmJiBDb25kUmVm
T2YgKFxfU0IuUENJMC5HUDE5LlhIQzMuUENTQSkpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBNNDYwICgiICAgIEdQMTEuUENTQSA9ICVkICBYSEMzLlBDU0EgPSAlZCAgTkhJ
MC5QQ1NBID0gJWRcbiIsIFxfU0IuUENJMC5HUDExLlBDU0EsIFxfU0IuUENJMC5HUDE5LlhI
QzMuUENTQSwgXF9TQi5QQ0kwLkdQMTkuTkhJMC5QQ1NBLCAweDAwLCAweDAwLCAweDAwKQog
ICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKFxHNUQzID09IDB4MDQpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBNMDE3ICgweDAwLCAweDAzLCAweDAx
LCAweDcyLCAweDAwLCAweDA4KQogICAgICAgICAgICAgICAgTG9jYWwxID0gMHhDMAogICAg
ICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHhDMCkgPT0gMHg0MCkpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgUENJZSBHUFAgWzA6MzoxXSBF
UCBpcyBjb25uZWN0ZWRcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgICAgICAgICAgSWYgKChSUE5NID09IDB4RUUpKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUlBOTSA9IE00MDEgKDB4MDAsIDB4
MDMsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJ
ZiAoKChSUE5NICE9IDB4RkYpICYmIChMQ1JHID09IDB4RUVFRUVFRUUpKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExDUkcgPSAoTTQ3MSAoMHgw
MCwgUlBOTSwgMHgwNCkgKyAweDAyOTQpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICBJZiAoKExDUkcgIT0gMHhFRUVFRUVFRSkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBNMjQ5ICgweDAwLCAw
eDAwLCAweDAwLCBMQ1JHKQogICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0t
QVNMLVxcX1NCLlBDSTAuR1AxMS5QQ0lFX0xDX1NUQVRFMCA9IDB4JVhcbiIsIExvY2FsMSwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSAmIDB4M0YpICE9IDB4MDApKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VN
LUFTTC1cXF9TQi5QQ0kwLkdQMTEuQ3BtU2VuZFBtZVR1cm5PZmYgKDAsIDMsIDEpXG4iLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAg
ICAgICBNNDAyICgweDAwLCAweDAzLCAweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgSWYgKChcX1NCLlBDSTAuR1AxMS5QQ1NBID09IDB4MDEpKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
TTAxNyAoMHgwMCwgMHgwMywgMHgwMSwgMHg1NCwgMHgwMCwgMHgyMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwxID0gKExvY2FsMCB8IDB4MDEwMykKICAgICAgICAgICAgICAg
ICAgICAgICAgTTAyMCAoMHgwMCwgMHgwMywgMHgwMSwgMHg1NCwgTG9jYWwxKQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNNDYw
ICgiICAgIENhbGwgXFxfU0IuQUxJQiAoMHgxNCwgMSkgLSBTdGFydFxuIiwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFxfU0IuQUxJQiAo
MHgxNCwgMHgwMSkKICAgICAgICAgICAgICAgIE00NjAgKCIgICAgQ2FsbCBcXF9TQi5BTElC
ICgweDE0LCAxKSAtIEVuZFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5Q
Q0kwLkdQMTkuTkhJMC5fUFMzIC0gRW5kXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQU1RBLCAwLCBTZXJpYWxp
emVkKQogICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzRjU1KQogICAgICAgICAgICBN
NDYwICgiICBPRU0tQVNMLVxcX1NCLlBDSTAuR1AxOS5OSEkwLlBXUlMuX1NUQSAoKVxuIiwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAg
IE1ldGhvZCAoUF9PTiwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE0w
MDAgKDB4M0Y1NikKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQ
MTkuTkhJMC5QV1JTLk9OICgpXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQX09GLCAwLCBTZXJpYWxpemVkKQog
ICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzRjU4KQogICAgICAgICAgICBNNDYwICgi
ICBPRU0tQVNMLVxcX1NCLlBDSTAuR1AxOS5OSEkwLlBXUlMuT0ZGICgpXG4iLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTmFtZSAo
REFEUiwgMHhFRUVFRUVFRSkKICAgICAgICBOYW1lIChEU1RBLCAweEVFKQogICAgICAgIE5h
bWUgKERCVVMsIDB4RUVFRSkKICAgICAgICBOYW1lIChQQ1NBLCAweDAwKQogICAgICAgIE5h
bWUgKFBXU1QsIDB4RDMpCiAgICAgICAgTmFtZSAoRVNUQSwgMHhFRSkKICAgICAgICBOYW1l
IChFQlVTLCAweEVFRUUpCiAgICAgICAgTmFtZSAoUFczUywgMHgwMCkKICAgICAgICBNZXRo
b2QgKFJQUk0sIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2Nh
bDAgPSBBcmcwCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTSwgU3lzdGVtTWVt
b3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChWQVJNLCBBbnlBY2MsIE5v
TG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZBUlIsICAg
MzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwxID0gVkFSUiAvKiBcX1NCXy5Q
Q0kwLkdQMTkuTkhJMC5SUFJNLlZBUlIgKi8KICAgICAgICAgICAgSWYgKChBcmcxID09IDB4
MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHhGRgogICAg
ICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweEZGRkYKICAgICAgICAgICAgfQog
ICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDMpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBMb2NhbDEgJj0gMHgwMEZGRkZGRgogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUlBSTSAoMHglWCAw
eCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEsIExvY2FsMSwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg
KFdQUk0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAg
PSBBcmcwCiAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAxKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJBLCBTeXN0ZW1NZW1vcnksIExv
Y2FsMCwgMHgwMSkKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJBLCBBbnlBY2MsIE5vTG9j
aywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkFS
RSwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgVkFSRSA9IEFyZzIK
ICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDIpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkIsIFN5c3Rl
bU1lbW9yeSwgTG9jYWwwLCAweDAyKQogICAgICAgICAgICAgICAgRmllbGQgKFZBUkIsIEFu
eUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBWQVJGLCAgIDE2CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
VkFSRiA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09
IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24g
KFZBUkMsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAzKQogICAgICAgICAgICAgICAgRmll
bGQgKFZBUkMsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBWQVJHLCAgIDI0CiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgVkFSRyA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNl
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSRCwg
U3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAgICBGaWVsZCAoVkFS
RCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIFZBUkgsICAgMzIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBWQVJIID0gQXJnMgogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBP
RU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuV1BSTSAoMHglWCAweCVYIDB4JVgpXG4iLCBE
QURSLCBBcmcwLCBBcmcxLCBBcmcyLCAweDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAg
TWV0aG9kIChTUERQLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg
TG9jYWw1ID0gMHg3RkZGRkZGRgogICAgICAgICAgICBMb2NhbDUgfD0gMHg4MDAwMDAwMAog
ICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAg
ICAgICAgICAgV2hpbGUgKChMb2NhbDAgPD0gMHgxRikpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwx
IDw9IDB4MDcpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2Fs
MyA9ICgoKEFyZzAgPDwgMHgxNCkgJiAweDBGRjAwMDAwKSB8ICgoTG9jYWwwIDw8IAogICAg
ICAgICAgICAgICAgICAgICAgICAweDBGKSAmIDB4MDAwRjgwMDApKQogICAgICAgICAgICAg
ICAgICAgIExvY2FsMyB8PSAoKExvY2FsMSA8PCAweDBDKSAmIDB4NzAwMCkKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDQgPSBSUFJNICgoTTA4MyArIExvY2FsMyksIDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw0ICE9IExvY2FsNSkgJiYgKExvY2FsNCAhPSAw
eDAwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDIgfD0gKDB4MDEgPDwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxKysKICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICB9CgogICAgICAgICAgICBN
NDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuU1BEUCAoMHglWCkgPSAweCVY
XG4iLCBEQURSLCBBcmcwLCBMb2NhbDIsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAg
IFJldHVybiAoTG9jYWwyKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChTUENILCAyLCBO
b3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAg
ICAgICAgICBMb2NhbDEgPSBSUFJNICgoQXJnMCArIDB4MzQpLCAweDAxKQogICAgICAgICAg
ICBXaGlsZSAoKExvY2FsMSAhPSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTG9jYWwyID0gUlBSTSAoKERBRFIgKyBMb2NhbDEpLCAweDAxKQogICAgICAgICAgICAg
ICAgSWYgKCgoTG9jYWwyID09IDB4MDApIHx8IChMb2NhbDIgPT0gMHhGRikpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gQXJnMSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwxCiAgICAgICAgICAgICAg
ICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDEg
PSBSUFJNICgoREFEUiArIChMb2NhbDEgKyAweDAxKSksIDB4MDEpCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5TUENI
ICgweCVYLCAweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEsIExvY2FsMCwgMHgw
MCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgfQoKICAgICAg
ICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAg
ICB7CiAgICAgICAgICAgIElmICgoKERTVEEgPT0gMHhFRSkgfHwgKEVTVEEgPT0gMHhFRSkp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERCVVMgPT0gMHhFRUVFKSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChe
XkVCVVMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
REJVUyA9IF5eRUJVUyAvKiBcX1NCXy5QQ0kwLkdQMTkuRUJVUyAqLwogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBEQlVTID0gMHgwMAogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKERCVVMgIT0g
MHhFRUVFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKERB
RFIgPT0gMHhFRUVFRUVFRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgPSAoKChfQURSIDw8IDB4MEMpICYgMHg3MDAwKSB8ICgoX0FE
UiA+PiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEpICYgMHgwMDBGODAwMCkp
CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAoKERCVVMgPDwgMHgxNCkgJiAw
eDBGRjAwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICBEQURSID0gKE0wODMgKyBMb2Nh
bDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
PSAweDdGRkZGRkZGCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMDAwMDAK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIDB4MDApLCAweDA0
KQogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSA9PSBMb2NhbDApIHx8IChMb2Nh
bDEgPT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAK
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEQlVTICE9IDB4MDApKQogICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBe
XlNQQ0ggKF5eREFEUiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo
KF5eUlBSTSAoKF5eREFEUiArIChMb2NhbDIgKyAweDE0KSksIDB4MDEpICYgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCkgPT0gMHg0MCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9
IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFJQUk0g
KChEQURSICsgMHgwQSksIDB4MDIpID09IDB4MDYwNCkpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBFQlVTID0gUlBSTSAoKERBRFIgKyAweDE5KSwg
MHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gU1BDSCAoREFEUiwgMHgx
MCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoKFJQUk0gKChEQURSICsgKExvY2Fs
MiArIDB4MDIpKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxKSA+PiAweDA0
KSAmIDB4MEYpID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9
IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
RWxzZUlmICgoU1BEUCAoRUJVUykgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9
IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgoUlBSTSAoKERBRFIg
KyAoTG9jYWwyICsgMHgxQSkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEp
ICYgMHg0MCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURSICsgKExvY2FsMiArIDB4MTQp
KSwgMHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwKSA9PSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgICAgIEVsc2VJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEVTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAg
ICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAg
ICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBJZiAoKCgoUENTQSA9PSAweDAxKSAmJiAoUFdTVCA9PSAweEQzKSkgJiYgKFBXM1Mg
PT0gMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQV1NUID0gMHhEMAog
ICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAwKSAmJiAoUFdT
VCA9PSAweEQwKSkgJiYgKFBXM1MgPT0gMHgwMCkpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBQV1NUID0gMHhEMwogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoQ29u
ZFJlZk9mIChTU1RBKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU1NUQSAoKQog
ICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVz
cyAoMHglWCkuX1NUQSA9IDB4JVggIFBXU1QgPSAweCVYICBEQlVTID0gMHglWCAgRVNUQSA9
IDB4JVggIEVCVVMgPSAweCVYXG4iLCBEQURSLCBEU1RBLCBQV1NULCBEQlVTLCBFU1RBLCBF
QlVTKQogICAgICAgICAgICBSZXR1cm4gKERTVEEpIC8qIFxfU0JfLlBDSTAuR1AxOS5OSEkw
LkRTVEEgKi8KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgU2VyaWFsaXpl
ZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9
IDB4N0ZGRkZGRkYKICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMDAwMDAKICAgICAgICAg
ICAgTG9jYWwxID0gUlBSTSAoKERBRFIgKyAweDAwKSwgMHgwNCkKICAgICAgICAgICAgSWYg
KCgoTG9jYWwxID09IExvY2FsMCkgfHwgKExvY2FsMSA9PSAweDAwKSkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIFBDU0EgPSAweDAwCiAgICAgICAgICAgICAgICBQV1NUID0g
MHhEMwogICAgICAgICAgICAgICAgUFczUyA9IDB4MDAKICAgICAgICAgICAgfQogICAgICAg
ICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBDU0EgPSAweDAxCiAg
ICAgICAgICAgICAgICBQV1NUID0gMHhEMAogICAgICAgICAgICAgICAgUFczUyA9IDB4MDEK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJl
c3MgKDB4JVgpLl9JTkkgIFBDU0EgPSAweCVYICBQV1NUID0gMHglWCAgUFczUyA9IDB4JVhc
biIsIERBRFIsIFBDU0EsIFBXU1QsIFBXM1MsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElm
IChDb25kUmVmT2YgKFNJTkkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTSU5J
ICgpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1JFRywgMiwg
U2VyaWFsaXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkKICAgICAgICB7CiAg
ICAgICAgICAgIElmICgoKEFyZzAgPT0gMHgwMikgJiYgKEFyZzEgPT0gMHgwMSkpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERTVEEgPT0gMHgwRikpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoUlBSTSAoKERBRFIgKyAweDA0
KSwgMHgwMSkgJiAweEZDKSA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIFBDU0EgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChBcmcw
ID09IDB4MDIpICYmIChBcmcxID09IDB4MDApKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUENTQSA9IDB4MDAKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKENvbmRS
ZWZPZiAoU1JFRykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNSRUcgKEFyZzAs
IEFyZzEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJ
ZSBBZGRyZXNzICgweCVYKS5fUkVHICglZCAlZCkgIFBDU0EgPSAlZFxuIiwgREFEUiwgQXJn
MCwgQXJnMSwgUENTQSwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo
X0RTVywgMywgU2VyaWFsaXplZCkgIC8vIF9EU1c6IERldmljZSBTbGVlcCBXYWtlCiAgICAg
ICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChTRFNXKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgU0RTVyAoQXJnMCwgQXJnMSwgQXJnMikKICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9EU1cg
KCVkICVkICVkKSAgUENTQSA9ICVkXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBBcmcyLCBQQ1NB
LCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVk
KSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAo
IiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9QUzBcbiIsIERBRFIsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzAp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQUFMwICgpCiAgICAgICAgICAgIH0K
ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9Q
UzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1B
U0wtUENJZSBBZGRyZXNzICgweCVYKS5fUFMzXG4iLCBEQURSLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMzKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUFBTMyAoKQogICAgICAgICAgICB9CiAgICAgICAg
fQoKICAgICAgICBQb3dlclJlc291cmNlIChQV1JTLCAweDAwLCAweDAwMDApCiAgICAgICAg
ewogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBT
dGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1Q
Q0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX1NUQSA9IDB4JVhcbiIsIERBRFIsIFBXM1MsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQ
U1RBKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQU1RBICgpCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQVzNTKSAvKiBcX1NC
Xy5QQ0kwLkdQMTkuTkhJMC5QVzNTICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l
dGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgSWYgKChQVzNTID09IDB4MDApKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFBXM1MgPSAweDAxCiAgICAgICAgICAgICAgICAg
ICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX09OID0gMHgl
WFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChQX09OKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIFBfT04gKCkKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX09G
RiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoKFBXM1MgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgUFczUyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBNNDYw
ICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT0ZGID0gMHglWFxuIiwg
REFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAg
ICBJZiAoQ29uZFJlZk9mIChQX09GKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIFBfT0YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE5hbWUgKF9QUjAs
IFBhY2thZ2UgKDB4MDEpICAvLyBfUFIwOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQwCiAgICAg
ICAgewogICAgICAgICAgICBQV1JTCiAgICAgICAgfSkKICAgICAgICBOYW1lIChfUFIzLCBQ
YWNrYWdlICgweDAxKSAgLy8gX1BSMzogUG93ZXIgUmVzb3VyY2VzIGZvciBEM2hvdAogICAg
ICAgIHsKICAgICAgICAgICAgUFdSUwogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxf
U0IuUENJMC5HUDE5Lk5ISTEpCiAgICB7CiAgICAgICAgTWV0aG9kIChTREVQLCAxLCBTZXJp
YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5Q
Q0kwLkdQMTkuTkhJMS5TREVQICglZClcbiIsIEFyZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDApCiAgICAgICAgICAgIElmICgoXERERVAgIT0gMHgwMSkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIExvY2FsMSA9IFxESU1TCiAgICAgICAgICAgICAgICBNMjMy
IChMb2NhbDEsIEFyZzAsIDB4MDApCiAgICAgICAgICAgICAgICBcRERFUCA9IDB4MDEKICAg
ICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUlNULCAwLCBTZXJpYWxp
emVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAgICAgewogICAgICAgICAgICBNNDYw
ICgiICBPRU0tQVNMLVxcX1NCLlBDSTAuR1AxOS5OSEkxLl9SU1QgQ2FsbCBcXF9TQi5BTElC
ICgweDE1LCAxKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgXF9TQi5BTElCICgweDE1LCAweDAxKQogICAgICAgIH0KCiAgICAgICAgTWV0
aG9kIChfUzBXLCAwLCBTZXJpYWxpemVkKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3Rh
dGUKICAgICAgICB7CiAgICAgICAgICAgIE0wMDAgKDB4M0Y2NCkKICAgICAgICAgICAgTG9j
YWwwID0gMHgwMAogICAgICAgICAgICBJZiAoKFxHNUQzICE9IDB4NTUpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBcRzVEMwogICAgICAgICAgICB9CgogICAg
ICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1MwVyAoKSAg
UmV0dXJuICVkXG4iLCBEQURSLCBMb2NhbDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAg
ICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChf
UFJXLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtl
CiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAo
MHglWCkuX1BSVyAoKSAgUmV0dXJuIFBhY2thZ2UgKDIpIHsweDFBLCAweDA0fVxuIiwgREFE
UiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDFBLCAKICAg
ICAgICAgICAgICAgIDB4MDQKICAgICAgICAgICAgfSkKICAgICAgICAgICAgUmV0dXJuIChQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDFBLCAKICAg
ICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAgIE1l
dGhvZCAoU1NUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAg
KCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDE5Lk5ISTEuX1NUQSAoKVxuIiwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo
U1JFRywgMiwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE0wMDAgKDB4M0Y2
MCkKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTkuTkhJMS5f
UkVHICglZCAlZClcbiIsIEFyZzAsIEFyZzEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAg
ICAgICAgfQoKICAgICAgICBNZXRob2QgKFBQUzAsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg
ewogICAgICAgICAgICBNMDAwICgweDNGNjEpCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1B
U0wtXFxfU0IuUENJMC5HUDE5Lk5ISTEuX1BTMCAoKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE5hbWUgKFJQTk0sIDB4RUUp
CiAgICAgICAgTmFtZSAoTENSRywgMHhFRUVFRUVFRSkKICAgICAgICBNZXRob2QgKFBQUzMs
IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNGNjMpCiAg
ICAgICAgICAgIElmICgoQ29uZFJlZk9mIChcX1NCLlBDSTAuR1AxMi5QQ1NBKSAmJiBDb25k
UmVmT2YgKFxfU0IuUENJMC5HUDE5LlhIQzQuUENTQSkpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBNNDYwICgiICAgIEdQMTIuUENTQSA9ICVkICBYSEM0LlBDU0EgPSAlZCAg
TkhJMS5QQ1NBID0gJWRcbiIsIFxfU0IuUENJMC5HUDEyLlBDU0EsIFxfU0IuUENJMC5HUDE5
LlhIQzQuUENTQSwgXF9TQi5QQ0kwLkdQMTkuTkhJMS5QQ1NBLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKFxHNUQzID09IDB4MDQpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBNMDE3ICgweDAwLCAweDA0LCAw
eDAxLCAweDcyLCAweDAwLCAweDA4KQogICAgICAgICAgICAgICAgTG9jYWwxID0gMHhDMAog
ICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHhDMCkgPT0gMHg0MCkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgUENJZSBHUFAgWzA6NDox
XSBFUCBpcyBjb25uZWN0ZWRcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgICAgICAgICAgSWYgKChSUE5NID09IDB4RUUpKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUlBOTSA9IE00MDEgKDB4MDAs
IDB4MDQsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICBJZiAoKChSUE5NICE9IDB4RkYpICYmIChMQ1JHID09IDB4RUVFRUVFRUUpKSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExDUkcgPSAoTTQ3MSAo
MHgwMCwgUlBOTSwgMHgwNCkgKyAweDAyOTQpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBJZiAoKExDUkcgIT0gMHhFRUVFRUVFRSkpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBNMjQ5ICgweDAw
LCAweDAwLCAweDAwLCBMQ1JHKQogICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBP
RU0tQVNMLVxcX1NCLlBDSTAuR1AxMi5QQ0lFX0xDX1NUQVRFMCA9IDB4JVhcbiIsIExvY2Fs
MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSAmIDB4M0YpICE9IDB4MDApKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAg
T0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTIuQ3BtU2VuZFBtZVR1cm5PZmYgKDAsIDQsIDEpXG4i
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAg
ICAgICAgICBNNDAyICgweDAwLCAweDA0LCAweDAxKQogICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgSWYgKChcX1NCLlBDSTAuR1AxMi5QQ1NBID09IDB4MDEp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww
ID0gTTAxNyAoMHgwMCwgMHgwNCwgMHgwMSwgMHg1NCwgMHgwMCwgMHgyMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwxID0gKExvY2FsMCB8IDB4MDEwMykKICAgICAgICAgICAg
ICAgICAgICAgICAgTTAyMCAoMHgwMCwgMHgwNCwgMHgwMSwgMHg1NCwgTG9jYWwxKQogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN
NDYwICgiICAgIENhbGwgXFxfU0IuQUxJQiAoMHgxNCwgMikgLSBTdGFydFxuIiwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFxfU0IuQUxJ
QiAoMHgxNCwgMHgwMikKICAgICAgICAgICAgICAgIE00NjAgKCIgICAgQ2FsbCBcXF9TQi5B
TElCICgweDE0LCAyKSAtIEVuZFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9T
Qi5QQ0kwLkdQMTkuTkhJMS5fUFMzIC0gRW5kXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQU1RBLCAwLCBTZXJp
YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzRjY1KQogICAgICAgICAg
ICBNNDYwICgiICBPRU0tQVNMLVxcX1NCLlBDSTAuR1AxOS5OSEkxLlBXUlMuX1NUQSAoKVxu
IiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAg
ICAgIE1ldGhvZCAoUF9PTiwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAg
IE0wMDAgKDB4M0Y2NikKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kw
LkdQMTkuTkhJMS5QV1JTLk9OICgpXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQX09GLCAwLCBTZXJpYWxpemVk
KQogICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzRjY4KQogICAgICAgICAgICBNNDYw
ICgiICBPRU0tQVNMLVxcX1NCLlBDSTAuR1AxOS5OSEkxLlBXUlMuT0ZGICgpXG4iLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTmFt
ZSAoREFEUiwgMHhFRUVFRUVFRSkKICAgICAgICBOYW1lIChEU1RBLCAweEVFKQogICAgICAg
IE5hbWUgKERCVVMsIDB4RUVFRSkKICAgICAgICBOYW1lIChQQ1NBLCAweDAwKQogICAgICAg
IE5hbWUgKFBXU1QsIDB4RDMpCiAgICAgICAgTmFtZSAoRVNUQSwgMHhFRSkKICAgICAgICBO
YW1lIChFQlVTLCAweEVFRUUpCiAgICAgICAgTmFtZSAoUFczUywgMHgwMCkKICAgICAgICBN
ZXRob2QgKFJQUk0sIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBM
b2NhbDAgPSBBcmcwCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTSwgU3lzdGVt
TWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChWQVJNLCBBbnlBY2Ms
IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZBUlIs
ICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwxID0gVkFSUiAvKiBcX1NC
Xy5QQ0kwLkdQMTkuTkhJMS5SUFJNLlZBUlIgKi8KICAgICAgICAgICAgSWYgKChBcmcxID09
IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHhGRgog
ICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweEZGRkYKICAgICAgICAgICAg
fQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDMpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBMb2NhbDEgJj0gMHgwMEZGRkZGRgogICAgICAgICAgICB9CgogICAg
ICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUlBSTSAoMHgl
WCAweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEsIExvY2FsMSwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgfQoKICAgICAgICBNZXRo
b2QgKFdQUk0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2Nh
bDAgPSBBcmcwCiAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAxKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJBLCBTeXN0ZW1NZW1vcnks
IExvY2FsMCwgMHgwMSkKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJBLCBBbnlBY2MsIE5v
TG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
VkFSRSwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgVkFSRSA9IEFy
ZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDIpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkIsIFN5
c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAyKQogICAgICAgICAgICAgICAgRmllbGQgKFZBUkIs
IEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBWQVJGLCAgIDE2CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgVkFSRiA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcx
ID09IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp
b24gKFZBUkMsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAzKQogICAgICAgICAgICAgICAg
RmllbGQgKFZBUkMsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBWQVJHLCAgIDI0CiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgVkFSRyA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFS
RCwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAgICBGaWVsZCAo
VkFSRCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFZBUkgsICAgMzIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBWQVJIID0gQXJnMgogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgi
ICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuV1BSTSAoMHglWCAweCVYIDB4JVgpXG4i
LCBEQURSLCBBcmcwLCBBcmcxLCBBcmcyLCAweDAwLCAweDAwKQogICAgICAgIH0KCiAgICAg
ICAgTWV0aG9kIChTUERQLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAg
ICAgTG9jYWw1ID0gMHg3RkZGRkZGRgogICAgICAgICAgICBMb2NhbDUgfD0gMHg4MDAwMDAw
MAogICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgIExvY2FsMCA9IDB4MDAK
ICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPD0gMHgxRikpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgIFdoaWxlICgoTG9j
YWwxIDw9IDB4MDcpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExv
Y2FsMyA9ICgoKEFyZzAgPDwgMHgxNCkgJiAweDBGRjAwMDAwKSB8ICgoTG9jYWwwIDw8IAog
ICAgICAgICAgICAgICAgICAgICAgICAweDBGKSAmIDB4MDAwRjgwMDApKQogICAgICAgICAg
ICAgICAgICAgIExvY2FsMyB8PSAoKExvY2FsMSA8PCAweDBDKSAmIDB4NzAwMCkKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDQgPSBSUFJNICgoTTA4MyArIExvY2FsMyksIDB4MDQpCiAg
ICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw0ICE9IExvY2FsNSkgJiYgKExvY2FsNCAh
PSAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDIgfD0gKDB4MDEgPDwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxKysKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICB9CgogICAgICAgICAg
ICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuU1BEUCAoMHglWCkgPSAw
eCVYXG4iLCBEQURSLCBBcmcwLCBMb2NhbDIsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgIFJldHVybiAoTG9jYWwyKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChTUENILCAy
LCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gMHgwMAog
ICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoQXJnMCArIDB4MzQpLCAweDAxKQogICAgICAg
ICAgICBXaGlsZSAoKExvY2FsMSAhPSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgTG9jYWwyID0gUlBSTSAoKERBRFIgKyBMb2NhbDEpLCAweDAxKQogICAgICAgICAg
ICAgICAgSWYgKCgoTG9jYWwyID09IDB4MDApIHx8IChMb2NhbDIgPT0gMHhGRikpKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gQXJnMSkpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwxCiAgICAgICAgICAg
ICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2Nh
bDEgPSBSUFJNICgoREFEUiArIChMb2NhbDEgKyAweDAxKSksIDB4MDEpCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5T
UENIICgweCVYLCAweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEsIExvY2FsMCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgfQoKICAg
ICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAg
ICAgICB7CiAgICAgICAgICAgIElmICgoKERTVEEgPT0gMHhFRSkgfHwgKEVTVEEgPT0gMHhF
RSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERCVVMgPT0gMHhFRUVF
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m
ICheXkVCVVMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgREJVUyA9IF5eRUJVUyAvKiBcX1NCXy5QQ0kwLkdQMTkuRUJVUyAqLwogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBEQlVTID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKERCVVMg
IT0gMHhFRUVFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo
KERBRFIgPT0gMHhFRUVFRUVFRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAoKChfQURSIDw8IDB4MEMpICYgMHg3MDAwKSB8ICgo
X0FEUiA+PiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEpICYgMHgwMDBGODAw
MCkpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAoKERCVVMgPDwgMHgxNCkg
JiAweDBGRjAwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICBEQURSID0gKE0wODMgKyBM
b2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDAgPSAweDdGRkZGRkZGCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMDAw
MDAKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIDB4MDApLCAw
eDA0KQogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSA9PSBMb2NhbDApIHx8IChM
b2NhbDEgPT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4
MDAKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEQlVTICE9IDB4MDApKQogICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIg
PSBeXlNQQ0ggKF5eREFEUiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm
ICgoKF5eUlBSTSAoKF5eREFEUiArIChMb2NhbDIgKyAweDE0KSksIDB4MDEpICYgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCkgPT0gMHg0MCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNU
QSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFJQ
Uk0gKChEQURSICsgMHgwQSksIDB4MDIpID09IDB4MDYwNCkpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBFQlVTID0gUlBSTSAoKERBRFIgKyAweDE5
KSwgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gU1BDSCAoREFEUiwg
MHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoKFJQUk0gKChEQURSICsgKExv
Y2FsMiArIDB4MDIpKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxKSA+PiAw
eDA0KSAmIDB4MEYpID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNU
QSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRWxzZUlmICgoU1BEUCAoRUJVUykgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNU
QSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgoUlBSTSAoKERB
RFIgKyAoTG9jYWwyICsgMHgxQSkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDEpICYgMHg0MCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURSICsgKExvY2FsMiArIDB4
MTQpKSwgMHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwKSA9
PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2VJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYK
ICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg
ICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAxKSAmJiAoUFdTVCA9PSAweEQzKSkgJiYgKFBX
M1MgPT0gMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQV1NUID0gMHhE
MAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAwKSAmJiAo
UFdTVCA9PSAweEQwKSkgJiYgKFBXM1MgPT0gMHgwMCkpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBQV1NUID0gMHhEMwogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAo
Q29uZFJlZk9mIChTU1RBKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU1NUQSAo
KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRk
cmVzcyAoMHglWCkuX1NUQSA9IDB4JVggIFBXU1QgPSAweCVYICBEQlVTID0gMHglWCAgRVNU
QSA9IDB4JVggIEVCVVMgPSAweCVYXG4iLCBEQURSLCBEU1RBLCBQV1NULCBEQlVTLCBFU1RB
LCBFQlVTKQogICAgICAgICAgICBSZXR1cm4gKERTVEEpIC8qIFxfU0JfLlBDSTAuR1AxOS5O
SEkxLkRTVEEgKi8KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgU2VyaWFs
aXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICB7CiAgICAgICAgICAgIExvY2Fs
MCA9IDB4N0ZGRkZGRkYKICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMDAwMDAKICAgICAg
ICAgICAgTG9jYWwxID0gUlBSTSAoKERBRFIgKyAweDAwKSwgMHgwNCkKICAgICAgICAgICAg
SWYgKCgoTG9jYWwxID09IExvY2FsMCkgfHwgKExvY2FsMSA9PSAweDAwKSkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFBDU0EgPSAweDAwCiAgICAgICAgICAgICAgICBQV1NU
ID0gMHhEMwogICAgICAgICAgICAgICAgUFczUyA9IDB4MDAKICAgICAgICAgICAgfQogICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBDU0EgPSAweDAx
CiAgICAgICAgICAgICAgICBQV1NUID0gMHhEMAogICAgICAgICAgICAgICAgUFczUyA9IDB4
MDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFk
ZHJlc3MgKDB4JVgpLl9JTkkgIFBDU0EgPSAweCVYICBQV1NUID0gMHglWCAgUFczUyA9IDB4
JVhcbiIsIERBRFIsIFBDU0EsIFBXU1QsIFBXM1MsIDB4MDAsIDB4MDApCiAgICAgICAgICAg
IElmIChDb25kUmVmT2YgKFNJTkkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBT
SU5JICgpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1JFRywg
MiwgU2VyaWFsaXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkKICAgICAgICB7
CiAgICAgICAgICAgIElmICgoKEFyZzAgPT0gMHgwMikgJiYgKEFyZzEgPT0gMHgwMSkpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERTVEEgPT0gMHgwRikpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoUlBSTSAoKERBRFIgKyAw
eDA0KSwgMHgwMSkgJiAweEZDKSA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIFBDU0EgPSAweDAxCiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChB
cmcwID09IDB4MDIpICYmIChBcmcxID09IDB4MDApKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgUENTQSA9IDB4MDAKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKENv
bmRSZWZPZiAoU1JFRykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNSRUcgKEFy
ZzAsIEFyZzEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wt
UENJZSBBZGRyZXNzICgweCVYKS5fUkVHICglZCAlZCkgIFBDU0EgPSAlZFxuIiwgREFEUiwg
QXJnMCwgQXJnMSwgUENTQSwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhv
ZCAoX0RTVywgMywgU2VyaWFsaXplZCkgIC8vIF9EU1c6IERldmljZSBTbGVlcCBXYWtlCiAg
ICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChTRFNXKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgU0RTVyAoQXJnMCwgQXJnMSwgQXJnMikKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9E
U1cgKCVkICVkICVkKSAgUENTQSA9ICVkXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBBcmcyLCBQ
Q1NBLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxp
emVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgIHsKICAgICAgICAgICAgTTQ2
MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9QUzBcbiIsIERBRFIsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQ
UzApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQUFMwICgpCiAgICAgICAgICAg
IH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8v
IF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIE9F
TS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUFMzXG4iLCBEQURSLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMzKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgUFBTMyAoKQogICAgICAgICAgICB9CiAgICAg
ICAgfQoKICAgICAgICBQb3dlclJlc291cmNlIChQV1JTLCAweDAwLCAweDAwMDApCiAgICAg
ICAgewogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RB
OiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFT
TC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX1NUQSA9IDB4JVhcbiIsIERBRFIsIFBXM1Ms
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m
IChQU1RBKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQU1RBICgp
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQVzNTKSAvKiBc
X1NCXy5QQ0kwLkdQMTkuTkhJMS5QVzNTICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE1ldGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgSWYgKChQVzNTID09IDB4MDApKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFBXM1MgPSAweDAxCiAgICAgICAgICAgICAg
ICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX09OID0g
MHglWFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQX09OKSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIFBfT04gKCkKICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo
X09GRiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBJZiAoKFBXM1MgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUFczUyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBN
NDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT0ZGID0gMHglWFxu
IiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICBJZiAoQ29uZFJlZk9mIChQX09GKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIFBfT0YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE5hbWUgKF9Q
UjAsIFBhY2thZ2UgKDB4MDEpICAvLyBfUFIwOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQwCiAg
ICAgICAgewogICAgICAgICAgICBQV1JTCiAgICAgICAgfSkKICAgICAgICBOYW1lIChfUFIz
LCBQYWNrYWdlICgweDAxKSAgLy8gX1BSMzogUG93ZXIgUmVzb3VyY2VzIGZvciBEM2hvdAog
ICAgICAgIHsKICAgICAgICAgICAgUFdSUwogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUg
KFxfU0IuUENJMC5HUDExKQogICAgewogICAgICAgIE1ldGhvZCAoX0RFUCwgMCwgU2VyaWFs
aXplZCkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgIHsKICAgICAgICAgICAgSWYg
KChNMDQ2ID09IDB4QUEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAg
PSBNMDQ1ICgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKChcRERFUCA9PSAw
eDAxKSAmJiBDb25kUmVmT2YgKFxfU0IuUENJMC5HUDExLl9EU0QpKSAmJiAoQ29uZFJlZk9m
IChcX1NCLlBDSTAuR1AxOS5OSEkwCiAgICAgICAgICAgICAgICApICYmIChNMDQ2IDwgMHgw
QikpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1c
XF9TQi5QQ0kwLkdQMTEuX0RFUCAgUmV0dXJuIFBhY2thZ2UgKDEpIHtcXF9TQi5QQ0kwLkdQ
MTkuTkhJMH1cbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkdQMTkuTkhJMAogICAgICAgICAgICAgICAg
fSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDExLl9ERVAgIFJldHVy
biBQYWNrYWdlICgxKSB7XFxfU0IuUENJMH1cbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwCiAgICAgICAg
ICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9T
MFcsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAg
ICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzRjc0KQogICAgICAgICAgICBMb2NhbDAgPSAw
eDAwCiAgICAgICAgICAgIElmICgoXFA0RDMgIT0gMHg1NSkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIExvY2FsMCA9IFxQNEQzCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUzBXICgpICBSZXR1cm4g
JWRcbiIsIERBRFIsIExvY2FsMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9QUlcsIDAs
IFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAg
ICB7CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDExLl9QUlcg
KCkgIFJldHVybiBQYWNrYWdlICgyKSB7MHgxQSwgMHgwNH1cbiIsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgw
MikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgxQSwgCiAgICAgICAgICAgICAg
ICAweDA0CiAgICAgICAgICAgIH0pCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNSRUcs
IDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNGNzApCiAg
ICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDExLl9SRUcgKCVkICVk
KVxuIiwgQXJnMCwgQXJnMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9Cgog
ICAgICAgIE1ldGhvZCAoUFBTMCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg
ICAgIE0wMDAgKDB4M0Y3MSkKICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAg
IE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDExLl9QUzAgKClcbiIsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg
KFBQUzMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNG
NzMpCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDExLl9QUzMg
KClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgfQoK
ICAgICAgICBNZXRob2QgKFBTVEEsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg
ICAgICBNMDAwICgweDNGNzUpCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0Iu
UENJMC5HUDExLlBXUlMuX1NUQSAoKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoUF9PTiwgMCwgU2VyaWFsaXpl
ZCkKICAgICAgICB7CiAgICAgICAgICAgIE0wMDAgKDB4M0Y3NikKICAgICAgICAgICAgTTQ2
MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTEuUFdSUy5fT04gKClcbiIsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg
KFBfT0YsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNG
NzgpCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDExLlBXUlMu
X09GRiAoKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICB9CgogICAgICAgIE5hbWUgKERBRFIsIDB4RUVFRUVFRUUpCiAgICAgICAgTmFtZSAoRFNU
QSwgMHhFRSkKICAgICAgICBOYW1lIChEQlVTLCAweEVFRUUpCiAgICAgICAgTmFtZSAoUENT
QSwgMHgwMCkKICAgICAgICBOYW1lIChQV1NULCAweEQzKQogICAgICAgIE5hbWUgKEVTVEEs
IDB4RUUpCiAgICAgICAgTmFtZSAoRUJVUywgMHhFRUVFKQogICAgICAgIE5hbWUgKFBXM1Ms
IDB4MDApCiAgICAgICAgTWV0aG9kIChSUFJNLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAg
IHsKICAgICAgICAgICAgTG9jYWwwID0gQXJnMAogICAgICAgICAgICBPcGVyYXRpb25SZWdp
b24gKFZBUk0sIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICBGaWVs
ZCAoVkFSTSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBWQVJSLCAgIDMyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIExvY2Fs
MSA9IFZBUlIgLyogXF9TQl8uUENJMC5HUDExLlJQUk0uVkFSUiAqLwogICAgICAgICAgICBJ
ZiAoKEFyZzEgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2Fs
MSAmPSAweEZGCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAw
eDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxICY9IDB4RkZGRgog
ICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMykpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweDAwRkZGRkZGCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVY
KS5SUFJNICgweCVYIDB4JVgpID0gMHglWFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgTG9jYWwx
LCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICB9Cgog
ICAgICAgIE1ldGhvZCAoV1BSTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAg
ICAgICAgIExvY2FsMCA9IEFyZzAKICAgICAgICAgICAgSWYgKChBcmcxID09IDB4MDEpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkEsIFN5
c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAxKQogICAgICAgICAgICAgICAgRmllbGQgKFZBUkEs
IEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBWQVJFLCAgIDgKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBWQVJFID0gQXJnMgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEg
PT0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lv
biAoVkFSQiwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDIpCiAgICAgICAgICAgICAgICBG
aWVsZCAoVkFSQiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIFZBUkYsICAgMTYKICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBWQVJGID0gQXJnMgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVs
c2VJZiAoKEFyZzEgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9w
ZXJhdGlvblJlZ2lvbiAoVkFSQywgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDMpCiAgICAg
ICAgICAgICAgICBGaWVsZCAoVkFSQywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZBUkcsICAgMjQKICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICBWQVJHID0gQXJnMgogICAgICAgICAgICB9CiAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9u
UmVnaW9uIChWQVJELCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAg
ICAgIEZpZWxkIChWQVJELCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkFSSCwgICAzMgogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIFZBUkggPSBBcmcyCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5XUFJNICgweCVYIDB4
JVggMHglWClcbiIsIERBRFIsIEFyZzAsIEFyZzEsIEFyZzIsIDB4MDAsIDB4MDApCiAgICAg
ICAgfQoKICAgICAgICBNZXRob2QgKFNQRFAsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg
ewogICAgICAgICAgICBMb2NhbDUgPSAweDdGRkZGRkZGCiAgICAgICAgICAgIExvY2FsNSB8
PSAweDgwMDAwMDAwCiAgICAgICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAgICAgICAgTG9j
YWwwID0gMHgwMAogICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8PSAweDFGKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMAogICAgICAgICAgICAgICAg
V2hpbGUgKChMb2NhbDEgPD0gMHgwNykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwzID0gKCgoQXJnMCA8PCAweDE0KSAmIDB4MEZGMDAwMDApIHwgKChM
b2NhbDAgPDwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYpICYgMHgwMDBGODAwMCkp
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwzIHw9ICgoTG9jYWwxIDw8IDB4MEMpICYgMHg3
MDAwKQogICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IFJQUk0gKChNMDgzICsgTG9jYWwz
KSwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDQgIT0gTG9jYWw1KSAm
JiAoTG9jYWw0ICE9IDB4MDApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMiB8PSAoMHgwMSA8PCBMb2NhbDApCiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKExvY2FsMSA9PSAweDAwKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDErKwogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5TUERQ
ICgweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIExvY2FsMiwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDIpCiAgICAgICAgfQoKICAgICAgICBNZXRo
b2QgKFNQQ0gsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2Nh
bDAgPSAweDAwCiAgICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChBcmcwICsgMHgzNCksIDB4
MDEpCiAgICAgICAgICAgIFdoaWxlICgoTG9jYWwxICE9IDB4MDApKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBMb2NhbDIgPSBSUFJNICgoREFEUiArIExvY2FsMSksIDB4MDEp
CiAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDIgPT0gMHgwMCkgfHwgKExvY2FsMiA9PSAw
eEZGKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMiA9PSBBcmcxKSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDEK
ICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIExvY2FsMSA9IFJQUk0gKChEQURSICsgKExvY2FsMSArIDB4MDEpKSwgMHgwMSkK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJl
c3MgKDB4JVgpLlNQQ0ggKDB4JVgsIDB4JVgpID0gMHglWFxuIiwgREFEUiwgQXJnMCwgQXJn
MSwgTG9jYWwwLCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAg
ICAgICB9CgogICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6
IFN0YXR1cwogICAgICAgIHsKICAgICAgICAgICAgSWYgKCgoRFNUQSA9PSAweEVFKSB8fCAo
RVNUQSA9PSAweEVFKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoREJV
UyA9PSAweEVFRUUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm
IChDb25kUmVmT2YgKF5eRUJVUykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBEQlVTID0gXl5FQlVTIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEQlVTID0gMHgwMAogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ
ZiAoKERCVVMgIT0gMHhFRUVFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBJZiAoKERBRFIgPT0gMHhFRUVFRUVFRSkpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoKChfQURSIDw8IDB4MEMpICYgMHg3
MDAwKSB8ICgoX0FEUiA+PiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEpICYg
MHgwMDBGODAwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAoKERCVVMg
PDwgMHgxNCkgJiAweDBGRjAwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICBEQURSID0g
KE0wODMgKyBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAweDdGRkZGRkZGCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9
IDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiAr
IDB4MDApLCAweDA0KQogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSA9PSBMb2Nh
bDApIHx8IChMb2NhbDEgPT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAg
RVNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEQlVTICE9IDB4MDAp
KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDIgPSBeXlNQQ0ggKF5eREFEUiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIElmICgoKF5eUlBSTSAoKF5eREFEUiArIChMb2NhbDIgKyAweDE0KSksIDB4MDEp
ICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCkgPT0gMHg0MCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RB
ID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs
c2VJZiAoKFJQUk0gKChEQURSICsgMHgwQSksIDB4MDIpID09IDB4MDYwNCkpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBFQlVTID0gUlBSTSAoKERB
RFIgKyAweDE5KSwgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gU1BD
SCAoREFEUiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoKFJQUk0gKChE
QURSICsgKExvY2FsMiArIDB4MDIpKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDAxKSA+PiAweDA0KSAmIDB4MEYpID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVCVVMgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RB
ID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRWxzZUlmICgoU1BEUCAoRUJVUykgPT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNU
QSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRVNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgo
UlBSTSAoKERBRFIgKyAoTG9jYWwyICsgMHgxQSkpLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDEpICYgMHg0MCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURSICsgKExv
Y2FsMiArIDB4MTQpKSwgMHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDQwKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4
MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBG
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweDBGCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNU
QSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAg
ICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAxKSAmJiAoUFdTVCA9PSAweEQz
KSkgJiYgKFBXM1MgPT0gMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQ
V1NUID0gMHhEMAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAw
eDAwKSAmJiAoUFdTVCA9PSAweEQwKSkgJiYgKFBXM1MgPT0gMHgwMCkpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBQV1NUID0gMHhEMwogICAgICAgICAgICB9CgogICAgICAg
ICAgICBJZiAoQ29uZFJlZk9mIChTU1RBKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgU1NUQSAoKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNM
LVBDSWUgQWRkcmVzcyAoMHglWCkuX1NUQSA9IDB4JVggIFBXU1QgPSAweCVYICBEQlVTID0g
MHglWCAgRVNUQSA9IDB4JVggIEVCVVMgPSAweCVYXG4iLCBEQURSLCBEU1RBLCBQV1NULCBE
QlVTLCBFU1RBLCBFQlVTKQogICAgICAgICAgICBSZXR1cm4gKERTVEEpIC8qIFxfU0JfLlBD
STAuR1AxMS5EU1RBICovCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9JTkksIDAsIFNl
cmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgewogICAgICAgICAgICBM
b2NhbDAgPSAweDdGRkZGRkZGCiAgICAgICAgICAgIExvY2FsMCB8PSAweDgwMDAwMDAwCiAg
ICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChEQURSICsgMHgwMCksIDB4MDQpCiAgICAgICAg
ICAgIElmICgoKExvY2FsMSA9PSBMb2NhbDApIHx8IChMb2NhbDEgPT0gMHgwMCkpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBQQ1NBID0gMHgwMAogICAgICAgICAgICAgICAg
UFdTVCA9IDB4RDMKICAgICAgICAgICAgICAgIFBXM1MgPSAweDAwCiAgICAgICAgICAgIH0K
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQQ1NBID0g
MHgwMQogICAgICAgICAgICAgICAgUFdTVCA9IDB4RDAKICAgICAgICAgICAgICAgIFBXM1Mg
PSAweDAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJ
ZSBBZGRyZXNzICgweCVYKS5fSU5JICBQQ1NBID0gMHglWCAgUFdTVCA9IDB4JVggIFBXM1Mg
PSAweCVYXG4iLCBEQURSLCBQQ1NBLCBQV1NULCBQVzNTLCAweDAwLCAweDAwKQogICAgICAg
ICAgICBJZiAoQ29uZFJlZk9mIChTSU5JKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgU0lOSSAoKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9S
RUcsIDIsIFNlcmlhbGl6ZWQpICAvLyBfUkVHOiBSZWdpb24gQXZhaWxhYmlsaXR5CiAgICAg
ICAgewogICAgICAgICAgICBJZiAoKChBcmcwID09IDB4MDIpICYmIChBcmcxID09IDB4MDEp
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChEU1RBID09IDB4MEYpKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURS
ICsgMHgwNCksIDB4MDEpICYgMHhGQykgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBQQ1NBID0gMHgwMQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg
KCgoQXJnMCA9PSAweDAyKSAmJiAoQXJnMSA9PSAweDAwKSkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFBDU0EgPSAweDAwCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElm
IChDb25kUmVmT2YgKFNSRUcpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTUkVH
IChBcmcwLCBBcmcxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0t
QVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1JFRyAoJWQgJWQpICBQQ1NBID0gJWRcbiIsIERB
RFIsIEFyZzAsIEFyZzEsIFBDU0EsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBN
ZXRob2QgKF9EU1csIDMsIFNlcmlhbGl6ZWQpICAvLyBfRFNXOiBEZXZpY2UgU2xlZXAgV2Fr
ZQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoU0RTVykpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFNEU1cgKEFyZzAsIEFyZzEsIEFyZzIpCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVY
KS5fRFNXICglZCAlZCAlZCkgIFBDU0EgPSAlZFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgQXJn
MiwgUENTQSwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2Vy
aWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICB7CiAgICAgICAgICAg
IE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUFMwXG4iLCBEQURSLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoQ29uZFJlZk9m
IChQUFMwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFBTMCAoKQogICAgICAg
ICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQp
ICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgi
ICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1BTM1xuIiwgREFEUiwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMykp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgfQog
ICAgICAgIH0KCiAgICAgICAgUG93ZXJSZXNvdXJjZSAoUFdSUywgMHgwMCwgMHgwMDAwKQog
ICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8g
X1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCIgIE9F
TS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5QV1JTLl9TVEEgPSAweCVYXG4iLCBEQURSLCBQ
VzNTLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgSWYgKENvbmRS
ZWZPZiAoUFNUQSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUFNU
QSAoKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoUFczUykg
LyogXF9TQl8uUENJMC5HUDExLlBXM1MgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TWV0aG9kIChfT04sIDAsIFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBXM1MgPT0gMHgwMCkpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUFczUyA9IDB4MDEKICAgICAgICAgICAgICAg
ICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT04gPSAw
eCVYXG4iLCBEQURSLCBQVzNTLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAg
ICAgICAgICAgIElmIChDb25kUmVmT2YgKFBfT04pKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgUF9PTiAoKQogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChf
T0ZGLCAwLCBTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIgT2ZmCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIElmICgoUFczUyA9PSAweDAxKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBQVzNTID0gMHgwMAogICAgICAgICAgICAgICAgICAgIE00
NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5QV1JTLl9PRkYgPSAweCVYXG4i
LCBEQURSLCBQVzNTLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAg
ICAgIElmIChDb25kUmVmT2YgKFBfT0YpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgUF9PRiAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX1BS
MCwgUGFja2FnZSAoMHgwMSkgIC8vIF9QUjA6IFBvd2VyIFJlc291cmNlcyBmb3IgRDAKICAg
ICAgICB7CiAgICAgICAgICAgIFBXUlMKICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QUjMs
IFBhY2thZ2UgKDB4MDEpICAvLyBfUFIzOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQzaG90CiAg
ICAgICAgewogICAgICAgICAgICBQV1JTCiAgICAgICAgfSkKICAgICAgICBOYW1lIChYRFNE
LCBQYWNrYWdlICgweDA2KQogICAgICAgIHsKICAgICAgICAgICAgVG9VVUlEICgiNjIxMWUy
YzAtNThhMy00YWYzLTkwZTEtOTI3YTRlMGM1NWE0IikgLyogVW5rbm93biBVVUlEICovLCAK
ICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAiSG90UGx1Z1N1cHBvcnRJbkQzIiwgCiAgICAgICAgICAgICAgICAgICAgMHgwMQogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFRvVVVJRCAoImVm
Y2MwNmNjLTczYWMtNGJjMy1iZmYwLTc2MTQzODA3YzM4OSIpIC8qIFVua25vd24gVVVJRCAq
LywgCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgIkV4dGVybmFsRmFjaW5nUG9ydCIsIAogICAgICAgICAgICAgICAgICAgIDB4MDEK
ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlVJRCIsIAogICAgICAgICAg
ICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBUb1VVSUQgKCJkYWZmZDgxNC02ZWJhLTRkOGMtOGE5MS1iYzliYmY0YWEzMDEi
KSAvKiBEZXZpY2UgUHJvcGVydGllcyBmb3IgX0RTRCAqLywgCiAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInVzYjQtaG9zdC1pbnRl
cmZhY2UiLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuR1AxOS5OSEkwCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJ1c2I0LXBvcnQtbnVtYmVyIiwgCiAg
ICAgICAgICAgICAgICAgICAgMHgwMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CiAgICAgICAgfSkKICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBf
RFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgewogICAgICAgICAgICBJZiAo
KEFyZzAgPT0gVG9VVUlEICgiZTVjOTM3ZDAtMzU1My00ZDdhLTkxMTctZWE0ZDE5YzM0MzRk
IikgLyogRGV2aWNlIExhYmVsaW5nIEludGVyZmFjZSAqLykpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzAsIDB4MDAsIFVJRDApCiAgICAg
ICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVxcX1NCLlBDSTAuR1AxMS5fRFNNIChVVUlE
IDB4JVgsIDB4JVgsIDB4JVgpXG4iLCBVSUQwLCBBcmcxLCBBcmcyLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDApCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKEFyZzEpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2Ug
KDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBSZXR1cm4gMHgwXG4iLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJldHVybiAoQnVmZmVyICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDEpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAg
ICBSZXR1cm4gMHgyMVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgwMSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAweDIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gIQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAgIFJldHVybiAweDYxXG4iLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjEgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBhCiAgICAgICAgICAgICAgICAgICAgICAgIH0p
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDUp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFy
ZzEgPj0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElmICgoXFJDUlMgIT0gMHg1NSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gXFJDUlMKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNNDYw
ICgiICAgIFJldHVybiAlZFxuIiwgTG9jYWwwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgQ2FzZSAoMHgwNikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBSZXR1cm4gUGFj
a2FnZSAoNCkgezB4MDIsIDB4QzgsIDB4MDIsIDB4Qzh9XG4iLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu
IChQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4QzgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIs
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzgKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoK
ICAgICAgICBEZXZpY2UgKFNXVVMpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfQURS
LCAweDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBNZXRob2QgKF9STVYsIDAs
IFNlcmlhbGl6ZWQpICAvLyBfUk1WOiBSZW1vdmFsIFN0YXR1cwogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVxcX1NCLlBDSTAuR1AxMS5TV1VTLl9S
TVYgKCkgIFJldHVybiAwXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNZXRob2QgKF9TMFcsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZpY2Ug
V2FrZSBTdGF0ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNMDAwICgweDNGOTQp
CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICBJZiAoKFxI
MEQzICE9IDB4NTUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9IFxIMEQzCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTTQ2MCAo
IiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTEuU1dVUy5fUzBXICgpICBSZXR1cm4gJWRcbiIs
IExvY2FsMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
IFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9Q
UlcsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5Q
Q0kwLkdQMTEuU1dVUy5fUFJXICgpICBSZXR1cm4gUGFja2FnZSAoMikgezB4MUEsIDB4MDR9
XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAg
ICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIDB4MUEsIAogICAgICAgICAgICAgICAgICAgIDB4MDQKICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoU1JFRywgMiwgU2Vy
aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTAwMCAoMHgzRjkwKQog
ICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTEuU1dVUy5f
UkVHICglZCAlZClcbiIsIEFyZzAsIEFyZzEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoUFBTMCwgMCwgU2VyaWFsaXplZCkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTAwMCAoMHgzRjkxKQogICAgICAgICAg
ICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTEuU1dVUy5fUFMwICgpXG4i
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBNZXRob2QgKFBQUzMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIE0wMDAgKDB4M0Y5MykKICAgICAgICAgICAgICAgIE00NjAgKCIg
IE9FTS1BU0wtXFxfU0IuUENJMC5HUDExLlNXVVMuX1BTMyAoKVxuIiwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0
aG9kIChQU1RBLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBNMDAwICgweDNGOTUpCiAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVxcX1NC
LlBDSTAuR1AxMS5TV1VTLlBXUlMuX1NUQSAoKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChQX09O
LCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNMDAwICgw
eDNGOTYpCiAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVxcX1NCLlBDSTAuR1Ax
MS5TV1VTLlBXUlMuX09OICgpXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBfT0YsIDAsIFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0wMDAgKDB4M0Y5OCkKICAg
ICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDExLlNXVVMuUFdS
Uy5fT0ZGICgpXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChEQURSLCAweEVFRUVFRUVFKQogICAgICAg
ICAgICBOYW1lIChEU1RBLCAweEVFKQogICAgICAgICAgICBOYW1lIChEQlVTLCAweEVFRUUp
CiAgICAgICAgICAgIE5hbWUgKFBDU0EsIDB4MDApCiAgICAgICAgICAgIE5hbWUgKFBXU1Qs
IDB4RDMpCiAgICAgICAgICAgIE5hbWUgKEVTVEEsIDB4RUUpCiAgICAgICAgICAgIE5hbWUg
KEVCVVMsIDB4RUVFRSkKICAgICAgICAgICAgTmFtZSAoUFczUywgMHgwMCkKICAgICAgICAg
ICAgTWV0aG9kIChSUFJNLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp
b24gKFZBUk0sIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICAgICAg
RmllbGQgKFZBUk0sIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBWQVJSLCAgIDMyCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgTG9jYWwxID0gVkFSUiAvKiBcX1NCXy5QQ0kwLkdQMTEuU1dVUy5S
UFJNLlZBUlIgKi8KICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAxKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHhGRgogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAyKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHhGRkZGCiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDMp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweDAw
RkZGRkZGCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VN
LUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlJQUk0gKDB4JVggMHglWCkgPSAweCVYXG4iLCBE
QURSLCBBcmcwLCBBcmcxLCBMb2NhbDEsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBS
ZXR1cm4gKExvY2FsMSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXUFJN
LCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2Nh
bDAgPSBBcmcwCiAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMSkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJBLCBT
eXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMSkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAo
VkFSQSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgVkFSRSwgICA4CiAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICBWQVJFID0gQXJnMgogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkIsIFN5c3RlbU1l
bW9yeSwgTG9jYWwwLCAweDAyKQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChWQVJCLCBB
bnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBWQVJGLCAgIDE2CiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBWQVJGID0gQXJnMgogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAzKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkMsIFN5c3RlbU1lbW9yeSwg
TG9jYWwwLCAweDAzKQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChWQVJDLCBBbnlBY2Ms
IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBWQVJHLCAgIDI0CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICBWQVJHID0gQXJnMgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlv
blJlZ2lvbiAoVkFSRCwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAg
ICAgICAgICAgRmllbGQgKFZBUkQsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFZBUkgsICAgMzIKICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFZBUkggPSBBcmcyCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0ll
IEFkZHJlc3MgKDB4JVgpLldQUk0gKDB4JVggMHglWCAweCVYKVxuIiwgREFEUiwgQXJnMCwg
QXJnMSwgQXJnMiwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0
aG9kIChTUERQLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBMb2NhbDUgPSAweDdGRkZGRkZGCiAgICAgICAgICAgICAgICBMb2NhbDUgfD0gMHg4
MDAwMDAwMAogICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMAogICAgICAgICAgICAgICAg
TG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPD0gMHgxRikp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwxIDw9IDB4MDcpKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gKCgoQXJnMCA8
PCAweDE0KSAmIDB4MEZGMDAwMDApIHwgKChMb2NhbDAgPDwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDBGKSAmIDB4MDAwRjgwMDApKQogICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDMgfD0gKChMb2NhbDEgPDwgMHgwQykgJiAweDcwMDApCiAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsNCA9IFJQUk0gKChNMDgzICsgTG9jYWwzKSwgMHgwNCkKICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw0ICE9IExvY2FsNSkgJiYgKExvY2FsNCAh
PSAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMiB8PSAoMHgwMSA8PCBMb2NhbDApCiAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoTG9jYWwxID09IDB4
MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDErKwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNNDYw
ICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuU1BEUCAoMHglWCkgPSAweCVYXG4i
LCBEQURSLCBBcmcwLCBMb2NhbDIsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAg
ICBSZXR1cm4gKExvY2FsMikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChT
UENILCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBM
b2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoQXJnMCArIDB4
MzQpLCAweDAxKQogICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDEgIT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gUlBSTSAoKERB
RFIgKyBMb2NhbDEpLCAweDAxKQogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMiA9
PSAweDAwKSB8fCAoTG9jYWwyID09IDB4RkYpKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMiA9PSBBcmcxKSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMQogICAgICAg
ICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwxID0gUlBSTSAoKERBRFIgKyAoTG9jYWwxICsgMHgwMSkpLCAw
eDAxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1B
U0wtUENJZSBBZGRyZXNzICgweCVYKS5TUENIICgweCVYLCAweCVYKSA9IDB4JVhcbiIsIERB
RFIsIEFyZzAsIEFyZzEsIExvY2FsMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFJl
dHVybiAoTG9jYWwwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEs
IDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgSWYgKCgoRFNUQSA9PSAweEVFKSB8fCAoRVNUQSA9PSAweEVFKSkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChEQlVTID09IDB4RUVFRSkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29u
ZFJlZk9mICheXkVCVVMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEQlVTID0gXl5FQlVTIC8qIFxfU0JfLlBDSTAuR1AxMS5FQlVT
ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBEQlVTID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKERCVVMgIT0gMHhFRUVFKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoREFE
UiA9PSAweEVFRUVFRUVFKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKCgoX0FEUiA8PCAweDBDKSAmIDB4NzAwMCkg
fCAoKF9BRFIgPj4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSkgJiAw
eDAwMEY4MDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAoKERC
VVMgPDwgMHgxNCkgJiAweDBGRjAwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
REFEUiA9IChNMDgzICsgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDdGRkZGRkZGCiAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsMCB8PSAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICAgICAgICAg
IExvY2FsMSA9IFJQUk0gKChEQURSICsgMHgwMCksIDB4MDQpCiAgICAgICAgICAgICAgICAg
ICAgICAgIElmICgoKExvY2FsMSA9PSBMb2NhbDApIHx8IChMb2NhbDEgPT0gMHgwMCkpKQog
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBE
U1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoREJVUyAhPSAweDAwKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDIgPSBeXlNQQ0ggKF5eREFEUiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKCheXlJQUk0gKCheXkRBRFIgKyAoTG9jYWwyICsgMHgxNCkpLCAweDAx
KSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwKSA9PSAweDQw
KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFJQUk0gKChEQURSICsg
MHgwQSksIDB4MDIpID09IDB4MDYwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVCVVMgPSBSUFJNICgoREFEUiArIDB4MTkpLCAw
eDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gU1BDSCAoREFEUiwg
MHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKChSUFJNICgoREFEUiAr
IChMb2NhbDIgKyAweDAyKSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDEpID4+IDB4MDQpICYgMHgwRikgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQlVTID09IDB4
MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoU1BEUCAo
RUJVUykgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNl
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVsc2VJZiAoKChSUFJNICgoREFEUiArIChMb2NhbDIgKyAweDFBKSksIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEpICYgMHg0MCkgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKCgoUlBSTSAoKERBRFIgKyAoTG9jYWwyICsgMHgxNCkpLCAweDAxKSAmIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwKSA9PSAweDAwKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIERTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERT
VEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAw
eEVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoRUJV
UyA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwRgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKCgoKFBDU0EgPT0gMHgwMSkgJiYgKFBXU1Qg
PT0gMHhEMykpICYmIChQVzNTID09IDB4MDEpKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBQV1NUID0gMHhEMAogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIElmICgoKChQQ1NBID09IDB4MDApICYmIChQV1NUID09IDB4RDApKSAmJiAoUFcz
UyA9PSAweDAwKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUFdT
VCA9IDB4RDMKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJl
Zk9mIChTU1RBKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTU1RB
ICgpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFT
TC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9TVEEgPSAweCVYICBQV1NUID0gMHglWCAgREJVUyA9
IDB4JVggIEVTVEEgPSAweCVYICBFQlVTID0gMHglWFxuIiwgREFEUiwgRFNUQSwgUFdTVCwg
REJVUywgRVNUQSwgRUJVUykKICAgICAgICAgICAgICAgIFJldHVybiAoRFNUQSkgLyogXF9T
Ql8uUENJMC5HUDExLlNXVVMuRFNUQSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBN
ZXRob2QgKF9JTkksIDAsIFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4N0ZGRkZGRkYKICAgICAgICAg
ICAgICAgIExvY2FsMCB8PSAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBS
UFJNICgoREFEUiArIDB4MDApLCAweDA0KQogICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwx
ID09IExvY2FsMCkgfHwgKExvY2FsMSA9PSAweDAwKSkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgUENTQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBQV1NU
ID0gMHhEMwogICAgICAgICAgICAgICAgICAgIFBXM1MgPSAweDAwCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgUENTQSA9IDB4MDEKICAgICAgICAgICAgICAgICAgICBQV1NUID0gMHhEMAog
ICAgICAgICAgICAgICAgICAgIFBXM1MgPSAweDAxCiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9JTkkg
IFBDU0EgPSAweCVYICBQV1NUID0gMHglWCAgUFczUyA9IDB4JVhcbiIsIERBRFIsIFBDU0Es
IFBXU1QsIFBXM1MsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m
IChTSU5JKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTSU5JICgp
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo
X1JFRywgMiwgU2VyaWFsaXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoQXJnMCA9PSAweDAyKSAmJiAoQXJn
MSA9PSAweDAxKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg
KChEU1RBID09IDB4MEYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgSWYgKCgoUlBSTSAoKERBRFIgKyAweDA0KSwgMHgwMSkgJiAweEZDKSA9PSAw
eDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUENTQSA9IDB4MDEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKChB
cmcwID09IDB4MDIpICYmIChBcmcxID09IDB4MDApKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBQQ1NBID0gMHgwMAogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIElmIChDb25kUmVmT2YgKFNSRUcpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFNSRUcgKEFyZzAsIEFyZzEpCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9S
RUcgKCVkICVkKSAgUENTQSA9ICVkXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBQQ1NBLCAweDAw
LCAweDAwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU1csIDMsIFNl
cmlhbGl6ZWQpICAvLyBfRFNXOiBEZXZpY2UgU2xlZXAgV2FrZQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChTRFNXKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBTRFNXIChBcmcwLCBBcmcxLCBBcmcyKQogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNz
ICgweCVYKS5fRFNXICglZCAlZCAlZCkgIFBDU0EgPSAlZFxuIiwgREFEUiwgQXJnMCwgQXJn
MSwgQXJnMiwgUENTQSwgMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k
IChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAo
MHglWCkuX1BTMFxuIiwgREFEUiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzApKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFBQUzAgKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BT
MzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgi
ICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1BTM1xuIiwgREFEUiwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQ
UzMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBQUzMgKCkKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgUG93ZXJSZXNvdXJj
ZSAoUFdSUywgMHgwMCwgMHgwMDAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBN
ZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRk
cmVzcyAoMHglWCkuUFdSUy5fU1RBID0gMHglWFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQU1RB
KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBTVEEg
KCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAo
UFczUykgLyogXF9TQl8uUENJMC5HUDExLlNXVVMuUFczUyAqLwogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8gX09O
XzogUG93ZXIgT24KICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo
KFBXM1MgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBQVzNTID0gMHgwMQogICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBP
RU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT04gPSAweCVYXG4iLCBEQURSLCBQ
VzNTLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICBJ
ZiAoQ29uZFJlZk9mIChQX09OKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUF9PTiAoKQogICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIE1ldGhvZCAoX09GRiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoUFczUyA9PSAweDAx
KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBXM1Mg
PSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBB
ZGRyZXNzICgweCVYKS5QV1JTLl9PRkYgPSAweCVYXG4iLCBEQURSLCBQVzNTLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m
IChQX09GKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUF9PRiAoKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBOYW1lIChfUFIwLCBQYWNrYWdlICgweDAxKSAgLy8gX1BSMDogUG93ZXIgUmVzb3VyY2Vz
IGZvciBEMAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQV1JTCiAgICAgICAgICAg
IH0pCiAgICAgICAgICAgIE5hbWUgKF9QUjMsIFBhY2thZ2UgKDB4MDEpICAvLyBfUFIzOiBQ
b3dlciBSZXNvdXJjZXMgZm9yIEQzaG90CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IFBXUlMKICAgICAgICAgICAgfSkKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0Iu
UENJMC5HUDEyKQogICAgewogICAgICAgIE1ldGhvZCAoX0RFUCwgMCwgU2VyaWFsaXplZCkg
IC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgIHsKICAgICAgICAgICAgSWYgKChNMDQ2
ID09IDB4QUEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBNMDQ1
ICgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKChcRERFUCA9PSAweDAxKSAm
JiBDb25kUmVmT2YgKFxfU0IuUENJMC5HUDEyLl9EU0QpKSAmJiAoQ29uZFJlZk9mIChcX1NC
LlBDSTAuR1AxOS5OSEkxCiAgICAgICAgICAgICAgICApICYmIChNMDQ2IDwgMHgwQikpKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5Q
Q0kwLkdQMTIuX0RFUCAgUmV0dXJuIFBhY2thZ2UgKDEpIHtcXF9TQi5QQ0kwLkdQMTkuTkhJ
MX1cbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAg
ICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgXF9TQi5QQ0kwLkdQMTkuTkhJMQogICAgICAgICAgICAgICAgfSkKICAg
ICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDEyLl9ERVAgIFJldHVybiBQYWNr
YWdlICgxKSB7XFxfU0IuUENJMH1cbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwCiAgICAgICAgICAgICAg
ICB9KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9TMFcsIDAs
IFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgIHsK
ICAgICAgICAgICAgTTAwMCAoMHgzRjg0KQogICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAg
ICAgICAgICAgIElmICgoXFA0RDMgIT0gMHg1NSkpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIExvY2FsMCA9IFxQNEQzCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAg
KCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUzBXICgpICBSZXR1cm4gJWRcbiIs
IERBRFIsIExvY2FsMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0
dXJuIChMb2NhbDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9QUlcsIDAsIFNlcmlh
bGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICB7CiAg
ICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDEyLl9QUlcgKCkgIFJl
dHVybiBQYWNrYWdlICgyKSB7MHgxQSwgMHgwNH1cbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgxQSwgCiAgICAgICAgICAgICAgICAweDA0
CiAgICAgICAgICAgIH0pCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNSRUcsIDIsIFNl
cmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNGODApCiAgICAgICAg
ICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDEyLl9SRUcgKCVkICVkKVxuIiwg
QXJnMCwgQXJnMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAg
IE1ldGhvZCAoUFBTMCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE0w
MDAgKDB4M0Y4MSkKICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAgIE00NjAg
KCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDEyLl9QUzAgKClcbiIsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBQUzMs
IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNGODMpCiAg
ICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDEyLl9QUzMgKClcbiIs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAg
ICBNZXRob2QgKFBTVEEsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBN
MDAwICgweDNGODUpCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5H
UDEyLlBXUlMuX1NUQSAoKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoUF9PTiwgMCwgU2VyaWFsaXplZCkKICAg
ICAgICB7CiAgICAgICAgICAgIE0wMDAgKDB4M0Y4NikKICAgICAgICAgICAgTTQ2MCAoIiAg
T0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTIuUFdSUy5fT04gKClcbiIsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBfT0Ys
IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNGODgpCiAg
ICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDEyLlBXUlMuX09GRiAo
KVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9Cgog
ICAgICAgIE5hbWUgKERBRFIsIDB4RUVFRUVFRUUpCiAgICAgICAgTmFtZSAoRFNUQSwgMHhF
RSkKICAgICAgICBOYW1lIChEQlVTLCAweEVFRUUpCiAgICAgICAgTmFtZSAoUENTQSwgMHgw
MCkKICAgICAgICBOYW1lIChQV1NULCAweEQzKQogICAgICAgIE5hbWUgKEVTVEEsIDB4RUUp
CiAgICAgICAgTmFtZSAoRUJVUywgMHhFRUVFKQogICAgICAgIE5hbWUgKFBXM1MsIDB4MDAp
CiAgICAgICAgTWV0aG9kIChSUFJNLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAg
ICAgICAgICAgTG9jYWwwID0gQXJnMAogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZB
Uk0sIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICBGaWVsZCAoVkFS
TSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBWQVJSLCAgIDMyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIExvY2FsMSA9IFZB
UlIgLyogXF9TQl8uUENJMC5HUDEyLlJQUk0uVkFSUiAqLwogICAgICAgICAgICBJZiAoKEFy
ZzEgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAw
eEZGCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAyKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxICY9IDB4RkZGRgogICAgICAg
ICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMykpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweDAwRkZGRkZGCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5SUFJN
ICgweCVYIDB4JVgpID0gMHglWFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgTG9jYWwxLCAweDAw
LCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICB9CgogICAgICAg
IE1ldGhvZCAoV1BSTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAg
IExvY2FsMCA9IEFyZzAKICAgICAgICAgICAgSWYgKChBcmcxID09IDB4MDEpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkEsIFN5c3RlbU1l
bW9yeSwgTG9jYWwwLCAweDAxKQogICAgICAgICAgICAgICAgRmllbGQgKFZBUkEsIEFueUFj
YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBWQVJFLCAgIDgKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBWQVJF
ID0gQXJnMgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgw
MikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFS
QiwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDIpCiAgICAgICAgICAgICAgICBGaWVsZCAo
VkFSQiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFZBUkYsICAgMTYKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBWQVJGID0gQXJnMgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAo
KEFyZzEgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlv
blJlZ2lvbiAoVkFSQywgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDMpCiAgICAgICAgICAg
ICAgICBGaWVsZCAoVkFSQywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFZBUkcsICAgMjQKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBWQVJHID0gQXJnMgogICAgICAgICAgICB9CiAgICAgICAg
ICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u
IChWQVJELCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgICAgIEZp
ZWxkIChWQVJELCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgVkFSSCwgICAzMgogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIFZBUkggPSBBcmcyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00
NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5XUFJNICgweCVYIDB4JVggMHgl
WClcbiIsIERBRFIsIEFyZzAsIEFyZzEsIEFyZzIsIDB4MDAsIDB4MDApCiAgICAgICAgfQoK
ICAgICAgICBNZXRob2QgKFNQRFAsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAg
ICAgICAgICBMb2NhbDUgPSAweDdGRkZGRkZGCiAgICAgICAgICAgIExvY2FsNSB8PSAweDgw
MDAwMDAwCiAgICAgICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAgICAgICAgTG9jYWwwID0g
MHgwMAogICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8PSAweDFGKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMAogICAgICAgICAgICAgICAgV2hpbGUg
KChMb2NhbDEgPD0gMHgwNykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwzID0gKCgoQXJnMCA8PCAweDE0KSAmIDB4MEZGMDAwMDApIHwgKChMb2NhbDAg
PDwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYpICYgMHgwMDBGODAwMCkpCiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwzIHw9ICgoTG9jYWwxIDw8IDB4MEMpICYgMHg3MDAwKQog
ICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IFJQUk0gKChNMDgzICsgTG9jYWwzKSwgMHgw
NCkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDQgIT0gTG9jYWw1KSAmJiAoTG9j
YWw0ICE9IDB4MDApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMiB8PSAoMHgwMSA8PCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKExvY2FsMSA9PSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDErKwogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5TUERQICgweCVY
KSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIExvY2FsMiwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgUmV0dXJuIChMb2NhbDIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNQ
Q0gsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAw
eDAwCiAgICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChBcmcwICsgMHgzNCksIDB4MDEpCiAg
ICAgICAgICAgIFdoaWxlICgoTG9jYWwxICE9IDB4MDApKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBMb2NhbDIgPSBSUFJNICgoREFEUiArIExvY2FsMSksIDB4MDEpCiAgICAg
ICAgICAgICAgICBJZiAoKChMb2NhbDIgPT0gMHgwMCkgfHwgKExvY2FsMiA9PSAweEZGKSkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMiA9PSBBcmcxKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDEKICAgICAg
ICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IExvY2FsMSA9IFJQUk0gKChEQURSICsgKExvY2FsMSArIDB4MDEpKSwgMHgwMSkKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4
JVgpLlNQQ0ggKDB4JVgsIDB4JVgpID0gMHglWFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgTG9j
YWwwLCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICB9
CgogICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1
cwogICAgICAgIHsKICAgICAgICAgICAgSWYgKCgoRFNUQSA9PSAweEVFKSB8fCAoRVNUQSA9
PSAweEVFKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoREJVUyA9PSAw
eEVFRUUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25k
UmVmT2YgKF5eRUJVUykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBEQlVTID0gXl5FQlVTIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEQlVTID0gMHgwMAogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKERC
VVMgIT0gMHhFRUVFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ
ZiAoKERBRFIgPT0gMHhFRUVFRUVFRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoKChfQURSIDw8IDB4MEMpICYgMHg3MDAwKSB8
ICgoX0FEUiA+PiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEpICYgMHgwMDBG
ODAwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAoKERCVVMgPDwgMHgx
NCkgJiAweDBGRjAwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICBEQURSID0gKE0wODMg
KyBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSAweDdGRkZGRkZGCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAw
MDAwMDAKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIDB4MDAp
LCAweDA0KQogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSA9PSBMb2NhbDApIHx8
IChMb2NhbDEgPT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9
IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEQlVTICE9IDB4MDApKQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDIgPSBeXlNQQ0ggKF5eREFEUiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElmICgoKF5eUlBSTSAoKF5eREFEUiArIChMb2NhbDIgKyAweDE0KSksIDB4MDEpICYgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCkgPT0gMHg0MCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhF
RQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAo
KFJQUk0gKChEQURSICsgMHgwQSksIDB4MDIpID09IDB4MDYwNCkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBFQlVTID0gUlBSTSAoKERBRFIgKyAw
eDE5KSwgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gU1BDSCAoREFE
UiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoKFJQUk0gKChEQURSICsg
KExvY2FsMiArIDB4MDIpKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxKSA+
PiAweDA0KSAmIDB4MEYpID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhF
RQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRWxzZUlmICgoU1BEUCAoRUJVUykgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4
MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgoUlBSTSAo
KERBRFIgKyAoTG9jYWwyICsgMHgxQSkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDEpICYgMHg0MCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURSICsgKExvY2FsMiAr
IDB4MTQpKSwgMHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQw
KSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2VJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4
MEYKICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAg
ICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAxKSAmJiAoUFdTVCA9PSAweEQzKSkgJiYg
KFBXM1MgPT0gMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQV1NUID0g
MHhEMAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAwKSAm
JiAoUFdTVCA9PSAweEQwKSkgJiYgKFBXM1MgPT0gMHgwMCkpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBQV1NUID0gMHhEMwogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoQ29uZFJlZk9mIChTU1RBKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU1NU
QSAoKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUg
QWRkcmVzcyAoMHglWCkuX1NUQSA9IDB4JVggIFBXU1QgPSAweCVYICBEQlVTID0gMHglWCAg
RVNUQSA9IDB4JVggIEVCVVMgPSAweCVYXG4iLCBEQURSLCBEU1RBLCBQV1NULCBEQlVTLCBF
U1RBLCBFQlVTKQogICAgICAgICAgICBSZXR1cm4gKERTVEEpIC8qIFxfU0JfLlBDSTAuR1Ax
Mi5EU1RBICovCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9JTkksIDAsIFNlcmlhbGl6
ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAg
PSAweDdGRkZGRkZGCiAgICAgICAgICAgIExvY2FsMCB8PSAweDgwMDAwMDAwCiAgICAgICAg
ICAgIExvY2FsMSA9IFJQUk0gKChEQURSICsgMHgwMCksIDB4MDQpCiAgICAgICAgICAgIElm
ICgoKExvY2FsMSA9PSBMb2NhbDApIHx8IChMb2NhbDEgPT0gMHgwMCkpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBQQ1NBID0gMHgwMAogICAgICAgICAgICAgICAgUFdTVCA9
IDB4RDMKICAgICAgICAgICAgICAgIFBXM1MgPSAweDAwCiAgICAgICAgICAgIH0KICAgICAg
ICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQQ1NBID0gMHgwMQog
ICAgICAgICAgICAgICAgUFdTVCA9IDB4RDAKICAgICAgICAgICAgICAgIFBXM1MgPSAweDAx
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRy
ZXNzICgweCVYKS5fSU5JICBQQ1NBID0gMHglWCAgUFdTVCA9IDB4JVggIFBXM1MgPSAweCVY
XG4iLCBEQURSLCBQQ1NBLCBQV1NULCBQVzNTLCAweDAwLCAweDAwKQogICAgICAgICAgICBJ
ZiAoQ29uZFJlZk9mIChTSU5JKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU0lO
SSAoKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9SRUcsIDIs
IFNlcmlhbGl6ZWQpICAvLyBfUkVHOiBSZWdpb24gQXZhaWxhYmlsaXR5CiAgICAgICAgewog
ICAgICAgICAgICBJZiAoKChBcmcwID09IDB4MDIpICYmIChBcmcxID09IDB4MDEpKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChEU1RBID09IDB4MEYpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURSICsgMHgw
NCksIDB4MDEpICYgMHhGQykgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBQQ1NBID0gMHgwMQogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoQXJn
MCA9PSAweDAyKSAmJiAoQXJnMSA9PSAweDAwKSkpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIFBDU0EgPSAweDAwCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChDb25k
UmVmT2YgKFNSRUcpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTUkVHIChBcmcw
LCBBcmcxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBD
SWUgQWRkcmVzcyAoMHglWCkuX1JFRyAoJWQgJWQpICBQQ1NBID0gJWRcbiIsIERBRFIsIEFy
ZzAsIEFyZzEsIFBDU0EsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg
KF9EU1csIDMsIFNlcmlhbGl6ZWQpICAvLyBfRFNXOiBEZXZpY2UgU2xlZXAgV2FrZQogICAg
ICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoU0RTVykpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIFNEU1cgKEFyZzAsIEFyZzEsIEFyZzIpCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fRFNX
ICglZCAlZCAlZCkgIFBDU0EgPSAlZFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgQXJnMiwgUENT
QSwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXpl
ZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICB7CiAgICAgICAgICAgIE00NjAg
KCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUFMwXG4iLCBEQURSLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMw
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFBTMCAoKQogICAgICAgICAgICB9
CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBf
UFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiICBPRU0t
QVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1BTM1xuIiwgREFEUiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMykpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgfQogICAgICAg
IH0KCiAgICAgICAgUG93ZXJSZXNvdXJjZSAoUFdSUywgMHgwMCwgMHgwMDAwKQogICAgICAg
IHsKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NUQTog
U3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wt
UENJZSBBZGRyZXNzICgweCVYKS5QV1JTLl9TVEEgPSAweCVYXG4iLCBEQURSLCBQVzNTLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo
UFNUQSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUFNUQSAoKQog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoUFczUykgLyogXF9T
Ql8uUENJMC5HUDEyLlBXM1MgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k
IChfT04sIDAsIFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBJZiAoKFBXM1MgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUFczUyA9IDB4MDEKICAgICAgICAgICAgICAgICAgICBN
NDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT04gPSAweCVYXG4i
LCBEQURSLCBQVzNTLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAg
ICAgIElmIChDb25kUmVmT2YgKFBfT04pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgUF9PTiAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfT0ZGLCAw
LCBTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIgT2ZmCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIElmICgoUFczUyA9PSAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBQVzNTID0gMHgwMAogICAgICAgICAgICAgICAgICAgIE00NjAgKCIg
IE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5QV1JTLl9PRkYgPSAweCVYXG4iLCBEQURS
LCBQVzNTLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIElm
IChDb25kUmVmT2YgKFBfT0YpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgUF9PRiAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX1BSMCwgUGFj
a2FnZSAoMHgwMSkgIC8vIF9QUjA6IFBvd2VyIFJlc291cmNlcyBmb3IgRDAKICAgICAgICB7
CiAgICAgICAgICAgIFBXUlMKICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QUjMsIFBhY2th
Z2UgKDB4MDEpICAvLyBfUFIzOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQzaG90CiAgICAgICAg
ewogICAgICAgICAgICBQV1JTCiAgICAgICAgfSkKICAgICAgICBOYW1lIChfRFNELCBQYWNr
YWdlICgweDA2KSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICB7CiAg
ICAgICAgICAgIFRvVVVJRCAoIjYyMTFlMmMwLTU4YTMtNGFmMy05MGUxLTkyN2E0ZTBjNTVh
NCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIkhvdFBsdWdTdXBwb3J0SW5EMyIsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBUb1VVSUQgKCJlZmNjMDZjYy03M2FjLTRiYzMtYmZmMC03NjE0Mzgw
N2MzODkiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICBQYWNrYWdlICgweDAy
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJFeHRlcm5hbEZhY2luZ1BvcnQiLCAK
ICAgICAgICAgICAgICAgICAgICAweDAxCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICJVSUQiLCAKICAgICAgICAgICAgICAgICAgICAweDAxCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgVG9VVUlEICgiZGFmZmQ4MTQtNmVi
YS00ZDhjLThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2aWNlIFByb3BlcnRpZXMgZm9yIF9E
U0QgKi8sIAogICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICJ1c2I0LWhvc3QtaW50ZXJmYWNlIiwgCiAgICAgICAgICAgICAgICAgICAg
XF9TQi5QQ0kwLkdQMTkuTkhJMQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAidXNiNC1wb3J0LW51bWJlciIsIAogICAgICAgICAgICAgICAgICAgIDB4MDIKICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTWV0aG9kIChf
RFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAog
ICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU1YzkzN2QwLTM1
NTMtNGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZh
Y2UgKi8pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk
IChBcmcwLCAweDAwLCBVSUQwKQogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1c
XF9TQi5QQ0kwLkdQMTIuX0RTTSAoVVVJRCAweCVYLCAweCVYLCAweCVYKVxuIiwgVUlEMCwg
QXJnMSwgQXJnMiwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFN3aXRjaCAo
VG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBDYXNlICgweDAwKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgU3dpdGNoIChBcmcxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAwKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE00NjAgKCIgICAgUmV0
dXJuIDB4MFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgwMSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl
ICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE00NjAgKCIgICAgUmV0dXJuIDB4MjFcbiIsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuIChCdWZmZXIgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICEKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2
MCAoIiAgICBSZXR1cm4gMHg2MVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDEpCiAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDYxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYQog
ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICBDYXNlICgweDA1KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDEpKQogICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFxSQ1JTICE9IDB4NTUpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExvY2FsMCA9IFxSQ1JTCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBSZXR1cm4gJWRcbiIsIExvY2FsMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDYpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgw
MikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE00NjAgKCIgICAgUmV0dXJuIFBhY2thZ2UgKDQpIHsweDAyLCAweEM4LCAweDAyLCAw
eEM4fVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAy
LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEM4LCAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAweEM4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChTV1VTKQogICAgICAg
IHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkgIC8vIF9BRFI6IEFkZHJlc3MKICAg
ICAgICAgICAgTWV0aG9kIChfUk1WLCAwLCBTZXJpYWxpemVkKSAgLy8gX1JNVjogUmVtb3Zh
bCBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFT
TC1cXF9TQi5QQ0kwLkdQMTIuU1dVUy5fUk1WICgpICBSZXR1cm4gMFxuIiwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFJldHVybiAoMHgw
MCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUzBXLCAwLCBTZXJpYWxp
emVkKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgTTAwMCAoMHgzRkE0KQogICAgICAgICAgICAgICAgTG9jYWwwID0gMHgw
MAogICAgICAgICAgICAgICAgSWYgKChcSDBEMyAhPSAweDU1KSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBcSDBEMwogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDEyLlNX
VVMuX1MwVyAoKSAgUmV0dXJuICVkXG4iLCBMb2NhbDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDApCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BSVzog
UG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUDEyLlNXVVMuX1BSVyAoKSAgUmV0dXJu
IFBhY2thZ2UgKDIpIHsweDFBLCAweDA0fVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDFBLCAKICAgICAgICAgICAg
ICAgICAgICAweDA0CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNZXRob2QgKFNSRUcsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIE0wMDAgKDB4M0ZBMCkKICAgICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1B
U0wtXFxfU0IuUENJMC5HUDEyLlNXVVMuX1JFRyAoJWQgJWQpXG4iLCBBcmcwLCBBcmcxLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo
b2QgKFBQUzAsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IE0wMDAgKDB4M0ZBMSkKICAgICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0Iu
UENJMC5HUDEyLlNXVVMuX1BTMCAoKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChQUFMzLCAwLCBT
ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNMDAwICgweDNGQTMp
CiAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVxcX1NCLlBDSTAuR1AxMi5TV1VT
Ll9QUzMgKClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoUFNUQSwgMCwgU2VyaWFsaXplZCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTTAwMCAoMHgzRkE1KQogICAgICAgICAgICAg
ICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTIuU1dVUy5QV1JTLl9TVEEgKClc
biIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE1ldGhvZCAoUF9PTiwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTTAwMCAoMHgzRkE2KQogICAgICAgICAgICAgICAgTTQ2MCAo
IiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQMTIuU1dVUy5QV1JTLl9PTiAoKVxuIiwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTWV0aG9kIChQX09GLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBNMDAwICgweDNGQTgpCiAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0tQVNM
LVxcX1NCLlBDSTAuR1AxMi5TV1VTLlBXUlMuX09GRiAoKVxuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAo
REFEUiwgMHhFRUVFRUVFRSkKICAgICAgICAgICAgTmFtZSAoRFNUQSwgMHhFRSkKICAgICAg
ICAgICAgTmFtZSAoREJVUywgMHhFRUVFKQogICAgICAgICAgICBOYW1lIChQQ1NBLCAweDAw
KQogICAgICAgICAgICBOYW1lIChQV1NULCAweEQzKQogICAgICAgICAgICBOYW1lIChFU1RB
LCAweEVFKQogICAgICAgICAgICBOYW1lIChFQlVTLCAweEVFRUUpCiAgICAgICAgICAgIE5h
bWUgKFBXM1MsIDB4MDApCiAgICAgICAgICAgIE1ldGhvZCAoUlBSTSwgMiwgTm90U2VyaWFs
aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gQXJnMAogICAg
ICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJNLCBTeXN0ZW1NZW1vcnksIExvY2Fs
MCwgMHgwNCkKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJNLCBBbnlBY2MsIE5vTG9jaywg
UHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkFSUiwg
ICAzMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMSA9IFZBUlIg
LyogXF9TQl8uUENJMC5HUDEyLlNXVVMuUlBSTS5WQVJSICovCiAgICAgICAgICAgICAgICBJ
ZiAoKEFyZzEgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwxICY9IDB4RkYKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs
c2VJZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwxICY9IDB4RkZGRgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgRWxzZUlmICgoQXJnMSA9PSAweDAzKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDEgJj0gMHgwMEZGRkZGRgogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5SUFJN
ICgweCVYIDB4JVgpID0gMHglWFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgTG9jYWwxLCAweDAw
LCAweDAwKQogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE1ldGhvZCAoV1BSTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gQXJnMAogICAgICAgICAgICAgICAgSWYg
KChBcmcxID09IDB4MDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IE9wZXJhdGlvblJlZ2lvbiAoVkFSQSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDEpCiAg
ICAgICAgICAgICAgICAgICAgRmllbGQgKFZBUkEsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2
ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFZBUkUs
ICAgOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgVkFSRSA9
IEFyZzIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEg
PT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0
aW9uUmVnaW9uIChWQVJCLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMikKICAgICAgICAg
ICAgICAgICAgICBGaWVsZCAoVkFSQiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVkFSRiwgICAxNgog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgVkFSRiA9IEFyZzIK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgw
MykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVn
aW9uIChWQVJDLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMykKICAgICAgICAgICAgICAg
ICAgICBGaWVsZCAoVkFSQywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVkFSRywgICAyNAogICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgVkFSRyA9IEFyZzIKICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkQsIFN5c3RlbU1lbW9yeSwg
TG9jYWwwLCAweDA0KQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChWQVJELCBBbnlBY2Ms
IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBWQVJILCAgIDMyCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICBWQVJIID0gQXJnMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5XUFJNICgweCVYIDB4
JVggMHglWClcbiIsIERBRFIsIEFyZzAsIEFyZzEsIEFyZzIsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoU1BEUCwgMSwgTm90U2VyaWFsaXplZCkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWw1ID0gMHg3RkZGRkZGRgogICAg
ICAgICAgICAgICAgTG9jYWw1IHw9IDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIExvY2Fs
MiA9IDB4MDAKICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgICAg
IFdoaWxlICgoTG9jYWwwIDw9IDB4MUYpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExv
Y2FsMSA8PSAweDA3KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMyA9ICgoKEFyZzAgPDwgMHgxNCkgJiAweDBGRjAwMDAwKSB8ICgoTG9j
YWwwIDw8IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRikgJiAweDAwMEY4MDAw
KSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzIHw9ICgoTG9jYWwxIDw8IDB4MEMp
ICYgMHg3MDAwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBSUFJNICgoTTA4
MyArIExvY2FsMyksIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExvY2Fs
NCAhPSBMb2NhbDUpICYmIChMb2NhbDQgIT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgfD0gKDB4MDEgPDwg
TG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgIEVsc2VJZiAoKExvY2FsMSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxKysKICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4
JVgpLlNQRFAgKDB4JVgpID0gMHglWFxuIiwgREFEUiwgQXJnMCwgTG9jYWwyLCAweDAwLCAw
eDAwLCAweDAwKQogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDIpCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIE1ldGhvZCAoU1BDSCwgMiwgTm90U2VyaWFsaXplZCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAg
TG9jYWwxID0gUlBSTSAoKEFyZzAgKyAweDM0KSwgMHgwMSkKICAgICAgICAgICAgICAgIFdo
aWxlICgoTG9jYWwxICE9IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIExvY2FsMiA9IFJQUk0gKChEQURSICsgTG9jYWwxKSwgMHgwMSkKICAgICAgICAg
ICAgICAgICAgICBJZiAoKChMb2NhbDIgPT0gMHgwMCkgfHwgKExvY2FsMiA9PSAweEZGKSkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDIg
PT0gQXJnMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDAgPSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChE
QURSICsgKExvY2FsMSArIDB4MDEpKSwgMHgwMSkKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuU1BDSCAo
MHglWCwgMHglWCkgPSAweCVYXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBMb2NhbDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NUQTogU3Rh
dHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKERTVEEgPT0gMHhFRSkg
fHwgKEVTVEEgPT0gMHhFRSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElmICgoREJVUyA9PSAweEVFRUUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXl5FQlVTKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgREJVUyA9IF5eRUJV
UyAvKiBcX1NCXy5QQ0kwLkdQMTIuRUJVUyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgREJVUyA9IDB4MDAKICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChEQlVTICE9IDB4RUVFRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBJZiAoKERBRFIgPT0gMHhFRUVFRUVFRSkpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9ICgo
KF9BRFIgPDwgMHgwQykgJiAweDcwMDApIHwgKChfQURSID4+IAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDEpICYgMHgwMDBGODAwMCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgfD0gKChEQlVTIDw8IDB4MTQpICYgMHgwRkYwMDAwMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIERBRFIgPSAoTTA4MyArIExvY2FsMCkKICAgICAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g
MHg3RkZGRkZGRgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gMHg4MDAwMDAw
MAogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIDB4MDAp
LCAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgPT0gTG9jYWww
KSB8fCAoTG9jYWwxID09IDB4MDApKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo
KERCVVMgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gXl5TUENIICheXkRBRFIsIDB4MTAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoXl5SUFJNICgoXl5EQURS
ICsgKExvY2FsMiArIDB4MTQpKSwgMHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHg0MCkgPT0gMHg0MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgw
RgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICBFbHNlSWYgKChSUFJNICgoREFEUiArIDB4MEEpLCAweDAyKSA9PSAweDA2MDQpKQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQlVT
ID0gUlBSTSAoKERBRFIgKyAweDE5KSwgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2FsMiA9IFNQQ0ggKERBRFIsIDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBJZiAoKCgoUlBSTSAoKERBRFIgKyAoTG9jYWwyICsgMHgwMikpLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDAxKSA+PiAweDA0KSAmIDB4MEYpID09IDB4MDUp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoRUJVUyA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAw
eDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweEVFCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2VJZiAoKFNQRFAgKEVCVVMpID09IDB4MDApKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNU
QSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MEYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgoUlBSTSAoKERBRFIg
KyAoTG9jYWwyICsgMHgxQSkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDAxKSAmIDB4NDApID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURSICsgKExv
Y2FsMiArIDB4MTQpKSwgMHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMHg0MCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2VJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4
MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBG
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERT
VEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweEVFCiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgo
KChQQ1NBID09IDB4MDEpICYmIChQV1NUID09IDB4RDMpKSAmJiAoUFczUyA9PSAweDAxKSkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUFdTVCA9IDB4RDAKICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAwKSAm
JiAoUFdTVCA9PSAweEQwKSkgJiYgKFBXM1MgPT0gMHgwMCkpKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIFBXU1QgPSAweEQzCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoU1NUQSkpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgU1NUQSAoKQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fU1RBID0g
MHglWCAgUFdTVCA9IDB4JVggIERCVVMgPSAweCVYICBFU1RBID0gMHglWCAgRUJVUyA9IDB4
JVhcbiIsIERBRFIsIERTVEEsIFBXU1QsIERCVVMsIEVTVEEsIEVCVVMpCiAgICAgICAgICAg
ICAgICBSZXR1cm4gKERTVEEpIC8qIFxfU0JfLlBDSTAuR1AxMi5TV1VTLkRTVEEgKi8KICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBTZXJpYWxpemVkKSAg
Ly8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2Nh
bDAgPSAweDdGRkZGRkZGCiAgICAgICAgICAgICAgICBMb2NhbDAgfD0gMHg4MDAwMDAwMAog
ICAgICAgICAgICAgICAgTG9jYWwxID0gUlBSTSAoKERBRFIgKyAweDAwKSwgMHgwNCkKICAg
ICAgICAgICAgICAgIElmICgoKExvY2FsMSA9PSBMb2NhbDApIHx8IChMb2NhbDEgPT0gMHgw
MCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBDU0EgPSAweDAw
CiAgICAgICAgICAgICAgICAgICAgUFdTVCA9IDB4RDMKICAgICAgICAgICAgICAgICAgICBQ
VzNTID0gMHgwMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBDU0EgPSAweDAxCiAgICAgICAg
ICAgICAgICAgICAgUFdTVCA9IDB4RDAKICAgICAgICAgICAgICAgICAgICBQVzNTID0gMHgw
MQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wt
UENJZSBBZGRyZXNzICgweCVYKS5fSU5JICBQQ1NBID0gMHglWCAgUFdTVCA9IDB4JVggIFBX
M1MgPSAweCVYXG4iLCBEQURSLCBQQ1NBLCBQV1NULCBQVzNTLCAweDAwLCAweDAwKQogICAg
ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoU0lOSSkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgU0lOSSAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBNZXRob2QgKF9SRUcsIDIsIFNlcmlhbGl6ZWQpICAvLyBfUkVH
OiBSZWdpb24gQXZhaWxhYmlsaXR5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm
ICgoKEFyZzAgPT0gMHgwMikgJiYgKEFyZzEgPT0gMHgwMSkpKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIElmICgoRFNUQSA9PSAweDBGKSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURSICsg
MHgwNCksIDB4MDEpICYgMHhGQykgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDU0EgPSAweDAxCiAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgSWYgKCgoQXJnMCA9PSAweDAyKSAmJiAoQXJnMSA9PSAweDAw
KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUENTQSA9IDB4MDAK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChTUkVH
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTUkVHIChBcmcwLCBB
cmcxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1B
U0wtUENJZSBBZGRyZXNzICgweCVYKS5fUkVHICglZCAlZCkgIFBDU0EgPSAlZFxuIiwgREFE
UiwgQXJnMCwgQXJnMSwgUENTQSwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChfRFNXLCAzLCBTZXJpYWxpemVkKSAgLy8gX0RTVzogRGV2aWNlIFNs
ZWVwIFdha2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo
U0RTVykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU0RTVyAoQXJn
MCwgQXJnMSwgQXJnMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNNDYw
ICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX0RTVyAoJWQgJWQgJWQpICBQQ1NB
ID0gJWRcbiIsIERBRFIsIEFyZzAsIEFyZzEsIEFyZzIsIFBDU0EsIDB4MDApCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9Q
UzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAo
IiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9QUzBcbiIsIERBRFIsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQ
UFMwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQUFMwICgpCiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BT
MywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgp
Ll9QUzNcbiIsIERBRFIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMzKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBQUFMzICgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIFBvd2VyUmVzb3VyY2UgKFBXUlMsIDB4MDAsIDB4MDAwMCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAg
Ly8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
TTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX1NUQSA9IDB4JVhc
biIsIERBRFIsIFBXM1MsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgSWYgKENvbmRSZWZPZiAoUFNUQSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBQU1RBICgpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBXM1MpIC8qIFxfU0JfLlBDSTAuR1AxMi5TV1VT
LlBXM1MgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9P
TiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2VyIE9uCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgSWYgKChQVzNTID09IDB4MDApKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUFczUyA9IDB4MDEKICAgICAgICAg
ICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBX
UlMuX09OID0gMHglWFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUF9PTikpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfT04gKCkK
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9PRkYsIDAsIFNlcmlhbGl6
ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBJZiAoKFBXM1MgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBQVzNTID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAg
ICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT0ZGID0gMHgl
WFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUF9PRikpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfT0YgKCkKICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX1BSMCwgUGFja2FnZSAoMHgwMSkg
IC8vIF9QUjA6IFBvd2VyIFJlc291cmNlcyBmb3IgRDAKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgUFdSUwogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChfUFIzLCBQ
YWNrYWdlICgweDAxKSAgLy8gX1BSMzogUG93ZXIgUmVzb3VyY2VzIGZvciBEM2hvdAogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBQV1JTCiAgICAgICAgICAgIH0pCiAgICAgICAg
fQogICAgfQoKICAgIFNjb3BlIChcX0dQRSkKICAgIHsKICAgICAgICBNZXRob2QgKF9MMUEs
IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfTHh4OiBMZXZlbC1UcmlnZ2VyZWQgR1BFLCB4eD0w
eDAwLTB4RkYKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfR1BF
Ll9MMUFcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJMC5HUDE5KSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1AxOSwgMHgyKVxu
IiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
IE5vdGlmeSAoXF9TQi5QQ0kwLkdQMTksIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJMC5HUDE5Lk5ISTAp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICAgIE5vdGlmeSAoXFxf
U0IuUENJMC5HUDE5Lk5ISTAsIDB4MilcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDApCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5HUDE5Lk5ISTAs
IDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChD
b25kUmVmT2YgKFxfU0IuUENJMC5HUDE5Lk5ISTEpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBNNDYwICgiICAgIE5vdGlmeSAoXFxfU0IuUENJMC5HUDE5Lk5ISTEsIDB4Milc
biIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAg
ICBOb3RpZnkgKFxfU0IuUENJMC5HUDE5Lk5ISTEsIDB4MDIpIC8vIERldmljZSBXYWtlCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJMC5HUDE5
LlhIQzIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICAgIE5vdGlm
eSAoXFxfU0IuUENJMC5HUDE5LlhIQzIsIDB4MilcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5HUDE5
LlhIQzIsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IElmIChDb25kUmVmT2YgKFxfU0IuUENJMC5HUDE5LlhIQzMpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBNNDYwICgiICAgIE5vdGlmeSAoXFxfU0IuUENJMC5HUDE5LlhIQzMs
IDB4MilcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5HUDE5LlhIQzMsIDB4MDIpIC8vIERldmljZSBX
YWtlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJ
MC5HUDE5LlhIQzQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICAg
IE5vdGlmeSAoXFxfU0IuUENJMC5HUDE5LlhIQzQsIDB4MilcbiIsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJ
MC5HUDE5LlhIQzQsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJMC5HUDExKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1AxMSwgMHgy
KVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
ICAgIE5vdGlmeSAoXF9TQi5QQ0kwLkdQMTEsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJMC5HUDExLlNX
VVMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICAgIE5vdGlmeSAo
XFxfU0IuUENJMC5HUDExLlNXVVMsIDB4MilcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5HUDExLlNX
VVMsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElm
IChDb25kUmVmT2YgKFxfU0IuUENJMC5HUDEyKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1AxMiwgMHgyKVxuIiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIE5vdGlm
eSAoXF9TQi5QQ0kwLkdQMTIsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJMC5HUDEyLlNXVVMpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICAgIE5vdGlmeSAoXFxfU0IuUENJ
MC5HUDEyLlNXVVMsIDB4MilcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5HUDEyLlNXVVMsIDB4MDIp
IC8vIERldmljZSBXYWtlCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCg==
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt4.dsl"
Content-Disposition: attachment; filename="ssdt4.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0NC5kYXQsIFR1ZSBKdWwgIDkgMDg6MzI6MDAgMjAyNAogKgogKiBPcmlnaW5hbCBUYWJs
ZSBIZWFkZXI6CiAqICAgICBTaWduYXR1cmUgICAgICAgICJTU0RUIgogKiAgICAgTGVuZ3Ro
ICAgICAgICAgICAweDAwMDAxQkFBICg3MDgyKQogKiAgICAgUmV2aXNpb24gICAgICAgICAw
eDAyCiAqICAgICBDaGVja3N1bSAgICAgICAgIDB4OTAKICogICAgIE9FTSBJRCAgICAgICAg
ICAgIkxFTk9WTyIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIlVQRVAiCiAqICAgICBPRU0g
UmV2aXNpb24gICAgIDB4MDAwMDAwMDEgKDEpCiAqICAgICBDb21waWxlciBJRCAgICAgICJJ
TlRMIgogKiAgICAgQ29tcGlsZXIgVmVyc2lvbiAweDIwMTgwMzEzICg1Mzg0NDQ1NjMpCiAq
LwpEZWZpbml0aW9uQmxvY2sgKCIiLCAiU1NEVCIsIDIsICJMRU5PVk8iLCAiVVBFUCIsIDB4
MDAwMDAwMDEpCnsKICAgIEV4dGVybmFsIChfU0JfLlBDSTAsIERldmljZU9iaikKICAgIEV4
dGVybmFsIChfU0JfLlBDSTAuR1AxMSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u
UENJMC5HUDEyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTcuWEhD
MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE3LlhIQzEsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxOS5YSEMzLCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTkuWEhDNCwgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKF9TQl8uUENJMC5HUFA3LkRFVjAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0Jf
LlBDSTAuTFBDMC5FQzBfLkVDTlQsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAg
IEV4dGVybmFsIChfU0JfLlBDSTAuTFBDMC5FQzBfLkhLRVkuRFlUQywgTWV0aG9kT2JqKSAg
ICAvLyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5MUEMwLkVDMF8uSEtF
WS5NU0NCLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkxQQzAuRUMwXy5VUEhL
LCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoRjBEMywgSW50
T2JqKQogICAgRXh0ZXJuYWwgKEYxRDMsIEludE9iaikKICAgIEV4dGVybmFsIChGM0QzLCBJ
bnRPYmopCiAgICBFeHRlcm5hbCAoRjVEMywgSW50T2JqKQogICAgRXh0ZXJuYWwgKEY2RDMs
IEludE9iaikKICAgIEV4dGVybmFsIChHMEQzLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoRzNE
MywgSW50T2JqKQogICAgRXh0ZXJuYWwgKEc1RDMsIEludE9iaikKICAgIEV4dGVybmFsIChI
MEQzLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoTTAwMCwgTWV0aG9kT2JqKSAgICAvLyAxIEFy
Z3VtZW50cwogICAgRXh0ZXJuYWwgKE0wMzcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChN
MDQ1LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTA0Niwg
SW50T2JqKQogICAgRXh0ZXJuYWwgKE0wNDcsIEludE9iaikKICAgIEV4dGVybmFsIChNMDUw
LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKE0wNTIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDUzLCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoTTA1NCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTUsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChNMDU2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1
NywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTgsIERldmljZU9iaikKICAgIEV4dGVy
bmFsIChNMDU5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA2MiwgRGV2aWNlT2JqKQog
ICAgRXh0ZXJuYWwgKE0wNjgsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDY5LCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoTTA3MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0w
NzEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDcyLCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoTTA3NCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzUsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMDc2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NywgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzgsIERldmljZU9iaikKICAgIEV4dGVybmFsIChN
MDc5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA4MCwgRGV2aWNlT2JqKQogICAgRXh0
ZXJuYWwgKE0wODEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDgyLCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTA4MywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0w
ODQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDg1LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTA4NiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODcsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDg4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTA4OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTAsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMDkxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTA5MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTMsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMDk0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5NSwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTYsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMDk3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5OCwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMTAwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwMSwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0xMDIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAz
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwNCwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0xMDUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA2LCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwNywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0xMDgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA5LCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTExMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0x
MTUsIEJ1ZmZPYmopCiAgICBFeHRlcm5hbCAoTTExNiwgQnVmZkZpZWxkT2JqKQogICAgRXh0
ZXJuYWwgKE0xMTcsIEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChNMTE4LCBCdWZmRmll
bGRPYmopCiAgICBFeHRlcm5hbCAoTTExOSwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwg
KE0xMjAsIEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChNMTIyLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTEyNywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0xMjgsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTEzMiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzMsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMTM0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTEzNSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzYsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMjIwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIyMSwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMjYsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMjI3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTIyOSwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0yMzEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MjMzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIzNSwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0yM0EsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjUxLCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTI4MCwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0yOTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjlBLCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTMxMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0zMUMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzIwLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTMyMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjIs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzIzLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTMyNCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjUsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTMyNywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjgsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMzI5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMyQSwg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0zMkIsIERldmljZU9iaikKICAgIEV4dGVybmFs
IChNMzMwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMzMSwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0zNzgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzc5LCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4MCwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0zODEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzgyLCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTM4MywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0zODQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg1LCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTM4NiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODcs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg4LCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTM4OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zOTAsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzkxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTM5MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00MDQsIEJ1ZmZPYmopCiAg
ICBFeHRlcm5hbCAoTTQwOCwgTXV0ZXhPYmopCiAgICBFeHRlcm5hbCAoTTQxNCwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE00NDQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNNDQ5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1MywgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE00NTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU1
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1NiwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE00NTcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDYwLCBNZXRo
b2RPYmopICAgIC8vIDcgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTRDMCwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE00RjAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
NjEwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTYyMCwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE02MzEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNjUyLCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoUDFEMywgSW50T2JqKQogICAgRXh0ZXJuYWwg
KFAzRDMsIEludE9iaikKICAgIEV4dGVybmFsIChQNEQzLCBJbnRPYmopCgogICAgU2NvcGUg
KFxfU0IuUENJMCkKICAgIHsKICAgICAgICBOYW1lIChfREVQLCBQYWNrYWdlICgweDAxKSAg
Ly8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBcX1NCLlBFUAog
ICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFwpCiAgICB7CiAgICAgICAgTmFtZSAoU0xY
NCwgMHg1NSkKICAgICAgICBOYW1lIChTTFA0LCAweDU1KQogICAgICAgIE5hbWUgKFNMUDEs
IDB4NTUpCiAgICB9CgogICAgU2NvcGUgKFxfU0IpCiAgICB7CiAgICAgICAgRGV2aWNlIChQ
RVApCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCAiQU1ESTAwMDkiKSAgLy8g
X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0NJRCwgRWlzYUlkICgiUE5Q
MEQ4MCIpIC8qIFdpbmRvd3MtY29tcGF0aWJsZSBTeXN0ZW0gUG93ZXIgTWFuYWdlbWVudCBD
b250cm9sbGVyICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICBOYW1l
IChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFtZSAoREVW
TCwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MzQp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUENJMC5HUFAxIiwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAg
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR1AxMSIsIAogICAgICAgICAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAg
ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
CiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQ0kwLkdQMTIiLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAg
ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUENJMC5HUDE3IiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAg
ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR1AxOSIsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAog
ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MSwgCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQ0kwLkdQUDAiLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMK
ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUENJMC5HUFAyIiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAz
CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAw
eDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR1BQNiIsIAogICAg
ICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MwogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
MHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQ0kwLkdQUDUiLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDMKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUENJMC5HUFA3IiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAxCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR1AxMS5TV1VT
IiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR1Ax
Mi5TV1VTIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBD
STAuR1BQMS5ERVYwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxc
X1NCLlBDSTAuR1BQMS5OVk1FIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgIlxcX1NCLlBDSTAuR1BQNy5ERVYwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAg
fSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgIlxcX1NCLlBDSTAuR1BQMi5XV0FOIiwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR1BQNS5SVEw4IiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR1BQNS5SVVNCIiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAg
ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR1BQNi5XTEFOIiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAzCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR1BQOC5OVk1F
IiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR1Ax
Ny5WR0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUENJ
MC5HUDE3LkFaQUwiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAiXFxf
U0IuUENJMC5HUDE3LkFDUCIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICJcXF9TQi5QQ0kwLkdQMTcuSERBVSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICJcXF9TQi5QQ0kwLkdQMTcuWEhDMCIsIAogICAgICAgICAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICJcXF9TQi5QQ0kwLkdQMTcuWEhDMSIsIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQ0kwLkdQMTcuWEhDMS5SSFVCLlBSVDIuQlVU
SCIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMwogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQ0kwLkdQ
MTguSVBVIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBD
STAuR1AxOS5YSEMyIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxc
X1NCLlBDSTAuR1AxOS5YSEMzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgIlxcX1NCLlBDSTAuR1AxOS5YSEM0IiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAg
fSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgIlxcX1NCLlBDSTAuR1AxOS5OSEkwIiwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuR1AxOS5OSEkxIiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQ0MuTkZDMSIsIAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5GQVIwIiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgIlxcX1NCLkZBUjEiLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAg
ICAgICAgICAgICAgICAiXFxfU0IuUExURi5DMDAwIiwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgIlxcX1NCLlBMVEYuQzAwMSIsIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgICJcXF9TQi5QTFRGLkMwMDIiLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg
ICAgICAgICAgICAgICAgICAiXFxfU0IuUExURi5DMDAzIiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgIlxcX1NCLlBMVEYuQzAwNCIsIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICJcXF9TQi5QTFRGLkMwMDUiLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAg
ICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUExURi5DMDA2IiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBMVEYuQzAwNyIsIAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QTFRGLkMwMDgiLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAog
ICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUExURi5DMDA5IiwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAg
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBMVEYuQzAwQSIsIAogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAg
ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QTFRGLkMwMEIiLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAg
ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEs
IAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUExURi5DMDBDIiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAg
ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBMVEYuQzAwRCIsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwog
ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MSwgCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QTFRGLkMwMEUiLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMK
ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUExURi5DMDBGIiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAz
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
KQogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RB
OiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKE0wNDUgKCkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1c
XF9TQi5QRVAuX1NUQSA9IDB4RlxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QRVAuX1NUQSA9IDB4MFxuIiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIE1ldGhvZCAoTVBFUCwgNCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgTG9jYWwxID0gRGVyZWZPZiAoREVWTCBbMHgwMV0pCiAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IExv
Y2FsMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChEZXJl
Zk9mIChEZXJlZk9mIChEZXJlZk9mIChERVZMIFsweDAyXSkgW0xvY2FsMF0KICAgICAgICAg
ICAgICAgICAgICAgICAgKSBbMHgwMV0pID09IEFyZzEpKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRGVyZWZPZiAoREVWTCBbMHgw
Ml0pIFtMb2NhbDBdKSBbMHgwMF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IEFy
ZzAKICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRGVyZWZPZiAoREVWTCBbMHgw
Ml0pIFtMb2NhbDBdKSBbMHgwMl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IEFy
ZzIKICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRGVyZWZPZiAoREVWTCBbMHgw
Ml0pIFtMb2NhbDBdKSBbMHgwM10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IEFy
ZzMKICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8v
IF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwMCwgVUlEMCkKICAgICAgICAgICAg
ICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUEVQLl9EU00gKFVVSUQgMHglWCwgMHglWCwg
MHglWClcbiIsIFVJRDAsIEFyZzEsIEFyZzIsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiZTNmMzI0NTItZmViYy00M2NlLTkwMzkt
OTMyMTIyZDM3NzIxIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAwKQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0
Y2ggKFRvSW50ZWdlciAoQXJnMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE00NjAgKCIgICAgUmV0dXJuIChCdWZmZXIgKDEpIHsweDAzfSlcbiIsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q2FzZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE00NjAgKCIgICAgUmV0dXJuIChCdWZmZXIg
KDEpIHsweDAzfSlcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAx
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE00
NjAgKCIgICAgUmV0dXJuIChCdWZmZXIgKDEpIHsweDNGfSlcbiIsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoQnVmZmVyICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgz
RiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vID8KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVs
dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBSZXR1cm4gKEJ1ZmZlciAoMSkgezB4MDB9
KVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDEpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgQ2FzZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgREVWTCBbMHgwMV0gPSBTaXplT2YgKERFVkwgWzB4MDJd
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBPRU0tQVNMLURFVkxb
Q291bnRdID0gJWRcbiIsIERlcmVmT2YgKERFVkwgWzB4MDFdKSwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm
T2YgKFxQNEQzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJZiAoKFxQNEQzICE9IDB4NTUpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTVBFUCAoMHgwMSwgIlxcX1NCLlBDSTAuR1AxMSIsIDB4MDAsIDB4MDMpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRVAgKDB4MDEsICJcXF9TQi5QQ0kwLkdQ
MTIiLCAweDAwLCAweDAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoQ29uZFJlZk9mIChcUDFEMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChcUDFEMyAhPSAweDU1KSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1QRVAgKDB4MDEsICJcXF9TQi5QQ0kwLkdQMTciLCAweDAwLCAw
eDAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl
Zk9mIChcUDNEMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSWYgKChcUDNEMyAhPSAweDU1KSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE1QRVAgKDB4MDEsICJcXF9TQi5QQ0kwLkdQMTkiLCAweDAwLCAweDAzKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcSDBEMykp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSWYgKChcSDBEMyAhPSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRVAgKDB4
MDAsICJcXF9TQi5QQ0kwLkdQMTEuU1dVUyIsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE1QRVAgKDB4MDAsICJcXF9TQi5QQ0kwLkdQMTIuU1dV
UyIsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElmIChDb25kUmVmT2YgKFxGMEQzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFxGMEQzICE9IDB4MDQpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTVBFUCAoMHgwMCwgIlxcX1NCLlBDSTAuR1AxNy5WR0EiLCAweDAw
LCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29u
ZFJlZk9mIChcRjFEMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChcRjFEMyAhPSAweDA0KSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE1QRVAgKDB4MDAsICJcXF9TQi5QQ0kwLkdQMTcuSERBVSIsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg
KFxGM0QzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJZiAoKFxGM0QzICE9IDB4MDQpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TVBFUCAoMHgwMCwgIlxcX1NCLlBDSTAuR1AxNy5YSEMwIiwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVBFUCAoMHgwMCwgIlxcX1NCLlBDSTAu
R1AxNy5YSEMxIiwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSWYgKENvbmRSZWZPZiAoXEY1RDMpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXEY1RDMgIT0g
MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBNUEVQICgweDAwLCAiXFxfU0IuUENJMC5HUDE3LkFD
UCIsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElmIChDb25kUmVmT2YgKFxGNkQzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFxGNkQzICE9IDB4MDQpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTVBFUCAoMHgwMCwgIlxcX1NCLlBDSTAuR1AxNy5BWkFMIiwgMHgw
MCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENv
bmRSZWZPZiAoXEcwRDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXEcwRDMgIT0gMHgwNCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBNUEVQICgweDAwLCAiXFxfU0IuUENJMC5HUDE5LlhIQzIiLCAweDAwLCAweDAw
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m
IChcRzNEMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKChcRzNEMyAhPSAweDA0KSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE1QRVAgKDB4MDAsICJcXF9TQi5QQ0kwLkdQMTkuWEhDMyIsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRVAgKDB4MDAsICJcXF9TQi5QQ0kw
LkdQMTkuWEhDNCIsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElmIChDb25kUmVmT2YgKFxHNUQzKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFxHNUQzICE9
IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTVBFUCAoMHgwMCwgIlxcX1NCLlBDSTAuR1AxOS5O
SEkwIiwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TVBFUCAoMHgwMCwgIlxcX1NCLlBDSTAuR1AxOS5OSEkxIiwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChcU0xQNCAhPSAweDU1KSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBNUEVQICgweDAxLCAiXFxfU0IuUENJMC5HUFAxLkRFVjAiLCAweDAwLCAweDAz
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRVAgKDB4MDAsICJcXF9TQi5Q
Q0kwLkdQUDEuTlZNRSIsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChcU0xYNCAhPSAweDU1KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRVAgKDB4MDEs
ICJcXF9TQi5QQ0kwLkdQUDEiLCAweDAwLCAweDAzKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJZiAoKFxTTFAxICE9IDB4NTUpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRVAgKDB4
MDEsICJcXF9TQi5QQ0kwLkdQUDIiLCAweDAyLCAweDAxKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRVAgKDB4MDAsICJc
XF9TQi5QQ0kwLkdQMTcuWEhDMS5SSFVCLlBSVDIuQlVUIiwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE1QRVAgKDB4MDAsICJcXF9TQi5JMkNDLk5GQzEiLCAw
eDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTVBFUCAoMHgwMCwgIlxc
X1NCLkZBUjAiLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTVBF
UCAoMHgwMCwgIlxcX1NCLkZBUjEiLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTVBFUCAoMHgwMCwgIlxcX1NCLlBDSTAuR1BQNiIsIDB4MDAsIDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUb0ludGVnZXIgKE00NTMsIExvY2FsNykKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWw3ICE9IDB4MDApKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE00NjAgKCIgICAgT0VNLUFTTC1ERVZMOlxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBE
ZXJlZk9mIChERVZMIFsweDAxXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChM
b2NhbDAgPCBMb2NhbDEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gRGVyZWZPZiAoRGVy
ZWZPZiAoRGVyZWZPZiAoREVWTCBbMHgwMl0pIFtMb2NhbDBdCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICApIFsweDAwXSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwzID0gRGVyZWZPZiAoRGVyZWZPZiAoRGVyZWZPZiAoREVW
TCBbMHgwMl0pIFtMb2NhbDBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICApIFsweDAxXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWw0ID0gRGVyZWZPZiAoRGVyZWZPZiAoRGVyZWZPZiAoREVWTCBbMHgwMl0pIFtMb2NhbDBd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIFsweDAyXSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gRGVyZWZPZiAoRGVy
ZWZPZiAoRGVyZWZPZiAoREVWTCBbMHgwMl0pIFtMb2NhbDBdCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICApIFsweDAzXSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTTQ2MCAoIiAgICAgICVkIC0gJWQgJVMgJWQgJWRcbiIsIFRvSW50
ZWdlciAoTG9jYWwwKSwgTG9jYWwyLCBMb2NhbDMsIExvY2FsNCwgTG9jYWw1LCAweDAwKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAgIFJldHVybiAoREVWTClc
biIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSZXR1cm4gKERFVkwpIC8qIFxfU0JfLlBFUF8uREVWTCAqLwogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4
MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE0wMDAgKDB4M0UxNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25k
UmVmT2YgKFxfU0IuUENJMC5MUEMwLkVDMC5VUEhLKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBD
MC5FQzAuVVBISyAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuRUNOVCAoMHgwMSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE00NjAgKCIgICAgUmV0dXJuICgweDAwKVxu
IiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAzKQogICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNMDAwICgweDNFMTUpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDSTAuTFBDMC5F
QzAuVVBISykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLlVQSEsgKDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
XF9TQi5QQ0kwLkxQQzAuRUMwLkVDTlQgKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBNNDYwICgiICAgIFJldHVybiAoMHgwMClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4
MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
Q2FzZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTTAwMCAoMHgzRTEyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkxQQzAuRUMwLlVQSEspKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0Iu
UENJMC5MUEMwLkVDMC5VUEhLICgweDA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNsZWVwICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0Iu
UENJMC5MUEMwLkVDMC5VUEhLICgweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5FQ05U
ICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MEEpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFxfU0IuUENJMC5MUEMwLkVDMC5IS0VZLk1T
Q0IgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkVDTlQgKDB4MDUpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkhLRVku
RFlUQyAoMHgwMDFGQzAwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAgIFJldHVybiAoMHgwMClcbiIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTTAwMCAoMHgzRTEzKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkxQQzAuRUMwLlVQ
SEspKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5VUEhLICgweDA4KQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDAxKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5VUEhLICgweDA2KQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo
XF9TQi5QQ0kwLkxQQzAuRUMwLkhLRVkuTVNDQiA9PSAweDAxKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBD
STAuTFBDMC5FQzAuRUNOVCAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcX1NCLlBDSTAuTFBDMC5FQzAuSEtFWS5EWVRDICgweDAwMEZDMDAxKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVw
ICgweDBBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMw
LkVDTlQgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAgIFJl
dHVybiAoMHgwMClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAg
IFJldHVybiAoMHgwMClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSBUb1VVSUQgKCIxMWUwMGQ1Ni1j
ZTY0LTQ3Y2UtODM3Yi0xZjg5OGY5YWE0NjEiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0Iu
UENJMC5MUEMwLkVDMC5VUEhLKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5VUEhLIChUb0ludGVnZXIgKEFyZzIp
KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChU
b0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgQ2FzZSAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzEpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENhc2UgKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAgIFJldHVybiAoQnVmZmVy
ICgyKSB7MHhGOSwgMHgwMX0pXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZl
ciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjksIDB4MDEgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBNNDYwICgiICAgIFJldHVybiAoQnVmZmVyICgxKSB7MHgwMH0pXG4iLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw
eDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBNMDAwICgweDNFMDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgi
ICAgIFJldHVybiAoMHgwMClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuRUNO
VCAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw
eDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBNMDAwICgweDNFMDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgi
ICAgIFJldHVybiAoMHgwMClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuRUNO
VCAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw
eDA1KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBNMDAwICgweDNFMDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgi
ICAgIFJldHVybiAoMHgwMClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuRUNO
VCAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw
eDA2KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBNMDAwICgweDNFMDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkg
KFxfU0IuUENJMC5HUDExLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1AxMiwgMHgwMikgLy8gRGV2aWNlIFdh
a2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE00NjAgKCIgICAgUmV0dXJuICgweDAw
KVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5FQ05UICgweDAyKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDcpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0wMDAgKDB4M0Uw
NykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE00NjAgKCIgICAgUmV0dXJuICgweDAw
KVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoXF9TQi5QQ0kwLkxQQzAuRUMwLkhLRVkuTVNDQiA9PSAw
eDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuSEtFWS5EWVRDICgweDAwMUZDMDAx
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUEMwLkVDMC5F
Q05UICgweDA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA4KQogICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNMDAwICgweDNFMDgpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDSTAuR1BQ
Ny5ERVYwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBNNDYwICgiICAgIE5vdGlmeSAoXFxfU0IuUENJMC5HUFA3LkRF
VjAsIDB4MSlcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1BQNy5ERVYw
LCAweDAxKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAgIFJldHVybiAoMHgwMClc
biIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJZiAoKFxfU0IuUENJMC5MUEMwLkVDMC5IS0VZLk1TQ0IgPT0gMHgw
MSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkhLRVkuRFlUQyAoMHgwMDBGQzAwMSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuRUNO
VCAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5HUDE3LlhIQzAsIDB4MDIpIC8vIERl
dmljZSBXYWtlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJ
MC5HUDE3LlhIQzEsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5HUDE5LlhIQzMsIDB4MDIpIC8vIERldmljZSBX
YWtlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5HUDE5
LlhIQzQsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAgIFJldHVybiAoMHgwMClcbiIsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgICAgUmV0dXJu
IChCdWZmZXIgKDEpIHsweDAwfSlcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDEpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg
ICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQog
ICAgfQp9Cgo=
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt5.dsl"
Content-Disposition: attachment; filename="ssdt5.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0NS5kYXQsIFR1ZSBKdWwgIDkgMDg6MzI6MDAgMjAyNAogKgogKiBPcmlnaW5hbCBUYWJs
ZSBIZWFkZXI6CiAqICAgICBTaWduYXR1cmUgICAgICAgICJTU0RUIgogKiAgICAgTGVuZ3Ro
ICAgICAgICAgICAweDAwMDAwQkYzICgzMDU5KQogKiAgICAgUmV2aXNpb24gICAgICAgICAw
eDAyCiAqICAgICBDaGVja3N1bSAgICAgICAgIDB4NTYKICogICAgIE9FTSBJRCAgICAgICAg
ICAgIkxFTk9WTyIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIkNQTURGSUc0IgogKiAgICAg
T0VNIFJldmlzaW9uICAgICAweDAwMDAwMDAxICgxKQogKiAgICAgQ29tcGlsZXIgSUQgICAg
ICAiSU5UTCIKICogICAgIENvbXBpbGVyIFZlcnNpb24gMHgyMDE4MDMxMyAoNTM4NDQ0NTYz
KQogKi8KRGVmaW5pdGlvbkJsb2NrICgiIiwgIlNTRFQiLCAyLCAiTEVOT1ZPIiwgIkNQTURG
SUc0IiwgMHgwMDAwMDAwMSkKewogICAgRXh0ZXJuYWwgKF9TQl8uQUxJQiwgTWV0aG9kT2Jq
KSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE3LlZHQV8s
IERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNy5WR0FfLkFGTjAsIE1l
dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1Ax
Ny5WR0FfLkFGTjEsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFs
IChfU0JfLlBDSTAuR1AxNy5WR0FfLkFGTjIsIE1ldGhvZE9iaikgICAgLy8gMiBBcmd1bWVu
dHMKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNy5WR0FfLkFGTjMsIE1ldGhvZE9iaikg
ICAgLy8gMiBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNy5WR0FfLkFG
TjQsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBD
STAuR1AxNy5WR0FfLkFGTjUsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4
dGVybmFsIChfU0JfLlBDSTAuR1AxNy5WR0FfLkFGTjYsIE1ldGhvZE9iaikgICAgLy8gMCBB
cmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNy5WR0FfLkFGTjcsIE1ldGhv
ZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNy5W
R0FfLkFGTjgsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChf
U0JfLlBDSTAuR1AxNy5WR0FfLkFGTkMsIE1ldGhvZE9iaikgICAgLy8gMiBBcmd1bWVudHMK
ICAgIEV4dGVybmFsIChNMDAwLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoTTAzNywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNDYsIEludE9iaikK
ICAgIEV4dGVybmFsIChNMDQ3LCBJbnRPYmopCiAgICBFeHRlcm5hbCAoTTA0OSwgTWV0aG9k
T2JqKSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0wNTAsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMDUxLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1MiwgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTMsIERldmljZU9iaikKICAgIEV4dGVybmFsIChN
MDU0LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1NSwgRGV2aWNlT2JqKQogICAgRXh0
ZXJuYWwgKE0wNTYsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDU3LCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoTTA1OCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTksIERl
dmljZU9iaikKICAgIEV4dGVybmFsIChNMDYyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAo
TTA2OCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNjksIERldmljZU9iaikKICAgIEV4
dGVybmFsIChNMDcwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3MSwgRGV2aWNlT2Jq
KQogICAgRXh0ZXJuYWwgKE0wNzIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc0LCBE
ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwg
KE0wNzYsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc3LCBEZXZpY2VPYmopCiAgICBF
eHRlcm5hbCAoTTA3OCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzksIERldmljZU9i
aikKICAgIEV4dGVybmFsIChNMDgwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA4MSwg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wODIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMDgzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4NCwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0wODUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MDg2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4NywgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0wODgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDg5LCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MCwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0wOTEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDkyLCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0wOTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk1LCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTA5NiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTcs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk4LCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTA5OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDAsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTEwMiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDMsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMTA0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEw
NSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDYsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMTA3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwOCwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMTEwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTExMywgTWV0aG9kT2Jq
KSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0xMTUsIEJ1ZmZPYmopCiAgICBF
eHRlcm5hbCAoTTExNiwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMTcsIEJ1ZmZG
aWVsZE9iaikKICAgIEV4dGVybmFsIChNMTE4LCBCdWZmRmllbGRPYmopCiAgICBFeHRlcm5h
bCAoTTExOSwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMjAsIEJ1ZmZGaWVsZE9i
aikKICAgIEV4dGVybmFsIChNMTIyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEy
NywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0xMjgsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMTMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzMiwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMTM0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzNSwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0xMzYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjIw
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIyMSwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0yMjYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjI3LCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoTTIyOSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0yMzEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjMyLCBNZXRob2RPYmopICAg
IC8vIDMgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTIzMywgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0yMzUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjNBLCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTI1MSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0yODAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjkwLCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTI5QSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0z
MTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzFDLCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTMyMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjEsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzIyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTMyMywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjQsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMzI1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTMyNiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjcsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMzI4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyOSwg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0zMkEsIERldmljZU9iaikKICAgIEV4dGVybmFs
IChNMzJCLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMzMCwgRGV2aWNlT2JqKQogICAg
RXh0ZXJuYWwgKE0zMzEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzc4LCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM3OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0zODAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzgxLCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTM4MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0z
ODMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg0LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTM4NSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODYsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTM4OCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODksIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMzkwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTM5MSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zOTIsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNNDA0LCBCdWZmT2JqKQogICAgRXh0ZXJuYWwgKE00MDgsIE11dGV4
T2JqKQogICAgRXh0ZXJuYWwgKE00MTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
NDQ0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ0OSwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE00NTMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU0LCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1NSwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE00NTYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU3LCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTRDMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE00RjAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNjEwLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTYyMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE02MzEs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNjUyLCBGaWVsZFVuaXRPYmopCgogICAg
U2NvcGUgKFxfU0IuUENJMC5HUDE3LlZHQSkKICAgIHsKICAgICAgICBOYW1lIChNMjA3LCBC
dWZmZXIgKDB4RkYpIHt9KQogICAgICAgIE5hbWUgKE0yMDgsIEJ1ZmZlciAoMHgwMykge30p
CiAgICAgICAgTmFtZSAoTTIwNCwgMHgwMSkKICAgICAgICBNZXRob2QgKEFUQ1MsIDIsIFNl
cmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMCkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0wMDAgKDB4MEQ2MCkKICAgICAgICAgICAg
ICAgIEFUQzAgKCkKICAgICAgICAgICAgICAgIE0wMDAgKDB4MEQ3MCkKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBNMDAwICgweDBENjEpCiAgICAgICAgICAgICAgICBBVEMxICgpCiAgICAg
ICAgICAgICAgICBNMDAwICgweDBENzEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElm
ICgoQXJnMCA9PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTAwMCAo
MHgwRDYyKQogICAgICAgICAgICAgICAgQVRDMiAoQXJnMSkKICAgICAgICAgICAgICAgIE0w
MDAgKDB4MEQ3MikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4
MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNMDAwICgweDBENjMpCiAgICAg
ICAgICAgICAgICBBVEMzICgpCiAgICAgICAgICAgICAgICBNMDAwICgweDBENzMpCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA0KSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTTAwMCAoMHgwRDY0KQogICAgICAgICAgICAgICAgQVRDNCAo
QXJnMSkKICAgICAgICAgICAgICAgIE0wMDAgKDB4MEQ3NCkKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgSWYgKChBcmcwID09IDB4MDYpKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBNMDAwICgweDBENjYpCiAgICAgICAgICAgICAgICBBVEM2IChBcmcxKQogICAgICAg
ICAgICAgICAgTTAwMCAoMHgwRDc2KQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAo
KEFyZzAgPT0gMHgwNykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0wMDAgKDB4
MEQ2NykKICAgICAgICAgICAgICAgIEFUQzcgKEFyZzEpCiAgICAgICAgICAgICAgICBNMDAw
ICgweDBENzcpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA4
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTAwMCAoMHgwRDY4KQogICAgICAg
ICAgICAgICAgQVRDOCAoRGVyZWZPZiAoQXJnMSBbMHgwMl0pLCBEZXJlZk9mIChBcmcxIFsw
eDAzXSksIERlcmVmT2YgKAogICAgICAgICAgICAgICAgICAgIEFyZzEgWzB4MDRdKSwgRGVy
ZWZPZiAoQXJnMSBbMHgwNV0pKQogICAgICAgICAgICAgICAgTTAwMCAoMHgwRDc4KQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwOSkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIE0wMDAgKDB4MEQ2OSkKICAgICAgICAgICAgICAgIEFUQzkg
KCkKICAgICAgICAgICAgICAgIE0wMDAgKDB4MEQ3OSkKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgSWYgKChBcmcwID09IDB4MEEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBNMDAwICgweDBENkEpCiAgICAgICAgICAgICAgICBBVENBIChBcmcxKQogICAgICAgICAg
ICAgICAgTTAwMCAoMHgwRDdBKQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4g
KE0yMDcpIC8qIFxfU0JfLlBDSTAuR1AxNy5WR0FfLk0yMDcgKi8KICAgICAgICB9CgogICAg
ICAgIE1ldGhvZCAoQVRDMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg
ICAgIENyZWF0ZVdvcmRGaWVsZCAoTTIwNywgMHgwMCwgTTE1NykKICAgICAgICAgICAgQ3Jl
YXRlV29yZEZpZWxkIChNMjA3LCAweDAyLCBNMTU4KQogICAgICAgICAgICBDcmVhdGVEV29y
ZEZpZWxkIChNMjA3LCAweDA0LCBNMTYwKQogICAgICAgICAgICBNMTU3ID0gMHgwOAogICAg
ICAgICAgICBNMTU4ID0gMHgwMQogICAgICAgICAgICBNMTYwID0gTTEwMCAvKiBFeHRlcm5h
bCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgTTIwNyA9IFxfU0IuQUxJQiAoMHgwMCwgTTIw
NykKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQVRDMSwgMCwgU2VyaWFsaXplZCkKICAg
ICAgICB7CiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoTTIwNywgMHgwMCwgTTE1NykK
ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTTIwNywgMHgwMiwgTTE2MSkKICAgICAg
ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTTIwNywgMHgwNiwgTTE2MikKICAgICAgICAgICAg
Q3JlYXRlRmllbGQgKE0yMDcsIDB4MzAsIDB4MDEsIE0yMDMpCiAgICAgICAgICAgIE0xNTcg
PSAweDBBCiAgICAgICAgICAgIE0xNjEgPSAweDAxCiAgICAgICAgICAgIE0xNjIgPSBNMTAw
IC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICBMb2NhbDAgPSBNMDQ5IChN
MTMzLCAweDE1KQogICAgICAgICAgICBJZiAoKExvY2FsMCAmIDB4ODApKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBNMjA0ID0gKExvY2FsMCAmIDB4MDEpCiAgICAgICAgICAg
IH0KICAgICAgICAgICAgRWxzZUlmICgoTG9jYWwwICYgMHg3RikpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIE0yMDQgPSBNMTEzIChMb2NhbDApCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIE0yMDMgPSBNMjA0IC8qIFxfU0JfLlBDSTAuR1AxNy5WR0FfLk0yMDQgKi8K
ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQVRDMiwgMSwgU2VyaWFsaXplZCkKICAgICAg
ICB7CiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoTTIwNywgMHgwMCwgTTE1NykKICAg
ICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChNMjA3LCAweDAyLCBNMjA1KQogICAgICAgICAg
ICBNMTU3ID0gMHgwMwogICAgICAgICAgICBNMjA1ID0gMHgwMQogICAgICAgICAgICBNMjA3
ID0gXF9TQi5BTElCICgweDAyLCBBcmcwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChB
VEMzLCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQ3JlYXRlV29yZEZp
ZWxkIChNMjA3LCAweDAwLCBNMTU3KQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKE0y
MDcsIDB4MDIsIE0yMDUpCiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoTTIwOCwgMHgw
MCwgTTE5NykKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChNMjA4LCAweDAyLCBNMjA2
KQogICAgICAgICAgICBNMTU3ID0gMHgwMwogICAgICAgICAgICBNMjA1ID0gMHgwMQogICAg
ICAgICAgICBNMTk3ID0gMHgwMwogICAgICAgICAgICBNMjA2ID0gMHgwMQogICAgICAgICAg
ICBNMjA3ID0gXF9TQi5BTElCICgweDAzLCBNMjA4KQogICAgICAgIH0KCiAgICAgICAgTWV0
aG9kIChBVEM0LCAxLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQ3JlYXRl
V29yZEZpZWxkIChNMjA3LCAweDAwLCBNMTU3KQogICAgICAgICAgICBDcmVhdGVCeXRlRmll
bGQgKE0yMDcsIDB4MDIsIE0yMDkpCiAgICAgICAgICAgIE0xNTcgPSAweDAzCiAgICAgICAg
ICAgIE0yMDkgPSAweDAxCiAgICAgICAgICAgIE0yMDcgPSBcX1NCLkFMSUIgKDB4MDQsIEFy
ZzApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEFUQzYsIDEsIFNlcmlhbGl6ZWQpCiAg
ICAgICAgewogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKE0yMDcsIDB4MDAsIE0xNTcp
CiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKE0yMDcsIDB4MDIsIE0yMzQpCiAgICAg
ICAgICAgIE0xNTcgPSAweDA2CiAgICAgICAgICAgIE0yMzQgPSBNMjMzIC8qIEV4dGVybmFs
IHJlZmVyZW5jZSAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChBVEM3LCAxLCBTZXJp
YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTIzMiAoTTIzNSwgMHgwMCwgMHgwMSkK
ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQVRDOCwgNCwgU2VyaWFsaXplZCkKICAgICAg
ICB7CiAgICAgICAgICAgIExvY2FsMCA9IEJ1ZmZlciAoMHgwNSkge30KICAgICAgICAgICAg
Q3JlYXRlV29yZEZpZWxkIChMb2NhbDAsIDB4MDAsIE0xNTcpCiAgICAgICAgICAgIENyZWF0
ZUJ5dGVGaWVsZCAoTG9jYWwwLCAweDAyLCBNNDI1KQogICAgICAgICAgICBDcmVhdGVXb3Jk
RmllbGQgKExvY2FsMCwgMHgwMywgTTQyNikKICAgICAgICAgICAgTTE1NyA9IDB4MDUKICAg
ICAgICAgICAgTG9jYWwxID0gQXJnMAogICAgICAgICAgICBMb2NhbDIgPSBBcmcxCiAgICAg
ICAgICAgIE00MjYgPSAoKExvY2FsMiA8PCAweDA4KSArIExvY2FsMSkKICAgICAgICAgICAg
TG9jYWwzID0gQXJnMgogICAgICAgICAgICBMb2NhbDQgPSBBcmczCiAgICAgICAgICAgIElm
ICgoKExvY2FsMyA9PSAweDAwKSAmJiAoTG9jYWw0ID09IDB4MDApKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTTQyNSA9IDB4MDEKICAgICAgICAgICAgICAgIFxfU0IuQUxJ
QiAoMHhBQSwgTG9jYWwwKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKChM
b2NhbDMgPT0gMHgwMCkgJiYgKExvY2FsNCA9PSAweDAxKSkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIE00MjUgPSAweDAwCiAgICAgICAgICAgICAgICBcX1NCLkFMSUIgKDB4
QUEsIExvY2FsMCkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKCgoTG9jYWwz
ID09IDB4MDMpICYmIChMb2NhbDQgPT0gMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBNNDI1ID0gMHgwMwogICAgICAgICAgICAgICAgXF9TQi5BTElCICgweEFBLCBM
b2NhbDApCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQVRDOSwg
MCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE0yMDcgPSBNNDQ0IC8qIEV4
dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChBVENBLCAx
LCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChB
cmcwLCAweDAwLCBNMTU3KQogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIDB4
MDIsIE0yNDApCiAgICAgICAgICAgIE0yMzIgKE0yM0EsIE0yNDAsIDB4MDEpCiAgICAgICAg
fQogICAgfQoKICAgIE1ldGhvZCAoQUZOMCwgMCwgU2VyaWFsaXplZCkKICAgIHsKICAgICAg
ICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDSTAuR1AxNy5WR0EuQUZOMCkpCiAgICAgICAgewog
ICAgICAgICAgICBcX1NCLlBDSTAuR1AxNy5WR0EuQUZOMCAoKQogICAgICAgIH0KICAgIH0K
CiAgICBNZXRob2QgKEFGTjEsIDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKENv
bmRSZWZPZiAoXF9TQi5QQ0kwLkdQMTcuVkdBLkFGTjEpKQogICAgICAgIHsKICAgICAgICAg
ICAgXF9TQi5QQ0kwLkdQMTcuVkdBLkFGTjEgKEFyZzApCiAgICAgICAgfQogICAgfQoKICAg
IE1ldGhvZCAoQUZOMiwgMiwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoQ29uZFJl
Zk9mIChcX1NCLlBDSTAuR1AxNy5WR0EuQUZOMikpCiAgICAgICAgewogICAgICAgICAgICBc
X1NCLlBDSTAuR1AxNy5WR0EuQUZOMiAoQXJnMCwgQXJnMSkKICAgICAgICB9CiAgICB9Cgog
ICAgTWV0aG9kIChBRk4zLCAyLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChDb25k
UmVmT2YgKFxfU0IuUENJMC5HUDE3LlZHQS5BRk4zKSkKICAgICAgICB7CiAgICAgICAgICAg
IFxfU0IuUENJMC5HUDE3LlZHQS5BRk4zIChBcmcwLCBBcmcxKQogICAgICAgIH0KICAgIH0K
CiAgICBNZXRob2QgKEFGTjQsIDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKENv
bmRSZWZPZiAoXF9TQi5QQ0kwLkdQMTcuVkdBLkFGTjQpKQogICAgICAgIHsKICAgICAgICAg
ICAgXF9TQi5QQ0kwLkdQMTcuVkdBLkFGTjQgKEFyZzApCiAgICAgICAgfQogICAgfQoKICAg
IE1ldGhvZCAoQUZONSwgMCwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoQ29uZFJl
Zk9mIChcX1NCLlBDSTAuR1AxNy5WR0EuQUZONSkpCiAgICAgICAgewogICAgICAgICAgICBc
X1NCLlBDSTAuR1AxNy5WR0EuQUZONSAoKQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2Qg
KEFGTjYsIDAsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9T
Qi5QQ0kwLkdQMTcuVkdBLkFGTjYpKQogICAgICAgIHsKICAgICAgICAgICAgXF9TQi5QQ0kw
LkdQMTcuVkdBLkFGTjYgKCkKICAgICAgICB9CiAgICB9CgogICAgTWV0aG9kIChBRk43LCAx
LCBTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJMC5H
UDE3LlZHQS5BRk43KSkKICAgICAgICB7CiAgICAgICAgICAgIFxfU0IuUENJMC5HUDE3LlZH
QS5BRk43IChBcmcwKQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2QgKEFGTjgsIDAsIFNl
cmlhbGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQMTcu
VkdBLkFGTjgpKQogICAgICAgIHsKICAgICAgICAgICAgXF9TQi5QQ0kwLkdQMTcuVkdBLkFG
TjggKCkKICAgICAgICB9CiAgICB9CgogICAgTWV0aG9kIChBRk5DLCAyLCBTZXJpYWxpemVk
KQogICAgewogICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUENJMC5HUDE3LlZHQS5BRk5D
KSkKICAgICAgICB7CiAgICAgICAgICAgIFxfU0IuUENJMC5HUDE3LlZHQS5BRk5DIChBcmcw
LCBBcmcxKQogICAgICAgIH0KICAgIH0KfQoK
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt6.dsl"
Content-Disposition: attachment; filename="ssdt6.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0Ni5kYXQsIFR1ZSBKdWwgIDkgMDg6MzI6MDAgMjAyNAogKgogKiBPcmlnaW5hbCBUYWJs
ZSBIZWFkZXI6CiAqICAgICBTaWduYXR1cmUgICAgICAgICJTU0RUIgogKiAgICAgTGVuZ3Ro
ICAgICAgICAgICAweDAwMDAxMTVGICg0NDQ3KQogKiAgICAgUmV2aXNpb24gICAgICAgICAw
eDAyCiAqICAgICBDaGVja3N1bSAgICAgICAgIDB4OTcKICogICAgIE9FTSBJRCAgICAgICAg
ICAgIkxFTk9WTyIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIkNQTUFDUFY1IgogKiAgICAg
T0VNIFJldmlzaW9uICAgICAweDAwMDAwMDAxICgxKQogKiAgICAgQ29tcGlsZXIgSUQgICAg
ICAiSU5UTCIKICogICAgIENvbXBpbGVyIFZlcnNpb24gMHgyMDE4MDMxMyAoNTM4NDQ0NTYz
KQogKi8KRGVmaW5pdGlvbkJsb2NrICgiIiwgIlNTRFQiLCAyLCAiTEVOT1ZPIiwgIkNQTUFD
UFY1IiwgMHgwMDAwMDAwMSkKewogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE3LkFDUF8s
IERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNy5BWkFMLCBEZXZpY2VP
YmopCiAgICBFeHRlcm5hbCAoTTAwMCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwog
ICAgRXh0ZXJuYWwgKE0wMTcsIE1ldGhvZE9iaikgICAgLy8gNiBBcmd1bWVudHMKICAgIEV4
dGVybmFsIChNMDE5LCBNZXRob2RPYmopICAgIC8vIDQgQXJndW1lbnRzCiAgICBFeHRlcm5h
bCAoTTAzNywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNDYsIEludE9iaikKICAgIEV4
dGVybmFsIChNMDQ3LCBJbnRPYmopCiAgICBFeHRlcm5hbCAoTTA1MCwgRGV2aWNlT2JqKQog
ICAgRXh0ZXJuYWwgKE0wNTEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDUyLCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoTTA1MywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0w
NTQsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDU1LCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoTTA1NiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTcsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMDU4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1OSwgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNjIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChN
MDY4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA2OSwgRGV2aWNlT2JqKQogICAgRXh0
ZXJuYWwgKE0wNzAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDcxLCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoTTA3MiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzQsIERl
dmljZU9iaikKICAgIEV4dGVybmFsIChNMDc1LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAo
TTA3NiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzcsIERldmljZU9iaikKICAgIEV4
dGVybmFsIChNMDc4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3OSwgRGV2aWNlT2Jq
KQogICAgRXh0ZXJuYWwgKE0wODAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDgxLCBE
ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA4MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0wODMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDg0LCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTA4NSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0w
ODYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDg3LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTA4OCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODksIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDkwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTA5MSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTIsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMDkzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTA5NCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTUsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMDk2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5Nywg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTgsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMDk5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwMCwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMTAyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwMywgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0xMDQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA1
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwNiwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0xMDcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA4LCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwOSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0xMTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTE1LCBCdWZmT2JqKQog
ICAgRXh0ZXJuYWwgKE0xMTYsIEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChNMTE3LCBC
dWZmRmllbGRPYmopCiAgICBFeHRlcm5hbCAoTTExOCwgQnVmZkZpZWxkT2JqKQogICAgRXh0
ZXJuYWwgKE0xMTksIEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChNMTIwLCBCdWZmRmll
bGRPYmopCiAgICBFeHRlcm5hbCAoTTEyMiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0xMjcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMTI4LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTEzMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzIsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTMzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTEzNCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzUsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMTM2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTIyMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMjEsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMjI2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIyNywg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0yMjksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMjMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIzMywgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0yMzUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MjNBLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTI0OSwgTWV0aG9kT2JqKSAgICAv
LyA0IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0yNTAsIE1ldGhvZE9iaikgICAgLy8gNSBB
cmd1bWVudHMKICAgIEV4dGVybmFsIChNMjUxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTI3NiwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0y
NzcsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMjgwLCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTI5MCwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0yOUEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzEwLCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTMxQywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0zMjAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzIxLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTMyMiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjMs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI0LCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTMyNSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjYsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTMyOCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjksIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMzJBLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMyQiwgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0zMzAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChN
MzMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM3OCwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0zNzksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzgwLCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4MSwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0zODIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzgzLCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTM4NCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0zODUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg2LCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTM4NywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODgs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg5LCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTM5MCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zOTEsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzkyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTQwNCwgQnVmZk9iaikKICAgIEV4dGVybmFsIChNNDA4LCBNdXRleE9iaikKICAgIEV4
dGVybmFsIChNNDE0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ0NCwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE00NDksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNNDUzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1NCwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE00NTUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU2
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1NywgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE00NjAsIE1ldGhvZE9iaikgICAgLy8gNyBBcmd1bWVudHMKICAgIEV4dGVy
bmFsIChNNEMwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTRGMCwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE02MTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
NjIwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTYzMSwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE02NTIsIEZpZWxkVW5pdE9iaikKCiAgICBOYW1lIChNMjc4LCAweDAx
KQogICAgTmFtZSAoTTI3OSwgMHgwMSkKICAgIE5hbWUgKE0yN0EsIDB4MDEpCiAgICBOYW1l
IChNMjdCLCAweDAxKQogICAgTmFtZSAoQVBHRSwgMHgwMSkKICAgIE5hbWUgKEFDR0UsIDB4
MDEpCiAgICBNdXRleCAoTTI3RSwgMHgwMCkKICAgIE1ldGhvZCAoTTI3RCwgMCwgU2VyaWFs
aXplZCkKICAgIHsKICAgICAgICBNNDYwICgiRkVBLUFTTC1DcG1BY3BSZW1vdmVQb3dlckdh
dGluZy1TdGFydFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICBMb2NhbDAgPSBNMjQ5ICgweDAwLCAweDAwLCAweDAwLCAweDAxMjQwNjQ0KQogICAg
ICAgIE00NjAgKCIgIEFDUF9EU1BfRlVTSU9OX1JVTlNUQUxMICAgPSAlZFxuIiwgTG9jYWww
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIExvY2FsMSA9IE0yNDkg
KDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEyNDMwMDQpCiAgICAgICAgTTQ2MCAoIiAgQUNQX1NX
X0VOX1NUQVRVUyAgID0gJWRcbiIsIExvY2FsMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICBMb2NhbDIgPSBNMjQ5ICgweDAwLCAweDAwLCAweDAwLCAweDAxMjQz
QzA0KQogICAgICAgIE00NjAgKCIgIEFDUF9QMV9TV19FTl9TVEFUVVMgICA9ICVkXG4iLCBM
b2NhbDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgSWYgKCgoTG9j
YWwxID09IDB4MDEpIHx8IChMb2NhbDIgPT0gMHgwMSkpKQogICAgICAgIHsKICAgICAgICAg
ICAgTTQ2MCAoIiAgU1cgQ29udHJvbGxlciBpcyBzdGlsbCBydW5uaW5nXG4iLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIH0KICAgICAgICBFbHNlSWYg
KChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBNMjUwICgweDAwLCAw
eDAwLCAweDAwLCAweDAxMjQxQTQ4LCAweDAxKQogICAgICAgICAgICBNMjUwICgweDAwLCAw
eDAwLCAweDAwLCAweDAxMjQxQTI0LCAweDAyKQogICAgICAgICAgICBMb2NhbDUgPSAweDY0
CiAgICAgICAgICAgIExvY2FsMSA9IE0yNDkgKDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEyNDFB
NDgpCiAgICAgICAgICAgIFdoaWxlICgoTG9jYWwxICE9IDB4MDEwMSkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIExvY2FsMSA9IE0yNDkgKDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDEyNDFBNDgpCiAgICAgICAgICAgICAgICBMb2NhbDUtLQogICAgICAgICAgICAgICAgSWYg
KChMb2NhbDUgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTTQ2MCAoIiAgV2FpdCBQR0ZTTSBzdGF0dXMgdGltZW91dCIsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTdGFsbCAoMHg2MykKICAgICAgICAgICAg
fQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewogICAgICAgICAgICBNMjUwICgw
eDAwLCAweDAwLCAweDAwLCAweDAxMjQxMDI0LCAweDA3KQogICAgICAgICAgICBMb2NhbDUg
PSAweDY0CiAgICAgICAgICAgIExvY2FsMSA9IE0yNDkgKDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDEyNDEwMjgpCiAgICAgICAgICAgIFdoaWxlICgoTG9jYWwxICE9IDB4MDApKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgPSBNMjQ5ICgweDAwLCAweDAwLCAweDAw
LCAweDAxMjQxMDI4KQogICAgICAgICAgICAgICAgTG9jYWw1LS0KICAgICAgICAgICAgICAg
IElmICgoTG9jYWw1ID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIE00NjAgKCIgIFdhaXQgUEdGU00gc3RhdHVzIHRpbWVvdXQiLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU3RhbGwgKDB4NjMpCiAgICAgICAg
ICAgIH0KICAgICAgICB9CgogICAgICAgIE00NjAgKCJGRUEtQVNMLUNwbUFjcFJlbW92ZVBv
d2VyR2F0aW5nLUVuZFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgIH0KCiAgICBNZXRob2QgKE0yN0MsIDAsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAg
TTQ2MCAoIkZFQS1BU0wtQ3BtQWNwQXBwbHlQb3dlckdhdGluZy1TdGFydFxuIiwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBMb2NhbDAgPSBNMjQ5ICgw
eDAwLCAweDAwLCAweDAwLCAweDAxMjQwNjQ0KQogICAgICAgIE00NjAgKCIgIEFDUF9EU1Bf
RlVTSU9OX1JVTlNUQUxMICAgPSAlZFxuIiwgTG9jYWwwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwKQogICAgICAgIExvY2FsMSA9IE0yNDkgKDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDEyNDMwMDQpCiAgICAgICAgTTQ2MCAoIiAgQUNQX1NXX0VOX1NUQVRVUyAgID0gJWRcbiIs
IExvY2FsMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBMb2NhbDIg
PSBNMjQ5ICgweDAwLCAweDAwLCAweDAwLCAweDAxMjQzQzA0KQogICAgICAgIE00NjAgKCIg
IEFDUF9QMV9TV19FTl9TVEFUVVMgICA9ICVkXG4iLCBMb2NhbDIsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgSWYgKCgoTG9jYWwxID09IDB4MDEpIHx8IChMb2Nh
bDIgPT0gMHgwMSkpKQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgU1cgQ29udHJv
bGxlciBpcyBzdGlsbCBydW5uaW5nXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwKQogICAgICAgIH0KICAgICAgICBFbHNlSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAg
ICAgICAgewogICAgICAgICAgICBNMjUwICgweDAwLCAweDAwLCAweDAwLCAweDAxMjQxQTQ4
LCAweDAyKQogICAgICAgICAgICBNMjUwICgweDAwLCAweDAwLCAweDAwLCAweDAxMjQxQTI0
LCAweDAyKQogICAgICAgICAgICBMb2NhbDUgPSAweDY0CiAgICAgICAgICAgIExvY2FsMSA9
IE0yNDkgKDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEyNDFBNDgpCiAgICAgICAgICAgIFdoaWxl
ICgoTG9jYWwxICE9IDB4MDIwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExv
Y2FsMSA9IE0yNDkgKDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEyNDFBNDgpCiAgICAgICAgICAg
ICAgICBMb2NhbDUtLQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDUgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgV2FpdCBtbUFD
UF9QMV9GVVRVUkVfUkVHX0FDTEtfMSBzdGF0dXMgdGltZW91dCIsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTdGFsbCAoMHg2MykKICAgICAgICAgICAg
fQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewogICAgICAgICAgICBNMjUwICgw
eDAwLCAweDAwLCAweDAwLCAweDAxMjQxMDI0LCAweDA2KQogICAgICAgICAgICBMb2NhbDUg
PSAweDY0CiAgICAgICAgICAgIExvY2FsMSA9IE0yNDkgKDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDEyNDEwMjgpCiAgICAgICAgICAgIFdoaWxlICgoTG9jYWwxICE9IDB4MEEpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgPSBNMjQ5ICgweDAwLCAweDAwLCAweDAw
LCAweDAxMjQxMDI4KQogICAgICAgICAgICAgICAgTG9jYWw1LS0KICAgICAgICAgICAgICAg
IElmICgoTG9jYWw1ID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIE00NjAgKCIgIFdhaXQgUEdGU00gc3RhdHVzIHRpbWVvdXQiLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU3RhbGwgKDB4NjMpCiAgICAgICAg
ICAgIH0KICAgICAgICB9CgogICAgICAgIE00NjAgKCJGRUEtQVNMLUNwbUFjcEFwcGx5UG93
ZXJHYXRpbmctRW5kXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQog
ICAgfQoKICAgIE1ldGhvZCAoTTI3NiwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBB
Y3F1aXJlIChNMjdFLCAweEZGRkYpCiAgICAgICAgSWYgKChBcmcwID09IDB4MDApKQogICAg
ICAgIHsKICAgICAgICAgICAgTTQ2MCAoIkZFQS1BU0wtQ3BtUG93ZXJHYXRlT24gQ3BtQWNw
UHJlc2VudFN0YXRlID0gMVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgTTI3OCA9IDB4MDEKICAgICAgICB9CiAgICAgICAgRWxzZUlmICgo
QXJnMCA9PSAweDAxKSkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCJGRUEtQVNMLUNw
bVBvd2VyR2F0ZU9uIENwbUF6YWxpYVByZXNlbnRTdGF0ZSA9IDFcbiIsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIE0yNzkgPSAweDAxCiAgICAg
ICAgfQoKICAgICAgICBNNDYwICgiRkVBLUFTTC1DcG1Qb3dlckdhdGVPbi1TdGFydFxuIiwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBNNDYwICgiICBD
cG1BY3BQcmVzZW50U3RhdGUgICAgPSAlZFxuIiwgTTI3OCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICBNNDYwICgiICBDcG1BemFsaWFQcmVzZW50U3RhdGUgPSAl
ZFxuIiwgTTI3OSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBNNDYw
ICgiICBBQ0dFICAgICAgICAgICAgICAgICAgPSAlZFxuIiwgQUNHRSwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBNNDYwICgiICBBUEdFICAgICAgICAgICAgICAg
ICAgPSAlZFxuIiwgQVBHRSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICBJZiAoIShNMjc4IF4gTTI3OSkpCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiRkVB
LUFTTC1DcG1Qb3dlckdhdGVPbi0xLUVuZFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgUmVsZWFzZSAoTTI3RSkKICAgICAgICAgICAgUmV0
dXJuIChaZXJvKQogICAgICAgIH0KCiAgICAgICAgSWYgKChBUEdFID09IDB4MDEpKQogICAg
ICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgwREI0KQogICAgICAgICAgICBJZiAoKE0yN0Eg
PT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IE0wMTcg
KDB4MDAsIDB4MDgsIDB4MDEsIDB4MTksIDB4MDAsIDB4MDgpCiAgICAgICAgICAgICAgICBM
b2NhbDEgPSBNMDE5IChMb2NhbDAsIDB4MDAsIDB4MDUsIDB4MDApCiAgICAgICAgICAgICAg
ICBJZiAoKChMb2NhbDAgIT0gMHgwMCkgJiYgKExvY2FsMCAhPSAweEZGKSkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgIT0gMHhGRkZGRkZG
RikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNMjdE
ICgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9CiAgICAgICAgICAgIEVsc2VJZiAoKE0yN0IgPT0gMHgwMSkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIE0yNTAgKDB4MDAsIDB4MDAsIDB4MDAsIDB4MDkwMEU3ODQsIDB4
MDMwMykKICAgICAgICAgICAgICAgIExvY2FsNSA9IDB4NjQKICAgICAgICAgICAgICAgIExv
Y2FsNCA9IE0yNDkgKDB4MDAsIDB4MDAsIDB4MDAsIDB4MDkwMEU3OTApCiAgICAgICAgICAg
ICAgICBMb2NhbDQgJj0gMHgwRgogICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDQgIT0g
MHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWw0ID0g
TTI0OSAoMHgwMCwgMHgwMCwgMHgwMCwgMHgwOTAwRTc5MCkKICAgICAgICAgICAgICAgICAg
ICBMb2NhbDQgJj0gMHgwRgogICAgICAgICAgICAgICAgICAgIExvY2FsNS0tCiAgICAgICAg
ICAgICAgICAgICAgSWYgKChMb2NhbDUgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBXYWl0IG1tUlNNVV9QR0ZTTV9T
VEFUVVNfQUNQIHN0YXR1cyB0aW1lb3V0IiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFN0YWxsICgweDYzKQogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNMDAwICgweDBEQjUpCiAgICAgICAg
fQoKICAgICAgICBNNDYwICgiRkVBLUFTTC1DcG1Qb3dlckdhdGVPbi1FbmRcbiIsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgUmVsZWFzZSAoTTI3RSkK
ICAgIH0KCiAgICBNZXRob2QgKE0yNzcsIDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAg
QWNxdWlyZSAoTTI3RSwgMHhGRkZGKQogICAgICAgIElmICgoQXJnMCA9PSAweDAwKSkKICAg
ICAgICB7CiAgICAgICAgICAgIE00NjAgKCJGRUEtQVNMLUNwbVBvd2VyR2F0ZU9uIENwbUFj
cFByZXNlbnRTdGF0ZSA9IDBcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgIE0yNzggPSAweDAwCiAgICAgICAgfQogICAgICAgIEVsc2VJZiAo
KEFyZzAgPT0gMHgwMSkpCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiRkVBLUFTTC1D
cG1Qb3dlckdhdGVPbiBDcG1BemFsaWFQcmVzZW50U3RhdGUgPSAwXG4iLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBNMjc5ID0gMHgwMAogICAg
ICAgIH0KCiAgICAgICAgTTQ2MCAoIkZFQS1BU0wtQ3BtUG93ZXJHYXRlT2ZmLVN0YXJ0XG4i
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIE00NjAgKCIg
IENwbUFjcFByZXNlbnRTdGF0ZSAgICA9ICVkXG4iLCBNMjc4LCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgIE00NjAgKCIgIENwbUF6YWxpYVByZXNlbnRTdGF0ZSA9
ICVkXG4iLCBNMjc5LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIE00
NjAgKCIgIEFQR0UgICAgICAgICAgICAgICAgICA9ICVkXG4iLCBBUEdFLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIE00NjAgKCIgIEFDR0UgICAgICAgICAgICAg
ICAgICA9ICVkXG4iLCBBQ0dFLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgIElmICghKChNMjc4ID09IDB4MDApICYmIChNMjc5ID09IDB4MDApKSkKICAgICAgICB7
CiAgICAgICAgICAgIE00NjAgKCJGRUEtQVNMLUNwbVBvd2VyR2F0ZU9mZi0xLUVuZFxuIiwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmVsZWFz
ZSAoTTI3RSkKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgIH0KCiAgICAgICAg
SWYgKChBUEdFID09IDB4MDEpKQogICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgwREI2
KQogICAgICAgICAgICBJZiAoKE0yN0EgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIExvY2FsMCA9IE0wMTcgKDB4MDAsIDB4MDgsIDB4MDEsIDB4MTksIDB4MDAs
IDB4MDgpCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBNMDE5IChMb2NhbDAsIDB4MDAsIDB4
MDUsIDB4MDApCiAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDAgIT0gMHgwMCkgJiYgKExv
Y2FsMCAhPSAweEZGKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
SWYgKChMb2NhbDEgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBNMjdDICgpCiAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKE0yN0Ig
PT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0yNTAgKDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDkwMEU3ODQsIDB4MDMwMSkKICAgICAgICAgICAgICAgIExvY2FsNSA9
IDB4NjQKICAgICAgICAgICAgICAgIExvY2FsNCA9IE0yNDkgKDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDkwMEU3OTApCiAgICAgICAgICAgICAgICBMb2NhbDQgJj0gMHgwRgogICAgICAgICAg
ICAgICAgV2hpbGUgKChMb2NhbDQgIT0gMHgwQSkpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgTG9jYWw0ID0gTTI0OSAoMHgwMCwgMHgwMCwgMHgwMCwgMHgwOTAw
RTc5MCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDQgJj0gMHgwRgogICAgICAgICAgICAg
ICAgICAgIExvY2FsNS0tCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDUgPT0gMHgw
MCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNNDYw
ICgiICBXYWl0IG1tUlNNVV9QR0ZTTV9TVEFUVVNfQUNQIHN0YXR1cyB0aW1lb3V0IiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFN0
YWxsICgweDYzKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBNMDAwICgweDBEQjcpCiAgICAgICAgfQoKICAgICAgICBNNDYwICgiRkVBLUFTTC1DcG1Q
b3dlckdhdGVPZmYtRW5kXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgIFJlbGVhc2UgKE0yN0UpCiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5H
UDE3LkFDUCkKICAgIHsKICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQp
ICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgi
RkVBLUFTTC1cXF9TQi5QQ0kwLlBCQy5BQ1AuX1BTMFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgTTI3NiAoMHgwMCkKICAgICAgICB9Cgog
ICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2Vy
IFN0YXRlIDMKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCJGRUEtQVNMLVxcX1NCLlBD
STAuUEJDLkFDUC5fUFMzXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgICAgICBNMjc3ICgweDAwKQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAo
XF9TQi5QQ0kwLkdQMTcuQVpBTCkKICAgIHsKICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5v
dFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgewogICAgICAg
ICAgICBNNDYwICgiRkVBLUFTTC1cXF9TQi5QQ0kwLlBCQy5BWkFMLl9QUzBcbiIsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIE0yNzYgKDB4MDEp
CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAv
LyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiRkVB
LUFTTC1cXF9TQi5QQ0kwLlBCQy5BWkFMLl9QUzNcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIE0yNzcgKDB4MDEpCiAgICAgICAgfQogICAg
fQp9Cgo=
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt7.dsl"
Content-Disposition: attachment; filename="ssdt7.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0Ny5kYXQsIFR1ZSBKdWwgIDkgMDg6MzI6MDAgMjAyNAogKgogKiBPcmlnaW5hbCBUYWJs
ZSBIZWFkZXI6CiAqICAgICBTaWduYXR1cmUgICAgICAgICJTU0RUIgogKiAgICAgTGVuZ3Ro
ICAgICAgICAgICAweDAwMDAwREVDICgzNTY0KQogKiAgICAgUmV2aXNpb24gICAgICAgICAw
eDAyCiAqICAgICBDaGVja3N1bSAgICAgICAgIDB4QTgKICogICAgIE9FTSBJRCAgICAgICAg
ICAgIkxFTk9WTyIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIkdwTXNTc2R0IgogKiAgICAg
T0VNIFJldmlzaW9uICAgICAweDAwMDAwMDAxICgxKQogKiAgICAgQ29tcGlsZXIgSUQgICAg
ICAiSU5UTCIKICogICAgIENvbXBpbGVyIFZlcnNpb24gMHgyMDE4MDMxMyAoNTM4NDQ0NTYz
KQogKi8KRGVmaW5pdGlvbkJsb2NrICgiIiwgIlNTRFQiLCAyLCAiTEVOT1ZPIiwgIkdwTXNT
c2R0IiwgMHgwMDAwMDAwMSkKewogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUFAxLCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQUDIsIERldmljZU9iaikKICAgIEV4
dGVybmFsIChfU0JfLlBDSTAuR1BQMi5XV0FOLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAo
X1NCXy5QQ0kwLkdQUDUsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1BQ
NS5SVEw4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQUDYsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1BQNi5XTEFOLCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQUDcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChf
U0JfLlBDSTAuR1BQNy5fQURSLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQ
UDcuREVWMCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wMTcsIE1ldGhvZE9iaikgICAg
Ly8gNiBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMDE5LCBNZXRob2RPYmopICAgIC8vIDQg
QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTAyMCwgTWV0aG9kT2JqKSAgICAvLyA1IEFyZ3Vt
ZW50cwogICAgRXh0ZXJuYWwgKE0wMzcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDQ2
LCBJbnRPYmopCiAgICBFeHRlcm5hbCAoTTA0NywgSW50T2JqKQogICAgRXh0ZXJuYWwgKE0w
NTAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDUxLCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoTTA1MiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTMsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMDU0LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1NSwgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTYsIERldmljZU9iaikKICAgIEV4dGVybmFsIChN
MDU3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1OCwgRGV2aWNlT2JqKQogICAgRXh0
ZXJuYWwgKE0wNTksIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDYyLCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoTTA2OCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNjksIERl
dmljZU9iaikKICAgIEV4dGVybmFsIChNMDcwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAo
TTA3MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzIsIERldmljZU9iaikKICAgIEV4
dGVybmFsIChNMDc0LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NSwgRGV2aWNlT2Jq
KQogICAgRXh0ZXJuYWwgKE0wNzYsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc3LCBE
ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3OCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwg
KE0wNzksIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDgwLCBEZXZpY2VPYmopCiAgICBF
eHRlcm5hbCAoTTA4MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wODIsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMDgzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTA4NCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODUsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMDg2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4Nywg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODgsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMDg5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MCwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMDkyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MywgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0wOTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk1
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5NiwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0wOTcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk4LCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0xMDAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAxLCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTEwMiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0x
MDMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA0LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTEwNSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDYsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTEwOCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDksIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMTEwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTExNSwgQnVmZk9iaikKICAgIEV4dGVybmFsIChNMTE2LCBCdWZmRmllbGRPYmopCiAgICBF
eHRlcm5hbCAoTTExNywgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMTgsIEJ1ZmZG
aWVsZE9iaikKICAgIEV4dGVybmFsIChNMTE5LCBCdWZmRmllbGRPYmopCiAgICBFeHRlcm5h
bCAoTTEyMCwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMjIsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMTI3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTEyOCwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzEsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMTMyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzMywgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMTM1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzNiwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0yMjAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjIx
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIyNiwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0yMjcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMjI5LCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTIzMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0yMzMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjM1LCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTIzQSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yNTEs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjgwLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTI5MCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yOUEsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzEwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTMxQywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjAsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMzIxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMy
MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjMsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMzI0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyNSwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMzI3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyOCwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0zMjksIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMzJB
LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMyQiwgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKE0zMzAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMzMxLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTM3OCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zNzks
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzgwLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTM4MSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODIsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzgzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTM4NCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODUsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMzg2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4
NywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODgsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMzg5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM5MCwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zOTEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMzkyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQwNCwgQnVmZk9iaikK
ICAgIEV4dGVybmFsIChNNDA4LCBNdXRleE9iaikKICAgIEV4dGVybmFsIChNNDE0LCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ0NCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE00NDksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDUzLCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTQ1NCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00
NTUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU2LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTQ1NywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NjAsIE1l
dGhvZE9iaikgICAgLy8gNyBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNNEMwLCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTRGMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE02MTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNjIwLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTYzMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE02NTIs
IEZpZWxkVW5pdE9iaikKCiAgICBTY29wZSAoXF9TQi5QQ0kwLkdQUDEpCiAgICB7CiAgICAg
ICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVz
b3VyY2VzIGZvciBXYWtlCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiUExBLUFTTC1c
XF9TQi5QQ0kwLkdQUDEuX1BSVyBSZXR1cm4gR1BSVyAoMHg4LCAweDQpXG4iLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKFBhY2th
Z2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDgsIAogICAgICAg
ICAgICAgICAgMHgwNAogICAgICAgICAgICB9KQogICAgICAgIH0KICAgIH0KCiAgICBTY29w
ZSAoXF9TQi5QQ0kwLkdQUDIpCiAgICB7CiAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RT
ZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAg
ewogICAgICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9TQi5QQ0kwLkdQUDIuX1BSVyBSZXR1
cm4gR1BSVyAoMHg4LCAweDQpXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIDB4MTYsIAogICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAg
ICB9KQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkdQUDIuV1dBTikK
ICAgIHsKICAgICAgICBOYW1lIChfUzBXLCAweDA0KSAgLy8gX1MwVzogUzAgRGV2aWNlIFdh
a2UgU3RhdGUKICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkdQUDUpCiAgICB7CiAgICAg
ICAgTmFtZSAoX1MwVywgMHgwNCkgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAg
ICAgICAgTmFtZSAoRVdQTSwgMHgwMCkKICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICB7
CiAgICAgICAgICAgIElmICgoRVdQTSA9PSAweDAxKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuUENJMC5HUFA1Ll9QUlcgUmV0dXJuIEdQ
UlcgKDB4RiwgMHg0KVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAweDBGLCAKICAgICAgICAgICAgICAgICAgICAweDA0
CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuUENJMC5H
UFA1Ll9QUlcgUmV0dXJuIEdQUlcgKDB4RiwgMHgwKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgw
MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDBGLCAKICAgICAg
ICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAg
ICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTAuR1BQNS5SVEw4KQogICAgewog
ICAgICAgIE5hbWUgKF9TMFcsIDB4MDQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0
ZQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTAuR1BQNikKICAgIHsKICAgICAgICBOYW1l
IChfUzBXLCAweDAwKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICBN
ZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJj
ZXMgZm9yIFdha2UKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NC
LlBDSTAuR1BQNi5fUFJXIFJldHVybiBHUFJXICgweEUsIDB4NClcbiIsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAo
MHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwRSwgCiAgICAgICAgICAg
ICAgICAweDA0CiAgICAgICAgICAgIH0pCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9E
U1csIDMsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNXOiBEZXZpY2UgU2xlZXAgV2FrZQogICAg
ICAgIHsKICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuUENJMC5HUFA2Ll9EU1dc
biIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgfQogICAg
fQoKICAgIFNjb3BlIChcX1NCLlBDSTAuR1BQNi5XTEFOKQogICAgewogICAgICAgIE9wZXJh
dGlvblJlZ2lvbiAoUENJQywgUENJX0NvbmZpZywgMHgwMCwgMHgwNCkKICAgICAgICBGaWVs
ZCAoUENJQywgV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAg
ICAgIERWSUQsICAgMTYsIAogICAgICAgICAgICBERElELCAgIDE2CiAgICAgICAgfQoKICAg
ICAgICBNZXRob2QgKF9TMFcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZp
Y2UgV2FrZSBTdGF0ZQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxf
U0IuUENJMC5HUFA2LldMQU4uX1MwVyAtIERJRDoleCBWSUQ6JXhcbiIsIERWSUQsIERESUQs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmICgoKERWSUQgPT0gMHgx
N0NCKSAmJiAoRERJRCA9PSAweDExMDMpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuUENJMC5HUFA2LldMQU4uX1MwVyA6IDNcbiIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBSZXR1
cm4gKDB4MDMpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9TQi5QQ0kwLkdQUDYuV0xBTi5f
UzBXIDogNFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgIFJldHVybiAoMHgwNCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAg
ICAgTWV0aG9kIChRQk1FLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAg
ICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICBJZiAoKChEVklEID09IDB4MTdDQikgJiYg
KERESUQgPT0gMHgxMTA3KSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAg
ICAgICAgfQoKICAgICAgICBNZXRob2QgKF9EU1csIDMsIE5vdFNlcmlhbGl6ZWQpICAvLyBf
RFNXOiBEZXZpY2UgU2xlZXAgV2FrZQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIlBM
QS1BU0wtXFxfU0IuUENJMC5HUFA2LldMQU4uX0RTV1xuIiwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg
U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICB7
CiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzAsIDB4MDAsIFVJRDApCiAgICAg
ICAgICAgIE00NjAgKCIgIE9FTS1BU0wtXFxfU0IuUENJMC5HUFA2LldMQU4uX0RTTSAoVVVJ
RCAweCVYLCAweCVYLCAweCVYKVxuIiwgVUlEMCwgQXJnMSwgQXJnMiwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImY2MzRmNTM0LTYxNDct
MTFlYy05MGQ2LTAyNDJhYzEyMDAwMyIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcyKSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAwKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4
MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAweDA1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5QQ0kwLkdQ
UDYuV0xBTi5fRFNNLCBFbmFibGUgRDNDb2xkXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MTApCiAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEIpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChGR0Is
IEJ1ZmZlciAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg
ICAgICAgICAgICAgICAgIFJldHVybiAoRkdCKSAvKiBcX1NCXy5QQ0kwLkdQUDYuV0xBTi5f
RFNNLkZHQl8gKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTAuR1BQ
NykKICAgIHsKICAgICAgICBNZXRob2QgKF9EU0QsIDAsIFNlcmlhbGl6ZWQpICAvLyBfRFNE
OiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIlBM
QS1BU0wtXFxfU0IuUENJMC5HUFA3Ll9EU0RcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgVG9VVUlEICgiZWZjYzA2Y2MtNzNhYy00YmMzLWJm
ZjAtNzYxNDM4MDdjMzg5IikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICJFeHRlcm5hbEZhY2luZ1BvcnQiLCAKICAgICAgICAgICAgICAgICAgICAgICAg
MHgwMQogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNr
YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIlVJRCIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgVG9VVUlEICgi
NjIxMWUyYzAtNThhMy00YWYzLTkwZTEtOTI3YTRlMGM1NWE0IikgLyogVW5rbm93biBVVUlE
ICovLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJIb3RQbHVnU3VwcG9ydEluRDMiLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUg
KFxfU0IuUENJMC5HUFA3LkRFVjApCiAgICB7CiAgICAgICAgTmFtZSAoX1MwVywgMHgwNCkg
IC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgTmFtZSAoUlBCLCAweDAw
KQogICAgICAgIE5hbWUgKFJQRCwgMHgwMCkKICAgICAgICBOYW1lIChSUEYsIDB4MDApCiAg
ICAgICAgTWV0aG9kIChfUk1WLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JNVjogUmVtb3Zh
bCBTdGF0dXMKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLlBD
STAuR1BQNy5ERVYwIF9STVZcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhv
ZCAoX0lOSSwgMCwgU2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICB7
CiAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLlBDSTAuR1BQNy5ERVYwLl9JTklc
biIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJQ
RCA9IChcX1NCLlBDSTAuR1BQNy5fQURSID4+IDB4MTApCiAgICAgICAgICAgIFJQRiA9IChc
X1NCLlBDSTAuR1BQNy5fQURSICYgMHhGRkZGKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k
IChTRDdFLCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIlBM
QS1BU0wtXFxfU0IuUENJMC5HUFA3LkRFVjAuU0Q3RVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgTG9jYWwwID0gTTAxNyAoUlBCLCBSUEQs
IFJQRiwgMHgxOSwgMHgwMCwgMHgwOCkKICAgICAgICAgICAgSWYgKChNMDE3IChMb2NhbDAs
IDB4MDAsIDB4MDAsIDB4MDgsIDB4MDgsIDB4MTgpID09IDB4MDAwMTA4MDIpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBNMDE5IChSUEIsIFJQRCwgUlBGLCAw
eDYwKQogICAgICAgICAgICAgICAgTTAyMCAoUlBCLCBSUEQsIFJQRiwgMHg2MCwgTG9jYWww
KQogICAgICAgICAgICAgICAgTG9jYWwwID0gTTAxOSAoUlBCLCBSUEQsIFJQRiwgMHgwMTYw
KQogICAgICAgICAgICAgICAgTTAyMCAoUlBCLCBSUEQsIFJQRiwgMHgwMTYwLCBMb2NhbDAp
CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90
U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICB7CiAgICAgICAg
ICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLlBDSTAuR1BQNy5ERVYwLl9QUzBcbiIsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFNEN0UgKCkKICAg
ICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9Q
UzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCJQTEEtQVNM
LVxcX1NCLlBDSTAuR1BQNy5ERVYwLl9QUzNcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9EU0QsIDAsIFNlcmlh
bGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgIHsKICAgICAg
ICAgICAgTTQ2MCAoIlBMQS1BU0wtXFxfU0IuUENJMC5HUFA3LkRFVjAuX0RTRFxuIiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgTmFtZSAoUERT
RCwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVG9VVUlE
ICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBV
VUlEICovLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTG9jYWwwID0gTTAxNyAo
UlBCLCBSUEQsIFJQRiwgMHgxOSwgMHgwMCwgMHgwOCkKICAgICAgICAgICAgSWYgKChNMDE3
IChMb2NhbDAsIDB4MDAsIDB4MDAsIDB4MDgsIDB4MDgsIDB4MTgpID09IDB4MDAwMTA4MDIp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChEZXJlZk9mIChQRFNE
IFsweDAxXSkgWzB4MDBdKSBbMHgwMV0KICAgICAgICAgICAgICAgICAgICAgPSAweDAxCiAg
ICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBEZXJlZk9mIChEZXJlZk9mIChQRFNEIFsweDAxXSkgWzB4MDBdKSBbMHgwMV0KICAg
ICAgICAgICAgICAgICAgICAgPSAweDAwCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00
NjAgKCIgICAgLSBTdG9yYWdlRDNFbmFibGU6JWRcbiIsIERlcmVmT2YgKERlcmVmT2YgKERl
cmVmT2YgKFBEU0QgWzB4MDFdKSBbMHgwMF0KICAgICAgICAgICAgICAgICkgWzB4MDFdKSwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChQRFNE
KSAvKiBcX1NCXy5QQ0kwLkdQUDcuREVWMC5fRFNELlBEU0QgKi8KICAgICAgICB9CiAgICB9
Cn0KCg==
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt8.dsl"
Content-Disposition: attachment; filename="ssdt8.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0OC5kYXQsIFR1ZSBKdWwgIDkgMDg6MzI6MDAgMjAyNAogKgogKiBPcmlnaW5hbCBUYWJs
ZSBIZWFkZXI6CiAqICAgICBTaWduYXR1cmUgICAgICAgICJTU0RUIgogKiAgICAgTGVuZ3Ro
ICAgICAgICAgICAweDAwMDAxM0I5ICg1MDQ5KQogKiAgICAgUmV2aXNpb24gICAgICAgICAw
eDAyCiAqICAgICBDaGVja3N1bSAgICAgICAgIDB4MzQKICogICAgIE9FTSBJRCAgICAgICAg
ICAgIkxFTk9WTyIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIk9FTUFDUCIKICogICAgIE9F
TSBSZXZpc2lvbiAgICAgMHgwMDAwMDAwMSAoMSkKICogICAgIENvbXBpbGVyIElEICAgICAg
IklOVEwiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MjAxODAzMTMgKDUzODQ0NDU2MykK
ICovCkRlZmluaXRpb25CbG9jayAoIiIsICJTU0RUIiwgMiwgIkxFTk9WTyIsICJPRU1BQ1Ai
LCAweDAwMDAwMDAxKQp7CiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTcuQUNQXywgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKFdMVkQsIEludE9iaikKCiAgICBTY29wZSAoXF9TQi5Q
Q0kwLkdQMTcuQUNQKQogICAgewogICAgICAgIE5hbWUgKFdPVlMsIDB4MDEpCiAgICAgICAg
TWV0aG9kIChfV09WLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg
TG9jYWwwID0gMHgwMAogICAgICAgICAgICBJZiAoKFdPVlMgIT0gMHg1NSkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IFdPVlMgLyogXF9TQl8uUENJMC5HUDE3
LkFDUF8uV09WUyAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKExvY2Fs
MCkKICAgICAgICB9CgogICAgICAgIE5hbWUgKF9EU0QsIFBhY2thZ2UgKDB4MDIpICAvLyBf
RFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgIHsKICAgICAgICAgICAgVG9VVUlE
ICgiZGFmZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2aWNlIFBy
b3BlcnRpZXMgZm9yIF9EU0QgKi8sIAogICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tenNjLWVuYWJsZSIsIAogICAg
ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBEZXZpY2UgKEhE
QTApCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfQURSLCAweDAxKSAgLy8gX0FEUjog
QWRkcmVzcwogICAgICAgICAgICBOYW1lIChfRFNELCBQYWNrYWdlICgweDA0KSAgLy8gX0RT
RDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
VG9VVUlEICgiZGFmZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2
aWNlIFByb3BlcnRpZXMgZm9yIF9EU0QgKi8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw
eDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFj
cC1hdWRpby1kZXZpY2UtaW50ZXJmYWNlLXZlcnNpb24iLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMQogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgImFjcC1hdWRpby1kZXZpY2UtdHlwZSIsIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAxCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgVG9VVUlEICgiZGJiOGUzZTYtNTg4Ni00YmE2LTg3OTUtMTMxOWY1
MmE5NjZiIikgLyogSGllcmFyY2hpY2FsIERhdGEgRXh0ZW5zaW9uICovLCAKICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICJhY3AtYXVkaW8tZGV2aWNlLWVwcyIsIAogICAgICAgICAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiUEUwMCIsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlBFMDEiCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5h
bWUgKFBFMDAsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IFRvVVVJRCAoImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJjOWJiZjRhYTMwMSIpIC8qIERl
dmljZSBQcm9wZXJ0aWVzIGZvciBfRFNEICovLCAKICAgICAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJh
Y3AtYXVkaW8tZXAtdHlwZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAg
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1
ZGlvLWVwLWRzcC1vZmZsb2FkLXN1cHBvcnRlZCIsIAogICAgICAgICAgICAgICAgICAgICAg
ICAweDAxCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAiYWNwLWF1ZGlvLWVwLWNhdGVnb3J5IiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDEKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICBUb1VVSUQgKCJkYmI4ZTNlNi01ODg2LTRiYTYtODc5NS0xMzE5ZjUyYTk2
NmIiKSAvKiBIaWVyYXJjaGljYWwgRGF0YSBFeHRlbnNpb24gKi8sIAogICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgImFjcC1hdWRpby1lcC1mb3JtYXQiLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgIkVGTVQiCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAiYWNwLWF1ZGlvLWVwLWFwby1meC10eXBlIiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICJFQUZYIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoUEUwMSwgUGFja2FnZSAoMHgwNCkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVG9VVUlEICgiZGFmZmQ4MTQtNmViYS00
ZDhjLThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2aWNlIFByb3BlcnRpZXMgZm9yIF9EU0Qg
Ki8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRpby1lcC10eXBlIiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtZHNwLW9mZmxvYWQtc3VwcG9y
dGVkIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEKICAgICAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtY2F0ZWdv
cnkiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMgogICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFRvVVVJRCAoImRiYjhl
M2U2LTU4ODYtNGJhNi04Nzk1LTEzMTlmNTJhOTY2YiIpIC8qIEhpZXJhcmNoaWNhbCBEYXRh
IEV4dGVuc2lvbiAqLywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLWZv
cm1hdCIsIAogICAgICAgICAgICAgICAgICAgICAgICAiRUZNVCIKICAgICAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtYXBv
LWZ4LXR5cGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgIkVBRlgiCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAg
ICBOYW1lIChFRk1ULCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBUb1VVSUQgKCJkYWZmZDgxNC02ZWJhLTRkOGMtOGE5MS1iYzliYmY0YWEzMDEiKSAv
KiBEZXZpY2UgUHJvcGVydGllcyBmb3IgX0RTRCAqLywgCiAgICAgICAgICAgICAgICBQYWNr
YWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAiYWNwLWF1ZGlvLWVwLWZvcm1hdC1tYXgtY2hhbm5lbHMiLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMgogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg
ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgImFjcC1hdWRpby1lcC1mb3JtYXQtc2FtcGxpbmctZnJlcXVlbmN5Iiwg
CiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QkI4MCwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDE3NzAwCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICJhY3AtYXVkaW8tZXAtZm9ybWF0LWJpdHMtcGVyLXNhbXBsZSIsIAogICAgICAgICAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MTgKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAg
TmFtZSAoRUFGWCwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgVG9VVUlEICgiZGFmZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJmNGFhMzAxIikgLyog
RGV2aWNlIFByb3BlcnRpZXMgZm9yIF9EU0QgKi8sIAogICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ImFjcC1hdWRpby1lcC1hcG8tZWZ4LXR5cGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAg
MHgxMwogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNr
YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgImFjcC1hdWRpby1lcC1hcG8tbWZ4LXR5cGUiLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMAogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgImFjcC1hdWRpby1lcC1hcG8tc2Z4LXR5cGUiLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgImFjcC1hdWRpby1lcC1hcG8tZWZ4LWVuY29kZXItdHlwZSIsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQRE1D
KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMikgIC8vIF9BRFI6IEFk
ZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0RTRCwgUGFja2FnZSAoMHgwNCkgIC8vIF9EU0Q6
IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRv
VVVJRCAoImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJjOWJiZjRhYTMwMSIpIC8qIERldmlj
ZSBQcm9wZXJ0aWVzIGZvciBfRFNEICovLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
MikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3At
YXVkaW8tZGV2aWNlLWludGVyZmFjZS12ZXJzaW9uIiwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDEKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg
UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICJhY3AtYXVkaW8tZGV2aWNlLXR5cGUiLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIFRvVVVJRCAoImRiYjhlM2U2LTU4ODYtNGJhNi04Nzk1LTEzMTlmNTJh
OTY2YiIpIC8qIEhpZXJhcmNoaWNhbCBEYXRhIEV4dGVuc2lvbiAqLywgCiAgICAgICAgICAg
ICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAiYWNwLWF1ZGlvLWRldmljZS1lcHMiLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkNFMDAiCiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0p
CiAgICAgICAgICAgIE5hbWUgKENFMDAsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIFRvVVVJRCAoImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJjOWJi
ZjRhYTMwMSIpIC8qIERldmljZSBQcm9wZXJ0aWVzIGZvciBfRFNEICovLCAKICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MEQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtdHlwZSIsIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAxCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAiYWNwLWF1ZGlvLWVwLXZvaWNlLWFjdGl2YXRpb24tc3VwcG9ydGVkIiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtdm9pY2UtYWN0aXZhdGlv
bi1kZGktdmVyc2lvbiIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyCiAgICAgICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlv
LWVwLXZvaWNlLWFjdGl2YXRpb24tYWdlbnRzIiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0
MAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLW1pYy1zdGFydHVwLXNp
bGVuY2Utc3VwcG9ydGVkIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEKICAgICAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVk
aW8tZXAtZHNwLW9mZmxvYWQtc3VwcG9ydGVkIiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDEKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICJhY3AtYXVkaW8tZXAtdWx0cmFzb3VuZC1zdXBwb3J0ZWQiLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMQogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgImFjcC1hdWRpby1lcC11bHRyYXNvdW5kLWhwZC10eXBlIiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MUUKICAgICAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtc29mdHdhcmUtbG9vcGJh
Y2stc3VwcG9ydGVkIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8t
ZXAtYWktbm9pc2UtcmVkdWN0aW9uLXN1cHBvcnRlZCIsIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAiYWNwLWF1ZGlvLWVwLWRlZmF1bHQtZ2FpbiIsIAogICAgICAgICAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRpby1lcC1jaGFubmVs
LW9yZGVyIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEs
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAi
YWNwLWF1ZGlvLWVwLWt3cy1wcmVzZXRzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1MCwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCMDEsIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEKICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIFRvVVVJRCAoImRiYjhlM2U2LTU4ODYtNGJhNi04Nzk1LTEzMTlmNTJhOTY2YiIp
IC8qIEhpZXJhcmNoaWNhbCBEYXRhIEV4dGVuc2lvbiAqLywgCiAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAiYWNwLWF1ZGlvLWVwLWZvcm1hdCIsIAogICAgICAgICAgICAgICAgICAgICAgICAi
RUZNVCIKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICJhY3AtYXVkaW8tZXAtYXBvLWZ4LXR5cGUiLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgIkVBRlgiCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAiYWNwLWF1ZGlvLWVwLW1pYy1hcnJheS1nZW9tZXRyeSIsIAogICAgICAgICAg
ICAgICAgICAgICAgICAiRU1BRyIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKEVGTVQsIFBhY2thZ2Ug
KDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRvVVVJRCAoImRhZmZkODE0
LTZlYmEtNGQ4Yy04YTkxLWJjOWJiZjRhYTMwMSIpIC8qIERldmljZSBQcm9wZXJ0aWVzIGZv
ciBfRFNEICovLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtZm9ybWF0
LW1heC1jaGFubmVscyIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyCiAgICAgICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlv
LWVwLWZvcm1hdC1zYW1wbGluZy1mcmVxdWVuY3kiLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHhCQjgwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
MikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3At
YXVkaW8tZXAtZm9ybWF0LWJpdHMtcGVyLXNhbXBsZSIsIAogICAgICAgICAgICAgICAgICAg
ICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAg
ICAgICAgICAgIE5hbWUgKEVBRlgsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFRvVVVJRCAoImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJjOWJiZjRh
YTMwMSIpIC8qIERldmljZSBQcm9wZXJ0aWVzIGZvciBfRFNEICovLCAKICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICJhY3AtYXVkaW8tZXAtYXBvLWVmeC10eXBlIiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtYXBvLW1meC10eXBlIiwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtYXBvLXNmeC10eXBlIiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtYXBvLWVmeC1lbmNvZGVyLXR5cGUi
LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoRU1B
RywgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVG9VVUlE
ICgiZGFmZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2aWNlIFBy
b3BlcnRpZXMgZm9yIF9EU0QgKi8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwOSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRp
by1lcC1taWMtYXJyYXktdmVyc2lvbiIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAx
MDAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICJhY3AtYXVkaW8tZXAtbWljLWFycmF5LXR5cGUiLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMAogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgImFjcC1hdWRpby1lcC1taWMtYXJyYXktdmVydGljYWwtYW5nbGUtYmVnaW4iLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRDcxOAogICAgICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRpby1lcC1taWMtYXJy
YXktdmVydGljYWwtYW5nbGUtZW5kIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjhF
OAogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl
ICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ImFjcC1hdWRpby1lcC1taWMtYXJyYXktaG9yaXpvbnRhbC1hbmdsZS1iZWdpbiIsIAogICAg
ICAgICAgICAgICAgICAgICAgICAweEZGRkZEREU5CiAgICAgICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLW1pYy1hcnJheS1o
b3Jpem9udGFsLWFuZ2xlLWVuZCIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDIyMTcK
ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJh
Y3AtYXVkaW8tZXAtbWljLWFycmF5LWZyZXF1ZW5jeS1iYW5kLWxvIiwgCiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MzIKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtbWljLWFycmF5LWZyZXF1ZW5jeS1iYW5k
LWhpIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NEUyMAogICAgICAgICAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRpby1lcC1taWMt
YXJyYXktbnVtYmVyLW9mLW1pY3JvcGhvbmVzIiwgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgICAgICBUb1VVSUQgKCJkYmI4ZTNlNi01ODg2LTRiYTYtODc5NS0xMzE5ZjUyYTk2
NmIiKSAvKiBIaWVyYXJjaGljYWwgRGF0YSBFeHRlbnNpb24gKi8sIAogICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgImFjcC1hdWRpby1lcC1taWMtYXJyYXktbWljLWNvb3JkIiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNSUMwIiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiTUlDMSIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAg
ICAgICAgTmFtZSAoTUlDMCwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgVG9VVUlEICgiZGFmZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJmNGFhMzAx
IikgLyogRGV2aWNlIFByb3BlcnRpZXMgZm9yIF9EU0QgKi8sIAogICAgICAgICAgICAgICAg
UGFja2FnZSAoMHgwNikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgImFjcC1hdWRpby1lcC1taWMtY29vcmQtdHlwZSIsIAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLW1pYy1jb29yZC14IiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtbWljLWNvb3JkLXkiLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHhGRkU3CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLW1pYy1jb29yZC16IiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtbWljLWNvb3JkLXZlcnRpY2FsLWFu
Z2xlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtbWljLWNv
b3JkLWhvcml6b250YWwtYW5nbGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkK
ICAgICAgICAgICAgTmFtZSAoTUlDMSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgVG9VVUlEICgiZGFmZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJm
NGFhMzAxIikgLyogRGV2aWNlIFByb3BlcnRpZXMgZm9yIF9EU0QgKi8sIAogICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgImFjcC1hdWRpby1lcC1taWMtY29vcmQtdHlwZSIsIAogICAgICAgICAg
ICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLW1pYy1jb29yZC14IiwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtbWljLWNvb3JkLXkiLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgMHgxOQogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRpby1lcC1taWMtY29vcmQteiIsIAogICAg
ICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLW1pYy1jb29yZC12ZXJ0aWNh
bC1hbmdsZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLW1p
Yy1jb29yZC1ob3Jpem9udGFsLWFuZ2xlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
IH0pCiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKEkyU0MpCiAgICAgICAgewogICAgICAg
ICAgICBOYW1lIChfQURSLCAweDAzKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgIH0KCiAg
ICAgICAgRGV2aWNlIChCVFNDKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwg
MHgwNCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0RTRCwgUGFja2Fn
ZSAoMHgwNCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIFRvVVVJRCAoImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJjOWJi
ZjRhYTMwMSIpIC8qIERldmljZSBQcm9wZXJ0aWVzIGZvciBfRFNEICovLCAKICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICJhY3AtYXVkaW8tZGV2aWNlLWludGVyZmFjZS12ZXJzaW9uIiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDEKICAgICAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZGV2aWNlLXR5cGUiLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwNAogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFRvVVVJRCAoImRiYjhlM2U2LTU4ODYt
NGJhNi04Nzk1LTEzMTlmNTJhOTY2YiIpIC8qIEhpZXJhcmNoaWNhbCBEYXRhIEV4dGVuc2lv
biAqLywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWRldmljZS1lcHMiLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBFMDAiLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJDRTAwIgogICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
KQogICAgICAgICAgICBOYW1lIChQRTAwLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBUb1VVSUQgKCJkYWZmZDgxNC02ZWJhLTRkOGMtOGE5MS1iYzli
YmY0YWEzMDEiKSAvKiBEZXZpY2UgUHJvcGVydGllcyBmb3IgX0RTRCAqLywgCiAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLXR5cGUiLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg
ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgImFjcC1hdWRpby1lcC1kc3Atb2ZmbG9hZC1zdXBwb3J0ZWQiLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMQogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRpby1lcC1jYXRlZ29yeSIsIAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAxCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLXBvcnQiLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgImFjcC1hdWRpby1lcC1ub2RlIiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDIKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg
ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICJhY3AtYXVkaW8tZXAtY2FwYWJpbGl0aWVzIiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgVG9VVUlEICgiZGJi
OGUzZTYtNTg4Ni00YmE2LTg3OTUtMTMxOWY1MmE5NjZiIikgLyogSGllcmFyY2hpY2FsIERh
dGEgRXh0ZW5zaW9uICovLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAt
Zm9ybWF0IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICJGTTAwIgogICAgICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRpby1lcC1h
cG8tZngtdHlwZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAiRlgwMCIKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAg
ICAgIE5hbWUgKEZNMDAsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIFRvVVVJRCAoImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJjOWJiZjRhYTMwMSIp
IC8qIERldmljZSBQcm9wZXJ0aWVzIGZvciBfRFNEICovLCAKICAgICAgICAgICAgICAgIFBh
Y2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICJhY3AtYXVkaW8tZXAtZm9ybWF0LW1heC1jaGFubmVscyIsIAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAyCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLWZvcm1hdC1zYW1wbGluZy1mcmVxdWVuY3ki
LCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRjQwLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0U4MCwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAweEJCODAKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRpby1lcC1m
b3JtYXQtYml0cy1wZXItc2FtcGxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAg
TWV0aG9kIChGWDAwLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBJZiAoKFxXTFZEID09IDB4MTdDQikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZGFmZmQ4MTQtNmViYS00ZDhj
LThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2aWNlIFByb3BlcnRpZXMgZm9yIF9EU0QgKi8s
IAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJhY3AtYXVkaW8tZXAtYXBvLWVmeC10eXBlIiwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
YWNwLWF1ZGlvLWVwLWFwby1tZngtdHlwZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRpby1l
cC1hcG8tc2Z4LXR5cGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtYXBvLWVmeC1l
bmNvZGVyLXR5cGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo
UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIFRvVVVJRCAoImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJjOWJiZjRhYTMwMSIp
IC8qIERldmljZSBQcm9wZXJ0aWVzIGZvciBfRFNEICovLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlv
LWVwLWFwby1lZngtdHlwZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRpby1lcC1hcG8tbWZ4
LXR5cGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtYXBvLXNmeC10eXBlIiwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw
MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLWFwby1lZngtZW5jb2Rlci10eXBlIiwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE1CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1l
IChDRTAwLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBU
b1VVSUQgKCJkYWZmZDgxNC02ZWJhLTRkOGMtOGE5MS1iYzliYmY0YWEzMDEiKSAvKiBEZXZp
Y2UgUHJvcGVydGllcyBmb3IgX0RTRCAqLywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4
MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNw
LWF1ZGlvLWVwLXR5cGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMQogICAgICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjcC1hdWRp
by1lcC1kc3Atb2ZmbG9hZC1zdXBwb3J0ZWQiLCAKICAgICAgICAgICAgICAgICAgICAgICAg
MHgwMQogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNr
YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgImFjcC1hdWRpby1lcC1wb3J0IiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMK
ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJh
Y3AtYXVkaW8tZXAtbm9kZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyCiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
VG9VVUlEICgiZGJiOGUzZTYtNTg4Ni00YmE2LTg3OTUtMTMxOWY1MmE5NjZiIikgLyogSGll
cmFyY2hpY2FsIERhdGEgRXh0ZW5zaW9uICovLCAKICAgICAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo
MHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJh
Y3AtYXVkaW8tZXAtZm9ybWF0IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICJGTTAxIgog
ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw
eDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFj
cC1hdWRpby1lcC1hcG8tZngtdHlwZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAiRlgw
MSIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
IH0pCiAgICAgICAgICAgIE5hbWUgKEZNMDEsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIFRvVVVJRCAoImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJj
OWJiZjRhYTMwMSIpIC8qIERldmljZSBQcm9wZXJ0aWVzIGZvciBfRFNEICovLCAKICAgICAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICJhY3AtYXVkaW8tZXAtZm9ybWF0LW1heC1jaGFubmVscyIsIAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAyCiAgICAgICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLWZvcm1hdC1zYW1wbGlu
Zy1mcmVxdWVuY3kiLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
MHgxRjQwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0U4MAogICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLWZvcm1hdC1iaXRzLXBlci1zYW1wbGUiLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChGWDAxLCBQYWNrYWdlICgweDAy
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUb1VVSUQgKCJkYWZmZDgxNC02ZWJh
LTRkOGMtOGE5MS1iYzliYmY0YWEzMDEiKSAvKiBEZXZpY2UgUHJvcGVydGllcyBmb3IgX0RT
RCAqLywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLWFwby1lZngtdHlw
ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAg
fSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLWFwby1tZngt
dHlwZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLWFwby1z
ZngtdHlwZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNwLWF1ZGlvLWVwLWFw
by1lZngtZW5jb2Rlci10eXBlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAg
ICAgICAgfQoKICAgICAgICBEZXZpY2UgKFNEV0MpCiAgICAgICAgewogICAgICAgICAgICBO
YW1lIChfQURSLCAweDA1KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgIH0KCiAgICAgICAg
RGV2aWNlIChTRFdTKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwNikg
IC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICB9CgogICAgICAgIERldmljZSAoVVNCUykKICAg
ICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDcpICAvLyBfQURSOiBBZGRyZXNz
CiAgICAgICAgfQogICAgfQp9Cgo=
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt9.dsl"
Content-Disposition: attachment; filename="ssdt9.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0OS5kYXQsIFR1ZSBKdWwgIDkgMDg6MzI6MDAgMjAyNAogKgogKiBPcmlnaW5hbCBUYWJs
ZSBIZWFkZXI6CiAqICAgICBTaWduYXR1cmUgICAgICAgICJTU0RUIgogKiAgICAgTGVuZ3Ro
ICAgICAgICAgICAweDAwMDAwOUUwICgyNTI4KQogKiAgICAgUmV2aXNpb24gICAgICAgICAw
eDAyCiAqICAgICBDaGVja3N1bSAgICAgICAgIDB4OUIKICogICAgIE9FTSBJRCAgICAgICAg
ICAgIkxFTk9WTyIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIkNQTU1TT1NDIgogKiAgICAg
T0VNIFJldmlzaW9uICAgICAweDAwMDAwMDAxICgxKQogKiAgICAgQ29tcGlsZXIgSUQgICAg
ICAiSU5UTCIKICogICAgIENvbXBpbGVyIFZlcnNpb24gMHgyMDE4MDMxMyAoNTM4NDQ0NTYz
KQogKi8KRGVmaW5pdGlvbkJsb2NrICgiIiwgIlNTRFQiLCAyLCAiTEVOT1ZPIiwgIkNQTU1T
T1NDIiwgMHgwMDAwMDAwMSkKewogICAgRXh0ZXJuYWwgKF9TQl8uTTYyNSwgTWV0aG9kT2Jq
KSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5MUEMwLkVDMF8u
QkNMUywgSW50T2JqKQogICAgRXh0ZXJuYWwgKERERVAsIEludE9iaikKICAgIEV4dGVybmFs
IChESU1TLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoTTAzNywgRGV2aWNlT2JqKQogICAgRXh0
ZXJuYWwgKE0wNDYsIEludE9iaikKICAgIEV4dGVybmFsIChNMDQ3LCBJbnRPYmopCiAgICBF
eHRlcm5hbCAoTTA0OSwgTWV0aG9kT2JqKSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJu
YWwgKE0wNTAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDUxLCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoTTA1MiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTMsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChNMDU0LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1
NSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTYsIERldmljZU9iaikKICAgIEV4dGVy
bmFsIChNMDU3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1OCwgRGV2aWNlT2JqKQog
ICAgRXh0ZXJuYWwgKE0wNTksIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDYyLCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoTTA2OCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0w
NjksIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDcwLCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoTTA3MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzIsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMDc0LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NSwgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzYsIERldmljZU9iaikKICAgIEV4dGVybmFsIChN
MDc3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3OCwgRGV2aWNlT2JqKQogICAgRXh0
ZXJuYWwgKE0wNzksIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDgwLCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoTTA4MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wODIsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDgzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTA4NCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODUsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMDg2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTA4NywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODgsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMDg5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MCwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTEsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMDkyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MywgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMDk1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5NiwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0wOTcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk4
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5OSwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0xMDAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAxLCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwMiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0xMDMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA0LCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTEwNSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0x
MDYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA3LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTEwOCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDksIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTEwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTExNSwgQnVmZk9iaikKICAgIEV4dGVybmFsIChNMTE2LCBCdWZmRmllbGRPYmop
CiAgICBFeHRlcm5hbCAoTTExNywgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMTgs
IEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChNMTE5LCBCdWZmRmllbGRPYmopCiAgICBF
eHRlcm5hbCAoTTEyMCwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMjIsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMTI3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAo
TTEyOCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzEsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMTMyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzMywg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzQsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMTM1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzNiwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMjAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMjIxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIyNiwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0yMjcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMjI5LCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIzMSwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0yMzIsIE1ldGhvZE9iaikgICAgLy8gMyBBcmd1bWVudHMKICAgIEV4dGVybmFs
IChNMjMzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIzNSwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0yM0EsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjUx
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTI4MCwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0yOTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjlBLCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMxMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0zMUMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzIwLCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTMyMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0z
MjIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzIzLCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTMyNCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjUsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTMyNywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjgsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMzI5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMy
QSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0zMkIsIERldmljZU9iaikKICAgIEV4dGVy
bmFsIChNMzMwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMzMSwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0zNzgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzc5
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4MCwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0zODEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzgyLCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4MywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0zODQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg1LCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTM4NiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0z
ODcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg4LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTM4OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zOTAsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzkxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTM5MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00MDQsIEJ1ZmZPYmop
CiAgICBFeHRlcm5hbCAoTTQwOCwgTXV0ZXhPYmopCiAgICBFeHRlcm5hbCAoTTQxNCwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NDQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNNDQ5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1MywgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE00NTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
NDU1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1NiwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE00NTcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDYwLCBN
ZXRob2RPYmopICAgIC8vIDcgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTRDMCwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE00RjAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNNjEwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTYyMCwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE02MzEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNjUy
LCBGaWVsZFVuaXRPYmopCgogICAgU2NvcGUgKFxfU0IpCiAgICB7CiAgICAgICAgTmFtZSAo
TTYzMCwgMHg1NTU1KQogICAgICAgIE1ldGhvZCAoX09TQywgNCwgU2VyaWFsaXplZCkgIC8v
IF9PU0M6IE9wZXJhdGluZyBTeXN0ZW0gQ2FwYWJpbGl0aWVzCiAgICAgICAgewogICAgICAg
ICAgICBOYW1lIChNU0RCLCAweDAxKQogICAgICAgICAgICBOYW1lIChVNFBDLCAweDBGKQog
ICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmcwLCAweDAwLCBVSUQwKQogICAgICAg
ICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmczLCAweDAwLCBDRFcxKQogICAgICAgICAgICBJ
ZiAoKEFyZzIgPj0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0
ZURXb3JkRmllbGQgKEFyZzMsIDB4MDQsIENEVzIpCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIElmICgoQXJnMiA+PSAweDAzKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
Q3JlYXRlRFdvcmRGaWVsZCAoQXJnMywgMHgwOCwgQ0RXMykKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgSWYgKChBcmcyID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBNNDYwICgiICBGRUEtQVNMLVxcX1NCLl9PU0MgVVVJRCAweCVYIFN0YXJ0ICBDRFcx
ID0gMHglWFxuIiwgVUlEMCwgQ0RXMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBMb2NhbDIgPSBDRFcyIC8qIFxfU0JfLl9PU0MuQ0RXMiAq
LwogICAgICAgICAgICAgICAgTTQ2MCAoIiAgRkVBLUFTTC1cXF9TQi5fT1NDIFVVSUQgMHgl
WCBTdGFydCAgQ0RXMSA9IDB4JVggQ0RXMiA9IDB4JVhcbiIsIFVJRDAsIENEVzEsIENEVzIs
IDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDMgPSBDRFczIC8qIFxfU0JfLl9PU0Mu
Q0RXMyAqLwogICAgICAgICAgICAgICAgTTQ2MCAoIiAgRkVBLUFTTC1cXF9TQi5fT1NDIFVV
SUQgMHglWCBTdGFydCAgQ0RXMSA9IDB4JVggQ0RXMiA9IDB4JVggQ0RXMyA9IDB4JVhcbiIs
IFVJRDAsIENEVzEsIENEVzIsIENEVzMsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIyM2EwZDEzYS0yNmFiLTQ4NmMtOWM1
Zi0wZmZhNTI1YTU3NWEiKSAvKiBVU0I0IENhcGFiaWxpdGllcyAqLykpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IDB4MDAKICAgICAgICAgICAgICAgICAg
ICBJZiAoKFU0UEMgIT0gMHhGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDUgPSAoVTRQQyAmIDB4MEYpCiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMyAmPSAweEZGRkZGRkYwCiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMyB8PSBMb2NhbDUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgRWxzZUlmICgoQ29uZFJlZk9mIChcX1NCLk02MjUpICYmIChNNjIwICE9IDB4MDApKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTTA0
OSAoTTYyMCwgMHgxMCkgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXF9TQi5NNjMwID09IDB4NTU1NSkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYWwxID0gXF9TQi5NNjI1ICgweDAxODAsIDB4MDNFOCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcX1NCLk02MzAgPSBMb2NhbDEKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDEgPSBcX1NCLk02MzAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgJiAweEZGKSA9PSAweDAw
KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDUgPSAoKExvY2FsMSA+PiAweDEwKSAmIDB4MEYpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzICY9IDB4RkZGRkZGRjAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMgfD0gTG9jYWw1CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWw1ID09IDB4MDApKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ0RXMSB8PSAw
eDA0CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAo
KExvY2FsMyAhPSBDRFczKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIENEVzMgPSBMb2NhbDMKICAgICAgICAgICAgICAgICAgICAgICAgQ0RXMSB8
PSAweDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENE
VzEgfD0gMHgwOAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAg
IEVsc2VJZiAoKEFyZzAgPT0gVG9VVUlEICgiMDgxMWIwNmUtNGEyNy00NGY5LThkNjAtM2Ni
YmMyMmU3YjQ4IikgLyogUGxhdGZvcm0td2lkZSBDYXBhYmlsaXRpZXMgKi8pKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKENvbmRSZWZPZiAoXERJTVMpICYmIENv
bmRSZWZPZiAoXERERVApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoKFxEREVQID09IDB4MDEpICYmICgoQ0RXMiAmIDB4MDAwNDAwMDAp
ID09IDB4MDAwNDAwMDApKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBEaXNhYmxlIFVTQjQgQUNQSSBfREVQXG4i
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwxID0gXERJTVMgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBNMjMyIChMb2NhbDEsIDB4NTUsIDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcRERFUCA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
TG9jYWwyIHw9IDB4MDQKICAgICAgICAgICAgICAgICAgICBJZiAoKE1TREIgPT0gMHgwMSkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIg
Jj0gMHhGRkZGRkY3RgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgSWYgKChVNFBDICE9IDB4RkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYWwyIHw9IDB4MDAwNDAwMDAKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoTTYyMCAhPSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTTA0OSAoTTYy
MCwgMHgxMCkgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIElmICgoTTA0OSAoTTYyMCwgMHg0NSkgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYWwyICY9IDB4RkZGQkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgIT0gQ0RXMikpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDRFcyID0gTG9jYWwyCiAgICAgICAg
ICAgICAgICAgICAgICAgIENEVzEgfD0gMHgxMAogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgSWYgKCgoKENEVzEgJiAweDAxKSAhPSAweDAxKSAmJiBDb25k
UmVmT2YgKFxfU0IuTTYyNSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChNNjIwICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE0wNDkgKE02MjAsIDB4MTAp
ICE9IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IE0wNDkgKE02MjAsIDB4NDMpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gXF9TQi5NNjI1ICgoMHgwMTAyICsg
KExvY2FsNCA8PCAweDEwKSksIDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICAgICAgSWYgKChDRFcyICYgMHgwMDA4MDAwMCkpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAu
QkNMUyA9IDB4MDEKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgXF9T
Qi5QQ0kwLkxQQzAuRUMwLkJDTFMgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIENEVzEgfD0gMHgwOAogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgQ0RXMSB8PSAweDA0CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMiA9
PSAweDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgRkVBLUFT
TC1cXF9TQi5fT1NDIFVVSUQgMHglWCBSZXR1cm4gQ0RXMSA9IDB4JVhcbiIsIFVJRDAsIENE
VzEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIH0KICAgICAgICAgICAg
RWxzZUlmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
TTQ2MCAoIiAgRkVBLUFTTC1cXF9TQi5fT1NDIFVVSUQgMHglWCBSZXR1cm4gQ0RXMSA9IDB4
JVggQ0RXMiA9IDB4JVhcbiIsIFVJRDAsIENEVzEsIENEVzIsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBNNDYwICgiICBGRUEtQVNMLVxcX1NCLl9PU0MgVVVJRCAweCVYIFJldHVybiBD
RFcxID0gMHglWCBDRFcyID0gMHglWCBDRFczID0gMHglWFxuIiwgVUlEMCwgQ0RXMSwgQ0RX
MiwgQ0RXMywgMHgwMCwgMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJu
IChBcmczKQogICAgICAgIH0KICAgIH0KfQoK
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt10.dsl"
Content-Disposition: attachment; filename="ssdt10.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MTAuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMUQyNyAoNzQ2MykKICogICAgIFJldmlzaW9uICAgICAgICAg
MHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweEFGCiAqICAgICBPRU0gSUQgICAgICAg
ICAgICJMRU5PVk8iCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJBT0QgICAgICIKICogICAg
IE9FTSBSZXZpc2lvbiAgICAgMHgwMDAwMDAwMSAoMSkKICogICAgIENvbXBpbGVyIElEICAg
ICAgIklOVEwiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MjAxODAzMTMgKDUzODQ0NDU2
MykKICovCkRlZmluaXRpb25CbG9jayAoIiIsICJTU0RUIiwgMiwgIkxFTk9WTyIsICJBT0Qg
ICAgICIsIDB4MDAwMDAwMDEpCnsKICAgIEV4dGVybmFsIChPQklELCBQa2dPYmopCiAgICBF
eHRlcm5hbCAoT0JJRSwgUGtnT2JqKQogICAgRXh0ZXJuYWwgKE9CSVQsIFBrZ09iaikKCiAg
ICBOYW1lIChPQklELCBQYWNrYWdlICgweEMxKQogICAgewogICAgICAgIDB4NDAsIAogICAg
ICAgIDB4MDAwNDAwMDEsIAogICAgICAgIDB4MDAwNDAwMDIsIAogICAgICAgIDB4MDAwMjAw
MjcsIAogICAgICAgIDB4MDAwMjAwMjUsIAogICAgICAgIDB4MDAwMjAwMzYsIAogICAgICAg
IDB4MDAwMjAwMzcsIAogICAgICAgIDB4MDAwMjAwMzEsIAogICAgICAgIDB4MDAwMjAwMzIs
IAogICAgICAgIDB4MDAwMjAwMDEsIAogICAgICAgIDB4MDAwMjAwMDgsIAogICAgICAgIDB4
MDAwMjAwMTQsIAogICAgICAgIDB4MDAwMjAwMDIsIAogICAgICAgIDB4MDAwMjAwMDMsIAog
ICAgICAgIDB4MDAwMjAwMDQsIAogICAgICAgIDB4MDAwMjAwMDYsIAogICAgICAgIDB4MDAw
MjAwMDUsIAogICAgICAgIDB4MDAwMjAwMDksIAogICAgICAgIDB4MDAwMjAwMEYsIAogICAg
ICAgIDB4MDAwMjAwMEUsIAogICAgICAgIDB4MDAwMjAwMEQsIAogICAgICAgIDB4MDAwMjAw
MTIsIAogICAgICAgIDB4MDAwMjAwMTEsIAogICAgICAgIDB4MDAwMjAwMTAsIAogICAgICAg
IDB4MDAwMjAwMTcsIAogICAgICAgIDB4MDAwMjAwMUIsIAogICAgICAgIDB4MDAwMjAwMTUs
IAogICAgICAgIDB4MDAwMjAwMTMsIAogICAgICAgIDB4MDAwMjAwMTYsIAogICAgICAgIDB4
MDAwMjAwMTksIAogICAgICAgIDB4MDAwMjAwMTgsIAogICAgICAgIDB4MDAwMjAwMUEsIAog
ICAgICAgIDB4MDAwMjAwMUMsIAogICAgICAgIDB4MDAwMjAwMUQsIAogICAgICAgIDB4MDAw
MjAwMUYsIAogICAgICAgIDB4MDAwMjAwMUUsIAogICAgICAgIFplcm8sIAogICAgICAgIFpl
cm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAg
ICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8s
IAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAg
IFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAog
ICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFpl
cm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAg
ICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8s
IAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAg
IFplcm8sIAogICAgICAgIE9uZSwgCiAgICAgICAgWmVybywgCiAgICAgICAgT25lLCAKICAg
ICAgICBPbmUsIAogICAgICAgIFplcm8sIAogICAgICAgIE9uZSwgCiAgICAgICAgT25lLCAK
ICAgICAgICBPbmUsIAogICAgICAgIE9uZSwgCiAgICAgICAgT25lLCAKICAgICAgICBPbmUs
IAogICAgICAgIE9uZSwgCiAgICAgICAgT25lLCAKICAgICAgICBPbmUsIAogICAgICAgIE9u
ZSwgCiAgICAgICAgT25lLCAKICAgICAgICBPbmUsIAogICAgICAgIE9uZSwgCiAgICAgICAg
T25lLCAKICAgICAgICBPbmUsIAogICAgICAgIE9uZSwgCiAgICAgICAgT25lLCAKICAgICAg
ICBPbmUsIAogICAgICAgIE9uZSwgCiAgICAgICAgT25lLCAKICAgICAgICBPbmUsIAogICAg
ICAgIE9uZSwgCiAgICAgICAgT25lLCAKICAgICAgICBPbmUsIAogICAgICAgIE9uZSwgCiAg
ICAgICAgT25lLCAKICAgICAgICBPbmUsIAogICAgICAgIE9uZSwgCiAgICAgICAgWmVybywg
CiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAg
WmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAg
ICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVy
bywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAg
ICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywg
CiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAg
WmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAg
ICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgIkNv
bW1hbmQgQnVmZmVyIFN0YXJ0IiwgCiAgICAgICAgIkNvbW1hbmQgQnVmZmVyIEVuZCIsIAog
ICAgICAgICJTb2Z0d2FyZSBEb3duY29yZSBDb25maWciLCAKICAgICAgICAiU2V0IFBvd2Vy
RHdvbkVuIiwgCiAgICAgICAgIlNldCBDQ0xLIEZtYXgiLCAKICAgICAgICAiU2V0IEdGWEND
TEsgRm1heCIsIAogICAgICAgICJTZXQgSW50ZXJsZWF2ZSBNb2RlIiwgCiAgICAgICAgIlNl
dCBJbnRlcmxlYXZlIFNpemUiLCAKICAgICAgICAiU2V0IE1lbSBDbG9jayIsIAogICAgICAg
ICJTZXQgVHJjcGFnZSIsIAogICAgICAgICJTZXQgVGN3bCIsIAogICAgICAgICJTZXQgVGNs
IiwgCiAgICAgICAgIlNldCBUcmNkcmQiLCAKICAgICAgICAiU2V0IFRyY2R3ciIsIAogICAg
ICAgICJTZXQgVHJwIiwgCiAgICAgICAgIlNldCBUcmFzIiwgCiAgICAgICAgIlNldCBUcmMi
LCAKICAgICAgICAiU2V0IFRycmRMIiwgCiAgICAgICAgIlNldCBUcnJkUyIsIAogICAgICAg
ICJTZXQgVGZhdyIsIAogICAgICAgICJTZXQgVHd0ckwiLCAKICAgICAgICAiU2V0IFR3dHJT
IiwgCiAgICAgICAgIlNldCBUd3IiLCAKICAgICAgICAiU2V0IFRyZHJkU2NMIiwgCiAgICAg
ICAgIlNldCBUd3J3clNjTCIsIAogICAgICAgICJTZXQgVHJ0cCIsIAogICAgICAgICJTZXQg
VGNrZSIsIAogICAgICAgICJTZXQgVHJkcmRTYyIsIAogICAgICAgICJTZXQgVHJkcmREZCIs
IAogICAgICAgICJTZXQgVHJkcmRTZCIsIAogICAgICAgICJTZXQgVHdyd3JTYyIsIAogICAg
ICAgICJTZXQgVHdyd3JTZCIsIAogICAgICAgICJTZXQgVHdyd3JEZCIsIAogICAgICAgICJT
ZXQgVHdycmQiLCAKICAgICAgICAiU2V0IFRyZHdyIiwgCiAgICAgICAgIiIsIAogICAgICAg
ICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAi
IiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIs
IAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAK
ICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAg
ICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAg
ICAgICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAg
ICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiCiAgICB9KQogICAgTmFtZSAoT0JJRSwg
UGFja2FnZSAoMHhDMSkKICAgIHsKICAgICAgICAweDQwLCAKICAgICAgICAweDAwMDEwMDAz
LCAKICAgICAgICAweDAwMDEwMDA0LCAKICAgICAgICAweDAwMDEwMDA1LCAKICAgICAgICAw
eDAwMDEwMDA2LCAKICAgICAgICAweDAwMDEwMDA3LCAKICAgICAgICAweDAwMDEwMDA4LCAK
ICAgICAgICAweDAwMDUwMDBBLCAKICAgICAgICAweDAwMDUwMDEwLCAKICAgICAgICAweDAw
MDUwMDAxLCAKICAgICAgICAweDAwMDUwMDAyLCAKICAgICAgICAweDAwMDUwMDAzLCAKICAg
ICAgICAweDAwMDUwMDBDLCAKICAgICAgICAweDAwMDUwMDBELCAKICAgICAgICAweDAwMDUw
MDA0LCAKICAgICAgICAweDAwMDIwMDQzLCAKICAgICAgICAweDAwMDIwMDNDLCAKICAgICAg
ICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAK
ICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBa
ZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAg
ICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJv
LCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAg
ICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAK
ICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBa
ZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAg
ICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJv
LCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAg
ICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAK
ICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBa
ZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAg
ICAgICBaZXJvLCAKICAgICAgICBPbmUsIAogICAgICAgIE9uZSwgCiAgICAgICAgT25lLCAK
ICAgICAgICBPbmUsIAogICAgICAgIE9uZSwgCiAgICAgICAgT25lLCAKICAgICAgICBPbmUs
IAogICAgICAgIE9uZSwgCiAgICAgICAgT25lLCAKICAgICAgICBPbmUsIAogICAgICAgIE9u
ZSwgCiAgICAgICAgT25lLCAKICAgICAgICBPbmUsIAogICAgICAgIE9uZSwgCiAgICAgICAg
T25lLCAKICAgICAgICBPbmUsIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAg
ICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8s
IAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAg
IFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAog
ICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFpl
cm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAg
ICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8s
IAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAg
IFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAog
ICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFpl
cm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAg
ICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8s
IAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAg
IFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgICJHZXQgT0Mg
RGlzYWJsZSIsIAogICAgICAgICJHZXQgT0MgVm9sdGFnZSBNYXgiLCAKICAgICAgICAiR2V0
IE9DIEZyZXF1ZW5jeSBNYXgiLCAKICAgICAgICAiR2V0IEdGWCBPQyBWb2x0YWdlIE1heCIs
IAogICAgICAgICJHZXQgR0ZYIE9DIEZyZXF1ZW5jeSBNYXgiLCAKICAgICAgICAiR2V0IElu
dGVybGV2YWluZyBDYXAiLCAKICAgICAgICAiU2V0IEN1cnZlIE9wdGltaXplciIsIAogICAg
ICAgICJTZXQgR0ZYIEN1cnZlIE9wdGltaXplciIsIAogICAgICAgICJTZXQgUFBUIExpbWl0
IiwgCiAgICAgICAgIlNldCBUREMgTGltaXQiLCAKICAgICAgICAiU2V0IEVEQyBMaW1pdCIs
IAogICAgICAgICJTZXQgU29jIFREQyBMaW1pdCIsIAogICAgICAgICJTZXQgU29jIEVEQyBM
aW1pdCIsIAogICAgICAgICJTZXQgU2NhbGFyIiwgCiAgICAgICAgIlNldCBMQ0xLIEZyZXEi
LCAKICAgICAgICAiU2V0IFRyZmMxIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAg
ICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAgICAg
ICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAg
ICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAi
IiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIs
IAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAK
ICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAg
ICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAg
ICAgICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAg
ICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAgICAgICAg
IiIsIAogICAgICAgICIiLCAKICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIi
LCAKICAgICAgICAiIiwgCiAgICAgICAgIiIsIAogICAgICAgICIiLCAKICAgICAgICAiIgog
ICAgfSkKICAgIE5hbWUgKE9CSVQsIFBhY2thZ2UgKDB4MzIpCiAgICB7CiAgICAgICAgMHgz
MSwgCiAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIDB4MDAw
MjAwMUUsIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAweDMyLCAKICAgICAgICAg
ICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAw
ICovICAweDFFLCAweDAwLCAweDAyLCAweDAwLCAweDEwLCAweDAwLCAweDAwLCAweDAwLCAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsICAvLyAuLi4uLi4uLgogICAgICAg
ICAgICAgICAgLyogMDAxMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgfQogICAgICAgIH0sIAoKICAg
ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgMHgwMDAyMDAxRiwg
CiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIDB4MzEsIAogICAgICAgICAgICBCdWZm
ZXIgKDB4MTQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4
MUYsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAg
ICAvKiAwMDEwICovICAweDAxLCAweDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gLi4uLgogICAgICAgICAgICB9CiAgICAgICAgfSwgCgogICAgICAgIFBh
Y2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDAwMDIwMDFELCAKICAgICAg
ICAgICAgT25lLCAKICAgICAgICAgICAgMHgzMCwgCiAgICAgICAgICAgIEJ1ZmZlciAoMHgx
NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgxRCwgMHgw
MCwgMHgwMiwgMHgwMCwgMHgwNywgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEZG
LCAweEZGLCAweEZGLCAweEZGLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAw
MTAgKi8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyAuLi4uCiAgICAgICAgICAgIH0KICAgICAgICB9LCAKCiAgICAgICAgUGFja2FnZSAo
MHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwMjAwMUMsIAogICAgICAgICAgICBP
bmUsIAogICAgICAgICAgICAweDJGLCAKICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDFDLCAweDAwLCAweDAy
LCAweDAwLCAweDA3LCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAg
ICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4RkYs
IDB4RkYsIDB4RkYsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAg
MHgwMSwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4u
Li4KICAgICAgICAgICAgfQogICAgICAgIH0sIAoKICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgIHsKICAgICAgICAgICAgMHgwMDAyMDAxQSwgCiAgICAgICAgICAgIE9uZSwgCiAg
ICAgICAgICAgIDB4MkUsIAogICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MUEsIDB4MDAsIDB4MDIsIDB4MDAs
IDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg
LyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwg
MHhGRiwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAxLCAw
eDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAg
ICAgICAgICB9CiAgICAgICAgfSwgCgogICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ewogICAgICAgICAgICAweDAwMDIwMDE4LCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAg
ICAgMHgyRCwgCiAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgxOCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwNCwg
MHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDA4
ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDEsIDB4MDAsIDB4
MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAg
IH0KICAgICAgICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAg
ICAgICAgIDB4MDAwMjAwMTksIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAweDJD
LCAKICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAvKiAwMDAwICovICAweDE5LCAweDAwLCAweDAyLCAweDAwLCAweDA0LCAweDAwLCAw
eDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgw
MCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgfQogICAg
ICAgIH0sIAoKICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAg
MHgwMDAyMDAxNiwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIDB4MkIsIAogICAg
ICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8q
IDAwMDAgKi8gIDB4MTYsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4
MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAxLCAweDAwLCAweDAwLCAweDAwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAgICAgICAgICB9CiAgICAgICAgfSwg
CgogICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDAwMDIw
MDEzLCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgMHgyQSwgCiAgICAgICAgICAg
IEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAq
LyAgMHgxMywgMHgwMCwgMHgwMiwgMHgwMCwgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgIC8v
IC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAgLy8gLi4uLi4uLi4KICAgICAgICAg
ICAgICAgIC8qIDAwMTAgKi8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgIH0KICAgICAgICB9LCAKCiAgICAg
ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwMjAwMTUsIAog
ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAweDI5LCAKICAgICAgICAgICAgQnVmZmVy
ICgweDE0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDE1
LCAweDAwLCAweDAyLCAweDAwLCAweDA2LCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4u
Li4KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg
LyogMDAxMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgfQogICAgICAgIH0sIAoKICAgICAgICBQYWNr
YWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgMHgwMDAyMDAxQiwgCiAgICAgICAg
ICAgIE9uZSwgCiAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICBCdWZmZXIgKDB4MTQp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MUIsIDB4MDAs
IDB4MDIsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAg
ICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwg
MHhGRiwgMHhGRiwgMHhGRiwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDEw
ICovICAweDAxLCAweDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gLi4uLgogICAgICAgICAgICB9CiAgICAgICAgfSwgCgogICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgewogICAgICAgICAgICAweDAwMDIwMDE3LCAKICAgICAgICAgICAgT25l
LCAKICAgICAgICAgICAgMHgyNywgCiAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgxNywgMHgwMCwgMHgwMiwg
MHgwMCwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAg
ICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEZGLCAweEZGLCAw
eEZGLCAweEZGLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4
MDEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4u
CiAgICAgICAgICAgIH0KICAgICAgICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg
ICAgICB7CiAgICAgICAgICAgIDB4MDAwMjAwMTAsIAogICAgICAgICAgICBPbmUsIAogICAg
ICAgICAgICAweDI2LCAKICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDEwLCAweDAwLCAweDAyLCAweDAwLCAw
eDFELCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8q
IDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4RkYsIDB4RkYsIDB4
RkYsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMSwgMHgw
MCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAg
ICAgICAgfQogICAgICAgIH0sIAoKICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgIHsK
ICAgICAgICAgICAgMHgwMDAyMDAxMSwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg
IDB4MjUsIAogICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MTEsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDcsIDB4
MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAwOCAq
LyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgIC8v
IC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAxLCAweDAwLCAweDAw
LCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAgICAgICAgICB9
CiAgICAgICAgfSwgCgogICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAg
ICAgICAweDAwMDIwMDEyLCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgMHgyNCwg
CiAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgLyogMDAwMCAqLyAgMHgxMiwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwQywgMHgwMCwgMHgw
MCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAgLy8gLi4uLi4u
Li4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgIH0KICAgICAg
ICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIDB4
MDAwMjAwMEQsIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAweDIzLCAKICAgICAg
ICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAw
MDAwICovICAweDBELCAweDAwLCAweDAyLCAweDAwLCAweDBDLCAweDAwLCAweDAwLCAweDAw
LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsICAvLyAuLi4uLi4uLgogICAg
ICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgfQogICAgICAgIH0sIAoK
ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgMHgwMDAyMDAw
RSwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIDB4MjIsIAogICAgICAgICAgICBC
dWZmZXIgKDB4MTQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8g
IDB4MEUsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAu
Li4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAg
ICAgICAvKiAwMDEwICovICAweDAxLCAweDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gLi4uLgogICAgICAgICAgICB9CiAgICAgICAgfSwgCgogICAgICAg
IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDAwMDIwMDBGLCAKICAg
ICAgICAgICAgT25lLCAKICAgICAgICAgICAgMHgyMSwgCiAgICAgICAgICAgIEJ1ZmZlciAo
MHgxNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwRiwg
MHgwMCwgMHgwMiwgMHgwMCwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eEZGLCAweEZGLCAweEZGLCAweEZGLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8q
IDAwMTAgKi8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyAuLi4uCiAgICAgICAgICAgIH0KICAgICAgICB9LCAKCiAgICAgICAgUGFja2Fn
ZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwMjAwMDksIAogICAgICAgICAg
ICBPbmUsIAogICAgICAgICAgICAweDIwLCAKICAgICAgICAgICAgQnVmZmVyICgweDE0KQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDA5LCAweDAwLCAw
eDAyLCAweDAwLCAweDMzLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLjMuLi4KICAgICAg
ICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4
RkYsIDB4RkYsIDB4RkYsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAq
LyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IC4uLi4KICAgICAgICAgICAgfQogICAgICAgIH0sIAoKICAgICAgICBQYWNrYWdlICgweDA0
KQogICAgICAgIHsKICAgICAgICAgICAgMHgwMDAyMDAwNSwgCiAgICAgICAgICAgIE9uZSwg
CiAgICAgICAgICAgIDB4MUYsIAogICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDUsIDB4MDAsIDB4MDIsIDB4
MDAsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uIi4uLgogICAgICAgICAgICAg
ICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhG
RiwgMHhGRiwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAx
LCAweDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgog
ICAgICAgICAgICB9CiAgICAgICAgfSwgCgogICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg
ICAgewogICAgICAgICAgICAweDAwMDIwMDNDLCAKICAgICAgICAgICAgT25lLCAKICAgICAg
ICAgICAgMHgxRSwgCiAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgzQywgMHgwMCwgMHgwMiwgMHgwMCwgMHhF
MCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIDwuLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAw
MDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEZGLCAweEZGLCAweEZGLCAweEZG
LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDEsIDB4MDAs
IDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAg
ICAgIH0KICAgICAgICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAg
ICAgICAgICAgIDB4MDAwMjAwMDYsIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAw
eDFELCAKICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAvKiAwMDAwICovICAweDA2LCAweDAwLCAweDAyLCAweDAwLCAweDExLCAweDAw
LCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8g
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsICAvLyAu
Li4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwg
MHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgfQog
ICAgICAgIH0sIAoKICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAg
ICAgMHgwMDAyMDAwNCwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIDB4MUMsIAog
ICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IC8qIDAwMDAgKi8gIDB4MDQsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDcsIDB4MDAsIDB4MDAs
IDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAxLCAweDAwLCAweDAwLCAweDAwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAgICAgICAgICB9CiAgICAgICAg
fSwgCgogICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDAw
MDIwMDAzLCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgMHgxQiwgCiAgICAgICAg
ICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAw
MCAqLyAgMHgwMywgMHgwMCwgMHgwMiwgMHgwMCwgMHgwRiwgMHgwMCwgMHgwMCwgMHgwMCwg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAgLy8gLi4uLi4uLi4KICAgICAg
ICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgIH0KICAgICAgICB9LCAKCiAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwMjAwMDIs
IAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAweDFBLCAKICAgICAgICAgICAgQnVm
ZmVyICgweDE0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAw
eDAyLCAweDAwLCAweDAyLCAweDAwLCAweDEyLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAg
ICAgLyogMDAxMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgfQogICAgICAgIH0sIAoKICAgICAgICBQ
YWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgMHgwMDAyMDAxNCwgCiAgICAg
ICAgICAgIE9uZSwgCiAgICAgICAgICAgIDB4MTksIAogICAgICAgICAgICBCdWZmZXIgKDB4
MTQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MTQsIDB4
MDAsIDB4MDIsIDB4MDAsIDB4MDksIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhG
RiwgMHhGRiwgMHhGRiwgMHhGRiwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAw
MDEwICovICAweDAxLCAweDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gLi4uLgogICAgICAgICAgICB9CiAgICAgICAgfSwgCgogICAgICAgIFBhY2thZ2Ug
KDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDAwMDIwMDA4LCAKICAgICAgICAgICAg
T25lLCAKICAgICAgICAgICAgMHgxOCwgCiAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwOCwgMHgwMCwgMHgw
MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAg
ICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEZGLCAweEZG
LCAweEZGLCAweEZGLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8g
IDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu
Li4uCiAgICAgICAgICAgIH0KICAgICAgICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgwNCkK
ICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwMjAwMDEsIAogICAgICAgICAgICBPbmUsIAog
ICAgICAgICAgICAweDE3LCAKICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAxLCAweDAwLCAweDAyLCAweDAw
LCAweDgwLCAweDBDLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAg
IC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4RkYsIDB4RkYs
IDB4RkYsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMSwg
MHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAg
ICAgICAgICAgfQogICAgICAgIH0sIAoKICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg
IHsKICAgICAgICAgICAgMHgwMDAyMDA0MywgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAg
ICAgIDB4MTYsIAogICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4NDMsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsICAvLyBDLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAw
OCAqLyAgMHg5NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHhDNCwgMHgwOSwgMHgwMCwgMHgwMCwg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAxLCAweDAwLCAw
eDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAgICAgICAg
ICB9CiAgICAgICAgfSwgCgogICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAg
ICAgICAgICAweDAwMDIwMDMyLCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgMHgx
NSwgCiAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgLyogMDAwMCAqLyAgMHgzMiwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgIC8vIDIuLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4
MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgIH0KICAg
ICAgICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAg
IDB4MDAwMjAwMzEsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgMHgxNCwgCiAg
ICAgICAgICAgIEJ1ZmZlciAoMHgwMTlDKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAvKiAwMDAwICovICAweDMxLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAgLy8gMS4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDEs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4u
LgogICAgICAgICAgICB9CiAgICAgICAgfSwgCgogICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg
ICAgICAgewogICAgICAgICAgICAweDAwMDIwMDM3LCAKICAgICAgICAgICAgT25lLCAKICAg
ICAgICAgICAgMHgxMywgCiAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgzNywgMHgwMCwgMHgwMiwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIDcuLi4uLi4uCiAgICAgICAgICAgICAgICAv
KiAwMDA4ICovICAweDhDLCAweDBBLCAweDAwLCAweDAwLCAweDU0LCAweDBCLCAweDAwLCAw
eDAwLCAgLy8gLi4uLlQuLi4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MTksIDB4
MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAg
ICAgICAgIH0KICAgICAgICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICB7
CiAgICAgICAgICAgIDB4MDAwMjAwMzYsIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAg
ICAweDEyLCAKICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAvKiAwMDAwICovICAweDM2LCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAgLy8gNi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMDgg
Ki8gIDB4MUQsIDB4MTAsIDB4MDAsIDB4MDAsIDB4Q0QsIDB4MTQsIDB4MDAsIDB4MDAsICAv
LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgxOSwgMHgwMCwgMHgw
MCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAg
fQogICAgICAgIH0sIAoKICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAg
ICAgICAgMHgwMDA1MDAwNCwgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIDB4MTEs
IAogICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIC8qIDAwMDAgKi8gIDB4MDQsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg2
NCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhFOCwgMHgwMywgMHgwMCwgMHgwMCwgIC8vIGQuLi4u
Li4uCiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDY0LCAweDAwLCAweDAwLCAweDAw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZC4uLgogICAgICAgICAgICB9CiAgICAg
ICAgfSwgCgogICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAw
eDAwMDUwMDBELCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgMHgxMCwgCiAgICAg
ICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyog
MDAwMCAqLyAgMHgwRCwgMHgwMCwgMHgwNSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDMwLCAweDc1LCAweDAwLCAweDAwLCAgLy8gLi4uLjB1Li4KICAg
ICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgIH0KICAgICAgICB9LCAK
CiAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwNTAw
MEMsIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAweDBGLCAKICAgICAgICAgICAg
QnVmZmVyICgweDE0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICov
ICAweDBDLCAweDAwLCAweDA1LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8g
Li4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MjAsIDB4NEUsIDB4MDAsIDB4MDAsICAvLyAuLi4uIE4uLgogICAgICAgICAg
ICAgICAgLyogMDAxMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgfQogICAgICAgIH0sIAoKICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgMHgwMDA1MDAwMywgCiAg
ICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIDB4MEUsIAogICAgICAgICAgICBCdWZmZXIg
KDB4MTQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDMs
IDB4MDAsIDB4MDUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHhGMCwgMHg0OSwgMHgwMiwgMHgwMCwgIC8vIC4uLi4uSS4uCiAgICAgICAgICAgICAgICAv
KiAwMDEwICovICAweDAxLCAweDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gLi4uLgogICAgICAgICAgICB9CiAgICAgICAgfSwgCgogICAgICAgIFBhY2th
Z2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDAwMDUwMDAyLCAKICAgICAgICAg
ICAgT25lLCAKICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwMiwgMHgwMCwg
MHgwNSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDcwLCAw
eDExLCAweDAxLCAweDAwLCAgLy8gLi4uLnAuLi4KICAgICAgICAgICAgICAgIC8qIDAwMTAg
Ki8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyAuLi4uCiAgICAgICAgICAgIH0KICAgICAgICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwNTAwMDEsIAogICAgICAgICAgICBPbmUs
IAogICAgICAgICAgICAweDBDLCAKICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAxLCAweDAwLCAweDA1LCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg
ICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDgsIDB4RTgsIDB4
MDEsIDB4MDAsICAvLyAuLi4uSC4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgw
MSwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4K
ICAgICAgICAgICAgfQogICAgICAgIH0sIAoKICAgICAgICBQYWNrYWdlICgweDA0KQogICAg
ICAgIHsKICAgICAgICAgICAgMHgwMDAyMDAyNSwgCiAgICAgICAgICAgIFplcm8sIAogICAg
ICAgICAgICAweDBCLCAKICAgICAgICAgICAgQnVmZmVyICgweDAxOUMpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MjUsIDB4MDAsIDB4MDIsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAlLi4uLi4uLgogICAgICAgICAgICAgICAg
LyogMDAwOCAqLyAgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwg
MHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAwLCAw
eDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAg
ICAgICAgICB9CiAgICAgICAgfSwgCgogICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg
ewogICAgICAgICAgICAweDAwMDUwMDEwLCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAg
ICAgMHgwQSwgCiAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgxMCwgMHgwMCwgMHgwNSwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDA4
ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDFFLCAweDAwLCAweDAwLCAweDAwLCAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDEsIDB4MDAsIDB4
MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAg
IH0KICAgICAgICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAg
ICAgICAgIDB4MDAwNTAwMEEsIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAweDA5
LCAKICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAvKiAwMDAwICovICAweDBBLCAweDAwLCAweDA1LCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MUUsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgw
MCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgfQogICAg
ICAgIH0sIAoKICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAg
MHgwMDAyMDAyNywgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgIDB4MDgsIAogICAg
ICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8q
IDAwMDAgKi8gIDB4MjcsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsICAvLyAnLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAxLCAweDAwLCAweDAwLCAweDAwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAgICAgICAgICB9CiAgICAgICAgfSwg
CgogICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDAwMDEw
MDA4LCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAg
IEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAq
LyAgMHgwOCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8v
IC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAgLy8gLi4uLi4uLi4KICAgICAgICAg
ICAgICAgIC8qIDAwMTAgKi8gIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgIH0KICAgICAgICB9LCAKCiAgICAg
ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIDB4MDAwMTAwMDcsIAog
ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAweDA2LCAKICAgICAgICAgICAgQnVmZmVy
ICgweDE0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDA3
LCAweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4u
Li4KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg
LyogMDAxMCAqLyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgfQogICAgICAgIH0sIAoKICAgICAgICBQYWNr
YWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgMHgwMDAxMDAwNiwgCiAgICAgICAg
ICAgIE9uZSwgCiAgICAgICAgICAgIDB4MDUsIAogICAgICAgICAgICBCdWZmZXIgKDB4MTQp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDYsIDB4MDAs
IDB4MDEsIDB4MDAsIDB4RjAsIDB4MEEsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAg
ICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwg
MHhGRiwgMHhGRiwgMHhGRiwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDEw
ICovICAweDAxLCAweDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gLi4uLgogICAgICAgICAgICB9CiAgICAgICAgfSwgCgogICAgICAgIFBhY2thZ2UgKDB4
MDQpCiAgICAgICAgewogICAgICAgICAgICAweDAwMDEwMDA1LCAKICAgICAgICAgICAgT25l
LCAKICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwNSwgMHgwMCwgMHgwMSwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAg
ICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEZGLCAweEZGLCAw
eEZGLCAweEZGLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4
MDEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4u
CiAgICAgICAgICAgIH0KICAgICAgICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg
ICAgICB7CiAgICAgICAgICAgIDB4MDAwMTAwMDQsIAogICAgICAgICAgICBPbmUsIAogICAg
ICAgICAgICAweDAzLCAKICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDA0LCAweDAwLCAweDAxLCAweDAwLCAw
eEYwLCAweDBBLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8q
IDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4RkYsIDB4RkYsIDB4
RkYsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMSwgMHgw
MCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAg
ICAgICAgfQogICAgICAgIH0sIAoKICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgIHsK
ICAgICAgICAgICAgMHgwMDAxMDAwMywgCiAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg
IDB4MDIsIAogICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDMsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAwOCAq
LyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgIC8v
IC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAxLCAweDAwLCAweDAw
LCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAgICAgICAgICB9
CiAgICAgICAgfQogICAgfSkKICAgIFNjb3BlIChcKQogICAgewogICAgICAgIE5hbWUgKEdG
MDEsIDB4MDApCiAgICAgICAgTmFtZSAoQVNNSSwgMHgwMEIwKQogICAgICAgIE5hbWUgKElT
TUksIDB4OUQpCiAgICAgICAgTmFtZSAoQU9EViwgMHgwNikKICAgICAgICBPcGVyYXRpb25S
ZWdpb24gKEFPREUsIFN5c3RlbU1lbW9yeSwgMHgxQkIwNTAxOCwgMHgyNEFDKQogICAgICAg
IEZpZWxkIChBT0RFLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAg
ICAgICAgICBPVVRCLCAgIDE1NjgsIAogICAgICAgICAgICBBUVZTLCAgIDMyLCAKICAgICAg
ICAgICAgU0NNSSwgICAzMiwgCiAgICAgICAgICAgIFNDTUQsICAgMzIsIAogICAgICAgICAg
ICBEU1BELCAgIDY4MTI4LCAKICAgICAgICAgICAgUkVTViwgICA5NiwgCiAgICAgICAgICAg
IFJNUEQsICAgMTEyMCwgCiAgICAgICAgICAgIFdDTlMsICAgNDA5NgogICAgICAgIH0KCiAg
ICAgICAgRGV2aWNlIChBT0QpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBF
aXNhSWQgKCJQTlAwQzE0IikgLyogV2luZG93cyBNYW5hZ2VtZW50IEluc3RydW1lbnRhdGlv
biBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChf
VUlELCAiQU9EIikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBNZXRob2QgKEFN
MDEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFP
RFYgPSBBUVZTIC8qIFxBUVZTICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFxBT0RWKQog
ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEFNMDIsIDAsIE5vdFNlcmlhbGl6
ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoR0YwMSA9PSAweDAwKSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHRjAxID0gMHgwMQogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChBTTAzLCAwLCBOb3RTZXJpYWxpemVkKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxPQklEKSAvKiBFeHRlcm5hbCBy
ZWZlcmVuY2UgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChBTTA0LCAx
LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChM
T0RULCBCdWZmZXIgKDB4MDE5QykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIC4KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChURU1QLCBC
dWZmZXIgKDB4MDIwMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
MHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4K
ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAg
ICAgICAgICAgICBMb2NhbDEgPSBEZXJlZk9mIChcT0JJVCBbMHgwMF0pCiAgICAgICAgICAg
ICAgICBMb2NhbDIgPSAweDAxCiAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMiA8PSBM
b2NhbDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMyA9
IERlcmVmT2YgKERlcmVmT2YgKFxPQklUIFtMb2NhbDJdKSBbMHgwMF0pCiAgICAgICAgICAg
ICAgICAgICAgTG9jYWw0ID0gRGVyZWZPZiAoRGVyZWZPZiAoXE9CSVQgW0xvY2FsMl0pIFsw
eDAxXSkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDMgPT0gTG9jYWwwKSAmJiAo
TG9jYWw0ID09IDB4MDApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIExPRFQgPSBEZXJlZk9mIChEZXJlZk9mIChcT0JJVCBbTG9jYWwyXSkgWzB4
MDNdKQogICAgICAgICAgICAgICAgICAgICAgICBURU1QID0gV0NOUyAvKiBcV0NOUyAqLwog
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUgPSBEZXJlZk9mIChEZXJlZk9mIChcT0JJ
VCBbTG9jYWwyXSkgWzB4MDJdKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUgKj0g
MHgwNAogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChURU1QLCBM
b2NhbDUsIFRFTTEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQg
KExPRFQsIDB4MDQsIENSVVQpCiAgICAgICAgICAgICAgICAgICAgICAgIENSVVQgPSBURU0x
IC8qIFxBT0RfLkFNMDQuVEVNMSAqLwogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwyKysKICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKExPRFQpIC8qIFxBT0Rf
LkFNMDQuTE9EVCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBPcGVyYXRpb25SZWdp
b24gKFBTTUksIFN5c3RlbUlPLCBBU01JLCAweDAyKQogICAgICAgICAgICBGaWVsZCAoUFNN
SSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBBU01PLCAgIDgKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTXV0ZXggKFNNTE8s
IDB4MDApCiAgICAgICAgICAgIE1ldGhvZCAoQU0wNSwgMSwgTm90U2VyaWFsaXplZCkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoTE9EVCwgQnVmZmVyICgweEM4KQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAg
fSkKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzAsIDB4MDAsIERDTUkp
CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmcwLCAweDA0LCBEQ01EKQog
ICAgICAgICAgICAgICAgU0NNSSA9IERDTUkgLyogXEFPRF8uQU0wNS5EQ01JICovCiAgICAg
ICAgICAgICAgICBTQ01EID0gRENNRCAvKiBcQU9EXy5BTTA1LkRDTUQgKi8KICAgICAgICAg
ICAgICAgIEFTTU8gPSBJU01JIC8qIFxJU01JICovCiAgICAgICAgICAgICAgICBMT0RUID0g
T1VUQiAvKiBcT1VUQiAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChMT0RUKSAvKiBcQU9E
Xy5BTTA1LkxPRFQgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChBTTA2
LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1l
IChMT0RULCBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgLyogMDAwMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAq
LyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8v
IC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoVEVN
UCwgQnVmZmVyICgweDAyMDApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTG9jYWwwID0gQXJnMAog
ICAgICAgICAgICAgICAgTG9jYWwxID0gRGVyZWZPZiAoXE9CSVQgWzB4MDBdKQogICAgICAg
ICAgICAgICAgTG9jYWwyID0gMHgwMQogICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDIg
PD0gTG9jYWwxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDMgPSBEZXJlZk9mIChEZXJlZk9mIChcT0JJVCBbTG9jYWwyXSkgWzB4MDBdKQogICAgICAg
ICAgICAgICAgICAgIExvY2FsNCA9IERlcmVmT2YgKERlcmVmT2YgKFxPQklUIFtMb2NhbDJd
KSBbMHgwMV0pCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwzID09IExvY2FsMCkg
JiYgKExvY2FsNCA9PSAweDAxKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMT0RUID0gRGVyZWZPZiAoRGVyZWZPZiAoXE9CSVQgW0xvY2FsMl0p
IFsweDAzXSkKICAgICAgICAgICAgICAgICAgICAgICAgVEVNUCA9IFdDTlMgLyogXFdDTlMg
Ki8KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gRGVyZWZPZiAoRGVyZWZPZiAo
XE9CSVQgW0xvY2FsMl0pIFsweDAyXSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1
ICo9IDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoVEVN
UCwgTG9jYWw1LCBURU0xKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZp
ZWxkIChMT0RULCAweDA0LCBDUlVUKQogICAgICAgICAgICAgICAgICAgICAgICBDUlVUID0g
VEVNMSAvKiBcQU9EXy5BTTA2LlRFTTEgKi8KICAgICAgICAgICAgICAgICAgICAgICAgQnJl
YWsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMisr
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChMT0RUKSAvKiBc
QU9EXy5BTTA2LkxPRFQgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChB
TTA3LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBO
YW1lIChCU1BELCBCdWZmZXIgKDB4MDIxNCkge30pCiAgICAgICAgICAgICAgICBJZiAoKEFy
ZzAgPiAweDBGKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1
cm4gKEJTUEQpIC8qIFxBT0RfLkFNMDcuQlNQRCAqLwogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBCU1BEID0gRFNQRCAvKiBcRFNQRCAqLwogICAgICAgICAgICAg
ICAgICAgIFJldHVybiAoQlNQRCkgLyogXEFPRF8uQU0wNy5CU1BEICovCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAg
TG9jYWwwICs9IChBcmcwICogMHgwMjE0KQogICAgICAgICAgICAgICAgTG9jYWwxID0gMHgw
MjE0CiAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgICAgICBXaGls
ZSAoTG9jYWwxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJTUEQg
W0xvY2FsMl0gPSBEZXJlZk9mIChEU1BEIFtMb2NhbDBdKQogICAgICAgICAgICAgICAgICAg
IExvY2FsMS0tCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDIrKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVy
biAoQlNQRCkgLyogXEFPRF8uQU0wNy5CU1BEICovCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIE1ldGhvZCAoQU0wOCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgUmV0dXJuIChcT0JJRSkgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoQU0wOSwgMCwgTm90U2VyaWFsaXpl
ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoVEVNUCwgQnVmZmVyICgw
eDhDKSB7fSkKICAgICAgICAgICAgICAgIFRFTVAgPSBSTVBEIC8qIFxSTVBEICovCiAgICAg
ICAgICAgICAgICBSZXR1cm4gKFRFTVApIC8qIFxBT0RfLkFNMDkuVEVNUCAqLwogICAgICAg
ICAgICB9CgogICAgICAgICAgICBOYW1lIChfV0RHLCBCdWZmZXIgKDB4MjgpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4NkEsIDB4MEYsIDB4QkMsIDB4
QUIsIDB4QTEsIDB4OEUsIDB4RDEsIDB4MTEsICAvLyBqLi4uLi4uLgogICAgICAgICAgICAg
ICAgLyogMDAwOCAqLyAgMHgwMCwgMHhBMCwgMHhDOSwgMHgwNiwgMHgyOSwgMHgxMCwgMHgw
MCwgMHgwMCwgIC8vIC4uLi4pLi4uCiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDQx
LCAweDQxLCAweDAxLCAweDAyLCAweDIxLCAweDEyLCAweDkwLCAweDA1LCAgLy8gQUEuLiEu
Li4KICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4NjYsIDB4RDUsIDB4RDEsIDB4MTEs
IDB4QjIsIDB4RjAsIDB4MDAsIDB4QTAsICAvLyBmLi4uLi4uLgogICAgICAgICAgICAgICAg
LyogMDAyMCAqLyAgMHhDOSwgMHgwNiwgMHgyOSwgMHgxMCwgMHg0MiwgMHg0MSwgMHgwMSwg
MHgwMCAgIC8vIC4uKS5CQS4uCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAo
V01BQSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
SWYgKChBcmcwID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIElmICgoKChBcmcxICE9IDB4MDEpIHx8IChBcmcxICE9IDB4MDIpKSB8fCAKICAgICAg
ICAgICAgICAgICAgICAgICAgKEFyZzEgIT0gMHgwNikpKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMiwgMHgw
MCwgV0lJRCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm
ICgoQXJnMSA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoQU0wMSAoKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQU0wMiAoKSkKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAw
eDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl
dHVybiAoQU0wMyAoKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgRWxzZUlmICgoQXJnMSA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQU0wNCAoV0lJRCkpCiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwNSkpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFN
MDUgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF
bHNlSWYgKChBcmcxID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuIChBTTA2IChXSUlEKSkKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDA3KSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQU0wNyAo
V0lJRCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJ
ZiAoKEFyZzEgPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKEFNMDggKCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwOSkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFNMDkgKCkpCiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0
dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXUUJBLCBCdWZm
ZXIgKDB4MEM4MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAg
MHg0NiwgMHg0RiwgMHg0RCwgMHg0MiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIEZP
TUIuLi4uCiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDcwLCAweDBDLCAweDAwLCAw
eDAwLCAweDZDLCAweDQ1LCAweDAwLCAweDAwLCAgLy8gcC4uLmxFLi4KICAgICAgICAgICAg
ICAgIC8qIDAwMTAgKi8gIDB4NDQsIDB4NTMsIDB4MDAsIDB4MDEsIDB4MUEsIDB4N0QsIDB4
REEsIDB4NTQsICAvLyBEUy4uLn0uVAogICAgICAgICAgICAgICAgLyogMDAxOCAqLyAgMHgx
OCwgMHhENCwgMHhBMSwgMHgwMCwgMHgwMSwgMHgwNiwgMHgxOCwgMHg0MiwgIC8vIC4uLi4u
Li5CCiAgICAgICAgICAgICAgICAvKiAwMDIwICovICAweDEwLCAweDExLCAweDEwLCAweDIy
LCAweDIxLCAweDMwLCAweDM0LCAweDMyLCAgLy8gLi4uIiEwNDIKICAgICAgICAgICAgICAg
IC8qIDAwMjggKi8gIDB4MEIsIDB4MDMsIDB4NjMsIDB4MDQsIDB4OEEsIDB4MEIsIDB4MjEs
IDB4MDcsICAvLyAuLmMuLi4hLgogICAgICAgICAgICAgICAgLyogMDAzMCAqLyAgMHgxMCwg
MHgxMiwgMHgwNywgMHg4NSwgMHgxMiwgMHgwMiwgMHhBMSwgMHhGRSwgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgICAgICAvKiAwMDM4ICovICAweDA0LCAweEYyLCAweDJCLCAweDAwLCAw
eEUxLCAweDE2LCAweENBLCAweDE0LCAgLy8gLi4rLi4uLi4KICAgICAgICAgICAgICAgIC8q
IDAwNDAgKi8gIDB4NjAsIDB4NTAsIDB4ODAsIDB4NTMsIDB4MDQsIDB4MTEsIDB4RjQsIDB4
MkEsICAvLyBgUC5TLi4uKgogICAgICAgICAgICAgICAgLyogMDA0OCAqLyAgMHhDMCwgMHhB
NiwgMHgwMCwgMHg5MywgMHgwMiwgMHgyQywgMHgwQSwgMHhEMCwgIC8vIC4uLi4uLC4uCiAg
ICAgICAgICAgICAgICAvKiAwMDUwICovICAweDJFLCAweEMwLCAweEIyLCAweDAwLCAweERE
LCAweDAyLCAweEE0LCAweEMzLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAw
NTggKi8gIDB4MTIsIDB4OTEsIDB4RTAsIDB4MjgsIDB4MzEsIDB4RTAsIDB4MjgsIDB4OUQs
ICAvLyAuLi4oMS4oLgogICAgICAgICAgICAgICAgLyogMDA2MCAqLyAgMHhEOCwgMHhDMiwg
MHgwRCwgMHgxQiwgMHhCQywgMHg1MCwgMHgxNCwgMHhDRCwgIC8vIC4uLi4uUC4uCiAgICAg
ICAgICAgICAgICAvKiAwMDY4ICovICAweDIwLCAweDRBLCAweDgyLCAweENBLCAweDA1LCAw
eEY4LCAweDQ2LCAweDEwLCAgLy8gIEouLi4uRi4KICAgICAgICAgICAgICAgIC8qIDAwNzAg
Ki8gIDB4NzgsIDB4QjksIDB4MDIsIDB4MjQsIDB4NEYsIDB4NDAsIDB4OUEsIDB4MDUsICAv
LyB4Li4kT0AuLgogICAgICAgICAgICAgICAgLyogMDA3OCAqLyAgMHgxOCwgMHgxNiwgMHg2
MCwgMHg1RCwgMHg4MCwgMHhFQywgMHgyMSwgMHg1MCwgIC8vIC4uYF0uLiFQCiAgICAgICAg
ICAgICAgICAvKiAwMDgwICovICAweEE5LCAweDQzLCAweDQwLCAweEM5LCAweDE5LCAweDAy
LCAweDZBLCAweDAwLCAgLy8gLkNALi4uai4KICAgICAgICAgICAgICAgIC8qIDAwODggKi8g
IDB4QUQsIDB4NEUsIDB4NDAsIDB4RjgsIDB4OTUsIDB4NEUsIDB4MDksIDB4NDksICAvLyAu
TkAuLk4uSQogICAgICAgICAgICAgICAgLyogMDA5MCAqLyAgMHgxMCwgMHhDRSwgMHg1OCwg
MHhDNSwgMHhFMywgMHg2QiwgMHgxNiwgMHg0RCwgIC8vIC4uWC4uay5NCiAgICAgICAgICAg
ICAgICAvKiAwMDk4ICovICAweENGLCAweDQ5LCAweENFLCAweDMxLCAweEU0LCAweDc4LCAw
eDVDLCAweEU4LCAgLy8gLkkuMS54XC4KICAgICAgICAgICAgICAgIC8qIDAwQTAgKi8gIDB4
NDEsIDB4RjAsIDB4NTAsIDB4MUEsIDB4NDAsIDB4OTgsIDB4RkMsIDB4MjEsICAvLyBBLlAu
QC4uIQogICAgICAgICAgICAgICAgLyogMDBBOCAqLyAgMHgyQiwgMHgwNiwgMHgwQywgMHg0
QSwgMHhDMiwgMHg1OCwgMHhBOCwgMHg4QiwgIC8vICsuLkouWC4uCiAgICAgICAgICAgICAg
ICAvKiAwMEIwICovICAweDUxLCAweEEzLCAweDQ2LCAweENBLCAweDA2LCAweDY0LCAweDg4
LCAweEQyLCAgLy8gUS5GLi5kLi4KICAgICAgICAgICAgICAgIC8qIDAwQjggKi8gIDB4NDYs
IDB4OEQsIDB4MUUsIDB4RDAsIDB4RjksIDB4MUQsIDB4QzksIDB4RDksICAvLyBGLi4uLi4u
LgogICAgICAgICAgICAgICAgLyogMDBDMCAqLyAgMHgxRCwgMHhERCwgMHg5MSwgMHgyNCwg
MHgzMCwgMHhFQSwgMHgzMSwgMHgxRCwgIC8vIC4uLiQwLjEuCiAgICAgICAgICAgICAgICAv
KiAwMEM4ICovICAweDYzLCAweDYxLCAweDMzLCAweDEyLCAweDZBLCAweDhDLCAweEU2LCAw
eEEwLCAgLy8gY2EzLmouLi4KICAgICAgICAgICAgICAgIC8qIDAwRDAgKi8gIDB4NDgsIDB4
QjgsIDB4NDEsIDB4QTMsIDB4MjUsIDB4QzIsIDB4NkEsIDB4NUMsICAvLyBILkEuJS5qXAog
ICAgICAgICAgICAgICAgLyogMDBEOCAqLyAgMHhCMSwgMHhDRiwgMHhDQywgMHhDMiwgMHg4
NywgMHgyNSwgMHg4QywgMHgyMywgIC8vIC4uLi4uJS4jCiAgICAgICAgICAgICAgICAvKiAw
MEUwICovICAweDM4LCAweEIwLCAweDgzLCAweEI1LCAweDY4LCAweDE4LCAweEExLCAweDE1
LCAgLy8gOC4uLmguLi4KICAgICAgICAgICAgICAgIC8qIDAwRTggKi8gIDB4MDQsIDB4QTcs
IDB4NDEsIDB4MUMsIDB4NDUsIDB4OTQsIDB4MzAsIDB4MEMsICAvLyAuLkEuRS4wLgogICAg
ICAgICAgICAgICAgLyogMDBGMCAqLyAgMHhDRiwgMHg5OCwgMHg4MSwgMHg4RSwgMHg5Miwg
MHgyMSwgMHg4NSwgMHgwOSwgIC8vIC4uLi4uIS4uCiAgICAgICAgICAgICAgICAvKiAwMEY4
ICovICAweDdBLCAweDAyLCAweDQxLCAweDRFLCAweDlFLCAweDYxLCAweDE5LCAweEUyLCAg
Ly8gei5BTi5hLi4KICAgICAgICAgICAgICAgIC8qIDAxMDAgKi8gIDB4MEMsIDB4MzgsIDB4
NTYsIDB4OEMsIDB4NTAsIDB4MjEsIDB4MzEsIDB4MDMsICAvLyAuOFYuUCExLgogICAgICAg
ICAgICAgICAgLyogMDEwOCAqLyAgMHgwOSwgMHhGRSwgMHhGRiwgMHgzRiwgMHg4MSwgMHhB
RSwgMHgzMSwgMHhFNCwgIC8vIC4uLj8uLjEuCiAgICAgICAgICAgICAgICAvKiAwMTEwICov
ICAweDE5LCAweDg4LCAweERDLCAweDAzLCAweDRFLCAweDIwLCAweDQ4LCAweEY0LCAgLy8g
Li4uLk4gSC4KICAgICAgICAgICAgICAgIC8qIDAxMTggKi8gIDB4MjgsIDB4QzEsIDB4OEQs
IDB4NkIsIDB4NTQsIDB4MzYsIDB4QTYsIDB4QjMsICAvLyAoLi5rVDYuLgogICAgICAgICAg
ICAgICAgLyogMDEyMCAqLyAgMHhDMSwgMHgwRCwgMHhDQywgMHgwNCwgMHg3MSwgMHgwRSwg
MHgwRiwgMHgyMywgIC8vIC4uLi5xLi4jCiAgICAgICAgICAgICAgICAvKiAwMTI4ICovICAw
eDAzLCAweDQyLCAweDEzLCAweDg4LCAweDFGLCAweDNCLCAweDdDLCAweDAyLCAgLy8gLkIu
Li47fC4KICAgICAgICAgICAgICAgIC8qIDAxMzAgKi8gIDB4QkIsIDB4M0YsIDB4MEUsIDB4
NDgsIDB4MjEsIDB4ODIsIDB4MkUsIDB4MDQsICAvLyAuPy5IIS4uLgogICAgICAgICAgICAg
ICAgLyogMDEzOCAqLyAgMHg2NywgMHg1QSwgMHhBMywgMHgwMCwgMHg2QiwgMHg2NywgMHgw
NywgMHhEOSwgIC8vIGdaLi5rZy4uCiAgICAgICAgICAgICAgICAvKiAwMTQwICovICAweDgy
LCAweEQwLCAweDU5LCAweDIwLCAweDU2LCAweDYzLCAweDI4LCAweDgyLCAgLy8gLi5ZIFZj
KC4KICAgICAgICAgICAgICAgIC8qIDAxNDggKi8gIDB4ODgsIDB4MTAsIDB4MzQsIDB4OEEs
IDB4RjEsIDB4MjIsIDB4ODQsIDB4MEEsICAvLyAuLjQuLiIuLgogICAgICAgICAgICAgICAg
LyogMDE1MCAqLyAgMHgxMSwgMHgyNSwgMHhFQSwgMHgzOSwgMHgwNywgMHhBOSwgMHg0RCwg
MHg4MCwgIC8vIC4lLjkuLk0uCiAgICAgICAgICAgICAgICAvKiAwMTU4ICovICAweDMyLCAw
eDEwLCAweEExLCAweDA1LCAweDMzLCAweDAyLCAweEIzLCAweDdGLCAgLy8gMi4uLjMuLi4K
ICAgICAgICAgICAgICAgIC8qIDAxNjAgKi8gIDB4MDYsIDB4NjAsIDB4MTYsIDB4MjAsIDB4
RkUsIDB4MDgsIDB4MkMsIDB4RTEsICAvLyAuYC4gLi4sLgogICAgICAgICAgICAgICAgLyog
MDE2OCAqLyAgMHg0NCwgMHgyMCwgMHgyMywgMHhBMywgMHhBMSwgMHg4NywgMHgwNSwgMHg5
RiwgIC8vIEQgIy4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMTcwICovICAweDA0LCAweEQ4
LCAweDAxLCAweEMxLCAweEYzLCAweDM5LCAweDM1LCAweDEzLCAgLy8gLi4uLi45NS4KICAg
ICAgICAgICAgICAgIC8qIDAxNzggKi8gIDB4MzgsIDB4MzAsIDB4ODQsIDB4NzgsIDB4MjUs
IDB4NDAsIDB4RDQsIDB4RDEsICAvLyA4MC54JUAuLgogICAgICAgICAgICAgICAgLyogMDE4
MCAqLyAgMHg4MiwgMHgxMiwgMHg1OCwgMHhDQSwgMHhEMSwgMHg4MCwgMHhEOCwgMHgxRSwg
IC8vIC4uWC4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMTg4ICovICAweDk4LCAweEVFLCAw
eDAxLCAweDQ3LCAweDc4LCAweEVFLCAweEJFLCAweDFDLCAgLy8gLi4uR3guLi4KICAgICAg
ICAgICAgICAgIC8qIDAxOTAgKi8gIDB4OUMsIDB4OUEsIDB4N0YsIDB4MUEsIDB4OUUsIDB4
RTYsIDB4NDMsIDB4MDIsICAvLyAuLi4uLi5DLgogICAgICAgICAgICAgICAgLyogMDE5OCAq
LyAgMHg2NiwgMHg4OCwgMHgxRSwgMHhFQiwgMHg0MSwgMHgwNCwgMHgzQywgMHg0NCwgIC8v
IGYuLi5BLjxECiAgICAgICAgICAgICAgICAvKiAwMUEwICovICAweDc2LCAweDRBLCAweDMw
LCAweDIwLCAweERFLCAweEZCLCAweEI1LCAweDgwLCAgLy8gdkowIC4uLi4KICAgICAgICAg
ICAgICAgIC8qIDAxQTggKi8gIDB4OEMsIDB4RTAsIDB4MjUsIDB4QzEsIDB4ODAsIDB4OUUs
IDB4QzQsIDB4MDMsICAvLyAuLiUuLi4uLgogICAgICAgICAgICAgICAgLyogMDFCMCAqLyAg
MHgwMiwgMHg1OCwgMHgwRSwgMHgxQSwgMHgwNywgMHg3RSwgMHg0MiwgMHgxNSwgIC8vIC5Y
Li4ufkIuCiAgICAgICAgICAgICAgICAvKiAwMUI4ICovICAweERGLCAweDAxLCAweEU4LCAw
eDkxLCAweDgwLCAweENELCAweDI4LCAweEJFLCAgLy8gLi4uLi4uKC4KICAgICAgICAgICAg
ICAgIC8qIDAxQzAgKi8gIDB4MDksIDB4Q0EsIDB4M0EsIDB4M0UsIDB4QTAsIDB4RTcsIDB4
MUMsIDB4RUQsICAvLyAuLjo+Li4uLgogICAgICAgICAgICAgICAgLyogMDFDOCAqLyAgMHhE
OSwgMHhFMSwgMHg2NSwgMHhBMSwgMHhEOSwgMHgyQiwgMHgwNiwgMHgyMSwgIC8vIC4uZS4u
Ky4hCiAgICAgICAgICAgICAgICAvKiAwMUQwICovICAweDc4LCAweDBELCAweEYwLCAweDRE
LCAweEMxLCAweEE3LCAweDExLCAweDhCLCAgLy8geC4uTS4uLi4KICAgICAgICAgICAgICAg
IC8qIDAxRDggKi8gIDB4NUEsIDB4OUQsIDB4OUMsIDB4QUMsIDB4Q0EsIDB4MjMsIDB4QTYs
IDB4RTAsICAvLyBaLi4uLiMuLgogICAgICAgICAgICAgICAgLyogMDFFMCAqLyAgMHgxRSwg
MHgwMiwgMHg5NywgMHgwMSwgMHhBNywgMHhBMSwgMHg3QiwgMHhCQywgIC8vIC4uLi4uLnsu
CiAgICAgICAgICAgICAgICAvKiAwMUU4ICovICAweEUwLCAweDUwLCAweDMwLCAweDVFLCAw
eEZBLCAweEZGLCAweDFGLCAweDJGLCAgLy8gLlAwXi4uLi8KICAgICAgICAgICAgICAgIC8q
IDAxRjAgKi8gIDB4QjgsIDB4RTcsIDB4NzUsIDB4QkMsIDB4NjAsIDB4MzksIDB4MjYsIDB4
M0MsICAvLyAuLnUuYDkmPAogICAgICAgICAgICAgICAgLyogMDFGOCAqLyAgMHg2QywgMHg1
NCwgMHgwNSwgMHhBMSwgMHg0MSwgMHgxQywgMHg3MCwgMHhGMywgIC8vIGxULi5BLnAuCiAg
ICAgICAgICAgICAgICAvKiAwMjAwICovICAweDAzLCAweDIwLCAweDU3LCAweDBCLCAweDhG
LCAweDk4LCAweENELCAweEU1LCAgLy8gLiBXLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAy
MDggKi8gIDB4QUMsIDB4RDgsIDB4MTEsIDB4ODUsIDB4MEYsIDB4OEYsIDB4MEYsIDB4QzMs
ICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDIxMCAqLyAgMHgyMywgMHg3RSwg
MHg2RiwgMHgyOCwgMHgxNiwgMHg0NCwgMHgwMiwgMHgyMSwgIC8vICN+byguRC4hCiAgICAg
ICAgICAgICAgICAvKiAwMjE4ICovICAweDc0LCAweDY2LCAweDM4LCAweDcyLCAweEIwLCAw
eDM4LCAweDNCLCAweDQxLCAgLy8gdGY4ci44O0EKICAgICAgICAgICAgICAgIC8qIDAyMjAg
Ki8gIDB4ODgsIDB4QzAsIDB4RDIsIDB4ODYsIDB4OEUsIDB4MUUsIDB4QjIsIDB4NDcsICAv
LyAuLi4uLi4uRwogICAgICAgICAgICAgICAgLyogMDIyOCAqLyAgMHhGNSwgMHgxMiwgMHg2
MywgMHg4QywgMHgyNywgMHgwMiwgMHhBMywgMHg5RSwgIC8vIC4uYy4nLi4uCiAgICAgICAg
ICAgICAgICAvKiAwMjMwICovICAweEQyLCAweEQxLCAweDgzLCAweDBGLCAweEQwLCAweEEz
LCAweDA3LCAweDdDLCAgLy8gLi4uLi4uLnwKICAgICAgICAgICAgICAgIC8qIDAyMzggKi8g
IDB4RkUsIDB4RkYsIDB4NDcsIDB4OEYsIDB4OTMsIDB4MzQsIDB4NjYsIDB4ODksICAvLyAu
LkcuLjRmLgogICAgICAgICAgICAgICAgLyogMDI0MCAqLyAgMHgxOCwgMHgzRCwgMHhGQSwg
MHgxQywgMHhFMSwgMHhFOSwgMHhCQywgMHhGRCwgIC8vIC49Li4uLi4uCiAgICAgICAgICAg
ICAgICAvKiAwMjQ4ICovICAweEYwLCAweEEzLCAweDQ4LCAweDAyLCAweEM3LCAweDg3LCAw
eEQwLCAweEU4LCAgLy8gLi5ILi4uLi4KICAgICAgICAgICAgICAgIC8qIDAyNTAgKi8gIDB4
QzEsIDB4NzMsIDB4RkEsIDB4RjEsIDB4RTgsIDB4QzEsIDB4M0YsIDB4NDYsICAvLyAucy4u
Li4/RgogICAgICAgICAgICAgICAgLyogMDI1OCAqLyAgMHg4RiwgMHgxRSwgMHgzQywgMHg2
MywgMHgzOCwgMHgzNywgMHhEQywgMHhENSwgIC8vIC4uPGM4Ny4uCiAgICAgICAgICAgICAg
ICAvKiAwMjYwICovICAweEM2LCAweDIzLCAweDA3LCAweEZCLCAweDc4LCAweEYxLCAweEYy
LCAweDhFLCAgLy8gLiMuLnguLi4KICAgICAgICAgICAgICAgIC8qIDAyNjggKi8gIDB4NUIs
IDB4QTAsIDB4RjAsIDB4MzksIDB4N0IsIDB4MzIsIDB4ODAsIDB4RjcsICAvLyBbLi45ezIu
LgogICAgICAgICAgICAgICAgLyogMDI3MCAqLyAgMHgyMCwgMHhEQywgMHg3OSwgMHgwQiwg
MHhCOCwgMHg4QywgMHg4MCwgMHhDQiwgIC8vICAueS4uLi4uCiAgICAgICAgICAgICAgICAv
KiAwMjc4ICovICAweDNELCAweDU3LCAweEExLCAweDA0LCAweDFFLCAweEFELCAweDQwLCAw
eEZCLCAgLy8gPVcuLi4uQC4KICAgICAgICAgICAgICAgIC8qIDAyODAgKi8gIDB4RkYsIDB4
M0YsIDB4NUEsIDB4MDEsIDB4NEMsIDB4QjgsIDB4M0YsIDB4QkMsICAvLyAuP1ouTC4/Lgog
ICAgICAgICAgICAgICAgLyogMDI4OCAqLyAgMHg1QSwgMHgzRCwgMHg1QSwgMHg4MSwgMHgz
RCwgMHhFMiwgMHg3MywgMHg0MCwgIC8vIFo9Wi49LnNACiAgICAgICAgICAgICAgICAvKiAw
MjkwICovICAweDNGLCAweDAyLCAweEM3LCAweDg2LCAweDkwLCAweDkzLCAweEEzLCAweDE1
LCAgLy8gPy4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAyOTggKi8gIDB4RUEsIDB4NjQs
IDB4ODQsIDB4MEIsIDB4N0EsIDB4QjAsIDB4MDIsIDB4QkEsICAvLyAuZC4uei4uLgogICAg
ICAgICAgICAgICAgLyogMDJBMCAqLyAgMHgwNywgMHgwRCwgMHhEQywgMHhGMSwgMHgwMCwg
MHhDRSwgMHhGRiwgMHhGRiwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMkE4
ICovICAweDc4LCAweEMwLCAweDA3LCAweEM2LCAweDRGLCAweDJGLCAweEUwLCAweDNCLCAg
Ly8geC4uLk8vLjsKICAgICAgICAgICAgICAgIC8qIDAyQjAgKi8gIDB4QjMsIDB4NzgsIDB4
QUMsIDB4MzgsIDB4NjgsIDB4ODYsIDB4NzksIDB4MjAsICAvLyAueC44aC55IAogICAgICAg
ICAgICAgICAgLyogMDJCOCAqLyAgMHhBNywgMHhFNiwgMHg2QiwgMHgyMCwgMHgwQiwgMHgz
QiwgMHg1QSwgMHg1MCwgIC8vIC4uayAuO1pQCiAgICAgICAgICAgICAgICAvKiAwMkMwICov
ICAweDFELCAweEFCLCAweDgwLCAweEMzLCAweEI5LCAweDEyLCAweDM3LCAweDVBLCAgLy8g
Li4uLi4uN1oKICAgICAgICAgICAgICAgIC8qIDAyQzggKi8gIDB4QjgsIDB4NDMsIDB4QzMs
IDB4OEYsIDB4MTcsIDB4N0MsIDB4MjIsIDB4NEUsICAvLyAuQy4uLnwiTgogICAgICAgICAg
ICAgICAgLyogMDJEMCAqLyAgMHg1MiwgMHgzRSwgMHhENCwgMHg0MSwgMHgzRiwgMHg4MCwg
MHg3QSwgMHhCQywgIC8vIFI+LkE/LnouCiAgICAgICAgICAgICAgICAvKiAwMkQ4ICovICAw
eEUwLCAweDM5LCAweDQ4LCAweDAxLCAweDg3LCAweDQzLCAweDFELCAweEY4LCAgLy8gLjlI
Li5DLi4KICAgICAgICAgICAgICAgIC8qIDAyRTAgKi8gIDB4RkUsIDB4RkYsIDB4ODcsIDB4
M0EsIDB4MzgsIDB4NDMsIDB4MDYsIDB4OUYsICAvLyAuLi46OEMuLgogICAgICAgICAgICAg
ICAgLyogMDJFOCAqLyAgMHhCQywgMHhCMywgMHgxOCwgMHhGQSwgMHgzQywgMHhFMywgMHgy
OSwgMHhENCwgIC8vIC4uLi48LikuCiAgICAgICAgICAgICAgICAvKiAwMkYwICovICAweDdB
LCAweDg5LCAweDIxLCAweEIwLCAweDA3LCAweEU0LCAweDkzLCAweDQ4LCAgLy8gei4hLi4u
LkgKICAgICAgICAgICAgICAgIC8qIDAyRjggKi8gIDB4OTAsIDB4MTMsIDB4ODksIDB4NzAs
IDB4MkUsIDB4M0UsIDB4OEQsIDB4ODEsICAvLyAuLi5wLj4uLgogICAgICAgICAgICAgICAg
LyogMDMwMCAqLyAgMHhFRCwgMHgwMCwgMHgwNSwgMHgxQywgMHg0RSwgMHg2MywgMHhFMCwg
MHhCOSwgIC8vIC4uLi5OYy4uCiAgICAgICAgICAgICAgICAvKiAwMzA4ICovICAweEE0LCAw
eEIwLCAweERCLCAweDE4LCAweDE4LCAweDBFLCAweDUxLCAweEYwLCAgLy8gLi4uLi4uUS4K
ICAgICAgICAgICAgICAgIC8qIDAzMTAgKi8gIDB4MjYsIDB4RTUsIDB4RjEsIDB4ODMsIDB4
RUYsIDB4RDQsIDB4ODQsIDB4M0IsICAvLyAmLi4uLi4uOwogICAgICAgICAgICAgICAgLyog
MDMxOCAqLyAgMHg0NCwgMHhDMSwgMHhGMywgMHgzOCwgMHgyNCwgMHgyMSwgMHg5RiwgMHhD
NywgIC8vIEQuLjgkIS4uCiAgICAgICAgICAgICAgICAvKiAwMzIwICovICAweDRCLCAweDAw
LCAweEVFLCAweDFFLCAweDg1LCAweDNGLCAweDQ3LCAweDgxLCAgLy8gSy4uLi4/Ry4KICAg
ICAgICAgICAgICAgIC8qIDAzMjggKi8gIDB4RjcsIDB4RkYsIDB4N0YsIDB4OEUsIDB4ODIs
IDB4MjcsIDB4NkIsIDB4QTEsICAvLyAuLi4uLidrLgogICAgICAgICAgICAgICAgLyogMDMz
MCAqLyAgMHhGNCwgMHgxMCwgMHg2NSwgMHgyMSwgMHgzMCwgMHhBOCwgMHg3MywgMHgxNCwg
IC8vIC4uZSEwLnMuCiAgICAgICAgICAgICAgICAvKiAwMzM4ICovICAweEMwLCAweDE0LCAw
eDZGLCAweEI3LCAweDBELCAweERELCAweEEyLCAweDdDLCAgLy8gLi5vLi4uLnwKICAgICAg
ICAgICAgICAgIC8qIDAzNDAgKi8gIDB4MUIsIDB4NzgsIDB4MUEsIDB4NzgsIDB4OEQsIDB4
ODgsIDB4RjIsIDB4MUMsICAvLyAueC54Li4uLgogICAgICAgICAgICAgICAgLyogMDM0OCAq
LyAgMHhFNSwgMHg4QiwgMHhENCwgMHgwQiwgMHg0MSwgMHg4NCwgMHgyOCwgMHhDNywgIC8v
IC4uLi5BLiguCiAgICAgICAgICAgICAgICAvKiAwMzUwICovICAweDdCLCAweDAyLCAweDEx
LCAweDFFLCAweEE2LCAweDNDLCAweEUxLCAweDMwLCAgLy8gey4uLi48LjAKICAgICAgICAg
ICAgICAgIC8qIDAzNTggKi8gIDB4RTEsIDB4NEUsIDB4MzYsIDB4Q0EsIDB4NEIsIDB4NDMs
IDB4MTgsIDB4NDMsICAvLyAuTjYuS0MuQwogICAgICAgICAgICAgICAgLyogMDM2MCAqLyAg
MHhDNywgMHgwQSwgMHgxNCwgMHgzOSwgMHg3RSwgMHgwOCwgMHg1RiwgMHgyQSwgIC8vIC4u
Ljl+Ll8qCiAgICAgICAgICAgICAgICAvKiAwMzY4ICovICAweDdDLCAweDhFLCAweDYyLCAw
eDUxLCAweENFLCAweDAzLCAweEZBLCAweDExLCAgLy8gfC5iUS4uLi4KICAgICAgICAgICAg
ICAgIC8qIDAzNzAgKi8gIDB4RjgsIDB4RkMsIDB4NjEsIDB4MjMsIDB4NjcsIDB4MTEsIDB4
RDQsIDB4NDksICAvLyAuLmEjZy4uSQogICAgICAgICAgICAgICAgLyogMDM3OCAqLyAgMHhD
MCwgMHg4NywgMHgwRSwgMHgwRiwgMHhFQSwgMHgwOSwgMHgwMSwgMHgxMywgIC8vIC4uLi4u
Li4uCiAgICAgICAgICAgICAgICAvKiAwMzgwICovICAweEZBLCAweDYwLCAweDA4LCAweEFB
LCAweEZGLCAweEZGLCAweDQ5LCAweDBBLCAgLy8gLmAuLi4uSS4KICAgICAgICAgICAgICAg
IC8qIDAzODggKi8gIDB4MzgsIDB4MUYsIDB4NDAsIDB4RTAsIDB4ODUsIDB4M0MsIDB4RjMs
IDB4ODIsICAvLyA4LkAuLjwuLgogICAgICAgICAgICAgICAgLyogMDM5MCAqLyAgMHhFRSwg
MHg0NCwgMHgwRiwgMHg4RSwgMHgzMywgMHg2MSwgMHhFNCwgMHhCOCwgIC8vIC5ELi4zYS4u
CiAgICAgICAgICAgICAgICAvKiAwMzk4ICovICAweDBGLCAweDM0LCAweEQ4LCAweEIzLCAw
eDA3LCAweEYwLCAweDkxLCAweDc2LCAgLy8gLjQuLi4uLnYKICAgICAgICAgICAgICAgIC8q
IDAzQTAgKi8gIDB4RjAsIDB4NDAsIDB4ODksIDB4MzksIDB4N0IsIDB4MDAsIDB4QkEsIDB4
RkUsICAvLyAuQC45ey4uLgogICAgICAgICAgICAgICAgLyogMDNBOCAqLyAgMHhGRiwgMHg2
NywgMHgwRiwgMHhDMCwgMHhDMiwgMHg2NSwgMHhFMywgMHhERCwgIC8vIC5nLi4uZS4uCiAg
ICAgICAgICAgICAgICAvKiAwM0IwICovICAweEMzLCAweDk3LCAweDlFLCAweDMzLCAweDdE
LCAweEY2LCAweEYwLCAweDVDLCAgLy8gLi4uM30uLlwKICAgICAgICAgICAgICAgIC8qIDAz
QjggKi8gIDB4REYsIDB4MzksIDB4N0MsIDB4MkEsIDB4MzQsIDB4OEEsIDB4MjEsIDB4REUs
ICAvLyAuOXwqNC4hLgogICAgICAgICAgICAgICAgLyogMDNDMCAqLyAgMHgzRiwgMHg3Qywg
MHgyOCwgMHg4OCwgMHgxMiwgMHhGMSwgMHg1QywgMHhBMywgIC8vID98KC4uLlwuCiAgICAg
ICAgICAgICAgICAvKiAwM0M4ICovICAweDFDLCAweDcyLCAweDk0LCAweEI4LCAweDExLCAw
eEMyLCAweDNDLCAweDFFLCAgLy8gLnIuLi4uPC4KICAgICAgICAgICAgICAgIC8qIDAzRDAg
Ki8gIDB4MUEsIDB4MjcsIDB4NDYsIDB4QTgsIDB4MDgsIDB4MEMsIDB4RjQsIDB4RDksICAv
LyAuJ0YuLi4uLgogICAgICAgICAgICAgICAgLyogMDNEOCAqLyAgMHg4MywgMHhDNSwgMHgz
OSwgMHg3QiwgMHg0MCwgMHhDNSwgMHgzRSwgMHg5QiwgIC8vIC4uOXtALj4uCiAgICAgICAg
ICAgICAgICAvKiAwM0UwICovICAweDM3LCAweDhFLCAweDA4LCAweEFGLCAweDAxLCAweEU3
LCAweDc4LCAweDNFLCAgLy8gNy4uLi4ueD4KICAgICAgICAgICAgICAgIC8qIDAzRTggKi8g
IDB4M0UsIDB4N0IsIDB4MDAsIDB4REUsIDB4QTQsIDB4M0MsIDB4RkQsIDB4NzQsICAvLyA+
ey4uLjwudAogICAgICAgICAgICAgICAgLyogMDNGMCAqLyAgMHhGNiwgMHgwMCwgMHhENywg
MHgwOSwgMHgxOCwgMHg3NywgMHhGNiwgMHhDMCwgIC8vIC4uLi4udy4uCiAgICAgICAgICAg
ICAgICAvKiAwM0Y4ICovICAweEZELCAweEZGLCAweENGLCAweDFFLCAweEI4LCAweDcxLCAw
eDYzLCAweDRGLCAgLy8gLi4uLi5xY08KICAgICAgICAgICAgICAgIC8qIDA0MDAgKi8gIDB4
MUYsIDB4QzAsIDB4NEUsIDB4ODQsIDB4ODcsIDB4QTMsIDB4MDcsIDB4MjYsICAvLyAuLk4u
Li4uJgogICAgICAgICAgICAgICAgLyogMDQwOCAqLyAgMHhGNiwgMHhGOSwgMHgxNiwgMHhB
MCwgMHhEMCwgMHhFMSwgMHhFMywgMHhGOSwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAg
ICAvKiAwNDEwICovICAweDE2LCAweEFDLCAweEZGLCAweEZGLCAweDgzLCAweDE0LCAweDE3
LCAweEZFLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA0MTggKi8gIDB4QjIs
IDB4RDQsIDB4QTcsIDB4QzAsIDB4QzEsIDB4MEYsIDB4QTksIDB4RTgsICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAgICAgLyogMDQyMCAqLyAgMHhFMSwgMHhGOCwgMHgzOCwgMHg4Nywg
MHgzOSwgMHhFMCwgMHgwMiwgMHg2QywgIC8vIC4uOC45Li5sCiAgICAgICAgICAgICAgICAv
KiAwNDI4ICovICAweDNFLCAweDVBLCAweEZCLCAweEZGLCAweDdGLCAweEI0LCAweEM2LCAw
eDAzLCAgLy8gPlouLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA0MzAgKi8gIDB4ODcsIDB4
RjQsIDB4NTEsIDB4MDEsIDB4NkMsIDB4QzcsIDB4NUIsIDB4RTAsICAvLyAuLlEubC5bLgog
ICAgICAgICAgICAgICAgLyogMDQzOCAqLyAgMHg3MCwgMHg1NCwgMHgwMCwgMHhDRiwgMHhD
MCwgMHhGOCwgMHg1OCwgMHg4MSwgIC8vIHBULi4uLlguCiAgICAgICAgICAgICAgICAvKiAw
NDQwICovICAweEM1LCAweEM0LCAweDFFLCAweDVELCAweDhFLCAweDE1LCAweDZDLCAweDg3
LCAgLy8gLi4uXS4ubC4KICAgICAgICAgICAgICAgIC8qIDA0NDggKi8gIDB4NUEsIDB4RTAs
IDB4MzAsIDB4NTYsIDB4MzAsIDB4MEQsIDB4OEMsIDB4OEQsICAvLyBaLjBWMC4uLgogICAg
ICAgICAgICAgICAgLyogMDQ1MCAqLyAgMHgxNSwgMHg3QywgMHgxMiwgMHg4RSwgMHhENSwg
MHhFOCwgMHgzMSwgMHhGQSwgIC8vIC58Li4uLjEuCiAgICAgICAgICAgICAgICAvKiAwNDU4
ICovICAweEQ2LCAweDczLCAweDQwLCAweDlFLCAweDQ3LCAweDg0LCAweEIwLCAweEJFLCAg
Ly8gLnNALkcuLi4KICAgICAgICAgICAgICAgIC8qIDA0NjAgKi8gIDB4QzIsIDB4MjQsIDB4
NzAsIDB4NUMsIDB4MDgsIDB4RkQsIDB4RkYsIDB4ODcsICAvLyAuJHBcLi4uLgogICAgICAg
ICAgICAgICAgLyogMDQ2OCAqLyAgMHgwQiwgMHgxRSwgMHg1MCwgMHgwRiwgMHgxNywgMHhG
QywgMHhGMiwgMHg4NiwgIC8vIC4uUC4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNDcwICov
ICAweDBCLCAweDlBLCAweEIxLCAweEMxLCAweDE5LCAweDMxLCAweEY4LCAweDRFLCAgLy8g
Li4uLi4xLk4KICAgICAgICAgICAgICAgIC8qIDA0NzggKi8gIDB4NUUsIDB4M0UsIDB4MDYs
IDB4ODMsIDB4RTUsIDB4MTIsIDB4QzEsIDB4Q0UsICAvLyBePi4uLi4uLgogICAgICAgICAg
ICAgICAgLyogMDQ4MCAqLyAgMHgwMiwgMHg2QywgMHgzQSwgMHhGOCwgMHg5QiwgMHgzMCwg
MHhGRSwgMHhDOCwgIC8vIC5sOi4uMC4uCiAgICAgICAgICAgICAgICAvKiAwNDg4ICovICAw
eDA1LCAweDhDLCAweDAyLCAweDk4LCAweDAwLCAweDYxLCAweDMyLCAweDRGLCAgLy8gLi4u
Li5hMk8KICAgICAgICAgICAgICAgIC8qIDA0OTAgKi8gIDB4MDcsIDB4OTIsIDB4MEMsIDB4
ODMsIDB4M0EsIDB4NzIsIDB4MDEsIDB4QTcsICAvLyAuLi4uOnIuLgogICAgICAgICAgICAg
ICAgLyogMDQ5OCAqLyAgMHgxMCwgMHgwNywgMHgwMiwgMHgyOCwgMHhGRiwgMHhGRiwgMHgy
MywgMHgxNywgIC8vIC4uLiguLiMuCiAgICAgICAgICAgICAgICAvKiAwNEEwICovICAweEYw
LCAweDUzLCAweDNBLCAweDI1LCAweDRELCAweEZBLCAweEZELCAweDFCLCAgLy8gLlM6JU0u
Li4KICAgICAgICAgICAgICAgIC8qIDA0QTggKi8gIDB4NzcsIDB4Q0MsIDB4MDIsIDB4MUIs
IDB4QzIsIDB4NjMsIDB4MTYsIDB4QkYsICAvLyB3Li4uLmMuLgogICAgICAgICAgICAgICAg
LyogMDRCMCAqLyAgMHgzMCwgMHhGQSwgMHg5OCwgMHgwNSwgMHg0NiwgMHgzMSwgMHg0Qiwg
MHhEMSwgIC8vIDAuLi5GMUsuCiAgICAgICAgICAgICAgICAvKiAwNEI4ICovICAweDU4LCAw
eDJDLCAweEU3LCAweENDLCAweEU4LCAweDUzLCAweDA3LCAweEVBLCAgLy8gWCwuLi5TLi4K
ICAgICAgICAgICAgICAgIC8qIDA0QzAgKi8gIDB4NkMsIDB4RTEsIDB4MzMsIDB4QzAsIDB4
MTksIDB4MUUsIDB4RDgsIDB4QjMsICAvLyBsLjMuLi4uLgogICAgICAgICAgICAgICAgLyog
MDRDOCAqLyAgMHhDNiwgMHhGMSwgMHg5RSwgMHg0MiwgMHhFRCwgMHhDMywgMHgyNCwgMHg3
MywgIC8vIC4uLkIuLiRzCiAgICAgICAgICAgICAgICAvKiAwNEQwICovICAweEY1LCAweDc1
LCAweEZELCAweDA5LCAweDgwLCAweDlGLCAweDFCLCAweDdELCAgLy8gLnUuLi4uLn0KICAg
ICAgICAgICAgICAgIC8qIDA0RDggKi8gIDB4RDYsIDB4MDIsIDB4QUUsIDB4MjcsIDB4ODQs
IDB4NjcsIDB4MkQsIDB4RjAsICAvLyAuLi4nLmctLgogICAgICAgICAgICAgICAgLyogMDRF
MCAqLyAgMHhEQywgMHgwNywgMHg3QywgMHgwRCwgMHhFMCwgMHgxMywgMHgzOSwgMHgzRSwg
IC8vIC4ufC4uLjk+CiAgICAgICAgICAgICAgICAvKiAwNEU4ICovICAweDM4LCAweEU3LCAw
eDQ2LCAweEYwLCAweEZDLCAweEZGLCAweENGLCAweDUyLCAgLy8gOC5GLi4uLlIKICAgICAg
ICAgICAgICAgIC8qIDA0RjAgKi8gIDB4OTYsIDB4MzUsIDB4NkUsIDB4QjQsIDB4MjQsIDB4
MTAsIDB4MUQsIDB4MzIsICAvLyAuNW4uJC4uMgogICAgICAgICAgICAgICAgLyogMDRGOCAq
LyAgMHgyMiwgMHg5RSwgMHhFOSwgMHg0MSwgMHhCQywgMHhENiwgMHhGOSwgMHgwNCwgIC8v
ICIuLkEuLi4uCiAgICAgICAgICAgICAgICAvKiAwNTAwICovICAweEZDLCAweDhBLCAweDEw
LCAweEZCLCAweDFELCAweEMzLCAweDM3LCAweDA1LCAgLy8gLi4uLi4uNy4KICAgICAgICAg
ICAgICAgIC8qIDA1MDggKi8gIDB4NEYsIDB4QzQsIDB4RjcsIDB4M0EsIDB4MTMsIDB4OEMs
IDB4N0UsIDB4RUMsICAvLyBPLi46Li5+LgogICAgICAgICAgICAgICAgLyogMDUxMCAqLyAg
MHgwMiwgMHhCQSwgMHhBNywgMHgxNCwgMHhEQywgMHhDMCwgMHhFMSwgMHg4RSwgIC8vIC4u
Li4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNTE4ICovICAweDBGLCAweDc3LCAweEE0LCAw
eEMwLCAweDBGLCAweDExLCAweENFLCAweEQ4LCAgLy8gLncuLi4uLi4KICAgICAgICAgICAg
ICAgIC8qIDA1MjAgKi8gIDB4QzEsIDB4MjUsIDB4RkMsIDB4MTQsIDB4OEIsIDB4M0UsIDB4
NDIsIDB4RjAsICAvLyAuJS4uLj5CLgogICAgICAgICAgICAgICAgLyogMDUyOCAqLyAgMHg2
MSwgMHg2MCwgMHhCMSwgMHgwMywgMHhCRiwgMHgxMywgMHg2MCwgMHhFNCwgIC8vIGFgLi4u
LmAuCiAgICAgICAgICAgICAgICAvKiAwNTMwICovICAweDQxLCAweEVCLCAweDI0LCAweDBC
LCAweDlFLCAweDMzLCAweDE4LCAweDcwLCAgLy8gQS4kLi4zLnAKICAgICAgICAgICAgICAg
IC8qIDA1MzggKi8gIDB4ODgsIDB4MzAsIDB4NzQsIDB4RDAsIDB4REMsIDB4NDQsIDB4Q0Us
IDB4RTIsICAvLyAuMHQuLkQuLgogICAgICAgICAgICAgICAgLyogMDU0MCAqLyAgMHhGRiwg
MHgxRiwgMHgyQywgMHg0RSwgMHhCNCwgMHg5MywgMHgzOCwgMHg5RiwgIC8vIC4uLE4uLjgu
CiAgICAgICAgICAgICAgICAvKiAwNTQ4ICovICAweDQ4LCAweEU3LCAweDE3LCAweDJDLCAw
eDRBLCAweDc1LCAweDMzLCAweDg3LCAgLy8gSC4uLEp1My4KICAgICAgICAgICAgICAgIC8q
IDA1NTAgKi8gIDB4MDAsIDB4NzQsIDB4OTAsIDB4MzgsIDB4OUMsIDB4MzcsIDB4MUYsIDB4
OEYsICAvLyAudC44LjcuLgogICAgICAgICAgICAgICAgLyogMDU1OCAqLyAgMHhDRSwgMHgz
MCwgMHhCRSwgMHg2MSwgMHhCMiwgMHg3QiwgMHgwMCwgMHhCRiwgIC8vIC4wLmEuey4uCiAg
ICAgICAgICAgICAgICAvKiAwNTYwICovICAweEVGLCAweDc4LCAweDJFLCAweDA3LCAweEU2
LCAweEUzLCAweDJELCAweEJDLCAgLy8gLnguLi4uLS4KICAgICAgICAgICAgICAgIC8qIDA1
NjggKi8gIDB4MjMsIDB4ODMsIDB4MEYsIDB4MDMsIDB4RTAsIDB4MTIsIDB4M0QsIDB4N0Us
ICAvLyAjLi4uLi49fgogICAgICAgICAgICAgICAgLyogMDU3MCAqLyAgMHgyOSwgMHgzOSwg
MHgwQywgMHhBMCwgMHgwNiwgMHg2OSwgMHhEOCwgMHhEMywgIC8vICk5Li4uaS4uCiAgICAg
ICAgICAgICAgICAvKiAwNTc4ICovICAweDM5LCAweEZELCAweDAzLCAweDNCLCAweEIyLCAw
eEU2LCAweEUxLCAweDM1LCAgLy8gOS4uOy4uLjUKICAgICAgICAgICAgICAgIC8qIDA1ODAg
Ki8gIDB4QUEsIDB4RDcsIDB4MUQsIDB4OUYsIDB4OEMsIDB4MUUsIDB4MDUsIDB4QzAsICAv
LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDU4OCAqLyAgMHg3NiwgMHg0NCwgMHgw
MywgMHgwRSwgMHgwMSwgMHg4RSwgMHgwMiwgMHg0MCwgIC8vIHZELi4uLi5ACiAgICAgICAg
ICAgICAgICAvKiAwNTkwICovICAweDY4LCAweDlBLCAweDM4LCAweDlDLCAweEUzLCAweEM0
LCAweDFDLCAweDVGLCAgLy8gaC44Li4uLl8KICAgICAgICAgICAgICAgIC8qIDA1OTggKi8g
IDB4N0QsIDB4MEYsIDB4NjIsIDB4RDcsIDB4MTUsIDB4NjMsIDB4QkUsIDB4NTEsICAvLyB9
LmIuLmMuUQogICAgICAgICAgICAgICAgLyogMDVBMCAqLyAgMHg1NSwgMHg3RiwgMHgxMiwg
MHg4MCwgMHg3RSwgMHhGOCwgMHgwMiwgMHhDRiwgIC8vIFUuLi5+Li4uCiAgICAgICAgICAg
ICAgICAvKiAwNUE4ICovICAweEZGLCAweEZGLCAweEYyLCAweEYzLCAweEZBLCAweDkzLCAw
eEMwLCAweDQyLCAgLy8gLi4uLi4uLkIKICAgICAgICAgICAgICAgIC8qIDA1QjAgKi8gIDB4
OEYsIDB4MDIsIDB4NTAsIDB4QTAsIDB4NUYsIDB4QkQsIDB4N0MsIDB4QUIsICAvLyAuLlAu
Xy58LgogICAgICAgICAgICAgICAgLyogMDVCOCAqLyAgMHg3OSwgMHg1NiwgMHg2MCwgMHhC
OCwgMHhBNywgMHg3NCwgMHg1NiwgMHgwOSwgIC8vIHlWYC4udFYuCiAgICAgICAgICAgICAg
ICAvKiAwNUMwICovICAweDJDLCAweEU5LCAweDI4LCAweDAwLCAweEFBLCAweEUzLCAweDFC
LCAweDcwLCAgLy8gLC4oLi4uLnAKICAgICAgICAgICAgICAgIC8qIDA1QzggKi8gIDB4Qjgs
IDB4NDksIDB4M0QsIDB4MEEsIDB4ODAsIDB4N0YsIDB4OEEsIDB4MEMsICAvLyAuST0uLi4u
LgogICAgICAgICAgICAgICAgLyogMDVEMCAqLyAgMHhFNCwgMHgxOCwgMHhCMSwgMHhGNywg
MHgwQiwgMHg3RSwgMHg2QSwgMHhCMywgIC8vIC4uLi4ufmouCiAgICAgICAgICAgICAgICAv
KiAwNUQ4ICovICAweENCLCAweDQzLCAweDAwLCAweEQwLCAweDM5LCAweDRDLCAweDkxLCAw
eDQzLCAgLy8gLkMuLjlMLkMKICAgICAgICAgICAgICAgIC8qIDA1RTAgKi8gIDB4MDAsIDB4
NkEsIDB4OTgsIDB4OUUsIDB4MzYsIDB4M0YsIDB4Q0UsIDB4RjIsICAvLyAuai4uNj8uLgog
ICAgICAgICAgICAgICAgLyogMDVFOCAqLyAgMHgxMywgMHgwMCwgMHg3OCwgMHg0MCwgMHg3
RCwgMHgwMiwgMHgwMCwgMHhGRiwgIC8vIC4ueEB9Li4uCiAgICAgICAgICAgICAgICAvKiAw
NUYwICovICAweEJELCAweEQ3LCAweDI3LCAweDAwLCAweDM4LCAweEZGLCAweEZGLCAweDEz
LCAgLy8gLi4nLjguLi4KICAgICAgICAgICAgICAgIC8qIDA1RjggKi8gIDB4MDAsIDB4RkUs
IDB4OEEsIDB4ODIsIDB4MUYsIDB4MUQsIDB4NkUsIDB4RTAsICAvLyAuLi4uLi5uLgogICAg
ICAgICAgICAgICAgLyogMDYwMCAqLyAgMHhGMCwgMHg4RSwgMHgxQywgMHgzRSwgMHhBNSwg
MHg4MCwgMHhFQiwgMHhDOCwgIC8vIC4uLj4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNjA4
ICovICAweDg4LCAweDNCLCAweDE3LCAweEMyLCAweDFCLCAweDEyLCAweDNCLCAweDEwLCAg
Ly8gLjsuLi4uOy4KICAgICAgICAgICAgICAgIC8qIDA2MTAgKi8gIDB4MDIsIDB4QzMsIDB4
QTAsIDB4N0EsIDB4OEUsIDB4ODQsIDB4RjQsIDB4NzAsICAvLyAuLi56Li4ucAogICAgICAg
ICAgICAgICAgLyogMDYxOCAqLyAgMHgyMCwgMHg1MSwgMHhFQiwgMHhBNCwgMHgzMCwgMHgz
RSwgMHgwRCwgMHhGOCwgIC8vICBRLi4wPi4uCiAgICAgICAgICAgICAgICAvKiAwNjIwICov
ICAweDQwLCAweDA4LCAweEY3LCAweEU0LCAweDY1LCAweDM4LCAweDNFLCAweDQyLCAgLy8g
QC4uLmU4PkIKICAgICAgICAgICAgICAgIC8qIDA2MjggKi8gIDB4MEYsIDB4RkQsIDB4MjEs
IDB4RTIsIDB4QzksIDB4QzcsIDB4RjcsIDB4MDMsICAvLyAuLiEuLi4uLgogICAgICAgICAg
ICAgICAgLyogMDYzMCAqLyAgMHg0RiwgMHhFRSwgMHhDOSwgMHgxMCwgMHhDNiwgMHgzOSwg
MHhDMSwgMHg3NywgIC8vIE8uLi4uOS53CiAgICAgICAgICAgICAgICAvKiAwNjM4ICovICAw
eDE1LCAweDc2LCAweDM3LCAweDdCLCAweEQ2LCAweEYzLCAweEI5LCAweENBLCAgLy8gLnY3
ey4uLi4KICAgICAgICAgICAgICAgIC8qIDA2NDAgKi8gIDB4MDQsIDB4M0UsIDB4MkMsIDB4
MzAsIDB4MzQsIDB4N0UsIDB4NEMsIDB4MDQsICAvLyAuPiwwNH5MLgogICAgICAgICAgICAg
ICAgLyogMDY0OCAqLyAgMHhFQiwgMHg4RCwgMHhDMSwgMHg4NywgMHg2NywgMHhCMCwgMHhE
QywgMHgxMSwgIC8vIC4uLi5nLi4uCiAgICAgICAgICAgICAgICAvKiAwNjUwICovICAweDMx
LCAweDU4LCAweENGLCAweDFELCAweDM2LCAweDJBLCAweEUwLCAweEZGLCAgLy8gMVguLjYq
Li4KICAgICAgICAgICAgICAgIC8qIDA2NTggKi8gIDB4N0YsIDB4NEIsIDB4RjcsIDB4NUQs
IDB4QzYsIDB4QkUsIDB4ODYsIDB4QTEsICAvLyAuSy5dLi4uLgogICAgICAgICAgICAgICAg
LyogMDY2MCAqLyAgMHgzQiwgMHhBNywgMHgwRiwgMHg3MSwgMHhCRSwgMHg3NCwgMHhGMCwg
MHhFMywgIC8vIDsuLnEudC4uCiAgICAgICAgICAgICAgICAvKiAwNjY4ICovICAweDNBLCAw
eEVFLCAweDc0LCAweDA4LCAweDJFLCAweEVDLCAweDY3LCAweDdBLCAgLy8gOi50Li4uZ3oK
ICAgICAgICAgICAgICAgIC8qIDA2NzAgKi8gIDB4QjAsIDB4ODcsIDB4M0EsIDB4NzAsIDB4
RDIsIDB4NDgsIDB4QTMsIDB4NDEsICAvLyAuLjpwLkguQQogICAgICAgICAgICAgICAgLyog
MDY3OCAqLyAgMHgxRCwgMHgxNSwgMHg3QywgMHgyOCwgMHhGMCwgMHgzMSwgMHhDNSwgMHgw
MywgIC8vIC4ufCguMS4uCiAgICAgICAgICAgICAgICAvKiAwNjgwICovICAweDdDLCAweEE5
LCAweEYwLCAweDA5LCAweEM1LCAweEQzLCAweDdBLCAweDVDLCAgLy8gfC4uLi4uelwKICAg
ICAgICAgICAgICAgIC8qIDA2ODggKi8gIDB4NzgsIDB4MUEsIDB4RjAsIDB4QjgsIDB4RDks
IDB4MzUsIDB4QzEsIDB4MUYsICAvLyB4Li4uLjUuLgogICAgICAgICAgICAgICAgLyogMDY5
MCAqLyAgMHgwNCwgMHgxRiwgMHgwRiwgMHhGMCwgMHgwNywgMHg4OCwgMHg4MCwgMHhBRiwg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwNjk4ICovICAweDM3LCAweDNFLCAw
eDdBLCAweEMwLCAweDM5LCAweDgyLCAweEUwLCAweDhGLCAgLy8gNz56LjkuLi4KICAgICAg
ICAgICAgICAgIC8qIDA2QTAgKi8gIDB4MkEsIDB4RjAsIDB4QzcsIDB4RTMsIDB4NjMsIDB4
ODAsIDB4OEYsIDB4QjUsICAvLyAqLi4uYy4uLgogICAgICAgICAgICAgICAgLyogMDZBOCAq
LyAgMHg1QywgMHhGRSwgMHgyMCwgMHg1MCwgMHgwNywgMHg3OCwgMHgzRSwgMHhEMiwgIC8v
IFwuIFAueD4uCiAgICAgICAgICAgICAgICAvKiAwNkIwICovICAweEQzLCAweDdBLCAweDFC
LCAweEYwLCAweDIxLCAweEUxLCAweEIwLCAweEQ4LCAgLy8gLnouLiEuLi4KICAgICAgICAg
ICAgICAgIC8qIDA2QjggKi8gIDB4MDksIDB4ODYsIDB4OEYsIDB4MDcsIDB4RkMsIDB4MDcs
IDB4QjIsIDB4ODcsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDZDMCAqLyAg
MHgwQywgMHg1RiwgMHgxOSwgMHgzQywgMHg1RiwgMHgxRiwgMHhERCwgMHhCMSwgIC8vIC5f
LjxfLi4uCiAgICAgICAgICAgICAgICAvKiAwNkM4ICovICAweDQ3LCAweDEwLCAweDc4LCAw
eEI3LCAweDBFLCAweDFGLCAweDFBLCAweDQyLCAgLy8gRy54Li4uLkIKICAgICAgICAgICAg
ICAgIC8qIDA2RDAgKi8gIDB4M0QsIDB4NzUsIDB4NzgsIDB4MDYsIDB4RUYsIDB4MTcsIDB4
M0UsIDB4ODEsICAvLyA9dXguLi4+LgogICAgICAgICAgICAgICAgLyogMDZEOCAqLyAgMHg2
MCwgMHhGRiwgMHhGRiwgMHgyNywgMHgxMCwgMHg3MCwgMHg0NywgMHg3MSwgIC8vIGAuLicu
cEdxCiAgICAgICAgICAgICAgICAvKiAwNkUwICovICAweDAzLCAweEYxLCAweDczLCAweDZC
LCAweEExLCAweEVCLCAweDk0LCAweDhELCAgLy8gLi5zay4uLi4KICAgICAgICAgICAgICAg
IC8qIDA2RTggKi8gIDB4QjMsIDB4MEUsIDB4M0QsIDB4MEYsIDB4NTgsIDB4RUUsIDB4MDEs
IDB4NDEsICAvLyAuLj0uWC4uQQogICAgICAgICAgICAgICAgLyogMDZGMCAqLyAgMHhENywg
MHgwOCwgMHhDQywgMHgwRCwgMHgyMiwgMHg4OCwgMHg4RiwgMHg0NSwgIC8vIC4uLi4iLi5F
CiAgICAgICAgICAgICAgICAvKiAwNkY4ICovICAweEJFLCAweDUxLCAweDMwLCAweDgyLCAw
eDAyLCAweDAxLCAweDc1LCAweEY4LCAgLy8gLlEwLi4udS4KICAgICAgICAgICAgICAgIC8q
IDA3MDAgKi8gIDB4MzQsIDB4ODQsIDB4QTUsIDB4NTEsIDB4NDgsIDB4MTgsIDB4ODQsIDB4
NDYsICAvLyA0Li5RSC4uRgogICAgICAgICAgICAgICAgLyogMDcwOCAqLyAgMHhFNCwgMHhB
MywgMHgwNywgMHg4MSwgMHhBMywgMHgyMCwgMHgxRSwgMHhCRCwgIC8vIC4uLi4uIC4uCiAg
ICAgICAgICAgICAgICAvKiAwNzEwICovICAweDYzLCAweDFFLCAweENGLCAweEQxLCAweDQz
LCAweEY1LCAweDMxLCAweEMwLCAgLy8gYy4uLkMuMS4KICAgICAgICAgICAgICAgIC8qIDA3
MTggKi8gIDB4OTMsIDB4QzAsIDB4ODUsIDB4M0EsIDB4QTQsIDB4RDEsIDB4RTMsIDB4MDIs
ICAvLyAuLi46Li4uLgogICAgICAgICAgICAgICAgLyogMDcyMCAqLyAgMHgxRSwgMHhFRiwg
MHg4OCwgMHg0RSwgMHhDRCwgMHhEMywgMHhGMCwgMHhEOCwgIC8vIC4uLk4uLi4uCiAgICAg
ICAgICAgICAgICAvKiAwNzI4ICovICAweDcxLCAweDI3LCAweDBGLCAweEI4LCAweEUzLCAw
eEMwLCAweDlGLCAweDc2LCAgLy8gcScuLi4uLnYKICAgICAgICAgICAgICAgIC8qIDA3MzAg
Ki8gIDB4RjAsIDB4MTcsIDB4ODAsIDB4NTcsIDB4MjAsIDB4MTMsIDB4QjAsIDB4NTMsICAv
LyAuLi5XIC4uUwogICAgICAgICAgICAgICAgLyogMDczOCAqLyAgMHgzNSwgMHhGOCwgMHgw
NCwgMHgxRSwgMHgwRSwgMHg0MCwgMHgwMSwgMHhFNCwgIC8vIDUuLi4uQC4uCiAgICAgICAg
ICAgICAgICAvKiAwNzQwICovICAweEZCLCAweDgwLCAweDBGLCAweDNDLCAweENGLCAweDA0
LCAweDZDLCAweDBFLCAgLy8gLi4uPC4ubC4KICAgICAgICAgICAgICAgIC8qIDA3NDggKi8g
IDB4MjEsIDB4QzIsIDB4NDQsIDB4MzMsIDB4M0MsIDB4MjYsIDB4RjAsIDB4MzEsICAvLyAh
LkQzPCYuMQogICAgICAgICAgICAgICAgLyogMDc1MCAqLyAgMHg4QywgMHg5RSwgMHg4Niwg
MHgzQywgMHgyRSwgMHgzRSwgMHg0QSwgMHg5RiwgIC8vIC4uLjwuPkouCiAgICAgICAgICAg
ICAgICAvKiAwNzU4ICovICAweDYxLCAweEQ4LCAweDA5LCAweENFLCAweEQ3LCAweDYyLCAw
eDBGLCAweEYwLCAgLy8gYS4uLi5iLi4KICAgICAgICAgICAgICAgIC8qIDA3NjAgKi8gIDB4
RTUsIDB4RTAsIDB4QjksIDB4MTYsIDB4MDMsIDB4RUIsIDB4NzEsIDB4NzMsICAvLyAuLi4u
Li5xcwogICAgICAgICAgICAgICAgLyogMDc2OCAqLyAgMHg1OCwgMHhBMywgMHgzRCwgMHhF
RSwgMHhGQSwgMHg4QSwgMHhGMCwgMHhGRiwgIC8vIFguPS4uLi4uCiAgICAgICAgICAgICAg
ICAvKiAwNzcwICovICAweDdGLCAweDk4LCAweEYzLCAweEExLCAweENCLCAweDU3LCAweDI3
LCAweEMzLCAgLy8gLi4uLi5XJy4KICAgICAgICAgICAgICAgIC8qIDA3NzggKi8gIDB4RkEs
IDB4RTQsIDB4MDEsIDB4OEUsIDB4QjMsIDB4MTQsIDB4RkMsIDB4QTEsICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAgICAgLyogMDc4MCAqLyAgMHhFMiwgMHhDRSwgMHgwMiwgMHg3MCwg
MHgwRiwgMHhFNCwgMHg2QywgMHgwRSwgIC8vIC4uLnAuLmwuCiAgICAgICAgICAgICAgICAv
KiAwNzg4ICovICAweDRGLCAweDAzLCAweDc4LCAweDk5LCAweDg3LCAweDA4LCAweEQ0LCAw
eDQwLCAgLy8gTy54Li4uLkAKICAgICAgICAgICAgICAgIC8qIDA3OTAgKi8gIDB4MkMsIDB4
NzIsIDB4ODEsIDB4M0EsIDB4QUUsIDB4NzgsIDB4MjQsIDB4MjYsICAvLyAsci46LngkJgog
ICAgICAgICAgICAgICAgLyogMDc5OCAqLyAgMHhGMCwgMHg1MSwgMHhEMSwgMHgwNywgMHgw
OCwgMHg3RSwgMHg3RSwgMHhGMCwgIC8vIC5RLi4ufn4uCiAgICAgICAgICAgICAgICAvKiAw
N0EwICovICAweDAxLCAweEQ3LCAweDA3LCAweDA4LCAweDJFLCAweDA0LCAweDhFLCAweDgy
LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA3QTggKi8gIDB4RjgsIDB4MDAs
IDB4RTEsIDB4OTAsIDB4MTAsIDB4M0EsIDB4RTcsIDB4RTIsICAvLyAuLi4uLjouLgogICAg
ICAgICAgICAgICAgLyogMDdCMCAqLyAgMHg4RSwgMHgwMywgMHgzRSwgMHhDMCwgMHgzMCwg
MHg4OCwgMHgwNywgMHg4MywgIC8vIC4uPi4wLi4uCiAgICAgICAgICAgICAgICAvKiAwN0I4
ICovICAweDA3LCAweDU2LCAweDc2LCAweDk0LCAweEYxLCAweDAxLCAweDAyLCAweDc4LCAg
Ly8gLlZ2Li4uLngKICAgICAgICAgICAgICAgIC8qIDA3QzAgKi8gIDB4OEMsIDB4MDMsIDB4
N0YsIDB4ODAsIDB4ODAsIDB4N0IsIDB4RkEsIDB4MDIsICAvLyAuLi4uLnsuLgogICAgICAg
ICAgICAgICAgLyogMDdDOCAqLyAgMHhENywgMHhGOSwgMHgwMSwgMHg3OCwgMHgwNCwgMHgz
RiwgMHgzRiwgMHhBMCwgIC8vIC4uLnguPz8uCiAgICAgICAgICAgICAgICAvKiAwN0QwICov
ICAweEZGLCAweEZGLCAweEU3LCAweDA3LCAweEY4LCAweDg3LCAweDUzLCAweDdFLCAgLy8g
Li4uLi4uU34KICAgICAgICAgICAgICAgIC8qIDA3RDggKi8gIDB4N0UsIDB4MDAsIDB4OUUs
IDB4MDMsIDB4N0MsIDB4MTQsIDB4MDAsIDB4Q0IsICAvLyB+Li4ufC4uLgogICAgICAgICAg
ICAgICAgLyogMDdFMCAqLyAgMHg5OSwgMHg4QywgMHhDRCwgMHhFMSwgMHhBNSwgMHhFNiwg
MHhCNSwgMHhEMywgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwN0U4ICovICAw
eDg3LCAweDIxLCAweDc2LCAweDlDLCAweDY3LCAweDQ3LCAweDdBLCAweEFFLCAgLy8gLiF2
LmdHei4KICAgICAgICAgICAgICAgIC8qIDA3RjAgKi8gIDB4NkIsIDB4MDQsIDB4MjQsIDB4
RTIsIDB4MTksIDB4MDIsIDB4MzUsIDB4MDgsICAvLyBrLiQuLi41LgogICAgICAgICAgICAg
ICAgLyogMDdGOCAqLyAgMHhDNywgMHgzOSwgMHgzNiwgMHhFOCwgMHgzOCwgMHhDMSwgMHg2
RSwgMHhEOSwgIC8vIC45Ni44Lm4uCiAgICAgICAgICAgICAgICAvKiAwODAwICovICAweDBG
LCAweDQxLCAweDU1LCAweEEzLCAweDA4LCAweERFLCAweEI3LCAweDAyLCAgLy8gLkFVLi4u
Li4KICAgICAgICAgICAgICAgIC8qIDA4MDggKi8gIDB4MTYsIDB4RTEsIDB4MTgsIDB4ODEs
IDB4MTIsIDB4NEYsIDB4MjEsIDB4RTksICAvLyAuLi4uLk8hLgogICAgICAgICAgICAgICAg
LyogMDgxMCAqLyAgMHhDNywgMHgwOCwgMHg5NCwgMHg1OCwgMHgzOCwgMHgwQSwgMHhFMiwg
MHg1MSwgIC8vIC4uLlg4Li5RCiAgICAgICAgICAgICAgICAvKiAwODE4ICovICAweEZCLCAw
eDIwLCAweDYxLCAweDFCLCAweEM3LCAweDA4LCAweEQ0LCAweDE4LCAgLy8gLiBhLi4uLi4K
ICAgICAgICAgICAgICAgIC8qIDA4MjAgKi8gIDB4M0QsIDB4QjAsIDB4NzcsIDB4M0IsIDB4
NzYsIDB4MTQsIDB4RTAsIDB4QTcsICAvLyA9Lnc7di4uLgogICAgICAgICAgICAgICAgLyog
MDgyOCAqLyAgMHgwOCwgMHhGOCwgMHhBNywgMHgzMCwgMHhEQywgMHhEMSwgMHgwMywgMHgx
QywgIC8vIC4uLjAuLi4uCiAgICAgICAgICAgICAgICAvKiAwODMwICovICAweDE3LCAweEIx
LCAweDQzLCAweDNCLCAweEJCLCAweDQ3LCAweDRDLCAweDYzLCAgLy8gLi5DOy5HTGMKICAg
ICAgICAgICAgICAgIC8qIDA4MzggKi8gIDB4OUUsIDB4NDEsIDB4QzQsIDB4MDgsIDB4QUYs
IDB4QUUsIDB4NDYsIDB4RjMsICAvLyAuQS4uLi5GLgogICAgICAgICAgICAgICAgLyogMDg0
MCAqLyAgMHgxOCwgMHg3MSwgMHhFNywgMHg0RCwgMHg1RiwgMHgwRiwgMHg3RCwgMHhBNCwg
IC8vIC5xLk1fLn0uCiAgICAgICAgICAgICAgICAvKiAwODQ4ICovICAweEYwLCAweEExLCAw
eDFELCAweDczLCAweEE0LCAweDgwLCAweEY3LCAweEZGLCAgLy8gLi4ucy4uLi4KICAgICAg
ICAgICAgICAgIC8qIDA4NTAgKi8gIDB4MjcsIDB4RjAsIDB4QjksIDB4MTEsIDB4NzcsIDB4
QTQsIDB4ODAsIDB4MzMsICAvLyAnLi4udy4uMwogICAgICAgICAgICAgICAgLyogMDg1OCAq
LyAgMHg5MywgMHhGMywgMHhDMCwgMHhEQywgMHg0MSwgMHg4RiwgMHgyNSwgMHhCQywgIC8v
IC4uLi5BLiUuCiAgICAgICAgICAgICAgICAvKiAwODYwICovICAweEFGLCAweDg1LCAweEY4
LCAweDgzLCAweDA1LCAweEYwLCAweDM4LCAweDJFLCAgLy8gLi4uLi4uOC4KICAgICAgICAg
ICAgICAgIC8qIDA4NjggKi8gIDB4RjksIDB4NjAsIDB4MDEsIDB4MkUsIDB4NDgsIDB4MUYs
IDB4MkMsIDB4ODAsICAvLyAuYC4uSC4sLgogICAgICAgICAgICAgICAgLyogMDg3MCAqLyAg
MHhFQiwgMHhGOSwgMHhDMCwgMHhBNywgMHgwMywgMHhCMCwgMHg1RSwgMHhDOCwgIC8vIC4u
Li4uLl4uCiAgICAgICAgICAgICAgICAvKiAwODc4ICovICAweEY4LCAweEZELCAweDAwLCAw
eEM2LCAweDA5LCAweDAzLCAweEM2LCAweEY5LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg
ICAgIC8qIDA4ODAgKi8gIDB4MDAsIDB4NzMsIDB4QzMsIDB4NzAsIDB4QUMsIDB4OTUsIDB4
RUEsIDB4ODQsICAvLyAucy5wLi4uLgogICAgICAgICAgICAgICAgLyogMDg4OCAqLyAgMHg4
MSwgMHg4QiwgMHhGNSwgMHhBMCwgMHhEMCwgMHg0MCwgMHhEOCwgMHhGMCwgIC8vIC4uLi4u
QC4uCiAgICAgICAgICAgICAgICAvKiAwODkwICovICAweDlFLCAweDdGLCAweDlFLCAweDBD
LCAweEY5LCAweDYxLCAweDg2LCAweDQ1LCAgLy8gLi4uLi5hLkUKICAgICAgICAgICAgICAg
IC8qIDA4OTggKi8gIDB4ODEsIDB4RDMsIDB4RDEsIDB4QzIsIDB4MjcsIDB4MEIsIDB4ODcs
IDB4QTAsICAvLyAuLi4uJy4uLgogICAgICAgICAgICAgICAgLyogMDhBMCAqLyAgMHhEMCwg
MHg0MSwgMHhDQywgMHgyNywgMHgwQywgMHgyRSwgMHhFNiwgMHg4NCwgIC8vIC5BLicuLi4u
CiAgICAgICAgICAgICAgICAvKiAwOEE4ICovICAweDQxLCAweDQxLCAweDBDLCAweEU4LCAw
eEE0LCAweDEwLCAweEZBLCAweEZGLCAgLy8gQUEuLi4uLi4KICAgICAgICAgICAgICAgIC8q
IDA4QjAgKi8gIDB4OUYsIDB4QzMsIDB4NzAsIDB4QTcsIDB4NEQsIDB4MUYsIDB4MUIsIDB4
NTgsICAvLyAuLnAuTS4uWAogICAgICAgICAgICAgICAgLyogMDhCOCAqLyAgMHhCOCwgMHhG
QiwgMHgwNSwgMHg5RCwgMHg4QiwgMHhFNywgMHhDQywgMHhGMSwgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICAvKiAwOEMwICovICAweDdDLCAweDBFLCAweDMxLCAweEFDLCAweDZG
LCAweDI2LCAweEUwLCAweEI5LCAgLy8gfC4xLm8mLi4KICAgICAgICAgICAgICAgIC8qIDA4
QzggKi8gIDB4NTIsIDB4QjAsIDB4MzMsIDB4OEYsIDB4MkYsIDB4MDQsIDB4QkUsIDB4NEQs
ICAvLyBSLjMuLy4uTQogICAgICAgICAgICAgICAgLyogMDhEMCAqLyAgMHhGMiwgMHgwMywg
MHgyNywgMHgzQiwgMHgxNiwgMHgxOCwgMHhFNSwgMHg3OCwgIC8vIC4uJzsuLi54CiAgICAg
ICAgICAgICAgICAvKiAwOEQ4ICovICAweDVGLCAweDBCLCAweEFELCAweEU2LCAweEFFLCAw
eDgwLCAweDlBLCAweDExLCAgLy8gXy4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA4RTAg
Ki8gIDB4ODYsIDB4QzAsIDB4MDMsIDB4RjYsIDB4NDksIDB4MEMsIDB4NEMsIDB4RkEsICAv
LyAuLi4uSS5MLgogICAgICAgICAgICAgICAgLyogMDhFOCAqLyAgMHg2RSwgMHgxNCwgMHgy
MCwgMHg0NywgMHhFNywgMHg2NywgMHg2RSwgMHg4RiwgIC8vIG4uIEcuZ24uCiAgICAgICAg
ICAgICAgICAvKiAwOEYwICovICAweDlFLCAweDFGLCAweDAwLCAweDdDLCAweEI0LCAweEUz
LCAweEEzLCAweDc3LCAgLy8gLi4ufC4uLncKICAgICAgICAgICAgICAgIC8qIDA4RjggKi8g
IDB4NkMsIDB4MDgsIDB4MUQsIDB4NTcsIDB4RTAsIDB4MUUsIDB4RUUsIDB4N0MsICAvLyBs
Li5XLi4ufAogICAgICAgICAgICAgICAgLyogMDkwMCAqLyAgMHg4NiwgMHgwMiwgMHhCRSwg
MHgwMywgMHhGMywgMHgwQywgMHg5RiwgMHg1MCwgIC8vIC4uLi4uLi5QCiAgICAgICAgICAg
ICAgICAvKiAwOTA4ICovICAweEMwLCAweDc1LCAweDdGLCAweEUwLCAweEU3LCAweEMyLCAw
eEZGLCAweEZGLCAgLy8gLnUuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA5MTAgKi8gIDB4
RkIsIDB4MDMsIDB4RTYsIDB4MkMsIDB4MEMsIDB4RTMsIDB4OTQsIDB4MDIsICAvLyAuLi4s
Li4uLgogICAgICAgICAgICAgICAgLyogMDkxOCAqLyAgMHgzQywgMHg0NiwgMHhFRiwgMHg1
MywgMHgwQSwgMHhCOCwgMHgwRSwgMHgwMCwgIC8vIDxGLlMuLi4uCiAgICAgICAgICAgICAg
ICAvKiAwOTIwICovICAweDNFLCAweEE1LCAweDAwLCAweEQ3LCAweDM5LCAweDNFLCAweEM4
LCAweDgzLCAgLy8gPi4uLjk+Li4KICAgICAgICAgICAgICAgIC8qIDA5MjggKi8gIDB4MDcs
IDB4QzUsIDB4RjcsIDB4NUYsIDB4NEYsIDB4QzQsIDB4QzYsIDB4ODcsICAvLyAuLi5fTy4u
LgogICAgICAgICAgICAgICAgLyogMDkzMCAqLyAgMHg0RiwgMHgyRiwgMHgyOCwgMHgxRSwg
MHhDQiwgMHg5QiwgMHgzNywgMHgwRiwgIC8vIE8vKC4uLjcuCiAgICAgICAgICAgICAgICAv
KiAwOTM4ICovICAweDc1LCAweDM2LCAweDQxLCAweDQ3LCAweDdCLCAweDNELCAweDY4LCAw
eEQwLCAgLy8gdTZBR3s9aC4KICAgICAgICAgICAgICAgIC8qIDA5NDAgKi8gIDB4MEYsIDB4
MkEsIDB4OUUsIDB4N0QsIDB4RjgsIDB4RTMsIDB4OEIsIDB4RjAsICAvLyAuKi59Li4uLgog
ICAgICAgICAgICAgICAgLyogMDk0OCAqLyAgMHg3QywgMHhFQSwgMHg3MSwgMHhCMSwgMHgz
OCwgMHg2NywgMHgxMywgMHg1NCwgIC8vIHwucS44Zy5UCiAgICAgICAgICAgICAgICAvKiAw
OTUwICovICAweDEwLCAweDBBLCAweDFELCAweDNCLCAweDdELCAweDlDLCAweEUwLCAweDky
LCAgLy8gLi4uO30uLi4KICAgICAgICAgICAgICAgIC8qIDA5NTggKi8gIDB4OEUsIDB4MTMs
IDB4MTQsIDB4QzQsIDB4ODAsIDB4Q0UsIDB4N0IsIDB4QzQsICAvLyAuLi4uLi57LgogICAg
ICAgICAgICAgICAgLyogMDk2MCAqLyAgMHhGMywgMHgyMSwgMHgxRSwgMHg3RCwgMHhFQSwg
MHhGMywgMHgyRCwgMHhFMSwgIC8vIC4hLn0uLi0uCiAgICAgICAgICAgICAgICAvKiAwOTY4
ICovICAweDM4LCAweDlFLCAweDQwLCAweDEyLCAweENDLCAweDc3LCAweDEyLCAweEEwLCAg
Ly8gOC5ALi53Li4KICAgICAgICAgICAgICAgIC8qIDA5NzAgKi8gIDB4OTcsIDB4MTMsIDB4
NzgsIDB4QTcsIDB4NzEsIDB4REMsIDB4NDgsIDB4NzEsICAvLyAuLngucS5IcQogICAgICAg
ICAgICAgICAgLyogMDk3OCAqLyAgMHhGRiwgMHhGRiwgMHhDQiwgMHgwOSwgMHg4QywgMHgw
MywgMHg4RCwgMHg2NywgIC8vIC4uLi4uLi5nCiAgICAgICAgICAgICAgICAvKiAwOTgwICov
ICAweEMxLCAweDEwLCAweERFLCAweEFDLCAweEQ5LCAweDcxLCAweDFELCAweDFFLCAgLy8g
Li4uLi5xLi4KICAgICAgICAgICAgICAgIC8qIDA5ODggKi8gIDB4OEMsIDB4QUYsIDB4Mjcs
IDB4MzAsIDB4RUYsIDB4NzksIDB4RTAsIDB4M0EsICAvLyAuLicwLnkuOgogICAgICAgICAg
ICAgICAgLyogMDk5MCAqLyAgMHg5RSwgMHgwMCwgMHgwQiwgMHg5OSwgMHgwNywgMHgwMCwg
MHhENCwgMHhCMSwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwOTk4ICovICAw
eEQxLCAweDA3LCAweDQ3LCAweDdFLCAweDAwLCAweDcwLCAweEU4LCAweEUzLCAgLy8gLi5H
fi5wLi4KICAgICAgICAgICAgICAgIC8qIDA5QTAgKi8gIDB4MDksIDB4N0EsIDB4MjYsIDB4
M0UsIDB4MTYsIDB4M0QsIDB4OTUsIDB4RjgsICAvLyAueiY+Lj0uLgogICAgICAgICAgICAg
ICAgLyogMDlBOCAqLyAgMHgwMiwgMHhDMCwgMHhDRiwgMHg2RSwgMHgzQSwgMHg5RiwgMHg4
MCwgMHhFMiwgIC8vIC4uLm46Li4uCiAgICAgICAgICAgICAgICAvKiAwOUIwICovICAweDlD
LCAweDA5LCAweDlFLCAweDcxLCAweEIwLCAweDJCLCAweDAwLCAweEZFLCAgLy8gLi4ucS4r
Li4KICAgICAgICAgICAgICAgIC8qIDA5QjggKi8gIDB4ODQsIDB4MDIsIDB4RkIsIDB4NDgs
IDB4MDYsIDB4QkUsIDB4ODksIDB4RjgsICAvLyAuLi5ILi4uLgogICAgICAgICAgICAgICAg
LyogMDlDMCAqLyAgMHg1NCwgMHg3MSwgMHgyMCwgMHhEOCwgMHhEMywgMHgwOSwgMHhGOCwg
MHhGRSwgIC8vIFRxIC4uLi4uCiAgICAgICAgICAgICAgICAvKiAwOUM4ICovICAweEZGLCAw
eDI3LCAweDU5LCAweEUwLCAweDAxLCAweENCLCAweDRGLCAweEIyLCAgLy8gLidZLi4uTy4K
ICAgICAgICAgICAgICAgIC8qIDA5RDAgKi8gIDB4ODAsIDB4OEYsIDB4REIsIDB4MDgsIDB4
NzYsIDB4MTYsIDB4Q0YsIDB4MjQsICAvLyAuLi4udi4uJAogICAgICAgICAgICAgICAgLyog
MDlEOCAqLyAgMHg4QywgMHg2MCwgMHhFNCwgMHhBMywgMHgwOSwgMHhFQSwgMHg4OCwgMHhF
QywgIC8vIC5gLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwOUUwICovICAweEEwLCAweEE3
LCAweDMwLCAweEM0LCAweDM4LCAweDFGLCAweDJCLCAweDhDLCAgLy8gLi4wLjguKy4KICAg
ICAgICAgICAgICAgIC8qIDA5RTggKi8gIDB4MTEsIDB4QjksIDB4RjgsIDB4NTEsIDB4NkIs
IDB4MzIsIDB4M0UsIDB4OUIsICAvLyAuLi5RazI+LgogICAgICAgICAgICAgICAgLyogMDlG
MCAqLyAgMHhGOSwgMHhCMiwgMHhDRSwgMHgwRSwgMHgzRiwgMHgzOCwgMHg4MiwgMHg4MSwg
IC8vIC4uLi4/OC4uCiAgICAgICAgICAgICAgICAvKiAwOUY4ICovICAweDBFLCAweDI4LCAw
eEE4LCAweEUzLCAweDk4LCAweENGLCAweDYyLCAweDgwLCAgLy8gLiguLi4uYi4KICAgICAg
ICAgICAgICAgIC8qIDBBMDAgKi8gIDB4QjMsIDB4RkYsIDB4RkYsIDB4NTksIDB4MEMsIDB4
RjgsIDB4OUYsIDB4REQsICAvLyAuLi5ZLi4uLgogICAgICAgICAgICAgICAgLyogMEEwOCAq
LyAgMHgzRCwgMHg3QSwgMHg3RSwgMHg2QywgMHhFNywgMHgyMCwgMHgxRSwgMHhCRCwgIC8v
ID16fmwuIC4uCiAgICAgICAgICAgICAgICAvKiAwQTEwICovICAweEMzLCAweDlGLCAweEM1
LCAweEEwLCAweDg3LCAweDNELCAweDhCLCAweDAxLCAgLy8gLi4uLi49Li4KICAgICAgICAg
ICAgICAgIC8qIDBBMTggKi8gIDB4NkQsIDB4QzEsIDB4NjcsIDB4MzEsIDB4NTAsIDB4REUs
IDB4MjIsIDB4RTAsICAvLyBtLmcxUC4iLgogICAgICAgICAgICAgICAgLyogMEEyMCAqLyAg
MHg5RSwgMHg0MSwgMHg4MSwgMHhENywgMHhEQSwgMHg3QywgMHg0MiwgMHg4MSwgIC8vIC5B
Li4ufEIuCiAgICAgICAgICAgICAgICAvKiAwQTI4ICovICAweEZGLCAweEZGLCAweDNGLCAw
eEExLCAweEUwLCAweEVFLCAweDBDLCAweDNFLCAgLy8gLi4/Li4uLj4KICAgICAgICAgICAg
ICAgIC8qIDBBMzAgKi8gIDB4QTEsIDB4MDAsIDB4RDcsIDB4MjMsIDB4MDAsIDB4RUUsIDB4
MEMsIDB4MEEsICAvLyAuLi4jLi4uLgogICAgICAgICAgICAgICAgLyogMEEzOCAqLyAgMHg4
RSwgMHgxMywgMHgwMCwgMHhGMywgMHg3NSwgMHgwMywgMHhBMCwgMHgyMCwgIC8vIC4uLi51
Li4gCiAgICAgICAgICAgICAgICAvKiAwQTQwICovICAweDhGLCAweDAwLCAweEY4LCAweDJC
LCAweEJDLCAweDBGLCAweDI2LCAweEI4LCAgLy8gLi4uKy4uJi4KICAgICAgICAgICAgICAg
IC8qIDBBNDggKi8gIDB4NzgsIDB4MjcsIDB4MTUsIDB4MTQsIDB4ODcsIDB4RTMsIDB4OUQs
IDB4NTQsICAvLyB4Jy4uLi4uVAogICAgICAgICAgICAgICAgLyogMEE1MCAqLyAgMHgxMCwg
MHg1MywgMHg4OSwgMHhGQywgMHhENiwgMHhFMiwgMHgwOSwgMHg4NCwgIC8vIC5TLi4uLi4u
CiAgICAgICAgICAgICAgICAvKiAwQTU4ICovICAweDNGLCAweEI4LCAweDM4LCAweEVGLCAw
eDY3LCAweEZDLCAweDU0LCAweDA2LCAgLy8gPy44LmcuVC4KICAgICAgICAgICAgICAgIC8q
IDBBNjAgKi8gIDB4NDMsIDB4RDQsIDB4QzEsIDB4MDIsIDB4MjUsIDB4RTMsIDB4NjAsIDB4
NDEsICAvLyBDLi4uJS5gQQogICAgICAgICAgICAgICAgLyogMEE2OCAqLyAgMHg0MSwgMHgw
QywgMHhFOCwgMHg4QywgMHhBNywgMHgxNCwgMHhGNCwgMHhBOSwgIC8vIEEuLi4uLi4uCiAg
ICAgICAgICAgICAgICAvKiAwQTcwICovICAweDhDLCAweDVGLCAweDQ2LCAweDNDLCAweEIw
LCAweDA0LCAweDMzLCAweDVELCAgLy8gLl9GPC4uM10KICAgICAgICAgICAgICAgIC8qIDBB
NzggKi8gIDB4NTMsIDB4QTAsIDB4NUYsIDB4NDAsIDB4NzAsIDB4MDMsIDB4ODYsIDB4MEIs
ICAvLyBTLl9AcC4uLgogICAgICAgICAgICAgICAgLyogMEE4MCAqLyAgMHhGNiwgMHgyMCwg
MHg2MSwgMHg4NCwgMHhENywgMHg2NCwgMHhDRiwgMHgwMywgIC8vIC4gYS4uZC4uCiAgICAg
ICAgICAgICAgICAvKiAwQTg4ICovICAweDczLCAweDQ0LCAweDAxLCAweDE2LCAweEZGLCAw
eEZGLCAweDIzLCAweDBBLCAgLy8gc0QuLi4uIy4KICAgICAgICAgICAgICAgIC8qIDBBOTAg
Ki8gIDB4RjAsIDB4OTAsIDB4M0MsIDB4NzQsIDB4OTQsIDB4QzgsIDB4QTEsIDB4NTMsICAv
LyAuLjx0Li4uUwogICAgICAgICAgICAgICAgLyogMEE5OCAqLyAgMHgxMCwgMHgwRiwgMHhE
RCwgMHgzNCwgMHgzRSwgMHhBMiwgMHhFMCwgMHhDNiwgIC8vIC4uLjQ+Li4uCiAgICAgICAg
ICAgICAgICAvKiAwQUEwICovICAweENBLCAweDJFLCAweDA0LCAweEIwLCAweEEyLCAweDlF
LCAweDUyLCAweDQwLCAgLy8gLi4uLi4uUkAKICAgICAgICAgICAgICAgIC8qIDBBQTggKi8g
IDB4MjEsIDB4NzIsIDB4RjgsIDB4QTAsIDB4MTksIDB4QzcsIDB4RDEsIDB4M0QsICAvLyAh
ci4uLi4uPQogICAgICAgICAgICAgICAgLyogMEFCMCAqLyAgMHhGNSwgMHg3OCwgMHgxRSwg
MHhGQywgMHg0RSwgMHhFQywgMHg2MywgMHgxRSwgIC8vIC54Li5OLmMuCiAgICAgICAgICAg
ICAgICAvKiAwQUI4ICovICAweERDLCAweDkzLCAweDBBLCAweEVFLCAweEQ0LCAweDg4LCAw
eDNCLCAweEE5LCAgLy8gLi4uLi4uOy4KICAgICAgICAgICAgICAgIC8qIDBBQzAgKi8gIDB4
ODAsIDB4NjEsIDB4OEUsIDB4RDgsIDB4NTMsIDB4MTksIDB4RjAsIDB4M0EsICAvLyAuYS4u
Uy4uOgogICAgICAgICAgICAgICAgLyogMEFDOCAqLyAgMHg4MiwgMHg4MiwgMHhDRiwgMHhD
MywgMHgyMSwgMHgwNSwgMHgxNCwgMHhGRiwgIC8vIC4uLi4hLi4uCiAgICAgICAgICAgICAg
ICAvKiAwQUQwICovICAweEZGLCAweDIzLCAweDI4LCAweDcwLCAweDNFLCAweEE0LCAweEYw
LCAweDYzLCAgLy8gLiMocD4uLmMKICAgICAgICAgICAgICAgIC8qIDBBRDggKi8gIDB4MDYs
IDB4RTYsIDB4NkEsIDB4QzAsIDB4OEYsIDB4QTAsIDB4OTgsIDB4OTgsICAvLyAuLmouLi4u
LgogICAgICAgICAgICAgICAgLyogMEFFMCAqLyAgMHhDRiwgMHgwNywgMHg5RCwgMHg0Riwg
MHhGOCwgMHhEMSwgMHhDMCwgMHg4MSwgIC8vIC4uLk8uLi4uCiAgICAgICAgICAgICAgICAv
KiAwQUU4ICovICAweDVFLCAweDA1LCAweDAyLCAweDY3LCAweDY3LCAweDdELCAweERDLCAw
eEU1LCAgLy8gXi4uZ2d9Li4KICAgICAgICAgICAgICAgIC8qIDBBRjAgKi8gIDB4QzAsIDB4
MjcsIDB4MEMsIDB4MTMsIDB4OEMsIDB4NzAsIDB4OUEsIDB4QTAsICAvLyAuJy4uLnAuLgog
ICAgICAgICAgICAgICAgLyogMEFGOCAqLyAgMHgxMCwgMHgxNiwgMHg0RiwgMHgyMSwgMHhF
OSwgMHg4NywgMHgwQSwgMHg5NCwgIC8vIC4uTyEuLi4uCiAgICAgICAgICAgICAgICAvKiAw
QjAwICovICAweDU4LCAweDM4LCAweDBBLCAweEUyLCAweDQzLCAweDg1LCAweDg1LCAweDFD
LCAgLy8gWDguLkMuLi4KICAgICAgICAgICAgICAgIC8qIDBCMDggKi8gIDB4MkEsIDB4RDAs
IDB4QzcsIDB4MjgsIDB4N0MsIDB4RjAsIDB4MTMsIDB4MDUsICAvLyAqLi4ofC4uLgogICAg
ICAgICAgICAgICAgLyogMEIxMCAqLyAgMHgyOCwgMHgyRSwgMHgwMCwgMHg4RiwgMHhFQywg
MHhFMCwgMHhCRCwgMHhBRiwgIC8vICguLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwQjE4
ICovICAweEUzLCAweDA3LCAweDg5LCAweEJCLCAweEE4LCAweDc4LCAweEM4LCAweDNFLCAg
Ly8gLi4uLi54Lj4KICAgICAgICAgICAgICAgIC8qIDBCMjAgKi8gIDB4QjAsIDB4NjMsIDB4
RTYsIDB4RTksIDB4QTMsIDB4MDUsIDB4M0MsIDB4MDIsICAvLyAuYy4uLi48LgogICAgICAg
ICAgICAgICAgLyogMEIyOCAqLyAgMHg5RiwgMHgxRSwgMHhDMSwgMHgwNywgMHhFRiwgMHhD
MywgMHgxNCwgMHhFRSwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwQjMwICov
ICAweEZGLCAweDdGLCAweDk4LCAweDAyLCAweDJFLCAweDY3LCAweDNELCAweDFGLCAgLy8g
Li4uLi5nPS4KICAgICAgICAgICAgICAgIC8qIDBCMzggKi8gIDB4MkMsIDB4QzAsIDB4MDUs
IDB4RUUsIDB4ODMsIDB4MDUsIDB4NzAsIDB4QkQsICAvLyAsLi4uLi5wLgogICAgICAgICAg
ICAgICAgLyogMEI0MCAqLyAgMHhGRCwgMHhGOCwgMHg3NCwgMHgwMCwgMHhENiwgMHhEMSwg
MHgxRSwgMHhGMywgIC8vIC4udC4uLi4uCiAgICAgICAgICAgICAgICAvKiAwQjQ4ICovICAw
eEY5LCAweEM2LCAweDc5LCAweDNGLCAweDgwLCAweDcxLCAweDUzLCAweDc5LCAgLy8gLi55
Py5xU3kKICAgICAgICAgICAgICAgIC8qIDBCNTAgKi8gIDB4ODgsIDB4RjQsIDB4M0QsIDB4
QzAsIDB4RjgsIDB4RUMsIDB4N0MsIDB4ODAsICAvLyAuLj0uLi58LgogICAgICAgICAgICAg
ICAgLyogMEI1OCAqLyAgMHhCRCwgMHgxMiwgMHhGOSwgMHhFQywgMHhBMCwgMHgzMywgMHgw
NiwgMHg2QSwgIC8vIC4uLi4uMy5qCiAgICAgICAgICAgICAgICAvKiAwQjYwICovICAweDM4
LCAweDNFLCAweDU3LCAweDc4LCAweDI0LCAweEVDLCAweDAyLCAweDcwLCAgLy8gOD5XeCQu
LnAKICAgICAgICAgICAgICAgIC8qIDBCNjggKi8gIDB4QUUsIDB4M0UsIDB4NTAsIDB4RTEs
IDB4MEUsIDB4N0QsIDB4M0UsIDB4NjIsICAvLyAuPlAuLn0+YgogICAgICAgICAgICAgICAg
LyogMEI3MCAqLyAgMHhGMCwgMHgyMywgMHhCRCwgMHg0RiwgMHhCOSwgMHhFMCwgMHgzQSwg
MHg2MiwgIC8vIC4jLk8uLjpiCiAgICAgICAgICAgICAgICAvKiAwQjc4ICovICAweEUwLCAw
eDQzLCAweDFFLCAweDMxLCAweDQwLCAweEYxLCAweEZGLCAweDNGLCAgLy8gLkMuMUAuLj8K
ICAgICAgICAgICAgICAgIC8qIDBCODAgKi8gIDB4NDAsIDB4RTAsIDB4NDYsIDB4MEQsIDB4
OEUsIDB4QzksIDB4M0QsIDB4MjIsICAvLyBALkYuLi49IgogICAgICAgICAgICAgICAgLyog
MEI4OCAqLyAgMHg5QywgMHhGMiwgMHg5OSwgMHhFMiwgMHgwRSwgMHgxNiwgMHhDMCwgMHg2
NSwgIC8vIC4uLi4uLi5lCiAgICAgICAgICAgICAgICAvKiAwQjkwICovICAweDFFLCAweEVD
LCAweDYwLCAweDAxLCAweEJDLCAweDIyLCAweDFGLCAweDgwLCAgLy8gLi5gLi4iLi4KICAg
ICAgICAgICAgICAgIC8qIDBCOTggKi8gIDB4NDAsIDB4NjcsIDB4RTIsIDB4NjAsIDB4MDEs
IDB4NzQsIDB4Q0YsIDB4MDQsICAvLyBAZy5gLnQuLgogICAgICAgICAgICAgICAgLyogMEJB
MCAqLyAgMHhDMCwgMHg0MSwgMHhBMSwgMHg0RCwgMHg5RiwgMHgxQSwgMHg4RCwgMHg1QSwg
IC8vIC5BLk0uLi5aCiAgICAgICAgICAgICAgICAvKiAwQkE4ICovICAweDM1LCAweDI4LCAw
eDUzLCAweEEzLCAweDRDLCAweDgzLCAweDVBLCAweDdELCAgLy8gNShTLkwuWn0KICAgICAg
ICAgICAgICAgIC8qIDBCQjAgKi8gIDB4MkEsIDB4MzUsIDB4NDYsIDB4RjAsIDB4REMsIDB4
RTMsIDB4QjUsIDB4NkEsICAvLyAqNUYuLi4uagogICAgICAgICAgICAgICAgLyogMEJCOCAq
LyAgMHhCMCwgMHgwRSwgMHhGNSwgMHg2NiwgMHgxMCwgMHg4OCwgMHhFMywgMHhBRSwgIC8v
IC4uLmYuLi4uCiAgICAgICAgICAgICAgICAvKiAwQkMwICovICAweDU4LCAweDAzLCAweDI2
LCAweDBGLCAweDI3LCAweEZELCAweEZGLCAweDQxLCAgLy8gWC4mLicuLkEKICAgICAgICAg
ICAgICAgIC8qIDBCQzggKi8gIDB4MkMsIDB4NDQsIDB4MDUsIDB4MDgsIDB4OTMsIDB4QjEs
IDB4MkUsIDB4ODEsICAvLyAsRC4uLi4uLgogICAgICAgICAgICAgICAgLyogMEJEMCAqLyAg
MHg1OCwgMHhDQSwgMHhCQSwgMHgwNCwgMHg2MiwgMHhBMSwgMHhFRiwgMHgwOCwgIC8vIFgu
Li5iLi4uCiAgICAgICAgICAgICAgICAvKiAwQkQ4ICovICAweDgxLCAweDM4LCAweEM4LCAw
eDZCLCAweDQwLCAweDIwLCAweDhFLCAweEY3LCAgLy8gLjgua0AgLi4KICAgICAgICAgICAg
ICAgIC8qIDBCRTAgKi8gIDB4RDYsIDB4MTMsIDB4ODgsIDB4ODMsIDB4NkEsIDB4MDEsIDB4
NjEsIDB4MzEsICAvLyAuLi4uai5hMQogICAgICAgICAgICAgICAgLyogMEJFOCAqLyAgMHhC
RCwgMHg4MCwgMHhCMCwgMHg3MCwgMHg2QiwgMHgxMywgMHg4OCwgMHgyMywgIC8vIC4uLnBr
Li4jCiAgICAgICAgICAgICAgICAvKiAwQkYwICovICAweDk5LCAweDE5LCAweDBBLCAweEZE
LCAweEQ2LCAweDA5LCAweEM0LCAweDYxLCAgLy8gLi4uLi4uLmEKICAgICAgICAgICAgICAg
IC8qIDBCRjggKi8gIDB4RUQsIDB4ODAsIDB4MzAsIDB4MDksIDB4N0UsIDB4NDAsIDB4OTgs
IDB4RjQsICAvLyAuLjAufkAuLgogICAgICAgICAgICAgICAgLyogMEMwMCAqLyAgMHgwNSwg
MHgwQiwgMHg4QywgMHgxOCwgMHgwMiwgMHg2MSwgMHhBMiwgMHgxQywgIC8vIC4uLi4uYS4u
CiAgICAgICAgICAgICAgICAvKiAwQzA4ICovICAweDgxLCAweDMwLCAweDkxLCAweDkyLCAw
eDg2LCAweDQ0LCAweDNELCAweDgxLCAgLy8gLjAuLi5EPS4KICAgICAgICAgICAgICAgIC8q
IDBDMTAgKi8gIDB4QjAsIDB4MTgsIDB4MjAsIDB4NTQsIDB4OTAsIDB4QTksIDB4RDMsIDB4
QkUsICAvLyAuLiBULi4uLgogICAgICAgICAgICAgICAgLyogMEMxOCAqLyAgMHg0MCwgMHgy
NCwgMHgwRiwgMHg0NCwgMHg0MCwgMHgxNiwgMHhFQywgMHgwQSwgIC8vIEAkLkRALi4uCiAg
ICAgICAgICAgICAgICAvKiAwQzIwICovICAweDg4LCAweEM5LCAweDA3LCAweDExLCAweDkw
LCAweDQzLCAweERCLCAweDAyLCAgLy8gLi4uLi5DLi4KICAgICAgICAgICAgICAgIC8qIDBD
MjggKi8gIDB4NjIsIDB4MTIsIDB4N0UsIDB4MjIsIDB4MDIsIDB4NzIsIDB4ODYsIDB4Mjcs
ICAvLyBiLn4iLnIuJwogICAgICAgICAgICAgICAgLyogMEMzMCAqLyAgMHhCMiwgMHg4MCwg
MHgxQywgMHgwOCwgMHg0NCwgMHg0MCwgMHg4RSwgMHhCNSwgIC8vIC4uLi5EQC4uCiAgICAg
ICAgICAgICAgICAvKiAwQzM4ICovICAweDVFLCAweDAxLCAweDM5LCAweDI0LCAweDg4LCAw
eDgwLCAweDJDLCAweDUwLCAgLy8gXi45JC4uLFAKICAgICAgICAgICAgICAgIC8qIDBDNDAg
Ki8gIDB4MUEsIDB4MTAsIDB4NTMsIDB4MEIsIDB4MjIsIDB4MjAsIDB4MEIsIDB4QjcsICAv
LyAuLlMuIiAuLgogICAgICAgICAgICAgICAgLyogMEM0OCAqLyAgMHgwNiwgMHhDNCwgMHg2
MiwgMHg4MCwgMHgwOCwgMHhDOCwgMHhDOSwgMHhCRCwgIC8vIC4uYi4uLi4uCiAgICAgICAg
ICAgICAgICAvKiAwQzUwICovICAweDAxLCAweDMxLCAweDE5LCAweEFGLCAweDU3LCAweDAx
LCAweDU5LCAweDhDLCAgLy8gLjEuLlcuWS4KICAgICAgICAgICAgICAgIC8qIDBDNTggKi8g
IDB4MzksIDB4MjAsIDB4MjYsIDB4MEQsIDB4NDQsIDB4NDAsIDB4NEUsIDB4RTcsICAvLyA5
ICYuREBOLgogICAgICAgICAgICAgICAgLyogMEM2MCAqLyAgMHgwRSwgMHg4OCwgMHg0NSwg
MHgwNSwgMHgxMSwgMHg5MCwgMHhFMywgMHhDQiwgIC8vIC4uRS4uLi4uCiAgICAgICAgICAg
ICAgICAvKiAwQzY4ICovICAweDAzLCAweDYyLCAweDYyLCAweEVDLCAweDBELCAweDk4LCAw
eEZBLCAweDAzLCAgLy8gLmJiLi4uLi4KICAgICAgICAgICAgICAgIC8qIDBDNzAgKi8gIDB4
NjIsIDB4MDEsIDB4NDEsIDB4MDQsIDB4NjQsIDB4ODksIDB4MEYsIDB4OTgsICAvLyBiLkEu
ZC4uLgogICAgICAgICAgICAgICAgLyogMEM3OCAqLyAgMHg0MCwgMHg0NCwgMHgzMCwgMHg4
OCwgMHg4MCwgMHhGQywgMHhGRiwgMHgwNyAgIC8vIEBEMC4uLi4uCiAgICAgICAgICAgIH0p
CiAgICAgICAgfQogICAgfQp9Cgo=
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt11.dsl"
Content-Disposition: attachment; filename="ssdt11.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MTEuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMEFFOSAoMjc5MykKICogICAgIFJldmlzaW9uICAgICAgICAg
MHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweDI3CiAqICAgICBPRU0gSUQgICAgICAg
ICAgICJMRU5PVk8iCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJQcm9qU3NkdCIKICogICAg
IE9FTSBSZXZpc2lvbiAgICAgMHgwMDAwMDAxMCAoMTYpCiAqICAgICBDb21waWxlciBJRCAg
ICAgICJJTlRMIgogKiAgICAgQ29tcGlsZXIgVmVyc2lvbiAweDIwMTgwMzEzICg1Mzg0NDQ1
NjMpCiAqLwpEZWZpbml0aW9uQmxvY2sgKCIiLCAiU1NEVCIsIDIsICJMRU5PVk8iLCAiUHJv
alNzZHQiLCAweDAwMDAwMDEwKQp7CiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTcuWEhD
MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE3LlhIQzAuUkhVQiwg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE3LlhIQzAuUkhVQi5QUlQx
LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBS
VDIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNy5YSEMwLlJIVUIu
UFJUMywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE3LlhIQzAuUkhV
Qi5QUlQzLlBSVDEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNy5Y
SEMwLlJIVUIuUFJUMy5QUlQyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kw
LkdQMTcuWEhDMC5SSFVCLlBSVDQsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBD
STAuR1AxNy5YSEMwLlJIVUIuUFJUNSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u
UENJMC5HUDE3LlhIQzAuUkhVQi5QUlQ2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NC
Xy5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBSVDcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChf
U0JfLlBDSTAuR1AxNy5YSEMxLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kw
LkdQMTcuWEhDMS5SSFVCLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQ
MTcuWEhDMS5SSFVCLlBSVDEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAu
R1AxNy5YSEMxLlJIVUIuUFJUMiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJ
MC5HUDE5LlhIQzIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxOS5Y
SEMyLlJIVUIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxOS5YSEMy
LlJIVUIuUFJUMSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE5LlhI
QzIuUkhVQi5QUlQyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTku
WEhDMywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE5LlhIQzMuUkhV
QiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE5LlhIQzMuUkhVQi5Q
UlQxLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTkuWEhDMy5SSFVC
LlBSVDIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxOS5YSEM0LCBE
ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTkuWEhDNC5SSFVCLCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTkuWEhDNC5SSFVCLlBSVDEsIERl
dmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxOS5YSEM0LlJIVUIuUFJUMiwg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKFBMRDgsIEJ1ZmZPYmopCiAgICBFeHRlcm5hbCAo
UExEQywgQnVmZk9iaikKICAgIEV4dGVybmFsIChQTERJLCBCdWZmT2JqKQogICAgRXh0ZXJu
YWwgKFBMREwsIEJ1ZmZPYmopCiAgICBFeHRlcm5hbCAoUExEUiwgQnVmZk9iaikKICAgIEV4
dGVybmFsIChQTExBLCBCdWZmT2JqKQogICAgRXh0ZXJuYWwgKFBMUkEsIEJ1ZmZPYmopCiAg
ICBFeHRlcm5hbCAoVVBDSSwgUGtnT2JqKQogICAgRXh0ZXJuYWwgKFVQQ0wsIFBrZ09iaikK
ICAgIEV4dGVybmFsIChVUENSLCBQa2dPYmopCiAgICBFeHRlcm5hbCAoVVBMQSwgUGtnT2Jq
KQogICAgRXh0ZXJuYWwgKFVQUkEsIFBrZ09iaikKICAgIEV4dGVybmFsIChXSU44LCBVbmtu
b3duT2JqKQogICAgRXh0ZXJuYWwgKFhQTEQsIEJ1ZmZPYmopCiAgICBFeHRlcm5hbCAoWFVQ
QywgUGtnT2JqKQoKICAgIFNjb3BlIChcX1NCLlBDSTAuR1AxNy5YSEMwLlJIVUIuUFJUMSkK
ICAgIHsKICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBV
U0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFVQQ1As
IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAKICAgICAgICAgICAgfSkKICAgICAgICAgICAgQ29weU9iamVjdCAoXFVQ
UkEsIFVQQ1ApIC8qIFxfU0JfLlBDSTAuR1AxNy5YSEMwLlJIVUIuUFJUMS5fVVBDLlVQQ1Ag
Ki8KICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLkdQMTcuWEhDMC5S
SFVCLlBSVDEuX1VQQy5VUENQICovCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9QTEQs
IDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UK
ICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFBMRFAsIEJ1ZmZlciAoMHgxMCkge30pCiAg
ICAgICAgICAgIFBMRFAgPSBcUExSQSAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAg
ICAgICAgUmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBSVDEu
X1BMRC5QTERQICovCiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTAuR1Ax
Ny5YSEMwLlJIVUIuUFJUMikKICAgIHsKICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlh
bGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICB7CiAgICAg
ICAgICAgIE5hbWUgKFVQQ1AsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg
ICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgfSkKICAgICAgICAg
ICAgQ29weU9iamVjdCAoXFVQTEEsIFVQQ1ApIC8qIFxfU0JfLlBDSTAuR1AxNy5YSEMwLlJI
VUIuUFJUMi5fVVBDLlVQQ1AgKi8KICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NC
Xy5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBSVDIuX1VQQy5VUENQICovCiAgICAgICAgfQoKICAg
ICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBM
b2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFBMRFAsIEJ1
ZmZlciAoMHgxMCkge30pCiAgICAgICAgICAgIFBMRFAgPSBcUExMQSAvKiBFeHRlcm5hbCBy
ZWZlcmVuY2UgKi8KICAgICAgICAgICAgUmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQ0kwLkdQ
MTcuWEhDMC5SSFVCLlBSVDIuX1BMRC5QTERQICovCiAgICAgICAgfQogICAgfQoKICAgIFNj
b3BlIChcX1NCLlBDSTAuR1AxNy5YSEMwLlJIVUIuUFJUMykKICAgIHsKICAgICAgICBNZXRo
b2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRp
ZXMKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFVQQ1AsIFBhY2thZ2UgKDB4MDQpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAKICAgICAg
ICAgICAgfSkKICAgICAgICAgICAgQ29weU9iamVjdCAoXFhVUEMsIFVQQ1ApIC8qIFxfU0Jf
LlBDSTAuR1AxNy5YSEMwLlJIVUIuUFJUMy5fVVBDLlVQQ1AgKi8KICAgICAgICAgICAgUmV0
dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBSVDMuX1VQQy5VUENQ
ICovCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAv
LyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICB7CiAgICAgICAg
ICAgIE5hbWUgKFBMRFAsIEJ1ZmZlciAoMHgxMCkge30pCiAgICAgICAgICAgIFBMRFAgPSBc
WFBMRCAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgUmV0dXJuIChQTERQ
KSAvKiBcX1NCXy5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBSVDMuX1BMRC5QTERQICovCiAgICAg
ICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTAuR1AxNy5YSEMwLlJIVUIuUFJUMy5Q
UlQxKQogICAgewogICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8vIF9V
UEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAo
VVBDUCwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw
MCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9KQogICAgICAgICAgICBDb3B5T2JqZWN0
IChcWFVQQywgVVBDUCkgLyogXF9TQl8uUENJMC5HUDE3LlhIQzAuUkhVQi5QUlQzLlBSVDEu
X1VQQy5VUENQICovCiAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5H
UDE3LlhIQzAuUkhVQi5QUlQzLlBSVDEuX1VQQy5VUENQICovCiAgICAgICAgfQoKICAgICAg
ICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2Nh
dGlvbiBvZiBEZXZpY2UKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFBMRFAsIEJ1ZmZl
ciAoMHgxMCkge30pCiAgICAgICAgICAgIFBMRFAgPSBcWFBMRCAvKiBFeHRlcm5hbCByZWZl
cmVuY2UgKi8KICAgICAgICAgICAgUmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQ0kwLkdQMTcu
WEhDMC5SSFVCLlBSVDMuUFJUMS5fUExELlBMRFAgKi8KICAgICAgICB9CiAgICB9CgogICAg
U2NvcGUgKFxfU0IuUENJMC5HUDE3LlhIQzAuUkhVQi5QUlQzLlBSVDIpCiAgICB7CiAgICAg
ICAgTWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2Fw
YWJpbGl0aWVzCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgw
eDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAw
CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIENvcHlPYmplY3QgKFxYVVBDLCBVUENQKSAv
KiBcX1NCXy5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBSVDMuUFJUMi5fVVBDLlVQQ1AgKi8KICAg
ICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBS
VDMuUFJUMi5fVVBDLlVQQ1AgKi8KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BMRCwg
MCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQog
ICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoUExEUCwgQnVmZmVyICgweDEwKSB7fSkKICAg
ICAgICAgICAgUExEUCA9IFxYUExEIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAg
ICAgICBSZXR1cm4gKFBMRFApIC8qIFxfU0JfLlBDSTAuR1AxNy5YSEMwLlJIVUIuUFJUMy5Q
UlQyLl9QTEQuUExEUCAqLwogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kw
LkdQMTcuWEhDMC5SSFVCLlBSVDQpCiAgICB7CiAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBT
ZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgewog
ICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0pCiAgICAg
ICAgICAgIENvcHlPYmplY3QgKFxYVVBDLCBVUENQKSAvKiBcX1NCXy5QQ0kwLkdQMTcuWEhD
MC5SSFVCLlBSVDQuX1VQQy5VUENQICovCiAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyog
XF9TQl8uUENJMC5HUDE3LlhIQzAuUkhVQi5QUlQ0Ll9VUEMuVVBDUCAqLwogICAgICAgIH0K
CiAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2lj
YWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChQTERQ
LCBCdWZmZXIgKDB4MTApIHt9KQogICAgICAgICAgICBQTERQID0gXFhQTEQgLyogRXh0ZXJu
YWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJ
MC5HUDE3LlhIQzAuUkhVQi5QUlQ0Ll9QTEQuUExEUCAqLwogICAgICAgIH0KICAgIH0KCiAg
ICBTY29wZSAoXF9TQi5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBSVDUpCiAgICB7CiAgICAgICAg
TWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJp
bGl0aWVzCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwCiAg
ICAgICAgICAgIH0pCiAgICAgICAgICAgIENvcHlPYmplY3QgKFxYVVBDLCBVUENQKSAvKiBc
X1NCXy5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBSVDUuX1VQQy5VUENQICovCiAgICAgICAgICAg
IFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5HUDE3LlhIQzAuUkhVQi5QUlQ1Ll9VUEMu
VVBDUCAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVk
KSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgewogICAg
ICAgICAgICBOYW1lIChQTERQLCBCdWZmZXIgKDB4MTApIHt9KQogICAgICAgICAgICBQTERQ
ID0gXFhQTEQgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIFJldHVybiAo
UExEUCkgLyogXF9TQl8uUENJMC5HUDE3LlhIQzAuUkhVQi5QUlQ1Ll9QTEQuUExEUCAqLwog
ICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBS
VDYpCiAgICB7CiAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQ
QzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChV
UENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIENvcHlPYmplY3Qg
KFxVUFJBLCBVUENQKSAvKiBcX1NCXy5QQ0kwLkdQMTcuWEhDMC5SSFVCLlBSVDYuX1VQQy5V
UENQICovCiAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5HUDE3LlhI
QzAuUkhVQi5QUlQ2Ll9VUEMuVVBDUCAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChf
UExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2
aWNlCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChQTERQLCBCdWZmZXIgKDB4MTApIHt9
KQogICAgICAgICAgICBQTERQID0gXFBMUkEgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAg
ICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJMC5HUDE3LlhIQzAuUkhVQi5Q
UlQ2Ll9QTEQuUExEUCAqLwogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kw
LkdQMTcuWEhDMC5SSFVCLlBSVDcpCiAgICB7CiAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBT
ZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgewog
ICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0pCiAgICAg
ICAgICAgIENvcHlPYmplY3QgKFxVUExBLCBVUENQKSAvKiBcX1NCXy5QQ0kwLkdQMTcuWEhD
MC5SSFVCLlBSVDcuX1VQQy5VUENQICovCiAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyog
XF9TQl8uUENJMC5HUDE3LlhIQzAuUkhVQi5QUlQ3Ll9VUEMuVVBDUCAqLwogICAgICAgIH0K
CiAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2lj
YWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChQTERQ
LCBCdWZmZXIgKDB4MTApIHt9KQogICAgICAgICAgICBQTERQID0gXFBMTEEgLyogRXh0ZXJu
YWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJ
MC5HUDE3LlhIQzAuUkhVQi5QUlQ3Ll9QTEQuUExEUCAqLwogICAgICAgIH0KICAgIH0KCiAg
ICBTY29wZSAoXF9TQi5QQ0kwLkdQMTcuWEhDMS5SSFVCLlBSVDEpCiAgICB7CiAgICAgICAg
TWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJp
bGl0aWVzCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwCiAg
ICAgICAgICAgIH0pCiAgICAgICAgICAgIENvcHlPYmplY3QgKFxVUENJLCBVUENQKSAvKiBc
X1NCXy5QQ0kwLkdQMTcuWEhDMS5SSFVCLlBSVDEuX1VQQy5VUENQICovCiAgICAgICAgICAg
IFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5HUDE3LlhIQzEuUkhVQi5QUlQxLl9VUEMu
VVBDUCAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVk
KSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgewogICAg
ICAgICAgICBOYW1lIChQTERQLCBCdWZmZXIgKDB4MTApIHt9KQogICAgICAgICAgICBQTERQ
ID0gXFBMREkgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIFJldHVybiAo
UExEUCkgLyogXF9TQl8uUENJMC5HUDE3LlhIQzEuUkhVQi5QUlQxLl9QTEQuUExEUCAqLwog
ICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkdQMTcuWEhDMS5SSFVCLlBS
VDIpCiAgICB7CiAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQ
QzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChV
UENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIENvcHlPYmplY3Qg
KFxYVVBDLCBVUENQKSAvKiBcX1NCXy5QQ0kwLkdQMTcuWEhDMS5SSFVCLlBSVDIuX1VQQy5V
UENQICovCiAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5HUDE3LlhI
QzEuUkhVQi5QUlQyLl9VUEMuVVBDUCAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChf
UExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2
aWNlCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChQTERQLCBCdWZmZXIgKDB4MTApIHt9
KQogICAgICAgICAgICBQTERQID0gXFhQTEQgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAg
ICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJMC5HUDE3LlhIQzEuUkhVQi5Q
UlQyLl9QTEQuUExEUCAqLwogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kw
LkdQMTkuWEhDMi5SSFVCLlBSVDEpCiAgICB7CiAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBT
ZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgewog
ICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0pCiAgICAg
ICAgICAgIENvcHlPYmplY3QgKFxVUENMLCBVUENQKSAvKiBcX1NCXy5QQ0kwLkdQMTkuWEhD
Mi5SSFVCLlBSVDEuX1VQQy5VUENQICovCiAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyog
XF9TQl8uUENJMC5HUDE5LlhIQzIuUkhVQi5QUlQxLl9VUEMuVVBDUCAqLwogICAgICAgIH0K
CiAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2lj
YWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChQTERQ
LCBCdWZmZXIgKDB4MTApIHt9KQogICAgICAgICAgICBQTERQID0gXFBMREwgLyogRXh0ZXJu
YWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJ
MC5HUDE5LlhIQzIuUkhVQi5QUlQxLl9QTEQuUExEUCAqLwogICAgICAgIH0KICAgIH0KCiAg
ICBTY29wZSAoXF9TQi5QQ0kwLkdQMTkuWEhDMi5SSFVCLlBSVDIpCiAgICB7CiAgICAgICAg
TWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJp
bGl0aWVzCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwCiAg
ICAgICAgICAgIH0pCiAgICAgICAgICAgIENvcHlPYmplY3QgKFxVUENMLCBVUENQKSAvKiBc
X1NCXy5QQ0kwLkdQMTkuWEhDMi5SSFVCLlBSVDIuX1VQQy5VUENQICovCiAgICAgICAgICAg
IFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5HUDE5LlhIQzIuUkhVQi5QUlQyLl9VUEMu
VVBDUCAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVk
KSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgewogICAg
ICAgICAgICBOYW1lIChQTERQLCBCdWZmZXIgKDB4MTApIHt9KQogICAgICAgICAgICBQTERQ
ID0gXFBMREwgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIFJldHVybiAo
UExEUCkgLyogXF9TQl8uUENJMC5HUDE5LlhIQzIuUkhVQi5QUlQyLl9QTEQuUExEUCAqLwog
ICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkdQMTkuWEhDMy5SSFVCLlBS
VDEpCiAgICB7CiAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQ
QzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChV
UENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIENvcHlPYmplY3Qg
KFxVUENMLCBVUENQKSAvKiBcX1NCXy5QQ0kwLkdQMTkuWEhDMy5SSFVCLlBSVDEuX1VQQy5V
UENQICovCiAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5HUDE5LlhI
QzMuUkhVQi5QUlQxLl9VUEMuVVBDUCAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChf
UExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2
aWNlCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChQTERQLCBCdWZmZXIgKDB4MTApIHt9
KQogICAgICAgICAgICBQTERQID0gXFBMREwgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAg
ICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJMC5HUDE5LlhIQzMuUkhVQi5Q
UlQxLl9QTEQuUExEUCAqLwogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kw
LkdQMTkuWEhDMy5SSFVCLlBSVDIpCiAgICB7CiAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBT
ZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgewog
ICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg
ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0pCiAgICAg
ICAgICAgIENvcHlPYmplY3QgKFxVUENMLCBVUENQKSAvKiBcX1NCXy5QQ0kwLkdQMTkuWEhD
My5SSFVCLlBSVDIuX1VQQy5VUENQICovCiAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyog
XF9TQl8uUENJMC5HUDE5LlhIQzMuUkhVQi5QUlQyLl9VUEMuVVBDUCAqLwogICAgICAgIH0K
CiAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2lj
YWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChQTERQ
LCBCdWZmZXIgKDB4MTApIHt9KQogICAgICAgICAgICBQTERQID0gXFBMREwgLyogRXh0ZXJu
YWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJ
MC5HUDE5LlhIQzMuUkhVQi5QUlQyLl9QTEQuUExEUCAqLwogICAgICAgIH0KICAgIH0KCiAg
ICBTY29wZSAoXF9TQi5QQ0kwLkdQMTkuWEhDNC5SSFVCLlBSVDEpCiAgICB7CiAgICAgICAg
TWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJp
bGl0aWVzCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChVUENQLCBQYWNrYWdlICgweDA0
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg
IDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwCiAg
ICAgICAgICAgIH0pCiAgICAgICAgICAgIENvcHlPYmplY3QgKFxVUENMLCBVUENQKSAvKiBc
X1NCXy5QQ0kwLkdQMTkuWEhDNC5SSFVCLlBSVDEuX1VQQy5VUENQICovCiAgICAgICAgICAg
IFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5HUDE5LlhIQzQuUkhVQi5QUlQxLl9VUEMu
VVBDUCAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVk
KSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgewogICAg
ICAgICAgICBOYW1lIChQTERQLCBCdWZmZXIgKDB4MTApIHt9KQogICAgICAgICAgICBQTERQ
ID0gXFBMRDggLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIFJldHVybiAo
UExEUCkgLyogXF9TQl8uUENJMC5HUDE5LlhIQzQuUkhVQi5QUlQxLl9QTEQuUExEUCAqLwog
ICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkdQMTkuWEhDNC5SSFVCLlBS
VDIpCiAgICB7CiAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBTZXJpYWxpemVkKSAgLy8gX1VQ
QzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChV
UENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg
ICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIENvcHlPYmplY3Qg
KFxVUENMLCBVUENQKSAvKiBcX1NCXy5QQ0kwLkdQMTkuWEhDNC5SSFVCLlBSVDIuX1VQQy5V
UENQICovCiAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUENJMC5HUDE5LlhI
QzQuUkhVQi5QUlQyLl9VUEMuVVBDUCAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChf
UExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2
aWNlCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChQTERQLCBCdWZmZXIgKDB4MTApIHt9
KQogICAgICAgICAgICBQTERQID0gXFBMRDggLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAg
ICAgICAgICAgIFJldHVybiAoUExEUCkgLyogXF9TQl8uUENJMC5HUDE5LlhIQzQuUkhVQi5Q
UlQyLl9QTEQuUExEUCAqLwogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kw
LkdQMTcuWEhDMS5SSFVCLlBSVDEpCiAgICB7CiAgICAgICAgRGV2aWNlIChXQ0FNKQogICAg
ICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMSkgIC8vIF9BRFI6IEFkZHJlc3MK
ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTog
U3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChcV0lOOCkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBf
VVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmV0dXJuIChcVVBDSSkgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6
IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBSZXR1cm4gKFxQTERDKSAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAg
ICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkdQMTcuWEhDMS5S
SFVCLlBSVDEpCiAgICB7CiAgICAgICAgRGV2aWNlIChJQ0FNKQogICAgICAgIHsKICAgICAg
ICAgICAgTmFtZSAoX0FEUiwgMHgwMykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg
TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChcV0lOOCkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg
ICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9y
dCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChc
VVBDSSkgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExv
Y2F0aW9uIG9mIERldmljZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4g
KFxQTERDKSAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgfQogICAgICAg
IH0KICAgIH0KfQoK
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt12.dsl"
Content-Disposition: attachment; filename="ssdt12.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MTIuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMEQ5MSAoMzQ3MykKICogICAgIFJldmlzaW9uICAgICAgICAg
MHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweEEwCiAqICAgICBPRU0gSUQgICAgICAg
ICAgICJMRU5PVk8iCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJDUE1HUElPMCIKICogICAg
IE9FTSBSZXZpc2lvbiAgICAgMHgwMDAwMDAwMSAoMSkKICogICAgIENvbXBpbGVyIElEICAg
ICAgIklOVEwiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MjAxODAzMTMgKDUzODQ0NDU2
MykKICovCkRlZmluaXRpb25CbG9jayAoIiIsICJTU0RUIiwgMiwgIkxFTk9WTyIsICJDUE1H
UElPMCIsIDB4MDAwMDAwMDEpCnsKICAgIEV4dGVybmFsIChfU0JfLkdQSU8sIERldmljZU9i
aikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNy5BQ1BfLCBEZXZpY2VPYmopCiAgICBF
eHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTcuQVpBTCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwg
KF9TQl8uUENJMC5HUDE3Lk1QMkMsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBD
STAuR1AxNy5YSEMwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTcu
WEhDMSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUFAyLCBEZXZpY2VP
YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQUDIuV1dBTiwgRGV2aWNlT2JqKQogICAg
RXh0ZXJuYWwgKF9TQl8uUENJMC5HUFA2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NC
Xy5QQ0kwLkdQUDcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuTFBDMC5F
QzBfLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkxQQzAuRUMwXy5BQ0FU
LCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5MUEMwLkVDMF8uQUNJTiwg
TWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5M
UEMwLkVDMF8uQUNPVSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJu
YWwgKF9TQl8uUENJMC5MUEMwLkVDMF8uSFdBSywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKF9TQl8uUENJMC5MUEMwLkVDMF8uTElEQywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt
ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5MUEMwLkVDMF8uTElETywgTWV0aG9kT2Jq
KSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5MUEMwLkVDMF8u
V1dEVCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBXUkIsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMDAwLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoTTAzNywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNDYsIEludE9iaikK
ICAgIEV4dGVybmFsIChNMDQ3LCBJbnRPYmopCiAgICBFeHRlcm5hbCAoTTA1MCwgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKE0wNTEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDUy
LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1MywgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKE0wNTQsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDU1LCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoTTA1NiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTcsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChNMDU4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1
OSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNjIsIERldmljZU9iaikKICAgIEV4dGVy
bmFsIChNMDY4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA2OSwgRGV2aWNlT2JqKQog
ICAgRXh0ZXJuYWwgKE0wNzAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDcxLCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoTTA3MiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0w
NzQsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc1LCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoTTA3NiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzcsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMDc4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3OSwgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wODAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChN
MDgxLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA4MiwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0wODMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDg0LCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4NSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0wODYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDg3LCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTA4OCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0w
ODksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDkwLCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTA5MSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTIsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDkzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTA5NCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTUsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMDk2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTA5NywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTgsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMDk5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwMCwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDEsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMTAyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwMywgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMTA1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwNiwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0xMDcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA4
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwOSwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0xMTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTE1LCBCdWZm
T2JqKQogICAgRXh0ZXJuYWwgKE0xMTYsIEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChN
MTE3LCBCdWZmRmllbGRPYmopCiAgICBFeHRlcm5hbCAoTTExOCwgQnVmZkZpZWxkT2JqKQog
ICAgRXh0ZXJuYWwgKE0xMTksIEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChNMTIwLCBC
dWZmRmllbGRPYmopCiAgICBFeHRlcm5hbCAoTTEyMiwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0xMjcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMTI4LCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTEzMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0x
MzIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTMzLCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTEzNCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzUsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTM2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTIyMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMjEsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMjI2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTIyNywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0yMjksIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMjMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIzMywgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMzUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMjNBLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTI1MSwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0yODAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MjkwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTI5QSwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0zMTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzFDLCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyMCwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0zMjEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzIyLCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTMyMywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0zMjQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI1LCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTMyNiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjcs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI4LCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTMyOSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0zMkEsIERldmljZU9i
aikKICAgIEV4dGVybmFsIChNMzJCLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMzMCwg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0zMzEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMzc4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM3OSwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0zODAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MzgxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4MiwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0zODMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg0LCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4NSwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0zODYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg3LCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTM4OCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0zODksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzkwLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTM5MSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zOTIs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDA0LCBCdWZmT2JqKQogICAgRXh0ZXJu
YWwgKE00MDgsIE11dGV4T2JqKQogICAgRXh0ZXJuYWwgKE00MTQsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNNDQ0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ0OSwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NTMsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNNDU0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1NSwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE00NTYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNNDU3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ2MCwgTWV0aG9kT2JqKSAg
ICAvLyA3IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE00QzAsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNNEYwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTYxMCwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE02MjAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNNjMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTY1MiwgRmllbGRVbml0
T2JqKQoKICAgIFNjb3BlIChcX1NCLkdQSU8pCiAgICB7CiAgICAgICAgTWV0aG9kIChfQUVJ
LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FFSTogQUNQSSBFdmVudCBJbnRlcnJ1cHRzCiAg
ICAgICAgewogICAgICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEdwaW9JbnQgKEVkZ2UsIEFjdGl2ZUhpZ2gs
IEV4Y2x1c2l2ZUFuZFdha2UsIFB1bGxEZWZhdWx0LCAweDEzODgsCiAgICAgICAgICAgICAg
ICAgICAgIlxcX1NCLkdQSU8iLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAg
ICAgICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICBHcGlvSW50IChMZXZlbCwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlQW5kV2Fr
ZSwgUHVsbE5vbmUsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJTyIs
IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICApCiAgICAg
ICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAzRAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEdwaW9JbnQg
KExldmVsLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmVBbmRXYWtlLCBQdWxsTm9uZSwgMHgwMDAw
LAogICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUElPIiwgMHgwMCwgUmVzb3VyY2VDb25z
dW1lciwgLAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7ICAg
Ly8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNFCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFjdGl2ZUhpZ2gs
IEV4Y2x1c2l2ZUFuZFdha2UsIFB1bGxOb25lLCAweDAwMDAsCiAgICAgICAgICAgICAgICAg
ICAgIlxcX1NCLkdQSU8iLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAg
ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwM0EKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICBHcGlvSW50IChMZXZlbCwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlQW5kV2FrZSwg
UHVsbE5vbmUsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJTyIsIDB4
MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAzQgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEdwaW9JbnQgKEVk
Z2UsIEFjdGl2ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgUHVsbE5vbmUsIDB4MDAwMCwKICAg
ICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJTyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIs
ICwKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBp
biBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIEdwaW9JbnQgKEVkZ2UsIEFjdGl2ZUxvdywgRXhjbHVz
aXZlQW5kV2FrZSwgUHVsbE5vbmUsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAiXFxf
U0IuR1BJTyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAg
ICApCiAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDAxMgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IEdwaW9JbnQgKEVkZ2UsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZUFuZFdha2UsIFB1bGxOb25l
LCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQSU8iLCAweDAwLCBSZXNv
dXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg
ICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMkMKICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKEJV
RjEsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
R3Bpb0ludCAoRWRnZSwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlQW5kV2FrZSwgUHVsbERlZmF1
bHQsIDB4MTM4OCwKICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJTyIsIDB4MDAsIFJl
c291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg
ICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEdwaW9JbnQgKExldmVsLCBB
Y3RpdmVIaWdoLCBFeGNsdXNpdmVBbmRXYWtlLCBQdWxsTm9uZSwgMHgwMDAwLAogICAgICAg
ICAgICAgICAgICAgICJcXF9TQi5HUElPIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxp
c3QKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNECiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2
ZUFuZFdha2UsIFB1bGxOb25lLCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgIlxcX1NC
LkdQSU8iLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAg
KQogICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwM0UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBH
cGlvSW50IChMZXZlbCwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlQW5kV2FrZSwgUHVsbE5vbmUs
IDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJTyIsIDB4MDAsIFJlc291
cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg
ICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzQQogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEdwaW9JbnQgKExldmVsLCBBY3Rp
dmVIaWdoLCBFeGNsdXNpdmVBbmRXYWtlLCBQdWxsTm9uZSwgMHgwMDAwLAogICAgICAgICAg
ICAgICAgICAgICJcXF9TQi5HUElPIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAg
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNCCiAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgR3Bpb0ludCAoRWRnZSwgQWN0aXZlTG93LCBFeGNsdXNpdmVBbmRX
YWtlLCBQdWxsTm9uZSwgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUElP
IiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMDEyCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgR3Bpb0lu
dCAoRWRnZSwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlQW5kV2FrZSwgUHVsbE5vbmUsIDB4MDAw
MCwKICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJTyIsIDB4MDAsIFJlc291cmNlQ29u
c3VtZXIsICwKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgeyAg
IC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyQwogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgSWYgKChcX1NCLlBDSTAu
TFBDMC5FQzAuV1dEVCAhPSAweDBGKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
UmV0dXJuIChCVUYwKSAvKiBcX1NCXy5HUElPLl9BRUkuQlVGMCAqLwogICAgICAgICAgICB9
CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJu
IChCVUYxKSAvKiBcX1NCXy5HUElPLl9BRUkuQlVGMSAqLwogICAgICAgICAgICB9CiAgICAg
ICAgfQoKICAgICAgICBNZXRob2QgKF9FVlQsIDEsIFNlcmlhbGl6ZWQpICAvLyBfRVZUOiBF
dmVudAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoSFBEVywgMHg1NSkKICAgICAgICAg
ICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9TQi5HUElPLl9FVlQtU3RhcnQgQ2FzZSAlZFxuIiwg
VG9JbnRlZ2VyIChBcmcwKSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzApKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBDYXNlICgweDAwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIE0wMDAgKDB4MzkwMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBcX1NCLlBD
STAuTFBDMC5FQzAuSFdBSyAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAg
ICAgICAgICBJZiAoKChMb2NhbDAgJiAweDA0KSA9PSAweDA0KSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCAmPSAweEZGRkIKICAgICAg
ICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkhXQUsgPSBMb2NhbDAKICAg
ICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwLkxJRE8gKCkKICAgICAg
ICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MDFGNCkKICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKExvY2FsMCAmIDB4MjApID09IDB4MjAp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww
ICY9IDB4RkZERgogICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAu
SFdBSyA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5F
QzAuTElEQyAoKQogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwMUY0KQogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgoTG9jYWww
ICYgMHg0MCkgPT0gMHg0MCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDAgJj0gMHhGRkJGCiAgICAgICAgICAgICAgICAgICAgICAgIFxf
U0IuUENJMC5MUEMwLkVDMC5IV0FLID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAgICAg
IElmICgoXF9TQi5QQ0kwLkxQQzAuRUMwLkFDQVQgPT0gMHgwMSkpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUEMw
LkVDMC5BQ0lOICgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuQUNPVSAoKQogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE0w
MDAgKDB4MzkwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICY9IDB4RkZFRgog
ICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDMC5FQzAuSFdBSyA9IExvY2Fs
MAogICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAgIE5vdGlmeSAoXFxfU0IuUFdS
QiwgMHg4MClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QV1JCLCAweDgwKSAvLyBTdGF0dXMg
Q2hhbmdlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgQ2FzZSAoMHgwOSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBNMDAwICgweDM5MDkpCiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3Rp
ZnkgKFxcX1NCLlBDSTAuR1BQMiwgMHgwMilcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1BQ
MiwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxf
U0IuUENJMC5HUFAyLldXQU4sIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBDYXNlICgweDEyKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIE0wMDAgKDB4MzkxMikKICAgICAgICAgICAgICAgICAgICBNNDYw
ICgiICAgIE5vdGlmeSAoXFxfU0IuUENJMC5HUFA2LCAweDAyKVxuIiwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxf
U0IuUENJMC5HUFA2LCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgQ2FzZSAoMHgzNikKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBNMDAwICgweDM5MzYpCiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAg
ICBOb3RpZnkgKFxcX1NCLlBDSTAuR1AxNy5NUDJDLCAweDAyKVxuIiwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxf
U0IuUENJMC5HUDE3Lk1QMkMsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAg
ICAgICAgSWYgKChIUERXID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1AxNy5N
UDJDKEhQRFcpOlBXUkIgMHg4MClcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QV1JCLCAweDgw
KSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgzQSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBNMDAwICgweDM5M0EpCiAgICAgICAgICAgICAgICAgICAgTTQ2
MCAoIiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1AxNy5YSEMwLCAweDAyKVxuIiwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBOb3Rp
ZnkgKFxfU0IuUENJMC5HUDE3LlhIQzAsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICBDYXNlICgweDNCKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIE0wMDAgKDB4MzkzQikKICAgICAgICAgICAgICAgICAg
ICBNNDYwICgiICAgIE5vdGlmeSAoXFxfU0IuUENJMC5HUDE3LlhIQzEsIDB4MDIpXG4iLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAg
IE5vdGlmeSAoXF9TQi5QQ0kwLkdQMTcuWEhDMSwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENhc2UgKDB4M0QpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTAwMCAoMHgzOTNEKQogICAgICAgICAgICAg
ICAgICAgIE00NjAgKCIgICAgTm90aWZ5IChcXF9TQi5QQ0kwLkdQMTcuQVpBTCwgMHgwMilc
biIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1AxNy5BWkFMLCAweDAyKSAvLyBEZXZpY2UgV2Fr
ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgzRSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNMDAwICgweDM5M0QpCiAgICAgICAg
ICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1AxNy5BQ1AsIDB4
MDIpXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAg
ICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLkdQMTcuQUNQLCAweDAyKSAvLyBEZXZpY2Ug
V2FrZQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2
MCAoIiAgT0VNLUFTTC1cXF9TQi5HUElPLl9FVlQtRW5kIENhc2UgJWRcbiIsIFRvSW50ZWdl
ciAoQXJnMCksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgfQogICAg
fQp9Cgo=
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt13.dsl"
Content-Disposition: attachment; filename="ssdt13.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MTMuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMkM4MSAoMTEzOTMpCiAqICAgICBSZXZpc2lvbiAgICAgICAg
IDB4MDIKICogICAgIENoZWNrc3VtICAgICAgICAgMHhBMwogKiAgICAgT0VNIElEICAgICAg
ICAgICAiTEVOT1ZPIgogKiAgICAgT0VNIFRhYmxlIElEICAgICAiQ0RGQUFJRzIiCiAqICAg
ICBPRU0gUmV2aXNpb24gICAgIDB4MDAwMDAwMDEgKDEpCiAqICAgICBDb21waWxlciBJRCAg
ICAgICJJTlRMIgogKiAgICAgQ29tcGlsZXIgVmVyc2lvbiAweDIwMTgwMzEzICg1Mzg0NDQ1
NjMpCiAqLwpEZWZpbml0aW9uQmxvY2sgKCIiLCAiU1NEVCIsIDIsICJMRU5PVk8iLCAiQ0RG
QUFJRzIiLCAweDAwMDAwMDAxKQp7CiAgICBFeHRlcm5hbCAoX1NCXy5BTElCLCBNZXRob2RP
YmopICAgIC8vIDIgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5MSURfLl9MSUQsIE1l
dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLk1BQ08sIElu
dE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNy5WR0FfLCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkxQQzAuRUMwXy5CQkxTLCBVbmtub3duT2JqKQogICAg
RXh0ZXJuYWwgKE0wMDAsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVy
bmFsIChNMDEyLCBNZXRob2RPYmopICAgIC8vIDUgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAo
TTAxOSwgTWV0aG9kT2JqKSAgICAvLyA0IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0wMjAs
IE1ldGhvZE9iaikgICAgLy8gNSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMDIxLCBNZXRo
b2RPYmopICAgIC8vIDQgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTAyMywgTWV0aG9kT2Jq
KSAgICAvLyAzIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0wMjQsIE1ldGhvZE9iaikgICAg
Ly8gMyBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMDI1LCBNZXRob2RPYmopICAgIC8vIDQg
QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTAyNiwgTWV0aG9kT2JqKSAgICAvLyAzIEFyZ3Vt
ZW50cwogICAgRXh0ZXJuYWwgKE0wMzcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDQz
LCBNZXRob2RPYmopICAgIC8vIDMgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTA0NiwgSW50
T2JqKQogICAgRXh0ZXJuYWwgKE0wNDcsIEludE9iaikKICAgIEV4dGVybmFsIChNMDQ5LCBN
ZXRob2RPYmopICAgIC8vIDIgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTA0QSwgTWV0aG9k
T2JqKSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0wNEIsIE1ldGhvZE9iaikg
ICAgLy8gMiBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMDUwLCBEZXZpY2VPYmopCiAgICBF
eHRlcm5hbCAoTTA1MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTIsIERldmljZU9i
aikKICAgIEV4dGVybmFsIChNMDUzLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1NCwg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTUsIERldmljZU9iaikKICAgIEV4dGVybmFs
IChNMDU2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1NywgRGV2aWNlT2JqKQogICAg
RXh0ZXJuYWwgKE0wNTgsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDU5LCBEZXZpY2VP
YmopCiAgICBFeHRlcm5hbCAoTTA2MiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNjgs
IERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDY5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5h
bCAoTTA3MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzEsIERldmljZU9iaikKICAg
IEV4dGVybmFsIChNMDcyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NCwgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKE0wNzUsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc2
LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NywgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKE0wNzgsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc5LCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoTTA4MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wODEsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChNMDgyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTA4MywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODQsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMDg1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4Niwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODcsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMDg4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4OSwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMDkxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MiwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0wOTMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk0
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5NSwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0wOTYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk3LCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5OCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0wOTksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAwLCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTEwMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0x
MDIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAzLCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTEwNCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDUsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTEwNywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDgsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMTA5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTExMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMTEsIE1ldGhvZE9iaikgICAg
Ly8gMiBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMTEyLCBNZXRob2RPYmopICAgIC8vIDIg
QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTExMywgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3Vt
ZW50cwogICAgRXh0ZXJuYWwgKE0xMTUsIEJ1ZmZPYmopCiAgICBFeHRlcm5hbCAoTTExNiwg
QnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMTcsIEJ1ZmZGaWVsZE9iaikKICAgIEV4
dGVybmFsIChNMTE4LCBCdWZmRmllbGRPYmopCiAgICBFeHRlcm5hbCAoTTExOSwgQnVmZkZp
ZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMjAsIEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFs
IChNMTIyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEyNywgRGV2aWNlT2JqKQog
ICAgRXh0ZXJuYWwgKE0xMjgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTMxLCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzMiwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0xMzMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTM0LCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTEzNSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0xMzYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjIwLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTIyMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMjYs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjI3LCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoTTIyOSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMzEsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMjMyLCBNZXRob2RPYmopICAgIC8vIDMgQXJndW1lbnRz
CiAgICBFeHRlcm5hbCAoTTIzMywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMzUs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjNBLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTI1MSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yODAsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMjkwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTI5QSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMTAsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMzFDLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMy
MCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjEsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMzIyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyMywgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMzI1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyNiwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0zMjcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MzI4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyOSwgRGV2aWNlT2JqKQogICAg
RXh0ZXJuYWwgKE0zMkEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMzJCLCBEZXZpY2VP
YmopCiAgICBFeHRlcm5hbCAoTTMzMCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0zMzEs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzc4LCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTM3OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODAsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzgxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTM4MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODMsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMzg0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4
NSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODYsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMzg3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4OCwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMzkwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM5MSwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0zOTIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
NDA0LCBCdWZmT2JqKQogICAgRXh0ZXJuYWwgKE00MDgsIE11dGV4T2JqKQogICAgRXh0ZXJu
YWwgKE00MTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDQ0LCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTQ0OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00
NTMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU0LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTQ1NSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NTYsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTQ2MCwgTWV0aG9kT2JqKSAgICAvLyA3IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwg
KE00QzAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNEYwLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTYxMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE02MjAs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNjMxLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTY1MiwgRmllbGRVbml0T2JqKQoKICAgIFNjb3BlIChcX1NCLlBDSTAuR1Ax
Ny5WR0EpCiAgICB7CiAgICAgICAgTmFtZSAoTTE4OSwgQnVmZmVyICgweDAxMDApIHt9KQog
ICAgICAgIE5hbWUgKE0xOTAsIDB4RkZGRkZGRkYpCiAgICAgICAgTmFtZSAoTTE5MSwgMHhG
RkZGRkZGRikKICAgICAgICBNZXRob2QgKEFUUFgsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAg
ewogICAgICAgICAgICBNNDYwICgiICBGRUEtQVNMLUFUUFggRnVuY3Rpb24gJWRcbiIsIEFy
ZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmICgoQXJn
MCA9PSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChQWDAw
ICgpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMSkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFgwMSAoKSkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDIpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBQWDAyIChEZXJlZk9mIChBcmcxIFsweDAyXSkpCiAgICAgICAgICAg
ICAgICBSZXR1cm4gKE0xODkpIC8qIFxfU0JfLlBDSTAuR1AxNy5WR0FfLk0xODkgKi8KICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDMpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBQWDAzIChEZXJlZk9mIChBcmcxIFsweDAyXSkpCiAgICAg
ICAgICAgICAgICBSZXR1cm4gKE0xODkpIC8qIFxfU0JfLlBDSTAuR1AxNy5WR0FfLk0xODkg
Ki8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDQpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBQWDA0IChEZXJlZk9mIChBcmcxIFsweDAyXSkp
CiAgICAgICAgICAgICAgICBSZXR1cm4gKE0xODkpIC8qIFxfU0JfLlBDSTAuR1AxNy5WR0Ff
Lk0xODkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDgp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBYMDggKCkpCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA5KSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgUmV0dXJuIChQWDA5ICgpKQogICAgICAgICAgICB9CgogICAg
ICAgICAgICBJZiAoKEFyZzAgPT0gMHgwQSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFBYMTAgKERlcmVmT2YgKEFyZzEgWzB4MDJdKSkKICAgICAgICAgICAgICAgIFJldHVy
biAoTTE4OSkgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uTTE4OSAqLwogICAgICAgICAgICB9
CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwQikpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFBYMTEgKERlcmVmT2YgKEFyZzEgWzB4MDJdKSkKICAgICAgICAgICAgICAg
IFJldHVybiAoTTE4OSkgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uTTE4OSAqLwogICAgICAg
ICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwQykpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIFBYMTIgKERlcmVmT2YgKEFyZzEgWzB4MDJdKSkKICAgICAgICAg
ICAgICAgIFJldHVybiAoTTE4OSkgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uTTE4OSAqLwog
ICAgICAgICAgICB9CgogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKE0xODksIDB4MDAs
IE0xNTcpCiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoTTE4OSwgMHgwMiwgTTE1OCkK
ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTTE4OSwgMHgwNCwgTTE2MCkKICAgICAg
ICAgICAgTTE1NyA9IDB4MDAKICAgICAgICAgICAgTTE1OCA9IDB4MDAKICAgICAgICAgICAg
TTE2MCA9IDB4MDAKICAgICAgICAgICAgUmV0dXJuIChNMTg5KSAvKiBcX1NCXy5QQ0kwLkdQ
MTcuVkdBXy5NMTg5ICovCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBYMDAsIDAsIE5v
dFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKE0x
ODksIDB4MDAsIE0xNTcpCiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoTTE4OSwgMHgw
MiwgTTE1OCkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTTE4OSwgMHgwNCwgTTE2
MCkKICAgICAgICAgICAgTTE1NyA9IDB4MDgKICAgICAgICAgICAgTTE1OCA9IDB4MDEKICAg
ICAgICAgICAgTTE2MCA9IE0wOTggLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAg
ICAgIElmICgoKE0wOTggJiAweDAyKSA9PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTG9jYWw1ID0gMHg3RkZGRkZGRgogICAgICAgICAgICAgICAgTG9jYWw1IHw9
IDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIExvY2FsMCA9IE0wMTkgKE0wOTUsIE0wOTQs
IE0wOTMsIDB4MkMpCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBNMDE5IChNMDk1LCBNMDk0
LCAoTTA5MyArIDB4MDEpLCAweDJDKQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgIT0g
TG9jYWw1KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNMTkwID0g
TG9jYWwwCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEg
IT0gTG9jYWw1KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNMTkx
ID0gTG9jYWwxCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE00NjAgKCIgICAgUmV0dXJuIFN1cHBvcnRlZCBGdW5jdGlvbnMgQml0IFZlY3RvciA9IDB4
JVhcbiIsIE0xNjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAg
IFJldHVybiAoTTE4OSkgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uTTE4OSAqLwogICAgICAg
IH0KCiAgICAgICAgTWV0aG9kIChQWDAxLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsK
ICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChNMTg5LCAweDAwLCBNMTU3KQogICAgICAg
ICAgICBDcmVhdGVEV29yZEZpZWxkIChNMTg5LCAweDAyLCBNMTYxKQogICAgICAgICAgICBD
cmVhdGVEV29yZEZpZWxkIChNMTg5LCAweDA2LCBNMTYyKQogICAgICAgICAgICBNMTU3ID0g
MHgwQQogICAgICAgICAgICBNMTYxID0gMHgwMDBDNDgwMAogICAgICAgICAgICBNMTYyID0g
TTA5OSAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgTTQ2MCAoIiAgICBS
ZXR1cm4gVmFsaWQgRmxhZ3MgTWFzayA9IDB4JVggIEZsYWdzID0gMHglWFxuIiwgTTE2MSwg
TTE2MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChNMTg5
KSAvKiBcX1NCXy5QQ0kwLkdQMTcuVkdBXy5NMTg5ICovCiAgICAgICAgfQoKICAgICAgICBN
ZXRob2QgKFBYMDIsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBD
cmVhdGVXb3JkRmllbGQgKE0xODksIDB4MDAsIE0xNTcpCiAgICAgICAgICAgIENyZWF0ZUJ5
dGVGaWVsZCAoTTE4OSwgMHgwMiwgTTE5MikKICAgICAgICAgICAgTTE1NyA9IDB4MDMKICAg
ICAgICAgICAgTTE5MiA9IChBcmcwICYgMHgwMSkKICAgICAgICAgICAgTG9jYWw3ID0gQnVm
ZmVyICgweDA1KSB7fQogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKExvY2FsNywgMHgw
MCwgTTE5NykKICAgICAgICAgICAgQ3JlYXRlRmllbGQgKExvY2FsNywgMHgxMCwgMHgwMywg
TTIwMCkKICAgICAgICAgICAgQ3JlYXRlRmllbGQgKExvY2FsNywgMHgxMywgMHgwNSwgTTE5
OSkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChMb2NhbDcsIDB4MDMsIE0xOTgpCiAg
ICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWw3LCAweDA0LCBNMjAxKQogICAgICAg
ICAgICBNMTk3ID0gMHgwNQogICAgICAgICAgICBNMTk4ID0gMHgwMAogICAgICAgICAgICBN
MTk5ID0gTTA5MSAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgTTIwMCA9
IE0wOTAgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIE5hbWUgKEhQT0ss
IDB4MDApCiAgICAgICAgICAgIExvY2FsMCA9IE0wNDkgKE0xMzMsIDB4MTEpCiAgICAgICAg
ICAgIExvY2FsNiA9IE0xMTMgKExvY2FsMCkKICAgICAgICAgICAgTTAyMyAoMHgwMCwgTTA5
MSwgTTA5MCkKICAgICAgICAgICAgSWYgKChNMTkyICYmIExvY2FsNikpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIE0wMDAgKDB4MEQ4NikKICAgICAgICAgICAgICAgIE0xMTIg
KExvY2FsMCwgMHgwMCkKICAgICAgICAgICAgICAgIE0xMTEgKExvY2FsMCwgMHgwMSkKICAg
ICAgICAgICAgICAgIFNsZWVwICgweDIwKQogICAgICAgICAgICAgICAgTTExMiAoTG9jYWww
LCAweDAyKQogICAgICAgICAgICAgICAgTTExMiAoTG9jYWwwLCAweDAxKQogICAgICAgICAg
ICAgICAgTTAwMCAoMHgwRDg3KQogICAgICAgICAgICAgICAgSFBPSyA9IDB4MDAKICAgICAg
ICAgICAgICAgIFNsZWVwICgweDE0KQogICAgICAgICAgICAgICAgTTIwMSA9IDB4MDEKICAg
ICAgICAgICAgICAgIExvY2FsNiA9IFxfU0IuQUxJQiAoMHgwNiwgTG9jYWw3KQogICAgICAg
ICAgICAgICAgTG9jYWwyID0gMHgwMAogICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDIg
PCAweDBGKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNMDIzICgw
eDAwLCBNMDkxLCBNMDkwKQogICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IDB4MDEKICAg
ICAgICAgICAgICAgICAgICBMb2NhbDUgPSAweEM4CiAgICAgICAgICAgICAgICAgICAgV2hp
bGUgKChMb2NhbDQgJiYgTG9jYWw1KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IE0wMjEgKDB4MDAsIE0wOTEsIE0wOTAsIDB4QTUp
CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCAmPSAweDdGCiAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoKExvY2FsMCA+PSAweDEwKSAmJiAoTG9jYWwwICE9IDB4N0YpKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWw0ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU2xlZXAgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDUtLQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoIUxvY2FsNCkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IE0wMjQgKDB4MDAsIE0w
OTEsIE0wOTApCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMb2NhbDUpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0wMjYgKDB4
MDAsIE0wOTEsIE0wOTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgw
NSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMisrCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAw
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE0wMjUgKDB4MDAsIE0wOTEsIE0w
OTAsIDB4MDApID09IE9uZXMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDEKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTG9j
YWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE0xMTEgKE0wNDkgKE0xMzMsIDB4MTcpLCAweDAxKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE0xMTEgKE0wNDkgKE0xMzMsIDB4MTgpLCAweDAxKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhQT0sgPSAweDAxCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgxMAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhQ
T0sgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgx
MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4
MTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgSWYgKCFIUE9LKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IE0wMDAgKDB4MEQ4OCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBNMDE5IChNMDk1
LCBNMDk0LCBNMDkzLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDBBKQog
ICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IDB4MDEKICAgICAgICAgICAgICAgICAgICBM
b2NhbDUgPSAweDA1CiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDQgJiYgTG9j
YWw1KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9IE0wMjEgKDB4MDAsIE0wOTEsIE0wOTAsIDB4QTUpCiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMCAmPSAweDdGCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExv
Y2FsMCA8PSAweDA0KSB8fCAoTG9jYWwwID09IDB4MUYpKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw0ID0gMHgwMAogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWwwID0gTTAxOSAoTTA5NSwgTTA5NCwgTTA5MywgMHgwMCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNsZWVwICgweDA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWw1LS0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgTTIwMSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBc
X1NCLkFMSUIgKDB4MDYsIExvY2FsNykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBJZiAoKE0wOTcgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTG9jYWwwID0gTTAxOSAoMHgwMCwgTTA5MSwgTTA5MCwgMHg1NCkKICAgICAg
ICAgICAgICAgICAgICBNMDIwICgweDAwLCBNMDkxLCBNMDkwLCAweDU0LCAoTG9jYWwwICYg
MHhGRkZGN0ZGQykpCiAgICAgICAgICAgICAgICAgICAgTTIzMiAoTTA5NywgMHgwMCwgMHgx
MCkKICAgICAgICAgICAgICAgICAgICBNMDIwICgweDAwLCBNMDkxLCBNMDkwLCAweDU0LCAo
TG9jYWwwICYgMHhGRkZGN0ZGRikpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgTTAwMCAoMHgwRDg5KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTTAwMCAoMHgwRDhBKQogICAgICAgICAgICAgICAg
TTIwMSA9IDB4MDAKICAgICAgICAgICAgICAgIFxfU0IuQUxJQiAoMHgwNiwgTG9jYWw3KQog
ICAgICAgICAgICAgICAgTTAwMCAoMHgwRDhCKQogICAgICAgICAgICAgICAgTTExMSAoTTA0
OSAoTTEzMywgMHgxNyksIDB4MDApCiAgICAgICAgICAgICAgICBNMTExIChNMDQ5IChNMTMz
LCAweDE4KSwgMHgwMCkKICAgICAgICAgICAgICAgIE0xMTIgKExvY2FsMCwgMHgwMCkKICAg
ICAgICAgICAgICAgIFNsZWVwICgweDBBKQogICAgICAgICAgICAgICAgTTExMSAoTG9jYWww
LCAweDAwKQogICAgICAgICAgICAgICAgTTAyMyAoMHgwMCwgTTA5MSwgTTA5MCkKICAgICAg
ICAgICAgICAgIExvY2FsMSA9IE0wMTkgKE0wOTUsIE0wOTQsIE0wOTMsIDB4MDApCiAgICAg
ICAgICAgICAgICBTbGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgIExvY2FsNCA9IDB4MDEK
ICAgICAgICAgICAgICAgIExvY2FsNSA9IDB4MDUKICAgICAgICAgICAgICAgIFdoaWxlICgo
TG9jYWw0ICYmIExvY2FsNSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gTTAyMSAoMHgwMCwgTTA5MSwgTTA5MCwgMHhBNSkKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDAgJj0gMHg3RgogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2Fs
MCA8PSAweDA0KSB8fCAoTG9jYWwwID09IDB4MUYpKSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gTTAxOSAoTTA5NSwgTTA5NCwgTTA5
MywgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MDUpCiAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsNS0tCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEhQT0sgPSAweDAyCiAgICAgICAgICAgICAg
ICBNMDAwICgweDBEOEMpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChIUE9LKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDUgPSAweDdGRkZGRkZGCiAgICAg
ICAgICAgICAgICBMb2NhbDUgfD0gMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgTG9jYWwx
ID0gTTAxOSAoMHgwMCwgTTA5MSwgTTA5MCwgMHg1NCkKICAgICAgICAgICAgICAgIE0wMjAg
KDB4MDAsIE0wOTEsIE0wOTAsIDB4NTQsIChMb2NhbDEgJiAweEZGRkY3RkZDKSkKICAgICAg
ICAgICAgICAgIExvY2FsMCA9IE0wMTkgKE0wOTUsIE0wOTQsIE0wOTMsIDB4MDApCiAgICAg
ICAgICAgICAgICBJZiAoKChIUE9LID09IDB4MDEpICYmIChMb2NhbDAgIT0gTG9jYWw1KSkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTAyMCAoTTA5NSwgTTA5
NCwgTTA5MywgMHg0QywgTTE5MCkKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwQSkK
ICAgICAgICAgICAgICAgICAgICBJZiAoKE0xOTEgIT0gTG9jYWw1KSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE0wMjAgKE0wOTUsIE0wOTQsIChN
MDkzICsgMHgwMSksIDB4NEMsIE0xOTEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICBTbGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBNMDIwICgweDAwLCBNMDkxLCBNMDkwLCAweDU0LCAoTG9jYWwxICYgMHhGRkZG
N0ZGRikpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoUFgwMywg
MSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs
ZCAoTTE4OSwgMHgwMCwgTTE1NykKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChNMTg5
LCAweDAyLCBNMTk1KQogICAgICAgICAgICBNMTU3ID0gMHgwNAogICAgICAgICAgICBNMTk1
ID0gKEFyZzAgJiAweDAxKQogICAgICAgICAgICBJZiAoTTE5NSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTTExMSAoTTA0OSAoTTEzMywgMHgxNyksIDB4MDEpCiAgICAgICAg
ICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBN
MTExIChNMDQ5IChNMTMzLCAweDE3KSwgMHgwMCkKICAgICAgICAgICAgfQogICAgICAgIH0K
CiAgICAgICAgTWV0aG9kIChQWDA0LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAg
ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChNMTg5LCAweDAwLCBNMTU3KQogICAgICAgICAg
ICBDcmVhdGVXb3JkRmllbGQgKE0xODksIDB4MDIsIE0xOTYpCiAgICAgICAgICAgIE0xNTcg
PSAweDA0CiAgICAgICAgICAgIE0xOTYgPSAoQXJnMCAmIDB4MDEpCiAgICAgICAgICAgIElm
IChNMTk2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNMTExIChNMDQ5IChNMTMz
LCAweDE4KSwgMHgwMSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIE0xMTEgKE0wNDkgKE0xMzMsIDB4MTgpLCAweDAwKQog
ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBYMDgsIDAsIE5vdFNl
cmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKE0xODks
IDB4MDAsIE0xOTMpCiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoTTE4OSwgMHgwMiwg
TTE1NykKICAgICAgICAgICAgTG9jYWwwID0gTTA0OSAoTTEzMywgMHgxOSkKICAgICAgICAg
ICAgTTE5MyA9IExvY2FsMAogICAgICAgICAgICBNMTU3ID0gMHgwNQogICAgICAgICAgICBM
b2NhbDAgKj0gTTE1NyAvKiBcX1NCXy5QQ0kwLkdQMTcuVkdBXy5QWDA4Lk0xNTcgKi8KICAg
ICAgICAgICAgTG9jYWwxID0gMHgwMAogICAgICAgICAgICBXaGlsZSAoKExvY2FsMSA8IExv
Y2FsMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMiA9IE0wNDkgKE0x
MzMsICgweDFBICsgTG9jYWwxKSkKICAgICAgICAgICAgICAgIE0xODkgWygweDA0ICsgTG9j
YWwxKV0gPSBMb2NhbDIKICAgICAgICAgICAgICAgIExvY2FsMSsrCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIFJldHVybiAoTTE4OSkgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uTTE4
OSAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQWDA5LCAwLCBOb3RTZXJpYWxpemVk
KQogICAgICAgIHsKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChNMTg5LCAweDAwLCBN
MTkzKQogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKE0xODksIDB4MDIsIE0xNTcpCiAg
ICAgICAgICAgIExvY2FsMCA9IE0wNDkgKE0xMzMsIDB4N0UpCiAgICAgICAgICAgIE0xOTMg
PSBMb2NhbDAKICAgICAgICAgICAgTTE1NyA9IDB4MDMKICAgICAgICAgICAgTG9jYWwwICo9
IE0xNTcgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uUFgwOS5NMTU3ICovCiAgICAgICAgICAg
IExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgV2hpbGUgKChMb2NhbDEgPCBMb2NhbDApKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDIgPSBNMDQ5IChNMTMzLCAoMHg3
RiArIExvY2FsMSkpCiAgICAgICAgICAgICAgICBNMTg5IFsoMHgwNCArIExvY2FsMSldID0g
TG9jYWwyCiAgICAgICAgICAgICAgICBMb2NhbDErKwogICAgICAgICAgICB9CgogICAgICAg
ICAgICBSZXR1cm4gKE0xODkpIC8qIFxfU0JfLlBDSTAuR1AxNy5WR0FfLk0xODkgKi8KICAg
ICAgICB9CgogICAgICAgIE1ldGhvZCAoUFgxMCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAg
ICB7CiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoTTE4OSwgMHgwMCwgTTE1NykKICAg
ICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChNMTg5LCAweDAyLCBNMTkyKQogICAgICAgICAg
ICBNMTU3ID0gMHgwMwogICAgICAgICAgICBNMTkyID0gKEFyZzAgJiAweDAxKQogICAgICAg
ICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLk1BQ08pKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBcX1NCLk1BQ08gPSAoQXJnMCAmIDB4MDEpCiAgICAgICAgICAgICAgICBNNDYw
ICgiICAgIFNldCBfU0IuTUFDTyB0byAlZFxuIiwgQXJnMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQ
WDExLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQ3JlYXRlV29y
ZEZpZWxkIChNMTg5LCAweDAwLCBNMTU3KQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQg
KE0xODksIDB4MDIsIE0xNjIpCiAgICAgICAgICAgIE0xNTcgPSAweDAzCiAgICAgICAgICAg
IE0xNjIgPSAoQXJnMCAmIDB4MDEpCiAgICAgICAgICAgIExvY2FsMiA9IE0xNjIgLyogXF9T
Ql8uUENJMC5HUDE3LlZHQV8uUFgxMS5NMTYyICovCiAgICAgICAgICAgIExvY2FsMCA9IE0x
MzEgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgIElmIChMb2NhbDApCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IE0wNDkgKE0xMzEsIDB4MTAp
CiAgICAgICAgICAgICAgICBMb2NhbDEgPSBNMDQ5IChNMTMxLCAweDExKQogICAgICAgICAg
ICAgICAgTG9jYWwxID0gKE0wODQgKyAoKExvY2FsMCAqIDB4MDEwMCkgKyBMb2NhbDEpKQog
ICAgICAgICAgICAgICAgTTAxMiAoTG9jYWwxLCAweDBFLCAweDAwLCAweDAxLCBMb2NhbDIp
CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoUFgxMiwgMSwgTm90
U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoTTE4
OSwgMHgwMCwgTTE1NykKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChNMTg5LCAweDAy
LCBNMTYyKQogICAgICAgICAgICBNMTU3ID0gMHgwMwogICAgICAgICAgICBMb2NhbDAgPSBN
MDQ5IChNMTMzLCAweDE3KQogICAgICAgICAgICBJZiAoKExvY2FsMCAhPSAweDAwKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTTExMSAoTG9jYWwwLCAoQXJnMCAmIDB4MDEp
KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICAgIFNldCBEaXNwbGF5IFBh
bmVsIFJlc2V0IHRvICVkXG4iLCBBcmcwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgIH0KCiAgICAgICAgTmFtZSAoQVRJQiwgQnVmZmVyICgweDAxMDApIHt9KQog
ICAgICAgIE5hbWUgKE0yOTEsIDB4ODEpCiAgICAgICAgTWV0aG9kIChBVElGLCAyLCBTZXJp
YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgRkVBLUFTTC1BVElGIEZ1
bmN0aW9uICVkXG4iLCBBcmcwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJldHVybiAoQUYwMCAoKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChB
cmcwID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEFG
MDEgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAyKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChBRjAyICgpKQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMykpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIFJldHVybiAoQUYwMyAoRGVyZWZPZiAoQXJnMSBbMHgwMl0pLCBE
ZXJlZk9mIChBcmcxIFsweDA0XSkpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAo
KEFyZzAgPT0gMHgwNCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAo
QUYwNCAoKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MEYp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEFGMTUgKCkpCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDEwKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgUmV0dXJuIChBRjE2IChEZXJlZk9mIChBcmcxIFsweDAyXSkp
KQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgxNSkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoQUYyMSAoKSkKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MTYpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXR1cm4gKEFGMjIgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IElmICgoQXJnMCA9PSAweDE3KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0
dXJuIChBRjIzICgpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0g
MHgxOCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoQUYyNCAoKSkK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBVElCLCAweDAw
LCBNMTU3KQogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFUSUIsIDB4MDIsIE0xNTgp
CiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFUSUIsIDB4MDQsIE0xNTkpCiAgICAg
ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFUSUIsIDB4MDgsIE0xNjApCiAgICAgICAgICAg
IE0xNTcgPSAweDAwCiAgICAgICAgICAgIE0xNTggPSAweDAwCiAgICAgICAgICAgIE0xNTkg
PSAweDAwCiAgICAgICAgICAgIE0xNjAgPSAweDAwCiAgICAgICAgICAgIFJldHVybiAoQVRJ
QikgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uQVRJQiAqLwogICAgICAgIH0KCiAgICAgICAg
TWV0aG9kIChBRjAwLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg
Q3JlYXRlV29yZEZpZWxkIChBVElCLCAweDAwLCBNMTU3KQogICAgICAgICAgICBDcmVhdGVX
b3JkRmllbGQgKEFUSUIsIDB4MDIsIE0xNTgpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmll
bGQgKEFUSUIsIDB4MDQsIE0xNTkpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFU
SUIsIDB4MDgsIE0xNjApCiAgICAgICAgICAgIE0xNTcgPSAweDBDCiAgICAgICAgICAgIE0x
NTggPSAweDAxCiAgICAgICAgICAgIE0xNTkgPSBNMTAxIC8qIEV4dGVybmFsIHJlZmVyZW5j
ZSAqLwogICAgICAgICAgICBJZiAoIUNvbmRSZWZPZiAoXF9TQi5MSUQuX0xJRCkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE0xMDIgJj0gMHhGRkZGRkZGNwogICAgICAgICAg
ICB9CgogICAgICAgICAgICBNMTYwID0gTTEwMiAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8K
ICAgICAgICAgICAgTTQ2MCAoIiAgICBSZXR1cm4gU3VwcG9ydGVkIE5vdGlmaWNhdGlvbnMg
TWFzayA9IDB4JVggIFN1cHBvcnRlZCBGdW5jdGlvbnMgQml0IFZlY3RvciA9IDB4JVhcbiIs
IE0xNTksIE0xNjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFxfU0Iu
UENJMC5MUEMwLkVDMC5CQkxTID0gMHgwMQogICAgICAgICAgICBSZXR1cm4gKEFUSUIpIC8q
IFxfU0JfLlBDSTAuR1AxNy5WR0FfLkFUSUIgKi8KICAgICAgICB9CgogICAgICAgIE1ldGhv
ZCAoQUYwMSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIENyZWF0
ZVdvcmRGaWVsZCAoQVRJQiwgMHgwMCwgTTE1NykKICAgICAgICAgICAgQ3JlYXRlRFdvcmRG
aWVsZCAoQVRJQiwgMHgwMiwgTTE2MSkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo
QVRJQiwgMHgwNiwgTTE2MikKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBVElCLCAw
eDBBLCBNMTYzKQogICAgICAgICAgICBNMTYxID0gMHgwMwogICAgICAgICAgICBMb2NhbDAg
PSAoKE0xMDMgPj4gMHgxOCkgJiAweEZGKQogICAgICAgICAgICBMb2NhbDEgPSAoTTEwMyAm
IDB4MDMpCiAgICAgICAgICAgIE0xNjIgPSBMb2NhbDEKICAgICAgICAgICAgSWYgKCgoTG9j
YWwwID49IDB4RDApICYmIChMb2NhbDAgPD0gMHhEOSkpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBNMTU3ID0gMHgwQgogICAgICAgICAgICAgICAgTTE2MyA9IExvY2FsMAog
ICAgICAgICAgICAgICAgTTI5MSA9IExvY2FsMAogICAgICAgICAgICB9CiAgICAgICAgICAg
IEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTE1NyA9IDB4MEEKICAgICAg
ICAgICAgICAgIElmICgoTTI5MSAhPSAweDgxKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBNMjkxID0gMHg4MQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBNNDYwICgiICAgIFJldHVybiBGbGFncyA9IDB4JVggIE5vdGlm
eSBDb21tYW5kIENvZGUgPSAweCVYXG4iLCBNMTYyLCBNMjkxLCAweDAwLCAweDAwLCAweDAw
LCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKEFUSUIpIC8qIFxfU0JfLlBDSTAuR1AxNy5W
R0FfLkFUSUIgKi8KICAgICAgICB9CgogICAgICAgIE5hbWUgKE0xNjQsIEJ1ZmZlciAoMHgw
NCkKICAgICAgICB7CiAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAgICAgIH0pCiAgICAgICAgTmFtZSAo
TTIxMCwgMHgwMCkKICAgICAgICBOYW1lIChNMjExLCAweDAwKQogICAgICAgIE5hbWUgKE0y
MTIsIDB4MDApCiAgICAgICAgTmFtZSAoTTIxMywgMHgwMCkKICAgICAgICBOYW1lIChNMjE0
LCAweDAwKQogICAgICAgIE5hbWUgKE0yMTUsIDB4MDApCiAgICAgICAgTmFtZSAoTTMwMywg
MHgwMCkKICAgICAgICBOYW1lIChNMzA0LCAweDAwKQogICAgICAgIE5hbWUgKFNTRE0sIDB4
MEEpCiAgICAgICAgTmFtZSAoU0NEWSwgMHgwMCkKICAgICAgICBNZXRob2QgKEFGMDIsIDAs
IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAo
TTE2NCwgMHgwMCwgTTE2NSkKICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE0xNjQsIDB4
MDEsIE0xNjYpCiAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChNMTY0LCAweDAyLCBNMTY3
KQogICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoTTE2NCwgMHgwMywgTTE2OCkKICAgICAg
ICAgICAgQ3JlYXRlQml0RmllbGQgKE0xNjQsIDB4MDQsIE0xNjkpCiAgICAgICAgICAgIENy
ZWF0ZUJpdEZpZWxkIChNMTY0LCAweDA1LCBNMTcwKQogICAgICAgICAgICBDcmVhdGVCaXRG
aWVsZCAoTTE2NCwgMHgwNiwgTTE3MSkKICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE0x
NjQsIDB4MDcsIE0xNzIpCiAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChNMTY0LCAweDA4
LCBNMTczKQogICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoTTE2NCwgMHgwQywgTTMwMCkK
ICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBVElCLCAweDAwLCBNMTU3KQogICAgICAg
ICAgICBDcmVhdGVEV29yZEZpZWxkIChBVElCLCAweDAyLCBNMTc0KQogICAgICAgICAgICBD
cmVhdGVCeXRlRmllbGQgKEFUSUIsIDB4MDYsIE0xNzUpCiAgICAgICAgICAgIENyZWF0ZUJ5
dGVGaWVsZCAoQVRJQiwgMHgwNywgTTE3NikKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxk
IChBVElCLCAweDA4LCBNMTc3KQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFUSUIs
IDB4MDksIE0xNzgpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQVRJQiwgMHgwQSwg
TTE3OSkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBVElCLCAweDBCLCBNMTgwKQog
ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFUSUIsIDB4MEMsIE0xODEpCiAgICAgICAg
ICAgIENyZWF0ZUJ5dGVGaWVsZCAoQVRJQiwgMHgwRCwgTTMwMSkKICAgICAgICAgICAgQ3Jl
YXRlRFdvcmRGaWVsZCAoQVRJQiwgMHgwRSwgTTMwMikKICAgICAgICAgICAgQVRJQiA9IFpl
cm8KICAgICAgICAgICAgTTE1NyA9IDB4MTIKICAgICAgICAgICAgTTE3NCA9IE0xNjQgLyog
XF9TQl8uUENJMC5HUDE3LlZHQV8uTTE2NCAqLwogICAgICAgICAgICBJZiAoTTE2NSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTTE2NSA9IFplcm8KICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgSWYgKE0xNjYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0x
NzUgPSBNMjEwIC8qIFxfU0JfLlBDSTAuR1AxNy5WR0FfLk0yMTAgKi8KICAgICAgICAgICAg
ICAgIE0yMTAgPSBaZXJvCiAgICAgICAgICAgICAgICBNMTY2ID0gWmVybwogICAgICAgICAg
ICB9CgogICAgICAgICAgICBJZiAoTTE2NykKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTTE3NiA9IE0yMTEgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uTTIxMSAqLwogICAgICAg
ICAgICAgICAgTTE3NyA9IE0yMTIgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uTTIxMiAqLwog
ICAgICAgICAgICAgICAgTTIxMSA9IFplcm8KICAgICAgICAgICAgICAgIE0yMTIgPSBaZXJv
CiAgICAgICAgICAgICAgICBNMTY3ID0gWmVybwogICAgICAgICAgICB9CgogICAgICAgICAg
ICBJZiAoTTE2OCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTE3OCA9IE0yMTMg
LyogXF9TQl8uUENJMC5HUDE3LlZHQV8uTTIxMyAqLwogICAgICAgICAgICAgICAgTTE3OSA9
IE0yMTQgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uTTIxNCAqLwogICAgICAgICAgICAgICAg
TTIxMyA9IFplcm8KICAgICAgICAgICAgICAgIE0yMTQgPSBaZXJvCiAgICAgICAgICAgICAg
ICBNMTY4ID0gWmVybwogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoTTE2OSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTTE4MCA9IE0yMTUgLyogXF9TQl8uUENJMC5H
UDE3LlZHQV8uTTIxNSAqLwogICAgICAgICAgICAgICAgTTE2OSA9IFplcm8KICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgSWYgKE0xNzEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIE0xNzEgPSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChNMTcyKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNMTcyID0gWmVybwogICAgICAgICAgICB9
CgogICAgICAgICAgICBJZiAoTTE3MykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
TTE3MyA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKE0zMDApCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE0zMDEgPSBNMzAzIC8qIFxfU0JfLlBDSTAuR1Ax
Ny5WR0FfLk0zMDMgKi8KICAgICAgICAgICAgICAgIE0zMDIgPSBNMzA0IC8qIFxfU0JfLlBD
STAuR1AxNy5WR0FfLk0zMDQgKi8KICAgICAgICAgICAgICAgIE0zMDMgPSBaZXJvCiAgICAg
ICAgICAgICAgICBNMzA0ID0gWmVybwogICAgICAgICAgICAgICAgTTMwMCA9IFplcm8KICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgICBSZXR1cm4gUGVuZGluZyBTeXN0
ZW0gQklPUyBSZXF1ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgID0gMHglWFxuIiwgTTE3
NCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgTTQ2MCAoIiAg
ICAgICAgICAgRXhwYW5zaW9uIE1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMHglWFxuIiwgTTE3NSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgTTQ2MCAoIiAgICAgICAgICAgVGhlcm1hbCBTdGF0ZTogVGFyZ2V0IEdy
YXBoaWNzIENvbnRyb2xsZXIgICAgICAgICAgID0gMHglWFxuIiwgTTE3NiwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgTTQ2MCAoIiAgICAgICAgICAgVGhl
cm1hbCBTdGF0ZTogU3RhdGUgSWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgl
WFxuIiwgTTE3NywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
TTQ2MCAoIiAgICAgICAgICAgRm9yY2VkIFBvd2VyIFN0YXRlOiBUYXJnZXQgR3JhcGhpY3Mg
Q29udHJvbGxlciAgICAgID0gMHglWFxuIiwgTTE3OCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCkKICAgICAgICAgICAgTTQ2MCAoIiAgICAgICAgICAgRm9yY2VkIFBvd2VyIFN0
YXRlOiBTdGF0ZSBJZCAgICAgICAgICAgICAgICAgICAgICAgID0gMHglWFxuIiwgTTE3OSwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgTTQ2MCAoIiAgICAg
ICAgICAgU3lzdGVtIFBvd2VyIFNvdXJjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMHglWFxuIiwgTTE4MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgTTQ2MCAoIiAgICAgICAgICAgUGFuZWwgQnJpZ2h0bmVzcyBCYWNrbGlnaHQg
TGV2ZWwgICAgICAgICAgICAgICAgICAgID0gMHglWFxuIiwgTTE4MSwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgTTQ2MCAoIiAgICAgICAgICAgR1BVIFBh
Y2thZ2UgUG93ZXIgTGltaXQ6IFRhcmdldCBHcmFwaGljcyBDb250cm9sbGVyID0gMHglWFxu
IiwgTTMwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgTTQ2
MCAoIiAgICAgICAgICAgR1BVIFBhY2thZ2UgUG93ZXIgTGltaXQ6IFZhbHVlICAgICAgICAg
ICAgICAgICAgICAgID0gMHglWFxuIiwgTTMwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgUmV0dXJuIChBVElCKSAvKiBcX1NCXy5QQ0kwLkdQMTcuVkdB
Xy5BVElCICovCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEFGMDMsIDIsIE5vdFNlcmlh
bGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFUSUIsIDB4
MDAsIE0xNTcpCiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQVRJQiwgMHgwMiwgTTE4
MikKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBVElCLCAweDA0LCBNMTgzKQogICAg
ICAgICAgICBNMTgyID0gQXJnMAogICAgICAgICAgICBNMTgzID0gQXJnMQogICAgICAgICAg
ICBOYW1lIChNMTg0LCAweDA2KQogICAgICAgICAgICBOYW1lIChNMTg1LCAweDA2KQogICAg
ICAgICAgICBOYW1lIChNMTg2LCBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gLgogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChNMTg3LCAweDAw
KQogICAgICAgICAgICBNMTg3ID0gTTA0OSAoTTEzMywgMHhCRikKICAgICAgICAgICAgTG9j
YWwxID0gMHgwMAogICAgICAgICAgICBXaGlsZSAoKExvY2FsMSA8IE0xODcpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDIgPSBNMDQ5IChNMTMzLCAoMHhDMCArIExv
Y2FsMSkpCiAgICAgICAgICAgICAgICBNMTg2IFtMb2NhbDFdID0gTG9jYWwyCiAgICAgICAg
ICAgICAgICBMb2NhbDErKwogICAgICAgICAgICB9CgogICAgICAgICAgICBMb2NhbDEgPSBN
MTgyIC8qIFxfU0JfLlBDSTAuR1AxNy5WR0FfLkFGMDMuTTE4MiAqLwogICAgICAgICAgICBM
b2NhbDEgJj0gMHg4QgogICAgICAgICAgICBMb2NhbDIgPSBNMTgzIC8qIFxfU0JfLlBDSTAu
R1AxNy5WR0FfLkFGMDMuTTE4MyAqLwogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NC
LkxJRC5fTElEKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gXF9T
Qi5MSUQuX0xJRCAoKQogICAgICAgICAgICAgICAgTG9jYWwyICY9IDB4RkZGRkZGRkZGRkZG
RkZGRQogICAgICAgICAgICAgICAgTG9jYWwyIHw9IExvY2FsMAogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwIDwg
TTE4NykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMyA9IERlcmVmT2Yg
KE0xODYgW0xvY2FsMF0pCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMyA9PSBMb2NhbDEp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE0xODUgPSBMb2NhbDAK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBNMTg3IC8qIFxfU0JfLlBDSTAuR1AxNy5W
R0FfLkFGMDMuTTE4NyAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxz
ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIExvY2FsMCA9IE0xODUg
LyogXF9TQl8uUENJMC5HUDE3LlZHQV8uQUYwMy5NMTg1ICovCiAgICAgICAgICAgIFdoaWxl
ICgoTG9jYWwwIDwgTTE4NykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2Fs
MCsrCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBNMTg3KSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgTG9jYWwzID0gRGVyZWZPZiAoTTE4NiBbTG9jYWwwXSkK
ICAgICAgICAgICAgICAgIElmICgoKExvY2FsMyAmIExvY2FsMikgPT0gTG9jYWwzKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNMTg0ID0gTG9jYWwwCiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwwID0gTTE4NyAvKiBcX1NCXy5QQ0kwLkdQMTcuVkdBXy5B
RjAzLk0xODcgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgSWYgKChNMTg0ID09IE0xODcpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBN
MTgyID0gWmVybwogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTG9jYWwwID0gTTE4NCAvKiBcX1NCXy5QQ0kwLkdQMTcuVkdB
Xy5BRjAzLk0xODQgKi8KICAgICAgICAgICAgICAgIExvY2FsMyA9IERlcmVmT2YgKE0xODYg
W0xvY2FsMF0pCiAgICAgICAgICAgICAgICBNMTgyICY9IDB4RkZGRkZGRkZGRkZGRkZGNAog
ICAgICAgICAgICAgICAgTTE4MiB8PSBMb2NhbDMKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTTE1NyA9IDB4MDQKICAgICAgICAgICAgUmV0dXJuIChBVElCKSAvKiBcX1NCXy5QQ0kw
LkdQMTcuVkdBXy5BVElCICovCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEFGMDQsIDAs
IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg
KEFUSUIsIDB4MDAsIE0xNTcpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQVRJQiwg
MHgwMiwgTTE4OCkKICAgICAgICAgICAgTTE1NyA9IDB4MDMKICAgICAgICAgICAgTG9jYWwx
ID0gMHgwMAogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLkxJRC5fTElEKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gXF9TQi5MSUQuX0xJRCAoKQog
ICAgICAgICAgICAgICAgTG9jYWwxID0gKExvY2FsMCBeIDB4MDEpCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE0xODggPSBMb2NhbDEKICAgICAgICAgICAgUmV0dXJuIChBVElCKSAv
KiBcX1NCXy5QQ0kwLkdQMTcuVkdBXy5BVElCICovCiAgICAgICAgfQoKICAgICAgICBNZXRo
b2QgKEFGMTUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBBVElC
ID0gTTEwNCAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgUmV0dXJuIChB
VElCKSAvKiBcX1NCXy5QQ0kwLkdQMTcuVkdBXy5BVElCICovCiAgICAgICAgfQoKICAgICAg
ICBNZXRob2QgKEFGMTYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg
ICBMb2NhbDAgPSBNMDRBIChNMTMzLCAweEQ0KQogICAgICAgICAgICBJZiAoKExvY2FsMCAh
PSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMAog
ICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDEgPCBMb2NhbDApKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IE0wNDkgKE0xMzMsICgweEQ0ICsg
TG9jYWwxKSkKICAgICAgICAgICAgICAgICAgICBBVElCIFtMb2NhbDFdID0gTG9jYWwyCiAg
ICAgICAgICAgICAgICAgICAgTG9jYWwxKysKICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExv
Y2FsMyA9IE0wNDMgKDB4MDAsIEFyZzAsIDB4MDApCiAgICAgICAgICAgICAgICBJZiAoKE9i
amVjdFR5cGUgKExvY2FsMykgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgQVRJQiA9IExvY2FsMwogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFUSUIg
WzB4MDBdID0gMHgwNQogICAgICAgICAgICAgICAgICAgIEFUSUIgWzB4MDFdID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgIEFUSUIgWzB4MDJdID0gMHgwMAogICAgICAgICAgICAgICAg
ICAgIEFUSUIgWzB4MDNdID0gMHgwMAogICAgICAgICAgICAgICAgICAgIEFUSUIgWzB4MDRd
ID0gMHgwMgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBD
cmVhdGVXb3JkRmllbGQgKEFUSUIsIDB4MDAsIE0xNTcpCiAgICAgICAgICAgIENyZWF0ZVdv
cmRGaWVsZCAoQVRJQiwgMHgwMiwgTTE2MikKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxk
IChBVElCLCAweDA0LCBNMjkyKQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFUSUIs
IDB4MDUsIE0yOTMpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQVRJQiwgMHgwNiwg
TTI5NCkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBVElCLCAweDA3LCBNMjk1KQog
ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFUSUIsIDB4MDgsIE0yOTYpCiAgICAgICAg
ICAgIENyZWF0ZUJ5dGVGaWVsZCAoQVRJQiwgMHgwOSwgTTI5NykKICAgICAgICAgICAgTTQ2
MCAoIiAgICBSZXR1cm4gU3RydWN0dXJlIFNpemUgICAgICAgICA9IDB4JVhcbiIsIE0xNTcs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIE00NjAgKCIgICAg
ICAgICAgIEZsYWdzICAgICAgICAgICAgICAgICAgPSAweCVYXG4iLCBNMTYyLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBNNDYwICgiICAgICAgICAgICBF
cnJvciBDb2RlICAgICAgICAgICAgID0gMHglWFxuIiwgTTI5MiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgSWYgKChNMTU3ID4gMHgwNSkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCIgICAgICAgICAgIEFDIExldmVsICAgICAg
ICAgICAgICAgPSAweCVYXG4iLCBNMjkzLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgICAgICAgICAgTTQ2MCAoIiAgICAgICAgICAgREMgTGV2ZWwgICAgICAgICAg
ICAgICA9IDB4JVhcbiIsIE0yOTQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAg
ICAgICAgICAgICAgICBNNDYwICgiICAgICAgICAgICBNaW4gSW5wdXQgU2lnbmFsIExldmVs
ID0gMHglWFxuIiwgTTI5NSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgIE00NjAgKCIgICAgICAgICAgIE1heCBJbnB1dCBTaWduYWwgTGV2ZWwgPSAw
eCVYXG4iLCBNMjk2LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAg
ICAgICAgTTQ2MCAoIiAgICAgICAgICAgQ291bnQgICAgICAgICAgICAgICAgICA9ICVkXG4i
LCBNMjk3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAg
SWYgKChNMTU3ID4gMHgwQSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwxID0gMHgwQQogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwxIDwg
TTE1NykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDIgPSBEZXJlZk9mIChBVElCIFtMb2NhbDFdKQogICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDErKwogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSBEZXJlZk9mIChB
VElCIFtMb2NhbDFdKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDErKwogICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDQgPSAoKExvY2FsMSAtIDB4MEEpID4+IDB4MDEpCiAg
ICAgICAgICAgICAgICAgICAgICAgIE00NjAgKCIgICAgICAgICAgIENvdW50WyVkXSAgTHVt
aW5hbmNlIExldmVsID0gMHglWCAgU2lnbmFsIExldmVsID0gJWRcbiIsIExvY2FsNCwgTG9j
YWwyLCBMb2NhbDMsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKEFU
SUIpIC8qIFxfU0JfLlBDSTAuR1AxNy5WR0FfLkFUSUIgKi8KICAgICAgICB9CgogICAgICAg
IE1ldGhvZCAoQUYyMSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAg
IEFUSUIgPSBNMjlBIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICBDcmVh
dGVXb3JkRmllbGQgKEFUSUIsIDB4MDAsIE0yOTcpCiAgICAgICAgICAgIENyZWF0ZVdvcmRG
aWVsZCAoQVRJQiwgMHgwMiwgTTE1NykKICAgICAgICAgICAgTTQ2MCAoIiAgICBSZXR1cm4g
TnVtIERldmljZXMgICAgICAgICAgICA9IDB4JVhcbiIsIE0yOTcsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIE00NjAgKCIgICAgUmV0dXJuIERldmljZSBT
dHJ1Y3R1cmUgc2l6ZSAgPSAweCVYXG4iLCBNMTU3LCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwKQogICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgIElmICgoKE0y
OTcgPiAweDAwKSAmJiAoTTI5NyA8IDB4MDQpKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgV2hpbGUgKChMb2NhbDAgPCBNMjk3KSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDEgPSAoKExvY2FsMCA8PCAweDAyKSArIDB4MDQpCiAgICAg
ICAgICAgICAgICAgICAgTG9jYWwyID0gKExvY2FsMSArIDB4MDIpCiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwzID0gRGVyZWZPZiAoQVRJQiBbTG9jYWwxXSkKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDQgPSBEZXJlZk9mIChBVElCIFtMb2NhbDJdKQogICAgICAgICAgICAgICAg
ICAgIE00NjAgKCIgICAgUmV0dXJuIERldmljZSBTdHJ1Y3R1cmUgWyVkXSBGbGFncyAgICAg
ICAgICAgICAgPSAweCVYXG4iLCBMb2NhbDAsIExvY2FsMywgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAgIFJldHVybiBEZXZpY2UgU3Ry
dWN0dXJlIFslZF0gQnVzICAgICAgICAgICAgICAgID0gMHglWFxuIiwgTG9jYWwwLCBMb2Nh
bDQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTG9jYWww
KysKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJu
IChBVElCKSAvKiBcX1NCXy5QQ0kwLkdQMTcuVkdBXy5BVElCICovCiAgICAgICAgfQoKICAg
ICAgICBNZXRob2QgKEFGMjIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg
ICAgICBDcmVhdGVXb3JkRmllbGQgKEFUSUIsIDB4MDAsIE0xNTcpCiAgICAgICAgICAgIENy
ZWF0ZUJ5dGVGaWVsZCAoQVRJQiwgMHgwMiwgTTI5OCkKICAgICAgICAgICAgQ3JlYXRlRFdv
cmRGaWVsZCAoQVRJQiwgMHgwMywgTTI5OSkKICAgICAgICAgICAgTG9jYWwwID0gTTA0OSAo
TTEzMywgMHgwMUY5KQogICAgICAgICAgICBJZiAoKExvY2FsMCA+PSAweDAxKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTTE1NyA9IDB4MDcKICAgICAgICAgICAgICAgIExv
Y2FsMC0tCiAgICAgICAgICAgICAgICBNMjk4ID0gTG9jYWwwCiAgICAgICAgICAgICAgICBN
Mjk5ID0gTTA0QiAoTTEzMywgMHgwMUZBKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVs
c2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTE1NyA9IDB4MDAKICAgICAgICAg
ICAgICAgIE0yOTggPSAweDAwCiAgICAgICAgICAgICAgICBNMjk5ID0gMHgwMAogICAgICAg
ICAgICB9CgogICAgICAgICAgICBNNDYwICgiICAgIFJldHVybiBTdHJ1Y3R1cmUgU2l6ZSAg
ICAgICAgID0gMHglWFxuIiwgTTE1NywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgTTQ2MCAoIiAgICAgICAgICAgR1BVIFBhY2thZ2UgUG93ZXIgTGltaXQ6
IFRhcmdldCBHcmFwaGljcyBDb250cm9sbGVyID0gJWRcbiIsIE0yOTgsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIE00NjAgKCIgICAgICAgICAgIEdQVSBQ
YWNrYWdlIFBvd2VyIExpbWl0OiBWYWx1ZSAgICAgICAgICAgICAgICAgICAgICA9IDB4JVhc
biIsIE0yOTksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJl
dHVybiAoQVRJQikgLyogXF9TQl8uUENJMC5HUDE3LlZHQV8uQVRJQiAqLwogICAgICAgIH0K
CiAgICAgICAgTWV0aG9kIChBRjIzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAg
ICAgICAgICAgQVRJQiA9IE00NDkgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAg
ICAgIENyZWF0ZVdvcmRGaWVsZCAoQVRJQiwgMHgwMCwgTTE1NykKICAgICAgICAgICAgQ3Jl
YXRlQnl0ZUZpZWxkIChBVElCLCAweDAyLCBNMzA1KQogICAgICAgICAgICBDcmVhdGVCeXRl
RmllbGQgKEFUSUIsIDB4MDMsIE0zMDYpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAo
QVRJQiwgMHgwNCwgTTMwNykKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBVElCLCAw
eDA1LCBNMzA4KQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFUSUIsIDB4MDYsIE0z
MDkpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQVRJQiwgMHgwNywgTTMwQSkKICAg
ICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBVElCLCAweDA4LCBNMzBCKQogICAgICAgICAg
ICBNNDYwICgiICAgIFJldHVybiBTdHJ1Y3R1cmUgU2l6ZSAgICAgICAgICAgICAgID0gJWRc
biIsIE0xNTcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElm
ICgoTTE1NyA+PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICAgICAgICAgQUMgTWF4aW11bSBQZXJmb3JtYW5jZSBMaW1pdCA9ICVkXG4iLCBNMzA1
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICAgICAgICAgQUMgQmV0dGVyIFBlcmZvcm1hbmNlIExpbWl0ICA9ICVkXG4iLCBNMzA2
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICAgICAgICAgQUMgQmV0dGVyIEJhdHRlcnkgTGltaXQgICAgICA9ICVkXG4iLCBNMzA3
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICAgICAgICAgREMgTWF4aW11bSBQZXJmb3JtYW5jZSBMaW1pdCA9ICVkXG4iLCBNMzA4
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICAgICAgICAgREMgQmV0dGVyIFBlcmZvcm1hbmNlIExpbWl0ICA9ICVkXG4iLCBNMzA5
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICAgICAgICAgREMgQmV0dGVyIEJhdHRlcnkgTGltaXQgICAgICA9ICVkXG4iLCBNMzBB
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICAgICAgICAgREMgQmF0dGVyeSBTYXZlciBMaW1pdCAgICAgICA9ICVkXG4iLCBNMzBC
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBSZXR1cm4gKEFUSUIpIC8qIFxfU0JfLlBDSTAuR1AxNy5WR0FfLkFUSUIgKi8KICAg
ICAgICB9CgogICAgICAgIE1ldGhvZCAoQUYyNCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg
ICB7CiAgICAgICAgICAgIEFUSUIgPSBNNjUyIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwog
ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFUSUIsIDB4MDAsIE0xNTcpCiAgICAgICAg
ICAgIENyZWF0ZVdvcmRGaWVsZCAoQVRJQiwgMHgwMiwgTTY1MykKICAgICAgICAgICAgTTQ2
MCAoIiAgICBSZXR1cm4gU3RydWN0dXJlIFNpemUgICAgICAgICAgICAgICA9ICVkXG4iLCBN
MTU3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBNNDYwICgi
ICAgICAgICAgICBJU1AgRGV2aWNlIE51bWJlciA9ICVkXG4iLCBNNjUzLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKEFUSUIpIC8qIFxfU0Jf
LlBDSTAuR1AxNy5WR0FfLkFUSUIgKi8KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQUZO
MCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIEZFQS1B
U0wtQVRJRi1BRk4wICBTdXBwb3J0ZWQgTm90aWZpY2F0aW9uIE1hc2sgPSAweCVYXG4iLCBN
MTAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoKE0x
MDEgJiAweDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlQml0Rmll
bGQgKE0xNjQsIDB4MDAsIE0xNjUpCiAgICAgICAgICAgICAgICBNMTY1ID0gT25lCiAgICAg
ICAgICAgICAgICBNNDYwICgiICAgIE5vdGlmeSAoVkdBLCAweCVYKVxuIiwgTTI5MSwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIE5vdGlmeSAoVkdB
LCBNMjkxKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEFGTjEs
IDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiICBGRUEtQVNM
LUFUSUYtQUZOMSAgU3VwcG9ydGVkIE5vdGlmaWNhdGlvbiBNYXNrID0gMHglWCAgU2F2ZSBF
eHBhbnNpb24gTW9kZSA9IDB4JVhcbiIsIE0xMDEsIEFyZzAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgIElmICgoTTEwMSAmIDB4MDIpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgICAgICBNMjEwID0gTG9j
YWwwCiAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoTTE2NCwgMHgwMSwgTTE2NikK
ICAgICAgICAgICAgICAgIE0xNjYgPSBPbmUKICAgICAgICAgICAgICAgIE00NjAgKCIgICAg
Tm90aWZ5IChWR0EsIDB4JVgpICBQZW5kaW5nIFN5c3RlbSBCSU9TIFJlcXVlc3QgQnVmZmVy
ID0gMHglWFxuIiwgTTI5MSwgTTE2NCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgIE5vdGlmeSAoVkdBLCBNMjkxKQogICAgICAgICAgICB9CiAgICAgICAgfQoK
ICAgICAgICBNZXRob2QgKEFGTjIsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg
ICAgICBNNDYwICgiICBGRUEtQVNMLUFUSUYtQUZOMiAgU3VwcG9ydGVkIE5vdGlmaWNhdGlv
biBNYXNrID0gMHglWCAgVGhlcm1hbCBTdGF0ZTogU3RhdGUgSWQgPSAweCVYICBUYXJnZXQg
R3JhcGhpY3MgQ29udHJvbGxlciA9IDB4JVhcbiIsIE0xMDEsIEFyZzAsIEFyZzEsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmICgoTTEwMSAmIDB4MDQpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgICAgICBNMjEy
ID0gTG9jYWwwCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBBcmcxCiAgICAgICAgICAgICAg
ICBNMjExID0gTG9jYWwwICY9IDB4MDMKICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxk
IChNMTY0LCAweDAyLCBNMTY3KQogICAgICAgICAgICAgICAgTTE2NyA9IE9uZQogICAgICAg
ICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFZHQSwgMHglWCkgIFBlbmRpbmcgU3lzdGVt
IEJJT1MgUmVxdWVzdCBCdWZmZXIgPSAweCVYXG4iLCBNMjkxLCBNMTY0LCAweDAwLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgTm90aWZ5IChWR0EsIE0yOTEpCiAgICAg
ICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQUZOMywgMiwgU2VyaWFsaXpl
ZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIEZFQS1BU0wtQVRJRi1BRk4zICBT
dXBwb3J0ZWQgTm90aWZpY2F0aW9uIE1hc2sgPSAweCVYICBGb3JjZWQgUG93ZXIgU3RhdGU6
IFN0YXRlIElkID0gMHglWCAgVGFyZ2V0IEdyYXBoaWNzIENvbnRyb2xsZXIgPSAweCVYXG4i
LCBNMTAxLCBBcmcwLCBBcmcxLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAo
KE0xMDEgJiAweDA4KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0g
QXJnMAogICAgICAgICAgICAgICAgTTIxNCA9IExvY2FsMAogICAgICAgICAgICAgICAgTG9j
YWwwID0gQXJnMQogICAgICAgICAgICAgICAgTTIxMyA9IExvY2FsMCAmPSAweDAzCiAgICAg
ICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoTTE2NCwgMHgwMywgTTE2OCkKICAgICAgICAg
ICAgICAgIE0xNjggPSBPbmUKICAgICAgICAgICAgICAgIE00NjAgKCIgICAgTm90aWZ5IChW
R0EsIDB4JVgpICBQZW5kaW5nIFN5c3RlbSBCSU9TIFJlcXVlc3QgQnVmZmVyID0gMHglWFxu
IiwgTTI5MSwgTTE2NCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
IE5vdGlmeSAoVkdBLCBNMjkxKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBN
ZXRob2QgKEFGTjQsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNNDYw
ICgiICBGRUEtQVNMLUFUSUYtQUZONCAgU3VwcG9ydGVkIE5vdGlmaWNhdGlvbiBNYXNrID0g
MHglWCAgU3lzdGVtIFBvd2VyIFNvdXJjZSA9IDB4JVhcbiIsIE0xMDEsIEFyZzAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmICgoTTEwMSAmIDB4MTApKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgICAg
ICBMb2NhbDEgPSBNMjE1IC8qIFxfU0JfLlBDSTAuR1AxNy5WR0FfLk0yMTUgKi8KICAgICAg
ICAgICAgICAgIE0yMTUgPSBMb2NhbDAKICAgICAgICAgICAgICAgIElmICgoTG9jYWwwICE9
IExvY2FsMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl
Qml0RmllbGQgKE0xNjQsIDB4MDQsIE0xNjkpCiAgICAgICAgICAgICAgICAgICAgTTE2OSA9
IE9uZQogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgICAgTm90aWZ5IChWR0EsIDB4JVgp
ICBQZW5kaW5nIFN5c3RlbSBCSU9TIFJlcXVlc3QgQnVmZmVyID0gMHglWFxuIiwgTTI5MSwg
TTE2NCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBOb3Rp
ZnkgKFZHQSwgTTI5MSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAg
IH0KCiAgICAgICAgTWV0aG9kIChBRk41LCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAg
ICAgICAgICAgTTQ2MCAoIiAgRkVBLUFTTC1BVElGLUFGTjUgIFN1cHBvcnRlZCBOb3RpZmlj
YXRpb24gTWFzayA9IDB4JVhcbiIsIE0xMDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgIElmICgoTTEwMSAmIDB4MjApKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoTTE2NCwgMHgwNSwgTTE3MCkKICAgICAgICAg
ICAgICAgIE0xNzAgPSBPbmUKICAgICAgICAgICAgICAgIE00NjAgKCIgICAgTm90aWZ5IChW
R0EsIDB4JVgpICBQZW5kaW5nIFN5c3RlbSBCSU9TIFJlcXVlc3QgQnVmZmVyID0gMHglWFxu
IiwgTTI5MSwgTTE2NCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
IE5vdGlmeSAoVkdBLCBNMjkxKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBN
ZXRob2QgKEFGTjYsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNNDYw
ICgiICBGRUEtQVNMLUFUSUYtQUZONiAgU3VwcG9ydGVkIE5vdGlmaWNhdGlvbiBNYXNrID0g
MHglWFxuIiwgTTEwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgSWYgKChNMTAxICYgMHg0MCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENy
ZWF0ZUJpdEZpZWxkIChNMTY0LCAweDA2LCBNMTcxKQogICAgICAgICAgICAgICAgTTE3MSA9
IE9uZQogICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFZHQSwgMHglWCkgIFBl
bmRpbmcgU3lzdGVtIEJJT1MgUmVxdWVzdCBCdWZmZXIgPSAweCVYXG4iLCBNMjkxLCBNMTY0
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgTm90aWZ5IChWR0Es
IE0yOTEpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQUZONywg
MSwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIEZFQS1BU0wt
QVRJRi1BRk43ICBTdXBwb3J0ZWQgTm90aWZpY2F0aW9uIE1hc2sgPSAweCVYICBQYW5lbCBC
cmlnaHRuZXNzOiBCYWNrbGlnaHQgTGV2ZWwgPSAweCVYXG4iLCBNMTAxLCBBcmcwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoKE0xMDEgJiAweDgwKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE0xNjQsIDB4MDcs
IE0xNzIpCiAgICAgICAgICAgICAgICBNMTcyID0gT25lCiAgICAgICAgICAgICAgICBDcmVh
dGVCeXRlRmllbGQgKEFUSUIsIDB4MEMsIE0xODEpCiAgICAgICAgICAgICAgICBNMTgxID0g
QXJnMAogICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFZHQSwgMHglWCkgIFBl
bmRpbmcgU3lzdGVtIEJJT1MgUmVxdWVzdCBCdWZmZXIgPSAweCVYXG4iLCBNMjkxLCBNMTY0
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgTm90aWZ5IChWR0Es
IE0yOTEpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQUZOOCwg
MCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIEZFQS1BU0wt
QVRJRi1BRk44ICBTdXBwb3J0ZWQgTm90aWZpY2F0aW9uIE1hc2sgPSAweCVYXG4iLCBNMTAx
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoKE0xMDEg
JiAweDAxMDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVs
ZCAoTTE2NCwgMHgwOCwgTTE3MykKICAgICAgICAgICAgICAgIE0xNzMgPSBPbmUKICAgICAg
ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChBRk5DLCAyLCBTZXJpYWxpemVk
KQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgRkVBLUFTTC1BVElGLUFGTkMgIFN1
cHBvcnRlZCBOb3RpZmljYXRpb24gTWFzayA9IDB4JVggIFBvd2VyIExpbWl0OiBUYXJnZXQg
R3JhcGhpY3MgQ29udHJvbGxlciA9IDB4JVggIFZhbHVlID0gMHglWFxuIiwgTTEwMSwgQXJn
MCwgQXJnMSwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgSWYgKChNMTAxICYgMHgx
MDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gKEFyZzAgJiAw
eDAzKQogICAgICAgICAgICAgICAgTTMwMyA9IExvY2FsMAogICAgICAgICAgICAgICAgTG9j
YWwwID0gKEFyZzEgJiAweEZGRkZGRkZGKQogICAgICAgICAgICAgICAgTTMwNCA9IExvY2Fs
MAogICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE0xNjQsIDB4MEMsIE0zMDApCiAg
ICAgICAgICAgICAgICBNMzAwID0gT25lCiAgICAgICAgICAgICAgICBNNDYwICgiICAgIE5v
dGlmeSAoVkdBLCAweCVYKSAgUGVuZGluZyBTeXN0ZW0gQklPUyBSZXF1ZXN0IEJ1ZmZlciA9
IDB4JVhcbiIsIE0yOTEsIE0xNjQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgICAgICBOb3RpZnkgKFZHQSwgTTI5MSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAg
IH0KfQoK
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt14.dsl"
Content-Disposition: attachment; filename="ssdt14.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MTQuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMDYzMiAoMTU4NikKICogICAgIFJldmlzaW9uICAgICAgICAg
MHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweEI4CiAqICAgICBPRU0gSUQgICAgICAg
ICAgICJMRU5PVk8iCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJUcG0yVGFibCIKICogICAg
IE9FTSBSZXZpc2lvbiAgICAgMHgwMDAwMTAwMCAoNDA5NikKICogICAgIENvbXBpbGVyIElE
ICAgICAgIklOVEwiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MjAxODAzMTMgKDUzODQ0
NDU2MykKICovCkRlZmluaXRpb25CbG9jayAoIiIsICJTU0RUIiwgMiwgIkxFTk9WTyIsICJU
cG0yVGFibCIsIDB4MDAwMDEwMDApCnsKICAgIFNjb3BlIChcX1NCKQogICAgewogICAgICAg
IERldmljZSAoVFBNKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIk5UQzA3
MDIiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTm9vcAogICAgICAgICAg
ICBOYW1lIChfQ0lELCAiTVNGVDAxMDEiIC8qIFRQTSAyLjAgU2VjdXJpdHkgRGV2aWNlICov
KSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICBOYW1lIChfU1RSLCBVbmlj
b2RlICgiVFBNIDIuMCBEZXZpY2UiKSkgIC8vIF9TVFI6IERlc2NyaXB0aW9uIFN0cmluZwog
ICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFNNSVAsIFN5c3RlbUlPLCAweEIwLCAweDAx
KQogICAgICAgICAgICBGaWVsZCAoU01JUCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSU9QTiwgICA4CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVFBNUiwgU3lzdGVtTWVtb3J5LCAweEZF
RDQwMDAwLCAweDUwMDApCiAgICAgICAgICAgIEZpZWxkIChUUE1SLCBBbnlBY2MsIE5vTG9j
aywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFDQzAsICAgOCwg
CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDgpLCAKICAgICAgICAgICAgICAgIElOVEUs
ICAgMzIsIAogICAgICAgICAgICAgICAgSU5UViwgICA4LCAKICAgICAgICAgICAgICAgIE9m
ZnNldCAoMHgxMCksIAogICAgICAgICAgICAgICAgSU5UUywgICAzMiwgCiAgICAgICAgICAg
ICAgICBJTlRGLCAgIDMyLCAKICAgICAgICAgICAgICAgIFNUUzAsICAgMzIsIAogICAgICAg
ICAgICAgICAgT2Zmc2V0ICgweDI0KSwgCiAgICAgICAgICAgICAgICBGSUZPLCAgIDMyLCAK
ICAgICAgICAgICAgICAgIE9mZnNldCAoMHgzMCksIAogICAgICAgICAgICAgICAgVElEMCwg
ICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFROVlMs
IFN5c3RlbU1lbW9yeSwgMHgxQkFGNzAwMCwgMHgyRikKICAgICAgICAgICAgRmllbGQgKFRO
VlMsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUFBJTiwgICA4LCAKICAgICAgICAgICAgICAgIFBQSVAsICAgMzIsIAogICAgICAg
ICAgICAgICAgUFBSUCwgICAzMiwgCiAgICAgICAgICAgICAgICBQUFJRLCAgIDMyLCAKICAg
ICAgICAgICAgICAgIFBQUk0sICAgMzIsIAogICAgICAgICAgICAgICAgTFBQUiwgICAzMiwg
CiAgICAgICAgICAgICAgICBGUkVULCAgIDMyLCAKICAgICAgICAgICAgICAgIE1DSU4sICAg
OCwgCiAgICAgICAgICAgICAgICBNQ0lQLCAgIDMyLCAKICAgICAgICAgICAgICAgIE1PUkQs
ICAgMzIsIAogICAgICAgICAgICAgICAgTVJFVCwgICAzMiwgCiAgICAgICAgICAgICAgICBV
Q1JRLCAgIDMyLCAKICAgICAgICAgICAgICAgIElSUU4sICAgMzIsIAogICAgICAgICAgICAg
ICAgU0ZSQiwgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFJFU1MsIFJl
c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWVtb3J5
MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4RkVENDAwMDAsICAg
ICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNTAwMCwg
ICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAg
ICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxv
dywgU2hhcmVkLCAsLCApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
MHgwMDAwMDAwMSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyLAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDMsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNCwK
ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA1LAogICAgICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDYsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNywKICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDA4LAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDksCiAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQSwKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoUkVTTCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUs
CiAgICAgICAgICAgICAgICAgICAgMHhGRUQ0MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJh
c2UKICAgICAgICAgICAgICAgICAgICAweDAwMDA1MDAwLCAgICAgICAgIC8vIEFkZHJlc3Mg
TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgSW50ZXJydXB0
IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICwsICkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxLAogICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDIsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAw
MywKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0LAogICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNiwKICAgICAgICAg
ICAgICAgICAgICAweDAwMDAwMDA3LAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgs
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOSwKICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDBBLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEIsCiAgICAgICAgICAg
ICAgICAgICAgMHgwMDAwMDAwQywKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBELAog
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEUsCiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwRiwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAg
TmFtZSAoUkVTMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAg
MHhGRUQ0MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAg
ICAweDAwMDA1MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBM
ZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICwsIF9ZMDApCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwQywKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoUkVTMSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUs
CiAgICAgICAgICAgICAgICAgICAgMHhGRUQ0MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJh
c2UKICAgICAgICAgICAgICAgICAgICAweDAwMDA1MDAwLCAgICAgICAgIC8vIEFkZHJlc3Mg
TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9KQogICAgICAgICAg
ICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291
cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoSVJRTiA9
PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KFJFUzEpIC8qIFxfU0JfLlRQTV8uUkVTMSAqLwogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENy
ZWF0ZURXb3JkRmllbGQgKFJFUzAsIFxfU0IuVFBNLl9ZMDAuX0lOVCwgTElSUSkgIC8vIF9J
TlQ6IEludGVycnVwdHMKICAgICAgICAgICAgICAgICAgICBMSVJRID0gSVJRTiAvKiBcX1NC
Xy5UUE1fLklSUU4gKi8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJFUzApIC8qIFxf
U0JfLlRQTV8uUkVTMCAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg
ICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpICAvLyBfU1JTOiBTZXQgUmVz
b3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChJUlFO
ICE9IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0
ZURXb3JkRmllbGQgKEFyZzAsIDB4MTEsIElSUTApCiAgICAgICAgICAgICAgICAgICAgQ3Jl
YXRlRFdvcmRGaWVsZCAoUkVTMCwgXF9TQi5UUE0uX1kwMC5fSU5ULCBMSVJRKSAgLy8gX0lO
VDogSW50ZXJydXB0cwogICAgICAgICAgICAgICAgICAgIExJUlEgPSBJUlEwIC8qIFxfU0Jf
LlRQTV8uX1NSUy5JUlEwICovCiAgICAgICAgICAgICAgICAgICAgSVJRTiA9IElSUTAgLyog
XF9TQl8uVFBNXy5fU1JTLklSUTAgKi8KICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRG
aWVsZCAoQXJnMCwgMHg3OSwgSVRSRykKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRG
aWVsZCAoUkVTMCwgXF9TQi5UUE0uX1kwMC5fSEUsIExUUkcpICAvLyBfSEVfOiBIaWdoLUVk
Z2UKICAgICAgICAgICAgICAgICAgICBMVFJHID0gSVRSRyAvKiBcX1NCXy5UUE1fLl9TUlMu
SVRSRyAqLwogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChBcmcwLCAweDdB
LCBJTFZMKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChSRVMwLCBcX1NC
LlRQTS5fWTAwLl9MTCwgTExWTCkgIC8vIF9MTF86IExvdyBMZXZlbAogICAgICAgICAgICAg
ICAgICAgIExMVkwgPSBJTFZMIC8qIFxfU0JfLlRQTV8uX1NSUy5JTFZMICovCiAgICAgICAg
ICAgICAgICAgICAgSWYgKCgoKFRJRDAgJiAweDBGKSA9PSAweDAwKSB8fCAoKFRJRDAgJiAw
eDBGCiAgICAgICAgICAgICAgICAgICAgICAgICkgPT0gMHgwRikpKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChJUlEwIDwgMHgxMCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElO
VFYgPSAoSVJRMCAmIDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoSVRSRyA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5URSB8PSAweDEwCiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlRF
ICY9IDB4RkZGRkZGRUYKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChJTFZMID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlRFIHw9IDB4MDgKICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVEUgJj0g
MHhGRkZGRkZGNwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo
b2QgKF9QUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFJTOiBQb3NzaWJsZSBSZXNvdXJjZSBT
ZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKElSUU4gPT0gMHgw
MCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSRVMx
KSAvKiBcX1NCXy5UUE1fLlJFUzEgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIEVsc2VJZiAoKFNGUkIgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgUmV0dXJuIChSRVNMKSAvKiBcX1NCXy5UUE1fLlJFU0wgKi8KICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBSZXR1cm4gKFJFU1MpIC8qIFxfU0JfLlRQTV8uUkVTUyAqLwog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBU
UywgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgo
QXJnMCA8IDB4MDYpICYmIChBcmcwID4gMHgwMykpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIElmICghKE1PUkQgJiAweDEwKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1DSVAgPSAweDAyCiAgICAgICAgICAgICAg
ICAgICAgICAgIElPUE4gPSBNQ0lOIC8qIFxfU0JfLlRQTV8uTUNJTiAqLwogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4g
KDB4MDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90
U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBJZiAoKEFDQzAgPT0gMHhGRikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChI
SU5GLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTd2l0
Y2ggKFRvSW50ZWdlciAoQXJnMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgQ2FzZSAoMHgwMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAg
ICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAo
MHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5h
bWUgKFRQTVYsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoX1NU
QSAoKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVFBNVikgLyogXF9TQl8uVFBNXy5I
SU5GLlRQTVYgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
RGVmYXVsdAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
QnJlYWtQb2ludAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDEpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9
CgogICAgICAgICAgICBOYW1lIChUUE0yLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAg
ICAgfSkKICAgICAgICAgICAgTmFtZSAoVFBNMywgUGFja2FnZSAoMHgwMykKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAg
ICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChU
UFBJLCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTd2l0
Y2ggKFRvSW50ZWdlciAoQXJnMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgQ2FzZSAoMHgwMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgMHgwMSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2Ug
KDB4MDEpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKCIxLjMiKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgUFBSUSA9IERlcmVmT2YgKEFyZzEgWzB4MDBdKQogICAgICAgICAgICAgICAgICAg
ICAgICBQUFJNID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICBQUElQID0gMHgwMgog
ICAgICAgICAgICAgICAgICAgICAgICBJT1BOID0gUFBJTiAvKiBcX1NCXy5UUE1fLlBQSU4g
Ki8KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChGUkVUKSAvKiBcX1NCXy5UUE1f
LkZSRVQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2Fz
ZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IFRQTTIgWzB4MDFdID0gUFBSUSAvKiBcX1NCXy5UUE1fLlBQUlEgKi8KICAgICAgICAgICAg
ICAgICAgICAgICAgUmV0dXJuIChUUE0yKSAvKiBcX1NCXy5UUE1fLlRQTTIgKi8KICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBQSVAgPSAw
eDA1CiAgICAgICAgICAgICAgICAgICAgICAgIElPUE4gPSBQUElOIC8qIFxfU0JfLlRQTV8u
UFBJTiAqLwogICAgICAgICAgICAgICAgICAgICAgICBUUE0zIFsweDAxXSA9IExQUFIgLyog
XF9TQl8uVFBNXy5MUFBSICovCiAgICAgICAgICAgICAgICAgICAgICAgIFRQTTMgWzB4MDJd
ID0gUFBSUCAvKiBcX1NCXy5UUE1fLlBQUlAgKi8KICAgICAgICAgICAgICAgICAgICAgICAg
UmV0dXJuIChUUE0zKSAvKiBcX1NCXy5UUE1fLlRQTTMgKi8KICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNikKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNykKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBQSVAgPSAweDA3CiAgICAgICAg
ICAgICAgICAgICAgICAgIFBQUlEgPSBEZXJlZk9mIChBcmcxIFsweDAwXSkKICAgICAgICAg
ICAgICAgICAgICAgICAgUFBSTSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgSWYg
KChQUFJRID09IDB4MTcpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQUFJNID0gRGVyZWZPZiAoQXJnMSBbMHgwMV0pCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElPUE4gPSBQUElO
IC8qIFxfU0JfLlRQTV8uUFBJTiAqLwogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KEZSRVQpIC8qIFxfU0JfLlRQTV8uRlJFVCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICBDYXNlICgweDA4KQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgUFBJUCA9IDB4MDgKICAgICAgICAgICAgICAgICAgICAg
ICAgVUNSUSA9IERlcmVmT2YgKEFyZzEgWzB4MDBdKQogICAgICAgICAgICAgICAgICAgICAg
ICBJT1BOID0gUFBJTiAvKiBcX1NCXy5UUE1fLlBQSU4gKi8KICAgICAgICAgICAgICAgICAg
ICAgICAgUmV0dXJuIChGUkVUKSAvKiBcX1NCXy5UUE1fLkZSRVQgKi8KICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWtQb2ludAogICAgICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuICgw
eDAxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFRNQ0ksIDIsIFNlcmlh
bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2Vy
IChBcmcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNlICgw
eDAwKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0
dXJuIChCdWZmZXIgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAxKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTU9SRCA9IERlcmVmT2Yg
KEFyZzEgWzB4MDBdKQogICAgICAgICAgICAgICAgICAgICAgICBNQ0lQID0gMHgwMQogICAg
ICAgICAgICAgICAgICAgICAgICBJT1BOID0gTUNJTiAvKiBcX1NCXy5UUE1fLk1DSU4gKi8K
ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChNUkVUKSAvKiBcX1NCXy5UUE1fLk1S
RVQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRGVmYXVs
dAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWtQ
b2ludAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo
b2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0
aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQg
KCJjZjhlMTZhNS1jMWU4LTRlMjUtYjcxMi00ZjU0YTk2NzAyYzgiKSAvKiBVbmtub3duIFVV
SUQgKi8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo
SElORiAoQXJnMikpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChB
cmcwID09IFRvVVVJRCAoIjNkZGRmYWE2LTM2MWItNGViNC1hNDI0LThkMTAwODlkMTY1MyIp
IC8qIFBoeXNpY2FsIFByZXNlbmNlIEludGVyZmFjZSAqLykpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUUFBJIChBcmcyLCBBcmczKSkKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMzc2
MDU0ZWQtY2MxMy00Njc1LTkwMWMtNDc1NmQ3ZjJkNDVkIikgLyogVW5rbm93biBVVUlEICov
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRNQ0kg
KEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVy
biAoQnVmZmVyICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
LgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoK

--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt15.dsl"
Content-Disposition: attachment; filename="ssdt15.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MTUuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwNTJCQyAoMjExODApCiAqICAgICBSZXZpc2lvbiAgICAgICAg
IDB4MDIKICogICAgIENoZWNrc3VtICAgICAgICAgMHgyMgogKiAgICAgT0VNIElEICAgICAg
ICAgICAiTEVOT1ZPIgogKiAgICAgT0VNIFRhYmxlIElEICAgICAiSU5UR1BQMDEiCiAqICAg
ICBPRU0gUmV2aXNpb24gICAgIDB4MDAwMDAwMDEgKDEpCiAqICAgICBDb21waWxlciBJRCAg
ICAgICJJTlRMIgogKiAgICAgQ29tcGlsZXIgVmVyc2lvbiAweDIwMTgwMzEzICg1Mzg0NDQ1
NjMpCiAqLwpEZWZpbml0aW9uQmxvY2sgKCIiLCAiU1NEVCIsIDIsICJMRU5PVk8iLCAiSU5U
R1BQMDEiLCAweDAwMDAwMDAxKQp7CiAgICBFeHRlcm5hbCAoX0FEUiwgSW50T2JqKQogICAg
RXh0ZXJuYWwgKF9TQl8uUENJMC5EQURSLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q
Q0kwLkVCVVMsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNywgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE3LkFDUF8sIERldmljZU9iaikKICAg
IEV4dGVybmFsIChfU0JfLlBDSTAuR1AxNy5BWkFMLCBEZXZpY2VPYmopCiAgICBFeHRlcm5h
bCAoX1NCXy5QQ0kwLkdQMTcuSERBVSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u
UENJMC5HUDE3LlZHQV8sIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1Ax
Ny5YSEMwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTcuWEhDMSwg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5SUFJNLCBNZXRob2RPYmopICAg
IC8vIDIgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLlNQQ0gsIE1ldGhvZE9i
aikgICAgLy8gMiBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMDAwLCBNZXRob2RPYmopICAg
IC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTAzNywgRGV2aWNlT2JqKQogICAgRXh0
ZXJuYWwgKE0wNDYsIEludE9iaikKICAgIEV4dGVybmFsIChNMDQ3LCBJbnRPYmopCiAgICBF
eHRlcm5hbCAoTTA1MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTEsIERldmljZU9i
aikKICAgIEV4dGVybmFsIChNMDUyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1Mywg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTQsIERldmljZU9iaikKICAgIEV4dGVybmFs
IChNMDU1LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1NiwgRGV2aWNlT2JqKQogICAg
RXh0ZXJuYWwgKE0wNTcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDU4LCBEZXZpY2VP
YmopCiAgICBFeHRlcm5hbCAoTTA1OSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNjIs
IERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDY4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5h
bCAoTTA2OSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzAsIERldmljZU9iaikKICAg
IEV4dGVybmFsIChNMDcxLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3MiwgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKE0wNzQsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc1
LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NiwgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKE0wNzcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc4LCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoTTA3OSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wODAsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChNMDgxLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA4
MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODMsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMDg0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4NSwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMDg3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4OCwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0wODksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MDkwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MSwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0wOTIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDkzLCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5NCwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0wOTUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk2LCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTA5NywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0wOTgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk5LCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTEwMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDEs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAyLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTEwMywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDQsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTEwNiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDcsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMTA4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEw
OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMTAsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMTE1LCBCdWZmT2JqKQogICAgRXh0ZXJuYWwgKE0xMTYsIEJ1ZmZGaWVs
ZE9iaikKICAgIEV4dGVybmFsIChNMTE3LCBCdWZmRmllbGRPYmopCiAgICBFeHRlcm5hbCAo
TTExOCwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMTksIEJ1ZmZGaWVsZE9iaikK
ICAgIEV4dGVybmFsIChNMTIwLCBCdWZmRmllbGRPYmopCiAgICBFeHRlcm5hbCAoTTEyMiwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMjcsIERldmljZU9iaikKICAgIEV4dGVy
bmFsIChNMTI4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzMSwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0xMzIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MTMzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzNCwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0xMzUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTM2LCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIyMCwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0yMjEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjI2LCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTIyNywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0y
MjksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjMxLCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTIzMywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMzUsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjNBLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTI1MSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yODAsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMjkwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTI5QSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMTAsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMzFDLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyMCwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjEsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMzIyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyMywgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMzI1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyNiwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0zMjcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI4
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyOSwgRGV2aWNlT2JqKQogICAgRXh0
ZXJuYWwgKE0zMkEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMzJCLCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoTTMzMCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0zMzEsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzc4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTM3OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODAsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMzgxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTM4MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODMsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMzg0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4NSwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODYsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMzg3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4OCwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMzkwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM5MSwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0zOTIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDA0
LCBCdWZmT2JqKQogICAgRXh0ZXJuYWwgKE00MDgsIE11dGV4T2JqKQogICAgRXh0ZXJuYWwg
KE00MTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDQ0LCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTQ0OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NTMs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU0LCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTQ1NSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NTYsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTQ2MCwgTWV0aG9kT2JqKSAgICAvLyA3IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE00
QzAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNEYwLCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTYxMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE02MjAsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNjMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTY1MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKFBfT0YsIE1ldGhvZE9i
aikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChQX09OLCBNZXRob2RPYmopICAg
IC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoUFBTMCwgTWV0aG9kT2JqKSAgICAvLyAw
IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKFBQUzMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1
bWVudHMKICAgIEV4dGVybmFsIChQU1RBLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRz
CiAgICBFeHRlcm5hbCAoU0RTVywgTWV0aG9kT2JqKSAgICAvLyAzIEFyZ3VtZW50cwogICAg
RXh0ZXJuYWwgKFNJTkksIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVy
bmFsIChTUkVHLCBNZXRob2RPYmopICAgIC8vIDIgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAo
U1NUQSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwoKICAgIFNjb3BlIChcKQogICAg
ewogICAgICAgIE5hbWUgKFAxRDMsIDB4NTUpCiAgICAgICAgTmFtZSAoRjBEMywgMHgwNCkK
ICAgICAgICBOYW1lIChGM0QzLCAweDA0KQogICAgICAgIE5hbWUgKEYxRDMsIDB4MDQpCiAg
ICAgICAgTmFtZSAoRjVEMywgMHgwNCkKICAgICAgICBOYW1lIChGNkQzLCAweDA0KQogICAg
ICAgIE5hbWUgKEY1V1YsIDB4NTUpCiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5HUDE3
KQogICAgewogICAgICAgIE1ldGhvZCAoWlMwVywgMCwgU2VyaWFsaXplZCkKICAgICAgICB7
CiAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgSWYgKChcUDFEMyAhPSAw
eDU1KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gXFAxRDMKICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3Mg
KDB4JVgpLl9TMFcgKCkgIFJldHVybiAlZFxuIiwgREFEUiwgTG9jYWwwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICB9Cgog
ICAgICAgIE1ldGhvZCAoWlBSVywgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg
ICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgMHgxOSwgCiAgICAgICAgICAgICAgICAweDA0CiAgICAgICAgICAgIH0pCiAgICAgICAg
fQoKICAgICAgICBOYW1lIChEQURSLCAweEVFRUVFRUVFKQogICAgICAgIE5hbWUgKERTVEEs
IDB4RUUpCiAgICAgICAgTmFtZSAoREJVUywgMHhFRUVFKQogICAgICAgIE5hbWUgKFBDU0Es
IDB4MDApCiAgICAgICAgTmFtZSAoUFdTVCwgMHhEMykKICAgICAgICBOYW1lIChFU1RBLCAw
eEVFKQogICAgICAgIE5hbWUgKEVCVVMsIDB4RUVFRSkKICAgICAgICBOYW1lIChQVzNTLCAw
eDAwKQogICAgICAgIE1ldGhvZCAoUlBSTSwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICB7
CiAgICAgICAgICAgIExvY2FsMCA9IEFyZzAKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u
IChWQVJNLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgRmllbGQg
KFZBUk0sIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgVkFSUiwgICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBMb2NhbDEg
PSBWQVJSIC8qIFxfU0JfLlBDSTAuR1AxNy5SUFJNLlZBUlIgKi8KICAgICAgICAgICAgSWYg
KChBcmcxID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEg
Jj0gMHhGRgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgw
MikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweEZGRkYKICAg
ICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDMpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHgwMEZGRkZGRgogICAgICAgICAg
ICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCku
UlBSTSAoMHglWCAweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEsIExvY2FsMSwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgfQoKICAg
ICAgICBNZXRob2QgKFdQUk0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg
ICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAxKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJBLCBTeXN0
ZW1NZW1vcnksIExvY2FsMCwgMHgwMSkKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJBLCBB
bnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgVkFSRSwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
VkFSRSA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09
IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24g
KFZBUkIsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAyKQogICAgICAgICAgICAgICAgRmll
bGQgKFZBUkIsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBWQVJGLCAgIDE2CiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgVkFSRiA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNl
SWYgKChBcmcxID09IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVy
YXRpb25SZWdpb24gKFZBUkMsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAzKQogICAgICAg
ICAgICAgICAgRmllbGQgKFZBUkMsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWQVJHLCAgIDI0CiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgVkFSRyA9IEFyZzIKICAgICAgICAgICAgfQogICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJl
Z2lvbiAoVkFSRCwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAg
ICBGaWVsZCAoVkFSRCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFZBUkgsICAgMzIKICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBWQVJIID0gQXJnMgogICAgICAgICAgICB9CgogICAgICAgICAg
ICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuV1BSTSAoMHglWCAweCVY
IDB4JVgpXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBBcmcyLCAweDAwLCAweDAwKQogICAgICAg
IH0KCiAgICAgICAgTWV0aG9kIChTUERQLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsK
ICAgICAgICAgICAgTG9jYWw1ID0gMHg3RkZGRkZGRgogICAgICAgICAgICBMb2NhbDUgfD0g
MHg4MDAwMDAwMAogICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDAKICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPD0gMHgxRikpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgIFdo
aWxlICgoTG9jYWwxIDw9IDB4MDcpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIExvY2FsMyA9ICgoKEFyZzAgPDwgMHgxNCkgJiAweDBGRjAwMDAwKSB8ICgoTG9j
YWwwIDw8IAogICAgICAgICAgICAgICAgICAgICAgICAweDBGKSAmIDB4MDAwRjgwMDApKQog
ICAgICAgICAgICAgICAgICAgIExvY2FsMyB8PSAoKExvY2FsMSA8PCAweDBDKSAmIDB4NzAw
MCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBSUFJNICgoTTA4MyArIExvY2FsMyks
IDB4MDQpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw0ICE9IExvY2FsNSkgJiYg
KExvY2FsNCAhPSAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDIgfD0gKDB4MDEgPDwgTG9jYWwwKQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxKysKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuU1BEUCAo
MHglWCkgPSAweCVYXG4iLCBEQURSLCBBcmcwLCBMb2NhbDIsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgIFJldHVybiAoTG9jYWwyKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k
IChTUENILCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWww
ID0gMHgwMAogICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoQXJnMCArIDB4MzQpLCAweDAx
KQogICAgICAgICAgICBXaGlsZSAoKExvY2FsMSAhPSAweDAwKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTG9jYWwyID0gUlBSTSAoKERBRFIgKyBMb2NhbDEpLCAweDAxKQog
ICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwyID09IDB4MDApIHx8IChMb2NhbDIgPT0gMHhG
RikpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gQXJnMSkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwxCiAg
ICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIChMb2NhbDEgKyAweDAxKSksIDB4MDEpCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNz
ICgweCVYKS5TUENIICgweCVYLCAweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEs
IExvY2FsMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAg
ICAgfQoKICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBT
dGF0dXMKICAgICAgICB7CiAgICAgICAgICAgIElmICgoKERTVEEgPT0gMHhFRSkgfHwgKEVT
VEEgPT0gMHhFRSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERCVVMg
PT0gMHhFRUVFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo
Q29uZFJlZk9mICheXkVCVVMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgREJVUyA9IF5eRUJVUyAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgREJVUyA9IDB4MDAKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYg
KChEQlVTICE9IDB4RUVFRSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgSWYgKChEQURSID09IDB4RUVFRUVFRUUpKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKCgoX0FEUiA8PCAweDBDKSAmIDB4NzAw
MCkgfCAoKF9BRFIgPj4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxKSAmIDB4
MDAwRjgwMDApKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gKChEQlVTIDw8
IDB4MTQpICYgMHgwRkYwMDAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgREFEUiA9IChN
MDgzICsgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gMHg3RkZGRkZGRgogICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAw
eDgwMDAwMDAwCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUlBSTSAoKERBRFIgKyAw
eDAwKSwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgPT0gTG9jYWww
KSB8fCAoTG9jYWwxID09IDB4MDApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIERTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIEVT
VEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoREJVUyAhPSAweDAwKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwyID0gXl5TUENIICheXkRBRFIsIDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBJZiAoKCheXlJQUk0gKCheXkRBRFIgKyAoTG9jYWwyICsgMHgxNCkpLCAweDAxKSAm
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDApID09IDB4NDApKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9
IDB4RUUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNl
SWYgKChSUFJNICgoREFEUiArIDB4MEEpLCAweDAyKSA9PSAweDA2MDQpKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRUJVUyA9IFJQUk0gKChEQURS
ICsgMHgxOSksIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IFNQQ0gg
KERBRFIsIDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKChSUFJNICgoREFE
UiArIChMb2NhbDIgKyAweDAyKSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MSkgPj4gMHgwNCkgJiAweDBGKSA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQlVTID09IDB4MDApKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9
IDB4RUUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2VJZiAoKFNQRFAgKEVCVVMpID09IDB4MDApKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEg
PSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKFJQ
Uk0gKChEQURSICsgKExvY2FsMiArIDB4MUEpKSwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAweDAxKSAmIDB4NDApID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChSUFJNICgoREFEUiArIChMb2Nh
bDIgKyAweDE0KSksIDB4MDEpICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MHg0MCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBG
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlSWYgKChFQlVTID09IDB4MDApKQogICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwRgogICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs
c2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERTVEEg
PSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDAwCiAgICAgICAg
ICAgICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
fQoKICAgICAgICAgICAgSWYgKCgoKFBDU0EgPT0gMHgwMSkgJiYgKFBXU1QgPT0gMHhEMykp
ICYmIChQVzNTID09IDB4MDEpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFdT
VCA9IDB4RDAKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoKFBDU0EgPT0gMHgw
MCkgJiYgKFBXU1QgPT0gMHhEMCkpICYmIChQVzNTID09IDB4MDApKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgUFdTVCA9IDB4RDMKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgSWYgKENvbmRSZWZPZiAoU1NUQSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IFNTVEEgKCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1Q
Q0llIEFkZHJlc3MgKDB4JVgpLl9TVEEgPSAweCVYICBQV1NUID0gMHglWCAgREJVUyA9IDB4
JVggIEVTVEEgPSAweCVYICBFQlVTID0gMHglWFxuIiwgREFEUiwgRFNUQSwgUFdTVCwgREJV
UywgRVNUQSwgRUJVUykKICAgICAgICAgICAgUmV0dXJuIChEU1RBKSAvKiBcX1NCXy5QQ0kw
LkdQMTcuRFNUQSAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBTZXJp
YWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgIHsKICAgICAgICAgICAgTG9j
YWwwID0gMHg3RkZGRkZGRgogICAgICAgICAgICBMb2NhbDAgfD0gMHg4MDAwMDAwMAogICAg
ICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIDB4MDApLCAweDA0KQogICAgICAgICAg
ICBJZiAoKChMb2NhbDEgPT0gTG9jYWwwKSB8fCAoTG9jYWwxID09IDB4MDApKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUENTQSA9IDB4MDAKICAgICAgICAgICAgICAgIFBX
U1QgPSAweEQzCiAgICAgICAgICAgICAgICBQVzNTID0gMHgwMAogICAgICAgICAgICB9CiAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUENTQSA9IDB4
MDEKICAgICAgICAgICAgICAgIFBXU1QgPSAweEQwCiAgICAgICAgICAgICAgICBQVzNTID0g
MHgwMQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUg
QWRkcmVzcyAoMHglWCkuX0lOSSAgUENTQSA9IDB4JVggIFBXU1QgPSAweCVYICBQVzNTID0g
MHglWFxuIiwgREFEUiwgUENTQSwgUFdTVCwgUFczUywgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgSWYgKENvbmRSZWZPZiAoU0lOSSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IFNJTkkgKCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUkVH
LCAyLCBTZXJpYWxpemVkKSAgLy8gX1JFRzogUmVnaW9uIEF2YWlsYWJpbGl0eQogICAgICAg
IHsKICAgICAgICAgICAgSWYgKCgoQXJnMCA9PSAweDAyKSAmJiAoQXJnMSA9PSAweDAxKSkp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoRFNUQSA9PSAweDBGKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChSUFJNICgoREFEUiAr
IDB4MDQpLCAweDAxKSAmIDB4RkMpID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgUENTQSA9IDB4MDEKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgo
KEFyZzAgPT0gMHgwMikgJiYgKEFyZzEgPT0gMHgwMCkpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBQQ1NBID0gMHgwMAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAo
Q29uZFJlZk9mIChTUkVHKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU1JFRyAo
QXJnMCwgQXJnMSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFT
TC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9SRUcgKCVkICVkKSAgUENTQSA9ICVkXG4iLCBEQURS
LCBBcmcwLCBBcmcxLCBQQ1NBLCAweDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0
aG9kIChfRFNXLCAzLCBTZXJpYWxpemVkKSAgLy8gX0RTVzogRGV2aWNlIFNsZWVwIFdha2UK
ICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFNEU1cpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBTRFNXIChBcmcwLCBBcmcxLCBBcmcyKQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCku
X0RTVyAoJWQgJWQgJWQpICBQQ1NBID0gJWRcbiIsIERBRFIsIEFyZzAsIEFyZzEsIEFyZzIs
IFBDU0EsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9QUzAsIDAsIFNlcmlh
bGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgewogICAgICAgICAgICBN
NDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1BTMFxuIiwgREFEUiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo
UFBTMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBQUzAgKCkKICAgICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBTZXJpYWxpemVkKSAg
Ly8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAg
T0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9QUzNcbiIsIERBRFIsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQUFMzICgpCiAgICAgICAgICAgIH0KICAg
ICAgICB9CgogICAgICAgIFBvd2VyUmVzb3VyY2UgKFBXUlMsIDB4MDAsIDB4MDAwMCkKICAg
ICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9T
VEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0t
QVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fU1RBID0gMHglWFxuIiwgREFEUiwgUFcz
UywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIElmIChDb25kUmVm
T2YgKFBTVEEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBTVEEg
KCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBXM1MpIC8q
IFxfU0JfLlBDSTAuR1AxNy5QVzNTICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l
dGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgSWYgKChQVzNTID09IDB4MDApKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFBXM1MgPSAweDAxCiAgICAgICAgICAgICAgICAg
ICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX09OID0gMHgl
WFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChQX09OKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIFBfT04gKCkKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX09G
RiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoKFBXM1MgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgUFczUyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBNNDYw
ICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT0ZGID0gMHglWFxuIiwg
REFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAg
ICBJZiAoQ29uZFJlZk9mIChQX09GKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIFBfT0YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE5hbWUgKF9QUjAs
IFBhY2thZ2UgKDB4MDEpICAvLyBfUFIwOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQwCiAgICAg
ICAgewogICAgICAgICAgICBQV1JTCiAgICAgICAgfSkKICAgICAgICBOYW1lIChfUFIzLCBQ
YWNrYWdlICgweDAxKSAgLy8gX1BSMzogUG93ZXIgUmVzb3VyY2VzIGZvciBEM2hvdAogICAg
ICAgIHsKICAgICAgICAgICAgUFdSUwogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxf
U0IuUENJMC5HUDE3LlZHQSkKICAgIHsKICAgICAgICBNZXRob2QgKF9TMFcsIDAsIFNlcmlh
bGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgIHsKICAgICAg
ICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICBJZiAoKFxGMEQzICE9IDB4NTUpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBcRjBEMwogICAgICAgICAg
ICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCku
X1MwVyAoKSAgUmV0dXJuICVkXG4iLCBEQURSLCBMb2NhbDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAg
TmFtZSAoREFEUiwgMHhFRUVFRUVFRSkKICAgICAgICBOYW1lIChEU1RBLCAweEVFKQogICAg
ICAgIE5hbWUgKERCVVMsIDB4RUVFRSkKICAgICAgICBOYW1lIChQQ1NBLCAweDAwKQogICAg
ICAgIE5hbWUgKFBXU1QsIDB4RDMpCiAgICAgICAgTmFtZSAoRVNUQSwgMHhFRSkKICAgICAg
ICBOYW1lIChFQlVTLCAweEVFRUUpCiAgICAgICAgTmFtZSAoUFczUywgMHgwMCkKICAgICAg
ICBNZXRob2QgKFJQUk0sIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg
ICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTSwgU3lz
dGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChWQVJNLCBBbnlB
Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZB
UlIsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwxID0gVkFSUiAvKiBc
X1NCXy5QQ0kwLkdQMTcuVkdBXy5SUFJNLlZBUlIgKi8KICAgICAgICAgICAgSWYgKChBcmcx
ID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHhG
RgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMikpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweEZGRkYKICAgICAgICAg
ICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDMpKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHgwMEZGRkZGRgogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUlBSTSAo
MHglWCAweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEsIExvY2FsMSwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgfQoKICAgICAgICBN
ZXRob2QgKFdQUk0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBM
b2NhbDAgPSBBcmcwCiAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAxKSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJBLCBTeXN0ZW1NZW1v
cnksIExvY2FsMCwgMHgwMSkKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJBLCBBbnlBY2Ms
IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgVkFSRSwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgVkFSRSA9
IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDIp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkIs
IFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAyKQogICAgICAgICAgICAgICAgRmllbGQgKFZB
UkIsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBWQVJGLCAgIDE2CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgVkFSRiA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChB
cmcxID09IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25S
ZWdpb24gKFZBUkMsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAzKQogICAgICAgICAgICAg
ICAgRmllbGQgKFZBUkMsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBWQVJHLCAgIDI0CiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgVkFSRyA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAg
ICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo
VkFSRCwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAgICBGaWVs
ZCAoVkFSRCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFZBUkgsICAgMzIKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBWQVJIID0gQXJnMgogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYw
ICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuV1BSTSAoMHglWCAweCVYIDB4JVgp
XG4iLCBEQURSLCBBcmcwLCBBcmcxLCBBcmcyLCAweDAwLCAweDAwKQogICAgICAgIH0KCiAg
ICAgICAgTWV0aG9kIChTUERQLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAg
ICAgICAgTG9jYWw1ID0gMHg3RkZGRkZGRgogICAgICAgICAgICBMb2NhbDUgfD0gMHg4MDAw
MDAwMAogICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgIExvY2FsMCA9IDB4
MDAKICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPD0gMHgxRikpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgIFdoaWxlICgo
TG9jYWwxIDw9IDB4MDcpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IExvY2FsMyA9ICgoKEFyZzAgPDwgMHgxNCkgJiAweDBGRjAwMDAwKSB8ICgoTG9jYWwwIDw8
IAogICAgICAgICAgICAgICAgICAgICAgICAweDBGKSAmIDB4MDAwRjgwMDApKQogICAgICAg
ICAgICAgICAgICAgIExvY2FsMyB8PSAoKExvY2FsMSA8PCAweDBDKSAmIDB4NzAwMCkKICAg
ICAgICAgICAgICAgICAgICBMb2NhbDQgPSBSUFJNICgoTTA4MyArIExvY2FsMyksIDB4MDQp
CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw0ICE9IExvY2FsNSkgJiYgKExvY2Fs
NCAhPSAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDIgfD0gKDB4MDEgPDwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxKysKICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuU1BEUCAoMHglWCkg
PSAweCVYXG4iLCBEQURSLCBBcmcwLCBMb2NhbDIsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgIFJldHVybiAoTG9jYWwyKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChTUENI
LCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gMHgw
MAogICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoQXJnMCArIDB4MzQpLCAweDAxKQogICAg
ICAgICAgICBXaGlsZSAoKExvY2FsMSAhPSAweDAwKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTG9jYWwyID0gUlBSTSAoKERBRFIgKyBMb2NhbDEpLCAweDAxKQogICAgICAg
ICAgICAgICAgSWYgKCgoTG9jYWwyID09IDB4MDApIHx8IChMb2NhbDIgPT0gMHhGRikpKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gQXJnMSkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwxCiAgICAgICAg
ICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBM
b2NhbDEgPSBSUFJNICgoREFEUiArIChMb2NhbDEgKyAweDAxKSksIDB4MDEpCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVY
KS5TUENIICgweCVYLCAweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEsIExvY2Fs
MCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgfQoK
ICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMK
ICAgICAgICB7CiAgICAgICAgICAgIElmICgoKERTVEEgPT0gMHhFRSkgfHwgKEVTVEEgPT0g
MHhFRSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERCVVMgPT0gMHhF
RUVFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl
Zk9mICheXkVCVVMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgREJVUyA9IF5eRUJVUyAvKiBcX1NCXy5QQ0kwLkdQMTcuRUJVUyAqLwogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEQlVTID0gMHgwMAogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKERC
VVMgIT0gMHhFRUVFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ
ZiAoKERBRFIgPT0gMHhFRUVFRUVFRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoKChfQURSIDw8IDB4MEMpICYgMHg3MDAwKSB8
ICgoX0FEUiA+PiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEpICYgMHgwMDBG
ODAwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAoKERCVVMgPDwgMHgx
NCkgJiAweDBGRjAwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICBEQURSID0gKE0wODMg
KyBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBM
b2NhbDAgPSAweDdGRkZGRkZGCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAw
MDAwMDAKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIDB4MDAp
LCAweDA0KQogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSA9PSBMb2NhbDApIHx8
IChMb2NhbDEgPT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9
IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEQlVTICE9IDB4MDApKQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDIgPSBeXlNQQ0ggKF5eREFEUiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElmICgoKF5eUlBSTSAoKF5eREFEUiArIChMb2NhbDIgKyAweDE0KSksIDB4MDEpICYgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCkgPT0gMHg0MCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhF
RQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAo
KFJQUk0gKChEQURSICsgMHgwQSksIDB4MDIpID09IDB4MDYwNCkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBFQlVTID0gUlBSTSAoKERBRFIgKyAw
eDE5KSwgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gU1BDSCAoREFE
UiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoKFJQUk0gKChEQURSICsg
KExvY2FsMiArIDB4MDIpKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxKSA+
PiAweDA0KSAmIDB4MEYpID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhF
RQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRWxzZUlmICgoU1BEUCAoRUJVUykgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4
MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKCgoUlBSTSAo
KERBRFIgKyAoTG9jYWwyICsgMHgxQSkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDEpICYgMHg0MCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURSICsgKExvY2FsMiAr
IDB4MTQpKSwgMHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQw
KSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2VJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4
MEYKICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAg
ICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAxKSAmJiAoUFdTVCA9PSAweEQzKSkgJiYg
KFBXM1MgPT0gMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQV1NUID0g
MHhEMAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAwKSAm
JiAoUFdTVCA9PSAweEQwKSkgJiYgKFBXM1MgPT0gMHgwMCkpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBQV1NUID0gMHhEMwogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoQ29uZFJlZk9mIChTU1RBKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU1NU
QSAoKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUg
QWRkcmVzcyAoMHglWCkuX1NUQSA9IDB4JVggIFBXU1QgPSAweCVYICBEQlVTID0gMHglWCAg
RVNUQSA9IDB4JVggIEVCVVMgPSAweCVYXG4iLCBEQURSLCBEU1RBLCBQV1NULCBEQlVTLCBF
U1RBLCBFQlVTKQogICAgICAgICAgICBSZXR1cm4gKERTVEEpIC8qIFxfU0JfLlBDSTAuR1Ax
Ny5WR0FfLkRTVEEgKi8KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgU2Vy
aWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICB7CiAgICAgICAgICAgIExv
Y2FsMCA9IDB4N0ZGRkZGRkYKICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMDAwMDAKICAg
ICAgICAgICAgTG9jYWwxID0gUlBSTSAoKERBRFIgKyAweDAwKSwgMHgwNCkKICAgICAgICAg
ICAgSWYgKCgoTG9jYWwxID09IExvY2FsMCkgfHwgKExvY2FsMSA9PSAweDAwKSkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIFBDU0EgPSAweDAwCiAgICAgICAgICAgICAgICBQ
V1NUID0gMHhEMwogICAgICAgICAgICAgICAgUFczUyA9IDB4MDAKICAgICAgICAgICAgfQog
ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBDU0EgPSAw
eDAxCiAgICAgICAgICAgICAgICBQV1NUID0gMHhEMAogICAgICAgICAgICAgICAgUFczUyA9
IDB4MDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0ll
IEFkZHJlc3MgKDB4JVgpLl9JTkkgIFBDU0EgPSAweCVYICBQV1NUID0gMHglWCAgUFczUyA9
IDB4JVhcbiIsIERBRFIsIFBDU0EsIFBXU1QsIFBXM1MsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgIElmIChDb25kUmVmT2YgKFNJTkkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBTSU5JICgpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1JF
RywgMiwgU2VyaWFsaXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkKICAgICAg
ICB7CiAgICAgICAgICAgIElmICgoKEFyZzAgPT0gMHgwMikgJiYgKEFyZzEgPT0gMHgwMSkp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERTVEEgPT0gMHgwRikpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoUlBSTSAoKERBRFIg
KyAweDA0KSwgMHgwMSkgJiAweEZDKSA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIFBDU0EgPSAweDAxCiAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAo
KChBcmcwID09IDB4MDIpICYmIChBcmcxID09IDB4MDApKSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgUENTQSA9IDB4MDAKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg
KENvbmRSZWZPZiAoU1JFRykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNSRUcg
KEFyZzAsIEFyZzEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1B
U0wtUENJZSBBZGRyZXNzICgweCVYKS5fUkVHICglZCAlZCkgIFBDU0EgPSAlZFxuIiwgREFE
UiwgQXJnMCwgQXJnMSwgUENTQSwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1l
dGhvZCAoX0RTVywgMywgU2VyaWFsaXplZCkgIC8vIF9EU1c6IERldmljZSBTbGVlcCBXYWtl
CiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChTRFNXKSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgU0RTVyAoQXJnMCwgQXJnMSwgQXJnMikKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgp
Ll9EU1cgKCVkICVkICVkKSAgUENTQSA9ICVkXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBBcmcy
LCBQQ1NBLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJp
YWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgIHsKICAgICAgICAgICAg
TTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9QUzBcbiIsIERBRFIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmIChDb25kUmVmT2Yg
KFBQUzApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQUFMwICgpCiAgICAgICAg
ICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkg
IC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIg
IE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUFMzXG4iLCBEQURSLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMzKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFBTMyAoKQogICAgICAgICAgICB9CiAg
ICAgICAgfQoKICAgICAgICBQb3dlclJlc291cmNlIChQV1JTLCAweDAwLCAweDAwMDApCiAg
ICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBf
U1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VN
LUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX1NUQSA9IDB4JVhcbiIsIERBRFIsIFBX
M1MsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJl
Zk9mIChQU1RBKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQU1RB
ICgpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQVzNTKSAv
KiBcX1NCXy5QQ0kwLkdQMTcuVkdBXy5QVzNTICovCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIE1ldGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChQVzNTID09IDB4MDApKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBXM1MgPSAweDAxCiAgICAgICAgICAg
ICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX09O
ID0gMHglWFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQX09OKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBfT04gKCkKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv
ZCAoX09GRiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBJZiAoKFBXM1MgPT0gMHgwMSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgUFczUyA9IDB4MDAKICAgICAgICAgICAgICAgICAg
ICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT0ZGID0gMHgl
WFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChQX09GKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIFBfT0YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE5hbWUg
KF9QUjAsIFBhY2thZ2UgKDB4MDEpICAvLyBfUFIwOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQw
CiAgICAgICAgewogICAgICAgICAgICBQV1JTCiAgICAgICAgfSkKICAgICAgICBOYW1lIChf
UFIzLCBQYWNrYWdlICgweDAxKSAgLy8gX1BSMzogUG93ZXIgUmVzb3VyY2VzIGZvciBEM2hv
dAogICAgICAgIHsKICAgICAgICAgICAgUFdSUwogICAgICAgIH0pCiAgICB9CgogICAgU2Nv
cGUgKFxfU0IuUENJMC5HUDE3LkhEQVUpCiAgICB7CiAgICAgICAgTWV0aG9kIChfUzBXLCAw
LCBTZXJpYWxpemVkKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICB7
CiAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgSWYgKChcRjFEMyAhPSAw
eDU1KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gXEYxRDMKICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3Mg
KDB4JVgpLl9TMFcgKCkgIFJldHVybiAlZFxuIiwgREFEUiwgTG9jYWwwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICB9Cgog
ICAgICAgIE5hbWUgKERBRFIsIDB4RUVFRUVFRUUpCiAgICAgICAgTmFtZSAoRFNUQSwgMHhF
RSkKICAgICAgICBOYW1lIChEQlVTLCAweEVFRUUpCiAgICAgICAgTmFtZSAoUENTQSwgMHgw
MCkKICAgICAgICBOYW1lIChQV1NULCAweEQzKQogICAgICAgIE5hbWUgKEVTVEEsIDB4RUUp
CiAgICAgICAgTmFtZSAoRUJVUywgMHhFRUVFKQogICAgICAgIE5hbWUgKFBXM1MsIDB4MDAp
CiAgICAgICAgTWV0aG9kIChSUFJNLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAg
ICAgICAgICAgTG9jYWwwID0gQXJnMAogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZB
Uk0sIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICBGaWVsZCAoVkFS
TSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBWQVJSLCAgIDMyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIExvY2FsMSA9IFZB
UlIgLyogXF9TQl8uUENJMC5HUDE3LkhEQVUuUlBSTS5WQVJSICovCiAgICAgICAgICAgIElm
ICgoQXJnMSA9PSAweDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwx
ICY9IDB4RkYKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4
MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHhGRkZGCiAg
ICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAzKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxICY9IDB4MDBGRkZGRkYKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgp
LlJQUk0gKDB4JVggMHglWCkgPSAweCVYXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBMb2NhbDEs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgIH0KCiAg
ICAgICAgTWV0aG9kIChXUFJNLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAg
ICAgICAgTG9jYWwwID0gQXJnMAogICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMSkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSQSwgU3lz
dGVtTWVtb3J5LCBMb2NhbDAsIDB4MDEpCiAgICAgICAgICAgICAgICBGaWVsZCAoVkFSQSwg
QW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFZBUkUsICAgOAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IFZBUkUgPSBBcmcyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9
PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u
IChWQVJCLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMikKICAgICAgICAgICAgICAgIEZp
ZWxkIChWQVJCLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgVkFSRiwgICAxNgogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIFZBUkYgPSBBcmcyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxz
ZUlmICgoQXJnMSA9PSAweDAzKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT3Bl
cmF0aW9uUmVnaW9uIChWQVJDLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMykKICAgICAg
ICAgICAgICAgIEZpZWxkIChWQVJDLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkFSRywgICAyNAogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIFZBUkcgPSBBcmcyCiAgICAgICAgICAgIH0KICAg
ICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25S
ZWdpb24gKFZBUkQsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICAg
ICAgRmllbGQgKFZBUkQsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBWQVJILCAgIDMyCiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgVkFSSCA9IEFyZzIKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLldQUk0gKDB4JVggMHgl
WCAweCVYKVxuIiwgREFEUiwgQXJnMCwgQXJnMSwgQXJnMiwgMHgwMCwgMHgwMCkKICAgICAg
ICB9CgogICAgICAgIE1ldGhvZCAoU1BEUCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7
CiAgICAgICAgICAgIExvY2FsNSA9IDB4N0ZGRkZGRkYKICAgICAgICAgICAgTG9jYWw1IHw9
IDB4ODAwMDAwMDAKICAgICAgICAgICAgTG9jYWwyID0gMHgwMAogICAgICAgICAgICBMb2Nh
bDAgPSAweDAwCiAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwIDw9IDB4MUYpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAwCiAgICAgICAgICAgICAgICBX
aGlsZSAoKExvY2FsMSA8PSAweDA3KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDMgPSAoKChBcmcwIDw8IDB4MTQpICYgMHgwRkYwMDAwMCkgfCAoKExv
Y2FsMCA8PCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwRikgJiAweDAwMEY4MDAwKSkK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDMgfD0gKChMb2NhbDEgPDwgMHgwQykgJiAweDcw
MDApCiAgICAgICAgICAgICAgICAgICAgTG9jYWw0ID0gUlBSTSAoKE0wODMgKyBMb2NhbDMp
LCAweDA0KQogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsNCAhPSBMb2NhbDUpICYm
IChMb2NhbDQgIT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwyIHw9ICgweDAxIDw8IExvY2FsMCkKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoTG9jYWwxID09IDB4MDApKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMSsrCiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlNQRFAg
KDB4JVgpID0gMHglWFxuIiwgREFEUiwgQXJnMCwgTG9jYWwyLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMikKICAgICAgICB9CgogICAgICAgIE1ldGhv
ZCAoU1BDSCwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2Fs
MCA9IDB4MDAKICAgICAgICAgICAgTG9jYWwxID0gUlBSTSAoKEFyZzAgKyAweDM0KSwgMHgw
MSkKICAgICAgICAgICAgV2hpbGUgKChMb2NhbDEgIT0gMHgwMCkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIExvY2FsMiA9IFJQUk0gKChEQURSICsgTG9jYWwxKSwgMHgwMSkK
ICAgICAgICAgICAgICAgIElmICgoKExvY2FsMiA9PSAweDAwKSB8fCAoTG9jYWwyID09IDB4
RkYpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBCcmVhawogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoTG9jYWwyID09IEFyZzEpKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMQog
ICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgTG9jYWwxID0gUlBSTSAoKERBRFIgKyAoTG9jYWwxICsgMHgwMSkpLCAweDAxKQog
ICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVz
cyAoMHglWCkuU1BDSCAoMHglWCwgMHglWCkgPSAweCVYXG4iLCBEQURSLCBBcmcwLCBBcmcx
LCBMb2NhbDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAg
ICAgIH0KCiAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NUQTog
U3RhdHVzCiAgICAgICAgewogICAgICAgICAgICBJZiAoKChEU1RBID09IDB4RUUpIHx8IChF
U1RBID09IDB4RUUpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChEQlVT
ID09IDB4RUVFRSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg
KENvbmRSZWZPZiAoXl5FQlVTKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIERCVVMgPSBeXkVCVVMgLyogXF9TQl8uUENJMC5HUDE3LkVCVVMgKi8K
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgREJVUyA9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
SWYgKChEQlVTICE9IDB4RUVFRSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgSWYgKChEQURSID09IDB4RUVFRUVFRUUpKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKCgoX0FEUiA8PCAweDBDKSAmIDB4
NzAwMCkgfCAoKF9BRFIgPj4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxKSAm
IDB4MDAwRjgwMDApKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gKChEQlVT
IDw8IDB4MTQpICYgMHgwRkYwMDAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgREFEUiA9
IChNMDgzICsgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwwID0gMHg3RkZGRkZGRgogICAgICAgICAgICAgICAgICAgIExvY2FsMCB8
PSAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUlBSTSAoKERBRFIg
KyAweDAwKSwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgPT0gTG9j
YWwwKSB8fCAoTG9jYWwxID09IDB4MDApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAg
IEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoREJVUyAhPSAweDAw
KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwyID0gXl5TUENIICheXkRBRFIsIDB4MTApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKCheXlJQUk0gKCheXkRBRFIgKyAoTG9jYWwyICsgMHgxNCkpLCAweDAx
KSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDApID09IDB4NDApKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNU
QSA9IDB4RUUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF
bHNlSWYgKChSUFJNICgoREFEUiArIDB4MEEpLCAweDAyKSA9PSAweDA2MDQpKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRUJVUyA9IFJQUk0gKChE
QURSICsgMHgxOSksIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IFNQ
Q0ggKERBRFIsIDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKChSUFJNICgo
REFEUiArIChMb2NhbDIgKyAweDAyKSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
MHgwMSkgPj4gMHgwNCkgJiAweDBGKSA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQlVTID09IDB4MDApKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNU
QSA9IDB4RUUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2VJZiAoKFNQRFAgKEVCVVMpID09IDB4MDApKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERT
VEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgo
KFJQUk0gKChEQURSICsgKExvY2FsMiArIDB4MUEpKSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAweDAxKSAmIDB4NDApID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChSUFJNICgoREFEUiArIChM
b2NhbDIgKyAweDE0KSksIDB4MDEpICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHg0MCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAw
eDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChFQlVTID09IDB4MDApKQogICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgw
RgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBG
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwRgogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERT
VEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDAwCiAgICAg
ICAgICAgICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgSWYgKCgoKFBDU0EgPT0gMHgwMSkgJiYgKFBXU1QgPT0gMHhE
MykpICYmIChQVzNTID09IDB4MDEpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
UFdTVCA9IDB4RDAKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoKFBDU0EgPT0g
MHgwMCkgJiYgKFBXU1QgPT0gMHhEMCkpICYmIChQVzNTID09IDB4MDApKSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUFdTVCA9IDB4RDMKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgSWYgKENvbmRSZWZPZiAoU1NUQSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFNTVEEgKCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFT
TC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9TVEEgPSAweCVYICBQV1NUID0gMHglWCAgREJVUyA9
IDB4JVggIEVTVEEgPSAweCVYICBFQlVTID0gMHglWFxuIiwgREFEUiwgRFNUQSwgUFdTVCwg
REJVUywgRVNUQSwgRUJVUykKICAgICAgICAgICAgUmV0dXJuIChEU1RBKSAvKiBcX1NCXy5Q
Q0kwLkdQMTcuSERBVS5EU1RBICovCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9JTkks
IDAsIFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgewogICAgICAg
ICAgICBMb2NhbDAgPSAweDdGRkZGRkZGCiAgICAgICAgICAgIExvY2FsMCB8PSAweDgwMDAw
MDAwCiAgICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChEQURSICsgMHgwMCksIDB4MDQpCiAg
ICAgICAgICAgIElmICgoKExvY2FsMSA9PSBMb2NhbDApIHx8IChMb2NhbDEgPT0gMHgwMCkp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQQ1NBID0gMHgwMAogICAgICAgICAg
ICAgICAgUFdTVCA9IDB4RDMKICAgICAgICAgICAgICAgIFBXM1MgPSAweDAwCiAgICAgICAg
ICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQ
Q1NBID0gMHgwMQogICAgICAgICAgICAgICAgUFdTVCA9IDB4RDAKICAgICAgICAgICAgICAg
IFBXM1MgPSAweDAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1B
U0wtUENJZSBBZGRyZXNzICgweCVYKS5fSU5JICBQQ1NBID0gMHglWCAgUFdTVCA9IDB4JVgg
IFBXM1MgPSAweCVYXG4iLCBEQURSLCBQQ1NBLCBQV1NULCBQVzNTLCAweDAwLCAweDAwKQog
ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChTSU5JKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgU0lOSSAoKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRo
b2QgKF9SRUcsIDIsIFNlcmlhbGl6ZWQpICAvLyBfUkVHOiBSZWdpb24gQXZhaWxhYmlsaXR5
CiAgICAgICAgewogICAgICAgICAgICBJZiAoKChBcmcwID09IDB4MDIpICYmIChBcmcxID09
IDB4MDEpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChEU1RBID09IDB4
MEYpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0g
KChEQURSICsgMHgwNCksIDB4MDEpICYgMHhGQykgPT0gMHgwNCkpCiAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBQQ1NBID0gMHgwMQogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgSWYgKCgoQXJnMCA9PSAweDAyKSAmJiAoQXJnMSA9PSAweDAwKSkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIFBDU0EgPSAweDAwCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIElmIChDb25kUmVmT2YgKFNSRUcpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBTUkVHIChBcmcwLCBBcmcxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgi
ICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1JFRyAoJWQgJWQpICBQQ1NBID0gJWRc
biIsIERBRFIsIEFyZzAsIEFyZzEsIFBDU0EsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAg
ICAgICBNZXRob2QgKF9EU1csIDMsIFNlcmlhbGl6ZWQpICAvLyBfRFNXOiBEZXZpY2UgU2xl
ZXAgV2FrZQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoU0RTVykpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNEU1cgKEFyZzAsIEFyZzEsIEFyZzIpCiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNz
ICgweCVYKS5fRFNXICglZCAlZCAlZCkgIFBDU0EgPSAlZFxuIiwgREFEUiwgQXJnMCwgQXJn
MSwgQXJnMiwgUENTQSwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BTMCwg
MCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICB7CiAgICAg
ICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUFMwXG4iLCBE
QURSLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoQ29u
ZFJlZk9mIChQUFMwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFBTMCAoKQog
ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlh
bGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgewogICAgICAgICAgICBN
NDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1BTM1xuIiwgREFEUiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo
UFBTMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgICAgUG93ZXJSZXNvdXJjZSAoUFdSUywgMHgwMCwgMHgw
MDAwKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVk
KSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAg
KCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5QV1JTLl9TVEEgPSAweCVYXG4iLCBE
QURSLCBQVzNTLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgSWYg
KENvbmRSZWZPZiAoUFNUQSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUFNUQSAoKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAo
UFczUykgLyogXF9TQl8uUENJMC5HUDE3LkhEQVUuUFczUyAqLwogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBNZXRob2QgKF9PTiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2Vy
IE9uCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoUFczUyA9PSAweDAwKSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQVzNTID0gMHgwMQogICAg
ICAgICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5Q
V1JTLl9PTiA9IDB4JVhcbiIsIERBRFIsIFBXM1MsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUF9PTikpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBQX09OICgpCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBNZXRob2QgKF9PRkYsIDAsIFNlcmlhbGl6ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChQVzNTID09IDB4MDEpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBXM1MgPSAweDAwCiAgICAgICAgICAg
ICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX09G
RiA9IDB4JVhcbiIsIERBRFIsIFBXM1MsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUF9PRikpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBQX09GICgpCiAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAg
ICBOYW1lIChfUFIwLCBQYWNrYWdlICgweDAxKSAgLy8gX1BSMDogUG93ZXIgUmVzb3VyY2Vz
IGZvciBEMAogICAgICAgIHsKICAgICAgICAgICAgUFdSUwogICAgICAgIH0pCiAgICAgICAg
TmFtZSAoX1BSMywgUGFja2FnZSAoMHgwMSkgIC8vIF9QUjM6IFBvd2VyIFJlc291cmNlcyBm
b3IgRDNob3QKICAgICAgICB7CiAgICAgICAgICAgIFBXUlMKICAgICAgICB9KQogICAgfQoK
ICAgIFNjb3BlIChcX1NCLlBDSTAuR1AxNy5YSEMwKQogICAgewogICAgICAgIE1ldGhvZCAo
X1MwVywgMCwgU2VyaWFsaXplZCkgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAg
ICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgIElmICgoXEYz
RDMgIT0gMHg1NSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IFxG
M0QzCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBB
ZGRyZXNzICgweCVYKS5fUzBXICgpICBSZXR1cm4gJWRcbiIsIERBRFIsIExvY2FsMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAg
ICAgfQoKICAgICAgICBNZXRob2QgKF9QUlcsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQ
b3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIg
IE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUFJXICgpICBSZXR1cm4gUGFja2FnZSAo
MikgezB4MTksIDB4MDR9XG4iLCBEQURSLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIDB4MUEsIAogICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICB9
KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQUFMwLCAwLCBTZXJpYWxpemVkKQogICAg
ICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzQzAxKQogICAgICAgIH0KCiAgICAgICAgTWV0
aG9kIChQUFMzLCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTAwMCAo
MHgzQzAzKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQU1RBLCAwLCBTZXJpYWxpemVk
KQogICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzQzA1KQogICAgICAgIH0KCiAgICAg
ICAgTWV0aG9kIChQX09OLCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg
TTAwMCAoMHgzQzA2KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQX09GLCAwLCBTZXJp
YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTAwMCAoMHgzQzA4KQogICAgICAgIH0K
CiAgICAgICAgTmFtZSAoREFEUiwgMHhFRUVFRUVFRSkKICAgICAgICBOYW1lIChEU1RBLCAw
eEVFKQogICAgICAgIE5hbWUgKERCVVMsIDB4RUVFRSkKICAgICAgICBOYW1lIChQQ1NBLCAw
eDAwKQogICAgICAgIE5hbWUgKFBXU1QsIDB4RDMpCiAgICAgICAgTmFtZSAoRVNUQSwgMHhF
RSkKICAgICAgICBOYW1lIChFQlVTLCAweEVFRUUpCiAgICAgICAgTmFtZSAoUFczUywgMHgw
MCkKICAgICAgICBNZXRob2QgKFJQUk0sIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewog
ICAgICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo
VkFSTSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChW
QVJNLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIFZBUlIsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwxID0g
VkFSUiAvKiBcX1NCXy5QQ0kwLkdQMTcuWEhDMC5SUFJNLlZBUlIgKi8KICAgICAgICAgICAg
SWYgKChBcmcxID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2Nh
bDEgJj0gMHhGRgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0g
MHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweEZGRkYK
ICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDMpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgJj0gMHgwMEZGRkZGRgogICAgICAg
ICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHgl
WCkuUlBSTSAoMHglWCAweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFyZzEsIExvY2Fs
MSwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgfQoK
ICAgICAgICBNZXRob2QgKFdQUk0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAg
ICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAxKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJBLCBT
eXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMSkKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJB
LCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgVkFSRSwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgVkFSRSA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcx
ID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp
b24gKFZBUkIsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAyKQogICAgICAgICAgICAgICAg
RmllbGQgKFZBUkIsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBWQVJGLCAgIDE2CiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgVkFSRiA9IEFyZzIKICAgICAgICAgICAgfQogICAgICAgICAgICBF
bHNlSWYgKChBcmcxID09IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBP
cGVyYXRpb25SZWdpb24gKFZBUkMsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAzKQogICAg
ICAgICAgICAgICAgRmllbGQgKFZBUkMsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWQVJHLCAgIDI0CiAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgVkFSRyA9IEFyZzIKICAgICAgICAgICAgfQog
ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlv
blJlZ2lvbiAoVkFSRCwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAg
ICAgICBGaWVsZCAoVkFSRCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFZBUkgsICAgMzIKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBWQVJIID0gQXJnMgogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuV1BSTSAoMHglWCAw
eCVYIDB4JVgpXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBBcmcyLCAweDAwLCAweDAwKQogICAg
ICAgIH0KCiAgICAgICAgTWV0aG9kIChTUERQLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg
IHsKICAgICAgICAgICAgTG9jYWw1ID0gMHg3RkZGRkZGRgogICAgICAgICAgICBMb2NhbDUg
fD0gMHg4MDAwMDAwMAogICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgIExv
Y2FsMCA9IDB4MDAKICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPD0gMHgxRikpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAg
IFdoaWxlICgoTG9jYWwxIDw9IDB4MDcpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIExvY2FsMyA9ICgoKEFyZzAgPDwgMHgxNCkgJiAweDBGRjAwMDAwKSB8ICgo
TG9jYWwwIDw8IAogICAgICAgICAgICAgICAgICAgICAgICAweDBGKSAmIDB4MDAwRjgwMDAp
KQogICAgICAgICAgICAgICAgICAgIExvY2FsMyB8PSAoKExvY2FsMSA8PCAweDBDKSAmIDB4
NzAwMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBSUFJNICgoTTA4MyArIExvY2Fs
MyksIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw0ICE9IExvY2FsNSkg
JiYgKExvY2FsNCAhPSAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDIgfD0gKDB4MDEgPDwgTG9jYWwwKQogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDEgPT0gMHgwMCkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxKysKICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICB9
CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuU1BE
UCAoMHglWCkgPSAweCVYXG4iLCBEQURSLCBBcmcwLCBMb2NhbDIsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgIFJldHVybiAoTG9jYWwyKQogICAgICAgIH0KCiAgICAgICAgTWV0
aG9kIChTUENILCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9j
YWwwID0gMHgwMAogICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoQXJnMCArIDB4MzQpLCAw
eDAxKQogICAgICAgICAgICBXaGlsZSAoKExvY2FsMSAhPSAweDAwKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTG9jYWwyID0gUlBSTSAoKERBRFIgKyBMb2NhbDEpLCAweDAx
KQogICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwyID09IDB4MDApIHx8IChMb2NhbDIgPT0g
MHhGRikpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gQXJnMSkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwx
CiAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIChMb2NhbDEgKyAweDAxKSksIDB4MDEp
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRy
ZXNzICgweCVYKS5TUENIICgweCVYLCAweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIEFy
ZzEsIExvY2FsMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAg
ICAgICAgfQoKICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RB
OiBTdGF0dXMKICAgICAgICB7CiAgICAgICAgICAgIElmICgoKERTVEEgPT0gMHhFRSkgfHwg
KEVTVEEgPT0gMHhFRSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERC
VVMgPT0gMHhFRUVFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ
ZiAoQ29uZFJlZk9mICheXkVCVVMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgREJVUyA9IF5eRUJVUyAvKiBcX1NCXy5QQ0kwLkdQMTcuRUJVUyAq
LwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEQlVTID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBJZiAoKERCVVMgIT0gMHhFRUVFKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBJZiAoKERBRFIgPT0gMHhFRUVFRUVFRSkpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoKChfQURSIDw8IDB4MEMpICYg
MHg3MDAwKSB8ICgoX0FEUiA+PiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEp
ICYgMHgwMDBGODAwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAoKERC
VVMgPDwgMHgxNCkgJiAweDBGRjAwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICBEQURS
ID0gKE0wODMgKyBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDAgPSAweDdGRkZGRkZGCiAgICAgICAgICAgICAgICAgICAgTG9jYWww
IHw9IDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFE
UiArIDB4MDApLCAweDA0KQogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSA9PSBM
b2NhbDApIHx8IChMb2NhbDEgPT0gMHgwMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAg
ICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEQlVTICE9IDB4
MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbDIgPSBeXlNQQ0ggKF5eREFEUiwgMHgxMCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoKF5eUlBSTSAoKF5eREFEUiArIChMb2NhbDIgKyAweDE0KSksIDB4
MDEpICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCkgPT0gMHg0MCkp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
U1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IEVsc2VJZiAoKFJQUk0gKChEQURSICsgMHgwQSksIDB4MDIpID09IDB4MDYwNCkpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBFQlVTID0gUlBSTSAo
KERBRFIgKyAweDE5KSwgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0g
U1BDSCAoREFEUiwgMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoKFJQUk0g
KChEQURSICsgKExvY2FsMiArIDB4MDIpKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDAxKSA+PiAweDA0KSAmIDB4MEYpID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVCVVMgPT0gMHgwMCkp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
U1RBID0gMHhFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRWxzZUlmICgoU1BEUCAoRUJVUykgPT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgw
MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRVNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYg
KCgoUlBSTSAoKERBRFIgKyAoTG9jYWwyICsgMHgxQSkpLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDEpICYgMHg0MCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURSICsg
KExvY2FsMiArIDB4MTQpKSwgMHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAweDQwKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9
IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEVCVVMgPT0gMHgwMCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAw
eDBGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4
MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweDBGCiAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
RFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNl
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MDAKICAg
ICAgICAgICAgICAgICAgICBFU1RBID0gMHhFRQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBJZiAoKCgoUENTQSA9PSAweDAxKSAmJiAoUFdTVCA9PSAw
eEQzKSkgJiYgKFBXM1MgPT0gMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBQV1NUID0gMHhEMAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKCgoUENTQSA9
PSAweDAwKSAmJiAoUFdTVCA9PSAweEQwKSkgJiYgKFBXM1MgPT0gMHgwMCkpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBQV1NUID0gMHhEMwogICAgICAgICAgICB9CgogICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChTU1RBKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgU1NUQSAoKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0t
QVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1NUQSA9IDB4JVggIFBXU1QgPSAweCVYICBEQlVT
ID0gMHglWCAgRVNUQSA9IDB4JVggIEVCVVMgPSAweCVYXG4iLCBEQURSLCBEU1RBLCBQV1NU
LCBEQlVTLCBFU1RBLCBFQlVTKQogICAgICAgICAgICBSZXR1cm4gKERTVEEpIC8qIFxfU0Jf
LlBDSTAuR1AxNy5YSEMwLkRTVEEgKi8KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0lO
SSwgMCwgU2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICB7CiAgICAg
ICAgICAgIExvY2FsMCA9IDB4N0ZGRkZGRkYKICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAw
MDAwMDAKICAgICAgICAgICAgTG9jYWwxID0gUlBSTSAoKERBRFIgKyAweDAwKSwgMHgwNCkK
ICAgICAgICAgICAgSWYgKCgoTG9jYWwxID09IExvY2FsMCkgfHwgKExvY2FsMSA9PSAweDAw
KSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBDU0EgPSAweDAwCiAgICAgICAg
ICAgICAgICBQV1NUID0gMHhEMwogICAgICAgICAgICAgICAgUFczUyA9IDB4MDAKICAgICAg
ICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IFBDU0EgPSAweDAxCiAgICAgICAgICAgICAgICBQV1NUID0gMHhEMAogICAgICAgICAgICAg
ICAgUFczUyA9IDB4MDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VN
LUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9JTkkgIFBDU0EgPSAweCVYICBQV1NUID0gMHgl
WCAgUFczUyA9IDB4JVhcbiIsIERBRFIsIFBDU0EsIFBXU1QsIFBXM1MsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFNJTkkpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBTSU5JICgpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1l
dGhvZCAoX1JFRywgMiwgU2VyaWFsaXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxp
dHkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoKEFyZzAgPT0gMHgwMikgJiYgKEFyZzEg
PT0gMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERTVEEgPT0g
MHgwRikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoUlBS
TSAoKERBRFIgKyAweDA0KSwgMHgwMSkgJiAweEZDKSA9PSAweDA0KSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBDU0EgPSAweDAxCiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBJZiAoKChBcmcwID09IDB4MDIpICYmIChBcmcxID09IDB4MDApKSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUENTQSA9IDB4MDAKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgSWYgKENvbmRSZWZPZiAoU1JFRykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFNSRUcgKEFyZzAsIEFyZzEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAg
KCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUkVHICglZCAlZCkgIFBDU0EgPSAl
ZFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgUENTQSwgMHgwMCwgMHgwMCkKICAgICAgICB9Cgog
ICAgICAgIE1ldGhvZCAoX0RTVywgMywgU2VyaWFsaXplZCkgIC8vIF9EU1c6IERldmljZSBT
bGVlcCBXYWtlCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChTRFNXKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU0RTVyAoQXJnMCwgQXJnMSwgQXJnMikK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJl
c3MgKDB4JVgpLl9EU1cgKCVkICVkICVkKSAgUENTQSA9ICVkXG4iLCBEQURSLCBBcmcwLCBB
cmcxLCBBcmcyLCBQQ1NBLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUFMw
LCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgIHsKICAg
ICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9QUzBcbiIs
IERBRFIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmIChD
b25kUmVmT2YgKFBQUzApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQUFMwICgp
CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2Vy
aWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICB7CiAgICAgICAgICAg
IE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fUFMzXG4iLCBEQURSLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoQ29uZFJlZk9m
IChQUFMzKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFBTMyAoKQogICAgICAg
ICAgICB9CiAgICAgICAgfQoKICAgICAgICBQb3dlclJlc291cmNlIChQV1JTLCAweDAwLCAw
eDAwMDApCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6
ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2
MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX1NUQSA9IDB4JVhcbiIs
IERBRFIsIFBXM1MsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBJ
ZiAoQ29uZFJlZk9mIChQU1RBKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBQU1RBICgpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJu
IChQVzNTKSAvKiBcX1NCXy5QQ0kwLkdQMTcuWEhDMC5QVzNTICovCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8gX09OXzogUG93
ZXIgT24KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChQVzNTID09IDB4MDAp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBXM1MgPSAweDAxCiAg
ICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgp
LlBXUlMuX09OID0gMHglWFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQX09OKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBfT04gKCkKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIE1ldGhvZCAoX09GRiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBXM1MgPT0gMHgwMSkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUFczUyA9IDB4MDAKICAgICAgICAg
ICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5f
T0ZGID0gMHglWFxuIiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQX09GKSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBfT0YgKCkKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAg
ICAgIE5hbWUgKF9QUjAsIFBhY2thZ2UgKDB4MDEpICAvLyBfUFIwOiBQb3dlciBSZXNvdXJj
ZXMgZm9yIEQwCiAgICAgICAgewogICAgICAgICAgICBQV1JTCiAgICAgICAgfSkKICAgICAg
ICBOYW1lIChfUFIzLCBQYWNrYWdlICgweDAxKSAgLy8gX1BSMzogUG93ZXIgUmVzb3VyY2Vz
IGZvciBEM2hvdAogICAgICAgIHsKICAgICAgICAgICAgUFdSUwogICAgICAgIH0pCiAgICB9
CgogICAgU2NvcGUgKFxfU0IuUENJMC5HUDE3LlhIQzEpCiAgICB7CiAgICAgICAgTWV0aG9k
IChfUzBXLCAwLCBTZXJpYWxpemVkKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUK
ICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAgSWYgKChc
RjNEMyAhPSAweDU1KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0g
XEYzRDMKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0ll
IEFkZHJlc3MgKDB4JVgpLl9TMFcgKCkgIFJldHVybiAlZFxuIiwgREFEUiwgTG9jYWwwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAg
ICAgICB9CgogICAgICAgIE1ldGhvZCAoX1BSVywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUlc6
IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAo
IiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9QUlcgKCkgIFJldHVybiBQYWNrYWdl
ICgyKSB7MHgxOSwgMHgwNH1cbiIsIERBRFIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgMHgxOSwgCiAgICAgICAgICAgICAgICAweDA0CiAgICAgICAgICAg
IH0pCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBQUzAsIDAsIFNlcmlhbGl6ZWQpCiAg
ICAgICAgewogICAgICAgICAgICBNMDAwICgweDNEMDEpCiAgICAgICAgfQoKICAgICAgICBN
ZXRob2QgKFBQUzMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAw
ICgweDNEMDMpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBTVEEsIDAsIFNlcmlhbGl6
ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNEMDUpCiAgICAgICAgfQoKICAg
ICAgICBNZXRob2QgKFBfT04sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg
ICBNMDAwICgweDNEMDYpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBfT0YsIDAsIFNl
cmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNMDAwICgweDNEMDgpCiAgICAgICAg
fQoKICAgICAgICBOYW1lIChEQURSLCAweEVFRUVFRUVFKQogICAgICAgIE5hbWUgKERTVEEs
IDB4RUUpCiAgICAgICAgTmFtZSAoREJVUywgMHhFRUVFKQogICAgICAgIE5hbWUgKFBDU0Es
IDB4MDApCiAgICAgICAgTmFtZSAoUFdTVCwgMHhEMykKICAgICAgICBOYW1lIChFU1RBLCAw
eEVFKQogICAgICAgIE5hbWUgKEVCVVMsIDB4RUVFRSkKICAgICAgICBOYW1lIChQVzNTLCAw
eDAwKQogICAgICAgIE1ldGhvZCAoUlBSTSwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICB7
CiAgICAgICAgICAgIExvY2FsMCA9IEFyZzAKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u
IChWQVJNLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgRmllbGQg
KFZBUk0sIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgVkFSUiwgICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBMb2NhbDEg
PSBWQVJSIC8qIFxfU0JfLlBDSTAuR1AxNy5YSEMxLlJQUk0uVkFSUiAqLwogICAgICAgICAg
ICBJZiAoKEFyZzEgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExv
Y2FsMSAmPSAweEZGCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9
PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxICY9IDB4RkZG
RgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMykpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweDAwRkZGRkZGCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgw
eCVYKS5SUFJNICgweCVYIDB4JVgpID0gMHglWFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgTG9j
YWwxLCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICB9
CgogICAgICAgIE1ldGhvZCAoV1BSTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAg
ICAgICAgICAgIExvY2FsMCA9IEFyZzAKICAgICAgICAgICAgSWYgKChBcmcxID09IDB4MDEp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkEs
IFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAxKQogICAgICAgICAgICAgICAgRmllbGQgKFZB
UkEsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBWQVJFLCAgIDgKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBWQVJFID0gQXJnMgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFy
ZzEgPT0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJl
Z2lvbiAoVkFSQiwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDIpCiAgICAgICAgICAgICAg
ICBGaWVsZCAoVkFSQiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIFZBUkYsICAgMTYKICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBWQVJGID0gQXJnMgogICAgICAgICAgICB9CiAgICAgICAgICAg
IEVsc2VJZiAoKEFyZzEgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IE9wZXJhdGlvblJlZ2lvbiAoVkFSQywgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDMpCiAg
ICAgICAgICAgICAgICBGaWVsZCAoVkFSQywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZBUkcsICAgMjQKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBWQVJHID0gQXJnMgogICAgICAgICAgICB9
CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT3BlcmF0
aW9uUmVnaW9uIChWQVJELCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAg
ICAgICAgIEZpZWxkIChWQVJELCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkFSSCwgICAzMgogICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgIFZBUkggPSBBcmcyCiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5XUFJNICgweCVY
IDB4JVggMHglWClcbiIsIERBRFIsIEFyZzAsIEFyZzEsIEFyZzIsIDB4MDAsIDB4MDApCiAg
ICAgICAgfQoKICAgICAgICBNZXRob2QgKFNQRFAsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg
ICAgewogICAgICAgICAgICBMb2NhbDUgPSAweDdGRkZGRkZGCiAgICAgICAgICAgIExvY2Fs
NSB8PSAweDgwMDAwMDAwCiAgICAgICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAgICAgICAg
TG9jYWwwID0gMHgwMAogICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8PSAweDFGKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMAogICAgICAgICAgICAg
ICAgV2hpbGUgKChMb2NhbDEgPD0gMHgwNykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwzID0gKCgoQXJnMCA8PCAweDE0KSAmIDB4MEZGMDAwMDApIHwg
KChMb2NhbDAgPDwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYpICYgMHgwMDBGODAw
MCkpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwzIHw9ICgoTG9jYWwxIDw8IDB4MEMpICYg
MHg3MDAwKQogICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IFJQUk0gKChNMDgzICsgTG9j
YWwzKSwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDQgIT0gTG9jYWw1
KSAmJiAoTG9jYWw0ICE9IDB4MDApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsMiB8PSAoMHgwMSA8PCBMb2NhbDApCiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKExvY2FsMSA9PSAweDAw
KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFr
CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDErKwog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5T
UERQICgweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIExvY2FsMiwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDIpCiAgICAgICAgfQoKICAgICAgICBN
ZXRob2QgKFNQQ0gsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBM
b2NhbDAgPSAweDAwCiAgICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChBcmcwICsgMHgzNCks
IDB4MDEpCiAgICAgICAgICAgIFdoaWxlICgoTG9jYWwxICE9IDB4MDApKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBMb2NhbDIgPSBSUFJNICgoREFEUiArIExvY2FsMSksIDB4
MDEpCiAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDIgPT0gMHgwMCkgfHwgKExvY2FsMiA9
PSAweEZGKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQnJlYWsK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMiA9PSBBcmcx
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2Nh
bDEKICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChEQURSICsgKExvY2FsMSArIDB4MDEpKSwgMHgw
MSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFk
ZHJlc3MgKDB4JVgpLlNQQ0ggKDB4JVgsIDB4JVgpID0gMHglWFxuIiwgREFEUiwgQXJnMCwg
QXJnMSwgTG9jYWwwLCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkK
ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9T
VEE6IFN0YXR1cwogICAgICAgIHsKICAgICAgICAgICAgSWYgKCgoRFNUQSA9PSAweEVFKSB8
fCAoRVNUQSA9PSAweEVFKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgo
REJVUyA9PSAweEVFRUUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IElmIChDb25kUmVmT2YgKF5eRUJVUykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBEQlVTID0gXl5FQlVTIC8qIFxfU0JfLlBDSTAuR1AxNy5FQlVT
ICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERCVVMgPSAweDAw
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIElmICgoREJVUyAhPSAweEVFRUUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIElmICgoREFEUiA9PSAweEVFRUVFRUVFKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9ICgoKF9BRFIgPDwgMHgwQykg
JiAweDcwMDApIHwgKChfQURSID4+IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MSkgJiAweDAwMEY4MDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9ICgo
REJVUyA8PCAweDE0KSAmIDB4MEZGMDAwMDApCiAgICAgICAgICAgICAgICAgICAgICAgIERB
RFIgPSAoTTA4MyArIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgIExvY2FsMCA9IDB4N0ZGRkZGRkYKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDAgfD0gMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChE
QURSICsgMHgwMCksIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwxID09
IExvY2FsMCkgfHwgKExvY2FsMSA9PSAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAg
ICAgICBFU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERCVVMgIT0g
MHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMiA9IF5eU1BDSCAoXl5EQURSLCAweDEwKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKCgoXl5SUFJNICgoXl5EQURSICsgKExvY2FsMiArIDB4MTQpKSwg
MHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwKSA9PSAweDQw
KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgRWxzZUlmICgoUlBSTSAoKERBRFIgKyAweDBBKSwgMHgwMikgPT0gMHgwNjA0KSkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEVCVVMgPSBSUFJN
ICgoREFEUiArIDB4MTkpLCAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIg
PSBTUENIIChEQURSLCAweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKCgoUlBS
TSAoKERBRFIgKyAoTG9jYWwyICsgMHgwMikpLCAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDEpID4+IDB4MDQpICYgMHgwRikgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUJVUyA9PSAweDAw
KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlSWYgKChTUERQIChFQlVTKSA9PSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAw
eDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJ
ZiAoKChSUFJNICgoREFEUiArIChMb2NhbDIgKyAweDFBKSksIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMSkgJiAweDQwKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoUlBSTSAoKERBRFIg
KyAoTG9jYWwyICsgMHgxNCkpLCAweDAxKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDB4NDApID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDAwCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RB
ID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweEVFCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoRUJVUyA9PSAweDAwKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9
IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweEVFCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0g
MHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MEYKICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgwMAogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs
c2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAog
ICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKChQQ1NBID09IDB4MDEpICYmIChQV1NUID09
IDB4RDMpKSAmJiAoUFczUyA9PSAweDAxKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFBXU1QgPSAweEQwCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKChQQ1NB
ID09IDB4MDApICYmIChQV1NUID09IDB4RDApKSAmJiAoUFczUyA9PSAweDAwKSkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIFBXU1QgPSAweEQzCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIElmIChDb25kUmVmT2YgKFNTVEEpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBTU1RBICgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9F
TS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fU1RBID0gMHglWCAgUFdTVCA9IDB4JVggIERC
VVMgPSAweCVYICBFU1RBID0gMHglWCAgRUJVUyA9IDB4JVhcbiIsIERBRFIsIERTVEEsIFBX
U1QsIERCVVMsIEVTVEEsIEVCVVMpCiAgICAgICAgICAgIFJldHVybiAoRFNUQSkgLyogXF9T
Ql8uUENJMC5HUDE3LlhIQzEuRFNUQSAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChf
SU5JLCAwLCBTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgIHsKICAg
ICAgICAgICAgTG9jYWwwID0gMHg3RkZGRkZGRgogICAgICAgICAgICBMb2NhbDAgfD0gMHg4
MDAwMDAwMAogICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIDB4MDApLCAweDA0
KQogICAgICAgICAgICBJZiAoKChMb2NhbDEgPT0gTG9jYWwwKSB8fCAoTG9jYWwxID09IDB4
MDApKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUENTQSA9IDB4MDAKICAgICAg
ICAgICAgICAgIFBXU1QgPSAweEQzCiAgICAgICAgICAgICAgICBQVzNTID0gMHgwMAogICAg
ICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUENTQSA9IDB4MDEKICAgICAgICAgICAgICAgIFBXU1QgPSAweEQwCiAgICAgICAgICAg
ICAgICBQVzNTID0gMHgwMQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBP
RU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX0lOSSAgUENTQSA9IDB4JVggIFBXU1QgPSAw
eCVYICBQVzNTID0gMHglWFxuIiwgREFEUiwgUENTQSwgUFdTVCwgUFczUywgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoU0lOSSkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFNJTkkgKCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
TWV0aG9kIChfUkVHLCAyLCBTZXJpYWxpemVkKSAgLy8gX1JFRzogUmVnaW9uIEF2YWlsYWJp
bGl0eQogICAgICAgIHsKICAgICAgICAgICAgSWYgKCgoQXJnMCA9PSAweDAyKSAmJiAoQXJn
MSA9PSAweDAxKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoRFNUQSA9
PSAweDBGKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChS
UFJNICgoREFEUiArIDB4MDQpLCAweDAxKSAmIDB4RkMpID09IDB4MDQpKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUENTQSA9IDB4MDEKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIElmICgoKEFyZzAgPT0gMHgwMikgJiYgKEFyZzEgPT0gMHgwMCkpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBQQ1NBID0gMHgwMAogICAgICAgICAgICB9CgogICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChTUkVHKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgU1JFRyAoQXJnMCwgQXJnMSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2
MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9SRUcgKCVkICVkKSAgUENTQSA9
ICVkXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBQQ1NBLCAweDAwLCAweDAwKQogICAgICAgIH0K
CiAgICAgICAgTWV0aG9kIChfRFNXLCAzLCBTZXJpYWxpemVkKSAgLy8gX0RTVzogRGV2aWNl
IFNsZWVwIFdha2UKICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFNEU1cp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTRFNXIChBcmcwLCBBcmcxLCBBcmcy
KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRk
cmVzcyAoMHglWCkuX0RTVyAoJWQgJWQgJWQpICBQQ1NBID0gJWRcbiIsIERBRFIsIEFyZzAs
IEFyZzEsIEFyZzIsIFBDU0EsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9Q
UzAsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgewog
ICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX1BTMFxu
IiwgREFEUiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgSWYg
KENvbmRSZWZPZiAoUFBTMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBQUzAg
KCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBT
ZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgIHsKICAgICAgICAg
ICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9QUzNcbiIsIERBRFIs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmIChDb25kUmVm
T2YgKFBQUzMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQUFMzICgpCiAgICAg
ICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFBvd2VyUmVzb3VyY2UgKFBXUlMsIDB4MDAs
IDB4MDAwMCkKICAgICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFs
aXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBN
NDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fU1RBID0gMHglWFxu
IiwgREFEUiwgUFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
IElmIChDb25kUmVmT2YgKFBTVEEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIFBTVEEgKCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1
cm4gKFBXM1MpIC8qIFxfU0JfLlBDSTAuR1AxNy5YSEMxLlBXM1MgKi8KICAgICAgICAgICAg
fQoKICAgICAgICAgICAgTWV0aG9kIChfT04sIDAsIFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQ
b3dlciBPbgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBXM1MgPT0gMHgw
MCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUFczUyA9IDB4MDEK
ICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHgl
WCkuUFdSUy5fT04gPSAweCVYXG4iLCBEQURSLCBQVzNTLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBfT04pKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUF9PTiAoKQogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChfT0ZGLCAwLCBTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIgT2Zm
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoUFczUyA9PSAweDAxKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQVzNTID0gMHgwMAogICAgICAg
ICAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5QV1JT
Ll9PRkYgPSAweCVYXG4iLCBEQURSLCBQVzNTLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQog
ICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBfT0YpKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUF9PRiAoKQogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAg
ICAgICAgTmFtZSAoX1BSMCwgUGFja2FnZSAoMHgwMSkgIC8vIF9QUjA6IFBvd2VyIFJlc291
cmNlcyBmb3IgRDAKICAgICAgICB7CiAgICAgICAgICAgIFBXUlMKICAgICAgICB9KQogICAg
ICAgIE5hbWUgKF9QUjMsIFBhY2thZ2UgKDB4MDEpICAvLyBfUFIzOiBQb3dlciBSZXNvdXJj
ZXMgZm9yIEQzaG90CiAgICAgICAgewogICAgICAgICAgICBQV1JTCiAgICAgICAgfSkKICAg
IH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLkdQMTcuQUNQKQogICAgewogICAgICAgIE1ldGhv
ZCAoX1MwVywgMCwgU2VyaWFsaXplZCkgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRl
CiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgIElmICgo
XEY1RDMgIT0gMHg1NSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9
IFxGNUQzCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJ
ZSBBZGRyZXNzICgweCVYKS5fUzBXICgpICBSZXR1cm4gJWRcbiIsIERBRFIsIExvY2FsMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAg
ICAgICAgfQoKICAgICAgICBOYW1lIChEQURSLCAweEVFRUVFRUVFKQogICAgICAgIE5hbWUg
KERTVEEsIDB4RUUpCiAgICAgICAgTmFtZSAoREJVUywgMHhFRUVFKQogICAgICAgIE5hbWUg
KFBDU0EsIDB4MDApCiAgICAgICAgTmFtZSAoUFdTVCwgMHhEMykKICAgICAgICBOYW1lIChF
U1RBLCAweEVFKQogICAgICAgIE5hbWUgKEVCVVMsIDB4RUVFRSkKICAgICAgICBOYW1lIChQ
VzNTLCAweDAwKQogICAgICAgIE1ldGhvZCAoUlBSTSwgMiwgTm90U2VyaWFsaXplZCkKICAg
ICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IEFyZzAKICAgICAgICAgICAgT3BlcmF0aW9u
UmVnaW9uIChWQVJNLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAg
RmllbGQgKFZBUk0sIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgVkFSUiwgICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBM
b2NhbDEgPSBWQVJSIC8qIFxfU0JfLlBDSTAuR1AxNy5BQ1BfLlJQUk0uVkFSUiAqLwogICAg
ICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIExvY2FsMSAmPSAweEZGCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgo
QXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxICY9
IDB4RkZGRgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgw
MykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweDAwRkZGRkZG
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRy
ZXNzICgweCVYKS5SUFJNICgweCVYIDB4JVgpID0gMHglWFxuIiwgREFEUiwgQXJnMCwgQXJn
MSwgTG9jYWwxLCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAg
ICAgICB9CgogICAgICAgIE1ldGhvZCAoV1BSTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAg
ICB7CiAgICAgICAgICAgIExvY2FsMCA9IEFyZzAKICAgICAgICAgICAgSWYgKChBcmcxID09
IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24g
KFZBUkEsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAxKQogICAgICAgICAgICAgICAgRmll
bGQgKFZBUkEsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBWQVJFLCAgIDgKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBWQVJFID0gQXJnMgogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJ
ZiAoKEFyZzEgPT0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJh
dGlvblJlZ2lvbiAoVkFSQiwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDIpCiAgICAgICAg
ICAgICAgICBGaWVsZCAoVkFSQiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZBUkYsICAgMTYKICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICBWQVJGID0gQXJnMgogICAgICAgICAgICB9CiAgICAg
ICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSQywgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4
MDMpCiAgICAgICAgICAgICAgICBGaWVsZCAoVkFSQywgQW55QWNjLCBOb0xvY2ssIFByZXNl
cnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZBUkcsICAgMjQK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBWQVJHID0gQXJnMgogICAgICAg
ICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
T3BlcmF0aW9uUmVnaW9uIChWQVJELCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAg
ICAgICAgICAgICAgIEZpZWxkIChWQVJELCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkFSSCwgICAzMgogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFZBUkggPSBBcmcyCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5XUFJN
ICgweCVYIDB4JVggMHglWClcbiIsIERBRFIsIEFyZzAsIEFyZzEsIEFyZzIsIDB4MDAsIDB4
MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNQRFAsIDEsIE5vdFNlcmlhbGl6ZWQp
CiAgICAgICAgewogICAgICAgICAgICBMb2NhbDUgPSAweDdGRkZGRkZGCiAgICAgICAgICAg
IExvY2FsNSB8PSAweDgwMDAwMDAwCiAgICAgICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAg
ICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8PSAweDFG
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMAogICAgICAg
ICAgICAgICAgV2hpbGUgKChMb2NhbDEgPD0gMHgwNykpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgTG9jYWwzID0gKCgoQXJnMCA8PCAweDE0KSAmIDB4MEZGMDAw
MDApIHwgKChMb2NhbDAgPDwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYpICYgMHgw
MDBGODAwMCkpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwzIHw9ICgoTG9jYWwxIDw8IDB4
MEMpICYgMHg3MDAwKQogICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IFJQUk0gKChNMDgz
ICsgTG9jYWwzKSwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDQgIT0g
TG9jYWw1KSAmJiAoTG9jYWw0ICE9IDB4MDApKSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiB8PSAoMHgwMSA8PCBMb2NhbDApCiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKExvY2FsMSA9
PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDErKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgw
eCVYKS5TUERQICgweCVYKSA9IDB4JVhcbiIsIERBRFIsIEFyZzAsIExvY2FsMiwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDIpCiAgICAgICAgfQoKICAg
ICAgICBNZXRob2QgKFNQQ0gsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg
ICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChBcmcwICsg
MHgzNCksIDB4MDEpCiAgICAgICAgICAgIFdoaWxlICgoTG9jYWwxICE9IDB4MDApKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDIgPSBSUFJNICgoREFEUiArIExvY2Fs
MSksIDB4MDEpCiAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDIgPT0gMHgwMCkgfHwgKExv
Y2FsMiA9PSAweEZGKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
QnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMiA9
PSBBcmcxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAg
PSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIExvY2FsMSA9IFJQUk0gKChEQURSICsgKExvY2FsMSArIDB4MDEp
KSwgMHgwMSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1Q
Q0llIEFkZHJlc3MgKDB4JVgpLlNQQ0ggKDB4JVgsIDB4JVgpID0gMHglWFxuIiwgREFEUiwg
QXJnMCwgQXJnMSwgTG9jYWwwLCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExv
Y2FsMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkg
IC8vIF9TVEE6IFN0YXR1cwogICAgICAgIHsKICAgICAgICAgICAgSWYgKCgoRFNUQSA9PSAw
eEVFKSB8fCAoRVNUQSA9PSAweEVFKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IElmICgoREJVUyA9PSAweEVFRUUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIElmIChDb25kUmVmT2YgKF5eRUJVUykpCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBEQlVTID0gXl5FQlVTIC8qIFxfU0JfLlBDSTAuR1Ax
Ny5FQlVTICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs
c2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERCVVMg
PSAweDAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIElmICgoREJVUyAhPSAweEVFRUUpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIElmICgoREFEUiA9PSAweEVFRUVFRUVFKSkKICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9ICgoKF9BRFIgPDwg
MHgwQykgJiAweDcwMDApIHwgKChfQURSID4+IAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMSkgJiAweDAwMEY4MDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww
IHw9ICgoREJVUyA8PCAweDE0KSAmIDB4MEZGMDAwMDApCiAgICAgICAgICAgICAgICAgICAg
ICAgIERBRFIgPSAoTTA4MyArIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4N0ZGRkZGRkYKICAgICAgICAgICAgICAgICAg
ICBMb2NhbDAgfD0gMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFJQ
Uk0gKChEQURSICsgMHgwMCksIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9j
YWwxID09IExvY2FsMCkgfHwgKExvY2FsMSA9PSAweDAwKSkpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAg
ICAgICAgICAgICBFU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERC
VVMgIT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMiA9IF5eU1BDSCAoXl5EQURSLCAweDEwKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSWYgKCgoXl5SUFJNICgoXl5EQURSICsgKExvY2FsMiArIDB4
MTQpKSwgMHgwMSkgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwKSA9
PSAweDQwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgRWxzZUlmICgoUlBSTSAoKERBRFIgKyAweDBBKSwgMHgwMikgPT0gMHgwNjA0
KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEVCVVMg
PSBSUFJNICgoREFEUiArIDB4MTkpLCAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDIgPSBTUENIIChEQURSLCAweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAo
KCgoUlBSTSAoKERBRFIgKyAoTG9jYWwyICsgMHgwMikpLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDEpID4+IDB4MDQpICYgMHgwRikgPT0gMHgwNSkpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUJVUyA9
PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChTUERQIChFQlVTKSA9PSAweDAwKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBEU1RBID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVT
VEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUQSA9IDB4MEYKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
IEVsc2VJZiAoKChSUFJNICgoREFEUiArIChMb2NhbDIgKyAweDFBKSksIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMSkgJiAweDQwKSA9PSAweDAwKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoUlBSTSAo
KERBRFIgKyAoTG9jYWwyICsgMHgxNCkpLCAweDAxKSAmIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDB4NDApID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDAwCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAw
eEVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoRUJVUyA9PSAweDAwKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
RFNUQSA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweEVFCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBE
U1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MEYKICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICBFU1RBID0gMHgw
MAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEU1RBID0g
MHgwMAogICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweEVFCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKChQQ1NBID09IDB4MDEpICYmIChQ
V1NUID09IDB4RDMpKSAmJiAoUFczUyA9PSAweDAxKSkpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFBXU1QgPSAweEQwCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgo
KChQQ1NBID09IDB4MDApICYmIChQV1NUID09IDB4RDApKSAmJiAoUFczUyA9PSAweDAwKSkp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBXU1QgPSAweEQzCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFNTVEEpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBTU1RBICgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAg
KCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fU1RBID0gMHglWCAgUFdTVCA9IDB4
JVggIERCVVMgPSAweCVYICBFU1RBID0gMHglWCAgRUJVUyA9IDB4JVhcbiIsIERBRFIsIERT
VEEsIFBXU1QsIERCVVMsIEVTVEEsIEVCVVMpCiAgICAgICAgICAgIFJldHVybiAoRFNUQSkg
LyogXF9TQl8uUENJMC5HUDE3LkFDUF8uRFNUQSAqLwogICAgICAgIH0KCiAgICAgICAgTWV0
aG9kIChfSU5JLCAwLCBTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAg
IHsKICAgICAgICAgICAgTG9jYWwwID0gMHg3RkZGRkZGRgogICAgICAgICAgICBMb2NhbDAg
fD0gMHg4MDAwMDAwMAogICAgICAgICAgICBMb2NhbDEgPSBSUFJNICgoREFEUiArIDB4MDAp
LCAweDA0KQogICAgICAgICAgICBJZiAoKChMb2NhbDEgPT0gTG9jYWwwKSB8fCAoTG9jYWwx
ID09IDB4MDApKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUENTQSA9IDB4MDAK
ICAgICAgICAgICAgICAgIFBXU1QgPSAweEQzCiAgICAgICAgICAgICAgICBQVzNTID0gMHgw
MAogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgUENTQSA9IDB4MDEKICAgICAgICAgICAgICAgIFBXU1QgPSAweEQwCiAgICAg
ICAgICAgICAgICBQVzNTID0gMHgwMQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYw
ICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuX0lOSSAgUENTQSA9IDB4JVggIFBX
U1QgPSAweCVYICBQVzNTID0gMHglWFxuIiwgREFEUiwgUENTQSwgUFdTVCwgUFczUywgMHgw
MCwgMHgwMCkKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoU0lOSSkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIFNJTkkgKCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAg
ICAgICAgTWV0aG9kIChfUkVHLCAyLCBTZXJpYWxpemVkKSAgLy8gX1JFRzogUmVnaW9uIEF2
YWlsYWJpbGl0eQogICAgICAgIHsKICAgICAgICAgICAgSWYgKCgoQXJnMCA9PSAweDAyKSAm
JiAoQXJnMSA9PSAweDAxKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgo
RFNUQSA9PSAweDBGKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ
ZiAoKChSUFJNICgoREFEUiArIDB4MDQpLCAweDAxKSAmIDB4RkMpID09IDB4MDQpKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUENTQSA9IDB4MDEK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIElmICgoKEFyZzAgPT0gMHgwMikgJiYgKEFyZzEgPT0gMHgwMCkpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQQ1NBID0gMHgwMAogICAgICAgICAgICB9
CgogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChTUkVHKSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgU1JFRyAoQXJnMCwgQXJnMSkKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9SRUcgKCVkICVkKSAg
UENTQSA9ICVkXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBQQ1NBLCAweDAwLCAweDAwKQogICAg
ICAgIH0KCiAgICAgICAgTWV0aG9kIChfRFNXLCAzLCBTZXJpYWxpemVkKSAgLy8gX0RTVzog
RGV2aWNlIFNsZWVwIFdha2UKICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2Yg
KFNEU1cpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTRFNXIChBcmcwLCBBcmcx
LCBBcmcyKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBD
SWUgQWRkcmVzcyAoMHglWCkuX0RTVyAoJWQgJWQgJWQpICBQQ1NBID0gJWRcbiIsIERBRFIs
IEFyZzAsIEFyZzEsIEFyZzIsIFBDU0EsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBQb3dl
clJlc291cmNlIChQV1JTLCAweDAwLCAweDAwMDApCiAgICAgICAgewogICAgICAgICAgICBN
ZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4
JVgpLlBXUlMuX1NUQSA9IDB4JVhcbiIsIERBRFIsIFBXM1MsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQU1RBKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQU1RBICgpCiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgUmV0dXJuIChQVzNTKSAvKiBcX1NCXy5QQ0kwLkdQMTcuQUNQ
Xy5QVzNTICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBT
ZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgSWYgKChQVzNTID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFBXM1MgPSAweDAxCiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgT0VN
LUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlBXUlMuX09OID0gMHglWFxuIiwgREFEUiwgUFcz
UywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29u
ZFJlZk9mIChQX09OKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIFBfT04gKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX09GRiwgMCwgU2VyaWFsaXpl
ZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ
ZiAoKFBXM1MgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUFczUyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBD
SWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fT0ZGID0gMHglWFxuIiwgREFEUiwgUFczUywgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m
IChQX09GKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IFBfT0YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE5hbWUgKF9QUjAsIFBhY2thZ2UgKDB4MDEp
ICAvLyBfUFIwOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQwCiAgICAgICAgewogICAgICAgICAg
ICBQV1JTCiAgICAgICAgfSkKICAgICAgICBOYW1lIChfUFIzLCBQYWNrYWdlICgweDAxKSAg
Ly8gX1BSMzogUG93ZXIgUmVzb3VyY2VzIGZvciBEM2hvdAogICAgICAgIHsKICAgICAgICAg
ICAgUFdSUwogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxfU0IuUENJMC5HUDE3LkFa
QUwpCiAgICB7CiAgICAgICAgTWV0aG9kIChfUzBXLCAwLCBTZXJpYWxpemVkKSAgLy8gX1Mw
VzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9
IDB4MDAKICAgICAgICAgICAgSWYgKChcRjZEMyAhPSAweDU1KSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTG9jYWwwID0gXEY2RDMKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLl9TMFcgKCkgIFJldHVy
biAlZFxuIiwgREFEUiwgTG9jYWwwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAg
ICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICB9CgogICAgICAgIE5hbWUgKERBRFIsIDB4
RUVFRUVFRUUpCiAgICAgICAgTmFtZSAoRFNUQSwgMHhFRSkKICAgICAgICBOYW1lIChEQlVT
LCAweEVFRUUpCiAgICAgICAgTmFtZSAoUENTQSwgMHgwMCkKICAgICAgICBOYW1lIChQV1NU
LCAweEQzKQogICAgICAgIE5hbWUgKEVTVEEsIDB4RUUpCiAgICAgICAgTmFtZSAoRUJVUywg
MHhFRUVFKQogICAgICAgIE5hbWUgKFBXM1MsIDB4MDApCiAgICAgICAgTWV0aG9kIChSUFJN
LCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gQXJn
MAogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUk0sIFN5c3RlbU1lbW9yeSwgTG9j
YWwwLCAweDA0KQogICAgICAgICAgICBGaWVsZCAoVkFSTSwgQW55QWNjLCBOb0xvY2ssIFBy
ZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWQVJSLCAgIDMyCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIExvY2FsMSA9IFZBUlIgLyogXF9TQl8uUENJMC5HUDE3
LkFaQUwuUlBSTS5WQVJSICovCiAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAxKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxICY9IDB4RkYKICAgICAgICAgICAg
fQogICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDIpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBMb2NhbDEgJj0gMHhGRkZGCiAgICAgICAgICAgIH0KICAgICAgICAg
ICAgRWxzZUlmICgoQXJnMSA9PSAweDAzKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTG9jYWwxICY9IDB4MDBGRkZGRkYKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2
MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlJQUk0gKDB4JVggMHglWCkgPSAw
eCVYXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBMb2NhbDEsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChXUFJNLCAz
LCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gQXJnMAog
ICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSQSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4
MDEpCiAgICAgICAgICAgICAgICBGaWVsZCAoVkFSQSwgQW55QWNjLCBOb0xvY2ssIFByZXNl
cnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZBUkUsICAgOAog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFZBUkUgPSBBcmcyCiAgICAgICAg
ICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJCLCBTeXN0ZW1NZW1vcnks
IExvY2FsMCwgMHgwMikKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJCLCBBbnlBY2MsIE5v
TG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
VkFSRiwgICAxNgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFZBUkYgPSBB
cmcyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAzKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJDLCBT
eXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMykKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJD
LCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgVkFSRywgICAyNAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIFZBUkcgPSBBcmcyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUkQsIFN5c3RlbU1l
bW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICAgICAgRmllbGQgKFZBUkQsIEFueUFj
YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBWQVJILCAgIDMyCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgVkFS
SCA9IEFyZzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1Q
Q0llIEFkZHJlc3MgKDB4JVgpLldQUk0gKDB4JVggMHglWCAweCVYKVxuIiwgREFEUiwgQXJn
MCwgQXJnMSwgQXJnMiwgMHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo
U1BEUCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsNSA9
IDB4N0ZGRkZGRkYKICAgICAgICAgICAgTG9jYWw1IHw9IDB4ODAwMDAwMDAKICAgICAgICAg
ICAgTG9jYWwyID0gMHgwMAogICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAg
IFdoaWxlICgoTG9jYWwwIDw9IDB4MUYpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBMb2NhbDEgPSAweDAwCiAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMSA8PSAweDA3
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSAoKChB
cmcwIDw8IDB4MTQpICYgMHgwRkYwMDAwMCkgfCAoKExvY2FsMCA8PCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwRikgJiAweDAwMEY4MDAwKSkKICAgICAgICAgICAgICAgICAgICBM
b2NhbDMgfD0gKChMb2NhbDEgPDwgMHgwQykgJiAweDcwMDApCiAgICAgICAgICAgICAgICAg
ICAgTG9jYWw0ID0gUlBSTSAoKE0wODMgKyBMb2NhbDMpLCAweDA0KQogICAgICAgICAgICAg
ICAgICAgIElmICgoKExvY2FsNCAhPSBMb2NhbDUpICYmIChMb2NhbDQgIT0gMHgwMCkpKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyIHw9
ICgweDAxIDw8IExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgRWxzZUlmICgoTG9jYWwxID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgIExvY2FsMSsrCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAg
T0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgpLlNQRFAgKDB4JVgpID0gMHglWFxuIiwgREFE
UiwgQXJnMCwgTG9jYWwyLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBSZXR1cm4g
KExvY2FsMikKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoU1BDSCwgMiwgTm90U2VyaWFs
aXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICAgICAg
TG9jYWwxID0gUlBSTSAoKEFyZzAgKyAweDM0KSwgMHgwMSkKICAgICAgICAgICAgV2hpbGUg
KChMb2NhbDEgIT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2Fs
MiA9IFJQUk0gKChEQURSICsgTG9jYWwxKSwgMHgwMSkKICAgICAgICAgICAgICAgIElmICgo
KExvY2FsMiA9PSAweDAwKSB8fCAoTG9jYWwyID09IDB4RkYpKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgIElmICgoTG9jYWwyID09IEFyZzEpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMQogICAgICAgICAgICAgICAgICAgIEJy
ZWFrCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwxID0gUlBSTSAo
KERBRFIgKyAoTG9jYWwxICsgMHgwMSkpLCAweDAxKQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuU1BDSCAoMHglWCwg
MHglWCkgPSAweCVYXG4iLCBEQURSLCBBcmcwLCBBcmcxLCBMb2NhbDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k
IChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgewogICAg
ICAgICAgICBJZiAoKChEU1RBID09IDB4RUUpIHx8IChFU1RBID09IDB4RUUpKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgSWYgKChEQlVTID09IDB4RUVFRSkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXl5FQlVTKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERCVVMgPSBe
XkVCVVMgLyogXF9TQl8uUENJMC5HUDE3LkVCVVMgKi8KICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgREJVUyA9IDB4MDAKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChEQlVTICE9IDB4RUVFRSkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChEQURSID09IDB4
RUVFRUVFRUUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwwID0gKCgoX0FEUiA8PCAweDBDKSAmIDB4NzAwMCkgfCAoKF9BRFIgPj4gCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxKSAmIDB4MDAwRjgwMDApKQogICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gKChEQlVTIDw8IDB4MTQpICYgMHgwRkYwMDAw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgREFEUiA9IChNMDgzICsgTG9jYWwwKQogICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHg3RkZG
RkZGRgogICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAweDgwMDAwMDAwCiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwxID0gUlBSTSAoKERBRFIgKyAweDAwKSwgMHgwNCkKICAgICAg
ICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgPT0gTG9jYWwwKSB8fCAoTG9jYWwxID09IDB4
MDApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERT
VEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAg
ICAgICAgICAgICAgICAgIElmICgoREJVUyAhPSAweDAwKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gXl5TUENIIChe
XkRBRFIsIDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKCheXlJQUk0g
KCheXkRBRFIgKyAoTG9jYWwyICsgMHgxNCkpLCAweDAxKSAmIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDB4NDApID09IDB4NDApKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChSUFJNICgoREFEUiAr
IDB4MEEpLCAweDAyKSA9PSAweDA2MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgRUJVUyA9IFJQUk0gKChEQURSICsgMHgxOSksIDB4MDEpCiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IFNQQ0ggKERBRFIsIDB4MTApCiAgICAg
ICAgICAgICAgICAgICAgICAgIElmICgoKChSUFJNICgoREFEUiArIChMb2NhbDIgKyAweDAy
KSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSkgPj4gMHgwNCkgJiAweDBG
KSA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSWYgKChFQlVTID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAo
KFNQRFAgKEVCVVMpID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDAwCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRVNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RB
ID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTVEEgPSAweDBGCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKFJQUk0gKChEQURSICsgKExvY2Fs
MiArIDB4MUEpKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxKSAmIDB4NDAp
ID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBJZiAoKChSUFJNICgoREFEUiArIChMb2NhbDIgKyAweDE0KSksIDB4MDEp
ICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCkgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRFNUQSA9IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1RB
ID0gMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBF
bHNlSWYgKChFQlVTID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBEU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRVNUQSA9IDB4RUUKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFU1RBID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERTVEEgPSAweDBGCiAgICAgICAgICAg
ICAgICAgICAgICAgIEVTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIERTVEEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgRVNUQSA9
IDB4RUUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg
KCgoKFBDU0EgPT0gMHgwMSkgJiYgKFBXU1QgPT0gMHhEMykpICYmIChQVzNTID09IDB4MDEp
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFdTVCA9IDB4RDAKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgSWYgKCgoKFBDU0EgPT0gMHgwMCkgJiYgKFBXU1QgPT0gMHhE
MCkpICYmIChQVzNTID09IDB4MDApKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
UFdTVCA9IDB4RDMKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo
U1NUQSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNTVEEgKCkKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1QQ0llIEFkZHJlc3MgKDB4JVgp
Ll9TVEEgPSAweCVYICBQV1NUID0gMHglWCAgREJVUyA9IDB4JVggIEVTVEEgPSAweCVYICBF
QlVTID0gMHglWFxuIiwgREFEUiwgRFNUQSwgUFdTVCwgREJVUywgRVNUQSwgRUJVUykKICAg
ICAgICAgICAgUmV0dXJuIChEU1RBKSAvKiBcX1NCXy5QQ0kwLkdQMTcuQVpBTC5EU1RBICov
CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9JTkksIDAsIFNlcmlhbGl6ZWQpICAvLyBf
SU5JOiBJbml0aWFsaXplCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAweDdGRkZG
RkZGCiAgICAgICAgICAgIExvY2FsMCB8PSAweDgwMDAwMDAwCiAgICAgICAgICAgIExvY2Fs
MSA9IFJQUk0gKChEQURSICsgMHgwMCksIDB4MDQpCiAgICAgICAgICAgIElmICgoKExvY2Fs
MSA9PSBMb2NhbDApIHx8IChMb2NhbDEgPT0gMHgwMCkpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBQQ1NBID0gMHgwMAogICAgICAgICAgICAgICAgUFdTVCA9IDB4RDMKICAg
ICAgICAgICAgICAgIFBXM1MgPSAweDAwCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxz
ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQQ1NBID0gMHgwMQogICAgICAgICAg
ICAgICAgUFdTVCA9IDB4RDAKICAgICAgICAgICAgICAgIFBXM1MgPSAweDAxCiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVY
KS5fSU5JICBQQ1NBID0gMHglWCAgUFdTVCA9IDB4JVggIFBXM1MgPSAweCVYXG4iLCBEQURS
LCBQQ1NBLCBQV1NULCBQVzNTLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoQ29uZFJl
Zk9mIChTSU5JKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU0lOSSAoKQogICAg
ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9SRUcsIDIsIFNlcmlhbGl6
ZWQpICAvLyBfUkVHOiBSZWdpb24gQXZhaWxhYmlsaXR5CiAgICAgICAgewogICAgICAgICAg
ICBJZiAoKChBcmcwID09IDB4MDIpICYmIChBcmcxID09IDB4MDEpKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgSWYgKChEU1RBID09IDB4MEYpKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIElmICgoKFJQUk0gKChEQURSICsgMHgwNCksIDB4MDEp
ICYgMHhGQykgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBQQ1NBID0gMHgwMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoQXJnMCA9PSAweDAy
KSAmJiAoQXJnMSA9PSAweDAwKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBD
U0EgPSAweDAwCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFNS
RUcpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTUkVHIChBcmcwLCBBcmcxKQog
ICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVz
cyAoMHglWCkuX1JFRyAoJWQgJWQpICBQQ1NBID0gJWRcbiIsIERBRFIsIEFyZzAsIEFyZzEs
IFBDU0EsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9EU1csIDMs
IFNlcmlhbGl6ZWQpICAvLyBfRFNXOiBEZXZpY2UgU2xlZXAgV2FrZQogICAgICAgIHsKICAg
ICAgICAgICAgSWYgKENvbmRSZWZPZiAoU0RTVykpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIFNEU1cgKEFyZzAsIEFyZzEsIEFyZzIpCiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5fRFNXICglZCAlZCAl
ZCkgIFBDU0EgPSAlZFxuIiwgREFEUiwgQXJnMCwgQXJnMSwgQXJnMiwgUENTQSwgMHgwMCkK
ICAgICAgICB9CgogICAgICAgIFBvd2VyUmVzb3VyY2UgKFBXUlMsIDB4MDAsIDB4MDAwMCkK
ICAgICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8v
IF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICBP
RU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5fU1RBID0gMHglWFxuIiwgREFEUiwg
UFczUywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIElmIChDb25k
UmVmT2YgKFBTVEEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBT
VEEgKCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBXM1Mp
IC8qIFxfU0JfLlBDSTAuR1AxNy5BWkFMLlBXM1MgKi8KICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChfT04sIDAsIFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBXM1MgPT0gMHgwMCkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUFczUyA9IDB4MDEKICAgICAgICAg
ICAgICAgICAgICBNNDYwICgiICBPRU0tQVNMLVBDSWUgQWRkcmVzcyAoMHglWCkuUFdSUy5f
T04gPSAweCVYXG4iLCBEQURSLCBQVzNTLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBfT04pKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUF9PTiAoKQogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0
aG9kIChfT0ZGLCAwLCBTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIgT2ZmCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIElmICgoUFczUyA9PSAweDAxKSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBQVzNTID0gMHgwMAogICAgICAgICAgICAgICAg
ICAgIE00NjAgKCIgIE9FTS1BU0wtUENJZSBBZGRyZXNzICgweCVYKS5QV1JTLl9PRkYgPSAw
eCVYXG4iLCBEQURSLCBQVzNTLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAg
ICAgICAgICAgIElmIChDb25kUmVmT2YgKFBfT0YpKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgUF9PRiAoKQogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTmFt
ZSAoX1BSMCwgUGFja2FnZSAoMHgwMSkgIC8vIF9QUjA6IFBvd2VyIFJlc291cmNlcyBmb3Ig
RDAKICAgICAgICB7CiAgICAgICAgICAgIFBXUlMKICAgICAgICB9KQogICAgICAgIE5hbWUg
KF9QUjMsIFBhY2thZ2UgKDB4MDEpICAvLyBfUFIzOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQz
aG90CiAgICAgICAgewogICAgICAgICAgICBQV1JTCiAgICAgICAgfSkKICAgIH0KCiAgICBT
Y29wZSAoXF9TQikKICAgIHsKICAgICAgICBNZXRob2QgKENLMTcsIDAsIE5vdFNlcmlhbGl6
ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBcX1NCLlBDSTAuR1AxNy5SUFJN
ICgoXF9TQi5QQ0kwLkdQMTcuREFEUiArIDB4NTQpLCAweDAyKQogICAgICAgICAgICBcX1NC
LlBDSTAuR1AxNy5XUFJNICgoXF9TQi5QQ0kwLkdQMTcuREFEUiArIDB4NTQpLCAweDAyLCAo
TG9jYWwwICYgMHg3RkZDKSkKICAgICAgICAgICAgTG9jYWwxID0gXF9TQi5QQ0kwLkdQMTcu
VkdBLlJQUk0gKChcX1NCLlBDSTAuR1AxNy5WR0EuREFEUiArIDB4NTQpLCAweDAyKQogICAg
ICAgICAgICBMb2NhbDEgPSBcX1NCLlBDSTAuR1AxNy5IREFVLlJQUk0gKChcX1NCLlBDSTAu
R1AxNy5IREFVLkRBRFIgKyAweDU0KSwgMHgwMikKICAgICAgICAgICAgTG9jYWwxID0gXF9T
Qi5QQ0kwLkdQMTcuWEhDMC5SUFJNICgoXF9TQi5QQ0kwLkdQMTcuWEhDMC5EQURSICsgMHg1
NCksIDB4MDIpCiAgICAgICAgICAgIExvY2FsMSA9IFxfU0IuUENJMC5HUDE3LlhIQzEuUlBS
TSAoKFxfU0IuUENJMC5HUDE3LlhIQzEuREFEUiArIDB4NTQpLCAweDAyKQogICAgICAgICAg
ICBMb2NhbDEgPSBcX1NCLlBDSTAuR1AxNy5BQ1AuUlBSTSAoKFxfU0IuUENJMC5HUDE3LkFD
UC5EQURSICsgMHg1NCksIDB4MDIpCiAgICAgICAgICAgIExvY2FsMSA9IFxfU0IuUENJMC5H
UDE3LkFaQUwuUlBSTSAoKFxfU0IuUENJMC5HUDE3LkFaQUwuREFEUiArIDB4NTQpLCAweDAy
KQogICAgICAgICAgICBcX1NCLlBDSTAuR1AxNy5XUFJNICgoXF9TQi5QQ0kwLkdQMTcuREFE
UiArIDB4NTQpLCAweDAyLCAoTG9jYWwwICYgMHg3RkZGKSkKICAgICAgICB9CiAgICB9Cgog
ICAgU2NvcGUgKFxfR1BFKQogICAgewogICAgICAgIE1ldGhvZCAoX0wxOSwgMCwgTm90U2Vy
aWFsaXplZCkgIC8vIF9MeHg6IExldmVsLVRyaWdnZXJlZCBHUEUsIHh4PTB4MDAtMHhGRgog
ICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgT0VNLUFTTC1cXF9HUEUuX0wxOVxuIiwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgSWYgKENv
bmRSZWZPZiAoXF9TQi5QQ0kwLkdQMTcpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBNNDYwICgiICAgIE5vdGlmeSAoXFxfU0IuUENJMC5HUDE3LCAweDIpXG4iLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgTm90aWZ5IChc
X1NCLlBDSTAuR1AxNywgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQMTcuWEhDMCkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCIgICAgTm90aWZ5IChcXF9TQi5QQ0kwLkdQ
MTcuWEhDMCwgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLkdQMTcuWEhDMCwgMHgwMikgLy8g
RGV2aWNlIFdha2UKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo
XF9TQi5QQ0kwLkdQMTcuWEhDMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00
NjAgKCIgICAgTm90aWZ5IChcXF9TQi5QQ0kwLkdQMTcuWEhDMSwgMHgyKVxuIiwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIE5vdGlmeSAo
XF9TQi5QQ0kwLkdQMTcuWEhDMSwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAg
fQogICAgICAgIH0KICAgIH0KfQoK
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt16.dsl"
Content-Disposition: attachment; filename="ssdt16.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MTYuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMDZGNCAoMTc4MCkKICogICAgIFJldmlzaW9uICAgICAgICAg
MHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweDlFCiAqICAgICBPRU0gSUQgICAgICAg
ICAgICJMRU5PVk8iCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJVc2JDVGFibCIKICogICAg
IE9FTSBSZXZpc2lvbiAgICAgMHgwMDAwMDAwMSAoMSkKICogICAgIENvbXBpbGVyIElEICAg
ICAgIklOVEwiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MjAxODAzMTMgKDUzODQ0NDU2
MykKICovCkRlZmluaXRpb25CbG9jayAoIiIsICJTU0RUIiwgMiwgIkxFTk9WTyIsICJVc2JD
VGFibCIsIDB4MDAwMDAwMDEpCnsKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuTFBDMC5FQzBf
LCBEZXZpY2VPYmopCgogICAgU2NvcGUgKFxfU0IpCiAgICB7CiAgICAgICAgT3BlcmF0aW9u
UmVnaW9uIChTVVNDLCBTeXN0ZW1NZW1vcnksIDB4RkVFQzIxMDAsIDB4MzApCiAgICAgICAg
RmllbGQgKFNVU0MsIEJ5dGVBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAg
ICAgICAgU0NNRCwgICA4LCAKICAgICAgICAgICAgQ0NJMCwgICA4LCAKICAgICAgICAgICAg
Q0NJMSwgICA4LCAKICAgICAgICAgICAgQ0NJMiwgICA4LCAKICAgICAgICAgICAgQ0NJMywg
ICA4LCAKICAgICAgICAgICAgQ1RMMCwgICA4LCAKICAgICAgICAgICAgQ1RMMSwgICA4LCAK
ICAgICAgICAgICAgQ1RMMiwgICA4LCAKICAgICAgICAgICAgQ1RMMywgICA4LCAKICAgICAg
ICAgICAgQ1RMNCwgICA4LCAKICAgICAgICAgICAgQ1RMNSwgICA4LCAKICAgICAgICAgICAg
Q1RMNiwgICA4LCAKICAgICAgICAgICAgQ1RMNywgICA4LCAKICAgICAgICAgICAgTUdJMCwg
ICA4LCAKICAgICAgICAgICAgTUdJMSwgICA4LCAKICAgICAgICAgICAgTUdJMiwgICA4LCAK
ICAgICAgICAgICAgTUdJMywgICA4LCAKICAgICAgICAgICAgTUdJNCwgICA4LCAKICAgICAg
ICAgICAgTUdJNSwgICA4LCAKICAgICAgICAgICAgTUdJNiwgICA4LCAKICAgICAgICAgICAg
TUdJNywgICA4LCAKICAgICAgICAgICAgTUdJOCwgICA4LCAKICAgICAgICAgICAgTUdJOSwg
ICA4LCAKICAgICAgICAgICAgTUdJQSwgICA4LCAKICAgICAgICAgICAgTUdJQiwgICA4LCAK
ICAgICAgICAgICAgTUdJQywgICA4LCAKICAgICAgICAgICAgTUdJRCwgICA4LCAKICAgICAg
ICAgICAgTUdJRSwgICA4LCAKICAgICAgICAgICAgTUdJRiwgICA4LCAKICAgICAgICAgICAg
TUdPMCwgICA4LCAKICAgICAgICAgICAgTUdPMSwgICA4LCAKICAgICAgICAgICAgTUdPMiwg
ICA4LCAKICAgICAgICAgICAgTUdPMywgICA4LCAKICAgICAgICAgICAgTUdPNCwgICA4LCAK
ICAgICAgICAgICAgTUdPNSwgICA4LCAKICAgICAgICAgICAgTUdPNiwgICA4LCAKICAgICAg
ICAgICAgTUdPNywgICA4LCAKICAgICAgICAgICAgTUdPOCwgICA4LCAKICAgICAgICAgICAg
TUdPOSwgICA4LCAKICAgICAgICAgICAgTUdPQSwgICA4LCAKICAgICAgICAgICAgTUdPQiwg
ICA4LCAKICAgICAgICAgICAgTUdPQywgICA4LCAKICAgICAgICAgICAgTUdPRCwgICA4LCAK
ICAgICAgICAgICAgTUdPRSwgICA4LCAKICAgICAgICAgICAgTUdPRiwgICA4LCAKICAgICAg
ICAgICAgT2Zmc2V0ICgweDJFKSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgyRiksIAogICAg
ICAgICAgICBPZmZzZXQgKDB4MzApCiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFVCVEMp
CiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJVU0JDMDAwIikp
ICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCBFaXNhSWQg
KCJQTlAwQ0EwIikpICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE5hbWUg
KF9VSUQsIFplcm8pICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFtZSAoX0RE
TiwgIlVTQiBUeXBlIEMiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAg
IE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE5hbWUg
KF9ERVAsIFBhY2thZ2UgKDB4MDEpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQzAuRUMwCiAgICAgICAgICAgIH0p
CiAgICAgICAgICAgIERldmljZSAoQ1IwMSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTmFtZSAoX0FEUiwgMHgwMCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAg
IE1ldGhvZCAoX1VQQywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0IENh
cGFiaWxpdGllcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy
biAoUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA5LCAKICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAK
ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIE1ldGhvZCAoX1BMRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2Fs
IExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMywgMHgwMCwgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDUxLCAweDA0LCAweDgw
LCAweDAwLCAweDAzLCAweDAwLCAweDAwLCAweDAwLCAgLy8gUS4uLi4uLi4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKENSMDIpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDEpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAg
ICAgICAgICBNZXRob2QgKF9VUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0Ig
UG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOSwg
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAg
ICAweDAwCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQ
aHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4
ODIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg1OSwgMHgw
NCwgMHgwMCwgMHgwMSwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIFkuLi4uLi4uCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweEZGLCAweEZGLCAweEZG
LCAweEZGICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVk
KSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRl
LAogICAgICAgICAgICAgICAgICAgICAgICAweDFCQjExMDAwLCAgICAgICAgIC8vIEFkZHJl
c3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8v
IEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg
ICAgIH0pCiAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLlVCVEMuX0NS
Uy5SQlVGICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwg
Tm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9wZXJh
dGlvblJlZ2lvbiAoVVNCQywgU3lzdGVtTWVtb3J5LCAweDFCQjExMDAwLCAweDMwKQogICAg
ICAgICAgICBGaWVsZCAoVVNCQywgQnl0ZUFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFZFUjEsICAgOCwgCiAgICAgICAgICAgICAgICBWRVIy
LCAgIDgsIAogICAgICAgICAgICAgICAgUlNWMSwgICA4LCAKICAgICAgICAgICAgICAgIFJT
VjIsICAgOCwgCiAgICAgICAgICAgICAgICBDQ0kwLCAgIDgsIAogICAgICAgICAgICAgICAg
Q0NJMSwgICA4LCAKICAgICAgICAgICAgICAgIENDSTIsICAgOCwgCiAgICAgICAgICAgICAg
ICBDQ0kzLCAgIDgsIAogICAgICAgICAgICAgICAgQ1RMMCwgICA4LCAKICAgICAgICAgICAg
ICAgIENUTDEsICAgOCwgCiAgICAgICAgICAgICAgICBDVEwyLCAgIDgsIAogICAgICAgICAg
ICAgICAgQ1RMMywgICA4LCAKICAgICAgICAgICAgICAgIENUTDQsICAgOCwgCiAgICAgICAg
ICAgICAgICBDVEw1LCAgIDgsIAogICAgICAgICAgICAgICAgQ1RMNiwgICA4LCAKICAgICAg
ICAgICAgICAgIENUTDcsICAgOCwgCiAgICAgICAgICAgICAgICBNR0kwLCAgIDgsIAogICAg
ICAgICAgICAgICAgTUdJMSwgICA4LCAKICAgICAgICAgICAgICAgIE1HSTIsICAgOCwgCiAg
ICAgICAgICAgICAgICBNR0kzLCAgIDgsIAogICAgICAgICAgICAgICAgTUdJNCwgICA4LCAK
ICAgICAgICAgICAgICAgIE1HSTUsICAgOCwgCiAgICAgICAgICAgICAgICBNR0k2LCAgIDgs
IAogICAgICAgICAgICAgICAgTUdJNywgICA4LCAKICAgICAgICAgICAgICAgIE1HSTgsICAg
OCwgCiAgICAgICAgICAgICAgICBNR0k5LCAgIDgsIAogICAgICAgICAgICAgICAgTUdJQSwg
ICA4LCAKICAgICAgICAgICAgICAgIE1HSUIsICAgOCwgCiAgICAgICAgICAgICAgICBNR0lD
LCAgIDgsIAogICAgICAgICAgICAgICAgTUdJRCwgICA4LCAKICAgICAgICAgICAgICAgIE1H
SUUsICAgOCwgCiAgICAgICAgICAgICAgICBNR0lGLCAgIDgsIAogICAgICAgICAgICAgICAg
TUdPMCwgICA4LCAKICAgICAgICAgICAgICAgIE1HTzEsICAgOCwgCiAgICAgICAgICAgICAg
ICBNR08yLCAgIDgsIAogICAgICAgICAgICAgICAgTUdPMywgICA4LCAKICAgICAgICAgICAg
ICAgIE1HTzQsICAgOCwgCiAgICAgICAgICAgICAgICBNR081LCAgIDgsIAogICAgICAgICAg
ICAgICAgTUdPNiwgICA4LCAKICAgICAgICAgICAgICAgIE1HTzcsICAgOCwgCiAgICAgICAg
ICAgICAgICBNR084LCAgIDgsIAogICAgICAgICAgICAgICAgTUdPOSwgICA4LCAKICAgICAg
ICAgICAgICAgIE1HT0EsICAgOCwgCiAgICAgICAgICAgICAgICBNR09CLCAgIDgsIAogICAg
ICAgICAgICAgICAgTUdPQywgICA4LCAKICAgICAgICAgICAgICAgIE1HT0QsICAgOCwgCiAg
ICAgICAgICAgICAgICBNR09FLCAgIDgsIAogICAgICAgICAgICAgICAgTUdPRiwgICA4CiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIE11dGV4IChVQlNZLCAweDAwKQogICAgICAgICAg
ICBNZXRob2QgKFNFQ00sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIExvY2FsMCA9IDB4NjQKICAgICAgICAgICAgICAgIFdoaWxlICgoKFxfU0IuU0NN
RCAhPSAweDAwKSAmJiAoTG9jYWwwICE9IDB4MDApKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwMSkKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDAtLQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFxfU0IuU0NNRCA9IEFy
ZzAKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAyKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDY0CiAgICAgICAgICAgICAgICAg
ICAgV2hpbGUgKCgoXF9TQi5TQ01EICE9IDB4MDApICYmIChMb2NhbDAgIT0gMHgwMCkpKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4
MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMC0tCiAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo
b2QgKEVDV1IsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IEFjcXVpcmUgKFVCU1ksIDB4RkZGRikKICAgICAgICAgICAgICAgIFxfU0IuTUdPMCA9IE1H
TzAgLyogXF9TQl8uVUJUQy5NR08wICovCiAgICAgICAgICAgICAgICBcX1NCLk1HTzEgPSBN
R08xIC8qIFxfU0JfLlVCVEMuTUdPMSAqLwogICAgICAgICAgICAgICAgXF9TQi5NR08yID0g
TUdPMiAvKiBcX1NCXy5VQlRDLk1HTzIgKi8KICAgICAgICAgICAgICAgIFxfU0IuTUdPMyA9
IE1HTzMgLyogXF9TQl8uVUJUQy5NR08zICovCiAgICAgICAgICAgICAgICBcX1NCLk1HTzQg
PSBNR080IC8qIFxfU0JfLlVCVEMuTUdPNCAqLwogICAgICAgICAgICAgICAgXF9TQi5NR081
ID0gTUdPNSAvKiBcX1NCXy5VQlRDLk1HTzUgKi8KICAgICAgICAgICAgICAgIFxfU0IuTUdP
NiA9IE1HTzYgLyogXF9TQl8uVUJUQy5NR082ICovCiAgICAgICAgICAgICAgICBcX1NCLk1H
TzcgPSBNR083IC8qIFxfU0JfLlVCVEMuTUdPNyAqLwogICAgICAgICAgICAgICAgXF9TQi5N
R084ID0gTUdPOCAvKiBcX1NCXy5VQlRDLk1HTzggKi8KICAgICAgICAgICAgICAgIFxfU0Iu
TUdPOSA9IE1HTzkgLyogXF9TQl8uVUJUQy5NR085ICovCiAgICAgICAgICAgICAgICBcX1NC
Lk1HT0EgPSBNR09BIC8qIFxfU0JfLlVCVEMuTUdPQSAqLwogICAgICAgICAgICAgICAgXF9T
Qi5NR09CID0gTUdPQiAvKiBcX1NCXy5VQlRDLk1HT0IgKi8KICAgICAgICAgICAgICAgIFxf
U0IuTUdPQyA9IE1HT0MgLyogXF9TQl8uVUJUQy5NR09DICovCiAgICAgICAgICAgICAgICBc
X1NCLk1HT0QgPSBNR09EIC8qIFxfU0JfLlVCVEMuTUdPRCAqLwogICAgICAgICAgICAgICAg
XF9TQi5NR09FID0gTUdPRSAvKiBcX1NCXy5VQlRDLk1HT0UgKi8KICAgICAgICAgICAgICAg
IFxfU0IuTUdPRiA9IE1HT0YgLyogXF9TQl8uVUJUQy5NR09GICovCiAgICAgICAgICAgICAg
ICBcX1NCLkNUTDAgPSBDVEwwIC8qIFxfU0JfLlVCVEMuQ1RMMCAqLwogICAgICAgICAgICAg
ICAgXF9TQi5DVEwxID0gQ1RMMSAvKiBcX1NCXy5VQlRDLkNUTDEgKi8KICAgICAgICAgICAg
ICAgIFxfU0IuQ1RMMiA9IENUTDIgLyogXF9TQl8uVUJUQy5DVEwyICovCiAgICAgICAgICAg
ICAgICBcX1NCLkNUTDMgPSBDVEwzIC8qIFxfU0JfLlVCVEMuQ1RMMyAqLwogICAgICAgICAg
ICAgICAgXF9TQi5DVEw0ID0gQ1RMNCAvKiBcX1NCXy5VQlRDLkNUTDQgKi8KICAgICAgICAg
ICAgICAgIFxfU0IuQ1RMNSA9IENUTDUgLyogXF9TQl8uVUJUQy5DVEw1ICovCiAgICAgICAg
ICAgICAgICBcX1NCLkNUTDYgPSBDVEw2IC8qIFxfU0JfLlVCVEMuQ1RMNiAqLwogICAgICAg
ICAgICAgICAgXF9TQi5DVEw3ID0gQ1RMNyAvKiBcX1NCXy5VQlRDLkNUTDcgKi8KICAgICAg
ICAgICAgICAgIFNsZWVwICgweDE5KQogICAgICAgICAgICAgICAgU0VDTSAoMHgwMSkKICAg
ICAgICAgICAgICAgIFJlbGVhc2UgKFVCU1kpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE1ldGhvZCAoRUNSRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgQWNxdWlyZSAoVUJTWSwgMHhGRkZGKQogICAgICAgICAgICAgICAgU0VDTSAoMHgw
MikKICAgICAgICAgICAgICAgIFNsZWVwICgweDE5KQogICAgICAgICAgICAgICAgTUdJMCA9
IFxfU0IuTUdJMAogICAgICAgICAgICAgICAgTUdJMSA9IFxfU0IuTUdJMQogICAgICAgICAg
ICAgICAgTUdJMiA9IFxfU0IuTUdJMgogICAgICAgICAgICAgICAgTUdJMyA9IFxfU0IuTUdJ
MwogICAgICAgICAgICAgICAgTUdJNCA9IFxfU0IuTUdJNAogICAgICAgICAgICAgICAgTUdJ
NSA9IFxfU0IuTUdJNQogICAgICAgICAgICAgICAgTUdJNiA9IFxfU0IuTUdJNgogICAgICAg
ICAgICAgICAgTUdJNyA9IFxfU0IuTUdJNwogICAgICAgICAgICAgICAgTUdJOCA9IFxfU0Iu
TUdJOAogICAgICAgICAgICAgICAgTUdJOSA9IFxfU0IuTUdJOQogICAgICAgICAgICAgICAg
TUdJQSA9IFxfU0IuTUdJQQogICAgICAgICAgICAgICAgTUdJQiA9IFxfU0IuTUdJQgogICAg
ICAgICAgICAgICAgTUdJQyA9IFxfU0IuTUdJQwogICAgICAgICAgICAgICAgTUdJRCA9IFxf
U0IuTUdJRAogICAgICAgICAgICAgICAgTUdJRSA9IFxfU0IuTUdJRQogICAgICAgICAgICAg
ICAgTUdJRiA9IFxfU0IuTUdJRgogICAgICAgICAgICAgICAgQ0NJMCA9IFxfU0IuQ0NJMAog
ICAgICAgICAgICAgICAgQ0NJMSA9IFxfU0IuQ0NJMQogICAgICAgICAgICAgICAgQ0NJMiA9
IFxfU0IuQ0NJMgogICAgICAgICAgICAgICAgQ0NJMyA9IFxfU0IuQ0NJMwogICAgICAgICAg
ICAgICAgUmVsZWFzZSAoVUJTWSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k
IChOVEZZLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBF
Q1JEICgpCiAgICAgICAgICAgICAgICBTbGVlcCAoMHgwMSkKICAgICAgICAgICAgICAgIE5v
dGlmeSAoXF9TQi5VQlRDLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERl
dmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYg
KChBcmcwID09IFRvVVVJRCAoIjZmODM5OGMyLTdjYTQtMTFlNC1hZDM2LTYzMTA0MmI1MDA4
ZiIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgSWYgKChUb0ludGVnZXIgKEFyZzIpID09IDB4MDApKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDEp
CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
LgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICBFbHNlSWYgKChUb0ludGVnZXIgKEFyZzIpID09IDB4MDEpKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRUNXUiAoKQog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChUb0lu
dGVnZXIgKEFyZzIpID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgRUNSRCAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgIH0K
ICAgICAgICB9CiAgICB9Cn0KCg==
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt17.dsl"
Content-Disposition: attachment; filename="ssdt17.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MTcuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMTA5NyAoNDI0NykKICogICAgIFJldmlzaW9uICAgICAgICAg
MHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweDM1CiAqICAgICBPRU0gSUQgICAgICAg
ICAgICJMRU5PVk8iCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJHUFBfUE1FXyIKICogICAg
IE9FTSBSZXZpc2lvbiAgICAgMHgwMDAwMDAwMSAoMSkKICogICAgIENvbXBpbGVyIElEICAg
ICAgIklOVEwiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MjAxODAzMTMgKDUzODQ0NDU2
MykKICovCkRlZmluaXRpb25CbG9jayAoIiIsICJTU0RUIiwgMiwgIkxFTk9WTyIsICJHUFBf
UE1FXyIsIDB4MDAwMDAwMDEpCnsKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1AxMSwgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDEyLCBEZXZpY2VPYmopCiAgICBF
eHRlcm5hbCAoX1NCXy5QQ0kwLkdQMTcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0Jf
LlBDSTAuR1AxOCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUDE5LCBE
ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQUDAsIERldmljZU9iaikKICAg
IEV4dGVybmFsIChfU0JfLlBDSTAuR1BQMSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9T
Ql8uUENJMC5HUFAyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQUDMs
IERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1BQNCwgRGV2aWNlT2JqKQog
ICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUFA1LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAo
X1NCXy5QQ0kwLkdQUDYsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1BQ
NywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUFA4LCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQUDksIERldmljZU9iaikKICAgIEV4dGVybmFs
IChfU0JfLlBDSTAuR1BQQSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wMTcsIE1ldGhv
ZE9iaikgICAgLy8gNiBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMDM3LCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoTTA0NiwgSW50T2JqKQogICAgRXh0ZXJuYWwgKE0wNDcsIEludE9i
aikKICAgIEV4dGVybmFsIChNMDUwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1MSwg
RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTIsIERldmljZU9iaikKICAgIEV4dGVybmFs
IChNMDUzLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1NCwgRGV2aWNlT2JqKQogICAg
RXh0ZXJuYWwgKE0wNTUsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDU2LCBEZXZpY2VP
YmopCiAgICBFeHRlcm5hbCAoTTA1NywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTgs
IERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDU5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5h
bCAoTTA2MiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNjgsIERldmljZU9iaikKICAg
IEV4dGVybmFsIChNMDY5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3MCwgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKE0wNzEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDcy
LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NCwgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKE0wNzUsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc2LCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoTTA3NywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzgsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChNMDc5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA4
MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wODEsIERldmljZU9iaikKICAgIEV4dGVy
bmFsIChNMDgyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4MywgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0wODQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MDg1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4NiwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0wODcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDg4LCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4OSwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0wOTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDkxLCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0wOTMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk0LCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTA5NSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTYs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk3LCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTA5OCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTksIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTEwMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDIsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMTAzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEw
NCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDUsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMTA2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwNywgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMTA5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTExMCwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0xMTUsIEJ1ZmZPYmopCiAgICBFeHRlcm5hbCAoTTExNiwg
QnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMTcsIEJ1ZmZGaWVsZE9iaikKICAgIEV4
dGVybmFsIChNMTE4LCBCdWZmRmllbGRPYmopCiAgICBFeHRlcm5hbCAoTTExOSwgQnVmZkZp
ZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMjAsIEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFs
IChNMTIyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEyNywgRGV2aWNlT2JqKQog
ICAgRXh0ZXJuYWwgKE0xMjgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTMxLCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzMiwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0xMzMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTM0LCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTEzNSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0xMzYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjIwLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTIyMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMjYs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjI3LCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoTTIyOSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMzEsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMjMzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTIzNSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yM0EsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMjUxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTI4MCwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yOTAsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMjlBLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMxMCwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMUMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMzIwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyMSwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0zMjIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzIz
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyNCwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0zMjUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI2LCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyNywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0zMjgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI5LCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoTTMyQSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0zMkIsIERl
dmljZU9iaikKICAgIEV4dGVybmFsIChNMzMwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAo
TTMzMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zNzgsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMzc5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4MCwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODEsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMzgyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4MywgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMzg1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4NiwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0zODcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg4
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4OSwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0zOTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzkxLCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM5MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE00MDQsIEJ1ZmZPYmopCiAgICBFeHRlcm5hbCAoTTQwOCwgTXV0ZXhPYmopCiAgICBF
eHRlcm5hbCAoTTQxNCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NDQsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNNDQ5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTQ1MywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NTQsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNNDU1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1
NiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NTcsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNNDYwLCBNZXRob2RPYmopICAgIC8vIDcgQXJndW1lbnRzCiAgICBFeHRl
cm5hbCAoTTRDMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00RjAsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNNjEwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTYyMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE02MzEsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNNjUyLCBGaWVsZFVuaXRPYmopCgogICAgU2NvcGUgKFxfR1BFKQog
ICAgewogICAgICAgIE5hbWUgKEVUUDAsIDB4NTUpCiAgICAgICAgTmFtZSAoRVRQMSwgMHg1
NSkKICAgICAgICBOYW1lIChFVFAyLCAweDU1KQogICAgICAgIE5hbWUgKEVUUDMsIDB4NTUp
CiAgICAgICAgTmFtZSAoRVRQNCwgMHg1NSkKICAgICAgICBOYW1lIChFVFA1LCAweDU1KQog
ICAgICAgIE5hbWUgKEVUUDYsIDB4NTUpCiAgICAgICAgTmFtZSAoRVRQNywgMHg1NSkKICAg
ICAgICBOYW1lIChFVFA4LCAweDU1KQogICAgICAgIE5hbWUgKEVUUDksIDB4NTUpCiAgICAg
ICAgTmFtZSAoRVRQQSwgMHg1NSkKICAgICAgICBOYW1lIChFVDExLCAweDU1KQogICAgICAg
IE5hbWUgKEVUMTIsIDB4NTUpCiAgICAgICAgTmFtZSAoRVQxNywgMHg1NSkKICAgICAgICBO
YW1lIChFVDE4LCAweDU1KQogICAgICAgIE5hbWUgKEVUMTksIDB4NTUpCiAgICAgICAgTWV0
aG9kIChfRTEwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0V4eDogRWRnZS1UcmlnZ2VyZWQg
R1BFLCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIE9FTS1B
U0wtXFxfR1BFLl9FMTBcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgIElmICgoXF9HUEUuRVRQMCAhPSAweEZGKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgXF9HUEUuRVRQMCA9IChNMDE3ICgweDAwLCAweDAxLCAweDAxLCAw
eDc4LCAweDAwLCAweDE4KSA+PiAweDEwKQogICAgICAgICAgICAgICAgSWYgKCgoXF9HUEUu
RVRQMCA9PSAweDAxKSB8fCAoXF9HUEUuRVRQMCA9PSAweDAzKSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQUDAp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1BQMCwgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc
X1NCLlBDSTAuR1BQMCwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgo
XF9HUEUuRVRQMSAhPSAweEZGKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9H
UEUuRVRQMSA9IChNMDE3ICgweDAwLCAweDAxLCAweDAyLCAweDc4LCAweDAwLCAweDE4KSA+
PiAweDEwKQogICAgICAgICAgICAgICAgSWYgKCgoXF9HUEUuRVRQMSA9PSAweDAxKSB8fCAo
XF9HUEUuRVRQMSA9PSAweDAzKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQUDEpKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NC
LlBDSTAuR1BQMSwgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1BQMSwgMHgw
MikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoXF9HUEUuRVRQMiAhPSAweEZG
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9HUEUuRVRQMiA9IChNMDE3ICgw
eDAwLCAweDAxLCAweDAzLCAweDc4LCAweDAwLCAweDE4KSA+PiAweDEwKQogICAgICAgICAg
ICAgICAgSWYgKCgoXF9HUEUuRVRQMiA9PSAweDAxKSB8fCAoXF9HUEUuRVRQMiA9PSAweDAz
KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP
ZiAoXF9TQi5QQ0kwLkdQUDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1BQMiwgMHgyKVxu
IiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1BQMiwgMHgwMikgLy8gRGV2aWNlIFdha2UK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIElmICgoXF9HUEUuRVRQMyAhPSAweEZGKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgXF9HUEUuRVRQMyA9IChNMDE3ICgweDAwLCAweDAxLCAweDA0LCAw
eDc4LCAweDAwLCAweDE4KSA+PiAweDEwKQogICAgICAgICAgICAgICAgSWYgKCgoXF9HUEUu
RVRQMyA9PSAweDAxKSB8fCAoXF9HUEUuRVRQMyA9PSAweDAzKSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQUDMp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1BQMywgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc
X1NCLlBDSTAuR1BQMywgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgo
XF9HUEUuRVRQNCAhPSAweEZGKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9H
UEUuRVRQNCA9IChNMDE3ICgweDAwLCAweDAxLCAweDA1LCAweDc4LCAweDAwLCAweDE4KSA+
PiAweDEwKQogICAgICAgICAgICAgICAgSWYgKCgoXF9HUEUuRVRQNCA9PSAweDAxKSB8fCAo
XF9HUEUuRVRQNCA9PSAweDAzKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQUDQpKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NC
LlBDSTAuR1BQNCwgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1BQNCwgMHgw
MikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoXF9HUEUuRVRQNSAhPSAweEZG
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9HUEUuRVRQNSA9IChNMDE3ICgw
eDAwLCAweDAyLCAweDAxLCAweDc4LCAweDAwLCAweDE4KSA+PiAweDEwKQogICAgICAgICAg
ICAgICAgSWYgKCgoXF9HUEUuRVRQNSA9PSAweDAxKSB8fCAoXF9HUEUuRVRQNSA9PSAweDAz
KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP
ZiAoXF9TQi5QQ0kwLkdQUDUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1BQNSwgMHgyKVxu
IiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1BQNSwgMHgwMikgLy8gRGV2aWNlIFdha2UK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIElmICgoXF9HUEUuRVRQNiAhPSAweEZGKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgXF9HUEUuRVRQNiA9IChNMDE3ICgweDAwLCAweDAyLCAweDAyLCAw
eDc4LCAweDAwLCAweDE4KSA+PiAweDEwKQogICAgICAgICAgICAgICAgSWYgKCgoXF9HUEUu
RVRQNiA9PSAweDAxKSB8fCAoXF9HUEUuRVRQNiA9PSAweDAzKSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQUDYp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1BQNiwgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc
X1NCLlBDSTAuR1BQNiwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgo
XF9HUEUuRVRQNyAhPSAweEZGKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9H
UEUuRVRQNyA9IChNMDE3ICgweDAwLCAweDAyLCAweDAzLCAweDc4LCAweDAwLCAweDE4KSA+
PiAweDEwKQogICAgICAgICAgICAgICAgSWYgKCgoXF9HUEUuRVRQNyA9PSAweDAxKSB8fCAo
XF9HUEUuRVRQNyA9PSAweDAzKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQUDcpKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NC
LlBDSTAuR1BQNywgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1BQNywgMHgw
MikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoXF9HUEUuRVRQOCAhPSAweEZG
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9HUEUuRVRQOCA9IChNMDE3ICgw
eDAwLCAweDAyLCAweDA0LCAweDc4LCAweDAwLCAweDE4KSA+PiAweDEwKQogICAgICAgICAg
ICAgICAgSWYgKCgoXF9HUEUuRVRQOCA9PSAweDAxKSB8fCAoXF9HUEUuRVRQOCA9PSAweDAz
KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP
ZiAoXF9TQi5QQ0kwLkdQUDgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1BQOCwgMHgyKVxu
IiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1BQOCwgMHgwMikgLy8gRGV2aWNlIFdha2UK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIElmICgoXF9HUEUuRVRQOSAhPSAweEZGKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgXF9HUEUuRVRQOSA9IChNMDE3ICgweDAwLCAweDAyLCAweDA1LCAw
eDc4LCAweDAwLCAweDE4KSA+PiAweDEwKQogICAgICAgICAgICAgICAgSWYgKCgoXF9HUEUu
RVRQOSA9PSAweDAxKSB8fCAoXF9HUEUuRVRQOSA9PSAweDAzKSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQUDkp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1BQOSwgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc
X1NCLlBDSTAuR1BQOSwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgo
XF9HUEUuRVRQQSAhPSAweEZGKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9H
UEUuRVRQQSA9IChNMDE3ICgweDAwLCAweDAyLCAweDA2LCAweDc4LCAweDAwLCAweDE4KSA+
PiAweDEwKQogICAgICAgICAgICAgICAgSWYgKCgoXF9HUEUuRVRQQSA9PSAweDAxKSB8fCAo
XF9HUEUuRVRQQSA9PSAweDAzKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQUEEpKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NC
LlBDSTAuR1BQQSwgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1BQQSwgMHgw
MikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoXF9HUEUuRVQxMSAhPSAweEZG
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9HUEUuRVQxMSA9IChNMDE3ICgw
eDAwLCAweDAzLCAweDAxLCAweDc4LCAweDAwLCAweDE4KSA+PiAweDEwKQogICAgICAgICAg
ICAgICAgSWYgKCgoXF9HUEUuRVQxMSA9PSAweDAxKSB8fCAoXF9HUEUuRVQxMSA9PSAweDAz
KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP
ZiAoXF9TQi5QQ0kwLkdQMTEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1AxMSwgMHgyKVxu
IiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1AxMSwgMHgwMikgLy8gRGV2aWNlIFdha2UK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIElmICgoXF9HUEUuRVQxMiAhPSAweEZGKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgXF9HUEUuRVQxMiA9IChNMDE3ICgweDAwLCAweDA0LCAweDAxLCAw
eDc4LCAweDAwLCAweDE4KSA+PiAweDEwKQogICAgICAgICAgICAgICAgSWYgKCgoXF9HUEUu
RVQxMiA9PSAweDAxKSB8fCAoXF9HUEUuRVQxMiA9PSAweDAzKSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQMTIp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1AxMiwgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc
X1NCLlBDSTAuR1AxMiwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgo
XF9HUEUuRVQxNyAhPSAweEZGKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9H
UEUuRVQxNyA9IChNMDE3ICgweDAwLCAweDA4LCAweDAxLCAweDc4LCAweDAwLCAweDE4KSA+
PiAweDEwKQogICAgICAgICAgICAgICAgSWYgKCgoXF9HUEUuRVQxNyA9PSAweDAxKSB8fCAo
XF9HUEUuRVQxNyA9PSAweDAzKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQMTcpKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NC
LlBDSTAuR1AxNywgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1AxNywgMHgw
MikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoXF9HUEUuRVQxOCAhPSAweEZG
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9HUEUuRVQxOCA9IChNMDE3ICgw
eDAwLCAweDA4LCAweDAyLCAweDc4LCAweDAwLCAweDE4KSA+PiAweDEwKQogICAgICAgICAg
ICAgICAgSWYgKCgoXF9HUEUuRVQxOCA9PSAweDAxKSB8fCAoXF9HUEUuRVQxOCA9PSAweDAz
KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP
ZiAoXF9TQi5QQ0kwLkdQMTgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgTTQ2MCAoIiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1AxOCwgMHgyKVxu
IiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR1AxOCwgMHgwMikgLy8gRGV2aWNlIFdha2UK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIElmICgoXF9HUEUuRVQxOSAhPSAweEZGKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgXF9HUEUuRVQxOSA9IChNMDE3ICgweDAwLCAweDA4LCAweDAzLCAw
eDc4LCAweDAwLCAweDE4KSA+PiAweDEwKQogICAgICAgICAgICAgICAgSWYgKCgoXF9HUEUu
RVQxOSA9PSAweDAxKSB8fCAoXF9HUEUuRVQxOSA9PSAweDAzKSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLkdQMTkp
KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAo
IiAgICBOb3RpZnkgKFxcX1NCLlBDSTAuR1AxOSwgMHgyKVxuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc
X1NCLlBDSTAuR1AxOSwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0K
Cg==
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt18.dsl"
Content-Disposition: attachment; filename="ssdt18.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MTguZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMDA1OCAoODgpCiAqICAgICBSZXZpc2lvbiAgICAgICAgIDB4
MDIKICogICAgIENoZWNrc3VtICAgICAgICAgMHhCMwogKiAgICAgT0VNIElEICAgICAgICAg
ICAiTEVOT1ZPIgogKiAgICAgT0VNIFRhYmxlIElEICAgICAiR1BQMCIKICogICAgIE9FTSBS
ZXZpc2lvbiAgICAgMHgwMDAwMDAwMSAoMSkKICogICAgIENvbXBpbGVyIElEICAgICAgIklO
VEwiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MjAxODAzMTMgKDUzODQ0NDU2MykKICov
CkRlZmluaXRpb25CbG9jayAoIiIsICJTU0RUIiwgMiwgIkxFTk9WTyIsICJHUFAwIiwgMHgw
MDAwMDAwMSkKewogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5HUFAwLCBEZXZpY2VPYmopCgog
ICAgU2NvcGUgKFxfU0IuUENJMC5HUFAwKQogICAgewogICAgICAgIERldmljZSAoREVWMCkK
ICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDApICAvLyBfQURSOiBBZGRy
ZXNzCiAgICAgICAgfQogICAgfQp9Cgo=
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt19.dsl"
Content-Disposition: attachment; filename="ssdt19.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MTkuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMDczQSAoMTg1MCkKICogICAgIFJldmlzaW9uICAgICAgICAg
MHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweDJBCiAqICAgICBPRU0gSUQgICAgICAg
ICAgICJMRU5PVk8iCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJPRU1QTUYiCiAqICAgICBP
RU0gUmV2aXNpb24gICAgIDB4MDAwMDAwMDEgKDEpCiAqICAgICBDb21waWxlciBJRCAgICAg
ICJJTlRMIgogKiAgICAgQ29tcGlsZXIgVmVyc2lvbiAweDIwMTgwMzEzICg1Mzg0NDQ1NjMp
CiAqLwpEZWZpbml0aW9uQmxvY2sgKCIiLCAiU1NEVCIsIDIsICJMRU5PVk8iLCAiT0VNUE1G
IiwgMHgwMDAwMDAwMSkKewogICAgRXh0ZXJuYWwgKF9TQl8uUE1GXy5NNDgwLCBCdWZmT2Jq
KQogICAgRXh0ZXJuYWwgKEZMUEYsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAg
IEV4dGVybmFsIChNMDM3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA0NiwgSW50T2Jq
KQogICAgRXh0ZXJuYWwgKE0wNDcsIEludE9iaikKICAgIEV4dGVybmFsIChNMDUwLCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoTTA1MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0w
NTIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDUzLCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoTTA1NCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTUsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMDU2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1NywgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTgsIERldmljZU9iaikKICAgIEV4dGVybmFsIChN
MDU5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA2MiwgRGV2aWNlT2JqKQogICAgRXh0
ZXJuYWwgKE0wNjgsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDY5LCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoTTA3MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzEsIERl
dmljZU9iaikKICAgIEV4dGVybmFsIChNMDcyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAo
TTA3NCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzUsIERldmljZU9iaikKICAgIEV4
dGVybmFsIChNMDc2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NywgRGV2aWNlT2Jq
KQogICAgRXh0ZXJuYWwgKE0wNzgsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc5LCBE
ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA4MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwg
KE0wODEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDgyLCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTA4MywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODQsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDg1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTA4NiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODcsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMDg4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTA4OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTAsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMDkxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5Miwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTMsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMDk0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5NSwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0wOTYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMDk3LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5OCwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0wOTksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAw
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwMSwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0xMDIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAzLCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEwNCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0xMDUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA2LCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTEwNywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0x
MDgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTA5LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTExMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMTUsIEJ1
ZmZPYmopCiAgICBFeHRlcm5hbCAoTTExNiwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwg
KE0xMTcsIEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChNMTE4LCBCdWZmRmllbGRPYmop
CiAgICBFeHRlcm5hbCAoTTExOSwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMjAs
IEJ1ZmZGaWVsZE9iaikKICAgIEV4dGVybmFsIChNMTIyLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTEyNywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0xMjgsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMTMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTEzMiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzMsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMTM0LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzNSwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMzYsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMjIwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIyMSwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMjYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMjI3LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTIyOSwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0yMzEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjMzLCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIzNSwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0yM0EsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjUxLCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTI4MCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0yOTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjlBLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTMxMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMUMs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzIwLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTMyMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjIsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzIzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTMyNCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjUsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMzI2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMy
NywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjgsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMzI5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMyQSwgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKE0zMkIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMzMw
LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMzMSwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE0zNzgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzc5LCBGaWVsZFVu
aXRPYmopCiAgICBFeHRlcm5hbCAoTTM4MCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwg
KE0zODEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzgyLCBGaWVsZFVuaXRPYmop
CiAgICBFeHRlcm5hbCAoTTM4MywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODQs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg1LCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTM4NiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODcsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzg4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTM4OSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zOTAsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMzkxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM5
MiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00MDQsIEJ1ZmZPYmopCiAgICBFeHRl
cm5hbCAoTTQwOCwgTXV0ZXhPYmopCiAgICBFeHRlcm5hbCAoTTQxNCwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE00NDQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDQ5
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1MywgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE00NTQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU1LCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTQ1NiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE00NTcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDYwLCBNZXRob2RPYmop
ICAgIC8vIDcgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTRDMCwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE00RjAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNjEwLCBG
aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTYyMCwgRmllbGRVbml0T2JqKQogICAgRXh0
ZXJuYWwgKE02MzEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNjUyLCBGaWVsZFVu
aXRPYmopCgogICAgU2NvcGUgKFxfU0IpCiAgICB7CiAgICAgICAgT3BlcmF0aW9uUmVnaW9u
IChUUDgwLCBTeXN0ZW1JTywgMHg4MCwgMHgwNCkKICAgICAgICBGaWVsZCAoVFA4MCwgRFdv
cmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBQTVRQLCAg
IDMyCiAgICAgICAgfQoKICAgICAgICBOYW1lIChEUFg0LCAweEQ2MDQwMDAwKQogICAgICAg
IE1ldGhvZCAoQVBYNCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIFBN
VFAgPSBEUFg0IC8qIFxfU0JfLkRQWDQgKi8KICAgICAgICAgICAgRFBYNCArPSAweDAxCiAg
ICAgICAgfQoKICAgICAgICBNZXRob2QgKEFQWDcsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAg
ewogICAgICAgICAgICBNNDYwICgiRkVBLUFTTC1cXF9TQi5QTUYuUE1GNyBjYWxsIEFQWDdc
biIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFxG
TFBGIChBcmcxKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChBUFg4LCAxLCBTZXJpYWxp
emVkKQogICAgICAgIHsKICAgICAgICAgICAgUE1UUCA9ICgweEQ2MDgwMDAwIHwgQXJnMCkK
ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQVBYQSwgMSwgU2VyaWFsaXplZCkKICAgICAg
ICB7CiAgICAgICAgICAgIFBNVFAgPSAoMHhENjBBMDAwMCB8IEFyZzApCiAgICAgICAgfQoK
ICAgICAgICBNZXRob2QgKEFQWEUsIDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg
ICAgICBQTVRQID0gKDB4RDYwRTAwMDAgfCBBcmcwKQogICAgICAgICAgICBTbGVlcCAoMHgw
MSkKICAgICAgICAgICAgUE1UUCA9ICgweEQ2MEUxMDAwIHwgQXJnMSkKICAgICAgICAgICAg
U2xlZXAgKDB4MDEpCiAgICAgICAgICAgIFBNVFAgPSAoMHhENjBFMjAwMCB8IEFyZzIpCiAg
ICAgICAgfQoKICAgICAgICBNZXRob2QgKEFQWEYsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAg
ewogICAgICAgICAgICBMb2NhbDAgPSBBcmcxCiAgICAgICAgICAgIExvY2FsMCA8PD0gMHgw
OAogICAgICAgICAgICBMb2NhbDAgfD0gQXJnMAogICAgICAgICAgICBQTVRQID0gKDB4RDYw
RjAwMDAgfCBMb2NhbDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEFQWEcsIDQsIFNl
cmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBBcmczCiAgICAgICAg
ICAgIExvY2FsMCA8PD0gMHgwNAogICAgICAgICAgICBMb2NhbDAgfD0gQXJnMgogICAgICAg
ICAgICBMb2NhbDAgPDw9IDB4MDQKICAgICAgICAgICAgTG9jYWwwIHw9IEFyZzEKICAgICAg
ICAgICAgTG9jYWwwIDw8PSAweDA0CiAgICAgICAgICAgIExvY2FsMCB8PSBBcmcwCiAgICAg
ICAgICAgIFBNVFAgPSAoMHhENjEwMDAwMCB8IExvY2FsMCkKICAgICAgICB9CgogICAgICAg
IE1ldGhvZCAoQVNJMCwgMywgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00
NjAgKCJGRUEtQVNMLVxcX1NCLlBNRi5QU0kwIGNhbGwgQVNJMFxuIiwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUE1UUCA9ICgweEQ2QTAwMDAw
IHwgQXJnMCkKICAgICAgICAgICAgU2xlZXAgKDB4MDEpCiAgICAgICAgICAgIFBNVFAgPSAo
MHhENkExMDAwMCB8IEFyZzEpCiAgICAgICAgICAgIFNsZWVwICgweDAxKQogICAgICAgICAg
ICBQTVRQID0gKDB4RDZBMjAwMDAgfCBBcmcyKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k
IChBU0kxLCAzLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIkZF
QS1BU0wtXFxfU0IuUE1GLlBTSTEgY2FsbCBBU0kxXG4iLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBQTVRQID0gKDB4RDZBMzAwMDAgfCBBcmcw
KQogICAgICAgICAgICBTbGVlcCAoMHgwMSkKICAgICAgICAgICAgUE1UUCA9ICgweEQ2QTQw
MDAwIHwgQXJnMSkKICAgICAgICAgICAgU2xlZXAgKDB4MDEpCiAgICAgICAgICAgIFBNVFAg
PSAoMHhENkE1MDAwMCB8IEFyZzIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEFTSTIs
IDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiRkVBLUFTTC1c
XF9TQi5QTUYuUFNJMiBjYWxsIEFTSTJcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDApCiAgICAgICAgICAgIFBNVFAgPSAoMHhENkE2MDAwMCB8IEFyZzApCiAgICAg
ICAgICAgIFNsZWVwICgweDAxKQogICAgICAgICAgICBQTVRQID0gKDB4RDZBNzAwMDAgfCBB
cmcxKQogICAgICAgICAgICBTbGVlcCAoMHgwMSkKICAgICAgICAgICAgUE1UUCA9ICgweEQ2
QTgwMDAwIHwgQXJnMikKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQVNJMywgMywgU2Vy
aWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCJGRUEtQVNMLVxcX1NCLlBN
Ri5QU0kzIGNhbGwgQVNJM1xuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgUE1UUCA9ICgweEQ2QTkwMDAwIHwgQXJnMCkKICAgICAgICAgICAg
U2xlZXAgKDB4MDEpCiAgICAgICAgICAgIFBNVFAgPSAoMHhENkFBMDAwMCB8IEFyZzEpCiAg
ICAgICAgICAgIFNsZWVwICgweDAxKQogICAgICAgICAgICBQTVRQID0gKDB4RDZBQjAwMDAg
fCBBcmcyKQogICAgICAgIH0KICAgIH0KfQoK
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt20.dsl"
Content-Disposition: attachment; filename="ssdt20.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MjAuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMDA5MCAoMTQ0KQogKiAgICAgUmV2aXNpb24gICAgICAgICAw
eDAyCiAqICAgICBDaGVja3N1bSAgICAgICAgIDB4ODMKICogICAgIE9FTSBJRCAgICAgICAg
ICAgIkxFTk9WTyIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIkNQTU1TTFBJIgogKiAgICAg
T0VNIFJldmlzaW9uICAgICAweDAwMDAwMDAxICgxKQogKiAgICAgQ29tcGlsZXIgSUQgICAg
ICAiSU5UTCIKICogICAgIENvbXBpbGVyIFZlcnNpb24gMHgyMDE4MDMxMyAoNTM4NDQ0NTYz
KQogKi8KRGVmaW5pdGlvbkJsb2NrICgiIiwgIlNTRFQiLCAyLCAiTEVOT1ZPIiwgIkNQTU1T
TFBJIiwgMHgwMDAwMDAwMSkKewogICAgRXh0ZXJuYWwgKF9TQl8uUExURiwgRGV2aWNlT2Jq
KQoKICAgIFNjb3BlIChcX1NCLlBMVEYpCiAgICB7CiAgICAgICAgTmFtZSAoX0xQSSwgUGFj
a2FnZSAoMHgwNCkgIC8vIF9MUEk6IExvdyBQb3dlciBJZGxlIFN0YXRlcwogICAgICAgIHsK
ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAweDAx
LCAKICAgICAgICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgMHgwMDBGNDI0MCwgCiAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAg
ICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVy
bywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAg
ICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAg
ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
ICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAg
ICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJT
MGkzIgogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgIH0KfQoK
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt21.dsl"
Content-Disposition: attachment; filename="ssdt21.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MjEuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMENEQyAoMzI5MikKICogICAgIFJldmlzaW9uICAgICAgICAg
MHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweDEwCiAqICAgICBPRU0gSUQgICAgICAg
ICAgICJMRU5PVk8iCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJOVk1FIgogKiAgICAgT0VN
IFJldmlzaW9uICAgICAweDAwMDAwMDAxICgxKQogKiAgICAgQ29tcGlsZXIgSUQgICAgICAi
SU5UTCIKICogICAgIENvbXBpbGVyIFZlcnNpb24gMHgyMDE4MDMxMyAoNTM4NDQ0NTYzKQog
Ki8KRGVmaW5pdGlvbkJsb2NrICgiIiwgIlNTRFQiLCAyLCAiTEVOT1ZPIiwgIk5WTUUiLCAw
eDAwMDAwMDAxKQp7CiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLkdQUDgsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChfU0JfLlBDSTAuR1BQOC5fQURSLCBJbnRPYmopCiAgICBFeHRlcm5h
bCAoX1NCXy5QQ0kwLkxQV0QsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4
dGVybmFsIChfU0JfLlBDSTAuVVBXRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwog
ICAgRXh0ZXJuYWwgKE0wMDAsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4
dGVybmFsIChNMDE3LCBNZXRob2RPYmopICAgIC8vIDYgQXJndW1lbnRzCiAgICBFeHRlcm5h
bCAoTTAxOSwgTWV0aG9kT2JqKSAgICAvLyA0IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0w
MjAsIE1ldGhvZE9iaikgICAgLy8gNSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMDM3LCBE
ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA0NiwgSW50T2JqKQogICAgRXh0ZXJuYWwgKE0w
NDcsIEludE9iaikKICAgIEV4dGVybmFsIChNMDUwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5h
bCAoTTA1MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTIsIERldmljZU9iaikKICAg
IEV4dGVybmFsIChNMDUzLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1NCwgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKE0wNTUsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDU2
LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1NywgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKE0wNTgsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDU5LCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoTTA2MiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNjgsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChNMDY5LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3
MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzEsIERldmljZU9iaikKICAgIEV4dGVy
bmFsIChNMDcyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NCwgRGV2aWNlT2JqKQog
ICAgRXh0ZXJuYWwgKE0wNzUsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc2LCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoTTA3NywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0w
NzgsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc5LCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoTTA4MCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wODEsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMDgyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4Mywg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODQsIEZpZWxkVW5pdE9iaikKICAgIEV4
dGVybmFsIChNMDg1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4NiwgRmllbGRV
bml0T2JqKQogICAgRXh0ZXJuYWwgKE0wODcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMDg4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA4OSwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0wOTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDkx
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5MiwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0wOTMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk0LCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTA5NSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0wOTYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMDk3LCBGaWVsZFVuaXRP
YmopCiAgICBFeHRlcm5hbCAoTTA5OCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0w
OTksIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAwLCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTEwMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDIsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTAzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTEwNCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDUsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNMTA2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo
TTEwNywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMDgsIEZpZWxkVW5pdE9iaikK
ICAgIEV4dGVybmFsIChNMTA5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTExMCwg
RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0xMTUsIEJ1ZmZPYmopCiAgICBFeHRlcm5h
bCAoTTExNiwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMTcsIEJ1ZmZGaWVsZE9i
aikKICAgIEV4dGVybmFsIChNMTE4LCBCdWZmRmllbGRPYmopCiAgICBFeHRlcm5hbCAoTTEx
OSwgQnVmZkZpZWxkT2JqKQogICAgRXh0ZXJuYWwgKE0xMjAsIEJ1ZmZGaWVsZE9iaikKICAg
IEV4dGVybmFsIChNMTIyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEyNywgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0xMjgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs
IChNMTMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzMiwgRmllbGRVbml0T2Jq
KQogICAgRXh0ZXJuYWwgKE0xMzMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMTM0
LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTEzNSwgRmllbGRVbml0T2JqKQogICAg
RXh0ZXJuYWwgKE0xMzYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjIwLCBGaWVs
ZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTIyMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu
YWwgKE0yMjYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjI3LCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoTTIyOSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yMzEs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMjMzLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTIzNSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yM0EsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMjUxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTI4MCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0yOTAsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMjlBLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMx
MCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMUMsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMzIwLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyMSwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMjIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMzIzLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyNCwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0zMjUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MzI2LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTMyNywgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE0zMjgsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNMzI5LCBE
ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTMyQSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwg
KE0zMkIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMzMwLCBEZXZpY2VPYmopCiAgICBF
eHRlcm5hbCAoTTMzMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zNzgsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNMzc5LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h
bCAoTTM4MCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODEsIEZpZWxkVW5pdE9i
aikKICAgIEV4dGVybmFsIChNMzgyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4
MywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODQsIEZpZWxkVW5pdE9iaikKICAg
IEV4dGVybmFsIChNMzg1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4NiwgRmll
bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zODcsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy
bmFsIChNMzg4LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM4OSwgRmllbGRVbml0
T2JqKQogICAgRXh0ZXJuYWwgKE0zOTAsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChN
MzkxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoTTM5MiwgRmllbGRVbml0T2JqKQog
ICAgRXh0ZXJuYWwgKE00MDQsIEJ1ZmZPYmopCiAgICBFeHRlcm5hbCAoTTQwOCwgTXV0ZXhP
YmopCiAgICBFeHRlcm5hbCAoTTQxNCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00
NDQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDQ5LCBGaWVsZFVuaXRPYmopCiAg
ICBFeHRlcm5hbCAoTTQ1MywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NTQsIEZp
ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNDU1LCBGaWVsZFVuaXRPYmopCiAgICBFeHRl
cm5hbCAoTTQ1NiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00NTcsIEZpZWxkVW5p
dE9iaikKICAgIEV4dGVybmFsIChNNDYwLCBNZXRob2RPYmopICAgIC8vIDcgQXJndW1lbnRz
CiAgICBFeHRlcm5hbCAoTTRDMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE00RjAs
IEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChNNjEwLCBGaWVsZFVuaXRPYmopCiAgICBF
eHRlcm5hbCAoTTYyMCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE02MzEsIEZpZWxk
VW5pdE9iaikKICAgIEV4dGVybmFsIChNNjUyLCBGaWVsZFVuaXRPYmopCgogICAgU2NvcGUg
KFxfU0IuUENJMC5HUFA4KQogICAgewogICAgICAgIE5hbWUgKFdEM0MsIDB4MDApCiAgICAg
ICAgTmFtZSAoTkJSSSwgWmVybykKICAgICAgICBOYW1lIChOQkFSLCBaZXJvKQogICAgICAg
IE5hbWUgKE5DTUQsIFplcm8pCiAgICAgICAgTmFtZSAoUFhEQywgWmVybykKICAgICAgICBO
YW1lIChQWExDLCBaZXJvKQogICAgICAgIE5hbWUgKFBYRDIsIFplcm8pCiAgICAgICAgTmFt
ZSAoQlJJMiwgWmVybykKICAgICAgICBOYW1lIChCQVIyLCBaZXJvKQogICAgICAgIE5hbWUg
KENNRDIsIFplcm8pCiAgICAgICAgTmFtZSAoWERDMiwgWmVybykKICAgICAgICBOYW1lIChY
TEMyLCBaZXJvKQogICAgICAgIE5hbWUgKFhEMjIsIFplcm8pCiAgICAgICAgTXV0ZXggKE1H
Q0MsIDB4MDApCiAgICAgICAgUG93ZXJSZXNvdXJjZSAoUDBOViwgMHgwMCwgMHgwMDAwKQog
ICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoRDBOViwgMHgwMSkKICAgICAgICAgICAgTWV0
aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIE0wMDAgKDB4MzBBQSkKICAgICAgICAgICAgICAgIE00
NjAgKCJQTEEtQVNMLVxcX1NCLlBDSTAuR1BQOC5QME5WLl9TVEFcbiIsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBSZXR1cm4gKEQwTlYp
IC8qIFxfU0JfLlBDSTAuR1BQOC5QME5WLkQwTlYgKi8KICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgTWV0aG9kIChfT04sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBP
bgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNMDAwICgweDMwRDApCiAgICAgICAg
ICAgICAgICBNNDYwICgiUExBLUFTTC1cXF9TQi5QQ0kwLkdQUDguUDBOVi5fT05cbiIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBSUENG
IChfQURSKQogICAgICAgICAgICAgICAgSWYgKChfQURSID09IDB4MDAwMjAwMDQpKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFVQV0QgKE5CUkkpCiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgVVBXRCAoQlJJMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBXRDNDID0gMHgwMAogICAgICAgICAgICAgICAgRDBOViA9IDB4MDEKICAgICAg
ICAgICAgICAgIE0wMDAgKDB4MzBEMSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0
aG9kIChfT0ZGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIgT2ZmCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE0wMDAgKDB4MzBEMykKICAgICAgICAgICAgICAg
IE00NjAgKCJQTEEtQVNMLVxcX1NCLlBDSTAuR1BQOC5QME5WLl9PRkZcbiIsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBTUENGIChfQURS
KQogICAgICAgICAgICAgICAgSWYgKChfQURSID09IDB4MDAwMjAwMDQpKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIExQV0QgKE5CUkkpCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTFBXRCAoQlJJMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBEME5WID0gMHgwMAogICAgICAgICAgICAgICAgTTAwMCAoMHgzMEQ1KQogICAgICAgICAg
ICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKE5WTUUpCiAgICAgICAgewogICAgICAg
ICAgICBOYW1lIChfQURSLCAweDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBO
YW1lIChfUzBXLCAweDA0KSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAg
ICAgICAgTmFtZSAoX1BSMCwgUGFja2FnZSAoMHgwMSkgIC8vIF9QUjA6IFBvd2VyIFJlc291
cmNlcyBmb3IgRDAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUDBOVgogICAgICAg
ICAgICB9KQogICAgICAgICAgICBOYW1lIChfUFIyLCBQYWNrYWdlICgweDAxKSAgLy8gX1BS
MjogUG93ZXIgUmVzb3VyY2VzIGZvciBEMgogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBQME5WCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKF9QUjMsIFBhY2thZ2Ug
KDB4MDEpICAvLyBfUFIzOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQzaG90CiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIFAwTlYKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0
aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNMDAwICgweDMwNTApCiAgICAgICAgICAg
ICAgICBNNDYwICgiUExBLUFTTC1cXF9TQi5QQ0kwLkdQUDguTlZNRS5fUFMwXG4iLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBT
dGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0wMDAgKDB4MzA1MykKICAg
ICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLVxcX1NCLlBDSTAuR1BQOC5OVk1FLl9QUzNc
biIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE5hbWUgKF9EU0QsIFBhY2thZ2UgKDB4MDIpICAvLyBfRFNEOiBEZXZp
Y2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUb1VVSUQg
KCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVV
SUQgKi8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAg
ICAgICAgICAgICAgICAgICAgICAweDAxCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChT
UENGLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIlBM
QS1BU0wtX1NCLlBDSTAuR1BQOC5TUENGXG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBa
ZXJvLCBaZXJvKQogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMDAyMDAwNCkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCJQTEEtQVNMLV9TQi5QQ0kwLkdQUDgu
U1BDRiBOVk1FIDFcbiIsIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAg
ICAgICAgICAgICAgICBMb2NhbDAgPSBNMDE5IChaZXJvLCAoQXJnMCA+PiAweDEwKSwgKEFy
ZzAgJiAweEZGKSwgCiAgICAgICAgICAgICAgICAgICAgMHgxOCkKICAgICAgICAgICAgICAg
IE5CUkkgPSAoKExvY2FsMCAmIDB4RkYwMCkgPj4gMHgwOCkKICAgICAgICAgICAgICAgIE5D
TUQgPSBNMDE5IChOQlJJLCBaZXJvLCBaZXJvLCAweDA0KQogICAgICAgICAgICAgICAgTkJB
UiA9IE0wMTkgKE5CUkksIFplcm8sIFplcm8sIDB4MTApCiAgICAgICAgICAgICAgICBMb2Nh
bDEgPSBQWENSIChOQlJJLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgUFhEQyA9IE0w
MTkgKE5CUkksIFplcm8sIFplcm8sIChMb2NhbDEgKyAweDA4KSkKICAgICAgICAgICAgICAg
IFBYTEMgPSBNMDE5IChOQlJJLCBaZXJvLCBaZXJvLCAoTG9jYWwxICsgMHgxMCkpCiAgICAg
ICAgICAgICAgICBQWEQyID0gTTAxOSAoTkJSSSwgWmVybywgWmVybywgKExvY2FsMSArIDB4
MjgpKQogICAgICAgICAgICAgICAgTTQ2MCAoIlBUTE1PRCBFbmhhbmNlOiBQTEEtQVNMLV9T
Qi5QQ0kwLkdQUDguU1BDRiBOQ01EIDB4JXggIE5CQVIgMHgleCAgUFhEQyAweCV4ICBQWExD
IDB4JXggIFBYRDIgMHgleFxuIiwgTkNNRCwgTkJBUiwgUFhEQywgUFhMQywgUFhEMiwgWmVy
bykKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIE00NjAgKCJQTEEtQVNMLV9TQi5QQ0kwLkdQUDguU1BDRiBOVk1FIDJcbiIs
IFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICBM
b2NhbDAgPSBNMDE5IChaZXJvLCAoQXJnMCA+PiAweDEwKSwgKEFyZzAgJiAweEZGKSwgCiAg
ICAgICAgICAgICAgICAgICAgMHgxOCkKICAgICAgICAgICAgICAgIEJSSTIgPSAoKExvY2Fs
MCAmIDB4RkYwMCkgPj4gMHgwOCkKICAgICAgICAgICAgICAgIENNRDIgPSBNMDE5IChCUkky
LCBaZXJvLCBaZXJvLCAweDA0KQogICAgICAgICAgICAgICAgQkFSMiA9IE0wMTkgKEJSSTIs
IFplcm8sIFplcm8sIDB4MTApCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBQWENSIChCUkky
LCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgWERDMiA9IE0wMTkgKEJSSTIsIFplcm8s
IFplcm8sIChMb2NhbDEgKyAweDA4KSkKICAgICAgICAgICAgICAgIFhMQzIgPSBNMDE5IChC
UkkyLCBaZXJvLCBaZXJvLCAoTG9jYWwxICsgMHgxMCkpCiAgICAgICAgICAgICAgICBYRDIy
ID0gTTAxOSAoQlJJMiwgWmVybywgWmVybywgKExvY2FsMSArIDB4MjgpKQogICAgICAgICAg
ICAgICAgTTQ2MCAoIlBUTE1PRCBFbmhhbmNlOiBQTEEtQVNMLV9TQi5QQ0kwLkdQUDguU1BD
RiBDTUQyIDB4JXggIEJBUjIgMHgleCAgWERDMiAweCV4ICBYTEMyIDB4JXggIFhEMjIgMHgl
eFxuIiwgQ01EMiwgQkFSMiwgWERDMiwgWExDMiwgWEQyMiwgWmVybykKICAgICAgICAgICAg
fQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChSUENGLCAxLCBOb3RTZXJpYWxpemVkKQog
ICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtX1NCLlBDSTAuR1BQOC5SUENG
XG4iLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvLCBaZXJvKQogICAgICAgICAgICBJ
ZiAoKEFyZzAgPT0gMHgwMDAyMDAwNCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IE00NjAgKCJQTEEtQVNMLV9TQi5QQ0kwLkdQUDguUlBDRiBOVk1FIDFcbiIsIFplcm8sIFpl
cm8sIFplcm8sIFplcm8sIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBQ
WENSIChOQlJJLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgTTAyMCAoTkJSSSwgWmVy
bywgWmVybywgKExvY2FsMSArIDB4MDgpLCBQWERDKQogICAgICAgICAgICAgICAgTTAyMCAo
TkJSSSwgWmVybywgWmVybywgKExvY2FsMSArIDB4MTApLCAoUFhMQyAmIDB4RkZGRkZFRkMp
KQogICAgICAgICAgICAgICAgTTAyMCAoTkJSSSwgWmVybywgWmVybywgKExvY2FsMSArIDB4
MjgpLCBQWEQyKQogICAgICAgICAgICAgICAgTTAyMCAoTkJSSSwgWmVybywgWmVybywgMHgx
MCwgTkJBUikKICAgICAgICAgICAgICAgIE0wMjAgKE5CUkksIFplcm8sIFplcm8sIDB4MDQs
IDB4MDYpCiAgICAgICAgICAgICAgICBNNDYwICgiUFRMTU9EIEVuaGFuY2U6IFBMQS1BU0wt
X1NCLlBDSTAuR1BQOC5SUENGIE5DTUQgMHgleCAgTkJBUiAweCV4ICBQWERDIDB4JXggIFBY
TEMgMHgleCAgUFhEMiAweCV4XG4iLCBOQ01ELCBOQkFSLCBQWERDLCBQWExDLCBQWEQyLCBa
ZXJvKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgTTQ2MCAoIlBMQS1BU0wtX1NCLlBDSTAuR1BQOC5SUENGIE5WTUUgMlxu
IiwgWmVybywgWmVybywgWmVybywgWmVybywgWmVybywgWmVybykKICAgICAgICAgICAgICAg
IExvY2FsMSA9IFBYQ1IgKEJSSTIsIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICBNMDIw
IChCUkkyLCBaZXJvLCBaZXJvLCAoTG9jYWwxICsgMHgwOCksIFhEQzIpCiAgICAgICAgICAg
ICAgICBNMDIwIChCUkkyLCBaZXJvLCBaZXJvLCAoTG9jYWwxICsgMHgxMCksIChYTEMyICYg
MHhGRkZGRkVGQykpCiAgICAgICAgICAgICAgICBNMDIwIChCUkkyLCBaZXJvLCBaZXJvLCAo
TG9jYWwxICsgMHgyOCksIFhEMjIpCiAgICAgICAgICAgICAgICBNMDIwIChCUkkyLCBaZXJv
LCBaZXJvLCAweDEwLCBCQVIyKQogICAgICAgICAgICAgICAgTTAyMCAoQlJJMiwgWmVybywg
WmVybywgMHgwNCwgMHgwNikKICAgICAgICAgICAgICAgIE00NjAgKCJQVExNT0QgRW5oYW5j
ZTogUExBLUFTTC1fU0IuUENJMC5HUFA4LlJQQ0YgQ01EMiAweCV4ICBCQVIyIDB4JXggIFhE
QzIgMHgleCAgWExDMiAweCV4ICBYRDIyIDB4JXhcbiIsIENNRDIsIEJBUjIsIFhEQzIsIFhM
QzIsIFhEMjIsIFplcm8pCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhv
ZCAoUFhDUiwgMywgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCJQ
TEEtQVNMLV9TQi5QQ0kwLkdQUDguUFhDUlxuIiwgWmVybywgWmVybywgWmVybywgWmVybywg
WmVybywgWmVybykKICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICBMb2Nh
bDEgPSBNMDE3IChBcmcwLCBBcmcxLCBBcmcyLCAweDM0LCBaZXJvLCAweDA4KQogICAgICAg
ICAgICBXaGlsZSAoKExvY2FsMSAhPSBaZXJvKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgTG9jYWwyID0gTTAxNyAoQXJnMCwgQXJnMSwgQXJnMiwgTG9jYWwxLCBaZXJvLCAw
eDA4KQogICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwyID09IFplcm8pIHx8IChMb2NhbDIg
PT0gMHhGRikpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJyZWFr
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gMHgx
MCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9j
YWwxCiAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBMb2NhbDEgPSBNMDE3IChBcmcwLCBBcmcxLCBBcmcyLCAoTG9jYWwxICsg
T25lKSwgWmVybywgMHgwOCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChM
b2NhbDApCiAgICAgICAgfQogICAgfQp9Cgo=
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt22.dsl"
Content-Disposition: attachment; filename="ssdt22.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MjIuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwNTQ3RSAoMjE2MzApCiAqICAgICBSZXZpc2lvbiAgICAgICAg
IDB4MDIKICogICAgIENoZWNrc3VtICAgICAgICAgMHgxMwogKiAgICAgT0VNIElEICAgICAg
ICAgICAiTEVOT1ZPIgogKiAgICAgT0VNIFRhYmxlIElEICAgICAiQW1kVGFibGUiCiAqICAg
ICBPRU0gUmV2aXNpb24gICAgIDB4MDAwMDAwMDEgKDEpCiAqICAgICBDb21waWxlciBJRCAg
ICAgICJBTUQgIgogKiAgICAgQ29tcGlsZXIgVmVyc2lvbiAweDAwMDAwMDAxICgxKQogKi8K
RGVmaW5pdGlvbkJsb2NrICgiIiwgIlNTRFQiLCAyLCAiTEVOT1ZPIiwgIkFtZFRhYmxlIiwg
MHgwMDAwMDAwMSkKewogICAgRXh0ZXJuYWwgKF9TQl8uUExURi5DMDAwLCBEZXZpY2VPYmop
CiAgICBFeHRlcm5hbCAoX1NCXy5QTFRGLkMwMDEsIERldmljZU9iaikKICAgIEV4dGVybmFs
IChfU0JfLlBMVEYuQzAwMiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUExURi5D
MDAzLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QTFRGLkMwMDQsIERldmljZU9i
aikKICAgIEV4dGVybmFsIChfU0JfLlBMVEYuQzAwNSwgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKF9TQl8uUExURi5DMDA2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QTFRG
LkMwMDcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBMVEYuQzAwOCwgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUExURi5DMDA5LCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoX1NCXy5QTFRGLkMwMEEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBM
VEYuQzAwQiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUExURi5DMDBDLCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QTFRGLkMwMEQsIERldmljZU9iaikKICAgIEV4
dGVybmFsIChfU0JfLlBMVEYuQzAwRSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u
UExURi5DMDBGLCBEZXZpY2VPYmopCgogICAgU2NvcGUgKFxfU0IuUExURi5DMDAwKQogICAg
ewogICAgICAgIE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIpICAvLyBfUENUOiBQZXJmb3Jt
YW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAg
ICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAwNjIsIC8vIEFkZHJlc3MKICAgICAg
ICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZG
aXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDA2MywgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQog
ICAgICAgIE5hbWUgKF9QU1MsIFBhY2thZ2UgKDB4MDMpICAvLyBfUFNTOiBQZXJmb3JtYW5j
ZSBTdXBwb3J0ZWQgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwQ0U0LCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDBGNzgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAog
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4
OTgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDk3NCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIK
ICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoWFBTUywgUGFja2FnZSAo
MHgwMykKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIDB4MDAwMDBDRTQsIAogICAgICAgICAgICAgICAgMHgwMDAw
MEY3OCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
ICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAv
LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVy
ICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl
ICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwODk4LCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDA5NzQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIEJ1ZmZlciAo
MHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
QnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAw
eDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgw
OCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfUFNELCBQYWNrYWdl
ICgweDAxKSAgLy8gX1BTRDogUG93ZXIgU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewog
ICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFBDViwg
MHgwMCkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFBD
OiBQZXJmb3JtYW5jZSBQcmVzZW50IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAg
ICAgUmV0dXJuIChQUENWKSAvKiBcX1NCXy5QTFRGLkMwMDAuUFBDViAqLwogICAgICAgIH0K
CiAgICAgICAgTmFtZSAoX0NTVCwgUGFja2FnZSAoMHgwNCkgIC8vIF9DU1Q6IEMtU3RhdGVz
CiAgICAgICAgewogICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRI
VywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0
IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8g
Qml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAs
IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMDAxLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg
ICAgICAgICAgMHgwMDEyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNSwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMTVFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoX0NTRCwg
UGFja2FnZSAoMHgwMSkgIC8vIF9DU0Q6IEMtU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAg
ewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDA2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw
MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9
CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfTFBJLCBQYWNrYWdlICgweDA2KSAgLy8gX0xQ
STogTG93IFBvd2VyIElkbGUgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAwMDAs
IAogICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIAogICAgICAgICAgICAweDAwMDMs
IAogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAg
ICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAg
ICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJDMSIKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAweDAwMDAwMDI0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAw
MTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zm
c2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAiQzIiCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw
QSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDJCQywgCiAgICAgICAg
ICAgICAgICAweDAwMDAwMTVFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgUmVzb3VyY2VU
ZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lz
dGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw
MDAwMDAwMDA0MTUsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRl
ICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5
c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
MDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVt
b3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAw
MCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgIkMzIgogICAgICAgICAgICB9CiAgICAgICAgfSkK
ICAgICAgICBOYW1lIChfQ1BDLCBQYWNrYWdlICgweDE3KSAgLy8gX0NQQzogQ29udGludW91
cyBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICAweDE3LCAKICAg
ICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg
ICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MTgsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAg
ICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0
ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs
IAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAv
LyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8v
IEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjAsIC8v
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFj
Y2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg
ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBD
MDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAg
ICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4
ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQg
V2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBP
ZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjMsIC8vIEFkZHJl
c3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBT
aXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAg
ICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJC
MywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAg
Ly8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1w
bGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVt
TWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4NDAsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg
ICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAw
MEU3LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAg
ICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0
MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAw
MDAwMDAwMDAwMDAwRTgsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAg
ICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAog
ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIxLCAvLyBBZGRyZXNzCiAgICAg
ICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAg
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAw
MDAxLCAKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxOCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0
ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g
Qml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAweDAwMDAwMTkwLCAKICAgICAgICAgICAgMHgwMDAwMENFNQogICAgICAgIH0pCiAg
ICB9CgogICAgU2NvcGUgKFxfU0IuUExURi5DMDAxKQogICAgewogICAgICAgIE5hbWUgKF9Q
Q1QsIFBhY2thZ2UgKDB4MDIpICAvLyBfUENUOiBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAg
ICAgewogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAg
MHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwQzAwMTAwNjIsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAsKQog
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg
ICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDA2MywgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1Ms
IFBhY2thZ2UgKDB4MDMpICAvLyBfUFNTOiBQZXJmb3JtYW5jZSBTdXBwb3J0ZWQgU3RhdGVz
CiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAweDAwMDAwQ0U0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDBGNzgs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAw
MDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgw
MDAwMDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDk3NCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAg
ICAgICAgICAgICAweDAwMDAwMDAxCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwg
CiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAg
ICAgIH0pCiAgICAgICAgTmFtZSAoWFBTUywgUGFja2FnZSAoMHgwMykKICAgICAgICB7CiAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IDB4MDAwMDBDRTQsIAogICAgICAgICAgICAgICAgMHgwMDAwMEY3OCwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAg
ICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
ICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1
ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4u
Li4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA4KQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAweDAwMDAwODk4LCAKICAgICAgICAgICAgICAgIDB4MDAw
MDA5NzQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZl
ciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwOCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBCdWZmZXIg
KDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAyLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg
ICAgICAgfSkKICAgICAgICBOYW1lIChfUFNELCBQYWNrYWdlICgweDAxKSAgLy8gX1BTRDog
UG93ZXIgU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdl
ICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAg
ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFBDViwgMHgwMCkKICAgICAgICBNZXRo
b2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFBDOiBQZXJmb3JtYW5jZSBQcmVz
ZW50IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQUENWKSAv
KiBcX1NCXy5QTFRGLkMwMDEuUFBDViAqLwogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX0NT
VCwgUGFja2FnZSAoMHgwNCkgIC8vIF9DU1Q6IEMtU3RhdGVzCiAgICAgICAgewogICAgICAg
ICAgICAweDAzLCAKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAg
ICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMDAxLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwMDEyLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNSwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAg
ICAgICAgICAgMHgwMTVFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoX0NTRCwgUGFja2FnZSAoMHgwMSkgIC8v
IF9DU0Q6IEMtU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNr
YWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA2LCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAg
ICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAg
ICBOYW1lIChfTFBJLCBQYWNrYWdlICgweDA2KSAgLy8gX0xQSTogTG93IFBvd2VyIElkbGUg
U3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAwMDAsIAogICAgICAgICAgICAweDAw
MDAwMDAwMDAwMDAwMDAsIAogICAgICAgICAgICAweDAwMDMsIAogICAgICAgICAgICBQYWNr
YWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAw
MSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwg
ICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MiwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg
ICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1w
bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAg
ICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw
MDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3Rl
bU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAw
MDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJDMSIKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw
eDAwMDAwMDI0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMTIsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
ICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAiQzIiCiAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgMHgwMDAwMDJCQywgCiAgICAgICAgICAgICAgICAweDAwMDAwMTVF
LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1JTywgCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDA0MTUsIC8vIEFk
ZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJl
c3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgIkMzIgogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfQ1BD
LCBQYWNrYWdlICgweDE3KSAgLy8gX0NQQzogQ29udGludW91cyBQZXJmb3JtYW5jZSBDb250
cm9sCiAgICAgICAgewogICAgICAgICAgICAweDE3LCAKICAgICAgICAgICAgMHgwMywgCiAg
ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MTgsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAg
ICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAg
ICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMEMwMDEwMkIwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
MHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAg
ICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAg
ICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjAsIC8vIEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt
cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBX
aWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVz
cwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNp
emUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAw
MDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4
MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgx
MCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAg
ICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAg
ICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjMsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAg
ICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUg
KCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAK
ICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAog
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAog
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMywgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAg
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3Vy
Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAo
U3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg
Ly8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwg
Ly8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAs
ICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAg
ICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0
ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs
IAogICAgICAgICAgICAgICAgICAgIDB4NDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMEU3LCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAv
LyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwRTgsIC8v
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFj
Y2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAg
ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBD
MDAxMDJCNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAg
ICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAg
IDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAg
MHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAg
MHgwMDAwMDAwMEMwMDEwMkIxLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgw
NCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMDAxLCAKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAw
MDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4
MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgx
OCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgLCkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMTkwLCAK
ICAgICAgICAgICAgMHgwMDAwMENFNQogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxf
U0IuUExURi5DMDAyKQogICAgewogICAgICAgIE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIp
ICAvLyBfUENUOiBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lz
dGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAg
ICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAwNjIs
IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDQwLCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDBDMDAxMDA2MywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAg
ICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1MsIFBhY2thZ2UgKDB4MDMpICAv
LyBfUFNTOiBQZXJmb3JtYW5jZSBTdXBwb3J0ZWQgU3RhdGVzCiAgICAgICAgewogICAgICAg
ICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw
MDAwQ0U0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDBGNzgsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDk3NCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAw
MDAxCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAw
eDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFt
ZSAoWFBTUywgUGFja2FnZSAoMHgwMykKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDBDRTQsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMEY3OCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgQnVmZmVyICgw
eDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICBQYWNrYWdlICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDAwMDAwODk4LCAKICAgICAgICAgICAgICAgIDB4MDAwMDA5NzQsIAogICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAg
ICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBC
dWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4
MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZm
ZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBO
YW1lIChfUFNELCBQYWNrYWdlICgweDAxKSAgLy8gX1BTRDogUG93ZXIgU3RhdGUgRGVwZW5k
ZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg
ICAgICAgTmFtZSAoUFBDViwgMHgwMCkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUFBDOiBQZXJmb3JtYW5jZSBQcmVzZW50IENhcGFiaWxpdGllcwog
ICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQUENWKSAvKiBcX1NCXy5QTFRGLkMwMDIu
UFBDViAqLwogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX0NTVCwgUGFja2FnZSAoMHgwNCkg
IC8vIF9DU1Q6IEMtU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAzLCAKICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg
ICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIs
ICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAg
LCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg
ICAgICAgICAgMHgwMDAxLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwMDEyLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNSwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMTVFLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg
ICAgICAgTmFtZSAoX0NTRCwgUGFja2FnZSAoMHgwMSkgIC8vIF9DU0Q6IEMtU3RhdGUgRGVw
ZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAweDA2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZF
LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfTFBJLCBQYWNr
YWdlICgweDA2KSAgLy8gX0xQSTogTG93IFBvd2VyIElkbGUgU3RhdGVzCiAgICAgICAgewog
ICAgICAgICAgICAweDAwMDAsIAogICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIAog
ICAgICAgICAgICAweDAwMDMsIAogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAg
ICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBC
aXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAw
MCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBP
ZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MK
ICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgICJDMSIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw
eDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDI0LCAKICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxh
dGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAo
U3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg
ICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAg
ICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1N
ZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAw
MDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAiQzIiCiAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw
MDAwMDJCQywgCiAgICAgICAgICAgICAgICAweDAwMDAwMTVFLCAKICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAg
ICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwMDAwMDA0MTUsIC8vIEFkZHJlc3MKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAg
ICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291
cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
ICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg
ICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgIkMzIgogICAgICAg
ICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfQ1BDLCBQYWNrYWdlICgweDE3KSAg
Ly8gX0NQQzogQ29udGludW91cyBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAg
ICAgICAgICAweDE3LCAKICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZG
aXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MTgsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNz
IFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAg
ICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEw
MkIwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAg
ICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgw
OCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4
LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAw
MDAwMDAwQzAwMTAyQjAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAg
ICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3Rl
ciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAv
LyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAg
ICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg
ICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
QzAwMTAyQjMsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAg
ICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAg
ICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDBDMDAxMDJCMywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4
MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAg
ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAg
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAg
ICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VU
ZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lz
dGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g
Qml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAg
ICAgIDB4NDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMDAwMDAwMEU3LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
MHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAg
ICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwRTgsIC8vIEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt
cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIEJpdCBX
aWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCNCwgLy8gQWRkcmVz
cwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNp
emUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAg
ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAg
ICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIx
LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAv
LyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAweDAwMDAwMDAxLCAKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3Rl
ciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxOCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAv
LyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgIDB4MDAs
ICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwg
ICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAw
MDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMTkwLCAKICAgICAgICAgICAgMHgwMDAw
MENFNQogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxfU0IuUExURi5DMDAzKQogICAg
ewogICAgICAgIE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIpICAvLyBfUENUOiBQZXJmb3Jt
YW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAg
ICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAwNjIsIC8vIEFkZHJlc3MKICAgICAg
ICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZG
aXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDA2MywgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQog
ICAgICAgIE5hbWUgKF9QU1MsIFBhY2thZ2UgKDB4MDMpICAvLyBfUFNTOiBQZXJmb3JtYW5j
ZSBTdXBwb3J0ZWQgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwQ0U0LCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDBGNzgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAog
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4
OTgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDk3NCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIK
ICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoWFBTUywgUGFja2FnZSAo
MHgwMykKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIDB4MDAwMDBDRTQsIAogICAgICAgICAgICAgICAgMHgwMDAw
MEY3OCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
ICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAv
LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVy
ICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl
ICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwODk4LCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDA5NzQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIEJ1ZmZlciAo
MHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
QnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAw
eDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgw
OCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfUFNELCBQYWNrYWdl
ICgweDAxKSAgLy8gX1BTRDogUG93ZXIgU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewog
ICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFBDViwg
MHgwMCkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFBD
OiBQZXJmb3JtYW5jZSBQcmVzZW50IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAg
ICAgUmV0dXJuIChQUENWKSAvKiBcX1NCXy5QTFRGLkMwMDMuUFBDViAqLwogICAgICAgIH0K
CiAgICAgICAgTmFtZSAoX0NTVCwgUGFja2FnZSAoMHgwNCkgIC8vIF9DU1Q6IEMtU3RhdGVz
CiAgICAgICAgewogICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRI
VywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0
IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8g
Qml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAs
IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMDAxLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg
ICAgICAgICAgMHgwMDEyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNSwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMTVFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoX0NTRCwg
UGFja2FnZSAoMHgwMSkgIC8vIF9DU0Q6IEMtU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAg
ewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDA2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw
MDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9
CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfTFBJLCBQYWNrYWdlICgweDA2KSAgLy8gX0xQ
STogTG93IFBvd2VyIElkbGUgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAwMDAs
IAogICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIAogICAgICAgICAgICAweDAwMDMs
IAogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAg
ICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAg
ICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJDMSIKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAweDAwMDAwMDI0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAw
MTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zm
c2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAiQzIiCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw
QSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDJCQywgCiAgICAgICAg
ICAgICAgICAweDAwMDAwMTVFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgUmVzb3VyY2VU
ZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lz
dGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw
MDAwMDAwMDA0MTUsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRl
ICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5
c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
MDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVt
b3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAw
MCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgIkMzIgogICAgICAgICAgICB9CiAgICAgICAgfSkK
ICAgICAgICBOYW1lIChfQ1BDLCBQYWNrYWdlICgweDE3KSAgLy8gX0NQQzogQ29udGludW91
cyBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICAweDE3LCAKICAg
ICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg
ICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MTgsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAg
ICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0
ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs
IAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAv
LyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8v
IEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjAsIC8v
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFj
Y2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg
ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBD
MDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAg
ICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4
ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQg
V2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBP
ZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjMsIC8vIEFkZHJl
c3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBT
aXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAg
ICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJC
MywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAg
Ly8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1w
bGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVt
TWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4NDAsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg
ICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAw
MEU3LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAg
ICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0
MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAw
MDAwMDAwMDAwMDAwRTgsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAg
ICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAog
ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIxLCAvLyBBZGRyZXNzCiAgICAg
ICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAg
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAw
MDAxLCAKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxOCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0
ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g
Qml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAweDAwMDAwMTkwLCAKICAgICAgICAgICAgMHgwMDAwMENFNQogICAgICAgIH0pCiAg
ICB9CgogICAgU2NvcGUgKFxfU0IuUExURi5DMDA0KQogICAgewogICAgICAgIE5hbWUgKF9Q
Q1QsIFBhY2thZ2UgKDB4MDIpICAvLyBfUENUOiBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAg
ICAgewogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAg
MHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwQzAwMTAwNjIsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAsKQog
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg
ICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDA2MywgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1Ms
IFBhY2thZ2UgKDB4MDMpICAvLyBfUFNTOiBQZXJmb3JtYW5jZSBTdXBwb3J0ZWQgU3RhdGVz
CiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAweDAwMDAwQ0U0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDBGNzgs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAw
MDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgw
MDAwMDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDk3NCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAg
ICAgICAgICAgICAweDAwMDAwMDAxCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwg
CiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAg
ICAgIH0pCiAgICAgICAgTmFtZSAoWFBTUywgUGFja2FnZSAoMHgwMykKICAgICAgICB7CiAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IDB4MDAwMDBDRTQsIAogICAgICAgICAgICAgICAgMHgwMDAwMEY3OCwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAg
ICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
ICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1
ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4u
Li4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA4KQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAweDAwMDAwODk4LCAKICAgICAgICAgICAgICAgIDB4MDAw
MDA5NzQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZl
ciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwOCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBCdWZmZXIg
KDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAyLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg
ICAgICAgfSkKICAgICAgICBOYW1lIChfUFNELCBQYWNrYWdlICgweDAxKSAgLy8gX1BTRDog
UG93ZXIgU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdl
ICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMiwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAg
ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFBDViwgMHgwMCkKICAgICAgICBNZXRo
b2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFBDOiBQZXJmb3JtYW5jZSBQcmVz
ZW50IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQUENWKSAv
KiBcX1NCXy5QTFRGLkMwMDQuUFBDViAqLwogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX0NT
VCwgUGFja2FnZSAoMHgwNCkgIC8vIF9DU1Q6IEMtU3RhdGVzCiAgICAgICAgewogICAgICAg
ICAgICAweDAzLCAKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAg
ICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMDAxLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwMDEyLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNSwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAg
ICAgICAgICAgMHgwMTVFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoX0NTRCwgUGFja2FnZSAoMHgwMSkgIC8v
IF9DU0Q6IEMtU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNr
YWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA2LCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMiwgCiAgICAgICAg
ICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAg
ICBOYW1lIChfTFBJLCBQYWNrYWdlICgweDA2KSAgLy8gX0xQSTogTG93IFBvd2VyIElkbGUg
U3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAwMDAsIAogICAgICAgICAgICAweDAw
MDAwMDAwMDAwMDAwMDAsIAogICAgICAgICAgICAweDAwMDMsIAogICAgICAgICAgICBQYWNr
YWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAw
MSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwg
ICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MiwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg
ICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1w
bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAg
ICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw
MDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3Rl
bU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAw
MDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJDMSIKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw
eDAwMDAwMDI0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMTIsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
ICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAiQzIiCiAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgMHgwMDAwMDJCQywgCiAgICAgICAgICAgICAgICAweDAwMDAwMTVF
LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1JTywgCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDA0MTUsIC8vIEFk
ZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJl
c3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgIkMzIgogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfQ1BD
LCBQYWNrYWdlICgweDE3KSAgLy8gX0NQQzogQ29udGludW91cyBQZXJmb3JtYW5jZSBDb250
cm9sCiAgICAgICAgewogICAgICAgICAgICAweDE3LCAKICAgICAgICAgICAgMHgwMywgCiAg
ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MTgsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAg
ICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAg
ICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMEMwMDEwMkIwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
MHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAg
ICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAg
ICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjAsIC8vIEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt
cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBX
aWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVz
cwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNp
emUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAw
MDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4
MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgx
MCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAg
ICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAg
ICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjMsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAg
ICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUg
KCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAK
ICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAog
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAog
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMywgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAg
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3Vy
Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAo
U3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg
Ly8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwg
Ly8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAs
ICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAg
ICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0
ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs
IAogICAgICAgICAgICAgICAgICAgIDB4NDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMEU3LCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAv
LyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwRTgsIC8v
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFj
Y2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAg
ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBD
MDAxMDJCNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAg
ICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAg
IDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAg
MHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAg
MHgwMDAwMDAwMEMwMDEwMkIxLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgw
NCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMDAxLCAKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAw
MDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4
MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgx
OCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgLCkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMTkwLCAK
ICAgICAgICAgICAgMHgwMDAwMENFNQogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxf
U0IuUExURi5DMDA1KQogICAgewogICAgICAgIE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIp
ICAvLyBfUENUOiBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lz
dGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAg
ICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAwNjIs
IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDQwLCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDBDMDAxMDA2MywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAg
ICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1MsIFBhY2thZ2UgKDB4MDMpICAv
LyBfUFNTOiBQZXJmb3JtYW5jZSBTdXBwb3J0ZWQgU3RhdGVzCiAgICAgICAgewogICAgICAg
ICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw
MDAwQ0U0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDBGNzgsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDk3NCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAw
MDAxCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAw
eDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFt
ZSAoWFBTUywgUGFja2FnZSAoMHgwMykKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDBDRTQsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMEY3OCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgQnVmZmVyICgw
eDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICBQYWNrYWdlICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDAwMDAwODk4LCAKICAgICAgICAgICAgICAgIDB4MDAwMDA5NzQsIAogICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAg
ICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBC
dWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4
MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZm
ZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBO
YW1lIChfUFNELCBQYWNrYWdlICgweDAxKSAgLy8gX1BTRDogUG93ZXIgU3RhdGUgRGVwZW5k
ZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMiwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg
ICAgICAgTmFtZSAoUFBDViwgMHgwMCkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUFBDOiBQZXJmb3JtYW5jZSBQcmVzZW50IENhcGFiaWxpdGllcwog
ICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQUENWKSAvKiBcX1NCXy5QTFRGLkMwMDUu
UFBDViAqLwogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX0NTVCwgUGFja2FnZSAoMHgwNCkg
IC8vIF9DU1Q6IEMtU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAzLCAKICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg
ICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIs
ICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAg
LCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg
ICAgICAgICAgMHgwMDAxLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwMDEyLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNSwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMTVFLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg
ICAgICAgTmFtZSAoX0NTRCwgUGFja2FnZSAoMHgwMSkgIC8vIF9DU0Q6IEMtU3RhdGUgRGVw
ZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAweDA2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMiwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZF
LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfTFBJLCBQYWNr
YWdlICgweDA2KSAgLy8gX0xQSTogTG93IFBvd2VyIElkbGUgU3RhdGVzCiAgICAgICAgewog
ICAgICAgICAgICAweDAwMDAsIAogICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIAog
ICAgICAgICAgICAweDAwMDMsIAogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAg
ICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBC
aXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAw
MCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBP
ZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MK
ICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgICJDMSIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw
eDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDI0LCAKICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxh
dGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAo
U3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg
ICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAg
ICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1N
ZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAw
MDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAiQzIiCiAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw
MDAwMDJCQywgCiAgICAgICAgICAgICAgICAweDAwMDAwMTVFLCAKICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAg
ICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwMDAwMDA0MTUsIC8vIEFkZHJlc3MKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAg
ICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291
cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
ICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg
ICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgIkMzIgogICAgICAg
ICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfQ1BDLCBQYWNrYWdlICgweDE3KSAg
Ly8gX0NQQzogQ29udGludW91cyBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAg
ICAgICAgICAweDE3LCAKICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZG
aXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MTgsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNz
IFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAg
ICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEw
MkIwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAg
ICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgw
OCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4
LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAw
MDAwMDAwQzAwMTAyQjAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAg
ICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3Rl
ciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAv
LyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAg
ICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg
ICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
QzAwMTAyQjMsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAg
ICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAg
ICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDBDMDAxMDJCMywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4
MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAg
ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAg
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAg
ICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VU
ZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lz
dGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g
Qml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAg
ICAgIDB4NDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMDAwMDAwMEU3LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
MHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAg
ICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwRTgsIC8vIEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt
cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIEJpdCBX
aWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCNCwgLy8gQWRkcmVz
cwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNp
emUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAg
ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAg
ICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIx
LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAv
LyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAweDAwMDAwMDAxLCAKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3Rl
ciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxOCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAv
LyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgIDB4MDAs
ICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwg
ICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAw
MDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMTkwLCAKICAgICAgICAgICAgMHgwMDAw
MENFNQogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxfU0IuUExURi5DMDA2KQogICAg
ewogICAgICAgIE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIpICAvLyBfUENUOiBQZXJmb3Jt
YW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAg
ICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAwNjIsIC8vIEFkZHJlc3MKICAgICAg
ICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZG
aXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDA2MywgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQog
ICAgICAgIE5hbWUgKF9QU1MsIFBhY2thZ2UgKDB4MDMpICAvLyBfUFNTOiBQZXJmb3JtYW5j
ZSBTdXBwb3J0ZWQgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwQ0U0LCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDBGNzgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAog
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4
OTgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDk3NCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIK
ICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoWFBTUywgUGFja2FnZSAo
MHgwMykKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIDB4MDAwMDBDRTQsIAogICAgICAgICAgICAgICAgMHgwMDAw
MEY3OCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
ICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAv
LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVy
ICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl
ICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwODk4LCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDA5NzQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIEJ1ZmZlciAo
MHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
QnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAw
eDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgw
OCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfUFNELCBQYWNrYWdl
ICgweDAxKSAgLy8gX1BTRDogUG93ZXIgU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewog
ICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMywgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFBDViwg
MHgwMCkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFBD
OiBQZXJmb3JtYW5jZSBQcmVzZW50IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAg
ICAgUmV0dXJuIChQUENWKSAvKiBcX1NCXy5QTFRGLkMwMDYuUFBDViAqLwogICAgICAgIH0K
CiAgICAgICAgTmFtZSAoX0NTVCwgUGFja2FnZSAoMHgwNCkgIC8vIF9DU1Q6IEMtU3RhdGVz
CiAgICAgICAgewogICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRI
VywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0
IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8g
Qml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAs
IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMDAxLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg
ICAgICAgICAgMHgwMDEyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNSwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMTVFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoX0NTRCwg
UGFja2FnZSAoMHgwMSkgIC8vIF9DU0Q6IEMtU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAg
ewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDA2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw
MDAwMDAwMywgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9
CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfTFBJLCBQYWNrYWdlICgweDA2KSAgLy8gX0xQ
STogTG93IFBvd2VyIElkbGUgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAwMDAs
IAogICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIAogICAgICAgICAgICAweDAwMDMs
IAogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAg
ICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAg
ICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJDMSIKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAweDAwMDAwMDI0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAw
MTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zm
c2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAiQzIiCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw
QSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDJCQywgCiAgICAgICAg
ICAgICAgICAweDAwMDAwMTVFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgUmVzb3VyY2VU
ZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lz
dGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw
MDAwMDAwMDA0MTUsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRl
ICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5
c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
MDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVt
b3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAw
MCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgIkMzIgogICAgICAgICAgICB9CiAgICAgICAgfSkK
ICAgICAgICBOYW1lIChfQ1BDLCBQYWNrYWdlICgweDE3KSAgLy8gX0NQQzogQ29udGludW91
cyBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICAweDE3LCAKICAg
ICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg
ICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MTgsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAg
ICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0
ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs
IAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAv
LyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8v
IEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjAsIC8v
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFj
Y2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg
ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBD
MDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAg
ICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4
ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQg
V2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBP
ZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjMsIC8vIEFkZHJl
c3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBT
aXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAg
ICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJC
MywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAg
Ly8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1w
bGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVt
TWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4NDAsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg
ICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAw
MEU3LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAg
ICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0
MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAw
MDAwMDAwMDAwMDAwRTgsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAg
ICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAog
ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIxLCAvLyBBZGRyZXNzCiAgICAg
ICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAg
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAw
MDAxLCAKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxOCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0
ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g
Qml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAweDAwMDAwMTkwLCAKICAgICAgICAgICAgMHgwMDAwMENFNQogICAgICAgIH0pCiAg
ICB9CgogICAgU2NvcGUgKFxfU0IuUExURi5DMDA3KQogICAgewogICAgICAgIE5hbWUgKF9Q
Q1QsIFBhY2thZ2UgKDB4MDIpICAvLyBfUENUOiBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAg
ICAgewogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAg
MHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwQzAwMTAwNjIsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAsKQog
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg
ICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDA2MywgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1Ms
IFBhY2thZ2UgKDB4MDMpICAvLyBfUFNTOiBQZXJmb3JtYW5jZSBTdXBwb3J0ZWQgU3RhdGVz
CiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAweDAwMDAwQ0U0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDBGNzgs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAw
MDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgw
MDAwMDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDk3NCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAg
ICAgICAgICAgICAweDAwMDAwMDAxCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwg
CiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAg
ICAgIH0pCiAgICAgICAgTmFtZSAoWFBTUywgUGFja2FnZSAoMHgwMykKICAgICAgICB7CiAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IDB4MDAwMDBDRTQsIAogICAgICAgICAgICAgICAgMHgwMDAwMEY3OCwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAg
ICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
ICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1
ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4u
Li4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA4KQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAweDAwMDAwODk4LCAKICAgICAgICAgICAgICAgIDB4MDAw
MDA5NzQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZl
ciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwOCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBCdWZmZXIg
KDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAyLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg
ICAgICAgfSkKICAgICAgICBOYW1lIChfUFNELCBQYWNrYWdlICgweDAxKSAgLy8gX1BTRDog
UG93ZXIgU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdl
ICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMywgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAg
ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFBDViwgMHgwMCkKICAgICAgICBNZXRo
b2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFBDOiBQZXJmb3JtYW5jZSBQcmVz
ZW50IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQUENWKSAv
KiBcX1NCXy5QTFRGLkMwMDcuUFBDViAqLwogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX0NT
VCwgUGFja2FnZSAoMHgwNCkgIC8vIF9DU1Q6IEMtU3RhdGVzCiAgICAgICAgewogICAgICAg
ICAgICAweDAzLCAKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAg
ICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMDAxLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwMDEyLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNSwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAg
ICAgICAgICAgMHgwMTVFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoX0NTRCwgUGFja2FnZSAoMHgwMSkgIC8v
IF9DU0Q6IEMtU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNr
YWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA2LCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMywgCiAgICAgICAg
ICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAg
ICBOYW1lIChfTFBJLCBQYWNrYWdlICgweDA2KSAgLy8gX0xQSTogTG93IFBvd2VyIElkbGUg
U3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAwMDAsIAogICAgICAgICAgICAweDAw
MDAwMDAwMDAwMDAwMDAsIAogICAgICAgICAgICAweDAwMDMsIAogICAgICAgICAgICBQYWNr
YWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAw
MSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwg
ICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MiwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg
ICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1w
bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAg
ICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw
MDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3Rl
bU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAw
MDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJDMSIKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw
eDAwMDAwMDI0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMTIsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
ICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAiQzIiCiAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgMHgwMDAwMDJCQywgCiAgICAgICAgICAgICAgICAweDAwMDAwMTVF
LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1JTywgCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDA0MTUsIC8vIEFk
ZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJl
c3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgIkMzIgogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfQ1BD
LCBQYWNrYWdlICgweDE3KSAgLy8gX0NQQzogQ29udGludW91cyBQZXJmb3JtYW5jZSBDb250
cm9sCiAgICAgICAgewogICAgICAgICAgICAweDE3LCAKICAgICAgICAgICAgMHgwMywgCiAg
ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MTgsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAg
ICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAg
ICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMEMwMDEwMkIwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
MHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAg
ICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAg
ICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjAsIC8vIEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt
cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBX
aWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVz
cwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNp
emUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAw
MDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4
MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgx
MCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAg
ICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAg
ICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjMsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAg
ICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUg
KCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAK
ICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAog
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAog
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMywgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAg
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3Vy
Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAo
U3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg
Ly8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwg
Ly8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAs
ICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAg
ICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0
ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs
IAogICAgICAgICAgICAgICAgICAgIDB4NDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMEU3LCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAv
LyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwRTgsIC8v
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFj
Y2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAg
ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBD
MDAxMDJCNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAg
ICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAg
IDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAg
MHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAg
MHgwMDAwMDAwMEMwMDEwMkIxLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgw
NCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMDAxLCAKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAw
MDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4
MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgx
OCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgLCkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMTkwLCAK
ICAgICAgICAgICAgMHgwMDAwMENFNQogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxf
U0IuUExURi5DMDA4KQogICAgewogICAgICAgIE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIp
ICAvLyBfUENUOiBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lz
dGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAg
ICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAwNjIs
IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDQwLCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDBDMDAxMDA2MywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAg
ICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1MsIFBhY2thZ2UgKDB4MDMpICAv
LyBfUFNTOiBQZXJmb3JtYW5jZSBTdXBwb3J0ZWQgU3RhdGVzCiAgICAgICAgewogICAgICAg
ICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw
MDAwQ0U0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDBGNzgsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDk3NCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAw
MDAxCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAw
eDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFt
ZSAoWFBTUywgUGFja2FnZSAoMHgwMykKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDBDRTQsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMEY3OCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgQnVmZmVyICgw
eDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICBQYWNrYWdlICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDAwMDAwODk4LCAKICAgICAgICAgICAgICAgIDB4MDAwMDA5NzQsIAogICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAg
ICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBC
dWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4
MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZm
ZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBO
YW1lIChfUFNELCBQYWNrYWdlICgweDAxKSAgLy8gX1BTRDogUG93ZXIgU3RhdGUgRGVwZW5k
ZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwNCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg
ICAgICAgTmFtZSAoUFBDViwgMHgwMCkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUFBDOiBQZXJmb3JtYW5jZSBQcmVzZW50IENhcGFiaWxpdGllcwog
ICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQUENWKSAvKiBcX1NCXy5QTFRGLkMwMDgu
UFBDViAqLwogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX0NTVCwgUGFja2FnZSAoMHgwNCkg
IC8vIF9DU1Q6IEMtU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAzLCAKICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg
ICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIs
ICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAg
LCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg
ICAgICAgICAgMHgwMDAxLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwMDEyLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNSwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMTVFLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg
ICAgICAgTmFtZSAoX0NTRCwgUGFja2FnZSAoMHgwMSkgIC8vIF9DU0Q6IEMtU3RhdGUgRGVw
ZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAweDA2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgwMDAwMDAwNCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZF
LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfTFBJLCBQYWNr
YWdlICgweDA2KSAgLy8gX0xQSTogTG93IFBvd2VyIElkbGUgU3RhdGVzCiAgICAgICAgewog
ICAgICAgICAgICAweDAwMDAsIAogICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIAog
ICAgICAgICAgICAweDAwMDMsIAogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAg
ICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBC
aXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAw
MCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBP
ZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MK
ICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgICJDMSIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw
eDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDI0LCAKICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxh
dGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAo
U3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg
ICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAg
ICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1N
ZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAw
MDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAiQzIiCiAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw
MDAwMDJCQywgCiAgICAgICAgICAgICAgICAweDAwMDAwMTVFLCAKICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAg
ICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwMDAwMDA0MTUsIC8vIEFkZHJlc3MKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAg
ICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291
cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
ICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg
ICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgIkMzIgogICAgICAg
ICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfQ1BDLCBQYWNrYWdlICgweDE3KSAg
Ly8gX0NQQzogQ29udGludW91cyBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAg
ICAgICAgICAweDE3LCAKICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZG
aXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MTgsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNz
IFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAg
ICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEw
MkIwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAg
ICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgw
OCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4
LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAw
MDAwMDAwQzAwMTAyQjAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAg
ICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3Rl
ciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAv
LyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAg
ICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg
ICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
QzAwMTAyQjMsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAg
ICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAg
ICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDBDMDAxMDJCMywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4
MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAg
ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAg
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAg
ICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VU
ZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lz
dGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g
Qml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAg
ICAgIDB4NDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMDAwMDAwMEU3LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
MHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAg
ICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwRTgsIC8vIEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt
cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIEJpdCBX
aWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCNCwgLy8gQWRkcmVz
cwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNp
emUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAg
ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAg
ICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIx
LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAv
LyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAweDAwMDAwMDAxLCAKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3Rl
ciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxOCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAv
LyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgIDB4MDAs
ICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwg
ICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAw
MDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMTkwLCAKICAgICAgICAgICAgMHgwMDAw
MENFNQogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxfU0IuUExURi5DMDA5KQogICAg
ewogICAgICAgIE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIpICAvLyBfUENUOiBQZXJmb3Jt
YW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAg
ICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAwNjIsIC8vIEFkZHJlc3MKICAgICAg
ICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZG
aXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDA2MywgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQog
ICAgICAgIE5hbWUgKF9QU1MsIFBhY2thZ2UgKDB4MDMpICAvLyBfUFNTOiBQZXJmb3JtYW5j
ZSBTdXBwb3J0ZWQgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwQ0U0LCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDBGNzgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAog
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4
OTgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDk3NCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIK
ICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoWFBTUywgUGFja2FnZSAo
MHgwMykKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIDB4MDAwMDBDRTQsIAogICAgICAgICAgICAgICAgMHgwMDAw
MEY3OCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
ICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAv
LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVy
ICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl
ICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwODk4LCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDA5NzQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIEJ1ZmZlciAo
MHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
QnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAw
eDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgw
OCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfUFNELCBQYWNrYWdl
ICgweDAxKSAgLy8gX1BTRDogUG93ZXIgU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewog
ICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwNCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFBDViwg
MHgwMCkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFBD
OiBQZXJmb3JtYW5jZSBQcmVzZW50IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAg
ICAgUmV0dXJuIChQUENWKSAvKiBcX1NCXy5QTFRGLkMwMDkuUFBDViAqLwogICAgICAgIH0K
CiAgICAgICAgTmFtZSAoX0NTVCwgUGFja2FnZSAoMHgwNCkgIC8vIF9DU1Q6IEMtU3RhdGVz
CiAgICAgICAgewogICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRI
VywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0
IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8g
Qml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAs
IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMDAxLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg
ICAgICAgICAgMHgwMDEyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNSwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMTVFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoX0NTRCwg
UGFja2FnZSAoMHgwMSkgIC8vIF9DU0Q6IEMtU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAg
ewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDA2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw
MDAwMDAwNCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9
CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfTFBJLCBQYWNrYWdlICgweDA2KSAgLy8gX0xQ
STogTG93IFBvd2VyIElkbGUgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAwMDAs
IAogICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIAogICAgICAgICAgICAweDAwMDMs
IAogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAg
ICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAg
ICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJDMSIKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAweDAwMDAwMDI0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAw
MTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zm
c2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAiQzIiCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw
QSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDJCQywgCiAgICAgICAg
ICAgICAgICAweDAwMDAwMTVFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgUmVzb3VyY2VU
ZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lz
dGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw
MDAwMDAwMDA0MTUsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRl
ICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5
c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
MDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVt
b3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAw
MCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgIkMzIgogICAgICAgICAgICB9CiAgICAgICAgfSkK
ICAgICAgICBOYW1lIChfQ1BDLCBQYWNrYWdlICgweDE3KSAgLy8gX0NQQzogQ29udGludW91
cyBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICAweDE3LCAKICAg
ICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg
ICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MTgsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAg
ICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0
ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs
IAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAv
LyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8v
IEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjAsIC8v
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFj
Y2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg
ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBD
MDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAg
ICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4
ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQg
V2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBP
ZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjMsIC8vIEFkZHJl
c3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBT
aXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAg
ICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJC
MywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAg
Ly8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1w
bGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVt
TWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4NDAsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg
ICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAw
MEU3LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAg
ICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0
MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAw
MDAwMDAwMDAwMDAwRTgsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAg
ICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAog
ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIxLCAvLyBBZGRyZXNzCiAgICAg
ICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAg
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAw
MDAxLCAKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxOCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0
ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g
Qml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAweDAwMDAwMTkwLCAKICAgICAgICAgICAgMHgwMDAwMENFNQogICAgICAgIH0pCiAg
ICB9CgogICAgU2NvcGUgKFxfU0IuUExURi5DMDBBKQogICAgewogICAgICAgIE5hbWUgKF9Q
Q1QsIFBhY2thZ2UgKDB4MDIpICAvLyBfUENUOiBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAg
ICAgewogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAg
MHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwQzAwMTAwNjIsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAsKQog
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg
ICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDA2MywgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1Ms
IFBhY2thZ2UgKDB4MDMpICAvLyBfUFNTOiBQZXJmb3JtYW5jZSBTdXBwb3J0ZWQgU3RhdGVz
CiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAweDAwMDAwQ0U0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDBGNzgs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAw
MDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgw
MDAwMDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDk3NCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAg
ICAgICAgICAgICAweDAwMDAwMDAxCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwg
CiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAg
ICAgIH0pCiAgICAgICAgTmFtZSAoWFBTUywgUGFja2FnZSAoMHgwMykKICAgICAgICB7CiAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IDB4MDAwMDBDRTQsIAogICAgICAgICAgICAgICAgMHgwMDAwMEY3OCwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAg
ICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
ICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1
ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4u
Li4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA4KQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAweDAwMDAwODk4LCAKICAgICAgICAgICAgICAgIDB4MDAw
MDA5NzQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZl
ciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwOCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBCdWZmZXIg
KDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAyLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg
ICAgICAgfSkKICAgICAgICBOYW1lIChfUFNELCBQYWNrYWdlICgweDAxKSAgLy8gX1BTRDog
UG93ZXIgU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdl
ICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwNSwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAg
ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFBDViwgMHgwMCkKICAgICAgICBNZXRo
b2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFBDOiBQZXJmb3JtYW5jZSBQcmVz
ZW50IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQUENWKSAv
KiBcX1NCXy5QTFRGLkMwMEEuUFBDViAqLwogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX0NT
VCwgUGFja2FnZSAoMHgwNCkgIC8vIF9DU1Q6IEMtU3RhdGVzCiAgICAgICAgewogICAgICAg
ICAgICAweDAzLCAKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAg
ICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMDAxLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwMDEyLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNSwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAg
ICAgICAgICAgMHgwMTVFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoX0NTRCwgUGFja2FnZSAoMHgwMSkgIC8v
IF9DU0Q6IEMtU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNr
YWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA2LCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwNSwgCiAgICAgICAg
ICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAg
ICBOYW1lIChfTFBJLCBQYWNrYWdlICgweDA2KSAgLy8gX0xQSTogTG93IFBvd2VyIElkbGUg
U3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAwMDAsIAogICAgICAgICAgICAweDAw
MDAwMDAwMDAwMDAwMDAsIAogICAgICAgICAgICAweDAwMDMsIAogICAgICAgICAgICBQYWNr
YWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAw
MSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwg
ICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MiwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg
ICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1w
bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAg
ICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw
MDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3Rl
bU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAw
MDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJDMSIKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw
eDAwMDAwMDI0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMTIsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
ICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAiQzIiCiAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgMHgwMDAwMDJCQywgCiAgICAgICAgICAgICAgICAweDAwMDAwMTVF
LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1JTywgCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDA0MTUsIC8vIEFk
ZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJl
c3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgIkMzIgogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfQ1BD
LCBQYWNrYWdlICgweDE3KSAgLy8gX0NQQzogQ29udGludW91cyBQZXJmb3JtYW5jZSBDb250
cm9sCiAgICAgICAgewogICAgICAgICAgICAweDE3LCAKICAgICAgICAgICAgMHgwMywgCiAg
ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MTgsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAg
ICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAg
ICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMEMwMDEwMkIwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
MHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAg
ICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAg
ICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjAsIC8vIEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt
cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBX
aWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVz
cwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNp
emUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAw
MDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4
MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgx
MCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAg
ICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAg
ICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjMsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAg
ICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUg
KCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAK
ICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAog
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAog
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMywgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAg
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3Vy
Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAo
U3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg
Ly8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwg
Ly8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAs
ICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAg
ICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0
ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs
IAogICAgICAgICAgICAgICAgICAgIDB4NDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMEU3LCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAv
LyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwRTgsIC8v
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFj
Y2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAg
ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBD
MDAxMDJCNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAg
ICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAg
IDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAg
MHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAg
MHgwMDAwMDAwMEMwMDEwMkIxLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgw
NCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMDAxLCAKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAw
MDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4
MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgx
OCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgLCkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMTkwLCAK
ICAgICAgICAgICAgMHgwMDAwMENFNQogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxf
U0IuUExURi5DMDBCKQogICAgewogICAgICAgIE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIp
ICAvLyBfUENUOiBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lz
dGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAg
ICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAwNjIs
IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDQwLCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDBDMDAxMDA2MywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAg
ICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1MsIFBhY2thZ2UgKDB4MDMpICAv
LyBfUFNTOiBQZXJmb3JtYW5jZSBTdXBwb3J0ZWQgU3RhdGVzCiAgICAgICAgewogICAgICAg
ICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw
MDAwQ0U0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDBGNzgsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDk3NCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAw
MDAxCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAw
eDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFt
ZSAoWFBTUywgUGFja2FnZSAoMHgwMykKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDBDRTQsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMEY3OCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgQnVmZmVyICgw
eDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICBQYWNrYWdlICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDAwMDAwODk4LCAKICAgICAgICAgICAgICAgIDB4MDAwMDA5NzQsIAogICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAg
ICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBC
dWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4
MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZm
ZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBO
YW1lIChfUFNELCBQYWNrYWdlICgweDAxKSAgLy8gX1BTRDogUG93ZXIgU3RhdGUgRGVwZW5k
ZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwNSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg
ICAgICAgTmFtZSAoUFBDViwgMHgwMCkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUFBDOiBQZXJmb3JtYW5jZSBQcmVzZW50IENhcGFiaWxpdGllcwog
ICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQUENWKSAvKiBcX1NCXy5QTFRGLkMwMEIu
UFBDViAqLwogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX0NTVCwgUGFja2FnZSAoMHgwNCkg
IC8vIF9DU1Q6IEMtU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAzLCAKICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg
ICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIs
ICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAg
LCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg
ICAgICAgICAgMHgwMDAxLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwMDEyLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNSwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMTVFLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg
ICAgICAgTmFtZSAoX0NTRCwgUGFja2FnZSAoMHgwMSkgIC8vIF9DU0Q6IEMtU3RhdGUgRGVw
ZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAweDA2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgwMDAwMDAwNSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZF
LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfTFBJLCBQYWNr
YWdlICgweDA2KSAgLy8gX0xQSTogTG93IFBvd2VyIElkbGUgU3RhdGVzCiAgICAgICAgewog
ICAgICAgICAgICAweDAwMDAsIAogICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIAog
ICAgICAgICAgICAweDAwMDMsIAogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAg
ICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBC
aXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAw
MCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBP
ZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MK
ICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgICJDMSIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw
eDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDI0LCAKICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxh
dGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAo
U3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg
ICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAg
ICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1N
ZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAw
MDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAiQzIiCiAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw
MDAwMDJCQywgCiAgICAgICAgICAgICAgICAweDAwMDAwMTVFLCAKICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAg
ICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwMDAwMDA0MTUsIC8vIEFkZHJlc3MKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAg
ICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291
cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
ICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg
ICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgIkMzIgogICAgICAg
ICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfQ1BDLCBQYWNrYWdlICgweDE3KSAg
Ly8gX0NQQzogQ29udGludW91cyBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAg
ICAgICAgICAweDE3LCAKICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZG
aXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MTgsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNz
IFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAg
ICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEw
MkIwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAg
ICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgw
OCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4
LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAw
MDAwMDAwQzAwMTAyQjAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAg
ICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3Rl
ciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAv
LyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAg
ICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg
ICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
QzAwMTAyQjMsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAg
ICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAg
ICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDBDMDAxMDJCMywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4
MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAg
ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAg
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAg
ICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VU
ZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lz
dGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g
Qml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAg
ICAgIDB4NDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMDAwMDAwMEU3LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
MHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAg
ICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwRTgsIC8vIEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt
cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIEJpdCBX
aWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCNCwgLy8gQWRkcmVz
cwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNp
emUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAg
ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAg
ICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIx
LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAv
LyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAweDAwMDAwMDAxLCAKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3Rl
ciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxOCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAv
LyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgIDB4MDAs
ICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwg
ICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAw
MDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMTkwLCAKICAgICAgICAgICAgMHgwMDAw
MENFNQogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxfU0IuUExURi5DMDBDKQogICAg
ewogICAgICAgIE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIpICAvLyBfUENUOiBQZXJmb3Jt
YW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAg
ICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAwNjIsIC8vIEFkZHJlc3MKICAgICAg
ICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZG
aXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDA2MywgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQog
ICAgICAgIE5hbWUgKF9QU1MsIFBhY2thZ2UgKDB4MDMpICAvLyBfUFNTOiBQZXJmb3JtYW5j
ZSBTdXBwb3J0ZWQgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwQ0U0LCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDBGNzgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAog
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4
OTgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDk3NCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIK
ICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoWFBTUywgUGFja2FnZSAo
MHgwMykKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIDB4MDAwMDBDRTQsIAogICAgICAgICAgICAgICAgMHgwMDAw
MEY3OCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
ICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAv
LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVy
ICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl
ICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwODk4LCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDA5NzQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIEJ1ZmZlciAo
MHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
QnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAw
eDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgw
OCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfUFNELCBQYWNrYWdl
ICgweDAxKSAgLy8gX1BTRDogUG93ZXIgU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewog
ICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwNiwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFBDViwg
MHgwMCkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFBD
OiBQZXJmb3JtYW5jZSBQcmVzZW50IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAg
ICAgUmV0dXJuIChQUENWKSAvKiBcX1NCXy5QTFRGLkMwMEMuUFBDViAqLwogICAgICAgIH0K
CiAgICAgICAgTmFtZSAoX0NTVCwgUGFja2FnZSAoMHgwNCkgIC8vIF9DU1Q6IEMtU3RhdGVz
CiAgICAgICAgewogICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRI
VywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0
IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8g
Qml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAs
IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMDAxLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg
ICAgICAgICAgMHgwMDEyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNSwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMTVFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoX0NTRCwg
UGFja2FnZSAoMHgwMSkgIC8vIF9DU0Q6IEMtU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAg
ewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDA2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw
MDAwMDAwNiwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9
CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfTFBJLCBQYWNrYWdlICgweDA2KSAgLy8gX0xQ
STogTG93IFBvd2VyIElkbGUgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAwMDAs
IAogICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIAogICAgICAgICAgICAweDAwMDMs
IAogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAg
ICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAg
ICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJDMSIKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAweDAwMDAwMDI0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAw
MTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zm
c2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAiQzIiCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw
QSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDJCQywgCiAgICAgICAg
ICAgICAgICAweDAwMDAwMTVFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgUmVzb3VyY2VU
ZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lz
dGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw
MDAwMDAwMDA0MTUsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRl
ICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5
c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
MDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVt
b3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAw
MCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgIkMzIgogICAgICAgICAgICB9CiAgICAgICAgfSkK
ICAgICAgICBOYW1lIChfQ1BDLCBQYWNrYWdlICgweDE3KSAgLy8gX0NQQzogQ29udGludW91
cyBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICAweDE3LCAKICAg
ICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg
ICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MTgsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAg
ICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0
ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs
IAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAv
LyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8v
IEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjAsIC8v
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFj
Y2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg
ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBD
MDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAg
ICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4
ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQg
V2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBP
ZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjMsIC8vIEFkZHJl
c3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBT
aXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAg
ICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJC
MywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAg
Ly8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1w
bGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVt
TWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4NDAsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg
ICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAw
MEU3LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAg
ICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0
MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAw
MDAwMDAwMDAwMDAwRTgsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAg
ICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAog
ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIxLCAvLyBBZGRyZXNzCiAgICAg
ICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAg
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAw
MDAxLCAKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxOCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0
ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g
Qml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAweDAwMDAwMTkwLCAKICAgICAgICAgICAgMHgwMDAwMENFNQogICAgICAgIH0pCiAg
ICB9CgogICAgU2NvcGUgKFxfU0IuUExURi5DMDBEKQogICAgewogICAgICAgIE5hbWUgKF9Q
Q1QsIFBhY2thZ2UgKDB4MDIpICAvLyBfUENUOiBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAg
ICAgewogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAg
MHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwQzAwMTAwNjIsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAsKQog
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg
ICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDA2MywgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1Ms
IFBhY2thZ2UgKDB4MDMpICAvLyBfUFNTOiBQZXJmb3JtYW5jZSBTdXBwb3J0ZWQgU3RhdGVz
CiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAweDAwMDAwQ0U0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDBGNzgs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAw
MDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgw
MDAwMDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDk3NCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAg
ICAgICAgICAgICAweDAwMDAwMDAxCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj
a2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwg
CiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAg
ICAgIH0pCiAgICAgICAgTmFtZSAoWFBTUywgUGFja2FnZSAoMHgwMykKICAgICAgICB7CiAg
ICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IDB4MDAwMDBDRTQsIAogICAgICAgICAgICAgICAgMHgwMDAwMEY3OCwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAg
ICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
ICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1
ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4u
Li4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA4KQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAweDAwMDAwODk4LCAKICAgICAgICAgICAgICAgIDB4MDAw
MDA5NzQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAg
Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZl
ciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4u
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn
ZSAoMHgwOCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBCdWZmZXIg
KDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgog
ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAyLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg
ICAgICAgfSkKICAgICAgICBOYW1lIChfUFNELCBQYWNrYWdlICgweDAxKSAgLy8gX1BTRDog
UG93ZXIgU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdl
ICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwNiwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAg
ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFBDViwgMHgwMCkKICAgICAgICBNZXRo
b2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFBDOiBQZXJmb3JtYW5jZSBQcmVz
ZW50IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQUENWKSAv
KiBcX1NCXy5QTFRGLkMwMEQuUFBDViAqLwogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX0NT
VCwgUGFja2FnZSAoMHgwNCkgIC8vIF9DU1Q6IEMtU3RhdGVzCiAgICAgICAgewogICAgICAg
ICAgICAweDAzLCAKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAg
ICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMDAxLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwMDEyLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNSwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAg
ICAgICAgICAgMHgwMTVFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoX0NTRCwgUGFja2FnZSAoMHgwMSkgIC8v
IF9DU0Q6IEMtU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNr
YWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA2LCAKICAgICAg
ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwNiwgCiAgICAgICAg
ICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAg
ICBOYW1lIChfTFBJLCBQYWNrYWdlICgweDA2KSAgLy8gX0xQSTogTG93IFBvd2VyIElkbGUg
U3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAwMDAsIAogICAgICAgICAgICAweDAw
MDAwMDAwMDAwMDAwMDAsIAogICAgICAgICAgICAweDAwMDMsIAogICAgICAgICAgICBQYWNr
YWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAw
MSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwg
ICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MiwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg
ICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1w
bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAg
ICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw
MDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3Rl
bU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAw
MDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJDMSIKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw
eDAwMDAwMDI0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMTIsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
ICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAiQzIiCiAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgMHgwMDAwMDJCQywgCiAgICAgICAgICAgICAgICAweDAwMDAwMTVF
LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1JTywgCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDA0MTUsIC8vIEFk
ZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9
LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAg
ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJl
c3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgIkMzIgogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfQ1BD
LCBQYWNrYWdlICgweDE3KSAgLy8gX0NQQzogQ29udGludW91cyBQZXJmb3JtYW5jZSBDb250
cm9sCiAgICAgICAgewogICAgICAgICAgICAweDE3LCAKICAgICAgICAgICAgMHgwMywgCiAg
ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MTgsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAg
ICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAg
ICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMEMwMDEwMkIwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
MHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAg
ICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAg
ICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjAsIC8vIEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt
cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBX
aWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVz
cwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNp
emUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAw
MDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4
MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgx
MCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAg
ICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAg
ICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjMsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAg
ICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUg
KCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAK
ICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAog
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAog
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMywgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAg
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3Vy
Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAo
U3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg
Ly8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwg
Ly8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAs
ICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAg
ICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAg
ICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0
ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs
IAogICAgICAgICAgICAgICAgICAgIDB4NDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMEU3LCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAv
LyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwRTgsIC8v
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFj
Y2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAg
ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBD
MDAxMDJCNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAg
ICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAg
IDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAg
MHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAg
MHgwMDAwMDAwMEMwMDEwMkIxLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgw
NCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMDAxLCAKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg
ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAw
MDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4
MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgx
OCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw
MDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgLCkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMTkwLCAK
ICAgICAgICAgICAgMHgwMDAwMENFNQogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxf
U0IuUExURi5DMDBFKQogICAgewogICAgICAgIE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIp
ICAvLyBfUENUOiBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lz
dGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAg
ICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAwNjIs
IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAg
ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDQwLCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDBDMDAxMDA2MywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAg
ICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1MsIFBhY2thZ2UgKDB4MDMpICAv
LyBfUFNTOiBQZXJmb3JtYW5jZSBTdXBwb3J0ZWQgU3RhdGVzCiAgICAgICAgewogICAgICAg
ICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw
MDAwQ0U0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDBGNzgsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDk3NCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAw
MDAxCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAw
eDAwMDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFt
ZSAoWFBTUywgUGFja2FnZSAoMHgwMykKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2Ug
KDB4MDgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDBDRTQsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMEY3OCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgQnVmZmVyICgw
eDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAg
ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICBQYWNrYWdlICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDAwMDAwODk4LCAKICAgICAgICAgICAgICAgIDB4MDAwMDA5NzQsIAogICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAg
ICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBC
dWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4
MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4u
Li4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwNjQwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAg
IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZm
ZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4u
LgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBO
YW1lIChfUFNELCBQYWNrYWdlICgweDAxKSAgLy8gX1BTRDogUG93ZXIgU3RhdGUgRGVwZW5k
ZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwNywgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg
ICAgICAgTmFtZSAoUFBDViwgMHgwMCkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNl
cmlhbGl6ZWQpICAvLyBfUFBDOiBQZXJmb3JtYW5jZSBQcmVzZW50IENhcGFiaWxpdGllcwog
ICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQUENWKSAvKiBcX1NCXy5QTFRGLkMwMEUu
UFBDViAqLwogICAgICAgIH0KCiAgICAgICAgTmFtZSAoX0NTVCwgUGFja2FnZSAoMHgwNCkg
IC8vIF9DU1Q6IEMtU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAzLCAKICAgICAg
ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg
ICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIs
ICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAw
eDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAg
LCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg
ICAgICAgICAgMHgwMDAxLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwMDEyLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNSwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMTVFLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg
ICAgICAgTmFtZSAoX0NTRCwgUGFja2FnZSAoMHgwMSkgIC8vIF9DU0Q6IEMtU3RhdGUgRGVw
ZW5kZW5jaWVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAweDA2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAog
ICAgICAgICAgICAgICAgMHgwMDAwMDAwNywgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZF
LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfTFBJLCBQYWNr
YWdlICgweDA2KSAgLy8gX0xQSTogTG93IFBvd2VyIElkbGUgU3RhdGVzCiAgICAgICAgewog
ICAgICAgICAgICAweDAwMDAsIAogICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIAog
ICAgICAgICAgICAweDAwMDMsIAogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAg
ICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAg
ICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBC
aXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAw
MCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBP
ZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAK
CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAog
ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MK
ICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgICAgICJDMSIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw
eDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwMDI0LCAKICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs
IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxh
dGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAo
U3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg
ICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAg
ICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAg
ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1N
ZW1vcnksIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg
IC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAw
MDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAg
ICAgICB9LCAKCiAgICAgICAgICAgICAgICAiQzIiCiAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw
MDAwMDJCQywgCiAgICAgICAgICAgICAgICAweDAwMDAwMTVFLCAKICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAg
ICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwMDAwMDA0MTUsIC8vIEFkZHJlc3MKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg
ICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAg
ICAgICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291
cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg
ICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgw
MCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg
ICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgIkMzIgogICAgICAg
ICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfQ1BDLCBQYWNrYWdlICgweDE3KSAg
Ly8gX0NQQzogQ29udGludW91cyBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAg
ICAgICAgICAweDE3LCAKICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZG
aXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MTgsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNz
IFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAg
ICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEw
MkIwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAg
ICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgw
OCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4
LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAw
MDAwMDAwQzAwMTAyQjAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAg
ICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3Rl
ciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAv
LyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAg
ICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg
ICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
QzAwMTAyQjMsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAg
ICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAg
ICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDBDMDAxMDJCMywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4
MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAg
ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAg
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAg
ICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VU
ZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lz
dGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v
IEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g
Qml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAg
ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAg
ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAg
ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw
MDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAg
ICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAg
ICAgIDB4NDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg
ICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAg
ICAgMHgwMDAwMDAwMDAwMDAwMEU3LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg
MHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAg
ICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg
ICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwRTgsIC8vIEFkZHJlc3MKICAgICAgICAg
ICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt
cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhl
ZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIEJpdCBX
aWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9m
ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCNCwgLy8gQWRkcmVz
cwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNp
emUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdp
c3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAg
ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAg
ICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIx
LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAv
LyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAweDAwMDAwMDAxLCAKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5
LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0
aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNl
dAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwog
ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVz
b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3Rl
ciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAg
Ly8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgxOCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAv
LyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBB
Y2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAg
ICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgIDB4MDAs
ICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwg
ICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAw
MDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAwMTkwLCAKICAgICAgICAgICAgMHgwMDAw
MENFNQogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUgKFxfU0IuUExURi5DMDBGKQogICAg
ewogICAgICAgIE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIpICAvLyBfUENUOiBQZXJmb3Jt
YW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAg
ICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAwNjIsIC8vIEFkZHJlc3MKICAgICAg
ICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNl
VGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZG
aXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDA2MywgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQog
ICAgICAgIE5hbWUgKF9QU1MsIFBhY2thZ2UgKDB4MDMpICAvLyBfUFNTOiBQZXJmb3JtYW5j
ZSBTdXBwb3J0ZWQgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwQ0U0LCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDBGNzgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAog
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4
OTgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDk3NCwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAg
ICAgICAgICAgICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIK
ICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoWFBTUywgUGFja2FnZSAo
MHgwMykKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIDB4MDAwMDBDRTQsIAogICAgICAgICAgICAgICAgMHgwMDAw
MEY3OCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
ICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAv
LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVy
ICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl
ICgweDA4KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwODk4LCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDA5NzQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAgICAgICAgIEJ1ZmZlciAo
MHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAg
ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgMHgwMDAwMDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDAwNjQwLCAKICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAg
ICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg
QnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAw
eDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4u
Li4uLi4KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgw
OCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAg
ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfUFNELCBQYWNrYWdl
ICgweDAxKSAgLy8gX1BTRDogUG93ZXIgU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAgewog
ICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMDAw
MDAwNywgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFBDViwg
MHgwMCkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFBD
OiBQZXJmb3JtYW5jZSBQcmVzZW50IENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAg
ICAgUmV0dXJuIChQUENWKSAvKiBcX1NCXy5QTFRGLkMwMEYuUFBDViAqLwogICAgICAgIH0K
CiAgICAgICAgTmFtZSAoX0NTVCwgUGFja2FnZSAoMHgwNCkgIC8vIF9DU1Q6IEMtU3RhdGVz
CiAgICAgICAgewogICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgUGFja2FnZSAoMHgw
NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRI
VywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gQml0
IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8g
Qml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAs
IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMDAxLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXNvdXJj
ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAg
ICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg
ICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw
MDAwMDAwMDAwMDQxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAx
LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg
ICAgICAgICAgMHgwMDEyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNSwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAg
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg
ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMTVFLCAKICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoX0NTRCwg
UGFja2FnZSAoMHgwMSkgIC8vIF9DU0Q6IEMtU3RhdGUgRGVwZW5kZW5jaWVzCiAgICAgICAg
ewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDA2LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw
MDAwMDAwNywgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZFLCAKICAgICAgICAgICAgICAg
IDB4MDAwMDAwMDIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMAogICAgICAgICAgICB9
CiAgICAgICAgfSkKICAgICAgICBOYW1lIChfTFBJLCBQYWNrYWdlICgweDA2KSAgLy8gX0xQ
STogTG93IFBvd2VyIElkbGUgU3RhdGVzCiAgICAgICAgewogICAgICAgICAgICAweDAwMDAs
IAogICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIAogICAgICAgICAgICAweDAwMDMs
IAogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAweDAwMDAwMDAyLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAg
ICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg
CiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg
ICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg
ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAgICAgICAgICAg
ICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBS
ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKFN5c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg
ICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAg
ICAgICAgLCkKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICJDMSIKICAg
ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDBBKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAweDAwMDAwMDI0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAw
MTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMSwgCiAgICAgICAgICAgICAgICAweDAw
MDAwMDAwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAgICAg
MHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk
dGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg
T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDQxNCwgLy8g
QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v
IEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgK
ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zm
c2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1NZW1vcnksIAogICAgICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg
ICAgICAgICAiQzIiCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw
QSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDJCQywgCiAgICAgICAg
ICAgICAgICAweDAwMDAwMTVFLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAg
ICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAK
ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEsIAogICAgICAgICAgICAgICAgUmVzb3VyY2VU
ZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlZ2lz
dGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw
MDAwMDAwMDA0MTUsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg
ICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRl
ICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5
c3RlbU1lbW9yeSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAg
ICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw
MDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVt
b3J5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAv
LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAw
MCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAgICAgICAg
ICAgfSwgCgogICAgICAgICAgICAgICAgIkMzIgogICAgICAgICAgICB9CiAgICAgICAgfSkK
ICAgICAgICBOYW1lIChfQ1BDLCBQYWNrYWdlICgweDE3KSAgLy8gX0NQQzogQ29udGludW91
cyBQZXJmb3JtYW5jZSBDb250cm9sCiAgICAgICAgewogICAgICAgICAgICAweDE3LCAKICAg
ICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg
ICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAg
ICAgICAgICAgIDB4MTgsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg
ICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAg
ICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAg
ICAgICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0
ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcs
IAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRo
CiAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0
CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIwLCAvLyBBZGRyZXNzCiAg
ICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQog
ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNv
dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVy
IChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAv
LyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8v
IEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjAsIC8v
IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFj
Y2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg
ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg
ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBD
MDAxMDJCMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAg
ICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
IH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4
ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQg
V2lkdGgKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBP
ZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwQzAwMTAyQjMsIC8vIEFkZHJl
c3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEFjY2VzcyBT
aXplCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVn
aXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAg
ICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg
ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBDMDAxMDJC
MywgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAg
Ly8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0sIAoK
ICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAw
eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4
MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAg
ICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAg
ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg
ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAg
ICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1w
bGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVt
TWVtb3J5LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJp
dCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0
IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRk
cmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS
ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4NDAsICAgICAgICAg
ICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAg
ICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAw
MEU3LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAg
ICAvLyBBY2Nlc3MgU2l6ZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwg
CgogICAgICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHg0
MCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAweDAw
LCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAw
MDAwMDAwMDAwMDAwRTgsIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAweDA0LCAg
ICAgICAgICAgICAgIC8vIEFjY2VzcyBTaXplCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg
ICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAg
ICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDBDMDAxMDJCNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAg
ICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gQWNjZXNzIFNpemUKICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAo
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAog
ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAg
ICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAg
ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIxLCAvLyBBZGRyZXNzCiAgICAg
ICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAg
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAweDAwMDAw
MDAxLCAKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtTWVtb3J5LCAKICAgICAgICAgICAgICAg
ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAg
ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg
ICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg
ICwpCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAg
ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg
ICAgICAgICAgICAgICAgMHgxOCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgMHgwMDAwMDAwMEMwMDEwMkIzLCAvLyBBZGRyZXNzCiAgICAgICAg
ICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBBY2Nlc3MgU2l6ZQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBSZXNvdXJjZVRl
bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0
ZW1NZW1vcnksIAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g
Qml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBC
aXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB
ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgfSwgCgogICAgICAg
ICAgICAweDAwMDAwMTkwLCAKICAgICAgICAgICAgMHgwMDAwMENFNQogICAgICAgIH0pCiAg
ICB9CgogICAgTWV0aG9kIChORlBDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAg
IE5vdGlmeSAoXF9TQi5QTFRGLkMwMDAsIDB4ODUpIC8vIERldmljZS1TcGVjaWZpYwogICAg
ICAgIE5vdGlmeSAoXF9TQi5QTFRGLkMwMDEsIDB4ODUpIC8vIERldmljZS1TcGVjaWZpYwog
ICAgICAgIE5vdGlmeSAoXF9TQi5QTFRGLkMwMDIsIDB4ODUpIC8vIERldmljZS1TcGVjaWZp
YwogICAgICAgIE5vdGlmeSAoXF9TQi5QTFRGLkMwMDMsIDB4ODUpIC8vIERldmljZS1TcGVj
aWZpYwogICAgICAgIE5vdGlmeSAoXF9TQi5QTFRGLkMwMDQsIDB4ODUpIC8vIERldmljZS1T
cGVjaWZpYwogICAgICAgIE5vdGlmeSAoXF9TQi5QTFRGLkMwMDUsIDB4ODUpIC8vIERldmlj
ZS1TcGVjaWZpYwogICAgICAgIE5vdGlmeSAoXF9TQi5QTFRGLkMwMDYsIDB4ODUpIC8vIERl
dmljZS1TcGVjaWZpYwogICAgICAgIE5vdGlmeSAoXF9TQi5QTFRGLkMwMDcsIDB4ODUpIC8v
IERldmljZS1TcGVjaWZpYwogICAgICAgIE5vdGlmeSAoXF9TQi5QTFRGLkMwMDgsIDB4ODUp
IC8vIERldmljZS1TcGVjaWZpYwogICAgICAgIE5vdGlmeSAoXF9TQi5QTFRGLkMwMDksIDB4
ODUpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgIE5vdGlmeSAoXF9TQi5QTFRGLkMwMEEs
IDB4ODUpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgIE5vdGlmeSAoXF9TQi5QTFRGLkMw
MEIsIDB4ODUpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgIE5vdGlmeSAoXF9TQi5QTFRG
LkMwMEMsIDB4ODUpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgIE5vdGlmeSAoXF9TQi5Q
TFRGLkMwMEQsIDB4ODUpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgIE5vdGlmeSAoXF9T
Qi5QTFRGLkMwMEUsIDB4ODUpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgIE5vdGlmeSAo
XF9TQi5QTFRGLkMwMEYsIDB4ODUpIC8vIERldmljZS1TcGVjaWZpYwogICAgfQp9Cgo=
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt23.dsl"
Content-Disposition: attachment; filename="ssdt23.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MjMuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwMDA1MiAoODIpCiAqICAgICBSZXZpc2lvbiAgICAgICAgIDB4
MDIKICogICAgIENoZWNrc3VtICAgICAgICAgMHgwNAogKiAgICAgT0VNIElEICAgICAgICAg
ICAiTEVOT1ZPIgogKiAgICAgT0VNIFRhYmxlIElEICAgICAiRFJUTSIKICogICAgIE9FTSBS
ZXZpc2lvbiAgICAgMHgwMDAwMDAwMSAoMSkKICogICAgIENvbXBpbGVyIElEICAgICAgIklO
VEwiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MjAxODAzMTMgKDUzODQ0NDU2MykKICov
CkRlZmluaXRpb25CbG9jayAoIiIsICJTU0RUIiwgMiwgIkxFTk9WTyIsICJEUlRNIiwgMHgw
MDAwMDAwMSkKewogICAgU2NvcGUgKFxfU0IpCiAgICB7CiAgICAgICAgRGV2aWNlIChEUlRN
KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkRSVE0wMDAxIikgIC8vIF9I
SUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDApICAvLyBfVUlE
OiBVbmlxdWUgSUQKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVk
KSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVy
biAoMHgwRikKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoK
--------------YuTFcCuxiyG8h2Gi5HZkyDSN
Content-Type: text/x-dsl; charset="UTF-8"; name="ssdt24.dsl"
Content-Disposition: attachment; filename="ssdt24.dsl"
Content-Transfer-Encoding: base64

LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp
c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjIwMzMxICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp
Z2h0IChjKSAyMDAwIC0gMjAyMiBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i
bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiBz
c2R0MjQuZGF0LCBUdWUgSnVsICA5IDA4OjMyOjAwIDIwMjQKICoKICogT3JpZ2luYWwgVGFi
bGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiU1NEVCIKICogICAgIExlbmd0
aCAgICAgICAgICAgMHgwMDAwQTA3RCAoNDEwODUpCiAqICAgICBSZXZpc2lvbiAgICAgICAg
IDB4MDIKICogICAgIENoZWNrc3VtICAgICAgICAgMHg1NwogKiAgICAgT0VNIElEICAgICAg
ICAgICAiTEVOT1ZPIgogKiAgICAgT0VNIFRhYmxlIElEICAgICAiQ1BNQ01OIgogKiAgICAg
T0VNIFJldmlzaW9uICAgICAweDAwMDAwMDAxICgxKQogKiAgICAgQ29tcGlsZXIgSUQgICAg
ICAiSU5UTCIKICogICAgIENvbXBpbGVyIFZlcnNpb24gMHgyMDE4MDMxMyAoNTM4NDQ0NTYz
KQogKi8KRGVmaW5pdGlvbkJsb2NrICgiIiwgIlNTRFQiLCAyLCAiTEVOT1ZPIiwgIkNQTUNN
TiIsIDB4MDAwMDAwMDEpCnsKICAgIEV4dGVybmFsIChfR1BFLCBEZXZpY2VPYmopCiAgICBF
eHRlcm5hbCAoX0dQRS5BSUUwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5BSUUxLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5BSUUyLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5BSUUzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5CSUUwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5CSUUxLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5CSUUyLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5CSUUzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5QVFMwLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5QVFMxLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5QVFMyLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5QVFMzLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDAwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDAxLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDAyLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDAzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDA0LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDA1LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDA2LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDA3LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDEwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDExLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDEyLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDEzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDE0LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDE1LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDE2LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDE3LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDIwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDIxLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDIyLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDIzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDI0LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDI1LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDI2LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDI3LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDMwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDMxLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDMyLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDMzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDM0LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDM1LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDM2LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDM3LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDQwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDQxLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDQyLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDQzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDQ0LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDQ1LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDQ2LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDQ3LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDUwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDUxLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDUyLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDUzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDU0LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDU1LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDU2LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDU3LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDYwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDYxLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDYyLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDYzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDY0LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDY1LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDY2LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDY3LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDcwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDcxLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDcyLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDczLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDc0LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDc1LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDc2LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5TUDc3LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5XQUswLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5XQUsxLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5XQUsyLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX0dQRS5XQUszLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX1NCXy5BTElCLCBNZXRob2RPYmopICAgIC8vIDIgQXJndW1lbnRzCiAgICBF
eHRlcm5hbCAoX1NCXy5BTTAwLCBNdXRleE9iaikKICAgIEV4dGVybmFsIChfU0JfLkJQVFMs
IE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLkJXQUss
IE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLkdQSU8s
IERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLklQVFMsIE1ldGhvZE9iaikgICAgLy8g
MSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLklXQUssIE1ldGhvZE9iaikgICAgLy8g
MSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLk0yNjMsIE1ldGhvZE9iaikgICAgLy8g
MSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLk0yNjQsIE1ldGhvZE9iaikgICAgLy8g
MSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLk0yODQsIE1ldGhvZE9iaikgICAgLy8g
MSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLk9QVFMsIE1ldGhvZE9iaikgICAgLy8g
MSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLk9XQUssIE1ldGhvZE9iaikgICAgLy8g
MSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuUFRCUi5QVFNULlRQVFMsIE1l
dGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuUFRC
Ui5QVFNULlRXQUssIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFs
IChfU0JfLlBDWFguR1BYWC5TQVhYLlRQVFMsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVu
dHMKICAgIEV4dGVybmFsIChfU0JfLlBDWFguR1BYWC5TQVhYLlRXQUssIE1ldGhvZE9iaikg
ICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDWFguU0FYWC5UUFRTLCBN
ZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQ1hYLlNB
WFguVFdBSywgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKE0w
MzgsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChNMDM5LCBN
ZXRob2RPYmopICAgIC8vIDIgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoTTA1MCwgRGV2aWNl
T2JqKQogICAgRXh0ZXJuYWwgKE0wNTEsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDUy
LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1MywgRGV2aWNlT2JqKQogICAgRXh0ZXJu
YWwgKE0wNTQsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDU1LCBEZXZpY2VPYmopCiAg
ICBFeHRlcm5hbCAoTTA1NiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNTcsIERldmlj
ZU9iaikKICAgIEV4dGVybmFsIChNMDU4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA1
OSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNjIsIERldmljZU9iaikKICAgIEV4dGVy
bmFsIChNMDY4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA2OSwgRGV2aWNlT2JqKQog
ICAgRXh0ZXJuYWwgKE0wNzAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDcxLCBEZXZp
Y2VPYmopCiAgICBFeHRlcm5hbCAoTTA3MiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0w
NzQsIERldmljZU9iaikKICAgIEV4dGVybmFsIChNMDc1LCBEZXZpY2VPYmopCiAgICBFeHRl
cm5hbCAoTTA3NiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wNzcsIERldmljZU9iaikK
ICAgIEV4dGVybmFsIChNMDc4LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTA3OSwgRGV2
aWNlT2JqKQogICAgRXh0ZXJuYWwgKE0wODAsIERldmljZU9iaikKICAgIEV4dGVybmFsIChN
MDgxLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoTTEyNywgRGV2aWNlT2JqKQogICAgRXh0
ZXJuYWwgKE1PRU0sIE1ldGhvZE9iaikgICAgLy8gMyBBcmd1bWVudHMKICAgIEV4dGVybmFs
IChORlBDLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCgogICAgT3BlcmF0aW9uUmVn
aW9uIChDUE5WLCBTeXN0ZW1NZW1vcnksIDB4MUJCMTIwMTgsIDB4MDAwMTAxMTcpCiAgICBG
aWVsZCAoQ1BOViwgQW55QWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBNMDgy
LCAgIDMyLCAKICAgICAgICBNMDgzLCAgIDMyLCAKICAgICAgICBNMDg0LCAgIDMyLCAKICAg
ICAgICBNMDg1LCAgIDgsIAogICAgICAgIE0yMjEsICAgOCwgCiAgICAgICAgTTA4NiwgICAx
NiwgCiAgICAgICAgTTIyOSwgICA4LCAKICAgICAgICBNMjMxLCAgIDE2LCAKICAgICAgICBN
MjM1LCAgIDgsIAogICAgICAgIE0yMzMsICAgMzIsIAogICAgICAgICAgICAsICAgMSwgCiAg
ICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAsICAg
MSwgCiAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgLCAgIDEsIAogICAgICAgIE9m
ZnNldCAoMHgxOSksIAogICAgICAgIE0wODcsICAgMSwgCiAgICAgICAgICAgICwgICAxLCAK
ICAgICAgICBPZmZzZXQgKDB4MUMpLCAKICAgICAgICBNMDg4LCAgIDE2LCAKICAgICAgICBN
MDg5LCAgIDE2LCAKICAgICAgICBNMDkwLCAgIDMsIAogICAgICAgIE0wOTEsICAgNSwgCiAg
ICAgICAgTTA5MiwgICA4LCAKICAgICAgICBNMDkzLCAgIDMsIAogICAgICAgIE0wOTQsICAg
NSwgCiAgICAgICAgTTA5NSwgICA4LCAKICAgICAgICBNMDk2LCAgIDgsIAogICAgICAgIE0w
OTcsICAgOCwgCiAgICAgICAgTTA5OCwgICAzMiwgCiAgICAgICAgTTA5OSwgICAzMiwgCiAg
ICAgICAgTTEwMCwgICAzMiwgCiAgICAgICAgTTEwMSwgICAzMiwgCiAgICAgICAgTTEwMiwg
ICAzMiwgCiAgICAgICAgTTEwMywgICAzMiwgCiAgICAgICAgTTEwNCwgICAyMjQsIAogICAg
ICAgIE0xMDUsICAgMzIsIAogICAgICAgIE0xMDYsICAgMzI3NjgsIAogICAgICAgIE0zNzgs
ICAgMzI3NjgsIAogICAgICAgIE0zNzksICAgMzI3NjgsIAogICAgICAgIE0zODAsICAgMzI3
NjgsIAogICAgICAgIE0zODEsICAgMzI3NjgsIAogICAgICAgIE0zODIsICAgMzI3NjgsIAog
ICAgICAgIE0zODMsICAgMzI3NjgsIAogICAgICAgIE0zODQsICAgMzI3NjgsIAogICAgICAg
IE0zODUsICAgMzI3NjgsIAogICAgICAgIE0zODYsICAgMzI3NjgsIAogICAgICAgIE0zODcs
ICAgMzI3NjgsIAogICAgICAgIE0zODgsICAgMzI3NjgsIAogICAgICAgIE0zODksICAgMzI3
NjgsIAogICAgICAgIE0zOTAsICAgMzI3NjgsIAogICAgICAgIE0zOTEsICAgMzI3NjgsIAog
ICAgICAgIE0zOTIsICAgMzI3NjgsIAogICAgICAgIE0xMDcsICAgNjQsIAogICAgICAgIE0z
MjAsICAgMzIsIAogICAgICAgIE0zMjEsICAgMzIsIAogICAgICAgIE0zMjIsICAgMzIsIAog
ICAgICAgIE0zMjMsICAgMzIsIAogICAgICAgIE0zMjQsICAgMzIsIAogICAgICAgIE0zMjUs
ICAgMzIsIAogICAgICAgIE0zMjYsICAgMzIsIAogICAgICAgIE0zMjcsICAgMTYsIAogICAg
ICAgIE0zMjgsICAgOCwgCiAgICAgICAgTTEyOCwgICAzMiwgCiAgICAgICAgTTEwOCwgICAz
MiwgCiAgICAgICAgTTEwOSwgICAzMiwgCiAgICAgICAgTTExMCwgICAzMiwgCiAgICAgICAg
TTEyMiwgICAzMiwgCiAgICAgICAgTTEzMSwgICAzMiwgCiAgICAgICAgTTEzMiwgICAzMiwg
CiAgICAgICAgTTEzMywgICAzMiwgCiAgICAgICAgTTEzNCwgICAzMiwgCiAgICAgICAgTTEz
NSwgICAzMiwgCiAgICAgICAgTTEzNiwgICAzMiwgCiAgICAgICAgTTIyMCwgICAzMiwgCiAg
ICAgICAgTTIyNiwgICAzMiwgCiAgICAgICAgTTI1MSwgICAzMiwgCiAgICAgICAgTTMxMCwg
ICAzMiwgCiAgICAgICAgTTI4MCwgICAzMiwgCiAgICAgICAgTTI5MCwgICAzMiwgCiAgICAg
ICAgTTMzMSwgICAzMiwgCiAgICAgICAgTTQxNCwgICAxNiwgCiAgICAgICAgTTQ0NCwgICA3
MiwgCiAgICAgICAgTTQ1MywgICAzMiwgCiAgICAgICAgTTQ1NCwgICAxNiwgCiAgICAgICAg
TTQ1NSwgICA4LCAKICAgICAgICBNNDU2LCAgIDgsIAogICAgICAgIE00NTcsICAgOCwgCiAg
ICAgICAgTTQ0OSwgICA3MiwgCiAgICAgICAgTTRDMCwgICAzMiwgCiAgICAgICAgTTIzQSwg
ICA4LCAKICAgICAgICBNMzFDLCAgIDMyLCAKICAgICAgICBNNEYwLCAgIDMyLCAKICAgICAg
ICBNNjEwLCAgIDMyLCAKICAgICAgICBNNjIwLCAgIDMyLCAKICAgICAgICBNMjlBLCAgIDEy
OCwgCiAgICAgICAgTTYzMSwgICAzMiwgCiAgICAgICAgTTY1MiwgICAzMgogICAgfQoKICAg
IE5hbWUgKENUTVIsIFplcm8pCiAgICBOYW1lIChNMjg1LCBCdWZmZXIgKDB4MDQpCiAgICB7
CiAgICAgICAgIDB4MDEsIDB4MDMsIDB4ODAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyAuLi4uCiAgICB9KQogICAgTWV0aG9kIChNMDAwLCAxLCBTZXJpYWxpemVkKQog
ICAgewogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTTI4NSwgMHgwMCwgTTI4NikKICAgICAg
ICBDcmVhdGVCeXRlRmllbGQgKE0yODUsIDB4MDEsIE0yODcpCiAgICAgICAgQ3JlYXRlV29y
ZEZpZWxkIChNMjg1LCAweDAyLCBNMjg4KQogICAgICAgIE5hbWUgKE00NTAsIEJ1ZmZlciAo
MHgwNSkKICAgICAgICB7CiAgICAgICAgICAgICAweDAwLCAweDk2LCAweDA1LCAweDAwLCAw
eDAwICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLi4KICAgICAgICB9KQogICAgICAgIENy
ZWF0ZURXb3JkRmllbGQgKE00NTAsIDB4MDAsIE00NTIpCiAgICAgICAgQ3JlYXRlQnl0ZUZp
ZWxkIChNNDUwLCAweDA0LCBNNDUxKQogICAgICAgIExvY2FsMCA9IChBcmcwICsgMHhCMDAw
MDAwMCkKICAgICAgICBJZiAoKFRvSW50ZWdlciAoTTI4NikgPT0gMHgwMSkpCiAgICAgICAg
ewogICAgICAgICAgICBMb2NhbDEgPSBUb0ludGVnZXIgKE0yODgpCiAgICAgICAgICAgIElm
ICgoVG9JbnRlZ2VyIChNMjg3KSA9PSAweDAzKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJNLCBTeXN0ZW1JTywgTG9jYWwxLCAweDA0KQog
ICAgICAgICAgICAgICAgRmllbGQgKFZBUk0sIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZl
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZBUlIsICAgMzIKICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBWQVJSID0gTG9jYWwwCiAgICAgICAg
ICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoVG9JbnRlZ2VyIChNMjg3KSA9PSAweDAyKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJOLCBT
eXN0ZW1JTywgTG9jYWwxLCAweDAyKQogICAgICAgICAgICAgICAgRmllbGQgKFZBUk4sIFdv
cmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgVkFSUywgICAxNgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IFZBUlMgPSAoTG9jYWwwICYgMHhGRkZGKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVs
c2VJZiAoKFRvSW50ZWdlciAoTTI4NykgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTywgU3lzdGVtSU8sIExvY2FsMSwgMHgw
MSkKICAgICAgICAgICAgICAgIEZpZWxkIChWQVJPLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNl
cnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZBUlQsICAgOAog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFZBUlQgPSAoTG9jYWwwICYgMHhG
RikKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKChUb0ludGVnZXIgKE00
NTEpID09IDB4MDEpKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwyID0gVG9JbnRlZ2Vy
IChNNDUyKQogICAgICAgICAgICBNMjUwICgweDAwLCAweDAwLCAweDAwLCBMb2NhbDIsIExv
Y2FsMCkKICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSUCwgU3lzdGVt
TWVtb3J5LCAweEZFRDgwODA4LCAweDA0KQogICAgICAgIEZpZWxkIChWQVJQLCBEV29yZEFj
YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIFZBUlUsICAgMzIK
ICAgICAgICB9CgogICAgICAgIExvY2FsMSA9IFZBUlUgLyogXE0wMDAuVkFSVSAqLwogICAg
ICAgIElmICgoTG9jYWwxID49IENUTVIpKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwy
ID0gKExvY2FsMSAtIENUTVIpIC8qIFxDVE1SICovCiAgICAgICAgfQogICAgICAgIEVsc2UK
ICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMiA9IChMb2NhbDEgKyAoKDB4RkZGRkZGRkUg
LSBDVE1SKSArIDB4MDEpKQogICAgICAgIH0KCiAgICAgICAgRGl2aWRlIChMb2NhbDIsIDB4
MTksIExvY2FsMywgTG9jYWwyKQogICAgICAgIERpdmlkZSAoKExvY2FsMiAqIDB4MDcpLCAw
eDAzRTgsIExvY2FsMywgTG9jYWwyKQogICAgICAgIElmICgoTG9jYWwzID49IDB4NjQpKQog
ICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgUE9TVCBDT0RFOiAlWCAgQUNQSSBUSU1F
UjogJVggIFRJTUU6ICVkLiVkIG1zXG4iLCBMb2NhbDAsIExvY2FsMSwgTG9jYWwyLCBMb2Nh
bDMsIDB4MDAsIDB4MDApCiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKExvY2FsMyA+PSAw
eDBBKSkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIFBPU1QgQ09ERTogJVggIEFD
UEkgVElNRVI6ICVYICBUSU1FOiAlZC4wJWQgbXNcbiIsIExvY2FsMCwgTG9jYWwxLCBMb2Nh
bDIsIExvY2FsMywgMHgwMCwgMHgwMCkKICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAg
IHsKICAgICAgICAgICAgTTQ2MCAoIiAgUE9TVCBDT0RFOiAlWCAgQUNQSSBUSU1FUjogJVgg
IFRJTUU6ICVkLjAwJWQgbXNcbiIsIExvY2FsMCwgTG9jYWwxLCBMb2NhbDIsIExvY2FsMywg
MHgwMCwgMHgwMCkKICAgICAgICB9CgogICAgICAgIENUTVIgPSBMb2NhbDEKICAgIH0KCiAg
ICBNZXRob2QgKE0wMzQsIDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgUmV0dXJuIChN
MDExICgoTTA4NCArIDB4MDcwMCksIEFyZzAsIDB4MDAsIDB4MDgpKQogICAgfQoKICAgIE1l
dGhvZCAoTTAxNSwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKE0wMTEg
KChNMDg0ICsgMHgwNDAwKSwgQXJnMCwgMHgwMCwgMHgwOCkpCiAgICB9CgogICAgTWV0aG9k
IChNMDE2LCAyLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIE0wMTIgKChNMDg0ICsgMHgw
NDAwKSwgQXJnMCwgMHgwMCwgMHgwOCwgQXJnMSkKICAgIH0KCiAgICBNZXRob2QgKE0wMzUs
IDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgUmV0dXJuIChNMDExIChNMDg0LCBBcmcw
LCAweDAwLCAweDA4KSkKICAgIH0KCiAgICBNZXRob2QgKE0wMzYsIDIsIFNlcmlhbGl6ZWQp
CiAgICB7CiAgICAgICAgTTAxMiAoTTA4NCwgQXJnMCwgMHgwMCwgMHgwOCwgQXJnMSkKICAg
IH0KCiAgICBNZXRob2QgKE0wMDEsIDIsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9j
YWwwID0gMHgwMAogICAgICAgIElmICgoQXJnMCA9PSAweDE1KSkKICAgICAgICB7CiAgICAg
ICAgICAgIExvY2FsMCA9IDB4MDEKICAgICAgICB9CgogICAgICAgIFJldHVybiAoTG9jYWww
KQogICAgfQoKICAgIE1ldGhvZCAoTTAwMywgMywgU2VyaWFsaXplZCkKICAgIHsKICAgICAg
ICBMb2NhbDAgPSAoQXJnMCA8PCAweDA1KQogICAgICAgIExvY2FsMSA9IChMb2NhbDAgKyBB
cmcxKQogICAgICAgIExvY2FsMiA9IChMb2NhbDEgPDwgMHgxOCkKICAgICAgICBMb2NhbDMg
PSAoTG9jYWwyICsgQXJnMikKICAgICAgICBSZXR1cm4gKExvY2FsMykKICAgIH0KCiAgICBN
ZXRob2QgKE0wMDQsIDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgT3BlcmF0aW9uUmVn
aW9uIChWQVJNLCBTeXN0ZW1JTywgMHgwQ0Q4LCAweDA4KQogICAgICAgIEZpZWxkIChWQVJN
LCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIFZB
UjEsICAgMzIKICAgICAgICB9CgogICAgICAgIEJhbmtGaWVsZCAoVkFSTSwgVkFSMSwgQXJn
MCwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBP
ZmZzZXQgKDB4MDQpLCAKICAgICAgICAgICAgVkFSMiwgICAzMgogICAgICAgIH0KCiAgICAg
ICAgTG9jYWwwID0gVkFSMiAvKiBcTTAwNC5WQVIyICovCiAgICAgICAgUmV0dXJuIChMb2Nh
bDApCiAgICB9CgogICAgTWV0aG9kIChNMDA1LCAyLCBTZXJpYWxpemVkKQogICAgewogICAg
ICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTSwgU3lzdGVtSU8sIDB4MENEOCwgMHgwOCkKICAg
ICAgICBGaWVsZCAoVkFSTSwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg
ewogICAgICAgICAgICBWQVIxLCAgIDMyCiAgICAgICAgfQoKICAgICAgICBCYW5rRmllbGQg
KFZBUk0sIFZBUjEsIEFyZzAsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg
IHsKICAgICAgICAgICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgIFZBUjIsICAgMzIK
ICAgICAgICB9CgogICAgICAgIFZBUjIgPSBBcmcxCiAgICB9CgogICAgTWV0aG9kIChNMDA2
LCAzLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9IChNMDA0IChBcmcwKSAm
IEFyZzEpCiAgICAgICAgTG9jYWwxID0gKExvY2FsMCB8IEFyZzIpCiAgICAgICAgTTAwNSAo
QXJnMCwgTG9jYWwxKQogICAgfQoKICAgIE1ldGhvZCAoTTAwMiwgMiwgU2VyaWFsaXplZCkK
ICAgIHsKICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAg
ICBJZiAoKEFyZzEgPT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0w
MDYgKE0wMDMgKDB4MDYsIDB4MDAsIDB4QzApLCAweEZGRkZFRkZGLCAweDAwKQogICAgICAg
ICAgICAgICAgTTAwNiAoTTAwMyAoMHgwMSwgMHgwMCwgMHg2NSksIDB4RkZGRkZFRkUsIDB4
MDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAxKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTTAwNiAoTTAwMyAoMHgwNiwgMHgwMCwgMHhD
MCksIDB4RkZGRkRGRkYsIDB4MDApCiAgICAgICAgICAgICAgICBNMDA2IChNMDAzICgweDAx
LCAweDAwLCAweDY1KSwgMHhGRkZGRkRGRCwgMHgwMCkKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgSWYgKChBcmcxID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBNMDA2IChNMDAzICgweDA2LCAweDAwLCAweEMwKSwgMHhGRkZGQkZGRiwgMHgwMCkKICAg
ICAgICAgICAgICAgIE0wMDYgKE0wMDMgKDB4MDEsIDB4MDAsIDB4NjUpLCAweEZGRkZGQkZC
LCAweDAwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMykp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0wMDYgKE0wMDMgKDB4MDYsIDB4MDAs
IDB4QzApLCAweEZGRkY3RkZGLCAweDAwKQogICAgICAgICAgICAgICAgTTAwNiAoTTAwMyAo
MHgwMSwgMHgwMCwgMHg2NSksIDB4RkZGRkY3RjcsIDB4MDApCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIFNsZWVwICgweDAxKQogICAgICAgIH0KCiAgICAgICAgSWYgKChBcmcwID09
IDB4MDEpKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcxID09IDB4MDApKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBNMDA2IChNMDAzICgweDA2LCAweDAwLCAweEMw
KSwgMHhGRkZGRUZGRiwgMHgxMDAwKQogICAgICAgICAgICAgICAgTTAwNiAoTTAwMyAoMHgw
MSwgMHgwMCwgMHg2NSksIDB4RkZGRkZFRkUsIDB4MDEwMSkKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgSWYgKChBcmcxID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBNMDA2IChNMDAzICgweDA2LCAweDAwLCAweEMwKSwgMHhGRkZGREZGRiwgMHgyMDAw
KQogICAgICAgICAgICAgICAgTTAwNiAoTTAwMyAoMHgwMSwgMHgwMCwgMHg2NSksIDB4RkZG
RkZERkQsIDB4MDIwMikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcxID09
IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNMDA2IChNMDAzICgweDA2
LCAweDAwLCAweEMwKSwgMHhGRkZGQkZGRiwgMHg0MDAwKQogICAgICAgICAgICAgICAgTTAw
NiAoTTAwMyAoMHgwMSwgMHgwMCwgMHg2NSksIDB4RkZGRkZCRkIsIDB4MDQwNCkKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcxID09IDB4MDMpKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBNMDA2IChNMDAzICgweDA2LCAweDAwLCAweEMwKSwgMHhGRkZG
N0ZGRiwgMHg4MDAwKQogICAgICAgICAgICAgICAgTTAwNiAoTTAwMyAoMHgwMSwgMHgwMCwg
MHg2NSksIDB4RkZGRkY3RjcsIDB4MDgwOCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
U2xlZXAgKDB4MDEpCiAgICAgICAgfQoKICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMCkpCiAg
ICAgICAgewogICAgICAgICAgICBNMDA4IChBcmcxKQogICAgICAgICAgICBMb2NhbDAgPSBN
MDA0IChNMDAzICgweDAzLCBBcmcxLCAweEE1KSkKICAgICAgICAgICAgTG9jYWwwICY9IDB4
RkYKICAgICAgICAgICAgTG9jYWwxID0gMHgwMUY0CiAgICAgICAgICAgIFdoaWxlICgoKExv
Y2FsMSA+IDB4MDApICYmIChMb2NhbDAgIT0gMHgxMCkpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBMb2NhbDAgPSBNMDA0IChNMDAzICgweDAzLCBBcmcxLCAweEE1KSkKICAg
ICAgICAgICAgICAgIExvY2FsMCAmPSAweEZGCiAgICAgICAgICAgICAgICBMb2NhbDEtLQog
ICAgICAgICAgICAgICAgU2xlZXAgKDB4MDEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IElmICgoTG9jYWwwICE9IDB4MTApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBN
MDA3IChBcmcxKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAo
TTAwOCwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBMb2NhbDAgPSBNMDE5ICgweDAw
LCAweDE1LCBBcmcwLCAweDg4KQogICAgICAgIExvY2FsMSA9ICgoTG9jYWwwICYgMHhGRkZG
RkZGMCkgfCAweDAyKQogICAgICAgIE0wMjAgKDB4MDAsIDB4MTUsIEFyZzAsIDB4ODgsIExv
Y2FsMSkKICAgICAgICBNMDA2IChNMDAzICgweDAzLCBBcmcwLCAweEE0KSwgMHhGRkZGRkZG
RSwgMHgwMSkKICAgICAgICBNMDA2IChNMDAzICgweDAzLCBBcmcwLCAweEEyKSwgMHhGRkZG
REZGRiwgMHgyMDAwKQogICAgICAgIE0wMDYgKE0wMDMgKDB4MDMsIEFyZzAsIDB4QzApLCAw
eEZGRkY3RkZGLCAweDgwMDApCiAgICAgICAgTTAwNiAoTTAwMyAoMHgwMywgQXJnMCwgMHhB
NCksIDB4REZGRkZGRkYsIDB4MjAwMDAwMDApCiAgICAgICAgU2xlZXAgKDB4MDEpCiAgICB9
CgogICAgTWV0aG9kIChNMDA3LCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2Fs
MCA9IE0wMTkgKDB4MDAsIDB4MTUsIEFyZzAsIDB4ODgpCiAgICAgICAgTG9jYWwxID0gKChM
b2NhbDAgJiAweEZGRkZGRkYwKSB8IDB4MDEpCiAgICAgICAgTTAyMCAoMHgwMCwgMHgxNSwg
QXJnMCwgMHg4OCwgTG9jYWwxKQogICAgICAgIE0wMDYgKE0wMDMgKDB4MDMsIEFyZzAsIDB4
QTQpLCAweEZGRkZGRkZFLCAweDAwKQogICAgICAgIE0wMDYgKE0wMDMgKDB4MDMsIEFyZzAs
IDB4QTIpLCAweEZGRkZERkZGLCAweDIwMDApCiAgICAgICAgU2xlZXAgKDB4MDEpCiAgICB9
CgogICAgTWV0aG9kIChNMTExLCAyLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIE00NjAg
KCIgIEtFUi1BU0wtQ3BtU2V0RGV2aWNlUG93ZXIgKDB4JVgsIDB4JVgpXG4iLCBBcmcwLCBB
cmcxLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIElmICgoQXJnMCAhPSAweDAw
KSkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IE0xMTAgLyogXE0xMTAgKi8KICAg
ICAgICAgICAgSWYgKExvY2FsMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9j
YWwwICs9IDB4MTAKICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAg
ICAgIExvY2FsMiA9IDB4MDEKICAgICAgICAgICAgICAgIExvY2FsNyA9IDB4MDAKICAgICAg
ICAgICAgICAgIFdoaWxlICgoKExvY2FsMiAhPSAweEZGKSAmJiAoTG9jYWwyICE9IDB4MDAp
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBNMDEz
ICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwMCwgMHgwMCwgMHgwOCkKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDMgPSBNMDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwMSwgMHgwMCwgMHgw
OCkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDIgPT0gQXJnMCkgJiYgKExvY2Fs
MyA9PSAoQXJnMSAmIDB4MDEpKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDMgPSBNMDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwNywg
MHgwMCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDMgIT0gMHgw
MCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2FsNCA9IE0wMTMgKChMb2NhbDAgKyBMb2NhbDEpLCAweDAyLCAweDAwLCAweDA4
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDQgPT0gMHgwMCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYWw1ID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MDMsIDB4MDAsIDB4
MjApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw2ID0gTTAxMyAoKExv
Y2FsMCArIExvY2FsMSksIDB4MDMsIDB4MTAsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTTAxMCAoKExvY2FsNSAmIDB4RkYwMEZGRkYpLCBMb2NhbDYpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoQXJnMSAmIDB4MDEpID09IDB4MDAp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTTAwMCAoMHgwREQ4KQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBNMDAwICgweDBEREIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElmICgoTG9jYWw0ID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IE0wMTMg
KChMb2NhbDAgKyBMb2NhbDEpLCAweDAzLCAweDAwLCAweDIwKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsNiA9IE0wMTMgKChMb2NhbDAgKyBMb2NhbDEpLCAweDAz
LCAweDEwLCAweDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlICgo
TTAwOSAoKExvY2FsNSAmIDB4RkYwMEZGRkYpKSAhPSBMb2NhbDYpKSB7fQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoKEFyZzEgJiAweDAxKSA9PSAweDAwKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE0wMDAgKDB4MEREOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTTAwMCAoMHgwRERDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBJZiAoKExvY2FsNCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUgPSBNMDEzICgoTG9j
YWwwICsgTG9jYWwxKSwgMHgwMywgMHgwMCwgMHgyMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTbGVlcCAoKChMb2NhbDUgKyAweDAzRTcpIC8gMHgwM0U4KSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChBcmcxICYgMHgwMSkgPT0gMHgwMCkp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBNMDAwICgweDBEREEpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE0wMDAgKDB4MERERCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNyA9IDB4MDEKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKExvY2FsNyA9PSAw
eDAxKSAmJiAoKEFyZzEgJiAweDEwKSA9PSAweDEwKSkpCiAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgKz0gMHgwOAogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoTTQ3
MCwgMiwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBMb2NhbDcgPSAweDAwCiAgICAgICAg
SWYgKChBcmcwICE9IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gTTEx
MCAvKiBcTTExMCAqLwogICAgICAgICAgICBJZiAoTG9jYWwwKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBMb2NhbDAgKz0gMHgxMAogICAgICAgICAgICAgICAgTG9jYWwxID0g
MHgwMAogICAgICAgICAgICAgICAgTG9jYWwyID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSks
IDB4MDAsIDB4MDAsIDB4MDgpCiAgICAgICAgICAgICAgICBXaGlsZSAoKChMb2NhbDIgIT0g
MHhGRikgJiYgKExvY2FsMiAhPSAweDAwKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwzID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MDEsIDB4
MDAsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwyID09IEFyZzApICYm
IChMb2NhbDMgPT0gQXJnMSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwzID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MDIsIDB4
MDAsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IE0wMTMgKChMb2Nh
bDAgKyBMb2NhbDEpLCAweDA3LCAweDAwLCAweDA4KQogICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKChMb2NhbDMgPT0gMHgwMCkgJiYgKExvY2FsNCAhPSAweDAwKSkpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNSA9
IE0wMTMgKChMb2NhbDAgKyBMb2NhbDEpLCAweDAzLCAweDAwLCAweDIwKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWw2ID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4
MDMsIDB4MTAsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE0wMDkg
KChMb2NhbDUgJiAweEZGMDBGRkZGKSkgPT0gTG9jYWw2KSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDcgPSAw
eDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2Fs
MSArPSAweDA4CiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gTTAxMyAoKExvY2FsMCAr
IExvY2FsMSksIDB4MDAsIDB4MDAsIDB4MDgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgIH0KICAgICAgICB9CgogICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtQ2hlY2tEZXZp
Y2VQb3dlclN0YXRlICgweCVYLCAlZCkgIFJldHVybiAoJWQpXG4iLCBBcmcwLCBBcmcxLCBM
b2NhbDcsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgUmV0dXJuIChMb2NhbDcpCiAgICB9
CgogICAgTWV0aG9kIChNMjI4LCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIElmICgo
QXJnMCA+IDB4MDMpKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gTTExMCAvKiBc
TTExMCAqLwogICAgICAgICAgICBJZiAoTG9jYWwwKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBMb2NhbDAgKz0gMHgxMAogICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMAog
ICAgICAgICAgICAgICAgTG9jYWwyID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MDAs
IDB4MDAsIDB4MDgpCiAgICAgICAgICAgICAgICBXaGlsZSAoKChMb2NhbDIgIT0gMHhGRikg
JiYgKExvY2FsMiAhPSAweDAwKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwzID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MDcsIDB4MDAsIDB4
MDgpCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDMgPT0gQXJnMCkpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBNMDEzICgo
TG9jYWwwICsgTG9jYWwxKSwgMHgwMiwgMHgwMCwgMHgwOCkKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDQgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IE0wMTMgKChMb2NhbDAgKyBM
b2NhbDEpLCAweDAzLCAweDAwLCAweDIwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWw2ID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MDMsIDB4MTAsIDB4MDgpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBNMDEwICgoTG9jYWw1ICYgMHhGRjAwRkZGRiks
IExvY2FsNikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDQgPT0gMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IE0wMTMgKChMb2NhbDAgKyBM
b2NhbDEpLCAweDAzLCAweDAwLCAweDIwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWw2ID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MDMsIDB4MTAsIDB4MDgpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKE0wMDkgKChMb2NhbDUgJiAweEZG
MDBGRkZGKSkgIT0gTG9jYWw2KSkge30KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDQgPT0gMHgwMikpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IE0w
MTMgKChMb2NhbDAgKyBMb2NhbDEpLCAweDAzLCAweDAwLCAweDIwKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU2xlZXAgKCgoTG9jYWw1ICsgMHgwM0U3KSAvIDB4MDNFOCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgICAgIExvY2FsMSArPSAweDA4CiAgICAgICAgICAgICAgICAgICAgTG9jYWwy
ID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MDAsIDB4MDAsIDB4MDgpCiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgTWV0aG9kIChN
MjE5LCAyLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3Bt
U2V0RGV2aWNlQ2xvY2sgKDB4JVgsICVkKVxuIiwgQXJnMCwgQXJnMSwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICBJZiAoKEFyZzAgIT0gMHgwMCkpCiAgICAgICAgewogICAg
ICAgICAgICBMb2NhbDAgPSBNMjIxIC8qIFxNMjIxICovCiAgICAgICAgICAgIElmICgoTG9j
YWwwICYgMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IE0y
MjAgLyogXE0yMjAgKi8KICAgICAgICAgICAgICAgIElmIChMb2NhbDApCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IDB4MTAKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDEgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgw
MQogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwyICE9IDB4RkYpKQogICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gTTAxMyAo
KExvY2FsMCArIExvY2FsMSksIDB4MDAsIDB4MDAsIDB4MDgpCiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMyA9IE0wMTMgKChMb2NhbDAgKyBMb2NhbDEpLCAweDAxLCAweDAwLCAw
eDA4KQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBNMDEzICgoTG9jYWwwICsg
TG9jYWwxKSwgMHgwNCwgMHgwMCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YWw1ID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MDcsIDB4MDAsIDB4MDgpCiAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2FsNyA9IE0wMTMgKChMb2NhbDAgKyBMb2NhbDEpLCAw
eDA4LCAweDAwLCAweDIwKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsNCA9
PSBBcmcwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSWYgKCgoTG9jYWwyIDwgMHgwQSkgJiYgKExvY2FsNSAmIDB4ODApKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBJZiAoKEFyZzEgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSAweDAw
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVsc2VJZiAoKExvY2FsNSAmIDB4MDQpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SWYgKChBcmcxID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE0wODUg
Pj0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gMHgw
MwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMyA9IDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IDB4MDIp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDYgPSBNMDE3ICgweDAwLCBNMDEzICgo
TG9jYWwwICsgTG9jYWwxKSwgMHgwNSwgMHgwMCwgMHgwOCksIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0wMTMgKChMb2NhbDAgKyBMb2NhbDEpLCAw
eDA2LCAweDAwLCAweDA4KSwgMHgxOSwgMHgwMCwgMHgwOCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoTTI2NSAoTG9jYWw2LCAweDAwLCAweDAwKSA9
PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE0wODUgPj0g
MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMg
PSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoTTA4NSA+PSAweDA0KSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSAweDAzCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwzID0gMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs
c2VJZiAoKE0wODUgPj0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSAweDAzCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IDB4MEYKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoTTA4NSA+PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTTA4NSA9PSAw
eDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw3ICYgMHgwRkYwMDAw
MCkgPiAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDYgPSBN
MjQ5ICgoKExvY2FsNyA+PiAweDE4KSAmIDB4MEYpLCAoKAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDcgPj4gMHgxNCkgJiAweDBGKSwg
KChMb2NhbDcgPj4gMHgxMCkgJiAweDBGKSwgMHgwMkQwMUUwMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDYgJj0gKDB4RkZGRkZGRkYgXiAo
MHgwMyA8PCAoTG9jYWwyIDw8IDB4MDEpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDYgfD0gKExvY2FsMyA8PCAoTG9jYWwyIDw8IDB4MDEp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0yNTAgKCgo
TG9jYWw3ID4+IDB4MTgpICYgMHgwRiksICgoTG9jYWw3ID4+IDB4MTQKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAmIDB4MEYpLCAoKExvY2Fs
NyA+PiAweDEwKSAmIDB4MEYpLCAweDAyRDAxRTAwLCBMb2NhbDYpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTTAx
MiAoKE0wODQgKyAweDBFMDApLCAoTG9jYWwyID4+IDB4MDIpLCAoKExvY2FsMiAmIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzKSA8PCAw
eDAxKSwgMHgwMiwgTG9jYWwzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKChMb2NhbDcgPj4gMHgxQykg
PT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0wMTIgKChNMDg0ICsgMHgxMzAw
KSwgKExvY2FsMiA+PiAweDAyKSwgKChMb2NhbDIgJiAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAweDAzKSA8PCAweDAxKSwgMHgwMiwgTG9jYWwzKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTTAxMiAo
KE0wODQgKyAweDBFMDApLCAoTG9jYWwyID4+IDB4MDIpLCAoKExvY2FsMiAmIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMpIDw8IDB4MDEpLCAw
eDAyLCBMb2NhbDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTTAxMiAoKE0wODQgKyAweDBFMDApLCAo
TG9jYWwyID4+IDB4MDEpLCAoKExvY2FsMiAmIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMHgwMSkgPDwgMHgwMiksIDB4MDQsIExvY2FsMykKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIElmICgoQXJnMSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0wMDAgKDB4MERFMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0wMDAg
KDB4MERFMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE0wMDAgKDB4MERFMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4RkYKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWwxICs9IDB4MEMKICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAg
TWV0aG9kIChNMTEyLCAyLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIE00NjAgKCIgIEtF
Ui1BU0wtQ3BtU2V0RGV2aWNlUmVzZXQgKDB4JVgsIDB4JVgpXG4iLCBBcmcwLCBBcmcxLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIElmICgoQXJnMCAhPSAweDAwKSkKICAg
ICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IE0xMDkgLyogXE0xMDkgKi8KICAgICAgICAg
ICAgSWYgKExvY2FsMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwICs9
IDB4MTAKICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgIExv
Y2FsMiA9IDB4MDEKICAgICAgICAgICAgICAgIExvY2FsNyA9IDB4MDAKICAgICAgICAgICAg
ICAgIFdoaWxlICgoKExvY2FsMiAhPSAweEZGKSAmJiAoTG9jYWwyICE9IDB4MDApKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBNMDEzICgoTG9j
YWwwICsgTG9jYWwxKSwgMHgwMCwgMHgwMCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICBM
b2NhbDMgPSBNMDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwMSwgMHgwMCwgMHgwOCkKICAg
ICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDIgPT0gQXJnMCkgJiYgKExvY2FsMyA9PSAo
QXJnMSAmIDB4MDMpKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKExvY2FsMyA8IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBNMDEzICgoTG9jYWwwICsg
TG9jYWwxKSwgMHgwMiwgMHgwMCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElmICgoTG9jYWw0ID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IE0wMTMgKChMb2NhbDAg
KyBMb2NhbDEpLCAweDAzLCAweDAwLCAweDIwKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsNiA9IE0wMTMgKChMb2NhbDAgKyBMb2NhbDEpLCAweDAzLCAweDEwLCAw
eDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0wMTAgKChMb2NhbDUgJiAw
eEZGMDBGRkZGKSwgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWw0ID09IDB4MDEpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExvY2FsNSA9IE0wMTMgKChMb2NhbDAgKyBMb2NhbDEpLCAweDAzLCAweDAwLCAweDIwKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IE0wMTMgKChMb2NhbDAg
KyBMb2NhbDEpLCAweDAzLCAweDEwLCAweDA4KQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE0wMTAgKChMb2NhbDUgJiAweEZGMDBGRkZGKSwgTG9jYWw2KQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsNyA9IE0wMDkgKChMb2NhbDUgJiAweEZGMDBG
RkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSAweDAzRjIK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKChMb2NhbDQgPiAweDAw
KSAmJiAoTG9jYWw3ICE9IExvY2FsNikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw0ID0gKExv
Y2FsNCAtIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YWxs
ICgweDYzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDcgPSBN
MDA5ICgoTG9jYWw1ICYgMHhGRjAwRkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIElmICgoTG9jYWwzID09IDB4MDApKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0wMDAgKDB4MERE
NSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJZiAoKExvY2FsMyA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNMDAwICgweDBERDYpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwzID09IDB4MDIpKQogICAgICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUg
PSBNMDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwMywgMHgwMCwgMHgyMCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNsZWVwICgoKExvY2FsNSArIDB4MDNFNykgLyAweDAzRTgp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTTAwMCAoMHgwREQ3KQogICAgICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDcgPSAweDAx
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKChM
b2NhbDcgPT0gMHgwMSkgJiYgKChBcmcxICYgMHgxMCkgPT0gMHgxMCkpKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgwMAogICAg
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxICs9IDB4MDgK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBN
ZXRob2QgKE0yNzUsIDIsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWw3ID0gMHgw
MAogICAgICAgIElmICgoQXJnMCAhPSAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIExv
Y2FsMCA9IE0xMDkgLyogXE0xMDkgKi8KICAgICAgICAgICAgSWYgKExvY2FsMCkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwICs9IDB4MTAKICAgICAgICAgICAgICAg
IExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4MDEKICAgICAgICAg
ICAgICAgIFdoaWxlICgoKExvY2FsMiAhPSAweEZGKSAmJiAoTG9jYWwyICE9IDB4MDApKSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBNMDEzICgo
TG9jYWwwICsgTG9jYWwxKSwgMHgwMCwgMHgwMCwgMHgwOCkKICAgICAgICAgICAgICAgICAg
ICBMb2NhbDMgPSBNMDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwMSwgMHgwMCwgMHgwOCkK
ICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDIgPT0gQXJnMCkgJiYgKExvY2FsMyA9
PSBBcmcxKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBJZiAoKExvY2FsMyA8IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUgPSBNMDEzICgoTG9jYWwwICsgTG9jYWwx
KSwgMHgwMywgMHgwMCwgMHgyMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
NiA9IE0wMTMgKChMb2NhbDAgKyBMb2NhbDEpLCAweDAzLCAweDEwLCAweDA4KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSWYgKChNMDA5ICgoTG9jYWw1ICYgMHhGRjAwRkZGRikp
ID09IExvY2FsNikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWw3ID0gMHgwMQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgKz0gMHgwOAogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNNDYwICgiICBLRVItQVNM
LUNwbUNoZWNrRGV2aWNlUmVzZXRTdGF0ZSAoMHglWCwgJWQpICBSZXR1cm4gKCVkKVxuIiwg
QXJnMCwgQXJnMSwgTG9jYWw3LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIFJldHVybiAo
TG9jYWw3KQogICAgfQoKICAgIE1ldGhvZCAoTTExMywgMSwgU2VyaWFsaXplZCkKICAgIHsK
ICAgICAgICBJZiAoKEFyZzAgIT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBMb2Nh
bDAgPSBNMTA4IC8qIFxNMTA4ICovCiAgICAgICAgICAgIExvY2FsNyA9IDB4MDEKICAgICAg
ICAgICAgSWYgKExvY2FsMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWww
ICs9IDB4MTAKICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgICAg
IExvY2FsMiA9IDB4MDEKICAgICAgICAgICAgICAgIFdoaWxlICgoKExvY2FsMiAhPSAweEZG
KSAmJiAoTG9jYWwyICE9IDB4MDApKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDIgPSBNMDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwMCwgMHgwMCwg
MHgwOCkKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMiA9PSBBcmcwKSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IDB4RkYK
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gTTAxMyAoKExvY2FsMCArIExvY2Fs
MSksIDB4MDEsIDB4MDAsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9j
YWwzID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDUgPSBNMDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwMiwg
MHgwMCwgMHgyMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IE0wMTMg
KChMb2NhbDAgKyBMb2NhbDEpLCAweDA0LCAweDAwLCAweDA4KQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWw3ID0gKE0wMDkgKChMb2NhbDUgJiAweEZGMDBGRkZGKSkgPT0g
TG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
ICAgICBJZiAoKExvY2FsMyA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gTTAxMyAoKExvY2FsMCArIExv
Y2FsMSksIDB4MDIsIDB4MDAsIDB4MjApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhbDYgPSBNMDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwNCwgMHgwMCwgMHgwOCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNyA9IChNMDA5ICgoTG9jYWw1ICYgMHhG
RjAwRkZGRikpID09IExvY2FsNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
NSA9IE0wMTMgKChMb2NhbDAgKyBMb2NhbDEpLCAweDA2LCAweDAwLCAweDIwKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYWw2ID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSks
IDB4MDgsIDB4MDAsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDcg
Jj0gKE0wMDkgKChMb2NhbDUgJiAweEZGMDBGRkZGKSkgPT0gTG9jYWw2KQogICAgICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMyA9
PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWw1ID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MDIsIDB4MDAs
IDB4MjApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDYgPSBNMDEzICgoTG9j
YWwwICsgTG9jYWwxKSwgMHgwNCwgMHgwMCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsNyA9IChNMDA5ICgoTG9jYWw1ICYgMHhGRjAwRkZGRikpID09IExvY2Fs
NikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IE0wMTMgKChMb2NhbDAg
KyBMb2NhbDEpLCAweDA2LCAweDAwLCAweDIwKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWw2ID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MDgsIDB4MDAsIDB4MDgp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDcgJj0gKE0wMDkgKChMb2NhbDUg
JiAweEZGMDBGRkZGKSkgPT0gTG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWw1ID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4MEEsIDB4MDAsIDB4MjApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDYgPSBNMDEzICgoTG9jYWwwICsgTG9j
YWwxKSwgMHgwQywgMHgwMCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsNyAmPSAoTTAwOSAoKExvY2FsNSAmIDB4RkYwMEZGRkYpKSA9PSBMb2NhbDYpCiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9j
YWwzID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDUgPSBNMDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwMiwg
MHgwMCwgMHgyMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IE0wMTMg
KChMb2NhbDAgKyBMb2NhbDEpLCAweDA0LCAweDAwLCAweDA4KQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWw3ID0gKE0wMDkgKChMb2NhbDUgJiAweEZGMDBGRkZGKSkgPT0g
TG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gTTAxMyAoKExv
Y2FsMCArIExvY2FsMSksIDB4MDYsIDB4MDAsIDB4MjApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDYgPSBNMDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwOCwgMHgwMCwg
MHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNyB8PSAoTTAwOSAoKExv
Y2FsNSAmIDB4RkYwMEZGRkYpKSA9PSBMb2NhbDYpCiAgICAgICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwzID09IDB4MDQpKQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDUgPSBNMDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwMiwgMHgwMCwgMHgyMCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IE0wMTMgKChMb2NhbDAgKyBMb2NhbDEp
LCAweDA0LCAweDAwLCAweDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3
ID0gKE0wMDkgKChMb2NhbDUgJiAweEZGMDBGRkZGKSkgPT0gTG9jYWw2KQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gTTAxMyAoKExvY2FsMCArIExvY2FsMSksIDB4
MDYsIDB4MDAsIDB4MjApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDYgPSBN
MDEzICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwOCwgMHgwMCwgMHgwOCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsNyB8PSAoTTAwOSAoKExvY2FsNSAmIDB4RkYwMEZGRkYp
KSA9PSBMb2NhbDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDUgPSBNMDEz
ICgoTG9jYWwwICsgTG9jYWwxKSwgMHgwQSwgMHgwMCwgMHgyMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsNiA9IE0wMTMgKChMb2NhbDAgKyBMb2NhbDEpLCAweDBDLCAw
eDAwLCAweDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw3IHw9IChNMDA5
ICgoTG9jYWw1ICYgMHhGRjAwRkZGRikpID09IExvY2FsNikKICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNl
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEg
Kz0gMHgwRQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgfQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewogICAgICAgICAgICBM
b2NhbDcgPSAweDAwCiAgICAgICAgfQoKICAgICAgICBJZiAoTG9jYWw3KQogICAgICAgIHsK
ICAgICAgICAgICAgTG9jYWw3ID0gMHgwMQogICAgICAgIH0KCiAgICAgICAgUmV0dXJuIChM
b2NhbDcpCiAgICB9CgogICAgTmFtZSAoTTA0NiwgMHhBQSkKICAgIE5hbWUgKE0wNDcsIDB4
QUEpCiAgICBNZXRob2QgKE0wNDUsIDAsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9j
YWwwID0gMHgwMAogICAgICAgIElmICgoKE0wNDYgPT0gMHhBQSkgfHwgKE0wNDcgPT0gMHhB
QSkpKQogICAgICAgIHsKICAgICAgICAgICAgTTA0NiA9IDB4MDAKICAgICAgICAgICAgSWYg
KENvbmRSZWZPZiAoXF9PU0kpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo
XF9PU0kgKCJEaXNwbGF5TXV4IikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTTA0NyA9IDB4MDEKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNM
LV9PU0kgPSBUaGlzIE9TIGNhbiBzdXBwb3J0IERpc3BsYXlNdXhcbiIsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTA0NyA9
IDB4MDAKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLV9PU0kgPSBUaGlz
IE9TIGNhbm5vdCBzdXBwb3J0IERpc3BsYXlNdXhcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYg
KFxfT1NJICgiV2luZG93cyAyMDIyIikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTTA0NiA9IDB4MEMKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBLRVIt
QVNMLV9PU0kgPSBXaW5kb3dzIDExLCB2ZXJzaW9uIDIySDJcbiIsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICBFbHNlSWYgKFxfT1NJICgiV2luZG93cyAyMDIxIikpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgTTA0NiA9IDB4MEIKICAgICAgICAgICAgICAgICAgICBNNDYw
ICgiICBLRVItQVNMLV9PU0kgPSBXaW5kb3dzIDExXG4iLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxz
ZUlmIChcX09TSSAoIldpbmRvd3MgMjAyMCIpKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIE0wNDYgPSAweDBBCiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAg
S0VSLUFTTC1fT1NJID0gV2luZG93cyAxMCwgdmVyc2lvbiAyMDA0XG4iLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgRWxzZUlmIChcX09TSSAoIldpbmRvd3MgMjAxOSIpKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIE0wNDYgPSAweDA5CiAgICAgICAgICAgICAgICAgICAg
TTQ2MCAoIiAgS0VSLUFTTC1fT1NJID0gV2luZG93cyAxMCwgdmVyc2lvbiAxOTAzXG4iLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgRWxzZUlmIChcX09TSSAoIldpbmRvd3MgMjAxOC4yIikpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTA0NiA9IDB4MDgKICAgICAgICAg
ICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLV9PU0kgPSBXaW5kb3dzIDEwLCB2ZXJzaW9u
IDE4MDlcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlSWYgKFxfT1NJICgiV2luZG93cyAyMDE4
IikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTA0NiA9IDB4MDcK
ICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLV9PU0kgPSBXaW5kb3dzIDEw
LCB2ZXJzaW9uIDE4MDNcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlSWYgKFxfT1NJICgiV2lu
ZG93cyAyMDE3LjIiKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBN
MDQ2ID0gMHgwNgogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtX09TSSA9
IFdpbmRvd3MgMTAsIHZlcnNpb24gMTcwOVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2VJZiAo
XF9PU0kgKCJXaW5kb3dzIDIwMTciKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBNMDQ2ID0gMHgwNQogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1B
U0wtX09TSSA9IFdpbmRvd3MgMTAsIHZlcnNpb24gMTcwM1xuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IEVsc2VJZiAoXF9PU0kgKCJXaW5kb3dzIDIwMTYiKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBNMDQ2ID0gMHgwNAogICAgICAgICAgICAgICAgICAgIE00NjAg
KCIgIEtFUi1BU0wtX09TSSA9IFdpbmRvd3MgMTAsIHZlcnNpb24gMTYwN1xuIiwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIEVsc2VJZiAoXF9PU0kgKCJXaW5kb3dzIDIwMTUiKSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBNMDQ2ID0gMHgwMwogICAgICAgICAgICAgICAg
ICAgIE00NjAgKCIgIEtFUi1BU0wtX09TSSA9IFdpbmRvd3MgMTBcbiIsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICBFbHNlSWYgKFxfT1NJICgiV2luZG93cyAyMDEzIikpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgTTA0NiA9IDB4MDIKICAgICAgICAgICAgICAgICAgICBN
NDYwICgiICBLRVItQVNMLV9PU0kgPSBXaW5kb3dzIDguMVxuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IEVsc2VJZiAoXF9PU0kgKCJXaW5kb3dzIDIwMTIiKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBNMDQ2ID0gMHgwMQogICAgICAgICAgICAgICAgICAgIE00NjAg
KCIgIEtFUi1BU0wtX09TSSA9IFdpbmRvd3MgOCwgV2luIFNlcnZlciAyMDEyXG4iLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKE0wNDYgPj0gMHgwMSkpCiAgICAg
ICAgewogICAgICAgICAgICBMb2NhbDAgPSAweDAxCiAgICAgICAgfQoKICAgICAgICBSZXR1
cm4gKExvY2FsMCkKICAgIH0KCiAgICBNZXRob2QgKE0yMkEsIDEsIFNlcmlhbGl6ZWQpCiAg
ICB7CiAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DcG1UcmlnZ2VyU2NpICglZClcbiIsIEFy
ZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgT3BlcmF0aW9uUmVn
aW9uIChWQVJQLCBTeXN0ZW1NZW1vcnksIDB4RkVEODAyMEMsIDB4MTQpCiAgICAgICAgRmll
bGQgKFZBUlAsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAg
ICAgICAgVkEwQywgICAzMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHgwQyksIAogICAgICAg
ICAgICBWQTE4LCAgIDMyLCAKICAgICAgICAgICAgVkExQywgICAzMgogICAgICAgIH0KCiAg
ICAgICAgTG9jYWwwID0gKDB4MDEgPDwgQXJnMCkKICAgICAgICBMb2NhbDEgPSAweDdGRkZG
RkZGCiAgICAgICAgTG9jYWwxIHw9IDB4ODAwMDAwMDAKICAgICAgICBMb2NhbDEgXj0gTG9j
YWwwCiAgICAgICAgVkEwQyAmPSBMb2NhbDEKICAgICAgICBWQTE4ID0gKChWQTE4ICYgTG9j
YWwxKSB8IExvY2FsMCkKICAgICAgICBWQTFDID0gKChWQTFDICYgTG9jYWwxKSB8IExvY2Fs
MCkKICAgICAgICBTbGVlcCAoMHgwMSkKICAgICAgICBWQTFDICY9IExvY2FsMQogICAgICAg
IFZBMTggJj0gTG9jYWwxCiAgICB9CgogICAgTXV0ZXggKE0yMzAsIDB4MDApCiAgICBNZXRo
b2QgKE0yMzIsIDMsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWwwID0gQXJnMAog
ICAgICAgIExvY2FsMSA9IEFyZzEKICAgICAgICBMb2NhbDIgPSBBcmcyCiAgICAgICAgTTQ2
MCAoIiAgS0VSLUFTTC1DcG1UcmlnZ2VyU21pICgweCVYLCAweCVYLCAlZClcbiIsIEFyZzAs
IEFyZzEsIEFyZzIsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgQWNxdWlyZSAoTTIzMCwg
MHhGRkZGKQogICAgICAgIExvY2FsMCA9IEFyZzAKICAgICAgICBPcGVyYXRpb25SZWdpb24g
KFZBUk0sIFN5c3RlbUlPLCBNMjMxLCAweDAyKQogICAgICAgIEZpZWxkIChWQVJNLCBCeXRl
QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgVkFSMSwgICA4
LCAKICAgICAgICAgICAgVkFSMiwgICA4CiAgICAgICAgfQoKICAgICAgICBWQVIyID0gTG9j
YWwxCiAgICAgICAgVkFSMSA9IExvY2FsMAogICAgICAgIElmICgoTG9jYWwyID4gMHgwMCkp
CiAgICAgICAgewogICAgICAgICAgICBTbGVlcCAoTG9jYWwyKQogICAgICAgIH0KCiAgICAg
ICAgUmVsZWFzZSAoTTIzMCkKICAgIH0KCiAgICBNZXRob2QgKE0wNDMsIDMsIFNlcmlhbGl6
ZWQpCiAgICB7CiAgICAgICAgSWYgKENvbmRSZWZPZiAoTU9FTSkpCiAgICAgICAgewogICAg
ICAgICAgICBSZXR1cm4gKE1PRU0gKEFyZzAsIEFyZzEsIEFyZzIpKQogICAgICAgIH0KICAg
ICAgICBFbHNlCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAg
fQogICAgfQoKICAgIE1ldGhvZCAoTUxJQiwgMiwgU2VyaWFsaXplZCkKICAgIHsKICAgICAg
ICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMCkpCiAgICAgICAgewogICAgICAgICAgICBDYXNl
ICgweDAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBEZXJlZk9m
IChBcmcxIFsweDAyXSkKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChMb2Nh
bDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDMp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNMjI4ICgw
eDA0KQogICAgICAgICAgICAgICAgICAgICAgICBNMjI4ICgweDA1KQogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA0KQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTIyOCAoMHgwNCkKICAgICAgICAg
ICAgICAgICAgICAgICAgTTIyOCAoMHgwNikKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgQ2FzZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIE0yMjggKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAg
IE0yMjggKDB4MDcpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICB9CgogICAgTWV0aG9kIChNNDU4LCAxLCBO
b3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFRvSW50ZWdlciAoTTQ1MywgTG9jYWwwKQog
ICAgICAgIElmICgoTG9jYWwwID4gMHhGRkZGKSkKICAgICAgICB7CiAgICAgICAgICAgIE9w
ZXJhdGlvblJlZ2lvbiAoVkFSTSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MjApCiAgICAg
ICAgICAgIEZpZWxkIChWQVJNLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBUSFJNLCAgIDgsIAogICAgICAgICAgICAgICAgT2Zm
c2V0ICgweDE0KSwgCiAgICAgICAgICAgICAgICBMU1JNLCAgIDgsIAogICAgICAgICAgICAg
ICAgT2Zmc2V0ICgweDE4KSwgCiAgICAgICAgICAgICAgICBNU1JNLCAgIDgKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgTG9jYWwxID0gMHgwMDFFODQ4MAogICAgICAgICAgICBXaGls
ZSAoKChMb2NhbDEgPiAweDAwKSAmJiAoKExTUk0gJiAweDYwKSAhPSAweDYwKSkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSAtPSAweDAxCiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIElmICgoTTQ1NyAhPSAweDAwKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTG9jYWwyID0gMHgwMDFFODQ4MAogICAgICAgICAgICAgICAgV2hpbGUgKCgo
TG9jYWwyID4gMHgwMCkgJiYgKChNU1JNICYgMHgxMCkgIT0gMHgxMCkpKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMiAtPSAweDAxCiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoTG9jYWwxICE9IDB4MDAp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUSFJNID0gQXJnMAogICAgICAgICAg
ICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIEVs
c2VJZiAoKExvY2FsMCA+IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgQ3JlYXRlV29y
ZEZpZWxkIChNMjg1LCAweDAyLCBNMjg4KQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24g
KFZBUk4sIFN5c3RlbUlPLCBMb2NhbDAsIDB4MDgpCiAgICAgICAgICAgIEZpZWxkIChWQVJO
LCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBUSFJJLCAgIDgsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA1KSwgCiAgICAg
ICAgICAgICAgICBMU1JJLCAgIDgKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwx
ID0gMHgwMDFFODQ4MAogICAgICAgICAgICBJZiAoKFRvSW50ZWdlciAoTTI4OCkgIT0gTG9j
YWwwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgV2hpbGUgKCgoTG9jYWwxID4g
MHgwMCkgJiYgKChMU1JJICYgMHhFMCkgIT0gMHg2MCkpKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIElmICgoTFNSSSA9PSAweEZGKSkKICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE00NTMgPSAweDAwCiAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsMSA9IDB4MDEKICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgIExvY2FsMSAtPSAweDAxCiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoTG9jYWwxICE9IDB4MDApKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBUSFJJID0gQXJnMAogICAgICAgICAgICAgICAgUmV0dXJu
ICgweDAwKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBSZXR1cm4gKDB4RkYp
CiAgICB9CgogICAgTWV0aG9kIChNNDU5LCAyLCBOb3RTZXJpYWxpemVkKQogICAgewogICAg
ICAgIFRvSW50ZWdlciAoTTQ1MywgTG9jYWwwKQogICAgICAgIElmICgoTG9jYWwwID09IDB4
MDApKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuICgweEZGKQogICAgICAgIH0KICAg
ICAgICBFbHNlSWYgKChMb2NhbDAgPiAweEZGRkYpKQogICAgICAgIHsKICAgICAgICAgICAg
T3BlcmF0aW9uUmVnaW9uIChWQVJNLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgyMCkKICAg
ICAgICAgICAgRmllbGQgKFZBUk0sIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIERMTE0sICAgOCwgCiAgICAgICAgICAgICAgICBP
ZmZzZXQgKDB4MDQpLCAKICAgICAgICAgICAgICAgIERMSE0sICAgOCwgCiAgICAgICAgICAg
ICAgICBPZmZzZXQgKDB4MDgpLCAKICAgICAgICAgICAgICAgIEZDUk0sICAgOCwgCiAgICAg
ICAgICAgICAgICBPZmZzZXQgKDB4MEMpLCAKICAgICAgICAgICAgICAgIExDUk0sICAgOCwg
CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTApLCAKICAgICAgICAgICAgICAgIE1DUk0s
ICAgOAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChMQ1JNICYgMHgzRikgIT0g
TTQ1NSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExDUk0gPSAweDgwCiAgICAg
ICAgICAgICAgICBETEhNID0gKE00NTQgPj4gMHgwOCkKICAgICAgICAgICAgICAgIERMTE0g
PSAoTTQ1NCAmIDB4RkYpCiAgICAgICAgICAgICAgICBMQ1JNID0gTTQ1NSAvKiBcTTQ1NSAq
LwogICAgICAgICAgICAgICAgRkNSTSA9IDB4MDAKICAgICAgICAgICAgICAgIEZDUk0gPSBN
NDU2IC8qIFxNNDU2ICovCiAgICAgICAgICAgICAgICBETEhNID0gMHgwMAogICAgICAgICAg
ICAgICAgTUNSTSA9IDB4MDAKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTG9j
YWwwID0gU2l6ZU9mIChBcmcwKQogICAgICAgIFRvSW50ZWdlciAoQXJnMSwgTG9jYWwxKQog
ICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAgICBUb0J1ZmZlciAoQXJnMCwgTG9jYWwzKQog
ICAgICAgIElmICgoTG9jYWwwICE9IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgV2hp
bGUgKCgoTG9jYWwwID4gTG9jYWwxKSAmJiAoTG9jYWwyID09IDB4MDApKSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgTG9jYWwyID0gTTQ1OCAoRGVyZWZPZiAoTG9jYWwzIFtM
b2NhbDFdKSkKICAgICAgICAgICAgICAgIExvY2FsMSArPSAweDAxCiAgICAgICAgICAgIH0K
ICAgICAgICB9CgogICAgICAgIFJldHVybiAoTG9jYWwyKQogICAgfQoKICAgIE1ldGhvZCAo
TTQ2MCwgNywgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBDcmVhdGVXb3JkRmllbGQgKE0y
ODUsIDB4MDIsIE0yODgpCiAgICAgICAgVG9JbnRlZ2VyIChNNDUzLCBMb2NhbDcpCiAgICAg
ICAgSWYgKChMb2NhbDcgPT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4g
KDB4RkYpCiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKExvY2FsNyA+IDB4RkZGRikpCiAg
ICAgICAgewogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZBUk0sIFN5c3RlbU1lbW9y
eSwgTG9jYWw3LCAweDIwKQogICAgICAgICAgICBGaWVsZCAoVkFSTSwgQnl0ZUFjYywgTm9M
b2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRExMTSwgICA4
LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNCksIAogICAgICAgICAgICAgICAgRExI
TSwgICA4LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwOCksIAogICAgICAgICAgICAg
ICAgRkNSTSwgICA4LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwQyksIAogICAgICAg
ICAgICAgICAgTENSTSwgICA4LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMCksIAog
ICAgICAgICAgICAgICAgTUNSTSwgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElm
ICgoKExDUk0gJiAweDNGKSAhPSBNNDU1KSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTENSTSA9IDB4ODAKICAgICAgICAgICAgICAgIERMSE0gPSAoTTQ1NCA+PiAweDA4KQog
ICAgICAgICAgICAgICAgRExMTSA9IChNNDU0ICYgMHhGRikKICAgICAgICAgICAgICAgIExD
Uk0gPSBNNDU1IC8qIFxNNDU1ICovCiAgICAgICAgICAgICAgICBGQ1JNID0gMHgwMAogICAg
ICAgICAgICAgICAgRkNSTSA9IE00NTYgLyogXE00NTYgKi8KICAgICAgICAgICAgICAgIERM
SE0gPSAweDAwCiAgICAgICAgICAgICAgICBNQ1JNID0gMHgwMAogICAgICAgICAgICB9CiAg
ICAgICAgfQogICAgICAgIEVsc2VJZiAoKFRvSW50ZWdlciAoTTI4OCkgPT0gTG9jYWw3KSkK
ICAgICAgICB7CiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSUywgU3lzdGVtSU8s
IExvY2FsNywgMHgwNCkKICAgICAgICAgICAgRmllbGQgKFZBUlMsIERXb3JkQWNjLCBOb0xv
Y2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWQVJULCAgIDMy
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFZBUlQgPSAweDVGNTM1NDUyCiAgICAgICAg
fQoKICAgICAgICBMb2NhbDAgPSBTaXplT2YgKEFyZzApCiAgICAgICAgTG9jYWwxID0gMHgw
MAogICAgICAgIExvY2FsMiA9IDB4MDAKICAgICAgICBMb2NhbDUgPSAweDAxCiAgICAgICAg
VG9CdWZmZXIgKEFyZzAsIExvY2FsMykKICAgICAgICBJZiAoKExvY2FsMCAhPSAweDAwKSkK
ICAgICAgICB7CiAgICAgICAgICAgIFdoaWxlICgoKExvY2FsMCA+IExvY2FsMSkgJiYgKExv
Y2FsMiA9PSAweDAwKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsNCA9
IERlcmVmT2YgKExvY2FsMyBbTG9jYWwxXSkKICAgICAgICAgICAgICAgIElmICgoKExvY2Fs
NCA9PSAweDI1KSAmJiAoMHgwNyA+IExvY2FsNSkpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIElmICgoTG9jYWw1ID09IDB4MDEpKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw2ID0gQXJnMQogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDUgPT0gMHgw
MikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
bDYgPSBBcmcyCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs
c2VJZiAoKExvY2FsNSA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsNiA9IEFyZzMKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgRWxzZUlmICgoTG9jYWw1ID09IDB4MDQpKQogICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw2ID0gQXJnNAogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDUg
PT0gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbDYgPSBBcmc1CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgIEVsc2VJZiAoKExvY2FsNSA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IEFyZzYKICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsNSArPSAweDAxCiAgICAgICAgICAgICAg
ICAgICAgTG9jYWwxICs9IDB4MDEKICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSBEZXJl
Zk9mIChMb2NhbDMgW0xvY2FsMV0pCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw0
ID09IDB4NTgpIHx8IChMb2NhbDQgPT0gMHg3OCkpKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gTTQ1OSAoVG9IZXhTdHJpbmcgKExv
Y2FsNiksIDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IEVsc2VJZiAoKChMb2NhbDQgPT0gMHg0NCkgfHwgKExvY2FsNCA9PSAweDY0KSkpCiAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBNNDU5
IChUb0RlY2ltYWxTdHJpbmcgKExvY2FsNiksIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKChMb2NhbDQgPT0gMHg1MykgfHwgKExv
Y2FsNCA9PSAweDczKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbDIgPSBNNDU5IChMb2NhbDYsIDB4MDApCiAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IE00NTggKDB4MjUpCiAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsNSAtPSAweDAxCiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMSAtPSAweDAxCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgRWxzZUlmICgoTG9jYWw0ID09IDB4MEEpKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IE00NTggKDB4MEQpCiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwyID0gTTQ1OCAoMHgwQSkKICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBMb2NhbDIgPSBNNDU4IChMb2NhbDQpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgTG9jYWwxICs9IDB4MDEKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
SWYgKChUb0ludGVnZXIgKE0yODgpID09IExvY2FsNykpCiAgICAgICAgewogICAgICAgICAg
ICBPcGVyYXRpb25SZWdpb24gKFZBUlUsIFN5c3RlbUlPLCBMb2NhbDcsIDB4MDQpCiAgICAg
ICAgICAgIEZpZWxkIChWQVJVLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgVkFSViwgICAzMgogICAgICAgICAgICB9CgogICAg
ICAgICAgICBWQVJWID0gMHg1RjQ1NEU0NAogICAgICAgIH0KCiAgICAgICAgUmV0dXJuIChM
b2NhbDIpCiAgICB9CgogICAgTmFtZSAoTTQwNCwgQnVmZmVyICgweDA3KQogICAgewogICAg
ICAgICAweDAwLCAweDAyLCAweDA2LCAweDA4LCAweDA0LCAweDBBLCAweDBDICAgICAgICAg
Ly8gLi4uLi4uLgogICAgfSkKICAgIE1ldGhvZCAoTTQwNSwgNSwgU2VyaWFsaXplZCkKICAg
IHsKICAgICAgICBJZiAoKE0wODUgPj0gMHgwNCkpCiAgICAgICAgewogICAgICAgICAgICBJ
ZiAoKE0wODUgPT0gMHgwOCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2Fs
MSA9IERlcmVmT2YgKE00MDQgW0FyZzRdKQogICAgICAgICAgICAgICAgSWYgKCgoQXJnMCA+
IDB4MDApIHx8IChBcmcxID4gMHgwMCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIExvY2FsMCA9IE0yNDkgKEFyZzAsIEFyZzEsIEFyZzIsIDB4MDJEMDFFMDAp
CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID4+PSBMb2NhbDEKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDAgJj0gMHgwMwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IE0w
MTEgKChNMDg0ICsgMHgwRTAwKSwgKExvY2FsMSA+PiAweDA4KSwgKAogICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDEgJiAweDA3KSwgMHgwMikKICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmczID09IDB4MDIpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBNMDExICgoTTA4NCArIDB4MTMwMCks
IChMb2NhbDEgPj4gMHgwOCksICgKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgJiAweDA3
KSwgMHgwMikKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIExvY2FsMCA9IE0wMTEgKChNMDg0ICsgMHgwRTAwKSwgKExvY2Fs
MSA+PiAweDA4KSwgKAogICAgICAgICAgICAgICAgICAgIExvY2FsMSAmIDB4MDcpLCAweDAy
KQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7CiAgICAg
ICAgICAgIExvY2FsMCA9IE0wMTEgKChNMDg0ICsgMHgwRTAwKSwgKEFyZzQgPj4gMHgwMSks
ICgKICAgICAgICAgICAgICAgIChBcmc0ICYgMHgwMSkgPDwgMHgwMiksIDB4MDQpCiAgICAg
ICAgfQoKICAgICAgICBNNDYwICgiICBLRVItQVNMLUNwbVJlYWRDbGtSZXEgICglZCwgJWQs
ICVkLCAlZCwgJWQpID0gMHglWFxuIiwgQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwg
TG9jYWwwKQogICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgfQoKICAgIE1ldGhvZCAoTTQw
NiwgNiwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBNNDYwICgiICBLRVItQVNMLUNwbVdy
aXRlQ2xrUmVxICglZCwgJWQsICVkLCAlZCwgJWQsIDB4JVgpXG4iLCBBcmcwLCBBcmcxLCBB
cmcyLCBBcmczLCBBcmc0LCBBcmc1KQogICAgICAgIElmICgoTTA4NSA+PSAweDA0KSkKICAg
ICAgICB7CiAgICAgICAgICAgIElmICgoTTA4NSA9PSAweDA4KSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTG9jYWwxID0gRGVyZWZPZiAoTTQwNCBbQXJnNF0pCiAgICAgICAg
ICAgICAgICBJZiAoKChBcmcwID4gMHgwMCkgfHwgKEFyZzEgPiAweDAwKSkpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTTI0OSAoQXJnMCwgQXJn
MSwgQXJnMiwgMHgwMkQwMUUwMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgJj0gKDB4
RkZGRkZGRkYgXiAoMHgwMyA8PCBMb2NhbDEpKQogICAgICAgICAgICAgICAgICAgIExvY2Fs
MCB8PSAoQXJnNSA8PCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgTTI1MCAoQXJnMCwg
QXJnMSwgQXJnMiwgMHgwMkQwMUUwMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
IE0wMTIgKChNMDg0ICsgMHgwRTAwKSwgKExvY2FsMSA+PiAweDA4KSwgKExvY2FsMSAmIDB4
MDcKICAgICAgICAgICAgICAgICAgICAgICAgKSwgMHgwMiwgQXJnNSkKICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmczID09IDB4MDIp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNMDEyICgoTTA4NCArIDB4MTMwMCks
IChMb2NhbDEgPj4gMHgwOCksIChMb2NhbDEgJiAweDA3CiAgICAgICAgICAgICAgICAgICAg
KSwgMHgwMiwgQXJnNSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIE0wMTIgKChNMDg0ICsgMHgwRTAwKSwgKExvY2FsMSA+
PiAweDA4KSwgKExvY2FsMSAmIDB4MDcKICAgICAgICAgICAgICAgICAgICApLCAweDAyLCBB
cmc1KQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7CiAg
ICAgICAgICAgIE0wMTIgKChNMDg0ICsgMHgwRTAwKSwgKEFyZzQgPj4gMHgwMSksICgoQXJn
NCAmIAogICAgICAgICAgICAgICAgMHgwMSkgPDwgMHgwMiksIDB4MDQsIEFyZzUpCiAgICAg
ICAgfQogICAgfQoKICAgIE1ldGhvZCAoTTYwMCwgMiwgU2VyaWFsaXplZCkKICAgIHsKICAg
ICAgICBOYW1lIChURU1QLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAg
MHhGRiwgCiAgICAgICAgICAgIDB4MDksIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAg
ICAgWmVybwogICAgICAgIH0pCiAgICAgICAgSWYgKChBcmcwID09IDB4MDApKQogICAgICAg
IHsKICAgICAgICAgICAgVEVNUCBbMHgwMF0gPSAweDAwCiAgICAgICAgfQoKICAgICAgICBJ
ZiAoKEFyZzEgIT0gMHgwOSkpCiAgICAgICAgewogICAgICAgICAgICBURU1QIFsweDAxXSA9
IEFyZzEKICAgICAgICB9CgogICAgICAgIExvY2FsMCA9IERlcmVmT2YgKFRFTVAgWzB4MDBd
KQogICAgICAgIExvY2FsMSA9IERlcmVmT2YgKFRFTVAgWzB4MDFdKQogICAgICAgIExvY2Fs
MiA9IERlcmVmT2YgKFRFTVAgWzB4MDJdKQogICAgICAgIExvY2FsMyA9IERlcmVmT2YgKFRF
TVAgWzB4MDNdKQogICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtR2VuZXJhdGVVUEMgKCkg
UmV0dXJuIFBhY2thZ2UgKDQpIHsweCVYLCAweCVYLCAweCVYLCAweCVYfVxuIiwgTG9jYWww
LCBMb2NhbDEsIExvY2FsMiwgTG9jYWwzLCAweDAwLCAweDAwKQogICAgICAgIFJldHVybiAo
VEVNUCkgLyogXE02MDAuVEVNUCAqLwogICAgfQoKICAgIE1ldGhvZCAoTTYwMSwgNiwgU2Vy
aWFsaXplZCkKICAgIHsKICAgICAgICBOYW1lIChURU1QLCBQYWNrYWdlICgweDAxKQogICAg
ICAgIHsKICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAvKiAwMDAwICovICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8g
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAu
Li4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwgMHhGRiwgMHhGRiwg
MHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgfQog
ICAgICAgIH0pCiAgICAgICAgQ3JlYXRlRmllbGQgKERlcmVmT2YgKFRFTVAgWzB4MDBdKSwg
MHgyMCwgMHgxMCwgV0lESCkKICAgICAgICBDcmVhdGVGaWVsZCAoRGVyZWZPZiAoVEVNUCBb
MHgwMF0pLCAweDMwLCAweDEwLCBISUdUKQogICAgICAgIENyZWF0ZUZpZWxkIChEZXJlZk9m
IChURU1QIFsweDAwXSksIDB4NDAsIDB4MDEsIFZJU0kpCiAgICAgICAgQ3JlYXRlRmllbGQg
KERlcmVmT2YgKFRFTVAgWzB4MDBdKSwgMHg0MiwgMHgwMSwgRkxJRCkKICAgICAgICBDcmVh
dGVGaWVsZCAoRGVyZWZPZiAoVEVNUCBbMHgwMF0pLCAweDQzLCAweDAzLCBQQU5FKQogICAg
ICAgIENyZWF0ZUZpZWxkIChEZXJlZk9mIChURU1QIFsweDAwXSksIDB4NDYsIDB4MDIsIFZU
UFMpCiAgICAgICAgQ3JlYXRlRmllbGQgKERlcmVmT2YgKFRFTVAgWzB4MDBdKSwgMHg0OCwg
MHgwMiwgSFpQUykKICAgICAgICBDcmVhdGVGaWVsZCAoRGVyZWZPZiAoVEVNUCBbMHgwMF0p
LCAweDRBLCAweDA0LCBTSEFQKQogICAgICAgIENyZWF0ZUZpZWxkIChEZXJlZk9mIChURU1Q
IFsweDAwXSksIDB4NEYsIDB4MDgsIEdQVE4pCiAgICAgICAgQ3JlYXRlRmllbGQgKERlcmVm
T2YgKFRFTVAgWzB4MDBdKSwgMHg1NywgMHgwOCwgR1BQUykKICAgICAgICBDcmVhdGVGaWVs
ZCAoRGVyZWZPZiAoVEVNUCBbMHgwMF0pLCAweDYwLCAweDAyLCBFSlRCKQogICAgICAgIENy
ZWF0ZUZpZWxkIChEZXJlZk9mIChURU1QIFsweDAwXSksIDB4NzMsIDB4MDQsIFJPVE4pCiAg
ICAgICAgQ3JlYXRlRmllbGQgKERlcmVmT2YgKFRFTVAgWzB4MDBdKSwgMHg4MCwgMHgyMCwg
T0ZTVCkKICAgICAgICBJZiAoKChBcmcwID09IDB4MDApIHx8IChBcmcwID09IDB4MDIpKSkK
ICAgICAgICB7CiAgICAgICAgICAgIFNIQVAgPSAweDAzCiAgICAgICAgICAgIFdJREggPSAw
eDA4CiAgICAgICAgICAgIEhJR1QgPSAweDBFCiAgICAgICAgfQogICAgICAgIEVsc2VJZiAo
KChBcmcwID09IDB4MDEpIHx8IChBcmcwID09IDB4MDMpKSkKICAgICAgICB7CiAgICAgICAg
ICAgIFNIQVAgPSAweDAxCiAgICAgICAgICAgIFdJREggPSAweDAzCiAgICAgICAgICAgIEhJ
R1QgPSAweDA4CiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gMHgwMikpCiAg
ICAgICAgewogICAgICAgICAgICBTSEFQID0gMHgwMgogICAgICAgICAgICBXSURIID0gMHgw
OAogICAgICAgICAgICBISUdUID0gMHgwOAogICAgICAgICAgICBGTElEID0gMHgwMQogICAg
ICAgIH0KCiAgICAgICAgSWYgKCgoQXJnMCA9PSAweDAyKSB8fCAoQXJnMCA9PSAweDAzKSkp
CiAgICAgICAgewogICAgICAgICAgICBST1ROID0gMHgwMgogICAgICAgIH0KCiAgICAgICAg
VklTSSA9IEFyZzEKICAgICAgICBHUFROID0gKChBcmcyID4+IDB4MDgpICYgMHhGRikKICAg
ICAgICBHUFBTID0gKEFyZzIgJiAweEZGKQogICAgICAgIEVKVEIgPSBBcmczCiAgICAgICAg
UEFORSA9IChBcmc0ICYgMHgwNykKICAgICAgICBWVFBTID0gKChBcmc0ID4+IDB4MDQpICYg
MHgwMykKICAgICAgICBIWlBTID0gKChBcmc0ID4+IDB4MDgpICYgMHgwMykKICAgICAgICBJ
ZiAoKEFyZzUgIT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBPRlNUID0gQXJnNQog
ICAgICAgIH0KCiAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRGVyZWZPZiAoVEVNUCBbMHgw
MF0pLCAweDAwLCBEVzAwKQogICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERlcmVmT2YgKFRF
TVAgWzB4MDBdKSwgMHgwNCwgRFcwMSkKICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEZXJl
Zk9mIChURU1QIFsweDAwXSksIDB4MDgsIERXMDIpCiAgICAgICAgQ3JlYXRlRFdvcmRGaWVs
ZCAoRGVyZWZPZiAoVEVNUCBbMHgwMF0pLCAweDBDLCBEVzAzKQogICAgICAgIENyZWF0ZURX
b3JkRmllbGQgKERlcmVmT2YgKFRFTVAgWzB4MDBdKSwgMHgxMCwgRFcwNCkKICAgICAgICBN
NDYwICgiICBLRVItQVNMLUNwbUdlbmVyYXRlUExEICgpIFJldHVybiAweCVYLCAweCVYLCAw
eCVYLCAweCVYLCAweCVYXG4iLCBEVzAwLCBEVzAxLCBEVzAyLCBEVzAzLCBEVzA0LCAweDAw
KQogICAgICAgIFJldHVybiAoVEVNUCkgLyogXE02MDEuVEVNUCAqLwogICAgfQoKICAgIE1l
dGhvZCAoTTY0MywgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBUb0ludGVnZXIgKEFy
ZzAsIExvY2FsMCkKICAgICAgICBMb2NhbDEgPSAweDAwCiAgICAgICAgSWYgKChMb2NhbDAg
IT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBXaGlsZSAoKChMb2NhbDEgPCAweDIw
KSAmJiAoKExvY2FsMCAmIDB4MDEpID09IDB4MDApKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTG9jYWwwID4+PSAweDAxCiAgICAgICAgICAgICAgICBMb2NhbDEgKz0gMHgw
MQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKExvY2FsMSA+PSAweDIw
KSkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICB9CgogICAg
ICAgIFJldHVybiAoTG9jYWwxKQogICAgfQoKICAgIE1ldGhvZCAoTVBUUywgMSwgTm90U2Vy
aWFsaXplZCkKICAgIHsKICAgICAgICBNNDYwICgiICBLRVItQVNMLU1QVFMgKCVkKVxuIiwg
QXJnMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBNMDAwICgweDBE
RTcpCiAgICAgICAgTG9jYWwwID0gTTA0OSAoTTEyOCwgMHg2NykKICAgICAgICBJZiAoKChM
b2NhbDAgJiAweDAzKSA9PSAweDAzKSkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoTTA4
NSA+PSAweDA4KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP
ZiAoXF9TQi5QQ1hYLkdQWFguU0FYWC5UUFRTKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBNNDYwICgiICAgIEtFUi1BU0wtQ2FsbCBcXF9TQi5QQ1hYLkdQWFgu
U0FYWC5UUFRTICglZClcbiIsIEFyZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ1hYLkdQWFguU0FYWC5UUFRTIChBcmcwKQog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0Iu
UENJMC5QVEJSLlBUU1QuVFBUUykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTTQ2MCAoIiAgICBLRVItQVNMLUNhbGwgWkVST19QT1dSX09ERF9TQVRBX1BBVEgu
VFBUUyAoJWQpXG4iLCBBcmcwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgICAgICAgICAgICAgIFxfU0IuUENJMC5QVEJSLlBUU1QuVFBUUyAoQXJnMCkKICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKENvbmRSZWZP
ZiAoXF9TQi5QQ1hYLlNBWFguVFBUUykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IE00NjAgKCIgICAgS0VSLUFTTC1DYWxsIFxcX1NCLlBDWFguU0FYWC5UUFRTICglZClcbiIs
IEFyZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBc
X1NCLlBDWFguU0FYWC5UUFRTIChBcmcwKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAg
ICAgICBJZiAoKE0yMjYgIT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29u
ZFJlZk9mIChcX1NCLk0yNjMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYw
ICgiICAgIEtFUi1BU0wtQ2FsbCBcXF9TQi5DcG1PdGhlckhvdHBsdWdDYXJkX1BUUyAoJWQp
XG4iLCBBcmcwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAg
ICAgXF9TQi5NMjYzIChBcmcwKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJ
ZiAoKE0zMzEgIT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBNMDQ5
IChNMzMxLCAweDEwKQogICAgICAgICAgICBMb2NhbDEgPSBNMDQ5IChNMzMxLCAweDIxKQog
ICAgICAgICAgICBJZiAoKChMb2NhbDAgIT0gMHgwMCkgJiYgKExvY2FsMSAhPSAweDAwKSkp
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuSVBU
UykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBL
RVItQVNMLUNhbGwgXFxfU0IuSVBUUyAoJWQpXG4iLCBBcmcwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfU0IuSVBUUyAoQXJnMCkKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKChN
NjIwICE9IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gTTA0OSAoTTYy
MCwgMHgxMCkKICAgICAgICAgICAgSWYgKChMb2NhbDAgIT0gMHgwMCkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuQlBUUykpCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBLRVItQVNMLUNhbGwg
XFxfU0IuQlBUUyAoJWQpXG4iLCBBcmcwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgICAgICAgICAgICAgIFxfU0IuQlBUUyAoQXJnMCkKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKChNNEYwICE9IDB4MDAp
KQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuUFRTMCkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCIgICAgS0VSLUFTTC1DYWxsIFxc
X0dQRS5QVFMwICglZClcbiIsIEFyZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAp
CiAgICAgICAgICAgICAgICBcX0dQRS5QVFMwIChBcmcwKQogICAgICAgICAgICB9CgogICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5QVFMxKSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgTTQ2MCAoIiAgICBLRVItQVNMLUNhbGwgXFxfR1BFLlBUUzEgKCVkKVxu
IiwgQXJnMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
IFxfR1BFLlBUUzEgKEFyZzApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChDb25k
UmVmT2YgKFxfR1BFLlBUUzIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYw
ICgiICAgIEtFUi1BU0wtQ2FsbCBcXF9HUEUuUFRTMiAoJWQpXG4iLCBBcmcwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgXF9HUEUuUFRTMiAoQXJn
MCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuUFRT
MykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCIgICAgS0VSLUFTTC1D
YWxsIFxcX0dQRS5QVFMzICglZClcbiIsIEFyZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgICAgICBcX0dQRS5QVFMzIChBcmcwKQogICAgICAgICAgICB9
CiAgICAgICAgfQoKICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLk9QVFMpKQogICAgICAg
IHsKICAgICAgICAgICAgTTQ2MCAoIiAgICBLRVItQVNMLUNhbGwgXFxfU0IuT1BUUyAoJWQp
XG4iLCBBcmcwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBc
X1NCLk9QVFMgKEFyZzApCiAgICAgICAgfQoKICAgICAgICBNMDAwICgweDBERTgpCiAgICB9
CgogICAgTWV0aG9kIChNV0FLLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIE00
NjAgKCIgIEtFUi1BU0wtTVdBSyAoJWQpXG4iLCBBcmcwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwKQogICAgICAgIE0wMDAgKDB4MERFOSkKICAgICAgICBMb2NhbDAgPSBNMDQ5
IChNMTI4LCAweDY3KQogICAgICAgIElmICgoKExvY2FsMCAmIDB4MDMpID09IDB4MDMpKQog
ICAgICAgIHsKICAgICAgICAgICAgSWYgKChNMDg1ID49IDB4MDgpKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDWFguR1BYWC5TQVhYLlRX
QUspKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgICAg
S0VSLUFTTC1DYWxsIFxcX1NCLlBDWFguR1BYWC5TQVhYLlRXQUsgKCVkKVxuIiwgQXJnMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBcX1NC
LlBDWFguR1BYWC5TQVhYLlRXQUsgKEFyZzApCiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQ0kwLlBUQlIuUFRTVC5UV0FLKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAgIEtFUi1BU0wt
Q2FsbCBaRVJPX1BPV1JfT0REX1NBVEFfUEFUSC5UV0FLICglZClcbiIsIEFyZzAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kw
LlBUQlIuUFRTVC5UV0FLIChBcmcwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CiAgICAgICAgICAgIEVsc2VJZiAoQ29uZFJlZk9mIChcX1NCLlBDWFguU0FYWC5UV0FLKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgICBLRVItQVNMLUNhbGwg
XFxfU0IuUENYWC5TQVhYLlRXQUsgKCVkKVxuIiwgQXJnMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFxfU0IuUENYWC5TQVhYLlRXQUsgKEFyZzAp
CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmICgoTTIyNiAhPSAweDAwKSkK
ICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuTTI2NCkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCIgICAgS0VSLUFTTC1DYWxsIFxcX1NC
LkNwbU90aGVySG90cGx1Z0NhcmRfV0FLICglZClcbiIsIEFyZzAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBcX1NCLk0yNjQgKEFyZzApCiAgICAg
ICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmICgoTTI4MCAhPSAweDAwKSkKICAgICAg
ICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuTTI4NCkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIE00NjAgKCIgICAgS0VSLUFTTC1DYWxsIFxcX1NCLkNwbUxv
d1Bvd2VyRXRoZXJuZXRfV0FLICglZClcbiIsIEFyZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDApCiAgICAgICAgICAgICAgICBcX1NCLk0yODQgKEFyZzApCiAgICAgICAgICAg
IH0KICAgICAgICB9CgogICAgICAgIElmICgoTTMzMSAhPSAweDAwKSkKICAgICAgICB7CiAg
ICAgICAgICAgIExvY2FsMCA9IE0wNDkgKE0zMzEsIDB4MTApCiAgICAgICAgICAgIExvY2Fs
MSA9IE0wNDkgKE0zMzEsIDB4MjEpCiAgICAgICAgICAgIElmICgoKExvY2FsMCAhPSAweDAw
KSAmJiAoTG9jYWwxICE9IDB4MDApKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
SWYgKENvbmRSZWZPZiAoXF9TQi5JV0FLKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBNNDYwICgiICAgIEtFUi1BU0wtQ2FsbCBcXF9TQi5JV0FLICglZClcbiIs
IEFyZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAg
ICAgXF9TQi5JV0FLIChBcmcwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg
ICAgICAgfQoKICAgICAgICBJZiAoKE02MjAgIT0gMHgwMCkpCiAgICAgICAgewogICAgICAg
ICAgICBMb2NhbDAgPSBNMDQ5IChNNjIwLCAweDEwKQogICAgICAgICAgICBJZiAoKExvY2Fs
MCAhPSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP
ZiAoXF9TQi5CV0FLKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBN
NDYwICgiICAgIEtFUi1BU0wtQ2FsbCBcXF9TQi5CV0FLICglZClcbiIsIEFyZzAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9TQi5CV0FL
IChBcmcwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAg
ICAgICBJZiAoKE00RjAgIT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29u
ZFJlZk9mIChcX0dQRS5XQUswKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2
MCAoIiAgICBLRVItQVNMLUNhbGwgXFxfR1BFLldBSzAgKCVkKVxuIiwgQXJnMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFxfR1BFLldBSzAgKEFy
ZzApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLldB
SzEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICAgIEtFUi1BU0wt
Q2FsbCBcXF9HUEUuV0FLMSAoJWQpXG4iLCBBcmcwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwKQogICAgICAgICAgICAgICAgXF9HUEUuV0FLMSAoQXJnMCkKICAgICAgICAgICAg
fQoKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuV0FLMikpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIE00NjAgKCIgICAgS0VSLUFTTC1DYWxsIFxcX0dQRS5XQUsy
ICglZClcbiIsIEFyZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgICAgICBcX0dQRS5XQUsyIChBcmcwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoQ29uZFJlZk9mIChcX0dQRS5XQUszKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTTQ2MCAoIiAgICBLRVItQVNMLUNhbGwgXFxfR1BFLldBSzMgKCVkKVxuIiwgQXJnMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFxfR1BFLldB
SzMgKEFyZzApCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmIChDb25kUmVm
T2YgKFxfU0IuT1dBSykpCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiICAgIEtFUi1B
U0wtQ2FsbCBcXF9TQi5PV0FLICglZClcbiIsIEFyZzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDApCiAgICAgICAgICAgIFxfU0IuT1dBSyAoQXJnMCkKICAgICAgICB9CgogICAg
ICAgIE0wMDAgKDB4MERFQSkKICAgIH0KCiAgICBNZXRob2QgKE0wMTksIDQsIFNlcmlhbGl6
ZWQpCiAgICB7CiAgICAgICAgUmV0dXJuIChNMDE3IChBcmcwLCBBcmcxLCBBcmcyLCBBcmcz
LCAweDAwLCAweDIwKSkKICAgIH0KCiAgICBNZXRob2QgKE0wMjAsIDUsIFNlcmlhbGl6ZWQp
CiAgICB7CiAgICAgICAgTTAxOCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgMHgwMCwgMHgy
MCwgQXJnNCkKICAgIH0KCiAgICBNZXRob2QgKE0wMjEsIDQsIFNlcmlhbGl6ZWQpCiAgICB7
CiAgICAgICAgTG9jYWwwID0gKE0wODMgKyAoQXJnMCA8PCAweDE0KSkKICAgICAgICBMb2Nh
bDAgKz0gKEFyZzEgPDwgMHgwRikKICAgICAgICBMb2NhbDAgKz0gKEFyZzIgPDwgMHgwQykK
ICAgICAgICBMb2NhbDAgKz0gMHhFMAogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTSwg
U3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDgpCiAgICAgICAgRmllbGQgKFZBUk0sIERXb3Jk
QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgVkFSMSwgICAz
MgogICAgICAgIH0KCiAgICAgICAgQmFua0ZpZWxkIChWQVJNLCBWQVIxLCBBcmczLCBEV29y
ZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAo
MHgwNCksIAogICAgICAgICAgICBWQVIyLCAgIDMyCiAgICAgICAgfQoKICAgICAgICBMb2Nh
bDAgPSBWQVIyIC8qIFxNMDIxLlZBUjIgKi8KICAgICAgICBNNDYwICgiICBLRVItQVNMLUNw
bVJlYWRQY2llUmVnaXN0ZXIgICgweCVYLCAweCVYLCAweCVYLCAweCVYKSA9IDB4JVhcbiIs
IEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIExvY2FsMCwgMHgwMCkKICAgICAgICBSZXR1cm4g
KExvY2FsMCkKICAgIH0KCiAgICBNZXRob2QgKE0wMjIsIDUsIFNlcmlhbGl6ZWQpCiAgICB7
CiAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DcG1Xcml0ZVBjaWVSZWdpc3RlciAoMHglWCwg
MHglWCwgMHglWCwgMHglWCwgMHglWClcbiIsIEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIEFy
ZzQsIDB4MDApCiAgICAgICAgTG9jYWwwID0gKE0wODMgKyAoQXJnMCA8PCAweDE0KSkKICAg
ICAgICBMb2NhbDAgKz0gKEFyZzEgPDwgMHgwRikKICAgICAgICBMb2NhbDAgKz0gKEFyZzIg
PDwgMHgwQykKICAgICAgICBMb2NhbDAgKz0gMHhFMAogICAgICAgIE9wZXJhdGlvblJlZ2lv
biAoVkFSTSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDgpCiAgICAgICAgRmllbGQgKFZB
Uk0sIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAg
VkFSMSwgICAzMgogICAgICAgIH0KCiAgICAgICAgQmFua0ZpZWxkIChWQVJNLCBWQVIxLCBB
cmczLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAg
IE9mZnNldCAoMHgwNCksIAogICAgICAgICAgICBWQVIyLCAgIDMyCiAgICAgICAgfQoKICAg
ICAgICBWQVIyID0gQXJnNAogICAgfQoKICAgIE1ldGhvZCAoTTAyMywgMywgU2VyaWFsaXpl
ZCkKICAgIHsKICAgICAgICBNMDE4IChBcmcwLCBBcmcxLCBBcmcyLCAweDcwLCAweDAzLCAw
eDAxLCAweDAwKQogICAgICAgIE0wMTggKEFyZzAsIEFyZzEsIEFyZzIsIDB4NzAsIDB4MTMs
IDB4MDEsIDB4MDEpCiAgICB9CgogICAgTWV0aG9kIChNMDI0LCAzLCBTZXJpYWxpemVkKQog
ICAgewogICAgICAgIExvY2FsMCA9IE0wMTkgKEFyZzAsIEFyZzEsIEFyZzIsIDB4MDEyOCkK
ICAgICAgICBJZiAoKExvY2FsMCAmIDB4MDAwMjAwMDApKQogICAgICAgIHsKICAgICAgICAg
ICAgUmV0dXJuIChPbmVzKQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewogICAg
ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoTTAy
NiwgMywgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBMb2NhbDAgPSBNMDIxIChBcmcwLCBB
cmcxLCBBcmcyLCAweEEyKQogICAgICAgIExvY2FsMCAmPSAweEZGRkZGRkZGRkZGRkZGRjgK
ICAgICAgICBMb2NhbDEgPSAoTG9jYWwwID4+IDB4MDQpCiAgICAgICAgTG9jYWwxICY9IDB4
MDcKICAgICAgICBMb2NhbDAgfD0gTG9jYWwxCiAgICAgICAgTG9jYWwwIHw9IDB4MDEwMAog
ICAgICAgIE0wMjIgKEFyZzAsIEFyZzEsIEFyZzIsIDB4QTIsIExvY2FsMCkKICAgIH0KCiAg
ICBNZXRob2QgKE0wMjUsIDQsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTTQyOSAoQXJn
MCwgQXJnMSwgQXJnMiwgMHg2OCwgMHgwNSwgMHgwMSwgMHgwMCkKICAgICAgICBJZiAoQXJn
MykKICAgICAgICB7CiAgICAgICAgICAgIE00MjkgKEFyZzAsIEFyZzEsIEFyZzIsIDB4ODgs
IDB4MDAsIDB4MDQsIEFyZzMpCiAgICAgICAgfQoKICAgICAgICBNNDI5IChBcmcwLCBBcmcx
LCBBcmcyLCAweDY4LCAweDA1LCAweDAxLCAweDAxKQogICAgICAgIExvY2FsMSA9IDB4NjQK
ICAgICAgICBMb2NhbDIgPSAweDAxCiAgICAgICAgV2hpbGUgKChMb2NhbDEgJiYgTG9jYWwy
KSkKICAgICAgICB7CiAgICAgICAgICAgIFNsZWVwICgweDAxKQogICAgICAgICAgICBMb2Nh
bDMgPSBNNDMwIChBcmcwLCBBcmcxLCBBcmcyKQogICAgICAgICAgICBJZiAoKExvY2FsMyAm
IDB4MDgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMS0tCiAgICAg
ICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBMb2NhbDIgPSAweDAwCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE00Mjkg
KEFyZzAsIEFyZzEsIEFyZzIsIDB4NjgsIDB4MDUsIDB4MDEsIDB4MDApCiAgICAgICAgSWYg
KCFMb2NhbDIpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKE9uZXMpCiAgICAgICAg
fQogICAgICAgIEVsc2UKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg
ICAgICB9CiAgICB9CgogICAgTWV0aG9kIChNNDMwLCAzLCBTZXJpYWxpemVkKQogICAgewog
ICAgICAgIExvY2FsMCA9IE0wMTcgKEFyZzAsIEFyZzEsIEFyZzIsIDB4NjgsIDB4MTAsIDB4
MTApCiAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICB9CgogICAgTWV0aG9kIChNMDE3LCA2
LCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9IE02NDUgKEFyZzAsIEFyZzEs
IEFyZzIpCiAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgewogICAgICAg
ICAgICBMb2NhbDMgPSAweDdGRkZGRkZGCiAgICAgICAgICAgIExvY2FsMyB8PSAweDgwMDAw
MDAwCiAgICAgICAgICAgIExvY2FsMSA9ICgoTG9jYWwzID4+IEFyZzQpICYgKExvY2FsMyA+
PiAoMHgyMCAtIEFyZzUpCiAgICAgICAgICAgICAgICApKQogICAgICAgIH0KICAgICAgICBF
bHNlCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDEgPSBNMDEzIChMb2NhbDAsIEFyZzMs
IEFyZzQsIEFyZzUpCiAgICAgICAgfQoKICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgIH0K
CiAgICBNZXRob2QgKE0wMTgsIDcsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWww
ID0gTTY0NSAoQXJnMCwgQXJnMSwgQXJnMikKICAgICAgICBJZiAoKExvY2FsMCAhPSAweDAw
KSkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMyA9IDB4N0ZGRkZGRkYKICAgICAgICAg
ICAgTG9jYWwzIHw9IDB4ODAwMDAwMDAKICAgICAgICAgICAgSWYgKChNMDEzIChMb2NhbDAs
IDB4MDAsIDB4MDAsIDB4MjApICE9IExvY2FsMykpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIE0wMTQgKExvY2FsMCwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNikKICAgICAgICAg
ICAgfQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2QgKE00MjgsIDYsIFNlcmlhbGl6ZWQp
CiAgICB7CiAgICAgICAgTG9jYWwwID0gTTY0NSAoQXJnMCwgQXJnMSwgQXJnMikKICAgICAg
ICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMyA9
IDB4RkYKICAgICAgICAgICAgTG9jYWwxID0gKChMb2NhbDMgPj4gQXJnNCkgJiAoTG9jYWwz
ID4+ICgweDA4IC0gQXJnNSkKICAgICAgICAgICAgICAgICkpCiAgICAgICAgfQogICAgICAg
IEVsc2UKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMSA9IE0wMTEgKExvY2FsMCwgQXJn
MywgQXJnNCwgQXJnNSkKICAgICAgICB9CgogICAgICAgIFJldHVybiAoTG9jYWwxKQogICAg
fQoKICAgIE1ldGhvZCAoTTQyOSwgNywgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBMb2Nh
bDAgPSBNNjQ1IChBcmcwLCBBcmcxLCBBcmcyKQogICAgICAgIElmICgoTG9jYWwwICE9IDB4
MDApKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwzID0gMHg3RkZGRkZGRgogICAgICAg
ICAgICBMb2NhbDMgfD0gMHg4MDAwMDAwMAogICAgICAgICAgICBJZiAoKE0wMTMgKExvY2Fs
MCwgMHgwMCwgMHgwMCwgMHgyMCkgIT0gTG9jYWwzKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTTAxMiAoTG9jYWwwLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2KQogICAgICAg
ICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoTTI2NSwgMywgU2VyaWFsaXpl
ZCkKICAgIHsKICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgTG9jYWwxID0gTTY0NSAo
QXJnMCwgQXJnMSwgQXJnMikKICAgICAgICBMb2NhbDIgPSBNNjQ2IChMb2NhbDEsIDB4MTAp
CiAgICAgICAgSWYgKChMb2NhbDIgIT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBM
b2NhbDMgPSBNMDEzIChMb2NhbDEsIChMb2NhbDIgKyAweDBDKSwgMHgxMiwgMHgwMSkKICAg
ICAgICAgICAgTG9jYWw0ID0gTTAxMyAoTG9jYWwxLCAoTG9jYWwyICsgMHgxMCksIDB4MDgs
IDB4MDEpCiAgICAgICAgICAgIElmICgoKExvY2FsMyA9PSAweDAxKSAmJiAoTG9jYWw0ID09
IDB4MDEpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMQog
ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgIH0K
CiAgICBNZXRob2QgKE0wMzMsIDMsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWww
ID0gMHgwMAogICAgICAgIExvY2FsMSA9IE02NDUgKEFyZzAsIEFyZzEsIEFyZzIpCiAgICAg
ICAgTG9jYWwyID0gTTY0NiAoTG9jYWwxLCAweDEwKQogICAgICAgIElmICgoTG9jYWwyICE9
IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gTTAxMyAoTG9jYWwxLCAo
TG9jYWwyICsgMHgwQyksIDB4MEEsIDB4MDIpCiAgICAgICAgfQoKICAgICAgICBSZXR1cm4g
KExvY2FsMCkKICAgIH0KCiAgICBNZXRob2QgKE0wMjcsIDMsIFNlcmlhbGl6ZWQpCiAgICB7
CiAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgIExvY2FsMSA9IE02NDUgKEFyZzAsIEFy
ZzEsIEFyZzIpCiAgICAgICAgTG9jYWwyID0gTTY0NiAoTG9jYWwxLCAweDEwKQogICAgICAg
IElmICgoTG9jYWwyICE9IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0g
TTAxMyAoTG9jYWwxLCAoTG9jYWwyICsgMHgxMCksIDB4MDAsIDB4MDIpCiAgICAgICAgfQoK
ICAgICAgICBNNDYwICgiICBLRVItQVNMLUNwbUdldFBjaWVBc3BtICgweCVYLCAweCVYLCAw
eCVYKSA9IDB4JVhcbiIsIEFyZzAsIEFyZzEsIEFyZzIsIExvY2FsMCwgMHgwMCwgMHgwMCkK
ICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgIH0KCiAgICBNZXRob2QgKE0wMjgsIDQsIFNl
cmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DcG1TZXRQY2llQXNw
bSAoMHglWCwgMHglWCwgMHglWCwgMHglWClcbiIsIEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMs
IDB4MDAsIDB4MDApCiAgICAgICAgTG9jYWwxID0gTTY0NSAoQXJnMCwgQXJnMSwgQXJnMikK
ICAgICAgICBMb2NhbDIgPSBNNjQ2IChMb2NhbDEsIDB4MTApCiAgICAgICAgSWYgKChMb2Nh
bDIgIT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBNMDE0IChMb2NhbDEsIChMb2Nh
bDIgKyAweDEwKSwgMHgwMCwgMHgwMiwgKEFyZzMgJiAweDAzKSkKICAgICAgICB9CiAgICB9
CgogICAgTWV0aG9kIChNMTE0LCA0LCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2Fs
NyA9IDB4MDAKICAgICAgICBJZiAoIU0wMDEgKEFyZzAsIEFyZzEpKQogICAgICAgIHsKICAg
ICAgICAgICAgTmFtZSAoTTExNSwgQnVmZmVyICgweDA1KSB7fSkKICAgICAgICAgICAgQ3Jl
YXRlV29yZEZpZWxkIChNMTE1LCAweDAwLCBNMTE2KQogICAgICAgICAgICBDcmVhdGVGaWVs
ZCAoTTExNSwgMHgxMCwgMHgwMywgTTExNykKICAgICAgICAgICAgQ3JlYXRlRmllbGQgKE0x
MTUsIDB4MTMsIDB4MDUsIE0xMTgpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTTEx
NSwgMHgwMywgTTExOSkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChNMTE1LCAweDA0
LCBNMTIwKQogICAgICAgICAgICBNMTE2ID0gMHgwNQogICAgICAgICAgICBNMTE5ID0gMHgw
MAogICAgICAgICAgICBNMTE4ID0gQXJnMAogICAgICAgICAgICBNMTE3ID0gQXJnMQogICAg
ICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIElmICgoQXJnMyAhPSAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBNMTIwID0gMHgwMAogICAgICAgICAgICAgICAgICAgIFxfU0IuQUxJQiAoMHgw
NiwgTTExNSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMyAhPSAweDAxKSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNMTIwID0gMHgwMQogICAg
ICAgICAgICAgICAgICAgIFxfU0IuQUxJQiAoMHgwNiwgTTExNSkKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBNMDE3ICgweDAwLCBBcmcwLCBBcmcxLCAw
eDE5LCAweDAwLCAweDA4KQogICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwwICE9IDB4MDAp
ICYmIChMb2NhbDAgIT0gMHhGRikpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIExvY2FsMSA9IE0wMTkgKExvY2FsMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDIgPSAweDdGRkZGRkZGCiAgICAgICAgICAgICAgICAgICAg
TG9jYWwyIHw9IDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDEg
IT0gMHgwMCkgJiYgKExvY2FsMSAhPSBMb2NhbDIpKSkKICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNyA9IDB4MDEKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAg
ICAgRWxzZUlmICgoQXJnMiA9PSAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIE0wMDIg
KDB4MDEsIEFyZzEpCiAgICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7CiAgICAgICAg
ICAgIE0wMDIgKDB4MDAsIEFyZzEpCiAgICAgICAgICAgIExvY2FsMCA9IE0wMTcgKDB4MDAs
IEFyZzAsIEFyZzEsIDB4MTksIDB4MDAsIDB4MDgpCiAgICAgICAgICAgIElmICgoKExvY2Fs
MCAhPSAweDAwKSAmJiAoTG9jYWwwICE9IDB4RkYpKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTG9jYWwxID0gTTAxOSAoTG9jYWwwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgICAgICAgICAgTG9jYWwyID0gMHg3RkZGRkZGRgogICAgICAgICAgICAgICAgTG9jYWwy
IHw9IDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIElmICgoKExvY2FsMSAhPSAweDAwKSAm
JiAoTG9jYWwxICE9IExvY2FsMikpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgIExvY2FsNyA9IDB4MDEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQog
ICAgICAgIH0KCiAgICAgICAgUmV0dXJuIChMb2NhbDcpCiAgICB9CgogICAgTWV0aG9kIChN
MjQ4LCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIElmICgoTTA4NSA9PSAweDA4KSkK
ICAgICAgICB7CiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAwKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgUmV0dXJuIChNMDE3ICgweDAwLCAweDA3LCAweDAxLCAweDE5
LCAweDAwLCAweDA4KSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoTTAxNyAoMHgwMCwgMHgwOCwgMHgwMSwg
MHgxOSwgMHgwMCwgMHgwOCkpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgRWxz
ZUlmICgoTTA4NSA+PSAweDBCKSkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoTTA4NSA+
PSAweDBEKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChNMDE3ICgw
eDAwLCAweDA4LCAoQXJnMCArIDB4MDEpLCAweDE5LCAweDAwLCAweDA4KSkKICAgICAgICAg
ICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcwID09IDB4MDApKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBSZXR1cm4gKE0wMTcgKDB4MDAsIDB4MDcsIDB4MDEsIDB4MTks
IDB4MDAsIDB4MDgpKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChNMDE3ICgweDAwLCAweDA4LCBBcmcwLCAw
eDE5LCAweDAwLCAweDA4KSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBFbHNl
SWYgKChNMDg1ID49IDB4MDkpKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcwID09
IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKE0wMTcgKDB4
MDAsIDB4MDgsIDB4MDEsIDB4MTksIDB4MDAsIDB4MDgpKQogICAgICAgICAgICB9CiAgICAg
ICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChNMDE3
ICgweDAwLCAweDA4LCAweDAyLCAweDE5LCAweDAwLCAweDA4KSkKICAgICAgICAgICAgfQog
ICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4
MDApCiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoTTQwMSwgMywgU2VyaWFsaXplZCkK
ICAgIHsKICAgICAgICBMb2NhbDAgPSAoTTQzMCAoQXJnMCwgQXJnMSwgQXJnMikgJiAweDBG
KQogICAgICAgIElmICgoKExvY2FsMCA9PSAweDBGKSB8fCAoTG9jYWwwID09IDB4MDApKSkK
ICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoMHhGRikKICAgICAgICB9CgogICAgICAg
IElmICgoKE0wODUgPj0gMHgwQikgJiYgKE0wODUgPD0gMHgwQykpKQogICAgICAgIHsKICAg
ICAgICAgICAgSWYgKChBcmcwIDw9IDB4MDMpKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBMb2NhbDMgPSAoMHgwNiAtIEFyZzApCiAgICAgICAgICAgIH0KICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDMgPSAweDA2CiAgICAg
ICAgICAgIH0KICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAgIHsKICAgICAgICAgICAg
TG9jYWwzID0gMHgwMwogICAgICAgIH0KCiAgICAgICAgTG9jYWwzID0gKDB4MTQwMDEwMDAg
KyAoTG9jYWwzIDw8IDB4MTQpKQogICAgICAgIExvY2FsMCA9IChBcmcxICYgMHgxRikKICAg
ICAgICBMb2NhbDAgPSAoKExvY2FsMCA8PCAweDAzKSB8IChBcmcyICYgMHgwNykpCiAgICAg
ICAgTG9jYWwxID0gMHgwMAogICAgICAgIElmICgoKE0wODUgPj0gMHgwOSkgJiYgKE0wODUg
PD0gMHgwQSkpKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwyID0gMHgwOQogICAgICAg
IH0KICAgICAgICBFbHNlSWYgKCgoTTA4NSA+PSAweDBCKSAmJiAoTTA4NSA8PSAweDBDKSkp
CiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIgPSAweDE2CiAgICAgICAgfQogICAgICAg
IEVsc2VJZiAoKE0wODUgPT0gMHgwRCkpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIg
PSAweDBECiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKE0wODUgPT0gMHgwRSkpCiAgICAg
ICAgewogICAgICAgICAgICBMb2NhbDIgPSAweDBBCiAgICAgICAgfQogICAgICAgIEVsc2VJ
ZiAoKE0wODUgPT0gMHgwRikpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIgPSAweDEw
CiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKE0wODUgPT0gMHgxMCkpCiAgICAgICAgewog
ICAgICAgICAgICBMb2NhbDIgPSAweDE1CiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKE0w
ODUgPT0gMHgxMikpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIgPSAweDE0CiAgICAg
ICAgfQogICAgICAgIEVsc2VJZiAoKE0wODUgPT0gMHgxMykpCiAgICAgICAgewogICAgICAg
ICAgICBMb2NhbDIgPSAweDBECiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKE0wODUgPT0g
MHgxNCkpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIgPSAweDEyCiAgICAgICAgfQog
ICAgICAgIEVsc2UKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMiA9IDB4MTIKICAgICAg
ICB9CgogICAgICAgIExvY2FsNCA9IE0yNDkgKDB4MDAsIDB4MDAsIDB4MDAsICgoTG9jYWwx
ICogMHgwNCkgKyBMb2NhbDMKICAgICAgICAgICAgKSkKICAgICAgICBXaGlsZSAoKChMb2Nh
bDEgPCBMb2NhbDIpICYmIChMb2NhbDQgIT0gTG9jYWwwKSkpCiAgICAgICAgewogICAgICAg
ICAgICBMb2NhbDErKwogICAgICAgICAgICBMb2NhbDQgPSBNMjQ5ICgweDAwLCAweDAwLCAw
eDAwLCAoKExvY2FsMSAqIDB4MDQpICsgTG9jYWwzCiAgICAgICAgICAgICAgICApKQogICAg
ICAgIH0KCiAgICAgICAgSWYgKChMb2NhbDEgPD0gTG9jYWwyKSkKICAgICAgICB7CiAgICAg
ICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAg
ewogICAgICAgICAgICBSZXR1cm4gKDB4RkYpCiAgICAgICAgfQogICAgfQoKICAgIE1ldGhv
ZCAoTTQ3MSwgMywgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoKChNMDg1ID49IDB4
MEIpICYmIChNMDg1IDw9IDB4MEMpKSkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoQXJn
MCA8PSAweDAzKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWw1ID0gKDB4
MDQgLSBBcmcwKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTG9jYWw1ID0gMHgwNAogICAgICAgICAgICB9CiAgICAgICAg
fQogICAgICAgIEVsc2UKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsNSA9IChBcmcwICsg
MHgwMSkKICAgICAgICB9CgogICAgICAgIFRvSW50ZWdlciAoQXJnMSwgTG9jYWw0KQogICAg
ICAgIElmICgoKE0wODUgPj0gMHgwRCkgJiYgKE0wODUgPD0gMHgwRSkpKQogICAgICAgIHsK
ICAgICAgICAgICAgSWYgKChMb2NhbDQgPj0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIExvY2FsNCAtPSAweDAzCiAgICAgICAgICAgICAgICBMb2NhbDUgKz0gMHgw
MQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKE0wODUgPT0gMHgw
RikpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKExvY2FsNCA+PSAweDBDKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWw0IC09IDB4MEMKICAgICAgICAgICAgICAg
IExvY2FsNSArPSAweDAzCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoTG9j
YWw0ID09IDB4MEIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDQgLT0g
MHgwQgogICAgICAgICAgICAgICAgTG9jYWw1ICs9IDB4MDIKICAgICAgICAgICAgfQogICAg
ICAgICAgICBFbHNlSWYgKChMb2NhbDQgPj0gMHgwNSkpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIExvY2FsNCAtPSAweDA1CiAgICAgICAgICAgICAgICBMb2NhbDUgKz0gMHgw
MQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKE0wODUgPT0gMHgx
MikpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKExvY2FsNCA+PSAweDEwKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWw0IC09IDB4MTAKICAgICAgICAgICAgICAg
IExvY2FsNSArPSAweDAzCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoTG9j
YWw0ID49IDB4MEMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDQgLT0g
MHgwQwogICAgICAgICAgICAgICAgTG9jYWw1ICs9IDB4MDIKICAgICAgICAgICAgfQogICAg
ICAgICAgICBFbHNlSWYgKChMb2NhbDQgPj0gMHgwNikpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIExvY2FsNCAtPSAweDA2CiAgICAgICAgICAgICAgICBMb2NhbDUgKz0gMHgw
MQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKE0wODUgPT0gMHgx
MCkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKExvY2FsNCA+PSAweDA5KSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWw0IC09IDB4MDkKICAgICAgICAgICAgICAg
IExvY2FsNSArPSAweDAxCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgRWxzZUlm
ICgoTTA4NSA9PSAweDEzKSkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoTG9jYWw0ID49
IDB4MDUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDQgLT0gMHgwNQog
ICAgICAgICAgICAgICAgTG9jYWw1ICs9IDB4MDEKICAgICAgICAgICAgfQogICAgICAgIH0K
ICAgICAgICBFbHNlSWYgKChNMDg1ID09IDB4MTQpKQogICAgICAgIHsKICAgICAgICAgICAg
SWYgKChMb2NhbDQgPj0gMHgwOSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExv
Y2FsNCAtPSAweDA5CiAgICAgICAgICAgICAgICBMb2NhbDUgKz0gMHgwMwogICAgICAgICAg
ICB9CiAgICAgICAgICAgIEVsc2VJZiAoKExvY2FsNCA+PSAweDAzKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgTG9jYWw0IC09IDB4MDMKICAgICAgICAgICAgICAgIExvY2Fs
NSArPSAweDAxCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgRWxzZUlmICgoTG9j
YWw0ID49IDB4MDgpKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWw0IC09IDB4MDgKICAg
ICAgICAgICAgSWYgKCgoTTA4NSA+PSAweDBCKSAmJiAoTTA4NSA8PSAweDBDKSkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsNSArPSAweDA0CiAgICAgICAgICAgIH0K
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDUg
Kz0gMHgwMQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBMb2NhbDYgPSAoMHgx
MTAwMDAwMCArIChMb2NhbDUgPDwgMHgxNCkpCiAgICAgICAgTG9jYWw2ICs9IChBcmcyIDw8
IDB4MTApCiAgICAgICAgSWYgKCgoQXJnMiA9PSAweDAwKSB8fCAoQXJnMiA9PSAweDA0KSkp
CiAgICAgICAgewogICAgICAgICAgICBMb2NhbDYgKz0gKExvY2FsNCA8PCAweDBDKQogICAg
ICAgIH0KCiAgICAgICAgUmV0dXJuIChMb2NhbDYpCiAgICB9CgogICAgTWV0aG9kIChNNDAy
LCAzLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsNCA9IE00MDEgKEFyZzAsIEFy
ZzEsIEFyZzIpCiAgICAgICAgSWYgKChMb2NhbDQgIT0gMHhGRikpCiAgICAgICAgewogICAg
ICAgICAgICBJZiAoKChNMDg1ID49IDB4MDgpICYmIChNMDg1IDw9IDB4MEIpKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWw3ID0gKE00NzEgKEFyZzAsIExvY2FsNCwg
MHgwOCkgKyAweDAxODgpCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBNMjQ5ICgweDAwLCAw
eDAwLCAweDAwLCBMb2NhbDcpCiAgICAgICAgICAgICAgICBMb2NhbDAgJj0gMHhGRkZGREZG
RgogICAgICAgICAgICAgICAgTTI1MCAoMHgwMCwgMHgwMCwgMHgwMCwgTG9jYWw3LCAoTG9j
YWwwIHwgMHgyMDAwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwxID0gKE0w
MTkgKDB4MDAsIDB4MDAsIDB4MDAsIDB4ODQpICYgMHhGRjAwRkNGRikKICAgICAgICAgICAg
TG9jYWwyID0gKChBcmcxIDw8IDB4MTMpIHwgKEFyZzIgPDwgMHgxMCkpCiAgICAgICAgICAg
IExvY2FsMSB8PSBMb2NhbDIKICAgICAgICAgICAgTTAyMCAoMHgwMCwgMHgwMCwgMHgwMCwg
MHg4NCwgKExvY2FsMSB8IDB4MDEwMCkpCiAgICAgICAgICAgIE0wMjAgKDB4MDAsIDB4MDAs
IDB4MDAsIDB4ODQsIChMb2NhbDEgfCAweDAzMDApKQogICAgICAgICAgICBJZiAoKE0wODUg
Pj0gMHgwQykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMyA9IE0wMTkg
KDB4MDAsIDB4MDAsIDB4MDAsIDB4ODQpCiAgICAgICAgICAgICAgICBMb2NhbDUgPSAweDRF
RUEKICAgICAgICAgICAgICAgIExvY2FsNiA9IE00NTMgLyogXE00NTMgKi8KICAgICAgICAg
ICAgICAgIE00NTMgPSAweDAwCiAgICAgICAgICAgICAgICBXaGlsZSAoKChMb2NhbDUgPiAw
eDAwKSAmJiAoKExvY2FsMyAmIDB4MDQwMCkgIT0gMHgwNDAwKSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gKExvY2FsNSAtIDB4MDEpCiAgICAg
ICAgICAgICAgICAgICAgU3RhbGwgKDB4NjMpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgo
TG9jYWw1ICYgMHgwM0ZGKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIE00NTMgPSBMb2NhbDYKICAgICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IE0wMTkgKDB4MDAsIDB4MDAsIDB4MDAs
IDB4ODQpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw1ICYgMHgwM0ZGKSA9PSAw
eDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE00
NTMgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIE00NTMgPSBMb2NhbDYKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TG9jYWw2ID0gKE00NzEgKEFyZzAsIExvY2FsNCwgMHgwNCkgKyAweDAyOTQpCiAgICAgICAg
ICAgIExvY2FsMyA9IE0yNDkgKDB4MDAsIDB4MDAsIDB4MDAsIExvY2FsNikKICAgICAgICAg
ICAgTG9jYWw1ID0gMHg0RUVBCiAgICAgICAgICAgIExvY2FsNCA9IE00NTMgLyogXE00NTMg
Ki8KICAgICAgICAgICAgTTQ1MyA9IDB4MDAKICAgICAgICAgICAgV2hpbGUgKCgoTG9jYWw1
ID4gMHgwMCkgJiYgKChMb2NhbDMgJiAweDNGKSAhPSAweDFGKSkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIExvY2FsNSA9IChMb2NhbDUgLSAweDAxKQogICAgICAgICAgICAg
ICAgU3RhbGwgKDB4NjMpCiAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDUgJiAweDAzRkYp
ID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NTMg
PSBMb2NhbDQKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDMgPSBN
MjQ5ICgweDAwLCAweDAwLCAweDAwLCBMb2NhbDYpCiAgICAgICAgICAgICAgICBJZiAoKChM
b2NhbDUgJiAweDAzRkYpID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIE00NTMgPSAweDAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIE00NTMgPSBMb2NhbDQKICAgICAgICAgICAgTTAyMCAoMHgwMCwgMHgw
MCwgMHgwMCwgMHg4NCwgKExvY2FsMSB8IDB4MDEwMCkpCiAgICAgICAgICAgIElmICgoKE0w
ODUgPj0gMHgwOCkgJiYgKE0wODUgPD0gMHgwQikpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBNMjUwICgweDAwLCAweDAwLCAweDAwLCBMb2NhbDcsIExvY2FsMCkKICAgICAg
ICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2QgKE00MDMsIDQsIFNlcmlhbGl6
ZWQpCiAgICB7CiAgICAgICAgTG9jYWw0ID0gTTQwMSAoQXJnMCwgQXJnMSwgQXJnMikKICAg
ICAgICBJZiAoKExvY2FsNCAhPSAweEZGKSkKICAgICAgICB7CiAgICAgICAgICAgIExvY2Fs
MiA9IChNNDcxIChBcmcwLCBMb2NhbDQsIDB4MDQpICsgMHgwMjgwKQogICAgICAgICAgICBM
b2NhbDAgPSBNMjQ5ICgweDAwLCAweDAwLCAweDAwLCBMb2NhbDIpCiAgICAgICAgICAgIExv
Y2FsMCAmPSAweEZGQkZGRkZGCiAgICAgICAgICAgIExvY2FsMSA9IEFyZzMKICAgICAgICAg
ICAgTG9jYWwwIHw9IChMb2NhbDEgPDwgMHgxNikKICAgICAgICAgICAgTTI1MCAoMHgwMCwg
MHgwMCwgMHgwMCwgTG9jYWwyLCBMb2NhbDApCiAgICAgICAgfQogICAgfQoKICAgIE1ldGhv
ZCAoTTQ3MiwgNCwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBMb2NhbDQgPSBNNDAxIChB
cmcwLCBBcmcxLCBBcmcyKQogICAgICAgIElmICgoTG9jYWw0ICE9IDB4RkYpKQogICAgICAg
IHsKICAgICAgICAgICAgTG9jYWw3ID0gKE00NzEgKEFyZzAsIExvY2FsNCwgMHgwOCkgKyAw
eDA0MjgpCiAgICAgICAgICAgIElmICgoKE0wODUgPj0gMHgwRCkgJiYgKE0wODUgPD0gMHgw
RSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKExvY2FsNCA+PSAweDAz
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDQgLT0gMHgw
MwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAo
KE0wODUgPT0gMHgwRikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoTG9j
YWw0ID49IDB4MDUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExv
Y2FsNCAtPSAweDA1CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAg
ICAgRWxzZUlmICgoTTA4NSA9PSAweDEyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgSWYgKChMb2NhbDQgPj0gMHgwNikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgTG9jYWw0IC09IDB4MDYKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
fQogICAgICAgICAgICBFbHNlSWYgKChNMDg1ID09IDB4MTMpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsNCA+PSAweDA1KSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBMb2NhbDQgLT0gMHgwNQogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKE0wODUgPT0gMHgxMCkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoTG9jYWw0ID49IDB4MDkpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsNCAtPSAweDA5CiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoTTA4NSA9PSAw
eDE0KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChMb2NhbDQgPj0gMHgw
OSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWw0IC09IDB4
MDkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2VJZiAoKExvY2FsNCA+
PSAweDAzKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDQg
LT0gMHgwMwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVs
c2VJZiAoKExvY2FsNCA+PSAweDA4KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
TG9jYWw0IC09IDB4MDgKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwwID0gTTI0
OSAoMHgwMCwgMHgwMCwgMHgwMCwgTG9jYWw3KQogICAgICAgICAgICBMb2NhbDEgPSAoMHgw
MSA8PCBMb2NhbDQpCiAgICAgICAgICAgIExvY2FsMiA9IChBcmczIDw8IExvY2FsNCkKICAg
ICAgICAgICAgSWYgKCgoTG9jYWwwICYgTG9jYWwxKSAhPSBMb2NhbDIpKQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICBMb2NhbDMgPSAoTG9jYWwwICYgKDB4RkZGRkZGRkYgXiBM
b2NhbDEpKQogICAgICAgICAgICAgICAgTTI1MCAoMHgwMCwgMHgwMCwgMHgwMCwgTG9jYWw3
LCAoTG9jYWwzIHwgTG9jYWwyKSkKICAgICAgICAgICAgICAgIExvY2FsMCA9IE0yNDkgKDB4
MDAsIDB4MDAsIDB4MDAsIExvY2FsNykKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0K
CiAgICBNZXRob2QgKE02NDUsIDMsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWwz
ID0gMHgwMAogICAgICAgIExvY2FsMCA9IE0wODMgLyogXE0wODMgKi8KICAgICAgICBMb2Nh
bDEgPSAoTTA4MyA+PiAweDE0KQogICAgICAgIExvY2FsMiA9IChMb2NhbDEgJiAweDBGMDAp
CiAgICAgICAgTG9jYWwyICs9IDB4MDEwMAogICAgICAgIElmICgoKExvY2FsMSArIEFyZzAp
ID49IExvY2FsMikpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKExvY2FsMykKICAg
ICAgICB9CgogICAgICAgIExvY2FsMCArPSAoQXJnMCA8PCAweDE0KQogICAgICAgIExvY2Fs
MCArPSAoQXJnMSA8PCAweDBGKQogICAgICAgIExvY2FsMCArPSAoQXJnMiA8PCAweDBDKQog
ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgfQoKICAgIE1ldGhvZCAoTTY0NiwgMiwgU2Vy
aWFsaXplZCkKICAgIHsKICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgTG9jYWwxID0g
TTA0OSAoQXJnMCwgMHgzNCkKICAgICAgICBXaGlsZSAoKExvY2FsMSAhPSAweDAwKSkKICAg
ICAgICB7CiAgICAgICAgICAgIExvY2FsMiA9IE0wNDkgKEFyZzAsIExvY2FsMSkKICAgICAg
ICAgICAgSWYgKCgoTG9jYWwyID09IDB4MDApIHx8IChMb2NhbDIgPT0gMHhGRikpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICB9CgogICAgICAg
ICAgICBJZiAoKExvY2FsMiA9PSBBcmcxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTG9jYWwwID0gTG9jYWwxCiAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICB9
CgogICAgICAgICAgICBMb2NhbDEgPSBNMDQ5IChBcmcwLCAoTG9jYWwxICsgMHgwMSkpCiAg
ICAgICAgfQoKICAgICAgICBNNDYwICgiICBGRUEtQVNMLUNwbVNlYXJjaFBjaWVDYXBhYmls
aXR5ICgweCVYLCAweCVYKSA9IDB4JVhcbiIsIEFyZzAsIEFyZzEsIExvY2FsMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgIH0KCiAgICBNZXRob2Qg
KE02NDcsIDIsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1D
cG1EdW1wUGNpZVJlZ2lzdGVycyAoMHglWCwgMHglWClcbiIsIEFyZzAsIEFyZzEsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgSWYgKChBcmcwICE9IDB4RUVFRUVFRUUpKQog
ICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gTTA0QiAoQXJnMCwgMHgwMCkKICAgICAg
ICAgICAgTG9jYWwxID0gMHg3RkZGRkZGRgogICAgICAgICAgICBMb2NhbDEgfD0gMHg4MDAw
MDAwMAogICAgICAgICAgICBJZiAoKChMb2NhbDAgIT0gMHgwMCkgJiYgKExvY2FsMCAhPSBM
b2NhbDEpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTTY0NCAoQXJnMCwgMHgw
NCwgQXJnMSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2QgKE02
NDgsIDMsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWwyID0gMHgwMAogICAgICAg
IExvY2FsNSA9IDB4N0ZGRkZGRkYKICAgICAgICBMb2NhbDUgfD0gMHg4MDAwMDAwMAogICAg
ICAgIExvY2FsMCA9IDB4MDAKICAgICAgICBXaGlsZSAoKExvY2FsMCA8PSBBcmcxKSkKICAg
ICAgICB7CiAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAgV2hpbGUgKChM
b2NhbDEgPD0gQXJnMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMyA9
ICgoKEFyZzAgPDwgMHgxNCkgJiAweDBGRjAwMDAwKSB8ICgoTG9jYWwwIDw8IAogICAgICAg
ICAgICAgICAgICAgIDB4MEYpICYgMHgwMDBGODAwMCkpCiAgICAgICAgICAgICAgICBMb2Nh
bDMgfD0gKChMb2NhbDEgPDwgMHgwQykgJiAweDcwMDApCiAgICAgICAgICAgICAgICBMb2Nh
bDQgPSBNMDRCIChNMDgzLCBMb2NhbDMpCiAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDQg
IT0gTG9jYWw1KSAmJiAoTG9jYWw0ICE9IDB4MDApKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBMb2NhbDIgfD0gKDB4MDEgPDwgTG9jYWwwKQogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoTG9jYWwxID09IDB4MDApKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgTG9jYWwxKysKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgTG9jYWwwKysKICAgICAgICB9CgogICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtU2Vh
cmNoUGNpZURldmljZSAoQnVzIDB4JVgpID0gRGV2aWNlIDB4JVggRXhpc3RcbiIsIEFyZzAs
IExvY2FsMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBSZXR1cm4gKExvY2Fs
MikKICAgIH0KCiAgICBNZXRob2QgKE02NDksIDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAg
ICAgTG9jYWwwID0gMHgwMAogICAgICAgIElmICgoQXJnMCAhPSAweEVFRUVFRUVFKSkKICAg
ICAgICB7CiAgICAgICAgICAgIExvY2FsMiA9IE02NDYgKEFyZzAsIDB4MDEpCiAgICAgICAg
ICAgIElmICgoTG9jYWwyICE9IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBMb2NhbDAgPSAoTTA0QSAoQXJnMCwgKExvY2FsMiArIDB4MDQpKSAmIDB4N0ZGRikKICAg
ICAgICAgICAgICAgIExvY2FsMSA9IChMb2NhbDAgJiAweEZGRkMpCiAgICAgICAgICAgICAg
ICBMb2NhbDAgPSBNMDRBIChBcmcwLCAoTG9jYWwyICsgMHgwNCkpCiAgICAgICAgICAgIH0K
ICAgICAgICB9CgogICAgICAgIE00NjAgKCIgIEZFQS1BU0wtQ3BtR2V0UENJZVBvd2VyU3Rh
dGUgKDB4JVgpID0gMHglWFxuIiwgQXJnMCwgTG9jYWwwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgfQoKICAgIE1ldGhvZCAoTTY1MCwg
MiwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgSWYg
KChBcmcwICE9IDB4RUVFRUVFRUUpKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwyID0g
TTY0NiAoQXJnMCwgMHgwMSkKICAgICAgICAgICAgSWYgKChMb2NhbDIgIT0gMHgwMCkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IChNMDRBIChBcmcwLCAoTG9j
YWwyICsgMHgwNCkpICYgMHg3RkZGKQogICAgICAgICAgICAgICAgTG9jYWwxID0gKExvY2Fs
MCAmIDB4RkZGQykKICAgICAgICAgICAgICAgIE0wNEQgKEFyZzAsIChMb2NhbDIgKyAweDA0
KSwgKExvY2FsMSB8IEFyZzEpKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBN
NDYwICgiICBGRUEtQVNMLUNwbVNldFBDSWVQb3dlclN0YXRlICgweCVYLCAweCVYKSA9IDB4
JVhcbiIsIEFyZzAsIEFyZzEsIExvY2FsMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBS
ZXR1cm4gKExvY2FsMCkKICAgIH0KCiAgICBNZXRob2QgKE02NTEsIDQsIFNlcmlhbGl6ZWQp
CiAgICB7CiAgICAgICAgTG9jYWwwID0gTTA0QiAoQXJnMCwgMHgwMCkKICAgICAgICBMb2Nh
bDEgPSAweDdGRkZGRkZGCiAgICAgICAgTG9jYWwxIHw9IDB4ODAwMDAwMDAKICAgICAgICBJ
ZiAoKCgoQXJnMSAhPSAweDAwKSAmJiAoQXJnMCAhPSAweEVFRUVFRUVFKSkgJiYgKAogICAg
ICAgICAgICAoTG9jYWwwICE9IDB4MDApICYmIChMb2NhbDAgIT0gTG9jYWwxKSkpKQogICAg
ICAgIHsKICAgICAgICAgICAgTTA0RSAoQXJnMSwgKEFyZzIgKyAweDAwKSwgTTA0QiAoQXJn
MCwgMHgxOCkpCiAgICAgICAgICAgIE0wNEUgKEFyZzEsIChBcmcyICsgMHgwNCksIE0wNEIg
KEFyZzAsIDB4MUMpKQogICAgICAgICAgICBNMDRFIChBcmcxLCAoQXJnMiArIDB4MDgpLCBN
MDRCIChBcmcwLCAweDIwKSkKICAgICAgICAgICAgTTA0RSAoQXJnMSwgKEFyZzIgKyAweDBD
KSwgTTA0QiAoQXJnMCwgMHgyNCkpCiAgICAgICAgICAgIE0wNEUgKEFyZzEsIChBcmcyICsg
MHgxMCksIE0wNEIgKEFyZzAsIDB4MjgpKQogICAgICAgICAgICBNMDRFIChBcmcxLCAoQXJn
MiArIDB4MTQpLCBNMDRCIChBcmcwLCAweDJDKSkKICAgICAgICAgICAgTTA0RCAoQXJnMSwg
KEFyZzIgKyAweDE4KSwgTTA0QSAoQXJnMCwgMHgwNCkpCiAgICAgICAgICAgIE0wNEMgKEFy
ZzEsIChBcmcyICsgMHgxQSksIE0wNDkgKEFyZzAsIDB4MEMpKQogICAgICAgICAgICBNMDRD
IChBcmcxLCAoQXJnMiArIDB4MUIpLCBNMDQ5IChBcmcwLCAweDNDKSkKICAgICAgICAgICAg
TG9jYWwwID0gKEFyZzAgKyBNNjQ2IChBcmcwLCAweDAxKSkKICAgICAgICAgICAgSWYgKChM
b2NhbDAgIT0gQXJnMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0wNEQgKEFy
ZzEsIChBcmcyICsgMHgxQyksIE0wNEEgKExvY2FsMCwgMHgwNCkpCiAgICAgICAgICAgIH0K
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNMDREIChB
cmcxLCAoQXJnMiArIDB4MUMpLCAweDAwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoKEFyZzMgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2Fs
MCA9IChBcmcwICsgTTY0NiAoQXJnMCwgMHgxNSkpCiAgICAgICAgICAgICAgICBJZiAoKExv
Y2FsMCAhPSBBcmcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBN
MDRFIChBcmcxLCAoQXJnMiArIDB4MjApLCBNMDRCIChMb2NhbDAsIDB4MDgpKQogICAgICAg
ICAgICAgICAgICAgIE0wNEUgKEFyZzEsIChBcmcyICsgMHgyNCksIE0wNEIgKExvY2FsMCwg
MHgwQykpCiAgICAgICAgICAgICAgICAgICAgTTA0RSAoQXJnMSwgKEFyZzIgKyAweDI4KSwg
TTA0QiAoTG9jYWwwLCAweDEwKSkKICAgICAgICAgICAgICAgICAgICBNMDRFIChBcmcxLCAo
QXJnMiArIDB4MkMpLCBNMDRCIChMb2NhbDAsIDB4MTQpKQogICAgICAgICAgICAgICAgICAg
IE0wNEUgKEFyZzEsIChBcmcyICsgMHgzMCksIE0wNEIgKExvY2FsMCwgMHgxOCkpCiAgICAg
ICAgICAgICAgICAgICAgTTA0RSAoQXJnMSwgKEFyZzIgKyAweDM0KSwgTTA0QiAoTG9jYWww
LCAweDFDKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNMDRFIChBcmcxLCAoQXJnMiArIDB4
MjApLCAweDAwKQogICAgICAgICAgICAgICAgICAgIE0wNEUgKEFyZzEsIChBcmcyICsgMHgy
NCksIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTTA0RSAoQXJnMSwgKEFyZzIgKyAweDI4
KSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBNMDRFIChBcmcxLCAoQXJnMiArIDB4MkMp
LCAweDAwKQogICAgICAgICAgICAgICAgICAgIE0wNEUgKEFyZzEsIChBcmcyICsgMHgzMCks
IDB4MDApCiAgICAgICAgICAgICAgICAgICAgTTA0RSAoQXJnMSwgKEFyZzIgKyAweDM0KSwg
MHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAg
ICBFbHNlCiAgICAgICAgewogICAgICAgICAgICBNMDRFIChBcmcxLCAoQXJnMiArIDB4MDAp
LCAweDAwKQogICAgICAgICAgICBNMDRFIChBcmcxLCAoQXJnMiArIDB4MDQpLCAweDAwKQog
ICAgICAgICAgICBNMDRFIChBcmcxLCAoQXJnMiArIDB4MDgpLCAweDAwKQogICAgICAgICAg
ICBNMDRFIChBcmcxLCAoQXJnMiArIDB4MEMpLCAweDAwKQogICAgICAgICAgICBNMDRFIChB
cmcxLCAoQXJnMiArIDB4MTApLCAweDAwKQogICAgICAgICAgICBNMDRFIChBcmcxLCAoQXJn
MiArIDB4MTQpLCAweDAwKQogICAgICAgICAgICBNMDRFIChBcmcxLCAoQXJnMiArIDB4MTgp
LCAweDAwKQogICAgICAgICAgICBNMDRFIChBcmcxLCAoQXJnMiArIDB4MUMpLCAweDAwKQog
ICAgICAgICAgICBJZiAoKEFyZzMgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIE0wNEUgKEFyZzEsIChBcmcyICsgMHgyMCksIDB4MDApCiAgICAgICAgICAgICAg
ICBNMDRFIChBcmcxLCAoQXJnMiArIDB4MjQpLCAweDAwKQogICAgICAgICAgICAgICAgTTA0
RSAoQXJnMSwgKEFyZzIgKyAweDI4KSwgMHgwMCkKICAgICAgICAgICAgICAgIE0wNEUgKEFy
ZzEsIChBcmcyICsgMHgyQyksIDB4MDApCiAgICAgICAgICAgICAgICBNMDRFIChBcmcxLCAo
QXJnMiArIDB4MzApLCAweDAwKQogICAgICAgICAgICAgICAgTTA0RCAoQXJnMSwgKEFyZzIg
KyAweDM0KSwgMHgwMCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTTQ2MCAo
IiAgRkVBLUFTTC1DcG1TYXZlUGNpZUJyaWRnZURhdGEgKDB4JVgsIDB4JVgsIDB4JVgsICVk
KVxuIiwgQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgMHgwMCwgMHgwMCkKICAgIH0KCiAgICBN
dXRleCAoTTQyMSwgMHgwMCkKICAgIE1ldGhvZCAoTTQyMiwgNCwgU2VyaWFsaXplZCkKICAg
IHsKICAgICAgICBMb2NhbDAgPSBNMDQ5IChNMTI4LCAweDgxKQogICAgICAgIElmICgoTG9j
YWwwID09IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuICgweEZGRkZGRkZG
KQogICAgICAgIH0KCiAgICAgICAgTG9jYWwwID0gKE0wODMgKyAoTG9jYWwwIDw8IDB4MTQp
KQogICAgICAgIExvY2FsMCArPSAweEUwCiAgICAgICAgQWNxdWlyZSAoTTQyMSwgMHhGRkZG
KQogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAs
IDB4MDgpCiAgICAgICAgRmllbGQgKFZBUk0sIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZl
KQogICAgICAgIHsKICAgICAgICAgICAgVkFSMSwgICAzMgogICAgICAgIH0KCiAgICAgICAg
QmFua0ZpZWxkIChWQVJNLCBWQVIxLCBBcmczLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2
ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAoMHgwNCksIAogICAgICAgICAgICBW
QVIyLCAgIDMyCiAgICAgICAgfQoKICAgICAgICBMb2NhbDEgPSBWQVIxIC8qIFxNNDIyLlZB
UjEgKi8KICAgICAgICBMb2NhbDIgPSBWQVIyIC8qIFxNNDIyLlZBUjIgKi8KICAgICAgICBW
QVIxID0gTG9jYWwxCiAgICAgICAgUmVsZWFzZSAoTTQyMSkKICAgICAgICBNNDYwICgiICBL
RVItQVNMLUNwbVJlYWRCeGJTbW5SZWdpc3RlciAgKCVkLCAlZCwgJWQsIDB4JVgpID0gMHgl
WFxuIiwgQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgTG9jYWwyLCAweDAwKQogICAgICAgIFJl
dHVybiAoTG9jYWwyKQogICAgfQoKICAgIE1ldGhvZCAoTTQyMywgNSwgU2VyaWFsaXplZCkK
ICAgIHsKICAgICAgICBMb2NhbDAgPSBNMDQ5IChNMTI4LCAweDgxKQogICAgICAgIElmICgo
TG9jYWwwICE9IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFT
TC1DcG1Xcml0ZUJ4YlNtblJlZ2lzdGVyICglZCwgJWQsICVkLCAweCVYLCAweCVYKVxuIiwg
QXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgMHgwMCkKICAgICAgICAgICAgTG9jYWww
ID0gKE0wODMgKyAoTG9jYWwwIDw8IDB4MTQpKQogICAgICAgICAgICBMb2NhbDAgKz0gMHhF
MAogICAgICAgICAgICBBY3F1aXJlIChNNDIxLCAweEZGRkYpCiAgICAgICAgICAgIE9wZXJh
dGlvblJlZ2lvbiAoVkFSTSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDgpCiAgICAgICAg
ICAgIEZpZWxkIChWQVJNLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgVkFSMSwgICAzMgogICAgICAgICAgICB9CgogICAgICAg
ICAgICBCYW5rRmllbGQgKFZBUk0sIFZBUjEsIEFyZzMsIERXb3JkQWNjLCBOb0xvY2ssIFBy
ZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpLCAK
ICAgICAgICAgICAgICAgIFZBUjIsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TG9jYWwxID0gVkFSMSAvKiBcTTQyMy5WQVIxICovCiAgICAgICAgICAgIFZBUjIgPSBBcmc0
CiAgICAgICAgICAgIFZBUjEgPSBMb2NhbDEKICAgICAgICAgICAgUmVsZWFzZSAoTTQyMSkK
ICAgICAgICB9CiAgICB9CgogICAgTXV0ZXggKE0yNTMsIDB4MDApCiAgICBNZXRob2QgKE0y
NDksIDQsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKCgoKEFyZzAgKyBBcmcxKSAr
IEFyZzIpID09IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gMHgwMAog
ICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBN
MjUyIChBcmcwLCBBcmcxLCBBcmcyKQogICAgICAgIH0KCiAgICAgICAgSWYgKChMb2NhbDAg
PT0gMHhGRkZGRkZGRikpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4RkZGRkZG
RkYpCiAgICAgICAgfQoKICAgICAgICBMb2NhbDAgPSAoTTA4MyArIChMb2NhbDAgPDwgMHgx
NCkpCiAgICAgICAgTG9jYWwwICs9IDB4QjgKICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NC
LkFNMDApKQogICAgICAgIHsKICAgICAgICAgICAgQWNxdWlyZSAoXF9TQi5BTTAwLCAweEZG
RkYpCiAgICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7CiAgICAgICAgICAgIEFjcXVp
cmUgKE0yNTMsIDB4RkZGRikKICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo
VkFSTSwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDgpCiAgICAgICAgRmllbGQgKFZBUk0s
IERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgVkFS
MSwgICAzMgogICAgICAgIH0KCiAgICAgICAgQmFua0ZpZWxkIChWQVJNLCBWQVIxLCBBcmcz
LCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9m
ZnNldCAoMHgwNCksIAogICAgICAgICAgICBWQVIyLCAgIDMyCiAgICAgICAgfQoKICAgICAg
ICBMb2NhbDEgPSBWQVIxIC8qIFxNMjQ5LlZBUjEgKi8KICAgICAgICBMb2NhbDIgPSBWQVIy
IC8qIFxNMjQ5LlZBUjIgKi8KICAgICAgICBWQVIxID0gTG9jYWwxCiAgICAgICAgSWYgKENv
bmRSZWZPZiAoXF9TQi5BTTAwKSkKICAgICAgICB7CiAgICAgICAgICAgIFJlbGVhc2UgKFxf
U0IuQU0wMCkKICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAgIHsKICAgICAgICAgICAg
UmVsZWFzZSAoTTI1MykKICAgICAgICB9CgogICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3Bt
UmVhZFNtblJlZ2lzdGVyICAoJWQsICVkLCAlZCwgMHglWCkgPSAweCVYXG4iLCBBcmcwLCBB
cmcxLCBBcmcyLCBBcmczLCBMb2NhbDIsIDB4MDApCiAgICAgICAgUmV0dXJuIChMb2NhbDIp
CiAgICB9CgogICAgTWV0aG9kIChNMjUwLCA1LCBTZXJpYWxpemVkKQogICAgewogICAgICAg
IElmICgoKChBcmcwICsgQXJnMSkgKyBBcmcyKSA9PSAweDAwKSkKICAgICAgICB7CiAgICAg
ICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAgIHsK
ICAgICAgICAgICAgTG9jYWwwID0gTTI1MiAoQXJnMCwgQXJnMSwgQXJnMikKICAgICAgICB9
CgogICAgICAgIElmICgoTG9jYWwwICE9IDB4RkZGRkZGRkYpKQogICAgICAgIHsKICAgICAg
ICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DcG1Xcml0ZVNtblJlZ2lzdGVyICglZCwgJWQsICVk
LCAweCVYLCAweCVYKVxuIiwgQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgMHgwMCkK
ICAgICAgICAgICAgTG9jYWwwID0gKE0wODMgKyAoTG9jYWwwIDw8IDB4MTQpKQogICAgICAg
ICAgICBMb2NhbDAgKz0gMHhCOAogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLkFN
MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBY3F1aXJlIChcX1NCLkFNMDAs
IDB4RkZGRikKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIEFjcXVpcmUgKE0yNTMsIDB4RkZGRikKICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJNLCBTeXN0ZW1NZW1vcnksIExvY2Fs
MCwgMHgwOCkKICAgICAgICAgICAgRmllbGQgKFZBUk0sIERXb3JkQWNjLCBOb0xvY2ssIFBy
ZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWQVIxLCAgIDMyCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIEJhbmtGaWVsZCAoVkFSTSwgVkFSMSwgQXJnMywgRFdv
cmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IE9mZnNldCAoMHgwNCksIAogICAgICAgICAgICAgICAgVkFSMiwgICAzMgogICAgICAgICAg
ICB9CgogICAgICAgICAgICBMb2NhbDEgPSBWQVIxIC8qIFxNMjUwLlZBUjEgKi8KICAgICAg
ICAgICAgVkFSMiA9IEFyZzQKICAgICAgICAgICAgVkFSMSA9IExvY2FsMQogICAgICAgICAg
ICBJZiAoQ29uZFJlZk9mIChcX1NCLkFNMDApKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBSZWxlYXNlIChcX1NCLkFNMDApCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxz
ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZWxlYXNlIChNMjUzKQogICAgICAg
ICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoTTAxMywgNCwgU2VyaWFsaXpl
ZCkKICAgIHsKICAgICAgICBMb2NhbDEgPSBNMDRCIChBcmcwLCBBcmcxKQogICAgICAgIExv
Y2FsNSA9IDB4N0ZGRkZGRkYKICAgICAgICBMb2NhbDUgfD0gMHg4MDAwMDAwMAogICAgICAg
IExvY2FsMiA9ICgoTG9jYWwxID4+IEFyZzIpICYgKExvY2FsNSA+PiAoMHgyMCAtIEFyZzMp
CiAgICAgICAgICAgICkpCiAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DcG1SZWFkTWVtMzIg
ICgweCVYLCAweCVYLCAlZCwgJWQpID0gMHglWFxuIiwgQXJnMCwgQXJnMSwgQXJnMiwgQXJn
MywgTG9jYWwyLCAweDAwKQogICAgICAgIFJldHVybiAoTG9jYWwyKQogICAgfQoKICAgIE1l
dGhvZCAoTTAxNCwgNSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBNNDYwICgiICBLRVIt
QVNMLUNwbVdyaXRlTWVtMzIgKDB4JVgsIDB4JVgsICVkLCAlZCwgMHglWClcbiIsIEFyZzAs
IEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIDB4MDApCiAgICAgICAgTG9jYWwxID0gTTA0QiAo
QXJnMCwgQXJnMSkKICAgICAgICBMb2NhbDUgPSAweDdGRkZGRkZGCiAgICAgICAgTG9jYWw1
IHw9IDB4ODAwMDAwMDAKICAgICAgICBMb2NhbDIgPSAoQXJnMiArIEFyZzMpCiAgICAgICAg
TG9jYWwyID0gKDB4MjAgLSBMb2NhbDIpCiAgICAgICAgTG9jYWwyID0gKCgoTG9jYWw1IDw8
IExvY2FsMikgJiBMb2NhbDUpID4+IExvY2FsMikKICAgICAgICBMb2NhbDIgPSAoKExvY2Fs
MiA+PiBBcmcyKSA8PCBBcmcyKQogICAgICAgIExvY2FsMyA9IChBcmc0IDw8IEFyZzIpCiAg
ICAgICAgTG9jYWw0ID0gKChMb2NhbDEgJiAoTG9jYWw1IF4gTG9jYWwyKSkgfCBMb2NhbDMp
CiAgICAgICAgTTA0RSAoQXJnMCwgQXJnMSwgTG9jYWw0KQogICAgfQoKICAgIE1ldGhvZCAo
TTAxMSwgNCwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBMb2NhbDEgPSBNMDQ5IChBcmcw
LCBBcmcxKQogICAgICAgIExvY2FsMiA9ICgoTG9jYWwxID4+IEFyZzIpICYgKDB4RkYgPj4g
KDB4MDggLSBBcmczKQogICAgICAgICAgICApKQogICAgICAgIE00NjAgKCIgIEtFUi1BU0wt
Q3BtUmVhZE1lbTggICgweCVYLCAweCVYLCAlZCwgJWQpID0gMHglWFxuIiwgQXJnMCwgQXJn
MSwgQXJnMiwgQXJnMywgTG9jYWwyLCAweDAwKQogICAgICAgIFJldHVybiAoTG9jYWwyKQog
ICAgfQoKICAgIE1ldGhvZCAoTTAxMiwgNSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBN
NDYwICgiICBLRVItQVNMLUNwbVdyaXRlTWVtOCAoMHglWCwgMHglWCwgJWQsICVkLCAweCVY
KVxuIiwgQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgMHgwMCkKICAgICAgICBMb2Nh
bDEgPSBNMDQ5IChBcmcwLCBBcmcxKQogICAgICAgIExvY2FsMiA9IChBcmcyICsgQXJnMykK
ICAgICAgICBMb2NhbDIgPSAoMHgwOCAtIExvY2FsMikKICAgICAgICBMb2NhbDIgPSAoKCgw
eEZGIDw8IExvY2FsMikgJiAweEZGKSA+PiBMb2NhbDIpCiAgICAgICAgTG9jYWwyID0gKChM
b2NhbDIgPj4gQXJnMikgPDwgQXJnMikKICAgICAgICBMb2NhbDMgPSAoQXJnNCA8PCBBcmcy
KQogICAgICAgIExvY2FsNCA9ICgoTG9jYWwxICYgKDB4RkYgXiBMb2NhbDIpKSB8IExvY2Fs
MykKICAgICAgICBNMDRDIChBcmcwLCBBcmcxLCBMb2NhbDQpCiAgICB9CgogICAgTWV0aG9k
IChNMjUyLCAzLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIElmICgoTTA4NSA+PSAweDA4
KSkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IE0yNTEgLyogXE0yNTEgKi8KICAg
ICAgICAgICAgSWYgKExvY2FsMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9j
YWwwICs9IDB4MTAKICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDAKICAgICAgICAgICAg
ICAgIExvY2FsMiA9IDB4MDAKICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwyICE9IDB4
RkYpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IE0w
MTEgKChMb2NhbDAgKyBMb2NhbDEpLCAweDAwLCAweDAwLCAweDA4KQogICAgICAgICAgICAg
ICAgICAgIExvY2FsMyA9IE0wMTEgKChMb2NhbDAgKyBMb2NhbDEpLCAweDAxLCAweDAwLCAw
eDA4KQogICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IE0wMTEgKChMb2NhbDAgKyBMb2Nh
bDEpLCAweDAyLCAweDAwLCAweDA4KQogICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IE0w
MTEgKChMb2NhbDAgKyBMb2NhbDEpLCAweDAzLCAweDAwLCAweDA4KQogICAgICAgICAgICAg
ICAgICAgIElmICgoKExvY2FsMiA9PSBBcmcwKSAmJiAoTG9jYWwzID09IEFyZzEpKSkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWw0
ID09IEFyZzIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSZXR1cm4gKExvY2FsNSkKICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxICs9IDB4
MDUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
UmV0dXJuICgweEZGRkZGRkZGKQogICAgfQoKICAgIE1ldGhvZCAoTTYyNCwgMSwgU2VyaWFs
aXplZCkKICAgIHsKICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgSWYgKChNMjUxICE9
IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwxID0gKDB4MTAgKyAoQXJnMCAq
IDB4MDUpKQogICAgICAgICAgICBMb2NhbDAgPSBNMDQ5IChNMjUxLCBMb2NhbDEpCiAgICAg
ICAgICAgIElmICgoTG9jYWwwID09IDB4RkYpKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFJl
dHVybiAoTG9jYWwwKQogICAgfQoKICAgIE1ldGhvZCAoTTA0OSwgMiwgU2VyaWFsaXplZCkK
ICAgIHsKICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgSWYgKChBcmcwICE9IDB4MDAp
KQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gKEFyZzAgKyBBcmcxKQogICAgICAg
ICAgICBPcGVyYXRpb25SZWdpb24gKFZBUk0sIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAx
KQogICAgICAgICAgICBGaWVsZCAoVkFSTSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVkFSUiwgICA4CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIExvY2FsMCA9IFZBUlIgLyogXE0wNDkuVkFSUiAqLwogICAgICAgIH0K
CiAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICB9CgogICAgTWV0aG9kIChNMDRBLCAyLCBT
ZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9IDB4MDAKICAgICAgICBJZiAoKEFy
ZzAgIT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAoQXJnMCArIEFy
ZzEpCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTSwgU3lzdGVtTWVtb3J5LCBM
b2NhbDAsIDB4MDIpCiAgICAgICAgICAgIEZpZWxkIChWQVJNLCBXb3JkQWNjLCBOb0xvY2ss
IFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWQVJSLCAgIDE2CiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIExvY2FsMCA9IFZBUlIgLyogXE0wNEEuVkFSUiAq
LwogICAgICAgIH0KCiAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICB9CgogICAgTWV0aG9k
IChNMDRCLCAyLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9IDB4MDAKICAg
ICAgICBJZiAoKEFyZzAgIT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAg
PSAoQXJnMCArIEFyZzEpCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTSwgU3lz
dGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChWQVJNLCBEV29y
ZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
VkFSUiwgICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBMb2NhbDAgPSBWQVJSIC8q
IFxNMDRCLlZBUlIgKi8KICAgICAgICB9CgogICAgICAgIFJldHVybiAoTG9jYWwwKQogICAg
fQoKICAgIE1ldGhvZCAoTTA0QywgMywgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAo
KEFyZzAgIT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSAoQXJnMCAr
IEFyZzEpCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSTSwgU3lzdGVtTWVtb3J5
LCBMb2NhbDAsIDB4MDEpCiAgICAgICAgICAgIEZpZWxkIChWQVJNLCBCeXRlQWNjLCBOb0xv
Y2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWQVJSLCAgIDgK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgVkFSUiA9IEFyZzIKICAgICAgICB9CiAgICB9
CgogICAgTWV0aG9kIChNMDRELCAzLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIElmICgo
QXJnMCAhPSAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IChBcmcwICsg
QXJnMSkKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJNLCBTeXN0ZW1NZW1vcnks
IExvY2FsMCwgMHgwMikKICAgICAgICAgICAgRmllbGQgKFZBUk0sIFdvcmRBY2MsIE5vTG9j
aywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZBUlIsICAgMTYK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgVkFSUiA9IEFyZzIKICAgICAgICB9CiAgICB9
CgogICAgTWV0aG9kIChNMDRFLCAzLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIElmICgo
QXJnMCAhPSAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IChBcmcwICsg
QXJnMSkKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJNLCBTeXN0ZW1NZW1vcnks
IExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgRmllbGQgKFZBUk0sIERXb3JkQWNjLCBOb0xv
Y2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWQVJSLCAgIDMy
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFZBUlIgPSBBcmcyCiAgICAgICAgfQogICAg
fQoKICAgIE1ldGhvZCAoTTY0NCwgMywgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBNNDYw
ICgiICBGRUEtQVNMLUNwbUR1bXBEYXRhICgweCVYLCAweCVYLCAweCVYKVxuIiwgQXJnMCwg
QXJnMSwgQXJnMiwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBJZiAoKChBcmcxICE9IDB4
MDEpICYmICgoQXJnMSAhPSAweDAyKSAmJiAKICAgICAgICAgICAgKEFyZzEgIT0gMHgwNCkp
KSkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIEFyZzE6IE9uZSBEYXRhIFdpZHRo
IGlzIGlsbGVnYWwiLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgIH0KICAgICAgICBFbHNlSWYgKChBcmcyID4gMHgxMDAwKSkKICAgICAgICB7CiAgICAg
ICAgICAgIE00NjAgKCIgIEFyZzI6IFRvdGFsIERhdGEgU2l6ZSBpcyBpbGxlZ2FsIiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICB9CiAgICAgICAgRWxz
ZQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgICAgICBMb2Nh
bDEgPSBBcmcwCiAgICAgICAgICAgIE00NjAgKCIgIDB4JVg6IiwgTG9jYWwxLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IEFy
ZzIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gMHgwMSkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgJVgiLCBN
MDQ5IChBcmcwLCBMb2NhbDApLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAyKSkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAlWCIsIE0w
NEEgKEFyZzAsIExvY2FsMCksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IDB4MDQpKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgICVYIiwgTTA0
QiAoQXJnMCwgTG9jYWwwKSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDAgKz0gQXJnMQogICAgICAgICAg
ICAgICAgTG9jYWwxID0gKEFyZzAgKyBMb2NhbDApCiAgICAgICAgICAgICAgICBJZiAoKChM
b2NhbDEgJiAweDBGKSA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBNNDYwICgiXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwIDwgQXJnMikpCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNNDYwICgiICAweCVYOiIsIChM
b2NhbDEgJiAweEZGRkZGRkYwKSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAg
ICAgICB9CgogICAgICAgIE00NjAgKCJcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDApCiAgICB9CgogICAgTWV0aG9kIChNNDEyLCAxLCBTZXJpYWxpemVkKQogICAg
ewogICAgICAgIExvY2FsMCA9IChBcmcwID4+IDB4MUYpCiAgICAgICAgTG9jYWwwICY9IDB4
MDEKICAgICAgICBMb2NhbDEgPSAoQXJnMCA+PiAweDE4KQogICAgICAgIExvY2FsMSAmPSAw
eDdGCiAgICAgICAgTG9jYWwzID0gKEFyZzAgPj4gMHgwNCkKICAgICAgICBMb2NhbDMgJj0g
MHgwMwogICAgICAgIExvY2FsNCA9IChBcmcwICYgMHgwNykKICAgICAgICBMb2NhbDUgPSBN
NDA5IChMb2NhbDAsIExvY2FsMSwgTG9jYWwzKQogICAgICAgIExvY2FsNSA+Pj0gTG9jYWw0
CiAgICAgICAgTG9jYWw1ICY9IDB4MDEKICAgICAgICBSZXR1cm4gKExvY2FsNSkKICAgIH0K
CiAgICBNZXRob2QgKE00RTMsIDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWww
ID0gKEFyZzAgPj4gMHgxNSkKICAgICAgICBMb2NhbDAgJj0gMHgwNwogICAgICAgIExvY2Fs
MSA9IChBcmcwID4+IDB4MTgpCiAgICAgICAgTG9jYWwxICY9IDB4N0YKICAgICAgICBMb2Nh
bDMgPSAoQXJnMCA+PiAweDA0KQogICAgICAgIExvY2FsMyAmPSAweDAzCiAgICAgICAgTG9j
YWw0ID0gKEFyZzAgJiAweDA3KQogICAgICAgIExvY2FsNSA9IE00RTEgKExvY2FsMCwgTG9j
YWwxLCBMb2NhbDMpCiAgICAgICAgTG9jYWw1ID4+PSBMb2NhbDQKICAgICAgICBMb2NhbDUg
Jj0gMHgwMQogICAgICAgIFJldHVybiAoTG9jYWw1KQogICAgfQoKICAgIE1ldGhvZCAoTTQx
MywgMiwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBMb2NhbDAgPSAoQXJnMCA+PiAweDFG
KQogICAgICAgIExvY2FsMCAmPSAweDAxCiAgICAgICAgTG9jYWwxID0gKEFyZzAgPj4gMHgx
OCkKICAgICAgICBMb2NhbDEgJj0gMHg3RgogICAgICAgIExvY2FsMiA9IChBcmcwID4+IDB4
MDYpCiAgICAgICAgTG9jYWwyICY9IDB4MDMKICAgICAgICBMb2NhbDMgPSAoQXJnMCA+PiAw
eDA0KQogICAgICAgIExvY2FsMyAmPSAweDAzCiAgICAgICAgTG9jYWw0ID0gKEFyZzAgJiAw
eDA3KQogICAgICAgIExvY2FsNSA9IE00MDkgKExvY2FsMCwgTG9jYWwxLCAoKChMb2NhbDIg
KyAweDAxKSAqIDB4MDEKICAgICAgICAgICAgKSArIExvY2FsMykpCiAgICAgICAgTG9jYWw2
ID0gTG9jYWw1CiAgICAgICAgTG9jYWw1ICY9ICgweEZGRkZGRkZGIF4gKDB4MDEgPDwgTG9j
YWw0KSkKICAgICAgICBMb2NhbDUgfD0gKChBcmcxICYgMHgwMSkgPDwgTG9jYWw0KQogICAg
ICAgIElmICgoTG9jYWw1ICE9IExvY2FsNikpCiAgICAgICAgewogICAgICAgICAgICBNNDEw
IChMb2NhbDAsIExvY2FsMSwgKCgoTG9jYWwyICsgMHgwMSkgKiAweDAxKSArIExvY2FsMwog
ICAgICAgICAgICAgICAgKSwgTG9jYWw1KQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2Qg
KE00RTQsIDIsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWwwID0gKEFyZzAgPj4g
MHgxNSkKICAgICAgICBMb2NhbDAgJj0gMHgwNwogICAgICAgIExvY2FsMSA9IChBcmcwID4+
IDB4MTgpCiAgICAgICAgTG9jYWwxICY9IDB4N0YKICAgICAgICBMb2NhbDIgPSAoQXJnMCA+
PiAweDA2KQogICAgICAgIExvY2FsMiAmPSAweDAzCiAgICAgICAgTG9jYWwzID0gKEFyZzAg
Pj4gMHgwNCkKICAgICAgICBMb2NhbDMgJj0gMHgwMwogICAgICAgIExvY2FsNCA9IChBcmcw
ICYgMHgwNykKICAgICAgICBMb2NhbDUgPSBNNEUxIChMb2NhbDAsIExvY2FsMSwgKCgoTG9j
YWwyICsgMHgwMSkgKiAweDAxCiAgICAgICAgICAgICkgKyBMb2NhbDMpKQogICAgICAgIExv
Y2FsNiA9IExvY2FsNQogICAgICAgIExvY2FsNSAmPSAoMHhGRkZGRkZGRiBeICgweDAxIDw8
IExvY2FsNCkpCiAgICAgICAgTG9jYWw1IHw9ICgoQXJnMSAmIDB4MDEpIDw8IExvY2FsNCkK
ICAgICAgICBJZiAoKExvY2FsNSAhPSBMb2NhbDYpKQogICAgICAgIHsKICAgICAgICAgICAg
TTRFMiAoTG9jYWwwLCBMb2NhbDEsICgoKExvY2FsMiArIDB4MDEpICogMHgwMSkgKyBMb2Nh
bDMKICAgICAgICAgICAgICAgICksIExvY2FsNSkKICAgICAgICB9CiAgICB9CgogICAgTWV0
aG9kIChNNDNBLCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9IDB4MDAK
ICAgICAgICBMb2NhbDEgPSBNMDRCIChNMTI4LCAweDMzKQogICAgICAgIExvY2FsMiA9IE0w
NEIgKE0xMjgsIDB4NzIpCiAgICAgICAgSWYgKCgoTG9jYWwxID09IDB4MDApIHx8IChMb2Nh
bDIgPT0gMHgwMCkpKQogICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1D
cG1HZXRQdEdwaW9NbWlvQWRkcmVzcyAoJWQpICBMb2NhbDEgPSAweCVYICBMb2NhbDIgPSAw
eCVYICBFUlJPUiBFUlJPUiBFUlJPUlxuIiwgQXJnMCwgTG9jYWwxLCBMb2NhbDIsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KCiAg
ICAgICAgTG9jYWwzID0gTTAxMSAoTG9jYWwyLCAweDE5LCAweDAwLCAweDA4KQogICAgICAg
IElmICgoKExvY2FsMyA9PSAweDAwKSB8fCAoTG9jYWwzID09IDB4RkYpKSkKICAgICAgICB7
CiAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtR2V0UHRHcGlvTW1pb0FkZHJlc3Mg
KCVkKSAgTG9jYWwzID0gMHglWCAgRVJST1IgRVJST1IgRVJST1IgLSAxXG4iLCBBcmcwLCBM
b2NhbDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoTG9j
YWwwKQogICAgICAgIH0KCiAgICAgICAgTG9jYWwyID0gKExvY2FsMSArIChMb2NhbDMgPDwg
MHgxNCkpCiAgICAgICAgTG9jYWwzID0gTTAxMyAoTG9jYWwyLCAweDA4LCAweDA4LCAweDE4
KQogICAgICAgIElmICgoTG9jYWwzICE9IDB4MDAwNjA0MDApKQogICAgICAgIHsKICAgICAg
ICAgICAgSWYgKChBcmcwID49IDB4MDgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBNNDYwICgiICBLRVItQVNMLUNwbUdldFB0R3Bpb01taW9BZGRyZXNzICglZCA+PSA4KSAg
Tm90IFBST00yMSAgRVJST1IgRVJST1IgRVJST1JcbiIsIEFyZzAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgTG9jYWwzID0gMHgwMgogICAgICAgICAgICBMb2NhbDIg
Kz0gKExvY2FsMyA8PCAweDBDKQogICAgICAgIH0KICAgICAgICBFbHNlSWYgKChBcmcwID49
IDB4MTgpKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWw0ID0gTTA0OSAoTTEyOCwgMHg5
MykKICAgICAgICAgICAgSWYgKChMb2NhbDQgPT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtR2V0UHRHcGlvTW1pb0FkZHJlc3Mg
KCVkKSAgTG9jYWw0ID0gMHglWCAgRVJST1IgRVJST1IgRVJST1JcbiIsIEFyZzAsIExvY2Fs
NCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFJldHVybiAoTG9j
YWwwKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgTG9jYWw0ICY9IDB4MUYKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
TG9jYWwzID0gTTAxMSAoTG9jYWwyLCAweDE5LCAweDAwLCAweDA4KQogICAgICAgICAgICBJ
ZiAoKChMb2NhbDMgPT0gMHgwMCkgfHwgKExvY2FsMyA9PSAweEZGKSkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtR2V0UHRHcGlvTW1pb0Fk
ZHJlc3MgKCVkKSAgTG9jYWwzID0gMHglWCAgRVJST1IgRVJST1IgRVJST1IgLSAyXG4iLCBB
cmcwLCBMb2NhbDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBS
ZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwyID0gKExv
Y2FsMSArIChMb2NhbDMgPDwgMHgxNCkpCiAgICAgICAgICAgIExvY2FsMiArPSAoTG9jYWw0
IDw8IDB4MEYpCiAgICAgICAgICAgIExvY2FsMyA9IE0wMTEgKExvY2FsMiwgMHgxOSwgMHgw
MCwgMHgwOCkKICAgICAgICAgICAgSWYgKCgoTG9jYWwzID09IDB4MDApIHx8IChMb2NhbDMg
PT0gMHhGRikpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICBLRVIt
QVNMLUNwbUdldFB0R3Bpb01taW9BZGRyZXNzICglZCkgIExvY2FsMyA9IDB4JVggIEVSUk9S
IEVSUk9SIEVSUk9SIC0gM1xuIiwgQXJnMCwgTG9jYWwzLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIExvY2FsMiA9IChMb2NhbDEgKyAoTG9jYWwzIDw8IDB4MTQpKQogICAgICAg
IH0KCiAgICAgICAgTG9jYWwzID0gTTAxMSAoTG9jYWwyLCAweDA0LCAweDAwLCAweDA4KQog
ICAgICAgIElmICgoKExvY2FsMyA9PSAweDAwKSB8fCAoTG9jYWwzID09IDB4RkYpKSkKICAg
ICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtR2V0UHRHcGlvTW1pb0Fk
ZHJlc3MgKCVkKSAgTG9jYWwzID0gMHglWCAgRVJST1IgRVJST1IgRVJST1IgLSA0XG4iLCBB
cmcwLCBMb2NhbDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVy
biAoTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAgSWYgKCgoTG9jYWwzICYgMHgwMikgIT0g
MHgwMikpCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNwbUdldFB0
R3Bpb01taW9BZGRyZXNzICglZCkgIExvY2FsMyA9IDB4JVggIEVSUk9SIEVSUk9SIEVSUk9S
IC0gNVxuIiwgQXJnMCwgTG9jYWwzLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAg
ICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICB9CgogICAgICAgIExvY2FsMyA9IE0wMTMg
KExvY2FsMiwgMHg0MCwgMHgwMCwgMHgyMCkKICAgICAgICBMb2NhbDMgJj0gMHhGRkZGRkZG
QgogICAgICAgIElmICgoKExvY2FsMyA9PSAweDAwKSB8fCAoTG9jYWwzID09IDB4RkZGRkZG
RkIpKSkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtR2V0UHRH
cGlvTW1pb0FkZHJlc3MgKCVkKSAgTG9jYWwzID0gMHglWCAgRVJST1IgRVJST1IgRVJST1Ig
LSA2XG4iLCBBcmcwLCBMb2NhbDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewog
ICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNwbUdldFB0R3Bpb01taW9BZGRyZXNzICgl
ZCkgIExvY2FsMyA9IDB4JVhcbiIsIEFyZzAsIExvY2FsMywgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDMpCiAgICAgICAgfQogICAgfQoKICAg
IE1ldGhvZCAoTTQ0MCwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBMb2NhbDAgPSBN
NDNBIChBcmcwKQogICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgIHsKICAg
ICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DcG1QdFJlYWRHcGlvICAoJWQpID0gJWQgIE1N
SU8gPSAweCVYICBFUlJPUiBFUlJPUiBFUlJPUlxuIiwgQXJnMCwgTG9jYWwwLCBMb2NhbDAs
IDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAg
IH0KCiAgICAgICAgSWYgKChBcmcwID49IDB4MTgpKQogICAgICAgIHsKICAgICAgICAgICAg
TG9jYWwxID0gKEFyZzAgLSAweDE4KQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAg
ewogICAgICAgICAgICBMb2NhbDEgPSBBcmcwCiAgICAgICAgfQoKICAgICAgICBMb2NhbDIg
PSBNMDEzIChMb2NhbDAsIDB4MDAsIExvY2FsMSwgMHgwMSkKICAgICAgICBJZiAoKExvY2Fs
MiA9PSAweDAxKSkKICAgICAgICB7CiAgICAgICAgICAgIE0wMTQgKExvY2FsMCwgMHgwMCwg
TG9jYWwxLCAweDAxLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTG9jYWwyID0gTTAxMyAo
TG9jYWwwLCAweDA0LCBMb2NhbDEsIDB4MDEpCiAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1D
cG1QdFJlYWRHcGlvICAoJWQpID0gJWQgIE1NSU8gPSAweCVYXG4iLCBBcmcwLCBMb2NhbDIs
IExvY2FsMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBSZXR1cm4gKExvY2FsMikKICAg
IH0KCiAgICBNZXRob2QgKE00NDEsIDIsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9j
YWwwID0gTTQzQSAoQXJnMCkKICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAg
ICB7CiAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtUHRXcml0ZUdwaW8gKCVkLCAl
ZCkgICBNTUlPID0gMHglWCAgRVJST1IgRVJST1IgRVJST1JcbiIsIEFyZzAsIEFyZzEsIExv
Y2FsMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAg
ICAgICAgfQoKICAgICAgICBJZiAoKEFyZzAgPj0gMHgxOCkpCiAgICAgICAgewogICAgICAg
ICAgICBMb2NhbDEgPSAoQXJnMCAtIDB4MTgpCiAgICAgICAgfQogICAgICAgIEVsc2UKICAg
ICAgICB7CiAgICAgICAgICAgIExvY2FsMSA9IEFyZzAKICAgICAgICB9CgogICAgICAgIExv
Y2FsMiA9IE0wMTMgKExvY2FsMCwgMHgwMCwgTG9jYWwxLCAweDAxKQogICAgICAgIElmICgo
TG9jYWwyICE9IDB4MDEpKQogICAgICAgIHsKICAgICAgICAgICAgTTAxNCAoTG9jYWwwLCAw
eDAwLCBMb2NhbDEsIDB4MDEsIDB4MDEpCiAgICAgICAgfQoKICAgICAgICBNMDE0IChMb2Nh
bDAsIDB4MDgsIExvY2FsMSwgMHgwMSwgQXJnMSkKICAgICAgICBNNDYwICgiICBLRVItQVNM
LUNwbVB0V3JpdGVHcGlvICglZCwgJWQpICAgTU1JTyA9IDB4JVhcbiIsIEFyZzAsIEFyZzEs
IExvY2FsMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgIH0KCiAgICBNZXRob2QgKE0wMDksIDEs
IFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWwwID0gKEFyZzAgPj4gMHgwOCkKICAg
ICAgICBMb2NhbDAgJj0gMHgwNwogICAgICAgIExvY2FsMSA9IChBcmcwICYgMHhGRikKICAg
ICAgICBMb2NhbDIgPSAweDAwCiAgICAgICAgSWYgKCgoTG9jYWwwID09IDB4MDApIHx8IChM
b2NhbDAgPT0gMHgwMSkpKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChNMDg1ID49IDB4
MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKChBcmcwICYgMHhGODAw
MDAwMCkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
SWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDIgPSBNMDExICgoTTA4NCArIDB4MTUwMiksIChMb2NhbDEg
KiAweDA0KSwgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxKQogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBNMDExICgoTTA4
NCArIDB4MTIwMiksIChMb2NhbDEgKiAweDA0KSwgMHgwMCwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDAxKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDMgPSAoQXJnMCA+PiAweDFGKQogICAgICAgICAgICAgICAgICAgIExv
Y2FsMyAmPSAweDAxCiAgICAgICAgICAgICAgICAgICAgTG9jYWw0ID0gKEFyZzAgPj4gMHgx
RCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDQgJj0gMHgwMwogICAgICAgICAgICAgICAg
ICAgIExvY2FsNSA9IChBcmcwID4+IDB4MUIpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw1
ICY9IDB4MDMKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAg
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNiA9ICgw
eDAyRDAyNTAwICsgKExvY2FsMSAqIDB4MDQpKQogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbDYgPSAoMHgwMkQwMjIwMCArIChMb2NhbDEgKiAweDA0KSkK
ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IE0y
NDkgKExvY2FsMywgTG9jYWw0LCBMb2NhbDUsIExvY2FsNikKICAgICAgICAgICAgICAgICAg
ICBMb2NhbDIgPj49IDB4MTAKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgJj0gMHgwMQog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwyID0gTTAxMSAoKE0wODQgKyAweDAxMDAp
LCBMb2NhbDEsIDB4MDcsIDB4MDEpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAg
RWxzZUlmICgoKExvY2FsMCA9PSAweDA0KSB8fCAoTG9jYWwwID09IDB4MDUpKSkKICAgICAg
ICB7CiAgICAgICAgICAgIExvY2FsMyA9IChBcmcwID4+IDB4MUYpCiAgICAgICAgICAgIExv
Y2FsMyAmPSAweDAxCiAgICAgICAgICAgIExvY2FsNCA9IChBcmcwID4+IDB4MUQpCiAgICAg
ICAgICAgIExvY2FsNCAmPSAweDAzCiAgICAgICAgICAgIExvY2FsNSA9IChBcmcwID4+IDB4
MUIpCiAgICAgICAgICAgIExvY2FsNSAmPSAweDAzCiAgICAgICAgICAgIElmICgoTG9jYWww
ID09IDB4MDQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDYgPSAoMHgw
MkQwMjUwMCArIChMb2NhbDEgKiAweDA0KSkKICAgICAgICAgICAgfQogICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsNiA9ICgweDAyRDAyMjAw
ICsgKExvY2FsMSAqIDB4MDQpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBMb2NhbDIg
PSBNNDIyIChMb2NhbDMsIExvY2FsNCwgTG9jYWw1LCBMb2NhbDYpCiAgICAgICAgICAgIExv
Y2FsMiA+Pj0gMHgxMAogICAgICAgICAgICBMb2NhbDIgJj0gMHgwMQogICAgICAgIH0KICAg
ICAgICBFbHNlSWYgKChMb2NhbDAgPT0gMHgwMikpCiAgICAgICAgewogICAgICAgICAgICBJ
ZiAoKE0wNDkgKE0xMjgsIDB4NzcpID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBMb2NhbDIgPSBNMDM4ICgoTG9jYWwxICsgMHgwOCkpCiAgICAgICAgICAgIH0K
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDIg
PSAweEZGCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgRWxzZUlmICgoTG9jYWww
ID09IDB4MDMpKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwyID0gTTQ0MCAoTG9jYWwx
KQogICAgICAgIH0KICAgICAgICBFbHNlSWYgKChMb2NhbDAgPT0gMHgwNikpCiAgICAgICAg
ewogICAgICAgICAgICBMb2NhbDIgPSBNNDEyIChBcmcwKQogICAgICAgIH0KICAgICAgICBF
bHNlSWYgKChMb2NhbDAgPT0gMHgwNykpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIg
PSBNNEUzIChBcmcwKQogICAgICAgIH0KCiAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DcG1S
ZWFkR3BpbyAgKDB4JVgpID0gMHglWFxuIiwgQXJnMCwgTG9jYWwyLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwKQogICAgICAgIFJldHVybiAoTG9jYWwyKQogICAgfQoKICAgIE1ldGhvZCAo
TTAxMCwgMiwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBMb2NhbDAgPSAoQXJnMCA+PiAw
eDA4KQogICAgICAgIExvY2FsMCAmPSAweDA3CiAgICAgICAgTG9jYWwxID0gKEFyZzAgJiAw
eEZGKQogICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtV3JpdGVHcGlvICgweCVYLCAweCVY
KVxuIiwgQXJnMCwgQXJnMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBJZiAo
KChMb2NhbDAgPT0gMHgwMCkgfHwgKExvY2FsMCA9PSAweDAxKSkpCiAgICAgICAgewogICAg
ICAgICAgICBJZiAoKE0wODUgPj0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIElmICgoKEFyZzAgJiAweEY4MDAwMDAwKSA9PSAweDAwKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE0wMTIgKChNMDg0ICsgMHgx
NTAyKSwgKExvY2FsMSAqIDB4MDQpLCAweDA2LCAweDAyLCAoCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDAyIHwgQXJnMSkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIE0wMTIgKChNMDg0ICsgMHgxMjAyKSwgKExvY2FsMSAqIDB4MDQpLCAweDA2
LCAweDAyLCAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyIHwgQXJnMSkpCiAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
RWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IChB
cmcwID4+IDB4MUYpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwzICY9IDB4MDEKICAgICAg
ICAgICAgICAgICAgICBMb2NhbDQgPSAoQXJnMCA+PiAweDFEKQogICAgICAgICAgICAgICAg
ICAgIExvY2FsNCAmPSAweDAzCiAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gKEFyZzAg
Pj4gMHgxQikKICAgICAgICAgICAgICAgICAgICBMb2NhbDUgJj0gMHgwMwogICAgICAgICAg
ICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw2ID0gKDB4MDJEMDI1MDAgKyAoTG9jYWwx
ICogMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs
c2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
NiA9ICgweDAyRDAyMjAwICsgKExvY2FsMSAqIDB4MDQpKQogICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gTTI0OSAoTG9jYWwzLCBMb2NhbDQs
IExvY2FsNSwgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgIExvY2FsMiAmPSAweENGM0ZG
RkZGCiAgICAgICAgICAgICAgICAgICAgTG9jYWwyIHw9IDB4MDA4MDAwMDAKICAgICAgICAg
ICAgICAgICAgICBMb2NhbDIgfD0gKEFyZzEgPDwgMHgxNikKICAgICAgICAgICAgICAgICAg
ICBNMjUwIChMb2NhbDMsIExvY2FsNCwgTG9jYWw1LCBMb2NhbDYsIExvY2FsMikKICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIE0wMTIgKChNMDg0ICsgMHgwMTAwKSwgTG9jYWwxLCAweDA2
LCAweDAxLCBBcmcxKQogICAgICAgICAgICAgICAgTTAxMiAoKE0wODQgKyAweDAxMDApLCBM
b2NhbDEsIDB4MDUsIDB4MDEsIDB4MDApCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAg
ICAgRWxzZUlmICgoKExvY2FsMCA9PSAweDA0KSB8fCAoTG9jYWwwID09IDB4MDUpKSkKICAg
ICAgICB7CiAgICAgICAgICAgIExvY2FsMyA9IChBcmcwID4+IDB4MUYpCiAgICAgICAgICAg
IExvY2FsMyAmPSAweDAxCiAgICAgICAgICAgIExvY2FsNCA9IChBcmcwID4+IDB4MUQpCiAg
ICAgICAgICAgIExvY2FsNCAmPSAweDAzCiAgICAgICAgICAgIExvY2FsNSA9IChBcmcwID4+
IDB4MUIpCiAgICAgICAgICAgIExvY2FsNSAmPSAweDAzCiAgICAgICAgICAgIElmICgoTG9j
YWwwID09IDB4MDQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDYgPSAo
MHgwMkQwMjUwMCArIChMb2NhbDEgKiAweDA0KSkKICAgICAgICAgICAgfQogICAgICAgICAg
ICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsNiA9ICgweDAyRDAy
MjAwICsgKExvY2FsMSAqIDB4MDQpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBMb2Nh
bDIgPSBNNDIyIChMb2NhbDMsIExvY2FsNCwgTG9jYWw1LCBMb2NhbDYpCiAgICAgICAgICAg
IExvY2FsMiAmPSAweENGM0ZGRkZGCiAgICAgICAgICAgIExvY2FsMiB8PSAweDAwODAwMDAw
CiAgICAgICAgICAgIExvY2FsMiB8PSAoQXJnMSA8PCAweDE2KQogICAgICAgICAgICBNNDIz
IChMb2NhbDMsIExvY2FsNCwgTG9jYWw1LCBMb2NhbDYsIExvY2FsMikKICAgICAgICB9CiAg
ICAgICAgRWxzZUlmICgoTG9jYWwwID09IDB4MDIpKQogICAgICAgIHsKICAgICAgICAgICAg
SWYgKChNMDQ5IChNMTI4LCAweDc3KSA9PSAweDAxKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTTAzOSAoKExvY2FsMSArIDB4MDgpLCBBcmcxKQogICAgICAgICAgICB9CiAg
ICAgICAgfQogICAgICAgIEVsc2VJZiAoKExvY2FsMCA9PSAweDAzKSkKICAgICAgICB7CiAg
ICAgICAgICAgIE00NDEgKExvY2FsMSwgQXJnMSkKICAgICAgICB9CiAgICAgICAgRWxzZUlm
ICgoTG9jYWwwID09IDB4MDYpKQogICAgICAgIHsKICAgICAgICAgICAgTTQxMyAoQXJnMCwg
QXJnMSkKICAgICAgICB9CiAgICAgICAgRWxzZUlmICgoTG9jYWwwID09IDB4MDcpKQogICAg
ICAgIHsKICAgICAgICAgICAgTTRFNCAoQXJnMCwgQXJnMSkKICAgICAgICB9CiAgICB9Cgog
ICAgTmFtZSAoTTAzNywgQnVmZmVyICgweDE3KQogICAgewogICAgICAgIC8qIDAwMDAgKi8g
IDB4N0UsIDB4ODEsIDB4MDMsIDB4MTYsIDB4MDQsIDB4MTUsIDB4MEUsIDB4MDUsICAvLyB+
Li4uLi4uLgogICAgICAgIC8qIDAwMDggKi8gIDB4MDIsIDB4MjAsIDB4MDYsIDB4MDcsIDB4
MTAsIDB4MTEsIDB4MTIsIDB4MTgsICAvLyAuIC4uLi4uLgogICAgICAgIC8qIDAwMTAgKi8g
IDB4MTcsIDB4MTksIDB4MEIsIDB4MDEsIDB4MEYsIDB4MEQsIDB4MDkgICAgICAgICAvLyAu
Li4uLi4uCiAgICB9KQogICAgTmFtZSAoTTIyNywgQnVmZmVyICgweDE4KQogICAgewogICAg
ICAgIC8qIDAwMDAgKi8gIDB4NDEsIDB4NDIsIDB4MDMsIDB4MTYsIDB4MDQsIDB4MTUsIDB4
MEUsIDB4MDUsICAvLyBBQi4uLi4uLgogICAgICAgIC8qIDAwMDggKi8gIDB4MDIsIDB4NDQs
IDB4MDYsIDB4MDcsIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTgsICAvLyAuRC4uLi4uLgogICAg
ICAgIC8qIDAwMTAgKi8gIDB4MTcsIDB4NDUsIDB4MEIsIDB4MDEsIDB4MEYsIDB4MEQsIDB4
MDksIDB4MDggICAvLyAuRS4uLi4uLgogICAgfSkKICAgIE5hbWUgKE0zMjksIEJ1ZmZlciAo
MHgxOCkKICAgIHsKICAgICAgICAvKiAwMDAwICovICAweDU5LCAweDVBLCAweDAzLCAweDE2
LCAweDA0LCAweDE1LCAweDVCLCAweDA1LCAgLy8gWVouLi4uWy4KICAgICAgICAvKiAwMDA4
ICovICAweDAyLCAweDU2LCAweDA2LCAweDRDLCAweDEwLCAweDExLCAweDEyLCAweDE4LCAg
Ly8gLlYuTC4uLi4KICAgICAgICAvKiAwMDEwICovICAweDE3LCAweDgxLCAweDU0LCAweDAx
LCAweDI4LCAweDAwLCAweDA5LCAweDA4ICAgLy8gLi5ULiguLi4KICAgIH0pCiAgICBOYW1l
IChNMzJBLCBCdWZmZXIgKDB4MTgpCiAgICB7CiAgICAgICAgLyogMDAwMCAqLyAgMHg1OSwg
MHg1QSwgMHgwMywgMHgxNiwgMHgwNCwgMHgxNSwgMHg1QiwgMHgwNSwgIC8vIFlaLi4uLlsu
CiAgICAgICAgLyogMDAwOCAqLyAgMHgwMiwgMHg1NiwgMHgwNiwgMHg0QywgMHgxMCwgMHgx
MSwgMHgxRCwgMHgxRSwgIC8vIC5WLkwuLi4uCiAgICAgICAgLyogMDAxMCAqLyAgMHgxNywg
MHg4MSwgMHg1NCwgMHgwMSwgMHgyOCwgMHgwMCwgMHgwOSwgMHgwOCAgIC8vIC4uVC4oLi4u
CiAgICB9KQogICAgTmFtZSAoTTMzMCwgQnVmZmVyICgweDE4KQogICAgewogICAgICAgIC8q
IDAwMDAgKi8gIDB4NTksIDB4NUEsIDB4MDMsIDB4MTYsIDB4MDQsIDB4MTUsIDB4NUIsIDB4
MDUsICAvLyBZWi4uLi5bLgogICAgICAgIC8qIDAwMDggKi8gIDB4MDIsIDB4NTYsIDB4MDYs
IDB4MDcsIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTgsICAvLyAuVi4uLi4uLgogICAgICAgIC8q
IDAwMTAgKi8gIDB4MTcsIDB4ODEsIDB4NTQsIDB4MDEsIDB4MjgsIDB4MDAsIDB4MDksIDB4
MDggICAvLyAuLlQuKC4uLgogICAgfSkKICAgIE5hbWUgKE0zMkIsIEJ1ZmZlciAoMHgxOCkK
ICAgIHsKICAgICAgICAvKiAwMDAwICovICAweDU5LCAweDVBLCAweDAzLCAweDE2LCAweDA0
LCAweDBCLCAweDVCLCAweDA1LCAgLy8gWVouLi4uWy4KICAgICAgICAvKiAwMDA4ICovICAw
eDAyLCAweDFELCAweDA2LCAweDA3LCAweDEwLCAweDExLCAweDEyLCAweDE4LCAgLy8gLi4u
Li4uLi4KICAgICAgICAvKiAwMDEwICovICAweDE3LCAweDIwLCAweDU0LCAweDAxLCAweDI4
LCAweDAwLCAweDA5LCAweDA4ICAgLy8gLiBULiguLi4KICAgIH0pCiAgICBOYW1lIChNMzJD
LCBCdWZmZXIgKDB4MTgpCiAgICB7CiAgICAgICAgLyogMDAwMCAqLyAgMHg1OSwgMHg1QSwg
MHgwMywgMHgxNiwgMHgwNCwgMHgxNSwgMHg1QiwgMHgwNSwgIC8vIFlaLi4uLlsuCiAgICAg
ICAgLyogMDAwOCAqLyAgMHgwMiwgMHg1NiwgMHgwNiwgMHg0QywgMHgxMCwgMHgxMSwgMHgx
RCwgMHgxRSwgIC8vIC5WLkwuLi4uCiAgICAgICAgLyogMDAxMCAqLyAgMHgxNywgMHg4MSwg
MHg1NCwgMHgwMSwgMHgyOCwgMHgwMCwgMHgwOSwgMHgwOCAgIC8vIC4uVC4oLi4uCiAgICB9
KQogICAgTWV0aG9kIChNMDI5LCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIElmICgo
TTA4NSA9PSAweDAyKSkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoTTAxMSAoKE0w
ODQgKyAweDE1MDIpLCAoRGVyZWZPZiAoTTAzNyBbQXJnMF0pICogCiAgICAgICAgICAgICAg
ICAweDA0KSwgMHgwMCwgMHgwMSkpCiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKE0wODUg
PCAweDAyKSkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoTTAxMSAoKE0wODQgKyAw
eDAxNjApLCBBcmcwLCAweDA3LCAweDAxKSkKICAgICAgICB9CiAgICAgICAgRWxzZUlmICgo
KE0wODUgPiAweDAyKSAmJiAoTTA4NSA8IDB4MDgpKSkKICAgICAgICB7CiAgICAgICAgICAg
IFJldHVybiAoTTAxMSAoKE0wODQgKyAweDE1MDIpLCAoRGVyZWZPZiAoTTIyNyBbQXJnMF0p
ICogCiAgICAgICAgICAgICAgICAweDA0KSwgMHgwMCwgMHgwMSkpCiAgICAgICAgfQogICAg
ICAgIEVsc2VJZiAoKE0wODUgPT0gMHgwOCkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1
cm4gKE0wMTEgKChNMDg0ICsgMHgxNTAyKSwgKERlcmVmT2YgKE0zMjkgW0FyZzBdKSAqIAog
ICAgICAgICAgICAgICAgMHgwNCksIDB4MDAsIDB4MDEpKQogICAgICAgIH0KICAgICAgICBF
bHNlSWYgKCgoTTA4NSA9PSAweDA5KSB8fCAoTTA4NSA9PSAweDBBKSkpCiAgICAgICAgewog
ICAgICAgICAgICBSZXR1cm4gKE0wMTEgKChNMDg0ICsgMHgxNTAyKSwgKERlcmVmT2YgKE0z
MzAgW0FyZzBdKSAqIAogICAgICAgICAgICAgICAgMHgwNCksIDB4MDAsIDB4MDEpKQogICAg
ICAgIH0KICAgICAgICBFbHNlSWYgKCgoTTA4NSA9PSAweDBCKSB8fCAoTTA4NSA9PSAweDBD
KSkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKE0wMTEgKChNMDg0ICsgMHgxNTAy
KSwgKERlcmVmT2YgKE0zMkEgW0FyZzBdKSAqIAogICAgICAgICAgICAgICAgMHgwNCksIDB4
MDAsIDB4MDEpKQogICAgICAgIH0KICAgICAgICBFbHNlSWYgKCgoTTA4NSA9PSAweDBEKSB8
fCAoTTA4NSA9PSAweDBFKSkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKE0wMTEg
KChNMDg0ICsgMHgxNTAyKSwgKERlcmVmT2YgKE0zMzAgW0FyZzBdKSAqIAogICAgICAgICAg
ICAgICAgMHgwNCksIDB4MDAsIDB4MDEpKQogICAgICAgIH0KICAgICAgICBFbHNlSWYgKChN
MDg1ID09IDB4MEYpKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChNMDExICgoTTA4
NCArIDB4MTUwMiksIChEZXJlZk9mIChNMzJCIFtBcmcwXSkgKiAKICAgICAgICAgICAgICAg
IDB4MDQpLCAweDAwLCAweDAxKSkKICAgICAgICB9CiAgICAgICAgRWxzZUlmICgoTTA4NSA9
PSAweDEwKSkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoTTAxMSAoKE0wODQgKyAw
eDE1MDIpLCAoRGVyZWZPZiAoTTMyQiBbQXJnMF0pICogCiAgICAgICAgICAgICAgICAweDA0
KSwgMHgwMCwgMHgwMSkpCiAgICAgICAgfQogICAgICAgIEVsc2VJZiAoKE0wODUgPT0gMHgx
MikpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKE0wMTEgKChNMDg0ICsgMHgxNTAy
KSwgKERlcmVmT2YgKE0zMkIgW0FyZzBdKSAqIAogICAgICAgICAgICAgICAgMHgwNCksIDB4
MDAsIDB4MDEpKQogICAgICAgIH0KICAgICAgICBFbHNlSWYgKChNMDg1ID09IDB4MTMpKQog
ICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChNMDExICgoTTA4NCArIDB4MTUwMiksIChE
ZXJlZk9mIChNMzJCIFtBcmcwXSkgKiAKICAgICAgICAgICAgICAgIDB4MDQpLCAweDAwLCAw
eDAxKSkKICAgICAgICB9CiAgICAgICAgRWxzZUlmICgoTTA4NSA9PSAweDE0KSkKICAgICAg
ICB7CiAgICAgICAgICAgIFJldHVybiAoTTAxMSAoKE0wODQgKyAweDE1MDIpLCAoRGVyZWZP
ZiAoTTMyQyBbQXJnMF0pICogCiAgICAgICAgICAgICAgICAweDA0KSwgMHgwMCwgMHgwMSkp
CiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoTTAzMSwgMSwgU2VyaWFsaXplZCkKICAg
IHsKICAgICAgICBMb2NhbDAgPSBNMDExICgoTTA4NCArIDB4MDI0MCksIEFyZzAsIDB4MDAs
IDB4MDUpCiAgICAgICAgUmV0dXJuIChNMDExICgoTTA4NCArIDB4MDIwOCksIChMb2NhbDAg
LyAweDA4KSwgKExvY2FsMCAmIAogICAgICAgICAgICAweDA3KSwgMHgwMSkpCiAgICB9Cgog
ICAgTWV0aG9kIChNMDMyLCAyLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9
IE0wMTEgKChNMDg0ICsgMHgwMjQwKSwgQXJnMCwgMHgwMCwgMHgwNSkKICAgICAgICBNMDEy
ICgoTTA4NCArIDB4MDIwOCksIChMb2NhbDAgLyAweDA4KSwgKExvY2FsMCAmIDB4MDcKICAg
ICAgICAgICAgKSwgMHgwMSwgQXJnMSkKICAgIH0KCiAgICBNZXRob2QgKE00NzcsIDIsIFNl
cmlhbGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKChBcmcxID09IDB4MDApKQogICAgICAgIHsK
ICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgIH0KCiAgICAgICAgT3BlcmF0aW9u
UmVnaW9uIChWQVJNLCBTeXN0ZW1JTywgQXJnMCwgMHgwOSkKICAgICAgICBGaWVsZCAoVkFS
TSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9m
ZnNldCAoMHgwOCksIAogICAgICAgICAgICBTTUI4LCAgIDgKICAgICAgICB9CgogICAgICAg
IExvY2FsMCA9IEFyZzEKICAgICAgICBXaGlsZSAoKExvY2FsMCA+IDB4MDApKQogICAgICAg
IHsKICAgICAgICAgICAgU01COCB8PSAweDQwCiAgICAgICAgICAgIElmICgoTG9jYWwwIDwg
MHgwMEZGRkZGRikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoTG9jYWww
ID4gMHgwNSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWww
ID0gKExvY2FsMCAtIDB4MDUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBF
bHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgw
MAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBTdGFsbCAo
MHgwNSkKICAgICAgICAgICAgTG9jYWwxID0gU01COCAvKiBcTTQ3Ny5TTUI4ICovCiAgICAg
ICAgICAgIElmICgoKExvY2FsMSAmIDB4NTApID09IDB4NDApKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgIH0KICAgICAgICB9Cgog
ICAgICAgIFJldHVybiAoMHgwMSkKICAgIH0KCiAgICBNZXRob2QgKE00NzgsIDEsIFNlcmlh
bGl6ZWQpCiAgICB7CiAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWQVJNLCBTeXN0ZW1JTywg
QXJnMCwgMHgwOSkKICAgICAgICBGaWVsZCAoVkFSTSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVz
ZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAoMHgwOCksIAogICAgICAgICAg
ICBTTUI4LCAgIDgKICAgICAgICB9CgogICAgICAgIFNNQjggfD0gMHg4MAogICAgfQoKICAg
IE1ldGhvZCAoTTQ3OSwgMiwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBPcGVyYXRpb25S
ZWdpb24gKFZBUk0sIFN5c3RlbUlPLCBBcmcwLCAweDAzKQogICAgICAgIEZpZWxkIChWQVJN
LCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgU01C
MCwgICA4LCAKICAgICAgICAgICAgU01CMSwgICA4LCAKICAgICAgICAgICAgU01CMiwgICA4
CiAgICAgICAgfQoKICAgICAgICBMb2NhbDAgPSBBcmcxCiAgICAgICAgV2hpbGUgKChMb2Nh
bDAgPiAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMSA9IDB4NjQKICAgICAg
ICAgICAgTG9jYWwyID0gMHgwMQogICAgICAgICAgICBXaGlsZSAoKChMb2NhbDEgPiAweDAw
KSAmJiAoKExvY2FsMiAmIDB4MDEpICE9IDB4MDApKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgU01CMCA9IDB4MUYKICAgICAgICAgICAgICAgIElmICgoTG9jYWwwIDwgMHgw
MEZGRkZGRikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChM
b2NhbDAgPiAweDA1KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMCA9IChMb2NhbDAgLSAweDA1KQogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwCiAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIExvY2FsMS0tCiAgICAgICAgICAg
ICAgICBTdGFsbCAoMHgwNSkKICAgICAgICAgICAgICAgIExvY2FsMiA9IFNNQjAgLyogXE00
NzkuU01CMCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChMb2NhbDIgJiAw
eDAxKSAhPSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU01CMiA9IDB4
MDIKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmICgo
KFNNQjAgJiAweDAxKSAhPSAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAo
MHgwMSkKICAgICAgICB9CgogICAgICAgIFdoaWxlICgoTG9jYWwwID4gMHgwMCkpCiAgICAg
ICAgewogICAgICAgICAgICBMb2NhbDEgPSAweDY0CiAgICAgICAgICAgIExvY2FsMiA9IDB4
MDEKICAgICAgICAgICAgV2hpbGUgKCgoTG9jYWwxID4gMHgwMCkgJiYgKChMb2NhbDIgJiAw
eDAxKSAhPSAweDAwKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNNQjEgPSAw
eDNGCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA8IDB4MDBGRkZGRkYpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNSkpCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAo
TG9jYWwwIC0gMHgwNSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYWwwID0gMHgwMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBMb2NhbDEtLQogICAgICAgICAgICAgICAgU3RhbGwgKDB4MDUp
CiAgICAgICAgICAgICAgICBMb2NhbDIgPSBTTUIxIC8qIFxNNDc5LlNNQjEgKi8KICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwyICYgMHgwMSkgIT0gMHgwMCkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNNQjEgPSAweDAyCiAgICAgICAgICAgIH0K
ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBCcmVhawog
ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKChTTUIxICYgMHgwMSkgIT0g
MHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgfQoK
ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICB9CgogICAgTXV0ZXggKE00MDgsIDB4MDApCiAg
ICBNZXRob2QgKE00N0EsIDYsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWwwID0g
QnVmZmVyICgweDIyKSB7fQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWwwLCAweDAw
LCBTVEFUKQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWwwLCAweDAxLCBMRU4pCiAg
ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChMb2NhbDAsIDB4MDIsIERBVEIpCiAgICAgICAgQ3Jl
YXRlV29yZEZpZWxkIChMb2NhbDAsIDB4MDIsIERBVFcpCiAgICAgICAgQ3JlYXRlRmllbGQg
KExvY2FsMCwgMHgxMCwgMHgwMTAwLCBEVEJGKQogICAgICAgIFNUQVQgPSAweEZGCiAgICAg
ICAgTEVOID0gMHgwMAogICAgICAgIERUQkYgPSAweDAwCiAgICAgICAgTTAwMCAoMHgwREU1
KQogICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtU21idXNFeGVjdXRvciAoUG9ydCVkLCBp
c1JlYWQgJWQsIFBvdGNsICVkLCBEZXZBZGRyIDB4JVgsIENtZCAweCVYKVxuIiwgQXJnMCwg
QXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgMHgwMCkKICAgICAgICBMb2NhbDEgPSBNMDQ5IChN
MTI4LCAweDk0KQogICAgICAgIElmICgoKChBcmcwICE9IDB4MDApICYmIChBcmcwICE9IDB4
MDEpKSB8fCAoCiAgICAgICAgICAgIExvY2FsMSA9PSAweDAxKSkpCiAgICAgICAgewogICAg
ICAgICAgICBTVEFUID0gMHg4MAogICAgICAgICAgICBNNDU5ICgiICBLRVItQVNMLUNwbVNt
YnVzRXhlY3V0b3IgcmV0dXJuIDB4ODBcbiIsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAo
TG9jYWwwKQogICAgICAgIH0KCiAgICAgICAgSWYgKCgoQXJnMSAhPSAweDAwKSAmJiAoQXJn
MSAhPSAweDAxKSkpCiAgICAgICAgewogICAgICAgICAgICBTVEFUID0gMHg4MQogICAgICAg
ICAgICBNNDU5ICgiICBLRVItQVNMLUNwbVNtYnVzRXhlY3V0b3IgcmV0dXJuIDB4ODFcbiIs
IDB4MDApCiAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAg
TmFtZSAoVkFMUCwgUGFja2FnZSAoMHgwNSkKICAgICAgICB7CiAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgIDB4
MDMsIAogICAgICAgICAgICAweDA1CiAgICAgICAgfSkKICAgICAgICBJZiAoKE1hdGNoIChW
QUxQLCBNRVEsIEFyZzIsIE1UUiwgMHgwMCwgMHgwMCkgPT0gT25lcykpCiAgICAgICAgewog
ICAgICAgICAgICBTVEFUID0gMHg4MgogICAgICAgICAgICBNNDU5ICgiICBLRVItQVNMLUNw
bVNtYnVzRXhlY3V0b3IgcmV0dXJuIDB4ODJcbiIsIDB4MDApCiAgICAgICAgICAgIFJldHVy
biAoTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAgSWYgKCgoQXJnMSA9PSAweDAwKSAmJiAo
QXJnMiA9PSAweDA1KSkpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDcgPSBBcmc1CiAg
ICAgICAgICAgIExvY2FsMiA9IERlcmVmT2YgKExvY2FsNyBbMHgwMF0pCiAgICAgICAgICAg
IElmICgoKExvY2FsMiA8IDB4MDEpIHx8IChMb2NhbDIgPiAweDIwKSkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIFNUQVQgPSAweDgzCiAgICAgICAgICAgICAgICBNNDYwICgi
ICBLRVItQVNMLUNwbVNtYnVzRXhlY3V0b3IgcmV0dXJuIDB4ODMsIExlbmd0aCAlZFxuIiwg
TG9jYWwyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAg
UmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIEFjcXVp
cmUgKE00MDgsIDB4RkZGRikKICAgICAgICBMb2NhbDQgPSAoTTQxNCArIChBcmcwIDw8IDB4
MDUpKQogICAgICAgIElmICgoTG9jYWw0ID09IDB4MDApKQogICAgICAgIHsKICAgICAgICAg
ICAgUmVsZWFzZSAoTTQwOCkKICAgICAgICAgICAgU1RBVCA9IDB4ODQKICAgICAgICAgICAg
TTQ2MCAoIiAgS0VSLUFTTC1DcG1TbWJ1c0V4ZWN1dG9yIHJldHVybiAweDg0LCBMb2NhbDQg
JWRcbiIsIExvY2FsNCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24g
KFZBUk0sIFN5c3RlbUlPLCBMb2NhbDQsIDB4MDkpCiAgICAgICAgRmllbGQgKFZBUk0sIEJ5
dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBTTUIwLCAg
IDgsIAogICAgICAgICAgICBTTUIxLCAgIDgsIAogICAgICAgICAgICBTTUIyLCAgIDgsIAog
ICAgICAgICAgICBTTUIzLCAgIDgsIAogICAgICAgICAgICBTTUI0LCAgIDgsIAogICAgICAg
ICAgICBTTUI1LCAgIDgsIAogICAgICAgICAgICBTTUI2LCAgIDgsIAogICAgICAgICAgICBT
TUI3LCAgIDgsIAogICAgICAgICAgICBTTUI4LCAgIDgKICAgICAgICB9CgogICAgICAgIExv
Y2FsNSA9IE0wMTEgKChNMDg0ICsgMHgwMzAwKSwgMHgwMiwgMHgwMCwgMHgwOCkKICAgICAg
ICBJZiAoKChMb2NhbDUgJiAweDAxKSA9PSAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAg
IE0wMTIgKChNMDg0ICsgMHgwMzAwKSwgMHgwMiwgMHgwMCwgMHgwOCwgKExvY2FsNSB8IDB4
MDEpKQogICAgICAgIH0KCiAgICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAgIHsK
ICAgICAgICAgICAgTG9jYWw2ID0gU01CMiAvKiBcTTQ3QS5TTUIyICovCiAgICAgICAgICAg
IFNNQjIgPSAoTG9jYWw2ICYgMHg3RikKICAgICAgICB9CgogICAgICAgIElmIChNNDc3IChM
b2NhbDQsIDB4NEUyMCkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgw
MSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNNQjIgPSBMb2NhbDYKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWw1ICYgMHgwMSkgPT0gMHgwMCkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0wMTIgKChNMDg0ICsgMHgwMzAwKSwgMHgw
MiwgMHgwMCwgMHgwOCwgTG9jYWw1KQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZWxl
YXNlIChNNDA4KQogICAgICAgICAgICBTVEFUID0gMHg4NQogICAgICAgICAgICBNNDU5ICgi
ICBLRVItQVNMLUNwbVNtYnVzRXhlY3V0b3IgcmV0dXJuIDB4ODVcbiIsIDB4MDApCiAgICAg
ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAgSWYgKE00NzkgKExv
Y2FsNCwgMHg0RTIwKSkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAx
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU01CMiA9IExvY2FsNgogICAgICAg
ICAgICB9CgogICAgICAgICAgICBJZiAoKChMb2NhbDUgJiAweDAxKSA9PSAweDAwKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTTAxMiAoKE0wODQgKyAweDAzMDApLCAweDAy
LCAweDAwLCAweDA4LCBMb2NhbDUpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00Nzgg
KExvY2FsNCkKICAgICAgICAgICAgUmVsZWFzZSAoTTQwOCkKICAgICAgICAgICAgU1RBVCA9
IDB4ODYKICAgICAgICAgICAgTTQ1OSAoIiAgS0VSLUFTTC1DcG1TbWJ1c0V4ZWN1dG9yIHJl
dHVybiAweDg2XG4iLCAweDAwKQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAg
ICB9CgogICAgICAgIExvY2FsNyA9IEFyZzUKICAgICAgICBMb2NhbDMgPSAweDAzCiAgICAg
ICAgV2hpbGUgKChMb2NhbDMgPiAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIFNNQjAg
PSAweDFGCiAgICAgICAgICAgIFNNQjQgPSAoKEFyZzMgPDwgMHgwMSkgfCBBcmcxKQogICAg
ICAgICAgICBTTUIzID0gQXJnNAogICAgICAgICAgICBTTUIyID0gKEFyZzIgPDwgMHgwMikK
ICAgICAgICAgICAgTG9jYWwxID0gU01CMiAvKiBcTTQ3QS5TTUIyICovCiAgICAgICAgICAg
IElmICgoQXJnMSA9PSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYg
KCgoQXJnMiA9PSAweDAxKSB8fCAoQXJnMiA9PSAweDAyKSkpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgU01CNSA9IERlcmVmT2YgKExvY2FsNyBbMHgwMV0pCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNNQjYgPSBEZXJlZk9mIChM
b2NhbDcgWzB4MDJdKQogICAgICAgICAgICAgICAgICAgIFNNQjUgPSBEZXJlZk9mIChMb2Nh
bDcgWzB4MDFdKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJn
MiA9PSAweDA1KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2Nh
bDIgPSBEZXJlZk9mIChMb2NhbDcgWzB4MDBdKQogICAgICAgICAgICAgICAgICAgIFNNQjUg
PSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAxCiAgICAgICAgICAg
ICAgICAgICAgV2hpbGUgKChMb2NhbDEgPD0gTG9jYWwyKSkKICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNNQjcgPSBEZXJlZk9mIChMb2NhbDcgW0xv
Y2FsMV0pCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSsrCiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVs
c2VJZiAoKEFyZzIgPT0gMHgwNSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExv
Y2FsMiA9IERlcmVmT2YgKExvY2FsNyBbMHgwMF0pCiAgICAgICAgICAgICAgICBTTUI1ID0g
TG9jYWwyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFNNQjIgPSAoKEFyZzIgPDwgMHgw
MikgfCAweDQwKQogICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNSkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MUI1OAogICAgICAgICAgICB9CiAgICAg
ICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxID0gMHgw
M0U4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIExvY2FsMiA9IDB4MDEKICAgICAgICAg
ICAgV2hpbGUgKCgoTG9jYWwxID4gMHgwMCkgJiYgKChMb2NhbDIgJiAweDBFKSA9PSAweDAw
KSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKExvY2FsMiAmIDB4MDEp
ID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJyZWFr
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwxLS0KICAgICAgICAg
ICAgICAgIFN0YWxsICgweDA1KQogICAgICAgICAgICAgICAgTG9jYWwyID0gU01CMCAvKiBc
TTQ3QS5TTUIwICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMSA9
PSAweDAwKSAmJiAoKExvY2FsMiAmIDB4MDEpICE9IDB4MDApKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgU01CMiA9IDB4MDIKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9
PSAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTTUIyID0g
TG9jYWw2CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw1
ICYgMHgwMSkgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTTAxMiAoKE0wODQgKyAweDAzMDApLCAweDAyLCAweDAwLCAweDA4LCBMb2NhbDUpCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTTQ3OCAoTG9jYWw0KQogICAgICAg
ICAgICAgICAgUmVsZWFzZSAoTTQwOCkKICAgICAgICAgICAgICAgIFNUQVQgPSAweDg3CiAg
ICAgICAgICAgICAgICBNNDU5ICgiICBLRVItQVNMLUNwbVNtYnVzRXhlY3V0b3IgcmV0dXJu
IDB4ODdcbiIsIDB4MDApCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwyICYgMHgwNCkgIT0gMHgwMCkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMyA9IDB4MDAKICAgICAgICAgICAg
fQogICAgICAgICAgICBFbHNlSWYgKCgoTG9jYWwyICYgMHgwOCkgIT0gMHgwMCkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIFNNQjAgPSAweDA4CiAgICAgICAgICAgICAgICBM
b2NhbDMtLQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgTG9jYWwzID0gMHgwMAogICAgICAgICAgICAgICAgU1RBVCA9IDB4
MDAKICAgICAgICAgICAgICAgIElmICgoQXJnMSAhPSAweDAwKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChBcmcyID09IDB4MDEpIHx8IChBcmcyID09
IDB4MDIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IERBVEIgPSBTTUI1IC8qIFxNNDdBLlNNQjUgKi8KICAgICAgICAgICAgICAgICAgICAgICAg
TEVOID0gMHgwMQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
SWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYWwwIFsweDAzXSA9IFNNQjYgLyogXE00N0EuU01CNiAqLwogICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgWzB4MDJdID0gU01CNSAvKiBcTTQ3QS5TTUI1
ICovCiAgICAgICAgICAgICAgICAgICAgICAgIExFTiA9IDB4MDIKICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA1KSkKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IFNNQjIg
LyogXE00N0EuU01CMiAqLwogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBTTUI1
IC8qIFxNNDdBLlNNQjUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDIg
PiAweDIwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwyID0gMHgyMAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgICAgICAgICBMRU4gPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAg
ICAgTG9jYWwxID0gMHgwMgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgKz0gMHgw
MgogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMSA8IExvY2FsMikpCiAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsMCBbTG9jYWwxXSA9IDB4Q0MKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
MCBbTG9jYWwxXSA9IFNNQjcgLyogXE00N0EuU01CNyAqLwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwxKysKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0K
CiAgICAgICAgTG9jYWwxID0gKFNNQjAgJiAweDFEKQogICAgICAgIFNUQVQgPSBMb2NhbDEK
ICAgICAgICBTTUIwID0gMHgxRgogICAgICAgIElmICgoQXJnMCA9PSAweDAxKSkKICAgICAg
ICB7CiAgICAgICAgICAgIFNNQjIgPSBMb2NhbDYKICAgICAgICB9CgogICAgICAgIElmICgo
KExvY2FsNSAmIDB4MDEpID09IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgTTAxMiAo
KE0wODQgKyAweDAzMDApLCAweDAyLCAweDAwLCAweDA4LCBMb2NhbDUpCiAgICAgICAgfQoK
ICAgICAgICBNNDc4IChMb2NhbDQpCiAgICAgICAgUmVsZWFzZSAoTTQwOCkKICAgICAgICBN
NDYwICgiICBLRVItQVNMLUNwbVNtYnVzRXhlY3V0b3IgcmV0dXJuIFN0OiAweCVYLCBMZW4g
JWQsIERhdGE6IDB4JVgsIDB4JVgsIDB4JVgsIDB4JVggLi4uXG4iLCBTVEFULCBMRU4sIERl
cmVmT2YgKExvY2FsMCBbMHgwMl0pLCBEZXJlZk9mIChMb2NhbDAgWwogICAgICAgICAgICAw
eDAzXSksIERlcmVmT2YgKExvY2FsMCBbMHgwNF0pLCBEZXJlZk9mIChMb2NhbDAgWzB4MDVd
KSkKICAgICAgICBNMDAwICgweDBERTYpCiAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICB9
CgogICAgTWV0aG9kIChNNDdCLCAzLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2Fs
MCA9IE00N0EgKEFyZzAsIEFyZzEsIDB4MDAsIEFyZzIsIDB4MDAsIDB4MDApCiAgICAgICAg
UmV0dXJuIChEZXJlZk9mIChMb2NhbDAgWzB4MDBdKSkKICAgIH0KCiAgICBNZXRob2QgKE00
N0MsIDQsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWwwID0gQnVmZmVyICgweDAy
KSB7fQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWwwLCAweDAwLCBMRU4pCiAgICAg
ICAgQ3JlYXRlQnl0ZUZpZWxkIChMb2NhbDAsIDB4MDEsIERBVEIpCiAgICAgICAgTEVOID0g
MHgwMQogICAgICAgIERBVEIgPSBBcmczCiAgICAgICAgTG9jYWwxID0gTTQ3QSAoQXJnMCwg
QXJnMSwgMHgwMSwgQXJnMiwgMHgwMCwgTG9jYWwwKQogICAgICAgIFJldHVybiAoTG9jYWwx
KQogICAgfQoKICAgIE1ldGhvZCAoTTQ3RCwgNSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAg
ICBMb2NhbDAgPSBCdWZmZXIgKDB4MDIpIHt9CiAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChM
b2NhbDAsIDB4MDAsIExFTikKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKExvY2FsMCwgMHgw
MSwgREFUQikKICAgICAgICBMRU4gPSAweDAxCiAgICAgICAgREFUQiA9IEFyZzQKICAgICAg
ICBMb2NhbDEgPSBNNDdBIChBcmcwLCBBcmcxLCAweDAyLCBBcmcyLCBBcmczLCBMb2NhbDAp
CiAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICB9CgogICAgTWV0aG9kIChNNDdFLCA1LCBT
ZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9IEJ1ZmZlciAoMHgwMykge30KICAg
ICAgICBDcmVhdGVCeXRlRmllbGQgKExvY2FsMCwgMHgwMCwgTEVOKQogICAgICAgIENyZWF0
ZUJ5dGVGaWVsZCAoTG9jYWwwLCAweDAxLCBEQVRMKQogICAgICAgIENyZWF0ZUJ5dGVGaWVs
ZCAoTG9jYWwwLCAweDAyLCBEQVRIKQogICAgICAgIExFTiA9IDB4MDIKICAgICAgICBEQVRM
ID0gKEFyZzQgJiAweEZGKQogICAgICAgIERBVEggPSAoKEFyZzQgPj4gMHgwOCkgJiAweEZG
KQogICAgICAgIExvY2FsMSA9IE00N0EgKEFyZzAsIEFyZzEsIDB4MDMsIEFyZzIsIEFyZzMs
IExvY2FsMCkKICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgIH0KCiAgICBNZXRob2QgKE00
N0YsIDUsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWwxID0gTTQ3QSAoQXJnMCwg
QXJnMSwgMHgwNSwgQXJnMiwgQXJnMywgQXJnNCkKICAgICAgICBSZXR1cm4gKExvY2FsMSkK
ICAgIH0KCiAgICBNZXRob2QgKE00MDksIDMsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAg
TG9jYWwwID0gTTA0OSAoTTEyOCwgMHg5NCkKICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAx
KSkKICAgICAgICB7CiAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtUmVhZFNtYnVz
Qnl0ZSAoJWQsIDB4JVgsIDB4JVgpID0gMCBTbWJ1cyBBY2Nlc3MgRGlzYWJsZVxuIiwgQXJn
MCwgQXJnMSwgQXJnMiwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuICgw
eDAwKQogICAgICAgIH0KCiAgICAgICAgQWNxdWlyZSAoTTQwOCwgMHhGRkZGKQogICAgICAg
IExvY2FsMCA9IChNNDE0ICsgKEFyZzAgPDwgMHgwNSkpCiAgICAgICAgT3BlcmF0aW9uUmVn
aW9uIChWQVJNLCBTeXN0ZW1JTywgTG9jYWwwLCAweDA5KQogICAgICAgIEZpZWxkIChWQVJN
LCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgU01C
MCwgICA4LCAKICAgICAgICAgICAgU01CMSwgICA4LCAKICAgICAgICAgICAgU01CMiwgICA4
LCAKICAgICAgICAgICAgU01CMywgICA4LCAKICAgICAgICAgICAgU01CNCwgICA4LCAKICAg
ICAgICAgICAgU01CNSwgICA4LCAKICAgICAgICAgICAgU01CNiwgICA4LCAKICAgICAgICAg
ICAgU01CNywgICA4LCAKICAgICAgICAgICAgU01COCwgICA4CiAgICAgICAgfQoKICAgICAg
ICBMb2NhbDUgPSBNMDExICgoTTA4NCArIDB4MDMwMCksIDB4MDIsIDB4MDAsIDB4MDgpCiAg
ICAgICAgSWYgKCgoTG9jYWw1ICYgMHgwMSkgPT0gMHgwMCkpCiAgICAgICAgewogICAgICAg
ICAgICBNMDEyICgoTTA4NCArIDB4MDMwMCksIDB4MDIsIDB4MDAsIDB4MDgsIChMb2NhbDUg
fCAweDAxKSkKICAgICAgICB9CgogICAgICAgIElmICgoQXJnMCA9PSAweDAxKSkKICAgICAg
ICB7CiAgICAgICAgICAgIExvY2FsNiA9IFNNQjIgLyogXE00MDkuU01CMiAqLwogICAgICAg
ICAgICBTTUIyID0gKExvY2FsNiAmIDB4N0YpCiAgICAgICAgfQoKICAgICAgICBMb2NhbDEg
PSAweDAwCiAgICAgICAgTG9jYWwyID0gMHg2NAogICAgICAgIFdoaWxlICgoKExvY2FsMiA+
IDB4MDApICYmICgoTG9jYWwxICYgMHgxMCkgIT0gMHgxMCkpKQogICAgICAgIHsKICAgICAg
ICAgICAgU01COCB8PSAweDEwCiAgICAgICAgICAgIExvY2FsMiA9IChMb2NhbDIgLSAweDAx
KQogICAgICAgICAgICBTdGFsbCAoMHgwNSkKICAgICAgICAgICAgTG9jYWwxID0gU01COCAv
KiBcTTQwOS5TTUI4ICovCiAgICAgICAgfQoKICAgICAgICBMb2NhbDMgPSAweDAzCiAgICAg
ICAgV2hpbGUgKChMb2NhbDMgPiAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIExvY2Fs
MSA9IDB4MDEKICAgICAgICAgICAgTG9jYWwyID0gMHg2NAogICAgICAgICAgICBXaGlsZSAo
KChMb2NhbDIgPiAweDAwKSAmJiAoKExvY2FsMSAmIDB4MDEpICE9IDB4MDApKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgU01CMCA9IDB4MUYKICAgICAgICAgICAgICAgIExv
Y2FsMiA9IChMb2NhbDIgLSAweDAxKQogICAgICAgICAgICAgICAgU3RhbGwgKDB4MDUpCiAg
ICAgICAgICAgICAgICBMb2NhbDEgPSBTTUIwIC8qIFxNNDA5LlNNQjAgKi8KICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gMHgwMCkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIFNNQjIgPSAweDAyCiAgICAgICAgICAgICAgICBMb2NhbDMgPSAo
TG9jYWwzIC0gMHgwMSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMyA9IDB4MDAKICAgICAgICAgICAgfQogICAg
ICAgIH0KCiAgICAgICAgSWYgKCgoTG9jYWwyID09IDB4MDApICYmIChMb2NhbDMgPT0gMHgw
MCkpKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBTTUIyID0gTG9jYWw2CiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIElmICgoKExvY2FsNSAmIDB4MDEpID09IDB4MDApKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBNMDEyICgoTTA4NCArIDB4MDMwMCksIDB4MDIsIDB4MDAsIDB4
MDgsIExvY2FsNSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmVsZWFzZSAoTTQwOCkK
ICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DcG1SZWFkU21idXNCeXRlICglZCwgMHgl
WCwgMHglWCkgPSAwIEVSUk9SIDFcbiIsIEFyZzAsIEFyZzEsIEFyZzIsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICB9CgogICAgICAgIExv
Y2FsMyA9IDB4MDMKICAgICAgICBXaGlsZSAoKExvY2FsMyA+IDB4MDApKQogICAgICAgIHsK
ICAgICAgICAgICAgTG9jYWwxID0gMHgwMQogICAgICAgICAgICBMb2NhbDIgPSAweDY0CiAg
ICAgICAgICAgIFdoaWxlICgoKExvY2FsMiA+IDB4MDApICYmICgoTG9jYWwxICYgMHgwMSkg
IT0gMHgwMCkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTTUIxID0gMHgzRgog
ICAgICAgICAgICAgICAgTG9jYWwyID0gKExvY2FsMiAtIDB4MDEpCiAgICAgICAgICAgICAg
ICBTdGFsbCAoMHgwNSkKICAgICAgICAgICAgICAgIExvY2FsMSA9IFNNQjEgLyogXE00MDku
U01CMSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKExvY2FsMiA9PSAweDAw
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU01CMSA9IDB4MDIKICAgICAgICAg
ICAgICAgIExvY2FsMyA9IChMb2NhbDMgLSAweDAxKQogICAgICAgICAgICB9CiAgICAgICAg
ICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwzID0gMHgwMAog
ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKChMb2NhbDIgPT0gMHgwMCkg
JiYgKExvY2FsMyA9PSAweDAwKSkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEFyZzAg
PT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNNQjIgPSBMb2NhbDYK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWw1ICYgMHgwMSkgPT0gMHgw
MCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0wMTIgKChNMDg0ICsgMHgwMzAw
KSwgMHgwMiwgMHgwMCwgMHgwOCwgTG9jYWw1KQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBSZWxlYXNlIChNNDA4KQogICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNwbVJlYWRT
bWJ1c0J5dGUgKCVkLCAweCVYLCAweCVYKSA9IDAgRVJST1IgMlxuIiwgQXJnMCwgQXJnMSwg
QXJnMiwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAg
ICAgIH0KCiAgICAgICAgTG9jYWwzID0gMHgwMwogICAgICAgIFdoaWxlICgoTG9jYWwzID4g
MHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBTTUIwID0gMHgxRgogICAgICAgICAgICBT
TUI0ID0gKChBcmcxIDw8IDB4MDEpIHwgMHgwMSkKICAgICAgICAgICAgU01CMyA9IEFyZzIK
ICAgICAgICAgICAgU01CMiA9IDB4MDgKICAgICAgICAgICAgTG9jYWwxID0gU01CMiAvKiBc
TTQwOS5TTUIyICovCiAgICAgICAgICAgIFNNQjIgPSAweDQ4CiAgICAgICAgICAgIExvY2Fs
MSA9IDB4MDEKICAgICAgICAgICAgTG9jYWw0ID0gMHgwM0U4CiAgICAgICAgICAgIFdoaWxl
ICgoKExvY2FsNCA+IDB4MDApICYmICgoTG9jYWwxICYgMHgwRSkgPT0gMHgwMCkpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDAzRTgKICAgICAgICAgICAg
ICAgIFdoaWxlICgoKExvY2FsMiA+IDB4MDApICYmICgoTG9jYWwxICYgMHgwMSkgIT0gMHgw
MCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IChM
b2NhbDIgLSAweDAxKQogICAgICAgICAgICAgICAgICAgIFN0YWxsICgweDA1KQogICAgICAg
ICAgICAgICAgICAgIExvY2FsMSA9IFNNQjAgLyogXE00MDkuU01CMCAqLwogICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoTG9jYWwyID09IDB4MDApKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNNQjIgPSAweDAyCiAgICAgICAgICAg
ICAgICAgICAgSWYgKChBcmcwID09IDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgU01CMiA9IExvY2FsNgogICAgICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWw1ICYgMHgwMSkgPT0gMHgwMCkp
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNMDEyICgo
TTA4NCArIDB4MDMwMCksIDB4MDIsIDB4MDAsIDB4MDgsIExvY2FsNSkKICAgICAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKE00MDgpCiAgICAgICAg
ICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DcG1SZWFkU21idXNCeXRlICglZCwgMHgl
WCwgMHglWCkgPSAwIEVSUk9SIDNcbiIsIEFyZzAsIEFyZzEsIEFyZzIsIDB4MDAsIDB4MDAs
IDB4MDApCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgIExvY2FsNCA9IChMb2NhbDQgLSAweDAxKQogICAgICAg
ICAgICAgICAgU3RhbGwgKDB4MDUpCiAgICAgICAgICAgICAgICBMb2NhbDEgPSBTTUIwIC8q
IFxNNDA5LlNNQjAgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwx
ICYgMHgwNCkgIT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2Fs
MyA9IDB4MDAKICAgICAgICAgICAgICAgIExvY2FsNCA9IDB4MDAKICAgICAgICAgICAgfQog
ICAgICAgICAgICBFbHNlSWYgKCgoTG9jYWwxICYgMHgwOCkgIT0gMHgwMCkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIFNNQjAgPSAweDA4CiAgICAgICAgICAgICAgICBMb2Nh
bDMgPSAoTG9jYWwzIC0gMHgwMSkKICAgICAgICAgICAgICAgIExvY2FsNCA9IDB4MDAKICAg
ICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIExvY2FsMyA9IDB4MDAKICAgICAgICAgICAgICAgIExvY2FsNCA9IFNNQjUgLyogXE00
MDkuU01CNSAqLwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBTTUIwID0gMHgx
RgogICAgICAgIFNNQjggfD0gMHgyMAogICAgICAgIElmICgoQXJnMCA9PSAweDAxKSkKICAg
ICAgICB7CiAgICAgICAgICAgIFNNQjIgPSBMb2NhbDYKICAgICAgICB9CgogICAgICAgIElm
ICgoKExvY2FsNSAmIDB4MDEpID09IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgTTAx
MiAoKE0wODQgKyAweDAzMDApLCAweDAyLCAweDAwLCAweDA4LCBMb2NhbDUpCiAgICAgICAg
fQoKICAgICAgICBSZWxlYXNlIChNNDA4KQogICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3Bt
UmVhZFNtYnVzQnl0ZSAoJWQsIDB4JVgsIDB4JVgpID0gMHglWCBTdWNjZXNzXG4iLCBBcmcw
LCBBcmcxLCBBcmcyLCBMb2NhbDQsIDB4MDAsIDB4MDApCiAgICAgICAgUmV0dXJuIChMb2Nh
bDQpCiAgICB9CgogICAgTWV0aG9kIChNNDEwLCA0LCBTZXJpYWxpemVkKQogICAgewogICAg
ICAgIExvY2FsMCA9IE0wNDkgKE0xMjgsIDB4OTQpCiAgICAgICAgSWYgKChMb2NhbDAgPT0g
MHgwMSkpCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNwbVdyaXRl
U21idXNCeXRlICglZCwgMHglWCwgMHglWCwgMHglWCkgPSAwIFNtYnVzIEFjY2VzcyBEaXNh
YmxlXG4iLCBBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCAweDAwLCAweDAwKQogICAgICAgICAg
ICBSZXR1cm4gKDB4MDApCiAgICAgICAgfQoKICAgICAgICBBY3F1aXJlIChNNDA4LCAweEZG
RkYpCiAgICAgICAgTG9jYWwwID0gKE00MTQgKyAoQXJnMCA8PCAweDA1KSkKICAgICAgICBP
cGVyYXRpb25SZWdpb24gKFZBUk0sIFN5c3RlbUlPLCBMb2NhbDAsIDB4MDkpCiAgICAgICAg
RmllbGQgKFZBUk0sIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAg
ICAgICAgICBTTUIwLCAgIDgsIAogICAgICAgICAgICBTTUIxLCAgIDgsIAogICAgICAgICAg
ICBTTUIyLCAgIDgsIAogICAgICAgICAgICBTTUIzLCAgIDgsIAogICAgICAgICAgICBTTUI0
LCAgIDgsIAogICAgICAgICAgICBTTUI1LCAgIDgsIAogICAgICAgICAgICBTTUI2LCAgIDgs
IAogICAgICAgICAgICBTTUI3LCAgIDgsIAogICAgICAgICAgICBTTUI4LCAgIDgKICAgICAg
ICB9CgogICAgICAgIExvY2FsNSA9IE0wMTEgKChNMDg0ICsgMHgwMzAwKSwgMHgwMiwgMHgw
MCwgMHgwOCkKICAgICAgICBJZiAoKChMb2NhbDUgJiAweDAxKSA9PSAweDAwKSkKICAgICAg
ICB7CiAgICAgICAgICAgIE0wMTIgKChNMDg0ICsgMHgwMzAwKSwgMHgwMiwgMHgwMCwgMHgw
OCwgKExvY2FsNSB8IDB4MDEpKQogICAgICAgIH0KCiAgICAgICAgSWYgKChBcmcwID09IDB4
MDEpKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWw2ID0gU01CMiAvKiBcTTQxMC5TTUIy
ICovCiAgICAgICAgICAgIFNNQjIgPSAoTG9jYWw2ICYgMHg3RikKICAgICAgICB9CgogICAg
ICAgIExvY2FsMSA9IDB4MDAKICAgICAgICBMb2NhbDIgPSAweDY0CiAgICAgICAgV2hpbGUg
KCgoTG9jYWwyID4gMHgwMCkgJiYgKChMb2NhbDEgJiAweDEwKSAhPSAweDEwKSkpCiAgICAg
ICAgewogICAgICAgICAgICBTTUI4IHw9IDB4MTAKICAgICAgICAgICAgTG9jYWwyID0gKExv
Y2FsMiAtIDB4MDEpCiAgICAgICAgICAgIFN0YWxsICgweDA1KQogICAgICAgICAgICBMb2Nh
bDEgPSBTTUI4IC8qIFxNNDEwLlNNQjggKi8KICAgICAgICB9CgogICAgICAgIExvY2FsMyA9
IDB4MDMKICAgICAgICBXaGlsZSAoKExvY2FsMyA+IDB4MDApKQogICAgICAgIHsKICAgICAg
ICAgICAgTG9jYWwxID0gMHgwMQogICAgICAgICAgICBMb2NhbDIgPSAweDY0CiAgICAgICAg
ICAgIFdoaWxlICgoKExvY2FsMiA+IDB4MDApICYmICgoTG9jYWwxICYgMHgwMSkgIT0gMHgw
MCkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTTUIwID0gMHgxRgogICAgICAg
ICAgICAgICAgTG9jYWwyID0gKExvY2FsMiAtIDB4MDEpCiAgICAgICAgICAgICAgICBTdGFs
bCAoMHgwNSkKICAgICAgICAgICAgICAgIExvY2FsMSA9IFNNQjAgLyogXE00MTAuU01CMCAq
LwogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKExvY2FsMiA9PSAweDAwKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgU01CMiA9IDB4MDIKICAgICAgICAgICAgICAg
IExvY2FsMyA9IChMb2NhbDMgLSAweDAxKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVs
c2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwzID0gMHgwMAogICAgICAg
ICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKChMb2NhbDIgPT0gMHgwMCkgJiYgKExv
Y2FsMyA9PSAweDAwKSkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgw
MSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNNQjIgPSBMb2NhbDYKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWw1ICYgMHgwMSkgPT0gMHgwMCkpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0wMTIgKChNMDg0ICsgMHgwMzAwKSwgMHgw
MiwgMHgwMCwgMHgwOCwgTG9jYWw1KQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZWxl
YXNlIChNNDA4KQogICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNwbVdyaXRlU21idXNC
eXRlICglZCwgMHglWCwgMHglWCwgMHglWCkgPSAwIEVSUk9SIDFcbiIsIEFyZzAsIEFyZzEs
IEFyZzIsIEFyZzMsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg
ICAgICB9CgogICAgICAgIExvY2FsMyA9IDB4MDMKICAgICAgICBXaGlsZSAoKExvY2FsMyA+
IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwxID0gMHgwMQogICAgICAgICAg
ICBMb2NhbDIgPSAweDY0CiAgICAgICAgICAgIFdoaWxlICgoKExvY2FsMiA+IDB4MDApICYm
ICgoTG9jYWwxICYgMHgwMSkgIT0gMHgwMCkpKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBTTUIxID0gMHgzRgogICAgICAgICAgICAgICAgTG9jYWwyID0gKExvY2FsMiAtIDB4
MDEpCiAgICAgICAgICAgICAgICBTdGFsbCAoMHgwNSkKICAgICAgICAgICAgICAgIExvY2Fs
MSA9IFNNQjEgLyogXE00MTAuU01CMSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoKExvY2FsMiA9PSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU01C
MSA9IDB4MDIKICAgICAgICAgICAgICAgIExvY2FsMyA9IChMb2NhbDMgLSAweDAxKQogICAg
ICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgTG9jYWwzID0gMHgwMAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAo
KChMb2NhbDIgPT0gMHgwMCkgJiYgKExvY2FsMyA9PSAweDAwKSkpCiAgICAgICAgewogICAg
ICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIFNNQjIgPSBMb2NhbDYKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9j
YWw1ICYgMHgwMSkgPT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE0w
MTIgKChNMDg0ICsgMHgwMzAwKSwgMHgwMiwgMHgwMCwgMHgwOCwgTG9jYWw1KQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBSZWxlYXNlIChNNDA4KQogICAgICAgICAgICBNNDYwICgi
ICBLRVItQVNMLUNwbVdyaXRlU21idXNCeXRlICglZCwgMHglWCwgMHglWCwgMHglWCkgPSAw
IEVSUk9SIDJcbiIsIEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICB9CgogICAgICAgIExvY2FsMyA9IDB4MDMK
ICAgICAgICBXaGlsZSAoKExvY2FsMyA+IDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAg
U01CMCA9IDB4MUYKICAgICAgICAgICAgU01CNCA9IChBcmcxIDw8IDB4MDEpCiAgICAgICAg
ICAgIFNNQjMgPSBBcmcyCiAgICAgICAgICAgIFNNQjIgPSAweDA4CiAgICAgICAgICAgIExv
Y2FsMSA9IFNNQjIgLyogXE00MTAuU01CMiAqLwogICAgICAgICAgICBTTUI1ID0gQXJnMwog
ICAgICAgICAgICBTTUIyID0gMHg0OAogICAgICAgICAgICBMb2NhbDEgPSAweDAxCiAgICAg
ICAgICAgIExvY2FsNCA9IDB4MDNFOAogICAgICAgICAgICBXaGlsZSAoKChMb2NhbDQgPiAw
eDAwKSAmJiAoKExvY2FsMSAmIDB4MEUpID09IDB4MDApKSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgTG9jYWwyID0gMHgwM0U4CiAgICAgICAgICAgICAgICBXaGlsZSAoKChM
b2NhbDIgPiAweDAwKSAmJiAoKExvY2FsMSAmIDB4MDEpICE9IDB4MDApKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoTG9jYWwyIC0gMHgwMSkK
ICAgICAgICAgICAgICAgICAgICBTdGFsbCAoMHgwNSkKICAgICAgICAgICAgICAgICAgICBM
b2NhbDEgPSBTTUIwIC8qIFxNNDEwLlNNQjAgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICBJZiAoKExvY2FsMiA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBTTUIyID0gMHgwMgogICAgICAgICAgICAgICAgICAgIElmICgo
QXJnMCA9PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIFNNQjIgPSBMb2NhbDYKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgICAgIElmICgoKExvY2FsNSAmIDB4MDEpID09IDB4MDApKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTAxMiAoKE0wODQgKyAweDAzMDAp
LCAweDAyLCAweDAwLCAweDA4LCBMb2NhbDUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICBSZWxlYXNlIChNNDA4KQogICAgICAgICAgICAgICAgICAgIE00
NjAgKCIgIEtFUi1BU0wtQ3BtV3JpdGVTbWJ1c0J5dGUgKCVkLCAweCVYLCAweCVYLCAweCVY
KSA9IDAgRVJST1IgM1xuIiwgQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgTG9jYWw0ID0gKExvY2FsNCAtIDB4MDEpCiAgICAgICAgICAgICAg
ICBTdGFsbCAoMHgwNSkKICAgICAgICAgICAgICAgIExvY2FsMSA9IFNNQjAgLyogXE00MTAu
U01CMCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChMb2NhbDEgJiAweDA0
KSAhPSAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwzID0gMHgw
MAogICAgICAgICAgICAgICAgTG9jYWw0ID0gMHgwMAogICAgICAgICAgICB9CiAgICAgICAg
ICAgIEVsc2VJZiAoKChMb2NhbDEgJiAweDA4KSAhPSAweDAwKSkKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgU01CMCA9IDB4MDgKICAgICAgICAgICAgICAgIExvY2FsMyA9IChM
b2NhbDMgLSAweDAxKQogICAgICAgICAgICAgICAgTG9jYWw0ID0gMHgwMAogICAgICAgICAg
ICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9j
YWwzID0gMHgwMAogICAgICAgICAgICAgICAgTG9jYWw0ID0gMHgwMAogICAgICAgICAgICB9
CiAgICAgICAgfQoKICAgICAgICBTTUIwID0gMHgxRgogICAgICAgIFNNQjggfD0gMHgyMAog
ICAgICAgIElmICgoQXJnMCA9PSAweDAxKSkKICAgICAgICB7CiAgICAgICAgICAgIFNNQjIg
PSBMb2NhbDYKICAgICAgICB9CgogICAgICAgIElmICgoKExvY2FsNSAmIDB4MDEpID09IDB4
MDApKQogICAgICAgIHsKICAgICAgICAgICAgTTAxMiAoKE0wODQgKyAweDAzMDApLCAweDAy
LCAweDAwLCAweDA4LCBMb2NhbDUpCiAgICAgICAgfQoKICAgICAgICBSZWxlYXNlIChNNDA4
KQogICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ3BtV3JpdGVTbWJ1c0J5dGUgKCVkLCAweCVY
LCAweCVYLCAweCVYKSBTdWNjZXNzXG4iLCBBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCAweDAw
LCAweDAwKQogICAgICAgIFJldHVybiAoTG9jYWw0KQogICAgfQoKICAgIE1ldGhvZCAoTTRG
MSwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBNNDYwICgiICBLRVItQVNMLUNwbUNo
ZWNrRXhwYW5kZXJJbnB1dEV2ZW50ICgweCVYKSBTdGFydFxuIiwgQXJnMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICBMb2NhbDUgPSAweDAwCiAgICAgICAgSWYg
KCgoQXJnMCA+PSAweDAwKSAmJiAoQXJnMCA8PSAweDAzKSkpCiAgICAgICAgewogICAgICAg
ICAgICBMb2NhbDAgPSBNNEYwIC8qIFxNNEYwICovCiAgICAgICAgICAgIElmICgoTG9jYWww
ICE9IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgKz0gMHgx
MAogICAgICAgICAgICAgICAgTG9jYWwwICs9IChBcmcwICogMHgyNikKICAgICAgICAgICAg
ICAgIElmICgoTTA0OSAoTG9jYWwwLCAweDAwKSA9PSBBcmcwKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBNMDQ5IChMb2NhbDAsIDB4MTUpCiAg
ICAgICAgICAgICAgICAgICAgTG9jYWwyID0gTTA0OSAoTG9jYWwwLCAweDE2KQogICAgICAg
ICAgICAgICAgICAgIExvY2FsMyA9IE0wNDkgKExvY2FsMCwgMHgxRSkKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDQgPSBNNDA5IChMb2NhbDEsIExvY2FsMiwgMHgwMCkKICAgICAgICAg
ICAgICAgICAgICBNMDRDIChMb2NhbDAsIDB4MUUsIExvY2FsNCkKICAgICAgICAgICAgICAg
ICAgICBMb2NhbDQgXj0gTG9jYWwzCiAgICAgICAgICAgICAgICAgICAgTG9jYWw0ICY9IE0w
NDkgKExvY2FsMCwgMHgxQykKICAgICAgICAgICAgICAgICAgICBMb2NhbDQgfD0gTTA0OSAo
TG9jYWwwLCAweDFEKQogICAgICAgICAgICAgICAgICAgIElmICgoTTA0OSAoTG9jYWwwLCAw
eDE3KSA+PSAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsMyA9IE0wNDkgKExvY2FsMCwgMHgyNSkKICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYWw1ID0gTTQwOSAoTG9jYWwxLCBMb2NhbDIsIDB4MDEpCiAgICAgICAgICAg
ICAgICAgICAgICAgIE0wNEMgKExvY2FsMCwgMHgyNSwgTG9jYWw1KQogICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbDUgXj0gTG9jYWwzCiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsNSAmPSBNMDQ5IChMb2NhbDAsIDB4MjMpCiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsNSB8PSBNMDQ5IChMb2NhbDAsIDB4MjQpCiAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2FsNSA8PD0gMHgwOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg
ICAgTG9jYWw1IHw9IExvY2FsNAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg
ICAgICAgfQoKICAgICAgICBNNDYwICgiICBLRVItQVNMLUNwbUNoZWNrRXhwYW5kZXJJbnB1
dEV2ZW50ICgweCVYKSA9IDB4JVggRW5kXG4iLCBBcmcwLCBMb2NhbDUsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgUmV0dXJuIChMb2NhbDUpCiAgICB9CgogICAgTXV0ZXgg
KE00RTUsIDB4MDApCiAgICBOYW1lIChNNEU3LCAweDVBKQogICAgTmFtZSAoTTRFOCwgMHg1
QSkKICAgIE5hbWUgKE00RTksIDB4NUEpCiAgICBOYW1lIChNNEVBLCAweDVBNUE1QTVBKQog
ICAgTmFtZSAoTTRFQiwgMHg1QTVBNUE1QSkKICAgIE5hbWUgKE00RUMsIFBhY2thZ2UgKDB4
MDcpCiAgICB7CiAgICAgICAgMHgwNiwgCiAgICAgICAgUGFja2FnZSAoMHgwNSkKICAgICAg
ICB7CiAgICAgICAgICAgIDB4MEYsIAogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAiSTJDMCIsIAogICAgICAgICAgICAgICAgMHg5
MSwgCiAgICAgICAgICAgICAgICAweDkyLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg
ICAgICAgICAgICAgMHhGRUQ4MUU0QSwgCiAgICAgICAgICAgICAgICAweEZFREMyMDAwCiAg
ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIkkyQzEiLCAKICAgICAgICAgICAgICAgIDB4OTMsIAogICAg
ICAgICAgICAgICAgMHg5NCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg
ICAgIDB4RkVEODFFNEMsIAogICAgICAgICAgICAgICAgMHhGRURDMzAwMAogICAgICAgICAg
ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICJJMkMyIiwgCiAgICAgICAgICAgICAgICAweDcxLCAKICAgICAgICAgICAg
ICAgIDB4NzIsIAogICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAweEZF
RDgxRTRFLCAKICAgICAgICAgICAgICAgIDB4RkVEQzQwMDAKICAgICAgICAgICAgfSwgCgog
ICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAiSTJDMyIsIAogICAgICAgICAgICAgICAgMHgxMywgCiAgICAgICAgICAgICAgICAweDE0
LCAKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHhGRUQ4MUU1MCwg
CiAgICAgICAgICAgICAgICAweEZFREM1MDAwCiAgICAgICAgICAgIH0KICAgICAgICB9LCAK
CiAgICAgICAgUGFja2FnZSAoMHgwNSkKICAgICAgICB7CiAgICAgICAgICAgIDB4MTMsIAog
ICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAiSTJDMCIsIAogICAgICAgICAgICAgICAgMHg5MSwgCiAgICAgICAgICAgICAgICAweDky
LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGRUQ4MUU0QSwg
CiAgICAgICAgICAgICAgICAweEZFREMyMDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg
ICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIkkyQzEi
LCAKICAgICAgICAgICAgICAgIDB4OTMsIAogICAgICAgICAgICAgICAgMHg5NCwgCiAgICAg
ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4RkVEODFFNEMsIAogICAgICAg
ICAgICAgICAgMHhGRURDMzAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th
Z2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJJMkMyIiwgCiAgICAg
ICAgICAgICAgICAweDcxLCAKICAgICAgICAgICAgICAgIDB4NzIsIAogICAgICAgICAgICAg
ICAgMHgwMSwgCiAgICAgICAgICAgICAgICAweEZFRDgxRTRFLCAKICAgICAgICAgICAgICAg
IDB4RkVEQzQwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA2
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiSTJDMyIsIAogICAgICAgICAgICAg
ICAgMHgxMywgCiAgICAgICAgICAgICAgICAweDE0LCAKICAgICAgICAgICAgICAgIDB4MDEs
IAogICAgICAgICAgICAgICAgMHhGRUQ4MUU1MCwgCiAgICAgICAgICAgICAgICAweEZFREM1
MDAwCiAgICAgICAgICAgIH0KICAgICAgICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgwNSkK
ICAgICAgICB7CiAgICAgICAgICAgIDB4MTAsIAogICAgICAgICAgICBQYWNrYWdlICgweDA2
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiSTJDMCIsIAogICAgICAgICAgICAg
ICAgMHg5MSwgCiAgICAgICAgICAgICAgICAweDkyLCAKICAgICAgICAgICAgICAgIDB4MDAs
IAogICAgICAgICAgICAgICAgMHhGRUQ4MUU0QSwgCiAgICAgICAgICAgICAgICAweEZFREMy
MDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgIkkyQzEiLCAKICAgICAgICAgICAgICAgIDB4OTMs
IAogICAgICAgICAgICAgICAgMHg5NCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg
ICAgICAgICAgIDB4RkVEODFFNEMsIAogICAgICAgICAgICAgICAgMHhGRURDMzAwMAogICAg
ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICJJMkMyIiwgCiAgICAgICAgICAgICAgICAweDcxLCAKICAgICAg
ICAgICAgICAgIDB4NzIsIAogICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAg
ICAweEZFRDgxRTRFLCAKICAgICAgICAgICAgICAgIDB4RkVEQzQwMDAKICAgICAgICAgICAg
fSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAiSTJDMyIsIAogICAgICAgICAgICAgICAgMHgxMywgCiAgICAgICAgICAgICAg
ICAweDE0LCAKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHhGRUQ4
MUU1MCwgCiAgICAgICAgICAgICAgICAweEZFREM1MDAwCiAgICAgICAgICAgIH0KICAgICAg
ICB9LCAKCiAgICAgICAgUGFja2FnZSAoMHgwNykKICAgICAgICB7CiAgICAgICAgICAgIDB4
MTEsIAogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAiSTJDMCIsIAogICAgICAgICAgICAgICAgMHg5MSwgCiAgICAgICAgICAgICAg
ICAweDkyLCAKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHhGRUQ4
MUU0QSwgCiAgICAgICAgICAgICAgICAweEZFREMyMDAwCiAgICAgICAgICAgIH0sIAoKICAg
ICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
IkkyQzEiLCAKICAgICAgICAgICAgICAgIDB4OTMsIAogICAgICAgICAgICAgICAgMHg5NCwg
CiAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgIDB4RkVEODFFNEMsIAog
ICAgICAgICAgICAgICAgMHhGRURDMzAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg
IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJJMkMyIiwg
CiAgICAgICAgICAgICAgICAweDk1LCAKICAgICAgICAgICAgICAgIDB4OTYsIAogICAgICAg
ICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAweEZFRDgxRTRFLCAKICAgICAgICAg
ICAgICAgIDB4RkVEQzQwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl
ICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiSTJDMyIsIAogICAgICAg
ICAgICAgICAgMHg5NywgCiAgICAgICAgICAgICAgICAweDk4LCAKICAgICAgICAgICAgICAg
IDB4MDEsIAogICAgICAgICAgICAgICAgMHhGRUQ4MUU1MCwgCiAgICAgICAgICAgICAgICAw
eEZFREM1MDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIkkyQzQiLCAKICAgICAgICAgICAgICAg
IDB4MEQsIAogICAgICAgICAgICAgICAgMHgwRSwgCiAgICAgICAgICAgICAgICAweDAwLCAK
ICAgICAgICAgICAgICAgIDB4RkVEODFFNTIsIAogICAgICAgICAgICAgICAgMHhGRURDNjAw
MAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICJJMkM1IiwgCiAgICAgICAgICAgICAgICAweDEzLCAK
ICAgICAgICAgICAgICAgIDB4MTQsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAweEZFRDgxRTU0LCAKICAgICAgICAgICAgICAgIDB4RkVEQ0IwMDAKICAgICAg
ICAgICAgfQogICAgICAgIH0sIAoKICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgIHsK
ICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICJJMkMwIiwgCiAgICAgICAgICAgICAgICAweDkxLCAK
ICAgICAgICAgICAgICAgIDB4OTIsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg
ICAgICAgICAweEZFRDgxRTRBLCAKICAgICAgICAgICAgICAgIDB4RkVEQzIwMDAKICAgICAg
ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAiSTJDMSIsIAogICAgICAgICAgICAgICAgMHg5MywgCiAgICAgICAg
ICAgICAgICAweDk0LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg
MHhGRUQ4MUU0QywgCiAgICAgICAgICAgICAgICAweEZFREMzMDAwCiAgICAgICAgICAgIH0s
IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgIkkyQzIiLCAKICAgICAgICAgICAgICAgIDB4NzEsIAogICAgICAgICAgICAgICAg
MHg3MiwgCiAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgIDB4RkVEODFF
NEUsIAogICAgICAgICAgICAgICAgMHhGRURDNDAwMAogICAgICAgICAgICB9LCAKCiAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJJ
MkMzIiwgCiAgICAgICAgICAgICAgICAweDEzLCAKICAgICAgICAgICAgICAgIDB4MTQsIAog
ICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAweEZFRDgxRTUwLCAKICAg
ICAgICAgICAgICAgIDB4RkVEQzUwMDAKICAgICAgICAgICAgfQogICAgICAgIH0sIAoKICAg
ICAgICBQYWNrYWdlICgweDA1KQogICAgICAgIHsKICAgICAgICAgICAgMHgxNCwgCiAgICAg
ICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJJ
MkMwIiwgCiAgICAgICAgICAgICAgICAweDkxLCAKICAgICAgICAgICAgICAgIDB4OTIsIAog
ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweEZFRDgxRTRBLCAKICAg
ICAgICAgICAgICAgIDB4RkVEQzIwMDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ
YWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiSTJDMSIsIAog
ICAgICAgICAgICAgICAgMHg5MywgCiAgICAgICAgICAgICAgICAweDk0LCAKICAgICAgICAg
ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHhGRUQ4MUU0QywgCiAgICAgICAgICAg
ICAgICAweEZFREMzMDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo
MHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIkkyQzIiLCAKICAgICAgICAg
ICAgICAgIDB4NzEsIAogICAgICAgICAgICAgICAgMHg3MiwgCiAgICAgICAgICAgICAgICAw
eDAxLCAKICAgICAgICAgICAgICAgIDB4RkVEODFFNEUsIAogICAgICAgICAgICAgICAgMHhG
RURDNDAwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJJMkMzIiwgCiAgICAgICAgICAgICAgICAw
eDEzLCAKICAgICAgICAgICAgICAgIDB4MTQsIAogICAgICAgICAgICAgICAgMHgwMSwgCiAg
ICAgICAgICAgICAgICAweEZFRDgxRTUwLCAKICAgICAgICAgICAgICAgIDB4RkVEQzUwMDAK
ICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0pCiAgICBNZXRob2QgKE00RTYsIDEsIFNl
cmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWwwID0gTTA4NSAvKiBcTTA4NSAqLwogICAg
ICAgIExvY2FsMSA9IERlcmVmT2YgKE00RUMgWzB4MDBdKQogICAgICAgIExvY2FsMiA9IDB4
MDEKICAgICAgICBXaGlsZSAoKExvY2FsMiA8PSBMb2NhbDEpKQogICAgICAgIHsKICAgICAg
ICAgICAgTG9jYWwzID0gRGVyZWZPZiAoTTRFQyBbTG9jYWwyXSkKICAgICAgICAgICAgTG9j
YWw0ID0gRGVyZWZPZiAoTG9jYWwzIFsweDAwXSkKICAgICAgICAgICAgSWYgKChMb2NhbDQg
PT0gTG9jYWwwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQnJlYWsKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgTG9jYWwyKysKICAgICAgICB9CgogICAgICAgIElmICgo
TG9jYWwyID4gTG9jYWwxKSkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoMHgwMCkK
ICAgICAgICB9CgogICAgICAgIExvY2FsMiA9IDB4MDEKICAgICAgICBMb2NhbDEgPSBTaXpl
T2YgKExvY2FsMykKICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMCkpCiAgICAgICAg
ewogICAgICAgICAgICBDYXNlICgweDAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBMb2NhbDAgPSAiSTJDMCIKICAgICAgICAgICAgfQogICAgICAgICAgICBDYXNlICgweDAx
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAiSTJDMSIKICAgICAg
ICAgICAgfQogICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBMb2NhbDAgPSAiSTJDMiIKICAgICAgICAgICAgfQogICAgICAgICAgICBDYXNl
ICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAiSTJDMyIK
ICAgICAgICAgICAgfQogICAgICAgICAgICBDYXNlICgweDA0KQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBMb2NhbDAgPSAiSTJDNCIKICAgICAgICAgICAgfQogICAgICAgICAg
ICBDYXNlICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAi
STJDNSIKICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgIFdoaWxlICgoTG9jYWwy
IDw9IExvY2FsMSkpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDQgPSBEZXJlZk9mIChM
b2NhbDMgW0xvY2FsMl0pCiAgICAgICAgICAgIExvY2FsNSA9IERlcmVmT2YgKExvY2FsNCBb
MHgwMF0pCiAgICAgICAgICAgIElmICgoTG9jYWw1ID09IExvY2FsMCkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIExv
Y2FsMisrCiAgICAgICAgfQoKICAgICAgICBJZiAoKExvY2FsMiA+IExvY2FsMSkpCiAgICAg
ICAgewogICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgfQoKICAgICAgICBNNEU3
ID0gRGVyZWZPZiAoTG9jYWw0IFsweDAxXSkKICAgICAgICBNNEU4ID0gRGVyZWZPZiAoTG9j
YWw0IFsweDAyXSkKICAgICAgICBNNEU5ID0gRGVyZWZPZiAoTG9jYWw0IFsweDAzXSkKICAg
ICAgICBNNEVBID0gRGVyZWZPZiAoTG9jYWw0IFsweDA0XSkKICAgICAgICBNNEVCID0gRGVy
ZWZPZiAoTG9jYWw0IFsweDA1XSkKICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICB9CgogICAg
TWV0aG9kIChNNEUwLCA1LCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9IE00
RTYgKEFyZzApCiAgICAgICAgSWYgKChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgewogICAg
ICAgICAgICBSZXR1cm4gKDB4RkYwMCkKICAgICAgICB9CgogICAgICAgIE5hbWUgKFJURkYs
IEJ1ZmZlciAoMHgwMTAwKQogICAgICAgIHsKICAgICAgICAgICAgIDB4MDAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgfSkKICAg
ICAgICBMb2NhbDAgPSBNNEVBIC8qIFxNNEVBICovCiAgICAgICAgTG9jYWwxID0gTTRFQiAv
KiBcTTRFQiAqLwogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSMCwgU3lzdGVtTWVtb3J5
LCBMb2NhbDAsIDB4MDIpCiAgICAgICAgRmllbGQgKFZBUjAsIEJ5dGVBY2MsIE5vTG9jaywg
UHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBBRFRELCAgIDIsIAogICAgICAgICAg
ICBBRFBTLCAgIDEsIAogICAgICAgICAgICBBRFBELCAgIDEsIAogICAgICAgICAgICBBRFNP
LCAgIDEsIAogICAgICAgICAgICBBRFNDLCAgIDEsIAogICAgICAgICAgICBBRFNSLCAgIDEs
IAogICAgICAgICAgICBBRElTLCAgIDEsIAogICAgICAgICAgICBBRERTLCAgIDMKICAgICAg
ICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVkFSMSwgU3lzdGVtTWVtb3J5LCBMb2Nh
bDEsIDB4MDEwMCkKICAgICAgICBGaWVsZCAoVkFSMSwgRFdvcmRBY2MsIE5vTG9jaywgUHJl
c2VydmUpCiAgICAgICAgewogICAgICAgICAgICBJQzAwLCAgIDMyLCAKICAgICAgICAgICAg
SUMwNCwgICAzMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHgxMCksIAogICAgICAgICAgICBJ
QzEwLCAgIDMyLCAKICAgICAgICAgICAgSUMxNCwgICAzMiwgCiAgICAgICAgICAgIElDMTgs
ICAgMzIsIAogICAgICAgICAgICBJQzFDLCAgIDMyLCAKICAgICAgICAgICAgSUMyMCwgICAz
MiwgCiAgICAgICAgICAgIE9mZnNldCAoMHgzMCksIAogICAgICAgICAgICBJQzMwLCAgIDMy
LCAKICAgICAgICAgICAgSUMzNCwgICAzMiwgCiAgICAgICAgICAgIElDMzgsICAgMzIsIAog
ICAgICAgICAgICBJQzNDLCAgIDMyLCAKICAgICAgICAgICAgSUM0MCwgICAzMiwgCiAgICAg
ICAgICAgIElDNDQsICAgMzIsIAogICAgICAgICAgICBJQzQ4LCAgIDMyLCAKICAgICAgICAg
ICAgT2Zmc2V0ICgweDU0KSwgCiAgICAgICAgICAgIElDNTQsICAgMzIsIAogICAgICAgICAg
ICBPZmZzZXQgKDB4NkMpLCAKICAgICAgICAgICAgSUM2QywgICAzMiwgCiAgICAgICAgICAg
IElDNzAsICAgMzIsIAogICAgICAgICAgICBJQzc0LCAgIDMyLCAKICAgICAgICAgICAgSUM3
OCwgICAzMiwgCiAgICAgICAgICAgIElDN0MsICAgMzIsIAogICAgICAgICAgICBJQzgwLCAg
IDMyLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDlDKSwgCiAgICAgICAgICAgIElDOUMsICAg
MzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4RjQpLCAKICAgICAgICAgICAgSUNGNCwgICAz
MgogICAgICAgIH0KCiAgICAgICAgTmFtZSAoQlVGRiwgQnVmZmVyICgweDAzKQogICAgICAg
IHsKICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAuLi4KICAgICAgICB9KQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAo
QlVGRiwgMHgwMCwgQU9BQykKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MDEs
IElTQ0wpCiAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDAyLCBJU0RBKQogICAg
ICAgIEFjcXVpcmUgKE00RTUsIDB4RkZGRikKICAgICAgICBMb2NhbDEgPSAweDAwMDE4NkEw
CiAgICAgICAgTG9jYWwwID0gMHgwMAogICAgICAgIEFPQUMgPSBBRFREIC8qIFxNNEUwLkFE
VEQgKi8KICAgICAgICBJU0NMID0gTTAxMSAoMHhGRUQ4MEQwMCwgTTRFNywgMHgwMCwgMHgw
OCkKICAgICAgICBJU0RBID0gTTAxMSAoMHhGRUQ4MEQwMCwgTTRFOCwgMHgwMCwgMHgwOCkK
ICAgICAgICBNMDEyICgweEZFRDgwRDAwLCBNNEU3LCAweDAwLCAweDA4LCBNNEU5KQogICAg
ICAgIE0wMTIgKDB4RkVEODBEMDAsIE00RTgsIDB4MDAsIDB4MDgsIE00RTkpCiAgICAgICAg
TG9jYWwyID0gQU9BQyAvKiBcTTRFMC5BT0FDICovCiAgICAgICAgSWYgKChMb2NhbDIgPT0g
MHgwMykpCiAgICAgICAgewogICAgICAgICAgICBBRFREID0gMHgwMAogICAgICAgICAgICBB
RFBEID0gMHgwMQogICAgICAgICAgICBMb2NhbDMgPSBBRERTIC8qIFxNNEUwLkFERFMgKi8K
ICAgICAgICAgICAgV2hpbGUgKChMb2NhbDMgIT0gMHgwNykpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIExvY2FsMS0tCiAgICAgICAgICAgICAgICBTdGFsbCAoMHgwQSkKICAg
ICAgICAgICAgICAgIExvY2FsMyA9IEFERFMgLyogXE00RTAuQUREUyAqLwogICAgICAgICAg
ICAgICAgSWYgKChMb2NhbDEgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwwID0gMHhGRjAxCiAgICAgICAgICAgICAgICAgICAgQnJlYWsK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYg
KChMb2NhbDAgPT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIgPSBJQzcw
IC8qIFxNNEUwLklDNzAgKi8KICAgICAgICAgICAgV2hpbGUgKCgweDIwID09IChMb2NhbDIg
JiAweDIwKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09
IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIg
IEkyY1RpbWVvdXQgZm9yIElERSA6ICgweCVYKVxuIiwgTG9jYWwyLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4RkYwMgog
ICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg
ICAgICAgTG9jYWwyID0gSUM3MCAvKiBcTTRFMC5JQzcwICovCiAgICAgICAgICAgICAgICBM
b2NhbDEtLQogICAgICAgICAgICAgICAgU3RhbGwgKDB4MEEpCiAgICAgICAgICAgIH0KICAg
ICAgICB9CgogICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgIHsKICAgICAg
ICAgICAgSUM2QyA9IDB4MDAKICAgICAgICAgICAgTG9jYWwyID0gSUM5QyAvKiBcTTRFMC5J
QzlDICovCiAgICAgICAgICAgIFdoaWxlICgoMHgwMCAhPSAoTG9jYWwyICYgMHgwMSkpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAwKSkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBJMmNUaW1lb3V0
IGZvciBmSTJjRGlzYWJsZSA6ICgweCVYKVxuIiwgTG9jYWwyLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4RkYwMwogICAg
ICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgTG9jYWwyID0gSUM5QyAvKiBcTTRFMC5JQzlDICovCiAgICAgICAgICAgICAgICBMb2Nh
bDEtLQogICAgICAgICAgICAgICAgU3RhbGwgKDB4MEEpCiAgICAgICAgICAgIH0KICAgICAg
ICB9CgogICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAgICAgIHsKICAgICAgICAg
ICAgSUMwMCA9IDB4NjMKICAgICAgICAgICAgSUMwNCA9IEFyZzEKICAgICAgICAgICAgSUMx
NCA9IDB4MDI4NQogICAgICAgICAgICBJQzE4ID0gMHgwMzU3CiAgICAgICAgICAgIElDN0Mg
PSAweDAwNDAwMDQwCiAgICAgICAgICAgIElDMzggPSAweDAwCiAgICAgICAgICAgIElDMzQg
PSAweDAwCiAgICAgICAgICAgIElDMzAgPSAweDAwCiAgICAgICAgICAgIExvY2FsMiA9IElD
NDAgLyogXE00RTAuSUM0MCAqLwogICAgICAgICAgICBMb2NhbDIgPSBJQzU0IC8qIFxNNEUw
LklDNTQgKi8KICAgICAgICB9CgogICAgICAgIElmICgoTG9jYWwwID09IDB4MDApKQogICAg
ICAgIHsKICAgICAgICAgICAgSUM2QyA9IDB4MDEKICAgICAgICAgICAgTG9jYWwyID0gSUM5
QyAvKiBcTTRFMC5JQzlDICovCiAgICAgICAgICAgIFdoaWxlICgoMHgwMCA9PSAoTG9jYWwy
ICYgMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9
PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgi
ICBJMmNUaW1lb3V0IGZvciBJMmNFbmFibGUgOiAoMHglWClcbiIsIExvY2FsMiwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAw
eEZGMDQKICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIExvY2FsMiA9IElDOUMgLyogXE00RTAuSUM5QyAqLwogICAgICAgICAg
ICAgICAgTG9jYWwxLS0KICAgICAgICAgICAgICAgIFN0YWxsICgweDBBKQogICAgICAgICAg
ICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICB7
CiAgICAgICAgICAgIExvY2FsMyA9IEFyZzMKICAgICAgICAgICAgTG9jYWw0ID0gQXJnMgog
ICAgICAgICAgICBMb2NhbDUgPSAweDAwCiAgICAgICAgICAgIExvY2FsNiA9IDB4MDAKICAg
ICAgICAgICAgTG9jYWw3ID0gMHgwMgogICAgICAgICAgICBXaGlsZSAoKChMb2NhbDMgKyBM
b2NhbDQpID4gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoTG9j
YWwxID09IDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00
NjAgKCIgIEkyY1RpbWVvdXQgZm9yIFR4Ung6ICgweCVYLCAweCVYKVxuIiwgTG9jYWwzLCBM
b2NhbDQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTG9j
YWwwID0gMHhGRjA2CiAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBMb2NhbDIgPSBJQzcwIC8qIFxNNEUwLklDNzAgKi8KICAg
ICAgICAgICAgICAgIElmICgoKExvY2FsMiAmIDB4MDgpICE9IDB4MDApKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IElDMTAgLyogXE00RTAuSUMx
MCAqLwogICAgICAgICAgICAgICAgICAgIExvY2FsMS0tCiAgICAgICAgICAgICAgICAgICAg
U3RhbGwgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgQ29udGludWUKICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDIgPSBJQzc0IC8qIFxNNEUwLklDNzQgKi8K
ICAgICAgICAgICAgICAgIElmICgoTG9jYWwyICE9IDB4MDApKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIExvY2FsMS0tCiAgICAgICAgICAgICAgICAgICAgU3Rh
bGwgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgQ29udGludWUKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMyA+IDB4MDEpKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIElDMTAgPSAoVG9JbnRlZ2VyIChEZXJlZk9mIChB
cmc0IFtMb2NhbDVdKSkgJiAweEZGKQogICAgICAgICAgICAgICAgICAgIExvY2FsMy0tCiAg
ICAgICAgICAgICAgICAgICAgTG9jYWw1KysKICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIEVsc2VJZiAoKChMb2NhbDMgPT0gMHgwMSkgJiYgKExvY2FsNCAhPSAweDAwKSkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSUMxMCA9IChUb0ludGVn
ZXIgKERlcmVmT2YgKEFyZzQgW0xvY2FsNV0pKSAmIDB4RkYpCiAgICAgICAgICAgICAgICAg
ICAgTG9jYWwzLS0KICAgICAgICAgICAgICAgICAgICBMb2NhbDUrKwogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoKExvY2FsMyA9PSAweDAxKSAmJiAoTG9j
YWw0ID09IDB4MDApKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ
QzEwID0gKChUb0ludGVnZXIgKERlcmVmT2YgKEFyZzQgW0xvY2FsNV0pKSAmIDB4RkYKICAg
ICAgICAgICAgICAgICAgICAgICAgKSB8IDB4MDIwMCkKICAgICAgICAgICAgICAgICAgICBM
b2NhbDMtLQogICAgICAgICAgICAgICAgICAgIExvY2FsNSsrCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICBFbHNlSWYgKCgoTG9jYWwzID09IDB4MDApICYmIChMb2NhbDQg
PiAweDAxKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSUMxMCA9
IDB4MDEwMAogICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IDB4MDEKICAgICAgICAgICAg
ICAgICAgICBMb2NhbDQtLQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxz
ZUlmICgoKExvY2FsMyA9PSAweDAwKSAmJiAoTG9jYWw0ID09IDB4MDEpKSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJQzEwID0gMHgwMzAwCiAgICAgICAgICAg
ICAgICAgICAgTG9jYWw2ID0gMHgwMQogICAgICAgICAgICAgICAgICAgIExvY2FsNC0tCiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwxLS0KICAgICAgICAgICAg
ICAgIFN0YWxsICgweDBBKQogICAgICAgICAgICAgICAgTG9jYWwyID0gSUMzNCAvKiBcTTRF
MC5JQzM0ICovCiAgICAgICAgICAgICAgICBJZiAoKDB4MDAgIT0gKExvY2FsMiAmIDB4NDAp
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDcgPSBJQzU0
IC8qIFxNNEUwLklDNTQgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBJQzgwIC8q
IFxNNEUwLklDODAgKi8KICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBJMmNUWCBBYnJ0
IFNvdXJjZTogKDB4JVgpXG4iLCBMb2NhbDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHhGRjA1CiAgICAgICAgICAgICAg
ICAgICAgQnJlYWsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKExv
Y2FsNiAhPSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBM
b2NhbDIgPSBJQzcwIC8qIFxNNEUwLklDNzAgKi8KICAgICAgICAgICAgICAgICAgICBXaGls
ZSAoKChMb2NhbDIgJiAweDA4KSAhPSAweDA4KSkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IElDNzAgLyogXE00RTAuSUM3MCAqLwog
ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAwKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAg
STJjVGltZW91dCBmb3IgUnggOiAoMHglWClcbiIsIExvY2FsMiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4
RkYwNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxLS0KICAgICAgICAg
ICAgICAgICAgICAgICAgU3RhbGwgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoTG9jYWw2ICE9IDB4MDApKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IElDMTAgLyog
XE00RTAuSUMxMCAqLwogICAgICAgICAgICAgICAgICAgIFJURkYgW0xvY2FsN10gPSBMb2Nh
bDIKICAgICAgICAgICAgICAgICAgICBMb2NhbDEtLQogICAgICAgICAgICAgICAgICAgIFN0
YWxsICgweDE0KQogICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IDB4MDAKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgUmVsZWFzZSAoTTRF
NSkKICAgICAgICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAg
IExvY2FsMiA9IElDNzAgLyogXE00RTAuSUM3MCAqLwogICAgICAgICAgICBXaGlsZSAoKDB4
MjAgPT0gKExvY2FsMiAmIDB4MjApKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
SWYgKChMb2NhbDEgPT0gMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgTTQ2MCAoIiAgSTJjVGltZW91dCBmb3IgSURFMiA6ICgweCVYKVxuIiwgTG9jYWwy
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIExv
Y2FsMCA9IDB4RkYwOAogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgTG9jYWwyID0gSUM3MCAvKiBcTTRFMC5JQzcwICovCiAg
ICAgICAgICAgICAgICBMb2NhbDEtLQogICAgICAgICAgICAgICAgU3RhbGwgKDB4MEEpCiAg
ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmICgoKExvY2FsMCA+IDB4RkYwNCkg
JiYgKExvY2FsMCA8IDB4RkYwOCkpKQogICAgICAgIHsKICAgICAgICAgICAgSUM2QyA9IDB4
MDAKICAgICAgICAgICAgTG9jYWwyID0gSUM5QyAvKiBcTTRFMC5JQzlDICovCiAgICAgICAg
ICAgIFdoaWxlICgoMHgwMCAhPSAoTG9jYWwyICYgMHgwMSkpKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBJMmNUaW1lb3V0IGZvciBmSTJjRGlzYWJs
ZSA6ICgweCVYKVxuIiwgTG9jYWwyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQog
ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4RkYwOQogICAgICAgICAgICAgICAgICAg
IEJyZWFrCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwyID0gSUM5
QyAvKiBcTTRFMC5JQzlDICovCiAgICAgICAgICAgICAgICBMb2NhbDEtLQogICAgICAgICAg
ICAgICAgU3RhbGwgKDB4MEEpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIExv
Y2FsMyA9IEFPQUMgLyogXE00RTAuQU9BQyAqLwogICAgICAgIElmICgoTG9jYWwzID09IDB4
MDMpKQogICAgICAgIHsKICAgICAgICAgICAgQURQRCA9IDB4MDAKICAgICAgICAgICAgTG9j
YWwyID0gQUREUyAvKiBcTTRFMC5BRERTICovCiAgICAgICAgICAgIFdoaWxlICgoTG9jYWwy
ICE9IDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9
PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgi
ICBJMmNUaW1lb3V0IGZvciBBT0FDIE9mZiA6ICgweCVYKVxuIiwgTG9jYWwyLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4
RkYxMAogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICB9CgogICAg
ICAgICAgICAgICAgTG9jYWwxLS0KICAgICAgICAgICAgICAgIFN0YWxsICgweDBBKQogICAg
ICAgICAgICAgICAgTG9jYWwyID0gQUREUyAvKiBcTTRFMC5BRERTICovCiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIEFEVEQgPSAweDAzCiAgICAgICAgfQoKICAgICAgICBNMDEyICgw
eEZFRDgwRDAwLCBNNEU3LCAweDAwLCAweDA4LCBJU0NMKQogICAgICAgIE0wMTIgKDB4RkVE
ODBEMDAsIE00RTgsIDB4MDAsIDB4MDgsIElTREEpCiAgICAgICAgQ3JlYXRlV29yZEZpZWxk
IChSVEZGLCAweDAwLCBTVEFUKQogICAgICAgIFNUQVQgPSBMb2NhbDAKICAgICAgICBSZXR1
cm4gKFJURkYpIC8qIFxNNEUwLlJURkYgKi8KICAgIH0KCiAgICBNZXRob2QgKE00RTEsIDMs
IFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTmFtZSAoUlRGRiwgQnVmZmVyICgweDAxMDAp
CiAgICAgICAgewogICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICB9KQogICAgICAgIE5hbWUgKFdSRkYs
IEJ1ZmZlciAoMHgwMSkKICAgICAgICB7CiAgICAgICAgICAgICAweDAwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgIH0pCiAgICAg
ICAgQ3JlYXRlQnl0ZUZpZWxkIChXUkZGLCAweDAwLCBXREFUKQogICAgICAgIFdEQVQgPSBB
cmcyCiAgICAgICAgUlRGRiA9IE00RTAgKEFyZzAsIEFyZzEsIDB4MDEsIDB4MDEsIFdSRkYp
CiAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChSVEZGLCAweDAwLCBTVEFUKQogICAgICAgIENy
ZWF0ZUJ5dGVGaWVsZCAoUlRGRiwgMHgwMiwgUkRBVCkKICAgICAgICBMb2NhbDAgPSBTVEFU
IC8qIFxNNEUxLlNUQVQgKi8KICAgICAgICBMb2NhbDEgPSBSREFUIC8qIFxNNEUxLlJEQVQg
Ki8KICAgICAgICBNNDYwICgiICBSZWFkIEkyQyBCeXRlICgweCVYLCAweCVYKVxuIiwgTG9j
YWwwLCBMb2NhbDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgSWYgKChMb2Nh
bDAgPT0gMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKChSREFUICYgMHhG
RikpCiAgICAgICAgfQoKICAgICAgICBSZXR1cm4gKDB4MDApCiAgICB9CgogICAgTWV0aG9k
IChNNEUyLCA0LCBTZXJpYWxpemVkKQogICAgewogICAgICAgIE5hbWUgKFdSRkYsIEJ1ZmZl
ciAoMHgwMikKICAgICAgICB7CiAgICAgICAgICAgICAweDAwLCAweDAwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4KICAgICAgICB9KQogICAgICAgIENy
ZWF0ZUJ5dGVGaWVsZCAoV1JGRiwgMHgwMCwgV0RBMSkKICAgICAgICBDcmVhdGVCeXRlRmll
bGQgKFdSRkYsIDB4MDEsIFdEQTIpCiAgICAgICAgV0RBMSA9IEFyZzIKICAgICAgICBXREEy
ID0gKEFyZzMgJiAweEZGKQogICAgICAgIExvY2FsMCA9IE00RTAgKEFyZzAsIEFyZzEsIDB4
MDAsIDB4MDIsIFdSRkYpCiAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChMb2NhbDAsIDB4MDAs
IFNUQVQpCiAgICAgICAgTG9jYWwxID0gU1RBVCAvKiBcTTRFMi5TVEFUICovCiAgICAgICAg
TTQ2MCAoIiAgV3JpdGUgSTJDIEJ5dGUoMHglWClcbiIsIExvY2FsMSwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCkKICAgIH0KCiAgICBTY29wZSAoXF9TQi5HUElPKQogICAgewog
ICAgICAgIE1ldGhvZCAoWElOSSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAg
ICAgICAgIE00NjAgKCIgIEtFUi1BU0wtXFxfU0IuR1BJTy5fSU5JIFN0YXJ0XG4iLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICBJZiAoKE00RjAg
IT0gMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IE00RjEg
KDB4MDApCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBNNEYxICgweDAxKQogICAgICAgICAg
ICAgICAgTG9jYWwwID0gTTRGMSAoMHgwMikKICAgICAgICAgICAgICAgIExvY2FsMCA9IE00
RjEgKDB4MDMpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wt
XFxfU0IuR1BJTy5fSU5JIEVuZFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfR1BFKQogICAgewogICAgICAg
IE1ldGhvZCAoU0lFMCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE00
NjAgKCIgIEtFUi1BU0wtXFxfR1BFLlNJRTAgU3RhcnRcbiIsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLkJJ
RTApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNh
bGxvdXQgXFxfR1BFLkJJRTBcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDApCiAgICAgICAgICAgICAgICBcX0dQRS5CSUUwICgpCiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIExvY2FsMCA9IE00RjEgKDB4MDApCiAgICAgICAgICAgIElmICgoKExvY2FsMCAm
IDB4MDEpID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoQ29u
ZFJlZk9mIChcX0dQRS5TUDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQMDBcbiIsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9HUEUu
U1AwMCAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoKChMb2NhbDAgJiAweDAyKSA9PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuU1AwMSkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDAx
XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAg
ICAgICAgIFxfR1BFLlNQMDEgKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHgwNCkgPT0gMHgwNCkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQMDIpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91
dCBcXF9HUEUuU1AwMlxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICBcX0dQRS5TUDAyICgpCiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4MDgpID09IDB4MDgp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5T
UDAzKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBL
RVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQMDNcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9HUEUuU1AwMyAoKQogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAw
eDEwKSA9PSAweDEwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRS
ZWZPZiAoXF9HUEUuU1AwNCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTTQ2MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDA0XG4iLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQ
MDQgKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg
KCgoTG9jYWwwICYgMHgyMCkgPT0gMHgyMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQMDUpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBcXF9HUEUuU1AwNVxu
IiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICBcX0dQRS5TUDA1ICgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4NDApID09IDB4NDApKQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5TUDA2KSkKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQg
XFxfR1BFLlNQMDZcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAg
ICAgICAgICAgICAgICAgICAgXF9HUEUuU1AwNiAoKQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDgwKSA9PSAweDgwKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuU1Aw
NykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VS
LUFTTC1DYWxsb3V0IFxcX0dQRS5TUDA3XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQMDcgKCkKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHgw
MTAwKSA9PSAweDAxMDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoQ29u
ZFJlZk9mIChcX0dQRS5TUDEwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQMTBcbiIsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9HUEUu
U1AxMCAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoKChMb2NhbDAgJiAweDAyMDApID09IDB4MDIwMCkpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQMTEpKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBcXF9HUEUu
U1AxMVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgICAgICAgICBcX0dQRS5TUDExICgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4MDQwMCkgPT0gMHgwNDAwKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuU1AxMikp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFT
TC1DYWxsb3V0IFxcX0dQRS5TUDEyXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQMTIgKCkKICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHgwODAw
KSA9PSAweDA4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoQ29uZFJl
Zk9mIChcX0dQRS5TUDEzKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQMTNcbiIsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9HUEUuU1Ax
MyAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAo
KChMb2NhbDAgJiAweDEwMDApID09IDB4MTAwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQMTQpKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBcXF9HUEUuU1Ax
NFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
ICAgICAgICBcX0dQRS5TUDE0ICgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4MjAwMCkgPT0gMHgyMDAwKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuU1AxNSkpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1D
YWxsb3V0IFxcX0dQRS5TUDE1XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQMTUgKCkKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHg0MDAwKSA9
PSAweDQwMDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m
IChcX0dQRS5TUDE2KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBN
NDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQMTZcbiIsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9HUEUuU1AxNiAo
KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChM
b2NhbDAgJiAweDgwMDApID09IDB4ODAwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQMTcpKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBcXF9HUEUuU1AxN1xu
IiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAg
ICAgICBcX0dQRS5TUDE3ICgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLkFJRTApKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLkFJRTBcbiIs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBc
X0dQRS5BSUUwICgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE00NjAgKCIgIEtFUi1B
U0wtXFxfR1BFLlNJRTAgRW5kXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChTSUUxLCAwLCBTZXJpYWxpemVkKQog
ICAgICAgIHsKICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1cXF9HUEUuU0lFMSBTdGFy
dFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg
SWYgKENvbmRSZWZPZiAoXF9HUEUuQklFMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBcXF9HUEUuQklFMVxuIiwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgIFxfR1BFLkJJRTEg
KCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwwID0gTTRGMSAoMHgwMSkKICAg
ICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHgwMSkgPT0gMHgwMSkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQMjApKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBc
XF9HUEUuU1AyMFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgICAgICAgICBcX0dQRS5TUDIwICgpCiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4MDIpID09IDB4MDIpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5TUDIx
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBLRVIt
QVNMLUNhbGxvdXQgXFxfR1BFLlNQMjFcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9HUEUuU1AyMSAoKQogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDA0
KSA9PSAweDA0KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP
ZiAoXF9HUEUuU1AyMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
TTQ2MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDIyXG4iLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQMjIg
KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgo
TG9jYWwwICYgMHgwOCkgPT0gMHgwOCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IElmIChDb25kUmVmT2YgKFxfR1BFLlNQMjMpKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBcXF9HUEUuU1AyM1xuIiwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAg
ICBcX0dQRS5TUDIzICgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIElmICgoKExvY2FsMCAmIDB4MTApID09IDB4MTApKQogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5TUDI0KSkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxf
R1BFLlNQMjRcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAg
ICAgICAgICAgICAgICAgXF9HUEUuU1AyNCAoKQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CgogICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDIwKSA9PSAweDIwKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuU1AyNSkp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFT
TC1DYWxsb3V0IFxcX0dQRS5TUDI1XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQMjUgKCkKICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHg0MCkg
PT0gMHg0MCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg
KFxfR1BFLlNQMjYpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00
NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBcXF9HUEUuU1AyNlxuIiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBcX0dQRS5TUDI2ICgp
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExv
Y2FsMCAmIDB4ODApID09IDB4ODApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ
ZiAoQ29uZFJlZk9mIChcX0dQRS5TUDI3KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQMjdcbiIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
XF9HUEUuU1AyNyAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBJZiAoKChMb2NhbDAgJiAweDAxMDApID09IDB4MDEwMCkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQMzApKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBc
XF9HUEUuU1AzMFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgICAgICAgICBcX0dQRS5TUDMwICgpCiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4MDIwMCkgPT0gMHgwMjAw
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUu
U1AzMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAg
S0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDMxXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQMzEgKCkKICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYg
MHgwNDAwKSA9PSAweDA0MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo
Q29uZFJlZk9mIChcX0dQRS5TUDMyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQMzJcbiIsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9H
UEUuU1AzMiAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBJZiAoKChMb2NhbDAgJiAweDA4MDApID09IDB4MDgwMCkpCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQMzMpKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBcXF9H
UEUuU1AzM1xuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAg
ICAgICAgICAgICAgICBcX0dQRS5TUDMzICgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4MTAwMCkgPT0gMHgxMDAwKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuU1Az
NCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VS
LUFTTC1DYWxsb3V0IFxcX0dQRS5TUDM0XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQMzQgKCkKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHgy
MDAwKSA9PSAweDIwMDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoQ29u
ZFJlZk9mIChcX0dQRS5TUDM1KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQMzVcbiIsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9HUEUu
U1AzNSAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoKChMb2NhbDAgJiAweDQwMDApID09IDB4NDAwMCkpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQMzYpKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBcXF9HUEUu
U1AzNlxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgICAgICAgICBcX0dQRS5TUDM2ICgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
IH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4ODAwMCkgPT0gMHg4MDAwKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuU1AzNykp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFT
TC1DYWxsb3V0IFxcX0dQRS5TUDM3XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQMzcgKCkKICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUu
QUlFMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wt
Q2FsbG91dCBcXF9HUEUuQUlFMVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgICAgIFxfR1BFLkFJRTEgKCkKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1cXF9HUEUuU0lFMSBFbmRcbiIsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg
KFNJRTIsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBNNDYwICgiICBL
RVItQVNMLVxcX0dQRS5TSUUyIFN0YXJ0XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwKQogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5CSUUyKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxc
X0dQRS5CSUUyXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgICAgICAgICAgXF9HUEUuQklFMiAoKQogICAgICAgICAgICB9CgogICAgICAgICAgICBM
b2NhbDAgPSBNNEYxICgweDAyKQogICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDAxKSA9
PSAweDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo
XF9HUEUuU1A0MCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2
MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDQwXG4iLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQNDAgKCkK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9j
YWwwICYgMHgwMikgPT0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm
IChDb25kUmVmT2YgKFxfR1BFLlNQNDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBcXF9HUEUuU1A0MVxuIiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBc
X0dQRS5TUDQxICgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIElmICgoKExvY2FsMCAmIDB4MDQpID09IDB4MDQpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5TUDQyKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BF
LlNQNDJcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAg
ICAgICAgICAgICAgXF9HUEUuU1A0MiAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9CgogICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDA4KSA9PSAweDA4KSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuU1A0MykpCiAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1D
YWxsb3V0IFxcX0dQRS5TUDQzXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQNDMgKCkKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHgxMCkgPT0g
MHgxMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxf
R1BFLlNQNDQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAg
KCIgIEtFUi1BU0wtQ2FsbG91dCBcXF9HUEUuU1A0NFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBcX0dQRS5TUDQ0ICgpCiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2Fs
MCAmIDB4MjApID09IDB4MjApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo
Q29uZFJlZk9mIChcX0dQRS5TUDQ1KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQNDVcbiIsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9H
UEUuU1A0NSAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBJZiAoKChMb2NhbDAgJiAweDQwKSA9PSAweDQwKSkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuU1A0NikpCiAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5T
UDQ2XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAg
ICAgICAgICAgIFxfR1BFLlNQNDYgKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
fQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHg4MCkgPT0gMHg4MCkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQNDcpKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2Fs
bG91dCBcXF9HUEUuU1A0N1xuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICBcX0dQRS5TUDQ3ICgpCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4MDEwMCkgPT0g
MHgwMTAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo
XF9HUEUuU1A1MCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2
MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDUwXG4iLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQNTAgKCkK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9j
YWwwICYgMHgwMjAwKSA9PSAweDAyMDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBJZiAoQ29uZFJlZk9mIChcX0dQRS5TUDUxKSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQNTFcbiIs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAg
ICAgXF9HUEUuU1A1MSAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg
ICAgICAgICBJZiAoKChMb2NhbDAgJiAweDA0MDApID09IDB4MDQwMCkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQNTIpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91
dCBcXF9HUEUuU1A1MlxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICBcX0dQRS5TUDUyICgpCiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4MDgwMCkgPT0gMHgw
ODAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9H
UEUuU1A1MykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAo
IiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDUzXG4iLCAweDAwLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQNTMgKCkKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWww
ICYgMHgxMDAwKSA9PSAweDEwMDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ
ZiAoQ29uZFJlZk9mIChcX0dQRS5TUDU0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQNTRcbiIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg
XF9HUEUuU1A1NCAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBJZiAoKChMb2NhbDAgJiAweDIwMDApID09IDB4MjAwMCkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQNTUpKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91dCBc
XF9HUEUuU1A1NVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICAgICAgICAgICAgICBcX0dQRS5TUDU1ICgpCiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4NDAwMCkgPT0gMHg0MDAw
KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUu
U1A1NikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAg
S0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDU2XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQNTYgKCkKICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYg
MHg4MDAwKSA9PSAweDgwMDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo
Q29uZFJlZk9mIChcX0dQRS5TUDU3KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQNTdcbiIsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9H
UEUuU1A1NyAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg
ICBJZiAoQ29uZFJlZk9mIChcX0dQRS5BSUUyKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5BSUUyXG4iLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgXF9HUEUuQUlF
MiAoKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLVxcX0dQ
RS5TSUUyIEVuZFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAg
ICAgICB9CgogICAgICAgIE1ldGhvZCAoU0lFMywgMCwgU2VyaWFsaXplZCkKICAgICAgICB7
CiAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtXFxfR1BFLlNJRTMgU3RhcnRcbiIsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgIElmIChDb25k
UmVmT2YgKFxfR1BFLkJJRTMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYw
ICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLkJJRTNcbiIsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICBcX0dQRS5CSUUzICgpCiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIExvY2FsMCA9IE00RjEgKDB4MDMpCiAgICAgICAgICAg
IElmICgoKExvY2FsMCAmIDB4MDEpID09IDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5TUDYwKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQ
NjBcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAg
ICAgICAgICAgXF9HUEUuU1A2MCAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CgogICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDAyKSA9PSAweDAyKSkKICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuU1A2MSkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DYWxs
b3V0IFxcX0dQRS5TUDYxXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
KQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQNjEgKCkKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHgwNCkgPT0gMHgw
NCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BF
LlNQNjIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIg
IEtFUi1BU0wtQ2FsbG91dCBcXF9HUEUuU1A2MlxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBcX0dQRS5TUDYyICgpCiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAm
IDB4MDgpID09IDB4MDgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoQ29u
ZFJlZk9mIChcX0dQRS5TUDYzKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQNjNcbiIsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9HUEUu
U1A2MyAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJ
ZiAoKChMb2NhbDAgJiAweDEwKSA9PSAweDEwKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgSWYgKENvbmRSZWZPZiAoXF9HUEUuU1A2NCkpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDY0
XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAg
ICAgICAgIFxfR1BFLlNQNjQgKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHgyMCkgPT0gMHgyMCkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQNjUpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91
dCBcXF9HUEUuU1A2NVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICBcX0dQRS5TUDY1ICgpCiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4NDApID09IDB4NDAp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5T
UDY2KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBL
RVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQNjZcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgXF9HUEUuU1A2NiAoKQogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAw
eDgwKSA9PSAweDgwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRS
ZWZPZiAoXF9HUEUuU1A2NykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgTTQ2MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDY3XG4iLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQ
NjcgKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg
KCgoTG9jYWwwICYgMHgwMTAwKSA9PSAweDAxMDApKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5TUDcwKSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQ
NzBcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAg
ICAgICAgICAgXF9HUEUuU1A3MCAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CgogICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDAyMDApID09IDB4MDIwMCkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQNzEpKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wt
Q2FsbG91dCBcXF9HUEUuU1A3MVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCkKICAgICAgICAgICAgICAgICAgICBcX0dQRS5TUDcxICgpCiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4MDQwMCkg
PT0gMHgwNDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP
ZiAoXF9HUEUuU1A3MikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
TTQ2MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDcyXG4iLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQNzIg
KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgo
TG9jYWwwICYgMHgwODAwKSA9PSAweDA4MDApKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5TUDczKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQNzNc
biIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAg
ICAgICAgXF9HUEUuU1A3MyAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDEwMDApID09IDB4MTAwMCkpCiAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQNzQpKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2Fs
bG91dCBcXF9HUEUuU1A3NFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCkKICAgICAgICAgICAgICAgICAgICBcX0dQRS5TUDc0ICgpCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4MjAwMCkgPT0g
MHgyMDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo
XF9HUEUuU1A3NSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2
MCAoIiAgS0VSLUFTTC1DYWxsb3V0IFxcX0dQRS5TUDc1XG4iLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIFxfR1BFLlNQNzUgKCkK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoTG9j
YWwwICYgMHg0MDAwKSA9PSAweDQwMDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBJZiAoQ29uZFJlZk9mIChcX0dQRS5TUDc2KSkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQgXFxfR1BFLlNQNzZcbiIs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAg
ICAgXF9HUEUuU1A3NiAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg
ICAgICAgICBJZiAoKChMb2NhbDAgJiAweDgwMDApID09IDB4ODAwMCkpCiAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlNQNzcpKQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtQ2FsbG91
dCBcXF9HUEUuU1A3N1xuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICBcX0dQRS5TUDc3ICgpCiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLkFJRTMpKQog
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGxvdXQg
XFxfR1BFLkFJRTNcbiIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAg
ICAgICAgICAgICAgICBcX0dQRS5BSUUzICgpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IE00NjAgKCIgIEtFUi1BU0wtXFxfR1BFLlNJRTMgRW5kXG4iLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgTmFtZSAoTTREMiwgQnVm
ZmVyICgweDA4KSB7fSkKICAgICAgICBNZXRob2QgKFhMMEIsIDAsIFNlcmlhbGl6ZWQpCiAg
ICAgICAgewogICAgICAgICAgICBMb2NhbDMgPSBCdWZmZXIgKDB4MDgpIHt9CiAgICAgICAg
ICAgIENyZWF0ZVdvcmRGaWVsZCAoTG9jYWwzLCAweDAwLCBNMjU0KQogICAgICAgICAgICBD
cmVhdGVCeXRlRmllbGQgKExvY2FsMywgMHgwMiwgTTI1NSkKICAgICAgICAgICAgQ3JlYXRl
RFdvcmRGaWVsZCAoTG9jYWwzLCAweDAzLCBNMjU2KQogICAgICAgICAgICBNMjU2ID0gMHgw
MAogICAgICAgICAgICBNMjU0ID0gMHgwNwogICAgICAgICAgICBNMjU1ID0gMHgzMAogICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLkFMSUIpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLUNhbGwgXFxfU0IuQUxJQiAoMHgwQywgMHgl
WClcbiIsIExvY2FsMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkKICAgICAgICAg
ICAgICAgIExvY2FsNCA9IFxfU0IuQUxJQiAoMHgwQywgTG9jYWwzKQogICAgICAgICAgICAg
ICAgTTREMiA9IExvY2FsNAogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTTRE
MiwgMHgwMCwgTTREMCkKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKE00RDIs
IDB4MDQsIE00RDEpCiAgICAgICAgICAgICAgICBUb0ludGVnZXIgKE00RDAsIExvY2FsMCkK
ICAgICAgICAgICAgICAgIFRvSW50ZWdlciAoTTREMSwgTG9jYWwxKQogICAgICAgICAgICAg
ICAgTTQ2MCAoIiAgS0VSLUFTTC1BTElCIFJldHVybiBEYXRhICgweCVYLCAweCVYKVxuIiwg
TG9jYWwwLCBMb2NhbDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAg
ICBJZiAoKExvY2FsMCA9PSAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLkFQQUQpKQogICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5BUEFELk00NDYgWzB4MDFdID0gTG9j
YWwxCiAgICAgICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtTm90aWZ5IFxc
X1NCLkFQQUQgMHg4MFxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLkFQQUQsIDB4ODApIC8vIFN0
YXR1cyBDaGFuZ2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDAgPT0gMHgwMSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1Ob3RpZnkgXFxfU0Iu
QVBBRCAweDg0XG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoTG9jYWwwID09IDB4MDIp
KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1B
U0wtTm90aWZ5IFxcX1NCLkFQQUQgMHg4NVxuIiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChORlBDKSkK
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5GUEMgKCkK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
ICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0IpCiAgICB7CiAgICAgICAgTmFtZSAo
TUFDTywgMHgwMCkKICAgICAgICBEZXZpY2UgKEFQQUQpCiAgICAgICAgewogICAgICAgICAg
ICBOYW1lIChfSElELCAiQUNQSTAwMEMiIC8qIFByb2Nlc3NvciBBZ2dyZWdhdG9yIERldmlj
ZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKE00NDYsIFBh
Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDEsIAogICAg
ICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKF9T
VEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgSWYgKFxfT1NJICgiUHJvY2Vzc29yIEFnZ3JlZ2F0b3IgRGV2aWNl
IikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTTA0
QSAoTTEyOCwgMHg5MSkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDgw
KSA9PSAweDgwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIE00NjAgKCIgIEtFUi1BU0wtXFxfU0IuQVBBRC5fU1RBID0gMHhGXG4iLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICBS
ZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE00
NjAgKCIgIEtFUi1BU0wtXFxfU0IuQVBBRC5fU1RBID0gMHgwXG4iLCAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g
KDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE00
NjAgKCIgIEtFUi1BU0wtMS1cXF9TQi5BUEFELl9TVEEgPSAweDBcbiIsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw
eDAwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo
b2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE00NjAgKCIgIEtFUi1BU0wtXFxfU0IuQVBBRC5f
SU5JXG4iLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAg
ICAgICAgTG9jYWwwID0gTTA0QSAoTTEyOCwgMHg5MSkKICAgICAgICAgICAgICAgIElmICgo
KChMb2NhbDAgJiAweEMwKSA9PSAweEMwKSAmJiAoKExvY2FsMCAmIAogICAgICAgICAgICAg
ICAgICAgIDB4RkYwMCkgIT0gMHhGRjAwKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgTG9jYWwzID0gQnVmZmVyICgweDA4KSB7fQogICAgICAgICAgICAgICAg
ICAgIENyZWF0ZVdvcmRGaWVsZCAoTG9jYWwzLCAweDAwLCBNMjU0KQogICAgICAgICAgICAg
ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWwzLCAweDAyLCBNMjU1KQogICAgICAgICAg
ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsMywgMHgwMywgTTI1NikKICAgICAg
ICAgICAgICAgICAgICBNMjU2ID0gKExvY2FsMCA+PiAweDA4KQogICAgICAgICAgICAgICAg
ICAgIE0yNTQgPSAweDA3CiAgICAgICAgICAgICAgICAgICAgTTI1NSA9IDB4MzEKICAgICAg
ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLkFMSUIpKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTTQ2MCAoIiAgS0VSLUFTTC1DYWxs
IFxcX1NCLkFMSUIgKDB4MEMsIDB4JVgpXG4iLCBMb2NhbDMsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuQUxJQiAoMHgwQywg
TG9jYWwzKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFVSLCAwLCBOb3RTZXJpYWxpemVkKSAg
Ly8gX1BVUjogUHJvY2Vzc29yIFV0aWxpemF0aW9uIFJlcXVlc3QKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgVG9JbnRlZ2VyIChEZXJlZk9mIChNNDQ2IFsweDAwXSksIExvY2Fs
MCkKICAgICAgICAgICAgICAgIFRvSW50ZWdlciAoRGVyZWZPZiAoTTQ0NiBbMHgwMV0pLCBM
b2NhbDEpCiAgICAgICAgICAgICAgICBNNDYwICgiICBLRVItQVNMLVxcX1NCLkFQQUQuX1BV
UiBSZXR1cm4gUGFja2FnZSAoMikgKDB4JVgsIDB4JVgpIHRvIE9TUE1cbiIsIExvY2FsMCwg
TG9jYWwxLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQogICAgICAgICAgICAgICAgUmV0dXJu
IChNNDQ2KSAvKiBcX1NCXy5BUEFELk00NDYgKi8KICAgICAgICAgICAgfQogICAgICAgIH0K
ICAgIH0KfQoK

--------------YuTFcCuxiyG8h2Gi5HZkyDSN--


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 14:51:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 14:51:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759654.1169326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTjWv-0006gz-V4; Tue, 16 Jul 2024 14:51:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759654.1169326; Tue, 16 Jul 2024 14:51:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTjWv-0006gs-ST; Tue, 16 Jul 2024 14:51:49 +0000
Received: by outflank-mailman (input) for mailman id 759654;
 Tue, 16 Jul 2024 14:51: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=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTjWu-0006gk-Iv
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 14:51:48 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec3bcf8a-4382-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 16:51:46 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2eabd22d3f4so64943841fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 07:51: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
 d9443c01a7336-1fc0bc49fc1sm59322945ad.263.2024.07.16.07.51.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 07: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: ec3bcf8a-4382-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721141505; x=1721746305; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uXA2np06jo1acnHXddvTwDk7dO9wqFsmdD6PEMM+7Y8=;
        b=UJls1FjcemB8s0sdMG/lVR7fM0GMxqKkBpYRZJ9E463JDO0r2ytzhIoXC3KfpSV7pA
         AH8EBNO/dyUdaPHQbrB1MOQztsaB5Y8Qwxir0wzRpVKQBAnXPzgNVlP9jk6e7dYPIOtS
         2urHqM1NXudVWSz8wf1MWe9++0Fr2TB40fZLyYSCfgQuSG/WQryIxsE4h/HXTyslh/yc
         RWSHij+XAlO+h3Q/dqtNT9nQSNiU8D40bgSXVA4gN+3UNe3VGQHRWoN83eQlfNGgjzTO
         uwBagaA+ydZhHOvz+J/0GJlm/3475JMgiWZcSCmoft0npx0bIGf8IgtAWopKfpWxwyKc
         eCxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721141505; x=1721746305;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uXA2np06jo1acnHXddvTwDk7dO9wqFsmdD6PEMM+7Y8=;
        b=QuER/98jC7T6B/z7mrocaTWM5bFBPom7YoofuuAriJGdOyEhrVMAl3H6LcYRdeFjRh
         e2N0clpGR3k0KrCS6KJolcCg6VHsLq6Py+g7X5QfmxBqrw8Rqca9IOillhpNCAnww5gC
         FFWbve5Ru041FwC/hT414MUkwDh1KsT13YH8a9N0xV7FuaffHA9wJVVluoejyKHdnABk
         069fmDIvMDOb7mZtvMt6upr7lgyWrHq0PKQVt8GXCNQSmYuDTzRiNC+O4Hb7CjQ8Sb31
         i2VlnDc3LQq18IoiAJTmiHng6MSwZPLmhQfv+WWr27QSmEipo6JwYkV7nQyrZU3YjbBH
         ztdw==
X-Forwarded-Encrypted: i=1; AJvYcCXTB/iVVwPm7N7BfSUkIt7AJChWbMacHPR382qP/U7vOTdNE5GB1i5vhrFgyJ84EyX6lIK7SZp3tcVqzQTsA3hBycvCSM7VQmk72PHw1X8=
X-Gm-Message-State: AOJu0YwcCOW+jtCxt7/B5VB6QPfQ8zyzuB8BW3HCUk5y1ybf158Z8hGl
	nzGz71nh+svq+bXCJlGxyBXMJvRz6de7/pe8gIZSOpvvgJQ+A8VEp4BT6ttAQw==
X-Google-Smtp-Source: AGHT+IFpYVnLCb4RMdhssLtspPWu6HpMfQZHOretCPKLjjs6Byhn+GJkiin+k9xAGbg4WesP/rL4AQ==
X-Received: by 2002:a2e:9218:0:b0:2ee:5301:945d with SMTP id 38308e7fff4ca-2eef416aa70mr17778751fa.11.1721141505465;
        Tue, 16 Jul 2024 07:51:45 -0700 (PDT)
Message-ID: <35f9319b-801c-45e9-91c1-46ca61d49e5a@suse.com>
Date: Tue, 16 Jul 2024 16:51:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/4] x86/ucode: refactor xen-ucode to utilize getopt
To: Fouad Hilly <fouad.hilly@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20240712130749.1272741-1-fouad.hilly@cloud.com>
 <20240712130749.1272741-3-fouad.hilly@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240712130749.1272741-3-fouad.hilly@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 15:07, Fouad Hilly wrote:
> --- a/tools/misc/xen-ucode.c
> +++ b/tools/misc/xen-ucode.c
> @@ -11,6 +11,7 @@
>  #include <sys/stat.h>
>  #include <fcntl.h>
>  #include <xenctrl.h>
> +#include <getopt.h>
>  
>  static xc_interface *xch;
>  
> @@ -71,12 +72,29 @@ static void show_curr_cpu(FILE *f)
>      }
>  }
>  
> +static void usage(FILE *stream, const char *name)
> +{
> +    fprintf(stream,
> +            "%s: Xen microcode updating tool\n"
> +            "options:\n"
> +            "  -h, --help            display this help\n"
> +            "  -s, --show-cpu-info   show CPU information\n"
> +            "Usage: %s [microcode file] [options]\n", name, name);

Isn't it more like [microcode file | options] at this point? Even when
--force support is added, neither of the two options here go together
with a microcode file.

> @@ -86,22 +104,34 @@ int main(int argc, char *argv[])
>          exit(1);
>      }
>  
> -    if ( argc < 2 )
> +    while ( (opt = getopt_long(argc, argv, "hs", options, NULL)) != -1 )
>      {
> -        fprintf(stderr,
> -                "xen-ucode: Xen microcode updating tool\n"
> -                "Usage: %s [<microcode file> | show-cpu-info]\n", argv[0]);
> -        show_curr_cpu(stderr);
> -        exit(2);
> +        switch (opt)

Nit (style): Missing blanks inside the parentheses.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 14:59:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 14:59:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759663.1169340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTjeb-0007z2-O9; Tue, 16 Jul 2024 14:59:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759663.1169340; Tue, 16 Jul 2024 14:59: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 1sTjeb-0007yv-Ko; Tue, 16 Jul 2024 14:59:45 +0000
Received: by outflank-mailman (input) for mailman id 759663;
 Tue, 16 Jul 2024 14:59: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=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTjea-0007yp-Oh
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 14:59:44 +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 08b30351-4384-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 16:59:43 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-58e76294858so11304382a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 07:59: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
 d9443c01a7336-1fc0bc468b1sm59535355ad.260.2024.07.16.07.59.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 07: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: 08b30351-4384-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721141983; x=1721746783; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mvgbEvMtU3g6RzBMadlS7owNr7sGYEFMNDPh9YBsZ5U=;
        b=A7jbdb7E4M4bCioZWaCYQ7bEvFL5mpRgX3ZrZTvh9sN/9Ql0LWIINqFhK3DTpttH6U
         74J7ozr4YGFzBXTL/KAkbzzlY3cl1AANycV0JFsnI1R5Yc8kEce812NYzsVthLAM5gfa
         wsPRu+bVd0Q1GdgcYXaJJkI6+MyRa+P7rRcpIeqC5Vn4am9oh3rH/htPEV316Yp1+qq+
         fU8ba79o6M7AFpP2Iqv8p7k0y/EZsQCdB5npdPZQ6mp3yoqSPaDtUaztmT4A0B47MmaI
         Te4gtLMLzZvtRN3OMhdtiC63cms6T3Lz3KfmXA5nCvMRkA4kSyzjqLL+++FsYswpNaXL
         6C+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721141983; x=1721746783;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mvgbEvMtU3g6RzBMadlS7owNr7sGYEFMNDPh9YBsZ5U=;
        b=cgXG55kFN+Gw3UTR1Bt1diFckQKkSAjcSK94qmy0iDI/rcwa1fiCOuYshDM2ZJgerM
         TU+jMJ6Bi5nzODD4EuN4rCq4/8+Ksd0UaKjnPHF61SCEPBLvvL4J1B2iQdAPhQ5YvFCD
         jirjfCiy/xKNEtB1IlL822B4IlWNgJGMD4Kjzr77EQTwUg0nlRzSNtzI1zmIRxcb9xGB
         FJEgsz8U/eJF9RtqTBdilrkZNpTGPpTbpPNcVRZ7AloL8X3l0LkwerU/+5WjQDKefbI+
         x9JhlH2rKmO8FP6U5g++80DPoIoiQ2XQzb4XIbV9BlcgaqsMslKefT+Xz9pbbMADhGSz
         lx9w==
X-Forwarded-Encrypted: i=1; AJvYcCUpfCEUfoWwRAwVxMWYoahkfuEOCNFpOczT8PQO0XaJ7m0Sls/MZff95sUQgaigAO+nqwh5h3Lm3vw6PSZTA9iYU6v+tWueZe1xwWRt1fY=
X-Gm-Message-State: AOJu0Yzq7plQtFEWJN51HGgA1hkqTsBNWv7QEZTo647p8JBU0KvMgxmS
	yN0TcIkIuAU8U9Vzgxa8IBYe8Qmd+gKMPEWNyWj5KtVm9+bEcusWTGsS3z2Oeg==
X-Google-Smtp-Source: AGHT+IEvbsjXgZ6OgidgQyfwFy9h9BBI+4lYVUblqCnFuc/puqosdz1xl73mB4d5+jxx7qQd3Q3+yg==
X-Received: by 2002:a17:906:3d6:b0:a77:cd4f:e4f1 with SMTP id a640c23a62f3a-a79edcf5c09mr174671866b.27.1721141982739;
        Tue, 16 Jul 2024 07:59:42 -0700 (PDT)
Message-ID: <313d214c-3a96-45ad-9f53-8e4f54510e50@suse.com>
Date: Tue, 16 Jul 2024 16:59:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 4/4] x86/ucode: Utilize ucode_force and remove
 opt_ucode_allow_same
To: Fouad Hilly <fouad.hilly@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20240712130749.1272741-1-fouad.hilly@cloud.com>
 <20240712130749.1272741-5-fouad.hilly@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240712130749.1272741-5-fouad.hilly@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 15:07, Fouad Hilly wrote:
> --- a/xen/arch/x86/cpu/microcode/core.c
> +++ b/xen/arch/x86/cpu/microcode/core.c
> @@ -90,6 +90,16 @@ struct ucode_mod_blob {
>      size_t size;
>  };
>  
> +struct microcode_patch_with_flags {
> +    unsigned int flags;
> +    struct microcode_patch *patch;
> +};
> +
> +struct microcode_nmi_patch_with_flags {
> +    unsigned int flags;
> +    const struct microcode_patch *patch;
> +};

Why two different structures? I have to admit that I can't spot where the
difference (const or not) would matter?

Also for an internal struct I don't think you need the microcode_ prefixes.

> @@ -284,21 +286,22 @@ static enum microcode_match_result cf_check compare_patch(
>      return compare_revisions(old->rev, new->rev);
>  }
>  
> -static int cf_check apply_microcode(const struct microcode_patch *patch)
> +static int cf_check apply_microcode(const struct microcode_patch *patch,
> +                                    unsigned int flags)
>  {
>      uint64_t msr_content;
>      unsigned int cpu = smp_processor_id();
>      struct cpu_signature *sig = &this_cpu(cpu_sig);
>      uint32_t rev, old_rev = sig->rev;
>      enum microcode_match_result result;
> +    bool ucode_force = flags == XENPF_UCODE_FORCE;

Why == ? The term "flags" usually stands for there being multiple boolean
indicators in a single value. That would demand use of & here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 15:04:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 15:04:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759671.1169352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTjiY-00013l-8U; Tue, 16 Jul 2024 15:03:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759671.1169352; Tue, 16 Jul 2024 15:03:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTjiY-00013e-5n; Tue, 16 Jul 2024 15:03:50 +0000
Received: by outflank-mailman (input) for mailman id 759671;
 Tue, 16 Jul 2024 15: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=KL91=OQ=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sTjiX-00013Y-5a
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 15:03:49 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a1ad0e1-4384-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 17:03:47 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2ee91d9cb71so58039201fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 08:03:47 -0700 (PDT)
Received: from EMEAENGAAD91498. ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59b24a76f02sm5137075a12.2.2024.07.16.08.03.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 16 Jul 2024 08:03: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: 9a1ad0e1-4384-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721142227; x=1721747027; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:subject:cc
         :to:from:date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jR0dvr9EgVpvCh6YoClqcaQMZNSQVE39cOhbob49r1M=;
        b=gSWrftpYnERQyzqS7XtiIGnVVjYWpADnR9vrtXgC3CfWL88hoF6+r4gf5oyxM+J3CG
         3NzlkOFtWV0WvzgbHNJywJ1E9oE41QpjrEGSXDnaBtdrOZlH85Pzscbre34AVh+uI3h6
         cfQ3sWsbbv8Sdfu1CA6y1fbbAXB8GS1bmdJGY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721142227; x=1721747027;
        h=in-reply-to:content-disposition:mime-version:references:subject:cc
         :to:from:date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jR0dvr9EgVpvCh6YoClqcaQMZNSQVE39cOhbob49r1M=;
        b=lgFvj6F8C/oc53fJgy2CvOOLfL2WOzoJvsmVNvXOb9rYVBgGWRMwy8CJXwfgkiX7J8
         TXhsTCEAHHUyFYUO4CjqrlgRqJKwNggc5SbKrYVgKUvcA92Rx+EDhSLQl3F4aJVIjsN7
         RGxyIW1U8igcbvK/Gay1og819FgGdfIoklk4E+KdZIy5i/pDS0FkGq9XwzhreYi87nTk
         jaiobMJ6c2YGtXWJNX+88IXmhgKup7PRv7GNvuytaQtvUuasrOUvjKYpzWwGlAKL7T5Q
         X0pv70nZHP+ekkk5mLG6y81RJHwdYzGDZgFAK13ETmVqNkFiUYQDn4TVULpv4bS+toGm
         zT2g==
X-Forwarded-Encrypted: i=1; AJvYcCVvpe83FA/oUdxzWdxgruLDr094TAUVb5DRrSnHwwVXglzNAeqJbHIbro8Lu9UFF/QQz8m2cvJVObR9Q1WqSd9EAlsgEwUBcYYcTLvefDw=
X-Gm-Message-State: AOJu0Yx+GAe3xxfb4JYI2YDJ0LnE4qOFA4BvhAKMLbcgegfh/+kqtrPK
	a3tw+esgqdLWB6nvog4cGaRuRkB8gm8j29ZFiGUl8hosEPU1Oa4sTvY48XZkbSc=
X-Google-Smtp-Source: AGHT+IGq7tjul9bo6FOiRy3nprA0idmRXI48aK4o5BUwp6/S5e4Boen6ai9JD9TfDoduvGortQH6/A==
X-Received: by 2002:a2e:9786:0:b0:2ee:4514:aa9a with SMTP id 38308e7fff4ca-2eef41e2a5fmr17684251fa.48.1721142226138;
        Tue, 16 Jul 2024 08:03:46 -0700 (PDT)
Message-ID: <66968bd1.050a0220.dfc8c.b00f@mx.google.com>
X-Google-Original-Message-ID: <20240716150316.oaqwgtkwksdx2gg3@EMEAENGAAD91498.>
Date: Tue, 16 Jul 2024 16:03:16 +0100
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [RFC XEN PATCH] x86/cpuid: Expose max_vcpus field in HVM
 hypervisor leaf
References: <c0a9f52107e22957daaa5b1b0e05e4160db5f064.1720452354.git.matthew.barnes@cloud.com>
 <103d60b6-001b-43f0-bbff-a0806cebda73@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <103d60b6-001b-43f0-bbff-a0806cebda73@suse.com>

On Tue, Jul 09, 2024 at 08:40:18AM +0200, Jan Beulich wrote:
> On 08.07.2024 17:42, Matthew Barnes wrote:
> > Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
> > startup.
> > 
> > There are efforts to support a maximum of 128 vCPUs, which would involve
> > bumping the OVMF constant from 64 to 128.
> > 
> > However, it would be more future-proof for OVMF to access the maximum
> > number of vCPUs for a domain and set itself up appropriately at
> > run-time.
> > 
> > For OVMF to access the maximum vCPU count, Xen will have to expose this
> > property via cpuid.
> 
> Why "have to"? The information is available from xenstore, isn't it?

I shall reword the commit message in patch v2 to avoid the wording "have
to".

> > This patch exposes the max_vcpus field via cpuid on the HVM hypervisor
> > leaf in edx.
> 
> If exposing via CPUID, why only for HVM?

Other related cpuid fields are also exposed in the HVM hypervisor leaf,
such as the vcpu id and the domain id.

Having said that, I wouldn't mind moving this field (or other fields, in
a separate patch) to a location meant for HVM *and* PV guests. Do you
have any suggestions?

> > --- a/xen/include/public/arch-x86/cpuid.h
> > +++ b/xen/include/public/arch-x86/cpuid.h
> > @@ -87,6 +87,7 @@
> >   * Sub-leaf 0: EAX: Features
> >   * Sub-leaf 0: EBX: vcpu id (iff EAX has XEN_HVM_CPUID_VCPU_ID_PRESENT flag)
> >   * Sub-leaf 0: ECX: domain id (iff EAX has XEN_HVM_CPUID_DOMID_PRESENT flag)
> > + * Sub-leaf 0: EDX: max vcpus (iff EAX has XEN_HVM_CPUID_MAX_VCPUS_PRESENT flag)
> >   */
> 
> Unlike EBX and ECX, the proposed value for EDX cannot be zero. I'm therefore
> not entirely convinced that we need a qualifying flag. Things would be
> different if the field was "highest possible vCPU ID", which certainly would
> be the better approach if the field wasn't occupying the entire register.
> Even with it being 32 bits, I'd still suggest switching its meaning this way.

I shall tweak the value from "maximum vcpu count" to "maximum vcpu ID"
in patch v2.

Matt


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 15:34:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 15:34:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759679.1169363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTkCL-0006ab-IF; Tue, 16 Jul 2024 15:34:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759679.1169363; Tue, 16 Jul 2024 15: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 1sTkCL-0006aU-FQ; Tue, 16 Jul 2024 15:34:37 +0000
Received: by outflank-mailman (input) for mailman id 759679;
 Tue, 16 Jul 2024 15:34:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sTkCK-0006aL-6y
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 15:34:36 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sTkCH-0000nV-5R; Tue, 16 Jul 2024 15:34:33 +0000
Received: from [15.248.3.90] (helo=[10.24.67.26])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sTkCG-0001tz-UK; Tue, 16 Jul 2024 15:34:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:Subject:From:Cc:To:
	MIME-Version:Date:Message-ID; bh=mNFbSHqR8D2q75imQLSnrm+y0SYU8S3/bOuVRdKpfmI=
	; b=KKu1s2RYES5OsrNcu45FnbHDGnH5aISaAKas5/w/Ec/nzBGOkWikA/gwU/k/61q3E6vntTbV6
	Welty1NUz+bfY5RgcIGRxnT9OzW07cV1houQhsLRmZgEcEAn/HZ7eAq1ZWDEOb24DNQKkqa3nYBhE
	JqyIDO9P3fLYvFogZ7CPQ=;
Message-ID: <770b22e5-95b2-40ed-ab3a-fb471ecf2f0a@xen.org>
Date: Tue, 16 Jul 2024 16:34:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
To: "committers@xenproject.org" <committers@xenproject.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Julien Grall <julien@xen.org>
Subject: Commit moratorium
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi all,

We intend to branch for Xen 4.19 in the next couple of days.

As part of the process, it is easier to branch when staging == master.
Therefore I would like to ask a commit moratorium.

Please don't commit anything (even patches released-acked) until further 
notice.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 15:37:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 15:37:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759684.1169373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTkEy-0007KR-Ue; Tue, 16 Jul 2024 15:37:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759684.1169373; Tue, 16 Jul 2024 15: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 1sTkEy-0007KK-RY; Tue, 16 Jul 2024 15:37:20 +0000
Received: by outflank-mailman (input) for mailman id 759684;
 Tue, 16 Jul 2024 15: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=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTkEx-0007Iv-2x
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 15:37:19 +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 48637470-4389-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 17:37:17 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52ea5dc3c79so7982882e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 08:37: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
 d2e1a72fcca58-70b7eb9e357sm6415227b3a.22.2024.07.16.08.37.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 08:37: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: 48637470-4389-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721144237; x=1721749037; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kLVGuAQtORRx5gC43xs1LAgzGnfdXQCsOwV41vcaFoQ=;
        b=VlKHlfIG8+8hg+nKHU9jrZ5r6HSBmWKv0Jw6GD9sNk8o62ny9pllCf8rvQe71FbgNS
         KnSMxZQdotZaUVB+UP4ntLDCQt2PGtmPSBpu/Bj2P3w+xPoRXlbfKTVnrcSBMAdxqECy
         oLsnJtuisnbJA/TNLyDNxtozma0gk4YAP9PG1ysQb+pV8WhcJf6ok8LO710O8MrqK9L8
         +Kk7JrHaUkXT7LUpPuep/26AP/OV2iBcbK1OVdpoR+2gE16/yp+x5eIlTq3HaNgs7gI4
         ibOy8v7D4bob943VxAS57nvGqMBhyKzBmXTJXDb52oYZoa6KWS2r+1aya3QoX/jC+YI7
         QjkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721144237; x=1721749037;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kLVGuAQtORRx5gC43xs1LAgzGnfdXQCsOwV41vcaFoQ=;
        b=r13tBbQm4TrlVNnU/Fxl3V2K7oUNTmmY4d+mPDts8AQoL4DO55yNx+pTotjN/LIsH6
         nhqAwlseVdiM6xcJ32AfaXCNHLBhFous7/Iv1fOGK3DW2wIJ52/MoxlDxQNDrH9Au5qB
         vdmFmUDXFqqWswwhqjqxS0KvdAqtH8XKz0D7t2SieskLIJ03kUIJCO/j3U+D5mtEQroa
         TRpew3PM+Jd3ZIRvGCfvWsDGQOZb1AqF+igErlITR8EOXyrvP3Q0HPBM66NCQu78Kncq
         SsCkvyebmMerWT9oVRdoEwJ1iPP5KpVEOBs6NX4ajrvEiEERrriung2Zo7pB+NNe1PV2
         05HQ==
X-Forwarded-Encrypted: i=1; AJvYcCUkSEtD8PQGlPP9KPB5qgegi6Z9W9vOmc07gyEKn/oEP10zRrlgwkKt0TzsZqIUlMKW+gybC9tsjIPeQJjYuM76E5jlifKJaeaDQYd7NK4=
X-Gm-Message-State: AOJu0YwcofFScqtfqWcfMKakumXQqZmd2zmslxI+a9mkO2tt3yHlaBsH
	OZ3TepW0cXTIlq39LnThYB660nZvYT8CoyR7ZTpnXNc7o9AVQsDWEjv8Het4EA==
X-Google-Smtp-Source: AGHT+IHpSFRGU7krjNdzGJs32+N5sChYFgjlpD3DHxzrAeTpNDtef7DTL2tFAYo1OWcD+pm7KnzxWg==
X-Received: by 2002:a05:651c:4ca:b0:2ee:8ce9:3037 with SMTP id 38308e7fff4ca-2eef41d8b29mr21897411fa.37.1721144237097;
        Tue, 16 Jul 2024 08:37:17 -0700 (PDT)
Message-ID: <def172dd-17f4-445c-9a2d-5b2ea8ecb064@suse.com>
Date: Tue, 16 Jul 2024 17:37:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH] x86/cpuid: Expose max_vcpus field in HVM
 hypervisor leaf
To: Matthew Barnes <matthew.barnes@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <c0a9f52107e22957daaa5b1b0e05e4160db5f064.1720452354.git.matthew.barnes@cloud.com>
 <103d60b6-001b-43f0-bbff-a0806cebda73@suse.com>
 <66968bd1.050a0220.dfc8c.b00f@mx.google.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <66968bd1.050a0220.dfc8c.b00f@mx.google.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.07.2024 17:03, Matthew Barnes wrote:
> On Tue, Jul 09, 2024 at 08:40:18AM +0200, Jan Beulich wrote:
>> On 08.07.2024 17:42, Matthew Barnes wrote:
>>> Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
>>> startup.
>>>
>>> There are efforts to support a maximum of 128 vCPUs, which would involve
>>> bumping the OVMF constant from 64 to 128.
>>>
>>> However, it would be more future-proof for OVMF to access the maximum
>>> number of vCPUs for a domain and set itself up appropriately at
>>> run-time.
>>>
>>> For OVMF to access the maximum vCPU count, Xen will have to expose this
>>> property via cpuid.
>>
>> Why "have to"? The information is available from xenstore, isn't it?
> 
> I shall reword the commit message in patch v2 to avoid the wording "have
> to".
> 
>>> This patch exposes the max_vcpus field via cpuid on the HVM hypervisor
>>> leaf in edx.
>>
>> If exposing via CPUID, why only for HVM?
> 
> Other related cpuid fields are also exposed in the HVM hypervisor leaf,
> such as the vcpu id and the domain id.
> 
> Having said that, I wouldn't mind moving this field (or other fields, in
> a separate patch) to a location meant for HVM *and* PV guests. Do you
> have any suggestions?

I don't think we can literally move anything. We could duplicate things
into shared fields, but would that gain us anything? Therefore I think
going forward we should limit type-specific fields to cases where type
really matters, and otherwise expose in a type-independent way.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 15:46:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 15:46:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759695.1169383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTkNX-0000sz-So; Tue, 16 Jul 2024 15:46:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759695.1169383; Tue, 16 Jul 2024 15:46:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTkNX-0000ss-PW; Tue, 16 Jul 2024 15:46:11 +0000
Received: by outflank-mailman (input) for mailman id 759695;
 Tue, 16 Jul 2024 15:46:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=I1NN=OQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sTkNW-0000si-RS
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 15:46:10 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 84f4783b-438a-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 17:46:08 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2eeef45d865so24791211fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 08:46: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
 d9443c01a7336-1fc0bc496efsm59790065ad.262.2024.07.16.08.46.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 08:46: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: 84f4783b-438a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721144768; x=1721749568; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=n7sbKVnoZ+z4a/v0PzkyzzgY3sSsdLM1gofd9ZzTtSs=;
        b=VvN1RKHORGRavIVjUYxf1K5ilQ2/dY2kP63RVMbMs0+ul9fGswEBYJ7hAckqSMDpCR
         3n3pMiUXiP+LXamxcq3MRlak3wD0KDp6Tt+dxTzVr7Hu1T+kQHrb95wL0hXZBkxOLuvc
         MAED6sgEjsfJIzRV/vYExc6BmeESzZpCw+g9gZv1R+FjDa+Wx21kSN54xERWIJt70nPW
         UrqPYqks2ZDbpzN35/CSNOT+Ny5BYXnfdgumJYppgeDKb4QuxWDO9E8zP/bbiXKrZRN9
         QVQl0F8SVFKCaawlnTpR7whJoRkHmwew5//OyOSu407Umhc4v+ibTP9h4HHLe2jOoN3D
         RAQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721144768; x=1721749568;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n7sbKVnoZ+z4a/v0PzkyzzgY3sSsdLM1gofd9ZzTtSs=;
        b=P5uiqlaKoBgXTMVXN5/Xsp43iE7O/1qJoEhe9ouugipxRhipNrUIDF0xA4WNTJLpA7
         Seyh+aGMAs/Ela2zWR17zzsVFmyTjgX9lweaI2o+xvs+lY6/OoLvnV9qPT9vK/AlK6BR
         X+o2Qh1sVxbKNU3iSjut3rWjoLaXdXrQqOtfhxYADh8GqCQCv3b6zyS+kx2vnyXHZd1a
         /ao9KomAQ3t2NCv6UGVnUvr7CgMBAZDRI/MIFdnFP9XmCVZuYQGpMXBUbMiWv6QXpGVx
         L3xhioJ4KItP1OVJL/cONx2xlD4p3vR0sgcdtiA8FBYRz5iDv7cQS9BPYLSUjYx7qbzh
         Yezw==
X-Gm-Message-State: AOJu0YzC1gXuWsZngcBAyjdGxeU26rYOJeZPiex0nLcbGfUEFAYm3aHi
	qxXKEwKVGf4E27cHTtEuZYemPzTsJNPHnNGvXzIcpayFBwYMAJRi6Hr9uIK1Ng==
X-Google-Smtp-Source: AGHT+IF9MSefF8lz8cMhMtLCQSEK4nQHiw+SEqcxY4x1AerQ3NrgcMw5LHU0PNTRJgMIMNHdhY7LZQ==
X-Received: by 2002:a2e:9bc9:0:b0:2ec:4b00:a746 with SMTP id 38308e7fff4ca-2eef4156da3mr21555951fa.9.1721144768189;
        Tue, 16 Jul 2024 08:46:08 -0700 (PDT)
Message-ID: <6f5ab0c6-5c94-439f-b1b8-9839a6d8c267@suse.com>
Date: Tue, 16 Jul 2024 17:46:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problems in PV dom0 on recent x86 hardware
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <baade0a7-e204-4743-bda1-282df74e5f89@suse.com>
 <d379a900-fd1c-42ca-bc31-071f7fd80d0b@suse.com>
 <ZousjqOAFJgO6681@macbook.local>
 <6101999a-6f88-46cb-b850-af43b364f299@suse.com>
 <7a0a8b1c-69e0-435d-b4f4-7a9d784eab29@amd.com>
 <1f96a355-b0d2-4cc9-a2ae-6d3ab750136d@suse.com>
 <89d7b5a6-e971-4cd0-85df-0dd599d0ba1b@suse.com>
 <7d207d6c-d025-4fbb-8649-9c42224097f5@suse.com>
 <88db3cb6-2b7e-48b2-9bf4-d871067325a0@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: <88db3cb6-2b7e-48b2-9bf4-d871067325a0@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.07.2024 12:56, Jürgen Groß wrote:
> On 09.07.24 09:01, Jan Beulich wrote:
>> On 09.07.2024 08:36, Jürgen Groß wrote:
>>> On 09.07.24 08:24, Jan Beulich wrote:
>>>> On 08.07.2024 23:30, Jason Andryuk wrote:
>>>>>    From the backtrace, it looks like the immediate case is just trying to
>>>>> read a 4-byte version:
>>>>>
>>>>>    >>>> [   44.575541]  ucsi_acpi_dsm+0x53/0x80
>>>>>    >>>> [   44.575546]  ucsi_acpi_read+0x2e/0x60
>>>>>    >>>> [   44.575550]  ucsi_register+0x24/0xa0
>>>>>    >>>> [   44.575555]  ucsi_acpi_probe+0x162/0x1e3
>>>>>
>>>>> int ucsi_register(struct ucsi *ucsi)
>>>>> {
>>>>>            int ret;
>>>>>
>>>>>            ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
>>>>>                                  sizeof(ucsi->version));
>>>>>
>>>>> ->read being ucsi_acpi_read()
>>>>>
>>>>> However, the driver also appears write to adjacent addresses.
>>>>
>>>> There are also corresponding write functions in the driver, yes, but
>>>> ucsi_acpi_async_write() (used directly or indirectly) similarly calls
>>>> ucsi_acpi_dsm(), which wires through to acpi_evaluate_dsm(). That's
>>>> ACPI object evaluation, which isn't obvious without seeing the
>>>> involved AML whether it might write said memory region.
>>>
>>> I guess an ACPI dump would help here?
>>
>> Perhaps, yes.
> 
> It is available in the bug report:
> 
> https://bugzilla.opensuse.org/show_bug.cgi?id=1227301

With

        OperationRegion (SUSC, SystemMemory, 0xFEEC2100, 0x30)
        Field (SUSC, ByteAcc, Lock, Preserve)
        {
            SCMD,   8, 
            ...

and

            Method (SECM, 1, Serialized)
            {
                Local0 = 0x64
                While (((\_SB.SCMD != 0x00) && (Local0 != 0x00)))
                {
                    Sleep (0x01)
                    Local0--
                }

                \_SB.SCMD = Arg0
                ...

it is clear that granting read access isn't going to be enough.

>From /proc/iomem I also can't see that Linux would have marked as reserved
that region in any way. I'm really uncertain as to whether what Lenovo are
doing here is actually legitimate. If it was, I currently have no good
idea what to do about it.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 16:13:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 16:13:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759702.1169394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTknF-0006zB-Vs; Tue, 16 Jul 2024 16:12:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759702.1169394; Tue, 16 Jul 2024 16:12:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTknF-0006z4-RD; Tue, 16 Jul 2024 16:12:45 +0000
Received: by outflank-mailman (input) for mailman id 759702;
 Tue, 16 Jul 2024 16:12: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=ph1w=OQ=amazon.co.uk=prvs=9201d78b2=eliasely@srs-se1.protection.inumbo.net>)
 id 1sTknE-0006yy-6N
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 16:12:44 +0000
Received: from smtp-fw-52003.amazon.com (smtp-fw-52003.amazon.com
 [52.119.213.152]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a3290ee-438e-11ef-bbfb-fd08da9f4363;
 Tue, 16 Jul 2024 18:12:42 +0200 (CEST)
Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO
 smtpout.prod.us-west-2.prod.farcaster.email.amazon.dev) ([10.43.8.6])
 by smtp-border-fw-52003.iad7.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jul 2024 16:12:39 +0000
Received: from EX19MTAEUA001.ant.amazon.com [10.0.17.79:2649]
 by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.43.109:2525]
 with esmtp (Farcaster)
 id 02ddc300-f00e-4ad4-8f93-e15a1c62440c; Tue, 16 Jul 2024 16:12:37 +0000 (UTC)
Received: from EX19D018EUA002.ant.amazon.com (10.252.50.146) by
 EX19MTAEUA001.ant.amazon.com (10.252.50.192) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Tue, 16 Jul 2024 16:12:37 +0000
Received: from [192.168.10.41] (10.106.83.21) by EX19D018EUA002.ant.amazon.com
 (10.252.50.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34; Tue, 16 Jul 2024
 16:12:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a3290ee-438e-11ef-bbfb-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1721146363; x=1752682363;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=qzb42ou1eJx1mcxSNlVvLZNv4KJckIIq3To+0bUZuHY=;
  b=XvnwFonCXyuJwy51n7ys9nhE0z1c+FFKFxBNaNky+wHEEytkZZ2Gbyhk
   8UTPNKv0qq6tfyhdkWbmg7UN093uRabWEEJorn0zf6i5Ti1m0CF5EofW9
   RGuilZeRBCLhP5Ye2GC4XRzPTUteVNRBtHTll2EXhzXBlQwK4qcVMZcwp
   M=;
X-IronPort-AV: E=Sophos;i="6.09,212,1716249600"; 
   d="scan'208";a="12636204"
X-Farcaster-Flow-ID: 02ddc300-f00e-4ad4-8f93-e15a1c62440c
Message-ID: <1fa5e786-c0fa-4dff-8085-608d7f983698@amazon.com>
Date: Tue, 16 Jul 2024 17:12:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V3 (resend) 03/19] x86/pv: Rewrite how building PV dom0
 handles domheap mappings
To: Jan Beulich <jbeulich@suse.com>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Hongyan Xia
	<hongyxia@amazon.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Julien Grall
	<jgrall@amazon.com>, <xen-devel@lists.xenproject.org>
References: <20240513134046.82605-1-eliasely@amazon.com>
 <20240513134046.82605-4-eliasely@amazon.com>
 <ffe6fbc8-fbbb-44a4-b981-b43f3fb48433@suse.com>
Content-Language: en-US
From: Elias El Yandouzi <eliasely@amazon.com>
In-Reply-To: <ffe6fbc8-fbbb-44a4-b981-b43f3fb48433@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.106.83.21]
X-ClientProxiedBy: EX19D032UWB002.ant.amazon.com (10.13.139.190) To
 EX19D018EUA002.ant.amazon.com (10.252.50.146)

Hi Jan,

On 14/05/2024 16:03, Jan Beulich wrote:
> On 13.05.2024 15:40, Elias El Yandouzi wrote:
>> --- a/xen/arch/x86/pv/dom0_build.c
>> +++ b/xen/arch/x86/pv/dom0_build.c
>> @@ -382,6 +382,10 @@ int __init dom0_construct_pv(struct domain *d,
>>       l3_pgentry_t *l3tab = NULL, *l3start = NULL;
>>       l2_pgentry_t *l2tab = NULL, *l2start = NULL;
>>       l1_pgentry_t *l1tab = NULL, *l1start = NULL;
>> +    mfn_t l4start_mfn = INVALID_MFN;
>> +    mfn_t l3start_mfn = INVALID_MFN;
>> +    mfn_t l2start_mfn = INVALID_MFN;
>> +    mfn_t l1start_mfn = INVALID_MFN;
> 
> Just to mention it here again: By limiting the scope of these I'm pretty
> sure no initializer would be needed even "just in case" (really I don't
> think they're needed even when the all have function scope, as producer
> and consumer are always close together afaics; quite different from
> l<N>start and l<N>tab).

I had a closer look at your suggestion and I don't think it is possible, 
especially for l3start_mfn.

The variable, l3start_mfn, can get initialized in the else leg of the 
first if statement along with l3start variable.

If you look a few lines below in the for loop, we call 
l4e_from_mfn(l3start_mfn, L4_PROT) which assumes l3start_mfn is valid. 
It could not be the case if we took the first leg of the aforementioned 
if statement.

I don't think I can this easily limit their scope. It could work for the 
others, but not l3start_mfn. So I can either leave things as they are or 
limit the scope of every variables but l3start_mfn.


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 17:06:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 17:06:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759750.1169419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTldB-0008T0-Rd; Tue, 16 Jul 2024 17:06:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759750.1169419; Tue, 16 Jul 2024 17:06:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTldB-0008St-O4; Tue, 16 Jul 2024 17:06:25 +0000
Received: by outflank-mailman (input) for mailman id 759750;
 Tue, 16 Jul 2024 17:06:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QAbl=OQ=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sTldA-0008Sl-L0
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 17:06:24 +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 b9e39078-4395-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 19:06:22 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a77ec5d3b0dso706712866b.0
 for <xen-devel@lists.xenproject.org>; Tue, 16 Jul 2024 10:06:22 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc820d21sm332258366b.198.2024.07.16.10.06.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 16 Jul 2024 10:06: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: b9e39078-4395-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721149581; x=1721754381; 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=XEJQDdo1M2AqTHAWo1JbbM8esmJyNYJoLt/m8CbDuHQ=;
        b=f16cpN0nWFiwxhMStpP9HHaMzMO3tnoLHaEYy3IhyK3dZSyrtA4ojY76e49Qx5Ylf4
         +lwWiWbxR1FsSo8saQhlr00DYg1gjWF9yi24poTitNONn/KyALgW423a1TUh/oon+mqo
         xwOWj6Yhi6mJazXVrknxQSiC4sgUxsgVPflRw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721149581; x=1721754381;
        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=XEJQDdo1M2AqTHAWo1JbbM8esmJyNYJoLt/m8CbDuHQ=;
        b=R3gCitV3i6ihHhtSQ1scstJ/D3/+IT1IleSA5UpELywcQZawDK9dmfHZrYu6TaYsry
         6XppTou+XjNtvgxVQ5hFuQHgRbhQGGcfImT3KKsSXt9Uzv7JysUx5281vvTQc/Q3iwd6
         uQk79O1WAGM/0pKHOJ4CNu0OwN+G2eTtYIImzISto1oMUdO8zDFXEpYb47vSc8FdJRG/
         tmWvziXJkyAvIWMr8+xbWkCFEN/ps+e1BWPnyP5BmgLV7MUzYxxODNKNDTUHuMhXdatW
         krrg9scYu6wvZtlaqx3hzhc1P5LoFcO7abFbTeyuSDN9fNgwgT8yVnEv5M2eagNFMpR1
         T4Sg==
X-Forwarded-Encrypted: i=1; AJvYcCU+4PcpeTG7g3lA+B5d97PMc1+t/VBlcf8bm88/981DN00RSDe/Cde6PwaSCouw1C7snmWjJphqipRrdFdrbONN+73s6E/9R/bk9YtglhQ=
X-Gm-Message-State: AOJu0Yy4FO2GUDkOlwU1InknUCyYaBptg7dnpISIeJcyy8MxL0hFj8SA
	HXatpat/LHOuM8UJqkGyn0necbUZ2D0XWHM2B2NiERsmWIUVC6UQo5GnQOzEPqI=
X-Google-Smtp-Source: AGHT+IFADlBGBu+1L40iTqzAH4RopYDOtsJvm7fxMvlA3moMZlLBUCQZwx5FhdFk/DbLI74zu2iQkg==
X-Received: by 2002:a17:906:ecac:b0:a77:a415:f815 with SMTP id a640c23a62f3a-a79ea43accbmr202978066b.20.1721149581441;
        Tue, 16 Jul 2024 10:06:21 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 16 Jul 2024 18:06:18 +0100
Message-Id: <D2R4LSZFGQYM.YRUCHYZPEB67@cloud.com>
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Elias El Yandouzi" <eliasely@amazon.com>,
 <xen-devel@lists.xenproject.org>
Cc: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, "Wei Liu"
 <wei.liu2@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Wei Wang" <wawei@amazon.de>, "Hongyan Xia"
 <hongyxia@amazon.com>, "Julien Grall" <jgrall@amazon.com>
Subject: Re: [PATCH V3 (resend) 04/19] x86: Lift mapcache variable to the
 arch level
X-Mailer: aerc 0.17.0
References: <20240513134046.82605-1-eliasely@amazon.com>
 <20240513134046.82605-5-eliasely@amazon.com>
In-Reply-To: <20240513134046.82605-5-eliasely@amazon.com>

On Mon May 13, 2024 at 2:40 PM BST, Elias El Yandouzi wrote:
> From: Wei Liu <wei.liu2@citrix.com>
>
> It is going to be needed by HVM and idle domain as well, because without
> the direct map, both need a mapcache to map pages.
>
> This commit lifts the mapcache variable up and initialise it a bit earlie=
r
> for PV and HVM domains.
>
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> Signed-off-by: Wei Wang <wawei@amazon.de>
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> Signed-off-by: Julien Grall <jgrall@amazon.com>
>
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 20e83cf38b..507d704f16 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -851,6 +851,8 @@ int arch_domain_create(struct domain *d,
> =20
>      psr_domain_init(d);
> =20
> +    mapcache_domain_init(d);
> +

I think this is missing free_perdomain_mappings() in the error case. (error
handling is already committed).

Can't the callee jump to a "fail" label and do free_perdomain_mappings()
internally?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 18:29:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 18:29:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759759.1169428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTmv2-0001ks-Cj; Tue, 16 Jul 2024 18:28:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759759.1169428; Tue, 16 Jul 2024 18:28:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTmv2-0001kl-A1; Tue, 16 Jul 2024 18:28:56 +0000
Received: by outflank-mailman (input) for mailman id 759759;
 Tue, 16 Jul 2024 18:28:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTmv1-0001kb-Il; Tue, 16 Jul 2024 18:28:55 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTmv1-0004kt-FP; Tue, 16 Jul 2024 18:28:55 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTmv0-0000CW-U7; Tue, 16 Jul 2024 18:28:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTmv0-00008b-TZ; Tue, 16 Jul 2024 18:28: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=5qhbO4jN6NwtLF+9N4Eh8YqdKGiIoXimqtwkIYLRCvw=; b=NKwlMKbRHPWTHNMaioZRW81QPu
	rNcM04HoSPDlwiyoPmrlJBd+Beh6O4BgcKv0fqXo7waaLhWFSj9yQS3G0CLXg4SSJGu+EEA9DdcRY
	9Xriqh0c4loBWlDFwdei5PrYSn7grNFmWhjN26P9UFp49cBKmw9brZTuqAhTYTaQhhiw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186821-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186821: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-armhf-armhf-xl:host-ping-check-xen:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=57338346f29cea7b183403561bdc5f407163b846
X-Osstest-Versions-That:
    xen=1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Jul 2024 18:28:54 +0000

flight 186821 xen-unstable-smoke real [real]
flight 186823 xen-unstable-smoke real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186821/
http://logs.test-lab.xenproject.org/osstest/logs/186823/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl          10 host-ping-check-xen      fail REGR. vs. 186786

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  57338346f29cea7b183403561bdc5f407163b846
baseline version:
 xen                  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9

Last test of basis   186786  2024-07-12 22:02:08 Z    3 days
Testing same since   186821  2024-07-16 13:02:08 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 57338346f29cea7b183403561bdc5f407163b846
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Jul 16 14:09:14 2024 +0200

    x86/IRQ: avoid double unlock in map_domain_pirq()
    
    Forever since its introduction the main loop in the function dealing
    with multi-vector MSI had error exit points ("break") with different
    properties: In one case no IRQ descriptor lock is being held.
    Nevertheless the subsequent error cleanup path assumed such a lock would
    uniformly need releasing. Identify the case by setting "desc" to NULL,
    thus allowing the unlock to be skipped as necessary.
    
    This is CVE-2024-31143 / XSA-458.
    
    Coverity ID: 1605298
    Fixes: d1b6d0a02489 ("x86: enable multi-vector MSI")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 19:25:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 19:25:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759769.1169442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTno2-0008Uz-Fr; Tue, 16 Jul 2024 19:25:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759769.1169442; Tue, 16 Jul 2024 19:25:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTno2-0008Us-Ca; Tue, 16 Jul 2024 19:25:46 +0000
Received: by outflank-mailman (input) for mailman id 759769;
 Tue, 16 Jul 2024 19:25:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTno1-0008Ui-CM; Tue, 16 Jul 2024 19:25:45 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTno1-0006Gx-8E; Tue, 16 Jul 2024 19:25:45 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTno0-0002nt-M7; Tue, 16 Jul 2024 19:25:44 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTno0-0000QO-La; Tue, 16 Jul 2024 19:25:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=McYVvCxsqZ8WINEnA2E/OjH12ywy5NieaD/liqXjNKs=; b=X6H5dqgD0XH/M5a0SoxuORNlop
	HQV1uRDtUxMloFFbBZ+tBk9aRo8nvc3Hq94AZqQA5fcSmmvrqzr3fuBnjIRIdF6nKiw1PQcuKv0Lt
	jX1SaAH/Ze0EajGtZ0ZVLk6Xxjz3Q0c9QGbTlzBUEZOrxoZR1/Wg9f+aUrpNjP0vLqsM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186816-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186816: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt-vhd:guest-start/debian.repeat:fail:regression
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-credit2:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-arndale:host-ping-check-xen:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=d67978318827d06f1c0fa4c31343a279e9df6fde
X-Osstest-Versions-That:
    linux=3e7819886281e077e82006fe4804b0d6b0f5643b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Jul 2024 19:25:44 +0000

flight 186816 linux-linus real [real]
flight 186824 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186816/
http://logs.test-lab.xenproject.org/osstest/logs/186824/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-libvirt-vhd 17 guest-start/debian.repeat fail REGR. vs. 186811

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-vhd  8 xen-boot         fail in 186824 pass in 186816
 test-armhf-armhf-xl-credit2   8 xen-boot            fail pass in 186824-retest
 test-armhf-armhf-xl-arndale  10 host-ping-check-xen fail pass in 186824-retest
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186824-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit2 15 migrate-support-check fail in 186824 never pass
 test-armhf-armhf-xl-credit2 16 saverestore-support-check fail in 186824 never pass
 test-armhf-armhf-xl-arndale 15 migrate-support-check fail in 186824 never pass
 test-armhf-armhf-xl-arndale 16 saverestore-support-check fail in 186824 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186811
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186811
 test-armhf-armhf-libvirt      8 xen-boot                     fail  like 186811
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186811
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186811
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186811
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass

version targeted for testing:
 linux                d67978318827d06f1c0fa4c31343a279e9df6fde
baseline version:
 linux                3e7819886281e077e82006fe4804b0d6b0f5643b

Last test of basis   186811  2024-07-15 23:14:03 Z    0 days
Testing same since   186816  2024-07-16 09:44:08 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Abel Vesa <abel.vesa@linaro.org>
  Adrian Hunter <adrian.hunter@intel.com>
  Alan Stern <stern@rowland.harvard.edu>
  Aleksandr Mezin <mezin.alexander@gmail.com>
  Alex Vdovydchenko <xzeol@yahoo.com>
  Alexey Makhalov <alexey.makhalov@broadcom.com>
  Alina Yu <alina_yu@richtek.com>
  Alison Schofield <alison.schofield@intel.com>
  Allen Pais <allen.lkml@gmail.com>
  Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
  Amit Pundir <amit.pundir@linaro.org>
  Amna Waseem <Amna.Waseem@axis.com>
  Andre Przywara <andre.przywara@arm.com>
  Andrea della Porta <andrea.porta@suse.com>
  Andrea Parri <parri.andrea@gmail.com>
  Andreas Kemnade <andreas@kemnade.info>
  Andrew Cooper <andrew.cooper3@citrix.com>
  Andrew Davis <afd@ti.com>
  Andrew Jeffery <andrew@codeconstruct.com.au>
  Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  Andy Shevchenko <andy.shevchenko@gmail.com>
  Andy Shevchenko <andy@kernel.org>
  AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
  Anna-Maria Behnsen <anna-maria@linutronix.de>
  Anshuman Khandual <anshuman.khandual@arm.com>
  Armin Wolf <W_Armin@gmx.de>
  Arnd Bergmann <arnd@arndb.de>
  Ashish Kalra <ashish.kalra@amd.com>
  Aubin Constans <aubin.constans@microchip.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bastien Curutchet <bastien.curutchet@bootlin.com>
  Ben Walsh <ben@jubnut.com>
  Bert Karwatzki <spasswolf@web.de>
  Biju Das <biju.das.jz@bp.renesas.com>
  Bjorn Andersson <andersson@kernel.org>
  Bjorn Helgaas <bhelgaas@google.com>
  Borislav Petkov (AMD) <bp@alien8.de>
  Borislav Petkov <bp@alien8.de>
  Breno Leitao <leitao@debian.org>
  Brian Johannesmeyer <bjohannesmeyer@gmail.com>
  Bryan O'Donoghue <bryan.odonoghue@linaro.org>
  Caleb Connolly <caleb.connolly@linaro.org> # OnePlus 8T
  Catalin Marinas <catalin.marinas@arm.com>
  Charles Keepax <ckeepax@opensource.cirrus.com>
  Chen Ni <nichen@iscas.ac.cn>
  Chen Ridong <chenridong@huawei.com>
  Chen-Yu Tsai <wenst@chromium.org>
  Chris Packham <chris.packham@alliedtelesis.co.nz>
  Christian Heusel <christian@heusel.eu>
  Christian Loehle <christian.loehle@arm.com>
  Christian Marangi <ansuelsmth@gmail.com>
  Christophe JAILLET <christophe.jaillet@wanadoo.fr>
  Christopher S. Hall <christopher.s.hall@intel.com>
  Ciprian Costea <ciprianmarian.costea@oss.nxp.com>
  Colin Ian King <colin.i.king@gmail.com>
  Conor Dooley <conor.dooley@microchip.com>
  Costa Shulyupin <costa.shul@redhat.com>
  Daisuke Nojiri <dnojiri@chromium.org>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Lezcano <daniel.lezcano@linaro.org>
  Dave Hansen <dave.hansen@linux.intel.com>
  David Lechner <dlechner@baylibre.com>
  David Wang <00107082@163.com>
  Dev Jain <dev.jain@arm.com>
  Dmitry Safonov <0x7f454c46@gmail.com>
  Dr. David Alan Gilbert <linux@treblig.org>
  Drew Fustini <dfustini@baylibre.com>
  Dustin L. Howett <dustin@howett.net>
  Eddie James <eajames@linux.ibm.com>
  Eng Lee Teh <englee.teh@starfivetech.com>
  Etienne Buira <etienne.buira@free.fr>
  Eugene Shalygin <eugene.shalygin@gmail.com>
  Fabio Estevam <festevam@denx.de>
  Fabio Estevam <festevam@gmail.com>
  Frank Li <Frank.Li@nxp.com>
  Frederic Weisbecker <frederic@kernel.org>
  Frieder Schrempf <frieder.schrempf@kontron.de>
  Gavin Shan <gshan@redhat.com>
  Geert Uytterhoeven <geert+renesas@glider.be>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Guenter Roeck <linux@roeck-us.net>
  Hagar Hemdan <hagarhem@amazon.com>
  Haibo Chen <haibo.chen@nxp.com>
  Hanjun Guo <guohanjun@huawei.com>
  Heiko Stuebner <heiko.stuebner@cherry.de>
  Hongyu Chen <hongyu.chen1@amlogic.com>
  Huichun Feng <foxhoundsk.tw@gmail.com>
  Ilkka Koskinen <ilkka@os.amperecomputing.com>
  Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
  Ingo Molnar <mingo@kernel.org>
  Jagadeesh Kona <quic_jkona@quicinc.com>
  Jai Arora <jai.arora@samsung.com>
  James Morse <james.morse@arm.com>
  Jarkko Sakkinen <jarkko@kernel.org>
  Javier Carrasco <javier.carrasco.cruz@gmail.com>
  Jean-Philippe Brucker <jean-philippe@linaro.org>
  Jeff Johnson <quic_jjohnson@quicinc.com>
  Ji Sheng Teoh <jisheng.teoh@starfivetech.com>
  Jianyong Wu <jianyong.wu@arm.com>
  Jiaxun Yang <jiaxun.yang@flygoat.com>
  Jinjie Ruan <ruanjinjie@huawei.com>
  Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
  Joel Fernandes (Google) <joel@joelfernandes.org>
  Johannes Thumshirn <jth@kernel.org>
  Johannes Weiner <hannes@cmpxchg.org>
  John Allen <john.allen@amd.com>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Josh Poimboeuf <jpoimboe@kernel.org>
  Julia Lawall <Julia.Lawall@inria.fr>
  Junyi Zhao <junyi.zhao@amlogic.com>
  Kai Huang <kai.huang@intel.com>
  Kai-Heng Feng <kai.heng.feng@canonical.com>
  Kanak Shilledar <kanakshilledar111@protonmail.com>
  Kanak Shilledar <kanakshilledar@gmail.com>
  Kelvin Zhang <kelvin.zhang@amlogic.com>
  Kent Gibson <warthog618@gmail.com>
  Kevin Brodsky <kevin.brodsky@arm.com>
  Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
  Krzysztof Kozlowski <krzk@kernel.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Krzysztof Wilczyński <kw@linux.com>
  Kuldeep Singh <kuldeep.singh@nxp.com>
  Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
  Lai Jiangshan <jiangshan.ljs@antgroup.com>
  Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
  Lee Jones <lee@kernel.org>
  Leem ChaeHoon <infinite.run@gmail.com>
  Ley Foon Tan <leyfoon.tan@starfivetech.com>
  Li kunyu <kunyu@nfschina.com>
  Li zeming <zeming@nfschina.com>
  Liming Sun <limings@nvidia.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linus Walleij <linus.walleij@linaro.org>
  Liu Wei <liuwei09@cestc.cn>
  Manikandan Muralidharan <manikandan.m@microchip.com>
  Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  Marc Zyngier <maz@kernel.org>
  Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
  Marco Elver <elver@google.com>
  Marius Zachmann <mail@mariuszachmann.de>
  Mark Brown <broonie@kernel.org>
  Mark Rutland <mark.rutland@arm.com>
  Markus Stockhausen <markus.stockhausen@gmx.de>
  Martin Kaiser <martin@kaiser.cx>
  Masahiro Yamada <masahiroy@kernel.org>
  Mateusz Guzik <mjguzik@gmail.com>
  Michael Hennerich <michael.hennerich@analog.com>
  Michal Koutný <mkoutny@suse.com>
  Michał Mirosław <mirq-linux@rere.qmqm.pl>
  Miguel Luis <miguel.luis@oracle.com>
  Mike Rapoport (IBM) <rppt@kernel.org>
  Miquel Raynal <miquel.raynal@bootlin.com>
  Muhammad Usama Anjum <usama.anjum@collabora.com>
  Naina Mehta <quic_nainmeht@quicinc.com>
  Naresh Solanki <naresh.solanki@9elements.com>
  Nathan Chancellor <nathan@kernel.org>
  Neil Armstrong <neil.armstrong@linaro.org>
  Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD, SM8650-QRD & SM8650-HDK
  Neil Armstrong <neil.armstrong@linaro.org> # on SM8650-QRD
  Nianyao Tang <tangnianyao@huawei.com>
  Nicholas Piggin <npiggin@gmail.com>
  Nicola Di Lieto <nicola.dilieto@gmail.com>
  Nicolas Ferre <nicolas.ferre@microchip.com>
  Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
  Nikolay Borisov <nik.borisov@suse.com>
  Noah Wang <noahwang.wang@outlook.com>
  Nuno Sa <nuno.sa@analog.com>
  Nícolas F. R. A. Prado <nfraprado@collabora.com>
  Oleg Nesterov <oleg@redhat.com>
  Pali Rohár <pali@kernel.org>
  Patrick Delaunay <patrick.delaunay@foss.st.com>
  Paul E. McKenney <paulmck@kernel.org>
  Peng Fan <peng.fan@nxp.com>
  Peter Collingbourne <pcc@google.com>
  Peter Robinson <pbrobinson@gmail.com>
  Peter Zijlstra (Intel) <peterz@infradead.org>
  Peter Zijlstra <peterz@infradead.org>
  Prajna Rajendra Kumar <prajna.rajendrakumar@microchip.com>
  Pratik Farkase <pratik.farkase@wsisweden.com>
  Pratik Farkase <pratikfarkase94@gmail.com>
  Puranjay Mohan <puranjay@kernel.org>
  Qiuxu Zhuo <qiuxu.zhuo@intel.com>
  Raag Jadav <raag.jadav@intel.com>
  Radu Sabau <radu.sabau@analog.com>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Rafael J. Wysocki <rafael@kernel.org>
  Randy Dunlap <rdunlap@infradead.org>
  Richard Fitzgerald <rf@opensource.cirrus.com>
  Rob Barnes <robbarnes@google.com>
  Rob Herring (Arm) <robh@kernel.org>
  Robert Marko <robimarko@gmail.com>
  Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
  Sander Vanheule <sander@svanheule.net>
  Sean Anderson <sean.anderson@linux.dev>
  Sean Christopherson <seanjc@google.com>
  Sean Young <sean@mess.org>
  Sebastian Reichel <sebastian.reichel@collabora.com>
  Seongsu Park <sgsu.park@samsung.com>
  Sergiu Cuciurean <sergiu.cuciurean@analog.com>
  Shenwei Wang <shenwei.wang@nxp.com>
  Shiji Yang <yangshiji66@outlook.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Simon Trimmer <simont@opensource.cirrus.com>
  Stanislav Jakubek <stano.jakubek@gmail.com>
  Stanislav Spassov <stanspas@amazon.de>
  Stefan Wahren <wahrenst@gmx.net>
  Stephen Horvath <s.horvath@outlook.com.au>
  Sudeep Holla <sudeep.holla@arm.com>
  Sunny Luo <sunny.luo@amlogic.com>
  Tao Liu <ltao@redhat.com>
  Tejun Heo <tj@kernel.org>
  Thomas Bonnefille <thomas.bonnefille@bootlin.com>
  Thomas Gleixner <tglx@linutronix.de>
  Thomas Huth <thuth@redhat.com>
  Thomas Weißschuh <linux@weissschuh.net>
  Thorsten Blum <thorsten.blum@toblux.com>
  Tim Merrifield <tim.merrifield@broadcom.com>
  Tony Luck <tony.luck@intel.com>
  Trevor Gamblin <tgamblin@baylibre.com>
  Tzung-Bi Shih <tzungbi@kernel.org>
  Ulf Hansson <ulf.hansson@linaro.org>
  Uros Bizjak <ubizjak@gmail.com>
  Uwe Kleine-König <u.kleine-koenig@baylibre.com>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  Uwe Kleine-König <ukleinek@baylibre.com>
  Uwe Kleine-König <ukleinek@kernel.org>
  Vasyl Gomonovych <gomonovych@gmail.com>
  Vincent Whitchurch <vincent.whitchurch@axis.com>
  Vishnu Pajjuri <vishnu@os.amperecomputing.com>
  Vitor Soares <vitor.soares@toradex.com>
  Vladimir Oltean <vladimir.oltean@nxp.com>
  Waiman Long <longman@redhat.com>
  Wayne Tung <chineweff@gmail.com>
  Wenchao Hao <haowenchao22@gmail.com>
  Wilken Gottwalt <wilken.gottwalt@posteo.net>
  Will Deacon <will@kernel.org>
  William Breathitt Gray <wbg@kernel.org>
  Willy Tarreau <w@1wt.eu>
  Wolfram Sang <wsa+renesas@sang-engineering.com>
  Xianwei Zhao <xianwei.zhao@amlogic.com>
  Xiu Jianfeng <xiujianfeng@huawei.com>
  Xu Yang <xu.yang_2@nxp.com>
  Yang Li <yang.lee@linux.alibaba.com>
  Yazen Ghannam <yazen.ghannam@amd.com>
  Youwan Wang <youwan@nfschina.com>
  Yu Liao <liaoyu15@huawei.com>
  Zheng Yongjun <zhengyongjun3@huawei.com>
  Zqiang <qiang.zhang1211@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 15284 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 19:37:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 19:37:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759779.1169452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTnzT-0001r2-L2; Tue, 16 Jul 2024 19:37:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759779.1169452; Tue, 16 Jul 2024 19:37:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTnzT-0001qv-Hu; Tue, 16 Jul 2024 19:37:35 +0000
Received: by outflank-mailman (input) for mailman id 759779;
 Tue, 16 Jul 2024 19:37:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Cjwt=OQ=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1sTnzR-0001qp-Vi
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 19:37:34 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d769c4f9-43aa-11ef-bbfc-fd08da9f4363;
 Tue, 16 Jul 2024 21:37:32 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 464F1CE13C9;
 Tue, 16 Jul 2024 19:37:26 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 836AFC4AF0B;
 Tue, 16 Jul 2024 19:37:25 +0000 (UTC)
Received: from aws-us-west-2-korg-oddjob-1.ci.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by aws-us-west-2-korg-oddjob-1.ci.codeaurora.org (Postfix) with ESMTP id
 6FE2EC43443; Tue, 16 Jul 2024 19:37: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: d769c4f9-43aa-11ef-bbfc-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721158645;
	bh=ezUxYx7dVvX+0XB8qXmtZtrBO88mhcRhMS6b9UsFxPw=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=igrmwgP+BvFZ204bquq47+UZ/PgAfkHvmB203DiU2A9DXgZb5Tj5QP7QbkKozOaPW
	 LDGNdz9lOcBJQOi/uK06S8oFyx1ZF7/UYnsEcGxpWkSFohksDHJVFKlTB+W8sxUBQf
	 74ezQu5F/CbUTTMs2QxmvfJq10BDqpuOUe17pbyJZbWbpZpAwLVE96Jacp6e2r9z2G
	 kt4yuBb4L5tAu5jD9B6U/4Wfdl02HHt/RwXv5PzmSzMS6x4azGRuY+vjqqEuxtJcCe
	 9w2LXfYo601oHj1v2enyJQ9voe18otYdPI+dQMuEaLbF+XUxog2INzDf09XpyUZxNu
	 r/ICervlb7+kw==
Subject: Re: [GIT PULL] xen: branch for v6.11-rc1
From: pr-tracker-bot@kernel.org
In-Reply-To: <20240715054732.7508-1-jgross@suse.com>
References: <20240715054732.7508-1-jgross@suse.com>
X-PR-Tracked-List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
X-PR-Tracked-Message-Id: <20240715054732.7508-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.11-rc1-tag
X-PR-Tracked-Commit-Id: 9fe6a8c5b247e182c1781556794324a8e26a7cd3
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
Message-Id: <172115864544.21341.8821775973276387007.pr-tracker-bot@kernel.org>
Date: Tue, 16 Jul 2024 19:37:25 +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 Mon, 15 Jul 2024 07:47:32 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.11-rc1-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 19:50:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 19:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759785.1169462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sToBu-0004Pi-Mi; Tue, 16 Jul 2024 19:50:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759785.1169462; Tue, 16 Jul 2024 19:50:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sToBu-0004Pb-JK; Tue, 16 Jul 2024 19:50:26 +0000
Received: by outflank-mailman (input) for mailman id 759785;
 Tue, 16 Jul 2024 19:50: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=+WOl=OQ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sToBt-0004PV-AR
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 19:50:25 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a28e48dc-43ac-11ef-8776-851b0ebba9a2;
 Tue, 16 Jul 2024 21:50:22 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id CD11BCE13DD;
 Tue, 16 Jul 2024 19:50:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AAAFEC116B1;
 Tue, 16 Jul 2024 19:50: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: a28e48dc-43ac-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721159416;
	bh=LgdqD8kL4Y6uM3s0QcSBO95/PS0q49QRVNwLFjDF+00=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LmZZV/GpJcUiqeqR9KNvHgmhClUx6ntvFelMmY26ACxLV5NMDUpd+IKjPfJ+r5hsd
	 i3VFrOpW9bL/anmV//ULVSefExKeuyHpG2LelxD5T62/rwEgaMdlHtJ8ze3nyy3jsI
	 wghXS2Ppl85dvRvA1x6ODK0ha2wcr/hbsaa2y2lvWRIDYP9LdGF1e5aItetxHQrdIk
	 w4SDxzcqm/7nMPd+gShmVyQcEtoUeD6p04COIMzDuQdpUMbBnU+ZEe1Y+dbjuRRvz5
	 79Q+mH5iv0zOrPK5kvMXD2OYevnZHFqvxcCQdKaS4xi3cWeOkIRFzqh1yCjYqC+VWF
	 kjEEbfj9IGYEg==
Date: Tue, 16 Jul 2024 12:50:14 -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, sstabellini@kernel.org
Subject: Re: [ImageBuilder] Make 'bootefi' work again
In-Reply-To: <20240716084759.62152-1-michal.orzel@amd.com>
Message-ID: <alpine.DEB.2.22.394.2407161249400.3635@ubuntu-linux-20-04-desktop>
References: <20240716084759.62152-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 Tue, 16 Jul 2024, Michal Orzel wrote:
> When $BOOT_CMD is bootefi, there shall be no '-' between $kernel_addr
> and $device_tree_addr.
> 
> Fixes: 3fa89f8f9853 ("Add support for BOOT_CMD")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

I think and if/else would have been more readable but it is fine anyway.
Thanks for spotting the issue and fixing it quickly!

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

> ---
> Note: using this command would be a good opportunity for a Xen EFI boot CI test
> on Arm64 when the stub is not responsible for loading modules.
> ---
>  scripts/uboot-script-gen | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index 8b664e711b10..f8a087b881ce 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -1391,7 +1391,7 @@ fi
>  
>  if [ "$BOOT_CMD" != "none" ]
>  then
> -    echo "$BOOT_CMD $kernel_addr - $device_tree_addr" >> $UBOOT_SOURCE
> +    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
>  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 Tue Jul 16 20:10:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 20:10:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759792.1169471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sToVZ-0007Ri-AK; Tue, 16 Jul 2024 20:10:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759792.1169471; Tue, 16 Jul 2024 20:10:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sToVZ-0007Rb-7O; Tue, 16 Jul 2024 20:10:45 +0000
Received: by outflank-mailman (input) for mailman id 759792;
 Tue, 16 Jul 2024 20:10: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=p5km=OQ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sToVX-0007RV-LP
 for xen-devel@lists.xenproject.org; Tue, 16 Jul 2024 20:10:43 +0000
Received: from fhigh1-smtp.messagingengine.com
 (fhigh1-smtp.messagingengine.com [103.168.172.152])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 78e0ed86-43af-11ef-bbfc-fd08da9f4363;
 Tue, 16 Jul 2024 22:10:41 +0200 (CEST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 4FFB11147E7F;
 Tue, 16 Jul 2024 16:10:39 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute5.internal (MEProxy); Tue, 16 Jul 2024 16:10:39 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 16 Jul 2024 16:10: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: 78e0ed86-43af-11ef-bbfc-fd08da9f4363
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=1721160639;
	 x=1721247039; bh=T7Z0H2aovgHGC23SSHYjTkRh3NWYsc7H320q89t1lAs=; b=
	d6l3vXbJz9+RTmMRA7Vz6CzSWhbjNJhD51o0QmtzvVxYQIk57kwiSxlHKPsAvcwK
	4X9OFH35ACAkV21tUijiJdliLqhjIqJBseC9v30QyK5UI2dEJ2F9BWlvUYO009Xn
	CkkaZHiBpbJvPtmRzJxy8Si8McY0fulh1W2k/PHyDmV/ptkg9ndKmylXPAdyhWoF
	1hssrPv7EjRr/erFFRaJMZnLGyYgivMTbt8TQi/0mPpFZigOt8IKAuQwSwtrMNDQ
	dUjIVU9G0iYuE9JevMw7JJf2VG7jNSED6PZrtWkz0l91wudwLyPlKgv5znPYT476
	9NrMzAVEQFSmvGtg7t3Wyg==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm2; t=1721160639; x=1721247039; bh=T7Z0H2aovgHGC23SSHYjTkRh3NWY
	sc7H320q89t1lAs=; b=mJtepLaOVMQF6qQ3c610rI4tjZsnpQEAU1fopmKTOZHV
	/osD1gqQwR4NbVB8Dy6z9Z2o9yCYOLc1NFtf7c0YKd43diC2qMpkk4O+wByobROv
	SkiDH366eLSB8u2Cjm5bUoRf2DF7RtBZCyd54Cmh1HcyCNuJj/WxpubN25bQmexf
	dPVbTIB+i4CL68dUdt+zljozOc5WEf/LNCAloDPEGxJYd7XWXlf9WhyM2iRYQswy
	V4QeAc1zm4zJi9AA+Nwml4BYKTr93B0JTPnoY4QsiOGrezRVeW2IiehG1UeudB5p
	TqUrHZeeTu5b6LvZfK5EV5fxOzCAkwoRiGmSyWn92Q==
X-ME-Sender: <xms:vtOWZgW5WTm8mSqcmdTtXw-rkFmJIPZR1nHV9Jwu2c87A7uA5tZFLw>
    <xme:vtOWZklhADaKNskDx8poQtRNV6DrRgQhdZMMAFwZi_s3oUD0hkU11qUf7SGKDIyJV
    3FaeRj9r2cfsw>
X-ME-Received: <xmr:vtOWZkZaPUo3HZmrHBKfSRaEGSBdgaGJkl3MQIbPcxBeCUIBf2zBrY9SIwjpzhj1EWf2kGpFb1ZPT74wz-9aMCD_h0ZzKzfxeg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrgeeggddugeehucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdei
    tdefkeehueegkeetvefhheettefgieeigeejheelgffhjefgiedtudevkedvnecuffhomh
    grihhnpehfvgguohhrrghprhhojhgvtghtrdhorhhgpdgrrhgthhhlihhnuhigrdhorhhg
    necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrh
    hmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:vtOWZvW_peyjQh7OVZsmK-ftmD36sXtr4BYDpFu3Q1UApejNeBItaw>
    <xmx:vtOWZqmdKFVs3vgi85NNYUZ3hChIUFk65kP0P4vwbuxFn9QqWYecpg>
    <xmx:vtOWZkeToybQCUUEK2VMQWnr8aQ-WiD90GYOrOmEND46UPBoxxnGIA>
    <xmx:vtOWZsEQCTTr_lHUl9m2eMtfWsBOTImb-uiZhQVM0N6Dzp8rixkwtQ>
    <xmx:v9OWZsXPWB59PZC4zfY44qHb6z36Z6Hd8x5WkLPGuGj6bTR3-E_91J4r>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 16 Jul 2024 22:10:34 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <tony@aperard.fr>
Cc: Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates
Message-ID: <ZpbTuxLaaXDHnRYb@mail-itl>
References: <20240715155051.3375999-1-andrew.cooper3@citrix.com>
 <3b188f84-50f7-4e13-bcde-1d6076e5cc2d@xen.org>
 <423412a9-e969-4126-8e39-7e77e67d2fd8@suse.com>
 <884ea922-946c-4344-ab29-6f2eb4be69f7@xen.org>
 <94edb2c8-1d40-49c1-b29f-151418eb5c11@suse.com>
 <7920f364-d07d-4004-b2b8-fa43b754e9b9@xen.org>
 <94722620-dc9f-4ace-9e3e-070c362d10df@suse.com>
 <2bdf382a-cbad-454f-82ce-0b0d30d2e8ef@suse.com>
 <ZpZ77uJ/wuhoxR2p@l14>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="xD08BN9kpkQOfhTD"
Content-Disposition: inline
In-Reply-To: <ZpZ77uJ/wuhoxR2p@l14>


--xD08BN9kpkQOfhTD
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 16 Jul 2024 22:10:34 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <tony@aperard.fr>
Cc: Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.19] docs/checklist: Fix XEN_EXTRAVERSION
 inconsistency for release candidates

On Tue, Jul 16, 2024 at 03:55:58PM +0200, Anthony PERARD wrote:
> On Tue, Jul 16, 2024 at 10:22:18AM +0200, Juergen Gross wrote:
> > On 16.07.24 09:46, Jan Beulich wrote:
> > > On 16.07.2024 09:33, Julien Grall wrote:
> > > > Hi,
> > > >=20
> > > > On 16/07/2024 08:24, Jan Beulich wrote:
> > > > > On 16.07.2024 09:22, Julien Grall wrote:
> > > > > > On 16/07/2024 07:47, Jan Beulich wrote:
> > > > > > > On 15.07.2024 18:56, Julien Grall wrote:
> > > > > > > > On 15/07/2024 16:50, Andrew Cooper wrote:
> > > > > > > > > An earlier part of the checklist states:
> > > > > > > > >=20
> > > > > > > > >       * change xen-unstable README. The banner (generated=
 using figlet) should say:
> > > > > > > > >           - "Xen 4.5" in releases and on stable branches
> > > > > > > > >           - "Xen 4.5-unstable" on unstable
> > > > > > > > >           - "Xen 4.5-rc" for release candidate
> > > > > > > > >=20
> > > > > > > > > Update the notes about XEN_EXTRAVERSION to match.
> > > > >=20
> > > > > When this is the purpose of the patch, ...
> > > > >=20
> > > > > > > > We have been tagging the tree with 4.5.0-rcX. So I think it=
 would be
> > > > > > > > better to update the wording so we use a consistent naming.
> > > > > > >=20
> > > > > > > I find:
> > > > > > >=20
> > > > > > > 4.18-rc
> > > > > > > 4.17-rc
> > > > > > > 4.16-rc
> > > > > > > 4.15-rc
> > > > > >=20
> > > > > > Hmmm... I don't think we are looking at the same thing. I was
> > > > > > specifically looking at the tag and *not* XEN_EXTRAVERSION.
> > > > >=20
> > > > > ... why would we be looking at tags?
> > > >=20
> > > > As I wrote, consistency across the naming scheme we use.
> > > >=20
> > > > > The tags (necessarily) have RC numbers,
> > > >=20
> > > > Right but they also *have* the .0.
> > > >=20
> > > > > so are going to be different from XEN_EXTRAVERSION in any event.
> > > >=20
> > > > Sure they are not going to be 100% the same. However, they could ha=
ve
> > > > some similarity.
> > > >=20
> > > > As I pointed out multiple times now, to me it is odd we are tagging=
 the
> > > > tree with 4.19.0-rcX, but we use 4.19-rc.
> > > >=20
> > > > Furthermore, if you look at the history of the document. It is quite
> > > > clear that the goal was consistency (the commit mentioned by Andrew
> > > > happened after). Yes it wasn't respected but I can't tell exactly w=
hy.
> > > >=20
> > > > So as we try to correct the documentation, I think we should also l=
ook
> > > > at consistency. If you *really* want to drop the .0, then I think it
> > > > should happen for the tag as well (again for consistency).
> > >=20
> > > I don't see why (but I also wouldn't mind the dropping from the tag).
> > > They are going to be different. Whether they're different in one or t=
wo
> > > aspects is secondary to me. I rather view the consistency goal to be
> > > with what we've been doing in the last so many releases.
> >=20
> > Another aspect to look at would be version sorting. This will be intere=
sting
> > when e.g. having a Xen rpm package installed and upgrading it with a la=
ter
> > version. I don't think we want to regard replacing an -rc version with =
the
> > .0 version to be a downgrade, so the the version numbers should be sort=
ed by
> > "sort -V" in the correct order.
>=20
> Packages version from distribution is not something we have to deal with
> upstream. It's for the one writing the package version to make sure
> that -rc are older than actual release.
>=20
> While trying to to find if SPEC files where dealing with "-rc" suffix,
> I found a doc for fedora telling how to deal with RCs:
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/
> They say to replace the dash with a tilde, so "-rc" become "~rc", and
> package manager know what to do with it.
>=20
> Some other distribution know how to deal with "rc" suffix, but the dash
> "-" isn't actually allowed in the version string:
> https://man.archlinux.org/man/vercmp.8
>=20
> So unless we forgo "-rc" in tags, there's no way we can take into
> account how distributions package manager sorts version numbers. Also,
> there's no need to, it is the job of the packager to deal with version
> number, we just need to make is simple enough and consistent.

XEN_EXTRAVERSION isn't only about version for packaging (where indeed
some changes for -rc will likely be needed anyway, as different packages
have different ways of dealing with it). It's also about version
reported by Xen in various places like `xl info xen_version`. IMO it
makes sense to have consistent format there (always 3 parts separated by
a dot). It makes live easier for any tooling making use of this value.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmaW07sACgkQ24/THMrX
1yzD3Qf/fz5HXKJSMM1619iY5VHNiCSoKKrRl4BG0WaiTlShsuM17aD6n6Temo9T
gL8uU8yoNjmfWK3sVqkq8Fk/Oo6WcBbnMy4QWtlu+VCjds7LWPCRsIMXqKhMU3F/
jLL0vpBoSRfw6AawS7ReRftOndWNlGXp7cjyhMpMkSEWvGNY085IKdZRAqOemgQ2
LXZnx5eeCRvdDTAfC03ZTeuLGzpk+VYr2MdR5BciV7FXrWZewV4sdZfii12EmcED
oGHRilH/jOcpxOyK4v0LrnZ3yPDyQR/ywpdkR1Ao81tGi60avHFTPC1sDu5kTU8e
YBEkbm2euYEwJmzwaFZwnMa++Ayt7Q==
=Terd
-----END PGP SIGNATURE-----

--xD08BN9kpkQOfhTD--


From xen-devel-bounces@lists.xenproject.org Tue Jul 16 20:34:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 16 Jul 2024 20:34:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759799.1169482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTosX-00022D-1j; Tue, 16 Jul 2024 20:34:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759799.1169482; Tue, 16 Jul 2024 20: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 1sTosW-000226-Ux; Tue, 16 Jul 2024 20:34:28 +0000
Received: by outflank-mailman (input) for mailman id 759799;
 Tue, 16 Jul 2024 20:34:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTosV-00021w-Qd; Tue, 16 Jul 2024 20:34:27 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTosV-0007eV-PI; Tue, 16 Jul 2024 20:34:27 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTosV-0005By-Dt; Tue, 16 Jul 2024 20:34:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTosV-0008RT-DN; Tue, 16 Jul 2024 20:34: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=mggBoOsO+U8VQTsZcbQVTZV9FObFlCXlaiRwXKKAAwY=; b=PMqcyAGI2ay3tws5Wj91V5PKB0
	QfpJlIvjPOKsdJ8NZkGF2sy3g9SyRTEPR6Uie3+wpca6hIFgUC/KjDYt/nRWve/Vthcr2JEq7nNRv
	VtdOMnQJJ79W9OxUu+M+vivZetBcuDsMVI81Bey1JZuHNBAfaUNH5B8qSxQwjO+58mS8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186822-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186822: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=690f13fcb4a7b74b30091c7067a18bb7971982d8
X-Osstest-Versions-That:
    ovmf=f9c373c8388f819166e57365197bc423d56209a6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 16 Jul 2024 20:34:27 +0000

flight 186822 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186822/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 690f13fcb4a7b74b30091c7067a18bb7971982d8
baseline version:
 ovmf                 f9c373c8388f819166e57365197bc423d56209a6

Last test of basis   186817  2024-07-16 10:12:56 Z    0 days
Testing same since   186822  2024-07-16 15:43:03 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Levi Yun <yeoreum.yun@arm.com>
  levi.yun <yeoreum.yun@arm.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   f9c373c838..690f13fcb4  690f13fcb4a7b74b30091c7067a18bb7971982d8 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 00:10:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 00:10:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759812.1169498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTsFW-0001zq-RF; Wed, 17 Jul 2024 00:10:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759812.1169498; Wed, 17 Jul 2024 00:10:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTsFW-0001zj-Nx; Wed, 17 Jul 2024 00:10:26 +0000
Received: by outflank-mailman (input) for mailman id 759812;
 Wed, 17 Jul 2024 00:10:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTsFV-0001zZ-HT; Wed, 17 Jul 2024 00:10:25 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTsFV-0003sT-Ac; Wed, 17 Jul 2024 00:10:25 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTsFU-0005bm-Px; Wed, 17 Jul 2024 00:10:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTsFU-0002LT-PW; Wed, 17 Jul 2024 00: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=EBHotS18gF7gvrhIDbGuazWkzsJBB7teN3eCSrAEvow=; b=pNmWbgUZKDnaRfdcDOMjrVoO9q
	Msio8acxiF5hdlpd6e4UanA1lo6RPIkvNnb3OvBO5DwEG/ZpOALGHB24O7UH0Za4fCII480lARTkR
	yy7it4Sc9N6hfeyixsu/fhYA00xOQITvuj69dZ9AMshpIpMmS/hincv0PmwkIcK6Il0M=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186826-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186826: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=57338346f29cea7b183403561bdc5f407163b846
X-Osstest-Versions-That:
    xen=1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 00:10:24 +0000

flight 186826 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186826/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  57338346f29cea7b183403561bdc5f407163b846
baseline version:
 xen                  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9

Last test of basis   186786  2024-07-12 22:02:08 Z    4 days
Testing same since   186821  2024-07-16 13:02:08 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   1ddc8c1bad..57338346f2  57338346f29cea7b183403561bdc5f407163b846 -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 00:20:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 00:20:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759821.1169508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTsPX-0003Wy-Oe; Wed, 17 Jul 2024 00:20:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759821.1169508; Wed, 17 Jul 2024 00:20: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 1sTsPX-0003Wr-Ll; Wed, 17 Jul 2024 00:20:47 +0000
Received: by outflank-mailman (input) for mailman id 759821;
 Wed, 17 Jul 2024 00:20: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=bXng=OR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sTsPW-0003Wl-Ti
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 00:20:46 +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 67f4e4f4-43d2-11ef-8776-851b0ebba9a2;
 Wed, 17 Jul 2024 02:20: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 4B913613F9;
 Wed, 17 Jul 2024 00:20:43 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C9BDC116B1;
 Wed, 17 Jul 2024 00:20: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: 67f4e4f4-43d2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721175643;
	bh=AxXY69D1iOPsybrBxxmQkAjPk7DMljmZlLDuRhqdC7g=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=VnVrvJIoWB1iWe+jnTVjnaXukUVb+Gdh/RoovetKj7WQ+Bwi0LWwgRP0fNGZw/7C9
	 TnXqwpDGxmF2HXmYpbgZL0UB+y04tQVhh8/bSK9EvmNYCDrsd0sbEJAcf0cvAZXuhh
	 kL0E+8eojGWEs5SC4TVw6v5DjQtz2Uycgw30H3G9343pt93aCMk0btPpev6uZJefmV
	 lvi+uQsy08Gu4uY2C0FqgOF6IZNXlRAc1Kn3fO5kQD4ZNUiFnvZdTKx0NEYCOevZpX
	 RKYnyiaO87i9/2HsorT7WfN8cTy6N4t08RIIRnKMx7M4IEal5JLdhZ2Kyzcxm4CxML
	 zdlsAk0Ym8zew==
Date: Tue, 16 Jul 2024 17:20:40 -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>, 
    Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
In-Reply-To: <4893a89d-9ef5-4d86-94b0-042e88588439@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407161713010.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com> <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com> <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
 <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com> <alpine.DEB.2.22.394.2407151736530.3635@ubuntu-linux-20-04-desktop> <4893a89d-9ef5-4d86-94b0-042e88588439@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, 16 Jul 2024, Jan Beulich wrote:
> On 16.07.2024 02:43, Stefano Stabellini wrote:
> > On Mon, 15 Jul 2024, Jan Beulich wrote:
> >> On 13.07.2024 00:38, Stefano Stabellini wrote:
> >>> On Wed, 3 Jul 2024, Jan Beulich wrote:
> >>>> I further have to note that, as indicated during the earlier discussion,
> >>>> I still cannot see how occasional ambiguity is going to be dealt with.
> >>>> IOW from the rules above two different headers could still end up with
> >>>> the same guard identifier.
> >>>
> >>> Maybe something like this?
> >>>
> >>> "In the event of naming collisions, exceptions to the coding style may
> >>> be made at the discretion of the contributor and maintainers."
> >>
> >> Hmm, maybe I wasn't clear enough then. My take is that the scheme should
> >> simply not allow for possible collisions. Neither the contributor nor the
> >> reviewer may spot such a collision, and it may therefore take until the
> >> first full scan that one is actually noticed. Which I consider too late
> >> in the process, even if we already were at the point where commits were
> >> checked pre-push.
> > 
> > Looking at the proposal, copy/pasted here for convenience:
> > 
> > - private headers -> <dir>_<filename>_H
> > - asm-generic headers -> ASM_GENERIC_<filename>_H
> >     - #ifndef ASM_GENERIC_X86_PERCPU_H
> >       #define ASM_GENERIC_X86_PERCPU_H
> >       //...
> >       #endif /* ASM_GENERIC_X86_PERCPU_H */
> > - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
> >     - #ifndef ASM_X86_DOMAIN_H
> >       #define ASM_X86_DOMAIN_H
> >       //...
> >       #endif /* ASM_X86_DOMAIN_H */
> > - xen/include/xen/<filename>.h -> XEN_<filename>_H
> > - xen/include/xen/<subdir>/<filename>.h -> XEN_<subdir>_<filename>_H
> > 
> > 
> > The only possibility for collision that I can see is from the first
> > point:
> > 
> > - private headers -> <dir>_<filename>_H
> 
> I don't think this is the only possibility of collisions. The <subdir>_<filename>
> parts can similarly cause problems if either of the two involved names contains
> e.g. a dash (which would need converting to an underscore) or an underscore. To
> avoid this, the name separators (slashes in the actual file names) there may need
> representing by double underscores.

I am OK with you two underscores as name separator (slashes in the
actual file names). Would you do it for all levels like this?

- arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
- arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
- arch/x86/lib/something.h -> X86__LIB__SOMETHING_H


I think it is better than the below:

- arch/arm/arm64/lib/something.h -> ARM_ARM64__LIB__SOMETHING_H
- arch/arm/arm32/lib/something.h -> ARM_ARM32__LIB__SOMETHING_H
- arch/x86/lib/something.h -> X86_LIB__SOMETHING_H


> > two directories like this could collide:
> > 
> > - arch/arm/arm64/lib/something.h -> LIB_SOMETHING_H
> > - arch/arm/arm32/lib/something.h -> LIB_SOMETHING_H
> > - arch/x86/lib/something.h -> LIB_SOMETHING_H
> > 
> > (Leaving aside that in this example it would not be an issue because the
> > three headers are not meant to be all included in the same file.)
> > 
> > Can we specify that <dir> should go all the way back to the arch/ or or
> > common or drivers directory?
> > 
> > - arch/arm/arm64/lib/something.h -> ARM_ARM64_LIB_SOMETHING_H
> > - arch/arm/arm32/lib/something.h -> ARM_ARM32_LIB_SOMETHING_H
> > - arch/x86/lib/something.h -> X86_LIB_SOMETHING_H
> 
> We can of course, so long as we're okay(ish) with the length and redundancy. As
> already indicated before, there are downsides to this. Yet a firm scheme with
> few rules has the benefit that it might even be possible to use a script to do
> all the guard adjustments.

I also like the firm scheme with few rules


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 01:32:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 01:32:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759830.1169518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTtWi-0006Ah-TY; Wed, 17 Jul 2024 01:32:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759830.1169518; Wed, 17 Jul 2024 01: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 1sTtWi-0006AZ-O8; Wed, 17 Jul 2024 01:32:16 +0000
Received: by outflank-mailman (input) for mailman id 759830;
 Wed, 17 Jul 2024 01:32:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTtWh-0006AP-6e; Wed, 17 Jul 2024 01:32:15 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTtWh-00086u-51; Wed, 17 Jul 2024 01:32:15 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTtWg-0007nY-6t; Wed, 17 Jul 2024 01:32:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTtWg-00032N-3S; Wed, 17 Jul 2024 01:32:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=UwUevQ31CfuCqL6jrL+eL/kgRk/4Jbn7WWPKiFqtmzc=; b=YVYEhNIVtvZC8e4bJn30/Jnp93
	Iuf29F511BX1sCmo3gHG5OSB/mCTZeolNwn6Tv6+zt+Ex5RpbSNdSZ/VNuw2/8cD+RohqoRGcbEzY
	bWlNM5V6osvMhieqQhUbTlS3WHZmos8hIhTgYIc6RDVog3ooJC5AkNL0aIxLGrxTQahw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186829-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186829: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=55b043732d20305c769c6243e0a9a6e1f5ae879d
X-Osstest-Versions-That:
    ovmf=690f13fcb4a7b74b30091c7067a18bb7971982d8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 01:32:14 +0000

flight 186829 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186829/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 55b043732d20305c769c6243e0a9a6e1f5ae879d
baseline version:
 ovmf                 690f13fcb4a7b74b30091c7067a18bb7971982d8

Last test of basis   186822  2024-07-16 15:43:03 Z    0 days
Testing same since   186829  2024-07-16 23:41:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   690f13fcb4..55b043732d  55b043732d20305c769c6243e0a9a6e1f5ae879d -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 03:10:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 03:10:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759840.1169530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTv32-00086A-6a; Wed, 17 Jul 2024 03:09:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759840.1169530; Wed, 17 Jul 2024 03:09:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTv32-000863-45; Wed, 17 Jul 2024 03:09:44 +0000
Received: by outflank-mailman (input) for mailman id 759840;
 Wed, 17 Jul 2024 03:09:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTv30-00085s-JS; Wed, 17 Jul 2024 03:09:42 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTv30-00026z-HK; Wed, 17 Jul 2024 03:09:42 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTv30-0004c2-3h; Wed, 17 Jul 2024 03:09:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTv30-0003Xf-38; Wed, 17 Jul 2024 03:09: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hypDgfY4HXhiNEDrw9M86/6GPaxCTkVU3dBM/SxrBtE=; b=ryRTK89GoThkbK2sj1/hRaEJDB
	Rz2j2Ziw6fhGPE4Z/mt9N5LXW9yN2NplS9q5x7xeDXfUeFYUgLrwXnO59XaEuWwcWzKIQbo6ZdDGg
	eXc/GnrYA5CteVowut1L3Ys9DQeozlFtwykPIB6J4Df4qBSALpwoK7gByZDwwvsAc64c=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186831-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186831: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=6b4dd3625b24fbb9ac5d6d931dd11ff50e288a79
X-Osstest-Versions-That:
    ovmf=55b043732d20305c769c6243e0a9a6e1f5ae879d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 03:09:42 +0000

flight 186831 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186831/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 6b4dd3625b24fbb9ac5d6d931dd11ff50e288a79
baseline version:
 ovmf                 55b043732d20305c769c6243e0a9a6e1f5ae879d

Last test of basis   186829  2024-07-16 23:41:12 Z    0 days
Testing same since   186831  2024-07-17 01:44:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   55b043732d..6b4dd3625b  6b4dd3625b24fbb9ac5d6d931dd11ff50e288a79 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 04:30:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 04:30:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759849.1169541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTwIR-0008MJ-IS; Wed, 17 Jul 2024 04:29:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759849.1169541; Wed, 17 Jul 2024 04: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 1sTwIR-0008MC-Fg; Wed, 17 Jul 2024 04:29:43 +0000
Received: by outflank-mailman (input) for mailman id 759849;
 Wed, 17 Jul 2024 04:29:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTwIQ-0008Lz-7s; Wed, 17 Jul 2024 04:29:42 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTwIQ-00056a-63; Wed, 17 Jul 2024 04:29:42 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTwIP-0007fe-M2; Wed, 17 Jul 2024 04:29:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTwIP-0004SF-LZ; Wed, 17 Jul 2024 04:29: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ob6P94Sefw5VpR8IqD7kMqXvH6oWQxjzaDQsBmPKxdQ=; b=gBg7kas3QAb8tAV8VyodL8wjfx
	0fZtQ8pKUnJJFcvAXbKLN3hOImmjQ94F7bQjP5HrRlVa1AlgXvBT+UzzBa82z/EKIfwB9cIO0oWS/
	DSByIYPISuDgfW0x99dqCIataRIDZw85LyIbXMrgycD3dq0w6DzS1qk576cdZNvM7hBU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186832-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186832: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=43b7a856fad2e25b1b5bddeb6cb08881a29caf4d
X-Osstest-Versions-That:
    ovmf=6b4dd3625b24fbb9ac5d6d931dd11ff50e288a79
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 04:29:41 +0000

flight 186832 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186832/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 43b7a856fad2e25b1b5bddeb6cb08881a29caf4d
baseline version:
 ovmf                 6b4dd3625b24fbb9ac5d6d931dd11ff50e288a79

Last test of basis   186831  2024-07-17 01:44:05 Z    0 days
Testing same since   186832  2024-07-17 03:10:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Rebecca Cran <rebecca@os.amperecomputing.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   6b4dd3625b..43b7a856fa  43b7a856fad2e25b1b5bddeb6cb08881a29caf4d -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 07:17:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 07:17:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759862.1169550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTyud-0001hX-Us; Wed, 17 Jul 2024 07:17:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759862.1169550; Wed, 17 Jul 2024 07: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 1sTyud-0001hQ-S1; Wed, 17 Jul 2024 07:17:19 +0000
Received: by outflank-mailman (input) for mailman id 759862;
 Wed, 17 Jul 2024 07:17:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTyuc-0001hG-JD; Wed, 17 Jul 2024 07:17:18 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTyuc-0001iI-Fo; Wed, 17 Jul 2024 07:17:18 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTyuc-0003wX-3l; Wed, 17 Jul 2024 07:17:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTyuc-0005gr-3M; Wed, 17 Jul 2024 07:17:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=U80JwQoASLBbib65rm8BaWkINrsjRkxEwTewP5vIDZs=; b=tNcNnGCNm/0/bgQmMQ8XHbJVrk
	DYPnvyDAxF0wB9bpWWSc6wbGtENZlsxNr9g03zOi8QZ29RjM0SEDP0HdlDR733sEv2npvhCbJ2bJ1
	VQvDGW8lhEG/ctVUe0WOp7djixED8uKpLdvCiAJu7q/rKnA5VEQXZT0FfuGCgdpmAELM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186819-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.17-testing test] 186819: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.17-testing:test-amd64-amd64-dom0pvh-xl-intel:guest-localmigrate/x10:fail:heisenbug
    xen-4.17-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=8f653989ecdc6e152ee39e974be82a659453f4f8
X-Osstest-Versions-That:
    xen=43d5f8f079a53ee905b3d0ccff3b871cd54a853b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 07:17:18 +0000

flight 186819 xen-4.17-testing real [real]
flight 186837 xen-4.17-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186819/
http://logs.test-lab.xenproject.org/osstest/logs/186837/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-dom0pvh-xl-intel 20 guest-localmigrate/x10 fail pass in 186837-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186665
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186665
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186665
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186665
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186665
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186665
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  8f653989ecdc6e152ee39e974be82a659453f4f8
baseline version:
 xen                  43d5f8f079a53ee905b3d0ccff3b871cd54a853b

Last test of basis   186665  2024-07-04 19:38:36 Z   12 days
Testing same since   186819  2024-07-16 12:40:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   43d5f8f079..8f653989ec  8f653989ecdc6e152ee39e974be82a659453f4f8 -> stable-4.17


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 07:42:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 07:42:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759877.1169564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTzId-0005JW-0z; Wed, 17 Jul 2024 07:42:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759877.1169564; Wed, 17 Jul 2024 07: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 1sTzIc-0005JP-Ue; Wed, 17 Jul 2024 07:42:06 +0000
Received: by outflank-mailman (input) for mailman id 759877;
 Wed, 17 Jul 2024 07:42:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTzIb-0005JF-Ha; Wed, 17 Jul 2024 07:42:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTzIb-000294-Fp; Wed, 17 Jul 2024 07:42:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTzIb-0004YB-71; Wed, 17 Jul 2024 07:42:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTzIb-0000S0-6X; Wed, 17 Jul 2024 07:42: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4Qd6CZVDPde1LZGcHM+iuS+Y0kKMzi0ztrxx1vNvtMg=; b=SkFnjdYTOw+KsEmb1aAdS9e3Lo
	PVeWJo32N6dmnQSubMo3GzTY86yKWwNcfoSRCYVif1K/kG6PSxiexqWZmheTDtML0K6bBlBPEnDQW
	SEKaq/2vcrPhQDj5huIfR+hB3SDibl1wUDLR0MS/1k4g+Qd+IW2Wb0PsuIS5yndPnhic=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186836-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186836: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=b3441e01003ab91df816263df98f9675b2cd2aa1
X-Osstest-Versions-That:
    ovmf=43b7a856fad2e25b1b5bddeb6cb08881a29caf4d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 07:42:05 +0000

flight 186836 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186836/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 b3441e01003ab91df816263df98f9675b2cd2aa1
baseline version:
 ovmf                 43b7a856fad2e25b1b5bddeb6cb08881a29caf4d

Last test of basis   186832  2024-07-17 03:10:06 Z    0 days
Testing same since   186836  2024-07-17 06:11:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jason1 Lin <jason1.lin@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   43b7a856fa..b3441e0100  b3441e01003ab91df816263df98f9675b2cd2aa1 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 08:03:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 08:03:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759888.1169578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTzcz-0008Tj-QX; Wed, 17 Jul 2024 08:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759888.1169578; Wed, 17 Jul 2024 08:03:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sTzcz-0008Tc-Nk; Wed, 17 Jul 2024 08:03:09 +0000
Received: by outflank-mailman (input) for mailman id 759888;
 Wed, 17 Jul 2024 08:03:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTzcy-0008TS-4P; Wed, 17 Jul 2024 08:03:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTzcy-00033f-1u; Wed, 17 Jul 2024 08:03:08 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sTzcx-00061p-LF; Wed, 17 Jul 2024 08:03:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sTzcx-0004XI-Ke; Wed, 17 Jul 2024 08:03: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=bEDynjsaZZNzbO2LjjsVkMdBZb3MlUnb/rYrAXZvtzY=; b=16a0rAe6c8Bm/jkj0xZKi2qqRZ
	032Z0VsDJX7jbotIHEXOdh6dcPqScL3EfA2auH99whplcVi8QUeA8HCIkUivtN4DNQ7rHtf73WNA8
	W+oSagJxHO3QEXyoGyxQ8kOYPsjvtle0qUPeVWUEGENN6HIuVGFV8+QtOOY4qQrEHO04=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186820-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.18-testing test] 186820: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.18-testing:test-amd64-amd64-xl-xsm:guest-localmigrate:fail:heisenbug
    xen-4.18-testing:test-armhf-armhf-libvirt-vhd:host-ping-check-xen:fail:heisenbug
    xen-4.18-testing:test-amd64-amd64-qemuu-freebsd11-amd64:guest-start.2:fail:heisenbug
    xen-4.18-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d46a1ce3175dc45e97a8c9b89b0d0ff46145ae64
X-Osstest-Versions-That:
    xen=45c5333935628e7c80de0bd5a9d9eff50b305b16
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 08:03:07 +0000

flight 186820 xen-4.18-testing real [real]
flight 186834 xen-4.18-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186820/
http://logs.test-lab.xenproject.org/osstest/logs/186834/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-xsm      18 guest-localmigrate  fail pass in 186834-retest
 test-armhf-armhf-libvirt-vhd 10 host-ping-check-xen fail pass in 186834-retest
 test-amd64-amd64-qemuu-freebsd11-amd64 22 guest-start.2 fail pass in 186834-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check fail in 186834 never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check fail in 186834 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186666
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186666
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186666
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186666
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186666
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186666
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  d46a1ce3175dc45e97a8c9b89b0d0ff46145ae64
baseline version:
 xen                  45c5333935628e7c80de0bd5a9d9eff50b305b16

Last test of basis   186666  2024-07-04 19:38:36 Z   12 days
Testing same since   186820  2024-07-16 12:40:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       fail    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   45c5333935..d46a1ce317  d46a1ce3175dc45e97a8c9b89b0d0ff46145ae64 -> stable-4.18


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 10:13:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 10:13:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759902.1169589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU1ef-0005Uc-LK; Wed, 17 Jul 2024 10:13:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759902.1169589; Wed, 17 Jul 2024 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 1sU1ef-0005UV-IX; Wed, 17 Jul 2024 10:13:01 +0000
Received: by outflank-mailman (input) for mailman id 759902;
 Wed, 17 Jul 2024 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=Uy2s=OR=aepfle.de=olaf@srs-se1.protection.inumbo.net>)
 id 1sU1ed-0005UP-Uu
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 10:13:00 +0000
Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de
 [85.215.255.23]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23c6015c-4425-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 12:12:58 +0200 (CEST)
Received: from sender by smtp.strato.de (RZmta 50.5.0 AUTH)
 with ESMTPSA id Dbccd106HACiGcG
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate);
 Wed, 17 Jul 2024 12:12: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: 23c6015c-4425-11ef-bbfd-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; t=1721211164; cv=none;
    d=strato.com; s=strato-dkim-0002;
    b=plqz9r/5nVWd0L+zi5grEklWOFuHC4rFi0q9z9V8hb/c9RwTtQugMO07aMbg/Jl+p2
    6diH+lXf2IRN7r8tAbYyXAJyX4iwFZHBwhWP1WjhkTM5+6tC39znSyEY5+2Idk4bKZAg
    M+jKfaUbi+ibEOFKYVNBFKKsHCk2+9fw2YvTaMYCFydP0PdSLLi/KwYjV6i5nZMLbxE7
    4WrW9qRaXUK7bvytgw42ovUXeHIXT4PkFjxE1tFiFdNlnclBiE2iux6gbJBxQ5uOTlk9
    ZWqBabgMSYbTCe2yIKqcN81BPMWLJiovixKg5R0CHesxeiA3j0bVTDjy6di8qYcvfA5Y
    JM0w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1721211164;
    s=strato-dkim-0002; d=strato.com;
    h=Message-ID:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=EcVTPx+ir7SxGMvWa9/83wVmxxJWzcuodxHkibifbas=;
    b=hZLyuFwo5jZXouU9jNeL/3bSyt0TJVz5WGvUkgWNNROhqJ+oY8AokRwQADqNqWWSyc
    thIn6unMHzIdxYKGce5p1umXr6OZBYQSQQBtsICnIvdqw6fBbz0DEoKQlDdmBp2jPDDQ
    FH7xzKJnHQKn8MyJ85VqsLTvW+EQ8Yz6DIAo4N0xYPLq7syA3K9THa2PWQjErGr9n3QD
    McU/UtqwYN6tNaeHCn4zspDV8/8g/S34FOyB/97GexFnq3fcRbsMQWm4Jw+KdZB1Nn20
    SeqQojWssKpnNuYZgML6EHw+pRNMmUglF3CcRYQ/hSXsUDPDUKx3JxiUirsASqiBxzSX
    reIA==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1721211164;
    s=strato-dkim-0002; d=aepfle.de;
    h=Message-ID:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=EcVTPx+ir7SxGMvWa9/83wVmxxJWzcuodxHkibifbas=;
    b=W4eQIKVyblECRe7bW6pWU88OpV3CyRdeH6IcdlpkIqv04qKTZxkx1yRxZtfAuZv1Nd
    kzy7u9fgCB3UR8asXLIpnHeRbEfhQzMl46fB5D+u9vydaRbLWjjTSweh/rpkimcmjft+
    ar/ITLnXOGakuyaLzt0vGP9Zcu67bFGVl3cXT7cUDnA26585v2QRZE0HM1yyvqcXVKNq
    SKLkMqcjFfJ35pl8e67rZyPKNuC2LzMR1WXCmZa03647FxQO6/6dHsFAkqAzh6472jZD
    Ky71tIg7m6RTDbIVv3/9MMBxNOKDndVuLGI/OBfcsICCufqKy6/r8bwZFvR8iN1rxI79
    wgYA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1721211164;
    s=strato-dkim-0003; d=aepfle.de;
    h=Message-ID:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=EcVTPx+ir7SxGMvWa9/83wVmxxJWzcuodxHkibifbas=;
    b=ZLFQPbaM0q5ZHVU0mrM+zQNzmDUHxyqiXNfht/94BI4mryqrLSVuMod+SCNelqgUkz
    p7U+RHF6JwBjg+LyvvCw==
X-RZG-AUTH: ":P2EQZWCpfu+qG7CngxMFH1J+3q8wa/QXkBR9MXjAuzpIG0mv9coXAg4wqAr7QZotb7aUa81oo9UbOmDZ35aKGzKUlPKq5Q=="
From: Olaf Hering <olaf@aepfle.de>
To: xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1] automation: adjust paths to docker files in documentation
Date: Wed, 17 Jul 2024 12:12:32 +0200
Message-ID: <20240717101239.21051-1-olaf@aepfle.de>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="us-ascii"

Use new location of dockerfiles.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
---
 automation/build/README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/automation/build/README.md b/automation/build/README.md
index 12a2b4af18..bd0c0e0418 100644
--- a/automation/build/README.md
+++ b/automation/build/README.md
@@ -100,12 +100,12 @@ such as openSUSE Tumbleweed. Login with the gitlab.com credentials.
 
 ```
 docker login registry.gitlab.com/xen-project/xen
-make -C automation/build suse/opensuse-tumbleweed
+make -C automation/build opensuse/tumbleweed-x86_64
 env CONTAINER_NO_PULL=1 \
   CONTAINER=tumbleweed \
   CONTAINER_ARGS='-e CC=gcc -e CXX=g++ -e debug=y' \
   automation/scripts/containerize automation/scripts/build < /dev/null
-make -C automation/build suse/opensuse-tumbleweed PUSH=1
+make -C automation/build opensuse/tumbleweed-x86_64 PUSH=1
 ```
 
 [BuildKit]: https://docs.docker.com/build/buildkit/


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 10:25:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 10:25:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759910.1169598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU1qK-00072j-N4; Wed, 17 Jul 2024 10:25:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759910.1169598; Wed, 17 Jul 2024 10:25: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 1sU1qK-00072c-K3; Wed, 17 Jul 2024 10:25:04 +0000
Received: by outflank-mailman (input) for mailman id 759910;
 Wed, 17 Jul 2024 10:25: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=xtCR=OR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sU1qJ-00072W-Qu
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 10:25:03 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3b6dae4-4426-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 12:25:02 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2eefeab807dso4844101fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 03:25: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-1fc0bc49fc1sm72182685ad.263.2024.07.17.03.24.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Jul 2024 03:25: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: d3b6dae4-4426-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721211902; x=1721816702; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0Y6nBG+guUNPk/PSBaIngiNPaND157ntsthiySQreP0=;
        b=ViTynY/cJbb6qUeNpXu9YqtjUqkHGATxuMvdij0H33Ns221tK4HkK8/+qOHQAB3Arm
         Qm+BlUuhLQN4JV1xe+pK+pEnj4h9itgFUcerjowWQvhhtFqEyPWmwmTlzCUQt2KDWx1H
         YyC+DZ0uK6ZKDDuIZm2d5JbqjkMHXbgoy3tYWD7jo6MHk45aqLICuJQmXZC/FhJJQBHr
         rXdzlKXr1+OejpClKGrnpqjF9TN1XyIkjKgJtExKkVJTWJTcYwu/hcgeva8uyWJ+/loo
         tySrMgBkQ8OHx1tXAJTnUVKk7OxIZaMVnt31wM21vWhfEt6Uq9Ui+CC1ttMk0PI49tPT
         3DTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721211902; x=1721816702;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0Y6nBG+guUNPk/PSBaIngiNPaND157ntsthiySQreP0=;
        b=xKfeD0gKVhaxDpxFo9X5xrItQG5xYM65Wm40q8rsLc531rHMdSyd8cdPQRm6O20MxU
         g8MXGbQLEwcm6Ofm/PHf/lzuoesyCGfKUR+TNH969wDgxkdOXFUp8P8q/ObeMCeUtA/K
         6ZWOo/8uVTcI6fQ8Su5pOeitWfrFfFMoFdR5uIxjynPFZyRacFz3l7hoDizlsg6e6IFd
         7HtW6MJbr5ujPYZylk/Xa5a8YfXkI3RCKEnsPBxEe4SMWcdtaZGhLKcFlikvqSr1NDIt
         IEDtR6DXMcd/z0IPzbCgULQsY0h1wLgaTXkv4TpUrTZ7NkuNAxLZ/ggyife232+QzwHU
         htWQ==
X-Forwarded-Encrypted: i=1; AJvYcCUZIrhluBcPY8ZXTfy0GGvUtwcLW9npvnf1kAP2rvEFWgD/jtGUPs90babl7bn9UjLfMwLmQ8Dtfyix7IZpdwQEchRSWVM2f1Nibw5V4k4=
X-Gm-Message-State: AOJu0YwGjvscsPXXo1SOhngLK6R/9dbB6smnmnrXgU20To4xB5iMiWzU
	9ep7OGrFNoFAT0LdzanxFzW7hPOmLQu6Xh4+bBOUw5nwmrIMBMgQybA3mXIMMw==
X-Google-Smtp-Source: AGHT+IGDWftZnVr1xutcSJnMlqCxHK9Ml9nW0ih/WDiqWKf/Bap63D0duEAiAZgqJMlzK8fY9a2MwQ==
X-Received: by 2002:a2e:9482:0:b0:2ec:1cf1:b74c with SMTP id 38308e7fff4ca-2eefd143aecmr8140321fa.32.1721211901793;
        Wed, 17 Jul 2024 03:25:01 -0700 (PDT)
Message-ID: <013c6cc2-eddf-4beb-b115-01aaaa71faa6@suse.com>
Date: Wed, 17 Jul 2024 12:24:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
 consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com>
 <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com>
 <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
 <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com>
 <alpine.DEB.2.22.394.2407151736530.3635@ubuntu-linux-20-04-desktop>
 <4893a89d-9ef5-4d86-94b0-042e88588439@suse.com>
 <alpine.DEB.2.22.394.2407161713010.3635@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.2407161713010.3635@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.07.2024 02:20, Stefano Stabellini wrote:
> On Tue, 16 Jul 2024, Jan Beulich wrote:
>> On 16.07.2024 02:43, Stefano Stabellini wrote:
>>> On Mon, 15 Jul 2024, Jan Beulich wrote:
>>>> On 13.07.2024 00:38, Stefano Stabellini wrote:
>>>>> On Wed, 3 Jul 2024, Jan Beulich wrote:
>>>>>> I further have to note that, as indicated during the earlier discussion,
>>>>>> I still cannot see how occasional ambiguity is going to be dealt with.
>>>>>> IOW from the rules above two different headers could still end up with
>>>>>> the same guard identifier.
>>>>>
>>>>> Maybe something like this?
>>>>>
>>>>> "In the event of naming collisions, exceptions to the coding style may
>>>>> be made at the discretion of the contributor and maintainers."
>>>>
>>>> Hmm, maybe I wasn't clear enough then. My take is that the scheme should
>>>> simply not allow for possible collisions. Neither the contributor nor the
>>>> reviewer may spot such a collision, and it may therefore take until the
>>>> first full scan that one is actually noticed. Which I consider too late
>>>> in the process, even if we already were at the point where commits were
>>>> checked pre-push.
>>>
>>> Looking at the proposal, copy/pasted here for convenience:
>>>
>>> - private headers -> <dir>_<filename>_H
>>> - asm-generic headers -> ASM_GENERIC_<filename>_H
>>>     - #ifndef ASM_GENERIC_X86_PERCPU_H
>>>       #define ASM_GENERIC_X86_PERCPU_H
>>>       //...
>>>       #endif /* ASM_GENERIC_X86_PERCPU_H */
>>> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
>>>     - #ifndef ASM_X86_DOMAIN_H
>>>       #define ASM_X86_DOMAIN_H
>>>       //...
>>>       #endif /* ASM_X86_DOMAIN_H */
>>> - xen/include/xen/<filename>.h -> XEN_<filename>_H
>>> - xen/include/xen/<subdir>/<filename>.h -> XEN_<subdir>_<filename>_H
>>>
>>>
>>> The only possibility for collision that I can see is from the first
>>> point:
>>>
>>> - private headers -> <dir>_<filename>_H
>>
>> I don't think this is the only possibility of collisions. The <subdir>_<filename>
>> parts can similarly cause problems if either of the two involved names contains
>> e.g. a dash (which would need converting to an underscore) or an underscore. To
>> avoid this, the name separators (slashes in the actual file names) there may need
>> representing by double underscores.
> 
> I am OK with you two underscores as name separator (slashes in the
> actual file names). Would you do it for all levels like this?
> 
> - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
> - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
> - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> 
> 
> I think it is better than the below:
> 
> - arch/arm/arm64/lib/something.h -> ARM_ARM64__LIB__SOMETHING_H
> - arch/arm/arm32/lib/something.h -> ARM_ARM32__LIB__SOMETHING_H
> - arch/x86/lib/something.h -> X86_LIB__SOMETHING_H

Hmm, maybe it's indeed better to do it entirely uniformly then.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 10:46:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 10:46:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759918.1169609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU2Al-0001JE-El; Wed, 17 Jul 2024 10:46:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759918.1169609; Wed, 17 Jul 2024 10:46:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU2Al-0001J7-Bk; Wed, 17 Jul 2024 10:46:11 +0000
Received: by outflank-mailman (input) for mailman id 759918;
 Wed, 17 Jul 2024 10:46: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=xtCR=OR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sU2Ak-0001Iw-3m
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 10:46:10 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c581b8de-4429-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 12:46:07 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a79f9a72a99so125151966b.0
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 03:46: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
 41be03b00d2f7-78e32b6bb6bsm6144831a12.8.2024.07.17.03.46.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Jul 2024 03:46: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: c581b8de-4429-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721213166; x=1721817966; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Acttukhx9ScdudlRBkFYARuUBotTuMGgD1PLsipGU4Q=;
        b=Nz7cZCFlzlZvgkRx3JlfgxMY0X/N3LL5d0ORq3iT5dhbqz7uUp+6UHpLhO3W4YcjTA
         ssIIjgZA9SVqvuu6BXMRM/3jezk+wG3ddyLyMmEy4W1euno9n2n55csolE7gKQtkmtr7
         miiIGgz8/yu0A1mzanfS8VjuCJJ6JFYLF4Z/B2KWADaDfm4akoxxPqkNEncOkMPnZ4Po
         WojwqcJQlIMSeCD+ZWD+/9SqJZm51haZnWiy0b6I3a0SlWinRiKelSUMxJPztuSTO/TX
         SSVQeKV3h34GlMIlgPMj1k0b/fP0r7qpHZ0+03Nrr1eLf5Mjoyxxg7TUAU/0eukRG307
         mitg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721213166; x=1721817966;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Acttukhx9ScdudlRBkFYARuUBotTuMGgD1PLsipGU4Q=;
        b=AS5tTbBxo8VBwuBVjWY99N6lNtZCHIGAN3/k/p8hUKZwAkxPtN34TypZhXk4SmXzF6
         c23fX5S3GOHd+RrxwNGCfPMKtabAdYWr3DWMn2wddoM6p1U5XHQfmUR5hIh30U7NPSop
         DtpHSQHU2fc3cwSgmADyFtq2zWeB79JvTGpG7xtVW0UxClv/iR3xVCduIdMGY2HFEcaF
         rzuDoxBfgJDW//eEymJ/1Jqj++q0Zoyl/DZr3LWypwyL7oAKqwiFx5xQMkBLnvi7H0+r
         f9p8VCg/51zujWlnHG9qAheXwRJJZlEkGVXSIQuU2if7YcyA3xNbNa+1nn/bLYyUDvZo
         Z9gQ==
X-Forwarded-Encrypted: i=1; AJvYcCUIz7lsPbUNAzy0tG4fVzaFe0q1VlKWLLQnapA0wmm447Xw2De6bbWIeVA6Eou4txtAc9vbOqcjO8JuFVCsxbAIW34nQi5BQo6W/PW/Qco=
X-Gm-Message-State: AOJu0Ywc2Ygb4pJkeUjtDtgZc8jozNMEgbBjQirlPiAzGqofFjEpJIDp
	wuAitmiDYIDKv8p+ISuoDWpW3hX/LinFmlq4GUuBKO5xTr+YMIWS4r6qkoctpg==
X-Google-Smtp-Source: AGHT+IGy9JH8MN2GH79Peavs3zzN/8WagHM+LT+Q8PzhH7xHsk5Wd+PpT3ks6lCNX7pP/rVDJrBPrQ==
X-Received: by 2002:a17:906:5658:b0:a77:db04:8ceb with SMTP id a640c23a62f3a-a79edbfd602mr455710366b.19.1721213166442;
        Wed, 17 Jul 2024 03:46:06 -0700 (PDT)
Message-ID: <1f7f7577-fbc9-4f80-a012-15f4889ffc4b@suse.com>
Date: Wed, 17 Jul 2024 12:45:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V3 (resend) 03/19] x86/pv: Rewrite how building PV dom0
 handles domheap mappings
To: Elias El Yandouzi <eliasely@amazon.com>
Cc: julien@xen.org, pdurrant@amazon.com, dwmw@amazon.com,
 Hongyan Xia <hongyxia@amazon.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Julien Grall <jgrall@amazon.com>,
 xen-devel@lists.xenproject.org
References: <20240513134046.82605-1-eliasely@amazon.com>
 <20240513134046.82605-4-eliasely@amazon.com>
 <ffe6fbc8-fbbb-44a4-b981-b43f3fb48433@suse.com>
 <1fa5e786-c0fa-4dff-8085-608d7f983698@amazon.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1fa5e786-c0fa-4dff-8085-608d7f983698@amazon.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.07.2024 18:12, Elias El Yandouzi wrote:
> Hi Jan,
> 
> On 14/05/2024 16:03, Jan Beulich wrote:
>> On 13.05.2024 15:40, Elias El Yandouzi wrote:
>>> --- a/xen/arch/x86/pv/dom0_build.c
>>> +++ b/xen/arch/x86/pv/dom0_build.c
>>> @@ -382,6 +382,10 @@ int __init dom0_construct_pv(struct domain *d,
>>>       l3_pgentry_t *l3tab = NULL, *l3start = NULL;
>>>       l2_pgentry_t *l2tab = NULL, *l2start = NULL;
>>>       l1_pgentry_t *l1tab = NULL, *l1start = NULL;
>>> +    mfn_t l4start_mfn = INVALID_MFN;
>>> +    mfn_t l3start_mfn = INVALID_MFN;
>>> +    mfn_t l2start_mfn = INVALID_MFN;
>>> +    mfn_t l1start_mfn = INVALID_MFN;
>>
>> Just to mention it here again: By limiting the scope of these I'm pretty
>> sure no initializer would be needed even "just in case" (really I don't
>> think they're needed even when the all have function scope, as producer
>> and consumer are always close together afaics; quite different from
>> l<N>start and l<N>tab).
> 
> I had a closer look at your suggestion and I don't think it is possible, 
> especially for l3start_mfn.
> 
> The variable, l3start_mfn, can get initialized in the else leg of the 
> first if statement along with l3start variable.
> 
> If you look a few lines below in the for loop, we call 
> l4e_from_mfn(l3start_mfn, L4_PROT) which assumes l3start_mfn is valid. 
> It could not be the case if we took the first leg of the aforementioned 
> if statement.
> 
> I don't think I can this easily limit their scope. It could work for the 
> others, but not l3start_mfn. So I can either leave things as they are or 
> limit the scope of every variables but l3start_mfn.

Please do. Limiting the scope of variables, especially in larger functions,
is often quite helpful. The one exception is certainly necessary here, I
agree.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 11:12:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 11:12:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759925.1169618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU2aN-000574-G5; Wed, 17 Jul 2024 11:12:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759925.1169618; Wed, 17 Jul 2024 11:12: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 1sU2aN-00056x-DU; Wed, 17 Jul 2024 11:12:39 +0000
Received: by outflank-mailman (input) for mailman id 759925;
 Wed, 17 Jul 2024 11:12: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=9rux=OR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sU2aM-00056r-0C
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 11:12:38 +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 78601fd1-442d-11ef-8776-851b0ebba9a2;
 Wed, 17 Jul 2024 13:12:35 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a797c62565aso680760166b.2
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 04:12:35 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc7f1e04sm434292866b.127.2024.07.17.04.12.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Jul 2024 04:12: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: 78601fd1-442d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721214755; x=1721819555; 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=uQJlmImWUn4JLfPzBBHp3AQMvRB1xhH6UYv2sVQJD38=;
        b=Gy8fuYn4EdVkgI35U1zoseAeZiji25W/2Ar2XLhO/3wmIPAAD21q7PqQTI66rTfWdI
         ebSwpSPAzJzct20M9Bw56LlymVOQTy8ccI5dyPEaZo4vGALHUhfndS0nkjmypQ6m2zc2
         4a7BC9Y01mRrlOW0Ua1VvRT+iNdmxD6EzCVuA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721214755; x=1721819555;
        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=uQJlmImWUn4JLfPzBBHp3AQMvRB1xhH6UYv2sVQJD38=;
        b=qWR/7QtRViQIxMl9eeBWaHzewsj/acvLPtuQHEpRsR2uIpC29IdAzPSfUsXQ26x97y
         VVM+5n3/evwGTh3vQ0byRcTg62v8xpNtZyOFDIJLIa1Mlgi43z6/nPBDH7dj17oqgxub
         uU8crgxO0xWK7ixmkaFYtFm1G4bPonoitqxE3MjDuj2VJNcIR5jNN4MPd7qzW+LIFmkn
         2pftokupKA/aRWysruUWbpP6+Oj36UwxKXf9ow+mQVGdVqm1nDaWHe2SrQOTzaWMb0Co
         7gsW7vCo1Lu5qgn0EDQr952hHY11UX0WDxWhVcAC3ASd39hFdsIUIQVsyEXCFg7T27uc
         w78w==
X-Gm-Message-State: AOJu0YxRnQS20A8KQj9uR35jBvDoRi808ZekAC19zEdvW7Zj8Wq8hTwk
	D9rIIq6kc/1wDJNAzCxWJ2Cx1dnhXOx/XArd9SPuSs7OfjSoRm/xBqW62yVmvmpW4MnVcgRlO3z
	p
X-Google-Smtp-Source: AGHT+IHMyxXCqflcImchzoCp0xLOwkteW+TCnCKMVBZP/Oc0mxgUAvxooEcKW9b/OduXX8rfohn7aA==
X-Received: by 2002:a17:906:2e8a:b0:a6f:e66a:1d3f with SMTP id a640c23a62f3a-a7a01192cafmr97866666b.32.1721214754529;
        Wed, 17 Jul 2024 04:12:34 -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 for-4.20] hvmloader: Rework hypercall infrastructure
Date: Wed, 17 Jul 2024 12:12:31 +0100
Message-Id: <20240717111231.3517605-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Right now, the hypercall page is at a hardcoded physical address, and making
hypercalls involves indirect calls to compile-time constant addresses.
e.g. HYPERCALL_memory_op is:

  mov    $0x80180,%eax
  call   *%eax

Instead, import the hypercall infrastructure from XTF to have hypercall_page[]
fully within the hvmloader image, and prepared at compile time rather than
runtime.  This uses direct calls, so HYPERCALL_memory_op now disassembles as:

  call   132180 <HYPERCALL_memory_op>

which is faster and clearer.

Remove the loop over multiple hypercall pages.  It was long ago realised to be
an unworkable design, and eax fixed in the ABI to 1.

Pass -z noexecstack to LD to stop newer bintuils complaining about the absence
of .note.GNU-stack.  hvmloader is not a regular binary, and in fact its stack
is always executable owing to operating in unpaged mode.

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

There doesn't appear to be any sensible AFLAGS infrastructure to set
-D__ASSEMBLY__.  Opecoding it once seemed like the least bad option.
---
 tools/firmware/hvmloader/Makefile         |   3 +
 tools/firmware/hvmloader/config.h         |   1 -
 tools/firmware/hvmloader/hvmloader.c      |   7 +-
 tools/firmware/hvmloader/hvmloader.lds    |   4 +-
 tools/firmware/hvmloader/hypercall.h      | 121 ++++++----------------
 tools/firmware/hvmloader/hypercall_page.S |  67 ++++++++++++
 6 files changed, 105 insertions(+), 98 deletions(-)
 create mode 100644 tools/firmware/hvmloader/hypercall_page.S

diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index 84cba171cd6b..0e1dce26b342 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -34,6 +34,7 @@ OBJS  = hvmloader.o mp_tables.o util.o smbios.o
 OBJS += smp.o cacheattr.o xenbus.o vnuma.o
 OBJS += e820.o pci.o pir.o ctype.o
 OBJS += hvm_param.o
+OBJS += hypercall_page.o
 OBJS += ovmf.o seabios.o
 ifeq ($(debug),y)
 OBJS += tests.o
@@ -64,6 +65,7 @@ endif
 # Suppress the warning about LOAD segments with RWX permissions, as what we
 # build isn't a normal user-mode executable.
 LDFLAGS-$(call ld-option,--warn-rwx-segments) := --no-warn-rwx-segments
+LDFLAGS-y += -z noexecstack
 
 .PHONY: all
 all: hvmloader
@@ -74,6 +76,7 @@ acpi:
 
 rombios.o: roms.inc
 smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\""
+hypercall_page.o: CFLAGS += -D__ASSEMBLY__
 
 ACPI_PATH = ../../libacpi
 DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
diff --git a/tools/firmware/hvmloader/config.h b/tools/firmware/hvmloader/config.h
index cd716bf39245..4ff7aa9d4483 100644
--- a/tools/firmware/hvmloader/config.h
+++ b/tools/firmware/hvmloader/config.h
@@ -64,7 +64,6 @@ extern bool acpi_enabled;
 
 /* Memory map. */
 #define SCRATCH_PHYSICAL_ADDRESS      0x00010000
-#define HYPERCALL_PHYSICAL_ADDRESS    0x00080000
 #define VGABIOS_PHYSICAL_ADDRESS      0x000C0000
 #define HVMLOADER_PHYSICAL_ADDRESS    0x00100000
 /* Special BIOS mappings, etc. are allocated from here upwards... */
diff --git a/tools/firmware/hvmloader/hvmloader.c b/tools/firmware/hvmloader/hvmloader.c
index f8af88fabf24..cd81eb412840 100644
--- a/tools/firmware/hvmloader/hvmloader.c
+++ b/tools/firmware/hvmloader/hvmloader.c
@@ -120,7 +120,6 @@ bool acpi_enabled;
 static void init_hypercalls(void)
 {
     uint32_t eax, ebx, ecx, edx;
-    unsigned long i;
     char signature[13];
     xen_extraversion_t extraversion;
     uint32_t base;
@@ -142,8 +141,7 @@ static void init_hypercalls(void)
 
     /* Fill in hypercall transfer pages. */
     cpuid(base + 2, &eax, &ebx, &ecx, &edx);
-    for ( i = 0; i < eax; i++ )
-        wrmsr(ebx, HYPERCALL_PHYSICAL_ADDRESS + (i << 12) + i);
+    wrmsr(ebx, (unsigned long)hypercall_page);
 
     /* Print version information. */
     cpuid(base + 1, &eax, &ebx, &ecx, &edx);
@@ -324,9 +322,6 @@ int main(void)
     const struct bios_config *bios;
     const struct hvm_modlist_entry *bios_module;
 
-    /* Initialise hypercall stubs with RET, rendering them no-ops. */
-    memset((void *)HYPERCALL_PHYSICAL_ADDRESS, 0xc3 /* RET */, PAGE_SIZE);
-
     printf("HVM Loader\n");
     BUG_ON(hvm_start_info->magic != XEN_HVM_START_MAGIC_VALUE);
 
diff --git a/tools/firmware/hvmloader/hvmloader.lds b/tools/firmware/hvmloader/hvmloader.lds
index edb1a12dc305..559cd2107f6a 100644
--- a/tools/firmware/hvmloader/hvmloader.lds
+++ b/tools/firmware/hvmloader/hvmloader.lds
@@ -7,9 +7,9 @@ SECTIONS
    * NB: there's no need to use the AT keyword in order to set the LMA, by
    * default the linker will use VMA = LMA unless specified otherwise.
    */
-  .text : { *(.text) *(.text.*) }
+  .text : { *(.text) *(.text.*)}
   .rodata : { *(.rodata) *(.rodata.*) }
-  .data : { *(.data) *(.data.*) }
+  .data : { *(.data) *(.data.*) *(.hcall) }
   .bss : { *(.bss) *(.bss.*) }
   _end = .;
 }
diff --git a/tools/firmware/hvmloader/hypercall.h b/tools/firmware/hvmloader/hypercall.h
index 5368c3072007..a55051c5350f 100644
--- a/tools/firmware/hvmloader/hypercall.h
+++ b/tools/firmware/hvmloader/hypercall.h
@@ -35,148 +35,91 @@
 #include <xen/xen.h>
 #include "config.h"
 
-#define hcall_addr(name)                                                \
-    ((unsigned long)HYPERCALL_PHYSICAL_ADDRESS + __HYPERVISOR_##name * 32)
-
-#define _hypercall0(type, name)                 \
-({                                              \
-    long __res;                                 \
-    asm volatile (                              \
-        "call *%%eax"                           \
-        : "=a" (__res)                          \
-        : "0" (hcall_addr(name))                \
-        : "memory" );                           \
-    (type)__res;                                \
-})
-
-#define _hypercall1(type, name, a1)             \
-({                                              \
-    long __res, __ign1;                         \
-    asm volatile (                              \
-        "call *%%eax"                           \
-        : "=a" (__res), "=b" (__ign1)           \
-        : "0" (hcall_addr(name)),               \
-          "1" ((long)(a1))                      \
-        : "memory" );                           \
-    (type)__res;                                \
-})
-
-#define _hypercall2(type, name, a1, a2)                 \
-({                                                      \
-    long __res, __ign1, __ign2;                         \
-    asm volatile (                                      \
-        "call *%%eax"                                   \
-        : "=a" (__res), "=b" (__ign1), "=c" (__ign2)    \
-        : "0" (hcall_addr(name)),                       \
-          "1" ((long)(a1)), "2" ((long)(a2))            \
-        : "memory" );                                   \
-    (type)__res;                                        \
-})
-
-#define _hypercall3(type, name, a1, a2, a3)             \
-({                                                      \
-    long __res, __ign1, __ign2, __ign3;                 \
-    asm volatile (                                      \
-        "call *%%eax"                                   \
-        : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   \
-          "=d" (__ign3)                                 \
-        : "0" (hcall_addr(name)),                       \
-          "1" ((long)(a1)), "2" ((long)(a2)),           \
-          "3" ((long)(a3))                              \
-        : "memory" );                                   \
-    (type)__res;                                        \
-})
-
-#define _hypercall4(type, name, a1, a2, a3, a4)         \
-({                                                      \
-    long __res, __ign1, __ign2, __ign3, __ign4;         \
-    asm volatile (                                      \
-        "call *%%eax"                                   \
-        : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   \
-          "=d" (__ign3), "=S" (__ign4)                  \
-        : "0" (hcall_addr(name)),                       \
-          "1" ((long)(a1)), "2" ((long)(a2)),           \
-          "3" ((long)(a3)), "4" ((long)(a4))            \
-        : "memory" );                                   \
-    (type)__res;                                        \
-})
-
-#define _hypercall5(type, name, a1, a2, a3, a4, a5)     \
-({                                                      \
-    long __res, __ign1, __ign2, __ign3, __ign4, __ign5; \
-    asm volatile (                                      \
-        "call *%%eax"                                   \
-        : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   \
-          "=d" (__ign3), "=S" (__ign4), "=D" (__ign5)   \
-        : "0" (hcall_addr(name)),                       \
-          "1" ((long)(a1)), "2" ((long)(a2)),           \
-          "3" ((long)(a3)), "4" ((long)(a4)),           \
-          "5" ((long)(a5))                              \
-        : "memory" );                                   \
-    (type)__res;                                        \
-})
+extern const char hypercall_page[];
+
+#define _hypercall2(type, hcall, a1, a2)                                \
+    ({                                                                  \
+        long res, _a1 = (long)(a1), _a2 = (long)(a2);                   \
+        asm volatile (                                                  \
+            "call hypercall_page + %c[offset]"                          \
+            : "=a" (res), "+b" (_a1), "+c" (_a2)                        \
+            : [offset] "i" (hcall * 32)                                 \
+            : "memory" );                                               \
+        (type)res;                                                      \
+    })
+
+#define _hypercall3(type, hcall, a1, a2, a3)                            \
+    ({                                                                  \
+        long res, _a1 = (long)(a1), _a2 = (long)(a2), _a3 = (long)(a3); \
+        asm volatile (                                                  \
+            "call hypercall_page + %c[offset]"                          \
+            : "=a" (res), "+b" (_a1), "+c" (_a2), "+d" (_a3)            \
+            : [offset] "i" (hcall * 32)                                 \
+            : "memory" );                                               \
+        (type)res;                                                      \
+    })
 
 static inline int
 hypercall_sched_op(
     int cmd, void *arg)
 {
-    return _hypercall2(int, sched_op, cmd, arg);
+    return _hypercall2(int, __HYPERVISOR_sched_op, cmd, arg);
 }
 
 static inline int
 hypercall_memory_op(
     unsigned int cmd, void *arg)
 {
-    return _hypercall2(int, memory_op, cmd, arg);
+    return _hypercall2(int, __HYPERVISOR_memory_op, cmd, arg);
 }
 
 static inline int
 hypercall_multicall(
     void *call_list, int nr_calls)
 {
-    return _hypercall2(int, multicall, call_list, nr_calls);
+    return _hypercall2(int, __HYPERVISOR_multicall, call_list, nr_calls);
 }
 
 static inline int
 hypercall_event_channel_op(
     int cmd, void *arg)
 {
-    return _hypercall2(int, event_channel_op, cmd, arg);
+    return _hypercall2(int, __HYPERVISOR_event_channel_op, cmd, arg);
 }
 
 static inline int
 hypercall_xen_version(
     int cmd, void *arg)
 {
-    return _hypercall2(int, xen_version, cmd, arg);
+    return _hypercall2(int, __HYPERVISOR_xen_version, cmd, arg);
 }
 
 static inline int
 hypercall_console_io(
     int cmd, int count, char *str)
 {
-    return _hypercall3(int, console_io, cmd, count, str);
+    return _hypercall3(int, __HYPERVISOR_console_io, cmd, count, str);
 }
 
 static inline int
 hypercall_vm_assist(
     unsigned int cmd, unsigned int type)
 {
-    return _hypercall2(int, vm_assist, cmd, type);
+    return _hypercall2(int, __HYPERVISOR_vm_assist, cmd, type);
 }
 
 static inline int
 hypercall_vcpu_op(
     int cmd, int vcpuid, void *extra_args)
 {
-    return _hypercall3(int, vcpu_op, cmd, vcpuid, extra_args);
+    return _hypercall3(int, __HYPERVISOR_vcpu_op, cmd, vcpuid, extra_args);
 }
 
 static inline int
 hypercall_hvm_op(
     int cmd, void *arg)
 {
-    return _hypercall2(int, hvm_op, cmd, arg);
+    return _hypercall2(int, __HYPERVISOR_hvm_op, cmd, arg);
 }
 
 #endif /* __HVMLOADER_HYPERCALL_H__ */
diff --git a/tools/firmware/hvmloader/hypercall_page.S b/tools/firmware/hvmloader/hypercall_page.S
new file mode 100644
index 000000000000..75428591d19a
--- /dev/null
+++ b/tools/firmware/hvmloader/hypercall_page.S
@@ -0,0 +1,67 @@
+#include <xen/xen.h>
+
+        .section ".hcall", "aw"
+        .align 4096
+
+        .globl hypercall_page
+hypercall_page:
+         /* Poisoned with `ret` for safety before hypercalls are set up. */
+        .fill 4096, 1, 0xc3
+        .type hypercall_page, STT_OBJECT
+        .size hypercall_page, 4096
+
+#define DECLARE_HYPERCALL(name)                                                 \
+        .globl HYPERCALL_ ## name;                                              \
+        .type  HYPERCALL_ ## name, STT_FUNC;                                    \
+        .size  HYPERCALL_ ## name, 32;                                          \
+        .set   HYPERCALL_ ## name, hypercall_page + __HYPERVISOR_ ## name * 32
+
+DECLARE_HYPERCALL(set_trap_table)
+DECLARE_HYPERCALL(mmu_update)
+DECLARE_HYPERCALL(set_gdt)
+DECLARE_HYPERCALL(stack_switch)
+DECLARE_HYPERCALL(set_callbacks)
+DECLARE_HYPERCALL(fpu_taskswitch)
+DECLARE_HYPERCALL(sched_op_compat)
+DECLARE_HYPERCALL(platform_op)
+DECLARE_HYPERCALL(set_debugreg)
+DECLARE_HYPERCALL(get_debugreg)
+DECLARE_HYPERCALL(update_descriptor)
+DECLARE_HYPERCALL(memory_op)
+DECLARE_HYPERCALL(multicall)
+DECLARE_HYPERCALL(update_va_mapping)
+DECLARE_HYPERCALL(set_timer_op)
+DECLARE_HYPERCALL(event_channel_op_compat)
+DECLARE_HYPERCALL(xen_version)
+DECLARE_HYPERCALL(console_io)
+DECLARE_HYPERCALL(physdev_op_compat)
+DECLARE_HYPERCALL(grant_table_op)
+DECLARE_HYPERCALL(vm_assist)
+DECLARE_HYPERCALL(update_va_mapping_otherdomain)
+DECLARE_HYPERCALL(iret)
+DECLARE_HYPERCALL(vcpu_op)
+DECLARE_HYPERCALL(set_segment_base)
+DECLARE_HYPERCALL(mmuext_op)
+DECLARE_HYPERCALL(xsm_op)
+DECLARE_HYPERCALL(nmi_op)
+DECLARE_HYPERCALL(sched_op)
+DECLARE_HYPERCALL(callback_op)
+DECLARE_HYPERCALL(xenoprof_op)
+DECLARE_HYPERCALL(event_channel_op)
+DECLARE_HYPERCALL(physdev_op)
+DECLARE_HYPERCALL(hvm_op)
+DECLARE_HYPERCALL(sysctl)
+DECLARE_HYPERCALL(domctl)
+DECLARE_HYPERCALL(kexec_op)
+DECLARE_HYPERCALL(tmem_op)
+DECLARE_HYPERCALL(argo_op)
+DECLARE_HYPERCALL(xenpmu_op)
+
+DECLARE_HYPERCALL(arch_0)
+DECLARE_HYPERCALL(arch_1)
+DECLARE_HYPERCALL(arch_2)
+DECLARE_HYPERCALL(arch_3)
+DECLARE_HYPERCALL(arch_4)
+DECLARE_HYPERCALL(arch_5)
+DECLARE_HYPERCALL(arch_6)
+DECLARE_HYPERCALL(arch_7)
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 17 11:18:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 11:18:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759932.1169629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU2fx-0005sr-2P; Wed, 17 Jul 2024 11:18:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759932.1169629; Wed, 17 Jul 2024 11:18: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 1sU2fw-0005sk-Vo; Wed, 17 Jul 2024 11:18:24 +0000
Received: by outflank-mailman (input) for mailman id 759932;
 Wed, 17 Jul 2024 11:18: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=9rux=OR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sU2fv-0005se-JD
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 11:18:23 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 471bc296-442e-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 13:18:22 +0200 (CEST)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-52e9f863c46so7396754e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 04:18:22 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc5b7e6esm437770066b.86.2024.07.17.04.18.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Jul 2024 04:18: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: 471bc296-442e-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721215101; x=1721819901; 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=HXxHID2r5/h+xOVNEnbPBnWQR4jw6KDTXCFkjq0hp7g=;
        b=v+h+f4Cduj6eT1mxmrJQfF9CzP15Oz0fehNXzWqAUWtE4rlSb3D/2tQ79KLaAqXLVc
         c8XeG19gvMrllpSvwB0L3Bhd8fEp+8k+SSbF98040Xa4QhJ9JezVagFtuzNlDIA7MOCd
         7iS9gh/eGgwWkKCdiArY3KpaJ0cYh5eT2MYYk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721215101; x=1721819901;
        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=HXxHID2r5/h+xOVNEnbPBnWQR4jw6KDTXCFkjq0hp7g=;
        b=Q+P1rx3URXdL0ouS/uUluD5BJnPF+Ka9Fw4V8+TV+hTufk4wDy+I81uWDRp6JUHYZk
         nckOGa2WXSlclYrX2Fz+jPedZHxWg5bJm0z72oHgBlasuMQgJORHeVyJJKo5QiRoeKCe
         bk5yBD1iBdKl7s/xz8scsv756U7lWIW/AyCPA5mb79ck7vMgDhQJrBVoktOAvAjv9Rhr
         vEauCc8n+hjQnjkAbQ+CSubjVfqlavUsYFDh1dauKwz8sI4bcG1zoHcMBFNzGKu5SC0+
         EJW1hK8x9V8WgrLyH2xsVWKOlyt2fs6WqXMZTPCEqTu3Npac+sGXIskBmMOWsoz0OnfT
         ZHSQ==
X-Gm-Message-State: AOJu0YyY8a10Zk1V2usxLSuiggwj8kEnvO6zmLW2R4e6G5mp0KjdCeDo
	z+q2qCF8jGegrNFPRZcBOSPa74WBJPeg2NwViyJd/rhyt4UlBgaERKRUxM7/w2DrPA+gAyspqsi
	r
X-Google-Smtp-Source: AGHT+IEWtOoN2FwwNWhl9Yv0al2AJU3gLfzjSNl6qMe1+Tf74wuxtKQTaNUt+Dbpx34uyBTSBn8bww==
X-Received: by 2002:a05:6512:128d:b0:52c:d56f:b2cc with SMTP id 2adb3069b0e04-52ee544b275mr1040054e87.58.1721215101052;
        Wed, 17 Jul 2024 04:18: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.20] hvmloader: Use fastcall everywhere
Date: Wed, 17 Jul 2024 12:18:17 +0100
Message-Id: <20240717111817.3517937-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

HVMLoader is a single freestanding 32bit program with no external
dependencies.  Use the fastcall calling convetion (up to 3 parameters in
registers rather than on the stack) globally, which is more efficient because
of reducing the number of stack operations.

Some bloat-o-meter highligs are:

  add/remove: 0/0 grow/shrink: 3/118 up/down: 8/-3004 (-2996)
  Function                                     old     new   delta
  ...
  hvmloader_acpi_build_tables                 1125     961    -164
  acpi_build_tables                           1277    1081    -196
  pci_setup                                   4756    4516    -240
  construct_secondary_tables                  1689    1447    -242

No functional change.

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

I was surprised to find that nowhere in the handover to other blobs do we pass
parameters on the stack, but then again the entry point of the new blobs
typically happen with no stack anyway so I suppose I shouldn't be surprised.
---
 tools/firmware/hvmloader/Makefile | 2 +-
 tools/firmware/hvmloader/smp.c    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index 0e1dce26b342..05572f17f609 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -25,7 +25,7 @@ ld-option = $(shell if $(LD) -v $(1) >/dev/null 2>&1; then echo y; else echo n;
 # SMBIOS spec requires format mm/dd/yyyy
 SMBIOS_REL_DATE ?= $(shell date +%m/%d/%Y)
 
-CFLAGS += $(CFLAGS_xeninclude) -fno-pic
+CFLAGS += $(CFLAGS_xeninclude) -fno-pic -mregparm=3
 
 # We mustn't use tools-only public interfaces.
 CFLAGS += -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__
diff --git a/tools/firmware/hvmloader/smp.c b/tools/firmware/hvmloader/smp.c
index 5d46eee1c5f4..1b940cefd071 100644
--- a/tools/firmware/hvmloader/smp.c
+++ b/tools/firmware/hvmloader/smp.c
@@ -31,7 +31,7 @@
 
 static int ap_callin;
 
-static void __attribute__((regparm(1))) cpu_setup(unsigned int cpu)
+static void cpu_setup(unsigned int cpu)
 {
     printf(" - CPU%d ... ", cpu);
     cacheattr_init();

base-commit: 57338346f29cea7b183403561bdc5f407163b846
prerequisite-patch-id: 212002cd69805ec19f556756d487638c7d348878
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 17 11:24:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 11:24:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759939.1169639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU2lm-0007Pq-P3; Wed, 17 Jul 2024 11:24:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759939.1169639; Wed, 17 Jul 2024 11: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 1sU2lm-0007Pj-Lz; Wed, 17 Jul 2024 11:24:26 +0000
Received: by outflank-mailman (input) for mailman id 759939;
 Wed, 17 Jul 2024 11:24:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU2lk-0007PZ-Nq; Wed, 17 Jul 2024 11:24:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU2lk-00078Q-JM; Wed, 17 Jul 2024 11:24:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU2lk-00051s-2s; Wed, 17 Jul 2024 11:24:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sU2lk-0003Rg-2N; Wed, 17 Jul 2024 11:24: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=teGF/z9jR1WjiQ/8Ep7gcuApxLy9gqwWc8aagl6KGJ0=; b=BW0ZxqfKZD8t2O499niW/rRhgw
	Bi6B/YPSjZj93j/5Fr1TmZs0+UnxgMNYrVamu8lzX4BhCIBBRzkh4wSxiQgorkg0QrPRKz6TV89CF
	RU0llSkAPjyzwt9wO3kgLDxcrTOVBG5hcI4q+JS6ur3Oxjt3P/bxr9xbtwbrqrSkfVA4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186839-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186839: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=e32d24ef8c8211e76c020fa7a395328cd176190c
X-Osstest-Versions-That:
    ovmf=b3441e01003ab91df816263df98f9675b2cd2aa1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 11:24:24 +0000

flight 186839 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186839/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 e32d24ef8c8211e76c020fa7a395328cd176190c
baseline version:
 ovmf                 b3441e01003ab91df816263df98f9675b2cd2aa1

Last test of basis   186836  2024-07-17 06:11:12 Z    0 days
Testing same since   186839  2024-07-17 08:45:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dongyan Qian <dongyan0314@gmail.com>
  Dongyan Qian <qiandongyan@loongson.cn>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   b3441e0100..e32d24ef8c  e32d24ef8c8211e76c020fa7a395328cd176190c -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 12:09:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 12:09:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759951.1169648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU3Td-0004Qw-3y; Wed, 17 Jul 2024 12:09:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759951.1169648; Wed, 17 Jul 2024 12:09: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 1sU3Td-0004Qp-1O; Wed, 17 Jul 2024 12:09:45 +0000
Received: by outflank-mailman (input) for mailman id 759951;
 Wed, 17 Jul 2024 12:09: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=xtCR=OR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sU3Tb-0004Qj-QO
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 12:09:43 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 732b061a-4435-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 14:09:42 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2ee9b098bd5so91716861fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 05:09: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
 d2e1a72fcca58-70b7ebb67f8sm7990110b3a.61.2024.07.17.05.09.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Jul 2024 05:09: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: 732b061a-4435-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721218182; x=1721822982; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iOVi6fKunX1YBfm0wL2Rh7RNa8nyeNRbVQjVgqlAmgk=;
        b=FKDZKSF+HX3Ykldhfuwpe0oYp6Ew8zx8xOUBuL2rsqsjld4T6b4ujJtYcEQ7DAURl2
         Je5GQ69uKVQSNF5PU6H+abE9LPpeY8Q0Fiw1ZqiopPaRIUum+EYv4AcAaqVsCUwGmjlX
         btCiL+5sMmAqRscoMe615zqWgZhh8ndX/vTVmLNy0u6sywaudvhBbFHNYKHefk8bhw34
         9w2GHB/PVzq4ANfucJh5Wm/OpE/BCA+jf72Nz+RhQYPOnGTFII429Z+eWoPHCypg1pAb
         LojxZysy+1jb4qXleLtbW8w34TAdpqiEqjUGoSobxEYeD4hLG+3A2MCGfr7t7tDmC3Wv
         vWhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721218182; x=1721822982;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iOVi6fKunX1YBfm0wL2Rh7RNa8nyeNRbVQjVgqlAmgk=;
        b=fxWb49akv/DfEFr5/v/a1x+ZCiaazuRHamk2xr5PHBOMj1eywPObqMRSgNbbyZV2wm
         nFDL5XQMePQDg2RbnUQWaoRm43/IR4raZqNXRXmod4DBmHcxUblWxPrihe8GaeeDtizE
         T/YCFb3K9/iQgPoAamn6E0uJCxtukKuY3TaXJUggL/eT0IOB2NngTQW0TPXFt53/uG44
         1Rkr4deDqlk4SpuJZAnVj67xsosN6EjQt93mNl6uLsnBVEwJR8xB4e+eLPa+vzNGtKTR
         kFpN0bfvg8m0NEHqD4kv7yJNTmEcbo5D+p9tUYmjtByoZKKmPkICvSfVC5jte4m6qS91
         eavQ==
X-Forwarded-Encrypted: i=1; AJvYcCX64AUwL0BNbHKjifSY4+yMfQaj7vqxbiO1fgVvNgaPygHJyOodxKLtUQA+PJ5wa0xwgcxRXXDdECGQOFzP4PhvOWh3DMzWnWio4Eg/ZCE=
X-Gm-Message-State: AOJu0YyL82Mw5OS8fqOZGzUCtBM1f2wsOQ7/cV5/x8gaiO7j0FcxbPtB
	/jbrluEyJ9W7WW5Y4cUlflBx+PLprFjk3cEfEvjqIl65XykrgznSYl2vTdsbwQ==
X-Google-Smtp-Source: AGHT+IHYp5W8sYirAgksIuoSTP9UWHyitvhDGnxtPft6fPXgPOVqIC+Ncp68oYs8C73EYtP3+xz/+A==
X-Received: by 2002:a05:651c:481:b0:2ee:8cb5:6ed9 with SMTP id 38308e7fff4ca-2eefd14c200mr11676961fa.31.1721218182265;
        Wed, 17 Jul 2024 05:09:42 -0700 (PDT)
Message-ID: <872020ce-5530-4762-a0bb-86f8763a0793@suse.com>
Date: Wed, 17 Jul 2024 14:09:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] hvmloader: Use fastcall everywhere
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: <20240717111817.3517937-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: <20240717111817.3517937-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.07.2024 13:18, Andrew Cooper wrote:
> HVMLoader is a single freestanding 32bit program with no external
> dependencies.  Use the fastcall calling convetion (up to 3 parameters in
> registers rather than on the stack) globally, which is more efficient because
> of reducing the number of stack operations.
> 
> Some bloat-o-meter highligs are:
> 
>   add/remove: 0/0 grow/shrink: 3/118 up/down: 8/-3004 (-2996)
>   Function                                     old     new   delta
>   ...
>   hvmloader_acpi_build_tables                 1125     961    -164
>   acpi_build_tables                           1277    1081    -196
>   pci_setup                                   4756    4516    -240
>   construct_secondary_tables                  1689    1447    -242
> 
> 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 Jul 17 12:38:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 12:38:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759957.1169658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU3ur-0008Eu-78; Wed, 17 Jul 2024 12:37:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759957.1169658; Wed, 17 Jul 2024 12:37:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU3ur-0008En-4a; Wed, 17 Jul 2024 12:37:53 +0000
Received: by outflank-mailman (input) for mailman id 759957;
 Wed, 17 Jul 2024 12:37: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=xtCR=OR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sU3up-0008Eg-Ar
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 12:37:51 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 60132663-4439-11ef-8776-851b0ebba9a2;
 Wed, 17 Jul 2024 14:37:48 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2eea7e2b0e6so92053331fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 05:37: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
 d9443c01a7336-1fc0bba6fc7sm74316905ad.68.2024.07.17.05.37.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Jul 2024 05:37: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: 60132663-4439-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721219868; x=1721824668; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cXQPh5t+LUQgHz/69oM3W6nL62Op3MMx8nd7bMDQVU8=;
        b=d1Nc6js2c0g5ihBVMm+NUn2M7VahCYKuyuy+fFZ+gWZjy9LC0ybT5Wfcc+vmiSqZmz
         uMe2vAC+E3Og0fAtZR9zQNZQF/0K7tyiYbDtOBSSfeVJMo2pt6ZXFh0LsKGm+gpq81aP
         8T3hrs0vfOlrJCW8FXmnamCcUOKn4+tZX+FK/0kWmm5JiFXn9msjyhM9XC/EBR18VDfh
         e1y9DhsXlxjNkpxVAhUWya8098B38lwvgLhDvl9I8chWM6ECFwjyr0u3F8Xxr4jpdNPg
         Z+Er0eJIhBBs8GuFBuy4gw7fN0VubTNjiCseMAW0CVX0qUl6fVTom6ww95R2KQR9rqWV
         IR2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721219868; x=1721824668;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cXQPh5t+LUQgHz/69oM3W6nL62Op3MMx8nd7bMDQVU8=;
        b=uv8N5VbYZfjILiuVhm/U9cFKtiEALiV+b+SihuhqO7PmTBgh6nHiKpPcm+l5EvFJE9
         g/TuQpu0s8skG/FNNR5LvYqrVOFcdUZu9v/Rv1pqoaI6Hu2ZEJofNh8CqPIDhhkjUTpp
         j5UXm/K1xI/wqjdqlUx3Ee+fZRb0b3pC4Kk7L0iiJIFUU1XJRUktWbk04RolEGJ4NTL6
         NWTldvqKhfNFQYbggXOkmj3Af5sGFTcdW9WY1PPfcbLNrkpf5bY8LKbhQxK5LL9N50Kx
         hTyeZQ6CUXyG0iCqd8WVEPQDpLKGcfHQIzTvL8thpP89UH0jXIzsHa1Lz5zy46goLO50
         KE+w==
X-Forwarded-Encrypted: i=1; AJvYcCWO6bHj/R0eUwFIFB42rpy5KIb4FXzFHr25qSG+4jN79mtnwhQP7La9kSB10d/kg2ZigOhIpaoWJGgSLajncvSk4zTZd86A25HM6rmUqJk=
X-Gm-Message-State: AOJu0YzdyqdkKfJNrFTpGcsPKTWLpBJ6gTgMc1Wr6Q4/qKdhbiJLjCfQ
	hwd4BrzHDj0XT7WnPoWkPZH1DVSJb+uGd6Ma4kQGrJI1F9IXvVEYXs1rCZXQNw==
X-Google-Smtp-Source: AGHT+IGSNgpbTgPUpEmsQ/kyS2pzK25SuJl1ZnQ0lFs2pSgcfOcrJDSFIKvj0825duutktj1X5cbgQ==
X-Received: by 2002:a2e:8558:0:b0:2ec:541b:4b53 with SMTP id 38308e7fff4ca-2eefd16725dmr11029971fa.43.1721219867967;
        Wed, 17 Jul 2024 05:37:47 -0700 (PDT)
Message-ID: <ec6f3d2b-d5be-4ff5-9bf1-79eb5a3a85e1@suse.com>
Date: Wed, 17 Jul 2024 14:37:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] hvmloader: Rework hypercall infrastructure
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: <20240717111231.3517605-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: <20240717111231.3517605-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.07.2024 13:12, Andrew Cooper wrote:
> Right now, the hypercall page is at a hardcoded physical address, and making
> hypercalls involves indirect calls to compile-time constant addresses.
> e.g. HYPERCALL_memory_op is:
> 
>   mov    $0x80180,%eax
>   call   *%eax
> 
> Instead, import the hypercall infrastructure from XTF to have hypercall_page[]
> fully within the hvmloader image, and prepared at compile time rather than
> runtime.  This uses direct calls, so HYPERCALL_memory_op now disassembles as:
> 
>   call   132180 <HYPERCALL_memory_op>
> 
> which is faster and clearer.

Just to mention it - even with a fixed address using indirect calls shouldn't
have been necessary (minus assembler bugs, that is).

> Remove the loop over multiple hypercall pages.  It was long ago realised to be
> an unworkable design, and eax fixed in the ABI to 1.
> 
> Pass -z noexecstack to LD to stop newer bintuils complaining about the absence
> of .note.GNU-stack.  hvmloader is not a regular binary, and in fact its stack
> is always executable owing to operating in unpaged mode.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> 
> There doesn't appear to be any sensible AFLAGS infrastructure to set
> -D__ASSEMBLY__.  Opecoding it once seemed like the least bad option.

I agree.

> ---
>  tools/firmware/hvmloader/Makefile         |   3 +
>  tools/firmware/hvmloader/config.h         |   1 -
>  tools/firmware/hvmloader/hvmloader.c      |   7 +-
>  tools/firmware/hvmloader/hvmloader.lds    |   4 +-
>  tools/firmware/hvmloader/hypercall.h      | 121 ++++++----------------
>  tools/firmware/hvmloader/hypercall_page.S |  67 ++++++++++++
>  6 files changed, 105 insertions(+), 98 deletions(-)
>  create mode 100644 tools/firmware/hvmloader/hypercall_page.S

May I ask that the new file use a hyphen in place of the underscore?

> @@ -142,8 +141,7 @@ static void init_hypercalls(void)
>  
>      /* Fill in hypercall transfer pages. */
>      cpuid(base + 2, &eax, &ebx, &ecx, &edx);
> -    for ( i = 0; i < eax; i++ )
> -        wrmsr(ebx, HYPERCALL_PHYSICAL_ADDRESS + (i << 12) + i);
> +    wrmsr(ebx, (unsigned long)hypercall_page);

Convert the comment to singular then, too?

> --- a/tools/firmware/hvmloader/hvmloader.lds
> +++ b/tools/firmware/hvmloader/hvmloader.lds
> @@ -7,9 +7,9 @@ SECTIONS
>     * NB: there's no need to use the AT keyword in order to set the LMA, by
>     * default the linker will use VMA = LMA unless specified otherwise.
>     */
> -  .text : { *(.text) *(.text.*) }
> +  .text : { *(.text) *(.text.*)}

Likely merely a leftover from some experimentation?

> --- a/tools/firmware/hvmloader/hypercall.h
> +++ b/tools/firmware/hvmloader/hypercall.h
> @@ -35,148 +35,91 @@
>  #include <xen/xen.h>
>  #include "config.h"
>  
> -#define hcall_addr(name)                                                \
> -    ((unsigned long)HYPERCALL_PHYSICAL_ADDRESS + __HYPERVISOR_##name * 32)
> -
> -#define _hypercall0(type, name)                 \
> -({                                              \
> -    long __res;                                 \
> -    asm volatile (                              \
> -        "call *%%eax"                           \
> -        : "=a" (__res)                          \
> -        : "0" (hcall_addr(name))                \
> -        : "memory" );                           \
> -    (type)__res;                                \
> -})
> -
> -#define _hypercall1(type, name, a1)             \
> -({                                              \
> -    long __res, __ign1;                         \
> -    asm volatile (                              \
> -        "call *%%eax"                           \
> -        : "=a" (__res), "=b" (__ign1)           \
> -        : "0" (hcall_addr(name)),               \
> -          "1" ((long)(a1))                      \
> -        : "memory" );                           \
> -    (type)__res;                                \
> -})
> -
> -#define _hypercall2(type, name, a1, a2)                 \
> -({                                                      \
> -    long __res, __ign1, __ign2;                         \
> -    asm volatile (                                      \
> -        "call *%%eax"                                   \
> -        : "=a" (__res), "=b" (__ign1), "=c" (__ign2)    \
> -        : "0" (hcall_addr(name)),                       \
> -          "1" ((long)(a1)), "2" ((long)(a2))            \
> -        : "memory" );                                   \
> -    (type)__res;                                        \
> -})
> -
> -#define _hypercall3(type, name, a1, a2, a3)             \
> -({                                                      \
> -    long __res, __ign1, __ign2, __ign3;                 \
> -    asm volatile (                                      \
> -        "call *%%eax"                                   \
> -        : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   \
> -          "=d" (__ign3)                                 \
> -        : "0" (hcall_addr(name)),                       \
> -          "1" ((long)(a1)), "2" ((long)(a2)),           \
> -          "3" ((long)(a3))                              \
> -        : "memory" );                                   \
> -    (type)__res;                                        \
> -})
> -
> -#define _hypercall4(type, name, a1, a2, a3, a4)         \
> -({                                                      \
> -    long __res, __ign1, __ign2, __ign3, __ign4;         \
> -    asm volatile (                                      \
> -        "call *%%eax"                                   \
> -        : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   \
> -          "=d" (__ign3), "=S" (__ign4)                  \
> -        : "0" (hcall_addr(name)),                       \
> -          "1" ((long)(a1)), "2" ((long)(a2)),           \
> -          "3" ((long)(a3)), "4" ((long)(a4))            \
> -        : "memory" );                                   \
> -    (type)__res;                                        \
> -})
> -
> -#define _hypercall5(type, name, a1, a2, a3, a4, a5)     \
> -({                                                      \
> -    long __res, __ign1, __ign2, __ign3, __ign4, __ign5; \
> -    asm volatile (                                      \
> -        "call *%%eax"                                   \
> -        : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   \
> -          "=d" (__ign3), "=S" (__ign4), "=D" (__ign5)   \
> -        : "0" (hcall_addr(name)),                       \
> -          "1" ((long)(a1)), "2" ((long)(a2)),           \
> -          "3" ((long)(a3)), "4" ((long)(a4)),           \
> -          "5" ((long)(a5))                              \
> -        : "memory" );                                   \
> -    (type)__res;                                        \
> -})
> +extern const char hypercall_page[];
> +
> +#define _hypercall2(type, hcall, a1, a2)                                \
> +    ({                                                                  \
> +        long res, _a1 = (long)(a1), _a2 = (long)(a2);                   \
> +        asm volatile (                                                  \
> +            "call hypercall_page + %c[offset]"                          \
> +            : "=a" (res), "+b" (_a1), "+c" (_a2)                        \
> +            : [offset] "i" (hcall * 32)                                 \
> +            : "memory" );                                               \
> +        (type)res;                                                      \
> +    })
> +
> +#define _hypercall3(type, hcall, a1, a2, a3)                            \
> +    ({                                                                  \
> +        long res, _a1 = (long)(a1), _a2 = (long)(a2), _a3 = (long)(a3); \
> +        asm volatile (                                                  \
> +            "call hypercall_page + %c[offset]"                          \
> +            : "=a" (res), "+b" (_a1), "+c" (_a2), "+d" (_a3)            \
> +            : [offset] "i" (hcall * 32)                                 \
> +            : "memory" );                                               \
> +        (type)res;                                                      \
> +    })

Not having _hypercall0() and _hypercall1() anymore is certainly a little
odd. If one needed to use such a hypercall, even if only for debugging,
the extra work needed (every time) would be larger than necessary. I'm
definitely less worried about _hypercall4() and _hypercall5().

In any event the removal of any wrappers could do with mentioning in the
description, to indicate it's deliberate (and why).

>  static inline int
>  hypercall_sched_op(
>      int cmd, void *arg)
>  {
> -    return _hypercall2(int, sched_op, cmd, arg);
> +    return _hypercall2(int, __HYPERVISOR_sched_op, cmd, arg);
>  }

I know you don't really like token concatenation in cases like these ones,
but these adjustments all don't look as if they were necessary right here.
The new macros use the macro parameter only in ways where token pasting
would continue to work, afaics. And in the new assembly file you use very
similar token pasting anyway.

> --- /dev/null
> +++ b/tools/firmware/hvmloader/hypercall_page.S
> @@ -0,0 +1,67 @@
> +#include <xen/xen.h>
> +
> +        .section ".hcall", "aw"

Why "aw"? I'd have expected "awx" if you really think the writable part
needs expressing here, or else "ax". Otherwise I think a brief comment as
wanted as to the absence of x for something that is executable.

Also may I ask that you add @progbits?

> +        .align 4096

PAGE_SIZE? And then again ...

> +        .globl hypercall_page
> +hypercall_page:
> +         /* Poisoned with `ret` for safety before hypercalls are set up. */
> +        .fill 4096, 1, 0xc3
> +        .type hypercall_page, STT_OBJECT
> +        .size hypercall_page, 4096

... here?

As to the "poisoning" - how does RET provide any safety? If a call happened
early, the uncertainty of what %eax is set to would make it unpredictable
how such a caller would further behave. Imo better to crash / hang in such
a case, perhaps by using INT3 instead.

I notice that matches earlier behavior, but there the comment at least
validly said "rendering them no-ops" (yet still without considering
possible problems resulting from doing so).

> +#define DECLARE_HYPERCALL(name)                                                 \
> +        .globl HYPERCALL_ ## name;                                              \
> +        .type  HYPERCALL_ ## name, STT_FUNC;                                    \
> +        .size  HYPERCALL_ ## name, 32;                                          \
> +        .set   HYPERCALL_ ## name, hypercall_page + __HYPERVISOR_ ## name * 32
> +
> +DECLARE_HYPERCALL(set_trap_table)
> +DECLARE_HYPERCALL(mmu_update)
> +DECLARE_HYPERCALL(set_gdt)
> +DECLARE_HYPERCALL(stack_switch)
> +DECLARE_HYPERCALL(set_callbacks)
> +DECLARE_HYPERCALL(fpu_taskswitch)
> +DECLARE_HYPERCALL(sched_op_compat)
> +DECLARE_HYPERCALL(platform_op)
> +DECLARE_HYPERCALL(set_debugreg)
> +DECLARE_HYPERCALL(get_debugreg)
> +DECLARE_HYPERCALL(update_descriptor)
> +DECLARE_HYPERCALL(memory_op)
> +DECLARE_HYPERCALL(multicall)
> +DECLARE_HYPERCALL(update_va_mapping)
> +DECLARE_HYPERCALL(set_timer_op)
> +DECLARE_HYPERCALL(event_channel_op_compat)
> +DECLARE_HYPERCALL(xen_version)
> +DECLARE_HYPERCALL(console_io)
> +DECLARE_HYPERCALL(physdev_op_compat)
> +DECLARE_HYPERCALL(grant_table_op)
> +DECLARE_HYPERCALL(vm_assist)
> +DECLARE_HYPERCALL(update_va_mapping_otherdomain)
> +DECLARE_HYPERCALL(iret)
> +DECLARE_HYPERCALL(vcpu_op)
> +DECLARE_HYPERCALL(set_segment_base)
> +DECLARE_HYPERCALL(mmuext_op)
> +DECLARE_HYPERCALL(xsm_op)
> +DECLARE_HYPERCALL(nmi_op)
> +DECLARE_HYPERCALL(sched_op)
> +DECLARE_HYPERCALL(callback_op)
> +DECLARE_HYPERCALL(xenoprof_op)
> +DECLARE_HYPERCALL(event_channel_op)
> +DECLARE_HYPERCALL(physdev_op)
> +DECLARE_HYPERCALL(hvm_op)
> +DECLARE_HYPERCALL(sysctl)
> +DECLARE_HYPERCALL(domctl)
> +DECLARE_HYPERCALL(kexec_op)
> +DECLARE_HYPERCALL(tmem_op)

We're not going to ever need this in hvmloader, are we? There are quite a
few more that I'd suggest to leave out, but this one stands out for no
longer existing even in the hypervisor.

Jan

> +DECLARE_HYPERCALL(argo_op)
> +DECLARE_HYPERCALL(xenpmu_op)
> +
> +DECLARE_HYPERCALL(arch_0)
> +DECLARE_HYPERCALL(arch_1)
> +DECLARE_HYPERCALL(arch_2)
> +DECLARE_HYPERCALL(arch_3)
> +DECLARE_HYPERCALL(arch_4)
> +DECLARE_HYPERCALL(arch_5)
> +DECLARE_HYPERCALL(arch_6)
> +DECLARE_HYPERCALL(arch_7)



From xen-devel-bounces@lists.xenproject.org Wed Jul 17 12:41:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 12:41:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759963.1169669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU3xs-0001FC-Le; Wed, 17 Jul 2024 12:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759963.1169669; Wed, 17 Jul 2024 12: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 1sU3xs-0001F5-Hy; Wed, 17 Jul 2024 12:41:00 +0000
Received: by outflank-mailman (input) for mailman id 759963;
 Wed, 17 Jul 2024 12: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=xtCR=OR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sU3xr-0001Ew-2n
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 12:40:59 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d055f3e2-4439-11ef-8776-851b0ebba9a2;
 Wed, 17 Jul 2024 14:40:57 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2eefc3d707dso8013711fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 05:40: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
 d9443c01a7336-1fc0bc38a81sm74556835ad.220.2024.07.17.05.40.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Jul 2024 05:40: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: d055f3e2-4439-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721220057; x=1721824857; 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=N+J5galAPvN30KZAhGbbh4LLw0KDTaLZXX/dCHmJWxQ=;
        b=I0B8NxQ4MoTwq+EFush7gAZ7UOBxxz7nTqTq9yOuku4j5kx92uWCyL2IOak8YfP4IQ
         zy4Mm2APnqw3vVHEIRaif5WWvSlgHF/on8xDkQzfaUf8sQbM2xZXyqzhSvUAgCiyOztH
         yRbJ+CM43L12etZsy9nwsxJ/YZfDwvxqy9n10+U06YHnHHd22f+Qz0AD4ffjAEmN8fbp
         5apG/BBfbE4O5af3ec+3BuVAEoAHxkuJa7yb0pgNJVaMCT+rzLoPBG78GjyhBW+xYDzm
         0b4eo5JErENGSk1L5ogDo2EFg0FE1/HsZ06C3wtPfb1rq90pIrYxpZFcF2Kj4Me+MVeC
         4JBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721220057; x=1721824857;
        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=N+J5galAPvN30KZAhGbbh4LLw0KDTaLZXX/dCHmJWxQ=;
        b=T2IGMeUQE/QRkW8aNt2O4AKedPX7moouDIeACe8muhB5Rfm09zTpKOjC4WYAEeOZmp
         c05kNEzK5CWPKaw1LsrlrVpnK06krlmeLr72G1mn8lT04eHhxih05ee1k18MRAuv3H9c
         z7Gog7LtnbR1oo0eVVmMXrSxaMF423A/1kVq3DTgEIgEgxrcfgyrKDWYzDx0fIRPaKJc
         ocrbAlny3sjEA8ZQwqUFZEYr4kKED/RJAzpevu7W5uymR/cb5MuAkM+sK09s2PJSqcRN
         LL/W/93MkTusFmcwfbgqBHyCtrqc0G+/tZ+SIhfpQzv0TI67xv6C05gR0sBzkYS+cysK
         EstA==
X-Gm-Message-State: AOJu0YxKpT8PiXZdaKfM2ahvX2uRe/Nxa5CI/bwOrgse44SVMMx+5zeK
	0BFymxwqDpaGosCW0UFkJVwDPFGZ0FRWjOZ7EjqM2iN3KHr0DIps5Z/w+yvjOB6fcmWSrPc60qA
	=
X-Google-Smtp-Source: AGHT+IF4B8EKrmpErbu/EmQHHbnV//awrvsTvS4QHLdCljIWoEQrEpYrDI7D7uSUEYHgKgOuc0kzQA==
X-Received: by 2002:a05:651c:485:b0:2ee:6cda:637b with SMTP id 38308e7fff4ca-2eefd13e581mr10627711fa.35.1721220056596;
        Wed, 17 Jul 2024 05:40:56 -0700 (PDT)
Message-ID: <16b45b39-aadd-4a53-bcb9-214ded193db9@suse.com>
Date: Wed, 17 Jul 2024 14:40:49 +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 REX64_PREFIX
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

While we didn't copy the full Linux commentary, Linux commit
7180d4fb8308 ("x86_64: Fix 64bit FXSAVE encoding") is quite explicit
about gas 2.16 supporting FXSAVEQ / FXRSTORQ. As that's presently our
minimal required version, we can drop the workaround that was needed for
yet for older gas.

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

--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -64,13 +64,12 @@ static inline void fpu_fxrstor(struct vc
     {
     default:
         asm volatile (
-            /* See below for why the operands/constraints are this way. */
-            "1: " REX64_PREFIX "fxrstor (%2)\n"
+            "1: fxrstorq %0\n"
             ".section .fixup,\"ax\"   \n"
             "2: push %%"__OP"ax       \n"
             "   push %%"__OP"cx       \n"
             "   push %%"__OP"di       \n"
-            "   mov  %2,%%"__OP"di    \n"
+            "   lea  %0,%%"__OP"di    \n"
             "   mov  %1,%%ecx         \n"
             "   xor  %%eax,%%eax      \n"
             "   rep ; stosl           \n"
@@ -81,7 +80,7 @@ static inline void fpu_fxrstor(struct vc
             ".previous                \n"
             _ASM_EXTABLE(1b, 2b)
             :
-            : "m" (*fpu_ctxt), "i" (sizeof(*fpu_ctxt) / 4), "R" (fpu_ctxt) );
+            : "m" (*fpu_ctxt), "i" (sizeof(*fpu_ctxt) / 4) );
         break;
     case 4: case 2:
         asm volatile (
@@ -157,13 +156,7 @@ static inline void fpu_fxsave(struct vcp
 
     if ( fip_width != 4 )
     {
-        /*
-         * The only way to force fxsaveq on a wide range of gas versions.
-         * On older versions the rex64 prefix works only if we force an
-         * addressing mode that doesn't require extended registers.
-         */
-        asm volatile ( REX64_PREFIX "fxsave (%1)"
-                       : "=m" (*fpu_ctxt) : "R" (fpu_ctxt) );
+        asm volatile ( "fxsaveq %0" : "=m" (*fpu_ctxt) );
 
         /*
          * Some CPUs don't save/restore FDP/FIP/FOP unless an exception is
--- a/xen/arch/x86/include/asm/asm_defns.h
+++ b/xen/arch/x86/include/asm/asm_defns.h
@@ -331,14 +331,6 @@ static always_inline void stac(void)
 #define safe_swapgs                             \
         "mfence; swapgs;"
 
-#ifdef __sun__
-#define REX64_PREFIX "rex64\\"
-#elif defined(__clang__)
-#define REX64_PREFIX ".byte 0x48; "
-#else
-#define REX64_PREFIX "rex64/"
-#endif
-
 #define ELFNOTE(name, type, desc)           \
     .pushsection .note.name, "a", @note   ; \
     .p2align 2                            ; \


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 12:41:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 12:41:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759967.1169679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU3yD-0001gX-Vk; Wed, 17 Jul 2024 12:41:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759967.1169679; Wed, 17 Jul 2024 12: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 1sU3yD-0001gQ-TA; Wed, 17 Jul 2024 12:41:21 +0000
Received: by outflank-mailman (input) for mailman id 759967;
 Wed, 17 Jul 2024 12: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=H9K5=OR=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sU3yC-0001dO-T0
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 12:41:20 +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 ddd7a2c4-4439-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 14:41:19 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58b447c51bfso8625624a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 05:41:19 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc7ff888sm441274466b.159.2024.07.17.05.41.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Jul 2024 05:41: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: ddd7a2c4-4439-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721220079; x=1721824879; 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=A6C9zWKaG9mFx6n/fZAWmesLcPisRbjEdpsDDLjA4ms=;
        b=ZCA7/mx2jZhXIAKFiFP805h352ix6I+uZkq/c7ysTE6lFFozcXlqCIoI3cULhrjp4L
         BcbnYqdb+0MYowf45wMIFpGaPA5+M/V7F+gSUdiRjfHKg/5UMGDgpMGv1wk2fynJ/hG7
         oWzXt75gsnigRQwiALscrx4mZ0FQbcbwytdYU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721220079; x=1721824879;
        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=A6C9zWKaG9mFx6n/fZAWmesLcPisRbjEdpsDDLjA4ms=;
        b=W2NIxxqd1nbpWFSo8YyUv2s2j5SAL2w7tAz7OLn4RPS/Dn8D4xKJSz6IN+8KXaaVIx
         zPHYbjnIg3+2KKRfpRBfk2kcmDEIv3zr5Aufnw1O3dI8rl959TuSrPAiNCDe3uVeYq3x
         vig19AiO7Fa2836DfEbceN/hs7iKnrUiH9VontKOUQ2wQL/hgQdJ25wAj6H+VxeRxg0l
         +KXG4kagZtg0wAauTe8qHcI4GbXXc2RTG+TY4yJ7gzgAN9Tpdanx38qkPDaFyrK6+O1c
         C7U1SbRBwnY7UlQbtG5HvH8OZmmW2neGfw55PgMlzgfxqhmqf1MUMCuTMqyuVvffWKvo
         yzSQ==
X-Forwarded-Encrypted: i=1; AJvYcCW48EuzYc98+dtB6xWcmlDP+e2WAg08Nh6g0IydiDqZnXWOg1aNYLQWeiculodnm4ugtvIRT8uZygTMJ5OLDj0SNeexMrKT3XLVyusXMzA=
X-Gm-Message-State: AOJu0Yx8HVxJ/II6lIfqXyRy1SuDA44S3g5fKimlpFoBEX9Xh7WZ4lrP
	+M1jO9By+O2InrRgEmA/ZsWKItrtNb0tpZ/zKTr2FPtbFX2higCjZ5Ss9MV+SLM=
X-Google-Smtp-Source: AGHT+IHsujX0BWIJ5N8kvllQpsz1OFi/EZHA31A+rXSNFz0QtWyxvC7pAY0/PKDqthG0wq09zOQVLA==
X-Received: by 2002:a17:906:4a59:b0:a77:c0ef:f195 with SMTP id a640c23a62f3a-a7a0134793bmr102142466b.52.1721220079248;
        Wed, 17 Jul 2024 05:41:19 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Wed, 17 Jul 2024 13:41:16 +0100
Message-Id: <D2RTLF5LPQHW.1GNK1CUIZ5RO1@cloud.com>
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>, "Elias El Yandouzi"
 <eliasely@amazon.com>, <xen-devel@lists.xenproject.org>
Cc: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, "Wei Liu"
 <wei.liu2@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Wei Wang" <wawei@amazon.de>, "Hongyan Xia"
 <hongyxia@amazon.com>, "Julien Grall" <jgrall@amazon.com>
Subject: Re: [PATCH V3 (resend) 04/19] x86: Lift mapcache variable to the
 arch level
X-Mailer: aerc 0.17.0
References: <20240513134046.82605-1-eliasely@amazon.com>
 <20240513134046.82605-5-eliasely@amazon.com>
 <D2R4LSZFGQYM.YRUCHYZPEB67@cloud.com>
In-Reply-To: <D2R4LSZFGQYM.YRUCHYZPEB67@cloud.com>

On Tue Jul 16, 2024 at 6:06 PM BST, Alejandro Vallejo wrote:
> On Mon May 13, 2024 at 2:40 PM BST, Elias El Yandouzi wrote:
> > From: Wei Liu <wei.liu2@citrix.com>
> >
> > It is going to be needed by HVM and idle domain as well, because withou=
t
> > the direct map, both need a mapcache to map pages.
> >
> > This commit lifts the mapcache variable up and initialise it a bit earl=
ier
> > for PV and HVM domains.
> >
> > Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> > Signed-off-by: Wei Wang <wawei@amazon.de>
> > Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> > Signed-off-by: Julien Grall <jgrall@amazon.com>
> >
> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> > index 20e83cf38b..507d704f16 100644
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -851,6 +851,8 @@ int arch_domain_create(struct domain *d,
> > =20
> >      psr_domain_init(d);
> > =20
> > +    mapcache_domain_init(d);
> > +
>
> I think this is missing free_perdomain_mappings() in the error case. (err=
or
> handling is already committed).
>
> Can't the callee jump to a "fail" label and do free_perdomain_mappings()
> internally?
>
> Cheers,
> Alejandro

Bah, ignore this. They are freed in the "fail" label at the end.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 13:06:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 13:06:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759980.1169688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU4M0-00055E-SQ; Wed, 17 Jul 2024 13:05:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759980.1169688; Wed, 17 Jul 2024 13:05:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU4M0-000557-PW; Wed, 17 Jul 2024 13:05:56 +0000
Received: by outflank-mailman (input) for mailman id 759980;
 Wed, 17 Jul 2024 13:05: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=9rux=OR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sU4Lz-000551-E3
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 13:05:55 +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 4cb9f874-443d-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 15:05:54 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a77bf336171so142288166b.1
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 06:05:54 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc7ff780sm443598866b.169.2024.07.17.06.05.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Jul 2024 06:05: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: 4cb9f874-443d-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721221554; x=1721826354; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/x4ZQD7ypZDl+Ljv6KAJWPhfFVrPqfqhGiTqZz+aQ+A=;
        b=YGPzaRJ/fJLdjRC1jTJ191MrgPBi/mrTH6ha9rrk4b25F8Adk18LAndFV4fgUmuuVu
         Jk4h6X5GMouaT/a/5WLtLm7bixNe1gUjCZaTY2LQzgeU1v8EHChYNpp4rxVe7EpVsUJI
         lhatMf05Supo95abL1AjmIwaIh+87OmRJQKn4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721221554; x=1721826354;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/x4ZQD7ypZDl+Ljv6KAJWPhfFVrPqfqhGiTqZz+aQ+A=;
        b=fMSYjU0q2LJcCiK0GS1MrdIfLU9cq8JhCf7kJeBoWVqefS0L92MrRC1ZXZPOmwxv63
         sPZb7JgQhYgvWG5IOj3V06i4BvXCdTVHHlVj2c/YYkwoUoXWxLp4ULgOGxHUpc5RwKev
         C8q6l6cbH0qo073qGA5okQL8drt9+xAf1qqziKevI/ePnEsgDJ2AspuSU7k8u8oykMj+
         +FU7QfkaSIsdDkqS2myk0Zi77n49LlmQ9jYQH56B8lXx1SEu9fJCw1NIU4FUhYj927xw
         DDmFcCZQWXVGPtURuJaS4E1nC04gZfsVvnIDfWYUiOcbrhZeR0S/3bvk7ETku3dcZLht
         c1iA==
X-Forwarded-Encrypted: i=1; AJvYcCVH6Ch9p/eIPg3+GRMzvHpoMkmxeQYBMZ//NKS/J2mF5fAWVsZv7RSJVta/z4/MZSI2zyJDrvoTN3/U/cLTqrbR3YsyMB3ELwd7CHaG5yw=
X-Gm-Message-State: AOJu0YzvZ2c520TMtwBu17m7YW2XucDsfmftN4OGusww2cx3okRO8gY5
	lcyxapEh8wfdaszeosLHCJv5DOEmUmmsr4fVdNAvtTFjU85XgXuq4+zXdMHXs/uZe30o8bkjt7n
	/
X-Google-Smtp-Source: AGHT+IHyUXIWz+gITe3It0Rwb/8J+119HQYwors4+DHBfNcpXqJi1ld5qgWzq3eZAR7DYTHvC1nHkg==
X-Received: by 2002:a17:906:514:b0:a6e:f869:d718 with SMTP id a640c23a62f3a-a7a007a8853mr166091466b.21.1721221553751;
        Wed, 17 Jul 2024 06:05:53 -0700 (PDT)
Message-ID: <dd01ff4e-2f81-4291-b155-b2baa693548f@citrix.com>
Date: Wed, 17 Jul 2024 14:05:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: drop REX64_PREFIX
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: <16b45b39-aadd-4a53-bcb9-214ded193db9@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <16b45b39-aadd-4a53-bcb9-214ded193db9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17/07/2024 1:40 pm, Jan Beulich wrote:
> While we didn't copy the full Linux commentary, Linux commit
> 7180d4fb8308 ("x86_64: Fix 64bit FXSAVE encoding") is quite explicit
> about gas 2.16 supporting FXSAVEQ / FXRSTORQ. As that's presently our
> minimal required version, we can drop the workaround that was needed for
> yet for older gas.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

It's especially nice to get rid of the __sun__ block, although having
looked through this, ...

>
> --- a/xen/arch/x86/i387.c
> +++ b/xen/arch/x86/i387.c
> @@ -64,13 +64,12 @@ static inline void fpu_fxrstor(struct vc
>      {
>      default:
>          asm volatile (
> -            /* See below for why the operands/constraints are this way. */
> -            "1: " REX64_PREFIX "fxrstor (%2)\n"
> +            "1: fxrstorq %0\n"
>              ".section .fixup,\"ax\"   \n"
>              "2: push %%"__OP"ax       \n"
>              "   push %%"__OP"cx       \n"
>              "   push %%"__OP"di       \n"
> -            "   mov  %2,%%"__OP"di    \n"
> +            "   lea  %0,%%"__OP"di    \n"
>              "   mov  %1,%%ecx         \n"
>              "   xor  %%eax,%%eax      \n"
>              "   rep ; stosl           \n"
> @@ -81,7 +80,7 @@ static inline void fpu_fxrstor(struct vc
>              ".previous                \n"
>              _ASM_EXTABLE(1b, 2b)

... the internals of the fixup section leave a lot to be desired.

My build happens to have emitted lea (%rdi), %rdi for this.

A better option than opencoding memset() would be to simply return
-EIO/-EFAULT like we do from *msr_safe(), writing the error path in C,
and getting the system optimised memset() rather than using a form which
is definitely sub-optimal on all 64bit processors.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 13:16:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 13:16:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759988.1169698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU4W4-0006xr-PA; Wed, 17 Jul 2024 13:16:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759988.1169698; Wed, 17 Jul 2024 13: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 1sU4W4-0006xk-Mb; Wed, 17 Jul 2024 13:16:20 +0000
Received: by outflank-mailman (input) for mailman id 759988;
 Wed, 17 Jul 2024 13: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=xtCR=OR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sU4W3-0006xe-7F
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 13:16:19 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c061b56b-443e-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 15:16:17 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2ee91d9cb71so69191611fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 06:16: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
 d9443c01a7336-1fc0bc509d2sm74776475ad.281.2024.07.17.06.16.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 17 Jul 2024 06:16: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: c061b56b-443e-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721222177; x=1721826977; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ELFvhNM/rt3fq16pXm3bUgW+Iw7XQxF0ekLZIZt6IKU=;
        b=Y9VxM5lM82EoHaACqGHA31g58TLLJtGSP86a51eMnOpgeBVDabYqYNn384FiRkIVrN
         qUatS10zQp820Co1832q5vKI0EpclaVpuVj9v/FCZeCXdSLJo+yAeT3CX2uW1gjmDouN
         yMXknu5Naksf8LB577sFwWf+TBprulABdGJug9a0oE4oxJEp8Gltxd7uld1Q3swOAjZP
         cmD3Z55boHhBqGoHUBZKqIx1RmC8dLh9fnYWoAiNOa/9+kN+rXQ38aOl/mU2n30vwYvg
         9/Zqi/CwWpsJNhid9DJNUWeDQ0Vy+RaMtiFjVpXwOYQbaSABASPBnaN2sPgEsPfcWcJl
         o27g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721222177; x=1721826977;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ELFvhNM/rt3fq16pXm3bUgW+Iw7XQxF0ekLZIZt6IKU=;
        b=KA8jq5eDue+QCUrwLdGvD5RB8Zs6suCBvE/oO4OPSZ7qSa3vzSdbkmzW3F2wgPTQ4+
         R8fG/bEraVfV/MfIXzkBNhndDYyZweUtYSLvuT0k48NdfAbah8zy+4tzFjURr3bgP3rN
         AqrXYPKZwAYThFr152u4o2/MJYaNnUd86BG+aQc1fpEPGd8y31kNAeUvk/pKPMV7gdNY
         nNv4Y1SMnXfGthA8b0TP2cXHWH+RXV60+77dLHM1HayQa81PYJXr/GhKqTltaoHRUgcX
         OFjpKAvgEvCApTaF8O8cp6s0QHFyhdzK/IwKng0nFMwpKErMlZnBu7JkCMP1llaFDN+w
         7lyA==
X-Forwarded-Encrypted: i=1; AJvYcCUmfXXN55gPQ0R3bBTkgyqserlRXJsZB7tvDFVicYyufp0hK65D6eBe4tfhYxumt8ys4HHhwZpvSfhpoaLdgoiHbP/GNgXHJPUSUzJc2a8=
X-Gm-Message-State: AOJu0Yx2ZuZQlKqOtevFE2bWXwb6PIOEVet7xVNkxsxJroKNXwpepwvI
	JkyWgcA12+0PyeMUN/0W+dFormnrMCZ/jqVaLMwSiMmDgHAMf06Kk5AwuZ6IVpjajG5R1J+7qvc
	=
X-Google-Smtp-Source: AGHT+IHKSSNmKuIjelaNuW1i/Lnp2Wni5eyV3lPqM552hWapVv2+k3yeg8e40rS0mkNcIs78o/arvg==
X-Received: by 2002:a05:651c:550:b0:2ee:7dfe:d99c with SMTP id 38308e7fff4ca-2eefd143c0cmr14969771fa.31.1721222177235;
        Wed, 17 Jul 2024 06:16:17 -0700 (PDT)
Message-ID: <a63fc95b-c698-4ddd-a16d-c167fa48aa11@suse.com>
Date: Wed, 17 Jul 2024 15:16:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: drop REX64_PREFIX
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: <16b45b39-aadd-4a53-bcb9-214ded193db9@suse.com>
 <dd01ff4e-2f81-4291-b155-b2baa693548f@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: <dd01ff4e-2f81-4291-b155-b2baa693548f@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.07.2024 15:05, Andrew Cooper wrote:
> On 17/07/2024 1:40 pm, Jan Beulich wrote:
>> While we didn't copy the full Linux commentary, Linux commit
>> 7180d4fb8308 ("x86_64: Fix 64bit FXSAVE encoding") is quite explicit
>> about gas 2.16 supporting FXSAVEQ / FXRSTORQ. As that's presently our
>> minimal required version, we can drop the workaround that was needed for
>> yet for older gas.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks.

> It's especially nice to get rid of the __sun__ block, although having
> looked through this, ...
> 
>> --- a/xen/arch/x86/i387.c
>> +++ b/xen/arch/x86/i387.c
>> @@ -64,13 +64,12 @@ static inline void fpu_fxrstor(struct vc
>>      {
>>      default:
>>          asm volatile (
>> -            /* See below for why the operands/constraints are this way. */
>> -            "1: " REX64_PREFIX "fxrstor (%2)\n"
>> +            "1: fxrstorq %0\n"
>>              ".section .fixup,\"ax\"   \n"
>>              "2: push %%"__OP"ax       \n"
>>              "   push %%"__OP"cx       \n"
>>              "   push %%"__OP"di       \n"
>> -            "   mov  %2,%%"__OP"di    \n"
>> +            "   lea  %0,%%"__OP"di    \n"
>>              "   mov  %1,%%ecx         \n"
>>              "   xor  %%eax,%%eax      \n"
>>              "   rep ; stosl           \n"
>> @@ -81,7 +80,7 @@ static inline void fpu_fxrstor(struct vc
>>              ".previous                \n"
>>              _ASM_EXTABLE(1b, 2b)
> 
> ... the internals of the fixup section leave a lot to be desired.
> 
> My build happens to have emitted lea (%rdi), %rdi for this.

Yeah, that was supposed to be happening somewhere. I saw %rax and %rdx
once each, and using LEA there is still kind of a waste.

> A better option than opencoding memset() would be to simply return
> -EIO/-EFAULT like we do from *msr_safe(), writing the error path in C,
> and getting the system optimised memset() rather than using a form which
> is definitely sub-optimal on all 64bit processors.

I think the reason for having done this in assembly is to be able to
wire back to the faulting instruction. On top of what you say we could
do we'd then further need to put the whole thing in a loop, or add a
3rd FXSTOR. Which isn't to say that the overall result then isn't going
to be neater. What I'm not concerned of with this fallback code is
performance, though. That fixup path better wouldn't be taken anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 14:38:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 14:38:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.759998.1169709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU5nY-0000Z1-N2; Wed, 17 Jul 2024 14:38:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 759998.1169709; Wed, 17 Jul 2024 14: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 1sU5nY-0000Yu-KU; Wed, 17 Jul 2024 14:38:28 +0000
Received: by outflank-mailman (input) for mailman id 759998;
 Wed, 17 Jul 2024 14: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=bXng=OR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sU5nX-0000Yo-BM
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 14:38: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 390d13e2-444a-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 16:38: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 22672613F1;
 Wed, 17 Jul 2024 14:38:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 76C25C2BD10;
 Wed, 17 Jul 2024 14:38: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: 390d13e2-444a-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721227103;
	bh=Y6fSfjD+oJ5cBIvz8rr+h4WuI796IQTx3xbuwh7cAX0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LIvEaQPa66yfclldGRbQpBIBZ9LKVOiLc7c4c0CAmq/Bv+GpVgQ5rv7dPCXmZHd1M
	 0YMgG4rI8HdUN+bJ+XhZHzffybYVLp6I/qolaHRqTfN2CiqjymFk9PNe5kuJU5uQUj
	 AEBi+0WTTvIa40XtxcHOxFJZwQ+ue012DZRt+I11PzRqYcApeCkIqCm8Je+JIV1yJA
	 rAzrlPky96qodQwE4aC6AUOUfGnl3KVtKBHpzPC8meOcqOdz6J6ul9KW72mJahEJ4t
	 r2yCC25SbJnQQJeXM5jznooLXjCvE1V3GkmYe2DjOgM5wjmEif4VWxuANRgM4cdwxM
	 Zl97w90b4Vedg==
Date: Wed, 17 Jul 2024 07:38:21 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Olaf Hering <olaf@aepfle.de>
cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1] automation: adjust paths to docker files in
 documentation
In-Reply-To: <20240717101239.21051-1-olaf@aepfle.de>
Message-ID: <alpine.DEB.2.22.394.2407170738150.3635@ubuntu-linux-20-04-desktop>
References: <20240717101239.21051-1-olaf@aepfle.de>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 17 Jul 2024, Olaf Hering wrote:
> Use new location of dockerfiles.
> 
> Signed-off-by: Olaf Hering <olaf@aepfle.de>

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


> ---
>  automation/build/README.md | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/automation/build/README.md b/automation/build/README.md
> index 12a2b4af18..bd0c0e0418 100644
> --- a/automation/build/README.md
> +++ b/automation/build/README.md
> @@ -100,12 +100,12 @@ such as openSUSE Tumbleweed. Login with the gitlab.com credentials.
>  
>  ```
>  docker login registry.gitlab.com/xen-project/xen
> -make -C automation/build suse/opensuse-tumbleweed
> +make -C automation/build opensuse/tumbleweed-x86_64
>  env CONTAINER_NO_PULL=1 \
>    CONTAINER=tumbleweed \
>    CONTAINER_ARGS='-e CC=gcc -e CXX=g++ -e debug=y' \
>    automation/scripts/containerize automation/scripts/build < /dev/null
> -make -C automation/build suse/opensuse-tumbleweed PUSH=1
> +make -C automation/build opensuse/tumbleweed-x86_64 PUSH=1
>  ```
>  
>  [BuildKit]: https://docs.docker.com/build/buildkit/
> 


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 14:43:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 14:43:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760004.1169720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU5sd-00023E-BZ; Wed, 17 Jul 2024 14:43:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760004.1169720; Wed, 17 Jul 2024 14:43: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 1sU5sd-000237-63; Wed, 17 Jul 2024 14:43:43 +0000
Received: by outflank-mailman (input) for mailman id 760004;
 Wed, 17 Jul 2024 14:43:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU5sb-00022x-Vi; Wed, 17 Jul 2024 14:43:41 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU5sb-0002hH-Q8; Wed, 17 Jul 2024 14:43:41 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU5sb-0001hX-Dc; Wed, 17 Jul 2024 14:43:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sU5sb-0007Jh-DB; Wed, 17 Jul 2024 14:43: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dw83S8YmbhCF/GbMvDCneEKiZZYbqENgjScp2k/3HXI=; b=Y3kp0PK+yB2159WN9c3F2+Y/bR
	DyN7mMWO6V9JhK1nnA1iT42c1IQeZBAw8XcY3kOWO/sjmSs8F0XKzyvsRG9lS+su4UPQI9UuDwNY5
	fKCK4waWWLbRyhAMhDeRJZfP8+9OA6MPrIJ4liwrQCuChiNQF276vwTX+qJleCAHWUWI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186827-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186827: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt-vhd:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
X-Osstest-Versions-That:
    linux=3e7819886281e077e82006fe4804b0d6b0f5643b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 14:43:41 +0000

flight 186827 linux-linus real [real]
flight 186840 linux-linus real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186827/
http://logs.test-lab.xenproject.org/osstest/logs/186840/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-vhd  8 xen-boot            fail pass in 186840-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt   16 saverestore-support-check fail blocked in 186811
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check fail in 186840 never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check fail in 186840 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186811
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186811
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186811
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186811
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186811
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
baseline version:
 linux                3e7819886281e077e82006fe4804b0d6b0f5643b

Last test of basis   186811  2024-07-15 23:14:03 Z    1 days
Failing since        186816  2024-07-16 09:44:08 Z    1 days    2 attempts
Testing same since   186827  2024-07-16 19:43:06 Z    0 days    1 attempts

------------------------------------------------------------
521 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   3e7819886281..f83e38fc9f10  f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 14:45:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 14:45:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760014.1169728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU5un-0002f0-Q1; Wed, 17 Jul 2024 14:45:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760014.1169728; Wed, 17 Jul 2024 14:45:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU5un-0002et-NR; Wed, 17 Jul 2024 14:45:57 +0000
Received: by outflank-mailman (input) for mailman id 760014;
 Wed, 17 Jul 2024 14:45:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU5um-0002ei-6Z; Wed, 17 Jul 2024 14:45:56 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU5um-0002jQ-5c; Wed, 17 Jul 2024 14:45:56 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU5ul-0001mA-Ok; Wed, 17 Jul 2024 14:45:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sU5ul-0007da-OF; Wed, 17 Jul 2024 14:45:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kHuHWjGtyXFjiV7/HpCJ42AE5SWXby7VL0zKlM66tVI=; b=THiGEqjKs7uQUyJaaP0tnZ9pVT
	bkPY/IWs1y8092tx3RrNR0Eta5PyQNuZQDy97Zo0foKXUPWXeCGf1HfedMePjCVHSCaNmECraO0oN
	/cCOKOr/baKWy767Rh80dYPLGPLKjqCdLecSrxGwlpTWwRTaVzZ8L5YVerLT+odczu4w=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186841-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186841: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=dd58d1227c102ad4a799002f16b3a8c796d7d7cc
X-Osstest-Versions-That:
    ovmf=e32d24ef8c8211e76c020fa7a395328cd176190c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 14:45:55 +0000

flight 186841 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186841/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 dd58d1227c102ad4a799002f16b3a8c796d7d7cc
baseline version:
 ovmf                 e32d24ef8c8211e76c020fa7a395328cd176190c

Last test of basis   186839  2024-07-17 08:45:10 Z    0 days
Testing same since   186841  2024-07-17 13:11:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Shenbagadevi R <shenbagadevir@ami.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   e32d24ef8c..dd58d1227c  dd58d1227c102ad4a799002f16b3a8c796d7d7cc -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 15:33:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 15:33:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760027.1169742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU6eO-0008U1-Ho; Wed, 17 Jul 2024 15:33:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760027.1169742; Wed, 17 Jul 2024 15: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 1sU6eO-0008Tu-DN; Wed, 17 Jul 2024 15:33:04 +0000
Received: by outflank-mailman (input) for mailman id 760027;
 Wed, 17 Jul 2024 15: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=dAsn=OR=bounce.vates.tech=bounce-md_30504962.6697e28c.v1-22f2264278444a99bb7e14a68ed04746@srs-se1.protection.inumbo.net>)
 id 1sU6Xl-0007SK-Kk
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 15:26:14 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e2adeede-4450-11ef-8776-851b0ebba9a2;
 Wed, 17 Jul 2024 17:26:07 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WPKXF0fBRzB5pJRc
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 15:26:05 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 22f2264278444a99bb7e14a68ed04746; Wed, 17 Jul 2024 15: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: e2adeede-4450-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721229965; x=1721490465;
	bh=8x2hht6JokL0QYtYOQHuYyKPPkIjx05t2zcIig85IM4=;
	h=From:Subject:Message-Id:To:Feedback-ID:Date:MIME-Version:
	 Content-Type:CC:Date:Subject:From;
	b=Z+cBj1Qurc/fY7oSeJ7sPGLmw6kRubYC4ehyGIJc+tdsovLXGjYY/VpYDeukls3/4
	 3b3c524ZuIn2Fh+aRkr+xTOY12XY4r9sQnLvWAbP+2rrVFRHQwFrVEjenKb4bvSJpn
	 XfeMZbV8oSg6afnODtLL6s2P2FzNUoxuK/lmWoBaKRqXs84GNI3jWA80udcAbWyhGu
	 8SogX+QCtU7GbOkJWdanxXBLJgIxQrFZWxpg2k3jpstxW7Y8wqvPvalhJqfhXAyasE
	 UYYCiJU9DPUzn6IgExzYfKKlJoCT5fzkAeFASblcG10s4ie1/wmV5WUaUAZU2wXM/n
	 hwflgTcmA7zhA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721229965; x=1721490465; i=olivier.lambert@vates.tech;
	bh=8x2hht6JokL0QYtYOQHuYyKPPkIjx05t2zcIig85IM4=;
	h=From:Subject:Message-Id:To:Feedback-ID:Date:MIME-Version:
	 Content-Type:CC:Date:Subject:From;
	b=TxUr3mdyHDjdYjAqJa2rroUgObfGWSMcC8zkn3lzhKganyXxHqP6XJc/CatlkEbOy
	 CCOuAhjAnPu1u2CHECoQkvduzD1IReyyHlWNfnB5gObd/kKQD0oRQxrj+fgamTdzt1
	 isLxEwxx4AekGE1LYJMklZGjwA1+N+yhccUrJmKGdd8aoZhExfKN9/Ma/aFbuWvk55
	 6n3Yzzgm2UtBwlHlxot6cIeIhHMNz8z3/ha8bGy2zAks9GX43CuWuzJ5je8OdYcOh/
	 rypnZnNDE7q73lFp94HgvF5m8uZrGEqSfydWnfWTTa2h9cCHN7gDX5WqHgKhgxHD+Y
	 og91SskKpDkBQ==
From: Olivier Lambert <olivier.lambert@vates.tech>
Subject: =?utf-8?Q?Pre-register=20now=20for=20the=20Xen=20Project=20Winter=20Meetup=202024!?=
X-Bm-Draft-Refresh-Date: 1721229963352
X-Bm-Draft-Identity: default
X-Bm-Sent-Folder: f447119a-de48-4994-be64-4b14ffcd9b31
X-Bm-Internal-Id: 51E2DD5C-2A80-4022-B0C6-3DE883716B7A bluemind-4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2 2822771
X-Bm-Previous-Body: cd2f00815841bd57d600b1957ed580ed004a90e0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721229963966
Message-Id: <lypzl0go.tk0dry5orda8@vates.tech>
To: xen-devel@lists.xenproject.org
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.22f2264278444a99bb7e14a68ed04746?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240717:md
Date: Wed, 17 Jul 2024 15:26:04 +0000
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="_av-S0W1fjY4tLwapTwCqwglUQ"

--_av-S0W1fjY4tLwapTwCqwglUQ
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello everyone,

As discussed during our previous Xen Summit in the first design session, "T=
he Future of Xen Events," we aim to create an event that is:

 * Financially neutral for the Xen Project (0 cost, entirely supported by V=
ates and sponsors)
 * 100% branded as a Xen Event, similar to a regular Summit
 * Featuring content akin to a normal summit (talks & design sessions)
 * Attracting new contributors to the Xen dev community
 * Utilizing our own tools to reduce costs and be free from the Linux Found=
ation
 * Serving as a test bed for future Xen meetings, proving we can manage wit=
hout the LF
That's exactly what we are doing with the Xen Project Winter Meetup 2024! M=
ore details are available at https://campaign.vates.tech/xen-project-winter=
-meetup [https://campaign.vates.tech/xen-project-winter-meetup].
Save the Date: The event will take place on January 30-31, 2024 (Tuesday to=
 Friday) in Grenoble. Consider using the weekend to enjoy nearby ski resort=
s! =F0=9F=98=87

ACTION NEEDED: PRE-REGISTER NOW =F0=9F=8E=AF
We need to gather a selection committee for the CFP, but first, we need you=
r help: please pre-register if you plan to attend. The event is capped at 5=
0 participants, and we already have 15 pre-registrations from the academic =
world (researchers, students, PhDs).

The sooner you pre-register, the better we can organize. The pre-registrati=
on form is available on the event website: Pre-register here [https://campa=
ign.vates.tech/xen-project-winter-meetup].

By pre-registering, you'll stay informed about official registration, being=
 part of the selection committee, venue details, and everything you need to=
 attend.

Note: your data is secure; all our tools (CFP tool, registration tool, etc.=
) are self-hosted on our servers in France, running on Xen. No third-party =
tools are used.

Looking forward to your participation!

Best regards,



Olivier Lambert | Vates CEO

XCP-ng & Xen Orchestra - Vates solutions
Book a meeting with me: https://cal.vates.tech/olivier-lambert
web: https://vates.tech


--_av-S0W1fjY4tLwapTwCqwglUQ
Content-Type: multipart/related; boundary="_av-Lh1tavEZdMXoY15M7RP2LQ"

--_av-Lh1tavEZdMXoY15M7RP2LQ
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html>
 <head></head>
 <body>
  <div id=3D"bm-composer-content-wrapper">
   <div id=3D"bm-composer-content-wrapper">
    <div id=3D"bm-composer-content-wrapper">
     <p>Hello everyone,</p>
     <p>As discussed during our previous Xen Summit in the first design ses=
sion, "The Future of Xen Events," we aim to create an event that is:</p>
     <ul>
      <li style=3D"list-style-type: disc;">Financially neutral for the Xen =
Project (0 cost, entirely supported by Vates and sponsors)</li>
      <li style=3D"list-style-type: disc;">100% branded as a Xen Event, sim=
ilar to a regular Summit</li>
      <li style=3D"list-style-type: disc;">Featuring content akin to a norm=
al summit (talks &amp; design sessions)</li>
      <li style=3D"list-style-type: disc;">Attracting new contributors to t=
he Xen dev community</li>
      <li style=3D"list-style-type: disc;">Utilizing our own tools to reduc=
e costs and be free from the Linux Foundation</li>
      <li style=3D"list-style-type: disc;">Serving as a test bed for future=
 Xen meetings, proving we can manage without the LF</li>
     </ul>
     <div style=3D"font-family: Verdana, Verdana Ref, Corbel, Lucida Grande=
, Lucida Sans Unicode, Lucida Sans, DejaVu Sans, Liberation Sans, sans-seri=
f;">
      <br>
     </div>
     <div style=3D"font-family: Verdana, Verdana Ref, Corbel, Lucida Grande=
, Lucida Sans Unicode, Lucida Sans, DejaVu Sans, Liberation Sans, sans-seri=
f;">
       That's exactly what we are doing with the Xen Project Winter Meetup =
2024! More details are available at <a href=3D"https://campaign.vates.tech/=
xen-project-winter-meetup" title=3D"https://campaign.vates.tech/xen-project=
-winter-meetup">https://campaign.vates.tech/xen-project-winter-meetup</a>.
     </div>
     <div style=3D"font-family: Verdana, Verdana Ref, Corbel, Lucida Grande=
, Lucida Sans Unicode, Lucida Sans, DejaVu Sans, Liberation Sans, sans-seri=
f;">
      <br>
     </div>
     <div style=3D"font-family: Verdana, Verdana Ref, Corbel, Lucida Grande=
, Lucida Sans Unicode, Lucida Sans, DejaVu Sans, Liberation Sans, sans-seri=
f;">
      <p><strong>Save the Date:</strong> The event will take place on Janua=
ry 30-31, 2024 (Tuesday to Friday) in Grenoble. Consider using the weekend =
to enjoy nearby ski resorts! =F0=9F=98=87</p>
      <div></div>
      <div>
       <h3>Action Needed: Pre-register Now =F0=9F=8E=AF<br></h3>
       <p>We need to gather a selection committee for the CFP, but first, w=
e need your help: please pre-register if you plan to attend. The event is c=
apped at 50 participants, and we already have 15 pre-registrations from the=
 academic world (researchers, students, PhDs).</p>
       <p>The sooner you pre-register, the better we can organize. The pre-=
registration form is available on the event website: <a target=3D"_new" hre=
f=3D"https://campaign.vates.tech/xen-project-winter-meetup">Pre-register he=
re</a>.</p>
       <p>By pre-registering, you'll stay informed about official registrat=
ion, being part of the selection committee, venue details, and everything y=
ou need to attend.</p>
       <p><strong>Note:</strong> your data is secure; all our tools (CFP to=
ol, registration tool, etc.) are self-hosted on our servers in France, runn=
ing on Xen. No third-party tools are used.</p>
       <p>Looking forward to your participation!</p>
       <p>Best regards,</p>
       <br>
      </div>
     </div>
     <div class=3D"x-disclaimer-668557390">
      <div>
        &nbsp;
      </div>
      <div>
        &nbsp;
      </div>
      <div>
       <div>
        <br>
        <table>
         <tbody>
          <tr>
           <td style=3D"font-size: 10pt;">&nbsp;</td>
           <td style=3D"font-size: 10pt; padding-left: 20px; border-left-co=
lor: #b42626; border-left-style: solid; border-left-width: 1px;">
            <div> <strong> Olivier Lambert | Vates CEO</strong>
            </div>
            <div> <strong></strong>
            </div>
            <div> <strong>XCP-ng &amp; Xen Orchestra - </strong>Vates solut=
ions
            </div>
            <div> <a href=3D"https://cal.vates.tech/olivier-lambert">Book a=
 meeting with me</a><strong><br>web:</strong> https://vates.tech
            </div>
            <div>
             <img style=3D"float: left;" src=3D"cid:x-disclaimer-668557390-=
1721229963966.png@bm-disclaimer" alt=3D"" width=3D"174" height=3D"159">
            </div> </td>
          </tr>
         </tbody>
        </table>
       </div>
      </div>
     </div>
    </div>
   </div>
   <style></style>
  </div>
 <img src=3D"http://bounce.vates.tech/track/open.php?u=3D30504962&id=3D22f2=
264278444a99bb7e14a68ed04746" height=3D"1" width=3D"1" alt=3D""></body>
</html>


--_av-Lh1tavEZdMXoY15M7RP2LQ
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Id: <x-disclaimer-668557390-1721229963966.png@bm-disclaimer>
Content-Disposition: inline

iVBORw0KGgoAAAANSUhEUgAAAK4AAACfCAYAAABgKuLmAAAm4XpUWHRSYXcg
cHJvZmlsZSB0eXBlIGV4aWYAAHjatZxpkmSpcoX/swotgXlYDuBgph1o+foO
kVmva2jZa8lU1VWZFRlxL+DuZ3C47c5//ed1/8GvEYZ3ubReR62eX3nkESff
dP/5Nd/fwef39+el8/Wz8PPrbtyvH0ReSnxNn3/2+vX+79fDjwt8vky+K3+5
UN9fP1g//2Dkr+v3Xy70daOkEUW+se8RfV0oxc8PwtcF5mdavo7e/jqF9TW1
r89/loE/Tn/dHYdeK+vzs1//nRurZ4X7pBhPCsnzd0pfA0j6E12afFP5O6YU
30vvlc7fIcWvkbAgf1qnH7+4rbsaav7jm36Kyo/vfonWGV9r9Gu0cvx6S/pl
keuPr3983YXy56i8pf/LnXP/+i7+/ProMX5G9Mvqv8W/1u+bM7OYubLU9WtS
31N83/E+wpF16+4YWvWNP4VLtPd78LuT1ZtUML/94vcOI0TCdUMOFma44byv
O2yGmONxsfFNjDum92JPLY64iVtIWb/DjS2NZMQxpv3CnlP8MZbwbjv8du9u
nTtb4K0xcLHwkuAf/nb/9AP3qhRC0FoS+vCJb4xabIahyOlv3kZEwv1a1PIW
+Pv3r78U10QEi1ZZJTJY2PW5xCrhX0iQXqATbyx8/dRgaPZ1AZaIWxcGExIR
IGohlVCDbzG2EFjIToAmQ48px0UEQinRGGTMKVVi06NuzUdaeG+NJfKy43XA
jEgUKq4Rm5Emwcq5kD8td3JollRyKaWWVnoZZdZUcy211lYFirOlll0rrbbW
ehtt9tRzL7321nsffY44EqBZRh1t9DHGnNxzcuXJpydvmHPFlVZexa262upr
rLlJn5132XW33ffY06IlAz+sWrNuw+YJh1Q6+ZRTTzv9jDMvqXaTu/mWW2+7
/Y47f0TtK6y//f4HUQtfUYsvUnpj+xE1Xm3t+xJBcFIUMwIWXQ5EvCkEJHRU
zHwPOUdFTjHzA8RLJTLIophZUMSIYD4hlhu+Y+fiJ6KK3P8pbq7ln+IW/7eR
cwrdP4zc73H7U9RMNLRfxD5VqEX1ierj56fP2KfI7revTjNvjRUI8HbqXrdv
xdvlv139mjVY7qcXSmjvnE4bo8XF2Po+56wzNhTXorNcILFSOrVFGe7A9LnF
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
ivS52PKsqh/DhTZQhbdKLSMr9RzK0D4j2ZIMnNl6eNSTqdXpiT+CgEfpLHuT
avpEuuAFlKY6Y+kTSLBAfjSf9uY/R7DexlQNldie5ChkcdeM7+i72nY23H8D
uWZ05wi91FUAAAGEaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1IhUH
C4o4ZKhOFqSKOGoVilAh1AqtOphc+iE0aUhSXBwF14KDH4tVBxdnXR1cBUHw
A8TRyUnRRUr8X1JoEePBcT/e3XvcvQOEeplpVsc4oOm2mU4mxGxuRQy9ogsD
iCCEuMwsY1aSUvAdX/cI8PUuxrP8z/05etW8xYCASDzDDNMmXiee2rQNzvvE
EVaSVeJz4jGTLkj8yHXF4zfORZcFnhkxM+k54gixWGxjpY1ZydSIJ4mjqqZT
vpD1WOW8xVkrV1nznvyF4by+vMR1msNIYgGLkCBCQRUbKMNGjFadFAtp2k/4
+Idcv0QuhVwbYOSYRwUaZNcP/ge/u7UKE3EvKZwAOl8c52MECO0CjZrjfB87
TuMECD4DV3rLX6kD05+k11pa9Ajo2wYurluasgdc7gCDT4Zsyq4UpCkUCsD7
GX1TDui/BXpWvd6a+zh9ADLUVeoGODgERouUvebz7u723v490+zvB3gHcqkl
oKXxAAAN/WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJl
Z2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6
eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1Q
IENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8
cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09
Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpz
dEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291
cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9l
bGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1w
Lm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNv
bS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5j
b20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6
Z2ltcDo5NmE3ZjI0MS1lMjNjLTRiMWEtOTdjZS1kNmU2NjliOTk4ZTIiCiAg
IHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MGNlZmJjNjYtNjFiMy00ZDZk
LWExYzgtMTg5M2QwNWFjOTg5IgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50
SUQ9InhtcC5kaWQ6NDIyZDdlNTItOGE2Ny00NmExLWI5MjYtNTJiOGEzMGIx
OGIwIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIu
MCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1w
PSIxNjU2MDE0ODk0NDU0Mjg5IgogICBHSU1QOlZlcnNpb249IjIuMTAuMzAi
CiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0i
R0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4K
ICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAg
IHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9Inht
cC5paWQ6YTY0MGI4MmMtMDg0My00MjYwLTk3NmMtYTg1ZjA3MDc5ZjcwIgog
ICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIK
ICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wNC0yOVQxMzoyMzo1NCswMjowMCIv
PgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAg
ICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0i
eG1wLmlpZDozYTUyMDNkNS04NGRiLTQzNDMtOWZhYy03NjFmZDZmZmFhYjgi
CiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgp
IgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA2LTIzVDIyOjA4OjE0KzAyOjAw
Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3Jk
ZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PlmiVpAAAAAG
YktHRADwAKIAftw2PhcAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfm
BhcUCA56CWQaAAAgAElEQVR42ux9Z5gkV3X2e+6tqk4Td3d2epN2tUlhJRSQ
QEKABpFE/ggm2SAMxmBbtjA2/uwPJ2wwGNs8BBuDbTAyOdnYGIEtECMhhISQ
YIXianOc2Z3diR2r7j3fj3sqdO/M7Ehik9TneXq3p7u6uvrWe8894T3nEjry
mOWnT79UFdaUledrUoFPBADWAgzYRoio3rTR2CQfuW/UPuPgdu6M2GMX6gzB
I5MvAuqiN7+8N9/f1Uta94C5xzbCZQCWE/MSUqoLzAFZVrAccWRqNoomOTIj
1vIBT6uDNjTTptqYmtkxOnHR5ntqnVHtAPe4yAcA9aprX3O231N6ktJ6E0Ab
CLyWmc8gYFApBTADlsHWAswgZsAwYC3YMmAsODKwYVSHtXs4srvYmK22GT1g
a817p3cdvOein9871hntDnAfs4x95DeWB+XBl0S18MW1feMbibEUhD4AgAXA
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
AAAASUVORK5CYII=

--_av-Lh1tavEZdMXoY15M7RP2LQ--

--_av-S0W1fjY4tLwapTwCqwglUQ--



From xen-devel-bounces@lists.xenproject.org Wed Jul 17 15:51:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 15:51:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760040.1169752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU6wI-0002jA-3l; Wed, 17 Jul 2024 15:51:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760040.1169752; Wed, 17 Jul 2024 15:51: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 1sU6wI-0002j3-19; Wed, 17 Jul 2024 15:51:34 +0000
Received: by outflank-mailman (input) for mailman id 760040;
 Wed, 17 Jul 2024 15:51: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=DLSD=OR=bounce.vates.tech=bounce-md_30504962.6697e880.v1-4e3fd89483f24370a40264ad4a06ba88@srs-se1.protection.inumbo.net>)
 id 1sU6wG-0002ix-UY
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 15:51:33 +0000
Received: from mail136-18.atl41.mandrillapp.com
 (mail136-18.atl41.mandrillapp.com [198.2.136.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6edfdc50-4454-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 17:51:30 +0200 (CEST)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-18.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4WPL5X6B9gzB5pCjZ
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 15:51:28 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 4e3fd89483f24370a40264ad4a06ba88; Wed, 17 Jul 2024 15: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: 6edfdc50-4454-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721231488; x=1721491988;
	bh=zSidZJjTBmvIyK5wwOQ2bPK/xV9ITMue+D/D4EbPXlU=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=ZhF1S2HOx+Oc14HhBnRjxK01msqlU+RNIO/VFWuJP4eeW7axYCSpBe7K1nBCzVm82
	 sMgYt2h0HNUbq7f+gklwJp683nccojYwGWwsKLdjHdkrGD75EG06BLv1NKwtTjuJQp
	 Dvrj/e4pKbB/y70aQkTxi8/MLQWV0a7NtOIdmlyH3mDztPDXaeanBTjY2dxXC7sXSm
	 YdAQXkMZ+WaK9I1U8fl3UY8qtLqXZgd5vSx+9xwYKLH3MHkxjaWnPIrQhQBNORaLA0
	 Q6EsvstsZ/jl0oGLsP/CDynFmmhz9Q0ScY9Rpg9qG+KrPU7G8R2MSeZI/0lDMsqtYY
	 SBFdYFTKPfdjw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721231488; x=1721491988; i=teddy.astie@vates.tech;
	bh=zSidZJjTBmvIyK5wwOQ2bPK/xV9ITMue+D/D4EbPXlU=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=oqI05zSAtj/6T3oUu2SWtTyzKczaPXjUOlW6r5Ox1t4sFs8kyqfib4n7LQtqZuxzt
	 fnPqeNcd7gNZFYRnJ+gXo+XPtbQI3YOebs+JIrd1iyMwvONJZ1a8QnWyB0VOoEV9Jj
	 mTwaRL/8pbrLwkL3gf7HASEqafyPUW4qsbCQFL0ptC33QevCWnClnp1p5DC932pz4z
	 B3kDHS76JV2Q7wKyo1v8FdY+aUeprFCAxO57WbK83h6ToMbz+a0W8mVxTBO6ALt81y
	 NEKHCwHrZ380FZDnQBwA0lK/4BJHAJs8t+KEj3WR8xxj+Fs37xwVGRMPJGOFTcq0d1
	 D6/KNJ3umV1Xw==
From: Teddy Astie <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20for-4.19=3F]=20x86/IOMMU:=20Move=20allocation=20in=20iommu=5Fidentity=5Fmapping?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721231488178
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>, Jan Beulich <jbeulich@suse.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Message-Id: <20240717155136.140303-1-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.4e3fd89483f24370a40264ad4a06ba88?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240717:md
Date: Wed, 17 Jul 2024 15:51:28 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

If for some reason, xmalloc fails after having mapped the
reserved regions, a error is reported, but the regions are
actually mapped in p2m.

Move the allocation before trying to map the regions, in
case the allocation fails, no mapping is actually done
which could allows this operation to be retried with the
same regions without failing due to already existing mappings.

Fixes: c0e19d7c6c ("IOMMU: generalize VT-d's tracking of mapped RMRR regions")
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/drivers/passthrough/x86/iommu.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index cc0062b027..b6bc6d71cb 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -267,18 +267,22 @@ int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,
     if ( p2ma == p2m_access_x )
         return -ENOENT;
 
+    map = xmalloc(struct identity_map);
+    if ( !map )
+        return -ENOMEM;
+
     while ( base_pfn < end_pfn )
     {
         int err = set_identity_p2m_entry(d, base_pfn, p2ma, flag);
 
         if ( err )
+        {
+            xfree(map);
             return err;
+        }
         base_pfn++;
     }
 
-    map = xmalloc(struct identity_map);
-    if ( !map )
-        return -ENOMEM;
     map->base = base;
     map->end = end;
     map->access = p2ma;
-- 
2.45.2



Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 16:08:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 16:08:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760066.1169773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU7Cb-0005rr-Qm; Wed, 17 Jul 2024 16:08:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760066.1169773; Wed, 17 Jul 2024 16:08: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 1sU7Cb-0005rk-Ny; Wed, 17 Jul 2024 16:08:25 +0000
Received: by outflank-mailman (input) for mailman id 760066;
 Wed, 17 Jul 2024 16:08: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=rT7O=OR=gmail.com=julien.grall@srs-se1.protection.inumbo.net>)
 id 1sU7CZ-0005rD-Tp
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 16:08:23 +0000
Received: from mail-yb1-xb29.google.com (mail-yb1-xb29.google.com
 [2607:f8b0:4864:20::b29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca764736-4456-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 18:08:23 +0200 (CEST)
Received: by mail-yb1-xb29.google.com with SMTP id
 3f1490d57ef6-e05ebd3d607so903608276.3
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 09:08:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca764736-4456-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721232502; x=1721837302; 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=OJQN4PcAxApfhsADBsm+WUgj0Z0zHJ/SDxH8c314x/4=;
        b=ltMcXPDvO3MCtPrLWV3rvoNRS63IDAs/qmn9NjMNbV3Lscxe4QzjLaQDoifAX2uofJ
         UVRXvwtZQqbhqSNr0SDBkpfGZnniKvriRMTRsbWQWR+T3hIP8LaeNYrd7EpnQeNrKSfw
         NQLKIHwQ8XQL858pkQ6DldeGs3EPThX/L/DszUhy03fy7YiinRUaHhl8TWKpPLwgXJCu
         AhTsEnmxqUYudNH9+CjI50g7Ez5cNK4GsPl+M8/nTmRVbyAjb8XgqWNOWTYzFxQUoRRD
         J4DUd+3E5m+iX7NnTXtBREeHZFbTNubG5c+RvAb0KzXshoH0W4iWvI6e95FSVh1lH57k
         u7cA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721232502; x=1721837302;
        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=OJQN4PcAxApfhsADBsm+WUgj0Z0zHJ/SDxH8c314x/4=;
        b=UItHxfmVtTuAqPle0faOVr0QzDeh6g/QPw1D/X2Kv623jemneDBrTb4MjKrB4tS2/l
         zggij0J4hXOHeHZH7G6Q5F4up+Mao1HTJpa/4qHnBv3f3tj1RAarr3XY2jGKd2zZK+xB
         GW5FoIOFcHk9lDLyP0gywVDEe1W+PqmF4Re3apTQ/GITIKBKSTPeshzJFhhAq7xg2GRV
         UQL/Dzuh7dxizVbZCS4H7RRvYRSRheBBPTu19v2zG58rTV83UzzJiIf+I5IaIKubfasn
         KwHeZo3XkfaKdWpz4lr3QM1Ri0akK2B7jkgDgqI+yCHUV86wKeeJUS4XJI6J9sEmtev1
         3/nQ==
X-Gm-Message-State: AOJu0Yz+dDxsOfYVZt+lNsADZtqbzGjBebXUKBiOwzpWFTswI4a6HB/c
	+G8x/FYRPzg2zKmkm7GgnkKyYDx/3k43Q5kbRtOy0EGXK7dCe+BF7M01/0ebr45t5xXb0pHTtoo
	NEpY6jOsIWoYW8w8i/Af/6w40HOvUALld7mw=
X-Google-Smtp-Source: AGHT+IGVCcW/5nYFEdEKMiSGub6UKQT0e4gaQUnHMhAsYJyuDrZo6xXyVMhil91lnf8BJ6ZR0n+qbb7vTvNschUQOek=
X-Received: by 2002:a05:6902:154f:b0:e02:bc1a:8ee1 with SMTP id
 3f1490d57ef6-e05ed6ee75amr2532208276.29.1721232502008; Wed, 17 Jul 2024
 09:08:22 -0700 (PDT)
MIME-Version: 1.0
References: <lypzl0go.tk0dry5orda8@vates.tech>
In-Reply-To: <lypzl0go.tk0dry5orda8@vates.tech>
From: Julien Grall <julien.grall@gmail.com>
Date: Wed, 17 Jul 2024 17:07:45 +0100
Message-ID: <CAF3u54AanxBtuZyhj9tjgB+7z8yRwveppkEZL32_z-vAE_-daA@mail.gmail.com>
Subject: Re: Pre-register now for the Xen Project Winter Meetup 2024!
To: Olivier Lambert <olivier.lambert@vates.tech>
Cc: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Olivier,

Le mer. 17 juil. 2024 =C3=A0 16:33, Olivier Lambert
<olivier.lambert@vates.tech> a =C3=A9crit :
>
> Hello everyone,
>
> As discussed during our previous Xen Summit in the first design session, =
"The Future of Xen Events," we aim to create an event that is:
>
> Financially neutral for the Xen Project (0 cost, entirely supported by Va=
tes and sponsors)
> 100% branded as a Xen Event, similar to a regular Summit
> Featuring content akin to a normal summit (talks & design sessions)
> Attracting new contributors to the Xen dev community
> Utilizing our own tools to reduce costs and be free from the Linux Founda=
tion
> Serving as a test bed for future Xen meetings, proving we can manage with=
out the LF
>
>
> That's exactly what we are doing with the Xen Project Winter Meetup 2024!=
 More details are available at https://campaign.vates.tech/xen-project-wint=
er-meetup.
>
> Save the Date: The event will take place on January 30-31, 2024 (Tuesday =
to Friday) in Grenoble. Consider using the weekend to enjoy nearby ski reso=
rts! =F0=9F=98=87

I assume you mean 2025? :) But can you confirm the dates? Is it two
days or 4 days?

Cheers,

--=20
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 16:14:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 16:14:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760077.1169814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU7IR-00089v-3a; Wed, 17 Jul 2024 16:14:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760077.1169814; Wed, 17 Jul 2024 16:14:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU7IR-00089a-0G; Wed, 17 Jul 2024 16:14:27 +0000
Received: by outflank-mailman (input) for mailman id 760077;
 Wed, 17 Jul 2024 16:14:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9rux=OR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sU7IQ-0007cd-0E
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 16:14:26 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a1e8a456-4457-11ef-8776-851b0ebba9a2;
 Wed, 17 Jul 2024 18:14:24 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2eeb1ba0468so84852331fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 09:14:24 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59ff76e9851sm2064067a12.46.2024.07.17.09.14.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Jul 2024 09:14: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: a1e8a456-4457-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721232863; x=1721837663; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZvzhdU6x9AsIJRrQYGcjNo5sQW70nyGBUDqt4jxaSlQ=;
        b=S5kF/WWsNgVRZ1C2hE24FkRVgJvieZCAXesAFhfQlVzzoxDq2YNYSVhNd2LC1N8dGu
         bxNgu4zDltBkA3xJUhFj+If8bT0AhHKI8qNxYL8zzb74NId1xxhHnVXcloEQ1ywdESkV
         qfcBSTom9qhP7vdxlX3rWHiRJsk60fQZigH6U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721232863; x=1721837663;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ZvzhdU6x9AsIJRrQYGcjNo5sQW70nyGBUDqt4jxaSlQ=;
        b=eljI4YbjDh8oJ0te7drSCSX6IUeYeM5j4xN47RCENfn52l7W13jhHSg0XSX3V7DkTp
         3pympO2WaVZO2TYLKnFrKgkupaT/3Z3dXzEOMlZqFMmzp1fTRJIIrTQcIl1zz31nOWWF
         cAuVEFNeW48B7zrnPf1J3p3jt/00rSKGcs7ArA37evjPUwTTj3nr6mgoG/j8b++yMGg7
         4aoRucL75l/zubh7wogxyjJmTIPwyRKZlQjS1ahTe9YbQnIrQ4sj75d6XfEgRET2FryI
         M6MUvp7w3rrxF9DRrY17SxD3H8P8IjkPFdj77jJNgv51Fc71QyDkr4p2sZrKAPdEVbQV
         lXZg==
X-Gm-Message-State: AOJu0Yyom7rqP1xnmaSNrPrdOEwG/dEdjG6tOoLO5kuUx0aZQE43GTCp
	ip/87bPZUEKkvcKDgAFP54ntaCfOa5jReBTe3bdNvl7DjMkH9klYTGbhdqZ/rIUnW3cAVddnt6o
	d
X-Google-Smtp-Source: AGHT+IGXLIIUiAI+gC9eBhq5fKEVyrJPtP68hJKmzAAuUzWzrV7GD8Gn/EXQtq6KFUp88QiJlBPmEw==
X-Received: by 2002:a2e:be90:0:b0:2ec:3dd4:75f4 with SMTP id 38308e7fff4ca-2eefd141eb7mr21114391fa.38.1721232863174;
        Wed, 17 Jul 2024 09:14: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>
Subject: [PATCH RFC 3/3] x86/mm: Simplify/correct l1_disallow_mask()
Date: Wed, 17 Jul 2024 17:14:15 +0100
Message-Id: <20240717161415.3586195-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240717161415.3586195-1-andrew.cooper3@citrix.com>
References: <20240717161415.3586195-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

l1_disallow_mask() yields L1_DISALLOW_MASK with PAGE_CACHE_ATTRS conditionally
permitted.  First, rewrite it as a plain function.

Next, correct some dubious behaviours.

The use of is_pv_domain() is tautological; l1_disallow_mask() is only used in
the PV pagetable code, and it return true for system domains as well.

The use of has_arch_pdevs() is wonky; by making the use of cache attributes
dependent on the instantanious property of whether any devices is assigned,
means that a guest could have created a legal PTE which will fail validation
at a later point when the device has been removed.

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

RFC.  I've not tested this, and I doubt it will work to start with owing to
the removal of the dom_io special case which IIRC dom0 uses to map arbitrary
MMIO.

Furthermore, the rangeset_is_empty() calls have the same problem that
has_arch_pdevs() has; they're not invariants on the domain.  Also, VMs
wanting/needing encrypted memory need fully working cacheability irrespective
of device assignment.

I expect the way we actually want to fix this is to have a CDF flag for
allowing reduced cahcebility, and for this expression to simplify to just:

    if ( d->options & XEN_DOMCTL_CDF_any_cacheability )
        disallow &= ~PAGE_CACHE_ATTRS;

which is simpler still.

For the current form, bloat-o-meter reports:

  add/remove: 1/0 grow/shrink: 1/2 up/down: 75/-280 (-205)
  Function                                     old     new   delta
  l1_disallow_mask                               -      74     +74
  mod_l1_entry.cold                             55      56      +1
  get_page_from_l1e                           1271    1167    -104
  mod_l1_entry                                1860    1684    -176

which is an even bigger improvement than simply not duplicating the logic.
---
 xen/arch/x86/mm.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 95795567f2a5..31937319c057 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -162,13 +162,17 @@ static uint32_t __ro_after_init base_disallow_mask;
 
 #define L4_DISALLOW_MASK (base_disallow_mask)
 
-#define l1_disallow_mask(d)                                     \
-    (((d) != dom_io) &&                                         \
-     (rangeset_is_empty((d)->iomem_caps) &&                     \
-      rangeset_is_empty((d)->arch.ioport_caps) &&               \
-      !has_arch_pdevs(d) &&                                     \
-      is_pv_domain(d)) ?                                        \
-     L1_DISALLOW_MASK : (L1_DISALLOW_MASK & ~PAGE_CACHE_ATTRS))
+static uint32_t l1_disallow_mask(const struct domain *d)
+{
+    uint32_t disallow = L1_DISALLOW_MASK;
+
+    if ( (d->options & XEN_DOMCTL_CDF_iommu) ||
+         !rangeset_is_empty(d->iomem_caps) ||
+         !rangeset_is_empty(d->arch.ioport_caps) )
+        disallow &= ~PAGE_CACHE_ATTRS;
+
+    return disallow;
+}
 
 static s8 __read_mostly opt_mmio_relax;
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 17 16:14:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 16:14:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760076.1169800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU7IP-0007js-Uf; Wed, 17 Jul 2024 16:14:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760076.1169800; Wed, 17 Jul 2024 16: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 1sU7IP-0007jb-Pb; Wed, 17 Jul 2024 16:14:25 +0000
Received: by outflank-mailman (input) for mailman id 760076;
 Wed, 17 Jul 2024 16: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=9rux=OR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sU7IP-0007cd-0C
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 16:14:25 +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 a1116879-4457-11ef-8776-851b0ebba9a2;
 Wed, 17 Jul 2024 18:14:22 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-59f9f59b88cso2467408a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 09:14:22 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59ff76e9851sm2064067a12.46.2024.07.17.09.14.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Jul 2024 09:14: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: a1116879-4457-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721232862; x=1721837662; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J4qyb2Q8pmTavMu8lP6BG6l66WhcSIyplW6y2Sr0GR4=;
        b=ic+RTZsqos+QiI6gFCh77lXOKO4U/BHanCnMGFShOpITYfZIx15E1MgN/pkHosgkbQ
         NOHt78rlCa+hVG0tNz9DPIFAIs7fok32wESN0XJhHiYFSvskIrHgnXcLln8WDzqNQxNN
         r+rGe2DwGnxL17f7eJCY1kESKgqn98mJDnYoU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721232862; x=1721837662;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=J4qyb2Q8pmTavMu8lP6BG6l66WhcSIyplW6y2Sr0GR4=;
        b=SB6L02hIbddP1Yec2gxhQA0de6MBV5LCOvY9ih4kR5ekqx9zUtXRE3X8UDQWaUsdFS
         eTetuGPFU6eVY8VUNdwR/kuZSgArON1qkkut2kMNIV3zD+nWrSDTL1ZdZPYolfSrNxCX
         Skcw3WPFHPcOTfvj/hbinUO4x72l+1a6SqWs1Vb9OPu+IKZadUeB8CuDVMwo1qfpxMFV
         H+jpKScvEjy/sugMClUQ4dc1Bg327uv30Mey5O/q6Et2iRRGmuc3ZYilEjBrbF5iDvEY
         jxDTE97hRYM3IF7IW/RImTAlhVNbdA44Q4nnE7RlgUIE7gUP9NMJDgAgJTKeHeWMqZHN
         WoOQ==
X-Gm-Message-State: AOJu0YxiHmsAJUrt6Eb+HmNOO+rxF3mjz4iLvFgFmzBdq7uH5w8M9+bk
	6DC9Csv9p0qZZJY12T3N9BQLaNgmqUhyl4nbruXH91H+gcVkEEiakojti5mb75B7bZPRYV+WuuP
	S
X-Google-Smtp-Source: AGHT+IGIvS2ShxY2WkKbLfsrMI5Fza3y7YZ3JTKjaqhBi9LN2oyOYTXmNB6tdsxWF3bwKIAe23gX0w==
X-Received: by 2002:a50:d5de:0:b0:585:4048:129a with SMTP id 4fb4d7f45d1cf-5a05ce11c37mr1509174a12.31.1721232861656;
        Wed, 17 Jul 2024 09:14: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 2/3] x86/mm: Move base_disallow_mask into __ro_after_init
Date: Wed, 17 Jul 2024 17:14:14 +0100
Message-Id: <20240717161415.3586195-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240717161415.3586195-1-andrew.cooper3@citrix.com>
References: <20240717161415.3586195-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

base_disallow_mask is calculated once in arch_init_memory() and never changes
thereafter.  Write-protect it at runtime.

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

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 0ecea0f707b2..95795567f2a5 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -150,7 +150,8 @@ bool __read_mostly machine_to_phys_mapping_valid;
 
 struct rangeset *__read_mostly mmio_ro_ranges;
 
-static uint32_t base_disallow_mask;
+static uint32_t __ro_after_init base_disallow_mask;
+
 /* Global bit is allowed to be set on L1 PTEs. Intended for user mappings. */
 #define L1_DISALLOW_MASK ((base_disallow_mask | _PAGE_GNTTAB) & ~_PAGE_GLOBAL)
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 17 16:14:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 16:14:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760074.1169783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU7IN-0007Ru-Eg; Wed, 17 Jul 2024 16:14:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760074.1169783; Wed, 17 Jul 2024 16:14:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU7IN-0007Rn-BW; Wed, 17 Jul 2024 16:14:23 +0000
Received: by outflank-mailman (input) for mailman id 760074;
 Wed, 17 Jul 2024 16:14:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9rux=OR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sU7IL-0007Rh-P7
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 16:14:21 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9fb4d943-4457-11ef-bbfd-fd08da9f4363;
 Wed, 17 Jul 2024 18:14:20 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2eec7e43229so83924811fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 09:14:20 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59ff76e9851sm2064067a12.46.2024.07.17.09.14.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Jul 2024 09:14: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: 9fb4d943-4457-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721232859; x=1721837659; 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=UXA6QrD3xHjJtzIwncrDGn0PWAnlyvZ6x+VH3Zav/X0=;
        b=e5u6xKxAl5X7hvXYH2p7wBaxvVP3pY/SZJEY9P/XjgryXW0oQ63OFPl17alG18sYa3
         sqV/XdI8qKkH7zUUfiym+JBelY8YQa0Am90CjyNIreB4HwlE0J9VwSYMxjFrMgcAnA8E
         j4NgmQUr0Vq/mJZwF0YxdxITy72iY6y9RZg/c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721232859; x=1721837659;
        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=UXA6QrD3xHjJtzIwncrDGn0PWAnlyvZ6x+VH3Zav/X0=;
        b=pRaz4vtqtlsSlolArce+y0QuMjVtqHS37ZXSzf2BZxAfbXk2Rbj/ywJxPZuOPkYeG6
         RsZ9735fqKsAkDTZpjZTc08hshUHkMNMze2zl4OmukfHCjqjFSJDU3l3bwbUTMqrh+yJ
         jLsRX5R04K0wBMneX1grjwMjCHxjRZFL+Omf0HpHjKzprBx8EZ0lvVfK1YDFwLy3l6or
         QyzW12YfsvX+Dr222bCkxxRvnNcpPrjZNX8VUVMmXw6VEXTSUMh1pOUg+7ls/rttVUtx
         +Ka5MkI254w4rz92AhMRq3NW13toJ1nF+zUzFZu0fgAmSPD37MGgdkorLyP1XlfHTttR
         Yurg==
X-Gm-Message-State: AOJu0YwK342aTbi1Gde/hbNCkqqVMUwAxl+EMukTEyVDCTrRExTtcffp
	8D6KKOigXlyYK3tBxAFyZwfeXn9EiBRWFoUP3vx3H5v1uRys0Pb0y6k4fDy+y0LrHETRKvGwhU8
	R
X-Google-Smtp-Source: AGHT+IHSDcckPhYQFs0fD4DFzuqezap2B2GW7+Hyd718d+M7vkDtkkPCOp4bXNh4axPoe0+B3nXPRw==
X-Received: by 2002:a2e:9281:0:b0:2ee:6cda:6380 with SMTP id 38308e7fff4ca-2eefd08f09fmr14801631fa.18.1721232859416;
        Wed, 17 Jul 2024 09:14: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>
Subject: [PATCH for-4.20 0/3] XSA-402 followup
Date: Wed, 17 Jul 2024 17:14:12 +0100
Message-Id: <20240717161415.3586195-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The start of the XSA-402 followup.  Better late than never.

Andrew Cooper (3):
  x86/mm: Drop duplicate l1_disallow_mask() calls
  x86/mm: Move base_disallow_mask into __ro_after_init
  x86/mm: Simplify/correct l1_disallow_mask()

 xen/arch/x86/mm.c | 36 +++++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 15 deletions(-)

-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 17 16:14:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 16:14:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760075.1169793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU7IP-0007gW-L1; Wed, 17 Jul 2024 16:14:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760075.1169793; Wed, 17 Jul 2024 16: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 1sU7IP-0007gP-IA; Wed, 17 Jul 2024 16:14:25 +0000
Received: by outflank-mailman (input) for mailman id 760075;
 Wed, 17 Jul 2024 16: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=9rux=OR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sU7IO-0007cd-BF
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 16:14: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 a0c20ec2-4457-11ef-8776-851b0ebba9a2;
 Wed, 17 Jul 2024 18:14:22 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5a156557029so72866a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 17 Jul 2024 09:14:22 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59ff76e9851sm2064067a12.46.2024.07.17.09.14.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 17 Jul 2024 09:14:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0c20ec2-4457-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721232861; x=1721837661; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5Hs4wrdJtk3VapaPKuUdheZRErHwrsf5hCAxRfp1mf8=;
        b=Lq7Rm/vx7l3PADnhtuZ4Ii4edFz0JO5DoDLVNiY30x1Dcgg9hfIuoHV+NnOjTlkCFI
         Kc4fYYul2JjqVCloBh/W9jSJQ3XuPsT0FFHl6B1BOnaWJLR85fL8v30OLbT39Yc66jSH
         Q76pBOe/yOGwjoOFLAsHltJXN9otALGhFUohA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721232861; x=1721837661;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=5Hs4wrdJtk3VapaPKuUdheZRErHwrsf5hCAxRfp1mf8=;
        b=UtNZayiL7Lv1J2SFBjxKtnldR1i9i4jYnb9IjvVRnWN6ZEwWPUVPkfJPbamtk0MK/O
         orrDcQdOlcz321M/gUhfVrJQdpO3vog9+roog6499OoAouRaMcMuSm/Z/r7RR9arjk5q
         UK3USfCbVJC7mwsUBBc6BiNZD8miIl5V64NMve59kio7o9R2dNFjT4YX3hFuXMYJo0pU
         LdaK58RS17PLqAWPhp8il11P+f40DsblnkiWcNo8PlGOMJ8B0OBnZSZd98uY/wNYNghj
         4ZsrEej21Zzk4C94hGiEaVGrtFXx0FLvcSBKxg/TDjZb9ocjPN3l4TRHea5lUaKHtM5Q
         dJbQ==
X-Gm-Message-State: AOJu0YxODtR/2qvjqHPcoovk2UECgfQfhlmMAlmcdY78WpBQ4/sjyFpv
	43BDSHhMQ09mo5kH/5jiYsvZ2m9PyPq5Fku6jxLubD6V4l53TatXqx5Jq6AMzToRkWkU6Kkqu+P
	s
X-Google-Smtp-Source: AGHT+IE2A+aNCiABEOLDj6cm/ACujRFbXC9ad5IBBn1C1Q8iC5+GOl71h4QF9IdCDJYgfyBjlsI8TQ==
X-Received: by 2002:a05:6402:2547:b0:58e:3501:5c25 with SMTP id 4fb4d7f45d1cf-5a05b9db216mr1759950a12.13.1721232861013;
        Wed, 17 Jul 2024 09:14: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 1/3] x86/mm: Drop duplicate l1_disallow_mask() calls
Date: Wed, 17 Jul 2024 17:14:13 +0100
Message-Id: <20240717161415.3586195-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240717161415.3586195-1-andrew.cooper3@citrix.com>
References: <20240717161415.3586195-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Even in release builds, gdprintk() evalues its parameters for side effects,
and l1_disallow_mask() is full of them.

Calculate the disallow mask once and reuse the variable.  This improves code
generation in release builds:

  add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-207 (-207)
  Function                                     old     new   delta
  mod_l1_entry                                1947    1860     -87
  get_page_from_l1e                           1391    1271    -120

Also, render the bad flags message with a 0x prefix.

No practical change.

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

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 648d6dd475ba..0ecea0f707b2 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -842,7 +842,7 @@ get_page_from_l1e(
 {
     unsigned long mfn = l1e_get_pfn(l1e);
     struct page_info *page = mfn_to_page(_mfn(mfn));
-    uint32_t l1f = l1e_get_flags(l1e);
+    uint32_t l1f = l1e_get_flags(l1e), disallow;
     struct vcpu *curr = current;
     struct domain *real_pg_owner;
     bool write, valid;
@@ -853,10 +853,10 @@ get_page_from_l1e(
         return 0;
     }
 
-    if ( unlikely(l1f & l1_disallow_mask(l1e_owner)) )
+    disallow = l1_disallow_mask(l1e_owner);
+    if ( unlikely(l1f & disallow) )
     {
-        gdprintk(XENLOG_WARNING, "Bad L1 flags %x\n",
-                 l1f & l1_disallow_mask(l1e_owner));
+        gdprintk(XENLOG_WARNING, "Bad L1 flags %#x\n", l1f & disallow);
         return -EINVAL;
     }
 
@@ -2155,11 +2155,12 @@ static int mod_l1_entry(l1_pgentry_t *pl1e, l1_pgentry_t nl1e,
     if ( l1e_get_flags(nl1e) & _PAGE_PRESENT )
     {
         struct page_info *page = NULL;
+        uint32_t disallow = l1_disallow_mask(pt_dom);
 
-        if ( unlikely(l1e_get_flags(nl1e) & l1_disallow_mask(pt_dom)) )
+        if ( unlikely(l1e_get_flags(nl1e) & disallow) )
         {
-            gdprintk(XENLOG_WARNING, "Bad L1 flags %x\n",
-                    l1e_get_flags(nl1e) & l1_disallow_mask(pt_dom));
+            gdprintk(XENLOG_WARNING, "Bad L1 flags %#x\n",
+                     l1e_get_flags(nl1e) & disallow);
             return -EINVAL;
         }
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 17 17:05:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 17:05:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760106.1169824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU85H-0008Mw-V6; Wed, 17 Jul 2024 17:04:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760106.1169824; Wed, 17 Jul 2024 17:04:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU85H-0008Mp-SF; Wed, 17 Jul 2024 17:04:55 +0000
Received: by outflank-mailman (input) for mailman id 760106;
 Wed, 17 Jul 2024 17:04:54 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU85G-0008Mf-QM; Wed, 17 Jul 2024 17:04:54 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU85G-00062k-Mz; Wed, 17 Jul 2024 17:04:54 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU85G-0005C7-C1; Wed, 17 Jul 2024 17:04:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sU85G-0000Qc-BY; Wed, 17 Jul 2024 17:04: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=rvNfAihYF2gq8yMX7jN9dRBBQ/LOMfc5Rz4qGVoNOs4=; b=13BB9DZFtNbhRF41G7PIg82p/5
	ADprwobSUN3xF/Zd+xp8H7727LEezb6YEoIR2tR4ACEBuVeEEEPEdIxsy9s9Xy3+UZdINx/sDpdTs
	UhpChzTiGqxWaaWDiS4tH4hZJb7jKOB71ru9WbB36sIlF4VHjcbfdMHrUD3dKfsWIuM8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186830-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186830: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=57338346f29cea7b183403561bdc5f407163b846
X-Osstest-Versions-That:
    xen=1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 17:04:54 +0000

flight 186830 xen-unstable real [real]
flight 186842 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186830/
http://logs.test-lab.xenproject.org/osstest/logs/186842/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186842-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186800
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186812
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186812
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186812
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186812
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186812
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  57338346f29cea7b183403561bdc5f407163b846
baseline version:
 xen                  1ddc8c1bad93aa6cbfe616dd72333460c47f96c9

Last test of basis   186812  2024-07-16 01:53:42 Z    1 days
Testing same since   186830  2024-07-17 00:36:57 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   1ddc8c1bad..57338346f2  57338346f29cea7b183403561bdc5f407163b846 -> master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 17:50:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 17:50:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760136.1169850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU8mv-0006TZ-LS; Wed, 17 Jul 2024 17:50:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760136.1169850; Wed, 17 Jul 2024 17:50:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU8mv-0006T1-Hi; Wed, 17 Jul 2024 17:50:01 +0000
Received: by outflank-mailman (input) for mailman id 760136;
 Wed, 17 Jul 2024 17:50:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU8mu-0006Q6-6c; Wed, 17 Jul 2024 17:50:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU8mu-0006yP-4H; Wed, 17 Jul 2024 17:50:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU8mt-0006PR-DF; Wed, 17 Jul 2024 17:49:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sU8mt-00057Q-Ck; Wed, 17 Jul 2024 17:49: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=n51JFqD0oi+7Ny7rzkt1L0cbJWL/md7Ip566dzepXig=; b=4Gz3nBE6zSfaBmXBNTAsMxpvEo
	/dFnbCzj5cqGs7LYSmNxowzSRSxDGve2iIb8m+G5ZM5AL7cBA2y1QIOqMaaXn1H4kF/EOxPmoOZ7s
	JVnIrNnQdG2BwP+rXnhATxHAEyFpooI/SHuAhbFsBLk+JMOiBVuj+uVreCVMlJloaoDY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186843-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186843: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=23d3fc056d37039ffe1bd4461492a1e226c779e5
X-Osstest-Versions-That:
    ovmf=dd58d1227c102ad4a799002f16b3a8c796d7d7cc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 17:49:59 +0000

flight 186843 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186843/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 23d3fc056d37039ffe1bd4461492a1e226c779e5
baseline version:
 ovmf                 dd58d1227c102ad4a799002f16b3a8c796d7d7cc

Last test of basis   186841  2024-07-17 13:11:10 Z    0 days
Testing same since   186843  2024-07-17 16:11:08 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  levi.yun <yeoreum.yun@arm.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   dd58d1227c..23d3fc056d  23d3fc056d37039ffe1bd4461492a1e226c779e5 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 18:17:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 18:17:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760146.1169859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU9D8-0001sR-Kd; Wed, 17 Jul 2024 18:17:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760146.1169859; Wed, 17 Jul 2024 18:17:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sU9D8-0001sK-Hr; Wed, 17 Jul 2024 18:17:06 +0000
Received: by outflank-mailman (input) for mailman id 760146;
 Wed, 17 Jul 2024 18:17:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU9D7-0001sA-Gn; Wed, 17 Jul 2024 18:17:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU9D7-0007ZQ-B4; Wed, 17 Jul 2024 18:17:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sU9D7-0007Mm-23; Wed, 17 Jul 2024 18:17:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sU9D7-0004dy-1W; Wed, 17 Jul 2024 18: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Y8qiPFuDf8G+/YKt78m3VohoIFALSdA23+QVHdmNJ+Y=; b=d664K9M1r3BOZhcBGtHSTvXke6
	ebfCnSo5e/VFN25D2/88LQOjgN5JLGyxskZQ8XudkqRBa7K9Cv6ZT7vtg+8WAjp4aatxcY4TP0946
	SvpQ8UbLE09CO3LiDH+VFCoqfwAWELkvz4rmQ5lspDZpolRPyKe5Jx5BcJ9UIxjZz2h0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186833-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186833: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=239669049d9904e5e8da2d8b2a38d4d927a167e9
X-Osstest-Versions-That:
    libvirt=fcf6beaf3dc435c1fe95f26605addc1d72e3e656
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 18:17:05 +0000

flight 186833 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186833/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186814
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              239669049d9904e5e8da2d8b2a38d4d927a167e9
baseline version:
 libvirt              fcf6beaf3dc435c1fe95f26605addc1d72e3e656

Last test of basis   186814  2024-07-16 04:18:47 Z    1 days
Testing same since   186833  2024-07-17 04:18:45 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Martin Kletzander <mkletzan@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   fcf6beaf3d..239669049d  239669049d9904e5e8da2d8b2a38d4d927a167e9 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 19:38:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 19:38:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760160.1169869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUATO-0002qK-C0; Wed, 17 Jul 2024 19:37:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760160.1169869; Wed, 17 Jul 2024 19: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 1sUATO-0002qD-9P; Wed, 17 Jul 2024 19:37:58 +0000
Received: by outflank-mailman (input) for mailman id 760160;
 Wed, 17 Jul 2024 19:37:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUATM-0002q3-JL; Wed, 17 Jul 2024 19:37:56 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUATM-0000uF-Gs; Wed, 17 Jul 2024 19:37:56 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUATM-0003DT-8K; Wed, 17 Jul 2024 19:37:56 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUATM-0000xj-7t; Wed, 17 Jul 2024 19:37:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=tfN8TCNDAnXn2PfU9eGc9wfe3XtYf8iCMaSxxVq5Nso=; b=EKhW5HUrV1EAOL6BPYeE977KUI
	PjNqUVEgsu8y1gTRRlzQmfg7eX8Iyu1Nq5Hi7bIBcD8NxRIxKssjxc11t15+0+T+qVaS+MUMPVz7I
	2j8Mw651TnYwOkGt+PSuIiGWxmPo6ar9eg45fH3C6ahpYFYirsW32E7KTypX35GAblYg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186845-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186845: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=11c50d6ca10a1410c2db187078fa7139e29e3042
X-Osstest-Versions-That:
    ovmf=23d3fc056d37039ffe1bd4461492a1e226c779e5
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 19:37:56 +0000

flight 186845 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186845/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 11c50d6ca10a1410c2db187078fa7139e29e3042
baseline version:
 ovmf                 23d3fc056d37039ffe1bd4461492a1e226c779e5

Last test of basis   186843  2024-07-17 16:11:08 Z    0 days
Testing same since   186845  2024-07-17 18:13:04 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jason1 Lin <jason1.lin@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   23d3fc056d..11c50d6ca1  11c50d6ca10a1410c2db187078fa7139e29e3042 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 21:10:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 21:10:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760171.1169880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUBuw-00059R-V1; Wed, 17 Jul 2024 21:10:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760171.1169880; Wed, 17 Jul 2024 21: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 1sUBuw-00059K-RT; Wed, 17 Jul 2024 21:10:30 +0000
Received: by outflank-mailman (input) for mailman id 760171;
 Wed, 17 Jul 2024 21:10:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUBuv-00059A-5h; Wed, 17 Jul 2024 21:10:29 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUBuv-0002i9-3N; Wed, 17 Jul 2024 21:10:29 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUBuu-0006o9-Qw; Wed, 17 Jul 2024 21:10:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUBuu-00089g-QU; Wed, 17 Jul 2024 21:10:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=omlj9BJurdVMnifToLLQBTJJiMc2iAc1iWpH8dX6I4I=; b=cigpGSgfLYNGqtUz90exGn0DEk
	Nr4Oku7XbJt3YlOn8f+qZIq61nZW1WpHebDi9znSq5iAGE1Gf8vYZmcfc3e5pHJTXi3tW4i2UadFf
	3M6t3igngWOgOhH0HeTFu10FLTuCCuL+r5ZLaedD8P2MoT1mv+N/medZ/NmNpJPdRAj8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186846-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186846: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=0adc868b362873eb7c749f3ac6c38f9e293af10d
X-Osstest-Versions-That:
    ovmf=11c50d6ca10a1410c2db187078fa7139e29e3042
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 21:10:28 +0000

flight 186846 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186846/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 0adc868b362873eb7c749f3ac6c38f9e293af10d
baseline version:
 ovmf                 11c50d6ca10a1410c2db187078fa7139e29e3042

Last test of basis   186845  2024-07-17 18:13:04 Z    0 days
Testing same since   186846  2024-07-17 19:43:02 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dongyan Qian <dongyan0314@gmail.com>
  Dongyan Qian <qiandongyan@loongson.cn>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   11c50d6ca1..0adc868b36  0adc868b362873eb7c749f3ac6c38f9e293af10d -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 23:02:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 23:02:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760180.1169889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUDfN-0000NR-TA; Wed, 17 Jul 2024 23:02:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760180.1169889; Wed, 17 Jul 2024 23:02: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 1sUDfN-0000NK-Qf; Wed, 17 Jul 2024 23:02:33 +0000
Received: by outflank-mailman (input) for mailman id 760180;
 Wed, 17 Jul 2024 23: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=bXng=OR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sUDfL-0000NE-W5
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 23:02:32 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f91c70a-4490-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 01:02:23 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 362BBCE1721;
 Wed, 17 Jul 2024 23:02:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D68FC2BD10;
 Wed, 17 Jul 2024 23:02: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: 9f91c70a-4490-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721257337;
	bh=t25iubVS0ucldU0bbE0D+NW2nHh93NDfzG7wm2Yvti0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fCq9XLoxF0Rjkpl6K7w4yt8/RUm2e/qZKkuT/ltLkaYFvtsGpleygMWPSXmwhTrGz
	 SR7wvCIAmBAj3DqLqoHqT3WDHS4P2ajQcx+978MPEN19GDRAB0zfZbwYWT2V8L8R7j
	 GWXwWd4mr1Ijop53cmcpYIDQGohdcajkReeMg6yr0G4hPtA+LERu2WViv3+jilD70D
	 aAdZUjUI1vtixf3JrkGjgNsuoMp5ImOlPlUxQPlp5em3caaPiQYVk9Oiuo0zBgPxa2
	 yKLZxNpIz5nCx4uWQQp3/XKt3iW/ciop+uG8vU7ge4qAwNSFN130qd5jm1N2KPqWn3
	 wPBnrYoreIWyA==
Date: Wed, 17 Jul 2024 16:02:15 -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>, 
    Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
In-Reply-To: <013c6cc2-eddf-4beb-b115-01aaaa71faa6@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407171601540.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com> <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com> <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
 <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com> <alpine.DEB.2.22.394.2407151736530.3635@ubuntu-linux-20-04-desktop> <4893a89d-9ef5-4d86-94b0-042e88588439@suse.com> <alpine.DEB.2.22.394.2407161713010.3635@ubuntu-linux-20-04-desktop>
 <013c6cc2-eddf-4beb-b115-01aaaa71faa6@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, 17 Jul 2024, Jan Beulich wrote:
> On 17.07.2024 02:20, Stefano Stabellini wrote:
> > On Tue, 16 Jul 2024, Jan Beulich wrote:
> >> On 16.07.2024 02:43, Stefano Stabellini wrote:
> >>> On Mon, 15 Jul 2024, Jan Beulich wrote:
> >>>> On 13.07.2024 00:38, Stefano Stabellini wrote:
> >>>>> On Wed, 3 Jul 2024, Jan Beulich wrote:
> >>>>>> I further have to note that, as indicated during the earlier discussion,
> >>>>>> I still cannot see how occasional ambiguity is going to be dealt with.
> >>>>>> IOW from the rules above two different headers could still end up with
> >>>>>> the same guard identifier.
> >>>>>
> >>>>> Maybe something like this?
> >>>>>
> >>>>> "In the event of naming collisions, exceptions to the coding style may
> >>>>> be made at the discretion of the contributor and maintainers."
> >>>>
> >>>> Hmm, maybe I wasn't clear enough then. My take is that the scheme should
> >>>> simply not allow for possible collisions. Neither the contributor nor the
> >>>> reviewer may spot such a collision, and it may therefore take until the
> >>>> first full scan that one is actually noticed. Which I consider too late
> >>>> in the process, even if we already were at the point where commits were
> >>>> checked pre-push.
> >>>
> >>> Looking at the proposal, copy/pasted here for convenience:
> >>>
> >>> - private headers -> <dir>_<filename>_H
> >>> - asm-generic headers -> ASM_GENERIC_<filename>_H
> >>>     - #ifndef ASM_GENERIC_X86_PERCPU_H
> >>>       #define ASM_GENERIC_X86_PERCPU_H
> >>>       //...
> >>>       #endif /* ASM_GENERIC_X86_PERCPU_H */
> >>> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
> >>>     - #ifndef ASM_X86_DOMAIN_H
> >>>       #define ASM_X86_DOMAIN_H
> >>>       //...
> >>>       #endif /* ASM_X86_DOMAIN_H */
> >>> - xen/include/xen/<filename>.h -> XEN_<filename>_H
> >>> - xen/include/xen/<subdir>/<filename>.h -> XEN_<subdir>_<filename>_H
> >>>
> >>>
> >>> The only possibility for collision that I can see is from the first
> >>> point:
> >>>
> >>> - private headers -> <dir>_<filename>_H
> >>
> >> I don't think this is the only possibility of collisions. The <subdir>_<filename>
> >> parts can similarly cause problems if either of the two involved names contains
> >> e.g. a dash (which would need converting to an underscore) or an underscore. To
> >> avoid this, the name separators (slashes in the actual file names) there may need
> >> representing by double underscores.
> > 
> > I am OK with you two underscores as name separator (slashes in the
> > actual file names). Would you do it for all levels like this?
> > 
> > - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
> > - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
> > - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> > 
> > 
> > I think it is better than the below:
> > 
> > - arch/arm/arm64/lib/something.h -> ARM_ARM64__LIB__SOMETHING_H
> > - arch/arm/arm32/lib/something.h -> ARM_ARM32__LIB__SOMETHING_H
> > - arch/x86/lib/something.h -> X86_LIB__SOMETHING_H
> 
> Hmm, maybe it's indeed better to do it entirely uniformly then.


Do we have agreement on the naming convention then? 


- private headers -> <dir>__<filename>__H
    - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
    - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
    - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H

- asm-generic headers -> ASM_GENERIC_<filename>_H
    - include/asm-generic/percpu.h -> ASM_GENERIC_X86_PERCPU_H

- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
    - arch/x86/include/asm/domain.h -> ASM_X86_DOMAIN_H

- include/xen -> XEN_<filename>_H
    - include/xen/percpu.h -> XEN_PERCPU_H


Or do you prefer the double underscore __  in all cases?


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 23:14:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 23:14:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760187.1169900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUDrJ-00021b-VS; Wed, 17 Jul 2024 23:14:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760187.1169900; Wed, 17 Jul 2024 23:14:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUDrJ-00021U-RG; Wed, 17 Jul 2024 23:14:53 +0000
Received: by outflank-mailman (input) for mailman id 760187;
 Wed, 17 Jul 2024 23:14:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUDrJ-00021K-A7; Wed, 17 Jul 2024 23:14:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUDrJ-000583-4m; Wed, 17 Jul 2024 23:14:53 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUDrI-0001Xu-Pd; Wed, 17 Jul 2024 23:14:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUDrI-0005Uq-P8; Wed, 17 Jul 2024 23:14:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=KJkbu4ak2xLzfJi04NF218fHOptOgMPn7J8gY+S4fkE=; b=YdOB97K9IBUTBGxG82q+Jstuf7
	6ejxUoH9d7cOj0AWj/+sImG3QcHpOI7BwdaVVOV7iUjSuUmoy+MZDmgb77GY+nCQPbfYvcW+jbgSv
	+OPSe4echqOmFMDLLB/r/Ij/noNlujNF+elVR7SUW2/O08TTxa1QslO+/ZwrxbsMhxdo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186847-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186847: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=cee9d1b16bdcd7fe8bad6b39fe18af0a15941ca4
X-Osstest-Versions-That:
    ovmf=0adc868b362873eb7c749f3ac6c38f9e293af10d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 17 Jul 2024 23:14:52 +0000

flight 186847 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186847/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 cee9d1b16bdcd7fe8bad6b39fe18af0a15941ca4
baseline version:
 ovmf                 0adc868b362873eb7c749f3ac6c38f9e293af10d

Last test of basis   186846  2024-07-17 19:43:02 Z    0 days
Testing same since   186847  2024-07-17 21:14:42 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Kun Qin <kun.qin@microsoft.com>
  Kun Qin <kuqin@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   0adc868b36..cee9d1b16b  cee9d1b16bdcd7fe8bad6b39fe18af0a15941ca4 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 17 23:24:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 17 Jul 2024 23:24:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760196.1169910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUE08-0003dz-P5; Wed, 17 Jul 2024 23:24:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760196.1169910; Wed, 17 Jul 2024 23: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 1sUE08-0003ds-MQ; Wed, 17 Jul 2024 23:24:00 +0000
Received: by outflank-mailman (input) for mailman id 760196;
 Wed, 17 Jul 2024 23:23: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=bXng=OR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sUE07-0003dm-ON
 for xen-devel@lists.xenproject.org; Wed, 17 Jul 2024 23:23:59 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2b9da50-4493-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 01:23:57 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 289D7CE179C;
 Wed, 17 Jul 2024 23:23:54 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 356BBC2BD10;
 Wed, 17 Jul 2024 23:23: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: a2b9da50-4493-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721258633;
	bh=41zNvG9hfN+rh0WlabWq2O5krpbBdzFTAuP1+lgMr8o=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=HtfeIvmTp9iv3ZwJrDqRhg2Ii3lSzJk863Q/YvQ83abSCB6AiboLRVnacUGjIOZjE
	 V1VXUfMr2f1mlig7c6Btz48Kp/u+kLRicWXns6k4EgPOC7AkBssHx6XpeH3QX7rKbO
	 BzcmD6RVAy4VecD6Loij/GeUSZuVAtANrqp0icTbxYUIYif/gNlMqet+VNVJlqIiSs
	 PZ+lPR27wjxMtmW5n5L+2B7Qskh90q+dcxe+hxLQEGFblFinBx9FrrnuTnc1faOU1Z
	 DLC6WAPqieYAN0kBG6QhHklTI0tZVrsqmMXjZiinUH72OLxtHjAjogyr7r5eBjeje1
	 4Rl97PUa6F4mA==
Date: Wed, 17 Jul 2024 16:23:50 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [XEN PATCH v4 8/9] x86/mm: add defensive return
In-Reply-To: <de98fe0d6b36383b6eb8d1a9b077b0b387ae0848.1721050709.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407171623430.3635@ubuntu-linux-20-04-desktop>
References: <cover.1721050709.git.federico.serafini@bugseng.com> <de98fe0d6b36383b6eb8d1a9b077b0b387ae0848.1721050709.git.federico.serafini@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 15 Jul 2024, Federico Serafini wrote:
> Add defensive return statement at the end of an unreachable
> default case. Other than improve safety, this meets the requirements
> to deviate a violation of MISRA C Rule 16.3: "An unconditional `break'
> statement shall terminate every switch-clause".
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


> ---
> No changes from v3, further feedback on this thread would be appreciated:
> https://lists.xenproject.org/archives/html/xen-devel/2024-07/msg00474.html
> ---
>  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 648d6dd475..a1e28b3360 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -916,6 +916,7 @@ get_page_from_l1e(
>                  return 0;
>              default:
>                  ASSERT_UNREACHABLE();
> +                return -EPERM;
>              }
>          }
>          else if ( l1f & _PAGE_RW )
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 00:13:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 00:13:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760202.1169920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUEle-0001xC-BL; Thu, 18 Jul 2024 00:13:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760202.1169920; Thu, 18 Jul 2024 00: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 1sUEle-0001x5-8W; Thu, 18 Jul 2024 00:13:06 +0000
Received: by outflank-mailman (input) for mailman id 760202;
 Thu, 18 Jul 2024 00:13:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUElc-0001wv-Tx; Thu, 18 Jul 2024 00:13:04 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUElc-0006nS-QO; Thu, 18 Jul 2024 00:13:04 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUElc-0002uo-9q; Thu, 18 Jul 2024 00:13:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUElc-0005Lm-9G; Thu, 18 Jul 2024 00:13:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Db3Dg+FVbIkfQMcb0/5JYZca8Jo18di2S0MJjqUTp00=; b=WtGR73RB4/RjcTc3ZDbxeyrsp8
	awiye1H9hdbNnXNpLho1KMWI9da3pxchG770YsNzSh8z7hTP3Olc/XakQ81PkTmHvsvVSB2zgt3vu
	nW7PstFiUgxM5SwaP/CDuplH68cAhSyM1nJU34TkZdL6FynufJioCgDze1TQc2RtYb3Q=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186838-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.16-testing test] 186838: regressions - FAIL
X-Osstest-Failures:
    xen-4.16-testing:build-amd64-prev:xen-build:fail:regression
    xen-4.16-testing:build-i386-prev:xen-build:fail:regression
    xen-4.16-testing:test-amd64-amd64-migrupgrade:build-check(1):blocked:nonblocking
    xen-4.16-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9fe713202e4ef4ff0264d6ecfaea26bc4e50705b
X-Osstest-Versions-That:
    xen=d0e8f8ffbb19b5df5f767328baeb54c069b08e6a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Jul 2024 00:13:04 +0000

flight 186838 xen-4.16-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186838/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-prev              6 xen-build                fail REGR. vs. 185867
 build-i386-prev               6 xen-build                fail REGR. vs. 185867

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-migrupgrade  1 build-check(1)               blocked  n/a
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 185867
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 185867
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  9fe713202e4ef4ff0264d6ecfaea26bc4e50705b
baseline version:
 xen                  d0e8f8ffbb19b5df5f767328baeb54c069b08e6a

Last test of basis   185867  2024-04-29 08:38:32 Z   79 days
Testing same since   186818  2024-07-16 12:40:22 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             fail    
 build-i386-prev                                              fail    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 9fe713202e4ef4ff0264d6ecfaea26bc4e50705b
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Jul 16 14:16:27 2024 +0200

    x86/IRQ: avoid double unlock in map_domain_pirq()
    
    Forever since its introduction the main loop in the function dealing
    with multi-vector MSI had error exit points ("break") with different
    properties: In one case no IRQ descriptor lock is being held.
    Nevertheless the subsequent error cleanup path assumed such a lock would
    uniformly need releasing. Identify the case by setting "desc" to NULL,
    thus allowing the unlock to be skipped as necessary.
    
    This is CVE-2024-31143 / XSA-458.
    
    Coverity ID: 1605298
    Fixes: d1b6d0a02489 ("x86: enable multi-vector MSI")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 57338346f29cea7b183403561bdc5f407163b846
    master date: 2024-07-16 14:09:14 +0200
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 02:19:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 02:19:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760219.1169951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUGjy-00021F-EO; Thu, 18 Jul 2024 02:19:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760219.1169951; Thu, 18 Jul 2024 02: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 1sUGjy-000218-A4; Thu, 18 Jul 2024 02:19:30 +0000
Received: by outflank-mailman (input) for mailman id 760219;
 Thu, 18 Jul 2024 02:19:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUGjx-00020x-3m; Thu, 18 Jul 2024 02:19:29 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUGjx-00044X-1M; Thu, 18 Jul 2024 02:19:29 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUGjw-0006BS-LP; Thu, 18 Jul 2024 02:19:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUGjw-0004JK-L1; Thu, 18 Jul 2024 02:19: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=9LlmYUuvXUfi1jp43hRF7Z8u4SpQEiGt7+ucqNrap6k=; b=GBU+OCoS+MrjWlSccw4UKI0aCS
	p3rIAosrAHIiHKdy2YkbKwlZsKBl2yyNIG1BSHSGEmrwVIl87erI2NVuu6rbyLBQwFGAJyDlgLjWf
	vUzObQqnRq75tOTjAbPUu0v+sOEdmo+0Oa7JtpGVkwqJ2/GH7VRRGUNQ3scw9KJRdRzs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186844-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186844: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=57338346f29cea7b183403561bdc5f407163b846
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Jul 2024 02:19:28 +0000

flight 186844 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186844/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail in 186830 pass in 186844
 test-armhf-armhf-xl           8 xen-boot                   fail pass in 186830

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl         15 migrate-support-check fail in 186830 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 186830 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186830
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186830
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186830
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186830
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186830
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186830
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  57338346f29cea7b183403561bdc5f407163b846
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186844  2024-07-17 17:09:24 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 02:20:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 02:20:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760225.1169961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUGkp-0003Ny-MN; Thu, 18 Jul 2024 02:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760225.1169961; Thu, 18 Jul 2024 02:20: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 1sUGkp-0003Nr-JE; Thu, 18 Jul 2024 02:20:23 +0000
Received: by outflank-mailman (input) for mailman id 760225;
 Thu, 18 Jul 2024 02:20:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUGko-0003Nh-Nh; Thu, 18 Jul 2024 02:20:22 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUGko-00045L-Mj; Thu, 18 Jul 2024 02:20:22 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUGko-0006FW-Bd; Thu, 18 Jul 2024 02:20:22 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUGko-0004u0-B7; Thu, 18 Jul 2024 02:20:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=r/PPE+TfmE5BX1DsqvjAgc3QS6YMM0VS8e9qZYOqsf4=; b=ZA03byROGWsqfDm4L+PRgPONi8
	QQkZWnAo+6cIWV2zJCnMGuQoZ32Z/KYXThIImsXfJY1v9fXTFb3147UBRgdorPFxFvMb8CQCpDxWG
	azmYlI0NspGtHG50jLpi1vSHC1hHh89GSYt72PdBoS7H7wUeJ/8a3DfoMGwfjWLhoFBg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186848-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186848: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=62bf2aefc7d58288bb9e32c0c7fe2052c33101e9
X-Osstest-Versions-That:
    ovmf=cee9d1b16bdcd7fe8bad6b39fe18af0a15941ca4
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Jul 2024 02:20:22 +0000

flight 186848 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186848/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 62bf2aefc7d58288bb9e32c0c7fe2052c33101e9
baseline version:
 ovmf                 cee9d1b16bdcd7fe8bad6b39fe18af0a15941ca4

Last test of basis   186847  2024-07-17 21:14:42 Z    0 days
Testing same since   186848  2024-07-17 23:42:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   cee9d1b16b..62bf2aefc7  62bf2aefc7d58288bb9e32c0c7fe2052c33101e9 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 06:21:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 06:21:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760247.1169995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUKVo-0004MQ-Ts; Thu, 18 Jul 2024 06:21:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760247.1169995; Thu, 18 Jul 2024 06:21:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUKVo-0004MJ-Q1; Thu, 18 Jul 2024 06:21:08 +0000
Received: by outflank-mailman (input) for mailman id 760247;
 Thu, 18 Jul 2024 06:21: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=TiGH=OS=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sUKVo-0004Lv-3J
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 06:21:08 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9081611-44cd-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 08:21:04 +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 A5AEB21AE6;
 Thu, 18 Jul 2024 06:21: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 4D4CA1379D;
 Thu, 18 Jul 2024 06:21:03 +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 LnNfEU+0mGaGfAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 18 Jul 2024 06:21: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: e9081611-44cd-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721283663; 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=IZsuj30RepdbHrRngKm0/gc+colbM4Uy/bJMOVwbzVI=;
	b=HKjJ0PhFREtjhT54kYs6YZhvcuxQfuFZI1CmUcE/tBMB04/RA3QGLiDbv+Q/kHOSiquq5b
	Q2JgR8CjOKtKSW74OyCobBlkm+CmKis8gr8JJs6CiLH+2KRplb5DMPLOVkUD4I8gCFmyK7
	yl3xy1+oCYqtccoT5uO4Um5yCAJfews=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721283663; 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=IZsuj30RepdbHrRngKm0/gc+colbM4Uy/bJMOVwbzVI=;
	b=HKjJ0PhFREtjhT54kYs6YZhvcuxQfuFZI1CmUcE/tBMB04/RA3QGLiDbv+Q/kHOSiquq5b
	Q2JgR8CjOKtKSW74OyCobBlkm+CmKis8gr8JJs6CiLH+2KRplb5DMPLOVkUD4I8gCFmyK7
	yl3xy1+oCYqtccoT5uO4Um5yCAJfews=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org,
	kernel test robot <lkp@intel.com>
Subject: [PATCH] xen: fix multicall debug data referencing
Date: Thu, 18 Jul 2024 08:21:00 +0200
Message-ID: <20240718062100.5357-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
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)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	RCPT_COUNT_SEVEN(0.00)[11];
	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)[suse.com:email,intel.com:email];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -2.80
X-Spam-Level: 

The recent adding of multicall debug mixed up the referencing of
the debug data. A __percpu tagged pointer can't be initialized with a
plain pointer, so use another percpu variable for the pointer and set
it on each new cpu via a function.

Fixes: 942d917cb92a ("xen: make multicall debug boot time selectable")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202407151106.5s7Mnfpz-lkp@intel.com/
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/multicalls.c | 19 ++++++++++++-------
 arch/x86/xen/smp_pv.c     |  1 +
 arch/x86/xen/xen-ops.h    |  3 +++
 3 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/arch/x86/xen/multicalls.c b/arch/x86/xen/multicalls.c
index d4cefd8a9af4..10c660fae8b3 100644
--- a/arch/x86/xen/multicalls.c
+++ b/arch/x86/xen/multicalls.c
@@ -54,8 +54,9 @@ struct mc_debug_data {
 
 static DEFINE_PER_CPU(struct mc_buffer, mc_buffer);
 static struct mc_debug_data mc_debug_data_early __initdata;
-static struct mc_debug_data __percpu *mc_debug_data __refdata =
+static DEFINE_PER_CPU(struct mc_debug_data *, mc_debug_data) =
 	&mc_debug_data_early;
+static struct mc_debug_data __percpu *mc_debug_data_ptr;
 DEFINE_PER_CPU(unsigned long, xen_mc_irq_flags);
 
 static struct static_key mc_debug __ro_after_init;
@@ -70,16 +71,20 @@ static int __init xen_parse_mc_debug(char *arg)
 }
 early_param("xen_mc_debug", xen_parse_mc_debug);
 
+void mc_percpu_init(unsigned int cpu)
+{
+	per_cpu(mc_debug_data, cpu) = per_cpu_ptr(mc_debug_data_ptr, cpu);
+}
+
 static int __init mc_debug_enable(void)
 {
-	struct mc_debug_data __percpu *mcdb;
 	unsigned long flags;
 
 	if (!mc_debug_enabled)
 		return 0;
 
-	mcdb = alloc_percpu(struct mc_debug_data);
-	if (!mcdb) {
+	mc_debug_data_ptr = alloc_percpu(struct mc_debug_data);
+	if (!mc_debug_data_ptr) {
 		pr_err("xen_mc_debug inactive\n");
 		static_key_slow_dec(&mc_debug);
 		return -ENOMEM;
@@ -88,7 +93,7 @@ static int __init mc_debug_enable(void)
 	/* Be careful when switching to percpu debug data. */
 	local_irq_save(flags);
 	xen_mc_flush();
-	mc_debug_data = mcdb;
+	mc_percpu_init(0);
 	local_irq_restore(flags);
 
 	pr_info("xen_mc_debug active\n");
@@ -150,7 +155,7 @@ void xen_mc_flush(void)
 	trace_xen_mc_flush(b->mcidx, b->argidx, b->cbidx);
 
 	if (static_key_false(&mc_debug)) {
-		mcdb = this_cpu_ptr(mc_debug_data);
+		mcdb = __this_cpu_read(mc_debug_data);
 		memcpy(mcdb->entries, b->entries,
 		       b->mcidx * sizeof(struct multicall_entry));
 	}
@@ -230,7 +235,7 @@ struct multicall_space __xen_mc_entry(size_t args)
 
 	ret.mc = &b->entries[b->mcidx];
 	if (static_key_false(&mc_debug)) {
-		struct mc_debug_data *mcdb = this_cpu_ptr(mc_debug_data);
+		struct mc_debug_data *mcdb = __this_cpu_read(mc_debug_data);
 
 		mcdb->caller[b->mcidx] = __builtin_return_address(0);
 		mcdb->argsz[b->mcidx] = args;
diff --git a/arch/x86/xen/smp_pv.c b/arch/x86/xen/smp_pv.c
index 7ea57f728b89..6863d3da7dec 100644
--- a/arch/x86/xen/smp_pv.c
+++ b/arch/x86/xen/smp_pv.c
@@ -305,6 +305,7 @@ static int xen_pv_kick_ap(unsigned int cpu, struct task_struct *idle)
 		return rc;
 
 	xen_pmu_init(cpu);
+	mc_percpu_init(cpu);
 
 	/*
 	 * Why is this a BUG? If the hypercall fails then everything can be
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index e7775dff9452..0cf16fc79e0b 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -257,6 +257,9 @@ void xen_mc_callback(void (*fn)(void *), void *data);
  */
 struct multicall_space xen_mc_extend_args(unsigned long op, size_t arg_size);
 
+/* Do percpu data initialization for multicalls. */
+void mc_percpu_init(unsigned int cpu);
+
 extern bool is_xen_pmu;
 
 irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 07:38:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 07:38:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760289.1170095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sULiX-0004TR-4P; Thu, 18 Jul 2024 07:38:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760289.1170095; Thu, 18 Jul 2024 07:38:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sULiX-0004TK-0C; Thu, 18 Jul 2024 07:38:21 +0000
Received: by outflank-mailman (input) for mailman id 760289;
 Thu, 18 Jul 2024 07:38:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sULiV-0004TA-65; Thu, 18 Jul 2024 07:38:19 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sULiV-0002UP-1c; Thu, 18 Jul 2024 07:38:19 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sULiU-0004PD-Ni; Thu, 18 Jul 2024 07:38:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sULiU-0001wf-ND; Thu, 18 Jul 2024 07:38:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=oHtYR7astiQNmlQHSaaZZTFfqtmfBOOd47Zvh0IQubM=; b=Tz84nK93pfpyyzpw916yg8YxQl
	lO6IU4ZnBdWjlmJdkH71PC1YrQWg1NiwBxgsiJEN6L4lGVpmvqDTkbx2VORU651IyvbrsCy8iSw0S
	XHkSXRKd3EyLpjokMqhbyk9V4U129pSYUQFu5M8OjRb38cR68MRjxhClIQIkBCp0ber0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186850-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.16-testing test] 186850: regressions - FAIL
X-Osstest-Failures:
    xen-4.16-testing:build-amd64-prev:xen-build:fail:regression
    xen-4.16-testing:build-i386-prev:xen-build:fail:regression
    xen-4.16-testing:test-armhf-armhf-xl:xen-boot:fail:heisenbug
    xen-4.16-testing:test-amd64-amd64-migrupgrade:build-check(1):blocked:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9fe713202e4ef4ff0264d6ecfaea26bc4e50705b
X-Osstest-Versions-That:
    xen=d0e8f8ffbb19b5df5f767328baeb54c069b08e6a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Jul 2024 07:38:18 +0000

flight 186850 xen-4.16-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186850/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64-prev              6 xen-build      fail in 186838 REGR. vs. 185867
 build-i386-prev               6 xen-build      fail in 186838 REGR. vs. 185867

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl           8 xen-boot                   fail pass in 186838

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-migrupgrade  1 build-check(1)           blocked in 186838 n/a
 test-armhf-armhf-xl         15 migrate-support-check fail in 186838 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 186838 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 185867
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 185867
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  9fe713202e4ef4ff0264d6ecfaea26bc4e50705b
baseline version:
 xen                  d0e8f8ffbb19b5df5f767328baeb54c069b08e6a

Last test of basis   185867  2024-04-29 08:38:32 Z   79 days
Testing same since   186818  2024-07-16 12:40:22 Z    1 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 9fe713202e4ef4ff0264d6ecfaea26bc4e50705b
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Jul 16 14:16:27 2024 +0200

    x86/IRQ: avoid double unlock in map_domain_pirq()
    
    Forever since its introduction the main loop in the function dealing
    with multi-vector MSI had error exit points ("break") with different
    properties: In one case no IRQ descriptor lock is being held.
    Nevertheless the subsequent error cleanup path assumed such a lock would
    uniformly need releasing. Identify the case by setting "desc" to NULL,
    thus allowing the unlock to be skipped as necessary.
    
    This is CVE-2024-31143 / XSA-458.
    
    Coverity ID: 1605298
    Fixes: d1b6d0a02489 ("x86: enable multi-vector MSI")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    master commit: 57338346f29cea7b183403561bdc5f407163b846
    master date: 2024-07-16 14:09:14 +0200
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 08:59:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 08:59:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760311.1170111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUMzC-0005RP-VV; Thu, 18 Jul 2024 08:59:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760311.1170111; Thu, 18 Jul 2024 08:59:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUMzC-0005RI-SL; Thu, 18 Jul 2024 08:59:38 +0000
Received: by outflank-mailman (input) for mailman id 760311;
 Thu, 18 Jul 2024 08: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=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUMzC-0005RB-4E
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 08:59:38 +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 0e4996d5-44e4-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 10:59:36 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-36865a516f1so87397f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 01:59: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
 d2e1a72fcca58-70b7eb9c90asm9818106b3a.12.2024.07.18.01.59.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 01:59: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: 0e4996d5-44e4-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721293175; x=1721897975; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EapaIDTL5bYt9TOWZMn6K5IkSDCSuhe3rauWEvN/tp8=;
        b=T6tfH01XoQMxlYl1pLteqpJzgAz5ulth2yWy438PPTgsUM6qo8ByUWc81XKRErU2PL
         8zONUdKHYI0SbLSZ1O38SRa4qHOVgAK3DFrNxzRYwM1q+g8iixggvSw6gN2dXGRT/24R
         KJQy+oMejOw3L824BVveI1OrnViLP0lqhMKnokjYqLJcwwLNvrD7Sg/Fmbufi2Utdk3d
         h0YNPPOTR3Imsw0viSf36c5L2j7Q1ce3N6DTWVTpflgZuqiUQZPHQvgBumBmiwuzWDDQ
         gytYsBR6oFa4D2BWNTRG3FHRl4zJTmw6nQconJ65S15GeyvDdci7te9GzsCa2NElbe5G
         eG9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721293175; x=1721897975;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EapaIDTL5bYt9TOWZMn6K5IkSDCSuhe3rauWEvN/tp8=;
        b=xKnWKuH6r0rmeHFcJJoO+XJcTa6VxLu4OYhFqsjnoXGZTZTWgYXx+xTW3KMsEQpRyN
         t52YZx9Qp3XCEniyrrisY8wQjxGDtBr+txLPl8dRILe9uoRMH8IhnsLj0YxP9PhcQMvE
         CBkEGj1umZhkt8KDHAK1UuxkEkBwNBn8PqCjsqA3vUcBPSmWb1jQzy2olfKO7b1lO6Vq
         3PSuAMTgxFGsBf9BK7mV5V3idI7O8rq6nb2XnGVp7nyLOZlKTDpM4+PtMqJWjw2JicBn
         IOjEh55xiuDgMHFsiiNrJAPZ5PwZ6dlcQuh3KjgjVo8QSUfKXa1MUkqxx8NGXWs5sp++
         Qvbg==
X-Forwarded-Encrypted: i=1; AJvYcCU6Waayvg0NcI3doEDGZdoe2XER7MowzPiPtiVJ2gzu5YTfrTwShMOPXdcbYHc0jHuR9PRSNt0XsKJZ+DL3dcF0or22KisWW4ax5xRwLKM=
X-Gm-Message-State: AOJu0Ywknv59DBSvG/5sr+6NVP3GFPORJb520nFDqWQfCXNcEZ8bP5xu
	Gg+Xx8vRVjY9v6rrz+KujKO96cZU2JWHKm3q8SXILCTxWqrjShgcfxuxclsl7w==
X-Google-Smtp-Source: AGHT+IGDtVk2DavyJhwaXI8fASY9/6A8AxY6i+9ryMkxhG0MZwP9lWD8XfokX56Ig0SisNmRvVnUAw==
X-Received: by 2002:a5d:6445:0:b0:368:4910:8f43 with SMTP id ffacd0b85a97d-36849109037mr1577452f8f.3.1721293174927;
        Thu, 18 Jul 2024 01:59:34 -0700 (PDT)
Message-ID: <8fd8d6e4-ef29-4ea9-9437-a743c25fe7b9@suse.com>
Date: Thu, 18 Jul 2024 10:59:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
 consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com>
 <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com>
 <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
 <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com>
 <alpine.DEB.2.22.394.2407151736530.3635@ubuntu-linux-20-04-desktop>
 <4893a89d-9ef5-4d86-94b0-042e88588439@suse.com>
 <alpine.DEB.2.22.394.2407161713010.3635@ubuntu-linux-20-04-desktop>
 <013c6cc2-eddf-4beb-b115-01aaaa71faa6@suse.com>
 <alpine.DEB.2.22.394.2407171601540.3635@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.2407171601540.3635@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.07.2024 01:02, Stefano Stabellini wrote:
> On Wed, 17 Jul 2024, Jan Beulich wrote:
>> On 17.07.2024 02:20, Stefano Stabellini wrote:
>>> On Tue, 16 Jul 2024, Jan Beulich wrote:
>>>> On 16.07.2024 02:43, Stefano Stabellini wrote:
>>>>> On Mon, 15 Jul 2024, Jan Beulich wrote:
>>>>>> On 13.07.2024 00:38, Stefano Stabellini wrote:
>>>>>>> On Wed, 3 Jul 2024, Jan Beulich wrote:
>>>>>>>> I further have to note that, as indicated during the earlier discussion,
>>>>>>>> I still cannot see how occasional ambiguity is going to be dealt with.
>>>>>>>> IOW from the rules above two different headers could still end up with
>>>>>>>> the same guard identifier.
>>>>>>>
>>>>>>> Maybe something like this?
>>>>>>>
>>>>>>> "In the event of naming collisions, exceptions to the coding style may
>>>>>>> be made at the discretion of the contributor and maintainers."
>>>>>>
>>>>>> Hmm, maybe I wasn't clear enough then. My take is that the scheme should
>>>>>> simply not allow for possible collisions. Neither the contributor nor the
>>>>>> reviewer may spot such a collision, and it may therefore take until the
>>>>>> first full scan that one is actually noticed. Which I consider too late
>>>>>> in the process, even if we already were at the point where commits were
>>>>>> checked pre-push.
>>>>>
>>>>> Looking at the proposal, copy/pasted here for convenience:
>>>>>
>>>>> - private headers -> <dir>_<filename>_H
>>>>> - asm-generic headers -> ASM_GENERIC_<filename>_H
>>>>>     - #ifndef ASM_GENERIC_X86_PERCPU_H
>>>>>       #define ASM_GENERIC_X86_PERCPU_H
>>>>>       //...
>>>>>       #endif /* ASM_GENERIC_X86_PERCPU_H */
>>>>> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
>>>>>     - #ifndef ASM_X86_DOMAIN_H
>>>>>       #define ASM_X86_DOMAIN_H
>>>>>       //...
>>>>>       #endif /* ASM_X86_DOMAIN_H */
>>>>> - xen/include/xen/<filename>.h -> XEN_<filename>_H
>>>>> - xen/include/xen/<subdir>/<filename>.h -> XEN_<subdir>_<filename>_H
>>>>>
>>>>>
>>>>> The only possibility for collision that I can see is from the first
>>>>> point:
>>>>>
>>>>> - private headers -> <dir>_<filename>_H
>>>>
>>>> I don't think this is the only possibility of collisions. The <subdir>_<filename>
>>>> parts can similarly cause problems if either of the two involved names contains
>>>> e.g. a dash (which would need converting to an underscore) or an underscore. To
>>>> avoid this, the name separators (slashes in the actual file names) there may need
>>>> representing by double underscores.
>>>
>>> I am OK with you two underscores as name separator (slashes in the
>>> actual file names). Would you do it for all levels like this?
>>>
>>> - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
>>> - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
>>> - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
>>>
>>>
>>> I think it is better than the below:
>>>
>>> - arch/arm/arm64/lib/something.h -> ARM_ARM64__LIB__SOMETHING_H
>>> - arch/arm/arm32/lib/something.h -> ARM_ARM32__LIB__SOMETHING_H
>>> - arch/x86/lib/something.h -> X86_LIB__SOMETHING_H
>>
>> Hmm, maybe it's indeed better to do it entirely uniformly then.
> 
> 
> Do we have agreement on the naming convention then? 
> 
> 
> - private headers -> <dir>__<filename>__H
>     - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
>     - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
>     - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> 
> - asm-generic headers -> ASM_GENERIC_<filename>_H
>     - include/asm-generic/percpu.h -> ASM_GENERIC_X86_PERCPU_H
> 
> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
>     - arch/x86/include/asm/domain.h -> ASM_X86_DOMAIN_H
> 
> - include/xen -> XEN_<filename>_H
>     - include/xen/percpu.h -> XEN_PERCPU_H
> 
> 
> Or do you prefer the double underscore __  in all cases?

It's not so much prefer, but a requirement if we want to be future proof.
Even for ASM_GENERIC_* that'll be needed, as your outline above simply
doesn't mention the (future) case of there being subdir-s there (see how
Linux already has some). Imo the question doesn't even arise for XEN_*,
as xen/ has subdir-s already.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 09:25:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 09:25:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760318.1170121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUNO6-0000hz-Ti; Thu, 18 Jul 2024 09:25:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760318.1170121; Thu, 18 Jul 2024 09:25:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUNO6-0000hs-R6; Thu, 18 Jul 2024 09:25:22 +0000
Received: by outflank-mailman (input) for mailman id 760318;
 Thu, 18 Jul 2024 09:25: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=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUNO6-0000hm-6k
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 09:25:22 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a707ecf2-44e7-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 11:25:20 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2eedec7fbc4so7515861fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 02:25: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
 d2e1a72fcca58-70b7eb9e1f9sm9521797b3a.44.2024.07.18.02.25.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 02:25: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: a707ecf2-44e7-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721294720; x=1721899520; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EurgUxlYhaAI8y9cnRLb2B+YuA+juv/H3Qd9TpCrQwk=;
        b=cYg07m+G1r+GEnF0BXRzJm6xdIKerSTRNaYIzYaLLZErOmKzZ8emd8bWKiCf049c+H
         20i3F5LttFs2RR3V4RqKz39Rpr5oP16BOCNHHhYBk1w/4UNrODJNFCgtkwJb2MLAs7X/
         UlBUV+7r/V3OXm8SLgTQT93Jee4NgwhN6puLMSN/dqMqwajuH1G3DfoFXOZ0ntnkTy7f
         eND5970chkHPFz3Sndrsgvb9f7kVnp1Eh2Je4OEAYkiSpJzefOFn8bmIsb91QD83JpGy
         Ul9vbCo6tV3AE4tdqY5wWJl1c9iCaOxaZCbCtDnSOOkAl5QNP5VsA9FnmRQx4NZSJ4HI
         BNyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721294720; x=1721899520;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EurgUxlYhaAI8y9cnRLb2B+YuA+juv/H3Qd9TpCrQwk=;
        b=F9EU3z2HeT9PBzaXRwIQ5PFpYTUuVvMRDSS6+VrzBy8wC/fiCNhgCfTx5SIMmWZYq4
         WB6Um3e126wqOu3MmtgvDtVB+ys0IWmNhgzuvN8sIasxQzic9z6N4LmMnLYm87Mtzw3Y
         0PGERp2b5dOyNlECvSv6FiMCC9sWL/beyxn0kxGdhdCEvXxZ1kKwCnveVej0V2K85g/z
         pR3R6pMlIKeuxGwhp1lO19bxIes1nkcE3/wHOrqhgWGqAyNpLp9gCKeS9TovrSMQsfxx
         SckLm2M+QntHGnLo2EacNX6n6qCWk7LYdMEZ0v6NJIp0xw0a5xqgbmDhKxo+C/CzHVAB
         OdvQ==
X-Forwarded-Encrypted: i=1; AJvYcCVzI69k/hFHnydFSIwqVAHdqV9S50zjRt+LK33hwic591qYkhCHCgKGNJAzCgkQZ9k5B4yF/DPM6edlTTcpH3u4b8mCtL+gXuAfiuZQDPM=
X-Gm-Message-State: AOJu0Yzm/JG8U9XW5rcJQ3CSMi95sforneWSyU/CU6+CFFerPMz0VhdG
	TZhkePQsDUajspUnea8YafGP6uz4Ig3vAX3Zkr+SpB3uKTZRnP5JxreejEGnJA==
X-Google-Smtp-Source: AGHT+IGZev0VZvslKR6HhFbiNe1IUefBtAvmqvrcML2UowJ5xbOZbnDE8RGVpcxeeKScr+ELt53sIg==
X-Received: by 2002:a05:651c:1052:b0:2ee:4f93:ae25 with SMTP id 38308e7fff4ca-2ef05ca1e53mr12741581fa.29.1721294719637;
        Thu, 18 Jul 2024 02:25:19 -0700 (PDT)
Message-ID: <b90ae2d3-35f4-4bf4-a498-43c0fa920fae@suse.com>
Date: Thu, 18 Jul 2024 11:25:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/mm: Drop duplicate l1_disallow_mask() 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: <20240717161415.3586195-1-andrew.cooper3@citrix.com>
 <20240717161415.3586195-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: <20240717161415.3586195-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.07.2024 18:14, Andrew Cooper wrote:
> Even in release builds, gdprintk() evalues its parameters for side effects,
> and l1_disallow_mask() is full of them.
> 
> Calculate the disallow mask once and reuse the variable.  This improves code
> generation in release builds:
> 
>   add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-207 (-207)
>   Function                                     old     new   delta
>   mod_l1_entry                                1947    1860     -87
>   get_page_from_l1e                           1391    1271    -120
> 
> Also, render the bad flags message with a 0x prefix.
> 
> No practical change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Thu Jul 18 09:26:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 09:26:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760323.1170130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUNOw-0001IT-9K; Thu, 18 Jul 2024 09:26:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760323.1170130; Thu, 18 Jul 2024 09:26:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUNOw-0001IM-6M; Thu, 18 Jul 2024 09:26:14 +0000
Received: by outflank-mailman (input) for mailman id 760323;
 Thu, 18 Jul 2024 09:26: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=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUNOu-0000hm-RZ
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 09:26:12 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c6011bea-44e7-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 11:26:12 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ebe40673e8so8917231fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 02:26: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
 98e67ed59e1d1-2cb77a55bfesm152010a91.26.2024.07.18.02.26.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 02:26:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6011bea-44e7-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721294772; x=1721899572; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=52IvWEgtK2wuF5TGeiD6QwAwWM+5hNcAQTVsv8nZvmM=;
        b=aCeeCzWx2cXF+UdzTK9P1BeTNPMZocIvVV1f4n8xGNmomPDDv/TRMRW82hwGcYW8lJ
         kuDndMIrmqsaS65PwlPVh89umRzqrHeYc42GODWTQhtoCnNLtfgsm7Ju7AQvnm+zqa68
         5280TvDuHfP9RB+hgVzd+bYDnwHxSXRVRD11CIzCcyKP+Os1c/qhD0JijpX+GUy7Oep9
         tdL8+JO0EHXuFWDFGKphJJBAnZGSDt7ilK+tfLLAm+ggLTWzSdDla2jZX28Z8r0ZfyiY
         WxMvrTTHqSDOdRUkP6BuOIBjAcHGv2mMnKh1Rd0h0Cd45jqQVn6YHrpIaEuXYKYijOXZ
         dwEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721294772; x=1721899572;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=52IvWEgtK2wuF5TGeiD6QwAwWM+5hNcAQTVsv8nZvmM=;
        b=uexboU8kQHzDYBT1qmeQsRrRqo/r0pyuTMZ9/5zFYQU8k1k5+e43IQCZpf1TMF70Pu
         moxZSlxrmiD2TiutBhl7XAdIuA5lZx+CdogdEX1QqSqiwHLFRiM22vLLdxZXl3i82hgf
         DSRz4oSpwKGCXp8aya0Gq3WRxb5rmR4IE7+Zhwq+UrPLRAJRFIPNxz9RexBn+H1eSe+4
         rwQihQ+6gLck9Qhfc3H+PlXnAuF4li/zWmQozIekLNHnZfbYm4Gl2EQ0gfi+51I2Mm+Q
         jyEhlIgh5pIVSicB0AnfGp3GKlBSB7W4/2BB5Wq/GWOByZ0i3Y6PhR9YTjjT59V5k0q3
         Crew==
X-Forwarded-Encrypted: i=1; AJvYcCUZe9PPR/hv9tDPFyVsLhx4JpZHUGCploZjaraJNTCKVSjySJMHuJxfPOBxU2q3+7ke7VPIpCaaxw2yX+HO7wPfQW2hLY9lFrIckuaf2O8=
X-Gm-Message-State: AOJu0YzyT9Hv27goFyvwWuWrOluLwxRjcIRqxWyg2D5TX1ocQqNWKCLv
	oN2L8xNbixWNSh2sDkrunixSduFRPLcWWGTkTJDNmKZPjtEEHnOtP+WukRp8jw==
X-Google-Smtp-Source: AGHT+IGHnrLzHOtmBbaaYHi38hRuxpBG9GEHcl6PhravbG/zao/VppQNo4HZ/ZauQ07IykoItEYlog==
X-Received: by 2002:a2e:81d5:0:b0:2ec:4487:6a8f with SMTP id 38308e7fff4ca-2ef05d2f53amr12672161fa.37.1721294771734;
        Thu, 18 Jul 2024 02:26:11 -0700 (PDT)
Message-ID: <aee63222-5394-4ff7-9b15-bf9bfd6c11df@suse.com>
Date: Thu, 18 Jul 2024 11:26:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/mm: Move base_disallow_mask 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: <20240717161415.3586195-1-andrew.cooper3@citrix.com>
 <20240717161415.3586195-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: <20240717161415.3586195-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.07.2024 18:14, Andrew Cooper wrote:
> base_disallow_mask is calculated once in arch_init_memory() and never changes
> thereafter.  Write-protect it at runtime.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Thu Jul 18 09:58:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 09:58:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760332.1170140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUNuG-0005PT-Kk; Thu, 18 Jul 2024 09:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760332.1170140; Thu, 18 Jul 2024 09: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 1sUNuG-0005PM-Hh; Thu, 18 Jul 2024 09:58:36 +0000
Received: by outflank-mailman (input) for mailman id 760332;
 Thu, 18 Jul 2024 09: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=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUNuF-0005PE-0S
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 09:58: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 4b17bd46-44ec-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 11:58:33 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-36865a516f1so139737f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 02:58: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
 d9443c01a7336-1fc584764c7sm15399485ad.179.2024.07.18.02.58.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 02:58: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: 4b17bd46-44ec-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721296713; x=1721901513; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dixNdZNY+Ch57hCG0rGhbZD1MMP19b3uBD1jEgHuwvM=;
        b=OJTPE5RrfpGwEX19Vx5XwaZH+cXBoBOHwmlfmbF82O64ekAVeKJmufCSwQ+flhmCw0
         +dFaGlxg5FJzZByfKXKsR2CG5V5jw54Ou8VUmE2Vw1asWRM1PPLS7ugzrQ+CpwAMhOD5
         LeqYP4UY6WD1o0e39WRpmciZzrE19MjmeeD7WqaOJbTRt46rMyankl4xfU6bAdVLrabT
         CHhdGSK9I8X+ifqRajT9yo0srvvwg0otEv8IyWT3lZDWCcrTm2N9Bkp7+aUaD7FowLwp
         3lR4kU1CPmx0RE06PDWZ+MxLPfqLU5BPp50aG4CM7mKvUZoNAAeB5cZAM3KObZhiigUQ
         wqFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721296713; x=1721901513;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dixNdZNY+Ch57hCG0rGhbZD1MMP19b3uBD1jEgHuwvM=;
        b=Cgb46SATwv1eYlXM+AB43B4Xj3qB1bqiCUHqo8krAEYihHTV8hppY+qBYiPiLLPKYc
         1iSNnj5Kj3e4lUUeiZ8bp5ZTMXjP371ZKiWHFdsCerwGpO/h2cr5YKfOuM/t8UdQoIYM
         fxeDWHhXmsA6I2Sl9+whBHQtSSjyphY7ghJyRgJTpfQlGO/kqGN4nBfVFr2A/47ISsxP
         YFOMvDhUWFcneEcEabN5BiQNmuPyex5nukAxkQtfzsX+Zz6v3xJmT9tVkZUtX5LCSH9b
         EzCokcp9aCCGynXCdFJkPmTxGoYn6WP7xhhoLFHC0p+SJos5K3XeHMIyCCeFPIDHTcuD
         W8pQ==
X-Forwarded-Encrypted: i=1; AJvYcCW1HZGveikZVtTvRSEZiROIsip3EwSsSVbv8zLb6FeoWYuJH31Is9LUhMKrevi9U1DkYzgZo4kgpoELejsK8C7UJDRzC3bSWT1jGQXb9uw=
X-Gm-Message-State: AOJu0YzaaS7d1eHEk4ukH9UFfK9WnpjSsUs/6VmdhJT9Dpf1buiL1NAu
	yRUALkuvPDihEmz5uyhsYEi1B8BRD9Yzn3uQvWVpyXecxb97CORxhyDNyYUBHg==
X-Google-Smtp-Source: AGHT+IFy0Dps+dTEmgAnq4FWBekbPBQpnPLGdwSYV0G5QURWFXksvPOtWkGymLAGCpGHQ/LVaipVtA==
X-Received: by 2002:a05:6000:184d:b0:368:6337:4221 with SMTP id ffacd0b85a97d-36863374885mr693045f8f.54.1721296712997;
        Thu, 18 Jul 2024 02:58:32 -0700 (PDT)
Message-ID: <87a924ed-e258-41e4-8a2a-19527c08a4e3@suse.com>
Date: Thu, 18 Jul 2024 11:58:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC 3/3] x86/mm: Simplify/correct l1_disallow_mask()
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: <20240717161415.3586195-1-andrew.cooper3@citrix.com>
 <20240717161415.3586195-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: <20240717161415.3586195-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.07.2024 18:14, Andrew Cooper wrote:
> l1_disallow_mask() yields L1_DISALLOW_MASK with PAGE_CACHE_ATTRS conditionally
> permitted.  First, rewrite it as a plain function.
> 
> Next, correct some dubious behaviours.
> 
> The use of is_pv_domain() is tautological; l1_disallow_mask() is only used in
> the PV pagetable code, and it return true for system domains as well.

Well, only quite. What you say is entirely true for mod_l1_entry(), but sadly
not for get_page_from_l1e(): That's also used by shadow_get_page_from_l1e(),
i.e. theoretically from a PVH Dom0 running in shadow mode. I don't think I
can spot anywhere we'd reject that combination.

> The use of has_arch_pdevs() is wonky; by making the use of cache attributes
> dependent on the instantanious property of whether any devices is assigned,
> means that a guest could have created a legal PTE which will fail validation
> at a later point when the device has been removed.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> 
> RFC.  I've not tested this, and I doubt it will work to start with owing to
> the removal of the dom_io special case which IIRC dom0 uses to map arbitrary
> MMIO.

I think that check has been dead for a long time. DomIO can't be the page
table owner; it can only be the owner of a page to be mapped. The check
likely was needed only before the proper splitting of which domain involved
plays which role. Dropping this may then want to be done as a separate
change, but it could of course remain here as long as properly explained in
the description. Maybe for the time being we want to retain an assertion to
this effect.

> Furthermore, the rangeset_is_empty() calls have the same problem that
> has_arch_pdevs() has; they're not invariants on the domain.  Also, VMs
> wanting/needing encrypted memory need fully working cacheability irrespective
> of device assignment.
> 
> I expect the way we actually want to fix this is to have a CDF flag for
> allowing reduced cahcebility, and for this expression to simplify to just:
> 
>     if ( d->options & XEN_DOMCTL_CDF_any_cacheability )
>         disallow &= ~PAGE_CACHE_ATTRS;
> 
> which is simpler still.

Perhaps. Or refuse altering the two rangesets post-creation for domains
without IOMMUs ("post-creation" here including the establishing of any
mapping on behalf of the domain).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 10:09:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 10:09:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760339.1170150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUO4m-0007HV-Iu; Thu, 18 Jul 2024 10:09:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760339.1170150; Thu, 18 Jul 2024 10:09:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUO4m-0007HO-Fu; Thu, 18 Jul 2024 10:09:28 +0000
Received: by outflank-mailman (input) for mailman id 760339;
 Thu, 18 Jul 2024 10:09:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUO4k-0007HE-HW
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 10:09:26 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cf71500d-44ed-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 12:09:25 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-36865a516f1so149069f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 03:09: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
 d9443c01a7336-1fc6c35e3fesm3616075ad.226.2024.07.18.03.09.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 03: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: cf71500d-44ed-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721297364; x=1721902164; 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=hjY9ludigvyXvUHU4qLDGwaBXfQGaH7kqtj+jdk2E30=;
        b=MaAr5WqEVckFhuGswGPqKJdNYyot8ZmPEM13A6GkXyLqePd9xj+VPUZFUmpV1ydROc
         Lnh4LPrTItLXJPP2xHCHMTCC518CCNGgYU8l0dI0l77kDjoQrPOcqIobvmf3QrAX5wEr
         CwcFhnjzlCJdRzBzQsSxYbAgXwpPRv9ul6UnWvF4ti7uKjZ7pOJoQuJTX+JrxHrkVWKM
         8uiWcs5AuybbeSwuVvOYiNt7XvD5PNA9Cz3k96qqWkGpEbvXAsW6zOVChpSE3iAVfDeB
         resaeNaOPHwvEa7IyRnyIenLiwoeSFvz2ooZ0zBs2tA/r1UjGlEeN2ULSfXt/zydCsvf
         Iyhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721297364; x=1721902164;
        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=hjY9ludigvyXvUHU4qLDGwaBXfQGaH7kqtj+jdk2E30=;
        b=X6ynF7pTlyz8Smq6joC9AH8ZnFACKSdNCOnn2Ed4nBAw0V46djKoy+Gy2QNBE16B2t
         EEBy4a/VeB97WalLRnA6BB+h0GotmD0ak2pLaZ/LbhwLJR9ehE+AGG6B4zoxcqNGP/ve
         kecb1gKINuDVWPhQLuVRL6ElK07MwuEyX1JgZ53PDqUZCFxgE42RNgYkkbyjpDMSx7CC
         VuyTajeUwZkEI1P78y03LIfS7dxPnpgrAXvV7K/Mr0IhWRC1EdM3vFlNIHsac2+8almB
         eIeZxZm5iXpiqhZI2tExBYonI8AY5TFoT1SPGe6ASMvL28taXtzM3zKFrVxItTyQHCQT
         GKGw==
X-Gm-Message-State: AOJu0YzPnXcPSqLTtHQP9kFgbg7IxTu/FcfKIT1TeymQtPL5PWfuBptb
	fYZfvwuGSHKGTbVhLuY4IDHzOj9PhkjbV4rzWeK7SPUnUQH5GW05PSVVba7CT88lPe4k+u8wvlE
	=
X-Google-Smtp-Source: AGHT+IFZZ5irNbFlke7Az39P2qNW18/Xnq3uUXrmOqWdHCMGvzKYknriSRs+Te/Q91MSf3ZPxDanOw==
X-Received: by 2002:a5d:62c5:0:b0:360:75b1:77fb with SMTP id ffacd0b85a97d-368315f1eddmr3216708f8f.8.1721297364591;
        Thu, 18 Jul 2024 03:09:24 -0700 (PDT)
Message-ID: <9f56adbc-5e16-4b48-a7f0-e72c6b8f1999@suse.com>
Date: Thu, 18 Jul 2024 12:09: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/mm: drop gfn_to_paddr()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This really is gfn_to_gaddr() in disguise; no need to have two variants
of the same logic.

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

--- a/xen/arch/x86/include/asm/guest_pt.h
+++ b/xen/arch/x86/include/asm/guest_pt.h
@@ -20,12 +20,6 @@
 #error GUEST_PAGING_LEVELS not defined
 #endif
 
-static inline paddr_t
-gfn_to_paddr(gfn_t gfn)
-{
-    return ((paddr_t)gfn_x(gfn)) << PAGE_SHIFT;
-}
-
 /* Override get_gfn to work with gfn_t */
 #undef get_gfn
 #define get_gfn(d, g, t) get_gfn_type((d), gfn_x(g), (t), P2M_ALLOC)
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -562,7 +562,7 @@ _sh_propagate(struct vcpu *v,
                 if ( p2mt == p2m_mmio_direct )
                     sflags |= get_pat_flags(v,
                             gflags,
-                            gfn_to_paddr(target_gfn),
+                            gfn_to_gaddr(target_gfn),
                             mfn_to_maddr(target_mfn),
                             X86_MT_UC);
                 else if ( is_iommu_enabled(d) && iommu_snoop )
@@ -570,7 +570,7 @@ _sh_propagate(struct vcpu *v,
                 else
                     sflags |= get_pat_flags(v,
                             gflags,
-                            gfn_to_paddr(target_gfn),
+                            gfn_to_gaddr(target_gfn),
                             mfn_to_maddr(target_mfn),
                             NO_HARDCODE_MEM_TYPE);
             }


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 10:10:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 10:10:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760344.1170161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUO5R-0000CR-RM; Thu, 18 Jul 2024 10:10:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760344.1170161; Thu, 18 Jul 2024 10: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 1sUO5R-0000CK-Nm; Thu, 18 Jul 2024 10:10:09 +0000
Received: by outflank-mailman (input) for mailman id 760344;
 Thu, 18 Jul 2024 10:10:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUO5Q-0007cr-QJ
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 10:10:08 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e872a541-44ed-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 12:10:07 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2eede876fbfso9290851fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 03:10: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
 d2e1a72fcca58-70b7ecd603bsm9601397b3a.219.2024.07.18.03.10.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 03:10: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: e872a541-44ed-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721297406; x=1721902206; 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=hUv4PJY4s6F7A2Q2OoPefLxNPOGfzg67ZqFhd8G8CaU=;
        b=cjTnWyZ8bcPpmPMliPQ3rThEQ9Tz+FzsI2MCtkf8+GH+cO43LcKRYg4Qfxs5a4YK7G
         JZvIAb3+GXLSApxj2cFky6Q8csNLDgI/sfy663ePe1nv7XTXncWWcYWltr3SBU8rBl8a
         8soAxw/+tExLPR+EoOn6LRVJqZdhpCnCXC1PifFwLtJPpbDZfy/N4RtCkH1Y6K93xSrj
         y2ubwPkatexd2WMOOeAAYk+iVkIS0xlJsq28Y8y3iPqT5n1sUDPjWbZl00DosKVisYKm
         LIkhJYXnHpfwnOQLaKat+L2PSIIdDfkD91I0KfT+14JgOGzOSM/F45P7sWr39FBauOaW
         0Ifw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721297406; x=1721902206;
        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=hUv4PJY4s6F7A2Q2OoPefLxNPOGfzg67ZqFhd8G8CaU=;
        b=G5pSYbcBJrBdOllEEduD08pHgbROZ7vLaAsjlkR/A36F22kLDRa2qEstEIo2eX6+uq
         whCT9WI38kM5MLsWvo1KTfKDl3mXoLmhdv1v+qodLuUQ4g7+/nLTmsdqUdn1xcO/3lV0
         5KR9kqwA5PHSNTEmDhpS5beUEKJbdt9EozQZduK1bo7ninRMS6GourEXgM/xURLyK/wt
         dnfbFhITnNLYU/ZDYGelKYTXJxJMtaL8hRsntJMSUo1y1hnboQ6u8COAn7FSFJo+bQZt
         M0gE4okpQd5jjyxWemIexjojXHN8lOrFWp2Ivy+L+G8aLdleYjtSViDrIUj+R9uFIgR5
         8ZVA==
X-Gm-Message-State: AOJu0YxUwJZ6j52hq2nMydoRopldeg6oTpFistAFMO3lKXs5P+7zbO5d
	eJPsl+jDQqq18gg9mnz0i+iQFXvWUMkyemW0MJ1C+eWUo/Sd0rzk78n3WLkt5lFbdvITV2LLJqI
	=
X-Google-Smtp-Source: AGHT+IHlQaUi44ZjV/zyYDtjOgicy4KN+lHsnCpeWnioeUykItvglIs7sxXb5F0qNAimer4L3H5aPA==
X-Received: by 2002:a2e:9bd0:0:b0:2ee:8bc6:6826 with SMTP id 38308e7fff4ca-2ef05ca05dcmr13484301fa.26.1721297406528;
        Thu, 18 Jul 2024 03:10:06 -0700 (PDT)
Message-ID: <76aafbed-bea9-445a-8abb-6e1e44996594@suse.com>
Date: Thu, 18 Jul 2024 12:10: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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/HVM: get_pat_flags() is needed only by shadow code
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Therefore with SHADOW_PAGING=n this is better compiled out, to avoid
leaving around unreachable/dead code.

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

--- a/xen/arch/x86/hvm/mtrr.c
+++ b/xen/arch/x86/hvm/mtrr.c
@@ -271,6 +271,8 @@ int mtrr_get_type(const struct mtrr_stat
    return overlap_mtrr_pos;
 }
 
+#ifdef CONFIG_SHADOW_PAGING
+
 /*
  * return the memory type from PAT.
  * NOTE: valid only when paging is enabled.
@@ -359,6 +361,8 @@ uint32_t get_pat_flags(struct vcpu *v,
     return pat_type_2_pte_flags(pat_entry_value);
 }
 
+#endif /* CONFIG_SHADOW_PAGING */
+
 static inline bool valid_mtrr_type(uint8_t type)
 {
     switch ( type )


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 10:11:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 10:11:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760350.1170171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUO6H-0000lP-38; Thu, 18 Jul 2024 10:11:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760350.1170171; Thu, 18 Jul 2024 10: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 1sUO6H-0000lI-0L; Thu, 18 Jul 2024 10:11:01 +0000
Received: by outflank-mailman (input) for mailman id 760350;
 Thu, 18 Jul 2024 10:10:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUO6F-0000l8-L6
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 10:10:59 +0000
Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com
 [2607:f8b0:4864:20::72c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06f270b5-44ee-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 12:10:58 +0200 (CEST)
Received: by mail-qk1-x72c.google.com with SMTP id
 af79cd13be357-7a05c755477so8176285a.2
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 03:10:58 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1938c0588sm9679885a.7.2024.07.18.03.10.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 03: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: 06f270b5-44ee-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721297457; x=1721902257; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1urfNNXHeVfD+wj6f0/FGTvkqDfk2Y5vYhjZ+g7yu8M=;
        b=eVv3t5Nrm6tHYaaA4T8wxGCTBHmTM0M9MFfFUDZyXNGbm++Eb9F+lgR9vHzQINY+bc
         N1Y2xFESmBafmgmrTK1JPiaJEee0qVM2mo7YxMim7cJfhWOJ4wuSinh/9GC3lntF/0aB
         Tjh1342XQAq8YWrh1VrVjAEsyQr63oTsjLbi4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721297457; x=1721902257;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1urfNNXHeVfD+wj6f0/FGTvkqDfk2Y5vYhjZ+g7yu8M=;
        b=Ss2e4IlJeuWM/ub+sOxZ83rSlVds2N798TUeTLvxddIndt8lo35HYZwZfTKBvZKQQE
         5dMaeHG1pWX83ax8EVgWXW7pxuXhYKnwtZNstqhlhkkr0MlUZsSJG+VtRAfLRx9HfGU6
         i7MRFZAizwiQBedOkGI8vrb2Nv//GWILVaK5keD5tQiP092ATL2kQlpWcSTiMCIyd6Ts
         Nww7QmZHnP9cac4rB/VGpe7zPcvx3NepifXs34HfBRavQBSVNE72MUtdYHGU3E33XuoE
         1hR6zDkYx6R4l9G1b3G2zk6Ssiw3BTnemB5KgCo3kOzq9oWdNeBr9RZ0Cc8y5b3PZ+Ss
         3qtQ==
X-Forwarded-Encrypted: i=1; AJvYcCU8TK7puW5WTkH5xCQqlAvhkrpCtsdVNd6fX3pYzBiVnaffrn0yFgbHQVVrUfuAtEjriaC3TeRwZqx8/P5FkGG/DiWrsvdNmMf2y/HG/Uc=
X-Gm-Message-State: AOJu0YwYVgQNh1z1prkZYxQ87tmUU/imK1xCzDdLuiBgrErcR0CHkyXs
	28N5/gkMbVjtayQh/pFAEsJdoX4KPx8Nqy8Yi3gvSb/BbpzuEpi8hzXuQJT1SQ8=
X-Google-Smtp-Source: AGHT+IGDzykdSl1oku01bpLrIcWT/Ks3b5T3JJkjKji2aN6zQtJ+Z20g6SxrZA67+Dn6YecRFapw+A==
X-Received: by 2002:a05:620a:c54:b0:79d:58dd:d82b with SMTP id af79cd13be357-7a193990abdmr26978885a.62.1721297457627;
        Thu, 18 Jul 2024 03:10:57 -0700 (PDT)
Message-ID: <8c4414e6-d302-43a1-852b-e42f2ec607d0@citrix.com>
Date: Thu, 18 Jul 2024 11:10:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/mm: drop gfn_to_paddr()
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: <9f56adbc-5e16-4b48-a7f0-e72c6b8f1999@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <9f56adbc-5e16-4b48-a7f0-e72c6b8f1999@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18/07/2024 11:09 am, Jan Beulich wrote:
> This really is gfn_to_gaddr() in disguise; no need to have two variants
> of the same logic.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 10:11:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 10:11:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760356.1170180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUO76-0001Mf-Dx; Thu, 18 Jul 2024 10:11:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760356.1170180; Thu, 18 Jul 2024 10: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 1sUO76-0001MY-BU; Thu, 18 Jul 2024 10:11:52 +0000
Received: by outflank-mailman (input) for mailman id 760356;
 Thu, 18 Jul 2024 10:11: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=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUO75-0001DW-63
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 10:11:51 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 259795a5-44ee-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 12:11:49 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2eec7e431d9so10205861fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 03:11: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
 98e67ed59e1d1-2cb778cad11sm250403a91.3.2024.07.18.03.11.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 03:11: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: 259795a5-44ee-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721297509; x=1721902309; 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=5dAyS9ay24exWD+CAgeTQLy5cPo5E14zax0ZU9A4i84=;
        b=Q60Kg6e/NF4d2fgssqu4lOO6aHl2R51i/dSpj5+J9qGRFoq0AgS5NlmK4Pr+cMUryD
         FdJdQwqvDbTG7vH8n99F4upvLMiB+1unHi/nR/h9uB86zMQONz3WwoyaP/siTZgW4fDf
         EHKCSpgMIAQvPdV+GOlLXRwS0IUnexqciPGg0gD9SMPUUaiw0ArmmuUa7W2Dso2Rpaxz
         A2r780HqB6d0ixeKkAG1Pjpb6ogiWM87hmSWgbU/wAcIvkbOGtDDSTJNyvj9cRBCOxeI
         LaqFlUz/zbYiuTXZYYQzKg69bBBsRiU/66w6NwMJqKpPS7uwqzyaYRRDedEt0yoWGCrE
         8OlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721297509; x=1721902309;
        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=5dAyS9ay24exWD+CAgeTQLy5cPo5E14zax0ZU9A4i84=;
        b=qO54mkv2AeERVsKJ7QrcyeWBuHcGjIaBx/46w301iko+UIZjhwmH7pJubL1v/+qDAt
         QEE0wtKCTNXVr+6nDP5RVivrNuJmF9wYegtc5VyqfwYNIDJ8Hf/aoN7iD6RM04PfpruF
         nGp3Z/Z5pNoQXsmEdgXqN6XR16eBEdJlA4sD/3MPbrAnquhJo7NtHKES+WXnxQ98eRpO
         eVvWwXGF1YkYQLrhQWBs5phiNioRK/PAjBZL2Jwau2dfy/TRXre/rOSZT2UyLjaGs/RA
         Zja+v2+2yzrPDsyR007hEcHekIX1SE2YE5gKl1lN4qY/tQ68CqCl+11zPyicR4e0f5Ae
         GP1w==
X-Gm-Message-State: AOJu0YzgDYXt4iICaINB3z6ESog+eza4FLHDprj++l+4txGVFLIDH+Tk
	XBf8Y/c9Dl8usadIKjhW/92A7X0DvwNeep777BLzweAz09P484b0QY46+Gsr+8UU6B9g3q0TRRc
	=
X-Google-Smtp-Source: AGHT+IH/pw1hZFkA7AZMyWfqswK9sZVCh5x4GxtzkLc9zUOjvJcKy04YgWsR/LXShwuYHQfEvfUCPg==
X-Received: by 2002:a2e:9b15:0:b0:2ee:44f7:cc74 with SMTP id 38308e7fff4ca-2ef05c53bcemr12842671fa.6.1721297509022;
        Thu, 18 Jul 2024 03:11:49 -0700 (PDT)
Message-ID: <3a6575b4-8b03-41ce-93e3-a874f23d6522@suse.com>
Date: Thu, 18 Jul 2024 12:11:43 +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: don't open-code [gm]fn_to_[gm]addr()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

At least in pure address calculation use the intended basic construct
instead of opend-coded left-shifting by PAGE_SHIFT. Leave alone page
table entry calculations for now, as those aren't really calculating
addresses.

No functional change.

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

--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -73,7 +73,7 @@ static void map_shared_info(void)
     if ( rc )
         panic("failed to map shared_info page: %ld\n", rc);
 
-    set_fixmap(FIX_XEN_SHARED_INFO, mfn_x(mfn) << PAGE_SHIFT);
+    set_fixmap(FIX_XEN_SHARED_INFO, mfn_to_maddr(mfn));
 
     /* Mask all upcalls */
     for ( i = 0; i < ARRAY_SIZE(XEN_shared_info->evtchn_mask); i++ )
--- a/xen/arch/x86/include/asm/guest_pt.h
+++ b/xen/arch/x86/include/asm/guest_pt.h
@@ -377,7 +377,7 @@ static inline paddr_t guest_walk_to_gpa(
     if ( gfn_eq(gfn, INVALID_GFN) )
         return INVALID_PADDR;
 
-    return (gfn_x(gfn) << PAGE_SHIFT) | (gw->va & ~PAGE_MASK);
+    return gfn_to_gaddr(gfn) | (gw->va & ~PAGE_MASK);
 }
 
 /* Given a walk_t from a successful walk, return the page-order of the
--- a/xen/arch/x86/mm/hap/nested_hap.c
+++ b/xen/arch/x86/mm/hap/nested_hap.c
@@ -134,7 +134,7 @@ static int nestedhap_walk_L0_p2m(
 
     rc = NESTEDHVM_PAGEFAULT_DONE;
 direct_mmio_out:
-    *L0_gpa = (mfn_x(mfn) << PAGE_SHIFT) + (L1_gpa & ~PAGE_MASK);
+    *L0_gpa = mfn_to_maddr(mfn) + (L1_gpa & ~PAGE_MASK);
 out:
     p2m_put_gfn(p2m, gaddr_to_gfn(L1_gpa));
     return rc;
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -565,11 +565,10 @@ int epte_get_entry_emt(struct domain *d,
     if ( gmtrr_mtype == -EADDRNOTAVAIL )
         return -1;
 
-    gmtrr_mtype = v ? mtrr_get_type(&v->arch.hvm.mtrr,
-                                    gfn_x(gfn) << PAGE_SHIFT, order)
+    gmtrr_mtype = v ? mtrr_get_type(&v->arch.hvm.mtrr, gfn_to_gaddr(gfn),
+                                    order)
                     : X86_MT_WB;
-    hmtrr_mtype = mtrr_get_type(&mtrr_state, mfn_x(mfn) << PAGE_SHIFT,
-                                order);
+    hmtrr_mtype = mtrr_get_type(&mtrr_state, mfn_to_maddr(mfn), order);
     if ( gmtrr_mtype < 0 || hmtrr_mtype < 0 )
         return -1;
 


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 10:13:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 10:13:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760362.1170190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUO8e-0001xo-Pj; Thu, 18 Jul 2024 10:13:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760362.1170190; Thu, 18 Jul 2024 10: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 1sUO8e-0001xh-ND; Thu, 18 Jul 2024 10:13:28 +0000
Received: by outflank-mailman (input) for mailman id 760362;
 Thu, 18 Jul 2024 10:13:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUO8d-0001xY-0N
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 10:13:27 +0000
Received: from mail-vk1-xa2d.google.com (mail-vk1-xa2d.google.com
 [2607:f8b0:4864:20::a2d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5eb73f72-44ee-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 12:13:26 +0200 (CEST)
Received: by mail-vk1-xa2d.google.com with SMTP id
 71dfb90a1353d-4ef12e5658bso239408e0c.2
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 03:13:26 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b79c4f2d4asm6819716d6.33.2024.07.18.03.13.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 03:13: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: 5eb73f72-44ee-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721297605; x=1721902405; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OefzKynkeKpsMmI3qbipWUC6iLi7/CXxGFep84a+DD4=;
        b=kkc7M69/v4ZSDCUt1EVMNUNY8yJk3rVT7KC+pUsLQazTwwLYiNsYYbnaI0LdPSAuAm
         ZtL7EBR+eqfzzzC4UyWwqDIpbP7j6gPc63bSP8/7FfWVH2WIzcI3B9q17RNEmZKNAig7
         WpDaPaOYNaGdYk8IC1h8ctdJo/RA8a3XCJCy0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721297605; x=1721902405;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OefzKynkeKpsMmI3qbipWUC6iLi7/CXxGFep84a+DD4=;
        b=glY60HAekh+8SPT/p4+mpSDrcD3q2C1R4Twe3fDtWYNsn6P3xWObTv0D0oNV/sNKOx
         Mh0nu+HDF9eqnusOvAlU0DNWmxPk+1JIJfeZb3iAHcX8REZEVZTKvYzkLPNKha3wuw7r
         LnjYECpnsJv3RbIEryjXQsKqJR3NlKchFJjPGjtRDltL3ISF0/221vqPOYyDEQsiTbBl
         QASrXB1AEXPzV2igxf5dX/hyydhX5WbYVNVTrI1Ya/mA0jY0ySeB7Rx5HKZehvjyGeqJ
         g3FQl3klxg1nQILW7DHVUsJWkB3vmY+oQ2xRy81NQVg9EWIy6/vGgOeCms2/vxNdcA7p
         PYvQ==
X-Forwarded-Encrypted: i=1; AJvYcCWopxVcy/Q/g4C/3rH5ruiYohu9w96c2UBMY6LC70XPqKVU/QbcU8IdlEbBd4IWmeiDeJQdmkG6O8PAI7UXYhg7zp13gePi9Y6RHXNPrN0=
X-Gm-Message-State: AOJu0YxsguQE/bC48diF3D/JLadQfjhTlVhOriVOxJ6bHmynouZj3/rO
	+yiyQm1Zl10UnoxbwZDQZrJpeC7FJFYMWN5s5mekO1y+G/sWefnFJ/fX4hdWBGg=
X-Google-Smtp-Source: AGHT+IE4Dy2/XPPkqJteKsSFrZOrWhvhH2eGk/8EgYhL32QI3XKaqb9DRSetVE6cUedWE+0t+MZYdA==
X-Received: by 2002:a05:6122:1aca:b0:4f2:dffc:48fd with SMTP id 71dfb90a1353d-4f4df652705mr5378768e0c.3.1721297604868;
        Thu, 18 Jul 2024 03:13:24 -0700 (PDT)
Message-ID: <cafd6e1e-c9fc-46ff-b635-7dbd48490c09@citrix.com>
Date: Thu, 18 Jul 2024 11:13:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: don't open-code [gm]fn_to_[gm]addr()
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: <3a6575b4-8b03-41ce-93e3-a874f23d6522@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <3a6575b4-8b03-41ce-93e3-a874f23d6522@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18/07/2024 11:11 am, Jan Beulich wrote:
> At least in pure address calculation use the intended basic construct
> instead of opend-coded left-shifting by PAGE_SHIFT. Leave alone page
> table entry calculations for now, as those aren't really calculating
> addresses.
>
> No functional change.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 10:30:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 10:30:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760374.1170201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUOP0-0005JB-5w; Thu, 18 Jul 2024 10:30:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760374.1170201; Thu, 18 Jul 2024 10:30: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 1sUOP0-0005J4-22; Thu, 18 Jul 2024 10:30:22 +0000
Received: by outflank-mailman (input) for mailman id 760374;
 Thu, 18 Jul 2024 10:30: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=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUOOy-0005Iy-H9
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 10:30:20 +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 ba28e553-44f0-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 12:30:17 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2eee1384e0aso8500931fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 03:30: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
 d9443c01a7336-1fc0bb6fb25sm89896805ad.11.2024.07.18.03.30.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 03:30: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: ba28e553-44f0-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721298617; x=1721903417; 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=HxNKuvy/zBGVOu/zcJ7AqOHugfc2mwFTevSCPeXANuc=;
        b=FWsT10KZpydH+7qDTtYlLV0o3exH68tYS4qr89UbiLjW9JbuJLqO85sbT7HPQRfYcU
         hP3Sh8FRFxXyO4Iq0ibrwDnIGrp9xXGeIe0lAWQCFuoqPCxSgco5zLAPORU2MVA1Zsn8
         I34dRxrlskv2e6bSijZHjRLL+adz7HF0+phGHJ5r3XM+ySuBcN/cXmvmBjzSqaR7uH5E
         OhEOWwTuq+9c4EstBI453tIgLL4+ll+XC4c4suRJ0NSJ5cm2RnsmLM0WRw22TsuZzHFG
         LzN4W7kKBSJdZ2szpVgNILKZYg6U9kojHZeDMBhkITeB0fxZ5RNnbhvkKTcpOomPQPJR
         6NnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721298617; x=1721903417;
        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=HxNKuvy/zBGVOu/zcJ7AqOHugfc2mwFTevSCPeXANuc=;
        b=G3FGSTdZnpLvJ4QJp/qP8kKbeJh0RmnHCw1HeCkKbdTfgR6VKWUfogOL1HZbqrSG4G
         udJ8UriBHpY4eHf4ebMUYC2M8hT5wzliQ9RUhF/pEaL3b+y7ZKv2OZ0AclWTK8rCvYSY
         ZO9Lk3A/2Im4nvuP+VC1SGeS0nOqXQyotJTA2P6BcMojE1yx6S5K8rTwU3mRYcL+gKqa
         hOgLrt24jdxl61iNg69N7eOqL8cVVjwnQGK559Kn3AvV6BfTWwy4tV89865eG6M3m8CU
         zfSupShXAGxOmaPRxfY4M2w951k6LDFgg/tZ0VoM1mGlKJknwCr6k871ltFv3HrVCiK5
         +vZg==
X-Gm-Message-State: AOJu0YxkBucWh1xUYqk+wh4+gAuB3tm2TvIeYPjiX7Lki9a+9pItlfko
	kqPB/RNCYWRZVTFlJu4sIT9GGD44/5I43RAK3pyGxNTik/v4tWGomRDUYgEvtuUawuhbAopWNUk
	=
X-Google-Smtp-Source: AGHT+IGMOuCPcuquFrDjDueuVCU4IJZYrSRLr7YMVWptk0GvKuZpKiHnWtHbufz96/m7biP0Jk3kTg==
X-Received: by 2002:a2e:990a:0:b0:2ee:8698:10e8 with SMTP id 38308e7fff4ca-2ef05c6fd82mr14031901fa.20.1721298617252;
        Thu, 18 Jul 2024 03:30:17 -0700 (PDT)
Message-ID: <f3998ed5-4122-487b-aaa8-8683bddb6e63@suse.com>
Date: Thu, 18 Jul 2024 12:30:10 +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] MAINTAINERS: drop separate x86/mm section
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Let the subtree fall under general x86 maintainership instead, then also
properly reflecting Roger's role there.

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

--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -594,12 +594,6 @@ F:	tools/misc/xen-cpuid.c
 F:	tools/tests/cpu-policy/
 F:	tools/tests/x86_emulator/
 
-X86 MEMORY MANAGEMENT
-M:	Jan Beulich <jbeulich@suse.com>
-M:	Andrew Cooper <andrew.cooper3@citrix.com>
-S:	Supported
-F:	xen/arch/x86/mm/
-
 X86 MEMORY PAGING
 S:	Orphaned
 F:	xen/arch/x86/mm/mem_paging.c


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 11:03:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 11:03:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760381.1170210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUOuj-0001bq-JC; Thu, 18 Jul 2024 11:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760381.1170210; Thu, 18 Jul 2024 11:03:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUOuj-0001bj-Ge; Thu, 18 Jul 2024 11:03:09 +0000
Received: by outflank-mailman (input) for mailman id 760381;
 Thu, 18 Jul 2024 11:03: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=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUOui-0001bd-F2
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 11:03:08 +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 4fb3fe05-44f5-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 13:03:07 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a77c0b42a8fso299937366b.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 04:03: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
 98e67ed59e1d1-2cb7750674csm391966a91.43.2024.07.18.04.03.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 04:03: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: 4fb3fe05-44f5-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721300586; x=1721905386; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+lfW6T5F+GyusfZueKEisOk7nFOz6THNX0AdXydSyH0=;
        b=GwguhWT7b7X/S1kxTzXZkr5BWUp715qPTS8cgu/KF3e0gvo2uXwiu7yzxHEoSQu9nU
         wSNQU+GRMfCH4zum/vGB64VvMr1o2WhCTykezVvp/y/8/Zh84Bu6YN5Lun1VKEHtaJJ7
         1aWcAsONScIQJPk+3A4k3xYd7O2YFS8XjI+bOjcjAZQo5KJEqrzEp7YVmEEJm40J6iLG
         rCiSje3pNGkPEP8AeYytX+gIlSeGL/098ChyPE0jGne3kbtjxqKyZjZn1WFi5oYqj/pn
         w2Ejwe5PPF7/+S8UWNYG+uz6PhjEIGaraFTW17/qT5JRRgffBaKPU/o4fOe+1778wGNC
         8wHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721300586; x=1721905386;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+lfW6T5F+GyusfZueKEisOk7nFOz6THNX0AdXydSyH0=;
        b=rY/OalAMSgCxnJNNPvII/WDyZgUOqVMjs4gYP3kCHdEwZ2Hu831RUrZY+Yff6oUn6B
         YtjrB8uF1jdHX3Ez/uN+R3tHgELFZPrNTK4i0DMxiajeiw6jYMTRUueaZTTPRC8yaqP5
         C2nqsLdytKFjPsGhhVJSgt8OCQD5etAhihwGRyz9DKxQ6OOQyL7p+pD8SRCrYCDVnYKS
         ZEDAax2uvoOKxMKwfnsIX65vD1oO2jj0BGd5WiHg0GmYE8Xk0eFGhwwvXk+5Xs5avJ5s
         VhdOFvMPD/UbV7+VjIX2e8XN3umo3Gocn0Yk0Zg5V8bWVplrkCSO1HgQ3H7cb435RbxF
         wzRg==
X-Forwarded-Encrypted: i=1; AJvYcCXg2EAyxHpDuqTCXWIN+sujgP34muqAjycKWQygWBX5Uwls93HzPMHbAENDqpHzf+oRkvXWy+qLOBlzi3/GbWIEGhhrUVqZ3gs42sjWEBU=
X-Gm-Message-State: AOJu0YzzGoco+va/a8SKam9lhHBowADLpTHmgw2+HEWJToSwKo4fkzTD
	6kfrMcOjKmyw6WXKYkQkj7AeNv+6je8y0JYmdzHswTzM4BQEL2p/nRcS4OShCw==
X-Google-Smtp-Source: AGHT+IHgahk4UhuRtT119x4vbfjn4GnexYb6dBT7H+UToBtNVmX3H2h5g9/8TPyjXW1ovfg4tnKaYg==
X-Received: by 2002:a17:906:2a91:b0:a77:b349:ffd8 with SMTP id a640c23a62f3a-a7a0f79b834mr252711266b.32.1721300586191;
        Thu, 18 Jul 2024 04:03:06 -0700 (PDT)
Message-ID: <32302065-672c-480f-8491-d73982598e77@suse.com>
Date: Thu, 18 Jul 2024 13:02:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to
 fuzz/x86_instruction_emulator
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.06.2024 00:47, Tamas K Lengyel wrote:
> This target enables integration into oss-fuzz. Changing invalid input return
> to -1 as values other then 0/-1 are reserved by libfuzzer.

And existing behavior (for afl) is unaffected because there we (wrongly)
ignore the return value altogether.

> @@ -67,7 +70,8 @@ distclean: clean
>  
>  .PHONY: clean
>  clean:
> -	rm -f *.a *.o $(DEPS_RM) afl-harness afl-harness-cov *.gcda *.gcno *.gcov
> +	rm -f *.a *.o $(DEPS_RM) *.gcda *.gcno *.gcov \
> +        afl-harness afl-harness-cov libfuzzer-harness
>  	rm -rf x86_emulate x86-emulate.c x86-emulate.h wrappers.c cpuid.c

This is what I said for v1:

"I'm inclined to suggest it's time to split this line (e.g. keeping all the
 wildcard patterns together and moving the rest to a new rm invocation)."

Could this really be misunderstood to mean anything other than

clean:
	rm -f *.a *.o $(DEPS_RM) *.gcda *.gcno *.gcov
	rm -f afl-harness afl-harness-cov libfuzzer-harness
	rm -rf x86_emulate x86-emulate.c x86-emulate.h wrappers.c cpuid.c

? With that
Acked-by: Jan Beulich <jbeulich@suse.com>
and I'm kind of okay making that adjustment myself while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 11:04:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 11:04:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760387.1170222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUOw1-00027h-UY; Thu, 18 Jul 2024 11:04:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760387.1170222; Thu, 18 Jul 2024 11:04: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 1sUOw1-00027a-Pf; Thu, 18 Jul 2024 11:04:29 +0000
Received: by outflank-mailman (input) for mailman id 760387;
 Thu, 18 Jul 2024 11:04: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=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUOw1-00023K-15
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 11:04:29 +0000
Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com
 [2607:f8b0:4864:20::835])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f7b925d-44f5-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 13:04:27 +0200 (CEST)
Received: by mail-qt1-x835.google.com with SMTP id
 d75a77b69052e-447fd75f9aeso774301cf.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 04:04:27 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44f96aa7c3fsm1225911cf.77.2024.07.18.04.04.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 04:04: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: 7f7b925d-44f5-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721300666; x=1721905466; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jmhT83sV3lSa35vdLnqQlBkVz01EM7Gvc+yjOm/6fAE=;
        b=XgkMSIAw8WOpMEv3JsPXjgLQEvHS7gdmemfdkv4njRKtmdtbDYmSEd5F19TbHEmpTU
         qX5tW6hu25EZsOjgCM3T0WmVRIU+sNl7j3WOxCs0oCwhstlDXrlxcWdkTVBQhlDs4Be5
         i8c0wJVQPLMhJIFvv+YS70XNSdDfw2tXppTGk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721300666; x=1721905466;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jmhT83sV3lSa35vdLnqQlBkVz01EM7Gvc+yjOm/6fAE=;
        b=BMtV39s7TYjJZiNr4Yndu3a1//m7StSL24gtwDi+G0sxxugJMwsAksvSbuh9e7aMnA
         5X0QSwY2zsIFVkF3Va+gP/y5f05hx6Qm8irZ6vNWG++wvDx9dEriwgQ+UaC+68FlXHQH
         PJWZqHGoqykCLnyDyhR3Nr+u8cNiNdd80O6/ncf4B/lr/PMoRA/lx/paO4G5lN6zqNE6
         wnoKdrtbzvS2WxTQX6t8rqbCU+qbfdc0F/1a/1J3IkFG7Fi/x1MdeOqW1imDcMx3Y5eX
         daDcG9ipIm6b9VVht3mFVZLXlmaHd75b4X6J69s1Hh6FFGk4QWUXZXTGCtmy2huIkFhC
         3iPw==
X-Forwarded-Encrypted: i=1; AJvYcCXi93FjuptgsyvlQx3vsptsxAkTSbBUO98zrHYQarqrMlYoxHMMAl+PEfAbd39lBXtFM4AC99ekjkMdEGPbHGGyLzQntrWNJKjp/uROetI=
X-Gm-Message-State: AOJu0YwbkCkGHTMQAKWmuaKLAKfZF7fv6UnNriH0cnApFxVzy7sAJ5V3
	u79tdFipUwFewox/OhcQnncRbtpzSbJLuEIK7hFsMLN2IcZ4SoNYyAKdkLelQF8=
X-Google-Smtp-Source: AGHT+IHgs1ZpEmAikJwgUugYm5sPG/3xM6IFUSp6pK4Fz8NOBDIREfI9f8tvMfcdGJ/6+2TIKGa3nA==
X-Received: by 2002:ac8:5983:0:b0:445:b5b6:343c with SMTP id d75a77b69052e-44f9681526dmr5544061cf.0.1721300666278;
        Thu, 18 Jul 2024 04:04:26 -0700 (PDT)
Message-ID: <14671837-7eb7-4ec6-ac04-8b0f7a740502@citrix.com>
Date: Thu, 18 Jul 2024 12:04:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] MAINTAINERS: drop separate x86/mm section
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: <f3998ed5-4122-487b-aaa8-8683bddb6e63@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <f3998ed5-4122-487b-aaa8-8683bddb6e63@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18/07/2024 11:30 am, Jan Beulich wrote:
> Let the subtree fall under general x86 maintainership instead, then also
> properly reflecting Roger's role there.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 11:18:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 11:18:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760395.1170231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUP8o-0004WO-2O; Thu, 18 Jul 2024 11:17:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760395.1170231; Thu, 18 Jul 2024 11: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 1sUP8n-0004WH-Vb; Thu, 18 Jul 2024 11:17:41 +0000
Received: by outflank-mailman (input) for mailman id 760395;
 Thu, 18 Jul 2024 11: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=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUP8m-0004WB-Ih
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 11:17: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 57493490-44f7-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 13:17:39 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a77bf336171so109272066b.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 04: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
 d9443c01a7336-1fc0bc271a9sm90861785ad.172.2024.07.18.04.17.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 04:17: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: 57493490-44f7-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721301458; x=1721906258; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vXCyi6KKfbmruRiB6+eBQeqPnWRWyLnw/eBpTAfqmKo=;
        b=QG1KgANI6AkqKE5y691lDqpv9S0CHxH2EnAHvaR0jGIJU538esQJ8b4RYJc6XA8Jg2
         UKvpeYezOVBOdTTvyV4uFrgjMPnqDiGSZbishPDuSBrxQ6+y2uVXhqh2mziZGkqV7VB2
         vwgo0Ul0kwxcOFSmjmJYHKMaQ/9RwDwz7QInbwZ7nInTkhPjVBkofUpEiS2D/sSUPXUa
         w4CCcdgncmqY0NddeekPLnbm4cyDT7cK2FbsAy8XLpJEtV94zXro+Nn0Q4fPwezwoDb3
         lXk2IMIfkFl/Vb/ujjyWS43ojrWWFtqUWwyXxHSFe8YP/XSIvt+OVfmGYVWw8eFO+jPr
         EeWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721301458; x=1721906258;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vXCyi6KKfbmruRiB6+eBQeqPnWRWyLnw/eBpTAfqmKo=;
        b=APZjYF5YAsZkn4NFTLUCcWWlXvifyQI65x2Ucq8Fv0XXYrJd5bV7PBTkGickFyQ8aS
         O2wncBXoXIc4NnduGaS5/+b6RKHv89qZo/qSoJ8VOSybvPF+XmM8uY4twD+jPLz4OMdK
         A4LNpZgUm7spbNf6YJ5SMdTU9c3tGONeBv3NPKwuR2NYMmMnV+7lZhdc7JaOlNqS+MuY
         pVoaAumR0X2zutf9ABpsMCY/4T+9aNZzdIHVo/lBvo0uaUCudZWJjQw32cfZCVEiW052
         7EQIxMEl4l4N9fjcYfzM89lgK/tfhyvZF4pcYXv4dBYr9tAXLAdnGq2gAahMRKVVm5yY
         lVMQ==
X-Forwarded-Encrypted: i=1; AJvYcCUMdqq1uQpD5g/0C+jyOye1P5JjQX0PTvlO41xYvrpxJTAoIWtD+6DhRYu026PJR3hqtjQcrcoX5FLAwzR5NJuwqcd32uQCOd09YRSTA5o=
X-Gm-Message-State: AOJu0Yy6TVKVvDL2bTp4w23pwj4F3u+o38MeqnlxTlL0kICILsAhV95T
	Ki55kRzGkXoKB5kgiCp0SCTxVkdjHJm0WpTMSm97C3URX8FrK/x7mYnvWsriZQ==
X-Google-Smtp-Source: AGHT+IGGBFBy7B/3FlMaGv3Y4kfYZCHSVyx3HKo46eU/r8hOpxkthl7YpZ8nZDnuxbGPWHmsnBbiNQ==
X-Received: by 2002:a17:906:f354:b0:a6f:e03a:99d with SMTP id a640c23a62f3a-a7a0eb4dc4dmr266528766b.0.1721301457892;
        Thu, 18 Jul 2024 04:17:37 -0700 (PDT)
Message-ID: <53e3356e-4cc1-475a-91a1-8fc17fda07ab@suse.com>
Date: Thu, 18 Jul 2024 13:17:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] Add scripts/oss-fuzz/build.sh
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <d0974cc40ca68fe197ba7941edd934970d3a92cf.1719355322.git.tamas@tklengyel.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d0974cc40ca68fe197ba7941edd934970d3a92cf.1719355322.git.tamas@tklengyel.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.06.2024 00:47, Tamas K Lengyel wrote:
> --- /dev/null
> +++ b/scripts/oss-fuzz/build.sh
> @@ -0,0 +1,23 @@
> +#!/bin/bash -eu
> +# SPDX-License-Identifier: Apache-2.0

Hmm. Aiui this line is supposed to make unnecessary ...

> +# Copyright 2024 Google LLC
> +#
> +# Licensed under the Apache License, Version 2.0 (the "License");
> +# you may not use this file except in compliance with the License.
> +# You may obtain a copy of the License at
> +#
> +#      http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing, software
> +# distributed under the License is distributed on an "AS IS" BASIS,
> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +# See the License for the specific language governing permissions and
> +# limitations under the License.

... all of this text, provided an entry is first put in ./LICENSES/.

> +################################################################################
> +
> +cd xen

This looks to suggest that the expectation is for the script to be invoked
from the root of a xen.git clone. Imo something like

cd $(dirname $0)/../../xen

would be more flexible.

> +./configure --disable-stubdom --disable-pvshim --disable-docs --disable-xen

Going forward we mean to no longer bundle e.g. qemu in release tarballs,
yet I wonder whether passing a couple of --with-system-...= here wouldn't
be better nevertheless.

> +make clang=y -C tools/include
> +make clang=y -C tools/fuzz/x86_instruction_emulator libfuzzer-harness

In how far is it a requirement to have "clang=y" here? Wasn't this question
even asked before? I'm not even sure whether mid- or long-term we mean to
retain that functionality. Overrides of tool chain (components) may better
be done using CC= and friends. Plus perhaps by whoever is invoking this
script?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 11:20:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 11:20:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760401.1170240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUPBK-0005wQ-Ds; Thu, 18 Jul 2024 11:20:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760401.1170240; Thu, 18 Jul 2024 11: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 1sUPBK-0005wJ-BN; Thu, 18 Jul 2024 11:20:18 +0000
Received: by outflank-mailman (input) for mailman id 760401;
 Thu, 18 Jul 2024 11: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=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUPBJ-0005w6-1h
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 11:20:17 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b47fd165-44f7-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 13:20:15 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2ee920b0781so9209261fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 04:20: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
 d2e1a72fcca58-70b7eca662csm10177182b3a.147.2024.07.18.04.20.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 04:20: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: b47fd165-44f7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721301614; x=1721906414; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mc6QN7fXJBk2HasrqrAYGkWmoE0Im1l/xBI0Ue+u0x8=;
        b=SbR/VMk9KADP1cpF55RuuBYk99P8SmvWum4bEAyO7pzYoeiM6/lVFbuuOFp2z6ZXmZ
         C/kT0VJObW1llF+r/VQJDW1oEsNlv6TiPJUpgBGoYPZNBTq/KMu+4gEWyJrBytp5GSEM
         rraWCY9vB76k8Qe8ZMJNEQwuCiR5csOdqA+/u1ymvJ5jD5K+WikWrN5KJVjlJXoGfFI5
         nc0nAw/lvYuvmd3iXWJuXarKnxY0lvMszwdGZtsXucTc6XuHKrdcFaUmFwLmh+Bwu9gu
         D1PSHkOUNB3317EeYjyzC0kg0JxRg5iIn8HVIQZhibcKKlXXD/tTlzEAK9TNRvT0bcod
         5lAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721301614; x=1721906414;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mc6QN7fXJBk2HasrqrAYGkWmoE0Im1l/xBI0Ue+u0x8=;
        b=Ov8K+oUg2fnuVqkbH7V2YAjMGKGCO/sELbXy0s5JTLSTAn+T3+i1b29/d8ymJ1XkzU
         JkBrY9ZMEFuUUilG+7+X0iozFJETeHSYkK/xkddbiJ/Gn5l5/peG/bSK/Q4ZhuW2Dz9O
         9SdaZF77x7ylh1sfcpVqUd95YADZJ7ALbrZwpkSEUzGScthNKSi6TuMQ2TF92dGTRnOj
         jY3pdZcJdhmuUKhBjF82NXww1Vyb7irKImIDveyks0gPsNvica7GrvC+zQYzkAmjfYaq
         loTQ93RlJsvDOEJxK+yRQRD3mYDlEsusnCSaCs3i4vS796Co66roaGQTjxBfV1CddPWv
         dq0w==
X-Forwarded-Encrypted: i=1; AJvYcCUiz6EA2D0i5uWzJFw94qRTEqBfLx29tV5UW981BzVDyrqe41uwtwaS+YYZBcSw4sybyaIQAG8t5Hn5fAM9XTRDktR2nKR37gfCtbbVLJ8=
X-Gm-Message-State: AOJu0YyVXlbrHVzHJnH+hNPBeWJlN1sOeOqCUf+13RmpTr9hp3ncR/KO
	A4aSeTg+Kkyt9HJI4L/ahfXttBgZ88V/R6bqkfZOm8iZaiYbuUTOLRl4Cvg43g==
X-Google-Smtp-Source: AGHT+IHoYO1TT0Bsh5sPYtbbr3PZL3mEfiMFrTlcZJgkLSGXPHZrJ4lDZLGmYqEhCi+39LeMA9Msxw==
X-Received: by 2002:a2e:9b56:0:b0:2ec:54ec:1741 with SMTP id 38308e7fff4ca-2ef05c7507cmr13282631fa.18.1721301614258;
        Thu, 18 Jul 2024 04:20:14 -0700 (PDT)
Message-ID: <7da4a590-921c-42ed-a734-f8150bea407e@suse.com>
Date: Thu, 18 Jul 2024 13:20:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20 1/4] x86/xstate: Use compression check helper in
 xstate_all()
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
 <c12704135bf9ae1cf59ea4f8a05485d505b7863c.1720538832.git.alejandro.vallejo@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c12704135bf9ae1cf59ea4f8a05485d505b7863c.1720538832.git.alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 17:52, Alejandro Vallejo wrote:
> Minor refactor to make xstate_all() use a helper rather than poking directly
> into the XSAVE header.
> 
> No functional change
> 
> Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>

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




From xen-devel-bounces@lists.xenproject.org Thu Jul 18 11:23:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 11:23:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760406.1170251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUPEY-0006Wg-TN; Thu, 18 Jul 2024 11:23:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760406.1170251; Thu, 18 Jul 2024 11:23:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUPEY-0006WZ-QJ; Thu, 18 Jul 2024 11:23:38 +0000
Received: by outflank-mailman (input) for mailman id 760406;
 Thu, 18 Jul 2024 11:23:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUPEX-0006WT-Rx
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 11:23:37 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2cd418f1-44f8-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 13:23:36 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2eedea0fd88so9132271fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 04:23: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
 d2e1a72fcca58-70b7ecc9965sm9778385b3a.199.2024.07.18.04.23.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 04:23: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: 2cd418f1-44f8-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721301816; x=1721906616; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BQkhRiJhmlIyT8KpzqkTFOqSCn6RIZmXHNiKYpe3CdU=;
        b=UCPBw7ZTZyl6X50INqMccQFQt8cyyYahOChpYRPNK7/5OxBVBBC6OWDWWXkF08Hr2b
         YU+YOQEg966jFxGv3G4H79AeKw+CVdbTIdWOH4bngGmAHylEpnyBek1AYC6C++MICtH0
         VckEWGQyTEoahcNKq537H6HpwAT269UlpSNSV1tuUmBAo+cI9RsEZ9uhn2X+dW+FD0jr
         Yg4cV5c+lfgIQ55D3UGiKt/Uo7nzhJhYxnL4Aysncojj7RXii+xMunL/ZT41FdPcYIT1
         lqV62I7MhYQx2lzlDgzMUH9sJ6DNzb7Y+SWWPjt3wxZcUIRZaiFBCUQeWTyhxTEViV8d
         cNMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721301816; x=1721906616;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BQkhRiJhmlIyT8KpzqkTFOqSCn6RIZmXHNiKYpe3CdU=;
        b=FuAMsLCKSTzkCBqfof0SVuwRWN0Lr74yJu/a2nANQzriGzx/HtlhImYGtd4X3AGcOn
         +513gow/3ad80HR4c3AwZ5rP8o3VJBSgWESwtHx/UkAkacEK/BzyyLCydwhUNVV/B808
         nnGksqCnuE6R+aI8mghxSdjvDQYE+rzjlwyS/D3tKlIsZZ7TafUK1GZ9ocC9lbk1Kvxy
         3jyKcxeGL32l+anyEB0F8DKq+wjnxJM1ALLtuWMPu34RU0+dUxhGwO3JJ5sAant+2286
         HxPU4DWbB2qT6UMD+D4tFq1Lt7dCe4HbeAnFKrHhLcDYBNSKiFHMjfUDWECO0/w9qdti
         CL4g==
X-Forwarded-Encrypted: i=1; AJvYcCV6u7Tp4rIMrtXzpVTWhOh74T8MuBuj5l9ohKXrA98f1sythJoYtaKsKbMNElxL6zl9+zbpIUqjHJFjFbIIjSMYgyYbQLCaJsw1RIP/2h0=
X-Gm-Message-State: AOJu0YznEL0XtpQWCosg7tHgjcUWALmCXO4QW9+yWv/IS1W/V8KX1xHB
	L/UT002/KTpxJM2tgOOd0d8htMR1abOkP4PongJVnAVOgCay7b/jbcZUeJ2vLzAbsWJ0s+P6QSo
	=
X-Google-Smtp-Source: AGHT+IGWEJU6pFAL6aYsOcQzXbuvYKc+74p8AlucKU19FpzyVkApAUbsdBLeqatCRCO4ooaqExrLtw==
X-Received: by 2002:a2e:bc13:0:b0:2ea:7d8f:8d12 with SMTP id 38308e7fff4ca-2ef05d6214dmr15176891fa.48.1721301816213;
        Thu, 18 Jul 2024 04:23:36 -0700 (PDT)
Message-ID: <ac986849-7041-4b1c-89a8-bdf1c4ad29cc@suse.com>
Date: Thu, 18 Jul 2024 13:23:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20 2/4] x86/fpu: Create a typedef for the x87/SSE
 area inside "struct xsave_struct"
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
 <2e2763f4980c98cca0e2c3be057b2299295bb616.1720538832.git.alejandro.vallejo@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2e2763f4980c98cca0e2c3be057b2299295bb616.1720538832.git.alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 17:52, Alejandro Vallejo wrote:
> Making the union non-anonymous causes a lot of headaches,

Maybe better "would cause", as that's not what you're doing here?

> because a lot of code
> relies on it being so, but it's possible to make a typedef of the anonymous
> union so all callsites currently relying on typeof() can stop doing so directly.
> 
> This commit creates a `fpusse_t` typedef to the anonymous union at the head of
> the XSAVE area and uses it instead of typeof().
> 
> No functional change.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 11:48:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 11:48:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760414.1170261 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUPcR-0001uv-Qe; Thu, 18 Jul 2024 11:48:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760414.1170261; Thu, 18 Jul 2024 11:48:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUPcR-0001uo-MX; Thu, 18 Jul 2024 11:48:19 +0000
Received: by outflank-mailman (input) for mailman id 760414;
 Thu, 18 Jul 2024 11:48:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUPcQ-0001ue-Mk; Thu, 18 Jul 2024 11:48:18 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUPcQ-0008Dn-K9; Thu, 18 Jul 2024 11:48:18 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUPcQ-00055e-9O; Thu, 18 Jul 2024 11:48:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUPcQ-0007pj-92; Thu, 18 Jul 2024 11:48:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=PRVq5hFB4/qXYim0sehlrd0K1GEzwE3BYGaar4Ldj+8=; b=WMGP2HnFXKZj1SKP9o+kgj7Gs5
	HkVj55FDb9O4XiYTzs7XStJaKCOOlplGgM4XLATTgmRYslsRuj+s9TLix+55oUk2XLk+18X+0ONm8
	+0+iqzLn/xlEJcf87/hAstmm5d2M+9nPzNNB0slcnwlj29UYIEEX9cbgT3q7wMI8GVBs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186854-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186854: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=57338346f29cea7b183403561bdc5f407163b846
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Jul 2024 11:48:18 +0000

flight 186854 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186854/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl           8 xen-boot         fail in 186844 pass in 186854
 test-armhf-armhf-libvirt      8 xen-boot                   fail pass in 186844

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 186844 like 186830
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 186844 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186844
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186844
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186844
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186844
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186844
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  57338346f29cea7b183403561bdc5f407163b846
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186854  2024-07-18 02:22:20 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 11:49:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 11:49:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760424.1170271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUPdr-0002Vb-7o; Thu, 18 Jul 2024 11:49:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760424.1170271; Thu, 18 Jul 2024 11:49: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 1sUPdr-0002VU-4x; Thu, 18 Jul 2024 11:49:47 +0000
Received: by outflank-mailman (input) for mailman id 760424;
 Thu, 18 Jul 2024 11:49:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUPdp-0002VK-LL
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 11:49:45 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d2b38ecb-44fb-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 13:49:43 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2eea7e2b0e6so11711331fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 04:49: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
 d9443c01a7336-1fc0bc271e2sm91437115ad.168.2024.07.18.04.49.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 04: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: d2b38ecb-44fb-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721303383; x=1721908183; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NTO1Moi3WwzvBCk43Y+esa+kZmalZJva7Yg3Lfc4qPU=;
        b=XQZ96ZHR4oS1nKPJUnRR6K+Am/SAN191MRTqj98ljsXPNQ4Cqdt58b5H3GxNpRBPYp
         WYcBR9puMP7c8RE3Devp8+aZi4v3aKwXX8MNvrw83syOn3qH0yjxKGHc7dtuerJckP+U
         34NOPs2SPkXAk7CLCAIM2hjF1wGn9Bht1wHDx5ouT5OqCOqX6wmjCzhPkAbgOUBM2sMm
         8PGg+cj34Dms6xRjxXii9ZSxB7OBkGe158jK8875sIPhmGBL1JB5dgQYGsRXJBSVfyZG
         KKE1v5fACQGdY4pnAxQyCm9/2Mtc9ynbvwZ9zrjsq2/9FOkfWPcWOwEV8IA3JzQxCBPy
         MFCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721303383; x=1721908183;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NTO1Moi3WwzvBCk43Y+esa+kZmalZJva7Yg3Lfc4qPU=;
        b=AZTrKrS+CRkVqhd6d9rvBfbW9gGO8cuY0WLYGBkh7ySFn5gIYDJnmY4eyeA55qnPhr
         l8fWxbP6h/gnDeOzzOt5dCgdkPWoCGSgLTU7uwtijJqDRdKFYvKleQpsMuO4/GRjWzRk
         SWevzSDVuKs5iaRdxR87jAnmw1MBj4zlzKD9PKVrHPbL2dF9njsNympMCZhSvf8Uvwwo
         oRRi4xsKwb0fUGpErZH/rI9Mv/R4e5QeeiBHMRshWUuiZLCy8EAaV5su7s/QQG1lvMXc
         GGaoiohGBVFkvSGNDtWfyTWpD24M/gomQo2ZRWLCd7c0LKOJ+hTzoDx1AjjzZiiurMuY
         eqVA==
X-Forwarded-Encrypted: i=1; AJvYcCV6RMU1C3DOGgzW+ZCf22f54Tl/mIPJKo/r9clXIxsBMd0LVw9SbzXajG97TURtCtbw3EJlZEu61COSeG0zx9qWW6JIPTeeDPJsY7LYWTg=
X-Gm-Message-State: AOJu0YySuwUEl5WhoKURvqeoJO6N2gZ0fWJblVMQNHquy5HGaey0s9Fs
	gCm2KotsX4If/T4OsjQ9CZuDjdNy25j+GUJJt7aOSnmK00MAN9Kaqv+NfYFHjw==
X-Google-Smtp-Source: AGHT+IGSSQSmSpFqaXtNZ16wrfLBT6XC0mP8TSK3rU8io1BPo6doXdX9wO8vbSOn/+r+3w9e+0SHNA==
X-Received: by 2002:a2e:88c5:0:b0:2ec:557b:f89c with SMTP id 38308e7fff4ca-2ef05d43a9fmr15614321fa.31.1721303382900;
        Thu, 18 Jul 2024 04:49:42 -0700 (PDT)
Message-ID: <78ae0b2f-e0a6-4ab9-b7a6-43e1357ff9b9@suse.com>
Date: Thu, 18 Jul 2024 13:49:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20 3/4] x86/fpu: Combine fpu_ctxt and xsave_area in
 arch_vcpu
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
 <170c78f39dfef620d9060be3f1b31313673f09b9.1720538832.git.alejandro.vallejo@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <170c78f39dfef620d9060be3f1b31313673f09b9.1720538832.git.alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 17:52, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -1343,7 +1343,8 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
>  #define c(fld) (c.nat->fld)
>  #endif
>  
> -    memcpy(&c.nat->fpu_ctxt, v->arch.fpu_ctxt, sizeof(c.nat->fpu_ctxt));
> +    memcpy(&c.nat->fpu_ctxt, &v->arch.xsave_area->fpu_sse,
> +           sizeof(c.nat->fpu_ctxt));

Now that the middle argument has proper type, maybe take the opportunity
and add BUILD_BUG_ON(sizeof(...) == sizeof(...))? (Also in e.g.
hvm_save_cpu_ctxt() then.)

> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -591,12 +591,7 @@ struct pv_vcpu
>  
>  struct arch_vcpu
>  {
> -    /*
> -     * guest context (mirroring struct vcpu_guest_context) common
> -     * between pv and hvm guests
> -     */
> -
> -    void              *fpu_ctxt;
> +    /* Fixed point registers */
>      struct cpu_user_regs user_regs;

Not exactly, no. Selector registers are there as well for example, which
I wouldn't consider "fixed point" ones. I wonder why the existing comment
cannot simply be kept, perhaps extended to mention that fpu_ctxt now lives
elsewhere.

> --- a/xen/arch/x86/x86_emulate/blk.c
> +++ b/xen/arch/x86/x86_emulate/blk.c
> @@ -11,7 +11,8 @@
>      !defined(X86EMUL_NO_SIMD)
>  # ifdef __XEN__
>  #  include <asm/xstate.h>
> -#  define FXSAVE_AREA current->arch.fpu_ctxt
> +#  define FXSAVE_AREA ((struct x86_fxsr *) \
> +                           (void*)&current->arch.xsave_area->fpu_sse)

Nit: Blank missing after before *.

> --- a/xen/arch/x86/xstate.c
> +++ b/xen/arch/x86/xstate.c
> @@ -507,9 +507,16 @@ int xstate_alloc_save_area(struct vcpu *v)
>      unsigned int size;
>  
>      if ( !cpu_has_xsave )
> -        return 0;
> -
> -    if ( !is_idle_vcpu(v) || !cpu_has_xsavec )
> +    {
> +        /*
> +         * This is bigger than FXSAVE_SIZE by 64 bytes, but it helps treating
> +         * the FPU state uniformly as an XSAVE buffer even if XSAVE is not
> +         * available in the host. Note the alignment restriction of the XSAVE
> +         * area are stricter than those of the FXSAVE area.
> +         */
> +        size = XSTATE_AREA_MIN_SIZE;

What exactly would break if just (a little over) 512 bytes worth were allocated
when there's no XSAVE? If it was exactly 512, something like xstate_all() would
need to apply a little more care, I guess. Yet for that having just always-zero
xstate_bv and xcomp_bv there would already suffice (e.g. using
offsetof(..., xsave_hdr.reserved) here, to cover further fields gaining meaning
down the road). Remember that due to xmalloc() overhead and the 64-byte-aligned
requirement, you can only have 6 of them in a page the way you do it, when the
alternative way 7 would fit (if I got my math right).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 12:19:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 12:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760438.1170281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUQ6K-0006wc-Gm; Thu, 18 Jul 2024 12:19:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760438.1170281; Thu, 18 Jul 2024 12:19: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 1sUQ6K-0006wV-Cu; Thu, 18 Jul 2024 12:19:12 +0000
Received: by outflank-mailman (input) for mailman id 760438;
 Thu, 18 Jul 2024 12:19:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUQ6I-0006wO-Ni
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 12:19:10 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eeefc8f0-44ff-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 14:19:08 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2eedec7fbc4so9541611fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 05:19: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
 d9443c01a7336-1fc0bc263d2sm91548705ad.128.2024.07.18.05.19.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 05:19: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: eeefc8f0-44ff-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721305148; x=1721909948; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ycnfUGnAhhal14c0Sgk9vB5RtvTGK7nNT8ySYL18EgE=;
        b=T9raNoNe/hOx8bSsyj19MGfs8Se8NKXVeKAOJpb1EeBFkIcnCAbqwHWtccHt0iOAO6
         Xu1PibvXLWwudVn0V7a8FWWHmSZwpvZ3b//f46FUYOchtUWMvwPt7roEdyqj6YXuT3l5
         eX8LrFGrqO2J2aFq0W5JqkhDpQmzSFZM95BrS9aG156Obe/NtRhHPTVq3vOEL8Yz9WUP
         ApfFBZYqwA4t//vS27d0yT9jIfM2YsLB6LZJ2glS3E543YZkPgGMmc9qphPeuEkeH4t+
         7pewoLUnPE4AjycC7Z1CcsBNRNmU2pWlAMm1rrAuBxoY9X0uJgQFBFbgqKcFbiGuGOtp
         zflQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721305148; x=1721909948;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ycnfUGnAhhal14c0Sgk9vB5RtvTGK7nNT8ySYL18EgE=;
        b=FgTW4obZCReIJB0DS9oBcSCjKWESeTZred5h4kgJyg82oxgjcwPMG66/ipBcKxoJFH
         PvgA4t8oTKtp1qXLyE2lRonT7LhJS5NlqRrxjMu4VQXSue/xvCK0g0ChtbpIUst2of0+
         QNy8KADEz69S9oVwX7oLV/Hycw5QYxrNIXR4sFqObMml4CzyjvAQFTHvBEggluWrt4ql
         CUmQ02WXLFEl8pCseHSJH5REYtQ+k2olutLMsUi62UINjsSU/apEoWnICP0Wx2SKRBoV
         9I62fmveHofockJJHPwj8Tbg6eoUaCYRq2gB97RVeBKqhaxqv0Ulwyb1qBRAgipJlpQX
         CIeA==
X-Forwarded-Encrypted: i=1; AJvYcCVHlyEfNA4Ydij8rxcU2L5bbl0oJ/ctBlt28FAhqOWYIU0js+JcFj1PjeisU27WS6X6m56N3ONRls3qwYHIZreNs1w/os8wYDPVxNZdomE=
X-Gm-Message-State: AOJu0YwVlx6brHQbbztO6m3xcNcz8vZWjla5wBH6nR04Ed/44275Fo3F
	1Zo3gTJhUmwdJm3uaNGmI0Yr27pU48HL+isJEO/STCHUCK/UHyRxuTnta6I7Qw==
X-Google-Smtp-Source: AGHT+IGpICZsWMOtcYjE6zRBls3Hm+0TeX1iz9WVO3suRG8arZLjCoWdr6hEO7Sne3SQgLFOOosQmg==
X-Received: by 2002:a2e:bc05:0:b0:2ee:4a63:e927 with SMTP id 38308e7fff4ca-2ef05d43915mr19004941fa.39.1721305148181;
        Thu, 18 Jul 2024 05:19:08 -0700 (PDT)
Message-ID: <c311ef0f-7d86-4a2b-b056-9bfa0665113e@suse.com>
Date: Thu, 18 Jul 2024 14:19:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20 4/4] x86/fpu: Split fpu_setup_fpu() in two
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
 <da30dedcfa68d7c30375b96c85424e13ec6d458b.1720538832.git.alejandro.vallejo@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <da30dedcfa68d7c30375b96c85424e13ec6d458b.1720538832.git.alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 17:52, Alejandro Vallejo wrote:
> It's doing too many things at once and there's no clear way of defining what
> it's meant to do. This patch splits the function in two.
> 
>   1. A reset function, parameterized by the FCW value. FCW_RESET means to reset
>      the state to power-on reset values, while FCW_DEFAULT means to reset to the
>      default values present during vCPU creation.
>   2. A x87/SSE state loader (equivalent to the old function when it took a data
>      pointer).
> 
> Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> ---
> I'm still not sure what the old function tries to do. The state we start vCPUs
> in is _similar_ to the after-finit, but it's not quite (`ftw` is not -1). I went
> for the "let's not deviate too much from previous behaviour", but maybe we did
> intend for vCPUs to start as if `finit` had just been executed?

A relevant aspect here may be that what FSXR and XSAVE area have is only an
abridged form of the tag word, being only 8 bits in size. 0x00 there is
equivalent to FTW=0xffff (all st(<N>) empty). That's not quite correct for
the reset case indeed, where FTW=0x5555 (i.e. all st(<N>) zero, requiring
the abridged form to hold 0xff instead). While no-one has reported issues
there so far, I think it wouldn't be inappropriate to correct this.

> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -1162,10 +1162,17 @@ static int cf_check hvm_load_cpu_ctxt(struct domain *d, hvm_domain_context_t *h)
>      seg.attr = ctxt.ldtr_arbytes;
>      hvm_set_segment_register(v, x86_seg_ldtr, &seg);
>  
> -    /* Cover xsave-absent save file restoration on xsave-capable host. */
> -    vcpu_setup_fpu(v, xsave_enabled(v) ? NULL : v->arch.xsave_area,
> -                   ctxt.flags & XEN_X86_FPU_INITIALISED ? ctxt.fpu_regs : NULL,
> -                   FCW_RESET);
> +    /*
> +     * On Xen 4.1 and later the FPU state is restored on a later HVM context, so
> +     * what we're doing here is initialising the FPU state for guests from even
> +     * older versions of Xen. In general such guests only use legacy x87/SSE
> +     * state, and if they did use XSAVE then our best-effort strategy is to make
> +     * an XSAVE header for x87 and SSE hoping that's good enough.
> +     */
> +    if ( ctxt.flags & XEN_X86_FPU_INITIALISED )
> +        vcpu_setup_fpu(v, &ctxt.fpu_regs);
> +    else
> +        vcpu_reset_fpu(v, FCW_RESET);

I'm struggling with the use of "later" in the comment. What exactly is that
meant to express? Fundamentally the XSAVE data is fully backwards compatible
with the FXSR one, I think, so the mentioning of "best-effort" isn't quite
clear to me either.

> --- a/xen/arch/x86/i387.c
> +++ b/xen/arch/x86/i387.c
> @@ -310,41 +310,25 @@ int vcpu_init_fpu(struct vcpu *v)
>      return xstate_alloc_save_area(v);
>  }
>  
> -void vcpu_setup_fpu(struct vcpu *v, struct xsave_struct *xsave_area,
> -                    const void *data, unsigned int fcw_default)
> +void vcpu_reset_fpu(struct vcpu *v, uint16_t fcw)
>  {
> -    fpusse_t *fpu_sse = &v->arch.xsave_area->fpu_sse;
> -
> -    ASSERT(!xsave_area || xsave_area == v->arch.xsave_area);
> -
> -    v->fpu_initialised = !!data;
> -
> -    if ( data )
> -    {
> -        memcpy(fpu_sse, data, sizeof(*fpu_sse));
> -        if ( xsave_area )
> -            xsave_area->xsave_hdr.xstate_bv = XSTATE_FP_SSE;
> -    }
> -    else if ( xsave_area && fcw_default == FCW_DEFAULT )
> -    {
> -        xsave_area->xsave_hdr.xstate_bv = 0;
> -        fpu_sse->mxcsr = MXCSR_DEFAULT;
> -    }
> -    else
> -    {
> -        memset(fpu_sse, 0, sizeof(*fpu_sse));
> -        fpu_sse->fcw = fcw_default;
> -        fpu_sse->mxcsr = MXCSR_DEFAULT;
> -        if ( v->arch.xsave_area )
> -        {
> -            v->arch.xsave_area->xsave_hdr.xstate_bv &= ~XSTATE_FP_SSE;
> -            if ( fcw_default != FCW_DEFAULT )
> -                v->arch.xsave_area->xsave_hdr.xstate_bv |= X86_XCR0_X87;
> -        }
> -    }
> +    v->fpu_initialised = false;
> +    *v->arch.xsave_area = (struct xsave_struct) {
> +        .fpu_sse = {
> +            .mxcsr = MXCSR_DEFAULT,
> +            .fcw = fcw,
> +        },
> +        .xsave_hdr.xstate_bv = fcw == FCW_RESET ? X86_XCR0_X87 : 0,
> +    };
> +}

Old code checked against FCW_DEFAULT uniformly. You switching to checking
against FCW_RESET is no functional change only because all callers pass
either of the two values. I wonder whether the new function's parameter
wouldn't want to be a boolean (reset vs init).

> -    if ( xsave_area )
> -        xsave_area->xsave_hdr.xcomp_bv = 0;
> +void vcpu_setup_fpu(struct vcpu *v, const void *data)
> +{
> +    v->fpu_initialised = true;
> +    *v->arch.xsave_area = (struct xsave_struct) {
> +        .fpu_sse = *(fpusse_t*)data,

First of all please never cast away const. See Misra rule 11.8. And then
a nit again: Blank ahead of the latter of the two *-s, please.

> --- a/xen/arch/x86/include/asm/i387.h
> +++ b/xen/arch/x86/include/asm/i387.h
> @@ -31,10 +31,29 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts);
>  void vcpu_restore_fpu_lazy(struct vcpu *v);
>  void vcpu_save_fpu(struct vcpu *v);
>  void save_fpu_enable(void);
> -
>  int vcpu_init_fpu(struct vcpu *v);
> -struct xsave_struct;
> -void vcpu_setup_fpu(struct vcpu *v, struct xsave_struct *xsave_area,
> -                    const void *data, unsigned int fcw_default);
>  void vcpu_destroy_fpu(struct vcpu *v);
> +
> +/*
> + * Restore `v`'s FPU to known values
> + *
> + * If fcw == FCW_RESET, then the reset state is power-on RESET.
> + *
> + * Otherwise `mxcsr` is set to `MXCSR_DEFAULT`, `fcw` is overriden with the
> + * `fcw` argument and everything else is zeroed out.

Backticks are used for two different purposes here, which I'm afraid is
confusing. You want to make it easy to tell function arguments from other
entities, imo.

> + * @param v   vCPU containing the FPU
> + * @param fcw Intended FPU Control Word
> + */
> +void vcpu_reset_fpu(struct vcpu *v, uint16_t fcw);
> +
> +/*
> + * Load x87/SSE state into `v`'s FPU

Applicable here then as well.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 12:23:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 12:23:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760445.1170291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUQAC-0008PJ-1P; Thu, 18 Jul 2024 12:23:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760445.1170291; Thu, 18 Jul 2024 12: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 1sUQAB-0008PC-SW; Thu, 18 Jul 2024 12:23:11 +0000
Received: by outflank-mailman (input) for mailman id 760445;
 Thu, 18 Jul 2024 12:23:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUQAB-0008P5-K3
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 12:23:11 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7eee7647-4500-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 14:23:10 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2eeb1ba040aso11445821fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 05:23: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
 d2e1a72fcca58-70b7ec7da24sm9865394b3a.113.2024.07.18.05.23.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 05:23: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: 7eee7647-4500-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721305390; x=1721910190; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eHv1sVimKmANnT8zhJH5+QM7YleOgRHZWZusPjpSvWM=;
        b=VMx4cBH7gPRuuMyWQ9MJFC2VGCPM4nSbzc1pEwE/6mRSQSbjuJ9MWjff0Y2994aOyd
         BslAv7oOtRI+fWzljo5qxnYTQpo9N8dM5F5/AO/rOUwmmFwI113bd8iSY/xIDo4Gs3fy
         CsM8J8UcZqIgHL0Ztn6xC0ZXtyACgQhzfDCSVg+eVrt4Ft7FM4LetzrjJJAViB6RgkrU
         RQjMZtMyJpPE9dkafGW0Rdo1Jpwjrf7HTp5LxduHVTTF2VrIEfscXT0DvDPrjxXTtlLW
         hOhN8DgmO6i/doyfUKddbhPoEDz3hy7qekf03LUBJnXn7M+Ja6w3bOh6WtQlhcKXSL42
         5nQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721305390; x=1721910190;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eHv1sVimKmANnT8zhJH5+QM7YleOgRHZWZusPjpSvWM=;
        b=Edwk301gCDuM0caVBgtaGKJ9ErVrMX9JfgI2N4X4AmVAF2nfan47/D3xMoRIsAiIEe
         /AQjT+xoKDo4ogw6hMtXBdw7QqLVUcVHFCQTyh2hBnfrnJHSIOmjmLtdxfd2I9iRHZeq
         4MVvXVkWQNf1QFAghEV+Jclq8eHKr7pm0KKwJnrXI6OkO/Ull2L8GH5jpq8T/HqdRG+I
         EZnR912qyXw9ZtzQcSA7GLr/kZjp5qBjuLagWsUHV3guIahZdY+72w5pCBIXsJabZ79x
         MpzUhwl0n/0ZxK5xx1cT9WaVr8uePq117GJD79JUPQG4QSlsCVNGYK2AOj/8474nu++x
         H0bQ==
X-Forwarded-Encrypted: i=1; AJvYcCWarlj9CGvUiZiQecd2TfcGz16OXo6UUDgaW0kz22pQEThj/JvokAMC2pdJ6SqhrBsy5RwFwbyS2lAyy9M8d2iwCwygP+Y27HXRFhhWF4Q=
X-Gm-Message-State: AOJu0YwuLEp2A4tsys0l89/ml678zvLMwMEIyceVakCrrI4h6usf7+j+
	hdOY9xzF79hqYeA4O81irFTlGUlvaeAhFH79/xNgALQS0GUj6FEA2eb9T9ua+A==
X-Google-Smtp-Source: AGHT+IE5u/yrHXbOMtDqbQ/OfShqeRnuo7KJg1UYJhQQBv0jhwtELiQFZntfVOGmWcWFntBeJSdOVA==
X-Received: by 2002:a2e:91cb:0:b0:2ec:5964:9c0d with SMTP id 38308e7fff4ca-2ef0599a549mr17653431fa.0.1721305390164;
        Thu, 18 Jul 2024 05:23:10 -0700 (PDT)
Message-ID: <ab44d1d6-de18-48a4-b105-bd91b38d6b0d@suse.com>
Date: Thu, 18 Jul 2024 14:23:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 2/2] x86/cpufreq: separate powernow/hwp/acpi
 cpufreq code
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1720596402.git.Sergiy_Kibrik@epam.com>
 <56f61a1e22ba77fb352d7a18203935c26c815646.1720596402.git.Sergiy_Kibrik@epam.com>
 <c2bc48f1-cdab-4cf5-bd41-f7b4a05a433d@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: <c2bc48f1-cdab-4cf5-bd41-f7b4a05a433d@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 20:32, Jason Andryuk wrote:
> On 2024-07-10 04:30, Sergiy Kibrik wrote:
>> Build AMD Architectural P-state driver when CONFIG_AMD is on, and
>> Intel Hardware P-States driver together with ACPI Processor P-States driver
>> when CONFIG_INTEL is on respectively, allowing for a platform-specific build.
>>
>> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
>> CC: Jason Andryuk <jason.andryuk@amd.com>
>> CC: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

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

Might be a little neater though to have the hwp_active() stub be just a single
line. I may take the liberty to change that while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 12:25:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 12:25:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760451.1170300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUQCf-0000XA-B8; Thu, 18 Jul 2024 12:25:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760451.1170300; Thu, 18 Jul 2024 12:25: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 1sUQCf-0000X3-8b; Thu, 18 Jul 2024 12:25:45 +0000
Received: by outflank-mailman (input) for mailman id 760451;
 Thu, 18 Jul 2024 12:25: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=9B5K=OS=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sUQCe-0000Wh-CT
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 12:25:44 +0000
Received: from mail-qt1-x82b.google.com (mail-qt1-x82b.google.com
 [2607:f8b0:4864:20::82b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d98c0942-4500-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 14:25:43 +0200 (CEST)
Received: by mail-qt1-x82b.google.com with SMTP id
 d75a77b69052e-447e02f3ac9so1151841cf.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 05:25:43 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44f969a24d3sm1871281cf.12.2024.07.18.05.25.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 05:25: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: d98c0942-4500-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721305542; x=1721910342; 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=6MPbPAAKzL4JzxDE/n3qmKVDMq+ZG2ID2v/EiUjazHQ=;
        b=WClkPGLZkqbNOUhFCD9SpclYnPBOB+Pvj0kGOuMavpRkWMOmE1o1l5QcqbH66hzJ1D
         ZgmRjgDkuScrXKslTmymiMpfXWsCeCoodEIdUxufUXRSY2q1hQlFyU7F7HYMH1dEl/4k
         QsrOJHGaEvSkvgpENaN9d7iSin+7U17DJe7PI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721305542; x=1721910342;
        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=6MPbPAAKzL4JzxDE/n3qmKVDMq+ZG2ID2v/EiUjazHQ=;
        b=JqdsAJlFjuQFju5vXdgsBf8ALB7NuaNFT/1HyeLeBn3q5utUzrsPhj/O/DhtfIUDuy
         21Y7oc5w46Zg2F8+zkf4d/QoPdlLEnIKKa8RJ4Rzvs4XHQYtATjsm37LmfUG6+wBPMKF
         cEI0mqCbfAG85hKrUNrWJgTXNu3iAanIXB6BAKFhJW6TImnX9h/AcLGRZG+BgsUI4+Mv
         jl11yAcRhbCz1tqqwgLFW2YyxzSRgT10eE54tG2H4uS4uX08m//0pcpx2FPctIfi5vz3
         +k2Y1YsW+1vrrFYN+5YNUunkr5c8gzvRjypTFGCnEwtO7KfEp0539AqiTvAno9SM42VP
         oHxA==
X-Gm-Message-State: AOJu0Yw48rTzxII4NwJ3r0LCTikO2W9Jr+kGT/6iJtw3nLbmR4pp6++Q
	h2Y5ro9S799tUvCQjLJF7ilcSHYC7Rd72Pf1djiOId4qmxbXGI0Pypc0c+sih+0=
X-Google-Smtp-Source: AGHT+IG/7P3GfdgW3bSX/gfzesGLJY1axYrCCUCpaaEpJnMGzlOrTpkAaFU7q1RXUcI0y/HW94DbLQ==
X-Received: by 2002:a05:622a:13ce:b0:441:315:1c90 with SMTP id d75a77b69052e-44f96966830mr7149111cf.12.1721305541996;
        Thu, 18 Jul 2024 05:25:41 -0700 (PDT)
Date: Thu, 18 Jul 2024 14:25:38 +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>
Subject: Re: [PATCH] MAINTAINERS: drop separate x86/mm section
Message-ID: <ZpkJwgHMm7RCQukB@macbook>
References: <f3998ed5-4122-487b-aaa8-8683bddb6e63@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f3998ed5-4122-487b-aaa8-8683bddb6e63@suse.com>

On Thu, Jul 18, 2024 at 12:30:10PM +0200, Jan Beulich wrote:
> Let the subtree fall under general x86 maintainership instead, then also
> properly reflecting Roger's role there.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 12:36:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 12:36:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760462.1170311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUQMZ-0002VZ-9w; Thu, 18 Jul 2024 12:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760462.1170311; Thu, 18 Jul 2024 12: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 1sUQMZ-0002VS-6Q; Thu, 18 Jul 2024 12:35:59 +0000
Received: by outflank-mailman (input) for mailman id 760462;
 Thu, 18 Jul 2024 12:35: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=Lg7+=OS=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sUQMX-0002VL-Re
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 12:35:57 +0000
Received: from sender4-op-o12.zoho.com (sender4-op-o12.zoho.com
 [136.143.188.12]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 45e3096e-4502-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 14:35:55 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1721306142615762.886477000092;
 Thu, 18 Jul 2024 05:35:42 -0700 (PDT)
Received: by mail-yb1-f169.google.com with SMTP id
 3f1490d57ef6-e04196b7603so760319276.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 05:35: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: 45e3096e-4502-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1721306149; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=m3zpbycuyT4tdA4frOLQc1KUJnzxVxZBU3l+1loALEwkQdiM7E0Cr2/Rnoravrq1bgb7EAhzyTiFkEYIucR3aGuiWrsr7Dkqc08Xip1Cyb675SPLuVXQqSJi0FCKH1EHwojufKJox7Z2RWrmWuDBdR/6hiEzBWohYPv8KbmCzdU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721306149; 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=FRgdaSUZyLRQ3CEP0Nm1cYTilO/hWIfCThtWEAs/Pc8=; 
	b=cuQx11HkDm5L+Y9MHhi9hQIWx++gIKko0xPnvs4p3Ma1ehI7ITxQSLjpF3v0wfLkvKqm0NIy+CU6X5fW+N+3xoqYxpKiqUYjC7U25PlVvvfzRLhp3WixwmTr3yg6XYfsbHcEIL570VicPNylEqdSHZmiYKp1Rdb1za8p+LWWNWg=
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=1721306149;
	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=FRgdaSUZyLRQ3CEP0Nm1cYTilO/hWIfCThtWEAs/Pc8=;
	b=fgxzNepkciV5dmzw4JNCBawaWbNVZjIqhwL4mShqsL6AldoYq935HCazph7mHvf6
	ighMg5KRLfLeHfyWXwYs9wZTYyTYoPs1tfmnl3cOt/NzbXR3x9H6I/K/mbGb/r81EVN
	Ez5pJziKj3I+QjTEzhgMGQEjzGuykwMiDdhsbaLU=
X-Forwarded-Encrypted: i=1; AJvYcCU/BErzsmr3M1RQ9f5Zzx4+iiZ2laWzh1l6yZgcFVUrGwiiTI3xRCyKVWDV5DcSXifPJLnuOzqXdait18JNi8jZXNvABf9VVj1Aox3sDwA=
X-Gm-Message-State: AOJu0YxFN+EcXF6GvKKQLa1HkoOXbh3qzw1ogI903EPEqnIoy/N6KFiy
	VA5BVb5wjSXOx9ct17zNuHWfJ7myfKXBGxsqI3dxacfIudK7wk3rWc9B7V5CNCU0IWxkyCmqXCT
	sw35Dk67yg1WM2Hdzu5oG59eITOQ=
X-Google-Smtp-Source: AGHT+IFkRiVyFjWVz1scjTWu2eSsIXxkMsps6hGwC5ufvZuTLUMhXqCVrgo1tiedOqRSSRkDFoutJ34/FrFZI41q9Hk=
X-Received: by 2002:a05:6902:2b02:b0:e03:4efe:df92 with SMTP id
 3f1490d57ef6-e05ed79632cmr5916397276.53.1721306141820; Thu, 18 Jul 2024
 05:35:41 -0700 (PDT)
MIME-Version: 1.0
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <32302065-672c-480f-8491-d73982598e77@suse.com>
In-Reply-To: <32302065-672c-480f-8491-d73982598e77@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Thu, 18 Jul 2024 08:35:05 -0400
X-Gmail-Original-Message-ID: <CABfawh=_Zg+jQe6muxfd5T+sfy2SJUdF03Q4qXVaF8aNVjhGyQ@mail.gmail.com>
Message-ID: <CABfawh=_Zg+jQe6muxfd5T+sfy2SJUdF03Q4qXVaF8aNVjhGyQ@mail.gmail.com>
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to fuzz/x86_instruction_emulator
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@xenproject.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 18, 2024 at 7:03=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 26.06.2024 00:47, Tamas K Lengyel wrote:
> > This target enables integration into oss-fuzz. Changing invalid input r=
eturn
> > to -1 as values other then 0/-1 are reserved by libfuzzer.
>
> And existing behavior (for afl) is unaffected because there we (wrongly)
> ignore the return value altogether.
>
> > @@ -67,7 +70,8 @@ distclean: clean
> >
> >  .PHONY: clean
> >  clean:
> > -     rm -f *.a *.o $(DEPS_RM) afl-harness afl-harness-cov *.gcda *.gcn=
o *.gcov
> > +     rm -f *.a *.o $(DEPS_RM) *.gcda *.gcno *.gcov \
> > +        afl-harness afl-harness-cov libfuzzer-harness
> >       rm -rf x86_emulate x86-emulate.c x86-emulate.h wrappers.c cpuid.c
>
> This is what I said for v1:
>
> "I'm inclined to suggest it's time to split this line (e.g. keeping all t=
he
>  wildcard patterns together and moving the rest to a new rm invocation)."
>
> Could this really be misunderstood to mean anything other than
>
> clean:
>         rm -f *.a *.o $(DEPS_RM) *.gcda *.gcno *.gcov
>         rm -f afl-harness afl-harness-cov libfuzzer-harness
>         rm -rf x86_emulate x86-emulate.c x86-emulate.h wrappers.c cpuid.c
>
> ?

Evidently, yes.

> With that
> Acked-by: Jan Beulich <jbeulich@suse.com>
> and I'm kind of okay making that adjustment myself while committing.

Thanks! That is appreciated.
Tamas


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 12:53:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 12:53:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760472.1170320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUQdA-0005v9-KX; Thu, 18 Jul 2024 12:53:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760472.1170320; Thu, 18 Jul 2024 12:53:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUQdA-0005v2-Hm; Thu, 18 Jul 2024 12:53:08 +0000
Received: by outflank-mailman (input) for mailman id 760472;
 Thu, 18 Jul 2024 12:53:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=TiGH=OS=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sUQd9-0005uw-G9
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 12:53:07 +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 acc0c68b-4504-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 14:53:05 +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 536541F399;
 Thu, 18 Jul 2024 12:53: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 13B0B136F7;
 Thu, 18 Jul 2024 12:53:03 +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 XPBeAy8QmWYVeQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 18 Jul 2024 12:53: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: acc0c68b-4504-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721307184; 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=AdT5XI7daN7y0jcY4YymDW2f9yIOYl50ejWQ2o+Dr7M=;
	b=P10sI0a0W6vGu8A3hp9Sheg8whyOHHJ1KTjvLiV3tTNqWv2bcrkBqxliEG4pC9R2lIClqK
	yv5mVB5dheeKiTqUkMlx4lKuWarQPenU9/sCL5C/CX/QbkEzLWQxaAbu2pUOjL4MjUnb4a
	yBD0I9JizvVfgxRWTV0VUCCbYvJQqPo=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=gqJGIM1d
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721307183; 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=AdT5XI7daN7y0jcY4YymDW2f9yIOYl50ejWQ2o+Dr7M=;
	b=gqJGIM1dcxMuvO1dL9jE06ULkedA15AbgQt0skiVioPoy4rJYPaQcQgzVDWFjb7Z49mb1K
	BWGWO4MLQKenQMYgtCDM5HfEq1s6cnINumEuFAFp3xqqRWyj+cE0lIDMmgktsZGyWbqwTL
	kPRxJqHtIOH27ENvobX9tBkYvjLUHjQ=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: 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>
Subject: [PATCH] MAINTAINERS: drop CPU POOLS section
Date: Thu, 18 Jul 2024 14:52:51 +0200
Message-ID: <20240718125251.27163-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: 536541F399
X-Spam-Flag: NO
X-Spam-Score: 0.99
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [0.99 / 50.00];
	MID_CONTAINS_FROM(1.00)[];
	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_DN_SOME(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_FIVE(0.00)[6];
	RCVD_TLS_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	RCVD_COUNT_TWO(0.00)[2];
	DKIM_TRACE(0.00)[suse.com:+]
X-Spam-Level: 
X-Spamd-Bar: /

The CPU POOLS sections in MAINTAINERS can be dropped, as the SCHEDULING
section has the same maintainers and it is covering the CPU POOLS files
as well.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 MAINTAINERS | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 2b0c894527..37aacba2f9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -284,12 +284,6 @@ S:	Supported
 F:	.gitlab-ci.yml
 F:	automation/
 
-CPU POOLS
-M:	Juergen Gross <jgross@suse.com>
-M:	Dario Faggioli <dfaggioli@suse.com>
-S:	Supported
-F:	xen/common/sched/*cpupool.c
-
 DEVICE TREE
 M:	Stefano Stabellini <sstabellini@kernel.org>
 M:	Julien Grall <julien@xen.org>
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 12:55:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 12:55:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760479.1170331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUQfG-0006Vw-4O; Thu, 18 Jul 2024 12:55:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760479.1170331; Thu, 18 Jul 2024 12: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 1sUQfG-0006Vp-0b; Thu, 18 Jul 2024 12:55:18 +0000
Received: by outflank-mailman (input) for mailman id 760479;
 Thu, 18 Jul 2024 12:55: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=Lg7+=OS=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sUQfE-0006Vj-OD
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 12:55:16 +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 f95f2e69-4504-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 14:55:15 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1721307310681837.9982031627935;
 Thu, 18 Jul 2024 05:55:10 -0700 (PDT)
Received: by mail-yb1-f179.google.com with SMTP id
 3f1490d57ef6-e05f2adab8bso763157276.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 05:55: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: f95f2e69-4504-11ef-bbfd-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; t=1721307312; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=CuO++IG2VsboEd2MMA9+QjzzuLOsDHgQtrO/Cs95ZNgrkVb9EizxaF5SQio4hFty4BZlgFUxw66yw3h7k15aohteLL6tlqLgeNHoN03UFL4zsor1xmqwtxmfzCluh45eWfSWSa4xNAjPVH+QjoCsprjzC/v1JCpRRL2sfbTBKpI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721307312; 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=/g1XCDSkX+zAx8JMyTemfy7xvWBSiTXpZZV8FhTzvJ8=; 
	b=OExPKR2QBaI8wPvPBhVZeLlzaV2GhvQ+vZ0ZxGVHgUOGQ0V9bSQrQaBWq7UnHVesOtYtF/y+h9Cg4thGHusYQSiHw+EgRFOpz+tKx/Vx6iyKtyMyGKjKBydysRl42KyFfa7bU0MuB1NdrzZZ0bVCCiKZ9R3Y6vJTkJcWKzLpfFY=
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=1721307312;
	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=/g1XCDSkX+zAx8JMyTemfy7xvWBSiTXpZZV8FhTzvJ8=;
	b=jq7IqhC+VebI1k7NzQzrGg/weZpCBjK/txlB1319rnQaVSymKz/EqFOq9gXdl8ly
	U5zqbw0X74DgQIGFaVxmc3iBURAZB+wGa6p5Mkv4aUvO3UDqe9BitxNk3Uq9KWcHfY3
	h2rfh8WNc3VOhBWUCUluDqyc0obPhgObQyA4VkEU=
X-Forwarded-Encrypted: i=1; AJvYcCXMGMFhg/KUya9OKFiE41vThlhNPOVIHAffwxGyNdk+Sr3SN+aB9RhOjuM0kYu+bskLLKWKyfqrWwSYWuGLDL88JMGqtzU0DPKPvimdUPg=
X-Gm-Message-State: AOJu0Yygfr9enb0O6qS7QbGBeq6+tm9FJKWOCV08rbLcHGEwBllqNlwH
	nb0lZUU5BffKVplIEzBXuKr8bHuKkqsxZlkck/WAjg36wqaTa5mnoemrJP0hiBLQAyOD5I69bh1
	FP29tb2nQzpg+eqcVMQJKtPrOz8A=
X-Google-Smtp-Source: AGHT+IFf3C6rY9T31dpqdNBHNeStk9UWG7vpSBoi0Q0yQ1rIjDXqYJbDRnLP94oW4QkGAa669m5qJBHRCnQIOodvY2c=
X-Received: by 2002:a05:6902:1383:b0:e05:b655:329e with SMTP id
 3f1490d57ef6-e05ed7cc8e4mr5499345276.55.1721307309795; Thu, 18 Jul 2024
 05:55:09 -0700 (PDT)
MIME-Version: 1.0
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <d0974cc40ca68fe197ba7941edd934970d3a92cf.1719355322.git.tamas@tklengyel.com> <53e3356e-4cc1-475a-91a1-8fc17fda07ab@suse.com>
In-Reply-To: <53e3356e-4cc1-475a-91a1-8fc17fda07ab@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Thu, 18 Jul 2024 08:54:33 -0400
X-Gmail-Original-Message-ID: <CABfawhkLCziShB6x5J1OXL=M6AqquL-9SpTCQRVDNCeu_dqPNw@mail.gmail.com>
Message-ID: <CABfawhkLCziShB6x5J1OXL=M6AqquL-9SpTCQRVDNCeu_dqPNw@mail.gmail.com>
Subject: Re: [PATCH v2 2/2] Add scripts/oss-fuzz/build.sh
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 18, 2024 at 7:17=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 26.06.2024 00:47, Tamas K Lengyel wrote:
> > --- /dev/null
> > +++ b/scripts/oss-fuzz/build.sh
> > @@ -0,0 +1,23 @@
> > +#!/bin/bash -eu
> > +# SPDX-License-Identifier: Apache-2.0
>
> Hmm. Aiui this line is supposed to make unnecessary ...
>
> > +# Copyright 2024 Google LLC
> > +#
> > +# Licensed under the Apache License, Version 2.0 (the "License");
> > +# you may not use this file except in compliance with the License.
> > +# You may obtain a copy of the License at
> > +#
> > +#      http://www.apache.org/licenses/LICENSE-2.0
> > +#
> > +# Unless required by applicable law or agreed to in writing, software
> > +# distributed under the License is distributed on an "AS IS" BASIS,
> > +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or impl=
ied.
> > +# See the License for the specific language governing permissions and
> > +# limitations under the License.
>
> ... all of this text, provided an entry is first put in ./LICENSES/.
>
> > +######################################################################=
##########
> > +
> > +cd xen
>
> This looks to suggest that the expectation is for the script to be invoke=
d
> from the root of a xen.git clone. Imo something like
>
> cd $(dirname $0)/../../xen
>
> would be more flexible.

No, it will be invoked after a git clone is made, so you have to enter
the xen folder that was just cloned.

>
> > +./configure --disable-stubdom --disable-pvshim --disable-docs --disabl=
e-xen
>
> Going forward we mean to no longer bundle e.g. qemu in release tarballs,
> yet I wonder whether passing a couple of --with-system-...=3D here wouldn=
't
> be better nevertheless.

It largely doesn't matter as long as the configure script completes
successfully since we aren't going to compile QEMU. But sure, I can
add it.

>
> > +make clang=3Dy -C tools/include
> > +make clang=3Dy -C tools/fuzz/x86_instruction_emulator libfuzzer-harnes=
s
>
> In how far is it a requirement to have "clang=3Dy" here? Wasn't this ques=
tion
> even asked before? I'm not even sure whether mid- or long-term we mean to
> retain that functionality. Overrides of tool chain (components) may bette=
r
> be done using CC=3D and friends. Plus perhaps by whoever is invoking this
> script?

It is an absolute requirement to use clang=3Dy here as oss-fuzz uses a
specific clang as compiler for C/C++ projects. The CC environment
variables are already set by the oss-fuzz docker environment but it's
insufficient for a successful clang build. Without clang=3Dy the
following error is encountered:

gcc: error: unrecognized debug output level 'line-tables-only'
gcc: error: unrecognized argument to '-fsanitize=3D' option: 'fuzzer-no-lin=
k'

Tamas


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 12:57:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 12:57:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760488.1170341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUQha-0007RG-Fo; Thu, 18 Jul 2024 12:57:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760488.1170341; Thu, 18 Jul 2024 12: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 1sUQha-0007R9-DD; Thu, 18 Jul 2024 12:57:42 +0000
Received: by outflank-mailman (input) for mailman id 760488;
 Thu, 18 Jul 2024 12:57: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=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUQhZ-0007R3-Na
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 12:57:41 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 50ae4a00-4505-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 14:57:40 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2eedeca1c79so9080011fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 05:57: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
 d9443c01a7336-1fc0bba6fc7sm92389615ad.68.2024.07.18.05.57.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 05: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: 50ae4a00-4505-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721307460; x=1721912260; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ka23dX3a+9UCnzxhLCXehkNWsS0FHC7AuqraVYGsPrk=;
        b=Pt0ko6xavLaKy2I8nnK/W/8H3hA3KBrY7xAJ5iYFkN9XltRs7t73ap+CdeH4002udA
         VINTeWxlOKBfvEg8uPJoSzrY/hNunBPAaXcOqK7wNI/OiUlNosJ2wxZYxqGqTc46mxlA
         geyuMfKJnDz0BAmbGZNwD8Netrx/IoDg5v1tdo2ulNYZIoIDURxQdUIAofHPYxpo4OsH
         ffcNXMTGyBACPYV16JYiuXVmydi+JJRjAXzk3AsenhdyS17x74fr69Q1dt5BvlhnT3DR
         cTvZs4K2WKSyiFBvzNIkvCC6rf60lEyl5M83AOweG71LemSmLBAvL5Bd5dKvo87OJLNX
         efzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721307460; x=1721912260;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ka23dX3a+9UCnzxhLCXehkNWsS0FHC7AuqraVYGsPrk=;
        b=ssIM/fWSmRiRqutBG7OVHp8bzbP9/MokpdmJPLkYCwuZRBdx1tMvKcUw1EzZW2bJc+
         XvqqpwIzwL0s1iQg6yF2Nsh3fOs9Q8rRSy/zBbD70TLqcdl4bVwSYI3bSfD06NHS2c+n
         njCCtP2X4O/ranutUPxNM8Nn7VLUWmkhKYiPbjNAoa+PdJZGHqL8N4xvsUDgV/yOAySb
         PC85Kz2dwvOAUiZ76/aY5vm1SztIWbxu7aTyL4+hRUvMfiBPqJRkOc1mmh4c54XdcuNg
         H0XtpK/xOnEmqGSaU8QpvTEk60JlL9MRhA2XytNYuRfV+JAwZG/CXGkoHkJB+ZdV1QQ0
         fXyw==
X-Forwarded-Encrypted: i=1; AJvYcCWrUwMrN4SE0pj8m5vNtp4LUC3sc/gXHYwS76PRveFD/Bg76PM0s0fAqVITtVft/2qFchChiF6Q70sSlkbXT956hnSZjds26r2TT9pt9qY=
X-Gm-Message-State: AOJu0YwAruS6ItImyVJ6gdz2omRQYFU4tDjTKqMhmOb4uB/yvEGaaaX6
	zR2be2D3L+8CwRTbVmaAbT4EzgKINnVf95555kpIzL/gWX9ILH9k3UgrCdPbxg==
X-Google-Smtp-Source: AGHT+IGtOZwGcKw6hbi942ThB/vDwF4RpTCmBE0gRGRWNGGz/n0ZzoTw6Xp4J61ctkzBX/sxf+xYkA==
X-Received: by 2002:a05:651c:209:b0:2e5:61f4:2c11 with SMTP id 38308e7fff4ca-2ef05d47780mr18717061fa.45.1721307459776;
        Thu, 18 Jul 2024 05:57:39 -0700 (PDT)
Message-ID: <896414c2-1c87-48e7-a79e-518443ecb5cc@suse.com>
Date: Thu, 18 Jul 2024 14:57:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] MAINTAINERS: drop CPU POOLS section
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20240718125251.27163-1-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: <20240718125251.27163-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.07.2024 14:52, Juergen Gross wrote:
> The CPU POOLS sections in MAINTAINERS can be dropped, as the SCHEDULING
> section has the same maintainers and it is covering the CPU POOLS files
> as well.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

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




From xen-devel-bounces@lists.xenproject.org Thu Jul 18 13:02:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 13:02:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760494.1170351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUQm1-0000VA-0Z; Thu, 18 Jul 2024 13:02:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760494.1170351; Thu, 18 Jul 2024 13:02:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUQm0-0000V3-Td; Thu, 18 Jul 2024 13:02:16 +0000
Received: by outflank-mailman (input) for mailman id 760494;
 Thu, 18 Jul 2024 13:02:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=g7lN=OS=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1sUQlz-0000Ux-L4
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 13:02:15 +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 f35ed256-4505-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 15:02:13 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a77c4309fc8so84090466b.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 06:02: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: f35ed256-4505-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721307732; x=1721912532; 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=NVHa2JnghbRYbpaxpAAcpkttU2xbOumQSlLP7c17yk0=;
        b=ZyAT764Z6zQDWNi9pixvZR7f+qj1cUceCUJIizNJ7WTanyQh91TB2j/cxkk4oGXKWo
         FqRsVugEIcnHb8H1M9iHr7ZGTwiqbxy9v9VPyMU1BAMSlCljrXat0LOWDkWuqg9n0ERe
         1YAAEXxWNCF3nFvdSevThTCkLNQ7DjfvgsCZc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721307732; x=1721912532;
        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=NVHa2JnghbRYbpaxpAAcpkttU2xbOumQSlLP7c17yk0=;
        b=bUmhBNzZsILT1g4R7FQG04YgbdmGuaGQkLUI9aH/LZbsGS42j9iwi7QlP3Bi6T6/O8
         EH4RiBK7FsDpKSG9usoAAJUtpFWVpH/OqYp1x1jWS+k6afjLo+6Lwx0GTX1Q4Wr4oSfe
         9I7q4INyRPzNZdmR8tkFm0GZn3+bS+iAofr274sTry4BUmmAd/z2kdN4RcHW+Je0l+Y1
         rHRVKMNX4l+7cAE6VXrzfaeAfMkmu1WMPF7vRh2RvIRh2Du56bcZ0jR4pNY8ZydtGv7E
         DNhvriWGrFoIUQ0PAfKi10NhTkaVFRByGHUy/xAZ9z5e1bihBNpfBdSn37E2VK+pmoAw
         FvXg==
X-Gm-Message-State: AOJu0Yye62JmHEVfMRmak0FGAOmsnqxivoDhY6uK8niG0AapwhTlh4KR
	X/R4ibYOhL80KhHUWTajG0VgCXKfvCr1qsJnYn+MEtrRcpCjFnjEU/uz3Q5GJVtlzoYNgI21NPR
	6NCRuFMJ33UOq+uBqhpKFWKkshklth8d42+XWgsu5UuNHINLdhVk=
X-Google-Smtp-Source: AGHT+IGQ8Av3d208PY879q2h+YbY5zu9dNo6N59J79xnxEB1qvqJUV3Zpm/TDIDbJ4wOX4faajTaiSCFgFuw2ny/sPU=
X-Received: by 2002:a17:906:d9c8:b0:a77:eb34:3b4b with SMTP id
 a640c23a62f3a-a7a011208f2mr324293966b.11.1721307731994; Thu, 18 Jul 2024
 06:02:11 -0700 (PDT)
MIME-Version: 1.0
References: <lyq04kvx.1319r6evnjim8@vates.tech> <lyq1lxoh.2bbb1hy8vxji8@vates.tech>
In-Reply-To: <lyq1lxoh.2bbb1hy8vxji8@vates.tech>
From: Kelly Choi <kelly.choi@cloud.com>
Date: Thu, 18 Jul 2024 14:01:35 +0100
Message-ID: <CAO-mL=xPy=piun0L6u-pe6RvC70BectJGQiODiXnDCVMjs088g@mail.gmail.com>
Subject: Re: Pre-register now for the Xen Project Winter Meetup 2024!
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Olivier Lambert <olivier.lambert@vates.tech>
Content-Type: multipart/related; boundary="000000000000ea6e43061d852f7c"

--000000000000ea6e43061d852f7c
Content-Type: multipart/alternative; boundary="000000000000ea6e42061d852f7b"

--000000000000ea6e42061d852f7b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Thank you, Olivier, this will be a great trial for the Xen Project and we
are grateful for Vates' support.

*Some FAQs for the community:*

   - Will there be a virtual element?
      - For this specific event, we will not have a virtual element so that
      the meetup can focus on in-person collaboration and scoping out
how to run
      smoothly.
   - Does this replace Xen Summit?
      - No. This event is a separate meetup to help bring together our
      community and enhance collaboration and knowledge sharing. We will st=
ill
      look to run annual Xen Summits, but this event may change the way how
      things are run in the future in a bid to save costs and increase the
      frequency of meetups.
   - What other locations have been considered? and why Grenoble?
      - Multiple locations are considered. We have community members based
      worldwide, and we want to ensure that everyone has a chance to meet.
      Grenoble has been selected as we have support from Vates hosting at t=
he
      location and also acts as a first trial. The location means we
can host for
      free, which we pass on to attendees. In the future, we are also
looking at
      hosting events in the US.
   - I want to help host an event, what should I do?
      - Reach out to me! We love to see our community engaged and running
      local events so any support here is welcomed. We might also have a sm=
all
      budget to help you get started.

If you have any other questions, Olivier and I will be on hand to help!

Many thanks,
Kelly Choi

Community Manager
Xen Project


On Wed, Jul 17, 2024 at 6:19=E2=80=AFPM Olivier Lambert <olivier.lambert@va=
tes.tech>
wrote:

> Well, I guess that's what happens when you write emails at the end of an
> exhausting day! =F0=9F=98=85 Let's get those dates right:
>
>    - The Xen Project Winter Meetup is *in 2025*.
>    - The event will take place over *two days, Thursday and Friday,
>    January 30 and 31, 2025*.
>
> Thank you for bearing with me on this.
>
> All the details on the website are accurate from the start.
>
>
>
>
>
>
> * Olivier Lambert | Vates CEO*
> *XCP-ng & Xen Orchestra - *Vates solutions
> Book a meeting with me <https://cal.vates.tech/olivier-lambert>
> *web:* https://vates.tech
>
> On Wednesday, 07/17/2024, 17:33, Olivier Lambert
> <olivier.lambert@vates.tech> wrote:
>
> Hello everyone,
>
> As discussed during our previous Xen Summit in the first design session,
> "The Future of Xen Events," we aim to create an event that is:
>
>    - Financially neutral for the Xen Project (0 cost, entirely supported
>    by Vates and sponsors)
>    - 100% branded as a Xen Event, similar to a regular Summit
>    - Featuring content akin to a normal summit (talks & design sessions)
>    - Attracting new contributors to the Xen dev community
>    - Utilizing our own tools to reduce costs and be free from the Linux
>    Foundation
>    - Serving as a test bed for future Xen meetings, proving we can manage
>    without the LF
>
>
> That's exactly what we are doing with the Xen Project Winter Meetup 2024!
> More details are available at
> https://campaign.vates.tech/xen-project-winter-meetup.
>
> *Save the Date:* The event will take place on January 30-31, 2024
> (Tuesday to Friday) in Grenoble. Consider using the weekend to enjoy near=
by
> ski resorts! =F0=9F=98=87
> Action Needed: Pre-register Now =F0=9F=8E=AF
>
> We need to gather a selection committee for the CFP, but first, we need
> your help: please pre-register if you plan to attend. The event is capped
> at 50 participants, and we already have 15 pre-registrations from the
> academic world (researchers, students, PhDs).
>
> The sooner you pre-register, the better we can organize. The
> pre-registration form is available on the event website: Pre-register her=
e
> <https://campaign.vates.tech/xen-project-winter-meetup>.
>
> By pre-registering, you'll stay informed about official registration,
> being part of the selection committee, venue details, and everything you
> need to attend.
>
> *Note:* your data is secure; all our tools (CFP tool, registration tool,
> etc.) are self-hosted on our servers in France, running on Xen. No
> third-party tools are used.
>
> Looking forward to your participation!
>
> Best regards,
>
>

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

<div dir=3D"ltr">Thank you, Olivier, this will be a great trial for the Xen=
 Project and we are grateful for Vates&#39; support.=C2=A0<div><br><div><u>=
Some FAQs for the community:</u></div><div><ul><li>Will there be a virtual =
element?=C2=A0</li><ul><li>For this specific event, we will not have a virt=
ual element so that the meetup can focus on in-person collaboration and sco=
ping out how to run smoothly.=C2=A0</li></ul><li>Does this replace Xen Summ=
it?=C2=A0</li><ul><li>No. This event is a separate meetup to help bring tog=
ether our community and enhance collaboration and knowledge=C2=A0sharing. W=
e will still look to run annual Xen Summits, but this event may change the =
way how things are run in the future in a bid to save costs and increase th=
e frequency of meetups.=C2=A0</li></ul><li>What other locations have been c=
onsidered? and why Grenoble?</li><ul><li>Multiple locations are considered.=
 We have community members based worldwide, and we want to ensure that ever=
yone has a chance to meet. Grenoble has been selected as we have support fr=
om Vates hosting at the location and also acts as a first trial. The locati=
on means we can host=C2=A0for free, which we pass on to attendees. In the f=
uture, we are also looking at hosting events in the US.=C2=A0</li></ul><li>=
I want to help host an event, what should I do?=C2=A0</li><ul><li>Reach out=
 to me! We love to see our community engaged and running local events so an=
y=C2=A0support here is welcomed. We might also have a small budget to help =
you get started.=C2=A0</li></ul></ul><div><div dir=3D"ltr" class=3D"gmail_s=
ignature" data-smartmail=3D"gmail_signature"><div dir=3D"ltr"><div>If you h=
ave any other questions, Olivier and I will be on hand to help!</div><div><=
br></div><div>Many thanks,</div><div>Kelly Choi</div><div><br></div><div><d=
iv style=3D"color:rgb(136,136,136)">Community Manager</div><div style=3D"co=
lor:rgb(136,136,136)">Xen Project=C2=A0<br></div></div></div></div></div><b=
r></div></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Wed, Jul 17, 2024 at 6:19=E2=80=AFPM Olivier Lambert &lt=
;olivier.lambert@vates.tech&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">
=20
 <div>
  <div id=3D"m_-3904366028155234315bm-composer-content-wrapper">
   <div style=3D"font-family:Verdana,&quot;Verdana Ref&quot;,Corbel,&quot;L=
ucida Grande&quot;,&quot;Lucida Sans Unicode&quot;,&quot;Lucida Sans&quot;,=
&quot;DejaVu Sans&quot;,&quot;Liberation Sans&quot;,sans-serif"></div>
   <p>Well, I guess that&#39;s what happens when you write emails at the en=
d of an exhausting day! =F0=9F=98=85 Let&#39;s get those dates right:</p>
   <ul>
    <li>The Xen Project Winter Meetup is <strong>in 2025</strong>.</li>
    <li>The event will take place over <strong>two days, Thursday and Frida=
y, January 30 and 31, 2025</strong>.</li>
   </ul>
   <p>Thank you for bearing with me on this.</p>
   <p style=3D"font-family:Verdana,&quot;Verdana Ref&quot;,Corbel,&quot;Luc=
ida Grande&quot;,&quot;Lucida Sans Unicode&quot;,&quot;Lucida Sans&quot;,&q=
uot;DejaVu Sans&quot;,&quot;Liberation Sans&quot;,sans-serif">All the detai=
ls on the website are accurate from the start.<br></p>
   <div style=3D"font-family:Verdana,&quot;Verdana Ref&quot;,Corbel,&quot;L=
ucida Grande&quot;,&quot;Lucida Sans Unicode&quot;,&quot;Lucida Sans&quot;,=
&quot;DejaVu Sans&quot;,&quot;Liberation Sans&quot;,sans-serif">
    <div>
     <br>
    </div>=20
   </div>
   <div style=3D"font-family:Verdana,&quot;Verdana Ref&quot;,Corbel,&quot;L=
ucida Grande&quot;,&quot;Lucida Sans Unicode&quot;,&quot;Lucida Sans&quot;,=
&quot;DejaVu Sans&quot;,&quot;Liberation Sans&quot;,sans-serif">
    <br>
   </div>
   <div>
    <div>
      =C2=A0
    </div>
    <div>
      =C2=A0
    </div>
    <div>
     <div>
      <br>
      <table>
       <tbody>
        <tr>
         <td style=3D"font-size:10pt">=C2=A0</td>
         <td style=3D"font-size:10pt;padding-left:20px;border-left:1px soli=
d rgb(180,38,38)">
          <div> <strong> Olivier Lambert | Vates CEO</strong>
          </div>
          <div> <strong></strong>
          </div>
          <div> <strong>XCP-ng &amp; Xen Orchestra - </strong>Vates solutio=
ns
          </div>
          <div> <a href=3D"https://cal.vates.tech/olivier-lambert" target=
=3D"_blank">Book a meeting with me</a><strong><br>web:</strong> <a href=3D"=
https://vates.tech" target=3D"_blank">https://vates.tech</a>
          </div>
          <div>
           <img style=3D"float: left;" src=3D"cid:ii_190c5decb28c204bfcc1" =
alt=3D"" width=3D"174" height=3D"159">
          </div> </td>
        </tr>
       </tbody>
      </table>
     </div>
    </div>
   </div>
   <br>
   <div id=3D"m_-3904366028155234315data-bm-forward-separator">
    <p>On Wednesday, 07/17/2024, 17:33, Olivier Lambert &lt;olivier.lambert=
@vates.tech&gt; wrote:</p>
    <blockquote style=3D"margin-left:1rem;padding-left:1rem;border-left:2px=
 solid black">
     <div id=3D"m_-3904366028155234315bm-composer-content-wrapper">
      <div id=3D"m_-3904366028155234315bm-composer-content-wrapper">
       <div style=3D"font-family:Verdana,&quot;Verdana Ref&quot;,Corbel,&qu=
ot;Lucida Grande&quot;,&quot;Lucida Sans Unicode&quot;,&quot;Lucida Sans&qu=
ot;,&quot;DejaVu Sans&quot;,&quot;Liberation Sans&quot;,sans-serif">
        <p>Hello everyone,</p>
        <p>As discussed during our previous Xen Summit in the first design =
session, &quot;The Future of Xen Events,&quot; we aim to create an event th=
at is:</p>
        <ul>
         <li>Financially neutral for the Xen Project (0 cost, entirely supp=
orted by Vates and sponsors)</li>
         <li>100% branded as a Xen Event, similar to a regular Summit</li>
         <li>Featuring content akin to a normal summit (talks &amp; design =
sessions)</li>
         <li>Attracting new contributors to the Xen dev community</li>
         <li>Utilizing our own tools to reduce costs and be free from the L=
inux Foundation</li>
         <li>Serving as a test bed for future Xen meetings, proving we can =
manage without the LF</li>
        </ul>
        <div>
         <br>
        </div>
        <div>
          That&#39;s exactly what we are doing with the Xen Project Winter =
Meetup 2024! More details are available at <a href=3D"https://campaign.vate=
s.tech/xen-project-winter-meetup" title=3D"https://campaign.vates.tech/xen-=
project-winter-meetup" target=3D"_blank">https://campaign.vates.tech/xen-pr=
oject-winter-meetup</a>.
        </div>
        <div>
         <br>
        </div>
        <div>
         <p><strong>Save the Date:</strong> The event will take place on Ja=
nuary 30-31, 2024 (Tuesday to Friday) in Grenoble. Consider using the weeke=
nd to enjoy nearby ski resorts! =F0=9F=98=87</p>
         <div></div>
         <div>
          <h3>Action Needed: Pre-register Now =F0=9F=8E=AF<br></h3>
          <p>We need to gather a selection committee for the CFP, but first=
, we need your help: please pre-register if you plan to attend. The event i=
s capped at 50 participants, and we already have 15 pre-registrations from =
the academic world (researchers, students, PhDs).</p>
          <p>The sooner you pre-register, the better we can organize. The p=
re-registration form is available on the event website: <a href=3D"https://=
campaign.vates.tech/xen-project-winter-meetup" target=3D"_blank">Pre-regist=
er here</a>.</p>
          <p>By pre-registering, you&#39;ll stay informed about official re=
gistration, being part of the selection committee, venue details, and every=
thing you need to attend.</p>
          <p><strong>Note:</strong> your data is secure; all our tools (CFP=
 tool, registration tool, etc.) are self-hosted on our servers in France, r=
unning on Xen. No third-party tools are used.</p>
          <p>Looking forward to your participation!</p>
          <p>Best regards,</p>
         </div>
        </div>
        <br>
       </div>
      </div>
     </div>
    </blockquote>
   </div>
  =20
  </div>
 <img src=3D"http://bounce.vates.tech/track/open.php?u=3D30504962&amp;id=3D=
ef9d15a4a4fa401aadd08911d7accd02" height=3D"1" width=3D"1" alt=3D""></div>


</blockquote></div>

--000000000000ea6e42061d852f7b--
--000000000000ea6e43061d852f7c
Content-Type: image/png; name=noname
Content-Disposition: inline; filename=noname
Content-Transfer-Encoding: base64
Content-ID: <ii_190c5decb28c204bfcc1>
X-Attachment-Id: ii_190c5decb28c204bfcc1

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
IhUHC4o4ZKhOFqSKOGoVilAh1AqtOphc+iE0aUhSXBwF14KDH4tVBxdnXR1cBUHwA8TRyUnRRUr8
X1JoEePBcT/e3XvcvQOEeplpVsc4oOm2mU4mxGxuRQy9ogsDiCCEuMwsY1aSUvAdX/cI8PUuxrP8
z/05etW8xYCASDzDDNMmXiee2rQNzvvEEVaSVeJz4jGTLkj8yHXF4zfORZcFnhkxM+k54gixWGxj
pY1ZydSIJ4mjqqZTvpD1WOW8xVkrV1nznvyF4by+vMR1msNIYgGLkCBCQRUbKMNGjFadFAtp2k/4
+Idcv0QuhVwbYOSYRwUaZNcP/ge/u7UKE3EvKZwAOl8c52MECO0CjZrjfB87TuMECD4DV3rLX6kD
05+k11pa9Ajo2wYurluasgdc7gCDT4Zsyq4UpCkUCsD7GX1TDui/BXpWvd6a+zh9ADLUVeoGODgE
RouUvebz7u723v490+zvB3gHcqkloKXxAAAN/WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94
cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1w
bWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhp
djIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJk
Zi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6
eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0i
aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1s
bnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0i
aHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2Jl
LmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo5NmE3ZjI0MS1lMjNjLTRi
MWEtOTdjZS1kNmU2NjliOTk4ZTIiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MGNlZmJj
NjYtNjFiMy00ZDZkLWExYzgtMTg5M2QwNWFjOTg5IgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50
SUQ9InhtcC5kaWQ6NDIyZDdlNTItOGE2Ny00NmExLWI5MjYtNTJiOGEzMGIxOGIwIgogICBkYzpG
b3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGlu
dXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjU2MDE0ODk0NDU0Mjg5IgogICBHSU1QOlZlcnNpb249
IjIuMTAuMzAiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lN
UCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAg
ICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0
RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YTY0MGI4MmMtMDg0My00MjYwLTk3NmMtYTg1ZjA3MDc5
ZjcwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAg
c3RFdnQ6d2hlbj0iMjAyMi0wNC0yOVQxMzoyMzo1NCswMjowMCIvPgogICAgIDxyZGY6bGkKICAg
ICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RF
dnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozYTUyMDNkNS04NGRiLTQzNDMtOWZhYy03NjFmZDZmZmFh
YjgiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAgICBz
dEV2dDp3aGVuPSIyMDIyLTA2LTIzVDIyOjA4OjE0KzAyOjAwIi8+CiAgICA8L3JkZjpTZXE+CiAg
IDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94Onht
cG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAKPD94cGFja2V0IGVuZD0idyI/PlmiVpAAAAAGYktHRADwAKIAftw2PhcAAAAJcEhZcwAALiMA
AC4jAXilP3YAAAAHdElNRQfmBhcUCA56CWQaAAAgAElEQVR42ux9Z5gkV3X2e+6tqk4Td3d2epN2
tUlhJRSQQEKABpFE/ggm2SAMxmBbtjA2/uwPJ2wwGNs8BBuDbTAyOdnYGIEtECMhhISQYIXianOc
2Z3diR2r7j3fj3sqdO/M7Ehik9TneXq3p7u6uvrWe8894T3nEjrymOWnT79UFdaUledrUoFPBADW
AgzYRoio3rTR2CQfuW/UPuPgdu6M2GMX6gzBI5MvAuqiN7+8N9/f1Uta94C5xzbCZQCWE/MSUqoL
zAFZVrAccWRqNoomOTIj1vIBT6uDNjTTptqYmtkxOnHR5ntqnVHtAPe4yAcA9aprX3O231N6ktJ6
E0AbCLyWmc8gYFApBTADlsHWAswgZsAwYC3YMmAsODKwYVSHtXs4srvYmK22GT1ga817p3cdvOei
n9871hntDnAfs4x95DeWB+XBl0S18MW1feMbibEUhD4AgAXADGYGCVhhOXkNNn7YBMDuISCOH5Fp
IjKH2JgDpt78cWOy+vWoEd1y/o/ujDp3oAPcBcn0z79O/uKlJZ6aXG12bX0bwuYvAeiv7DgYmJka
gWXAmMEWABxQs6CNwcqMFKjt/xsHYjY2AbH73xgY2zC18CFTb36Cm9G3olrz0Dk/vqvZuTsd4M4q
tT3f61G54tNA9FoeP/wqs3NLCcagfmgS9f3jIM4CFSBmB073T6phGQDbDHjbtW1sPlhQon3NUSBG
ZGEb4RbbjK63jehbY7f85L7LEHa0cAe4Tr4P0OUjt7xA5XK/CqWv4kp1UfTQPUCjhqjWRGXHKLhp
kNW2DsDynMkBVQCdALXNdKDY/s2YDWwtyLADa6yBI3kexQA2sI3oAW5G/9mcqn7irLt+uqsD2ycw
cOt7vqOY9BqVL/wx+cGLoPQAIkPhQ/eCx8cAZtT2HUHzyLSAVAZMNC/Hmje2d5E1F6zYuQCxPE+c
tVbTIQYtotgeNmDDgDUpkCMLhKZpm9HOqFr/a2v4c9GRmfDcrQ89YUNr+gkJ2t3f7qEg9xKVy3+a
fP/ZINUFIjIj+2EO7AGshak00Dg04bReLC3gjac9y1NuUwecqoW246ntfOCMCiH3lI5WK5qIFmtP
X03Aucr3HvytpUsP//3IKHeA+0QA7Y5vbaRC/t0IgveS5y0FiKAItlJFtO0hoFEDW0ZjbApmun70
CZgyiJsNgTHwSMwKyiA9A0aOj6UW0B6FYzpqUfSUUptI0ZUKmH7TpHrgk80p0zEVHqdSve/LSnV1
PY3y+Q/C858KpRVIAUoDDITbt8Ls3ApSCrYRorL9oFu6E13q7AViyuCWW7VwxmEjMR1iBy0xGVqi
D3GEIXXYkHHYkvdixy1yNm9sPnAzGjfN8PP1w5U/O3fLA0c6wD3JwibSbK0GW5+NLbCNjA2bDQ6b
hqPQchRZNpEtrjlrQctk9YEv+6pQeBHlCx8nzyuz0gTScMBVsJUaGrffArIWpBTqByfRHJvODBCJ
kkyXf7KZEUwiDXL9MTiRcdjaw2aZBEUK3NjObQ2XJeCNDDhiUGQcsCMLNE1omtE3o0b4e8pXu9bd
cfcTwnTwTrULMmFjEVuzni0vh4lK1kTEJiKOIsCaBlszzdZMsAkPTz949xSHYQXM1Z4nXTbrclm9
9/NFlcu9SeVzH4BW3dmVGaI8w507wI0moBWstQgnKslSziCQ876S5Z8TwLZaDUycrPMxnlODFanZ
EL+usrpDOa1MBCiV2gwxyBWBtQLYgKHSL2b4CniF76mSZf59APd2NO4Jlqg6vQTAZTCmLwYsoojY
RMaayMJEPhujOQVzncNwkk1z3IbRITbRyOJnvHAyNQ8+X9CFwrWUy70bnt8LJaYBacTPbb2J6i03
A40aSGuYWhO1fUdafKv5BooZIMqALLZtmVvBl9W0nIn5xq+bWTSvbYvtGuPeiyMNJmM6GAbl9O3N
6fp163545487wD1B0jh4gMjXl7C1Z7GJFKLIMts9BGxja2esiRgmUjYMCxw2+zkKl9owLLOJijAR
WRMZNlEdUTRmw+jhXF80mh/w30aF4l+S9rqgtQNt/CD3f3PvftTvuhPEBqQ1wqkqmmMzqe161GAd
7Zy1BA1sm/0bZ9CQPncWRzZpkUkNcxa8DDbGxXqtgDR+L5S/TQpgHXgMojubk9W3nXnrnT/rmAon
xK5tehzaIluj2Rpma7eTUncWVp8Vth06PrX5tgNs7QMwkeJmY4BNuMZG0UpEUcma6EzYaD1pfR4F
/luIkBPPqQ1qTqWaI0fAjRBQnNqnQkkEEZjIEWbiMxBnIJzGcuNvOEr7QlQy24y1EM+KTMRBUaqB
KY6JMUgpMDsnEZ4CIoBgwR5l7Q2AGTay5HcFTwl68h/ceeVT3r7m5h9v7wD3OItt1tlGIWCMYhM1
2PK+nk2XhLMd23PB0xJdBuAAgAOj//VZn61ZbqNwdXFQvTS3uPBGIsq1hKJa9KN7bmZmwGEIaAcA
HXiIFDkPPrED2j5Oqf3bEpeNTYckOpaJAVNGUyukSQvKfI2iVr3ODsCkyH0LE6Al2MYK7AGAkRMy
2DAsA7rgP5eZ37v1souuXX/7T490gHscpbj6rGjq53dU2BogipS19hF5x4MvfUMIYFf17n9eqoq5
FytPdR29zvNRhhKDYKMISkLa5Cn4/UUXVbAupcs0Wyx3lvPNYnsxZ4E9WzzXARNWJgQh0bgOsCxu
oYA30bAWBAX24vnrZoM1FirnQxf81+RQOnQj8M7nOnQ/rkSdUhGFWvWgqVUiU6/6tl7pfcSx2js/
PkC++jPy6KzUPIhVIKcevizDYED39jizMjJgE4EjA5UPECzpBnn66Ngrs3ATRCPDgpH+zVnGWBwB
ludHWcYUTx52c4FE9SqAldPApMhpYqXccy1/a3ccKeVWC3m4cxEo5yld8N941vOe9pbHo8Y9pYDL
YWO/rVWnTK0amGqlPPrNzwcL/ez4v/+5B/BvkadelLC42jJaRyk+ZgTLlwF+DhxGCXhhDXQxQH55
H4LFJaiCB/KUA1qW6WWt8HIFfAkrjJNH1gim9vgZ0tBZelnueCKn6V14jEQLKwE2pWBVAGnKAFdW
CN+DCrw+rxhct+s5l118/8aN1AHucZJFV1wd2Ub9XlurwNSqK2zYGFjoZ/0l3c9Xvn6HI7s4NDHz
LIt5JjEAhtffi/yTNsGGkQNvaMCRAUcRQIygv4TCikXIr+hHfkU/gmX9CAZ64C8qwesrQHcF8IoB
dM6HCjyQryWRHpNonOfPcTQgq30zThqJicCKkjgxqRSryGpgUqlJodwBDrwO1GzZTTRfQ+W8c3Uh
+N2uM5eUOjbu8XTSarVdNmruYWPWsok27f3sRw6ufMN14Xyfmfzvv1iuct4fgdADy26pzWhVZLQf
tdu7xCiesxGILGp33gmERixG9zkLgDwNnfOAonJLM1HCMcjGGBJeQRLGlZBW5GxPjgw4NOBGCNuM
YKoNl/iw6bUloeBsAE4ULospQYpdEoKNHJwlO5D7Lq3Er2RoBK82kfnOtisv+cK6m3/CHeAeBym/
/E3R3s999CdsomUcmY0cRTsBbJnr+MOffZf2unJvIOJLnBtunbPCFiS2KLNuATC1k2ICH8WLNsFb
sgi1n26GnZ4Em2YmicCwrKEYYM/ZlaQAaOXASgJaUuJXCdJiGyFW8vH5LCdEdI4MTK0JU2nAzFQR
zdQltSuJB2KXvYudNY41NLtMGqwYxNYBWJGjRSoCPC+2PAK/K/eeqBF+F8BoB7jHS+vWa4c5Mvew
NU+xxlyx7UPvPrLune+btZDQX1TaCMIbAeQSMncc0FcshYtWNJQAxrLEbV1CF2CQVsiduQrByuUI
Rw8hGhmFnZ4G12tAWAfCJtiGQDNyqWGtQUwg0oCWeC9ZsCzj1OIJphExzsRsiQHyPZCn4ZXywJIe
sImBXIep1GBrTZhq08WaORMyY7lyFcfW4siDcpPVMpSvwYEnsQhenesr/h6AP3g8APeUNdh3fPQ9
RRs1n8/GnAFjdrAx393w7g9VW0yEb/yxTznv3bpU+DOVCwDfB3nuAc8HPA+kPEDLQ2lAe+CWtK9y
z4lApNyQKPc/hyG4EYKbTQhXQlKwkctagUHW2cQEYX+5WDQoioCoCYQNcLPuPgvKmDApo6w98ZFl
idlmCFMPHZCnazCTVXBkMsWYklXLknUiC10K4PcUHYssioBmBNsItzanar+0+pu3/qwD3OMoD3/g
XQNszP+BMUU25ic2Mnec875/TOquxr/yByu9ntLdqpgfoMAD+YGA1nP/ax+kNaB9uJSvgFd5gFIO
wEqlXpBSmWVeZZIPqjUR0ZIZQyvN0XJS/ZDSFg240QDqVXB1GlyZBlcmgXpVQmwSTrOcOHDcUuLj
+Ak2isDNCNFkBeGRGdh6U0p9suAFYCzIU8gN9gChTZxNbhhj6s0PTNy7/z2bfn5/2AHucZSH/vTa
jWzM89gazZG5ka19YNPf/SsDwOTX//B9urv4R5TziQK/ReOS5wlgZ9G6ygMrBVKO2ug0MBBTHSle
jikT8CeAWbUl0lqdojTjlbFrM5oxKWM3wjlo1MEzU+DpCfDMBNCog8M6OGwCRiaAkfhwzMmNARoa
hNM1B+BqA7YRyXnTmrf8qkXuPKERu9nA1sKfR9Xmq1Z99aYtHRv3eCYlKpWtUKqPjbkCxj7LGtME
sPXwP//mMqXptWBLR3NdnZYisgBZMImjJsTw2CYErLMZrQWRcl67smCbAShJViqpfKC20FqWdBOH
stLXKE4oAGAoB17tJgrl84CfA/UtdsCqVYDqDOzMJLgyBcxMgK2rTI/TvkkGzdPwe4vwSjmYSgPR
VBXRZBW21kiiDCyZwGxZkcrx+RSZK3a87BnbzvzPH5y2GbVTvnTnH370M/7NS590iKOwyCZayZFZ
/mtnrR9dvGnJy1TOfwV52leeLPOkkqWf4r/lQXFgNKMhCRLgByVJqzRcRq00B8qEuxJiubx+lPZF
i2kRg7m9Lo3bExGeD8oXobp6QaV+UM8iUL4AGGcvE7ddV3zNnoZXyMEr5qACDxxGYGuhSzmoQCe8
oCTRYblP+frLH7pnW9gB7nGUj9+x2fzGxecesM1oKYxZpjXO6FrV/Xqd99c7G1biq0olYak4ch+H
qwAl2ah2AGa8/hhaTKm2nM26mqWSkaid7hh/dyuYqf08NJsmJ5DWYD8AFbug+5aAuvqE+hhJ6CtT
jZEkLBR0zoPXlQdpBXgaKtCZ0qPkWlc2p6r/+eH7dx7oAPc4yz/+5L7oN87fuIejqKzz6ik67w35
3UFR5XxQFrixxo0B2wJeJGGjJKqfZNFUGxYpA+A58EuUwSQfrXUFnDQLIz3W+URHfwFTWyElKVCQ
g+pdBOruA5QHshZswgT0JMmU2KzQ+QC6qwjl+RLL5qzWJQDVD/1s6/90gHsC5BObH2q+/bz1I7m+
4GkEfpYJDfndOajAl4ySSp0rSvP7FCcDkvwpzfL/LG5rsiRTK7E8k5WjozTzLDbwUeDN2MDyeUos
ZEoATekMSTW254FK3VClXqhc0dn1Yf1oCgQBKshBFQsg7WK5HEWp4if0vW5L/dP/1JiMOsA9AfIX
b7lC5RcVXmItPzmsNhHVQ/jdeSjfazUXlErDWImNmzUP6JEHVtiRZx3uCG053xatfrSKbbOFidqO
EB1MbYVqbXZ3ch6tnT1c6gEK3UDYAKIo07OBQYEPFQRuRfI8kOc57oS1IEU6WNXzgw/fs/207Izj
nXYXnNNd5HuXeqUcZkam0RyvYGr7QfSsL8Pv1s4OJAkjkcRBYR14LYNhj4Zqu8mb7dihtDtPrAI5
Trva1AyJqxYSnZkloGcKexTJNcQvKYl6xH4jAVaBlAWzAhQjtYA55T+wc7gckTwPpT1QsRt2/BB4
bASoVR2NR2vAc+X35DOU2M5mega2Wiv6/T1PN8w/auzewsrzTX7FWu4A9zgJG7uYPD7Xy2t0repF
Zf8UGocmMcWM7vXL4fd7SdM5F+aKg/tGaCyUhMISZRnnYpXYiUoSCETp/6QkR6tS+1ecvZTdZVu1
aYsTlzEbIARxJba1UCIpS9Zjm8SQKWPJZvluBBbwimmwuAyUemCOHALGD4GUA2pMu4yvxOvuhvG8
HFTXUOWhzbfrXK5mrZ2sHdg1rTx/mrQ3HSxaajrA/QXJyJ++kmy1cb7KeQEsw8/76DqjHzN7J9A4
NAUbWXSftRK5xb2upFy0LZEFWwLYIOvXJ0kCBZCSrBepjEWhWioSQKJR4wSFOhrAiPmwMZOrxXrg
pM6MbOoTAgAsuetwvLS2OHEavyXWLcVChEjAy04L5wvQS5eDu3qByjQQ1Y6uygBDI09EXtkcPniW
GlxWBxETUZ1J1UipSnPy8GGl/f1Q6pBX7LId4D6WZMRMhWDNxV5vIUmRenkf3WuWYGr7ITSPTGPy
vl3oPXcNckt6QUYIKCZmTikwmTT5QNwKYEmUOWXHDszK1X7F3j8RA5bSpEQM7qTVAWcAzWn4jdEa
KFZZ8Aq0bEpddCnoWfxFHWvgNJjrXvdSzjoDVCwBQQnUqMPOjIG4hpTX7swOCuu56P6fPOQtecFe
gAYYWAqgZIEuApYyaKNSQcU0ajtIeztJ6xqRsh3gPkKhyBDXG5tsvQnKec4UsAwv56F34zJMbT2I
xuFpTPxsG3rOX4vC4CLJiMXsKSN+i3GVtko7jaycxkvWZPk74RwoSstqSIl2zfQHI5VoXmTrx5iO
tpvjyshY8yYJihjAbrJRsrirWYMdaVxCZ173Ms9ZEjAeSPvgyjioNikmkgb5AFvbT4e2e91nXbQF
wJbK9vsVrOmDCcsglC3QA3AvcXARSJ1FpLYx824AE0TEHeAuUKofvRHF33nuRlttQHcX0nZFiqE9
B97pXR6qe49g4qdbYM45E12ry0k4LE6Zoi3k77DHwlXgFFxKA2SkYLLdUROerEo5sQzleoslwITU
oVHatSaxh9MHIcMFV7H1qqSDjqSiMwBuddg4S6dw3GMwCB7IKHFGA6BrMeDlgMo4UJ8Rh832kfUW
xectrT3XAjgC4Eh9ZPeDMKafQWUAZwC82ILPI/JXEaktzLydiE5aKE2d6mCtj+wmU68pZu454/Ch
jWxoma00HLWPWUpiXIBdeRo9Z5ZRWj0A2wgxde82TG7ZA9NoCgHFpMebTG9aeR3WZB629WEMEEUJ
QSb5XKY0B2zSjjNx07qWjuUp26u9lCcFc1pjxkpJuY6W+jJKqJiucFI75yumZyr5W7KJ8IQdJ6Ew
5EugnqWgYj/geyBf++Tp/u/NEhPMl8+wuaUrDoP5frb2BxyFP+dmI+Sw2cvWXAjgHGb2Ohq3TQ7f
8i3f6+3LcxQus1FztQqC/nD8cDcA31ZqsPUmKPBBSgBnlHOstEbP2mWA1qjsHMX0vdthGyF6zl4D
r5AXe9ZzlQJJVEol/RJIcRKidT27MrRHZIokk9dj8nhWEzvSOif9QFKOr1DGEo3M1JYuTmzgWJGn
kQ1SGnEfBafHZdlvSWcwCNqNhfFSsyK2bQFQrH2nx4BGtGj1W1/o4Z9vmJW3ECwpM4CZcGLsHhuF
oQI/Ccw+PP9cUmoMrq9FB7h7PvN3XbqrZ9A2aitto7AympnMgygkoolo/15CFDEzw0xWoUt5p1mM
Y3WRNQ4QWqPnzGXQ+RymH96HmQd2IqrU0XveOgS9Pc7WZRcPTcrPFYOUdpW6BJAWABpOQ2TZzBuz
A6tSmWVfpd1pSDmQsZgolh0IkwqJ1AZmUm3ZOk4dPpuaGe7w2AZWAkorZkWbzeuyFK02MWXjwl0A
aSiV6+49R2kA8xJu/L4l3Dw8+qC19gyydoli9qG9VTZsjio/sE9Y4G75y+uKKpc/N6rW1kB7i0l7
PkAVADtJe7t1d+/YzA1fOIejkEEa5vAU7KJuKK0daA07+qJQGYkIpWWLofM5TN63A7U9I4iqdfRd
sBGFgcWAjp0rKdmKPW4BYtJuKY7f8izghQLX6+BmE5TLg/J5cdxUxplL7WsYAbXKkH2Yjo7/zpZh
E83rSnWkT69SaTwXypUlJXRKlZCGkigC0kY87u8CYFA0hYVlUIPFg7Y+sntGWX/AMoM8308Zd08g
4N71yueRLuY93du1KZqaebIu2S4QMYFnCPgZaW+LLhQrpjIdBj2Ledfbn+trYwmKwI0Q0dgk/Hzg
Mk1khP1lQWQcMJRCYVEP9JPPxpHNWxEensDh2+5B30Vno7RyEPDS+C10ppkHuYJKluLHuEmH075W
ogiM6MgRmIlxhwat4JWXQ/f1Sz1bHCZTqQdGkoY2nPYlUxkvjV34LO3B0BZPSIIMEus1ovFZzAat
UnOA/JaohQO1zoBYIO55HuuFZf4rW+/N22ZjKVtLyu3vNkpK8xMKuHe8aEhxZFayMU+31foqMAwI
h0F0P4Cfr/nNP6ke9aHIGBibcGjDg5PQfV1Aj4YiI0ATEDMljeGCUh5LLjkbE/fvQn3/IRz50WZE
561H9/rV0PmcgNJhkiV+y1IUxsSiGeNqWwJHDYSjo7DTk5msmkK0fx9UoQgKgrRwkjNxWbKpJo4N
3JYoBGUa6FFbq9NMnzIid26F1N5uy7ARuwhJkiaG16px43N52ir/2DCY3HxbzkbhJYrQBWay4P1k
ov358hlPHODePnSZ5mrjEpP3LwNRD1ueAeFuAPec+8FPjc8Zx52oTHOOmIzk90Mg3D+OIJ+DVQpk
LEAuO8baOltWu2Xa830sOm8tprqLmHloN6bueRjhZBW9m9Yh6OlKa9BYpYWMkgJ2HRstQBqm0UQ4
sh92ZsaxupQSLe+0oJ2cgF4y4MrgW2K/3NqNJsmypbxdjsNlSrWnupJgbxrG4zQC0RYqAynAatcz
V6d8iTRtnIJc53I1v6s0r406fsf3ejiKLmRqrLVsFTGPKvDdhdVnVZ8wUYVbNp1P0Uz9WSrnXUqE
AMxjIHybiHZf8Kl/nzcuSFqFkF4DiBzXwEzMIDo0Bb/cLzHPuDRHHDUYuUOA0ho9Zy6HXypgYvPD
qO3ch2hyGr0XnIVieUmijuLtnYhbkw62XkNz3z7YatWV0iglpB6VEHpsZQZ60aKjQJlUWyT9wVRi
w7JQL51il++nTOOR2Gywadw53RSFUs5DvKsPeTKRbBpliM0FnfkbDPJ0FRqzAvfQ/35Vkx9ssGFz
kwL3WdfgabtS6q7i+vOnnlgJCLYXcZMutYhyxDwBa79JRHsu+Y/vHnPJMX1do/rIhE2864jBHCHc
NwZVykP36gSsTrM4jetuvnFaUGkUBxfBu/xJGN/8MMIjUzh822aE561H95krHbdXmoiwZUdUIYat
1dDYsxdcr2dirKKNlYDRWlfNa0wCPBaqolvaM8mNtgyaOy4u1HTZvcQkQIZUzi29+49uGKk0iL2M
2REbHpyGzrImSRhNHL73wURh7PviPyjy/EAFuaUcRReBaEDmzIxi3AOih7ufdPlJL/k5ocAdPnNj
F4f2AlguANrA8j0M7HnK8B0LspOoUpuC5SqMKba0V66FaO4YQbB+JXR3UZwXkwEsUuaxmAFBdwGL
Lz4bkw/vQW33CCbufgDhVBW9Z62B310UXDGYCaYyjXDvPthaVSqD40SAaOM4ARD3YoiipFVTmiLm
Nns21pay1EtLUbKZqg1QUrnAnNbJtdQxcFsimAiSz209JGMmIILQHS0oFxze8Kf/YHZ/6oMead3P
JhokpddzFC2XfOA4gD0A7ut/+gsmTpUo1InVuIZ7mE0vrCIwmhzZQ0+/e/OCjXuaqVkGdhBjietF
ALDnNv2wk1U0tx9AsHY5dHdJbpLcPM7cPEq3dPLyAfrOWYOgtwuT9+9A5aHtCCen0XvOWhTKSwBi
RGMTiA4cADcbzg6OTYOEtG7FPnbFmSzZtaTal9itDnEoDUga1aUZCE4IO6wy5TxCoYwrLDiJCLTt
5scZaJKX2LwsHc2zh1A8gyOANU+bah07Pvae820YrlTAEhD1WgqhgEMgPMxEexpTM2OrXvvrpxRX
94QClw1HZGHY9ZLNwdCiR3YCZgAPwfClSHxsm9h4dmIGzW37E/DGFbGsKWmRy4pb9iRTWqFr1VJ4
3UVM/HwrmiNjODI1g9KG1SiUcrCHD8vSLyaBirNaUspOSl6XaIcx7hEDVykJswmIFSXhsKOcNQGw
40BQ6nMlnF+VDAOhrchSCA+kc+67rDOLkkN00sAM1kaIqlWEU9Nh9cDoJjZRFwiaQREYuwG6j5U+
gCiqD77iLaccpfHEa1zGEWbeSeABZtLQ6sKb1569B0Q7rtz2wLFnNBNg7T2OdB0bacq11xQNbMen
0XxoN4K1K6D6ul2TEKSUAdKZ1rmWJdevke/rweJLzsXkfdtR33sQ48N3odKVQ/eKRfAKOZehk33Q
XBIh5g64PgxxNIAj2Vw6abEYmwQqWfIpm2WLaZCU6ZZDShJznKmfUxmHk9JO57GpwORqy5SW3mga
MBGsNa59aqOOaHoG0cw0bK3mtHdopqNqbYKNGQeww4IeVkqNn3HN756SYD1pwH3W/q3R95etu5Ut
dRPzuYBdykq9jBTfdvP6s++/cuuD0/N93uYDpnrzTmoaZw9qm4Z5JIwFTbDTNTTu3wlvxQD0kj5n
OgSUtP+MebbQygFJAyALbS26l/SARw+hVm+iPlWDma6juGoRCv1daYdyss4WTXqP2dSMEIJO0ksh
BmQmRew0asbGNZlSdZJMWmJFxHTJjA17VK2RVPAqH6bRhKnXYWo12FoFplqFqVRgmw0Qu4mqcwWo
fA4Atk/v3Ptl02ju3vjuD51WRZMnpQXT95et6wFwKRRdTory0NQkrQ5Aq/tJ0z3PfOC+OQG8+wUX
roGxPwZhAFq5BsaZDt0JoUU7WqIq5qC6S9CLeqB6SlCFAijnWjOBXeWrrTZgp2Zgq1Vwo+k27as2
MbN/EmG1AeVr5Ad60LW8HzoXuMWBFjYAACAASURBVEgFpWwtQuqs6cUDCDZuyPR3oJYGzNmWpMja
si2vZ96LqZMJ+SYO+QE2jGCqNZhKFabWAIcM2wydgxiGieZXngevuwdeVze8gtSoKQrZmo/lNz33
93AayknrHfb9Zes0QMtBeCYpWgOPfNKKyVMNeGoHaXU/ebSbfN0gX0Xkeeby4dt599UXLoYxnwXz
CxzVT2VayTuwZvdNgFauylUKB0kraYCXlrFztl2SjhvguQbJ0yNTaIxX3X4RpQA9Zw4g6CpAaS39
aSk5DykFPbAUwYb1rYBUWQBniDbZluM0W6k8JfYxRxGiag1RtYpopoJoesZ1kYwpFX4Oygsc1VFp
6FIXgr5+B9hiwX2XS9O6lcHYKRs235rf9OyvdID7aEG8Yv0qUnQ+NK0irfrJUyV4isjXNeWrA+Tr
feTrEQq8qXxem77m9LXUDN/lUv8OmKwFQPHeCEQOpKJ9Y1AmGlll3lMZjSjAJa0S6mF1oobqwWmY
egTyFEor+lEc6IHO+SkoBZB66VLkNm5odb5UpkGJoqTJM0tTvJSfa2EjA9towDQaMLWG06bVKrjZ
TDQ3KQXyPei8W/J1Vw+83n54XT3wu7rhlbqgfD9pPcpxv2B2HGTXTMTuCyvTl5cuuHpPB7iPNc57
xsZuaCqTokHy1HJ4qky+WqwCrSnQlgK/pgJvqqjt2XkTvlUp5EiRUGMpaTCXhJPYiK8Ta2OVaGPK
AjUBcgbEif1KIAWEDYPqoRnUj1QArRD0FVEq9yHfV0z6OTAAtXgJ/HVrXWdEk5LWbRRJO/1I3pPW
n6GBDSPYZhMcNh1BPjMRSBFUEEB3d8Pr6oIuFaG7itCFAnQuD10swF+0FCqXd90kkwaASJoAMrfv
0G4BE30rWPf0F+M0lVOKjzu0e8s0gOmb1529FZbzsJyD5SJHdjmDliuOBi3z4kbOa2hShxRhpdIe
yHcNL5QfPzTI90Gedg9p0USedtmpRLPS0VNYgArpnRtHHXylUFgH1KbrmNz8AJpHKogqDVSKubRN
LgOq+zD03jHJvkmaldM0MmSXSHdeSlYAUgoUBPAX9cLr6YLuKsHv6oJXKkDl8/I7PChPqhxiTV7s
AgW5tEslZ6riJWyX7V/ivo/YRvgiTmM5JSsgrtz2IAOoyWPiBxddcICY7wYzgaGbTP19pjlAxv4y
e55m4wG+LLWc8lFVzJpSGgh8IPBBfgDlyw45nvTLFQ2XdHSMCxez8VN57i8l5JcuwfjmB1DfvR/N
8UrGPiZopUHVmpgqGqw1yNdQMglUPgddLMArFqCLBac5i3nnNOVybS2ksi2lkFybc7oAeD5UroCE
6xXveJlllVG6fatLO1uwwQFrzXc6wD3O8oyfbs5uEGYAjO55yaWf5cPVl4LRFwOPfQ34ngOp74F9
B1Yb+KDAAwUBOPBhfR8UOACTp8WRa3XYjuqpgLR5niagf8MqTHOI6t5RmHrkqt89heKKJShu2gAV
BK4tlO9DBb5bCYKg1d4las2mxRuryH4kJCQZNrFpY1OWmKegC6WY/wG0tFHN0BaTymVytq17+4sq
CKY7wD0Zxvmqvlt4qnYP18NnxuVg1Ixca/lGmEQZWMjcnN2hUWvA11JsmLFvdVqU2AoupFqZKFl2
CznAW9mP6lgFjYkabNOgcWQahcggN9CVmANJijjuRB6H0qAc9VGlapLjY1m1lANxhpRDWkEVSm67
AGtTk4dtS+untFNPTNIgEHicib9hGrXTupW+Pl0v/EN3bjfvuGDNjD1SfSURWnrcU0t3xex+uEiN
Ues2HoGxbiMS49rNI4qAMBInKkpTuFLpy9akLfEBaE3Ideeh8x6iaghTa6IxOY2w3oDfU3ImQmLf
Zri0nCmOjCmU8ZoS794eX2uyH7B7UeWL0F09LaZAAk7O7AecCarFf7O1/83G/Gth3TNrHeCeJHn7
isFd0Ux4lTnSWJX2MUhvcKJogKSbdwKGJGXMKcvMWnBoYBoGptqEqYsGR6YSlzOfSzrDEPy8j6A3
7wiESiGcmELtwBgoF0DnA+d8MbcCMbPrTgIym6F5Z/cEjr8rl4fX15+QZ+bKrbc4nXG9mbVTUa3x
4fyZV9yB01y803rWDXTVTGQ+HI03nhztreeooKALChQoaF+BAg0VKChfupbDAFaWabaJA2aMgY0s
TCOCqUWw9QgxQZs0Qffk4C8qwe/JZ4g2Cqw4Q75R8JRCz7I+2CVLUBufRmP0CCZ+ch9qK5aia80K
FJb0O7ILK+ETuMoJZDgJ2XKflO/gbCFVKMLr6XPfHfdjiHuXcXsTXm7Rxszg+sTUgfv++pPTNwLB
c4Hm6XzvT/uNibe87PKBaNvYv/C+6kuTpVM8fPIJ5JELl+WU2w9BkhEMcrFUw8nOOGzRatNm9tBV
nkawrAtBXzHT+Ty2mymJCZPvIzhnA6irhOrBI5h+eA9sowlVLKCwfAA968+AVypKdYRqidei5bVM
Jk0pqHwe3pIBUC7naJIUGwFtfX+pNfOWtEY1trnzhps/t+dX37+bBnr/F8AdVx3abk9bpXW6A/dj
D+2t/s75a+pcbV6Fui0l4GW4ComIXQ6/bmBqBqZqYGoRTCWCrRlw0+0pxnHD5vYVl1MurK00oUsB
lG6rxM1uJmIMqKcHXm83gp4u5JcuggkNzEwVzcMTqI2MAbLZCGXolmCb9iKLTZt4c5QggL94idul
J7aTk7BfVg1lgy+ZPdgIgDGfffBPPvYJnmluBGEdgJHrq+NjHeCeRHn3bz9vW2PHofU83rgw6cGZ
2RAa3L64tFYSUNZxi6P1LQ2eKXHa2Vj4pVwG3PHewKlzRYEP1dvlSDe+j+LSRdClAjgyCCdnUN93
EM3pGSjPh8r5LusnoE3sYDm3yufhDQxA5fMttiu1zJg0htvSjze2+a3dwlH0tt0f++oWNCIPwBkA
zrym1L/7+ur41Ol4zwmPE3n4FU87I9py6Aa7p7qplSKY+aUxOVujdfsnTUmrT7e5dDYEhpYlmHyN
wooeeKWglTij0nAZFYsILjgHqpDLxIYVTDNC/fAEZrbvQzRThcoFyJWXoLR6OfJL+jMpZve/7umG
v3QAFOTld7SxxmKnsn0Xobjw0iF3mg1fx6H5bG71M6KbBtaWALwcwFkAtgH4j6sObZ/sAPdk2rtX
X/qc6KGxb/CRZgnZJnLZkFGchdJJ+vMo8EK4Dy3HxzFUBfiLCigs6ZIYcab+LGObBudthF68SEg8
6W5AIIIJI8zsOYjKrv1gY6ByAfLlJejesBp+VxHwPHh9vfCXLgX5Hlo2giDV+nd7x5tMlx0iGLb2
86bZvDa/5llJwuGmgbWLAPwqgH4AwwBuvurQ9tMqrqsfT8C97qK1+8HW2Knm0xGxbp2eWV5C2y46
oKT0uyX+Ge+G094aiQFd8DO75WTf42QjaW9xb2a5To9TWiG/qAe5gX5YY2GqdTTHxlHbdxBMQLBs
KfIryiBf4WhDti3cNVcozPVZ2myb0bX5Nc8ayR5xfXW8dk2p/wiAcwGsArD7+ur4eAe4J0k+ev/u
6LqL1z1oTbQaU81zwS196Y/aLK/1ZWpxspKAvXQXz8b02TB0zoP2VGrnirOWJD9qDVBvN1QuSE8q
AI7juDoXoDDQB18akphGA83KNMJaDdZa6MCHzgetAVmeJU47K355Dxvz9tzqoZ/O9vY1pf4pAAUA
awEMXFPqf+D66vhpo3UfV6ZCYu++9LLV4cNjX7L7ak+N98BLQlvZJTW2eQkZjkImjKTJTW2NdGMR
iYL5fXnk+gqOxK4yfcJUthqiD/65awHPS7ZsJZWpcohplL4Pb3ARjCJMPrQDtV17HaGnvw/FNavQ
s2Et/O5uHL0vG6V2b8tmajTOlt8WVutfL539gjlDXjcNrC0DeDWAATEXvtsB7skG7yuv2Bj+fOTf
7Wj93KxSTR2uzHNFGcpfZlhiuzUGL6UtRVWgUBjscjRDIbS3OmsK5GvotavgLR9ICeoZGiM8Dd3b
hdwZg1DFHECupq16cByTP38IzUOHwcZCFQvo2rgePRvWwSvmQdpDa1tzuVb39xQYf2Ii+4n82ucc
M8lw08Da5wO4AsAEgM9ddWj7wY6pcBLlnetXHuFA/QhhdBnXTRktMfl5NtDLOnNx909u3x2SwJah
fZWYC9QWz4VUHXC1DirmHTNMlnnSCrqrAH/5YgTLF4kD5sJqpBSCniK6Vq+Av6gfzAwzNY3qjl2o
7NoDYwzI86DjDQkJ2VDcNJj/xkT8kfy65y4oM3ZNqb8GYBOAbgAz15T6d11fHe8A92TJR7bsxR+/
4YrR5tjM3WDzZK5Gy1oC8nR0PDcFL9DCfYj9nbb9OthaeHk/w1nIOGixNCOgUgOKeahCDrqvBL/c
h2BpP3RXrpX3kLGFSRGC3m4Uly9FbnAAqlBAc+wwarv2oLp3P5pTFfn+HKTb4gyAP42a9iOF9c9f
cDr3mlL/DIDzAPTJVN12fXW82QHuSZS/veUBvPuFF+83im9GM7qYq9EKJC0PqSVJQUeBN8OyijNo
3KZ1DaA95TJpQGtbUM7MkjACGjUEq5YgWD0IHVdN2CzZBhnyDSeZOVIEv6uIwuASlM5cBVXIIzx0
BI3Rg6jvO4DKnv2I6o2KtfjjmYMTn7rjkl+qf+4RjNH11XFcU+o/B8ASAD6AB6+vjp/yXF3CE0S2
XX3JoBmb+ajZPfNS27D5JGLQFv6CJCCo3ZlL+hu4piIuSUHw8hqF/rw4ZM7WJU+KMD0FlfNAOSH5
5H34mzYgWLcKqpRPS3B0WiKUlOTEpUUtSQkNgBDVm5jeuReVnXvRGB07MLNz7Lbp23Y9wJVwOxib
4Xp9VUCoXXVwOx/DxtUA3iphMQbw6asObd/eAe4pJHtfdXlfuG/qOnOgcq0day6xyoGXhRye7Bop
iYW4gXhL+liliQhogDyFfF8OftFH3OeBPAUEGsrPRBmIQNrtA6xXLIW/cTW88mKokpSOJ7vmqKQa
I67MyBJ6EgArbcJ68zu7v3Hzp/b98TeZBoI1cBvsEYBJALsB7AVwEG4LqMmrDm1vtIG2COBiAFcB
yImp8OmrDm3f0QHuKSb7fv25+fDBg8/kidp77c7KpWziPRkgtEJhESaZMAdQViTWQxxWEAWpCbrL
R7Ck4BIGnk7Da0l1sTDHVCZ0FnjwBpdAryrDX1WG6iqkIE22hFItFcdJtQbpcfaCD8HPfyq35oUH
biqv82F4EYAyXCp3A4CSTLWq2L9VABV5biSGuxjAoIAWcDvofOmqQ9vHOsA9FTXvm5+jzP6JMlea
77K7Jt/Ik1E/DChJ+WbSxUnzOdVmF6us2aDgDxagu4LEXEhitNn4bty4JC4N0uSqkQs5eKtXwD9z
OVRPt9sGy0tAmikvUg1o/x7ki+8C0W25DS9vSRjctHQtgeEDyANYDeAc+b+AlKWRvffx/bcC6Buh
6KdXjW7jDnBPYal84To19oUfPdfunXwnjzeeyhNRLyxad30kauUraMwKXspp+INFqECnnIWYeKPR
ymeINXEyMTK1ZINL4K9eDjXQD10qgAp5kO8beP6DCILPcan/44UNL1kwo+umgbU+gGUAlosp0Sca
No5mNwGMArjnqkPb93YSEKeRHPi/r+xr3rXzRXam+Toeqz6PRxp+mmnLgFcBRzHPVFopoUoa/qI8
KNAtO0Qm5kJG06avq8z5UzYb5XPQ5QF4a1c9EKw740tU6vpa/uI33v+L+L03DazNifZlEDWuOrjt
tCOUd4ArMva3b6bqj7cuhu892R6uvs3uPPICHqkFrj3MHODNpoYVQB5BFTX8/pyzd7OtneL2ULEJ
ojMApqwNTAxPR7Sof6saGPgEafVtb9PZu3pfdF2zc5c6wJ1TRt/7RgoPVQLS+qxo3+E3m4dHrsZE
Y4Aj20PVyGtJYChKCTnCayCPoHIKXl8OKqdaTQTp8sjZFLMmKZVX0+QHk7S49261fPCz3hkrv2PG
J2uLf+NvTOeudID7iOXI1/6yv/K9u59p9h6+gierm9A0a2HsGXy4UsRkoxW8RIBPIA8gX8HrDaAK
4lwRUq2qFVDMMbTeC0/vpEJ+K/UWf6RXL7958Tv+fktn1DvA/YXKwY++Y3Hjvp0reaK6DL5eg2a4
kWcaa2CilVxtLEY+txTVRhGaFGmX+lWeangF7zAF3gQU7UHg7abA3wZjtqCQO6CXLdnvv/iZ+3ov
eUtHs3aAe/xl/N//Sjfu2RZEe8Z8rtV8O1HRKOQ1pisq0azWAgD7pcBQITDkqwg9pVAtH2gO/MEn
w84odqQjHelIRzrSkY50pCMd6UhHOtKRjnSkIx3pSEc60pGOdKQjHelIRzrSkY50pCMd6UhHOtKR
jnSkIx3pSEc60pGOdKQjHelIRzry2OW4FksOD5bVPN9hh0ZH+GScc3iwTMf47bzQaxseLB+PHsM8
2zXIdavHeu6h0RG7wN8Wf58H1xyvC67P2BSIDsqGwo/qPj5W8Y4jaPMAPgy3l1a7GACfA3DDIzpn
eVkJzB+D60Q4283+RwA3L+BUlwG4fB7w7gLwtQX8xhyATx+HcawA+CiAn7W9fg2A5+GxNeSeGh4s
v3dodGTXMe7dagBXA3gJgIvgGuel21YyjwO4C8B/DQ+WbwRwYGh0pHnaA1ekBLery2ySf6TABfOz
AfwKXOfsdpkG8EcL1Nh/LgCYS3YND5ZvGxod2X+M02n5fb/ocZyUidMO3Ivl+x4LcMcA/INMztnG
Zy3c5n1vgWuWN5cU4BrpvQTAdgCfGB4sf2ZodOTQiQCuOo7nbgL4+jzvnz88WF7/CM/5ynlu2o1w
/V2PJRfB7XkwnywG8MIFXtPxaBiX3U16Ia//Is6N4cHyebJqvfsYoG2XtQDeB+CTw4Pllac1cMWO
uh/AfXMcshTA0x+B6bEcwCXzXPNXZbIcS64WYB5rpXjO8GC58ERxdoYHy4MA/hLAcx6l7+MDeCmA
jw4PlntOZ40LAPsA/HCO93oAXC524kLkcnEQZpOHAfzsWE6H3JxnIO3APZ/TejFcY+STMYbH02k+
yjEV8+n5AP7PPL/HOWXO/p7PdHougF+Rc56eNu7Q6EhleLD8QwCvFaC2y5MBrITbxXs+wHkAnjaH
owcAt8kkOZZslO9ciKwDcMnwYHnz0OjIXH29DID/Fm3DswBkBYAL5/jsNgAPzOOcPdKN8u6Ea9B8
LNBOiA3dri3fNs/nDosTeq9M+mcCeAWA4izHdsHtzv4fCzTdTknnDKJx980B3PMBrB8eLG8/Rkhl
2TxmwgyAW4dGR6aPAf4AwBDctkgLXY1eCuArcrPnsuPfNs/nXwng7+ewM28A8Bdz/CaeBVzHko8B
+J8F2uQTs9j0F88zOT8K4P1DoyOhjOXXANQAvHkOn+MyUUinL3CHRke2DQ+Wfwa3qUb7TQoAPBtu
6/nGPKc5U5yqucyR2xZwKT0CpNmkMYf58Gy5ARNz/DaeSzPKUjk1j4NUHRod+UVuEjI5NDryaLcz
XTZHpCYG+v/EoJXfPT48WP4C3G49g3Pgas3wYPmuhcaMT0WNGztOL5cQWLu8BMD75wLu8GDZFyeu
e45BvW9odGQhLeYvBHDBHO99GsCvzXLz8gBeI0vk41n0McyLFbO8fheA/zfHSqrEKT9uiYkTBdzv
ybJx5izvnSWAGp7js3kAL5tnqf76Aq/hrXO8flCW8wvFAWyX1w0Plj94LFPkNJfRY4D6ncOD5fuH
RkcezGjdaTGjToqcKOBOi7H+zjlm9GvmAe66eeyvIwC+tYBQz5kAnjXH2/8DYD+Ab8wB3BUSQvvq
aRDSOmY0Yg5f4hBcEmHDHPfnMgBfGx4sfxzAF+V+mpOR6j1R4bDsYH0ZQDTHIVcPD5a753jvl+aZ
YN+Yx47MyivnWNIsgG/LOX4AYLZtwwPMnf07leQ88fbne1wyR2y6KYCcT+tuEgfwHgDvhQtlLjtO
XI1TA7giWwH8eI73Fosj1K5BcuLZz+U0fOlYs354sNwF4AUCwHZ5CMDPxYHYKSGl2cboQskqncry
Plm15nt8Hi5N265YIgD/BuDuBeBlJYD/C+C7cr53DQ+WL5WQ5eMSuDNwMc/ZpCjgapfL4TZHnk3u
xtxx0KxcKnb0bMvoT2WJBIARmVizxWxXArjycWDLRvO8t0MAudANqAtifr0PwJfg0r1nPe6AK8yh
2+cIH2kAF8yS534hZg9yQ2zbY8VuPYlILJ9jIt0yNDpSzZgzt4i9N5uD+MzhwfKix6t3JqvOTeJv
3A639y8vEENr4ZhrNw4Pll9+IswHdYLH54F5QkvrsuEqAcllmD2+OA6XdGgc4/uWwsUaZ9O2YwC+
3/ba7QD2zHGuZ8BR/U5noWOBd2h05CdwfIXflWjQyALPrWV1/EcALzne4FUneFaPALgDwGw7ziwR
5yG2RS+QmTyb3ANH4DmWh71ewN8uDMdt2NJ2fdNys2ZbUpcBuPJE23KPUCn88BiPuwDUF3CfKkOj
I/8kjvE14ozdfgxTI5ZBONromsdDOCwr/wsX7B+Y5b0r4XidYxICm22JDwH8eAFcWQ9zJz2MRDlm
ky8DuG6OsXk9gH9e4A080fJBGdtj2biHH4GimQDwv8OD5WHRpBsB/LIAumceDX6BaN2/F8fvcQHc
H8pyPBtwLxOwRrI0zzYwk1hYTr57njDWYQDfmeO9ewFsnkNTPxku9XzrKQjcIwuYzI/FP9k/PFg+
IPfvQ3DZzhdi7lTxCwF88nhN8hMO3KHRkVBIGhfOYqoU4IL9/425ubq7sTBuwksAlOd47z/FOcMc
2vgLcwBXwVUGnIrAfdQyXF7mg7k8h6JgAKNDoyNNcWBDAA8MD5bfKtGEZ83xuXPx2Co1TinnLJav
zGNrvVpMhtnI3hbAfw2NjtTmvRFnrCYAb5xnKfvqHGGvOLrwXczNCLvqRLH8T6B0i4n01VkeX5pt
EkuJzn/Po1GXHE98nSzg7p3Fo4/lfMyeGgZchucLxzx7o3GpzPjZgLsZwEPHSFyMYO4U9GIAL35c
wZa5LhGTp8zyuAyOTz3Xij2XcpjE44BkM5uD9RUAL5ojrHLmXMpUTIVjyQsxN+n8pgU4KFMSXXjZ
LDemCOD5w4Pl64+l+U+wLJLypmOJBXA4S1MUrTkszudsyu2Vw4Pl7wO4YWh0pCJRmzXi/M5lDjw4
16p22gJ3aHTEDg+W7xAQnvEIPvplzB5Ky4bB5ivPmQJwW5x0mOf6zPBg+W65vvbYLcmqcB5mTxGf
LLlOPP5jyQSAP0Rr1UkIx1V4FWZPjS+FY9B9e3iwvANpFcSl82jcb2FhNYCnlcaNl+ObAbxhgcfv
AXDHAojJ52Fu3u02uDTvQuRe0RqzJR3WAnjq8GD57nnKek60XLjA48bQxm0eGh3h4cHybXCkpbki
MUvhYrp2ASbmVgDfPl6hsJNp42JodGQSjpFVX+BHbsYxSkGElPPMORw7A2Dz0OjItgVe39Q810di
jvSdjhbtbLbn0OjIEQAfAPCTY9imx8LMtGjn+4/nj1AneRDvWKDNWodL8U4c47heuErV2aSGBXB3
2+QGzB02u/IRmjmnvAyNjvwUwNvh4uThozjFGFyM95+O90p0soF7HxbG8NorID+WXArgSfMM6o2P
8Po2z6M5igB+6VGWYc/X/2w+ITz20vV5zzE0OnIXXCebd8CliBcSGYgE7G8B8Fcnwmn1TvIMN8OD
5X+CY4z58xz6EIjuPYaZQBJJuH6Owb5DzJNH6kR+SGxjmsP8mG9J3gbHc7WzvPeTR7lCFfHYAvvT
cJUj8/3uEbkvXxVF8Hy4FPxaAIuQlrnvgOMwfBuOPzJxoqoiCCdZFtA5EVhg98RjnIsfZXfIR33O
X/T1LHCs8IsYy3m+lzKT71GPa0c60pGOdKQjHelIRzrSkY50pCMd6UhHOtKRjnTk8S3UGYKOPBaR
quc+KHV46MD+E5aI8DIXkIOr4rwIjrd6B4CDx5MsIe2RngzH2pqY57gyXIn0UwA89bHmwuW3FuF6
ytpf0G/Jwe0dMX66ZJKGB8sb4Squ/+bR7JYjGbWXAfhtWPt2OBroY72mM+B2T/rAfFtaeXJwNxy5
+GVwvIECHBHkT4cHy9+V5xpaN2BML4AwZsJnvrBXNPjk0OgIDy9bTrC2AKI6mLsBqKHRkfamcmcA
+ASAa4YHy3cB8KFUE9b2A2gMjY7MDJeXebJN1DMBvAdAODxYjs/bBaAuBZgFue4JSGv7odGRppBg
egFEQ6Mj0zLYr5XBed7wYHmfHG/h0pjxcxvv2yU9ehWImkMjB1i0TC+AytDoSEx7fBVcO6JLhwfL
R+AI2SZzjpyMTwNAfP25+Jjh8jIN5l4AtfaJKb8hB6XqsLZXXp4UHm3LuGcA1QsgglIVWFuQ87K8
1wdH8u6D69n2D5nP9QAJ7XQ2YHULbiaFyxEXru6T/dFivm6XTGIjr3fL39FweRmBuQDH+ssDyEHr
iaH9+1i+/2oAH2/DFgBMxb+R5I3Xy418J4i+LwP4DqQbtJ0LR7LwATwVjqjxKTi+agGOef9sOd+t
AK4HUQjm98NtLHIFHGv+63CN6iL53nPh9vN6k1zYs+U7LhEAfgRuP4TPwxGZbwXw+wB+A66n68UA
/lpu0lvlmB/IwO6EK+a7RlYRgiNKPwxHvXsaXB+C98BVqhblRj4omvPw0OjIl6Ujy9Uyyf4VrlvL
tXCdd8bk2rbJOZ8j3/ERuLKkzUOjI/8hv/UaOJ7w9aIk7pLf+8+iLH4HjsQyKWP07cyNWya/eULG
EnDNqON95DwAnwXwXzLOvwxHjKnLeGwA8Fcyad4k3zsNx3x7hUy6MRmrIRmrHwC4Pgvg4cHyi+V4
wJFqPgXXTuD1cO32r5HvXwbXjOVOGY83y98/gev4GME1DblLvq8fwI/gejecAeCbcM0Ot8Ix1a6S
7/whgE8OjY5UlcyyV8P1Zht5LAAABqlJREFU0bpxaORANDQ6clgGOA9XLLcObu+rQG7QDBxZuCxf
8DoZyE+K1n4NmEtwNLcNcDtM3i6TYy7a4SoAvwdHFv9rGYA/guPR/hBuQ7mvyOu/Jtf8kMzkv8pc
WwjgtwSsa+B6YX1NburvC8h/CNfG6Xq4yoohAU6fAP4ypK37SSbuFQKUj8P1zP0buL6674fr3nKb
gOEzMjmubvutl8r3lOA4w++S756Qm9kHtyfEjwH89fBgOdsTuEdAcbaM5VbRklfLZx+AI4EPyHe8
C65m7tNwZf7Xyji9EK7E5wa4nT0vFpBpuPqxV8tnPgHXmvV1cSul4cHyYri2TLfJuL1IxqQsz7sE
YL8s3/0ZuU8fkM98Uu7F6wRXr5fnXxWF9lbBS0LegavUfp0A+pMyad40PFimmEvah6PLsadkxg7I
zbsHjiB8C4C/E4A8Ha7i9Udw3NotctFPF018BK6c/HY4el8Vs7dljwFyH4BvDo2O/FDAtlau4QHR
SrfAUQlnBKx/I8vSMnl+swx8XJ7TkKXrQgHJtXC7NW6Ta7ldNIoF8CMQXSugtjiaGhmfZwOADw6N
jtws2vpv4cqQtsu1/ihjr7efI/7byCT7SwHl+QKGg0ib+V02y/34N1l1viTn+qRcx+dl6V8Pt13T
dwF8BkTfk1ViXFayF8n5PyOrzafkmj1RQHfClSxtg+MuXyaAhBx3CK6DpoLr7HgnWisqrIzpfwoY
bxXz4IsyWW6QyReIQvq3odGRG+Dq3T4DVysYV5X0yiT8X7me+2VSPx9IieQPAtjQtufYWjlJvMFe
Dek+DVUBblE04JNktr5G1H7cZypE2lExks/PF8mYRFpg15zlhnPmuCPiOMa/oS72Tw1puc0eAH8m
N+YPAfwBWjfbsJn/DwyNHDDynNBaNBjvHRzvZ+uKLbVuCmCnM9eXPWeWY5xv+z3xTkOBPK6W8XuV
KIltbZO6nvmNkTwqmbEyojkDub7m0MgBztwryL2qZZp7VDP3tARXr/dquBZL8X0MM8B9L1x711+R
lWbTLBNzKvP7K3I/4r9n5BqVHFsRezqSz/lIucZK/r5Iruc18trtEIeJZeadB+DPhwfLTx0eLL9I
LvLHSLsrXgLg9cOD5U1idyyVyMOtcsJvy2NV22Adr5BbfN4xGZy3SPPl18qyDLG/3gjXxv/34Dbc
O0eAVoIreJytQ/ceAE8bHizHG55cLQP9M1mZfn14sHw2jHmr2LPL5abk4NqRFgV4Vw4Pls8ZHiw/
DbN3xoGM734B0OfEJDobR3dJXMg4hnLPXgjXu+si+f0DAvRb5fUXDw+Wnyz3sU9Af5N8xw2Z+9jM
ALsgy/k4gN8W5XEFHhmpPfsbCgDeMDxYfsrwYPnZYgrdn1n5p2QCB2Lz3ij271hW4/5UbJ+nidr+
sCz7fyQgJFkWLhFj+w2yzG2VZWqLLA1fkxt4Y0bbRpnZWEFr55N42TdyfCWjVUN5j2UAq5llaSZz
nu1iR70IwL/LcnOPDPiorCZfkCXyftEYPxAQflhmdDXW0hIe+7RMhv+QSMEd8v6E2M9PlvNdB+Bf
BHxxR8S/kwjI+5FutP0O+b5qRvMY+b4pAL8JV8N2qzgtX0brVrLZcUL7OTLvN+Umf09Mp8/IdT8k
4/lV0VgfFafwiEywUCbNw/Kbvy7A+Z84HDo0OjIjy/Z1goUV8tsa8t2xhs0Wl9ba/q7LayzPd8q1
/Ivcxw9ncBOKP7EbrmXW12X8/2todIRbt8ZctlzB2mUApmVAIcb5r4nH/OsxqOSHZMMk/fIDk5DX
cHmZD6IoDkwPl5d5AOzQyAELAMPLVxCs9UjriI0hENTQgQMu4rBsmQJDATAgIjCroZEDLpQCaBCZ
bMB7uLwsB+ZeaH0I1moALEt/HC8uktaHrnQhFyTnAQwICgzEx8tnAgCLoNRhABbMyJzPB9AHosmh
kQPNzDXE57RDIwfscHlZAOZ+AEegFIMZ0NrAGA9KRRL+yQby+0E0PTRyoKWyWM7rAYiGRg64UCNz
+reMI7SKhvbt45tXriIOw0UA6iCqtnx2+QqCMYtBVBHQKQBmaORA/Lk+AdbkbPFoCU8uhivTaQyv
WKlgjIJSBtZqEHjogIzTsuWejJvc0+VOOzuM3Sq4+qFo3/Gh0REeXrGSsuMjwYMuAB6Umojv+TGX
HwHuW8Xof8sCKm070pFjYWqlOPS/OjQ68t3HlDmbR1iWLfP/x0DDk0lGwYgCX6AjJE8o7eAQU+oy
0vJkklEwokpcRuiIwR9yp9wBBiwyY5u0u3MAAAAASUVORK5CYII=
--000000000000ea6e43061d852f7c--


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 13:02:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 13:02:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760500.1170361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUQmZ-0000yG-BI; Thu, 18 Jul 2024 13:02:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760500.1170361; Thu, 18 Jul 2024 13: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 1sUQmZ-0000y9-8c; Thu, 18 Jul 2024 13:02:51 +0000
Received: by outflank-mailman (input) for mailman id 760500;
 Thu, 18 Jul 2024 13: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=3WUc=OS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUQmX-0000Ux-Nz
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 13:02:49 +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 0818d6fc-4506-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 15:02:48 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2eedea0fd88so10258101fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 06:02: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
 d9443c01a7336-1fc0bbad94bsm92292205ad.90.2024.07.18.06.02.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 06:02: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: 0818d6fc-4506-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721307767; x=1721912567; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=snVWHu7MPggGB85XDWjEwVlnnwSqiGMLocUJqm9G8f0=;
        b=NTIXri9hXRqq5N4INcfMtR5j5Vw491RSLh8YtVLb8LVVNzRVzOhKv6tflfCsXhYiJo
         mZ2KzuApH+WsbsUqLeLEXmMgSTTF7JRrzRiY3twdk8xdaMupQTRQWh5sMhXnjRB5oGIL
         5DBko7WufMHbzQH6GD7rTV8FP5Ad7DE0Pb8uq3hNF78q0KLbfzu+gXtXxnavLXSVa8Xt
         L+XyZqJ4RJVXmEnfk9t0N7fMGeEiPhkzBMmDz6Q8kwO8kCR/ByYaPqcvXPjTMQ9KKRE/
         zBK7ob3tgfDk6y/QbRisKn6nFoO8p39zCDQtpZqeg3GeKHRtBYBnuAVmi3Vy9DWjsi0m
         zm9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721307767; x=1721912567;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=snVWHu7MPggGB85XDWjEwVlnnwSqiGMLocUJqm9G8f0=;
        b=XKL6kFDO/Y4q00Lr7S8N8UaerMK2X0AaQ7HbaoABJveD/SaL87sFh7Al6Nocfb9TXF
         Ji0oJcJzFwOVeus9lxvVIUdVQLR09sph6eIwmadfldC4ybhqoFleSCfCxU3/cSih5KNk
         iaQ6XcfDxqoFzqxlhkHw0byYKisPDlvEXoP1/XnbtgD9MN942eKKXFhq81327Yz3jfMd
         qEVsw/RimuO486u3I23EfMfjhwpftwmBuIm2rRnK4YT9L+subTDzPW6NJx8y0BWBERYy
         03dCZzmEkQ7DEV1/htJH9p2ECzo7hNjBkyGFq0Rz9GLjOYA1oPOj4rU4HIdu9bu1EVCp
         fxEQ==
X-Forwarded-Encrypted: i=1; AJvYcCWCF5JsJh+W5ckzU0Y82WLYBMEdRG+/MsRfAJNPYuDB1wi6ycaF+T6x8gqYHcCNEMO+txl63ur6Q5KCCnTmkeT3Sh3zfPuh/6NhJKMhWlM=
X-Gm-Message-State: AOJu0YykFlfYN7w946XZyf6WFA4+OJ0g/s947yD6AdSOQMymQxigryak
	5GedxmdPoj97bnrJo5zCTKbYPPCMRmX4yLG7drED3lHYaAhbwNKMP45FWCIRWQ==
X-Google-Smtp-Source: AGHT+IEppIJiRv/YrwEZRSvCrpMZmfiFcJmlmP8H/5L3H2RUufJNpXTXGgp4Fc0CQ3ggKTkYgbf2wg==
X-Received: by 2002:a05:651c:548:b0:2ee:83f7:8b32 with SMTP id 38308e7fff4ca-2ef05c9f497mr18064391fa.21.1721307767426;
        Thu, 18 Jul 2024 06:02:47 -0700 (PDT)
Message-ID: <93a47d78-dcfb-46d4-ae1a-2854971fe107@suse.com>
Date: Thu, 18 Jul 2024 15:02:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] Add scripts/oss-fuzz/build.sh
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <d0974cc40ca68fe197ba7941edd934970d3a92cf.1719355322.git.tamas@tklengyel.com>
 <53e3356e-4cc1-475a-91a1-8fc17fda07ab@suse.com>
 <CABfawhkLCziShB6x5J1OXL=M6AqquL-9SpTCQRVDNCeu_dqPNw@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CABfawhkLCziShB6x5J1OXL=M6AqquL-9SpTCQRVDNCeu_dqPNw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.07.2024 14:54, Tamas K Lengyel wrote:
> On Thu, Jul 18, 2024 at 7:17 AM Jan Beulich <jbeulich@suse.com> wrote:
>> On 26.06.2024 00:47, Tamas K Lengyel wrote:
>>> +cd xen
>>
>> This looks to suggest that the expectation is for the script to be invoked
>> from the root of a xen.git clone. Imo something like
>>
>> cd $(dirname $0)/../../xen
>>
>> would be more flexible.
> 
> No, it will be invoked after a git clone is made, so you have to enter
> the xen folder that was just cloned.

Yet the suggested alternative would still work then, wouldn't it? And
it would permit easier use of the script from outside of that very
specific environment, e.g. when wanting to re-invoke it without
running a full cloning process every time.

>>> +make clang=y -C tools/include
>>> +make clang=y -C tools/fuzz/x86_instruction_emulator libfuzzer-harness
>>
>> In how far is it a requirement to have "clang=y" here? Wasn't this question
>> even asked before? I'm not even sure whether mid- or long-term we mean to
>> retain that functionality. Overrides of tool chain (components) may better
>> be done using CC= and friends. Plus perhaps by whoever is invoking this
>> script?
> 
> It is an absolute requirement to use clang=y here as oss-fuzz uses a
> specific clang as compiler for C/C++ projects. The CC environment
> variables are already set by the oss-fuzz docker environment but it's
> insufficient for a successful clang build. Without clang=y the
> following error is encountered:
> 
> gcc: error: unrecognized debug output level 'line-tables-only'
> gcc: error: unrecognized argument to '-fsanitize=' option: 'fuzzer-no-link'

Could you add a sentence to this effect to the description?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 13:30:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 13:30:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760515.1170371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sURCm-0004xH-BK; Thu, 18 Jul 2024 13:29:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760515.1170371; Thu, 18 Jul 2024 13:29:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sURCm-0004xA-6t; Thu, 18 Jul 2024 13:29:56 +0000
Received: by outflank-mailman (input) for mailman id 760515;
 Thu, 18 Jul 2024 13:29:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Lg7+=OS=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sURCl-0004x4-0D
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 13:29:55 +0000
Received: from sender4-op-o12.zoho.com (sender4-op-o12.zoho.com
 [136.143.188.12]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf8d34ab-4509-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 15:29:52 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1721309388922493.58134258535154;
 Thu, 18 Jul 2024 06:29:48 -0700 (PDT)
Received: by mail-yw1-f177.google.com with SMTP id
 00721157ae682-6687f2f0986so4737777b3.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 06: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: cf8d34ab-4509-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1721309390; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=cZ23MYKavM1RJMiGwa1msFpgkXlp661KvmA6cGN3zRQ4u87gHGWf+4++UlAgdz8rUAOlrnK8WWUeFadQTuBYjlMdAi6lSWxj4Av+WTrOtqXPO6ySZXRI7Hjg7oEIRav+DxFxuobJ83V4N+92LJReJ6ZsNrbi79uAokJwNdRURFQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721309390; 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=UCUI3K0rUfwvjg2A23hId1M7TJ1G+zKDt+3xFAr6dtc=; 
	b=O2YKqyqqm+0W7VqZevgWowtvyUk6wiS5OXOKdMmu6Bdysgq0/j7TY5+3FFaBxWiERLXyrpjbOAqliHGnKt3GnYh30OnNCUy+duog6HeB9flaKK44GJH3E4k/3u7eRwvJzMXUiH36ipAVVpLsR1O5FZXAsyVicwNiZaPdQ0IvgXA=
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=1721309390;
	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=UCUI3K0rUfwvjg2A23hId1M7TJ1G+zKDt+3xFAr6dtc=;
	b=C4L/1Lk/aKbSy3u/B64fdZOtKlK78StD9SuKMduTHovz9ymp3RP1T4E/anazkmBF
	Br6h0eoTKMkDca3IV3NuOddzbopfQOuDWDPKFACw360CkvaNi67N6A4HwfQnvZQ5Pmm
	E8F9U0D6eaYUW0YKO1+EDKlO8OCm9hJbIXWxWRow=
X-Forwarded-Encrypted: i=1; AJvYcCV55KFjDL1W0oHWLt47WqyyokFtmWeJa6aV82MpP1fD4glRhDfNQY936DyGtPePS5Gqot6m1xn+LwhK6/MHc5Q2pvrLu87TyqeK0goldkI=
X-Gm-Message-State: AOJu0YyObswsUxftnxj30Tv822X+UQRkhrpeuD6qAgcGbzAKMYTw5r89
	LCtTDpP18Zhluo+oqPdqyV3zrQ8sad1YBS//xH6K+VxBvTabix2YlgRi+vG+OLOMtIdGIh34DTP
	XYWm0pGY7MOkSriIjP8lNJ16ENqg=
X-Google-Smtp-Source: AGHT+IEitQhdmoEWWf8TMzF5pcYyVofkvQI8rm6TRAG0vxi15B4qT8VsByL5z1wP6UG2npaoBXlRV+l+pXSsF5gQ3n8=
X-Received: by 2002:a05:6902:2686:b0:df1:d116:3f19 with SMTP id
 3f1490d57ef6-e05fec5713dmr3249512276.52.1721309388125; Thu, 18 Jul 2024
 06:29:48 -0700 (PDT)
MIME-Version: 1.0
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <d0974cc40ca68fe197ba7941edd934970d3a92cf.1719355322.git.tamas@tklengyel.com>
 <53e3356e-4cc1-475a-91a1-8fc17fda07ab@suse.com> <CABfawhkLCziShB6x5J1OXL=M6AqquL-9SpTCQRVDNCeu_dqPNw@mail.gmail.com>
 <93a47d78-dcfb-46d4-ae1a-2854971fe107@suse.com>
In-Reply-To: <93a47d78-dcfb-46d4-ae1a-2854971fe107@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Thu, 18 Jul 2024 09:29:11 -0400
X-Gmail-Original-Message-ID: <CABfawhnuUYPAtxtm68C_dO5iPjDd4=k9R5nQNvGF88ixgS8WsQ@mail.gmail.com>
Message-ID: <CABfawhnuUYPAtxtm68C_dO5iPjDd4=k9R5nQNvGF88ixgS8WsQ@mail.gmail.com>
Subject: Re: [PATCH v2 2/2] Add scripts/oss-fuzz/build.sh
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 18, 2024 at 9:03=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 18.07.2024 14:54, Tamas K Lengyel wrote:
> > On Thu, Jul 18, 2024 at 7:17=E2=80=AFAM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >> On 26.06.2024 00:47, Tamas K Lengyel wrote:
> >>> +cd xen
> >>
> >> This looks to suggest that the expectation is for the script to be inv=
oked
> >> from the root of a xen.git clone. Imo something like
> >>
> >> cd $(dirname $0)/../../xen
> >>
> >> would be more flexible.
> >
> > No, it will be invoked after a git clone is made, so you have to enter
> > the xen folder that was just cloned.
>
> Yet the suggested alternative would still work then, wouldn't it? And
> it would permit easier use of the script from outside of that very
> specific environment, e.g. when wanting to re-invoke it without
> running a full cloning process every time.

This script is specifically made for that one environment and is not
intended to be invoked from anywhere else. I don't think we need to
complicate this needlessly.

>
> >>> +make clang=3Dy -C tools/include
> >>> +make clang=3Dy -C tools/fuzz/x86_instruction_emulator libfuzzer-harn=
ess
> >>
> >> In how far is it a requirement to have "clang=3Dy" here? Wasn't this q=
uestion
> >> even asked before? I'm not even sure whether mid- or long-term we mean=
 to
> >> retain that functionality. Overrides of tool chain (components) may be=
tter
> >> be done using CC=3D and friends. Plus perhaps by whoever is invoking t=
his
> >> script?
> >
> > It is an absolute requirement to use clang=3Dy here as oss-fuzz uses a
> > specific clang as compiler for C/C++ projects. The CC environment
> > variables are already set by the oss-fuzz docker environment but it's
> > insufficient for a successful clang build. Without clang=3Dy the
> > following error is encountered:
> >
> > gcc: error: unrecognized debug output level 'line-tables-only'
> > gcc: error: unrecognized argument to '-fsanitize=3D' option: 'fuzzer-no=
-link'
>
> Could you add a sentence to this effect to the description?

Sure.

Thanks,
Tamas


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 13:38:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 13:38:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760524.1170380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sURLO-0006nR-3h; Thu, 18 Jul 2024 13:38:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760524.1170380; Thu, 18 Jul 2024 13:38: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 1sURLO-0006nK-12; Thu, 18 Jul 2024 13:38:50 +0000
Received: by outflank-mailman (input) for mailman id 760524;
 Thu, 18 Jul 2024 13:38:48 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sURLM-0006nA-Mb; Thu, 18 Jul 2024 13:38:48 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sURLM-0001nL-JK; Thu, 18 Jul 2024 13:38:48 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sURLM-0001Rf-8m; Thu, 18 Jul 2024 13:38:48 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sURLM-0006SO-8G; Thu, 18 Jul 2024 13:38: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=mdwfO1j71NiJAfHwwVZgHUtF1xRBpyHMh1XyMRsBTvk=; b=YP0orgxKpAXetaKP81IZoyGKF6
	UrVweVem3mjCw6fTf1OD5VyPcPxobMtty/ZWlhxYh+Y9edWss4nQGjBS+HuwxKTpuVxUSIgQ2yGVC
	xzsleABtKn6blUIbI1V5BwC4+wGVLpRs4FylO/c6Lxhd5WK9sZHFj7d88yf5ESA3yaj0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186857-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186857: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=ea6c3ea2d52c19264910888e18f38ff68759a574
X-Osstest-Versions-That:
    libvirt=239669049d9904e5e8da2d8b2a38d4d927a167e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Jul 2024 13:38:48 +0000

flight 186857 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186857/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186833
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              ea6c3ea2d52c19264910888e18f38ff68759a574
baseline version:
 libvirt              239669049d9904e5e8da2d8b2a38d4d927a167e9

Last test of basis   186833  2024-07-17 04:18:45 Z    1 days
Testing same since   186857  2024-07-18 04:18:45 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adam Julis <ajulis@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   239669049d..ea6c3ea2d5  ea6c3ea2d52c19264910888e18f38ff68759a574 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 13:58:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 13:58:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760535.1170390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUReF-0001GC-Le; Thu, 18 Jul 2024 13:58:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760535.1170390; Thu, 18 Jul 2024 13: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 1sUReF-0001G5-Iv; Thu, 18 Jul 2024 13:58:19 +0000
Received: by outflank-mailman (input) for mailman id 760535;
 Thu, 18 Jul 2024 13:58: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=jUPn=OS=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sUReE-0001Fz-MB
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 13:58:18 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20627.outbound.protection.outlook.com
 [2a01:111:f403:2414::627])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c73269cc-450d-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 15:58:16 +0200 (CEST)
Received: from SJ2PR07CA0001.namprd07.prod.outlook.com (2603:10b6:a03:505::11)
 by BY5PR12MB4196.namprd12.prod.outlook.com (2603:10b6:a03:205::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.29; Thu, 18 Jul
 2024 13:58:12 +0000
Received: from SJ5PEPF000001F2.namprd05.prod.outlook.com
 (2603:10b6:a03:505:cafe::7e) by SJ2PR07CA0001.outlook.office365.com
 (2603:10b6:a03:505::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.17 via Frontend
 Transport; Thu, 18 Jul 2024 13:58:12 +0000
Received: from SATLEXMB03.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.7784.11 via Frontend Transport; Thu, 18 Jul 2024 13:58:11 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 18 Jul
 2024 08:58:11 -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, 18 Jul
 2024 08:58:09 -0500
Received: from [172.27.205.14] (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, 18 Jul 2024 08:58: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: c73269cc-450d-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wB3FcB3ztQv3Z/InZak44Av7obhTfgHj5E3blHnJHbCPX9azcMzPjs1Sl2O8oFg4wkiCb84M5laQ7ofP14SHxJra6hZTRQyHXPcAkMfuKvuGjm+meqvoWKpcVfQoppH/w8tPjQh+KKdu/PB9UJ/h4yhw916zUYru36z2IV2Y+mMur/6G93DC+w707QSK/r2WSgfXZHdqzr2p95DS0bnrH5oaSiIZWVsq/t64beygzYVxBvjhNrbTvDrsDLNFgdBr7wQGIzIxiu5Iv/59geiAT4rwIPaSrJWXe6kz28hsbgvJTWzW7Flt31FoHK1wJAJTEvepq2bPLTuU5uPkr6HweQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sRUQYOIjWZVw4nyfewmVtC5A3zRH7JNfmqwRtd9cdQw=;
 b=Jqz7omKpgHBXCUlmvoLsw2XFxXoWeuXsyv/4dLJ0H+Mys8sRCXdj0K3+bh5hZkkHOYx6/Z79dP4C2PsGPNf28MeJ1hBv2OhEODax3o5wFpTD421DdU9EwBC7Gj4DsCWQmAII/OrmFW3hejA/oI1hmgmnaqLTixeIY/7GRMRs7weACKahSO563ao/N0y8OW0ic2DEqoj/JQH95V8jvNOd0fuXEaRaqtHCr2VvbjzQmM8oLoWeua/STK67aHFnEqSB+FFaBUKmaiHus7/zmhB0hoyrBQUbJ8UVFJ46ibr7YRj8OnMhM8ACHfRY2MtJLvOcoS3mxhTLguWjII32XXKaUw==
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=sRUQYOIjWZVw4nyfewmVtC5A3zRH7JNfmqwRtd9cdQw=;
 b=AKtRox5lnnKAZjFIx7X8JmBgramEwWO/gQsx6o41XLnwDRTcCrlpBu3dykPC5aAAE+u2r9VXksdieNnqrP9uy5MrlfQwAWHEMoGZcjI3B+F2l0YKQ+R3enPxZeGFLoHM7+5p/AsFuQoHYFTsadgmjQ2C9ExatAsXCnfiXDlHgMo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <2e1a5f62-d93e-4e3b-9064-78d93ff36090@amd.com>
Date: Thu, 18 Jul 2024 09:29:03 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/HVM: get_pat_flags() is needed only by shadow code
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: <76aafbed-bea9-445a-8abb-6e1e44996594@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <76aafbed-bea9-445a-8abb-6e1e44996594@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: SJ5PEPF000001F2:EE_|BY5PR12MB4196:EE_
X-MS-Office365-Filtering-Correlation-Id: e1e18835-ddee-407e-e13e-08dca731a988
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?SU1pTjVET1RxWDV2bjJnTXNQTzRzd1NwY3E3b1dhUGFSZzc3M3k5ckxhNEtX?=
 =?utf-8?B?Wm40bmZ3MUpIdGkxazJpODNRL3JYK3ZFTGJBRGRzUjJjL1ZaTWNUMzd1N1do?=
 =?utf-8?B?SmtuZU1ObVVnUGVMcUlQdjJPeGlxdjcvYTM1M3RjNUs2KzIzN29qc0hNV0Ev?=
 =?utf-8?B?cllOMnVzL2Y0dStDaXI2R08xY1I0Y0ZCWWZwb1I1NDBBUCtUdkp6VXIzY3ZI?=
 =?utf-8?B?dkpGREw2UERnQWhVSFFBTGk2dzNhV0oxUXhxOUpSNnVWUkJmOTZWeWVOTElS?=
 =?utf-8?B?V0c2QlJmd25ua09iL2FjRGNGWVVOWEdHcnRVdXEzRkNLMllZUkV6Z1orcTZa?=
 =?utf-8?B?Z1VKM2hMVzNFSkhoQ0pkQzlSU1lqeFRUSHY3UVJLSUJEam5IL3NhSXZuTEZu?=
 =?utf-8?B?Z3NVSnZDQU5BM2cyQlhlVkFUd0RlZGhuSzNCWUIyRHY0UFRKbCtjRWdBdmtV?=
 =?utf-8?B?My9Hb3hDTDJkc0x6N1RnaE45Z2xmSDRQTnZaZkZacjBZTGdSRjF1NkdRbjQ2?=
 =?utf-8?B?cjA5RUhFMDVXNXVFSC93SnBYRFdHR0t0eGNjK1lSOVBkS29GNllzeElUK29O?=
 =?utf-8?B?SC9VdE1DT25TTWZwZFo5T1hxR29EVTYvb2JDYW5YZ3A4VFlKeUNzYk9UYlZS?=
 =?utf-8?B?NVRWRXRSK1ltL0ROVGRpU1FyY0tlWENLa29xaCt6dUVldW1mZVJVN05EbzJQ?=
 =?utf-8?B?N3hscC9jVUsvRVFlaXpPNndVa1lXOEVMbmFWWlc3U0tmU3g0azRlcTlMbG9i?=
 =?utf-8?B?YkhTT1RiVlBRUm1Yemt5d0JSMjFWMjJGMjFNK2M3Y3U4WWRFYjhzQnNaVm1U?=
 =?utf-8?B?RXh1QXYzNzMxd1hsblBLWEpwalpVNWJGWXJ0eGpPUXJSOC8welhtd3ZsRTRP?=
 =?utf-8?B?Z0J3bU82TWkzNzBxdDc1bU5yZjZPN2pZN3dMRTZvckIvTmxrR1RQL3A2L2Nn?=
 =?utf-8?B?c1hZWTVyOHRhUlBIanozQ05RSFFDbE5ZYTVFTEJLSWxvVEdwMXovUXVKKzlD?=
 =?utf-8?B?SUZsU29OWWpoa0NXdFpnMmVZN1I2SXZzcDhldEZsOFd3MnBaNHhUTE85VHlS?=
 =?utf-8?B?VXJTOTJUTHB5UzJwcHJ0YTkzTWRxVTRubkNTOHFqc3YxR3lnMmdmQmdoamU5?=
 =?utf-8?B?bHRyWlhta3BTT2gvWUp6aU9pekk0YzY5UmozNm5TTy9oWjZtRW9qdWpHYTJ4?=
 =?utf-8?B?QVVJQkdabEgreXNnSEtpSkpTK3djUEdkQllVSjh1WWxRd1pxREE5N1EyVFI3?=
 =?utf-8?B?Z2hLYktFcWRpcDB1aldwTlRiZ0o3MTl2SFlQL2h5UkFBYVJiS1dobmZuVXFB?=
 =?utf-8?B?OGFyMVRReDh1bXVDTi9sWHNqSGVRNEFaaTUyenRZdzF1c2NKdkNwNDdkcjVl?=
 =?utf-8?B?d2RnaGZNdGR4ZG5KM0pZR1htTUpoK00rdWdIWHduRFVEV3h6UmJoTkZhSThl?=
 =?utf-8?B?Y0IxOWxabzZ2UmdodjMzS3loMzhmZk9ZRVNId2tmMks3QVVmc1Qxc2JLQWh6?=
 =?utf-8?B?TGNwS09KM20vbkQzK3hWL3F6cTJ5ZTllb09BUHVCTTdRK09PNTRTeFl0aExD?=
 =?utf-8?B?T3ZhNmg1clJRSTFISk4yOG02Kzc4NWFqQ3JjMStiV3MzT3FZbmtxajhCZHdn?=
 =?utf-8?B?T0dGZExqTlFMdE9uYTFYWVA1SGNvREhqTllsd0xpNi91YlIrOUg5dm5EWE5R?=
 =?utf-8?B?ZzlvVWUzWEo5RW8raU1RU0tTVDVsOGlqTW5TbmxwSm93OUhrMllnY2NFZ1lK?=
 =?utf-8?B?WVh5STd5RXBVTkprK0xWSTgxcC9oT3F0d2hrUFdzcVcxVzFLSFRmeTFwdHZN?=
 =?utf-8?B?bTNlRlAwaC9UaGpvTTZJd0V6MHlMY0h4NFppZXI4ZTRCVzVtZVQ4bCtLNzVX?=
 =?utf-8?B?Y2czS0M3c0ljRFRFazFYUGFLSWRkbnhBNWd6TllCdWozVnk5M3ZjWjBvVHEz?=
 =?utf-8?Q?JO6NRc7aft74f//EhLtdieH9e1lv2S29?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2024 13:58:11.7917
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e1e18835-ddee-407e-e13e-08dca731a988
X-MS-Exchange-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:
	SJ5PEPF000001F2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4196

On 2024-07-18 06:10, Jan Beulich wrote:
> Therefore with SHADOW_PAGING=n this is better compiled out, to avoid
> leaving around unreachable/dead code.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 14:49:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 14:49:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760560.1170424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUSRu-0008JN-Le; Thu, 18 Jul 2024 14:49:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760560.1170424; Thu, 18 Jul 2024 14: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 1sUSRu-0008JG-Ht; Thu, 18 Jul 2024 14:49:38 +0000
Received: by outflank-mailman (input) for mailman id 760560;
 Thu, 18 Jul 2024 14:49: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=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUSRt-0008J7-3c
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 14:49:37 +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 f335589f-4514-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 16:49:35 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a77d876273dso48407266b.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 07:49:35 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-59b268a28ddsm8459922a12.71.2024.07.18.07.49.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 07:49: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: f335589f-4514-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721314175; x=1721918975; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=14p4RdBi9r3NXrjGfwONpUUq+FSPUVNCvulMT1oqM6s=;
        b=E951ee1UGNnhzoP551W4ObpkxJsVBUHmv7gZBDcJz7uhGJgkIdx0jeBjxwEa2aICP9
         VJrnrAN/QarKJX0t+VQ7zsICjDMFXBitYF0gIpt8+2kduaflzI8fXdx5ZIRqj9asS73f
         XyfhlaonqexDi2cOp2kjLuiDESe6UvPjeCzwc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721314175; x=1721918975;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=14p4RdBi9r3NXrjGfwONpUUq+FSPUVNCvulMT1oqM6s=;
        b=NvP45z7VxcRJzuNRxHIopuDWjmxh/urxM/nZkwOs1lSsgP9o6nqpre7+Yoq9vVT0M2
         KmXxmhgIG2EbKgc8ASvP1UBTwQylXGHe2x8eG7PyyZBG8x21Was8VV2snyPnZYVnO0nx
         BZAMGlon6tp51rHSCbH/plZx6/tS/ClXGRudxIcKbn4goIQ0vbAYm8ILqyUWfQ66Pyg2
         Kx9jsY2z7GlQ+u3CMF7cU2PW3e5V68j1jzsUbq+NV1UqBTRxiAevPj3StQ712+Buqrof
         s8TlEPxCuRLrzhojNp3++lv7jlvJ4K8usDH2nQunIqdbX/hump4zAq4KiIX71xrClO3S
         js4g==
X-Forwarded-Encrypted: i=1; AJvYcCV+yk1ijB2Bc5UJ5AHavwfW/O5bmqkL8pt9Shvq3SmxKMLlOmOC60WtqLcYpL0oTZPfy7NMITP04Ydifqda9QA0ZDB8/aNX7j1dMDS744Q=
X-Gm-Message-State: AOJu0YwfRyhGXoPPA3rz+SNnMwZzxyJ5VzNp7dem5Nx5EAU6s17ZsOPE
	Mi2T0lpBH59VZR65jM8Z6bWElSmQMubdXOnTTkQyoq+b5tt3rxckU9oljmIirwg=
X-Google-Smtp-Source: AGHT+IHf2LtHkdov9RINZw8UWYHEOEa4rHsY+cINuI94RWjqucIsL0BQ31BJy3jjUSGqikB5zhdc2A==
X-Received: by 2002:a50:a419:0:b0:5a2:97d7:c728 with SMTP id 4fb4d7f45d1cf-5a297d7c887mr150521a12.0.1721314174923;
        Thu, 18 Jul 2024 07:49:34 -0700 (PDT)
Message-ID: <26ea63cd-0dfb-4373-8533-3e09546dbdf5@citrix.com>
Date: Thu, 18 Jul 2024 15:49:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] MAINTAINERS: drop CPU POOLS section
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20240718125251.27163-1-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240718125251.27163-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18/07/2024 1:52 pm, Juergen Gross wrote:
> The CPU POOLS sections in MAINTAINERS can be dropped, as the SCHEDULING
> section has the same maintainers and it is covering the CPU POOLS files
> as well.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 15:55:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 15:55:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760571.1170438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUTSs-00087U-6m; Thu, 18 Jul 2024 15:54:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760571.1170438; Thu, 18 Jul 2024 15: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 1sUTSs-00087N-4E; Thu, 18 Jul 2024 15:54:42 +0000
Received: by outflank-mailman (input) for mailman id 760571;
 Thu, 18 Jul 2024 15: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=MiOu=OS=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sUTSq-00087H-KC
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 15:54:40 +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 0911c6bd-451e-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 17:54:38 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a77c9c5d68bso101831366b.2
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 08:54:37 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc5d202fsm573512366b.78.2024.07.18.08.54.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 08:54: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: 0911c6bd-451e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721318077; x=1721922877; 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=p8OA8F10vQa3fyXs3McxOW3N8Y8jeCyKd+zOJvKFYuo=;
        b=jTUK9bn6eExV3QcqktL9Ag+swfBUMOylKWT4edzzyU0j2DNlfFrIba7sLb2K/8msQD
         8KuVKVZWanQqwrmxRbQEr3ThTj6j2hduEbCqgRQeT78lXI5LJyiOhMKGqgHL2e228Es9
         WPNbmnjCDEm8pXNwK8Vbhxkg2YbNwFtBf5ORA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721318077; x=1721922877;
        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=p8OA8F10vQa3fyXs3McxOW3N8Y8jeCyKd+zOJvKFYuo=;
        b=m3NZSC8BP2thBLA+TDaWYo3AvqqwNrczqFQmYtBJlOsJDyXBSLlxw2nORnrSbN9j76
         dI/tPtijjz/WKkmwB+Nr5kN+Uc/4MwGmlAZvSieSFOpUNUY92vN0mhRWZKi86ATQ30Z1
         ttBSBXmAD4wXoHNVf2r1Pw1PLDvejn7NoNpWgUB8w3j/Y0uK7+2O3FViISekRsBXr1/7
         Cht3opwoQxCTpfANnCVIrDzMeZI/rP0qMV9HOAs/x2sQVpQbJSqcBZC/l+yl+YseFj3T
         fNaeyF/CUFFwnhwgAq74r71hRul0pGfu3a8YWXUUZuoN/2P/f8dXIGMjZIOQl2SXpclQ
         jtAg==
X-Forwarded-Encrypted: i=1; AJvYcCVsNL7U5s+lBCXbAZbhedeYGFugk6dTwtTt5akdZ5qPSJ68/hMUSGUPncPbNdqpbR+cU38YrUl+rjogi3jNcWBxl8Lt0Z9FK96S9yJdpIE=
X-Gm-Message-State: AOJu0Yyt1tExJUdqwngzdS4bj/2GYWbLVIqUO52+HJg/WxE1a0/jogri
	vjMixFYerCAFf05eqpRHmzjuxTlyJ/prjIkO1QIjez4H/AEXpw8/x9XSbLBxaCY=
X-Google-Smtp-Source: AGHT+IGJIOvj/j0dgG73N0mEFFKt9JLDxI7wUdIpwZfw8QXTz/rxIQTkQsgjyA4OBntqi5Yo2jDo6A==
X-Received: by 2002:a17:906:f2c6:b0:a6f:501d:c224 with SMTP id a640c23a62f3a-a7a013377c0mr409201066b.57.1721318077007;
        Thu, 18 Jul 2024 08:54:37 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Thu, 18 Jul 2024 16:54:33 +0100
Message-Id: <D2SSBYKRS5I9.29TZSLF225OZ2@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Xen-devel"
 <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.20 2/4] x86/fpu: Create a typedef for the x87/SSE
 area inside "struct xsave_struct"
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>
X-Mailer: aerc 0.17.0
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
 <2e2763f4980c98cca0e2c3be057b2299295bb616.1720538832.git.alejandro.vallejo@cloud.com> <ac986849-7041-4b1c-89a8-bdf1c4ad29cc@suse.com>
In-Reply-To: <ac986849-7041-4b1c-89a8-bdf1c4ad29cc@suse.com>

On Thu Jul 18, 2024 at 12:23 PM BST, Jan Beulich wrote:
> On 09.07.2024 17:52, Alejandro Vallejo wrote:
> > Making the union non-anonymous causes a lot of headaches,
>
> Maybe better "would cause", as that's not what you're doing here?

Yes, sounds better.

>
> > because a lot of code
> > relies on it being so, but it's possible to make a typedef of the anony=
mous
> > union so all callsites currently relying on typeof() can stop doing so =
directly.
> >=20
> > This commit creates a `fpusse_t` typedef to the anonymous union at the =
head of
> > the XSAVE area and uses it instead of typeof().
> >=20
> > No functional change.
> >=20
> > Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks

Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 16:14:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 16:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760581.1170460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUTlo-0003DT-Rn; Thu, 18 Jul 2024 16:14:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760581.1170460; Thu, 18 Jul 2024 16:14:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUTlo-0003DM-Ot; Thu, 18 Jul 2024 16:14:16 +0000
Received: by outflank-mailman (input) for mailman id 760581;
 Thu, 18 Jul 2024 16: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=9B5K=OS=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sUTln-0003DG-5a
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 16:14:15 +0000
Received: from mail-qv1-xf2a.google.com (mail-qv1-xf2a.google.com
 [2607:f8b0:4864:20::f2a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c54ffa79-4520-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 18:14:13 +0200 (CEST)
Received: by mail-qv1-xf2a.google.com with SMTP id
 6a1803df08f44-6b73f7b855bso5875686d6.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 09:14:13 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b79c50d560sm9490496d6.53.2024.07.18.09.14.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 09:14: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: c54ffa79-4520-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721319252; x=1721924052; 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=QdPKvdhrBeaCbamle2Vl7Ldt5/QLB7kliCakUV/1Tjw=;
        b=nPnTGT8NibTPtowf24zxIffGbJqKVG/aWFDUr9cPhXgLQ3EP+feaV3JqmqG3tc2sse
         KaWDuZO6esqU7rDDI+K4wuYx44NvOixxIZM/g707fzdHSqeiLDlu/Yz6PrWuyD30qeT/
         +SXDCgXjaxrMjNumVWc70Hr4xzapRnqrjOjWU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721319252; x=1721924052;
        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=QdPKvdhrBeaCbamle2Vl7Ldt5/QLB7kliCakUV/1Tjw=;
        b=Gn/vc37aslqeUPXZiN9FMGtyvIaXCmMB2dh3/vOO7MwQ+rpk8Kpn8P+BLioK9ix95R
         1Qt8tS2/VCb4wK5/p8EOs2ebC/nymhUTGceXG3YsPrl32ypb8nZmAGIA+GDislLXK1Br
         sRZZwyuPD6Z3zPUZjTU2glyjdfFHQlhtMl88ROuMsY3bWPrQ2xHZsW97ZqCo4l4pTjT6
         qWu/0HXxyVP5JvGHGnlcJ8PXYoGP0BiHrCiwirwRSuQBgcu7N1ruOO1FjKHPyEv5reT+
         UK30cNMNK3Y3dhX3oD47lhoiztUgDUSdl/wYIiU2Oqrzg7/alAmMaRevrknaBBUo+bIG
         t+Qg==
X-Gm-Message-State: AOJu0YxFIHb7WVIfz3eYi/LGihcoiW6e6tPQp+1itNi3gbB4bktD+iJC
	3ZS3cpPY6vuNMyLfXwiY3W6InBKGIc+tySt3KDJehsYoRdbzFsUsEyjYfTVBWyM=
X-Google-Smtp-Source: AGHT+IGJKjcXlo3qorvFSVuh5ddFUGMH7rRHKMKFdTbVtwun7BK/BoyOAtTPd9sbNkRRny8p9L421g==
X-Received: by 2002:a05:6214:2a8e:b0:6b7:4298:2c75 with SMTP id 6a1803df08f44-6b78e2bbeeamr61729246d6.55.1721319251740;
        Thu, 18 Jul 2024 09:14:11 -0700 (PDT)
Date: Thu, 18 Jul 2024 18:14:09 +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>
Subject: Re: [PATCH] x86/HVM: get_pat_flags() is needed only by shadow code
Message-ID: <Zpk_Uacbt9iY9dys@macbook>
References: <76aafbed-bea9-445a-8abb-6e1e44996594@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <76aafbed-bea9-445a-8abb-6e1e44996594@suse.com>

On Thu, Jul 18, 2024 at 12:10:00PM +0200, Jan Beulich wrote:
> Therefore with SHADOW_PAGING=n this is better compiled out, to avoid
> leaving around unreachable/dead code.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

I was going to suggest moving this to shadow specific code, but I see
it accesses some static variables or macros defined in mtrr.c.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 16:48:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 16:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760597.1170519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUJK-00009u-TL; Thu, 18 Jul 2024 16:48:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760597.1170519; Thu, 18 Jul 2024 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 1sUUJK-00009h-PU; Thu, 18 Jul 2024 16:48:54 +0000
Received: by outflank-mailman (input) for mailman id 760597;
 Thu, 18 Jul 2024 16:48: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=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUUJK-0007PV-77
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 16:48:54 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9dcf5687-4525-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 18:48:53 +0200 (CEST)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-52ee4e26790so767008e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 09:48:53 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc820f2bsm576882466b.206.2024.07.18.09.48.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 09: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: 9dcf5687-4525-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721321332; x=1721926132; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NhFAb8PBQU/57PNqveksaa0wxKn4j+nTJ+P+HwWc7e4=;
        b=jQ0bWDdjaR9m+QbYmV2C1XVWkpO8CBWMTmAnftexBYwdblB/ZjNxGmjVtoBEwyw9kg
         5JhUaXRHF5PAo10LRe7b//GIDDnSgVPXHehkcrYof1CNu66S/BclbP46CRJT+u/54qZU
         f5IR4d1LRBItOz9doundZ2VakqtDeULWZrvWw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721321332; x=1721926132;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=NhFAb8PBQU/57PNqveksaa0wxKn4j+nTJ+P+HwWc7e4=;
        b=E97GePdMyUjXhmix57GrMWnS2hwxGDY4vph/cvaeWrzcFgCQPRLLN/PDl5u9LVyAOm
         sLPyMdMDR0pwMk0RoDIlgcOfqN7Q1ukNMXSw2zIpKWVaSMCeV/KJWkiwcbtt2ECtjvDn
         CiBXUHEUBAXoz0TaD96KQ/WRiN/vkuPn71pNs6BO6dKNZGcG72HcLhMNheKx2r5mvLv2
         qfEJlycnxsEJVcx55q+I3QS0llK0SznRPng7jW5+bGy2Jj/i+W2HabKADgiSH0Npllpw
         TgF8LDlbZo4oKenwmYiSWWRYTq5uhHREkUp4zWTfgWymv5gKeztIoK5eRNx9eQC7SWLg
         vC2w==
X-Gm-Message-State: AOJu0Yz650rppTEa4oQxWM9cY/UI6n2+A6N1Y9hQAsNYsyG4kqv6CPMO
	X7/BlR1ItU4+zO+ixQ66Wyqx0dD1XFpGL6RnCJpuq5DKEoB2v/Y2VS61AAzlb7AmiBJVBloIpCs
	F
X-Google-Smtp-Source: AGHT+IG4Fe3mXPxhBviT+OHpGVmgrBeFMtY0KoXy8ywzzLjRF6J/wTS1Q3D3OlChZOth7bazYM/HZA==
X-Received: by 2002:a05:6512:1082:b0:52b:bee3:dcc6 with SMTP id 2adb3069b0e04-52ee542de4emr3859041e87.51.1721321332536;
        Thu, 18 Jul 2024 09:48: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>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 6/6] tools/libxs: Stop playing with SIGPIPE
Date: Thu, 18 Jul 2024 17:48:42 +0100
Message-Id: <20240718164842.3650702-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

It's very rude for a library to play with signals behind the back of the
application, no matter ones views on the default behaviour of SIGPIPE under
POSIX.  Even if the application doesn't care about the xenstored socket, it my
care about others.

This logic has existed since xenstore/xenstored was originally added in commit
29c9e570b1ed ("Add xenstore daemon and library") in 2005.

It's also unnecessary.  Pass MSG_NOSIGNAL when talking to xenstored over a
pipe (to avoid sucumbing to SIGPIPE if xenstored has crashed), and forgo any
playing with the signal disposition.

This has a side benefit of saving 2 syscalls per xenstore request.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
---
 tools/libs/store/xs.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
index 9db5c02661f5..63d754e17014 100644
--- a/tools/libs/store/xs.c
+++ b/tools/libs/store/xs.c
@@ -579,7 +579,7 @@ static bool sendmsg_exact(int fd, struct iovec *iov, unsigned int nr)
 	assert(iov->iov_len == sizeof(struct xsd_sockmsg));
 
 	while (hdr.msg_iovlen) {
-		ssize_t res = sendmsg(fd, &hdr, 0);
+		ssize_t res = sendmsg(fd, &hdr, MSG_NOSIGNAL);
 
 		if (res < 0 && errno == EINTR)
 			continue;
@@ -680,7 +680,6 @@ static void *xs_talkv(struct xs_handle *h,
 	void *ret = NULL;
 	int saved_errno;
 	unsigned int i, msg_len;
-	struct sigaction ignorepipe, oldact;
 
 	/* Element 0 must be xsd_sockmsg */
 	assert(num_vecs >= 1);
@@ -697,11 +696,6 @@ static void *xs_talkv(struct xs_handle *h,
 
 	msg->len = msg_len;
 
-	ignorepipe.sa_handler = SIG_IGN;
-	sigemptyset(&ignorepipe.sa_mask);
-	ignorepipe.sa_flags = 0;
-	sigaction(SIGPIPE, &ignorepipe, &oldact);
-
 	mutex_lock(&h->request_mutex);
 
 	if (!write_request(h, iovec, num_vecs))
@@ -713,7 +707,6 @@ static void *xs_talkv(struct xs_handle *h,
 
 	mutex_unlock(&h->request_mutex);
 
-	sigaction(SIGPIPE, &oldact, NULL);
 	if (reply_type == XS_ERROR) {
 		saved_errno = get_error(ret);
 		free(ret);
@@ -732,7 +725,6 @@ static void *xs_talkv(struct xs_handle *h,
 	/* We're in a bad state, so close fd. */
 	saved_errno = errno;
 	mutex_unlock(&h->request_mutex);
-	sigaction(SIGPIPE, &oldact, NULL);
 close_fd:
 	close(h->fd);
 	h->fd = -1;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 16:48:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 16:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760595.1170510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUJJ-0008JH-LP; Thu, 18 Jul 2024 16:48:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760595.1170510; Thu, 18 Jul 2024 16: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 1sUUJJ-0008IC-Fl; Thu, 18 Jul 2024 16:48:53 +0000
Received: by outflank-mailman (input) for mailman id 760595;
 Thu, 18 Jul 2024 16:48: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=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUUJI-0007PV-09
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 16:48:52 +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 9c7d0fc6-4525-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 18:48:51 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a77e85cb9b4so130933866b.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 09:48:51 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc820f2bsm576882466b.206.2024.07.18.09.48.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 09:48: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: 9c7d0fc6-4525-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721321330; x=1721926130; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hkTFy1Zu0Gr3zYTHQkG7FDGi6T4zpbFrbx2OTn5XtTQ=;
        b=mUMPKZtcMV/1kx2RfqtvJVAKaULrCxEgcH7W8w9rQsJTm+2Th1VPBHI15BCnG1SR3h
         5Y5R2LeTe0+JTns7TA+SripEnTQIleUupBrRv66tWHjX8hxlY/7hF/KHABRyZqbt8y4R
         rwH69D3UDdWnoBgQ5KNushp8AechEPDnIk8Gs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721321330; x=1721926130;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hkTFy1Zu0Gr3zYTHQkG7FDGi6T4zpbFrbx2OTn5XtTQ=;
        b=IiesVEgBeRmG47r65AMmRksvsgS6bpkXlpJjYnmx27AI+DmouXFASNnJXWXTu4e51e
         Lo21Mw0L48dwiaLvSIRBZj0ByD7Ybgo4aotg2FUojbGR8/mJxhjok7seT0GqHfw6gBjR
         UJiv8M1JKJZPRVHT0GMxZCRprV5G3H6Y2UJ6DwQ2293AAwF8HyverDeDBoLBRPf+/oTj
         EFZ8Ii6dmSJm9kKvTlOJwBzKo3Maz1+KYmMhnucGaAr09ZYC3GomGgkqpqu4qqxPtPb/
         6p4y3NRtVOvuPtSM7nrRmr/g+U1Q+IfNVbtZnezshAGlZPbpedda2zuw8PCUv9VAod0C
         Mc7w==
X-Gm-Message-State: AOJu0Yxy624AuvsObaG31a2h864jp37XmmAeSJ+XiYkneOkxwyd0J8VD
	0wbvJ8u2dhUBEE74oYKoIkMyVrSQAbqbNW5XH8u6EY7z5o/rHREnn5eTT8gOvgXcrquTVjv3ycT
	X
X-Google-Smtp-Source: AGHT+IEd3YKoTQS49yqTGntO+HlOOzWaMziAkw4OTK8/nbvgjO2uP5cSTIwTE7Qy4RgevDhVddCB+w==
X-Received: by 2002:a17:906:4c51:b0:a77:c0f5:69d1 with SMTP id a640c23a62f3a-a7a01352d79mr392894966b.60.1721321330513;
        Thu, 18 Jul 2024 09:48: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>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 4/6] tools/libxs: Track whether we're using a socket or file
Date: Thu, 18 Jul 2024 17:48:40 +0100
Message-Id: <20240718164842.3650702-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

It will determine whether to use writev() or sendmsg().

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
---
 tools/libs/store/xs.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
index 96ea2b192924..f4edeb05f03b 100644
--- a/tools/libs/store/xs.c
+++ b/tools/libs/store/xs.c
@@ -65,6 +65,9 @@ struct xs_stored_msg {
 struct xs_handle {
 	/* Communications channel to xenstore daemon. */
 	int fd;
+
+	bool is_socket; /* is @fd a file or socket? */
+
 	Xentoolcore__Active_Handle tc_ah; /* for restrict */
 
 	/*
@@ -305,6 +308,8 @@ static struct xs_handle *get_handle(const char *connect_to)
 	if (h->fd == -1)
 		goto err;
 
+	h->is_socket = S_ISSOCK(buf.st_mode);
+
 	XEN_TAILQ_INIT(&h->reply_list);
 	XEN_TAILQ_INIT(&h->watch_list);
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 16:48:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 16:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760598.1170530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUJM-0000Rm-63; Thu, 18 Jul 2024 16:48:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760598.1170530; Thu, 18 Jul 2024 16:48:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUJM-0000RT-2j; Thu, 18 Jul 2024 16:48:56 +0000
Received: by outflank-mailman (input) for mailman id 760598;
 Thu, 18 Jul 2024 16:48: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=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUUJK-0007P6-OC
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 16:48:54 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d8477d4-4525-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 18:48:53 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2eeef45d865so13798371fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 09:48:53 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc820f2bsm576882466b.206.2024.07.18.09.48.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 09:48: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: 9d8477d4-4525-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721321332; x=1721926132; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yYc4CYlNYiXlhGTE3F3Z17D5dfT00FoaAtahQbVBGvo=;
        b=XwKwEFgd0gPh1dsPy587tpI62YA4S3W96UeQ3afyyO92rhQjwqSJMUxVrwUQolNi0j
         anD7lc2vVEfHGj2ObLxgDutwMcV8s020d6e1fJY8Pe6xFhu6gPdiJiitU5f8UH0Nd/nv
         8y+dt0souw3scDL4bjf+AlES5omp6jHlkOfi0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721321332; x=1721926132;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=yYc4CYlNYiXlhGTE3F3Z17D5dfT00FoaAtahQbVBGvo=;
        b=dIjTrRttSs32iY2q8551YvE8MdqsPB9jnnA1p7ScEeyLK131A5ec1MQfMzz45+yTVK
         Awf9ixE3msu6fZxZhExFm31cp6k/X3QpgcPaYcHyI6Q0ouWipuNUg9AkkjnqpWq7n3/J
         t9b/o2o4XbQ9NrU5TpFy2/3/Sbf0gbf+6JTMcPGNSERGig6Sn8qCDPDf5fB2x4XyaS2c
         Goll1G/RS2H3vy4HuHcRyyA7fvvQEv8rMrWPijEruYH9JM+n6J+LJmcAwc7MOoZ3IogN
         VdNbPdqA5vC3UzY/jrfDz/1fl2Uo79HNvfylZdtQgS/GsGTF73QVqYn/Em49Zb/d9xM6
         QzKA==
X-Gm-Message-State: AOJu0Yxr8Qz7qJ91kgFk0/m9k36Batb3NINU9X6QN9TWvNqxds2vmEA3
	807jLiVbUme8zflPXHFb/Qqq1Qrn8bjBSmvq8CDkr5M4GJLK/8pQfI40g8lCno8yci1q2Q6Vry9
	q
X-Google-Smtp-Source: AGHT+IEY1gnYXw/cRpFVXBzT2Q9vxvDB6ROlWIMl2FDXaLt4meEJFMN2uWHJZXsyiVHGgXIQQMBViw==
X-Received: by 2002:a05:6512:6cf:b0:52c:905b:ea5f with SMTP id 2adb3069b0e04-52ee545400amr5237900e87.63.1721321331774;
        Thu, 18 Jul 2024 09:48: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>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 5/6] tools/libxs: Use writev()/sendmsg() instead of write()
Date: Thu, 18 Jul 2024 17:48:41 +0100
Message-Id: <20240718164842.3650702-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With the input data now conveniently arranged, use writev()/sendmsg() instead
of decomposing it into write() calls.

This causes all requests to be submitted with a single system call, rather
than at least two.  While in principle short writes can occur, the chances of
it happening are slim given that most xenbus comms are only a handful of
bytes.

Nevertheless, provide {writev,sendmsg}_exact() wrappers which take care of
resubmitting on EINTR or short write.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
---
 tools/libs/store/xs.c | 104 ++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 101 insertions(+), 3 deletions(-)

diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
index f4edeb05f03b..9db5c02661f5 100644
--- a/tools/libs/store/xs.c
+++ b/tools/libs/store/xs.c
@@ -563,6 +563,105 @@ static void *read_reply(
 	return body;
 }
 
+/*
+ * Wrapper around sendmsg() to resubmit on EINTR or short write.  Returns
+ * @true if all data was transmitted, or @false with errno for an error.
+ * Note: May alter @iov in place on resubmit.
+ */
+static bool sendmsg_exact(int fd, struct iovec *iov, unsigned int nr)
+{
+	struct msghdr hdr = {
+		.msg_iov = iov,
+		.msg_iovlen = nr,
+	};
+
+	/* Sanity check first element isn't empty */
+	assert(iov->iov_len == sizeof(struct xsd_sockmsg));
+
+	while (hdr.msg_iovlen) {
+		ssize_t res = sendmsg(fd, &hdr, 0);
+
+		if (res < 0 && errno == EINTR)
+			continue;
+		if (res <= 0)
+			return false;
+
+		while (res) {
+			if (res >= hdr.msg_iov->iov_len) {
+				/* Skip full element. */
+				res -= hdr.msg_iov->iov_len;
+				hdr.msg_iovlen--;
+				hdr.msg_iov++;
+				continue;
+			}
+
+			/* Partial element, adjust base/len. */
+			hdr.msg_iov->iov_len  -= res;
+			hdr.msg_iov->iov_base += res;
+			break;
+		}
+
+		while (hdr.msg_iov->iov_len == 0) {
+			/* Skip empty element. */
+			hdr.msg_iovlen--;
+			hdr.msg_iov++;
+		}
+	}
+
+	return true;
+}
+
+/*
+ * Wrapper around sendmsg() to resubmit on EINTR or short write.  Returns
+ * @true if all data was transmitted, or @false with errno for an error.
+ * Note: May alter @iov in place on resubmit.
+ */
+static bool writev_exact(int fd, struct iovec *iov, unsigned int nr)
+{
+	/* Sanity check first element isn't empty */
+	assert(iov->iov_len == sizeof(struct xsd_sockmsg));
+
+	while (nr) {
+		ssize_t res = writev(fd, iov, nr);
+
+		if (res < 0 && errno == EINTR)
+			continue;
+		if (res <= 0)
+			return false;
+
+		while (res) {
+			if (res >= iov->iov_len) {
+				/* Skip full element. */
+				res -= iov->iov_len;
+				nr--;
+				iov++;
+				continue;
+			}
+
+			/* Partial element, adjust base/len. */
+			iov->iov_len  -= res;
+			iov->iov_base += res;
+			break;
+		}
+
+		while (iov->iov_len == 0) {
+			/* Skip empty element. */
+			nr--;
+			iov++;
+		}
+	}
+
+	return true;
+}
+
+static bool write_request(struct xs_handle *h, struct iovec *iov, unsigned int nr)
+{
+	if (h->is_socket)
+		return sendmsg_exact(h->fd, iov, nr);
+	else
+		return writev_exact(h->fd, iov, nr);
+}
+
 /*
  * Send message to xenstore, get malloc'ed reply.  NULL and set errno on error.
  *
@@ -605,9 +704,8 @@ static void *xs_talkv(struct xs_handle *h,
 
 	mutex_lock(&h->request_mutex);
 
-	for (i = 0; i < num_vecs; i++)
-		if (!xs_write_all(h->fd, iovec[i].iov_base, iovec[i].iov_len))
-			goto fail;
+	if (!write_request(h, iovec, num_vecs))
+		goto fail;
 
 	ret = read_reply(h, &reply_type, len);
 	if (!ret)
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 16:48:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 16:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760591.1170469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUJH-0007Px-9m; Thu, 18 Jul 2024 16:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760591.1170469; Thu, 18 Jul 2024 16: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 1sUUJH-0007Pq-7A; Thu, 18 Jul 2024 16:48:51 +0000
Received: by outflank-mailman (input) for mailman id 760591;
 Thu, 18 Jul 2024 16:48: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=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUUJF-0007PV-7f
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 16:48:49 +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 9a1babd5-4525-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 18:48:47 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a77e392f59fso113695866b.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 09:48:47 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc820f2bsm576882466b.206.2024.07.18.09.48.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 09:48: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: 9a1babd5-4525-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721321326; x=1721926126; 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=iIr0QAQQjMGCQVJBakpMNTlyW+1VIRzuGPRQ1OCYCHg=;
        b=aevB3nwgpspRfVms4q/sqrlsvzh1UdFYUqPXvgiWcZTtIKlh37cBVmmZdHn+npeZy0
         3kWsLcRzsAoHyoDi37ECQZEICkIfTlgu+1BHMJXXYyi8kGFLwYBd2oF+27NTgVrMo3L2
         KFL+ds1Ts3zLer8W25CLKzxZMAMvy2MnGG1nU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721321326; x=1721926126;
        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=iIr0QAQQjMGCQVJBakpMNTlyW+1VIRzuGPRQ1OCYCHg=;
        b=St7C4W8I1unQhX4PCsidLslQDygInUNag0aKjWpNleF6QPPT897J9+XvnW4itNCu2b
         U9k+3mCBJ1VlWGrR2V/g2pvxfrnU0OKJJ5r0MDhYz3OL0a+Qu72iQMbx8QBlRnQbm9Ao
         nd384E+7LkzczsDYkQgWW36CC3OyaR5L55fJDDWG047BWakJvpzV5JNWPLYf627F0Ro+
         l9r5P3xIBVGvL4VOJ/x89srAahKLvMdb11a1CNx6hgGtmu9e7TRsRTa1aEGdPPoGQqTN
         2U6cK/DXoPmROjD9xPAtrwJ490nVSYqVfY/MEhTn8ikDbrzNWrrinaxu0DA1j06rraB6
         C8kg==
X-Gm-Message-State: AOJu0Ywr7rD45g42SCI6s319WtpEGTyn1JY6li3pOYffCZxiPUOZnQ/l
	R7JRjmraR4rOh8InaS3LlTjeH1AMekZvwKHwKVDCMiwJWAbjtL31TxDkQwByGg3emIER8ZPvt1w
	g
X-Google-Smtp-Source: AGHT+IE6o7cTB76TwpxII8+evhCCoHMLrcbh5dT1Rm3Ut5qmw9wjkhZBD8MdcJlifpnVBRmDZXIl3A==
X-Received: by 2002:a17:906:71c6:b0:a72:b4c9:2be8 with SMTP id a640c23a62f3a-a7a013597abmr342575166b.72.1721321326125;
        Thu, 18 Jul 2024 09:48: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 0/6] tools/libxs: Fix SIGPIPE handling issues
Date: Thu, 18 Jul 2024 17:48:36 +0100
Message-Id: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

While the purpose of this series is patch 6, it has a side effect of reducing
the number of system calls substantally.

Using a strace of test-xenstore as an example, we go from this:

  rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fda8278e2f0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fda8278e2f0}, 8) = 0
  write(3, "\v\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0", 16) = 16
  write(3, "xenstore-test/502673/a\0", 23) = 23
  write(3, "a", 1)                        = 1
  read(3, "\v\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0", 16) = 16
  read(3, "OK\0", 3)                      = 3
  rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fda8278e2f0}, NULL, 8) = 0

down to this:

  sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\v\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0", iov_len=16}, {iov_base="xenstore-test/504021/a\0", iov_len=23}, {iov_base="a", iov_len=1}], msg_iovlen=3, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 40
  read(3, "\v\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0", 16) = 16
  read(3, "OK\0", 3)                      = 3


I.e., it removes 2x rt_sigaction(), and turns all write()'s into a single
writev() or sendmsg().


Reads are a little more problematic to deal with.  Xenstored will produce a
full package basically in one go, but libxenstore's reading is horrbly
complicated by virtue of it being completely different depending on whether
xs_watch() has created a secondary read thread or not.

Andrew Cooper (6):
  tools/libxs: Fix length check in xs_talkv()
  tools/libxs: Rework xs_talkv() to take xsd_sockmsg within the iovec
  tools/libxs: Rationalise the definition of struct xs_handle
  tools/libxs: Track whether we're using a socket or file
  tools/libxs: Use writev()/sendmsg() instead of write()
  tools/libxs: Stop playing with SIGPIPE

 tools/libs/store/xs.c | 394 +++++++++++++++++++++++++++---------------
 1 file changed, 258 insertions(+), 136 deletions(-)

-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 16:48:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 16:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760594.1170490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUJI-0007iZ-9h; Thu, 18 Jul 2024 16:48:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760594.1170490; Thu, 18 Jul 2024 16: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 1sUUJI-0007hK-1l; Thu, 18 Jul 2024 16:48:52 +0000
Received: by outflank-mailman (input) for mailman id 760594;
 Thu, 18 Jul 2024 16:48: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=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUUJG-0007PV-UA
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 16:48:50 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9bc77dde-4525-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 18:48:50 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-52ea79e6979so731745e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 09:48:50 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc820f2bsm576882466b.206.2024.07.18.09.48.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 09: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: 9bc77dde-4525-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721321329; x=1721926129; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Xuo7u/zXkhIBsvPwcy6H4PeF57mIJAldQoYHTVo90WI=;
        b=mflds8n3s2rRfb4Muk97juUZW++hDeYqlmL84wvRmuj3kKD2GhAoddkNCgl1PkapCf
         R+A6G2LDlOttVd8I7OenmyiCAOR6+WEH0zgwf6x7IrVMEVYhS1yqjSMrJR6GENkhpGcG
         sLINNTRKGkPn0kdTjZXorA3SXXEU833lPcpVU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721321329; x=1721926129;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Xuo7u/zXkhIBsvPwcy6H4PeF57mIJAldQoYHTVo90WI=;
        b=UEKH17Zn7FnN9TdZ0G+accpKZbScqOvGjq3d88OKb3rP7IMWRlJR1p4gT1qWr0imJe
         Ah/JviVT9fAb/KNfzm00T03K7d3dpF+h9sb3eIR9yBnqVzWcq9afR/fZzp/xQ6Q0oglQ
         gJDAam9SIntDWVruMRN5EKHqubMiuhXnyHWbFKuIMLWbNAtVMrEYvsUUcPnvGDXY+Fm7
         Qb58kNhOhrS/w0uULJQFBhpPe9MFiYnXEQQLYm7D4NK2KpA4fVi8pRNt5Jh9IobEwTKS
         rFqVvdtZXugHbzelT6cjqKQgU2EI3sEFJQVuTiSeehRQirjVX69Q1XSRkQ+ysw8HfkIE
         JJ+g==
X-Gm-Message-State: AOJu0YyIWj+05o5FZ5gqESj5+1bg5gdJcdsRtPnPb5i+CR82u94EwP1K
	kH7V6RSmzW6fRaEykhZlnVUZpMQBMgDAzFD6xz9bZS5VlYCng5pvwDcBRjPd21hrcjLHc1JvEXS
	9
X-Google-Smtp-Source: AGHT+IH+I4nN2nmQzuvSuwTsqBxTrwMpY51AkGdJw+JG371v4KDIMQo1MbwaSewsmi5uAI1yd9joww==
X-Received: by 2002:a05:6512:3ba8:b0:52c:dfe1:44ea with SMTP id 2adb3069b0e04-52ee53a2502mr4486308e87.6.1721321328990;
        Thu, 18 Jul 2024 09:48: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>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 3/6] tools/libxs: Rationalise the definition of struct xs_handle
Date: Thu, 18 Jul 2024 17:48:39 +0100
Message-Id: <20240718164842.3650702-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Right now there are two completely different struct xs_handle definitions,
depend on #ifdef USE_PTHREAD.  One is especially well hidden, and often
escapes updates.

Rework struct xs_handle using some interior ifdefary.  It's slightly longer,
but much easier to follow.  Importanly, this makes it much harder to forget
the !PTHREAD case when adding a "common" variable.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
---
 tools/libs/store/xs.c | 77 +++++++++++++++++++++----------------------
 1 file changed, 37 insertions(+), 40 deletions(-)

diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
index 1b5a913a1594..96ea2b192924 100644
--- a/tools/libs/store/xs.c
+++ b/tools/libs/store/xs.c
@@ -40,6 +40,14 @@
 #include <xentoolcore_internal.h>
 #include <xen_list.h>
 
+#ifdef USE_PTHREAD
+# include <pthread.h>
+#endif
+
+#ifdef USE_DLSYM
+# include <dlfcn.h>
+#endif
+
 #ifndef O_CLOEXEC
 #define O_CLOEXEC 0
 #endif
@@ -54,14 +62,6 @@ struct xs_stored_msg {
 	char *body;
 };
 
-#ifdef USE_PTHREAD
-
-#include <pthread.h>
-
-#ifdef USE_DLSYM
-#include <dlfcn.h>
-#endif
-
 struct xs_handle {
 	/* Communications channel to xenstore daemon. */
 	int fd;
@@ -71,16 +71,20 @@ struct xs_handle {
          * A read thread which pulls messages off the comms channel and
          * signals waiters.
          */
+#ifdef USE_PTHREAD
 	pthread_t read_thr;
 	int read_thr_exists;
+#endif
 
 	/*
          * A list of fired watch messages, protected by a mutex. Users can
          * wait on the conditional variable until a watch is pending.
          */
 	XEN_TAILQ_HEAD(, struct xs_stored_msg) watch_list;
+#ifdef USE_PTHREAD
 	pthread_mutex_t watch_mutex;
 	pthread_cond_t watch_condvar;
+#endif
 
 	/* Clients can select() on this pipe to wait for a watch to fire. */
 	int watch_pipe[2];
@@ -93,6 +97,7 @@ struct xs_handle {
          * conditional variable for its response.
          */
 	XEN_TAILQ_HEAD(, struct xs_stored_msg) reply_list;
+#ifdef USE_PTHREAD
 	pthread_mutex_t reply_mutex;
 	pthread_cond_t reply_condvar;
 
@@ -112,55 +117,47 @@ struct xs_handle {
 	 *     reply_mutex
 	 *     watch_mutex
 	 */
+#endif
 };
 
-#define mutex_lock(m)		pthread_mutex_lock(m)
-#define mutex_unlock(m)		pthread_mutex_unlock(m)
-#define condvar_signal(c)	pthread_cond_signal(c)
-#define condvar_wait(c,m)	pthread_cond_wait(c,m)
-#define cleanup_push(f, a)	\
-    pthread_cleanup_push((void (*)(void *))(f), (void *)(a))
+
+#ifdef USE_PTHREAD
+
+# define mutex_lock(m)             pthread_mutex_lock(m)
+# define mutex_unlock(m)           pthread_mutex_unlock(m)
+# define condvar_signal(c)         pthread_cond_signal(c)
+# define condvar_wait(c, m)        pthread_cond_wait(c, m)
+# define cleanup_push(f, a)        pthread_cleanup_push((void (*)(void *))(f), (void *)(a))
 /*
  * Some definitions of pthread_cleanup_pop() are a macro starting with an
  * end-brace. GCC then complains if we immediately precede that with a label.
  * Hence we insert a dummy statement to appease the compiler in this situation.
  */
-#define cleanup_pop(run)        ((void)0); pthread_cleanup_pop(run)
+# define cleanup_pop(run)          ((void)0); pthread_cleanup_pop(run)
 
-#define read_thread_exists(h)	(h->read_thr_exists)
+# define read_thread_exists(h)     ((h)->read_thr_exists)
 
 /* Because pthread_cleanup_p* are not available when USE_PTHREAD is
  * disabled, use these macros which convert appropriately. */
-#define cleanup_push_heap(p)        cleanup_push(free, p)
-#define cleanup_pop_heap(run, p)    cleanup_pop((run))
+# define cleanup_push_heap(p)      cleanup_push(free, p)
+# define cleanup_pop_heap(run, p)  cleanup_pop((run))
 
 static void *read_thread(void *arg);
 
-#else /* !defined(USE_PTHREAD) */
+#else /* USE_PTHREAD */
 
-struct xs_handle {
-	int fd;
-	Xentoolcore__Active_Handle tc_ah; /* for restrict */
-	XEN_TAILQ_HEAD(, struct xs_stored_msg) reply_list;
-	XEN_TAILQ_HEAD(, struct xs_stored_msg) watch_list;
-	/* Clients can select() on this pipe to wait for a watch to fire. */
-	int watch_pipe[2];
-	/* Filtering watch event in unwatch function? */
-	bool unwatch_filter;
-};
+# define mutex_lock(m)               ((void)0)
+# define mutex_unlock(m)             ((void)0)
+# define condvar_signal(c)           ((void)0)
+# define condvar_wait(c, m)          ((void)0)
+# define cleanup_push(f, a)          ((void)0)
+# define cleanup_pop(run)            ((void)0)
+# define read_thread_exists(h)       (0)
+# define cleanup_push_heap(p)        ((void)0)
+# define cleanup_pop_heap(run, p)    do { if ((run)) free(p); } while(0)
 
-#define mutex_lock(m)		((void)0)
-#define mutex_unlock(m)		((void)0)
-#define condvar_signal(c)	((void)0)
-#define condvar_wait(c,m)	((void)0)
-#define cleanup_push(f, a)	((void)0)
-#define cleanup_pop(run)	((void)0)
-#define read_thread_exists(h)	(0)
+#endif /* !USE_PTHREAD */
 
-#define cleanup_push_heap(p)        ((void)0)
-#define cleanup_pop_heap(run, p)    do { if ((run)) free(p); } while(0)
-
-#endif
 
 static int read_message(struct xs_handle *h, int nonblocking);
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 16:48:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 16:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760592.1170476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUJH-0007Sr-Jh; Thu, 18 Jul 2024 16:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760592.1170476; Thu, 18 Jul 2024 16: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 1sUUJH-0007SJ-E1; Thu, 18 Jul 2024 16:48:51 +0000
Received: by outflank-mailman (input) for mailman id 760592;
 Thu, 18 Jul 2024 16:48:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUUJF-0007P6-PN
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 16:48:49 +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 9a69529b-4525-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 18:48:48 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a77c4309fc8so114537066b.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 09:48:48 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc820f2bsm576882466b.206.2024.07.18.09.48.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 09:48: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: 9a69529b-4525-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721321327; x=1721926127; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X4BlkI7qVe6JhZnQJA32AL/5m5qn3kLrFdL0fvOwv9E=;
        b=QId9VnrsLlQpKF/Si9WMO4UhvwLsgLrJnr/v/bmCWR8VJ3KISHotq04bwGvBPbkf0T
         EXiEF6NTW2J0EF6Fka82hC3M87mailb9+uJuxDtkNDq0syvyF8HoHRl+veh9RGrV9IO3
         QA1ZtfgC2Fkry4IWAyGzAThNkRq5wZNXADtaw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721321327; x=1721926127;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=X4BlkI7qVe6JhZnQJA32AL/5m5qn3kLrFdL0fvOwv9E=;
        b=lNymHf1wZERyxzuG9ONRi1XmtjBKyS0VQVxr+NFSTBxXyK7oUOAtoBUTHNYMNO8Y6O
         WGPrf8svILfINM3/z4BHmO/h/RMu4XGaX9eMpDw5vDWzR5uvcpYdAzcXLECQO4tNQgC4
         GHD9oTPnOv2OSEYkXa5tb7bVggvI9Gd4GdEbfxOqK7DiELMpzZAHOBNIlbi52G3ZwQGC
         PWh4+mUBwL4nEdU4qrb+6P1yjNeer4Y6YkoyYlJVfQ10g9NiJe/k1z2KkoZwNIfEHTbQ
         ilJ0mbB5XZmBX+3VAVJk1LwRGuELbytIs616T+lRfw6ukhRvPNhUb+CDuH3xaB8sTCXt
         83qA==
X-Gm-Message-State: AOJu0YxWlknmIw23gXBHMoGUw/FrtMoHsxQp/KYEWXNJgi9f/xOOaLJR
	2johc89AAuvifOSo0SoYtK2PCh6foxMZLEKDP3DaBuVsVVMwldooJTsi8u0sZ/zfh+gZ4htMW/r
	E
X-Google-Smtp-Source: AGHT+IG1xfD5N/kjpMelrT1RzzK/qXkkDG3AdIB0KNVjemyCKq0rzXa1y6vcnYgDZraTZ/yBRKWF5w==
X-Received: by 2002:a17:907:366:b0:a77:d773:54ec with SMTP id a640c23a62f3a-a7a01120edamr333454566b.8.1721321326786;
        Thu, 18 Jul 2024 09:48: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 1/6] tools/libxs: Fix length check in xs_talkv()
Date: Thu, 18 Jul 2024 17:48:37 +0100
Message-Id: <20240718164842.3650702-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

If the sum of iov element lengths overflows, the XENSTORE_PAYLOAD_MAX can
pass, after which we'll write 4G of data with a good-looking length field, and
the remainder of the payload will be interpreted as subsequent commands.

Check each iov element length for XENSTORE_PAYLOAD_MAX before accmulating it.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
---
 tools/libs/store/xs.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
index ec77379ab9bd..81a790cfe60f 100644
--- a/tools/libs/store/xs.c
+++ b/tools/libs/store/xs.c
@@ -571,21 +571,24 @@ static void *xs_talkv(struct xs_handle *h, xs_transaction_t t,
 	struct xsd_sockmsg msg;
 	void *ret = NULL;
 	int saved_errno;
-	unsigned int i;
+	unsigned int i, msg_len;
 	struct sigaction ignorepipe, oldact;
 
 	msg.tx_id = t;
 	msg.req_id = 0;
 	msg.type = type;
-	msg.len = 0;
-	for (i = 0; i < num_vecs; i++)
-		msg.len += iovec[i].iov_len;
 
-	if (msg.len > XENSTORE_PAYLOAD_MAX) {
-		errno = E2BIG;
-		return 0;
+	/* Calculate the payload length by summing iovec elements */
+	for (i = 0, msg_len = 0; i < num_vecs; i++) {
+		if ((iovec[i].iov_len > XENSTORE_PAYLOAD_MAX) ||
+		    ((msg_len += iovec[i].iov_len) > XENSTORE_PAYLOAD_MAX)) {
+			errno = E2BIG;
+			return 0;
+		}
 	}
 
+	msg.len = msg_len;
+
 	ignorepipe.sa_handler = SIG_IGN;
 	sigemptyset(&ignorepipe.sa_mask);
 	ignorepipe.sa_flags = 0;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 16:48:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 16:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760593.1170481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUJH-0007Yz-SH; Thu, 18 Jul 2024 16:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760593.1170481; Thu, 18 Jul 2024 16: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 1sUUJH-0007Y8-Mp; Thu, 18 Jul 2024 16:48:51 +0000
Received: by outflank-mailman (input) for mailman id 760593;
 Thu, 18 Jul 2024 16:48: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=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUUJG-0007PV-Ja
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 16:48:50 +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 9b65fb3d-4525-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 18:48:49 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a77cb7c106dso111662166b.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 09:48:49 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc820f2bsm576882466b.206.2024.07.18.09.48.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 09:48: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: 9b65fb3d-4525-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721321328; x=1721926128; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0HmR6V9jK0R+Cz/LsyATivEHCG9ldcpQ0RPlbouApH8=;
        b=MUZbOyrwIUoWfEkrkGIJ26qKi7ehHwW+c/q5FMoibEuvpwbYDnfd/q5f4Lm+WlGPuh
         IM+3qSGm5a/2Ne4DwZwO8mVucJpfmPK46V8oA8v8cU5LXOpQXKGgq2PR2Rf1urjYH05K
         M+on5Q8bslfbwLFebI88/Z9J3AFQ/m7BK4Di0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721321328; x=1721926128;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0HmR6V9jK0R+Cz/LsyATivEHCG9ldcpQ0RPlbouApH8=;
        b=fRQsrOpa0nQZ1g2etcNQg7HLHO3lN6n0YQfnjROgUYb0Xt0P8IhPJQUMVYkZ91udR5
         eg4NosrYFp2kP8chfdIi2La4rw5k9nR5UH4ZiLz788sbav0IYD+uFtXzXjh/DaNBi2vy
         4O8X0XtpCrCX+5hvQkEN85Hq/CPvraWQlvWq+YiRzZpOd57nfB9Fbc9PpsnEaAZ/nrgP
         n8PMdcYHhSVQ3CE40UdZ30lMQA1H33MwU0YKgU496ak85owyTfwd0gHG855IIqvW89Ym
         fA2YL3OwNkxD89q1BSlXSLKVFALeTLQGBRiAeLHmIBvuXizInxDMa4coERyzac5mHgAE
         Czkg==
X-Gm-Message-State: AOJu0Yy1YUPO2g/nUJJ8G2QMVe/7dhaagqkAuN6au898nKKKd+JniQQ8
	ILYvJRNpGoaWrUpNPt6OhxkOowNaI8cC9i6kU6hKWKD8vRYOqXwjdWdsP79efYv8qgJpiYmnNJY
	d
X-Google-Smtp-Source: AGHT+IE6n8Rs0jIbLNVdEx1ZWBkGqND8epNKrtfnBbw0omr3FF26zxYxVCEy3PN/i+QatkEf27EzAA==
X-Received: by 2002:a17:906:504a:b0:a72:76c8:ef68 with SMTP id a640c23a62f3a-a7a013553cbmr358012066b.69.1721321328273;
        Thu, 18 Jul 2024 09:48: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>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 2/6] tools/libxs: Rework xs_talkv() to take xsd_sockmsg within the iovec
Date: Thu, 18 Jul 2024 17:48:38 +0100
Message-Id: <20240718164842.3650702-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

We would like to writev() the whole outgoing message, which is hard given the
current need to prepend the locally-constructed xsd_sockmsg.

Instead, have the caller provide xsd_sockmsg in iovec[0].  This in turn drops
the t and type parameters from xs_talkv().

Note that xs_talkv() may alter the iovec structure.  This may happen when
writev() is really used under the covers, and it's preforable to having the
lower levels need to duplciate the iovec to edit it upon encountering a short
write.  xs_directory_part() is the only function impacted by this, and it's
easy to rearrange.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
---
 tools/libs/store/xs.c | 187 ++++++++++++++++++++++++------------------
 1 file changed, 107 insertions(+), 80 deletions(-)

diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
index 81a790cfe60f..1b5a913a1594 100644
--- a/tools/libs/store/xs.c
+++ b/tools/libs/store/xs.c
@@ -561,25 +561,32 @@ static void *read_reply(
 	return body;
 }
 
-/* Send message to xs, get malloc'ed reply.  NULL and set errno on error. */
-static void *xs_talkv(struct xs_handle *h, xs_transaction_t t,
-		      enum xsd_sockmsg_type type,
-		      const struct iovec *iovec,
+/*
+ * Send message to xenstore, get malloc'ed reply.  NULL and set errno on error.
+ *
+ * @iovec describes the entire outgoing message, starting with the xsd_sockmsg
+ * header.  xs_talkv() calculates the outgoing message length, updating
+ * xsd_sockmsg in element 0.  xs_talkv() might edit the iovec structure in
+ * place (e.g. following short writes).
+ */
+static void *xs_talkv(struct xs_handle *h,
+		      struct iovec *iovec,
 		      unsigned int num_vecs,
 		      unsigned int *len)
 {
-	struct xsd_sockmsg msg;
+	struct xsd_sockmsg *msg = iovec[0].iov_base;
+	enum xsd_sockmsg_type reply_type;
 	void *ret = NULL;
 	int saved_errno;
 	unsigned int i, msg_len;
 	struct sigaction ignorepipe, oldact;
 
-	msg.tx_id = t;
-	msg.req_id = 0;
-	msg.type = type;
+	/* Element 0 must be xsd_sockmsg */
+	assert(num_vecs >= 1);
+	assert(iovec[0].iov_len == sizeof(*msg));
 
 	/* Calculate the payload length by summing iovec elements */
-	for (i = 0, msg_len = 0; i < num_vecs; i++) {
+	for (i = 1, msg_len = 0; i < num_vecs; i++) {
 		if ((iovec[i].iov_len > XENSTORE_PAYLOAD_MAX) ||
 		    ((msg_len += iovec[i].iov_len) > XENSTORE_PAYLOAD_MAX)) {
 			errno = E2BIG;
@@ -587,7 +594,7 @@ static void *xs_talkv(struct xs_handle *h, xs_transaction_t t,
 		}
 	}
 
-	msg.len = msg_len;
+	msg->len = msg_len;
 
 	ignorepipe.sa_handler = SIG_IGN;
 	sigemptyset(&ignorepipe.sa_mask);
@@ -596,28 +603,25 @@ static void *xs_talkv(struct xs_handle *h, xs_transaction_t t,
 
 	mutex_lock(&h->request_mutex);
 
-	if (!xs_write_all(h->fd, &msg, sizeof(msg)))
-		goto fail;
-
 	for (i = 0; i < num_vecs; i++)
 		if (!xs_write_all(h->fd, iovec[i].iov_base, iovec[i].iov_len))
 			goto fail;
 
-	ret = read_reply(h, &msg.type, len);
+	ret = read_reply(h, &reply_type, len);
 	if (!ret)
 		goto fail;
 
 	mutex_unlock(&h->request_mutex);
 
 	sigaction(SIGPIPE, &oldact, NULL);
-	if (msg.type == XS_ERROR) {
+	if (reply_type == XS_ERROR) {
 		saved_errno = get_error(ret);
 		free(ret);
 		errno = saved_errno;
 		return NULL;
 	}
 
-	if (msg.type != type) {
+	if (reply_type != msg->type) {
 		free(ret);
 		saved_errno = EBADF;
 		goto close_fd;
@@ -650,11 +654,15 @@ static void *xs_single(struct xs_handle *h, xs_transaction_t t,
 		       const char *string,
 		       unsigned int *len)
 {
-	struct iovec iovec;
+	struct xsd_sockmsg msg = { .type = type, .tx_id = t };
+	struct iovec iov[2];
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = (void *)string;
+	iov[1].iov_len  = strlen(string) + 1;
 
-	iovec.iov_base = (void *)string;
-	iovec.iov_len = strlen(string) + 1;
-	return xs_talkv(h, t, type, &iovec, 1, len);
+	return xs_talkv(h, iov, ARRAY_SIZE(iov), len);
 }
 
 static bool xs_bool(char *reply)
@@ -691,21 +699,25 @@ static char **xs_directory_common(char *strings, unsigned int len,
 static char **xs_directory_part(struct xs_handle *h, xs_transaction_t t,
 				const char *path, unsigned int *num)
 {
+	struct xsd_sockmsg msg = { .type = XS_DIRECTORY_PART, .tx_id = t };
 	unsigned int off, result_len;
 	char gen[24], offstr[8];
-	struct iovec iovec[2];
+	struct iovec iov[3];
 	char *result = NULL, *strings = NULL;
 
 	memset(gen, 0, sizeof(gen));
-	iovec[0].iov_base = (void *)path;
-	iovec[0].iov_len = strlen(path) + 1;
 
 	for (off = 0;;) {
 		snprintf(offstr, sizeof(offstr), "%u", off);
-		iovec[1].iov_base = (void *)offstr;
-		iovec[1].iov_len = strlen(offstr) + 1;
-		result = xs_talkv(h, t, XS_DIRECTORY_PART, iovec, 2,
-				  &result_len);
+
+		iov[0].iov_base = &msg;
+		iov[0].iov_len  = sizeof(msg);
+		iov[1].iov_base = (void *)path;
+		iov[1].iov_len  = strlen(path) + 1;
+		iov[2].iov_base = (void *)offstr;
+		iov[2].iov_len  = strlen(offstr) + 1;
+
+		result = xs_talkv(h, iov, ARRAY_SIZE(iov), &result_len);
 
 		/* If XS_DIRECTORY_PART isn't supported return E2BIG. */
 		if (!result) {
@@ -774,15 +786,17 @@ void *xs_read(struct xs_handle *h, xs_transaction_t t,
 bool xs_write(struct xs_handle *h, xs_transaction_t t,
 	      const char *path, const void *data, unsigned int len)
 {
-	struct iovec iovec[2];
+	struct xsd_sockmsg msg = { .type = XS_WRITE, .tx_id = t };
+	struct iovec iov[3];
 
-	iovec[0].iov_base = (void *)path;
-	iovec[0].iov_len = strlen(path) + 1;
-	iovec[1].iov_base = (void *)data;
-	iovec[1].iov_len = len;
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = (void *)path;
+	iov[1].iov_len  = strlen(path) + 1;
+	iov[2].iov_base = (void *)data;
+	iov[2].iov_len  = len;
 
-	return xs_bool(xs_talkv(h, t, XS_WRITE, iovec,
-				ARRAY_SIZE(iovec), NULL));
+	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
 }
 
 /* Create a new directory.
@@ -846,34 +860,37 @@ bool xs_set_permissions(struct xs_handle *h,
 			struct xs_permissions *perms,
 			unsigned int num_perms)
 {
+	struct xsd_sockmsg msg = { .type = XS_SET_PERMS, .tx_id = t };
 	unsigned int i;
-	struct iovec iov[1+num_perms];
+	struct iovec iov[2 + num_perms];
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = (void *)path;
+	iov[1].iov_len  = strlen(path) + 1;
 
-	iov[0].iov_base = (void *)path;
-	iov[0].iov_len = strlen(path) + 1;
-	
 	for (i = 0; i < num_perms; i++) {
 		char buffer[MAX_STRLEN(unsigned int)+1];
 
 		if (!xenstore_perm_to_string(&perms[i], buffer, sizeof(buffer)))
 			goto unwind;
 
-		iov[i+1].iov_base = strdup(buffer);
-		iov[i+1].iov_len = strlen(buffer) + 1;
+		iov[i + 2].iov_base = strdup(buffer);
+		iov[i + 2].iov_len  = strlen(buffer) + 1;
 		if (!iov[i+1].iov_base)
 			goto unwind;
 	}
 
-	if (!xs_bool(xs_talkv(h, t, XS_SET_PERMS, iov, 1+num_perms, NULL)))
+	if (!xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL)))
 		goto unwind;
 	for (i = 0; i < num_perms; i++)
-		free(iov[i+1].iov_base);
+		free(iov[i + 2].iov_base);
 	return true;
 
 unwind:
 	num_perms = i;
 	for (i = 0; i < num_perms; i++)
-		free_no_errno(iov[i+1].iov_base);
+		free_no_errno(iov[i + 2].iov_base);
 	return false;
 }
 
@@ -890,7 +907,8 @@ bool xs_restrict(struct xs_handle *h, unsigned domid)
  */
 bool xs_watch(struct xs_handle *h, const char *path, const char *token)
 {
-	struct iovec iov[2];
+	struct xsd_sockmsg msg = { .type = XS_WATCH };
+	struct iovec iov[3];
 
 #ifdef USE_PTHREAD
 #define DEFAULT_THREAD_STACKSIZE (16 * 1024)
@@ -948,13 +966,14 @@ bool xs_watch(struct xs_handle *h, const char *path, const char *token)
 	mutex_unlock(&h->request_mutex);
 #endif
 
-	iov[0].iov_base = (void *)path;
-	iov[0].iov_len = strlen(path) + 1;
-	iov[1].iov_base = (void *)token;
-	iov[1].iov_len = strlen(token) + 1;
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = (void *)path;
+	iov[1].iov_len  = strlen(path) + 1;
+	iov[2].iov_base = (void *)token;
+	iov[2].iov_len  = strlen(token) + 1;
 
-	return xs_bool(xs_talkv(h, XBT_NULL, XS_WATCH, iov,
-				ARRAY_SIZE(iov), NULL));
+	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
 }
 
 
@@ -1067,20 +1086,22 @@ char **xs_read_watch(struct xs_handle *h, unsigned int *num)
  */
 bool xs_unwatch(struct xs_handle *h, const char *path, const char *token)
 {
-	struct iovec iov[2];
+	struct xsd_sockmsg sockmsg = { .type = XS_UNWATCH };
+	struct iovec iov[3];
 	struct xs_stored_msg *msg, *tmsg;
 	bool res;
 	char *s, *p;
 	unsigned int i;
 	char *l_token, *l_path;
 
-	iov[0].iov_base = (char *)path;
-	iov[0].iov_len = strlen(path) + 1;
-	iov[1].iov_base = (char *)token;
-	iov[1].iov_len = strlen(token) + 1;
+	iov[0].iov_base = &sockmsg;
+	iov[0].iov_len  = sizeof(sockmsg);
+	iov[1].iov_base = (char *)path;
+	iov[1].iov_len  = strlen(path) + 1;
+	iov[2].iov_base = (char *)token;
+	iov[2].iov_len  = strlen(token) + 1;
 
-	res = xs_bool(xs_talkv(h, XBT_NULL, XS_UNWATCH, iov,
-			       ARRAY_SIZE(iov), NULL));
+	res = xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
 
 	if (!h->unwatch_filter) /* Don't filter the watch list */
 		return res;
@@ -1173,43 +1194,47 @@ bool xs_introduce_domain(struct xs_handle *h,
 			 unsigned int domid, unsigned long mfn,
 			 unsigned int eventchn)
 {
+	struct xsd_sockmsg msg = { .type = XS_INTRODUCE };
 	char domid_str[MAX_STRLEN(domid)];
 	char mfn_str[MAX_STRLEN(mfn)];
 	char eventchn_str[MAX_STRLEN(eventchn)];
-	struct iovec iov[3];
+	struct iovec iov[4];
 
 	snprintf(domid_str, sizeof(domid_str), "%u", domid);
 	snprintf(mfn_str, sizeof(mfn_str), "%lu", mfn);
 	snprintf(eventchn_str, sizeof(eventchn_str), "%u", eventchn);
 
-	iov[0].iov_base = domid_str;
-	iov[0].iov_len = strlen(domid_str) + 1;
-	iov[1].iov_base = mfn_str;
-	iov[1].iov_len = strlen(mfn_str) + 1;
-	iov[2].iov_base = eventchn_str;
-	iov[2].iov_len = strlen(eventchn_str) + 1;
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = domid_str;
+	iov[1].iov_len  = strlen(domid_str) + 1;
+	iov[2].iov_base = mfn_str;
+	iov[2].iov_len  = strlen(mfn_str) + 1;
+	iov[3].iov_base = eventchn_str;
+	iov[3].iov_len  = strlen(eventchn_str) + 1;
 
-	return xs_bool(xs_talkv(h, XBT_NULL, XS_INTRODUCE, iov,
-				ARRAY_SIZE(iov), NULL));
+	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
 }
 
 bool xs_set_target(struct xs_handle *h,
 			 unsigned int domid, unsigned int target)
 {
+	struct xsd_sockmsg msg = { .type = XS_SET_TARGET };
 	char domid_str[MAX_STRLEN(domid)];
 	char target_str[MAX_STRLEN(target)];
-	struct iovec iov[2];
+	struct iovec iov[3];
 
 	snprintf(domid_str, sizeof(domid_str), "%u", domid);
 	snprintf(target_str, sizeof(target_str), "%u", target);
 
-	iov[0].iov_base = domid_str;
-	iov[0].iov_len = strlen(domid_str) + 1;
-	iov[1].iov_base = target_str;
-	iov[1].iov_len = strlen(target_str) + 1;
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = domid_str;
+	iov[1].iov_len  = strlen(domid_str) + 1;
+	iov[2].iov_base = target_str;
+	iov[2].iov_len  = strlen(target_str) + 1;
 
-	return xs_bool(xs_talkv(h, XBT_NULL, XS_SET_TARGET, iov,
-				ARRAY_SIZE(iov), NULL));
+	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
 }
 
 static void * single_with_domid(struct xs_handle *h,
@@ -1305,15 +1330,17 @@ int xs_suspend_evtchn_port(int domid)
 char *xs_control_command(struct xs_handle *h, const char *cmd,
 			 void *data, unsigned int len)
 {
-	struct iovec iov[2];
+	struct xsd_sockmsg msg = { .type = XS_CONTROL };
+	struct iovec iov[3];
 
-	iov[0].iov_base = (void *)cmd;
-	iov[0].iov_len = strlen(cmd) + 1;
-	iov[1].iov_base = data;
-	iov[1].iov_len = len;
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = (void *)cmd;
+	iov[1].iov_len  = strlen(cmd) + 1;
+	iov[2].iov_base = data;
+	iov[2].iov_len  = len;
 
-	return xs_talkv(h, XBT_NULL, XS_CONTROL, iov,
-			ARRAY_SIZE(iov), NULL);
+	return xs_talkv(h, iov, ARRAY_SIZE(iov), NULL);
 }
 
 char *xs_debug_command(struct xs_handle *h, const char *cmd,
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 16:54:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 16:54:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760633.1170539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUOu-0003gM-RM; Thu, 18 Jul 2024 16:54:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760633.1170539; Thu, 18 Jul 2024 16:54: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 1sUUOu-0003gF-Oq; Thu, 18 Jul 2024 16:54:40 +0000
Received: by outflank-mailman (input) for mailman id 760633;
 Thu, 18 Jul 2024 16:54: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=MiOu=OS=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sUUOt-0003g9-JV
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 16:54:39 +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 6acbab8c-4526-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 18:54:37 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-58e76294858so99849a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 09:54:37 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5a2b676c74dsm55561a12.10.2024.07.18.09.54.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 09:54: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: 6acbab8c-4526-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721321677; x=1721926477; 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=xcPb7I9RXMTFl4+UfiV1/KnoKBsPI0JuJtndM3eMftw=;
        b=ESB32CxOwJ/y87SgLvpaEZBhIdSdjvR+qsqrmpPfGnDVmSuVtAid/+NZYTvdcRR921
         zqOp+udanZE/pCjKTvbmaW3h2RPQsXmZn6VY53oolfqlmv7wdaP4+LbRGVz/SmM3e0El
         j5r+K06hivkzubheSRcaEcw3Or4QWuCvJxyj8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721321677; x=1721926477;
        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=xcPb7I9RXMTFl4+UfiV1/KnoKBsPI0JuJtndM3eMftw=;
        b=LG4FcnsvPXHJlITnIW8b8qSkl/J51ziHzKALWLD5eXQ3+zf2AZ5iHKsmsz9HCgWrIb
         uwm9dZ2NJllVB/DXv9jRn7eBe6tR6Akr2Gjw///PTCvirjMvJKkWPsxmh48sC0qP67s7
         wVcLlmgSXSZefDXwj7/z8qU5Z9Sb8xz1nJ5EKXITHGU1tvtUL6ryI3slDUiWE679D+kF
         by3JNJ/ycwZtfm31vU5erhFxX4KHgHTZ/a+fpWXuiwx1ZlGYW09yJdxDDat95cRlpr4D
         uLdwadjrc3D/avyKUr93Lc29z8lFuPVJNgEE5vOeqvnKBRhnmnF5g9c0tMSXFBrt6doh
         PDyg==
X-Forwarded-Encrypted: i=1; AJvYcCUBiKQpCh7veW5jmaZjaf9GnmQ8Rcn4So/ZXbWcfPaVBE2hPRUX/hhtgkTN5KgS3AS+XU7TxTU/JGRTcGl3ewDsHkOU/7v3+fLiORj23Ng=
X-Gm-Message-State: AOJu0YxtJU/3jDtarUW9L9w2ZCuMo7mLin6Pib0KaJo4/+h8rncT0MUQ
	m1Z+8FBVyumOT0767FCENzcze0bJ5QdjzOOGHxadA9fJX4GVaDYa5ZHJZGktxe4=
X-Google-Smtp-Source: AGHT+IH15tW5MDA2fodCvG7TcmMVlGnM3xpT289mDzXlogdQapBRbTUKD1rG4pLYbcXExgc2nVJRuw==
X-Received: by 2002:a05:6402:2110:b0:57d:3e48:165d with SMTP id 4fb4d7f45d1cf-5a1557cd01fmr4345153a12.4.1721321676986;
        Thu, 18 Jul 2024 09:54:36 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Thu, 18 Jul 2024 17:54:34 +0100
Message-Id: <D2STLWUF9965.3QXLJ2TWIXS1Z@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Xen-devel"
 <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.20 3/4] x86/fpu: Combine fpu_ctxt and xsave_area
 in arch_vcpu
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>
X-Mailer: aerc 0.17.0
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
 <170c78f39dfef620d9060be3f1b31313673f09b9.1720538832.git.alejandro.vallejo@cloud.com> <78ae0b2f-e0a6-4ab9-b7a6-43e1357ff9b9@suse.com>
In-Reply-To: <78ae0b2f-e0a6-4ab9-b7a6-43e1357ff9b9@suse.com>

On Thu Jul 18, 2024 at 12:49 PM BST, Jan Beulich wrote:
> On 09.07.2024 17:52, Alejandro Vallejo wrote:
> > --- a/xen/arch/x86/domctl.c
> > +++ b/xen/arch/x86/domctl.c
> > @@ -1343,7 +1343,8 @@ void arch_get_info_guest(struct vcpu *v, vcpu_gue=
st_context_u c)
> >  #define c(fld) (c.nat->fld)
> >  #endif
> > =20
> > -    memcpy(&c.nat->fpu_ctxt, v->arch.fpu_ctxt, sizeof(c.nat->fpu_ctxt)=
);
> > +    memcpy(&c.nat->fpu_ctxt, &v->arch.xsave_area->fpu_sse,
> > +           sizeof(c.nat->fpu_ctxt));
>
> Now that the middle argument has proper type, maybe take the opportunity
> and add BUILD_BUG_ON(sizeof(...) =3D=3D sizeof(...))? (Also in e.g.
> hvm_save_cpu_ctxt() then.)

Sure.

>
> > --- a/xen/arch/x86/include/asm/domain.h
> > +++ b/xen/arch/x86/include/asm/domain.h
> > @@ -591,12 +591,7 @@ struct pv_vcpu
> > =20
> >  struct arch_vcpu
> >  {
> > -    /*
> > -     * guest context (mirroring struct vcpu_guest_context) common
> > -     * between pv and hvm guests
> > -     */
> > -
> > -    void              *fpu_ctxt;
> > +    /* Fixed point registers */
> >      struct cpu_user_regs user_regs;
>
> Not exactly, no. Selector registers are there as well for example, which
> I wouldn't consider "fixed point" ones. I wonder why the existing comment
> cannot simply be kept, perhaps extended to mention that fpu_ctxt now live=
s
> elsewhere.

Would you prefer "general purpose registers"? It's not quite that either, b=
ut
it's arguably closer. I can part with the comment altogether but I'd rather
leave a token amount of information to say "non-FPU register state" (but no=
t
that, because that would be a terrible description).=20

I'd rather update it to something that better reflects reality, as I found =
it
quite misleading when reading through. I initially thought it may have been
related to struct layout (as in C-style single-level inheritance), but as i=
t
turns out it's merely establishing a vague relationship between arch_vcpu a=
nd
vcpu_guest_context. I can believe once upon a time the relationship was clo=
ser
than it it now, but with the guest context missing AVX state, MSR state and
other bits and pieces I thought it better to avoid such confusions for futu=
re
navigators down the line so limit its description to the line below.

>
> > --- a/xen/arch/x86/x86_emulate/blk.c
> > +++ b/xen/arch/x86/x86_emulate/blk.c
> > @@ -11,7 +11,8 @@
> >      !defined(X86EMUL_NO_SIMD)
> >  # ifdef __XEN__
> >  #  include <asm/xstate.h>
> > -#  define FXSAVE_AREA current->arch.fpu_ctxt
> > +#  define FXSAVE_AREA ((struct x86_fxsr *) \
> > +                           (void*)&current->arch.xsave_area->fpu_sse)
>
> Nit: Blank missing after before *.

Heh, took me a while looking at x86_fxsr to realise you mean the void point=
er.

Ack.

>
> > --- a/xen/arch/x86/xstate.c
> > +++ b/xen/arch/x86/xstate.c
> > @@ -507,9 +507,16 @@ int xstate_alloc_save_area(struct vcpu *v)
> >      unsigned int size;
> > =20
> >      if ( !cpu_has_xsave )
> > -        return 0;
> > -
> > -    if ( !is_idle_vcpu(v) || !cpu_has_xsavec )
> > +    {
> > +        /*
> > +         * This is bigger than FXSAVE_SIZE by 64 bytes, but it helps t=
reating
> > +         * the FPU state uniformly as an XSAVE buffer even if XSAVE is=
 not
> > +         * available in the host. Note the alignment restriction of th=
e XSAVE
> > +         * area are stricter than those of the FXSAVE area.
> > +         */
> > +        size =3D XSTATE_AREA_MIN_SIZE;
>
> What exactly would break if just (a little over) 512 bytes worth were all=
ocated
> when there's no XSAVE? If it was exactly 512, something like xstate_all()=
 would
> need to apply a little more care, I guess. Yet for that having just alway=
s-zero
> xstate_bv and xcomp_bv there would already suffice (e.g. using
> offsetof(..., xsave_hdr.reserved) here, to cover further fields gaining m=
eaning
> down the road). Remember that due to xmalloc() overhead and the 64-byte-a=
ligned
> requirement, you can only have 6 of them in a page the way you do it, whe=
n the
> alternative way 7 would fit (if I got my math right).
>
> Jan

I'm slightly confused.

XSTATE_AREA_MIN_SIZE is already 512 + 64 to account for the XSAVE header,
including its reserved fields. Did you mean something else?

    #define XSAVE_HDR_SIZE            64
    #define XSAVE_SSE_OFFSET          160
    #define XSTATE_YMM_SIZE           256
    #define FXSAVE_SIZE               512
    #define XSAVE_HDR_OFFSET          FXSAVE_SIZE
    #define XSTATE_AREA_MIN_SIZE      (FXSAVE_SIZE + XSAVE_HDR_SIZE)

Part of the rationale is to simplify other bits of code that are currently
conditionalized on v->xsave_header being NULL. And for that the full xsave
header must be present (even if unused because !cpu_xsave)

Do you mean something else?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 17:07:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 17:07:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760662.1170550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUar-0006Vy-1q; Thu, 18 Jul 2024 17:07:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760662.1170550; Thu, 18 Jul 2024 17:07:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUaq-0006Vr-U9; Thu, 18 Jul 2024 17:07:00 +0000
Received: by outflank-mailman (input) for mailman id 760662;
 Thu, 18 Jul 2024 17:07:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUUaq-0006Vl-Bs
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 17:07:00 +0000
Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com
 [2607:f8b0:4864:20::736])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24908ea5-4528-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 19:06:59 +0200 (CEST)
Received: by mail-qk1-x736.google.com with SMTP id
 af79cd13be357-79f083f5cb6so28924885a.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 10:06:59 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1938f0674sm44494285a.61.2024.07.18.10.06.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 10: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: 24908ea5-4528-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721322418; x=1721927218; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ufxJ+wk+qkOogv3RiaZnix+u85SOqFXVXqwzHhdSUoQ=;
        b=bw0l3K+iDPu3nDgVSBXf6RpT9Y+7NVKrkXDBOdjhbxYuLqyAFQbu/errI9iGQ4QfUP
         EdpAknx1fEd3MS4cLrEFv78GFg1i9WutfLIyzW96P9HdyUdsM+acYxVNJ0XWz9cCpeaF
         DX5VwLEvnAfjh/S3DEMAFCfGnLCat4bfy1kmg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721322418; x=1721927218;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ufxJ+wk+qkOogv3RiaZnix+u85SOqFXVXqwzHhdSUoQ=;
        b=SeV9ZWxZ+NTlEy/nZAb4rlthXVgu+Qp8+zMOderdli5PRzCKUUQn0yjroPlQDzqQ8C
         I3+u9J0RPGZNXb4x2bhpVWkM649yZ0QrMbgkquT3p2wqGJpTO2dqedXAhDs5duxqnmc+
         Ay1z6F+3qBg52PB0tGqq0g7zQoiE9nOQxep15f0QH5yyNxk2kLa+HVBZkx0vo0Sh4VWD
         GrGddIED56oTTzQtd5EuEf6ZkDs9LqxYPyuT9YaELoQMEzHeFMPr37VAMqvF61laCemk
         ugZLnH4SO41V0hSgjBhyTzY/CQFg0nhXrHprK7/PmJK5DUrQFefrNwHc9abiiWWq3uqg
         fSXg==
X-Forwarded-Encrypted: i=1; AJvYcCXX+eGBypzw6jxkueQUMjH3E54e/N/20SNZrD/6xkjh65bjYNcjJyuzaaivKCJwfvxlQhzzmAmK1uV+D6PPLEZFNpnQ0SmdJ4rqt+2WJ/Q=
X-Gm-Message-State: AOJu0Yy1J0z5eILflL15MNDRsBK4Scepw6/aEJ/VB82oxlphbvMOOK+O
	KMz7MJWKcmn1tknyxHKd7U9O1jenB1V9kK/oX5FyPJT9s1X/BHOhc1UKyiOcd7E=
X-Google-Smtp-Source: AGHT+IF3mv8dVarejYjyPlSw/zAWJWsQbtOrmZNpcFI+nTjGWLb9TCg2dOn4hV1mQbPvXY/nje3WCA==
X-Received: by 2002:a05:620a:4554:b0:79d:5a77:aea8 with SMTP id af79cd13be357-7a1938ea4cdmr170522785a.1.1721322418017;
        Thu, 18 Jul 2024 10:06:58 -0700 (PDT)
Message-ID: <99403a3c-1e4f-4971-a08b-5480e6d1e829@citrix.com>
Date: Thu, 18 Jul 2024 18:06:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/HVM: get_pat_flags() is needed only by shadow code
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: <76aafbed-bea9-445a-8abb-6e1e44996594@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <76aafbed-bea9-445a-8abb-6e1e44996594@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18/07/2024 11:10 am, Jan Beulich wrote:
> Therefore with SHADOW_PAGING=n this is better compiled out, to avoid
> leaving around unreachable/dead code.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/arch/x86/hvm/mtrr.c
> +++ b/xen/arch/x86/hvm/mtrr.c
> @@ -271,6 +271,8 @@ int mtrr_get_type(const struct mtrr_stat
>     return overlap_mtrr_pos;
>  }
>  
> +#ifdef CONFIG_SHADOW_PAGING
> +
>  /*
>   * return the memory type from PAT.
>   * NOTE: valid only when paging is enabled.
> @@ -359,6 +361,8 @@ uint32_t get_pat_flags(struct vcpu *v,
>      return pat_type_2_pte_flags(pat_entry_value);
>  }
>  
> +#endif /* CONFIG_SHADOW_PAGING */
> +
>  static inline bool valid_mtrr_type(uint8_t type)
>  {
>      switch ( type )

While I can see this is true, the fact it is indicates that we have
bugs/problems elsewhere.

It is not only the shadow code that has to combine attributes like this,
so we've either got opencoding elsewhere, or a bad abstraction.

(This is an observation, rather than a specific objection.)

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 17:25:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 17:25:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760670.1170560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUUss-0001Hv-H8; Thu, 18 Jul 2024 17:25:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760670.1170560; Thu, 18 Jul 2024 17:25: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 1sUUss-0001Ho-D9; Thu, 18 Jul 2024 17:25:38 +0000
Received: by outflank-mailman (input) for mailman id 760670;
 Thu, 18 Jul 2024 17:25:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MiOu=OS=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sUUsr-0001Hi-OF
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 17:25:37 +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 beb45d91-452a-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 19:25:36 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-58e76294858so150274a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 10:25:36 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc820e3dsm585694166b.194.2024.07.18.10.25.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 10:25: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: beb45d91-452a-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721323536; x=1721928336; 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=H9V0OS3KMlvXPuE+v2E26dH5fSQlgeRx81+aUTw86j0=;
        b=QY0o5PaJJBkw0V4GSLVg4YxsAJ/jWcdag7oaZd+a7JgSlT9C7+xj/+z8sBIkld77cb
         wM5TypqsOtqoPWDpbos62sNzL5TwPUb191bM2xLJCZGnn6q8CeXxl3slLafY6mqhhpnO
         5G5DlszgS2NYNs5GjoBZRtRs4ZIRvD3UHKE+8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721323536; x=1721928336;
        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=H9V0OS3KMlvXPuE+v2E26dH5fSQlgeRx81+aUTw86j0=;
        b=NmrZc3hwynoChfKvSkd7hLDHpw5NdzRXOcl5TZydF2wpJI8bbRIhTbIMN/ERgHIWIq
         o8oZ/OGPC8dIRq4eRXh51olw/8lecZTnUvGyGINP+fh5S5pinR/KWJVYHbwtSJoZLf+o
         PP40zEfxkqna8ZGnStV1D2K+2ls75FUkzJAJcRVb8bac5BrB+wxXwNvJCb8SyyLVtxCK
         s12S0uRCkgKP6rPUiVLKk0sJafCpdQ93FtPaw06eDod8z/KoyvyronRpYZlf2dQU0Cf0
         i7A5xBcyjQ+Yt7RgjelzFbOwkxYjXV2jhN4MB0v+FiP/0imPxQp26lE8XLK0UroNesa4
         7LDg==
X-Forwarded-Encrypted: i=1; AJvYcCWbE/qPhx21mrbkKuvP1q4lYjnpD5BXbGLxCJ4BLx9dOBpCN+vlLVua5hIhaVe8sK8NI+MakICXPfcP/F7dq/4b9I1WaKBYBEWgh4qQP/k=
X-Gm-Message-State: AOJu0Yw9hY/Oh1EvRbgsTKXaMeU5ZPmCrlDS7IIVeDibgZ4nGBgDTQZH
	C41qWDy7yAY3T0N3dGidtxkTXvHZDtfW1/q7pavqWjf8BadPfWjUhUqBAIfJ7p8=
X-Google-Smtp-Source: AGHT+IEl54UWMHQDDisHDhkFmqqjwHpQW32cjdgItlOPEBkmER1pCISf8Jw/O3PWk978bw6p82pVfg==
X-Received: by 2002:a17:906:6d0f:b0:a72:64f0:552e with SMTP id a640c23a62f3a-a7a0f159d32mr399572266b.19.1721323535673;
        Thu, 18 Jul 2024 10:25:35 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Thu, 18 Jul 2024 18:25:33 +0100
Message-Id: <D2SU9MKGLSB7.1J9TBL8HPU4AP@cloud.com>
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.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>, "Xen-devel"
 <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.20 4/4] x86/fpu: Split fpu_setup_fpu() in two
X-Mailer: aerc 0.17.0
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
 <da30dedcfa68d7c30375b96c85424e13ec6d458b.1720538832.git.alejandro.vallejo@cloud.com> <c311ef0f-7d86-4a2b-b056-9bfa0665113e@suse.com>
In-Reply-To: <c311ef0f-7d86-4a2b-b056-9bfa0665113e@suse.com>

On Thu Jul 18, 2024 at 1:19 PM BST, Jan Beulich wrote:
> On 09.07.2024 17:52, Alejandro Vallejo wrote:
> > It's doing too many things at once and there's no clear way of defining=
 what
> > it's meant to do. This patch splits the function in two.
> >=20
> >   1. A reset function, parameterized by the FCW value. FCW_RESET means =
to reset
> >      the state to power-on reset values, while FCW_DEFAULT means to res=
et to the
> >      default values present during vCPU creation.
> >   2. A x87/SSE state loader (equivalent to the old function when it too=
k a data
> >      pointer).
> >=20
> > Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> > ---
> > I'm still not sure what the old function tries to do. The state we star=
t vCPUs
> > in is _similar_ to the after-finit, but it's not quite (`ftw` is not -1=
). I went
> > for the "let's not deviate too much from previous behaviour", but maybe=
 we did
> > intend for vCPUs to start as if `finit` had just been executed?
>
> A relevant aspect here may be that what FSXR and XSAVE area have is only =
an
> abridged form of the tag word, being only 8 bits in size. 0x00 there is
> equivalent to FTW=3D0xffff (all st(<N>) empty). That's not quite correct =
for
> the reset case indeed, where FTW=3D0x5555 (i.e. all st(<N>) zero, requiri=
ng

I missed the tag being abridged. That makes a lot of sense, thanks.

> the abridged form to hold 0xff instead). While no-one has reported issues
> there so far, I think it wouldn't be inappropriate to correct this.

Ack, I'll add it on v2.

>
> > --- a/xen/arch/x86/hvm/hvm.c
> > +++ b/xen/arch/x86/hvm/hvm.c
> > @@ -1162,10 +1162,17 @@ static int cf_check hvm_load_cpu_ctxt(struct do=
main *d, hvm_domain_context_t *h)
> >      seg.attr =3D ctxt.ldtr_arbytes;
> >      hvm_set_segment_register(v, x86_seg_ldtr, &seg);
> > =20
> > -    /* Cover xsave-absent save file restoration on xsave-capable host.=
 */
> > -    vcpu_setup_fpu(v, xsave_enabled(v) ? NULL : v->arch.xsave_area,
> > -                   ctxt.flags & XEN_X86_FPU_INITIALISED ? ctxt.fpu_reg=
s : NULL,
> > -                   FCW_RESET);
> > +    /*
> > +     * On Xen 4.1 and later the FPU state is restored on a later HVM c=
ontext, so
> > +     * what we're doing here is initialising the FPU state for guests =
from even
> > +     * older versions of Xen. In general such guests only use legacy x=
87/SSE
> > +     * state, and if they did use XSAVE then our best-effort strategy =
is to make
> > +     * an XSAVE header for x87 and SSE hoping that's good enough.
> > +     */
> > +    if ( ctxt.flags & XEN_X86_FPU_INITIALISED )
> > +        vcpu_setup_fpu(v, &ctxt.fpu_regs);
> > +    else
> > +        vcpu_reset_fpu(v, FCW_RESET);
>
> I'm struggling with the use of "later" in the comment. What exactly is th=
at
> meant to express? Fundamentally the XSAVE data is fully backwards compati=
ble
> with the FXSR one, I think, so the mentioning of "best-effort" isn't quit=
e
> clear to me either.

I meant that the XSAVE state (including FPU/SSE state) is passed not on the=
 HVM
context struct being process _here_, but another one that will arrive later=
 on
in the stream. There's 3 interesting cases regarding extended states:

  1. If there is an XSAVE context later in the stream, what we do here for =
the
     FPU doesn't matter because it'll be overriden later. That's fine.
  2. If there isn't and the guest didn't use extended states  it's still fi=
ne
     because we have all the information we need here.
  2. If there isn't but the guest DID use extended states (could've happene=
d
     prior to Xen 4.1) then we're in a pickle because we have to make up
     non-existing state. This is what I meant by best effort.

Seeing how you got confused the comment probably needs to be rewritten to
better reflect this.

>
> > --- a/xen/arch/x86/i387.c
> > +++ b/xen/arch/x86/i387.c
> > @@ -310,41 +310,25 @@ int vcpu_init_fpu(struct vcpu *v)
> >      return xstate_alloc_save_area(v);
> >  }
> > =20
> > -void vcpu_setup_fpu(struct vcpu *v, struct xsave_struct *xsave_area,
> > -                    const void *data, unsigned int fcw_default)
> > +void vcpu_reset_fpu(struct vcpu *v, uint16_t fcw)
> >  {
> > -    fpusse_t *fpu_sse =3D &v->arch.xsave_area->fpu_sse;
> > -
> > -    ASSERT(!xsave_area || xsave_area =3D=3D v->arch.xsave_area);
> > -
> > -    v->fpu_initialised =3D !!data;
> > -
> > -    if ( data )
> > -    {
> > -        memcpy(fpu_sse, data, sizeof(*fpu_sse));
> > -        if ( xsave_area )
> > -            xsave_area->xsave_hdr.xstate_bv =3D XSTATE_FP_SSE;
> > -    }
> > -    else if ( xsave_area && fcw_default =3D=3D FCW_DEFAULT )
> > -    {
> > -        xsave_area->xsave_hdr.xstate_bv =3D 0;
> > -        fpu_sse->mxcsr =3D MXCSR_DEFAULT;
> > -    }
> > -    else
> > -    {
> > -        memset(fpu_sse, 0, sizeof(*fpu_sse));
> > -        fpu_sse->fcw =3D fcw_default;
> > -        fpu_sse->mxcsr =3D MXCSR_DEFAULT;
> > -        if ( v->arch.xsave_area )
> > -        {
> > -            v->arch.xsave_area->xsave_hdr.xstate_bv &=3D ~XSTATE_FP_SS=
E;
> > -            if ( fcw_default !=3D FCW_DEFAULT )
> > -                v->arch.xsave_area->xsave_hdr.xstate_bv |=3D X86_XCR0_=
X87;
> > -        }
> > -    }
> > +    v->fpu_initialised =3D false;
> > +    *v->arch.xsave_area =3D (struct xsave_struct) {
> > +        .fpu_sse =3D {
> > +            .mxcsr =3D MXCSR_DEFAULT,
> > +            .fcw =3D fcw,
> > +        },
> > +        .xsave_hdr.xstate_bv =3D fcw =3D=3D FCW_RESET ? X86_XCR0_X87 :=
 0,
> > +    };
> > +}
>
> Old code checked against FCW_DEFAULT uniformly. You switching to checking
> against FCW_RESET is no functional change only because all callers pass
> either of the two values. I wonder whether the new function's parameter
> wouldn't want to be a boolean (reset vs init).

I agree, and It's effectively what it is. The problem with the boolean is t=
hat
it's utterly unreadable at the call sites.

    vcpu_reset_fpu(v, true); /* Is this reset or set-to-default? */
    vcpu_reset_fpu(v, FCW_RESET); /* Clear to be a reset */

I could also split it in 2, so we end up with these:

  * vcpu_setup_fpu(v, data): Copies x87/SSE state
  * vcpu_reset_fpu(v): Reset to power-on state
  * vcpu_set_default_fpu(v): Reset to default state

Thinking about it, I kind of prefer this second approach. Thoughts?

>
> > -    if ( xsave_area )
> > -        xsave_area->xsave_hdr.xcomp_bv =3D 0;
> > +void vcpu_setup_fpu(struct vcpu *v, const void *data)
> > +{
> > +    v->fpu_initialised =3D true;
> > +    *v->arch.xsave_area =3D (struct xsave_struct) {
> > +        .fpu_sse =3D *(fpusse_t*)data,
>
> First of all please never cast away const. See Misra rule 11.8. And then
> a nit again: Blank ahead of the latter of the two *-s, please.
>

Bah, yes. You're right. Casting to (const fpusse_t *) instead should appeas=
e
the UB gods.

> > --- a/xen/arch/x86/include/asm/i387.h
> > +++ b/xen/arch/x86/include/asm/i387.h
> > @@ -31,10 +31,29 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool =
need_stts);
> >  void vcpu_restore_fpu_lazy(struct vcpu *v);
> >  void vcpu_save_fpu(struct vcpu *v);
> >  void save_fpu_enable(void);
> > -
> >  int vcpu_init_fpu(struct vcpu *v);
> > -struct xsave_struct;
> > -void vcpu_setup_fpu(struct vcpu *v, struct xsave_struct *xsave_area,
> > -                    const void *data, unsigned int fcw_default);
> >  void vcpu_destroy_fpu(struct vcpu *v);
> > +
> > +/*
> > + * Restore `v`'s FPU to known values
> > + *
> > + * If fcw =3D=3D FCW_RESET, then the reset state is power-on RESET.
> > + *
> > + * Otherwise `mxcsr` is set to `MXCSR_DEFAULT`, `fcw` is overriden wit=
h the
> > + * `fcw` argument and everything else is zeroed out.
>
> Backticks are used for two different purposes here, which I'm afraid is
> confusing. You want to make it easy to tell function arguments from other
> entities, imo.
>

Fair enough, sure.

> > + * @param v   vCPU containing the FPU
> > + * @param fcw Intended FPU Control Word
> > + */
> > +void vcpu_reset_fpu(struct vcpu *v, uint16_t fcw);
> > +
> > +/*
> > + * Load x87/SSE state into `v`'s FPU
>
> Applicable here then as well.
>
> Jan

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 17:36:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 17:36:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760678.1170571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUV3R-0003NK-FD; Thu, 18 Jul 2024 17:36:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760678.1170571; Thu, 18 Jul 2024 17:36: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 1sUV3R-0003ND-Az; Thu, 18 Jul 2024 17:36:33 +0000
Received: by outflank-mailman (input) for mailman id 760678;
 Thu, 18 Jul 2024 17:36: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=MiOu=OS=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sUV3Q-0003N7-Dz
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 17:36:32 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45146824-452c-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 19:36:31 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a77b60cafecso105886766b.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 10:36:31 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc81ddf5sm581927566b.191.2024.07.18.10.36.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 10:36: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: 45146824-452c-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721324191; x=1721928991; 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=1Us40ohKc8SVL5iuesi02O5HQYFBQ+xnDu9VyYFEiNw=;
        b=Cbtn5XVLhdhIH8kVeWxkMsWJIYu8/y9eFudYq9AXNf5MXcHhO51lZU0RRo1aH7nDAE
         rqpCd4nzZacF/JnpOOXhAFZxy7r4/7lxHz0e06AyzPFwK7JbCWDQ4OPgOob3JGKdzC4j
         4dcRXsJJAbDJZ5fhU4CLncbPER/91+PmIHhOQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721324191; x=1721928991;
        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=1Us40ohKc8SVL5iuesi02O5HQYFBQ+xnDu9VyYFEiNw=;
        b=wPhCLjjLVS5Ns0rs/+FnlPbKDWBX2htoXI+Z2CcM2NnWSylw3cKYH6vCBDlWkTrrdJ
         U5RvZbs0PjmzIFbfmAYF2SyCg/z+e+NeWNX6fBis8y7eHNgxqwOrs9XyGFESZpXscNi2
         Ulh2Bbfw7X8oxukePa/GEbD+jpM9f8PzdfQMR6KyQ81LNg+Y93fK/6Kk0tttJupvpDdC
         Ulf6oUPUMD21Wq78fpooY/1ogUPmbJJ/nLXIFzBqZwFFvKN32EAMS1rXEZoj3FCeu90y
         DszWVbCsh2ObnenTpT0ddxcP8HIyroPKY8XyTtoT1aTc3BkyfwzY8A9QL7/0p3Mi9xvZ
         /7Qw==
X-Forwarded-Encrypted: i=1; AJvYcCUh2YmlujcRuF2NnEZVjsOYW1U+aWrjKE+JWeN6Tf2iSdSyNXjGjfEv+RiQv2tQFHcZjpNawFBimj984IB8s7vuGKilNCSzAAyXGqPJsuw=
X-Gm-Message-State: AOJu0YwIsitbV18rTxC6nf8vGhLBPmBzwv38FUK+LiadWBVrZMWzkA6c
	BtCnhRNSRhjuA++hrJ6UY34pV35LQ3Cp0d662//MNfL2B5/tcEuBvSlm14j9iTs=
X-Google-Smtp-Source: AGHT+IGAb5WXQ8HndK/HoCdyvF7A1SQzgrq5icnSVcsdoJ/3suDs2XF3zezsvn45LHJDQ/PvTJE8Yw==
X-Received: by 2002:a17:906:7d48:b0:a77:da14:8401 with SMTP id a640c23a62f3a-a7a011382dbmr374534666b.10.1721324190579;
        Thu, 18 Jul 2024 10:36:30 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Thu, 18 Jul 2024 18:36:27 +0100
Message-Id: <D2SUHZ78N3M5.231Q6OE5GA3GE@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "George Dunlap"
 <george.dunlap@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>
Subject: Re: [PATCH v2 2/2] Add scripts/oss-fuzz/build.sh
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Tamas K Lengyel" <tamas@tklengyel.com>,
 <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.17.0
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com> <d0974cc40ca68fe197ba7941edd934970d3a92cf.1719355322.git.tamas@tklengyel.com>
In-Reply-To: <d0974cc40ca68fe197ba7941edd934970d3a92cf.1719355322.git.tamas@tklengyel.com>

On Tue Jun 25, 2024 at 11:47 PM BST, Tamas K Lengyel wrote:
> The build integration script for oss-fuzz targets. Future fuzzing targets=
 can
> be added to this script and those targets will be automatically picked up=
 by
> oss-fuzz without having to open separate PRs on the oss-fuzz repo.
>
> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> ---
>  scripts/oss-fuzz/build.sh | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>  create mode 100755 scripts/oss-fuzz/build.sh
>
> diff --git a/scripts/oss-fuzz/build.sh b/scripts/oss-fuzz/build.sh
> new file mode 100755
> index 0000000000..2cfd72adf1
> --- /dev/null
> +++ b/scripts/oss-fuzz/build.sh
> @@ -0,0 +1,23 @@
> +#!/bin/bash -eu

The shebang probably wants to be "/usr/bin/env bash" to account for systems
that don't have bash specifically there.

With that "-eu" would need to move down a line to be "set -eu"

> +# SPDX-License-Identifier: Apache-2.0
> +# Copyright 2024 Google LLC
> +#
> +# Licensed under the Apache License, Version 2.0 (the "License");
> +# you may not use this file except in compliance with the License.
> +# You may obtain a copy of the License at
> +#
> +#      http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing, software
> +# distributed under the License is distributed on an "AS IS" BASIS,
> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implie=
d.
> +# See the License for the specific language governing permissions and
> +# limitations under the License.
> +#
> +########################################################################=
########
> +
> +cd xen
> +./configure --disable-stubdom --disable-pvshim --disable-docs --disable-=
xen
> +make clang=3Dy -C tools/include
> +make clang=3Dy -C tools/fuzz/x86_instruction_emulator libfuzzer-harness
> +cp tools/fuzz/x86_instruction_emulator/libfuzzer-harness $OUT/x86_instru=
ction_emulator

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 17:53:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 17:53:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760686.1170580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUVJl-0006z2-Mx; Thu, 18 Jul 2024 17:53:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760686.1170580; Thu, 18 Jul 2024 17:53: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 1sUVJl-0006yv-J0; Thu, 18 Jul 2024 17:53:25 +0000
Received: by outflank-mailman (input) for mailman id 760686;
 Thu, 18 Jul 2024 17: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=MiOu=OS=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sUVJk-0006ym-I8
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 17:53:24 +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 a0416f6d-452e-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 19:53:23 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a6fd513f18bso135250566b.3
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 10:53:23 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a79bc5b7ef5sm592451166b.82.2024.07.18.10.53.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 18 Jul 2024 10: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: a0416f6d-452e-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721325203; x=1721930003; 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=P0lp9482kAAfJ6VbIIrSYE5SBTbQePlXwFTltb1GbOU=;
        b=X9SzttugN+3OkoI6KwwyJLy/ZaGpvoweV0I4uOPcU1uN+ArvD3gBhgYd2mhd7Sjwwp
         kn+Q85/xu6IJQ2BqyL0y0/pBrTmVvEUM66mITnaaULtam36Yj+gThSS5RGRrMwtXo1+I
         /g0JgDsvDxWEPrQ4bZ4lnXE7NWkcQ3FZKsjwE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721325203; x=1721930003;
        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=P0lp9482kAAfJ6VbIIrSYE5SBTbQePlXwFTltb1GbOU=;
        b=HaXUWAxopH7Q/iSd6tTHZsF4/Uu4G8Cz89RLKuZS6rKgYAY1vooSTQjMeYZk7M0fBO
         bfvblV/wz1CLM13d9o1Ct/yta8Es3cgoeHCL5ZqvCG/fW/9Yaywb0EpUHcSq2om/MMRH
         Eu8KRiHMVF4UwI3eejvouVzaWOOs7J6qMM6ATsXoMOPAOWwM7LRPhTRpCdFaVA7EO4KN
         oCgUSh4fEJemtLGK+uUcU0khoHXDsnFFKwbZrRQSEQQKckMOGDPqYX5CQhupYNHppB+W
         hB1c6AQddPse8VCSJEyMsLzy3SYfXh4qRp3c/jFSuKpbQjID+xlvGTbSYsFHY2ujS+Ok
         IlwA==
X-Forwarded-Encrypted: i=1; AJvYcCUdV0a+6f9/BrgQX6mB/Ho46lgxjTzxZqPT5BwsOH08b/nrX4FegTbRzXCye6G68YWH2VKuOa7UiNyomrnPsl28rQV/YQr5rrn5Yir/4IY=
X-Gm-Message-State: AOJu0Yw/GvJTccaE+mu3wjZ62r3+pTseh/TkE3yvjfXDFw/jJ6vQWap5
	n3ljeILZwxGdyo5WP3zTr2U6oG9XzvfAziz2MndJa90wQlIMjaSLAVsJ82ThRXg=
X-Google-Smtp-Source: AGHT+IGadvCqNBSMSaMYwynS6YcMzc7kXlzySGV42M//JlM17evHbQ6TGwEyt94hFQvisk/B9xlzWQ==
X-Received: by 2002:a17:906:7147:b0:a77:e55a:9e7e with SMTP id a640c23a62f3a-a7a01369423mr395561966b.73.1721325202594;
        Thu, 18 Jul 2024 10:53:22 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Thu, 18 Jul 2024 18:53:19 +0100
Message-Id: <D2SUUW3IXC2L.1U5ZWSZQN1HQA@cloud.com>
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Teddy Astie" <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
Cc: "Jan Beulich" <jbeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH for-4.19?] x86/IOMMU: Move allocation in
 iommu_identity_mapping
X-Mailer: aerc 0.17.0
References: <20240717155136.140303-1-teddy.astie@vates.tech>
In-Reply-To: <20240717155136.140303-1-teddy.astie@vates.tech>

On Wed Jul 17, 2024 at 4:51 PM BST, Teddy Astie wrote:
> If for some reason, xmalloc fails after having mapped the
> reserved regions, a error is reported, but the regions are
> actually mapped in p2m.
>
> Move the allocation before trying to map the regions, in
> case the allocation fails, no mapping is actually done
> which could allows this operation to be retried with the
> same regions without failing due to already existing mappings.
>
> Fixes: c0e19d7c6c ("IOMMU: generalize VT-d's tracking of mapped RMRR regi=
ons")
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/drivers/passthrough/x86/iommu.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthroug=
h/x86/iommu.c
> index cc0062b027..b6bc6d71cb 100644
> --- a/xen/drivers/passthrough/x86/iommu.c
> +++ b/xen/drivers/passthrough/x86/iommu.c
> @@ -267,18 +267,22 @@ int iommu_identity_mapping(struct domain *d, p2m_ac=
cess_t p2ma,
>      if ( p2ma =3D=3D p2m_access_x )
>          return -ENOENT;
> =20
> +    map =3D xmalloc(struct identity_map);
> +    if ( !map )
> +        return -ENOMEM;
> +
>      while ( base_pfn < end_pfn )
>      {
>          int err =3D set_identity_p2m_entry(d, base_pfn, p2ma, flag);
> =20
>          if ( err )
> +        {
> +            xfree(map);
>              return err;
> +        }
>          base_pfn++;
>      }
> =20
> -    map =3D xmalloc(struct identity_map);
> -    if ( !map )
> -        return -ENOMEM;
>      map->base =3D base;
>      map->end =3D end;
>      map->access =3D p2ma;

That covers the case where xmalloc fails, but what about the case where
set_identity_p2m_entry() fails in for a middle pfn? (i.e: due to ENOMEM).

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 19:23:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 19:23:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760697.1170593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUWid-0002C9-3l; Thu, 18 Jul 2024 19:23:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760697.1170593; Thu, 18 Jul 2024 19: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 1sUWid-0002C2-1C; Thu, 18 Jul 2024 19:23:11 +0000
Received: by outflank-mailman (input) for mailman id 760697;
 Thu, 18 Jul 2024 19:23:10 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUWic-0002Bs-Me; Thu, 18 Jul 2024 19:23:10 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUWic-0000dv-KS; Thu, 18 Jul 2024 19:23:10 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUWic-00013C-8N; Thu, 18 Jul 2024 19:23:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUWic-0005sm-7c; Thu, 18 Jul 2024 19:23:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=BS9/tArIcYeaBiaWbzpSOC5LNShMh1FCnZMLKJDUgYU=; b=lhtBeQcS4oe2wBjYNVrb+NZnSG
	lTls6Vf9hlxnYizXDYt5v6wtDpZ+JsTRv8dqyf+asrlfwn2zrpnHqeGAzwKgZcTYpYkAiCoRwzRNw
	xiBKEY7iwSdUNhs1iVjhRty5MigSWfxDs4QuWPBPI+hhRcZvNFABnAaiF3/NnRAYOL3o=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186876-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.16-testing test] 186876: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.16-testing:test-armhf-armhf-xl:xen-boot:fail:heisenbug
    xen-4.16-testing:test-armhf-armhf-xl-credit2:host-ping-check-xen:fail:heisenbug
    xen-4.16-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9fe713202e4ef4ff0264d6ecfaea26bc4e50705b
X-Osstest-Versions-That:
    xen=d0e8f8ffbb19b5df5f767328baeb54c069b08e6a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Jul 2024 19:23:10 +0000

flight 186876 xen-4.16-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186876/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl           8 xen-boot         fail in 186850 pass in 186876
 test-armhf-armhf-xl-credit2  10 host-ping-check-xen        fail pass in 186850

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit2 15 migrate-support-check fail in 186850 never pass
 test-armhf-armhf-xl-credit2 16 saverestore-support-check fail in 186850 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 185867
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 185867
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 185867
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  9fe713202e4ef4ff0264d6ecfaea26bc4e50705b
baseline version:
 xen                  d0e8f8ffbb19b5df5f767328baeb54c069b08e6a

Last test of basis   185867  2024-04-29 08:38:32 Z   80 days
Testing same since   186818  2024-07-16 12:40:22 Z    2 days    4 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  fail    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   d0e8f8ffbb..9fe713202e  9fe713202e4ef4ff0264d6ecfaea26bc4e50705b -> stable-4.16


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 20:56:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 20:56:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760708.1170604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUYAw-0003pc-NX; Thu, 18 Jul 2024 20:56:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760708.1170604; Thu, 18 Jul 2024 20:56: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 1sUYAw-0003pV-L1; Thu, 18 Jul 2024 20:56:30 +0000
Received: by outflank-mailman (input) for mailman id 760708;
 Thu, 18 Jul 2024 20:56:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUYAv-0003pL-90; Thu, 18 Jul 2024 20:56:29 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUYAv-0002RP-6H; Thu, 18 Jul 2024 20:56:29 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUYAu-0003at-Rw; Thu, 18 Jul 2024 20:56:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUYAu-0006gs-RL; Thu, 18 Jul 2024 20:56: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=WOeXXo7O07mvSea2J8f6MFJv+MDejIWAqCHdbMxTxIY=; b=3PMbZ5ka/5AeZlqhOsD1eUIhQm
	b7hiMe+8G2BUzjNpwQ69phKG9PD9wVIiufdfzRSx7X8E5OMWYx17jogUfFw/OEqTC270lTcKjQg8w
	2PpYSaWHBRF1TD3UsPtpQGBpJTNXUrmbmMmCLV5Lxfibj4h7LoA3lIkfi1Mb+IB4H+BE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186880-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186880: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-xl-qemuu-debianhvm-amd64:xen-install:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:xen-install:fail:regression
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:xen-install:fail:regression
    xen-unstable-smoke:test-armhf-armhf-xl:xen-boot:fail:regression
X-Osstest-Versions-This:
    xen=f66e523189f1130a2fd3b77a9f0c8ac152355ac8
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Jul 2024 20:56:28 +0000

flight 186880 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186880/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  7 xen-install fail REGR. vs. 186826
 test-amd64-amd64-libvirt      7 xen-install              fail REGR. vs. 186826
 test-arm64-arm64-xl-xsm       7 xen-install              fail REGR. vs. 186826
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 186826

version targeted for testing:
 xen                  f66e523189f1130a2fd3b77a9f0c8ac152355ac8
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186826  2024-07-16 19:00:25 Z    2 days
Testing same since   186880  2024-07-18 15:00:30 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <julien@xen.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 test-armhf-armhf-xl                                          fail    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-amd64-libvirt                                     fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit f66e523189f1130a2fd3b77a9f0c8ac152355ac8
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:42:58 2024 +0100

    Set version to 4.20; 4.19 has branched
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit b181bb9fdbae9cdae96f979cfcc30c6195071417
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:40:44 2024 +0100

    Revert "Config.mk pin QEMU_UPSTREAM_REVISION (prep for Xen 4.19 RC1)"
    
    The branch is unstable again.
    
    This reverts commit 7584e39986ef2cb4816892ffaefb26f4ad063468.
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 21:29:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 21:29:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760719.1170617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUYgg-0007Xf-7I; Thu, 18 Jul 2024 21:29:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760719.1170617; Thu, 18 Jul 2024 21:29:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUYgg-0007XY-4Q; Thu, 18 Jul 2024 21:29:18 +0000
Received: by outflank-mailman (input) for mailman id 760719;
 Thu, 18 Jul 2024 21:29:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUYgf-0007XO-9a; Thu, 18 Jul 2024 21:29:17 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUYgf-00032G-6f; Thu, 18 Jul 2024 21:29:17 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUYge-0004UK-UR; Thu, 18 Jul 2024 21:29:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUYge-0001wl-Tu; Thu, 18 Jul 2024 21:29:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=fydHBttRgvlLDtuKuWbzU2NG9K2DuEPHx4XrLbupbpQ=; b=AT/PD3vZp9LsVpQz9uUFJi3gHo
	MdEQH+MCZKkdTL3XhEcHugGI9P6qw1uRaj+5ve0vWGjSZ3+eTmbwgTvAh2Dzq2WmhWJFCuGFbDN24
	kMNAgwpDzU4CjB1vhq1HFuugLEABhWaGtDIHiK+U4GGzlazO++ljMk8LPrWUJne2OrmY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186881-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186881: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=489e4a60ea88326a07a7cee8086227c3df2bf93d
X-Osstest-Versions-That:
    ovmf=62bf2aefc7d58288bb9e32c0c7fe2052c33101e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Jul 2024 21:29:16 +0000

flight 186881 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186881/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 489e4a60ea88326a07a7cee8086227c3df2bf93d
baseline version:
 ovmf                 62bf2aefc7d58288bb9e32c0c7fe2052c33101e9

Last test of basis   186848  2024-07-17 23:42:52 Z    0 days
Testing same since   186881  2024-07-18 19:45:16 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Bret Barkelew <brbarkel@microsoft.com>
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   62bf2aefc7..489e4a60ea  489e4a60ea88326a07a7cee8086227c3df2bf93d -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 21:57:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 21:57:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760729.1170626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUZ7s-0002hn-CE; Thu, 18 Jul 2024 21:57:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760729.1170626; Thu, 18 Jul 2024 21: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 1sUZ7s-0002hg-9e; Thu, 18 Jul 2024 21:57:24 +0000
Received: by outflank-mailman (input) for mailman id 760729;
 Thu, 18 Jul 2024 21: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=JMNW=OS=oracle.com=boris.ostrovsky@srs-se1.protection.inumbo.net>)
 id 1sUZ7q-0002ha-MD
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 21:57:22 +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 b3392146-4550-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 23:57:19 +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 46ILtj7V032540;
 Thu, 18 Jul 2024 21:56:54 GMT
Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta02.appoci.oracle.com [147.154.114.232])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 40fbcvg01k-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 18 Jul 2024 21:56:54 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19)
 with ESMTP id 46ILpjxk021805; Thu, 18 Jul 2024 21:56:53 GMT
Received: from nam11-co1-obe.outbound.protection.outlook.com
 (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169])
 by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 40dwev6f95-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 18 Jul 2024 21:56:53 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com (2603:10b6:208:321::10)
 by CO6PR10MB5651.namprd10.prod.outlook.com (2603:10b6:303:14e::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.20; Thu, 18 Jul
 2024 21:56:51 +0000
Received: from BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0]) by BLAPR10MB5009.namprd10.prod.outlook.com
 ([fe80::a088:b5e0:2c1:78a0%3]) with mapi id 15.20.7784.017; Thu, 18 Jul 2024
 21:56: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: b3392146-4550-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=
	message-id:date:subject:to:cc:references:from:in-reply-to
	:content-type:content-transfer-encoding:mime-version; s=
	corp-2023-11-20; bh=LvzFpjyPQojRy9/1p4YWOEooEssTFuA5K+Jz3OaLzNE=; b=
	IfXLaLQMRlLUQr0sP0mekfzLrtlDVCbAFUbokW1xJAGJdvuZk0bVjYxL+opMvq/C
	1L9MnuavbEfjTBRb+vtQwl6kIstGlqdIG97FUCSDfQYjX9JDwiPYNJgo9UYE2WPI
	qr5JfGlNZIJm+tNl8ycVZXsV1075rg7zB3w3mUEdGwmU7Hq0NXEN9Q9gWS7Gp0zQ
	Exp/GtFwp3EWPeRJagCeoJjSrl8OvFOCdX3Lw6ZyqFxmDlk6EeMguAonWTcjpkKp
	em+h9onc5IkTMlmS5jWO2OE97ShFtxi1n/eHpbKYwzDOqrzxskB6Uuhku7DgHZOi
	/aWrhTPXvbqY51h/gnLeag==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vkvmHJ/05RYO76nt5B4kMnuahJ2fgM0VGKF9k3QAwk8Rmw6TrWko1FAdl/WqXY1yUIBw1nRipZjIAlwpKxELpd0U6OLPvwGQ7gkwX+2Fa1HiygnO0wIfrAyi9RjnmIF1a47xpU6XAoQn5iKn54ulvaT0PfCc3cCjN8JpCV9MMqrUFzqXYTfikQefDGBrCst9h+pq97eyE7i/i4MqJC1YzV6Oj/YaTGrJ3Z0gb6q+F4/cmPACvLeJr67JB8S0Oo+vCKFfOtni/8Uk9aqPpibb7B8ovI58RY8JxrgZHRwqD0y6dCr/APBhbHIdUJGNTvj7z7hriftCmTwcm3xITohnkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LvzFpjyPQojRy9/1p4YWOEooEssTFuA5K+Jz3OaLzNE=;
 b=D5sJf8kRpTozMOAUOKeQKSf1v6KNN5INHfaCPJAn5VHLU/eUU2fQ4u5wevDP3M6WMOIGHG1vxhG7WfSbvMfjp6gFuPHNAaDphHZrrM1Qy6CFjN2fBluFDAe1L7B6je//DsBtemb1QuvNjAxzfN0iSsyn83qzMADxGy78YPKSO4T7OOV9q57nZTUUT+KEyuM3Npe6JUqLNuwVQ+CWW2NFqB9fHS0zyJO/qSDjQ/6KZ6+uBikjQdwlVWO2os10FVldJLi4791RaeY/0uf8ZXZqUUSOOwjAF7sAvcMKXvphTfj1+Dwij01qLIwsaSfaAE6AxFcKvWBf/f7lKT2jt9H8tQ==
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=LvzFpjyPQojRy9/1p4YWOEooEssTFuA5K+Jz3OaLzNE=;
 b=myYAjk826TfuGgTUHIjfnF619IViud4XFubcsNVkDGJM/3GIa4TAd6MQE2IMNY+0ftBN6G9i46BcvNzd3jm3s3IZ7ulfrv82lxJOOJVNPIkF2kxdKnbNpUVPPje+LJnIvPYPIn1bEGLLo5QldOQ5DsjGAVh7lfbm1jT5qlc36bk=
Message-ID: <1b3e9102-7d1f-43df-b6a0-9da84bc9ec12@oracle.com>
Date: Thu, 18 Jul 2024 17:56:49 -0400
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: fix multicall debug data referencing
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org,
        kernel test robot <lkp@intel.com>
References: <20240718062100.5357-1-jgross@suse.com>
Content-Language: en-US
From: boris.ostrovsky@oracle.com
In-Reply-To: <20240718062100.5357-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: MN2PR03CA0013.namprd03.prod.outlook.com
 (2603:10b6:208:23a::18) To BLAPR10MB5009.namprd10.prod.outlook.com
 (2603:10b6:208:321::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BLAPR10MB5009:EE_|CO6PR10MB5651:EE_
X-MS-Office365-Filtering-Correlation-Id: 9c6cb470-93fb-4682-c17c-08dca77487b0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014;
X-Microsoft-Antispam-Message-Info: 
	=?utf-8?B?Zlh2L3dRQjB4NEtyZXVsVjlPSXVnQzAxaW5KRzVQVW9KMmluUTRSWkE1UXFO?=
 =?utf-8?B?dWUzNDNsNGRYVnRFa1BobXB5enhiY0lNRFBydEZJWXdhOWNoZTIramRrcUhY?=
 =?utf-8?B?REZuZzZJOGhXZU9hNUZRZ2R1S1h5Si90V3JXZDhLRml1ZktXTEhKK3l5b1Nk?=
 =?utf-8?B?VjBBc2JEWXdVZGpRRkpQdW0weHZmNEFEWGRWeSsxMmVCZllCQWNwYWw0V0Iz?=
 =?utf-8?B?akpLTzRwSnN5VlQ5TU9lUTVKcWowbDFPTUdadElTMEY4WDRVRkVuKy9pcDkz?=
 =?utf-8?B?NGFMakczZU9iMVY1T3NWRSt0a3hQcWRudkVHaGtKVlhieVNxYmhrL3lqcUFN?=
 =?utf-8?B?SEFmcGNsU2RBdFp6UXRuQm82d1MyWkM3K0FKeWdBbnlFc1VjblJoc2NCb1Qz?=
 =?utf-8?B?VUZHbEhlcTJOdmFVNlY4elFkSEQ1NVF2MXpyR1I2c1VqRFJSYWVHQ0t5ME9j?=
 =?utf-8?B?VkZVV2dyYXBFc3NHUUpkR1VlOGNoM1J1SGxPdUtMd1lDY3QwZ2kyRGtTOWhO?=
 =?utf-8?B?dGJuZjB3Q0o4bTVnTHpkNzBYMVROVVJIRU5JNFNqRVRsQVdDSk1DWEQ1c0to?=
 =?utf-8?B?dm5FZ1I2RzRnSmFGQVdFQTZqOFVEZzFncCt1SjgwaG52UWo3dk0ydStQWlFp?=
 =?utf-8?B?QWVDUko3WUZRa3libjlFVCszMjd1Ulk0Q29yUE1WeUdyckovRnJNSENtc0Rx?=
 =?utf-8?B?OW1lcnU5R2ZyUFhSb1dxUW1vYmRETDQ1cEVGSFl6RlVwZ09Eb3NpR1VwbXVI?=
 =?utf-8?B?djh1K2RubDFreEZyTUtSb1EybjNwcnY2eXJERVFYVzJrT3NBSVc2WHFZRGh1?=
 =?utf-8?B?V2wyK25GeVBMTFBvWStSN1luZlJFYUJ6VHRsaXJwMFp3VVE1WnY5aG5IRXQ2?=
 =?utf-8?B?em8yWXE1Ums1YzJRQnpGU3U1K0hYNGU3czV1VUpLVkdPcnByY21jSnhCTVRX?=
 =?utf-8?B?M3lwN1V6VGd5UFhPVTFSK25WVXkzSjlNL0c3KzV4TDhCbHRhRWs1RzFCMkZT?=
 =?utf-8?B?Y2Y1QW1vUmIxRlBsemFWWXhQUFpmL0tqaktuR1FxVnZmYkphSTRnbExWSDEr?=
 =?utf-8?B?Y1Rjd1lDdUgydnZKTnhsb1ViQlJaaFd5dGhvQ1c4Vyt6YnZhTUVyRjZ3alZ0?=
 =?utf-8?B?TmdyeVFOMlJFZmxnREx6ZU0wUHUwWjdIVEMzRnRVbWo5SWZzREFDblpLRnJa?=
 =?utf-8?B?elFCdWZoZ0pQQWNsM2VmWUdjc0M3VDE2b1VRS2JKQitvOEdnUVlUUGIrVGtY?=
 =?utf-8?B?NktTSUhZck9wK1FteGR1cEJwSmZQNm9CaFhwemJhNThvUXhuYTEvWGdwOUc3?=
 =?utf-8?B?a1k3bUZnVGd1bkFwTzJZRms4d3dDWEM1cDdxZWlvekxxbTF5WnFKNENJRXFw?=
 =?utf-8?B?VVUyREtnWXBNaUhkRzRiWHlueHl0RjNTSEtScUZSbkJ1N3gxdkRTTzdQNkxk?=
 =?utf-8?B?Q3BFZG5BNzF1cEVKRnkyWmxvdm1PMWhsQm1kN3RVV1lrQ2NuK2FIODg3ajBM?=
 =?utf-8?B?MTZkZzVWRk5na2JKTWhkNUlaRlE0Ym1aODZiZlowKzU1UVN6bnQ0TVRTTTBw?=
 =?utf-8?B?YkVLNmtmeTA0ZW5McUQwRFJPVjN0STM5QU5ycUg5cyt2ejNGNWt0L1o5dXE1?=
 =?utf-8?B?NkxFRHFnV1lSVUt3OHRUWWZSOHRTaEw5Q0xST29DZnJBNFdvZnB5Y2Y3WStw?=
 =?utf-8?B?RzRLTVFzdUxCZmJLTjVTbWdZL2U0NUlFdEQybis2TmNwYlA5QlZPdDBkWFA2?=
 =?utf-8?Q?0vZK7OoK4nfWvsv3GE=3D?=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB5009.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?NXl2WityTmpyRTFwaGswSEhCcEdsOWxqRzcyVlpzZ2Rha0x3MzV1V0dqTGdw?=
 =?utf-8?B?Q09mczE3dFN1ZFNVTXljYys3ZFdwdURNV2pEYTJsTXdaeHp2ejZZaUVEeEJZ?=
 =?utf-8?B?dDloaS9odzBZSEhqdTBZM0hvTTFkaU5vUWJmeTFjNVFpS2dGR25SS2tCWjlz?=
 =?utf-8?B?dm1hcjlvTTl1anpqOXE3TlVSR1JMWE8rM283MVJ0K3M4b0hlL1lUZjJHT2ZS?=
 =?utf-8?B?TGgzSENUM0xxUUg0V1Uycmk4L1dkTlU1YnZsS2lnTURrbmJUSWZHR3V2UXQ1?=
 =?utf-8?B?TmYwUlBYaWdUdGhHMXRCVWFqbkRnYmw0L1BCY1UxaXNLSzVySUhFMU9MdGVB?=
 =?utf-8?B?RlZjT2lCcDN0b0xpcVZ3anR4NlVDZTNPR3NYbm5YV2sxbDFySlFtZXE2V2Fw?=
 =?utf-8?B?WVVycGdWQnBjL2hHb0tBWGxPdHIvaUgwVkZFUFM5QlVmd0dyUGlqZXB3enJT?=
 =?utf-8?B?ekVRdEdEN2diN0ZBMFVtRVJhTnJ6WUgwM2FJaDNJUkNML0JPNDJWTXYvek9V?=
 =?utf-8?B?V01QRkhrUkVmU05Va0k3VzlUclpDWFpJd2lsRXJPYTBMYVFiWTR5Um04WVg1?=
 =?utf-8?B?K0Fac1JPTkNjK2xtOFEvMkkxSllHNU0wSEM1bGRGVHNBeVJnTUg2SWJDS2cv?=
 =?utf-8?B?Q3kzeWR1S3ZtenBoWEhnSU8zTnpCUStlemlBODA5aS9nbXY3bU4zdkFvbDBl?=
 =?utf-8?B?WVIxSGpqekZrczNhT0V4MzFqS0hiSE9kbVl2TXo4TDhBbXBxYnV2V3hFNUpO?=
 =?utf-8?B?dmV3MkoxRmdYN0FEeGxhL0VNQms0ZkpUSUxPTnM3RG5qV2lRN3ZSMHFEZDNu?=
 =?utf-8?B?dEJndGtvWWhYVjFHc1cyZGdRclQ0VDhPcjBFWkNNbkF5cXc4ZmhaTWs2Wi8r?=
 =?utf-8?B?cTI4UG9JdXUrNDF1NnZBbEw2WnV2KzhTbXpCT2JlR0Q2alB6RkllU2hCdW9M?=
 =?utf-8?B?NmpkcXYvbGplOHJ4QUR0N3RuSGxPeUNGQUtmMmMyWU45L2llYXBXSncydzNj?=
 =?utf-8?B?UVRydDJTdGxLei9FUWwxaSt6ZlBoUkZIak5HZDZWelhoUC94cDU3U2xLaXBp?=
 =?utf-8?B?Q3NDUldjaFVtQTJxcWxyakhsM28xcWVzTTcraVRCTER4c3NaWTYvTk84eElF?=
 =?utf-8?B?WW5CL0pEeE0xNHY5eG1OaTZHNDFQZU9nem5wZG9oUlRmdXhQSmR4c0lTUEJx?=
 =?utf-8?B?VVg5WE1XUVUzejhpd2dpM25hejJiVHl5UmhiSExrdmxpNTExbzA4OU5HRUpK?=
 =?utf-8?B?OG4rT1RHUS8vWDYyaEFEeHY2bldYL2NKNEgwOEdTWnk3ZXNLOXowMnY5ZS9Q?=
 =?utf-8?B?dHFOSUpkUHBOSXVnUjhSd09sejdiUk9EcDZMbGJocHRhZmlDUlNOeEorUHdj?=
 =?utf-8?B?d1dndWRHRVpHanpERWp0RjJ0ZDkrdmZOZUY0MldwSlRHL1d1aEN4MUNORG1o?=
 =?utf-8?B?WVB1bGN3ZG5OQTZwR3hFTUE3UVNTeXBCWjlvbkZYV282L2ErZkMvclhSamdm?=
 =?utf-8?B?MlNTZktBVE0vdklMRlVsejliSi95bUpBRkxJZWszOWF2clphS1lhTGN3SVhs?=
 =?utf-8?B?aWMyVTUyOHdVa0crclhxTS9RZk55Y0sxRmNJSUpDRkEyQ1Rab0s1TGUwc3lI?=
 =?utf-8?B?ZytZbzBiUHRLTTBVeG9TbkxMYmQ4R2MrVWxPYjgzekszdUgyT2MwdjVlaXdV?=
 =?utf-8?B?L2Z6bExuVUlzTnMrTnJJTkozTGhoWnZUcWZCT0NuT0pqS0tFOW5OOTdTTHRO?=
 =?utf-8?B?V096RDQzZG5YNm9EcDB0LzROUXJuSDd0cjJZcVhGUWozVyt0ZjJWdlpId0pV?=
 =?utf-8?B?eUVVTWJZcWN3MlVrYXNNdVRjc2N3cXp4Qld0S2NTd2lFMXF6TXU5UkNQOWZL?=
 =?utf-8?B?K2NWK3ZRYWovSGFFNTRia2V2WXVzc1ZJTk1vNnlQNkpNU0hzK0Y0VjVGb3pr?=
 =?utf-8?B?Y3FGVmZ6SGpFRFZqRU80SmgrWm5NTUdKZHJYeEdOM0RnQnVWVXVQbzhyOVFB?=
 =?utf-8?B?Qnp5QVRwZFI4RzByVExUcm9zVEd4cEFNczdodGFWTUoxZVNEQU9hR0ZQZVdU?=
 =?utf-8?B?bWFVNzg5VGFtOWxhUVhMSTV0ZHRrb0dCd0oxSDEvcmZoaE5jdkFzdGlkTURX?=
 =?utf-8?B?a05VaUdIN2NjT0tZMWRYckxTTk5EUzk5dmVFb01ydmo5VlNkUkhoVmVxZTdt?=
 =?utf-8?B?MlE9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 
	BIqN5uHiQWWA78a+YPOti0aWJnphvNhSEv0uEfk8h5pDCxALCMp6Mp1yxcFLDX5LAeTQsL/rLmi19YOkCI9jFsepDTDQYWIuh5b7YVbkYHUZTUVMyhB5T2jxE5rrAzeBnUlufGzfhtAAEQRGJnt1TxneENrSfC1V2bA2lLTidspVILN0dN0qYoloTiDIq+41pG2GN9+QwEZzV0fU1XhGTXxknJo7BsmhM2WPyjjIVhg7b1Tre2BzAJzs1P3w94Ab6xoYK0OvZpk6pPUS3Y+/A5RKDMF7rgzXhIfmjbkabiokMsYGLEWDhVzAtbsqDGBcFeestdd3nJufk6x99+NfCRzv0IGsIhVgew8YxuPl9chtpgQOe44FRWzNpuKjiU7OUez2T0OyICzvDo5BFXv0W8SdJ6qI+C28syG/3aHvNClpPkxelA/ohF3sVprEYz9dO460Qz+j7ye0mrJfvLlGNGnJD6W6qTJplptHTAS8ahnbrO9CiAL3wm6SiuRpxmr/eu8LJMPKgIwvXCGuoT/js7/oRdpFpzca/Zdym5kkUp65OMnQd/F2wE6H6wmUgiLv1v03G2D3AhAGBYnoBC5ctnelxdEb3BdpDgLbLu9cvGk=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c6cb470-93fb-4682-c17c-08dca77487b0
X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5009.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2024 21:56:51.5189
 (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: oYue77NpG1SSxYaok/Z+q/w4Ro5m5IBdzCpo3SVeUlUxVyo0n7dETE/5oD9Wa6v0cjGEUz1zZiJW8WwzXWGwteakDLAJXF1V/vgFD+po6lk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5651
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-18_15,2024-07-18_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 adultscore=0 bulkscore=0
 mlxscore=0 spamscore=0 mlxlogscore=999 phishscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2407110000
 definitions=main-2407180147
X-Proofpoint-ORIG-GUID: IEKc1_mTnskhuzF_AUI6rKZnh8_Z-AOF
X-Proofpoint-GUID: IEKc1_mTnskhuzF_AUI6rKZnh8_Z-AOF


On 7/18/24 2:21 AM, Juergen Gross wrote:
> The recent adding of multicall debug mixed up the referencing of
> the debug data. A __percpu tagged pointer can't be initialized with a
> plain pointer, so use another percpu variable for the pointer and set
> it on each new cpu via a function.
>
> Fixes: 942d917cb92a ("xen: make multicall debug boot time selectable")
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202407151106.5s7Mnfpz-lkp@intel.com/
> Signed-off-by: Juergen Gross <jgross@suse.com>


IIUIC we only need data until SMP is initialized, so setting per-cpu 
pointer just on cpu0 may be sufficient. Not sure where to do this though.

But this works as well.

Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>




From xen-devel-bounces@lists.xenproject.org Thu Jul 18 21:57:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 21:57:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760734.1170637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUZ8N-0003Bf-OK; Thu, 18 Jul 2024 21:57:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760734.1170637; Thu, 18 Jul 2024 21: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 1sUZ8N-0003BY-L0; Thu, 18 Jul 2024 21:57:55 +0000
Received: by outflank-mailman (input) for mailman id 760734;
 Thu, 18 Jul 2024 21: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=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUZ8L-0002ha-K9
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 21:57:53 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7796a05-4550-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 23:57:52 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-58e76294858so549280a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 14:57:52 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a33de74e5sm5294266b.147.2024.07.18.14.57.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 14: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: c7796a05-4550-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721339870; x=1721944670; 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=YtfadlNgadb4rLpJNCYrZ98WzF6Dv0YgGRcA5dWreRk=;
        b=m8o0wes+YxTDP+B9v820g3sxYDaSeHgqpj77s1/VR3/GHylwgnmtToKhBmqnzoa9US
         ikU6vFmHR+Z2pzllX6UU809cFmam7SbIWznP36FmL/ZbNnzHSxud3wqfMFXKtMz998/T
         1Dj5Aq0wFl91JNz4oOt/Tnddgvd/jwJsjai+k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721339870; x=1721944670;
        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=YtfadlNgadb4rLpJNCYrZ98WzF6Dv0YgGRcA5dWreRk=;
        b=KbdplpG7VFsdFuCWsVQ/h9ViMv5tsIK/hdf1Q6e1HYAeIouODl4RFuaWHnJC1UDfOs
         dH+CtdHIRWUSPuTMi0ya+hab/X1z4sQcITcgHQNeTQVSiYAi2puLC1QTQdRtroTqh/RW
         YsnzlIXCkANEXPqgUev8w9qBk7xMDawbojriHkLI1QkalUjJom+d9+3OViiF+jK+2sb+
         FuR4IsJegEmvKGhUCfMUfjNzUFLvdGIRxPBzJHAlEdImW44JjWU9FiX1Qs094bMwTfPK
         iBXo9nw2GXSr5qpFDAM0sfZICUCALwnYdBqoqk2TgJkkgl19JpF52ruZyFqy6hIFreCZ
         4O+Q==
X-Gm-Message-State: AOJu0Yyp/xamMfk/VwV9JIDHDQIZW4CFdQuraUFYgdqtCkUMOgUKUBSA
	NHJf9a0YfE0uizYsM4/a1QNxJSVGsI80EFPTw/mTEnOTp/2Zdjf6pkWsJDWzFR0zEJBhEyG8Mal
	W
X-Google-Smtp-Source: AGHT+IEKtx6lwmMuQBR7xMkjIlSqABge3Knhh9a06lDR5jnmvEnYO8PL/QrY9ZitvRBKmlsdPO5pMQ==
X-Received: by 2002:a17:906:55d1:b0:a72:7b17:5d68 with SMTP id a640c23a62f3a-a7a0f0fea4fmr429858766b.3.1721339870499;
        Thu, 18 Jul 2024 14:57: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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 0/4] xen/domain: Idle domain creation improvements
Date: Thu, 18 Jul 2024 22:57:40 +0100
Message-Id: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

domain_create() has some unnecessary complexity for constructing the idle
domain.  Rearrange x86's needs, to simplify the common logic.

https://cirrus-ci.com/build/5234584097390592
https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1379531597

Andrew Cooper (4):
  xen/domain: Introduce arch_init_idle_domain()
  x86/domain: Implement arch_init_idle_domain()
  xen/domain: Simpliy domain_create() now the idle domain is complete
    earlier
  arch/domain: Clean up the idle domain remnants in arch_domain_create()

 xen/arch/arm/domain.c             |   6 --
 xen/arch/x86/domain.c             |  34 +++-----
 xen/arch/x86/include/asm/domain.h |   3 +
 xen/common/domain.c               | 130 +++++++++++++++---------------
 xen/include/xen/sched.h           |   5 ++
 5 files changed, 82 insertions(+), 96 deletions(-)


base-commit: 57338346f29cea7b183403561bdc5f407163b846
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 21:57:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 21:57:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760735.1170642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUZ8O-0003EA-1M; Thu, 18 Jul 2024 21:57:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760735.1170642; Thu, 18 Jul 2024 21: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 1sUZ8N-0003Cv-RQ; Thu, 18 Jul 2024 21:57:55 +0000
Received: by outflank-mailman (input) for mailman id 760735;
 Thu, 18 Jul 2024 21:57:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUZ8M-0003BD-6A
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 21:57:54 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c8087f40-4550-11ef-bbfd-fd08da9f4363;
 Thu, 18 Jul 2024 23:57:52 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2eedea0fd88so17559621fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 14:57:52 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a33de74e5sm5294266b.147.2024.07.18.14.57.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 14: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: c8087f40-4550-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721339871; x=1721944671; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zwFWzFvgZNrEVHvyRBE8cy2ybaA/G1NJTsH6Emb+MEQ=;
        b=r+Vu8uaXA/MHX011CptwK1aHeMR5A1/I9RhXtxeeA/sC31JVuYUnhvZLqi+8LnC6QP
         g/1HvrBIXn0FNjZIYsZaSnJlpPHst7g0aMw+CvE2nPTHPcqJy/IKh1Q2nE0fHIlxtv3u
         PB5FT7fX1yj2OvsCSvn+u6BCBHEMbuY55aiPM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721339871; x=1721944671;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=zwFWzFvgZNrEVHvyRBE8cy2ybaA/G1NJTsH6Emb+MEQ=;
        b=VK981onbRL7G4/2U26bNbEKETPirUPSX5YyA/NnABQQNs5jGb2pqsLzcfXSYs3XG2D
         CY8dBWxp8niAYn0fhQ6ChcuIs+0Xe3Q7f72EQxEpH+gLgqMhPqthxt7r0qYXGp/uXj+L
         yOkMLWuGczBI9qQH3OjF+vBhz78bM3ZQjRuisD4VDcdG1lH+kwBDN1kB9vOVobh4XfV8
         bSOLkP/kIdp3MJTkPDgD8O6ohuQJFPXChY58DdF1ZqlEkT/sjWN3jEZPfx9irFM5PKB/
         Gdc5P2guOPtMeyDI1pWDb+BO72T/L5qM3ZwEKf424fM3t7Mia1XbqHzIq89ZPA+IJdAM
         xZMA==
X-Gm-Message-State: AOJu0Yw6iC1qE+PC9HdF3IKTAiG+k0WzNTbZSCPcBprVOrxP/OeOokOW
	KzuDnpyS6GqgLJ9FOzKQSSXa6noQ0ekNecEgjVKzmNT6s9k4K6I9CgkYOjh4pmqhu1zpX7KY86A
	1
X-Google-Smtp-Source: AGHT+IFRHnZO7GLRxxpq0OV++qcIOqQIfYWu2izeKn140Dl3ATRuCUEfGAbfWVvQK4LITKnoUg8qmA==
X-Received: by 2002:a05:6512:682:b0:52c:e040:7d9 with SMTP id 2adb3069b0e04-52ee5428af2mr4540350e87.59.1721339871272;
        Thu, 18 Jul 2024 14:57: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 1/4] xen/domain: Introduce arch_init_idle_domain()
Date: Thu, 18 Jul 2024 22:57:41 +0100
Message-Id: <20240718215744.3892072-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The idle domain causes a large amount of complexity in domain_create() because
of x86's need to initialise d->arch.ctxt_switch in arch_domain_create().

In order to address this, introduce an optional hook to perform extra
initialisation of the idle domain.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/common/domain.c     | 3 +++
 xen/include/xen/sched.h | 5 +++++
 2 files changed, 8 insertions(+)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index fb262dcec919..e312c820d641 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -685,6 +685,9 @@ struct domain *domain_create(domid_t domid,
 
     rangeset_domain_initialise(d);
 
+    if ( is_idle_domain(d) )
+        arch_init_idle_domain(d);
+
     /* DOMID_{XEN,IO,etc} (other than IDLE) are sufficiently constructed. */
     if ( is_system_domain(d) && !is_idle_domain(d) )
         return d;
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 2dcd1d1a4f8a..90666576c2f8 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -728,6 +728,11 @@ struct domain *domain_create(domid_t domid,
                              struct xen_domctl_createdomain *config,
                              unsigned int flags);
 
+#ifndef arch_init_idle_domain
+/* Optional, if there's any construction necessary for DOMID_IDLE */
+static inline void arch_init_idle_domain(struct domain *d) {}
+#endif
+
 /*
  * rcu_lock_domain_by_id() is more efficient than get_domain_by_id().
  * This is the preferred function if the returned domain reference
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 21:57:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 21:57:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760736.1170657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUZ8P-0003es-5a; Thu, 18 Jul 2024 21:57:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760736.1170657; Thu, 18 Jul 2024 21: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 1sUZ8P-0003eC-2K; Thu, 18 Jul 2024 21:57:57 +0000
Received: by outflank-mailman (input) for mailman id 760736;
 Thu, 18 Jul 2024 21: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=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUZ8N-0002ha-LT
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 21:57:55 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c8c7e146-4550-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 23:57:54 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a77ec5d3b0dso142087166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 14:57:54 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a33de74e5sm5294266b.147.2024.07.18.14.57.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 14:57: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: c8c7e146-4550-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721339873; x=1721944673; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4GWn57rc3KL1PwUW4FYINxfwiapH7y2BIUBNdFS5IEE=;
        b=d+pdsbs/RoAFns/vM3tUJkFHJlIQYRydN8LQ/gz1QR7WROYNiK0B9rU6ZPac+YC6Zm
         AAdA26TeNwGKxxqpiVD8v9nxS8s04P1mOZY1YBXSzHbjRFL9lZtqDRWtOS3h9h5qSL7q
         4slXc+JfOYdatcY9WJW6v4QqEzyHOYEjSIaNM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721339873; x=1721944673;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4GWn57rc3KL1PwUW4FYINxfwiapH7y2BIUBNdFS5IEE=;
        b=eDgBQP6ftG6/7g06MKaIs0VzsfI7N/n5M6YaZ8kfOquC/YM3IdDVwzeUcrX6n1Ep39
         on6pJkGmnEA0aaOdhV3MIzjPilTSvCLQGv2rrKWBVk1NlyXE8V0By+jQCwd9jvofe+K4
         J57VxKF2XHPpcmZFzknGMkpZoAK/O6nnn0u62io9xiafJyKCXu4462Yj8KUnZIpeX77B
         2flFBl45C6NenjhZY7txC5JL4qIXTuPDGFQhpGCTZOROF9uiv0bJE+cigvdVNh0wob+S
         LutsOY9rVQO4cYflo28BS1aqM38y6uGWYNHLfOSQUs0goLBNHCP4xpUwHCUp0D2FD7pS
         WGRw==
X-Gm-Message-State: AOJu0YwEexa1C6uC+sfjZq8cmiaqieZomtfg9lJOywldHycxz1faPhHC
	RAV69anmyBHhBE2VG29bbOqh7LpQyJY+4Pj1ygGLpVv2xbqPfLcbBwHIrI0GaRi1gJJ3h1V3hGz
	j
X-Google-Smtp-Source: AGHT+IE3GGRKISsIRhYfJ2h3x/9H/KPzRnvd/7V4dLwQxc5o97oAu/KglCBD0nhQcEY4Ch4NIYTFfg==
X-Received: by 2002:a17:906:eb57:b0:a75:360a:6cb0 with SMTP id a640c23a62f3a-a7a0115669bmr386806366b.29.1721339873212;
        Thu, 18 Jul 2024 14:57: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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 2/4] x86/domain: Implement arch_init_idle_domain()
Date: Thu, 18 Jul 2024 22:57:42 +0100
Message-Id: <20240718215744.3892072-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The idle domain needs d->arch.ctxt_switch initialised on x86.  Implement the
new arch_init_idle_domain() in order to do this.

Right now this double-initalises the ctxt_switch pointer, but it's safe and
will stop happening when domain_create() is cleaned up as a consequence.

No practical change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/x86/domain.c             | 19 ++++++++++++-------
 xen/arch/x86/include/asm/domain.h |  3 +++
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index ccadfe0c9e70..eff905c6c6e5 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -768,6 +768,17 @@ static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
     return true;
 }
 
+void __init arch_init_idle_domain(struct domain *d)
+{
+    static const struct arch_csw idle_csw = {
+        .from = paravirt_ctxt_switch_from,
+        .to   = paravirt_ctxt_switch_to,
+        .tail = idle_loop,
+    };
+
+    d->arch.ctxt_switch = &idle_csw;
+}
+
 int arch_domain_create(struct domain *d,
                        struct xen_domctl_createdomain *config,
                        unsigned int flags)
@@ -783,13 +794,7 @@ int arch_domain_create(struct domain *d,
     /* Minimal initialisation for the idle domain. */
     if ( unlikely(is_idle_domain(d)) )
     {
-        static const struct arch_csw idle_csw = {
-            .from = paravirt_ctxt_switch_from,
-            .to   = paravirt_ctxt_switch_to,
-            .tail = idle_loop,
-        };
-
-        d->arch.ctxt_switch = &idle_csw;
+        arch_init_idle_domain(d);
 
         d->arch.cpu_policy = ZERO_BLOCK_PTR; /* Catch stray misuses. */
 
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index f5daeb182baa..bca3258d69ac 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -779,6 +779,9 @@ struct arch_vcpu_io {
 /* Maxphysaddr supportable by the paging infrastructure. */
 unsigned int domain_max_paddr_bits(const struct domain *d);
 
+#define arch_init_idle_domain arch_init_idle_domain
+void arch_init_idle_domain(struct domain *d);
+
 #endif /* __ASM_DOMAIN_H__ */
 
 /*
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 21:57:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 21:57:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760738.1170667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUZ8Q-0003vB-Dz; Thu, 18 Jul 2024 21:57:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760738.1170667; Thu, 18 Jul 2024 21:57:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUZ8Q-0003v2-9y; Thu, 18 Jul 2024 21:57:58 +0000
Received: by outflank-mailman (input) for mailman id 760738;
 Thu, 18 Jul 2024 21:57:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUZ8P-0002ha-1r
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 21:57:57 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c99aefcf-4550-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 23:57:55 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2eeb2d60efbso20289261fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 14:57:55 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a33de74e5sm5294266b.147.2024.07.18.14.57.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 14: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: c99aefcf-4550-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721339874; x=1721944674; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0kD2ViH5db6Uhco+HhIi3wbdU8JjVgf/T8jwX9hiBjs=;
        b=ANnUEvxc/vpl9CEkHpCop9xNZHENXl93pV0kHUKa+CTQ/vcGluBBuBpf6JSIfF9Lj2
         HXY1mX1bzCJwai6fPNzjLLHtZ7IjwZmerDHEz/+gRIqsCOyysL8RfOPDi9zNVg+PtzVG
         hXXipgtRDf6S1ZMhYMZROGlB5k5oje/tguD2k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721339874; x=1721944674;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0kD2ViH5db6Uhco+HhIi3wbdU8JjVgf/T8jwX9hiBjs=;
        b=Y8ezOTb66sZwZCt0wfcSSgTvdcFMQO0/nWlQbpYuhTWYYZAJfwGj7nwjxVnIs1aRql
         EqX6vvLRgCrW1DW5yEjRsHUKodOnnrTacQqVxECBp/Iu11eTle5MRs8aGMggM4yx7q2C
         97ozrdmv7O2r00Del0frhQBnnv6JuC+CMO06wt2qpzoX/imm+mU8Wg76He1DxeJnAtuK
         gbJeP+/J0fQEmALBtAoieIaypO/5TNO8DeGBUZMpjw/ukkov1a2/+ebxHqh9j4CxPsLf
         hmLK1k20A0oZuhAQ+auez/SqAKNFjenOKB301McGndOQ6QOmu6YOWsBCF7Toz72LinDN
         DNzg==
X-Gm-Message-State: AOJu0Yw+yvVzRjO6PHvHPvtEo0JVq85V+8NHJuwsKN1wMutXJopyaVPs
	omRGAo/psi5+48/Kq3VouSYDhVe7brr0jrsFnEze2oYkAxMPf6dNwU7wcMfh8SZeXlTle7N9d1K
	G
X-Google-Smtp-Source: AGHT+IGHlZV97i3PU5wQnBNAb4+RoZtIr+55cNa39VxMHty8bOFfUy/Rr/pg4MsU3ofnYw53Ne+R8Q==
X-Received: by 2002:a05:6512:6c7:b0:52e:9670:e40b with SMTP id 2adb3069b0e04-52ee53d2c31mr4190759e87.39.1721339874564;
        Thu, 18 Jul 2024 14:57: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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 3/4] xen/domain: Simpliy domain_create() now the idle domain is complete earlier
Date: Thu, 18 Jul 2024 22:57:43 +0100
Message-Id: <20240718215744.3892072-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With x86 implementing arch_init_idle_domain(), there is no longer any need to
call arch_domain_create() with the idle domain.

Have the idle domain exit early with all other system domains.  Move the
static-analysis ASSERT() earlier.  Then, remove the !is_idle_domain()
protections around the majority of domain_create() and remove one level of
indentation.

No practical change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/common/domain.c | 127 +++++++++++++++++++++-----------------------
 1 file changed, 60 insertions(+), 67 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index e312c820d641..8bc0bcd06ca5 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -688,95 +688,88 @@ struct domain *domain_create(domid_t domid,
     if ( is_idle_domain(d) )
         arch_init_idle_domain(d);
 
-    /* DOMID_{XEN,IO,etc} (other than IDLE) are sufficiently constructed. */
-    if ( is_system_domain(d) && !is_idle_domain(d) )
+    /* DOMID_{XEN,IO,IDLE,etc} are sufficiently constructed. */
+    if ( is_system_domain(d) )
         return d;
 
+    /*
+     * The assertion helps static analysis tools infer that config cannot be
+     * NULL in this branch, which in turn means that it can be safely
+     * dereferenced. Therefore, this assertion is not redundant.
+     */
+    ASSERT(config);
+
 #ifdef CONFIG_HAS_PIRQ
-    if ( !is_idle_domain(d) )
-    {
-        if ( !is_hardware_domain(d) )
-            d->nr_pirqs = nr_static_irqs + extra_domU_irqs;
-        else
-            d->nr_pirqs = extra_hwdom_irqs ? nr_static_irqs + extra_hwdom_irqs
-                                           : arch_hwdom_irqs(d);
-        d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
+    if ( !is_hardware_domain(d) )
+        d->nr_pirqs = nr_static_irqs + extra_domU_irqs;
+    else
+        d->nr_pirqs = extra_hwdom_irqs ? nr_static_irqs + extra_hwdom_irqs
+                                       : arch_hwdom_irqs(d);
+    d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
 
-        radix_tree_init(&d->pirq_tree);
-    }
+    radix_tree_init(&d->pirq_tree);
 #endif
 
     if ( (err = arch_domain_create(d, config, flags)) != 0 )
         goto fail;
     init_status |= INIT_arch;
 
-    if ( !is_idle_domain(d) )
-    {
-        /*
-         * The assertion helps static analysis tools infer that config cannot
-         * be NULL in this branch, which in turn means that it can be safely
-         * dereferenced. Therefore, this assertion is not redundant.
-         */
-        ASSERT(config);
-
-        watchdog_domain_init(d);
-        init_status |= INIT_watchdog;
+    watchdog_domain_init(d);
+    init_status |= INIT_watchdog;
 
-        err = -ENOMEM;
-        d->iomem_caps = rangeset_new(d, "I/O Memory", RANGESETF_prettyprint_hex);
-        d->irq_caps   = rangeset_new(d, "Interrupts", 0);
-        if ( !d->iomem_caps || !d->irq_caps )
-            goto fail;
+    err = -ENOMEM;
+    d->iomem_caps = rangeset_new(d, "I/O Memory", RANGESETF_prettyprint_hex);
+    d->irq_caps   = rangeset_new(d, "Interrupts", 0);
+    if ( !d->iomem_caps || !d->irq_caps )
+        goto fail;
 
-        if ( (err = xsm_domain_create(XSM_HOOK, d, config->ssidref)) != 0 )
-            goto fail;
+    if ( (err = xsm_domain_create(XSM_HOOK, d, config->ssidref)) != 0 )
+        goto fail;
 
-        d->controller_pause_count = 1;
-        atomic_inc(&d->pause_count);
+    d->controller_pause_count = 1;
+    atomic_inc(&d->pause_count);
 
-        if ( (err = evtchn_init(d, config->max_evtchn_port)) != 0 )
-            goto fail;
-        init_status |= INIT_evtchn;
+    if ( (err = evtchn_init(d, config->max_evtchn_port)) != 0 )
+        goto fail;
+    init_status |= INIT_evtchn;
 
-        if ( (err = grant_table_init(d, config->max_grant_frames,
-                                     config->max_maptrack_frames,
-                                     config->grant_opts)) != 0 )
-            goto fail;
-        init_status |= INIT_gnttab;
+    if ( (err = grant_table_init(d, config->max_grant_frames,
+                                 config->max_maptrack_frames,
+                                 config->grant_opts)) != 0 )
+        goto fail;
+    init_status |= INIT_gnttab;
 
-        if ( (err = argo_init(d)) != 0 )
-            goto fail;
+    if ( (err = argo_init(d)) != 0 )
+        goto fail;
 
-        err = -ENOMEM;
+    err = -ENOMEM;
+    d->pbuf = xzalloc_array(char, DOMAIN_PBUF_SIZE);
+    if ( !d->pbuf )
+        goto fail;
 
-        d->pbuf = xzalloc_array(char, DOMAIN_PBUF_SIZE);
-        if ( !d->pbuf )
-            goto fail;
+    if ( (err = sched_init_domain(d, config->cpupool_id)) != 0 )
+        goto fail;
 
-        if ( (err = sched_init_domain(d, config->cpupool_id)) != 0 )
-            goto fail;
+    if ( (err = late_hwdom_init(d)) != 0 )
+        goto fail;
 
-        if ( (err = late_hwdom_init(d)) != 0 )
-            goto fail;
+    /*
+     * Must not fail beyond this point, as our caller doesn't know whether
+     * the domain has been entered into domain_list or not.
+     */
 
-        /*
-         * Must not fail beyond this point, as our caller doesn't know whether
-         * the domain has been entered into domain_list or not.
-         */
+    spin_lock(&domlist_update_lock);
+    pd = &domain_list; /* NB. domain_list maintained in order of domid. */
+    for ( pd = &domain_list; *pd != NULL; pd = &(*pd)->next_in_list )
+        if ( (*pd)->domain_id > d->domain_id )
+            break;
+    d->next_in_list = *pd;
+    d->next_in_hashbucket = domain_hash[DOMAIN_HASH(domid)];
+    rcu_assign_pointer(*pd, d);
+    rcu_assign_pointer(domain_hash[DOMAIN_HASH(domid)], d);
+    spin_unlock(&domlist_update_lock);
 
-        spin_lock(&domlist_update_lock);
-        pd = &domain_list; /* NB. domain_list maintained in order of domid. */
-        for ( pd = &domain_list; *pd != NULL; pd = &(*pd)->next_in_list )
-            if ( (*pd)->domain_id > d->domain_id )
-                break;
-        d->next_in_list = *pd;
-        d->next_in_hashbucket = domain_hash[DOMAIN_HASH(domid)];
-        rcu_assign_pointer(*pd, d);
-        rcu_assign_pointer(domain_hash[DOMAIN_HASH(domid)], d);
-        spin_unlock(&domlist_update_lock);
-
-        memcpy(d->handle, config->handle, sizeof(d->handle));
-    }
+    memcpy(d->handle, config->handle, sizeof(d->handle));
 
     return d;
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 21:57:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 21:57:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760739.1170677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUZ8R-0004Bb-P7; Thu, 18 Jul 2024 21:57:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760739.1170677; Thu, 18 Jul 2024 21: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 1sUZ8R-0004BC-Jj; Thu, 18 Jul 2024 21:57:59 +0000
Received: by outflank-mailman (input) for mailman id 760739;
 Thu, 18 Jul 2024 21: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=AEHZ=OS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sUZ8Q-0002ha-Fc
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 21:57:58 +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 ca7955d4-4550-11ef-8776-851b0ebba9a2;
 Thu, 18 Jul 2024 23:57:57 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a77b60cafecso124216166b.1
 for <xen-devel@lists.xenproject.org>; Thu, 18 Jul 2024 14:57:57 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a33de74e5sm5294266b.147.2024.07.18.14.57.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 18 Jul 2024 14:57: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: ca7955d4-4550-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721339876; x=1721944676; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pK2gBpeR70VDp1XL+JhXx1V184ewFc/upF4kiKIMrfA=;
        b=fRaLajRIwFrm1Uv0PtCIKgo9YHsDVVF5cpWV6w1BGcPJYprt4WiLyUD7GGzl9STZWk
         UtClffa3ytaFydikIxZHXQF/aP9XTo1x+ZnKZC+dB60xjQXLXoVBOA+nNVFwU8MoEj1d
         YvZWNDq/ymAhaxljliElkL9HiwKLlpPTvmrwI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721339876; x=1721944676;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=pK2gBpeR70VDp1XL+JhXx1V184ewFc/upF4kiKIMrfA=;
        b=q4wYmMYUkvEQmuKu3JNNFFH85x1EYf2xTYZ02GJPkluvhEvrgMmRpqZtEnTeGSpqRM
         5tpRXpeC5PjFQ0y3aeu1lF7tsryxaRVtRrf88mQ08pmuY7MRpbce9fXdaNRDzLGKHJdh
         959KOmw9X0ptny+O/UUa0ilHQutcE7oobXu82dhSIzETGXA8daT0re+WY/Q+QUp4HZPr
         probWaCqmIZXU5NAXLpnv2k+URS+p097nAk33EH+qc63tOpkZsRUPgazVkdjTZbdW5pM
         wMOOg2Dn1FW/nNRIZYpCa5x/Mb5jLR7KlK/5j5sqMFb62KWKKCvZyMvIL6OSv/M4CNyu
         gfhw==
X-Gm-Message-State: AOJu0YyaW+cLdGOfTDV6n3/BSmSW0cCT7Qnbf40m+aHl0YpsEWPEWggV
	/bTprDL4ENA8X4/J0PEpRErhVGx6/InvLGpT8kEl8TWlf4hlyOLzAoa+CPjw5ZM73BUfqzJBNhG
	l
X-Google-Smtp-Source: AGHT+IFB7yjppIhAgZ8m4CBxVfzIr48DXBLeUPrXLqCUrWuO+0kxLeiYLzO/mUuOjamiLIWw3mAohg==
X-Received: by 2002:a17:906:f212:b0:a77:cb9c:e808 with SMTP id a640c23a62f3a-a7a01360756mr371966466b.69.1721339875805;
        Thu, 18 Jul 2024 14:57:55 -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>
Subject: [PATCH 4/4] arch/domain: Clean up the idle domain remnants in arch_domain_create()
Date: Thu, 18 Jul 2024 22:57:44 +0100
Message-Id: <20240718215744.3892072-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With arch_domain_create() no longer being called with the idle domain, drop
the last remaining logic.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/arm/domain.c |  6 ------
 xen/arch/x86/domain.c | 17 -----------------
 2 files changed, 23 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 7cfcefd27944..3ba959f86633 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -706,12 +706,6 @@ int arch_domain_create(struct domain *d,
 
     BUILD_BUG_ON(GUEST_MAX_VCPUS < MAX_VIRT_CPUS);
 
-    /* Idle domains do not need this setup */
-    if ( is_idle_domain(d) )
-        return 0;
-
-    ASSERT(config != NULL);
-
 #ifdef CONFIG_IOREQ_SERVER
     ioreq_domain_init(d);
 #endif
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index eff905c6c6e5..c71b9023cb1a 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -791,23 +791,6 @@ int arch_domain_create(struct domain *d,
 
     spin_lock_init(&d->arch.e820_lock);
 
-    /* Minimal initialisation for the idle domain. */
-    if ( unlikely(is_idle_domain(d)) )
-    {
-        arch_init_idle_domain(d);
-
-        d->arch.cpu_policy = ZERO_BLOCK_PTR; /* Catch stray misuses. */
-
-        return 0;
-    }
-
-    if ( !config )
-    {
-        /* Only IDLE is allowed with no config. */
-        ASSERT_UNREACHABLE();
-        return -EINVAL;
-    }
-
     if ( d->domain_id && cpu_has_amd_erratum(&boot_cpu_data, AMD_ERRATUM_121) )
     {
         if ( !opt_allow_unsafe )
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 18 22:01:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 22:01:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760766.1170691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUZBg-0006wI-Hg; Thu, 18 Jul 2024 22:01:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760766.1170691; Thu, 18 Jul 2024 22:01:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUZBg-0006wB-Cm; Thu, 18 Jul 2024 22:01:20 +0000
Received: by outflank-mailman (input) for mailman id 760766;
 Thu, 18 Jul 2024 22:01:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gf2A=OS=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sUZBf-0006w5-0f
 for xen-devel@lists.xenproject.org; Thu, 18 Jul 2024 22:01:19 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 40412540-4551-11ef-8776-851b0ebba9a2;
 Fri, 19 Jul 2024 00:01:16 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 958CE60EA5;
 Thu, 18 Jul 2024 22:01:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55040C116B1;
 Thu, 18 Jul 2024 22:01: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: 40412540-4551-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721340073;
	bh=neyyMZRPt51TeHrcmVi3YAM82y8RbMbS3Bq5MLnwt0I=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fZIuS/tdNGEUAPLv98+VhsK0eKR39fzpp2ivy85yOG7gRIwE8UjwMMuaG0E6ULWqZ
	 wYLACgSD9pqtXzR7MZS/HQQ+pvJD5v7N9j3v+/YNdk50ZI9LqWPo8YZJnWHAERS3UL
	 fl43+49vqWwNbFDRMY6usIcDSGV1HlHErhc6+gBgBe1Ehs+YVt9eSXdVPOUOx2NUvK
	 Tk0PcyM3xhyoNZs4ufABPZqpP9gtkizG7UDrWE4tNDOFR1QPc4ZEdJ56OYJvw1fBej
	 4L8hSjf+zPMuPXlu9KK8/EbOSASsJLWSXftRZxwKn7OAzbtcVbN2k7jdPwQFiB2oQs
	 IWwjlk8/K82/g==
Date: Thu, 18 Jul 2024 15:01:08 -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>, 
    Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
In-Reply-To: <8fd8d6e4-ef29-4ea9-9437-a743c25fe7b9@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407181457110.4857@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com> <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com> <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
 <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com> <alpine.DEB.2.22.394.2407151736530.3635@ubuntu-linux-20-04-desktop> <4893a89d-9ef5-4d86-94b0-042e88588439@suse.com> <alpine.DEB.2.22.394.2407161713010.3635@ubuntu-linux-20-04-desktop>
 <013c6cc2-eddf-4beb-b115-01aaaa71faa6@suse.com> <alpine.DEB.2.22.394.2407171601540.3635@ubuntu-linux-20-04-desktop> <8fd8d6e4-ef29-4ea9-9437-a743c25fe7b9@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 18 Jul 2024, Jan Beulich wrote:
> On 18.07.2024 01:02, Stefano Stabellini wrote:
> > On Wed, 17 Jul 2024, Jan Beulich wrote:
> >> On 17.07.2024 02:20, Stefano Stabellini wrote:
> >>> On Tue, 16 Jul 2024, Jan Beulich wrote:
> >>>> On 16.07.2024 02:43, Stefano Stabellini wrote:
> >>>>> On Mon, 15 Jul 2024, Jan Beulich wrote:
> >>>>>> On 13.07.2024 00:38, Stefano Stabellini wrote:
> >>>>>>> On Wed, 3 Jul 2024, Jan Beulich wrote:
> >>>>>>>> I further have to note that, as indicated during the earlier discussion,
> >>>>>>>> I still cannot see how occasional ambiguity is going to be dealt with.
> >>>>>>>> IOW from the rules above two different headers could still end up with
> >>>>>>>> the same guard identifier.
> >>>>>>>
> >>>>>>> Maybe something like this?
> >>>>>>>
> >>>>>>> "In the event of naming collisions, exceptions to the coding style may
> >>>>>>> be made at the discretion of the contributor and maintainers."
> >>>>>>
> >>>>>> Hmm, maybe I wasn't clear enough then. My take is that the scheme should
> >>>>>> simply not allow for possible collisions. Neither the contributor nor the
> >>>>>> reviewer may spot such a collision, and it may therefore take until the
> >>>>>> first full scan that one is actually noticed. Which I consider too late
> >>>>>> in the process, even if we already were at the point where commits were
> >>>>>> checked pre-push.
> >>>>>
> >>>>> Looking at the proposal, copy/pasted here for convenience:
> >>>>>
> >>>>> - private headers -> <dir>_<filename>_H
> >>>>> - asm-generic headers -> ASM_GENERIC_<filename>_H
> >>>>>     - #ifndef ASM_GENERIC_X86_PERCPU_H
> >>>>>       #define ASM_GENERIC_X86_PERCPU_H
> >>>>>       //...
> >>>>>       #endif /* ASM_GENERIC_X86_PERCPU_H */
> >>>>> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
> >>>>>     - #ifndef ASM_X86_DOMAIN_H
> >>>>>       #define ASM_X86_DOMAIN_H
> >>>>>       //...
> >>>>>       #endif /* ASM_X86_DOMAIN_H */
> >>>>> - xen/include/xen/<filename>.h -> XEN_<filename>_H
> >>>>> - xen/include/xen/<subdir>/<filename>.h -> XEN_<subdir>_<filename>_H
> >>>>>
> >>>>>
> >>>>> The only possibility for collision that I can see is from the first
> >>>>> point:
> >>>>>
> >>>>> - private headers -> <dir>_<filename>_H
> >>>>
> >>>> I don't think this is the only possibility of collisions. The <subdir>_<filename>
> >>>> parts can similarly cause problems if either of the two involved names contains
> >>>> e.g. a dash (which would need converting to an underscore) or an underscore. To
> >>>> avoid this, the name separators (slashes in the actual file names) there may need
> >>>> representing by double underscores.
> >>>
> >>> I am OK with you two underscores as name separator (slashes in the
> >>> actual file names). Would you do it for all levels like this?
> >>>
> >>> - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
> >>> - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
> >>> - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> >>>
> >>>
> >>> I think it is better than the below:
> >>>
> >>> - arch/arm/arm64/lib/something.h -> ARM_ARM64__LIB__SOMETHING_H
> >>> - arch/arm/arm32/lib/something.h -> ARM_ARM32__LIB__SOMETHING_H
> >>> - arch/x86/lib/something.h -> X86_LIB__SOMETHING_H
> >>
> >> Hmm, maybe it's indeed better to do it entirely uniformly then.
> > 
> > 
> > Do we have agreement on the naming convention then? 
> > 
> > 
> > - private headers -> <dir>__<filename>__H
> >     - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
> >     - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
> >     - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> > 
> > - asm-generic headers -> ASM_GENERIC_<filename>_H
> >     - include/asm-generic/percpu.h -> ASM_GENERIC_X86_PERCPU_H
> > 
> > - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
> >     - arch/x86/include/asm/domain.h -> ASM_X86_DOMAIN_H
> > 
> > - include/xen -> XEN_<filename>_H
> >     - include/xen/percpu.h -> XEN_PERCPU_H
> > 
> > 
> > Or do you prefer the double underscore __  in all cases?
> 
> It's not so much prefer, but a requirement if we want to be future proof.
> Even for ASM_GENERIC_* that'll be needed, as your outline above simply
> doesn't mention the (future) case of there being subdir-s there (see how
> Linux already has some). Imo the question doesn't even arise for XEN_*,
> as xen/ has subdir-s already.

OK. So it becomes:

- private headers -> <dir>__<filename>_H
    - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
    - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
    - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H

- asm-generic headers -> ASM_GENERIC__<filename>_H
    - include/asm-generic/percpu.h -> ASM_GENERIC__X86__PERCPU_H

- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM__<architecture>__<subdir>__<filename>_H
    - arch/x86/include/asm/domain.h -> ASM__X86__DOMAIN_H

- include/xen -> XEN__<filename>_H
    - include/xen/percpu.h -> XEN__PERCPU_H

If we have found agreement then Alessandro could send an update


From xen-devel-bounces@lists.xenproject.org Thu Jul 18 22:44:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 18 Jul 2024 22:44:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760788.1170703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUZqs-0004ry-HR; Thu, 18 Jul 2024 22:43:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760788.1170703; Thu, 18 Jul 2024 22:43: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 1sUZqs-0004rr-E1; Thu, 18 Jul 2024 22:43:54 +0000
Received: by outflank-mailman (input) for mailman id 760788;
 Thu, 18 Jul 2024 22:43:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUZqr-0004rh-HN; Thu, 18 Jul 2024 22:43:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUZqr-0004PO-Ev; Thu, 18 Jul 2024 22:43:53 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUZqr-0006GB-7b; Thu, 18 Jul 2024 22:43:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUZqr-0000Pt-78; Thu, 18 Jul 2024 22:43: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=aPE/EmsgvKl2BZ/CqwnRVvWUq0UHu8Ds1QyHGbeobR4=; b=rUWnjurXjctz9WGIGhy26glB2s
	ubi7oC2KAc6SoJWk5PFfRJeXRTh+Zp6ghJOAnNaNRGtG9veJpCx3BUo/Ehy/WcYCj0DHFf9fnsW59
	L0UIpH5x+zLCT3IuASkpLjEcbWGBSFEEYkXCX0PpcZtupQdy8ZNOZyQYWl+aCZHK9Lmc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186883-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186883: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-xl-qemuu-debianhvm-amd64:xen-install:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:xen-install:fail:regression
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:xen-install:fail:regression
    xen-unstable-smoke:build-armhf:xen-build:fail:regression
    xen-unstable-smoke:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    xen=a99f25f7ac60544e9af4b3b516d7566ba8841cc4
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 18 Jul 2024 22:43:53 +0000

flight 186883 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186883/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  7 xen-install fail REGR. vs. 186826
 test-amd64-amd64-libvirt      7 xen-install              fail REGR. vs. 186826
 test-arm64-arm64-xl-xsm       7 xen-install              fail REGR. vs. 186826
 build-armhf                   6 xen-build                fail REGR. vs. 186826

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a

version targeted for testing:
 xen                  a99f25f7ac60544e9af4b3b516d7566ba8841cc4
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186826  2024-07-16 19:00:25 Z    2 days
Failing since        186880  2024-07-18 15:00:30 Z    0 days    2 attempts
Testing same since   186883  2024-07-18 21:11:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Julien Grall <julien@xen.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  fail    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-amd64-libvirt                                     fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit a99f25f7ac60544e9af4b3b516d7566ba8841cc4
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:51:02 2024 +0100

    CHANGELOG.md: Start new 4.20.0 section
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit 974ad0926e4616444dc0c1d83ba86bd6eb8dd52d
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:48:06 2024 +0100

    CHANGELOG.md: Set release date for 4.19
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>

commit 285937175be2509bc5b4c2eff2ec0b2fa758ff69
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:00:47 2024 +0100

    Re-run ./autogens.h for 4.20
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit f66e523189f1130a2fd3b77a9f0c8ac152355ac8
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:42:58 2024 +0100

    Set version to 4.20; 4.19 has branched
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit b181bb9fdbae9cdae96f979cfcc30c6195071417
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:40:44 2024 +0100

    Revert "Config.mk pin QEMU_UPSTREAM_REVISION (prep for Xen 4.19 RC1)"
    
    The branch is unstable again.
    
    This reverts commit 7584e39986ef2cb4816892ffaefb26f4ad063468.
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 01:14:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 01:14:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760809.1170739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUcCk-0000YS-78; Fri, 19 Jul 2024 01:14:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760809.1170739; Fri, 19 Jul 2024 01: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 1sUcCk-0000YL-4c; Fri, 19 Jul 2024 01:14:38 +0000
Received: by outflank-mailman (input) for mailman id 760809;
 Fri, 19 Jul 2024 01:14:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUcCj-0000Y8-7w; Fri, 19 Jul 2024 01:14:37 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUcCj-0002C9-46; Fri, 19 Jul 2024 01:14:37 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUcCi-0001Y0-Qv; Fri, 19 Jul 2024 01:14:36 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUcCi-00072P-QS; Fri, 19 Jul 2024 01:14: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=WsN1ze13IlngmC1a0UeOdtsVHEYRETYtsz4i4mfhr0I=; b=MCBm9g0i91nbiSWchtE+CRA64q
	J10pFLtqse+eef4O7ZLCVNWweqFFa/FRwW6wMB2nZ5Ufg1+7dWntzBShpr555si4W2pVJzHxUOGFA
	TnfOF64dhxN5vqLg54PRWUOOjbsc3p3J60A8qSfytHmqgf9kF+3qiOExXbi/VPaZwncQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186877-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-6.1 test] 186877: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-6.1:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=9b3f9a5b12dc96965b2fcc9d7d8342f1b63e29c4
X-Osstest-Versions-That:
    linux=cac15753b8ceb505a3c646f83a86dccbab9e33a3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Jul 2024 01:14:36 +0000

flight 186877 linux-6.1 real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186877/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186804
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186804
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186804
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186804
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186804
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186804
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                9b3f9a5b12dc96965b2fcc9d7d8342f1b63e29c4
baseline version:
 linux                cac15753b8ceb505a3c646f83a86dccbab9e33a3

Last test of basis   186804  2024-07-15 07:48:10 Z    3 days
Testing same since   186877  2024-07-18 11:42:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alan Stern <stern@rowland.harvard.edu>
  Aleksander Jan Bajkowski <olek2@wp.pl>
  Aleksandr Mishin <amishin@t-argos.ru>
  Alexander Gordeev <agordeev@linux.ibm.com>
  Alexandre Chartre <alexandre.chartre@oracle.com>
  Alexei Starovoitov <ast@kernel.org>
  Allen Pais <apais@linux.microsoft.com>
  Andi Shyti <andi.shyti@kernel.org>
  Andrew Morton <akpm@linux-foundation.org>
  Andrii Nakryiko <andrii@kernel.org>
  Armin Wolf <W_Armin@gmx.de>
  Arnd Bergmann <arnd@arndb.de>
  Audra Mitchell <audra@redhat.com>
  Baokun Li <libaokun1@huawei.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bjørn Mork <bjorn@mork.no>
  Borislav Petkov (AMD) <bp@alien8.de>
  Brian Foster <bfoster@redhat.com>
  Brian Gerst <brgerst@gmail.com>
  Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
  Chen Ni <nichen@iscas.ac.cn>
  Chengen Du <chengen.du@canonical.com>
  Christian Brauner <brauner@kernel.org>
  Christian Kujau <lists@nerdbynature.de>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniele Palmas <dnlplm@gmail.com>
  David S. Miller <davem@davemloft.net>
  David Vernet <void@manifault.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Smirnov <d.smirnov@inbox.lv>
  Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
  Eduard Zingerman <eddyz87@gmail.com>
  Ekansh Gupta <quic_ekangupt@quicinc.com>
  Eric Dumazet <edumazet@google.com>
  Florian Fainelli <florian.fainelli@broadcom.com>
  Geetha sowjanya <gakula@marvell.com>
  Geliang Tang <tanggeliang@kylinos.cn>
  Gerald Yang <gerald.yang@canonical.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Hans de Goede <hdegoede@redhat.com>
  He Zhe <zhe.he@windriver.com>
  Heiko Carstens <hca@linux.ibm.com>
  Helge Deller <deller@gmx.de>
  Helge Deller <deller@kernel.org>
  Hobin Woo <hobin.woo@samsung.com>
  Hou Tao <houtao1@huawei.com>
  Hugh Dickins <hughd@google.com>
  Ian Kent <ikent@redhat.com>
  Ilya Dryomov <idryomov@gmail.com>
  Ingo Molnar <mingo@kernel.org>
  Jakub Kicinski <kuba@kernel.org>
  Jason A. Donenfeld <Jason@zx2c4.com>
  Jeff Layton <jlayton@kernel.org>
  Jia Zhu <zhujia.zj@bytedance.com>
  Jian Hui Lee <jianhui.lee@canonical.com>
  Jim Mattson <jmattson@google.com>
  Jingbo Xu <jefflexu@linux.alibaba.com>
  jinxiaobo <jinxiaobo@uniontech.com>
  Johan Hovold <johan@kernel.org>
  Johannes Weiner <hannes@cmpxchg.org>
  John Stultz <jstultz@google.com>
  Jon Hunter <jonathanh@nvidia.com>
  Josh Don <joshdon@google.com>
  Joy Chakraborty <joychakr@google.com>
  Julian Sikorski <belegdol@gmail.com>
  Kees Cook <keescook@chromium.org>
  Kelsey Steele <kelseysteele@linux.microsoft.com>
  Kiran Kumar K <kirankumark@marvell.com>
  Kuan-Wei Chiu <visitorckw@gmail.com>
  Kuniyuki Iwashima <kuniyu@amazon.com>
  Lee Jones <lee@kernel.org>
  Lex Siegel <usiegl00@gmail.com>
  linke li <lilinke99@qq.com>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Mank Wang <mank.wang@netprisma.us>
  Mark Brown <broonie@kernel.org>
  Martin KaFai Lau <martin.lau@kernel.org>
  Masahiro Yamada <masahiroy@kernel.org>
  Mathias Nyman <mathias.nyman@linux.intel.com>
  Maxim Mikityanskiy <maxim@isovalent.com>
  Michal Kubiak <michal.kubiak@intel.com>
  Michal Mazur <mmazur2@marvell.com>
  Michał Kopeć <michal.kopec@3mdeb.com>
  Mohammad Shehar Yaar Tausif <sheharyaar48@gmail.com>
  Namjae Jeon <linkinjeon@kernel.org>
  Nathan Chancellor <nathan@kernel.org>
  Naveen Mamindlapalli <naveenm@marvell.com>
  Nazar Bilinskyi <nbilinskyi@gmail.com>
  Neal Cardwell <ncardwell@google.com>
  Nithin Dabilpuram <ndabilpuram@marvell.com>
  Oleksij Rempel <o.rempel@pengutronix.de>
  Paolo Abeni <pabeni@redhat.com>
  Pavel Machek (CIP) <pavel@denx.de>
  Peter Zijlstra (Intel) <peterz@infradead.org>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Remi Pommarel <repk@triplefau.lt>
  Richard Fitzgerald <rf@opensource.cirrus.com>
  Roman Gushchin <roman.gushchin@linux.dev>
  Ron Economos <re@w6rz.net>
  Ronald Wahl <ronald.wahl@raritan.com>
  Ryusuke Konishi <konishi.ryusuke@gmail.com>
  Salvatore Bonaccorso <carnil@debian.org>
  Sasha Levin <sashal@kernel.org>
  Satheesh Paul <psatheesh@marvell.com>
  SeongJae Park <sj@kernel.org>
  Shuah Khan <skhan@linuxfoundation.org>
  Slark Xiao <slark_xiao@163.com>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Srujana Challa <schalla@marvell.com>
  Steve French <stfrench@microsoft.com>
  Sven Schnelle <svens@linux.ibm.com>
  Takashi Iwai <tiwai@suse.de>
  Thomas Weißschuh <linux@weissschuh.net>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Vanillan Wang <vanillanwang@163.com>
  Vlastimil Babka <vbabka@suse.cz>
  Waiman Long <longman@redhat.com>
  WangYuli <wangyuli@uniontech.com>
  Wolfram Sang <wsa+renesas@sang-engineering.com>
  Wolfram Sang <wsa@kernel.org>
  Yafang Shao <laoar.shao@gmail.com>
  Yann Sionneau <ysionneau@kalrayinc.com>
  Yonghong Song <yhs@fb.com>
  Yoonho Shin <yoonho.shin@samsung.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   cac15753b8ce..9b3f9a5b12dc  9b3f9a5b12dc96965b2fcc9d7d8342f1b63e29c4 -> tested/linux-6.1


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 01:42:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 01:42:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760820.1170750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUcds-0004D0-GU; Fri, 19 Jul 2024 01:42:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760820.1170750; Fri, 19 Jul 2024 01:42: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 1sUcds-0004Ct-D5; Fri, 19 Jul 2024 01:42:40 +0000
Received: by outflank-mailman (input) for mailman id 760820;
 Fri, 19 Jul 2024 01:42:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUcdr-0004Ci-LU; Fri, 19 Jul 2024 01:42:39 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUcdr-0002iJ-Cy; Fri, 19 Jul 2024 01:42:39 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUcdr-0002DS-1l; Fri, 19 Jul 2024 01:42:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUcdr-0007C9-0y; Fri, 19 Jul 2024 01:42:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=T2ZryZ0FB0QRQipw89ZmPXrk1tz8d4O4Y+ZXQZ1hff4=; b=wHTrldJpg0JTaY4ZLVbTOnShEn
	2yTg+2WmEKRNsv+ccKRUJ6JBdP6cRecTxpGrTJiyqLGIsAAP6zVXUNrjKqLtXPJ0V4fThc2Wy3OxZ
	mnuJ1ZyDHJalh/7UIDo+o+cNowfDgmHnITHRhZcdBujGiDQ5KNW4asHym1VyayTdbV1s=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186885-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186885: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-xl-qemuu-debianhvm-amd64:xen-install:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:xen-install:fail:regression
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:xen-install:fail:regression
    xen-unstable-smoke:test-armhf-armhf-xl:xen-boot:fail:regression
X-Osstest-Versions-This:
    xen=a99f25f7ac60544e9af4b3b516d7566ba8841cc4
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Jul 2024 01:42:39 +0000

flight 186885 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186885/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  7 xen-install fail REGR. vs. 186826
 test-amd64-amd64-libvirt      7 xen-install              fail REGR. vs. 186826
 test-arm64-arm64-xl-xsm       7 xen-install              fail REGR. vs. 186826
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 186826

version targeted for testing:
 xen                  a99f25f7ac60544e9af4b3b516d7566ba8841cc4
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186826  2024-07-16 19:00:25 Z    2 days
Failing since        186880  2024-07-18 15:00:30 Z    0 days    3 attempts
Testing same since   186883  2024-07-18 21:11:32 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Julien Grall <julien@xen.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-amd64-libvirt                                     fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit a99f25f7ac60544e9af4b3b516d7566ba8841cc4
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:51:02 2024 +0100

    CHANGELOG.md: Start new 4.20.0 section
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit 974ad0926e4616444dc0c1d83ba86bd6eb8dd52d
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:48:06 2024 +0100

    CHANGELOG.md: Set release date for 4.19
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>

commit 285937175be2509bc5b4c2eff2ec0b2fa758ff69
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:00:47 2024 +0100

    Re-run ./autogens.h for 4.20
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit f66e523189f1130a2fd3b77a9f0c8ac152355ac8
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:42:58 2024 +0100

    Set version to 4.20; 4.19 has branched
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit b181bb9fdbae9cdae96f979cfcc30c6195071417
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:40:44 2024 +0100

    Revert "Config.mk pin QEMU_UPSTREAM_REVISION (prep for Xen 4.19 RC1)"
    
    The branch is unstable again.
    
    This reverts commit 7584e39986ef2cb4816892ffaefb26f4ad063468.
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 02:34:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 02:34:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760835.1170782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUdRo-00027c-FK; Fri, 19 Jul 2024 02:34:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760835.1170782; Fri, 19 Jul 2024 02: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 1sUdRo-00027V-CS; Fri, 19 Jul 2024 02:34:16 +0000
Received: by outflank-mailman (input) for mailman id 760835;
 Fri, 19 Jul 2024 02: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=a+sj=OT=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sUdRn-0001tG-CY
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 02:34:15 +0000
Received: from fhigh2-smtp.messagingengine.com
 (fhigh2-smtp.messagingengine.com [103.168.172.153])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 61b5b205-4577-11ef-bbfd-fd08da9f4363;
 Fri, 19 Jul 2024 04:34:12 +0200 (CEST)
Received: from compute7.internal (compute7.nyi.internal [10.202.2.48])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 3DBA5114026D;
 Thu, 18 Jul 2024 22:34:11 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute7.internal (MEProxy); Thu, 18 Jul 2024 22:34:11 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 18 Jul 2024 22:34:08 -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: 61b5b205-4577-11ef-bbfd-fd08da9f4363
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=1721356451; x=1721442851; bh=295JPg7IQt
	Dkp5dvhP0fy0GSyAQJ2jLNGYtHNK1RIsM=; b=BHSpjF7xqAYkGMUrdvS1RJ+fSn
	Kv0Io3ezVIeVXBLyib8vOeRjymWnJSlY8ou1xJy/ihwd4limbIseforhDNCRxYAM
	EKWYYndOGzT9weVVoIpzE7q9584DA9wewO2JSaOPUYLjdx4sG49nSetTf+3FbMSh
	DcpBTXkhLj67HQF3kDGpKMOvoHOhXklaXRdJBMEMNdsvWhghkKXai7rKw591PKm9
	4ixIbOBMcg74iA7Tb81B6FdllRdfx/S6/hTXlt2j3D80rEYPwzyAQxMlOwX6Nhcb
	6x5KdjOK74amBrka28tF1dQDeMStc6MUnTQBxrQEafOg7PSRa4cvRXbmB+EA==
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-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1721356451; x=
	1721442851; bh=295JPg7IQtDkp5dvhP0fy0GSyAQJ2jLNGYtHNK1RIsM=; b=m
	hCStaCj27+X9rrmQlGc8Yiuanf3Zl1mSJCUjxXqFVacCW0fmrPH2OLEIlGaCxp5o
	rMvBMK9X1omCMbFCiZMiU4BpHpT3IUuzi5HV48gGrEvnCo5CaBe4QFfgJYy7UzDF
	FB096Hu48u1NjiaT27QaQRrTlzHXT4zQrGz6Sa0j1tWcULJgZApJ7FGzW9Ho8GEV
	1jPYayAb5YIIG76+trBdgoQtSKP+XyAO48R5Maz4MWiEzl0i4jbZ6/zg/dSoElyQ
	rVl9HYEKxl5IYxEZlo93Aj5o4ltCFWkgVKzOjag9k6+9mHfWBQDA2tkdKk89hbmy
	a75AYiIareqke/JsImqAg==
X-ME-Sender: <xms:otCZZmMbqy5HhPSKYXNtnK9f21rc2pezizsKa07HYla0CxqUj1K9Bw>
    <xme:otCZZk-3r_qQzBN_5I_PRBDz7-YN19r7M3pxcoJdyJYY6Gx8GKNBXCZHXFvSwJe-S
    USqBrcxj4ILyg>
X-ME-Received: <xmr:otCZZtRethGt4jJvhfFvHrEl8gj7SFdpoEAjBx-6RULGqNYlS4cmXH7Qd-M0iZZWiioE-7WZA9UsEgjZpcAAOONbrVFvc_3xKl2tY8UuGB3ANUdZzLM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrhedtgdeitdcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeu
    udehgfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluh
    hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:otCZZmtELOwvzBDSZ-tWTilnM_bcIotXSFutCrUyHzTW99aaLuJWyw>
    <xmx:otCZZucHOW27TpT0Wq6gz4Y449DS6hru5GNjLUUWpjfddh8S6f_4vw>
    <xmx:otCZZq2DPNpDWDWgViliBebnq2Koln61vS5OJbUxaE7L2muT1u-MUQ>
    <xmx:otCZZi8QKyZknDi6GL4_C6c3bBGgOp_RBQb6qVCmig9pUKaxz1eblA>
    <xmx:o9CZZrF5D4Ut0aJe9dDPX0EHT2poXfiJ5cSj1HzgLBWdSvGozfBKzhbB>
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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 1/3] xen/list: add LIST_HEAD_RO_AFTER_INIT
Date: Fri, 19 Jul 2024 04:33:36 +0200
Message-ID: <1994087de901c7520db559724ae95b2b0e1b1f5d.1721356393.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
References: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Similar to LIST_HEAD_READ_MOSTLY.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
New in v5
---
 xen/include/xen/list.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/include/xen/list.h b/xen/include/xen/list.h
index 6506ac40893b..62169f46742e 100644
--- a/xen/include/xen/list.h
+++ b/xen/include/xen/list.h
@@ -42,6 +42,9 @@ struct list_head {
 #define LIST_HEAD_READ_MOSTLY(name) \
     struct list_head __read_mostly name = LIST_HEAD_INIT(name)
 
+#define LIST_HEAD_RO_AFTER_INIT(name) \
+    struct list_head __ro_after_init name = LIST_HEAD_INIT(name)
+
 static inline void INIT_LIST_HEAD(struct list_head *list)
 {
     list->next = list;
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 02:34:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 02:34:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760837.1170802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUdRs-0002bQ-31; Fri, 19 Jul 2024 02:34:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760837.1170802; Fri, 19 Jul 2024 02:34: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 1sUdRs-0002bJ-0A; Fri, 19 Jul 2024 02:34:20 +0000
Received: by outflank-mailman (input) for mailman id 760837;
 Fri, 19 Jul 2024 02: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=a+sj=OT=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sUdRr-0001tA-4R
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 02:34:19 +0000
Received: from fout6-smtp.messagingengine.com (fout6-smtp.messagingengine.com
 [103.168.172.149]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 64e0b003-4577-11ef-8776-851b0ebba9a2;
 Fri, 19 Jul 2024 04:34:17 +0200 (CEST)
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44])
 by mailfout.nyi.internal (Postfix) with ESMTP id 96E87138027B;
 Thu, 18 Jul 2024 22:34:16 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute4.internal (MEProxy); Thu, 18 Jul 2024 22:34:16 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 18 Jul 2024 22:34: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: 64e0b003-4577-11ef-8776-851b0ebba9a2
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=1721356456; x=1721442856; bh=3q36D4bJYb
	KeTNzDrlCHr7vVdpQaHyX3JUKiZcT8bno=; b=uC3Kdt+Eja/wVLXjhnTkweQaCU
	bZFHxr1CGB2XbOIpe2jw1BoyqPaQnriPt4SQdNmIFsgTUe30oC3ovt4oIAnCprxo
	uYEIxmLlyzuVUQXOut1b64Zmn+CCfacUqkCoQrcSBdls7qmMoOByp9iQ6Yi4TjLI
	ew5XlXFlIufaErP3op/ChqcI52r1sXxPJGvz/JtcBx0ZQl0oBtKFozTgNG3dCwRt
	h5+QCUM7CCClGfzPjdLewkEiHsdaPxdQBmkaPdvRe7v7UEz2/KKvWaaKU/f27Esp
	kGisrdCZCkR4WW+ZoAplb1Q3LxHXEZHKDoyKi0tTCrQy8nEWAz6wxR6nCo/w==
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-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1721356456; x=
	1721442856; bh=3q36D4bJYbKeTNzDrlCHr7vVdpQaHyX3JUKiZcT8bno=; b=T
	4tLFTbsfKqYi0jIQcTOCN8TgcMIfKS2F7PkoAhtHDueGpj8Wtvgkhk2tsNXwD9tt
	FetKe1A8p5H3YBmIvlM/ZnEtjYfvr5d6nuJ762AxlPVdj9duc9Mi2BNJ8ggvdDS8
	Lja0StmNqj5HLUBxwE88Ccs4XBlBHbtUEKVQbhf22rr740uOZAgkXpx4WRcRsgXl
	GadYhNVyKOUuwM2/knfm0fHopF40s/C6LK0Opz4zWJJ9WDhDTLkYmrD0vCdGBZYL
	oTM2wDckr93gIeSkSdKpauTJB3blw8KTg4QsKrz/srH6PZqSm1SH/zMqvJda/9Y3
	XfLzDmcLNbO5LSFk8MVaw==
X-ME-Sender: <xms:p9CZZq-PaZ4oWRFh_sYzqZIZDxkfzlMyf9b84bT5LVjotlCQeyhxTg>
    <xme:p9CZZquDU8mGJTbCBxPGuAXb0zxAbnERhY-YhsMN1yQDtwpB4qqjI3uwFJBXlpHGq
    2W07hJCkkd86g>
X-ME-Received: <xmr:p9CZZgAK32MllKwtaI1VJEWteFoEYOQuCxjMT3mnuY70oGohXF3de2-bQANPsCM_tbbdTtTf-XJKif-KFvLQThJ0jqCh1qVBpc5Pt4nc0aiAzhAfKXs>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrhedtgdeiudcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeu
    udehgfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluh
    hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:p9CZZieu1mWb49xw-4hDo-HH0-0fFGoEQTvF-z3nQWsZKb1HQ9L_rA>
    <xmx:p9CZZvP0FtciuIrw9ut43lag1h2jeZgzpQqhqKQyG3-IE3X9H2qdfg>
    <xmx:p9CZZsk5wz9P7ydahk1OyPK4AhDgwp0sovkGUhMelmjd-6q7EytSgg>
    <xmx:p9CZZhvC85E5GeLp5OUB-R1ujYmXhy4KJ9Ud6isg8j_IrgHP9la0Gg>
    <xmx:qNCZZq12toVgo0Sybs1hfoU9yJMVKfm5KgSkl9EikT35Su0APd3Z8ydZ>
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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 3/3] drivers/char: Use sub-page ro API to make just xhci dbc cap RO
Date: Fri, 19 Jul 2024 04:33:38 +0200
Message-ID: <62267309025cd78dd4c901d6c1d0f9880cdd0c73.1721356393.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
References: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Not the whole page, which may contain other registers too. The XHCI
specification describes DbC as designed to be controlled by a different
driver, but does not mandate placing registers on a separate page. In fact
on Tiger Lake and newer (at least), this page do contain other registers
that Linux tries to use. And with share=yes, a domU would use them too.
Without this patch, PV dom0 would fail to initialize the controller,
while HVM would be killed on EPT violation.

With `share=yes`, this patch gives domU more access to the emulator
(although a HVM with any emulated device already has plenty of it). This
configuration is already documented as unsafe with untrusted guests and
not security supported.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4:
- restore mmio_ro_ranges in the fallback case
- set XHCI_SHARE_NONE in the fallback case
Changes in v3:
- indentation fix
- remove stale comment
- fallback to pci_ro_device() if subpage_mmio_ro_add() fails
- extend commit message
Changes in v2:
 - adjust for simplified subpage_mmio_ro_add() API
---
 xen/drivers/char/xhci-dbc.c | 36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/xen/drivers/char/xhci-dbc.c b/xen/drivers/char/xhci-dbc.c
index 8e2037f1a5f7..c45e4b6825cc 100644
--- a/xen/drivers/char/xhci-dbc.c
+++ b/xen/drivers/char/xhci-dbc.c
@@ -1216,20 +1216,28 @@ static void __init cf_check dbc_uart_init_postirq(struct serial_port *port)
         break;
     }
 #ifdef CONFIG_X86
-    /*
-     * This marks the whole page as R/O, which may include other registers
-     * unrelated to DbC. Xen needs only DbC area protected, but it seems
-     * Linux's XHCI driver (as of 5.18) works without writting to the whole
-     * page, so keep it simple.
-     */
-    if ( rangeset_add_range(mmio_ro_ranges,
-                PFN_DOWN((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
-                         uart->dbc.xhc_dbc_offset),
-                PFN_UP((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
-                       uart->dbc.xhc_dbc_offset +
-                sizeof(*uart->dbc.dbc_reg)) - 1) )
-        printk(XENLOG_INFO
-               "Error while adding MMIO range of device to mmio_ro_ranges\n");
+    if ( subpage_mmio_ro_add(
+             (uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
+              uart->dbc.xhc_dbc_offset,
+             sizeof(*uart->dbc.dbc_reg)) )
+    {
+        printk(XENLOG_WARNING
+               "Error while marking MMIO range of XHCI console as R/O, "
+               "making the whole device R/O (share=no)\n");
+        uart->dbc.share = XHCI_SHARE_NONE;
+        if ( pci_ro_device(0, uart->dbc.sbdf.bus, uart->dbc.sbdf.devfn) )
+            printk(XENLOG_WARNING
+                   "Failed to mark read-only %pp used for XHCI console\n",
+                   &uart->dbc.sbdf);
+        if ( rangeset_add_range(mmio_ro_ranges,
+                 PFN_DOWN((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
+                          uart->dbc.xhc_dbc_offset),
+                 PFN_UP((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
+                        uart->dbc.xhc_dbc_offset +
+                        sizeof(*uart->dbc.dbc_reg)) - 1) )
+            printk(XENLOG_INFO
+                   "Error while adding MMIO range of device to mmio_ro_ranges\n");
+    }
 #endif
 }
 
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 02:34:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 02:34:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760836.1170792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUdRq-0002M7-Of; Fri, 19 Jul 2024 02:34:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760836.1170792; Fri, 19 Jul 2024 02:34:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUdRq-0002M0-Jy; Fri, 19 Jul 2024 02:34:18 +0000
Received: by outflank-mailman (input) for mailman id 760836;
 Fri, 19 Jul 2024 02:34: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=a+sj=OT=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sUdRo-0001tA-L8
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 02:34:16 +0000
Received: from fhigh2-smtp.messagingengine.com
 (fhigh2-smtp.messagingengine.com [103.168.172.153])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6357420a-4577-11ef-8776-851b0ebba9a2;
 Fri, 19 Jul 2024 04:34:14 +0200 (CEST)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 0523F1140269;
 Thu, 18 Jul 2024 22:34:14 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute2.internal (MEProxy); Thu, 18 Jul 2024 22:34:14 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 18 Jul 2024 22:34: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: 6357420a-4577-11ef-8776-851b0ebba9a2
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=1721356453; x=1721442853; bh=Qr2PBy1sOj
	h/isDKiUX+v/WZoGLV0I6u8v0ak0EPnUE=; b=lEFHFK6sCxcsdWfn3mLWmZxmrv
	3Tsemqjie2DK1j0wmWSIWvPdMRiRDGFCwXTjHvOBSTFi/mYzlevKyPZ/sSjFKe6W
	YX1KwCruQ2Q5gdr0f5FitI3rzNVPX3Wa3d0TJbSM0v5p2hD8Ou6mJYXvpjA0Ap5q
	At/31ba+FOZ6+cYkWBJAxjAIkDmZTDg6rFzsp6Y+V4W+OMLNp/QumC2BtRjJmiva
	s8hrPBkBvKVbPJ3YRLj1f0gLCX3ozk2jeHX9wSBAnijSFxpXsJwJ1Xt4UUuPDQVG
	yqm66p8VrSKwYEyD08eqIpkOxidT45QnHpFzrLO4+kl0qKbAprFOMh2MPCWg==
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-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1721356453; x=
	1721442853; bh=Qr2PBy1sOjh/isDKiUX+v/WZoGLV0I6u8v0ak0EPnUE=; b=X
	KSSb0tY5X6OiiwvTvObyVSvQtprgOhK3eqPQp1GFhkxD3gtitjrFFKg3lOrxfVKA
	TLEljX3Aqj56HxKWGD4Gk4KSkJq3xcJhtWIAkfjaS7cnZGc4ygBS1x2HpvIlXk4K
	i8dNCjzQHiPSq580aN6wQ4X6BMxhJ9vW2nEJrKDaBIQGE9L6zdy7OxoNC6sg0SSn
	cG7ra+jJcka53U/rNBKLl7edR5Ea+3H+ndCO7vu8/q4MusSRSocwNNgUddZ4Sd9y
	Bs12jphjGOZvOX/ravfHzxd0F3ssfC85Vpw4h+eFrhRHbJYuakJ5bDGQmy6/TKM1
	KFg0G9XsYdyOOirneJFMg==
X-ME-Sender: <xms:pNCZZi-bfYEJJFhI956ayNraw0M24pbEj1J3iJILlWS5xNute7_7lQ>
    <xme:pNCZZitpMRXcFEsTTH0anUyelnJRObmnrSkfxW62D6RZ8V6rngkD_KgKs7H8nPQVA
    RfYwW8ZCF-Ofg>
X-ME-Received: <xmr:pNCZZoDBip-3RYXNTC0BBk3pyxXW9g1egXHUjcPeVMvgkqpC3QZpi82pQjJSxfCVCqckiW8cDNAwG6t3i8H35obY1bPOoeKT_EuBNNRnqZ8a-_E00Pw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrhedtgdeiudcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeu
    udehgfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluh
    hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:pNCZZqfP0D4xICjLof2lvqodFsI6-5eanmu4EQHPmmfsIU6_qLYHqA>
    <xmx:pNCZZnM4sNXlU_zghb_bizM0gH4GHLJ3RQ55ax7b2pgt9gkM6rs8uw>
    <xmx:pNCZZkn3qZNMI2fYA1MJAuTu4g-5u_cGsqiFJ2_6ifUVWSf-OFlScQ>
    <xmx:pNCZZptxc0uQ3ToCK1ZoRxwlNBC3NtpP4Ug2a9nUSsyACds5URkF2A>
    <xmx:pdCZZsp4yXJIzsulgXfHjVtl7Uqf7X6S6LbP4TH5VfqJEDUSVbl71XMh>
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>
Subject: [PATCH v5 2/3] x86/mm: add API for marking only part of a MMIO page read only
Date: Fri, 19 Jul 2024 04:33:37 +0200
Message-ID: <f0b36fb78b87d2f06c0d33da28ba16cd1d2fa8b9.1721356393.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
References: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In some cases, only few registers on a page needs to be write-protected.
Examples include USB3 console (64 bytes worth of registers) or MSI-X's
PBA table (which doesn't need to span the whole table either), although
in the latter case the spec forbids placing other registers on the same
page. Current API allows only marking whole pages pages read-only,
which sometimes may cover other registers that guest may need to
write into.

Currently, when a guest tries to write to an MMIO page on the
mmio_ro_ranges, it's either immediately crashed on EPT violation - if
that's HVM, or if PV, it gets #PF. In case of Linux PV, if access was
from userspace (like, /dev/mem), it will try to fixup by updating page
tables (that Xen again will force to read-only) and will hit that #PF
again (looping endlessly). Both behaviors are undesirable if guest could
actually be allowed the write.

Introduce an API that allows marking part of a page read-only. Since
sub-page permissions are not a thing in page tables (they are in EPT,
but not granular enough), do this via emulation (or simply page fault
handler for PV) that handles writes that are supposed to be allowed.
The new subpage_mmio_ro_add() takes a start physical address and the
region size in bytes. Both start address and the size need to be 8-byte
aligned, as a practical simplification (allows using smaller bitmask,
and a smaller granularity isn't really necessary right now).
It will internally add relevant pages to mmio_ro_ranges, but if either
start or end address is not page-aligned, it additionally adds that page
to a list for sub-page R/O handling. The list holds a bitmask which
qwords are supposed to be read-only and an address where page is mapped
for write emulation - this mapping is done only on the first access. A
plain list is used instead of more efficient structure, because there
isn't supposed to be many pages needing this precise r/o control.

The mechanism this API is plugged in is slightly different for PV and
HVM. For both paths, it's plugged into mmio_ro_emulated_write(). For PV,
it's already called for #PF on read-only MMIO page. For HVM however, EPT
violation on p2m_mmio_direct page results in a direct domain_crash() for
non hardware domains.  To reach mmio_ro_emulated_write(), change how
write violations for p2m_mmio_direct are handled - specifically, check
if they relate to such partially protected page via
subpage_mmio_write_accept() and if so, call hvm_emulate_one_mmio() for
them too. This decodes what guest is trying write and finally calls
mmio_ro_emulated_write(). The EPT write violation is detected as
npfec.write_access and npfec.present both being true (similar to other
places), which may cover some other (future?) cases - if that happens,
emulator might get involved unnecessarily, but since it's limited to
pages marked with subpage_mmio_ro_add() only, the impact is minimal.
Both of those paths need an MFN to which guest tried to write (to check
which part of the page is supposed to be read-only, and where
the page is mapped for writes). This information currently isn't
available directly in mmio_ro_emulated_write(), but in both cases it is
already resolved somewhere higher in the call tree. Pass it down to
mmio_ro_emulated_write() via new mmio_ro_emulate_ctxt.mfn field.

This may give a bit more access to the instruction emulator to HVM
guests (the change in hvm_hap_nested_page_fault()), but only for pages
explicitly marked with subpage_mmio_ro_add() - so, if the guest has a
passed through a device partially used by Xen.
As of the next patch, it applies only configuration explicitly
documented as not security supported.

The subpage_mmio_ro_add() function cannot be called with overlapping
ranges, and on pages already added to mmio_ro_ranges separately.
Successful calls would result in correct handling, but error paths may
result in incorrect state (like pages removed from mmio_ro_ranges too
early). Debug build has asserts for relevant cases.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Shadow mode is not tested, but I don't expect it to work differently than
HAP in areas related to this patch.

Changes in v5:
- use subpage_mmio_find_page helper, simplifying several functions
- use LIST_HEAD_RO_AFTER_INIT
- don't use subpage_ro_lock in __init
- drop #ifdef in mm.h
- return error on unaligned size in subpage_mmio_ro_add() instead of
  extending the size (in release build)
Changes in v4:
- rename SUBPAGE_MMIO_RO_ALIGN to MMIO_RO_SUBPAGE_GRAN
- guard subpage_mmio_write_accept with CONFIG_HVM, as it's used only
  there
- rename ro_qwords to ro_elems
- use unsigned arguments for subpage_mmio_ro_remove_page()
- use volatile for __iomem
- do not set mmio_ro_ctxt.mfn for mmcfg case
- comment where fields of mmio_ro_ctxt are used
- use bool for result of __test_and_set_bit
- do not open-code mfn_to_maddr()
- remove leftover RCU
- mention hvm_hap_nested_page_fault() explicitly in the commit message
Changes in v3:
- use unsigned int for loop iterators
- use __set_bit/__clear_bit when under spinlock
- avoid ioremap() under spinlock
- do not cast away const
- handle unaligned parameters in release build
- comment fixes
- remove RCU - the add functions are __init and actual usage is only
  much later after domains are running
- add checks overlapping ranges in debug build and document the
  limitations
- change subpage_mmio_ro_add() so the error path doesn't potentially
  remove pages from mmio_ro_ranges
- move printing message to avoid one goto in
  subpage_mmio_write_emulate()
Changes in v2:
- Simplify subpage_mmio_ro_add() parameters
- add to mmio_ro_ranges from within subpage_mmio_ro_add()
- use ioremap() instead of caller-provided fixmap
- use 8-bytes granularity (largest supported single write) and a bitmap
  instead of a rangeset
- clarify commit message
- change how it's plugged in for HVM domain, to not change the behavior for
  read-only parts (keep it hitting domain_crash(), instead of ignoring
  write)
- remove unused subpage_mmio_ro_remove()
---
 xen/arch/x86/hvm/emulate.c      |   2 +-
 xen/arch/x86/hvm/hvm.c          |   4 +-
 xen/arch/x86/include/asm/mm.h   |  23 +++-
 xen/arch/x86/mm.c               | 262 +++++++++++++++++++++++++++++++++-
 xen/arch/x86/pv/ro-page-fault.c |   6 +-
 5 files changed, 292 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 02e378365b40..7253a87032dd 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2734,7 +2734,7 @@ int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
         .write      = mmio_ro_emulated_write,
         .validate   = hvmemul_validate,
     };
-    struct mmio_ro_emulate_ctxt mmio_ro_ctxt = { .cr2 = 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;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7f4b627b1f5f..a108870558bf 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2016,8 +2016,8 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
         goto out_put_gfn;
     }
 
-    if ( (p2mt == p2m_mmio_direct) && is_hardware_domain(currd) &&
-         npfec.write_access && npfec.present &&
+    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;
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 98b66edaca5e..a457f0d2b1b3 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -522,9 +522,32 @@ extern struct rangeset *mmio_ro_ranges;
 void memguard_guard_stack(void *p);
 void memguard_unguard_stack(void *p);
 
+/*
+ * Add more precise r/o marking for a MMIO page. Range specified here
+ * will still be R/O, but the rest of the page (not marked as R/O via another
+ * call) will have writes passed through.
+ * The start address and the size must be aligned to MMIO_RO_SUBPAGE_GRAN.
+ *
+ * This API cannot be used for overlapping ranges, nor for pages already added
+ * to mmio_ro_ranges separately.
+ *
+ * Since there is currently no subpage_mmio_ro_remove(), relevant device should
+ * not be hot-unplugged.
+ *
+ * Return values:
+ *  - negative: error
+ *  - 0: success
+ */
+#define MMIO_RO_SUBPAGE_GRAN 8
+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(
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 648d6dd475ba..7f0ac537e86c 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -150,6 +150,17 @@ bool __read_mostly machine_to_phys_mapping_valid;
 
 struct rangeset *__read_mostly mmio_ro_ranges;
 
+/* 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);
+
 static uint32_t base_disallow_mask;
 /* Global bit is allowed to be set on L1 PTEs. Intended for user mappings. */
 #define L1_DISALLOW_MASK ((base_disallow_mask | _PAGE_GNTTAB) & ~_PAGE_GLOBAL)
@@ -4910,6 +4921,254 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+static void __iomem *subpage_mmio_find_page(mfn_t mfn)
+{
+    struct subpage_ro_range *entry;
+
+    list_for_each_entry(entry, &subpage_ro_ranges, list)
+        if ( mfn_eq(entry->mfn, mfn) )
+            return entry;
+
+    return NULL;
+}
+
+/*
+ * Mark part of the page as R/O.
+ * Returns:
+ * - 0 on success - first range in the page
+ * - 1 on success - subsequent range in the page
+ * - <0 on error
+ */
+static int __init subpage_mmio_ro_add_page(
+    mfn_t mfn,
+    unsigned int offset_s,
+    unsigned int offset_e)
+{
+    struct subpage_ro_range *entry = NULL, *iter;
+    unsigned int i;
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+    {
+        /* iter == NULL marks it was a newly allocated entry */
+        iter = NULL;
+        entry = xzalloc(struct subpage_ro_range);
+        if ( !entry )
+            return -ENOMEM;
+        entry->mfn = mfn;
+    }
+
+    for ( i = offset_s; i <= offset_e; i += MMIO_RO_SUBPAGE_GRAN )
+    {
+        bool oldbit = __test_and_set_bit(i / MMIO_RO_SUBPAGE_GRAN,
+                                        entry->ro_elems);
+        ASSERT(!oldbit);
+    }
+
+    if ( !iter )
+        list_add(&entry->list, &subpage_ro_ranges);
+
+    return iter ? 1 : 0;
+}
+
+static void __init subpage_mmio_ro_remove_page(
+    mfn_t mfn,
+    unsigned int offset_s,
+    unsigned int offset_e)
+{
+    struct subpage_ro_range *entry = NULL;
+    unsigned int i;
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+        return;
+
+    for ( i = offset_s; i <= offset_e; i += MMIO_RO_SUBPAGE_GRAN )
+        __clear_bit(i / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems);
+
+    if ( !bitmap_empty(entry->ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN) )
+        return;
+
+    list_del(&entry->list);
+    if ( entry->mapped )
+        iounmap(entry->mapped);
+    xfree(entry);
+}
+
+int __init subpage_mmio_ro_add(
+    paddr_t start,
+    size_t size)
+{
+    mfn_t mfn_start = maddr_to_mfn(start);
+    paddr_t end = start + size - 1;
+    mfn_t mfn_end = maddr_to_mfn(end);
+    unsigned int offset_end = 0;
+    int rc;
+    bool subpage_start, subpage_end;
+
+    ASSERT(IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN));
+    ASSERT(IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN));
+    if ( !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
+        return -EINVAL;
+
+    if ( !size )
+        return 0;
+
+    if ( mfn_eq(mfn_start, mfn_end) )
+    {
+        /* Both starting and ending parts handled at once */
+        subpage_start = PAGE_OFFSET(start) || PAGE_OFFSET(end) != PAGE_SIZE - 1;
+        subpage_end = false;
+    }
+    else
+    {
+        subpage_start = PAGE_OFFSET(start);
+        subpage_end = PAGE_OFFSET(end) != PAGE_SIZE - 1;
+    }
+
+    if ( subpage_start )
+    {
+        offset_end = mfn_eq(mfn_start, mfn_end) ?
+                     PAGE_OFFSET(end) :
+                     (PAGE_SIZE - 1);
+        rc = subpage_mmio_ro_add_page(mfn_start,
+                                      PAGE_OFFSET(start),
+                                      offset_end);
+        if ( rc < 0 )
+            goto err_unlock;
+        /* Check if not marking R/W part of a page intended to be fully R/O */
+        ASSERT(rc || !rangeset_contains_singleton(mmio_ro_ranges,
+                                                  mfn_x(mfn_start)));
+    }
+
+    if ( subpage_end )
+    {
+        rc = subpage_mmio_ro_add_page(mfn_end, 0, PAGE_OFFSET(end));
+        if ( rc < 0 )
+            goto err_unlock_remove;
+        /* Check if not marking R/W part of a page intended to be fully R/O */
+        ASSERT(rc || !rangeset_contains_singleton(mmio_ro_ranges,
+                                                  mfn_x(mfn_end)));
+    }
+
+    rc = rangeset_add_range(mmio_ro_ranges, mfn_x(mfn_start), mfn_x(mfn_end));
+    if ( rc )
+        goto err_remove;
+
+    return 0;
+
+ err_remove:
+    if ( subpage_end )
+        subpage_mmio_ro_remove_page(mfn_end, 0, PAGE_OFFSET(end));
+ err_unlock_remove:
+    if ( subpage_start )
+        subpage_mmio_ro_remove_page(mfn_start, PAGE_OFFSET(start), offset_end);
+ err_unlock:
+    return rc;
+}
+
+static void __iomem *subpage_mmio_map_page(
+    struct subpage_ro_range *entry)
+{
+    void __iomem *mapped_page;
+
+    if ( entry->mapped )
+        return entry->mapped;
+
+    mapped_page = ioremap(mfn_to_maddr(entry->mfn), PAGE_SIZE);
+
+    spin_lock(&subpage_ro_lock);
+    /* Re-check under the lock */
+    if ( entry->mapped )
+    {
+        spin_unlock(&subpage_ro_lock);
+        if ( mapped_page )
+            iounmap(mapped_page);
+        return entry->mapped;
+    }
+
+    entry->mapped = mapped_page;
+    spin_unlock(&subpage_ro_lock);
+    return entry->mapped;
+}
+
+static void subpage_mmio_write_emulate(
+    mfn_t mfn,
+    unsigned int offset,
+    const void *data,
+    unsigned int len)
+{
+    struct subpage_ro_range *entry;
+    volatile void __iomem *addr;
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+        /* Do not print message for pages without any writable parts. */
+        return;
+
+    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);
+        return;
+    }
+
+    addr = subpage_mmio_map_page(entry);
+    if ( !addr )
+    {
+        gprintk(XENLOG_ERR,
+                "Failed to map page for MMIO write at 0x%"PRI_mfn"%03x\n",
+                mfn_x(mfn), offset);
+        return;
+    }
+
+    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;
+    }
+}
+
+#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,
@@ -4928,6 +5187,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);
+
     return X86EMUL_OKAY;
 }
 
diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c
index cad28ef928ad..2ea1a6ad489c 100644
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -333,8 +333,10 @@ static int mmio_ro_do_page_fault(struct x86_emulate_ctxt *ctxt,
     ctxt->data = &mmio_ro_ctxt;
     if ( pci_ro_mmcfg_decode(mfn_x(mfn), &mmio_ro_ctxt.seg, &mmio_ro_ctxt.bdf) )
         return x86_emulate(ctxt, &mmcfg_intercept_ops);
-    else
-        return x86_emulate(ctxt, &mmio_ro_emulate_ops);
+
+    mmio_ro_ctxt.mfn = mfn;
+
+    return x86_emulate(ctxt, &mmio_ro_emulate_ops);
 }
 
 int pv_ro_page_fault(unsigned long addr, struct cpu_user_regs *regs)
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 02:34:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 02:34:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760834.1170772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUdRn-0001tO-95; Fri, 19 Jul 2024 02:34:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760834.1170772; Fri, 19 Jul 2024 02:34:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUdRn-0001tH-5l; Fri, 19 Jul 2024 02:34:15 +0000
Received: by outflank-mailman (input) for mailman id 760834;
 Fri, 19 Jul 2024 02:34:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a+sj=OT=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sUdRl-0001tA-Sj
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 02:34:14 +0000
Received: from fhigh2-smtp.messagingengine.com
 (fhigh2-smtp.messagingengine.com [103.168.172.153])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 606111b3-4577-11ef-8776-851b0ebba9a2;
 Fri, 19 Jul 2024 04:34:10 +0200 (CEST)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.47])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 99EDB1140265;
 Thu, 18 Jul 2024 22:34:08 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute6.internal (MEProxy); Thu, 18 Jul 2024 22:34:08 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 18 Jul 2024 22:34:06 -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: 606111b3-4577-11ef-8776-851b0ebba9a2
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=1721356448; x=1721442848; bh=Y5XHPfGuIrp7S1hbzvj1pjkbqkEQEhy0
	VNxti2mSbZ0=; b=HQ5CmzcrT25rF3oIBlv6FqWOREZz8si0J39M0vyG7mghtXF3
	KWCs5l1pK+AwZVTusuN1Opi0j5NDO+CNtcVgeR71hL8ZfKlkpwVZQMp+250xlpPC
	I+VFyQfk1VqVj9UkRGfxu0LBbdfCmOWT/C/U/bjEVM5X18Das7SM8rGhmTkpHGfS
	nwDabjxrpIMBx/Oc9MY9fohO33/6dZr4eez/7boCeHdkgS/hZpQCI7z1y27PjA3z
	N9O0a3HwRw1I2FosMaxwr7xR7WKOK6vuoJ4MijUMwKe43+bsCPlg1z3Ay56uol12
	BXhITpUBeJ0KqqUm3QZr78v34DgQSMt35+x36w==
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-proxy:x-me-sender:x-me-sender
	:x-sasl-enc; s=fm2; t=1721356448; x=1721442848; bh=Y5XHPfGuIrp7S
	1hbzvj1pjkbqkEQEhy0VNxti2mSbZ0=; b=cco4x5wJiml+BcVkpF5bdYiEvl4VD
	EmGA3Wix90QdCOOlRnrWm0iCO+jsvE2t2j3ac1p58pxxwRU2aDfcHOYuUjKrM7u5
	gWLd0SZi313fYqyP1sXMBrnfG1cua9intAkiVLyh2rhjNSQJbr+lsCMAbO74Ptwq
	pQi8rBogURWcsduMO9FGcZy2mgmBlOPavT+Em43AThCJfzaFTWVT6Gl25GjTDz8w
	C5oxH9ruBNMJYDrfrxAIg16bw75GQv98DTbQTCNFc45SLugVNwsuQdL2yqQ8E6e4
	nY99R0p3XBxkW3wrO66ARnkjJrisys8jcjodVnaD8Jl5sJdRSF9wAJP5Q==
X-ME-Sender: <xms:n9CZZk6rA_SoD_zmCOXqmwURjplC4GvPN8UwK5U17115gwSHqCQjjw>
    <xme:n9CZZl4gVgmCMB5d2TaGXYNpxNbEtWEqFI0KFDlw1GBX8a_5xFnSOBXhyCtzTXTAY
    ObZ_x4yoZ-_dA>
X-ME-Received: <xmr:n9CZZjeUyKwneUy6ynxn6DH6--qc0_J5HHkHmiKp-9t09TUU0Se-u6k67CcjePbDp5tduQkWx8W_CYHntnW58UgHh-gV6kMrOVgeoD_T5YZEgytYHUU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrhedtgdeitdcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecunecujfgurhephffvvefufffkofggtgfgsehtkeertd
    ertdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghk
    ihcuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqe
    enucggtffrrghtthgvrhhnpeelkefhudelteelleelteetveeffeetffekteetjeehlefg
    geekleeghefhtdehvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrih
    hlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgt
    ohhm
X-ME-Proxy: <xmx:n9CZZpLxJ2C-G7vbKU09CSvON6w6dx3oOt_wx2DgpWT9GaxE8dL3eg>
    <xmx:n9CZZoLL5l4sn9ziNv-m_cMOpP-NJ_4Ta-djeA1m8CfElD9LhUr4KQ>
    <xmx:n9CZZqwO2pudgFCFRNi7PPTGoBBqivpiP4gjJyYwyobe2WCSac2vkg>
    <xmx:n9CZZsJYNGYvfyBhwEVaDQy_fc5dTOp9ODJUeKKIsoTqdU-oIYT12g>
    <xmx:oNCZZijdoOcn-UQtzb16My4zvTydC_-vG_Ieye8Q3mWP4Z9s5QPK8jSa>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v5 0/3] Add API for making parts of a MMIO page R/O and use it in XHCI console
Date: Fri, 19 Jul 2024 04:33:35 +0200
Message-ID: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On older systems, XHCI xcap had a layout that no other (interesting) registers
were placed on the same page as the debug capability, so Linux was fine with
making the whole page R/O. But at least on Tiger Lake and Alder Lake, Linux
needs to write to some other registers on the same page too.

Add a generic API for making just parts of an MMIO page R/O and use it to fix
USB3 console with share=yes or share=hwdom options. More details in commit
messages.

Marek Marczykowski-Górecki (3):
  xen/list: add LIST_HEAD_RO_AFTER_INIT
  x86/mm: add API for marking only part of a MMIO page read only
  drivers/char: Use sub-page ro API to make just xhci dbc cap RO

 xen/arch/x86/hvm/emulate.c      |   2 +-
 xen/arch/x86/hvm/hvm.c          |   4 +-
 xen/arch/x86/include/asm/mm.h   |  23 +++-
 xen/arch/x86/mm.c               | 262 +++++++++++++++++++++++++++++++++-
 xen/arch/x86/pv/ro-page-fault.c |   6 +-
 xen/drivers/char/xhci-dbc.c     |  36 +++--
 xen/include/xen/list.h          |   3 +-
 7 files changed, 317 insertions(+), 19 deletions(-)

base-commit: a99f25f7ac60544e9af4b3b516d7566ba8841cc4
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 03:15:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 03:15:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760869.1170818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUe5A-00010c-3d; Fri, 19 Jul 2024 03:14:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760869.1170818; Fri, 19 Jul 2024 03: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 1sUe5A-00010V-0t; Fri, 19 Jul 2024 03:14:56 +0000
Received: by outflank-mailman (input) for mailman id 760869;
 Fri, 19 Jul 2024 03:14:54 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUe58-00010K-Co; Fri, 19 Jul 2024 03:14:54 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUe58-0004yj-Au; Fri, 19 Jul 2024 03:14:54 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUe57-0005fe-Vg; Fri, 19 Jul 2024 03:14:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUe57-0006Sr-V9; Fri, 19 Jul 2024 03:14: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=6JrUQ/UVPeUkRrfk8ZDDkKhghCcTknVPZ7wJdD0/tHE=; b=4M+gagluc0OVMx2y8/p9dRfO5n
	ceQ1KDvBkgQ8QdXCaH9LYIft7VnTLFOb7XDdjbv0Z+RWdGO/MIimblOT76UVegaxCG//X5huae2Ci
	J1xk8fk9faW6fOgd7n8UNkVEC4aOCdqnWsIGvEeTqWUQEb4NO7vlg3dX6WheZl1S1qSA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186892-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186892: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-xl-qemuu-debianhvm-amd64:xen-install:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:xen-install:fail:regression
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:xen-install:fail:regression
    xen-unstable-smoke:build-armhf:xen-build:fail:regression
    xen-unstable-smoke:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
X-Osstest-Versions-This:
    xen=a99f25f7ac60544e9af4b3b516d7566ba8841cc4
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Jul 2024 03:14:53 +0000

flight 186892 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186892/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  7 xen-install fail REGR. vs. 186826
 test-amd64-amd64-libvirt      7 xen-install              fail REGR. vs. 186826
 test-arm64-arm64-xl-xsm       7 xen-install              fail REGR. vs. 186826
 build-armhf                   6 xen-build                fail REGR. vs. 186826

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a

version targeted for testing:
 xen                  a99f25f7ac60544e9af4b3b516d7566ba8841cc4
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186826  2024-07-16 19:00:25 Z    2 days
Failing since        186880  2024-07-18 15:00:30 Z    0 days    4 attempts
Testing same since   186883  2024-07-18 21:11:32 Z    0 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Julien Grall <julien@xen.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  fail    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          blocked 
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-amd64-libvirt                                     fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit a99f25f7ac60544e9af4b3b516d7566ba8841cc4
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:51:02 2024 +0100

    CHANGELOG.md: Start new 4.20.0 section
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit 974ad0926e4616444dc0c1d83ba86bd6eb8dd52d
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:48:06 2024 +0100

    CHANGELOG.md: Set release date for 4.19
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>

commit 285937175be2509bc5b4c2eff2ec0b2fa758ff69
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:00:47 2024 +0100

    Re-run ./autogens.h for 4.20
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit f66e523189f1130a2fd3b77a9f0c8ac152355ac8
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:42:58 2024 +0100

    Set version to 4.20; 4.19 has branched
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit b181bb9fdbae9cdae96f979cfcc30c6195071417
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:40:44 2024 +0100

    Revert "Config.mk pin QEMU_UPSTREAM_REVISION (prep for Xen 4.19 RC1)"
    
    The branch is unstable again.
    
    This reverts commit 7584e39986ef2cb4816892ffaefb26f4ad063468.
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 06:16:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 06:16:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760887.1170845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUguY-00051L-He; Fri, 19 Jul 2024 06:16:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760887.1170845; Fri, 19 Jul 2024 06:16:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUguY-00051E-F5; Fri, 19 Jul 2024 06:16:10 +0000
Received: by outflank-mailman (input) for mailman id 760887;
 Fri, 19 Jul 2024 06:16:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUguW-000514-Gw; Fri, 19 Jul 2024 06:16:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUguW-0000N7-CO; Fri, 19 Jul 2024 06:16:08 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUguW-00044n-05; Fri, 19 Jul 2024 06:16:08 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUguV-0002WW-Vv; Fri, 19 Jul 2024 06:16: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=R4Ozb8EwMyNEAEcl3T9BcmTDWdqjw3l/9+92dwcpPkE=; b=sGRUkRwGubD2+G9arGS3AY9mq2
	0YQHBtHCIJ3wAmP62VhmeCS1CuU9NR3oAg0H6V14u/MQ8zNbjiNi1sk0zjhuwLj2pBhgczg2iEJy9
	/IwQwL0vshQ4RCICsKHePR8JZ4BOEXCjHrraQrg1kSh6bijylJpRnd3A061SUbOAi1S8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186878-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.19-testing baseline test] 186878: tolerable FAIL
X-Osstest-Failures:
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=57338346f29cea7b183403561bdc5f407163b846
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Jul 2024 06:16:07 +0000

"Old" tested version had not actually been tested; therefore in this
flight we test it, rather than a new candidate.  The baseline, if
any, is the most recent actually tested revision.

flight 186878 xen-4.19-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186878/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop      fail baseline untested
 test-armhf-armhf-libvirt   16 saverestore-support-check fail baseline untested
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop      fail baseline untested
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop      fail baseline untested
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop      fail baseline untested
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail baseline untested
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  57338346f29cea7b183403561bdc5f407163b846
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186878  2024-07-18 14:10:49 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Fri Jul 19 06:47:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 06:47:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760900.1170861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUhOq-0000NW-0Y; Fri, 19 Jul 2024 06:47:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760900.1170861; Fri, 19 Jul 2024 06:47: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 1sUhOp-0000NP-U9; Fri, 19 Jul 2024 06:47:27 +0000
Received: by outflank-mailman (input) for mailman id 760900;
 Fri, 19 Jul 2024 06:47:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUhOo-0000NF-Vb; Fri, 19 Jul 2024 06:47:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUhOo-0000vX-TW; Fri, 19 Jul 2024 06:47:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUhOo-0004sN-IK; Fri, 19 Jul 2024 06:47:26 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUhOo-00054l-Hs; Fri, 19 Jul 2024 06:47:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=5hNpucf8BH2DSOgnouatKWt+p+4Nfd87MAR8CzMURrk=; b=yjeWCKRJw/L9aDMiAy2YaTAHi+
	kNv/Zi01JrG7UAs2S7QUz/YLRGXzITAlFYwM0lc0m/V/c2aUBC7CnpF+8mA4rDBD4ejne5gPH/V1W
	DIQf08jDzcikc+3htQVrfMTHn0S2+Vwznq2c3/XKk0URGFKW9AAWU4P43XPOAwz/mKeI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186895-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186895: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-xl-qemuu-debianhvm-amd64:xen-install:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:xen-install:fail:regression
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:xen-install:fail:regression
    xen-unstable-smoke:test-armhf-armhf-xl:xen-boot:fail:regression
X-Osstest-Versions-This:
    xen=a99f25f7ac60544e9af4b3b516d7566ba8841cc4
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Jul 2024 06:47:26 +0000

flight 186895 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186895/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  7 xen-install fail REGR. vs. 186826
 test-amd64-amd64-libvirt      7 xen-install              fail REGR. vs. 186826
 test-arm64-arm64-xl-xsm       7 xen-install              fail REGR. vs. 186826
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 186826

version targeted for testing:
 xen                  a99f25f7ac60544e9af4b3b516d7566ba8841cc4
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186826  2024-07-16 19:00:25 Z    2 days
Failing since        186880  2024-07-18 15:00:30 Z    0 days    5 attempts
Testing same since   186883  2024-07-18 21:11:32 Z    0 days    4 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Julien Grall <julien@xen.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-amd64-libvirt                                     fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit a99f25f7ac60544e9af4b3b516d7566ba8841cc4
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:51:02 2024 +0100

    CHANGELOG.md: Start new 4.20.0 section
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit 974ad0926e4616444dc0c1d83ba86bd6eb8dd52d
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:48:06 2024 +0100

    CHANGELOG.md: Set release date for 4.19
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>

commit 285937175be2509bc5b4c2eff2ec0b2fa758ff69
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:00:47 2024 +0100

    Re-run ./autogens.h for 4.20
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit f66e523189f1130a2fd3b77a9f0c8ac152355ac8
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:42:58 2024 +0100

    Set version to 4.20; 4.19 has branched
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit b181bb9fdbae9cdae96f979cfcc30c6195071417
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:40:44 2024 +0100

    Revert "Config.mk pin QEMU_UPSTREAM_REVISION (prep for Xen 4.19 RC1)"
    
    The branch is unstable again.
    
    This reverts commit 7584e39986ef2cb4816892ffaefb26f4ad063468.
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 07:12:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 07:12:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760913.1170872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUhn2-0003y1-TI; Fri, 19 Jul 2024 07:12:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760913.1170872; Fri, 19 Jul 2024 07:12: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 1sUhn2-0003xu-QT; Fri, 19 Jul 2024 07:12:28 +0000
Received: by outflank-mailman (input) for mailman id 760913;
 Fri, 19 Jul 2024 07: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=B1Gh=OT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sUhn2-0003xo-0N
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 07:12:28 +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 40c3e9ef-459e-11ef-bbfd-fd08da9f4363;
 Fri, 19 Jul 2024 09:12:26 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-36865a516f1so564398f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 19 Jul 2024 00:12:26 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-36878694a58sm783700f8f.58.2024.07.19.00.12.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 19 Jul 2024 00:12: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: 40c3e9ef-459e-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721373146; x=1721977946; 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=kE1W8RaJ1HQtlvL6i/+t7H83aLQlSoeznbOsGL4jwMY=;
        b=RK9go39rU+2aL0vVMZZkTtR+zYyfFUvECizMzlz46h7vc0XMOixyQ4Wxm9svKpS8mb
         A0HgxdioTeoZEUdEZvksNFv9Jh0j2/RG+vfbPn0/1+2aiLqMMOZbqDrGOwMLWXcVSBUj
         5wXjmwFzab9M5/fkt7AVFgCIWX+zrskDpHn4A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721373146; x=1721977946;
        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=kE1W8RaJ1HQtlvL6i/+t7H83aLQlSoeznbOsGL4jwMY=;
        b=F6lGMZyz8070173lLvUC4WerzfxcSd9+z/ufH4QAmLyWRAFIaUucsb5LgruEYZbhSm
         hGySeGPp/8271ZXleLl4mTiDmyL3xtVxoBSvrGm2K2K1QgpGtklpMD3EBbspixo2VNFw
         IAkfL4PSgk9zNEd23+aaRMWkXSsppeyhDLqHwbfgAVPd68EK0O+MOee+1TxoSM90X+xR
         EBjPtgmfsQ13euy4WVhF0CWDArO6iIApfbbt355gePdDaegVKFYJSbRtlWuUoJocO7S5
         mIMfuOgThMPpWLMroCwbY9L4Gn+rKz1Kgi0cX//6Ia+wAvijPVifkeNraF3uqhsiDiW2
         yP2g==
X-Forwarded-Encrypted: i=1; AJvYcCUwz4Qx/1c3fRGrPB6lOwrAnuA6Hgwr4ZsckD+YNET2jn7t+B4R0ysZP1LPHh8tyuj48vM2YiIL4ae43HU4+8bZ4iImeMKJkqDawxiZHNQ=
X-Gm-Message-State: AOJu0YzqiXmx28Q7MIK8U+Lf+0rqAKDNtyHQB0NkNWfKqxugA5yjKDA5
	S6H6bvaoMGoSNeKV6ObtqHMbNjkL+C2fz9D27AnpQGLXSCrJ7/e7YssU3Ce7lyo=
X-Google-Smtp-Source: AGHT+IH+6tkbtEqsHAGrJnKM1iLtIhVBXmqWr092XKFbM5DdBiF8E6304zQ0Is38yFJdYC6ckUq1Xg==
X-Received: by 2002:a5d:64aa:0:b0:368:6b56:641b with SMTP id ffacd0b85a97d-3686b5664b4mr2546810f8f.47.1721373145788;
        Fri, 19 Jul 2024 00:12:25 -0700 (PDT)
Date: Fri, 19 Jul 2024 09:12:24 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/HVM: get_pat_flags() is needed only by shadow code
Message-ID: <ZpoR2Hvv7-hqmk53@macbook>
References: <76aafbed-bea9-445a-8abb-6e1e44996594@suse.com>
 <99403a3c-1e4f-4971-a08b-5480e6d1e829@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <99403a3c-1e4f-4971-a08b-5480e6d1e829@citrix.com>

On Thu, Jul 18, 2024 at 06:06:54PM +0100, Andrew Cooper wrote:
> On 18/07/2024 11:10 am, Jan Beulich wrote:
> > Therefore with SHADOW_PAGING=n this is better compiled out, to avoid
> > leaving around unreachable/dead code.
> >
> > Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >
> > --- a/xen/arch/x86/hvm/mtrr.c
> > +++ b/xen/arch/x86/hvm/mtrr.c
> > @@ -271,6 +271,8 @@ int mtrr_get_type(const struct mtrr_stat
> >     return overlap_mtrr_pos;
> >  }
> >  
> > +#ifdef CONFIG_SHADOW_PAGING
> > +
> >  /*
> >   * return the memory type from PAT.
> >   * NOTE: valid only when paging is enabled.
> > @@ -359,6 +361,8 @@ uint32_t get_pat_flags(struct vcpu *v,
> >      return pat_type_2_pte_flags(pat_entry_value);
> >  }
> >  
> > +#endif /* CONFIG_SHADOW_PAGING */
> > +
> >  static inline bool valid_mtrr_type(uint8_t type)
> >  {
> >      switch ( type )
> 
> While I can see this is true, the fact it is indicates that we have
> bugs/problems elsewhere.
> 
> It is not only the shadow code that has to combine attributes like this,
> so we've either got opencoding elsewhere, or a bad abstraction.
> 
> (This is an observation, rather than a specific objection.)

Won't shadow always need a specific helper, in order to combine both
MTRRs and guest PAT attributes, while HAP only needs to merge MTRR
attributes?

Not that current code couldn't be better structured.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 09:05:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 09:05:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760930.1170890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUjYE-0008Vm-PA; Fri, 19 Jul 2024 09:05:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760930.1170890; Fri, 19 Jul 2024 09: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 1sUjYE-0008Vf-Me; Fri, 19 Jul 2024 09:05:18 +0000
Received: by outflank-mailman (input) for mailman id 760930;
 Fri, 19 Jul 2024 09: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=lbjb=OT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUjYD-0008VZ-GZ
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 09:05:17 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03b28d61-45ae-11ef-bbfd-fd08da9f4363;
 Fri, 19 Jul 2024 11:05:16 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2ee920b0781so20503801fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 19 Jul 2024 02:05: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
 d2e1a72fcca58-70cff59e2d7sm804764b3a.170.2024.07.19.02.05.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Jul 2024 02: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: 03b28d61-45ae-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721379915; x=1721984715; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zUXzVnh1xTxH4tbZMk5I3ZZk1Ii2xC/fZk38ALx3MKI=;
        b=ZJeQv2byykcdDTszzvsWzO5ZAhecDk5+2vuCxs78EJqEVdjTk+4bmoby8mCywnawVZ
         I2/8/AccBQ7bvy99PNCULKRCzuRe4WzVik4pj19I3JMMhyoolK398EqJhKqYLKUkeK1U
         cIrFzCScbpAqsHEZJHbjY/cBBbulSeX+3sniomthFdNLda7U+xiHrKVrtnwziDfntyEi
         29XeotMdf1o5qH+2/ZpcUz54+9Xzb6Wn5Ekj3EBn0ojuOyiKDGDyn0cGb0V3GXwqjMrz
         PKHrzuYQj0+/zfioH6JLXSi5AlrwkB7vACarwlePzJCEJCh2VbBAF/fAm/a5wyQP9OTz
         VTSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721379915; x=1721984715;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zUXzVnh1xTxH4tbZMk5I3ZZk1Ii2xC/fZk38ALx3MKI=;
        b=jrxDiscQ0FVjvWGH2PCaePqCSPMULlJEA8YRwPJ3nzgQP9PUp/h9Aamg+D2t1httAS
         bIkKp47Gsma7gEAxG35t0CR9TnorbiJDXafnkCOkF7nOK3GVNqGbPmvPl0k5JeEtIS/1
         IUJmAYyN08dmFTBd0nKImunFq+hSJKFG98PYDVUCQcnX2x2+ctjO+du2hQ2LyNOI7/x/
         Zq658P4ETHohhWyAblLFuippnOyYiWGXLkeMpo5tdzYEjFOflsui+swbShGSxNloeHmF
         wn8fJQc65DLI8Av4U7EiXNIwSvC/i91qCpOBduIyX6dVHMXZh/4fT/zpcMOic5cNsqs9
         oM5w==
X-Forwarded-Encrypted: i=1; AJvYcCWZxWlqRocanD70bNuMxg5cXD+ktr6/3s8+qxaLaf7n24Z1KvUtoUKR8RTWsmcVA2vTsEIPRE+ENBTO8xM8sEQHlUoe89Nk5yNqCQHmhss=
X-Gm-Message-State: AOJu0YzKfcdiGsAiWE0lyfHZhh7c3ZoAqdZBw9/YYEpeSXHBVFelhR60
	1UsQOcVvZIhRbPVjWfH1PM6bkgaNkuOjA3cdaEDSn4tstyPbNfSs0p4oYFopXw==
X-Google-Smtp-Source: AGHT+IHO+cFrNaabHRy5q3RuXZxp5nDYA4XjUf2Gk5GfbtH6VlIs5n1TctMKTc1CFpaR7XuSBfVlgg==
X-Received: by 2002:a2e:7016:0:b0:2ee:d5e5:ebdd with SMTP id 38308e7fff4ca-2ef05c543eamr31445011fa.8.1721379915294;
        Fri, 19 Jul 2024 02:05:15 -0700 (PDT)
Message-ID: <b1bad3be-4520-48e6-952c-3f1828a0bafa@suse.com>
Date: Fri, 19 Jul 2024 11:05:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
 consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com>
 <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com>
 <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
 <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com>
 <alpine.DEB.2.22.394.2407151736530.3635@ubuntu-linux-20-04-desktop>
 <4893a89d-9ef5-4d86-94b0-042e88588439@suse.com>
 <alpine.DEB.2.22.394.2407161713010.3635@ubuntu-linux-20-04-desktop>
 <013c6cc2-eddf-4beb-b115-01aaaa71faa6@suse.com>
 <alpine.DEB.2.22.394.2407171601540.3635@ubuntu-linux-20-04-desktop>
 <8fd8d6e4-ef29-4ea9-9437-a743c25fe7b9@suse.com>
 <alpine.DEB.2.22.394.2407181457110.4857@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.2407181457110.4857@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.07.2024 00:01, Stefano Stabellini wrote:
> On Thu, 18 Jul 2024, Jan Beulich wrote:
>> On 18.07.2024 01:02, Stefano Stabellini wrote:
>>> On Wed, 17 Jul 2024, Jan Beulich wrote:
>>>> On 17.07.2024 02:20, Stefano Stabellini wrote:
>>>>> On Tue, 16 Jul 2024, Jan Beulich wrote:
>>>>>> On 16.07.2024 02:43, Stefano Stabellini wrote:
>>>>>>> On Mon, 15 Jul 2024, Jan Beulich wrote:
>>>>>>>> On 13.07.2024 00:38, Stefano Stabellini wrote:
>>>>>>>>> On Wed, 3 Jul 2024, Jan Beulich wrote:
>>>>>>>>>> I further have to note that, as indicated during the earlier discussion,
>>>>>>>>>> I still cannot see how occasional ambiguity is going to be dealt with.
>>>>>>>>>> IOW from the rules above two different headers could still end up with
>>>>>>>>>> the same guard identifier.
>>>>>>>>>
>>>>>>>>> Maybe something like this?
>>>>>>>>>
>>>>>>>>> "In the event of naming collisions, exceptions to the coding style may
>>>>>>>>> be made at the discretion of the contributor and maintainers."
>>>>>>>>
>>>>>>>> Hmm, maybe I wasn't clear enough then. My take is that the scheme should
>>>>>>>> simply not allow for possible collisions. Neither the contributor nor the
>>>>>>>> reviewer may spot such a collision, and it may therefore take until the
>>>>>>>> first full scan that one is actually noticed. Which I consider too late
>>>>>>>> in the process, even if we already were at the point where commits were
>>>>>>>> checked pre-push.
>>>>>>>
>>>>>>> Looking at the proposal, copy/pasted here for convenience:
>>>>>>>
>>>>>>> - private headers -> <dir>_<filename>_H
>>>>>>> - asm-generic headers -> ASM_GENERIC_<filename>_H
>>>>>>>     - #ifndef ASM_GENERIC_X86_PERCPU_H
>>>>>>>       #define ASM_GENERIC_X86_PERCPU_H
>>>>>>>       //...
>>>>>>>       #endif /* ASM_GENERIC_X86_PERCPU_H */
>>>>>>> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
>>>>>>>     - #ifndef ASM_X86_DOMAIN_H
>>>>>>>       #define ASM_X86_DOMAIN_H
>>>>>>>       //...
>>>>>>>       #endif /* ASM_X86_DOMAIN_H */
>>>>>>> - xen/include/xen/<filename>.h -> XEN_<filename>_H
>>>>>>> - xen/include/xen/<subdir>/<filename>.h -> XEN_<subdir>_<filename>_H
>>>>>>>
>>>>>>>
>>>>>>> The only possibility for collision that I can see is from the first
>>>>>>> point:
>>>>>>>
>>>>>>> - private headers -> <dir>_<filename>_H
>>>>>>
>>>>>> I don't think this is the only possibility of collisions. The <subdir>_<filename>
>>>>>> parts can similarly cause problems if either of the two involved names contains
>>>>>> e.g. a dash (which would need converting to an underscore) or an underscore. To
>>>>>> avoid this, the name separators (slashes in the actual file names) there may need
>>>>>> representing by double underscores.
>>>>>
>>>>> I am OK with you two underscores as name separator (slashes in the
>>>>> actual file names). Would you do it for all levels like this?
>>>>>
>>>>> - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
>>>>> - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
>>>>> - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
>>>>>
>>>>>
>>>>> I think it is better than the below:
>>>>>
>>>>> - arch/arm/arm64/lib/something.h -> ARM_ARM64__LIB__SOMETHING_H
>>>>> - arch/arm/arm32/lib/something.h -> ARM_ARM32__LIB__SOMETHING_H
>>>>> - arch/x86/lib/something.h -> X86_LIB__SOMETHING_H
>>>>
>>>> Hmm, maybe it's indeed better to do it entirely uniformly then.
>>>
>>>
>>> Do we have agreement on the naming convention then? 
>>>
>>>
>>> - private headers -> <dir>__<filename>__H
>>>     - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
>>>     - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
>>>     - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
>>>
>>> - asm-generic headers -> ASM_GENERIC_<filename>_H
>>>     - include/asm-generic/percpu.h -> ASM_GENERIC_X86_PERCPU_H
>>>
>>> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
>>>     - arch/x86/include/asm/domain.h -> ASM_X86_DOMAIN_H
>>>
>>> - include/xen -> XEN_<filename>_H
>>>     - include/xen/percpu.h -> XEN_PERCPU_H
>>>
>>>
>>> Or do you prefer the double underscore __  in all cases?
>>
>> It's not so much prefer, but a requirement if we want to be future proof.
>> Even for ASM_GENERIC_* that'll be needed, as your outline above simply
>> doesn't mention the (future) case of there being subdir-s there (see how
>> Linux already has some). Imo the question doesn't even arise for XEN_*,
>> as xen/ has subdir-s already.
> 
> OK. So it becomes:
> 
> - private headers -> <dir>__<filename>_H
>     - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
>     - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
>     - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> 
> - asm-generic headers -> ASM_GENERIC__<filename>_H
>     - include/asm-generic/percpu.h -> ASM_GENERIC__X86__PERCPU_H

Nit: There's still a stray _X86_ in here.

Jan

> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM__<architecture>__<subdir>__<filename>_H
>     - arch/x86/include/asm/domain.h -> ASM__X86__DOMAIN_H
> 
> - include/xen -> XEN__<filename>_H
>     - include/xen/percpu.h -> XEN__PERCPU_H
> 
> If we have found agreement then Alessandro could send an update



From xen-devel-bounces@lists.xenproject.org Fri Jul 19 09:14:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 09:14:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760938.1170901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUjh9-0001i8-Ji; Fri, 19 Jul 2024 09:14:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760938.1170901; Fri, 19 Jul 2024 09: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 1sUjh9-0001i1-Gt; Fri, 19 Jul 2024 09:14:31 +0000
Received: by outflank-mailman (input) for mailman id 760938;
 Fri, 19 Jul 2024 09:14: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=lbjb=OT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUjh7-0001hv-M2
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 09:14:29 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4c79be6c-45af-11ef-bbfd-fd08da9f4363;
 Fri, 19 Jul 2024 11:14:28 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2eeb1ba0468so23575411fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 19 Jul 2024 02:14: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-2ccf7b2f300sm1094414a91.10.2024.07.19.02.14.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Jul 2024 02:14: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: 4c79be6c-45af-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721380467; x=1721985267; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nYuKqorvNH3x3saBcLhRLAXZjtCGyXm9P8WjxtissRY=;
        b=BIChjvQwWixLydoDkHX2MPJ7TaUwO1nIdg8Dht8y2YY7WRsWXVEx4OTMI1MXlOcA+1
         xvWPpuScZ4Boejfq8Cze1H4S+wKnTk5XmQC96WcMp097DEYGcth1dWtRtqPixVMn/5nH
         /49fliZxgCGhKgCOoTNGkLZXCQ7cZlRZf5g+DXvYFOG84947b/D0eSB34AlhDlLj2BTH
         9D4K2pQB1z9suxbPNldiwTI9MdFtb3D5fr+UVhgUS+L19bgR4We9dH9eb3GZlsQOsRXz
         YiiiSqLgZYNAvpwhYrsWnLiRNj6B1adHI7OVxSSneiagA9F9PbFRW74xautO5FDzi3Dd
         DHxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721380467; x=1721985267;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nYuKqorvNH3x3saBcLhRLAXZjtCGyXm9P8WjxtissRY=;
        b=BaFtq3jpNccKwNwhBnYqK3jzx2Unh+EVAenycoNvezjdbwRW88Yq8Ex8TXyvoVNY+9
         DKnrY5sKqYZHl19OBL925147wWTIqJ3H/AfJCaqv+BXcIHq2Nz9yaLdfhiyK4eiIDXWJ
         khqgCUh9uDyB5hU1tVK3On4f1SlLMkX14qU6fGEQzaGrKMIM3BRrZq8dQLuI4dgImVau
         fJFfpvJWkoflJ5bEbouK0h5gZvoWK1sulpycNcyWN3vIw962az8RNGxGGgG+w9dy932O
         Yxlr2sKW/1U0eAAFtwlwayypqtJQBFtNL1cnsXkGv+cNFqytj2iOkeMHOjtxbrc7Q7eP
         hGKg==
X-Forwarded-Encrypted: i=1; AJvYcCXGXKV7oQ9WOuz4sktXmyKKk947ak2xLT0BXIbiRVs6UYXMnAlsHZD0V9hbwEzVqfOG/ccMbOzX2LLEXVgddNc2dFZVkjvTZ3DvEQqE9bY=
X-Gm-Message-State: AOJu0Yz7I47fa6vvOwi4lBGj2W0L+CWkltmmgN1oOPFj8hIJCKMU3joI
	ayZP0eZFQNTVc75MR2nuByZJ4Cg/frulIHQziR7/jti3w+oSIES0CRxNcYIQKz3Z+rRRiYBXF7o
	=
X-Google-Smtp-Source: AGHT+IHEbnddAncRuj9XUXgECejYLUMWDEiGvMXgZL3gngOuXD9Ieunuz2YfHBmuF4/1Qpqu30Vbig==
X-Received: by 2002:a2e:8912:0:b0:2ee:4e67:85e0 with SMTP id 38308e7fff4ca-2ef05c52c41mr35104491fa.3.1721380467021;
        Fri, 19 Jul 2024 02:14:27 -0700 (PDT)
Message-ID: <4cc61747-904c-4b00-a722-2c31f7d04c2d@suse.com>
Date: Fri, 19 Jul 2024 11:14:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20 3/4] x86/fpu: Combine fpu_ctxt and xsave_area in
 arch_vcpu
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
 <170c78f39dfef620d9060be3f1b31313673f09b9.1720538832.git.alejandro.vallejo@cloud.com>
 <78ae0b2f-e0a6-4ab9-b7a6-43e1357ff9b9@suse.com>
 <D2STLWUF9965.3QXLJ2TWIXS1Z@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <D2STLWUF9965.3QXLJ2TWIXS1Z@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.07.2024 18:54, Alejandro Vallejo wrote:
> On Thu Jul 18, 2024 at 12:49 PM BST, Jan Beulich wrote:
>> On 09.07.2024 17:52, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/include/asm/domain.h
>>> +++ b/xen/arch/x86/include/asm/domain.h
>>> @@ -591,12 +591,7 @@ struct pv_vcpu
>>>  
>>>  struct arch_vcpu
>>>  {
>>> -    /*
>>> -     * guest context (mirroring struct vcpu_guest_context) common
>>> -     * between pv and hvm guests
>>> -     */
>>> -
>>> -    void              *fpu_ctxt;
>>> +    /* Fixed point registers */
>>>      struct cpu_user_regs user_regs;
>>
>> Not exactly, no. Selector registers are there as well for example, which
>> I wouldn't consider "fixed point" ones. I wonder why the existing comment
>> cannot simply be kept, perhaps extended to mention that fpu_ctxt now lives
>> elsewhere.
> 
> Would you prefer "general purpose registers"? It's not quite that either, but
> it's arguably closer. I can part with the comment altogether but I'd rather
> leave a token amount of information to say "non-FPU register state" (but not
> that, because that would be a terrible description). 
> 
> I'd rather update it to something that better reflects reality, as I found it
> quite misleading when reading through. I initially thought it may have been
> related to struct layout (as in C-style single-level inheritance), but as it
> turns out it's merely establishing a vague relationship between arch_vcpu and
> vcpu_guest_context. I can believe once upon a time the relationship was closer
> than it it now, but with the guest context missing AVX state, MSR state and
> other bits and pieces I thought it better to avoid such confusions for future
> navigators down the line so limit its description to the line below.

As said, I'd prefer if you amended the existing comment. Properly describing
what's in cpu_user_regs isn't quite as easy in only very few words. Neither
"fixed point register" nor "general purpose registers" really covers it. And
I'd really like to avoid having potentially confusing comments.

>>> --- a/xen/arch/x86/xstate.c
>>> +++ b/xen/arch/x86/xstate.c
>>> @@ -507,9 +507,16 @@ int xstate_alloc_save_area(struct vcpu *v)
>>>      unsigned int size;
>>>  
>>>      if ( !cpu_has_xsave )
>>> -        return 0;
>>> -
>>> -    if ( !is_idle_vcpu(v) || !cpu_has_xsavec )
>>> +    {
>>> +        /*
>>> +         * This is bigger than FXSAVE_SIZE by 64 bytes, but it helps treating
>>> +         * the FPU state uniformly as an XSAVE buffer even if XSAVE is not
>>> +         * available in the host. Note the alignment restriction of the XSAVE
>>> +         * area are stricter than those of the FXSAVE area.
>>> +         */
>>> +        size = XSTATE_AREA_MIN_SIZE;
>>
>> What exactly would break if just (a little over) 512 bytes worth were allocated
>> when there's no XSAVE? If it was exactly 512, something like xstate_all() would
>> need to apply a little more care, I guess. Yet for that having just always-zero
>> xstate_bv and xcomp_bv there would already suffice (e.g. using
>> offsetof(..., xsave_hdr.reserved) here, to cover further fields gaining meaning
>> down the road). Remember that due to xmalloc() overhead and the 64-byte-aligned
>> requirement, you can only have 6 of them in a page the way you do it, when the
>> alternative way 7 would fit (if I got my math right).
> 
> I'm slightly confused.
> 
> XSTATE_AREA_MIN_SIZE is already 512 + 64 to account for the XSAVE header,
> including its reserved fields. Did you mean something else?

No, I didn't. I've in fact commented on it precisely because it is the value
you name. That's larger than necessary, and when suitably shrunk - as said -
one more of these structures could fit in a page (assuming they were all
allocated back-to-back, which isn't quite true right now, but other
intervening allocations may or may not take space from the same page, so
chances are still that the ones here all might come from one page as long as
there's space left).

>     #define XSAVE_HDR_SIZE            64
>     #define XSAVE_SSE_OFFSET          160
>     #define XSTATE_YMM_SIZE           256
>     #define FXSAVE_SIZE               512
>     #define XSAVE_HDR_OFFSET          FXSAVE_SIZE
>     #define XSTATE_AREA_MIN_SIZE      (FXSAVE_SIZE + XSAVE_HDR_SIZE)
> 
> Part of the rationale is to simplify other bits of code that are currently
> conditionalized on v->xsave_header being NULL. And for that the full xsave
> header must be present (even if unused because !cpu_xsave)

But that's my point: The reserved[] part doesn't need to be there; it's
not being accessed anywhere, I don't think.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 09:24:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 09:24:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760948.1170914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUjqa-0003Qi-LS; Fri, 19 Jul 2024 09:24:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760948.1170914; Fri, 19 Jul 2024 09:24: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 1sUjqa-0003Qb-HS; Fri, 19 Jul 2024 09:24:16 +0000
Received: by outflank-mailman (input) for mailman id 760948;
 Fri, 19 Jul 2024 09:24: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=lbjb=OT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sUjqZ-0003QV-U4
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 09:24:15 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a95c3bf9-45b0-11ef-8776-851b0ebba9a2;
 Fri, 19 Jul 2024 11:24:13 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2eefeab807dso22944971fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 19 Jul 2024 02:24: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
 d9443c01a7336-1fd6f290eedsm432465ad.93.2024.07.19.02.24.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 19 Jul 2024 02:24: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: a95c3bf9-45b0-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721381052; x=1721985852; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FQfjmugfI8Len1jWT99nCNmm4UQ0R02Y32QP/u8hiN4=;
        b=DEVT2Z5zUnkb4k+uU4930+4SeIWYp3kRozk+JGS71sQnxNJWFmz5yGdjeXY8k+0Id4
         AYopufCpfBHFAM8duJhNtCvRiIvym60De66mNTLxGGgODb+T7ICHAzJ63NdDhXrNFd9x
         zB0in3PLFKneS3eisd7eOloPALLNSLFoLCH/0LCHkpDbBjKJgPZQWqI+Y33gok1elUGE
         i7mfxj/ycKKtB3RfiIs4nVSrKiR6UJHty65gpx2EBwCDAdjVYhrjZ3M0bbz+mckFu8HR
         bEuTOZYmF9AYuHpdcIw9zFpMAJ5Ic/g32qZ2Cenv6RZzz4Qi/qQqQSdx2fjLpBOaGM+J
         PzJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721381052; x=1721985852;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FQfjmugfI8Len1jWT99nCNmm4UQ0R02Y32QP/u8hiN4=;
        b=cFlNOa8Bqsz+50d6+WrkuKUBBl+u9ZpJuXjnibdvB7EgqJQXppMlTpe7AfqZwMZLOs
         Q5YpQo5Ui2K5DiDULwm6KY59YOFSA5NX5YxgKWzXAQD09asM822yatZEqWGqDaPNKhmT
         eCPlfLrVds7e9hoMxU9xL8zPobSgt0SQ74Df4Bh1yXHKZ9FP62Lu1kTjNMq0XVsOFGn8
         8OgUopWcLbZNhNBss2uXrTbDx3fFnKKwCm1Vt0ydj/iDyTPwhcgTspg9i4CQ9Oha8403
         gBeMhL5pcxzOoPQ+ELWRQXEw6STiRP1MdVo1GOKKubYkd1h1fMnSOihI+yF7zHXgCpE2
         CM/Q==
X-Forwarded-Encrypted: i=1; AJvYcCU782yTJo2Ucz/jvkHHdfmb0veOgY2qPIpmV4kdJeB4ApxWBTb3O8bdKpSo3hsdm5Xe5L4hK9hYXFXYo0vxFUUmYLEoMnTCZE+bT23yX8Q=
X-Gm-Message-State: AOJu0Ywre76gRmR6S3G9BUvmuf66cr8W57aAUGExTWpXTGiNr3bRumQn
	N+TFYRA4pF1VTZz9M7BwyszdzG09tzcI2uc54k5lYDIJFmwZE1LxMTbJH+YiaA==
X-Google-Smtp-Source: AGHT+IEftYCarYzKyy8bIaH4vG7QrL57a8wqm5jUbQFiKzBpSyLc8ryVCkuL5W7tbHCcbSIsCZfCdQ==
X-Received: by 2002:a05:651c:b0a:b0:2ec:1708:4db2 with SMTP id 38308e7fff4ca-2ef05d604cdmr39479631fa.47.1721381052442;
        Fri, 19 Jul 2024 02:24:12 -0700 (PDT)
Message-ID: <2b0665cf-8205-4cf4-ad88-17aaa667045a@suse.com>
Date: Fri, 19 Jul 2024 11:24:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20 4/4] x86/fpu: Split fpu_setup_fpu() in two
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <cover.1720538832.git.alejandro.vallejo@cloud.com>
 <da30dedcfa68d7c30375b96c85424e13ec6d458b.1720538832.git.alejandro.vallejo@cloud.com>
 <c311ef0f-7d86-4a2b-b056-9bfa0665113e@suse.com>
 <D2SU9MKGLSB7.1J9TBL8HPU4AP@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <D2SU9MKGLSB7.1J9TBL8HPU4AP@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.07.2024 19:25, Alejandro Vallejo wrote:
> On Thu Jul 18, 2024 at 1:19 PM BST, Jan Beulich wrote:
>> On 09.07.2024 17:52, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/i387.c
>>> +++ b/xen/arch/x86/i387.c
>>> @@ -310,41 +310,25 @@ int vcpu_init_fpu(struct vcpu *v)
>>>      return xstate_alloc_save_area(v);
>>>  }
>>>  
>>> -void vcpu_setup_fpu(struct vcpu *v, struct xsave_struct *xsave_area,
>>> -                    const void *data, unsigned int fcw_default)
>>> +void vcpu_reset_fpu(struct vcpu *v, uint16_t fcw)
>>>  {
>>> -    fpusse_t *fpu_sse = &v->arch.xsave_area->fpu_sse;
>>> -
>>> -    ASSERT(!xsave_area || xsave_area == v->arch.xsave_area);
>>> -
>>> -    v->fpu_initialised = !!data;
>>> -
>>> -    if ( data )
>>> -    {
>>> -        memcpy(fpu_sse, data, sizeof(*fpu_sse));
>>> -        if ( xsave_area )
>>> -            xsave_area->xsave_hdr.xstate_bv = XSTATE_FP_SSE;
>>> -    }
>>> -    else if ( xsave_area && fcw_default == FCW_DEFAULT )
>>> -    {
>>> -        xsave_area->xsave_hdr.xstate_bv = 0;
>>> -        fpu_sse->mxcsr = MXCSR_DEFAULT;
>>> -    }
>>> -    else
>>> -    {
>>> -        memset(fpu_sse, 0, sizeof(*fpu_sse));
>>> -        fpu_sse->fcw = fcw_default;
>>> -        fpu_sse->mxcsr = MXCSR_DEFAULT;
>>> -        if ( v->arch.xsave_area )
>>> -        {
>>> -            v->arch.xsave_area->xsave_hdr.xstate_bv &= ~XSTATE_FP_SSE;
>>> -            if ( fcw_default != FCW_DEFAULT )
>>> -                v->arch.xsave_area->xsave_hdr.xstate_bv |= X86_XCR0_X87;
>>> -        }
>>> -    }
>>> +    v->fpu_initialised = false;
>>> +    *v->arch.xsave_area = (struct xsave_struct) {
>>> +        .fpu_sse = {
>>> +            .mxcsr = MXCSR_DEFAULT,
>>> +            .fcw = fcw,
>>> +        },
>>> +        .xsave_hdr.xstate_bv = fcw == FCW_RESET ? X86_XCR0_X87 : 0,
>>> +    };
>>> +}
>>
>> Old code checked against FCW_DEFAULT uniformly. You switching to checking
>> against FCW_RESET is no functional change only because all callers pass
>> either of the two values. I wonder whether the new function's parameter
>> wouldn't want to be a boolean (reset vs init).
> 
> I agree, and It's effectively what it is. The problem with the boolean is that
> it's utterly unreadable at the call sites.
> 
>     vcpu_reset_fpu(v, true); /* Is this reset or set-to-default? */

    vcpu_reset_fpu(v, true /* reset */);

and

    vcpu_reset_fpu(v, false /* init */);

would be an option. But I get your point.

>     vcpu_reset_fpu(v, FCW_RESET); /* Clear to be a reset */
> 
> I could also split it in 2, so we end up with these:
> 
>   * vcpu_setup_fpu(v, data): Copies x87/SSE state
>   * vcpu_reset_fpu(v): Reset to power-on state
>   * vcpu_set_default_fpu(v): Reset to default state
> 
> Thinking about it, I kind of prefer this second approach. Thoughts?

I'd be okay with that seeing how small the two functions would end up
being, albeit I don't like the "set_default" part of the name very much.
If I could talk you into using "init" instead ...

Jan


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 10:12:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 10:12:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760958.1170930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUkaV-0001Sf-3g; Fri, 19 Jul 2024 10:11:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760958.1170930; Fri, 19 Jul 2024 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 1sUkaV-0001SY-09; Fri, 19 Jul 2024 10:11:43 +0000
Received: by outflank-mailman (input) for mailman id 760958;
 Fri, 19 Jul 2024 10:11:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUkaU-0001SO-2f; Fri, 19 Jul 2024 10:11:42 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUkaU-0005TT-11; Fri, 19 Jul 2024 10:11:42 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUkaT-0002vK-Hz; Fri, 19 Jul 2024 10:11:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUkaT-0005iS-HW; Fri, 19 Jul 2024 10:11: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ldxWzIvIRGmpqrdQLsPKrU5tDqzQ2aX6+9o5YANc7dQ=; b=5lXIA+wKBgI40ZQJHf8TMf1aQ7
	I2gquZn1L2Z7WZibmmr056GivFuV9dYat2I3zcYTjLbbcBTW+i3SDHMMV35l+M+FgGTKjCaZ44+GA
	MWR8VgAixQOLULVKA2tpmC/J72au5SLTJRRwy5HK04UD79rlpGYKfQZ5kxytT/vrggLs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186901-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186901: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-xl-qemuu-debianhvm-amd64:xen-install:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:xen-install:fail:regression
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:xen-install:fail:regression
    xen-unstable-smoke:test-armhf-armhf-xl:xen-boot:fail:regression
X-Osstest-Versions-This:
    xen=a99f25f7ac60544e9af4b3b516d7566ba8841cc4
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Jul 2024 10:11:41 +0000

flight 186901 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186901/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  7 xen-install fail REGR. vs. 186826
 test-amd64-amd64-libvirt      7 xen-install              fail REGR. vs. 186826
 test-arm64-arm64-xl-xsm       7 xen-install              fail REGR. vs. 186826
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 186826

version targeted for testing:
 xen                  a99f25f7ac60544e9af4b3b516d7566ba8841cc4
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186826  2024-07-16 19:00:25 Z    2 days
Failing since        186880  2024-07-18 15:00:30 Z    0 days    6 attempts
Testing same since   186883  2024-07-18 21:11:32 Z    0 days    5 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Julien Grall <julien@xen.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-amd64-libvirt                                     fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit a99f25f7ac60544e9af4b3b516d7566ba8841cc4
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:51:02 2024 +0100

    CHANGELOG.md: Start new 4.20.0 section
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit 974ad0926e4616444dc0c1d83ba86bd6eb8dd52d
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:48:06 2024 +0100

    CHANGELOG.md: Set release date for 4.19
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>

commit 285937175be2509bc5b4c2eff2ec0b2fa758ff69
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:00:47 2024 +0100

    Re-run ./autogens.h for 4.20
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit f66e523189f1130a2fd3b77a9f0c8ac152355ac8
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:42:58 2024 +0100

    Set version to 4.20; 4.19 has branched
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit b181bb9fdbae9cdae96f979cfcc30c6195071417
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:40:44 2024 +0100

    Revert "Config.mk pin QEMU_UPSTREAM_REVISION (prep for Xen 4.19 RC1)"
    
    The branch is unstable again.
    
    This reverts commit 7584e39986ef2cb4816892ffaefb26f4ad063468.
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 10:26:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 10:26:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760971.1170943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUkoH-0003DV-A0; Fri, 19 Jul 2024 10:25:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760971.1170943; Fri, 19 Jul 2024 10: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 1sUkoH-0003DO-7J; Fri, 19 Jul 2024 10:25:57 +0000
Received: by outflank-mailman (input) for mailman id 760971;
 Fri, 19 Jul 2024 10: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=VB7D=OT=epam.com=prvs=39308c3d2f=sergiy_kibrik@srs-se1.protection.inumbo.net>)
 id 1sUkoG-0003DI-6A
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 10:25:56 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 467f01bb-45b9-11ef-8776-851b0ebba9a2;
 Fri, 19 Jul 2024 12:25:53 +0200 (CEST)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46J9xwrA015214;
 Fri, 19 Jul 2024 10:25:43 GMT
Received: from as8pr04cu009.outbound.protection.outlook.com
 (mail-westeuropeazlp17011026.outbound.protection.outlook.com [40.93.65.26])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 40fe09h99e-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 19 Jul 2024 10:25:43 +0000 (GMT)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by PA6PR03MB10405.eurprd03.prod.outlook.com (2603:10a6:102:3d4::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.18; Fri, 19 Jul
 2024 10:25:40 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.7741.033; Fri, 19 Jul 2024
 10:25: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: 467f01bb-45b9-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NnAggtMaLfnm/kmHQz8ADUMiQusZjkwK0DzIwm495dpynXQS9CdIjKklwpXjTfFYomf05PVLiUY+oYTULaEv7AojRaPakrLVop45vAWssd1Q9gMlDt9YZYzzg5Xs0yG3yFoGjipUTSyg5TCKtt+AMtewKHsCFUGewMAY85lKH5XKr4bIBSt9sMV9tnTwBXmtl5BS+OhqOgBocRFP9mi1BVYJVvZYxibV2QDeFSCZ4UnXNoqSLqkqwVkhUT1S3q6GwEgVTA1mwrZLMrE9+4q4TH2N5WVn/uBoUnmWm6Bx/RLD8jiDBW537vJOCo4b0AtbUqc8/Atko8AmIHg1at5Yvg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JXNt+dP5yqQ5aS8tLzvcmScu7fdKdFrX4XddTGOPoNI=;
 b=RTsEc8HU5c9RTo2/H8S1z53SQV306AEOaVsYi7VST5eYc8LsULYPjHW6qroNkhYot3bDvRbcq/zefGv+gi4ayVZsDgzfNgRAVlORQOvzcN/TbZz+WobQhcwN8CW6CKyPK4NnUiux4V6dhSS4b1tX9Nw5bXML5aglSPyNOcL4zJTXrSYLtjd8YBF0O8m5+97qqz31YYNumFzJXty0PiztfQnHhwp7RSkos6MCeyh2EYmoEk8Dy67zdFlElp0HSw7S6UXbiBOjjs2IOGOAXRDNrwb4yp/GxTIC4wy49itt/EEnP/6vp/mtNOxA4szLw1sppHuIdzXBdddHlD42JXMZpw==
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=JXNt+dP5yqQ5aS8tLzvcmScu7fdKdFrX4XddTGOPoNI=;
 b=pXsaGcRxS0o0Cz8NZuEW7GcZWb6sKmGQoxKXHFuJi9YhNhU5Weknmbo6xfjdibdxFr7Yr4dPFBGWRXyCwXH/VTX6NTQNOt3ZysoH7ZcWiDsFcPp4OMhzH8Au5B5yoL4nSAkM4fsBS0qwlqoC7z0PPnPIugd9Go67cjzmdepQCIUCWCi5cXFbu+uoMqYcvoS1I3PN8Flv4n9urqw5/r9sbSLqv8/NOfZvOwXSgtOpbrC0FT/wUSshXOEqZJCEB2oE9TYDL3GPMfX6xmwMUTPSQl05gyhNulYjyKRAA0VCWUnhytXdH7CL/bOvoqOZyXJ0Vmi3qDzxNDnpHi/UiIZXlw==
Message-ID: <8969dd83-2fd7-4afe-9809-d6ebd342f8f8@epam.com>
Date: Fri, 19 Jul 2024 13:25:37 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 02/14] x86/altp2m: add static inline stub for
 altp2m_vcpu_idx()
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
        Tamas K Lengyel <tamas@tklengyel.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <952cb307528f16fc36a3fadbe26d83bc6805f81e.1720501197.git.Sergiy_Kibrik@epam.com>
 <f917837a-e9ee-4d55-b158-208de57ee034@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <f917837a-e9ee-4d55-b158-208de57ee034@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BE1P281CA0129.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:7a::19) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|PA6PR03MB10405:EE_
X-MS-Office365-Filtering-Correlation-Id: 01831d08-d22f-42dc-2a2d-08dca7dd2325
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|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Sk9ybys0V2NXUnVyMHFmT0ZxVkl1dmwvNHJ2aVYxdlNRL3ZacTZOdGdaeGg1?=
 =?utf-8?B?bHBaTWt1MXkrczRsRGRnQ3NleHFWK0MxNE1pdmdSSzZwNlA1Y1JlbEkzRlVJ?=
 =?utf-8?B?SkFHV2JkVEFUYTBaV0xFVnFCbThNSlp5M1UwTVdoU002K2ZkM1BkNHRVenps?=
 =?utf-8?B?Lzc5RzlLeWdEKzNYMm03N0dDemtoS2s0RSttajMzTnhJU0dzZHUxODVuam1Q?=
 =?utf-8?B?NytVUEpyaFNqY3pORW0wbnNxQ0N3anpra0poMnMxamsxUit6cTlqY0VEaFNt?=
 =?utf-8?B?dDNIK0U0aGc2ZmloUGtyMTNqZjFWTmsxcDB3MmRJZWhHYjdEUjk1aVIrbnc0?=
 =?utf-8?B?Q0JCWjZDK01PZ2VNYmpTMnFSTW9RYzM3NDBWL0QzeDhHcHNiMDhSb3ExSE50?=
 =?utf-8?B?UTBNMVVsS2tjcElrWVZCdnpKc0UwYUpUeHV1T0E2amU0VUpFMFNqUHIwM0sr?=
 =?utf-8?B?cVk3MWdFQW15eGttQmJTWWEzU1BnMDNDNGRaTk1XUnlqUUxGMFpWMFo2bVdU?=
 =?utf-8?B?dktBMU91ZGJkNXIramdoOWlMNVRqQmQ2REdHMTduUFlrcnU1SlB6MWdEL01l?=
 =?utf-8?B?aHpCQUp0dTMwOUZUZVZBM1kxbGd0UEp1TzN3dVBlVG94Vm52eThtdzk5Mm9K?=
 =?utf-8?B?bzNEK3hvUDd5S1BMZUVGZ2xydC83M3hFWmk4Ni9od1FBVUl2aUMzaHA0MDM1?=
 =?utf-8?B?am1GbDh6TlJnMkUwc20vVEx0TTF0ODRyRlNiRGlOc2l1VDJKM3Y5ZDBIMnVN?=
 =?utf-8?B?Q1hSSnNXcjBIekdmVCtIdjVLUnBFb1BHMXU1VzlMN2lHZWt6M1pnNFR4V1hD?=
 =?utf-8?B?WHFqQ20wL3h2ZFJnZzRoNzVrZEVUY1NVZWRQajYyYXh3VTZGeTFoTm5QR2RS?=
 =?utf-8?B?THlIckZkM21DN2R3NHAyOFlqWlg4WWdDemg2MDNWbE5rcExHZjFyY0cvL3I5?=
 =?utf-8?B?MzRLZlA2SzR4Q1VWemdSWmlsRjBVSzNGN2xNM2h1TDhKM2JMTUJrRjE3bGZ6?=
 =?utf-8?B?djZZNW9VY0QvTUtUK083OVVsQUdNRDFjUG4rQ0d6eW5wdkxrc21LV055Y0NY?=
 =?utf-8?B?YjVkWHVvYWlROFhGZ05VYnBuQkpFVXhaaEpSd3NCbTFkNUo5cXl2d291bFU3?=
 =?utf-8?B?M1F1NlRvSTNRc20yeWt0UGdqeVJ1czhDSEdpVGhkbWIrZlFxTDlEMzNqTmtR?=
 =?utf-8?B?UzdweHdJZTZNQStUSFZJenViRkI1ZW9qWWxWTTJqTlU0Z0hiTE4wVlM1Qzkw?=
 =?utf-8?B?Y0Q5SG5EZUpDeWhPTVFoOGJoU296bVJrSk9tbElkSWdmcW5la3pCdGJ0SkM0?=
 =?utf-8?B?RFVrNTlhSVBoV1VYdFNYaEpyOVZWdGxQUUkyS0RBck9KdHpPVWlFS0tGa0xU?=
 =?utf-8?B?SWxhYzhOdTZyZ0FWcUtJSzZUbEhBeVRaR2dwQ3d1WEJIY3hPWkVqejlrcUc4?=
 =?utf-8?B?UXloOEVrMXlSUm9pNUNsVHV0bDVGVkUwSzVVMUExMy8wenl6VVR0UStCdlRp?=
 =?utf-8?B?d1ZWVkVaL3ZQMFhyNUhPWmVjZUYzWWxpNks2RWJTVDVhWktGaG5ZNzgrZFc4?=
 =?utf-8?B?Y0pkSUZnbWx1Y0M4RnFmdGIvQmYvaUVMaTd3Q08yRm42OWVlRXVRSXJpVjVk?=
 =?utf-8?B?YS9kWFh3Uk1laE1XU21MeitsRVRWRFZrdWNCaks0TE9QNWlqVHdzOEtOM3VO?=
 =?utf-8?B?ZEZJTEdkWk9VMFB5SnJuRENjUGl5NUpKVStxcC82akcwNW9MSWFHVDB3dUZB?=
 =?utf-8?Q?NsBWMIR3eGVHpou41I=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q1lNTmpoY3hYQmNlOUVJeWdmRDVadTlGUXpNSG0vM2VjRFpsWDR6WXZGanRC?=
 =?utf-8?B?eXlmYWdmb3RXQU9iZHJSRi9tYnVMZzk4a01VTFJwbmhxbnNEeWxDUlFVN3Nt?=
 =?utf-8?B?MU41RklHWjRRSVFjQUFkNjU0WjUyN0JXelorNVVvRmdyaEZIVGtvRnd2Y3F2?=
 =?utf-8?B?SFM1LzV3Vk9maDhBeVNERklEWER6ODAycnVRc1JieUdOdnZtVTFMZTVzbFZx?=
 =?utf-8?B?bC8xK2JZM2o5Yk1NVXJZSWFOdStyTEVyZ3RNblQwZUhDNXRvV0hYaW9uSEhi?=
 =?utf-8?B?UEVMMElRTVZONkVleHEvR3dCbkUwMGkyZHc3NjRHNDhtbTNKZE83OEp1Rnoy?=
 =?utf-8?B?YVFHcWVlUTdNQ2REK3E2RkpROGQrZkUzazgwTzFPUlcrYTVpQU9naEwzNnFo?=
 =?utf-8?B?dHN5U0c4Q25nbk5DWnJhOGt3Q2owMlAzaFJwWDdmNFlIdUNxYU1jUGUrMmcv?=
 =?utf-8?B?TXFvNVkrV2xwbUROTXBnRm5YWTFxU0hmeXhEVmxTc2xTMTc4NVRhNlk4VU5i?=
 =?utf-8?B?R21VVjlKeldGYXdYeWVkNnRsbU1RcEd0aFdsSFpHZkJwekNxdGdrQk1BcVpi?=
 =?utf-8?B?T2xMZlRlRHBnbjYrNnkzZDZORXlOSktXSkZYeUtES1M2M2VYc1lNSkVTanl1?=
 =?utf-8?B?b3lOZDk2MDdIVEYyR0RaSnFOTTU4WXpENVR2aWN0SFFqdU5PTkhUZ2JqZmRw?=
 =?utf-8?B?V3VQQy9YU3NLakpUSFFZcDZObVY5OUhWVkZCM1FGd2w2bndzMC9MWm1yNjg3?=
 =?utf-8?B?V3owWVVQbUpQeUNkVTdIUjNOdnFXQ01IUGVGczlXL2drVmpkN2gwKzFUZmNY?=
 =?utf-8?B?M3Z6RjkvMzRhSHY1VEo2N3VJSHhYc3VQeGRYcDJSMWxXckpxbjAxY1BwS2x4?=
 =?utf-8?B?SVpaTzhzN3hSdlNYMW5LK3RiNlppUzI1YlVIeGZmTjFIajBaU1NiYnhQa0hz?=
 =?utf-8?B?dGxBNSsrRENqdlRFb1pKSGY0bHVWUWhmRWc1R1BNWkNwOSs5SkdwZkZKR1dQ?=
 =?utf-8?B?K1VVOVlXTUZFM0R2b1FZN09weHovbk43bmpRRklzcnNuSFdOWGlyNVdiMHIw?=
 =?utf-8?B?NXo4azQ0ZXdJL0F2REQxMDVSeEw4MmZuVUVpU3FzcDRsZ3lKZUhPMm1JcVRI?=
 =?utf-8?B?a2lYNG5aQUFUMG5iODlCVFVKQlFqUEhoMnluUWZiVTQrMmw2cGNpUkhGTkpw?=
 =?utf-8?B?azhzN0VyK21PZ2ZUbnVvMTk0QkUyazFCcDMxVFBRYWFYTCs4bXhvZkdPZkUw?=
 =?utf-8?B?REdzOWtvRjVTWjVIcjFpMks3bThDb3lQNzFQR05pSmlpUkdEL3ovSm5EM0N1?=
 =?utf-8?B?d3VlT2h2YjVDSVZXZHJrSzlIbDJMMDBZQ0VDbi9GSjU5LzFBS01mNVovL3l1?=
 =?utf-8?B?UjJoOElXTXQ4aU4xLzh2cWVIdkoxaXQ5U3VCTXVrV0NwWFFtbHpxYndhalJa?=
 =?utf-8?B?U20zZ3BYWnI2ZEozSk9CWmUyV1BlM0xQWWtPSlBsTVoyQ2dQTWIxQXhKTHpz?=
 =?utf-8?B?VWZTeHFyc2cvSFlnelJjMzFrZzlBenVUTDJXSUlKMk85TzdSTnVFZkdVTEdQ?=
 =?utf-8?B?NzBqRXVkbFczOFVvSGc0YVp1ZWsxOWVUdzFvVWRVUWI1NnYzMkl2VkJCcW80?=
 =?utf-8?B?d256bUlTNmxuUVdlSGVvOU5qQjlLU2hnT1FhczhYV2EvbkszaXZWVHIzWUk3?=
 =?utf-8?B?cXpuRmkrc1k2SUI4ZVllQVNpaVF0Y1AvNzVTWXpYQXJkekZDQU9qOUpPcERJ?=
 =?utf-8?B?alhlTTNYbnR6NXlKMFFtMEQrZVpZaHhwU0haaTFxY05pc3pEWHBNTVNMMGt5?=
 =?utf-8?B?eWpKUGlhTzBNenZnYWoxSTdIa0Z3VFdNakhZSWc3RnpzNzJ3ZnhrY1hUaVE4?=
 =?utf-8?B?OXNPU3NXMU1zdWtsL0F3cHJ0M1RPZVRZNHlBZlo1N2d6Z0xVb1Rhbldqak1O?=
 =?utf-8?B?WWczOXZRaElGUEE4YVlOSk5kSzBCL0tWWW5US3ZIbG11ejJtQWw4QzNQZ3g5?=
 =?utf-8?B?NFpYbFhrOUhRam9ZeHhXMW1mSmF0NWs3emJsZmxsUXkxOXJNdHh4QWo5N2sz?=
 =?utf-8?B?NDFoNENlbkNvajJuN1JFOXpBbDJqMDZielpVMUJFYjBDSkgxOVBJdjRaUzNL?=
 =?utf-8?B?bklMZEFpdlM4eWh2KzNuTlgxOWtJd0VDRE9xRVM3cHd2UGQ0c0ZRcU5lTGV2?=
 =?utf-8?B?a0E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 01831d08-d22f-42dc-2a2d-08dca7dd2325
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jul 2024 10:25:40.0516
 (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: x0IGj88/LvUnbt/tWh2ZfWPTy8YgKOXwY1YIu/hrDPAHn0GKl3peTbA1JHx+GIfSJYRbhLLFe7WQpDcoS2wSXw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR03MB10405
X-Proofpoint-GUID: mFbFllk85recyBwOmZdgkJtnlPHHfe47
X-Proofpoint-ORIG-GUID: mFbFllk85recyBwOmZdgkJtnlPHHfe47
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-19_06,2024-07-18_01,2024-05-17_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0
 phishscore=0 clxscore=1011 bulkscore=0 mlxlogscore=999 lowpriorityscore=0
 malwarescore=0 adultscore=0 priorityscore=1501 suspectscore=0 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2407110000
 definitions=main-2407190080

09.07.24 10:09, Jan Beulich:
> On 09.07.2024 07:48, Sergiy Kibrik wrote:
>> The stub just returns 0 due to implementation of  p2m_get_mem_access() for
>> x86 & ARM expects it to be 0 when altp2m not active or not implemented.
>>
>> The separate stub is favoured over dynamic check for alt2pm availability
>> inside regular altp2m_vcpu_idx() because this way we retain the possibility
>> to later put the whole struct altp2mvcpu under CONFIG_ALTP2M.
>>
>> The purpose of the change is later to be able to disable altp2m support and
>> exclude its code from the build completely, when not supported by target
>> platform (as of now it's implemented for Intel EPT only).
>>
>> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> 
> Yet what doesn't become clear is why 0 is a valid value to return. On the
> surface 0 is a valid index when altp2m is enabled. In which case it
> couldn't be used (without clarification) when altp2m is disabled.
> 

I looked into it a bit more and found your concerns to be valid -- 
indeed altp2m_vcpu_idx() should not return valid index when altp2m not 
supported. In fact it seems that this routine should not even be called 
when altp2m is not active -- all but one call sites check 
altp2m_active() first, and there's stub in include/asm-generic/altp2m.h 
to block accidental calls to it.

So I think about falling back to v2 of this patch i.e. to guard that one 
out of line call in hvm_monitor_check_p2m() but with better patch 
description:

https://lore.kernel.org/xen-devel/01767c3f98a88999d4b8ed3ae742ad66a0921ba3.1715761386.git.Sergiy_Kibrik@epam.com/

would that be acceptable ?

   -Sergiy


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 10:31:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 10:31:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760979.1170952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUkth-0004rP-Sv; Fri, 19 Jul 2024 10:31:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760979.1170952; Fri, 19 Jul 2024 10: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 1sUkth-0004rI-QO; Fri, 19 Jul 2024 10:31:33 +0000
Received: by outflank-mailman (input) for mailman id 760979;
 Fri, 19 Jul 2024 10:31:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUktg-0004r8-9g; Fri, 19 Jul 2024 10:31:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUktg-0005pu-4q; Fri, 19 Jul 2024 10:31:32 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUktf-0003fU-Ph; Fri, 19 Jul 2024 10:31:31 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUktf-0007bC-PD; Fri, 19 Jul 2024 10:31: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hRqfVD34ZJHN3isa+fjqYB3F0xMhH8JHQIf7fGkXEL4=; b=LzvxBX7UMrUYyItgwwiLCaaI3j
	ndpdm5V1ZLvCEGliGZmHrLqZPT0kKzKKIc3b/clq1bl5zGg4SHFYTVpkHQM8lFsARYwRC4lESmQLJ
	hIAytPWkErAUHJ3e7K1KlVa/P6/orIF81ZhWc7lSZHbmwAIJ5/pX1Huw2FyWBHhHj96E=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186879-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [qemu-upstream-4.19-testing baseline test] 186879: tolerable FAIL
X-Osstest-Failures:
    qemu-upstream-4.19-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl:host-ping-check-xen:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    qemu-upstream-4.19-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    qemu-upstream-4.19-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    qemuu=0df9387c8983e1b1e72d8c574356f572342c03e6
X-Osstest-Versions-That:
    qemuu=0df9387c8983e1b1e72d8c574356f572342c03e6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Jul 2024 10:31:31 +0000

"Old" tested version had not actually been tested; therefore in this
flight we test it, rather than a new candidate.  The baseline, if
any, is the most recent actually tested revision.

flight 186879 qemu-upstream-4.19-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186879/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop      fail baseline untested
 test-armhf-armhf-xl          10 host-ping-check-xen     fail baseline untested
 test-armhf-armhf-libvirt   16 saverestore-support-check fail baseline untested
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail baseline untested
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop      fail baseline untested
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 qemuu                0df9387c8983e1b1e72d8c574356f572342c03e6
baseline version:
 qemuu                0df9387c8983e1b1e72d8c574356f572342c03e6

Last test of basis   186879  2024-07-18 14:11:49 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Fri Jul 19 11:14:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 11:14:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.760996.1170974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUlYY-0001aX-7m; Fri, 19 Jul 2024 11:13:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 760996.1170974; Fri, 19 Jul 2024 11: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 1sUlYY-0001aQ-1H; Fri, 19 Jul 2024 11:13:46 +0000
Received: by outflank-mailman (input) for mailman id 760996;
 Fri, 19 Jul 2024 11: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=Y74h=OT=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1sUlYW-0001YK-U9
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 11:13:44 +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 f4e1c071-45bf-11ef-8776-851b0ebba9a2;
 Fri, 19 Jul 2024 13:13:42 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5a10bb7bcd0so1041268a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 19 Jul 2024 04:13: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: f4e1c071-45bf-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721387622; x=1721992422; 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=5e7wKCkzNVlPlHXDTLl/rmjv17vv+TYao9fpalfP0SY=;
        b=ADwOtJLbN+JvJpno4O8CnEb87H2z/D5AhH44F28stOJGxuUpiTTZBTox+J58gVyqYh
         ZSKWJFVk6yQ3nA3RCTtz4zQrHrdcGuDuGI+kfaTO3tBxgFC43FUTF51Uko36QIdHUwkQ
         oZaghE/BbD9neA63QOAxrHy3DJXUt3YgAkBl0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721387622; x=1721992422;
        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=5e7wKCkzNVlPlHXDTLl/rmjv17vv+TYao9fpalfP0SY=;
        b=wO5fJd5Ag6CyYhNe4ez/CuwA4iheE4/nJIXlwfr21ljhzngMhkxoR4qv+p7N0OKB7S
         qzqhgyfa+khbtIAQTK53w46IMS+qwOzgqo5Go5rxhqKytr/b+LBXLjcvbiJiqUmWJ4zj
         Qe8AXDP3DYvG6wlxGoS5ANlHDBNkwh6bEsSFEiMIqj/B9JVgl2DYg7OXR62bMcZSdBRE
         ZhTXdaI5LddEwPpJ3xCD1JPgKI0vmHEaPhqZWk7Dni2TpomdiB8/4ZYlGlNRY2hGoW0s
         Eu73tUlUoAGL9WQNO5Um+B1eyEnbDnCNY0zItmQ87H4IBOdug0N/a8Y2f8NiPsl3WaGF
         Xh/w==
X-Forwarded-Encrypted: i=1; AJvYcCVtYwPJrWUvoIpwug7GX+ijILN7K5/GVGer/eIFekg5+3xoRkhjGPqnNVp/EE6nuwOQgHKVzJXatO7VVqMvXbOIDidm8y72omW3Y4T+a7A=
X-Gm-Message-State: AOJu0Yy2Sy/OROZC76A9VXZcYKYIxQuQoflEShxGY+CiR3AKmuYXSnfF
	J4QBcwEyWtm5EuRMTFEj6jIbOKM4DEVTBLNkZYkpyicZGm5s+YO20H9iqp0koVG7vCa02P/ZG1m
	V6s8lIZZxAay0AfjFA85sU4BBxdH9iwgwT9NULw==
X-Google-Smtp-Source: AGHT+IE2E6/0CR/edfh7Q2HPb/VFViuIMYHUXMOIzEDWTbjY5p+yMMocv/qWDt07IMeaBdZj5Uh0C1g8GkzU4fm8wKg=
X-Received: by 2002:a17:906:2f0b:b0:a77:dbf0:d30 with SMTP id
 a640c23a62f3a-a7a011b6466mr523528966b.41.1721387621269; Fri, 19 Jul 2024
 04:13:41 -0700 (PDT)
MIME-Version: 1.0
References: <CAO-mL=xEEdCjUWN3oqJEBjktH+dsJDXrQ2uHWD80bJJ32q3_pw@mail.gmail.com>
 <925ec9b8-83b3-473c-aa7c-dd825cdc3b9a@xen.org>
In-Reply-To: <925ec9b8-83b3-473c-aa7c-dd825cdc3b9a@xen.org>
From: Kelly Choi <kelly.choi@cloud.com>
Date: Fri, 19 Jul 2024 12:13:05 +0100
Message-ID: <CAO-mL=yhMDuvMOWHU93jNLgxOJe4_Bir44UC23+HoAfj0yK=Tw@mail.gmail.com>
Subject: Re: [Vote] Xen Project Code of Conduct Team Member
To: win-pv-devel@lists.xenproject.org, 
	xen-devel <xen-devel@lists.xenproject.org>, 
	"xen-api@lists.xenproject.org" <xen-api@lists.xenproject.org>, minios-devel@lists.xenproject.org, 
	mirageos-devel@lists.xenproject.org
Cc: committers@xenproject.org, Roger Pau Monne <roger.pau@cloud.com>
Content-Type: multipart/alternative; boundary="000000000000afe24c061d97c966"

--000000000000afe24c061d97c966
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi all,

I have received all votes from leadership teams of three mature projects
and achieved a quorum on this proposal.
Votes have been received both in public and private.

The outcome of votes:
Hypervisor: +3
Windows PV: +2
XAPI: +2

Roger will be added as the new code of conduct team member.

Many thanks,
Kelly Choi

Community Manager
Xen Project


On Tue, Jul 9, 2024 at 6:42=E2=80=AFAM Julien Grall <julien@xen.org> wrote:

>
>
> On 08/07/2024 10:00, Kelly Choi wrote:
> > Hi all,
> >
> > As you are aware, George Dunlap has recently stepped down from the Xen
> > Project as a committer, but he was also a part of the Code of Conduct
> team.
> >
> > As a result, Stefano will be the only member remaining on the CoC team.
> @Roger
> > Pau Monne <roger.pau@cloud.com> has volunteered to join the team, so
> that
> > there are at least two members.
> >
> > In accordance with https://xenproject.org/developers/governance/, I nee=
d
> > the leadership teams of the three mature projects: the Hypervisor, the
> XAPI
> > project, and the Windows PV Driver project to vote on this proposal.
> >
> > The specific voting rules, in this case, are outlined in the section:
> > https://www.xenproject.org/governance.html#project-decisions
> >
> > I propose to tally the votes after July 31st, 2024. You can reply via
> email
> > in public or private:
> > +1: for proposal
> > -1: against proposal
>
> +1
>
> Cheers,
>
> --
> Julien Grall
>

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

<div dir=3D"ltr"><div dir=3D"ltr">Hi all,<div><br></div><div>I have receive=
d all votes from leadership=C2=A0teams=C2=A0of three mature projects and ac=
hieved a quorum=C2=A0on this proposal.</div><div>Votes have been received b=
oth in public and private.</div><div><br></div><div>The outcome of votes:</=
div><div>Hypervisor:=C2=A0+3</div><div>Windows PV:=C2=A0+2</div><div>XAPI:=
=C2=A0+2</div><div><br></div><div>Roger will be added as the new code of co=
nduct team member.=C2=A0</div><div><br></div><div><div><div dir=3D"ltr" cla=
ss=3D"gmail_signature"><div dir=3D"ltr"><div>Many thanks,</div><div>Kelly C=
hoi</div><div><br></div><div><div style=3D"color:rgb(136,136,136)">Communit=
y Manager</div><div style=3D"color:rgb(136,136,136)">Xen Project=C2=A0<br><=
/div></div></div></div></div><br></div></div><br><div class=3D"gmail_quote"=
><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Jul 9, 2024 at 6:42=E2=80=AF=
AM Julien Grall &lt;<a href=3D"mailto:julien@xen.org">julien@xen.org</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"><br>
<br>
On 08/07/2024 10:00, Kelly Choi wrote:<br>
&gt; Hi all,<br>
&gt; <br>
&gt; As you are aware, George Dunlap has recently stepped down from the Xen=
<br>
&gt; Project as a committer, but he was also a part of the Code of Conduct =
team.<br>
&gt; <br>
&gt; As a result, Stefano will be the only member remaining on the CoC team=
. @Roger<br>
&gt; Pau Monne &lt;<a href=3D"mailto:roger.pau@cloud.com" target=3D"_blank"=
>roger.pau@cloud.com</a>&gt; has volunteered to join the team, so that<br>
&gt; there are at least two members.<br>
&gt; <br>
&gt; In accordance with <a href=3D"https://xenproject.org/developers/govern=
ance/" rel=3D"noreferrer" target=3D"_blank">https://xenproject.org/develope=
rs/governance/</a>, I need<br>
&gt; the leadership teams of the three mature projects: the Hypervisor, the=
 XAPI<br>
&gt; project, and the Windows PV Driver project to vote on this proposal.<b=
r>
&gt; <br>
&gt; The specific voting rules, in this case, are outlined in the section:<=
br>
&gt; <a href=3D"https://www.xenproject.org/governance.html#project-decision=
s" rel=3D"noreferrer" target=3D"_blank">https://www.xenproject.org/governan=
ce.html#project-decisions</a><br>
&gt; <br>
&gt; I propose to tally the votes after July 31st, 2024. You can reply via =
email<br>
&gt; in public or private:<br>
&gt; +1: for proposal<br>
&gt; -1: against proposal<br>
<br>
+1<br>
<br>
Cheers,<br>
<br>
-- <br>
Julien Grall<br>
</blockquote></div></div>

--000000000000afe24c061d97c966--


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 11:43:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 11:43:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761021.1170993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUm0r-0005o4-Jk; Fri, 19 Jul 2024 11:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761021.1170993; Fri, 19 Jul 2024 11:43:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUm0r-0005nx-H6; Fri, 19 Jul 2024 11:43:01 +0000
Received: by outflank-mailman (input) for mailman id 761021;
 Fri, 19 Jul 2024 11:33: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=9oqQ=OT=ti.com=a-singh21@srs-se1.protection.inumbo.net>)
 id 1sUlrd-0004gF-1D
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 11:33:29 +0000
Received: from fllv0015.ext.ti.com (fllv0015.ext.ti.com [198.47.19.141])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b6295d89-45c2-11ef-bbfd-fd08da9f4363;
 Fri, 19 Jul 2024 13:33:27 +0200 (CEST)
Received: from fllv0035.itg.ti.com ([10.64.41.0])
 by fllv0015.ext.ti.com (8.15.2/8.15.2) with ESMTP id 46JBXONI100164
 for <xen-devel@lists.xenproject.org>; Fri, 19 Jul 2024 06:33:24 -0500
Received: from DFLE114.ent.ti.com (dfle114.ent.ti.com [10.64.6.35])
 by fllv0035.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 46JBXO81041731
 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL)
 for <xen-devel@lists.xenproject.org>; Fri, 19 Jul 2024 06:33:24 -0500
Received: from DFLE103.ent.ti.com (10.64.6.24) 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; Fri, 19
 Jul 2024 06:33:24 -0500
Received: from lelvsmtp6.itg.ti.com (10.180.75.249) by DFLE103.ent.ti.com
 (10.64.6.24) 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; Fri, 19 Jul 2024 06:33:24 -0500
Received: from localhost (nightbug.dhcp.ti.com [10.24.68.87])
 by lelvsmtp6.itg.ti.com (8.15.2/8.15.2) with ESMTP id 46JBXNJL076804;
 Fri, 19 Jul 2024 06:33: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: b6295d89-45c2-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com;
	s=ti-com-17Q1; t=1721388805;
	bh=L0bRkCPaGDdgFautpIKHYtZ+R9TkSjccH9W/hhznknM=;
	h=From:To:CC:Subject:Date;
	b=K2QLL3gq0XHLIkiyVcKKJ01FPJOJ/UkBn2LFSbTE2I2m6GtJbJFhduwFZZW2CR7uk
	 4sS3QXLXTbUMxGIrOkLZXX3a9qQgVeMm1jSgzFunZru/qLBkuowoEsn6sbYWYQJG4+
	 FfIsGxuEY7q3eqwbRfZhC1s5Rbdw58SzluLiFyn8=
From: Amneesh Singh <a-singh21@ti.com>
To: <xen-devel@lists.xenproject.org>
CC: Amneesh Singh <a-singh21@ti.com>
Subject: [PATCH] drivers: char: omap-uart: add "clock-hz" option
Date: Fri, 19 Jul 2024 17:03:13 +0530
Message-ID: <20240719113313.145587-1-a-singh21@ti.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180

Quite a few TI K3 devices do not have clock-frequency specified in their
respective UART nodes. However hard-coding the frequency is not a
solution as the function clock input can differ between SoCs. So,
similar to com1/com2, let the user pass the frequency as a dtuart option
via the bootargs. If not specified it will fallback to the same DT
parsing as before. For example, dtuart=serial2:clock-hz=48000000 can be
a valid bootarg.

Signed-off-by: Amneesh Singh <a-singh21@ti.com>
---
 xen/drivers/char/omap-uart.c | 62 +++++++++++++++++++++++++++++-------
 1 file changed, 50 insertions(+), 12 deletions(-)

diff --git a/xen/drivers/char/omap-uart.c b/xen/drivers/char/omap-uart.c
index 1079198..660c486 100644
--- a/xen/drivers/char/omap-uart.c
+++ b/xen/drivers/char/omap-uart.c
@@ -305,33 +305,71 @@ static struct uart_driver __read_mostly omap_uart_driver = {
     .vuart_info = omap_vuart_info,
 };
 
+static void __init omap_uart_parse_config(struct omap_uart *uart,
+                                         const char *config) {
+
+    char options[256];
+    char *value, *start = options;
+
+    if ( !strcmp(config, "") )
+        return;
+
+    strlcpy(options, config, ARRAY_SIZE(options));
+
+    while (start != NULL)
+    {
+        char *name;
+
+        /* Parse next name-value pair. */
+        value = strsep(&start, ",");
+        name = strsep(&value, "=");
+
+        if ( !strcmp(name, "clock-hz") )
+            uart->clock_hz = simple_strtoul(value, NULL, 0);
+        else
+            printk("WARNING: UART configuration option %s is not supported\n",
+                   name);
+
+    }
+}
+
 static int __init omap_uart_init(struct dt_device_node *dev,
                                  const void *data)
 {
     const char *config = data;
     struct omap_uart *uart;
-    u32 clkspec;
     int res;
     paddr_t addr, size;
 
-    if ( strcmp(config, "") )
-        printk("WARNING: UART configuration is not supported\n");
-
     uart = &omap_com;
 
-    res = dt_property_read_u32(dev, "clock-frequency", &clkspec);
-    if ( !res )
-    {
-        printk("omap-uart: Unable to retrieve the clock frequency\n");
-        return -EINVAL;
-    }
-
-    uart->clock_hz = clkspec;
+    /* Default configuration. */
+    uart->clock_hz = 0;
     uart->baud = 115200;
     uart->data_bits = 8;
     uart->parity = UART_PARITY_NONE;
     uart->stop_bits = 1;
 
+    /*
+     * Parse dtuart options.
+     * Valid options:
+     *   - clock-hz
+     */
+    omap_uart_parse_config(uart, config);
+
+    /* If clock-hz is missing. */
+    if ( uart->clock_hz == 0 )
+    {
+        u32 clkspec;
+        res = dt_property_read_u32(dev, "clock-frequency", &clkspec);
+        if ( !res )
+        {
+            printk("omap-uart: Unable to retrieve the clock frequency\n");
+            return -EINVAL;
+        }
+        uart->clock_hz = clkspec;
+    }
+
     res = dt_device_get_paddr(dev, 0, &addr, &size);
     if ( res )
     {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Jul 19 11:51:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 11:51:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761035.1171007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUm9P-0007WU-HZ; Fri, 19 Jul 2024 11:51:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761035.1171007; Fri, 19 Jul 2024 11:51: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 1sUm9P-0007WN-Ds; Fri, 19 Jul 2024 11:51:51 +0000
Received: by outflank-mailman (input) for mailman id 761035;
 Fri, 19 Jul 2024 11:51: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=17VY=OT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sUm9O-0007WF-9F
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 11:51:50 +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 4743ee39-45c5-11ef-8776-851b0ebba9a2;
 Fri, 19 Jul 2024 13:51:48 +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 4FA461F7A2;
 Fri, 19 Jul 2024 11:51:47 +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 0D98D132CB;
 Fri, 19 Jul 2024 11:51:47 +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 urfSAVNTmmaycQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 19 Jul 2024 11:51: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: 4743ee39-45c5-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721389907; 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=FpTczX37OVAfgSdS0MCnHxjXTVgI4wTVfVGCzuAsGD0=;
	b=E9v2vZIlbOUCNyLdK3sUXpo0857aHhmi0hB5Pu4oQi4hG7xNWkDzmm2FbsEBlQbXwLMl4e
	NFEUM4C0MmCTIxYKHzI2zJpYmiajAuPr1NgORoJc9r3TebUdmETXbbnvAtEoY7iBM6rBb8
	l5AuvGbGNF6hz91AGll070fFG//yYCo=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=E9v2vZIl
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721389907; 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=FpTczX37OVAfgSdS0MCnHxjXTVgI4wTVfVGCzuAsGD0=;
	b=E9v2vZIlbOUCNyLdK3sUXpo0857aHhmi0hB5Pu4oQi4hG7xNWkDzmm2FbsEBlQbXwLMl4e
	NFEUM4C0MmCTIxYKHzI2zJpYmiajAuPr1NgORoJc9r3TebUdmETXbbnvAtEoY7iBM6rBb8
	l5AuvGbGNF6hz91AGll070fFG//yYCo=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: 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>
Subject: [PATCH] SUPPORT.md: update Xen version
Date: Fri, 19 Jul 2024 13:51:44 +0200
Message-ID: <20240719115144.5301-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	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)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	MIME_TRACE(0.00)[0:+];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_FIVE(0.00)[6];
	RCVD_TLS_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:dkim,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+]
X-Spam-Flag: NO
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -3.01
X-Spam-Level: 
X-Rspamd-Queue-Id: 4FA461F7A2

Update the Xen version to 4.20

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 SUPPORT.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index 77d2a7a7db..bd4316523d 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -9,7 +9,7 @@ for the definitions of the support status levels etc.
 
 # Release Support
 
-    Xen-Version: 4.19-rc
+    Xen-Version: 4.20-unstable
     Initial-Release: n/a
     Supported-Until: TBD
     Security-Support-Until: Unreleased - not yet security-supported
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Jul 19 11:54:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 11:54:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761043.1171020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUmBU-00086N-TR; Fri, 19 Jul 2024 11:54:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761043.1171020; Fri, 19 Jul 2024 11: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 1sUmBU-00086G-QY; Fri, 19 Jul 2024 11:54:00 +0000
Received: by outflank-mailman (input) for mailman id 761043;
 Fri, 19 Jul 2024 11:53: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 1sUmBT-00085s-Ip
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 11:53:59 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sUmBT-0007Uk-FU; Fri, 19 Jul 2024 11:53:59 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.0.211])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sUmBT-00032f-8t; Fri, 19 Jul 2024 11:53: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=RxSnWn4QsEIxB6rGcMLhXsO4EMfYqhpkM24S+/Za7zY=; b=YE7+Rt4kAtfnEXigrpwN4Ri8gO
	mJZtmehIX7i6/KO5OTfl25x9jatjBVbier8DVzzhHiqXYmvv+eh52VXfNYHzt4451yVIFxzrzI19N
	I43Urv18scQq4Bd9R5dYog+rNqQ/wvSoFdUeYFhI3q0Bd01gZSsmwmo83LnK5fH9Xw+o=;
Message-ID: <504119de-cb73-4e27-8596-89113970ad15@xen.org>
Date: Fri, 19 Jul 2024 12:53:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] SUPPORT.md: update Xen version
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20240719115144.5301-1-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20240719115144.5301-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 19/07/2024 12:51, Juergen Gross wrote:
> Update the Xen version to 4.20
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

I am pretty sure I forgot to update this file also last release :(.

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

> ---
>   SUPPORT.md | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/SUPPORT.md b/SUPPORT.md
> index 77d2a7a7db..bd4316523d 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -9,7 +9,7 @@ for the definitions of the support status levels etc.
>   
>   # Release Support
>   
> -    Xen-Version: 4.19-rc
> +    Xen-Version: 4.20-unstable
>       Initial-Release: n/a

I will need to send an update for 4.19 with the dates.

>       Supported-Until: TBD
>       Security-Support-Until: Unreleased - not yet security-supported

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 12:33:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 12:33:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761065.1171039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUmnX-0005Mv-26; Fri, 19 Jul 2024 12:33:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761065.1171039; Fri, 19 Jul 2024 12:33: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 1sUmnW-0005Mo-Vq; Fri, 19 Jul 2024 12:33:18 +0000
Received: by outflank-mailman (input) for mailman id 761065;
 Fri, 19 Jul 2024 12:33: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=Gl2m=OT=gmail.com=milandjokic1995@srs-se1.protection.inumbo.net>)
 id 1sUmnW-0005Mi-8y
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 12:33:18 +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 12b5be0b-45cb-11ef-bbfd-fd08da9f4363;
 Fri, 19 Jul 2024 14:33:16 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-368440b073bso569517f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 19 Jul 2024 05:33:16 -0700 (PDT)
Received: from Xen-host.domain.local ([89.216.37.146])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-368787ecf92sm1484496f8f.101.2024.07.19.05.33.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 19 Jul 2024 05:33: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: 12b5be0b-45cb-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721392396; x=1721997196; 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=gYUEwZb+nIAY+qJT2bgNnYWTr7KmY2zxEHCIPRq+PnI=;
        b=Uk5Rns6ouXizFdNfJksFAkGUv1rnEWhw5pYBaXgTRojJQgJMXhBL5upPHwns0kHfi6
         jqRtNAO4xNryR4AxgVxd5Gm2sJn50/OgxasqWpMiFQL57xdvKNkB4cx7D5i90e7MC0PR
         g7BJrepQFa0zAacAU7Bl20m+rmUbLBhVT4ytwD0sdFfJn3JO3zG7Q50wT+Q9Pe03zJ2I
         gvK6fMWQXlu4+aDb2M8TH2b8P2ZBktVLJGq57N6jrGQdXFRx4Io7Qs0w/n46SMo3d9FN
         1BlagsMefE4TDFcKdpx8hzEswHTutfhQ6b+7KwzQhEcblhUS7Y2q+Hvp10asCcJFwDRC
         9hkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721392396; x=1721997196;
        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=gYUEwZb+nIAY+qJT2bgNnYWTr7KmY2zxEHCIPRq+PnI=;
        b=EpP9GMTGF4d9n5ZahIxfyQ932JGBbJtFNNOoTLjXCLZJ0SJVMd8iWEMwGyP924srTY
         Y++0YRVZQjbucizfTxycJYYr0Rh0YMpHOfFudciVjhDQgLvCf0CYyd+l6AV3vJOfbvd0
         FAA7DJ3eFd/fG9ikAU8pIEPCKyR/h1kUjsaXZRykcX1q5xIXYO+sdd3R9CM6iHnia/0H
         0BKO2wWEYnJhi9DJIAGy6JCTOu2s3yzCwMxR+VNTtBQ30gQHvj9KH/VPQVDGhcPwKgu7
         g6xZir+oDbV8PabbYmQZELjTBNHQZie4N2F2t9opNYGFkaCJ+s45pK6Rwj6Stz89bNJh
         Y7lA==
X-Gm-Message-State: AOJu0YxAVztgRb8CEslNf5G5QCX6MJflwu0fJkyCVTsI6uiII4meSlDQ
	xE7bvN4Wamd/sldBPGuubgnLvLp7uL4TP4VdD8ygmud2TxqHiquLpJ6WJXP+
X-Google-Smtp-Source: AGHT+IHwqoFcn2NVYeIM5/llBQglfAlBpGxmOvgSt7jNrbtPEALV+S/W8v71DBi/6HfH6CdNTnEXdw==
X-Received: by 2002:a05:6000:194e:b0:367:9049:da2e with SMTP id ffacd0b85a97d-368743a562emr1542436f8f.8.1721392395489;
        Fri, 19 Jul 2024 05:33:15 -0700 (PDT)
From: Milan Djokic <milandjokic1995@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: oleksii.kurochko@gmail.com,
	Nikola Jelic <nikola.jelic@rt-rk.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	Milan Djokic <milan.djokic@rt-rk.com>
Subject: [PATCH] xen: PE/COFF image header
Date: Fri, 19 Jul 2024 14:31:53 +0200
Message-Id: <2b747d672eeadc1150d3b84f0303e1d288311133.1721391876.git.milan.djokic@rt-rk.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Nikola Jelic <nikola.jelic@rt-rk.com>

Added PE/COFF generic image header which shall be used for EFI
application format for x86/risc-v. x86 and risc-v source shall be adjusted
to use this header in following commits. pe.h header is taken over from
linux kernel with minor changes in terms of formatting and structure member comments.

Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 36e4fc57fc16

Signed-off-by: Nikola Jelic <nikola.jelic@rt-rk.com>
Signed-off-by: Milan Djokic <milan.djokic@rt-rk.com>
---
This header is split into a separate commit following discussion from https://lists.xenproject.org/archives/html/xen-devel/2024-07/msg00166.html
Upcoming commit shall modify x86 implementation to use this header
instead of internal structures.
---
 xen/include/efi/pe.h | 485 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 485 insertions(+)
 create mode 100644 xen/include/efi/pe.h

diff --git a/xen/include/efi/pe.h b/xen/include/efi/pe.h
new file mode 100644
index 0000000000..9239a6b37a
--- /dev/null
+++ b/xen/include/efi/pe.h
@@ -0,0 +1,485 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright 2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * Author(s): Peter Jones <pjones@redhat.com>
+ */
+#ifndef __LINUX_PE_H
+#define __LINUX_PE_H
+
+#include <xen/types.h>
+
+/*
+ * Starting from version v3.0, the major version field should be interpreted as
+ * a bit mask of features supported by the kernel's EFI stub:
+ * - 0x1: initrd loading from the LINUX_EFI_INITRD_MEDIA_GUID device path,
+ * - 0x2: initrd loading using the initrd= command line option, where the file
+ *        may be specified using device path notation, and is not required to
+ *        reside on the same volume as the loaded kernel image.
+ *
+ * The recommended way of loading and starting v1.0 or later kernels is to use
+ * the LoadImage() and StartImage() EFI boot services, and expose the initrd
+ * via the LINUX_EFI_INITRD_MEDIA_GUID device path.
+ *
+ * Versions older than v1.0 may support initrd loading via the image load
+ * options (using initrd=, limited to the volume from which the kernel itself
+ * was loaded), or only via arch specific means (bootparams, DT, etc).
+ *
+ * The minor version field must remain 0x0.
+ * (https://lore.kernel.org/all/efd6f2d4-547c-1378-1faa-53c044dbd297@gmail.com/)
+ */
+#define LINUX_EFISTUB_MAJOR_VERSION 0x3
+#define LINUX_EFISTUB_MINOR_VERSION 0x0
+
+/*
+ * LINUX_PE_MAGIC appears at offset 0x38 into the MS-DOS header of EFI bootable
+ * Linux kernel images that target the architecture as specified by the PE/COFF
+ * header machine type field.
+ */
+#define LINUX_PE_MAGIC 0x818223cd
+
+#define MZ_MAGIC 0x5a4d /* "MZ" */
+
+#define PE_MAGIC              0x00004550 /* "PE\0\0" */
+#define PE_OPT_MAGIC_PE32     0x010b
+#define PE_OPT_MAGIC_PE32_ROM 0x0107
+#define PE_OPT_MAGIC_PE32PLUS 0x020b
+
+#define PECOFF_SECTION_ALIGNMENT 0x1000
+#define PECOFF_FILE_ALIGNMENT    0x200
+
+/* machine type */
+#define IMAGE_FILE_MACHINE_UNKNOWN     0x0000
+#define IMAGE_FILE_MACHINE_AM33        0x01d3
+#define IMAGE_FILE_MACHINE_AMD64       0x8664
+#define IMAGE_FILE_MACHINE_ARM         0x01c0
+#define IMAGE_FILE_MACHINE_ARMV7       0x01c4
+#define IMAGE_FILE_MACHINE_ARM64       0xaa64
+#define IMAGE_FILE_MACHINE_EBC         0x0ebc
+#define IMAGE_FILE_MACHINE_I386        0x014c
+#define IMAGE_FILE_MACHINE_IA64        0x0200
+#define IMAGE_FILE_MACHINE_M32R        0x9041
+#define IMAGE_FILE_MACHINE_MIPS16      0x0266
+#define IMAGE_FILE_MACHINE_MIPSFPU     0x0366
+#define IMAGE_FILE_MACHINE_MIPSFPU16   0x0466
+#define IMAGE_FILE_MACHINE_POWERPC     0x01f0
+#define IMAGE_FILE_MACHINE_POWERPCFP   0x01f1
+#define IMAGE_FILE_MACHINE_R4000       0x0166
+#define IMAGE_FILE_MACHINE_RISCV32     0x5032
+#define IMAGE_FILE_MACHINE_RISCV64     0x5064
+#define IMAGE_FILE_MACHINE_RISCV128    0x5128
+#define IMAGE_FILE_MACHINE_SH3         0x01a2
+#define IMAGE_FILE_MACHINE_SH3DSP      0x01a3
+#define IMAGE_FILE_MACHINE_SH3E        0x01a4
+#define IMAGE_FILE_MACHINE_SH4         0x01a6
+#define IMAGE_FILE_MACHINE_SH5         0x01a8
+#define IMAGE_FILE_MACHINE_THUMB       0x01c2
+#define IMAGE_FILE_MACHINE_WCEMIPSV2   0x0169
+#define IMAGE_FILE_MACHINE_LOONGARCH32 0x6232
+#define IMAGE_FILE_MACHINE_LOONGARCH64 0x6264
+
+/* flags */
+#define IMAGE_FILE_RELOCS_STRIPPED         0x0001
+#define IMAGE_FILE_EXECUTABLE_IMAGE        0x0002
+#define IMAGE_FILE_LINE_NUMS_STRIPPED      0x0004
+#define IMAGE_FILE_LOCAL_SYMS_STRIPPED     0x0008
+#define IMAGE_FILE_AGGRESSIVE_WS_TRIM      0x0010
+#define IMAGE_FILE_LARGE_ADDRESS_AWARE     0x0020
+#define IMAGE_FILE_16BIT_MACHINE           0x0040
+#define IMAGE_FILE_BYTES_REVERSED_LO       0x0080
+#define IMAGE_FILE_32BIT_MACHINE           0x0100
+#define IMAGE_FILE_DEBUG_STRIPPED          0x0200
+#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
+#define IMAGE_FILE_NET_RUN_FROM_SWAP       0x0800
+#define IMAGE_FILE_SYSTEM                  0x1000
+#define IMAGE_FILE_DLL                     0x2000
+#define IMAGE_FILE_UP_SYSTEM_ONLY          0x4000
+#define IMAGE_FILE_BYTES_REVERSED_HI       0x8000
+
+#define IMAGE_FILE_OPT_ROM_MAGIC       0x107
+#define IMAGE_FILE_OPT_PE32_MAGIC      0x10b
+#define IMAGE_FILE_OPT_PE32_PLUS_MAGIC 0x20b
+
+#define IMAGE_SUBSYSTEM_UNKNOWN                 0
+#define IMAGE_SUBSYSTEM_NATIVE                  1
+#define IMAGE_SUBSYSTEM_WINDOWS_GUI             2
+#define IMAGE_SUBSYSTEM_WINDOWS_CUI             3
+#define IMAGE_SUBSYSTEM_POSIX_CUI               7
+#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI          9
+#define IMAGE_SUBSYSTEM_EFI_APPLICATION         10
+#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
+#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
+#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE           13
+#define IMAGE_SUBSYSTEM_XBOX                    14
+
+#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         0x0040
+#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      0x0080
+#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            0x0100
+#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          0x0200
+#define IMAGE_DLLCHARACTERISTICS_NO_SEH                0x0400
+#define IMAGE_DLLCHARACTERISTICS_NO_BIND               0x0800
+#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            0x2000
+#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
+
+#define IMAGE_DLLCHARACTERISTICS_EX_CET_COMPAT         0x0001
+#define IMAGE_DLLCHARACTERISTICS_EX_FORWARD_CFI_COMPAT 0x0040
+
+/* they actually defined 0x00000000 as well, but I think we'll skip that one. */
+#define IMAGE_SCN_RESERVED_0             0x00000001
+#define IMAGE_SCN_RESERVED_1             0x00000002
+#define IMAGE_SCN_RESERVED_2             0x00000004
+#define IMAGE_SCN_TYPE_NO_PAD            0x00000008 /* don't pad - obsolete */
+#define IMAGE_SCN_RESERVED_3             0x00000010
+#define IMAGE_SCN_CNT_CODE               0x00000020 /* .text */
+#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040 /* .data */
+#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* .bss */
+#define IMAGE_SCN_LNK_OTHER              0x00000100 /* reserved */
+#define IMAGE_SCN_LNK_INFO               0x00000200 /* .drectve comments */
+#define IMAGE_SCN_RESERVED_4             0x00000400
+#define IMAGE_SCN_LNK_REMOVE             0x00000800 /* .o only - scn to be rm'd*/
+#define IMAGE_SCN_LNK_COMDAT             0x00001000 /* .o only - COMDAT data */
+#define IMAGE_SCN_RESERVED_5             0x00002000 /* spec omits this */
+#define IMAGE_SCN_RESERVED_6             0x00004000 /* spec omits this */
+#define IMAGE_SCN_GPREL                  0x00008000 /* global pointer referenced data */
+/* spec lists 0x20000 twice, I suspect they meant 0x10000 for one of them */
+#define IMAGE_SCN_MEM_PURGEABLE 0x00010000 /* reserved for "future" use */
+#define IMAGE_SCN_16BIT         0x00020000 /* reserved for "future" use */
+#define IMAGE_SCN_LOCKED        0x00040000 /* reserved for "future" use */
+#define IMAGE_SCN_PRELOAD       0x00080000 /* reserved for "future" use */
+/* and here they just stuck a 1-byte integer in the middle of a bitfield */
+#define IMAGE_SCN_ALIGN_1BYTES    0x00100000 /* it does what it says on the box */
+#define IMAGE_SCN_ALIGN_2BYTES    0x00200000
+#define IMAGE_SCN_ALIGN_4BYTES    0x00300000
+#define IMAGE_SCN_ALIGN_8BYTES    0x00400000
+#define IMAGE_SCN_ALIGN_16BYTES   0x00500000
+#define IMAGE_SCN_ALIGN_32BYTES   0x00600000
+#define IMAGE_SCN_ALIGN_64BYTES   0x00700000
+#define IMAGE_SCN_ALIGN_128BYTES  0x00800000
+#define IMAGE_SCN_ALIGN_256BYTES  0x00900000
+#define IMAGE_SCN_ALIGN_512BYTES  0x00a00000
+#define IMAGE_SCN_ALIGN_1024BYTES 0x00b00000
+#define IMAGE_SCN_ALIGN_2048BYTES 0x00c00000
+#define IMAGE_SCN_ALIGN_4096BYTES 0x00d00000
+#define IMAGE_SCN_ALIGN_8192BYTES 0x00e00000
+#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* extended relocations */
+#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 /* scn can be discarded */
+#define IMAGE_SCN_MEM_NOT_CACHED  0x04000000 /* cannot be cached */
+#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000 /* not pageable */
+#define IMAGE_SCN_MEM_SHARED      0x10000000 /* can be shared */
+#define IMAGE_SCN_MEM_EXECUTE     0x20000000 /* can be executed as code */
+#define IMAGE_SCN_MEM_READ        0x40000000 /* readable */
+#define IMAGE_SCN_MEM_WRITE       0x80000000 /* writeable */
+
+#define IMAGE_DEBUG_TYPE_CODEVIEW              2
+#define IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS 20
+
+#ifndef __ASSEMBLY__
+
+struct mz_hdr {
+    uint16_t magic;              /* MZ_MAGIC */
+    uint16_t lbsize;             /* size of last used block */
+    uint16_t blocks;             /* pages in file, 0x3 */
+    uint16_t relocs;             /* relocations */
+    uint16_t hdrsize;            /* header size in "paragraphs" */
+    uint16_t min_extra_pps;      /* .bss */
+    uint16_t max_extra_pps;      /* runtime limit for the arena size */
+    uint16_t ss;                 /* relative stack segment */
+    uint16_t sp;                 /* initial %sp register */
+    uint16_t checksum;           /* word checksum */
+    uint16_t ip;                 /* initial %ip register */
+    uint16_t cs;                 /* initial %cs relative to load segment */
+    uint16_t reloc_table_offset; /* offset of the first relocation */
+    uint16_t overlay_num;        /* overlay number.  set to 0. */
+    uint16_t reserved0[4];       /* reserved */
+    uint16_t oem_id;             /* oem identifier */
+    uint16_t oem_info;           /* oem specific */
+    uint16_t reserved1[10];      /* reserved */
+    uint32_t peaddr;             /* address of pe header */
+    char     message[];          /* message to print */
+};
+
+struct mz_reloc {
+    uint16_t offset;
+    uint16_t segment;
+};
+
+struct pe_hdr {
+    uint32_t magic;        /* PE magic */
+    uint16_t machine;      /* machine type */
+    uint16_t sections;     /* number of sections */
+    uint32_t timestamp;    /* time_t */
+    uint32_t symbol_table; /* symbol table offset */
+    uint32_t symbols;      /* number of symbols */
+    uint16_t opt_hdr_size; /* size of optional header */
+    uint16_t flags;        /* flags */
+};
+
+/* the fact that pe32 isn't padded where pe32+ is 64-bit means union won't
+ * work right. vomit.
+ */
+struct pe32_opt_hdr {
+    /* "standard" header */
+    uint16_t magic;       /* file type */
+    uint8_t  ld_major;    /* linker major version */
+    uint8_t  ld_minor;    /* linker minor version */
+    uint32_t text_size;   /* size of text section(s) */
+    uint32_t data_size;   /* size of data section(s) */
+    uint32_t bss_size;    /* size of bss section(s) */
+    uint32_t entry_point; /* file offset of entry point */
+    uint32_t code_base;   /* relative code addr in ram */
+    uint32_t data_base;   /* relative data addr in ram */
+    /* "windows" header */
+    uint32_t image_base;     /* preferred load address */
+    uint32_t section_align;  /* alignment in bytes */
+    uint32_t file_align;     /* file alignment in bytes */
+    uint16_t os_major;       /* major OS version */
+    uint16_t os_minor;       /* minor OS version */
+    uint16_t image_major;    /* major image version */
+    uint16_t image_minor;    /* minor image version */
+    uint16_t subsys_major;   /* major subsystem version */
+    uint16_t subsys_minor;   /* minor subsystem version */
+    uint32_t win32_version;  /* reserved, must be 0 */
+    uint32_t image_size;     /* image size */
+    uint32_t header_size;    /* header size rounded up to file_align */
+    uint32_t csum;           /* checksum */
+    uint16_t subsys;         /* subsystem */
+    uint16_t dll_flags;      /* more flags! */
+    uint32_t stack_size_req; /* amt of stack requested */
+    uint32_t stack_size;     /* amt of stack required */
+    uint32_t heap_size_req;  /* amt of heap requested */
+    uint32_t heap_size;      /* amt of heap required */
+    uint32_t loader_flags;   /* reserved, must be 0 */
+    uint32_t data_dirs;      /* number of data dir entries */
+};
+
+struct pe32plus_opt_hdr {
+    uint16_t magic;       /* file type */
+    uint8_t  ld_major;    /* linker major version */
+    uint8_t  ld_minor;    /* linker minor version */
+    uint32_t text_size;   /* size of text section(s) */
+    uint32_t data_size;   /* size of data section(s) */
+    uint32_t bss_size;    /* size of bss section(s) */
+    uint32_t entry_point; /* file offset of entry point */
+    uint32_t code_base;   /* relative code addr in ram */
+    /* "windows" header */
+    uint64_t image_base;     /* preferred load address */
+    uint32_t section_align;  /* alignment in bytes */
+    uint32_t file_align;     /* file alignment in bytes */
+    uint16_t os_major;       /* major OS version */
+    uint16_t os_minor;       /* minor OS version */
+    uint16_t image_major;    /* major image version */
+    uint16_t image_minor;    /* minor image version */
+    uint16_t subsys_major;   /* major subsystem version */
+    uint16_t subsys_minor;   /* minor subsystem version */
+    uint32_t win32_version;  /* reserved, must be 0 */
+    uint32_t image_size;     /* image size */
+    uint32_t header_size;    /* header size rounded up to file_align */
+    uint32_t csum;           /* checksum */
+    uint16_t subsys;         /* subsystem */
+    uint16_t dll_flags;      /* more flags! */
+    uint64_t stack_size_req; /* amt of stack requested */
+    uint64_t stack_size;     /* amt of stack required */
+    uint64_t heap_size_req;  /* amt of heap requested */
+    uint64_t heap_size;      /* amt of heap required */
+    uint32_t loader_flags;   /* reserved, must be 0 */
+    uint32_t data_dirs;      /* number of data dir entries */
+};
+
+struct data_dirent {
+    uint32_t virtual_address; /* relative to load address */
+    uint32_t size;
+};
+
+struct data_directory {
+    struct data_dirent exports;          /* .edata */
+    struct data_dirent imports;          /* .idata */
+    struct data_dirent resources;        /* .rsrc */
+    struct data_dirent exceptions;       /* .pdata */
+    struct data_dirent certs;            /* certs */
+    struct data_dirent base_relocations; /* .reloc */
+    struct data_dirent debug;            /* .debug */
+    struct data_dirent arch;             /* reservered */
+    struct data_dirent global_ptr;       /* global pointer reg. Size=0 */
+    struct data_dirent tls;              /* .tls */
+    struct data_dirent load_config;      /* load configuration structure */
+    struct data_dirent bound_imports;    /* no idea */
+    struct data_dirent import_addrs;     /* import address table */
+    struct data_dirent delay_imports;    /* delay-load import table */
+    struct data_dirent clr_runtime_hdr;  /* .cor (object only) */
+    struct data_dirent reserved;
+};
+
+struct section_header {
+    char     name[8];         /* name or string tbl offset */
+    uint32_t virtual_size;    /* size of loaded section in ram */
+    uint32_t virtual_address; /* relative virtual address */
+    uint32_t raw_data_size;   /* size of the section */
+    uint32_t data_addr;       /* file pointer to first page of sec */
+    uint32_t relocs;          /* file pointer to relocation entries */
+    uint32_t line_numbers;    /* line numbers */
+    uint16_t num_relocs;      /* number of relocations */
+    uint16_t num_lin_numbers; /* COFF line count */
+    uint32_t flags;
+};
+
+enum x64_coff_reloc_type {
+    IMAGE_REL_AMD64_ABSOLUTE = 0,
+    IMAGE_REL_AMD64_ADDR64,
+    IMAGE_REL_AMD64_ADDR32,
+    IMAGE_REL_AMD64_ADDR32N,
+    IMAGE_REL_AMD64_REL32,
+    IMAGE_REL_AMD64_REL32_1,
+    IMAGE_REL_AMD64_REL32_2,
+    IMAGE_REL_AMD64_REL32_3,
+    IMAGE_REL_AMD64_REL32_4,
+    IMAGE_REL_AMD64_REL32_5,
+    IMAGE_REL_AMD64_SECTION,
+    IMAGE_REL_AMD64_SECREL,
+    IMAGE_REL_AMD64_SECREL7,
+    IMAGE_REL_AMD64_TOKEN,
+    IMAGE_REL_AMD64_SREL32,
+    IMAGE_REL_AMD64_PAIR,
+    IMAGE_REL_AMD64_SSPAN32,
+};
+
+enum arm_coff_reloc_type {
+    IMAGE_REL_ARM_ABSOLUTE,
+    IMAGE_REL_ARM_ADDR32,
+    IMAGE_REL_ARM_ADDR32N,
+    IMAGE_REL_ARM_BRANCH2,
+    IMAGE_REL_ARM_BRANCH1,
+    IMAGE_REL_ARM_SECTION,
+    IMAGE_REL_ARM_SECREL,
+};
+
+enum sh_coff_reloc_type {
+    IMAGE_REL_SH3_ABSOLUTE,
+    IMAGE_REL_SH3_DIRECT16,
+    IMAGE_REL_SH3_DIRECT32,
+    IMAGE_REL_SH3_DIRECT8,
+    IMAGE_REL_SH3_DIRECT8_WORD,
+    IMAGE_REL_SH3_DIRECT8_LONG,
+    IMAGE_REL_SH3_DIRECT4,
+    IMAGE_REL_SH3_DIRECT4_WORD,
+    IMAGE_REL_SH3_DIRECT4_LONG,
+    IMAGE_REL_SH3_PCREL8_WORD,
+    IMAGE_REL_SH3_PCREL8_LONG,
+    IMAGE_REL_SH3_PCREL12_WORD,
+    IMAGE_REL_SH3_STARTOF_SECTION,
+    IMAGE_REL_SH3_SIZEOF_SECTION,
+    IMAGE_REL_SH3_SECTION,
+    IMAGE_REL_SH3_SECREL,
+    IMAGE_REL_SH3_DIRECT32_NB,
+    IMAGE_REL_SH3_GPREL4_LONG,
+    IMAGE_REL_SH3_TOKEN,
+    IMAGE_REL_SHM_PCRELPT,
+    IMAGE_REL_SHM_REFLO,
+    IMAGE_REL_SHM_REFHALF,
+    IMAGE_REL_SHM_RELLO,
+    IMAGE_REL_SHM_RELHALF,
+    IMAGE_REL_SHM_PAIR,
+    IMAGE_REL_SHM_NOMODE,
+};
+
+enum ppc_coff_reloc_type {
+    IMAGE_REL_PPC_ABSOLUTE,
+    IMAGE_REL_PPC_ADDR64,
+    IMAGE_REL_PPC_ADDR32,
+    IMAGE_REL_PPC_ADDR24,
+    IMAGE_REL_PPC_ADDR16,
+    IMAGE_REL_PPC_ADDR14,
+    IMAGE_REL_PPC_REL24,
+    IMAGE_REL_PPC_REL14,
+    IMAGE_REL_PPC_ADDR32N,
+    IMAGE_REL_PPC_SECREL,
+    IMAGE_REL_PPC_SECTION,
+    IMAGE_REL_PPC_SECREL16,
+    IMAGE_REL_PPC_REFHI,
+    IMAGE_REL_PPC_REFLO,
+    IMAGE_REL_PPC_PAIR,
+    IMAGE_REL_PPC_SECRELLO,
+    IMAGE_REL_PPC_GPREL,
+    IMAGE_REL_PPC_TOKEN,
+};
+
+enum x86_coff_reloc_type {
+    IMAGE_REL_I386_ABSOLUTE,
+    IMAGE_REL_I386_DIR16,
+    IMAGE_REL_I386_REL16,
+    IMAGE_REL_I386_DIR32,
+    IMAGE_REL_I386_DIR32NB,
+    IMAGE_REL_I386_SEG12,
+    IMAGE_REL_I386_SECTION,
+    IMAGE_REL_I386_SECREL,
+    IMAGE_REL_I386_TOKEN,
+    IMAGE_REL_I386_SECREL7,
+    IMAGE_REL_I386_REL32,
+};
+
+enum ia64_coff_reloc_type {
+    IMAGE_REL_IA64_ABSOLUTE,
+    IMAGE_REL_IA64_IMM14,
+    IMAGE_REL_IA64_IMM22,
+    IMAGE_REL_IA64_IMM64,
+    IMAGE_REL_IA64_DIR32,
+    IMAGE_REL_IA64_DIR64,
+    IMAGE_REL_IA64_PCREL21B,
+    IMAGE_REL_IA64_PCREL21M,
+    IMAGE_REL_IA64_PCREL21F,
+    IMAGE_REL_IA64_GPREL22,
+    IMAGE_REL_IA64_LTOFF22,
+    IMAGE_REL_IA64_SECTION,
+    IMAGE_REL_IA64_SECREL22,
+    IMAGE_REL_IA64_SECREL64I,
+    IMAGE_REL_IA64_SECREL32,
+    IMAGE_REL_IA64_DIR32NB,
+    IMAGE_REL_IA64_SREL14,
+    IMAGE_REL_IA64_SREL22,
+    IMAGE_REL_IA64_SREL32,
+    IMAGE_REL_IA64_UREL32,
+    IMAGE_REL_IA64_PCREL60X,
+    IMAGE_REL_IA64_PCREL60B,
+    IMAGE_REL_IA64_PCREL60F,
+    IMAGE_REL_IA64_PCREL60I,
+    IMAGE_REL_IA64_PCREL60M,
+    IMAGE_REL_IA64_IMMGPREL6,
+    IMAGE_REL_IA64_TOKEN,
+    IMAGE_REL_IA64_GPREL32,
+    IMAGE_REL_IA64_ADDEND,
+};
+
+struct coff_reloc {
+    uint32_t virtual_address;
+    uint32_t symbol_table_index;
+
+    union {
+        enum x64_coff_reloc_type  x64_type;
+        enum arm_coff_reloc_type  arm_type;
+        enum sh_coff_reloc_type   sh_type;
+        enum ppc_coff_reloc_type  ppc_type;
+        enum x86_coff_reloc_type  x86_type;
+        enum ia64_coff_reloc_type ia64_type;
+        uint16_t                  data;
+    };
+};
+
+/*
+ * Definitions for the contents of the certs data block
+ */
+#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002
+#define WIN_CERT_TYPE_EFI_OKCS115      0x0EF0
+#define WIN_CERT_TYPE_EFI_GUID         0x0EF1
+
+#define WIN_CERT_REVISION_1_0 0x0100
+#define WIN_CERT_REVISION_2_0 0x0200
+
+struct win_certificate {
+    uint32_t length;
+    uint16_t revision;
+    uint16_t cert_type;
+};
+
+#endif /* !__ASSEMBLY__ */
+
+#endif /* __LINUX_PE_H */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Jul 19 13:51:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 13:51:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761083.1171066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUo1H-0006RH-Ic; Fri, 19 Jul 2024 13:51:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761083.1171066; Fri, 19 Jul 2024 13:51: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 1sUo1H-0006RA-G5; Fri, 19 Jul 2024 13:51:35 +0000
Received: by outflank-mailman (input) for mailman id 761083;
 Fri, 19 Jul 2024 13:51:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUo1G-0006R0-Gg; Fri, 19 Jul 2024 13:51:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUo1G-0001F3-FI; Fri, 19 Jul 2024 13:51:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUo1G-0001ID-7K; Fri, 19 Jul 2024 13:51:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUo1G-0002yv-6s; Fri, 19 Jul 2024 13:51:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=k9Q3FBIhCfIt1pRaELqZCqP6guZlRbmbm19ByuFu6B0=; b=PgM1MaK7UbQL5o8H0ZPs9nAp+Y
	s4BGW6t6X4ifc05p6sLVTzY8Xo857uP7t+UENSqA6ML7KGHYOANbw5k/GUQLgIuJ1UgpglW/WOQ2g
	LHEHA8uoN5rBm7wZnO9gnXPiwH8rSpa9c2MQ6pD9w0TL3B89vI0gYQLUeDPuMfzoMy+U=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186906-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186906: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-xl-qemuu-debianhvm-amd64:xen-install:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:xen-install:fail:regression
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:xen-install:fail:regression
    xen-unstable-smoke:test-armhf-armhf-xl:xen-boot:fail:regression
X-Osstest-Versions-This:
    xen=a99f25f7ac60544e9af4b3b516d7566ba8841cc4
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Jul 2024 13:51:34 +0000

flight 186906 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186906/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  7 xen-install fail REGR. vs. 186826
 test-amd64-amd64-libvirt      7 xen-install              fail REGR. vs. 186826
 test-arm64-arm64-xl-xsm       7 xen-install              fail REGR. vs. 186826
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 186826

version targeted for testing:
 xen                  a99f25f7ac60544e9af4b3b516d7566ba8841cc4
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186826  2024-07-16 19:00:25 Z    2 days
Failing since        186880  2024-07-18 15:00:30 Z    0 days    7 attempts
Testing same since   186883  2024-07-18 21:11:32 Z    0 days    6 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Julien Grall <julien@xen.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-amd64-libvirt                                     fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit a99f25f7ac60544e9af4b3b516d7566ba8841cc4
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:51:02 2024 +0100

    CHANGELOG.md: Start new 4.20.0 section
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit 974ad0926e4616444dc0c1d83ba86bd6eb8dd52d
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:48:06 2024 +0100

    CHANGELOG.md: Set release date for 4.19
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>

commit 285937175be2509bc5b4c2eff2ec0b2fa758ff69
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 16:00:47 2024 +0100

    Re-run ./autogens.h for 4.20
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit f66e523189f1130a2fd3b77a9f0c8ac152355ac8
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:42:58 2024 +0100

    Set version to 4.20; 4.19 has branched
    
    Signed-off-by: Julien Grall <julien@xen.org>

commit b181bb9fdbae9cdae96f979cfcc30c6195071417
Author: Julien Grall <julien@xen.org>
Date:   Thu Jul 18 15:40:44 2024 +0100

    Revert "Config.mk pin QEMU_UPSTREAM_REVISION (prep for Xen 4.19 RC1)"
    
    The branch is unstable again.
    
    This reverts commit 7584e39986ef2cb4816892ffaefb26f4ad063468.
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 14:21:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 14:21:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761098.1171083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUoU0-0001qe-W9; Fri, 19 Jul 2024 14:21:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761098.1171083; Fri, 19 Jul 2024 14: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 1sUoU0-0001qX-T9; Fri, 19 Jul 2024 14:21:16 +0000
Received: by outflank-mailman (input) for mailman id 761098;
 Fri, 19 Jul 2024 14: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=hWFp=OT=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sUoTz-0001qR-6L
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 14:21:15 +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 26e7d52e-45da-11ef-8776-851b0ebba9a2;
 Fri, 19 Jul 2024 16:21:13 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5a167b9df7eso1237327a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 19 Jul 2024 07:21:13 -0700 (PDT)
Received: from EMEAENGAAD91498.citrite.net ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c7bddc6sm38351866b.69.2024.07.19.07.21.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 19 Jul 2024 07: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: 26e7d52e-45da-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721398872; x=1722003672; 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=5mKoKQlcx9bJbBptsIYJsL6Whb62TcTKnY7xLKDf1v0=;
        b=hC2DujudJ++7S9frQp9ywk9jbCqt3FKXEMilz6nMI0n4XPevP4Dai6CybnXyixfpBa
         VOMHhtM3xSMQUXzR6LXRgqyOGOSQgZfTx3zR6fX0v1WQ+SJxecwkNJSfl2hDqyF6D9Px
         A01Ewv1hwnYWWI4jl/m1QE8F5g9fEBstd6tJ0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721398872; x=1722003672;
        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=5mKoKQlcx9bJbBptsIYJsL6Whb62TcTKnY7xLKDf1v0=;
        b=grkGXOPSsokzEv8RhRnsBecgQ8DkWeqqXsjDTsYEUMq/2R9hQ+uz94WXefmQObjZbg
         qLdsmI3oLUGxpaxguf4ryAXMQB8aEGC/P/9bSYgn1P20QBXS0NFvMGh3TdWiHvaobDmt
         3sgoxeERxXRBquSVw4ncHDPUrIn9GyHzA2lnu/1vmOtSdiXTaRF7pm4eiwwBun9N43Bd
         jATBYr4F89P/+KlwHLszIkaP2LsnM/MKICXr8Yl2VTeQyXMa7N+VYQ1x+UJj+KPJIrrc
         VoU1Gck5YxHuuksl/2rdhksLYNvZLuQeOlnDudM9ckuEeC/hOWF+gKcPkxIHziaSY8iA
         1blA==
X-Gm-Message-State: AOJu0Yw1Zg0N7F+OG477Wy1LhGFAli4NZlMY1S2ER/rTcG+ukGF+G9hg
	aeuouXfs5FR8dj6jY9NIEdKwbqHq8kL/TknofurXmph+ywvKIUR6SGktpCIFuB1JmwzPEZ2Bi2i
	O
X-Google-Smtp-Source: AGHT+IG5+aGcvK2yZQ2J1dJ41Tx5MoQ32oGaGTOkUPFPBwbDx4YkjxUNmXkKePi211DRsWbpDrtabg==
X-Received: by 2002:a17:906:7b4d:b0:a6f:6803:57ef with SMTP id a640c23a62f3a-a7a0119ddddmr561622366b.27.1721398872096;
        Fri, 19 Jul 2024 07:21:12 -0700 (PDT)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [RFC XEN PATCH v2] x86/cpuid: Expose max_vcpus field in HVM hypervisor leaf
Date: Fri, 19 Jul 2024 15:21:09 +0100
Message-Id: <fa24cd3b232e8865eb6451e5f7af9cd203ce52ab.1721224079.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Bcc: Matthew Barnes <matthew.barnes@cloud.com>
Content-Transfer-Encoding: 8bit

Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
startup.

There are efforts to support a maximum of 128 vCPUs, which would involve
bumping the OVMF constant from 64 to 128.

However, it would be more future-proof for OVMF to access the maximum
number of vCPUs for a domain and set itself up appropriately at
run-time.

GitLab ticket: https://gitlab.com/xen-project/xen/-/issues/191

For OVMF to access the maximum vCPU count, this patch has Xen expose
the maximum vCPU ID via cpuid on the HVM hypervisor leaf in edx.

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
Changes in v2:
- Tweak value from "maximum vcpu count" to "maximum vcpu id"
- Reword commit message to avoid "have to" wording
- Fix vpcus -> vcpus typo
---
 xen/arch/x86/traps.c                | 4 ++++
 xen/include/public/arch-x86/cpuid.h | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index ee91fc56b125..f39b598e9bba 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1169,6 +1169,10 @@ void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
         res->a |= XEN_HVM_CPUID_DOMID_PRESENT;
         res->c = d->domain_id;
 
+        /* Indicate presence of max vcpu id and set it in edx */
+        res->a |= XEN_HVM_CPUID_MAX_VCPU_ID_PRESENT;
+        res->d = d->max_vcpus - 1;
+
         /*
          * Per-vCPU event channel upcalls are implemented and work
          * correctly with PIRQs routed over event channels.
diff --git a/xen/include/public/arch-x86/cpuid.h b/xen/include/public/arch-x86/cpuid.h
index 3bb0dd249ff9..7673e285a9ec 100644
--- a/xen/include/public/arch-x86/cpuid.h
+++ b/xen/include/public/arch-x86/cpuid.h
@@ -87,6 +87,7 @@
  * Sub-leaf 0: EAX: Features
  * Sub-leaf 0: EBX: vcpu id (iff EAX has XEN_HVM_CPUID_VCPU_ID_PRESENT flag)
  * Sub-leaf 0: ECX: domain id (iff EAX has XEN_HVM_CPUID_DOMID_PRESENT flag)
+ * Sub-leaf 0: EDX: max vcpu id (iff EAX has XEN_HVM_CPUID_MAX_VCPU_ID_PRESENT flag)
  */
 #define XEN_HVM_CPUID_APIC_ACCESS_VIRT (1u << 0) /* Virtualized APIC registers */
 #define XEN_HVM_CPUID_X2APIC_VIRT      (1u << 1) /* Virtualized x2APIC accesses */
@@ -107,6 +108,8 @@
  */
 #define XEN_HVM_CPUID_UPCALL_VECTOR    (1u << 6)
 
+#define XEN_HVM_CPUID_MAX_VCPU_ID_PRESENT (1u << 7) /* max vcpu id is present in EDX */
+
 /*
  * Leaf 6 (0x40000x05)
  * PV-specific parameters
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Jul 19 15:22:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 15:22:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761117.1171106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUpQc-0000P5-6F; Fri, 19 Jul 2024 15:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761117.1171106; Fri, 19 Jul 2024 15: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 1sUpQc-0000Oy-1H; Fri, 19 Jul 2024 15:21:50 +0000
Received: by outflank-mailman (input) for mailman id 761117;
 Fri, 19 Jul 2024 15: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=arYX=OT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sUpQa-0000Os-0X
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 15:21:48 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b949d21-45e2-11ef-bbfd-fd08da9f4363;
 Fri, 19 Jul 2024 17:21:46 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id F2598CE1C70;
 Fri, 19 Jul 2024 15:21:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F6FBC32782;
 Fri, 19 Jul 2024 15:21: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: 9b949d21-45e2-11ef-bbfd-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721402500;
	bh=NCu19WDWBYTF+e4zH4ldrfB7wVw6Y/eLcl4RCKCkUqc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=VyLv0vL44gOjRBAUj27t6cWlS9lAD36cafE5vwXbfW2KGsfb+Z19YmXOakGazjGGc
	 M4RKSpgHtFGfwWQLww4c9yoZvkP2HPntuQu9MX5KPFwF1BKFtn2IuAphJEvR93UmXx
	 N7dz+RWT0b4//2ALbQgdq4/nauhYplvtU0kOvK4KFFcMhhrwhuj37IFvoo/rkPgLZG
	 80X/xDkCDib8Cb41KzGIxtJ3i/J9XNKALc5lYrfaegzpUyXjbl7zCgDKZ7jbx88RgM
	 vEmnAMt3RpM3k4gdVQun1ZVAqhaV9XctwavnSdlmGeFmJT4BnmUVKmJmkmHvOcUBW/
	 +cI/kO0Yy+WTg==
Date: Fri, 19 Jul 2024 08:21:37 -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>, 
    Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
In-Reply-To: <b1bad3be-4520-48e6-952c-3f1828a0bafa@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407190820510.4857@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com> <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com> <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com> <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
 <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com> <alpine.DEB.2.22.394.2407151736530.3635@ubuntu-linux-20-04-desktop> <4893a89d-9ef5-4d86-94b0-042e88588439@suse.com> <alpine.DEB.2.22.394.2407161713010.3635@ubuntu-linux-20-04-desktop>
 <013c6cc2-eddf-4beb-b115-01aaaa71faa6@suse.com> <alpine.DEB.2.22.394.2407171601540.3635@ubuntu-linux-20-04-desktop> <8fd8d6e4-ef29-4ea9-9437-a743c25fe7b9@suse.com> <alpine.DEB.2.22.394.2407181457110.4857@ubuntu-linux-20-04-desktop>
 <b1bad3be-4520-48e6-952c-3f1828a0bafa@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 19 Jul 2024, Jan Beulich wrote:
> On 19.07.2024 00:01, Stefano Stabellini wrote:
> > On Thu, 18 Jul 2024, Jan Beulich wrote:
> >> On 18.07.2024 01:02, Stefano Stabellini wrote:
> >>> On Wed, 17 Jul 2024, Jan Beulich wrote:
> >>>> On 17.07.2024 02:20, Stefano Stabellini wrote:
> >>>>> On Tue, 16 Jul 2024, Jan Beulich wrote:
> >>>>>> On 16.07.2024 02:43, Stefano Stabellini wrote:
> >>>>>>> On Mon, 15 Jul 2024, Jan Beulich wrote:
> >>>>>>>> On 13.07.2024 00:38, Stefano Stabellini wrote:
> >>>>>>>>> On Wed, 3 Jul 2024, Jan Beulich wrote:
> >>>>>>>>>> I further have to note that, as indicated during the earlier discussion,
> >>>>>>>>>> I still cannot see how occasional ambiguity is going to be dealt with.
> >>>>>>>>>> IOW from the rules above two different headers could still end up with
> >>>>>>>>>> the same guard identifier.
> >>>>>>>>>
> >>>>>>>>> Maybe something like this?
> >>>>>>>>>
> >>>>>>>>> "In the event of naming collisions, exceptions to the coding style may
> >>>>>>>>> be made at the discretion of the contributor and maintainers."
> >>>>>>>>
> >>>>>>>> Hmm, maybe I wasn't clear enough then. My take is that the scheme should
> >>>>>>>> simply not allow for possible collisions. Neither the contributor nor the
> >>>>>>>> reviewer may spot such a collision, and it may therefore take until the
> >>>>>>>> first full scan that one is actually noticed. Which I consider too late
> >>>>>>>> in the process, even if we already were at the point where commits were
> >>>>>>>> checked pre-push.
> >>>>>>>
> >>>>>>> Looking at the proposal, copy/pasted here for convenience:
> >>>>>>>
> >>>>>>> - private headers -> <dir>_<filename>_H
> >>>>>>> - asm-generic headers -> ASM_GENERIC_<filename>_H
> >>>>>>>     - #ifndef ASM_GENERIC_X86_PERCPU_H
> >>>>>>>       #define ASM_GENERIC_X86_PERCPU_H
> >>>>>>>       //...
> >>>>>>>       #endif /* ASM_GENERIC_X86_PERCPU_H */
> >>>>>>> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
> >>>>>>>     - #ifndef ASM_X86_DOMAIN_H
> >>>>>>>       #define ASM_X86_DOMAIN_H
> >>>>>>>       //...
> >>>>>>>       #endif /* ASM_X86_DOMAIN_H */
> >>>>>>> - xen/include/xen/<filename>.h -> XEN_<filename>_H
> >>>>>>> - xen/include/xen/<subdir>/<filename>.h -> XEN_<subdir>_<filename>_H
> >>>>>>>
> >>>>>>>
> >>>>>>> The only possibility for collision that I can see is from the first
> >>>>>>> point:
> >>>>>>>
> >>>>>>> - private headers -> <dir>_<filename>_H
> >>>>>>
> >>>>>> I don't think this is the only possibility of collisions. The <subdir>_<filename>
> >>>>>> parts can similarly cause problems if either of the two involved names contains
> >>>>>> e.g. a dash (which would need converting to an underscore) or an underscore. To
> >>>>>> avoid this, the name separators (slashes in the actual file names) there may need
> >>>>>> representing by double underscores.
> >>>>>
> >>>>> I am OK with you two underscores as name separator (slashes in the
> >>>>> actual file names). Would you do it for all levels like this?
> >>>>>
> >>>>> - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
> >>>>> - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
> >>>>> - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> >>>>>
> >>>>>
> >>>>> I think it is better than the below:
> >>>>>
> >>>>> - arch/arm/arm64/lib/something.h -> ARM_ARM64__LIB__SOMETHING_H
> >>>>> - arch/arm/arm32/lib/something.h -> ARM_ARM32__LIB__SOMETHING_H
> >>>>> - arch/x86/lib/something.h -> X86_LIB__SOMETHING_H
> >>>>
> >>>> Hmm, maybe it's indeed better to do it entirely uniformly then.
> >>>
> >>>
> >>> Do we have agreement on the naming convention then? 
> >>>
> >>>
> >>> - private headers -> <dir>__<filename>__H
> >>>     - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
> >>>     - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
> >>>     - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> >>>
> >>> - asm-generic headers -> ASM_GENERIC_<filename>_H
> >>>     - include/asm-generic/percpu.h -> ASM_GENERIC_X86_PERCPU_H
> >>>
> >>> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
> >>>     - arch/x86/include/asm/domain.h -> ASM_X86_DOMAIN_H
> >>>
> >>> - include/xen -> XEN_<filename>_H
> >>>     - include/xen/percpu.h -> XEN_PERCPU_H
> >>>
> >>>
> >>> Or do you prefer the double underscore __  in all cases?
> >>
> >> It's not so much prefer, but a requirement if we want to be future proof.
> >> Even for ASM_GENERIC_* that'll be needed, as your outline above simply
> >> doesn't mention the (future) case of there being subdir-s there (see how
> >> Linux already has some). Imo the question doesn't even arise for XEN_*,
> >> as xen/ has subdir-s already.
> > 
> > OK. So it becomes:
> > 
> > - private headers -> <dir>__<filename>_H
> >     - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
> >     - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
> >     - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> > 
> > - asm-generic headers -> ASM_GENERIC__<filename>_H
> >     - include/asm-generic/percpu.h -> ASM_GENERIC__X86__PERCPU_H
> 
> Nit: There's still a stray _X86_ in here.
 
yes, good point.

Alessandro, let us know if we are good to go ahead or if we are missing
anything.


> > - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM__<architecture>__<subdir>__<filename>_H
> >     - arch/x86/include/asm/domain.h -> ASM__X86__DOMAIN_H
> > 
> > - include/xen -> XEN__<filename>_H
> >     - include/xen/percpu.h -> XEN__PERCPU_H
> > 
> > If we have found agreement then Alessandro could send an update
> 


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 15:57:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 15:57:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761132.1171124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUpyp-0004OD-Nc; Fri, 19 Jul 2024 15:57:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761132.1171124; Fri, 19 Jul 2024 15: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 1sUpyp-0004O0-J1; Fri, 19 Jul 2024 15:57:11 +0000
Received: by outflank-mailman (input) for mailman id 761132;
 Fri, 19 Jul 2024 15: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=17VY=OT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sUpyo-0004Nb-78
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 15:57:10 +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 8bd167b6-45e7-11ef-8776-851b0ebba9a2;
 Fri, 19 Jul 2024 17:57:06 +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 AB79721195;
 Fri, 19 Jul 2024 15:57: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 79FEE13808;
 Fri, 19 Jul 2024 15:57:03 +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 4DMvHM+MmmaMDwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 19 Jul 2024 15:57: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: 8bd167b6-45e7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721404624; 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=njpne1O7ESlKbpj2bubjPeYyxpHa6RmoveMWlnfX5zU=;
	b=fs1dzQMkHOadYC4nCcDWjH3kCol2VQPjBs+vKmAp62Pep/8zpd9EC4/XtQNa5xuGugfYaq
	Z98SxV0e7AqBitl1YAdPTjKXFFD0+Pi0B4iMjwNwSr04poOotup659Lr8K1lPB0axgVzc7
	6Dmv2NKYmchhlt31d7Gwfr4JARpc75E=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=WfMSsv4A
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721404623; 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=njpne1O7ESlKbpj2bubjPeYyxpHa6RmoveMWlnfX5zU=;
	b=WfMSsv4AzLpQsDqFAn3i1AbfDS1OnUe11A8FOR+i3tQeZ1WGMb4qrg4EhVljXdXPMFdamw
	6zCeZdtOLMMCFSWaJwJS2GrGBffaLH7E+yRTijCHv89FHR5jRVz5m6aBl2uOACXWV00H6L
	8xgtlgRNZzhXlCapbOVue2lwCti0zck=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v2] Mini-OS: add some macros for asm statements
Date: Fri, 19 Jul 2024 17:57:01 +0200
Message-ID: <20240719155701.18856-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [0.19 / 50.00];
	MID_CONTAINS_FROM(1.00)[];
	DWL_DNSWL_LOW(-1.00)[suse.com:dkim];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	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];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	TO_DN_SOME(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:dkim,suse.com:email];
	FROM_HAS_DN(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_FIVE(0.00)[5];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+]
X-Spam-Level: 
X-Rspamd-Queue-Id: AB79721195
X-Spam-Score: 0.19
X-Spam-Flag: NO
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Bar: /

Instead of having #ifdefs sprinkled around in x86 code, add some
macros defining constants for asm statements to address differences
between 32- and 64-bit mode.

Modify existing code to use those macros.

While at it convert the assembler parts of run_idle_thread() to a more
sane variant.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- addressed comments by Andrew Cooper
---
 arch/x86/sched.c | 34 ++++++++++------------------------
 include/x86/os.h | 18 ++++++++++--------
 2 files changed, 20 insertions(+), 32 deletions(-)

diff --git a/arch/x86/sched.c b/arch/x86/sched.c
index dabe6fd6..42805f9f 100644
--- a/arch/x86/sched.c
+++ b/arch/x86/sched.c
@@ -60,16 +60,10 @@ void dump_stack(struct thread *thread)
     unsigned long *bottom = (unsigned long *)(thread->stack + STACK_SIZE); 
     unsigned long *pointer = (unsigned long *)thread->sp;
     int count;
-    if(thread == current)
-    {
-#ifdef __i386__    
-        asm("movl %%esp,%0"
-            : "=r"(pointer));
-#else
-        asm("movq %%rsp,%0"
-            : "=r"(pointer));
-#endif
-    }
+
+    if ( thread == current )
+        asm("mov %%"ASM_SP",%0" : "=r"(pointer));
+
     printk("The stack for \"%s\"\n", thread->name);
     for(count = 0; count < 25 && pointer < bottom; count ++)
     {
@@ -119,20 +113,12 @@ struct thread* arch_create_thread(char *name, void (*function)(void *),
 
 void run_idle_thread(void)
 {
-    /* Switch stacks and run the thread */ 
-#if defined(__i386__)
-    __asm__ __volatile__("mov %0,%%esp\n\t"
-                         "push %1\n\t" 
-                         "ret"                                            
-                         :"=m" (idle_thread->sp)
-                         :"m" (idle_thread->ip));                          
-#elif defined(__x86_64__)
-    __asm__ __volatile__("mov %0,%%rsp\n\t"
-                         "push %1\n\t" 
-                         "ret"                                            
-                         :"=m" (idle_thread->sp)
-                         :"m" (idle_thread->ip));                                                    
-#endif
+    /* Switch stacks and run the thread */
+    asm volatile ("mov %[sp], %%"ASM_SP"\n\t"
+                  "jmp *%[ip]\n\t"
+                  :
+                  : [sp] "m" (idle_thread->sp),
+                    [ip] "m" (idle_thread->ip));
 }
 
 unsigned long __local_irq_save(void)
diff --git a/include/x86/os.h b/include/x86/os.h
index ee34d784..0095be13 100644
--- a/include/x86/os.h
+++ b/include/x86/os.h
@@ -61,6 +61,16 @@
 #define TRAP_deferred_nmi     31
 #define TRAP_xen_callback     32
 
+#if defined(__i386__)
+#define __SZ    "l"
+#define __REG   "e"
+#else
+#define __SZ    "q"
+#define __REG   "r"
+#endif
+
+#define ASM_SP  __REG"sp"
+
 /* Everything below this point is not included by assembler (.S) files. */
 #ifndef __ASSEMBLY__
 
@@ -141,14 +151,6 @@ do {									\
 
 #else
 
-#if defined(__i386__)
-#define __SZ "l"
-#define __REG "e"
-#else
-#define __SZ "q"
-#define __REG "r"
-#endif
-
 #define __cli() asm volatile ( "cli" : : : "memory" )
 #define __sti() asm volatile ( "sti" : : : "memory" )
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Jul 19 16:09:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 16:09:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761145.1171138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUqAr-0006ki-Q8; Fri, 19 Jul 2024 16:09:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761145.1171138; Fri, 19 Jul 2024 16:09:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUqAr-0006kb-N4; Fri, 19 Jul 2024 16:09:37 +0000
Received: by outflank-mailman (input) for mailman id 761145;
 Fri, 19 Jul 2024 16:09:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DsCa=OT=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sUqAq-0006kS-LD
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 16:09:36 +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 49c512ce-45e9-11ef-bbfd-fd08da9f4363;
 Fri, 19 Jul 2024 18:09:35 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1721405370197363.9369552082903;
 Fri, 19 Jul 2024 09:09:30 -0700 (PDT)
Received: by mail-yb1-f175.google.com with SMTP id
 3f1490d57ef6-e026a2238d8so2127906276.0
 for <xen-devel@lists.xenproject.org>; Fri, 19 Jul 2024 09: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: 49c512ce-45e9-11ef-bbfd-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; t=1721405371; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=D4F0XK7cdd/mv0z53PeFdezJVscDVugoTxyfIaOMyc0dGn6n2WWr6y/xombgNLS6bXK/Ai5retY25sjczetP0u9no6BQFMdsoLts5ZbUjhiKh2ZM8qy/kvcTGIYnBv2f/Vb5rHJXD3TvWkQ4hBGBLnbHJF2DgEAr+D7zXaw4X7I=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721405371; 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=gwqbqtHCZgoj8RT1GA/9N7f8kzTOeXXpyebls8KObrU=; 
	b=F13HKnedmMwbQH2IyrpO7hHme4Q32PJqR0RD0NHRgZN71yfhoBy3OYZsvF8nFy6RdHd2UdUg8Htj0g3Pd5DmtJLFv+L2dad/gBcT66+Xm3znGYwbB4MnzJTxeulpAImZ2+p8RO9mIbTS98ww4cbPuQeBnnxpWUfT80rHD21ASjU=
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=1721405371;
	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=gwqbqtHCZgoj8RT1GA/9N7f8kzTOeXXpyebls8KObrU=;
	b=CLMhnBntyogWNjLi3ppn2GSdQWUFwjGwl9RHSillO0EDTq7WE/QVrLwUDoe6/dkQ
	sdk/LGPE7/757ZEiayvTP/J6RctZ+4sxTBt2ucLtq4qxiQ5/doa6lBU2ja5pXud/08K
	ATJ305xEGNHKgZz3sZPA8wr4fLKhXF3/44Nt3daw=
X-Gm-Message-State: AOJu0YxmsvoZw0Wkj36JIAUGR6Sx4dZ0h80UjetFpUBxV9ANHP5a+vGB
	C/26NilDsA3Jpxc7fLU8groPFVfDNUQTMqjfwQ5PmEQqHPLJzwZMxqsMSGi5bPG12hfdtb0pYXh
	eBBmjAdRdDnr3L4jLxXumYk6ulws=
X-Google-Smtp-Source: AGHT+IGIwL5vcamb/waCgpTBzGm0eTemh/8kJ3Q7NfxqUqBz/CA2NKZnx7bkjWYY6bAJLjrxKQgUhP+2y4ZgE/akMa8=
X-Received: by 2002:a05:6902:2088:b0:e02:b51f:830f with SMTP id
 3f1490d57ef6-e087045a554mr106407276.41.1721405369388; Fri, 19 Jul 2024
 09:09:29 -0700 (PDT)
MIME-Version: 1.0
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <d0974cc40ca68fe197ba7941edd934970d3a92cf.1719355322.git.tamas@tklengyel.com> <D2SUHZ78N3M5.231Q6OE5GA3GE@cloud.com>
In-Reply-To: <D2SUHZ78N3M5.231Q6OE5GA3GE@cloud.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Fri, 19 Jul 2024 12:08:53 -0400
X-Gmail-Original-Message-ID: <CABfawhnKQG8T1K+rOdsq9vWFfm_Ba0NgPciQ0CRvZFoZQY5h9w@mail.gmail.com>
Message-ID: <CABfawhnKQG8T1K+rOdsq9vWFfm_Ba0NgPciQ0CRvZFoZQY5h9w@mail.gmail.com>
Subject: Re: [PATCH v2 2/2] Add scripts/oss-fuzz/build.sh
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
	George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 18, 2024 at 1:36=E2=80=AFPM Alejandro Vallejo
<alejandro.vallejo@cloud.com> wrote:
>
> On Tue Jun 25, 2024 at 11:47 PM BST, Tamas K Lengyel wrote:
> > The build integration script for oss-fuzz targets. Future fuzzing targe=
ts can
> > be added to this script and those targets will be automatically picked =
up by
> > oss-fuzz without having to open separate PRs on the oss-fuzz repo.
> >
> > Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> > ---
> >  scripts/oss-fuzz/build.sh | 23 +++++++++++++++++++++++
> >  1 file changed, 23 insertions(+)
> >  create mode 100755 scripts/oss-fuzz/build.sh
> >
> > diff --git a/scripts/oss-fuzz/build.sh b/scripts/oss-fuzz/build.sh
> > new file mode 100755
> > index 0000000000..2cfd72adf1
> > --- /dev/null
> > +++ b/scripts/oss-fuzz/build.sh
> > @@ -0,0 +1,23 @@
> > +#!/bin/bash -eu
>
> The shebang probably wants to be "/usr/bin/env bash" to account for syste=
ms
> that don't have bash specifically there.
>
> With that "-eu" would need to move down a line to be "set -eu"

Thanks but this script is specifically made for just one environment
and does not need to account for other systems.

Cheers,
Tamas


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 16:35:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 16:35:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761154.1171151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUqZZ-0002JZ-Nb; Fri, 19 Jul 2024 16:35:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761154.1171151; Fri, 19 Jul 2024 16:35: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 1sUqZZ-0002JS-Kc; Fri, 19 Jul 2024 16:35:09 +0000
Received: by outflank-mailman (input) for mailman id 761154;
 Fri, 19 Jul 2024 16:35:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUqZY-0002JI-Mm; Fri, 19 Jul 2024 16:35:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUqZY-0004pX-JK; Fri, 19 Jul 2024 16:35:08 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUqZY-0005G2-74; Fri, 19 Jul 2024 16:35:08 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUqZY-0006HD-6j; Fri, 19 Jul 2024 16:35:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4PkY03O1SHlCnjopn3y0HPA4+DGiuShW4PvagYlMgwk=; b=rwZB1D89lXNdDbh0IIiIetoV08
	mEU/gi1BMTiTA2wgMBoLjOJtyZaADkOhjS4ucgrtfCRIfz9Izw0h0j5pvXdeQpTnHLGvjF7g1RmwO
	eeMXinRevvsOZnH+6z4mYIEzXAA1jD2GjIie8l1qCuHKtEPV12hSB0hKcZQRRv8UXh2o=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186891-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186891: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=57338346f29cea7b183403561bdc5f407163b846
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Jul 2024 16:35:08 +0000

flight 186891 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186891/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186844
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186854
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186854
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186854
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186854
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186854
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  57338346f29cea7b183403561bdc5f407163b846
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186891  2024-07-19 01:54:58 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Fri Jul 19 16:50:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 16:50:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761168.1171166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUqoO-0005Dt-5G; Fri, 19 Jul 2024 16:50:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761168.1171166; Fri, 19 Jul 2024 16:50: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 1sUqoO-0005Dm-2l; Fri, 19 Jul 2024 16:50:28 +0000
Received: by outflank-mailman (input) for mailman id 761168;
 Fri, 19 Jul 2024 16:50:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUqoM-0005Dc-AL; Fri, 19 Jul 2024 16:50:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUqoM-000567-6M; Fri, 19 Jul 2024 16:50:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUqoL-0005ff-R1; Fri, 19 Jul 2024 16:50:25 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUqoL-0000xF-QW; Fri, 19 Jul 2024 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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=3ex+9rUPrzDo98Uzlq1xMWYFu8stWuMHmGvRiGTwf3o=; b=6PvJUpLsUr9lvDRGRKfRv5ic6x
	zu7DnnnW8rcNrWYMZml46kkhCasFRO2vbt1YhZsTQURxKhhYBx7mv127O8PL/l8d72GPRr+EIOiP6
	MZI3sXEDw73Z0GHLDnMDtLuB9zdWy1JWjOMtcWAwBf2MqaIMh4E1XVeHLV04+Ne/eiMw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186913-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186913: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e5182b40cf4bbb89292d66b8f3047a9ee913a90a
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Jul 2024 16:50:25 +0000

flight 186913 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186913/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e5182b40cf4bbb89292d66b8f3047a9ee913a90a
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186826  2024-07-16 19:00:25 Z    2 days
Failing since        186880  2024-07-18 15:00:30 Z    1 days    8 attempts
Testing same since   186913  2024-07-19 14:00:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Julien Grall <julien@xen.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   57338346f2..e5182b40cf  e5182b40cf4bbb89292d66b8f3047a9ee913a90a -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 21:07:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 21:07:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761186.1171179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUup4-0006tC-4I; Fri, 19 Jul 2024 21:07:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761186.1171179; Fri, 19 Jul 2024 21: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 1sUup4-0006t5-1o; Fri, 19 Jul 2024 21:07:26 +0000
Received: by outflank-mailman (input) for mailman id 761186;
 Fri, 19 Jul 2024 21:07:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUup2-0006st-IJ; Fri, 19 Jul 2024 21:07:24 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUup2-0001hr-Fw; Fri, 19 Jul 2024 21:07:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUup1-0006Vw-VL; Fri, 19 Jul 2024 21:07:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUup1-0003pe-Tl; Fri, 19 Jul 2024 21:07: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=wWxXv/w8O6n22KVcet/2opECv9EAdxnNSHdKMhNCW1w=; b=JEk2lywHl/4F8wi7IroPt2qDXk
	HrI98allkiRyuFSMIJziPJ5eUdv1RStZHFoEc1TzhVTkPywoiGPZyPGA3em61/cCt+/KCosUIFVT6
	csK4Y2i0lnRa/pafYP0540a4ZuUe+15vaPZpR95eu8JNcBLmTgAdYMcdd2US4K9aumWk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186899-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.19-testing test] 186899: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.19-testing:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-4.19-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=5eea8790495c9494fa0c7a4ba0e76d3e273af25b
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 19 Jul 2024 21:07:23 +0000

flight 186899 xen-4.19-testing real [real]
flight 186921 xen-4.19-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186899/
http://logs.test-lab.xenproject.org/osstest/logs/186921/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186921-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186878
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186878
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186878
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186878
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186878
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186878
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  5eea8790495c9494fa0c7a4ba0e76d3e273af25b
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186878  2024-07-18 14:10:49 Z    1 days
Testing same since   186899  2024-07-19 06:18:50 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Julien Grall <julien@xen.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   57338346f2..5eea879049  5eea8790495c9494fa0c7a4ba0e76d3e273af25b -> stable-4.19


From xen-devel-bounces@lists.xenproject.org Fri Jul 19 21:15:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 19 Jul 2024 21:15:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761199.1171202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUuwR-00005S-0A; Fri, 19 Jul 2024 21:15:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761199.1171202; Fri, 19 Jul 2024 21:15: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 1sUuwQ-00005L-Tv; Fri, 19 Jul 2024 21:15:02 +0000
Received: by outflank-mailman (input) for mailman id 761199;
 Fri, 19 Jul 2024 21: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=B4QG=OT=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sUuwQ-00005D-20
 for xen-devel@lists.xenproject.org; Fri, 19 Jul 2024 21:15:02 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20603.outbound.protection.outlook.com
 [2a01:111:f403:2408::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3b1f255-4613-11ef-8776-851b0ebba9a2;
 Fri, 19 Jul 2024 23:14:59 +0200 (CEST)
Received: from MW4PR03CA0145.namprd03.prod.outlook.com (2603:10b6:303:8c::30)
 by DM4PR12MB8560.namprd12.prod.outlook.com (2603:10b6:8:189::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.19; Fri, 19 Jul
 2024 21:14:55 +0000
Received: from CO1PEPF000044F9.namprd21.prod.outlook.com
 (2603:10b6:303:8c:cafe::ca) by MW4PR03CA0145.outlook.office365.com
 (2603:10b6:303:8c::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.20 via Frontend
 Transport; Fri, 19 Jul 2024 21:14:54 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000044F9.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.7784.5 via Frontend Transport; Fri, 19 Jul 2024 21:14:54 +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, 19 Jul
 2024 16:14: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; Fri, 19 Jul
 2024 16:14:53 -0500
Received: from [172.27.205.14] (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, 19 Jul 2024 16:14: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: f3b1f255-4613-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EP7+oAux5Yywf03ondlUOF59NRtZMZ3oJEXILdx2yAXM3UtKO+XkrYgP3zducx/h9YUpVT/bWZl6Rr4leWvoudiCb4AvBtyDVm2D+wzu3KEm7u+8zEmrJAdeZ2bXY27ECPI5+WWprbX+mH6HzTfRpN1VOTrIlgaGC905P4RUvbfzsO+eP+opH0YvoFISugOQ7xqrnHb01GScBY29EEpJB8nvsz7HyWZXOAmAQtsd5uYd5ZELHAHMcyW1IJtqzBwuMiTwKMDTwbK8JXyvh2tZZi+0oD8ZF7vdvfR/LDlZ3XwzRY3xXpamUs30DgRDhGKSY96jkMkDQM9j2ATMrmkkRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lsleLYF7hff2fEi3p44OOijzqxdPGzwyb+EgqFa98zY=;
 b=FsLg/CdIYCNc1ZYu0Tj7tf3+16C8EVD6XsjSYYwaZooxiKjM6hREwAb3NDxecbD16dTPNpHSZUfgvG8jX3mivNyiFKrMOckgzKPGH2Gz98yZ1EowxSIuBKXzy0O0AxxJkvEa5NzOCnD6tA5BjUmv5u7JMGSDODHJfc8qoUE1lhj9SSisY61RhMMUWftJs3reajAVXIACDsWUyQUb7LTQC+9+lEN5IbFyX0d8TzfpJbesBnfyS8dV10/qkloWz5HLPpn7z25Ro0HLmE+Fj3zrG5WoI5u835mpolU9UDmDSntDfY/uxr9cGDzIS+TU9LZVsbvnsSVMI0SZMDTcogdsaQ==
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=lsleLYF7hff2fEi3p44OOijzqxdPGzwyb+EgqFa98zY=;
 b=Y5TngCi3ansXVsjSaBvLoo64CvaOhivdu5YwFtbo32zbGhanlHFDM6uvqIx/mcsnpStsv5ybtG6nTAClrSwaZF8t8QDhtsKOai8A+AJgRbTvs4sS6aRejdYnEYJhXlhZCXivD9JwuK1aEzgt1RoLFPqNZexvzSgM/t6rbcV6tUo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <78c73bac-deb9-4e6e-8027-fb78369f695a@amd.com>
Date: Fri, 19 Jul 2024 17:14:51 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/6] tools/libxs: Fix length check in xs_talkv()
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-2-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20240718164842.3650702-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044F9:EE_|DM4PR12MB8560:EE_
X-MS-Office365-Filtering-Correlation-Id: e40628c2-ffd4-44f3-bb69-08dca837d60b
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?SXR3bStxWjVIYW1IclFYT0FmL2YxWEtzZnkyNmFFWmo2cEtRZDRVK3UvTU55?=
 =?utf-8?B?OUR0cnpEMEdNdUpwVzFnbkVWTUk5V2pETVBpYmVMRCtxMlBOQWgxWmhNQTEv?=
 =?utf-8?B?KzMzSkRrYzNsQ1MrdkxkdXUyaXNMbHpxMkdsaW9NbStiTDZlQTdhQlNONm9p?=
 =?utf-8?B?cThadnFtcVYxOVZIejVGMEdhUFVLaVZ4S1FzbVpubUFIVG9SVkp3alF4bFdS?=
 =?utf-8?B?UGlmenZZMFRoS2tTWkxoYU5qOEYvaEo2TDd1Y2xlbndtdlVXa3U2UURZV042?=
 =?utf-8?B?RnhscWxhN0o0NS8wY29QZlRWL3hYVEQ4SmJnM0NSZXBCd1hlbjVZTDIrOHdM?=
 =?utf-8?B?SnRIdDBQa0J2SDhhaWhoNkVNQ01GU0JyMDl5Y1NTOEdHdE0zOGQzRFhSY0RL?=
 =?utf-8?B?SS95Zm5kWThGamIvL05UQXQ5RnpINkZMK2NwN1lKYkJLVEhqcHFQK3dUbFpv?=
 =?utf-8?B?TFFRNVlvWWl4S29oeFVXZU9EcExJSlFxMzVMbEJjWlRHaEFOTlN4UHMrN2RK?=
 =?utf-8?B?eEhTNVRubzNWZ1VOdURDZG5SVzFFRWdGbnJCYSs3M1FTa2RQN2IzbUdrUWtE?=
 =?utf-8?B?ZkdxWWV6YmJhejU5NWlXS3RaY0N0RHR3NzdPMGMrZlMvQ1BMUjk4ODYwcUQw?=
 =?utf-8?B?Wlk5dFpKQkZWa3pOR3NEbGlPUWNlYWdheGpJNmxFcG5YQ05wemJ2U1hRY21W?=
 =?utf-8?B?VUtveUZDVnI2dzlIWkVkQ0g1VUVYTVgzWHJyNzlZek5lYzhNbEt2Q1JPb2RU?=
 =?utf-8?B?TWNjT3RZZFZ1K0hReFl5U1pyZjdvTWFjWjB3c2F6REhsU3pmWE1Ld2xIYXlL?=
 =?utf-8?B?YnR2bmJxMDY4bEJqZ1k2NEllZkU2d2lwRlk1U1lpa3I2c1g1OVdEa3BITFFn?=
 =?utf-8?B?SzBkYTNoQnlZQjdwRk8xM1U1SEZYd0FkWDRJWFkzZlljZ0JweWRDR2ZTR3Nx?=
 =?utf-8?B?MkY4aUZtWWdZQTVQekllWk5VdkNRRTFQdFh3bzViZ3ZkaWc5V2pqaVBQbE5t?=
 =?utf-8?B?aGgrcG1hemZ0NkFMdmhrMGc2eWRYVld5aUk5MitsV09adzVvdUwwOHBSdVFH?=
 =?utf-8?B?WmhiUGhXUUlJNFhhRDI2V2oyRFpsa3U0dS9rN3lNNjVBWUovYmY3V0ZQcm5S?=
 =?utf-8?B?dytLd2NuWExGa0RjZ1JuSHQ1V3d4emxIWENFZmNMZy9tUURTS2ViTXJrQkVt?=
 =?utf-8?B?NzFOT0szQytPNEVRMFN3VGNka0hvS2pNL3NKcmR4Y3FQYmZmQ0hDNlZFelZh?=
 =?utf-8?B?d2pZTXZNNnhpWW1LVXZ1NURRZVhqRS9wTzJ6NHFIWTRoWm5aQ1VHajFKcTFz?=
 =?utf-8?B?YkVRSHRnR015bFpUYVdlUThBS2lkVHFxYVhpNXZGek5Ra0JvR2crTElQeUkz?=
 =?utf-8?B?dUEzUkFZdThXYndIUWpqNzZwNnc4U2xTTUp0SGovekpJdXlhUnZLTGE0U0tS?=
 =?utf-8?B?Uy8yc0RFZFI1SFBmZ3RYSHpsaEdNdkk0QTdJQXJoeCtCZlBsVHp6NmhwZzdC?=
 =?utf-8?B?WWhFVVlJQmpiM0RGbVJwazNEelBZMGhOL2F2b2FGM2JselNuU3B5WTFRK1pO?=
 =?utf-8?B?aHYvMGVodkthdnNJTWZhRGMyN3hOOTJZU1RvTkN0VHczTEp2cTBtcXF5RDd6?=
 =?utf-8?B?dU5lSzU4SUZTZnNxeEdlbVNFM3VhQzZvMGkrRGplTWxTR0dPSnBGY3RpS3Y0?=
 =?utf-8?B?MlkwTm1LeEo0SnFhZ1A1WkRDUDcrbmlOWkFzZmxXbGc0MUowVzdjenp6SE1P?=
 =?utf-8?B?WGFDdzEzT25lZmFmOFpQTVpJOHdTWFYxVWlrZnpPamptYWFkTjZzNUQ2Vkdu?=
 =?utf-8?B?S0xWQVk1UmlrOGZ6V0k4MEFTdE9wbk41VHV2dlg0ZjdBc1NyTW41SFNxZ3Js?=
 =?utf-8?B?OHVqcUVJOWZVdUNqNzZkNDZpM2UralRpS1FKdlFMZkJOOG9HaHN0QlRjVlU4?=
 =?utf-8?Q?EK3RHTS53616WLNptDlI8EriZLIKEl/z?=
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: 19 Jul 2024 21:14:54.5653
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e40628c2-ffd4-44f3-bb69-08dca837d60b
X-MS-Exchange-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:
	CO1PEPF000044F9.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8560

On 2024-07-18 12:48, Andrew Cooper wrote:
> If the sum of iov element lengths overflows, the XENSTORE_PAYLOAD_MAX can
> pass, after which we'll write 4G of data with a good-looking length field, and
> the remainder of the payload will be interpreted as subsequent commands.
> 
> Check each iov element length for XENSTORE_PAYLOAD_MAX before accmulating it.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Juergen Gross <jgross@suse.com>
> ---
>   tools/libs/store/xs.c | 17 ++++++++++-------
>   1 file changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
> index ec77379ab9bd..81a790cfe60f 100644
> --- a/tools/libs/store/xs.c
> +++ b/tools/libs/store/xs.c
> @@ -571,21 +571,24 @@ static void *xs_talkv(struct xs_handle *h, xs_transaction_t t,
>   	struct xsd_sockmsg msg;
>   	void *ret = NULL;
>   	int saved_errno;
> -	unsigned int i;
> +	unsigned int i, msg_len;
>   	struct sigaction ignorepipe, oldact;
>   
>   	msg.tx_id = t;
>   	msg.req_id = 0;
>   	msg.type = type;
> -	msg.len = 0;
> -	for (i = 0; i < num_vecs; i++)
> -		msg.len += iovec[i].iov_len;
>   
> -	if (msg.len > XENSTORE_PAYLOAD_MAX) {
> -		errno = E2BIG;
> -		return 0;
> +	/* Calculate the payload length by summing iovec elements */
> +	for (i = 0, msg_len = 0; i < num_vecs; i++) {
> +		if ((iovec[i].iov_len > XENSTORE_PAYLOAD_MAX) ||
> +		    ((msg_len += iovec[i].iov_len) > XENSTORE_PAYLOAD_MAX)) {
> +			errno = E2BIG;
> +			return 0;

return NULL;

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


From xen-devel-bounces@lists.xenproject.org Sat Jul 20 00:15:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Jul 2024 00:15:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761212.1171211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUxl9-00035p-ME; Sat, 20 Jul 2024 00:15:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761212.1171211; Sat, 20 Jul 2024 00:15:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUxl9-00035i-Je; Sat, 20 Jul 2024 00:15:35 +0000
Received: by outflank-mailman (input) for mailman id 761212;
 Sat, 20 Jul 2024 00:15:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XC/M=OU=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sUxl8-00035c-In
 for xen-devel@lists.xenproject.org; Sat, 20 Jul 2024 00:15:35 +0000
Received: from fout3-smtp.messagingengine.com (fout3-smtp.messagingengine.com
 [103.168.172.146]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2c001df4-462d-11ef-bbfd-fd08da9f4363;
 Sat, 20 Jul 2024 02:15:31 +0200 (CEST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailfout.nyi.internal (Postfix) with ESMTP id 265D91380126;
 Fri, 19 Jul 2024 20:15:29 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute5.internal (MEProxy); Fri, 19 Jul 2024 20:15:29 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 19 Jul 2024 20:15: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: 2c001df4-462d-11ef-bbfd-fd08da9f4363
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=1721434529; x=1721520929; bh=VKwXjlPJjEOR+Z0ANt4pOIIHCDp5/8kT
	rMxMyZN7PgA=; b=rmbs3iTvQ2sLsKVC3gLqCJVdswA0z1IxQmzOTQoJoM0rHKu/
	M8hGPCuoBTfaI/IvthNZ0CPD+he9lhkeEGgQMQ5WJ0ngz8vnMKlfpnmbMUksHW5Y
	+/93s+a6HwykRGdmHydH8oIGBNSPKm8Et1/XJ6mPr9a/N1ysm7y+RCGsOzWkRrDt
	f/uMQIkIphdc6jR9IB2di+WgZ4ZQFKeedPk8gijqF95ssHg8Weoi/L2jvDAYzQym
	SFlA/7HW46wtVzqK8yEigIv6N7PZvqlowC4Oxx5KsWkJeZBWIFFSYYPeDGloYnHc
	ga0E5premsP4vd4aHtptwojGSYS8Tw17oh6o4A==
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-proxy:x-me-sender:x-me-sender
	:x-sasl-enc; s=fm3; t=1721434529; x=1721520929; bh=VKwXjlPJjEOR+
	Z0ANt4pOIIHCDp5/8kTrMxMyZN7PgA=; b=mdCuJXgvHil11HngvGk82l7Gtl5JY
	8Ea20f/aUFbHQnJtjy2GXNdiIh24tJ+jhJzB679zL6vNAF9RZgMjDcdoIU7Ub2bP
	f6qgif1gDhNoc8mJYOBjxzsEem5wpVhvhB2jew5wEjecUsWQD276ggeLvXuffpzl
	xp+G2B5olMnXCxcw78RwOUFpA9g5pR/ZTDlX4iFI7mrTRNNyoSdixBMtIZDwxKCI
	EHE41Rmp2TtD1SL7/0hB8js9N91pNld4t573XYpAQs5hGEFX3rMLm1cKSfXIOeYu
	Gz4baNgTXTO9xStgAOcytAYskC9Ww5GThiPgB462yUKjohVSSfzAnluJw==
X-ME-Sender: <xms:oAGbZvP5x2lCWq8C_PPSVc88p9cGBzYMuvi6x6Gn7nRwPrsl_e7c9A>
    <xme:oAGbZp_aryIcxyL6N9xFZ6cIHM1AXIGpZ4yr8eVL9yiiXYxJAOc4OnK62HG4DdyaL
    Bz1CdcTn6f61A>
X-ME-Received: <xmr:oAGbZuRHPyedN0SW-Jtm_c0UheSvW9OMu0lMek1DIvZXMzHtFpMgp9-i7ihdwMW9uIbf4O1Y8bgMRtqiuVCh8bD4oHytFkqnqCN0vWxGnRfcX10Jbq0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrhedvgdefgecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpefhvfevufffkffogggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepvdeiiefg
    keegteegjeefffeiueekudfhudduueffgffhueellefgteefudeftefhnecuffhomhgrih
    hnpehgihhtlhgrsgdrtghomhdpughotghkvghrfhhilhgvrdhinhenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:oAGbZjvgm9NYFnysgN74JzV1RB7eqWbYG-xLWUgoXus1eYDcVLUPaw>
    <xmx:oAGbZnc_e0H-ke08md6RQT2sJWxTh1i-RfJWThglKbwYsZsMUXv0pg>
    <xmx:oAGbZv2LGdF1WRApx8g43VADTjRw8hCmDM8qzI8TSJvWZcx1klai1Q>
    <xmx:oAGbZj96f-HilNToG2DbBfAeGOkJ2eqwUtwj0YE98jFp4vaeNz4HrQ>
    <xmx:oQGbZu5xaF-SM10J5FVnz-8IAjV6apjVaZf5Bw7N8NhQOojuN6d0ApvV>
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: workaround broken selinux+docker interaction in yocto
Date: Sat, 20 Jul 2024 02:15:03 +0200
Message-ID: <20240720001508.1673856-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

`cp --preserve=xattr` doesn't work in docker when SELinux is enabled. It
tries to set the "security.selinux" xattr, but SELinux (or overlay fs?)
denies it.
Workaround it by skipping selinux.selinux xattr copying.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Tested here:
https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/7386198058

But since yocto container fails to build, it isn't exactly easy to apply
this patch...
"kirkstone" branch of meta-virtualization seems to target Xen 4.15 and
4.16, so it isn't exactly surprising it fails to build with 4.19.

I tried also bumping yocto version to scarthgap (which supposedly should
have updated pygrub patch), but that fails to build for me too, with a
different error:

    ERROR: Layer 'filesystems-layer' depends on layer 'networking-layer', but this layer is not enabled in your configuration
    ERROR: Parse failure with the specified layer added, exiting.
    ...
    ERROR: Nothing PROVIDES 'xen-image-minimal'. Close matches:
      core-image-minimal
      core-image-minimal-dev
    Parsing of 2472 .bb files complete (0 cached, 2472 parsed). 4309 targets, 101 skipped, 0 masked, 0 errors.
---
 automation/build/yocto/yocto.dockerfile.in | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/automation/build/yocto/yocto.dockerfile.in b/automation/build/yocto/yocto.dockerfile.in
index fbaa4e191caa..600db7bf4d19 100644
--- a/automation/build/yocto/yocto.dockerfile.in
+++ b/automation/build/yocto/yocto.dockerfile.in
@@ -68,6 +68,10 @@ RUN locale-gen en_US.UTF-8 && update-locale LC_ALL=en_US.UTF-8 \
 ENV LANG en_US.UTF-8
 ENV LC_ALL en_US.UTF-8
 
+# Workaround `cp --preserve=xattr` not working in docker when SELinux is
+# enabled
+RUN echo "security.selinux skip" >> /etc/xattr.conf
+
 # Create a user for the build (we don't want to build as root).
 ENV USER_NAME docker-build
 ARG host_uid=1000
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Sat Jul 20 00:48:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Jul 2024 00:48:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761220.1171222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUyGR-0006tR-3z; Sat, 20 Jul 2024 00:47:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761220.1171222; Sat, 20 Jul 2024 00:47:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sUyGR-0006tK-0V; Sat, 20 Jul 2024 00:47:55 +0000
Received: by outflank-mailman (input) for mailman id 761220;
 Sat, 20 Jul 2024 00:47:54 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUyGQ-0006tA-BB; Sat, 20 Jul 2024 00:47:54 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUyGQ-0006QH-6J; Sat, 20 Jul 2024 00:47:54 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sUyGP-0003x7-Ru; Sat, 20 Jul 2024 00:47:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sUyGP-0002Kf-RN; Sat, 20 Jul 2024 00: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+UpSKRbnA0IWMFn/cOnvLh6vnfu4L69T6Gr8Ypvwov0=; b=1zW0iEBLy6GJRMhVaQZBYsWG3u
	6Wn+pRP4RAkphMyvjIGPMSmgn7JVXuao1WE5NvAUBIlaU+zyFRvutp+LbwwbUXD3zVOoFV2iXHAdj
	EBdfQEhPQPUv5daURhP+wpV7X2bERQ6c5tL5h1UKv/406TpoKfGn4xN+/VIY2yzoc9vE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186920-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186920: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e5182b40cf4bbb89292d66b8f3047a9ee913a90a
X-Osstest-Versions-That:
    xen=57338346f29cea7b183403561bdc5f407163b846
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Jul 2024 00:47:53 +0000

flight 186920 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186920/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186891
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186891
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186891
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186891
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186891
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186891
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e5182b40cf4bbb89292d66b8f3047a9ee913a90a
baseline version:
 xen                  57338346f29cea7b183403561bdc5f407163b846

Last test of basis   186891  2024-07-19 01:54:58 Z    0 days
Testing same since   186920  2024-07-19 17:08:47 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Julien Grall <julien@xen.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   57338346f2..e5182b40cf  e5182b40cf4bbb89292d66b8f3047a9ee913a90a -> master


From xen-devel-bounces@lists.xenproject.org Sat Jul 20 08:03:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Jul 2024 08:03:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761245.1171256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sV53v-000718-Nu; Sat, 20 Jul 2024 08:03:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761245.1171256; Sat, 20 Jul 2024 08: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 1sV53v-000711-LH; Sat, 20 Jul 2024 08:03:27 +0000
Received: by outflank-mailman (input) for mailman id 761245;
 Sat, 20 Jul 2024 08:03:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sV53u-00070r-Uj; Sat, 20 Jul 2024 08:03:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sV53u-00022F-RP; Sat, 20 Jul 2024 08:03:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sV53u-0001MU-FZ; Sat, 20 Jul 2024 08:03:26 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sV53u-0007yX-EZ; Sat, 20 Jul 2024 08:03:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=G1u5f9RXYvHWd/u/EA8k5xjmLBVgZ/igsC+kcVqDIxU=; b=6hqECE88oMFD87V4IvRKK+eii3
	GDiVPA8ylRK0OVNeW02OT5HdmF5jXGs9Yrj5tKkBjPdLx0jDpyV4iuRZd3QSzzZwiklxzRmIbbfAx
	S9NLkOHWKyvanofv4LPLVhMhjFI9aWitS3owcddRx+dg23uRmA15qWCxpAg7ZtNrJRqY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186922-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186922: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-dom0pvh-xl-amd:guest-start:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qcow2:guest-localmigrate/x10:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-credit1:host-ping-check-xen:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-localmigrate/x10:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e5182b40cf4bbb89292d66b8f3047a9ee913a90a
X-Osstest-Versions-That:
    xen=e5182b40cf4bbb89292d66b8f3047a9ee913a90a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Jul 2024 08:03:26 +0000

flight 186922 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186922/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-dom0pvh-xl-amd 14 guest-start             fail pass in 186920
 test-amd64-amd64-xl-qcow2    19 guest-localmigrate/x10     fail pass in 186920
 test-armhf-armhf-xl-credit1  10 host-ping-check-xen        fail pass in 186920
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186920
 test-amd64-amd64-xl-qemut-ws16-amd64 18 guest-localmigrate/x10 fail pass in 186920

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop fail in 186920 blocked in 186922
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 186920 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 186920 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186920
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186920
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186920
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186920
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186920
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e5182b40cf4bbb89292d66b8f3047a9ee913a90a
baseline version:
 xen                  e5182b40cf4bbb89292d66b8f3047a9ee913a90a

Last test of basis   186922  2024-07-20 01:55:34 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    fail    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sat Jul 20 10:07:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Jul 2024 10:07:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761260.1171265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sV6zO-0003Eg-6g; Sat, 20 Jul 2024 10:06:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761260.1171265; Sat, 20 Jul 2024 10: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 1sV6zO-0003EZ-3u; Sat, 20 Jul 2024 10:06:54 +0000
Received: by outflank-mailman (input) for mailman id 761260;
 Sat, 20 Jul 2024 10:06:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sV6zM-0003EP-BH; Sat, 20 Jul 2024 10:06:52 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sV6zM-0004e8-8d; Sat, 20 Jul 2024 10:06:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sV6zL-0004EO-QK; Sat, 20 Jul 2024 10:06:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sV6zL-0001jU-Pu; Sat, 20 Jul 2024 10:06:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=WbPH0/u8A4fgXRLscydFGyp2nRdDTN2TIff6VtHZFRM=; b=vS92+bBiGFLsbxv8yytseytajZ
	34Gi1mzns05xyDX7fmB7coyrT7aqtVddrBcFnlEcAyIGRZ7pDvyIX7OW0HJ6516cczayDjMW7Y76A
	FTmZF61dS1TXkgqKTAo7CzAcr7aT3f6Q2JuvvIDujeJYlU4p1BSAA8ItVHlDMrZqb2pE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186923-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186923: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=c019350a76d79405dd3e22d3023b71384f2924f2
X-Osstest-Versions-That:
    libvirt=ea6c3ea2d52c19264910888e18f38ff68759a574
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Jul 2024 10:06:51 +0000

flight 186923 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186923/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186857
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              c019350a76d79405dd3e22d3023b71384f2924f2
baseline version:
 libvirt              ea6c3ea2d52c19264910888e18f38ff68759a574

Last test of basis   186857  2024-07-18 04:18:45 Z    2 days
Testing same since   186923  2024-07-20 04:20:34 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrea Bolognani <abologna@redhat.com>
  Christian Ehrhardt <christian.ehrhardt@canonical.com>
  Miroslav Los <mirlos@cisco.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   ea6c3ea2d5..c019350a76  c019350a76d79405dd3e22d3023b71384f2924f2 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Jul 20 18:55:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 20 Jul 2024 18:55:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761306.1171275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVFEV-0008O0-36; Sat, 20 Jul 2024 18:55:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761306.1171275; Sat, 20 Jul 2024 18: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 1sVFEV-0008Nt-0X; Sat, 20 Jul 2024 18:55:03 +0000
Received: by outflank-mailman (input) for mailman id 761306;
 Sat, 20 Jul 2024 18:55:01 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVFET-0008Nj-H3; Sat, 20 Jul 2024 18:55:01 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVFET-0006zI-Cm; Sat, 20 Jul 2024 18:55:01 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVFES-0007CZ-RY; Sat, 20 Jul 2024 18:55:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVFES-00050e-R2; Sat, 20 Jul 2024 18:55: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=a6twob7FYeglI23KAr9eIaF49+bZ5drFgOZudU8Mons=; b=P72XW08QoAquNjO64xoUA6Zewp
	y65bhQM6PA9ajJRNoihZGy/1FQwP+YlOIPYXEV0gdCuXnauVLN7I/+c3mXtUCcsEtrjD5ayLsP0CI
	y2Slx3j2i1z4NRLLN8oUvq0rZvzEi+nClgLTXYmveNCx6WDnOXF8dI69AKbTb7NhhWzI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186925-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186925: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=3c3ff7be9729959699eb6cbc7fd7303566d74069
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 20 Jul 2024 18:55:00 +0000

flight 186925 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186925/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                3c3ff7be9729959699eb6cbc7fd7303566d74069
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    3 days
Testing same since   186925  2024-07-20 09:44:52 Z    0 days    1 attempts

------------------------------------------------------------
1592 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 169022 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Jul 21 01:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Jul 2024 01:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761326.1171286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVLPq-0002VX-6g; Sun, 21 Jul 2024 01:31:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761326.1171286; Sun, 21 Jul 2024 01:31:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVLPq-0002VQ-1M; Sun, 21 Jul 2024 01:31:10 +0000
Received: by outflank-mailman (input) for mailman id 761326;
 Sun, 21 Jul 2024 01:31:07 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVLPn-0002VF-S0; Sun, 21 Jul 2024 01:31:07 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVLPn-0001BJ-Lq; Sun, 21 Jul 2024 01:31:07 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVLPm-0002fP-PD; Sun, 21 Jul 2024 01:31:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVLPm-0005yS-Mh; Sun, 21 Jul 2024 01:31:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=GcPsBBt6blHG3RpJXGhGfCOjR/bZ5DguBnjY3IyDBAY=; b=ZptEHuOZL/FNdaM1jonQT6P831
	M9RN8Ov0+72/lmB2t8XmLS/gQNC5FIsjECNoO7qWkWZ4X30wwolpXnU1Yf2i3FFNrfBYFj0wagK0d
	CIhFeavb6oYR146470VbaryEHT2AiOwmnnh094z6xnYL/bj6SlEunHX2+CrqgnOx3oT8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186926-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186926: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:build-armhf:xen-build:fail:regression
    linux-linus:build-armhf-libvirt:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-examine:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-libvirt:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=8326f5e1a47b1a657524678cb62b264a84fbea7e
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Jul 2024 01:31:06 +0000

flight 186926 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186926/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 build-armhf                   6 xen-build                fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 build-armhf-libvirt           1 build-check(1)               blocked  n/a
 test-armhf-armhf-examine      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt      1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl           1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-arndale   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit1   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-credit2   1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-qcow2     1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-raw       1 build-check(1)               blocked  n/a
 test-armhf-armhf-xl-rtds      1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                8326f5e1a47b1a657524678cb62b264a84fbea7e
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    4 days
Failing since        186925  2024-07-20 09:44:52 Z    0 days    2 attempts
Testing same since   186926  2024-07-20 19:14:13 Z    0 days    1 attempts

------------------------------------------------------------
1617 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  fail    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          blocked 
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          blocked 
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  blocked 
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  blocked 
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  blocked 
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     blocked 
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     blocked 
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                blocked 
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    blocked 
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      blocked 
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 blocked 
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 172410 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Jul 21 08:16:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Jul 2024 08:16:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761340.1171295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVRjf-0003af-KB; Sun, 21 Jul 2024 08:16:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761340.1171295; Sun, 21 Jul 2024 08:16: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 1sVRjf-0003aY-Hh; Sun, 21 Jul 2024 08:16:03 +0000
Received: by outflank-mailman (input) for mailman id 761340;
 Sun, 21 Jul 2024 08:16: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 1sVRje-0003aS-DT
 for xen-devel@lists.xenproject.org; Sun, 21 Jul 2024 08:16:02 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVRjb-0001Ug-Dd; Sun, 21 Jul 2024 08:15:59 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.244])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVRjb-00041k-5d; Sun, 21 Jul 2024 08:15: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:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=U8oVg7+NXRD8fjFhnbd/luxe87YxQC1GIJXaX+lwSm0=; b=0J4mQU9vQb+JCOSWUafWFC9M4J
	MHsjkyRjXAwbdNomgIGe455JfDmEJuEkHKzhYJFTXj+DVi8IIgF2Yq0U1YcNZZzHWC6qk/WFamerp
	/U1szJuqkraKRi/2LHOewtoBFp4h3MlsxuCz7RZxYk8q4McTzQHJ56MU+8c1XO0iNCPM=;
Message-ID: <5f1f9deb-4f79-42a1-8704-7f123bb1041c@xen.org>
Date: Sun, 21 Jul 2024 09:15:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Commit moratorium
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: "committers@xenproject.org" <committers@xenproject.org>,
 Oleksii <oleksii.kurochko@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <770b22e5-95b2-40ed-ab3a-fb471ecf2f0a@xen.org>
In-Reply-To: <770b22e5-95b2-40ed-ab3a-fb471ecf2f0a@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 16/07/2024 16:34, Julien Grall wrote:
> Hi all,

Hi,

> We intend to branch for Xen 4.19 in the next couple of days.
> 
> As part of the process, it is easier to branch when staging == master.
> Therefore I would like to ask a commit moratorium.
> 
> Please don't commit anything (even patches released-acked) until further 
> notice.

The tree is now re-opened. For the 4.20 branch, please only commit small 
changes until the 4.19 is released.

For the 4.19 branch, any change will still require a release-ack and 
would need to be first merged in staging and then cherry-picked to the 
4.19 branch.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sun Jul 21 08:47:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Jul 2024 08:47:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761348.1171306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVSDa-0007Zi-2m; Sun, 21 Jul 2024 08:46:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761348.1171306; Sun, 21 Jul 2024 08: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 1sVSDZ-0007Zb-VX; Sun, 21 Jul 2024 08:46:57 +0000
Received: by outflank-mailman (input) for mailman id 761348;
 Sun, 21 Jul 2024 08:46: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 1sVSDX-0007ZV-TJ
 for xen-devel@lists.xenproject.org; Sun, 21 Jul 2024 08:46:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVSDX-00022h-Bt; Sun, 21 Jul 2024 08:46:55 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.244])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVSDX-0005x1-3M; Sun, 21 Jul 2024 08:46:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=DZNadkR7hvtm84GP3b19HRXbzyRyW5fdIGFfipsrH+k=; b=H2kZSZ8SK4q2ynaKKFasOh0Dxl
	mHyG+Mt3aR8nJwH7UYEQWgdo+8oUVd9Xzry22YHal/YhbhxHZSTKvdlexXr1FcorWRrJy2YcTNpID
	wKGKPlpi0j9gb8paE4ZBP/25+TMlo2Rsdnt8A/F6VY3BWBJaW7hQofvp+wS3i42ZGrG8=;
Message-ID: <8fd1cc2c-9dda-4e74-b242-fe8aa862955d@xen.org>
Date: Sun, 21 Jul 2024 09:46:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksii,

On 12/07/2024 17:22, Oleksii Kurochko wrote:
> Introduce a function to set up fixmap mappings and L0 page
> table for fixmap.
> 
> Additionally, defines were introduced in riscv/config.h to
> calculate the FIXMAP_BASE address.
> This involved introducing BOOT_FDT_VIRT_{START, SIZE} and
> XEN_SIZE, XEN_VIRT_END.
> 
> Also, the check of Xen size was updated in the riscv/lds.S
> script to use XEN_SIZE instead of a hardcoded constant.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V2:
>   - newly introduced patch
> ---
>   xen/arch/riscv/include/asm/config.h |  9 ++++++
>   xen/arch/riscv/include/asm/fixmap.h | 48 +++++++++++++++++++++++++++++
>   xen/arch/riscv/include/asm/mm.h     |  2 ++
>   xen/arch/riscv/include/asm/page.h   |  7 +++++
>   xen/arch/riscv/mm.c                 | 35 +++++++++++++++++++++
>   xen/arch/riscv/setup.c              |  2 ++
>   xen/arch/riscv/xen.lds.S            |  2 +-
>   7 files changed, 104 insertions(+), 1 deletion(-)
>   create mode 100644 xen/arch/riscv/include/asm/fixmap.h
> 
> diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
> index 50583aafdc..3275477c17 100644
> --- a/xen/arch/riscv/include/asm/config.h
> +++ b/xen/arch/riscv/include/asm/config.h
> @@ -74,11 +74,20 @@
>   #error "unsupported RV_STAGE1_MODE"
>   #endif
>   
> +#define XEN_SIZE                MB(2)

NIT: I would name it XEN_VIRT_SIZE to be consistent with the start/end.

> +#define XEN_VIRT_END            (XEN_VIRT_START + XEN_SIZE)
Can we get away with not introducing *_END and just use START, SIZE? The 
reason I am asking is with "end" it is never clear whether it is 
inclusive or exclusive. For instance, here you use an exclusive range 
but ...

> +
> +#define BOOT_FDT_VIRT_START     XEN_VIRT_END
> +#define BOOT_FDT_VIRT_SIZE      MB(4)
> +
>   #define DIRECTMAP_SLOT_END      509
>   #define DIRECTMAP_SLOT_START    200
>   #define DIRECTMAP_VIRT_START    SLOTN(DIRECTMAP_SLOT_START)
>   #define DIRECTMAP_SIZE          (SLOTN(DIRECTMAP_SLOT_END) - SLOTN(DIRECTMAP_SLOT_START))
>   
> +#define FIXMAP_BASE             (BOOT_FDT_VIRT_START + BOOT_FDT_VIRT_SIZE)
> +#define FIXMAP_ADDR(n)          (FIXMAP_BASE + (n) * PAGE_SIZE)
> +
>   #define FRAMETABLE_SCALE_FACTOR  (PAGE_SIZE/sizeof(struct page_info))
>   #define FRAMETABLE_SIZE_IN_SLOTS (((DIRECTMAP_SIZE / SLOTN(1)) / FRAMETABLE_SCALE_FACTOR) + 1)
>   
> diff --git a/xen/arch/riscv/include/asm/fixmap.h b/xen/arch/riscv/include/asm/fixmap.h
> new file mode 100644
> index 0000000000..fcfb82d69c
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/fixmap.h
> @@ -0,0 +1,48 @@
> +/*
> + * fixmap.h: compile-time virtual memory allocation
> + */
> +#ifndef __ASM_FIXMAP_H
> +#define __ASM_FIXMAP_H
> +
> +#include <xen/bug.h>
> +#include <xen/page-size.h>
> +#include <xen/pmap.h>
> +
> +#include <asm/page.h>
> +
> +/* Fixmap slots */
> +#define FIX_PMAP_BEGIN (0) /* Start of PMAP */
> +#define FIX_PMAP_END (FIX_PMAP_BEGIN + NUM_FIX_PMAP - 1) /* End of PMAP */

... here is seems to be inclusive. Furthermore if you had 32-bit address 
space, it is also quite easy to have to create a region right at the top 
of it. So when END is exclusive, it would become 0.

So on Arm, we decided to start to get rid of "end". I would consider to 
do the same on RISC-V for new functions.

> +#define FIX_MISC (FIX_PMAP_END + 1)  /* Ephemeral mappings of hardware */

Are you going to use this fixmap? If not, then I would consider to 
remove it.

> +
> +#define FIX_LAST FIX_MISC
> +
> +#define FIXADDR_START FIXMAP_ADDR(0)
> +#define FIXADDR_TOP FIXMAP_ADDR(FIX_LAST)
> +
> +#ifndef __ASSEMBLY__
> +
> +/*
> + * Direct access to xen_fixmap[] should only happen when {set,
> + * clear}_fixmap() is unusable (e.g. where we would end up to
> + * recursively call the helpers).
> + */
> +extern pte_t xen_fixmap[];
> +
> +/* Map a page in a fixmap entry */
> +extern void set_fixmap(unsigned int map, mfn_t mfn, unsigned int attributes);
> +/* Remove a mapping from a fixmap entry */
> +extern void clear_fixmap(unsigned int map);

Neither of the functions seem to be implemented in this patch. Can you 
clarify what's the plan for them?

Also, I know that for x86/arm, we have some function prefixed with 
extern. But AFAIK, we are trying to get rid of them.

In any case, I think for RISC-V we need some consistency. For instance, 
here you define with extern but...

> +
> +#define fix_to_virt(slot) ((void *)FIXMAP_ADDR(slot))
> +
> +static inline unsigned int virt_to_fix(vaddr_t vaddr)
> +{
> +    BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START);
> +
> +    return ((vaddr - FIXADDR_START) >> PAGE_SHIFT);
> +}
> +
> +#endif /* __ASSEMBLY__ */
> +
> +#endif /* __ASM_FIXMAP_H */
> diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
> index 25af9e1aaa..a0bdc2bc3a 100644
> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -255,4 +255,6 @@ static inline unsigned int arch_get_dma_bitsize(void)
>       return 32; /* TODO */
>   }
>   
> +void setup_fixmap_mappings(void);

... here it is without.

> +
>   #endif /* _ASM_RISCV_MM_H */
> diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
> index c831e16417..cbbf3656d1 100644
> --- a/xen/arch/riscv/include/asm/page.h
> +++ b/xen/arch/riscv/include/asm/page.h
> @@ -81,6 +81,13 @@ static inline void flush_page_to_ram(unsigned long mfn, bool sync_icache)
>       BUG_ON("unimplemented");
>   }
>   
> +/* Write a pagetable entry. */
> +static inline void write_pte(pte_t *p, pte_t pte)
> +{
> +    *p = pte;
> +    asm volatile ("sfence.vma");
> +}
> +
>   #endif /* __ASSEMBLY__ */
>   
>   #endif /* _ASM_RISCV_PAGE_H */
> diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
> index 7d09e781bf..d69a174b5d 100644
> --- a/xen/arch/riscv/mm.c
> +++ b/xen/arch/riscv/mm.c
> @@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
>   pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
>   stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT * PAGETABLE_ENTRIES];
>   
> +pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> +xen_fixmap[PAGETABLE_ENTRIES];

Can you add a BUILD_BUG_ON() to check that the number of entries in the 
fixmap will never be above PAGETABLE_ENTRIES?

> +
>   #define HANDLE_PGTBL(curr_lvl_num)                                          \
>       index = pt_index(curr_lvl_num, page_addr);                              \
>       if ( pte_is_valid(pgtbl[index]) )                                       \
> @@ -191,6 +194,38 @@ static bool __init check_pgtbl_mode_support(struct mmu_desc *mmu_desc,
>       return is_mode_supported;
>   }
>   
> +void __init setup_fixmap_mappings(void)
> +{
> +    pte_t *pte;
> +    unsigned int i;
> +
> +    pte = &stage1_pgtbl_root[pt_index(HYP_PT_ROOT_LEVEL, FIXMAP_ADDR(0))];
> +
> +    for ( i = HYP_PT_ROOT_LEVEL - 1; i != 0; i-- )

I am a little bit confused with the - 1. Is this because you only want 
to map at L1 (I am not sure if this is the correct naming for RISC-V)?

In any case, I think it would be worth a comment.

> +    {
> +        BUG_ON(!pte_is_valid(*pte));
> +
> +        pte = (pte_t *)LOAD_TO_LINK(pte_to_paddr(*pte));
> +        pte = &pte[pt_index(i, FIXMAP_ADDR(0))];
> +    }
> +
> +    BUG_ON( pte_is_valid(*pte) );

Coding style: BUG_ON(pte_is_valid(*pte));

> +
> +    if ( !pte_is_valid(*pte) )

I am a bit confused with this check. Above, Xen will crash if the PTE is 
valid. So why do we need a runtime check?

> +    {
> +        pte_t tmp = paddr_to_pte(LINK_TO_LOAD((unsigned long)&xen_fixmap), PTE_TABLE);
> +
> +        write_pte(pte, tmp);
> +
> +        printk("(XEN) fixmap is mapped\n");
> +    }
> +
> +    /*
> +     * We only need the zeroeth table allocated, but not the PTEs set, because
> +     * set_fixmap() will set them on the fly.

This function doesn't seem to exists yet (?).

> +     */
> +}
> +
>   /*
>    * setup_initial_pagetables:
>    *
> diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
> index 4defad68f4..13f0e8c77d 100644
> --- a/xen/arch/riscv/setup.c
> +++ b/xen/arch/riscv/setup.c
> @@ -46,6 +46,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>       test_macros_from_bug_h();
>   #endif
>   
> +    setup_fixmap_mappings();
> +
>       printk("All set up\n");
>   
>       for ( ;; )
> diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
> index 070b19d915..63b1dd7bb6 100644
> --- a/xen/arch/riscv/xen.lds.S
> +++ b/xen/arch/riscv/xen.lds.S
> @@ -181,6 +181,6 @@ ASSERT(!SIZEOF(.got.plt),  ".got.plt non-empty")
>    * Changing the size of Xen binary can require an update of
>    * PGTBL_INITIAL_COUNT.
>    */
> -ASSERT(_end - _start <= MB(2), "Xen too large for early-boot assumptions")
> +ASSERT(_end - _start <= XEN_SIZE, "Xen too large for early-boot assumptions")
>   
>   ASSERT(_ident_end - _ident_start <= IDENT_AREA_SIZE, "identity region is too big");

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sun Jul 21 08:48:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Jul 2024 08:48:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761355.1171316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVSFW-00088l-Ck; Sun, 21 Jul 2024 08:48:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761355.1171316; Sun, 21 Jul 2024 08:48: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 1sVSFW-00088e-9z; Sun, 21 Jul 2024 08:48:58 +0000
Received: by outflank-mailman (input) for mailman id 761355;
 Sun, 21 Jul 2024 08:48:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVSFV-00088Q-KT; Sun, 21 Jul 2024 08:48:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVSFV-00024T-Im; Sun, 21 Jul 2024 08:48:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVSFV-0003Wh-01; Sun, 21 Jul 2024 08:48:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVSFU-0003dd-Vj; Sun, 21 Jul 2024 08:48:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hQf6R7zWQ0y4c7iHD7zxbopoyWWiq+gdlB0iY+5XoMk=; b=1RagBmYU7hjnaIGIuxVj+kYxYm
	Zjr5uLE6GpzS7uqfTi8vAdrMjvHT0nVk7vJV0zKn0tPyERag3tz/eIRi0S99r5PfrUvIsCmwwWqR7
	QjFNlh64I4hC/xXQ8xByI0W8cOmNFVmAMh6npKAMdISmrGVP4w4s5MIEAM8BS85N49Wk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186927-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186927: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=2c9b3512402ed192d1f43f4531fb5da947e72bd0
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Jul 2024 08:48:56 +0000

flight 186927 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186927/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                2c9b3512402ed192d1f43f4531fb5da947e72bd0
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    4 days
Failing since        186925  2024-07-20 09:44:52 Z    0 days    3 attempts
Testing same since   186927  2024-07-21 01:44:27 Z    0 days    1 attempts

------------------------------------------------------------
1676 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 178863 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Jul 21 08:51:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Jul 2024 08:51:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761363.1171325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVSHz-0001AC-PN; Sun, 21 Jul 2024 08:51:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761363.1171325; Sun, 21 Jul 2024 08:51:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVSHz-0001A5-Mo; Sun, 21 Jul 2024 08:51:31 +0000
Received: by outflank-mailman (input) for mailman id 761363;
 Sun, 21 Jul 2024 08:51: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 1sVSHy-00019s-GL
 for xen-devel@lists.xenproject.org; Sun, 21 Jul 2024 08:51:30 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVSHy-00027z-9W; Sun, 21 Jul 2024 08:51:30 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.244])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVSHy-000669-3U; Sun, 21 Jul 2024 08:51:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=PI3Fdo00YqVhtnzAKj8Bn/b3XenRQhPTz/sGfiwaJxQ=; b=mjXfIDtuEDO8h55RjegyG6OFc8
	NdAnr+koKveoYZVQRiYQT8j81Z+0UErNydTJAhXLFKcELHtWJJlIQ2F1M/I77r/VUkZFal/nOqqrN
	dIxcrkLzNX76KfFK1bqtNg5NAKKVhQsuzs6yzkfdBTIjfxh0AOmJRlEns4o7HHOdLzAk=;
Message-ID: <15375179-1c94-43c3-a256-42a856905e21@xen.org>
Date: Sun, 21 Jul 2024 09:51:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksii,

On 12/07/2024 17:22, Oleksii Kurochko wrote:
> Introduces arch_pmap_{un}map functions and select HAS_PMAP
> for CONFIG_RISCV.
> 
> Additionaly it was necessary to introduce functions:
>   - mfn_to_xen_entry
>   - mfn_to_pte
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V2:
>   - newly introduced patch
> ---
>   xen/arch/riscv/Kconfig            |  1 +
>   xen/arch/riscv/include/asm/page.h |  2 ++
>   xen/arch/riscv/include/asm/pmap.h | 28 ++++++++++++++++++++++++++++
>   xen/arch/riscv/mm.c               | 14 ++++++++++++++
>   4 files changed, 45 insertions(+)
>   create mode 100644 xen/arch/riscv/include/asm/pmap.h
> 
> diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
> index 259eea8d3b..0112aa8778 100644
> --- a/xen/arch/riscv/Kconfig
> +++ b/xen/arch/riscv/Kconfig
> @@ -3,6 +3,7 @@ config RISCV
>   	select FUNCTION_ALIGNMENT_16B
>   	select GENERIC_BUG_FRAME
>   	select HAS_DEVICE_TREE
> +	select HAS_PMAP
>   
>   config RISCV_64
>   	def_bool y
> diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
> index cbbf3656d1..339074d502 100644
> --- a/xen/arch/riscv/include/asm/page.h
> +++ b/xen/arch/riscv/include/asm/page.h
> @@ -51,6 +51,8 @@ typedef struct {
>   #endif
>   } pte_t;
>   
> +pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr);
> +
>   static inline pte_t paddr_to_pte(paddr_t paddr,
>                                    unsigned int permissions)
>   {
> diff --git a/xen/arch/riscv/include/asm/pmap.h b/xen/arch/riscv/include/asm/pmap.h
> new file mode 100644
> index 0000000000..eb4c48515c
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/pmap.h
> @@ -0,0 +1,28 @@
> +#ifndef __ASM_PMAP_H__
> +#define __ASM_PMAP_H__
> +
> +#include <xen/bug.h>
> +#include <xen/mm.h>
> +
> +#include <asm/fixmap.h>
> +
> +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
> +{
> +    pte_t *entry = &xen_fixmap[slot];
> +    pte_t pte;
> +
> +    ASSERT(!pte_is_valid(*entry));
> +
> +    pte = mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
> +    pte.pte |= PTE_LEAF_DEFAULT;
> +    write_pte(entry, pte);
> +}
> +
> +static inline void arch_pmap_unmap(unsigned int slot)
> +{
> +    pte_t pte = {};
> +
> +    write_pte(&xen_fixmap[slot], pte);
> +}
> +
> +#endif /* __ASM_PMAP_H__ */
> diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
> index d69a174b5d..445319af08 100644
> --- a/xen/arch/riscv/mm.c
> +++ b/xen/arch/riscv/mm.c
> @@ -370,3 +370,17 @@ int map_pages_to_xen(unsigned long virt,
>       BUG_ON("unimplemented");
>       return -1;
>   }
> +
> +static inline pte_t mfn_to_pte(mfn_t mfn)
> +{
> +    unsigned long pte = mfn_x(mfn) << PTE_PPN_SHIFT;
> +    return (pte_t){ .pte = pte};
> +}
> +
> +inline pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr)
> +{
> +    /* there is no attr field in RISC-V's pte */
> +    (void) attr;

Surely you have a way to say indicate whether an entry is readable/writable?

> +
> +    return mfn_to_pte(mfn);
> +}

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sun Jul 21 09:02:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Jul 2024 09:02:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761376.1171335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVSSg-00034F-UK; Sun, 21 Jul 2024 09:02:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761376.1171335; Sun, 21 Jul 2024 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 1sVSSg-000348-Rp; Sun, 21 Jul 2024 09:02:34 +0000
Received: by outflank-mailman (input) for mailman id 761376;
 Sun, 21 Jul 2024 09:02:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sVSSf-000342-1b
 for xen-devel@lists.xenproject.org; Sun, 21 Jul 2024 09:02:33 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVSSe-0002bd-BE; Sun, 21 Jul 2024 09:02:32 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.244])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVSSe-0006xg-2r; Sun, 21 Jul 2024 09:02: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=jJJglVn+D8ES6A0X9VS1zYpwfNBwTUhTj9ffjNQISe0=; b=fxg2tJG8K3q5Ui+zWQfrDukXW/
	Tgfy27E8l35uoT1Apv3YpysYcqu8WFyPMT8r+k714SY9Tm27IWUIFtcGsGOJY/mOGH7CDqOgwPUZ5
	CZoZCyr6ATMN5GTk4Uhws89t6jfu3VkDewmLXEBMEiZLR2mhKfE540QOrDDqTMVH4IsU=;
Message-ID: <5187f606-0a1c-4812-8f8c-13301f0aba8c@xen.org>
Date: Sun, 21 Jul 2024 10:02:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/8] xen/riscv: introduce generic Xen page table
 handling
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <f2d7f538edb7db8990bf26b791df9da3d390bf05.1720799926.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <f2d7f538edb7db8990bf26b791df9da3d390bf05.1720799926.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 12/07/2024 17:22, Oleksii Kurochko wrote:
> At least, between Arm and RISC-V most of the code related to Xen page
> table handling are common.
> 
> This GENERIC_PT code is based on Arm's arm/mmu/pt.c except some minor
> changes such as introduction of the following functions:
>    * get_root_page()
>    * xen_pt_check_contig()
>    * set_pte_table_bit()
>    * sanity_arch_specific_pte_checks()
>    * get_contig_bit()
>    * set_pte_permissions()
>    * flush_xen_tlb_range_va()
> It was done because not every functions has the generic pte_flags and
> it could be a different positions of the PTE bits in a PTE.
While I am always in favor of trying to avoid code duplication, I am not 
sure the page-tables are one that should be.

For instance, you don't have the concept of contiguous page in RISC-V (I 
see you introduce dummy flags, but IMHO this is a bit of a hack). All 
the code was also written in a way to avoid temporary conflict mappings. 
This is to avoid using Break-Before-Make. But on newer hardware this 
could be relaxed.

I am interested to know what the others thinks.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sun Jul 21 12:05:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Jul 2024 12:05:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761396.1171346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVVJE-0005zA-5m; Sun, 21 Jul 2024 12:05:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761396.1171346; Sun, 21 Jul 2024 12:05: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 1sVVJE-0005z3-2P; Sun, 21 Jul 2024 12:05:00 +0000
Received: by outflank-mailman (input) for mailman id 761396;
 Sun, 21 Jul 2024 12:04:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVVJD-0005yt-8B; Sun, 21 Jul 2024 12:04:59 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVVJC-0006Hg-QC; Sun, 21 Jul 2024 12:04:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVVJC-0003DB-Dd; Sun, 21 Jul 2024 12:04:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVVJC-0003Sh-D0; Sun, 21 Jul 2024 12:04:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=EuWFzWrJR1vTTZ0HsWYrgelGhi70y6GvUX5639ojq5Q=; b=NscTVLqwAvJJxTIrGdH2bDXEqV
	CuK1c/ZZv3ojKsIgp3AYbIdfcskc0B8zuZLX8iE4llBotJ4jDmemnKEpQet5CDvj9YvDNxnNSZiqJ
	LfKASF+mZ924YBtAcQZdfT0VknxrNh38TALeGW67SiNYiGtOQ1R5aEv4QmD9RxVdIcCg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186928-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186928: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e5182b40cf4bbb89292d66b8f3047a9ee913a90a
X-Osstest-Versions-That:
    xen=e5182b40cf4bbb89292d66b8f3047a9ee913a90a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Jul 2024 12:04:58 +0000

flight 186928 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186928/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186920
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186922
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186922
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186922
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186922
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186922
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e5182b40cf4bbb89292d66b8f3047a9ee913a90a
baseline version:
 xen                  e5182b40cf4bbb89292d66b8f3047a9ee913a90a

Last test of basis   186928  2024-07-21 01:52:07 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sun Jul 21 13:57:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Jul 2024 13:57:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761412.1171356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVX3e-0000sp-Pf; Sun, 21 Jul 2024 13:57:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761412.1171356; Sun, 21 Jul 2024 13:57: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 1sVX3e-0000si-MP; Sun, 21 Jul 2024 13:57:02 +0000
Received: by outflank-mailman (input) for mailman id 761412;
 Sun, 21 Jul 2024 13:57:01 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVX3d-0000sY-NU; Sun, 21 Jul 2024 13:57:01 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVX3d-0008HA-A8; Sun, 21 Jul 2024 13:57:01 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVX3c-0006KO-RK; Sun, 21 Jul 2024 13:57:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVX3c-0001QM-Qq; Sun, 21 Jul 2024 13:57: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=PnDhw2TaV7SASRaQRqdz8NQM7Hilv+iuX2G8N6BGl34=; b=QVQ4lOFdkmhRqPDHxxaIoQG+Z9
	Ghzi7j5M+JAyEoAVpSjz43zNqf0EZtEjqngD5cyhKjqPeXw8os9u6BidvSIVLVb73ReRPRigdfPLF
	MDCzP14Qu9l2JwDMR7UnOv/SbSzIVL4ZHP1MMEwb1t3mNv2tmo159BAP4FeBun+sEfHs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186930-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186930: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=734aaff8625760fb5d38024168a5f8696b14fd10
X-Osstest-Versions-That:
    ovmf=489e4a60ea88326a07a7cee8086227c3df2bf93d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Jul 2024 13:57:00 +0000

flight 186930 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186930/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 734aaff8625760fb5d38024168a5f8696b14fd10
baseline version:
 ovmf                 489e4a60ea88326a07a7cee8086227c3df2bf93d

Last test of basis   186881  2024-07-18 19:45:16 Z    2 days
Testing same since   186930  2024-07-21 12:15:01 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Bret Barkelew <bret.barkelew@microsoft.com>
  Oliver Smith-Denny <osde@linux.microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   489e4a60ea..734aaff862  734aaff8625760fb5d38024168a5f8696b14fd10 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sun Jul 21 15:40:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Jul 2024 15:40:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761425.1171366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVYfR-00045v-L9; Sun, 21 Jul 2024 15:40:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761425.1171366; Sun, 21 Jul 2024 15: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 1sVYfR-00045o-I1; Sun, 21 Jul 2024 15:40:09 +0000
Received: by outflank-mailman (input) for mailman id 761425;
 Sun, 21 Jul 2024 15:40:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVYfQ-00045e-2i; Sun, 21 Jul 2024 15:40:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVYfP-0001oR-Oi; Sun, 21 Jul 2024 15:40:07 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVYfP-0000Es-7x; Sun, 21 Jul 2024 15:40:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVYfP-0006Fr-7W; Sun, 21 Jul 2024 15:40: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=JcLng6kKRj0gKTDjBUiK0JHkOqOo6y4HmqKbM32qdUc=; b=azXVHrTT55bLxctNfi9MzVfkWL
	GMDpxCayEnjCRebdfznD4rZwcOiQ0w8Fb+tL5BumSuSHm1p6c2386Dmz65oz3y8P6Oh6ih8R4cNQy
	B8wKctTq4s5A0nof1ro/WQBYv+YnRDALCc0ALBGAfHn8E9poVhEg4rrTHuWLFG2ZSfLQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186929-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186929: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-amd64-amd64-qemuu-freebsd11-amd64:guest-start/freebsd.repeat:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=2c9b3512402ed192d1f43f4531fb5da947e72bd0
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Jul 2024 15:40:07 +0000

flight 186929 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186929/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail in 186927 pass in 186929
 test-amd64-amd64-qemuu-freebsd11-amd64 21 guest-start/freebsd.repeat fail pass in 186927

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                2c9b3512402ed192d1f43f4531fb5da947e72bd0
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    4 days
Failing since        186925  2024-07-20 09:44:52 Z    1 days    4 attempts
Testing same since   186927  2024-07-21 01:44:27 Z    0 days    2 attempts

------------------------------------------------------------
1676 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       fail    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 178863 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Jul 21 22:16:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 21 Jul 2024 22:16:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761449.1171376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVeqo-0002ty-Dw; Sun, 21 Jul 2024 22:16:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761449.1171376; Sun, 21 Jul 2024 22:16:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVeqo-0002tr-BF; Sun, 21 Jul 2024 22:16:18 +0000
Received: by outflank-mailman (input) for mailman id 761449;
 Sun, 21 Jul 2024 22:16:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVeqm-0002th-Sv; Sun, 21 Jul 2024 22:16:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVeqm-0001OQ-MP; Sun, 21 Jul 2024 22:16:16 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVeqm-0004dx-3l; Sun, 21 Jul 2024 22:16:16 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVeqm-00060S-3C; Sun, 21 Jul 2024 22:16:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=0HaoFJm/lWb0wbpZjIaHSmXzmFTMaBdkvuoe28ULWmE=; b=slOKg/1pS2iiVhD2bX9J6vQao7
	A3YxQ6JUHlQTRm0krlSNRCtdooaCxWB8n7TCev2m5hNu9+HGcw4UgNJgyRsSfBmGRskLk9aOmB25K
	AJ8J/bk3mc+tt5ppTAU3MX4zgvUtel8Wn6BvXXEjOK5tPiHT1oFo9g8HR7z0xHtAKkwQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186931-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186931: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-qemuu-freebsd11-amd64:guest-start/freebsd.repeat:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=2c9b3512402ed192d1f43f4531fb5da947e72bd0
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 21 Jul 2024 22:16:16 +0000

flight 186931 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186931/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-qemuu-freebsd11-amd64 21 guest-start/freebsd.repeat fail in 186929 pass in 186931
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186929

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                2c9b3512402ed192d1f43f4531fb5da947e72bd0
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    5 days
Failing since        186925  2024-07-20 09:44:52 Z    1 days    5 attempts
Testing same since   186927  2024-07-21 01:44:27 Z    0 days    3 attempts

------------------------------------------------------------
1676 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 178863 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 04:57:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 04:57:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761461.1171386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVl6I-0006wn-44; Mon, 22 Jul 2024 04:56:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761461.1171386; Mon, 22 Jul 2024 04: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 1sVl6I-0006wg-0q; Mon, 22 Jul 2024 04:56:42 +0000
Received: by outflank-mailman (input) for mailman id 761461;
 Mon, 22 Jul 2024 04:56:41 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVl6G-0006wG-W8; Mon, 22 Jul 2024 04:56:41 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVl6G-0004SC-Jm; Mon, 22 Jul 2024 04:56:40 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVl6F-0003jl-SR; Mon, 22 Jul 2024 04:56:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVl6F-0006F4-Ri; Mon, 22 Jul 2024 04:56:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=BzkLEIZpUzNDIImcfkON6aSEASd48J3jjFVRLEbyDb0=; b=jE1XjAsihomZsdylejnC6W8yDR
	xLMlPyPeIgXWsKeMzDkt72uHq/erGggYYUzAIjRtDk3Palm4bbfaRmEXkiH9638lF1Tp1P+1aZz4e
	9rFB8qvqYkzDDzRQNb7IY71Ls9K0LCqE+wuEaXFNwSY7USNe2NZeaAn9A5drpO2GRBxI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186932-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186932: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=2c9b3512402ed192d1f43f4531fb5da947e72bd0
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Jul 2024 04:56:39 +0000

flight 186932 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186932/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                2c9b3512402ed192d1f43f4531fb5da947e72bd0
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    5 days
Failing since        186925  2024-07-20 09:44:52 Z    1 days    6 attempts
Testing same since   186927  2024-07-21 01:44:27 Z    1 days    4 attempts

------------------------------------------------------------
1676 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 178863 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 06:52:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 06:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761474.1171395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVmti-0003LR-4e; Mon, 22 Jul 2024 06:51:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761474.1171395; Mon, 22 Jul 2024 06:51:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVmti-0003LJ-24; Mon, 22 Jul 2024 06:51:50 +0000
Received: by outflank-mailman (input) for mailman id 761474;
 Mon, 22 Jul 2024 06:51:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVmtg-0003LD-UA
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 06:51:48 +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 dd9bbc01-47f6-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 08:51:47 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a77c349bb81so365979366b.3
 for <xen-devel@lists.xenproject.org>; Sun, 21 Jul 2024 23:51: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-a7a3c7bbdfesm382605966b.62.2024.07.21.23.51.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 21 Jul 2024 23:51: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: dd9bbc01-47f6-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721631107; x=1722235907; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qixsUfr2YVZJHFkxp8y5agYb/shJBoQky6y2snMLOys=;
        b=Mv9kuCIbOa4LFchNEIXyLAwM5tQYu7ul1X4wDcG16ZquG2mCmim4nfHsav/hW/W2/a
         BZXfIW2Y5chYF8sxxtRb5vkWlDJgbdk8hrr0si5VL0gYUCQ+pFRO3PnkOIYQKWrf4kxR
         zmuoZWgzjVZPAF+WNRYgzGCNGN3Hs5M4GdDGra/7S0bFr5/E6+CbqZzn8E97XQz8rhtt
         57hFBEVQEPUXJmZfUeAeDFzDcpsHd6vNF4b7qWV7F78SyngnkPi1rJZy72TZY8PiG07y
         b2HeAhcFbUPVPFWYe8aHsFPJ9RTyJN+IPxALel8QmqbuMwCii8f8lKXjPIIOXkg/k7QV
         b0VA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721631107; x=1722235907;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qixsUfr2YVZJHFkxp8y5agYb/shJBoQky6y2snMLOys=;
        b=I/mRfBTcean6Jol51SBO/X9GkMRfH3NzRVpCx4pjqrGUGfQ4rHVIIUqSbDtXbPw7Zv
         +rzktbO8B6tvlCRrpbihk/1J+a7bS/aAg+PnU1090HBUzYhZ+pqDrS7ZJspJIfwB+adx
         liDx69rpBdmpxGow+OoUeFkCllEmeAWUpDv64RcODJ49BJYr6xFUp8rcQaa6O8qmFoTA
         OzGumXC2TKNiNPji3IDr4J6jxAwFuBEoiY3f0CPBN3s1HZWbDip2zmhfSBvb1nLoHu9y
         bUWJjmRQVyPABQtvH/pclr9vXeBDhUIDXxBhsYa+3XsmaYounN6sDP7q39mdi3CHGwra
         5B8w==
X-Forwarded-Encrypted: i=1; AJvYcCW8mpsBXrfpGl1wu44Gbv+3KsCZlPNkp81zWAYNMWn3Hs3oXWPaPIiaL4oXsTxTB9cwDw2CPDCkw7BlUSQsqDBZVdhjJR7ZXzGBEllkGvc=
X-Gm-Message-State: AOJu0YwDe6BhbcbL77/h7iZZPfDzwEJt0iO4sSVD78ypYPt5EY4Z2KBe
	JIMw9bcrSqkw0yArM9zhqcha6gE1w/8Ey1gYyCmSeHkKJTcNhmjV5eIitzQgHQ==
X-Google-Smtp-Source: AGHT+IHylJpR5uouYiNAs+4Vo7Ed2Q5j518fSa8Pv34aG1zB+79fvylcMy5l3OFPzDFuvS9f+RBdOA==
X-Received: by 2002:a17:907:94c9:b0:a77:a415:f815 with SMTP id a640c23a62f3a-a7a4c00f701mr377267466b.20.1721631107270;
        Sun, 21 Jul 2024 23:51:47 -0700 (PDT)
Message-ID: <fdf84512-2f3b-4977-8d39-08a971454541@suse.com>
Date: Mon, 22 Jul 2024 08:51:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 02/14] x86/altp2m: add static inline stub for
 altp2m_vcpu_idx()
To: Sergiy Kibrik <sergiy_kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Tamas K Lengyel <tamas@tklengyel.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <952cb307528f16fc36a3fadbe26d83bc6805f81e.1720501197.git.Sergiy_Kibrik@epam.com>
 <f917837a-e9ee-4d55-b158-208de57ee034@suse.com>
 <8969dd83-2fd7-4afe-9809-d6ebd342f8f8@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: <8969dd83-2fd7-4afe-9809-d6ebd342f8f8@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.07.2024 12:25, Sergiy Kibrik wrote:
> 09.07.24 10:09, Jan Beulich:
>> On 09.07.2024 07:48, Sergiy Kibrik wrote:
>>> The stub just returns 0 due to implementation of  p2m_get_mem_access() for
>>> x86 & ARM expects it to be 0 when altp2m not active or not implemented.
>>>
>>> The separate stub is favoured over dynamic check for alt2pm availability
>>> inside regular altp2m_vcpu_idx() because this way we retain the possibility
>>> to later put the whole struct altp2mvcpu under CONFIG_ALTP2M.
>>>
>>> The purpose of the change is later to be able to disable altp2m support and
>>> exclude its code from the build completely, when not supported by target
>>> platform (as of now it's implemented for Intel EPT only).
>>>
>>> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
>>
>> Yet what doesn't become clear is why 0 is a valid value to return. On the
>> surface 0 is a valid index when altp2m is enabled. In which case it
>> couldn't be used (without clarification) when altp2m is disabled.
>>
> 
> I looked into it a bit more and found your concerns to be valid -- 
> indeed altp2m_vcpu_idx() should not return valid index when altp2m not 
> supported. In fact it seems that this routine should not even be called 
> when altp2m is not active -- all but one call sites check 
> altp2m_active() first, and there's stub in include/asm-generic/altp2m.h 
> to block accidental calls to it.
> 
> So I think about falling back to v2 of this patch i.e. to guard that one 
> out of line call in hvm_monitor_check_p2m() but with better patch 
> description:
> 
> https://lore.kernel.org/xen-devel/01767c3f98a88999d4b8ed3ae742ad66a0921ba3.1715761386.git.Sergiy_Kibrik@epam.com/
> 
> would that be acceptable ?

Yes, if a stub can't properly fulfill the needed role, then that's the
(about only) way to go, I think.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 06:56:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 06:56:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761481.1171405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVmxx-00042S-Jd; Mon, 22 Jul 2024 06:56:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761481.1171405; Mon, 22 Jul 2024 06:56: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 1sVmxx-00042L-H1; Mon, 22 Jul 2024 06:56:13 +0000
Received: by outflank-mailman (input) for mailman id 761481;
 Mon, 22 Jul 2024 06:56: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=m5b5=OW=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sVmxw-00042D-C4
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 06:56:12 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a4090b1-47f7-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 08:56:10 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id E414B4EE0737;
 Mon, 22 Jul 2024 08:56: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: 7a4090b1-47f7-11ef-bbfe-fd08da9f4363
MIME-Version: 1.0
Date: Mon, 22 Jul 2024 08:56:09 +0200
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>, consulting@bugseng.com, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH 17/17] CODING_STYLE: Add a section on header guards
 naming conventions
Reply-To: alessandro.zucchelli@bugseng.com
Mail-Reply-To: alessandro.zucchelli@bugseng.com
In-Reply-To: <alpine.DEB.2.22.394.2407190820510.4857@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <fdb3811e00b9d6708c18d349a5a5043bb1b49cec.1719829101.git.alessandro.zucchelli@bugseng.com>
 <375074a0-0db7-40ba-9c9f-590b0cbe2409@suse.com>
 <alpine.DEB.2.22.394.2407121528380.3635@ubuntu-linux-20-04-desktop>
 <f1369d5e-5c2e-4866-a593-9656b569c086@suse.com>
 <alpine.DEB.2.22.394.2407151736530.3635@ubuntu-linux-20-04-desktop>
 <4893a89d-9ef5-4d86-94b0-042e88588439@suse.com>
 <alpine.DEB.2.22.394.2407161713010.3635@ubuntu-linux-20-04-desktop>
 <013c6cc2-eddf-4beb-b115-01aaaa71faa6@suse.com>
 <alpine.DEB.2.22.394.2407171601540.3635@ubuntu-linux-20-04-desktop>
 <8fd8d6e4-ef29-4ea9-9437-a743c25fe7b9@suse.com>
 <alpine.DEB.2.22.394.2407181457110.4857@ubuntu-linux-20-04-desktop>
 <b1bad3be-4520-48e6-952c-3f1828a0bafa@suse.com>
 <alpine.DEB.2.22.394.2407190820510.4857@ubuntu-linux-20-04-desktop>
Message-ID: <3c447599a60dba86764bf20b8ff71f02@bugseng.com>
X-Sender: alessandro.zucchelli@bugseng.com
Organization: BUGSENG Srl
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-19 17:21, Stefano Stabellini wrote:
> On Fri, 19 Jul 2024, Jan Beulich wrote:
>> On 19.07.2024 00:01, Stefano Stabellini wrote:
>> > On Thu, 18 Jul 2024, Jan Beulich wrote:
>> >> On 18.07.2024 01:02, Stefano Stabellini wrote:
>> >>> On Wed, 17 Jul 2024, Jan Beulich wrote:
>> >>>> On 17.07.2024 02:20, Stefano Stabellini wrote:
>> >>>>> On Tue, 16 Jul 2024, Jan Beulich wrote:
>> >>>>>> On 16.07.2024 02:43, Stefano Stabellini wrote:
>> >>>>>>> On Mon, 15 Jul 2024, Jan Beulich wrote:
>> >>>>>>>> On 13.07.2024 00:38, Stefano Stabellini wrote:
>> >>>>>>>>> On Wed, 3 Jul 2024, Jan Beulich wrote:
>> >>>>>>>>>> I further have to note that, as indicated during the earlier discussion,
>> >>>>>>>>>> I still cannot see how occasional ambiguity is going to be dealt with.
>> >>>>>>>>>> IOW from the rules above two different headers could still end up with
>> >>>>>>>>>> the same guard identifier.
>> >>>>>>>>>
>> >>>>>>>>> Maybe something like this?
>> >>>>>>>>>
>> >>>>>>>>> "In the event of naming collisions, exceptions to the coding style may
>> >>>>>>>>> be made at the discretion of the contributor and maintainers."
>> >>>>>>>>
>> >>>>>>>> Hmm, maybe I wasn't clear enough then. My take is that the scheme should
>> >>>>>>>> simply not allow for possible collisions. Neither the contributor nor the
>> >>>>>>>> reviewer may spot such a collision, and it may therefore take until the
>> >>>>>>>> first full scan that one is actually noticed. Which I consider too late
>> >>>>>>>> in the process, even if we already were at the point where commits were
>> >>>>>>>> checked pre-push.
>> >>>>>>>
>> >>>>>>> Looking at the proposal, copy/pasted here for convenience:
>> >>>>>>>
>> >>>>>>> - private headers -> <dir>_<filename>_H
>> >>>>>>> - asm-generic headers -> ASM_GENERIC_<filename>_H
>> >>>>>>>     - #ifndef ASM_GENERIC_X86_PERCPU_H
>> >>>>>>>       #define ASM_GENERIC_X86_PERCPU_H
>> >>>>>>>       //...
>> >>>>>>>       #endif /* ASM_GENERIC_X86_PERCPU_H */
>> >>>>>>> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
>> >>>>>>>     - #ifndef ASM_X86_DOMAIN_H
>> >>>>>>>       #define ASM_X86_DOMAIN_H
>> >>>>>>>       //...
>> >>>>>>>       #endif /* ASM_X86_DOMAIN_H */
>> >>>>>>> - xen/include/xen/<filename>.h -> XEN_<filename>_H
>> >>>>>>> - xen/include/xen/<subdir>/<filename>.h -> XEN_<subdir>_<filename>_H
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> The only possibility for collision that I can see is from the first
>> >>>>>>> point:
>> >>>>>>>
>> >>>>>>> - private headers -> <dir>_<filename>_H
>> >>>>>>
>> >>>>>> I don't think this is the only possibility of collisions. The <subdir>_<filename>
>> >>>>>> parts can similarly cause problems if either of the two involved names contains
>> >>>>>> e.g. a dash (which would need converting to an underscore) or an underscore. To
>> >>>>>> avoid this, the name separators (slashes in the actual file names) there may need
>> >>>>>> representing by double underscores.
>> >>>>>
>> >>>>> I am OK with you two underscores as name separator (slashes in the
>> >>>>> actual file names). Would you do it for all levels like this?
>> >>>>>
>> >>>>> - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
>> >>>>> - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
>> >>>>> - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
>> >>>>>
>> >>>>>
>> >>>>> I think it is better than the below:
>> >>>>>
>> >>>>> - arch/arm/arm64/lib/something.h -> ARM_ARM64__LIB__SOMETHING_H
>> >>>>> - arch/arm/arm32/lib/something.h -> ARM_ARM32__LIB__SOMETHING_H
>> >>>>> - arch/x86/lib/something.h -> X86_LIB__SOMETHING_H
>> >>>>
>> >>>> Hmm, maybe it's indeed better to do it entirely uniformly then.
>> >>>
>> >>>
>> >>> Do we have agreement on the naming convention then?
>> >>>
>> >>>
>> >>> - private headers -> <dir>__<filename>__H
>> >>>     - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
>> >>>     - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
>> >>>     - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
>> >>>
>> >>> - asm-generic headers -> ASM_GENERIC_<filename>_H
>> >>>     - include/asm-generic/percpu.h -> ASM_GENERIC_X86_PERCPU_H
>> >>>
>> >>> - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM_<architecture>_<subdir>_<filename>_H
>> >>>     - arch/x86/include/asm/domain.h -> ASM_X86_DOMAIN_H
>> >>>
>> >>> - include/xen -> XEN_<filename>_H
>> >>>     - include/xen/percpu.h -> XEN_PERCPU_H
>> >>>
>> >>>
>> >>> Or do you prefer the double underscore __  in all cases?
>> >>
>> >> It's not so much prefer, but a requirement if we want to be future proof.
>> >> Even for ASM_GENERIC_* that'll be needed, as your outline above simply
>> >> doesn't mention the (future) case of there being subdir-s there (see how
>> >> Linux already has some). Imo the question doesn't even arise for XEN_*,
>> >> as xen/ has subdir-s already.
>> >
>> > OK. So it becomes:
>> >
>> > - private headers -> <dir>__<filename>_H
>> >     - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
>> >     - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
>> >     - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
>> >
>> > - asm-generic headers -> ASM_GENERIC__<filename>_H
>> >     - include/asm-generic/percpu.h -> ASM_GENERIC__X86__PERCPU_H
>> 
>> Nit: There's still a stray _X86_ in here.
> 
> yes, good point.
> 
> Alessandro, let us know if we are good to go ahead or if we are missing
> anything.

I think we are good right now, I will provide the patch series v5 with 
all the
fixes and inclusion guards renamings soon.

>> > - arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM__<architecture>__<subdir>__<filename>_H
>> >     - arch/x86/include/asm/domain.h -> ASM__X86__DOMAIN_H
>> >
>> > - include/xen -> XEN__<filename>_H
>> >     - include/xen/percpu.h -> XEN__PERCPU_H
>> >
>> > If we have found agreement then Alessandro could send an update
>> 

-- 
Alessandro Zucchelli, B.Sc.

Software Engineer, BUGSENG (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 06:59:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 06:59:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761490.1171416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVn1T-0004e1-2I; Mon, 22 Jul 2024 06:59:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761490.1171416; Mon, 22 Jul 2024 06: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 1sVn1S-0004du-Vp; Mon, 22 Jul 2024 06:59:50 +0000
Received: by outflank-mailman (input) for mailman id 761490;
 Mon, 22 Jul 2024 06:59: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVn1Q-0004do-RP
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 06:59:48 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id faf9bd41-47f7-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 08:59:46 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a77abe5c709so378589166b.2
 for <xen-devel@lists.xenproject.org>; Sun, 21 Jul 2024 23:59: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
 a640c23a62f3a-a7a3c922b3esm379427966b.184.2024.07.21.23.59.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 21 Jul 2024 23:59: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: faf9bd41-47f7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721631586; x=1722236386; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zAQSqkHKNWKln4PjMS1CXP+Ho8wB+BnNbBHJtPZejaI=;
        b=VrHS5n101tmcqWciPD119pvtcR/EutkOHcQsy36iathFk078BE1NpO6N1JHtcKVqkm
         F0US+/+ABRuvrP/K4bCaXe4qqlIFUbS03yPI3jc0MsDWeVVjmrSlQIcaGZB+44kG9RJG
         9DE3ZFVVZgREM7eEZxP4M5KldHb5Eq9spssHuCOLiEShB1KR1KZ+vGpEEupxXEheQ2XT
         UD1l6cxP35nSEajjXdJPJeSPdUnS2lQ9Nuqm48az3HVjkBJcvNCJpXY/O9lGd9TvnYdD
         TWVJi5Ae2tiH0MkNN2gFRo14fWxQkzdxKuBK8oMafwjohHUCMzgU8kr0ysGr8SSzAQhh
         cUYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721631586; x=1722236386;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zAQSqkHKNWKln4PjMS1CXP+Ho8wB+BnNbBHJtPZejaI=;
        b=Ystb8mZ/gCBw+Td8hfbvGIU4OHah0sGt0Ew1JKwXqSxGrqBdDZGIRPw2GekMXER7py
         tfZB5UFyoLqSZWEK1WYgv8Ygio8iFkTErSmNZs6El01W34rHkmtSfLPS0a0zT0VgAa5t
         U39HXLs5ea6kcpkaUsictLKziuI50XREpSdeku6BZtghF6pEBhYTtjpvUUK3YGhTwoHy
         e3t5cjNZf16Asa1W+oEfT+P+yrDDtxqbQYO2XwG8WojJFrqnvatfL6sx7mVnyCd1r2fi
         T6O7EVlBD78ZTvbUrR6t/xxlLobzAjUeTuB3Mdd8QyZwTY5xr2mjuT29umhVqihEWkgP
         nngA==
X-Forwarded-Encrypted: i=1; AJvYcCWlq+iSkK5o051wj7lkX3aB9gxm+qXXUo9louu1Gnn+8zdS/+MgujXGXJMOiT+YvhywFn4zMcjlh/KIVstxte1VamogyU2AEp/WpR5cVps=
X-Gm-Message-State: AOJu0YwBQXQvTBpcv9X9c8eN0RFw8L64dOGAdQ8jPUz6YY4ATh7FqiER
	uxP36hYG9TbleaIuC4ZxQZAzt6UAwWeKZagnFUB8B1MI4V/+p5vQlZfciOZpcA==
X-Google-Smtp-Source: AGHT+IFAyjQK+ffd8R7nbWOp5Fo3L9PjImt/ZVPSTW0lme6CeN7YnpjgOTQUtOoFp6k6n0eOq/Zv7g==
X-Received: by 2002:a17:907:968e:b0:a77:d85c:86fa with SMTP id a640c23a62f3a-a7a4bfe5ebcmr421189666b.13.1721631585926;
        Sun, 21 Jul 2024 23:59:45 -0700 (PDT)
Message-ID: <dcab8b1b-d775-4529-868c-e976344cf01d@suse.com>
Date: Mon, 22 Jul 2024 08:59:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/8] xen/riscv: introduce generic Xen page table
 handling
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <f2d7f538edb7db8990bf26b791df9da3d390bf05.1720799926.git.oleksii.kurochko@gmail.com>
 <5187f606-0a1c-4812-8f8c-13301f0aba8c@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: <5187f606-0a1c-4812-8f8c-13301f0aba8c@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.07.2024 11:02, Julien Grall wrote:
> Hi,
> 
> On 12/07/2024 17:22, Oleksii Kurochko wrote:
>> At least, between Arm and RISC-V most of the code related to Xen page
>> table handling are common.
>>
>> This GENERIC_PT code is based on Arm's arm/mmu/pt.c except some minor
>> changes such as introduction of the following functions:
>>    * get_root_page()
>>    * xen_pt_check_contig()
>>    * set_pte_table_bit()
>>    * sanity_arch_specific_pte_checks()
>>    * get_contig_bit()
>>    * set_pte_permissions()
>>    * flush_xen_tlb_range_va()
>> It was done because not every functions has the generic pte_flags and
>> it could be a different positions of the PTE bits in a PTE.
> While I am always in favor of trying to avoid code duplication, I am not 
> sure the page-tables are one that should be.
> 
> For instance, you don't have the concept of contiguous page in RISC-V (I 
> see you introduce dummy flags, but IMHO this is a bit of a hack). All 
> the code was also written in a way to avoid temporary conflict mappings. 
> This is to avoid using Break-Before-Make. But on newer hardware this 
> could be relaxed.
> 
> I am interested to know what the others thinks.

I share the concern; I was rather surprised to see the title, but - not
having had the time to look at the patch yet - was kind of guessing
(hoping) it wasn't really what the title said. Page table handling quite
likely wants to remain arch-specific.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 07:05:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 07:05:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761497.1171425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVn7E-0006Cl-MR; Mon, 22 Jul 2024 07:05:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761497.1171425; Mon, 22 Jul 2024 07:05: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 1sVn7E-0006Ce-Jv; Mon, 22 Jul 2024 07:05:48 +0000
Received: by outflank-mailman (input) for mailman id 761497;
 Mon, 22 Jul 2024 07:05: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVn7D-0006CY-N6
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 07:05:47 +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 d1027ab4-47f8-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 09:05:45 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5854ac817afso2250961a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 00:05: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
 4fb4d7f45d1cf-5a51433f904sm2945160a12.40.2024.07.22.00.05.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 00:05: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: d1027ab4-47f8-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721631945; x=1722236745; 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=3/peW/0/GCaqcuPKOsJNC+gk9eHp5K+xbvPXgtsTOC0=;
        b=Oq0Ha6uvJ9jCe/pSVWhJox8CSe4kQEmixEJ5fYohHQgL0e+XuFEhuKYQVmB4dyZ0pZ
         F/gq9352S1OzZsmG4gqcvE8JUAGZSNE4nvHBtUi5Mr5y7jb+2A6PyPjh4eNsE5ErRVc2
         LtbbFf1eQgeCZP8NOT/qgramADS0jOs3eXRqf0603A27EnQgXwbHFgInQr+L/fqthOMv
         6wM4l734PrYe6+Xkvz2vzKczrOZ/xhPPCjh6C0CZDJ3LGMrBfKqbtN1oFbPlXzD3i1co
         TLHz60Df1hpDFvl07uvTThOuD8tKQBUD3wu3tJJ+XTxLpnoLWL4yP+eC2rvvhAt3YjyD
         IQMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721631945; x=1722236745;
        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=3/peW/0/GCaqcuPKOsJNC+gk9eHp5K+xbvPXgtsTOC0=;
        b=WxXrVy5zE1cN4z91fJRolR4mnApssSz6gSDKTXdM7/+70wykszRTcf3gfRjMU8kXTX
         gZb1M+FTiYkJ2FifBD3Tt3RXkMfhbWs6fBUKWq0q1AYXCTYWAebKO1NJB3wT0PclIaST
         WHT8fyixyEhXfKLVwFzAuuQLFc7CBV+WLD2bIZAs4lK/ahc3KmSa/AWq+fj/GyyIDjOK
         5Ah0HSjEmbtAFYzwAz6Ff6iiv5WgCFXM98XGnnJwxBF0jKf/CI909W3ut24cvumdAhsx
         UPIp6iXlVEbVTz/PgI+LitfYrJZe0vKPGr+0fcHT/vKe8eOKTbeNY9ZujwHaTmjEd6BW
         tX4g==
X-Gm-Message-State: AOJu0YzyA2IScijEb0zmSvaCfNXgTU2CqesPSg/1OjibFZFY0mqXIKPj
	tSR8KVyfNWw76QMGzIICopM6M5uYNoXA0StsWCFxUjRrPJ1JjodaUX7JQH13PA==
X-Google-Smtp-Source: AGHT+IGv9JeomGku2JpY57hOmMjRdelenITGX45UImYzWatrvhQFApxG0MLiwCcSIekkiHg2m1HSNA==
X-Received: by 2002:a05:6402:528c:b0:5a2:fc48:db12 with SMTP id 4fb4d7f45d1cf-5a479a72a4fmr3830829a12.19.1721631945125;
        Mon, 22 Jul 2024 00:05:45 -0700 (PDT)
Message-ID: <39d87a30-7722-45ec-bc13-11111eb46483@suse.com>
Date: Mon, 22 Jul 2024 09:05:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [linux-linus test] 186932: regressions - FAIL
To: osstest service owner <osstest-admin@xenproject.org>
References: <osstest-186932-mainreport@xen.org>
Content-Language: en-US
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>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <osstest-186932-mainreport@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.07.2024 06:56, osstest service owner wrote:
> flight 186932 linux-linus real [real]
> http://logs.test-lab.xenproject.org/osstest/logs/186932/
> 
> Regressions :-(
> 
> Tests which did not succeed and are blocking,
> including tests which could not be run:
>  test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
>  test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
>  test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
>  test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
>  test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
>  test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
>  test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
>  test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
>  test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

There looks to be a basic problem as of flight 186925, yet a brief look at one
of the logs doesn't really give any hint other than the system perhaps simply
being slow. Ideas, anyone?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 07:15:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 07:15:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761507.1171435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVnGo-0007yj-Mr; Mon, 22 Jul 2024 07:15:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761507.1171435; Mon, 22 Jul 2024 07: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 1sVnGo-0007yc-KJ; Mon, 22 Jul 2024 07:15:42 +0000
Received: by outflank-mailman (input) for mailman id 761507;
 Mon, 22 Jul 2024 07:15: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVnGn-0007yW-KD
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 07:15:41 +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 338f58bb-47fa-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 09:15:40 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a77c349bb81so368707666b.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 00:15: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
 a640c23a62f3a-a7a3c9233c5sm382848266b.185.2024.07.22.00.15.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 00:15: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: 338f58bb-47fa-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721632540; x=1722237340; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=I+/Vgod0fktbuHqI7yZLmkeiuCeHf5w5rjOdro5VCqU=;
        b=USdB+YbGUFvmvi/4JTu0J8AYkGe/lzFnUwzZDnCx2H0mQtrNtgW400u7rlGWALzPJy
         fpa1kEmGkthvCaC478u2nSOYWUm96tTaPPi3Lz2+dxWjeUcqsfzmikwllYksUabcenP1
         wt3CfNvUFyMEhr9GbIXuxg//QfFYk4+tH1Afc7K6HPj/J4X1p0EkwfoLRMIjnpjzTLrL
         XsqgWHDYEKJWQYF3olproVG0TXndogXwZwag89FijT5ft0d8e1eOV1pNFOmciSwqsrPn
         7E0bF+1m8CvbGfgBEpsZx19a1AlzOV53Sm9Hp98KXFh8hr/wN/7ajywL/3YJK5Ha7ffz
         FnhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721632540; x=1722237340;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=I+/Vgod0fktbuHqI7yZLmkeiuCeHf5w5rjOdro5VCqU=;
        b=pQjB8cW5Q0jKRECohLMhxwUEUfW8MEod/kt2KCCVYzLUclf5CWsRABr0UaOpkpK4Aw
         LgD344rM4LEZ4J5Krk0+vR6GhkFNbGWUBK3HVjo9tvcew8jazd12gwMNqOCf/SYfu84w
         FcNiP0p8QuN84URxDxuQaVe7GV/Eh6gxjbdKjgLELtMbcjHX/PuD4NVZA8b/AufncqCt
         VoaNGMdHzlTNqsVSRwptYVMOv0bqg2sU/ax6cUEwblBdTZvDQYvWIFKhQgbkhd/mKmoi
         QpcTlvbp+gtcqXUwAlB36s0LvjtiEtYSWcXr7ZW+kI+9FESD5NtMxHeh8A9xGgWtppHY
         qHEA==
X-Forwarded-Encrypted: i=1; AJvYcCWXdB7S4TVU7K53ZMFZdvcHaTI0F7bVdKlSS5Qc4g5aOZiIUIF18b2640W7tUyDaPSc3l8p85wAdIQgKLg8+IrxLhY2bCIT/fPHUsKXGDw=
X-Gm-Message-State: AOJu0YwAjbJ51aX2RTmw/3Y9kpcflF73WGUsxAAvVqy63SJHP7kDE8Qo
	u+GwySiKscyrvANyP0fjE1dSD2KgzF/CZJ+FYQ6SdWIofdx7jN0ewW4kngCJkQ==
X-Google-Smtp-Source: AGHT+IGgYTCy7irMQCSlIXJ4qjae7T7NyhhHviRZAyBf6PzP4paIYcQcGtGbLIRSsiSayYaA0Ob7rA==
X-Received: by 2002:a17:906:6a19:b0:a75:25ff:550d with SMTP id a640c23a62f3a-a7a4c010608mr356163866b.26.1721632540008;
        Mon, 22 Jul 2024 00:15:40 -0700 (PDT)
Message-ID: <0c76f87a-ca46-4511-9a6d-9ffc10815295@suse.com>
Date: Mon, 22 Jul 2024 09:15:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] Mini-OS: add some macros for asm statements
To: Juergen Gross <jgross@suse.com>
Cc: samuel.thibault@ens-lyon.org, wl@xen.org,
 minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org
References: <20240719155701.18856-1-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: <20240719155701.18856-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.07.2024 17:57, Juergen Gross wrote:
> --- a/arch/x86/sched.c
> +++ b/arch/x86/sched.c
> @@ -60,16 +60,10 @@ void dump_stack(struct thread *thread)
>      unsigned long *bottom = (unsigned long *)(thread->stack + STACK_SIZE); 
>      unsigned long *pointer = (unsigned long *)thread->sp;
>      int count;
> -    if(thread == current)
> -    {
> -#ifdef __i386__    
> -        asm("movl %%esp,%0"
> -            : "=r"(pointer));
> -#else
> -        asm("movq %%rsp,%0"
> -            : "=r"(pointer));
> -#endif
> -    }
> +
> +    if ( thread == current )
> +        asm("mov %%"ASM_SP",%0" : "=r"(pointer));

As you switch the if() to Xen style, why not also the asm()? Irrespective of
which precise style is meant to be used, the last closing double quote likely
also wants to be followed by a blank?

> @@ -119,20 +113,12 @@ struct thread* arch_create_thread(char *name, void (*function)(void *),
>  
>  void run_idle_thread(void)
>  {
> -    /* Switch stacks and run the thread */ 
> -#if defined(__i386__)
> -    __asm__ __volatile__("mov %0,%%esp\n\t"
> -                         "push %1\n\t" 
> -                         "ret"                                            
> -                         :"=m" (idle_thread->sp)
> -                         :"m" (idle_thread->ip));                          
> -#elif defined(__x86_64__)
> -    __asm__ __volatile__("mov %0,%%rsp\n\t"
> -                         "push %1\n\t" 
> -                         "ret"                                            
> -                         :"=m" (idle_thread->sp)
> -                         :"m" (idle_thread->ip));                                                    
> -#endif
> +    /* Switch stacks and run the thread */
> +    asm volatile ("mov %[sp], %%"ASM_SP"\n\t"
> +                  "jmp *%[ip]\n\t"
> +                  :
> +                  : [sp] "m" (idle_thread->sp),
> +                    [ip] "m" (idle_thread->ip));
>  }

Here instead you look to be switching to Linux style. Was that intended?

As an aside, I think the construct is slightly problematic: In principle
the compiler could make a copy of idle_thread->ip on the stack. (It
won't normally, for code efficiency reasons.) That would break with the
earlier change of the stack pointer. Using an "r" constraint would
perhaps be better there. Yet if so wanted, that would certainly be a
separate change.

With the adjustments (or respective clarifications as to style intentions),
which I'd be fine making while committing so long as you agree:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 07:23:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 07:23:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761520.1171450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVnO5-0001M6-Fb; Mon, 22 Jul 2024 07:23:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761520.1171450; Mon, 22 Jul 2024 07:23:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVnO5-0001Lz-CO; Mon, 22 Jul 2024 07:23:13 +0000
Received: by outflank-mailman (input) for mailman id 761520;
 Mon, 22 Jul 2024 07: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVnO3-0001Ls-N7
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 07:23:11 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3ff3b810-47fb-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 09:23:10 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2ef248ab2aeso21277061fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 00:23: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-a7a3c922b75sm381440166b.180.2024.07.22.00.23.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 00:23: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: 3ff3b810-47fb-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721632990; x=1722237790; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YFZUySdDi7DXHjs1J1a/uwX9YShs8m5Umy+CQL7fxBQ=;
        b=OYEcn/bcsmm+cCuwniV9oywDvnyjollgi7yuSGu/g+PnY9Jm+T/kmAhM0RKptgGqrj
         wKKrlwGZP2A+B+jhDX9P9/6i4yACCLJhabllbqDoQtXxwU1Zfg7f0tgcLTOwtC63eZuV
         7S6CCS7TSEM5cpmQI9dcmlT+hj2UPtA9KhrfL0PMloBHqzKs/WqKV7xvV+7sZJM/G3El
         J7ekX7gP5LzvXkHjyAXreJk76yz1uPzPLmRz+YSF79mVg3UtZm/fU6iYudghbfpClt4f
         mlt/ah0Ju4tlyg1HdyjtE6DDa14zqGLYUHptYZ3saJORmJqGtgdBDNnp3yRG96/MhAod
         tqRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721632990; x=1722237790;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YFZUySdDi7DXHjs1J1a/uwX9YShs8m5Umy+CQL7fxBQ=;
        b=kd3CSgYXYZ1ojAejGCS2vBlefIYrdEmGC6rg2KUyxWM8IPgM7bx86elp1P5TYPE2f3
         ko9BT9zON0AY3SGSZOCMTvGbVEk5rZrIPV3WAJAR+4iDRcnZq9fElO2JDYTouOhwdgV0
         s7wO6Q34jaCncRfplmhZ+hwUHChze1qGLDchOJCl/EeEfGbUVD6bhk0Ley/nXOf21KvM
         hLMRFMh9TFTn6r2BTMzNO4nSi+LlYr4YT7GNjvj8K0G7Dfl1IDSurPvvBSdd8vrMhynY
         d/LoDJXo2iO3OxYFQNHYqYXmHe/1YG/TRq8nyWklgKGfEUBx08TQEtOwHfS+yPZwj6oi
         qdUw==
X-Forwarded-Encrypted: i=1; AJvYcCW0qyzzbwQZ5mXMSrqzKTdEpQcPs3wICR9n3ds1o9DS49hMQdb5gkpBTDO/IVrD/cfAh8ALaXWkKAfH9FFTCDZ2ZbmD0A5LMLA9FJN2FSw=
X-Gm-Message-State: AOJu0YyHnadntrIdYwOPfKQ7QpaMxyjPZvWXJ76OfvtRoMYL8FU6SdRQ
	tXRnCUrAyI0SX+PMTNoRtArOnCln71sXWTaM/JPyn/zfJTDPSeLl5EH7Raf4IQ==
X-Google-Smtp-Source: AGHT+IFkk/tg56+tVywQO+Ev1FuGFUMmZkuGMErwPPyyMVI7iCjFJrC7kVfSZfnphsXfnCDO3AMGqA==
X-Received: by 2002:a2e:9d94:0:b0:2ef:2c68:a776 with SMTP id 38308e7fff4ca-2ef2c68a7f8mr26287651fa.37.1721632990152;
        Mon, 22 Jul 2024 00:23:10 -0700 (PDT)
Message-ID: <be94ac73-cb8f-4bb3-a529-4c3b47a939b3@suse.com>
Date: Mon, 22 Jul 2024 09:23:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] arch/domain: Clean up the idle domain remnants in
 arch_domain_create()
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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
 <20240718215744.3892072-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: <20240718215744.3892072-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.07.2024 23:57, Andrew Cooper wrote:
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -791,23 +791,6 @@ int arch_domain_create(struct domain *d,
>  
>      spin_lock_init(&d->arch.e820_lock);
>  
> -    /* Minimal initialisation for the idle domain. */
> -    if ( unlikely(is_idle_domain(d)) )
> -    {
> -        arch_init_idle_domain(d);
> -
> -        d->arch.cpu_policy = ZERO_BLOCK_PTR; /* Catch stray misuses. */

This line looks to be lost in the process. Already in an earlier patch it
should move to arch_init_idle_domain(), shouldn't it? With that adjustment
for the entire series:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 08:44:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 08:44:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761541.1171504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVoeg-0003sO-Km; Mon, 22 Jul 2024 08:44:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761541.1171504; Mon, 22 Jul 2024 08:44: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 1sVoeg-0003sH-Hb; Mon, 22 Jul 2024 08:44:26 +0000
Received: by outflank-mailman (input) for mailman id 761541;
 Mon, 22 Jul 2024 08:44: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=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVoef-0003qP-AH
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 08:44: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 982fe5f6-4806-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 10:44:23 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3685afd0c56so214319f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 01:44:23 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-36878695b35sm7838042f8f.65.2024.07.22.01.44.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 01:44: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: 982fe5f6-4806-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721637863; x=1722242663; 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=UFBoWcoE3evfRn0nNP6dRYYq9iO7MVB6qLa15fL9t7Q=;
        b=Uo2m62ixw4vnpMC9bpF1z2+0rWS8lC+IjySRd9O0JUU0/RcLEi4Q3bhGEVXHCyGHGh
         df2GkKiCzsZCthHJgUufsyOuATtPLbSIZub9xLlr90+L513BaruWcBRMk7uebVvhO59a
         S7N3l0EjfW/UCkfLnZOJjJVa55LiWzi6tbGrSnNUFGGa+YDt/Oo/e90rI9ZxKjiyztvC
         ct3DFoCH6u7NWqWlMbZAOjL7uaBbwAXisY/araxxg4aEleDmdHdeVylRu0WTETnBXu6F
         jHN9ysaKEJjRC0daBwxnrMl58XI/RNDX1te31gvPHjQpsuyHdAjtsew2wHLodj1SKwX8
         VlUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721637863; x=1722242663;
        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=UFBoWcoE3evfRn0nNP6dRYYq9iO7MVB6qLa15fL9t7Q=;
        b=PRuGAncBT7LGm9KDdg2ZzV8R8lPIzyda7+C8mfzvktEvzA15aYVH9dBzUJe+CfF++2
         fINUORN/y7jEEHndI7I8cawMU3ENOwKFZSJ5yAwRPNU8mdbLdlJiM+09nI6Z1U2GCzW1
         39mZmr7sQBEzsmXJWD8y21DOiRTl4BG7giOeiRE1r+xQ628neHTToBBMhDnhsFs/R6nW
         GBnIHGvbDG7IKYMtvINeHCVsRUih72gqfBymLE516J77+CcLFFqIMdRat1hFzdFqcYau
         h7KIxdtOMtC0ZCCny7sk/YLnznmUHHFpF7bJl5aljuPSdTmq/Vsk3H6R/eXgxxDt2dd/
         eVeA==
X-Forwarded-Encrypted: i=1; AJvYcCUCRKRN3Fq0IEDax/PrqRnj/eEOM2kre+GI//VpZAjoRHR3GKvAKdk+o5yx0k2WY+Kv1dPdB8A8zQBuh0ffew11G9lcVaruh8f03Ros9ok=
X-Gm-Message-State: AOJu0YykF0ZNMFoLrLvh6uXj5X0Aoe0rpVW42V1vSibkErMZqBNLHN5E
	yRByQhhZuiSAhecbkngdb25vY0snVSjVm3+HHWPqoDZ29zlYJ3OEWtIAkvdNUaA=
X-Google-Smtp-Source: AGHT+IH+jT7+d+FJfyFu0P7nCL8Pi7p0bwAMhnxDzQvjaGbBn/zuLdx9sWZdEZbSjxQe4ysjIEe1Xw==
X-Received: by 2002:a5d:4285:0:b0:367:84fe:cd79 with SMTP id ffacd0b85a97d-369bb2a169dmr3436826f8f.49.1721637862730;
        Mon, 22 Jul 2024 01:44:22 -0700 (PDT)
Message-ID: <bb5ff62e-8dc9-4d31-82d8-803bd8fa77a3@suse.com>
Date: Mon, 22 Jul 2024 10:44:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] Mini-OS: add some macros for asm statements
To: Jan Beulich <jbeulich@suse.com>
Cc: samuel.thibault@ens-lyon.org, wl@xen.org,
 minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org
References: <20240719155701.18856-1-jgross@suse.com>
 <0c76f87a-ca46-4511-9a6d-9ffc10815295@suse.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <0c76f87a-ca46-4511-9a6d-9ffc10815295@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 22.07.24 09:15, Jan Beulich wrote:
> On 19.07.2024 17:57, Juergen Gross wrote:
>> --- a/arch/x86/sched.c
>> +++ b/arch/x86/sched.c
>> @@ -60,16 +60,10 @@ void dump_stack(struct thread *thread)
>>       unsigned long *bottom = (unsigned long *)(thread->stack + STACK_SIZE);
>>       unsigned long *pointer = (unsigned long *)thread->sp;
>>       int count;
>> -    if(thread == current)
>> -    {
>> -#ifdef __i386__
>> -        asm("movl %%esp,%0"
>> -            : "=r"(pointer));
>> -#else
>> -        asm("movq %%rsp,%0"
>> -            : "=r"(pointer));
>> -#endif
>> -    }
>> +
>> +    if ( thread == current )
>> +        asm("mov %%"ASM_SP",%0" : "=r"(pointer));
> 
> As you switch the if() to Xen style, why not also the asm()? Irrespective of
> which precise style is meant to be used, the last closing double quote likely
> also wants to be followed by a blank?

Yes, indeed.

> 
>> @@ -119,20 +113,12 @@ struct thread* arch_create_thread(char *name, void (*function)(void *),
>>   
>>   void run_idle_thread(void)
>>   {
>> -    /* Switch stacks and run the thread */
>> -#if defined(__i386__)
>> -    __asm__ __volatile__("mov %0,%%esp\n\t"
>> -                         "push %1\n\t"
>> -                         "ret"
>> -                         :"=m" (idle_thread->sp)
>> -                         :"m" (idle_thread->ip));
>> -#elif defined(__x86_64__)
>> -    __asm__ __volatile__("mov %0,%%rsp\n\t"
>> -                         "push %1\n\t"
>> -                         "ret"
>> -                         :"=m" (idle_thread->sp)
>> -                         :"m" (idle_thread->ip));
>> -#endif
>> +    /* Switch stacks and run the thread */
>> +    asm volatile ("mov %[sp], %%"ASM_SP"\n\t"
>> +                  "jmp *%[ip]\n\t"
>> +                  :
>> +                  : [sp] "m" (idle_thread->sp),
>> +                    [ip] "m" (idle_thread->ip));
>>   }
> 
> Here instead you look to be switching to Linux style. Was that intended?

No, not really. I took Andrew's suggestion verbatim.

> As an aside, I think the construct is slightly problematic: In principle
> the compiler could make a copy of idle_thread->ip on the stack. (It
> won't normally, for code efficiency reasons.) That would break with the
> earlier change of the stack pointer. Using an "r" constraint would
> perhaps be better there. Yet if so wanted, that would certainly be a
> separate change.
> 
> With the adjustments (or respective clarifications as to style intentions),
> which I'd be fine making while committing so long as you agree:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks. I agree with the suggested changes (to spell it out explicitly: I
meant to use Xen coding style, as this is the Mini-OS style, too).


Juergen


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 08:54:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 08:54:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761553.1171514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVoo8-0005Wn-Fc; Mon, 22 Jul 2024 08:54:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761553.1171514; Mon, 22 Jul 2024 08: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 1sVoo8-0005Wg-D1; Mon, 22 Jul 2024 08:54:12 +0000
Received: by outflank-mailman (input) for mailman id 761553;
 Mon, 22 Jul 2024 08: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=m5b5=OW=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sVoo7-0005WY-0b
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 08:54:11 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f517de61-4807-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 10:54:08 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id D81C54EE0737;
 Mon, 22 Jul 2024 10:54: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: f517de61-4807-11ef-8776-851b0ebba9a2
MIME-Version: 1.0
Date: Mon, 22 Jul 2024 10:54:07 +0200
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>, consulting@bugseng.com, Nicola Vetrini
 <nicola.vetrini@bugseng.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 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 14/17] xen: add SAF deviation for MISRA C Dir 4.10
Reply-To: alessandro.zucchelli@bugseng.com
Mail-Reply-To: alessandro.zucchelli@bugseng.com
In-Reply-To: <alpine.DEB.2.22.394.2407121527500.3635@ubuntu-linux-20-04-desktop>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <b64a6b53de8bcf14c91a1534bb57b001efc12cce.1719829101.git.alessandro.zucchelli@bugseng.com>
 <d6c313e5-19c6-4775-8d9c-0742a37032b4@suse.com>
 <alpine.DEB.2.22.394.2407121527500.3635@ubuntu-linux-20-04-desktop>
Message-ID: <39ca09f9ef0fe1b6ec93371995f2a49a@bugseng.com>
X-Sender: alessandro.zucchelli@bugseng.com
Organization: BUGSENG Srl
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-13 00:28, Stefano Stabellini wrote:
> On Wed, 3 Jul 2024, Jan Beulich wrote:
>> public/x86: don't include common xen.h from arch-specific one
>> 
>> No other arch-*.h does so, and arch-x86/xen.h really just takes the 
>> role
>> of arch-x86_32.h and arch-x86_64.h (by those two forwarding there). 
>> With
>> xen.h itself including the per-arch headers, doing so is also kind of
>> backwards anyway, and just calling for problems. There's exactly one
>> place where arch-x86/xen.h is included when really xen.h is meant (for
>> wanting XEN_GUEST_HANDLE_64() to be made available, the default
>> definition of which lives in the common xen.h).
>> 
>> This then addresses a violation of Misra C:2012 Directive 4.10
>> ("Precautions shall be taken in order to prevent the contents of a
>> header file being included more than once").
>> 
>> Reported-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

One question: when making the new version of the patch series should I
revert this commit as Jan made the patch for it himself, or should Jan's 
fixes
be integrated in the patch series?

Many thanks in advance,
Alessandro Zucchelli

>> --- a/xen/include/public/arch-x86/xen.h
>> +++ b/xen/include/public/arch-x86/xen.h
>> @@ -7,8 +7,6 @@
>>   * Copyright (c) 2004-2006, K A Fraser
>>   */
>> 
>> -#include "../xen.h"
>> -
>>  #ifndef __XEN_PUBLIC_ARCH_X86_XEN_H__
>>  #define __XEN_PUBLIC_ARCH_X86_XEN_H__
>> 
>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>> @@ -525,7 +525,7 @@ void x86_cpu_policy_bound_max_leaves(str
>>  void x86_cpu_policy_shrink_max_leaves(struct cpu_policy *p);
>> 
>>  #ifdef __XEN__
>> -#include <public/arch-x86/xen.h>
>> +#include <public/xen.h>
>>  typedef XEN_GUEST_HANDLE_64(xen_cpuid_leaf_t) cpuid_leaf_buffer_t;
>>  typedef XEN_GUEST_HANDLE_64(xen_msr_entry_t) msr_entry_buffer_t;
>>  #else
>> 
>> 

-- 
Alessandro Zucchelli, B.Sc.

Software Engineer, BUGSENG (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 09:14:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 09:14:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761563.1171524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVp84-0008F7-0y; Mon, 22 Jul 2024 09:14:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761563.1171524; Mon, 22 Jul 2024 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 1sVp83-0008F0-UR; Mon, 22 Jul 2024 09:14:47 +0000
Received: by outflank-mailman (input) for mailman id 761563;
 Mon, 22 Jul 2024 09:14: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVp82-0008Eu-IW
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 09:14:46 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d5b0ead7-480a-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 11:14:44 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52f04b3cb33so1073666e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 02:14: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
 a640c23a62f3a-a7a3c95111fsm397878666b.216.2024.07.22.02.14.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 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: d5b0ead7-480a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721639684; x=1722244484; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vVqp4hhmqQkIbuyCmCIePjQjo/UkfXfxQIXMoFPkMv4=;
        b=LWqQuvITCkrgxRZBvCEf0NngF7YaCpzNpIwGpwVNJcqQAFweBEmp9z/zzNLobIjkEl
         zKux5dGSokXcgV2H+HXcSZ9n91zi1GgXQmTpFTVfFl8/ZFb+96ag6Q6Hi0yQCfxL/PjY
         39VqgIbKKP/jOI8/C+9VUGrjlFIpT/k/5EJJ5Uufj3eJDPLCYnv6sbC6Qo8FDqS8Xymy
         jD5IAefQ0DDvcUvqDktw6lCBOEmUH5ZN7N5qjxMJ+ks723J5Q9wyqYwfyZwRnNB/vm9q
         tSlEAXn3JbDAEBkHvLLS8evvYauuX6MtYCsf4X8Bs7MyZSyJk+rdYboPOLahwjgyxqC1
         qBcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721639684; x=1722244484;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vVqp4hhmqQkIbuyCmCIePjQjo/UkfXfxQIXMoFPkMv4=;
        b=w5gcTtVpqtmAegJgAkdLrFMyVHN7jVxq7de/9YvfMX/YQS+uYSG8/uNJdkSLMP1Te4
         fgWDKIULHHYe6jbgXTZt9yO4Nvc/Anfqc3OYs9i5i3vu4M5bCkEwN2mph6cF6FkQ1Ec5
         guZ0zfX4IQYE4wfYA/TEtK+1LtdwtwLk7CNfFAvR6FFTjvTNjKS9tXH2xDYwocRjhw1H
         PPtqB4rLJmvNfIu8s5vvFm+nRxIudQoFEZgR9oRNNQYdUQ6uQP6jdi/6EcqPE05t0CiY
         wZf7Dzfo3R7+zkCV2yEpeEfxYYxpliAssjPbBzK6LdcOGFzeBB5eahdAUuBbPH5u24Z2
         DrMg==
X-Forwarded-Encrypted: i=1; AJvYcCUDxsAXEGoH3uNJ8Qbh3IcSWycAtR/KI1kr2LfgVCFapo6cwhfLOeQMAy55i/bDXcMUpM/NOBqREVvTWQqGDZCJUJEGjZBLJ1XMCYOPJA8=
X-Gm-Message-State: AOJu0YwNL61OVIDwYsmkD75bH4dyngWb6azH7cMOjJ+aU4UicaRI3zLh
	wlT4ff3QLlQTjEzjAAcLWt5tUS/wHvjB6+iDF9xIFta8nh1YtD1D2mS8ii59Dg==
X-Google-Smtp-Source: AGHT+IFsYYXfYFWp9XNPK7mfNnSEAt/vdwsnLPqakXoPVN3yjy6RLQU/rbfbdwch0GPMWvEq8vsYeQ==
X-Received: by 2002:a05:6512:2304:b0:52c:dd25:9ac6 with SMTP id 2adb3069b0e04-52efb74594fmr4393469e87.29.1721639683840;
        Mon, 22 Jul 2024 02:14:43 -0700 (PDT)
Message-ID: <dfc0d765-0d7b-418e-b311-6a641941e8b2@suse.com>
Date: Mon, 22 Jul 2024 11:14:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 14/17] xen: add SAF deviation for MISRA C Dir 4.10
To: alessandro.zucchelli@bugseng.com
Cc: consulting@bugseng.com, Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1719829101.git.alessandro.zucchelli@bugseng.com>
 <b64a6b53de8bcf14c91a1534bb57b001efc12cce.1719829101.git.alessandro.zucchelli@bugseng.com>
 <d6c313e5-19c6-4775-8d9c-0742a37032b4@suse.com>
 <alpine.DEB.2.22.394.2407121527500.3635@ubuntu-linux-20-04-desktop>
 <39ca09f9ef0fe1b6ec93371995f2a49a@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: <39ca09f9ef0fe1b6ec93371995f2a49a@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.07.2024 10:54, Alessandro Zucchelli wrote:
> On 2024-07-13 00:28, Stefano Stabellini wrote:
>> On Wed, 3 Jul 2024, Jan Beulich wrote:
>>> public/x86: don't include common xen.h from arch-specific one
>>>
>>> No other arch-*.h does so, and arch-x86/xen.h really just takes the 
>>> role
>>> of arch-x86_32.h and arch-x86_64.h (by those two forwarding there). 
>>> With
>>> xen.h itself including the per-arch headers, doing so is also kind of
>>> backwards anyway, and just calling for problems. There's exactly one
>>> place where arch-x86/xen.h is included when really xen.h is meant (for
>>> wanting XEN_GUEST_HANDLE_64() to be made available, the default
>>> definition of which lives in the common xen.h).
>>>
>>> This then addresses a violation of Misra C:2012 Directive 4.10
>>> ("Precautions shall be taken in order to prevent the contents of a
>>> header file being included more than once").
>>>
>>> Reported-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> One question: when making the new version of the patch series should I
> revert this commit as Jan made the patch for it himself, or should Jan's 
> fixes
> be integrated in the patch series?

You certainly want to leave out this patch. Whether you want to add my
alternative into the series is really up to you. I intend to commit it
relatively soon anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 09:19:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 09:19:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761572.1171533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVpCN-0000WE-Lm; Mon, 22 Jul 2024 09:19:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761572.1171533; Mon, 22 Jul 2024 09: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 1sVpCN-0000W7-J9; Mon, 22 Jul 2024 09:19:15 +0000
Received: by outflank-mailman (input) for mailman id 761572;
 Mon, 22 Jul 2024 09:19:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVpCM-0000W1-Cu
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 09:19:14 +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 75e872ce-480b-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 11:19:13 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a77c9d3e593so386735966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 02:19:13 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c7be6f8sm399076866b.76.2024.07.22.02.19.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 02:19: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: 75e872ce-480b-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721639953; x=1722244753; 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=d6VEfOLTGJ+RuHev7qljds8DEypYkTZxz0lWwbVUhN8=;
        b=UFgIDc7VA/kq/asI2svZVBQ2CjphDpqx7lgS19lDsm83uiR3F7L9eG35mQe7v8asfl
         1WhEhBmon2rrBIgD1VuBzhJab6Q1LDPNHtTrkJYnd8A8HALVu5k9Ftt4pzRC5VtWfsGS
         3paIzDOKNFLy+h0QUtAK31T6gKKMdt519FCtkRm3pUOaaGHFJ/R0ejszH6osJx4LA4ro
         Hx+IW/+nyc2WHW64145017KblsdXvRYNC0HMfyIQ5MR/Nccs2Qh2wXFMq/NfKOprxiJi
         K6LbJlqxIcRxinUMkHsUp2ExMrNPtzYUaOYqSGEwInHte+NGdFDUSpwQXIBk+tUWe3wN
         zbSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721639953; x=1722244753;
        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=d6VEfOLTGJ+RuHev7qljds8DEypYkTZxz0lWwbVUhN8=;
        b=KgOnCQBJfyZ2jo/C15Iy7ukN9uttu50WvV9E4/8diM71lPxsiDynOseq1QI16WWs7f
         W0tZhxZyOpt9LKw1Om2NWS0ZLnGgZkawqFoCYHyOlc2v+fzELJP98bu7ShSvQJeF/NQD
         3W4VF3p6TIo8DjLP84NlXzN/SLd2ybfNmHVAej7ifj8avcYzsM+c4jF/PSnemoqdq/1C
         63qR8vpwzaIq0IJDlOECueExEfFzTf+0dTfPGT8UFNwV84P0R5bDm2pnjduYQpMUGuS3
         XrXklKgFHuwnSwE3DsSvR9FJG3tQOWYWzHhn4BcL+C2p1UjmA2yroa/zWoGpJvhIyTqT
         6J4Q==
X-Forwarded-Encrypted: i=1; AJvYcCXx4OKS9KWVeKBSUIIQR5vEJDgtq52bPKr+yD6tKBr07os8dcB78xfVVtHkKryc8FXsq9im4OTPSLm+tBvG9cea3EC0BxHjuOEey9rZsUs=
X-Gm-Message-State: AOJu0YwN6537ar4hzLzqIuqRve501YhcBIoHfKploqpeUS2/dX7toY0g
	43GttJUm1ZHF6YJy/Xp4pk55NXksnEe2z71/VCWxEQJ3yP983I83upa41PBVqpE=
X-Google-Smtp-Source: AGHT+IFS3Zn8s/ol87S4kv6XDUlg+Vgzm4vTYr3OhFxcM7IrGlzTveu5UCxLGnRUAwispgONuoyt1g==
X-Received: by 2002:a17:906:dc8f:b0:a75:1069:5b94 with SMTP id a640c23a62f3a-a7a4bfa6ecamr437723266b.21.1721639952795;
        Mon, 22 Jul 2024 02:19:12 -0700 (PDT)
Message-ID: <7d278c21-e966-4c72-9955-63287f422f79@suse.com>
Date: Mon, 22 Jul 2024 11:19:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/6] tools/libxs: Fix length check in xs_talkv()
To: Jason Andryuk <jason.andryuk@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-2-andrew.cooper3@citrix.com>
 <78c73bac-deb9-4e6e-8027-fb78369f695a@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <78c73bac-deb9-4e6e-8027-fb78369f695a@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 19.07.24 23:14, Jason Andryuk wrote:
> On 2024-07-18 12:48, Andrew Cooper wrote:
>> If the sum of iov element lengths overflows, the XENSTORE_PAYLOAD_MAX can
>> pass, after which we'll write 4G of data with a good-looking length field, and
>> the remainder of the payload will be interpreted as subsequent commands.
>>
>> Check each iov element length for XENSTORE_PAYLOAD_MAX before accmulating it.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>> CC: Juergen Gross <jgross@suse.com>
>> ---
>>   tools/libs/store/xs.c | 17 ++++++++++-------
>>   1 file changed, 10 insertions(+), 7 deletions(-)
>>
>> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
>> index ec77379ab9bd..81a790cfe60f 100644
>> --- a/tools/libs/store/xs.c
>> +++ b/tools/libs/store/xs.c
>> @@ -571,21 +571,24 @@ static void *xs_talkv(struct xs_handle *h, 
>> xs_transaction_t t,
>>       struct xsd_sockmsg msg;
>>       void *ret = NULL;
>>       int saved_errno;
>> -    unsigned int i;
>> +    unsigned int i, msg_len;
>>       struct sigaction ignorepipe, oldact;
>>       msg.tx_id = t;
>>       msg.req_id = 0;
>>       msg.type = type;
>> -    msg.len = 0;
>> -    for (i = 0; i < num_vecs; i++)
>> -        msg.len += iovec[i].iov_len;
>> -    if (msg.len > XENSTORE_PAYLOAD_MAX) {
>> -        errno = E2BIG;
>> -        return 0;
>> +    /* Calculate the payload length by summing iovec elements */
>> +    for (i = 0, msg_len = 0; i < num_vecs; i++) {
>> +        if ((iovec[i].iov_len > XENSTORE_PAYLOAD_MAX) ||
>> +            ((msg_len += iovec[i].iov_len) > XENSTORE_PAYLOAD_MAX)) {
>> +            errno = E2BIG;
>> +            return 0;
> 
> return NULL;
> 
> With that,
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

With the suggested change:

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 09:20:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 09:20:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761579.1171544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVpDj-0001uE-VL; Mon, 22 Jul 2024 09:20:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761579.1171544; Mon, 22 Jul 2024 09:20:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVpDj-0001u7-Sb; Mon, 22 Jul 2024 09:20:39 +0000
Received: by outflank-mailman (input) for mailman id 761579;
 Mon, 22 Jul 2024 09:20:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVpDh-0001u1-Vn
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 09:20:37 +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 a7e8fd56-480b-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 11:20:37 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a77c349bb81so382560066b.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 02:20: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
 a640c23a62f3a-a7a3c8c1e2asm396074966b.129.2024.07.22.02.20.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 02:20: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: a7e8fd56-480b-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721640037; x=1722244837; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+qrDm+7iCuvG3eHk4Ffj9sSIZXtIE/q0BFusZ7IB3LE=;
        b=H2vty+eU+QLJyLqfjsYdYoG5FtSr6w78AuQJ93VwhjMrbFTKH7cBcSRPRUVclMZfwb
         2WeHcu+oDNu6gb9meKt78enwHwAvrfG41f/I2y9Lq4IdHOS+4GjcTz7fblpu6R7m3S0P
         0lyEhV8bhLqz0n4zQAG7eKOVKkvN16OQG9r9cANEsBtrvK55ahdOGsrt77cbuNcx0CN5
         OqJFm1E+aPZuTKpj/w522sUWr5I30qPTSdodP/Dfr16cfAmd6QblkZRPpYB3HmeZ9z7F
         prPUn5MN2IT5GFagLs2dfo6Xx18kwxNTXE06FE2OsIFqgRSrA/uO/721Cp+oVmN9xYcx
         t74g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721640037; x=1722244837;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+qrDm+7iCuvG3eHk4Ffj9sSIZXtIE/q0BFusZ7IB3LE=;
        b=p9135QyMkqfUiIH7yQtQ+Q3NefH0koLd1squg3Mt1Ev9wN1VIxUUvoP2QaR9T19NbE
         ru9xisC4Y1AAKNexkLWdLfZ/TY0YpCkh6CH2/w6/4DAq/LfTc+m4ajo/k1/PgFHkgx+q
         t9JocoQXuiF9Rp+CFe/d3AfuMTAy+OCwSPV1fie7L34Txx3EIDr+Ob5HH4E82H2Kw0ZD
         +r2XWYFrXVyNSI5Xt7CchJdT+j3243/AXAVD0Z5iDL9lNkS2uA2boTq0k1+0G0Wm/d/9
         Hee6RF5h5zZkwCzCBdKawkqovzdC5n3gxVMeIeJWrLEElEwCpsii7qpM0aOgUO43LVDL
         bm0g==
X-Forwarded-Encrypted: i=1; AJvYcCUZ8bCBAA5nKOG7g2l0p2cqZofoobjzZusjqutT03irHGHYxXtS/HOxbYsxK3ArpV2pzanBXK8GEy2dfx+Ya/M5E3OD2zJzWqcRdQwhbbk=
X-Gm-Message-State: AOJu0Yyk6h8rhz0rG12jaURvCkc1DoHUt/vD2Idu2i6xlkqvswYYn0cW
	e4vsp6/ICDqY3G64pD1NErW73nSGGP9Sk65S7Ldtuz4yUnFOAhaqtT+EXtktLQ==
X-Google-Smtp-Source: AGHT+IFuszN5Uz9Ql1DmYTI9hphvM34iGZz/AxkpuuVUuGyEx4jk6xUcLiJFf8UayvQ+4SgMBCFZBA==
X-Received: by 2002:a17:906:7952:b0:a77:e7cb:2979 with SMTP id a640c23a62f3a-a7a4c2a6123mr474139766b.51.1721640036648;
        Mon, 22 Jul 2024 02:20:36 -0700 (PDT)
Message-ID: <9991b646-2d9e-418d-a0c0-5e357766c66c@suse.com>
Date: Mon, 22 Jul 2024 11:20:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to
 fuzz/x86_instruction_emulator
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.06.2024 00:47, Tamas K Lengyel wrote:
> This target enables integration into oss-fuzz. Changing invalid input return
> to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding the
> missing __wrap_vsnprintf wrapper which is required for successful oss-fuzz
> build.
> 
> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>

I've reverted this right away, because of ...

> @@ -58,6 +58,9 @@ afl-harness: afl-harness.o $(OBJS) cpuid.o wrappers.o
>  afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) cpuid.o wrappers.o
>  	$(CC) $(CFLAGS) $(GCOV_FLAGS) $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
>  
> +libfuzzer-harness: $(OBJS) cpuid.o wrappers.o
> +	$(CC) $(CFLAGS) $(LIB_FUZZING_ENGINE) -fsanitize=fuzzer $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@

... this causing

gcc: error: unrecognized argument to '-fsanitize=' option: 'fuzzer'
make[6]: *** [Makefile:62: libfuzzer-harness] Error 1

with apparently a fair set of gcc-s used by distro-s we use for CI.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 09:58:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 09:58:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761595.1171577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVpnx-0006bw-OH; Mon, 22 Jul 2024 09:58:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761595.1171577; Mon, 22 Jul 2024 09:58: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 1sVpnx-0006bp-Lg; Mon, 22 Jul 2024 09:58:05 +0000
Received: by outflank-mailman (input) for mailman id 761595;
 Mon, 22 Jul 2024 09:58: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=QQNa=OW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sVpnw-0006bj-Cq
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 09:58:04 +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 e2a61bc8-4810-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 11:58:03 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5a10bb7b237so3329220a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 02:58:03 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5a709a74169sm2170921a12.95.2024.07.22.02.58.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 02:58: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: e2a61bc8-4810-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721642283; x=1722247083; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YVm7DrMqU9plQyYdsy1qD8Kio2Ve2OM55PL/ZaCLVRY=;
        b=tWB65NauZKmbpVoW3n6NwKfsGhRSKKrOdAQE1y/b1h86J0jHuSKxP8NgWWkbK3bp7E
         dLgdHoXNXoYZNr4D9OoPiNaVeYSwCYzTcGusoX30ZoEWleSzIVihj0q1e9li7fmBGWFn
         uY9m28qORA39CrVjVUNxbMHupsClGNFKX0EHU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721642283; x=1722247083;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YVm7DrMqU9plQyYdsy1qD8Kio2Ve2OM55PL/ZaCLVRY=;
        b=nYeR5RoG2mXRiUppDTzOr+cyX/VPbDw/ERKTc+QjpPAsiLS4sYAaSMhWrzUHM4T8kg
         lKFRG8pEHQpRyuy9nOQ7q7/+ablF+7YUNj14Re1HZpwfqk7SOprjrU624lpwqM/bQL6o
         KWlNxHkP3VPr+a6xHf+E6la3l+mNTJFuuCFaIGMmqq0r8CKFziyx4pXONuDx+Ov4CKm5
         RCWIUgBMDhZOTC+xyUyYkCfExHJPjszinGW62EWGrIXG4GuNi7lOXL9o9P8J/LdU4hh1
         zGJUrh7gKDs4F6xwqXTiQqBfLuvbz5oVzGaweat9KoGVXIs7ivQStkdWyV3q5zC7JbBy
         LzjQ==
X-Forwarded-Encrypted: i=1; AJvYcCXttoAZ2qtOcf0EL6MKGW2ZPif96yjFzeeHdJh05jHhLR3lXCOwvqNokGWxlB5/vJtiklPUshwPDUSBvi1t5g/HwRgCNTPuiJPPj5Qgu3A=
X-Gm-Message-State: AOJu0YxkXHXalcOmht3deiQKhvS13sVJLbVcGct2FxTGMmrOGwKl9qFb
	vFLVlImAREi7ymtdqW6YHqaG1KuIzrgZ1ISSLYefeiurlFHAb2Cf0cZUuuxsv1Y=
X-Google-Smtp-Source: AGHT+IHhJD5dTk0k/2bSBfBkLNvwjeagNv/1oTbU4UuXfFbvjyoxSFIP+a1DPzQjfZ6Ci1v30xzVOg==
X-Received: by 2002:a50:9fc5:0:b0:59e:f6e7:5521 with SMTP id 4fb4d7f45d1cf-5a47ab0dcd4mr3678205a12.19.1721642282610;
        Mon, 22 Jul 2024 02:58:02 -0700 (PDT)
Message-ID: <1cc4b233-adc2-4b57-babe-5a738821e642@citrix.com>
Date: Mon, 22 Jul 2024 10:57:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/6] tools/libxs: Fix length check in xs_talkv()
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-2-andrew.cooper3@citrix.com>
 <78c73bac-deb9-4e6e-8027-fb78369f695a@amd.com>
 <7d278c21-e966-4c72-9955-63287f422f79@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: <7d278c21-e966-4c72-9955-63287f422f79@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/07/2024 10:19 am, Jürgen Groß wrote:
> On 19.07.24 23:14, Jason Andryuk wrote:
>> On 2024-07-18 12:48, Andrew Cooper wrote:
>>> If the sum of iov element lengths overflows, the
>>> XENSTORE_PAYLOAD_MAX can
>>> pass, after which we'll write 4G of data with a good-looking length
>>> field, and
>>> the remainder of the payload will be interpreted as subsequent
>>> commands.
>>>
>>> Check each iov element length for XENSTORE_PAYLOAD_MAX before
>>> accmulating it.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>> CC: Juergen Gross <jgross@suse.com>
>>> ---
>>>   tools/libs/store/xs.c | 17 ++++++++++-------
>>>   1 file changed, 10 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
>>> index ec77379ab9bd..81a790cfe60f 100644
>>> --- a/tools/libs/store/xs.c
>>> +++ b/tools/libs/store/xs.c
>>> @@ -571,21 +571,24 @@ static void *xs_talkv(struct xs_handle *h,
>>> xs_transaction_t t,
>>>       struct xsd_sockmsg msg;
>>>       void *ret = NULL;
>>>       int saved_errno;
>>> -    unsigned int i;
>>> +    unsigned int i, msg_len;
>>>       struct sigaction ignorepipe, oldact;
>>>       msg.tx_id = t;
>>>       msg.req_id = 0;
>>>       msg.type = type;
>>> -    msg.len = 0;
>>> -    for (i = 0; i < num_vecs; i++)
>>> -        msg.len += iovec[i].iov_len;
>>> -    if (msg.len > XENSTORE_PAYLOAD_MAX) {
>>> -        errno = E2BIG;
>>> -        return 0;
>>> +    /* Calculate the payload length by summing iovec elements */
>>> +    for (i = 0, msg_len = 0; i < num_vecs; i++) {
>>> +        if ((iovec[i].iov_len > XENSTORE_PAYLOAD_MAX) ||
>>> +            ((msg_len += iovec[i].iov_len) > XENSTORE_PAYLOAD_MAX)) {
>>> +            errno = E2BIG;
>>> +            return 0;
>>
>> return NULL;
>>
>> With that,
>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
>
> With the suggested change:
>
> Reviewed-by: Juergen Gross <jgross@suse.com>

Thankyou both.  I'd not even spotted the mistake when just rearranging
the logic.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 10:18:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 10:18:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761606.1171595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVq7z-00017W-Mc; Mon, 22 Jul 2024 10:18:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761606.1171595; Mon, 22 Jul 2024 10: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 1sVq7z-000166-EY; Mon, 22 Jul 2024 10:18:47 +0000
Received: by outflank-mailman (input) for mailman id 761606;
 Mon, 22 Jul 2024 10: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=QQNa=OW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sVq7y-00013j-3Q
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 10:18:46 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5efc5b3-4813-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 12:18:44 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5a79df5af51so1374847a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 03:18:43 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c7e3f58sm407102766b.91.2024.07.22.03.18.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 03:18: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: c5efc5b3-4813-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721643522; x=1722248322; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/QKJsQNAmFzDOmpC8mDlS8GMG5f8sJI2cCIThV9VYDI=;
        b=aeTl2CwW/uD/WmQH+xOOyfbVHGa0eM9GJpK8uF4OvKiY5EzkYfMlJlmf4uvPx6LV2x
         YziQd+RUIWMFK/xfvAnZmmSCk27FP3vZhB/Eyq/EIvKbb5WRNMn/QPsDYj9jNuzBkRgf
         8MWk9pb4dUwV+kA8h1I9XlbJAOc0LYo1JUxvY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721643522; x=1722248322;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=/QKJsQNAmFzDOmpC8mDlS8GMG5f8sJI2cCIThV9VYDI=;
        b=Ekyevv86yvqRrN3Xwbu/ttDHLefr/qxZbNIaAF2YXlOeQkUrpAj7kaVUhUQip5d5uz
         Jp9PUQKYpyjgQC/3x2uaAZWYXZr8iRvwh/uO3BpuSTTtRba5GSb6R/wi+/rDSXgQ+X1/
         vmlQEPl2x4GdtKbBja85ZSBwGJvyDG2DhnT3VV3CrSCKyaBC18LFoVxviKyawxr22yWn
         6AREGxDZP1fvvConUir5uS56+Udq+YE+dwKbIa3PVthDZYWXd9m4150jAkmMzMoyKv3y
         klWizK7HGTXrEFOFwwE4X3VzVvnAIi8Xtjo5JcySW+AeDAtzm4o+WGDAEKk4mJk5B73a
         Qliw==
X-Gm-Message-State: AOJu0YzQJAegzmXuF/1JVg47f6kJPikXVVYYNqcr8zliFVBH2QJWUGWN
	xYZ2ML/k8LKUeIOM4MLiivW4ZOM3gFfNP+uo2lh/Lj/VEZq1OqQx3dkZDz7VNPl3tdGzVOsbAVg
	G
X-Google-Smtp-Source: AGHT+IGSmTPLcV//bA3oPlRIm1NtWI/Uwk4fSOuGpXrOYIbhVm0bLIpEbMMgGVILyLMLDgSuaAMPwg==
X-Received: by 2002:a17:906:164e:b0:a6f:e0f0:d669 with SMTP id a640c23a62f3a-a7a0f10fd8cmr1232480066b.12.1721643522651;
        Mon, 22 Jul 2024 03:18: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>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Gene Bright <gene@cyberlight.us>
Subject: [PATCH 1/2] x86/efi: Simplify efi_arch_cpu() a little
Date: Mon, 22 Jul 2024 11:18:37 +0100
Message-Id: <20240722101838.3946983-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Make the "no extended leaves" case fatal and remove one level of indentation.
Defer the max-leaf aquisition until it is first used.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
CC: Gene Bright <gene@cyberlight.us>
---
 xen/arch/x86/efi/efi-boot.h | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index f282358435f1..4e4be7174751 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -738,29 +738,30 @@ static void __init efi_arch_handle_module(const struct file *file,
 
 static void __init efi_arch_cpu(void)
 {
-    uint32_t eax = cpuid_eax(0x80000000U);
+    uint32_t eax;
     uint32_t *caps = boot_cpu_data.x86_capability;
 
     boot_tsc_stamp = rdtsc();
 
     caps[FEATURESET_1c] = cpuid_ecx(1);
 
-    if ( (eax >> 16) == 0x8000 && eax > 0x80000000U )
-    {
-        caps[FEATURESET_e1d] = cpuid_edx(0x80000001U);
+    eax = cpuid_eax(0x80000000U);
+    if ( (eax >> 16) != 0x8000 || eax < 0x80000000U )
+        blexit(L"In 64bit mode, but no extended CPUID leaves?!?");
 
-        /*
-         * This check purposefully doesn't use cpu_has_nx because
-         * cpu_has_nx bypasses the boot_cpu_data read if Xen was compiled
-         * with CONFIG_REQUIRE_NX
-         */
-        if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
-             !boot_cpu_has(X86_FEATURE_NX) )
-            blexit(L"This build of Xen requires NX support");
+    caps[FEATURESET_e1d] = cpuid_edx(0x80000001U);
 
-        if ( cpu_has_nx )
-            trampoline_efer |= EFER_NXE;
-    }
+    /*
+     * This check purposefully doesn't use cpu_has_nx because
+     * cpu_has_nx bypasses the boot_cpu_data read if Xen was compiled
+     * with CONFIG_REQUIRE_NX
+     */
+    if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
+         !boot_cpu_has(X86_FEATURE_NX) )
+        blexit(L"This build of Xen requires NX support");
+
+    if ( cpu_has_nx )
+        trampoline_efer |= EFER_NXE;
 }
 
 static void __init efi_arch_blexit(void)
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 10:18:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 10:18:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761605.1171588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVq7z-00014I-BN; Mon, 22 Jul 2024 10:18:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761605.1171588; Mon, 22 Jul 2024 10: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 1sVq7z-00014B-8F; Mon, 22 Jul 2024 10:18:47 +0000
Received: by outflank-mailman (input) for mailman id 761605;
 Mon, 22 Jul 2024 10:18: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=QQNa=OW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sVq7x-00013j-SY
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 10:18:45 +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 c5311b31-4813-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 12:18:44 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5a10835480bso3086825a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 03:18:42 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c7e3f58sm407102766b.91.2024.07.22.03.18.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 03:18: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: c5311b31-4813-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721643521; x=1722248321; 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=hIOijb8+VxrZCQ3kiEmbcZFsSDI/3noifpCHlfSSVy8=;
        b=njCJEe5kth/0qNHV5elMDWSs8tHdtGR3Jkmgf2zMC+7UNEd4mEGuAG878NpiElAz5G
         jUUs6d1Seu+UPobMrVKklPyPP5LXnSjck5aYv/S48MGxo9vBZtj1USafjs23QGbt2oJ9
         j4tKN0jNaOLulmuAYvEnc4yEKKWwLlsIlVONc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721643521; x=1722248321;
        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=hIOijb8+VxrZCQ3kiEmbcZFsSDI/3noifpCHlfSSVy8=;
        b=ZCsG+CKVvxNxptGdwaNtwoUvCIh21ZSZ50QHJOk5PX14v+Ajl+oByLFGgZyi73IIBw
         i6qupMKcG9EpE9DSSBtkZdgyLTj0Urg/Poqev/+/OrOquIqDBIfhB70//oXoxPozJSux
         3izd6ti/Ylx3skwlv3r0hUEiBUxQgys2Wxg0vsqiSLJSVS6IFioXTbmN5WlhYqyPPWfn
         M6tr5kVlfmC5jegVQFPq0QUck4SrkaNmLeGWydOXvs3i/3ddmAostrxixuKQlpDLV5JH
         m2d1bqTTf1Ivcf1BeQ4alSRltGRvZkUDR0frBum2NbKLzx0Cjkp25CckBZj/dOQ6IT1d
         x75w==
X-Gm-Message-State: AOJu0YxkqV8h36p203par07kBoFP6AsDXIcb8twmU2LHXLkH3UUMTEqr
	R5axeKlLx3hgs/uWGXaZl+VJCzv7tduTypPQTY7qZ5vL9V1NfKI7rRIfaQK62wEBip/gzFWWaNa
	j
X-Google-Smtp-Source: AGHT+IHQFA9+nh23Kw2BYNvusO2dlD42iCBpEBm8+S69mdF25IgyfOEc+PkbdFMmhpy3eltfAf0Asg==
X-Received: by 2002:a17:907:d86:b0:a77:d1ea:ab3b with SMTP id a640c23a62f3a-a7a4c010093mr404244766b.25.1721643521380;
        Mon, 22 Jul 2024 03:18:41 -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>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Gene Bright <gene@cyberlight.us>
Subject: [PATCH 0/2] x86/efi: Fix booting when NX is disabled
Date: Mon, 22 Jul 2024 11:18:36 +0100
Message-Id: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Bugfix from the XCP-ng forums.  See patch 2 for details.

Apparently the native path with NX disabled is broken too, but I've not had
any time to look into that yet.

Andrew Cooper (2):
  x86/efi: Simplify efi_arch_cpu() a little
  x86/efi: Unlock NX if necessary

 xen/arch/x86/efi/efi-boot.h | 56 +++++++++++++++++++++++++++----------
 1 file changed, 42 insertions(+), 14 deletions(-)


base-commit: ff652ed5dcd797a46c84258255dfd429ae68a2d6
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 10:18:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 10:18:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761607.1171609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVq86-0001ag-10; Mon, 22 Jul 2024 10:18:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761607.1171609; Mon, 22 Jul 2024 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 1sVq85-0001aZ-SZ; Mon, 22 Jul 2024 10:18:53 +0000
Received: by outflank-mailman (input) for mailman id 761607;
 Mon, 22 Jul 2024 10: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=QQNa=OW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sVq84-0001Ys-Jx
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 10:18:52 +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 c9dbf107-4813-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 12:18:50 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5a167b9df7eso3683921a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 03:18:50 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c7e3f58sm407102766b.91.2024.07.22.03.18.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 03:18: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: c9dbf107-4813-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721643529; x=1722248329; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3j2YYKC1Ck9c5srCq004lFLgpbvA/qrQWTg9Ql7DWDc=;
        b=GKDmbwc6Bd0CuBlZimRy1HrIpGk/haKllvw7EXAP13D8B6yu2TBf7azhC/WxMeEmp5
         lPipjfEKhxbJUE+V9wu5PpB0YPeh9zTiwIZK/6oEESZcBTJehSBEObTkDRefXc2UWbqS
         rO5J+BuCZ++ebsNzXU9Uzj4mHZpC3pPgATvfw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721643529; x=1722248329;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=3j2YYKC1Ck9c5srCq004lFLgpbvA/qrQWTg9Ql7DWDc=;
        b=vtN9g6pybvLWuaMJK0d4pf3xikdMT+V4xwec75s0Z5e4LholWoWqMXjyO2zHk5MPEm
         MV0tEX/xqmxfv7DxKh3h+qho7zNtV3HKIhJofHQvy9ac2DQaZ8f4p0zkWYQ/GjI9tg2n
         ikU2UczItI71JQZQf7hIjtYBln4bw3WjBiRkdbjEYlpL/43Ls6mxQkYQu0q6gvs1H57t
         8PUFnJEGl6/feESiwVws3HsDZ2Bgl3izwMZrsl8SpOWe5xVLNsSMWrZ+ldZfUZ83VMAe
         pDIWcZAcRs6z37e6qX+RZFVXwAj13IbfBT5dIKng2ShSl1bbTeub65F3cP/IRobTh2iV
         /2mg==
X-Gm-Message-State: AOJu0YwSttl5OkAIJd2tnwXYeExKFTbfIiqjBymlZsIRDc39dFmvk9OE
	9FYbW7a1u7R8AqGg+9Db0FSTmJRUV5T6FPrVV7JTJmaOXKSEeJyoyivx2VvCstqxxDymR9Frmph
	5
X-Google-Smtp-Source: AGHT+IFn7ltR/9GzXqf7x3jcra6jNQrGQnLhLEu7CKDQT/pKgI9IFR603+hOujlOOJ5eaQcqNZggMg==
X-Received: by 2002:a17:906:dc8f:b0:a6f:392d:51a9 with SMTP id a640c23a62f3a-a7a4bfe6b79mr464451166b.14.1721643523821;
        Mon, 22 Jul 2024 03:18:43 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Gene Bright <gene@cyberlight.us>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH 2/2] x86/efi: Unlock NX if necessary
Date: Mon, 22 Jul 2024 11:18:38 +0100
Message-Id: <20240722101838.3946983-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

EFI systems can run with NX disabled, as has been discovered on a Broadwell
Supermicro X10SRM-TF system.

Prior to commit fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the early boot
path"), the logic to unlock NX was common to all boot paths, but that commit
moved it out of the native-EFI booth path.

Have the EFI path attempt to unlock NX, rather than just blindly refusing to
boot when CONFIG_REQUIRE_NX is active.

Fixes: fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the early boot path")
Link: https://xcp-ng.org/forum/post/80520
Reported-by: Gene Bright <gene@cyberlight.us>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
CC: Gene Bright <gene@cyberlight.us>

Note.  Entirely speculative coding, based only on the forum report.
---
 xen/arch/x86/efi/efi-boot.h | 33 ++++++++++++++++++++++++++++++---
 1 file changed, 30 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 4e4be7174751..158350aa14e4 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -736,13 +736,33 @@ static void __init efi_arch_handle_module(const struct file *file,
     efi_bs->FreePool(ptr);
 }
 
+static bool __init intel_unlock_nx(void)
+{
+    uint64_t val, disable;
+
+    rdmsrl(MSR_IA32_MISC_ENABLE, val);
+
+    disable = val & MSR_IA32_MISC_ENABLE_XD_DISABLE;
+
+    if ( !disable )
+        return false;
+
+    wrmsrl(MSR_IA32_MISC_ENABLE, val & ~disable);
+    trampoline_misc_enable_off |= disable;
+
+    return true;
+}
+
 static void __init efi_arch_cpu(void)
 {
-    uint32_t eax;
+    uint32_t eax, ebx, ecx, edx;
     uint32_t *caps = boot_cpu_data.x86_capability;
 
     boot_tsc_stamp = rdtsc();
 
+    cpuid(0, &eax, &ebx, &ecx, &edx);
+    boot_cpu_data.x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
+
     caps[FEATURESET_1c] = cpuid_ecx(1);
 
     eax = cpuid_eax(0x80000000U);
@@ -752,10 +772,17 @@ static void __init efi_arch_cpu(void)
     caps[FEATURESET_e1d] = cpuid_edx(0x80000001U);
 
     /*
-     * This check purposefully doesn't use cpu_has_nx because
+     * These checks purposefully doesn't use cpu_has_nx because
      * cpu_has_nx bypasses the boot_cpu_data read if Xen was compiled
-     * with CONFIG_REQUIRE_NX
+     * with CONFIG_REQUIRE_NX.
+     *
+     * If NX isn't available, it might be hidden.  Try to reactivate it.
      */
+    if ( !boot_cpu_has(X86_FEATURE_NX) &&
+         boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+         intel_unlock_nx() )
+        caps[FEATURESET_e1d] = cpuid_edx(0x80000001U);
+
     if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
          !boot_cpu_has(X86_FEATURE_NX) )
         blexit(L"This build of Xen requires NX support");
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 10:27:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 10:27:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761630.1171618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVqGO-0003xR-QL; Mon, 22 Jul 2024 10:27:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761630.1171618; Mon, 22 Jul 2024 10:27: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 1sVqGO-0003xK-MP; Mon, 22 Jul 2024 10:27:28 +0000
Received: by outflank-mailman (input) for mailman id 761630;
 Mon, 22 Jul 2024 10:27:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVqGN-0003xA-Qq; Mon, 22 Jul 2024 10:27:27 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVqGN-0003bN-Jj; Mon, 22 Jul 2024 10:27:27 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVqGN-0007xk-3C; Mon, 22 Jul 2024 10:27:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVqGN-0007of-2i; Mon, 22 Jul 2024 10:27: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=yuGCpfkSMdUbNYVN0Sa3yM4ZUl54bk+aWQn989OmJMc=; b=vpiSJnM5k6e1I0samNEt4eX5MK
	pgpnECX6IfwCh1ptGHzCSWM2NoRY22/ENbEQCdsXoLwJ3612iM3BmqViDk2UV5DV/5jPbthI8Pash
	H5gXpJ5r5CGvBy83JbH/06tMhvbA00yHMQGVWpXsBhvdce6JPEWO7jx1kaTbqSysFUCk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186933-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186933: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e5182b40cf4bbb89292d66b8f3047a9ee913a90a
X-Osstest-Versions-That:
    xen=e5182b40cf4bbb89292d66b8f3047a9ee913a90a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Jul 2024 10:27:27 +0000

flight 186933 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186933/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186928
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186928
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186928
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186928
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186928
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186928
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e5182b40cf4bbb89292d66b8f3047a9ee913a90a
baseline version:
 xen                  e5182b40cf4bbb89292d66b8f3047a9ee913a90a

Last test of basis   186933  2024-07-22 01:53:55 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 10:44:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 10:44:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761641.1171628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVqWh-0006ea-55; Mon, 22 Jul 2024 10:44:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761641.1171628; Mon, 22 Jul 2024 10: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 1sVqWh-0006eT-2H; Mon, 22 Jul 2024 10:44:19 +0000
Received: by outflank-mailman (input) for mailman id 761641;
 Mon, 22 Jul 2024 10:44: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVqWf-0006eN-OV
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 10:44:17 +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 3e33f1d4-4817-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 12:43:33 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58ef19aa69dso2877454a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 03:43: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
 4fb4d7f45d1cf-5a30aaa253fsm5920360a12.23.2024.07.22.03.43.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 03: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: 3e33f1d4-4817-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721645013; x=1722249813; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uUJ0LhTHkPKliaHMVBuaNiS2nMMCe9pRxCR6YJM2wL8=;
        b=J7N+5Y91sRYFBkLK9PakyYboJIUEX8WbvnRkKJfkjZSRGjD5ay0F68Cs5jTZSgvSQI
         2WBdemBrJTtsKtD4S8Wee2slNOdcD2Gh/GnM40rDKJHA3iI825+1lJBfVXltRYRbVtaR
         Geis9NK4K3wurTtUreJ12xCIR5emzihQyM68PGwSssTFXgyjMSGOlJPeja8XwwsMz0Uu
         AZ1cq/yekiHs6NJq4DVuMIawSbX3DKHIWmf4u/AAeaghsFfYzJU79hNN7s0If9sF8til
         Za3vqk7eILTckkc8/JLsPbjuP3gIRCzTaytcciDFMYqRCLG957cp2kDUbDeCMlUz8WF/
         gbDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721645013; x=1722249813;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uUJ0LhTHkPKliaHMVBuaNiS2nMMCe9pRxCR6YJM2wL8=;
        b=JlQVZK01CyRVV0vjM/VbK3W9V8j2xZCWpileLSpQWHM+X5RcFkNDPFu1HY8FGgTbhL
         g90k1vSm362sefLuc5WtqBoe3lxXsUWcpN57oYPERgYa/3ZlYtL0N17qIs6AlCD1dz90
         ZuWVQAcRtb5mjkdnjOADHk8QTCHkBqeEMn0FExgnOe/OyUwm11q/qWlmP4c4vGG9+DwJ
         vEMOR8C23qmBzDV0vhJMhddvDHGnyQgsYAeAPfslO6QCyOXIHjPIqu6RO7jMgqAtZSFY
         QUv7MgQ5ziL+ru17KupIAa7lEKquKLh8F5R2WTUgVbhH7C4vS/BXO5NQgORY69/hSllQ
         hn6A==
X-Forwarded-Encrypted: i=1; AJvYcCUTisdM2oWdlxbnd0f45gFgnWl637csnm8GTS48RAojCH59xBC+gZ7V0oguns6+gLheA7up8tzTM+l6wRtNgZrpLNMp6DGiVeCKlA4owYM=
X-Gm-Message-State: AOJu0Yzz+Nld8hq+fkDUeDMAl/xB9bycrUysfFLGAVcwTFyM4D6JPY53
	a1RmE4BPFXnPE+wabXDJTQ75W0Ffz0an8NcMVTz68dmhAonfXZCeT3xzYiut2w==
X-Google-Smtp-Source: AGHT+IFyIHZ7Jde/nlBLtjXyVYXyp13+RZKGKFcRGEOHqoPquzQJ6FXDh3Bhw+yy+qdFeKIpmqkzqQ==
X-Received: by 2002:a05:6402:5111:b0:599:4d6c:d70c with SMTP id 4fb4d7f45d1cf-5a479a6e7b1mr3633869a12.8.1721645013198;
        Mon, 22 Jul 2024 03:43:33 -0700 (PDT)
Message-ID: <9123e966-1ec6-4853-b6a2-f92e21dc784c@suse.com>
Date: Mon, 22 Jul 2024 12:43:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/efi: Unlock NX if necessary
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Gene Bright <gene@cyberlight.us>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-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: <20240722101838.3946983-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.07.2024 12:18, Andrew Cooper wrote:
> EFI systems can run with NX disabled, as has been discovered on a Broadwell
> Supermicro X10SRM-TF system.
> 
> Prior to commit fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the early boot
> path"), the logic to unlock NX was common to all boot paths, but that commit
> moved it out of the native-EFI booth path.
> 
> Have the EFI path attempt to unlock NX, rather than just blindly refusing to
> boot when CONFIG_REQUIRE_NX is active.
> 
> Fixes: fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the early boot path")
> Link: https://xcp-ng.org/forum/post/80520
> Reported-by: Gene Bright <gene@cyberlight.us>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
for both patches, yet with two remarks and a nit here:

First: Cleanup in the earlier patch will get in the way of backporting
this easily. Let's hope I won't screw up.

> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -736,13 +736,33 @@ static void __init efi_arch_handle_module(const struct file *file,
>      efi_bs->FreePool(ptr);
>  }
>  
> +static bool __init intel_unlock_nx(void)
> +{
> +    uint64_t val, disable;
> +
> +    rdmsrl(MSR_IA32_MISC_ENABLE, val);
> +
> +    disable = val & MSR_IA32_MISC_ENABLE_XD_DISABLE;
> +
> +    if ( !disable )
> +        return false;
> +
> +    wrmsrl(MSR_IA32_MISC_ENABLE, val & ~disable);

The base ISA not having ANDN or NAND (and a prereq to my patch to add
minimum-ABI-level control to the build machinery still sitting there
unreviewed), using "val ^ disable" here would likely produce slightly
better code for the time being.

> @@ -752,10 +772,17 @@ static void __init efi_arch_cpu(void)
>      caps[FEATURESET_e1d] = cpuid_edx(0x80000001U);
>  
>      /*
> -     * This check purposefully doesn't use cpu_has_nx because
> +     * These checks purposefully doesn't use cpu_has_nx because

Nit: With the change to plural, switch to "don't"?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 10:52:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 10:52:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761650.1171637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVqeG-0008S4-W4; Mon, 22 Jul 2024 10:52:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761650.1171637; Mon, 22 Jul 2024 10: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 1sVqeG-0008Rx-Ss; Mon, 22 Jul 2024 10:52:08 +0000
Received: by outflank-mailman (input) for mailman id 761650;
 Mon, 22 Jul 2024 10: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVqeF-0008Rr-IR
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 10:52:07 +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 6f38f376-4818-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 12:52:05 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a77d85f7fa3so665816466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 03:52: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
 a640c23a62f3a-a7a3c8bea14sm407648466b.130.2024.07.22.03.52.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 03:52: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: 6f38f376-4818-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721645525; x=1722250325; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nwz6oyh+p7tLOp3na84SOE6EaLeHyQy7QENeZ6kL6Rg=;
        b=IKDwVDKMLNv+0XD1aYuchtNs1NgLCHvIqfowSsIXeV21VvLEt1HGxQEcZ9DUmgeZkJ
         XmwdZuOypQqPBY0HbDoAO+ilu35QQK3ij1taNY/ynclrYCiZ7MAvrzPdRs3LI7KGIyAw
         2TsxMUMhB406lahAKx7qK6MrL2Wx66iz8ukbUtJ6C6Q4vhbxkbIIGQ3qjUTKDbeBOlHL
         9NlTpXaoiruvmby1y/wBw5eiSuImd6c394+ssVY2O0OioLeaPXzEfzRIXhdNh6f1tGv9
         C14dpcz/SgOvNs6rp7Y8mUVT6ChhEQhgiXWBKLANZ9lDDTmW4NiJLXX3aG5GkA2/Z2mA
         Ha2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721645525; x=1722250325;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nwz6oyh+p7tLOp3na84SOE6EaLeHyQy7QENeZ6kL6Rg=;
        b=E5yWLk0f9dNSEJ7igG0snn+/aVKd06UBPpeLHbPXm7C0WKfJV5hvzlFby1siCqN6DL
         ScXbk1qVn6bR4Y+V1lWXq3E6un1hNW+e6bt4uiYkYJuYFTxahkHhRd3KqNVdnPgmE4uX
         lvnHATW6BjUHcpEIqd8VTIMkGs7Uhk0RVOgy1WI/4jBOOwUeV2DbFGJXpZ52RVodPPIF
         /HBzZzuuSOw1P1u/n2S3MqXr+LtIgeejqHp/W6ampq3VxctxVdGezBR+tuM9DCcQvOrg
         G8JaYA2RoFIJYoJehG9mh2BSuFbAAk6NOyrzM8JmGGRB5w6uI2k0krmLjSRN/fQ045CG
         0bBg==
X-Forwarded-Encrypted: i=1; AJvYcCWZzx+BFe4h2X6d7d/MgN1Alu1HpB4bQjp04BWtkaqzaUTzbwm5e30Y42vIhIXMZewZC+nJ2ljW0WTpf4GD/K8cJXQD3tIGlGzVHMZeqec=
X-Gm-Message-State: AOJu0YwRmZGvFwVUmdUpoQRPNFHgBBUI0GkBx3Ekv8g8T6kYWJR2WbAr
	/6QAh1bnnuXUjNZtP12ongHE/kgPh8ArVI0cAfvGJ/YmuForR4qEQIYFm8BKvQ==
X-Google-Smtp-Source: AGHT+IEHGTf9bJG0s6yJaYzxIFdWkfXN6VHbfjboMu+C4I8Q4FgikoIo2jyXWAOxcXwjl2WWOl/Ebg==
X-Received: by 2002:a17:907:da1:b0:a77:c051:36a9 with SMTP id a640c23a62f3a-a7a41aea01cmr767510166b.9.1721645524960;
        Mon, 22 Jul 2024 03:52:04 -0700 (PDT)
Message-ID: <9420cad5-703d-4236-a2c6-a9c0dae64986@suse.com>
Date: Mon, 22 Jul 2024 12:52:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 3/5] xen/riscv: introduce trap_init()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720799487.git.oleksii.kurochko@gmail.com>
 <80c02f1215d74e42fd9bc7f0d6e27d043a11b0e9.1720799487.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: <80c02f1215d74e42fd9bc7f0d6e27d043a11b0e9.1720799487.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 18:18, Oleksii Kurochko wrote:
> trap_init() wasn't declared with the __init attribute to avoid removing
> __init when multi-CPU support for Xen is added.

When you say "wasn't" one could easily take this as something you're
correcting in the patch being described. Therefore perhaps better
"isn't". Plus, as this isn't really describing the change, but just
a perhaps unexpected aspect thereof, maybe also better start with
something like "Note that ...".

> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

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

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:02:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:02:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761658.1171651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVqoG-0001wJ-S1; Mon, 22 Jul 2024 11:02:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761658.1171651; Mon, 22 Jul 2024 11: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 1sVqoG-0001wC-PX; Mon, 22 Jul 2024 11:02:28 +0000
Received: by outflank-mailman (input) for mailman id 761658;
 Mon, 22 Jul 2024 11: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVqoF-0001w6-Ai
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:02:27 +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 e0a0eaa4-4819-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 13:02:25 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a77c9d3e593so397985266b.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04: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
 a640c23a62f3a-a7a3c8c1e2asm406349166b.129.2024.07.22.04.02.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 04:02: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: e0a0eaa4-4819-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721646145; x=1722250945; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt: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/Qyihe1CLR3n1hjpSeTM+klYUGa72BEC21XM6gHDPk=;
        b=ddQrbksYpGr4SzKyfR0P/sxlcAtGRbxq3z5HP38pZdK0/Q3ofjtaPEOH94M6PJm5xL
         LqxUr7n+ed2plAJZ68L9YzUUNNeaLVdpoi18hcI4/8GOxvF7HewhmiausS57AdwSs/sk
         Q3Y10zzoq9fUk3Ar30ZBaCJVAxAiOFujxvI4WerBKh30iDjRin1RPp333U7YwTS4sShb
         l/AVKzuxOnAllQp3tzh4P8d6aSMsqvqVbDEEqbrCjJdTfLwZdY2pOetF3Sc1PwJ4Kkv4
         ao9nHge9faNiaQf7IC6YCLQ4U4FD7D4nx9jEs5EtWEtG9OnH/G6oEGsC1pnUD/4vi8O5
         ENNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721646145; x=1722250945;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references: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/Qyihe1CLR3n1hjpSeTM+klYUGa72BEC21XM6gHDPk=;
        b=pyNYBysPQuKK/lTwJ5lAIvjKAugOdFmkShfGeG5wtOQsf9l7bL9rmJeGPmszWiYwub
         nY0fJwJv/I/auJzO73RkMMm4U12w9m9/ZnOuj49qGnBg9D/W5vnN7wSIzX1UW8BzyVH3
         sEuuUt2jFqIktEeGPbUG0SIdRVVQJMeRC3C95DmRNCzWKhsQwgSlEld9WBRDANfDSExx
         fvzmJxn+JLDq1YhiL5qp0fOMmTLulo7nJOnQFOg0CcORf2ntJWy/uK/VT/lIUE2P0m6e
         q8e7Oq7b37IwN9Pih6bHK4q7f0V4vRCTeUB3/k/VcuijqkUoKnCUauX2sH4MYLttzkPR
         gCMQ==
X-Forwarded-Encrypted: i=1; AJvYcCVtcsnwBvfdjM+mkj/f/FyhJjIB42/uXz7NhAkc6QIiC58v41d3dAJCwDg+b8FtqiTfo44Y1afyeJP5ZWHtO1NZnMgJ+xoemnxdLkpLdOs=
X-Gm-Message-State: AOJu0Yw4FcU9urtkYzF2Uk5uKCfV4Kgbg1HM+3OPMZpHQswp9wkSCMTU
	x9IFTy4PyCxZ8EPNt0DRu/sds8ZDRytV4kODapKc0N6cqgfG1NJWPyqe+6XKCQ==
X-Google-Smtp-Source: AGHT+IGXVefAjZztsS5LQY0sSfZfXmHuhbmREn/g0R94pE+IoiqMjkWX2cJzgl5Ro2lnRtsDKOeEow==
X-Received: by 2002:a17:906:6a2a:b0:a77:cf9d:f498 with SMTP id a640c23a62f3a-a7a4c034e10mr389305566b.40.1721646144653;
        Mon, 22 Jul 2024 04:02:24 -0700 (PDT)
Message-ID: <5e3be451-188f-4092-a84e-1c40a5ad6b44@suse.com>
Date: Mon, 22 Jul 2024 13:02:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 4/5] xen/riscv: enable GENERIC_BUG_FRAME
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720799487.git.oleksii.kurochko@gmail.com>
 <c2bbbe2ac9f41c19f746418df324212b2e4684a5.1720799487.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: <c2bbbe2ac9f41c19f746418df324212b2e4684a5.1720799487.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 18:18, Oleksii Kurochko wrote:
> To have working BUG(), WARN(), ASSERT, run_in_exception_handler()
> it is needed to enable GENERIC_BUG_FRAME.
> 
> Also, <xen/lib.h> is needed to be included for the reason that panic() and
> printk() are used in common/bug.c and RISC-V fails if it is not included
> with the following errors:
>    common/bug.c:69:9: error: implicit declaration of function 'printk'
>    [-Werror=implicit-function-declaration]
>       69 |         printk("Xen WARN at %s%s:%d\n", prefix, filename,
>    lineno);
>          |         ^~~~~~
>    common/bug.c:77:9: error: implicit declaration of function 'panic'
>    [-Werror=implicit-function-declaration]
>       77 |         panic("Xen BUG at %s%s:%d\n", prefix, filename,
>    lineno);

I don't think the diagnostics themselves are needed here.

> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V10:
>  - put 'select GENERIC_BUG_FRAME' in "Config RISCV".
>  - rework do_trap() to not fetch an instruction in case when the cause of trap
>    is BUG_insn.

It's BUG_insn here, but then ...

> @@ -103,7 +104,29 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
>  
>  void do_trap(struct cpu_user_regs *cpu_regs)
>  {
> -    do_unexpected_trap(cpu_regs);
> +    register_t pc = cpu_regs->sepc;
> +    unsigned long cause = csr_read(CSR_SCAUSE);
> +
> +    switch ( cause )
> +    {
> +    case CAUSE_BREAKPOINT:

... BREAKPOINT here? Generally I'd deem something named "breakpoint" as
debugging related (and hence continuable). I'd have expected
CAUSE_ILLEGAL_INSTRUCTION here, but likely I'm missing something.

> +        if ( do_bug_frame(cpu_regs, pc) >= 0 )
> +        {
> +            if ( !pc ||

In how far does this really need special casing? Isn't that case covered by

> +                 !(is_kernel_text(pc + 1) || is_kernel_inittext(pc + 1)) )

... these checks anyway? And btw, why the "+ 1" in both function arguments?

> +            {
> +                printk("Something wrong with PC: 0x%lx\n", pc);

Nit: %#lx please in situations like this.

> +                die();
> +            }
> +
> +            cpu_regs->sepc += GET_INSN_LENGTH(*(uint16_t *)pc);
> +            return;

This isn't needed, is it? You'd return anyway by ...

> +        }
> +
> +        break;

.... going through here to ...

> +    default:
> +        do_unexpected_trap(cpu_regs);
> +    }
>  }

... here.

Two further nits for the default case: Please have a break statement
there as well, and please have a blank line immediately up from it.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:03:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:03:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761663.1171661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVqpA-0002QL-5C; Mon, 22 Jul 2024 11:03:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761663.1171661; Mon, 22 Jul 2024 11: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 1sVqpA-0002QE-2E; Mon, 22 Jul 2024 11:03:24 +0000
Received: by outflank-mailman (input) for mailman id 761663;
 Mon, 22 Jul 2024 11:03:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVqp9-0002Q1-Ht; Mon, 22 Jul 2024 11:03:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVqp9-0004G3-9A; Mon, 22 Jul 2024 11:03:23 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVqp8-0000NH-R6; Mon, 22 Jul 2024 11:03:22 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVqp8-0001ra-Qk; Mon, 22 Jul 2024 11:03:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Z14KLS4z6ZTPXKrgv0G6WBKPYIlmf4nRM2rVbbYQcfg=; b=6SyZoblHgFj1MowsuV+FOb/ZDV
	OAdJ3XlEYN4bc18OHjocqnGo5W3VEmRS1f4ok37YNhrHFU2FEVM8qDSWZtH0gR10LPPK5ijRXT1NY
	iPrs5k7TBcuvyqaNQbb3mW8nM/93XPpJk3TG4J4cypocvUh4qEbxOGqpsyO84oljlzhg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186935-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186935: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:build-amd64:xen-build:fail:regression
    xen-unstable-smoke:build-amd64-libvirt:build-check(1):blocked:nonblocking
    xen-unstable-smoke:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    xen-unstable-smoke:test-amd64-amd64-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c674c77f69684bfa57e3c61d6dbf404c13953f34
X-Osstest-Versions-That:
    xen=e5182b40cf4bbb89292d66b8f3047a9ee913a90a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Jul 2024 11:03:22 +0000

flight 186935 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186935/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64                   6 xen-build                fail REGR. vs. 186913

Tests which did not succeed, but are not blocking:
 build-amd64-libvirt           1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  1 build-check(1)        blocked n/a
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c674c77f69684bfa57e3c61d6dbf404c13953f34
baseline version:
 xen                  e5182b40cf4bbb89292d66b8f3047a9ee913a90a

Last test of basis   186913  2024-07-19 14:00:22 Z    2 days
Testing same since   186935  2024-07-22 08:00:25 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  George Dunlap <george.dunlap@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Sergiy Kibrik <Sergiy_Kibrik@epam.com>
  Tamas K Lengyel <tamas@tklengyel.com>
  Victor Lira <victorm.lira@amd.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  fail    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          blocked 
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    blocked 
 test-amd64-amd64-libvirt                                     blocked 


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit c674c77f69684bfa57e3c61d6dbf404c13953f34
Author: Jan Beulich <jbeulich@suse.com>
Date:   Mon Jul 22 09:41:03 2024 +0200

    x86: don't open-code [gm]fn_to_[gm]addr()
    
    At least in pure address calculation use the intended basic construct
    instead of opend-coded left-shifting by PAGE_SHIFT. Leave alone page
    table entry calculations for now, as those aren't really calculating
    addresses.
    
    No functional change.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

commit 8d5dc7d7df92d8d7f9450cee0bab57dceefa26c5
Author: Jan Beulich <jbeulich@suse.com>
Date:   Mon Jul 22 09:40:24 2024 +0200

    x86/mm: drop gfn_to_paddr()
    
    This really is gfn_to_gaddr() in disguise; no need to have two variants
    of the same logic.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

commit 0e3642514719c0659f2af44b1bbe8aba63d4a2ed
Author: Jan Beulich <jbeulich@suse.com>
Date:   Mon Jul 22 09:39:40 2024 +0200

    x86: drop REX64_PREFIX
    
    While we didn't copy the full Linux commentary, Linux commit
    7180d4fb8308 ("x86_64: Fix 64bit FXSAVE encoding") is quite explicit
    about gas 2.16 supporting FXSAVEQ / FXRSTORQ. As that's presently our
    minimal required version, we can drop the workaround that was needed for
    yet older gas.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

commit af67ae49ce8f7298bf52345558490013a9d044b3
Author: Tamas K Lengyel <tamas@tklengyel.com>
Date:   Mon Jul 22 09:38:28 2024 +0200

    Add libfuzzer target to fuzz/x86_instruction_emulator
    
    This target enables integration into oss-fuzz. Changing invalid input return
    to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding the
    missing __wrap_vsnprintf wrapper which is required for successful oss-fuzz
    build.
    
    Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit 4b09c30b0f778160523045396f7fff631a24bc1c
Author: Victor Lira <victorm.lira@amd.com>
Date:   Mon Jul 22 09:37:45 2024 +0200

    common/sched: address a violation of MISRA C Rule 8.7
    
    Rule 8.7: "Functions and objects should not be defined with external
    linkage if they are referenced in only one translation unit".
    
    This patch fixes this by adding the static specifier.
    No functional changes.
    
    Reported-by: Stewart Hildebrand stewart.hildebrand@amd.com
    Signed-off-by: Victor Lira <victorm.lira@amd.com>
    Acked-by: George Dunlap <george.dunlap@cloud.com>

commit c1059b4799d4ce3378b6722e01d66422f0b63977
Author: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Date:   Mon Jul 22 09:37:11 2024 +0200

    public/sysctl: address violations of MISRA C: 2012 Rule 7.3
    
    This addresses violations of MISRA C:2012 Rule 7.3 which states as
    following: The lowercase character `l' shall not be used in a literal
    suffix.
    
    Changed moreover suffixes 'u' in 'U' for better readability next to
    the 'L's.
    
    No functional change.
    
    Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit d3029dba8e13b36adc0a513581850bbc9b51feda
Author: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Date:   Mon Jul 22 09:36:35 2024 +0200

    x86/cpufreq: clean up stale powernow_cpufreq_init()
    
    Remove useless declaration, eliminating a MISRA C:2012 Rule 8.6
    violation: The routine itself was removed by following commit long time
    ago:
    
       222013114 x86: Fix RevF detection in powernow.c
    
    No functional change.
    
    Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>

commit 8c000b8fd3caf9c1ff615fc15429e13271b26849
Author: Juergen Gross <jgross@suse.com>
Date:   Mon Jul 22 09:36:21 2024 +0200

    SUPPORT.md: update Xen version
    
    Update the Xen version to 4.20
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Acked-by: Julien Grall <jgrall@amazon.com>

commit 7b6c1ba3b1c98dc17d076e058260167449a334b0
Author: Juergen Gross <jgross@suse.com>
Date:   Mon Jul 22 09:36:09 2024 +0200

    MAINTAINERS: drop CPU POOLS section
    
    The CPU POOLS sections in MAINTAINERS can be dropped, as the SCHEDULING
    section has the same maintainers and it is covering the CPU POOLS files
    as well.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Acked-by: Jan Beulich <jbeulich@suse.com>
    Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

commit 820034ef91675517901f48da2f26b77146b07a73
Author: Jan Beulich <jbeulich@suse.com>
Date:   Mon Jul 22 09:35:42 2024 +0200

    MAINTAINERS: drop separate x86/mm section
    
    Let the subtree fall under general x86 maintainership instead, then also
    properly reflecting Roger's role there.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Acked-by: Roger Pau Monné <roger.pau@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:03:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:03:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761669.1171672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVqpW-0002sw-DA; Mon, 22 Jul 2024 11:03:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761669.1171672; Mon, 22 Jul 2024 11: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 1sVqpW-0002sn-AH; Mon, 22 Jul 2024 11:03:46 +0000
Received: by outflank-mailman (input) for mailman id 761669;
 Mon, 22 Jul 2024 11:03:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVqpV-0002sF-4A
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:03:45 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f2341bc-481a-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 13:03:43 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-52f04150796so979485e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04:03: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
 4fb4d7f45d1cf-5a30a4d6bf8sm5941110a12.18.2024.07.22.04.03.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 04:03: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: 0f2341bc-481a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721646223; x=1722251023; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=utl5XZdwp1pLAWSJaQtWWfeUODwZdmjCm4sfCuJUjC8=;
        b=UIz1pRnp2vu8P2RXO5hFl4RA/2n67TpZzssJ0innVbJDKoxbnBHJMBlo7SkD0n00kn
         /NCX+s7xJCgzFYpAmJcl3x089/6MjtgOkhkGVE61FDCMQfkdtvtR3pvJ8rXF0WWBBN0x
         Fs6OStjy2OPJnrB/nET7S4cWd9CTj23RX9iAL+NCmkhWtxjg4zfk/4SM5C0DeMpXsQJi
         JMtoLVpuOE0CtQsPSl9ojorEshDR421TiJ3yI7om+yBWZQXDVHI+mCY68GJLccTi2Ipc
         ZAtHBXhBMXaFTn2QipR10gNZWxVEQWsQ+HyIohse8svVgs6SBKvzVVANCrDit9L7FxiL
         uGzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721646223; x=1722251023;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=utl5XZdwp1pLAWSJaQtWWfeUODwZdmjCm4sfCuJUjC8=;
        b=xMsbWZmW7ruyRlnXzWYABIBzPWGWJ7eGoXGfPMXAh+YlFset8kQpuLvyEMCBrKwdzV
         4ccna31RwgfKhjAmdg0caqmdmFYaPstOiWHMVRHwfUa5MmpX9xeaVF7KmjDUDjmzmycZ
         Of6GjjFiUBTS37ou0oVGS2SYQbDAnvrT6nfh8epJWQ2sSqYC3A00rIm2djX/YbBEPxVL
         D+GQ7fsCPrIMyC9Mu1yq5E38RI0MLR0mg1gX2eVJ20xqhLGTt/FakdK0nYXbsH4nvVT8
         UUKG+kfdjVRwIMyFsmrQrzpy7bCoTSWRm6mrHi7JSxFWGJBLE39D7ZKCdSOfiFs2dgGa
         HF9w==
X-Forwarded-Encrypted: i=1; AJvYcCVXncd3NGTGJqlio4hqLnFBukQOdHTuzteCZ68k2lSyPV5oj2xYSzeTscAXvus1DZdq+AMVaZxlTug4oe52hnj/p6kCaJ47qTq9g95suaw=
X-Gm-Message-State: AOJu0YwaUzzxXrPGahv7BvbbBgIyrAGiF9y5nklv/f5VxN4UuTNXe/w9
	sefYwWFKC+89+z8GknXAbn2+rXCf3nNgH8kHuCotAZwTT30Ke7vv/GgoYX51jvbTpjv+wzM8HFM
	=
X-Google-Smtp-Source: AGHT+IG7y5XZSCgGdLGd7R+Rm0uhb0boLZaEfLFNhBAhu/UrdcT6F6RY1UKT6DuBcZ2lxnggJmb3hQ==
X-Received: by 2002:a05:6512:31c9:b0:52c:e312:2082 with SMTP id 2adb3069b0e04-52efb810895mr4345903e87.54.1721646222726;
        Mon, 22 Jul 2024 04:03:42 -0700 (PDT)
Message-ID: <7f0ffa65-2931-4335-b926-7c16ac3e3519@suse.com>
Date: Mon, 22 Jul 2024 13:03:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/list: add LIST_HEAD_RO_AFTER_INIT
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
 <1994087de901c7520db559724ae95b2b0e1b1f5d.1721356393.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: <1994087de901c7520db559724ae95b2b0e1b1f5d.1721356393.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.07.2024 04:33, Marek Marczykowski-Górecki wrote:
> Similar to LIST_HEAD_READ_MOSTLY.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:04:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:04:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761678.1171682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVqqG-0003Xe-Qn; Mon, 22 Jul 2024 11:04:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761678.1171682; Mon, 22 Jul 2024 11:04:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVqqG-0003XX-NW; Mon, 22 Jul 2024 11:04:32 +0000
Received: by outflank-mailman (input) for mailman id 761678;
 Mon, 22 Jul 2024 11:04:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NZPk=OW=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sVqqF-0003JG-IM
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:04:31 +0000
Received: from sender3-op-o19.zoho.com (sender3-op-o19.zoho.com
 [136.143.184.19]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a20e666-481a-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 13:04:30 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1721646264130701.9093968688958;
 Mon, 22 Jul 2024 04:04:24 -0700 (PDT)
Received: by mail-yw1-f174.google.com with SMTP id
 00721157ae682-6518f8bc182so31816037b3.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04:04: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: 2a20e666-481a-11ef-bbfe-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; t=1721646267; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=bYfChJIYMFTAL/fd524NZL370JHxElCdwhu0SUHoc7exFNeksZMl8CmRJdlDqje9uWL1rBi+X5ieiPRVsXd/sjfr77GM3CraWcF8806NgeY205gv3rhTUBxBOl7BA1JDIDPVXbtfbAEs/ywlWRtpa1ZGMqs8hNW+PzQmHWKdhho=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721646267; 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=RRFgUGwRElkiYY+SRgPtLE8StffmHQQ4rv+GlixN8tM=; 
	b=bWDycgWj17LvqXPUnuPzObYOFawvN2k/s+97ujkvPDMm4QesaVtfMw63IQkzkHDmQ7vv0L3fh1T80g/S4oxKlbVgbpGsdZG8uSn/e+VaizanKcKtFW3/5AUkimXyJoOO2BlAbgAL5M5vzDvJHh/3WXeFctKYt4+6Vg1Md1YZLD0=
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=1721646267;
	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=RRFgUGwRElkiYY+SRgPtLE8StffmHQQ4rv+GlixN8tM=;
	b=NsmqbbJYjkNnPcN+qDApwjJjiqrpCAi0TnkI5/t96rHYexANG4SY9wuqSS/k+fsp
	b4va3RqpQel5dMkmbJet/sDN47IzK993kdmgsAuh1u6x8z5Eq7jh9xIzprZblEy8FW9
	vgp56/aYUI9tADix0zeVAwLHshf0hNLLPlk0kqwc=
X-Forwarded-Encrypted: i=1; AJvYcCWIOg+HxcTFusUZLXbfeuPO9xR6zeKfwBJ27r0HGxFjLHBj9Jn5qMI/L9IH/cD+DTfqwYzn1PD3IYAcw8bNSjgtAGO+DfR91QvpJDr6fI0=
X-Gm-Message-State: AOJu0YzCxOZhVsA5a7u19d6qAwrXMlShjIvB3M9pv0ttnU4NHPvB/MCc
	Rv7n56eAtSPkrnqnyyQznDS6r9o8/Qxtu32NmFQLPtqyS9n8B8dvXRHfRY8cbwsP2IdoCfH84B5
	uoRYQkBOCqYrXFH/oSldmDG6qqsY=
X-Google-Smtp-Source: AGHT+IH5I00q6Mg4pXv+8fiSKqUcfSzzLikIaaeobBMZbbFFz3dmxQfh4NkJ0vhljJ2y7eiSFjTLKlobkx7Tq0SrZ18=
X-Received: by 2002:a05:690c:87:b0:64a:445c:6 with SMTP id 00721157ae682-66a6899d2camr62978477b3.17.1721646263239;
 Mon, 22 Jul 2024 04:04:23 -0700 (PDT)
MIME-Version: 1.0
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <9991b646-2d9e-418d-a0c0-5e357766c66c@suse.com>
In-Reply-To: <9991b646-2d9e-418d-a0c0-5e357766c66c@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Mon, 22 Jul 2024 07:03:46 -0400
X-Gmail-Original-Message-ID: <CABfawhmz4hAx3JbF=XO=xuhzVrGg_+k5cdEd0Mdp0y=Cxu8v1Q@mail.gmail.com>
Message-ID: <CABfawhmz4hAx3JbF=XO=xuhzVrGg_+k5cdEd0Mdp0y=Cxu8v1Q@mail.gmail.com>
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to fuzz/x86_instruction_emulator
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@xenproject.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 22, 2024 at 5:20=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 26.06.2024 00:47, Tamas K Lengyel wrote:
> > This target enables integration into oss-fuzz. Changing invalid input r=
eturn
> > to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding =
the
> > missing __wrap_vsnprintf wrapper which is required for successful oss-f=
uzz
> > build.
> >
> > Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>
> I've reverted this right away, because of ...
>
> > @@ -58,6 +58,9 @@ afl-harness: afl-harness.o $(OBJS) cpuid.o wrappers.o
> >  afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) cpu=
id.o wrappers.o
> >       $(CC) $(CFLAGS) $(GCOV_FLAGS) $(addprefix -Wl$(comma)--wrap=3D,$(=
WRAPPED)) $^ -o $@
> >
> > +libfuzzer-harness: $(OBJS) cpuid.o wrappers.o
> > +     $(CC) $(CFLAGS) $(LIB_FUZZING_ENGINE) -fsanitize=3Dfuzzer $(addpr=
efix -Wl$(comma)--wrap=3D,$(WRAPPED)) $^ -o $@
>
> ... this causing
>
> gcc: error: unrecognized argument to '-fsanitize=3D' option: 'fuzzer'
> make[6]: *** [Makefile:62: libfuzzer-harness] Error 1
>
> with apparently a fair set of gcc-s used by distro-s we use for CI.

Well let me see if I can hack the Makefile to only build this with clang..

Tamas


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:05:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:05:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761685.1171692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVqrW-00045j-3r; Mon, 22 Jul 2024 11:05:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761685.1171692; Mon, 22 Jul 2024 11: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 1sVqrW-00045c-1F; Mon, 22 Jul 2024 11:05:50 +0000
Received: by outflank-mailman (input) for mailman id 761685;
 Mon, 22 Jul 2024 11:05: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVqrU-00045W-Vt
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:05:48 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 58eafbbe-481a-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 13:05:47 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2eeec60a324so54401891fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04:05: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-5a44cb995absm4330918a12.45.2024.07.22.04.05.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 04: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: 58eafbbe-481a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721646346; x=1722251146; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qGyR88A/hBUnz+cJs6sjjjIgO4VsY7v+pM3503uK4B4=;
        b=E+2uGM+I1JtuBsGgBcZ3ER9FYehvxD9lXwgxm00OBIRwxGGJ6DcAe5+VoioVnEwaH6
         ox3GSiCIG8EnWBuHAmBnPbvP6rLG8BwzC9KPOdA5C7LUijfoix5qtoW1t8sORcpE4wrc
         CYEq1fO2TUXTHxnCZpd0xnZOsocDHFOGMGaTWlpdBDbVYpC5DFWjUuUXlC7g0SpmnH12
         fHUWTjAEd2H0qzvaueU2RfAi4T40JfkBtfvInsxiADlm2BHaPi4ui1ANJnVYzyNr0mAO
         tmxmVSzIZXj5NmuplDep+FrolPCrIoL1Cgv23bZC/1SdPKNlrT72qILm2gZbpX5uB54i
         Nvrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721646346; x=1722251146;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qGyR88A/hBUnz+cJs6sjjjIgO4VsY7v+pM3503uK4B4=;
        b=BbMXsMPdq0giD9Z7UzSHDWqSBIji+HyA+hRyiU1oDz6Lagb0bTkMNwA1CSS/UOEYLv
         i4of7fRvshgPL88ifgYiWW15h6xJDsi+ozeQhItsf/WyoEa4jf7RIjK+XcTIYLHOXdti
         sW95wfJtW1yAem6aEzxGlTPdhMVmhnLxxNvvOO7AoCCS9nlcfUwQ/Ssh6FhRPTfhDMqS
         DIurv2TwedJtZXf6DGxDpjxuvGnH7MRCBXGubW4+bbtx8Df/mZ6/BEvKYwKtjt1Oz6bR
         0oEd8o7nSjGPZPMueJl6BcedTrhzYdQK9hUzSEtEK94N1/oALLR506bsGneJ6qb3vrhT
         mBtg==
X-Forwarded-Encrypted: i=1; AJvYcCU0AE0ODt1kT9Lc/xqx6ZzP0F+EY0VbGV3JshqcMTXsnsTJJgJwQWlUU58vBa5ITK4bZ2rayg48LUz0VxpQrtRDKtgBHfk/g17jk8Z0ono=
X-Gm-Message-State: AOJu0YzEsMXxX+lw7sbkNghwXbbbdzfPLrKcyNgKghcwg0I25nmNiQfB
	PzEclre5kuL0qOXxVRSWGhoZI1QtoBOyzr7yDtEql2vkbTxN+9Imepx9MyQk5Q==
X-Google-Smtp-Source: AGHT+IFq1JNraLbCBk5opjN1y/GiEVYtJwBG5aCTQGoQ/om1cXSxcbhZ4P8RiIdlzMUNmukdZK2UzQ==
X-Received: by 2002:a2e:b052:0:b0:2ef:20ae:d117 with SMTP id 38308e7fff4ca-2ef20aed353mr49948191fa.10.1721646346474;
        Mon, 22 Jul 2024 04:05:46 -0700 (PDT)
Message-ID: <0ae9e579-7d96-41f2-8f6b-2ee3394b3afe@suse.com>
Date: Mon, 22 Jul 2024 13:05:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to
 fuzz/x86_instruction_emulator
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <9991b646-2d9e-418d-a0c0-5e357766c66c@suse.com>
 <CABfawhmz4hAx3JbF=XO=xuhzVrGg_+k5cdEd0Mdp0y=Cxu8v1Q@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CABfawhmz4hAx3JbF=XO=xuhzVrGg_+k5cdEd0Mdp0y=Cxu8v1Q@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.07.2024 13:03, Tamas K Lengyel wrote:
> On Mon, Jul 22, 2024 at 5:20 AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 26.06.2024 00:47, Tamas K Lengyel wrote:
>>> This target enables integration into oss-fuzz. Changing invalid input return
>>> to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding the
>>> missing __wrap_vsnprintf wrapper which is required for successful oss-fuzz
>>> build.
>>>
>>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>>
>> I've reverted this right away, because of ...
>>
>>> @@ -58,6 +58,9 @@ afl-harness: afl-harness.o $(OBJS) cpuid.o wrappers.o
>>>  afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) cpuid.o wrappers.o
>>>       $(CC) $(CFLAGS) $(GCOV_FLAGS) $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
>>>
>>> +libfuzzer-harness: $(OBJS) cpuid.o wrappers.o
>>> +     $(CC) $(CFLAGS) $(LIB_FUZZING_ENGINE) -fsanitize=fuzzer $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
>>
>> ... this causing
>>
>> gcc: error: unrecognized argument to '-fsanitize=' option: 'fuzzer'
>> make[6]: *** [Makefile:62: libfuzzer-harness] Error 1
>>
>> with apparently a fair set of gcc-s used by distro-s we use for CI.
> 
> Well let me see if I can hack the Makefile to only build this with clang..

And perhaps a new enough version thereof? Or has the option been around there
forever?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:08:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:08:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761697.1171702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVqtr-00055e-Gy; Mon, 22 Jul 2024 11:08:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761697.1171702; Mon, 22 Jul 2024 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 1sVqtr-00055X-CV; Mon, 22 Jul 2024 11:08:15 +0000
Received: by outflank-mailman (input) for mailman id 761697;
 Mon, 22 Jul 2024 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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVqtq-00055R-0U
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:08:14 +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 afcefe0f-481a-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 13:08:12 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a77c9d3e593so398738766b.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04:08: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
 a640c23a62f3a-a7a7c3058f2sm47110266b.116.2024.07.22.04.08.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 04:08: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: afcefe0f-481a-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721646492; x=1722251292; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8vEJoS20U9T4zFE9PkSLs8DH9cg+4jTKrhK4jdHkx7g=;
        b=c6kMoh+7VfKst6+gf25j4Bw6WPlVTKrUcjU4ljj5Fl0+mZEOXFTUElRhNvu7h4fDUD
         0qr31Cy8x34PtNBFfWhEKBpCRTyvPe/rTR2L41VOIrtWNEgJZ+zZZoU6BbAfZ2rEt0Nl
         aMzE55NGbR/xni+EcLdWFoUwqmue/k3vCfu9e2PPg2eXqqYzuDLsRO65yyVkLTxQMl3D
         7hPoqpCXGKzSE3oJpATuTrJA3aBE4NRhmB1+gE4MnPPJMm+RwDBEIm2ggsyC7cEMhqdu
         MszB6uJkCVqTBvYNq8VF2o6WlNvJgf0WJDVNb6oQvx2tlMpTzwEb4KsCePDW1QWFlijW
         cmxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721646492; x=1722251292;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8vEJoS20U9T4zFE9PkSLs8DH9cg+4jTKrhK4jdHkx7g=;
        b=QNkP6jBwkVe1rG6kVuHLxfQEFMqlasCI7UgpRKUw6IL3YC9Q7glXjGix7hkuKkvBkl
         6zW77DCnG7GfA/VHtc2l0FpgDeMqVWcOykhx1TPN16glWQGYvTj8stVtUxN6U/Q9T3Xs
         hEJhxVhfl2tuItoYfzdhQ5w+md0gJx4OLmhDbUsEcaIBO4KhgpH95fLoO7j4E7jFXaVB
         F8uP8Qqcm4N+rpDppo6JAUPhLeinM8BU1fjK73DO8EPyvFmdyEBqxSJGIi4FKtoh0qZJ
         tZyQ31mdxyH9+QuYeUrOYlM6MK7QbeKytsZG/JbLfUjrMjUEYKAig4B2LdwgtogWH/z1
         x41g==
X-Forwarded-Encrypted: i=1; AJvYcCU71qz/5XelTTACf727/+r3PaCWsHErsjpZdf8aeIixU/lXJ1pjQ4WXuQhwVacz1cuIFKF7liZt0AIKWSgyEg6/i7LqVpmPT86/egiSXAg=
X-Gm-Message-State: AOJu0YyMLjjeJsXn0RTGbbxYFUasZxNVACq/wOQEpiqHDv4BPOdNSzpJ
	YPCHlZa32Gngn2e7kgJjrhqHOpu7mTw72JvYkvJiKEuCxMP6Z/88pvkX8lf0+A==
X-Google-Smtp-Source: AGHT+IGRj6bi42oA2rh8pqqm/CM/KGXRayt8A1Y+CbX45NTJ/JyEMBiVZ8uGyT1JpAMrjmmaYPcvzg==
X-Received: by 2002:a17:907:1b26:b0:a77:cf09:9c5f with SMTP id a640c23a62f3a-a7a4c030e1bmr485480866b.37.1721646492309;
        Mon, 22 Jul 2024 04:08:12 -0700 (PDT)
Message-ID: <f2443c6d-895b-4d9a-b397-a5158c43a73d@suse.com>
Date: Mon, 22 Jul 2024 13:08:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to
 fuzz/x86_instruction_emulator
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <9991b646-2d9e-418d-a0c0-5e357766c66c@suse.com>
 <CABfawhmz4hAx3JbF=XO=xuhzVrGg_+k5cdEd0Mdp0y=Cxu8v1Q@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CABfawhmz4hAx3JbF=XO=xuhzVrGg_+k5cdEd0Mdp0y=Cxu8v1Q@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.07.2024 13:03, Tamas K Lengyel wrote:
> On Mon, Jul 22, 2024 at 5:20 AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 26.06.2024 00:47, Tamas K Lengyel wrote:
>>> This target enables integration into oss-fuzz. Changing invalid input return
>>> to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding the
>>> missing __wrap_vsnprintf wrapper which is required for successful oss-fuzz
>>> build.
>>>
>>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>>
>> I've reverted this right away, because of ...
>>
>>> @@ -58,6 +58,9 @@ afl-harness: afl-harness.o $(OBJS) cpuid.o wrappers.o
>>>  afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) cpuid.o wrappers.o
>>>       $(CC) $(CFLAGS) $(GCOV_FLAGS) $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
>>>
>>> +libfuzzer-harness: $(OBJS) cpuid.o wrappers.o
>>> +     $(CC) $(CFLAGS) $(LIB_FUZZING_ENGINE) -fsanitize=fuzzer $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
>>
>> ... this causing
>>
>> gcc: error: unrecognized argument to '-fsanitize=' option: 'fuzzer'
>> make[6]: *** [Makefile:62: libfuzzer-harness] Error 1
>>
>> with apparently a fair set of gcc-s used by distro-s we use for CI.
> 
> Well let me see if I can hack the Makefile to only build this with clang..

Oh, and - please don't special case Clang. Instead please check for option
availability (e.g. using cc-option), such that for possible future gcc,
when support there may have been added, we'd then build it there as well.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:12:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:12:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761707.1171711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVqxX-0006Yi-VH; Mon, 22 Jul 2024 11:12:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761707.1171711; Mon, 22 Jul 2024 11: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 1sVqxX-0006Yb-SN; Mon, 22 Jul 2024 11:12:03 +0000
Received: by outflank-mailman (input) for mailman id 761707;
 Mon, 22 Jul 2024 11:12:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVqxX-0006YV-1R
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:12:03 +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 386c0b0d-481b-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 13:12:02 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5a22f09d976so4729317a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04:12: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
 a640c23a62f3a-a7a3c9230f5sm409219966b.187.2024.07.22.04.12.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 04:12: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: 386c0b0d-481b-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721646721; x=1722251521; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3A9dTe8cHsRzPksCLzlIijFJ4yJyFKya6mDRlo91Kto=;
        b=E80fEI0MUTkzQBKOpw50/RpE2Hgob24NXDJWU9kTzI/tMVECGb8rIwu4Wl6+77mZDn
         Hy3niLVI54UydB0E1cWC8l/gXFCeRrWDjf4vfLUw5E97tzicir6SJnHl7C+yr3m/tXEa
         3gZtHet1CuAyzNGVvLU4R1oLwmXTq0wjofLIwxFp7NN5V4cLFIf4e7lIAVuGwLfD02M/
         TDinPQ+W1QC8DoqpAM/ubFEUkbQNMTqDr9VLQ92gwmzIrYuzXFFqxucV10qgadCO+LpK
         xXRxeKomuz78DrD/5z7xjmyiX0rp6zX8Xx9oW0G4Maw2N2ZrKxIdI+AjlZg1Xz1P7XhF
         fPyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721646721; x=1722251521;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3A9dTe8cHsRzPksCLzlIijFJ4yJyFKya6mDRlo91Kto=;
        b=XLFDf6AB5E35e9RjD4lyOVB9sXoAMtYVvXcOsx73cBxkIqkOT8GDNQ0qUrxjl2MrQ/
         bemmc10t1FN+fYoEbZRkxbF0+li7KE+Ukm5bKT3VoBhCb4c7PUOoZgx8OnZnDV5E7QNX
         d2umddZBZJ/njxtXVkdcmog5DRscyO6HCmyHixSfE48mHEa1+6x9xP9KVvTXuYIsy0Cc
         6zyNZuG683AechRWKPc0tSm5YerJG7+cxIXJ8OQExnS/8aeyIuJ5ZzZaZSW8dvk/1RCi
         VzLO5fwfT/33l+0XEkNPzfQOA0bYV16v+GRacHFeGiyPy58junLX2RqrWHw0OBb3TyVM
         IWqA==
X-Forwarded-Encrypted: i=1; AJvYcCWXJ5NLOqqdocqKP/L3gDmx/o2cDqWsehF5D1JcIowfVBjK21NyMPY6oCe75PSsVuYIALHRXGBQlISNnfiT/5Lt218GSxXlN6shZpqHVM0=
X-Gm-Message-State: AOJu0YzXixz2SAim9MlUQ3MHI+FNWDIV2TCATHBXGhOSSQCnL68YM9oS
	CMMvM3ss4rNymaGmNd8Bcnvxt5mlbvXBkE+CD48l8Yj/TH6ZD0orBP/uGpFg2A==
X-Google-Smtp-Source: AGHT+IHrvDXmMEi49l4TAlKSugEtiCWWPVz/8L7A8I0CbavrYo1KK9ltKn3pl55BOpTXKCcTLyejAw==
X-Received: by 2002:a17:907:7285:b0:a7a:81ba:8eb3 with SMTP id a640c23a62f3a-a7a81ba9195mr14127066b.27.1721646721460;
        Mon, 22 Jul 2024 04:12:01 -0700 (PDT)
Message-ID: <5e49cddd-3185-4576-90dd-0ed089436967@suse.com>
Date: Mon, 22 Jul 2024 13:12:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 5/5] xen/riscv: test basic exception handling stuff
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720799487.git.oleksii.kurochko@gmail.com>
 <17ee34d97af4bebc87facf8576cee519ca26bf12.1720799487.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: <17ee34d97af4bebc87facf8576cee519ca26bf12.1720799487.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 18:18, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Alistair Francis <alistair.francis@wdc.com>

As to the once again empty description and as to earlier comments of mine:

> --- a/xen/arch/riscv/setup.c
> +++ b/xen/arch/riscv/setup.c
> @@ -19,6 +19,22 @@ void arch_get_xen_caps(xen_capabilities_info_t *info)
>  unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
>      __aligned(STACK_SIZE);
>  
> +#ifdef CONFIG_SELF_TESTS
> +static void test_run_in_exception(const struct cpu_user_regs *regs)
> +{
> +    printk("If you see this message, ");
> +    printk("run_in_exception_handler is most likely working\n");
> +}
> +
> +static void test_macros_from_bug_h(void)
> +{
> +    run_in_exception_handler(test_run_in_exception);
> +    WARN();
> +    printk("If you see this message, ");
> +    printk("WARN is most likely working\n");
> +}
> +#endif
> +
>  void __init noreturn start_xen(unsigned long bootcpu_id,
>                                 paddr_t dtb_addr)
>  {
> @@ -26,6 +42,10 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>  
>      trap_init();
>  
> +#ifdef CONFIG_SELF_TESTS
> +    test_macros_from_bug_h();
> +#endif
> +
>      printk("All set up\n");
>  
>      for ( ;; )

While for the moment having this may be okay, I'd like the commit itself to
clarify what the future plans here are. The latest once Xen comes up properly
on RISC-V, this is likely going to get in the way because of the noise it
causes in the log.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:28:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761717.1171725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrDE-0000t2-8x; Mon, 22 Jul 2024 11:28:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761717.1171725; Mon, 22 Jul 2024 11:28: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 1sVrDE-0000sv-5q; Mon, 22 Jul 2024 11:28:16 +0000
Received: by outflank-mailman (input) for mailman id 761717;
 Mon, 22 Jul 2024 11:28:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NZPk=OW=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sVrDD-0000sp-6Z
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:28:15 +0000
Received: from sender4-op-o15.zoho.com (sender4-op-o15.zoho.com
 [136.143.188.15]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7a2bd883-481d-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 13:28:12 +0200 (CEST)
Delivered-To: tamas@tklengyel.com
Received: by mx.zohomail.com with SMTPS id 1721647686831665.0341236552222;
 Mon, 22 Jul 2024 04:28: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: 7a2bd883-481d-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1721647687; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=j10/goW7RN7eCvke70GqEfnK0rXTWCncxuQs9C25KDmRCZaKBYaTVmdTz3rypheWfsacrPUJVC7FfaTDW740SNXeRZeljFMga8aQetwhuDiQkxiUTramlZsZ+C/svJTLQCEWFwoNhF9QschqvbDpmq8Q55idx0Ief2xpN0d8rxM=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721647687; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=HieetjExu5I7xoXlEGqeRNpSpjg7l1g9QmXoFqXatYs=; 
	b=TUgYQOwkyTPagoACQb96yuM8f5SfuvpRSj3DmTj1BgELmvpHSoOrUTj8xBfMGyJ8EdlWxmN4vKKlftWEF/ohVBV5HO8Itb0Gt7i2I3HHGfu9nrCBbyc58rerLLFUvzNw2wwyr6ym+iSh8X/8UroKmjVCnyK0oTY5mHQo2NQLy+4=
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=1721647687;
	s=zmail; d=tklengyel.com; i=tamas@tklengyel.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=HieetjExu5I7xoXlEGqeRNpSpjg7l1g9QmXoFqXatYs=;
	b=k3mW3v5tzdvHKqGExbvaMIrM8iWpiQUwhyfnihyJ4NgwBsIz2SOUx1O1MEwAJund
	Ix/fJYKX0fR0+VtOZIMMCNE4xy1meh4p7lOh9wB1JrTkLWa+hZaI9Dy5JtKi+yKsr4m
	Wmb9H5QfwogNuqx0/EbIG/+Pk7raSwKjF6zN+o64=
From: Tamas K Lengyel <tamas@tklengyel.com>
To: xen-devel@lists.xenproject.org
Cc: Tamas K Lengyel <tamas@tklengyel.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@xenproject.org>
Subject: [PATCH v3 1/2] Add libfuzzer target to fuzz/x86_instruction_emulator
Date: Mon, 22 Jul 2024 07:27:51 -0400
Message-Id: <20240722112752.4981-1-tamas@tklengyel.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This target enables integration into oss-fuzz. Changing invalid input return
to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding the
missing __wrap_vsnprintf wrapper which is required for successful oss-fuzz
build.

Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
---
v3: don't include libfuzzer-harness in target 'all' as it requires specific cc
---
 tools/fuzz/x86_instruction_emulator/Makefile    |  6 +++++-
 tools/fuzz/x86_instruction_emulator/fuzz-emul.c |  6 ++----
 tools/tests/x86_emulator/wrappers.c             | 11 +++++++++++
 3 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/tools/fuzz/x86_instruction_emulator/Makefile b/tools/fuzz/x86_instruction_emulator/Makefile
index 1e4c6b37f5..459743f4d9 100644
--- a/tools/fuzz/x86_instruction_emulator/Makefile
+++ b/tools/fuzz/x86_instruction_emulator/Makefile
@@ -58,6 +58,9 @@ afl-harness: afl-harness.o $(OBJS) cpuid.o wrappers.o
 afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) cpuid.o wrappers.o
 	$(CC) $(CFLAGS) $(GCOV_FLAGS) $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
 
+libfuzzer-harness: $(OBJS) cpuid.o wrappers.o
+	$(CC) $(CFLAGS) $(LIB_FUZZING_ENGINE) -fsanitize=fuzzer $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
+
 # Common targets
 .PHONY: all
 all: x86-insn-fuzz-all
@@ -67,7 +70,8 @@ distclean: clean
 
 .PHONY: clean
 clean:
-	rm -f *.a *.o $(DEPS_RM) afl-harness afl-harness-cov *.gcda *.gcno *.gcov
+	rm -f *.a *.o $(DEPS_RM) *.gcda *.gcno *.gcov
+	rm -f afl-harness afl-harness-cov libfuzzer-harness
 	rm -rf x86_emulate x86-emulate.c x86-emulate.h wrappers.c cpuid.c
 
 .PHONY: install
diff --git a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
index eeeb6931f4..2ba9ca9e0b 100644
--- a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
+++ b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
@@ -906,14 +906,12 @@ int LLVMFuzzerTestOneInput(const uint8_t *data_p, size_t size)
 
     if ( size <= DATA_OFFSET )
     {
-        printf("Input too small\n");
-        return 1;
+        return -1;
     }
 
     if ( size > FUZZ_CORPUS_SIZE )
     {
-        printf("Input too large\n");
-        return 1;
+        return -1;
     }
 
     memcpy(&input, data_p, size);
diff --git a/tools/tests/x86_emulator/wrappers.c b/tools/tests/x86_emulator/wrappers.c
index 3829a6f416..8f3bd1656f 100644
--- a/tools/tests/x86_emulator/wrappers.c
+++ b/tools/tests/x86_emulator/wrappers.c
@@ -91,6 +91,17 @@ int __wrap_snprintf(char *buf, size_t n, const char *fmt, ...)
     return rc;
 }
 
+int __wrap_vsnprintf(char *buf, size_t n, const char *fmt, va_list varg)
+{
+    int rc;
+
+    emul_save_fpu_state();
+    rc = __real_vsnprintf(buf, n, fmt, varg);
+    emul_restore_fpu_state();
+
+    return rc;
+}
+
 char *__wrap_strstr(const char *s1, const char *s2)
 {
     char *s;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:28:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761718.1171735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrDJ-00018Y-Hv; Mon, 22 Jul 2024 11:28:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761718.1171735; Mon, 22 Jul 2024 11:28: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 1sVrDJ-00018R-Ev; Mon, 22 Jul 2024 11:28:21 +0000
Received: by outflank-mailman (input) for mailman id 761718;
 Mon, 22 Jul 2024 11:28: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=NZPk=OW=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sVrDI-00017V-6z
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:28:20 +0000
Received: from sender4-op-o15.zoho.com (sender4-op-o15.zoho.com
 [136.143.188.15]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d1bad6c-481d-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 13:28:17 +0200 (CEST)
Delivered-To: tamas@tklengyel.com
Received: by mx.zohomail.com with SMTPS id 1721647688036704.9739603285533;
 Mon, 22 Jul 2024 04: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: 7d1bad6c-481d-11ef-bbfe-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; t=1721647689; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Oz1txnRSmEloaH62ae8tfpe+4w2xB+UVA7c71dMHvQojPPRzy3PoBJGlixjTvs1FjbvGIB2oS2YklAGGwaySzU5K3xt8d3QyN1MkXguPVERsdWKLpJG6wx8ug8IrmAzSxUCw+R0ovzO7oCBPy4E568D+kWZuZXZiJvZXudG96i8=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721647689; 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=H8WbLzVFU6oxeWmSFqmV5E6x362SRHqAKXZkjYWq2NA=; 
	b=cpyezqLOHiAdvWxUzgKYznjxZ2DsoOOzW9ozhykq4ChU3SBi0jqOTXRROglqxN9rQN7eoOYZn1LseddHlc9EU6Dy+7GfOgGHx9wBHgsr32tVKT0LzZgshRVzmecJoM4J4gHQ4NoebtvzcKzsLUtRUvPhrSo0w2bOl3UIzWFxE80=
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=1721647689;
	s=zmail; d=tklengyel.com; i=tamas@tklengyel.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=H8WbLzVFU6oxeWmSFqmV5E6x362SRHqAKXZkjYWq2NA=;
	b=AXiBH7Jn0A+7dCQk2zN2heOpZqLxMELEgafsxqAePHwTSrXb+9huRnUmbs8AGwDk
	H5BeloeTOzEMqblhEzRg1FCotUJsO+dx1RxFRz7YIZx5ZeUxOsK1Ezv4U5eJgaQC/gs
	eDoSg8COYPjqGyINYhygyWZAdSdsfWRmmbGLUX6c=
From: Tamas K Lengyel <tamas@tklengyel.com>
To: xen-devel@lists.xenproject.org
Cc: Tamas K Lengyel <tamas@tklengyel.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>
Subject: [PATCH v3 2/2] Add tools/fuzz/oss-fuzz/build.sh
Date: Mon, 22 Jul 2024 07:27:52 -0400
Message-Id: <20240722112752.4981-2-tamas@tklengyel.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20240722112752.4981-1-tamas@tklengyel.com>
References: <20240722112752.4981-1-tamas@tklengyel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The build integration script for oss-fuzz targets. Future fuzzing targets can
be added to this script and those targets will be automatically picked up by
oss-fuzz without having to open separate PRs on the oss-fuzz repo.

Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
---
v3: Add Apache-2.0 to LICENSES and use only SPDX on script
---
 LICENSES/Apache-2.0          | 202 +++++++++++++++++++++++++++++++++++
 tools/fuzz/oss-fuzz/build.sh |  11 ++
 2 files changed, 213 insertions(+)
 create mode 100644 LICENSES/Apache-2.0
 create mode 100755 tools/fuzz/oss-fuzz/build.sh

diff --git a/LICENSES/Apache-2.0 b/LICENSES/Apache-2.0
new file mode 100644
index 0000000000..d645695673
--- /dev/null
+++ b/LICENSES/Apache-2.0
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/tools/fuzz/oss-fuzz/build.sh b/tools/fuzz/oss-fuzz/build.sh
new file mode 100755
index 0000000000..08eeb66e4c
--- /dev/null
+++ b/tools/fuzz/oss-fuzz/build.sh
@@ -0,0 +1,11 @@
+#!/bin/bash -eu
+# Copyright 2024 Google LLC
+# SPDX-License-Identifier: Apache-2.0
+
+# This script is intended to be run only from the oss-fuzz docker framework
+# See https://google.github.io/oss-fuzz/getting-started/new-project-guide/#buildsh
+cd xen
+./configure --disable-stubdom --disable-pvshim --disable-docs --disable-xen --with-system-qemu
+make clang=y -C tools/include
+make clang=y -C tools/fuzz/x86_instruction_emulator libfuzzer-harness
+cp tools/fuzz/x86_instruction_emulator/libfuzzer-harness $OUT/x86_instruction_emulator
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:29:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:29:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761732.1171744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrEm-0001zL-SN; Mon, 22 Jul 2024 11:29:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761732.1171744; Mon, 22 Jul 2024 11: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 1sVrEm-0001zE-Pn; Mon, 22 Jul 2024 11:29:52 +0000
Received: by outflank-mailman (input) for mailman id 761732;
 Mon, 22 Jul 2024 11: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=NZPk=OW=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sVrEl-0001sD-3Z
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:29:51 +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 b44589ca-481d-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 13:29:50 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1721647786922227.313170722608;
 Mon, 22 Jul 2024 04:29:46 -0700 (PDT)
Received: by mail-yb1-f175.google.com with SMTP id
 3f1490d57ef6-e05ed8a5526so3989729276.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04:29: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: b44589ca-481d-11ef-bbfe-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; t=1721647787; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=RPbaq0QGBv4pzg43N5aqrhAg6/w7FWKNA8UeaUWj5Ked4PcDn7bXnI5JnBdj04+IJN052kNnaIaoL4EFrADxRmYX4irnrdbqGGRENRkDtnxbv18kJv/gEw2GDHaP+AebL6MItiWQgw07YfiR9eh4ALsZ+CvQa0TSqRNpF+Z3AdQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721647787; 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=tVYh9BoBALaOeAAhFsZTQGuOLRwufhhqKEnFtZLE2u0=; 
	b=GxVCBqIlr8nNTXqHAhlPR7dywC2Jxe0rSvF1kXIkqp8OZ4lVPktJ2585Kl/VfKlCEoX7hwE+Uaiut7Lfp66w4ItFVV4iuuGFlAcMd6jRMz4UGb1UFHBT0G6Dt3MeS4fvhV2yW7fsw8Sx2ub2UoPJKAnVTimm2VjK40qZ83Voir4=
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=1721647787;
	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=tVYh9BoBALaOeAAhFsZTQGuOLRwufhhqKEnFtZLE2u0=;
	b=gSGtM9ReI7zdHSurKKr2DgITzWI7XcnEt0gZArwHwpxUVdGFCfhyuu6JptHAIQqr
	jLOdg3ox2CpWMT2zlTp9U/q/HokNRCOk04z3NeyE8+gV8guYZFG22eGUHpMN5cDPWq9
	iaI8B7+zldGgmozbTVCg3hYH3nKwkEDdT06vX6DE=
X-Forwarded-Encrypted: i=1; AJvYcCULQ1j/zGWVTnXGInBwlpYXDOIPyFg/QS7dNOsTx7wVUlOQ7sJLr7wtJxr9l8qEt0qsME8PJvAL5Fawo2ahy1GAzQioBr4k1RuWuwD0C0U=
X-Gm-Message-State: AOJu0YwhL9Cu5NDPefZ29BKoPQcOKe13/ndejH3YEYJ4qTqRlWDtZdac
	BoQQHfxGBBVHpXyUshcxNQNiTbJpUxnqCCXUrhMTWiJatPTWVh2tugU1BKCTcB0GshBJHljD1Cr
	RUDkLt+IfnGY2SUZGH2I0UAA9slY=
X-Google-Smtp-Source: AGHT+IHVw1mEeX2RM4oY/iUVxWCHoErDOK0m40W548ZCmrEu4iMH0Yh3KPhjXESNZUE/H/tUt8Mtib8cHkosHr95Mm8=
X-Received: by 2002:a05:6902:1b0a:b0:e02:8f64:5010 with SMTP id
 3f1490d57ef6-e087b324cc6mr5843086276.14.1721647786121; Mon, 22 Jul 2024
 04:29:46 -0700 (PDT)
MIME-Version: 1.0
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <9991b646-2d9e-418d-a0c0-5e357766c66c@suse.com> <CABfawhmz4hAx3JbF=XO=xuhzVrGg_+k5cdEd0Mdp0y=Cxu8v1Q@mail.gmail.com>
 <f2443c6d-895b-4d9a-b397-a5158c43a73d@suse.com>
In-Reply-To: <f2443c6d-895b-4d9a-b397-a5158c43a73d@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Mon, 22 Jul 2024 07:29:09 -0400
X-Gmail-Original-Message-ID: <CABfawhnzEZw7koBxaCVJmUT=8eLPc78id+Qnuy_x-H+e0tD7ng@mail.gmail.com>
Message-ID: <CABfawhnzEZw7koBxaCVJmUT=8eLPc78id+Qnuy_x-H+e0tD7ng@mail.gmail.com>
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to fuzz/x86_instruction_emulator
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@xenproject.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 22, 2024 at 7:08=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 22.07.2024 13:03, Tamas K Lengyel wrote:
> > On Mon, Jul 22, 2024 at 5:20=E2=80=AFAM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >>
> >> On 26.06.2024 00:47, Tamas K Lengyel wrote:
> >>> This target enables integration into oss-fuzz. Changing invalid input=
 return
> >>> to -1 as values other then 0/-1 are reserved by libfuzzer. Also addin=
g the
> >>> missing __wrap_vsnprintf wrapper which is required for successful oss=
-fuzz
> >>> build.
> >>>
> >>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> >>
> >> I've reverted this right away, because of ...
> >>
> >>> @@ -58,6 +58,9 @@ afl-harness: afl-harness.o $(OBJS) cpuid.o wrappers=
.o
> >>>  afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) c=
puid.o wrappers.o
> >>>       $(CC) $(CFLAGS) $(GCOV_FLAGS) $(addprefix -Wl$(comma)--wrap=3D,=
$(WRAPPED)) $^ -o $@
> >>>
> >>> +libfuzzer-harness: $(OBJS) cpuid.o wrappers.o
> >>> +     $(CC) $(CFLAGS) $(LIB_FUZZING_ENGINE) -fsanitize=3Dfuzzer $(add=
prefix -Wl$(comma)--wrap=3D,$(WRAPPED)) $^ -o $@
> >>
> >> ... this causing
> >>
> >> gcc: error: unrecognized argument to '-fsanitize=3D' option: 'fuzzer'
> >> make[6]: *** [Makefile:62: libfuzzer-harness] Error 1
> >>
> >> with apparently a fair set of gcc-s used by distro-s we use for CI.
> >
> > Well let me see if I can hack the Makefile to only build this with clan=
g..
>
> Oh, and - please don't special case Clang. Instead please check for optio=
n
> availability (e.g. using cc-option), such that for possible future gcc,
> when support there may have been added, we'd then build it there as well.

I decided to just not include the libfuzzer harness in the default 'all' ta=
rget.

Tamas


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:32:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:32:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761739.1171754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrHa-0003TA-8o; Mon, 22 Jul 2024 11:32:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761739.1171754; Mon, 22 Jul 2024 11:32: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 1sVrHa-0003T3-5p; Mon, 22 Jul 2024 11:32:46 +0000
Received: by outflank-mailman (input) for mailman id 761739;
 Mon, 22 Jul 2024 11:32: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVrHY-0003Sh-LR
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:32:44 +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 1c4c0402-481e-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 13:32:43 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5a3458bf7cfso3098383a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04:32: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
 4fb4d7f45d1cf-5a30a4d7127sm6035970a12.3.2024.07.22.04.32.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 04:32: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: 1c4c0402-481e-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721647963; x=1722252763; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Vcz0HU9cQX11mjByUwT1ZGipDFaqZDDyUilfPThVEog=;
        b=cOa53ychAe3PjTYCKPiidl/INWXRDbgD/qWdoUxaXaAuGFgiItlpWwSi9pTcLK0PVv
         LmtgqL9AQO7l05A3TPfGAdFYo+zFaUEuN2JS/1x/vxKcvL3sQega9YR539nmUiqQSuYO
         rpR3iB7CyPJVcZ4283V99aZDZUn07GnSBn5e6BoaFM4oaxU3q0mTOunAFQxPRUsK8S9U
         J8Idq5zr0dHq0ZRMtscF6fb+AfYmRiEa1AmdUV9EciqNuFh3F0ltcQfM+dPqLDtXtsW9
         eXObnG0BifEG194oxgm0oKwXQ5QJU6H/oSlitQLurkWpXjGXurYFd4bu2ED1I2VqT4RD
         OpPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721647963; x=1722252763;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Vcz0HU9cQX11mjByUwT1ZGipDFaqZDDyUilfPThVEog=;
        b=vSn75QuKoKWL9/XEyg6VeRkDnNKcsEcQpdj9oJu2uPfbnr9gm+pHLx+7RGGshPXEd3
         llAo+VVQMCllYINLqSZcsjCTAMSMsXtaG/0tNqVedYZLluSI9t3VdsOuQV0EXp14BRhY
         ieLAcTaWIuHk6VYBblZU/12g4rao4ZXlp5Z5qTPV/mq1Oc83S2hTwYB3x3JQI2v2yGwT
         DHvMpojsAm7W3XQH1rURgJnYHHohZ6zZYLdKwY4+6ywR1xA0C+/jQcYiZGvq505cAm01
         B2BeyUiPHAuK4Vsvn8me2+avW6h7QJocS99uNb4aFFPH+ggfRIWNgulsvZdG/cwlZnBJ
         nqPg==
X-Forwarded-Encrypted: i=1; AJvYcCVlIUC6s9vl66jWGXXsAW/wVtm7PAWY7iYUrTm3krRImfw38Sm4LQbWtyp06TlG2bHBK/2jHJMo1n7nMz1bzKa90CoibobxKdVq+f6nq28=
X-Gm-Message-State: AOJu0YyqpGN7T6CTsGp+TGYL7VE+320e6NSg3qdwe6xTe0KFHAU+gLc/
	X2tPkLRhAmDaMQ1ITAirp1eCK8NO6Twj82pj0oR41WI20FqrHACpGgSUbZNb2w==
X-Google-Smtp-Source: AGHT+IHgeCNr1x3U1wbeLTY3HiAs5/Fd9pNTlAGKAPV1MvJQqzmV7YqpzdehYYww9c0s5B0Sz86fOw==
X-Received: by 2002:a05:6402:5305:b0:5a2:1f7b:e017 with SMTP id 4fb4d7f45d1cf-5a479879f59mr4287562a12.4.1721647962697;
        Mon, 22 Jul 2024 04:32:42 -0700 (PDT)
Message-ID: <89aab1e5-c2c5-4ff2-b423-c35a316f001e@suse.com>
Date: Mon, 22 Jul 2024 13:32:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: PE/COFF image header
To: Milan Djokic <milandjokic1995@gmail.com>
Cc: oleksii.kurochko@gmail.com, Nikola Jelic <nikola.jelic@rt-rk.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Milan Djokic <milan.djokic@rt-rk.com>,
 xen-devel@lists.xenproject.org
References: <2b747d672eeadc1150d3b84f0303e1d288311133.1721391876.git.milan.djokic@rt-rk.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2b747d672eeadc1150d3b84f0303e1d288311133.1721391876.git.milan.djokic@rt-rk.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.07.2024 14:31, Milan Djokic wrote:
> --- /dev/null
> +++ b/xen/include/efi/pe.h
> @@ -0,0 +1,485 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright 2011 Red Hat, Inc.
> + * All rights reserved.
> + *
> + * Author(s): Peter Jones <pjones@redhat.com>
> + */
> +#ifndef __LINUX_PE_H
> +#define __LINUX_PE_H

LINUX? It'll want to be EFI__PE_H according to our new naming scheme, if I'm
not mistaken. (The commit describing the the new scheme is yet to appear,
unfortunately.)

> +#include <xen/types.h>
> +
> +/*
> + * Starting from version v3.0, the major version field should be interpreted as
> + * a bit mask of features supported by the kernel's EFI stub:
> + * - 0x1: initrd loading from the LINUX_EFI_INITRD_MEDIA_GUID device path,
> + * - 0x2: initrd loading using the initrd= command line option, where the file
> + *        may be specified using device path notation, and is not required to
> + *        reside on the same volume as the loaded kernel image.
> + *
> + * The recommended way of loading and starting v1.0 or later kernels is to use
> + * the LoadImage() and StartImage() EFI boot services, and expose the initrd
> + * via the LINUX_EFI_INITRD_MEDIA_GUID device path.
> + *
> + * Versions older than v1.0 may support initrd loading via the image load
> + * options (using initrd=, limited to the volume from which the kernel itself
> + * was loaded), or only via arch specific means (bootparams, DT, etc).
> + *
> + * The minor version field must remain 0x0.
> + * (https://lore.kernel.org/all/efd6f2d4-547c-1378-1faa-53c044dbd297@gmail.com/)
> + */
> +#define LINUX_EFISTUB_MAJOR_VERSION 0x3
> +#define LINUX_EFISTUB_MINOR_VERSION 0x0

What does this describe? Do we need this at all?

> +/*
> + * LINUX_PE_MAGIC appears at offset 0x38 into the MS-DOS header of EFI bootable
> + * Linux kernel images that target the architecture as specified by the PE/COFF
> + * header machine type field.
> + */
> +#define LINUX_PE_MAGIC 0x818223cd

Here at least it is largely clear what's being described; the question whether
we actually need it applies here too, though.

> +#define MZ_MAGIC 0x5a4d /* "MZ" */
> +
> +#define PE_MAGIC              0x00004550 /* "PE\0\0" */
> +#define PE_OPT_MAGIC_PE32     0x010b
> +#define PE_OPT_MAGIC_PE32_ROM 0x0107
> +#define PE_OPT_MAGIC_PE32PLUS 0x020b
> +
> +#define PECOFF_SECTION_ALIGNMENT 0x1000
> +#define PECOFF_FILE_ALIGNMENT    0x200

I can't spot anything like that in the Linux header, and these two values
are also dynamic (values live in header fields), not build-time constant.

> +/* machine type */
> +#define IMAGE_FILE_MACHINE_UNKNOWN     0x0000
> +#define IMAGE_FILE_MACHINE_AM33        0x01d3
> +#define IMAGE_FILE_MACHINE_AMD64       0x8664
> +#define IMAGE_FILE_MACHINE_ARM         0x01c0
> +#define IMAGE_FILE_MACHINE_ARMV7       0x01c4
> +#define IMAGE_FILE_MACHINE_ARM64       0xaa64
> +#define IMAGE_FILE_MACHINE_EBC         0x0ebc
> +#define IMAGE_FILE_MACHINE_I386        0x014c
> +#define IMAGE_FILE_MACHINE_IA64        0x0200
> +#define IMAGE_FILE_MACHINE_M32R        0x9041
> +#define IMAGE_FILE_MACHINE_MIPS16      0x0266
> +#define IMAGE_FILE_MACHINE_MIPSFPU     0x0366
> +#define IMAGE_FILE_MACHINE_MIPSFPU16   0x0466
> +#define IMAGE_FILE_MACHINE_POWERPC     0x01f0
> +#define IMAGE_FILE_MACHINE_POWERPCFP   0x01f1
> +#define IMAGE_FILE_MACHINE_R4000       0x0166
> +#define IMAGE_FILE_MACHINE_RISCV32     0x5032
> +#define IMAGE_FILE_MACHINE_RISCV64     0x5064
> +#define IMAGE_FILE_MACHINE_RISCV128    0x5128
> +#define IMAGE_FILE_MACHINE_SH3         0x01a2
> +#define IMAGE_FILE_MACHINE_SH3DSP      0x01a3
> +#define IMAGE_FILE_MACHINE_SH3E        0x01a4
> +#define IMAGE_FILE_MACHINE_SH4         0x01a6
> +#define IMAGE_FILE_MACHINE_SH5         0x01a8
> +#define IMAGE_FILE_MACHINE_THUMB       0x01c2
> +#define IMAGE_FILE_MACHINE_WCEMIPSV2   0x0169
> +#define IMAGE_FILE_MACHINE_LOONGARCH32 0x6232
> +#define IMAGE_FILE_MACHINE_LOONGARCH64 0x6264
> +
> +/* flags */
> +#define IMAGE_FILE_RELOCS_STRIPPED         0x0001
> +#define IMAGE_FILE_EXECUTABLE_IMAGE        0x0002
> +#define IMAGE_FILE_LINE_NUMS_STRIPPED      0x0004
> +#define IMAGE_FILE_LOCAL_SYMS_STRIPPED     0x0008
> +#define IMAGE_FILE_AGGRESSIVE_WS_TRIM      0x0010
> +#define IMAGE_FILE_LARGE_ADDRESS_AWARE     0x0020
> +#define IMAGE_FILE_16BIT_MACHINE           0x0040
> +#define IMAGE_FILE_BYTES_REVERSED_LO       0x0080
> +#define IMAGE_FILE_32BIT_MACHINE           0x0100
> +#define IMAGE_FILE_DEBUG_STRIPPED          0x0200
> +#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
> +#define IMAGE_FILE_NET_RUN_FROM_SWAP       0x0800
> +#define IMAGE_FILE_SYSTEM                  0x1000
> +#define IMAGE_FILE_DLL                     0x2000
> +#define IMAGE_FILE_UP_SYSTEM_ONLY          0x4000
> +#define IMAGE_FILE_BYTES_REVERSED_HI       0x8000
> +
> +#define IMAGE_FILE_OPT_ROM_MAGIC       0x107
> +#define IMAGE_FILE_OPT_PE32_MAGIC      0x10b
> +#define IMAGE_FILE_OPT_PE32_PLUS_MAGIC 0x20b

These values exist further up already, under different names.

> +#define IMAGE_SUBSYSTEM_UNKNOWN                 0
> +#define IMAGE_SUBSYSTEM_NATIVE                  1
> +#define IMAGE_SUBSYSTEM_WINDOWS_GUI             2
> +#define IMAGE_SUBSYSTEM_WINDOWS_CUI             3
> +#define IMAGE_SUBSYSTEM_POSIX_CUI               7
> +#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI          9
> +#define IMAGE_SUBSYSTEM_EFI_APPLICATION         10
> +#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
> +#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
> +#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE           13
> +#define IMAGE_SUBSYSTEM_XBOX                    14
> +
> +#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         0x0040
> +#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      0x0080
> +#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            0x0100
> +#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          0x0200
> +#define IMAGE_DLLCHARACTERISTICS_NO_SEH                0x0400
> +#define IMAGE_DLLCHARACTERISTICS_NO_BIND               0x0800
> +#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            0x2000
> +#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
> +
> +#define IMAGE_DLLCHARACTERISTICS_EX_CET_COMPAT         0x0001
> +#define IMAGE_DLLCHARACTERISTICS_EX_FORWARD_CFI_COMPAT 0x0040
> +
> +/* they actually defined 0x00000000 as well, but I think we'll skip that one. */
> +#define IMAGE_SCN_RESERVED_0             0x00000001
> +#define IMAGE_SCN_RESERVED_1             0x00000002
> +#define IMAGE_SCN_RESERVED_2             0x00000004
> +#define IMAGE_SCN_TYPE_NO_PAD            0x00000008 /* don't pad - obsolete */
> +#define IMAGE_SCN_RESERVED_3             0x00000010
> +#define IMAGE_SCN_CNT_CODE               0x00000020 /* .text */
> +#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040 /* .data */
> +#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* .bss */
> +#define IMAGE_SCN_LNK_OTHER              0x00000100 /* reserved */
> +#define IMAGE_SCN_LNK_INFO               0x00000200 /* .drectve comments */
> +#define IMAGE_SCN_RESERVED_4             0x00000400
> +#define IMAGE_SCN_LNK_REMOVE             0x00000800 /* .o only - scn to be rm'd*/
> +#define IMAGE_SCN_LNK_COMDAT             0x00001000 /* .o only - COMDAT data */
> +#define IMAGE_SCN_RESERVED_5             0x00002000 /* spec omits this */
> +#define IMAGE_SCN_RESERVED_6             0x00004000 /* spec omits this */
> +#define IMAGE_SCN_GPREL                  0x00008000 /* global pointer referenced data */
> +/* spec lists 0x20000 twice, I suspect they meant 0x10000 for one of them */
> +#define IMAGE_SCN_MEM_PURGEABLE 0x00010000 /* reserved for "future" use */
> +#define IMAGE_SCN_16BIT         0x00020000 /* reserved for "future" use */
> +#define IMAGE_SCN_LOCKED        0x00040000 /* reserved for "future" use */
> +#define IMAGE_SCN_PRELOAD       0x00080000 /* reserved for "future" use */
> +/* and here they just stuck a 1-byte integer in the middle of a bitfield */

Can this please be corrected to "1-nibble"?

> +#define IMAGE_SCN_ALIGN_1BYTES    0x00100000 /* it does what it says on the box */
> +#define IMAGE_SCN_ALIGN_2BYTES    0x00200000
> +#define IMAGE_SCN_ALIGN_4BYTES    0x00300000
> +#define IMAGE_SCN_ALIGN_8BYTES    0x00400000
> +#define IMAGE_SCN_ALIGN_16BYTES   0x00500000
> +#define IMAGE_SCN_ALIGN_32BYTES   0x00600000
> +#define IMAGE_SCN_ALIGN_64BYTES   0x00700000
> +#define IMAGE_SCN_ALIGN_128BYTES  0x00800000
> +#define IMAGE_SCN_ALIGN_256BYTES  0x00900000
> +#define IMAGE_SCN_ALIGN_512BYTES  0x00a00000
> +#define IMAGE_SCN_ALIGN_1024BYTES 0x00b00000
> +#define IMAGE_SCN_ALIGN_2048BYTES 0x00c00000
> +#define IMAGE_SCN_ALIGN_4096BYTES 0x00d00000
> +#define IMAGE_SCN_ALIGN_8192BYTES 0x00e00000
> +#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* extended relocations */
> +#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 /* scn can be discarded */
> +#define IMAGE_SCN_MEM_NOT_CACHED  0x04000000 /* cannot be cached */
> +#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000 /* not pageable */
> +#define IMAGE_SCN_MEM_SHARED      0x10000000 /* can be shared */
> +#define IMAGE_SCN_MEM_EXECUTE     0x20000000 /* can be executed as code */
> +#define IMAGE_SCN_MEM_READ        0x40000000 /* readable */
> +#define IMAGE_SCN_MEM_WRITE       0x80000000 /* writeable */
> +
> +#define IMAGE_DEBUG_TYPE_CODEVIEW              2
> +#define IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS 20
> +
> +#ifndef __ASSEMBLY__
> +
> +struct mz_hdr {
> +    uint16_t magic;              /* MZ_MAGIC */
> +    uint16_t lbsize;             /* size of last used block */
> +    uint16_t blocks;             /* pages in file, 0x3 */
> +    uint16_t relocs;             /* relocations */
> +    uint16_t hdrsize;            /* header size in "paragraphs" */
> +    uint16_t min_extra_pps;      /* .bss */
> +    uint16_t max_extra_pps;      /* runtime limit for the arena size */
> +    uint16_t ss;                 /* relative stack segment */
> +    uint16_t sp;                 /* initial %sp register */
> +    uint16_t checksum;           /* word checksum */
> +    uint16_t ip;                 /* initial %ip register */
> +    uint16_t cs;                 /* initial %cs relative to load segment */
> +    uint16_t reloc_table_offset; /* offset of the first relocation */
> +    uint16_t overlay_num;        /* overlay number.  set to 0. */
> +    uint16_t reserved0[4];       /* reserved */
> +    uint16_t oem_id;             /* oem identifier */
> +    uint16_t oem_info;           /* oem specific */
> +    uint16_t reserved1[10];      /* reserved */
> +    uint32_t peaddr;             /* address of pe header */

Preferably s/address/file offset/ here, no matter that Linux has "address"
there. I also think that it would be nice to have PE in upper case here.

> +    char     message[];          /* message to print */
> +};
> +
> +struct mz_reloc {
> +    uint16_t offset;
> +    uint16_t segment;
> +};
> +
> +struct pe_hdr {
> +    uint32_t magic;        /* PE magic */
> +    uint16_t machine;      /* machine type */
> +    uint16_t sections;     /* number of sections */
> +    uint32_t timestamp;    /* time_t */
> +    uint32_t symbol_table; /* symbol table offset */
> +    uint32_t symbols;      /* number of symbols */
> +    uint16_t opt_hdr_size; /* size of optional header */
> +    uint16_t flags;        /* flags */
> +};
> +
> +/* the fact that pe32 isn't padded where pe32+ is 64-bit means union won't
> + * work right. vomit.
> + */

Please adjust comment style and preferably omit the swear word.

> +struct pe32_opt_hdr {
> +    /* "standard" header */
> +    uint16_t magic;       /* file type */
> +    uint8_t  ld_major;    /* linker major version */
> +    uint8_t  ld_minor;    /* linker minor version */
> +    uint32_t text_size;   /* size of text section(s) */
> +    uint32_t data_size;   /* size of data section(s) */
> +    uint32_t bss_size;    /* size of bss section(s) */
> +    uint32_t entry_point; /* file offset of entry point */
> +    uint32_t code_base;   /* relative code addr in ram */
> +    uint32_t data_base;   /* relative data addr in ram */
> +    /* "windows" header */
> +    uint32_t image_base;     /* preferred load address */
> +    uint32_t section_align;  /* alignment in bytes */
> +    uint32_t file_align;     /* file alignment in bytes */
> +    uint16_t os_major;       /* major OS version */
> +    uint16_t os_minor;       /* minor OS version */
> +    uint16_t image_major;    /* major image version */
> +    uint16_t image_minor;    /* minor image version */
> +    uint16_t subsys_major;   /* major subsystem version */
> +    uint16_t subsys_minor;   /* minor subsystem version */
> +    uint32_t win32_version;  /* reserved, must be 0 */
> +    uint32_t image_size;     /* image size */
> +    uint32_t header_size;    /* header size rounded up to file_align */
> +    uint32_t csum;           /* checksum */
> +    uint16_t subsys;         /* subsystem */
> +    uint16_t dll_flags;      /* more flags! */
> +    uint32_t stack_size_req; /* amt of stack requested */
> +    uint32_t stack_size;     /* amt of stack required */
> +    uint32_t heap_size_req;  /* amt of heap requested */
> +    uint32_t heap_size;      /* amt of heap required */
> +    uint32_t loader_flags;   /* reserved, must be 0 */
> +    uint32_t data_dirs;      /* number of data dir entries */
> +};
> +
> +struct pe32plus_opt_hdr {
> +    uint16_t magic;       /* file type */
> +    uint8_t  ld_major;    /* linker major version */
> +    uint8_t  ld_minor;    /* linker minor version */
> +    uint32_t text_size;   /* size of text section(s) */
> +    uint32_t data_size;   /* size of data section(s) */
> +    uint32_t bss_size;    /* size of bss section(s) */
> +    uint32_t entry_point; /* file offset of entry point */
> +    uint32_t code_base;   /* relative code addr in ram */
> +    /* "windows" header */
> +    uint64_t image_base;     /* preferred load address */
> +    uint32_t section_align;  /* alignment in bytes */
> +    uint32_t file_align;     /* file alignment in bytes */
> +    uint16_t os_major;       /* major OS version */
> +    uint16_t os_minor;       /* minor OS version */
> +    uint16_t image_major;    /* major image version */
> +    uint16_t image_minor;    /* minor image version */
> +    uint16_t subsys_major;   /* major subsystem version */
> +    uint16_t subsys_minor;   /* minor subsystem version */
> +    uint32_t win32_version;  /* reserved, must be 0 */
> +    uint32_t image_size;     /* image size */
> +    uint32_t header_size;    /* header size rounded up to file_align */
> +    uint32_t csum;           /* checksum */
> +    uint16_t subsys;         /* subsystem */
> +    uint16_t dll_flags;      /* more flags! */
> +    uint64_t stack_size_req; /* amt of stack requested */
> +    uint64_t stack_size;     /* amt of stack required */
> +    uint64_t heap_size_req;  /* amt of heap requested */
> +    uint64_t heap_size;      /* amt of heap required */
> +    uint32_t loader_flags;   /* reserved, must be 0 */
> +    uint32_t data_dirs;      /* number of data dir entries */
> +};
> +
> +struct data_dirent {
> +    uint32_t virtual_address; /* relative to load address */

There's the common term RVA for this, so instead of a misleading field
name with a comment I'd like to suggest simply "rva" here.

> +    uint32_t size;
> +};
> +
> +struct data_directory {
> +    struct data_dirent exports;          /* .edata */
> +    struct data_dirent imports;          /* .idata */
> +    struct data_dirent resources;        /* .rsrc */
> +    struct data_dirent exceptions;       /* .pdata */
> +    struct data_dirent certs;            /* certs */
> +    struct data_dirent base_relocations; /* .reloc */
> +    struct data_dirent debug;            /* .debug */
> +    struct data_dirent arch;             /* reservered */
> +    struct data_dirent global_ptr;       /* global pointer reg. Size=0 */
> +    struct data_dirent tls;              /* .tls */
> +    struct data_dirent load_config;      /* load configuration structure */
> +    struct data_dirent bound_imports;    /* no idea */
> +    struct data_dirent import_addrs;     /* import address table */
> +    struct data_dirent delay_imports;    /* delay-load import table */
> +    struct data_dirent clr_runtime_hdr;  /* .cor (object only) */
> +    struct data_dirent reserved;
> +};
> +
> +struct section_header {
> +    char     name[8];         /* name or string tbl offset */
> +    uint32_t virtual_size;    /* size of loaded section in ram */
> +    uint32_t virtual_address; /* relative virtual address */
> +    uint32_t raw_data_size;   /* size of the section */
> +    uint32_t data_addr;       /* file pointer to first page of sec */
> +    uint32_t relocs;          /* file pointer to relocation entries */
> +    uint32_t line_numbers;    /* line numbers */
> +    uint16_t num_relocs;      /* number of relocations */
> +    uint16_t num_lin_numbers; /* COFF line count */
> +    uint32_t flags;
> +};
> +
> +enum x64_coff_reloc_type {

For everything down from here I already previously questioned whether we'd
ever use it. My suggestion would be to omit all of this, mentioning the
(intentional) omission in the description.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:34:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:34:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761747.1171765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrJW-00044l-Ow; Mon, 22 Jul 2024 11:34:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761747.1171765; Mon, 22 Jul 2024 11:34:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrJW-00044e-Kr; Mon, 22 Jul 2024 11:34:46 +0000
Received: by outflank-mailman (input) for mailman id 761747;
 Mon, 22 Jul 2024 11: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVrJW-00044I-2F
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:34:46 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 64d60b3e-481e-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 13:34:45 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-58ef19aa69dso2932457a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04:34: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
 4fb4d7f45d1cf-5a69c1f56a0sm2358196a12.64.2024.07.22.04.34.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 04: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: 64d60b3e-481e-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721648084; x=1722252884; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NiWSbSLaqz6dgNtcGPWZgqxD5uPkQisJNA8nheTFtfk=;
        b=ZfPKGi0TKuN+3YqNZ5bMee/hlKidIrE7JdpjN8837w0tqepaTeXnQ0dtKMocy2XZRB
         gobCuZFzLbKoCGUKxvHH4Khj7CaKmnojxnHm82j0cLyfQAM75jDEv/uPap08KpVXufJx
         ufOO6YreWvCcIUlzIujMg84uj3O+extUSml4Rc57R/r3oDAYkhZ/nbMRdOIxtOOtNuFj
         ELU3VOaoifw3xQbCD8q83avcXU3xFnmnv6msBxtnMfC4a/bZMnXj3diR/0hebx2MQu4E
         kCuw8RsNbQ3PkulMCUaf44nApeo+S4wSFnjInRHnIii0OKqODlkKjFSZ972X5j+vYQrg
         Tj0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721648084; x=1722252884;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NiWSbSLaqz6dgNtcGPWZgqxD5uPkQisJNA8nheTFtfk=;
        b=CJrc4bH+38WxM9bTLFKvKzxuK72eqRK3iHkZvn0RdXNBKoYNN4RassAHU4Ml8iakAw
         0HEpP9+KJiZfl4mWhRTqfltrGVwjk+imVIlYtX87PJDOLSFbcAHXL8GgtyjX0M7O+cv7
         UTcjWvmjRA3D3pKpODaAuptH15yUnnEmaE13lQU4VE8LxjlkBRvtUCuktNNzP3fyNXDA
         rTATso0FKZaX5gSGNt/ZNJM0FaxAWxCT4z+DOPwZQgQbWHocoOGwV6FAQK40dbvilmki
         lMdmCv5ZOQp2cqY0YIDrbimtmzZj46ONeR3VBosoj41DTTP6PV6vK2zP2W5EFrs/P+2C
         0ZVg==
X-Forwarded-Encrypted: i=1; AJvYcCW04tLHBZ3InG/OD/UjkXeqn6AXcsLgF5j/lWyPBvBRKROr2uy/3QXyLauu92EVBHygMdF+xyhNFAPdyIpYqI6QdVsbs1VByN/Rb9SVgyY=
X-Gm-Message-State: AOJu0YzwyZ6PepNvjrm/da3CxAbkRQdjc2sOFvJyq4itQzYSjlTsN741
	tutN4ISFYHOGNZ/Fb7l+V+D6xVPVpKj4ADI9RkEbziAhmk261YsACDrfNetsYQ==
X-Google-Smtp-Source: AGHT+IGy5hR5R3a9EouzsrKpIltgWF+66cS2hCTyKQIATcz4e8QRfvh/FEQj1w7cgbaaitf4xfItzA==
X-Received: by 2002:a05:6402:234e:b0:5a0:e61c:edfd with SMTP id 4fb4d7f45d1cf-5a479f5892fmr4832443a12.14.1721648084517;
        Mon, 22 Jul 2024 04:34:44 -0700 (PDT)
Message-ID: <249a0d05-68dd-4bf7-9196-6f6253e358c9@suse.com>
Date: Mon, 22 Jul 2024 13:34:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to
 fuzz/x86_instruction_emulator
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <9991b646-2d9e-418d-a0c0-5e357766c66c@suse.com>
 <CABfawhmz4hAx3JbF=XO=xuhzVrGg_+k5cdEd0Mdp0y=Cxu8v1Q@mail.gmail.com>
 <f2443c6d-895b-4d9a-b397-a5158c43a73d@suse.com>
 <CABfawhnzEZw7koBxaCVJmUT=8eLPc78id+Qnuy_x-H+e0tD7ng@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CABfawhnzEZw7koBxaCVJmUT=8eLPc78id+Qnuy_x-H+e0tD7ng@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.07.2024 13:29, Tamas K Lengyel wrote:
> On Mon, Jul 22, 2024 at 7:08 AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 22.07.2024 13:03, Tamas K Lengyel wrote:
>>> On Mon, Jul 22, 2024 at 5:20 AM Jan Beulich <jbeulich@suse.com> wrote:
>>>>
>>>> On 26.06.2024 00:47, Tamas K Lengyel wrote:
>>>>> This target enables integration into oss-fuzz. Changing invalid input return
>>>>> to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding the
>>>>> missing __wrap_vsnprintf wrapper which is required for successful oss-fuzz
>>>>> build.
>>>>>
>>>>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>>>>
>>>> I've reverted this right away, because of ...
>>>>
>>>>> @@ -58,6 +58,9 @@ afl-harness: afl-harness.o $(OBJS) cpuid.o wrappers.o
>>>>>  afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) cpuid.o wrappers.o
>>>>>       $(CC) $(CFLAGS) $(GCOV_FLAGS) $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
>>>>>
>>>>> +libfuzzer-harness: $(OBJS) cpuid.o wrappers.o
>>>>> +     $(CC) $(CFLAGS) $(LIB_FUZZING_ENGINE) -fsanitize=fuzzer $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
>>>>
>>>> ... this causing
>>>>
>>>> gcc: error: unrecognized argument to '-fsanitize=' option: 'fuzzer'
>>>> make[6]: *** [Makefile:62: libfuzzer-harness] Error 1
>>>>
>>>> with apparently a fair set of gcc-s used by distro-s we use for CI.
>>>
>>> Well let me see if I can hack the Makefile to only build this with clang..
>>
>> Oh, and - please don't special case Clang. Instead please check for option
>> availability (e.g. using cc-option), such that for possible future gcc,
>> when support there may have been added, we'd then build it there as well.
> 
> I decided to just not include the libfuzzer harness in the default 'all' target.

Hmm. I'll look (and comment) there, but I'm not sure that's a route we want to
take. Goals generally ought to work or be unavailable, I'm inclined to say.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:37:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761757.1171781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrLw-0005HS-4S; Mon, 22 Jul 2024 11:37:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761757.1171781; Mon, 22 Jul 2024 11: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 1sVrLw-0005HL-1U; Mon, 22 Jul 2024 11:37:16 +0000
Received: by outflank-mailman (input) for mailman id 761757;
 Mon, 22 Jul 2024 11:37: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVrLv-0005HF-CX
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:37:15 +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 bd4cb903-481e-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 13:37:13 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5a156556fb4so3136876a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04: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
 a640c23a62f3a-a7a3c7be6f8sm413590366b.76.2024.07.22.04.37.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 04: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: bd4cb903-481e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721648233; x=1722253033; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=83Tf05iTvWz5wbdQmoByoXLmb8VWV7O3ZZf6bjethsI=;
        b=TI4dR0+EIrIqQbz/wPl4yaGOPxs7CnS7o+LSN90nH/xbSiiKHR+Z+bSas135gOh/eg
         cMBAl5fu8xVlqjSwPkOBVgr4XAPzYQs0aYMGU6TCsgaAmFqhIFexThFcwDK93s8tG54S
         39FT0vp/Pwvh/UW+oXZPNV6fsbsBjbeSdLqfM+7fNOoFwaIImiifaz0eze8fM4BcqH5z
         qJSTavjCVVMnKOhdDwh/dayimK6WlXj5aCCiGaF5YKvugyJwFBnn+TYZogJmYnhhBHN9
         /PKZUvKZ30l8wnaHpBuXQCdk+pRVtkEF6Ira1aK45vgbPrMc0XGGdpVyOa5l5I/2Qd+5
         KFuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721648233; x=1722253033;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=83Tf05iTvWz5wbdQmoByoXLmb8VWV7O3ZZf6bjethsI=;
        b=mlMA/KfywR96ZPQHS5dFPgXz3oGtL3fWx0i2d2ejkZCTjmVStJkzbIpP4FWvgykl2l
         4a95rIFsj+DlUZJsymLfYvIJVMz2k1o39yXwCboh6lV/8AFuZ/GIRlQsDFpyXytUup2l
         5PL992RMUZcKf+DXFvJzRCMTQSMTufRcwo6desRoTNA9El61IeCaDd2cmODDIMJ7WLG3
         aMrf954BjQs1vJohk8OTf2LHCXjyTX9tKDXs22aUQUg912NtHgWRmbtiwlL2/ywOMAwy
         BkbCPdsi6AP6yt7wVBHUwqP0qx4iMDMrodvs1KPmUItkYMOV549xrXV2StEvoS/ZhIPn
         UfcA==
X-Forwarded-Encrypted: i=1; AJvYcCV0MhNtCJW2DMELwa2EQHwIf7fv6TNj8Q9itsvKTA8Z4gjhJmQwq9M+DVl7z4NDWxlC3wPL0etaKQ7QnRSrMyP9EkhNKkN2rQut9TdI8xw=
X-Gm-Message-State: AOJu0YzxTCbM6OpNS+FpOGNUQ9fmBL60qAQAMYSgEFmhgEgmPBOH+jjR
	H0DyZM7JLgNVBt+2cPK4zfbbq/gPaugYBq/h3fE5GViZuFl5nr7v9IL43NGA+w==
X-Google-Smtp-Source: AGHT+IEobDaKnCJ/okT4fo5nG8cUaZSQ2HcEYS2pCETVHUNp09fWbeqvR7GfBZPTFdjzHMUPedLnmw==
X-Received: by 2002:a17:906:7950:b0:a77:dd1c:626e with SMTP id a640c23a62f3a-a7a4c41c000mr463187166b.60.1721648232909;
        Mon, 22 Jul 2024 04:37:12 -0700 (PDT)
Message-ID: <12e2c7b2-6d0b-4427-ac30-257bfea2aeab@suse.com>
Date: Mon, 22 Jul 2024 13:37:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v2] x86/cpuid: Expose max_vcpus field in HVM
 hypervisor leaf
To: Matthew Barnes <matthew.barnes@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <fa24cd3b232e8865eb6451e5f7af9cd203ce52ab.1721224079.git.matthew.barnes@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fa24cd3b232e8865eb6451e5f7af9cd203ce52ab.1721224079.git.matthew.barnes@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.07.2024 16:21, Matthew Barnes wrote:
> Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
> startup.
> 
> There are efforts to support a maximum of 128 vCPUs, which would involve
> bumping the OVMF constant from 64 to 128.
> 
> However, it would be more future-proof for OVMF to access the maximum
> number of vCPUs for a domain and set itself up appropriately at
> run-time.
> 
> GitLab ticket: https://gitlab.com/xen-project/xen/-/issues/191
> 
> For OVMF to access the maximum vCPU count, this patch has Xen expose
> the maximum vCPU ID via cpuid on the HVM hypervisor leaf in edx.
> 
> Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
> ---
> Changes in v2:
> - Tweak value from "maximum vcpu count" to "maximum vcpu id"
> - Reword commit message to avoid "have to" wording
> - Fix vpcus -> vcpus typo
> ---

Yet still HVM-only?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:39:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:39:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761766.1171790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrNf-0005qv-E3; Mon, 22 Jul 2024 11:39:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761766.1171790; Mon, 22 Jul 2024 11: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 1sVrNf-0005qo-BV; Mon, 22 Jul 2024 11:39:03 +0000
Received: by outflank-mailman (input) for mailman id 761766;
 Mon, 22 Jul 2024 11: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=NZPk=OW=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sVrNe-0005qi-C3
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:39:02 +0000
Received: from sender4-op-o12.zoho.com (sender4-op-o12.zoho.com
 [136.143.188.12]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc1027a3-481e-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 13:39:00 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1721648334696708.7680710724628;
 Mon, 22 Jul 2024 04:38:54 -0700 (PDT)
Received: by mail-yw1-f179.google.com with SMTP id
 00721157ae682-6678a45eaa3so38316347b3.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04:38: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: fc1027a3-481e-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1721648336; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=ef4bLp8AhEaiZcR91kZ2q4Njc0cpu6zwDr/+v6QxKbDuX3UupLOxnu6Yh4vJuWDp3rZd2vDb1OwJG8Ja8+4yQTyRYXFn12FoFOpOI/VK9FpXrsAxqo2XEMByjls7R15TGGJp6WM9h8Ksvhdw7wqLmK7z+pnqNnwDScL4C17jbdE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721648336; 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=LJvo75+KH1x9+taQW6ikfbio8PDB7eM1uhwOlvxIMCI=; 
	b=cL5etDm3X4CvAWc0YDNM8cLhX1s+rlHNeyoBaU4FVOufFLrWg1uwik8INEjZnIvOyWeDXIL2T9cKGVu+5pAA3YauDsTlWb+VncSckOPWHXDxI7YwBVicbEkxbHYAyEYMAA6q+0n+wSSWgKHPYJpRWtLisfEzAz80AaMHd8scPPA=
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=1721648336;
	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=LJvo75+KH1x9+taQW6ikfbio8PDB7eM1uhwOlvxIMCI=;
	b=PV0ut8yW+Uf//PghtI6448ToIFzOCByAIftQNv8itr5+35GPqv3kmY+kJOKjMZ5M
	okedjPypg++KYzuIfW/hfsJDpwEOZnrWCUX0iHkccdDl6iu59D76W7ZhaBlZpCVQ8wD
	/fviOTCapGQJ2idOKx7pkLfDkjy16L/iOVkRwMv8=
X-Forwarded-Encrypted: i=1; AJvYcCWE8xycZ4ubI5+/Lg610I8VJHE3J26jq8a7og1lls+LEuRlU487ppRFIBIeESXgk+cTVNfWmpVuChRU+1sOWzMdM2Zq+fiH9OqnVqqpV8s=
X-Gm-Message-State: AOJu0YyprtdZHE5m8h4xXVC0laj0ROQ+xCY9elKCIpbmmVOFD8Ncr9Mv
	copkBMwWo+l6l/vKY1iRLHE0xRRi65U2IfPxei9bhnhpRFnZzBDnr9HipEUuahL4OyCj+YMcJLg
	MOJ6DzVbNGiIoRrcyeG3sTPDhYiY=
X-Google-Smtp-Source: AGHT+IFbH3nGOTYgQA/lle4X2gwm+0GcUKTS9CD9xIS1KUnUQuYIzx64105V+7oK79EQz2oaJupfs7R8wM0lpEaQrU0=
X-Received: by 2002:a05:690c:d8f:b0:643:92a8:ba00 with SMTP id
 00721157ae682-66ad5717b8dmr89135107b3.0.1721648333826; Mon, 22 Jul 2024
 04:38:53 -0700 (PDT)
MIME-Version: 1.0
References: <d14436e64c650b388936a921837b984772a4fceb.1719355322.git.tamas@tklengyel.com>
 <9991b646-2d9e-418d-a0c0-5e357766c66c@suse.com> <CABfawhmz4hAx3JbF=XO=xuhzVrGg_+k5cdEd0Mdp0y=Cxu8v1Q@mail.gmail.com>
 <f2443c6d-895b-4d9a-b397-a5158c43a73d@suse.com> <CABfawhnzEZw7koBxaCVJmUT=8eLPc78id+Qnuy_x-H+e0tD7ng@mail.gmail.com>
 <249a0d05-68dd-4bf7-9196-6f6253e358c9@suse.com>
In-Reply-To: <249a0d05-68dd-4bf7-9196-6f6253e358c9@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Mon, 22 Jul 2024 07:38:17 -0400
X-Gmail-Original-Message-ID: <CABfawhmTweva=uKsgBYUozvx_t7NHjj+RHy-eJ0_r1JiQqexEQ@mail.gmail.com>
Message-ID: <CABfawhmTweva=uKsgBYUozvx_t7NHjj+RHy-eJ0_r1JiQqexEQ@mail.gmail.com>
Subject: Re: [PATCH v2 1/2] Add libfuzzer target to fuzz/x86_instruction_emulator
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@xenproject.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 22, 2024 at 7:34=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 22.07.2024 13:29, Tamas K Lengyel wrote:
> > On Mon, Jul 22, 2024 at 7:08=E2=80=AFAM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >>
> >> On 22.07.2024 13:03, Tamas K Lengyel wrote:
> >>> On Mon, Jul 22, 2024 at 5:20=E2=80=AFAM Jan Beulich <jbeulich@suse.co=
m> wrote:
> >>>>
> >>>> On 26.06.2024 00:47, Tamas K Lengyel wrote:
> >>>>> This target enables integration into oss-fuzz. Changing invalid inp=
ut return
> >>>>> to -1 as values other then 0/-1 are reserved by libfuzzer. Also add=
ing the
> >>>>> missing __wrap_vsnprintf wrapper which is required for successful o=
ss-fuzz
> >>>>> build.
> >>>>>
> >>>>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> >>>>
> >>>> I've reverted this right away, because of ...
> >>>>
> >>>>> @@ -58,6 +58,9 @@ afl-harness: afl-harness.o $(OBJS) cpuid.o wrappe=
rs.o
> >>>>>  afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS))=
 cpuid.o wrappers.o
> >>>>>       $(CC) $(CFLAGS) $(GCOV_FLAGS) $(addprefix -Wl$(comma)--wrap=
=3D,$(WRAPPED)) $^ -o $@
> >>>>>
> >>>>> +libfuzzer-harness: $(OBJS) cpuid.o wrappers.o
> >>>>> +     $(CC) $(CFLAGS) $(LIB_FUZZING_ENGINE) -fsanitize=3Dfuzzer $(a=
ddprefix -Wl$(comma)--wrap=3D,$(WRAPPED)) $^ -o $@
> >>>>
> >>>> ... this causing
> >>>>
> >>>> gcc: error: unrecognized argument to '-fsanitize=3D' option: 'fuzzer=
'
> >>>> make[6]: *** [Makefile:62: libfuzzer-harness] Error 1
> >>>>
> >>>> with apparently a fair set of gcc-s used by distro-s we use for CI.
> >>>
> >>> Well let me see if I can hack the Makefile to only build this with cl=
ang..
> >>
> >> Oh, and - please don't special case Clang. Instead please check for op=
tion
> >> availability (e.g. using cc-option), such that for possible future gcc=
,
> >> when support there may have been added, we'd then build it there as we=
ll.
> >
> > I decided to just not include the libfuzzer harness in the default 'all=
' target.
>
> Hmm. I'll look (and comment) there, but I'm not sure that's a route we wa=
nt to
> take. Goals generally ought to work or be unavailable, I'm inclined to sa=
y.

That Makefile already has targets that are not part of all so I don't
think it's a big deal.

Tamas


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:43:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:43:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761775.1171802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrS6-0007Ly-16; Mon, 22 Jul 2024 11:43:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761775.1171802; Mon, 22 Jul 2024 11: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 1sVrS5-0007Lr-S7; Mon, 22 Jul 2024 11:43:37 +0000
Received: by outflank-mailman (input) for mailman id 761775;
 Mon, 22 Jul 2024 11: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVrS4-0007Lg-JM
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:43:36 +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 a079edb4-481f-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 13:43:34 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-58f9874aeb4so3086914a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04:43: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
 4fb4d7f45d1cf-5a30c2f88a5sm5972847a12.77.2024.07.22.04.43.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 04:43: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: a079edb4-481f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721648614; x=1722253414; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fEVjJKofTC2lVHMm8iYBgBuuBrpGvOOqHJ6QxOiHIPs=;
        b=ULPMt+ihg9WAbC9gyiYvK68DwhEymMjRdygjd+QGqZs8yQWwOZ5HTRokjjJdmyXaIr
         8t4BQNHIdqgRHHJ/86VF3F0C4In+K9FoDwPJLdQ2LrhRyFFNDQbNmX0h0kWbuPOFZHqY
         /hqy7jeGoYXnI+elPPuab7zVBO1mpVWDPMFXmBcVotBHrqBtctuObDK9B2/nxeuVakFu
         zyhH9o9LDPyBgvXjHaW1Rz26YRnb7y3qtiK5JoslHkOpnR2uZCCP6fLBCJwBzdqeqGDD
         gtcgY/BeBsS2Ray/ebvv0yPwp2bs4SwqEg8RCtAzdtQ0KAU2HKTVNWDvAatdGvZLSZ4H
         FChg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721648614; x=1722253414;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fEVjJKofTC2lVHMm8iYBgBuuBrpGvOOqHJ6QxOiHIPs=;
        b=I0qc8vKatWo1NYILQSrVbTrfY+8T+GQeIqiBzQaoqgTyVRFoFXFFaUJluhvejQ8506
         m2BmGaMswme1zQppCfR5LpAXIjl5yQPux0HduyJpqOy9dN/DK10a54n9da/WLm5k8PCg
         K8Y/Wxc2uVbBsjNpRBu5DJbSiUobWKm8PTs+gP9jO11Bbp4k45qod5S162RV5Dj3dL72
         3KmOa5cxLSjipLMrAnoeOjDog9qo22FlDCLBlpwyjwnPjzqUwyAA+LRe1cBG95KvNZk3
         cJp6R/CZo5fX70tvfzBeyjrf8k9Eq2f/rxV0OlkeWFqskxgqeFdRdtMMj7rcgc6ItC0L
         W0Pw==
X-Forwarded-Encrypted: i=1; AJvYcCVueHXJ1Pt5gzCUfE/aTUcNzQsx5cUJ/lpeTigpG3HUHMW4vMk7dfHTKGpQXXYzq3b52s7rvm49y4fK0zJx90NwHRzjmUDAXQmEpZE1Es8=
X-Gm-Message-State: AOJu0YwPvckSnHPx2JP/9/fHIXmwPjro7tFAIV/u8ZYlRcyucsktAdXl
	Sd/Pi+aimakW582Br1rMuefRUlx5E/H41zKTfXYsiUa1x1PsJ8BGACW6Z9G2cw==
X-Google-Smtp-Source: AGHT+IEEszISUIFqzrHdAiDsYv2xyfUJmoDaz46P6riW1zcmnb/wArYgLBxYr0g6up+bndmDwDhWVQ==
X-Received: by 2002:a05:6402:510e:b0:5a2:8bf2:92c6 with SMTP id 4fb4d7f45d1cf-5a3ef3792e8mr6052145a12.21.1721648614101;
        Mon, 22 Jul 2024 04:43:34 -0700 (PDT)
Message-ID: <a89c973e-035a-4e8f-b446-03bbcf724f86@suse.com>
Date: Mon, 22 Jul 2024 13:43:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 10/14] x86/vmx: guard access to cpu_has_vmx_* in
 common code
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <668355271f01681070cb15f67af1538104bfc651.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <668355271f01681070cb15f67af1538104bfc651.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 08:05, Sergiy Kibrik wrote:
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -5197,7 +5197,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
>      {
>          case XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_ON:
>          case XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_OFF:
> -            if ( !cpu_has_monitor_trap_flag )
> +            if ( !IS_ENABLED(CONFIG_VMX) || !cpu_has_monitor_trap_flag )
>                  return -EOPNOTSUPP;
>              break;

Why at the use site here and ...

> --- a/xen/arch/x86/hvm/viridian/viridian.c
> +++ b/xen/arch/x86/hvm/viridian/viridian.c
> @@ -196,7 +196,7 @@ void cpuid_viridian_leaves(const struct vcpu *v, uint32_t leaf,
>          res->a = CPUID4A_RELAX_TIMER_INT;
>          if ( viridian_feature_mask(d) & HVMPV_hcall_remote_tlb_flush )
>              res->a |= CPUID4A_HCALL_REMOTE_TLB_FLUSH;
> -        if ( !cpu_has_vmx_apic_reg_virt )
> +        if ( !IS_ENABLED(CONFIG_VMX) || !cpu_has_vmx_apic_reg_virt )
>              res->a |= CPUID4A_MSR_BASED_APIC;
>          if ( viridian_feature_mask(d) & HVMPV_hcall_ipi )
>              res->a |= CPUID4A_SYNTHETIC_CLUSTER_IPI;
> @@ -236,7 +236,7 @@ void cpuid_viridian_leaves(const struct vcpu *v, uint32_t leaf,
>  
>      case 6:
>          /* Detected and in use hardware features. */
> -        if ( cpu_has_vmx_virtualize_apic_accesses )
> +        if ( IS_ENABLED(CONFIG_VMX) && cpu_has_vmx_virtualize_apic_accesses )
>              res->a |= CPUID6A_APIC_OVERLAY;
>          if ( cpu_has_vmx_msr_bitmap || (read_efer() & EFER_SVME) )
>              res->a |= CPUID6A_MSR_BITMAPS;

... here (and in yet a few more places), but ...

> --- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
> @@ -306,7 +306,8 @@ extern u64 vmx_ept_vpid_cap;
>  #define cpu_has_vmx_vnmi \
>      (vmx_pin_based_exec_control & PIN_BASED_VIRTUAL_NMIS)
>  #define cpu_has_vmx_msr_bitmap \
> -    (vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_MSR_BITMAP)
> +    (IS_ENABLED(CONFIG_VMX) && \
> +     vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_MSR_BITMAP)

... for others right in the definitions, as was suggested before? Yet then
not consistently for all of them? Looks like if you did this consistently
here, you'd have no need at all to fiddle with any .c file.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 11:55:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 11:55:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761789.1171818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrdF-0001HV-3p; Mon, 22 Jul 2024 11:55:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761789.1171818; Mon, 22 Jul 2024 11: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 1sVrdE-0001HO-Vi; Mon, 22 Jul 2024 11:55:08 +0000
Received: by outflank-mailman (input) for mailman id 761789;
 Mon, 22 Jul 2024 11:55:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVrdD-0001HI-EM
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 11:55:07 +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 3cb369b0-4821-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 13:55:06 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a77baa87743so439624966b.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 04:55: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
 a640c23a62f3a-a7a3c7bdac0sm415320766b.60.2024.07.22.04.55.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 04:55: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: 3cb369b0-4821-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721649306; x=1722254106; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gFfXVU6XiY1KG5DgwejyKNGR/9Y0OFSel6bgkpXSPK0=;
        b=YByomqJ6OW0aUawmHqIop3tfakMh88jFJKJqOPC3TbnDEnqGk5eIm24U+CW1V4oNZb
         kA2pS96FlYqKASQVBuYbUrjD+W2EFJo7TkaNgWQt/56brEQI9x8k1TiMfP/S4qyNZEuM
         iKePVDegFu8veuiXK46FhrAhH6nCKHUhMXjqdpuV6YfgkzRksMFBHvBbMVqexq6LTh1L
         0yMTkcTb3pDMhpVWoDi9Loir0zQacZExrJTjSeckYuleHpmJsjFKYG1u33fGKeiH2dNn
         ofw6WB8Z55xeFk8rFF8QQ+L5XUzqbjNPqAmAALSF20azH1loFTpFRIJwi5S91btzQamz
         LpuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721649306; x=1722254106;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gFfXVU6XiY1KG5DgwejyKNGR/9Y0OFSel6bgkpXSPK0=;
        b=l5J31AfdHPM/rW0IHR3h1taxGjsRDY2choxGwEhGoCf0AR6+zbFK+pRZSdHDoJwxhu
         mmukN0lyQn3Tb1B9HWumRHJz9PAy9MU5xs46qUCqU0m2ymyIEoEeQ3vrlgB40nYlbMBd
         QAhJqHZOAiSuASvU9dq0NwhsFTO/rWqE2VmRdM0oxLY/nism8gCz6//Q3uaQJuLeAMrA
         2/RQHlsZJXRfXpjCAGCHzDebsXqVHGA0uKrSGn7lXkPb5m9W6bh+rnjFJ1mDbn1O673l
         dWu5WGzbYN9JNpkyCqnEYhh5sNu302vNTBCxZ57LidJzW+/iM8R76RVqw3WKOJwO9aO3
         lC8A==
X-Forwarded-Encrypted: i=1; AJvYcCUTXff3En8UdMi1niV2j1/Y+XEiYCyYz6NH3MwlVrhCMIYutBYbz4echT8+KhA3Ebf+gJd23pcMJSSciCjnnvikTceVlOe0suIrznL+VOQ=
X-Gm-Message-State: AOJu0YzPX4pbV+fP01v4sWdR0DxUZs4oFo4PNhvm76vbF+YXFnpkt9GP
	0a8pfjQeIN1wi5meh9DRIoWx78/bGEKdoQ7lPMn7wTUA0Sf3Lt2QI/FCrKP6jQ==
X-Google-Smtp-Source: AGHT+IGff+6W+RbF45vW42tX0KOxv48WB1hK3sF3anRb8ujxYEuMjvqStDQiImgT7sXJfZzsQDIRsw==
X-Received: by 2002:a17:907:980d:b0:a77:c330:ad9d with SMTP id a640c23a62f3a-a7a4c44b02amr400366166b.61.1721649305559;
        Mon, 22 Jul 2024 04:55:05 -0700 (PDT)
Message-ID: <7ad9cd04-a4f6-47ef-8f73-400388329fbc@suse.com>
Date: Mon, 22 Jul 2024 13:55:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 11/14] x86/vpmu: guard calls to vmx/svm functions
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <81999eb47b590afe3b269c33f7d166c9882cafdc.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <81999eb47b590afe3b269c33f7d166c9882cafdc.1720501197.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.07.2024 08:07, Sergiy Kibrik wrote:
> @@ -363,7 +364,7 @@ static int cf_check amd_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content)
>              return 0;
>          vpmu_set(vpmu, VPMU_RUNNING);
>  
> -        if ( is_hvm_vcpu(v) && is_msr_bitmap_on(vpmu) )
> +        if ( is_svm_vcpu(v) && is_msr_bitmap_on(vpmu) )
>               amd_vpmu_set_msr_bitmap(v);
>      }

Up from here there's another is_hvm_vcpu(). I think you want to change all
of them, for consistency.

> @@ -269,7 +271,7 @@ static inline void __core2_vpmu_save(struct vcpu *v)
>      if ( !is_hvm_vcpu(v) )
>          rdmsrl(MSR_CORE_PERF_GLOBAL_STATUS, core2_vpmu_cxt->global_status);
>      /* Save MSR to private context to make it fork-friendly */
> -    else if ( mem_sharing_enabled(v->domain) )
> +    else if ( is_vmx_vcpu(v) && mem_sharing_enabled(v->domain) )
>          vmx_read_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL,
>                             &core2_vpmu_cxt->global_ctrl);
>  }

Why don't you change the is_hvm_vcpu() that even is visible in context?
Then this hunk would also actually follow what the description says.

> @@ -333,7 +335,7 @@ static inline void __core2_vpmu_load(struct vcpu *v)
>          wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, core2_vpmu_cxt->global_ctrl);
>      }
>      /* Restore MSR from context when used with a fork */
> -    else if ( mem_sharing_is_fork(v->domain) )
> +    else if ( is_vmx_vcpu(v) && mem_sharing_is_fork(v->domain) )
>          vmx_write_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL,
>                              core2_vpmu_cxt->global_ctrl);
>  }

Same here, and up from here there are again two more places to change
(plus at least one more further down).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:09:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:09:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761803.1171836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrqx-0004AO-Dj; Mon, 22 Jul 2024 12:09:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761803.1171836; Mon, 22 Jul 2024 12:09:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVrqx-0004AH-BE; Mon, 22 Jul 2024 12:09:19 +0000
Received: by outflank-mailman (input) for mailman id 761803;
 Mon, 22 Jul 2024 12:09: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVrqw-0004A9-71
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:09:18 +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 37e2d922-4823-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 14:09:17 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5a108354819so3563429a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 05:09: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
 4fb4d7f45d1cf-5a30a4d6e67sm6041345a12.17.2024.07.22.05.09.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 05:09: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: 37e2d922-4823-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721650156; x=1722254956; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Q1ODGjjIkswPcEwduhZfJL5a1ukg2QuJ74+piOzsw6g=;
        b=UrEaZXM3DBsq0Zmvlw1szr1skh4c2JnwFrg5Tj7hDa06ULwSzWgzA98yCHep2IgV6c
         auqR0JdoD0C1xbgL4b8towDp9SQ1rI7lhY7pyE0rZpokolLhnSl7ZwPy4EekETj1/7uT
         i8F88cfwiod7udYzREf0Inh51X7kRYoUMO/XYdgIrxU/vBRJKEypHjRyBKS9iQi4ZCs0
         IhsnId6BjBL8eiqdXbeV+m1TDUWKviLYDbJ8ml8nZa8nANmJsAJYaPg86Q9tCRfonG/U
         lmlTUl4tg/BKRn7JjFKorXpDbnfzP4oiOAlgGTzN8VKEJvfHuylIcPq+8QQoq4xoAp3T
         vGDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721650156; x=1722254956;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q1ODGjjIkswPcEwduhZfJL5a1ukg2QuJ74+piOzsw6g=;
        b=aFMPyDpjzerGUkCfZXplhrW04x7WMOfLEZfv9nzVftSB/wE8Ec0hkz5FEfuIaULSjY
         5eZDzzT1Vq37/60XcN+0hsOHU7j1zrxC8VTGqMl88DEDfjrG461nkH9zgJJzrkFFLWZx
         ugIGv63v9PmftTjDeZejXEQGSy6j4QdIu3G8KZhHEBmYnfFbUiZlbfGqQMja5h7UlQmu
         Qgb08+OO2KNroAI0VRfQuZdEjVqn6LyRLqEHtTzj+XQVliwDRzgs4RUapGdesOreNfGz
         7rK7X3lJbn/dAvMVt9IRVgQVTUfOnXr5U+jx9UXA1THLgGiI+m/peCqio5RWsd093pgn
         z17Q==
X-Forwarded-Encrypted: i=1; AJvYcCW1B5e5X8kY2KPQfL8wAfH9rw3B1LjzSvbhUXQtX1C9ONvpul0bdccfZMfyJ2e+id2We6LKZ5HQscKfwW/o5e4dOffXCfo8nNDsXeh3RCM=
X-Gm-Message-State: AOJu0YyHbeObbPqlGpwzjDldnOURCuaINbKDWQ6FsQWTbRivvWckQeYH
	Odq5rSSNO6yYzvED5PVfOpGuSfJNHL7ydTEKIZus2NKQ78Pyerrr+ULEnNw/hw==
X-Google-Smtp-Source: AGHT+IEqEm3kMlveM6LuDWgYK7mEv9UNyWyWbDjpC5W4BIcpLCu501EmdQ6HypF4tqpQ7YiD/hg0xw==
X-Received: by 2002:a50:d514:0:b0:5a2:a808:a2e0 with SMTP id 4fb4d7f45d1cf-5a478b64758mr3867686a12.4.1721650156570;
        Mon, 22 Jul 2024 05:09:16 -0700 (PDT)
Message-ID: <dce600a3-4b1c-47e9-b336-42ca32e309c5@suse.com>
Date: Mon, 22 Jul 2024 14:09:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] x86/mm: add API for marking only part of a MMIO
 page read only
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>,
 xen-devel@lists.xenproject.org
References: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
 <f0b36fb78b87d2f06c0d33da28ba16cd1d2fa8b9.1721356393.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: <f0b36fb78b87d2f06c0d33da28ba16cd1d2fa8b9.1721356393.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.07.2024 04:33, Marek Marczykowski-Górecki wrote:
> @@ -4910,6 +4921,254 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>      return rc;
>  }
>  
> +static void __iomem *subpage_mmio_find_page(mfn_t mfn)
> +{
> +    struct subpage_ro_range *entry;

With the function returning void*, my first reaction was to ask why this
isn't pointer-to-const. Yet then ...

> +    list_for_each_entry(entry, &subpage_ro_ranges, list)
> +        if ( mfn_eq(entry->mfn, mfn) )
> +            return entry;

... you're actually returning entry here, just with its type zapped for
no apparent reason. I also question the __iomem in the return type.

> +static int __init subpage_mmio_ro_add_page(
> +    mfn_t mfn,
> +    unsigned int offset_s,
> +    unsigned int offset_e)
> +{
> +    struct subpage_ro_range *entry = NULL, *iter;
> +    unsigned int i;
> +
> +    entry = subpage_mmio_find_page(mfn);
> +    if ( !entry )
> +    {
> +        /* iter == NULL marks it was a newly allocated entry */
> +        iter = NULL;

Yet you don't use "iter" for other purposes anymore. I think the variable
wants renaming and shrinking to e.g. a simple bool.

> +        entry = xzalloc(struct subpage_ro_range);
> +        if ( !entry )
> +            return -ENOMEM;
> +        entry->mfn = mfn;
> +    }
> +
> +    for ( i = offset_s; i <= offset_e; i += MMIO_RO_SUBPAGE_GRAN )
> +    {
> +        bool oldbit = __test_and_set_bit(i / MMIO_RO_SUBPAGE_GRAN,
> +                                        entry->ro_elems);

Nit: Indentation looks to be off by 1 here.

> +        ASSERT(!oldbit);
> +    }
> +
> +    if ( !iter )
> +        list_add(&entry->list, &subpage_ro_ranges);

What's wrong with doing this right in the earlier conditional?

> +int __init subpage_mmio_ro_add(
> +    paddr_t start,
> +    size_t size)
> +{
> +    mfn_t mfn_start = maddr_to_mfn(start);
> +    paddr_t end = start + size - 1;
> +    mfn_t mfn_end = maddr_to_mfn(end);
> +    unsigned int offset_end = 0;
> +    int rc;
> +    bool subpage_start, subpage_end;
> +
> +    ASSERT(IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN));
> +    ASSERT(IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN));
> +    if ( !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
> +        return -EINVAL;

I think I had asked before: Why is misaligned size something that wants a
release build fallback to the assertion, but not misaligned start?

> +static void subpage_mmio_write_emulate(
> +    mfn_t mfn,
> +    unsigned int offset,
> +    const void *data,
> +    unsigned int len)
> +{
> +    struct subpage_ro_range *entry;
> +    volatile void __iomem *addr;
> +
> +    entry = subpage_mmio_find_page(mfn);
> +    if ( !entry )
> +        /* Do not print message for pages without any writable parts. */
> +        return;
> +
> +    if ( test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
> +    {
> +write_ignored:

Nit: Like you have it further up, labels indented by at least one blank please.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:16:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:16:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761812.1171850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVryF-0005so-6l; Mon, 22 Jul 2024 12:16:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761812.1171850; Mon, 22 Jul 2024 12: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 1sVryF-0005sh-3g; Mon, 22 Jul 2024 12:16:51 +0000
Received: by outflank-mailman (input) for mailman id 761812;
 Mon, 22 Jul 2024 12:16:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVryD-0005pO-K5
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:16:49 +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 448aced4-4824-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 14:16:48 +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 34A7321843;
 Mon, 22 Jul 2024 12:16:47 +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 EC4FB138A7;
 Mon, 22 Jul 2024 12:16:46 +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 vDMyOK5NnmYTIQAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 22 Jul 2024 12:16: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: 448aced4-4824-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721650607; 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=AmTH1bdtVrV51iovoJz8Exw121j4vBzhMUgVftZpBis=;
	b=QT405tGcNsMbcngREX5lFOuaz4Ak0YgpfDPkoDVkBeqGdFUuVhGGEiuJFr1jbTd2aZLf7U
	QcauGptgjwbqwRBzDI99VeLcocynRXkVBCzBqd+hQrLia8+F5BtoIbkkkQW5k2wVtk5P8k
	UejZr9Dzu317WJjbYDIiOTW1pjxklMI=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=QT405tGc
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721650607; 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=AmTH1bdtVrV51iovoJz8Exw121j4vBzhMUgVftZpBis=;
	b=QT405tGcNsMbcngREX5lFOuaz4Ak0YgpfDPkoDVkBeqGdFUuVhGGEiuJFr1jbTd2aZLf7U
	QcauGptgjwbqwRBzDI99VeLcocynRXkVBCzBqd+hQrLia8+F5BtoIbkkkQW5k2wVtk5P8k
	UejZr9Dzu317WJjbYDIiOTW1pjxklMI=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 0/3] Mini-OS: tidy up arch/x86/time.c
Date: Mon, 22 Jul 2024 14:16:40 +0200
Message-ID: <20240722121643.18116-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-0.81 / 50.00];
	MID_CONTAINS_FROM(1.00)[];
	DWL_DNSWL_LOW(-1.00)[suse.com:dkim];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:dkim];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	TO_DN_SOME(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_FIVE(0.00)[5];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+]
X-Spam-Level: 
X-Rspamd-Queue-Id: 34A7321843
X-Spam-Score: -0.81
X-Spam-Flag: NO
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Bar: /

Make arch/x86/time.c coding style compliant, remove some unneeded cruft
and simplify the time keeping logic.

Juergen Gross (3):
  mini-os: apply coding style to arch/x86/time.c
  mini-os: remove some not needed stuff from arch/x86/time.c
  mini-os: simplify monotonic_clock()

 arch/x86/time.c | 188 ++++++++++++++++++------------------------------
 1 file changed, 69 insertions(+), 119 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:16:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:16:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761813.1171860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVryN-0006HB-E2; Mon, 22 Jul 2024 12:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761813.1171860; Mon, 22 Jul 2024 12: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 1sVryN-0006H4-BR; Mon, 22 Jul 2024 12:16:59 +0000
Received: by outflank-mailman (input) for mailman id 761813;
 Mon, 22 Jul 2024 12: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=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVryM-0006Ev-35
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:16:58 +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 483712e1-4824-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 14:16:54 +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 C4D9A1FB6A;
 Mon, 22 Jul 2024 12:16: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 9448D138A7;
 Mon, 22 Jul 2024 12:16: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 w1nCIrRNnmYbIQAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 22 Jul 2024 12:16: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: 483712e1-4824-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721650613; 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=azTkaup4SqcuXAb/LgH2nIaT96hnmtfLlbNKG39T8n0=;
	b=cHfLAaeM5m/6kHQ2AmUVH+jezHClRl/cCzVQWAl41We+/EprJ5CeoNMLPh5H8EVV9KyYjE
	618MfpFdd9a1qo5tmpBGV7Ivd/8aZpQ6pPAvGo1cAsjf7EgMvYiQtWD7fQMUpsk2/OjOmy
	pfQPYACWnH7P3h0+1IgxiLzu2LxG2EQ=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721650612; 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=azTkaup4SqcuXAb/LgH2nIaT96hnmtfLlbNKG39T8n0=;
	b=hk4wFdMEhXUdpgb1W2B1qYVV0hPthXHmjmw7AaZsDZFIUUXCmPbGrKHrQ3JIuvI3YoLsA3
	MTgEl+E+3m8JTKW9jhYnYrywH8cq5KCbDWsqCWmrko233GhM9pnFoVaMTu9NDSj3dan9eU
	ZVRVY7BvBJPRDR1RDSWznm/cCK52o80=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 1/3] mini-os: apply coding style to arch/x86/time.c
Date: Mon, 22 Jul 2024 14:16:41 +0200
Message-ID: <20240722121643.18116-2-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240722121643.18116-1-jgross@suse.com>
References: <20240722121643.18116-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.60
X-Spamd-Result: default: False [-2.60 / 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)[];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	FROM_EQ_ENVFROM(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:email];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Flag: NO

Apply the preferred coding style to arch/x86/time.c.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/time.c | 194 +++++++++++++++++++++++-------------------------
 1 file changed, 93 insertions(+), 101 deletions(-)

diff --git a/arch/x86/time.c b/arch/x86/time.c
index 332c0260..a473a9e1 100644
--- a/arch/x86/time.c
+++ b/arch/x86/time.c
@@ -1,7 +1,7 @@
 /* -*-  Mode:C; c-basic-offset:4; tab-width:4 -*-
  ****************************************************************************
  * (C) 2003 - Rolf Neugebauer - Intel Research Cambridge
- * (C) 2002-2003 - Keir Fraser - University of Cambridge 
+ * (C) 2002-2003 - Keir Fraser - University of Cambridge
  * (C) 2005 - Grzegorz Milos - Intel Research Cambridge
  * (C) 2006 - Robert Kaiser - FH Wiesbaden
  ****************************************************************************
@@ -18,20 +18,19 @@
  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/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 
+ *
+ * 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.
  */
 
-
 #include <mini-os/os.h>
 #include <mini-os/traps.h>
 #include <mini-os/types.h>
@@ -46,44 +45,43 @@
 
 /* These are peridically updated in shared_info, and then copied here. */
 struct shadow_time_info {
-	uint64_t tsc_timestamp;     /* TSC at last update of time vals.  */
-	uint64_t system_timestamp;  /* Time, in nanosecs, since boot.    */
-	uint32_t tsc_to_nsec_mul;
-	uint32_t tsc_to_usec_mul;
-	int tsc_shift;
-	uint32_t version;
+    uint64_t tsc_timestamp;     /* TSC at last update of time vals.  */
+    uint64_t system_timestamp;  /* Time, in nanosecs, since boot.    */
+    uint32_t tsc_to_nsec_mul;
+    uint32_t tsc_to_usec_mul;
+    int tsc_shift;
+    uint32_t version;
 };
 static struct timespec shadow_ts;
 static uint32_t shadow_ts_version;
 
 static struct shadow_time_info shadow;
 
-
 #ifndef rmb
-#define rmb()  __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory")
+#define rmb()  __asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory")
 #endif
 
-#define HANDLE_USEC_OVERFLOW(_tv)          \
-    do {                                   \
+#define HANDLE_USEC_OVERFLOW(_tv)           \
+    do {                                    \
         while ( (_tv)->tv_usec >= 1000000 ) \
-        {                                  \
+        {                                   \
             (_tv)->tv_usec -= 1000000;      \
             (_tv)->tv_sec++;                \
-        }                                  \
+        }                                   \
     } while ( 0 )
 
 static inline int time_values_up_to_date(void)
 {
-	struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time; 
+    struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
 
-	return (shadow.version == src->version);
+    return shadow.version == src->version;
 }
 
 static inline int wc_values_up_to_date(void)
 {
-	shared_info_t *s= HYPERVISOR_shared_info;
+    shared_info_t *s = HYPERVISOR_shared_info;
 
-	return (shadow_ts_version == s->wc_version);
+    return shadow_ts_version == s->wc_version;
 }
 
 /*
@@ -92,109 +90,104 @@ static inline int wc_values_up_to_date(void)
  */
 static inline uint64_t scale_delta(uint64_t delta, uint32_t mul_frac, int shift)
 {
-	uint64_t product;
+    uint64_t product;
 #ifdef __i386__
-	uint32_t tmp1, tmp2;
+    uint32_t tmp1, tmp2;
 #endif
 
-	if ( shift < 0 )
-		delta >>= -shift;
-	else
-		delta <<= shift;
+    if ( shift < 0 )
+        delta >>= -shift;
+    else
+        delta <<= shift;
 
 #ifdef __i386__
-	__asm__ (
-		"mul  %5       ; "
-		"mov  %4,%%eax ; "
-		"mov  %%edx,%4 ; "
-		"mul  %5       ; "
-		"add  %4,%%eax ; "
-		"xor  %5,%5    ; "
-		"adc  %5,%%edx ; "
-		: "=A" (product), "=r" (tmp1), "=r" (tmp2)
-		: "a" ((uint32_t)delta), "1" ((uint32_t)(delta >> 32)), "2" (mul_frac) );
+    __asm__ (
+        "mul  %5       ; "
+        "mov  %4,%%eax ; "
+        "mov  %%edx,%4 ; "
+        "mul  %5       ; "
+        "add  %4,%%eax ; "
+        "xor  %5,%5    ; "
+        "adc  %5,%%edx ; "
+        : "=A" (product), "=r" (tmp1), "=r" (tmp2)
+        : "a" ((uint32_t)delta), "1" ((uint32_t)(delta >> 32)), "2" (mul_frac) );
 #else
-	__asm__ (
-		"mul %%rdx ; shrd $32,%%rdx,%%rax"
-		: "=a" (product) : "0" (delta), "d" ((uint64_t)mul_frac) );
+    __asm__ (
+        "mul %%rdx ; shrd $32,%%rdx,%%rax"
+        : "=a" (product) : "0" (delta), "d" ((uint64_t)mul_frac) );
 #endif
 
-	return product;
+    return product;
 }
 
-
 static unsigned long get_nsec_offset(void)
 {
-	uint64_t now, delta;
-	rdtscll(now);
-	delta = now - shadow.tsc_timestamp;
-	return scale_delta(delta, shadow.tsc_to_nsec_mul, shadow.tsc_shift);
-}
+    uint64_t now, delta;
 
+    rdtscll(now);
+    delta = now - shadow.tsc_timestamp;
+
+    return scale_delta(delta, shadow.tsc_to_nsec_mul, shadow.tsc_shift);
+}
 
 static void get_time_values_from_xen(void)
 {
-	struct vcpu_time_info    *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
-
- 	do {
-		shadow.version = src->version;
-		rmb();
-		shadow.tsc_timestamp     = src->tsc_timestamp;
-		shadow.system_timestamp  = src->system_time;
-		shadow.tsc_to_nsec_mul   = src->tsc_to_system_mul;
-		shadow.tsc_shift         = src->tsc_shift;
-		rmb();
-	}
-	while ((src->version & 1) | (shadow.version ^ src->version));
-
-	shadow.tsc_to_usec_mul = shadow.tsc_to_nsec_mul / 1000;
+    struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
+
+    do {
+        shadow.version = src->version;
+        rmb();
+        shadow.tsc_timestamp     = src->tsc_timestamp;
+        shadow.system_timestamp  = src->system_time;
+        shadow.tsc_to_nsec_mul   = src->tsc_to_system_mul;
+        shadow.tsc_shift         = src->tsc_shift;
+        rmb();
+    } while ( (src->version & 1) | (shadow.version ^ src->version) );
+
+    shadow.tsc_to_usec_mul = shadow.tsc_to_nsec_mul / 1000;
 }
 
-
-
-
-/* monotonic_clock(): returns # of nanoseconds passed since time_init()
- *		Note: This function is required to return accurate
- *		time even in the absence of multiple timer ticks.
+/*
+ * monotonic_clock(): returns # of nanoseconds passed since time_init()
+ *        Note: This function is required to return accurate
+ *        time even in the absence of multiple timer ticks.
  */
 uint64_t monotonic_clock(void)
 {
-	uint64_t time;
-	uint32_t local_time_version;
-
-	do {
-		local_time_version = shadow.version;
-		rmb();
-		time = shadow.system_timestamp + get_nsec_offset();
-		if (!time_values_up_to_date())
-			get_time_values_from_xen();
-		rmb();
-	} while (local_time_version != shadow.version);
-
-	return time;
+    uint64_t time;
+    uint32_t local_time_version;
+
+    do {
+        local_time_version = shadow.version;
+        rmb();
+        time = shadow.system_timestamp + get_nsec_offset();
+        if ( !time_values_up_to_date() )
+            get_time_values_from_xen();
+        rmb();
+    } while ( local_time_version != shadow.version );
+
+    return time;
 }
 
 static void update_wallclock(void)
 {
-	shared_info_t *s = HYPERVISOR_shared_info;
-
-	do {
-		shadow_ts_version = s->wc_version;
-		rmb();
-		shadow_ts.tv_sec  = s->wc_sec;
-		shadow_ts.tv_nsec = s->wc_nsec;
-		rmb();
-	}
-	while ((s->wc_version & 1) | (shadow_ts_version ^ s->wc_version));
+    shared_info_t *s = HYPERVISOR_shared_info;
+
+    do {
+        shadow_ts_version = s->wc_version;
+        rmb();
+        shadow_ts.tv_sec  = s->wc_sec;
+        shadow_ts.tv_nsec = s->wc_nsec;
+        rmb();
+    } while ( (s->wc_version & 1) | (shadow_ts_version ^ s->wc_version) );
 }
 
-
 int gettimeofday(struct timeval *tv, void *tz)
 {
     uint64_t nsec = monotonic_clock();
 
-    if (!wc_values_up_to_date())
-	update_wallclock();
+    if ( !wc_values_up_to_date() )
+        update_wallclock();
 
     nsec += shadow_ts.tv_nsec;
 
@@ -209,7 +202,7 @@ EXPORT_SYMBOL(gettimeofday);
 void block_domain(s_time_t until)
 {
     ASSERT(irqs_disabled());
-    if(monotonic_clock() < until)
+    if ( monotonic_clock() < until )
     {
         HYPERVISOR_set_timer_op(until);
 #ifdef CONFIG_PARAVIRT
@@ -228,9 +221,8 @@ static void timer_handler(evtchn_port_t ev, struct pt_regs *regs, void *ign)
     HYPERVISOR_set_timer_op(monotonic_clock() + MILLISECS(1));
 }
 
-
-
 static evtchn_port_t port;
+
 void init_time(void)
 {
     port = bind_virq(VIRQ_TIMER, &timer_handler, NULL);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:17:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:17:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761816.1171878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVryP-0006dA-Q7; Mon, 22 Jul 2024 12:17:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761816.1171878; Mon, 22 Jul 2024 12: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 1sVryP-0006d3-NG; Mon, 22 Jul 2024 12:17:01 +0000
Received: by outflank-mailman (input) for mailman id 761816;
 Mon, 22 Jul 2024 12:17: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=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVryO-0005pO-Ea
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:17:00 +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 4b003585-4824-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 14:16:58 +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 6B0851FB6A;
 Mon, 22 Jul 2024 12:16:58 +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 39B69138A7;
 Mon, 22 Jul 2024 12:16:58 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id ZttyDLpNnmYiIQAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 22 Jul 2024 12:16: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: 4b003585-4824-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721650618; 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=Egb0SYtRB9pNdsEw7/uOObXIsq6lW6qyCeWg38yHfSM=;
	b=MKK4HPiHSnwTZdflIzMCKzOOigqb3aR4YLzBdUiM2OSEMdQfqzrPAojEY9yC6BXtF00kOd
	NT7vURriElgHqgD+SSumwxkqW3ur1rD01MRFkNRz8TlBTlyWh1/XUhuQVAea6cdgsXD+m1
	p9rqIuH0fA2DCB612moxIHZBansol4I=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=MKK4HPiH
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721650618; 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=Egb0SYtRB9pNdsEw7/uOObXIsq6lW6qyCeWg38yHfSM=;
	b=MKK4HPiHSnwTZdflIzMCKzOOigqb3aR4YLzBdUiM2OSEMdQfqzrPAojEY9yC6BXtF00kOd
	NT7vURriElgHqgD+SSumwxkqW3ur1rD01MRFkNRz8TlBTlyWh1/XUhuQVAea6cdgsXD+m1
	p9rqIuH0fA2DCB612moxIHZBansol4I=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 2/3] mini-os: remove some not needed stuff from arch/x86/time.c
Date: Mon, 22 Jul 2024 14:16:42 +0200
Message-ID: <20240722121643.18116-3-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240722121643.18116-1-jgross@suse.com>
References: <20240722121643.18116-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -3.81
X-Rspamd-Action: no action
X-Spam-Level: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: 6B0851FB6A
X-Spamd-Result: default: False [-3.81 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	DWL_DNSWL_LOW(-1.00)[suse.com:dkim];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	TO_DN_SOME(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	DKIM_TRACE(0.00)[suse.com:+]
X-Spam-Flag: NO

Remove unused or not needed stuff from arch/x86/time.c.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/time.c | 16 ----------------
 1 file changed, 16 deletions(-)

diff --git a/arch/x86/time.c b/arch/x86/time.c
index a473a9e1..7fd7abef 100644
--- a/arch/x86/time.c
+++ b/arch/x86/time.c
@@ -48,7 +48,6 @@ struct shadow_time_info {
     uint64_t tsc_timestamp;     /* TSC at last update of time vals.  */
     uint64_t system_timestamp;  /* Time, in nanosecs, since boot.    */
     uint32_t tsc_to_nsec_mul;
-    uint32_t tsc_to_usec_mul;
     int tsc_shift;
     uint32_t version;
 };
@@ -57,19 +56,6 @@ static uint32_t shadow_ts_version;
 
 static struct shadow_time_info shadow;
 
-#ifndef rmb
-#define rmb()  __asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory")
-#endif
-
-#define HANDLE_USEC_OVERFLOW(_tv)           \
-    do {                                    \
-        while ( (_tv)->tv_usec >= 1000000 ) \
-        {                                   \
-            (_tv)->tv_usec -= 1000000;      \
-            (_tv)->tv_sec++;                \
-        }                                   \
-    } while ( 0 )
-
 static inline int time_values_up_to_date(void)
 {
     struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
@@ -143,8 +129,6 @@ static void get_time_values_from_xen(void)
         shadow.tsc_shift         = src->tsc_shift;
         rmb();
     } while ( (src->version & 1) | (shadow.version ^ src->version) );
-
-    shadow.tsc_to_usec_mul = shadow.tsc_to_nsec_mul / 1000;
 }
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:17:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:17:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761819.1171888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVryV-00074N-7r; Mon, 22 Jul 2024 12:17:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761819.1171888; Mon, 22 Jul 2024 12:17:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVryV-00074C-4u; Mon, 22 Jul 2024 12:17:07 +0000
Received: by outflank-mailman (input) for mailman id 761819;
 Mon, 22 Jul 2024 12:17: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=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVryU-0005pO-6s
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:17:06 +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 4f112dc2-4824-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 14:17:05 +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 0B7A921849;
 Mon, 22 Jul 2024 12:17:04 +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 CF2B2138A7;
 Mon, 22 Jul 2024 12:17:03 +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 txsdMb9NnmYtIQAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 22 Jul 2024 12:17: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: 4f112dc2-4824-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721650625; 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=vN1oYJgnKGXgHS+7WZJ4Q18USh1zc0tS4qvELPG//0g=;
	b=l6XNNSormHLDQBcjM97GIRBqTF/133nH+AlzKg2vtmDgbPPgW7gRbZvsyqJdqBOmZYdN9x
	qi82ljcj/E5XsQKv15B1S4EQ5cc3qZoMxJXazlsrIpnPD053XrNpB6twXWKE80MIlWI4QT
	oihsNOqNqs2ticUVAwyB2UUKuBgWehs=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=O3T7queS
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721650624; 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=vN1oYJgnKGXgHS+7WZJ4Q18USh1zc0tS4qvELPG//0g=;
	b=O3T7queSEzN2XVVxG1f++WZkkjdp+K9+jUCCfCabUE6kDkip/ZXjYjQh5jSWg1a/bKhNKh
	zqAvjlvq1Xv8SMmB50p1oYh/B9Wng2HGgaH9Q9rV7ICEaBCEyXi8JueZ/53kTXZ+1Vhbzg
	GtYNCJPoLBSYtEtQOv9i/UKLTmOQPRg=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 3/3] mini-os: simplify monotonic_clock()
Date: Mon, 22 Jul 2024 14:16:43 +0200
Message-ID: <20240722121643.18116-4-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240722121643.18116-1-jgross@suse.com>
References: <20240722121643.18116-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -3.81
X-Rspamd-Action: no action
X-Spam-Level: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: 0B7A921849
X-Spamd-Result: default: False [-3.81 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	DWL_DNSWL_LOW(-1.00)[suse.com:dkim];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:dkim,suse.com:email];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	TO_DN_SOME(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	DKIM_TRACE(0.00)[suse.com:+]
X-Spam-Flag: NO

monotonic_clock() in arch/x86/time.c is more complex than needed: it
has basically two nested loops making sure the time data obtained from
Xen are valid.

Simplify that by merging some of the used sub-functions into the main
function and using only a single loop. Further simplify the code by
using struct vcpu_time_info for the local instance instead of defining
a similar structure in the code.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/time.c | 58 ++++++++++++++-----------------------------------
 1 file changed, 16 insertions(+), 42 deletions(-)

diff --git a/arch/x86/time.c b/arch/x86/time.c
index 7fd7abef..52916e15 100644
--- a/arch/x86/time.c
+++ b/arch/x86/time.c
@@ -44,24 +44,10 @@
  *************************************************************************/
 
 /* These are peridically updated in shared_info, and then copied here. */
-struct shadow_time_info {
-    uint64_t tsc_timestamp;     /* TSC at last update of time vals.  */
-    uint64_t system_timestamp;  /* Time, in nanosecs, since boot.    */
-    uint32_t tsc_to_nsec_mul;
-    int tsc_shift;
-    uint32_t version;
-};
 static struct timespec shadow_ts;
 static uint32_t shadow_ts_version;
 
-static struct shadow_time_info shadow;
-
-static inline int time_values_up_to_date(void)
-{
-    struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
-
-    return shadow.version == src->version;
-}
+static struct vcpu_time_info shadow;
 
 static inline int wc_values_up_to_date(void)
 {
@@ -113,22 +99,7 @@ static unsigned long get_nsec_offset(void)
     rdtscll(now);
     delta = now - shadow.tsc_timestamp;
 
-    return scale_delta(delta, shadow.tsc_to_nsec_mul, shadow.tsc_shift);
-}
-
-static void get_time_values_from_xen(void)
-{
-    struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
-
-    do {
-        shadow.version = src->version;
-        rmb();
-        shadow.tsc_timestamp     = src->tsc_timestamp;
-        shadow.system_timestamp  = src->system_time;
-        shadow.tsc_to_nsec_mul   = src->tsc_to_system_mul;
-        shadow.tsc_shift         = src->tsc_shift;
-        rmb();
-    } while ( (src->version & 1) | (shadow.version ^ src->version) );
+    return scale_delta(delta, shadow.tsc_to_system_mul, shadow.tsc_shift);
 }
 
 /*
@@ -138,19 +109,22 @@ static void get_time_values_from_xen(void)
  */
 uint64_t monotonic_clock(void)
 {
-    uint64_t time;
-    uint32_t local_time_version;
+    struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
 
-    do {
-        local_time_version = shadow.version;
-        rmb();
-        time = shadow.system_timestamp + get_nsec_offset();
-        if ( !time_values_up_to_date() )
-            get_time_values_from_xen();
-        rmb();
-    } while ( local_time_version != shadow.version );
+    if ( shadow.version != src->version )
+    {
+        do {
+            shadow.version = src->version;
+            rmb();
+            shadow.tsc_timestamp     = src->tsc_timestamp;
+            shadow.system_time       = src->system_time;
+            shadow.tsc_to_system_mul = src->tsc_to_system_mul;
+            shadow.tsc_shift         = src->tsc_shift;
+            rmb();
+        } while ( (src->version & 1) || (shadow.version != src->version) );
+    }
 
-    return time;
+    return shadow.system_time + get_nsec_offset();
 }
 
 static void update_wallclock(void)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:20:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:20:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761853.1171901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVs1i-00012V-Pf; Mon, 22 Jul 2024 12:20:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761853.1171901; Mon, 22 Jul 2024 12:20: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 1sVs1i-00012O-Mx; Mon, 22 Jul 2024 12:20:26 +0000
Received: by outflank-mailman (input) for mailman id 761853;
 Mon, 22 Jul 2024 12:20: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVs1h-00012I-1u
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:20:25 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c4d86b2d-4824-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 14:20:23 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52f04150796so1097315e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 05:20: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
 a640c23a62f3a-a7a3c785b89sm415683066b.36.2024.07.22.05.20.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 05:20: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: c4d86b2d-4824-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721650822; x=1722255622; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fMNh7FBPsBo1tfiC+OaicVwt+SBfn+RT7xkOluCDgEw=;
        b=DQomlsZsZ9t0Ougi1IjYbDPEV+F4CfcR7hJtoSKcHG9z4yCvn1raA6iDCaZ0e1IXpc
         fdohKwrfq6hkG2R5KU7yFHTDoNTRP7i3a17iqpqjOj9FT/iWIssICLW8Cg3cQtoMayO5
         X9S1A4nuuUKGcZTrhjyZXfnUrVV+lTQrRDYneVIVLejrgK27uHg1ZtJgogsTDQCxE2HQ
         YYM9TlnGk+gopdmx5AZjitSwRGQyd+kNRYv8zQvfvqawGUKl3viIVZw82M0cPxBKx4oI
         enqRWwP5EKT3ED9z06ecncmXopc0WPTapJb7/ial+13ntFIbA/TgxjhS03Bo21LuFR32
         Ib2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721650822; x=1722255622;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fMNh7FBPsBo1tfiC+OaicVwt+SBfn+RT7xkOluCDgEw=;
        b=gTsZtD+W/AanhLsmmbD8e+ugtkijmxSRcYjr8JY6GvJQOaKjHg7DJdHLl57eZUWE+s
         OT8wSom1WufHAf+eka+SaAcUP0qQla0YAr9Xk2pXFXwfoqb6LVtlHH6ETAUrLFrAGapX
         N/ZJ8KQbpPA3hMb4hLMIaXx5b5c0x6BoITkA8Y7Ii8wKoy/ncYjc+SS7g+ioCB5phVYH
         3EG2mULxaL5/pcqA/4VkD9d5ke1FpCn7R23TQAr6fYz4CX+vJTFBfCXNdZdNoGJVIs1h
         /6/lGPvHf0cNzRBWTDCsckOW/X5JXQZhWh3cDVrVZVrKt/g/LDqmxpgoYAncfqpmBoF/
         znig==
X-Forwarded-Encrypted: i=1; AJvYcCWONsRd94a91NJPkmdEc7V1VDcOIDY+yaqJJcU4WTQG6XHj6dpcTDsyf2biMLDpo+O2aYEeSijk6pgsLfJQaj3WD6+9aRTe06LmtVKHiBI=
X-Gm-Message-State: AOJu0YzvK8dXh+l86ahquWAGRWuA1DyiFW53dJ252F2A3eAWkcaRudnt
	9IgYFHK6h0Y2HCn33kCXkRkA3UAPWIZIaVaCrG4PjwwuGd+90paFodKV2vkFrg==
X-Google-Smtp-Source: AGHT+IEZtTsgswGnEBJn3t7Khak3o+4+5720hQ9v+YL1+X1Z6yno4BQW3BqW2wHLHQiEXHvJVQaSVw==
X-Received: by 2002:a05:6512:3e14:b0:52c:d78b:d0b8 with SMTP id 2adb3069b0e04-52efb780b4amr4695585e87.39.1721650822502;
        Mon, 22 Jul 2024 05:20:22 -0700 (PDT)
Message-ID: <9bd41e19-50f7-43e7-b3ce-c2870a836f79@suse.com>
Date: Mon, 22 Jul 2024 14:20:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/2] Add tools/fuzz/oss-fuzz/build.sh
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
References: <20240722112752.4981-1-tamas@tklengyel.com>
 <20240722112752.4981-2-tamas@tklengyel.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240722112752.4981-2-tamas@tklengyel.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.07.2024 13:27, Tamas K Lengyel wrote:
> --- /dev/null
> +++ b/LICENSES/Apache-2.0
> @@ -0,0 +1,202 @@
> +
> +                                 Apache License
> +                           Version 2.0, January 2004
> +                        http://www.apache.org/licenses/

Better https:// (also near the end) nowadays?

Other files in this directory also have at least one Valid-License-Identifier:
line and at least one SPDX-URL: one. Depending on what would be put there, I'd
then wonder whether ...

> --- /dev/null
> +++ b/tools/fuzz/oss-fuzz/build.sh
> @@ -0,0 +1,11 @@
> +#!/bin/bash -eu
> +# Copyright 2024 Google LLC
> +# SPDX-License-Identifier: Apache-2.0

... there wouldn't want to be an "-only" tag here. Yet I'm entirely uncertain
with this, as CC-BY-4.0 also has no such tag.

I guess I should offer making respective adjustments while committing. I'll
wait with an ack though to give Alejandro some time to confirm that you
addressed his bash related comment.

Jan

> +# This script is intended to be run only from the oss-fuzz docker framework
> +# See https://google.github.io/oss-fuzz/getting-started/new-project-guide/#buildsh
> +cd xen
> +./configure --disable-stubdom --disable-pvshim --disable-docs --disable-xen --with-system-qemu
> +make clang=y -C tools/include
> +make clang=y -C tools/fuzz/x86_instruction_emulator libfuzzer-harness
> +cp tools/fuzz/x86_instruction_emulator/libfuzzer-harness $OUT/x86_instruction_emulator



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:24:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:24:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761861.1171911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVs5V-0001cx-86; Mon, 22 Jul 2024 12:24:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761861.1171911; Mon, 22 Jul 2024 12:24:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVs5V-0001cq-5N; Mon, 22 Jul 2024 12:24:21 +0000
Received: by outflank-mailman (input) for mailman id 761861;
 Mon, 22 Jul 2024 12:24: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVs5T-0001ck-7d
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:24:19 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 50f8f188-4825-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 14:24:18 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a77ec5d3b0dso391666466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 05:24: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
 a640c23a62f3a-a7a3c785e07sm416966066b.38.2024.07.22.05.24.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 05:24: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: 50f8f188-4825-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721651058; x=1722255858; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jdyvCYgVUhL7JLk69HLz/tzI3ek6aeHibTJbGk/n0L4=;
        b=SuW9eUZYtGH1InXEaZhRDy2zGjClpCY5J3FXf3jlHT1fmw0PAQRuyUEUiKOcBMqOQA
         X8OXl748f1ON4GAHiv8/G4jnVIu4YRotNpz1T7zanzIM47+Dp8kB49OPcZ1OdsEn3AGu
         qO1M/QE+cSxYYb2j+bFCOWpZa6fcX/48Cd/iC4PTxu2kXM51RFrXzSNecKJlZfI0CjNX
         o80VY/2ECaF0O0vh4gEVskFViO87zoCq/+HXg+d7WxSladBXJifVoGD+AKrnEAnZyHDm
         bIzAsyGO4ls8IbtuYG5Swlh+9w5ErZrZ/mNDwbyUd2DXjyanDGY6M1ZSUA6pn85pt94K
         Pp3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721651058; x=1722255858;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jdyvCYgVUhL7JLk69HLz/tzI3ek6aeHibTJbGk/n0L4=;
        b=aBOTrvee5y6rdaJFcd3zmN0CwOejhzBOg1b7Erv/Lty1mSvu+XGRzWe9id4SU2ssqW
         JLlOco9uPxZmmjM9qsXS/Qo/MWc2kyE93cuj+iP39YgGDqv/vgQeUcEkeOI45qpO7bMr
         LtzLu0hKSkerQTEGMmXBGeyx7jXBEP3/YAx71yIDMwHhVXlCCAtWAkBx6iTswBzMUnpx
         caIDKaN2zWvj+KhpLZvM97hxEtF5MphpFzqFZrMOBTSRRrvzVi586I1xpJpFjAnt38/n
         wd+37GjKxczWPHkrAW3xUCn0VakRA4uVycm5ZLX1X59dl2VKYbKEnpm/YAuy7LT2C66t
         s/wg==
X-Forwarded-Encrypted: i=1; AJvYcCUwwIwscoNGhZIe6svtG6+040kzAWprtr7W/bALN1aJDCTLrW8Wy8qqZdFNHUxG76dwR7P37IBzwlaHpdOC/B2h6Rg3CcgKrK5kkVE9L70=
X-Gm-Message-State: AOJu0YzKwZYefov/OsLrUlFcrVr8zOJEzm4hzfCj9SD4SPM5yg0rhtDs
	ui2Lz3168p8OsrT4T+/zcqKcA5Nv5snvyuLxpWTqJKulvjnooGwdSGgiYVDEXQ==
X-Google-Smtp-Source: AGHT+IGaZ2K+Wrj0Haah4EjShbTPdqKRrild+LOIcVNPQ2e2f9C6N+3QzIlFx5YUDI9odY0hVpw1EQ==
X-Received: by 2002:a17:907:7f0c:b0:a7a:83f8:cfcf with SMTP id a640c23a62f3a-a7a83f8dc14mr3900566b.35.1721651057634;
        Mon, 22 Jul 2024 05:24:17 -0700 (PDT)
Message-ID: <9013e512-2710-4492-8e60-8f25ba32bbe6@suse.com>
Date: Mon, 22 Jul 2024 14:24:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/2] Add libfuzzer target to
 fuzz/x86_instruction_emulator
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
References: <20240722112752.4981-1-tamas@tklengyel.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240722112752.4981-1-tamas@tklengyel.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.07.2024 13:27, Tamas K Lengyel wrote:
> This target enables integration into oss-fuzz. Changing invalid input return
> to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding the
> missing __wrap_vsnprintf wrapper which is required for successful oss-fuzz
> build.
> 
> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> ---
> v3: don't include libfuzzer-harness in target 'all' as it requires specific cc

With this, how is it going to be built at all? Only by invoking the special
target "manually" as it seems? Which sets this up for easy bit-rotting. I
wonder what others think here ...

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:36:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:36:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761880.1171921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVsHI-00044i-9P; Mon, 22 Jul 2024 12:36:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761880.1171921; Mon, 22 Jul 2024 12:36:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVsHI-00044b-6R; Mon, 22 Jul 2024 12:36:32 +0000
Received: by outflank-mailman (input) for mailman id 761880;
 Mon, 22 Jul 2024 12:36: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=aIMA=OW=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sVsHG-00044V-T9
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:36:31 +0000
Received: from fhigh5-smtp.messagingengine.com
 (fhigh5-smtp.messagingengine.com [103.168.172.156])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 022fa498-4827-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 14:36:27 +0200 (CEST)
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 17DC7114009E;
 Mon, 22 Jul 2024 08:36:24 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute4.internal (MEProxy); Mon, 22 Jul 2024 08:36:24 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 22 Jul 2024 08:36: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: 022fa498-4827-11ef-8776-851b0ebba9a2
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=1721651784;
	 x=1721738184; bh=ypN56BFl3s/Ve7LjwV+i/fBSIKNDeBuN4CBqgZWT0bU=; b=
	Fhel1vZjPWtWA4NMk4fDTP1EgloSpj0gcFa95paBtajCvjxvEGombqew1SZcLLGn
	r2HJHWQ7B1QzBQqo9EHQ43AYUp4LpCQ723S0NuTI/KNKHpo03ejjNjqow0OIe82X
	IoHha2SkgsgZ4zb5ymQSMdB3mcCarkC8vLvt3Hf9wXHrXhU/T57n/M5gvM+6O0be
	DuvEu1IZiX6bQLaza5RASyVOJYhwOJMfklGyHEG3J9qMwvK+vLnaS2hgq6lawoQg
	ktK/n1BsoKPLhkJRxxrG48hKUZcHBeoXo1AWYr+1TMNpv31l9AL6ST5LI3KhNYv8
	xY5IasuNSCv/wJ77xVm1CQ==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1721651784; x=1721738184; bh=ypN56BFl3s/Ve7LjwV+i/fBSIKND
	eBuN4CBqgZWT0bU=; b=USEtC55WWS9V9OZOGlEellQ+wR8VcWrRjMLDKYX+Un+s
	PKGR5Lizg3w+FD5ckW4jAsJ2ldxEVtn4ZvFk87yse2XJvjfLFGqzAHcX/DyoVxku
	2pDIbxnu31MC/Xh1smABJe+7tlq6ykI0+RX/Fg7rztCPxWByZYJINdFtDh0Flgz3
	z6NvhcwPx3MuYppASSXLYNb09qqrd9b0zryQln05XChqsFiIIGh3n+ZtZiUwROuY
	DEWCIFEXj8yVDidonHiQkC1LOk3xmghQU7eU/ObNI/ruaSeg4y1M0lbN82jztsQv
	mAc7tym3D6NdDCfRKhbs9QcSdEmFWk8qgbT75oT0OA==
X-ME-Sender: <xms:R1KeZg-0ioQz_hFhzgdAGYPRzun9ofR9NuasHVDIKOcQRuCCSF4_Rw>
    <xme:R1KeZotAnlTtxBSUdbCnolo758v5Dmt_9VpPQYgdos6CV2epGqVquyOaKcegHqItR
    Pfpxx4t4-BS5Q>
X-ME-Received: <xmr:R1KeZmC14jbktXl79LEHhH4AC8LqU8S7YTNCIJAk_R7CmBOo82EkITipHK5dhKm3KyZtZAUGxSghkU7j2TWms0_-AJWy3TcXYw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheejgdehgecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudel
    teefvefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:R1KeZgfm3sYAkjSnW74rhkYQNLqxi0Z-uBuVgkGsb5vOdCp5GJ1y7A>
    <xmx:R1KeZlP_SUxsyq80jjYfwQ02sTSKp0VRs06B15qLwhoDVK8ADNXazg>
    <xmx:R1KeZqnkUNJgYG5zyQfKUMt4bQRiexF_QUC_AcYV0DieqzwOwqV48A>
    <xmx:R1KeZnvDSgYS11LusPDJH3zYfPTGNoD83zJS2VKZPkA-7RkdoJKq6A>
    <xmx:SFKeZmrWh0Pa_ygwIx4T3-0F_pTFw9_7N8WBYmyrYhKi0aj5yjHifROQ>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 22 Jul 2024 14:36:15 +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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/3] x86/mm: add API for marking only part of a MMIO
 page read only
Message-ID: <Zp5SQlB_QR47NmtY@mail-itl>
References: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
 <f0b36fb78b87d2f06c0d33da28ba16cd1d2fa8b9.1721356393.git-series.marmarek@invisiblethingslab.com>
 <dce600a3-4b1c-47e9-b336-42ca32e309c5@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="YYya+0V9dO8Q4qkD"
Content-Disposition: inline
In-Reply-To: <dce600a3-4b1c-47e9-b336-42ca32e309c5@suse.com>


--YYya+0V9dO8Q4qkD
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 22 Jul 2024 14:36:15 +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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/3] x86/mm: add API for marking only part of a MMIO
 page read only

On Mon, Jul 22, 2024 at 02:09:15PM +0200, Jan Beulich wrote:
> On 19.07.2024 04:33, Marek Marczykowski-G=C3=B3recki wrote:
> > @@ -4910,6 +4921,254 @@ long arch_memory_op(unsigned long cmd, XEN_GUES=
T_HANDLE_PARAM(void) arg)
> >      return rc;
> >  }
> > =20
> > +static void __iomem *subpage_mmio_find_page(mfn_t mfn)
> > +{
> > +    struct subpage_ro_range *entry;
>=20
> With the function returning void*, my first reaction was to ask why this
> isn't pointer-to-const. Yet then ...
>=20
> > +    list_for_each_entry(entry, &subpage_ro_ranges, list)
> > +        if ( mfn_eq(entry->mfn, mfn) )
> > +            return entry;
>=20
> ... you're actually returning entry here, just with its type zapped for
> no apparent reason. I also question the __iomem in the return type.

Right, a leftover from some earlier version.

> > +static int __init subpage_mmio_ro_add_page(
> > +    mfn_t mfn,
> > +    unsigned int offset_s,
> > +    unsigned int offset_e)
> > +{
> > +    struct subpage_ro_range *entry =3D NULL, *iter;
> > +    unsigned int i;
> > +
> > +    entry =3D subpage_mmio_find_page(mfn);
> > +    if ( !entry )
> > +    {
> > +        /* iter =3D=3D NULL marks it was a newly allocated entry */
> > +        iter =3D NULL;
>=20
> Yet you don't use "iter" for other purposes anymore. I think the variable
> wants renaming and shrinking to e.g. a simple bool.

+1

> > +        entry =3D xzalloc(struct subpage_ro_range);
> > +        if ( !entry )
> > +            return -ENOMEM;
> > +        entry->mfn =3D mfn;
> > +    }
> > +
> > +    for ( i =3D offset_s; i <=3D offset_e; i +=3D MMIO_RO_SUBPAGE_GRAN=
 )
> > +    {
> > +        bool oldbit =3D __test_and_set_bit(i / MMIO_RO_SUBPAGE_GRAN,
> > +                                        entry->ro_elems);
>=20
> Nit: Indentation looks to be off by 1 here.
>=20
> > +        ASSERT(!oldbit);
> > +    }
> > +
> > +    if ( !iter )
> > +        list_add(&entry->list, &subpage_ro_ranges);
>=20
> What's wrong with doing this right in the earlier conditional?
>=20
> > +int __init subpage_mmio_ro_add(
> > +    paddr_t start,
> > +    size_t size)
> > +{
> > +    mfn_t mfn_start =3D maddr_to_mfn(start);
> > +    paddr_t end =3D start + size - 1;
> > +    mfn_t mfn_end =3D maddr_to_mfn(end);
> > +    unsigned int offset_end =3D 0;
> > +    int rc;
> > +    bool subpage_start, subpage_end;
> > +
> > +    ASSERT(IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN));
> > +    ASSERT(IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN));
> > +    if ( !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
> > +        return -EINVAL;
>=20
> I think I had asked before: Why is misaligned size something that wants a
> release build fallback to the assertion, but not misaligned start?

Misaligned start will lead to protecting larger area, not smaller, so it
is not unsafe thing to do. But I can also make it return an error, it
shouldn't happen after all.

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

--YYya+0V9dO8Q4qkD
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmaeUkIACgkQ24/THMrX
1yxzWwf/XX6LeOUlrcfSwO7/Yn9gRodsIRsJlfaoqA8Ztd/IVkYdZuesfmH14RHD
5H/BeLoAaVfLiAVYm5EDq8Wz93Dfz/MqnalAVwJxEP0XRf31QQi5b/mzlAZ5idlB
IqU/vzzQ/am8NIyTcLJh6mCspDjRc/TomhI3hAYyU3b+Z+fR6mR5HvsoaebJ7sIO
WYgeYUP4cB84sgk491n2uRTV7m7Ixoo61FPbdlWVUVjS64GAwxAIz916naYRjYJR
Zetz06m4jXz9i6B845kjQMEaATfPjoIg8l210/v1SK77smiSIr4oFUhbd9HtfluS
wrlUrJNLPLaOjEZwrITO7xHU6TUu0g==
=rYLJ
-----END PGP SIGNATURE-----

--YYya+0V9dO8Q4qkD--


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:42:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:42:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761888.1171932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVsMt-000687-0x; Mon, 22 Jul 2024 12:42:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761888.1171932; Mon, 22 Jul 2024 12:42:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVsMs-000680-UJ; Mon, 22 Jul 2024 12:42:18 +0000
Received: by outflank-mailman (input) for mailman id 761888;
 Mon, 22 Jul 2024 12:42:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVsMr-00066N-EM
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:42:17 +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 d39492f6-4827-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 14:42:16 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a77e2f51496so430970866b.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 05: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
 a640c23a62f3a-a7a3c785f31sm416374466b.30.2024.07.22.05.42.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 05:42: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: d39492f6-4827-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721652136; x=1722256936; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Cu5FYPa3xDXi8Co0MiMRV9ZwcRFK9Bx4tlWAmxNchAA=;
        b=Dx2a97Mdnnazfd0ORd7ocThoxES/HN3U0NK3IYKPeeAwHeEW8SIrgGchhaR5hl+wqm
         qfqS7G0UBHU5nfgUFlUdq9zyva9IDlqAuUJs/RiD9rOBt5SWqhnMlH1tLB3KMOaTkpbc
         5ZYtRIOQQpBIpvredZOBK4gAsOJKCGk2hYU0oEHci2AkuqjY236QzB0bL+TuvBo3kqD3
         Wk4/ESkEDqxND23SxPUTtvht0os0eseHAT3T21TfI8zHQBK1eN6SaaS+eoyf+Nm7sE+t
         w6bu5H4duj7Z/8JIhFxG8KvUIuKTUEIHNA1UPEH9t5fGjp9DQIUb88eegP5uG2cfnwaG
         AUlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721652136; x=1722256936;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Cu5FYPa3xDXi8Co0MiMRV9ZwcRFK9Bx4tlWAmxNchAA=;
        b=sS0tJhrOHXwyyUNHghLclACUP4VreftLYZI5qfWVEpyzJ/pHgEi0WILKVoZS4irsoI
         qSbIygOt8plpQ8+522xKKFGKiDjuM98Q4I3p1gFYbzUZH1+i9TEMaToOCjTPLE4gy5pd
         Fxzx0u8tnc/5N9HXl5T/tpHYt88gPMQde9GU7N5b1nZV4b7AUXh51/YVKnRfEdIi8opU
         GTHTfE7gT37WkItqX00X38rlYHaPtnNfB0qr76Skt1rpEHvfdyEWFK0pAV9daCRt9QQv
         uxHmWYzvN8DcLyH3q652LBQiWoyrLemsJTtdWUhh9URmEmPhl3/ZoEAEQzOOqHKc3s+J
         GLgg==
X-Forwarded-Encrypted: i=1; AJvYcCUi1BQ07iMHSh7MRoOO45ghD/65HSbplY3w5RY1a57eOQPxU8KzF/3AaWCqdyHABi49IpHg3YX65W5IglZvQ7Zqz6ojt5hdoUmtLRay1Gg=
X-Gm-Message-State: AOJu0Yzau6ikkHmcV3Aw4XGdzxFw5uhUCDP0niYBwhKymCjihSj7zol2
	UdSMmeb+i0ukA0VtuMPDJWxiThW+W7wauCF+lyel9djViPVxS8Vz9lzgAYSOSg==
X-Google-Smtp-Source: AGHT+IEIEcXXu13amj/sNql9hhkbADHp46yUR1y2USBO12JSj8ICivhHvOJBfH45LgBJP7+kbecAzA==
X-Received: by 2002:a17:906:d555:b0:a72:8a75:6559 with SMTP id a640c23a62f3a-a7a4c3f8f77mr416527666b.47.1721652135743;
        Mon, 22 Jul 2024 05:42:15 -0700 (PDT)
Message-ID: <16648c6c-416d-4205-8d16-38c006251bb9@suse.com>
Date: Mon, 22 Jul 2024 14:42:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.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: <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 18:22, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/config.h
> +++ b/xen/arch/riscv/include/asm/config.h
> @@ -74,11 +74,20 @@
>  #error "unsupported RV_STAGE1_MODE"
>  #endif
>  
> +#define XEN_SIZE                MB(2)
> +#define XEN_VIRT_END            (XEN_VIRT_START + XEN_SIZE)
> +
> +#define BOOT_FDT_VIRT_START     XEN_VIRT_END
> +#define BOOT_FDT_VIRT_SIZE      MB(4)
> +
>  #define DIRECTMAP_SLOT_END      509
>  #define DIRECTMAP_SLOT_START    200
>  #define DIRECTMAP_VIRT_START    SLOTN(DIRECTMAP_SLOT_START)
>  #define DIRECTMAP_SIZE          (SLOTN(DIRECTMAP_SLOT_END) - SLOTN(DIRECTMAP_SLOT_START))
>  
> +#define FIXMAP_BASE             (BOOT_FDT_VIRT_START + BOOT_FDT_VIRT_SIZE)
> +#define FIXMAP_ADDR(n)          (FIXMAP_BASE + (n) * PAGE_SIZE)

Why exactly do you insert this here, and not adjacent to BOOT_FDT_VIRT_*,
which it actually is adjacent with? Then ...

>  #define FRAMETABLE_SCALE_FACTOR  (PAGE_SIZE/sizeof(struct page_info))
>  #define FRAMETABLE_SIZE_IN_SLOTS (((DIRECTMAP_SIZE / SLOTN(1)) / FRAMETABLE_SCALE_FACTOR) + 1)

... this would also stay next to DIRECTMAP_*, which it uses.

> --- a/xen/arch/riscv/include/asm/page.h
> +++ b/xen/arch/riscv/include/asm/page.h
> @@ -81,6 +81,13 @@ static inline void flush_page_to_ram(unsigned long mfn, bool sync_icache)
>      BUG_ON("unimplemented");
>  }
>  
> +/* Write a pagetable entry. */
> +static inline void write_pte(pte_t *p, pte_t pte)
> +{
> +    *p = pte;
> +    asm volatile ("sfence.vma");

When they don't have operands, asm()-s are volatile anyway (being explicit
about this may still be desirable, yes). But: Can you get away without
operands here? Don't you need a memory clobber for the fence to actually
remain where it is needed?

Also, nit (style): Blanks missing.

> --- a/xen/arch/riscv/mm.c
> +++ b/xen/arch/riscv/mm.c
> @@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
>  pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
>  stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT * PAGETABLE_ENTRIES];
>  
> +pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> +xen_fixmap[PAGETABLE_ENTRIES];

Any reason this cannot be static?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:48:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761899.1171948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVsTB-0007Kz-N1; Mon, 22 Jul 2024 12:48:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761899.1171948; Mon, 22 Jul 2024 12: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 1sVsTB-0007Ks-JZ; Mon, 22 Jul 2024 12:48:49 +0000
Received: by outflank-mailman (input) for mailman id 761899;
 Mon, 22 Jul 2024 12:48: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=QQNa=OW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sVsTA-0007Km-DJ
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:48:48 +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 bbf6ff21-4828-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 14:48:46 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a77e2f51496so431863566b.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 05:48:46 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c7bda1dsm419337366b.63.2024.07.22.05.48.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 05:48: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: bbf6ff21-4828-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721652525; x=1722257325; 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=4IVvMuKY54fmNQoBGumDjtVtDu5OeDg/8aXNZuHjhyA=;
        b=VQXSj4D119kheunqdSdOwZ7Z58S4haTij8ysii4ULP29NGxe28tupTJJAlIc4qXQhK
         EQWaiwpRNJY6MGF4FSe0+iypF8jRDOmmbV8KqoPHhhnGaGL+MKmx9RIJlkkECbhEWFUN
         b1cDci/MwfXv1DVPV7FvIcVzAMk9Fm+YbEg2o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721652525; x=1722257325;
        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=4IVvMuKY54fmNQoBGumDjtVtDu5OeDg/8aXNZuHjhyA=;
        b=srE11ekwg8yR+9Prqh01f3kb9xM7+5YF8GGEiPtlGQIYqszPQMK7vH1K2LZ/inluBn
         UrBYEBRAJ4ffq9jLznVM2SH9HDQ0Z5r8Qb4IpQmvb3O5U20Boz+hh/fDMUM3iS6cLJaz
         gNNuIXCjbIBai5GZSiN4Fn255VhPoeM6XljC+kRMd89qBekyYJvuWqWy/flEEiOAdJ/o
         yC6+BZfm7f3/wqBdvXab7vEK8RoV6BHxtCC1bqxcMcTcIjXL/eLAdw+FnHro9tsXZlsH
         7Bam7i3uJDbZ0YorE6rmptDR+et6OKALMoSgEwwRq3KJnxhGDj6/7LfBBiOU3TGaMHiD
         Mh9A==
X-Gm-Message-State: AOJu0YwfAD5vUWtWc9+pYerdiMAQyPJD9R9yGr7zjlob7787iy5FoAV3
	5Nkvt/KR/2YywQqgKRmhfC8SePjQcrfOl5Dz5bHWl2M0sUXhUrScXIXf/L5nVG/JZV/dtorE0C2
	1
X-Google-Smtp-Source: AGHT+IEwbsiQ4lwVaxjT+mjNSj3kl0UCcYZ91Ak7hXxJrCeYzlBhK+zGClYeCh6cORGJjHHwYlGonQ==
X-Received: by 2002:a17:907:94c9:b0:a77:b052:877e with SMTP id a640c23a62f3a-a7a4c011377mr485576266b.19.1721652525190;
        Mon, 22 Jul 2024 05:48: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>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH] xen: Fix the figlet banner
Date: Mon, 22 Jul 2024 13:48:42 +0100
Message-Id: <20240722124842.4039445-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

4.20 is just wide enough to cause figlet to split the banner onto two lines:

   __  __
   \ \/ /___ _ __
    \  // _ \ '_ \
    /  \  __/ | | |
   /_/\_\___|_| |_|

   _  _    ____   ___                     _        _     _
  | || |  |___ \ / _ \    _   _ _ __  ___| |_ __ _| |__ | | ___
  | || |_   __) | | | |__| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
  |__   _| / __/| |_| |__| |_| | | | \__ \ || (_| | |_) | |  __/
     |_|(_)_____|\___/    \__,_|_| |_|___/\__\__,_|_.__/|_|\___|

Instruct figlet to use 100 column width, rather than 80, resulting in:

   __  __            _  _    ____   ___                     _        _     _
   \ \/ /___ _ __   | || |  |___ \ / _ \    _   _ _ __  ___| |_ __ _| |__ | | ___
    \  // _ \ '_ \  | || |_   __) | | | |__| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
    /  \  __/ | | | |__   _| / __/| |_| |__| |_| | | | \__ \ || (_| | |_) | |  __/
   /_/\_\___|_| |_|    |_|(_)_____|\___/    \__,_|_| |_|___/\__\__,_|_.__/|_|\___|

While fixing this, also fix a rendering error in the non-figlet case; while a
leading space looks better for figlet, it looks very wrong for the simple
one-line case.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
---
 xen/build.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/build.mk b/xen/build.mk
index 0f490ca71be1..942ff3867fdb 100644
--- a/xen/build.mk
+++ b/xen/build.mk
@@ -1,9 +1,9 @@
 quiet_cmd_banner = BANNER  $@
 define cmd_banner
     if command -v figlet >/dev/null 2>&1 ; then \
-	echo " Xen $(XEN_FULLVERSION)" | figlet -f $< > $@.tmp; \
+	echo " Xen $(XEN_FULLVERSION)" | figlet -w 100 -f $< > $@.tmp; \
     else \
-	echo " Xen $(XEN_FULLVERSION)" > $@.tmp; \
+	echo "Xen $(XEN_FULLVERSION)" > $@.tmp; \
     fi; \
     mv -f $@.tmp $@
 endef

base-commit: ff652ed5dcd797a46c84258255dfd429ae68a2d6
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:54:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:54:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761906.1171957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVsYL-0000NJ-9v; Mon, 22 Jul 2024 12:54:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761906.1171957; Mon, 22 Jul 2024 12:54:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVsYL-0000NC-6l; Mon, 22 Jul 2024 12:54:09 +0000
Received: by outflank-mailman (input) for mailman id 761906;
 Mon, 22 Jul 2024 12:54:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVsYJ-0000N3-CZ
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:54:07 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ac23487-4829-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 14:54:06 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2ef27bfd15bso17675071fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 05:54: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
 4fb4d7f45d1cf-5a30a4d70cbsm6086831a12.15.2024.07.22.05.54.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 05:54: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: 7ac23487-4829-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721652846; x=1722257646; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XhGfv3L8wgFLVBTBrmj130laA31TPFxkF248H/tu9l8=;
        b=b3Yi8gYOckeeO2zuie8Qt3QGclHHkeR3Rrq8iY/uDdKHWE6UmAhE3K5WljdwjSog2n
         1x9df/0V67owHWiOoFWAg9sWrQ5Dpr+nQHsG1R55skLv9aC3g5ph6zsYFLGJd2Us83mk
         hqpqaYWt6M2dp1whzRN+p1jaFazkJIRSkM6QjJm/6Qg28gtwBydr2KHjkKcKbXWyPyQc
         XtKoJDixwlOcpkYpuI4de8EeMgPo+dUhtqArYwPtQjY2ul3UQrJIWyW1U3++SBQstRa7
         +Lj/BcX0QDAo/PwQvVm4wJEqCuy/BQrFXQ7Eh9x2kgza6sfUb9ZCalwfbZ2amz1qkJV+
         vIOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721652846; x=1722257646;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XhGfv3L8wgFLVBTBrmj130laA31TPFxkF248H/tu9l8=;
        b=ZYp3udcD2xx0H2u1otR1+56leIetXAcU/8OisnfKzKoi2q5TiWBc3DI6BBruFVs++g
         DqHV6j52w4sqmdi72PYeflkjRH9/X/qDrOrpx818utygw/3HoaiUkH3P2HAcviG/tcyH
         w3e6hm+0wSoPaX7fn2RcKXkEQalOatniVMS3ZwgY0QlDMkx0NIr/NvONLToxtDXhpPtR
         pLe+q9LvtwEd87OyXyRWHZVL7mgN+YQt3bKjnpVTFIOREw4wXWGdJ5ybsPl68LXTy1VX
         nXH7i/740AmfbYLxTKmluay5vNFMQUMRrHer890uZvIgRGOvOKnmtxkQf4J3xE1zDu5P
         dDvw==
X-Forwarded-Encrypted: i=1; AJvYcCX5xTWBI7/gVw3dKpnkUWURR6rV9cGrmRPEjDXA8ETkumz71gyJp57zIpxcMbtXJR5EI5c243dUcbO03JgyMMmXe2hBslhvcdBTiABcGz4=
X-Gm-Message-State: AOJu0YyeJj4xcS/qtlKQj2CxYBek1hgbJuLHWk300Kh1t0eAETSlE8jm
	ycx87TgRRMVVjRkJzgJRVDsFtuhKkkxiuuGzCfUoyl7FiFcgxghd99y+5qHmZg==
X-Google-Smtp-Source: AGHT+IHOSjDjhL2Fg7I1IYnZNaB8XZTzMUhIVkdcSg1wtPiuknRAt4QMVpblP1UFyUrSP7q5OUq8pQ==
X-Received: by 2002:a2e:a30a:0:b0:2ef:232c:694a with SMTP id 38308e7fff4ca-2ef232c6c0emr36245721fa.8.1721652845726;
        Mon, 22 Jul 2024 05:54:05 -0700 (PDT)
Message-ID: <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
Date: Mon, 22 Jul 2024 14:54:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.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: <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.07.2024 18:22, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/pmap.h
> @@ -0,0 +1,28 @@
> +#ifndef __ASM_PMAP_H__
> +#define __ASM_PMAP_H__
> +
> +#include <xen/bug.h>
> +#include <xen/mm.h>
> +
> +#include <asm/fixmap.h>
> +
> +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
> +{
> +    pte_t *entry = &xen_fixmap[slot];
> +    pte_t pte;
> +
> +    ASSERT(!pte_is_valid(*entry));
> +
> +    pte = mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
> +    pte.pte |= PTE_LEAF_DEFAULT;
> +    write_pte(entry, pte);
> +}
> +
> +static inline void arch_pmap_unmap(unsigned int slot)
> +{
> +    pte_t pte = {};
> +
> +    write_pte(&xen_fixmap[slot], pte);
> +}

Why are these not using set_fixmap() / clear_fixmap() respectively?

> --- a/xen/arch/riscv/mm.c
> +++ b/xen/arch/riscv/mm.c
> @@ -370,3 +370,17 @@ int map_pages_to_xen(unsigned long virt,
>      BUG_ON("unimplemented");
>      return -1;
>  }
> +
> +static inline pte_t mfn_to_pte(mfn_t mfn)

This name suggests (to me) that you're getting _the_ (single) PTE for
a given MFN. However, what the function is doing is make a PTE using
the given MFN. On x86 at least the common way to name such a function
would be pte_from_mfn().

> +{
> +    unsigned long pte = mfn_x(mfn) << PTE_PPN_SHIFT;
> +    return (pte_t){ .pte = pte};

Nit: Blank missing.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 12:58:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 12:58:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761914.1171968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVscc-0001Y6-Qk; Mon, 22 Jul 2024 12:58:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761914.1171968; Mon, 22 Jul 2024 12:58:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVscc-0001Xz-Mi; Mon, 22 Jul 2024 12:58:34 +0000
Received: by outflank-mailman (input) for mailman id 761914;
 Mon, 22 Jul 2024 12:58:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVscb-0001Xt-1m
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 12:58: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 18941497-482a-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 14:58:31 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5a2ffc346ceso2942208a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 05:58: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
 a640c23a62f3a-a7a3c785e12sm422108066b.25.2024.07.22.05.58.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 05:58: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: 18941497-482a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721653110; x=1722257910; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SfbkEoPW8DpchiHkPo6RKjHVE7QeBc5SXTNAX9kVoJk=;
        b=GMWURcWbu8+mGpSI9b3gCRSSO7kfujGNkzfA5YwJ5bNehTOMLXPcgHAbtk7iXRENik
         F6znB7I2Dv5JSCRTRA2VGvBkbXVwSAi15jSgVpLeKF+g7nhmobhucKVfXIeIw17b3pVj
         b2/czoa6Hv3gB/Es5+XT3vBNhmlrI0cKbSnTlh8ysXhWOBe4OzgRn76s4lyExP6L6NXq
         xM8nBrx8ImP9UimU5T39crFmPyG311FQSVx/ez8MpP1MAfQJeEKJKuQKII+S617QlqAe
         Fobrd5mRiMfxu2rN4CtT4nt7U5YXXhKwGi6qEgqlzJzfqDEWNrc6P5xo1yMb1LPG0TMH
         xnPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721653110; x=1722257910;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SfbkEoPW8DpchiHkPo6RKjHVE7QeBc5SXTNAX9kVoJk=;
        b=IoxDcmrMCz2gKY6rG0KiXblcJUTAUHKe7YcOYSKk3eRt91k7WT+Nb+jhLUAtmVlGF1
         En8MtxGrkIuzLrXv0C0NJhxfTf66B9+kdCXnxfN7joJYA8t7i/lf41YkgNyebVCavZmr
         kKMWbAqeNW++4OWt5fcfn9QIpZnnwDY0GNvQ5O5gdP2yWlRl7qUxl8Rv9AGBwuhpWP0m
         hPaMX69ihm3DAlE3DV2KK1b33UK3RxT2/EU93I7YPK8oaeyfC+xVW0LSQuH9GGV5NFHM
         ydbfqOgPI3Y3ZgnZphfbXvJs/LSmPNPr5L52GP+J+favUJhprupan+BFNRFs8AHFuhfc
         y6+Q==
X-Forwarded-Encrypted: i=1; AJvYcCXyuQSTC88xVNu9AW6glSa9xUMw2NjzGKVg+i6J72X/JCKzc4zs5obvXBASj92wmzw7MQvwv7n0hXmyIsnYXh/HLTPIQX9tibqy1S9RWpY=
X-Gm-Message-State: AOJu0YwGRmYP1y4geWHEQ2YcME4MVoTljV5EqPQJ85VjTs83P7Xfs+1N
	2D7Wxv25ljw+oQFAbZ2yzt7IOv3YnO/Jrb7ufyk8SgiFZevJ3ajDlo+1EwT9Jg==
X-Google-Smtp-Source: AGHT+IElNfCfp7zgtvKu1pfRm5KiP/OkhURSLwY7MtEa2WtCAcwG8H68c94mAnp47MAN55LsUnDPqQ==
X-Received: by 2002:a17:907:869f:b0:a6f:b11b:8ac5 with SMTP id a640c23a62f3a-a7a4c01c13cmr463689766b.30.1721653110555;
        Mon, 22 Jul 2024 05:58:30 -0700 (PDT)
Message-ID: <c6a06c8d-ed6c-42d2-9ba3-56c37e878d9c@suse.com>
Date: Mon, 22 Jul 2024 14:58:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
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>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
 <15375179-1c94-43c3-a256-42a856905e21@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: <15375179-1c94-43c3-a256-42a856905e21@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.07.2024 10:51, Julien Grall wrote:
> On 12/07/2024 17:22, Oleksii Kurochko wrote:
>> +inline pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr)
>> +{
>> +    /* there is no attr field in RISC-V's pte */
>> +    (void) attr;
> 
> Surely you have a way to say indicate whether an entry is readable/writable?

I'm puzzled by this question. The sole outlier in Arm code is pmap.h, in
passing PAGE_HYPERVISOR_RW to this function when all others pass memory
types (MT_*). Afaics only the low three bits are then used in the
function, discarding access control bits altogether. R/W access appears
to be implied.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 13:01:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 13:01:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761921.1171978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVsfl-00031u-72; Mon, 22 Jul 2024 13:01:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761921.1171978; Mon, 22 Jul 2024 13:01: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 1sVsfl-00031n-46; Mon, 22 Jul 2024 13:01:49 +0000
Received: by outflank-mailman (input) for mailman id 761921;
 Mon, 22 Jul 2024 13:01:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVsfk-00031g-5g
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 13:01:48 +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 8d6d693f-482a-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 15:01:47 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a77bf336171so694964566b.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 06:01: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-a7a3c9511ebsm418666266b.214.2024.07.22.06.01.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 06:01: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: 8d6d693f-482a-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721653306; x=1722258106; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fEHfB2GN9jBSq1Hnh4tH4ZEhStDEqhhNYdKyhZjri0k=;
        b=Lfs1b/8/2yjqs9fkxEsMT0PBUSbX8MydmG61nSq6mpnf+jPUrNtwlwkIxnNAmOYP8f
         aMD1Jnw43mnqr2UUm9s4CIed/PgH3xvnhmYb2bqGLp2lZWphxNxnzs6MpGcaBiOKHZ41
         kuojYY4tS+ucvv24G8YRUbMREICfLeGwUX5HqR8d72HXZGKN/kpBFJB+nE4AVV9XC1jX
         g6RnVKCq4I/mSLUtecp4ungALVjyv+RZQeZQEd/1+ImOhiJjzelKAdhJ3an3QsS00dMl
         MeCpemivxtHw60GNAd3+zVN+WZysdtg6ZBGKg+zHXXgxC8XKDV96pLctH5EkdnFPNEwt
         OiUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721653306; x=1722258106;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fEHfB2GN9jBSq1Hnh4tH4ZEhStDEqhhNYdKyhZjri0k=;
        b=WdkGKxq470PuCgavQ7k4dF2Kj3iyTWxTCTFR/++E+vb5sVqwXAfcoM1GmxTS9CLy2f
         Hc849Qnt/FTJtcUw/oPWmtlqxD6pPWTHxHHeKM06F1Ap7OX570WPJy9TRZfPSbDm0e3p
         JFbpHNwaNTL0G+il+U1WfkqJYWWSYeIoOpr7tjOSbv0UB0dAOdIYdXl7ijQp+mhP5FWQ
         nER4x9QjKA+c3eoLnXVbCBUCfiqMvp96ST4AZu2Ve4jYyzfc3qwzOqgcNwUIkGd5vn0a
         Ztc2dHN5/Wg4wD8S6NDvZRk9mDgqsmuEGZKF5i1OlHFAFCtUTt/ulmXXD3h++4HdrDRq
         cIbw==
X-Forwarded-Encrypted: i=1; AJvYcCXVcDYVNtpue48gwsxiFhx+czT18WW4MJzXrRoz2GKFXajzgGn7Q60s4mJYBCmQAH515ZST/dQS0TLc5VwflDtWnzYbmeeDa2gcFYqRyDE=
X-Gm-Message-State: AOJu0Ywjja/EyUNO4A4k5X8R/y5kcsCJpO0e++PbTr6eN1FeFmJp7baJ
	efKMpgh8bonKjV/0Ac4P1PuQuP03nXX+dzPZ5n5Z5Z7jl5dWjZ8oPvSFEDz4zA==
X-Google-Smtp-Source: AGHT+IEIexEqhpnNNJMuRBtRyTtx3vB4sUQWcAzczsW0DfX9kwqVV1EKOrEJsS8aCTo6bQT8L6BiLg==
X-Received: by 2002:a17:906:7741:b0:a77:db39:cc04 with SMTP id a640c23a62f3a-a7a0f0ffe1fmr1288570466b.11.1721653306520;
        Mon, 22 Jul 2024 06:01:46 -0700 (PDT)
Message-ID: <767482e3-3132-4a7f-81ba-6ce0ebea675e@suse.com>
Date: Mon, 22 Jul 2024 15:01:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] x86/mm: add API for marking only part of a MMIO
 page read only
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>,
 xen-devel@lists.xenproject.org
References: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
 <f0b36fb78b87d2f06c0d33da28ba16cd1d2fa8b9.1721356393.git-series.marmarek@invisiblethingslab.com>
 <dce600a3-4b1c-47e9-b336-42ca32e309c5@suse.com> <Zp5SQlB_QR47NmtY@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: <Zp5SQlB_QR47NmtY@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.07.2024 14:36, Marek Marczykowski-Górecki wrote:
> On Mon, Jul 22, 2024 at 02:09:15PM +0200, Jan Beulich wrote:
>> On 19.07.2024 04:33, Marek Marczykowski-Górecki wrote:
>>> +int __init subpage_mmio_ro_add(
>>> +    paddr_t start,
>>> +    size_t size)
>>> +{
>>> +    mfn_t mfn_start = maddr_to_mfn(start);
>>> +    paddr_t end = start + size - 1;
>>> +    mfn_t mfn_end = maddr_to_mfn(end);
>>> +    unsigned int offset_end = 0;
>>> +    int rc;
>>> +    bool subpage_start, subpage_end;
>>> +
>>> +    ASSERT(IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN));
>>> +    ASSERT(IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN));
>>> +    if ( !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
>>> +        return -EINVAL;
>>
>> I think I had asked before: Why is misaligned size something that wants a
>> release build fallback to the assertion, but not misaligned start?
> 
> Misaligned start will lead to protecting larger area, not smaller, so it
> is not unsafe thing to do. But I can also make it return an error, it
> shouldn't happen after all.

Well, I wouldn't mind if you kept what you have, just with a (brief) comment
making clear why there is a difference in treatment. After all you could
treat mis-aligned size similarly, making the protected area larger, too.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 13:03:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 13:03:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761928.1171988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVshY-0003dr-N0; Mon, 22 Jul 2024 13:03:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761928.1171988; Mon, 22 Jul 2024 13:03:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVshY-0003dk-K7; Mon, 22 Jul 2024 13:03:40 +0000
Received: by outflank-mailman (input) for mailman id 761928;
 Mon, 22 Jul 2024 13:03:39 +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 1sVshX-0003de-JI
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 13:03:39 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>)
 id 1sVshT-0006Xn-TV; Mon, 22 Jul 2024 13:03:35 +0000
Received: from lfbn-lyo-1-451-148.w2-7.abo.wanadoo.fr ([2.7.43.148] helo=l14)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <anthony@xenproject.org>)
 id 1sVshT-0002jl-Hm; Mon, 22 Jul 2024 13:03:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=HU/DtLBI9PeorLTyXzROt07pc9drFKDPdMTdi3WazlU=; b=6BbXYCxhWfJZ13XwlSA3f/H/VK
	OZaKVqddH5eqz+hb4VlX/J6j6oImhPzKusxc0OMXdCNEKhIboyM/ZmKoz5z116TyWuiCweooCBE3m
	7YMCspQsMN+5/CBBktkx6YKYHxzHw3iDfRjvvMU28LthqI1jDP479KgIuHGGwsD9IZgU=;
Date: Mon, 22 Jul 2024 15:03:32 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: osstest service owner <osstest-admin@xenproject.org>,
	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>
Subject: Re: [linux-linus test] 186932: regressions - FAIL
Message-ID: <Zp5YpOt42lATLwQX@l14>
References: <osstest-186932-mainreport@xen.org>
 <39d87a30-7722-45ec-bc13-11111eb46483@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <39d87a30-7722-45ec-bc13-11111eb46483@suse.com>

On Mon, Jul 22, 2024 at 09:05:43AM +0200, Jan Beulich wrote:
> On 22.07.2024 06:56, osstest service owner wrote:
> > flight 186932 linux-linus real [real]
> > http://logs.test-lab.xenproject.org/osstest/logs/186932/
> > 
> > Regressions :-(
> > 
> > Tests which did not succeed and are blocking,
> > including tests which could not be run:
> >  test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
> >  test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
> 
> There looks to be a basic problem as of flight 186925, yet a brief look at one
> of the logs doesn't really give any hint other than the system perhaps simply
> being slow. Ideas, anyone?

Well, yes, it's really slow to reach having a running ssh server. If I
let the machine boot, there's two reason in the log for the long time:

Jul 22 11:44:25.216867 Waiting for /dev to be fully populated...Timed out for waiting the udev queue being empty.
Jul 22 11:46:25.469002 done (timeout).

Jul 22 11:46:29.103350 Configuring network interfaces...
Jul 22 11:46:32.127350 ^@Timed out for waiting the udev queue being empty.
Jul 22 11:48:29.256918 [  403.298102] NET: Registered PF_INET6 protocol family
... more network kernel info after that.
Jul 22 11:48:33.204921 Waiting for xenbr0 to get ready (MAXWAIT is 2 seconds).
Jul 22 11:48:33.204984 done.

(on previous run, "configuring network interface" is followed by
"waiting for xenbr0")


So, we lost already 4 min waiting, out of a budget of 7min for full
reboot.

Also, "reboot" doesn't work with this newer kernel, the machine prints
"Will now restart." then nothing happen.

I have also try without Xen, it's the same behavior.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 13:03:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 13:03:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761929.1171998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVshk-0003wp-VK; Mon, 22 Jul 2024 13:03:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761929.1171998; Mon, 22 Jul 2024 13: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 1sVshk-0003wi-RX; Mon, 22 Jul 2024 13:03:52 +0000
Received: by outflank-mailman (input) for mailman id 761929;
 Mon, 22 Jul 2024 13:03: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVshj-0003vs-A0
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 13:03:51 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d6db1d7f-482a-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 15:03:50 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2ef27bfd15bso17839211fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 06:03: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-5a30aaa2420sm6096968a12.21.2024.07.22.06.03.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 06:03: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: d6db1d7f-482a-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721653430; x=1722258230; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=la/Ui8oPhbKdSzFW5XFA8OjidMb1oWsniS7p8jFjY7Y=;
        b=Na2aOStBvjcchNPmOarO09TYxrrCzwcF4GWodulhdDUFiI4AyKRly5UPeiwlOumRTc
         l+b3tCCXgmB7NOfSPEJnhXKapwGqFdmYUrojnwiOAiRki2rrITOBT2yru+8np1qEHT3a
         lsIdCrjRqLs2+DRmGF50PBeHeIgbsnDLnqGHEFAQ92guwglxC85ChH6quv6Hu/hnjN8w
         TPE+cUHyECD1wWyKTqPqSdhbGEMwg80WSdQF2VWMQQ4LGGV7ibjxlpp2wM7x3iEILXMF
         q6+f6ydN84ZhCBptwLIDqBF0iBiKCy+/adi3AAXUPvW7V0M4nRqBY6Ia17Y7Vx/kHTbE
         kHzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721653430; x=1722258230;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=la/Ui8oPhbKdSzFW5XFA8OjidMb1oWsniS7p8jFjY7Y=;
        b=PPMmO85IzD4kMnwFImzdGrZjCH3oX5PpUOb/uefufgg+sk2Te5FTEC4WVRHW5uOpp7
         N3sKXdBDBLvRI4WWOK1mwPJIW9TwhW4W/wdBt3DmIDACrLaLjuxUEbsiqiG7UCiAQApI
         +CGbTdRcTiggUQcAzKobQHlBQzob0JXTs/5shzy/rUz2U90xNBCFkczS0/ghRfm5XKBJ
         CoA/3LTr0eUMuL8lxg5nFvt1uZ7j7Y/jKUo87m0VucS6pj6iWgpfq3uw/uCmBeztxp3/
         kN6L6hLWDOE1abz0C7ipe9/ev35ZhVrXYCyZSHxj6Fm8ILFwCSUKXdPfeE1tJthtxXLk
         HaIA==
X-Forwarded-Encrypted: i=1; AJvYcCWHv+y+mUnV0Bq4W5Ka2oKgiUL84DqZTM9NxbbAqylPdRwfSE0/J3Bpire+Dba2496bBroW0/S29n9IVdlRQtUIHDw16QFuj3zqwnYq2Tg=
X-Gm-Message-State: AOJu0Yw9EMdHMmmXyfR4WJLAK1GN/dQRDQqW8P6ppqwQGxL6yANR7H9T
	jSW3uce1yA/7puXmAGVXybczsvRIX4AQwqSsilrWM1CAcwMSDFcFsUjWT4QI4g==
X-Google-Smtp-Source: AGHT+IHKKTfeIQ5jY2nXFGJNcIdDi+EBEnXt592KclOxVaTa8P7AEjXVjfbl0TFQCvXX0KYPEKMC6g==
X-Received: by 2002:a2e:9ecb:0:b0:2ee:7c12:7b36 with SMTP id 38308e7fff4ca-2ef16784929mr51249281fa.19.1721653429738;
        Mon, 22 Jul 2024 06:03:49 -0700 (PDT)
Message-ID: <fe42229e-be70-4d51-aca2-b1f874652d35@suse.com>
Date: Mon, 22 Jul 2024 15:03:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Fix the figlet banner
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20240722124842.4039445-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: <20240722124842.4039445-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.07.2024 14:48, Andrew Cooper wrote:
> 4.20 is just wide enough to cause figlet to split the banner onto two lines:
> 
>    __  __
>    \ \/ /___ _ __
>     \  // _ \ '_ \
>     /  \  __/ | | |
>    /_/\_\___|_| |_|
> 
>    _  _    ____   ___                     _        _     _
>   | || |  |___ \ / _ \    _   _ _ __  ___| |_ __ _| |__ | | ___
>   | || |_   __) | | | |__| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
>   |__   _| / __/| |_| |__| |_| | | | \__ \ || (_| | |_) | |  __/
>      |_|(_)_____|\___/    \__,_|_| |_|___/\__\__,_|_.__/|_|\___|
> 
> Instruct figlet to use 100 column width, rather than 80, resulting in:
> 
>    __  __            _  _    ____   ___                     _        _     _
>    \ \/ /___ _ __   | || |  |___ \ / _ \    _   _ _ __  ___| |_ __ _| |__ | | ___
>     \  // _ \ '_ \  | || |_   __) | | | |__| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
>     /  \  __/ | | | |__   _| / __/| |_| |__| |_| | | | \__ \ || (_| | |_) | |  __/
>    /_/\_\___|_| |_|    |_|(_)_____|\___/    \__,_|_| |_|___/\__\__,_|_.__/|_|\___|
> 
> While fixing this, also fix a rendering error in the non-figlet case; while a
> leading space looks better for figlet, it looks very wrong for the simple
> one-line case.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Jul 22 13:06:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 13:06:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761942.1172007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVsk2-0004lo-9C; Mon, 22 Jul 2024 13:06:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761942.1172007; Mon, 22 Jul 2024 13:06:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVsk2-0004lh-6U; Mon, 22 Jul 2024 13:06:14 +0000
Received: by outflank-mailman (input) for mailman id 761942;
 Mon, 22 Jul 2024 13:06:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVsk0-0004kL-KN
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 13:06:12 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 29c303bd-482b-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 15:06:09 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2eefe705510so48999311fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 06:06: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
 4fb4d7f45d1cf-5a30c7d32e6sm6102137a12.84.2024.07.22.06.06.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 06:06: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: 29c303bd-482b-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721653569; x=1722258369; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pE4/l7qbbob/UpFsaDfWF81AsDgiFOJVYzZ7Spjnv64=;
        b=E+LprUp3iKvcQcbD7cDfZv7At6+3wOhFSF95hIehzhBCKsnBC1Uxd94Pch/Oh8ersf
         Eb8iONuJUoMfvTxGzVCgl7Pc8dE7INQCpE36EBEJcNATp54kvoOTceSrxNkweVy4bW4u
         cGtHlnCNu6bEIIHVIDgZNOdCiilIdAdyUQnmW5c7W7a37h6mNYNKT5ETpvqn1C2EtVez
         Bd3iyuwICh4GMhrAffy6K+J1KFDK6uG1MMXQ1E2niWu93ed8eUqwmORz0MB0i++1HMDD
         pxLJ80p5OvhdxIIG9U7qlp3nnG/vrn/3QWq2EFXS3CLte9KIU5sRZ63dEakKZ4enz/xG
         2PYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721653569; x=1722258369;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pE4/l7qbbob/UpFsaDfWF81AsDgiFOJVYzZ7Spjnv64=;
        b=hZROkY+8XKH/fRVs3HOAqayXxTPOz0n4l9mX0Hmtjs3aV7F+NChTFWTU2kOP0KNK8W
         ga0ecnUVl6vN5BUP5zyZL1dbJgW3byLnFr9IXiyNUv6+Eu7fL26klp8+Misa4hsuangJ
         gkQKel0FmjMYfD3ZHJ4eIRYnBhQegn2pdXj4ceTEpvOyNGdoAQz4Eo6ZoUcE2PqBGZ33
         C5nAsSaSfsQUrJVcOFWHXcgaVqMVHMF29UgFZ81quWJsrgdIOZsJECIAT4rvD1X/LNj1
         R3Z9sBzEuiOnBFxIOI+peUfWPR//wMDO16uDyXZedXF4nx3Qq36oSqElroGmumbjlV3o
         XtjQ==
X-Forwarded-Encrypted: i=1; AJvYcCU8Fs55QWhmeFmN8HxwXW+UdInnxyeBIRlaVj1RfMT0FihE6CAr9Ru30/OJhqpnG3qIrLbfrIi3sTe+OP9RWoRDjKQ7YEgxozhhkaEk9r4=
X-Gm-Message-State: AOJu0YykNRtsnjb6uciOQ9MMwMJU43drG5PpnnEeonpNQNSlxdcxahCG
	QyLVeAxzEQVCi0YQxTRcQcnlOUjrvlavbcNF3O8kzn25fcHadSIBZ6gFVLaTdQ==
X-Google-Smtp-Source: AGHT+IGFXGO1z3faH3dZzDNlLT3+ak27ZV7RmWDuhy1LqET+13vTWfwCWCtJydlPNQl4rR75z97p6Q==
X-Received: by 2002:a2e:a989:0:b0:2ef:2593:334d with SMTP id 38308e7fff4ca-2ef25933587mr36545561fa.47.1721653568817;
        Mon, 22 Jul 2024 06:06:08 -0700 (PDT)
Message-ID: <b9a9f515-71c6-4219-8493-df890da7fcb4@suse.com>
Date: Mon, 22 Jul 2024 15:06:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [linux-linus test] 186932: regressions - FAIL
To: Anthony PERARD <anthony@xenproject.org>
Cc: osstest service owner <osstest-admin@xenproject.org>,
 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>
References: <osstest-186932-mainreport@xen.org>
 <39d87a30-7722-45ec-bc13-11111eb46483@suse.com> <Zp5YpOt42lATLwQX@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: <Zp5YpOt42lATLwQX@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.07.2024 15:03, Anthony PERARD wrote:
> On Mon, Jul 22, 2024 at 09:05:43AM +0200, Jan Beulich wrote:
>> On 22.07.2024 06:56, osstest service owner wrote:
>>> flight 186932 linux-linus real [real]
>>> http://logs.test-lab.xenproject.org/osstest/logs/186932/
>>>
>>> Regressions :-(
>>>
>>> Tests which did not succeed and are blocking,
>>> including tests which could not be run:
>>>  test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
>>>  test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
>>
>> There looks to be a basic problem as of flight 186925, yet a brief look at one
>> of the logs doesn't really give any hint other than the system perhaps simply
>> being slow. Ideas, anyone?
> 
> Well, yes, it's really slow to reach having a running ssh server. If I
> let the machine boot, there's two reason in the log for the long time:
> 
> Jul 22 11:44:25.216867 Waiting for /dev to be fully populated...Timed out for waiting the udev queue being empty.
> Jul 22 11:46:25.469002 done (timeout).
> 
> Jul 22 11:46:29.103350 Configuring network interfaces...
> Jul 22 11:46:32.127350 ^@Timed out for waiting the udev queue being empty.

Yet both of these instances of timing out look suspiciously like a regression
(in or caused by the kernel)?

Jan

> Jul 22 11:48:29.256918 [  403.298102] NET: Registered PF_INET6 protocol family
> ... more network kernel info after that.
> Jul 22 11:48:33.204921 Waiting for xenbr0 to get ready (MAXWAIT is 2 seconds).
> Jul 22 11:48:33.204984 done.
> 
> (on previous run, "configuring network interface" is followed by
> "waiting for xenbr0")
> 
> 
> So, we lost already 4 min waiting, out of a budget of 7min for full
> reboot.
> 
> Also, "reboot" doesn't work with this newer kernel, the machine prints
> "Will now restart." then nothing happen.
> 
> I have also try without Xen, it's the same behavior.
> 
> Cheers,
> 



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 13:38:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 13:38:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761959.1172030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVtFP-0001nw-S5; Mon, 22 Jul 2024 13:38:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761959.1172030; Mon, 22 Jul 2024 13:38: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 1sVtFP-0001np-Nw; Mon, 22 Jul 2024 13:38:39 +0000
Received: by outflank-mailman (input) for mailman id 761959;
 Mon, 22 Jul 2024 13:38: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=aIMA=OW=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sVtFO-0001ne-Ag
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 13:38:38 +0000
Received: from fhigh6-smtp.messagingengine.com
 (fhigh6-smtp.messagingengine.com [103.168.172.157])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id afb3ed3d-482f-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 15:38:33 +0200 (CEST)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 2DED211400DE;
 Mon, 22 Jul 2024 09:38:31 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute2.internal (MEProxy); Mon, 22 Jul 2024 09:38:31 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 22 Jul 2024 09:38: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: afb3ed3d-482f-11ef-8776-851b0ebba9a2
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=1721655511;
	 x=1721741911; bh=jgQJxlvXDuS5mZp0nJOMfiNWvQE2RX0V+FJhfKM1XPg=; b=
	dzgoHv9zimFSlFsyAM4rGkfOFRKXi1Xnauko+2F1Zjfufm+uLQklUIvJkU+oopfT
	nWoPXucUehBFbDQ3w3F9a5I3jBEtC+C7hxlIhIAWShOVXj7+RDzALRryYUN5BWnw
	iKnMtJ+cXKihh8KsGByF8yrP9fZAR7URC5WqnyRfG0agIkCpNwwgqhUwTX8bu4Ct
	7Q8UhGEMAZJhi4M8n9nKIJ9ypNh+8Hs0qbdmISgxOpQNQFXEKoNiAYGZNgdPiAZV
	y1cs80f+3OzHGMoQi5nI8sz0hylVyxTBsI0ZdmuPTCPvOucBb7+GOJuLBBqFKY/y
	TcB69IpmloicT6vtWeXC+Q==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1721655511; x=1721741911; bh=jgQJxlvXDuS5mZp0nJOMfiNWvQE2
	RX0V+FJhfKM1XPg=; b=id+JScuTnwNvyaphpar2XiaF7qhLw/MOJI+WsrF0ymNy
	pQnXqK2KEJw7gM37BEpXV8kpN7Pub0ZCAxPyb6lxRu3QTmkWAFsrS6hfLwG3+w/Y
	AgRvugI/+aQtNKGXB7KC3oxf3eg0+yguu/oUSJUCW22+uVdcLa9SkyZluGy++qfo
	JUIRcTG6hxLCvBn0uH06Q8YFLBFQHsgPAZExHDZzmnqdoMONdvEZupc9BvE6MYj6
	tZ8OXCFIDMmtSO/u8FH1j13CzN2R4T+bGzOIl7Zaeiq0NM1XQV5mq+APSn1Nljos
	T+UXIP/IolCUBOdL2Zu4VCayoXHq/M82PyQJC9RsuQ==
X-ME-Sender: <xms:1mCeZp6tJTVLoehaDuyeRrHH5eFT3T-hg2QFw5smVqt76u8ZZHzmMA>
    <xme:1mCeZm78pNSDaC-1R_89hcmFk1Z64bdtx9WkoTPGdiAjB_nr8cwQM1j51VVKn-cDK
    0AdQu73aDfyog>
X-ME-Received: <xmr:1mCeZgen0tWU_rexAgCYKmCNacFRMX7yMqVNghoqjWKt0VZbTHTjV9PEZapcIV_eTG3ySgeCpVkmMda7HGn_l430VzK_ISu7Zw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheejgdeijecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudel
    teefvefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:1mCeZiLUGJ7ViW-9dwU_WN6WDCXpLkkNO7aYULKrZUyeEgc5fkBw6A>
    <xmx:1mCeZtKixOY3kmm1mIkmRUJzrVqF8o6naC7o-n_f9C5U6LMxg2ioCw>
    <xmx:1mCeZrybgKJ4shOO8PXiM4if11hhpTGOdn-zYL0rASnJzubiW_qrGA>
    <xmx:1mCeZpLImsiVUWw_zN7aOkM5l6ti91KRT8jXWWqrUUWUOA46rlIvDw>
    <xmx:12CeZt08Iv_2258xZhpNM34BGxiVC7j2XGtTS5X0Q6DB9U4vDpEthXur>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 22 Jul 2024 15:38:25 +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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/3] x86/mm: add API for marking only part of a MMIO
 page read only
Message-ID: <Zp5g0hflalnM1bfa@mail-itl>
References: <cover.8c9972382c46fce22682bcec2ee28fe2501dd18f.1721356393.git-series.marmarek@invisiblethingslab.com>
 <f0b36fb78b87d2f06c0d33da28ba16cd1d2fa8b9.1721356393.git-series.marmarek@invisiblethingslab.com>
 <dce600a3-4b1c-47e9-b336-42ca32e309c5@suse.com>
 <Zp5SQlB_QR47NmtY@mail-itl>
 <767482e3-3132-4a7f-81ba-6ce0ebea675e@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="/eDYpcvw0G/vQAOi"
Content-Disposition: inline
In-Reply-To: <767482e3-3132-4a7f-81ba-6ce0ebea675e@suse.com>


--/eDYpcvw0G/vQAOi
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 22 Jul 2024 15:38:25 +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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/3] x86/mm: add API for marking only part of a MMIO
 page read only

On Mon, Jul 22, 2024 at 03:01:45PM +0200, Jan Beulich wrote:
> On 22.07.2024 14:36, Marek Marczykowski-G=C3=B3recki wrote:
> > On Mon, Jul 22, 2024 at 02:09:15PM +0200, Jan Beulich wrote:
> >> On 19.07.2024 04:33, Marek Marczykowski-G=C3=B3recki wrote:
> >>> +int __init subpage_mmio_ro_add(
> >>> +    paddr_t start,
> >>> +    size_t size)
> >>> +{
> >>> +    mfn_t mfn_start =3D maddr_to_mfn(start);
> >>> +    paddr_t end =3D start + size - 1;
> >>> +    mfn_t mfn_end =3D maddr_to_mfn(end);
> >>> +    unsigned int offset_end =3D 0;
> >>> +    int rc;
> >>> +    bool subpage_start, subpage_end;
> >>> +
> >>> +    ASSERT(IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN));
> >>> +    ASSERT(IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN));
> >>> +    if ( !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
> >>> +        return -EINVAL;
> >>
> >> I think I had asked before: Why is misaligned size something that want=
s a
> >> release build fallback to the assertion, but not misaligned start?
> >=20
> > Misaligned start will lead to protecting larger area, not smaller, so it
> > is not unsafe thing to do. But I can also make it return an error, it
> > shouldn't happen after all.
>=20
> Well, I wouldn't mind if you kept what you have, just with a (brief) comm=
ent
> making clear why there is a difference in treatment. After all you could
> treat mis-aligned size similarly, making the protected area larger, too.

Ok.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmaeYNIACgkQ24/THMrX
1yxAIgf8Da4R5SRZ7CHY7lPa9AeKiWCN4OzpejYHqYV0wqFSDcefTVlpSusAB0uo
CiNuUWJPDGmrwOdGZtqZo+SeoK3iHf9CCGIFedwowCkNiqt3f53kUrx/g2lERMfJ
bTAhoMFmcShOAbqWdawR/NXFPtWSyAzJ5+2S7sjUjy4CS5/kuD9Ek0k07Pfuhm5C
JAn5sVWaEH/3SyrfEwpyrSbKt8px5wfr0tf39A7B6xXRaP+lXf/QbOeRuPJlJMNq
ZoSttMDi2TYoF+DmFLcg4E0tnbEWYcYP/vfnElnO7mCWFlSHUn7UiGAgrIdpbcES
n/J/bzWYO1Rj3jGzwYfAQDe1XosqCg==
=2sNg
-----END PGP SIGNATURE-----

--/eDYpcvw0G/vQAOi--


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 13:41:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 13:41:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761967.1172040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVtIE-0003Da-7m; Mon, 22 Jul 2024 13:41:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761967.1172040; Mon, 22 Jul 2024 13: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 1sVtIE-0003DT-4q; Mon, 22 Jul 2024 13:41:34 +0000
Received: by outflank-mailman (input) for mailman id 761967;
 Mon, 22 Jul 2024 13:41:32 +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 1sVtIC-0003DJ-SJ
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 13:41:32 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>)
 id 1sVtIA-0007Fe-AT; Mon, 22 Jul 2024 13:41:30 +0000
Received: from lfbn-lyo-1-451-148.w2-7.abo.wanadoo.fr ([2.7.43.148] helo=l14)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <anthony@xenproject.org>)
 id 1sVtI9-0005HA-W9; Mon, 22 Jul 2024 13:41:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=ZQ3yuCyW7oGCmUZgCtdulyZAcEyi1gwrXbvhd4tNHaI=; b=vDtNx+NL5fTC33JyOZfYraFRMn
	BPPpU6MqULN0SbdVGZh1ZJPv+rwWUdQjnLSCyIhp9z6F0xKuGwFkYuxE4jMU+oK8NDrABdp5c7TZO
	ArTU5Yoa9KB5RW+Klj5UXk0beV6rF6xBVp86Se8NNQyJG1FWGwzYVRHkK0I3vwLA4nF0=;
Date: Mon, 22 Jul 2024 15:41:27 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: osstest service owner <osstest-admin@xenproject.org>,
	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>
Subject: Re: [linux-linus test] 186932: regressions - FAIL
Message-ID: <Zp5hh9nuCIVbdOG7@l14>
References: <osstest-186932-mainreport@xen.org>
 <39d87a30-7722-45ec-bc13-11111eb46483@suse.com>
 <Zp5YpOt42lATLwQX@l14>
 <b9a9f515-71c6-4219-8493-df890da7fcb4@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <b9a9f515-71c6-4219-8493-df890da7fcb4@suse.com>

On Mon, Jul 22, 2024 at 03:06:07PM +0200, Jan Beulich wrote:
> On 22.07.2024 15:03, Anthony PERARD wrote:
> > On Mon, Jul 22, 2024 at 09:05:43AM +0200, Jan Beulich wrote:
> >> On 22.07.2024 06:56, osstest service owner wrote:
> >>> flight 186932 linux-linus real [real]
> >>> http://logs.test-lab.xenproject.org/osstest/logs/186932/
> >>>
> >>> Regressions :-(
> >>>
> >>> Tests which did not succeed and are blocking,
> >>> including tests which could not be run:
> >>>  test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
> >>>  test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
> >>
> >> There looks to be a basic problem as of flight 186925, yet a brief look at one
> >> of the logs doesn't really give any hint other than the system perhaps simply
> >> being slow. Ideas, anyone?
> > 
> > Well, yes, it's really slow to reach having a running ssh server. If I
> > let the machine boot, there's two reason in the log for the long time:
> > 
> > Jul 22 11:44:25.216867 Waiting for /dev to be fully populated...Timed out for waiting the udev queue being empty.
> > Jul 22 11:46:25.469002 done (timeout).
> > 
> > Jul 22 11:46:29.103350 Configuring network interfaces...
> > Jul 22 11:46:32.127350 ^@Timed out for waiting the udev queue being empty.
> 
> Yet both of these instances of timing out look suspiciously like a regression
> (in or caused by the kernel)?

Yes, no timeout in the logs of previous runs. So it's likely a
regression in Linux, between f83e38fc9f10 and 3c3ff7be9729.
http://logs.test-lab.xenproject.org/osstest/results/history/test-arm64-arm64-xl/linux-linus.html

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 13:43:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 13:43:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761975.1172050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVtKT-0003rS-Lu; Mon, 22 Jul 2024 13:43:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761975.1172050; Mon, 22 Jul 2024 13: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 1sVtKT-0003rL-Iq; Mon, 22 Jul 2024 13:43:53 +0000
Received: by outflank-mailman (input) for mailman id 761975;
 Mon, 22 Jul 2024 13:43: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVtKS-0003rF-7f
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 13:43:52 +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 6ce9463e-4830-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 15:43:49 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5a2ffc34677so3300313a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 06:43: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
 a640c23a62f3a-a7a3c923098sm430796766b.171.2024.07.22.06.43.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 06:43: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: 6ce9463e-4830-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721655829; x=1722260629; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=06s4/weRtplC9rmyo4wv1/cJgA2Ve515ziAnoqR0rm0=;
        b=akSzaIUMTfLDyJ4rz3WugsZ2dAPqxqabD0UZit9MeObcplzaT66JzZfOiVSL8FQxeI
         HDII/qWzif5MY0nN1LTV71a/WcGUlC40bBApgrJ6j4GVXpd4at9CxOeMrATCcuB1ap54
         4onIIsjNzQKj9mBStUISIqOkuSrV+Fw2e2KNODI+Dz7EpzJzP7DggtU4jLVtbqfhVVtx
         j6ESiDv785KBjLq+iPpCflmLiZNKt71qye7TfvObVAx7mJkaVZqFqSlA9lMdKlppDcZ5
         8idoR9I7Zakt6fX+wxhCRm+1ksV4LgBF4GcAB1fWieuTaGEaGuRBwNdbFRxy+AtTa7of
         M/KA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721655829; x=1722260629;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=06s4/weRtplC9rmyo4wv1/cJgA2Ve515ziAnoqR0rm0=;
        b=neeDUL6RzLTkhIYviIK/w0uz5bGAJj5rwn4xjH33N9IL6UCUD5l+e6wDLRBLFXQE1E
         biYtrP4nxAl129rs1nvlICdsBneJg/AQpz0EAbaH/RMRbB9qHQUtSpeG8FTyGHKv+nLg
         5NGL6foG23QdmXbCH6lUg1AtQNILmkmh+ANweKDDsdsXN8VqSTkbuwuRFXw7PYuKI2oB
         q/f5gr5L9aJzWVyGhjp3FxptHZ8Y4bY7PsyUCIHXG0Yb/t33bQUMKjrqmipcLrNNXCsl
         3/FH7NLrHBUDvV2u0OVpdleerdsxfRF3ztSV3pcup1up5PYudHz90ddQRcFWynVrLsCF
         yKlw==
X-Forwarded-Encrypted: i=1; AJvYcCVvgEzlud/wnAqmO/tOFxixwBTVNUmDMw5qSLEluEuoCHP3At9UGIELWY0z/fWRMJcObTACyWVt967kEP3sLGI5ZVsgpdDzIK3fI7dQ148=
X-Gm-Message-State: AOJu0YxKU0/9hMwd5RN8/ZftxHp6Y2c1VgZ0o79dXrWw8xw+zi2gSEgk
	XcIn+PAxdkHMHKtpfu5lnUU3cOuI4ZPTO25t7NjOYIm5Gks5KLgOm0PqRXjOvg==
X-Google-Smtp-Source: AGHT+IHeFC+nkKS19IJgov3nDOQvBY2nchbCSKIHgvr0ebyUwdyy0eJ4Z9lXfcrBJWvt1nolbpVZCQ==
X-Received: by 2002:a17:907:3faa:b0:a72:7d5c:ace0 with SMTP id a640c23a62f3a-a7a4bfa341emr484628166b.11.1721655829322;
        Mon, 22 Jul 2024 06:43:49 -0700 (PDT)
Message-ID: <a77268c6-2cb0-45d4-af42-ebf8ef928de9@suse.com>
Date: Mon, 22 Jul 2024 15:43:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 21/22] x86/AMD: fix CPUID for PerfCtr{4,5}
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@cloud.com>
Cc: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edvin.torok@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1698261255.git.edwin.torok@cloud.com>
 <29b4fbb1045bb7cb49facfe2bc3e470fd74234bf.1698261255.git.edwin.torok@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <29b4fbb1045bb7cb49facfe2bc3e470fd74234bf.1698261255.git.edwin.torok@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.10.2023 21:29, Edwin Török wrote:
> --- a/xen/arch/x86/cpu-policy.c
> +++ b/xen/arch/x86/cpu-policy.c
> @@ -340,9 +340,16 @@ static void recalculate_misc(struct cpu_policy *p)
>          p->extd.raw[0x1e] = EMPTY_LEAF; /* TopoExt APIC ID/Core/Node */
>          p->extd.raw[0x1f] = EMPTY_LEAF; /* SEV */
>          p->extd.raw[0x20] = EMPTY_LEAF; /* Platform QoS */
> -        break;
> -    }
> -}
> +
> +        /* These are not implemented yet, hide from CPUID.
> +         * When they become implemented, make them available when full vpmu is on */
> +        p->extd.irperf = 0;
> +        p->extd.perfctrextnb = 0;
> +        p->extd.perfctrextl2i = 0;
> +
> +         break;
> +     }
> + }

Part of this is unwanted churn: You shouldn't (wrongly) re-indent existing
code. The new comment also wants correcting for style.

> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -1905,6 +1905,7 @@ static int cf_check svm_msr_read_intercept(
>      case MSR_AMD_FAM15H_EVNTSEL3:
>      case MSR_AMD_FAM15H_EVNTSEL4:
>      case MSR_AMD_FAM15H_EVNTSEL5:
> +    /* TODO: IRPerfCnt, L2I_* and NB_* support */
>          if ( vpmu_do_rdmsr(msr, msr_content) )
>              goto gpf;
>          break;

Imo such a comment wants indenting as it it was a statement, not a case label.

> --- a/xen/arch/x86/pv/emul-priv-op.c
> +++ b/xen/arch/x86/pv/emul-priv-op.c
> @@ -1156,6 +1156,7 @@ static int cf_check write_msr(
>          if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
>          {
>              vpmu_msr = true;
> +            /* fall-through */
>      case MSR_AMD_FAM15H_EVNTSEL0 ... MSR_AMD_FAM15H_PERFCTR5:
>      case MSR_K7_EVNTSEL0 ... MSR_K7_PERFCTR3:
>              if ( vpmu_msr || (boot_cpu_data.x86_vendor &

Unrelated change? And if one is to be made here, perhaps better to use the
pseudo-keyword?

> --- a/xen/include/public/arch-x86/cpufeatureset.h
> +++ b/xen/include/public/arch-x86/cpufeatureset.h
> @@ -166,7 +166,10 @@ XEN_CPUFEATURE(FMA4,          3*32+16) /*A  4 operands MAC instructions */
>  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 */
> +XEN_CPUFEATURE(PERFCTREXTCORE, 3*32+23) /*A! Extended core performance event-select registers */

I don't see a need for the exclamation mark.

> @@ -238,6 +241,7 @@ XEN_CPUFEATURE(EFRO,          7*32+10) /*   APERF/MPERF Read Only interface */
>  
>  /* AMD-defined CPU features, CPUID level 0x80000008.ebx, word 8 */
>  XEN_CPUFEATURE(CLZERO,        8*32+ 0) /*A  CLZERO instruction */
> +XEN_CPUFEATURE(IRPERF,        8*32+ 1) /* Instruction Retired Performance Counter */

Please add two more padding blanks in the comment. I wonder anyway if the
three additions that you then only hide in calculate_host_policy() really
need adding here. They're definitely standing in the way of possibly
considering this for backport.

Arguably there may also be something missing here: If the feature was
disabled for a guest, shouldn't accesses to these MSRs also be refused?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 13:50:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 13:50:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761984.1172065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVtR2-0005jI-Jj; Mon, 22 Jul 2024 13:50:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761984.1172065; Mon, 22 Jul 2024 13:50: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 1sVtR2-0005ih-F4; Mon, 22 Jul 2024 13:50:40 +0000
Received: by outflank-mailman (input) for mailman id 761984;
 Mon, 22 Jul 2024 13:50: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=NZPk=OW=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sVtR1-0005fr-6e
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 13:50:39 +0000
Received: from sender4-op-o12.zoho.com (sender4-op-o12.zoho.com
 [136.143.188.12]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5e88b0e0-4831-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 15:50:36 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1721656233591878.2071494759668;
 Mon, 22 Jul 2024 06:50:33 -0700 (PDT)
Received: by mail-yb1-f173.google.com with SMTP id
 3f1490d57ef6-e087c7ef68bso1478135276.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 06: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: 5e88b0e0-4831-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1721656234; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=SPrwsLfFdZkmim5/qt9Q67EOHcFY8rXiknz5ShLGZHHidNwQqnce3Aq5783cvUCo9zA4T6BzlKuJLemC/N1afJU0sPrxguafX3Fn1uLYZpUzHmJvWfcCdKSNHXNhJLVlWwdlSVBNDxyGRs6fyar6akHbVuVyNt7ga9V8fUXQrVQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721656234; 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=pOS+nauF4M/zCaaPQbTVSfMIRbttNOeWb1idcvWVq0g=; 
	b=lqT+ycTHge8NJmAUTMMWfHQCOGcc5nVwYDiejQqT1Q+K7EYMTc35brwOZWfVPOoZvbxNxuGUoHriEYhS6rKRd0UhOpLEdobfEJ6MPOU2xqI240s5VVA53DS0AVTlexUYzN6yYxzWyFp6s+s0ED5EOQtaRWBhRCelIyQdZeALHkY=
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=1721656234;
	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=pOS+nauF4M/zCaaPQbTVSfMIRbttNOeWb1idcvWVq0g=;
	b=bF4FsI5i+iEyHrvTJHdjdEsk1wMV2IZ6V/kpcDfvawncZQzvQg7YQGgvqJ6JPnpE
	YFWNF1ytgZ77orpHTAtsc8MEB5p6vPKbCJWA8LrbaTtchdz/7PvQyicCVILPkWlIcza
	58dWb72GAEAOmrgEC0u/d+dBAWthuYgAdBQhMQWQ=
X-Forwarded-Encrypted: i=1; AJvYcCUU4OH8zJRVddANHX7VEx3hR2bcBHPX/H9WfRW1WlK9+avqtYDtzXebvk1cvZID4drv2tq2CumToEkuqMx6KuT3fI7fLm0iZv/EhYPACTU=
X-Gm-Message-State: AOJu0YxVa1GSshWdzMyYElXIQrfpwTzVPlNaQdjtHZ7LthAHT5MJq5+x
	HLMo/zbm4O0+6f32x/w1NRWPNDUARwhQj1E8w/eu+bnqVcRfnx9cMFiYzu0BK9/PFSVNBPmTUj5
	W+ooptDpy9Hfa/53Bx0LpQrOISH4=
X-Google-Smtp-Source: AGHT+IEi+1ZiMmHgFKpO6wEHsbtIQtNBBBqn/TpsY3wNvM+L6MQ1LZgXY5WonV+VhXGf1S/Gghq/iaCiIzQdO1mPeJg=
X-Received: by 2002:a05:6902:1109:b0:e03:4efe:df92 with SMTP id
 3f1490d57ef6-e087b9e57camr7236811276.53.1721656232766; Mon, 22 Jul 2024
 06:50:32 -0700 (PDT)
MIME-Version: 1.0
References: <20240722112752.4981-1-tamas@tklengyel.com> <20240722112752.4981-2-tamas@tklengyel.com>
 <9bd41e19-50f7-43e7-b3ce-c2870a836f79@suse.com>
In-Reply-To: <9bd41e19-50f7-43e7-b3ce-c2870a836f79@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Mon, 22 Jul 2024 09:49:56 -0400
X-Gmail-Original-Message-ID: <CABfawhnae-YsFJWKj5qHKFMBA8YRpupoxKw5-D_gZJdV0viR-g@mail.gmail.com>
Message-ID: <CABfawhnae-YsFJWKj5qHKFMBA8YRpupoxKw5-D_gZJdV0viR-g@mail.gmail.com>
Subject: Re: [PATCH v3 2/2] Add tools/fuzz/oss-fuzz/build.sh
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 22, 2024 at 8:20=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 22.07.2024 13:27, Tamas K Lengyel wrote:
> > --- /dev/null
> > +++ b/LICENSES/Apache-2.0
> > @@ -0,0 +1,202 @@
> > +
> > +                                 Apache License
> > +                           Version 2.0, January 2004
> > +                        http://www.apache.org/licenses/
>
> Better https:// (also near the end) nowadays?

This is a copy of https://www.apache.org/licenses/LICENSE-2.0.txt and
I'm not going to start modifying it even for such trivial reasons.


> Other files in this directory also have at least one Valid-License-Identi=
fier:
> line and at least one SPDX-URL: one.

I didn't notice but should be trivial to add.

Tamas


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 13:50:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 13:50:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761983.1172060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVtR2-0005g9-Ar; Mon, 22 Jul 2024 13:50:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761983.1172060; Mon, 22 Jul 2024 13:50: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 1sVtR2-0005g2-80; Mon, 22 Jul 2024 13:50:40 +0000
Received: by outflank-mailman (input) for mailman id 761983;
 Mon, 22 Jul 2024 13:50:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVtR0-0005fr-IK
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 13:50:38 +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 5f38ef59-4831-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 15:50:36 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a77e6dd7f72so449456966b.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 06:50: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-a7a3c785d21sm428322766b.3.2024.07.22.06.50.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 06:50: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: 5f38ef59-4831-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721656236; x=1722261036; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VkcqHFruFCEUof4OoJV+aKNWfp/qQu3JWhFJ8C1Mg3Y=;
        b=Nnm2R65qQ9SC15uZ+WI+iTxb/2pgyAXSjpzCYIypxCu57ik96uirjyICSqMdrOmiJy
         AQaC5IuLbbk1iKTWLkYvYh+4zqxiu29M3k1RXk13gCRrmJU7iq9LSEzz1fUj8h3jENL4
         5psXyHdqYvryQxuyXGhPChf/v8pX5RW+7Cxe+Q+zqopdmBEYyTWqVB0a/XSOeiZgQ9oL
         IjswwX4z+GW2Vt4ypDKsfyE99eqmI1xA1ZUd/V7k1GauAnUL0X5pAyESnVNRkU5p3s/V
         382NKs5V6vZSNYmK+HfZ5Q+2yVI2dX5VXXUhDC/AVMpuuTIHU5Y52wlE0Cjqzvcn4i0y
         10xw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721656236; x=1722261036;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VkcqHFruFCEUof4OoJV+aKNWfp/qQu3JWhFJ8C1Mg3Y=;
        b=BiEW4ZTct351OShBXw4ZpGTB9YEKbmIZfngM18fOgjbwKpj9Fq4wld7TudGwcDbAPm
         C989GAIyrkt+l1JpweIhMcSKl9s59omac2F1Z7C8pcGGh2FeBrx/ztGoNuvRppDC9Tij
         v/hgGnt75y52pqdfXoYkapb6xGx8D7cXIRJwEuRz5+hv0sdYOiivPVFo4VCZdnxEVLLj
         f8AafgLnWEoLggwEp017p5Kb1LL3G1imOera26TzFat+U+VpludmcjOHkCkgNirIc/hF
         KZ5GMP/Vq1YCCloNL67jflOZfnEm45vo9MUp6Mdn6WZUUG7FVWhIdTGbY81tS7XqNnCh
         UW8A==
X-Forwarded-Encrypted: i=1; AJvYcCUQrGBD66CMP2AstpXgvrfJ2vgFF1j96M8hEHFKomjwvCAUB1Fp6aKcldw7Eb/H3ZqSSMWZPC6DQ3VU9y15ULBx+2hOUTgvl4IMFNIx/hY=
X-Gm-Message-State: AOJu0YwZEPJPtTphiye/vQjgBQuZMQ1D65gp9tcNcvmGS4lTNwSJBooc
	59Y6I2RRjSqhcbFxVQP7/i2SdyJcBDW5tlDRbOV2tIOrFV8g4CXLpkNqMQx7rg==
X-Google-Smtp-Source: AGHT+IEZcVG86BDcWsKYNX2p4AHeWCKqzBPiNzGkLGxZgwKsykML3MJP3TNlccu9U6nkFQ4qHZ6pPw==
X-Received: by 2002:a17:907:9489:b0:a77:d495:26a2 with SMTP id a640c23a62f3a-a7a4c226b0dmr363555366b.55.1721656235888;
        Mon, 22 Jul 2024 06:50:35 -0700 (PDT)
Message-ID: <c8a8b325-3ee4-41c7-ab5c-ec968df677f9@suse.com>
Date: Mon, 22 Jul 2024 15:50:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 22/22] x86/AMD: add IRPerf support
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@cloud.com>
Cc: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edvin.torok@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1698261255.git.edwin.torok@cloud.com>
 <6cd765e98fa4888b9e94215f3572a94e95fe2a4b.1698261255.git.edwin.torok@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6cd765e98fa4888b9e94215f3572a94e95fe2a4b.1698261255.git.edwin.torok@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.10.2023 21:29, Edwin Török wrote:
> --- a/xen/arch/x86/msr.c
> +++ b/xen/arch/x86/msr.c
> @@ -584,6 +584,13 @@ int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
>          }
>          break;
>  
> +    case MSR_K8_HWCR:
> +        if ( !(cp->x86_vendor & X86_VENDOR_AMD) ||
> +             (val & ~K8_HWCR_IRPERF_EN) ||
> +             wrmsr_safe(msr, val) != 0 )
> +            goto gp_fault;
> +        break;

Well, no: There's no-where you ever turn the bit off again. There's no
respective adjustment to guest_rdmsr(). There's no migration of the bit
guests gain control of. You also shouldn't permit writing the bit when
the feature flag is clear.

> --- a/xen/include/public/arch-x86/cpufeatureset.h
> +++ b/xen/include/public/arch-x86/cpufeatureset.h
> @@ -241,7 +241,7 @@ XEN_CPUFEATURE(EFRO,          7*32+10) /*   APERF/MPERF Read Only interface */
>  
>  /* AMD-defined CPU features, CPUID level 0x80000008.ebx, word 8 */
>  XEN_CPUFEATURE(CLZERO,        8*32+ 0) /*A  CLZERO instruction */
> -XEN_CPUFEATURE(IRPERF,        8*32+ 1) /* Instruction Retired Performance Counter */
> +XEN_CPUFEATURE(IRPERF,        8*32+ 1) /*A! Instruction Retired Performance Counter */

Again I don't see why you have ! here. There's also missing movement of code
the previous patch added to recalculate_misc(), which now ought to be in
calculate_host_policy().

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 13:52:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 13:52:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.761994.1172079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVtSZ-0006jP-T5; Mon, 22 Jul 2024 13:52:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 761994.1172079; Mon, 22 Jul 2024 13:52:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVtSZ-0006jI-QR; Mon, 22 Jul 2024 13:52:15 +0000
Received: by outflank-mailman (input) for mailman id 761994;
 Mon, 22 Jul 2024 13:52:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NZPk=OW=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sVtSY-0006jC-ID
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 13:52:14 +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 987f354e-4831-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 15:52:13 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1721656330130922.7612174364122;
 Mon, 22 Jul 2024 06:52:10 -0700 (PDT)
Received: by mail-yw1-f171.google.com with SMTP id
 00721157ae682-6659e81bc68so44858747b3.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 06:52: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: 987f354e-4831-11ef-bbfe-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; t=1721656330; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=O579i6ruDriWBCMmmQcV0hHLn2ZQAfxwlu+8KLl0YcXg6uf74ee0/mbxBRL+MUwvS578jm6G6bvKqWgWMbCl+KZ8MiTcCgVK4lLb8YtUjRYtR0a4Q9HPoKpI+MpQomSRPrBsrjUiGS4EtV/rUxg2e/Buv+7yMSf3ZEn8F5FoZAI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721656330; 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=UWyLZ+rbKDcHujQTg+aeEEMLPQh3LsNe/noT9Sjxsf4=; 
	b=PoVTfsdclnStztFqkziTDWf24HYVtE+Xa9vXkQjInvlyyRohU+Z+hrsBmn+gxa8HFE5NYqYE2x1P4M3DkWYwiQS2gbC7jg6xY6Hc/wfMkY2k9IHMERLYx5D14Ncx5093ZOPnKCiSa6MONysEghGQfYXSFqYH55RxiTo1WpAb/m0=
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=1721656330;
	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=UWyLZ+rbKDcHujQTg+aeEEMLPQh3LsNe/noT9Sjxsf4=;
	b=RkFh4FO1i0zv7O1VJVll+/M3bWZdT4B8d/dX23aIOCB5obU/yA0JYAmPHg+egtVn
	z6rsvlEqskKm61B9Ll2q+sdgtSsW5I+sezjKyMTy2IGZYtCdydddWcgO/giaa32uv4m
	iddl1utNwDRnjJ+16QgAIrZpXbjUgM9VKRfpx5tw=
X-Forwarded-Encrypted: i=1; AJvYcCXgwWCi4ajKF2pHh+KxXm3DaNH1kIAdhOBCCPAXfLcybOyZegCU2nCDYDviniMlnikWR2paWKt8v/Wz40DHj/7S3foTnbkqUQNnLEaq8PE=
X-Gm-Message-State: AOJu0YwJmA8d4r86OYTlqPKfO3YnqrZrgLR55tE+KCbq3yEPp3S8MEsv
	f9zg1ASaSJS0STmhKTO64QswSnpYZRAoVJ5jhUVfOwDlbhTdRtuEYiX84I8uPIRRxP5yxsaPfSo
	/FCnHFTAaHUpiWLjwyWD62WsD+7Y=
X-Google-Smtp-Source: AGHT+IFyLjdiPqIwzq3xtBmnD7XGgXLytFBMlU3YMNEYTPhBuPflPnZYGCfpcFj0rqYJYtxT75MN+suu5W9u+/yIbuw=
X-Received: by 2002:a05:690c:6187:b0:650:859b:ec8d with SMTP id
 00721157ae682-66ad830a00fmr92292477b3.10.1721656329371; Mon, 22 Jul 2024
 06:52:09 -0700 (PDT)
MIME-Version: 1.0
References: <20240722112752.4981-1-tamas@tklengyel.com> <9013e512-2710-4492-8e60-8f25ba32bbe6@suse.com>
In-Reply-To: <9013e512-2710-4492-8e60-8f25ba32bbe6@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Mon, 22 Jul 2024 09:51:33 -0400
X-Gmail-Original-Message-ID: <CABfawhmPm18vuqVR6S6K2Rv0nCssUsrY0jgJthVF_y7TuKVx-w@mail.gmail.com>
Message-ID: <CABfawhmPm18vuqVR6S6K2Rv0nCssUsrY0jgJthVF_y7TuKVx-w@mail.gmail.com>
Subject: Re: [PATCH v3 1/2] Add libfuzzer target to fuzz/x86_instruction_emulator
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@xenproject.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 22, 2024 at 8:24=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 22.07.2024 13:27, Tamas K Lengyel wrote:
> > This target enables integration into oss-fuzz. Changing invalid input r=
eturn
> > to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding =
the
> > missing __wrap_vsnprintf wrapper which is required for successful oss-f=
uzz
> > build.
> >
> > Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> > ---
> > v3: don't include libfuzzer-harness in target 'all' as it requires spec=
ific cc
>
> With this, how is it going to be built at all? Only by invoking the speci=
al
> target "manually" as it seems? Which sets this up for easy bit-rotting. I
> wonder what others think here ...

Yes, by calling make with the specific target. It's not going to
bitrot because oss-fuzz will pick up any regression on a daily basis
to this target. I assume you would be interested in receiving the
fuzzing reports so it would show as a build failure in case something
broke it.

Tamas


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 13:57:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 13:57:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762006.1172090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVtXu-0007sq-Gd; Mon, 22 Jul 2024 13:57:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762006.1172090; Mon, 22 Jul 2024 13:57: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 1sVtXu-0007sj-DY; Mon, 22 Jul 2024 13:57:46 +0000
Received: by outflank-mailman (input) for mailman id 762006;
 Mon, 22 Jul 2024 13:57: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVtXt-0007sd-Qv
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 13:57:45 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ded8159-4832-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 15:57:43 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4267300145eso37083325e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 06:57: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
 a640c23a62f3a-a7a3c8be83esm424789866b.113.2024.07.22.06.57.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 06:57: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: 5ded8159-4832-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721656663; x=1722261463; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1BHUUPT+SxXGKu48PmE5Ac3pzSobMaZaFAvTthtVBHE=;
        b=YfvB03XYospKXY/8B5/JqnbEV37o8pP5G+G3tButCKwRPU9bLSsf3SQVSv785y2IwD
         pGCqF6W9Q1bmdi+RkbJZ+8GDAz1cn+Fk0z2jetbATFSkNEaSwQ1pwhdSF3LqCn4TxvpM
         yTj050hQ6sYWUp5ZDJljwK0NEYMisfmf7c24ERdE3ZFyWUdO/SkTAqOWjll2FqLcLEUm
         HSbfV8vMVF/iuNNny7HQzcb9MYz5XaoH/JfeOzQ1iZizS9BD9U+xRhv9u7SX5mBilUn1
         OHzxsUWMQwGuTSeR4NLJsHGu4ZwsbonQCGd1nUie//qKbVaA/Xg9iVUJzfT388pa2Njt
         FgrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721656663; x=1722261463;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1BHUUPT+SxXGKu48PmE5Ac3pzSobMaZaFAvTthtVBHE=;
        b=vtVN+nQyykKH1orXKOTRxswGf4HBjYU8zSz8i0MNTbFFJMP3SuboB9G4LwlF2dR78J
         4dOb3jt1E65ZuFG1u0lur07a5S/sV70cCIltdY4nrKNw3UHXTcLHzgOQYS2U54krdMM1
         qZzevypnAw2x7z/jeDXGndIIf8EAT1Pu1frhEZ5lSh4hxyFQIJ4Tjko1dajbwKxIGEo4
         j5VzZlGj6vVCEqVgh8XSTPqgLejk4a2IKMU6Yxp7BYkFlsMdzqMxit0egZdv5lDMQk0w
         6xrAEwCnaTL2EJI81cd82SDYKbSGrier8aT+o4cCVkxLUF8TPdKi4fhbNceh7PrpS2XX
         fw0A==
X-Forwarded-Encrypted: i=1; AJvYcCWE8Z+x+bXsstoQn6cSUI3jm4SG8bJ2BDndEpcAKh9eHCo+VlUlRk1DbehEcwMvUog/zBTJbhljou/eZvTEXVfZA5JsxFg06GK4GrZCwMo=
X-Gm-Message-State: AOJu0Yzi0rwRHINY7du9p0plXft8yea2MyEQKWOc5kXSNuAM3m2iS7g0
	92wEPkxxrFiiytk0tw2XDmsp4WawGpuKY1UIr9CFEYdwMGx3O87aRLJ42foWPA==
X-Google-Smtp-Source: AGHT+IGCTf2Q3MeiMgGL+frTyVn/8HN066cVstQRj33HsvaxsY+prrvinQLefhGHWezLO0N/VZhpSg==
X-Received: by 2002:a05:6000:4026:b0:362:4f55:6c43 with SMTP id ffacd0b85a97d-369bad7b763mr6021853f8f.0.1721656663304;
        Mon, 22 Jul 2024 06:57:43 -0700 (PDT)
Message-ID: <4d2d38ab-170f-4c98-9908-007adb9da950@suse.com>
Date: Mon, 22 Jul 2024 15:57:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/2] Add libfuzzer target to
 fuzz/x86_instruction_emulator
To: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
References: <20240722112752.4981-1-tamas@tklengyel.com>
 <9013e512-2710-4492-8e60-8f25ba32bbe6@suse.com>
 <CABfawhmPm18vuqVR6S6K2Rv0nCssUsrY0jgJthVF_y7TuKVx-w@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CABfawhmPm18vuqVR6S6K2Rv0nCssUsrY0jgJthVF_y7TuKVx-w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.07.2024 15:51, Tamas K Lengyel wrote:
> On Mon, Jul 22, 2024 at 8:24 AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 22.07.2024 13:27, Tamas K Lengyel wrote:
>>> This target enables integration into oss-fuzz. Changing invalid input return
>>> to -1 as values other then 0/-1 are reserved by libfuzzer. Also adding the
>>> missing __wrap_vsnprintf wrapper which is required for successful oss-fuzz
>>> build.
>>>
>>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>>> ---
>>> v3: don't include libfuzzer-harness in target 'all' as it requires specific cc
>>
>> With this, how is it going to be built at all? Only by invoking the special
>> target "manually" as it seems? Which sets this up for easy bit-rotting. I
>> wonder what others think here ...
> 
> Yes, by calling make with the specific target. It's not going to
> bitrot because oss-fuzz will pick up any regression on a daily basis
> to this target. I assume you would be interested in receiving the
> fuzzing reports so it would show as a build failure in case something
> broke it.

Please forgive my lack of knowledge here, but which part of whose
infrastructure would pick up stuff in a daily basis, and what fuzzing
reports (I've never seen any, daily or not) are you talking about?
For now it feels to me as if you're talking of what's possible down
the road, not what's going to happen from the moment this patch was
committed in a 2nd try. If so, the gap between both points in time
may be significant, and hence my bit-rotting concern would still
apply.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 14:03:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:03:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762014.1172099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVtdB-00013s-4s; Mon, 22 Jul 2024 14:03:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762014.1172099; Mon, 22 Jul 2024 14: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 1sVtdB-00013l-2I; Mon, 22 Jul 2024 14:03:13 +0000
Received: by outflank-mailman (input) for mailman id 762014;
 Mon, 22 Jul 2024 14:03: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=k8PV=OW=bounce.vates.tech=bounce-md_30504962.669e669b.v1-1a9b2c75e59f4b8aa2f0f5d86cad38f2@srs-se1.protection.inumbo.net>)
 id 1sVtd9-00013e-3o
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 14:03:11 +0000
Received: from mail135-10.atl141.mandrillapp.com
 (mail135-10.atl141.mandrillapp.com [198.2.135.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 201d479e-4833-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 16:03:09 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-10.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4WSMSC58dbz5QkLSn
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 14:03:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1a9b2c75e59f4b8aa2f0f5d86cad38f2; Mon, 22 Jul 2024 14:03: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: 201d479e-4833-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721656987; x=1721917487;
	bh=MSapFqqTdz9X3vB7aeqkkvWkEwHPCK3gqIlvip3B3fo=;
	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=V20wToOj3w8JY5x7ULcuFJU7AwwFTUl95nNP0jtMLG49j+oi60NUWfOH+KHiKtFy4
	 aiiJxF/Kcn0DE3mrLuSyRDZ0JEz6J57lFNiqkJamVLlkcYsWwM7Yeq+RuNszd6SbJf
	 zAzgEL9mV9wXazP//TC9Ez+xGttJVEjxCdW3OBscoRxjFhh3Mz4OzMWYqnRiz5BaTu
	 tqUlzgtuzQV8NID1lCQf0hKgSyFW9nW4JWAcgdea/tju1Se5ml03MVlLAX/z9rE0Dz
	 N2emtKCS7qxEXMAxhmmAnFmS4FRTmW6ssfWm3C69syP4WcQklf13pPyIYc82C5ll19
	 AWRhqYyFBjNEg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721656987; x=1721917487; i=anthony.perard@vates.tech;
	bh=MSapFqqTdz9X3vB7aeqkkvWkEwHPCK3gqIlvip3B3fo=;
	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=df+Pqd294KZfuUjwuPoUKC/Dif7/oz4m7h4YyqF+Ub/7V5aBFbjqccifm/L5BYaT8
	 1kX/IKKXO498irte0VD4oSpJHH9UDh2xY+wllWCqCAuEogdu6SjVu3SfVDat+0P0qn
	 0nczZhb3PMXOkA2YTzRGx69MB9TX1/+bl/Dz7EGykn+IxCOMPM57XAct0iJ+CLCIq1
	 VOIHUoo8bCtP307kYaKPHKv05Gcu+LY1NHl0X3cGmN9sQy1lU/392ljRFEDm0k3cNv
	 leMZ5V9MrLLup9i3BB7b+hLUG7r11oGhbL/synf4ViEQwiaFp9daW66ZUi70XoBBnm
	 KrycFCX+94vuw==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=202/2]=20Add=20tools/fuzz/oss-fuzz/build.sh?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721656984665
To: Jan Beulich <jbeulich@suse.com>
Cc: Tamas K Lengyel <tamas@tklengyel.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-Id: <Zp5mmA3e45BwiNlE@l14>
References: <20240722112752.4981-1-tamas@tklengyel.com> <20240722112752.4981-2-tamas@tklengyel.com> <9bd41e19-50f7-43e7-b3ce-c2870a836f79@suse.com>
In-Reply-To: <9bd41e19-50f7-43e7-b3ce-c2870a836f79@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.1a9b2c75e59f4b8aa2f0f5d86cad38f2?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240722:md
Date: Mon, 22 Jul 2024 14:03:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Jul 22, 2024 at 02:20:21PM +0200, Jan Beulich wrote:
> On 22.07.2024 13:27, Tamas K Lengyel wrote:
> > +# SPDX-License-Identifier: Apache-2.0
> 
> ... there wouldn't want to be an "-only" tag here. Yet I'm entirely uncertain
> with this, as CC-BY-4.0 also has no such tag.

FYI, all valid SPDX identifier are listed there:
https://spdx.org/licenses/

"Apache-2.0" is the correct one to use.

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 Jul 22 14:07:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:07:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762023.1172110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVthj-0002Cu-O8; Mon, 22 Jul 2024 14:07:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762023.1172110; Mon, 22 Jul 2024 14:07:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVthj-0002Cn-KG; Mon, 22 Jul 2024 14:07:55 +0000
Received: by outflank-mailman (input) for mailman id 762023;
 Mon, 22 Jul 2024 14:07: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=NZPk=OW=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sVthh-0002Ch-Q9
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 14:07:53 +0000
Received: from sender4-op-o12.zoho.com (sender4-op-o12.zoho.com
 [136.143.188.12]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c6d60373-4833-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 16:07:50 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1721657266882828.3430265973116;
 Mon, 22 Jul 2024 07:07:46 -0700 (PDT)
Received: by mail-yw1-f179.google.com with SMTP id
 00721157ae682-65f7bd30546so31179257b3.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 07:07: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: c6d60373-4833-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1721657268; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=IIQiai6P+HMuKKVR5AX/C7TCtd1fASVSNLcUxZft5sh2BR5k9Kylg1o/682zwDjDBm3aBv6KH6bjLj/hx2AUAj5eZDTW2wUz1j5njPOoaa6pUvUdrhiTnIvfL77r2CNKmG9wuxw1dgWIUBhpHyz72zD5gvi9J4hyKvZuhU36Y+Y=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1721657268; 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=ymsslw8WPnqgAd6UT7sCqI7SIkucw0cEeB7ugUBdApM=; 
	b=ApCQno5vcmivAfiD8sXhX4RfzcL77EKkdRU+dz20bAVpSQxP1/ImOxGFvATsXhOz3JJNKPtjXV62CmBg3uX9OHArGlePjGzoavjntiUMYkUN3+T3mMVNcPG9bH/e8fSKTFH7rlS198rNwXVV2Mkul9L5TWzA3guV45yNdy0kwDI=
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=1721657268;
	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=ymsslw8WPnqgAd6UT7sCqI7SIkucw0cEeB7ugUBdApM=;
	b=gLov9NtZPvuh66qG5nWg3ZbQWMLszZU6DiP8+bWzN2MwfL5uKjURBYg0GrVqsSMt
	S++N0JO9tw9TEvfiffJqbgEVpF86QqTrMFZkxCVO1PLJ+7LAXj6kJV6F6zrFHdRJRpD
	KpJDxKcdeMTnikkWmZX2pBUeqKYhivuOG/qA5/Ss=
X-Forwarded-Encrypted: i=1; AJvYcCXkIx36ohPxx8KpZsq33yV0BLCG9DAl69xBe8ZZnkL7GQzK71323IwuSgRJCcuyWTedAuLWb5nJyDemmkp748354aI08CU4+V0ZrD5RquE=
X-Gm-Message-State: AOJu0YxxWx60bFI/yr5aWwgp7lOj/f7321FubjlZ2ZquaOYuRkMjoAsZ
	R5/TATyC0vtQ70vqmUg8/5SFSlsIdxed8UwBBHNT0PK78hl3cyK8wEdmjSEWqKSWKrC/XuvbBzL
	QJoRo5KqrVLU062Qrt8ebRjNSwBw=
X-Google-Smtp-Source: AGHT+IFO/SGrOknhxf58enFtsBhDTAqP5/YeeBlHxm/CAr0uCjhgY+POo3Akn93L6ezRo4m6OASjbXwDFJEISGg2ptI=
X-Received: by 2002:a0d:ee41:0:b0:61a:e979:427e with SMTP id
 00721157ae682-666086eabc6mr104980947b3.11.1721657266013; Mon, 22 Jul 2024
 07:07:46 -0700 (PDT)
MIME-Version: 1.0
References: <20240722112752.4981-1-tamas@tklengyel.com> <9013e512-2710-4492-8e60-8f25ba32bbe6@suse.com>
 <CABfawhmPm18vuqVR6S6K2Rv0nCssUsrY0jgJthVF_y7TuKVx-w@mail.gmail.com> <4d2d38ab-170f-4c98-9908-007adb9da950@suse.com>
In-Reply-To: <4d2d38ab-170f-4c98-9908-007adb9da950@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Mon, 22 Jul 2024 10:07:09 -0400
X-Gmail-Original-Message-ID: <CABfawh=pM_6gf7Ad5m_pYhY2JnTW+zOerbGXdtnU6CfbeSrutg@mail.gmail.com>
Message-ID: <CABfawh=pM_6gf7Ad5m_pYhY2JnTW+zOerbGXdtnU6CfbeSrutg@mail.gmail.com>
Subject: Re: [PATCH v3 1/2] Add libfuzzer target to fuzz/x86_instruction_emulator
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@xenproject.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 22, 2024 at 9:57=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 22.07.2024 15:51, Tamas K Lengyel wrote:
> > On Mon, Jul 22, 2024 at 8:24=E2=80=AFAM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >>
> >> On 22.07.2024 13:27, Tamas K Lengyel wrote:
> >>> This target enables integration into oss-fuzz. Changing invalid input=
 return
> >>> to -1 as values other then 0/-1 are reserved by libfuzzer. Also addin=
g the
> >>> missing __wrap_vsnprintf wrapper which is required for successful oss=
-fuzz
> >>> build.
> >>>
> >>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> >>> ---
> >>> v3: don't include libfuzzer-harness in target 'all' as it requires sp=
ecific cc
> >>
> >> With this, how is it going to be built at all? Only by invoking the sp=
ecial
> >> target "manually" as it seems? Which sets this up for easy bit-rotting=
. I
> >> wonder what others think here ...
> >
> > Yes, by calling make with the specific target. It's not going to
> > bitrot because oss-fuzz will pick up any regression on a daily basis
> > to this target. I assume you would be interested in receiving the
> > fuzzing reports so it would show as a build failure in case something
> > broke it.
>
> Please forgive my lack of knowledge here, but which part of whose
> infrastructure would pick up stuff in a daily basis, and what fuzzing
> reports (I've never seen any, daily or not) are you talking about?
> For now it feels to me as if you're talking of what's possible down
> the road, not what's going to happen from the moment this patch was
> committed in a 2nd try. If so, the gap between both points in time
> may be significant, and hence my bit-rotting concern would still
> apply.

Once these two patches are merged to Xen I'll send my PR to oss-fuzz
to have it pull Xen daily and build this fuzzer and run it on their
infrastructure. It usually takes them less than 24 hours to respond to
PRs, I have added multiple projects there already so the "lag" you
worry about it's not something to worry about.

Having these two patches upstream in Xen is not required by the way, I
could just send these to be upstream to oss-fuzz and have them apply
them after it pulling the xen git repo but it gives more flexibility
to you guys to add additional fuzzers in the future more easily if
these are in your repository because you don't even have to touch
oss-fuzz afterwards.

If you need to learn more about what oss-fuzz is and how it operates
they have a quite nice documentation.

Tamas


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 14:09:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:09:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762029.1172119 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVtjV-0002k4-1w; Mon, 22 Jul 2024 14:09:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762029.1172119; Mon, 22 Jul 2024 14:09: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 1sVtjU-0002jx-VP; Mon, 22 Jul 2024 14:09:44 +0000
Received: by outflank-mailman (input) for mailman id 762029;
 Mon, 22 Jul 2024 14:09:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=urmM=OW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sVtjT-0002jn-JA
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 14:09:43 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 09c2a98b-4834-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 16:09:41 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52f04c1e58eso1172578e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 07:09:41 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52efe29c066sm745236e87.183.2024.07.22.07.09.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 07: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: 09c2a98b-4834-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721657381; x=1722262181; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=uD9EuaW0GWOnxqh2AFy2RrKGdjrHNnxxMsowt9f4MJU=;
        b=AIA+NKHOoqbCoKv7CkMJvX1OawzCBgyEhPflJpo68MxisjvyywIlaGUwAPhwy1o2GP
         ZTzShWcaXUNCAETAKrGuRvk2nyeCqWT5GsfFv3ajTnjuS7BNgASjmtMDenKVriANK7uQ
         JDqt9MYoulvzFB/QpydS+oo7ygIqRGXb9gFf5c6bGLv6hpnQki3pCs4h/ISlCL7CrJOs
         H6Wc7bxiybHTYLaFEacnDfcdfqkt+ySxcR2VzVfYt+HzxuEeEwUKVS6jvFFXZz6DcF2l
         f/lNbTXpBXCZUuPwn5raMgaMCgUYW54rwPAhC+KqFcIlxRLu8+AG+sK1OBFW4A5l9Dkd
         Mvmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721657381; x=1722262181;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=uD9EuaW0GWOnxqh2AFy2RrKGdjrHNnxxMsowt9f4MJU=;
        b=gsoU71aijgr63R/iWQ517s9WXJk7wsZNErYCMQ0h0ERs/ERvn02Ql+2DNPmcBGC9Dz
         CBpOdRna3T3sZNojIbNQdQLgLnZJajJF9YxX1pQ6Wx66GuOLq6VaGfcWqMUaMMYrj5sm
         zaxUxz0ozSwpNNe16oOTIR2nOQi1LgVi61hDmEDY+6OGbVTZkXtPN8xNxNnFim6auBk5
         ivEeqYs7CANk1dAa4XZxcC/PIBW83ugugwslRzinKxza2P1AXoVqj1wCtyOig8BoPcmw
         p8wdaYWy3GBBM15LlMd6xktNbSM5oM64SCa/ZqaC6ogJ9lLqywihv2WliFEgIVNwUp5p
         +XnQ==
X-Forwarded-Encrypted: i=1; AJvYcCVGvBoxtDhl4KS3c7WnIq4PrGBGXDwvdjmc9C97WJkdS+tynDkCKkEFE3nKrPalWlEaF6Nj5LKoB72eNoB5Brh8l0Re+Bmyz3UNyFrOUR8=
X-Gm-Message-State: AOJu0Yz7NS/82QKBcULSaf4Hv0VKCXi6gl4lNmv8q8xEUUPiZw4UCvvJ
	6JtWu+C8l7jfDmb+n7LxgcJZIOZ+9LI9GqXTa3CEwuor2iBNEeYp
X-Google-Smtp-Source: AGHT+IHNkAe97Gvcm0YjnJGtqS/EDZ03QvDZ0XF0D6DS7RNTksLh3Hd9KnSNMWwz6P4NX0D1p1vAqQ==
X-Received: by 2002:ac2:4bc2:0:b0:52e:8071:e89d with SMTP id 2adb3069b0e04-52efb7aed7dmr6207884e87.40.1721657380545;
        Mon, 22 Jul 2024 07:09:40 -0700 (PDT)
Message-ID: <16b92dc23daf98d2c55ab42f0d941d9b8888064e.camel@gmail.com>
Subject: Re: [PATCH v10 4/5] xen/riscv: enable GENERIC_BUG_FRAME
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Mon, 22 Jul 2024 16:09:39 +0200
In-Reply-To: <5e3be451-188f-4092-a84e-1c40a5ad6b44@suse.com>
References: <cover.1720799487.git.oleksii.kurochko@gmail.com>
	 <c2bbbe2ac9f41c19f746418df324212b2e4684a5.1720799487.git.oleksii.kurochko@gmail.com>
	 <5e3be451-188f-4092-a84e-1c40a5ad6b44@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-22 at 13:02 +0200, Jan Beulich wrote:
> On 12.07.2024 18:18, Oleksii Kurochko wrote:
> > To have working BUG(), WARN(), ASSERT, run_in_exception_handler()
> > it is needed to enable GENERIC_BUG_FRAME.
> >=20
> > Also, <xen/lib.h> is needed to be included for the reason that
> > panic() and
> > printk() are used in common/bug.c and RISC-V fails if it is not
> > included
> > with the following errors:
> > =C2=A0=C2=A0 common/bug.c:69:9: error: implicit declaration of function
> > 'printk'
> > =C2=A0=C2=A0 [-Werror=3Dimplicit-function-declaration]
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 69 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 printk("Xen WARN at %s%s:%d\n", prefix,
> > filename,
> > =C2=A0=C2=A0 lineno);
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^~~~~~
> > =C2=A0=C2=A0 common/bug.c:77:9: error: implicit declaration of function
> > 'panic'
> > =C2=A0=C2=A0 [-Werror=3Dimplicit-function-declaration]
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 77 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 panic("Xen BUG at %s%s:%d\n", prefix, filename,
> > =C2=A0=C2=A0 lineno);
>=20
> I don't think the diagnostics themselves are needed here.
>=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > Changes in V10:
> > =C2=A0- put 'select GENERIC_BUG_FRAME' in "Config RISCV".
> > =C2=A0- rework do_trap() to not fetch an instruction in case when the
> > cause of trap
> > =C2=A0=C2=A0 is BUG_insn.
>=20
> It's BUG_insn here, but then ...
>=20
> > @@ -103,7 +104,29 @@ static void do_unexpected_trap(const struct
> > cpu_user_regs *regs)
> > =C2=A0
> > =C2=A0void do_trap(struct cpu_user_regs *cpu_regs)
> > =C2=A0{
> > -=C2=A0=C2=A0=C2=A0 do_unexpected_trap(cpu_regs);
> > +=C2=A0=C2=A0=C2=A0 register_t pc =3D cpu_regs->sepc;
> > +=C2=A0=C2=A0=C2=A0 unsigned long cause =3D csr_read(CSR_SCAUSE);
> > +
> > +=C2=A0=C2=A0=C2=A0 switch ( cause )
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0 case CAUSE_BREAKPOINT:
>=20
> ... BREAKPOINT here? Generally I'd deem something named "breakpoint"
> as
> debugging related (and hence continuable). I'd have expected
> CAUSE_ILLEGAL_INSTRUCTION here, but likely I'm missing something.
Agree, that is is confusing, but BUG_insn is defined as ebreak
instruction ( Linux kernel uses also ebreak ) and it generates
CAUSE_BREAKPOINT.

>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( do_bug_frame(cpu_regs,=
 pc) >=3D 0 )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if =
( !pc ||
>=20
> In how far does this really need special casing? Isn't that case
> covered by
>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 !(is_kernel_text(pc + 1) || is_kernel_inittext(=
pc
> > + 1)) )
>=20
> ... these checks anyway?
Good point. We could drop it.

> And btw, why the "+ 1" in both function arguments?
There is no need for them anymore, just missed to drop +1.

~ Oleksii

>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 printk("Something wrong with PC: 0x%lx\n", pc);
>=20
> Nit: %#lx please in situations like this.
>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 die();
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu=
_regs->sepc +=3D GET_INSN_LENGTH(*(uint16_t *)pc);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret=
urn;
>=20
> This isn't needed, is it? You'd return anyway by ...
>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 break;
>=20
> .... going through here to ...
>=20
> > +=C2=A0=C2=A0=C2=A0 default:
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 do_unexpected_trap(cpu_regs=
);
> > +=C2=A0=C2=A0=C2=A0 }
> > =C2=A0}
>=20
> ... here.
>=20
> Two further nits for the default case: Please have a break statement
> there as well, and please have a blank line immediately up from it.
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 14:10:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:10:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762034.1172130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVtjv-00043j-9u; Mon, 22 Jul 2024 14:10:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762034.1172130; Mon, 22 Jul 2024 14:10: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 1sVtjv-00043c-7P; Mon, 22 Jul 2024 14:10:11 +0000
Received: by outflank-mailman (input) for mailman id 762034;
 Mon, 22 Jul 2024 14:10:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVtjt-00043G-U3; Mon, 22 Jul 2024 14:10:09 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVtjt-0007rQ-QH; Mon, 22 Jul 2024 14:10:09 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVtjt-0004lP-GN; Mon, 22 Jul 2024 14:10:09 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVtjt-0004Cc-Fv; Mon, 22 Jul 2024 14:10: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=tsaNMSZ4kHM+Pkd1BGjViIp5lSDklXZWmVTMrJ0pZTk=; b=OW/q6sfkr5P1LQ2IxmvV5kZTMq
	41VuQ9ii+AWPPTPP71izkezE9wrcDGV/stPDD97dTKsMattcO6X3pXWprkltZ77j7YIkZC8glJCGa
	aNRDICBo2l1MPDycuxp8bp71QSAU756fkAPrXWwbvOJAZHoUPlIgc0J2CWbgewnZUVmM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186942-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186942: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=469f29fe7647c6dc8975a3c03ea7e181270d44d3
X-Osstest-Versions-That:
    ovmf=734aaff8625760fb5d38024168a5f8696b14fd10
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Jul 2024 14:10:09 +0000

flight 186942 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186942/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 469f29fe7647c6dc8975a3c03ea7e181270d44d3
baseline version:
 ovmf                 734aaff8625760fb5d38024168a5f8696b14fd10

Last test of basis   186930  2024-07-21 12:15:01 Z    1 days
Testing same since   186942  2024-07-22 12:11:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   734aaff862..469f29fe76  469f29fe7647c6dc8975a3c03ea7e181270d44d3 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 14:31:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:31:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762050.1172140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVu4m-00080C-0K; Mon, 22 Jul 2024 14:31:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762050.1172140; Mon, 22 Jul 2024 14:31: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 1sVu4l-000805-Te; Mon, 22 Jul 2024 14:31:43 +0000
Received: by outflank-mailman (input) for mailman id 762050;
 Mon, 22 Jul 2024 14:31: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=urmM=OW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sVu4k-0007zz-7x
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 14:31:42 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1bb2fbb7-4837-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 16:31:39 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-52ed9b802ceso3905546e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 07:31:39 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52ef5572454sm1249207e87.231.2024.07.22.07.31.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 07:31: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: 1bb2fbb7-4837-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721658699; x=1722263499; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=iGTpPRLc7S0NUO+JcK87guD1sycv4lIsXUQgEzgkCMg=;
        b=XH/8unty5dI0Ii4XSizjoH/Ao0wIuLtWDf34Y+94k6QE2DktrE0JxIa+9bLzoDfsXL
         ZCUep7kincPJuHDEdslr9M+h5NpNQjYPRBqipZkwJDgN2vXoeB7gpKJIwW3/rE7Vfy+9
         KSk2bj4ty/Dn6Qmsj6CCHsa6yGy62htE1w9ZWCIyiK/7McfoLaXM/Nn1GI8BsTzBtLNe
         W5Y4jGee2rFEme5vF1V0ql0OPA6ePbxEUtloNkLf/5kvXAIvDol+g+mLa8uif83tpFnD
         vAKVtycnl3FVpL4jrcW8RZY3GqdylgdN6IIs4lSQVU767lq4v5gEa8LK6VQ0eX33oNGZ
         3jGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721658699; x=1722263499;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=iGTpPRLc7S0NUO+JcK87guD1sycv4lIsXUQgEzgkCMg=;
        b=F8Y1nLouhe1sCUMbk/MIQrE7sQwJQph6sJ+ifm1re8zVVmN7oWoFhIEeRdwpI1BD1i
         njrdyfTqGvf9YcWmMStDHFQ3KSbBNuaz7efhHPn8FmLtW6Us5q1E+6Qc8uFlXiu2HC9Z
         Z+g/P1EEbUePrO3il9i1LQ7EvtM0mlGmnH/gCK8FA5qhETwFJTyDVjAu5C55485IMSu2
         uvLlxdVoilM/allGVstOJGNi4/ht11X9nkkluj1CB4MjaFQmeNWI6k9Q3QNCPA3qJO6P
         oHnFnC8VpBbc5KNTTvXUF5ezVoj3Gu4db7OHI4SqGQRDek5bIjdRvlMLZWi3un5uRokg
         Sobw==
X-Forwarded-Encrypted: i=1; AJvYcCXpu1C4TOjdJEDjN+wjUmaqrh5kcYbC6RcLx1RZl/cLK337eCbryOZKLDFeg8xEuw2iDCSWxwBYupkIUYRMF5AL8PtqvDPK0nAuZKaCfRs=
X-Gm-Message-State: AOJu0YydwwjDG6+Zy4pOkCWwN/8oJCF9Zka52vuXQcUW4Q4xQpxv+YY/
	nGbP7ueVjvJ8yg2pxb51bi6+540GnpWffXFEnCn4wcSSdOlgAYKm
X-Google-Smtp-Source: AGHT+IF3bUBJ5aoYCYYM9oip2xfa27gv3oDa4KSrtUlJ+CT4Ltw7xZNn14V0PuNmy+/CoV72fxnopQ==
X-Received: by 2002:a05:6512:b21:b0:52e:a60e:3a04 with SMTP id 2adb3069b0e04-52efb85af78mr4420891e87.59.1721658698740;
        Mon, 22 Jul 2024 07:31:38 -0700 (PDT)
Message-ID: <3ce708acbe360854f88dc4c93b36c2359955915f.camel@gmail.com>
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
From: Oleksii <oleksii.kurochko@gmail.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Date: Mon, 22 Jul 2024 16:31:37 +0200
In-Reply-To: <8fd1cc2c-9dda-4e74-b242-fe8aa862955d@xen.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
	 <8fd1cc2c-9dda-4e74-b242-fe8aa862955d@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

Hi Julien,

On Sun, 2024-07-21 at 09:46 +0100, Julien Grall wrote:
> Hi Oleksii,
>=20
> On 12/07/2024 17:22, Oleksii Kurochko wrote:
> > Introduce a function to set up fixmap mappings and L0 page
> > table for fixmap.
> >=20
> > Additionally, defines were introduced in riscv/config.h to
> > calculate the FIXMAP_BASE address.
> > This involved introducing BOOT_FDT_VIRT_{START, SIZE} and
> > XEN_SIZE, XEN_VIRT_END.
> >=20
> > Also, the check of Xen size was updated in the riscv/lds.S
> > script to use XEN_SIZE instead of a hardcoded constant.
> >=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > Changes in V2:
> > =C2=A0 - newly introduced patch
> > ---
> > =C2=A0 xen/arch/riscv/include/asm/config.h |=C2=A0 9 ++++++
> > =C2=A0 xen/arch/riscv/include/asm/fixmap.h | 48
> > +++++++++++++++++++++++++++++
> > =C2=A0 xen/arch/riscv/include/asm/mm.h=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 =
2 ++
> > =C2=A0 xen/arch/riscv/include/asm/page.h=C2=A0=C2=A0 |=C2=A0 7 +++++
> > =C2=A0 xen/arch/riscv/mm.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 35 ++++++++++++++++++=
+++
> > =C2=A0 xen/arch/riscv/setup.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 2 ++
> > =C2=A0 xen/arch/riscv/xen.lds.S=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 2 +-
> > =C2=A0 7 files changed, 104 insertions(+), 1 deletion(-)
> > =C2=A0 create mode 100644 xen/arch/riscv/include/asm/fixmap.h
> >=20
> > diff --git a/xen/arch/riscv/include/asm/config.h
> > b/xen/arch/riscv/include/asm/config.h
> > index 50583aafdc..3275477c17 100644
> > --- a/xen/arch/riscv/include/asm/config.h
> > +++ b/xen/arch/riscv/include/asm/config.h
> > @@ -74,11 +74,20 @@
> > =C2=A0 #error "unsupported RV_STAGE1_MODE"
> > =C2=A0 #endif
> > =C2=A0=20
> > +#define XEN_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 MB(2)
>=20
> NIT: I would name it XEN_VIRT_SIZE to be consistent with the
> start/end.
>=20
> > +#define XEN_VIRT_END=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 (XEN_VIRT_START + XEN_SIZE)
> Can we get away with not introducing *_END and just use START, SIZE?
> The=20
> reason I am asking is with "end" it is never clear whether it is=20
> inclusive or exclusive. For instance, here you use an exclusive range
> but ...
>=20
> > +
> > +#define BOOT_FDT_VIRT_START=C2=A0=C2=A0=C2=A0=C2=A0 XEN_VIRT_END
> > +#define BOOT_FDT_VIRT_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 MB(4)
> > +
> > =C2=A0 #define DIRECTMAP_SLOT_END=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 509
> > =C2=A0 #define DIRECTMAP_SLOT_START=C2=A0=C2=A0=C2=A0 200
> > =C2=A0 #define DIRECTMAP_VIRT_START=C2=A0=C2=A0=C2=A0 SLOTN(DIRECTMAP_S=
LOT_START)
> > =C2=A0 #define DIRECTMAP_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 (SLOTN(DIRECTMAP_SLOT_END) -
> > SLOTN(DIRECTMAP_SLOT_START))
> > =C2=A0=20
> > +#define FIXMAP_BASE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 (BOOT_FDT_VIRT_START +
> > BOOT_FDT_VIRT_SIZE)
> > +#define FIXMAP_ADDR(n)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 (FIXMAP_BASE + (n) * PAGE_SIZE)
> > +
> > =C2=A0 #define FRAMETABLE_SCALE_FACTOR=C2=A0 (PAGE_SIZE/sizeof(struct
> > page_info))
> > =C2=A0 #define FRAMETABLE_SIZE_IN_SLOTS (((DIRECTMAP_SIZE / SLOTN(1)) /
> > FRAMETABLE_SCALE_FACTOR) + 1)
> > =C2=A0=20
> > diff --git a/xen/arch/riscv/include/asm/fixmap.h
> > b/xen/arch/riscv/include/asm/fixmap.h
> > new file mode 100644
> > index 0000000000..fcfb82d69c
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/fixmap.h
> > @@ -0,0 +1,48 @@
> > +/*
> > + * fixmap.h: compile-time virtual memory allocation
> > + */
> > +#ifndef __ASM_FIXMAP_H
> > +#define __ASM_FIXMAP_H
> > +
> > +#include <xen/bug.h>
> > +#include <xen/page-size.h>
> > +#include <xen/pmap.h>
> > +
> > +#include <asm/page.h>
> > +
> > +/* Fixmap slots */
> > +#define FIX_PMAP_BEGIN (0) /* Start of PMAP */
> > +#define FIX_PMAP_END (FIX_PMAP_BEGIN + NUM_FIX_PMAP - 1) /* End of
> > PMAP */
>=20
> ... here is seems to be inclusive. Furthermore if you had 32-bit
> address=20
> space, it is also quite easy to have to create a region right at the
> top=20
> of it. So when END is exclusive, it would become 0.
>=20
> So on Arm, we decided to start to get rid of "end". I would consider
> to=20
> do the same on RISC-V for new functions.
I will refactor the code and get rid of "end".

>=20
> > +#define FIX_MISC (FIX_PMAP_END + 1)=C2=A0 /* Ephemeral mappings of
> > hardware */
>=20
> Are you going to use this fixmap? If not, then I would consider to=20
> remove it.
Yes, it used now in copy_from_paddr():
   /**
    * copy_from_paddr - copy data from a physical address
    * @dst: destination virtual address
    * @paddr: source physical address
    * @len: length to copy
    */
   void __init copy_from_paddr(void *dst, paddr_t paddr, unsigned long
   len)
   {
       void *src =3D (void *)FIXMAP_ADDR(FIXMAP_MISC);
  =20
       while (len) {
           unsigned long l, s;
  =20
           s =3D paddr & (PAGE_SIZE-1);
           l =3D min(PAGE_SIZE - s, len);
  =20
           set_fixmap(FIXMAP_MISC, maddr_to_mfn(paddr),
   PAGE_HYPERVISOR_WC);
           memcpy(dst, src + s, l);
           clear_fixmap(FIXMAP_MISC);
  =20
           paddr +=3D l;
           dst +=3D l;
           len -=3D l;
       }
   }

>=20
> > +
> > +#define FIX_LAST FIX_MISC
> > +
> > +#define FIXADDR_START FIXMAP_ADDR(0)
> > +#define FIXADDR_TOP FIXMAP_ADDR(FIX_LAST)
> > +
> > +#ifndef __ASSEMBLY__
> > +
> > +/*
> > + * Direct access to xen_fixmap[] should only happen when {set,
> > + * clear}_fixmap() is unusable (e.g. where we would end up to
> > + * recursively call the helpers).
> > + */
> > +extern pte_t xen_fixmap[];
> > +
> > +/* Map a page in a fixmap entry */
> > +extern void set_fixmap(unsigned int map, mfn_t mfn, unsigned int
> > attributes);
> > +/* Remove a mapping from a fixmap entry */
> > +extern void clear_fixmap(unsigned int map);
>=20
> Neither of the functions seem to be implemented in this patch. Can
> you=20
> clarify what's the plan for them?
You are right, it could be dropped now. But in future this functions
are used for copy_from_paddr(). Look at the code above.


>=20
> Also, I know that for x86/arm, we have some function prefixed with=20
> extern. But AFAIK, we are trying to get rid of them.
>=20
> In any case, I think for RISC-V we need some consistency. For
> instance,=20
> here you define with extern but...
>=20
> > +
> > +#define fix_to_virt(slot) ((void *)FIXMAP_ADDR(slot))
> > +
> > +static inline unsigned int virt_to_fix(vaddr_t vaddr)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG_ON(vaddr >=3D FIXADDR_TOP || vaddr < FIXADDR_ST=
ART);
> > +
> > +=C2=A0=C2=A0=C2=A0 return ((vaddr - FIXADDR_START) >> PAGE_SHIFT);
> > +}
> > +
> > +#endif /* __ASSEMBLY__ */
> > +
> > +#endif /* __ASM_FIXMAP_H */
> > diff --git a/xen/arch/riscv/include/asm/mm.h
> > b/xen/arch/riscv/include/asm/mm.h
> > index 25af9e1aaa..a0bdc2bc3a 100644
> > --- a/xen/arch/riscv/include/asm/mm.h
> > +++ b/xen/arch/riscv/include/asm/mm.h
> > @@ -255,4 +255,6 @@ static inline unsigned int
> > arch_get_dma_bitsize(void)
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return 32; /* TODO */
> > =C2=A0 }
> > =C2=A0=20
> > +void setup_fixmap_mappings(void);
>=20
> ... here it is without.
>=20
> > +
> > =C2=A0 #endif /* _ASM_RISCV_MM_H */
> > diff --git a/xen/arch/riscv/include/asm/page.h
> > b/xen/arch/riscv/include/asm/page.h
> > index c831e16417..cbbf3656d1 100644
> > --- a/xen/arch/riscv/include/asm/page.h
> > +++ b/xen/arch/riscv/include/asm/page.h
> > @@ -81,6 +81,13 @@ static inline void flush_page_to_ram(unsigned
> > long mfn, bool sync_icache)
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 BUG_ON("unimplemented");
> > =C2=A0 }
> > =C2=A0=20
> > +/* Write a pagetable entry. */
> > +static inline void write_pte(pte_t *p, pte_t pte)
> > +{
> > +=C2=A0=C2=A0=C2=A0 *p =3D pte;
> > +=C2=A0=C2=A0=C2=A0 asm volatile ("sfence.vma");
> > +}
> > +
> > =C2=A0 #endif /* __ASSEMBLY__ */
> > =C2=A0=20
> > =C2=A0 #endif /* _ASM_RISCV_PAGE_H */
> > diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
> > index 7d09e781bf..d69a174b5d 100644
> > --- a/xen/arch/riscv/mm.c
> > +++ b/xen/arch/riscv/mm.c
> > @@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
> > =C2=A0 pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> > =C2=A0 stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT * PAGETABLE_ENTRIES];
> > =C2=A0=20
> > +pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> > +xen_fixmap[PAGETABLE_ENTRIES];
>=20
> Can you add a BUILD_BUG_ON() to check that the number of entries in
> the=20
> fixmap will never be above PAGETABLE_ENTRIES?
Sure. What is the best place? Somewhere in setup_fixmap_mappings()?

>=20
> > +
> > =C2=A0 #define
> > HANDLE_PGTBL(curr_lvl_num)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
> > \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 index =3D pt_index(curr_lvl_num,
> > page_addr);=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( pte_is_valid(pgtbl[index])
> > )=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 \
> > @@ -191,6 +194,38 @@ static bool __init
> > check_pgtbl_mode_support(struct mmu_desc *mmu_desc,
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return is_mode_supported;
> > =C2=A0 }
> > =C2=A0=20
> > +void __init setup_fixmap_mappings(void)
> > +{
> > +=C2=A0=C2=A0=C2=A0 pte_t *pte;
> > +=C2=A0=C2=A0=C2=A0 unsigned int i;
> > +
> > +=C2=A0=C2=A0=C2=A0 pte =3D &stage1_pgtbl_root[pt_index(HYP_PT_ROOT_LEV=
EL,
> > FIXMAP_ADDR(0))];
> > +
> > +=C2=A0=C2=A0=C2=A0 for ( i =3D HYP_PT_ROOT_LEVEL - 1; i !=3D 0; i-- )
>=20
> I am a little bit confused with the - 1. Is this because you only
> want=20
> to map at L1 (I am not sure if this is the correct naming for RISC-
> V)?
Yes, the idea is that I want to stop in L1 ( 2Mb pages ) as this
mapping is already exist and there will not be need to create a new
table. ( what will fail because boot allocator isn't initialized yet
and alloc_boot_pages() will start to alarm because of
BUG_ON(!nr_bootmem_regions) ).

RISC-V also uses word levels, but the order is an opposite to Arm.

>=20
> In any case, I think it would be worth a comment.
Sure, I will add it.


>=20
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 BUG_ON(!pte_is_valid(*pte))=
;
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte =3D (pte_t *)LOAD_TO_LI=
NK(pte_to_paddr(*pte));
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte =3D &pte[pt_index(i, FI=
XMAP_ADDR(0))];
> > +=C2=A0=C2=A0=C2=A0 }
> > +
> > +=C2=A0=C2=A0=C2=A0 BUG_ON( pte_is_valid(*pte) );
>=20
> Coding style: BUG_ON(pte_is_valid(*pte));
>=20
> > +
> > +=C2=A0=C2=A0=C2=A0 if ( !pte_is_valid(*pte) )
>=20
> I am a bit confused with this check. Above, Xen will crash if the PTE
> is=20
> valid. So why do we need a runtime check?
You are right, there is no any sense. We should drop it.

>=20
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t tmp =3D paddr_to_pte(=
LINK_TO_LOAD((unsigned
> > long)&xen_fixmap), PTE_TABLE);
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(pte, tmp);
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 printk("(XEN) fixmap is map=
ped\n");
> > +=C2=A0=C2=A0=C2=A0 }
> > +
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * We only need the zeroeth table allocated, b=
ut not the PTEs
> > set, because
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * set_fixmap() will set them on the fly.
>=20
> This function doesn't seem to exists yet (?).
Not yet. It will be introduced later...

~ Oleksii

>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +}
> > +
> > =C2=A0 /*
> > =C2=A0=C2=A0 * setup_initial_pagetables:
> > =C2=A0=C2=A0 *
> > diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
> > index 4defad68f4..13f0e8c77d 100644
> > --- a/xen/arch/riscv/setup.c
> > +++ b/xen/arch/riscv/setup.c
> > @@ -46,6 +46,8 @@ void __init noreturn start_xen(unsigned long
> > bootcpu_id,
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 test_macros_from_bug_h();
> > =C2=A0 #endif
> > =C2=A0=20
> > +=C2=A0=C2=A0=C2=A0 setup_fixmap_mappings();
> > +
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 printk("All set up\n");
> > =C2=A0=20
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 for ( ;; )
> > diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
> > index 070b19d915..63b1dd7bb6 100644
> > --- a/xen/arch/riscv/xen.lds.S
> > +++ b/xen/arch/riscv/xen.lds.S
> > @@ -181,6 +181,6 @@ ASSERT(!SIZEOF(.got.plt),=C2=A0 ".got.plt non-
> > empty")
> > =C2=A0=C2=A0 * Changing the size of Xen binary can require an update of
> > =C2=A0=C2=A0 * PGTBL_INITIAL_COUNT.
> > =C2=A0=C2=A0 */
> > -ASSERT(_end - _start <=3D MB(2), "Xen too large for early-boot
> > assumptions")
> > +ASSERT(_end - _start <=3D XEN_SIZE, "Xen too large for early-boot
> > assumptions")
> > =C2=A0=20
> > =C2=A0 ASSERT(_ident_end - _ident_start <=3D IDENT_AREA_SIZE, "identity
> > region is too big");
>=20
> Cheers,
>=20



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 14:36:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:36:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762060.1172157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVu8z-0000FH-Mr; Mon, 22 Jul 2024 14:36:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762060.1172157; Mon, 22 Jul 2024 14:36:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVu8z-0000FA-IK; Mon, 22 Jul 2024 14:36:05 +0000
Received: by outflank-mailman (input) for mailman id 762060;
 Mon, 22 Jul 2024 14:36:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=urmM=OW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sVu8x-0000F4-RB
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 14:36:03 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7e87ef0-4837-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 16:36:01 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2f01e9f53ebso163071fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 07:36:01 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef23af7892sm9035551fa.50.2024.07.22.07.36.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 07:36: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: b7e87ef0-4837-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721658961; x=1722263761; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=vu7riwlJ52aHXE5OhTMHX3Bwu+y9zI3kCY0fiJGHmJo=;
        b=BV1u2wfhcoZhm9YAxc/2uccFQ5Mu/udXJPxk080JQY8QcBaus+hTV8N1K/v1RwmJkX
         bN6pci138YbEzMk+Qm5l2jGIHIWz9S4Y8I1M2OQkO4W9Yry4/eLJgUnU7bFrBPuEPw1B
         YKmebhypj5Fub/G+KSzCzsc1AiutvYj9cvsoluzPKM9AozDLn61DCyVg1FHkLWiGA96V
         ig5ZlSECMYCAx3B3r5T5XVfLua1AkFZbpjx4XQtUHfEZOy3ONB05+Ye/cGpBGB1xMmDb
         ECBM8V/cFKFxiaS/EQbNx4i91qptmzBtmMpYt4Mc24fwDvv2xDkl7kgxmGpSxFsxCsMm
         fSRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721658961; x=1722263761;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vu7riwlJ52aHXE5OhTMHX3Bwu+y9zI3kCY0fiJGHmJo=;
        b=j1BGriUSxA6zYJ1PhjzyPus+R1vQ0k0zbQ7WEnmY1QyyNzBmzjDCnQkD91R51LxUXz
         av+lfTrlerBEmdHWZK0v/Bke9gvxRpno3Blw0VpvItxCEYwrh/PfyKZRmka5SlTc5vg0
         x9Rada+vPfL6nvhH3Xff/gCw3FhXqYlKuayMVM1TjSOc9KgYCnPAjwlw7pkt/ovlo5i4
         Q8BAtsWhSN/libaNWpaaKZC2XnOSrm71/Uj+hN/E2e2lQZ2br1EjXUc/beNgj4rFZ2sD
         2tgJpXZgvNoYB6bYjFDoH4FuWwjcdD+pfnr5vKj7DCZcH7LOn6w7Ddtcs1ygxYK0Plv8
         UMTw==
X-Forwarded-Encrypted: i=1; AJvYcCX8aIf/AIdMoa4b+BgPPHp1NqK2mnnDV+rLDV10zZgfK1p8FWZsoPW4wJHB28+u925Nm6MZfSo0QY870WNTCGeo12ay2gPi+qYpxmDQPD4=
X-Gm-Message-State: AOJu0Yx/JV/sU1SLKRlIpIRcUNaJkIwHUdp4y3uScW4Aq32rI3w0IXOF
	UegucJqeJrCZQueIy/68LrBhXdj7/xWGpGmMBOs777SpTe1VPeLF
X-Google-Smtp-Source: AGHT+IENeDdGg5g41DgAlM7pZ4rjXFdc2l0aa2EhBUHnlMolLR7LExpVXxmCEeeUTRkt4YLAHRsd6A==
X-Received: by 2002:a2e:3002:0:b0:2ef:2a60:c1c1 with SMTP id 38308e7fff4ca-2ef2a60c2f7mr30613781fa.21.1721658960959;
        Mon, 22 Jul 2024 07:36:00 -0700 (PDT)
Message-ID: <26a45d85fa22a696b629e602e87d5d95626b77f0.camel@gmail.com>
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Mon, 22 Jul 2024 16:36:00 +0200
In-Reply-To: <16648c6c-416d-4205-8d16-38c006251bb9@suse.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
	 <16648c6c-416d-4205-8d16-38c006251bb9@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-22 at 14:42 +0200, Jan Beulich wrote:
> On 12.07.2024 18:22, Oleksii Kurochko wrote:
> > --- a/xen/arch/riscv/include/asm/config.h
> > +++ b/xen/arch/riscv/include/asm/config.h
> > @@ -74,11 +74,20 @@
> > =C2=A0#error "unsupported RV_STAGE1_MODE"
> > =C2=A0#endif
> > =C2=A0
> > +#define XEN_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 MB(2)
> > +#define XEN_VIRT_END=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 (XEN_VIRT_START + XEN_SIZE)
> > +
> > +#define BOOT_FDT_VIRT_START=C2=A0=C2=A0=C2=A0=C2=A0 XEN_VIRT_END
> > +#define BOOT_FDT_VIRT_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 MB(4)
> > +
> > =C2=A0#define DIRECTMAP_SLOT_END=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 509
> > =C2=A0#define DIRECTMAP_SLOT_START=C2=A0=C2=A0=C2=A0 200
> > =C2=A0#define DIRECTMAP_VIRT_START=C2=A0=C2=A0=C2=A0 SLOTN(DIRECTMAP_SL=
OT_START)
> > =C2=A0#define DIRECTMAP_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 (SLOTN(DIRECTMAP_SLOT_END) -
> > SLOTN(DIRECTMAP_SLOT_START))
> > =C2=A0
> > +#define FIXMAP_BASE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 (BOOT_FDT_VIRT_START +
> > BOOT_FDT_VIRT_SIZE)
> > +#define FIXMAP_ADDR(n)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 (FIXMAP_BASE + (n) * PAGE_SIZE)
>=20
> Why exactly do you insert this here, and not adjacent to
> BOOT_FDT_VIRT_*,
> which it actually is adjacent with?
I tried to follow alphabetical order.

>  Then ...
>=20
> > =C2=A0#define FRAMETABLE_SCALE_FACTOR=C2=A0 (PAGE_SIZE/sizeof(struct
> > page_info))
> > =C2=A0#define FRAMETABLE_SIZE_IN_SLOTS (((DIRECTMAP_SIZE / SLOTN(1)) /
> > FRAMETABLE_SCALE_FACTOR) + 1)
>=20
> ... this would also stay next to DIRECTMAP_*, which it uses.
>=20
> > --- a/xen/arch/riscv/include/asm/page.h
> > +++ b/xen/arch/riscv/include/asm/page.h
> > @@ -81,6 +81,13 @@ static inline void flush_page_to_ram(unsigned
> > long mfn, bool sync_icache)
> > =C2=A0=C2=A0=C2=A0=C2=A0 BUG_ON("unimplemented");
> > =C2=A0}
> > =C2=A0
> > +/* Write a pagetable entry. */
> > +static inline void write_pte(pte_t *p, pte_t pte)
> > +{
> > +=C2=A0=C2=A0=C2=A0 *p =3D pte;
> > +=C2=A0=C2=A0=C2=A0 asm volatile ("sfence.vma");
>=20
> When they don't have operands, asm()-s are volatile anyway (being
> explicit
> about this may still be desirable, yes). But: Can you get away
> without
> operands here? Don't you need a memory clobber for the fence to
> actually
> remain where it is needed?
It should be "::memory" here. Thanks.

>=20
> Also, nit (style): Blanks missing.
>=20
> > --- a/xen/arch/riscv/mm.c
> > +++ b/xen/arch/riscv/mm.c
> > @@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
> > =C2=A0pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> > =C2=A0stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT * PAGETABLE_ENTRIES];
> > =C2=A0
> > +pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> > +xen_fixmap[PAGETABLE_ENTRIES];
>=20
> Any reason this cannot be static?
It will be used by pmap:
   static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
   {
       pte_t *entry =3D &xen_fixmap[slot];
       pte_t pte;
  =20
       ASSERT(!pte_is_valid(*entry));
  =20
       pte =3D mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
       pte.pte |=3D PTE_LEAF_DEFAULT;
       write_pte(entry, pte);
   }
  =20
   static inline void arch_pmap_unmap(unsigned int slot)
   {
       pte_t pte =3D {};
  =20
       write_pte(&xen_fixmap[slot], pte);
   }

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 14:41:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:41:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762068.1172166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuDY-0002Hh-5t; Mon, 22 Jul 2024 14:40:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762068.1172166; Mon, 22 Jul 2024 14: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 1sVuDY-0002HK-3E; Mon, 22 Jul 2024 14:40:48 +0000
Received: by outflank-mailman (input) for mailman id 762068;
 Mon, 22 Jul 2024 14: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=urmM=OW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sVuDW-0002HD-NN
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 14:40:46 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 607da9ef-4838-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 16:40:44 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2eecd2c6432so64690011fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 07:40:44 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52f02846610sm537063e87.5.2024.07.22.07.40.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 07: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: 607da9ef-4838-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721659244; x=1722264044; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=gB66ADtljKgNpE2wmGo0t+zBgsABbouGKxWN0DXsYk4=;
        b=F2bycYTpf/jyxW3xQDAwD6f/r4+jCQ4KxHZDDZUeBDQIJWxjq4MBQyckhDP8dWLayR
         +JDPUuLk9mo7r5tyRakmP2gFiBSIHGtchMBAvxdvufN3+cV2GO1Pr0gjitWQ/n3KnhGq
         Wpe76Ko+mPSot1Yt9JW6nkyWzdmGTptt3lML/pgXc/JumSL2Lp5FwvpXWcjCFFw/s8W9
         1TFwdJSXN0mx3Q6VSP2Jy1XQT4TUe61nwDNqQ4dOysiBO+IYyQUpvsyLKOtx/i+SG1Pi
         cEXOorA/s6m4B+2QIPA5ZegCKHsT32GUr/Pk7P1YwZSeS9t0vSzWnqk1Mi2l6KCWvdf1
         r7zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721659244; x=1722264044;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gB66ADtljKgNpE2wmGo0t+zBgsABbouGKxWN0DXsYk4=;
        b=sfzr760m/UtHcXfEJ4Jb0ZsU87qIb9dDAt++sOzDSYTywobQaRUkkDZSa0iyofBip5
         T2CZY9EvMskFYysoV2Apo/lifIDBmSaNshiLXzBb75xwe26ulXGc7O3Htnsz5vzPJWcp
         89gcreM747Et+ppPjTjtkYj/KoAvuwahW+fMGBaCgSTfMz312aUI/0MM6fYiMp47kC/8
         0v9v4ThAxgQ+Sbw21KXrXsEX+f6C7HQ6XbxdAJxwLPw3Afp47Fe1WbkOEnMdcEeWJSLf
         wJHCXWOxNEj/NWSmSgXE8PxWjmo1YHlAF36RdUPv+yal4ICGGdgpLQCBwLIvbD1c1h52
         s75Q==
X-Forwarded-Encrypted: i=1; AJvYcCU0hcuOWvg3OifbE7TW3uOAo57XV2V/eVNFai84cFKlW7Y7joJLX9fS+tjEhaqJuFaV7MphmB8u+7U/NPJ7V0SWxx5oSAe5Bb/xefMLD3o=
X-Gm-Message-State: AOJu0Yw84RG6J+hQKHnDxAIwYzCsie+gHIn3ekf2ffA5nYqpV0IN4ZNX
	DRfENmYowe8WEte12AivtR4x7ef90+LQJp+XAETo+gBaOHdZCiAHjyELSnuW
X-Google-Smtp-Source: AGHT+IHxM+qxemdRhrbxmICLNxnYv3dGmDyyv/NAqhE0NAHSx9y4ipoiA4adpoicZmD+yI2UZ0EGCQ==
X-Received: by 2002:a05:6512:3ba6:b0:52e:9f1b:517 with SMTP id 2adb3069b0e04-52efb63ea6fmr6219626e87.25.1721659243992;
        Mon, 22 Jul 2024 07:40:43 -0700 (PDT)
Message-ID: <009bff8b38a4415acb2f107fc518bb165b3ea6ec.camel@gmail.com>
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
From: Oleksii <oleksii.kurochko@gmail.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Date: Mon, 22 Jul 2024 16:40:43 +0200
In-Reply-To: <15375179-1c94-43c3-a256-42a856905e21@xen.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
	 <15375179-1c94-43c3-a256-42a856905e21@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

Hi Julien,

On Sun, 2024-07-21 at 09:51 +0100, Julien Grall wrote:
> Hi Oleksii,
>=20
> On 12/07/2024 17:22, Oleksii Kurochko wrote:
> > Introduces arch_pmap_{un}map functions and select HAS_PMAP
> > for CONFIG_RISCV.
> >=20
> > Additionaly it was necessary to introduce functions:
> > =C2=A0 - mfn_to_xen_entry
> > =C2=A0 - mfn_to_pte
> >=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > Changes in V2:
> > =C2=A0 - newly introduced patch
> > ---
> > =C2=A0 xen/arch/riscv/Kconfig=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 1 +
> > =C2=A0 xen/arch/riscv/include/asm/page.h |=C2=A0 2 ++
> > =C2=A0 xen/arch/riscv/include/asm/pmap.h | 28
> > ++++++++++++++++++++++++++++
> > =C2=A0 xen/arch/riscv/mm.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 14 ++++++++++++++
> > =C2=A0 4 files changed, 45 insertions(+)
> > =C2=A0 create mode 100644 xen/arch/riscv/include/asm/pmap.h
> >=20
> > diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
> > index 259eea8d3b..0112aa8778 100644
> > --- a/xen/arch/riscv/Kconfig
> > +++ b/xen/arch/riscv/Kconfig
> > @@ -3,6 +3,7 @@ config RISCV
> > =C2=A0=C2=A0	select FUNCTION_ALIGNMENT_16B
> > =C2=A0=C2=A0	select GENERIC_BUG_FRAME
> > =C2=A0=C2=A0	select HAS_DEVICE_TREE
> > +	select HAS_PMAP
> > =C2=A0=20
> > =C2=A0 config RISCV_64
> > =C2=A0=C2=A0	def_bool y
> > diff --git a/xen/arch/riscv/include/asm/page.h
> > b/xen/arch/riscv/include/asm/page.h
> > index cbbf3656d1..339074d502 100644
> > --- a/xen/arch/riscv/include/asm/page.h
> > +++ b/xen/arch/riscv/include/asm/page.h
> > @@ -51,6 +51,8 @@ typedef struct {
> > =C2=A0 #endif
> > =C2=A0 } pte_t;
> > =C2=A0=20
> > +pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr);
> > +
> > =C2=A0 static inline pte_t paddr_to_pte(paddr_t paddr,
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned int p=
ermissions)
> > =C2=A0 {
> > diff --git a/xen/arch/riscv/include/asm/pmap.h
> > b/xen/arch/riscv/include/asm/pmap.h
> > new file mode 100644
> > index 0000000000..eb4c48515c
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/pmap.h
> > @@ -0,0 +1,28 @@
> > +#ifndef __ASM_PMAP_H__
> > +#define __ASM_PMAP_H__
> > +
> > +#include <xen/bug.h>
> > +#include <xen/mm.h>
> > +
> > +#include <asm/fixmap.h>
> > +
> > +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
> > +{
> > +=C2=A0=C2=A0=C2=A0 pte_t *entry =3D &xen_fixmap[slot];
> > +=C2=A0=C2=A0=C2=A0 pte_t pte;
> > +
> > +=C2=A0=C2=A0=C2=A0 ASSERT(!pte_is_valid(*entry));
> > +
> > +=C2=A0=C2=A0=C2=A0 pte =3D mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
> > +=C2=A0=C2=A0=C2=A0 pte.pte |=3D PTE_LEAF_DEFAULT;
> > +=C2=A0=C2=A0=C2=A0 write_pte(entry, pte);
> > +}
> > +
> > +static inline void arch_pmap_unmap(unsigned int slot)
> > +{
> > +=C2=A0=C2=A0=C2=A0 pte_t pte =3D {};
> > +
> > +=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixmap[slot], pte);
> > +}
> > +
> > +#endif /* __ASM_PMAP_H__ */
> > diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
> > index d69a174b5d..445319af08 100644
> > --- a/xen/arch/riscv/mm.c
> > +++ b/xen/arch/riscv/mm.c
> > @@ -370,3 +370,17 @@ int map_pages_to_xen(unsigned long virt,
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 BUG_ON("unimplemented");
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return -1;
> > =C2=A0 }
> > +
> > +static inline pte_t mfn_to_pte(mfn_t mfn)
> > +{
> > +=C2=A0=C2=A0=C2=A0 unsigned long pte =3D mfn_x(mfn) << PTE_PPN_SHIFT;
> > +=C2=A0=C2=A0=C2=A0 return (pte_t){ .pte =3D pte};
> > +}
> > +
> > +inline pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr)
> > +{
> > +=C2=A0=C2=A0=C2=A0 /* there is no attr field in RISC-V's pte */
> > +=C2=A0=C2=A0=C2=A0 (void) attr;
>=20
> Surely you have a way to say indicate whether an entry is
> readable/writable?
Sure, there is a way. But probably I misinterpreted attr for Arm and
decided not to use them here. By that I mean, that Arm has MT_NORMAL,
MT_DEVICE which RISC-V doesn't have.

If it is about readable/writable then for sure, I will start to use
attr.

~ Oleksii

>=20
> > +
> > +=C2=A0=C2=A0=C2=A0 return mfn_to_pte(mfn);
> > +}
>=20
> Cheers,
>=20



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 14:45:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:45:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762077.1172176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuHb-0002tp-P2; Mon, 22 Jul 2024 14:44:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762077.1172176; Mon, 22 Jul 2024 14:44:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuHb-0002ti-LU; Mon, 22 Jul 2024 14:44:59 +0000
Received: by outflank-mailman (input) for mailman id 762077;
 Mon, 22 Jul 2024 14:44: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 1sVuHa-0002tc-OD
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 14:44:58 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVuHa-0008TS-8a; Mon, 22 Jul 2024 14:44:58 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.0.211])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVuHa-0002G0-02; Mon, 22 Jul 2024 14: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>
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=02p29+YY269D48FvIkA6iubAUOWyMsjdj8I8LGHx5is=; b=ITTem54MMJPnMNlfqEnLnsdh7S
	9X25J6+V8msfi7KTe6j8zKMevoQzInyQBhDH9yvecO52h4vs72j0ck+T5ekCvvhmAU2lgZBuu+5XL
	1HhMsZN3b/+zQpDXJo1DYwXUJ0xGltngRfcTJfQTBEAJpdMewQRfJ4jsXthSWc7EcapA=;
Message-ID: <f13fe8e6-69f3-4eb5-bdf8-b2b5377c7a4a@xen.org>
Date: Mon, 22 Jul 2024 15:44:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
Content-Language: en-GB
To: Oleksii <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
 <8fd1cc2c-9dda-4e74-b242-fe8aa862955d@xen.org>
 <3ce708acbe360854f88dc4c93b36c2359955915f.camel@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <3ce708acbe360854f88dc4c93b36c2359955915f.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 22/07/2024 15:31, Oleksii wrote:
> Hi Julien,

Hi Oleksii,

> On Sun, 2024-07-21 at 09:46 +0100, Julien Grall wrote:
>> Hi Oleksii,
>>
>> On 12/07/2024 17:22, Oleksii Kurochko wrote:
>>> Introduce a function to set up fixmap mappings and L0 page
>>> table for fixmap.
>>>
>>> Additionally, defines were introduced in riscv/config.h to
>>> calculate the FIXMAP_BASE address.
>>> This involved introducing BOOT_FDT_VIRT_{START, SIZE} and
>>> XEN_SIZE, XEN_VIRT_END.
>>>
>>> Also, the check of Xen size was updated in the riscv/lds.S
>>> script to use XEN_SIZE instead of a hardcoded constant.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> ---
>>> Changes in V2:
>>>    - newly introduced patch
>>> ---
>>>    xen/arch/riscv/include/asm/config.h |  9 ++++++
>>>    xen/arch/riscv/include/asm/fixmap.h | 48
>>> +++++++++++++++++++++++++++++
>>>    xen/arch/riscv/include/asm/mm.h     |  2 ++
>>>    xen/arch/riscv/include/asm/page.h   |  7 +++++
>>>    xen/arch/riscv/mm.c                 | 35 +++++++++++++++++++++
>>>    xen/arch/riscv/setup.c              |  2 ++
>>>    xen/arch/riscv/xen.lds.S            |  2 +-
>>>    7 files changed, 104 insertions(+), 1 deletion(-)
>>>    create mode 100644 xen/arch/riscv/include/asm/fixmap.h
>>>
>>> diff --git a/xen/arch/riscv/include/asm/config.h
>>> b/xen/arch/riscv/include/asm/config.h
>>> index 50583aafdc..3275477c17 100644
>>> --- a/xen/arch/riscv/include/asm/config.h
>>> +++ b/xen/arch/riscv/include/asm/config.h
>>> @@ -74,11 +74,20 @@
>>>    #error "unsupported RV_STAGE1_MODE"
>>>    #endif
>>>    
>>> +#define XEN_SIZE                MB(2)
>>
>> NIT: I would name it XEN_VIRT_SIZE to be consistent with the
>> start/end.
>>
>>> +#define XEN_VIRT_END            (XEN_VIRT_START + XEN_SIZE)
>> Can we get away with not introducing *_END and just use START, SIZE?
>> The
>> reason I am asking is with "end" it is never clear whether it is
>> inclusive or exclusive. For instance, here you use an exclusive range
>> but ...
>>
>>> +
>>> +#define BOOT_FDT_VIRT_START     XEN_VIRT_END
>>> +#define BOOT_FDT_VIRT_SIZE      MB(4)
>>> +
>>>    #define DIRECTMAP_SLOT_END      509
>>>    #define DIRECTMAP_SLOT_START    200
>>>    #define DIRECTMAP_VIRT_START    SLOTN(DIRECTMAP_SLOT_START)
>>>    #define DIRECTMAP_SIZE          (SLOTN(DIRECTMAP_SLOT_END) -
>>> SLOTN(DIRECTMAP_SLOT_START))
>>>    
>>> +#define FIXMAP_BASE             (BOOT_FDT_VIRT_START +
>>> BOOT_FDT_VIRT_SIZE)
>>> +#define FIXMAP_ADDR(n)          (FIXMAP_BASE + (n) * PAGE_SIZE)
>>> +
>>>    #define FRAMETABLE_SCALE_FACTOR  (PAGE_SIZE/sizeof(struct
>>> page_info))
>>>    #define FRAMETABLE_SIZE_IN_SLOTS (((DIRECTMAP_SIZE / SLOTN(1)) /
>>> FRAMETABLE_SCALE_FACTOR) + 1)
>>>    
>>> diff --git a/xen/arch/riscv/include/asm/fixmap.h
>>> b/xen/arch/riscv/include/asm/fixmap.h
>>> new file mode 100644
>>> index 0000000000..fcfb82d69c
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/include/asm/fixmap.h
>>> @@ -0,0 +1,48 @@
>>> +/*
>>> + * fixmap.h: compile-time virtual memory allocation
>>> + */
>>> +#ifndef __ASM_FIXMAP_H
>>> +#define __ASM_FIXMAP_H
>>> +
>>> +#include <xen/bug.h>
>>> +#include <xen/page-size.h>
>>> +#include <xen/pmap.h>
>>> +
>>> +#include <asm/page.h>
>>> +
>>> +/* Fixmap slots */
>>> +#define FIX_PMAP_BEGIN (0) /* Start of PMAP */
>>> +#define FIX_PMAP_END (FIX_PMAP_BEGIN + NUM_FIX_PMAP - 1) /* End of
>>> PMAP */
>>
>> ... here is seems to be inclusive. Furthermore if you had 32-bit
>> address
>> space, it is also quite easy to have to create a region right at the
>> top
>> of it. So when END is exclusive, it would become 0.
>>
>> So on Arm, we decided to start to get rid of "end". I would consider
>> to
>> do the same on RISC-V for new functions.
> I will refactor the code and get rid of "end".
> 
>>
>>> +#define FIX_MISC (FIX_PMAP_END + 1)  /* Ephemeral mappings of
>>> hardware */
>>
>> Are you going to use this fixmap? If not, then I would consider to
>> remove it.
> Yes, it used now in copy_from_paddr():
>     /**
>      * copy_from_paddr - copy data from a physical address
>      * @dst: destination virtual address
>      * @paddr: source physical address
>      * @len: length to copy
>      */
>     void __init copy_from_paddr(void *dst, paddr_t paddr, unsigned long
>     len)
>     {
>         void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC);
>     
>         while (len) {
>             unsigned long l, s;
>     
>             s = paddr & (PAGE_SIZE-1);
>             l = min(PAGE_SIZE - s, len);
>     
>             set_fixmap(FIXMAP_MISC, maddr_to_mfn(paddr),
>     PAGE_HYPERVISOR_WC);
>             memcpy(dst, src + s, l);
>             clear_fixmap(FIXMAP_MISC);
>     
>             paddr += l;
>             dst += l;
>             len -= l;
>         }
>     }
> 
>>
>>> +
>>> +#define FIX_LAST FIX_MISC
>>> +
>>> +#define FIXADDR_START FIXMAP_ADDR(0)
>>> +#define FIXADDR_TOP FIXMAP_ADDR(FIX_LAST)
>>> +
>>> +#ifndef __ASSEMBLY__
>>> +
>>> +/*
>>> + * Direct access to xen_fixmap[] should only happen when {set,
>>> + * clear}_fixmap() is unusable (e.g. where we would end up to
>>> + * recursively call the helpers).
>>> + */
>>> +extern pte_t xen_fixmap[];
>>> +
>>> +/* Map a page in a fixmap entry */
>>> +extern void set_fixmap(unsigned int map, mfn_t mfn, unsigned int
>>> attributes);
>>> +/* Remove a mapping from a fixmap entry */
>>> +extern void clear_fixmap(unsigned int map);
>>
>> Neither of the functions seem to be implemented in this patch. Can
>> you
>> clarify what's the plan for them?
> You are right, it could be dropped now. But in future this functions
> are used for copy_from_paddr(). Look at the code above.

Right, to me it is just odd we are definition prototype for functions 
that don't yet exist.

>>
>> Also, I know that for x86/arm, we have some function prefixed with
>> extern. But AFAIK, we are trying to get rid of them.
>>
>> In any case, I think for RISC-V we need some consistency. For
>> instance,
>> here you define with extern but...
>>
>>> +
>>> +#define fix_to_virt(slot) ((void *)FIXMAP_ADDR(slot))
>>> +
>>> +static inline unsigned int virt_to_fix(vaddr_t vaddr)
>>> +{
>>> +    BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START);
>>> +
>>> +    return ((vaddr - FIXADDR_START) >> PAGE_SHIFT);
>>> +}
>>> +
>>> +#endif /* __ASSEMBLY__ */
>>> +
>>> +#endif /* __ASM_FIXMAP_H */
>>> diff --git a/xen/arch/riscv/include/asm/mm.h
>>> b/xen/arch/riscv/include/asm/mm.h
>>> index 25af9e1aaa..a0bdc2bc3a 100644
>>> --- a/xen/arch/riscv/include/asm/mm.h
>>> +++ b/xen/arch/riscv/include/asm/mm.h
>>> @@ -255,4 +255,6 @@ static inline unsigned int
>>> arch_get_dma_bitsize(void)
>>>        return 32; /* TODO */
>>>    }
>>>    
>>> +void setup_fixmap_mappings(void);
>>
>> ... here it is without.
>>
>>> +
>>>    #endif /* _ASM_RISCV_MM_H */
>>> diff --git a/xen/arch/riscv/include/asm/page.h
>>> b/xen/arch/riscv/include/asm/page.h
>>> index c831e16417..cbbf3656d1 100644
>>> --- a/xen/arch/riscv/include/asm/page.h
>>> +++ b/xen/arch/riscv/include/asm/page.h
>>> @@ -81,6 +81,13 @@ static inline void flush_page_to_ram(unsigned
>>> long mfn, bool sync_icache)
>>>        BUG_ON("unimplemented");
>>>    }
>>>    
>>> +/* Write a pagetable entry. */
>>> +static inline void write_pte(pte_t *p, pte_t pte)
>>> +{
>>> +    *p = pte;
>>> +    asm volatile ("sfence.vma");
>>> +}
>>> +
>>>    #endif /* __ASSEMBLY__ */
>>>    
>>>    #endif /* _ASM_RISCV_PAGE_H */
>>> diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
>>> index 7d09e781bf..d69a174b5d 100644
>>> --- a/xen/arch/riscv/mm.c
>>> +++ b/xen/arch/riscv/mm.c
>>> @@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
>>>    pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
>>>    stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT * PAGETABLE_ENTRIES];
>>>    
>>> +pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
>>> +xen_fixmap[PAGETABLE_ENTRIES];
>>
>> Can you add a BUILD_BUG_ON() to check that the number of entries in
>> the
>> fixmap will never be above PAGETABLE_ENTRIES?
> Sure. What is the best place? Somewhere in setup_fixmap_mappings()?

I think so.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 14:49:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:49:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762087.1172187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuLS-00046e-90; Mon, 22 Jul 2024 14:48:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762087.1172187; Mon, 22 Jul 2024 14:48: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 1sVuLS-00046X-4k; Mon, 22 Jul 2024 14:48:58 +0000
Received: by outflank-mailman (input) for mailman id 762087;
 Mon, 22 Jul 2024 14:48: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 1sVuLQ-00046P-Sp
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 14:48:56 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVuLO-00008d-QF; Mon, 22 Jul 2024 14:48:54 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.0.211])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVuLO-0002Ng-Gx; Mon, 22 Jul 2024 14:48: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=pgP/iCwcUPzym4raWyjOwblqkwfclTRxHOUydcLjN1A=; b=RbzYXvMlS+jMyZy1D/Zf6xHHBQ
	jk15SQxd0TDuXjwGj4fQZrPjqMi2Kgl8m5dgNoGGElLs2Qku+qVAvn9d/RGN6npc1inx6JYMbB3Ua
	mCcykwPw+5yMEkj7Trn0xe75KwOZi52d4p49tJG7OdKXcWQzD6GXhatP3VAUAf+C95ac=;
Message-ID: <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
Date: Mon, 22 Jul 2024 15:48:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
Content-Language: en-GB
To: Oleksii Kurochko <inisider@gmail.com>, 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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
 <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 22/07/2024 15:44, Oleksii Kurochko wrote:
> On Mon, 2024-07-22 at 14:54 +0200, Jan Beulich wrote:
>> On 12.07.2024 18:22, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/include/asm/pmap.h
>>> @@ -0,0 +1,28 @@
>>> +#ifndef __ASM_PMAP_H__
>>> +#define __ASM_PMAP_H__
>>> +
>>> +#include <xen/bug.h>
>>> +#include <xen/mm.h>
>>> +
>>> +#include <asm/fixmap.h>
>>> +
>>> +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
>>> +{
>>> +    pte_t *entry = &xen_fixmap[slot];
>>> +    pte_t pte;
>>> +
>>> +    ASSERT(!pte_is_valid(*entry));
>>> +
>>> +    pte = mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
>>> +    pte.pte |= PTE_LEAF_DEFAULT;
>>> +    write_pte(entry, pte);
>>> +}
>>> +
>>> +static inline void arch_pmap_unmap(unsigned int slot)
>>> +{
>>> +    pte_t pte = {};
>>> +
>>> +    write_pte(&xen_fixmap[slot], pte);
>>> +}
>>
>> Why are these not using set_fixmap() / clear_fixmap() respectively?
> They haven't been introduced yet. And I thought that these fucntion are
> used only in pmap_{un}map() and that is the reason why I decided to not
> introduce them. But while writing the answer on another comment, I
> found other places where set_fixmap() / clear_fixmap() are used, so I
> will introduce them and reuse here.

I am guessing you are going to implement set_fixmap()/clear_fixmap() 
using map_pages_to_xen(). If so, for early boot you are going to end up 
in a circular loop because map_pages_to_xen() will likely use pmap() 
which will call set_fixmap().

There is a big comment in common/pmap.c which explain why arch_pmap_* 
was introduced rather than calling *_fixmap() directly:

     /*
      * We cannot use set_fixmap() here. We use PMAP when the domain map
      * page infrastructure is not yet initialized, so 
map_pages_to_xen() called
      * by set_fixmap() needs to map pages on demand, which then calls 
pmap()
      * again, resulting in a loop. Modify the PTEs directly instead. 
The same
      * is true for pmap_unmap().
      */

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 14:51:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:51:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762095.1172195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuOE-0005bj-MY; Mon, 22 Jul 2024 14:51:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762095.1172195; Mon, 22 Jul 2024 14:51:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuOE-0005bc-K3; Mon, 22 Jul 2024 14:51:50 +0000
Received: by outflank-mailman (input) for mailman id 762095;
 Mon, 22 Jul 2024 14:51:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=urmM=OW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sVuOD-0005bS-0p
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 14:51:49 +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 ebdd3a9b-4839-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 16:51:48 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52efbb55d24so2827562e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 07:51:48 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52efa2820d2sm965959e87.257.2024.07.22.07.51.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 07:51: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: ebdd3a9b-4839-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721659907; x=1722264707; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=66Z4ANDo8hy/oRTaWYIScX14jYV39ia2y0ZjHKAum2Q=;
        b=ELx/5FXsTISt9oOng0SwpBdK84zTXltFdY/ny+B4+xTWzS2QWI3nF/HEc3o+0301WS
         jgsSE57wP43Hn71twkD8a6CNpV4pPUeU5E+HyRxsmORPaWl5j73Qynr3wFtODjegU2ra
         kha0SzZ9UUrBSEAyN2MRRLKeQnksxIgwEETlDc7CWGHRGAXD8BuoSf18/DCCGOcJhZPg
         hxbw6aUNkPV2Vl3r/RW6oI76cGVjzw1Ylk7voo0YhnXkTfySNSn+1iu54Bw4HEchnd5/
         dxoO6zQLVBrdEq285+aLGp99IIzadA6IxbddgYwWd5tbTlzDVQ/nLe6hGDkGFKV2YOIf
         IMnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721659907; x=1722264707;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=66Z4ANDo8hy/oRTaWYIScX14jYV39ia2y0ZjHKAum2Q=;
        b=aA/svTzBOBfyB7U+UP2Q9QSghF51GOLitI1q2WbqqEm+GvcQVD6dRRbmBeMWE8zJIp
         THz/WZDLuWEm8ljC/lccN9aQbdkitEuoks/192OIHp8DgQ1eWTgVNnfSfLVu1lhqmRCm
         RiDN1ank9VZKSBk9VIHLemcbcR3kf0wEZatFmgo5feR6XsPPrq/qZHT64x7e5romrF4V
         swx64JE0D7v8+IVoYfDRntjtFShV52ZK/C5iPekr78TSqG0XAPz+S6IOl6pzcdCR/dTq
         k2qe50yKcFdWagF+pmATDTFU44FBX5DEXVLMx79hSDp766duk+KbZWWrtEacGpUVICvs
         u2PA==
X-Forwarded-Encrypted: i=1; AJvYcCVUto9pYcpOoRxDLaXNn40cAHB6Bq1bI2njC8ChSUvsXboYjfLvdwgBrrG5HCGqf2s+QUL6gcLe0YNJ6TthDcZnaSZoKhglgCna0b5fQtM=
X-Gm-Message-State: AOJu0YwpiEuHp0QR5EqcXKYNHCenfPcd7Qdyyb3PgZYDSKQXkO2o9ReV
	HS1flMZIYrvIMe+qeVlqFrXGsJb+JDWpvf1z16f5V2wJ7dBzKDzE
X-Google-Smtp-Source: AGHT+IGUekzzNtufdWQizWUNhm/sbPmM0+IbmQEDkwK9BjKp8g/lCh/EuaPyNdqOX/q6vFJzxQAAfg==
X-Received: by 2002:a05:6512:3d1a:b0:52c:c9e4:3291 with SMTP id 2adb3069b0e04-52efb82570cmr4977215e87.60.1721659907052;
        Mon, 22 Jul 2024 07:51:47 -0700 (PDT)
Message-ID: <a0e77fa86e25a3947348e5778b4a23236b28c8f3.camel@gmail.com>
Subject: Re: [PATCH v2 6/8] xen/riscv: introduce generic Xen page table
 handling
From: Oleksii <oleksii.kurochko@gmail.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,  Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Date: Mon, 22 Jul 2024 16:51:46 +0200
In-Reply-To: <5187f606-0a1c-4812-8f8c-13301f0aba8c@xen.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <f2d7f538edb7db8990bf26b791df9da3d390bf05.1720799926.git.oleksii.kurochko@gmail.com>
	 <5187f606-0a1c-4812-8f8c-13301f0aba8c@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

Hi Julien,

On Sun, 2024-07-21 at 10:02 +0100, Julien Grall wrote:
> Hi,
>=20
> On 12/07/2024 17:22, Oleksii Kurochko wrote:
> > At least, between Arm and RISC-V most of the code related to Xen
> > page
> > table handling are common.
> >=20
> > This GENERIC_PT code is based on Arm's arm/mmu/pt.c except some
> > minor
> > changes such as introduction of the following functions:
> > =C2=A0=C2=A0 * get_root_page()
> > =C2=A0=C2=A0 * xen_pt_check_contig()
> > =C2=A0=C2=A0 * set_pte_table_bit()
> > =C2=A0=C2=A0 * sanity_arch_specific_pte_checks()
> > =C2=A0=C2=A0 * get_contig_bit()
> > =C2=A0=C2=A0 * set_pte_permissions()
> > =C2=A0=C2=A0 * flush_xen_tlb_range_va()
> > It was done because not every functions has the generic pte_flags
> > and
> > it could be a different positions of the PTE bits in a PTE.
> While I am always in favor of trying to avoid code duplication, I am
> not=20
> sure the page-tables are one that should be.
Probably it wasn't the best one abstraction provided. But I think that
there are still some function which could be generic:
- xen_{un}map_table()
- map_pages_to_xen
- probably some page table walking?

But I am okay, if not to abstract that, I just wanted to here an
opinion if it is a sense to work in this direction or not.

I will then move everything to RISC-V specific folder and clean up some
places related to Arm.

~ Oleksii

>=20
> For instance, you don't have the concept of contiguous page in RISC-V
> (I=20
> see you introduce dummy flags, but IMHO this is a bit of a hack). All
> the code was also written in a way to avoid temporary conflict
> mappings.=20
> This is to avoid using Break-Before-Make. But on newer hardware this=20
> could be relaxed.
>=20
> I am interested to know what the others thinks.
>=20
> Cheers,
>=20



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 14:52:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:52:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762075.1172206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuOv-00068Q-VN; Mon, 22 Jul 2024 14:52:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762075.1172206; Mon, 22 Jul 2024 14: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 1sVuOv-00068J-S4; Mon, 22 Jul 2024 14:52:33 +0000
Received: by outflank-mailman (input) for mailman id 762075;
 Mon, 22 Jul 2024 14:44: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=H4cl=OW=gmail.com=inisider@srs-se1.protection.inumbo.net>)
 id 1sVuH9-0002sW-Rn
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 14:44:31 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e75324f1-4838-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 16:44:30 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-52efd08e6d9so2548810e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 07:44:30 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52eff3bd6ecsm734888e87.4.2024.07.22.07.44.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 07:44: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: e75324f1-4838-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721659470; x=1722264270; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=KLcCUe3DQuLuEs5kLVFN8x3bGpofBM+4/6gzTmtveEU=;
        b=JnLzzRkxPyL9kpHciOrr2YukTnD4pvhf955mnpwctu4647pD35KxKSWo37H5w8Ilfn
         Oo7eGiLBINHV2pqpvVzBUqjkfwGEiM0ZzONF+5FqqU/zaEFBlEolqsJgiAqxF/fjASjE
         9q+4VFxVg5EDUd/zMZfj7Jb7m/MFJJaT1HXDPl0Euqyx1dlwk5s/P2mGvfL5+Xds+cqP
         BmkPM7TliKmdTwxWt0CEr7f38XZx9YsncKZsB3aHuZgBQODOfmmb7Hy6iW6xpWDpcyTY
         ucZoNGsJW2f8ZLHFmNnsgcyh1GcaEaU0KyP7N9sOoBLJzL4JPtPJyL9uiy17zOWu47vY
         DVrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721659470; x=1722264270;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=KLcCUe3DQuLuEs5kLVFN8x3bGpofBM+4/6gzTmtveEU=;
        b=snPRDxQCEWX77jEezzUZ3NeCgzlhQJZUAAzYMAnij/avyZXmaKWFtzEf26BQyhlm+d
         8nMn/2eey/7jGl9PYQFV2T7bp7atInhkkLg7PdKOMl6DHMRryfOUJX4veg5i6umK7r2E
         8p04WQdhRxTqDbI8J1s44oSOauIvivVh4Yqlfi5WZlVEbl1AzJRlZKjbW/Arxqbrov+a
         1/+Yi+xcMBSEkuOQW959FR0X9l9ou02Vdri1IfkBiW8rEoYMA6Kh++1jncS99ldZANSe
         vUYKUeROl7TVcLewcduItcjgvId4IfQ5n8KaliO9ArWaAbA/HQU+oUAzjvf5BmzzbnqK
         3W7w==
X-Forwarded-Encrypted: i=1; AJvYcCXLmUlmEHb/FuRryIdYO8BS7KrSqZV4BZvgGqCUMHLrKc2KmxCiLyow7MCwlw9V5/Zkl3WJ11LiHrR5rAayZppwHKHivbUlE1jt2n6EwDU=
X-Gm-Message-State: AOJu0YyifFK7rDoTQS/MaEyJ1EK7mCKQ4rIG3fs244rNvoSUzCXQynWc
	VIKfCMM8f46BMItl4ThE7ijfZmHaFLIuC3BgWb6VYpyl7qY5m2mG
X-Google-Smtp-Source: AGHT+IFU4CN1nGtxanR0T5CSS5qgsIbFS8KzWTviVAMVaMaEVY6ZS1zZ4/+NZ3MNA4G13Q9Csbtl8Q==
X-Received: by 2002:a05:6512:3083:b0:52e:d0f8:2d30 with SMTP id 2adb3069b0e04-52fc4075b25mr44591e87.59.1721659469955;
        Mon, 22 Jul 2024 07:44:29 -0700 (PDT)
Message-ID: <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
From: Oleksii Kurochko <inisider@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Mon, 22 Jul 2024 16:44:28 +0200
In-Reply-To: <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
	 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-22 at 14:54 +0200, Jan Beulich wrote:
> On 12.07.2024 18:22, Oleksii Kurochko wrote:
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/pmap.h
> > @@ -0,0 +1,28 @@
> > +#ifndef __ASM_PMAP_H__
> > +#define __ASM_PMAP_H__
> > +
> > +#include <xen/bug.h>
> > +#include <xen/mm.h>
> > +
> > +#include <asm/fixmap.h>
> > +
> > +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
> > +{
> > +=C2=A0=C2=A0=C2=A0 pte_t *entry =3D &xen_fixmap[slot];
> > +=C2=A0=C2=A0=C2=A0 pte_t pte;
> > +
> > +=C2=A0=C2=A0=C2=A0 ASSERT(!pte_is_valid(*entry));
> > +
> > +=C2=A0=C2=A0=C2=A0 pte =3D mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
> > +=C2=A0=C2=A0=C2=A0 pte.pte |=3D PTE_LEAF_DEFAULT;
> > +=C2=A0=C2=A0=C2=A0 write_pte(entry, pte);
> > +}
> > +
> > +static inline void arch_pmap_unmap(unsigned int slot)
> > +{
> > +=C2=A0=C2=A0=C2=A0 pte_t pte =3D {};
> > +
> > +=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixmap[slot], pte);
> > +}
>=20
> Why are these not using set_fixmap() / clear_fixmap() respectively?
They haven't been introduced yet. And I thought that these fucntion are
used only in pmap_{un}map() and that is the reason why I decided to not
introduce them. But while writing the answer on another comment, I
found other places where set_fixmap() / clear_fixmap() are used, so I
will introduce them and reuse here.

>=20
> > --- a/xen/arch/riscv/mm.c
> > +++ b/xen/arch/riscv/mm.c
> > @@ -370,3 +370,17 @@ int map_pages_to_xen(unsigned long virt,
> > =C2=A0=C2=A0=C2=A0=C2=A0 BUG_ON("unimplemented");
> > =C2=A0=C2=A0=C2=A0=C2=A0 return -1;
> > =C2=A0}
> > +
> > +static inline pte_t mfn_to_pte(mfn_t mfn)
>=20
> This name suggests (to me) that you're getting _the_ (single) PTE for
> a given MFN. However, what the function is doing is make a PTE using
> the given MFN. On x86 at least the common way to name such a function
> would be pte_from_mfn().
If it is a common way then I will rename it. Thanks.

~ Oleksii


>=20
> > +{
> > +=C2=A0=C2=A0=C2=A0 unsigned long pte =3D mfn_x(mfn) << PTE_PPN_SHIFT;
> > +=C2=A0=C2=A0=C2=A0 return (pte_t){ .pte =3D pte};
>=20
> Nit: Blank missing.
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 14:58:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 14:58:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762111.1172215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuUA-0007ZT-H9; Mon, 22 Jul 2024 14:57:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762111.1172215; Mon, 22 Jul 2024 14:57:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuUA-0007ZM-EV; Mon, 22 Jul 2024 14:57:58 +0000
Received: by outflank-mailman (input) for mailman id 762111;
 Mon, 22 Jul 2024 14:57:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sVuU9-0007ZG-5q
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 14:57:57 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVuU7-0000Nw-0r; Mon, 22 Jul 2024 14:57:55 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.0.211])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVuU6-0002qB-Pw; Mon, 22 Jul 2024 14:57: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=+QYaDGqTgRtC4dMpFUId0MUWzHRtRQ9J2KwclGyfN9Q=; b=e2SBwU/MQr459Lxrpxv3sZ2shB
	wzmKO08020eece6/VLLHiYGCtbKbLCjKiygaNavdtF6+jYrvbls2Yu6YEIov3T7Zrt8kwtm5X0jSN
	sMbRgO02doU/22d1lA34jOWnEYfWnaAm/11FWAB1tihwbAA6abgSDXe3ysSsddCq5Sas=;
Message-ID: <9ff73d5c-fe83-4b65-b3c7-c17b4ce2e4f7@xen.org>
Date: Mon, 22 Jul 2024 15:57:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
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>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
 <15375179-1c94-43c3-a256-42a856905e21@xen.org>
 <c6a06c8d-ed6c-42d2-9ba3-56c37e878d9c@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c6a06c8d-ed6c-42d2-9ba3-56c37e878d9c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 22/07/2024 13:58, Jan Beulich wrote:
> On 21.07.2024 10:51, Julien Grall wrote:
>> On 12/07/2024 17:22, Oleksii Kurochko wrote:
>>> +inline pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr)
>>> +{
>>> +    /* there is no attr field in RISC-V's pte */
>>> +    (void) attr;
>>
>> Surely you have a way to say indicate whether an entry is readable/writable?
> 
> I'm puzzled by this question. The sole outlier in Arm code is pmap.h, in
> passing PAGE_HYPERVISOR_RW to this function when all others pass memory
> types (MT_*).  > Afaics only the low three bits are then used in the
> function, discarding access control bits altogether. R/W access appears
> to be implied.

Arm is not exempt of odd interfaces. However, from just this patch, it 
is not clear why RISC-V would continue to use the same appropach if the 
attributes doesn't exist.

Looking at the rest of the series, it seems to be because we wanted to 
have a generic page-table code. If there are a desire to continue 
towards this direction, then I would assume we would need a arch 
specific way to set the read/write bit.

At which point it makes a lot more sense to push setting the access bits 
in mfn_to_xen_entry().

Even if we don't do any code consolidation, I think it is odd for Arm 
that a caller will assume mfn_to_xen_entry() will always return a 
read-writable page and update as necessary. It would be nicer to push 
this decision to mfn_to_xen_entry().

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 15:01:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 15:01:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762118.1172230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuXu-0000cJ-2t; Mon, 22 Jul 2024 15:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762118.1172230; Mon, 22 Jul 2024 15: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 1sVuXt-0000c1-V1; Mon, 22 Jul 2024 15:01:49 +0000
Received: by outflank-mailman (input) for mailman id 762118;
 Mon, 22 Jul 2024 15:01:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVuXs-0000bJ-F1
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 15:01:48 +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 4f6dea0a-483b-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 17:01:44 +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 079111FB73;
 Mon, 22 Jul 2024 15:01: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 BF621136A9;
 Mon, 22 Jul 2024 15:01: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 gC05LVd0nmaFVgAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 22 Jul 2024 15:01: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: 4f6dea0a-483b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660504; 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=8w2yj4tCoress7M4+t/E8kv6ccuo2Mv5ulBvjkeIp0o=;
	b=GlaVkVSednbL7HCSgkwFpoMPVG2c8InCkdzoLOgNKqOuTsSKH8jXlvmJphrYvaadSgBkBn
	nasSPcYGWZhE+zp44QKAUyMdzGLNZJDNr016LNAhcjwMa+ViJeJ5TJR4DywTY8EXiSkjEP
	Myg9Kg7m+EDJHlfmDXKgE4yYJoQ8rIM=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=GlaVkVSe
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660504; 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=8w2yj4tCoress7M4+t/E8kv6ccuo2Mv5ulBvjkeIp0o=;
	b=GlaVkVSednbL7HCSgkwFpoMPVG2c8InCkdzoLOgNKqOuTsSKH8jXlvmJphrYvaadSgBkBn
	nasSPcYGWZhE+zp44QKAUyMdzGLNZJDNr016LNAhcjwMa+ViJeJ5TJR4DywTY8EXiSkjEP
	Myg9Kg7m+EDJHlfmDXKgE4yYJoQ8rIM=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 0/4] mini-os: cleanup of mm.c
Date: Mon, 22 Jul 2024 17:01:37 +0200
Message-ID: <20240722150141.31391-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [0.19 / 50.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];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FROM_HAS_DN(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim]
X-Spam-Level: 
X-Rspamd-Queue-Id: 079111FB73
X-Spam-Score: 0.19
X-Spam-Flag: NO
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Bar: /

Some cleanups in mm.c: style, removal of unused stuff, optimizations.

Juergen Gross (4):
  mini-os: make mm.c coding style compliant
  mini-os: mm: remove not needed struct chunk_tail_st
  mini-os: mm: reduce buddy allocator list administration data
  mini-os: remove sanity_check()

 include/lib.h |   3 -
 mm.c          | 264 +++++++++++++++++++++-----------------------------
 2 files changed, 112 insertions(+), 155 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 15:01:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 15:01:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762119.1172239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuXx-0000tR-9I; Mon, 22 Jul 2024 15:01:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762119.1172239; Mon, 22 Jul 2024 15:01: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 1sVuXx-0000tG-5W; Mon, 22 Jul 2024 15:01:53 +0000
Received: by outflank-mailman (input) for mailman id 762119;
 Mon, 22 Jul 2024 15:01: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=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVuXw-0000sY-Bv
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 15:01:52 +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 532cd5e6-483b-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 17:01: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 5373821B50;
 Mon, 22 Jul 2024 15:01: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 1698E136A9;
 Mon, 22 Jul 2024 15:01: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 XqT0A150nmaSVgAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 22 Jul 2024 15:01: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: 532cd5e6-483b-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660510; 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=YnDqWS+vxb+tfdScCZ+zPNB/CgAS3SnGjXk0zuPrX8E=;
	b=NedBZ65pGT+BdBneGVcYkoRtDL35kkNcZjeyPENo05SsJfWY/IeFce7stwaG2+S9j4gB4c
	vZ2lk0/A8o2bsnOCryrwvFfPdP/l47tb4cZJs181rvGGA+TnStb4TmWbthMmPLyFFZYM1k
	5fp3gSx8S2PYzmZaa6Er8mlS+BVx72I=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=NedBZ65p
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660510; 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=YnDqWS+vxb+tfdScCZ+zPNB/CgAS3SnGjXk0zuPrX8E=;
	b=NedBZ65pGT+BdBneGVcYkoRtDL35kkNcZjeyPENo05SsJfWY/IeFce7stwaG2+S9j4gB4c
	vZ2lk0/A8o2bsnOCryrwvFfPdP/l47tb4cZJs181rvGGA+TnStb4TmWbthMmPLyFFZYM1k
	5fp3gSx8S2PYzmZaa6Er8mlS+BVx72I=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 1/4] mini-os: make mm.c coding style compliant
Date: Mon, 22 Jul 2024 17:01:38 +0200
Message-ID: <20240722150141.31391-2-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240722150141.31391-1-jgross@suse.com>
References: <20240722150141.31391-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.81
X-Rspamd-Action: no action
X-Spam-Level: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: 5373821B50
X-Spamd-Result: default: False [-2.81 / 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];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FROM_EQ_ENVFROM(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	FROM_HAS_DN(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email]
X-Spam-Flag: NO

Apply the coding style to mm.c.

No functional change.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 mm.c | 191 ++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 96 insertions(+), 95 deletions(-)

diff --git a/mm.c b/mm.c
index eb0e34de..1dcd954c 100644
--- a/mm.c
+++ b/mm.c
@@ -1,4 +1,4 @@
-/* 
+/*
  ****************************************************************************
  * (C) 2003 - Rolf Neugebauer - Intel Research Cambridge
  * (C) 2005 - Grzegorz Milos - Intel Research Cambridge
@@ -7,9 +7,9 @@
  *        File: mm.c
  *      Author: Rolf Neugebauer (neugebar@dcs.gla.ac.uk)
  *     Changes: Grzegorz Milos
- *              
+ *
  *        Date: Aug 2003, chages Aug 2005
- * 
+ *
  * Environment: Xen Minimal OS
  * Description: memory management related functions
  *              contains buddy page allocator from Xen.
@@ -21,16 +21,16 @@
  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/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 
+ *
+ * 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.
  */
 
@@ -45,7 +45,7 @@
 #include <mini-os/xmalloc.h>
 #include <mini-os/e820.h>
 
-/*********************
+/*
  * ALLOCATION BITMAP
  *  One bit per page of memory. Bit set => page is allocated.
  */
@@ -55,7 +55,7 @@ unsigned long mm_alloc_bitmap_size;
 
 #define PAGES_PER_MAPWORD (sizeof(unsigned long) * 8)
 
-#define allocated_in_map(_pn) \
+#define allocated_in_map(_pn)                     \
     (mm_alloc_bitmap[(_pn) / PAGES_PER_MAPWORD] & \
      (1UL << ((_pn) & (PAGES_PER_MAPWORD - 1))))
 
@@ -63,8 +63,8 @@ unsigned long nr_free_pages;
 
 /*
  * Hint regarding bitwise arithmetic in map_{alloc,free}:
- *  -(1<<n)  sets all bits >= n. 
- *  (1<<n)-1 sets all bits <  n.
+ *  -(1 << n)  sets all bits >= n.
+ *  (1 << n) - 1 sets all bits <  n.
  * Variable names in map_{alloc,free}:
  *  *_idx == Index into `mm_alloc_bitmap' array.
  *  *_off == Bit offset within an element of the `mm_alloc_bitmap' array.
@@ -75,53 +75,52 @@ static void map_alloc(unsigned long first_page, unsigned long nr_pages)
     unsigned long start_off, end_off, curr_idx, end_idx;
 
     curr_idx  = first_page / PAGES_PER_MAPWORD;
-    start_off = first_page & (PAGES_PER_MAPWORD-1);
+    start_off = first_page & (PAGES_PER_MAPWORD - 1);
     end_idx   = (first_page + nr_pages) / PAGES_PER_MAPWORD;
-    end_off   = (first_page + nr_pages) & (PAGES_PER_MAPWORD-1);
+    end_off   = (first_page + nr_pages) & (PAGES_PER_MAPWORD - 1);
 
     if ( curr_idx == end_idx )
     {
-        mm_alloc_bitmap[curr_idx] |= ((1UL<<end_off)-1) & -(1UL<<start_off);
+        mm_alloc_bitmap[curr_idx] |= ((1UL << end_off) - 1) &
+                                     -(1UL << start_off);
     }
-    else 
+    else
     {
-        mm_alloc_bitmap[curr_idx] |= -(1UL<<start_off);
-        while ( ++curr_idx < end_idx ) mm_alloc_bitmap[curr_idx] = ~0UL;
-        mm_alloc_bitmap[curr_idx] |= (1UL<<end_off)-1;
+        mm_alloc_bitmap[curr_idx] |= -(1UL << start_off);
+        while ( ++curr_idx < end_idx )
+            mm_alloc_bitmap[curr_idx] = ~0UL;
+        mm_alloc_bitmap[curr_idx] |= (1UL << end_off) - 1;
     }
 
     nr_free_pages -= nr_pages;
 }
 
-
 static void map_free(unsigned long first_page, unsigned long nr_pages)
 {
     unsigned long start_off, end_off, curr_idx, end_idx;
 
     curr_idx = first_page / PAGES_PER_MAPWORD;
-    start_off = first_page & (PAGES_PER_MAPWORD-1);
+    start_off = first_page & (PAGES_PER_MAPWORD - 1);
     end_idx   = (first_page + nr_pages) / PAGES_PER_MAPWORD;
-    end_off   = (first_page + nr_pages) & (PAGES_PER_MAPWORD-1);
+    end_off   = (first_page + nr_pages) & (PAGES_PER_MAPWORD - 1);
 
     nr_free_pages += nr_pages;
 
     if ( curr_idx == end_idx )
     {
-        mm_alloc_bitmap[curr_idx] &= -(1UL<<end_off) | ((1UL<<start_off)-1);
+        mm_alloc_bitmap[curr_idx] &= -(1UL << end_off) |
+                                     ((1UL << start_off) - 1);
     }
-    else 
+    else
     {
-        mm_alloc_bitmap[curr_idx] &= (1UL<<start_off)-1;
-        while ( ++curr_idx != end_idx ) mm_alloc_bitmap[curr_idx] = 0;
-        mm_alloc_bitmap[curr_idx] &= -(1UL<<end_off);
+        mm_alloc_bitmap[curr_idx] &= (1UL << start_off) - 1;
+        while ( ++curr_idx != end_idx )
+            mm_alloc_bitmap[curr_idx] = 0;
+        mm_alloc_bitmap[curr_idx] &= -(1UL << end_off);
     }
 }
 
-
-
-/*************************
- * BINARY BUDDY ALLOCATOR
- */
+/* BINARY BUDDY ALLOCATOR */
 
 typedef struct chunk_head_st chunk_head_t;
 typedef struct chunk_tail_st chunk_tail_t;
@@ -137,7 +136,7 @@ struct chunk_tail_st {
 };
 
 /* Linked lists of free chunks of different powers-of-two in size. */
-#define FREELIST_SIZE ((sizeof(void*)<<3)-PAGE_SHIFT)
+#define FREELIST_SIZE ((sizeof(void *) << 3) - PAGE_SHIFT)
 static chunk_head_t *free_head[FREELIST_SIZE];
 static chunk_head_t  free_tail[FREELIST_SIZE];
 #define FREELIST_EMPTY(_l) ((_l)->next == NULL)
@@ -163,14 +162,14 @@ static void init_page_allocator(unsigned long min, unsigned long max)
         free_tail[i].next  = NULL;
     }
 
-    min = round_pgup  (min);
+    min = round_pgup(min);
     max = round_pgdown(max);
 
     /* Allocate space for the allocation bitmap. */
-    mm_alloc_bitmap_size  = (max + 1) >> (PAGE_SHIFT + 3);
-    mm_alloc_bitmap_size  = round_pgup(mm_alloc_bitmap_size);
+    mm_alloc_bitmap_size = (max + 1) >> (PAGE_SHIFT + 3);
+    mm_alloc_bitmap_size = round_pgup(mm_alloc_bitmap_size);
     mm_alloc_bitmap = (unsigned long *)to_virt(min);
-    min         += mm_alloc_bitmap_size;
+    min += mm_alloc_bitmap_size;
 
     /* All allocated by default. */
     memset(mm_alloc_bitmap, ~0, mm_alloc_bitmap_size);
@@ -208,7 +207,10 @@ static void init_page_allocator(unsigned long min, unsigned long max)
              * must not be bigger than remaining range.
              */
             for ( i = PAGE_SHIFT; (1UL << (i + 1)) <= range; i++ )
-                if ( r_min & (1UL << i) ) break;
+            {
+                if ( r_min & (1UL << i) )
+                    break;
+            }
 
             ch = (chunk_head_t *)r_min;
             r_min += 1UL << i;
@@ -227,7 +229,6 @@ static void init_page_allocator(unsigned long min, unsigned long max)
     mm_alloc_bitmap_remap();
 }
 
-
 /* Allocate 2^@order contiguous pages. Returns a VIRTUAL address. */
 unsigned long alloc_pages(int order)
 {
@@ -239,13 +240,15 @@ unsigned long alloc_pages(int order)
         goto no_memory;
 
     /* Find smallest order which can satisfy the request. */
-    for ( i = order; i < FREELIST_SIZE; i++ ) {
-	if ( !FREELIST_EMPTY(free_head[i]) ) 
-	    break;
+    for ( i = order; i < FREELIST_SIZE; i++ )
+    {
+        if ( !FREELIST_EMPTY(free_head[i]) )
+            break;
     }
 
-    if ( i == FREELIST_SIZE ) goto no_memory;
- 
+    if ( i == FREELIST_SIZE )
+        goto no_memory;
+
     /* Unlink a chunk. */
     alloc_ch = free_head[i];
     free_head[i] = alloc_ch->next;
@@ -256,8 +259,10 @@ unsigned long alloc_pages(int order)
     {
         /* Split into two equal parts. */
         i--;
-        spare_ch = (chunk_head_t *)((char *)alloc_ch + (1UL<<(i+PAGE_SHIFT)));
-        spare_ct = (chunk_tail_t *)((char *)spare_ch + (1UL<<(i+PAGE_SHIFT)))-1;
+        spare_ch = (chunk_head_t *)((char *)alloc_ch +
+                                    (1UL << (i + PAGE_SHIFT)));
+        spare_ct = (chunk_tail_t *)((char *)spare_ch +
+                                    (1UL << (i + PAGE_SHIFT))) - 1;
 
         /* Create new header for spare chunk. */
         spare_ch->level = i;
@@ -269,13 +274,12 @@ unsigned long alloc_pages(int order)
         spare_ch->next->pprev = &spare_ch->next;
         free_head[i] = spare_ch;
     }
-    
-    map_alloc(PHYS_PFN(to_phys(alloc_ch)), 1UL<<order);
 
-    return((unsigned long)alloc_ch);
+    map_alloc(PHYS_PFN(to_phys(alloc_ch)), 1UL << order);
 
- no_memory:
+    return (unsigned long)alloc_ch;
 
+ no_memory:
     printk("Cannot handle page request order %d!\n", order);
 
     return 0;
@@ -287,43 +291,44 @@ void free_pages(void *pointer, int order)
     chunk_head_t *freed_ch, *to_merge_ch;
     chunk_tail_t *freed_ct;
     unsigned long mask;
-    
+
     /* First free the chunk */
     map_free(virt_to_pfn(pointer), 1UL << order);
-    
+
     /* Create free chunk */
     freed_ch = (chunk_head_t *)pointer;
-    freed_ct = (chunk_tail_t *)((char *)pointer + (1UL<<(order + PAGE_SHIFT)))-1;
-    
+    freed_ct = (chunk_tail_t *)((char *)pointer +
+                                (1UL << (order + PAGE_SHIFT))) - 1;
+
     /* Now, possibly we can conseal chunks together */
-    while(order < FREELIST_SIZE)
+    while ( order < FREELIST_SIZE )
     {
         mask = 1UL << (order + PAGE_SHIFT);
-        if((unsigned long)freed_ch & mask) 
+        if ( (unsigned long)freed_ch & mask )
         {
             to_merge_ch = (chunk_head_t *)((char *)freed_ch - mask);
-            if(allocated_in_map(virt_to_pfn(to_merge_ch)) ||
-                    to_merge_ch->level != order)
+            if ( allocated_in_map(virt_to_pfn(to_merge_ch)) ||
+                 to_merge_ch->level != order )
                 break;
-            
+
             /* Merge with predecessor */
-            freed_ch = to_merge_ch;   
+            freed_ch = to_merge_ch;
         }
-        else 
+        else
         {
             to_merge_ch = (chunk_head_t *)((char *)freed_ch + mask);
-            if(allocated_in_map(virt_to_pfn(to_merge_ch)) ||
-                    to_merge_ch->level != order)
+            if ( allocated_in_map(virt_to_pfn(to_merge_ch)) ||
+                 to_merge_ch->level != order )
                 break;
-            
+
             /* Merge with successor */
             freed_ct = (chunk_tail_t *)((char *)to_merge_ch + mask) - 1;
         }
-        
-        /* We are commited to merging, unlink the chunk */
+
+        /* We are committed to merging, unlink the chunk */
         *(to_merge_ch->pprev) = to_merge_ch->next;
         to_merge_ch->next->pprev = to_merge_ch->pprev;
-        
+
         order++;
     }
 
@@ -332,10 +337,10 @@ void free_pages(void *pointer, int order)
     freed_ch->next  = free_head[order];
     freed_ch->pprev = &free_head[order];
     freed_ct->level = order;
-    
+
     freed_ch->next->pprev = &freed_ch->next;
-    free_head[order] = freed_ch;   
-   
+    free_head[order] = freed_ch;
+
 }
 EXPORT_SYMBOL(free_pages);
 
@@ -347,6 +352,7 @@ int free_physical_pages(xen_pfn_t *mfns, int n)
     reservation.nr_extents = n;
     reservation.extent_order = 0;
     reservation.domid = DOMID_SELF;
+
     return HYPERVISOR_memory_op(XENMEM_decrease_reservation, &reservation);
 }
 
@@ -362,16 +368,15 @@ void *sbrk(ptrdiff_t increment)
     unsigned long old_brk = brk;
     unsigned long new_brk = old_brk + increment;
 
-    if (new_brk > heap_end) {
-	printk("Heap exhausted: %lx + %lx = %p > %p\n",
-			old_brk,
-			(unsigned long) increment,
-			(void *) new_brk,
-			(void *) heap_end);
-	return NULL;
+    if ( new_brk > heap_end )
+    {
+        printk("Heap exhausted: %lx + %lx = %p > %p\n", old_brk,
+               (unsigned long) increment, (void *)new_brk, (void *)heap_end);
+        return NULL;
     }
-    
-    if (new_brk > heap_mapped) {
+
+    if ( new_brk > heap_mapped )
+    {
         unsigned long n = (new_brk - heap_mapped + PAGE_SIZE - 1) / PAGE_SIZE;
 
         if ( !chk_free_pages(n) )
@@ -386,16 +391,13 @@ void *sbrk(ptrdiff_t increment)
 
     brk = new_brk;
 
-    return (void *) old_brk;
+    return (void *)old_brk;
 }
 EXPORT_SYMBOL(sbrk);
 #endif
 
-
-
 void init_mm(void)
 {
-
     unsigned long start_pfn, max_pfn;
 
     printk("MM: Init\n");
@@ -403,14 +405,12 @@ void init_mm(void)
     arch_init_mm(&start_pfn, &max_pfn);
     get_max_pages();
 
-    /*
-     * now we can initialise the page allocator
-     */
+    /* Now we can initialise the page allocator. */
     init_page_allocator(PFN_PHYS(start_pfn), PFN_PHYS(max_pfn));
     printk("MM: done\n");
 
     arch_init_p2m(max_pfn);
-    
+
     arch_init_demand_mapping_area();
 }
 
@@ -423,14 +423,15 @@ void sanity_check(void)
     int x;
     chunk_head_t *head;
 
-    for (x = 0; x < FREELIST_SIZE; x++) {
-        for (head = free_head[x]; !FREELIST_EMPTY(head); head = head->next) {
+    for ( x = 0; x < FREELIST_SIZE; x++ )
+    {
+        for ( head = free_head[x]; !FREELIST_EMPTY(head); head = head->next )
+        {
             ASSERT(!allocated_in_map(virt_to_pfn(head)));
-            if (head->next)
+            if ( head->next )
                 ASSERT(head->next->pprev == &head->next);
         }
-        if (free_head[x]) {
+        if ( free_head[x] )
             ASSERT(free_head[x]->pprev == &free_head[x]);
-        }
     }
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 15:01:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 15:01:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762122.1172258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuY2-0001HL-P3; Mon, 22 Jul 2024 15:01:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762122.1172258; Mon, 22 Jul 2024 15: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 1sVuY2-0001HD-MG; Mon, 22 Jul 2024 15:01:58 +0000
Received: by outflank-mailman (input) for mailman id 762122;
 Mon, 22 Jul 2024 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=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVuY1-0000sY-RX
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 15:01:57 +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 56594ce2-483b-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 17:01:56 +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 DE9B521B50;
 Mon, 22 Jul 2024 15:01: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 AE64F136A9;
 Mon, 22 Jul 2024 15:01: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 L4IbKWN0nmabVgAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 22 Jul 2024 15:01: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: 56594ce2-483b-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660515; 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=nksZ0M2mk6k6WRsqSkuDpYdF4fiT+vkR2yJNQYWtE/8=;
	b=YREmH+Mn5wP1P6us2hwl6Rp6fdztSzc10p1q2IUVtZY0LxLw2v08cEuVdkBjyHZbK1+0Xc
	htgyQbjr7A2Lcv9yZfZ+g3K7xk54yrMjFe3CSdJWwiz4X2uvssS83tqEwoMj8AvAU7Zj8y
	+1cCCf5dYaW2JtSSa7QMfhb5vkNvQLw=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660515; 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=nksZ0M2mk6k6WRsqSkuDpYdF4fiT+vkR2yJNQYWtE/8=;
	b=YREmH+Mn5wP1P6us2hwl6Rp6fdztSzc10p1q2IUVtZY0LxLw2v08cEuVdkBjyHZbK1+0Xc
	htgyQbjr7A2Lcv9yZfZ+g3K7xk54yrMjFe3CSdJWwiz4X2uvssS83tqEwoMj8AvAU7Zj8y
	+1cCCf5dYaW2JtSSa7QMfhb5vkNvQLw=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 2/4] mini-os: mm: remove not needed struct chunk_tail_st
Date: Mon, 22 Jul 2024 17:01:39 +0200
Message-ID: <20240722150141.31391-3-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240722150141.31391-1-jgross@suse.com>
References: <20240722150141.31391-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.60
X-Spamd-Result: default: False [-2.60 / 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)[];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	FROM_EQ_ENVFROM(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Flag: NO

The struct chunk_tail_st isn't really used other than writing to it.

Remove it in order to simplify the code.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 mm.c | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/mm.c b/mm.c
index 1dcd954c..2cc49e94 100644
--- a/mm.c
+++ b/mm.c
@@ -123,7 +123,6 @@ static void map_free(unsigned long first_page, unsigned long nr_pages)
 /* BINARY BUDDY ALLOCATOR */
 
 typedef struct chunk_head_st chunk_head_t;
-typedef struct chunk_tail_st chunk_tail_t;
 
 struct chunk_head_st {
     chunk_head_t  *next;
@@ -131,10 +130,6 @@ struct chunk_head_st {
     int            level;
 };
 
-struct chunk_tail_st {
-    int level;
-};
-
 /* Linked lists of free chunks of different powers-of-two in size. */
 #define FREELIST_SIZE ((sizeof(void *) << 3) - PAGE_SHIFT)
 static chunk_head_t *free_head[FREELIST_SIZE];
@@ -151,7 +146,6 @@ static void init_page_allocator(unsigned long min, unsigned long max)
     unsigned long range;
     unsigned long r_min, r_max;
     chunk_head_t *ch;
-    chunk_tail_t *ct;
 
     printk("MM: Initialise page allocator for %lx(%lx)-%lx(%lx)\n",
            (u_long)to_virt(min), min, (u_long)to_virt(max), max);
@@ -215,14 +209,12 @@ static void init_page_allocator(unsigned long min, unsigned long max)
             ch = (chunk_head_t *)r_min;
             r_min += 1UL << i;
             range -= 1UL << i;
-            ct = (chunk_tail_t *)r_min - 1;
             i -= PAGE_SHIFT;
             ch->level       = i;
             ch->next        = free_head[i];
             ch->pprev       = &free_head[i];
             ch->next->pprev = &ch->next;
             free_head[i]    = ch;
-            ct->level       = i;
         }
     }
 
@@ -234,7 +226,6 @@ unsigned long alloc_pages(int order)
 {
     int i;
     chunk_head_t *alloc_ch, *spare_ch;
-    chunk_tail_t            *spare_ct;
 
     if ( !chk_free_pages(1UL << order) )
         goto no_memory;
@@ -261,14 +252,11 @@ unsigned long alloc_pages(int order)
         i--;
         spare_ch = (chunk_head_t *)((char *)alloc_ch +
                                     (1UL << (i + PAGE_SHIFT)));
-        spare_ct = (chunk_tail_t *)((char *)spare_ch +
-                                    (1UL << (i + PAGE_SHIFT))) - 1;
 
         /* Create new header for spare chunk. */
         spare_ch->level = i;
         spare_ch->next  = free_head[i];
         spare_ch->pprev = &free_head[i];
-        spare_ct->level = i;
 
         /* Link in the spare chunk. */
         spare_ch->next->pprev = &spare_ch->next;
@@ -289,7 +277,6 @@ EXPORT_SYMBOL(alloc_pages);
 void free_pages(void *pointer, int order)
 {
     chunk_head_t *freed_ch, *to_merge_ch;
-    chunk_tail_t *freed_ct;
     unsigned long mask;
 
     /* First free the chunk */
@@ -297,8 +284,6 @@ void free_pages(void *pointer, int order)
 
     /* Create free chunk */
     freed_ch = (chunk_head_t *)pointer;
-    freed_ct = (chunk_tail_t *)((char *)pointer +
-                                (1UL << (order + PAGE_SHIFT))) - 1;
 
     /* Now, possibly we can conseal chunks together */
     while ( order < FREELIST_SIZE )
@@ -320,9 +305,6 @@ void free_pages(void *pointer, int order)
             if ( allocated_in_map(virt_to_pfn(to_merge_ch)) ||
                  to_merge_ch->level != order )
                 break;
-
-            /* Merge with successor */
-            freed_ct = (chunk_tail_t *)((char *)to_merge_ch + mask) - 1;
         }
 
         /* We are committed to merging, unlink the chunk */
@@ -336,8 +318,6 @@ void free_pages(void *pointer, int order)
     freed_ch->level = order;
     freed_ch->next  = free_head[order];
     freed_ch->pprev = &free_head[order];
-    freed_ct->level = order;
-
     freed_ch->next->pprev = &freed_ch->next;
     free_head[order] = freed_ch;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 15:02:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 15:02:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762126.1172271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuY9-0001gj-4l; Mon, 22 Jul 2024 15:02:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762126.1172271; Mon, 22 Jul 2024 15: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 1sVuY9-0001ga-1b; Mon, 22 Jul 2024 15:02:05 +0000
Received: by outflank-mailman (input) for mailman id 762126;
 Mon, 22 Jul 2024 15:02:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVuY7-0000sY-GC
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 15:02:03 +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 59b144a6-483b-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 17:02:01 +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 8016921B50;
 Mon, 22 Jul 2024 15:02: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 4DFA5136A9;
 Mon, 22 Jul 2024 15:02: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 l4l4EWl0nmajVgAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 22 Jul 2024 15:02: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: 59b144a6-483b-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660521; 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=Cqa/twmVM9OR6b9NQWSPmCXSs3PkuPb764GnljYHV8Y=;
	b=OgKluMJAjn+x1h2p8rX38BpdneRC1u+uocS+PBb45If28Gmu2OgYySS68q9x/Xs8eipk/F
	RAUunhH3THxVgBjhRzZ+ncLfszj36N0Zq43lzmHZzJMeGyRy/13uIZtaGFm3/sOGebB5+V
	T+iUSFoPh6ek1YEuCskFxxpVY61Dh9o=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660521; 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=Cqa/twmVM9OR6b9NQWSPmCXSs3PkuPb764GnljYHV8Y=;
	b=OgKluMJAjn+x1h2p8rX38BpdneRC1u+uocS+PBb45If28Gmu2OgYySS68q9x/Xs8eipk/F
	RAUunhH3THxVgBjhRzZ+ncLfszj36N0Zq43lzmHZzJMeGyRy/13uIZtaGFm3/sOGebB5+V
	T+iUSFoPh6ek1YEuCskFxxpVY61Dh9o=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 3/4] mini-os: mm: reduce buddy allocator list administration data
Date: Mon, 22 Jul 2024 17:01:40 +0200
Message-ID: <20240722150141.31391-4-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240722150141.31391-1-jgross@suse.com>
References: <20240722150141.31391-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.60
X-Spamd-Result: default: False [-2.60 / 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)[];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	FROM_EQ_ENVFROM(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Flag: NO

Today the administration data for the buddy allocator's lists consists
of 2 arrays: one pointer array and one list element array for easier
handling of the lists' tails.

Those arrays can be combined into one by dropping the pointer array and
using a different list end indicator.

Add enqueue and dequeue helpers for better readability.

Change the level member type to unsigned int.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 mm.c | 73 ++++++++++++++++++++++++++++--------------------------------
 1 file changed, 34 insertions(+), 39 deletions(-)

diff --git a/mm.c b/mm.c
index 2cc49e94..96686a5c 100644
--- a/mm.c
+++ b/mm.c
@@ -125,16 +125,30 @@ static void map_free(unsigned long first_page, unsigned long nr_pages)
 typedef struct chunk_head_st chunk_head_t;
 
 struct chunk_head_st {
-    chunk_head_t  *next;
-    chunk_head_t **pprev;
-    int            level;
+    chunk_head_t *next;
+    chunk_head_t *prev;
+    unsigned int  level;
 };
 
 /* Linked lists of free chunks of different powers-of-two in size. */
 #define FREELIST_SIZE ((sizeof(void *) << 3) - PAGE_SHIFT)
-static chunk_head_t *free_head[FREELIST_SIZE];
-static chunk_head_t  free_tail[FREELIST_SIZE];
-#define FREELIST_EMPTY(_l) ((_l)->next == NULL)
+static chunk_head_t  free_list[FREELIST_SIZE];
+#define FREELIST_EMPTY(_l) ((_l)->level == FREELIST_SIZE)
+
+static void enqueue_elem(chunk_head_t *elem, unsigned int level)
+{
+    elem->level = level;
+    elem->next = free_list[level].next;
+    elem->prev = &free_list[level];
+    elem->next->prev = elem;
+    free_list[level].next = elem;
+}
+
+static void dequeue_elem(chunk_head_t *elem)
+{
+    elem->prev->next = elem->next;
+    elem->next->prev = elem->prev;
+}
 
 /*
  * Initialise allocator, placing addresses [@min,@max] in free pool.
@@ -151,9 +165,9 @@ static void init_page_allocator(unsigned long min, unsigned long max)
            (u_long)to_virt(min), min, (u_long)to_virt(max), max);
     for ( i = 0; i < FREELIST_SIZE; i++ )
     {
-        free_head[i]       = &free_tail[i];
-        free_tail[i].pprev = &free_head[i];
-        free_tail[i].next  = NULL;
+        free_list[i].next  = &free_list[i];
+        free_list[i].prev  = &free_list[i];
+        free_list[i].level = FREELIST_SIZE;
     }
 
     min = round_pgup(min);
@@ -209,12 +223,7 @@ static void init_page_allocator(unsigned long min, unsigned long max)
             ch = (chunk_head_t *)r_min;
             r_min += 1UL << i;
             range -= 1UL << i;
-            i -= PAGE_SHIFT;
-            ch->level       = i;
-            ch->next        = free_head[i];
-            ch->pprev       = &free_head[i];
-            ch->next->pprev = &ch->next;
-            free_head[i]    = ch;
+            enqueue_elem(ch, i - PAGE_SHIFT);
         }
     }
 
@@ -233,17 +242,16 @@ unsigned long alloc_pages(int order)
     /* Find smallest order which can satisfy the request. */
     for ( i = order; i < FREELIST_SIZE; i++ )
     {
-        if ( !FREELIST_EMPTY(free_head[i]) )
+        if ( !FREELIST_EMPTY(free_list[i].next) )
             break;
     }
 
-    if ( i == FREELIST_SIZE )
+    if ( i >= FREELIST_SIZE )
         goto no_memory;
 
     /* Unlink a chunk. */
-    alloc_ch = free_head[i];
-    free_head[i] = alloc_ch->next;
-    alloc_ch->next->pprev = alloc_ch->pprev;
+    alloc_ch = free_list[i].next;
+    dequeue_elem(alloc_ch);
 
     /* We may have to break the chunk a number of times. */
     while ( i != order )
@@ -254,13 +262,7 @@ unsigned long alloc_pages(int order)
                                     (1UL << (i + PAGE_SHIFT)));
 
         /* Create new header for spare chunk. */
-        spare_ch->level = i;
-        spare_ch->next  = free_head[i];
-        spare_ch->pprev = &free_head[i];
-
-        /* Link in the spare chunk. */
-        spare_ch->next->pprev = &spare_ch->next;
-        free_head[i] = spare_ch;
+        enqueue_elem(spare_ch, i);
     }
 
     map_alloc(PHYS_PFN(to_phys(alloc_ch)), 1UL << order);
@@ -308,18 +310,13 @@ void free_pages(void *pointer, int order)
         }
 
         /* We are committed to merging, unlink the chunk */
-        *(to_merge_ch->pprev) = to_merge_ch->next;
-        to_merge_ch->next->pprev = to_merge_ch->pprev;
+        dequeue_elem(to_merge_ch);
 
         order++;
     }
 
     /* Link the new chunk */
-    freed_ch->level = order;
-    freed_ch->next  = free_head[order];
-    freed_ch->pprev = &free_head[order];
-    freed_ch->next->pprev = &freed_ch->next;
-    free_head[order] = freed_ch;
+    enqueue_elem(freed_ch, order);
 
 }
 EXPORT_SYMBOL(free_pages);
@@ -405,13 +402,11 @@ void sanity_check(void)
 
     for ( x = 0; x < FREELIST_SIZE; x++ )
     {
-        for ( head = free_head[x]; !FREELIST_EMPTY(head); head = head->next )
+        for ( head = free_list[x].next; !FREELIST_EMPTY(head);
+              head = head->next )
         {
             ASSERT(!allocated_in_map(virt_to_pfn(head)));
-            if ( head->next )
-                ASSERT(head->next->pprev == &head->next);
+            ASSERT(head->next->prev == head);
         }
-        if ( free_head[x] )
-            ASSERT(free_head[x]->pprev == &free_head[x]);
     }
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 15:02:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 15:02:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762133.1172282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuYG-0002Ax-Eg; Mon, 22 Jul 2024 15:02:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762133.1172282; Mon, 22 Jul 2024 15:02:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuYG-0002An-9q; Mon, 22 Jul 2024 15:02:12 +0000
Received: by outflank-mailman (input) for mailman id 762133;
 Mon, 22 Jul 2024 15:02:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVuYF-0000bJ-IB
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 15:02:11 +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 5d11f637-483b-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 17:02:07 +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 201B01FB73;
 Mon, 22 Jul 2024 15:02:07 +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 E1AD3136A9;
 Mon, 22 Jul 2024 15:02:06 +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 9I+bNW50nmaqVgAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 22 Jul 2024 15: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: 5d11f637-483b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660527; 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=mS1uWPpdCrC7UXHpXbDcoLGvGKv0oO3EBtOjFDnnTtg=;
	b=uW3yZTksYT8ntBDAceHfaSh/P+deWpsM2FkhzyvTtMVkDekj5nwwhwV+T0TegTJfNv67V3
	HRPzHxqKxdVqgmtEjIM+JRjBFh3tQ2chhM5IcSYiw1UvBGVdVqTi7qhkBgVe8TxfJiTxp6
	BbOxdhmFsaevYvsMIzv7c0DLaZ1x0wI=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=uW3yZTks
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660527; 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=mS1uWPpdCrC7UXHpXbDcoLGvGKv0oO3EBtOjFDnnTtg=;
	b=uW3yZTksYT8ntBDAceHfaSh/P+deWpsM2FkhzyvTtMVkDekj5nwwhwV+T0TegTJfNv67V3
	HRPzHxqKxdVqgmtEjIM+JRjBFh3tQ2chhM5IcSYiw1UvBGVdVqTi7qhkBgVe8TxfJiTxp6
	BbOxdhmFsaevYvsMIzv7c0DLaZ1x0wI=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 4/4] mini-os: remove sanity_check()
Date: Mon, 22 Jul 2024 17:01:41 +0200
Message-ID: <20240722150141.31391-5-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240722150141.31391-1-jgross@suse.com>
References: <20240722150141.31391-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.81
X-Rspamd-Action: no action
X-Spam-Level: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: 201B01FB73
X-Spamd-Result: default: False [-2.81 / 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];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FROM_EQ_ENVFROM(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	FROM_HAS_DN(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email]
X-Spam-Flag: NO

Remove the sanity_check() function, as it is used nowhere.

Since any application linked with Mini-OS can't call sanity_check()
either (there is no EXPORT_SYMBOL for it), there is zero chance of
breaking any use case.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 include/lib.h |  3 ---
 mm.c          | 16 ----------------
 2 files changed, 19 deletions(-)

diff --git a/include/lib.h b/include/lib.h
index abd4e9ab..acd4acc6 100644
--- a/include/lib.h
+++ b/include/lib.h
@@ -152,9 +152,6 @@ do {                                                           \
 
 #define BUG_ON(x) ASSERT(!(x))
 
-/* Consistency check as much as possible. */
-void sanity_check(void);
-
 /* Get own domid. */
 domid_t get_domid(void);
 
diff --git a/mm.c b/mm.c
index 96686a5c..1fa7e7bf 100644
--- a/mm.c
+++ b/mm.c
@@ -394,19 +394,3 @@ void init_mm(void)
 void fini_mm(void)
 {
 }
-
-void sanity_check(void)
-{
-    int x;
-    chunk_head_t *head;
-
-    for ( x = 0; x < FREELIST_SIZE; x++ )
-    {
-        for ( head = free_list[x].next; !FREELIST_EMPTY(head);
-              head = head->next )
-        {
-            ASSERT(!allocated_in_map(virt_to_pfn(head)));
-            ASSERT(head->next->prev == head);
-        }
-    }
-}
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 15:08:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 15:08:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762184.1172305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuei-0004bM-8C; Mon, 22 Jul 2024 15:08:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762184.1172305; Mon, 22 Jul 2024 15:08: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 1sVuei-0004b8-5b; Mon, 22 Jul 2024 15:08:52 +0000
Received: by outflank-mailman (input) for mailman id 762184;
 Mon, 22 Jul 2024 15:08: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=JAiy=OW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sVueg-0004ZE-Mz
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 15:08:50 +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 4b3685f9-483c-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 17:08:47 +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 439301F8D4;
 Mon, 22 Jul 2024 15:08: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 07F68136A9;
 Mon, 22 Jul 2024 15:08:46 +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 BCNvAP51nmaOWAAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 22 Jul 2024 15:08: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: 4b3685f9-483c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660926; 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=RpkEMa1JSkMWC23Fdqu7c4oTDk4EMFdNp4g2Q+Fetic=;
	b=fwUrGDDlXllR3vP4sUh+N5d5eC2PcGImuUJy2LZYYGexcwSug3ZhHgpZih/KdGV+ct297K
	mHkfKvPmET2CTzK85Jx8z2QXETNkamtpJI3avuHmILIHOFapcjxpACKe3eKTE56G4GT8U2
	RBsmQztXwcMj+VzudL25EqgdRJe3diU=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=fwUrGDDl
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721660926; 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=RpkEMa1JSkMWC23Fdqu7c4oTDk4EMFdNp4g2Q+Fetic=;
	b=fwUrGDDlXllR3vP4sUh+N5d5eC2PcGImuUJy2LZYYGexcwSug3ZhHgpZih/KdGV+ct297K
	mHkfKvPmET2CTzK85Jx8z2QXETNkamtpJI3avuHmILIHOFapcjxpACKe3eKTE56G4GT8U2
	RBsmQztXwcMj+VzudL25EqgdRJe3diU=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH] mini-os: mm: don't have two large arrays of the same kind
Date: Mon, 22 Jul 2024 17:08:43 +0200
Message-ID: <20240722150843.3947-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [0.19 / 50.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];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FROM_HAS_DN(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email]
X-Spam-Level: 
X-Rspamd-Queue-Id: 439301F8D4
X-Spam-Score: 0.19
X-Spam-Flag: NO
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Bar: /

In the CONFIG_PARAVIRT case there are two identical static arrays of
more than 8kB size with function scope. As the two functions never
nest, a single array of file scope can replace the two existing
instances.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/mm.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm.c b/arch/x86/mm.c
index be1cf0cf..7ddf16e4 100644
--- a/arch/x86/mm.c
+++ b/arch/x86/mm.c
@@ -198,6 +198,10 @@ static void new_pt_frame(unsigned long *pt_pfn, unsigned long prev_l_mfn,
     *pt_pfn += 1;
 }
 
+#ifdef CONFIG_PARAVIRT
+static mmu_update_t mmu_updates[L1_PAGETABLE_ENTRIES + 1];
+#endif
+
 /*
  * Build the initial pagetable.
  */
@@ -209,7 +213,6 @@ static void build_pagetable(unsigned long *start_pfn, unsigned long *max_pfn)
     unsigned long pt_mfn = pfn_to_mfn(virt_to_pfn(pt_base));
     unsigned long offset;
 #ifdef CONFIG_PARAVIRT
-    static mmu_update_t mmu_updates[L1_PAGETABLE_ENTRIES + 1];
     int count = 0;
     int rc;
 #endif
@@ -323,7 +326,6 @@ static void set_readonly(void *text, void *etext)
     unsigned long offset;
     unsigned long page_size = PAGE_SIZE;
 #ifdef CONFIG_PARAVIRT
-    static mmu_update_t mmu_updates[L1_PAGETABLE_ENTRIES + 1];
     int count = 0;
     int rc;
 #endif
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 15:25:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 15:25:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762203.1172321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVuuU-0008Nl-LB; Mon, 22 Jul 2024 15:25:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762203.1172321; Mon, 22 Jul 2024 15: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 1sVuuU-0008Ne-IQ; Mon, 22 Jul 2024 15:25:10 +0000
Received: by outflank-mailman (input) for mailman id 762203;
 Mon, 22 Jul 2024 15: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVuuT-0008NY-08
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 15:25: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 932ef0f6-483e-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 17:25:06 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5a10bb7b237so3872163a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 08:25: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
 4fb4d7f45d1cf-5a30c7d30a0sm6307989a12.83.2024.07.22.08.25.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 08:25: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: 932ef0f6-483e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721661906; x=1722266706; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CqEvfyyxNNGQfu+BQ10gGIuY/jWL5R9RFbGKJU6Bnkk=;
        b=KCrGJUzWLjnA4FwqZt6iBeN5d9I3ESKu5cn/UVpoYCLNCxW7SV72Up4oUMXHkh8LzK
         lVA3xPGBv9hh7yqlnMpCYMI6WdBeT1zYwu9HHihpS4WoSz0/CBzmxQK8Y+ymuNfpCokK
         83NS1efdbvatwbjPUeRnOg7vcGSEQi9ZMpCAz2cut8xaVYoIqRF+RSBCpkDuAWyhDj5V
         tOg1K58xBbKhgDLzoNoV6Zwda8jYpuAhkuoN5Mzo6d73Emlvlb5p22FEEMH3Od1MdYUs
         cpOsuEILwpdqwqRicYBPBQyxcVgs+kDaOcr6eA2Uq/BR8rgd3SXRRnVFMzPJ7zp13QC0
         P9uA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721661906; x=1722266706;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CqEvfyyxNNGQfu+BQ10gGIuY/jWL5R9RFbGKJU6Bnkk=;
        b=E9faG+fyHRYgIWTbqhNtVaSeKE6+XfeV4p6Gh6bGaNMOQtEAmoESswLblJAQokcwTl
         N4S0jxqRGrfTb39MndXJcAL1coDwduuszruG+msp8ItcovRNucU/ZEmWLd9w+Nb85xgR
         vzOBA12i/GZEklrcX8P/ymqLrMapJYOx0XXVAhuG6xKsreHX67DFa3ga4QmhhREGz2d6
         cJIlUURfW794hIo9ShqYkgE5HWmB/RdeQBnLCbSGunRHslbqVdpZ6QFWC8+QnNBKp0nf
         xbKIw2XdThrV7cakvirVex9tE+Bw3oDQTTBulE/93fBJM/OS/WH3sD3SIbDclpgEzOjY
         7urA==
X-Forwarded-Encrypted: i=1; AJvYcCVyxbotFUzOFXEMDqMJqCIGRibFZsG6cNaLvtxB3EvNmmxRJuBgTceeMOCNjBfhvYh3Fzv0qavJaWSypoQIbU1anBmgbX9EYnS7wC9EQW0=
X-Gm-Message-State: AOJu0Yym6Xga6UmwQMYV0gPjBrJBRcsnHAP5OlF1M6Wqt7ovGUj+Vjgx
	tnHImVwf2wskDhhAFnDjP8M9t+W9x6q0LKyoPp9YxDUT6hNYitm7xUHyf/Vcjg==
X-Google-Smtp-Source: AGHT+IE9bc+oSdVl/n4OxRKz2ZWt811QEf23iy0O4PeW5GeCz4r6FzNrN2m1MUgwU//Lv02zMgRg0g==
X-Received: by 2002:a50:8ad8:0:b0:5a2:9683:2bb6 with SMTP id 4fb4d7f45d1cf-5a941a3b8d8mr191795a12.1.1721661906174;
        Mon, 22 Jul 2024 08:25:06 -0700 (PDT)
Message-ID: <53e2a88b-8d2d-477a-84cb-5b44af365dbe@suse.com>
Date: Mon, 22 Jul 2024 17:25:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
 <16648c6c-416d-4205-8d16-38c006251bb9@suse.com>
 <26a45d85fa22a696b629e602e87d5d95626b77f0.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <26a45d85fa22a696b629e602e87d5d95626b77f0.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.07.2024 16:36, Oleksii wrote:
> On Mon, 2024-07-22 at 14:42 +0200, Jan Beulich wrote:
>> On 12.07.2024 18:22, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/include/asm/config.h
>>> +++ b/xen/arch/riscv/include/asm/config.h
>>> @@ -74,11 +74,20 @@
>>>  #error "unsupported RV_STAGE1_MODE"
>>>  #endif
>>>  
>>> +#define XEN_SIZE                MB(2)
>>> +#define XEN_VIRT_END            (XEN_VIRT_START + XEN_SIZE)
>>> +
>>> +#define BOOT_FDT_VIRT_START     XEN_VIRT_END
>>> +#define BOOT_FDT_VIRT_SIZE      MB(4)
>>> +
>>>  #define DIRECTMAP_SLOT_END      509
>>>  #define DIRECTMAP_SLOT_START    200
>>>  #define DIRECTMAP_VIRT_START    SLOTN(DIRECTMAP_SLOT_START)
>>>  #define DIRECTMAP_SIZE          (SLOTN(DIRECTMAP_SLOT_END) -
>>> SLOTN(DIRECTMAP_SLOT_START))
>>>  
>>> +#define FIXMAP_BASE             (BOOT_FDT_VIRT_START +
>>> BOOT_FDT_VIRT_SIZE)
>>> +#define FIXMAP_ADDR(n)          (FIXMAP_BASE + (n) * PAGE_SIZE)
>>
>> Why exactly do you insert this here, and not adjacent to
>> BOOT_FDT_VIRT_*,
>> which it actually is adjacent with?
> I tried to follow alphabetical order.

Oh, X before B (just making fun) ... Anyway, my take here is that sorting
by address is going to be more helpful.

>>> --- a/xen/arch/riscv/mm.c
>>> +++ b/xen/arch/riscv/mm.c
>>> @@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
>>>  pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
>>>  stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT * PAGETABLE_ENTRIES];
>>>  
>>> +pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
>>> +xen_fixmap[PAGETABLE_ENTRIES];
>>
>> Any reason this cannot be static?
> It will be used by pmap:
>    static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
>    {
>        pte_t *entry = &xen_fixmap[slot];
>        pte_t pte;
>    
>        ASSERT(!pte_is_valid(*entry));
>    
>        pte = mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
>        pte.pte |= PTE_LEAF_DEFAULT;
>        write_pte(entry, pte);
>    }
>    
>    static inline void arch_pmap_unmap(unsigned int slot)
>    {
>        pte_t pte = {};
>    
>        write_pte(&xen_fixmap[slot], pte);
>    }

Yet as asked there - shouldn't that be set_fixmap() and clear_fixmap()?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 15:32:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 15:32:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762214.1172331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVv1B-0002Pp-FG; Mon, 22 Jul 2024 15:32:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762214.1172331; Mon, 22 Jul 2024 15:32: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 1sVv1B-0002Pi-CW; Mon, 22 Jul 2024 15:32:05 +0000
Received: by outflank-mailman (input) for mailman id 762214;
 Mon, 22 Jul 2024 15:32: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=79tL=OW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sVv1A-0002Pc-Me
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 15:32:04 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8b3174dd-483f-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 17:32:02 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-52f00ad303aso1929124e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 08:32: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
 4fb4d7f45d1cf-5a30af837e5sm6280515a12.43.2024.07.22.08.32.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 08:32: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: 8b3174dd-483f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721662322; x=1722267122; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SOIZAqBEbDi9h0PwNo+bs4UheO9DVZgDsoH+Y10LPAQ=;
        b=FZRiSsRnHM93KpGQJzHdaU0qt4njPwHPn2xqr1I0QE1pAfaOb/f5LriI2exOUxpVRK
         aSNqeBxo9Eth4KtUdru9lly2jUghCmKNMXOZjyEiWKXfQMnOKcOJHxZLjthhX2/Toy9J
         BhypqFQA+JSqKbE2Lvp7z5v8peSeU3OzOGZ5hlPYMI41Sd7OtvisiOy1UE+/pvQjTzdy
         Zjlr4YgopzNvGTcxz+ufgrbhpkmmkaTnws4ejjehpLYfijapXw/IYYYgMBJlU4m14tpV
         wIZYQ4G8HcMh1KJv6VZmpYqDaqjcDDDL6W2mi4I6ZGlKyj11APmWRZu2gzCDzmT6fuMT
         E4FQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721662322; x=1722267122;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SOIZAqBEbDi9h0PwNo+bs4UheO9DVZgDsoH+Y10LPAQ=;
        b=DMabAenmKjEYoXWF+k7THjBKjU2M3sk66jJT1G6ML09oYq/A2+rO21dFz3Euo9xnRH
         YRET/S/7voJHrInS1MzW0JDyPzrPJsWmliViLIWV0rMUCx94amvr/S5HIP2501xvRlWp
         dR7JGCK6is2J1jfEhKlVwobCWTXjDIeibDWYcR4EkDsO41jQHUzWm/Ju5siKbQDmVgMC
         HbbxcwAKio/Ht8jPR2EVDFO5FGV558pmNkqIhmx5niPtoUciDkpXGeb4RiS8RyZSupQ3
         7TpVKhOeaHBJavAbajHCXK4zJGgpJL7tQ9C2RlhnUyb3b99Zr64mrG7ZlOo6LQCN7KsQ
         z17w==
X-Forwarded-Encrypted: i=1; AJvYcCVc9yuZHx8WdTCfJtWPmHzZWp8p2I675Lh/WdHYPFiWCben5/NbrXJ/kVsWwTnbgZ9/JVUo72O+C4gBn9dB3gR5SFtQKGhN0Aja8IoGG30=
X-Gm-Message-State: AOJu0Yyey4nFPTlbE5YqyZm0v5c/YPdggRulhAH1sY2a1x78w6g6xmJh
	yWN5PCs6mBFFYx6etJPekznwnbGTXwjF0Xe9jP45lIbUCB/Ziou/tg0ia1A8Hg==
X-Google-Smtp-Source: AGHT+IGa+O7tfjLNlXzYyu0VuL/INd4vUsW8KKGD5bgHfkTac1dPvfKCieayTn49cONUW8x9dNG9Ww==
X-Received: by 2002:a05:6512:3b27:b0:52c:df5f:7b4e with SMTP id 2adb3069b0e04-52fc406f75emr167485e87.38.1721662322180;
        Mon, 22 Jul 2024 08:32:02 -0700 (PDT)
Message-ID: <6036a48e-f2ae-4629-ba73-2c78f46234fb@suse.com>
Date: Mon, 22 Jul 2024 17:32:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 4/5] xen/riscv: enable GENERIC_BUG_FRAME
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1720799487.git.oleksii.kurochko@gmail.com>
 <c2bbbe2ac9f41c19f746418df324212b2e4684a5.1720799487.git.oleksii.kurochko@gmail.com>
 <5e3be451-188f-4092-a84e-1c40a5ad6b44@suse.com>
 <16b92dc23daf98d2c55ab42f0d941d9b8888064e.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <16b92dc23daf98d2c55ab42f0d941d9b8888064e.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.07.2024 16:09, Oleksii wrote:
> On Mon, 2024-07-22 at 13:02 +0200, Jan Beulich wrote:
>> On 12.07.2024 18:18, Oleksii Kurochko wrote:
>>> ---
>>> Changes in V10:
>>>  - put 'select GENERIC_BUG_FRAME' in "Config RISCV".
>>>  - rework do_trap() to not fetch an instruction in case when the
>>> cause of trap
>>>    is BUG_insn.
>>
>> It's BUG_insn here, but then ...
>>
>>> @@ -103,7 +104,29 @@ static void do_unexpected_trap(const struct
>>> cpu_user_regs *regs)
>>>  
>>>  void do_trap(struct cpu_user_regs *cpu_regs)
>>>  {
>>> -    do_unexpected_trap(cpu_regs);
>>> +    register_t pc = cpu_regs->sepc;
>>> +    unsigned long cause = csr_read(CSR_SCAUSE);
>>> +
>>> +    switch ( cause )
>>> +    {
>>> +    case CAUSE_BREAKPOINT:
>>
>> ... BREAKPOINT here? Generally I'd deem something named "breakpoint"
>> as
>> debugging related (and hence continuable). I'd have expected
>> CAUSE_ILLEGAL_INSTRUCTION here, but likely I'm missing something.
> Agree, that is is confusing, but BUG_insn is defined as ebreak
> instruction ( Linux kernel uses also ebreak ) and it generates
> CAUSE_BREAKPOINT.

I'm curious: How do you / does a debugger tell a breakpoint set on
such an EBREAK insn (e.g. as a result of a use of WARN_ON()) from
the original, unmodified insn? If there's a breakpoint, you want
to forward to the debugger. Whereas if there's no breakpoint, you
want to process the WARN_ON() normally.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 15:44:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 15:44:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762230.1172359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVvCv-0004uC-Kv; Mon, 22 Jul 2024 15:44:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762230.1172359; Mon, 22 Jul 2024 15:44: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 1sVvCv-0004u5-Hm; Mon, 22 Jul 2024 15:44:13 +0000
Received: by outflank-mailman (input) for mailman id 762230;
 Mon, 22 Jul 2024 15:44:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVvCu-0004tu-Je; Mon, 22 Jul 2024 15:44:12 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVvCu-0001M7-Al; Mon, 22 Jul 2024 15:44:12 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVvCt-0008Mk-Vw; Mon, 22 Jul 2024 15:44:12 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVvCt-0002eh-VL; Mon, 22 Jul 2024 15:44:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=7GuIqObrZG37SDdYb5smOXzRHZKHWZaQq4buPShvlXg=; b=SN5N+aOUF////yDXtn3g5tRwuK
	/4HtuDkp713LO8dnd3gS/4XD+zRw4nKA352YXS5LeOqrNCcrrCc0nX+mz8fnhJIBHUKdlCyKdo3xT
	mrmggaVKlfFsmFS6xTv0wKFeAbIenZa44b453ZQ8BnsiP30EMJHlBGYMPkf89oS7JYpk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186940-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186940: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e44f33ccddc20079d9a22e1f0659c88fde0f4eb2
X-Osstest-Versions-That:
    xen=e5182b40cf4bbb89292d66b8f3047a9ee913a90a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Jul 2024 15:44:11 +0000

flight 186940 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186940/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e44f33ccddc20079d9a22e1f0659c88fde0f4eb2
baseline version:
 xen                  e5182b40cf4bbb89292d66b8f3047a9ee913a90a

Last test of basis   186913  2024-07-19 14:00:22 Z    3 days
Failing since        186935  2024-07-22 08:00:25 Z    0 days    2 attempts
Testing same since   186940  2024-07-22 12:00:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  George Dunlap <george.dunlap@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Matthew Barnes <matthew.barnes@cloud.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Sergiy Kibrik <Sergiy_Kibrik@epam.com>
  Tamas K Lengyel <tamas@tklengyel.com>
  Victor Lira <victorm.lira@amd.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   e5182b40cf..e44f33ccdd  e44f33ccddc20079d9a22e1f0659c88fde0f4eb2 -> smoke


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 16:26:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 16:26:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762241.1172372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVvrH-0003fP-K5; Mon, 22 Jul 2024 16:25:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762241.1172372; Mon, 22 Jul 2024 16:25: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 1sVvrH-0003fI-HE; Mon, 22 Jul 2024 16:25:55 +0000
Received: by outflank-mailman (input) for mailman id 762241;
 Mon, 22 Jul 2024 16:25: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=QQNa=OW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sVvrG-0003fC-2e
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 16:25:54 +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 0fef7be4-4847-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 18:25:52 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a77c080b521so472855566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 09:25:52 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c785c6csm438867066b.20.2024.07.22.09.25.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 09:25: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: 0fef7be4-4847-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721665551; x=1722270351; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DUyFkTHbNh/Rb5s0ouExkhBiQNtcl7K03KDiyz1UOhU=;
        b=Xg3eJ3hAdMn8Ntkj/Eq/1IqPaSwhe+VUrDoB+XSwp/OBI1sBRgMjvXANPCWYxELKPU
         CzLIGsBG/Pq4uSp8raCx6qgJS1jyl2HodWTTCGo0kq64TqUg6NHUuUcVAY/S3gfOArJB
         P+I55eICExVjt2U5Y/Uo+Mu0QULArV5sJFvEM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721665551; x=1722270351;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=DUyFkTHbNh/Rb5s0ouExkhBiQNtcl7K03KDiyz1UOhU=;
        b=WIDgXMzXANkiT+Duu5TS1DAvDM0lpnjTiWcZyUs/YzkcG6tmolbZBW/i/QZlrdjcNP
         4Q4x0ENF9WabppMasRVADUs8Os+qWgbSmqM0vbWl32kN3bs53w2sYTyMZ7P0ZLFQKFwI
         u6WFh7l6RYz5uYgqEBdNMEqb3phiV8frYcw54lh/5g7tXD0b41JGoYVhdR29V6IubRV5
         bQYXR1UkJDm4tyKpulyFdAvtny8xLiCgN8reOAi1StqFL8rKcIJPAbloTNo8gfAV6nNY
         N8VrJuAaTfXxdqSvsBcAOxfHLkj/8Or5ZX0F4NGx2vSLLM67RYvKLTwxVG4iHJKF6u2t
         qOZA==
X-Gm-Message-State: AOJu0YwE0ab1MqFDvww9TZ0tHBHMEL/U8NymDYPDAvBHbGSqbSrjANLn
	GQXmwUpI/sUWQdtz/dnZ59v17qg9QGbS8mdRtUvWMxVjPjiF2T8yzP8KI8a2ke1e2o7jaenNZHj
	d
X-Google-Smtp-Source: AGHT+IGdFBghLLbiZbvjjJLeZXG3vwnJwAbxYsOXoDtLTjSAGxTlLuUevIgBJmou9owXIYW6Kp4IXQ==
X-Received: by 2002:a17:907:8693:b0:a7a:83a5:4a1d with SMTP id a640c23a62f3a-a7a83a54b0emr62629366b.69.1721665551006;
        Mon, 22 Jul 2024 09:25: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>,
	Juergen Gross <jgross@suse.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>
Subject: [PATCH v1.1 5/6] tools/libxs: Use writev()/sendmsg() instead of write()
Date: Mon, 22 Jul 2024 17:25:47 +0100
Message-Id: <20240722162547.4060813-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240718164842.3650702-6-andrew.cooper3@citrix.com>
References: <20240718164842.3650702-6-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With the input data now conveniently arranged, use writev()/sendmsg() instead
of decomposing it into write() calls.

This causes all requests to be submitted with a single system call, rather
than at least two.  While in principle short writes can occur, the chances of
it happening are slim given that most xenbus comms are only a handful of
bytes.

Nevertheless, provide {writev,sendmsg}_exact() wrappers which take care of
resubmitting on EINTR or short write.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>

v1.1:
 * Fix iov overread, spotted by Frediano.  Factor the common updating logic
   out into update_iov().
---
 tools/libs/store/xs.c | 94 +++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 91 insertions(+), 3 deletions(-)

diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
index e820cccc2314..f80ac7558cbe 100644
--- a/tools/libs/store/xs.c
+++ b/tools/libs/store/xs.c
@@ -563,6 +563,95 @@ static void *read_reply(
 	return body;
 }
 
+/*
+ * Update an iov/nr pair after an incomplete writev()/sendmsg().
+ *
+ * Awkwardly, nr has different widths and signs between writev() and
+ * sendmsg(), so we take it and return it by value, rather than by pointer.
+ */
+static size_t update_iov(struct iovec **p_iov, size_t nr, size_t res)
+{
+	struct iovec *iov = *p_iov;
+
+        /* Skip fully complete elements, including empty elements. */
+        while (nr && res >= iov->iov_len) {
+                res -= iov->iov_len;
+                nr--;
+                iov++;
+        }
+
+        /* Partial element, adjust base/len. */
+        if (res) {
+                iov->iov_len  -= res;
+                iov->iov_base += res;
+        }
+
+        *p_iov = iov;
+
+	return nr;
+}
+
+/*
+ * Wrapper around sendmsg() to resubmit on EINTR or short write.  Returns
+ * @true if all data was transmitted, or @false with errno for an error.
+ * Note: May alter @iov in place on resubmit.
+ */
+static bool sendmsg_exact(int fd, struct iovec *iov, unsigned int nr)
+{
+	struct msghdr hdr = {
+		.msg_iov = iov,
+		.msg_iovlen = nr,
+	};
+
+	/* Sanity check first element isn't empty */
+	assert(iov->iov_len == sizeof(struct xsd_sockmsg));
+
+	while (hdr.msg_iovlen) {
+		ssize_t res = sendmsg(fd, &hdr, 0);
+
+		if (res < 0 && errno == EINTR)
+			continue;
+		if (res <= 0)
+			return false;
+
+		hdr.msg_iovlen = update_iov(&hdr.msg_iov, hdr.msg_iovlen, res);
+	}
+
+	return true;
+}
+
+/*
+ * Wrapper around sendmsg() to resubmit on EINTR or short write.  Returns
+ * @true if all data was transmitted, or @false with errno for an error.
+ * Note: May alter @iov in place on resubmit.
+ */
+static bool writev_exact(int fd, struct iovec *iov, unsigned int nr)
+{
+	/* Sanity check first element isn't empty */
+	assert(iov->iov_len == sizeof(struct xsd_sockmsg));
+
+	while (nr) {
+		ssize_t res = writev(fd, iov, nr);
+
+		if (res < 0 && errno == EINTR)
+			continue;
+		if (res <= 0)
+			return false;
+
+		nr = update_iov(&iov, nr, res);
+	}
+
+	return true;
+}
+
+static bool write_request(struct xs_handle *h, struct iovec *iov, unsigned int nr)
+{
+	if (h->is_socket)
+		return sendmsg_exact(h->fd, iov, nr);
+	else
+		return writev_exact(h->fd, iov, nr);
+}
+
 /*
  * Send message to xenstore, get malloc'ed reply.  NULL and set errno on error.
  *
@@ -605,9 +694,8 @@ static void *xs_talkv(struct xs_handle *h,
 
 	mutex_lock(&h->request_mutex);
 
-	for (i = 0; i < num_vecs; i++)
-		if (!xs_write_all(h->fd, iovec[i].iov_base, iovec[i].iov_len))
-			goto fail;
+	if (!write_request(h, iovec, num_vecs))
+		goto fail;
 
 	ret = read_reply(h, &reply_type, len);
 	if (!ret)
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 17:01:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 17:01:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762249.1172381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVwPc-000107-7H; Mon, 22 Jul 2024 17:01:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762249.1172381; Mon, 22 Jul 2024 17: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 1sVwPc-000100-45; Mon, 22 Jul 2024 17:01:24 +0000
Received: by outflank-mailman (input) for mailman id 762249;
 Mon, 22 Jul 2024 17: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=urmM=OW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sVwPb-0000zu-2e
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 17:01:23 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05854914-484c-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 19:01:22 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52f04c1e58eso1529266e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 10:01:21 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52efdacbbb2sm838850e87.241.2024.07.22.10.01.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 10: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: 05854914-484c-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721667681; x=1722272481; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=pgATQk2RRZl11Zip1xX50dLuhMwYx30qrTrEnVuZ9PE=;
        b=mIIcT5EAr9Y1VFAv9VjIGhUl1wZkYDinUyZbA8ACDjquBwULgKjCPFwi+M449TQvXO
         paeOZ6E3Ci1BiQ+X9+sl5pS/bget3MGGaSFgHYq4vnC35U7YS6MOfk3QEHtgEbMgH8Yb
         hF2WNR4Jj2G0kI5GRATSx0mrmh/AdPLX4gxQ3WmY98seMIDK1wIw+6p39nfluUiPjxb2
         SE+QBTN8jE0fdKQsGk8rDmXGYusA/7MXDOsfT4xppzSfrefUrYxnDok0UvYteVt0bjr0
         IoMwNOfxR2/DgBQUUfmeO180Uw0XhPNqLGKBwNYAriMjIAYZHsX9oU7xsegJCW5EQhSX
         VQWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721667681; x=1722272481;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=pgATQk2RRZl11Zip1xX50dLuhMwYx30qrTrEnVuZ9PE=;
        b=iWySQMQ9BLn6F2l+fLcPeV9Swwls71UGOem+n3AX6TapoNXc3ktQFrdOQYoJ+76Izp
         JbosvPZVemn6UIfavA+GJFy6SwbCojaxbd+UJaXwBX+LGN1CjeGBDt8U+SVxKZhnrdti
         XTsI/ZC+pc5AHOb4oacge1ev+CNG/atebYgqqqSGAmE92DpipV2ZCKEnfweH44E98nhf
         sfIqtM1Lqq4oJZNmt7Q9I5YQh2coIXTPjCID7ksOwefuMEAKGKnBo0BtiBAcARBpqpfi
         dTNd2tfeITdBjldYVbElti/paqcI0JHnuqr9wf4TkO26rPPPdbEt+8o9d9nv1W9B3Els
         uvCg==
X-Forwarded-Encrypted: i=1; AJvYcCVXyLc/p7vhfEBeXuo1KQKdPTc3AYF0/FRupztOS+rxU/+hKJj67iSp0gwetlWwX2a05gJJUbeluUaIS6nfbXWXMdBUeH1deKWVF2RvFQI=
X-Gm-Message-State: AOJu0YzKHFhDK22L8hgPr7JTqfIb14a/2hLrSycI+LyjHKRfcJCAx/0t
	Fc2/Rh0Zo0IB8t/Beu9fQZZZbcFfcKAg03GcijDVSGYOItbJ2vw9
X-Google-Smtp-Source: AGHT+IHV/wRrpLRvih3Xn/ddxdkxUQeJXQQf2yy73784W0tHKwuKTmn7SDUu01zY2EUvpEA2QF4Ywg==
X-Received: by 2002:a05:6512:32c5:b0:52e:936e:a237 with SMTP id 2adb3069b0e04-52efb53bd95mr6087784e87.16.1721667681131;
        Mon, 22 Jul 2024 10:01:21 -0700 (PDT)
Message-ID: <d8ec7934eacbc2c621c715b4dc8e08c23905e5a3.camel@gmail.com>
Subject: Re: [PATCH v10 4/5] xen/riscv: enable GENERIC_BUG_FRAME
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Mon, 22 Jul 2024 19:01:20 +0200
In-Reply-To: <6036a48e-f2ae-4629-ba73-2c78f46234fb@suse.com>
References: <cover.1720799487.git.oleksii.kurochko@gmail.com>
	 <c2bbbe2ac9f41c19f746418df324212b2e4684a5.1720799487.git.oleksii.kurochko@gmail.com>
	 <5e3be451-188f-4092-a84e-1c40a5ad6b44@suse.com>
	 <16b92dc23daf98d2c55ab42f0d941d9b8888064e.camel@gmail.com>
	 <6036a48e-f2ae-4629-ba73-2c78f46234fb@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-22 at 17:32 +0200, Jan Beulich wrote:
> On 22.07.2024 16:09, Oleksii wrote:
> > On Mon, 2024-07-22 at 13:02 +0200, Jan Beulich wrote:
> > > On 12.07.2024 18:18, Oleksii Kurochko wrote:
> > > > ---
> > > > Changes in V10:
> > > > =C2=A0- put 'select GENERIC_BUG_FRAME' in "Config RISCV".
> > > > =C2=A0- rework do_trap() to not fetch an instruction in case when
> > > > the
> > > > cause of trap
> > > > =C2=A0=C2=A0 is BUG_insn.
> > >=20
> > > It's BUG_insn here, but then ...
> > >=20
> > > > @@ -103,7 +104,29 @@ static void do_unexpected_trap(const
> > > > struct
> > > > cpu_user_regs *regs)
> > > > =C2=A0
> > > > =C2=A0void do_trap(struct cpu_user_regs *cpu_regs)
> > > > =C2=A0{
> > > > -=C2=A0=C2=A0=C2=A0 do_unexpected_trap(cpu_regs);
> > > > +=C2=A0=C2=A0=C2=A0 register_t pc =3D cpu_regs->sepc;
> > > > +=C2=A0=C2=A0=C2=A0 unsigned long cause =3D csr_read(CSR_SCAUSE);
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 switch ( cause )
> > > > +=C2=A0=C2=A0=C2=A0 {
> > > > +=C2=A0=C2=A0=C2=A0 case CAUSE_BREAKPOINT:
> > >=20
> > > ... BREAKPOINT here? Generally I'd deem something named
> > > "breakpoint"
> > > as
> > > debugging related (and hence continuable). I'd have expected
> > > CAUSE_ILLEGAL_INSTRUCTION here, but likely I'm missing something.
> > Agree, that is is confusing, but BUG_insn is defined as ebreak
> > instruction ( Linux kernel uses also ebreak ) and it generates
> > CAUSE_BREAKPOINT.
>=20
> I'm curious: How do you / does a debugger tell a breakpoint set on
> such an EBREAK insn (e.g. as a result of a use of WARN_ON()) from
> the original, unmodified insn? If there's a breakpoint, you want
> to forward to the debugger. Whereas if there's no breakpoint, you
> want to process the WARN_ON() normally.
I don't know details of debug spec but AFAIU ebreak triggers a debug
trap, which starts in debug mode and is then filtered by every mode as
it goes towards user-mode. So first GDB will handle this debug trap and
will check if this ebreak was set by him or not.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 17:04:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 17:04:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762258.1172400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVwSE-0001ft-UU; Mon, 22 Jul 2024 17:04:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762258.1172400; Mon, 22 Jul 2024 17:04:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVwSE-0001ew-RO; Mon, 22 Jul 2024 17:04:06 +0000
Received: by outflank-mailman (input) for mailman id 762258;
 Mon, 22 Jul 2024 17:04:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QQNa=OW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sVwSD-0001aU-P3
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 17:04:05 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 66938a0b-484c-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 19:04:04 +0200 (CEST)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-52f008aa351so2107302e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 10:04:04 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c789eb8sm443645266b.35.2024.07.22.10.04.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 10:04: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: 66938a0b-484c-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721667844; x=1722272644; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Mjgjwa3kPvZM5pZjJMrO/Qtozz1yU/NtYu8JHgYi3c4=;
        b=cfasR34+hgBs+LSaSNFrtUESLlYFlNbLRuUJf0WgPI3JKczNeUKpmOzf4cw2TBpbBz
         xLW6hV9xtbaueqYDZlhb6vP5C+JS23uNTCoA0Opn6jIBs+ZT1BY7mYOBBF3G2qNbI+/Y
         eFNY8CPn3Mq0875yLFcHwnzPW5wY8RPBgnUrI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721667844; x=1722272644;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Mjgjwa3kPvZM5pZjJMrO/Qtozz1yU/NtYu8JHgYi3c4=;
        b=KsuRZVRpBo+UNLdexwzsXFZDlpLQFh/lpV0uVhkFWmmVq5bpgYAXyzwV4OYhWmRjk6
         ictU6khRFjVj+QZAZIWnaerq3NwqREirXWZ2XfauTBkipGG7inLYQplzAwKu0ljwy+/i
         kOKHd7CMkLG/87uXr3g6exp8MK0GmAy3xMTP1Wl8SHqi3pN5DfjQ7IOObEOdHOstZ5ho
         bHePMx0ihaJ9DMFnoJ+DinAsVhORIpVQen+zf8c2DBM/zAOFu6yWCPl0DNfoH4otkGqM
         JFywjwWj3s/gBorlauVlOIuXYz4x2+xPwpBSjcsefYONCi4GO/OOu/4/aPFJQSGWP6gm
         HkoA==
X-Forwarded-Encrypted: i=1; AJvYcCWeVoyUCRZYBk6D9iE4/PHlepuoFuj70JAuRnN89GoUnHBXdp0Na9gMAzSjlPUVv9w8xNeiHm0u4M2B3p+lsOJKRn0QKHkmJt1LEYQ4PiY=
X-Gm-Message-State: AOJu0YzJAaEInLC4DdkG+rjQ3QB1gg+lvYBbXkb0J0fXtuXEYEb+xHdQ
	A/Qcx99lKpuKnv2918K5mgYPN5VhkNcvFhtv6A6NhdeZHyI6cz/J+J+eGLAOUauLcHbn2b+Ps/8
	U
X-Google-Smtp-Source: AGHT+IEWvzuZmfb6npybAMbljO/tdNbsxah4FsHZNNxI0OYH3SpdmTIQOo2Nn5+DX8/ezgVfrhMlXg==
X-Received: by 2002:a05:6512:3e01:b0:52e:a7a6:ed7f with SMTP id 2adb3069b0e04-52efb84ea35mr3420263e87.60.1721667844206;
        Mon, 22 Jul 2024 10:04:04 -0700 (PDT)
Message-ID: <f53e8b5b-1a89-4190-a6bc-495e8487384f@citrix.com>
Date: Mon, 22 Jul 2024 18:04:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/efi: Unlock NX if necessary
To: Jan Beulich <jbeulich@suse.com>
Cc: Gene Bright <gene@cyberlight.us>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-3-andrew.cooper3@citrix.com>
 <9123e966-1ec6-4853-b6a2-f92e21dc784c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <9123e966-1ec6-4853-b6a2-f92e21dc784c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/07/2024 11:43 am, Jan Beulich wrote:
> On 22.07.2024 12:18, Andrew Cooper wrote:
>> EFI systems can run with NX disabled, as has been discovered on a Broadwell
>> Supermicro X10SRM-TF system.
>>
>> Prior to commit fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the early boot
>> path"), the logic to unlock NX was common to all boot paths, but that commit
>> moved it out of the native-EFI booth path.
>>
>> Have the EFI path attempt to unlock NX, rather than just blindly refusing to
>> boot when CONFIG_REQUIRE_NX is active.
>>
>> Fixes: fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the early boot path")
>> Link: https://xcp-ng.org/forum/post/80520
>> Reported-by: Gene Bright <gene@cyberlight.us>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> for both patches, yet with two remarks and a nit here:
>
> First: Cleanup in the earlier patch will get in the way of backporting
> this easily. Let's hope I won't screw up.

I'd just take both.

The reason the patches are this way around is because the reading of max
extd leaf needs moving in order to add the vendor check, and doing that
together in this patch made the diff far harder to follow.

>
>> --- a/xen/arch/x86/efi/efi-boot.h
>> +++ b/xen/arch/x86/efi/efi-boot.h
>> @@ -736,13 +736,33 @@ static void __init efi_arch_handle_module(const struct file *file,
>>      efi_bs->FreePool(ptr);
>>  }
>>  
>> +static bool __init intel_unlock_nx(void)
>> +{
>> +    uint64_t val, disable;
>> +
>> +    rdmsrl(MSR_IA32_MISC_ENABLE, val);
>> +
>> +    disable = val & MSR_IA32_MISC_ENABLE_XD_DISABLE;
>> +
>> +    if ( !disable )
>> +        return false;
>> +
>> +    wrmsrl(MSR_IA32_MISC_ENABLE, val & ~disable);
> The base ISA not having ANDN or NAND (and a prereq to my patch to add
> minimum-ABI-level control to the build machinery still sitting there
> unreviewed), using "val ^ disable" here would likely produce slightly
> better code for the time being.

While that might technically be true, you're assuming that everyone
reading the code can de-obfuscate ^ back into &~, and that the compiler
hasn't made its own alternative arrangements.

It's init code, not a fastpath.

>
>> @@ -752,10 +772,17 @@ static void __init efi_arch_cpu(void)
>>      caps[FEATURESET_e1d] = cpuid_edx(0x80000001U);
>>  
>>      /*
>> -     * This check purposefully doesn't use cpu_has_nx because
>> +     * These checks purposefully doesn't use cpu_has_nx because
> Nit: With the change to plural, switch to "don't"?

Yes, my mistake.  Fixed.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 17:04:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 17:04:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762257.1172394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVwSE-0001al-K1; Mon, 22 Jul 2024 17:04:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762257.1172394; Mon, 22 Jul 2024 17:04:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVwSE-0001ae-H5; Mon, 22 Jul 2024 17:04:06 +0000
Received: by outflank-mailman (input) for mailman id 762257;
 Mon, 22 Jul 2024 17:04:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=urmM=OW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sVwSD-0001aO-30
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 17:04:05 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65492a72-484c-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 19:04:03 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2f01e9f53ebso1773631fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 10:04:02 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52ef9b5fd2fsm1036465e87.150.2024.07.22.10.04.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 10:04: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: 65492a72-484c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721667842; x=1722272642; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=uSPi2blhOVCVd814q7L01w/lpkrB4JIQ5mtsfOghN88=;
        b=eQ3Tb9hU5dq5lt3HVcYRZ1kMHovczrduKC4sAI32uzrM0NiWFyUlTrNnnN8RKfj2rz
         snunWPEP1zUhPWmBfHRS3QrZms28SWW99Hj4VjtReKa+2ngShqGWksLc9RKnMz4f80Pe
         zaVkWv/T972NINiANSSI4RuJJXdA7F0BVWcsw7T0xeOJWmKhdlQc0Clv4g1/2KgwGrSP
         FY1iqzfVbJyfU9DD2nB/nPTFcEqm98B7ivbwS9UWD73NWixEIcfvAtKdfuzIxyTUwgBM
         BZsAVx2Y/CBf7E5etsjObXHB3bHQTh/Qnl/NhJVjsRtrp9hAySnX+N9GgiFuFJHxPeye
         ZK+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721667842; x=1722272642;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=uSPi2blhOVCVd814q7L01w/lpkrB4JIQ5mtsfOghN88=;
        b=VH1ZA2II2UaHe4DUf4FJoLoZ0UN3qmCBMr3xNLhMG505U79VsJCj1ayHGsKS8Vfj1P
         ijDzoobOZxf10Y4rtK5FEXVkaGmgArYKM/g/J/xnYfr1QXUVS16H4iwt/G9u875+e5jg
         14qArS/N7gGhmsLL/5HuL+ApPEwxGURFxuZEh75uLQA0cg/Y7yuiANhG3BRDk8yHCE7r
         ufIbHavvIteBEcHVhPFcuBEzthmr6ZMZ3ieHJmUegagM/BD/MuK0SkeRxpG9jc3Y0+aE
         YkklB+juU1aUZjUtTlMP66dQG5BMjQJradKWMNY92kEay8jfiwAEiFfJbSezmD5nGbqt
         bcEg==
X-Forwarded-Encrypted: i=1; AJvYcCVlHUcCLsul46J5uj9RfrbJUzDW0JzRUhHW0kuSVNZFB/AKQ67i06DeI9EpHYf3qersGrO/sXbIN259A4dRSuzUblL6hK01Z5WJcc8xMmE=
X-Gm-Message-State: AOJu0YzKIt7zyo1GuazpfE/JNho9fky9sLpnK47HyTRcaInNpuURajG6
	IPSgGzuc6iuUJuSJkhU0RdOoEc+MEoYLt6NujtLypYzuuDO/wFez
X-Google-Smtp-Source: AGHT+IGm9yR+X9Di6ofWr2QwO4C+lVdOa1xP65QVpT/K7IXvFs4PyG35VwCta5D0QJDLKc2r0ic43g==
X-Received: by 2002:a05:6512:1245:b0:52f:c14e:2533 with SMTP id 2adb3069b0e04-52fc14e2678mr1553688e87.48.1721667841595;
        Mon, 22 Jul 2024 10:04:01 -0700 (PDT)
Message-ID: <215dd01dee2d793e371feab3a42c9d9c51252b03.camel@gmail.com>
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Mon, 22 Jul 2024 19:04:00 +0200
In-Reply-To: <53e2a88b-8d2d-477a-84cb-5b44af365dbe@suse.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
	 <16648c6c-416d-4205-8d16-38c006251bb9@suse.com>
	 <26a45d85fa22a696b629e602e87d5d95626b77f0.camel@gmail.com>
	 <53e2a88b-8d2d-477a-84cb-5b44af365dbe@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-22 at 17:25 +0200, Jan Beulich wrote:
> On 22.07.2024 16:36, Oleksii wrote:
> > On Mon, 2024-07-22 at 14:42 +0200, Jan Beulich wrote:
> > > On 12.07.2024 18:22, Oleksii Kurochko wrote:
> > > > --- a/xen/arch/riscv/include/asm/config.h
> > > > +++ b/xen/arch/riscv/include/asm/config.h
> > > > @@ -74,11 +74,20 @@
> > > > =C2=A0#error "unsupported RV_STAGE1_MODE"
> > > > =C2=A0#endif
> > > > =C2=A0
> > > > +#define XEN_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 MB(2)
> > > > +#define XEN_VIRT_END=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 (XEN_VIRT_START + XEN_SIZE)
> > > > +
> > > > +#define BOOT_FDT_VIRT_START=C2=A0=C2=A0=C2=A0=C2=A0 XEN_VIRT_END
> > > > +#define BOOT_FDT_VIRT_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 MB(4)
> > > > +
> > > > =C2=A0#define DIRECTMAP_SLOT_END=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 509
> > > > =C2=A0#define DIRECTMAP_SLOT_START=C2=A0=C2=A0=C2=A0 200
> > > > =C2=A0#define DIRECTMAP_VIRT_START=C2=A0=C2=A0=C2=A0 SLOTN(DIRECTMA=
P_SLOT_START)
> > > > =C2=A0#define DIRECTMAP_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 (SLOTN(DIRECTMAP_SLOT_END) -
> > > > SLOTN(DIRECTMAP_SLOT_START))
> > > > =C2=A0
> > > > +#define FIXMAP_BASE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 (BOOT_FDT_VIRT_START +
> > > > BOOT_FDT_VIRT_SIZE)
> > > > +#define FIXMAP_ADDR(n)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 (FIXMAP_BASE + (n) *
> > > > PAGE_SIZE)
> > >=20
> > > Why exactly do you insert this here, and not adjacent to
> > > BOOT_FDT_VIRT_*,
> > > which it actually is adjacent with?
> > I tried to follow alphabetical order.
>=20
> Oh, X before B (just making fun) ... Anyway, my take here is that
> sorting
> by address is going to be more helpful.
>=20
> > > > --- a/xen/arch/riscv/mm.c
> > > > +++ b/xen/arch/riscv/mm.c
> > > > @@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
> > > > =C2=A0pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> > > > =C2=A0stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT * PAGETABLE_ENTRIES]=
;
> > > > =C2=A0
> > > > +pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> > > > +xen_fixmap[PAGETABLE_ENTRIES];
> > >=20
> > > Any reason this cannot be static?
> > It will be used by pmap:
> > =C2=A0=C2=A0 static inline void arch_pmap_map(unsigned int slot, mfn_t =
mfn)
> > =C2=A0=C2=A0 {
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t *entry =3D &xen_fixmap[slot]=
;
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pte;
> > =C2=A0=C2=A0=20
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ASSERT(!pte_is_valid(*entry));
> > =C2=A0=C2=A0=20
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte =3D mfn_to_xen_entry(mfn, PAGE=
_HYPERVISOR_RW);
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte.pte |=3D PTE_LEAF_DEFAULT;
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(entry, pte);
> > =C2=A0=C2=A0 }
> > =C2=A0=C2=A0=20
> > =C2=A0=C2=A0 static inline void arch_pmap_unmap(unsigned int slot)
> > =C2=A0=C2=A0 {
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pte =3D {};
> > =C2=A0=C2=A0=20
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixmap[slot], pte);
> > =C2=A0=C2=A0 }
>=20
> Yet as asked there - shouldn't that be set_fixmap() and
> clear_fixmap()?
It should be, I'll rework that in the next patch version.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 17:10:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 17:10:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762273.1172414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVwXt-0003Ak-JL; Mon, 22 Jul 2024 17:09:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762273.1172414; Mon, 22 Jul 2024 17:09: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 1sVwXt-0003Ad-Gs; Mon, 22 Jul 2024 17:09:57 +0000
Received: by outflank-mailman (input) for mailman id 762273;
 Mon, 22 Jul 2024 17:09: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=H4cl=OW=gmail.com=inisider@srs-se1.protection.inumbo.net>)
 id 1sVwXs-0003AX-22
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 17:09:56 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 36c01774-484d-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 19:09:54 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-52f024f468bso2128626e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 10:09:54 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52efce504e3sm910195e87.109.2024.07.22.10.09.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 22 Jul 2024 10:09: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: 36c01774-484d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721668193; x=1722272993; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Fie+5TwjN6CDpwmiwmY8Q21t7VoAbo4DMmV+x9ms7Ws=;
        b=IZXHdgItpg1JXA3lUk2cjR4KcdhdKCoEMEeGcVHMQrMUCvEF5nmZp/KliwdiRD2j7J
         BuBiiaqJjcXjwo9qdzbB1nE068Vm9hj9r4Pn82ifPx3EW/2ZzclHjVjJKlUPR7ig6ZWB
         ob0MbiiuZ+ctglcN0RIYae8agI9ypV64IzqCJQ3Lw7AvNlsDW9nFveGlpuL4d7fHYQrd
         Xl+6sezFKdsjIaC4ILAsPXtk+rqO9u4e6EvRe2YrNbBTbVXCPbmy6CI5W9Nj8RnOvQE0
         AYTakGRMbX/FEId9sduCcfxXzrIc/9/IjQ8UOzX4E/aDXUUAaczzcR/oRpW4IAi+3kcy
         eYpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721668193; x=1722272993;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Fie+5TwjN6CDpwmiwmY8Q21t7VoAbo4DMmV+x9ms7Ws=;
        b=jlIj75AmP+7cJVdkNounXWi5nwaaJE7h86QumiGbEYuNsHElAek85hK+WNckbiNZ/K
         wgf7oVj05MKPtFcMYa6+v1FdXQ4OYrq48mbs3BEXLAY4UzDI0F23u5Sh7LJzKUNjsM+U
         8/12+beSb/fSKQ0VUpSpDQP9lkfEZQ/vXz63L63mm2b4ZHWuv9ilEpV/3zjHbE+fFfnq
         RzHi8afVa58VLs+a0A3m2g1xPQ5/WgSesQ0HQZOp/dfdpZr+6lc2NfwaezREjgpArF+U
         xOCbQtGIFKaRwQx0xHFwDCHGYschSkd/FfEvOi2RPb1DvKsb2701OSqPJLcCts709V28
         enig==
X-Forwarded-Encrypted: i=1; AJvYcCU9BG39+kAVeEdpIQgZdKkVMwXhVWsuJFbmubc9D25ClvM5r7GLdsYwZrUY9frM1T69Tq6IMs5BqG/LdDU+ouYAqzSPLBwS0BCPk+AxmmU=
X-Gm-Message-State: AOJu0Ywo8E1wZRZIsAdiZ4ETTW7jmG3jRO/uwl5O66OIeTOVgq4WkihD
	pMkXQjwZdRWXRtJ7sb2IW5k8aT29JTc35IVAsFCB7M2YIxKx367s
X-Google-Smtp-Source: AGHT+IHSayyUTKE/F2d8sQdBjXIBvlyXWu7QUNG8cGxNmX8Vow6fC4hQ/gUKdCaFnHW0I8q7rGnSiQ==
X-Received: by 2002:a05:6512:2826:b0:52e:764b:b20d with SMTP id 2adb3069b0e04-52efb7e1281mr5120554e87.28.1721668193130;
        Mon, 22 Jul 2024 10:09:53 -0700 (PDT)
Message-ID: <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
From: Oleksii Kurochko <inisider@gmail.com>
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>, Stefano Stabellini
 <sstabellini@kernel.org>,  xen-devel@lists.xenproject.org
Date: Mon, 22 Jul 2024 19:09:51 +0200
In-Reply-To: <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
	 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
	 <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
	 <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-22 at 15:48 +0100, Julien Grall wrote:
> Hi,
>=20
> On 22/07/2024 15:44, Oleksii Kurochko wrote:
> > On Mon, 2024-07-22 at 14:54 +0200, Jan Beulich wrote:
> > > On 12.07.2024 18:22, Oleksii Kurochko wrote:
> > > > --- /dev/null
> > > > +++ b/xen/arch/riscv/include/asm/pmap.h
> > > > @@ -0,0 +1,28 @@
> > > > +#ifndef __ASM_PMAP_H__
> > > > +#define __ASM_PMAP_H__
> > > > +
> > > > +#include <xen/bug.h>
> > > > +#include <xen/mm.h>
> > > > +
> > > > +#include <asm/fixmap.h>
> > > > +
> > > > +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
> > > > +{
> > > > +=C2=A0=C2=A0=C2=A0 pte_t *entry =3D &xen_fixmap[slot];
> > > > +=C2=A0=C2=A0=C2=A0 pte_t pte;
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 ASSERT(!pte_is_valid(*entry));
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 pte =3D mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_R=
W);
> > > > +=C2=A0=C2=A0=C2=A0 pte.pte |=3D PTE_LEAF_DEFAULT;
> > > > +=C2=A0=C2=A0=C2=A0 write_pte(entry, pte);
> > > > +}
> > > > +
> > > > +static inline void arch_pmap_unmap(unsigned int slot)
> > > > +{
> > > > +=C2=A0=C2=A0=C2=A0 pte_t pte =3D {};
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixmap[slot], pte);
> > > > +}
> > >=20
> > > Why are these not using set_fixmap() / clear_fixmap()
> > > respectively?
> > They haven't been introduced yet. And I thought that these fucntion
> > are
> > used only in pmap_{un}map() and that is the reason why I decided to
> > not
> > introduce them. But while writing the answer on another comment, I
> > found other places where set_fixmap() / clear_fixmap() are used, so
> > I
> > will introduce them and reuse here.
>=20
> I am guessing you are going to implement set_fixmap()/clear_fixmap()=20
> using map_pages_to_xen(). If so, for early boot you are going to end
> up=20
> in a circular loop because map_pages_to_xen() will likely use pmap()=20
> which will call set_fixmap().
I am going to implement that in the following way as I faced the
described by you issue when I first time tried to implement it using
map_pages_to_xen():
   /* Map a 4k page in a fixmap entry */
   void set_fixmap(unsigned map, mfn_t mfn, unsigned int flags)
   {
       pte_t pte;
  =20
       pte =3D mfn_to_xen_entry(mfn, flags);
       pte.pte |=3D PTE_LEAF_DEFAULT;
       write_pte(&xen_fixmap[pt_index(0, FIXMAP_ADDR(map))], pte);
   }
  =20
   /* Remove a mapping from a fixmap entry */
   void clear_fixmap(unsigned map)
   {
       pte_t pte =3D {0};
       write_pte(&xen_fixmap[pt_index(0, FIXMAP_ADDR(map))], pte);
   }
  =20
~ Oleksii

>=20
> There is a big comment in common/pmap.c which explain why arch_pmap_*
> was introduced rather than calling *_fixmap() directly:
>=20
> =C2=A0=C2=A0=C2=A0=C2=A0 /*
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * We cannot use set_fixmap() here. We use =
PMAP when the domain
> map
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * page infrastructure is not yet initializ=
ed, so=20
> map_pages_to_xen() called
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * by set_fixmap() needs to map pages on de=
mand, which then
> calls=20
> pmap()
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * again, resulting in a loop. Modify the P=
TEs directly instead.
> The same
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * is true for pmap_unmap().
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 */
>=20
> Cheers,
>=20



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 17:17:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 17:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762283.1172425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVweg-0004zF-AL; Mon, 22 Jul 2024 17:16:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762283.1172425; Mon, 22 Jul 2024 17:16:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVweg-0004z8-75; Mon, 22 Jul 2024 17:16:58 +0000
Received: by outflank-mailman (input) for mailman id 762283;
 Mon, 22 Jul 2024 17:16:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QQNa=OW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sVwee-0004xq-PX
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 17:16:56 +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 314cffac-484e-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 19:16:54 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a77b550128dso471459966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 10:16:54 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c785d4esm444252866b.31.2024.07.22.10.16.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 10:16: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: 314cffac-484e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721668614; x=1722273414; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2vnbpmEWp6ptBNgiiYYoA+qqGXGQfN/jSRUKWK8YTys=;
        b=EMJseyJbc5OW0VJjGnEFSQHu0hH99Yg299WSyxETq1W2LhumIG7jsuHv010mmffoaa
         OH0Sf0SV3fenYCW0x6ht2eLc4LwWW46Ke1cGLYF8FG0swqH2R+eCEIWcgzQr0UbMtUPp
         lG3LSPiF4KT2irj7CL2g9hNE5VrDpMM48wVcc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721668614; x=1722273414;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2vnbpmEWp6ptBNgiiYYoA+qqGXGQfN/jSRUKWK8YTys=;
        b=qYn4aTCVMDUPhYFR0niXfINPWoakx11B60kw8ZqhQyt8P1Jb1um7hD7RDd79L0sRb5
         ssjCFmbz6dMmfsz3KQuEVeFcCYmbCVuB/AWLYWRHtDMbdFaWufknJ2F1JKoyWwvy8HPM
         K/szBylf6wdOjSsPp+RYFbw0aTz1npsx8jzuFsIZOzQOml/G0qWzPfyCM7aKQlFDIhTN
         9FBUlO38zouTm1N7X6zYZhkOH8uAstQ/LnHt9g40uawPLuJ0KqrWGmzfw0LMX5ZQIxXd
         hhMG5dgHUNKOeF0jkuXZVj6r9UbtORT+gloLoiRWetW/OPBC19r7pjlJhZmw4Sd//491
         8lDg==
X-Forwarded-Encrypted: i=1; AJvYcCXzvJmUXlpGMb+4nTVLmbgCjkLORStAIfjU+6EQPJ1DTGoL89M2q7+i9SjJDTvAEXfTfQLYFXjyfD9z9BzgwfY29edoDQkATSDrT39B39I=
X-Gm-Message-State: AOJu0YzlFfVUpLnh2GPARRsBMeEXEdCL+KDVecnaosrgDWyVQctw23O4
	9io5XrQCXZT0fdxgkWEuBWPC0/eW7loKgR9ZAkxcvGJoPgBYtZNZsSpG2TBwPW8=
X-Google-Smtp-Source: AGHT+IGL2/wvuJFo7V3v9rek7vlLg2f3dYb2ZwwlkhRwMreMgqFtsioKR/aw+D4QpEoEX/ifhFDubQ==
X-Received: by 2002:a17:907:3ea1:b0:a75:2495:a6a3 with SMTP id a640c23a62f3a-a7a4c584107mr561882466b.67.1721668613896;
        Mon, 22 Jul 2024 10:16:53 -0700 (PDT)
Message-ID: <0a640ce6-fd10-45e5-af98-3a0f92cb6850@citrix.com>
Date: Mon, 22 Jul 2024 18:16:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CI: workaround broken selinux+docker interaction in yocto
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: <20240720001508.1673856-1-marmarek@invisiblethingslab.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240720001508.1673856-1-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/07/2024 1:15 am, Marek Marczykowski-Górecki wrote:
> `cp --preserve=xattr` doesn't work in docker when SELinux is enabled. It
> tries to set the "security.selinux" xattr, but SELinux (or overlay fs?)
> denies it.
> Workaround it by skipping selinux.selinux xattr copying.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
> Tested here:
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/7386198058
>
> But since yocto container fails to build, it isn't exactly easy to apply
> this patch...
> "kirkstone" branch of meta-virtualization seems to target Xen 4.15 and
> 4.16, so it isn't exactly surprising it fails to build with 4.19.

Why is the external version of Xen relevant to rebuilding the container ?

Or is it that kirkstone has updated since the container was last built?

I'm not familiar with yocto, and a quick glance at the docs haven't
helped...

~Andrew

>
> I tried also bumping yocto version to scarthgap (which supposedly should
> have updated pygrub patch), but that fails to build for me too, with a
> different error:
>
>     ERROR: Layer 'filesystems-layer' depends on layer 'networking-layer', but this layer is not enabled in your configuration
>     ERROR: Parse failure with the specified layer added, exiting.
>     ...
>     ERROR: Nothing PROVIDES 'xen-image-minimal'. Close matches:
>       core-image-minimal
>       core-image-minimal-dev
>     Parsing of 2472 .bb files complete (0 cached, 2472 parsed). 4309 targets, 101 skipped, 0 masked, 0 errors.
> ---
>  automation/build/yocto/yocto.dockerfile.in | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/automation/build/yocto/yocto.dockerfile.in b/automation/build/yocto/yocto.dockerfile.in
> index fbaa4e191caa..600db7bf4d19 100644
> --- a/automation/build/yocto/yocto.dockerfile.in
> +++ b/automation/build/yocto/yocto.dockerfile.in
> @@ -68,6 +68,10 @@ RUN locale-gen en_US.UTF-8 && update-locale LC_ALL=en_US.UTF-8 \
>  ENV LANG en_US.UTF-8
>  ENV LC_ALL en_US.UTF-8
>  
> +# Workaround `cp --preserve=xattr` not working in docker when SELinux is
> +# enabled
> +RUN echo "security.selinux skip" >> /etc/xattr.conf
> +
>  # Create a user for the build (we don't want to build as root).
>  ENV USER_NAME docker-build
>  ARG host_uid=1000



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 17:21:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 17:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762290.1172435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVwiz-0006ZR-RI; Mon, 22 Jul 2024 17:21:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762290.1172435; Mon, 22 Jul 2024 17: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 1sVwiz-0006ZK-Nq; Mon, 22 Jul 2024 17:21:25 +0000
Received: by outflank-mailman (input) for mailman id 762290;
 Mon, 22 Jul 2024 17:21:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sVwiy-0006ZE-2W
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 17:21:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVwiv-0003f2-Nt; Mon, 22 Jul 2024 17:21:21 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.0.211])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sVwiv-0001Au-IA; Mon, 22 Jul 2024 17:21:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=SuZOPzmd4k+Jsla1AVpfAQADydFs9J5k0uoqoBCri7k=; b=r6xLy9wbTZuBPhP//Jr/Mir3wS
	j9O7CZX4VGiStuCRTb05b4xzS8QFIvwwuFgLgu3fcXoXZnrbZRzg+SJHtftPdt3D7UlPN+jWC6tce
	oL1lmCGSWoDvRK8VlIgTsOxyBjDS+cVD2ujZvSj06R41okltYfWKeQvHyqahieGfi8I4=;
Message-ID: <26ae01e2-d085-48d7-8b1f-da1e44b01e53@xen.org>
Date: Mon, 22 Jul 2024 18:21:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
Content-Language: en-GB
To: Oleksii Kurochko <inisider@gmail.com>, 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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
 <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
 <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
 <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 22/07/2024 18:09, Oleksii Kurochko wrote:
> On Mon, 2024-07-22 at 15:48 +0100, Julien Grall wrote:
>> Hi,
>>
>> On 22/07/2024 15:44, Oleksii Kurochko wrote:
>>> On Mon, 2024-07-22 at 14:54 +0200, Jan Beulich wrote:
>>>> On 12.07.2024 18:22, Oleksii Kurochko wrote:
>>>>> --- /dev/null
>>>>> +++ b/xen/arch/riscv/include/asm/pmap.h
>>>>> @@ -0,0 +1,28 @@
>>>>> +#ifndef __ASM_PMAP_H__
>>>>> +#define __ASM_PMAP_H__
>>>>> +
>>>>> +#include <xen/bug.h>
>>>>> +#include <xen/mm.h>
>>>>> +
>>>>> +#include <asm/fixmap.h>
>>>>> +
>>>>> +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
>>>>> +{
>>>>> +    pte_t *entry = &xen_fixmap[slot];
>>>>> +    pte_t pte;
>>>>> +
>>>>> +    ASSERT(!pte_is_valid(*entry));
>>>>> +
>>>>> +    pte = mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
>>>>> +    pte.pte |= PTE_LEAF_DEFAULT;
>>>>> +    write_pte(entry, pte);
>>>>> +}
>>>>> +
>>>>> +static inline void arch_pmap_unmap(unsigned int slot)
>>>>> +{
>>>>> +    pte_t pte = {};
>>>>> +
>>>>> +    write_pte(&xen_fixmap[slot], pte);
>>>>> +}
>>>>
>>>> Why are these not using set_fixmap() / clear_fixmap()
>>>> respectively?
>>> They haven't been introduced yet. And I thought that these fucntion
>>> are
>>> used only in pmap_{un}map() and that is the reason why I decided to
>>> not
>>> introduce them. But while writing the answer on another comment, I
>>> found other places where set_fixmap() / clear_fixmap() are used, so
>>> I
>>> will introduce them and reuse here.
>>
>> I am guessing you are going to implement set_fixmap()/clear_fixmap()
>> using map_pages_to_xen(). If so, for early boot you are going to end
>> up
>> in a circular loop because map_pages_to_xen() will likely use pmap()
>> which will call set_fixmap().
> I am going to implement that in the following way as I faced the
> described by you issue when I first time tried to implement it using
> map_pages_to_xen():
What's wrong with keeping the arch_pmap_*() as-is and call 
map_pages_to_xen() in the fixmap?

At least this would be consistent with what other architectures does and 
less risky (see below).

>     /* Map a 4k page in a fixmap entry */
>     void set_fixmap(unsigned map, mfn_t mfn, unsigned int flags)
>     {
>         pte_t pte;
>     
>         pte = mfn_to_xen_entry(mfn, flags);
>         pte.pte |= PTE_LEAF_DEFAULT;
>         write_pte(&xen_fixmap[pt_index(0, FIXMAP_ADDR(map))], pte);

It would be saner to check if you are not overwriting any existing 
mapping as otherwise you will probably need a TLB flush.

>     }
>     
>     /* Remove a mapping from a fixmap entry */
>     void clear_fixmap(unsigned map)
>     {
>         pte_t pte = {0};
>         write_pte(&xen_fixmap[pt_index(0, FIXMAP_ADDR(map))], pte);

Don't you need a TLB flush?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 17:38:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 17:38:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762302.1172452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVwzS-0000tW-Cb; Mon, 22 Jul 2024 17:38:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762302.1172452; Mon, 22 Jul 2024 17: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 1sVwzS-0000tP-9v; Mon, 22 Jul 2024 17:38:26 +0000
Received: by outflank-mailman (input) for mailman id 762302;
 Mon, 22 Jul 2024 17:38:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aIMA=OW=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sVwzQ-0000tG-Ua
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 17:38:25 +0000
Received: from fhigh8-smtp.messagingengine.com
 (fhigh8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f59fba1-4851-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 19:38:21 +0200 (CEST)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id A977C1140110;
 Mon, 22 Jul 2024 13:38:17 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute2.internal (MEProxy); Mon, 22 Jul 2024 13:38:17 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 22 Jul 2024 13:38:16 -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: 2f59fba1-4851-11ef-bbfe-fd08da9f4363
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=1721669897;
	 x=1721756297; bh=QfWFEiQoO0d2N+zlRKZzz1xU7LUjZhR3iK4T7LXrC/Y=; b=
	Wt9Dc6nE7idxYVskIaSSg6Bt+iehUsKatiQk8An+ws0J38nAEmyCrU0CGgNgTaPE
	UaFOMViMSyRtZejuRKbFFwM565fYNjtJqSKDxpospwri9zWFRNTUJ+D+IYg6WVbv
	SJ/tI8wTRwpBxZuxRljG3LO0KmqZAq4X7/woCWnQtJKbdqfdK+2pAkGUao4fGKbn
	xM75uSjUcssJMmdJsDO/4ByIYu1ke7ZGeJUaT3exXyaZc2ZLT8brYBv160QCh79Y
	mNiZQMcOqDE0yePzdN8VKVKZxVK+zZYewgyMUi1jF/wjE7B2iTW9J8WfQfq4X9As
	6DvR1GgIZ9bw5HN8lM+j0w==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1721669897; x=1721756297; bh=QfWFEiQoO0d2N+zlRKZzz1xU7LUj
	ZhR3iK4T7LXrC/Y=; b=V4xONANVeQ+Pwg+c8PC/fxT7JRNrsVp742T9XNGGSdxc
	vcPFkEZdelJIr6aXtyrEPJgvUWBX1YL9yxdItLxf4ZVQxPa9DpsdQe9l2IA9/LF2
	VhGAxZwVMmWfu7FTMR9jJNh6sh1p4P/HY6HmRfcPqbRjr2LML7MyQiGyR5ydSmSH
	EepQmzZsNl4T7E8ul7xfNETItfY2NlFwQIeti93aevOKT/5wjrmU6UG+HkzufDwt
	tKyIZQyqJbwY3FiUERBkaPwLxskv94A7ppz1yhgBc6OzUUsOvCJyNwCQpqbf5yZM
	k5K37+HuMI5vVkaNlRnvfsLucYXNQuKFAEoRWZv6iw==
X-ME-Sender: <xms:CZmeZgYf0w26rSg9UVtPC7gMk70PVS9YqtXhjsqx4i2fOLHfcj8fng>
    <xme:CZmeZra1QabIrafQqTGMww9LV0m3eApfXfJVOlrVzyzutDRzg0-fjFLKp1AKhkk-j
    CTzsCERZbpUnQ>
X-ME-Received: <xmr:CZmeZq86ZCInGKkf43SkLS7WOKuRfSr4M_VJhlCt1709PDJFfS3v8c0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheejgdduudeiucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueel
    tedtleevtdeuueelvedvueeifffhkeeggedtieeifeellefgheeuffeuhedunecuffhomh
    grihhnpehgihhtlhgrsgdrtghomhdpughotghkvghrfhhilhgvrdhinhenucevlhhushht
    vghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesih
    hnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:CZmeZqqindFTbyzTZts42F9kt7Yui5W_1rKJZTSbdK6tcqhvB5veQg>
    <xmx:CZmeZrrCPn2Ztao3EkwzL2-ifx2bkaUTMyBpWxYWX2edjFN51fC4IQ>
    <xmx:CZmeZoShCgfA7l7gxSncJqRyUdNfzH1X0Q0Xxv4aqFQAMBm_y1ybog>
    <xmx:CZmeZrru8Fz4QHQRHrTDCxpCZjrtZutRTw4Rkfm7MM5O6-GZxF62UA>
    <xmx:CZmeZqUzbLw3lm4Lqj5dvAVTcgaYY4nYDPnoswcoOserO3bqcSz4Rivk>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 22 Jul 2024 19:38:11 +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] CI: workaround broken selinux+docker interaction in yocto
Message-ID: <Zp6ZBPP0tCRuzDjE@mail-itl>
References: <20240720001508.1673856-1-marmarek@invisiblethingslab.com>
 <0a640ce6-fd10-45e5-af98-3a0f92cb6850@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="nnsOsptkJjgqLIOP"
Content-Disposition: inline
In-Reply-To: <0a640ce6-fd10-45e5-af98-3a0f92cb6850@citrix.com>


--nnsOsptkJjgqLIOP
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 22 Jul 2024 19:38:11 +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] CI: workaround broken selinux+docker interaction in yocto

On Mon, Jul 22, 2024 at 06:16:51PM +0100, Andrew Cooper wrote:
> On 20/07/2024 1:15 am, Marek Marczykowski-G=C3=B3recki wrote:
> > `cp --preserve=3Dxattr` doesn't work in docker when SELinux is enabled.=
 It
> > tries to set the "security.selinux" xattr, but SELinux (or overlay fs?)
> > denies it.
> > Workaround it by skipping selinux.selinux xattr copying.
> >
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
> > ---
> > Tested here:
> > https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/7386198058
> >
> > But since yocto container fails to build, it isn't exactly easy to apply
> > this patch...
> > "kirkstone" branch of meta-virtualization seems to target Xen 4.15 and
> > 4.16, so it isn't exactly surprising it fails to build with 4.19.
>=20
> Why is the external version of Xen relevant to rebuilding the container ?

I think it tries to build xen_git.bb, which fetches "master" branch, and
this fails to build with its current state.

> Or is it that kirkstone has updated since the container was last built?
>=20
> I'm not familiar with yocto, and a quick glance at the docs haven't
> helped...
>=20
> ~Andrew
>=20
> >
> > I tried also bumping yocto version to scarthgap (which supposedly should
> > have updated pygrub patch), but that fails to build for me too, with a
> > different error:
> >
> >     ERROR: Layer 'filesystems-layer' depends on layer 'networking-layer=
', but this layer is not enabled in your configuration
> >     ERROR: Parse failure with the specified layer added, exiting.
> >     ...
> >     ERROR: Nothing PROVIDES 'xen-image-minimal'. Close matches:
> >       core-image-minimal
> >       core-image-minimal-dev
> >     Parsing of 2472 .bb files complete (0 cached, 2472 parsed). 4309 ta=
rgets, 101 skipped, 0 masked, 0 errors.

In the meantime I've solved this issue by reordering layers in
build-yocto.sh (meta-networking before meta-filesystems). But then, ran
out of disk space (40GB wasn't enough) and hasn't retried yet...

> > ---
> >  automation/build/yocto/yocto.dockerfile.in | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/automation/build/yocto/yocto.dockerfile.in b/automation/bu=
ild/yocto/yocto.dockerfile.in
> > index fbaa4e191caa..600db7bf4d19 100644
> > --- a/automation/build/yocto/yocto.dockerfile.in
> > +++ b/automation/build/yocto/yocto.dockerfile.in
> > @@ -68,6 +68,10 @@ RUN locale-gen en_US.UTF-8 && update-locale LC_ALL=
=3Den_US.UTF-8 \
> >  ENV LANG en_US.UTF-8
> >  ENV LC_ALL en_US.UTF-8
> > =20
> > +# Workaround `cp --preserve=3Dxattr` not working in docker when SELinu=
x is
> > +# enabled
> > +RUN echo "security.selinux skip" >> /etc/xattr.conf
> > +
> >  # Create a user for the build (we don't want to build as root).
> >  ENV USER_NAME docker-build
> >  ARG host_uid=3D1000
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmaemQQACgkQ24/THMrX
1yy7+Qf7B5ez1xmVEnwo2El2gkeK16xxwbIzaGwiEWFe98Lp+O4BabaUcqVk4m77
yCoQ8LTOM95FtqxpPC3U/eoDm/uupasmqXPTMZWifWytV5Oi5jJSW6n/ssfSX9HN
A6c1QE1LnUw4ghVCx7Z/oplwxwMW8LcnVi9RMmA9EMZCQ4Xbdz6Dx9bv1kMuj0Yv
b463Utk8LmBq9Fb4UK859bR0LjCtWO7Lrf0NbufD2KIEIERm4tTI0h/2WjoCMIHC
HRYAHDRt9se3IT1/2RyEvh0kE0ech64HRFi71rQ58Z+eFYjqDpp0fZO5Zo3uBaNf
cmxrdCTBNLvp6Mp2x8WOd9/WnLuqAw==
=CV2h
-----END PGP SIGNATURE-----

--nnsOsptkJjgqLIOP--


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 17:38:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 17:38:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762303.1172463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVwzZ-00019L-JI; Mon, 22 Jul 2024 17:38:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762303.1172463; Mon, 22 Jul 2024 17: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 1sVwzZ-00019C-GQ; Mon, 22 Jul 2024 17:38:33 +0000
Received: by outflank-mailman (input) for mailman id 762303;
 Mon, 22 Jul 2024 17: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=QQNa=OW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sVwzY-00018Y-31
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 17:38:32 +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 355dd55c-4851-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 19:38:30 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5a1fcb611baso3756703a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 10:38:30 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5a30af84673sm6472429a12.50.2024.07.22.10.38.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 10:38: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: 355dd55c-4851-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721669909; x=1722274709; 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=70KRp6vJHVzCwRjJXSAkjbmXNx7Fa+O3A7nOW3ycLN8=;
        b=ndfm/4fvVjJrP7dtNo5ChsCyMdJp45Y1Oc+X+LUzoXqKTvSAYloXikY13bW/TWCeRP
         ZleBLkK8NVPuV1DR5vjncHiHqDIA3NqZNCzsyBognr2JavYP821kNwsfSdTsjZt0IgPx
         Ny/2i9HCzYDjm54hQWvUSw8TcZZtk5yrX4xGE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721669909; x=1722274709;
        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=70KRp6vJHVzCwRjJXSAkjbmXNx7Fa+O3A7nOW3ycLN8=;
        b=Mdctun1x99Arc07iNJGS9AULkLEEqJr6Vg1xAMvdMYkJcn+K3F9lTQU6q5fDXL/uP9
         3SCRJ6zucxe3YAyAU+yN2w6UOWkvS7oR0LC/+ITf8s6VqHl8IJwn4TdDqHNmsOlrhnE5
         Dfib/ohxIRWCy6PqANVAdbtuKzNdVq4GBBOfIfF13/p4pDbiY8HPCrrXSWBoe+LZ5w27
         02+i9KT4J+kXesc7J4bEnjdp8/aYYbu6ymvi67nTkxWI1c/qTUw4UdM94fG0j9b66D4s
         c2lPBxvhdIqb/czSarxHNAqC3hCRC5v7Jgis4eCMHBtp809BZcCUNNzKbFPSAt9PtuvD
         Bo1A==
X-Forwarded-Encrypted: i=1; AJvYcCWJeNglOkzRA2VUn5V+At3c/MK1AqQM7ypv0ug4AClMf9ciAhLcg42Ms4kP0MpCB57HrioSgk0B9kDNoDzrbB0dvbLN17NpyJbxIMpSZAw=
X-Gm-Message-State: AOJu0Yw6ZwGQCKWCNNITjh+g1T9zBCucMuf+4OYQymWQTGtQ+FGpUolR
	rIFAKwAhyrgOZHAq5Kf2JxgPDyb/dA6cxrO/aTfgFiCjjBqQ3sMxB7ulkc2lVVw=
X-Google-Smtp-Source: AGHT+IG1Ti6IBgDDGaOCOX59EjONe5HuXZOCrlwA/NQNi9y2ULxfjMVGY0KJFhO9kls2RKioY8e/iQ==
X-Received: by 2002:a05:6402:350e:b0:5a2:1693:1a2f with SMTP id 4fb4d7f45d1cf-5a479d6257amr5346860a12.12.1721669909195;
        Mon, 22 Jul 2024 10:38:29 -0700 (PDT)
Message-ID: <243d89c1-4e23-4ecb-be4a-0ab1e09e0938@citrix.com>
Date: Mon, 22 Jul 2024 18:38:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/efi: Unlock NX if necessary
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Gene Bright <gene@cyberlight.us>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-3-andrew.cooper3@citrix.com>
 <9123e966-1ec6-4853-b6a2-f92e21dc784c@suse.com>
 <f53e8b5b-1a89-4190-a6bc-495e8487384f@citrix.com>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <f53e8b5b-1a89-4190-a6bc-495e8487384f@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/07/2024 6:04 pm, Andrew Cooper wrote:
> On 22/07/2024 11:43 am, Jan Beulich wrote:
>> On 22.07.2024 12:18, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/efi/efi-boot.h
>>> +++ b/xen/arch/x86/efi/efi-boot.h
>>> @@ -736,13 +736,33 @@ static void __init efi_arch_handle_module(const struct file *file,
>>>      efi_bs->FreePool(ptr);
>>>  }
>>>  
>>> +static bool __init intel_unlock_nx(void)
>>> +{
>>> +    uint64_t val, disable;
>>> +
>>> +    rdmsrl(MSR_IA32_MISC_ENABLE, val);
>>> +
>>> +    disable = val & MSR_IA32_MISC_ENABLE_XD_DISABLE;
>>> +
>>> +    if ( !disable )
>>> +        return false;
>>> +
>>> +    wrmsrl(MSR_IA32_MISC_ENABLE, val & ~disable);
>> The base ISA not having ANDN or NAND (and a prereq to my patch to add
>> minimum-ABI-level control to the build machinery still sitting there
>> unreviewed), using "val ^ disable" here would likely produce slightly
>> better code for the time being.
> While that might technically be true, you're assuming that everyone
> reading the code can de-obfuscate ^ back into &~, and that the compiler
> hasn't made its own alternative arrangements.

In fact, the compiler sees through this "clever" trick and undoes the XOR.

Swapping &~ for ^ makes no change in the compiled binary, because in
both cases GCC chooses a BTR instruction instead.


While BTR might be a poor choice of instruction for this purpose, it
reinforces my opinion that trickery such as this is not something we
want to do.

If you want a more useful optimisation task, we should figure out how to
write rdmsrl()/wrmsrl() better so GCC is happy working on %edx in
isolation, rather than always merging it into %rax to be operated on. 
The rdmsr()/wrmsr() helpers taking a split hi and lo generate far better
code, even if they are much more awkward to use at a C level.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 17:46:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 17:46:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762318.1172473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVx7K-00033L-CK; Mon, 22 Jul 2024 17:46:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762318.1172473; Mon, 22 Jul 2024 17: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 1sVx7K-00033E-99; Mon, 22 Jul 2024 17:46:34 +0000
Received: by outflank-mailman (input) for mailman id 762318;
 Mon, 22 Jul 2024 17:46:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QQNa=OW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sVx7J-00031q-9u
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 17:46:33 +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 542d005d-4852-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 19:46:31 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a77cb7c106dso459262366b.1
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 10:46:31 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c785d4esm446531966b.31.2024.07.22.10.46.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 10:46: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: 542d005d-4852-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721670390; x=1722275190; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8YZVraIpH+q388nSbjeibaIor+b8SzymxVYUh0Dr7KU=;
        b=C31/7mSbH9qKaZohJvHk+0jDbeB/Hhd3Gh3ugu4pThRdzwV5pMZGvw6zmjA+DLAOp2
         JLZCio9G2bP3zPKkuaRV3HDRhN0E/+H7ysSEamTZEh8LBvtMhDlLq+cBRlavduklFkQn
         g5MMYnQ9i7q2p9TH5Qa1BevnwqaidkcyO09+w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721670390; x=1722275190;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8YZVraIpH+q388nSbjeibaIor+b8SzymxVYUh0Dr7KU=;
        b=UxnMLKc9ubbT+oLuaF8iCMwchbDaHNe4ogFqyD05wecxA7wxcN6PyR4hHIzaPGeur5
         tY4iGsdhDsdbNeyblNKm4d0bGMwO6t+q+GiAPFygSFNGDxLZ+yPcm7QjfvcslTvuPwdq
         kttW5Mo+f4b2cwgWCckWU/ousPu0uB/ciSkUEmctHesCSl0Ql/zyBeM9BGBSgx3niEps
         7iEqvGFeWuvl6voRZwtGPzai1pQm5uSSpjFA4GTOCAXnRmrw0k8VqDmofhCKsJjHkgLq
         d9+yck0Kyg7WI6ZL0zGPot3gxl3UC3R5cRoc+wh0feLkJehx8CvRGU4jGcF1QDvIHjiK
         EQrA==
X-Forwarded-Encrypted: i=1; AJvYcCU669BpwUl63KDmACg+uWmr0LXR86pN14xC7i6m5PesW/TVbOg25LIujjRaqxHnluzo//uyal2/Hkoa9bygcGV2bC8y6A8fyyCKHMlnDoc=
X-Gm-Message-State: AOJu0YzI8eJEpmJ/jcYaZ6BoSh/WEJNgRbtrEt4FJHGvf2x6kZcyTUyq
	daxabbcUi1IRqmFDBbCj//EKcWM62b4I7BwFxPtxNuU1NclV1x0yaPpCOhWloV0=
X-Google-Smtp-Source: AGHT+IFbiY8Cq89rZrJzzzk4eo/hpnS3wYvi6+qmZilASq5bUyRz2lp4LdxxoqYvT7TmHh3S19FsEQ==
X-Received: by 2002:a17:907:7d86:b0:a77:dbf0:d30 with SMTP id a640c23a62f3a-a7a4c10350cmr536006966b.41.1721670390438;
        Mon, 22 Jul 2024 10:46:30 -0700 (PDT)
Message-ID: <e3f64d67-75eb-4c7b-97fb-ca39edb5ddb9@citrix.com>
Date: Mon, 22 Jul 2024 18:46:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] arch/domain: Clean up the idle domain remnants in
 arch_domain_create()
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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
 <20240718215744.3892072-5-andrew.cooper3@citrix.com>
 <be94ac73-cb8f-4bb3-a529-4c3b47a939b3@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <be94ac73-cb8f-4bb3-a529-4c3b47a939b3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/07/2024 8:23 am, Jan Beulich wrote:
> On 18.07.2024 23:57, Andrew Cooper wrote:
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -791,23 +791,6 @@ int arch_domain_create(struct domain *d,
>>  
>>      spin_lock_init(&d->arch.e820_lock);
>>  
>> -    /* Minimal initialisation for the idle domain. */
>> -    if ( unlikely(is_idle_domain(d)) )
>> -    {
>> -        arch_init_idle_domain(d);
>> -
>> -        d->arch.cpu_policy = ZERO_BLOCK_PTR; /* Catch stray misuses. */
> This line looks to be lost in the process. Already in an earlier patch it
> should move to arch_init_idle_domain(), shouldn't it? With that adjustment
> for the entire series:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

It was semi-intentional.  cpu_policy is just one of many pointers, and I
don't see a good reason for it to be treated specially.

It's been around for years now, and never one triggered, not to mention
the fact that there's a dwindling set of machines where a dereference of
0 isn't instantly fatal anyway.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 19:24:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 19:24:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762326.1172488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVyeF-00006m-9c; Mon, 22 Jul 2024 19:24:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762326.1172488; Mon, 22 Jul 2024 19: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 1sVyeF-00006f-4k; Mon, 22 Jul 2024 19:24:39 +0000
Received: by outflank-mailman (input) for mailman id 762326;
 Mon, 22 Jul 2024 19:24:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVyeD-00006V-HW; Mon, 22 Jul 2024 19:24:37 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVyeD-0006BH-CW; Mon, 22 Jul 2024 19:24:37 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVyeD-0002FA-0J; Mon, 22 Jul 2024 19:24:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVyeC-0004Fr-Vs; Mon, 22 Jul 2024 19:24: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=NOVwn/+rtb7oGL+uoLyAYqLaOA4nKIN/IiW3S6pcSS0=; b=CKHHSlkx9WjFLiF3BYJUuHDbWe
	38BjINtnRYwYDYn7yo9utGfclQOLr4bP9LdYNyA5qzvBwSUbKA9XnkMWtVWbVjaS0yYCY2f0SbAgx
	UYTf5ujOfqnU2I6CwG4aa0Qu2Ixxed4kds/jsD3RTbcDgYOn7VYzXLOreqASdDOx/dP0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186934-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186934: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=933069701c1b507825b514317d4edd5d3fd9d417
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Jul 2024 19:24:36 +0000

flight 186934 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186934/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel  8 xen-boot            fail REGR. vs. 186827
 test-amd64-amd64-dom0pvh-xl-amd  8 xen-boot              fail REGR. vs. 186827
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                933069701c1b507825b514317d4edd5d3fd9d417
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    5 days
Failing since        186925  2024-07-20 09:44:52 Z    2 days    7 attempts
Testing same since   186934  2024-07-22 05:01:57 Z    0 days    1 attempts

------------------------------------------------------------
1790 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 197771 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 19:29:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 19:29:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762337.1172497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVyid-0000xL-Tl; Mon, 22 Jul 2024 19:29:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762337.1172497; Mon, 22 Jul 2024 19:29:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sVyid-0000xE-QJ; Mon, 22 Jul 2024 19:29:11 +0000
Received: by outflank-mailman (input) for mailman id 762337;
 Mon, 22 Jul 2024 19:29:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVyid-0000x4-3l; Mon, 22 Jul 2024 19:29:11 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVyid-0006Ia-22; Mon, 22 Jul 2024 19:29:11 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sVyic-0002cn-Pm; Mon, 22 Jul 2024 19:29:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sVyic-0007yE-PG; Mon, 22 Jul 2024 19:29:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=go1GDHV0Ozv0+cyMLUBY2nFlb5MmU01eNsREdZ/059o=; b=jboLBhLUfWkS6X5oPWW0FpBD0z
	cPbL3NAWZyWUQCKHanrfW+gbi/3xg1PfEVzXN68Isql4fHM9/5vS8dnDF7YJNHWbJSywmQUielPTN
	fzYFPJYWdRnyu55CGkZG6P/zYMMxr7ya2JuloEYvP0G0JaWTdnVq9J7bjb5jRv8SkNaU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186951-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186951: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=5aa152913cd0d71efed459cabb49ba055bb7776f
X-Osstest-Versions-That:
    xen=e44f33ccddc20079d9a22e1f0659c88fde0f4eb2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Jul 2024 19:29:10 +0000

flight 186951 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186951/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  5aa152913cd0d71efed459cabb49ba055bb7776f
baseline version:
 xen                  e44f33ccddc20079d9a22e1f0659c88fde0f4eb2

Last test of basis   186940  2024-07-22 12:00:22 Z    0 days
Testing same since   186951  2024-07-22 16:00:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   e44f33ccdd..5aa152913c  5aa152913cd0d71efed459cabb49ba055bb7776f -> smoke


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:27:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:27:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762350.1172512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0Yd-0007FK-CT; Mon, 22 Jul 2024 21:26:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762350.1172512; Mon, 22 Jul 2024 21:26: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 1sW0Yd-0007F6-5i; Mon, 22 Jul 2024 21:26:59 +0000
Received: by outflank-mailman (input) for mailman id 762350;
 Mon, 22 Jul 2024 21:26:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TuwE=OW=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sW0Yc-0007Ee-Iv
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:26:58 +0000
Received: from sonata.ens-lyon.org (sonata.ens-lyon.org [140.77.166.138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1eb51e13-4871-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 23:26:56 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 4EE18A02D3;
 Mon, 22 Jul 2024 23:26:55 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id JAjeluPNITRN; Mon, 22 Jul 2024 23:26:55 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id 13D23A02CA;
 Mon, 22 Jul 2024 23:26:55 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98-RC3)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sW0YY-0000000APvC-2k7f; Mon, 22 Jul 2024 23:26:54 +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: 1eb51e13-4871-11ef-bbfe-fd08da9f4363
Date: Mon, 22 Jul 2024 23:26:54 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH] mini-os: mm: don't have two large arrays of the same kind
Message-ID: <20240722212654.exihzgrvnqxu36kt@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240722150843.3947-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240722150843.3947-1-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le lun. 22 juil. 2024 17:08:43 +0200, a ecrit:
> In the CONFIG_PARAVIRT case there are two identical static arrays of
> more than 8kB size with function scope. As the two functions never
> nest, a single array of file scope can replace the two existing
> instances.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

> ---
>  arch/x86/mm.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/x86/mm.c b/arch/x86/mm.c
> index be1cf0cf..7ddf16e4 100644
> --- a/arch/x86/mm.c
> +++ b/arch/x86/mm.c
> @@ -198,6 +198,10 @@ static void new_pt_frame(unsigned long *pt_pfn, unsigned long prev_l_mfn,
>      *pt_pfn += 1;
>  }
>  
> +#ifdef CONFIG_PARAVIRT
> +static mmu_update_t mmu_updates[L1_PAGETABLE_ENTRIES + 1];
> +#endif
> +
>  /*
>   * Build the initial pagetable.
>   */
> @@ -209,7 +213,6 @@ static void build_pagetable(unsigned long *start_pfn, unsigned long *max_pfn)
>      unsigned long pt_mfn = pfn_to_mfn(virt_to_pfn(pt_base));
>      unsigned long offset;
>  #ifdef CONFIG_PARAVIRT
> -    static mmu_update_t mmu_updates[L1_PAGETABLE_ENTRIES + 1];
>      int count = 0;
>      int rc;
>  #endif
> @@ -323,7 +326,6 @@ static void set_readonly(void *text, void *etext)
>      unsigned long offset;
>      unsigned long page_size = PAGE_SIZE;
>  #ifdef CONFIG_PARAVIRT
> -    static mmu_update_t mmu_updates[L1_PAGETABLE_ENTRIES + 1];
>      int count = 0;
>      int rc;
>  #endif
> -- 
> 2.43.0
> 

-- 
Samuel
/*
 * [...] Note that 120 sec is defined in the protocol as the maximum
 * possible RTT.  I guess we'll have to use something other than TCP
 * to talk to the University of Mars.
 * PAWS allows us longer timeouts and large windows, so once implemented
 * ftp to mars will work nicely.
 */
(from /usr/src/linux/net/inet/tcp.c, concerning RTT [retransmission timeout])


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:27:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:27:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762357.1172520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0Z7-0007kF-Gh; Mon, 22 Jul 2024 21:27:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762357.1172520; Mon, 22 Jul 2024 21:27:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0Z7-0007k8-EA; Mon, 22 Jul 2024 21:27:29 +0000
Received: by outflank-mailman (input) for mailman id 762357;
 Mon, 22 Jul 2024 21: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=z3Fi=OW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sW0Z6-0007Ee-2h
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:27:28 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 308fb55d-4871-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 23:27:27 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 9F0E8CE0C4F;
 Mon, 22 Jul 2024 21:27:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AE6D2C116B1;
 Mon, 22 Jul 2024 21:27: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: 308fb55d-4871-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721683640;
	bh=eZ3Vexn5asWDHZ/yQICg46V4bCJuyIKihlB2Krshc7I=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=V2jKBZhK9eQ5EgdN5F91cm+RfVDO3TeieWejrRwo6F8ol0707NYzt1RmHeXSm0bYq
	 Gp2jCiwU3WxI5mp+vgrI58/Tk0Qdk9mTfnivKI1lRED2X6henfPMVADFpVkLgwb3yh
	 F2N8VmKvGhHJFIATXIKorMFl5fEJCHv3NlikLt8s7iCmFJyjYUY+erSa94N8BGdafx
	 OnBSIuW2uTQ8q+GhgMcyGr6czgSYct8qKVeMZVpdvoDiw3MC5VoMHP6dZAyexo4scY
	 E+Nof+jHC2bFzLS/EkxIHl2yCcbZ6bxYKRv/o6SqCKvoQa2RdXdydX4eAFhrkHJ2rR
	 b0HG1OVLupNxg==
Date: Mon, 22 Jul 2024 14:27:17 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jiqian Chen <Jiqian.Chen@amd.com>
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>, 
    Wei Liu <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, 
    "Daniel P . Smith" <dpsmith@apertussolutions.com>, 
    Stewart Hildebrand <Stewart.Hildebrand@amd.com>, 
    Huang Rui <Ray.Huang@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: Re: [XEN PATCH v9 3/5] x86/pvh: Add PHYSDEVOP_setup_gsi for PVH
 dom0
In-Reply-To: <20240607081127.126593-4-Jiqian.Chen@amd.com>
Message-ID: <alpine.DEB.2.22.394.2407221427090.4857@ubuntu-linux-20-04-desktop>
References: <20240607081127.126593-1-Jiqian.Chen@amd.com> <20240607081127.126593-4-Jiqian.Chen@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, 7 Jun 2024, Jiqian Chen wrote:
> On PVH dom0, the gsis don't get registered, but
> the gsi of a passthrough device must be configured for it to
> be able to be mapped into a hvm domU.
> On Linux kernel side, it calles PHYSDEVOP_setup_gsi for
> passthrough devices to register gsi when dom0 is PVH.
> So, add PHYSDEVOP_setup_gsi for above purpose.
> 
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:30:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:30:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762369.1172535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0bd-0000Yc-1n; Mon, 22 Jul 2024 21:30:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762369.1172535; Mon, 22 Jul 2024 21:30: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 1sW0bc-0000YS-Sr; Mon, 22 Jul 2024 21:30:04 +0000
Received: by outflank-mailman (input) for mailman id 762369;
 Mon, 22 Jul 2024 21:30: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=TuwE=OW=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sW0bc-0000EF-2J
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:30:04 +0000
Received: from sonata.ens-lyon.org (sonata.ens-lyon.org [140.77.166.138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8dfce30b-4871-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 23:30:02 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 2AB8DA02D3;
 Mon, 22 Jul 2024 23:30:02 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id QKfM2qWowNs9; Mon, 22 Jul 2024 23:30:02 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id 10AF0A02CA;
 Mon, 22 Jul 2024 23:30:02 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98-RC3)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sW0bZ-0000000AY7o-2o5O; Mon, 22 Jul 2024 23:30:01 +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: 8dfce30b-4871-11ef-bbfe-fd08da9f4363
Date: Mon, 22 Jul 2024 23:30:01 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 1/4] mini-os: make mm.c coding style compliant
Message-ID: <20240722213001.c43qzpjjmjqk2yq3@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240722150141.31391-1-jgross@suse.com>
 <20240722150141.31391-2-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240722150141.31391-2-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le lun. 22 juil. 2024 17:01:38 +0200, a ecrit:
> @@ -63,8 +63,8 @@ unsigned long nr_free_pages;
>  
>  /*
>   * Hint regarding bitwise arithmetic in map_{alloc,free}:
> - *  -(1<<n)  sets all bits >= n. 
> - *  (1<<n)-1 sets all bits <  n.
> + *  -(1 << n)  sets all bits >= n.
> + *  (1 << n) - 1 sets all bits <  n.

Please keep the alignment of "sets"

Apart this nitpick,

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Samuel


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:30:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762380.1172548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0cO-0001TG-AA; Mon, 22 Jul 2024 21:30:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762380.1172548; Mon, 22 Jul 2024 21:30: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 1sW0cO-0001T8-7Z; Mon, 22 Jul 2024 21:30:52 +0000
Received: by outflank-mailman (input) for mailman id 762380;
 Mon, 22 Jul 2024 21:30: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=TuwE=OW=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sW0cN-00019C-5l
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:30:51 +0000
Received: from sonata.ens-lyon.org (sonata.ens-lyon.org [140.77.166.138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a8bdc70e-4871-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 23:30:47 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 1077FA02D3;
 Mon, 22 Jul 2024 23:30:47 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id P3I1mg7LgkGu; Mon, 22 Jul 2024 23:30:46 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id E9A85A02CA;
 Mon, 22 Jul 2024 23:30:46 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98-RC3)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sW0cI-0000000Aa9g-2KYE; Mon, 22 Jul 2024 23:30:46 +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: a8bdc70e-4871-11ef-8776-851b0ebba9a2
Date: Mon, 22 Jul 2024 23:30:46 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 2/4] mini-os: mm: remove not needed struct chunk_tail_st
Message-ID: <20240722213046.3or2tuaipgggxyp4@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240722150141.31391-1-jgross@suse.com>
 <20240722150141.31391-3-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240722150141.31391-3-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le lun. 22 juil. 2024 17:01:39 +0200, a ecrit:
> The struct chunk_tail_st isn't really used other than writing to it.
> 
> Remove it in order to simplify the code.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

> ---
>  mm.c | 20 --------------------
>  1 file changed, 20 deletions(-)
> 
> diff --git a/mm.c b/mm.c
> index 1dcd954c..2cc49e94 100644
> --- a/mm.c
> +++ b/mm.c
> @@ -123,7 +123,6 @@ static void map_free(unsigned long first_page, unsigned long nr_pages)
>  /* BINARY BUDDY ALLOCATOR */
>  
>  typedef struct chunk_head_st chunk_head_t;
> -typedef struct chunk_tail_st chunk_tail_t;
>  
>  struct chunk_head_st {
>      chunk_head_t  *next;
> @@ -131,10 +130,6 @@ struct chunk_head_st {
>      int            level;
>  };
>  
> -struct chunk_tail_st {
> -    int level;
> -};
> -
>  /* Linked lists of free chunks of different powers-of-two in size. */
>  #define FREELIST_SIZE ((sizeof(void *) << 3) - PAGE_SHIFT)
>  static chunk_head_t *free_head[FREELIST_SIZE];
> @@ -151,7 +146,6 @@ static void init_page_allocator(unsigned long min, unsigned long max)
>      unsigned long range;
>      unsigned long r_min, r_max;
>      chunk_head_t *ch;
> -    chunk_tail_t *ct;
>  
>      printk("MM: Initialise page allocator for %lx(%lx)-%lx(%lx)\n",
>             (u_long)to_virt(min), min, (u_long)to_virt(max), max);
> @@ -215,14 +209,12 @@ static void init_page_allocator(unsigned long min, unsigned long max)
>              ch = (chunk_head_t *)r_min;
>              r_min += 1UL << i;
>              range -= 1UL << i;
> -            ct = (chunk_tail_t *)r_min - 1;
>              i -= PAGE_SHIFT;
>              ch->level       = i;
>              ch->next        = free_head[i];
>              ch->pprev       = &free_head[i];
>              ch->next->pprev = &ch->next;
>              free_head[i]    = ch;
> -            ct->level       = i;
>          }
>      }
>  
> @@ -234,7 +226,6 @@ unsigned long alloc_pages(int order)
>  {
>      int i;
>      chunk_head_t *alloc_ch, *spare_ch;
> -    chunk_tail_t            *spare_ct;
>  
>      if ( !chk_free_pages(1UL << order) )
>          goto no_memory;
> @@ -261,14 +252,11 @@ unsigned long alloc_pages(int order)
>          i--;
>          spare_ch = (chunk_head_t *)((char *)alloc_ch +
>                                      (1UL << (i + PAGE_SHIFT)));
> -        spare_ct = (chunk_tail_t *)((char *)spare_ch +
> -                                    (1UL << (i + PAGE_SHIFT))) - 1;
>  
>          /* Create new header for spare chunk. */
>          spare_ch->level = i;
>          spare_ch->next  = free_head[i];
>          spare_ch->pprev = &free_head[i];
> -        spare_ct->level = i;
>  
>          /* Link in the spare chunk. */
>          spare_ch->next->pprev = &spare_ch->next;
> @@ -289,7 +277,6 @@ EXPORT_SYMBOL(alloc_pages);
>  void free_pages(void *pointer, int order)
>  {
>      chunk_head_t *freed_ch, *to_merge_ch;
> -    chunk_tail_t *freed_ct;
>      unsigned long mask;
>  
>      /* First free the chunk */
> @@ -297,8 +284,6 @@ void free_pages(void *pointer, int order)
>  
>      /* Create free chunk */
>      freed_ch = (chunk_head_t *)pointer;
> -    freed_ct = (chunk_tail_t *)((char *)pointer +
> -                                (1UL << (order + PAGE_SHIFT))) - 1;
>  
>      /* Now, possibly we can conseal chunks together */
>      while ( order < FREELIST_SIZE )
> @@ -320,9 +305,6 @@ void free_pages(void *pointer, int order)
>              if ( allocated_in_map(virt_to_pfn(to_merge_ch)) ||
>                   to_merge_ch->level != order )
>                  break;
> -
> -            /* Merge with successor */
> -            freed_ct = (chunk_tail_t *)((char *)to_merge_ch + mask) - 1;
>          }
>  
>          /* We are committed to merging, unlink the chunk */
> @@ -336,8 +318,6 @@ void free_pages(void *pointer, int order)
>      freed_ch->level = order;
>      freed_ch->next  = free_head[order];
>      freed_ch->pprev = &free_head[order];
> -    freed_ct->level = order;
> -
>      freed_ch->next->pprev = &freed_ch->next;
>      free_head[order] = freed_ch;
>  
> -- 
> 2.43.0
> 

-- 
Samuel
/*
 * [...] Note that 120 sec is defined in the protocol as the maximum
 * possible RTT.  I guess we'll have to use something other than TCP
 * to talk to the University of Mars.
 * PAWS allows us longer timeouts and large windows, so once implemented
 * ftp to mars will work nicely.
 */
(from /usr/src/linux/net/inet/tcp.c, concerning RTT [retransmission timeout])


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:30:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:30:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762383.1172558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0cR-0001ji-Gh; Mon, 22 Jul 2024 21:30:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762383.1172558; Mon, 22 Jul 2024 21:30:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0cR-0001jZ-Dm; Mon, 22 Jul 2024 21:30:55 +0000
Received: by outflank-mailman (input) for mailman id 762383;
 Mon, 22 Jul 2024 21:30: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=z3Fi=OW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sW0cP-0001iW-Rl
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:30:53 +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 ab7fe684-4871-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 23:30:52 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 0A2AD60AC1;
 Mon, 22 Jul 2024 21:30:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 367D3C116B1;
 Mon, 22 Jul 2024 21:30: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: ab7fe684-4871-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721683850;
	bh=v2sonCVqGjpGXag0Jb6VPks8bVvtizl2cT0DH9S8f8I=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=M/gTu0O/fsCWf0yAF/e9ksNF7AtzQ8sI7IBf1Z26/uuvRpxVlQEDrfcHDlpY93t/X
	 SWWNHGELxFQVA+m5/tiqL+glkGbvsvMnNk9caLotyWGE/7I93AUe0TguFafW54ULGh
	 WXdFI1kaUsOi+1Ue+qSqDxWBUgohGR+xuYkgwKT10lKJXDxuh0TcQ4KY7WYEYVKVMb
	 AWlqHarMTeyeaQyUUvfBpA4igCZeDY2ZkeoNyjEE+j3xSEXqSZvpZ1Vg7euKo4z8o3
	 INhpJ+KxcPZesmlDwXSlG4p6DMStZd/l7k0BiC3p+W1phG0UHSmwsDbFhDPCgeDVqb
	 f+784j3Wm6I5g==
Date: Mon, 22 Jul 2024 14:30:47 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jiqian Chen <Jiqian.Chen@amd.com>
cc: Juergen Gross <jgross@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bjorn Helgaas <bhelgaas@google.com>, 
    "Rafael J . Wysocki" <rafael@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    xen-devel@lists.xenproject.org, linux-pci@vger.kernel.org, 
    linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, 
    Huang Rui <Ray.Huang@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v8 3/3] xen/privcmd: Add new syscall to get
 gsi from dev
In-Reply-To: <20240607075109.126277-4-Jiqian.Chen@amd.com>
Message-ID: <alpine.DEB.2.22.394.2407221430380.4857@ubuntu-linux-20-04-desktop>
References: <20240607075109.126277-1-Jiqian.Chen@amd.com> <20240607075109.126277-4-Jiqian.Chen@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, 7 Jun 2024, Jiqian Chen wrote:
> In PVH dom0, it uses the linux local interrupt mechanism,
> when it allocs irq for a gsi, it is dynamic, and follow
> the principle of applying first, distributing first. And
> the irq number is alloced from small to large, but the
> applying gsi number is not, may gsi 38 comes before gsi 28,
> it causes the irq number is not equal with the gsi number.
> And when passthrough a device, QEMU will use device's gsi
> number to do pirq mapping, but the gsi number is got from
> file /sys/bus/pci/devices/<sbdf>/irq, irq!= gsi, so it will
> fail when mapping.
> And in current linux codes, there is no method to get gsi
> for userspace.
> 
> For above purpose, record gsi of pcistub devices when init
> pcistub and add a new syscall into privcmd to let userspace
> can get gsi when they have a need.
> 
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

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


> ---
> RFC: it need review and need to wait for previous patch of this series to be merged.
> ---
>  drivers/xen/privcmd.c              | 28 ++++++++++++++++++++++
>  drivers/xen/xen-pciback/pci_stub.c | 38 +++++++++++++++++++++++++++---
>  include/uapi/xen/privcmd.h         |  7 ++++++
>  include/xen/acpi.h                 |  9 +++++++
>  4 files changed, 79 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
> index 67dfa4778864..5809b3168f25 100644
> --- a/drivers/xen/privcmd.c
> +++ b/drivers/xen/privcmd.c
> @@ -45,6 +45,9 @@
>  #include <xen/page.h>
>  #include <xen/xen-ops.h>
>  #include <xen/balloon.h>
> +#ifdef CONFIG_XEN_ACPI
> +#include <xen/acpi.h>
> +#endif
>  
>  #include "privcmd.h"
>  
> @@ -842,6 +845,27 @@ static long privcmd_ioctl_mmap_resource(struct file *file,
>  	return rc;
>  }
>  
> +static long privcmd_ioctl_gsi_from_dev(struct file *file, void __user *udata)
> +{
> +#ifdef CONFIG_XEN_ACPI
> +	struct privcmd_gsi_from_dev kdata;
> +
> +	if (copy_from_user(&kdata, udata, sizeof(kdata)))
> +		return -EFAULT;
> +
> +	kdata.gsi = pcistub_get_gsi_from_sbdf(kdata.sbdf);
> +	if (kdata.gsi == -1)
> +		return -EINVAL;
> +
> +	if (copy_to_user(udata, &kdata, sizeof(kdata)))
> +		return -EFAULT;
> +
> +	return 0;
> +#else
> +	return -EINVAL;
> +#endif
> +}
> +
>  #ifdef CONFIG_XEN_PRIVCMD_EVENTFD
>  /* Irqfd support */
>  static struct workqueue_struct *irqfd_cleanup_wq;
> @@ -1529,6 +1553,10 @@ static long privcmd_ioctl(struct file *file,
>  		ret = privcmd_ioctl_ioeventfd(file, udata);
>  		break;
>  
> +	case IOCTL_PRIVCMD_GSI_FROM_DEV:
> +		ret = privcmd_ioctl_gsi_from_dev(file, udata);
> +		break;
> +
>  	default:
>  		break;
>  	}
> diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
> index 6b22e45188f5..9d791d7a8098 100644
> --- a/drivers/xen/xen-pciback/pci_stub.c
> +++ b/drivers/xen/xen-pciback/pci_stub.c
> @@ -56,6 +56,9 @@ struct pcistub_device {
>  
>  	struct pci_dev *dev;
>  	struct xen_pcibk_device *pdev;/* non-NULL if struct pci_dev is in use */
> +#ifdef CONFIG_XEN_ACPI
> +	int gsi;
> +#endif
>  };
>  
>  /* Access to pcistub_devices & seized_devices lists and the initialize_devices
> @@ -88,6 +91,9 @@ static struct pcistub_device *pcistub_device_alloc(struct pci_dev *dev)
>  
>  	kref_init(&psdev->kref);
>  	spin_lock_init(&psdev->lock);
> +#ifdef CONFIG_XEN_ACPI
> +	psdev->gsi = -1;
> +#endif
>  
>  	return psdev;
>  }
> @@ -220,6 +226,25 @@ static struct pci_dev *pcistub_device_get_pci_dev(struct xen_pcibk_device *pdev,
>  	return pci_dev;
>  }
>  
> +#ifdef CONFIG_XEN_ACPI
> +int pcistub_get_gsi_from_sbdf(unsigned int sbdf)
> +{
> +	struct pcistub_device *psdev;
> +	int domain = (sbdf >> 16) & 0xffff;
> +	int bus = PCI_BUS_NUM(sbdf);
> +	int slot = PCI_SLOT(sbdf);
> +	int func = PCI_FUNC(sbdf);
> +
> +	psdev = pcistub_device_find(domain, bus, slot, func);
> +
> +	if (!psdev)
> +		return -1;
> +
> +	return psdev->gsi;
> +}
> +EXPORT_SYMBOL_GPL(pcistub_get_gsi_from_sbdf);
> +#endif
> +
>  struct pci_dev *pcistub_get_pci_dev_by_slot(struct xen_pcibk_device *pdev,
>  					    int domain, int bus,
>  					    int slot, int func)
> @@ -367,14 +392,20 @@ static int pcistub_match(struct pci_dev *dev)
>  	return found;
>  }
>  
> -static int pcistub_init_device(struct pci_dev *dev)
> +static int pcistub_init_device(struct pcistub_device *psdev)
>  {
>  	struct xen_pcibk_dev_data *dev_data;
> +	struct pci_dev *dev;
>  #ifdef CONFIG_XEN_ACPI
>  	int gsi, trigger, polarity;
>  #endif
>  	int err = 0;
>  
> +	if (!psdev)
> +		return -EINVAL;
> +
> +	dev = psdev->dev;
> +
>  	dev_dbg(&dev->dev, "initializing...\n");
>  
>  	/* The PCI backend is not intended to be a module (or to work with
> @@ -448,6 +479,7 @@ static int pcistub_init_device(struct pci_dev *dev)
>  		dev_err(&dev->dev, "Fail to get gsi info!\n");
>  		goto config_release;
>  	}
> +	psdev->gsi = gsi;
>  
>  	if (xen_initial_domain() && xen_pvh_domain()) {
>  		err = xen_pvh_setup_gsi(gsi, trigger, polarity);
> @@ -495,7 +527,7 @@ static int __init pcistub_init_devices_late(void)
>  
>  		spin_unlock_irqrestore(&pcistub_devices_lock, flags);
>  
> -		err = pcistub_init_device(psdev->dev);
> +		err = pcistub_init_device(psdev);
>  		if (err) {
>  			dev_err(&psdev->dev->dev,
>  				"error %d initializing device\n", err);
> @@ -565,7 +597,7 @@ static int pcistub_seize(struct pci_dev *dev,
>  		spin_unlock_irqrestore(&pcistub_devices_lock, flags);
>  
>  		/* don't want irqs disabled when calling pcistub_init_device */
> -		err = pcistub_init_device(psdev->dev);
> +		err = pcistub_init_device(psdev);
>  
>  		spin_lock_irqsave(&pcistub_devices_lock, flags);
>  
> diff --git a/include/uapi/xen/privcmd.h b/include/uapi/xen/privcmd.h
> index 8b8c5d1420fe..220e7670a113 100644
> --- a/include/uapi/xen/privcmd.h
> +++ b/include/uapi/xen/privcmd.h
> @@ -126,6 +126,11 @@ struct privcmd_ioeventfd {
>  	__u8 pad[2];
>  };
>  
> +struct privcmd_gsi_from_dev {
> +	__u32 sbdf;
> +	int gsi;
> +};
> +
>  /*
>   * @cmd: IOCTL_PRIVCMD_HYPERCALL
>   * @arg: &privcmd_hypercall_t
> @@ -157,5 +162,7 @@ struct privcmd_ioeventfd {
>  	_IOW('P', 8, struct privcmd_irqfd)
>  #define IOCTL_PRIVCMD_IOEVENTFD					\
>  	_IOW('P', 9, struct privcmd_ioeventfd)
> +#define IOCTL_PRIVCMD_GSI_FROM_DEV				\
> +	_IOC(_IOC_NONE, 'P', 10, sizeof(struct privcmd_gsi_from_dev))
>  
>  #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
> diff --git a/include/xen/acpi.h b/include/xen/acpi.h
> index 9b50027113f3..d6315fd559a9 100644
> --- a/include/xen/acpi.h
> +++ b/include/xen/acpi.h
> @@ -83,4 +83,13 @@ int xen_acpi_get_gsi_info(struct pci_dev *dev,
>  						  int *gsi_out,
>  						  int *trigger_out,
>  						  int *polarity_out);
> +
> +#ifdef CONFIG_XEN_PCI_STUB
> +int pcistub_get_gsi_from_sbdf(unsigned int sbdf);
> +#else
> +static inline int pcistub_get_gsi_from_sbdf(unsigned int sbdf)
> +{
> +	return -1;
> +}
> +#endif
>  #endif	/* _XEN_ACPI_H */
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:35:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:35:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762402.1172573 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0gN-0002jy-6r; Mon, 22 Jul 2024 21:34:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762402.1172573; Mon, 22 Jul 2024 21:34:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0gN-0002jr-4I; Mon, 22 Jul 2024 21:34:59 +0000
Received: by outflank-mailman (input) for mailman id 762402;
 Mon, 22 Jul 2024 21:34:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TuwE=OW=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sW0gL-0002hm-Te
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:34:57 +0000
Received: from sonata.ens-lyon.org (domu-toccata.ens-lyon.fr [140.77.166.138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3bd1147b-4872-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 23:34:54 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id BC607A02D3;
 Mon, 22 Jul 2024 23:34:53 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 0iNF4bzqf-Db; Mon, 22 Jul 2024 23:34:53 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id 9CB80A02CA;
 Mon, 22 Jul 2024 23:34:53 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98-RC3)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sW0gH-0000000AlLE-0xiA; Mon, 22 Jul 2024 23:34:53 +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: 3bd1147b-4872-11ef-8776-851b0ebba9a2
Date: Mon, 22 Jul 2024 23:34:53 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 3/4] mini-os: mm: reduce buddy allocator list
 administration data
Message-ID: <20240722213453.2seamcvsig5zkff3@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240722150141.31391-1-jgross@suse.com>
 <20240722150141.31391-4-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240722150141.31391-4-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le lun. 22 juil. 2024 17:01:40 +0200, a ecrit:
> Today the administration data for the buddy allocator's lists consists
> of 2 arrays: one pointer array and one list element array for easier
> handling of the lists' tails.
> 
> Those arrays can be combined into one by dropping the pointer array and
> using a different list end indicator.
> 
> Add enqueue and dequeue helpers for better readability.
> 
> Change the level member type to unsigned int.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

> ---
>  mm.c | 73 ++++++++++++++++++++++++++++--------------------------------
>  1 file changed, 34 insertions(+), 39 deletions(-)
> 
> diff --git a/mm.c b/mm.c
> index 2cc49e94..96686a5c 100644
> --- a/mm.c
> +++ b/mm.c
> @@ -125,16 +125,30 @@ static void map_free(unsigned long first_page, unsigned long nr_pages)
>  typedef struct chunk_head_st chunk_head_t;
>  
>  struct chunk_head_st {
> -    chunk_head_t  *next;
> -    chunk_head_t **pprev;
> -    int            level;
> +    chunk_head_t *next;
> +    chunk_head_t *prev;
> +    unsigned int  level;
>  };
>  
>  /* Linked lists of free chunks of different powers-of-two in size. */
>  #define FREELIST_SIZE ((sizeof(void *) << 3) - PAGE_SHIFT)
> -static chunk_head_t *free_head[FREELIST_SIZE];
> -static chunk_head_t  free_tail[FREELIST_SIZE];
> -#define FREELIST_EMPTY(_l) ((_l)->next == NULL)
> +static chunk_head_t  free_list[FREELIST_SIZE];
> +#define FREELIST_EMPTY(_l) ((_l)->level == FREELIST_SIZE)
> +
> +static void enqueue_elem(chunk_head_t *elem, unsigned int level)
> +{
> +    elem->level = level;
> +    elem->next = free_list[level].next;
> +    elem->prev = &free_list[level];
> +    elem->next->prev = elem;
> +    free_list[level].next = elem;
> +}
> +
> +static void dequeue_elem(chunk_head_t *elem)
> +{
> +    elem->prev->next = elem->next;
> +    elem->next->prev = elem->prev;
> +}
>  
>  /*
>   * Initialise allocator, placing addresses [@min,@max] in free pool.
> @@ -151,9 +165,9 @@ static void init_page_allocator(unsigned long min, unsigned long max)
>             (u_long)to_virt(min), min, (u_long)to_virt(max), max);
>      for ( i = 0; i < FREELIST_SIZE; i++ )
>      {
> -        free_head[i]       = &free_tail[i];
> -        free_tail[i].pprev = &free_head[i];
> -        free_tail[i].next  = NULL;
> +        free_list[i].next  = &free_list[i];
> +        free_list[i].prev  = &free_list[i];
> +        free_list[i].level = FREELIST_SIZE;
>      }
>  
>      min = round_pgup(min);
> @@ -209,12 +223,7 @@ static void init_page_allocator(unsigned long min, unsigned long max)
>              ch = (chunk_head_t *)r_min;
>              r_min += 1UL << i;
>              range -= 1UL << i;
> -            i -= PAGE_SHIFT;
> -            ch->level       = i;
> -            ch->next        = free_head[i];
> -            ch->pprev       = &free_head[i];
> -            ch->next->pprev = &ch->next;
> -            free_head[i]    = ch;
> +            enqueue_elem(ch, i - PAGE_SHIFT);
>          }
>      }
>  
> @@ -233,17 +242,16 @@ unsigned long alloc_pages(int order)
>      /* Find smallest order which can satisfy the request. */
>      for ( i = order; i < FREELIST_SIZE; i++ )
>      {
> -        if ( !FREELIST_EMPTY(free_head[i]) )
> +        if ( !FREELIST_EMPTY(free_list[i].next) )
>              break;
>      }
>  
> -    if ( i == FREELIST_SIZE )
> +    if ( i >= FREELIST_SIZE )
>          goto no_memory;
>  
>      /* Unlink a chunk. */
> -    alloc_ch = free_head[i];
> -    free_head[i] = alloc_ch->next;
> -    alloc_ch->next->pprev = alloc_ch->pprev;
> +    alloc_ch = free_list[i].next;
> +    dequeue_elem(alloc_ch);
>  
>      /* We may have to break the chunk a number of times. */
>      while ( i != order )
> @@ -254,13 +262,7 @@ unsigned long alloc_pages(int order)
>                                      (1UL << (i + PAGE_SHIFT)));
>  
>          /* Create new header for spare chunk. */
> -        spare_ch->level = i;
> -        spare_ch->next  = free_head[i];
> -        spare_ch->pprev = &free_head[i];
> -
> -        /* Link in the spare chunk. */
> -        spare_ch->next->pprev = &spare_ch->next;
> -        free_head[i] = spare_ch;
> +        enqueue_elem(spare_ch, i);
>      }
>  
>      map_alloc(PHYS_PFN(to_phys(alloc_ch)), 1UL << order);
> @@ -308,18 +310,13 @@ void free_pages(void *pointer, int order)
>          }
>  
>          /* We are committed to merging, unlink the chunk */
> -        *(to_merge_ch->pprev) = to_merge_ch->next;
> -        to_merge_ch->next->pprev = to_merge_ch->pprev;
> +        dequeue_elem(to_merge_ch);
>  
>          order++;
>      }
>  
>      /* Link the new chunk */
> -    freed_ch->level = order;
> -    freed_ch->next  = free_head[order];
> -    freed_ch->pprev = &free_head[order];
> -    freed_ch->next->pprev = &freed_ch->next;
> -    free_head[order] = freed_ch;
> +    enqueue_elem(freed_ch, order);
>  
>  }
>  EXPORT_SYMBOL(free_pages);
> @@ -405,13 +402,11 @@ void sanity_check(void)
>  
>      for ( x = 0; x < FREELIST_SIZE; x++ )
>      {
> -        for ( head = free_head[x]; !FREELIST_EMPTY(head); head = head->next )
> +        for ( head = free_list[x].next; !FREELIST_EMPTY(head);
> +              head = head->next )
>          {
>              ASSERT(!allocated_in_map(virt_to_pfn(head)));
> -            if ( head->next )
> -                ASSERT(head->next->pprev == &head->next);
> +            ASSERT(head->next->prev == head);
>          }
> -        if ( free_head[x] )
> -            ASSERT(free_head[x]->pprev == &free_head[x]);
>      }
>  }
> -- 
> 2.43.0
> 

-- 
Samuel
/*
 * [...] Note that 120 sec is defined in the protocol as the maximum
 * possible RTT.  I guess we'll have to use something other than TCP
 * to talk to the University of Mars.
 * PAWS allows us longer timeouts and large windows, so once implemented
 * ftp to mars will work nicely.
 */
(from /usr/src/linux/net/inet/tcp.c, concerning RTT [retransmission timeout])


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:35:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:35:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762414.1172585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0hC-0003Hb-Hg; Mon, 22 Jul 2024 21:35:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762414.1172585; Mon, 22 Jul 2024 21:35: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 1sW0hC-0003HO-Dh; Mon, 22 Jul 2024 21:35:50 +0000
Received: by outflank-mailman (input) for mailman id 762414;
 Mon, 22 Jul 2024 21: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=TuwE=OW=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sW0hB-0003Gj-Eu
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:35:49 +0000
Received: from sonata.ens-lyon.org (domu-toccata.ens-lyon.fr [140.77.166.138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5aa2eaa5-4872-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 23:35:45 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 7FBE3A02D3;
 Mon, 22 Jul 2024 23:35:45 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id KJFKTno6uo6F; Mon, 22 Jul 2024 23:35:45 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id 60FCFA02CA;
 Mon, 22 Jul 2024 23:35:45 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98-RC3)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sW0h6-0000000Ankn-4A6Z; Mon, 22 Jul 2024 23:35:44 +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: 5aa2eaa5-4872-11ef-8776-851b0ebba9a2
Date: Mon, 22 Jul 2024 23:35:44 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 4/4] mini-os: remove sanity_check()
Message-ID: <20240722213544.hjyohnoz4mtcfltr@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240722150141.31391-1-jgross@suse.com>
 <20240722150141.31391-5-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240722150141.31391-5-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le lun. 22 juil. 2024 17:01:41 +0200, a ecrit:
> Remove the sanity_check() function, as it is used nowhere.
> 
> Since any application linked with Mini-OS can't call sanity_check()
> either (there is no EXPORT_SYMBOL for it), there is zero chance of
> breaking any use case.

Don't we still want to keep it around, at least as formal documentation
of the expected status of the list?

Samuel

> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  include/lib.h |  3 ---
>  mm.c          | 16 ----------------
>  2 files changed, 19 deletions(-)
> 
> diff --git a/include/lib.h b/include/lib.h
> index abd4e9ab..acd4acc6 100644
> --- a/include/lib.h
> +++ b/include/lib.h
> @@ -152,9 +152,6 @@ do {                                                           \
>  
>  #define BUG_ON(x) ASSERT(!(x))
>  
> -/* Consistency check as much as possible. */
> -void sanity_check(void);
> -
>  /* Get own domid. */
>  domid_t get_domid(void);
>  
> diff --git a/mm.c b/mm.c
> index 96686a5c..1fa7e7bf 100644
> --- a/mm.c
> +++ b/mm.c
> @@ -394,19 +394,3 @@ void init_mm(void)
>  void fini_mm(void)
>  {
>  }
> -
> -void sanity_check(void)
> -{
> -    int x;
> -    chunk_head_t *head;
> -
> -    for ( x = 0; x < FREELIST_SIZE; x++ )
> -    {
> -        for ( head = free_list[x].next; !FREELIST_EMPTY(head);
> -              head = head->next )
> -        {
> -            ASSERT(!allocated_in_map(virt_to_pfn(head)));
> -            ASSERT(head->next->prev == head);
> -        }
> -    }
> -}
> -- 
> 2.43.0
> 

-- 
Samuel
/*
 * [...] Note that 120 sec is defined in the protocol as the maximum
 * possible RTT.  I guess we'll have to use something other than TCP
 * to talk to the University of Mars.
 * PAWS allows us longer timeouts and large windows, so once implemented
 * ftp to mars will work nicely.
 */
(from /usr/src/linux/net/inet/tcp.c, concerning RTT [retransmission timeout])


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:37:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:37:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762433.1172596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0j2-0004EO-RW; Mon, 22 Jul 2024 21:37:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762433.1172596; Mon, 22 Jul 2024 21:37:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0j2-0004EH-Oy; Mon, 22 Jul 2024 21:37:44 +0000
Received: by outflank-mailman (input) for mailman id 762433;
 Mon, 22 Jul 2024 21:37:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z3Fi=OW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sW0j1-0004EB-PH
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:37:43 +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 9ff4a2ad-4872-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 23:37: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 542BF60AD1;
 Mon, 22 Jul 2024 21:37:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48C01C4AF0A;
 Mon, 22 Jul 2024 21:37:38 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9ff4a2ad-4872-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721684261;
	bh=gA7tTL5ipTj9Gr7tb6EhoUOMIQE20/6WSCx8mc/wMbQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=bHFmqUAXTXbNVWSY6/IN1syUhfIs+FzmfKnxqm+YBUpzPz32KWd8wv2Oya++A+Qy2
	 noAJBv3wCoDSNO68sBgpj5Aq43k1Bhaa0oSObmi2nZzE0t0JULtqoD0vrHH+fd5HSU
	 wpe88x48RdoQILsFCgQgFjgb/m0YkBZ2vOr6piRK3hewjQW7b+U68+BMKKp9yhJ5o1
	 vxJQZhK9ox98PLykURTwAc/JGUP30ERBktAOOM16t0bl8FspOUocaju8nT3Anl5Bc3
	 CrXzcmRjqTjcEZxMPVktFF0JXzDaB43IZGFu3p6dL5B06gDmlmulbGuPjVo1xira9s
	 w0JpcicBla7lw==
Date: Mon, 22 Jul 2024 14:37:37 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jiqian Chen <Jiqian.Chen@amd.com>
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>, 
    Wei Liu <wl@xen.org>, George Dunlap <gwd@xenproject.org>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, 
    "Daniel P . Smith" <dpsmith@apertussolutions.com>, 
    Stewart Hildebrand <Stewart.Hildebrand@amd.com>, 
    Huang Rui <ray.huang@amd.com>
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is
 PVH
In-Reply-To: <20240708114124.407797-3-Jiqian.Chen@amd.com>
Message-ID: <alpine.DEB.2.22.394.2407221437280.4857@ubuntu-linux-20-04-desktop>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com> <20240708114124.407797-3-Jiqian.Chen@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, 8 Jul 2024, Jiqian Chen wrote:
> If run Xen with PVH dom0 and hvm domU, hvm will map a pirq for
> a passthrough device by using gsi, see qemu code
> xen_pt_realize->xc_physdev_map_pirq and libxl code
> pci_add_dm_done->xc_physdev_map_pirq. Then xc_physdev_map_pirq
> will call into Xen, but in hvm_physdev_op, PHYSDEVOP_map_pirq
> is not allowed because currd is PVH dom0 and PVH has no
> X86_EMU_USE_PIRQ flag, it will fail at has_pirq check.
> 
> So, allow PHYSDEVOP_map_pirq when dom0 is PVH and also allow
> PHYSDEVOP_unmap_pirq for the removal device path to unmap pirq.
> And add a new check to prevent (un)map when the subject domain
> doesn't have a notion of PIRQ.
> 
> So that the interrupt of a passthrough device can be
> successfully mapped to pirq for domU with a notion of PIRQ
> when dom0 is PVH
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:38:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:38:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762440.1172606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0jv-0004kP-3C; Mon, 22 Jul 2024 21:38:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762440.1172606; Mon, 22 Jul 2024 21:38: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 1sW0jv-0004kI-0b; Mon, 22 Jul 2024 21:38:39 +0000
Received: by outflank-mailman (input) for mailman id 762440;
 Mon, 22 Jul 2024 21:38: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=z3Fi=OW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sW0jt-0004aQ-CV
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:38:37 +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 bf72c1dc-4872-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 23:38:35 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 3818B60347;
 Mon, 22 Jul 2024 21:38:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 468A4C116B1;
 Mon, 22 Jul 2024 21:38: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: bf72c1dc-4872-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721684313;
	bh=tXQrIb3VEeHB3STEH5LnCuga4yuSW0LDWlS7Ce5x9EM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=KGRTwxXkBmT/2FxHqzLl+jKrJdETyZShq9CcBbJmWDE06WUvsWXDKLFOQL0Y9zKWn
	 8QzRJGFFrts1nDbvCda/MkohOSHICg9lQ+z8vJRPbBWnAjtvbgR3Wxy8dGSyD6onHI
	 TrTCEw/8iXTK5MRJ7oSVqJnQ2+usG2DJc2lrOHJGb+zZ0cCFPRUcjKzXaxyYmdkJRA
	 LoQq25g7y+bAGNFK5vxF+gewCSxdTV+jp/5HE4ghw3SmM6jxd0fo/sDN684+x2AaSd
	 xHbBSQtMX+Q/IR3ijaJavsBQu4OSnnEb/f4EdrBt5BkSuXJmEetSUanwBSzxpKs4Lj
	 BbJpalRTCMkrQ==
Date: Mon, 22 Jul 2024 14:38:31 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jiqian Chen <Jiqian.Chen@amd.com>
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>, 
    Wei Liu <wl@xen.org>, George Dunlap <gwd@xenproject.org>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, 
    "Daniel P . Smith" <dpsmith@apertussolutions.com>, 
    Stewart Hildebrand <Stewart.Hildebrand@amd.com>, 
    Huang Rui <ray.huang@amd.com>
Subject: Re: [XEN PATCH v12 3/7] x86/pvh: Add PHYSDEVOP_setup_gsi for PVH
 dom0
In-Reply-To: <20240708114124.407797-4-Jiqian.Chen@amd.com>
Message-ID: <alpine.DEB.2.22.394.2407221438230.4857@ubuntu-linux-20-04-desktop>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com> <20240708114124.407797-4-Jiqian.Chen@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, 8 Jul 2024, Jiqian Chen wrote:
> The gsi of a passthrough device must be configured for it to be
> able to be mapped into a hvm domU.
> But When dom0 is PVH, the gsis may not get registered(see below
> clarification), it causes the info of apic, pin and irq not be
> added into irq_2_pin list, and the handler of irq_desc is not set,
> then when passthrough a device, setting ioapic affinity and vector
> will fail.
> 
> To fix above problem, on Linux kernel side, a new code will
> need to call PHYSDEVOP_setup_gsi for passthrough devices to
> register gsi when dom0 is PVH.
> 
> So, add PHYSDEVOP_setup_gsi into hvm_physdev_op for above
> purpose.
> 
> Clarify two questions:
> First, why the gsi of devices belong to PVH dom0 can work?
> Because when probe a driver to a normal device, it uses the normal
> probe function of pci device, in its callstack, it requests irq
> and unmask corresponding ioapic of gsi, then trap into xen and
> register gsi finally.
> Callstack is(on linux kernel side) pci_device_probe->
> request_threaded_irq-> irq_startup-> __unmask_ioapic->
> io_apic_write, then trap into xen hvmemul_do_io->
> hvm_io_intercept-> hvm_process_io_intercept->
> vioapic_write_indirect-> vioapic_hwdom_map_gsi-> mp_register_gsi.
> So that the gsi can be registered.
> 
> Second, why the gsi of passthrough device can't work when dom0
> is PVH?
> Because when assign a device to passthrough, it uses the specific
> probe function of pciback, in its callstack, it doesn't install a
> fake irq handler due to the ISR is not running. So that
> mp_register_gsi on Xen side is never called, then the gsi is not
> registered.
> Callstack is(on linux kernel side) pcistub_probe->pcistub_seize->
> pcistub_init_device-> xen_pcibk_reset_device->
> xen_pcibk_control_isr->isr_on==0.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

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


> ---
>  xen/arch/x86/hvm/hypercall.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
> index 03ada3c880bd..cfe82d0f96ed 100644
> --- a/xen/arch/x86/hvm/hypercall.c
> +++ b/xen/arch/x86/hvm/hypercall.c
> @@ -86,6 +86,7 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>              return -ENOSYS;
>          break;
>  
> +    case PHYSDEVOP_setup_gsi:
>      case PHYSDEVOP_pci_mmcfg_reserved:
>      case PHYSDEVOP_pci_device_add:
>      case PHYSDEVOP_pci_device_remove:
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:43:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:43:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762449.1172620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0on-0006Ha-Lt; Mon, 22 Jul 2024 21:43:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762449.1172620; Mon, 22 Jul 2024 21:43: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 1sW0on-0006HT-JI; Mon, 22 Jul 2024 21:43:41 +0000
Received: by outflank-mailman (input) for mailman id 762449;
 Mon, 22 Jul 2024 21:43:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TuwE=OW=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sW0om-0006FZ-GP
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:43:40 +0000
Received: from sonata.ens-lyon.org (domu-toccata.ens-lyon.fr [140.77.166.138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 733011c9-4873-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 23:43:36 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 23556A02D3;
 Mon, 22 Jul 2024 23:43:36 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id O2fIxkPsJrLC; Mon, 22 Jul 2024 23:43:36 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id 041FCA02CA;
 Mon, 22 Jul 2024 23:43:36 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98-RC3)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sW0oh-0000000B70A-2UUt; Mon, 22 Jul 2024 23:43:35 +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: 733011c9-4873-11ef-8776-851b0ebba9a2
Date: Mon, 22 Jul 2024 23:43:35 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 1/3] mini-os: apply coding style to arch/x86/time.c
Message-ID: <20240722214335.cb2spwsgacs43w55@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240722121643.18116-1-jgross@suse.com>
 <20240722121643.18116-2-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240722121643.18116-2-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le lun. 22 juil. 2024 14:16:41 +0200, a ecrit:
> Apply the preferred coding style to arch/x86/time.c.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

> ---
>  arch/x86/time.c | 194 +++++++++++++++++++++++-------------------------
>  1 file changed, 93 insertions(+), 101 deletions(-)
> 
> diff --git a/arch/x86/time.c b/arch/x86/time.c
> index 332c0260..a473a9e1 100644
> --- a/arch/x86/time.c
> +++ b/arch/x86/time.c
> @@ -1,7 +1,7 @@
>  /* -*-  Mode:C; c-basic-offset:4; tab-width:4 -*-
>   ****************************************************************************
>   * (C) 2003 - Rolf Neugebauer - Intel Research Cambridge
> - * (C) 2002-2003 - Keir Fraser - University of Cambridge 
> + * (C) 2002-2003 - Keir Fraser - University of Cambridge
>   * (C) 2005 - Grzegorz Milos - Intel Research Cambridge
>   * (C) 2006 - Robert Kaiser - FH Wiesbaden
>   ****************************************************************************
> @@ -18,20 +18,19 @@
>   * rights to use, copy, modify, merge, publish, distribute, sublicense, and/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 
> + *
> + * 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.
>   */
>  
> -
>  #include <mini-os/os.h>
>  #include <mini-os/traps.h>
>  #include <mini-os/types.h>
> @@ -46,44 +45,43 @@
>  
>  /* These are peridically updated in shared_info, and then copied here. */
>  struct shadow_time_info {
> -	uint64_t tsc_timestamp;     /* TSC at last update of time vals.  */
> -	uint64_t system_timestamp;  /* Time, in nanosecs, since boot.    */
> -	uint32_t tsc_to_nsec_mul;
> -	uint32_t tsc_to_usec_mul;
> -	int tsc_shift;
> -	uint32_t version;
> +    uint64_t tsc_timestamp;     /* TSC at last update of time vals.  */
> +    uint64_t system_timestamp;  /* Time, in nanosecs, since boot.    */
> +    uint32_t tsc_to_nsec_mul;
> +    uint32_t tsc_to_usec_mul;
> +    int tsc_shift;
> +    uint32_t version;
>  };
>  static struct timespec shadow_ts;
>  static uint32_t shadow_ts_version;
>  
>  static struct shadow_time_info shadow;
>  
> -
>  #ifndef rmb
> -#define rmb()  __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory")
> +#define rmb()  __asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory")
>  #endif
>  
> -#define HANDLE_USEC_OVERFLOW(_tv)          \
> -    do {                                   \
> +#define HANDLE_USEC_OVERFLOW(_tv)           \
> +    do {                                    \
>          while ( (_tv)->tv_usec >= 1000000 ) \
> -        {                                  \
> +        {                                   \
>              (_tv)->tv_usec -= 1000000;      \
>              (_tv)->tv_sec++;                \
> -        }                                  \
> +        }                                   \
>      } while ( 0 )
>  
>  static inline int time_values_up_to_date(void)
>  {
> -	struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time; 
> +    struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
>  
> -	return (shadow.version == src->version);
> +    return shadow.version == src->version;
>  }
>  
>  static inline int wc_values_up_to_date(void)
>  {
> -	shared_info_t *s= HYPERVISOR_shared_info;
> +    shared_info_t *s = HYPERVISOR_shared_info;
>  
> -	return (shadow_ts_version == s->wc_version);
> +    return shadow_ts_version == s->wc_version;
>  }
>  
>  /*
> @@ -92,109 +90,104 @@ static inline int wc_values_up_to_date(void)
>   */
>  static inline uint64_t scale_delta(uint64_t delta, uint32_t mul_frac, int shift)
>  {
> -	uint64_t product;
> +    uint64_t product;
>  #ifdef __i386__
> -	uint32_t tmp1, tmp2;
> +    uint32_t tmp1, tmp2;
>  #endif
>  
> -	if ( shift < 0 )
> -		delta >>= -shift;
> -	else
> -		delta <<= shift;
> +    if ( shift < 0 )
> +        delta >>= -shift;
> +    else
> +        delta <<= shift;
>  
>  #ifdef __i386__
> -	__asm__ (
> -		"mul  %5       ; "
> -		"mov  %4,%%eax ; "
> -		"mov  %%edx,%4 ; "
> -		"mul  %5       ; "
> -		"add  %4,%%eax ; "
> -		"xor  %5,%5    ; "
> -		"adc  %5,%%edx ; "
> -		: "=A" (product), "=r" (tmp1), "=r" (tmp2)
> -		: "a" ((uint32_t)delta), "1" ((uint32_t)(delta >> 32)), "2" (mul_frac) );
> +    __asm__ (
> +        "mul  %5       ; "
> +        "mov  %4,%%eax ; "
> +        "mov  %%edx,%4 ; "
> +        "mul  %5       ; "
> +        "add  %4,%%eax ; "
> +        "xor  %5,%5    ; "
> +        "adc  %5,%%edx ; "
> +        : "=A" (product), "=r" (tmp1), "=r" (tmp2)
> +        : "a" ((uint32_t)delta), "1" ((uint32_t)(delta >> 32)), "2" (mul_frac) );
>  #else
> -	__asm__ (
> -		"mul %%rdx ; shrd $32,%%rdx,%%rax"
> -		: "=a" (product) : "0" (delta), "d" ((uint64_t)mul_frac) );
> +    __asm__ (
> +        "mul %%rdx ; shrd $32,%%rdx,%%rax"
> +        : "=a" (product) : "0" (delta), "d" ((uint64_t)mul_frac) );
>  #endif
>  
> -	return product;
> +    return product;
>  }
>  
> -
>  static unsigned long get_nsec_offset(void)
>  {
> -	uint64_t now, delta;
> -	rdtscll(now);
> -	delta = now - shadow.tsc_timestamp;
> -	return scale_delta(delta, shadow.tsc_to_nsec_mul, shadow.tsc_shift);
> -}
> +    uint64_t now, delta;
>  
> +    rdtscll(now);
> +    delta = now - shadow.tsc_timestamp;
> +
> +    return scale_delta(delta, shadow.tsc_to_nsec_mul, shadow.tsc_shift);
> +}
>  
>  static void get_time_values_from_xen(void)
>  {
> -	struct vcpu_time_info    *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
> -
> - 	do {
> -		shadow.version = src->version;
> -		rmb();
> -		shadow.tsc_timestamp     = src->tsc_timestamp;
> -		shadow.system_timestamp  = src->system_time;
> -		shadow.tsc_to_nsec_mul   = src->tsc_to_system_mul;
> -		shadow.tsc_shift         = src->tsc_shift;
> -		rmb();
> -	}
> -	while ((src->version & 1) | (shadow.version ^ src->version));
> -
> -	shadow.tsc_to_usec_mul = shadow.tsc_to_nsec_mul / 1000;
> +    struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
> +
> +    do {
> +        shadow.version = src->version;
> +        rmb();
> +        shadow.tsc_timestamp     = src->tsc_timestamp;
> +        shadow.system_timestamp  = src->system_time;
> +        shadow.tsc_to_nsec_mul   = src->tsc_to_system_mul;
> +        shadow.tsc_shift         = src->tsc_shift;
> +        rmb();
> +    } while ( (src->version & 1) | (shadow.version ^ src->version) );
> +
> +    shadow.tsc_to_usec_mul = shadow.tsc_to_nsec_mul / 1000;
>  }
>  
> -
> -
> -
> -/* monotonic_clock(): returns # of nanoseconds passed since time_init()
> - *		Note: This function is required to return accurate
> - *		time even in the absence of multiple timer ticks.
> +/*
> + * monotonic_clock(): returns # of nanoseconds passed since time_init()
> + *        Note: This function is required to return accurate
> + *        time even in the absence of multiple timer ticks.
>   */
>  uint64_t monotonic_clock(void)
>  {
> -	uint64_t time;
> -	uint32_t local_time_version;
> -
> -	do {
> -		local_time_version = shadow.version;
> -		rmb();
> -		time = shadow.system_timestamp + get_nsec_offset();
> -		if (!time_values_up_to_date())
> -			get_time_values_from_xen();
> -		rmb();
> -	} while (local_time_version != shadow.version);
> -
> -	return time;
> +    uint64_t time;
> +    uint32_t local_time_version;
> +
> +    do {
> +        local_time_version = shadow.version;
> +        rmb();
> +        time = shadow.system_timestamp + get_nsec_offset();
> +        if ( !time_values_up_to_date() )
> +            get_time_values_from_xen();
> +        rmb();
> +    } while ( local_time_version != shadow.version );
> +
> +    return time;
>  }
>  
>  static void update_wallclock(void)
>  {
> -	shared_info_t *s = HYPERVISOR_shared_info;
> -
> -	do {
> -		shadow_ts_version = s->wc_version;
> -		rmb();
> -		shadow_ts.tv_sec  = s->wc_sec;
> -		shadow_ts.tv_nsec = s->wc_nsec;
> -		rmb();
> -	}
> -	while ((s->wc_version & 1) | (shadow_ts_version ^ s->wc_version));
> +    shared_info_t *s = HYPERVISOR_shared_info;
> +
> +    do {
> +        shadow_ts_version = s->wc_version;
> +        rmb();
> +        shadow_ts.tv_sec  = s->wc_sec;
> +        shadow_ts.tv_nsec = s->wc_nsec;
> +        rmb();
> +    } while ( (s->wc_version & 1) | (shadow_ts_version ^ s->wc_version) );
>  }
>  
> -
>  int gettimeofday(struct timeval *tv, void *tz)
>  {
>      uint64_t nsec = monotonic_clock();
>  
> -    if (!wc_values_up_to_date())
> -	update_wallclock();
> +    if ( !wc_values_up_to_date() )
> +        update_wallclock();
>  
>      nsec += shadow_ts.tv_nsec;
>  
> @@ -209,7 +202,7 @@ EXPORT_SYMBOL(gettimeofday);
>  void block_domain(s_time_t until)
>  {
>      ASSERT(irqs_disabled());
> -    if(monotonic_clock() < until)
> +    if ( monotonic_clock() < until )
>      {
>          HYPERVISOR_set_timer_op(until);
>  #ifdef CONFIG_PARAVIRT
> @@ -228,9 +221,8 @@ static void timer_handler(evtchn_port_t ev, struct pt_regs *regs, void *ign)
>      HYPERVISOR_set_timer_op(monotonic_clock() + MILLISECS(1));
>  }
>  
> -
> -
>  static evtchn_port_t port;
> +
>  void init_time(void)
>  {
>      port = bind_virq(VIRQ_TIMER, &timer_handler, NULL);
> -- 
> 2.43.0
> 

-- 
Samuel
"I don't know why, but first C programs tend to look a lot worse than
first programs in any other language (maybe except for fortran, but then
I suspect all fortran programs look like `firsts')"
(By Olaf Kirch)


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:45:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:45:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762463.1172635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0qm-0006xK-7R; Mon, 22 Jul 2024 21:45:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762463.1172635; Mon, 22 Jul 2024 21:45:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0qm-0006x9-3v; Mon, 22 Jul 2024 21:45:44 +0000
Received: by outflank-mailman (input) for mailman id 762463;
 Mon, 22 Jul 2024 21:45: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=TuwE=OW=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sW0qk-0006ux-T1
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:45:42 +0000
Received: from sonata.ens-lyon.org (sonata.ens-lyon.org [140.77.166.138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bd9d1726-4873-11ef-bbfe-fd08da9f4363;
 Mon, 22 Jul 2024 23:45:41 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 1183EA02D3;
 Mon, 22 Jul 2024 23:45:41 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id GJUrgj4RGxnl; Mon, 22 Jul 2024 23:45:40 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id EA9A4A02CA;
 Mon, 22 Jul 2024 23:45:40 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98-RC3)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sW0qi-0000000BCk4-21vI; Mon, 22 Jul 2024 23:45:40 +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: bd9d1726-4873-11ef-bbfe-fd08da9f4363
Date: Mon, 22 Jul 2024 23:45:40 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 2/3] mini-os: remove some not needed stuff from
 arch/x86/time.c
Message-ID: <20240722214540.2stt5dzsw7ywltbf@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240722121643.18116-1-jgross@suse.com>
 <20240722121643.18116-3-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240722121643.18116-3-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le lun. 22 juil. 2024 14:16:42 +0200, a ecrit:
> Remove unused or not needed stuff from arch/x86/time.c.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

> ---
>  arch/x86/time.c | 16 ----------------
>  1 file changed, 16 deletions(-)
> 
> diff --git a/arch/x86/time.c b/arch/x86/time.c
> index a473a9e1..7fd7abef 100644
> --- a/arch/x86/time.c
> +++ b/arch/x86/time.c
> @@ -48,7 +48,6 @@ struct shadow_time_info {
>      uint64_t tsc_timestamp;     /* TSC at last update of time vals.  */
>      uint64_t system_timestamp;  /* Time, in nanosecs, since boot.    */
>      uint32_t tsc_to_nsec_mul;
> -    uint32_t tsc_to_usec_mul;
>      int tsc_shift;
>      uint32_t version;
>  };
> @@ -57,19 +56,6 @@ static uint32_t shadow_ts_version;
>  
>  static struct shadow_time_info shadow;
>  
> -#ifndef rmb
> -#define rmb()  __asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory")
> -#endif
> -
> -#define HANDLE_USEC_OVERFLOW(_tv)           \
> -    do {                                    \
> -        while ( (_tv)->tv_usec >= 1000000 ) \
> -        {                                   \
> -            (_tv)->tv_usec -= 1000000;      \
> -            (_tv)->tv_sec++;                \
> -        }                                   \
> -    } while ( 0 )
> -
>  static inline int time_values_up_to_date(void)
>  {
>      struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
> @@ -143,8 +129,6 @@ static void get_time_values_from_xen(void)
>          shadow.tsc_shift         = src->tsc_shift;
>          rmb();
>      } while ( (src->version & 1) | (shadow.version ^ src->version) );
> -
> -    shadow.tsc_to_usec_mul = shadow.tsc_to_nsec_mul / 1000;
>  }
>  
>  /*
> -- 
> 2.43.0
> 

-- 
Samuel
"I don't know why, but first C programs tend to look a lot worse than
first programs in any other language (maybe except for fortran, but then
I suspect all fortran programs look like `firsts')"
(By Olaf Kirch)


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 21:53:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 21:53:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762483.1172645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW0yA-0000YT-Tx; Mon, 22 Jul 2024 21:53:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762483.1172645; Mon, 22 Jul 2024 21: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 1sW0yA-0000YM-RF; Mon, 22 Jul 2024 21:53:22 +0000
Received: by outflank-mailman (input) for mailman id 762483;
 Mon, 22 Jul 2024 21:53: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=TuwE=OW=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sW0yA-0000YB-0h
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 21:53:22 +0000
Received: from sonata.ens-lyon.org (domu-toccata.ens-lyon.fr [140.77.166.138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce583c1b-4874-11ef-8776-851b0ebba9a2;
 Mon, 22 Jul 2024 23:53:18 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 8E6C2A02D3;
 Mon, 22 Jul 2024 23:53:18 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 4i9YF_Rbm8jg; Mon, 22 Jul 2024 23:53:18 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id 6FA4DA02CA;
 Mon, 22 Jul 2024 23:53:18 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98-RC3)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sW0y5-0000000BETl-3tdS; Mon, 22 Jul 2024 23:53:17 +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: ce583c1b-4874-11ef-8776-851b0ebba9a2
Date: Mon, 22 Jul 2024 23:53:17 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 3/3] mini-os: simplify monotonic_clock()
Message-ID: <20240722215317.sbtvdr6wpfe4qz7r@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240722121643.18116-1-jgross@suse.com>
 <20240722121643.18116-4-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240722121643.18116-4-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le lun. 22 juil. 2024 14:16:43 +0200, a ecrit:
> monotonic_clock() in arch/x86/time.c is more complex than needed: it
> has basically two nested loops making sure the time data obtained from
> Xen are valid.
> 
> Simplify that by merging some of the used sub-functions into the main
> function and using only a single loop. Further simplify the code by
> using struct vcpu_time_info for the local instance instead of defining
> a similar structure in the code.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

> ---
>  arch/x86/time.c | 58 ++++++++++++++-----------------------------------
>  1 file changed, 16 insertions(+), 42 deletions(-)
> 
> diff --git a/arch/x86/time.c b/arch/x86/time.c
> index 7fd7abef..52916e15 100644
> --- a/arch/x86/time.c
> +++ b/arch/x86/time.c
> @@ -44,24 +44,10 @@
>   *************************************************************************/
>  
>  /* These are peridically updated in shared_info, and then copied here. */
> -struct shadow_time_info {
> -    uint64_t tsc_timestamp;     /* TSC at last update of time vals.  */
> -    uint64_t system_timestamp;  /* Time, in nanosecs, since boot.    */
> -    uint32_t tsc_to_nsec_mul;
> -    int tsc_shift;
> -    uint32_t version;
> -};
>  static struct timespec shadow_ts;
>  static uint32_t shadow_ts_version;
>  
> -static struct shadow_time_info shadow;
> -
> -static inline int time_values_up_to_date(void)
> -{
> -    struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
> -
> -    return shadow.version == src->version;
> -}
> +static struct vcpu_time_info shadow;
>  
>  static inline int wc_values_up_to_date(void)
>  {
> @@ -113,22 +99,7 @@ static unsigned long get_nsec_offset(void)
>      rdtscll(now);
>      delta = now - shadow.tsc_timestamp;
>  
> -    return scale_delta(delta, shadow.tsc_to_nsec_mul, shadow.tsc_shift);
> -}
> -
> -static void get_time_values_from_xen(void)
> -{
> -    struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
> -
> -    do {
> -        shadow.version = src->version;
> -        rmb();
> -        shadow.tsc_timestamp     = src->tsc_timestamp;
> -        shadow.system_timestamp  = src->system_time;
> -        shadow.tsc_to_nsec_mul   = src->tsc_to_system_mul;
> -        shadow.tsc_shift         = src->tsc_shift;
> -        rmb();
> -    } while ( (src->version & 1) | (shadow.version ^ src->version) );
> +    return scale_delta(delta, shadow.tsc_to_system_mul, shadow.tsc_shift);
>  }
>  
>  /*
> @@ -138,19 +109,22 @@ static void get_time_values_from_xen(void)
>   */
>  uint64_t monotonic_clock(void)
>  {
> -    uint64_t time;
> -    uint32_t local_time_version;
> +    struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time;
>  
> -    do {
> -        local_time_version = shadow.version;
> -        rmb();
> -        time = shadow.system_timestamp + get_nsec_offset();
> -        if ( !time_values_up_to_date() )
> -            get_time_values_from_xen();
> -        rmb();
> -    } while ( local_time_version != shadow.version );
> +    if ( shadow.version != src->version )
> +    {
> +        do {
> +            shadow.version = src->version;
> +            rmb();
> +            shadow.tsc_timestamp     = src->tsc_timestamp;
> +            shadow.system_time       = src->system_time;
> +            shadow.tsc_to_system_mul = src->tsc_to_system_mul;
> +            shadow.tsc_shift         = src->tsc_shift;
> +            rmb();
> +        } while ( (src->version & 1) || (shadow.version != src->version) );
> +    }
>  
> -    return time;
> +    return shadow.system_time + get_nsec_offset();
>  }
>  
>  static void update_wallclock(void)
> -- 
> 2.43.0
> 

-- 
Samuel
"I don't know why, but first C programs tend to look a lot worse than
first programs in any other language (maybe except for fortran, but then
I suspect all fortran programs look like `firsts')"
(By Olaf Kirch)


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 22:10:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 22:10:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762497.1172658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW1Em-0003pT-Ai; Mon, 22 Jul 2024 22:10:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762497.1172658; Mon, 22 Jul 2024 22: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 1sW1Em-0003pM-89; Mon, 22 Jul 2024 22:10:32 +0000
Received: by outflank-mailman (input) for mailman id 762497;
 Mon, 22 Jul 2024 22:10:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z3Fi=OW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sW1Ek-0003pG-S5
 for xen-devel@lists.xenproject.org; Mon, 22 Jul 2024 22:10:30 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 335aee86-4877-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 00:10:28 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id CCD30CE0B11;
 Mon, 22 Jul 2024 22:10:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4DBE9C116B1;
 Mon, 22 Jul 2024 22:10: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: 335aee86-4877-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721686224;
	bh=jiBY1x0XRDdteK+1eAi0Ug1rqeicw82ku9SrGsK8GC0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kZpQGqeE17HOi2FdecvHq94Wyspe0RHTL0dhZBBDqWRQdhRJEVzVTDtrFjTIHJsGn
	 hx5qwOlD1olQQoPrKgkXpoWptuI5xWafuw25Wrc69/IIlbP35vutjGe4nCDECyOBwK
	 KSd7MNuh1i2TrTEYFsyxf4WTb5Hf46aUO2otVQb2lgKoNXIucUQb1qQlRtbtb0kjog
	 HjNOEw9Hbckd+1CcNCxglC885VK0XLfUI7/fQLQt34BrF8YctgDYKaJ9SN+pmOuchI
	 ofOJhiJJdCQdDk8lIKhClOsmXmd1eJjUdBshjhHWEu1CZ+JtgEu2z6Pslt+dbVS0BY
	 s8oDldLT0fKkQ==
Date: Mon, 22 Jul 2024 15:10:21 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jiqian Chen <Jiqian.Chen@amd.com>
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>, 
    Wei Liu <wl@xen.org>, George Dunlap <gwd@xenproject.org>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, 
    "Daniel P . Smith" <dpsmith@apertussolutions.com>, 
    Stewart Hildebrand <Stewart.Hildebrand@amd.com>, 
    Huang Rui <ray.huang@amd.com>
Subject: Re: [XEN PATCH v12 4/7] x86/domctl: Add hypercall to set the access
 of x86 gsi
In-Reply-To: <20240708114124.407797-5-Jiqian.Chen@amd.com>
Message-ID: <alpine.DEB.2.22.394.2407221505440.4857@ubuntu-linux-20-04-desktop>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com> <20240708114124.407797-5-Jiqian.Chen@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, 8 Jul 2024, Jiqian Chen wrote:
> Some type of domains don't have PIRQs, like PVH, it doesn't do
> PHYSDEVOP_map_pirq for each gsi. When passthrough a device
> to guest base on PVH dom0, callstack
> pci_add_dm_done->XEN_DOMCTL_irq_permission will fail at function
> domain_pirq_to_irq, because PVH has no mapping of gsi, pirq and
> irq on Xen side.
> What's more, current hypercall XEN_DOMCTL_irq_permission requires
> passing in pirq to set the access of irq, it is not suitable for
> dom0 that doesn't have PIRQs.
> 
> So, add a new hypercall XEN_DOMCTL_gsi_permission to grant/deny
> the permission of irq(translate from x86 gsi) to dumU when dom0
> has no PIRQs.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> CC: Daniel P . Smith <dpsmith@apertussolutions.com>
> Remaining comment @Daniel P . Smith:
> +        ret = -EPERM;
> +        if ( !irq_access_permitted(currd, irq) ||
> +             xsm_irq_permission(XSM_HOOK, d, irq, access_flag) )
> +            goto gsi_permission_out;
> Is it okay to issue the XSM check using the translated value, 
> not the one that was originally passed into the hypercall?
> ---
>  xen/arch/x86/domctl.c              | 32 ++++++++++++++++++++++++++++++
>  xen/arch/x86/include/asm/io_apic.h |  2 ++
>  xen/arch/x86/io_apic.c             | 17 ++++++++++++++++
>  xen/arch/x86/mpparse.c             |  5 ++---
>  xen/include/public/domctl.h        |  9 +++++++++
>  xen/xsm/flask/hooks.c              |  1 +
>  6 files changed, 63 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
> index 9190e11faaa3..4e9e4c4cfed3 100644
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -36,6 +36,7 @@
>  #include <asm/xstate.h>
>  #include <asm/psr.h>
>  #include <asm/cpu-policy.h>
> +#include <asm/io_apic.h>
>  
>  static int update_domain_cpu_policy(struct domain *d,
>                                      xen_domctl_cpu_policy_t *xdpc)
> @@ -237,6 +238,37 @@ long arch_do_domctl(
>          break;
>      }
>  
> +    case XEN_DOMCTL_gsi_permission:
> +    {
> +        int irq;
> +        unsigned int gsi = domctl->u.gsi_permission.gsi;
> +        uint8_t access_flag = domctl->u.gsi_permission.access_flag;
> +
> +        /* Check all bits and pads are zero except lowest bit */
> +        ret = -EINVAL;
> +        if ( access_flag & ( ~XEN_DOMCTL_GSI_PERMISSION_MASK ) )
> +            goto gsi_permission_out;
> +        for ( i = 0; i < ARRAY_SIZE(domctl->u.gsi_permission.pad); ++i )
> +            if ( domctl->u.gsi_permission.pad[i] )
> +                goto gsi_permission_out;
> +
> +        if ( gsi > highest_gsi() || (irq = gsi_2_irq(gsi)) <= 0 )

gsi is unsigned int but it is passed to gsi_2_irq which takes an int as
parameter. If gsi >= INT32_MAX we have a problem. I think we should
explicitly check for the possible overflow and return error in that
case.


> +            goto gsi_permission_out;
> +
> +        ret = -EPERM;
> +        if ( !irq_access_permitted(currd, irq) ||
> +             xsm_irq_permission(XSM_HOOK, d, irq, access_flag) )
> +            goto gsi_permission_out;
> +
> +        if ( access_flag )
> +            ret = irq_permit_access(d, irq);
> +        else
> +            ret = irq_deny_access(d, irq);
> +
> +    gsi_permission_out:
> +        break;
> +    }
> +
>      case XEN_DOMCTL_getpageframeinfo3:
>      {
>          unsigned int num = domctl->u.getpageframeinfo3.num;
> diff --git a/xen/arch/x86/include/asm/io_apic.h b/xen/arch/x86/include/asm/io_apic.h
> index 78268ea8f666..7e86d8337758 100644
> --- a/xen/arch/x86/include/asm/io_apic.h
> +++ b/xen/arch/x86/include/asm/io_apic.h
> @@ -213,5 +213,7 @@ unsigned highest_gsi(void);
>  
>  int ioapic_guest_read( unsigned long physbase, unsigned int reg, u32 *pval);
>  int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val);
> +int mp_find_ioapic(int gsi);
> +int gsi_2_irq(int gsi);
>  
>  #endif
> diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
> index d2a313c4ac72..5968c8055671 100644
> --- a/xen/arch/x86/io_apic.c
> +++ b/xen/arch/x86/io_apic.c
> @@ -955,6 +955,23 @@ static int pin_2_irq(int idx, int apic, int pin)
>      return irq;
>  }
>  
> +int gsi_2_irq(int gsi)
> +{
> +    int ioapic, pin, irq;
> +
> +    ioapic = mp_find_ioapic(gsi);
> +    if ( ioapic < 0 )
> +        return -EINVAL;
> +
> +    pin = gsi - io_apic_gsi_base(ioapic);
> +
> +    irq = apic_pin_2_gsi_irq(ioapic, pin);
> +    if ( irq <= 0 )
> +        return -EINVAL;
> +
> +    return irq;
> +}
> +
>  static inline int IO_APIC_irq_trigger(int irq)
>  {
>      int apic, idx, pin;
> diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c
> index d8ccab2449c6..7786a3337760 100644
> --- a/xen/arch/x86/mpparse.c
> +++ b/xen/arch/x86/mpparse.c
> @@ -841,8 +841,7 @@ static struct mp_ioapic_routing {
>  } mp_ioapic_routing[MAX_IO_APICS];
>  
>  
> -static int mp_find_ioapic (
> -	int			gsi)
> +int mp_find_ioapic(int gsi)
>  {
>  	unsigned int		i;
>  
> @@ -914,7 +913,7 @@ void __init mp_register_ioapic (
>  	return;
>  }
>  
> -unsigned __init highest_gsi(void)
> +unsigned highest_gsi(void)
>  {
>  	unsigned x, res = 0;
>  	for (x = 0; x < nr_ioapics; x++)
> diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
> index 2a49fe46ce25..877e35ab1376 100644
> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -464,6 +464,13 @@ struct xen_domctl_irq_permission {
>      uint8_t pad[3];
>  };
>  
> +/* XEN_DOMCTL_gsi_permission */
> +struct xen_domctl_gsi_permission {
> +    uint32_t gsi;
> +#define XEN_DOMCTL_GSI_PERMISSION_MASK 1
> +    uint8_t access_flag;    /* flag to specify enable/disable of x86 gsi access */
> +    uint8_t pad[3];
> +};
>  
>  /* XEN_DOMCTL_iomem_permission */
>  struct xen_domctl_iomem_permission {
> @@ -1306,6 +1313,7 @@ struct xen_domctl {
>  #define XEN_DOMCTL_get_paging_mempool_size       85
>  #define XEN_DOMCTL_set_paging_mempool_size       86
>  #define XEN_DOMCTL_dt_overlay                    87
> +#define XEN_DOMCTL_gsi_permission                88
>  #define XEN_DOMCTL_gdbsx_guestmemio            1000
>  #define XEN_DOMCTL_gdbsx_pausevcpu             1001
>  #define XEN_DOMCTL_gdbsx_unpausevcpu           1002
> @@ -1328,6 +1336,7 @@ struct xen_domctl {
>          struct xen_domctl_setdomainhandle   setdomainhandle;
>          struct xen_domctl_setdebugging      setdebugging;
>          struct xen_domctl_irq_permission    irq_permission;
> +        struct xen_domctl_gsi_permission    gsi_permission;
>          struct xen_domctl_iomem_permission  iomem_permission;
>          struct xen_domctl_ioport_permission ioport_permission;
>          struct xen_domctl_hypercall_init    hypercall_init;
> diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
> index 5e88c71b8e22..a5b134c91101 100644
> --- a/xen/xsm/flask/hooks.c
> +++ b/xen/xsm/flask/hooks.c
> @@ -685,6 +685,7 @@ static int cf_check flask_domctl(struct domain *d, int cmd)
>      case XEN_DOMCTL_shadow_op:
>      case XEN_DOMCTL_ioport_permission:
>      case XEN_DOMCTL_ioport_mapping:
> +    case XEN_DOMCTL_gsi_permission:
>  #endif
>  #ifdef CONFIG_HAS_PASSTHROUGH
>      /*
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 23:00:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 23:00:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762505.1172669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW20o-0002m3-Td; Mon, 22 Jul 2024 23:00:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762505.1172669; Mon, 22 Jul 2024 23:00:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW20o-0002lw-Po; Mon, 22 Jul 2024 23:00:10 +0000
Received: by outflank-mailman (input) for mailman id 762505;
 Mon, 22 Jul 2024 23:00:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW20m-0002lk-RI; Mon, 22 Jul 2024 23:00:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW20m-0002V5-7e; Mon, 22 Jul 2024 23:00:08 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW20l-0008OQ-CI; Mon, 22 Jul 2024 23:00:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sW20l-00081E-Bp; Mon, 22 Jul 2024 23:00:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hrSTmX1yqjkL0GNUftOQ9rHDsftZTN7rJ/mVq8qgfhA=; b=0LSwf9g6RK8PUaXt0HiZxF+H0L
	uEaHC3Ybw1nJ+3TuDN7XvED82HZQp7ey/Q/r9r4vx1qU8SALKmCE9oAuGAjvtvC7LdM6vVaVQlREN
	nD7j3VtsjbZK8EaqOSkJm00eOgiaC+/yADfKeqcSRVeoccksOmzESbL2RyBwOOzqmvOI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186953-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186953: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c4bdb14b80a1751ba622f3e48a4b91401c67867d
X-Osstest-Versions-That:
    xen=5aa152913cd0d71efed459cabb49ba055bb7776f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Jul 2024 23:00:07 +0000

flight 186953 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186953/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c4bdb14b80a1751ba622f3e48a4b91401c67867d
baseline version:
 xen                  5aa152913cd0d71efed459cabb49ba055bb7776f

Last test of basis   186951  2024-07-22 16:00:22 Z    0 days
Testing same since   186953  2024-07-22 20:03:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Olaf Hering <olaf@aepfle.de>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   5aa152913c..c4bdb14b80  c4bdb14b80a1751ba622f3e48a4b91401c67867d -> smoke


From xen-devel-bounces@lists.xenproject.org Mon Jul 22 23:44:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 22 Jul 2024 23:44:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762517.1172679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW2hF-0008MO-8O; Mon, 22 Jul 2024 23:44:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762517.1172679; Mon, 22 Jul 2024 23: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 1sW2hF-0008MH-5n; Mon, 22 Jul 2024 23:44:01 +0000
Received: by outflank-mailman (input) for mailman id 762517;
 Mon, 22 Jul 2024 23:44:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW2hE-0008M7-20; Mon, 22 Jul 2024 23:44:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW2hD-0003Gl-Lz; Mon, 22 Jul 2024 23:43:59 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW2hD-0001AB-Bd; Mon, 22 Jul 2024 23:43:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sW2hD-0005Mc-BE; Mon, 22 Jul 2024 23:43: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dnY1vtWeXUAzAO7SUiI47h7xDLthvxXo+MCUznBzVT8=; b=UoUEWwHhNgnBAZ0vyAbXy78g4T
	CBxV6/OcEUo/lzyln5yImI4rKpgNRWMcAIuxPlRv3iIuSBpU7ILHmaCvJWJrv5UDVWxNu7Z0aQ1S8
	UCX1AWmIvGfACoMxKdj9g/fXPoz9nE18YPAqW9U64jLt7rbZ/c93HFSCGmgtIkV16DZ0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186954-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186954: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=8984fba2f22a2cd44e1189403e3553f447b82852
X-Osstest-Versions-That:
    ovmf=469f29fe7647c6dc8975a3c03ea7e181270d44d3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 22 Jul 2024 23:43:59 +0000

flight 186954 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186954/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 8984fba2f22a2cd44e1189403e3553f447b82852
baseline version:
 ovmf                 469f29fe7647c6dc8975a3c03ea7e181270d44d3

Last test of basis   186942  2024-07-22 12:11:32 Z    0 days
Testing same since   186954  2024-07-22 22:11:30 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Oliver Smith-Denny <osde@linux.microsoft.com>
  Oliver Smith-Denny <osde@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   469f29fe76..8984fba2f2  8984fba2f22a2cd44e1189403e3553f447b82852 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 01:50:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 01:50:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762535.1172692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW4fC-0001mk-PY; Tue, 23 Jul 2024 01:50:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762535.1172692; Tue, 23 Jul 2024 01:50: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 1sW4fC-0001mG-Ln; Tue, 23 Jul 2024 01:50:02 +0000
Received: by outflank-mailman (input) for mailman id 762535;
 Tue, 23 Jul 2024 01:50:01 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW4fB-0001bi-Cp; Tue, 23 Jul 2024 01:50:01 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW4fB-0000Qg-8I; Tue, 23 Jul 2024 01:50:01 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW4fA-0004Iu-Th; Tue, 23 Jul 2024 01:50:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sW4fA-00036U-Sz; Tue, 23 Jul 2024 01:50: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Ttd7pqhqCpxUvqHnuYnTWLCheeCvR30R2x1FIxvR80Y=; b=UT/nGxIL1k6mSXPDoxsWS9LGh/
	m30qSJjvkBCHxx+gXg/GLSEjfpGv66YvINofEdSwhLT3yTr5QZ3/YambU8Ux0CqdoMv+lR3+IufQv
	+wAl/l983oe3ueqYbPeONkr/i8bTE5Co0DC7uzSM+YqznCMLyB19vX6Etyt1ZXbWtTdk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186956-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186956: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=c5582e435c2ed7faa5bee46b5c7a5d04b8edfeaa
X-Osstest-Versions-That:
    ovmf=8984fba2f22a2cd44e1189403e3553f447b82852
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 01:50:00 +0000

flight 186956 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186956/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 c5582e435c2ed7faa5bee46b5c7a5d04b8edfeaa
baseline version:
 ovmf                 8984fba2f22a2cd44e1189403e3553f447b82852

Last test of basis   186954  2024-07-22 22:11:30 Z    0 days
Testing same since   186956  2024-07-23 00:13:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>
  Oliver Smith-Denny <osde@linux.microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   8984fba2f2..c5582e435c  c5582e435c2ed7faa5bee46b5c7a5d04b8edfeaa -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 03:24:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 03:24:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762547.1172722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW68q-000682-Ge; Tue, 23 Jul 2024 03:24:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762547.1172722; Tue, 23 Jul 2024 03: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 1sW68q-00067v-Cs; Tue, 23 Jul 2024 03:24:44 +0000
Received: by outflank-mailman (input) for mailman id 762547;
 Tue, 23 Jul 2024 03:24: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=xgPy=OX=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sW68o-0005f5-M6
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 03:24:42 +0000
Received: from fout2-smtp.messagingengine.com (fout2-smtp.messagingengine.com
 [103.168.172.145]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 183c815c-48a3-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 05:24:40 +0200 (CEST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailfout.nyi.internal (Postfix) with ESMTP id 6349A138004B;
 Mon, 22 Jul 2024 23:24:39 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute5.internal (MEProxy); Mon, 22 Jul 2024 23:24:39 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 22 Jul 2024 23:24:38 -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: 183c815c-48a3-11ef-8776-851b0ebba9a2
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=1721705079; x=1721791479; bh=HuGUYsURlp
	6+r8i8v214iFZFLGwxRoRuuPkIdYSUxvc=; b=nyTUeAUXV4fBV2D1N/XyH/idq1
	i9275JdQuenBOe7kM6qnmGXRQhrdkR1qBMxgHX9S39RDPCh+FFb/KnZx8CPhd7G3
	0JOOIq+q9NrsmMUwbbzXRQmdXzSptUs+qCLmm4UnIou04bItKDHrqF3g9JtvbxTr
	pIWGqC6NQ+t15dn17HcTFP/AE0GfKXpXSZHiuqO7fnAL4js4D2CukqZZ3tmhGsD4
	fehYc0iMha9+vQYWlljQ6zQ3TSTV0WwTxo9p06TE/JLWBbQ0ak3clGgknQUJ58eV
	rfeLdC5iGTLveJnh9gT+Ik4E94XcQmKvliutwuatLs++SVxKQ1nSkN0EiIvw==
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-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1721705079; x=
	1721791479; bh=HuGUYsURlp6+r8i8v214iFZFLGwxRoRuuPkIdYSUxvc=; b=H
	z9u2yRAENZDHcBoEQBBfJs3qzOoPalCMm999yDGQtW23v+sduYXqBTue7+yF0TNh
	feMfU78oDgY9167est0bW2iBUVyupxP4UxcFiuj8CQwopHO++lfoP4KtOK3T4Mcg
	K8Jm4WllddUF6Y4tkedQh2dqTKncG5pztIwDhP4bYC8s3BCZ/vNiOjNN8ZLlY29a
	9CgMNDQdlIolxHlHvOwKHywcc++DNOCzIWLflJgpWUZi2u708RN5Z0Ewo5soABlO
	cT5wacTtCe2c3bBX5X0TkcokNK94Zo8C18zbVPJgDjdIUaWpx2itF1sK5IZInIvQ
	FrWlEzDcWFhXjBUuX4wHg==
X-ME-Sender: <xms:dyKfZtSL5TuIfEmgC94siIc7GtVZsWjlZw3csyhb819c3jO4iJRs0Q>
    <xme:dyKfZmwdw8PM0BOhRXet2sBpLUL1gxJ4kbCw9NcOk5Qgx2kmOffkN_VEhY8zhNDwf
    5Pr7Q82tHbavA>
X-ME-Received: <xmr:dyKfZi3ncmUnSf90SUX0xODFDoXnZvZX5gb-0AV3UCZ3xq3_ZAmDLPgKS0Be8xLwqbb9X41y6wtDDziAX0DDJFieSebiHs5ICe3kZFVwaQROS4EoYXE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheekgdejvdcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeu
    udehgfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluh
    hsthgvrhfuihiivgepudenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtoheptd
X-ME-Proxy: <xmx:dyKfZlBI_tXgcIl6Kpzqo-FcK8bFvsTcWxTqwuwPAkluBeuVOlZt7g>
    <xmx:dyKfZmhuQNhOaK9SlXMNc31yqds4PECt7t8aBcdeOv3lOWOoU9VYPA>
    <xmx:dyKfZpoOZ2-rLukYrvA4yMBDZPQZjpbLuSvGXcHF6gxRdZnLX4T5tg>
    <xmx:dyKfZhgllXop2uluh0wiek2Y3YDu18HdajphDI3KRiJcuBObRjG_Pg>
    <xmx:dyKfZuc-rQhj3vsl0Iq0XfVIeEw_nCDP82zpIZcQOqjsLX7I3T8AC20N>
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>
Subject: [PATCH v6 2/3] x86/mm: add API for marking only part of a MMIO page read only
Date: Tue, 23 Jul 2024 05:24:13 +0200
Message-ID: <4bea5034cda37f35cd04115bebcccb52e3ea719e.1721704980.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.66bd16d0134f9664ea3e0f4d56f7c127afc308c8.1721704980.git-series.marmarek@invisiblethingslab.com>
References: <cover.66bd16d0134f9664ea3e0f4d56f7c127afc308c8.1721704980.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In some cases, only few registers on a page needs to be write-protected.
Examples include USB3 console (64 bytes worth of registers) or MSI-X's
PBA table (which doesn't need to span the whole table either), although
in the latter case the spec forbids placing other registers on the same
page. Current API allows only marking whole pages pages read-only,
which sometimes may cover other registers that guest may need to
write into.

Currently, when a guest tries to write to an MMIO page on the
mmio_ro_ranges, it's either immediately crashed on EPT violation - if
that's HVM, or if PV, it gets #PF. In case of Linux PV, if access was
from userspace (like, /dev/mem), it will try to fixup by updating page
tables (that Xen again will force to read-only) and will hit that #PF
again (looping endlessly). Both behaviors are undesirable if guest could
actually be allowed the write.

Introduce an API that allows marking part of a page read-only. Since
sub-page permissions are not a thing in page tables (they are in EPT,
but not granular enough), do this via emulation (or simply page fault
handler for PV) that handles writes that are supposed to be allowed.
The new subpage_mmio_ro_add() takes a start physical address and the
region size in bytes. Both start address and the size need to be 8-byte
aligned, as a practical simplification (allows using smaller bitmask,
and a smaller granularity isn't really necessary right now).
It will internally add relevant pages to mmio_ro_ranges, but if either
start or end address is not page-aligned, it additionally adds that page
to a list for sub-page R/O handling. The list holds a bitmask which
qwords are supposed to be read-only and an address where page is mapped
for write emulation - this mapping is done only on the first access. A
plain list is used instead of more efficient structure, because there
isn't supposed to be many pages needing this precise r/o control.

The mechanism this API is plugged in is slightly different for PV and
HVM. For both paths, it's plugged into mmio_ro_emulated_write(). For PV,
it's already called for #PF on read-only MMIO page. For HVM however, EPT
violation on p2m_mmio_direct page results in a direct domain_crash() for
non hardware domains.  To reach mmio_ro_emulated_write(), change how
write violations for p2m_mmio_direct are handled - specifically, check
if they relate to such partially protected page via
subpage_mmio_write_accept() and if so, call hvm_emulate_one_mmio() for
them too. This decodes what guest is trying write and finally calls
mmio_ro_emulated_write(). The EPT write violation is detected as
npfec.write_access and npfec.present both being true (similar to other
places), which may cover some other (future?) cases - if that happens,
emulator might get involved unnecessarily, but since it's limited to
pages marked with subpage_mmio_ro_add() only, the impact is minimal.
Both of those paths need an MFN to which guest tried to write (to check
which part of the page is supposed to be read-only, and where
the page is mapped for writes). This information currently isn't
available directly in mmio_ro_emulated_write(), but in both cases it is
already resolved somewhere higher in the call tree. Pass it down to
mmio_ro_emulated_write() via new mmio_ro_emulate_ctxt.mfn field.

This may give a bit more access to the instruction emulator to HVM
guests (the change in hvm_hap_nested_page_fault()), but only for pages
explicitly marked with subpage_mmio_ro_add() - so, if the guest has a
passed through a device partially used by Xen.
As of the next patch, it applies only configuration explicitly
documented as not security supported.

The subpage_mmio_ro_add() function cannot be called with overlapping
ranges, and on pages already added to mmio_ro_ranges separately.
Successful calls would result in correct handling, but error paths may
result in incorrect state (like pages removed from mmio_ro_ranges too
early). Debug build has asserts for relevant cases.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Shadow mode is not tested, but I don't expect it to work differently than
HAP in areas related to this patch.

Changes in v6:
- fix return type of subpage_mmio_find_page()
- change 'iter' pointer to 'new_entry' bool and move list_add()
- comment why different error handling for unaligned start / size
- code style
Changes in v5:
- use subpage_mmio_find_page helper, simplifying several functions
- use LIST_HEAD_RO_AFTER_INIT
- don't use subpage_ro_lock in __init
- drop #ifdef in mm.h
- return error on unaligned size in subpage_mmio_ro_add() instead of
  extending the size (in release build)
Changes in v4:
- rename SUBPAGE_MMIO_RO_ALIGN to MMIO_RO_SUBPAGE_GRAN
- guard subpage_mmio_write_accept with CONFIG_HVM, as it's used only
  there
- rename ro_qwords to ro_elems
- use unsigned arguments for subpage_mmio_ro_remove_page()
- use volatile for __iomem
- do not set mmio_ro_ctxt.mfn for mmcfg case
- comment where fields of mmio_ro_ctxt are used
- use bool for result of __test_and_set_bit
- do not open-code mfn_to_maddr()
- remove leftover RCU
- mention hvm_hap_nested_page_fault() explicitly in the commit message
Changes in v3:
- use unsigned int for loop iterators
- use __set_bit/__clear_bit when under spinlock
- avoid ioremap() under spinlock
- do not cast away const
- handle unaligned parameters in release build
- comment fixes
- remove RCU - the add functions are __init and actual usage is only
  much later after domains are running
- add checks overlapping ranges in debug build and document the
  limitations
- change subpage_mmio_ro_add() so the error path doesn't potentially
  remove pages from mmio_ro_ranges
- move printing message to avoid one goto in
  subpage_mmio_write_emulate()
Changes in v2:
- Simplify subpage_mmio_ro_add() parameters
- add to mmio_ro_ranges from within subpage_mmio_ro_add()
- use ioremap() instead of caller-provided fixmap
- use 8-bytes granularity (largest supported single write) and a bitmap
  instead of a rangeset
- clarify commit message
- change how it's plugged in for HVM domain, to not change the behavior for
  read-only parts (keep it hitting domain_crash(), instead of ignoring
  write)
- remove unused subpage_mmio_ro_remove()
---
 xen/arch/x86/hvm/emulate.c      |   2 +-
 xen/arch/x86/hvm/hvm.c          |   4 +-
 xen/arch/x86/include/asm/mm.h   |  23 +++-
 xen/arch/x86/mm.c               | 265 +++++++++++++++++++++++++++++++++-
 xen/arch/x86/pv/ro-page-fault.c |   6 +-
 5 files changed, 295 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 02e378365b40..7253a87032dd 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2734,7 +2734,7 @@ int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
         .write      = mmio_ro_emulated_write,
         .validate   = hvmemul_validate,
     };
-    struct mmio_ro_emulate_ctxt mmio_ro_ctxt = { .cr2 = 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;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7f4b627b1f5f..a108870558bf 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2016,8 +2016,8 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
         goto out_put_gfn;
     }
 
-    if ( (p2mt == p2m_mmio_direct) && is_hardware_domain(currd) &&
-         npfec.write_access && npfec.present &&
+    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;
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 98b66edaca5e..a457f0d2b1b3 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -522,9 +522,32 @@ extern struct rangeset *mmio_ro_ranges;
 void memguard_guard_stack(void *p);
 void memguard_unguard_stack(void *p);
 
+/*
+ * Add more precise r/o marking for a MMIO page. Range specified here
+ * will still be R/O, but the rest of the page (not marked as R/O via another
+ * call) will have writes passed through.
+ * The start address and the size must be aligned to MMIO_RO_SUBPAGE_GRAN.
+ *
+ * This API cannot be used for overlapping ranges, nor for pages already added
+ * to mmio_ro_ranges separately.
+ *
+ * Since there is currently no subpage_mmio_ro_remove(), relevant device should
+ * not be hot-unplugged.
+ *
+ * Return values:
+ *  - negative: error
+ *  - 0: success
+ */
+#define MMIO_RO_SUBPAGE_GRAN 8
+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(
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 648d6dd475ba..b203a1e870d4 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -150,6 +150,17 @@ bool __read_mostly machine_to_phys_mapping_valid;
 
 struct rangeset *__read_mostly mmio_ro_ranges;
 
+/* 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);
+
 static uint32_t base_disallow_mask;
 /* Global bit is allowed to be set on L1 PTEs. Intended for user mappings. */
 #define L1_DISALLOW_MASK ((base_disallow_mask | _PAGE_GNTTAB) & ~_PAGE_GLOBAL)
@@ -4910,6 +4921,257 @@ 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 *entry;
+
+    list_for_each_entry(entry, &subpage_ro_ranges, list)
+        if ( mfn_eq(entry->mfn, mfn) )
+            return entry;
+
+    return NULL;
+}
+
+/*
+ * Mark part of the page as R/O.
+ * Returns:
+ * - 0 on success - first range in the page
+ * - 1 on success - subsequent range in the page
+ * - <0 on error
+ */
+static int __init subpage_mmio_ro_add_page(
+    mfn_t mfn,
+    unsigned int offset_s,
+    unsigned int offset_e)
+{
+    struct subpage_ro_range *entry = NULL;
+    bool new_entry = false;
+    unsigned int i;
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+    {
+        entry = xzalloc(struct subpage_ro_range);
+        if ( !entry )
+            return -ENOMEM;
+        entry->mfn = mfn;
+        list_add(&entry->list, &subpage_ro_ranges);
+        new_entry = true;
+    }
+
+    for ( i = offset_s; i <= offset_e; i += MMIO_RO_SUBPAGE_GRAN )
+    {
+        bool oldbit = __test_and_set_bit(i / MMIO_RO_SUBPAGE_GRAN,
+                                         entry->ro_elems);
+        ASSERT(!oldbit);
+    }
+
+    return new_entry ? 0 : 1;
+}
+
+static void __init subpage_mmio_ro_remove_page(
+    mfn_t mfn,
+    unsigned int offset_s,
+    unsigned int offset_e)
+{
+    struct subpage_ro_range *entry = NULL;
+    unsigned int i;
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+        return;
+
+    for ( i = offset_s; i <= offset_e; i += MMIO_RO_SUBPAGE_GRAN )
+        __clear_bit(i / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems);
+
+    if ( !bitmap_empty(entry->ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN) )
+        return;
+
+    list_del(&entry->list);
+    if ( entry->mapped )
+        iounmap(entry->mapped);
+    xfree(entry);
+}
+
+int __init subpage_mmio_ro_add(
+    paddr_t start,
+    size_t size)
+{
+    mfn_t mfn_start = maddr_to_mfn(start);
+    paddr_t end = start + size - 1;
+    mfn_t mfn_end = maddr_to_mfn(end);
+    unsigned int offset_end = 0;
+    int rc;
+    bool subpage_start, subpage_end;
+
+    /*
+     * In release, build unaligned start will protect larger area,
+     * so tolerate it.
+     * But unaligned size would result in smaller area, so deny it.
+     */
+    ASSERT(IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN));
+    ASSERT(IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN));
+    if ( !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
+        return -EINVAL;
+
+    if ( !size )
+        return 0;
+
+    if ( mfn_eq(mfn_start, mfn_end) )
+    {
+        /* Both starting and ending parts handled at once */
+        subpage_start = PAGE_OFFSET(start) || PAGE_OFFSET(end) != PAGE_SIZE - 1;
+        subpage_end = false;
+    }
+    else
+    {
+        subpage_start = PAGE_OFFSET(start);
+        subpage_end = PAGE_OFFSET(end) != PAGE_SIZE - 1;
+    }
+
+    if ( subpage_start )
+    {
+        offset_end = mfn_eq(mfn_start, mfn_end) ?
+                     PAGE_OFFSET(end) :
+                     (PAGE_SIZE - 1);
+        rc = subpage_mmio_ro_add_page(mfn_start,
+                                      PAGE_OFFSET(start),
+                                      offset_end);
+        if ( rc < 0 )
+            goto err_unlock;
+        /* Check if not marking R/W part of a page intended to be fully R/O */
+        ASSERT(rc || !rangeset_contains_singleton(mmio_ro_ranges,
+                                                  mfn_x(mfn_start)));
+    }
+
+    if ( subpage_end )
+    {
+        rc = subpage_mmio_ro_add_page(mfn_end, 0, PAGE_OFFSET(end));
+        if ( rc < 0 )
+            goto err_unlock_remove;
+        /* Check if not marking R/W part of a page intended to be fully R/O */
+        ASSERT(rc || !rangeset_contains_singleton(mmio_ro_ranges,
+                                                  mfn_x(mfn_end)));
+    }
+
+    rc = rangeset_add_range(mmio_ro_ranges, mfn_x(mfn_start), mfn_x(mfn_end));
+    if ( rc )
+        goto err_remove;
+
+    return 0;
+
+ err_remove:
+    if ( subpage_end )
+        subpage_mmio_ro_remove_page(mfn_end, 0, PAGE_OFFSET(end));
+ err_unlock_remove:
+    if ( subpage_start )
+        subpage_mmio_ro_remove_page(mfn_start, PAGE_OFFSET(start), offset_end);
+ err_unlock:
+    return rc;
+}
+
+static void __iomem *subpage_mmio_map_page(
+    struct subpage_ro_range *entry)
+{
+    void __iomem *mapped_page;
+
+    if ( entry->mapped )
+        return entry->mapped;
+
+    mapped_page = ioremap(mfn_to_maddr(entry->mfn), PAGE_SIZE);
+
+    spin_lock(&subpage_ro_lock);
+    /* Re-check under the lock */
+    if ( entry->mapped )
+    {
+        spin_unlock(&subpage_ro_lock);
+        if ( mapped_page )
+            iounmap(mapped_page);
+        return entry->mapped;
+    }
+
+    entry->mapped = mapped_page;
+    spin_unlock(&subpage_ro_lock);
+    return entry->mapped;
+}
+
+static void subpage_mmio_write_emulate(
+    mfn_t mfn,
+    unsigned int offset,
+    const void *data,
+    unsigned int len)
+{
+    struct subpage_ro_range *entry;
+    volatile void __iomem *addr;
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+        /* Do not print message for pages without any writable parts. */
+        return;
+
+    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);
+        return;
+    }
+
+    addr = subpage_mmio_map_page(entry);
+    if ( !addr )
+    {
+        gprintk(XENLOG_ERR,
+                "Failed to map page for MMIO write at 0x%"PRI_mfn"%03x\n",
+                mfn_x(mfn), offset);
+        return;
+    }
+
+    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;
+    }
+}
+
+#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,
@@ -4928,6 +5190,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);
+
     return X86EMUL_OKAY;
 }
 
diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c
index cad28ef928ad..2ea1a6ad489c 100644
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -333,8 +333,10 @@ static int mmio_ro_do_page_fault(struct x86_emulate_ctxt *ctxt,
     ctxt->data = &mmio_ro_ctxt;
     if ( pci_ro_mmcfg_decode(mfn_x(mfn), &mmio_ro_ctxt.seg, &mmio_ro_ctxt.bdf) )
         return x86_emulate(ctxt, &mmcfg_intercept_ops);
-    else
-        return x86_emulate(ctxt, &mmio_ro_emulate_ops);
+
+    mmio_ro_ctxt.mfn = mfn;
+
+    return x86_emulate(ctxt, &mmio_ro_emulate_ops);
 }
 
 int pv_ro_page_fault(unsigned long addr, struct cpu_user_regs *regs)
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 03:24:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 03:24:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762546.1172708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW68o-0005ib-BA; Tue, 23 Jul 2024 03:24:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762546.1172708; Tue, 23 Jul 2024 03:24:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW68o-0005hS-4n; Tue, 23 Jul 2024 03:24:42 +0000
Received: by outflank-mailman (input) for mailman id 762546;
 Tue, 23 Jul 2024 03:24:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xgPy=OX=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sW68n-0005f5-Fr
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 03:24:41 +0000
Received: from fhigh6-smtp.messagingengine.com
 (fhigh6-smtp.messagingengine.com [103.168.172.157])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 17732e67-48a3-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 05:24:39 +0200 (CEST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 09960114027C;
 Mon, 22 Jul 2024 23:24:38 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute5.internal (MEProxy); Mon, 22 Jul 2024 23:24:38 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 22 Jul 2024 23:24: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: 17732e67-48a3-11ef-8776-851b0ebba9a2
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=1721705078; x=1721791478; bh=5mBbeJ3IgD
	DqpZgnQ/L6S/O0FCGdtdLv+JP7rpu5cRQ=; b=vrqmjrav9JygAnUk/Smp9aPtN3
	+Y4Isu6Oy6TEAaDSK8dtH+tighNDS9vKRmcDVKuJ3i+zgpDdS9j7/j1YsfzqmUbc
	eKXfka44UGJ8Jeb5OxfZt/jqz4ZbdrlWRY2NK7jJbpsfVyeVu8mMIr+kgjP0fztk
	fqenkX8GVg9Jcl0341NEL0I2HIG5GXX4DuRuy13wTbiO/Y4L+VVdTHOWH421CLGr
	1mBtHBh3vYEgbSw/ZGrv7WfQL4eu/g7ByfzaqtYi7iMUOZB44gfVPVMRk1M/3Mei
	oxat8QZS9G2R//2QmFpUKp7+8WXWjAND9P3HzPBe/HbrwkmTrwbSPxGx8YVQ==
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-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1721705078; x=
	1721791478; bh=5mBbeJ3IgDDqpZgnQ/L6S/O0FCGdtdLv+JP7rpu5cRQ=; b=B
	U8hV5yrhzpKs2+YbqSB3+/YKwg5zPuHeI7eKoNdgO8NMk4MSncpRAKn3IXofNIG9
	Nd1DYw7jABwQKg5D/J1x35rTNJOTuBNMPwppS+IrYCdVZntORqE+uqmAI8wNSTOF
	k1b1FBAaKW5AN8jv5yrxmWjtAx0PO6Zv1MMgsqxmxF9JrW/fhzRVUCDwHaORoZVp
	IzFN/DJpJzhmtMxrQpvAP/PUQPiMVs3qDlkkkSuSGYulVdXZrTjquME3Wa+uQx3U
	d/MKbBzyuqWNLlCeIxp4UVWVlQ8zDJKxaeTNDLiWzHOvTkuvo5H1SshfqTyoharr
	MQvJWZTdMQbJEFqGyI6lg==
X-ME-Sender: <xms:dSKfZmscrzgGQukhowVeyd6z95BQ4f4mxHTrWvHuMBvcrKNzwJN1eQ>
    <xme:dSKfZrdXsbqfjbDI6s8k2-QrOTJ3BB6pL_bmeq4UvlnTaY1ENF3gpMLa9Ip0ZWOl3
    BcFXrmNwJoIoA>
X-ME-Received: <xmr:dSKfZhwbZVggYUoWrEErqGttoi9kCv3eLBQkuQOfOyJ0xFxLFjJqDNdpHhRRvoD3U81vfRbzJyHLvMVJBxWuYi955xf4AuOoOcUVe74L_1dIfh3c_lM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheekgdejvdcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeu
    udehgfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluh
    hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtoheptd
X-ME-Proxy: <xmx:dSKfZhMfGwTzXwIEHzWwnGu1VYw1nCbeUgbQU3MHtkagEw0Sw9qC6Q>
    <xmx:dSKfZm8RP3n5hHAK7M4W7HM2UHVs40w62t8j8cGYrL_vARfibqXJ8g>
    <xmx:dSKfZpXCvh56SV6PKRi55dj5ivYJViEN4pEusxkXNWoNl5aa3bcF-g>
    <xmx:dSKfZvdIBISc4i9lDwV33LNM2T1KX2FIwajWx62mY4-z-rEemHqRFA>
    <xmx:diKfZtnTL8D101g0nJQoJvNFLz941Fh-u01Pn4vOFKsCOeJ_OcLOEgIn>
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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 1/3] xen/list: add LIST_HEAD_RO_AFTER_INIT
Date: Tue, 23 Jul 2024 05:24:12 +0200
Message-ID: <dec7790f13e9abfed6fad2d4bb3af0c38bcbd2fd.1721704980.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.66bd16d0134f9664ea3e0f4d56f7c127afc308c8.1721704980.git-series.marmarek@invisiblethingslab.com>
References: <cover.66bd16d0134f9664ea3e0f4d56f7c127afc308c8.1721704980.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Similar to LIST_HEAD_READ_MOSTLY.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
New in v5
---
 xen/include/xen/list.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/include/xen/list.h b/xen/include/xen/list.h
index 6506ac40893b..62169f46742e 100644
--- a/xen/include/xen/list.h
+++ b/xen/include/xen/list.h
@@ -42,6 +42,9 @@ struct list_head {
 #define LIST_HEAD_READ_MOSTLY(name) \
     struct list_head __read_mostly name = LIST_HEAD_INIT(name)
 
+#define LIST_HEAD_RO_AFTER_INIT(name) \
+    struct list_head __ro_after_init name = LIST_HEAD_INIT(name)
+
 static inline void INIT_LIST_HEAD(struct list_head *list)
 {
     list->next = list;
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 03:24:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 03:24:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762545.1172702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW68o-0005fN-0s; Tue, 23 Jul 2024 03:24:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762545.1172702; Tue, 23 Jul 2024 03: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 1sW68n-0005fG-UY; Tue, 23 Jul 2024 03:24:41 +0000
Received: by outflank-mailman (input) for mailman id 762545;
 Tue, 23 Jul 2024 03:24:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xgPy=OX=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sW68m-0005f5-VH
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 03:24:41 +0000
Received: from fhigh6-smtp.messagingengine.com
 (fhigh6-smtp.messagingengine.com [103.168.172.157])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 166c0d28-48a3-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 05:24:37 +0200 (CEST)
Received: from compute8.internal (compute8.nyi.internal [10.202.2.227])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id BCB6811400E6;
 Mon, 22 Jul 2024 23:24:35 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute8.internal (MEProxy); Mon, 22 Jul 2024 23:24:35 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 22 Jul 2024 23:24: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: 166c0d28-48a3-11ef-8776-851b0ebba9a2
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=1721705075; x=1721791475; bh=INhlBJjaWcSgUwT5Iirh60xvA7D1cZQV
	W0chq3FhXaQ=; b=EdnGyk8HQM4FceDGrtPEQ0l/G/iULxe4semxNU5O705EOrPC
	6YgPuPGyk3yJ0Y7UPJOCz1b/hdQv9cypfykZXIY0dQvH28mydXsTHa7K0fUEk6Uq
	7N0vtAkhyLCdpBJXDrEyp5gRfBPV4VDbVDKEmXlfxlJM3PpIS+frZano68R6be5R
	wwOj8RiW5aY+vSWrgCDcueSv4TXtbNcnlMdgCOeGVwcxFuSJa9YwRprhWuTf136G
	Vgbe0Et2w5+j6htesfukW70hQXRzQekNNWKQ6WRaaBXP+Y5Sn5sd0VMIh7jQUM+I
	Cxhb0naN+BlGwJ6tPbqOw3yrLFsGx3JULjeivg==
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-proxy:x-me-sender:x-me-sender
	:x-sasl-enc; s=fm3; t=1721705075; x=1721791475; bh=INhlBJjaWcSgU
	wT5Iirh60xvA7D1cZQVW0chq3FhXaQ=; b=TTG8UJ/YpXchcMU5EudamVF+pvzsc
	ASywEuQHwAsRRUjlz0hLoIk14jzQMVvMtgV4m4GTSn6+CygJD5qaRsamGrW/QcDW
	JAOpewILWAhhCT31OcnxrrQ+qQPPGNi40gFUJl5yZfJ48J4aJwuJNnd+NY3hYN6B
	LnI/DX8+5j5s81TCpOO3K+0iLcR/SwcjkJApc649HLv/6vI+m/0fHSOkRKSy/+8w
	xZ/JfKBHTNyTcSUUnt4BK41O703xlKHj+asYm1kC57eoL1lwPt6YUckf0RhBMhK5
	BefUdKfefX5xl1IJLWrnXW3QfKYDemoJZDk1fleSpcc3vrFgPNmiDd2zQ==
X-ME-Sender: <xms:cyKfZq3arfkt_kB_t0SWbAI3tGqh11edQAoFhj8Ft3KAaJuLMbDC3w>
    <xme:cyKfZtGl72ZUMKUYX7qohh3bz6Rd9a55ZeQDn7wkH-QQ2oylxksdrD98GNhWkv3WF
    0AkQbGjkAJeRQ>
X-ME-Received: <xmr:cyKfZi64DzW9YtG9hL_sLeWTJucE67_BwRtth1WufYTVk3zdEnrWgtq1i8jI_f2-B9UlZi30znkFxlo9CpKNgaEw8JHq_3xf1M3HX2vG-59LQsmf8FU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheekgdejvdcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecunecujfgurhephffvvefufffkofggtgfgsehtkeertd
    ertdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghk
    ihcuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqe
    enucggtffrrghtthgvrhhnpeelkefhudelteelleelteetveeffeetffekteetjeehlefg
    geekleeghefhtdehvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrih
    hlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgt
    ohhmpdhnsggprhgtphhtthhopedt
X-ME-Proxy: <xmx:cyKfZr0rdqrDXH-DV9IGWTx6kmpoFb4SmqOMMlCKGmOTHFvdBx-rZA>
    <xmx:cyKfZtExHDQoaHGMsCrfwY-Oogfk8PTo4cGri92gI5sr490AtVI0yg>
    <xmx:cyKfZk-YVTCLqFXgKQ0oTwwoKUCSz9yuJS6BkYXyqAIeHI3JAD89Ww>
    <xmx:cyKfZillutgber7P_lj9pToBVhTwN843FJuN0gQmzJrRjDO0VQqFlg>
    <xmx:cyKfZrMRDi8EzQkKrk11rdt3yktRdle0ZQ4DOjGBj0bFvOVE7UEjGq_N>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v6 0/3] Add API for making parts of a MMIO page R/O and use it in XHCI console
Date: Tue, 23 Jul 2024 05:24:11 +0200
Message-ID: <cover.66bd16d0134f9664ea3e0f4d56f7c127afc308c8.1721704980.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On older systems, XHCI xcap had a layout that no other (interesting) registers
were placed on the same page as the debug capability, so Linux was fine with
making the whole page R/O. But at least on Tiger Lake and Alder Lake, Linux
needs to write to some other registers on the same page too.

Add a generic API for making just parts of an MMIO page R/O and use it to fix
USB3 console with share=yes or share=hwdom options. More details in commit
messages.

Marek Marczykowski-Górecki (3):
  xen/list: add LIST_HEAD_RO_AFTER_INIT
  x86/mm: add API for marking only part of a MMIO page read only
  drivers/char: Use sub-page ro API to make just xhci dbc cap RO

 xen/arch/x86/hvm/emulate.c      |   2 +-
 xen/arch/x86/hvm/hvm.c          |   4 +-
 xen/arch/x86/include/asm/mm.h   |  23 +++-
 xen/arch/x86/mm.c               | 265 +++++++++++++++++++++++++++++++++-
 xen/arch/x86/pv/ro-page-fault.c |   6 +-
 xen/drivers/char/xhci-dbc.c     |  36 ++--
 xen/include/xen/list.h          |   3 +-
 7 files changed, 320 insertions(+), 19 deletions(-)

base-commit: a99f25f7ac60544e9af4b3b516d7566ba8841cc4
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 03:24:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 03:24:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762548.1172732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW68r-0006NA-Qw; Tue, 23 Jul 2024 03:24:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762548.1172732; Tue, 23 Jul 2024 03:24:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW68r-0006N1-O1; Tue, 23 Jul 2024 03:24:45 +0000
Received: by outflank-mailman (input) for mailman id 762548;
 Tue, 23 Jul 2024 03: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=xgPy=OX=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sW68p-0005rf-Kg
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 03:24:43 +0000
Received: from fhigh6-smtp.messagingengine.com
 (fhigh6-smtp.messagingengine.com [103.168.172.157])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 191bfba5-48a3-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 05:24:41 +0200 (CEST)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id CCD2A11400E6;
 Mon, 22 Jul 2024 23:24:40 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute3.internal (MEProxy); Mon, 22 Jul 2024 23:24:40 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 22 Jul 2024 23:24: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: 191bfba5-48a3-11ef-bbfe-fd08da9f4363
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=1721705080; x=1721791480; bh=3q36D4bJYb
	KeTNzDrlCHr7vVdpQaHyX3JUKiZcT8bno=; b=BlPtfE+aHRz3PvT0VWRZ/4780l
	jEDEYofmrSxseCH+BbLdpS9DmDHbYCfKOVCZGWnmGmduMNJwkAfsCKZh5UEMBNgO
	pmjWJcxjNVltXuLfd2rLmb8hqNPyNJDsRLWY/n6SRmyqarwl53V5fmyE48MVtbBh
	NcKfGg1I+exUEp0uYAaMVx/uYHHgx7MZAFhnzbhBxrQFMA/WBlhMc9mz08wNJRvS
	cgaGBPEkKx1C52/8T24dxEELjnEjkHdarygQ7ja5x7VkXa2oomYZvWyEi/Gx0aKb
	Z/SFjYXdg2geN85lOPLybq4L7f92KgMb3bRLDZIZSStX3KPD+MCDV2aNTTuA==
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-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1721705080; x=
	1721791480; bh=3q36D4bJYbKeTNzDrlCHr7vVdpQaHyX3JUKiZcT8bno=; b=q
	0Gp9QIUQbewwQP4XXKc/RvuvRKocaWN5M9ckuXuIF2rPbkryIwvsQvDv1bRK+QQJ
	2QAYuHjMWI+3a/wmCHcnID9oXJGt7NHnsYkqyZv52GeSPc0SIK2M3vR+EwUctYLP
	Ah1r0J7lYh6DZtshJJ/VN1A2NXleL7jY7haNemPwBaZthZQ2IF1SfQHH9VVzmnl4
	aVu5kAjGGte1iPXk2jklIzi4uApSpO0s0+muLNaOsjb1cfQdIitOyqysV8bQe4mo
	/agkTVBuMpuQsZXFNXhY1sgmiLY+OLS4enF5SZsul4gk4ibuVkM3MqdLFG7fVpEt
	pHCnMJLEwXxB/hh3pj12A==
X-ME-Sender: <xms:eCKfZqFOjdLh9-wLZ274INZqCaypc0PG3fNYVhJ7fiaSDD6qWkHJWQ>
    <xme:eCKfZrU8Mf2bDOfaXWWgcxHXjXdWLHnuG76J4xmppI5nLjqCRrCOvrItDbFCp6QVV
    2jdvgwkEBm23A>
X-ME-Received: <xmr:eCKfZkLPve6qkKz2vsb5AqKPPSsGHlQyxMeHqo8ot2S34mzj9Wy_R_cHnGWmWOe-qMk2ge8wI_m_4J29IJsEAS3fZkOy5k6K9lTJJNFcDeb7KuTO9rA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheekgdejvdcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeu
    udehgfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluh
    hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtoheptd
X-ME-Proxy: <xmx:eCKfZkH3wcCDg-f4uJU5EVuGDrBHfUr6O6cngUqcqYacJJO35Jfhcg>
    <xmx:eCKfZgVx6uB04gfcOjcN2t9tHqp3E_rygRuVLBXSTDhkb6L8_MO6gQ>
    <xmx:eCKfZnM532wvuEOTBekh1hy1qjUYdXbV2D8zb3TvYgdThvql_Qzo6A>
    <xmx:eCKfZn1ZSguLDYZd_D2KWhHinPCXk9moy8GZAr7TTqD75B1XRSXhYQ>
    <xmx:eCKfZqeU1MUjp_B6Y7z2BENgQfb_YV1lSsszuGrftZYugZA2llX6RI1r>
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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 3/3] drivers/char: Use sub-page ro API to make just xhci dbc cap RO
Date: Tue, 23 Jul 2024 05:24:14 +0200
Message-ID: <b1dadae26c6c9a585a938ebb3e0cda657cb4dfdf.1721704980.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.66bd16d0134f9664ea3e0f4d56f7c127afc308c8.1721704980.git-series.marmarek@invisiblethingslab.com>
References: <cover.66bd16d0134f9664ea3e0f4d56f7c127afc308c8.1721704980.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Not the whole page, which may contain other registers too. The XHCI
specification describes DbC as designed to be controlled by a different
driver, but does not mandate placing registers on a separate page. In fact
on Tiger Lake and newer (at least), this page do contain other registers
that Linux tries to use. And with share=yes, a domU would use them too.
Without this patch, PV dom0 would fail to initialize the controller,
while HVM would be killed on EPT violation.

With `share=yes`, this patch gives domU more access to the emulator
(although a HVM with any emulated device already has plenty of it). This
configuration is already documented as unsafe with untrusted guests and
not security supported.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4:
- restore mmio_ro_ranges in the fallback case
- set XHCI_SHARE_NONE in the fallback case
Changes in v3:
- indentation fix
- remove stale comment
- fallback to pci_ro_device() if subpage_mmio_ro_add() fails
- extend commit message
Changes in v2:
 - adjust for simplified subpage_mmio_ro_add() API
---
 xen/drivers/char/xhci-dbc.c | 36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/xen/drivers/char/xhci-dbc.c b/xen/drivers/char/xhci-dbc.c
index 8e2037f1a5f7..c45e4b6825cc 100644
--- a/xen/drivers/char/xhci-dbc.c
+++ b/xen/drivers/char/xhci-dbc.c
@@ -1216,20 +1216,28 @@ static void __init cf_check dbc_uart_init_postirq(struct serial_port *port)
         break;
     }
 #ifdef CONFIG_X86
-    /*
-     * This marks the whole page as R/O, which may include other registers
-     * unrelated to DbC. Xen needs only DbC area protected, but it seems
-     * Linux's XHCI driver (as of 5.18) works without writting to the whole
-     * page, so keep it simple.
-     */
-    if ( rangeset_add_range(mmio_ro_ranges,
-                PFN_DOWN((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
-                         uart->dbc.xhc_dbc_offset),
-                PFN_UP((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
-                       uart->dbc.xhc_dbc_offset +
-                sizeof(*uart->dbc.dbc_reg)) - 1) )
-        printk(XENLOG_INFO
-               "Error while adding MMIO range of device to mmio_ro_ranges\n");
+    if ( subpage_mmio_ro_add(
+             (uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
+              uart->dbc.xhc_dbc_offset,
+             sizeof(*uart->dbc.dbc_reg)) )
+    {
+        printk(XENLOG_WARNING
+               "Error while marking MMIO range of XHCI console as R/O, "
+               "making the whole device R/O (share=no)\n");
+        uart->dbc.share = XHCI_SHARE_NONE;
+        if ( pci_ro_device(0, uart->dbc.sbdf.bus, uart->dbc.sbdf.devfn) )
+            printk(XENLOG_WARNING
+                   "Failed to mark read-only %pp used for XHCI console\n",
+                   &uart->dbc.sbdf);
+        if ( rangeset_add_range(mmio_ro_ranges,
+                 PFN_DOWN((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
+                          uart->dbc.xhc_dbc_offset),
+                 PFN_UP((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
+                        uart->dbc.xhc_dbc_offset +
+                        sizeof(*uart->dbc.dbc_reg)) - 1) )
+            printk(XENLOG_INFO
+                   "Error while adding MMIO range of device to mmio_ro_ranges\n");
+    }
 #endif
 }
 
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 04:22:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 04:22:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762582.1172758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW72o-0007xa-3T; Tue, 23 Jul 2024 04:22:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762582.1172758; Tue, 23 Jul 2024 04: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 1sW72n-0007wo-W5; Tue, 23 Jul 2024 04:22:33 +0000
Received: by outflank-mailman (input) for mailman id 762582;
 Tue, 23 Jul 2024 04:22:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW72n-0007wF-5J; Tue, 23 Jul 2024 04:22:33 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW72n-0003pb-3b; Tue, 23 Jul 2024 04:22:33 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW72m-0007jO-KK; Tue, 23 Jul 2024 04:22:32 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sW72m-00058p-Jc; Tue, 23 Jul 2024 04:22: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=gQwRNnC2eKC1DIj4ER3rYOnmaaQoKtzUkzTEI7LXVro=; b=dVOhYPpbPDvCbPyz4wLfVHIyKv
	EuIlBBxIMzbAbwhvkFxn72qWrT0m6itTEoSnIaqo8uUIGmFrL0pL/ySdBnEONGqPaFGhX8mYWXlWe
	qEQLj50XaNKLfC8rxI7zZXi0F6opLu+gfxsAa3y6wUYxIOfQXiimUBFS/EXKwpJvvxik=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186952-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186952: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qcow2:guest-saverestore:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e44f33ccddc20079d9a22e1f0659c88fde0f4eb2
X-Osstest-Versions-That:
    xen=e5182b40cf4bbb89292d66b8f3047a9ee913a90a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 04:22:32 +0000

flight 186952 xen-unstable real [real]
flight 186957 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186952/
http://logs.test-lab.xenproject.org/osstest/logs/186957/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qcow2    16 guest-saverestore   fail pass in 186957-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186933
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186933
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186933
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186933
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186933
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186933
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e44f33ccddc20079d9a22e1f0659c88fde0f4eb2
baseline version:
 xen                  e5182b40cf4bbb89292d66b8f3047a9ee913a90a

Last test of basis   186933  2024-07-22 01:53:55 Z    1 days
Testing same since   186952  2024-07-22 16:07:16 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  George Dunlap <george.dunlap@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Matthew Barnes <matthew.barnes@cloud.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Sergiy Kibrik <Sergiy_Kibrik@epam.com>
  Tamas K Lengyel <tamas@tklengyel.com>
  Victor Lira <victorm.lira@amd.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    fail    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   e5182b40cf..e44f33ccdd  e44f33ccddc20079d9a22e1f0659c88fde0f4eb2 -> master


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 05:44:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 05:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762609.1172815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW8Je-0002JF-Hd; Tue, 23 Jul 2024 05:44:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762609.1172815; Tue, 23 Jul 2024 05:44: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 1sW8Je-0002J8-Ei; Tue, 23 Jul 2024 05:44:02 +0000
Received: by outflank-mailman (input) for mailman id 762609;
 Tue, 23 Jul 2024 05:44:01 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW8Jc-0002Iy-VE; Tue, 23 Jul 2024 05:44:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW8Jc-0005hV-Ju; Tue, 23 Jul 2024 05:44:00 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sW8Jc-0001Ls-7Q; Tue, 23 Jul 2024 05:44:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sW8Jc-0002fn-71; Tue, 23 Jul 2024 05:44: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=13ESbZrhhqF8MRqQIbvi3lvHeXvpPJ4h1wZvqNrOVM4=; b=co3ua1hk5ctQ1iF9F0usOSGgq5
	76gs1bR/sMgrbx7sd8KAZodcUzsZcBgvXhjwx8lQqkAhwc0f4ipuEhVKY83SDM0/loimuDOVrdH/5
	6uGDL/JdsPoY5d/z7v+/auySv7EyHX6CsnMPRmxNDwuHJ1the2cBe0FPjFBkeCSxSY7U=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186958-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186958: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=e10de1cb0345e54c0b4d83f5979a76111d10d6c7
X-Osstest-Versions-That:
    ovmf=c5582e435c2ed7faa5bee46b5c7a5d04b8edfeaa
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 05:44:00 +0000

flight 186958 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186958/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 e10de1cb0345e54c0b4d83f5979a76111d10d6c7
baseline version:
 ovmf                 c5582e435c2ed7faa5bee46b5c7a5d04b8edfeaa

Last test of basis   186956  2024-07-23 00:13:13 Z    0 days
Testing same since   186958  2024-07-23 03:41:28 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Oliver Smith-Denny <osde@linux.microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   c5582e435c..e10de1cb03  e10de1cb0345e54c0b4d83f5979a76111d10d6c7 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 06:34:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 06:34:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762620.1172826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW96M-0000S5-6S; Tue, 23 Jul 2024 06:34:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762620.1172826; Tue, 23 Jul 2024 06:34:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW96M-0000Ry-32; Tue, 23 Jul 2024 06:34:22 +0000
Received: by outflank-mailman (input) for mailman id 762620;
 Tue, 23 Jul 2024 06: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=Rd17=OX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sW96K-0000Rs-Nb
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 06:34:20 +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 96dbab25-48bd-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 08:34:19 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a7a8caef11fso57462966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 23: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
 a640c23a62f3a-a7a3c785e8csm500246466b.23.2024.07.22.23.34.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 23: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: 96dbab25-48bd-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721716458; x=1722321258; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hgqIION40vD3WRKYEZWCwDKvotJThWB8PNCLWvnUZ44=;
        b=K+HvLXEpjtB7knbpPcCtbSg1ssZKjXzFUtikjwP01Dq7fpTrdMxUPwWGT1fkhJhnc6
         xAlkWg96Viw5i/A0scoz+0fSOS0GOLMp2lyKSBGUX8TaKA6ETZd5Ofcy/6ZZshl+lt4w
         UBulspeBestGf6CVQ+z7XK+wHoQt+afQwn4gmUgqZCNjXrKd3ytBrtvHS0ZUpCFgXMF1
         uiqHtiMOfd9auGImZAaB3Zp+E9TZEglT0Hz9tUE6cqTfPDZOfEmL3H7X8tbv766tQnmO
         apTGUJaJ6r9yF0nN+fa9nnEDR0WjizWqUEj8sQ1bftGfyktuqkaX1UDHknt8Xj9gfkaf
         hyfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721716458; x=1722321258;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hgqIION40vD3WRKYEZWCwDKvotJThWB8PNCLWvnUZ44=;
        b=EDqfuHR/zG7ABKhITt9+3rHgaF8ywzF7+53acQu/Ez1wONZWIRSnczse5Cg3i9OdXf
         +2J40dLp8JhlIFL2hcuRrm0M96FZJjR+1jos1ZckJgwtk8f3OvKZ2epP/F/lfqFMCrL3
         jil49qsmHeey6UzgGZwhMG8pOVHverMDc/vspvA2q+VgWujMEsB2mkOxWerNzF30GZZ7
         CwTPp3roHqExqNsHMNRNAKpY1P5vnPrib0ki7egpCfuJRnGE/ntEm4g+gp6LL8isA0zN
         vnds1Zn4su+VRYz/OZF7z3RBKq/dSvH7P3GqYgFtcc+/zyAtvAhma8HR6embW2yCWh9L
         hGzQ==
X-Forwarded-Encrypted: i=1; AJvYcCUUg0P162tyF/5g8ymcxoc3I84chFa8NrhfMUfuOeGll7vzJMHhmt1qkPWkifhLfu8o3LSkRxm7xAVbTV5/gpnE6EcTQYPEsmXIRTr5t8o=
X-Gm-Message-State: AOJu0Yzfpj4kvvjl51PSEbWo/UHkJS7PLa+j6U6lmJlZzGTlrMCdJbVk
	2DwU+cONhSpy30XcgAvkUijwXT3HIfCLoWX9hmUo8l/h1Ocl8aKAwHVkK0MVkEeHLDtztLbX+6w
	=
X-Google-Smtp-Source: AGHT+IFiJmWq4KS1WI6gjSn/7KuYqIMvbgC9VAHqbTsOd1kHarRLfjki1LTjOb+kds23WuYPd9MFQA==
X-Received: by 2002:a17:906:6a19:b0:a7a:8e0f:aaf0 with SMTP id a640c23a62f3a-a7a8e1136bamr103292566b.36.1721716450751;
        Mon, 22 Jul 2024 23:34:10 -0700 (PDT)
Message-ID: <196197bb-3ab0-4af1-b9c8-41d1008caa19@suse.com>
Date: Tue, 23 Jul 2024 08:34:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/efi: Unlock NX if necessary
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Gene Bright <gene@cyberlight.us>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-3-andrew.cooper3@citrix.com>
 <9123e966-1ec6-4853-b6a2-f92e21dc784c@suse.com>
 <f53e8b5b-1a89-4190-a6bc-495e8487384f@citrix.com>
 <243d89c1-4e23-4ecb-be4a-0ab1e09e0938@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: <243d89c1-4e23-4ecb-be4a-0ab1e09e0938@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.07.2024 19:38, Andrew Cooper wrote:
> On 22/07/2024 6:04 pm, Andrew Cooper wrote:
>> On 22/07/2024 11:43 am, Jan Beulich wrote:
>>> On 22.07.2024 12:18, Andrew Cooper wrote:
>>>> --- a/xen/arch/x86/efi/efi-boot.h
>>>> +++ b/xen/arch/x86/efi/efi-boot.h
>>>> @@ -736,13 +736,33 @@ static void __init efi_arch_handle_module(const struct file *file,
>>>>      efi_bs->FreePool(ptr);
>>>>  }
>>>>  
>>>> +static bool __init intel_unlock_nx(void)
>>>> +{
>>>> +    uint64_t val, disable;
>>>> +
>>>> +    rdmsrl(MSR_IA32_MISC_ENABLE, val);
>>>> +
>>>> +    disable = val & MSR_IA32_MISC_ENABLE_XD_DISABLE;
>>>> +
>>>> +    if ( !disable )
>>>> +        return false;
>>>> +
>>>> +    wrmsrl(MSR_IA32_MISC_ENABLE, val & ~disable);
>>> The base ISA not having ANDN or NAND (and a prereq to my patch to add
>>> minimum-ABI-level control to the build machinery still sitting there
>>> unreviewed), using "val ^ disable" here would likely produce slightly
>>> better code for the time being.
>> While that might technically be true, you're assuming that everyone
>> reading the code can de-obfuscate ^ back into &~, and that the compiler
>> hasn't made its own alternative arrangements.
> 
> In fact, the compiler sees through this "clever" trick and undoes the XOR.
> 
> Swapping &~ for ^ makes no change in the compiled binary, because in
> both cases GCC chooses a BTR instruction instead.

Oh, okay.

> While BTR might be a poor choice of instruction for this purpose, it
> reinforces my opinion that trickery such as this is not something we
> want to do.

Just to mention it: I wouldn't have considered this to be "trickery".

> If you want a more useful optimisation task, we should figure out how to
> write rdmsrl()/wrmsrl() better so GCC is happy working on %edx in
> isolation, rather than always merging it into %rax to be operated on. 
> The rdmsr()/wrmsr() helpers taking a split hi and lo generate far better
> code, even if they are much more awkward to use at a C level.

That may end up quite challenging without actually fiddling with the
compiler itself. Plus rdmsrl()/wrmsrl() themselves won't know how the
values are used in surrounding code, so improving one set of cases
may make things worse for another set. Introducing yet another variant
of them may also not be very desirable.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 06:36:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 06:36:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762628.1172840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW98E-00010w-I3; Tue, 23 Jul 2024 06:36:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762628.1172840; Tue, 23 Jul 2024 06: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 1sW98E-00010p-FQ; Tue, 23 Jul 2024 06:36:18 +0000
Received: by outflank-mailman (input) for mailman id 762628;
 Tue, 23 Jul 2024 06:36: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=BZ+O=OX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sW98D-0000zJ-PU
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 06:36:17 +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 dc5bff3f-48bd-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 08:36:15 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-426717a2d12so25690275e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 23:36:15 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-427d2a94c30sm186095845e9.47.2024.07.22.23.36.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 23:36: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: dc5bff3f-48bd-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721716575; x=1722321375; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ZZsEviKFG3wTW1BzdmZxS8T6IyNpfu8fyNZg8X0k2a0=;
        b=RT88ItpRJPekiNEFlVFtZA8ZPoccYKtxfz4ztfVSJ4JVKs2HrTPZg1LW/HiJ6ay6KA
         VgboPt79plA5Ulg6cjGPJ9J1a7Mz0rtXbKXkQ5CEu1JRgRYyIItRMiTQ33RhwCa2eVvm
         oxzFdsszc80B1Cw+UITL1agFKR3M/ij6YksmzQSGNxaZNc5IgSW7Zcp6QJv4EdiCIOJa
         IyaZTktPzH+0QlAMww2YVJwQ6S7m7+FdrOFSpoqJmhpKiCnDZMp5z9No7l9nF4/l28BG
         kX/OtFu2Wlhyy/Md9LDSB1ZOPi4IHei1xrQwp/86oGxDOS8Q3+vbfzeUVB7e87bJMi2C
         Ka7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721716575; x=1722321375;
        h=content-transfer-encoding:in-reply-to: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=ZZsEviKFG3wTW1BzdmZxS8T6IyNpfu8fyNZg8X0k2a0=;
        b=LS86AX8j4uM0cd2A5IqY1ttk8RDcIySCPK9CAJdbKjoGVGQ1qi2qebMg2WNYKvFkPA
         aIedDMMDHXVExGYaYAadcssVovFAPyhH8izRCcidO2ra9NrFzrWix8PoQJ5Opn2qg00X
         oXo9EX2tXUJ/ZFr0wxcuZyGg8NPM3L88+7zBG10U3L25knxYb6/bizn893FmTdgk/g6c
         8347QIXITidM18tSVQb5Z9tbeywDFHD/Kqyr8/EpdPxG8QNmcGitu+2Rqg/2tu5zQo+T
         z6u+3SwuETyYoVMsL7va1+rYfxaz+9BrCfF6abqEhHWVtWJCjI+PDBJep8M1Bdc9W0e4
         0qQw==
X-Forwarded-Encrypted: i=1; AJvYcCUPUemF/albR3n/pp/OyGyqOblaFAVU6nEuXCPC9pSNcHXFsDLj6lyoROe5btiS/fqCBVXp/2zBc/PFvpPmZxSLcIy94RRa/mHU56H3niQ=
X-Gm-Message-State: AOJu0YyM+LPfbphFVtmJ3PoDABAv5r/5NUsbAP3o1F5eNceXGG5imC4X
	5U4kozhPMnf5pPxRc+KgGEoN3+MH6gAdaRiGwLXGC16ET48RlJkARao1G/ixLl5qJW5naldeD3t
	K
X-Google-Smtp-Source: AGHT+IFN3fahd1hwRSpW0sk1Yg2dTUOzpPenu6V5gXlgFatZeJpbcGMNoAGO+hQTOB77LHTvlfdqBg==
X-Received: by 2002:a05:600c:4694:b0:426:5b19:d2b3 with SMTP id 5b1f17b1804b1-427ef3a8937mr6548375e9.14.1721716575048;
        Mon, 22 Jul 2024 23:36:15 -0700 (PDT)
Message-ID: <884d746c-47e4-4d0f-87a9-e2a03d2a3286@suse.com>
Date: Tue, 23 Jul 2024 08:36:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] mini-os: remove sanity_check()
To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
 minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org, wl@xen.org
References: <20240722150141.31391-1-jgross@suse.com>
 <20240722150141.31391-5-jgross@suse.com>
 <20240722213544.hjyohnoz4mtcfltr@begin>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240722213544.hjyohnoz4mtcfltr@begin>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 22.07.24 23:35, Samuel Thibault wrote:
> Juergen Gross, le lun. 22 juil. 2024 17:01:41 +0200, a ecrit:
>> Remove the sanity_check() function, as it is used nowhere.
>>
>> Since any application linked with Mini-OS can't call sanity_check()
>> either (there is no EXPORT_SYMBOL for it), there is zero chance of
>> breaking any use case.
> 
> Don't we still want to keep it around, at least as formal documentation
> of the expected status of the list?

Hmm, is it really worth the extra code?

There are 2 ASSERT()s I'm deleting: one testing the allocation bitmap
to match the comment further up:

/*
  * ALLOCATION BITMAP
  *  One bit per page of memory. Bit set => page is allocated.
  */

And the other one testing the linked lists being correct, which IMO
doesn't need any further documentation.


Juergen


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 06:38:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 06:38:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762637.1172850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW9AT-0001q3-Uy; Tue, 23 Jul 2024 06:38:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762637.1172850; Tue, 23 Jul 2024 06:38:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sW9AT-0001pw-SM; Tue, 23 Jul 2024 06:38:37 +0000
Received: by outflank-mailman (input) for mailman id 762637;
 Tue, 23 Jul 2024 06: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=Rd17=OX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sW9AS-0001pl-Si
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 06:38: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 2f5c1ec4-48be-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 08:38:34 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a7aa212c1c9so2385166b.2
 for <xen-devel@lists.xenproject.org>; Mon, 22 Jul 2024 23:38: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-a7a3c917fd1sm501789366b.151.2024.07.22.23.38.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 22 Jul 2024 23:38: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: 2f5c1ec4-48be-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721716714; x=1722321514; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JvsPOLHO4JZdXg1CzUSHXhI3NoYqUBa7NCaPlCwzZT0=;
        b=ItvYW0Bsz5ZH85anZWZMwmXIb9QJBy5TFvUR8DaWuiSooNRfEA3kG1GmXX/LLlIb7u
         3q7GN5jddY6CyYPIOMggVAV00gCzogWX9IL1sSCMwTS9G7UEK4y3dlYJl66v7G5Tugsc
         wsnE115zwVczeN4W/7lkeRiKnqME3Yb4DtKWW3AfaUlWWwe4Rwf6/EUYyxl+z5PVqF9I
         JG3B76OMlD7R9cPe0KwsTY6bKc88bVR3I8sFpBJw2AaPTZIy2kzhkTa84ddo/e6rQLgP
         sCmPSatOYixBP/iU0pmfhMdSDQ3Unywub6UFJUmv9NjLkYqyzQOH3QBVj/h8HPJJX1mV
         xWMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721716714; x=1722321514;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JvsPOLHO4JZdXg1CzUSHXhI3NoYqUBa7NCaPlCwzZT0=;
        b=Y5UeJoFjm0XPElE1rmKdRApVxlwDqdtFH1/M/tv4esMHmyDDBf+LHSNiEIV5ETGd1t
         c5Xj6HY58eA40abpL4fgadZHxSm7l4d34Ns9uPZiKwWFxxLp0J/9r0oyoMA6p6YXbxkJ
         zRcBZy9W5wOc7JzgczLXziaxXSQk95kcrDOFwWRryldSbUfcrGYz889PJE2M+A9ab2/H
         YnVFpii0oV/tM4XdjZMujIcIowSKhIy69PATkSsI9BFYOxhwZb0f42Uwu6AyZ9gpijEF
         5G/IAUCVtFNoVxnT6nIm1gioHIEfZqusp6kTWwmKs6lR9bj3sMtNh6bC8b/dxmxqeDJi
         /yaQ==
X-Forwarded-Encrypted: i=1; AJvYcCWDeYjMMwbKd0diFKIATic3S6XcLy6hYgkSmvJybINQCvqD6fnUY34ExtvmnTZtuPCXvWqu2GPG22h1W/5YLGGjc768UihnSCnkw5mkCKk=
X-Gm-Message-State: AOJu0YycQJ5BuGXhOblxkcpztzYpZzZl4JYveJmRbiZQig93FixN5/GR
	/6i3da03tBzyjjipe1aPVCogDadFT3AmT4SmGYIu9kqZ9gJASjk+MDgBNcfafg==
X-Google-Smtp-Source: AGHT+IHhyY7fMS5olQyGKrXxy1DBuLtT+jw+VOxIaKdieC+D/pg+XCf8vQN7daXH6PO7PrWuf5tfgg==
X-Received: by 2002:a17:907:3f1e:b0:a72:50f7:3c6f with SMTP id a640c23a62f3a-a7a87c841c9mr144124666b.14.1721716714245;
        Mon, 22 Jul 2024 23:38:34 -0700 (PDT)
Message-ID: <89c3a016-11ea-4c05-95c9-3941fd194fb6@suse.com>
Date: Tue, 23 Jul 2024 08:38:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] arch/domain: Clean up the idle domain remnants in
 arch_domain_create()
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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
 <20240718215744.3892072-5-andrew.cooper3@citrix.com>
 <be94ac73-cb8f-4bb3-a529-4c3b47a939b3@suse.com>
 <e3f64d67-75eb-4c7b-97fb-ca39edb5ddb9@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: <e3f64d67-75eb-4c7b-97fb-ca39edb5ddb9@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.07.2024 19:46, Andrew Cooper wrote:
> On 22/07/2024 8:23 am, Jan Beulich wrote:
>> On 18.07.2024 23:57, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/domain.c
>>> +++ b/xen/arch/x86/domain.c
>>> @@ -791,23 +791,6 @@ int arch_domain_create(struct domain *d,
>>>  
>>>      spin_lock_init(&d->arch.e820_lock);
>>>  
>>> -    /* Minimal initialisation for the idle domain. */
>>> -    if ( unlikely(is_idle_domain(d)) )
>>> -    {
>>> -        arch_init_idle_domain(d);
>>> -
>>> -        d->arch.cpu_policy = ZERO_BLOCK_PTR; /* Catch stray misuses. */
>> This line looks to be lost in the process. Already in an earlier patch it
>> should move to arch_init_idle_domain(), shouldn't it? With that adjustment
>> for the entire series:
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> It was semi-intentional.  cpu_policy is just one of many pointers, and I
> don't see a good reason for it to be treated specially.
> 
> It's been around for years now, and never one triggered, not to mention
> the fact that there's a dwindling set of machines where a dereference of
> 0 isn't instantly fatal anyway.

Okay, yet would you mind mentioning this removal as intentional then in
the description?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:03:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:03:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762655.1172860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAUc-0005Z3-SZ; Tue, 23 Jul 2024 08:03:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762655.1172860; Tue, 23 Jul 2024 08:03: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 1sWAUc-0005Yw-Px; Tue, 23 Jul 2024 08:03:30 +0000
Received: by outflank-mailman (input) for mailman id 762655;
 Tue, 23 Jul 2024 08:03: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=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWAUb-0005Yq-5K
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:03:29 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a91826f-48ca-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:03:27 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2ef2cb7d562so26450541fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 01:03: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: 0a91826f-48ca-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721721806; x=1722326606; 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=BEOdj/phYWdWdsKjX0e/gVICoNaoHrf8S+TSLd5O2Kw=;
        b=DaIEtt2uWuUZe0MPDeMu5O64UkjCAaMZqE1/lTJtDTAdViQb/msFAcDh5WmML80wnN
         ZgYAPZgDqgo8zmODPIFAVdjrc0wYsHp7j71OIR4orvGRSbi55ICWqzmTeTvKkQl2ZM5r
         QuFzv9pcN9UxHQBSJDBEDJ/0avA3RD5503Mu5S/gtIYNH9eFrNBGCjEHL3FZ+lAju+w5
         8oMBvxPqyVqSAhW745uWJy5S6lw0NUiTwxgxHy82PtNmVOH2kXu5oLs93G20Mvlr47LR
         82qK0kGZc1QcYZoZbyZ9WyLP/G2ivYbuLhcmFtYN7YbdtgUWfEmYSDauOH73TKaXY3dA
         JctA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721721806; x=1722326606;
        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=BEOdj/phYWdWdsKjX0e/gVICoNaoHrf8S+TSLd5O2Kw=;
        b=etDFn6pJwtmfUdFDcm0giJFyFZD8LVa+r0VLvR5zg6+guYqPBN+BoOl6Kpp6eEafQ+
         FDmnYCjCgkxAMbCaasxAbzx7s9ecUt9kstGvbXPYH9J137LENJ/rMIAiQ56W8P6PO7jU
         BgJJnwpKzkIHJIM5YPKFP/s+xyfQwxZf3EkQreLvbXusBw0rOzGPFBPIWAVPu5PQ9Oe/
         b9xXZRdXSOLiNbBjck7C2iWoMtopXEvZDAjnjgYBAGUjvcgsWfHe6m25IuoriQIs388i
         EvawTweh91ByquJKjDt6duGbIzS97Xqi03FR27qf2aeN2yIdUl7aHqyNKzOJ/Q6yoYnb
         1zWw==
X-Forwarded-Encrypted: i=1; AJvYcCXIGPaE4M1nv5DRN4dFTMMh4yi/AaWD8/RWqWE3tU9kg28pyqIZ9kP0oepEsLL/OufK3KAU4oboRih4IrMc+7pSOvQRmpdE4JDtg2Lnbes=
X-Gm-Message-State: AOJu0YxW2kXrJAbFi3p8z8RPoNxwzDq3AFFphOAN53yjCg7b+14h6rN9
	WuUqcUelaStTfE8PljKnPpaH4UatztYk4nxR3Y0MGOjJK9YPaHuLp5QdweURVk3DWA+TfmaEorE
	BQkJtYQWP8ir+D5Tcw/QOv+TtQRs=
X-Google-Smtp-Source: AGHT+IHxTO08JSAdq2IiMOYm+XVcE88HlXJMPZ6RAxCGT0yxd5dKsQghqIH9BniMogtniivRgQSuCMD+ymKrWTaeVJo=
X-Received: by 2002:a05:6512:6c4:b0:52e:9481:eaa1 with SMTP id
 2adb3069b0e04-52efb74ea1dmr7195633e87.23.1721721806072; Tue, 23 Jul 2024
 01:03:26 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com> <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
 <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org> <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
 <26ae01e2-d085-48d7-8b1f-da1e44b01e53@xen.org>
In-Reply-To: <26ae01e2-d085-48d7-8b1f-da1e44b01e53@xen.org>
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Date: Tue, 23 Jul 2024 10:02:48 +0200
Message-ID: <CAMacjJwWLjGcFbYEhCPyNEW_+sfb51+XtKqyBcc2JGm=D5bf0w@mail.gmail.com>
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
To: Julien Grall <julien@xen.org>
Cc: Oleksii Kurochko <inisider@gmail.com>, Jan Beulich <jbeulich@suse.com>, 
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, 
	Connor Davis <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000a734c3061de598fd"

--000000000000a734c3061de598fd
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Julien,

On Mon, Jul 22, 2024 at 7:27=E2=80=AFPM Julien Grall <julien@xen.org> wrote=
:

> Hi,
>
> >> On 22/07/2024 15:44, Oleksii Kurochko wrote:
> >>> On Mon, 2024-07-22 at 14:54 +0200, Jan Beulich wrote:
> >>>> On 12.07.2024 18:22, Oleksii Kurochko wrote:
> >>>>> --- /dev/null
> >>>>> +++ b/xen/arch/riscv/include/asm/pmap.h
> >>>>> @@ -0,0 +1,28 @@
> >>>>> +#ifndef __ASM_PMAP_H__
> >>>>> +#define __ASM_PMAP_H__
> >>>>> +
> >>>>> +#include <xen/bug.h>
> >>>>> +#include <xen/mm.h>
> >>>>> +
> >>>>> +#include <asm/fixmap.h>
> >>>>> +
> >>>>> +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
> >>>>> +{
> >>>>> +    pte_t *entry =3D &xen_fixmap[slot];
> >>>>> +    pte_t pte;
> >>>>> +
> >>>>> +    ASSERT(!pte_is_valid(*entry));
> >>>>> +
> >>>>> +    pte =3D mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
> >>>>> +    pte.pte |=3D PTE_LEAF_DEFAULT;
> >>>>> +    write_pte(entry, pte);
> >>>>> +}
> >>>>> +
> >>>>> +static inline void arch_pmap_unmap(unsigned int slot)
> >>>>> +{
> >>>>> +    pte_t pte =3D {};
> >>>>> +
> >>>>> +    write_pte(&xen_fixmap[slot], pte);
> >>>>> +}
> >>>>
> >>>> Why are these not using set_fixmap() / clear_fixmap()
> >>>> respectively?
> >>> They haven't been introduced yet. And I thought that these fucntion
> >>> are
> >>> used only in pmap_{un}map() and that is the reason why I decided to
> >>> not
> >>> introduce them. But while writing the answer on another comment, I
> >>> found other places where set_fixmap() / clear_fixmap() are used, so
> >>> I
> >>> will introduce them and reuse here.
> >>
> >> I am guessing you are going to implement set_fixmap()/clear_fixmap()
> >> using map_pages_to_xen(). If so, for early boot you are going to end
> >> up
> >> in a circular loop because map_pages_to_xen() will likely use pmap()
> >> which will call set_fixmap().
> > I am going to implement that in the following way as I faced the
> > described by you issue when I first time tried to implement it using
> > map_pages_to_xen():
> What's wrong with keeping the arch_pmap_*() as-is and call
> map_pages_to_xen() in the fixmap?
>
> At least this would be consistent with what other architectures does and
> less risky (see below).
>
Then I misunderstood you, if not to use {set/clear}_fixmap() in arch_pmap()
then everything should be fine.
Then I think it is needed to add the comment also above arch_pmap_*()
function why it isn't used {set/clear}_fixmap()
inside. ( or update the commit message )


>
> >     /* Map a 4k page in a fixmap entry */
> >     void set_fixmap(unsigned map, mfn_t mfn, unsigned int flags)
> >     {
> >         pte_t pte;
> >
> >         pte =3D mfn_to_xen_entry(mfn, flags);
> >         pte.pte |=3D PTE_LEAF_DEFAULT;
> >         write_pte(&xen_fixmap[pt_index(0, FIXMAP_ADDR(map))], pte);
>
> It would be saner to check if you are not overwriting any existing
> mapping as otherwise you will probably need a TLB flush.
>
> >     }
> >
> >     /* Remove a mapping from a fixmap entry */
> >     void clear_fixmap(unsigned map)
> >     {
> >         pte_t pte =3D {0};
> >         write_pte(&xen_fixmap[pt_index(0, FIXMAP_ADDR(map))], pte);
>
> Don't you need a TLB flush?
>
Inside write_pte() there is "sfence.vma".

But probably it would be better to add flush_xen_tlb_range_va_local() or
something similar here in case if someone will decide to update write_pte()=
.

~ Oleksii

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

<div dir=3D"ltr"><div>Hi Julien,</div><br><div class=3D"gmail_quote"><div d=
ir=3D"ltr" class=3D"gmail_attr">On Mon, Jul 22, 2024 at 7:27=E2=80=AFPM Jul=
ien Grall &lt;<a href=3D"mailto:julien@xen.org">julien@xen.org</a>&gt; wrot=
e:<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">Hi,<br><br>
&gt;&gt; On 22/07/2024 15:44, Oleksii Kurochko wrote:<br>
&gt;&gt;&gt; On Mon, 2024-07-22 at 14:54 +0200, Jan Beulich wrote:<br>
&gt;&gt;&gt;&gt; On 12.07.2024 18:22, Oleksii Kurochko wrote:<br>
&gt;&gt;&gt;&gt;&gt; --- /dev/null<br>
&gt;&gt;&gt;&gt;&gt; +++ b/xen/arch/riscv/include/asm/pmap.h<br>
&gt;&gt;&gt;&gt;&gt; @@ -0,0 +1,28 @@<br>
&gt;&gt;&gt;&gt;&gt; +#ifndef __ASM_PMAP_H__<br>
&gt;&gt;&gt;&gt;&gt; +#define __ASM_PMAP_H__<br>
&gt;&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt;&gt; +#include &lt;xen/bug.h&gt;<br>
&gt;&gt;&gt;&gt;&gt; +#include &lt;xen/mm.h&gt;<br>
&gt;&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt;&gt; +#include &lt;asm/fixmap.h&gt;<br>
&gt;&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt;&gt; +static inline void arch_pmap_map(unsigned int slot, m=
fn_t mfn)<br>
&gt;&gt;&gt;&gt;&gt; +{<br>
&gt;&gt;&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0 pte_t *entry =3D &amp;xen_fixmap[s=
lot];<br>
&gt;&gt;&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0 pte_t pte;<br>
&gt;&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0 ASSERT(!pte_is_valid(*entry));<br>
&gt;&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0 pte =3D mfn_to_xen_entry(mfn, PAGE=
_HYPERVISOR_RW);<br>
&gt;&gt;&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0 pte.pte |=3D PTE_LEAF_DEFAULT;<br>
&gt;&gt;&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0 write_pte(entry, pte);<br>
&gt;&gt;&gt;&gt;&gt; +}<br>
&gt;&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt;&gt; +static inline void arch_pmap_unmap(unsigned int slot)=
<br>
&gt;&gt;&gt;&gt;&gt; +{<br>
&gt;&gt;&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0 pte_t pte =3D {};<br>
&gt;&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0 write_pte(&amp;xen_fixmap[slot], p=
te);<br>
&gt;&gt;&gt;&gt;&gt; +}<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Why are these not using set_fixmap() / clear_fixmap()<br>
&gt;&gt;&gt;&gt; respectively?<br>
&gt;&gt;&gt; They haven&#39;t been introduced yet. And I thought that these=
 fucntion<br>
&gt;&gt;&gt; are<br>
&gt;&gt;&gt; used only in pmap_{un}map() and that is the reason why I decid=
ed to<br>
&gt;&gt;&gt; not<br>
&gt;&gt;&gt; introduce them. But while writing the answer on another commen=
t, I<br>
&gt;&gt;&gt; found other places where set_fixmap() / clear_fixmap() are use=
d, so<br>
&gt;&gt;&gt; I<br>
&gt;&gt;&gt; will introduce them and reuse here.<br>
&gt;&gt;<br>
&gt;&gt; I am guessing you are going to implement set_fixmap()/clear_fixmap=
()<br>
&gt;&gt; using map_pages_to_xen(). If so, for early boot you are going to e=
nd<br>
&gt;&gt; up<br>
&gt;&gt; in a circular loop because map_pages_to_xen() will likely use pmap=
()<br>
&gt;&gt; which will call set_fixmap().<br>
&gt; I am going to implement that in the following way as I faced the<br>
&gt; described by you issue when I first time tried to implement it using<b=
r>
&gt; map_pages_to_xen():<br>
What&#39;s wrong with keeping the arch_pmap_*() as-is and call <br>
map_pages_to_xen() in the fixmap?<br>
<br>
At least this would be consistent with what other architectures does and <b=
r>
less risky (see below).<br></blockquote><div>Then I misunderstood=C2=A0you,=
 if not to use {set/clear}_fixmap() in arch_pmap() then everything should b=
e fine.</div><div>Then I think it is needed to add the comment also above a=
rch_pmap_*() function why it isn&#39;t used {set/clear}_fixmap()</div><div>=
inside. ( or update the commit message )</div><div>=C2=A0</div><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px sol=
id rgb(204,204,204);padding-left:1ex">
<br>
&gt;=C2=A0 =C2=A0 =C2=A0/* Map a 4k page in a fixmap entry */<br>
&gt;=C2=A0 =C2=A0 =C2=A0void set_fixmap(unsigned map, mfn_t mfn, unsigned i=
nt flags)<br>
&gt;=C2=A0 =C2=A0 =C2=A0{<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pte_t pte;<br>
&gt;=C2=A0 =C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pte =3D mfn_to_xen_entry(mfn, flags);=
<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pte.pte |=3D PTE_LEAF_DEFAULT;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0write_pte(&amp;xen_fixmap[pt_index(0,=
 FIXMAP_ADDR(map))], pte);<br>
<br>
It would be saner to check if you are not overwriting any existing <br>
mapping as otherwise you will probably need a TLB flush.<br>
<br>
&gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0/* Remove a mapping from a fixmap entry */<br>
&gt;=C2=A0 =C2=A0 =C2=A0void clear_fixmap(unsigned map)<br>
&gt;=C2=A0 =C2=A0 =C2=A0{<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pte_t pte =3D {0};<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0write_pte(&amp;xen_fixmap[pt_index(0,=
 FIXMAP_ADDR(map))], pte);<br>
<br>
Don&#39;t you need a TLB flush?<br></blockquote><div>Inside write_pte() the=
re is &quot;sfence.vma&quot;.</div><div><br></div><div>But probably it woul=
d be better to add flush_xen_tlb_range_va_local() or</div><div>something si=
milar here in case if someone will=C2=A0decide to update write_pte().</div>=
<div><br></div><div>~ Oleksii=C2=A0</div></div></div>

--000000000000a734c3061de598fd--


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:08:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:08:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762664.1172869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAZ8-0006RK-G1; Tue, 23 Jul 2024 08:08:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762664.1172869; Tue, 23 Jul 2024 08:08: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 1sWAZ8-0006RD-DQ; Tue, 23 Jul 2024 08:08:10 +0000
Received: by outflank-mailman (input) for mailman id 762664;
 Tue, 23 Jul 2024 08:08:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWAZ7-0006R3-8S; Tue, 23 Jul 2024 08:08:09 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWAZ6-0000hy-T6; Tue, 23 Jul 2024 08:08:08 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWAZ6-0000DD-LX; Tue, 23 Jul 2024 08:08:08 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWAZ6-0005ai-L9; Tue, 23 Jul 2024 08: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QXTNYusbcADYCKPiClXui8o/I/veP5OuwpZPd89/EZw=; b=ZbLu7RwWiuKgAjJb6pTrkystw0
	b1zL8V2PFTPZMOhr3BifY90AMUpuFuhDtERzKfwYJebuwfB1mnBMaIPEErJIHHV8YADKjauIX4eKh
	iPBzpRiN/+d8R7i+YmsJW/3kH5TQUnnhJQCs0lQz8uJnjodZ0iGFHx2bfyCUlnzRbQGk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186961-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186961: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=c5ab17430b2579dd79e3cbd497b8b9deccd34abc
X-Osstest-Versions-That:
    ovmf=e10de1cb0345e54c0b4d83f5979a76111d10d6c7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 08:08:08 +0000

flight 186961 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186961/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 c5ab17430b2579dd79e3cbd497b8b9deccd34abc
baseline version:
 ovmf                 e10de1cb0345e54c0b4d83f5979a76111d10d6c7

Last test of basis   186958  2024-07-23 03:41:28 Z    0 days
Testing same since   186961  2024-07-23 06:15:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Oliver Smith-Denny <osde@linux.microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   e10de1cb03..c5ab17430b  c5ab17430b2579dd79e3cbd497b8b9deccd34abc -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:15:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:15:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762675.1172900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgO-0008P3-Kp; Tue, 23 Jul 2024 08:15:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762675.1172900; Tue, 23 Jul 2024 08:15: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 1sWAgO-0008Ow-Hg; Tue, 23 Jul 2024 08:15:40 +0000
Received: by outflank-mailman (input) for mailman id 762675;
 Tue, 23 Jul 2024 08:15: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgN-0008AN-JK
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:15:39 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be7d88b8-48cb-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 10:15:38 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id DF8D44EE0743;
 Tue, 23 Jul 2024 10:15: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: be7d88b8-48cb-11ef-bbfe-fd08da9f4363
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	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>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 02/17] misra: modify deviations for empty and generated headers
Date: Tue, 23 Jul 2024 10:14:54 +0200
Message-Id: <bbfc7ed03009f4061562525d2f736bb4816993ed.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

This patch modifies deviations for Directive 4.10:
"Precautions shall be taken in order to prevent the contents of
a header file being included more than once"

This patch avoids the file-based deviation for empty headers, and
replaces it with a comment-based one using the format specified in
docs/misra/safe.json.

Generated headers are not generally safe against multi-inclusions,
whether a header is safe depends on the nature of the generated code
in the header. For that reason, this patch drops the deviation for
generated headers.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

---
Changes in v4:
- rebased against current staging tree

Changes in v2:
- use the format introduced with doc/misra/safe.json instead of
  a file-based deviation for empty headers
- remove deviation for generated headers

The reason of moving the comment-based deviation in "runtime.h" is that
it should appear immediatly before the violation and, for files with no
tokens,	the location is the the last line of the file.
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 7 -------
 docs/misra/safe.json                             | 8 ++++++++
 xen/arch/arm/efi/runtime.h                       | 1 +
 xen/include/Makefile                             | 2 +-
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 0af1cb93d1..1c39a9a16d 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -72,13 +72,6 @@ they are not instances of commented-out code."
 -config=MC3R1.D4.3,reports+={deliberate, "any_area(any_loc(file(arm64_bitops))&&context(name(int_clear_mask16)))"}
 -doc_end
 
--doc_begin="This header file is autogenerated or empty, therefore it poses no
-risk if included more than once."
--file_tag+={empty_header, "^xen/arch/arm/efi/runtime\\.h$"}
--file_tag+={autogen_headers, "^xen/include/xen/compile\\.h$||^xen/include/generated/autoconf.h$||^xen/include/xen/hypercall-defs.h$"}
--config=MC3R1.D4.10,reports+={safe, "all_area(all_loc(file(empty_header||autogen_headers)))"}
--doc_end
-
 -doc_begin="Files that are intended to be included more than once do not need to
 conform to the directive."
 -config=MC3R1.D4.10,reports+={safe, "first_area(text(^/\\* This file is legitimately included multiple times\\. \\*/$, begin-4))"}
diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index 44d1c4890e..ffa8bfdc4a 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -76,6 +76,14 @@
         },
         {
             "id": "SAF-9-safe",
+            "analyser": {
+                "eclair": "MC3R1.D4.10"
+            },
+            "name": "Dir 4.10: empty headers",
+            "text": "Empty headers pose no risk if included more than once."
+        },
+        {
+            "id": "SAF-10-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/arch/arm/efi/runtime.h b/xen/arch/arm/efi/runtime.h
index 25afcebed1..4d2d40bf3c 100644
--- a/xen/arch/arm/efi/runtime.h
+++ b/xen/arch/arm/efi/runtime.h
@@ -1 +1,2 @@
 /* Placeholder for ARM-specific runtime include/declarations */
+/* SAF-9-safe empty header */
diff --git a/xen/include/Makefile b/xen/include/Makefile
index 2e61b50139..058b0a566b 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -53,7 +53,7 @@ cmd_compat_h = \
     mv -f $@.new $@
 
 quiet_cmd_stub_h = GEN     $@
-cmd_stub_h = echo '/* empty */' >$@
+cmd_stub_h = echo '/* SAF-9-safe empty header */' >$@
 
 quiet_cmd_compat_i = CPP     $@
 cmd_compat_i = $(CPP) $(filter-out -Wa$(comma)% -include %/include/xen/config.h,$(XEN_CFLAGS)) $(cppflags-y) -o $@ $<
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:15:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:15:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762673.1172879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgM-0007wI-62; Tue, 23 Jul 2024 08:15:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762673.1172879; Tue, 23 Jul 2024 08: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 1sWAgM-0007wB-3X; Tue, 23 Jul 2024 08:15:38 +0000
Received: by outflank-mailman (input) for mailman id 762673;
 Tue, 23 Jul 2024 08: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgK-0007w0-IF
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:15:36 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bbd56a9e-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:15:34 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 59F2B4EE0739;
 Tue, 23 Jul 2024 10:15: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: bbd56a9e-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>
Subject: [XEN PATCH v5 00/17] xen: address violation of MISRA C:2012 Directive 4.10
Date: Tue, 23 Jul 2024 10:14:52 +0200
Message-Id: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The Xen sources contain violations of MISRA C:2012 Directive 4.10 whose headline states:
"Precautions shall be taken in order to prevent the contents of a header file
being included more than once".

Following V2, V3 and V4, here are all the rules that have been applied:
- private headers -> <dir>__<filename>_H
- asm-generic headers -> ASM_GENERIC__<filename>_H
- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM__<architecture>__<subdir>__<filename>_H
- include/xen -> XEN__<filename>_H

Links to the discussions:
https://lists.xenproject.org/archives/html/xen-devel/2023-09/msg01928.html
https://lists.xenproject.org/archives/html/xen-devel/2023-10/msg01784.html
https://lists.xenproject.org/archives/html/xen-devel/2023-10/msg02073.html

Furthermore, the violations arising from the autogenerated header files
include/xen/compile.h and xen/hypercall-defs.h are addressed.

Changes in v5:
edit inclusion guard naming conventions, according to feedback received
edit inclusion guards in header files reflecting the naming convention
fix some rebasing mistakes left in the previous version

Changes in v4:
add/amend inclusion guards to address violations of the Directive and the new naming convention.
drop teh XEN_ prefix when needed, according to the feedback received.
add inclusion guard naming convention section in CODING_STYLE

Changes in v3:
Add/amend inclusion guards to address violations of the Directive and the new naming convention.
Remove trailing underscores.
Modify creation rule for asm-offsets.h to conform to the new standard and to not generate conflicting
guards between architectures (which is a violation of the Directive).

Alessandro Zucchelli (3):
  xen/build: address violation of MISRA C Directive 4.10
  CODING_STYLE: Add a section on header guards naming conventions
  include/asm-generic: rename inclusion guards for consistency

Maria Celeste Cesario (3):
  xen/arm: address violations of MISRA C:2012 Directive 4.10
  xen: address violations of MISRA C:2012 Directive 4.10
  xen/x86: rename inclusion guards for consistency

Nicola Vetrini (1):
  xen: add deviations for MISRA C 2012 Dir D4.10

Simone Ballarin (10):
  misra: add deviation for headers that explicitly avoid guards
  misra: modify deviations for empty and generated headers
  misra: add deviations for direct inclusion guards
  xen/arm: address violations of MISRA C:2012 Directive 4.10
  xen/x86: address violations of MISRA C:2012 Directive 4.10
  x86/EFI: address violations of MISRA C:2012 Directive 4.10
  xen/common: address violations of MISRA C:2012 Directive 4.10
  xen/efi: address violations of MISRA C:2012 Directive 4.10
  xen: address violations of MISRA C:2012 Directive 4.10
  x86/asm: address violations of MISRA C:2012 Directive 4.10

 CODING_STYLE                                  | 21 ++++++++++++
 .../eclair_analysis/ECLAIR/deviations.ecl     | 12 +++----
 docs/misra/deviations.rst                     |  6 ++++
 docs/misra/safe.json                          | 32 +++++++++++++++++++
 xen/arch/arm/efi/efi-boot.h                   |  6 ++++
 xen/arch/arm/efi/runtime.h                    |  1 +
 xen/arch/arm/include/asm/domain.h             |  6 ++--
 xen/arch/arm/include/asm/efibind.h            |  5 +++
 xen/arch/arm/include/asm/event.h              |  6 ++--
 xen/arch/arm/include/asm/grant_table.h        |  6 ++--
 xen/arch/arm/include/asm/hypercall.h          |  1 +
 xen/arch/arm/include/asm/io.h                 |  6 ++--
 xen/arch/arm/include/asm/irq.h                |  6 ++--
 xen/arch/arm/include/asm/smp.h                |  6 ++--
 xen/arch/arm/include/asm/spinlock.h           |  6 ++--
 xen/arch/arm/include/asm/system.h             |  6 ++--
 xen/arch/x86/Makefile                         |  9 +++---
 xen/arch/x86/cpu/cpu.h                        |  5 +++
 xen/arch/x86/efi/efi-boot.h                   |  5 +++
 xen/arch/x86/efi/runtime.h                    |  5 +++
 xen/arch/x86/include/asm/compat.h             |  5 +++
 xen/arch/x86/include/asm/cpufeatures.h        |  5 +--
 xen/arch/x86/include/asm/domain.h             |  6 ++--
 xen/arch/x86/include/asm/efibind.h            |  5 +++
 xen/arch/x86/include/asm/event.h              |  6 ++--
 xen/arch/x86/include/asm/grant_table.h        |  6 ++--
 xen/arch/x86/include/asm/hypercall.h          |  1 +
 xen/arch/x86/include/asm/io.h                 |  6 ++--
 xen/arch/x86/include/asm/irq.h                |  6 ++--
 xen/arch/x86/include/asm/smp.h                |  6 ++--
 xen/arch/x86/include/asm/spinlock.h           |  6 ++--
 xen/arch/x86/include/asm/system.h             |  6 ++--
 xen/arch/x86/x86_64/mmconfig.h                |  5 +++
 xen/arch/x86/x86_emulate/private.h            |  5 +++
 xen/build.mk                                  | 13 +++++---
 xen/common/decompress.h                       |  5 +++
 xen/common/efi/efi.h                          |  5 +++
 xen/common/event_channel.h                    |  5 +++
 xen/include/Makefile                          | 16 +++++++---
 xen/include/asm-generic/altp2m.h              |  6 ++--
 xen/include/asm-generic/atomic-ops.h          |  6 ++--
 xen/include/asm-generic/device.h              |  6 ++--
 xen/include/asm-generic/div64.h               |  6 ++--
 xen/include/asm-generic/hardirq.h             |  6 ++--
 xen/include/asm-generic/iocap.h               |  6 ++--
 xen/include/asm-generic/monitor.h             |  6 ++--
 xen/include/asm-generic/paging.h              |  6 ++--
 xen/include/asm-generic/percpu.h              |  6 ++--
 xen/include/asm-generic/random.h              |  6 ++--
 xen/include/asm-generic/softirq.h             |  6 ++--
 xen/include/asm-generic/vm_event.h            |  6 ++--
 xen/include/public/arch-x86/cpufeatureset.h   |  1 +
 xen/include/public/errno.h                    |  1 +
 xen/include/xen/err.h                         |  8 +++--
 xen/include/xen/pci_ids.h                     |  5 +++
 xen/include/xen/softirq.h                     |  8 +++--
 xen/include/xen/vmap.h                        |  8 +++--
 xen/scripts/Makefile.asm-generic              |  8 ++++-
 58 files changed, 268 insertions(+), 117 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:15:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:15:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762674.1172890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgN-0008AV-Di; Tue, 23 Jul 2024 08:15:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762674.1172890; Tue, 23 Jul 2024 08: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 1sWAgN-0008AO-9W; Tue, 23 Jul 2024 08:15:39 +0000
Received: by outflank-mailman (input) for mailman id 762674;
 Tue, 23 Jul 2024 08:15: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgL-0007w0-CQ
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:15:37 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bcebe19c-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:15:35 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 4B9634EE0742;
 Tue, 23 Jul 2024 10:15: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: bcebe19c-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 01/17] misra: add deviation for headers that explicitly avoid guards
Date: Tue, 23 Jul 2024 10:14:53 +0200
Message-Id: <ad912232b11d925cc5456e064ebf41eb208201e8.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Some headers, under specific circumstances (documented in a comment at
the beginning of the file), explicitly do not have strict inclusion
guards: the caller is responsible for including them correctly.

These files are not supposed to comply with Directive 4.10:
"Precautions shall be taken in order to prevent the contents of a header
file being included more than once"

This patch adds deviation cooments for headers that avoid guards.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v5:
- edit deviation description
- edit commit message
Changes in v3:
- fix inconsistent deviation ID
- change comment-based deviation text
Changes in v2:
- use the format introduced with doc/misra/safe.json instead of
  a generic text-based deviation
---
 docs/misra/safe.json                        | 8 ++++++++
 xen/include/public/arch-x86/cpufeatureset.h | 1 +
 xen/include/public/errno.h                  | 1 +
 3 files changed, 10 insertions(+)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index 3f18ef401c..44d1c4890e 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -68,6 +68,14 @@
         },
         {
             "id": "SAF-8-safe",
+            "analyser": {
+                "eclair": "MC3R1.D4.10"
+            },
+            "name": "Dir 4.10: headers that leave it up to the caller to include them correctly",
+            "text": "Headers that deliberatively leave the responsability of their correct inclusion to the caller are allowed."
+        },
+        {
+            "id": "SAF-9-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index d9eba5e9a7..3962ba9342 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -23,6 +23,7 @@
  * their XEN_CPUFEATURE() being appropriate in the included context.
  */
 
+/* SAF-8-safe inclusion procedure left to caller */
 #ifndef XEN_CPUFEATURE
 
 /*
diff --git a/xen/include/public/errno.h b/xen/include/public/errno.h
index 5a78a7607c..b9fc6762fb 100644
--- a/xen/include/public/errno.h
+++ b/xen/include/public/errno.h
@@ -17,6 +17,7 @@
  * will unilaterally #undef XEN_ERRNO().
  */
 
+/* SAF-8-safe inclusion procedure left to caller */
 #ifndef XEN_ERRNO
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:15:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:15:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762676.1172910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgR-0000FO-So; Tue, 23 Jul 2024 08:15:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762676.1172910; Tue, 23 Jul 2024 08: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 1sWAgR-0000FF-Pm; Tue, 23 Jul 2024 08:15:43 +0000
Received: by outflank-mailman (input) for mailman id 762676;
 Tue, 23 Jul 2024 08:15:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgQ-0007w0-V8
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:15:42 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c03feec9-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:15:41 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id A5D214EE0744;
 Tue, 23 Jul 2024 10:15: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: c03feec9-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 03/17] misra: add deviations for direct inclusion guards
Date: Tue, 23 Jul 2024 10:14:55 +0200
Message-Id: <f7687205a0177ff695703b77cd125e3842d63afb.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add deviation comments to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Inclusion guards must appear at the beginning of the headers
(comments are permitted anywhere).

This patch adds deviation comments using the format specified
in docs/misra/safe.json for headers with just the direct
inclusion guard before the inclusion guard since they are
safe and not supposed to comply with the directive.

Note that with SAF-10-safe in place, failures to have proper guards later
in the header files will not be reported

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

---
Changes in v5:
- rebase against the current staging tree

Changes in v4:
- Added comment clarifying that no further checks will be performed
on a file that has a SAF-10-safe deviation against missing inclusion
guards.
- rebased against the current staging tree

Changes in v3:
- fix inconsistent deviation ID
The patch has been introduced in v2.
---
 docs/misra/safe.json                 | 8 ++++++++
 xen/arch/arm/include/asm/hypercall.h | 1 +
 xen/arch/x86/include/asm/hypercall.h | 1 +
 3 files changed, 10 insertions(+)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index ffa8bfdc4a..684346386e 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -84,6 +84,14 @@
         },
         {
             "id": "SAF-10-safe",
+            "analyser": {
+                "eclair": "MC3R1.D4.10"
+            },
+            "name": "Dir 4.10: direct inclusion guard before",
+            "text": "Headers with just the direct inclusion guard before the inclusion guard are safe."
+        },
+        {
+            "id": "SAF-11-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/arch/arm/include/asm/hypercall.h b/xen/arch/arm/include/asm/hypercall.h
index ccd26c5184..07e231f8b5 100644
--- a/xen/arch/arm/include/asm/hypercall.h
+++ b/xen/arch/arm/include/asm/hypercall.h
@@ -1,3 +1,4 @@
+/* SAF-10-safe direct inclusion guard before */
 #ifndef __XEN_HYPERCALL_H__
 #error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead"
 #endif
diff --git a/xen/arch/x86/include/asm/hypercall.h b/xen/arch/x86/include/asm/hypercall.h
index ec2edc771e..389fa62af2 100644
--- a/xen/arch/x86/include/asm/hypercall.h
+++ b/xen/arch/x86/include/asm/hypercall.h
@@ -2,6 +2,7 @@
  * asm-x86/hypercall.h
  */
 
+/* SAF-10-safe direct inclusion guard before */
 #ifndef __XEN_HYPERCALL_H__
 #error "asm/hypercall.h should not be included directly - include xen/hypercall.h instead"
 #endif
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:15:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:15:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762680.1172920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgV-0000Yc-46; Tue, 23 Jul 2024 08:15:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762680.1172920; Tue, 23 Jul 2024 08:15: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 1sWAgV-0000YV-1L; Tue, 23 Jul 2024 08:15:47 +0000
Received: by outflank-mailman (input) for mailman id 762680;
 Tue, 23 Jul 2024 08:15: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgU-0007w0-4B
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:15:46 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c228f9dd-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:15:44 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id D04FC4EE073E;
 Tue, 23 Jul 2024 10:15: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: c228f9dd-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.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>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 04/17] xen/arm: address violations of MISRA C:2012 Directive 4.10
Date: Tue, 23 Jul 2024 10:14:56 +0200
Message-Id: <33365a3adcf26a814f760005fd4d87adcac9c3e2.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add inclusion guard to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Mechanical change.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

---
Changes in v5:
- edit inclusion guard, according to the feedback received
Changes in v4:
- Dropped ARCH_ string from the guard, according to the
feedback received
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- drop changes in xen/arch/arm/include/asm/hypercall.h
- drop changes in xen/arch/arm/include/asm/iocap.h since they are
  not related with the directive
---
 xen/arch/arm/efi/efi-boot.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 199f526022..612c20f96f 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -3,6 +3,10 @@
  * is intended to be included by common/efi/boot.c _only_, and
  * therefore can define arch specific global variables.
  */
+
+#ifndef ARM__EFI__EFI_BOOT_H
+#define ARM__EFI__EFI_BOOT_H
+
 #include <xen/device_tree.h>
 #include <xen/libfdt/libfdt.h>
 #include <asm/setup.h>
@@ -992,6 +996,8 @@ static void __init efi_arch_flush_dcache_area(const void *vaddr, UINTN size)
     __flush_dcache_area(vaddr, size);
 }
 
+#endif /* ARM__EFI__EFI_BOOT_H */
+
 /*
  * Local variables:
  * mode: C
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:15:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:15:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762681.1172930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgX-0000rZ-IZ; Tue, 23 Jul 2024 08:15:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762681.1172930; Tue, 23 Jul 2024 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 1sWAgX-0000rP-Es; Tue, 23 Jul 2024 08:15:49 +0000
Received: by outflank-mailman (input) for mailman id 762681;
 Tue, 23 Jul 2024 08:15: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgV-0008AN-E6
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:15:47 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c37ed557-48cb-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 10:15:46 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 0A11F4EE073F;
 Tue, 23 Jul 2024 10:15: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: c37ed557-48cb-11ef-bbfe-fd08da9f4363
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 05/17] xen/x86: address violations of MISRA C:2012 Directive 4.10
Date: Tue, 23 Jul 2024 10:14:57 +0200
Message-Id: <4395577d2a07f6edaebbef937cb96028bb92de31.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add or move inclusion guards to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Inclusion guards must appear at the beginning of the headers
(comments are permitted anywhere).

Mechanical change.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v5:
- remove hard tab that slipped in the makefile
- edit inclusion guards and makefile
Changes in v4:
- modified inclusion guards and makefile.
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- remove extra blanks
- drop changes in C files

Note:
Changes in Makefile were not strictly necessary in v1 and a maintainer
asked to removing them since there was a deviation for generated headers.
Now, in v2, they are required since the deviation has been removed by
another patch of this series.
---
 xen/arch/x86/Makefile              | 9 +++++----
 xen/arch/x86/cpu/cpu.h             | 5 +++++
 xen/arch/x86/x86_64/mmconfig.h     | 5 +++++
 xen/arch/x86/x86_emulate/private.h | 5 +++++
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index d902fb7acc..31197dfd96 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -260,17 +260,18 @@ $(objtree)/arch/x86/include/asm/asm-macros.h: $(obj)/asm-macros.i $(src)/Makefil
 	$(call filechk,asm-macros.h)
 
 define filechk_asm-macros.h
+    guard=$$(echo ASM__${SRCARCH}__ASM_MACROS_H | tr a-z A-Z);  \
+    echo '#ifndef $$guard'; \
+    echo '#define $$guard'; \
     echo '#if 0'; \
     echo '.if 0'; \
     echo '#endif'; \
-    echo '#ifndef __ASM_MACROS_H__'; \
-    echo '#define __ASM_MACROS_H__'; \
     echo 'asm ( ".include \"$@\"" );'; \
-    echo '#endif /* __ASM_MACROS_H__ */'; \
     echo '#if 0'; \
     echo '.endif'; \
     cat $<; \
-    echo '#endif'
+    echo '#endif'; \
+    echo '#endif /* $$guard */'
 endef
 
 $(obj)/efi.lds: AFLAGS-y += -DEFI
diff --git a/xen/arch/x86/cpu/cpu.h b/xen/arch/x86/cpu/cpu.h
index 8be65e975a..8e52f24e10 100644
--- a/xen/arch/x86/cpu/cpu.h
+++ b/xen/arch/x86/cpu/cpu.h
@@ -1,3 +1,6 @@
+#ifndef X86__CPU__CPU_H
+#define X86__CPU__CPU_H
+
 /* attempt to consolidate cpu attributes */
 struct cpu_dev {
 	void		(*c_early_init)(struct cpuinfo_x86 *c);
@@ -26,3 +29,5 @@ void amd_init_spectral_chicken(void);
 void detect_zen2_null_seg_behaviour(void);
 
 void intel_unlock_cpuid_leaves(struct cpuinfo_x86 *c);
+
+#endif /* X86__CPU__CPU_H */
diff --git a/xen/arch/x86/x86_64/mmconfig.h b/xen/arch/x86/x86_64/mmconfig.h
index 3da4b21e9b..0b51d2179e 100644
--- a/xen/arch/x86/x86_64/mmconfig.h
+++ b/xen/arch/x86/x86_64/mmconfig.h
@@ -5,6 +5,9 @@
  * Author: Allen Kay <allen.m.kay@intel.com> - adapted from linux
  */
 
+#ifndef X86__X86_64__MMCONFIG_H
+#define X86__X86_64__MMCONFIG_H
+
 #define PCI_DEVICE_ID_INTEL_E7520_MCH    0x3590
 #define PCI_DEVICE_ID_INTEL_82945G_HB    0x2770
 
@@ -72,3 +75,5 @@ int pci_mmcfg_reserved(uint64_t address, unsigned int segment,
 int pci_mmcfg_arch_init(void);
 int pci_mmcfg_arch_enable(unsigned int idx);
 void pci_mmcfg_arch_disable(unsigned int idx);
+
+#endif /* X86__X86_64__MMCONFIG_H */
diff --git a/xen/arch/x86/x86_emulate/private.h b/xen/arch/x86/x86_emulate/private.h
index 0fa26ba00a..940d511b06 100644
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -6,6 +6,9 @@
  * Copyright (c) 2005-2007 XenSource Inc.
  */
 
+#ifndef X86__X86_EMULATE__PRIVATE_H
+#define X86__X86_EMULATE__PRIVATE_H
+
 #ifdef __XEN__
 
 # include <xen/bug.h>
@@ -836,3 +839,5 @@ static inline int read_ulong(enum x86_segment seg,
     *val = 0;
     return ops->read(seg, offset, val, bytes, ctxt);
 }
+
+#endif /* X86__X86_EMULATE__PRIVATE_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:15:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:15:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762683.1172935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgX-0000vZ-VD; Tue, 23 Jul 2024 08:15:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762683.1172935; Tue, 23 Jul 2024 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 1sWAgX-0000v1-On; Tue, 23 Jul 2024 08:15:49 +0000
Received: by outflank-mailman (input) for mailman id 762683;
 Tue, 23 Jul 2024 08:15:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgX-0008AN-6Z
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:15:49 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c496bb2e-48cb-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 10:15:48 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 210094EE0744;
 Tue, 23 Jul 2024 10:15:46 +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: c496bb2e-48cb-11ef-bbfe-fd08da9f4363
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v5 06/17] x86/EFI: address violations of MISRA C:2012 Directive 4.10
Date: Tue, 23 Jul 2024 10:14:58 +0200
Message-Id: <ce3b78363c2b18888e302d4d838b01e336ff1dc6.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add inclusion guard to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Mechanical change.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

---
Changes in v5:
- Remove double blank lines
- edit inclusion guards
Changes in v4:
- Modified inclusion guard.
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- remove changes in "xen/arch/x86/efi/efi-boot.h"
---
 xen/arch/x86/efi/efi-boot.h | 5 +++++
 xen/arch/x86/efi/runtime.h  | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index f282358435..4f7b7b67dc 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -3,6 +3,9 @@
  * is intended to be included by common/efi/boot.c _only_, and
  * therefore can define arch specific global variables.
  */
+#ifndef X86__EFI__EFI_BOOT_H
+#define X86__EFI__EFI_BOOT_H
+
 #include <xen/vga.h>
 #include <asm/e820.h>
 #include <asm/edd.h>
@@ -912,6 +915,8 @@ void asmlinkage __init efi_multiboot2(EFI_HANDLE ImageHandle,
     efi_exit_boot(ImageHandle, SystemTable);
 }
 
+#endif /* X86__EFI__EFI_BOOT_H */
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/efi/runtime.h b/xen/arch/x86/efi/runtime.h
index 77866c5f21..c88c0a6bbd 100644
--- a/xen/arch/x86/efi/runtime.h
+++ b/xen/arch/x86/efi/runtime.h
@@ -1,3 +1,6 @@
+#ifndef X86__EFI__RUNTIME_H
+#define X86__EFI__RUNTIME_H
+
 #include <xen/domain_page.h>
 #include <xen/mm.h>
 #include <asm/atomic.h>
@@ -17,3 +20,5 @@ void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e)
     }
 }
 #endif
+
+#endif /* X86__EFI__RUNTIME_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:15:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:15:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762687.1172950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgb-0001a0-4A; Tue, 23 Jul 2024 08:15:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762687.1172950; Tue, 23 Jul 2024 08: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 1sWAga-0001Zg-W2; Tue, 23 Jul 2024 08:15:53 +0000
Received: by outflank-mailman (input) for mailman id 762687;
 Tue, 23 Jul 2024 08:15: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAga-0007w0-95
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:15:52 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c5d28af4-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:15:50 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id AC4754EE0743;
 Tue, 23 Jul 2024 10:15: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: c5d28af4-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 07/17] xen/common: address violations of MISRA C:2012 Directive 4.10
Date: Tue, 23 Jul 2024 10:14:59 +0200
Message-Id: <734dc1456dcd31a8940b74b8e157a7c0b1959a47.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add inclusion guards to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Mechanical change.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v5:
- edit inclusion guards
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- drop changes in C files
---
 xen/common/decompress.h    | 5 +++++
 xen/common/event_channel.h | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/xen/common/decompress.h b/xen/common/decompress.h
index e8195b353a..2d5a99451d 100644
--- a/xen/common/decompress.h
+++ b/xen/common/decompress.h
@@ -1,3 +1,6 @@
+#ifndef COMMON__DECOMPRESS_H
+#define COMMON__DECOMPRESS_H
+
 #ifdef __XEN__
 
 #include <xen/cache.h>
@@ -23,3 +26,5 @@
 #define large_free free
 
 #endif
+
+#endif /* COMMON__DECOMPRESS_H */
diff --git a/xen/common/event_channel.h b/xen/common/event_channel.h
index 45219ca67c..3a8c240b40 100644
--- a/xen/common/event_channel.h
+++ b/xen/common/event_channel.h
@@ -1,5 +1,8 @@
 /* Event channel handling private header. */
 
+#ifndef COMMON__EVENT_CHANNEL_H
+#define COMMON__EVENT_CHANNEL_H
+
 #include <xen/event.h>
 
 static inline unsigned int max_evtchns(const struct domain *d)
@@ -52,6 +55,8 @@ int evtchn_fifo_init_control(struct evtchn_init_control *init_control);
 int evtchn_fifo_expand_array(const struct evtchn_expand_array *expand_array);
 void evtchn_fifo_destroy(struct domain *d);
 
+#endif /* COMMON__EVENT_CHANNEL_H */
+
 /*
  * Local variables:
  * mode: C
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:15:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:15:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762689.1172960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgd-00024X-Dm; Tue, 23 Jul 2024 08:15:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762689.1172960; Tue, 23 Jul 2024 08:15:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgd-00023d-9o; Tue, 23 Jul 2024 08:15:55 +0000
Received: by outflank-mailman (input) for mailman id 762689;
 Tue, 23 Jul 2024 08:15:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgc-0007w0-0D
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:15:54 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c6dc7cd9-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:15:52 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id EC21C4EE073E;
 Tue, 23 Jul 2024 10:15: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: c6dc7cd9-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 08/17] xen/efi: address violations of MISRA C:2012 Directive 4.10
Date: Tue, 23 Jul 2024 10:15:00 +0200
Message-Id: <cc01eb16a127c7a97a898ff0e28a590c30c4d2ab.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Add inclusion guards to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Mechanical change.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v5:
- edit inclusion guard
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- drop changes in C files
---
 xen/common/efi/efi.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/xen/common/efi/efi.h b/xen/common/efi/efi.h
index c02fbb7b69..3876d15207 100644
--- a/xen/common/efi/efi.h
+++ b/xen/common/efi/efi.h
@@ -1,3 +1,6 @@
+#ifndef COMMON__EFI__EFI_H
+#define COMMON__EFI__EFI_H
+
 #include <asm/efibind.h>
 #include <efi/efidef.h>
 #include <efi/efierr.h>
@@ -51,3 +54,5 @@ void free_ebmalloc_unused_mem(void);
 
 const void *pe_find_section(const void *image, const UINTN image_size,
                             const CHAR16 *section_name, UINTN *size_out);
+
+#endif /* COMMON__EFI__EFI_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:16:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:16:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762708.1172969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgv-0003cJ-O0; Tue, 23 Jul 2024 08:16:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762708.1172969; Tue, 23 Jul 2024 08:16:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgv-0003cA-Kn; Tue, 23 Jul 2024 08:16:13 +0000
Received: by outflank-mailman (input) for mailman id 762708;
 Tue, 23 Jul 2024 08: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgp-0008AN-5Z
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:16:07 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ce620007-48cb-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 10:16:05 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 7E3FB4EE0744;
 Tue, 23 Jul 2024 10:16: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: ce620007-48cb-11ef-bbfe-fd08da9f4363
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>
Subject: [XEN PATCH v5 17/17] include/asm-generic: rename inclusion guards for consistency
Date: Tue, 23 Jul 2024 10:15:09 +0200
Message-Id: <79c020c608d59c1c5d4156e307acba046b1ad17e.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Edit inclusion guards in asm-generic header files in order to make them
consistent with the estabilished naming convention.

No functional change.

Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
---
 xen/include/asm-generic/altp2m.h     | 6 +++---
 xen/include/asm-generic/atomic-ops.h | 6 +++---
 xen/include/asm-generic/device.h     | 6 +++---
 xen/include/asm-generic/div64.h      | 6 +++---
 xen/include/asm-generic/hardirq.h    | 6 +++---
 xen/include/asm-generic/iocap.h      | 6 +++---
 xen/include/asm-generic/monitor.h    | 6 +++---
 xen/include/asm-generic/paging.h     | 6 +++---
 xen/include/asm-generic/percpu.h     | 6 +++---
 xen/include/asm-generic/random.h     | 6 +++---
 xen/include/asm-generic/softirq.h    | 6 +++---
 xen/include/asm-generic/vm_event.h   | 6 +++---
 12 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/xen/include/asm-generic/altp2m.h b/xen/include/asm-generic/altp2m.h
index 39865a842a..34ae943145 100644
--- a/xen/include/asm-generic/altp2m.h
+++ b/xen/include/asm-generic/altp2m.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_GENERIC_ALTP2M_H
-#define __ASM_GENERIC_ALTP2M_H
+#ifndef ASM_GENERIC__ALTP2M_H
+#define ASM_GENERIC__ALTP2M_H
 
 #include <xen/bug.h>
 
@@ -22,7 +22,7 @@ static inline unsigned int altp2m_vcpu_idx(const struct vcpu *v)
     return 0;
 }
 
-#endif /* __ASM_GENERIC_ALTP2M_H */
+#endif /* ASM_GENERIC__ALTP2M_H */
 
 /*
  * Local variables:
diff --git a/xen/include/asm-generic/atomic-ops.h b/xen/include/asm-generic/atomic-ops.h
index 98dd907942..50f1db909d 100644
--- a/xen/include/asm-generic/atomic-ops.h
+++ b/xen/include/asm-generic/atomic-ops.h
@@ -4,8 +4,8 @@
  * forward inline declaration that can be synthesized from other atomic
  * functions or being created from scratch.
  */
-#ifndef _ASM_GENERIC_ATOMIC_OPS_H_
-#define _ASM_GENERIC_ATOMIC_OPS_H_
+#ifndef ASM_GENERIC__ATOMIC_OPS_H_
+#define ASM_GENERIC__ATOMIC_OPS_H_
 
 #include <xen/atomic.h>
 #include <xen/lib.h>
@@ -94,4 +94,4 @@ static inline int atomic_add_negative(int i, atomic_t *v)
 }
 #endif
 
-#endif /* _ASM_GENERIC_ATOMIC_OPS_H_ */
+#endif /* ASM_GENERIC__ATOMIC_OPS_H_ */
diff --git a/xen/include/asm-generic/device.h b/xen/include/asm-generic/device.h
index 1acd1ba1d8..eccd3159a9 100644
--- a/xen/include/asm-generic/device.h
+++ b/xen/include/asm-generic/device.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_GENERIC_DEVICE_H__
-#define __ASM_GENERIC_DEVICE_H__
+#ifndef ASM_GENERIC__DEVICE_H
+#define ASM_GENERIC__DEVICE_H
 
 #include <xen/stdbool.h>
 
@@ -127,7 +127,7 @@ __section(".adev.info") = {                                         \
 
 #endif /* CONFIG_ACPI */
 
-#endif /* __ASM_GENERIC_DEVICE_H__ */
+#endif /* ASM_GENERIC__DEVICE_H */
 
 /*
  * Local variables:
diff --git a/xen/include/asm-generic/div64.h b/xen/include/asm-generic/div64.h
index 068d8a11ad..c1770561c6 100644
--- a/xen/include/asm-generic/div64.h
+++ b/xen/include/asm-generic/div64.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_GENERIC_DIV64
-#define __ASM_GENERIC_DIV64
+#ifndef ASM_GENERIC__DIV64_H
+#define ASM_GENERIC__DIV64_H
 
 #include <xen/types.h>
 
@@ -15,7 +15,7 @@
 
 #endif /* BITS_PER_LONG */
 
-#endif
+#endif /* ASM_GENERIC__DIV64_H */
 
 /*
  * Local variables:
diff --git a/xen/include/asm-generic/hardirq.h b/xen/include/asm-generic/hardirq.h
index ddccf460b9..09260b1b08 100644
--- a/xen/include/asm-generic/hardirq.h
+++ b/xen/include/asm-generic/hardirq.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_GENERIC_HARDIRQ_H
-#define __ASM_GENERIC_HARDIRQ_H
+#ifndef ASM_GENERIC__HARDIRQ_H
+#define ASM_GENERIC__HARDIRQ_H
 
 #include <xen/cache.h>
 #include <xen/smp.h>
@@ -17,7 +17,7 @@ typedef struct {
 #define irq_enter()     (local_irq_count(smp_processor_id())++)
 #define irq_exit()      (local_irq_count(smp_processor_id())--)
 
-#endif /* __ASM_GENERIC_HARDIRQ_H */
+#endif /* ASM_GENERIC__HARDIRQ_H */
 
 /*
  * Local variables:
diff --git a/xen/include/asm-generic/iocap.h b/xen/include/asm-generic/iocap.h
index dd7cb45488..1001fb629a 100644
--- a/xen/include/asm-generic/iocap.h
+++ b/xen/include/asm-generic/iocap.h
@@ -1,11 +1,11 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_GENERIC_IOCAP_H__
-#define __ASM_GENERIC_IOCAP_H__
+#ifndef ASM_GENERIC__IOCAP_H
+#define ASM_GENERIC__IOCAP_H
 
 #define cache_flush_permitted(d)                        \
     (!rangeset_is_empty((d)->iomem_caps))
 
-#endif /* __ASM_GENERIC_IOCAP_H__ */
+#endif /* ASM_GENERIC__IOCAP_H */
 
 /*
  * Local variables:
diff --git a/xen/include/asm-generic/monitor.h b/xen/include/asm-generic/monitor.h
index 1ade289099..e53f0823cb 100644
--- a/xen/include/asm-generic/monitor.h
+++ b/xen/include/asm-generic/monitor.h
@@ -9,8 +9,8 @@
  *
  */
 
-#ifndef __ASM_GENERIC_MONITOR_H__
-#define __ASM_GENERIC_MONITOR_H__
+#ifndef ASM_GENERIC__MONITOR_H
+#define ASM_GENERIC__MONITOR_H
 
 #include <xen/errno.h>
 #include <xen/lib.h>
@@ -52,7 +52,7 @@ void arch_monitor_cleanup_domain(struct domain *d)
     /* No arch-specific domain cleanup on GENERIC. */
 }
 
-#endif /* __ASM_GENERIC_MONITOR_H__ */
+#endif /* ASM_GENERIC__MONITOR_H */
 
 /*
  * Local variables:
diff --git a/xen/include/asm-generic/paging.h b/xen/include/asm-generic/paging.h
index 8df534cfdc..1a8fae6543 100644
--- a/xen/include/asm-generic/paging.h
+++ b/xen/include/asm-generic/paging.h
@@ -1,13 +1,13 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_GENERIC_PAGING_H__
-#define __ASM_GENERIC_PAGING_H__
+#ifndef ASM_GENERIC__PAGING_H
+#define ASM_GENERIC__PAGING_H
 
 #include <xen/stdbool.h>
 
 #define paging_mode_translate(d)    ((void)(d), true)
 #define paging_mode_external(d)     ((void)(d), true)
 
-#endif /* __ASM_GENERIC_PAGING_H__ */
+#endif /* ASM_GENERIC__PAGING_H */
 
 /*
  * Local variables:
diff --git a/xen/include/asm-generic/percpu.h b/xen/include/asm-generic/percpu.h
index 60af4f9ff9..7302edb00c 100644
--- a/xen/include/asm-generic/percpu.h
+++ b/xen/include/asm-generic/percpu.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_GENERIC_PERCPU_H__
-#define __ASM_GENERIC_PERCPU_H__
+#ifndef ASM_GENERIC__PERCPU_H
+#define ASM_GENERIC__PERCPU_H
 
 #ifndef __ASSEMBLY__
 
@@ -25,7 +25,7 @@ void percpu_init_areas(void);
 
 #endif
 
-#endif /* __ASM_GENERIC_PERCPU_H__ */
+#endif /* ASM_GENERIC__PERCPU_H */
 
 /*
  * Local variables:
diff --git a/xen/include/asm-generic/random.h b/xen/include/asm-generic/random.h
index d0d35dd217..f2e6c1c11c 100644
--- a/xen/include/asm-generic/random.h
+++ b/xen/include/asm-generic/random.h
@@ -1,13 +1,13 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_GENERIC_RANDOM_H__
-#define __ASM_GENERIC_RANDOM_H__
+#ifndef ASM_GENERIC__RANDOM_H
+#define ASM_GENERIC__RANDOM_H
 
 static inline unsigned int arch_get_random(void)
 {
     return 0;
 }
 
-#endif /* __ASM_GENERIC_RANDOM_H__ */
+#endif /* ASM_GENERIC__RANDOM_H */
 
 /*
  * Local variables:
diff --git a/xen/include/asm-generic/softirq.h b/xen/include/asm-generic/softirq.h
index 83be855e50..92144c7eca 100644
--- a/xen/include/asm-generic/softirq.h
+++ b/xen/include/asm-generic/softirq.h
@@ -1,12 +1,12 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_GENERIC_SOFTIRQ_H__
-#define __ASM_GENERIC_SOFTIRQ_H__
+#ifndef ASM_GENERIC__SOFTIRQ_H
+#define ASM_GENERIC__SOFTIRQ_H
 
 #define NR_ARCH_SOFTIRQS       0
 
 #define arch_skip_send_event_check(cpu) 0
 
-#endif /* __ASM_GENERIC_SOFTIRQ_H__ */
+#endif /* ASM_GENERIC__SOFTIRQ_H */
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/asm-generic/vm_event.h b/xen/include/asm-generic/vm_event.h
index 620c7b971c..ff538b6ba4 100644
--- a/xen/include/asm-generic/vm_event.h
+++ b/xen/include/asm-generic/vm_event.h
@@ -5,8 +5,8 @@
  * Copyright (c) 2015 Tamas K Lengyel (tamas@tklengyel.com)
  */
 
-#ifndef __ASM_GENERIC_VM_EVENT_H__
-#define __ASM_GENERIC_VM_EVENT_H__
+#ifndef ASM_GENERIC__VM_EVENT_H
+#define ASM_GENERIC__VM_EVENT_H
 
 #include <xen/sched.h>
 #include <public/vm_event.h>
@@ -52,4 +52,4 @@ void vm_event_reset_vmtrace(struct vcpu *v)
     /* Nothing to do. */
 }
 
-#endif /* __ASM_GENERIC_VM_EVENT_H__ */
+#endif /* ASM_GENERIC__VM_EVENT_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:16:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:16:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762713.1172980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgy-0003y6-0S; Tue, 23 Jul 2024 08:16:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762713.1172980; Tue, 23 Jul 2024 08:16:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAgx-0003xz-Sz; Tue, 23 Jul 2024 08:16:15 +0000
Received: by outflank-mailman (input) for mailman id 762713;
 Tue, 23 Jul 2024 08: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgh-0007w0-A0
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:15:59 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c9ca172c-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:15:57 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 73C734EE0745;
 Tue, 23 Jul 2024 10:15: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: c9ca172c-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 10/17] x86/asm: address violations of MISRA C:2012 Directive 4.10
Date: Tue, 23 Jul 2024 10:15:02 +0200
Message-Id: <20e1d32d9e384f9682fc25d9a55480edd11e344e.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Amend generation script, add inclusion guards to address violations
of MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

This patch amends the Makefile adding the required inclusion guards
for xlat.h.

Add deviation comment for files intended for multiple inclusion.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v5:
- rebase against current staging tree
- remove an unused path in Makefile that was mistakenly left in
- edit inclusion guards, according to feedback received
Changes in v4:
- changed guard creation for autogenerated headers in Makefile
Changes in v3:
- fix inconsistent deviation ID
- remove trailing underscores
Changes in v2:
- merge patches 7/13 and 13/13 of v1 as they had the same
  commit message
- amend the Makefile to produce the required inclusion guard
- use the format introduced with doc/misra/safe.json instead of
  a generic text-based deviation
---
 docs/misra/safe.json                   | 8 ++++++++
 xen/arch/x86/include/asm/compat.h      | 5 +++++
 xen/arch/x86/include/asm/cpufeatures.h | 5 +----
 xen/arch/x86/include/asm/efibind.h     | 5 +++++
 xen/include/Makefile                   | 9 +++++++--
 5 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index 684346386e..6ede5c91c2 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -92,6 +92,14 @@
         },
         {
             "id": "SAF-11-safe",
+            "analyser": {
+                "eclair": "MC3R1.D4.10"
+            },
+            "name": "Dir 4.10: file intended for multiple inclusion",
+            "text": "Files intended for multiple inclusion are not supposed to comply with D4.10."
+        },
+        {
+            "id": "SAF-12-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/arch/x86/include/asm/compat.h b/xen/arch/x86/include/asm/compat.h
index 818cad87db..98ed170b95 100644
--- a/xen/arch/x86/include/asm/compat.h
+++ b/xen/arch/x86/include/asm/compat.h
@@ -2,6 +2,9 @@
  * compat.h
  */
 
+#ifndef ASM__X86__COMPAT_H
+#define ASM__X86__COMPAT_H
+
 #ifdef CONFIG_COMPAT
 
 #define COMPAT_BITS_PER_LONG 32
@@ -18,3 +21,5 @@ int switch_compat(struct domain *);
 #include <xen/errno.h>
 static inline int switch_compat(struct domain *d) { return -EOPNOTSUPP; }
 #endif
+
+#endif /* ASM__X86__COMPAT_H */
diff --git a/xen/arch/x86/include/asm/cpufeatures.h b/xen/arch/x86/include/asm/cpufeatures.h
index ba3df174b7..d590fe31ea 100644
--- a/xen/arch/x86/include/asm/cpufeatures.h
+++ b/xen/arch/x86/include/asm/cpufeatures.h
@@ -1,7 +1,4 @@
-/*
- * Explicitly intended for multiple inclusion.
- */
-
+/* SAF-11-safe file intended for multiple inclusion */
 #include <xen/lib/x86/cpuid-autogen.h>
 
 /* Number of capability words covered by the featureset words. */
diff --git a/xen/arch/x86/include/asm/efibind.h b/xen/arch/x86/include/asm/efibind.h
index bce02f3707..57c712748a 100644
--- a/xen/arch/x86/include/asm/efibind.h
+++ b/xen/arch/x86/include/asm/efibind.h
@@ -1,2 +1,7 @@
+#ifndef ASM__X86__EFIBIND_H
+#define ASM__X86__EFIBIND_H
+
 #include <xen/types.h>
 #include <asm/x86_64/efibind.h>
+
+#endif /* ASM__X86__EFIBIND_H */
diff --git a/xen/include/Makefile b/xen/include/Makefile
index 058b0a566b..1ff9468eeb 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -105,9 +105,14 @@ xlat-y := $(shell sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,^[?!][[:blank:]]+
 xlat-y := $(filter $(patsubst compat/%,%,$(headers-y)),$(xlat-y))
 
 quiet_cmd_xlat_h = GEN     $@
-cmd_xlat_h = \
-	cat $(filter %.h,$^) >$@.new; \
+define cmd_xlat_h
+	guard=$$(echo ASM__${SRCARCH}__COMPAT__XLAT_H | tr a-z A-Z); \
+	echo "#ifndef $$guard" > $@.new; \
+	echo "#define $$guard" >> $@.new; \
+	cat $(filter %.h,$^) >> $@.new; \
+	echo "#endif /* $$guard */" >> $@.new; \
 	mv -f $@.new $@
+endef
 
 $(obj)/compat/xlat.h: $(addprefix $(obj)/compat/.xlat/,$(xlat-y)) FORCE
 	$(call if_changed,xlat_h)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:16:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:16:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762714.1172990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAh1-0004Nc-EO; Tue, 23 Jul 2024 08:16:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762714.1172990; Tue, 23 Jul 2024 08:16: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 1sWAh1-0004NP-Ae; Tue, 23 Jul 2024 08:16:19 +0000
Received: by outflank-mailman (input) for mailman id 762714;
 Tue, 23 Jul 2024 08:16: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgl-0007w0-Ak
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:16:03 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id caeb7072-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:15:59 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 776EA4EE0739;
 Tue, 23 Jul 2024 10:15: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: caeb7072-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Maria Celeste Cesario <maria.celeste.cesario@bugseng.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>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 11/17] xen/arm: address violations of MISRA C:2012 Directive 4.10
Date: Tue, 23 Jul 2024 10:15:03 +0200
Message-Id: <fd4c25b8cd00b5d66d65b8b56021e5e2081aa95c.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>

Add or modify inclusion guards to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order to
prevent the contents of a header file being included more than once").
Mechanical change.

Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

--
Change in v5:
- edit inclusion guards, according to feedback received
Changes in v4:
- fix typo in include guard for arm efibind

Commit introduced in v3
---
 xen/arch/arm/include/asm/domain.h      | 6 +++---
 xen/arch/arm/include/asm/efibind.h     | 5 +++++
 xen/arch/arm/include/asm/event.h       | 6 +++---
 xen/arch/arm/include/asm/grant_table.h | 6 +++---
 xen/arch/arm/include/asm/io.h          | 6 +++---
 xen/arch/arm/include/asm/irq.h         | 6 +++---
 xen/arch/arm/include/asm/smp.h         | 6 +++---
 xen/arch/arm/include/asm/spinlock.h    | 6 +++---
 xen/arch/arm/include/asm/system.h      | 6 +++---
 9 files changed, 29 insertions(+), 24 deletions(-)

diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index f1d72c6e48..f27353d9c8 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_DOMAIN_H__
-#define __ASM_DOMAIN_H__
+#ifndef ASM__ARM__DOMAIN_H
+#define ASM__ARM__DOMAIN_H
 
 #include <xen/cache.h>
 #include <xen/timer.h>
@@ -310,7 +310,7 @@ static inline void update_guest_memory_policy(struct vcpu *v,
                                               struct guest_memory_policy *gmp)
 {}
 
-#endif /* __ASM_DOMAIN_H__ */
+#endif /* ASM__ARM__DOMAIN_H */
 
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/efibind.h b/xen/arch/arm/include/asm/efibind.h
index 09dca7a8c9..88e0307ef1 100644
--- a/xen/arch/arm/include/asm/efibind.h
+++ b/xen/arch/arm/include/asm/efibind.h
@@ -1,2 +1,7 @@
+#ifndef ASM__ARM__EFIBIND_H
+#define ASM__ARM__EFIBIND_H
+
 #include <xen/types.h>
 #include <asm/arm64/efibind.h>
+
+#endif /* ASM__ARM__EFIBIND_H */
diff --git a/xen/arch/arm/include/asm/event.h b/xen/arch/arm/include/asm/event.h
index b14c166ad6..c495994437 100644
--- a/xen/arch/arm/include/asm/event.h
+++ b/xen/arch/arm/include/asm/event.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_EVENT_H__
-#define __ASM_EVENT_H__
+#ifndef ASM__ARM__EVENT_H
+#define ASM__ARM__EVENT_H
 
 #include <asm/domain.h>
 
@@ -52,7 +52,7 @@ static inline bool arch_virq_is_global(unsigned int virq)
     return true;
 }
 
-#endif
+#endif /* ASM__ARM__EVENT_H */
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/include/asm/grant_table.h b/xen/arch/arm/include/asm/grant_table.h
index d3c518a926..b104fc890c 100644
--- a/xen/arch/arm/include/asm/grant_table.h
+++ b/xen/arch/arm/include/asm/grant_table.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_GRANT_TABLE_H__
-#define __ASM_GRANT_TABLE_H__
+#ifndef ASM__ARM__GRANT_TABLE_H
+#define ASM__ARM__GRANT_TABLE_H
 
 #include <xen/grant_table.h>
 #include <xen/kernel.h>
@@ -76,7 +76,7 @@ int replace_grant_host_mapping(uint64_t gpaddr, mfn_t frame,
 #define gnttab_need_iommu_mapping(d)                    \
     (is_domain_direct_mapped(d) && is_iommu_enabled(d))
 
-#endif /* __ASM_GRANT_TABLE_H__ */
+#endif /* ASM__ARM__GRANT_TABLE_H */
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/include/asm/io.h b/xen/arch/arm/include/asm/io.h
index e426804424..837c864fac 100644
--- a/xen/arch/arm/include/asm/io.h
+++ b/xen/arch/arm/include/asm/io.h
@@ -1,5 +1,5 @@
-#ifndef _ASM_IO_H
-#define _ASM_IO_H
+#ifndef ASM__ARM__IO_H
+#define ASM__ARM__IO_H
 
 #if defined(CONFIG_ARM_32)
 # include <asm/arm32/io.h>
@@ -9,7 +9,7 @@
 # error "unknown ARM variant"
 #endif
 
-#endif
+#endif /* ASM__ARM__IO_H */
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.h
index ec437add09..019147ef11 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -1,5 +1,5 @@
-#ifndef _ASM_HW_IRQ_H
-#define _ASM_HW_IRQ_H
+#ifndef ASM__ARM__IRQ_H
+#define ASM__ARM__IRQ_H
 
 #include <xen/device_tree.h>
 #include <public/device_tree_defs.h>
@@ -101,7 +101,7 @@ bool irq_type_set_by_domain(const struct domain *d);
 void irq_end_none(struct irq_desc *irq);
 #define irq_end_none irq_end_none
 
-#endif /* _ASM_HW_IRQ_H */
+#endif /* ASM__ARM__IRQ_H */
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/include/asm/smp.h b/xen/arch/arm/include/asm/smp.h
index e99a3a3f53..1a3088dfb9 100644
--- a/xen/arch/arm/include/asm/smp.h
+++ b/xen/arch/arm/include/asm/smp.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_SMP_H
-#define __ASM_SMP_H
+#ifndef ASM__ARM__SMP_H
+#define ASM__ARM__SMP_H
 
 #ifndef __ASSEMBLY__
 #include <xen/cpumask.h>
@@ -39,7 +39,7 @@ extern unsigned int smp_get_max_cpus(void);
 
 #define cpu_physical_id(cpu) cpu_logical_map(cpu)
 
-#endif
+#endif /* ASM__ARM__SMP_H */
 
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/spinlock.h b/xen/arch/arm/include/asm/spinlock.h
index 42b0f584fe..b1fd46336f 100644
--- a/xen/arch/arm/include/asm/spinlock.h
+++ b/xen/arch/arm/include/asm/spinlock.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_SPINLOCK_H
-#define __ASM_SPINLOCK_H
+#ifndef ASM__ARM__SPINLOCK_H
+#define ASM__ARM__SPINLOCK_H
 
 #define arch_lock_acquire_barrier() smp_mb()
 #define arch_lock_release_barrier() smp_mb()
@@ -12,4 +12,4 @@
 
 #define arch_lock_signal_wmb()  arch_lock_signal()
 
-#endif /* __ASM_SPINLOCK_H */
+#endif /* ASM__ARM__SPINLOCK_H */
diff --git a/xen/arch/arm/include/asm/system.h b/xen/arch/arm/include/asm/system.h
index 65d5c8e423..cf548089d8 100644
--- a/xen/arch/arm/include/asm/system.h
+++ b/xen/arch/arm/include/asm/system.h
@@ -1,6 +1,6 @@
 /* Portions taken from Linux arch arm */
-#ifndef __ASM_SYSTEM_H
-#define __ASM_SYSTEM_H
+#ifndef ASM__ARM__SYSTEM_H
+#define ASM__ARM__SYSTEM_H
 
 #include <xen/lib.h>
 #include <public/arch-arm.h>
@@ -62,7 +62,7 @@ static inline int local_abort_is_enabled(void)
 
 extern struct vcpu *__context_switch(struct vcpu *prev, struct vcpu *next);
 
-#endif
+#endif /* ASM__ARM__SYSTEM_H */
 /*
  * Local variables:
  * mode: C
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:16:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:16:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762715.1172994 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAh1-0004R6-Od; Tue, 23 Jul 2024 08:16:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762715.1172994; Tue, 23 Jul 2024 08:16: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 1sWAh1-0004QP-Jy; Tue, 23 Jul 2024 08:16:19 +0000
Received: by outflank-mailman (input) for mailman id 762715;
 Tue, 23 Jul 2024 08:16: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAge-0007w0-O3
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:15:56 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c8727ee1-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:15:55 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id AC9154EE0747;
 Tue, 23 Jul 2024 10:15: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: c8727ee1-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <jgrall@amazon.com>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 09/17] xen: address violations of MISRA C:2012 Directive 4.10
Date: Tue, 23 Jul 2024 10:15:01 +0200
Message-Id: <8776f366569c1e789eaaabc8d9204d11abbf1a48.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Simone Ballarin <simone.ballarin@bugseng.com>

Amend inclusion guards to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Inclusion guards must appear at the beginning of the headers
(comments are permitted anywhere) and the #if directive cannot
be used for other checks.

Mechanical change.

Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Acked-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v5:
- edit inclusion guards, according to the feedback received
Changes in v3:
- remove trailing underscores
- change inclusion guard name to adhere to the new standard
Changes in v2:
- drop changes in xen/include/xen/unaligned.h since this second
  series adds a comment-based deviation in a separate patch
- use #ifndef instead of #if !defined()
---
 xen/include/xen/err.h     | 8 +++++---
 xen/include/xen/pci_ids.h | 5 +++++
 xen/include/xen/softirq.h | 8 +++++---
 xen/include/xen/vmap.h    | 8 +++++---
 4 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/xen/include/xen/err.h b/xen/include/xen/err.h
index cbdd1bf7f8..45988e0cbb 100644
--- a/xen/include/xen/err.h
+++ b/xen/include/xen/err.h
@@ -1,5 +1,6 @@
-#if !defined(__XEN_ERR_H__) && !defined(__ASSEMBLY__)
-#define __XEN_ERR_H__
+#ifndef XEN__ERR_H
+#define XEN__ERR_H
+#ifndef __ASSEMBLY__
 
 #include <xen/compiler.h>
 #include <xen/errno.h>
@@ -41,4 +42,5 @@ static inline int __must_check PTR_RET(const void *ptr)
 	return IS_ERR(ptr) ? PTR_ERR(ptr) : 0;
 }
 
-#endif /* __XEN_ERR_H__ */
+#endif /* __ASSEMBLY__ */
+#endif /* XEN__ERR_H */
diff --git a/xen/include/xen/pci_ids.h b/xen/include/xen/pci_ids.h
index e798477a7e..7f74954d6a 100644
--- a/xen/include/xen/pci_ids.h
+++ b/xen/include/xen/pci_ids.h
@@ -1,3 +1,6 @@
+#ifndef XEN__PCI_IDS_H
+#define XEN__PCI_IDS_H
+
 #define PCI_VENDOR_ID_AMD                0x1022
 
 #define PCI_VENDOR_ID_NVIDIA             0x10de
@@ -11,3 +14,5 @@
 #define PCI_VENDOR_ID_BROADCOM           0x14e4
 
 #define PCI_VENDOR_ID_INTEL              0x8086
+
+#endif /* XEN__PCI_IDS_H */
diff --git a/xen/include/xen/softirq.h b/xen/include/xen/softirq.h
index 33d6f2ecd2..5fd57160df 100644
--- a/xen/include/xen/softirq.h
+++ b/xen/include/xen/softirq.h
@@ -1,5 +1,6 @@
-#if !defined(__XEN_SOFTIRQ_H__) && !defined(__ASSEMBLY__)
-#define __XEN_SOFTIRQ_H__
+#ifndef XEN__SOFTIRQ_H
+#define XEN__SOFTIRQ_H
+#ifndef __ASSEMBLY__
 
 /* Low-latency softirqs come first in the following list. */
 enum {
@@ -40,4 +41,5 @@ void cpu_raise_softirq_batch_finish(void);
  */
 void process_pending_softirqs(void);
 
-#endif /* __XEN_SOFTIRQ_H__ */
+#endif /* __ASSEMBLY__ */
+#endif /* XEN__SOFTIRQ_H */
diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index 0c16baa85f..a8475bd05b 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -1,5 +1,6 @@
-#if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
-#define __XEN_VMAP_H__
+#ifndef XEN__VMAP_H
+#define XEN__VMAP_H
+#ifdef VMAP_VIRT_START
 
 #include <xen/mm-frame.h>
 #include <xen/page-size.h>
@@ -42,4 +43,5 @@ static inline void vm_init(void)
     vm_init_type(VMAP_DEFAULT, (void *)VMAP_VIRT_START, arch_vmap_virt_end());
 }
 
-#endif /* __XEN_VMAP_H__ */
+#endif /* VMAP_VIRT_START */
+#endif /* XEN__VMAP_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:16:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:16:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762719.1173001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAh2-0004Xa-4l; Tue, 23 Jul 2024 08:16:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762719.1173001; Tue, 23 Jul 2024 08: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 1sWAh1-0004V7-U9; Tue, 23 Jul 2024 08:16:19 +0000
Received: by outflank-mailman (input) for mailman id 762719;
 Tue, 23 Jul 2024 08:16: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgm-0008AN-55
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:16:04 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd5f11af-48cb-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 10:16:03 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 473514EE0742;
 Tue, 23 Jul 2024 10:16: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: cd5f11af-48cb-11ef-bbfe-fd08da9f4363
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 13/17] xen: add deviations for MISRA C 2012 Dir D4.10
Date: Tue, 23 Jul 2024 10:15:05 +0200
Message-Id: <1a47750ebed47a3429269112fad6da58bfb6ee96.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Nicola Vetrini <nicola.vetrini@bugseng.com>

Add safe deviation for *.c files, as estabilished in past discussion.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

---
Changes in v4:
- split the commit from the unrelated SAF deviation
Commit introduced in v3

Link to the discussion thread:
https://lists.xenproject.org/archives/html/xen-devel/2023-09/msg00239.html
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 5 +++++
 docs/misra/deviations.rst                        | 6 ++++++
 2 files changed, 11 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 1c39a9a16d..c6b1a10bcf 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -78,6 +78,11 @@ conform to the directive."
 -config=MC3R1.D4.10,reports+={safe, "first_area(text(^/\\* Generated file, do not edit! \\*/$, begin-3))"}
 -doc_end
 
+-doc_begin="Including multiple times a .c file is safe because every function or data item
+it defines would (in the common case) be already defined. Peer reviewed by the community."
+-config=MC3R1.D4.10,reports+={safe, "all_area(all_loc(^.*\\.c$))"}
+-doc_end
+
 #
 # Series 5.
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 1ecce1469a..d51aa422b5 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -30,6 +30,12 @@ Deviations related to MISRA C:2012 Directives:
        not to add an additional encapsulation layer.
      - Tagged as `deliberate` for ECLAIR.
 
+   * - D4.10
+     - Including multiple times a .c file is safe because every function or data item
+       it defines would in (the common case) be already defined.
+       Peer reviewed by the community.
+     - Tagged as `safe` for ECLAIR.
+
 Deviations related to MISRA C:2012 Rules:
 -----------------------------------------
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:16:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:16:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762735.1173024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAhQ-0006UF-OL; Tue, 23 Jul 2024 08:16:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762735.1173024; Tue, 23 Jul 2024 08:16:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAhQ-0006Sv-Ji; Tue, 23 Jul 2024 08:16:44 +0000
Received: by outflank-mailman (input) for mailman id 762735;
 Tue, 23 Jul 2024 08:16: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgq-0007w0-BE
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:16:08 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cddf2a28-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:16:04 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id B2FCF4EE0746;
 Tue, 23 Jul 2024 10:16: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: cddf2a28-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v5 15/17] xen/build: address violation of MISRA C Directive 4.10
Date: Tue, 23 Jul 2024 10:15:07 +0200
Message-Id: <08fe3472d3da3035357b72d4684295cbe79b77c1.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This addresses violations of MISRA C:2012 Rule 4.10 which states as
following: Precautions shall be taken in order to prevent the contents
of a header file being included more than once.

Changes are made for autogenerated header files: include/xen/compile.h
and include/xen/hypercall-defs.h.

No functional change.

Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v5:
- edit inclusion guards for autogenerated header files
---
 xen/build.mk         | 6 +++++-
 xen/include/Makefile | 5 ++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/xen/build.mk b/xen/build.mk
index 32624d3097..ebb2d06b3c 100644
--- a/xen/build.mk
+++ b/xen/build.mk
@@ -18,6 +18,8 @@ quiet_cmd_compile.h = UPD     $@
 define cmd_compile.h
     if [ ! -r $@ -o -O $@ ]; then \
 	cat .banner; \
+	echo '#ifndef XEN__COMPILE_H' > $(dot-target).tmp; \
+	echo '#define XEN__COMPILE_H' >> $(dot-target).tmp; \
 	sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \
 	    -e 's/@@time@@/$(XEN_BUILD_TIME)/g' \
 	    -e 's/@@whoami@@/$(XEN_WHOAMI)/g' \
@@ -28,8 +30,9 @@ define cmd_compile.h
 	    -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
 	    -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
 	    -e 's!@@changeset@@!$(shell $(srctree)/tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \
-	    < $< > $(dot-target).tmp; \
+	    < $< >> $(dot-target).tmp; \
 	sed -rf $(srctree)/tools/process-banner.sed < .banner >> $(dot-target).tmp; \
+	echo '#endif /* XEN__COMPILE_H */' >> $(dot-target).tmp; \
 	mv -f $(dot-target).tmp $@; \
     fi
 endef
@@ -40,6 +43,7 @@ include/xen/compile.h: include/xen/compile.h.in .banner FORCE
 
 targets += include/xen/compile.h
 
+
 -include $(wildcard .asm-offsets.s.d)
 asm-offsets.s: arch/$(SRCARCH)/$(ARCH)/asm-offsets.c
 	$(CC) $(call cpp_flags,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
diff --git a/xen/include/Makefile b/xen/include/Makefile
index 1ff9468eeb..35df93c82e 100644
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -119,7 +119,10 @@ $(obj)/compat/xlat.h: $(addprefix $(obj)/compat/.xlat/,$(xlat-y)) FORCE
 
 quiet_cmd_genhyp = GEN     $@
 define cmd_genhyp
-    awk -f $(srctree)/scripts/gen_hypercall.awk <$< >$@
+    echo "#ifndef XEN__HYPERCALL_DEFS_H" >$@; \
+    echo "#define XEN__HYPERCALL_DEFS_H" >>$@; \
+    awk -f $(srctree)/scripts/gen_hypercall.awk <$< >>$@; \
+    echo "#endif /* XEN__HYPERCALL_DEFS_H */" >>$@
 endef
 
 all: $(obj)/xen/hypercall-defs.h
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:16:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:16:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762734.1173020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAhQ-0006Qy-FN; Tue, 23 Jul 2024 08:16:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762734.1173020; Tue, 23 Jul 2024 08:16:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAhQ-0006Qm-CH; Tue, 23 Jul 2024 08:16:44 +0000
Received: by outflank-mailman (input) for mailman id 762734;
 Tue, 23 Jul 2024 08:16: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgl-0008AN-4q
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:16:03 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cc2013c5-48cb-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 10:16:01 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 3F21C4EE0743;
 Tue, 23 Jul 2024 10:15: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: cc2013c5-48cb-11ef-bbfe-fd08da9f4363
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 12/17] xen: address violations of MISRA C:2012 Directive 4.10
Date: Tue, 23 Jul 2024 10:15:04 +0200
Message-Id: <42fbbb9ffb85893d049c80812b547ffb10ccda7e.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>

Modify creation rule for asm-offsets.h to conform to
the new standard and to not generate conflicting guards
between architectures (which is a violation of the directive).
Modify generic-y creation rule to generate code without violations
and to conform to the new standard.

Mechanical change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v5:
- edit inclusion guards of autogenerated files
Commit introduced in v3
---
 xen/build.mk                     | 7 ++++---
 xen/scripts/Makefile.asm-generic | 8 +++++++-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/xen/build.mk b/xen/build.mk
index 0f490ca71b..32624d3097 100644
--- a/xen/build.mk
+++ b/xen/build.mk
@@ -47,6 +47,7 @@ asm-offsets.s: arch/$(SRCARCH)/$(ARCH)/asm-offsets.c
 
 arch/$(SRCARCH)/include/asm/asm-offsets.h: asm-offsets.s
 	@(set -e; \
+	  guard=$$(echo ASM__${SRCARCH}__ASM_OFFSETS_H | tr a-z A-Z); \
 	  echo "/*"; \
 	  echo " * DO NOT MODIFY."; \
 	  echo " *"; \
@@ -54,12 +55,12 @@ arch/$(SRCARCH)/include/asm/asm-offsets.h: asm-offsets.s
 	  echo " *"; \
 	  echo " */"; \
 	  echo ""; \
-	  echo "#ifndef __ASM_OFFSETS_H__"; \
-	  echo "#define __ASM_OFFSETS_H__"; \
+	  echo "#ifndef $$guard"; \
+	  echo "#define $$guard"; \
 	  echo ""; \
 	  sed -rne "/^[^#].*==>/{s:.*==>(.*)<==.*:\1:; s: [\$$#]: :; p;}"; \
 	  echo ""; \
-	  echo "#endif") <$< >$@
+	  echo "#endif /* $$guard */") <$< >$@
 
 build-dirs := $(patsubst %/built_in.o,%,$(filter %/built_in.o,$(ALL_OBJS) $(ALL_LIBS)))
 
diff --git a/xen/scripts/Makefile.asm-generic b/xen/scripts/Makefile.asm-generic
index b0d356bfa3..2d2fd9f76e 100644
--- a/xen/scripts/Makefile.asm-generic
+++ b/xen/scripts/Makefile.asm-generic
@@ -32,7 +32,13 @@ old-headers := $(wildcard $(obj)/*.h)
 unwanted    := $(filter-out $(generic-y) $(generated-y),$(old-headers))
 
 quiet_cmd_wrap = WRAP    $@
-      cmd_wrap = echo "\#include <asm-generic/$*.h>" > $@
+cmd_wrap = \
+    guard=$$(echo ASM_GENERIC__${SRCARCH}__$*_H | tr a-z A-Z); \
+    echo "\#ifndef $$guard" >$@.new; \
+    echo "\#define $$guard" >>$@.new; \
+    echo "\#include <asm-generic/$*.h>" >>$@.new; \
+    echo "\#endif /* $$guard */" >>$@.new; \
+    mv -f $@.new $@
 
 quiet_cmd_remove = REMOVE  $(unwanted)
       cmd_remove = rm -f $(unwanted)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:17:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:17:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762743.1173040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAhf-0007Xq-VG; Tue, 23 Jul 2024 08:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762743.1173040; Tue, 23 Jul 2024 08: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 1sWAhf-0007Xh-RB; Tue, 23 Jul 2024 08:16:59 +0000
Received: by outflank-mailman (input) for mailman id 762743;
 Tue, 23 Jul 2024 08:16:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgr-0007w0-BE
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:16:09 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce190a55-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:16:04 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 200CB4EE0743;
 Tue, 23 Jul 2024 10:16: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: ce190a55-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v5 16/17] CODING_STYLE: Add a section on header guards naming conventions
Date: Tue, 23 Jul 2024 10:15:08 +0200
Message-Id: <14a663eaab02a78e688e1d260e1a4eb1799b13c5.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This section explains which format should be followed by header
inclusion guards via a drop-down list of rules.

No functional change.

Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changes in v5:
- edit inclusion guards naming conventions, according to feedback
  received
---
 CODING_STYLE | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/CODING_STYLE b/CODING_STYLE
index 7f6e9ad065..f4f26a3cd8 100644
--- a/CODING_STYLE
+++ b/CODING_STYLE
@@ -159,6 +159,27 @@ Emacs local variables
 A comment block containing local variables for emacs is permitted at
 the end of files.  It should be:
 
+Header inclusion guards
+-----------------------
+
+Unless differently specified all header files should have proper inclusion
+guards in order to avoid being included multiple times.
+The following naming conventions have been devised:
+
+- private headers -> <dir>__<filename>_H
+    - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
+    - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
+    - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
+
+- asm-generic headers -> ASM_GENERIC__<filename>_H
+    - include/asm-generic/something.h -> ASM_GENERIC__SOMETHING_H
+
+- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM__<architecture>__<subdir>__<filename>_H
+    - arch/x86/include/asm/something.h -> ASM__X86__SOMETHING_H
+
+- include/xen -> XEN__<filename>_H
+    - include/xen/something.h -> XEN__SOMETHING_H
+
 /*
  * Local variables:
  * mode: C
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:17:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:17:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762751.1173049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAhw-0008Lc-Bz; Tue, 23 Jul 2024 08:17:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762751.1173049; Tue, 23 Jul 2024 08:17:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWAhw-0008LS-90; Tue, 23 Jul 2024 08:17:16 +0000
Received: by outflank-mailman (input) for mailman id 762751;
 Tue, 23 Jul 2024 08: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=J0IL=OX=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWAgo-0007w0-B7
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:16:06 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cda0c08d-48cb-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:16:03 +0200 (CEST)
Received: from delta.bugseng.com.homenet.telecomitalia.it
 (host-79-35-51-193.retail.telecomitalia.it [79.35.51.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 4C3AB4EE073F;
 Tue, 23 Jul 2024 10:16: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: cda0c08d-48cb-11ef-8776-851b0ebba9a2
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: [XEN PATCH v5 14/17] xen/x86: rename inclusion guards for consistency
Date: Tue, 23 Jul 2024 10:15:06 +0200
Message-Id: <dc082174b2a7feda3860bf8655180af90065e60f.1721720583.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>

Edit inclusion guards in order to make them consistent with the
estabilished naming conventions.

No functional change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

---
Changs in v5:
- edit inclusion guards, according to feedback received
Changes in v4:
- Improve commit message
Commit introduced in v3
---
 xen/arch/x86/include/asm/domain.h      | 6 +++---
 xen/arch/x86/include/asm/event.h       | 6 +++---
 xen/arch/x86/include/asm/grant_table.h | 6 +++---
 xen/arch/x86/include/asm/io.h          | 6 +++---
 xen/arch/x86/include/asm/irq.h         | 6 +++---
 xen/arch/x86/include/asm/smp.h         | 6 +++---
 xen/arch/x86/include/asm/spinlock.h    | 6 +++---
 xen/arch/x86/include/asm/system.h      | 6 +++---
 8 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index f5daeb182b..9818835805 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_DOMAIN_H__
-#define __ASM_DOMAIN_H__
+#ifndef ASM__X86__DOMAIN_H
+#define ASM__X86__DOMAIN_H
 
 #include <xen/mm.h>
 #include <xen/radix-tree.h>
@@ -779,7 +779,7 @@ struct arch_vcpu_io {
 /* Maxphysaddr supportable by the paging infrastructure. */
 unsigned int domain_max_paddr_bits(const struct domain *d);
 
-#endif /* __ASM_DOMAIN_H__ */
+#endif /* ASM__X86__DOMAIN_H */
 
 /*
  * Local variables:
diff --git a/xen/arch/x86/include/asm/event.h b/xen/arch/x86/include/asm/event.h
index 5e09ede6d7..8932727d5a 100644
--- a/xen/arch/x86/include/asm/event.h
+++ b/xen/arch/x86/include/asm/event.h
@@ -6,8 +6,8 @@
  *
  */
 
-#ifndef __ASM_EVENT_H__
-#define __ASM_EVENT_H__
+#ifndef ASM__X86__EVENT_H
+#define ASM__X86__EVENT_H
 
 #include <xen/shared.h>
 
@@ -53,4 +53,4 @@ static inline bool arch_virq_is_global(unsigned int virq)
              (pv_shim && (chn)->port && (chn)->state == ECS_RESERVED)
 #endif
 
-#endif
+#endif /* ASM__X86__EVENT_H */
diff --git a/xen/arch/x86/include/asm/grant_table.h b/xen/arch/x86/include/asm/grant_table.h
index 5c23cec90c..67a4f84cbb 100644
--- a/xen/arch/x86/include/asm/grant_table.h
+++ b/xen/arch/x86/include/asm/grant_table.h
@@ -4,8 +4,8 @@
  * Copyright (c) 2004-2005 K A Fraser
  */
 
-#ifndef __ASM_GRANT_TABLE_H__
-#define __ASM_GRANT_TABLE_H__
+#ifndef ASM__X86__GRANT_TABLE_H
+#define ASM__X86__GRANT_TABLE_H
 
 #include <asm/paging.h>
 
@@ -72,4 +72,4 @@ static inline void gnttab_clear_flags(struct domain *d,
 #define gnttab_need_iommu_mapping(d)                \
     (!paging_mode_translate(d) && need_iommu_pt_sync(d))
 
-#endif /* __ASM_GRANT_TABLE_H__ */
+#endif /* ASM__X86__GRANT_TABLE_H */
diff --git a/xen/arch/x86/include/asm/io.h b/xen/arch/x86/include/asm/io.h
index 1cb4217cff..6b56a18850 100644
--- a/xen/arch/x86/include/asm/io.h
+++ b/xen/arch/x86/include/asm/io.h
@@ -1,5 +1,5 @@
-#ifndef _ASM_IO_H
-#define _ASM_IO_H
+#ifndef ASM__X86__IO_H
+#define ASM__X86__IO_H
 
 #include <xen/vmap.h>
 #include <xen/types.h>
@@ -57,4 +57,4 @@ struct cpu_user_regs;
 unsigned int ioemul_handle_proliant_quirk(
     uint8_t opcode, char *io_emul_stub, const struct cpu_user_regs *regs);
 
-#endif
+#endif /* ASM__X86__IO_H */
diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
index 5f445299be..a73141a15e 100644
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -1,5 +1,5 @@
-#ifndef _ASM_HW_IRQ_H
-#define _ASM_HW_IRQ_H
+#ifndef ASM__X86__IRQ_H
+#define ASM__X86__IRQ_H
 
 /* (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar */
 
@@ -231,4 +231,4 @@ int allocate_and_map_gsi_pirq(struct domain *d, int index, int *pirq_p);
 int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,
                               int type, struct msi_info *msi);
 
-#endif /* _ASM_HW_IRQ_H */
+#endif /* ASM__X86__IRQ_H */
diff --git a/xen/arch/x86/include/asm/smp.h b/xen/arch/x86/include/asm/smp.h
index c8c7960134..72cf218b8c 100644
--- a/xen/arch/x86/include/asm/smp.h
+++ b/xen/arch/x86/include/asm/smp.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_SMP_H
-#define __ASM_SMP_H
+#ifndef ASM__X86__SMP_H
+#define ASM__X86__SMP_H
 
 /*
  * We need the APIC definitions automatically as part of 'smp.h'
@@ -81,4 +81,4 @@ void *cpu_alloc_stack(unsigned int cpu);
 
 #endif /* !__ASSEMBLY__ */
 
-#endif
+#endif /* ASM__X86__SMP_H */
diff --git a/xen/arch/x86/include/asm/spinlock.h b/xen/arch/x86/include/asm/spinlock.h
index 56f6095752..11bec91e7f 100644
--- a/xen/arch/x86/include/asm/spinlock.h
+++ b/xen/arch/x86/include/asm/spinlock.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_SPINLOCK_H
-#define __ASM_SPINLOCK_H
+#ifndef ASM__X86__SPINLOCK_H
+#define ASM__X86__SPINLOCK_H
 
 #define _raw_read_unlock(l) \
     BUILD_BUG_ON(sizeof((l)->lock) != 4); /* Clang doesn't support %z in asm. */ \
@@ -24,4 +24,4 @@
     arch_lock_signal();             \
 })
 
-#endif /* __ASM_SPINLOCK_H */
+#endif /* ASM__X86__SPINLOCK_H */
diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
index 73cb16ca68..4e1480c497 100644
--- a/xen/arch/x86/include/asm/system.h
+++ b/xen/arch/x86/include/asm/system.h
@@ -1,5 +1,5 @@
-#ifndef __ASM_SYSTEM_H
-#define __ASM_SYSTEM_H
+#ifndef ASM__X86__SYSTEM_H
+#define ASM__X86__SYSTEM_H
 
 #include <xen/bitops.h>
 #include <xen/bug.h>
@@ -269,4 +269,4 @@ void load_system_tables(void);
 void percpu_traps_init(void);
 void subarch_percpu_traps_init(void);
 
-#endif
+#endif /* ASM__X86__SYSTEM_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:37:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:37:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762839.1173060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWB14-0003ZG-U1; Tue, 23 Jul 2024 08:37:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762839.1173060; Tue, 23 Jul 2024 08:37:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWB14-0003Z9-Qi; Tue, 23 Jul 2024 08:37:02 +0000
Received: by outflank-mailman (input) for mailman id 762839;
 Tue, 23 Jul 2024 08: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=Rd17=OX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWB13-0003Z3-8b
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:37:01 +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 ba531d16-48ce-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 10:36:59 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5a167b9df7eso5182176a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 01:36: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
 4fb4d7f45d1cf-5a30c2f88a5sm7155898a12.77.2024.07.23.01.36.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 01: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: ba531d16-48ce-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721723819; x=1722328619; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V011ySCA2sWR2YZ2G4YKkT98XR8zrJAayITvz4Vl7nY=;
        b=UEJfkmnwSc/Oj2piz2jLRKGACnW7/0oPM3B/tstN4S15gKM6TobXqDZbPwwMfF8CRq
         Ylfk0hOyO4b+hljXQNxw5N8oxIzB74JzmM2WPSAwBVtf33UlAPONsI89+hOKEQcSB0nw
         uH64vJA7mOGLbAo3PPLV9NRO/zCTkPdVXbe51LFFoE7HmK7vOj7Lj8QZeiKY7tO5JVo1
         7Z6SBj7/HwW+X6RJQWREHfXkiLkJvr3wKSzAUBg0vzzacTnGHycL5ZE11b0IrKVfFtgJ
         TBibz32Kkarb5myOBL9B9JUVM4uwCHg850tr4MdcCVGdtlVqQ3wu7lkUoVHsVSGs0/9y
         Anxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721723819; x=1722328619;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V011ySCA2sWR2YZ2G4YKkT98XR8zrJAayITvz4Vl7nY=;
        b=r0AmPjqKEAwP2WFPabkwnbepS2xyycrGrdmTeufs5hCudtO2hRjPFRHpZT7a7G+YXH
         bIjLJgWKIG1+T3eiuYWOBJeNfR3DHYj8VPyhjqC41CnOl7H25jD2/bWiagrUNvNX6T0H
         380O8tgZFmZUUJaTew6aiaAJ2rUyBOGMulGo9jD1hlCcoGNA9JEKWdrlzpw3DRkBoEsH
         sXS4O/bNunk2crVezKG6DYGqX1UpsPkXinuqpm8OvN2tf4n1JK8f3p6NP1e1KZ5oXjGR
         /Rca0SgWNyK77ojxPFR7rgOE9nPFb5z3SimQrFL6Bju38YDIPPLFY8GiLDgLDhR6Czyq
         37TQ==
X-Forwarded-Encrypted: i=1; AJvYcCX0CojS7chsSwjEBSwuRTNS9GwSFuna0CDLL5uiMgEOxlKl1tdxLjwAsCfcrS88G0NnsCjZ5TMUpiaNJwFNkfmyXB4Bo0HlZBOIJZILLis=
X-Gm-Message-State: AOJu0Yz2HWtz3wdEV19D880nffCcPMsBadBFIC0MVucyYtMMexCO3KNV
	a72f9glx3z6XDfEyoWkjFtQ3eWjhdYZx0JpjV+L3EWfesNYqvqggOR1PTUbv2w==
X-Google-Smtp-Source: AGHT+IFi6zbXfxwnzww72RnBGGHbXqdMIVs8saSz+LCxIhYx4rRabmTNkLws2fNNgqu75Udu4X16TQ==
X-Received: by 2002:a05:6402:27cf:b0:5a0:d754:5ec5 with SMTP id 4fb4d7f45d1cf-5a4795813a8mr7317789a12.26.1721723819342;
        Tue, 23 Jul 2024 01:36:59 -0700 (PDT)
Message-ID: <97c82aca-0b8a-4b78-980b-0857dbdae80a@suse.com>
Date: Tue, 23 Jul 2024 10:36:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Oleksii Kurochko <inisider@gmail.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Julien Grall <julien@xen.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
 <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
 <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
 <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
 <26ae01e2-d085-48d7-8b1f-da1e44b01e53@xen.org>
 <CAMacjJwWLjGcFbYEhCPyNEW_+sfb51+XtKqyBcc2JGm=D5bf0w@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAMacjJwWLjGcFbYEhCPyNEW_+sfb51+XtKqyBcc2JGm=D5bf0w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.07.2024 10:02, Oleksii Kurochko wrote:
> On Mon, Jul 22, 2024 at 7:27 PM Julien Grall <julien@xen.org> wrote:
>>>> On 22/07/2024 15:44, Oleksii Kurochko wrote:
>>>     /* Map a 4k page in a fixmap entry */
>>>     void set_fixmap(unsigned map, mfn_t mfn, unsigned int flags)
>>>     {
>>>         pte_t pte;
>>>
>>>         pte = mfn_to_xen_entry(mfn, flags);
>>>         pte.pte |= PTE_LEAF_DEFAULT;
>>>         write_pte(&xen_fixmap[pt_index(0, FIXMAP_ADDR(map))], pte);
>>
>> It would be saner to check if you are not overwriting any existing
>> mapping as otherwise you will probably need a TLB flush.
>>
>>>     }
>>>
>>>     /* Remove a mapping from a fixmap entry */
>>>     void clear_fixmap(unsigned map)
>>>     {
>>>         pte_t pte = {0};
>>>         write_pte(&xen_fixmap[pt_index(0, FIXMAP_ADDR(map))], pte);
>>
>> Don't you need a TLB flush?
>>
> Inside write_pte() there is "sfence.vma".

That's just a fence though, not a TLB flush.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:44:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:44:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762846.1173070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWB7k-00054F-KI; Tue, 23 Jul 2024 08:43:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762846.1173070; Tue, 23 Jul 2024 08:43: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 1sWB7k-000548-GW; Tue, 23 Jul 2024 08:43:56 +0000
Received: by outflank-mailman (input) for mailman id 762846;
 Tue, 23 Jul 2024 08:43: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=Rd17=OX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWB7j-000542-MB
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:43:55 +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 b173174f-48cf-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 10:43:54 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5a10bb7bcd0so5103353a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 01:43: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
 a640c23a62f3a-a7a3c8c022dsm511010766b.102.2024.07.23.01.43.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 01:43: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: b173174f-48cf-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721724234; x=1722329034; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nrG1jI97WeUlB9L9CyUHhcM/4jOMcTb1tb6wd0//3T4=;
        b=dRgcfWIHZ+MiVrk4PmQFDaw//TWnsLmEHKX79cH8FKgzfIhVw6DuVGkFs/8UuuH+0n
         Ly78l8I9WU/ZbQIEA/pxhzj+bcAp7YCJWsAoh0NZ9z3wpoegbBIQLtPvcp9pyL5+GHNj
         AXclio5WAu8Y4nxaCDjvXEDoXUeR1cN7r/4Dakx0drIHbApuQM8CMtVLIz0rnQI7nV1x
         ORY/T7WkE4u7OG7zkRwa+BcTHtz8QmSeC876Rxkt8mw+LNE3klbHe2p4nnu7a7zPK+L2
         +1bIlCsJrE2eZuvEESfWwLl9NZtiiv7q2CxJZVuIW/ifYRQT1bqNrFqsdBQCWFc6UMSB
         S18g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721724234; x=1722329034;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nrG1jI97WeUlB9L9CyUHhcM/4jOMcTb1tb6wd0//3T4=;
        b=VUckf0dmBYgGh5nGErUK8NbSJIq9jVaorIRDx6Br3DzmurMtfOiwhawy/xLtDvLbCo
         Ma31RQZgNNGsXnCMBwnd4hlNaJr5fI2g7S88t9kJflzQRs+JHJp4JMLZIHP2ShWx4x1u
         0XEB29KD7/6J79P/uBLVw5mZ6vnlitxBiRX6T5tMc+9YLzW8qPkoqrr5QTeZ0johnayK
         ngLowszLdaTUrsDxqVytX02B5lILLo8liQIM1cQbM7H236DPPcnlBUNjjfZUOIQyG7sK
         r8tGfNlSF5hTASbLJfwoJt0m5Qb4E2W1998HV3KIc6eglgaCbbMaAu1nJOFtMP7pHdet
         cJ2w==
X-Forwarded-Encrypted: i=1; AJvYcCWSgqc8qWKd3/Lexsvy1bG3yX73ctv/iTRZ0otqjwSgbKZ3mdrHJY4Iv8zgibnV0CIlTYy1VOv+cC8zhDbfZ1rakN4XuKVqOlVVjyZ0fOk=
X-Gm-Message-State: AOJu0YxsLdjwZQVI5aOzGls32KVPQDoAJo/f22v/3pexOnCWq9lRl3nI
	ywNPULDDPeo2zsjwM22WBM8sVl+QBrs9Veu5M/TYq3KnYugb0k8cJ9Db/6xnGA==
X-Google-Smtp-Source: AGHT+IHhv/E0aDNbN2t+OR+qVuE2GWAgWe6QS4dX2jVhcsMfkUbw4ztNbJJj5NaurUyGKGvwNIsurQ==
X-Received: by 2002:a17:907:97c2:b0:a77:c314:d621 with SMTP id a640c23a62f3a-a7a4bfa2ce3mr612032866b.13.1721724233956;
        Tue, 23 Jul 2024 01:43:53 -0700 (PDT)
Message-ID: <9ceeedb1-31c6-4701-849c-e4f32fc07409@suse.com>
Date: Tue, 23 Jul 2024 10:43:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 16/17] CODING_STYLE: Add a section on header guards
 naming conventions
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
 <14a663eaab02a78e688e1d260e1a4eb1799b13c5.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <14a663eaab02a78e688e1d260e1a4eb1799b13c5.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 10:15, Alessandro Zucchelli wrote:
> This section explains which format should be followed by header
> inclusion guards via a drop-down list of rules.
> 
> No functional change.
> 
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

As indicated in reply to v4, this wants (imo needs) to move to the very start
of the series. No changes following the new scheme should be made without the
new scheme actually having been committed.

> --- a/CODING_STYLE
> +++ b/CODING_STYLE
> @@ -159,6 +159,27 @@ Emacs local variables
>  A comment block containing local variables for emacs is permitted at
>  the end of files.  It should be:
>  
> +Header inclusion guards
> +-----------------------
> +
> +Unless differently specified all header files should have proper inclusion
> +guards in order to avoid being included multiple times.
> +The following naming conventions have been devised:
> +
> +- private headers -> <dir>__<filename>_H
> +    - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
> +    - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
> +    - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> +
> +- asm-generic headers -> ASM_GENERIC__<filename>_H
> +    - include/asm-generic/something.h -> ASM_GENERIC__SOMETHING_H
> +
> +- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM__<architecture>__<subdir>__<filename>_H
> +    - arch/x86/include/asm/something.h -> ASM__X86__SOMETHING_H
> +
> +- include/xen -> XEN__<filename>_H
> +    - include/xen/something.h -> XEN__SOMETHING_H

While I think this expresses what we have settled on, it lack details. For
example, when to use single vs double underscores is left for the reader
to derive from the examples, which leaves room for interpretation.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:44:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:44:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762852.1173079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWB8h-0005Zq-SG; Tue, 23 Jul 2024 08:44:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762852.1173079; Tue, 23 Jul 2024 08:44: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 1sWB8h-0005Zj-Pl; Tue, 23 Jul 2024 08:44:55 +0000
Received: by outflank-mailman (input) for mailman id 762852;
 Tue, 23 Jul 2024 08:44:54 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWB8g-0005ZZ-H8; Tue, 23 Jul 2024 08:44:54 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWB8g-0001Nw-1n; Tue, 23 Jul 2024 08:44:54 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWB8f-0001Ks-N5; Tue, 23 Jul 2024 08:44:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWB8f-0008EH-MV; Tue, 23 Jul 2024 08:44: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=0qeEuup0sgZfIlIC5xfVxr/bY0kJ063v9+frLVV5KSE=; b=eXkKd1bRsslGuP6ZSr4s+mlp3d
	hbGqOOFLRRG/vGsD+tcfJounARgipmUaxeoUmHX65eXhKuhrNZmJMcshtrkDFyp2NyrB3G7shRc7k
	jWhn9TMSL2BZ7y2ns5EYAyE5AWoQNyXROkAIjM6k6cBWG6pEpVAKxOGCkk/zhrdZNQbU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186959-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186959: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=6699341d880fdff110eb4e3ec03e4bc4172cb431
X-Osstest-Versions-That:
    libvirt=c019350a76d79405dd3e22d3023b71384f2924f2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 08:44:53 +0000

flight 186959 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186959/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186923
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              6699341d880fdff110eb4e3ec03e4bc4172cb431
baseline version:
 libvirt              c019350a76d79405dd3e22d3023b71384f2924f2

Last test of basis   186923  2024-07-20 04:20:34 Z    3 days
Testing same since   186959  2024-07-23 04:18:49 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Daniel P. Berrangé <berrange@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   c019350a76..6699341d88  6699341d880fdff110eb4e3ec03e4bc4172cb431 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 08:55:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 08:55:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762867.1173089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWBIi-0007Wk-Tu; Tue, 23 Jul 2024 08:55:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762867.1173089; Tue, 23 Jul 2024 08:55:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWBIi-0007Wd-RI; Tue, 23 Jul 2024 08:55:16 +0000
Received: by outflank-mailman (input) for mailman id 762867;
 Tue, 23 Jul 2024 08:55:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWBIi-0007WX-5R
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 08:55:16 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 46629e42-48d1-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 10:55:14 +0200 (CEST)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-52efabf5d7bso2899796e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 01:55:14 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52ef9f79b89sm1257727e87.230.2024.07.23.01.55.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 01: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: 46629e42-48d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721724913; x=1722329713; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=76Z5IFOv5O0wP9wxNtE1qbuZnLSJK9LP8ZBzOVOSips=;
        b=kEqPCnkkFCiMRLoO+EKcLrqAeQOEs6QQAVFdU2ghlyGi9Q7mSyNjfPLJafPcpkTt0r
         tW7E3eMsynxHBJtmV5231HycMhqdcE9dlUcTwkkKsqteLzCGmqYV9jJDm05mfLSeF4j6
         H3reeJxt38bdkv3TByx+mBhxIZd5PmJUZIfSQoIiU8PKoQ7Hs6t9Rqa7WsfGp3PCYziq
         lc3h3ZXWIhvMr0uHjgIaKPzFk34QQR9ma9kGuKO9ODoIj3+PEElLT96ViEnv7Dh4ENfy
         m+/J4PQGVRMWTuENDuzEXYZ9jF1sHObJn5E6tCtog58t+rF7/qi3m6+TRA8NRWsckKbn
         tuhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721724913; x=1722329713;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=76Z5IFOv5O0wP9wxNtE1qbuZnLSJK9LP8ZBzOVOSips=;
        b=Okpjl7gB/L+0nIQTV8W/4WVVbP+UFNI6JOXjhbt2nyRvaw+TXjh/mku4FckUr8jNFN
         Fm2lHU+sv3sUEJNwq5Sht4IcaDG6qizvNPku5k35fk//IVkP9EA2yQXSeONuOzxmUf6f
         zlQMsS0zmiwAbThtWrTcgI3w0SK3OKp8KCDaD/xgcaRhnKHep8UfUJ8C4UeNVI7ObufF
         1y4VUYtd8kvJObEGpvWK+deETQedBYxZvB3fzKFQop+HXQzThLOx+8Ez7WSugkKxTx6U
         r7Qwv/FxUxJmdmu/QEZLmB1ln8e5s+Yvl0IdMTllNDpi/JC/3QtQSL0B8SGyeFFt3rp/
         VXRg==
X-Forwarded-Encrypted: i=1; AJvYcCXlDj7biIvKWZ9guOPMq/6PJ48QEG6k6iuAFQjzLejpv+wgBu41NYpZctEuXQLdcgF/tOZJkQK5eVbQZfBj6TwHABMmrTzdCceDvu2/Ak8=
X-Gm-Message-State: AOJu0YzB+QGtkUAwixr+8gGFlngSdD0NYhuccEf8MDtdDLLeD3PHoDD1
	cv+jmdN/LjNdmzA2siOBGk9unwINspdhkW/iI2z/jiqTLxWGjJu0
X-Google-Smtp-Source: AGHT+IG/GdYnjN1E7ftGJni1NdmN1IYpASsqllTqQOf3vQYq8+lfPPmz98f3zXsF7c90xeWiVXWFiA==
X-Received: by 2002:a05:6512:224e:b0:52f:287:d16f with SMTP id 2adb3069b0e04-52f0287d2e8mr4781445e87.11.1721724913181;
        Tue, 23 Jul 2024 01:55:13 -0700 (PDT)
Message-ID: <4c9eb7a79c33c7cd2f6bde05b1fbc7770e662026.camel@gmail.com>
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Stefano Stabellini
 <sstabellini@kernel.org>,  xen-devel@lists.xenproject.org, Julien Grall
 <julien@xen.org>
Date: Tue, 23 Jul 2024 10:55:12 +0200
In-Reply-To: <97c82aca-0b8a-4b78-980b-0857dbdae80a@suse.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
	 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
	 <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
	 <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
	 <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
	 <26ae01e2-d085-48d7-8b1f-da1e44b01e53@xen.org>
	 <CAMacjJwWLjGcFbYEhCPyNEW_+sfb51+XtKqyBcc2JGm=D5bf0w@mail.gmail.com>
	 <97c82aca-0b8a-4b78-980b-0857dbdae80a@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-23 at 10:36 +0200, Jan Beulich wrote:
> On 23.07.2024 10:02, Oleksii Kurochko wrote:
> > On Mon, Jul 22, 2024 at 7:27=E2=80=AFPM Julien Grall <julien@xen.org>
> > wrote:
> > > > > On 22/07/2024 15:44, Oleksii Kurochko wrote:
> > > > =C2=A0=C2=A0=C2=A0 /* Map a 4k page in a fixmap entry */
> > > > =C2=A0=C2=A0=C2=A0 void set_fixmap(unsigned map, mfn_t mfn, unsigne=
d int
> > > > flags)
> > > > =C2=A0=C2=A0=C2=A0 {
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pte;
> > > >=20
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte =3D mfn_to_xen_entry=
(mfn, flags);
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte.pte |=3D PTE_LEAF_DE=
FAULT;
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixmap[pt=
_index(0, FIXMAP_ADDR(map))],
> > > > pte);
> > >=20
> > > It would be saner to check if you are not overwriting any
> > > existing
> > > mapping as otherwise you will probably need a TLB flush.
> > >=20
> > > > =C2=A0=C2=A0=C2=A0 }
> > > >=20
> > > > =C2=A0=C2=A0=C2=A0 /* Remove a mapping from a fixmap entry */
> > > > =C2=A0=C2=A0=C2=A0 void clear_fixmap(unsigned map)
> > > > =C2=A0=C2=A0=C2=A0 {
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pte =3D {0};
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixmap[pt=
_index(0, FIXMAP_ADDR(map))],
> > > > pte);
> > >=20
> > > Don't you need a TLB flush?
> > >=20
> > Inside write_pte() there is "sfence.vma".
>=20
> That's just a fence though, not a TLB flush.
>From the privileged doc:
   ```
   SFENCE.VMA is also used to invalidate entries in the
   address-translation cache associated with a hart (see Section 4.3.2).=
=20
   ...
   The SFENCE.VMA is used to flush any local hardware caches related to
   address translation.
   It is specified as a fence rather than a TLB flush to provide cleaner
   semantics with respect to
   which instructions are affected by the flush operation and to support a
   wider variety of dynamic
   caching structures and memory-management schemes. SFENCE.VMA is also
   used by higher
   privilege levels to synchronize page table writes and the address
   translation hardware.
   ...
   ```
I read this as SFENCE.VMA is used not only for ordering of load/stores,
but also to flush TLB ( which is a type of more general term as
address-translation cache, IIUIC ).

Also, Linux kernel uses sfence.vma to flush TLB:
https://elixir.bootlin.com/linux/v6.0/source/arch/riscv/include/asm/tlbflus=
h.h#L23

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 09:27:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 09:27:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762881.1173099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWBnW-0003yt-AP; Tue, 23 Jul 2024 09:27:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762881.1173099; Tue, 23 Jul 2024 09:27: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 1sWBnW-0003ym-7l; Tue, 23 Jul 2024 09:27:06 +0000
Received: by outflank-mailman (input) for mailman id 762881;
 Tue, 23 Jul 2024 09:27:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=BZ+O=OX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWBnU-0003yg-RM
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 09:27:04 +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 b8bab586-48d5-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 11:27:03 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3687fd09251so2277479f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 02:27:03 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-368787ebd50sm10860153f8f.93.2024.07.23.02.27.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 02: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: b8bab586-48d5-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721726823; x=1722331623; 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=ZUJXxiHx3ch4xF9jcjJSjJMIWkQGZZEcgDv7d4gcZVc=;
        b=QH/bmc16SwgExPPRW3//cwjfvB7jNw6hnGpT9tBvo3no/FeSGCQAT4PA0FiMuhzzAH
         oNBi98227X0TMyUj13zQHjuMrT2km3TOFyzmOm9rmxgAfmZtRRjVKPcmXlFFWWDHesOS
         rgRJCuqakds/eMBejOidwytpB8ebxwmpnhXxo/pbVvaIR4hKsSxxIenO9Rq67Kocf0lS
         V4AseMtKmWEq5OaQyTVOv6SIaOD0sC7my7dxbo2mpYMfc4Xqw0sWjDgyQWjXklpIGquH
         rfejbQyrrfW0NdcRjNuWk2cNpEtnqT1pBS7HGURhQgFpdYbYg4SmHwijcWWBOJz5H9FH
         miRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721726823; x=1722331623;
        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=ZUJXxiHx3ch4xF9jcjJSjJMIWkQGZZEcgDv7d4gcZVc=;
        b=YzU9t/sqR3qA8itApJiztEC4I1oJO2Znb23rWhco7OW+BWOfs3L5lvdpvlU7JJc55d
         qFdOAu+bG3FTz7029qVykECRvuA/o6ZzYg2jl7PI7J+xqakDn11/VVYxha36oonaKR7a
         cUOrIOiplYlx/GT/1Hta4j2Pb7U25oLPI1M6Ky99MjSypBIVIFudq5eUafPXCHLPhp+n
         7NuJD5lVKq1w5BKpgHnROTIvlPvLq6CnIVJywaly4SlJcLP2bXVAhbC3h8m25gzpXjkC
         cNo5XjgK98SlzL4mZ6idsMcvWr1ftcJFT7sXNphaWE8xsUkxEzBCtWCHbET375+DW8NU
         DKEw==
X-Forwarded-Encrypted: i=1; AJvYcCWPtzm1JIjo8vcZy23NMsQRcp3VeKfep+1zUX7w33g4sPSZOchlAQvG5pLC6w/JKhpmkeytJ8OWhJ+z3fiJ7IsSP8HQDCFUIY3+EVy4W68=
X-Gm-Message-State: AOJu0Ywe1OKtnYimsvrPEbRmS4gky6x6DCrRG7HRLpHmWHHf9CuMlccj
	n0fzxQyjPWXWp6BWoP33QnO0XnCEqXV5VaQnhZPiezzQIJFQUJOj0lk6bAc+7H0=
X-Google-Smtp-Source: AGHT+IGzvFURKQTRvuwcjd1BXlqNpUrDfAivc4nrPIjvbjmMLEzc+NeoxbLeSoIVfCaEP8Xn5spajA==
X-Received: by 2002:a5d:6b0d:0:b0:368:4edc:611e with SMTP id ffacd0b85a97d-369bae3c846mr5408038f8f.14.1721726823149;
        Tue, 23 Jul 2024 02:27:03 -0700 (PDT)
Message-ID: <45fd3774-9336-47bb-9111-af0ad41664c9@suse.com>
Date: Tue, 23 Jul 2024 11:27:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] tools/libxs: Rework xs_talkv() to take xsd_sockmsg
 within the iovec
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-3-andrew.cooper3@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240718164842.3650702-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 18.07.24 18:48, Andrew Cooper wrote:
> We would like to writev() the whole outgoing message, which is hard given the
> current need to prepend the locally-constructed xsd_sockmsg.
> 
> Instead, have the caller provide xsd_sockmsg in iovec[0].  This in turn drops
> the t and type parameters from xs_talkv().
> 
> Note that xs_talkv() may alter the iovec structure.  This may happen when
> writev() is really used under the covers, and it's preforable to having the
> lower levels need to duplciate the iovec to edit it upon encountering a short
> write.  xs_directory_part() is the only function impacted by this, and it's
> easy to rearrange.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 09:29:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 09:29:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762887.1173109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWBpv-0004XM-MH; Tue, 23 Jul 2024 09:29:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762887.1173109; Tue, 23 Jul 2024 09: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 1sWBpv-0004XF-Jb; Tue, 23 Jul 2024 09:29:35 +0000
Received: by outflank-mailman (input) for mailman id 762887;
 Tue, 23 Jul 2024 09:29: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=BZ+O=OX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWBpu-0004X9-RB
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 09:29:34 +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 11a57a02-48d6-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 11:29:32 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a79f9a72a99so91250466b.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 02:29:32 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a97684349sm52247866b.163.2024.07.23.02.29.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 02:29: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: 11a57a02-48d6-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721726972; x=1722331772; 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=BzY9nlCaBT/4mCOvCOKVBNvXiwyyb2HyvTMBaPfKsFM=;
        b=FmvmBH2jYBEih/zu50brnc6bulbnVe4pOeDlxLiix1kd9paLSCxdhHC+yGNSUzDiWR
         VMHF+yyvrnlla+Ge+PkD/8x6VTeCqrDc0E98oT5s4EHYr/4dh0up6HZw4j4FM1hzWxaY
         HS54YKEetLp5nlrHJUuMSVPqdJ41L2nmI7rjGIVXAnSdop2Rrg5BhFkvNm3boLBBOQWu
         S9Kt/j56Ig6yFt5gdbjYsTXFqE05v76PD5rC4bLebLob/M0UKOpAExydp9j7IWSgAfLT
         HzSf4PVvKx6bSd6isZUKZV/R1/vImR1m8lgYIzyT6ndHS3/u5TVrQge5aKdEW9h+4qhx
         JtDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721726972; x=1722331772;
        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=BzY9nlCaBT/4mCOvCOKVBNvXiwyyb2HyvTMBaPfKsFM=;
        b=IYjVXyhBmq4EmfnKxr5r5Vf12AV1cKvBk+58K1mlcoIsIGIlanC4NRp63hOZ0bKBbx
         rXzbSb37mCSrrjNUmLsgvv0lO28htO+Qmf7jyzODo1XQIUcoox7BQh3sVQH6EtwOWBEz
         hTUZV06cEeLfqXfI/Fgx4VWINBw7vmWLHyMgwqX+nyVOosn64Z2AAb4y8J+zWWA+7ZwB
         lmG3yMG2uer99wtxBHWr06PPm9Xi3YyE0O2UNaFYWxfniK7KqWW8rcVnVcEa+YXx9otf
         0O377gbEnHASUs0ULKvlKvnjdulDOx1oRX+QbZhNNhApUQQWRjccBT3RGZ1Cdz/FeaJH
         Hofg==
X-Forwarded-Encrypted: i=1; AJvYcCV/HMTs6aEoB7iUnbjaNRhynU0/fwBSSk06V502ZAXKOCuOSqRj5GxzNptDAVZkrzN/EDlXXwMYle9kaMsAR6aQ53IwELT1ziY3KYclzGU=
X-Gm-Message-State: AOJu0YwnBtO9wMYd5UNp6vYHvQRj1z+Y5Gr7lJErtiq1GzBFzaFfR7wM
	xkS2ZyecBM+sd8LJYgmIC7YZ9Kl/9Y0at83fR0zc2O5SbPK463mO6rVP2TtOL+tG0bTB5SuYbxm
	x
X-Google-Smtp-Source: AGHT+IGM+WNd9+MYH0nkgkRXwXsvcfT5/T80qfz8k6cKVgna0TRlWcRQBpl4LA6U/jQ4+4s2IAvf2Q==
X-Received: by 2002:a17:906:c142:b0:a77:c693:9ddf with SMTP id a640c23a62f3a-a7a943c25camr149435566b.34.1721726972302;
        Tue, 23 Jul 2024 02:29:32 -0700 (PDT)
Message-ID: <0f02c5fd-4d38-4c5c-b8dc-abef52c2c492@suse.com>
Date: Tue, 23 Jul 2024 11:29:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/6] tools/libxs: Rationalise the definition of struct
 xs_handle
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-4-andrew.cooper3@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240718164842.3650702-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 18.07.24 18:48, Andrew Cooper wrote:
> Right now there are two completely different struct xs_handle definitions,
> depend on #ifdef USE_PTHREAD.  One is especially well hidden, and often
> escapes updates.
> 
> Rework struct xs_handle using some interior ifdefary.  It's slightly longer,
> but much easier to follow.  Importanly, this makes it much harder to forget
> the !PTHREAD case when adding a "common" variable.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 09:31:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 09:31:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762893.1173120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWBs6-0005y3-2N; Tue, 23 Jul 2024 09:31:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762893.1173120; Tue, 23 Jul 2024 09:31:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWBs5-0005xw-Vr; Tue, 23 Jul 2024 09:31:49 +0000
Received: by outflank-mailman (input) for mailman id 762893;
 Tue, 23 Jul 2024 09:31:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MQdi=OX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWBs4-0005xq-IK
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 09:31:48 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62012341-48d6-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 11:31:47 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2ef2d7d8854so22634941fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 02:31:47 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-427d6906a96sm168073485e9.22.2024.07.23.02.31.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 02:31: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: 62012341-48d6-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721727107; x=1722331907; 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=4p5EBajcnF2PBWFGM7P90104CDoSF78S5SKBKjL4e/Y=;
        b=Px2VoIjBIiErERU+l+1A9M8P1zeEqostM0d7WZMyjzTGmnt12yyevBUQCDCTqFAfGe
         XNfQjSPetoLXVnCGa1Qx0U1VYvnnmU4xL9jv5p2RY8qjBjdzSNPE8OEXVJ6IdxH8DNfm
         Cl115pM/3AwBrXsC/ITqvndHFPzhzAK1TnOSU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721727107; x=1722331907;
        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=4p5EBajcnF2PBWFGM7P90104CDoSF78S5SKBKjL4e/Y=;
        b=DA6t35KkC+8q7lRboyQRWdg4c4HsgcHZEaXmDcfqSREH3x+jD04fjbyFU4OzBnrA1x
         K2y7Cu1xOiKUmfjR/UQuaFVURNBRv2FPIwraaSVRy92Ua/iKOiL+k+rmoS1HfwTCMooW
         0oVtBfvaFsMa2+ryWQJUxE3QMxN4HtDtpiHYQLbKYBa6fAgUumvsVKBPNp5Tp5I9aptl
         ldQMxvVxZxBIujE7XsRmsV/5FnM7ObogABEXdfOTfA+PrbyuM+h31Qr+JcvTWpmmbKIp
         fMtuGx7Oukp8pqIEIfYn0G045agt8LDxuSsv1YUoyu8vg2UX3Jcq/ibwYq9Ns/0TcKpe
         9knA==
X-Gm-Message-State: AOJu0YwVfJVMeDckRSLELqnowhuZFObSmuRJNNyRv9fEsN/SdN8uRDC1
	l3EoPI1jxky2iLhdB5tYz9gQXNn5hb0VDiphHxWQzT7onF6aRi9U2IRQpKuzOZbRvXD1PyB6Efu
	B
X-Google-Smtp-Source: AGHT+IE1pyooqsY8trGVubUq4gK4A3xLfKdqvT96Y8tKgrPiFsTVxiOCI/mJeYESNEAImuc7Km7BXA==
X-Received: by 2002:a2e:9f16:0:b0:2ee:80b2:1e99 with SMTP id 38308e7fff4ca-2f01ead8f10mr16221501fa.44.1721727106436;
        Tue, 23 Jul 2024 02:31: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>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.19] x86/altcall: fix clang code-gen when using altcall in loop constructs
Date: Tue, 23 Jul 2024 11:31:17 +0200
Message-ID: <20240723093117.99487-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Yet another clang code generation issue when using altcalls.

The issue this time is with using loop constructs around alternative_{,v}call
instances using parameter types smaller than the register size.

Given the following example code:

static void bar(bool b)
{
    unsigned int i;

    for ( i = 0; i < 10; i++ )
    {
        int ret_;
        register union {
            bool e;
            unsigned long r;
        } di asm("rdi") = { .e = b };
        register unsigned long si asm("rsi");
        register unsigned long dx asm("rdx");
        register unsigned long cx asm("rcx");
        register unsigned long r8 asm("r8");
        register unsigned long r9 asm("r9");
        register unsigned long r10 asm("r10");
        register unsigned long r11 asm("r11");

        asm volatile ( "call %c[addr]"
                       : "+r" (di), "=r" (si), "=r" (dx),
                         "=r" (cx), "=r" (r8), "=r" (r9),
                         "=r" (r10), "=r" (r11), "=a" (ret_)
                       : [addr] "i" (&(func)), "g" (func)
                       : "memory" );
    }
}

See: https://godbolt.org/z/qvxMGd84q

Clang will generate machine code that only resets the low 8 bits of %rdi
between loop calls, leaving the rest of the register possibly containing
garbage from the use of %rdi inside the called function.  Note also that clang
doesn't truncate the input parameters at the callee, thus breaking the psABI.

Fix this by turning the `e` element in the anonymous union into an array that
consumes the same space as an unsigned long, as this forces clang to reset the
whole %rdi register instead of just the low 8 bits.

Fixes: 2ce562b2a413 ('x86/altcall: use a union as register type for function parameters on clang')
Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Adding Oleksii as to whether this could be considered for 4.19: it's strictly
limited to clang builds, plus will need to be backported anyway.
---
 xen/arch/x86/include/asm/alternative.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index 0d3697f1de49..e63b45927643 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -185,10 +185,10 @@ extern void alternative_branches(void);
  */
 #define ALT_CALL_ARG(arg, n)                                            \
     register union {                                                    \
-        typeof(arg) e;                                                  \
+        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
         unsigned long r;                                                \
     } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
-        .e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })   \
+        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
     }
 #else
 #define ALT_CALL_ARG(arg, n) \
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 09:33:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 09:33:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762900.1173131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWBtg-0006Wo-Cv; Tue, 23 Jul 2024 09:33:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762900.1173131; Tue, 23 Jul 2024 09:33: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 1sWBtg-0006Wh-8g; Tue, 23 Jul 2024 09:33:28 +0000
Received: by outflank-mailman (input) for mailman id 762900;
 Tue, 23 Jul 2024 09:33: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=BZ+O=OX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWBte-0006WU-BU
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 09:33:26 +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 9bb2a758-48d6-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 11:33:24 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2eeec60a324so68204971fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 02:33:24 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7aa309243esm13867066b.151.2024.07.23.02.33.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 02:33: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: 9bb2a758-48d6-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721727204; x=1722332004; 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=R+zEoWWeWJvbrJUrkEFc8Z4N5GueeVB4Q31zrWykAPY=;
        b=ZnESTzd7f5pGBxlIanOFRTUTkETeMA27i4CA9oFOY1Q5FoTcDrZ7wm4Si+hdffmA/T
         cewxh23egPGyMe1y3r3UOdGOxnA/XFSe9PkOSggowcPXNrcihvNXTtIbKU5kl9keeGgv
         pdkAVUkA4Qr91TstHS9v2BR/5i5KVL+9D/LyzPJqMilpaHX1RMnQ/DYiivmmTrVRb0s7
         BvD5YNeLrZX9YNuxQ6t5hPeW8VP8du/bAejVO3KdO8I/vWKueddhpAEu61rNaelqecqb
         YLO3uhvI0KmrYLgVkSGDDtYKkgQRtM0uIObewQz2Xd9fqNl5FSL490P36rY9oiJ2aJAY
         Wkbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721727204; x=1722332004;
        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=R+zEoWWeWJvbrJUrkEFc8Z4N5GueeVB4Q31zrWykAPY=;
        b=kkVtCq3/5dX7uw6xglGlIoQ9BLtuKtqEpXSA5LRR2FyzUbm+4qIavmjlh65Sy2wG8/
         /TFkL/R6BHjKyesOsvlHZuD716PjzjvJUo99hTxcuzK8vy2IJACixKp9+08l5nPp0AyS
         3+AZ1iqGtc/iPcngqZ/PT2vA3RtSNBB1tMaEF5BvZ08A+m3h/ry28jPulHehoBDeUWMz
         01J36QV/tGOs3RqpE8n7yNTJcjFAxxrSvO1Q9Jk+W310Nk99i2wL0y6eHawfSIAcLDhh
         AXvsU9Psv7ZPzVpXOxySRIN5liad0bmhZnNSRbd0/1ndubYVRRayXNgbJ8nKV0xL1LEu
         S09Q==
X-Forwarded-Encrypted: i=1; AJvYcCWnz1cHh1iL4Ka3ZMKYqFWHsvLR6XMb3VZEAIi6v11cGkRgK1X6rtILlWhxcHmRBUEkOSgOfy6hVxkdhAvwZpOZcRaTcvDz38KVNSZb5LA=
X-Gm-Message-State: AOJu0YzyEW0ffJzvOMOyDz2DEReWTGESsdIf2UkfjS06lfc8hbdz9Ioo
	E0jygunNuH4vtq6laeJWFbTaAn/epAGEDQzIeeKHEGw3+jCVvoVt3+RTowkbR1w=
X-Google-Smtp-Source: AGHT+IGFy1qp2Pyl/L+9SOzj92owp98C73nk/p9nx6uOqCkYna3b6X03t6g83XoH7IEOqCMvhM7fSw==
X-Received: by 2002:a2e:9e01:0:b0:2ef:2d3a:e700 with SMTP id 38308e7fff4ca-2ef2d3ae865mr51998561fa.18.1721727203872;
        Tue, 23 Jul 2024 02:33:23 -0700 (PDT)
Message-ID: <8cbe6c8c-1401-4661-9319-e174ffce7461@suse.com>
Date: Tue, 23 Jul 2024 11:33:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/6] tools/libxs: Track whether we're using a socket or
 file
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-5-andrew.cooper3@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240718164842.3650702-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 18.07.24 18:48, Andrew Cooper wrote:
> It will determine whether to use writev() or sendmsg().
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Juergen Gross <jgross@suse.com>
> ---
>   tools/libs/store/xs.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
> index 96ea2b192924..f4edeb05f03b 100644
> --- a/tools/libs/store/xs.c
> +++ b/tools/libs/store/xs.c
> @@ -65,6 +65,9 @@ struct xs_stored_msg {
>   struct xs_handle {
>   	/* Communications channel to xenstore daemon. */
>   	int fd;
> +
> +	bool is_socket; /* is @fd a file or socket? */
> +
>   	Xentoolcore__Active_Handle tc_ah; /* for restrict */
>   
>   	/*
> @@ -305,6 +308,8 @@ static struct xs_handle *get_handle(const char *connect_to)
>   	if (h->fd == -1)
>   		goto err;
>   
> +	h->is_socket = S_ISSOCK(buf.st_mode);
> +
>   	XEN_TAILQ_INIT(&h->reply_list);
>   	XEN_TAILQ_INIT(&h->watch_list);
>   

I'd prefer to set h->is_socket above the current

     if (S_ISSOCK(buf.st_mode))

and then use h->is_socket in this if instead.

With that:

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 09:37:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 09:37:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762912.1173140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWBxE-0007jM-Sb; Tue, 23 Jul 2024 09:37:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762912.1173140; Tue, 23 Jul 2024 09: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 1sWBxE-0007jF-Q1; Tue, 23 Jul 2024 09:37:08 +0000
Received: by outflank-mailman (input) for mailman id 762912;
 Tue, 23 Jul 2024 09:37:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=BZ+O=OX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWBxD-0007j9-Nq
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 09:37:07 +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 1f7ab8d5-48d7-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 11:37:05 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-36865a516f1so3854066f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 02:37:05 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-36878684225sm11050026f8f.9.2024.07.23.02.37.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 02:37: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: 1f7ab8d5-48d7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721727425; x=1722332225; 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=yEUBnwtg76xzsUSRmmt1T0t9FKyyOKiaApV9Xp/3br8=;
        b=KOMvmKCPG5H8SmRIYl2gMyxy6QyeamXvrqGGBFZhX1hjou74nbs80tgaXNgUlJo5UN
         G7ldpBIk62vKVLRR0kpJdLiDjbRfpuWL9w5Eg8vq1h59Ap+L3ocAhRY6Wni7pnt9LHtQ
         DJ8yaw64MtaAaAPBPXW4UNsVRfhDSIcd1ZJYJcwHsBN5y4pCZ5Xl2MF97JsihqO2elsN
         /JP0y/R1kB3t2L3HbrO4wv/ahBV94kWYCwtatk986L6bYZkI9zP48c1kK86DiakfuH7Q
         XcemPaHh5dyxK0h15o+3Ft2YerkDx3fCquREYDC9Nq5Za+HWw6MDa7JgHI42AhVqwE1c
         YfnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721727425; x=1722332225;
        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=yEUBnwtg76xzsUSRmmt1T0t9FKyyOKiaApV9Xp/3br8=;
        b=u9zzszC5Evfl6H801bQiMYnPIRgeFo7sQ+KKt4NyPXgyp9yMuxlwvCEA0LDLsSmadT
         xqONhPtj8tp+6k+CWM8KEdFmx76AuBTLMqoYqOQEtbUYF7qPAkRyDKndBKAtrIlfqQK8
         SOm1XSqLhccMw3rKK+1JP2CgCDd11/we0dF1KlryiOB6dlEm5y+vZtHba1jgfVxBhu3W
         MXQ+eCNa1M3a/57xZDVgxYhuto7RlGaMvv7PuFRLyBidKPJ5rocTceRLe4R3PMlsiaFt
         w5f1i/bixguA4ke4qODqvMYYIujHc3PiPImB7caCDBbvsx9D4vS8WDoUiM/332Po3A0l
         3FLw==
X-Forwarded-Encrypted: i=1; AJvYcCVxWo0y08SAi4xOYP49pUKsos3cQSJBkHyA2C8nX/oA/xb2RX7kjKiI1gM4Cf4p82dQwdqEMlgw+QWX6njgyFc9B4SnW5Fq6fl76WPlc4g=
X-Gm-Message-State: AOJu0YwOiynPp1Nfry7Q1PNWYIbfQp57Qg9G6QNRuxKFC2pA40fNlYKO
	wzrcfxjgALSpQmOdAjUhpzhFoXZViB35SueAqGYRleDSdBHbmqFIWgZvcbsDGA8=
X-Google-Smtp-Source: AGHT+IFS9N5Mj2T7tqA8UL3WW4dhMxRrU2fscpC934Et8ZljMIqE4dkmePHCQhDeKq1HKribBG8LfQ==
X-Received: by 2002:adf:e745:0:b0:368:4b34:541 with SMTP id ffacd0b85a97d-369bae4ceebmr7532029f8f.16.1721727424983;
        Tue, 23 Jul 2024 02:37:04 -0700 (PDT)
Message-ID: <cabf929b-11bd-4401-88a2-7d4c8ae4b606@suse.com>
Date: Tue, 23 Jul 2024 11:37:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1.1 5/6] tools/libxs: Use writev()/sendmsg() instead of
 write()
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Frediano Ziglio <frediano.ziglio@cloud.com>
References: <20240718164842.3650702-6-andrew.cooper3@citrix.com>
 <20240722162547.4060813-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240722162547.4060813-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 22.07.24 18:25, Andrew Cooper wrote:
> With the input data now conveniently arranged, use writev()/sendmsg() instead
> of decomposing it into write() calls.
> 
> This causes all requests to be submitted with a single system call, rather
> than at least two.  While in principle short writes can occur, the chances of
> it happening are slim given that most xenbus comms are only a handful of
> bytes.
> 
> Nevertheless, provide {writev,sendmsg}_exact() wrappers which take care of
> resubmitting on EINTR or short write.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Juergen Gross <jgross@suse.com>
> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
> 
> v1.1:
>   * Fix iov overread, spotted by Frediano.  Factor the common updating logic
>     out into update_iov().
> ---
>   tools/libs/store/xs.c | 94 +++++++++++++++++++++++++++++++++++++++++--
>   1 file changed, 91 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
> index e820cccc2314..f80ac7558cbe 100644
> --- a/tools/libs/store/xs.c
> +++ b/tools/libs/store/xs.c
> @@ -563,6 +563,95 @@ static void *read_reply(
>   	return body;
>   }
>   
> +/*
> + * Update an iov/nr pair after an incomplete writev()/sendmsg().
> + *
> + * Awkwardly, nr has different widths and signs between writev() and
> + * sendmsg(), so we take it and return it by value, rather than by pointer.
> + */
> +static size_t update_iov(struct iovec **p_iov, size_t nr, size_t res)
> +{
> +	struct iovec *iov = *p_iov;
> +
> +        /* Skip fully complete elements, including empty elements. */
> +        while (nr && res >= iov->iov_len) {
> +                res -= iov->iov_len;
> +                nr--;
> +                iov++;
> +        }
> +
> +        /* Partial element, adjust base/len. */
> +        if (res) {
> +                iov->iov_len  -= res;
> +                iov->iov_base += res;
> +        }
> +
> +        *p_iov = iov;
> +
> +	return nr;
> +}
> +
> +/*
> + * Wrapper around sendmsg() to resubmit on EINTR or short write.  Returns
> + * @true if all data was transmitted, or @false with errno for an error.
> + * Note: May alter @iov in place on resubmit.
> + */
> +static bool sendmsg_exact(int fd, struct iovec *iov, unsigned int nr)
> +{
> +	struct msghdr hdr = {
> +		.msg_iov = iov,
> +		.msg_iovlen = nr,
> +	};
> +
> +	/* Sanity check first element isn't empty */
> +	assert(iov->iov_len == sizeof(struct xsd_sockmsg));

Can you please move this assert() into write_request(), avoiding to have
2 copies of it?

With that:

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 09:39:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 09:39:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762919.1173149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWBzj-0008Ii-7N; Tue, 23 Jul 2024 09:39:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762919.1173149; Tue, 23 Jul 2024 09:39: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 1sWBzj-0008Ib-4t; Tue, 23 Jul 2024 09:39:43 +0000
Received: by outflank-mailman (input) for mailman id 762919;
 Tue, 23 Jul 2024 09:39: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=KExd=OX=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sWBzi-0008IS-Ez
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 09:39:42 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c5f74b2-48d7-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 11:39:41 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2ef32fea28dso18636221fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 02:39: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: 7c5f74b2-48d7-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721727581; x=1722332381; 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=l6l7kRSoJUjHzdPQiYd/ht/e7MUtQ6tGdub3AxnaR+M=;
        b=foxeOTWxkKeJbnQZrNYRWY2N3Z+68id4FTeuS1Qpl4J5n+IpDdwez04cmEHq6n5TCH
         A47IEL8DPt9rOZ80m8UMEbwLJrtQJRjNxMU71t82SW5FlVJaSxfsrzDOnmPFRMYz1m8f
         8wCwKVS+/h/0dCVRDJ7HRcGD/mwxiah4Lihx4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721727581; x=1722332381;
        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=l6l7kRSoJUjHzdPQiYd/ht/e7MUtQ6tGdub3AxnaR+M=;
        b=MwWz15+6lyOi+lI3ugfvo0hlJsZwR0TxOp83T0eVpG+TNWMspQn88S2BK0p4fD2qzx
         KiPs8KySki+5DFQ/LYk9rqvlFbIbAd99dT+3mK8aMYR++wzW1PhYTuEH7jaO9HVUOa6/
         mrtp3TS1sNc4glgX6skeSDscta8s/lDg9J1jJU+fE4Hi+c2XPVc4maTWfYzVNrrC9j8p
         WGTl1e4rHzLBl//VmYwxfnCtNzkje/Ajwl5MazdEGxCSMaRFU6w+ojfz0UFi5LvX2BfX
         tQFfjxZG2y0FZvbCjQ4b4uOZKjPA4BOE8S89fzEksvDvEu7DWjaC43d4DDsnufWEbbk+
         9GUg==
X-Forwarded-Encrypted: i=1; AJvYcCU/2TfoRKRwZjulLu4/LkI3GQD1QHOyuWrItLdmFNgfd0b38JgO8V3AFSfk7zuYFRtLQfSHJmUDNo6KaMaaONFUrsOoquPhEaIzhwsJcKs=
X-Gm-Message-State: AOJu0YzfYb8jLRjPoZerSIChoMAli2Or/W1j+03eFGgHpGw7SUDkkDqC
	0vvon0n4H3cO9Lscfj8p0y87qgCk82gF4e4NqB9+H3nkRf2Q8D6ZscNXm7hz+fhRly3alEp7OER
	kmpmH/L3f7d71/td1usxFCVyLVHNZ2Gt7gyDaYQ==
X-Google-Smtp-Source: AGHT+IFzfTp5JokiVx1N/dJq9A9GuJy+wJZONP4I4D14D35rUj8m9tG74zjcHMEt5LKzNGSgGe7BhC3do3bmn2b+tQY=
X-Received: by 2002:a2e:7a0c:0:b0:2ef:281f:ba60 with SMTP id
 38308e7fff4ca-2f01ea5e484mr16420281fa.20.1721727580562; Tue, 23 Jul 2024
 02:39:40 -0700 (PDT)
MIME-Version: 1.0
References: <20240712130749.1272741-1-fouad.hilly@cloud.com>
 <20240712130749.1272741-4-fouad.hilly@cloud.com> <c4157096-cfc6-4455-a5f4-c2af94591284@suse.com>
In-Reply-To: <c4157096-cfc6-4455-a5f4-c2af94591284@suse.com>
From: Fouad Hilly <fouad.hilly@cloud.com>
Date: Tue, 23 Jul 2024 10:39:29 +0100
Message-ID: <CAJKAvHb-jtoB3APfS940FcgzUm9JhNR=Gg-QMLxS-YOaQyeL_w@mail.gmail.com>
Subject: Re: [PATCH v5 3/4] x86/ucode: Introduce --force option to xen-ucode
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Jul 12, 2024 at 2:27=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 12.07.2024 15:07, Fouad Hilly wrote:
> > @@ -79,6 +81,8 @@ static void usage(FILE *stream, const char *name)
> >              "options:\n"
> >              "  -h, --help            display this help\n"
> >              "  -s, --show-cpu-info   show CPU information\n"
> > +            "  -f, --force           skip certain checks; do not use u=
nless you"
> > +            "know exactly what you are doing\n"
>
> Would this output line perhaps better be wrapped explicitly, to avoid
> odd wrapping effects on terminals not wider than 80 chars? In any event
> there's a blank missing at the present source wrapping point.
Sure, I will wrap it in v6
>
> Jan

Thanks,

Fouad


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 09:41:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 09:41:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762924.1173160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWC1R-0001Hd-II; Tue, 23 Jul 2024 09:41:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762924.1173160; Tue, 23 Jul 2024 09:41:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWC1R-0001HW-Fb; Tue, 23 Jul 2024 09:41:29 +0000
Received: by outflank-mailman (input) for mailman id 762924;
 Tue, 23 Jul 2024 09:41:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KExd=OX=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sWC1Q-0001HL-54
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 09:41:28 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id babacb0f-48d7-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 11:41:26 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52f04c1e58eso2481646e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 02:41: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: babacb0f-48d7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721727685; x=1722332485; 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=l+RbUz1cp79D2w+mv3L+vLpiMe4iXJ189CcLC3FayTo=;
        b=XqQKW4/QOpQ+rp8YD4wJyssAJyrBQqz9NaXIzYh3zRn/KHFN+M1U37/P28Fv8FK3Uh
         GV7doHGipZexE7vW5R4bM61SFzxjWgwEE29ulfPhusXk9Bcv1x7ijyJW1AmcPc/q92Oz
         RGVXluJbhQhclYhV2D5d+tmbFPDz4Ldg7jTNw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721727685; x=1722332485;
        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=l+RbUz1cp79D2w+mv3L+vLpiMe4iXJ189CcLC3FayTo=;
        b=pOVpbI6xQrUfB+8aZUcgPeP1gtASiESuNELmNb/PD4LsQ5hy293IFFUOKJ0pNhG1yY
         erdDecPgrj0eVBTqJI5ohJ8BPN7dXDkEPiM7Kutogc9AKYsjq1A28Mi1TOjwg0FiLftd
         J/nboK4MJp+Bxi64jxIVENT4+BnFaIE/MsN7ckYhBkIEOR49SC2CroZAbKtsHptwOB0I
         arE5AAZpXsSnetWmrLW0sJJ/iPSlf1XW6lnu1LERmOoQl1zxqA2gZo0UG1jQ5H9UmhqM
         Dco4I2vNRCQ5KC4/rjoarqz8HMso2mX+Dl2Jj+tCzHjPIX9K9lFboB1XvYcTtivJVyar
         d9PA==
X-Forwarded-Encrypted: i=1; AJvYcCVkYFV8MoMk9DSLP4tZo9p25x6GgZeVfkaK0lum5TgJ0GL9TzfLYvDmt2177cBztry2oHmKXdqjXnu4WIhAEBqt4nyhi/JldsDsEsqkhQ4=
X-Gm-Message-State: AOJu0Yz7K8LZmulQDxTTm951fXR92e6W4AqJlgwNnbYZjgGZA5aQLjby
	wQsJc7WwPGYy0g8HKnHpZYutU5IRv3QCb3pI73d4ZRGUtEtakxo4rHHnd/bPKIoaR1wA9ONAFjP
	nNK+3ATZLPmCeCsm2pTM/JUgQjCx44YLYlQqZ6ebmw9CxiMmv
X-Google-Smtp-Source: AGHT+IHCJhHyzPNXedsV1aqX52+AwA8rmGefTweOo0tLacrHyGRgUK1c2PqX5b0CflfXjRgQGmIV14QVoFitcuGCwiQ=
X-Received: by 2002:a05:6512:3ba6:b0:52e:9f1b:517 with SMTP id
 2adb3069b0e04-52efb63ea6fmr8471514e87.25.1721727685160; Tue, 23 Jul 2024
 02:41:25 -0700 (PDT)
MIME-Version: 1.0
References: <20240712130749.1272741-1-fouad.hilly@cloud.com>
 <20240712130749.1272741-3-fouad.hilly@cloud.com> <35f9319b-801c-45e9-91c1-46ca61d49e5a@suse.com>
In-Reply-To: <35f9319b-801c-45e9-91c1-46ca61d49e5a@suse.com>
From: Fouad Hilly <fouad.hilly@cloud.com>
Date: Tue, 23 Jul 2024 10:41:14 +0100
Message-ID: <CAJKAvHYPmYmg1XWdLQBd4ZnU=L+Kip7ypnFyLppuwH-prA3PqA@mail.gmail.com>
Subject: Re: [PATCH v5 2/4] x86/ucode: refactor xen-ucode to utilize getopt
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Jul 16, 2024 at 3:51=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 12.07.2024 15:07, Fouad Hilly wrote:
> > --- a/tools/misc/xen-ucode.c
> > +++ b/tools/misc/xen-ucode.c
> > @@ -11,6 +11,7 @@
> >  #include <sys/stat.h>
> >  #include <fcntl.h>
> >  #include <xenctrl.h>
> > +#include <getopt.h>
> >
> >  static xc_interface *xch;
> >
> > @@ -71,12 +72,29 @@ static void show_curr_cpu(FILE *f)
> >      }
> >  }
> >
> > +static void usage(FILE *stream, const char *name)
> > +{
> > +    fprintf(stream,
> > +            "%s: Xen microcode updating tool\n"
> > +            "options:\n"
> > +            "  -h, --help            display this help\n"
> > +            "  -s, --show-cpu-info   show CPU information\n"
> > +            "Usage: %s [microcode file] [options]\n", name, name);
>
> Isn't it more like [microcode file | options] at this point? Even when
> --force support is added, neither of the two options here go together
> with a microcode file.

Yes, I will fix it in v6
>
> > @@ -86,22 +104,34 @@ int main(int argc, char *argv[])
> >          exit(1);
> >      }
> >
> > -    if ( argc < 2 )
> > +    while ( (opt =3D getopt_long(argc, argv, "hs", options, NULL)) !=
=3D -1 )
> >      {
> > -        fprintf(stderr,
> > -                "xen-ucode: Xen microcode updating tool\n"
> > -                "Usage: %s [<microcode file> | show-cpu-info]\n", argv=
[0]);
> > -        show_curr_cpu(stderr);
> > -        exit(2);
> > +        switch (opt)
>
> Nit (style): Missing blanks inside the parentheses.
Will be fixed in v6
>
> Jan

Thanks,

Fouad


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 09:53:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 09:53:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762935.1173170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWCCh-0003at-Jk; Tue, 23 Jul 2024 09:53:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762935.1173170; Tue, 23 Jul 2024 09: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 1sWCCh-0003am-Fv; Tue, 23 Jul 2024 09:53:07 +0000
Received: by outflank-mailman (input) for mailman id 762935;
 Tue, 23 Jul 2024 09:53: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=KExd=OX=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sWCCg-0003ac-C3
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 09:53:06 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5aaa7ddb-48d9-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 11:53:03 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-52e9a550e9fso4340879e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 02: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: 5aaa7ddb-48d9-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721728384; x=1722333184; 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=uBH9IVomAXq4MaU7zMo2A8cztCq5v4exMss+XEA2YjU=;
        b=YUnrOIhFk8NtYV1XQc/L2Lire/gLnN/ngMpLWfCYwZP/obY55zHhlVLPF9qVja2CMM
         SrRzhq1TrWDVTsMtjjitDhm1JId+lEovcEQN79WVLSBAo8y9GMCCYrAxccFmvYO9Q8eP
         IEvm6sWt8GJH5TvsCCSw8dizyLG7a3NPb09S4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721728384; x=1722333184;
        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=uBH9IVomAXq4MaU7zMo2A8cztCq5v4exMss+XEA2YjU=;
        b=UNLzpekZ3sRk/hsuHDkvI0a3AI3ldpoj7cTvyXglcVuY8/7XtmhpiqF5R5Fx5xuaA7
         CP++j3j/3tmk3f3oer/tBtggXUKJfor0vY+2lFiAot63HdI9kyM5egfmEPZHqyfpf1cu
         c5V4f6jOeRHI/+iJSkG1rMD/roj241vIJNzxGDQ2rUf7MnBN/fLHMLP7LCULmYJ0aYlt
         m9C9ZWRUbC9tznAxFT404bnE0dQJG9fcxSc1iN41FJUKIWZPXnvnp+IhgJiFLUgiTY4X
         8XFCRPxX9fJzUqnbmiVH0fxn7rbFZj2oehZbtBIpGJvb+OGJdL5Z/w1pcpVuAF+Qu9KP
         fWrQ==
X-Forwarded-Encrypted: i=1; AJvYcCXfeva/f6yrb3iFolNkFWKbWGXljLRtTxoK6fV/dpaGq+pHwJ0sawIklTV9zWISwZM/W9VsY6xCioM+MWhScDjL+C9kSZjGtWOYdv/FPAE=
X-Gm-Message-State: AOJu0YwWCR5QyA4tODF6POikTIYe38d1upXbWxccRHF7NZZaOPGWU1e0
	xuJvj7hPa1JDwJFwEY0sj5vcF5op/sulFT0MNZuTXFRazs3d++YYs5Ggdc3lWGPf3Butn45CgUy
	/MuNrWawZ/2BG7wTJr/7FuyzaNJ7DM+wDDbDMGg==
X-Google-Smtp-Source: AGHT+IHtUmH3yfkt+4+6Eg91qfNwjzXLO0DlSD3A/DXCXTTeVS2TQQF9FXBzJONT8IwUdv0DenOXXvZkQCcuL8ZXL94=
X-Received: by 2002:a05:6512:3053:b0:52f:79f8:a445 with SMTP id
 2adb3069b0e04-52fc66effddmr462734e87.8.1721728383273; Tue, 23 Jul 2024
 02:53:03 -0700 (PDT)
MIME-Version: 1.0
References: <20240712130749.1272741-1-fouad.hilly@cloud.com>
 <20240712130749.1272741-5-fouad.hilly@cloud.com> <313d214c-3a96-45ad-9f53-8e4f54510e50@suse.com>
In-Reply-To: <313d214c-3a96-45ad-9f53-8e4f54510e50@suse.com>
From: Fouad Hilly <fouad.hilly@cloud.com>
Date: Tue, 23 Jul 2024 10:52:52 +0100
Message-ID: <CAJKAvHbDAfC2JUHJLW9QuzgWpuHOhLy3cy3_-jH9-zmYSoeUbw@mail.gmail.com>
Subject: Re: [PATCH v5 4/4] x86/ucode: Utilize ucode_force and remove opt_ucode_allow_same
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000af694d061de72053"

--000000000000af694d061de72053
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Jul 16, 2024 at 3:59=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 12.07.2024 15:07, Fouad Hilly wrote:
> > --- a/xen/arch/x86/cpu/microcode/core.c
> > +++ b/xen/arch/x86/cpu/microcode/core.c
> > @@ -90,6 +90,16 @@ struct ucode_mod_blob {
> >      size_t size;
> >  };
> >
> > +struct microcode_patch_with_flags {
> > +    unsigned int flags;
> > +    struct microcode_patch *patch;
> > +};
> > +
> > +struct microcode_nmi_patch_with_flags {
> > +    unsigned int flags;
> > +    const struct microcode_patch *patch;
> > +};
>
> Why two different structures? I have to admit that I can't spot where the
> difference (const or not) would matter?
I will remove the struct with const and update:
static int control_thread_fn(*const struct microcode_patch *patch*,
                             unsigned int flags)
>
> Also for an internal struct I don't think you need the microcode_
prefixes.
I will remove microcode_prefixes.
>
> > @@ -284,21 +286,22 @@ static enum microcode_match_result cf_check
compare_patch(
> >      return compare_revisions(old->rev, new->rev);
> >  }
> >
> > -static int cf_check apply_microcode(const struct microcode_patch
*patch)
> > +static int cf_check apply_microcode(const struct microcode_patch
*patch,
> > +                                    unsigned int flags)
> >  {
> >      uint64_t msr_content;
> >      unsigned int cpu =3D smp_processor_id();
> >      struct cpu_signature *sig =3D &this_cpu(cpu_sig);
> >      uint32_t rev, old_rev =3D sig->rev;
> >      enum microcode_match_result result;
> > +    bool ucode_force =3D flags =3D=3D XENPF_UCODE_FORCE;
>
> Why =3D=3D ? The term "flags" usually stands for there being multiple boo=
lean
> indicators in a single value. That would demand use of & here.
Will be fixed in v6
>
> Jan

Thanks,

Fouad

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

<div dir=3D"ltr"><br><br>On Tue, Jul 16, 2024 at 3:59=E2=80=AFPM Jan Beulic=
h &lt;<a href=3D"mailto:jbeulich@suse.com">jbeulich@suse.com</a>&gt; wrote:=
<br>&gt;<br>&gt; On 12.07.2024 15:07, Fouad Hilly wrote:<br>&gt; &gt; --- a=
/xen/arch/x86/cpu/microcode/core.c<br>&gt; &gt; +++ b/xen/arch/x86/cpu/micr=
ocode/core.c<br>&gt; &gt; @@ -90,6 +90,16 @@ struct ucode_mod_blob {<br>&gt=
; &gt; =C2=A0 =C2=A0 =C2=A0size_t size;<br>&gt; &gt; =C2=A0};<br>&gt; &gt;<=
br>&gt; &gt; +struct microcode_patch_with_flags {<br>&gt; &gt; + =C2=A0 =C2=
=A0unsigned int flags;<br>&gt; &gt; + =C2=A0 =C2=A0struct microcode_patch *=
patch;<br>&gt; &gt; +};<br>&gt; &gt; +<br>&gt; &gt; +struct microcode_nmi_p=
atch_with_flags {<br>&gt; &gt; + =C2=A0 =C2=A0unsigned int flags;<br>&gt; &=
gt; + =C2=A0 =C2=A0const struct microcode_patch *patch;<br>&gt; &gt; +};<br=
>&gt;<br>&gt; Why two different structures? I have to admit that I can&#39;=
t spot where the<br>&gt; difference (const or not) would matter?<br>I will =
remove the struct with const and update:<br>static int control_thread_fn(<u=
>const struct microcode_patch *patch</u>,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0unsigned int flags)<br>&gt;<br>&gt; Also for an internal struct I don&#3=
9;t think you need the microcode_ prefixes.<div>I will remove microcode_pre=
fixes.<br>&gt;<br>&gt; &gt; @@ -284,21 +286,22 @@ static enum microcode_mat=
ch_result cf_check compare_patch(<br>&gt; &gt; =C2=A0 =C2=A0 =C2=A0return c=
ompare_revisions(old-&gt;rev, new-&gt;rev);<br>&gt; &gt; =C2=A0}<br>&gt; &g=
t;<br>&gt; &gt; -static int cf_check apply_microcode(const struct microcode=
_patch *patch)<br>&gt; &gt; +static int cf_check apply_microcode(const stru=
ct microcode_patch *patch,<br>&gt; &gt; + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0unsigned int flags)<br>&gt; &gt; =C2=A0{<br>&gt; &gt; =
=C2=A0 =C2=A0 =C2=A0uint64_t msr_content;<br>&gt; &gt; =C2=A0 =C2=A0 =C2=A0=
unsigned int cpu =3D smp_processor_id();<br>&gt; &gt; =C2=A0 =C2=A0 =C2=A0s=
truct cpu_signature *sig =3D &amp;this_cpu(cpu_sig);<br>&gt; &gt; =C2=A0 =
=C2=A0 =C2=A0uint32_t rev, old_rev =3D sig-&gt;rev;<br>&gt; &gt; =C2=A0 =C2=
=A0 =C2=A0enum microcode_match_result result;<br>&gt; &gt; + =C2=A0 =C2=A0b=
ool ucode_force =3D flags =3D=3D XENPF_UCODE_FORCE;<br>&gt;<br>&gt; Why =3D=
=3D ? The term &quot;flags&quot; usually stands for there being multiple bo=
olean<br>&gt; indicators in a single value. That would demand use of &amp; =
here.</div><div>Will be fixed in v6<br>&gt;<br>&gt; Jan</div><div><br></div=
><div>Thanks,</div><div><br></div><div>Fouad</div></div>

--000000000000af694d061de72053--


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 09:56:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 09:56:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762943.1173180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWCGB-0004bQ-1q; Tue, 23 Jul 2024 09:56:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762943.1173180; Tue, 23 Jul 2024 09: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 1sWCGA-0004bJ-Um; Tue, 23 Jul 2024 09:56:42 +0000
Received: by outflank-mailman (input) for mailman id 762943;
 Tue, 23 Jul 2024 09: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=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWCG9-0004Zz-9m
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 09:56:41 +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 dad8c71b-48d9-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 11:56:39 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5a88be88a3aso1948692a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 02:56:39 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5a30aaa31e0sm7255758a12.27.2024.07.23.02.56.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 02: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: dad8c71b-48d9-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721728599; x=1722333399; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=EPjq/0Ae7menY2n7fzEAajEy8OOwH/UzGbAMjQ7op6A=;
        b=fklYcF+FWaeBjjRIP0G4gexznvjUH297V+sFzxXtcJ2pncy6Vo3YK97+km5F0FuwmZ
         JlmIx+dTGNDPyD2K5j461aoUUNIxh/SYKdigEQpJiIAKtMmNQnxdV8a6xoD7GQy1sZ1J
         SVXStkkRbD+FtyTEPWndgiPPUNQEmUSQ7pvWToPzQ+7ieV3SakydXLNQSHW4JjiTmODh
         yg/5ME4kNcHhDvXOYxWkLHvXAii6YaJNr2Xu5hA6eR8MSBNzphnhTqXu7VusqXZ0wPMy
         Reg4EHGOCnN3qBoMHMUvp67Qz01+DDx/sNZrnodjBE2qsy2XZunBBv0Y6vRS2ZtNKoll
         3i9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721728599; x=1722333399;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=EPjq/0Ae7menY2n7fzEAajEy8OOwH/UzGbAMjQ7op6A=;
        b=S4gMR13jy+xGGP4MEPJ7Rw4eYkLBGfAI4rRqRiO8nznZBuChsdAZD8rtEFGJXOuBHo
         GqWjhnHpGLnBzn+nIM9sK/HvrJIFDx9MUmhIY2EOu7W9BUYjKNAO5+JlJu862SWp7bjm
         dF2qNZrazVEpR7vnfp5KE6PqPDQJ9JlhcWJ2gW44Qki/0kspq2UbaKoo846+YPhjhU+E
         tnRUVcB3l9QzWFdFKWr+2+JBFY3HWQNiIQnbSETOCfwXPEcvfAJVd2mtVmwg9i9j3Pa4
         FIwpJFMTAzDmcRsRF80APd4joYYTcL6SJM1+GBIBZnlCCu0NkjAce6YxrR/Lo5F6Nj3C
         jRnw==
X-Forwarded-Encrypted: i=1; AJvYcCWmhLDtLzTEnVZ7FvNpcUDO/FM1JDDoYo2Y705/QwuaSLjZeN+HDI/OHIk7G/kIZfJSAUkJxhicCACSKY4WhkR4PYrAziFqrycmkaBT1e0=
X-Gm-Message-State: AOJu0YyVUJqIYQGtuUtCItb0NZOCgRNdX+oDsNNvCnoRhcyAllunkF3y
	a+zl4y21nL1RZq9XXKp2rVPR6OhkYFoTzsARPFIfGiSemnsa7+A0
X-Google-Smtp-Source: AGHT+IG8J47QLKlCu7MsaXfk1C2J2p6R2mlNreCOcJ3cZicgGVa9iZSik8UE7UfNCln/fXMyo180xg==
X-Received: by 2002:a05:6402:2682:b0:5a3:d140:1a46 with SMTP id 4fb4d7f45d1cf-5a479b6e59emr6905021a12.23.1721728598540;
        Tue, 23 Jul 2024 02:56:38 -0700 (PDT)
Message-ID: <d5b315641064cb66efaafe972f2a08ee9f2a0a58.camel@gmail.com>
Subject: Re: [PATCH for-4.19] x86/altcall: fix clang code-gen when using
 altcall in loop constructs
From: oleksii.kurochko@gmail.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>
Date: Tue, 23 Jul 2024 11:56:37 +0200
In-Reply-To: <20240723093117.99487-1-roger.pau@citrix.com>
References: <20240723093117.99487-1-roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

T24gVHVlLCAyMDI0LTA3LTIzIGF0IDExOjMxICswMjAwLCBSb2dlciBQYXUgTW9ubmUgd3JvdGU6
Cj4gWWV0IGFub3RoZXIgY2xhbmcgY29kZSBnZW5lcmF0aW9uIGlzc3VlIHdoZW4gdXNpbmcgYWx0
Y2FsbHMuCj4gCj4gVGhlIGlzc3VlIHRoaXMgdGltZSBpcyB3aXRoIHVzaW5nIGxvb3AgY29uc3Ry
dWN0cyBhcm91bmQKPiBhbHRlcm5hdGl2ZV97LHZ9Y2FsbAo+IGluc3RhbmNlcyB1c2luZyBwYXJh
bWV0ZXIgdHlwZXMgc21hbGxlciB0aGFuIHRoZSByZWdpc3RlciBzaXplLgo+IAo+IEdpdmVuIHRo
ZSBmb2xsb3dpbmcgZXhhbXBsZSBjb2RlOgo+IAo+IHN0YXRpYyB2b2lkIGJhcihib29sIGIpCj4g
ewo+IMKgwqDCoCB1bnNpZ25lZCBpbnQgaTsKPiAKPiDCoMKgwqAgZm9yICggaSA9IDA7IGkgPCAx
MDsgaSsrICkKPiDCoMKgwqAgewo+IMKgwqDCoMKgwqDCoMKgIGludCByZXRfOwo+IMKgwqDCoMKg
wqDCoMKgIHJlZ2lzdGVyIHVuaW9uIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJvb2wgZTsK
PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgcjsKPiDCoMKgwqDCoMKgwqDC
oCB9IGRpIGFzbSgicmRpIikgPSB7IC5lID0gYiB9Owo+IMKgwqDCoMKgwqDCoMKgIHJlZ2lzdGVy
IHVuc2lnbmVkIGxvbmcgc2kgYXNtKCJyc2kiKTsKPiDCoMKgwqDCoMKgwqDCoCByZWdpc3RlciB1
bnNpZ25lZCBsb25nIGR4IGFzbSgicmR4Iik7Cj4gwqDCoMKgwqDCoMKgwqAgcmVnaXN0ZXIgdW5z
aWduZWQgbG9uZyBjeCBhc20oInJjeCIpOwo+IMKgwqDCoMKgwqDCoMKgIHJlZ2lzdGVyIHVuc2ln
bmVkIGxvbmcgcjggYXNtKCJyOCIpOwo+IMKgwqDCoMKgwqDCoMKgIHJlZ2lzdGVyIHVuc2lnbmVk
IGxvbmcgcjkgYXNtKCJyOSIpOwo+IMKgwqDCoMKgwqDCoMKgIHJlZ2lzdGVyIHVuc2lnbmVkIGxv
bmcgcjEwIGFzbSgicjEwIik7Cj4gwqDCoMKgwqDCoMKgwqAgcmVnaXN0ZXIgdW5zaWduZWQgbG9u
ZyByMTEgYXNtKCJyMTEiKTsKPiAKPiDCoMKgwqDCoMKgwqDCoCBhc20gdm9sYXRpbGUgKCAiY2Fs
bCAlY1thZGRyXSIKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCA6ICIrciIgKGRpKSwgIj1yIiAoc2kpLCAiPXIiIChkeCksCj4gwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICI9ciIgKGN4KSwgIj1yIiAocjgpLCAiPXIi
IChyOSksCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
ICI9ciIgKHIxMCksICI9ciIgKHIxMSksICI9YSIgKHJldF8pCj4gwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOiBbYWRkcl0gImkiICgmKGZ1bmMpKSwgImciIChm
dW5jKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDogIm1l
bW9yeSIgKTsKPiDCoMKgwqAgfQo+IH0KPiAKPiBTZWU6IGh0dHBzOi8vZ29kYm9sdC5vcmcvei9x
dnhNR2Q4NHEKPiAKPiBDbGFuZyB3aWxsIGdlbmVyYXRlIG1hY2hpbmUgY29kZSB0aGF0IG9ubHkg
cmVzZXRzIHRoZSBsb3cgOCBiaXRzIG9mCj4gJXJkaQo+IGJldHdlZW4gbG9vcCBjYWxscywgbGVh
dmluZyB0aGUgcmVzdCBvZiB0aGUgcmVnaXN0ZXIgcG9zc2libHkKPiBjb250YWluaW5nCj4gZ2Fy
YmFnZSBmcm9tIHRoZSB1c2Ugb2YgJXJkaSBpbnNpZGUgdGhlIGNhbGxlZCBmdW5jdGlvbi7CoCBO
b3RlIGFsc28KPiB0aGF0IGNsYW5nCj4gZG9lc24ndCB0cnVuY2F0ZSB0aGUgaW5wdXQgcGFyYW1l
dGVycyBhdCB0aGUgY2FsbGVlLCB0aHVzIGJyZWFraW5nCj4gdGhlIHBzQUJJLgo+IAo+IEZpeCB0
aGlzIGJ5IHR1cm5pbmcgdGhlIGBlYCBlbGVtZW50IGluIHRoZSBhbm9ueW1vdXMgdW5pb24gaW50
byBhbgo+IGFycmF5IHRoYXQKPiBjb25zdW1lcyB0aGUgc2FtZSBzcGFjZSBhcyBhbiB1bnNpZ25l
ZCBsb25nLCBhcyB0aGlzIGZvcmNlcyBjbGFuZyB0bwo+IHJlc2V0IHRoZQo+IHdob2xlICVyZGkg
cmVnaXN0ZXIgaW5zdGVhZCBvZiBqdXN0IHRoZSBsb3cgOCBiaXRzLgo+IAo+IEZpeGVzOiAyY2U1
NjJiMmE0MTMgKCd4ODYvYWx0Y2FsbDogdXNlIGEgdW5pb24gYXMgcmVnaXN0ZXIgdHlwZSBmb3IK
PiBmdW5jdGlvbiBwYXJhbWV0ZXJzIG9uIGNsYW5nJykKPiBTdWdnZXN0ZWQtYnk6IEphbiBCZXVs
aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOp
IDxyb2dlci5wYXVAY2l0cml4LmNvbT4KPiAtLS0KPiBBZGRpbmcgT2xla3NpaSBhcyB0byB3aGV0
aGVyIHRoaXMgY291bGQgYmUgY29uc2lkZXJlZCBmb3IgNC4xOTogaXQncwo+IHN0cmljdGx5Cj4g
bGltaXRlZCB0byBjbGFuZyBidWlsZHMsIHBsdXMgd2lsbCBuZWVkIHRvIGJlIGJhY2twb3J0ZWQg
YW55d2F5Lgo+IC0tLQpJIGFtIG9rYXkgdG8gaGF2ZSB0aGlzIGNoYW5nZSBpbiA0LjE5IGJ1dCB0
aGVuIGl0IHNob3VsZCBiZSByZXZpZXdlZAphbmQgbWVyZ2VkIEFTQVAgYXMgdGhlIHRyZWUgd2Fz
IHRhZ2dlZCBmZXcgbWludXRlcyBhZ28gYW5kIEkgZXhwZWN0ZWQKdGhhdCBpdCB3aWxsIGJlIHRo
ZSBsYXN0IG9uZSBSQyBpbiB0aGlzIHJlbGVhc2UgY3ljbGU6CgpSZWxlYXNlLUFja2VkLUJ5OiBP
bGVrc2lpIEt1cm9jaGtvIDxvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbT4KCn4gT2xla3NpaQoK
PiDCoHhlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2ZS5oIHwgNCArKy0tCj4gwqAx
IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg
LS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUuaAo+IGIveGVuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgKPiBpbmRleCAwZDM2OTdmMWRlNDkuLmU2
M2I0NTkyNzY0MyAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWx0ZXJu
YXRpdmUuaAo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2ZS5oCj4g
QEAgLTE4NSwxMCArMTg1LDEwIEBAIGV4dGVybiB2b2lkIGFsdGVybmF0aXZlX2JyYW5jaGVzKHZv
aWQpOwo+IMKgICovCj4gwqAjZGVmaW5lIEFMVF9DQUxMX0FSRyhhcmcsCj4gbinCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gwqDCoMKgwqAgcmVnaXN0ZXIgdW5pb24KPiB7wqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiAtwqDCoMKgwqDCoMKg
wqAgdHlwZW9mKGFyZykKPiBlO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIFwKPiArwqDCoMKgwqDCoMKgwqAgdHlwZW9mKGFyZykgZVtzaXplb2YobG9uZykgLwo+IHNp
emVvZihhcmcpXTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+
IMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZwo+IHI7wqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCBcCj4gwqDCoMKgwqAgfSBhICMjIG4gIyMgXyBhc20gKCBBTFRfQ0FM
TF9hcmcgIyMgbiApID0KPiB7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIFwKPiAtwqDCoMKgwqDCoMKgwqAgLmUgPSAoeyBCVUlMRF9CVUdfT04oc2l6ZW9m
KGFyZykgPiBzaXplb2Yodm9pZCAqKSk7IChhcmcpOwo+IH0pwqDCoCBcCj4gK8KgwqDCoMKgwqDC
oMKgIC5lWzBdID0gKHsgQlVJTERfQlVHX09OKHNpemVvZihhcmcpID4gc2l6ZW9mKHZvaWQgKikp
Owo+IChhcmcpOyB9KVwKPiDCoMKgwqDCoCB9Cj4gwqAjZWxzZQo+IMKgI2RlZmluZSBBTFRfQ0FM
TF9BUkcoYXJnLCBuKSBcCgo=



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 10:02:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 10:02:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762951.1173190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWCLX-0006QX-P5; Tue, 23 Jul 2024 10:02:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762951.1173190; Tue, 23 Jul 2024 10: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 1sWCLX-0006QQ-LX; Tue, 23 Jul 2024 10:02:15 +0000
Received: by outflank-mailman (input) for mailman id 762951;
 Tue, 23 Jul 2024 10: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=Rd17=OX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWCLX-0006QK-6E
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 10:02:15 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a110f227-48da-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 12:02:11 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2eeb1ba0481so78664221fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 03:02: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
 98e67ed59e1d1-2ccf7b2adafsm8699877a91.2.2024.07.23.03.02.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 03: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: a110f227-48da-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721728931; x=1722333731; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xsfroiK4oeor59++qycD2qtfKDNLdKaFvizIzX+T1ek=;
        b=eIIFEqW13zHtBPWCjU2sb9Yd2bF7oNewmEKvnzslXCNVeiiMAxdfsDu/P2lk5kQaie
         5XlSMt58FfmoaIqfF0/CjXVNcxXIluUn0OTFc3u21yTGgMBz0sbgPwGyFUPpW/l1zHD2
         +L6pA/cHQiwSuw1YbSZknZpty433ZyVrHupavgoi1XYr3vljYtVwfjLqyCypHYH52rM5
         8KCdgX+fEPy58DLJcQspl4XcEXxPlzPhft9UYYBJI/2ASAbcaqy9H246OQ1k38d4FY6H
         AEGPAFNvl5LTj0urKE6lynDvQGsKcCeG3jLVJj7OqbA08VJkDrANdMio0vlDuRs4UGd+
         KhDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721728931; x=1722333731;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xsfroiK4oeor59++qycD2qtfKDNLdKaFvizIzX+T1ek=;
        b=KhnFFn4H7alqPnXbRV9KjgD2/UVm9yPdC7+VxB37cHod8YGsM79b1AyIqIrtedPQr2
         64oTYh2DODxAH/d6Kr/9TSFAStkNqzarDYSY19gdJ9g8vBD+7o8/4HddNvs76D/ys9Hb
         7afROfDxqBMPVj0SCLjwJfsi7cl8IfLJnqenjI/YSQL948szkjUMbuzgaO5zn9boSuYT
         m3FS76YdsLOcgtTR1qxuPlEadm/LJa0OyTyY7XVP0t7AQxjB6vGjj8cWIL7hUz1IbivF
         XAdLClXXaxWh/0v6ajJE1DBFX8QMIpACDUp++kwwtqlRjgcDicVGr+KTH4ncsgfkUs1O
         lbgw==
X-Forwarded-Encrypted: i=1; AJvYcCV+wUnHte5fk+bY3swLgtskKtrRS5sDrWxV6nA3VcvYCeb/+mS+j8vvolZeGiJsTxGAHxNX61Kxzc5nlJZaPkGLmEyeCXykTe33sXQqFR4=
X-Gm-Message-State: AOJu0YyS2rrqJj/nPloA3yUzwoRNSzsc2y2Hhe/wJdih5ma7K4D3pPbC
	oMymGoG9CbFtklONSdfc9+vyJ5AV0if0XmT1HU52V45DgksSYAhn5+ZB913Ckg==
X-Google-Smtp-Source: AGHT+IEvKLs0dtZqmHulYvk+K+j9IpwyGar0Ge1ZmoYhNKRFBMtFwmdVOTUUJvgSrHY1dFRPDCfyhA==
X-Received: by 2002:a2e:95c2:0:b0:2ef:564c:a590 with SMTP id 38308e7fff4ca-2ef564ca663mr29682951fa.29.1721728931295;
        Tue, 23 Jul 2024 03:02:11 -0700 (PDT)
Message-ID: <14ffb00d-d6ba-4c18-88c1-2601a2df8a8b@suse.com>
Date: Tue, 23 Jul 2024 12:02:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
To: oleksii.kurochko@gmail.com
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Julien Grall <julien@xen.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
 <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
 <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
 <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
 <26ae01e2-d085-48d7-8b1f-da1e44b01e53@xen.org>
 <CAMacjJwWLjGcFbYEhCPyNEW_+sfb51+XtKqyBcc2JGm=D5bf0w@mail.gmail.com>
 <97c82aca-0b8a-4b78-980b-0857dbdae80a@suse.com>
 <4c9eb7a79c33c7cd2f6bde05b1fbc7770e662026.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4c9eb7a79c33c7cd2f6bde05b1fbc7770e662026.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.07.2024 10:55, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-07-23 at 10:36 +0200, Jan Beulich wrote:
>> On 23.07.2024 10:02, Oleksii Kurochko wrote:
>>> On Mon, Jul 22, 2024 at 7:27 PM Julien Grall <julien@xen.org>
>>> wrote:
>>>>>> On 22/07/2024 15:44, Oleksii Kurochko wrote:
>>>>>     /* Map a 4k page in a fixmap entry */
>>>>>     void set_fixmap(unsigned map, mfn_t mfn, unsigned int
>>>>> flags)
>>>>>     {
>>>>>         pte_t pte;
>>>>>
>>>>>         pte = mfn_to_xen_entry(mfn, flags);
>>>>>         pte.pte |= PTE_LEAF_DEFAULT;
>>>>>         write_pte(&xen_fixmap[pt_index(0, FIXMAP_ADDR(map))],
>>>>> pte);
>>>>
>>>> It would be saner to check if you are not overwriting any
>>>> existing
>>>> mapping as otherwise you will probably need a TLB flush.
>>>>
>>>>>     }
>>>>>
>>>>>     /* Remove a mapping from a fixmap entry */
>>>>>     void clear_fixmap(unsigned map)
>>>>>     {
>>>>>         pte_t pte = {0};
>>>>>         write_pte(&xen_fixmap[pt_index(0, FIXMAP_ADDR(map))],
>>>>> pte);
>>>>
>>>> Don't you need a TLB flush?
>>>>
>>> Inside write_pte() there is "sfence.vma".
>>
>> That's just a fence though, not a TLB flush.
> From the privileged doc:
>    ```
>    SFENCE.VMA is also used to invalidate entries in the
>    address-translation cache associated with a hart (see Section 4.3.2). 
>    ...
>    The SFENCE.VMA is used to flush any local hardware caches related to
>    address translation.
>    It is specified as a fence rather than a TLB flush to provide cleaner
>    semantics with respect to
>    which instructions are affected by the flush operation and to support a
>    wider variety of dynamic
>    caching structures and memory-management schemes. SFENCE.VMA is also
>    used by higher
>    privilege levels to synchronize page table writes and the address
>    translation hardware.
>    ...
>    ```
> I read this as SFENCE.VMA is used not only for ordering of load/stores,
> but also to flush TLB ( which is a type of more general term as
> address-translation cache, IIUIC ).

Oh, I see. Kind of unexpected for an instruction of that name. Yet note
how they talk about the local hart only. You need a wider scope TLB
flush here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 10:07:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 10:07:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762961.1173199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWCQb-0007lH-Ao; Tue, 23 Jul 2024 10:07:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762961.1173199; Tue, 23 Jul 2024 10: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 1sWCQb-0007lA-88; Tue, 23 Jul 2024 10:07:29 +0000
Received: by outflank-mailman (input) for mailman id 762961;
 Tue, 23 Jul 2024 10:07:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Rd17=OX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWCQa-0007l4-9p
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 10:07:28 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d4281be-48db-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 12:07:27 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2ef2d7d8854so23032881fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 03:07: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
 98e67ed59e1d1-2ccf8092da9sm8699754a91.37.2024.07.23.03.07.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 03:07: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: 5d4281be-48db-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721729247; x=1722334047; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=p74SxLq2dEWp9ZGQVN+Lvnkp8KTTjzqhjk9NmTUGt58=;
        b=C8s00kctkgfFVmxqkyVpxpcsxuRD5ajz6r8mEj/ykZPC4pBG+rUOE5SxVu56fjaQrM
         VWYnjMc85BLGX95R/5JqDN5KdcE108HSK/s4f46/qWGa1gFbq4ze1cg+edsvlcU56GNb
         zgJdXpcC6JVMx2yF6AUvrahFd9s4yeKq75HSe2QDMM4cY2LiieWz6Z+au/H1CdVOjwe1
         l1wDiRodzMgJ/KZWUUUlaCbqpErqcyagInEXoniVjHvRIg6NG0GVKn+n7xaWq9Nv1mq4
         AqIiYAR82c9BKQebYQPTOKwVmKSlMQVmp3yHlr9xvuafSj9HuDs/aST5znRsVqjZkaGM
         RhxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721729247; x=1722334047;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=p74SxLq2dEWp9ZGQVN+Lvnkp8KTTjzqhjk9NmTUGt58=;
        b=pDN/TNik3Bfdju7AQNkO2jZstUlF7rRWKcMNHFEjOhmP4nwHniDGGbb85u0nkyhajr
         rWQKU+jtwwLob/7iyCsiI9778LiSnPdocDqtJWquyEY4rg1bxDkp8icZMFekiVb1n0up
         oPeV5+cdnds04joSYOUp8zxi576flT/3gcLxXoClX/g/FwelDyg0PaYog3PlIPLNiHtC
         O6bhlim8lOn61I/Rgc0uRY6OJC3CfJaFShea2lubaZ2bSRfJpwBxYXPiHAoTwrRIyhRt
         OeaIdes64z+kS5sYLLAeiAhQKqAZjl5HVWKQHVifuDAuzFoXUWcRC5/x7G/ogZheg3HS
         Qs+A==
X-Forwarded-Encrypted: i=1; AJvYcCW+DCXgcl3NkfRQJpN92dLcTKb7fcCM/DAXzpceWSNBshX5OxS+TrkbPqq3eoPk+xgvT6N2MJkvWtYtgpQmVCXxPyGc7u0M0QitRNuFCEU=
X-Gm-Message-State: AOJu0Yyb7iRjKtbfOzXCMLn5bMSF2Mpjtpro6P+kvTuILf4aBUeM6uZM
	wxrvFGjhBW80+cIV7buvciT3TI7lfh4dRenAfX6WkSTqS2DHZdXlUQOm/0vLDw==
X-Google-Smtp-Source: AGHT+IGkYBM9ECwR7LcsuBf+IyL8oYna1/B2se7nS8kr7HptRu1RGHFB5g+m4KRfwdvK20lONG/fBw==
X-Received: by 2002:a2e:240f:0:b0:2ef:a504:65b8 with SMTP id 38308e7fff4ca-2f01ea56ec0mr13847481fa.13.1721729246579;
        Tue, 23 Jul 2024 03:07:26 -0700 (PDT)
Message-ID: <04b96cce-d2a0-4948-9db7-ee2073248472@suse.com>
Date: Tue, 23 Jul 2024 12:07:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] x86/altcall: fix clang code-gen when using
 altcall in loop constructs
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <20240723093117.99487-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: <20240723093117.99487-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.07.2024 11:31, Roger Pau Monne wrote:
> Yet another clang code generation issue when using altcalls.
> 
> The issue this time is with using loop constructs around alternative_{,v}call
> instances using parameter types smaller than the register size.
> 
> Given the following example code:
> 
> static void bar(bool b)
> {
>     unsigned int i;
> 
>     for ( i = 0; i < 10; i++ )
>     {
>         int ret_;
>         register union {
>             bool e;
>             unsigned long r;
>         } di asm("rdi") = { .e = b };
>         register unsigned long si asm("rsi");
>         register unsigned long dx asm("rdx");
>         register unsigned long cx asm("rcx");
>         register unsigned long r8 asm("r8");
>         register unsigned long r9 asm("r9");
>         register unsigned long r10 asm("r10");
>         register unsigned long r11 asm("r11");
> 
>         asm volatile ( "call %c[addr]"
>                        : "+r" (di), "=r" (si), "=r" (dx),
>                          "=r" (cx), "=r" (r8), "=r" (r9),
>                          "=r" (r10), "=r" (r11), "=a" (ret_)
>                        : [addr] "i" (&(func)), "g" (func)
>                        : "memory" );
>     }
> }
> 
> See: https://godbolt.org/z/qvxMGd84q
> 
> Clang will generate machine code that only resets the low 8 bits of %rdi
> between loop calls, leaving the rest of the register possibly containing
> garbage from the use of %rdi inside the called function.  Note also that clang
> doesn't truncate the input parameters at the callee, thus breaking the psABI.
> 
> Fix this by turning the `e` element in the anonymous union into an array that
> consumes the same space as an unsigned long, as this forces clang to reset the
> whole %rdi register instead of just the low 8 bits.
> 
> Fixes: 2ce562b2a413 ('x86/altcall: use a union as register type for function parameters on clang')
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Jul 23 10:24:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 10:24:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762969.1173210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWCgk-0002PQ-N4; Tue, 23 Jul 2024 10:24:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762969.1173210; Tue, 23 Jul 2024 10:24: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 1sWCgk-0002PJ-KE; Tue, 23 Jul 2024 10:24:10 +0000
Received: by outflank-mailman (input) for mailman id 762969;
 Tue, 23 Jul 2024 10:24:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xgPy=OX=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sWCgj-0002PD-5n
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 10:24:09 +0000
Received: from fout7-smtp.messagingengine.com (fout7-smtp.messagingengine.com
 [103.168.172.150]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af59c1e9-48dd-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 12:24:06 +0200 (CEST)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
 by mailfout.nyi.internal (Postfix) with ESMTP id 59C4B1380521;
 Tue, 23 Jul 2024 06:24:03 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute3.internal (MEProxy); Tue, 23 Jul 2024 06:24:03 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 23 Jul 2024 06:24: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: af59c1e9-48dd-11ef-bbfe-fd08da9f4363
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=1721730243;
	 x=1721816643; bh=Uzk9y7b0LvyRMNuN0uE2uPhPtiBU94dfsnk4x657QoU=; b=
	NoKW/bpMGvjtEoe4J5VeEi1sBEyzkLoSyHzHOcIllBwIVlB45hVMozWR7YdUr6a/
	fDuBNMEYK2Ki6Z7kh6dV3ho8FC+ntj+bJqYRkdHt4KY5tFpBDGaSRTsIty/kqrQc
	q/FuyCVnxfnOBEsBoTWvIOZJdDZefYCXDoiRB37FHIhdYhVnGYeOjoZkBXuyZms1
	7rzn7A66vj2s9eEPpjlPVp4cbAa2I2a+aeSi8sNiI5KI0UezH75ah9Hwr2A6Xz4z
	yw1wAyz9BTpBKD7tPtlOsWJaRMZOHBPjMzUTe1cMY/39neV5EajiR+0Osfq+mEzK
	i3Zv/mFqWnF1Od/bs6Wrtg==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1721730243; x=1721816643; bh=Uzk9y7b0LvyRMNuN0uE2uPhPtiBU
	94dfsnk4x657QoU=; b=dUFz/SYkGt2Y8u1bKKq8n90mQoGDbVjWM8p6dOb23t8w
	pBYIpdGC2a2ql96EIFWmj0Ha5Z0e6BicZvv5p/FCg9YdyLZk89AgUhopU2PZ+g1P
	FCy+nN0CO+TsPYW2RFFdjKtmGPn6VOJlgfWJAoSApqwTRF1HRGTcQdDmzLWA5haQ
	r6o16NoaAh9mwnrdSSjvPNHJPWe7aoQ43W7idYmTsYbeNBoFXQkzUkLKU7snIL2O
	6DHNrrH4QPJTcPA0yUZAEkXSOut4o/lkdBuqpuIW1M7FUdFVqS2Hnlhm2kPKUfrV
	PCK/wMxBMG7oYB/lXYFHdWBizLKuF8QBfQrtxQhwLQ==
X-ME-Sender: <xms:w4SfZrNvTPxH7adKRsAHx-T1XcUgn4UJLSHHPnWOCXKgi35DsFBgCA>
    <xme:w4SfZl994JNC8Y_9BrtZG6pk7TY1mb0Wcm997tllzjl_5mcJef52b58ubcRfjdU2l
    ccHEge_unbVtw>
X-ME-Received: <xmr:w4SfZqQTLZRpWoZOBkw6hp9jyaNiJfNbmhqjArQy6HsA7-dJK75OZgM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheelgddvjecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudel
    teefvefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedt
X-ME-Proxy: <xmx:w4SfZvsg6i4nVq7CXvsJ7n-1_qAW5ZcbIBba3cVTXO_Z8YQ1qEeDEA>
    <xmx:w4SfZjdR-aA7tNoxqwEiP3ttQ-RmLna7tQo7o9RVeuJ_47lHOJbMzg>
    <xmx:w4SfZr2auZo7kbPPiLVtZrBulWpCShtaRafI90DFGZac0zF8vOIzHA>
    <xmx:w4SfZv9B5qBpwCddVS7hLCvKthaDWqA2QF1HY2i2sliIstCameG4EQ>
    <xmx:w4SfZrQn0RBGqutikHQoAUk-nB5yCtgBHeQrAboxfv7BfhTIfSFM302W>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 23 Jul 2024 12:23:58 +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>,
	Jan Beulich <JBeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Gene Bright <gene@cyberlight.us>
Subject: Re: [PATCH 1/2] x86/efi: Simplify efi_arch_cpu() a little
Message-ID: <Zp-Ev__kc3xQRgf_@mail-itl>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-2-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="lEMPaGzDlhaGp2++"
Content-Disposition: inline
In-Reply-To: <20240722101838.3946983-2-andrew.cooper3@citrix.com>


--lEMPaGzDlhaGp2++
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 23 Jul 2024 12:23:58 +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>,
	Jan Beulich <JBeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Gene Bright <gene@cyberlight.us>
Subject: Re: [PATCH 1/2] x86/efi: Simplify efi_arch_cpu() a little

On Mon, Jul 22, 2024 at 11:18:37AM +0100, Andrew Cooper wrote:
> Make the "no extended leaves" case fatal and remove one level of indentat=
ion.
> Defer the max-leaf aquisition until it is first used.
>=20
> No functional change.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> CC: Gene Bright <gene@cyberlight.us>
> ---
>  xen/arch/x86/efi/efi-boot.h | 31 ++++++++++++++++---------------
>  1 file changed, 16 insertions(+), 15 deletions(-)
>=20
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index f282358435f1..4e4be7174751 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -738,29 +738,30 @@ static void __init efi_arch_handle_module(const str=
uct file *file,
> =20
>  static void __init efi_arch_cpu(void)
>  {
> -    uint32_t eax =3D cpuid_eax(0x80000000U);
> +    uint32_t eax;
>      uint32_t *caps =3D boot_cpu_data.x86_capability;
> =20
>      boot_tsc_stamp =3D rdtsc();
> =20
>      caps[FEATURESET_1c] =3D cpuid_ecx(1);
> =20
> -    if ( (eax >> 16) =3D=3D 0x8000 && eax > 0x80000000U )
> -    {
> -        caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
> +    eax =3D cpuid_eax(0x80000000U);
> +    if ( (eax >> 16) !=3D 0x8000 || eax < 0x80000000U )
> +        blexit(L"In 64bit mode, but no extended CPUID leaves?!?");
> =20
> -        /*
> -         * This check purposefully doesn't use cpu_has_nx because
> -         * cpu_has_nx bypasses the boot_cpu_data read if Xen was compiled
> -         * with CONFIG_REQUIRE_NX
> -         */
> -        if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
> -             !boot_cpu_has(X86_FEATURE_NX) )
> -            blexit(L"This build of Xen requires NX support");
> +    caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
> =20
> -        if ( cpu_has_nx )
> -            trampoline_efer |=3D EFER_NXE;
> -    }
> +    /*
> +     * This check purposefully doesn't use cpu_has_nx because
> +     * cpu_has_nx bypasses the boot_cpu_data read if Xen was compiled
> +     * with CONFIG_REQUIRE_NX
> +     */
> +    if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
> +         !boot_cpu_has(X86_FEATURE_NX) )
> +        blexit(L"This build of Xen requires NX support");
> +
> +    if ( cpu_has_nx )
> +        trampoline_efer |=3D EFER_NXE;
>  }
> =20
>  static void __init efi_arch_blexit(void)
> --=20
> 2.39.2
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmafhL8ACgkQ24/THMrX
1yzlfAf8Cu7uEXig3naKT5T2Elyf+v4qaJWz0DjN08jj6vPi6UC36vyy+AKw9ulU
cw+l+RCQfex48HsXl28K94hFvBdcV9NuowoFcw/hU1juO2Ykzj6s5/zQrq/4zNbW
0C0em+NYlaYfM6N66TAOmZwmqk7zzcREzIFa4qQNsZwp89LWUV9lvWQK8BAt/W/7
BZ5fHM8tTgisiYSz0aHK7mrnp6UY8oBmQ6yLZOXsVK6bBtZTtJNd1YZMZJlS4aSS
jLNm1H++0vADKjH3uVMv4OoyHNDcmsM5GN5s+iskMHH5Xq+sCEjQxNKDSlfQ2lI8
Kcn7RGVh6X1MNDy8SpQFi2OIHdR3HQ==
=lqXV
-----END PGP SIGNATURE-----

--lEMPaGzDlhaGp2++--


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 10:25:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 10:25:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762976.1173220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWCiD-0002wF-1M; Tue, 23 Jul 2024 10:25:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762976.1173220; Tue, 23 Jul 2024 10:25:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWCiC-0002w8-U2; Tue, 23 Jul 2024 10:25:40 +0000
Received: by outflank-mailman (input) for mailman id 762976;
 Tue, 23 Jul 2024 10:25: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=xgPy=OX=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sWCiB-0002w0-T2
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 10:25:39 +0000
Received: from fhigh3-smtp.messagingengine.com
 (fhigh3-smtp.messagingengine.com [103.168.172.154])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e5fee055-48dd-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 12:25:36 +0200 (CEST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id BC5BA1140385;
 Tue, 23 Jul 2024 06:25:35 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute5.internal (MEProxy); Tue, 23 Jul 2024 06:25:35 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 23 Jul 2024 06: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: e5fee055-48dd-11ef-8776-851b0ebba9a2
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=1721730335;
	 x=1721816735; bh=zheC1pZkx9sV41YEanAv7qxpudB7/a1qiTqEHxKYF5A=; b=
	kRgzV2iopbnbNnHn2haMHZkJkyoh8WgGGqvssTfw1gzeIhN+2Y8AfeYvaNNw7FNx
	n+1jSjVwYNRD5vPsaVs8Sz+lMw3b5LfLPwu/vfCVk2PBpwOANDMXCe5OZSObwgQi
	UUSf6vNq4oVhUCuiFYxFW0R5jJ+GT2yqi5L4J/FZ2UtXWjTStrR2aHMeDQlzsE0h
	OWqYGkAdSATQRNb20A4xtaBHcpzJG+uph6O5nmdoQLfVIXQwBTBCE0kpenBLsCUm
	XxsxvfhF3fTc5V7NeL5GxAn1R4tnfwrPVP03J7xAyQbyd9+058Ww12HmjtTKNItC
	/vaL+HTOevzRgZY9TEpXyA==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1721730335; x=1721816735; bh=zheC1pZkx9sV41YEanAv7qxpudB7
	/a1qiTqEHxKYF5A=; b=tLhOuMS/C4zUbUxXTnXA7I/RUwD7687QEqTYHo9qFkxt
	DjJjGEZufI9dJxMiw8qx3weScjZgdhOezGGkHixL/vqAmENpxmF/1YDxngwLILGv
	MgA3NZj6d1CmfR/e21fJjUxQVIUCZoUYeVcaxzTByBbDPxqH3qZiYJBaa96tV6gV
	eHtrZFlgbwbSR5YDOKZ70ckH1BjpMKLtTF/RcAb74kdt1XoDogAfUWoQmlGOdrO2
	8/vKHcJX64mzeoCuuqENJYdqBKWyBNXXO5LFk97hoNC7FBfwHgaZfsFEIWGmEVBF
	HjJ3QbsOR03XbVgdxQ+95o6JNflhqMWrgpjIWcfBDA==
X-ME-Sender: <xms:H4WfZqAssIEo6-O2bDeDe2KczA7CNwI9L1DbVAk33UfLtlA7diwwhQ>
    <xme:H4WfZkjckKvQvNJjF6iiVbG316jOOSLzYINArCsZP5nrbrrObaZnwWAjcAri7KZRp
    Df2_0BhAo0OBg>
X-ME-Received: <xmr:H4WfZtnSVqycp-LVt7iFavYaQaDz0DpRESydth9vosCEYRQZMKvysQg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheelgddvkecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeelgfeg
    ieehueefudeuvdejudeiiefgteekleefleejudehieeujeeujeeftedtteenucffohhmrg
    hinhepgigtphdqnhhgrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghm
    pehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslh
    grsgdrtghomhdpnhgspghrtghpthhtoheptd
X-ME-Proxy: <xmx:H4WfZowoVjWvvebU_MBrwLeGHO-bwj2Mt3l_vHviZTaaNAspopWQCA>
    <xmx:H4WfZvTPcCMRxyu_sEMghm_O8IJ_No3wvjRUKWnXByPuNIMSf-di8g>
    <xmx:H4WfZjZftD9ZmXf3n6rtkVDBPoptuFhN855fj6AliUc921yfRpPokQ>
    <xmx:H4WfZoSfvDm4jg5ewgOdBsXCHI6XleTY4mXme3-zIgm05-H0bJiHaw>
    <xmx:H4WfZuH5ATIK5D2sM03BmA1C8UtRkSZy8d3oLw1WhkEKUw96WDZlC-m3>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 23 Jul 2024 12:25:32 +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>,
	Gene Bright <gene@cyberlight.us>, Jan Beulich <JBeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: Re: [PATCH 2/2] x86/efi: Unlock NX if necessary
Message-ID: <Zp-FHHYmCj_Tu7DQ@mail-itl>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-3-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="isI6fIfkQWRgqnWW"
Content-Disposition: inline
In-Reply-To: <20240722101838.3946983-3-andrew.cooper3@citrix.com>


--isI6fIfkQWRgqnWW
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 23 Jul 2024 12:25:32 +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>,
	Gene Bright <gene@cyberlight.us>, Jan Beulich <JBeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: Re: [PATCH 2/2] x86/efi: Unlock NX if necessary

On Mon, Jul 22, 2024 at 11:18:38AM +0100, Andrew Cooper wrote:
> EFI systems can run with NX disabled, as has been discovered on a Broadwe=
ll
> Supermicro X10SRM-TF system.
>=20
> Prior to commit fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the early =
boot
> path"), the logic to unlock NX was common to all boot paths, but that com=
mit
> moved it out of the native-EFI booth path.
>=20
> Have the EFI path attempt to unlock NX, rather than just blindly refusing=
 to
> boot when CONFIG_REQUIRE_NX is active.
>=20
> Fixes: fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the early boot path=
")
> Link: https://xcp-ng.org/forum/post/80520
> Reported-by: Gene Bright <gene@cyberlight.us>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> CC: Gene Bright <gene@cyberlight.us>
>=20
> Note.  Entirely speculative coding, based only on the forum report.
> ---
>  xen/arch/x86/efi/efi-boot.h | 33 ++++++++++++++++++++++++++++++---
>  1 file changed, 30 insertions(+), 3 deletions(-)
>=20
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index 4e4be7174751..158350aa14e4 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -736,13 +736,33 @@ static void __init efi_arch_handle_module(const str=
uct file *file,
>      efi_bs->FreePool(ptr);
>  }
> =20
> +static bool __init intel_unlock_nx(void)
> +{
> +    uint64_t val, disable;
> +
> +    rdmsrl(MSR_IA32_MISC_ENABLE, val);
> +
> +    disable =3D val & MSR_IA32_MISC_ENABLE_XD_DISABLE;
> +
> +    if ( !disable )
> +        return false;
> +
> +    wrmsrl(MSR_IA32_MISC_ENABLE, val & ~disable);
> +    trampoline_misc_enable_off |=3D disable;
> +
> +    return true;
> +}
> +
>  static void __init efi_arch_cpu(void)
>  {
> -    uint32_t eax;
> +    uint32_t eax, ebx, ecx, edx;
>      uint32_t *caps =3D boot_cpu_data.x86_capability;
> =20
>      boot_tsc_stamp =3D rdtsc();
> =20
> +    cpuid(0, &eax, &ebx, &ecx, &edx);
> +    boot_cpu_data.x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, edx);
> +
>      caps[FEATURESET_1c] =3D cpuid_ecx(1);
> =20
>      eax =3D cpuid_eax(0x80000000U);
> @@ -752,10 +772,17 @@ static void __init efi_arch_cpu(void)
>      caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
> =20
>      /*
> -     * This check purposefully doesn't use cpu_has_nx because
> +     * These checks purposefully doesn't use cpu_has_nx because
>       * cpu_has_nx bypasses the boot_cpu_data read if Xen was compiled
> -     * with CONFIG_REQUIRE_NX
> +     * with CONFIG_REQUIRE_NX.
> +     *
> +     * If NX isn't available, it might be hidden.  Try to reactivate it.
>       */
> +    if ( !boot_cpu_has(X86_FEATURE_NX) &&
> +         boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_INTEL &&
> +         intel_unlock_nx() )
> +        caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
> +
>      if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
>           !boot_cpu_has(X86_FEATURE_NX) )
>          blexit(L"This build of Xen requires NX support");
> --=20
> 2.39.2
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmafhRwACgkQ24/THMrX
1yw/TAf/e15qTdV2TiOCaJVnuqKdb6EzW/lNuMSsj6bBSab3j53R01gkfxe6BBH5
3F+KctUJoYX3j76TZXv9j25ivjAqdsjPI0JcXJP9JLTj3btdSeoq0YtcsfBm1aVH
qbtOVTiVBSxde4kNQ0Ry08N3AXLpnPakRwgLGp/xLBf67zzI0Rt1cDW2F49mQpdN
7+IvMVMI2RuUuf5h3TNp/gmnkcaiUZZvrEyubVCE6J2AByuFKw4TOkBpr7zIk6jm
F8PdZwPr/gteOQYYFF6y9HBspg7gxRSSrcggqjjPKWBBGZOWon5pvtZQgDRPZAmy
aLoM+Nr+wfyw2/gHbRPNhYxUuI+97w==
=uDac
-----END PGP SIGNATURE-----

--isI6fIfkQWRgqnWW--


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 10:31:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 10:31:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762987.1173229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWCnm-0005AN-O0; Tue, 23 Jul 2024 10:31:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762987.1173229; Tue, 23 Jul 2024 10: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 1sWCnm-0005AG-LQ; Tue, 23 Jul 2024 10:31:26 +0000
Received: by outflank-mailman (input) for mailman id 762987;
 Tue, 23 Jul 2024 10:31: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=xgPy=OX=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sWCnl-0005A4-PO
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 10:31:25 +0000
Received: from fout7-smtp.messagingengine.com (fout7-smtp.messagingengine.com
 [103.168.172.150]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b3ed034a-48de-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 12:31:23 +0200 (CEST)
Received: from compute8.internal (compute8.nyi.internal [10.202.2.227])
 by mailfout.nyi.internal (Postfix) with ESMTP id 8CD8F1380682;
 Tue, 23 Jul 2024 06:31:20 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute8.internal (MEProxy); Tue, 23 Jul 2024 06:31:20 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 23 Jul 2024 06:31:17 -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: b3ed034a-48de-11ef-8776-851b0ebba9a2
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=1721730680;
	 x=1721817080; bh=F6dceGM1PsJvT3r/NvLgNCBbnfj32fBLf4rPr4Xvvls=; b=
	BF9+WumJs7YJHF2Od2YbFw6Q+CalWgGYS81quuGdxcqjnoNsZESACPobJkNHWO61
	jQByok5BnO0DLXcE+nKKETC42sL2SBPKSEf4QdP3Gi3JHg/GH+gbTuf7YOIyIGCK
	s+dpKNO0RMlySZlcnWdP8UaWDoioD11C8GdRKjd73lBoYXG7l5yvNhzaMLD2nz4m
	uvhotX/PJzt4uDmZBEGuo/BBLaK3ip+5rmmDwV1uXoiJekIaxtTaqygU1YrUSQiM
	PY7K+fPX+UPFL1Et2OD7k6kOvYSocCs31gnbNZ/5KyZM5ac+485+T2MqXBV/HzKO
	i65NCiBV4DqUcqIjBuAIFA==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1721730680; x=1721817080; bh=F6dceGM1PsJvT3r/NvLgNCBbnfj3
	2fBLf4rPr4Xvvls=; b=X20WAonSoIOyF7ACJLzFg2mCGWS+hITaP5gLD/Rf+Y0B
	Lmu5Wsxtjz6Dtx/jr1RWDOScfSaroRialDGqTdJQ6pVtkP0ACDpQFXJ15GMcr/AI
	Z6uLfoHUymTz2tfI1T4TZG/MiJuLpn9cw+nnIw5gH6K4zhHRWe9eyrV4cWZtbXAy
	v/pkX0woU+owbRdMlbKeMeoNNqhgdn0KFw3wwmk3b07c75TY2kwbV6JJBSr5q99O
	Rx4a0B2/12RNzpFZkF6+2rpOfW5ojFAsU6UAo2nEt7LoeefBqJj/NiSyEAh3Nbsd
	Cku/ZzvDAK8c4N/GRzkGDIhK4xtBnyMLuSryUs42Gw==
X-ME-Sender: <xms:eIafZuInv_VJ1tTIhPr_Yk6YPGsUKmQduih_1ryqspvJHs8d-oSdRg>
    <xme:eIafZmIjh2gopq7jkvXXWQ2PkcoxaHMkeFi1hRZNvOph4_blOlc2BM4LlyIuZ_nf3
    SFxyl88bcWcYQ>
X-ME-Received: <xmr:eIafZut0DH30kfbxv02qyHUT6RzZgJp_7nQqlD7hodVyZgos8RPoo3I>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheelgddvlecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeelgfeg
    ieehueefudeuvdejudeiiefgteekleefleejudehieeujeeujeeftedtteenucffohhmrg
    hinhepgigtphdqnhhgrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghm
    pehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslh
    grsgdrtghomhdpnhgspghrtghpthhtoheptd
X-ME-Proxy: <xmx:eIafZjZW4EbHiLyHbWF6ltcP8boaxu8B60V2AoUjg9AdEX0L8oSvLA>
    <xmx:eIafZlb9BEVjQ4elAJPHfe2yAs9gFTOURM7d20QKVuvdb6OH4WRkuA>
    <xmx:eIafZvC96X4dZOiWTYe3g8Wpvs0d3OnCSBsk-4GWYo31EX4qdNp9qA>
    <xmx:eIafZrYQCbacLCs0BNnC1iaIUDFDe9pBEzsA_7y-aBsib1yf3yiuow>
    <xmx:eIafZqNJrmFRIN257GLiX-yTQqny8-rDTsKbqdpZGxUzO0WB--w0vpH0>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 23 Jul 2024 12:31:15 +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>,
	Gene Bright <gene@cyberlight.us>, Jan Beulich <JBeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: Re: [PATCH 2/2] x86/efi: Unlock NX if necessary
Message-ID: <Zp-Gc6oCppUymzqm@mail-itl>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-3-andrew.cooper3@citrix.com>
 <Zp-FHHYmCj_Tu7DQ@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="VjUgvXfScnEwL0nk"
Content-Disposition: inline
In-Reply-To: <Zp-FHHYmCj_Tu7DQ@mail-itl>


--VjUgvXfScnEwL0nk
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 23 Jul 2024 12:31:15 +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>,
	Gene Bright <gene@cyberlight.us>, Jan Beulich <JBeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: Re: [PATCH 2/2] x86/efi: Unlock NX if necessary

On Tue, Jul 23, 2024 at 12:25:32PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Mon, Jul 22, 2024 at 11:18:38AM +0100, Andrew Cooper wrote:
> > EFI systems can run with NX disabled, as has been discovered on a Broad=
well
> > Supermicro X10SRM-TF system.
> >=20
> > Prior to commit fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the earl=
y boot
> > path"), the logic to unlock NX was common to all boot paths, but that c=
ommit
> > moved it out of the native-EFI booth path.
> >=20
> > Have the EFI path attempt to unlock NX, rather than just blindly refusi=
ng to
> > boot when CONFIG_REQUIRE_NX is active.
> >=20
> > Fixes: fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the early boot pa=
th")
> > Link: https://xcp-ng.org/forum/post/80520
> > Reported-by: Gene Bright <gene@cyberlight.us>
> > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>=20
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Ugh, wrong copy paste:
Acked-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

I should finish my coffee first...

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmafhnMACgkQ24/THMrX
1yyiNgf+PhGaKe+BN4NF229jPDkAj3zL29PdiCOnDRAwGg13osNqsC46x7HIWbmA
yapM4cUlXlVdWx6tCcyBqw0brm58X8Hqtn2evsJneJkFdbS7EMdt+pvxI6YMdw/x
X/V4ds6kWfHHBaLqKk77+i41dejeI4zrLt4CqhYCto33sqrA6u4WjGebTKKVnKQQ
YM3SEIrZSlTflUMRM/vzwF49K2MPskvUIP4AZyUU/+dA5mPFfJXJrRIeV5VvQEFY
jjGvD0TxAiZC3b4RBQrO4bl5/ZvIAriX8vzrAXgFfv+4JtV2E9xhGAH7BMKmpeL5
8LCO18/GdDHPoa6a+SqavNGNdYLcPQ==
=hf/8
-----END PGP SIGNATURE-----

--VjUgvXfScnEwL0nk--


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 10:44:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 10:44:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.762994.1173240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWCzp-0007Ql-QC; Tue, 23 Jul 2024 10:43:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 762994.1173240; Tue, 23 Jul 2024 10: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 1sWCzp-0007Qe-NB; Tue, 23 Jul 2024 10:43:53 +0000
Received: by outflank-mailman (input) for mailman id 762994;
 Tue, 23 Jul 2024 10:43: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=Rd17=OX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWCzo-0007QY-Ik
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 10:43:52 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7341f0d0-48e0-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 12:43:51 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2eeb1ba040aso77004351fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 03:43: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
 98e67ed59e1d1-2ccf80a8870sm8681843a91.50.2024.07.23.03.43.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 03:43: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: 7341f0d0-48e0-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721731431; x=1722336231; 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=g5RPxZe2RFyLqMXQQMiFiZ6CLJzA8c72EtMOO1ub+Fc=;
        b=IXwxhkOesLmrhmP5Tt+lS8zVZ+e/quf69ZgKbHlJoE0S7GfauTNaaQ/VqDjEsBReR6
         3eXosXNuJOOz3zo614ifFSXfVpBjEAAT/ToowBlL1/vMF01rKVf/Tcb0f5wbv2UO8nA1
         GOL+mbgsVczUVGC8uhEuWUZlJ2g6fVozCLWUJ3ChRn9lTOms0R+wpb4+ak7vCAINEDKK
         6meMTeBrJDG4LS58Inic4NhhBr8YFXnrXOWBUoBbEaQIwgoAIdNEmKTd6uHk5bpTwN+x
         eVRjk+6rEdqhsL2T1aRB1odK9GWcZ8jLdk6eiZSF1LRfoO3MTx6mQ07aDWjdLGKirFiq
         knUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721731431; x=1722336231;
        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=g5RPxZe2RFyLqMXQQMiFiZ6CLJzA8c72EtMOO1ub+Fc=;
        b=J0IxrOwTln+ckyHv6wlMFimJI7yqse0Ly1f/tZFmD5YtUASz70o8PI+tLBObVJaQY6
         ZcAUDCOI9p2bHLEUVpl1eky54XLjli/IRWsxUkD5uqJy12BpyX3v7B6ccsF80ddA/vXI
         Wc29fTBy6Gu12YfsOw9WwOso5i6NsHCemE+jHTyenFHke9EUxcWOlGqrLwyBq2YaNgnH
         H6UWecxXyygpGyRdZCSb/kBPTXfbn9vQWwweVry/xVqO1CdVhYP86d6lN4uKQO4hguCT
         KyRE2Q0hXuiC0BQWxqY0Z7EmNW9CanzIxqQdLZO3JRKAXR4mx5eR6qxanDsYxdruc/X8
         3Zvw==
X-Gm-Message-State: AOJu0YzXvbxYqRQUXrrviiZ2ypRoKE/xlhWl/C5Zz5CX0hBJ0gu6NKgJ
	BgbKG5dqYdD5c41XPkPAv0kc7PPsiY7z0waEHbnaSDi953KCAbGTDZD7snUAQCFMuEdqDWX01tg
	=
X-Google-Smtp-Source: AGHT+IHUIJdbIBvfG0h3u5Aphg78JHfvr5Htf0Qg/3gV3fIVOOig8wfD3DWxgNr5y08MFeJXaRC3gA==
X-Received: by 2002:a2e:930e:0:b0:2ef:22ef:a24e with SMTP id 38308e7fff4ca-2f01ea4b411mr18090301fa.10.1721731431006;
        Tue, 23 Jul 2024 03:43:51 -0700 (PDT)
Message-ID: <ae0b4331-638e-4193-9536-6bfccc777e27@suse.com>
Date: Tue, 23 Jul 2024 12:43:44 +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 RFC] x86/IOMMU: permit use of -save-temps
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Rather than invoking make for individual .i and/or .i targets, it may be
desirable to simply add -save-temps to $(CFLAGS) for some (or all)
source files. That, however, triggers a tautological compare warning
with at least gcc13 / gcc14. Apparently such warnings are suppressed
when the compiler knows they originate from macro context; use of
-save-temps, however, splits translation steps, and compiling the output
of pre-processing does not have that contextual information anymore.

Hack around this by making both sides of the comparison just different
enough for the compiler to no longer spot the tautology, without
sacrificing the dual purpose of the assertion (type match at build time,
value match at runtime). Of course as the compiler gets smarter, further
obfuscation may be needed.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
RFC: Of course this escalation spiral isn't a good game to play. Are
     there alternatives I'm overlooking? I don't think we want to use
     -Wno-tautological-compare.

--- a/xen/arch/x86/include/asm/iommu.h
+++ b/xen/arch/x86/include/asm/iommu.h
@@ -60,12 +60,12 @@ extern struct iommu_ops iommu_ops;
 
 # include <asm/alternative.h>
 # define iommu_call(ops, fn, args...) ({      \
-    ASSERT((ops) == &iommu_ops);              \
+    ASSERT((ops) == (1 ? &iommu_ops : NULL)); \
     alternative_call(iommu_ops.fn, ## args);  \
 })
 
 # define iommu_vcall(ops, fn, args...) ({     \
-    ASSERT((ops) == &iommu_ops);              \
+    ASSERT((ops) == (1 ? &iommu_ops : NULL)); \
     alternative_vcall(iommu_ops.fn, ## args); \
 })
 


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 10:45:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 10:45:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763003.1173251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWD1O-0007yb-7q; Tue, 23 Jul 2024 10:45:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763003.1173251; Tue, 23 Jul 2024 10:45:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWD1O-0007yU-3J; Tue, 23 Jul 2024 10:45:30 +0000
Received: by outflank-mailman (input) for mailman id 763003;
 Tue, 23 Jul 2024 10:45:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWD1M-0007xr-Sb
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 10:45: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 ab046243-48e0-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 12:45:26 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a7a91cdcc78so26431166b.3; 
 Tue, 23 Jul 2024 03:45:25 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5a30aaa38fesm7356311a12.35.2024.07.23.03.45.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 03: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: ab046243-48e0-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721731524; x=1722336324; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lP51VGX/OgUw3HTE0gywU0LsHSW3IICbIntS6gP1HaA=;
        b=Wn4G/inHnAV3HoQsvzYvAXJ32OXv2cGjENK2pxCS/VZ4vefYBVXpdxIO1YuPDuh+xn
         1w9+IhP56dKj45MhQWXvHg+eLu0pajTxIPS7Md66XUcRwjW+2uNzRbybmZhmQYMPAMZM
         TFQG1jv3IB6SVT4P4nl5ZaTMnrcENbe3satTxFepOWATVcZgwlQZ9V8dKyqcldYBKcEp
         39re6pCze844Hbes1i/dbFsW/yErU2PDipN3WJrPla+idrJzJGgslhFr0yLEg5FXjkww
         X1Nh7dt3ffVBYjBtQ4zW7N+ZGqBPR/b7FFn/Gr3xKn8R4LT5b1lq897FWqfP94jGCjMo
         /gxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721731524; x=1722336324;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lP51VGX/OgUw3HTE0gywU0LsHSW3IICbIntS6gP1HaA=;
        b=HIEkLhwLK9orbzcApdYDyFJDlTN8U01Z75DzWfqTB340PYX8DqOIC6WGmD++I9u8wn
         bu6m0Jbzb02JqNRJImnhLmkeGg6aVlmA61+/bpjVyUsqwH0i3LFaptndRVEU2ZJKiBqM
         8SuZRmF9c1qGZBvNLvPk6RUuWTH9VmjvcGs0wswUbvC4VN8QMvoNsfxxkgoox0k7PJ5i
         Jz/5hTY1g/lGNjyhCcOPQeEkTpIAPL8WIjqcwqHxM5gPGfpKmSran1LQOy5ufJbcIl0E
         r60wPjfAJ870YbwTIwmtjs5rw7jgPcd2fGGXy+ZYALs6lj0gwgprQmMPb3rFTKHLWPql
         Ensg==
X-Forwarded-Encrypted: i=1; AJvYcCUBcxTgjK0rh8ua9qE5dggHQOo3FrS0vFAxrDeSTgfR2h8Tvnb7+xeQ3UUru8xSTohsnl2TW5hTmD0H+lOHrlrvnZC6HAPHQPL7RPdhh8rpZ6k=
X-Gm-Message-State: AOJu0Yza+uoIoqikgIBhFiG6L7djwyw29IjpPjfULF+Ip0h6F3u4FLjv
	bEtayoav4vPOcxqiSB9RZyZE2Koo06uR/jxCyKw86i6mTovDtoy7cNlIWwYK
X-Google-Smtp-Source: AGHT+IGYnUEjnZ+70xz938Sk/e5pyFQeeFsSL84nHM5gvhjXvf08ItX8Lg1mmO0EJaG711AyaapJEA==
X-Received: by 2002:a05:6402:5111:b0:5a3:8077:3c90 with SMTP id 4fb4d7f45d1cf-5a47b7ab45emr8301220a12.33.1721731523919;
        Tue, 23 Jul 2024 03:45:23 -0700 (PDT)
Message-ID: <b0334b68f130984f58fbd4adc1044626dd282768.camel@gmail.com>
Subject: Xen 4.19-rc4
From: oleksii.kurochko@gmail.com
To: xen-devel@lists.xenproject.org
Cc: xen-users@lists.xenproject.org, xen-announce@lists.xenproject.org
Date: Tue, 23 Jul 2024 12:45:22 +0200
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

Hi all,

Xen 4.19-rc4 is tagged. You can check that out from xen.git:

git://xenbits.xen.org/xen.git 4.19.0-rc4

For your convenience there is also a tarball and the signature at:
https://downloads.xenproject.org/release/xen/4.19.0-rc4/xen-4.19.0-rc4.tar.=
gz

And the signature is at:
https://downloads.xenproject.org/release/xen/4.19.0-rc4/xen-4.19.0-rc4.tar.=
gz.sig

Please send bug reports and test reports to
xen-devel@lists.xenproject.org<mailto:xen-devel@lists.xenproject.org>.
When sending bug reports, please CC relevant maintainers and me
(oleskii.kurochko@gmail.com<mailto:oleskii.kurochko@gmail.com).

Best regards,
 Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 11:09:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 11:09:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763054.1173287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWDOf-0006Kr-Kg; Tue, 23 Jul 2024 11:09:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763054.1173287; Tue, 23 Jul 2024 11:09:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWDOf-0006Kk-Hv; Tue, 23 Jul 2024 11:09:33 +0000
Received: by outflank-mailman (input) for mailman id 763054;
 Tue, 23 Jul 2024 11:09:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWDOe-0006Ka-3M; Tue, 23 Jul 2024 11:09:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWDOd-0004Fk-O7; Tue, 23 Jul 2024 11:09:31 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWDOd-0005D0-CU; Tue, 23 Jul 2024 11:09:31 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWDOd-0004qe-Bv; Tue, 23 Jul 2024 11:09: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=xtAkDFANU6rv2cdR+PNSTJObDt8tALDjAgoDwDLx0AY=; b=Bbt6Ls7M4M9+GOaPv6bn4e3YdM
	c3SugVwu7mrdFKdSxVse+9yRgcxhdqEPAFHkyuc4930IRsOdcIdggPC0aiBZXba6jJit99KZnf0Zk
	UUhbgP5uwRk9/7WLGq6wzfaLQzSAa7YUc6Qs5imXIoDllDqYaFYqyp7jUWFhM6LWKjp0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186962-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186962: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=46eb0ca29bf6bd84381af8506e0d9b1755f767d9
X-Osstest-Versions-That:
    ovmf=c5ab17430b2579dd79e3cbd497b8b9deccd34abc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 11:09:31 +0000

flight 186962 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186962/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 46eb0ca29bf6bd84381af8506e0d9b1755f767d9
baseline version:
 ovmf                 c5ab17430b2579dd79e3cbd497b8b9deccd34abc

Last test of basis   186961  2024-07-23 06:15:52 Z    0 days
Testing same since   186962  2024-07-23 08:46:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Shenbagadevi R <shenbagadevir@ami.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   c5ab17430b..46eb0ca29b  46eb0ca29bf6bd84381af8506e0d9b1755f767d9 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 11:22:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 11:22:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763068.1173298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWDbT-00015s-R0; Tue, 23 Jul 2024 11:22:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763068.1173298; Tue, 23 Jul 2024 11:22: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 1sWDbT-00015l-Nc; Tue, 23 Jul 2024 11:22:47 +0000
Received: by outflank-mailman (input) for mailman id 763068;
 Tue, 23 Jul 2024 11:22: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=BZ+O=OX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWDbS-00015f-VC
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 11:22:46 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e1da59a1-48e5-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 13:22:44 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a728f74c23dso56568166b.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 04:22:44 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7aa49f3dfdsm14028066b.145.2024.07.23.04.22.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 04:22: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: e1da59a1-48e5-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721733764; x=1722338564; 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=h/XSk6ltUMQMPtPlqVGntKFT4nYu/hIlLTTW65/D/x4=;
        b=WkNABcJ/g+OfIhVUxUrKMjlj9SOAyUgrYDkuSOWZ7QT40fjsFOiiL+jS/5g0SczsxH
         eeP1fxXyNv/hcx+kRyamCCadY6+BxFqBmz7OyxbZPozttCy1FQMGcuwU0faAdCTxDt6M
         rBS9Y045jfPaGyuRPtuTrXIB5nK6cN0runAyYDDrMdLnjdZ+DibKYbGBVWsNcp8xRkro
         9yvwU9PzDx9XDViekmj6dPcI364Me1HM6JcqHg05B+iNTeCkcRiWBOXJVide3nvMKB1Y
         49z/kzDvepDeS8m4+wfw2oDtXCaSlzIGidd63nsFfK9r8uHcbaoJMkXZ6lwhWs/b/r4g
         Vf1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721733764; x=1722338564;
        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=h/XSk6ltUMQMPtPlqVGntKFT4nYu/hIlLTTW65/D/x4=;
        b=em3d+j1MqSwzkZ7nAAcOaP/YfeNg2fWHTUC1mMKXAL11dBDDMmnhf15y1umB0rEKy9
         BELmGuDTXvyYNHZG2ou4GIZATY222yQbM0Hv56U7qf1N2hzz9Xcl9cmaxEYXDc70FIZ7
         VHSI7aX/RULMU6qSb0M5B3D4jlutyYubEyRoz0GinX+qLPp2J9cEW7rklKxA7+/2XHkm
         u++BnpdQbFkgx/1dE8ygXsgHNk/qn81qVe/6I0UVd1ba6ct8VElmU+Ghk0lXKpPLvdHC
         pEZTGubsJtpRDvcGfhlNSjVAXFetb/35R/6IMkcXtdCz8DnaLP1zowtScuLHOSP/cLOV
         0tlA==
X-Forwarded-Encrypted: i=1; AJvYcCUD3mbRnWD1NDCoQylFbPyu7XGf0LzXKu22OdbXLSUZPzqph6eQLTC2S3hImEuQBYlnMReecr/jk4U9O/5p+XOMWkDpfUzQVKlKAAWQVgo=
X-Gm-Message-State: AOJu0Yz4wQj6aUew4/IpY2w3HbyB8wzzqNBbqVin4SvLrLGNq7ij2Pgt
	rwgv2TaiLwuOpkfzD1WUBsOdCQEEeCKTY8zkhzqLeyeNioJ2d1grz+uX3UtB/aViGYkWwwwL6mN
	L
X-Google-Smtp-Source: AGHT+IHN6GVVorTX8tdmNr525szLLZQrL0RxzAbw/OsWAlCxAMj5JnbXGOXSHKYDjLGD/46TjZ443w==
X-Received: by 2002:a17:907:d18:b0:a77:d441:c6f1 with SMTP id a640c23a62f3a-a7a4c1233bamr648918466b.33.1721733763950;
        Tue, 23 Jul 2024 04:22:43 -0700 (PDT)
Message-ID: <596b843e-43ae-4094-af3f-000b36a4d58c@suse.com>
Date: Tue, 23 Jul 2024 13:22:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/6] tools/libxs: Stop playing with SIGPIPE
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-7-andrew.cooper3@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240718164842.3650702-7-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 18.07.24 18:48, Andrew Cooper wrote:
> It's very rude for a library to play with signals behind the back of the
> application, no matter ones views on the default behaviour of SIGPIPE under
> POSIX.  Even if the application doesn't care about the xenstored socket, it my
> care about others.
> 
> This logic has existed since xenstore/xenstored was originally added in commit
> 29c9e570b1ed ("Add xenstore daemon and library") in 2005.
> 
> It's also unnecessary.  Pass MSG_NOSIGNAL when talking to xenstored over a
> pipe (to avoid sucumbing to SIGPIPE if xenstored has crashed), and forgo any
> playing with the signal disposition.
> 
> This has a side benefit of saving 2 syscalls per xenstore request.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 11:37:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 11:37:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763076.1173308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWDpp-0003ur-21; Tue, 23 Jul 2024 11:37:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763076.1173308; Tue, 23 Jul 2024 11: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 1sWDpo-0003uk-Un; Tue, 23 Jul 2024 11:37:36 +0000
Received: by outflank-mailman (input) for mailman id 763076;
 Tue, 23 Jul 2024 11:37:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWDpn-0003ua-9m; Tue, 23 Jul 2024 11:37:35 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWDpm-0004pL-U9; Tue, 23 Jul 2024 11:37:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWDpm-0005sl-JD; Tue, 23 Jul 2024 11:37:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWDpm-00060b-Ic; Tue, 23 Jul 2024 11:37:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=gfpvThszbb2/UHNBZ4j1DJE7iSTmpzMgom8KU+vm1pE=; b=O2tzUZJYOWPgOgJCSfk2gqkLXb
	z8dRRUrDlCi6seNPQrANM62U/EFPfxgx99S1lQFDfgoWdBx/PudAGWEpUrx+oMsku3LyH+CLP7A9j
	Yx84SbtKUmPWuBQy/mhugrByOynmdomnkG41ifNhpmU/ixneE0r0xxJTGevrFNSNTkbk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186960-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186960: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c4bdb14b80a1751ba622f3e48a4b91401c67867d
X-Osstest-Versions-That:
    xen=e44f33ccddc20079d9a22e1f0659c88fde0f4eb2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 11:37:34 +0000

flight 186960 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186960/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186952
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186952
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186952
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186952
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186952
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186952
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c4bdb14b80a1751ba622f3e48a4b91401c67867d
baseline version:
 xen                  e44f33ccddc20079d9a22e1f0659c88fde0f4eb2

Last test of basis   186952  2024-07-22 16:07:16 Z    0 days
Testing same since   186960  2024-07-23 04:24:53 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Olaf Hering <olaf@aepfle.de>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   e44f33ccdd..c4bdb14b80  c4bdb14b80a1751ba622f3e48a4b91401c67867d -> master


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 12:08:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 12:08:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763116.1173337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWEJB-0001Nm-Ux; Tue, 23 Jul 2024 12:07:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763116.1173337; Tue, 23 Jul 2024 12:07:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWEJB-0001Nf-Rq; Tue, 23 Jul 2024 12:07:57 +0000
Received: by outflank-mailman (input) for mailman id 763116;
 Tue, 23 Jul 2024 12:07:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=402b=OX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWEJA-0001Mj-Dq
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 12:07:56 +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 319a935a-48ec-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 14:07:55 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a6265d3ba8fso57187666b.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 05:07:55 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c785b97sm543016766b.14.2024.07.23.05.07.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 05:07:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 319a935a-48ec-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721736475; x=1722341275; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gMM5Vk9Ch/boDrfecdJ+TXxssk3o6a0DiqHi2lNRops=;
        b=bP2/GAjOeG4vULeZ8fDpTosygLjXxeTa6pmrA84frlGyk01CDt9APQZiFc0XIgF+Ms
         9wY5sP5mV5raaQ6dH/nMYWCzirsPfwhiumTUqA6nlMqzXUdXYJBCPnymDeJz45DS8aK8
         FBaywsI/vfjP+fPRbf8TZcrs2dbTwxrK8FQ7I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721736475; x=1722341275;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gMM5Vk9Ch/boDrfecdJ+TXxssk3o6a0DiqHi2lNRops=;
        b=wdG9VoMeiFAsYWRifP1cy0xC/xxm2pqksS/Oa8MSk3N/lfeK4RPA80TPoSFuPjSyXj
         rLLKnCsthT5RvaRyssrjT0lU2cpGOiR+LExqFZlUtgNw8pqaoqOS58REsWFoA5Lv3Xiq
         RHXYRKHJCuSwy4MAAMVk0SDob77jTAv5EkfRVlo+98mw31s7MiJIubMCmKwJR+Fi4Thr
         y9kW3uG3N6Th/2YiXkBg0bL/7Y+vyfJoIZ0QQMWbYgoM1OGaMHDDzeI95OKtBbzoP2T1
         sUgkuQOuHMn80dzPNgDUD8KVGdQ1fkIS2f9jBwTSCqQNY8s8VQUpGCSkpDyS3HZzXPC1
         YDNQ==
X-Forwarded-Encrypted: i=1; AJvYcCVCMxfeQTqpQko9QnViUDMLDM0hTYuQpMre7FOPPQXKgO7BAC2+rvKNP5+QvyC+TfKQjqIWBJGUBI44FiOtL6e/s0LRAEmT++k0Cyo/ejo=
X-Gm-Message-State: AOJu0Yy5jCuR0+il3ggT4Uq1Z1fddmBeEeSIwzL0rB+KBiJiSNZigcBT
	kk2Bho2dRYDyLKrZGxca+4Dt9BDsCFbwaLBLpJntjZFdAURA6m7wOj+9p2FqHSw=
X-Google-Smtp-Source: AGHT+IFquNEQn68jck9AZEvkemsF0qppKAJ5vAL8AJ8ws1jxVB09cKTzaIvqBDrZPhFQMU0qSvIisQ==
X-Received: by 2002:a17:907:e8a:b0:a6f:6b6a:e8d0 with SMTP id a640c23a62f3a-a7a87c86785mr209633866b.7.1721736474790;
        Tue, 23 Jul 2024 05:07:54 -0700 (PDT)
Message-ID: <d6cc1f6f-fd37-4911-b3a4-59915727841f@citrix.com>
Date: Tue, 23 Jul 2024 13:07:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/6] tools/libxs: Track whether we're using a socket or
 file
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-5-andrew.cooper3@citrix.com>
 <8cbe6c8c-1401-4661-9319-e174ffce7461@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <8cbe6c8c-1401-4661-9319-e174ffce7461@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23/07/2024 10:33 am, Jürgen Groß wrote:
> On 18.07.24 18:48, Andrew Cooper wrote:
>> It will determine whether to use writev() or sendmsg().
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>> CC: Juergen Gross <jgross@suse.com>
>> ---
>>   tools/libs/store/xs.c | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
>> index 96ea2b192924..f4edeb05f03b 100644
>> --- a/tools/libs/store/xs.c
>> +++ b/tools/libs/store/xs.c
>> @@ -65,6 +65,9 @@ struct xs_stored_msg {
>>   struct xs_handle {
>>       /* Communications channel to xenstore daemon. */
>>       int fd;
>> +
>> +    bool is_socket; /* is @fd a file or socket? */
>> +
>>       Xentoolcore__Active_Handle tc_ah; /* for restrict */
>>         /*
>> @@ -305,6 +308,8 @@ static struct xs_handle *get_handle(const char
>> *connect_to)
>>       if (h->fd == -1)
>>           goto err;
>>   +    h->is_socket = S_ISSOCK(buf.st_mode);
>> +
>>       XEN_TAILQ_INIT(&h->reply_list);
>>       XEN_TAILQ_INIT(&h->watch_list);
>>   
>
> I'd prefer to set h->is_socket above the current
>
>     if (S_ISSOCK(buf.st_mode))
>
> and then use h->is_socket in this if instead.
>
> With that:
>
> Reviewed-by: Juergen Gross <jgross@suse.com>

To confirm, you mean like this?

@@ -297,7 +300,9 @@ static struct xs_handle *get_handle(const char
*connect_to)
        if (stat(connect_to, &buf) != 0)
                goto err;
 
-       if (S_ISSOCK(buf.st_mode))
+       h->is_socket = S_ISSOCK(buf.st_mode);
+
+       if (h->is_socket)
                h->fd = get_socket(connect_to);
        else
                h->fd = get_dev(connect_to);



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 12:09:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 12:09:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763123.1173348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWEKC-0001w9-7X; Tue, 23 Jul 2024 12:09:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763123.1173348; Tue, 23 Jul 2024 12: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 1sWEKC-0001w2-3q; Tue, 23 Jul 2024 12:09:00 +0000
Received: by outflank-mailman (input) for mailman id 763123;
 Tue, 23 Jul 2024 12: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=BZ+O=OX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWEKA-0001kl-Hz
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 12:08:58 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56232b7c-48ec-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 14:08:56 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2f0271b0ae9so2673561fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 05:08:56 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5a30a4d70d8sm7435012a12.1.2024.07.23.05.08.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 05: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: 56232b7c-48ec-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721736536; x=1722341336; 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=2Sc9OLN0Pb08EzBZUz0Rj5/+5mfUVa00ktITdGCAZ7c=;
        b=ZK+SgXyQ1GuFeF9GSVjYT6KVKcnhQjTUBeLtrZv26wJRMOvqw5PAimC7oEHoxzQK/3
         IjicEe1XJQmgw0NTOoUWQjKoHlWbqf9Rfp7BUpiz3fyNIBitvwaN63P3ePKIXx+I/JBB
         mUKv5K4UB8CM1YsE1dfBpHbyPGORlW7i/XgEIfPN1GbWpvFTP7BYRLyr91W3/n3B1or2
         jsO+kPo6Ktyw6vpENxRp4gaHIWLe1uTzZgfB4NwdZGhDeR2FowqtrRmUfulQPbV64hzL
         ilQ1L5QJeZnGNt81vOOAr2QIZ35aXZGp5tBpN7ZTAO5z6YHlvSsJWy4FH9rEQCEU4obF
         traQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721736536; x=1722341336;
        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=2Sc9OLN0Pb08EzBZUz0Rj5/+5mfUVa00ktITdGCAZ7c=;
        b=aS8URVW842sICbXGRc56WJC9y1ajAjDgEBFzBkNw7LfVTzVt67HiDTRCRPNbAUKT9+
         utbIvHg1QmcVo6MgN4XgevN7BuMw6Gh9S6+SidctYFOxuLGY2znkjvOuVMPryQtWXogH
         Srzof2xFQvzldsznEGSFu671COKFqwIdk3xEPDnYinGENahdgW3TIC91GIS4Z2pvF9Rd
         8RXk+OdaGgYQrdYlVGhTA7ScpAdxvMSKBmkx+2iwOADHER51zvqSqwGaf5To7HXTc//d
         tWLGyS2n+aJzilknRYJ20WcSW0aMDRudPri9GdFA/V/cf+MrkOzv9vIgkeCQvOSii1FA
         Q+mg==
X-Forwarded-Encrypted: i=1; AJvYcCV0PyLnxA8kmfgThJE2u64QW8VwZFiAaUywoSb2sO6SrdqNJFtCkEuu+tcl73R/qJ4u0H+eTn+cgFOKSBNmL5iCHYlAOn8kJx0J8AywLaE=
X-Gm-Message-State: AOJu0YzOfHU6H1sdRt946DnrZkdkmtpzO7fWoqVMSKbzoWnzz7wX/Qsi
	Z8AikYKvz4RNaCw2S66cQL9bSRi4vX4FS6J+UJBi0OzUFiCMhgVNccSY9OH1YiY=
X-Google-Smtp-Source: AGHT+IG8aMy8iizL7PNwtEZSrTevbpaP0RUSl7/8+ytXnYM1zGeZj0MaHIMlLz5JLnHKDevPPfb16Q==
X-Received: by 2002:a2e:7e07:0:b0:2ef:2c86:4d45 with SMTP id 38308e7fff4ca-2f01ea6df8bmr18400651fa.27.1721736536025;
        Tue, 23 Jul 2024 05:08:56 -0700 (PDT)
Message-ID: <6cc32731-8346-4839-8a59-9a613505ae20@suse.com>
Date: Tue, 23 Jul 2024 14:08:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/6] tools/libxs: Track whether we're using a socket or
 file
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-5-andrew.cooper3@citrix.com>
 <8cbe6c8c-1401-4661-9319-e174ffce7461@suse.com>
 <d6cc1f6f-fd37-4911-b3a4-59915727841f@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <d6cc1f6f-fd37-4911-b3a4-59915727841f@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 23.07.24 14:07, Andrew Cooper wrote:
> On 23/07/2024 10:33 am, Jürgen Groß wrote:
>> On 18.07.24 18:48, Andrew Cooper wrote:
>>> It will determine whether to use writev() or sendmsg().
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>> CC: Juergen Gross <jgross@suse.com>
>>> ---
>>>    tools/libs/store/xs.c | 5 +++++
>>>    1 file changed, 5 insertions(+)
>>>
>>> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
>>> index 96ea2b192924..f4edeb05f03b 100644
>>> --- a/tools/libs/store/xs.c
>>> +++ b/tools/libs/store/xs.c
>>> @@ -65,6 +65,9 @@ struct xs_stored_msg {
>>>    struct xs_handle {
>>>        /* Communications channel to xenstore daemon. */
>>>        int fd;
>>> +
>>> +    bool is_socket; /* is @fd a file or socket? */
>>> +
>>>        Xentoolcore__Active_Handle tc_ah; /* for restrict */
>>>          /*
>>> @@ -305,6 +308,8 @@ static struct xs_handle *get_handle(const char
>>> *connect_to)
>>>        if (h->fd == -1)
>>>            goto err;
>>>    +    h->is_socket = S_ISSOCK(buf.st_mode);
>>> +
>>>        XEN_TAILQ_INIT(&h->reply_list);
>>>        XEN_TAILQ_INIT(&h->watch_list);
>>>    
>>
>> I'd prefer to set h->is_socket above the current
>>
>>      if (S_ISSOCK(buf.st_mode))
>>
>> and then use h->is_socket in this if instead.
>>
>> With that:
>>
>> Reviewed-by: Juergen Gross <jgross@suse.com>
> 
> To confirm, you mean like this?
> 
> @@ -297,7 +300,9 @@ static struct xs_handle *get_handle(const char
> *connect_to)
>          if (stat(connect_to, &buf) != 0)
>                  goto err;
>   
> -       if (S_ISSOCK(buf.st_mode))
> +       h->is_socket = S_ISSOCK(buf.st_mode);
> +
> +       if (h->is_socket)
>                  h->fd = get_socket(connect_to);
>          else
>                  h->fd = get_dev(connect_to);
> 

Yes.


Juergen


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 12:25:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 12:25:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763145.1173386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWEaD-0005KC-RB; Tue, 23 Jul 2024 12:25:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763145.1173386; Tue, 23 Jul 2024 12:25:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWEaD-0005K5-OW; Tue, 23 Jul 2024 12:25:33 +0000
Received: by outflank-mailman (input) for mailman id 763145;
 Tue, 23 Jul 2024 12:25: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=402b=OX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWEaD-0005Jz-AN
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 12:25:33 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a6eca230-48ee-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 14:25:31 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52f025bc147so3295053e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 05:25:31 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c8c022dsm532168766b.102.2024.07.23.05.25.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 05:25: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: a6eca230-48ee-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721737531; x=1722342331; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SKJdO1KWMWGX7+06iZb1BqtGeakQjjUhczpUR8dCjhU=;
        b=Z3R4jMj/WRfdrDtH6IrHFyKyAHtlf0aCsf3nSE3cSYDKZhw491RJbL1YOBKns76Ro1
         MkawvZAOpl0jW4jh4HiIN71TFyJSNlVtxtWAEIylF9kb/LJA5VO2Iwc9m/boYKa2aS5H
         Zzg108LsNlEX+69iKTE9yxFqzVbq4QuNdkHeU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721737531; x=1722342331;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SKJdO1KWMWGX7+06iZb1BqtGeakQjjUhczpUR8dCjhU=;
        b=t1EnRoYaUrzmgklcpSTIUBCBMTZH0dmOIkuoC/s6k83R4etla90AadX1gz+xochUn8
         /1Thorj94fVRiGHxNKXbvYUJLkcw5sVJaiz1KK6LzPUuYWEyUHBz+7uX0tXxDCduvjy2
         rvtACPZoRnThkKChmD55Y39Q4zl7hVZDDMXZC0sQ7Hz5lWkRXMDk/VptfSNt1MOnSYSy
         xjdlNVQUKDsFG4rRaasblDkUC3WCfvcN78fNucPPImZEP3hO4llMT5qbk/MPxALbNujd
         MhxCBj1lwvZ2wNpdYPWJXz9H0yHqmSdD5s/LdGp0mnJk0U5LPOdhFturH0SojMElyG3q
         y3TQ==
X-Forwarded-Encrypted: i=1; AJvYcCVV+u8GkGr4FYzOtDJjOGmqppf6B5DkJ3GUj9Ljdzu+M3om7ipZFtXkEtCwXr29L8wjP2D9y8qhp+RgmXQAX4mjjo5ouTlkEHBCNe3mQos=
X-Gm-Message-State: AOJu0Yyy2ipPyXa7lAPU/xmAGS0PvpSziRyn5FQ+UuF9kjwZXctd9xto
	cJuPaxYj7NXX42kXkA2bs7OIiLkl3PFPvskXzb9+pCMHpaDoyA6HrUGtrNCzp/4=
X-Google-Smtp-Source: AGHT+IEdYTisQEiGIo2qHgpbCqZONQzROVsKeovPZQ0zJSPMDOQrS26hHZx+VI/VCQV4WY40sjBV6A==
X-Received: by 2002:a05:6512:12cd:b0:52c:e3af:7c5c with SMTP id 2adb3069b0e04-52efb76dc1fmr6346294e87.34.1721737530617;
        Tue, 23 Jul 2024 05:25:30 -0700 (PDT)
Message-ID: <702ac4d8-2eba-4b4d-bf43-3cc8277c5778@citrix.com>
Date: Tue, 23 Jul 2024 13:25:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1.1 5/6] tools/libxs: Use writev()/sendmsg() instead of
 write()
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Frediano Ziglio <frediano.ziglio@cloud.com>
References: <20240718164842.3650702-6-andrew.cooper3@citrix.com>
 <20240722162547.4060813-1-andrew.cooper3@citrix.com>
 <cabf929b-11bd-4401-88a2-7d4c8ae4b606@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <cabf929b-11bd-4401-88a2-7d4c8ae4b606@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23/07/2024 10:37 am, Jürgen Groß wrote:
> On 22.07.24 18:25, Andrew Cooper wrote:
>> With the input data now conveniently arranged, use writev()/sendmsg()
>> instead
>> of decomposing it into write() calls.
>>
>> This causes all requests to be submitted with a single system call,
>> rather
>> than at least two.  While in principle short writes can occur, the
>> chances of
>> it happening are slim given that most xenbus comms are only a handful of
>> bytes.
>>
>> Nevertheless, provide {writev,sendmsg}_exact() wrappers which take
>> care of
>> resubmitting on EINTR or short write.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>> CC: Juergen Gross <jgross@suse.com>
>> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
>>
>> v1.1:
>>   * Fix iov overread, spotted by Frediano.  Factor the common
>> updating logic
>>     out into update_iov().
>> ---
>>   tools/libs/store/xs.c | 94 +++++++++++++++++++++++++++++++++++++++++--
>>   1 file changed, 91 insertions(+), 3 deletions(-)
>>
>> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
>> index e820cccc2314..f80ac7558cbe 100644
>> --- a/tools/libs/store/xs.c
>> +++ b/tools/libs/store/xs.c
>> @@ -563,6 +563,95 @@ static void *read_reply(
>>       return body;
>>   }
>>   +/*
>> + * Update an iov/nr pair after an incomplete writev()/sendmsg().
>> + *
>> + * Awkwardly, nr has different widths and signs between writev() and
>> + * sendmsg(), so we take it and return it by value, rather than by
>> pointer.
>> + */
>> +static size_t update_iov(struct iovec **p_iov, size_t nr, size_t res)
>> +{
>> +    struct iovec *iov = *p_iov;
>> +
>> +        /* Skip fully complete elements, including empty elements. */
>> +        while (nr && res >= iov->iov_len) {
>> +                res -= iov->iov_len;
>> +                nr--;
>> +                iov++;
>> +        }
>> +
>> +        /* Partial element, adjust base/len. */
>> +        if (res) {
>> +                iov->iov_len  -= res;
>> +                iov->iov_base += res;
>> +        }
>> +
>> +        *p_iov = iov;
>> +
>> +    return nr;
>> +}
>> +
>> +/*
>> + * Wrapper around sendmsg() to resubmit on EINTR or short write. 
>> Returns
>> + * @true if all data was transmitted, or @false with errno for an
>> error.
>> + * Note: May alter @iov in place on resubmit.
>> + */
>> +static bool sendmsg_exact(int fd, struct iovec *iov, unsigned int nr)
>> +{
>> +    struct msghdr hdr = {
>> +        .msg_iov = iov,
>> +        .msg_iovlen = nr,
>> +    };
>> +
>> +    /* Sanity check first element isn't empty */
>> +    assert(iov->iov_len == sizeof(struct xsd_sockmsg));
>
> Can you please move this assert() into write_request(), avoiding to have
> 2 copies of it?

It was more relevant before update_iov() was split out.

But, there's exactly the same assertion in the write_request()'s caller,
so I'd prefer to simply drop it if that's ok?

The writev()/sendmsg() won't malfunction if the first element is 0, and
update_iov() will now cope too, so I don't think it's necessary.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 12:31:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 12:31:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763153.1173396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWEfU-0007MK-FA; Tue, 23 Jul 2024 12:31:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763153.1173396; Tue, 23 Jul 2024 12:31: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 1sWEfU-0007MD-BR; Tue, 23 Jul 2024 12:31:00 +0000
Received: by outflank-mailman (input) for mailman id 763153;
 Tue, 23 Jul 2024 12:30: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=BZ+O=OX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWEfT-0007IO-6F
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 12:30:59 +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 692b4e38-48ef-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 14:30: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 85D211FBB3;
 Tue, 23 Jul 2024 12:30:56 +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 BE56D137DF;
 Tue, 23 Jul 2024 12:30: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 At3OLFWin2a7FQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 23 Jul 2024 12:30: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: 692b4e38-48ef-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721737856; 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=17MHGA0zIAwh2gjiHtL9aW44Q5nD5mhQ5Inj2mIQnio=;
	b=QBPnQaC1xKp70pPvaPnbIMN2zWXlQIQ268eaBBcIAVqxW8+UXAn1iVyiWfRaigk9rgUl/X
	abSts8YWtzFhGIfVxJdKqoOdtp8R/m7kSjoubkr1ylpsrBaoifH89sZkxnFSA4V96rr5uJ
	ZTO2rYk2rxsmgJUQJo+WMVqZ2zBoBwY=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=QBPnQaC1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721737856; 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=17MHGA0zIAwh2gjiHtL9aW44Q5nD5mhQ5Inj2mIQnio=;
	b=QBPnQaC1xKp70pPvaPnbIMN2zWXlQIQ268eaBBcIAVqxW8+UXAn1iVyiWfRaigk9rgUl/X
	abSts8YWtzFhGIfVxJdKqoOdtp8R/m7kSjoubkr1ylpsrBaoifH89sZkxnFSA4V96rr5uJ
	ZTO2rYk2rxsmgJUQJo+WMVqZ2zBoBwY=
Message-ID: <34350564-2faf-4af7-a66c-4ef3960a98ed@suse.com>
Date: Tue, 23 Jul 2024 14:30:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1.1 5/6] tools/libxs: Use writev()/sendmsg() instead of
 write()
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Frediano Ziglio <frediano.ziglio@cloud.com>
References: <20240718164842.3650702-6-andrew.cooper3@citrix.com>
 <20240722162547.4060813-1-andrew.cooper3@citrix.com>
 <cabf929b-11bd-4401-88a2-7d4c8ae4b606@suse.com>
 <702ac4d8-2eba-4b4d-bf43-3cc8277c5778@citrix.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: <702ac4d8-2eba-4b4d-bf43-3cc8277c5778@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------AKL2GvsYV4DMGdBLg5HpUijV"
X-Spam-Score: -8.20
X-Spam-Level: 
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-8.20 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	DWL_DNSWL_MED(-2.00)[suse.com:dkim];
	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];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	XM_UA_NO_VERSION(0.01)[];
	MX_GOOD(-0.01)[];
	TO_DN_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	MID_RHS_MATCH_FROM(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email]
X-Rspamd-Queue-Id: 85D211FBB3
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------AKL2GvsYV4DMGdBLg5HpUijV
Content-Type: multipart/mixed; boundary="------------F6fVptUncRyDKuKphcyqbeJw";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Frediano Ziglio <frediano.ziglio@cloud.com>
Message-ID: <34350564-2faf-4af7-a66c-4ef3960a98ed@suse.com>
Subject: Re: [PATCH v1.1 5/6] tools/libxs: Use writev()/sendmsg() instead of
 write()
References: <20240718164842.3650702-6-andrew.cooper3@citrix.com>
 <20240722162547.4060813-1-andrew.cooper3@citrix.com>
 <cabf929b-11bd-4401-88a2-7d4c8ae4b606@suse.com>
 <702ac4d8-2eba-4b4d-bf43-3cc8277c5778@citrix.com>
In-Reply-To: <702ac4d8-2eba-4b4d-bf43-3cc8277c5778@citrix.com>

--------------F6fVptUncRyDKuKphcyqbeJw
Content-Type: multipart/mixed; boundary="------------V9yz0pjnIVQ3Mz40wOxmuV8M"

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

T24gMjMuMDcuMjQgMTQ6MjUsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDIzLzA3LzIw
MjQgMTA6MzcgYW0sIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+PiBPbiAyMi4wNy4yNCAxODoy
NSwgQW5kcmV3IENvb3BlciB3cm90ZToNCj4+PiBXaXRoIHRoZSBpbnB1dCBkYXRhIG5vdyBj
b252ZW5pZW50bHkgYXJyYW5nZWQsIHVzZSB3cml0ZXYoKS9zZW5kbXNnKCkNCj4+PiBpbnN0
ZWFkDQo+Pj4gb2YgZGVjb21wb3NpbmcgaXQgaW50byB3cml0ZSgpIGNhbGxzLg0KPj4+DQo+
Pj4gVGhpcyBjYXVzZXMgYWxsIHJlcXVlc3RzIHRvIGJlIHN1Ym1pdHRlZCB3aXRoIGEgc2lu
Z2xlIHN5c3RlbSBjYWxsLA0KPj4+IHJhdGhlcg0KPj4+IHRoYW4gYXQgbGVhc3QgdHdvLsKg
IFdoaWxlIGluIHByaW5jaXBsZSBzaG9ydCB3cml0ZXMgY2FuIG9jY3VyLCB0aGUNCj4+PiBj
aGFuY2VzIG9mDQo+Pj4gaXQgaGFwcGVuaW5nIGFyZSBzbGltIGdpdmVuIHRoYXQgbW9zdCB4
ZW5idXMgY29tbXMgYXJlIG9ubHkgYSBoYW5kZnVsIG9mDQo+Pj4gYnl0ZXMuDQo+Pj4NCj4+
PiBOZXZlcnRoZWxlc3MsIHByb3ZpZGUge3dyaXRldixzZW5kbXNnfV9leGFjdCgpIHdyYXBw
ZXJzIHdoaWNoIHRha2UNCj4+PiBjYXJlIG9mDQo+Pj4gcmVzdWJtaXR0aW5nIG9uIEVJTlRS
IG9yIHNob3J0IHdyaXRlLg0KPj4+DQo+Pj4gU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3Bl
ciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4NCj4+PiAtLS0NCj4+PiBDQzogQW50aG9u
eSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+DQo+Pj4gQ0M6IEp1ZXJnZW4g
R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4+PiBDQzogRnJlZGlhbm8gWmlnbGlvIDxmcmVk
aWFuby56aWdsaW9AY2xvdWQuY29tPg0KPj4+DQo+Pj4gdjEuMToNCj4+PiAgwqAgKiBGaXgg
aW92IG92ZXJyZWFkLCBzcG90dGVkIGJ5IEZyZWRpYW5vLsKgIEZhY3RvciB0aGUgY29tbW9u
DQo+Pj4gdXBkYXRpbmcgbG9naWMNCj4+PiAgwqDCoMKgIG91dCBpbnRvIHVwZGF0ZV9pb3Yo
KS4NCj4+PiAtLS0NCj4+PiAgwqAgdG9vbHMvbGlicy9zdG9yZS94cy5jIHwgOTQgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0KPj4+ICDCoCAxIGZpbGUg
Y2hhbmdlZCwgOTEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4+Pg0KPj4+IGRp
ZmYgLS1naXQgYS90b29scy9saWJzL3N0b3JlL3hzLmMgYi90b29scy9saWJzL3N0b3JlL3hz
LmMNCj4+PiBpbmRleCBlODIwY2NjYzIzMTQuLmY4MGFjNzU1OGNiZSAxMDA2NDQNCj4+PiAt
LS0gYS90b29scy9saWJzL3N0b3JlL3hzLmMNCj4+PiArKysgYi90b29scy9saWJzL3N0b3Jl
L3hzLmMNCj4+PiBAQCAtNTYzLDYgKzU2Myw5NSBAQCBzdGF0aWMgdm9pZCAqcmVhZF9yZXBs
eSgNCj4+PiAgwqDCoMKgwqDCoCByZXR1cm4gYm9keTsNCj4+PiAgwqAgfQ0KPj4+ICDCoCAr
LyoNCj4+PiArICogVXBkYXRlIGFuIGlvdi9uciBwYWlyIGFmdGVyIGFuIGluY29tcGxldGUg
d3JpdGV2KCkvc2VuZG1zZygpLg0KPj4+ICsgKg0KPj4+ICsgKiBBd2t3YXJkbHksIG5yIGhh
cyBkaWZmZXJlbnQgd2lkdGhzIGFuZCBzaWducyBiZXR3ZWVuIHdyaXRldigpIGFuZA0KPj4+
ICsgKiBzZW5kbXNnKCksIHNvIHdlIHRha2UgaXQgYW5kIHJldHVybiBpdCBieSB2YWx1ZSwg
cmF0aGVyIHRoYW4gYnkNCj4+PiBwb2ludGVyLg0KPj4+ICsgKi8NCj4+PiArc3RhdGljIHNp
emVfdCB1cGRhdGVfaW92KHN0cnVjdCBpb3ZlYyAqKnBfaW92LCBzaXplX3QgbnIsIHNpemVf
dCByZXMpDQo+Pj4gK3sNCj4+PiArwqDCoMKgIHN0cnVjdCBpb3ZlYyAqaW92ID0gKnBfaW92
Ow0KPj4+ICsNCj4+PiArwqDCoMKgwqDCoMKgwqAgLyogU2tpcCBmdWxseSBjb21wbGV0ZSBl
bGVtZW50cywgaW5jbHVkaW5nIGVtcHR5IGVsZW1lbnRzLiAqLw0KPj4+ICvCoMKgwqDCoMKg
wqDCoCB3aGlsZSAobnIgJiYgcmVzID49IGlvdi0+aW92X2xlbikgew0KPj4+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVzIC09IGlvdi0+aW92X2xlbjsNCj4+PiArwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5yLS07DQo+Pj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCBpb3YrKzsNCj4+PiArwqDCoMKgwqDCoMKgwqAgfQ0KPj4+ICsN
Cj4+PiArwqDCoMKgwqDCoMKgwqAgLyogUGFydGlhbCBlbGVtZW50LCBhZGp1c3QgYmFzZS9s
ZW4uICovDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIChyZXMpIHsNCj4+PiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlvdi0+aW92X2xlbsKgIC09IHJlczsNCj4+PiArwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlvdi0+aW92X2Jhc2UgKz0gcmVzOw0KPj4+
ICvCoMKgwqDCoMKgwqDCoCB9DQo+Pj4gKw0KPj4+ICvCoMKgwqDCoMKgwqDCoCAqcF9pb3Yg
PSBpb3Y7DQo+Pj4gKw0KPj4+ICvCoMKgwqAgcmV0dXJuIG5yOw0KPj4+ICt9DQo+Pj4gKw0K
Pj4+ICsvKg0KPj4+ICsgKiBXcmFwcGVyIGFyb3VuZCBzZW5kbXNnKCkgdG8gcmVzdWJtaXQg
b24gRUlOVFIgb3Igc2hvcnQgd3JpdGUuDQo+Pj4gUmV0dXJucw0KPj4+ICsgKiBAdHJ1ZSBp
ZiBhbGwgZGF0YSB3YXMgdHJhbnNtaXR0ZWQsIG9yIEBmYWxzZSB3aXRoIGVycm5vIGZvciBh
bg0KPj4+IGVycm9yLg0KPj4+ICsgKiBOb3RlOiBNYXkgYWx0ZXIgQGlvdiBpbiBwbGFjZSBv
biByZXN1Ym1pdC4NCj4+PiArICovDQo+Pj4gK3N0YXRpYyBib29sIHNlbmRtc2dfZXhhY3Qo
aW50IGZkLCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgaW50IG5yKQ0KPj4+ICt7DQo+
Pj4gK8KgwqDCoCBzdHJ1Y3QgbXNnaGRyIGhkciA9IHsNCj4+PiArwqDCoMKgwqDCoMKgwqAg
Lm1zZ19pb3YgPSBpb3YsDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIC5tc2dfaW92bGVuID0gbnIs
DQo+Pj4gK8KgwqDCoCB9Ow0KPj4+ICsNCj4+PiArwqDCoMKgIC8qIFNhbml0eSBjaGVjayBm
aXJzdCBlbGVtZW50IGlzbid0IGVtcHR5ICovDQo+Pj4gK8KgwqDCoCBhc3NlcnQoaW92LT5p
b3ZfbGVuID09IHNpemVvZihzdHJ1Y3QgeHNkX3NvY2ttc2cpKTsNCj4+DQo+PiBDYW4geW91
IHBsZWFzZSBtb3ZlIHRoaXMgYXNzZXJ0KCkgaW50byB3cml0ZV9yZXF1ZXN0KCksIGF2b2lk
aW5nIHRvIGhhdmUNCj4+IDIgY29waWVzIG9mIGl0Pw0KPiANCj4gSXQgd2FzIG1vcmUgcmVs
ZXZhbnQgYmVmb3JlIHVwZGF0ZV9pb3YoKSB3YXMgc3BsaXQgb3V0Lg0KPiANCj4gQnV0LCB0
aGVyZSdzIGV4YWN0bHkgdGhlIHNhbWUgYXNzZXJ0aW9uIGluIHRoZSB3cml0ZV9yZXF1ZXN0
KCkncyBjYWxsZXIsDQo+IHNvIEknZCBwcmVmZXIgdG8gc2ltcGx5IGRyb3AgaXQgaWYgdGhh
dCdzIG9rPw0KPiANCj4gVGhlIHdyaXRldigpL3NlbmRtc2coKSB3b24ndCBtYWxmdW5jdGlv
biBpZiB0aGUgZmlyc3QgZWxlbWVudCBpcyAwLCBhbmQNCj4gdXBkYXRlX2lvdigpIHdpbGwg
bm93IGNvcGUgdG9vLCBzbyBJIGRvbid0IHRoaW5rIGl0J3MgbmVjZXNzYXJ5Lg0KDQpGaW5l
IHdpdGggbWUuDQoNCg0KSnVlcmdlbg0KDQo=
--------------V9yz0pjnIVQ3Mz40wOxmuV8M
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-----

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
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------V9yz0pjnIVQ3Mz40wOxmuV8M--

--------------F6fVptUncRyDKuKphcyqbeJw--

--------------AKL2GvsYV4DMGdBLg5HpUijV
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/Ey8FAmafooAFAwAAAAAACgkQsN6d1ii/Ey+t
wAf/V3dcNmskw0wHypaoB84qlD1/pPSiyO0OmO2OtZZPTXPgAVXvHQbDjcXkDpzNAHNDstKa37u2
BuzY54gmUiADRCer+FuU9+mbBhI7Zsr3GFNLy0wIAlBHUyGjVXGo8kH5YRrUJ9dXPbnvWd11DFrA
h9mLU5snIwv7jDTpzkGiMQxrekBCidv0z6uH/rtZebfK8ShYJ171JsiYqETUIBDUNmG4qIQdp3z0
HxDU9eXWk2umeriUTShUapDm5agAX8QeYBqmxHf52SFb50ydKZJt8Z0fYEadBRs0Tvg6nle1Z41N
vQI1s2dWNR9k4s3aHPRLc9d14fA1thOJYI5ntEVrxg==
=50HU
-----END PGP SIGNATURE-----

--------------AKL2GvsYV4DMGdBLg5HpUijV--


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 12:58:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 12:58:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763164.1173405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWF5k-0003Md-Ip; Tue, 23 Jul 2024 12:58:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763164.1173405; Tue, 23 Jul 2024 12:58:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWF5k-0003MW-Fz; Tue, 23 Jul 2024 12:58:08 +0000
Received: by outflank-mailman (input) for mailman id 763164;
 Tue, 23 Jul 2024 12:58: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=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWF5j-0003MO-G7
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 12:58:07 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 33c017b8-48f3-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 14:58:05 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2f029e9c9cfso751871fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 05:58:05 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c95088fsm533833666b.212.2024.07.23.05.58.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 05:58: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: 33c017b8-48f3-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721739485; x=1722344285; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=eLjU1GrQIEeME2On3WmG/n+4CYiWPby0mGCJwnoMmx0=;
        b=TP/GBJTYHLQ6ubWljoXC0jWgwBr37t8RYni4+9mG+a/06GRLqTHNWvef9wP4OIoA9z
         Du41ex1/N9kWgBuaiw2rlfnHAx7a0UhJFR/6kpsl0NauU8BYuJxRlx6Rc2x3QV1p9ghX
         Ia6jYHKBtfTToMuNTs12/iP7IJHLrQ05TZZ5HyBoBpDQ9xBlQPI0AAPZWrlH8ua4ynYB
         7NmoaeEPJ1uZMNVb2P4LB7a6I621Fg6r3pcrLkJWNSLApG9gD3yol+qJ2erx49YaBT1r
         +DkVkvpF1IY1nDWUb9BzvtD9TEQmjS7m26LAaZKAmxMkx9NO5f/Z+F253bhGlEfSrHXz
         GYhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721739485; x=1722344285;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=eLjU1GrQIEeME2On3WmG/n+4CYiWPby0mGCJwnoMmx0=;
        b=VSjnzEVI1mQ/3KujxwZTZAYLGC1a9KQ9pz6PDz7w/vclQc4C1y7CVp0l9P9szGDn4f
         4lAerq0YvV0v/dyuWaQnShXvzrQvwQPgDROemvTZZx6xrHVdQ+8xWr1nwVTwYHt2WPys
         PK9TZYobRrka72S7uq4bJkA9i9Hy12pNoPvTlDP/Stt95OTUrdhqx5dDXjDV2hmlm3qO
         0e3Py6LKQdin3jPRxaycOrUolBnQKAf6Z3Tb0LGPv8dMRnSEE8JwPsUSO6sxU7iqk3Ee
         vLrHujFU18VQPeZ1Oau8xO3gIqMSUx8+Pr5pTG+TEY+L9R4f1H09qKkoHJsthbk8TCz8
         nIVQ==
X-Forwarded-Encrypted: i=1; AJvYcCXCqcePfXlLQbzpa9Msy1YkWhVEu+tr8CkXFj3DnjYZkSgSdCbv0BAQoAxw6Ot+qurE5QydOUH97oHCIxf10iU/tXeTdphEGx8zDy97V6M=
X-Gm-Message-State: AOJu0Yxlbirkbo3/yp7nzogPv5F0WBRXJo/7dX4Oyn+jDBKPzbsLzfEh
	cWirPWNQK2+tCkchS6ulM1qk61EUspq/suiKE7K8FUgWAINt7G9A
X-Google-Smtp-Source: AGHT+IE9Se+nkDKMQrGgONUEaVncIJvgJdzx0LUGIN05FVWT4lVSokVzP8PFSjR+5upHKewu5XQwgQ==
X-Received: by 2002:a05:651c:1a2c:b0:2ef:2b65:1d03 with SMTP id 38308e7fff4ca-2ef2b651e57mr76036571fa.49.1721739484651;
        Tue, 23 Jul 2024 05:58:04 -0700 (PDT)
Message-ID: <819ec33e568b54aba355bc2189b3d760ec294fb0.camel@gmail.com>
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
From: oleksii.kurochko@gmail.com
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Date: Tue, 23 Jul 2024 14:58:03 +0200
In-Reply-To: <8fd1cc2c-9dda-4e74-b242-fe8aa862955d@xen.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
	 <8fd1cc2c-9dda-4e74-b242-fe8aa862955d@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

Hi Julien,

On Sun, 2024-07-21 at 09:46 +0100, Julien Grall wrote:
> > +/* Fixmap slots */
> > +#define FIX_PMAP_BEGIN (0) /* Start of PMAP */
> > +#define FIX_PMAP_END (FIX_PMAP_BEGIN + NUM_FIX_PMAP - 1) /* End of
> > PMAP */
>=20
> ... here is seems to be inclusive. Furthermore if you had 32-bit
> address=20
> space, it is also quite easy to have to create a region right at the
> top=20
> of it. So when END is exclusive, it would become 0.
>=20
> So on Arm, we decided to start to get rid of "end". I would consider
> to=20
> do the same on RISC-V for new functions.
I assume that you wrote here just as an example of confusion occurs
because of using *_END but just to be clear I have to leave
FIXMAP_MAP_END as-is because it is used now by common code.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 13:27:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 13:27:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763175.1173416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWFY7-0008Df-Ob; Tue, 23 Jul 2024 13:27:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763175.1173416; Tue, 23 Jul 2024 13:27: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 1sWFY7-0008DY-Ku; Tue, 23 Jul 2024 13:27:27 +0000
Received: by outflank-mailman (input) for mailman id 763175;
 Tue, 23 Jul 2024 13:27: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=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWFY5-0008DS-Mg
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 13:27:25 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4bc316da-48f7-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 15:27:23 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-52efd530a4eso4379816e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 06:27:23 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52ef552c472sm1590132e87.31.2024.07.23.06.27.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 06: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: 4bc316da-48f7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721741243; x=1722346043; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=qbHIYnP0lDWKal8y53CfiMp44GWmTMaVjj8cwQun/Gw=;
        b=GM8kUkAAttxim2R4+27Aa3JxhuWWtj19RgsSlAv2jF+RElp2tLb8fbYWrCm3V7aieC
         XYHObUZIx0jexUw5Xle8ShQShm9F3sHjK/yitPGZNXhZQL6SzATT2dS6tINf6qeyZ9+9
         RrRpMjNqEeqGbjXSCZywOoDdiTxU92o+JQshHUbTZT3kD+21pR43kgAtPLRFU2FUITip
         v4aeKK+IQeWyNtegpMxjK5vdHBeGm7oSrwR4bZNpk0itWrmd9Jwi3D1VMusx4qG3M0Nb
         j0OBA8pSHyI+zE/z5lMOGf+o/kDtcm26xtwwY/smUzh/RUKj2D20ttL0DQJYdXoseCMa
         v2gA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721741243; x=1722346043;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=qbHIYnP0lDWKal8y53CfiMp44GWmTMaVjj8cwQun/Gw=;
        b=QHWIPhCZdG8NF9oYoyorVW8Wejk7mo6T+aP6Wb6GkoWHuf6Lb7002V7ZRoeIrQV1Po
         8KX96aLZnJgr37BUoAIJ73Lfufz6IbloH5V0ICVhGrf4bh3KBjdKRVG6iJ8cj6IXCdH+
         GtK8Y16TstFLbvYPecZsAounEFXTm8F9r4HaguiZrqgNhTBPsNjBR1SrU0Id9V0JB5/D
         GTwO8Vj9RyNecnIuhdP3NgaCvbSJL9b00qWYauUY0XgiLVXPPk0CZAaQycqDOvTQPxyZ
         ZzCKMhSCOrs4iNFzXpWfURwVJe13vR455T5wDLLtrPog6aCLWyDm3hSCZF6C7PXMp58T
         /vUw==
X-Forwarded-Encrypted: i=1; AJvYcCWD57V2pJG6eP09xL96Ita2MS0F7pn4HKVioXXG1wMfOCrKS6pcKtyILSqToog7y2/Y3cq/rg+ItHo4qufIFDK2BCWI5A9EbHZzwpFQGTY=
X-Gm-Message-State: AOJu0YxY8V9qW5fmeIDxfCwS2WnF5inDOq7WRJzgl1h2LglOoQYo4xlc
	ebqZ1DBFpIqZm1H5dhVo4B6SP+y8hCZCMa9L+G7rQU20f9ngu4Oi
X-Google-Smtp-Source: AGHT+IEAkaBsr6P1EDPUl0k4lnzvIIDGHVeLyewF86YssfQGlD/CQl3PcDQcXpUFAjBvagWhnkH3hw==
X-Received: by 2002:a05:6512:3e0c:b0:52f:df:db40 with SMTP id 2adb3069b0e04-52fc407557cmr2337045e87.56.1721741242873;
        Tue, 23 Jul 2024 06:27:22 -0700 (PDT)
Message-ID: <fad84a0af0ce578c0c9cb63131e992957ccd9eba.camel@gmail.com>
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
From: oleksii.kurochko@gmail.com
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Date: Tue, 23 Jul 2024 15:27:21 +0200
In-Reply-To: <8fd1cc2c-9dda-4e74-b242-fe8aa862955d@xen.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
	 <8fd1cc2c-9dda-4e74-b242-fe8aa862955d@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

Hello Julien,

On Sun, 2024-07-21 at 09:46 +0100, Julien Grall wrote:
> > diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
> > index 7d09e781bf..d69a174b5d 100644
> > --- a/xen/arch/riscv/mm.c
> > +++ b/xen/arch/riscv/mm.c
> > @@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
> > =C2=A0=C2=A0 pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> > =C2=A0=C2=A0 stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT * PAGETABLE_ENTRI=
ES];
> > =C2=A0=C2=A0=20
> > +pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> > +xen_fixmap[PAGETABLE_ENTRIES];
>=20
> Can you add a BUILD_BUG_ON() to check that the number of entries in
> the=20
> fixmap will never be above PAGETABLE_ENTRIES?
I just realized that we don't have the information about how many
entries has been used. Am I confusing something?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 13:32:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 13:32:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763183.1173425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWFd7-0001G4-9N; Tue, 23 Jul 2024 13:32:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763183.1173425; Tue, 23 Jul 2024 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 1sWFd7-0001Fx-6u; Tue, 23 Jul 2024 13:32:37 +0000
Received: by outflank-mailman (input) for mailman id 763183;
 Tue, 23 Jul 2024 13:32:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sWFd5-0001Fr-Og
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 13:32:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sWFd5-0006wp-Cn; Tue, 23 Jul 2024 13:32:35 +0000
Received: from [15.248.3.91] (helo=[10.24.67.27])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sWFd5-0004tN-4I; Tue, 23 Jul 2024 13:32:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=hiA1mHwg4T6q3gkmmVOELJ4JXJMYp7gGauj1MueYW2M=; b=JqvNd+jKtdbHkmnpXU3XFtoymC
	VUmO2URYwQBlkiEOVqZvbpWMDUgV3yN54aUrsZTWu8Bcs0iPCzSIy1az4RHu2/UBVihWVZmuX8Y4Q
	dCgdy6UNxyMZATD3WK+tQ/JzRgLGQxnFO8ls4gpXm4JLpnb+G98MDqZ6qV6+Ce1NF4zA=;
Message-ID: <2189b16d-2006-484e-91d0-c3445670b90f@xen.org>
Date: Tue, 23 Jul 2024 14:32:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
Content-Language: en-GB
To: oleksii.kurochko@gmail.com, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
 <8fd1cc2c-9dda-4e74-b242-fe8aa862955d@xen.org>
 <819ec33e568b54aba355bc2189b3d760ec294fb0.camel@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <819ec33e568b54aba355bc2189b3d760ec294fb0.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 23/07/2024 13:58, oleksii.kurochko@gmail.com wrote:
> Hi Julien,

Hi Oleksii,

> On Sun, 2024-07-21 at 09:46 +0100, Julien Grall wrote:
>>> +/* Fixmap slots */
>>> +#define FIX_PMAP_BEGIN (0) /* Start of PMAP */
>>> +#define FIX_PMAP_END (FIX_PMAP_BEGIN + NUM_FIX_PMAP - 1) /* End of
>>> PMAP */
>>
>> ... here is seems to be inclusive. Furthermore if you had 32-bit
>> address
>> space, it is also quite easy to have to create a region right at the
>> top
>> of it. So when END is exclusive, it would become 0.
>>
>> So on Arm, we decided to start to get rid of "end". I would consider
>> to
>> do the same on RISC-V for new functions.
> I assume that you wrote here just as an example of confusion occurs
> because of using *_END but just to be clear I have to leave
> FIXMAP_MAP_END as-is because it is used now by common code.

Indeed. FIXMAP_PMAP_END should stay for now.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 13:33:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 13:33:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763188.1173436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWFe0-0001lV-K6; Tue, 23 Jul 2024 13:33:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763188.1173436; Tue, 23 Jul 2024 13: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 1sWFe0-0001lO-GI; Tue, 23 Jul 2024 13:33:32 +0000
Received: by outflank-mailman (input) for mailman id 763188;
 Tue, 23 Jul 2024 13:33:31 +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 1sWFdz-0001lG-Ar
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 13:33:31 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sWFdz-0006y2-3V; Tue, 23 Jul 2024 13:33:31 +0000
Received: from [15.248.3.91] (helo=[10.24.67.27])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sWFdy-0005A3-Sw; Tue, 23 Jul 2024 13:33: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>
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=SAMK5war2TKO+z4T1Cms+6u448HsnSfz/ule6zcWtyI=; b=ErvWSPM93sg0rgPPd+B9wlGqs7
	SVoSK1b6ckDJ814Ha2WpqwSW4Z2E3m/2Iu4z0YysqL/CyD4A7apaV5Ix88VZQ/QlKuT05KjtFmGKU
	RSZ/xKFi3Jb51t3UjIf919WKhJe7DSs/H/THQa83yfOO/AW+ZowEM6a32YmoD9tDn5Oo=;
Message-ID: <23b6ffc8-6965-4a67-a809-0145821ff5f8@xen.org>
Date: Tue, 23 Jul 2024 14:33:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
Content-Language: en-GB
To: oleksii.kurochko@gmail.com, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
 <8fd1cc2c-9dda-4e74-b242-fe8aa862955d@xen.org>
 <fad84a0af0ce578c0c9cb63131e992957ccd9eba.camel@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <fad84a0af0ce578c0c9cb63131e992957ccd9eba.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 23/07/2024 14:27, oleksii.kurochko@gmail.com wrote:
> Hello Julien,

Hi Oleksii,


> On Sun, 2024-07-21 at 09:46 +0100, Julien Grall wrote:
>>> diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
>>> index 7d09e781bf..d69a174b5d 100644
>>> --- a/xen/arch/riscv/mm.c
>>> +++ b/xen/arch/riscv/mm.c
>>> @@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
>>>     pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
>>>     stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT * PAGETABLE_ENTRIES];
>>>     
>>> +pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
>>> +xen_fixmap[PAGETABLE_ENTRIES];
>>
>> Can you add a BUILD_BUG_ON() to check that the number of entries in
>> the
>> fixmap will never be above PAGETABLE_ENTRIES?
> I just realized that we don't have the information about how many
> entries has been used. Am I confusing something?

I think we do. It is FIX_LAST.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 13:34:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 13:34:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763195.1173445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWFf2-0002Il-S9; Tue, 23 Jul 2024 13:34:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763195.1173445; Tue, 23 Jul 2024 13: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 1sWFf2-0002Ie-PT; Tue, 23 Jul 2024 13:34:36 +0000
Received: by outflank-mailman (input) for mailman id 763195;
 Tue, 23 Jul 2024 13: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=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWFf2-0002CL-6W
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 13:34:36 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d22adbf-48f8-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 15:34:35 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52f0277daa5so3803696e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 06:34:35 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52efaf7bc4asm1273496e87.239.2024.07.23.06.34.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 06:34: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: 4d22adbf-48f8-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721741675; x=1722346475; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=54B/T7kfM8m0KH/qFk8WedHdvr0bVpQONjmGgmlMV4o=;
        b=jVditT5mq9Hm3SjuXc9YxrZORwxx/92f+uGANVE7+1i22tWV884o0i8b9Xa63h4mkr
         6uh1/w7QMBulIZYNEg1f0EyUPLv3z5/1D9zeJlb2OLc+MpdZQULidufxgwPIjws+w+L/
         ik5R0ddsNSHVybuA0kYkYaeEVgHViKQtB7TMJN8mGbeN6SdGlEW58CBqJ1IEJD923CRq
         ct+IXw3VhpLpm7PgzYWSRXXooHUzwNtdGFfk7PHDvwfYrEfdWE1Pb8HA3ka+Et/LRZPE
         UNHfhjkM4SGpvlzg5k6qzX+wgx72gl5fdm4WmWdC/ra0KCw/gKRQxB4rrBv6DA6lZXSu
         wQZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721741675; x=1722346475;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=54B/T7kfM8m0KH/qFk8WedHdvr0bVpQONjmGgmlMV4o=;
        b=nq1lEScuLzfA1aIDMtVJ2jSdPwFcQlCRMHhnrdQYB7b/KCsaOSfN6Z3lLsLx4JAL5v
         IdwQlpr1XEa0REn+BeaahWIKKCNZrM+BhvptHRntAWb/hqQgK3Ak6HPrUijEO9W/diEj
         sd9j7omgU20mAOv84nw0KjM1JREngrOiz7tXdOG7M1bdHcbXvSti1kdlLDbuiu+MK1sS
         tPT8CpCZODSqG2qrGfru0Gh4Mq0XiLHy1I8GKPgh80amc7jxsGX8wmIR1RLi3AASzKG9
         Dy7hrJ9zF/M6PaTOvM5ZEwgGFbPkD/KznB4IjsDzbvMXE8ahnbwbItsmVs4Ojfq1t3/r
         o7Zg==
X-Forwarded-Encrypted: i=1; AJvYcCViriRKto4n1GaGuok/yYhdjlOzuXuEoZsUuz7bQa1rcEY3MmIsv8m3v6kHkNOGH7anftgH0ONZtacqeXqEL4GOhoWczIygoUprHNrLqE8=
X-Gm-Message-State: AOJu0YxlRs59+2NXP4D06DlgdD5sxBINsNdTXe/aMWlQE+CMu2LhRwec
	ay5AMwCsMxzRVPlCLks+9y/TjfXbwrKBRhosTZUNaK4MchBudb0rLMGqmC11
X-Google-Smtp-Source: AGHT+IFmuWcTIT1qopslzTqxTAd/KQraSpEyyn5v7JCvn3+HGjwzcTy4CCKHG3eBEGwRZnHFr1iBEQ==
X-Received: by 2002:ac2:4bc2:0:b0:52c:e133:7b2e with SMTP id 2adb3069b0e04-52efb78ed6dmr7459040e87.35.1721741674680;
        Tue, 23 Jul 2024 06:34:34 -0700 (PDT)
Message-ID: <2f6a6c92ad9f9b1629008cd07a41b8374bd3ed1d.camel@gmail.com>
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Tue, 23 Jul 2024 15:34:33 +0200
In-Reply-To: <215dd01dee2d793e371feab3a42c9d9c51252b03.camel@gmail.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
	 <16648c6c-416d-4205-8d16-38c006251bb9@suse.com>
	 <26a45d85fa22a696b629e602e87d5d95626b77f0.camel@gmail.com>
	 <53e2a88b-8d2d-477a-84cb-5b44af365dbe@suse.com>
	 <215dd01dee2d793e371feab3a42c9d9c51252b03.camel@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-22 at 19:04 +0200, oleksii.kurochko@gmail.com wrote:
> On Mon, 2024-07-22 at 17:25 +0200, Jan Beulich wrote:
> > On 22.07.2024 16:36, Oleksii wrote:
> > > On Mon, 2024-07-22 at 14:42 +0200, Jan Beulich wrote:
> > > > On 12.07.2024 18:22, Oleksii Kurochko wrote:
> > > > > --- a/xen/arch/riscv/include/asm/config.h
> > > > > +++ b/xen/arch/riscv/include/asm/config.h
> > > > > @@ -74,11 +74,20 @@
> > > > > =C2=A0#error "unsupported RV_STAGE1_MODE"
> > > > > =C2=A0#endif
> > > > > =C2=A0
> > > > > +#define XEN_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 MB(2)
> > > > > +#define XEN_VIRT_END=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 (XEN_VIRT_START + XEN_SIZE)
> > > > > +
> > > > > +#define BOOT_FDT_VIRT_START=C2=A0=C2=A0=C2=A0=C2=A0 XEN_VIRT_END
> > > > > +#define BOOT_FDT_VIRT_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 MB(4)
> > > > > +
> > > > > =C2=A0#define DIRECTMAP_SLOT_END=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 50=
9
> > > > > =C2=A0#define DIRECTMAP_SLOT_START=C2=A0=C2=A0=C2=A0 200
> > > > > =C2=A0#define DIRECTMAP_VIRT_START=C2=A0=C2=A0=C2=A0 SLOTN(DIRECT=
MAP_SLOT_START)
> > > > > =C2=A0#define DIRECTMAP_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 (SLOTN(DIRECTMAP_SLOT_END) -
> > > > > SLOTN(DIRECTMAP_SLOT_START))
> > > > > =C2=A0
> > > > > +#define FIXMAP_BASE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 (BOOT_FDT_VIRT_START +
> > > > > BOOT_FDT_VIRT_SIZE)
> > > > > +#define FIXMAP_ADDR(n)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 (FIXMAP_BASE + (n) *
> > > > > PAGE_SIZE)
> > > >=20
> > > > Why exactly do you insert this here, and not adjacent to
> > > > BOOT_FDT_VIRT_*,
> > > > which it actually is adjacent with?
> > > I tried to follow alphabetical order.
> >=20
> > Oh, X before B (just making fun) ... Anyway, my take here is that
> > sorting
> > by address is going to be more helpful.
> >=20
> > > > > --- a/xen/arch/riscv/mm.c
> > > > > +++ b/xen/arch/riscv/mm.c
> > > > > @@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
> > > > > =C2=A0pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> > > > > =C2=A0stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT *
> > > > > PAGETABLE_ENTRIES];
> > > > > =C2=A0
> > > > > +pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> > > > > +xen_fixmap[PAGETABLE_ENTRIES];
> > > >=20
> > > > Any reason this cannot be static?
> > > It will be used by pmap:
> > > =C2=A0=C2=A0 static inline void arch_pmap_map(unsigned int slot, mfn_=
t mfn)
> > > =C2=A0=C2=A0 {
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t *entry =3D &xen_fixmap[slo=
t];
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pte;
> > > =C2=A0=C2=A0=20
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ASSERT(!pte_is_valid(*entry));
> > > =C2=A0=C2=A0=20
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte =3D mfn_to_xen_entry(mfn, PA=
GE_HYPERVISOR_RW);
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte.pte |=3D PTE_LEAF_DEFAULT;
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(entry, pte);
> > > =C2=A0=C2=A0 }
> > > =C2=A0=C2=A0=20
> > > =C2=A0=C2=A0 static inline void arch_pmap_unmap(unsigned int slot)
> > > =C2=A0=C2=A0 {
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pte =3D {};
> > > =C2=A0=C2=A0=20
> > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixmap[slot], pte=
);
> > > =C2=A0=C2=A0 }
> >=20
> > Yet as asked there - shouldn't that be set_fixmap() and
> > clear_fixmap()?
> It should be, I'll rework that in the next patch version.
It couldn't be set_fixmap() and clear_fixmap() as I am going to
implement them using map_pages_to_xen() because:
...
    /*
     * We cannot use set_fixmap() here. We use PMAP when the domain map
     * page infrastructure is not yet initialized, so
map_pages_to_xen() called
     * by set_fixmap() needs to map pages on demand, which then calls
pmap()
     * again, resulting in a loop. Modify the PTEs directly instead.
The same
     * is true for pmap_unmap().
     */
    arch_pmap_map(slot, mfn);
...

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 13:36:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 13:36:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763203.1173456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWFgg-0002tU-5e; Tue, 23 Jul 2024 13:36:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763203.1173456; Tue, 23 Jul 2024 13: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 1sWFgg-0002tN-34; Tue, 23 Jul 2024 13:36:18 +0000
Received: by outflank-mailman (input) for mailman id 763203;
 Tue, 23 Jul 2024 13: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=W1nq=OX=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sWFge-0002s4-8j
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 13:36:16 +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 875b7628-48f8-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 15:36:14 +0200 (CEST)
Received: from MN2PR06CA0003.namprd06.prod.outlook.com (2603:10b6:208:23d::8)
 by MN2PR12MB4061.namprd12.prod.outlook.com (2603:10b6:208:19a::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.19; Tue, 23 Jul
 2024 13:36:10 +0000
Received: from BN3PEPF0000B06C.namprd21.prod.outlook.com
 (2603:10b6:208:23d:cafe::1b) by MN2PR06CA0003.outlook.office365.com
 (2603:10b6:208:23d::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.17 via Frontend
 Transport; Tue, 23 Jul 2024 13:36:10 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B06C.mail.protection.outlook.com (10.167.243.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.5 via Frontend Transport; Tue, 23 Jul 2024 13:36: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; Tue, 23 Jul
 2024 08:36:09 -0500
Received: from [172.23.111.139] (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, 23 Jul 2024 08:36: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: 875b7628-48f8-11ef-bbfe-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CqbbPrcwjf1S6npgTFubicbBXPoakkr1UueaGZnHwpUBwfy7Hr+81IPj9gfteDl5WXF6gTB7pZgOPCzObv3ImNNdr/Lu5n4+6Acyy5CGY9RroxHdI6tMhZgIM6/3FKl9OW714D/2KKNvcCDO74BpMPzGuOz43TKx1r42pHtSxSh61n5Zv7TBx7fxLNA1eE9mxrZSFofAatLmjIQqlIJ6fRQxTPavQ5ZPwQPERuTnJ7mNBiYMb7ki7qYGGXfbArFyP0rUmtodsrOMTMlrsGWbHBvDsiA5DNC1xqrwjjnX5y6GSAL6WXI1+gIw700XHpltWePqPiPwhHMnlyN8eKd5og==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=o8VthCRXraIiNFbEqzH/+77YKs+ZZNodAJVfWtzplKE=;
 b=LD0rcvOIfc8jB3/mUU4asLcwV0kxSsNl8HYolYNR4lyTJqsvscuK3ktb+Dr0L+BCmnY+4yEs2PK5YvngCPpYrcsQwGG84mP6PQMoo4yocSYaRQ+GFhde1A3WhIWok7qcEFP0NwNCJP4xzYbN3xEjSdZzG1T5YeLK4Shfwq1QOiLeNvR6HrmdDz9TOlkUGVkKmYU1rLMf/1B73pzfzpfoODvV0VxjJZ6Jaucqt8oN6lUkKXz37kPSD9FtwnyZ63WCKdURgdz5JXEZxhCfnu6iSTRayeqW3wPtsfTltZz6ald6dXYF+TSiLdc4sdqBdfZMuVOi7NB88BNgoGo93VzysA==
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=o8VthCRXraIiNFbEqzH/+77YKs+ZZNodAJVfWtzplKE=;
 b=rvkKm/+wyv62OD2F4Ov6zGyuDlHrj30DjxOsQHiI5hoqHMytT96uJb0X4cxk3IrIJOYfVfh82hFA/rjnJ3sAVHLv+YpHhXKzYm4sIq/UG7tK7sFN91SLi+2+tFkCDFLBFuz3cLpNEXuF66m8WxSUaLN+ZZzAgesoH5AyhnOkSs8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <ac1bd263-e9b4-4bc6-a9be-649b075add46@amd.com>
Date: Tue, 23 Jul 2024 09:13:05 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 2/6] tools/libxs: Rework xs_talkv() to take xsd_sockmsg
 within the iovec
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-3-andrew.cooper3@citrix.com>
Content-Language: en-US
In-Reply-To: <20240718164842.3650702-3-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: BN3PEPF0000B06C:EE_|MN2PR12MB4061:EE_
X-MS-Office365-Filtering-Correlation-Id: b63a424d-f871-43ca-a382-08dcab1c69da
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?VWh0eU91RjVRdUtCNlIvZUZxT0Iyc0xja3dhelZuT2RLTTNaV2FLb1hhU2VX?=
 =?utf-8?B?SmVud09rSTZCd2UzRGltMkU2ZXlqaGI5NXhEeEVxZzFFQUJnRXJxS09ZS05l?=
 =?utf-8?B?RUhuSGJGRXhZT1hPbnF4VmVKYTRBekZwMzFldzVTWU9Fc29jREZPQlk3eURn?=
 =?utf-8?B?TjFJUmtROWVYYStaZWJhUEhyS2hxOEJLQzB5eG40TVE5ZE5KeGhRSlE5Y2Q5?=
 =?utf-8?B?UUFZT3A4SUV2bmlmVkpXaGZqZVVzWllvR0p4OGduZ3FlWHZzUTJ3NCtWaWk0?=
 =?utf-8?B?WktNbzNTKzZkUG1NUjkvUTBJNjhQWWU3N0s3TDQyZnh5NUoraEFyYTRqL09r?=
 =?utf-8?B?MTJQMVlBNXF5T0FBY3BhWlZqSkFlS3FnSmgvNFA0YUl6VHk5eW9YdE93UkpT?=
 =?utf-8?B?eWJQUXdVVXJjcExrUUZBOG0wUEVHcGtNSy9OZkpuNGNHRVJtNGtabnQ4czFx?=
 =?utf-8?B?Tm5qRHZyVWlaR2tLb0tWc2JvbHNXYWZJSFhMeUtJbitCeDlaaUFSeHNhZEZj?=
 =?utf-8?B?VlROUzVaZkRzbEpWUklEYVJCQ1ZxT1ZTOEM5UERYK3JuM3lGOW1kMlJkWGI2?=
 =?utf-8?B?WVZoVHdEK2RCR1VTdFJxUzRpRWNmTWVYWU5xZUlwZVVkN3VoYjNibWMraTZO?=
 =?utf-8?B?MVVvUHIxckF6WmtUd1ZPR3NEa2ZQTVZUbmIyVVl1aUdSZlhHaG4vcHRCNmlU?=
 =?utf-8?B?MGVXOEtyellubE9KbCtGZ3ZySnlJOXdTN0FpUUlWYW5XeDJoK1NVcUROeXZo?=
 =?utf-8?B?RkNPb3FNL0dFaTRiSVllMFZCK0k0OEcrRjgwdzR5NGluOG94MjFJZ2Y0ajVN?=
 =?utf-8?B?bjBNT2FteWh0bUxYV0dNNURLNVo2SVJxYUtyYUFDVFRraVBVbFZrN05jRG5X?=
 =?utf-8?B?WDJaVU1JZlVZUDQwNDYvRkM1Und0TGlaU3ZmQjZvUUtTUkNZM1NtUG8rNDhG?=
 =?utf-8?B?Y0s0RzhPYnUvcGNRZHVkamZzNE93dXJiZjhkaDdCVlpNbXphVTVNQlgyRHdX?=
 =?utf-8?B?U1psbHNIaHBTc2tiUm9GRWhsYy9pQVlFbjJIcmFJZTdKa0FodmlVVE9GZXZl?=
 =?utf-8?B?RDFDTExmQ0JsSU03eVFFRHMvYnJydXByQ0J3NllHUFZHLzJCVi8wMmkzaW1F?=
 =?utf-8?B?ODdZOXRmNjVEYUJuWmxsalkzNStiQWhjMWhYTDkyZDVpVE1GWkdWY0l5Visr?=
 =?utf-8?B?bjRiL0V2WXRJYlBCSzVBVHFWbDFzWUlmMjJTVzFMdklZS1ZkenJuYisvUlVx?=
 =?utf-8?B?bm9OZ0tvR2xqSDU1SGtram1hYTkxcnBDOVhrNHV3bElUTkZPeGdBSlNSWmcz?=
 =?utf-8?B?RDF2Z2o5OEQrN0swcHdjQmxTOGtaTGc2NjZneUxXSG9ZdzB4cTBTSDloeWY4?=
 =?utf-8?B?ekRUOHVvaWxYdjdqZHpySlhHSWw3UE9qQVRRSWRlNEVBazhRM2tiTWltUnRq?=
 =?utf-8?B?N1dLOEMrWks1NE94SlpUSlIyRlZlekgxTFVDSGZvbEJwM25hZ1hKVlh1WU9V?=
 =?utf-8?B?dXVXWXN2RjVZdE9nMlY5TFJ5UGhSS0xRNHY4TjU1L01lL214RncrSjBuaWFT?=
 =?utf-8?B?MHh3cHA5YWNRTnlLNlJLK3BoVzk4RHhYaTMreTJsNFdqdlE1TWNVT3FJNGVH?=
 =?utf-8?B?NjJTdW5JT1lEL2VtRTF6eDVUaXhmbk91dVNCLzVKUWVFMHQ0dkU2V2ZRN1g1?=
 =?utf-8?B?UzhxcUlXU0M2UW5tdHNjaEZ3TkZPemNpU0xEc2NGR01EVkt6c09YaFo2NDJD?=
 =?utf-8?B?YkYwLzBMU0dIcWdrYXdLaXVzWkx4NFBSSVJ5STI0TUhpdnVVUzJOTktDNldZ?=
 =?utf-8?B?UjMxTU5LdjBvRnNHZ2NEUFhoYytyLy9uWkwwWnNuVXBGMEQvUWYySzNyOTBU?=
 =?utf-8?B?YzRLSEZGVDU4eXJaZWsrZ1M2UWVDcUN1MTh0VTI3d0pqRzdoZFNBOVFoMVZ1?=
 =?utf-8?Q?pUE+d3wpcwtXsu7d0gGYka80YwF1MH78?=
X-Forefront-Antispam-Report:
	CIP:165.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: 23 Jul 2024 13:36:10.1419
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b63a424d-f871-43ca-a382-08dcab1c69da
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B06C.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4061

On 2024-07-18 12:48, Andrew Cooper wrote:
> We would like to writev() the whole outgoing message, which is hard given the
> current need to prepend the locally-constructed xsd_sockmsg.
> 
> Instead, have the caller provide xsd_sockmsg in iovec[0].  This in turn drops
> the t and type parameters from xs_talkv().
> 
> Note that xs_talkv() may alter the iovec structure.  This may happen when
> writev() is really used under the covers, and it's preforable to having the

preferable

> lower levels need to duplciate the iovec to edit it upon encountering a short

duplicate

> write.  xs_directory_part() is the only function impacted by this, and it's
> easy to rearrange.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 13:38:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 13:38:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763213.1173465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWFj1-00040U-M0; Tue, 23 Jul 2024 13:38:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763213.1173465; Tue, 23 Jul 2024 13: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 1sWFj1-00040N-JR; Tue, 23 Jul 2024 13:38:43 +0000
Received: by outflank-mailman (input) for mailman id 763213;
 Tue, 23 Jul 2024 13:38: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=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWFj0-00040F-0W
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 13:38:42 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df66c63b-48f8-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 15:38:41 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52f024f468bso3423194e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 06:38:40 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52efd42770dsm1199633e87.196.2024.07.23.06.38.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 06:38: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: df66c63b-48f8-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721741920; x=1722346720; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=QUcmsYiwqBfNIALGEdCHYjpJBIHP/Xn/H3+qY1u5Tb8=;
        b=i+1sBk3GeEgvBaA3FONOmR1+MqJjQ6sNcu4IgVlJfM4e48YZgd2rDufQ6ABMDe4+pC
         GwVxPu0POix+Lw21FrTco6XqstSGgKBhFkWZYJT4hb50Lcc6VNWxKUpTVugbn8hx8tXd
         ZZXGEr6Nm238owuVmwJtYZDQvm2Gn5fs4bAtfmIksSgnXMnmtC2otAuJ6VAlJXLipCYU
         eWL8k2Gw8HziHobv/MeiF2TuuwT/eGGEIWPTg0W+2OL7VwpTlebelG0C1VeOPRK5/Bhy
         xZFlmcbFJS+8sGk7CYONX6Yu3vIRx2nxamZmN4qM/MF3gEEtPP7ptf3hul0hNKPkHatt
         LEuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721741920; x=1722346720;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=QUcmsYiwqBfNIALGEdCHYjpJBIHP/Xn/H3+qY1u5Tb8=;
        b=TUldZZ+UzxdXhX/1+76iOv3yNqwqg3FGmJxx010341LbIt7gk7if8bNhqz8SvnFT9H
         uxv3K4QXXWFxH5zNvYg+GVqQ2dAbGuxt1dYH7XKmDHVxmSBnZK44TE1e753AQAlJhXo0
         vqnfYWL3zUdohEjS1IoRIizOrU3qUBHMoPQ3A5GxVL+dsFQ/Gq8PaZ+Z0HdXLR0/319R
         YXjK+luSrlwfPee3cehtS0elzPI3noI/4lteVlKOT+V43w5f8jhrNlW4eKEOfwNNuPFD
         ajG8T5+4WzowV6XPuF/aiVNF+vBu2/XOyfX9jhrGXIby7tt6h1QRnocz9gZyxa5slWnN
         lCjA==
X-Forwarded-Encrypted: i=1; AJvYcCVi9EVxctn7D2AX1Zr2MwbqTnSoC3a2ouiKXWWEkcNksXjzCLZ4DkRDIL0eSJNDUAexCBZsSTQRinFHgGO1GWZlo2WpCunrFjkJEOkig6Q=
X-Gm-Message-State: AOJu0Yy7vgOKU3SIiis1EzO5izC++UpYQvaN7aK6N/89bOb0HmhgfDwk
	doMFi3Ls3x3PBeN8GFkvndSFgqlySnF26yRopBANkWJxkd75Jl5z
X-Google-Smtp-Source: AGHT+IFzXBJjzkjr1sGbrjvYoFNp+OY0ndHil4kKBg+mXCNFs8oX0SZnmeJsQ9HK96ljzcVUPxfOeA==
X-Received: by 2002:a05:6512:ac8:b0:52e:7f16:96b6 with SMTP id 2adb3069b0e04-52efb837fcfmr6606298e87.37.1721741920099;
        Tue, 23 Jul 2024 06:38:40 -0700 (PDT)
Message-ID: <d20fd6488bfde555da5e9857cbdf2330903dbe46.camel@gmail.com>
Subject: Re: [PATCH v2 4/8] xen/riscv: setup fixmap mapping
From: oleksii.kurochko@gmail.com
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Date: Tue, 23 Jul 2024 15:38:39 +0200
In-Reply-To: <23b6ffc8-6965-4a67-a809-0145821ff5f8@xen.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <b1776fb20603cb56b0aea17ef998ea951d2bbda9.1720799926.git.oleksii.kurochko@gmail.com>
	 <8fd1cc2c-9dda-4e74-b242-fe8aa862955d@xen.org>
	 <fad84a0af0ce578c0c9cb63131e992957ccd9eba.camel@gmail.com>
	 <23b6ffc8-6965-4a67-a809-0145821ff5f8@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-23 at 14:33 +0100, Julien Grall wrote:
> On 23/07/2024 14:27, oleksii.kurochko@gmail.com=C2=A0wrote:
> > Hello Julien,
>=20
> Hi Oleksii,
>=20
>=20
> > On Sun, 2024-07-21 at 09:46 +0100, Julien Grall wrote:
> > > > diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
> > > > index 7d09e781bf..d69a174b5d 100644
> > > > --- a/xen/arch/riscv/mm.c
> > > > +++ b/xen/arch/riscv/mm.c
> > > > @@ -49,6 +49,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
> > > > =C2=A0=C2=A0=C2=A0 pte_t __section(".bss.page_aligned") __aligned(P=
AGE_SIZE)
> > > > =C2=A0=C2=A0=C2=A0 stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT *
> > > > PAGETABLE_ENTRIES];
> > > > =C2=A0=C2=A0=C2=A0=20
> > > > +pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> > > > +xen_fixmap[PAGETABLE_ENTRIES];
> > >=20
> > > Can you add a BUILD_BUG_ON() to check that the number of entries
> > > in
> > > the
> > > fixmap will never be above PAGETABLE_ENTRIES?
> > I just realized that we don't have the information about how many
> > entries has been used. Am I confusing something?
>=20
> I think we do. It is FIX_LAST.
Sure. We have FIX_LAST. Thanks

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 13:42:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 13:42:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763220.1173475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWFmo-0005TA-3l; Tue, 23 Jul 2024 13:42:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763220.1173475; Tue, 23 Jul 2024 13: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 1sWFmo-0005T3-12; Tue, 23 Jul 2024 13:42:38 +0000
Received: by outflank-mailman (input) for mailman id 763220;
 Tue, 23 Jul 2024 13:42:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W1nq=OX=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sWFmn-0005Sx-Lw
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 13:42:37 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20612.outbound.protection.outlook.com
 [2a01:111:f403:2418::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6ae80639-48f9-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 15:42:35 +0200 (CEST)
Received: from SJ0PR05CA0057.namprd05.prod.outlook.com (2603:10b6:a03:33f::32)
 by SJ0PR12MB7082.namprd12.prod.outlook.com (2603:10b6:a03:4ae::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.20; Tue, 23 Jul
 2024 13:42:30 +0000
Received: from SJ1PEPF000023D6.namprd21.prod.outlook.com
 (2603:10b6:a03:33f:cafe::5e) by SJ0PR05CA0057.outlook.office365.com
 (2603:10b6:a03:33f::32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.17 via Frontend
 Transport; Tue, 23 Jul 2024 13:42:30 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000023D6.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.7784.5 via Frontend Transport; Tue, 23 Jul 2024 13:42:30 +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, 23 Jul
 2024 08:42:29 -0500
Received: from [172.23.111.139] (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, 23 Jul 2024 08:42: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: 6ae80639-48f9-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q94Z90PHb9gmPJcmkyJAfnOOMBHh4eyoudGpVOT2kyE5nXVHt5GBruiJnuZn0vkHE1djQVNArfNI9NQyLPWF2uz2XvnHaxUptU+BNFwhaleGgGhiQoRI+Y3Igpdfr7uP3EFAWUzZ8XUIvrXq+Pmq2valPOBus04uiL6unXlatMR6yGCn8VwAmsIv7eAkb0Tcs+bg42S5/Bz7T49sVEdLuQDH3k/qjZ5P/7NR5otKbft7RXdcbzVb3R73ilDddIIn9uUtNOdb43Xoi8VMxpLmnUSV9nXOH4b0UdORi09K4miTT6TZKFolVGy1/09w4fmDZaPPLKxULv/mvyx6gxsVAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YZOauvET1w9e7dNi8vg7Bmdrxj+nalFrRhfrFnkc3tM=;
 b=yEDyOs9ioy/kb22Hb1L1+QfmxtvxruRHIOpMWM+0TYyojmymdsea9MVASJeHwbYP0HKb2tWQdrkQFhs0rBVpUqMb1M/9WCLBAxflEOmrWy9UaDlUxy843xKIY/fxNOHlq3bQWt2iPlOjSlBe4T+Ll36AeApkT33DbDoi3xKCQk+kLfmC7dT+rmhv+3P13wKShpNyvYfVHZT3PIVKyp2gtq1qWUzmPjEsqyby2hlOQ/HmgBLHJKoQu/v2DPVBPMTsdgHCafs0HVsVZH0RWzfPDpgbunUvGar7nwTnuSwLcWGSDL6ldZXbwzIJfj7bOK4NOTyYF1vdDtF9WEl/nGtjzQ==
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=YZOauvET1w9e7dNi8vg7Bmdrxj+nalFrRhfrFnkc3tM=;
 b=3j1H0Kz/aFpIUjgC7yYpEYE9CZC8lzngmlY5KxQ6VzfIxaNA9J6t81P6nWxIygNKcjDuz2kQenRHxnmUHyjHY66v2lqD+YFE1h7akQVi+faftNS1a2G0UPyiLJesSXF8iAyyffDjg0C0vdX4vdxNlBem7oI2LEMCL0lvt391SpI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <f1ccc312-9237-4cb2-8dc4-294d8c61ebdb@amd.com>
Date: Tue, 23 Jul 2024 09:19:20 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/6] tools/libxs: Rationalise the definition of struct
 xs_handle
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-4-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20240718164842.3650702-4-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: SJ1PEPF000023D6:EE_|SJ0PR12MB7082:EE_
X-MS-Office365-Filtering-Correlation-Id: d318b0a9-8b91-45a0-c0a9-08dcab1d4c9f
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?MTlFbFRPS0t3WUUzM0QxVWJQWlJaekJ5T1RkTkplY2l4OFVmNGFzNk5EclVh?=
 =?utf-8?B?ZktsUUM0QXNCZXMvUmhnZkpoL1ViNCtTTmMwUWdXOTVraEIrZENNeThtUjdP?=
 =?utf-8?B?ZkJNWC9YWXQxVE5PcGgwQWZTWERQRFhEeWVYMWh6T0xsM2dhOHRncVRhUjMy?=
 =?utf-8?B?TTd0YzdmU0d4K3hEV3AwS2RVbFBrUjlTb3NDMmpvMWVhai9NTS9NQmhja0sy?=
 =?utf-8?B?MnZKY2E0eE1qaEFFeXhReWwzekZDOXo4OEk0aDU0UytBSWtrczFpSFlWdWZ3?=
 =?utf-8?B?RDRIOW5nV3BiQjhubEIrc2NXRmkwUUVKS1JxNlN2RFdjYTBRZUh6bDNSdlBQ?=
 =?utf-8?B?VkpIb1pXTC8zcGlRdWpnR1diMkNLVXJIN2Y4dzlBRTdKenVCSTZQTDN6em5m?=
 =?utf-8?B?Y1hSY0R3TS9OYmk0b1N0T3RsNTErcThrVWxuazRNOHJiQlR1S09yeE1VTGpj?=
 =?utf-8?B?OWsvTVZnZlpsVjB5ckdlREFNUkVoc1p1VTlIckpJVnE2VUpQamNXd25PaE5R?=
 =?utf-8?B?OTJCMjRoeWRGc3Zrb0tPNU8vRExIRVJ2RFZTUnpPbU1SSnJ0T2phWDY1eEVE?=
 =?utf-8?B?cG5uZllaMGRVQy9lNE1VZmg1K1kvMjlSQnZRSnk5YjYxU2ZxQ2MzS2JOenIy?=
 =?utf-8?B?Q1F5bFdJZTVxM3hxK3dMRHpXdzRyalJ5UFRCVzNHamVXWVpWdlFDYloyNGNw?=
 =?utf-8?B?MzhEdHNzb0pTZzhibmNaTng2eTdtTzBqeStQL2NJNlV6TkRsOUZZb04wWE5G?=
 =?utf-8?B?R3V4MExiZTVNMnZkMHg1OW9KT3BkL2RHRGFLTHR3R3JHRmdpZHpRREVqWG42?=
 =?utf-8?B?eitwRFh5WVR2L1VxZkw1K3FWSXhmMFg5TkFBbjdYWXpheGh0bnNiYjNSWkxr?=
 =?utf-8?B?Z3RkRHZmNGlaZmhxYUZ2SFpTQnE1NS9LSTBVTW5tZjlUUTdDR282ZURWUU5W?=
 =?utf-8?B?OHJxVXNWN0I5akFDRDlzK1Y5TXZYbnVyaS9xZG5EZ2hScDFkMkg2S0pIV2Z0?=
 =?utf-8?B?QjBNZWp2WWpDMVlQdjlZemFOTEdkMGUzL0tSNVc5VzlERU52WWpaWXdHdGlC?=
 =?utf-8?B?dE1TRGRUU2JqNnZWby9vZHZFcmpuSEI2Z1BzbUUvc0JSYjhtRjlROVVmaG1S?=
 =?utf-8?B?MXdTME16OUl3VnhCWmo1ZXhyWCs0UDdVQWprVTljR0Raa1JsVlRpSUJrZS9N?=
 =?utf-8?B?QlVGeHNEYWRCMUlxWURyUFZHWldvR3VlS0Iyc3k3VjNtSU1vVG5YajZiM25z?=
 =?utf-8?B?L3YvZHM1M2QyMkZxK2x0UnNmbncrbUxOSHBRTnh1YW1JcGNFREl6UGlnSWFt?=
 =?utf-8?B?VmV1a2hBeUZzQ0ljY0NLdmRqeHphRDJ0N2tJeFJQbSs5eTNRNHVuUGZyOEx6?=
 =?utf-8?B?djdsSnRWOTdJYTRuNXd1dlpablQwVEM4Z0lzUnpzWmtTdUJzZndIU1I2UmRl?=
 =?utf-8?B?ODZsS21oM3NpTit0TzlmYUYxTUhoMXBBNE1XWWROM0IzdnYxOG1jUlgzSlJm?=
 =?utf-8?B?eGlTYXRCTTdkWGp6VkszeERYbVl0bUw5L3czTjh1UHlISzRWWmVnTU5mK0lR?=
 =?utf-8?B?SjhOL25EV3BsTVhwNXMyK0pYVFRwb2RraCtjZlhuY1NRbisyQS9xMFdsa3NC?=
 =?utf-8?B?YzZsd1ZxRkRZRFBnbkp0czBOWFM3WWVQbFUrclYrTGt4SG5yMng2MFNYUWxz?=
 =?utf-8?B?VnJaMEVBZmRpelU0YlhFYy9zYkRkOUxQZEwwQjlUL1lDenZrZkJZNjBFWUo4?=
 =?utf-8?B?T01pQjBpQUVET2RodUFTRHYvd25uVjRNYlNQelFzdTg3ZzA2QTJHRGlBUENB?=
 =?utf-8?B?LzZGckE2NVFtaDRYQ0QyL1c2aXZJRkE1WDA5T25URWZVQnhzd0pnV0h1bzkx?=
 =?utf-8?B?eU9LTStaMFlWRXpDOWQ4aXBjRmxYMkl2MWp0YUU4Q0g3bmtRWHRqREhiT1pF?=
 =?utf-8?Q?rvY76sOQwn1imA7Kinq1MBYPYDXylETy?=
X-Forefront-Antispam-Report:
	CIP:165.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 Jul 2024 13:42:30.5675
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d318b0a9-8b91-45a0-c0a9-08dcab1d4c9f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023D6.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB7082

On 2024-07-18 12:48, Andrew Cooper wrote:
> Right now there are two completely different struct xs_handle definitions,
> depend on #ifdef USE_PTHREAD.  One is especially well hidden, and often
> escapes updates.
> 
> Rework struct xs_handle using some interior ifdefary.  It's slightly longer,
> but much easier to follow.  Importanly, this makes it much harder to forget
> the !PTHREAD case when adding a "common" variable.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 13:47:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 13:47:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763229.1173485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWFrM-0006Ux-KW; Tue, 23 Jul 2024 13:47:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763229.1173485; Tue, 23 Jul 2024 13:47:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWFrM-0006Uq-Hu; Tue, 23 Jul 2024 13:47:20 +0000
Received: by outflank-mailman (input) for mailman id 763229;
 Tue, 23 Jul 2024 13:47:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ruWa=OX=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sWFrL-0006Uj-8n
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 13:47:19 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 13098e91-48fa-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 15:47:17 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-52f01ec08d6so3198655e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 06:47:17 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c8be3d7sm551225366b.140.2024.07.23.06.47.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 06:47: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: 13098e91-48fa-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721742436; x=1722347236; 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=41wLimo+GAUwzY99gBr6y7OCaz6N2LtCF8X53iEUQPM=;
        b=iApbp7XOCgbQR8l4ZkjbSvMmk7QORJiooS8JjQCa2D4vVpjXsOo4CBUXmNQcgOGCVB
         vxm1OwepNw40Re9eve1VhJPRbAkKyL9K38CMfj/fM82DvDo0Xy1DN4OZqT6HZjgTit4Q
         XqSKpVeRL7tIa2sm974JWa+mUCywPCvWM2UQ0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721742436; x=1722347236;
        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=41wLimo+GAUwzY99gBr6y7OCaz6N2LtCF8X53iEUQPM=;
        b=fKb0K3VJZmUxGyOohVjpb/TKEMVTn/cbhSDb0Q8mUQMDQbF3i4mG/V4HfQGmUkwEYO
         7Guvbnlp5gcaMwUWpVp9wVsnaH7knpbrXG8psnewBM42qoWrKQmrUD6Fa59AjGCIROPU
         2IRYDBVRts1KxKuL8LD0lWsmJvINIVDUPga2NcDmjbK14wHJ1BXk4p8nH74vy6aB+HOj
         iTGKKPMDeYUvxjFiQ3i78q9z8iVUns1kDwXRPBXpXlAq78g0YgdoVUsWm7PluioZ0i6Y
         BHLAd4VIS8Cki3l/9X+Wv9ChELmgDwFt57+LZB/Kt880v8ZXFwuRqr8Uy6YxQl32T9JU
         IPTw==
X-Forwarded-Encrypted: i=1; AJvYcCULL2L1BnYmV1ez1vu8Sk/3acrRXnUWIJnhM6qUwjYf3ej3UUSTTNARQsbnuTAZnKjzShEdKK5FdySBVSZW2qIXsme3qIlMEI2zDiir8zI=
X-Gm-Message-State: AOJu0YwKI9NRp4DNeAp2oVOMLmXqWyubnvsvBN37B/sLzJ1YXGAH/bxC
	5/2qmHqDsrZ0vrPCRvawCOWxVeKKmQUP0LsAWThFzQpIP3gSjxF5G2cItP/G5NI=
X-Google-Smtp-Source: AGHT+IHiq6vw4McMRltRCNCB6huqDqybR+36+mKNH+f0I+lPaCgCC71mr8ZGzhfqo3Rx8nL6TeArIQ==
X-Received: by 2002:a05:6512:2211:b0:52e:76d5:9504 with SMTP id 2adb3069b0e04-52fc403d8dcmr2159669e87.3.1721742436389;
        Tue, 23 Jul 2024 06:47:16 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 23 Jul 2024 14:47:13 +0100
Message-Id: <D2WYR6RSF2NH.3FCEH00B4ZRZ2@cloud.com>
Cc: "Jan Beulich" <JBeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, "Gene Bright" <gene@cyberlight.us>
Subject: Re: [PATCH 1/2] x86/efi: Simplify efi_arch_cpu() a little
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Xen-devel"
 <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.17.0
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-2-andrew.cooper3@citrix.com>
In-Reply-To: <20240722101838.3946983-2-andrew.cooper3@citrix.com>

On Mon Jul 22, 2024 at 11:18 AM BST, Andrew Cooper wrote:
> Make the "no extended leaves" case fatal and remove one level of indentat=
ion.
> Defer the max-leaf aquisition until it is first used.
>
> No functional change.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> CC: Gene Bright <gene@cyberlight.us>
> ---
>  xen/arch/x86/efi/efi-boot.h | 31 ++++++++++++++++---------------
>  1 file changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index f282358435f1..4e4be7174751 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -738,29 +738,30 @@ static void __init efi_arch_handle_module(const str=
uct file *file,
> =20
>  static void __init efi_arch_cpu(void)
>  {
> -    uint32_t eax =3D cpuid_eax(0x80000000U);
> +    uint32_t eax;
>      uint32_t *caps =3D boot_cpu_data.x86_capability;
> =20
>      boot_tsc_stamp =3D rdtsc();
> =20
>      caps[FEATURESET_1c] =3D cpuid_ecx(1);
> =20
> -    if ( (eax >> 16) =3D=3D 0x8000 && eax > 0x80000000U )
> -    {
> -        caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
> +    eax =3D cpuid_eax(0x80000000U);

Why this movement?

> +    if ( (eax >> 16) !=3D 0x8000 || eax < 0x80000000U )
> +        blexit(L"In 64bit mode, but no extended CPUID leaves?!?");

I'm not sure about the condition even for the old code. If eax had 0x900000=
00
(because new convention appeared 10y in the future), then there would be
extended leaves but we would be needlessly bailing out. Why not simply chec=
k
that eax < 0x80000001 in here?

> =20
> -        /*
> -         * This check purposefully doesn't use cpu_has_nx because
> -         * cpu_has_nx bypasses the boot_cpu_data read if Xen was compile=
d
> -         * with CONFIG_REQUIRE_NX
> -         */
> -        if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
> -             !boot_cpu_has(X86_FEATURE_NX) )
> -            blexit(L"This build of Xen requires NX support");
> +    caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
> =20
> -        if ( cpu_has_nx )
> -            trampoline_efer |=3D EFER_NXE;
> -    }
> +    /*
> +     * This check purposefully doesn't use cpu_has_nx because
> +     * cpu_has_nx bypasses the boot_cpu_data read if Xen was compiled
> +     * with CONFIG_REQUIRE_NX
> +     */
> +    if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
> +         !boot_cpu_has(X86_FEATURE_NX) )
> +        blexit(L"This build of Xen requires NX support");
> +
> +    if ( cpu_has_nx )
> +        trampoline_efer |=3D EFER_NXE;
>  }
> =20
>  static void __init efi_arch_blexit(void)

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 13:50:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 13:50:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763237.1173495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWFuh-00088w-2J; Tue, 23 Jul 2024 13:50:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763237.1173495; Tue, 23 Jul 2024 13:50:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWFug-00088p-Vl; Tue, 23 Jul 2024 13:50:46 +0000
Received: by outflank-mailman (input) for mailman id 763237;
 Tue, 23 Jul 2024 13:50:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWFuf-00088f-Mz; Tue, 23 Jul 2024 13:50:45 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWFuf-0007Kz-G0; Tue, 23 Jul 2024 13:50:45 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWFue-0003Zw-VG; Tue, 23 Jul 2024 13:50:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWFue-0007vH-Uc; Tue, 23 Jul 2024 13:50:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=qdAGfAyVrvHxnOftmDdy0y+KR57jGsrs6AD4E43br68=; b=csGOjR93UVOOAC4Ha39Hsj9U/7
	GqVkRMZFAk/NGJy1spmXt+iF9m/b0+i7iCVYjhnDQOwanVZ0PLVQhyN4yhtZPRN70J8DXa+iZlT2g
	gM07dq1wGPZS5B60W9uk+F+O4LhbWC/Y0ScMgMcf8IT/Jt13WyilKHx738utXp/ARFSM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186964-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186964: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=f96298d75cebfe2a7707157ed644eb86bf6d46ca
X-Osstest-Versions-That:
    ovmf=46eb0ca29bf6bd84381af8506e0d9b1755f767d9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 13:50:44 +0000

flight 186964 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186964/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 f96298d75cebfe2a7707157ed644eb86bf6d46ca
baseline version:
 ovmf                 46eb0ca29bf6bd84381af8506e0d9b1755f767d9

Last test of basis   186962  2024-07-23 08:46:52 Z    0 days
Testing same since   186964  2024-07-23 11:11:30 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dun Tan <dun.tan@intel.com>
  levi.yun <yeoreum.yun@arm.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   46eb0ca29b..f96298d75c  f96298d75cebfe2a7707157ed644eb86bf6d46ca -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 14:01:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 14:01:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763248.1173505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWG4c-000211-Vo; Tue, 23 Jul 2024 14:01:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763248.1173505; Tue, 23 Jul 2024 14:01: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 1sWG4c-00020u-TA; Tue, 23 Jul 2024 14:01:02 +0000
Received: by outflank-mailman (input) for mailman id 763248;
 Tue, 23 Jul 2024 14:01: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=ruWa=OX=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sWG4b-00020o-VI
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 14:01:01 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fdf4164c-48fb-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 16:01:00 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5a2ffc34722so2032415a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 07:01:00 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5a30c2f869dsm7563815a12.65.2024.07.23.07.00.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 07:00: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: fdf4164c-48fb-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721743260; x=1722348060; 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=HTEsuhPOmRfr2lCnPmIdNGkEYqjpmr50FbnJaOCfhY0=;
        b=OCPlnEA1rHy599FxAE2YYP/XL7YYSqGmRHslEknE1MYGCwZLEUtvO+8RNDv6dJBT8I
         Oqf19mA8NcwuEJnVtPDabBdkfWjmvtvUFUpFRr0JTtqFsypRMT1UaSOj8VPZFP11No0h
         jhEcTWQWa+DWU7+YaoF/B6th/nMIupEkW35R4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721743260; x=1722348060;
        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=HTEsuhPOmRfr2lCnPmIdNGkEYqjpmr50FbnJaOCfhY0=;
        b=J1YcfJdHbINysB1+cGi+FVp9QUt8Zk1Sx7Q99KPV6R1Yq8mZRbvXAs0YhRSjR4UiaV
         gmmtSQOAzUuoWV0997HdWjAzW88UPR/UtEbZUMc6mM8kfBijw9C3zutEZcMfS1MdWmZS
         M1e8pTqnpQ/XNIpfwnPkDwI0Kh1fujTmykZYMRCUESkgvpZsJC3vNeKyWIQ7TeAE1DV7
         5w2AkIhcjAWJLfKilUgOH7pMdQictXvmiQz3z0YUrEB1yNjYefL9rctjJH6DjAFk0YMl
         cocWuRxQInxcyjRepiohvD6we6WdKDYY46UDKZtxQHlmlZUJxa5mvzLT+Bh2oKEgaWZd
         2cvQ==
X-Forwarded-Encrypted: i=1; AJvYcCUqQkm2QneWLQhEu3pyu0p3t98QCqao8ONtUaD7w1knIhmCSfbrDJreRN7PCOSmnUHnhZMeoa9XqiGRXLw7+JZccBqQifAe4CHtpFBjrHM=
X-Gm-Message-State: AOJu0YzP48tnGdXtQCOae8btSTEmE5hcwpsZ+OQwJsqI7a1hcg6o5CFb
	E+1MjhsslTLCu4rJAe4x45LiRp3Jko1vPd5SZ32XEDgrGph261eOoxr6P2IJHzI=
X-Google-Smtp-Source: AGHT+IGUFJ+pXm4HaEv9nkqoh1Aio7n6+APl63vNd/XHnW+e25Z8QhZtd/spJgC5+DgjjYmGr9Dttw==
X-Received: by 2002:a50:8acd:0:b0:57d:4409:4f48 with SMTP id 4fb4d7f45d1cf-5a99e77082fmr2368111a12.15.1721743260160;
        Tue, 23 Jul 2024 07:01:00 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 23 Jul 2024 15:00:57 +0100
Message-Id: <D2WZ1P5AUD7G.3KZXNDB8BMUE8@cloud.com>
Cc: "Gene Bright" <gene@cyberlight.us>, "Jan Beulich" <JBeulich@suse.com>,
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Daniel P . Smith"
 <dpsmith@apertussolutions.com>, =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH 2/2] x86/efi: Unlock NX if necessary
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Xen-devel"
 <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.17.0
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-3-andrew.cooper3@citrix.com>
In-Reply-To: <20240722101838.3946983-3-andrew.cooper3@citrix.com>

Well, damn. At least it was found rather quickly.

On Mon Jul 22, 2024 at 11:18 AM BST, Andrew Cooper wrote:
> EFI systems can run with NX disabled, as has been discovered on a Broadwe=
ll
> Supermicro X10SRM-TF system.
>
> Prior to commit fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the early =
boot
> path"), the logic to unlock NX was common to all boot paths, but that com=
mit
> moved it out of the native-EFI booth path.

I suspect you meant boot rather than booth.

>
> Have the EFI path attempt to unlock NX, rather than just blindly refusing=
 to
> boot when CONFIG_REQUIRE_NX is active.
>
> Fixes: fc3090a47b21 ("x86/boot: Clear XD_DISABLE from the early boot path=
")
> Link: https://xcp-ng.org/forum/post/80520
> Reported-by: Gene Bright <gene@cyberlight.us>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> CC: Gene Bright <gene@cyberlight.us>
>
> Note.  Entirely speculative coding, based only on the forum report.
> ---
>  xen/arch/x86/efi/efi-boot.h | 33 ++++++++++++++++++++++++++++++---
>  1 file changed, 30 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index 4e4be7174751..158350aa14e4 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -736,13 +736,33 @@ static void __init efi_arch_handle_module(const str=
uct file *file,
>      efi_bs->FreePool(ptr);
>  }
> =20
> +static bool __init intel_unlock_nx(void)
> +{
> +    uint64_t val, disable;
> +
> +    rdmsrl(MSR_IA32_MISC_ENABLE, val);
> +
> +    disable =3D val & MSR_IA32_MISC_ENABLE_XD_DISABLE;
> +
> +    if ( !disable )
> +        return false;
> +
> +    wrmsrl(MSR_IA32_MISC_ENABLE, val & ~disable);
> +    trampoline_misc_enable_off |=3D disable;
> +
> +    return true;
> +}

Do we want "#ifdef CONFIG_INTEL" the contents?

> +
>  static void __init efi_arch_cpu(void)
>  {
> -    uint32_t eax;
> +    uint32_t eax, ebx, ecx, edx;
>      uint32_t *caps =3D boot_cpu_data.x86_capability;
> =20
>      boot_tsc_stamp =3D rdtsc();
> =20
> +    cpuid(0, &eax, &ebx, &ecx, &edx);
> +    boot_cpu_data.x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, edx);
> +
>      caps[FEATURESET_1c] =3D cpuid_ecx(1);
> =20
>      eax =3D cpuid_eax(0x80000000U);
> @@ -752,10 +772,17 @@ static void __init efi_arch_cpu(void)
>      caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
> =20
>      /*
> -     * This check purposefully doesn't use cpu_has_nx because
> +     * These checks purposefully doesn't use cpu_has_nx because
>       * cpu_has_nx bypasses the boot_cpu_data read if Xen was compiled
> -     * with CONFIG_REQUIRE_NX
> +     * with CONFIG_REQUIRE_NX.
> +     *
> +     * If NX isn't available, it might be hidden.  Try to reactivate it.
>       */
> +    if ( !boot_cpu_has(X86_FEATURE_NX) &&
> +         boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_INTEL &&
> +         intel_unlock_nx() )
> +        caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
> +
>      if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
>           !boot_cpu_has(X86_FEATURE_NX) )
>          blexit(L"This build of Xen requires NX support");

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 14:04:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 14:04:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763256.1173516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWG7d-0002fW-Hs; Tue, 23 Jul 2024 14:04:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763256.1173516; Tue, 23 Jul 2024 14: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 1sWG7d-0002fP-E7; Tue, 23 Jul 2024 14:04:09 +0000
Received: by outflank-mailman (input) for mailman id 763256;
 Tue, 23 Jul 2024 14:04: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=W1nq=OX=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sWG7b-0002fE-VP
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 14:04:07 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20617.outbound.protection.outlook.com
 [2a01:111:f403:2407::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c5ca54e-48fc-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 16:04:06 +0200 (CEST)
Received: from BY5PR17CA0010.namprd17.prod.outlook.com (2603:10b6:a03:1b8::23)
 by DM4PR12MB8473.namprd12.prod.outlook.com (2603:10b6:8:183::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.14; Tue, 23 Jul
 2024 14:04:03 +0000
Received: from SJ5PEPF000001EC.namprd05.prod.outlook.com
 (2603:10b6:a03:1b8:cafe::5e) by BY5PR17CA0010.outlook.office365.com
 (2603:10b6:a03:1b8::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.28 via Frontend
 Transport; Tue, 23 Jul 2024 14:04:02 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001EC.mail.protection.outlook.com (10.167.242.200) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.11 via Frontend Transport; Tue, 23 Jul 2024 14:04:02 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 23 Jul
 2024 09:04:00 -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, 23 Jul
 2024 09:04:00 -0500
Received: from [172.23.111.139] (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, 23 Jul 2024 09:04: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: 6c5ca54e-48fc-11ef-bbfe-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qHU7s1o4bdW389Q3hqtTDyRdZ/w+6f76QxDwozczer+eg7VDBfNm8pvKGz5errx/L5r1Ip01qyail8iyEUVvjrQPmUZkn7yWN2woQQUs3YkyNzFf2Z4ggkxFYLiomED7AZx5PuloHYXgj1lLdAYb5GFFO8GCNFwblyhJ26ahqCeIeaOedGWbidQumSodvZsy1jcwgFw549juH5CcvCdKGgkJyt7BuHFakbhfG1WjOtQk5durgADB26gIBU/94o95LvUQMQLB7jXbCJnma8k2C4j4fC8l3tbDph1tg6rEgMMtrfxJMGIrrK6rFoMdHhkj/y5PrPOug1wiIVJyS4dzSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ir6ivoKbjG2ShFOVatRVaHGKi7y0x55A9x5bEqif6r0=;
 b=daVN16DL6tGu+Nr2RL5zMXc04gBhwMMejYeuRIr5FkxLhrNyI4r2ZkxIZ1UgEnTe28CJocW8o8GBXXPiWV5ZRS9wmkzTGKsWN97IBWrBG++axhRL+LFATpigNEYmizB5jreP/YRVfEfA/de06dB/G/SIWulxAGaicpUO/cun/fUDCB/chGfyKWKJPnIkeYxyhb+cZUrdWqW6ClqhTAMHoDIV+nrYQzypj/ExJ8y172aQU1Tg4fnnhd5uMG4xUPByTGNPQjd5wEJv5cXjlDNGZZ3wa1+fRKmXiVVER37NJrfMWAQsK6cwa584nu6XGfo7cIoLSJISquyV/9mkUrigOA==
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=ir6ivoKbjG2ShFOVatRVaHGKi7y0x55A9x5bEqif6r0=;
 b=ew/tAHDAIdg/jwoCuqarX1j1uwUEMernq+Lhc0ICQxlyi0RLzUIcHXFd2Oa40OoRob5HFFnqypMb/qurkjrjAddqR3EHAPA/lW6u2sUKur2PbkBFPLIrPh2WwP6W+c8pPdgoIyDTh82hn3MdceK5B+D/Qc7RMREhw7y+GW0p100=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <4ca9d1c0-2be3-403b-bc03-3fc4a05c702f@amd.com>
Date: Tue, 23 Jul 2024 09:40:56 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/6] tools/libxs: Track whether we're using a socket or
 file
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-5-andrew.cooper3@citrix.com>
 <8cbe6c8c-1401-4661-9319-e174ffce7461@suse.com>
 <d6cc1f6f-fd37-4911-b3a4-59915727841f@citrix.com>
 <6cc32731-8346-4839-8a59-9a613505ae20@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <6cc32731-8346-4839-8a59-9a613505ae20@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001EC:EE_|DM4PR12MB8473:EE_
X-MS-Office365-Filtering-Correlation-Id: e433854f-e885-47e2-959d-08dcab204ed5
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?NXZnVUFTaG00RUxjQTZ4MWV5RzFGby9XWS9BcUtIUmZVUGdMa0JkMXN4MXV2?=
 =?utf-8?B?Y1VoeHNUcGxkdmlkaHoxWkduQkNaMXpXalVUckQzS29uRzczRVF1Y2c5bFBX?=
 =?utf-8?B?emY5Q3JEYkViNUp2QVN0V24yUGpDL0VNWWd4OXArSHltVktFZ1ZlQy9WTndC?=
 =?utf-8?B?dklHaHd6Y0N3UDNaa0NqZEZQSjF0QVhDd3FRVnZEVEh3MDJVbmJ4bWxkK29V?=
 =?utf-8?B?WGFJMDBVNWg0cElqVFVBVVFjYjNsMDdnYnI1ck14TmhQbHMxVEpaNlZ0aWVh?=
 =?utf-8?B?VjEySkZFTG94V0JXcnZkam53Z0tFN2d5cnhZQkNmaytzT2x5UnhOLzdwQWRw?=
 =?utf-8?B?azJnQ1RPQVhRbWxmUjRMZFVMRGVYM0QydTNmcXpnSEhUNnIrU1hPOXZFYUU4?=
 =?utf-8?B?MUVrTHdNTk9qUnMxdGZWdlhjM1VKVG5VQmRibTVoMFAxbDBVZFpoSDY2Zi9i?=
 =?utf-8?B?b3BXRTMxc05hS2pjQUxzU05hd2F5M3d0enpndmZJRUNqYk0zdTRsNHNUT3JL?=
 =?utf-8?B?UmZIc2U1MzZHcWl3TXhidi9sTDZweUNQcmlzSHRTVGVWWkVuS0tHUTFLWEQ5?=
 =?utf-8?B?dGwrcGM0VEU0V2FYWlh0SW9kbUF6aVBPbmlrcG5zSEFYNU5kTkRNRStXRHc0?=
 =?utf-8?B?Yy8zRk1Kdzg5V281U28rUUpVbGdVRXM5TGhtTGlJVWt5cXhLVG1nKzZsV0NP?=
 =?utf-8?B?ZFJ6bVYrVHJSM3hFdzlkOEF2NklBeTF2VSsrMGFXV1gvN0FjaVJJSTlMN3hE?=
 =?utf-8?B?UmQ2RG1sZWVNajhNWXBoR1N3UnBpVlVVRzNSY1ZrVUc5ZWErNWpkMFN1cG5m?=
 =?utf-8?B?eUxCak9EcmEyTkwyMTZiWlRzaVIrOVhlbVlCaExvZ2pXTjJiQU1tT05KVGVI?=
 =?utf-8?B?TnJsa2ZjckVlVmY0RS9aNllIZmpKNkdrUmZZZm1LclgxQzdGTjNEZW1BcFRS?=
 =?utf-8?B?b20wQ2hXUEJyL1hVQXA5WkY1c2VzYTZqRXgveHFFd08ya3pBc2hCWkwwdWZx?=
 =?utf-8?B?ZHEvdlhmbXZMeGNpNHRZSlJSTy95TFlBT28wR1M4V0ZrSDhsQXFURGZlTTdK?=
 =?utf-8?B?VGNIWVFLUEV3N0ZsUDNBVjJwMS9WZmZaYXZxdG9DMmhNRTlRUk1JY1NzVzYx?=
 =?utf-8?B?MXU1akE1WS9CQzJxc2lSa1ZaSkN2bTIrVGZrQUVpRzcvNmxOQXdyNFdYN1Vz?=
 =?utf-8?B?em4xWEl0Q1o1bGVaaUEzV2NGUCt6aFZrZlRVWVF2blNpZG9WN1FMcWhtMVVx?=
 =?utf-8?B?RGY4YTFIbkNyS0I0TmhzbnFEa1Vic3g4SVF5Nkc1RVlYOVlzZWF2Z3Nkc0pm?=
 =?utf-8?B?bzA1bUcxdG1jU1NGeWVSWW9PMlBzYUtjRzBPdDdiTWpiZDFnQ3lqRDgxSkQw?=
 =?utf-8?B?WVlCRHQ3WFB0K3lKRXNwSmtqYkZWaU0ySWNxS1pqQ3ZOU1YrTEJONW1sUFU1?=
 =?utf-8?B?a01kU2Q2SUpKemxyRFpvaCtQSEd1YTVzcEdsNCtDRkl3Mm5DSFBnSWgwYWRV?=
 =?utf-8?B?S0d5V3JkOTYwMm15ZktYV2g4dE84NVhHZHBHb0MwUFVZYkgyY2J6SUNCcW9p?=
 =?utf-8?B?N3IvK0J2d2F6V0g1SmJseXE1emRublR3YkF5RjdodXNkWXgvQlU5Zm9mVjhm?=
 =?utf-8?B?TGc3djFYMm9ONFlnMW5MQjUxUVp2ZkNQWlpFdEVRVjlxVmt6SGVFKzdHS3FN?=
 =?utf-8?B?SnFwaXZISHFiOTROWjhucFRVUVdwN3RIU3ZMTFNtWWo0U0RwTENzV0VSRHZ2?=
 =?utf-8?B?ZkJrRkZ0K1Q5akQ0VnRja0FtMDRteHZpd3pkOThaVTJ3YWorcUw0VmlMUHg3?=
 =?utf-8?B?bHJ2UThEV1BXYWZRdW9qY3I5ZGNnT2V5SVRPV1ZhSGprdEFvVFhqUWF2eEQ0?=
 =?utf-8?B?M0xqbTAxaDRtclU1WlcxdG5nTUdQRWJ3emNweEdpbXcvQnBmV2lPS2ZOTkZ3?=
 =?utf-8?Q?DwVNjqIvu5CXJg+OqMOdV0TZvnk7L/5v?=
X-Forefront-Antispam-Report:
	CIP:165.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 Jul 2024 14:04:02.5472
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e433854f-e885-47e2-959d-08dcab204ed5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001EC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8473

On 2024-07-23 08:08, Jürgen Groß wrote:
> On 23.07.24 14:07, Andrew Cooper wrote:
>> On 23/07/2024 10:33 am, Jürgen Groß wrote:
>>> On 18.07.24 18:48, Andrew Cooper wrote:
>>>> It will determine whether to use writev() or sendmsg().
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>>> CC: Juergen Gross <jgross@suse.com>
>>>> ---
>>>>    tools/libs/store/xs.c | 5 +++++
>>>>    1 file changed, 5 insertions(+)
>>>>
>>>> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
>>>> index 96ea2b192924..f4edeb05f03b 100644
>>>> --- a/tools/libs/store/xs.c
>>>> +++ b/tools/libs/store/xs.c
>>>> @@ -65,6 +65,9 @@ struct xs_stored_msg {
>>>>    struct xs_handle {
>>>>        /* Communications channel to xenstore daemon. */
>>>>        int fd;
>>>> +
>>>> +    bool is_socket; /* is @fd a file or socket? */
>>>> +
>>>>        Xentoolcore__Active_Handle tc_ah; /* for restrict */
>>>>          /*
>>>> @@ -305,6 +308,8 @@ static struct xs_handle *get_handle(const char
>>>> *connect_to)
>>>>        if (h->fd == -1)
>>>>            goto err;
>>>>    +    h->is_socket = S_ISSOCK(buf.st_mode);
>>>> +
>>>>        XEN_TAILQ_INIT(&h->reply_list);
>>>>        XEN_TAILQ_INIT(&h->watch_list);
>>>
>>> I'd prefer to set h->is_socket above the current
>>>
>>>      if (S_ISSOCK(buf.st_mode))
>>>
>>> and then use h->is_socket in this if instead.
>>>
>>> With that:
>>>
>>> Reviewed-by: Juergen Gross <jgross@suse.com>
>>
>> To confirm, you mean like this?
>>
>> @@ -297,7 +300,9 @@ static struct xs_handle *get_handle(const char
>> *connect_to)
>>          if (stat(connect_to, &buf) != 0)
>>                  goto err;
>> -       if (S_ISSOCK(buf.st_mode))
>> +       h->is_socket = S_ISSOCK(buf.st_mode);
>> +
>> +       if (h->is_socket)
>>                  h->fd = get_socket(connect_to);
>>          else
>>                  h->fd = get_dev(connect_to);
>>

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


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 14:08:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 14:08:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763264.1173526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWGBp-0003ou-0w; Tue, 23 Jul 2024 14:08:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763264.1173526; Tue, 23 Jul 2024 14: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 1sWGBo-0003on-Tr; Tue, 23 Jul 2024 14:08:28 +0000
Received: by outflank-mailman (input) for mailman id 763264;
 Tue, 23 Jul 2024 14: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=W1nq=OX=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sWGBn-0003oh-Dy
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 14:08:27 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20608.outbound.protection.outlook.com
 [2a01:111:f403:2414::608])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 06397dcf-48fd-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 16:08:25 +0200 (CEST)
Received: from BL1P221CA0025.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:2c5::13)
 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.7762.29; Tue, 23 Jul
 2024 14:08:21 +0000
Received: from BL6PEPF0001AB77.namprd02.prod.outlook.com
 (2603:10b6:208:2c5:cafe::27) by BL1P221CA0025.outlook.office365.com
 (2603:10b6:208:2c5::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.15 via Frontend
 Transport; Tue, 23 Jul 2024 14:08:21 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF0001AB77.mail.protection.outlook.com (10.167.242.170) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.11 via Frontend Transport; Tue, 23 Jul 2024 14:08:21 +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, 23 Jul
 2024 09:08:19 -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, 23 Jul
 2024 09:08:19 -0500
Received: from [172.23.111.139] (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, 23 Jul 2024 09:08: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: 06397dcf-48fd-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h3Eu5lzcFX9FLBi/PPf/lCxTKiTo+McefbyeMJ88f4mW5kuuo1tgzhjkofgPvkOZUNqA8/exi5tzZoN+ofIOj+LiC3J/DJ9I7+q77m0q1s9SgIeQxAH0Xhc86wE2YarVNLaXCttDD5mkPmTl8u6bnHQujfFiXDt/87oKw2rsB1f/PKnvbSLGr6e+PF9FqyQNMMAaBb/0SCsHrND3XRUKbBnafz2zotOYtld841gGJhiVw+gnT0TaubCtoImHkFO4Tgtdn1ejugeKWyOT/AxjrLHXi8R1IYcES77xQeXOugvl3PzTt0uEf4fk0gH7TIe60Qv1wvy+qM18tFEIBswMyQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vrOKkQBU4TDjr90t1Z4yRMA7wSjtwgBuAkIgZmtVEdA=;
 b=ieLV5LWiBsVPJK+jJfYTCYmdubOAWW3nOA2odrM1V54YckP3NHhkiAXvXlM9KmevZezyQ9CPtFZ+2RcJTaNUv51SpZagUkyJJpZMaMTHtXDYsEgquqzER19nRRTtz8PO6+OeeOgir/6i7+zpRM68Yoc9szmeWI4T5L+HOW/sIY31lfqu5D38/AvynABQFsqg5ThKDKUD79uYUhFt52yj22FD067R2hb1Ohg7e78e08g8+yeN8swUDnQEjh9Wmyb/j6OMIZbx4ok1euq30pxA0SMO2ir4AnDP0nk+A8F/m29oE+wxRkPQhgcojWnkeF1/ex2i5u77L2lQEdzTRZcJFg==
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=vrOKkQBU4TDjr90t1Z4yRMA7wSjtwgBuAkIgZmtVEdA=;
 b=Yws/wGKaFQLbMnz/SkQrFBcy6nLZywGDdSugfEvZv77RCjirgLxzZxJvyBQD05NjKxwk8DvxK+d83QfD47WkEAKM5PY5mt6VJ5OESXznXMnIl0fzUmipr9EKTHLnznt1H2pBih5cz8HYrga+Wk/RyH7dJ1snoUEQ1xJnl6PRxD0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <296cccab-118f-4b42-b48d-f4927d10162d@amd.com>
Date: Tue, 23 Jul 2024 09:45:15 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1.1 5/6] tools/libxs: Use writev()/sendmsg() instead of
 write()
To: Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Frediano Ziglio
	<frediano.ziglio@cloud.com>
References: <20240718164842.3650702-6-andrew.cooper3@citrix.com>
 <20240722162547.4060813-1-andrew.cooper3@citrix.com>
 <cabf929b-11bd-4401-88a2-7d4c8ae4b606@suse.com>
 <702ac4d8-2eba-4b4d-bf43-3cc8277c5778@citrix.com>
 <34350564-2faf-4af7-a66c-4ef3960a98ed@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <34350564-2faf-4af7-a66c-4ef3960a98ed@suse.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: BL6PEPF0001AB77:EE_|CH3PR12MB8754:EE_
X-MS-Office365-Filtering-Correlation-Id: faf4e7b7-6a78-4122-0230-08dcab20e904
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?U2FHendIK0NiM3hBK1dZRmN4czd6MGFzdngvVlAwclYrNTlDaEd1aGhaekJE?=
 =?utf-8?B?bnAvdUFDUklxRFNhRTNaYUFGaTdkYlExN1A4bDN5Ym1IWmNyVlpsaUVkb1dn?=
 =?utf-8?B?L1NDVDk4RlNQSExiNHpFVnFiK0ZRY2E4WEk1MTMzNkRzSGZZZ1dGOFlrTW5a?=
 =?utf-8?B?bFJOVmI2OS9zT0FrM1hXRzlHenlrQjFzbVpmWXlTQzM1UDkxTmloZDJWTFFr?=
 =?utf-8?B?d2VLN3hqRitvWWJEUktjZFZzbExMRHRVbS9zaGlZM1A1dVlRalE5Rk93ZVVk?=
 =?utf-8?B?dHQxUzBtdGRRdWlubUpoMjZyVzAvUjBnLzR3bHd1UVYvdHJSZWlWT09DYmUr?=
 =?utf-8?B?TmRZZ0ZWLzB3bVNTdmpKR3dRTEhCVW9SYkFOTkVtUWwyKy91bWg2NDk0WlBm?=
 =?utf-8?B?TmIyQytKY2lBeHVqNVBYSXc5N0VuRzk0cTF0ZkVDd293SXNpZE92OXNINnRl?=
 =?utf-8?B?NnZOcjBCSVV2Z2V3Z0hrdWg3TW8zSk5zNTdKN0UwZ3NwcXZRWldiUHhkcDVz?=
 =?utf-8?B?dE9ldlpYaFQ1R3lOR0YxMEhzb05IcXhJUHZXUG14WTU4a0dLY3VSN3BOaVhp?=
 =?utf-8?B?SGZRRUZpOGdsOXFRN2xldmUxNFlVd2R6OTBDbitSMGh2ZGVyOU04NFAvRzZC?=
 =?utf-8?B?QTdiUWFKR3JFeE5IZDNNRnBmWlQrbExreGhSa0kyamJZblZpQVptS0Q0ZDVl?=
 =?utf-8?B?bkNWMjd2Y2ViVTd3ZUQyRXBRbGUvNkFUM0RYOXBTZWZBV2MwWnM3eEVCNzcw?=
 =?utf-8?B?RlpGYmk0b2RGN0hTY3FmOHR2bVgyTnJOdWtGcGFDN2hHK2lBbDBqcVFXZ2Fz?=
 =?utf-8?B?UW1IQS82OVYzaWFRdDBIMUpIcDRvKy9VWTZ1TFM4dTI2UjlURlNWckFuZkdT?=
 =?utf-8?B?VGZtWTZkdW81WnJzRUt2Wi9ZS0N4aVVzS3l0VVhXU3dkbzcyK09JeXpkRzY1?=
 =?utf-8?B?OXhsVEM5bUhWY2ZzMUVLMEpHOU8rVlYrRS91cG5NWEhYRWl3V3lZdW0zYmo0?=
 =?utf-8?B?N2VpazRtU3ppZ3hKN2ZIOVZHZ2JBUDltWlpTTTR5K1F3aUVsQk5GMElVYVcv?=
 =?utf-8?B?K3dvdFdURE5Wa3A2TWtWRm14MVJBQ0o3a0JjcHErZUxNWjBQdXQrT0piMVVi?=
 =?utf-8?B?WnpNejF0dVIvU0dBUFJHYW1hNytuUzJPblYyYTJ5VThQYnNLb05MelpqbFY1?=
 =?utf-8?B?VGIyZFFLZWxxNU5PN2tzVnl4K1JkWUVHQUtSdTVncEpoWUZoOGZKUmtpREoy?=
 =?utf-8?B?YVUyTE5xUnpuSjRKNWJwK2l0UGovclhRV251MmdJWEx1RCsvYjA4U1REaDhj?=
 =?utf-8?B?WWp1cWJuM3lQNTVhb0RBRGRKMzBIbTNta0pTeUpkNS9yRzBDTnVoRVh4cTZX?=
 =?utf-8?B?Y3pEeTBwVGkwSEtkc0lwU2V1YkdWaFo1eSttTGdXeFpPMUQwNWZPakpBUGgx?=
 =?utf-8?B?bDhkdXlLa2MwWS9BUWlXRDhubFh0Z290NWFyNHJMR2Era0Y1OEF3TFViOUt4?=
 =?utf-8?B?NlpWbmZzU05YcGRHMnFkRk1tazArS2FoQjNveThpeDZ5eDFQQXNJVFpSeHJx?=
 =?utf-8?B?SitLOVEzNU01dlc1RDQ0SGhtQ3czdHcrcE9HVVh6RjZNSkpsVWkxT0NhamYv?=
 =?utf-8?B?ME5tMkpmUDVNbzZ1TUZ1Ukl4eWlPcmNaS1VjUlRQSkQvWmhlRjRiUU1wTGZZ?=
 =?utf-8?B?L25rYlZxOUdycDdWVlNvQUU1Y0N4bzROYkNwVXNWUnBsMVpoWFhTTXk0dE1m?=
 =?utf-8?B?RVRWaEFJQWVJeGdIcTdzcjRaWDBtcCtuK1hNMWVOeEZML1hvbVlRK0ZweVM1?=
 =?utf-8?B?ZFNLYmtKWmU5dnFWZUNTQzU4Q0xwVzdqb3R2Z3M2M0h5dGJaUVd0WEpXbThM?=
 =?utf-8?B?bEZ5SGRFY1ZObjlLb0ZmMnNZSGRJcXIzYTZhaTVOR0dRcWJwcmU0a1JxaDFP?=
 =?utf-8?Q?NKlLZXB9FlZ2uNJAv6HFtUD+LzxjsLiK?=
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: 23 Jul 2024 14:08:21.5799
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: faf4e7b7-6a78-4122-0230-08dcab20e904
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB77.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8754

On 2024-07-23 08:30, Juergen Gross wrote:
> On 23.07.24 14:25, Andrew Cooper wrote:
>> On 23/07/2024 10:37 am, Jürgen Groß wrote:
>>> On 22.07.24 18:25, Andrew Cooper wrote:
>>>> With the input data now conveniently arranged, use writev()/sendmsg()
>>>> instead
>>>> of decomposing it into write() calls.
>>>>
>>>> This causes all requests to be submitted with a single system call,
>>>> rather
>>>> than at least two.  While in principle short writes can occur, the
>>>> chances of
>>>> it happening are slim given that most xenbus comms are only a 
>>>> handful of
>>>> bytes.
>>>>
>>>> Nevertheless, provide {writev,sendmsg}_exact() wrappers which take
>>>> care of
>>>> resubmitting on EINTR or short write.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>>> CC: Juergen Gross <jgross@suse.com>
>>>> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
>>>>
>>>> v1.1:
>>>>    * Fix iov overread, spotted by Frediano.  Factor the common
>>>> updating logic
>>>>      out into update_iov().
>>>> ---
>>>>    tools/libs/store/xs.c | 94 
>>>> +++++++++++++++++++++++++++++++++++++++++--
>>>>    1 file changed, 91 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
>>>> index e820cccc2314..f80ac7558cbe 100644
>>>> --- a/tools/libs/store/xs.c
>>>> +++ b/tools/libs/store/xs.c
>>>> @@ -563,6 +563,95 @@ static void *read_reply(
>>>>        return body;
>>>>    }
>>>>    +/*
>>>> + * Update an iov/nr pair after an incomplete writev()/sendmsg().
>>>> + *
>>>> + * Awkwardly, nr has different widths and signs between writev() and
>>>> + * sendmsg(), so we take it and return it by value, rather than by
>>>> pointer.
>>>> + */
>>>> +static size_t update_iov(struct iovec **p_iov, size_t nr, size_t res)
>>>> +{
>>>> +    struct iovec *iov = *p_iov;
>>>> +
>>>> +        /* Skip fully complete elements, including empty elements. */
>>>> +        while (nr && res >= iov->iov_len) {
>>>> +                res -= iov->iov_len;
>>>> +                nr--;
>>>> +                iov++;
>>>> +        }
>>>> +
>>>> +        /* Partial element, adjust base/len. */
>>>> +        if (res) {
>>>> +                iov->iov_len  -= res;
>>>> +                iov->iov_base += res;
>>>> +        }
>>>> +
>>>> +        *p_iov = iov;
>>>> +
>>>> +    return nr;
>>>> +}
>>>> +
>>>> +/*
>>>> + * Wrapper around sendmsg() to resubmit on EINTR or short write.
>>>> Returns
>>>> + * @true if all data was transmitted, or @false with errno for an
>>>> error.
>>>> + * Note: May alter @iov in place on resubmit.
>>>> + */
>>>> +static bool sendmsg_exact(int fd, struct iovec *iov, unsigned int nr)
>>>> +{
>>>> +    struct msghdr hdr = {
>>>> +        .msg_iov = iov,
>>>> +        .msg_iovlen = nr,
>>>> +    };
>>>> +
>>>> +    /* Sanity check first element isn't empty */
>>>> +    assert(iov->iov_len == sizeof(struct xsd_sockmsg));
>>>
>>> Can you please move this assert() into write_request(), avoiding to have
>>> 2 copies of it?
>>
>> It was more relevant before update_iov() was split out.
>>
>> But, there's exactly the same assertion in the write_request()'s caller,
>> so I'd prefer to simply drop it if that's ok?
>>
>> The writev()/sendmsg() won't malfunction if the first element is 0, and
>> update_iov() will now cope too, so I don't think it's necessary.
> 
> Fine with me.

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

Looks like xs_write_all() is now unused internally, but it's an exposed 
library function.  I guess it can just be kept instead of bumping the 
library version.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 14:09:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 14:09:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763268.1173536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWGCc-0004I3-BL; Tue, 23 Jul 2024 14:09:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763268.1173536; Tue, 23 Jul 2024 14:09: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 1sWGCc-0004Hw-7l; Tue, 23 Jul 2024 14:09:18 +0000
Received: by outflank-mailman (input) for mailman id 763268;
 Tue, 23 Jul 2024 14:09: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=W1nq=OX=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sWGCb-0004Gg-1W
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 14:09:17 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060a.outbound.protection.outlook.com
 [2a01:111:f400:7e88::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2437904c-48fd-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 16:09:15 +0200 (CEST)
Received: from BN9PR03CA0974.namprd03.prod.outlook.com (2603:10b6:408:109::19)
 by DS0PR12MB7874.namprd12.prod.outlook.com (2603:10b6:8:141::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.18; Tue, 23 Jul
 2024 14:09:11 +0000
Received: from BN3PEPF0000B078.namprd04.prod.outlook.com
 (2603:10b6:408:109:cafe::4c) by BN9PR03CA0974.outlook.office365.com
 (2603:10b6:408:109::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.17 via Frontend
 Transport; Tue, 23 Jul 2024 14:09:11 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B078.mail.protection.outlook.com (10.167.243.123) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.11 via Frontend Transport; Tue, 23 Jul 2024 14:09: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; Tue, 23 Jul
 2024 09:09: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; Tue, 23 Jul
 2024 09:09:10 -0500
Received: from [172.23.111.139] (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, 23 Jul 2024 09: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: 2437904c-48fd-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uWIK+Li/Am7aku33t5CIGahYOe4hPbPz+ZhpczfjqPMD52jz2aIaCJG1sZrRcKvWJoDASGozA4mKUm+2Snorvcs6YTorVpBLUQXDDliQg58dwyvnP3pyV5Jo+iSc/gO3Y/AhC/LtfB3Ensq+c3M/WtzFGVX4ptkn5x/fF9szmS2KhOGAmpUM18SxSurmlAvu8iccfivX664uYLz3cd2lsL0rgzv16NZ8ire89te65hkq1LCjdiakpMni9h45TSp3aGmycNXWb7yJcCshwTB0k7MprI158pxKRkY1SxEbG5EIHr414yQJi48XCrxxDnliOY8dWca/wG1mTwQYlK6REg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AVEj1nE6RswZNDJ+mXfggHs0FnAaXmmn7YOQWVRsuCw=;
 b=VPUeKullYQREJy7G4uMRDs9Gq89iBHze1B9APdN9zfv4SW88qp7AI4GLbt9DWTwG6Vg1xbLj5UfAIF5y9iY8KfaapxF0DpPrVcoLbmEJN5vbUZzcBHpK4JhtAbRH/AH6cuty4lPUG/Sj6lHF6BfpQpnXxlABP69L5isa1jsEZJ0e7dDZxYDM4drWdi2Nk5aNqzzjzUq1MiZdoBLpRtDoAPGHhLLRtjGF82DXMXW4i9i761JyB5R1Je6T/a+JarpmKYIAjdPr7Lst3rtyfiZLcDNKxfXKSqN97TxPd1IKlLtxZpIzr/gcaH30wamtH9EBhoQTUJoTBjvHfENsRcnufg==
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=AVEj1nE6RswZNDJ+mXfggHs0FnAaXmmn7YOQWVRsuCw=;
 b=chil8p2S19GhWrQsmblK11vFAn389PAaQj0zQmngmN56RCb0pRZxqDIwTfF/pyxD/RdaB03Gy1gaOzgW1OaCvYPmWWTN8GjrgyS/F4AzL3jYK4GixkgvwxrVIk9K6PIsQwjLRQsR6BcthDq1eaJ+5DwXjGXgIxOJlNEZOjcLY10=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <1e737cea-49f7-4813-986f-229536123d23@amd.com>
Date: Tue, 23 Jul 2024 09:46:06 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/6] tools/libxs: Stop playing with SIGPIPE
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <20240718164842.3650702-7-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20240718164842.3650702-7-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B078:EE_|DS0PR12MB7874:EE_
X-MS-Office365-Filtering-Correlation-Id: 437313a3-461a-4260-819a-08dcab2106c8
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?S1dGaXVzRXhyUFoyMzRIazYzb0xCWVczNURCUnRnVTl1YlFJbTAydHFhZE50?=
 =?utf-8?B?UXplenNqOTk1TEFId1VYOE11TFdZeUZQeDI0YXVPTzQ5TTZoR0lyK084ZEps?=
 =?utf-8?B?eEtsSENobVdlV0tiNjRRM0JTb3VxQ2IvWWFIaSsvS2NsSWV0Q1dXNEdhS0pp?=
 =?utf-8?B?eVRaNmNtSWR2Z2RBZ3JVZHNjRGF2OTZxQlpuU1NJN2ZMbG14bFdTeHhwMWlu?=
 =?utf-8?B?TUJtTzArSGlyN0NDK3JCVUI4azlBVGhzVlV4Vy9KYkpVdjJMUVV2cC9uSnJ3?=
 =?utf-8?B?L3hkYWZhQkR2WGR2b2lscDBvT3pKdlBDV0RobTJ3SnY3RHN3eHU1TzZaQjVl?=
 =?utf-8?B?TWdMOGFyQlpFTnB5aEFTVDBMcmY1SHN3YVN6SkYyZEdMRGQ5ZXRZMjFzZmov?=
 =?utf-8?B?M1dEQUJ3U3JsdjlpWC9lMCtxWUI1M29BS1U2clQwYnRTemdDVTR4RGVDR3Jp?=
 =?utf-8?B?SWgrajBKVHE5NjB0ZlRpNlJDQ0w1ZjdtRVRFT0ZUbGdNVjd0aWdDTDNoSGRp?=
 =?utf-8?B?S1RDQXB3R2J0VE82Wll5dzl5b2lSbHdZR2JKbGV4WVQvQlNpMTc1TzJBbmxI?=
 =?utf-8?B?WmFsRnNVWm1aQWdVbyt4aFJLb0FGRnB1T0JqcXFBamE4bUk4dGllSWw0Z3BL?=
 =?utf-8?B?elZ0M21jenhtbGRrNWc3K0hsNDFST0JWeTEzenpSS1hURVNzWHRpRHowcE81?=
 =?utf-8?B?c1hYNjBGVGlPbWJLYnQ3UCthdnJ0R1Y3UC84S3BJVk05bEZWMlp5RW45SkVW?=
 =?utf-8?B?TGhZVEMxc3NWMWJQVDh0ZlJNSldiVXJZZmw0ekNUSVFDL1dZOU03SHl2TTMr?=
 =?utf-8?B?aEFiSisyL3diaTR3Z3F2M1FGcXVZTHJTWUVEZ2pobzRyL09pZU1PMzZDYWJt?=
 =?utf-8?B?ejVwL1JDdzNVYjRmMDU0MjYwY1Z5M3lLc0hPdmdPOVdWdWRTQ2hvV1N2dENK?=
 =?utf-8?B?V1MyWHBlbG9VTFNsOEIrWXI0bUI2WmhvSi80RlBoR2VpN2w5emUrVlhoanZv?=
 =?utf-8?B?b2gyUW51bXFjcGNZM0MzZUZkY3lmK1dmc3AwNGFiQU42aHVhczJuSlRTUnRS?=
 =?utf-8?B?Vjg0eG5BbVBxK213d3gvL2ppL2JJYmg2YmtTS0h3aStpN2F6dWVNdlZ4dWRI?=
 =?utf-8?B?YW90ajZxdDNzbjllZG10aVYvRnpuOEhzR2I4cjJtWjZYQVEwTGt1MUtOQ2Vm?=
 =?utf-8?B?bVJLVFg5dURxMFpwUzRLL2p1a2Y2SjJ0bUhhMHlJaVNHNFphMkM0OHRnN2s0?=
 =?utf-8?B?R2VKaUhyZnJmL09UdFJzQWN4U2FRbklJRFE0RjRwekVDdEk0RzNSV09KSkV6?=
 =?utf-8?B?N2NFU3pRaVh0NEZWQ0hBNjdwTkhWME9PUDdBb1BOOHlGVnpHcVBjRHpSNzBV?=
 =?utf-8?B?aVdXbm94NE5LNXl4elZMWUwzMXB0N0k3MGJvNk5WVGdjNTR1a082MUVrQWxz?=
 =?utf-8?B?Rzkrc2Rra01IWkZxTzIwczJ0dTJqWGx3ZnRZUklzYTNKeDNzWDNBVy9NNFJO?=
 =?utf-8?B?NCtrN3F2MUNFZVd2Z3I3dmthSjZhM1Ryb3VwRHJ4WUJGYkdhNkJ2QUpkRmNv?=
 =?utf-8?B?N1lISUVSME45Z3ZoOUpkdjFHazNIOUhRRmprQXRuUCtrM1JraU82RXRreU8y?=
 =?utf-8?B?RU53UGVmMHBMTXUyZGRtVXc5VFZrTEt5MEJPNFA2SUdWaml5NWFmbTdXdEJB?=
 =?utf-8?B?dzlNcG14RnprOHh5NHdXYWJVTlZBcy9zK3IrSjlxSUEyT25abCtCMGJiUkhZ?=
 =?utf-8?B?YmNkc29teWdvYUJCRmd3b1VDR0RxY2FQRHpvWnJUYVZ2dDl2VmU4OHdBaStE?=
 =?utf-8?B?YWp2WCtNSWoxQnVqWFY4NDdmYmZ6TXBiTXplajd2eDRpZDNMK2JyTlJZYUtN?=
 =?utf-8?B?SmZUeDFFSCtjNjhyd1ZUL0VsRVRtaEhxclpMZWdaQjgvcC9qZDNvQ2duUDlC?=
 =?utf-8?Q?LyuyoV3nVyVriZJr/UMDOBOq/rg+tIMN?=
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: 23 Jul 2024 14:09:11.4123
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 437313a3-461a-4260-819a-08dcab2106c8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B078.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7874

On 2024-07-18 12:48, Andrew Cooper wrote:
> It's very rude for a library to play with signals behind the back of the
> application, no matter ones views on the default behaviour of SIGPIPE under
> POSIX.  Even if the application doesn't care about the xenstored socket, it my
> care about others.
> 
> This logic has existed since xenstore/xenstored was originally added in commit
> 29c9e570b1ed ("Add xenstore daemon and library") in 2005.
> 
> It's also unnecessary.  Pass MSG_NOSIGNAL when talking to xenstored over a
> pipe (to avoid sucumbing to SIGPIPE if xenstored has crashed), and forgo any
> playing with the signal disposition.
> 
> This has a side benefit of saving 2 syscalls per xenstore request.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 14:10:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 14:10:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763276.1173546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWGDH-0004tK-O7; Tue, 23 Jul 2024 14:09:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763276.1173546; Tue, 23 Jul 2024 14:09:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWGDH-0004tD-LA; Tue, 23 Jul 2024 14:09:59 +0000
Received: by outflank-mailman (input) for mailman id 763276;
 Tue, 23 Jul 2024 14:09:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=402b=OX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWGDG-0004su-68
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 14:09:58 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d9f22e5-48fd-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 16:09:57 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2eefeab807dso65791991fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 07:09:57 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5a30aaa31e0sm7550612a12.27.2024.07.23.07.09.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 07: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: 3d9f22e5-48fd-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721743796; x=1722348596; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6nW/rt9Qo5tfRDufRGYbEvIvuJIAr6r7zmSe5eBX0ms=;
        b=M//THgEzaa+aDVBEGOcF/Elvz2KEn948/1/etLE6Yds/vIBgJ7+2BJqL14R+CHVlNa
         TbCcPvU/m/IEu13urwUO1Nj8XR0HSy8XwkT9npw7bkDAgmHcA2N9ztdNyMlm6pKHHnpq
         m3fOXWO+Sn8ydH6ap50JtQjPd6gUrfQmmFETc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721743796; x=1722348596;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6nW/rt9Qo5tfRDufRGYbEvIvuJIAr6r7zmSe5eBX0ms=;
        b=H1DbFhTT6XQgVRMwW896bNS+lPLEjZ97Q20IqGM4iC890u1g0KwxRuLhkDN1EG6Lxo
         +hHOf+URvptRlurTVede/E6lVeXlv4ZeLPYxnCkDsNXFD/szs1DBKy9gBejiRS/GMhi0
         7Ym7kylO82TvFma1sVVJT3YdVJ6anaDNBA9ub5cangceWVHYmN71glkg7oGfyZkxqb6Z
         z4eOOX3q1TU6O6+0uyWd7hzqCfpQef/+C3k1qJ/yuN3SaqSv8EvM4NQmexXYAGnTMXmd
         //vJcLoUI6/rQ1V+aSYm0RXjG2to53NogBwRxfWCTiA8lA8rf8MnWQhIvC3+2/4ApvCX
         XbDw==
X-Forwarded-Encrypted: i=1; AJvYcCWK7ENdvp5HMf4lNbHlA1ykX7jsqIxZXezH3pNAt8sdvIJwK+FUfEuo6eF7+76WrGV+DVqNclgfjWPMcyzKwQUlmvcFJm/6sOwz0/XVrEg=
X-Gm-Message-State: AOJu0YyvG86OJKTmKXFbWsiGoQ/QKmfIRJh0V2RCvMg2JaOt/JNWJhH3
	NMz8qka3WSgssIPJrhFP8dVV9m/Tp6YLzjjSiLv4MglMqQJ3TuVnCnhMtlGwYsnfDTl0VSYpSN6
	/
X-Google-Smtp-Source: AGHT+IH9dbnid+umfgkDovOno7oGayRaeV+CbXCITXh68H5Z7ircdpdrKcDMbpIIJjdv3XX2uRlGtQ==
X-Received: by 2002:a2e:b054:0:b0:2ef:2f60:1950 with SMTP id 38308e7fff4ca-2f01eac68e1mr20567321fa.30.1721743796350;
        Tue, 23 Jul 2024 07:09:56 -0700 (PDT)
Message-ID: <69ad0dbc-7690-4da2-85be-9b44edb8d28e@citrix.com>
Date: Tue, 23 Jul 2024 15:09:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1.1 5/6] tools/libxs: Use writev()/sendmsg() instead of
 write()
To: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Frediano Ziglio <frediano.ziglio@cloud.com>
References: <20240718164842.3650702-6-andrew.cooper3@citrix.com>
 <20240722162547.4060813-1-andrew.cooper3@citrix.com>
 <cabf929b-11bd-4401-88a2-7d4c8ae4b606@suse.com>
 <702ac4d8-2eba-4b4d-bf43-3cc8277c5778@citrix.com>
 <34350564-2faf-4af7-a66c-4ef3960a98ed@suse.com>
 <296cccab-118f-4b42-b48d-f4927d10162d@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <296cccab-118f-4b42-b48d-f4927d10162d@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23/07/2024 2:45 pm, Jason Andryuk wrote:
> On 2024-07-23 08:30, Juergen Gross wrote:
>> On 23.07.24 14:25, Andrew Cooper wrote:
>>> On 23/07/2024 10:37 am, Jürgen Groß wrote:
>>>> On 22.07.24 18:25, Andrew Cooper wrote:
>>>>> With the input data now conveniently arranged, use writev()/sendmsg()
>>>>> instead
>>>>> of decomposing it into write() calls.
>>>>>
>>>>> This causes all requests to be submitted with a single system call,
>>>>> rather
>>>>> than at least two.  While in principle short writes can occur, the
>>>>> chances of
>>>>> it happening are slim given that most xenbus comms are only a
>>>>> handful of
>>>>> bytes.
>>>>>
>>>>> Nevertheless, provide {writev,sendmsg}_exact() wrappers which take
>>>>> care of
>>>>> resubmitting on EINTR or short write.
>>>>>
>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>> ---
>>>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>>>> CC: Juergen Gross <jgross@suse.com>
>>>>> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
>>>>>
>>>>> v1.1:
>>>>>    * Fix iov overread, spotted by Frediano.  Factor the common
>>>>> updating logic
>>>>>      out into update_iov().
>>>>> ---
>>>>>    tools/libs/store/xs.c | 94
>>>>> +++++++++++++++++++++++++++++++++++++++++--
>>>>>    1 file changed, 91 insertions(+), 3 deletions(-)
>>>>>
>>>>> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
>>>>> index e820cccc2314..f80ac7558cbe 100644
>>>>> --- a/tools/libs/store/xs.c
>>>>> +++ b/tools/libs/store/xs.c
>>>>> @@ -563,6 +563,95 @@ static void *read_reply(
>>>>>        return body;
>>>>>    }
>>>>>    +/*
>>>>> + * Update an iov/nr pair after an incomplete writev()/sendmsg().
>>>>> + *
>>>>> + * Awkwardly, nr has different widths and signs between writev() and
>>>>> + * sendmsg(), so we take it and return it by value, rather than by
>>>>> pointer.
>>>>> + */
>>>>> +static size_t update_iov(struct iovec **p_iov, size_t nr, size_t
>>>>> res)
>>>>> +{
>>>>> +    struct iovec *iov = *p_iov;
>>>>> +
>>>>> +        /* Skip fully complete elements, including empty
>>>>> elements. */
>>>>> +        while (nr && res >= iov->iov_len) {
>>>>> +                res -= iov->iov_len;
>>>>> +                nr--;
>>>>> +                iov++;
>>>>> +        }
>>>>> +
>>>>> +        /* Partial element, adjust base/len. */
>>>>> +        if (res) {
>>>>> +                iov->iov_len  -= res;
>>>>> +                iov->iov_base += res;
>>>>> +        }
>>>>> +
>>>>> +        *p_iov = iov;
>>>>> +
>>>>> +    return nr;
>>>>> +}
>>>>> +
>>>>> +/*
>>>>> + * Wrapper around sendmsg() to resubmit on EINTR or short write.
>>>>> Returns
>>>>> + * @true if all data was transmitted, or @false with errno for an
>>>>> error.
>>>>> + * Note: May alter @iov in place on resubmit.
>>>>> + */
>>>>> +static bool sendmsg_exact(int fd, struct iovec *iov, unsigned int
>>>>> nr)
>>>>> +{
>>>>> +    struct msghdr hdr = {
>>>>> +        .msg_iov = iov,
>>>>> +        .msg_iovlen = nr,
>>>>> +    };
>>>>> +
>>>>> +    /* Sanity check first element isn't empty */
>>>>> +    assert(iov->iov_len == sizeof(struct xsd_sockmsg));
>>>>
>>>> Can you please move this assert() into write_request(), avoiding to
>>>> have
>>>> 2 copies of it?
>>>
>>> It was more relevant before update_iov() was split out.
>>>
>>> But, there's exactly the same assertion in the write_request()'s
>>> caller,
>>> so I'd prefer to simply drop it if that's ok?
>>>
>>> The writev()/sendmsg() won't malfunction if the first element is 0, and
>>> update_iov() will now cope too, so I don't think it's necessary.
>>
>> Fine with me.
>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks.

>
> Looks like xs_write_all() is now unused internally, but it's an
> exposed library function.  I guess it can just be kept instead of
> bumping the library version.

I have a /dev/null shaped hole I'm itching to file it in, but that is
going to need a soname bump.  It's just one of many dubious functions
exposed...

One mess at a time.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 14:29:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 14:29:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763299.1173556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWGVn-0000PE-6i; Tue, 23 Jul 2024 14:29:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763299.1173556; Tue, 23 Jul 2024 14:29: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 1sWGVn-0000P7-3X; Tue, 23 Jul 2024 14:29:07 +0000
Received: by outflank-mailman (input) for mailman id 763299;
 Tue, 23 Jul 2024 14: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=xgPy=OX=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sWGVl-0000OU-Dt
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 14:29:05 +0000
Received: from fout1-smtp.messagingengine.com (fout1-smtp.messagingengine.com
 [103.168.172.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e75f12f6-48ff-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 16:29:02 +0200 (CEST)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46])
 by mailfout.nyi.internal (Postfix) with ESMTP id 13EED1380340
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 10:29:00 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute2.internal (MEProxy); Tue, 23 Jul 2024 10:29:00 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 10:28: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: e75f12f6-48ff-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:content-type:content-type:date:date
	:from:from:in-reply-to:message-id:mime-version:reply-to:subject
	:subject:to:to; s=fm2; t=1721744940; x=1721831340; bh=YgfT7mscqH
	S498jIZyCl52XDbsmT1MApm9rfgZLU06I=; b=MAmkHJ+QxtVFm+jLrwOVp7rwJU
	n1TSa+zBFy1Xhfh8GgIJ6yvG161A/ZmG1lJu2/+qvsEmPwD4E4f23FIOPj3S17pC
	ZMotn526PZ/zwfeG4kRHZQPX4Ko0prPoGEPn+ZEt/LoXJS9z6nPVMpMic4vwAkKO
	HJeuT0oHgV7IKaofNOZM9EzGKS+6PaW2i5WXyeuAalkfwBEAcPWQDDvV/Ob9AYSH
	aBBcZG8oh80nRZU8DcQkhToKb2yjh/E7cXJhnIHQhqo9GryRE+mma3Sg1QmZ8SOi
	wvYShJv8SCfoY6Ua4YBucRULYWofkNPpH7wB6gn104YdrL7HE+ZcI1jGft7g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:message-id
	:mime-version:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1721744940; x=1721831340; bh=YgfT7mscqHS498jIZyCl52XDbsmT1MApm9r
	fgZLU06I=; b=CYcDTvG2GF9t+w6hAAqeH3lNXyFeO9Jwm31DKSCVig8KLiMX3nq
	39ZSlg2fS4GwQCXYXJ2RzGqhc9Zdsxzi6fw4mlf1wBW4bBJaPUE2oYJcrRWGj1ZX
	fuwp44JC+cwChNS2yGU7+aA6Ehm9u1b2Y62Y86NVEWxJb2OtauGKLNnxC4z3F9PN
	z1V7MaqtTmWnwsJUpI+N4y1pmheklLa7To2Jv1+gqNuo00cCwTytqPWM+leBqu8R
	dUkHWC+yf7beujh5XATLBfsQx72/3zbwdOLW05UsTpsB9v7nsCfBsrlXXbCEjhBk
	wy1QsYPPD7o/HEa4tcV93I3h0nwRfiwKvyw==
X-ME-Sender: <xms:K76fZh_DQl0nj6URxKlBqt42MUU6BEDDquz9ZAOys4yui3O85cp5eA>
    <xme:K76fZlsKRbuqAM-_KS7meyyy_WrItZz98TxVM4qIChRZ-BHrOdtUS8XMNNYfte-U7
    D3vJnqPhbQ48Q>
X-ME-Received: <xmr:K76fZvCC9zACRmWCFqMSCTZnJM1jOl_ru5WTV-cQKUzSszKdHRocIcmk060QpFKA8G9jdgIdyZkzpvtsW6BlPbdNh4bDEt8v8Q>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheelgdejiecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecunecujfgurhepfffhvffukfggtggusehgtderredttd
    ejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcu
    oehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenuc
    ggtffrrghtthgvrhhnpedtudfgteduveduieevvefgteeujeelgffggffhhffhhedtffef
    fefgudeugeefhfenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfh
    hrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
    pdhnsggprhgtphhtthhopedt
X-ME-Proxy: <xmx:K76fZlfMKVM_fV-oNg-fS4sNFPihKFjd5mi_cR3I4rQBM6gd-X14Zg>
    <xmx:K76fZmPv2QQ1Ik_pA-eNyQvOKq9RHg1byX3Y8M2tdtJJpT8OT6wkAg>
    <xmx:K76fZnl7COiBudj-IsVEMLRxbfSflDjRMg-EHFUbQ0LBZttTq2JQ0w>
    <xmx:K76fZgvatJ51tZOKdKr62MLQFDruf1p2vSo-qJ71WFW2hpavZILGvw>
    <xmx:LL6fZgUOOC_g4cRGlWWX4UwljWAFBOOqoFQK91753bxDwAryHzfeRy8b>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 23 Jul 2024 16:28:56 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: Assertion failed at arch/x86/genapic/x2apic.c:38 on S3 resume nested
 in KVM on AMD
Message-ID: <Zp--KHAFuDVnH1Oq@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="PgnEH3+1U+YAOMDK"
Content-Disposition: inline


--PgnEH3+1U+YAOMDK
Content-Type: multipart/mixed; protected-headers=v1;
	boundary="RVpJQbIQ0wZipRE6"
Content-Disposition: inline
Date: Tue, 23 Jul 2024 16:28:56 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: Assertion failed at arch/x86/genapic/x2apic.c:38 on S3 resume nested
 in KVM on AMD


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

Hi,

I'm observing a crash like the one below when trying to resume from S3.
It happens on Xen nested in KVM (QEMU 9.0, Linux 6.9.3) but only on AMD.
The very same software stack on Intel works just fine. QEMU is running
with "-cpu host,+svm,+invtsc -machine q35,kernel-irqchip=3Dsplit -device
amd-iommu,intremap=3Don -smp 2" among others.

    (XEN) Preparing system for ACPI S3 state.
    (XEN) Disabling non-boot CPUs ...
    (XEN) Broke affinity for IRQ1, new: {0-1}
    (XEN) Broke affinity for IRQ20, new: {0-1}
    (XEN) Broke affinity for IRQ22, new: {0-1}
    (XEN) Entering ACPI S3 state.
    (XEN) Finishing wakeup from ACPI S3 state.
    (XEN) Enabling non-boot CPUs  ...
    (XEN) Assertion 'cpumask_test_cpu(this_cpu, per_cpu(cluster_cpus, this_=
cpu))' failed at arch/x86/genapic/x2apic.c:38
    (XEN) ----[ Xen-4.20  x86_64  debug=3Dy  Not tainted ]----
    (XEN) CPU:    1
    (XEN) RIP:    e008:[<ffff82d04028862b>] x2apic.c#init_apic_ldr_x2apic_c=
luster+0x8a/0x1b9
    (XEN) RFLAGS: 0000000000010096   CONTEXT: hypervisor
    (XEN) rax: ffff830278a25f50   rbx: 0000000000000001   rcx: ffff82d0405e=
1700
    (XEN) rdx: 0000003233412000   rsi: ffff8302739da2d8   rdi: 000000000000=
0000
    (XEN) rbp: 00000000000000c8   rsp: ffff8302739d7e78   r8:  000000000000=
0001
    (XEN) r9:  ffff8302739d7fa0   r10: 0000000000000001   r11: 000000000000=
0000
    (XEN) r12: 0000000000000001   r13: 0000000000000001   r14: 000000000000=
0000
    (XEN) r15: 0000000000000000   cr0: 000000008005003b   cr4: 000000000075=
06e0
    (XEN) cr3: 000000007fa7a000   cr2: 0000000000000000
    (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 000000000000=
0000
    (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
    (XEN) Xen code around <ffff82d04028862b> (x2apic.c#init_apic_ldr_x2apic=
_cluster+0x8a/0x1b9):
    (XEN)  cf 82 ff ff eb b7 0f 0b <0f> 0b 48 8d 05 9c fc 33 00 48 8b 0d a5=
 0a 35 00
    (XEN) Xen stack trace from rsp=3Dffff8302739d7e78:
    (XEN)    0000000000000000 00000000000000c8 0000000000000001 00000000000=
00001
    (XEN)    0000000000000000 ffff82d0402f1d83 ffff8302739d7fff 00000000000=
000c8
    (XEN)    0000000000000001 0000000000000001 ffff82d04031adb9 00000000000=
00001
    (XEN)    0000000000000000 0000000000000000 0000000000000000 ffff82d0402=
76677
    (XEN)    0000000000000000 0000000000000000 0000000000000000 00000000000=
00000
    (XEN)    ffff88810037c000 0000000000000001 0000000000000246 deadbeefdea=
df00d
    (XEN)    0000000000000001 aaaaaaaaaaaaaaaa 0000000000000000 ffffffff811=
d130a
    (XEN)    deadbeefdeadf00d deadbeefdeadf00d deadbeefdeadf00d 00000100000=
00000
    (XEN)    ffffffff811d130a 000000000000e033 0000000000000246 ffffc900400=
b3ef8
    (XEN)    000000000000e02b 000000000000beef 000000000000beef 00000000000=
0beef
    (XEN)    000000000000beef 0000e01000000001 ffff8302739de000 00000032334=
12000
    (XEN)    00000000007506e0 0000000000000000 0000000000000000 00000002000=
00000
    (XEN)    0000000000000002
    (XEN) Xen call trace:
    (XEN)    [<ffff82d04028862b>] R x2apic.c#init_apic_ldr_x2apic_cluster+0=
x8a/0x1b9
    (XEN)    [<ffff82d0402f1d83>] S setup_local_APIC+0x26/0x449
    (XEN)    [<ffff82d04031adb9>] S start_secondary+0x1c4/0x37a
    (XEN)    [<ffff82d040276677>] S __high_start+0x87/0xd0
    (XEN)=20
    (XEN)=20
    (XEN) ****************************************
    (XEN) Panic on CPU 1:
    (XEN) Assertion 'cpumask_test_cpu(this_cpu, per_cpu(cluster_cpus, this_=
cpu))' failed at arch/x86/genapic/x2apic.c:38
    (XEN) ****************************************

On a release build, it hits "BUG" later on in the same file.

I've tested the attached patch from Roger, but that assertion didn't
fail (or it crashed before reaching that part).

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

--RVpJQbIQ0wZipRE6
Content-Type: text/plain; charset=utf-8
Content-Disposition: attachment; filename="debug-amd-suspend.patch"
Content-Transfer-Encoding: quoted-printable

diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c
index 371dd100c742..fe8e664e1b63 100644
--- a/xen/arch/x86/genapic/x2apic.c
+++ b/xen/arch/x86/genapic/x2apic.c
@@ -30,8 +30,11 @@ static inline u32 x2apic_cluster(unsigned int cpu)
 static void cf_check init_apic_ldr_x2apic_cluster(void)
 {
     unsigned int cpu, this_cpu =3D smp_processor_id();
+    uint32_t id =3D apic_read(APIC_ID);
+    uint32_t ldr =3D apic_read(APIC_LDR);
=20
-    per_cpu(cpu_2_logical_apicid, this_cpu) =3D apic_read(APIC_LDR);
+    ASSERT(x2apic_ldr_from_id(id) =3D=3D ldr);
+    per_cpu(cpu_2_logical_apicid, this_cpu) =3D ldr;
=20
     if ( per_cpu(cluster_cpus, this_cpu) )
     {
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 9cfc82666ae5..2a010a6363b7 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -1064,11 +1064,6 @@ static const struct hvm_mmio_ops vlapic_mmio_ops =3D=
 {
     .write =3D vlapic_mmio_write,
 };
=20
-static uint32_t x2apic_ldr_from_id(uint32_t id)
-{
-    return ((id & ~0xf) << 12) | (1 << (id & 0xf));
-}
-
 static void set_x2apic_id(struct vlapic *vlapic)
 {
     const struct vcpu *v =3D vlapic_vcpu(vlapic);
diff --git a/xen/arch/x86/include/asm/apic.h b/xen/arch/x86/include/asm/api=
c.h
index 7b5a0832c05e..8a892fa2fa5b 100644
--- a/xen/arch/x86/include/asm/apic.h
+++ b/xen/arch/x86/include/asm/apic.h
@@ -148,6 +148,11 @@ static inline void ack_APIC_irq(void)
 	apic_write(APIC_EOI, 0);
 }
=20
+static inline uint32_t x2apic_ldr_from_id(uint32_t id)
+{
+    return ((id & ~0xf) << 12) | (1 << (id & 0xf));
+}
+
 extern int get_maxlvt(void);
 extern void clear_local_APIC(void);
 extern void connect_bsp_APIC (void);


--RVpJQbIQ0wZipRE6--

--PgnEH3+1U+YAOMDK
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmafvigACgkQ24/THMrX
1yxa1AgAi9fZo7ap/6FN8R2gaH4mbqwE7pLJHxCat0qoNyG+9U4rNOTbUOMjSFfD
IwgNlOKCYYqddniExdejKt7KLREsBhr8SHgg1/IPd/e85Lfzg8Nx9KT0hoTr71EG
Hb2SVao150m41SuWOJtRHlmyI9yZ4iLfl+6STFkzx+MWnW/amk6OGMKhg3k1vxU8
CknvFSnqpisEHeF8DN7P2eywnpt+Adb4/67YYypgVhU3AFDD5erJH0+HX841W1OR
WvslzihfXoNH6NabL1m/OXB0Y5ySOTMiwjHCER+9cBYW1hJePUy8mItry7FQ4F08
6/fE+hP+bQ7VQ02NkWHqNwCush0zxw==
=9cM8
-----END PGP SIGNATURE-----

--PgnEH3+1U+YAOMDK--


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 15:04:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 15:04:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763321.1173589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWH3w-0006qW-Ux; Tue, 23 Jul 2024 15:04:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763321.1173589; Tue, 23 Jul 2024 15:04: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 1sWH3w-0006qP-SD; Tue, 23 Jul 2024 15:04:24 +0000
Received: by outflank-mailman (input) for mailman id 763321;
 Tue, 23 Jul 2024 15:04: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=oZHU=OX=bounce.vates.tech=bounce-md_30504962.669fc672.v1-0a6f321e1f89430d8af585d8d832d8d4@srs-se1.protection.inumbo.net>)
 id 1sWH3u-0006qJ-G0
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 15:04:22 +0000
Received: from mail135-10.atl141.mandrillapp.com
 (mail135-10.atl141.mandrillapp.com [198.2.135.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d63cbd1e-4904-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 17:04:20 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-10.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4WT0mL1znRz5QkLlb
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 15:04:18 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0a6f321e1f89430d8af585d8d832d8d4; Tue, 23 Jul 2024 15:04: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: d63cbd1e-4904-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721747058; x=1722007558;
	bh=G2+62SMsG/3zTgnoIRu/l3PF01RL/kdmkRp0/6a8U4Y=;
	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=WObpStvPtxoZFZzQTWXxuJ2P01UoQNO5EczoOeYaqf8dbBrLWloj4i5nAEKmILguW
	 /owFrKYHLizVHJAg9QvlqHLej2WW7c7zV4a5dexkv2hTcRlMtJc2BNDcDCBPPYZRr1
	 8nSl6yakRTd18aGeXHGpJvqX5nBhuQVYHcfKhgKyOp4J1+B5Ul2MXQn9dE+2aRGbok
	 6A/4lAFZ1Lh4hLyEGb/UCqcHN8hHGxt2LZ3RC9/93T8LlPgTzkOKoNnYgUDfIZT1u9
	 5e4KxWuB139iEEcEwCi3cTEjGltBS29BDVXu+OVtmVkhIpAgw1AHvAhc6McnaBNbCw
	 W8uM/CxAJAVUQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721747058; x=1722007558; i=anthony.perard@vates.tech;
	bh=G2+62SMsG/3zTgnoIRu/l3PF01RL/kdmkRp0/6a8U4Y=;
	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=loNbCSHs8NOJNTnLssSWEidHR2VwD8MDkZCExOcky5U/jGI8iS5HriTWfLqtgJmjE
	 RdSQ9HguKZ5W0mlljf+7bRNiEZezy5YRhuaAieIRj9tlVIxFvduCd8tZAaEnFNp1/F
	 TmWd0E4/7asdL8iNZKj2jWy06f1yGm41yXvNumhJUpENth4q7RTA/xRB4iZ+k4JJK9
	 f/yr3adDa89x07hvo5QJmJry+Kj9Wl+sedwzecm9py7SZhyjd5fjRnQsXRPPq/gzgY
	 NMAMwbSIPGrKDXtJjZfFbxprJpjlXa6PjJSAa79D8d82zBSl0EwyzVfqBLXkxzeg2D
	 pvCVyplWTKT8g==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20for-4.19]=20hotplug:=20Restore=20block-tap=20phy=20compatibility=20(again)?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721747057079
To: Jason Andryuk <jandryuk@gmail.com>
Cc: xen-devel@lists.xenproject.org, Jason Andryuk <jason.andryuk@amd.com>
Message-Id: <Zp/GcCUVPX/d/7qx@l14>
References: <20240715234631.4468-1-jandryuk@gmail.com>
In-Reply-To: <20240715234631.4468-1-jandryuk@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.0a6f321e1f89430d8af585d8d832d8d4?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240723:md
Date: Tue, 23 Jul 2024 15:04:18 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Jul 15, 2024 at 07:46:31PM -0400, Jason Andryuk wrote:
> "$dev" needs to be set correctly for backendtype=phy as well as
> backendtype=tap.  Move the setting into the conditional, so it can be
> handled properly for each.
> 
> (dev could be captured during tap-ctl allocate for blktap module, but it
> would not be set properly for the find_device case.  The backendtype=tap
> case would need to be handled regardless.)
> 
> Fixes: 6fcdc84927 ("hotplug: Restore block-tap phy compatibility")

Do you mean f16ac12bd418 ("hotplug: Restore block-tap phy compatibility") ?

> Fixes: 76a484193d ("hotplug: Update block-tap")
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

With the fixes tag fix:
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

> ---
> Tested with backendtype=tap & tapback and backendtype=phy & blktap
> module.

Thanks for the extra testing.

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 Jul 23 15:28:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 15:28:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763332.1173600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWHQn-00029o-NU; Tue, 23 Jul 2024 15:28:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763332.1173600; Tue, 23 Jul 2024 15:28: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 1sWHQn-00029h-Kc; Tue, 23 Jul 2024 15:28:01 +0000
Received: by outflank-mailman (input) for mailman id 763332;
 Tue, 23 Jul 2024 15:28: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=W1nq=OX=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sWHQm-00029b-4t
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 15:28:00 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20603.outbound.protection.outlook.com
 [2a01:111:f400:7ea9::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 22d9e595-4908-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 17:27:57 +0200 (CEST)
Received: from CH2PR03CA0027.namprd03.prod.outlook.com (2603:10b6:610:59::37)
 by MN2PR12MB4424.namprd12.prod.outlook.com (2603:10b6:208:26a::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.17; Tue, 23 Jul
 2024 15:27:53 +0000
Received: from DS2PEPF0000343F.namprd02.prod.outlook.com
 (2603:10b6:610:59:cafe::b0) by CH2PR03CA0027.outlook.office365.com
 (2603:10b6:610:59::37) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.29 via Frontend
 Transport; Tue, 23 Jul 2024 15:27:53 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS2PEPF0000343F.mail.protection.outlook.com (10.167.18.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.11 via Frontend Transport; Tue, 23 Jul 2024 15:27:53 +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, 23 Jul
 2024 10:27:51 -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, 23 Jul
 2024 10:27:51 -0500
Received: from [172.23.111.139] (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, 23 Jul 2024 10:27: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: 22d9e595-4908-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VrY/OL2PomZowaW/VUnvc7ULU7yTZ4EDh5XcTVBziTw08yVnZ66GZlPMzLkbW1aCiu3jRTcJyjW9zMEEIV0W3iw3wa9LOsLk6RfLpTQ6wrG8gTCHEmfwzHmNgX65GuxOu+OEE1xfi3DW67tjsnfbT4eCk1TD/Z47OR2LFv4rMeoWALA4a2eOsT5BBRHjmeJfhKp/YDAAUOL9PPPek9jgl2ipu3CL637xhkFjdD6hmT3IvdVYTR+m+NSafesbFWL8l1vO3IdRcun1Tr4f3c2QETyGJNJMB2VqeMKEBJY4E2s3NSB/8/fs+bBAHZrw8IUAEa+e2qyp/oYsRLKn8FPKwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1Qy4Un0zlD49c88NTjvDkppgHkGuxNhRKGSB9Yg66RM=;
 b=QrLNLZseSus7BCV7cuZ0HGachz8sitLVVUVMImeqIslcLN6H6DHvPKKY1fdskqXhcIvLMshU6e+Ax7XKEhOJnSZrFckdNO+qzAxedLaFDxost9yqcKoNYSNyJ2j3mFQJLP4W4A4zzEi7dKSGFprRjyT7x0I3pGDAnJnvWFV3c1uBiT+suKwjDMa1rDlzOxPFqncpXd8/eq/S+YI6TyLSFuQKEm8G8B2Ft/kQeppdizqTPpo5JABN1XjZeEMUgh+GDPe3pEKEmBl/wFjklI4Hx3TmLO/aCYq5Tf0SU2Ym4UxnKopE+VhxNDJv8oQxKnLdsJpwhxd1EyCrX7qvH2AqOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=vates.tech smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1Qy4Un0zlD49c88NTjvDkppgHkGuxNhRKGSB9Yg66RM=;
 b=UUEmV0ZezzWQufOp4HRT6iTRNr0BGinaTPoaxNv/exNBrz1VR2Ecqes6osGooFzQd5FqgILM3OnoEtnI21YW0hFUP/srxrUvG3PYLIvOcEnX+urkosTS8OrdNZAEs1ZqZuQzc84LbOT0AqHXKBfS9zpjPmX9LDTQie3gCtGworQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <ac3d7bcd-6ed8-4ded-bb5d-ab9c228e9579@amd.com>
Date: Tue, 23 Jul 2024 11:04:47 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] hotplug: Restore block-tap phy compatibility
 (again)
To: Anthony PERARD <anthony.perard@vates.tech>, Jason Andryuk
	<jandryuk@gmail.com>, <oleksii.kurochko@gmail.com>
CC: <xen-devel@lists.xenproject.org>
References: <20240715234631.4468-1-jandryuk@gmail.com> <Zp/GcCUVPX/d/7qx@l14>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <Zp/GcCUVPX/d/7qx@l14>
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: DS2PEPF0000343F:EE_|MN2PR12MB4424:EE_
X-MS-Office365-Filtering-Correlation-Id: 8eb7eec4-4952-436f-c7bd-08dcab2c052e
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?U2pUR2pOcjkwQmlGek5KV2d5QUw1dVNlWU1oRUUyTEUySTFkMTNZVGJlZDQx?=
 =?utf-8?B?amFmTTZKYXhuRFVaMEFkUGtkWGV4TnpUcTJucVh0UitKOUxyL0gyWHlpaXhX?=
 =?utf-8?B?YjRVTEkrUGZhaXJNNEQxYW5QTXhhWkg3L2hwSzR1ODM3M00zZk9HRHI1aWNh?=
 =?utf-8?B?S0swQm1rVjgwblFPQkFocHFiQ0FqT2FPdTh5YkJOSFoxOVIvTWU3L3dRd2N5?=
 =?utf-8?B?SG5vemc2U0hTYlV3ODAwN2lFT0cra0tLZjM3UHdkUmIyTkE2QXdmcTY0ZDZD?=
 =?utf-8?B?SFV3LytPbHV1S1pFODFMYmt2cExoWUtZOGV5N1RaUWdWR0JHZEprNVRCNGpF?=
 =?utf-8?B?QTU5ZUpSOWhSaXdabmViUzVJZlgvQXdaMTZQMnFRWEZQUC8zeHFtMzBpOXEr?=
 =?utf-8?B?Nmk5MEV2MStHUWdyT2tCUXpMZXF2ZzFrajRXMnIyTWdyZHhNQmp6MkRoMkJX?=
 =?utf-8?B?Y0tNT1JBZ2E4MmxCNHlYQ1VnYi9rL0Zud0t2MlVkdmx1WmFPNC8zWE5VOGdu?=
 =?utf-8?B?Ukp3Q3BycFdLYXVvQzhkcmdpcVZLckIwa3ZZVlFycFhUVVplVllMVkk2aWNp?=
 =?utf-8?B?c1NueGpsSHlCbVUrSEZ5SlhIOWIzTnY1WjhzdG1LV3B4U2FGNUhOZnhvajB1?=
 =?utf-8?B?dndlUTBpK3pCOHQ1eDlOd0tERSszZ0dSS0pkSzJiOEd1Z3VTcy9kRDN0WUYr?=
 =?utf-8?B?OWJEMDAwalpsY0EvcnZwUW5MNXFqUWJIZDVGa09oYVRVSHRVU2ViZ3I1Z1Vk?=
 =?utf-8?B?WEkxdEgzSFA3TzJ0NmRWTmdHOXRGUjJTbHhiaERLeXl5L2RTQ05FUjBhSG9W?=
 =?utf-8?B?MXhTRllMVlNDUTJoVmsxRVgzN3FodzZ2alErc2xEcXJiK2swZ0FKTXUxYVVX?=
 =?utf-8?B?VUovMDVFQTREVmJyWWhWU1Y1Z1IrRXJ3MHJCUnRub1Fvb0lDRGtHeFJmTWwy?=
 =?utf-8?B?TVBNSnVyVXRiWkhrM1lyY3E3TUhWaElOMHV5QnJDSGpMMEtJb0ZHL0l5WjAw?=
 =?utf-8?B?Y01QK0pqdThJMkkwMU05NjczODZ5ZFJCYnFJSS9yYnVvOHpiVCtxelN4SkJF?=
 =?utf-8?B?Y1AybHJYWExPTTNNWEZUT3V4ejlFU2paQzJ5QllCemphSktjTi8yeHQ4QkRs?=
 =?utf-8?B?dDFjS0ttUHJwM21KdzdBT0huRkMwalNDVGZIeGRVdElkNW82NzhuOVhiek01?=
 =?utf-8?B?M0FYbExaKyttSFJoemJKK29SNW9jSU9pQ3RTRjJlYW9qNjluZVQ3WURYTHRy?=
 =?utf-8?B?UkxKeXo5STdzTzY2L3hkWHozU1ZxNXZydnRBbzZHcHBRaks1aWo0alg3eGUw?=
 =?utf-8?B?ZGU3WU1ybEhEQ1BRUWJ3dTExNUI0d21xcEZ2Q0Z2TTZ0cTFzNW9xdEJSR2RG?=
 =?utf-8?B?dFoweUlIa0FwWnk1Q1ZxbncwYTE0YThDdFM1R2Nhak4xaXFCVVVnRkhnWEdZ?=
 =?utf-8?B?NHRIYnZEN0RNQ0F1N0ZqQTlEQWpyQ3owUzVkbGh4cjhtZDBxU0hra1pCdmJv?=
 =?utf-8?B?clllV1JFQ3BWNmppTk50TUVsQ1JMMk9Vck5zT2tYVHdVRWp5N1U0UDMxSWhM?=
 =?utf-8?B?blZwNUUzekp6dkdGNk5iSHp4SnhhWE1ISGNLTFdWQi9WRzNtb0RFNDlxSTJG?=
 =?utf-8?B?R2JYZFRNRXlOUFRQVlF6RkpibkdxTnVpNFZOMzM4RWNsMnFlSG11REdhbitP?=
 =?utf-8?B?QnM2QlZVOEtOSFVRdVBEeGN5WS96RTRuSlBOaW11b284dTZ1WEd2b0dDN3Nn?=
 =?utf-8?B?ZVhsT0N3bUJJQjU2MElvWTRXQ0Nwb3h2T0pqZXN3MW4yekhHVE1mbW1GUnBt?=
 =?utf-8?B?R3c2UXZUMU8vWG9GR005aUpFcDBYQ3Zkc0dYanAzaktmdVNuelVycU5aaXJj?=
 =?utf-8?B?eEl4UUxrY2hObks2MWIyVVo4dUpOdXM0Z1ZmeW8zVWJXclA0d0UrTHZCUWZU?=
 =?utf-8?Q?jgun+LkGZjg6iQYDEq7QMcE0D48ZwuDN?=
X-Forefront-Antispam-Report:
	CIP:165.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: 23 Jul 2024 15:27:53.2536
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8eb7eec4-4952-436f-c7bd-08dcab2c052e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF0000343F.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4424

On 2024-07-23 11:04, Anthony PERARD wrote:
> On Mon, Jul 15, 2024 at 07:46:31PM -0400, Jason Andryuk wrote:
>> "$dev" needs to be set correctly for backendtype=phy as well as
>> backendtype=tap.  Move the setting into the conditional, so it can be
>> handled properly for each.
>>
>> (dev could be captured during tap-ctl allocate for blktap module, but it
>> would not be set properly for the find_device case.  The backendtype=tap
>> case would need to be handled regardless.)
>>
>> Fixes: 6fcdc84927 ("hotplug: Restore block-tap phy compatibility")
> 
> Do you mean f16ac12bd418 ("hotplug: Restore block-tap phy compatibility") ?

Yes!  Thanks for checking that - I must have grabbed the hash from a 
local branch.

>> Fixes: 76a484193d ("hotplug: Update block-tap")
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> With the fixes tag fix:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks again.

Oleksii, this is a fix (for an incomplete fix) for 4.19.  76a484193d 
broke compatibility for block-tap with the blktap2 kernel model (when 
adding support for tapback).  This finishes restoring blktap2 support.

I realize it's late in the release if you don't want to take it.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 15:36:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 15:36:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763342.1173609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWHZI-0003wp-LB; Tue, 23 Jul 2024 15:36:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763342.1173609; Tue, 23 Jul 2024 15:36: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 1sWHZI-0003wi-IK; Tue, 23 Jul 2024 15:36:48 +0000
Received: by outflank-mailman (input) for mailman id 763342;
 Tue, 23 Jul 2024 15:36: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=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWHZH-0003vM-9H
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 15:36:47 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5dd7bd1f-4909-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 17:36:45 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2eeb1ba0481so83805841fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 08:36:45 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef3074e87asm7999261fa.81.2024.07.23.08.36.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 08:36: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: 5dd7bd1f-4909-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721749004; x=1722353804; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=lIj8zvACM1852usyHUDax4NYrsFS+cOKd746s7hhDNc=;
        b=e75Rbu9R+g3wbhfTmY9NnIgENpNwrPk2+zZE2tc4Gxur9+Lp+JTWM9RgZ3GnKym5Gq
         HydkMTbJtdCRSq+h6LnTaL3YRDFzf6gCKLz6d1V50uWf2PDVs4TaZbU57SVjvxt1CcKe
         UwU5dCCNFstGSEMYYGHIQcA6K/eClHu7Q7i4B8T8CF4+5Zl7XBri9W/2wT7Kl5X9Z+Dy
         2fIAQ5Is6XjbN6llM1sno+PFGU8eoIwEePG3vWMGGFWnZ7TaVVih+3/W7f116KKqrHDB
         naQzmJBfd60JLOJ0uM/xT03qW0FEcHumAx2Rw4B5XaiIhWsXpl7FpL5mz1KT88PkzJU+
         l9YA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721749004; x=1722353804;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=lIj8zvACM1852usyHUDax4NYrsFS+cOKd746s7hhDNc=;
        b=pfWu9pHNeX6MbHO93UEbvalHeg0A4aQOyjRg8u/P4TrPNeJhbtMalAqWyj9ueMRtEc
         mKo1TMFCje+xM8DDNaxLPjiSWGcwF0/y4yS+ygLQuzAesdRJC1PwG09SXn3dPKQIjttb
         6JByCbB877l38u4kIs6Rcr/fod3k3r4/ZawlJeyhQPqALu3OGlB9gfzNte1SEZd26iew
         pgIlJh+IgybBE75yZTwBgbCnNPIDk8VnIVy3AGHtmuzlqh5eH6v+YPjaYV2VKdjTV8o2
         c90f/QVvka4ePzr2eMS6+BiWEberTkw+FfToSLqrOBHGxHrm/kY/2Jouo/kuyV8SZr0+
         /now==
X-Forwarded-Encrypted: i=1; AJvYcCUYUb+qF/ZXRJRgyAERtiOE6U2p9Hmfcg1GvQpKhuW7opO90k0huS8b96Cuglcm59VBUdcOLDNfxq94RhS0SJAVUMDPrQ+qvO7ZoleycX4=
X-Gm-Message-State: AOJu0YyxN7N17LWvdtvfdrR3m6S/ZuSDp8Yq2peJ1Pp8si/ld0SHN+PR
	7nR1ZO9JcKisoTC+/RuilWd2vZfEDf9WPKMiL1NLTf3F2xEl1ZQ7
X-Google-Smtp-Source: AGHT+IGUG1Cu4hebyLvxuTbID6fkfEusAmO1p3EkqfATCHyQm/dqBTi0nC0ABFZXPfY88T7qC/HArA==
X-Received: by 2002:a2e:8ec9:0:b0:2ef:2658:98f2 with SMTP id 38308e7fff4ca-2ef265899ebmr63252341fa.33.1721749004085;
        Tue, 23 Jul 2024 08:36:44 -0700 (PDT)
Message-ID: <b7e248ae79aaded532d86453520fcb4cb7a7fb3b.camel@gmail.com>
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Stefano Stabellini
 <sstabellini@kernel.org>,  xen-devel@lists.xenproject.org, Julien Grall
 <julien@xen.org>
Date: Tue, 23 Jul 2024 17:36:42 +0200
In-Reply-To: <14ffb00d-d6ba-4c18-88c1-2601a2df8a8b@suse.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
	 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
	 <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
	 <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
	 <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
	 <26ae01e2-d085-48d7-8b1f-da1e44b01e53@xen.org>
	 <CAMacjJwWLjGcFbYEhCPyNEW_+sfb51+XtKqyBcc2JGm=D5bf0w@mail.gmail.com>
	 <97c82aca-0b8a-4b78-980b-0857dbdae80a@suse.com>
	 <4c9eb7a79c33c7cd2f6bde05b1fbc7770e662026.camel@gmail.com>
	 <14ffb00d-d6ba-4c18-88c1-2601a2df8a8b@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-23 at 12:02 +0200, Jan Beulich wrote:
> On 23.07.2024 10:55, oleksii.kurochko@gmail.com=C2=A0wrote:
> > On Tue, 2024-07-23 at 10:36 +0200, Jan Beulich wrote:
> > > On 23.07.2024 10:02, Oleksii Kurochko wrote:
> > > > On Mon, Jul 22, 2024 at 7:27=E2=80=AFPM Julien Grall <julien@xen.or=
g>
> > > > wrote:
> > > > > > > On 22/07/2024 15:44, Oleksii Kurochko wrote:
> > > > > > =C2=A0=C2=A0=C2=A0 /* Map a 4k page in a fixmap entry */
> > > > > > =C2=A0=C2=A0=C2=A0 void set_fixmap(unsigned map, mfn_t mfn, uns=
igned int
> > > > > > flags)
> > > > > > =C2=A0=C2=A0=C2=A0 {
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pte;
> > > > > >=20
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte =3D mfn_to_xen_e=
ntry(mfn, flags);
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte.pte |=3D PTE_LEA=
F_DEFAULT;
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixma=
p[pt_index(0,
> > > > > > FIXMAP_ADDR(map))],
> > > > > > pte);
> > > > >=20
> > > > > It would be saner to check if you are not overwriting any
> > > > > existing
> > > > > mapping as otherwise you will probably need a TLB flush.
> > > > >=20
> > > > > > =C2=A0=C2=A0=C2=A0 }
> > > > > >=20
> > > > > > =C2=A0=C2=A0=C2=A0 /* Remove a mapping from a fixmap entry */
> > > > > > =C2=A0=C2=A0=C2=A0 void clear_fixmap(unsigned map)
> > > > > > =C2=A0=C2=A0=C2=A0 {
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pte =3D {0};
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixma=
p[pt_index(0,
> > > > > > FIXMAP_ADDR(map))],
> > > > > > pte);
> > > > >=20
> > > > > Don't you need a TLB flush?
> > > > >=20
> > > > Inside write_pte() there is "sfence.vma".
> > >=20
> > > That's just a fence though, not a TLB flush.
> > From the privileged doc:
> > =C2=A0=C2=A0 ```
> > =C2=A0=C2=A0 SFENCE.VMA is also used to invalidate entries in the
> > =C2=A0=C2=A0 address-translation cache associated with a hart (see Sect=
ion
> > 4.3.2).=20
> > =C2=A0=C2=A0 ...
> > =C2=A0=C2=A0 The SFENCE.VMA is used to flush any local hardware caches
> > related to
> > =C2=A0=C2=A0 address translation.
> > =C2=A0=C2=A0 It is specified as a fence rather than a TLB flush to prov=
ide
> > cleaner
> > =C2=A0=C2=A0 semantics with respect to
> > =C2=A0=C2=A0 which instructions are affected by the flush operation and=
 to
> > support a
> > =C2=A0=C2=A0 wider variety of dynamic
> > =C2=A0=C2=A0 caching structures and memory-management schemes. SFENCE.V=
MA is
> > also
> > =C2=A0=C2=A0 used by higher
> > =C2=A0=C2=A0 privilege levels to synchronize page table writes and the
> > address
> > =C2=A0=C2=A0 translation hardware.
> > =C2=A0=C2=A0 ...
> > =C2=A0=C2=A0 ```
> > I read this as SFENCE.VMA is used not only for ordering of
> > load/stores,
> > but also to flush TLB ( which is a type of more general term as
> > address-translation cache, IIUIC ).
>=20
> Oh, I see. Kind of unexpected for an instruction of that name. Yet
> note
> how they talk about the local hart only. You need a wider scope TLB
> flush here.
Could you please clarify why it is needed wider?

Arm Xen flushed only local TLB.
RISC-V Linux kernel for fixmap also uses: local_flush_tlb_page().

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 15:37:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 15:37:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763346.1173620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWHZn-0004Ow-UH; Tue, 23 Jul 2024 15:37:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763346.1173620; Tue, 23 Jul 2024 15:37:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWHZn-0004Op-Qi; Tue, 23 Jul 2024 15:37:19 +0000
Received: by outflank-mailman (input) for mailman id 763346;
 Tue, 23 Jul 2024 15:37: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=ruWa=OX=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sWHZl-0003vM-QV
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 15:37:17 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 705d1af8-4909-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 17:37:16 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2f029e9c9cfso3525401fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 08:37:16 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7aa8d8d0cesm14750066b.138.2024.07.23.08.37.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 08:37: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: 705d1af8-4909-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721749036; x=1722353836; 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=vsYukT5Adc3Zz4LX9TkT7E7HSo4fS0rUzHIbtS+s5JQ=;
        b=IkxdY6iCMR5oiiCTiReTtahcmPri3SatDOqIEC8PcPe/j9Rp64bcCC8YnffluBRzYn
         pBXm1qzoSKqYxGue4jfRmMeQJ94icF0FlJfRxVubaDXU9nQqFH2Y0gfnBMcU0yCHrFyg
         bklM0rQIVOC1bHCINdwlOi8GuWIKagVzzhZC8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721749036; x=1722353836;
        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=vsYukT5Adc3Zz4LX9TkT7E7HSo4fS0rUzHIbtS+s5JQ=;
        b=ISgealvAht5mchJTKCoKDFLmAwDFTtGIFyGyRDHAqHpULuAlDuG2IGp4miT84aI6JX
         PCl+Xe5BPmKOMq/VLgtlgpj4XmUsJ2KDBCQiRTcsiVF3zKGDdXkU8A000pzbNQJPD1lW
         TMOyD9YgfKkVgGnY0JNOBWL5k7WEUlgPp6Uwubl/JCmrynO6gtehFEwETBspapem6RJP
         k86pFf794jZEV1JGf2Qbc2+ICrbcxx7A8zs703pr8C1gILTo/DDKe562EqBF/Trno2/t
         /d2NMrIw3hrhvnf5RTrVvo+IyvAIgAhl4z58mLY4tMyb/0IWgLtrj6dqa+OapzzwAM90
         zMBw==
X-Forwarded-Encrypted: i=1; AJvYcCWs0boWTNCGifAhotUzb952O2AxHP7aGHEapwAa8nUdPdLjMsr2qi8YWEAD7RvYQPyQBQpPBEuVXCKFfGYa0/FqOtt+31VU34Mu0rML/yU=
X-Gm-Message-State: AOJu0YwlZDx9QzBhIGfxkqJzxC6h6dVf4B1vTLhGwy1OkJDq7uvhcQOu
	z7SoDyLyOXqlyMrMKRGGbZ82h50+f1FIUXNvbUruuQqVsi36ZfbnvkGAA4ypJ4GA2LMNrUBaD1y
	Y
X-Google-Smtp-Source: AGHT+IF5nxZNtFMuNnScN89WmXtBMu5+26aFZ8AZKLz4WVlvJYGxWl9EIRpXwLAmKIqvYZNHXBm9aA==
X-Received: by 2002:a05:651c:10b1:b0:2ef:24f3:fb9c with SMTP id 38308e7fff4ca-2f02b98c668mr2133381fa.38.1721749035465;
        Tue, 23 Jul 2024 08:37:15 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 23 Jul 2024 16:37:12 +0100
Message-Id: <D2X13ED477J8.25JRFH9VEW33O@cloud.com>
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, "Oleksii Kurochko"
 <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19] x86/altcall: fix clang code-gen when using
 altcall in loop constructs
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Roger Pau Monne" <roger.pau@citrix.com>,
 <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.17.0
References: <20240723093117.99487-1-roger.pau@citrix.com>
In-Reply-To: <20240723093117.99487-1-roger.pau@citrix.com>

On Tue Jul 23, 2024 at 10:31 AM BST, Roger Pau Monne wrote:
> Yet another clang code generation issue when using altcalls.
>
> The issue this time is with using loop constructs around alternative_{,v}=
call
> instances using parameter types smaller than the register size.
>
> Given the following example code:
>
> static void bar(bool b)
> {
>     unsigned int i;
>
>     for ( i =3D 0; i < 10; i++ )
>     {
>         int ret_;
>         register union {
>             bool e;
>             unsigned long r;
>         } di asm("rdi") =3D { .e =3D b };
>         register unsigned long si asm("rsi");
>         register unsigned long dx asm("rdx");
>         register unsigned long cx asm("rcx");
>         register unsigned long r8 asm("r8");
>         register unsigned long r9 asm("r9");
>         register unsigned long r10 asm("r10");
>         register unsigned long r11 asm("r11");
>
>         asm volatile ( "call %c[addr]"
>                        : "+r" (di), "=3Dr" (si), "=3Dr" (dx),
>                          "=3Dr" (cx), "=3Dr" (r8), "=3Dr" (r9),
>                          "=3Dr" (r10), "=3Dr" (r11), "=3Da" (ret_)
>                        : [addr] "i" (&(func)), "g" (func)
>                        : "memory" );
>     }
> }
>
> See: https://godbolt.org/z/qvxMGd84q
>
> Clang will generate machine code that only resets the low 8 bits of %rdi
> between loop calls, leaving the rest of the register possibly containing
> garbage from the use of %rdi inside the called function.  Note also that =
clang
> doesn't truncate the input parameters at the callee, thus breaking the ps=
ABI.
>
> Fix this by turning the `e` element in the anonymous union into an array =
that
> consumes the same space as an unsigned long, as this forces clang to rese=
t the
> whole %rdi register instead of just the low 8 bits.
>
> Fixes: 2ce562b2a413 ('x86/altcall: use a union as register type for funct=
ion parameters on clang')
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
> Adding Oleksii as to whether this could be considered for 4.19: it's stri=
ctly
> limited to clang builds, plus will need to be backported anyway.
> ---
>  xen/arch/x86/include/asm/alternative.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/includ=
e/asm/alternative.h
> index 0d3697f1de49..e63b45927643 100644
> --- a/xen/arch/x86/include/asm/alternative.h
> +++ b/xen/arch/x86/include/asm/alternative.h
> @@ -185,10 +185,10 @@ extern void alternative_branches(void);
>   */
>  #define ALT_CALL_ARG(arg, n)                                            =
\
>      register union {                                                    =
\
> -        typeof(arg) e;                                                  =
\
> +        typeof(arg) e[sizeof(long) / sizeof(arg)];                      =
\
>          unsigned long r;                                                =
\
>      } a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D {                       =
  \
> -        .e =3D ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); }) =
  \
> +        .e[0] =3D ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); =
})\
>      }
>  #else
>  #define ALT_CALL_ARG(arg, n) \

Don't we want BUILD_BUG_ON(sizeof(long) % sizeof(arg) =3D=3D 0) instead? Ot=
herwise
odd sizes will cause the wrong union size to prevail, and while I can't see
today how those might come to happen there's Murphy's law.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 15:49:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 15:49:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763360.1173630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWHln-0006Ol-1Q; Tue, 23 Jul 2024 15:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763360.1173630; Tue, 23 Jul 2024 15:49:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWHlm-0006Oe-Tz; Tue, 23 Jul 2024 15:49:42 +0000
Received: by outflank-mailman (input) for mailman id 763360;
 Tue, 23 Jul 2024 15:49:41 +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 1sWHll-0006OV-Px
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 15:49:41 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sWHlj-0001LW-NN; Tue, 23 Jul 2024 15:49:39 +0000
Received: from [15.248.3.91] (helo=[10.24.67.27])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sWHlj-0006YQ-FU; Tue, 23 Jul 2024 15:49:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=wUzWCTlUGrLKR24h9GKvZ3wynnbCjONG2LGEBDsu52c=; b=xkhMwE9YcMNqkoMSCp0BgjO0gv
	D7J7bZQyCU+sl0X/8jtGzqRrTD1DpIYhOyc9w7JC5a6izSuM61f+RRJlG2/vsfrUGtWYpXAw7D2Hl
	hF/jeuxc3wJ/n4FImEKZailPyBYYTwnO8daDPMuRortMNfSyMfd70+iCu0sfkNFSBgyc=;
Message-ID: <9baa3203-b8d0-4774-a2a5-7ba61b213f1c@xen.org>
Date: Tue, 23 Jul 2024 16:49:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
Content-Language: en-GB
To: oleksii.kurochko@gmail.com, 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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
 <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
 <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
 <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
 <26ae01e2-d085-48d7-8b1f-da1e44b01e53@xen.org>
 <CAMacjJwWLjGcFbYEhCPyNEW_+sfb51+XtKqyBcc2JGm=D5bf0w@mail.gmail.com>
 <97c82aca-0b8a-4b78-980b-0857dbdae80a@suse.com>
 <4c9eb7a79c33c7cd2f6bde05b1fbc7770e662026.camel@gmail.com>
 <14ffb00d-d6ba-4c18-88c1-2601a2df8a8b@suse.com>
 <b7e248ae79aaded532d86453520fcb4cb7a7fb3b.camel@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <b7e248ae79aaded532d86453520fcb4cb7a7fb3b.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Oleksii,

On 23/07/2024 16:36, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-07-23 at 12:02 +0200, Jan Beulich wrote:
>> On 23.07.2024 10:55, oleksii.kurochko@gmail.com wrote:
>>> On Tue, 2024-07-23 at 10:36 +0200, Jan Beulich wrote:
>>>> On 23.07.2024 10:02, Oleksii Kurochko wrote:
>>>>> On Mon, Jul 22, 2024 at 7:27 PM Julien Grall <julien@xen.org>
>>>>> wrote:
>>>>>>>> On 22/07/2024 15:44, Oleksii Kurochko wrote:
>>>>>>>      /* Map a 4k page in a fixmap entry */
>>>>>>>      void set_fixmap(unsigned map, mfn_t mfn, unsigned int
>>>>>>> flags)
>>>>>>>      {
>>>>>>>          pte_t pte;
>>>>>>>
>>>>>>>          pte = mfn_to_xen_entry(mfn, flags);
>>>>>>>          pte.pte |= PTE_LEAF_DEFAULT;
>>>>>>>          write_pte(&xen_fixmap[pt_index(0,
>>>>>>> FIXMAP_ADDR(map))],
>>>>>>> pte);
>>>>>>
>>>>>> It would be saner to check if you are not overwriting any
>>>>>> existing
>>>>>> mapping as otherwise you will probably need a TLB flush.
>>>>>>
>>>>>>>      }
>>>>>>>
>>>>>>>      /* Remove a mapping from a fixmap entry */
>>>>>>>      void clear_fixmap(unsigned map)
>>>>>>>      {
>>>>>>>          pte_t pte = {0};
>>>>>>>          write_pte(&xen_fixmap[pt_index(0,
>>>>>>> FIXMAP_ADDR(map))],
>>>>>>> pte);
>>>>>>
>>>>>> Don't you need a TLB flush?
>>>>>>
>>>>> Inside write_pte() there is "sfence.vma".
>>>>
>>>> That's just a fence though, not a TLB flush.
>>>  From the privileged doc:
>>>     ```
>>>     SFENCE.VMA is also used to invalidate entries in the
>>>     address-translation cache associated with a hart (see Section
>>> 4.3.2).
>>>     ...
>>>     The SFENCE.VMA is used to flush any local hardware caches
>>> related to
>>>     address translation.
>>>     It is specified as a fence rather than a TLB flush to provide
>>> cleaner
>>>     semantics with respect to
>>>     which instructions are affected by the flush operation and to
>>> support a
>>>     wider variety of dynamic
>>>     caching structures and memory-management schemes. SFENCE.VMA is
>>> also
>>>     used by higher
>>>     privilege levels to synchronize page table writes and the
>>> address
>>>     translation hardware.
>>>     ...
>>>     ```
>>> I read this as SFENCE.VMA is used not only for ordering of
>>> load/stores,
>>> but also to flush TLB ( which is a type of more general term as
>>> address-translation cache, IIUIC ).
I have to admit, I am a little because concerned with calling sfence.vma 
in write_pte() (this may only be because I am not very familiar with 
RISC-V).

We have cases where multiple entry will be written in a single 
map_pages_to_xen() call. So wouldn't this means that the local TLBs 
would be nuked for every write rather than once?


>>
>> Oh, I see. Kind of unexpected for an instruction of that name. Yet
>> note
>> how they talk about the local hart only. You need a wider scope TLB
>> flush here.
> Could you please clarify why it is needed wider?
> 
> Arm Xen flushed only local TLB.

Which code are you looking at? set_fixmap() will propagate the TLB flush 
to all innershareable CPUs.

The PMAP interface will do a local TLB flush because the interface can 
only be used during early boot where there is a single CPU running.

> RISC-V Linux kernel for fixmap also uses: local_flush_tlb_page().

I don't know how Linux is using set_fixmap(). But what matters is how 
Xen is using set_fixmap(). We have a couple of places in Xen where the 
fixmap needs to be accessed by all the CPUs.

Given this is a common interface in Xen, I think it makes sense to 
follow the same approach to avoid any confusion.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 16:09:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 16:09:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763368.1173640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWI55-0001l5-IP; Tue, 23 Jul 2024 16:09:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763368.1173640; Tue, 23 Jul 2024 16: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 1sWI55-0001ky-FA; Tue, 23 Jul 2024 16:09:39 +0000
Received: by outflank-mailman (input) for mailman id 763368;
 Tue, 23 Jul 2024 16: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=MQdi=OX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWI54-0001ks-Ls
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 16:09:38 +0000
Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com
 [2607:f8b0:4864:20::72f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3dee168-490d-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 18:09:35 +0200 (CEST)
Received: by mail-qk1-x72f.google.com with SMTP id
 af79cd13be357-79ef7ecc7d4so324658685a.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 09:09:35 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a19907b16bsm490919385a.123.2024.07.23.09.09.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 09: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: f3dee168-490d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721750974; x=1722355774; 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=q89dJC/DGWM1BJU0rAv3UH3szBqxTxSi37YwMuGmrsU=;
        b=SS89NGfPjw28JC4ci72Hco/Jk2CIbzxDmTapF6NvN410xTDo0FRsohBvu2w6iyVLyN
         g8Kzh9guNYdOMqyXvi4h5Qxgw5C14xv53g+Dmf28av1Nr40GFTHgeIOFEyW1C3Ykl7bn
         hqsAbNk5zO6/pvVhUjp6e2c1AsseoYsQlxKAU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721750974; x=1722355774;
        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=q89dJC/DGWM1BJU0rAv3UH3szBqxTxSi37YwMuGmrsU=;
        b=p99mIeG+JmzwNzxFNEqfbeqCrV6tR1S5bB2I7BUSA+r+ZfI2moWY6GUdaycQYSgheX
         GIsz5M4hH184KN0cKomvGC7/Jlr5keNpEgJortdcbYhd0pVk5kCGVgVlPCPmtSifJtzK
         nabXy0yv8nQ1hVvnYBGNnQLMd6Q40EXcMU7TTIAH7IrSt8OcUE057eCyDYHsXPCcX1nn
         2+b2m1hZBufKeS0D+5gROit5gLmGwnsnfEUc/cRyeEEZukyRXOcY+EbRzOrjp7+OzJCO
         W9fgsOlNtY66yF6MJnu7h/h4znaofDwhVCVdUiANTDT+mBd+dpj8mngNu7AgXlRkomTx
         tqSQ==
X-Gm-Message-State: AOJu0YxlWjHyrTzfYrwbpTs4aubrjwwGgFLb+xMFhCZBBiGjXhlAmAtO
	JqutiBiT4f6sKBN9SSbLUCbEdIk7I488gCmpTgMsNNyDqhTvoGCViU4XC7P0HoQ=
X-Google-Smtp-Source: AGHT+IEwNh5dpsQpF5PXW2DA6Q8rl3CINenOqdAKd/nGPjuINZBGvchy9kKqZcLSvScjO1BZkXTXcw==
X-Received: by 2002:a05:620a:2683:b0:792:f429:9e9 with SMTP id af79cd13be357-7a1ca0ef0ccmr34260385a.22.1721750973942;
        Tue, 23 Jul 2024 09:09:33 -0700 (PDT)
Date: Tue, 23 Jul 2024 18:09:31 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19] x86/altcall: fix clang code-gen when using
 altcall in loop constructs
Message-ID: <Zp_VuwxqH3Mii8_W@macbook>
References: <20240723093117.99487-1-roger.pau@citrix.com>
 <D2X13ED477J8.25JRFH9VEW33O@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <D2X13ED477J8.25JRFH9VEW33O@cloud.com>

On Tue, Jul 23, 2024 at 04:37:12PM +0100, Alejandro Vallejo wrote:
> On Tue Jul 23, 2024 at 10:31 AM BST, Roger Pau Monne wrote:
> > Yet another clang code generation issue when using altcalls.
> >
> > The issue this time is with using loop constructs around alternative_{,v}call
> > instances using parameter types smaller than the register size.
> >
> > Given the following example code:
> >
> > static void bar(bool b)
> > {
> >     unsigned int i;
> >
> >     for ( i = 0; i < 10; i++ )
> >     {
> >         int ret_;
> >         register union {
> >             bool e;
> >             unsigned long r;
> >         } di asm("rdi") = { .e = b };
> >         register unsigned long si asm("rsi");
> >         register unsigned long dx asm("rdx");
> >         register unsigned long cx asm("rcx");
> >         register unsigned long r8 asm("r8");
> >         register unsigned long r9 asm("r9");
> >         register unsigned long r10 asm("r10");
> >         register unsigned long r11 asm("r11");
> >
> >         asm volatile ( "call %c[addr]"
> >                        : "+r" (di), "=r" (si), "=r" (dx),
> >                          "=r" (cx), "=r" (r8), "=r" (r9),
> >                          "=r" (r10), "=r" (r11), "=a" (ret_)
> >                        : [addr] "i" (&(func)), "g" (func)
> >                        : "memory" );
> >     }
> > }
> >
> > See: https://godbolt.org/z/qvxMGd84q
> >
> > Clang will generate machine code that only resets the low 8 bits of %rdi
> > between loop calls, leaving the rest of the register possibly containing
> > garbage from the use of %rdi inside the called function.  Note also that clang
> > doesn't truncate the input parameters at the callee, thus breaking the psABI.
> >
> > Fix this by turning the `e` element in the anonymous union into an array that
> > consumes the same space as an unsigned long, as this forces clang to reset the
> > whole %rdi register instead of just the low 8 bits.
> >
> > Fixes: 2ce562b2a413 ('x86/altcall: use a union as register type for function parameters on clang')
> > Suggested-by: Jan Beulich <jbeulich@suse.com>
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > Adding Oleksii as to whether this could be considered for 4.19: it's strictly
> > limited to clang builds, plus will need to be backported anyway.
> > ---
> >  xen/arch/x86/include/asm/alternative.h | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
> > index 0d3697f1de49..e63b45927643 100644
> > --- a/xen/arch/x86/include/asm/alternative.h
> > +++ b/xen/arch/x86/include/asm/alternative.h
> > @@ -185,10 +185,10 @@ extern void alternative_branches(void);
> >   */
> >  #define ALT_CALL_ARG(arg, n)                                            \
> >      register union {                                                    \
> > -        typeof(arg) e;                                                  \
> > +        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> >          unsigned long r;                                                \
> >      } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
> > -        .e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })   \
> > +        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> >      }
> >  #else
> >  #define ALT_CALL_ARG(arg, n) \
> 
> Don't we want BUILD_BUG_ON(sizeof(long) % sizeof(arg) == 0) instead?

I think you meant BUILD_BUG_ON(sizeof(long) % sizeof(arg) != 0)?

> Otherwise
> odd sizes will cause the wrong union size to prevail, and while I can't see
> today how those might come to happen there's Murphy's law.

The overall union size would still be fine, because it has the
unsigned long element, it's just that the array won't cover all the
space assigned to the long member?

IOW if sizeof(arg) == 7, then we would define an array with only 1
element, which won't make the size of the union change, but won't
cover the same space that's used by the long member.

However it's not possible for sizeof(arg) > 8 due to the existing
BUILD_BUG_ON(), so the union can never be bigger than a long.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 16:24:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 16:24:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763377.1173650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWIJ3-0004dH-Ux; Tue, 23 Jul 2024 16:24:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763377.1173650; Tue, 23 Jul 2024 16:24:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWIJ3-0004dA-RC; Tue, 23 Jul 2024 16:24:05 +0000
Received: by outflank-mailman (input) for mailman id 763377;
 Tue, 23 Jul 2024 16:24: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=ruWa=OX=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sWIJ2-0004cl-Bo
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 16:24:04 +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 f978ef66-490f-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 18:24:03 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7a9e25008aso99356366b.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 09:24:03 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a879f155asm132463666b.53.2024.07.23.09.24.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 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: f978ef66-490f-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721751842; x=1722356642; 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=Z3y1JmIxHiw9tNYkIAUSSwewMW38Qeqg+QIPGMeDd3Y=;
        b=MScK0NlqdL68jmoKWTxF0b9bjp+95Jizm8p75Ydp7G6ucTE4Eik1AZR70HFGrxXnu+
         9fesX0MFSqQHqoUceCY5Dwry2ahcw7fglGaHQIYYpZNBbbqi55szkDyqtkzhyhxOY2gU
         AOxMqCNDPq3S+/Z8cqSyAWZxH8oyKv+pkLZ0E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721751842; x=1722356642;
        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=Z3y1JmIxHiw9tNYkIAUSSwewMW38Qeqg+QIPGMeDd3Y=;
        b=Wh9ZsHJFEM2uilQRhqp8BUkHYscslYLyaH30lDbLO8voONJifYb4b2+D9kd9bU7iDd
         rpFhWHEHOzu+Kq8/S2E4YRrpGGBYqsJ68hfsNeEMK/vExY6dB579Qy0RKCj5969/etOX
         pDictZZv078+E3ALPqKf2zCizSL/w1KE0xv06CNkazQBurc993ikI1FRGmVXeQBNDNG2
         Iq8zfFAGplPjV1pVE/A6Hv8S9sTbHickynwPM8QqGT4RRKaPxzo1sEer3ENn83SfGvak
         t4cklI5gpO/bj6x4IcsYBf1nxMAa5lat+d+xS1psvxMDwf88NZ6HhBN9+ycWPTyTzHwb
         MLbA==
X-Gm-Message-State: AOJu0YyPq6oPLexoRJ33nYgDuRi9JO3gzxOiKvqssWr6KZ/7ChH9Kz+B
	J53ijSJobDBR0DldgV5ASekqRJwBiRf9np1lmRThFNjkOxZhR3FZAXbrfm0F+gA=
X-Google-Smtp-Source: AGHT+IF7ujIJB6O13DFVDaORWiDwA/deMQkahyL1gTfNObLwyMc0o5qCwxQvlVFp82QWmKJ6ALOQmA==
X-Received: by 2002:a17:907:9686:b0:a79:7dc0:4fed with SMTP id a640c23a62f3a-a7aab67bed3mr9358966b.34.1721751842584;
        Tue, 23 Jul 2024 09:24:02 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 23 Jul 2024 17:24:00 +0100
Message-Id: <D2X237Y7T92R.1VVSBS9MCJOFW@cloud.com>
Cc: <xen-devel@lists.xenproject.org>, "Jan Beulich" <jbeulich@suse.com>,
 "Andrew Cooper" <andrew.cooper3@citrix.com>, "Oleksii Kurochko"
 <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19] x86/altcall: fix clang code-gen when using
 altcall in loop constructs
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
X-Mailer: aerc 0.17.0
References: <20240723093117.99487-1-roger.pau@citrix.com>
 <D2X13ED477J8.25JRFH9VEW33O@cloud.com> <Zp_VuwxqH3Mii8_W@macbook>
In-Reply-To: <Zp_VuwxqH3Mii8_W@macbook>

On Tue Jul 23, 2024 at 5:09 PM BST, Roger Pau Monn=C3=A9 wrote:
> On Tue, Jul 23, 2024 at 04:37:12PM +0100, Alejandro Vallejo wrote:
> > On Tue Jul 23, 2024 at 10:31 AM BST, Roger Pau Monne wrote:
> > > Clang will generate machine code that only resets the low 8 bits of %=
rdi
> > > between loop calls, leaving the rest of the register possibly contain=
ing
> > > garbage from the use of %rdi inside the called function.  Note also t=
hat clang
> > > doesn't truncate the input parameters at the callee, thus breaking th=
e psABI.
> > >
> > > Fix this by turning the `e` element in the anonymous union into an ar=
ray that
> > > consumes the same space as an unsigned long, as this forces clang to =
reset the
> > > whole %rdi register instead of just the low 8 bits.
> > >
> > > Fixes: 2ce562b2a413 ('x86/altcall: use a union as register type for f=
unction parameters on clang')
> > > Suggested-by: Jan Beulich <jbeulich@suse.com>
> > > Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> > > ---
> > > Adding Oleksii as to whether this could be considered for 4.19: it's =
strictly
> > > limited to clang builds, plus will need to be backported anyway.
> > > ---
> > >  xen/arch/x86/include/asm/alternative.h | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/in=
clude/asm/alternative.h
> > > index 0d3697f1de49..e63b45927643 100644
> > > --- a/xen/arch/x86/include/asm/alternative.h
> > > +++ b/xen/arch/x86/include/asm/alternative.h
> > > @@ -185,10 +185,10 @@ extern void alternative_branches(void);
> > >   */
> > >  #define ALT_CALL_ARG(arg, n)                                        =
    \
> > >      register union {                                                =
    \
> > > -        typeof(arg) e;                                              =
    \
> > > +        typeof(arg) e[sizeof(long) / sizeof(arg)];                  =
    \
> > >          unsigned long r;                                            =
    \
> > >      } a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D {                   =
      \
> > > -        .e =3D ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg);=
 })   \
> > > +        .e[0] =3D ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (ar=
g); })\
> > >      }
> > >  #else
> > >  #define ALT_CALL_ARG(arg, n) \
> >=20
> > Don't we want BUILD_BUG_ON(sizeof(long) % sizeof(arg) =3D=3D 0) instead=
?
>
> I think you meant BUILD_BUG_ON(sizeof(long) % sizeof(arg) !=3D 0)?

Bah, yes. I wrote it as a COMPILE_ASSERT().

>
> > Otherwise
> > odd sizes will cause the wrong union size to prevail, and while I can't=
 see
> > today how those might come to happen there's Murphy's law.
>
> The overall union size would still be fine, because it has the
> unsigned long element, it's just that the array won't cover all the
> space assigned to the long member?

I explained myself poorly. If the current BUILD_BUG_ON() stays as-is that's
right, but...

>
> IOW if sizeof(arg) =3D=3D 7, then we would define an array with only 1
> element, which won't make the size of the union change, but won't
> cover the same space that's used by the long member.

... I thought the point of the patch was to cover the full union with the
array, and not just a subset. My proposed alternative merely tries to ensur=
e
the argument is always a submultiple in size of a long so the array is alwa=
ys a
perfect match.

Though admittedly, it wouldn't be rare for this to be enough to work around=
 the
bug.

>
> However it's not possible for sizeof(arg) > 8 due to the existing
> BUILD_BUG_ON(), so the union can never be bigger than a long.
>
> Thanks, Roger.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 16:40:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 16:40:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763391.1173660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWIYf-0007lH-7O; Tue, 23 Jul 2024 16:40:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763391.1173660; Tue, 23 Jul 2024 16:40:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWIYf-0007lA-4b; Tue, 23 Jul 2024 16:40:13 +0000
Received: by outflank-mailman (input) for mailman id 763391;
 Tue, 23 Jul 2024 16:40:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWIYd-0007l0-NA; Tue, 23 Jul 2024 16:40:11 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWIYd-0002pi-Hs; Tue, 23 Jul 2024 16:40:11 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWIYd-0003AP-75; Tue, 23 Jul 2024 16:40:11 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWIYd-0004Ut-6h; Tue, 23 Jul 2024 16:40: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=5cUJy/P7iyhMfQOmT2zf1gEYrIlQuPV6Xm5Fkqx/TUI=; b=mOev5Qbc64Zcy9GPfCiJyEOWCV
	/ZSZj1r01dLOfzjJBrC7rUjJfBpuX2in05U6hWrvQq8iiePieINj6+IduWMqibyD7bEl+gfeOuRHx
	+t4GM89XQcQ5w/V/NZRl+q98SFYlWHz1nsIFaw6XlHg/D3XMiAnki8h38bT7CVEEQmMw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186966-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186966: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=fa58fcdc8cc38b5b73a59209a630ea7170eac713
X-Osstest-Versions-That:
    xen=c4bdb14b80a1751ba622f3e48a4b91401c67867d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 16:40:11 +0000

flight 186966 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186966/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  fa58fcdc8cc38b5b73a59209a630ea7170eac713
baseline version:
 xen                  c4bdb14b80a1751ba622f3e48a4b91401c67867d

Last test of basis   186953  2024-07-22 20:03:59 Z    0 days
Testing same since   186966  2024-07-23 13:00:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Tamas K Lengyel <tamas@tklengyel.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c4bdb14b80..fa58fcdc8c  fa58fcdc8cc38b5b73a59209a630ea7170eac713 -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 16:51:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 16:51:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763401.1173670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWIjd-00019L-6Q; Tue, 23 Jul 2024 16:51:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763401.1173670; Tue, 23 Jul 2024 16: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 1sWIjd-00019E-3B; Tue, 23 Jul 2024 16:51:33 +0000
Received: by outflank-mailman (input) for mailman id 763401;
 Tue, 23 Jul 2024 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=pxZo=OX=bounce.vates.tech=bounce-md_30504962.669fdf8f.v1-3735091ab57244a69d6a9754f20f9e49@srs-se1.protection.inumbo.net>)
 id 1sWIjb-000198-AV
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 16:51:31 +0000
Received: from mail177-8.suw61.mandrillapp.com
 (mail177-8.suw61.mandrillapp.com [198.2.177.8])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cdfa9580-4913-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 18:51:28 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-8.suw61.mandrillapp.com (Mailchimp) with ESMTP id 4WT37z39Bjz3sN66w
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 16:51:27 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3735091ab57244a69d6a9754f20f9e49; Tue, 23 Jul 2024 16:51: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: cdfa9580-4913-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721753487; x=1722013987;
	bh=9DLgwX0OhKqKChobq7HnkjF4SNzeRVhkk/PAihevCfI=;
	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=K6fHq/VYmq4SW+P27JbNXHt7AL162WXhgUqEAed5NgcBttePEX9d2BWZ1J/KIIplA
	 MWs+Da2iMCx6jr9sEQywk8Sd3D3vop5eGdzuSimW+Nts2gmFH5Ye3FI18iIZiZiOm6
	 dLdnOgKjKWAv5RK1sSpVU/fQ8ZCLhKA71p/Klgj742KCMkViFobEvmnS7QxD8L5T+T
	 7VMfdX8ece2F8JmGoF5djMYBF5dXkIKEx9lJ9x5tZJEyN2cHFofC3M58DGGbA3jldI
	 aT07023kTjnSM31pLSYYX5U8ZLybDiGL2IKMvf/23Ysff5A0fIysid3tQAIivZyyrB
	 XFlKXbi+LjI5w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721753487; x=1722013987; i=anthony.perard@vates.tech;
	bh=9DLgwX0OhKqKChobq7HnkjF4SNzeRVhkk/PAihevCfI=;
	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=v3ISmCWcxsLsJNZPlFNQqs1NptL84DnAfxtVVFFbbWCHlXJiHtda0nqs4FuMI8JXc
	 YIssAgyplyzjFJhmXfVD6iodFgAryQuWkJ0ytIq4I40W9Yc1OQjqRkTVUOyEK/yMZc
	 Ib4SP41XMImnkWOaE7Y55kpKDbWYWHGbfOCfgrH5pXicFpqCvSeKg8q4GzSVDpTlpd
	 ua7vxMbi9Axth+IeJX1neX5Kwg94Hut4Rs3cYACYr8JH/ey3tHdMnPChsrcIjExLNl
	 QyuXfI5L2Hq+O2xSvv+e9RI12B2dCjGyv54vsx9gptRKGvKymqk6WRYDxNd+M3WqB0
	 S2uVC2rDD4DmA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN=20PATCH=20v3=20RESEND]=20tools/lsevtchn:=20Use=20errno=20macro=20to=20handle=20hypercall=20error=20cases?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721753486131
To: Matthew Barnes <matthew.barnes@cloud.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Message-Id: <Zp/fjdnRNPd59ieB@l14>
References: <8bde5ee38597a86334b86822de920802483a7179.1715100071.git.matthew.barnes@cloud.com>
In-Reply-To: <8bde5ee38597a86334b86822de920802483a7179.1715100071.git.matthew.barnes@cloud.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.3735091ab57244a69d6a9754f20f9e49?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240723:md
Date: Tue, 23 Jul 2024 16:51:27 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Jul 15, 2024 at 04:36:03PM +0100, Matthew Barnes wrote:
> Currently, lsevtchn aborts its event channel enumeration when it hits
> its first hypercall error, namely:
> * When an event channel doesn't exist at the specified port
> * When the event channel is owned by Xen
> 
> lsevtchn does not distinguish between different hypercall errors, which
> results in lsevtchn missing potential relevant event channels with
> higher port numbers.
> 
> Use the errno macro to distinguish between hypercall errors, and
> continue event channel enumeration if the hypercall error is not
> critical to enumeration.
> 
> Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
> ---
>  tools/xcutils/lsevtchn.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/xcutils/lsevtchn.c b/tools/xcutils/lsevtchn.c
> index d1710613ddc5..e4b3f88fe4ec 100644
> --- a/tools/xcutils/lsevtchn.c
> +++ b/tools/xcutils/lsevtchn.c
> @@ -24,7 +25,18 @@ int main(int argc, char **argv)
>          status.port = port;
>          rc = xc_evtchn_status(xch, &status);
>          if ( rc < 0 )
> -            break;
> +        {
> +            if ( errno == ESRCH )
> +            {
> +                fprintf(stderr, "Domain ID '%d' does not correspond to valid domain.\n", domid);
> +                break;
> +            }
> +
> +            if ( errno == EINVAL )
> +                break;
> +
> +            continue;

Usually, when there's an error, we want to deal with it properly, and
not blindly ignore them. Instead, could you check for error that are
non-fatal, like described in the patch description?

Also, the code change doesn't reflect the patch description. The
description says "continue if error not fatal", but the implementation
is "exit on few known fatal error".

One other potentially useful thing to do would be to print why
xc_evtchn_status() failed like you did for ESRCH, but with perror() (or
err() or warn()) which print a translation of the errno value into text.
Of course, only in case where we stop the enumeration.

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 Jul 23 16:52:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 16:52:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763406.1173680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWIkB-0001dN-Ea; Tue, 23 Jul 2024 16:52:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763406.1173680; Tue, 23 Jul 2024 16:52:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWIkB-0001dG-B0; Tue, 23 Jul 2024 16:52:07 +0000
Received: by outflank-mailman (input) for mailman id 763406;
 Tue, 23 Jul 2024 16:52:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWIkA-0001d0-3V; Tue, 23 Jul 2024 16:52:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWIk9-00033a-St; Tue, 23 Jul 2024 16:52:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWIk9-0003VX-HG; Tue, 23 Jul 2024 16:52:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWIk9-0001fv-Go; Tue, 23 Jul 2024 16:52: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=cweZSOBnoAXHWxQbRUtplqb+zb/4KiKpDVnRzhzyRwI=; b=yCaQSeV6hi3HVs+aL6m47P1t4M
	kHxLfKgZZc0NsLMCADJS8snMpStLLSmsmKdldyUlNuo7XdW7T4o+acuUKdlgG+5ksjultMTWG3+kF
	rGdND65J+CkHP0mnfYILYzXEzUNvdvWZZrL9Rv6gyFtB2ORMLHRAsWQRDg1k4rOakndk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186968-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186968: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=da591416ee8fddb1b691d157e3c61bdc7a994b79
X-Osstest-Versions-That:
    ovmf=f96298d75cebfe2a7707157ed644eb86bf6d46ca
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 16:52:05 +0000

flight 186968 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186968/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 da591416ee8fddb1b691d157e3c61bdc7a994b79
baseline version:
 ovmf                 f96298d75cebfe2a7707157ed644eb86bf6d46ca

Last test of basis   186964  2024-07-23 11:11:30 Z    0 days
Testing same since   186968  2024-07-23 15:13:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Oliver Smith-Denny <osde@linux.microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   f96298d75c..da591416ee  da591416ee8fddb1b691d157e3c61bdc7a994b79 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 17:25:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 17:25:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763422.1173690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWJGV-00061w-VZ; Tue, 23 Jul 2024 17:25:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763422.1173690; Tue, 23 Jul 2024 17: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 1sWJGV-00061p-Rz; Tue, 23 Jul 2024 17:25:31 +0000
Received: by outflank-mailman (input) for mailman id 763422;
 Tue, 23 Jul 2024 17:25: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=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWJGV-00061j-5o
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 17:25:31 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e23a12e-4918-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 19:25:29 +0200 (CEST)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-52f008aa351so3711815e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 10:25:28 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c7b6b49sm560816466b.52.2024.07.23.10.25.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 10:25: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: 8e23a12e-4918-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721755528; x=1722360328; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=AqfKVDpD5/hFYkOOqLHCRvOZZqZemtIDnbKGDolJazk=;
        b=IEuUhxW63pn73VF5oeQL87Dn/fddmbD0IjTHW0XX1yoSL4dGIPJjDoao/Zny5Dn3hP
         iSTUBIwNxuDXi4hO4ZUVA+8QWJonhwkHVqUPqctw/0iznriQPN4AAwTHWL9EtfdCJDLM
         d8iCfhCgeb0lx5CYZAjZ901Kjy9beMM/hzq8WZO6xoojcJZB5s4M2KTIA/3m8Vn5Jk7C
         PPjF0IyBnkq1McTELE72YBaTxoF6GiKz88A8Pi8ggC3rqSIUxKS5ti/yW5MDM1Ri3ROj
         LCK3YpgIiPqfS0g2s8BgseDOu7Cfw2nZg03faMzIg2h0TC/SAvfVk2O2LTp+0OC52unk
         MKMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721755528; x=1722360328;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=AqfKVDpD5/hFYkOOqLHCRvOZZqZemtIDnbKGDolJazk=;
        b=OAiiuxTJeppy3IU6TEQhhVCgYfK9GZTS8cAm4avC8ajsgImahTzy5gpru4wEYtZ7rQ
         Gt2Ijn4Ry9nSwf2KjuKAC6qsaK4eSHWbDJs7obk7y9rf6DpaoycAbOlQOqJerQA5Rb2o
         Z/PKAFzzZ/ZfAxi1VsFet7o8qfUWPmJZX+j+S7UK2JCHAEzV7Bb76mB18bSM7C0dd2T4
         SXNXv2zitqOLLsngVgDTGQI/3AkIgeJr8Aiv5s/WyLcr9r049XhAi3ovorFCyN6ItfGD
         a1n+Ufewcxcib+nrpAs6G2RubRT1gBj5mNuf4Rn7BYcmTJx3F8LhvUEqXuuaLmJxVVN4
         uusg==
X-Forwarded-Encrypted: i=1; AJvYcCVfrqv++E8+/nws0EgkDQrax18qgqDfdfpul2D9BOaY3sDhWX4NfIw3SyIRqreuAw8sbjGpmNdbYJoQcUtGdILD562wmJFWlwOU7azF/pU=
X-Gm-Message-State: AOJu0YwLN87E+iMe2nowz/1H8XCZYYWqoRBUrTpyPgnASBozIz01Y8pI
	LZHiCBzxqykvB1/8BxJYVaPbzF0d0tqyxdorcml3b91vnyAcSRPa
X-Google-Smtp-Source: AGHT+IHBfNZxWpf//OIX7NYV6r92xF/0Lr6XJO403xDplHZ0s9dvVAtM8nrcNq3bdG5VaPAALd0Kcg==
X-Received: by 2002:a05:6512:3343:b0:52e:be50:9c66 with SMTP id 2adb3069b0e04-52fcda6f35bmr160407e87.53.1721755527559;
        Tue, 23 Jul 2024 10:25:27 -0700 (PDT)
Message-ID: <29c8b24ecd240268caa64ddcc590188ec3e80cd1.camel@gmail.com>
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
From: oleksii.kurochko@gmail.com
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>, Stefano Stabellini
 <sstabellini@kernel.org>,  xen-devel@lists.xenproject.org
Date: Tue, 23 Jul 2024 19:25:26 +0200
In-Reply-To: <9baa3203-b8d0-4774-a2a5-7ba61b213f1c@xen.org>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
	 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
	 <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
	 <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
	 <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
	 <26ae01e2-d085-48d7-8b1f-da1e44b01e53@xen.org>
	 <CAMacjJwWLjGcFbYEhCPyNEW_+sfb51+XtKqyBcc2JGm=D5bf0w@mail.gmail.com>
	 <97c82aca-0b8a-4b78-980b-0857dbdae80a@suse.com>
	 <4c9eb7a79c33c7cd2f6bde05b1fbc7770e662026.camel@gmail.com>
	 <14ffb00d-d6ba-4c18-88c1-2601a2df8a8b@suse.com>
	 <b7e248ae79aaded532d86453520fcb4cb7a7fb3b.camel@gmail.com>
	 <9baa3203-b8d0-4774-a2a5-7ba61b213f1c@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-23 at 16:49 +0100, Julien Grall wrote:
> Hi Oleksii,
>=20
> On 23/07/2024 16:36, oleksii.kurochko@gmail.com=C2=A0wrote:
> > On Tue, 2024-07-23 at 12:02 +0200, Jan Beulich wrote:
> > > On 23.07.2024 10:55, oleksii.kurochko@gmail.com=C2=A0wrote:
> > > > On Tue, 2024-07-23 at 10:36 +0200, Jan Beulich wrote:
> > > > > On 23.07.2024 10:02, Oleksii Kurochko wrote:
> > > > > > On Mon, Jul 22, 2024 at 7:27=E2=80=AFPM Julien Grall
> > > > > > <julien@xen.org>
> > > > > > wrote:
> > > > > > > > > On 22/07/2024 15:44, Oleksii Kurochko wrote:
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 /* Map a 4k page in a fixmap entry=
 */
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 void set_fixmap(unsigned map, mfn_=
t mfn, unsigned
> > > > > > > > int
> > > > > > > > flags)
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 {
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pte;
> > > > > > > >=20
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte =3D mf=
n_to_xen_entry(mfn, flags);
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte.pte |=
=3D PTE_LEAF_DEFAULT;
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(=
&xen_fixmap[pt_index(0,
> > > > > > > > FIXMAP_ADDR(map))],
> > > > > > > > pte);
> > > > > > >=20
> > > > > > > It would be saner to check if you are not overwriting any
> > > > > > > existing
> > > > > > > mapping as otherwise you will probably need a TLB flush.
> > > > > > >=20
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 }
> > > > > > > >=20
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 /* Remove a mapping from a fixmap =
entry */
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 void clear_fixmap(unsigned map)
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 {
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pte =
=3D {0};
> > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(=
&xen_fixmap[pt_index(0,
> > > > > > > > FIXMAP_ADDR(map))],
> > > > > > > > pte);
> > > > > > >=20
> > > > > > > Don't you need a TLB flush?
> > > > > > >=20
> > > > > > Inside write_pte() there is "sfence.vma".
> > > > >=20
> > > > > That's just a fence though, not a TLB flush.
> > > > =C2=A0From the privileged doc:
> > > > =C2=A0=C2=A0=C2=A0 ```
> > > > =C2=A0=C2=A0=C2=A0 SFENCE.VMA is also used to invalidate entries in=
 the
> > > > =C2=A0=C2=A0=C2=A0 address-translation cache associated with a hart=
 (see
> > > > Section
> > > > 4.3.2).
> > > > =C2=A0=C2=A0=C2=A0 ...
> > > > =C2=A0=C2=A0=C2=A0 The SFENCE.VMA is used to flush any local hardwa=
re caches
> > > > related to
> > > > =C2=A0=C2=A0=C2=A0 address translation.
> > > > =C2=A0=C2=A0=C2=A0 It is specified as a fence rather than a TLB flu=
sh to
> > > > provide
> > > > cleaner
> > > > =C2=A0=C2=A0=C2=A0 semantics with respect to
> > > > =C2=A0=C2=A0=C2=A0 which instructions are affected by the flush ope=
ration and
> > > > to
> > > > support a
> > > > =C2=A0=C2=A0=C2=A0 wider variety of dynamic
> > > > =C2=A0=C2=A0=C2=A0 caching structures and memory-management schemes=
.
> > > > SFENCE.VMA is
> > > > also
> > > > =C2=A0=C2=A0=C2=A0 used by higher
> > > > =C2=A0=C2=A0=C2=A0 privilege levels to synchronize page table write=
s and the
> > > > address
> > > > =C2=A0=C2=A0=C2=A0 translation hardware.
> > > > =C2=A0=C2=A0=C2=A0 ...
> > > > =C2=A0=C2=A0=C2=A0 ```
> > > > I read this as SFENCE.VMA is used not only for ordering of
> > > > load/stores,
> > > > but also to flush TLB ( which is a type of more general term as
> > > > address-translation cache, IIUIC ).
> I have to admit, I am a little because concerned with calling
> sfence.vma=20
> in write_pte() (this may only be because I am not very familiar with=20
> RISC-V).
>=20
> We have cases where multiple entry will be written in a single=20
> map_pages_to_xen() call. So wouldn't this means that the local TLBs=20
> would be nuked for every write rather than once?
Yes, it will be nuked. It is bad from perfomance point of view.
I just wanted to be sure that I won't miss to put sfence.vma when it is
necessary and then reworked that a little bit after. But it seems it
would be better not to call sfence.vma in write_pte() just from the
start.


>=20
>=20
> > >=20
> > > Oh, I see. Kind of unexpected for an instruction of that name.
> > > Yet
> > > note
> > > how they talk about the local hart only. You need a wider scope
> > > TLB
> > > flush here.
> > Could you please clarify why it is needed wider?
> >=20
> > Arm Xen flushed only local TLB.
>=20
> Which code are you looking at? set_fixmap() will propagate the TLB
> flush=20
> to all innershareable CPUs.
Yes, here I agree that set_fixmap() uses map_pages_to_xen which
somewhere inside uses flush_xen_tlb_range_va() ( not
flush_xen_tlb_range_va() ) so TLB flush will happen for all
innershareable CPUs.
>=20
> The PMAP interface will do a local TLB flush because the interface
> can=20
> only be used during early boot where there is a single CPU running.

Yes, I am looking at PMAP:
   static inline void arch_pmap_unmap(unsigned int slot)
   {
       lpae_t pte =3D {};
  =20
       write_pte(&xen_fixmap[slot], pte);
  =20
       flush_xen_tlb_range_va(FIXMAP_ADDR(slot), PAGE_SIZE);
   }
IIUC, originaly Jan told about arch_pmap_unmap() case so that is why I
decided to clarify additionaly.

>=20
> > RISC-V Linux kernel for fixmap also uses: local_flush_tlb_page().
>=20
> I don't know how Linux is using set_fixmap(). But what matters is how
> Xen is using set_fixmap(). We have a couple of places in Xen where
> the=20
> fixmap needs to be accessed by all the CPUs.
>=20
> Given this is a common interface in Xen, I think it makes sense to=20
> follow the same approach to avoid any confusion.
Sure. Thanks for claryfying. I will flush_xen_tlb_range_va() for
set_fixmap().


~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 17:28:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 17:28:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763431.1173700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWJJM-0006se-Ek; Tue, 23 Jul 2024 17:28:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763431.1173700; Tue, 23 Jul 2024 17:28:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWJJM-0006sX-C4; Tue, 23 Jul 2024 17:28:28 +0000
Received: by outflank-mailman (input) for mailman id 763431;
 Tue, 23 Jul 2024 17:28: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=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWJJL-0006sP-FJ
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 17:28:27 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f78f34d5-4918-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 19:28:25 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-52efc60a6e6so4723544e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 10:28:25 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7aa6fea966sm33434466b.223.2024.07.23.10.28.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 10:28: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: f78f34d5-4918-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721755705; x=1722360505; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=KC/kVP5leGBWfFNk3ux16WqZBf+9M++3iWG5hoC03UM=;
        b=h0AoCXxwlPjhfAozQOUgpIZGBxi7/Wmy0rg9oDM6wmQ+9nnlB8TJ7dcFmpIXhpP2vu
         Y+43UliO/7frGswzG0HSBNirHeh2PRHovn/M4sw0LWaHU6cMl6PI2zACbP9Q6hAJZjVF
         tTPxFgC02e7Qtss5LteNCsmZ3L/E302xQ6eDsFCgvrkz0mkK8wOe7DybksiiWxqF0TkN
         IrcP2P0iPkjiUKszIjoU1893a63ci4w7WRZZz21tDPC7kOKClRe33PzAa6uWWLh0z2yR
         JtjIbq2Dm2Vpgd/u+h6T6PYOY3+7FBCil/Rd/ewK2G8hbENnK0HS2UfvFr4/Lk+/fH3I
         fMsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721755705; x=1722360505;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=KC/kVP5leGBWfFNk3ux16WqZBf+9M++3iWG5hoC03UM=;
        b=S40giF1MBygXORmCh71z+YCeLI33gGc/pU4iPQSr4znwJiR1cpYJRD/61X+zN6N3kl
         6ilgXgNkrvSnn/511f5FgChGXR03GpAVP5cquocJiIHWjUrjMuylycylUAd007nI8lgw
         D78wIGViETSHbVZOGwF9PU8lnqvE/KIm2s4tmeYXkIuO5XEHGaYb1ifKbcWJ+9RR6/Nl
         k30XVPi0W+Ci2bEwMjbEV37OuL2V47yVbNZWujKC8j0gJGiIo2yRy9KUczjzaEyGZXLF
         CfELjEETeJKV/4S9kH+090NvDnOvuxnTJsnoFNcV6/4Pum8Fcpv74NkTAcsLExppAQW1
         iQIw==
X-Forwarded-Encrypted: i=1; AJvYcCW7qXtfWgAMAvET3RAkzNhIXk6A1RF/moJyNziRC396JxxNATPQ/2VX5qch0Dr3U3NMP6Y1LevhdwCpCwwfCqC6Mtp9z6AM2/OAwT03TvU=
X-Gm-Message-State: AOJu0YyxSRjhbQawHSOm4F8zyJRngTVG+PpO+gOibQYAzX4wwKocvKuT
	JNtSNctaXrlf240iO3P6/tGs1+UH2Ya50cSmn7g+szmrP3HRgnNe
X-Google-Smtp-Source: AGHT+IE2dmPD/QI6urB2SUsb4+WoQTQxtaJ10NsDDB8p+izqieGL77On/0LTbV7D473ug2kbLQJDuw==
X-Received: by 2002:a05:6512:12c4:b0:52c:86de:cb61 with SMTP id 2adb3069b0e04-52fcda2168fmr222678e87.10.1721755704613;
        Tue, 23 Jul 2024 10:28:24 -0700 (PDT)
Message-ID: <f3cf8cbfd02f5889e498a8046ca24141a8ceb010.camel@gmail.com>
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
From: oleksii.kurochko@gmail.com
To: Julien Grall <julien@xen.org>
Cc: Jan Beulich <jbeulich@suse.com>, Alistair Francis
 <alistair.francis@wdc.com>,  Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,  xen-devel@lists.xenproject.org
Date: Tue, 23 Jul 2024 19:28:23 +0200
In-Reply-To: <29c8b24ecd240268caa64ddcc590188ec3e80cd1.camel@gmail.com>
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
	 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
	 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
	 <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
	 <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
	 <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
	 <26ae01e2-d085-48d7-8b1f-da1e44b01e53@xen.org>
	 <CAMacjJwWLjGcFbYEhCPyNEW_+sfb51+XtKqyBcc2JGm=D5bf0w@mail.gmail.com>
	 <97c82aca-0b8a-4b78-980b-0857dbdae80a@suse.com>
	 <4c9eb7a79c33c7cd2f6bde05b1fbc7770e662026.camel@gmail.com>
	 <14ffb00d-d6ba-4c18-88c1-2601a2df8a8b@suse.com>
	 <b7e248ae79aaded532d86453520fcb4cb7a7fb3b.camel@gmail.com>
	 <9baa3203-b8d0-4774-a2a5-7ba61b213f1c@xen.org>
	 <29c8b24ecd240268caa64ddcc590188ec3e80cd1.camel@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-23 at 19:25 +0200, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-07-23 at 16:49 +0100, Julien Grall wrote:
> > Hi Oleksii,
> >=20
> > On 23/07/2024 16:36, oleksii.kurochko@gmail.com=C2=A0wrote:
> > > On Tue, 2024-07-23 at 12:02 +0200, Jan Beulich wrote:
> > > > On 23.07.2024 10:55, oleksii.kurochko@gmail.com=C2=A0wrote:
> > > > > On Tue, 2024-07-23 at 10:36 +0200, Jan Beulich wrote:
> > > > > > On 23.07.2024 10:02, Oleksii Kurochko wrote:
> > > > > > > On Mon, Jul 22, 2024 at 7:27=E2=80=AFPM Julien Grall
> > > > > > > <julien@xen.org>
> > > > > > > wrote:
> > > > > > > > > > On 22/07/2024 15:44, Oleksii Kurochko wrote:
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 /* Map a 4k page in a fixmap ent=
ry */
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 void set_fixmap(unsigned map, mf=
n_t mfn,
> > > > > > > > > unsigned
> > > > > > > > > int
> > > > > > > > > flags)
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 {
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pt=
e;
> > > > > > > > >=20
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte =3D =
mfn_to_xen_entry(mfn, flags);
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte.pte =
|=3D PTE_LEAF_DEFAULT;
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pt=
e(&xen_fixmap[pt_index(0,
> > > > > > > > > FIXMAP_ADDR(map))],
> > > > > > > > > pte);
> > > > > > > >=20
> > > > > > > > It would be saner to check if you are not overwriting
> > > > > > > > any
> > > > > > > > existing
> > > > > > > > mapping as otherwise you will probably need a TLB
> > > > > > > > flush.
> > > > > > > >=20
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 }
> > > > > > > > >=20
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 /* Remove a mapping from a fixma=
p entry */
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 void clear_fixmap(unsigned map)
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 {
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte_t pt=
e =3D {0};
> > > > > > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pt=
e(&xen_fixmap[pt_index(0,
> > > > > > > > > FIXMAP_ADDR(map))],
> > > > > > > > > pte);
> > > > > > > >=20
> > > > > > > > Don't you need a TLB flush?
> > > > > > > >=20
> > > > > > > Inside write_pte() there is "sfence.vma".
> > > > > >=20
> > > > > > That's just a fence though, not a TLB flush.
> > > > > =C2=A0From the privileged doc:
> > > > > =C2=A0=C2=A0=C2=A0 ```
> > > > > =C2=A0=C2=A0=C2=A0 SFENCE.VMA is also used to invalidate entries =
in the
> > > > > =C2=A0=C2=A0=C2=A0 address-translation cache associated with a ha=
rt (see
> > > > > Section
> > > > > 4.3.2).
> > > > > =C2=A0=C2=A0=C2=A0 ...
> > > > > =C2=A0=C2=A0=C2=A0 The SFENCE.VMA is used to flush any local hard=
ware caches
> > > > > related to
> > > > > =C2=A0=C2=A0=C2=A0 address translation.
> > > > > =C2=A0=C2=A0=C2=A0 It is specified as a fence rather than a TLB f=
lush to
> > > > > provide
> > > > > cleaner
> > > > > =C2=A0=C2=A0=C2=A0 semantics with respect to
> > > > > =C2=A0=C2=A0=C2=A0 which instructions are affected by the flush o=
peration
> > > > > and
> > > > > to
> > > > > support a
> > > > > =C2=A0=C2=A0=C2=A0 wider variety of dynamic
> > > > > =C2=A0=C2=A0=C2=A0 caching structures and memory-management schem=
es.
> > > > > SFENCE.VMA is
> > > > > also
> > > > > =C2=A0=C2=A0=C2=A0 used by higher
> > > > > =C2=A0=C2=A0=C2=A0 privilege levels to synchronize page table wri=
tes and the
> > > > > address
> > > > > =C2=A0=C2=A0=C2=A0 translation hardware.
> > > > > =C2=A0=C2=A0=C2=A0 ...
> > > > > =C2=A0=C2=A0=C2=A0 ```
> > > > > I read this as SFENCE.VMA is used not only for ordering of
> > > > > load/stores,
> > > > > but also to flush TLB ( which is a type of more general term
> > > > > as
> > > > > address-translation cache, IIUIC ).
> > I have to admit, I am a little because concerned with calling
> > sfence.vma=20
> > in write_pte() (this may only be because I am not very familiar
> > with=20
> > RISC-V).
> >=20
> > We have cases where multiple entry will be written in a single=20
> > map_pages_to_xen() call. So wouldn't this means that the local TLBs
> > would be nuked for every write rather than once?
> Yes, it will be nuked. It is bad from perfomance point of view.
> I just wanted to be sure that I won't miss to put sfence.vma when it
> is
> necessary and then reworked that a little bit after. But it seems it
> would be better not to call sfence.vma in write_pte() just from the
> start.
>=20
>=20
> >=20
> >=20
> > > >=20
> > > > Oh, I see. Kind of unexpected for an instruction of that name.
> > > > Yet
> > > > note
> > > > how they talk about the local hart only. You need a wider scope
> > > > TLB
> > > > flush here.
> > > Could you please clarify why it is needed wider?
> > >=20
> > > Arm Xen flushed only local TLB.
> >=20
> > Which code are you looking at? set_fixmap() will propagate the TLB
> > flush=20
> > to all innershareable CPUs.
> Yes, here I agree that set_fixmap() uses map_pages_to_xen which
> somewhere inside uses flush_xen_tlb_range_va() ( not
> flush_xen_tlb_range_va() ) so TLB flush will happen for all
> innershareable CPUs.
> >=20
> > The PMAP interface will do a local TLB flush because the interface
> > can=20
> > only be used during early boot where there is a single CPU running.
>=20
> Yes, I am looking at PMAP:
> =C2=A0=C2=A0 static inline void arch_pmap_unmap(unsigned int slot)
> =C2=A0=C2=A0 {
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 lpae_t pte =3D {};
> =C2=A0=C2=A0=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixmap[slot], pte);
> =C2=A0=C2=A0=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 flush_xen_tlb_range_va(FIXMAP_ADDR(s=
lot), PAGE_SIZE);
> =C2=A0=C2=A0 }
> IIUC, originaly Jan told about arch_pmap_unmap() case so that is why
> I
> decided to clarify additionaly.

Julien,
I have a questation related to Arm's version of arch_pmap_map():

   static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
   {
       lpae_t *entry =3D &xen_fixmap[slot];
       lpae_t pte;
  =20
       ASSERT(!lpae_is_valid(*entry));
  =20
       pte =3D mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
       pte.pt.table =3D 1;
       write_pte(entry, pte);
       /*
        * The new entry will be used very soon after arch_pmap_map()
   returns.
        * So ensure the DSB in write_pte() has completed before
   continuing.
        */
       isb();
   }
  =20
Is the code above isb() is correct? is it insure the DSB not ISB?
And isn't need to do TLB flush here?

~ Oleksii


>=20
> >=20
> > > RISC-V Linux kernel for fixmap also uses: local_flush_tlb_page().
> >=20
> > I don't know how Linux is using set_fixmap(). But what matters is
> > how
> > Xen is using set_fixmap(). We have a couple of places in Xen where
> > the=20
> > fixmap needs to be accessed by all the CPUs.
> >=20
> > Given this is a common interface in Xen, I think it makes sense to=20
> > follow the same approach to avoid any confusion.
> Sure. Thanks for claryfying. I will flush_xen_tlb_range_va() for
> set_fixmap().
>=20
>=20
> ~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 17:32:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 17:32:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763442.1173709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWJMn-0008K0-Sq; Tue, 23 Jul 2024 17:32:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763442.1173709; Tue, 23 Jul 2024 17: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 1sWJMn-0008Jt-Ps; Tue, 23 Jul 2024 17:32:01 +0000
Received: by outflank-mailman (input) for mailman id 763442;
 Tue, 23 Jul 2024 17:32: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=v/3h=OX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWJMm-0008J9-Fu
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 17:32:00 +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 7766f091-4919-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 19:31:59 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a728f74c23dso93376466b.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 10:31:59 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c785f1asm562011966b.24.2024.07.23.10.31.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 10:31: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: 7766f091-4919-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721755919; x=1722360719; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=6bAnfFZFNgH4dYj68V1dqcWMel69rnrldZ+f8/+qaR0=;
        b=YvRDMuxtR1kC7uEziXx1yNeqnMcACPhPf0xXtQdFuG17tcUNUHyRJPKmPOkI4KyCNw
         JYtjiP28Dm+l8DOHF91z0cNqGiSkfSz27h9lcOwxZWW4Uvo1wkzszRnc1K5sG6XQ7+h+
         wi5rhrF0QKX9CohOSw1TAtcsXsWCIqiG0wiVDqIVeZTD1MVUFKIeuDWAEL5lMgbT9mdI
         JC2b0LtGuoekymAJ4mHAJUKaLBWV+EMVLBFRhi3LWpYfy2Bw18S8dXtltGxUWMchevZM
         THT06UVYJtu4HbHehJMogayEg+mgpGXBpSyRj5gT3SCv0vuMERynfd3ZQR8Be7+zETcI
         pcQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721755919; x=1722360719;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=6bAnfFZFNgH4dYj68V1dqcWMel69rnrldZ+f8/+qaR0=;
        b=XCtSg5j4he3w9P+t0/QI5KwWFWUzhH6XPNclbSkt3BJeZ23fUf+C+K8fR5btdZPz5M
         LCRvyUUx6PrM+cZBU93GbTYdcwsvH7MsY1CvYy3d3YscXzWwdDHiVlI7l7bhTDNzHucL
         8TfI1wmvNGCfzRrLvLTXl4eX+NMA30KVQtH53bJs0o74oN4cs78hJKl/TvMaEmDOYm7w
         eM2M+Wj3zXX0Rmmlp348jFqXvFW/RV0n8KHHM8XcmMz9uO/hRRA4p4EA9ZL+P0LV+IOk
         hhzX9SdZlXbMilyiPr2c3zBeOpAMKapEH/YXFuF+t4/CJe6L8Sf0yJ6PNDgOGYA3vrgV
         7Juw==
X-Gm-Message-State: AOJu0YyCIWA9LTWmPYMmbYNq0oZ43zaA8En1bjBray/fp/eIpcJ/mSpQ
	2O+v4awjA24slKpUUU9rUg9sanB6xKZgDRjgT97WzCiPNuxVZ7Fi
X-Google-Smtp-Source: AGHT+IHfxXQtgkIdwQUJ3zB865IplX6AC+BEVxw/avVQIe+XlcZbITze4dEv9X5o7luf/GyzExk9gg==
X-Received: by 2002:a17:906:c148:b0:a77:d441:c6f1 with SMTP id a640c23a62f3a-a7aab67ae87mr23914866b.33.1721755919122;
        Tue, 23 Jul 2024 10:31:59 -0700 (PDT)
Message-ID: <8a185aeabe4b3928906036590affbec8658bf226.camel@gmail.com>
Subject: Re: [PATCH for-4.19] hotplug: Restore block-tap phy compatibility
 (again)
From: oleksii.kurochko@gmail.com
To: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	 <anthony.perard@vates.tech>, Jason Andryuk <jandryuk@gmail.com>
Cc: xen-devel@lists.xenproject.org
Date: Tue, 23 Jul 2024 19:31:58 +0200
In-Reply-To: <ac3d7bcd-6ed8-4ded-bb5d-ab9c228e9579@amd.com>
References: <20240715234631.4468-1-jandryuk@gmail.com>
	 <Zp/GcCUVPX/d/7qx@l14> <ac3d7bcd-6ed8-4ded-bb5d-ab9c228e9579@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-23 at 11:04 -0400, Jason Andryuk wrote:
> On 2024-07-23 11:04, Anthony PERARD wrote:
> > On Mon, Jul 15, 2024 at 07:46:31PM -0400, Jason Andryuk wrote:
> > > "$dev" needs to be set correctly for backendtype=3Dphy as well as
> > > backendtype=3Dtap.=C2=A0 Move the setting into the conditional, so it
> > > can be
> > > handled properly for each.
> > >=20
> > > (dev could be captured during tap-ctl allocate for blktap module,
> > > but it
> > > would not be set properly for the find_device case.=C2=A0 The
> > > backendtype=3Dtap
> > > case would need to be handled regardless.)
> > >=20
> > > Fixes: 6fcdc84927 ("hotplug: Restore block-tap phy
> > > compatibility")
> >=20
> > Do you mean f16ac12bd418 ("hotplug: Restore block-tap phy
> > compatibility") ?
>=20
> Yes!=C2=A0 Thanks for checking that - I must have grabbed the hash from a=
=20
> local branch.
>=20
> > > Fixes: 76a484193d ("hotplug: Update block-tap")
> > >=20
> > > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> >=20
> > With the fixes tag fix:
> > Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
>=20
> Thanks again.
>=20
> Oleksii, this is a fix (for an incomplete fix) for 4.19.=C2=A0 76a484193d=
=20
> broke compatibility for block-tap with the blktap2 kernel model (when
> adding support for tapback).=C2=A0 This finishes restoring blktap2
> support.
>=20
> I realize it's late in the release if you don't want to take it.
It's pretty late but I just wanted to clarify:
1. Is so critical that we should have this in 4.19?
2. If we won't take it now, then will it be backported anyway?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 17:34:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 17:34:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763451.1173720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWJPY-0000TH-9Y; Tue, 23 Jul 2024 17:34:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763451.1173720; Tue, 23 Jul 2024 17: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 1sWJPY-0000TA-60; Tue, 23 Jul 2024 17:34:52 +0000
Received: by outflank-mailman (input) for mailman id 763451;
 Tue, 23 Jul 2024 17:34: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=402b=OX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWJPW-0000T4-4C
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 17:34:50 +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 dbcb0d14-4919-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 19:34:48 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-367963ea053so4152178f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 10:34:48 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7aa3b0b0a7sm54075666b.152.2024.07.23.10.34.46
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 10:34: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: dbcb0d14-4919-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721756087; x=1722360887; 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=shoQyxVDWCROua/C2bUBUZelX412t0m3+6UnTR430uM=;
        b=iIx9c+YaQelbS4I/Z+DNZdTYH+ogNT4yrGw7Wm7PGQkqw6PfVAdQnwK5lVPf3P7oQP
         QOEE7ZIm2CzxUVecegs3YD6VPDvASVkUYlYIPv1NW9y7ZxJ+kx03FifhK9N1vET8p0UK
         PAQhmsipZYeV3RnGBP1ndxZnoniB7CV0rAbhg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721756087; x=1722360887;
        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=shoQyxVDWCROua/C2bUBUZelX412t0m3+6UnTR430uM=;
        b=XXsVsymvg36K8a6AvarymRhhScr3XFSbjkzhpgRPZw+jrWx9vXUZ26Az15fa2vU0Ka
         N82EPVP+RuFD+d5jibrCYISrNFJhlyc2cjBmCJqooPlwzX1xnXw+J9ZY8evRIJm7b6sm
         5LZmnym+h6TLy1zJ9CJTkCgWDKbs2tkSwt0BsMyB4wiwuTmU20BASvc6dE6oVMh/JbQz
         G5hffAJo3JqrFNIq33DsFlM5iiNmDQzB1m9bUlWRn6FgeRRSwBqBoWQs5gQ73n+dnTp4
         P2SsU8IhlMKr+Dw5qwt7jRgbd2fbgNiAnxGnECoV2LRK3b6oNwjJl7y/Y01EOUoTjvhA
         TQxA==
X-Gm-Message-State: AOJu0YwFqXf7HN8Veik1YpN/ECcuhw614lTP5kry5KQ498XjWtsfcwz4
	dNjeNxS48f91gHvhm+XjI97LANmZU4Ha9ArZ+CMtocpsD17uN1BJQ6IWBsydrWV0oyIlrBLUqEy
	G
X-Google-Smtp-Source: AGHT+IGoPk83TV84DhxpTWKg8SAkIgfsQ7LcaX9fMj2b7Y1QXXXa/+tonVIovUul/mrysPJjKXOEhQ==
X-Received: by 2002:a5d:6210:0:b0:360:75b1:77fb with SMTP id ffacd0b85a97d-369f09ab765mr431615f8f.8.1721756086644;
        Tue, 23 Jul 2024 10:34:46 -0700 (PDT)
Message-ID: <eb096455-cc60-4c34-b7e4-fb0345086934@citrix.com>
Date: Tue, 23 Jul 2024 18:34:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] hotplug: Restore block-tap phy compatibility
 (again)
To: xen-devel@lists.xenproject.org
References: <20240715234631.4468-1-jandryuk@gmail.com> <Zp/GcCUVPX/d/7qx@l14>
 <ac3d7bcd-6ed8-4ded-bb5d-ab9c228e9579@amd.com>
 <8a185aeabe4b3928906036590affbec8658bf226.camel@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <8a185aeabe4b3928906036590affbec8658bf226.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23/07/2024 6:31 pm, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-07-23 at 11:04 -0400, Jason Andryuk wrote:
>> On 2024-07-23 11:04, Anthony PERARD wrote:
>>> On Mon, Jul 15, 2024 at 07:46:31PM -0400, Jason Andryuk wrote:
>>>> "$dev" needs to be set correctly for backendtype=phy as well as
>>>> backendtype=tap.  Move the setting into the conditional, so it
>>>> can be
>>>> handled properly for each.
>>>>
>>>> (dev could be captured during tap-ctl allocate for blktap module,
>>>> but it
>>>> would not be set properly for the find_device case.  The
>>>> backendtype=tap
>>>> case would need to be handled regardless.)
>>>>
>>>> Fixes: 6fcdc84927 ("hotplug: Restore block-tap phy
>>>> compatibility")
>>> Do you mean f16ac12bd418 ("hotplug: Restore block-tap phy
>>> compatibility") ?
>> Yes!  Thanks for checking that - I must have grabbed the hash from a 
>> local branch.
>>
>>>> Fixes: 76a484193d ("hotplug: Update block-tap")
>>>>
>>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>> With the fixes tag fix:
>>> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
>> Thanks again.
>>
>> Oleksii, this is a fix (for an incomplete fix) for 4.19.  76a484193d 
>> broke compatibility for block-tap with the blktap2 kernel model (when
>> adding support for tapback).  This finishes restoring blktap2
>> support.
>>
>> I realize it's late in the release if you don't want to take it.
> It's pretty late but I just wanted to clarify:
> 1. Is so critical that we should have this in 4.19?
> 2. If we won't take it now, then will it be backported anyway?

2) Yes it will get backported.  In fact I'm about to commit it to staging.

1) It's a bug in a new feature for 4.19, so if we don't take this bugfix
then we'll have to strip it from the release notes.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 17:41:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 17:41:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763460.1173730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWJW4-0002LL-UE; Tue, 23 Jul 2024 17:41:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763460.1173730; Tue, 23 Jul 2024 17: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 1sWJW4-0002LE-Re; Tue, 23 Jul 2024 17:41:36 +0000
Received: by outflank-mailman (input) for mailman id 763460;
 Tue, 23 Jul 2024 17: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=402b=OX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWJW3-0002L8-Lg
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 17:41:35 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd2bcab7-491a-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 19:41:33 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52f04150796so3413607e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 10:41:33 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c785d96sm564232566b.9.2024.07.23.10.41.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 10: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: cd2bcab7-491a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721756492; x=1722361292; 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=7so5yOkajtILhIB4eAzsw9yrXHKi0Sp/DtmGeke8xss=;
        b=XJwLU5dXpdhHH8ehq90Fhhwqe/1aTqhHO2lt/2TQZyuOpaynboYQXJh4PS7Mu0v7of
         BplJr5T3xkNhlGxfHpJgaYEY8SN6qrE39Nq3GTp6uLNQ1nzXGHi/EzERAYI+0Ucn2t+2
         x3ivOdcIJ+vK/9cF0d16Jni9ovdjlEIvogQbk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721756492; x=1722361292;
        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=7so5yOkajtILhIB4eAzsw9yrXHKi0Sp/DtmGeke8xss=;
        b=LM3pFiXsrN7YW1XWM274mwmRwTFaKhGjJWfOqA+5F3GPSsiw+ZIr1EnF5JpyX9pLQf
         AdHF8XDQmseFs84gDELPV+j18HsQQx+vlGv8jJfjv+NmBwYgUESr5zuaGR+6QtjoMJfI
         e4kaEzXMs8x9MmGJZcwYVO2Sp3wmhYgMshFShmuPxOl/DULgvWoeTzZc8DNkrqNbXh52
         RW/4T8hZ2ppj57+oB/swDH5r4ofVhOdBw40mvWuvWAC0RDzpLBIGANT36gpSsUo5KVby
         8NEBIlnR5dFStgiIp5ANgw1oSgG23pmWJjFsItoR1F85VYA9ELo6iOURqM4NTFV/uIdL
         x2fg==
X-Gm-Message-State: AOJu0Yw21Vs6dXvF7LsGT4ZcevSFgsCqns+FxsVqU5ya7CSniPn06aI7
	PGdBtFXO3dkpH6tc1ncPDMKF3k6XQ1MS4QAuHKmHT/n8J5mWBWPEk7s1ZXL/QqeP4cY49gSk0Zb
	c
X-Google-Smtp-Source: AGHT+IG2JsrLKI+X4Ti5/Q8D2AFhgxUBjd2JXxXvATr9WTBvrEdVmEFifovhFX8NwdeALQGPewvIVA==
X-Received: by 2002:a05:6512:2247:b0:52e:9d6c:4462 with SMTP id 2adb3069b0e04-52fc40455e1mr2895738e87.23.1721756492039;
        Tue, 23 Jul 2024 10:41: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>,
	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>
Subject: [PATCH] xen/printk: Avoid the use of L as a length modifier
Date: Tue, 23 Jul 2024 18:41:29 +0100
Message-Id: <20240723174129.67911-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Coverity complains about it being invalid.  It turns out that it is a GCC-ism
to treat ll and L equivalently.  C99 only permits L to mean long double.

Convert all uses of L in to alternatives, either l, ll or PRI.64 depending on
the operand type.  This in turn removes some unnecessary casts which look to
predate us having correct PRI* constants.

No functional change.

Coverity-IDs: 1464224, 1464228, 1464248, 1464261, 1464272, 1464281, 1464287, 1464290, 1494437

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>

I'm disappointed at having to use %ll for __fix_to_virt() in apic.c and
io_apic.c.  The expression ends up ULL because of the GB(64) in VMAP_VIRT_END,
but can't really be changed without breaking 32bit builds of Xen.

One option might be to turn __fix_to_virt() into a proper function, but
there's a lot of that infrastructure which should be dedup'd and not left to
each arch to copy.
---
 xen/arch/x86/apic.c            | 2 +-
 xen/arch/x86/cpu/intel.c       | 2 +-
 xen/arch/x86/cpu/mcheck/mce.c  | 9 ++++-----
 xen/arch/x86/cpu/mcheck/vmce.c | 2 +-
 xen/arch/x86/e820.c            | 6 +++---
 xen/arch/x86/hvm/vmx/vmcs.c    | 4 ++--
 xen/arch/x86/io_apic.c         | 2 +-
 xen/common/page_alloc.c        | 4 ++--
 xen/common/perfc.c             | 8 ++++----
 9 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 6567af685a1b..406ecbaab53e 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -938,7 +938,7 @@ void __init init_apic_mappings(void)
         apic_phys = mp_lapic_addr;
 
     set_fixmap_nocache(FIX_APIC_BASE, apic_phys);
-    apic_printk(APIC_VERBOSE, "mapped APIC to %08Lx (%08lx)\n", APIC_BASE,
+    apic_printk(APIC_VERBOSE, "mapped APIC to %08llx (%08lx)\n", APIC_BASE,
                 apic_phys);
 
 __next:
diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index af56e57bd8ab..29690843fa4a 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -441,7 +441,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
             unsigned long long val = ecx;
 
             val *= ebx;
-            printk("CPU%u: TSC: %u Hz * %u / %u = %Lu Hz\n",
+            printk("CPU%u: TSC: %u Hz * %u / %u = %llu Hz\n",
                    smp_processor_id(), ecx, ebx, eax, val / eax);
         }
         else if ( ecx | eax | ebx )
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 32c1b2756b90..c2b5199f8bcc 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -1183,8 +1183,8 @@ static bool x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
 
         if ( reason != NULL )
         {
-            printk("HV MSR INJECT ERROR: MSR %#Lx %s\n",
-                   (unsigned long long)mci->mcinj_msr[i].reg, reason);
+            printk("HV MSR INJECT ERROR: MSR %#"PRIx64" %s\n",
+                   mci->mcinj_msr[i].reg, reason);
             errs++;
         }
     }
@@ -1228,11 +1228,10 @@ static void cf_check x86_mc_msrinject(void *data)
 
     for ( i = 0, msr = &mci->mcinj_msr[0]; i < mci->mcinj_count; i++, msr++ )
     {
-        printk("HV MSR INJECT (%s) target %u actual %u MSR %#Lx <-- %#Lx\n",
+        printk("HV MSR INJECT (%s) target %u actual %u MSR %#"PRIx64" <-- %#"PRIx64"\n",
                intpose ? "interpose" : "hardware",
                mci->mcinj_cpunr, smp_processor_id(),
-               (unsigned long long)msr->reg,
-               (unsigned long long)msr->value);
+               msr->reg, msr->value);
 
         if ( intpose )
             intpose_add(mci->mcinj_cpunr, msr->reg, msr->value);
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 5abdf4cb5fd5..dce67a3e1b2c 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -71,7 +71,7 @@ int vmce_restore_vcpu(struct vcpu *v, const struct hvm_vmce_vcpu *ctxt)
     if ( ctxt->caps & ~guest_mcg_cap & ~MCG_CAP_COUNT & ~MCG_CTL_P )
     {
         printk(XENLOG_G_ERR
-               "%s restore: unsupported MCA capabilities %#"PRIx64" for %pv (supported: %#Lx)\n",
+               "%s restore: unsupported MCA capabilities %#"PRIx64" for %pv (supported: %#llx)\n",
                 is_hvm_vcpu(v) ? "HVM" : "PV", ctxt->caps,
                 v, guest_mcg_cap & ~MCG_CAP_COUNT);
         return -EINVAL;
diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c
index 6a3ce7e0a07f..bfe373e03427 100644
--- a/xen/arch/x86/e820.c
+++ b/xen/arch/x86/e820.c
@@ -94,9 +94,9 @@ void __init print_e820_memory_map(const struct e820entry *map,
     unsigned int i;
 
     for (i = 0; i < entries; i++) {
-        printk(" [%016Lx, %016Lx] ",
-               (unsigned long long)(map[i].addr),
-               (unsigned long long)(map[i].addr + map[i].size) - 1);
+        printk(" [%016"PRIx64", %016"PRIx64"] ",
+               map[i].addr,
+               map[i].addr + map[i].size - 1);
         switch (map[i].type) {
         case E820_RAM:
             printk("(usable)\n");
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 9b6dc51f36ab..28d91c3857d5 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -517,7 +517,7 @@ static int vmx_init_vmcs_config(bool bsp)
         if ( (vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32)) >
              PAGE_SIZE )
         {
-            printk("VMX: CPU%d VMCS size is too big (%Lu bytes)\n",
+            printk("VMX: CPU%d VMCS size is too big (%llu bytes)\n",
                    smp_processor_id(),
                    vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32));
             return -EINVAL;
@@ -564,7 +564,7 @@ static int vmx_init_vmcs_config(bool bsp)
         if ( (vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32)) !=
              ((vmx_basic_msr & VMX_BASIC_VMCS_SIZE_MASK) >> 32) )
         {
-            printk("VMX: CPU%d unexpected VMCS size %Lu\n",
+            printk("VMX: CPU%d unexpected VMCS size %llu\n",
                    smp_processor_id(),
                    vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32));
             mismatch = 1;
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index d2a313c4ac72..ef076bfaf3f5 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2597,7 +2597,7 @@ static void __init ioapic_init_mappings(void)
         }
 
         set_fixmap_nocache(idx, ioapic_phys);
-        apic_printk(APIC_VERBOSE, "mapped IOAPIC to %08Lx (%08lx)\n",
+        apic_printk(APIC_VERBOSE, "mapped IOAPIC to %08llx (%08lx)\n",
                     __fix_to_virt(idx), ioapic_phys);
 
         if ( bad_ioapic_register(i) )
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 33c8c917d984..3ea5c1b38b4a 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2395,7 +2395,7 @@ int assign_pages(
 
         if ( unlikely(nr > d->max_pages - tot_pages) )
         {
-            gprintk(XENLOG_INFO, "Over-allocation for %pd: %Lu > %u\n",
+            gprintk(XENLOG_INFO, "Over-allocation for %pd: %llu > %u\n",
                     d, tot_pages + 0ULL + nr, d->max_pages);
             rc = -E2BIG;
             goto out;
@@ -2407,7 +2407,7 @@ int assign_pages(
         if ( unlikely(d->tot_pages + nr < nr) )
         {
             gprintk(XENLOG_INFO,
-                    "Excess allocation for %pd: %Lu (%u extra)\n",
+                    "Excess allocation for %pd: %llu (%u extra)\n",
                     d, d->tot_pages + 0ULL + nr, d->extra_pages);
             if ( pg[0].count_info & PGC_extra )
                 d->extra_pages -= nr;
diff --git a/xen/common/perfc.c b/xen/common/perfc.c
index 80480aa7766d..3efb3a4262ef 100644
--- a/xen/common/perfc.c
+++ b/xen/common/perfc.c
@@ -49,7 +49,7 @@ void cf_check perfc_printall(unsigned char key)
                 sum += per_cpu(perfcounters, cpu)[j];
             if ( perfc_info[i].type == TYPE_S_SINGLE ) 
                 sum = (perfc_t) sum;
-            printk("TOTAL[%12Lu]", sum);
+            printk("TOTAL[%12llu]", sum);
             if ( sum )
             {
                 k = 0;
@@ -74,7 +74,7 @@ void cf_check perfc_printall(unsigned char key)
             }
             if ( perfc_info[i].type == TYPE_S_ARRAY ) 
                 sum = (perfc_t) sum;
-            printk("TOTAL[%12Lu]", sum);
+            printk("TOTAL[%12llu]", sum);
             if (sum)
             {
 #ifdef CONFIG_PERF_ARRAYS
@@ -87,7 +87,7 @@ void cf_check perfc_printall(unsigned char key)
                         sum = (perfc_t) sum;
                     if ( (k % 4) == 0 )
                         printk("\n%16s", "");
-                    printk("  ARR%02u[%10Lu]", k, sum);
+                    printk("  ARR%02u[%10llu]", k, sum);
                 }
 #else
                 k = 0;
@@ -103,7 +103,7 @@ void cf_check perfc_printall(unsigned char key)
                         sum = (perfc_t) sum;
                     if ( k > 0 && (k % 4) == 0 )
                         printk("\n%53s", "");
-                    printk("  CPU%02u[%10Lu]", cpu, sum);
+                    printk("  CPU%02u[%10llu]", cpu, sum);
                     ++k;
                 }
 #endif
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 18:23:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 18:23:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763475.1173739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWKAW-00087c-5V; Tue, 23 Jul 2024 18:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763475.1173739; Tue, 23 Jul 2024 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 1sWKAW-00087V-2m; Tue, 23 Jul 2024 18:23:24 +0000
Received: by outflank-mailman (input) for mailman id 763475;
 Tue, 23 Jul 2024 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=m9Jy=OX=gmail.com=milandjokic1995@srs-se1.protection.inumbo.net>)
 id 1sWKAU-00087P-Ur
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 18:23:23 +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 a38c1262-4920-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 20:23:20 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-368313809a4so74918f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 11:23:20 -0700 (PDT)
Received: from Xen-host.domain.local ([89.216.37.146])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-36878695165sm12153993f8f.62.2024.07.23.11.23.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 11: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: a38c1262-4920-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721759000; x=1722363800; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rEKXJ3rnaM1OvcvTBXIXn3MAAErsEuSno4les8Onla4=;
        b=gpv2fpQIy3/p4qq/hhbx4Gqsu9yXHA+yLAiRs/9nRDc1hCpiOPg51aDFTTT3Q6/QNb
         0ffwVNXCh9Aoq48ErHKF4I18dl/tFqTYHWhCLN2yF8HfG46/xxypV8SpIx1kWSHGy72l
         Mn3jPYSwPG8uwnWTeRIAV0HYfDEHmNR+1hFsj8ogVXlQYLprvDESswx6+IphysDor/fY
         Y0Xvki9PZ7yfJRfOYMUMKTuvWORWqm6TA1ThXk8jtEFgzANL+5T22lLB1jKkrN5yTHsy
         D2MGonY8aV0JardKJLgHkVn5zBqa7xx9D9GnMHq7rqA28vH/oM3Xc1RatxkaeHbzz97o
         9vdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721759000; x=1722363800;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rEKXJ3rnaM1OvcvTBXIXn3MAAErsEuSno4les8Onla4=;
        b=b21j1ISVX4k2Jory/Rf7tlO+mN/C/fcm+Cez9t8m41LBNCpCPzVmXq1UCK9OMGki/O
         kfrXCFvRXT78/sU/4L8pQ9U1CtOu4XNNr6UABAwmxn9LL+jAQ/TC9NVUnr6jpiIoWITc
         UpTuPgVSlIfgvU9cnmo/Ro58/DM+bY/ctLFFDeVGXnt65dpfags3fYuKohyb7/gLok7X
         XNHoFb0Sfui5RLocpn0PU5nj18OFTUehqCFKII09U67L4ZLaIgRADezW+mnDYIaZqXAW
         3K8eAUeyEqHGWngle2FOZcbKAjH2ldSatd2eU7iI7nqMjLAvhaSMJIF1nOlMHcqiL/rP
         NiGg==
X-Gm-Message-State: AOJu0Yw3XgYDwSPg53j9twE9TvOHYpViOIOrn3BZNycKpnCDV4XSdGA/
	0xamfWouoF/ILJ1AoHX/jBMgtttLSANZVdgZR/kXIimyKBpfaL0UBZ6jBuuW
X-Google-Smtp-Source: AGHT+IF3Fo/93/hCrwGY9D48HZbsCXb4BnNPN4ndkhdnPMjtwU39QaZeKp+eQ777InDukQAZZAlSsg==
X-Received: by 2002:a05:6000:1544:b0:366:df35:b64f with SMTP id ffacd0b85a97d-369e3e5a4f9mr2768780f8f.4.1721758999264;
        Tue, 23 Jul 2024 11:23:19 -0700 (PDT)
From: Milan Djokic <milandjokic1995@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: oleksii.kurochko@gmail.com,
	Nikola Jelic <nikola.jelic@rt-rk.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	Milan Djokic <milan.djokic@rt-rk.com>
Subject: [PATCH v2] xen: PE/COFF image header
Date: Tue, 23 Jul 2024 20:22:06 +0200
Message-Id: <728bb10e944a7ec28a67c2e9e62910632eb2366b.1721758832.git.milandjokic1995@gmail.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <2b747d672eeadc1150d3b84f0303e1d288311133.1721391876.git.milan.djokic@rt-rk.com>
References: <2b747d672eeadc1150d3b84f0303e1d288311133.1721391876.git.milan.djokic@rt-rk.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Nikola Jelic <nikola.jelic@rt-rk.com>

Added PE/COFF generic image header which shall be used for EFI
application format for x86/risc-v. x86 and risc-v source shall be adjusted
to use this header in following commits. pe.h header is taken over from
linux kernel with minor changes in terms of formatting and structure member comments.
Also, COFF relocation and win cert structures are ommited, since these are not relevant for Xen.

Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 36e4fc57fc16

Signed-off-by: Nikola Jelic <nikola.jelic@rt-rk.com>
Signed-off-by: Milan Djokic <milan.djokic@rt-rk.com>
---
This header is split into a separate commit following discussion from https://lists.xenproject.org/archives/html/xen-devel/2024-07/msg00166.html
Upcoming commit shall modify x86 implementation to use this header
instead of internal structures.
---
Changes in V2:
  - Fixed header formatting and some structure member names/comments
  - Removed linux kernel specific macros (EFI stub version, linux pe
magic)
  - Removed duplicated values
  - Removed COFF relocation and win cert structures which are not relevant for Xen
---
 xen/include/efi/pe.h | 291 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 291 insertions(+)
 create mode 100644 xen/include/efi/pe.h

diff --git a/xen/include/efi/pe.h b/xen/include/efi/pe.h
new file mode 100644
index 0000000000..64e047e88b
--- /dev/null
+++ b/xen/include/efi/pe.h
@@ -0,0 +1,291 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright 2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * Author(s): Peter Jones <pjones@redhat.com>
+ */
+#ifndef EFI__PE_H
+#define EFI__PE_H
+
+#define MZ_MAGIC 0x5a4d /* "MZ" */
+
+#define PE_MAGIC              0x00004550 /* "PE\0\0" */
+#define PE_OPT_MAGIC_PE32     0x010b
+#define PE_OPT_MAGIC_PE32_ROM 0x0107
+#define PE_OPT_MAGIC_PE32PLUS 0x020b
+
+/* machine type */
+#define IMAGE_FILE_MACHINE_UNKNOWN     0x0000
+#define IMAGE_FILE_MACHINE_AM33        0x01d3
+#define IMAGE_FILE_MACHINE_AMD64       0x8664
+#define IMAGE_FILE_MACHINE_ARM         0x01c0
+#define IMAGE_FILE_MACHINE_ARMV7       0x01c4
+#define IMAGE_FILE_MACHINE_ARM64       0xaa64
+#define IMAGE_FILE_MACHINE_EBC         0x0ebc
+#define IMAGE_FILE_MACHINE_I386        0x014c
+#define IMAGE_FILE_MACHINE_IA64        0x0200
+#define IMAGE_FILE_MACHINE_M32R        0x9041
+#define IMAGE_FILE_MACHINE_MIPS16      0x0266
+#define IMAGE_FILE_MACHINE_MIPSFPU     0x0366
+#define IMAGE_FILE_MACHINE_MIPSFPU16   0x0466
+#define IMAGE_FILE_MACHINE_POWERPC     0x01f0
+#define IMAGE_FILE_MACHINE_POWERPCFP   0x01f1
+#define IMAGE_FILE_MACHINE_R4000       0x0166
+#define IMAGE_FILE_MACHINE_RISCV32     0x5032
+#define IMAGE_FILE_MACHINE_RISCV64     0x5064
+#define IMAGE_FILE_MACHINE_RISCV128    0x5128
+#define IMAGE_FILE_MACHINE_SH3         0x01a2
+#define IMAGE_FILE_MACHINE_SH3DSP      0x01a3
+#define IMAGE_FILE_MACHINE_SH3E        0x01a4
+#define IMAGE_FILE_MACHINE_SH4         0x01a6
+#define IMAGE_FILE_MACHINE_SH5         0x01a8
+#define IMAGE_FILE_MACHINE_THUMB       0x01c2
+#define IMAGE_FILE_MACHINE_WCEMIPSV2   0x0169
+#define IMAGE_FILE_MACHINE_LOONGARCH32 0x6232
+#define IMAGE_FILE_MACHINE_LOONGARCH64 0x6264
+
+/* flags */
+#define IMAGE_FILE_RELOCS_STRIPPED         0x0001
+#define IMAGE_FILE_EXECUTABLE_IMAGE        0x0002
+#define IMAGE_FILE_LINE_NUMS_STRIPPED      0x0004
+#define IMAGE_FILE_LOCAL_SYMS_STRIPPED     0x0008
+#define IMAGE_FILE_AGGRESSIVE_WS_TRIM      0x0010
+#define IMAGE_FILE_LARGE_ADDRESS_AWARE     0x0020
+#define IMAGE_FILE_16BIT_MACHINE           0x0040
+#define IMAGE_FILE_BYTES_REVERSED_LO       0x0080
+#define IMAGE_FILE_32BIT_MACHINE           0x0100
+#define IMAGE_FILE_DEBUG_STRIPPED          0x0200
+#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
+#define IMAGE_FILE_NET_RUN_FROM_SWAP       0x0800
+#define IMAGE_FILE_SYSTEM                  0x1000
+#define IMAGE_FILE_DLL                     0x2000
+#define IMAGE_FILE_UP_SYSTEM_ONLY          0x4000
+#define IMAGE_FILE_BYTES_REVERSED_HI       0x8000
+
+#define IMAGE_SUBSYSTEM_UNKNOWN                 0
+#define IMAGE_SUBSYSTEM_NATIVE                  1
+#define IMAGE_SUBSYSTEM_WINDOWS_GUI             2
+#define IMAGE_SUBSYSTEM_WINDOWS_CUI             3
+#define IMAGE_SUBSYSTEM_POSIX_CUI               7
+#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI          9
+#define IMAGE_SUBSYSTEM_EFI_APPLICATION         10
+#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
+#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
+#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE           13
+#define IMAGE_SUBSYSTEM_XBOX                    14
+
+#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         0x0040
+#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      0x0080
+#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            0x0100
+#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          0x0200
+#define IMAGE_DLLCHARACTERISTICS_NO_SEH                0x0400
+#define IMAGE_DLLCHARACTERISTICS_NO_BIND               0x0800
+#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            0x2000
+#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
+
+#define IMAGE_DLLCHARACTERISTICS_EX_CET_COMPAT         0x0001
+#define IMAGE_DLLCHARACTERISTICS_EX_FORWARD_CFI_COMPAT 0x0040
+
+/* they actually defined 0x00000000 as well, but I think we'll skip that one. */
+#define IMAGE_SCN_RESERVED_0             0x00000001
+#define IMAGE_SCN_RESERVED_1             0x00000002
+#define IMAGE_SCN_RESERVED_2             0x00000004
+#define IMAGE_SCN_TYPE_NO_PAD            0x00000008 /* don't pad - obsolete */
+#define IMAGE_SCN_RESERVED_3             0x00000010
+#define IMAGE_SCN_CNT_CODE               0x00000020 /* .text */
+#define IMAGE_SCN_CNT_INITIALIZED_DATA   0x00000040 /* .data */
+#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* .bss */
+#define IMAGE_SCN_LNK_OTHER              0x00000100 /* reserved */
+#define IMAGE_SCN_LNK_INFO               0x00000200 /* .drectve comments */
+#define IMAGE_SCN_RESERVED_4             0x00000400
+#define IMAGE_SCN_LNK_REMOVE             0x00000800 /* .o only - scn to be rm'd*/
+#define IMAGE_SCN_LNK_COMDAT             0x00001000 /* .o only - COMDAT data */
+#define IMAGE_SCN_RESERVED_5             0x00002000 /* spec omits this */
+#define IMAGE_SCN_RESERVED_6             0x00004000 /* spec omits this */
+#define IMAGE_SCN_GPREL                  0x00008000 /* global pointer referenced data */
+/* spec lists 0x20000 twice, I suspect they meant 0x10000 for one of them */
+#define IMAGE_SCN_MEM_PURGEABLE 0x00010000 /* reserved for "future" use */
+#define IMAGE_SCN_16BIT         0x00020000 /* reserved for "future" use */
+#define IMAGE_SCN_LOCKED        0x00040000 /* reserved for "future" use */
+#define IMAGE_SCN_PRELOAD       0x00080000 /* reserved for "future" use */
+/* and here they just stuck a 1-nibble integer in the middle of a bitfield */
+#define IMAGE_SCN_ALIGN_1BYTES    0x00100000 /* it does what it says on the box */
+#define IMAGE_SCN_ALIGN_2BYTES    0x00200000
+#define IMAGE_SCN_ALIGN_4BYTES    0x00300000
+#define IMAGE_SCN_ALIGN_8BYTES    0x00400000
+#define IMAGE_SCN_ALIGN_16BYTES   0x00500000
+#define IMAGE_SCN_ALIGN_32BYTES   0x00600000
+#define IMAGE_SCN_ALIGN_64BYTES   0x00700000
+#define IMAGE_SCN_ALIGN_128BYTES  0x00800000
+#define IMAGE_SCN_ALIGN_256BYTES  0x00900000
+#define IMAGE_SCN_ALIGN_512BYTES  0x00a00000
+#define IMAGE_SCN_ALIGN_1024BYTES 0x00b00000
+#define IMAGE_SCN_ALIGN_2048BYTES 0x00c00000
+#define IMAGE_SCN_ALIGN_4096BYTES 0x00d00000
+#define IMAGE_SCN_ALIGN_8192BYTES 0x00e00000
+#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* extended relocations */
+#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 /* scn can be discarded */
+#define IMAGE_SCN_MEM_NOT_CACHED  0x04000000 /* cannot be cached */
+#define IMAGE_SCN_MEM_NOT_PAGED   0x08000000 /* not pageable */
+#define IMAGE_SCN_MEM_SHARED      0x10000000 /* can be shared */
+#define IMAGE_SCN_MEM_EXECUTE     0x20000000 /* can be executed as code */
+#define IMAGE_SCN_MEM_READ        0x40000000 /* readable */
+#define IMAGE_SCN_MEM_WRITE       0x80000000 /* writeable */
+
+#define IMAGE_DEBUG_TYPE_CODEVIEW              2
+#define IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS 20
+
+#ifndef __ASSEMBLY__
+
+struct mz_hdr {
+    uint16_t magic;              /* MZ_MAGIC */
+    uint16_t lbsize;             /* size of last used block */
+    uint16_t blocks;             /* pages in file, 0x3 */
+    uint16_t relocs;             /* relocations */
+    uint16_t hdrsize;            /* header size in "paragraphs" */
+    uint16_t min_extra_pps;      /* .bss */
+    uint16_t max_extra_pps;      /* runtime limit for the arena size */
+    uint16_t ss;                 /* relative stack segment */
+    uint16_t sp;                 /* initial %sp register */
+    uint16_t checksum;           /* word checksum */
+    uint16_t ip;                 /* initial %ip register */
+    uint16_t cs;                 /* initial %cs relative to load segment */
+    uint16_t reloc_table_offset; /* offset of the first relocation */
+    uint16_t overlay_num;        /* overlay number.  set to 0. */
+    uint16_t reserved0[4];       /* reserved */
+    uint16_t oem_id;             /* oem identifier */
+    uint16_t oem_info;           /* oem specific */
+    uint16_t reserved1[10];      /* reserved */
+    uint32_t peaddr;             /* file offset of PE header */
+    char     message[];          /* message to print */
+};
+
+struct mz_reloc {
+    uint16_t offset;
+    uint16_t segment;
+};
+
+struct pe_hdr {
+    uint32_t magic;        /* PE magic */
+    uint16_t machine;      /* machine type */
+    uint16_t sections;     /* number of sections */
+    uint32_t timestamp;    /* time_t */
+    uint32_t symbol_table; /* symbol table offset */
+    uint32_t symbols;      /* number of symbols */
+    uint16_t opt_hdr_size; /* size of optional header */
+    uint16_t flags;        /* flags */
+};
+
+/*
+ * the fact that pe32 isn't padded where pe32+ is 64-bit means union won't
+ * work right.
+ */
+struct pe32_opt_hdr {
+    /* "standard" header */
+    uint16_t magic;       /* file type */
+    uint8_t  ld_major;    /* linker major version */
+    uint8_t  ld_minor;    /* linker minor version */
+    uint32_t text_size;   /* size of text section(s) */
+    uint32_t data_size;   /* size of data section(s) */
+    uint32_t bss_size;    /* size of bss section(s) */
+    uint32_t entry_point; /* file offset of entry point */
+    uint32_t code_base;   /* relative code addr in ram */
+    uint32_t data_base;   /* relative data addr in ram */
+    /* "windows" header */
+    uint32_t image_base;     /* preferred load address */
+    uint32_t section_align;  /* alignment in bytes */
+    uint32_t file_align;     /* file alignment in bytes */
+    uint16_t os_major;       /* major OS version */
+    uint16_t os_minor;       /* minor OS version */
+    uint16_t image_major;    /* major image version */
+    uint16_t image_minor;    /* minor image version */
+    uint16_t subsys_major;   /* major subsystem version */
+    uint16_t subsys_minor;   /* minor subsystem version */
+    uint32_t win32_version;  /* reserved, must be 0 */
+    uint32_t image_size;     /* image size */
+    uint32_t header_size;    /* header size rounded up to file_align */
+    uint32_t csum;           /* checksum */
+    uint16_t subsys;         /* subsystem */
+    uint16_t dll_flags;      /* more flags! */
+    uint32_t stack_size_req; /* amt of stack requested */
+    uint32_t stack_size;     /* amt of stack required */
+    uint32_t heap_size_req;  /* amt of heap requested */
+    uint32_t heap_size;      /* amt of heap required */
+    uint32_t loader_flags;   /* reserved, must be 0 */
+    uint32_t data_dirs;      /* number of data dir entries */
+};
+
+struct pe32plus_opt_hdr {
+    uint16_t magic;       /* file type */
+    uint8_t  ld_major;    /* linker major version */
+    uint8_t  ld_minor;    /* linker minor version */
+    uint32_t text_size;   /* size of text section(s) */
+    uint32_t data_size;   /* size of data section(s) */
+    uint32_t bss_size;    /* size of bss section(s) */
+    uint32_t entry_point; /* file offset of entry point */
+    uint32_t code_base;   /* relative code addr in ram */
+    /* "windows" header */
+    uint64_t image_base;     /* preferred load address */
+    uint32_t section_align;  /* alignment in bytes */
+    uint32_t file_align;     /* file alignment in bytes */
+    uint16_t os_major;       /* major OS version */
+    uint16_t os_minor;       /* minor OS version */
+    uint16_t image_major;    /* major image version */
+    uint16_t image_minor;    /* minor image version */
+    uint16_t subsys_major;   /* major subsystem version */
+    uint16_t subsys_minor;   /* minor subsystem version */
+    uint32_t win32_version;  /* reserved, must be 0 */
+    uint32_t image_size;     /* image size */
+    uint32_t header_size;    /* header size rounded up to file_align */
+    uint32_t csum;           /* checksum */
+    uint16_t subsys;         /* subsystem */
+    uint16_t dll_flags;      /* more flags! */
+    uint64_t stack_size_req; /* amt of stack requested */
+    uint64_t stack_size;     /* amt of stack required */
+    uint64_t heap_size_req;  /* amt of heap requested */
+    uint64_t heap_size;      /* amt of heap required */
+    uint32_t loader_flags;   /* reserved, must be 0 */
+    uint32_t data_dirs;      /* number of data dir entries */
+};
+
+struct data_dirent {
+    uint32_t rva;            /* relative to load address */
+    uint32_t size;
+};
+
+struct data_directory {
+    struct data_dirent exports;          /* .edata */
+    struct data_dirent imports;          /* .idata */
+    struct data_dirent resources;        /* .rsrc */
+    struct data_dirent exceptions;       /* .pdata */
+    struct data_dirent certs;            /* certs */
+    struct data_dirent base_relocations; /* .reloc */
+    struct data_dirent debug;            /* .debug */
+    struct data_dirent arch;             /* reservered */
+    struct data_dirent global_ptr;       /* global pointer reg. Size=0 */
+    struct data_dirent tls;              /* .tls */
+    struct data_dirent load_config;      /* load configuration structure */
+    struct data_dirent bound_imports;    /* no idea */
+    struct data_dirent import_addrs;     /* import address table */
+    struct data_dirent delay_imports;    /* delay-load import table */
+    struct data_dirent clr_runtime_hdr;  /* .cor (object only) */
+    struct data_dirent reserved;
+};
+
+struct section_header {
+    char     name[8];         /* name or string tbl offset */
+    uint32_t virtual_size;    /* size of loaded section in ram */
+    uint32_t rva;             /* relative virtual address */
+    uint32_t raw_data_size;   /* size of the section */
+    uint32_t data_addr;       /* file pointer to first page of sec */
+    uint32_t relocs;          /* file pointer to relocation entries */
+    uint32_t line_numbers;    /* line numbers */
+    uint16_t num_relocs;      /* number of relocations */
+    uint16_t num_lin_numbers; /* COFF line count */
+    uint32_t flags;
+};
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* EFI__PE_H */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 18:29:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 18:29:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763483.1173750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWKFv-0000QF-O9; Tue, 23 Jul 2024 18:28:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763483.1173750; Tue, 23 Jul 2024 18:28: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 1sWKFv-0000Q8-LO; Tue, 23 Jul 2024 18:28:59 +0000
Received: by outflank-mailman (input) for mailman id 763483;
 Tue, 23 Jul 2024 18:28: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=W1nq=OX=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sWKFu-0000Q2-EJ
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 18:28:58 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20600.outbound.protection.outlook.com
 [2a01:111:f403:2417::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6ac73c71-4921-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 20:28:55 +0200 (CEST)
Received: from SJ0PR03CA0114.namprd03.prod.outlook.com (2603:10b6:a03:333::29)
 by BY5PR12MB4290.namprd12.prod.outlook.com (2603:10b6:a03:20e::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.14; Tue, 23 Jul
 2024 18:28:52 +0000
Received: from SJ1PEPF0000231D.namprd03.prod.outlook.com
 (2603:10b6:a03:333:cafe::fe) by SJ0PR03CA0114.outlook.office365.com
 (2603:10b6:a03:333::29) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.28 via Frontend
 Transport; Tue, 23 Jul 2024 18:28:52 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF0000231D.mail.protection.outlook.com (10.167.242.234) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.11 via Frontend Transport; Tue, 23 Jul 2024 18:28:51 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 23 Jul
 2024 13:28:50 -0500
Received: from [172.23.111.139] (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, 23 Jul 2024 13:28: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: 6ac73c71-4921-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hus+TonpatTjnTwXA9HoYFSpDBOCXGTCKRR8UbG0x+7LoTNWThOsfUM1kronEfI0sttOm84mlpXX8EmenqMREfTZyZt184R/5Mg/bgI68D9xY5Atr+uiA4wmNBs7ecYB7Aha3zdtCeSad2VDO7t0CCGJTtD6Kuz/uSUP+GPVl2bwNBfBR/HEQ+FY+UvxiEbc1Ewz3rCmaUlqN2E+9wQ4PtMRIOOtUXswajtylPgxS/8B71XawLb01AITCO27pL0iclIJnHeGY9Kf1H+Ku2LK4Ns9a+xpXEUYk71yxXdkmbYgKHDGamqGqcEC5n04eGaO07v3hKtph0B+bQOadKTLwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=g+DT8OJiqnlgbG5hYSt88xcANE9o/290vg2yp65LNGM=;
 b=omlYVKvvbiSUTg74QE0H2qFHoH3C/FPYHyQJtKCEACK1QaUTqzuKbJKM9++PqFnvbsiDyG8PcDdaN2TMLN8WsW9L/ZwGZaiIfSuO6EpKlBroXdcwnM3X4I40ROejg5/rOBXEMlR+W6el5RVv9kL8XQfQgB6Er1zm6BQmlh4V4OSXcVyiHkBkLfskGvNFjI1QkgRjJl5yLJTNF6cT2YW1YAfQcYfPpXypm1U5vFPjvne1nMuNB7l1JhP6UTOiVpBWkEfxCj/yLh1X71+7rZCZt99sL2rmIzno5qa8AKCMdRcCjvArdK+R//SK/YDrS8Xhk8egzAYk2qHqn17WeApgfQ==
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=g+DT8OJiqnlgbG5hYSt88xcANE9o/290vg2yp65LNGM=;
 b=obWrpHyzsg+F+LmVIlb6OZHPCEXtMfC4hACHVLyKy+1uk2IqINv6bi5Owm113FeuFtODefyDWMuuyNc78DCIc10xFcsHlotb6uliB5xiwzi1ISENszWvYWcbw74I1oNBc4kpyniTzqzNZ6mZZrOPd8ALlfqeXB0Wz0sG04I9Uho=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <e5ee360d-d945-4807-a6ce-9a7b97b69bea@amd.com>
Date: Tue, 23 Jul 2024 14:05:45 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] hotplug: Restore block-tap phy compatibility
 (again)
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>, <oleksii.kurochko@gmail.com>
References: <20240715234631.4468-1-jandryuk@gmail.com> <Zp/GcCUVPX/d/7qx@l14>
 <ac3d7bcd-6ed8-4ded-bb5d-ab9c228e9579@amd.com>
 <8a185aeabe4b3928906036590affbec8658bf226.camel@gmail.com>
 <eb096455-cc60-4c34-b7e4-fb0345086934@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <eb096455-cc60-4c34-b7e4-fb0345086934@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: SJ1PEPF0000231D:EE_|BY5PR12MB4290:EE_
X-MS-Office365-Filtering-Correlation-Id: 9b5135a0-ffd9-482e-313b-08dcab454d6c
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?NzdKamNya21uUDFCQXJMb2dDUjNTdXc5MnNFdlNZa1djb1BlTk5ONGR4bTM3?=
 =?utf-8?B?bm5qM05MRFZqQmlmM0szZ1dyZlZGNDJqVGtRNThpWGMrNDdjdXAyUFBBak5U?=
 =?utf-8?B?Q0dFTjUwbml2aVNkSFVnb3FDUEprNE1EajZqRlgvMjBRSHptTEZ3SE9ZakdQ?=
 =?utf-8?B?cjhqTkg3ayt6Q2Q4OTZ4aGY2N0RVakc4Z3hNSTU5UXhWOTJGTCs4Smpwa3p1?=
 =?utf-8?B?TUtRYWJoZnJSbmt0eVFSVkx0UXVRRDNiYmY4QWVHYkttYWZnYTlYSFdJb2pn?=
 =?utf-8?B?NTJzQzZVbjR6bnVYRGFPNjZibXB5aER3bXZYdzhwQ0FKRy9yOE9CaEJCOHF5?=
 =?utf-8?B?dWRvT2JRdWkyZTU1QVRoNEZqL2VrbGlFNXpETy9QRjhMQ2tHZjF3NVpvYStQ?=
 =?utf-8?B?cWJpWmFBdWFqWStiaGlMaFNieG9nd0lIZzJKZUltdUt5cWpZU3ZTYTBNSVEy?=
 =?utf-8?B?MzlFaHJJQkpLSkd6YkY1ZC96elhFZVBVRk1RSzNuSXhENjJHVSthZTZqK1p6?=
 =?utf-8?B?Mnd1cVpxOVk5dVBrdXhCRVQ5UXdRMEZ3VHBzak5GV0FRK0Q1QytCbEFEWXpi?=
 =?utf-8?B?SUpRSVlOWDRSMUIzNnJrYnhsWE92VnVZcEVJU1o1aUVGcTlwZVV4Nzg3L1d0?=
 =?utf-8?B?c1NQQXV5RUZiUXhpNlJjRVFwWDhoOUZWRjNUYk9aSW1sQ3VQNWpyNnozK2VN?=
 =?utf-8?B?MjM2Y1pnNGZoUGVxbVpUNiswSHZUK09XekM0bVMxUU1xTU9vblBOakJabzll?=
 =?utf-8?B?Zk92cEhPWTFJWjRKTm9qWVVvWG9UWWpGY1U0TDR4bVI0cmFnQm1YV3p1Ymt2?=
 =?utf-8?B?SEJ2MkRtbzVudXhmVE02ZnFHVldxTms2WUYwYU9Od1BDZXJta202UktHdWhZ?=
 =?utf-8?B?a3FYR2dMdXBOOFZyWU1wWXZoYWlGWkc4ZmF6VGJvRlNnaXNwMEpHSGV3RVJD?=
 =?utf-8?B?cjhFSjc2OFpSK1NTMkNqb0hmS0V2MUwwYW9hYU9iZDdjVERRZXh5NG5SdHEz?=
 =?utf-8?B?SEc3dEpsZFpldnVSc0pSS0lQYnJ0ZWNiby91RU0wUGlFUDNQNXZPVkhFTmZa?=
 =?utf-8?B?a3NnRlpId3A4bi9NaEhQdGFPTUlNRjdNc2VZbkV4L0NTbmI5cmZESDJGUGpY?=
 =?utf-8?B?Znl3NUhKS3J4Y1pKdVlUOG1oUkJZeFJkNE5YSVJJeDV4WVYyak5ta3U0eWRT?=
 =?utf-8?B?WW0xRUNrbW5DQTl5SDcxaENQeEQyWmNEYWNWR1I3T0xJL1lXSnhqSlM4TUcw?=
 =?utf-8?B?WU1mUW5jOFZleThzbVpWZjI0STR2QmcvZ3ZyWXc0SkJHazgzQ0ozMTZJejJs?=
 =?utf-8?B?THowemw0bHRuWVFucDBtT3l4YXBqTG5YK2NRUVY1ZnFEZXVVQ3RQMFdUOEZn?=
 =?utf-8?B?NG5PV2ZnNVM2OUszNFh1UlprOWk2YVhEdnBlTDNhM2FkaEcwd1FLcy9jUG9D?=
 =?utf-8?B?MlhURGdJNXZmN3NnZzdVa2VQTjg5WUVMdXBPNEhjY3ZEeTlGWjQzRFRzL2ZL?=
 =?utf-8?B?TFZlVlZES1lWb1o1Z2tRWFRFWExUSG5pLzNlOWNWeUVWRHZkbTA2UE5DUW1Q?=
 =?utf-8?B?cXAwT2JJSlVJSzZkSGI3clNmM1YxRmthYWRzZHRpTk4ra1BnWDVTaHV6TVlz?=
 =?utf-8?B?WUlNQThNSVpLclVsb3J1QlgxclNQenBLb2JSYXRBaUI2WWVnRGxKWHRNMERJ?=
 =?utf-8?B?aHF3UUtnSklyaUhZNm1pNVlJTHMzcmZXeXJxVkpLTDVyZVhSVForK1dieHY2?=
 =?utf-8?B?c05VVGxqOVB1WlJPZVM2ay9YL1BKcVdJMU9WMG5ZbnZRSU9OWGs0RVNzZHUr?=
 =?utf-8?B?MS9oQVFURlFDL3RTZ1FBYXFhQUx2YWVQTlc0NjBQQ0pKV3RKc2ZBV2pnMmxo?=
 =?utf-8?B?K3pOcDVmNVI4OGZaZ3d6QnVVTS96bXM2ZWtQZEYyY01GZVN5Q00yc0hjZks3?=
 =?utf-8?Q?tvvMSiS4iK5KRDWj97YJzA+lCJs6FnPX?=
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: 23 Jul 2024 18:28:51.6828
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9b5135a0-ffd9-482e-313b-08dcab454d6c
X-MS-Exchange-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:
	SJ1PEPF0000231D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4290

On 2024-07-23 13:34, Andrew Cooper wrote:
> On 23/07/2024 6:31 pm, oleksii.kurochko@gmail.com wrote:
>> On Tue, 2024-07-23 at 11:04 -0400, Jason Andryuk wrote:
>>> On 2024-07-23 11:04, Anthony PERARD wrote:
>>>> On Mon, Jul 15, 2024 at 07:46:31PM -0400, Jason Andryuk wrote:
>>>>> "$dev" needs to be set correctly for backendtype=phy as well as
>>>>> backendtype=tap.  Move the setting into the conditional, so it
>>>>> can be
>>>>> handled properly for each.
>>>>>
>>>>> (dev could be captured during tap-ctl allocate for blktap module,
>>>>> but it
>>>>> would not be set properly for the find_device case.  The
>>>>> backendtype=tap
>>>>> case would need to be handled regardless.)
>>>>>
>>>>> Fixes: 6fcdc84927 ("hotplug: Restore block-tap phy
>>>>> compatibility")
>>>> Do you mean f16ac12bd418 ("hotplug: Restore block-tap phy
>>>> compatibility") ?
>>> Yes!  Thanks for checking that - I must have grabbed the hash from a
>>> local branch.
>>>
>>>>> Fixes: 76a484193d ("hotplug: Update block-tap")
>>>>>
>>>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>>> With the fixes tag fix:
>>>> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
>>> Thanks again.
>>>
>>> Oleksii, this is a fix (for an incomplete fix) for 4.19.  76a484193d
>>> broke compatibility for block-tap with the blktap2 kernel model (when
>>> adding support for tapback).  This finishes restoring blktap2
>>> support.
>>>
>>> I realize it's late in the release if you don't want to take it.
>> It's pretty late but I just wanted to clarify:
>> 1. Is so critical that we should have this in 4.19?
>> 2. If we won't take it now, then will it be backported anyway?
> 
> 2) Yes it will get backported.  In fact I'm about to commit it to staging.
> 
> 1) It's a bug in a new feature for 4.19, so if we don't take this bugfix
> then we'll have to strip it from the release notes.

It's a bug in the old feature.  The new feature - tapback daemon 
support, backendtype=tap - works with what's in the 4.19 tree.  It's the 
old kernel module support - backendtype=phy,script=block-tap - that was 
broken when adding tapback support.  This patch fixes the old support.

The change is localized in the block-tap script and requires explicit 
configuration (script=block-tap) to use.  So it seems to me to be a 
lower risk to take it even though it is late in the cycle.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 18:44:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 18:44:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763497.1173760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWKUs-0003Fa-44; Tue, 23 Jul 2024 18:44:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763497.1173760; Tue, 23 Jul 2024 18:44: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 1sWKUs-0003FT-11; Tue, 23 Jul 2024 18:44:26 +0000
Received: by outflank-mailman (input) for mailman id 763497;
 Tue, 23 Jul 2024 18:44: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 1sWKUq-0003FN-6s
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 18:44:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sWKUn-000595-LQ; Tue, 23 Jul 2024 18:44:21 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.244])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sWKUn-0007tP-Ae; Tue, 23 Jul 2024 18:44:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=BXZ3YblqffrrkRkXgpBfetobeWGI6CKRopZIjzbFiCY=; b=wTltopu8CnJZ9NVOIXt0lDgzID
	mIi7pQ76ndG1xaeFrPUJGmbNh9RQMTesL5GcvtNx8k4hwcw4mt50ca8HeOObZWKvpf7KYLgc1EKQu
	uk8NpgPcAMTbsH9J7o/vUpuPmzPMzKQSizSgab3gEI0WI8P7MeBiMuywBuvQUho74/DY=;
Message-ID: <4e0a8cb0-2190-4434-902b-6a8745935341@xen.org>
Date: Tue, 23 Jul 2024 19:44:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] xen/riscv: introduce asm/pmap.h header
To: oleksii.kurochko@gmail.com
Cc: Jan Beulich <jbeulich@suse.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1720799925.git.oleksii.kurochko@gmail.com>
 <c7331e4c2f481f069571976a708c4aba04d2c0e4.1720799926.git.oleksii.kurochko@gmail.com>
 <6458c61d-5974-41c2-a1e6-76e4a15a487a@suse.com>
 <54af6fb751da1103054de2d79a2057bec658f399.camel@gmail.com>
 <623da862-8e76-4d40-9aa9-b02c8fd9944d@xen.org>
 <a53ef38e044db149bb37b70f1e56a33c6a3e7c83.camel@gmail.com>
 <26ae01e2-d085-48d7-8b1f-da1e44b01e53@xen.org>
 <CAMacjJwWLjGcFbYEhCPyNEW_+sfb51+XtKqyBcc2JGm=D5bf0w@mail.gmail.com>
 <97c82aca-0b8a-4b78-980b-0857dbdae80a@suse.com>
 <4c9eb7a79c33c7cd2f6bde05b1fbc7770e662026.camel@gmail.com>
 <14ffb00d-d6ba-4c18-88c1-2601a2df8a8b@suse.com>
 <b7e248ae79aaded532d86453520fcb4cb7a7fb3b.camel@gmail.com>
 <9baa3203-b8d0-4774-a2a5-7ba61b213f1c@xen.org>
 <29c8b24ecd240268caa64ddcc590188ec3e80cd1.camel@gmail.com>
 <f3cf8cbfd02f5889e498a8046ca24141a8ceb010.camel@gmail.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <f3cf8cbfd02f5889e498a8046ca24141a8ceb010.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 23/07/2024 18:28, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-07-23 at 19:25 +0200, oleksii.kurochko@gmail.com wrote:
>> On Tue, 2024-07-23 at 16:49 +0100, Julien Grall wrote:
>>> Hi Oleksii,
>>>
>>> On 23/07/2024 16:36, oleksii.kurochko@gmail.com wrote:
>>>> On Tue, 2024-07-23 at 12:02 +0200, Jan Beulich wrote:
>>>>> On 23.07.2024 10:55, oleksii.kurochko@gmail.com wrote:
>>>>>> On Tue, 2024-07-23 at 10:36 +0200, Jan Beulich wrote:
>>>>>>> On 23.07.2024 10:02, Oleksii Kurochko wrote:
>>>>>>>> On Mon, Jul 22, 2024 at 7:27 PM Julien Grall
>>>>>>>> <julien@xen.org>
>>>>>>>> wrote:
>>>>>>>>>>> On 22/07/2024 15:44, Oleksii Kurochko wrote:
>>>>>>>>>>       /* Map a 4k page in a fixmap entry */
>>>>>>>>>>       void set_fixmap(unsigned map, mfn_t mfn,
>>>>>>>>>> unsigned
>>>>>>>>>> int
>>>>>>>>>> flags)
>>>>>>>>>>       {
>>>>>>>>>>           pte_t pte;
>>>>>>>>>>
>>>>>>>>>>           pte = mfn_to_xen_entry(mfn, flags);
>>>>>>>>>>           pte.pte |= PTE_LEAF_DEFAULT;
>>>>>>>>>>           write_pte(&xen_fixmap[pt_index(0,
>>>>>>>>>> FIXMAP_ADDR(map))],
>>>>>>>>>> pte);
>>>>>>>>>
>>>>>>>>> It would be saner to check if you are not overwriting
>>>>>>>>> any
>>>>>>>>> existing
>>>>>>>>> mapping as otherwise you will probably need a TLB
>>>>>>>>> flush.
>>>>>>>>>
>>>>>>>>>>       }
>>>>>>>>>>
>>>>>>>>>>       /* Remove a mapping from a fixmap entry */
>>>>>>>>>>       void clear_fixmap(unsigned map)
>>>>>>>>>>       {
>>>>>>>>>>           pte_t pte = {0};
>>>>>>>>>>           write_pte(&xen_fixmap[pt_index(0,
>>>>>>>>>> FIXMAP_ADDR(map))],
>>>>>>>>>> pte);
>>>>>>>>>
>>>>>>>>> Don't you need a TLB flush?
>>>>>>>>>
>>>>>>>> Inside write_pte() there is "sfence.vma".
>>>>>>>
>>>>>>> That's just a fence though, not a TLB flush.
>>>>>>   From the privileged doc:
>>>>>>      ```
>>>>>>      SFENCE.VMA is also used to invalidate entries in the
>>>>>>      address-translation cache associated with a hart (see
>>>>>> Section
>>>>>> 4.3.2).
>>>>>>      ...
>>>>>>      The SFENCE.VMA is used to flush any local hardware caches
>>>>>> related to
>>>>>>      address translation.
>>>>>>      It is specified as a fence rather than a TLB flush to
>>>>>> provide
>>>>>> cleaner
>>>>>>      semantics with respect to
>>>>>>      which instructions are affected by the flush operation
>>>>>> and
>>>>>> to
>>>>>> support a
>>>>>>      wider variety of dynamic
>>>>>>      caching structures and memory-management schemes.
>>>>>> SFENCE.VMA is
>>>>>> also
>>>>>>      used by higher
>>>>>>      privilege levels to synchronize page table writes and the
>>>>>> address
>>>>>>      translation hardware.
>>>>>>      ...
>>>>>>      ```
>>>>>> I read this as SFENCE.VMA is used not only for ordering of
>>>>>> load/stores,
>>>>>> but also to flush TLB ( which is a type of more general term
>>>>>> as
>>>>>> address-translation cache, IIUIC ).
>>> I have to admit, I am a little because concerned with calling
>>> sfence.vma
>>> in write_pte() (this may only be because I am not very familiar
>>> with
>>> RISC-V).
>>>
>>> We have cases where multiple entry will be written in a single
>>> map_pages_to_xen() call. So wouldn't this means that the local TLBs
>>> would be nuked for every write rather than once?
>> Yes, it will be nuked. It is bad from perfomance point of view.
>> I just wanted to be sure that I won't miss to put sfence.vma when it
>> is
>> necessary and then reworked that a little bit after. But it seems it
>> would be better not to call sfence.vma in write_pte() just from the
>> start.
>>
>>
>>>
>>>
>>>>>
>>>>> Oh, I see. Kind of unexpected for an instruction of that name.
>>>>> Yet
>>>>> note
>>>>> how they talk about the local hart only. You need a wider scope
>>>>> TLB
>>>>> flush here.
>>>> Could you please clarify why it is needed wider?
>>>>
>>>> Arm Xen flushed only local TLB.
>>>
>>> Which code are you looking at? set_fixmap() will propagate the TLB
>>> flush
>>> to all innershareable CPUs.
>> Yes, here I agree that set_fixmap() uses map_pages_to_xen which
>> somewhere inside uses flush_xen_tlb_range_va() ( not
>> flush_xen_tlb_range_va() ) so TLB flush will happen for all
>> innershareable CPUs.
>>>
>>> The PMAP interface will do a local TLB flush because the interface
>>> can
>>> only be used during early boot where there is a single CPU running.
>>
>> Yes, I am looking at PMAP:
>>     static inline void arch_pmap_unmap(unsigned int slot)
>>     {
>>         lpae_t pte = {};
>>     
>>         write_pte(&xen_fixmap[slot], pte);
>>     
>>         flush_xen_tlb_range_va(FIXMAP_ADDR(slot), PAGE_SIZE);
>>     }
>> IIUC, originaly Jan told about arch_pmap_unmap() case so that is why
>> I
>> decided to clarify additionaly.
> 
> Julien,
> I have a questation related to Arm's version of arch_pmap_map():
> 
>     static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
>     {
>         lpae_t *entry = &xen_fixmap[slot];
>         lpae_t pte;
>     
>         ASSERT(!lpae_is_valid(*entry));
>     
>         pte = mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
>         pte.pt.table = 1;
>         write_pte(entry, pte);
>         /*
>          * The new entry will be used very soon after arch_pmap_map()
>     returns.
>          * So ensure the DSB in write_pte() has completed before
>     continuing.
>          */
>         isb();
>     }
>     
> Is the code above isb() is correct? is it insure the DSB not ISB?

I guess you mean comment. If so, yes it is correct. write_pte() has a 
dsb() just after the PTE. This is to guarantee that implicit memory 
access (instruction fetch or from the Hardware translation table access) 
will only happen *after* the dsb() has completed.

I am not 100% sure whether the isb() is required for arch_pmap_map(). 
But I took the safest approach when implementing it.

> And isn't need to do TLB flush here?

It is not. On Arm, we have a strict policy that every unmap will be 
followed by a TLB flush and you can't modify an existing entry (see 
ASSERT a few lines above). So the TLBs will not contain an entry for 
mapping.

This policy was mainly dictacted by the Arm Arm because when modifying 
the output address you need to follow the break-before-make sequence 
which means you have to transition to an invalid mapping and flush the 
TLBs before the new entry is added. For simplicity, we decided to just 
not bother with trying to implement break-before-make for the hypervisor 
page-tables. But we do for the P2M.

Note that newer revision of the Armv8 spec relaxed the requirement (see 
FEAT_BBM).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 19:10:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 19:10:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763505.1173769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWKtY-0006Sr-1w; Tue, 23 Jul 2024 19:09:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763505.1173769; Tue, 23 Jul 2024 19: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 1sWKtX-0006Sk-Va; Tue, 23 Jul 2024 19:09:55 +0000
Received: by outflank-mailman (input) for mailman id 763505;
 Tue, 23 Jul 2024 19:09:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWKtX-0006Sa-60; Tue, 23 Jul 2024 19:09:55 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWKtX-0005cM-1N; Tue, 23 Jul 2024 19:09:55 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWKtW-00013k-OA; Tue, 23 Jul 2024 19:09:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWKtW-0007t1-Ni; Tue, 23 Jul 2024 19:09:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=VewYY9ArozsiqGZOqORQBvVaNW5UAEGuL+wmdPW/McA=; b=NKHOqoWfrUl2/ZZQbg8rguEUQk
	ZXGQ9Z3TinWLqPf/AF6F5dJGh2H6jvm1nnZxJbQ4+e8+HEimgI5DTGFGRd8mGx9eNqgK8Drjl/tXI
	Gsj/yRFNe2vfcnxBXbFwcZKDGn5UTXNDH8RYBHcNKyJJy65uieDQFcRlZk3llw2UwH98=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186972-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186972: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=f5901ff2a472a5418ee6ff790c3b86cf9c3f54f1
X-Osstest-Versions-That:
    ovmf=da591416ee8fddb1b691d157e3c61bdc7a994b79
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 19:09:54 +0000

flight 186972 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186972/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 f5901ff2a472a5418ee6ff790c3b86cf9c3f54f1
baseline version:
 ovmf                 da591416ee8fddb1b691d157e3c61bdc7a994b79

Last test of basis   186968  2024-07-23 15:13:13 Z    0 days
Testing same since   186972  2024-07-23 17:11:27 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Oliver Smith-Denny <osde@linux.microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   da591416ee..f5901ff2a4  f5901ff2a472a5418ee6ff790c3b86cf9c3f54f1 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 19:49:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 19:49:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763519.1173780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWLVL-00030o-Sy; Tue, 23 Jul 2024 19:48:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763519.1173780; Tue, 23 Jul 2024 19:48:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWLVL-00030h-Px; Tue, 23 Jul 2024 19:48:59 +0000
Received: by outflank-mailman (input) for mailman id 763519;
 Tue, 23 Jul 2024 19:48:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWLVK-00030X-MB; Tue, 23 Jul 2024 19:48:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWLVK-0006LW-Gf; Tue, 23 Jul 2024 19:48:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWLVK-0002p4-4F; Tue, 23 Jul 2024 19:48:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWLVK-00036G-3c; Tue, 23 Jul 2024 19:48:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ThkujZj/3pLoUSX2l+Yn0GhgEWfnPRUym9RZ3KV6Klg=; b=XxZi6tsnFarE1U8FGBnxXCT4E6
	8EoP1UiJZxwHZy0kdHGp07NIGIbiBq20Z+www2jlbJrx8jticZWaaBEjzt0V4FIqXJULPTSjMsq/0
	TZmnDsEMIihckHArDOLpymDVLp5t2Kt3HqNwih4El5fuqSFzut/jhvpL+MdOrlrmW+lc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186963-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186963: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-qemuu-freebsd11-amd64:guest-start/freebsd.repeat:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=66ebbdfdeb093e097399b1883390079cd4c3022b
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 19:48:58 +0000

flight 186963 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186963/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel  8 xen-boot            fail REGR. vs. 186827
 test-amd64-amd64-dom0pvh-xl-amd  8 xen-boot              fail REGR. vs. 186827
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
 test-amd64-amd64-qemuu-freebsd11-amd64 21 guest-start/freebsd.repeat fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                66ebbdfdeb093e097399b1883390079cd4c3022b
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    7 days
Failing since        186925  2024-07-20 09:44:52 Z    3 days    8 attempts
Testing same since   186963  2024-07-23 10:42:36 Z    0 days    1 attempts

------------------------------------------------------------
1813 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       fail    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 201551 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 20:37:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 20:37:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763530.1173791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWMG0-0000Vm-EG; Tue, 23 Jul 2024 20:37:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763530.1173791; Tue, 23 Jul 2024 20:37:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWMG0-0000Vf-A2; Tue, 23 Jul 2024 20:37:12 +0000
Received: by outflank-mailman (input) for mailman id 763530;
 Tue, 23 Jul 2024 20: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=402b=OX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWMFy-0000VZ-SM
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 20:37:10 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 53145aee-4933-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 22:37:05 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2eeb1ba0481so88255571fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 13:37:05 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5a51433f904sm5323226a12.40.2024.07.23.13.37.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 13:37: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: 53145aee-4933-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721767025; x=1722371825; 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=xTnCvWYXUz59Smh4B9IrK+4N18OgjPbN1MkpsUI/QxU=;
        b=jBUl1wQ4EreWy4bxwJosJiaZ1eaWiHesebx2gTHmCB5dL0zZUmt26v79skcYrfsxJA
         RLm3YqHpTypwf9HidP2BhytJxI4NZ25zsVyiC3ffiAM9+vLRXjhVPrd1PpS06wDWzWC2
         WL//i5woaT4QmhyGosfs0ASRQ8nZZsCdjFK+I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721767025; x=1722371825;
        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=xTnCvWYXUz59Smh4B9IrK+4N18OgjPbN1MkpsUI/QxU=;
        b=E2hj7r772Uhs+fnTFTZegyscXPpYp0dJi7IIyjLI91rEwYZCebc5S+H3lU0KJdiGQJ
         Vvjy+wH0Uc53e8Ufeph3b0yKZtr62pvEfIbN1wel3RCg4kY9s/URZnoWN+YPADsxkNTR
         TCh1iKOqL6TuhNjYti4m53SJDEWWUVGwok6pfa9R51ioFsxMZR40Z5W7lohID/Puc8aB
         upBuxRS3mJ5dx10lPHvMGzyXL374CPB2tEwvRuRAn0nWYgb1VDGZBb30pnnkWeBjav4U
         joQ4VGPUGqgCQvrPtlAhcsEBJSE//ZWqXN7dA2nu7jrR8mS3deTy9q2hSs77hUp8amKz
         5dOw==
X-Gm-Message-State: AOJu0YwfDJ2vzT2ZfJEISST0cwH+vMFb90nuTcURgDJ4X8KnSKBhoX85
	5BkZbT/cFpD1ktcykEq9hY2gfJY5Vbf2jhBiPHcozR5VGGSBnZFxfGa0HOr7yGLJ4ZvU0rFJLQt
	x
X-Google-Smtp-Source: AGHT+IE7mJtodrFB2K6FOaV6OwQoLV67I8WGphKexCnwcXBVVUe8SIwC+gtuqir6BGhsMcBqCuOwXQ==
X-Received: by 2002:a2e:bc0f:0:b0:2ef:296d:1dda with SMTP id 38308e7fff4ca-2ef296d21bbmr68146581fa.1.1721767024727;
        Tue, 23 Jul 2024 13:37: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>
Subject: [PATCH] x86/IO-APIC: Improve APIC_TMR accesses
Date: Tue, 23 Jul 2024 21:37:01 +0100
Message-Id: <20240723203701.208018-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

XenServer's instance of coverity complains of OVERFLOW_BEFORE_WIDEN in
mask_and_ack_level_ioapic_irq(), which is ultimately because of v being
unsigned long, and (1U << ...) being 32 bits.

Introduce a apic_tmr_read() helper like we already have for ISR and IRR, and
use it to remove the opencoded access logic.  Introduce an is_level boolean to
improve the legibility of the surrounding logic.

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/apic.h |  5 +++++
 xen/arch/x86/io_apic.c          | 15 +++++++--------
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/include/asm/apic.h b/xen/arch/x86/include/asm/apic.h
index 7bd66dc6e151..a254e49dd13b 100644
--- a/xen/arch/x86/include/asm/apic.h
+++ b/xen/arch/x86/include/asm/apic.h
@@ -132,6 +132,11 @@ static inline bool apic_isr_read(uint8_t vector)
             (vector & 0x1f)) & 1;
 }
 
+static inline bool apic_tmr_read(unsigned int vector)
+{
+    return apic_read(APIC_TMR + (vector / 32 * 0x10)) & (1U << (vector % 32));
+}
+
 static inline bool apic_irr_read(unsigned int vector)
 {
     return apic_read(APIC_IRR + (vector / 32 * 0x10)) & (1U << (vector % 32));
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index ef076bfaf3f5..0fc1aa05fe3e 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1652,8 +1652,7 @@ static bool io_apic_level_ack_pending(unsigned int irq)
 
 static void cf_check mask_and_ack_level_ioapic_irq(struct irq_desc *desc)
 {
-    unsigned long v;
-    int i;
+    bool is_level;
 
     irq_complete_move(desc);
 
@@ -1679,9 +1678,8 @@ static void cf_check mask_and_ack_level_ioapic_irq(struct irq_desc *desc)
  * operation to prevent an edge-triggered interrupt escaping meanwhile.
  * The idea is from Manfred Spraul.  --macro
  */
-    i = desc->arch.vector;
 
-    v = apic_read(APIC_TMR + ((i & ~0x1f) >> 1));
+    is_level = apic_tmr_read(desc->arch.vector);
 
     ack_APIC_irq();
     
@@ -1692,7 +1690,7 @@ static void cf_check mask_and_ack_level_ioapic_irq(struct irq_desc *desc)
        !io_apic_level_ack_pending(desc->irq))
         move_masked_irq(desc);
 
-    if ( !(v & (1U << (i & 0x1f))) )
+    if ( !is_level )
     {
         spin_lock(&ioapic_lock);
         __edge_IO_APIC_irq(desc->irq);
@@ -1743,13 +1741,14 @@ static void cf_check end_level_ioapic_irq_new(struct irq_desc *desc, u8 vector)
  * operation to prevent an edge-triggered interrupt escaping meanwhile.
  * The idea is from Manfred Spraul.  --macro
  */
-    unsigned int v, i = desc->arch.vector;
+    unsigned int i = desc->arch.vector;
+    bool is_level;
 
     /* Manually EOI the old vector if we are moving to the new */
     if ( vector && i != vector )
         eoi_IO_APIC_irq(desc);
 
-    v = apic_read(APIC_TMR + ((i & ~0x1f) >> 1));
+    is_level = apic_tmr_read(i);
 
     end_nonmaskable_irq(desc, vector);
 
@@ -1757,7 +1756,7 @@ static void cf_check end_level_ioapic_irq_new(struct irq_desc *desc, u8 vector)
          !io_apic_level_ack_pending(desc->irq) )
         move_native_irq(desc);
 
-    if ( !(v & (1U << (i & 0x1f))) )
+    if ( !is_level )
     {
         spin_lock(&ioapic_lock);
         __mask_IO_APIC_irq(desc->irq);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 20:54:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 20:54:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763538.1173800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWMWk-00038J-Q3; Tue, 23 Jul 2024 20:54:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763538.1173800; Tue, 23 Jul 2024 20: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 1sWMWk-00038C-Ml; Tue, 23 Jul 2024 20:54:30 +0000
Received: by outflank-mailman (input) for mailman id 763538;
 Tue, 23 Jul 2024 20:54:30 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWMWj-000382-W0; Tue, 23 Jul 2024 20:54:29 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWMWj-000167-HK; Tue, 23 Jul 2024 20:54:29 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWMWj-0004oP-46; Tue, 23 Jul 2024 20:54:29 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWMWj-0000JR-3R; Tue, 23 Jul 2024 20:54: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hk8wtwwq5GeQDiwqYv6Lsg4qrwh1pPj7p5Ni8j6S1Zk=; b=2PicMqN02WZ8uNIQpB6oHuFS16
	xEd7g/gflYwalcQwXudEOaPj5bn6OL8OfcDywqHSyndGW+UdflzChyKoQdAyKLnQ/VWMBlKtCY73J
	1lobQDoswMfB+G6j7ML35MBtcPEYwmd3IseclIWonkxQlwIxdhecSAGf0owvYM57Ehvk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186970-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186970: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=a17b6db9b00784b409c35e3017dc45aed1ec2bfb
X-Osstest-Versions-That:
    xen=fa58fcdc8cc38b5b73a59209a630ea7170eac713
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 23 Jul 2024 20:54:29 +0000

flight 186970 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186970/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  a17b6db9b00784b409c35e3017dc45aed1ec2bfb
baseline version:
 xen                  fa58fcdc8cc38b5b73a59209a630ea7170eac713

Last test of basis   186966  2024-07-23 13:00:22 Z    0 days
Testing same since   186970  2024-07-23 17:02:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   fa58fcdc8c..a17b6db9b0  a17b6db9b00784b409c35e3017dc45aed1ec2bfb -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 21:05:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 21:05:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763548.1173810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWMh1-0004ni-Nn; Tue, 23 Jul 2024 21:05:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763548.1173810; Tue, 23 Jul 2024 21:05: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 1sWMh1-0004nb-L7; Tue, 23 Jul 2024 21:05:07 +0000
Received: by outflank-mailman (input) for mailman id 763548;
 Tue, 23 Jul 2024 21:05: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=402b=OX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWMh0-0004nV-7w
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 21:05:06 +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 3b5fe768-4937-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 23:05:04 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5a10bb7bcd0so5965285a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 14:05:04 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a3c7be2a9sm577643466b.77.2024.07.23.14.05.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 14:05: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: 3b5fe768-4937-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721768703; x=1722373503; 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=vF6tQm3If961zeVGk4jEnf2rkN///PyI2zU27o8XbNM=;
        b=W8Uyxa+8ff4WuK+38Fxy8CHOiDztqxy8flLbx9aCFvsOcJQv3ngkZh7ZQzpMH6Z1LM
         DVnHIT4T6Ma3rtVsohj3xO/loFFww8e/QwW4ya3Tzj8Jjw0zPGGCriEv6NZAaM4wIJxp
         JZM3hr2FDeWI5MCtIlrwkRjuaLLO+3APnhKco=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721768703; x=1722373503;
        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=vF6tQm3If961zeVGk4jEnf2rkN///PyI2zU27o8XbNM=;
        b=KXTsrj1ca8uZH3/D2GPBpLyIANiZZN51eTSj/fS+ROeC81LH+4JJaMgxG5bDYRgr09
         7QSWLXdO23GvvpLPHAq0WN9ILzvcQPrMo1xiIczePxI1AMrdlXBK/ORVhhkXVT1rZeyc
         dOJoPH8F+LT4ciB41lrNAJ0FMa1R9/bgye/7lTo4ZNANF5xWytI/A/XH1pdjSb2iTWp/
         N+2YpVemz3oZh/4XV4guRUSm7WaQknKROI0EF7oZKohc1md1DTtVZTs/2QrSpbTbZj1p
         X0nOV05Cx+fJE0Ibz78T8n04LWEVGWdBjDv8660275UhV30FjC5RiBbZM+0j0X4imQ6z
         ylsQ==
X-Gm-Message-State: AOJu0Yzb/vDXOyMJrRbKbNKGsd0UslgiKUikx4tlyYuRBvH4cgDvR4rM
	eTndb7JFvD/QE9s91VYNt23EbdSHkn6ThFIy+Hm4nDYA89jJfW3ZaZ7OYWA0WNqLTNAnLVkFcqX
	s
X-Google-Smtp-Source: AGHT+IFSEwZ31A8oL9QsW4SD48QSgIddWvSO83OtCEBgYWj03j+M9d0iDn4Cx9Mq+6WBXvIee1GfsQ==
X-Received: by 2002:a17:907:1c90:b0:a6f:6126:18aa with SMTP id a640c23a62f3a-a7ab115261fmr6296066b.67.1721768703104;
        Tue, 23 Jul 2024 14:05: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/APIC: Change APIC reg types to unsigned int
Date: Tue, 23 Jul 2024 22:05:00 +0100
Message-Id: <20240723210500.248261-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

They're all within a 12 bit range of their respective bases, and this prevents
all the MSR coordinates being calculated in %rcx.

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

There's one unpleasant surprise hidden:

  add/remove: 0/0 grow/shrink: 2/6 up/down: 18/-99 (-81)
  Function                                     old     new   delta
  trace_exit_reason.part                       229     245     +16
  check_for_unexpected_msi                      73      75      +2
  fixup_irqs                                  1239    1237      -2
  lapic_resume                                 860     844     -16
  irq_move_cleanup_interrupt                   683     667     -16
  intel_mcheck_init                           1840    1824     -16
  setup_local_APIC                             985     968     -17
  clear_local_APIC                            1141    1109     -32

This causes check_for_unexpected_msi() to gain a CLTQ sign extending reg
before adding it to APIC_BASE.  Furthermore it retains it's SAR from the start
of apic_isr_read().

If the vector parameter changes from uint8_t to unsigned int, both the CLTQ
and SAR go away and and are replaced with regular unsigned logic.

(uint8_t) & ~0x1f undergoes promotion to int, but can't be negative due to
it's range, and I'm quite surprised that GCC-12 can't figure this out.
---
 xen/arch/x86/include/asm/apic.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/include/asm/apic.h b/xen/arch/x86/include/asm/apic.h
index a254e49dd13b..1133954e5540 100644
--- a/xen/arch/x86/include/asm/apic.h
+++ b/xen/arch/x86/include/asm/apic.h
@@ -49,12 +49,12 @@ const struct genapic *apic_x2apic_probe(void);
  * Basic functions accessing APICs.
  */
 
-static inline void apic_mem_write(unsigned long reg, u32 v)
+static inline void apic_mem_write(unsigned int reg, u32 v)
 {
 	*((volatile u32 *)(APIC_BASE+reg)) = v;
 }
 
-static inline u32 apic_mem_read(unsigned long reg)
+static inline u32 apic_mem_read(unsigned int reg)
 {
 	return *((volatile u32 *)(APIC_BASE+reg));
 }
@@ -63,7 +63,7 @@ static inline u32 apic_mem_read(unsigned long reg)
  * access the 64-bit ICR register.
  */
 
-static inline void apic_wrmsr(unsigned long reg, uint64_t msr_content)
+static inline void apic_wrmsr(unsigned int reg, uint64_t msr_content)
 {
     if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR ||
         reg == APIC_LVR)
@@ -72,7 +72,7 @@ static inline void apic_wrmsr(unsigned long reg, uint64_t msr_content)
     wrmsrl(MSR_X2APIC_FIRST + (reg >> 4), msr_content);
 }
 
-static inline uint64_t apic_rdmsr(unsigned long reg)
+static inline uint64_t apic_rdmsr(unsigned int reg)
 {
     uint64_t msr_content;
 
@@ -83,7 +83,7 @@ static inline uint64_t apic_rdmsr(unsigned long reg)
     return msr_content;
 }
 
-static inline void apic_write(unsigned long reg, u32 v)
+static inline void apic_write(unsigned int reg, u32 v)
 {
 
     if ( x2apic_enabled )
@@ -92,7 +92,7 @@ static inline void apic_write(unsigned long reg, u32 v)
         apic_mem_write(reg, v);
 }
 
-static inline u32 apic_read(unsigned long reg)
+static inline u32 apic_read(unsigned int reg)
 {
     if ( x2apic_enabled )
         return apic_rdmsr(reg);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 21:12:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 21:12:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763556.1173819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWMnn-0006RT-Ci; Tue, 23 Jul 2024 21:12:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763556.1173819; Tue, 23 Jul 2024 21: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 1sWMnn-0006RM-AB; Tue, 23 Jul 2024 21:12:07 +0000
Received: by outflank-mailman (input) for mailman id 763556;
 Tue, 23 Jul 2024 21:12:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=402b=OX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWMnm-0006RB-JC
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 21:12:06 +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 36da5d50-4938-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 23:12:06 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-36858357bb7so3231920f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 14:12:06 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5a51433f904sm5356288a12.40.2024.07.23.14.12.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 23 Jul 2024 14:12: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: 36da5d50-4938-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721769125; x=1722373925; 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=btpvZboGsLwOpKF/5lt+tdA3Pt6IQ8gkszvKXediNd8=;
        b=Q1Snr4EVQYBOND8r05mqmrm4NJI/fdPwtwl7EcblnCfH8lIAzk5HJEw3hgAar1bdbZ
         TJDPY4iRR1aMBQYOIZcBn9ORt469rJggYqqfh3SF4scqC1bRSLJ3jXCe82XPOgkWyPoh
         OPLkZBvqyBYNmSU6fEaNN82uD7JW/mRJqe3g0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721769125; x=1722373925;
        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=btpvZboGsLwOpKF/5lt+tdA3Pt6IQ8gkszvKXediNd8=;
        b=bRdYjRVPRb8iJkm3icmu5xZ8sdCm1sSQqahvAqAXSXFMLJDzW/DHLpIfW/SpoTxQbx
         5ZTksP+/M9oF3jBIN2XtT8TuuCRRHY2E2HLv35a1byZi1qhf5JM0KwKDP8EN7iw+yyzR
         GC6wMZt+5FKHFULfXLd2VrjkJQg8JDFWkO/dDJQA9Qutxi/sr/ONNGs6OhO7IaQ3wUdx
         2Ep7OSOJPTfOyVlexBAinpbrRVa0i+MYbWMBvKf0RJbDLCwSyhl0UvHycFiuwSukke8u
         aouoLEWqp1oyoCgfZkNb0bTJZPuMf8/f7KTZ4uMsWdRSHCAjP+zBSGIXyoI0PMrXniTq
         fgcQ==
X-Gm-Message-State: AOJu0YwqjJV4WWyWATVtMFrzK8VmmIokJpEh83RkyrndI1y9IK6tfTxy
	NlYrufSsw5qm+uM3fLbl4arwad1a+Z3ojeByuDK6jKQqXGjq7vmn6Bxb1WIi4JCe9FoeIZE4gna
	w
X-Google-Smtp-Source: AGHT+IHyY0LOfOJD0q0Cpf390a3nNinv7xY1GeSoywotAhHCtyX+5nzzf3NSUH21u8p0sH3PZs70MQ==
X-Received: by 2002:a5d:64cc:0:b0:368:31c7:19dd with SMTP id ffacd0b85a97d-369f5b162bcmr101306f8f.5.1721769124964;
        Tue, 23 Jul 2024 14:12: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>
Subject: [PATCH] x86/APIC: Rewrite apic_isr_read() to match apic_{tmr,irr}_read()
Date: Tue, 23 Jul 2024 22:12:02 +0100
Message-Id: <20240723211202.267212-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This allows for marginally better code generation including the use of BT
rather than SHR/TEST.

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/apic.h | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/include/asm/apic.h b/xen/arch/x86/include/asm/apic.h
index 1133954e5540..22d949d7bf31 100644
--- a/xen/arch/x86/include/asm/apic.h
+++ b/xen/arch/x86/include/asm/apic.h
@@ -126,10 +126,9 @@ static inline void apic_icr_write(u32 low, u32 dest)
     }
 }
 
-static inline bool apic_isr_read(uint8_t vector)
+static inline bool apic_isr_read(unsigned int vector)
 {
-    return (apic_read(APIC_ISR + ((vector & ~0x1f) >> 1)) >>
-            (vector & 0x1f)) & 1;
+    return apic_read(APIC_ISR + (vector / 32 * 0x10)) & (1U << (vector % 32));
 }
 
 static inline bool apic_tmr_read(unsigned int vector)
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 21:30:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 21:30:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763564.1173829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWN5b-00010m-Rz; Tue, 23 Jul 2024 21:30:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763564.1173829; Tue, 23 Jul 2024 21: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 1sWN5b-00010f-PJ; Tue, 23 Jul 2024 21:30:31 +0000
Received: by outflank-mailman (input) for mailman id 763564;
 Tue, 23 Jul 2024 21:30:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zFMf=OX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWN5a-00010Z-Qt
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 21:30:30 +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 c83153fd-493a-11ef-bbfe-fd08da9f4363;
 Tue, 23 Jul 2024 23:30:29 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 4FBCE60CEC;
 Tue, 23 Jul 2024 21:30:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 357FBC4AF09;
 Tue, 23 Jul 2024 21:30: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: c83153fd-493a-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721770228;
	bh=WxEcs3fY1ITnMkf3dbLUx0s0dm5RYLdu/pNisLk1NIU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=X8IJTUrEeCTmx+A4lqIVTuILQFoKAEZ4rhd+MbZtm2W+Y2+kD7x/Z/fVIkwkSCqVF
	 d3kBRmwjU24wzQgzOsfM/S7NIdEZ+ilRGpLrOXinHD3FX5i17crVb5D3rIPXLuC02p
	 2tkjWDiL3t3Wamq/A6xTlJ2B5w5iFOXbcaZVcT4LnSy+nwQVxD8/3NZpkdjHKbzimk
	 4RE4GB+Qfeljs3sEu6BOZHE6IdR2AhXzLMFGkset1mbvTBLf1knOa5jYZO01ghqgsu
	 o5Vs2AhegohxUzvIZivHv2eTylBCnbfgCV2lJy+XsRf/vQcB13eHPPmjmG7zg/Dqc4
	 TOeBofHKqlmmA==
Date: Tue, 23 Jul 2024 14:30:26 -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>
Subject: Re: [PATCH] xen/printk: Avoid the use of L as a length modifier
In-Reply-To: <20240723174129.67911-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2407231426180.4857@ubuntu-linux-20-04-desktop>
References: <20240723174129.67911-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, 23 Jul 2024, Andrew Cooper wrote:
> Coverity complains about it being invalid.  It turns out that it is a GCC-ism
> to treat ll and L equivalently.  C99 only permits L to mean long double.
> 
> Convert all uses of L in to alternatives, either l, ll or PRI.64 depending on
> the operand type.  This in turn removes some unnecessary casts which look to
> predate us having correct PRI* constants.
> 
> No functional change.
> 
> Coverity-IDs: 1464224, 1464228, 1464248, 1464261, 1464272, 1464281, 1464287, 1464290, 1494437
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 21:41:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 21:41:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763574.1173840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWNGZ-0002n5-RT; Tue, 23 Jul 2024 21:41:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763574.1173840; Tue, 23 Jul 2024 21: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 1sWNGZ-0002my-Ob; Tue, 23 Jul 2024 21:41:51 +0000
Received: by outflank-mailman (input) for mailman id 763574;
 Tue, 23 Jul 2024 21:41: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=zFMf=OX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWNGY-0002mq-AN
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 21:41:50 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5b168fa2-493c-11ef-8776-851b0ebba9a2;
 Tue, 23 Jul 2024 23:41:46 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 42775CE0F15;
 Tue, 23 Jul 2024 21:41:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A514EC4AF09;
 Tue, 23 Jul 2024 21:41: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: 5b168fa2-493c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721770900;
	bh=ff5YjC90GVSl12piLg//AWX/fJWKZqOrozrOhQaUu+g=;
	h=Date:From:To:cc:Subject:From;
	b=YeT0MoJaGRalfx5wsTWAu8UScilDbWoA+fRgof2FtL26eV+n5cWgLLM56NtUDG5TZ
	 Ug2qgVgARGC+FrNipgwb5LegAfC/rJ/ndTuK77JTjltR2SnrvUyXF2JCvvpI9bVGe3
	 ySU5uBmbevPFHEV4FvlJJNt9nte7UKv+LXvT7kmi19ahWQNz9PKJa4KrvXdj6UnfUY
	 C3SbBDBhZ4itEUMzjg2g2L+SXK55I+7lQeidVJqPGDqSAEdngGGykgrsao0pQyCFc4
	 rd1L1e4b/lPI4AjbgZqNgk1JfLkl8KdiVgSWqaJo6A/puJ7hDcliWdTo6VXI5a6iZa
	 JH1scWKZfX60g==
Date: Tue, 23 Jul 2024 14:41: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, Jan Beulich <jbeulich@suse.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Julien Grall <julien@xen.org>
Subject: [PATCH] docs/misra: add R18.6 to rules.rst
Message-ID: <alpine.DEB.2.22.394.2407231439260.4857@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

In practice, we are already following R18.6 and we have zero violations
reported by ECLAIR (there are some cautions being reported.)

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 80e5e972ad..0cb2fb8f24 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -580,6 +580,13 @@ maintainers if you want to suggest a change.
      - The relational operators > >= < and <= shall not be applied to objects of pointer type except where they point into the same object
      -
 
+   * - `Rule 18.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_06_1.c>`_
+     - Required
+     - The address of an object with automatic storage shall not be
+       copied to another object that persists after the first object has
+       ceased to exist
+     -
+
    * - `Rule 19.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_19_01.c>`_
      - Mandatory
      - An object shall not be assigned or copied to an overlapping


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 22:10:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 22:10:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763583.1173849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWNiR-00079R-3v; Tue, 23 Jul 2024 22:10:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763583.1173849; Tue, 23 Jul 2024 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 1sWNiR-00079K-1T; Tue, 23 Jul 2024 22:10:39 +0000
Received: by outflank-mailman (input) for mailman id 763583;
 Tue, 23 Jul 2024 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=zFMf=OX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWNiQ-00079E-5N
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 22:10:38 +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 6275c53f-4940-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 00:10:35 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 70A9760E2C;
 Tue, 23 Jul 2024 22:10:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC02CC4AF0E;
 Tue, 23 Jul 2024 22:10: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: 6275c53f-4940-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721772634;
	bh=reJz0po8hs9nOqPFJUJAsCe4ErkU6RcfvOz9ybWIOiI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=GlqNf6p25gJC6DoRURI3mw+nAISTyQ8M+WoMmAikqg2cA+MDwX6B+5PzrTz2JhKJ3
	 0outKNZKM2WKFbF7Lrvxq3WgpACA3euKIG16NvNcNfFjyLer/0FQIqKAlvk9rt65NO
	 IxRn25fBJrKmnvVogu5gh9DhKCpNYIIcLjs7Iypuiv/xy1qu0fU5WnkRcgAf5TuXtu
	 DW06ob+8ZaHmA1axLrrWEb1AbmszRWiW2MziHmoVdixjj6HEU9p5Q/rQBXtl9kk5oK
	 CAb6q/PzzCex4m+Om72bGZvJkyc0dZji+TdiCjw8OMNWkYrLvdl/VsIaaVk48/EBkJ
	 9d7bA+2hJ+mug==
Date: Tue, 23 Jul 2024 15:10:31 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [XEN PATCH v5 01/17] misra: add deviation for headers that
 explicitly avoid guards
In-Reply-To: <ad912232b11d925cc5456e064ebf41eb208201e8.1721720583.git.alessandro.zucchelli@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407231510240.4857@ubuntu-linux-20-04-desktop>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com> <ad912232b11d925cc5456e064ebf41eb208201e8.1721720583.git.alessandro.zucchelli@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 23 Jul 2024, Alessandro Zucchelli wrote:
> From: Simone Ballarin <simone.ballarin@bugseng.com>
> 
> Some headers, under specific circumstances (documented in a comment at
> the beginning of the file), explicitly do not have strict inclusion
> guards: the caller is responsible for including them correctly.
> 
> These files are not supposed to comply with Directive 4.10:
> "Precautions shall be taken in order to prevent the contents of a header
> file being included more than once"
> 
> This patch adds deviation cooments for headers that avoid guards.
> 
> Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 22:19:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 22:19:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763591.1173859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWNrI-00080R-Ug; Tue, 23 Jul 2024 22:19:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763591.1173859; Tue, 23 Jul 2024 22: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 1sWNrI-00080K-SG; Tue, 23 Jul 2024 22:19:48 +0000
Received: by outflank-mailman (input) for mailman id 763591;
 Tue, 23 Jul 2024 22: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=zFMf=OX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWNrI-00080E-68
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 22:19:48 +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 aaf610d8-4941-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 00:19: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 5A18960E08;
 Tue, 23 Jul 2024 22:19:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A17CEC4AF0A;
 Tue, 23 Jul 2024 22:19: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: aaf610d8-4941-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721773185;
	bh=49fRrcI3HwdgXKJ2Im6gCqskI+yYpWFEjS/VhNE+ds8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ueU7EHuJ90LZWNQoXU2FUxjcmbBoremR7Q5GKfDiQmtYP4PIQKYfO2ky/bWjBj9bV
	 50+FNPO3eabgug/py8Wwv5YC8AQ5EZWThpY4/0VCj98LDpfGvt+yD9O7R94727N1Ql
	 zrf/ZplEfaKap6enoUIXnc8uNl0y21n6mokVURxiQZ4fvvVbR9375b66f2TdaQrPOx
	 y6w0TWBB9BWUg4HsxDWvjzwAO4V5cS0T9R5NyOTh58htcTzuWRwFQZgyKztkotgVgg
	 jty0sUqJtTuEwCu128Gw4qtpKqkF/8nxKD6KwgZx/IJhA0LmWVrxMdE9w7hghDL4NC
	 yrWEaR1OxRC8g==
Date: Tue, 23 Jul 2024 15:19:42 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
    =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [XEN PATCH v5 10/17] x86/asm: address violations of MISRA C:2012
 Directive 4.10
In-Reply-To: <20e1d32d9e384f9682fc25d9a55480edd11e344e.1721720583.git.alessandro.zucchelli@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407231519340.4857@ubuntu-linux-20-04-desktop>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com> <20e1d32d9e384f9682fc25d9a55480edd11e344e.1721720583.git.alessandro.zucchelli@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 23 Jul 2024, Alessandro Zucchelli wrote:
> From: Simone Ballarin <simone.ballarin@bugseng.com>
> 
> Amend generation script, add inclusion guards to address violations
> of MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
> to prevent the contents of a header file being included more than
> once").
> 
> This patch amends the Makefile adding the required inclusion guards
> for xlat.h.
> 
> Add deviation comment for files intended for multiple inclusion.
> 
> Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 22:26:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 22:26:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763597.1173869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWNxc-000164-Jl; Tue, 23 Jul 2024 22:26:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763597.1173869; Tue, 23 Jul 2024 22: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 1sWNxc-00015x-HH; Tue, 23 Jul 2024 22:26:20 +0000
Received: by outflank-mailman (input) for mailman id 763597;
 Tue, 23 Jul 2024 22: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=zFMf=OX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWNxb-00015r-QU
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 22:26:19 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 93d1c1a8-4942-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 00:26:18 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 9443BCE0ACA;
 Tue, 23 Jul 2024 22:26:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D9F6AC4AF0A;
 Tue, 23 Jul 2024 22:26: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: 93d1c1a8-4942-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721773572;
	bh=+AQm0bQOv2/cpkNn1NvR+q64ZrdF8pL0qIiJv2tyOTQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=dDf3O3KhyF55NVTx0q4vKd/39ZMjuLQ9Fxv+c/OA9VMDogqdnjpAhHn2cbLEV1/T1
	 MBA/zkhGKjb/ywAA8c2bNI9mQ0Hnd/zp7XhfGiPlsJXMf8WNjIb9+HwVXYseCNID/I
	 e+XQEUyO52rT54meub7r1Cj0MRApMFWX+QLngYZD7bli9f9fLNLM+4/UksTCaaimUD
	 GERuphh2IGOqPEzDTUf4C/+60lJRxlmcDWnJKN2UzbtuUO6PRUDQred1cBkZpmcBrp
	 i5MznaOUof7SUzVhJ1nrCWBUDcCNgjnUYKFOjyv0SS+JEA+3oDm5/3AzIUmqurgcGP
	 RufImUECRp14g==
Date: Tue, 23 Jul 2024 15:26:10 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v5 12/17] xen: address violations of MISRA C:2012
 Directive 4.10
In-Reply-To: <42fbbb9ffb85893d049c80812b547ffb10ccda7e.1721720583.git.alessandro.zucchelli@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407231523360.4857@ubuntu-linux-20-04-desktop>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com> <42fbbb9ffb85893d049c80812b547ffb10ccda7e.1721720583.git.alessandro.zucchelli@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 23 Jul 2024, Alessandro Zucchelli wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> Modify creation rule for asm-offsets.h to conform to
> the new standard and to not generate conflicting guards
> between architectures (which is a violation of the directive).
> Modify generic-y creation rule to generate code without violations
> and to conform to the new standard.
> 
> Mechanical change.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Jul 23 22:29:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 22:29:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763605.1173880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWO0N-0001qv-2X; Tue, 23 Jul 2024 22:29:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763605.1173880; Tue, 23 Jul 2024 22:29:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWO0M-0001qo-VC; Tue, 23 Jul 2024 22:29:10 +0000
Received: by outflank-mailman (input) for mailman id 763605;
 Tue, 23 Jul 2024 22:29:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zFMf=OX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWO0L-0001qi-Em
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 22:29:09 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f9073aba-4942-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 00:29:08 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 8E401CE0E5A;
 Tue, 23 Jul 2024 22:29:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E29EAC4AF0E;
 Tue, 23 Jul 2024 22:29: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: f9073aba-4942-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721773744;
	bh=OryRj2MHZ0AdfrkDVtAAH1se2WYy1PfAmFlsb+RJqQs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lHMsZiUx3/zD7NpTQ+srkEroUbZYwE825f1RN2i39H831n8Lq0qQ7Bsy8LhQYYV1P
	 I7G6nIYbCEr/RZo6UjJrepm0f9wbLDX4oLdd/TCtps8WNkhq1eyg8ayzoYtUQ87Hm+
	 Iyr8t0zl+84zwcEPozejufu3dZhD1Lhon9RQN2MlQIRZLNvaFqKv4zU0+V++KScJ7a
	 DVMM841++j4sFtlLPGCBlvaJAf+7Ye1H13pwEsUGlys5JE/fysr+hGRmayNz9DKUr2
	 0gpnuxpZW5hV9w0jbCxCTUqlSf2rPLJpK2jEnNy/9nehFFAk1kjik7SmbIFD+klOFu
	 2Ny4LskMfnjoQ==
Date: Tue, 23 Jul 2024 15:29:02 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v5 12/17] xen: address violations of MISRA C:2012
 Directive 4.10
In-Reply-To: <42fbbb9ffb85893d049c80812b547ffb10ccda7e.1721720583.git.alessandro.zucchelli@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407231528040.4857@ubuntu-linux-20-04-desktop>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com> <42fbbb9ffb85893d049c80812b547ffb10ccda7e.1721720583.git.alessandro.zucchelli@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 23 Jul 2024, Alessandro Zucchelli wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> Modify creation rule for asm-offsets.h to conform to
> the new standard and to not generate conflicting guards
> between architectures (which is a violation of the directive).
> Modify generic-y creation rule to generate code without violations
> and to conform to the new standard.
> 
> Mechanical change.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

I know I gave my Reviewed-by already but I have a question below...


> ---
> Changes in v5:
> - edit inclusion guards of autogenerated files
> Commit introduced in v3
> ---
>  xen/build.mk                     | 7 ++++---
>  xen/scripts/Makefile.asm-generic | 8 +++++++-
>  2 files changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/build.mk b/xen/build.mk
> index 0f490ca71b..32624d3097 100644
> --- a/xen/build.mk
> +++ b/xen/build.mk
> @@ -47,6 +47,7 @@ asm-offsets.s: arch/$(SRCARCH)/$(ARCH)/asm-offsets.c
>  
>  arch/$(SRCARCH)/include/asm/asm-offsets.h: asm-offsets.s
>  	@(set -e; \
> +	  guard=$$(echo ASM__${SRCARCH}__ASM_OFFSETS_H | tr a-z A-Z); \
>  	  echo "/*"; \
>  	  echo " * DO NOT MODIFY."; \
>  	  echo " *"; \
> @@ -54,12 +55,12 @@ arch/$(SRCARCH)/include/asm/asm-offsets.h: asm-offsets.s
>  	  echo " *"; \
>  	  echo " */"; \
>  	  echo ""; \
> -	  echo "#ifndef __ASM_OFFSETS_H__"; \
> -	  echo "#define __ASM_OFFSETS_H__"; \
> +	  echo "#ifndef $$guard"; \
> +	  echo "#define $$guard"; \
>  	  echo ""; \
>  	  sed -rne "/^[^#].*==>/{s:.*==>(.*)<==.*:\1:; s: [\$$#]: :; p;}"; \
>  	  echo ""; \
> -	  echo "#endif") <$< >$@
> +	  echo "#endif /* $$guard */") <$< >$@
>  
>  build-dirs := $(patsubst %/built_in.o,%,$(filter %/built_in.o,$(ALL_OBJS) $(ALL_LIBS)))
>  
> diff --git a/xen/scripts/Makefile.asm-generic b/xen/scripts/Makefile.asm-generic
> index b0d356bfa3..2d2fd9f76e 100644
> --- a/xen/scripts/Makefile.asm-generic
> +++ b/xen/scripts/Makefile.asm-generic
> @@ -32,7 +32,13 @@ old-headers := $(wildcard $(obj)/*.h)
>  unwanted    := $(filter-out $(generic-y) $(generated-y),$(old-headers))
>  
>  quiet_cmd_wrap = WRAP    $@
> -      cmd_wrap = echo "\#include <asm-generic/$*.h>" > $@
> +cmd_wrap = \
> +    guard=$$(echo ASM_GENERIC__${SRCARCH}__$*_H | tr a-z A-Z); \

Shouldn't this be: ASM_GENERIC__$*_H  according to the coding style?



> +    echo "\#ifndef $$guard" >$@.new; \
> +    echo "\#define $$guard" >>$@.new; \
> +    echo "\#include <asm-generic/$*.h>" >>$@.new; \
> +    echo "\#endif /* $$guard */" >>$@.new; \
> +    mv -f $@.new $@
>  
>  quiet_cmd_remove = REMOVE  $(unwanted)
>        cmd_remove = rm -f $(unwanted)
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 22:31:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 22:31:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763612.1173890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWO2n-0003Hf-EY; Tue, 23 Jul 2024 22:31:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763612.1173890; Tue, 23 Jul 2024 22: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 1sWO2n-0003HY-BT; Tue, 23 Jul 2024 22:31:41 +0000
Received: by outflank-mailman (input) for mailman id 763612;
 Tue, 23 Jul 2024 22: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=zFMf=OX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWO2l-0003HS-Hs
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 22:31:39 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 52629762-4943-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 00:31:38 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 8EB1DCE0F1E;
 Tue, 23 Jul 2024 22:31:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 01362C4AF09;
 Tue, 23 Jul 2024 22:31: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: 52629762-4943-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721773893;
	bh=iFoTsvhGds4e8ro19VEcLaArCf4YzS5GjwOElHoMGWk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=tmoqf6YhhZRckBR8A/INwJgePB+tObznFpbUNlS5qHZucEKvOT0DfGeUS8sOFI5Pd
	 /tn5rYQ2zYKzCWxBN17iHgaZeFV/Q2P8nscyDKszf19UxQ4Yys1hZ682aAM6EqDUVj
	 Huv3qdrE6lHF4caFUZIWSVJcutmCWGZqbE/aPQkf3HzizS9dIPAbSBa71vwpkRU5so
	 5uwazBuWbu+3GdtCwzJuO5yQHFC/sT1RGvvQ6sdcxS3SmD+EQXADRa/ZkuE+IwOIqL
	 ZSPwiM2P9jhUPk7+lzFnwwVTb7m1S5xAwJtqbfehOeahmpuloMrESHSoB+ULqgeRnU
	 CG+VyGpiO1XVw==
Date: Tue, 23 Jul 2024 15:31:31 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v5 15/17] xen/build: address violation of MISRA C
 Directive 4.10
In-Reply-To: <08fe3472d3da3035357b72d4684295cbe79b77c1.1721720583.git.alessandro.zucchelli@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407231530490.4857@ubuntu-linux-20-04-desktop>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com> <08fe3472d3da3035357b72d4684295cbe79b77c1.1721720583.git.alessandro.zucchelli@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 23 Jul 2024, Alessandro Zucchelli wrote:
> This addresses violations of MISRA C:2012 Rule 4.10 which states as
> following: Precautions shall be taken in order to prevent the contents
> of a header file being included more than once.
> 
> Changes are made for autogenerated header files: include/xen/compile.h
> and include/xen/hypercall-defs.h.
> 
> No functional change.
> 
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
> 
> ---
> Changes in v5:
> - edit inclusion guards for autogenerated header files
> ---
>  xen/build.mk         | 6 +++++-
>  xen/include/Makefile | 5 ++++-
>  2 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/build.mk b/xen/build.mk
> index 32624d3097..ebb2d06b3c 100644
> --- a/xen/build.mk
> +++ b/xen/build.mk
> @@ -18,6 +18,8 @@ quiet_cmd_compile.h = UPD     $@
>  define cmd_compile.h
>      if [ ! -r $@ -o -O $@ ]; then \
>  	cat .banner; \
> +	echo '#ifndef XEN__COMPILE_H' > $(dot-target).tmp; \
> +	echo '#define XEN__COMPILE_H' >> $(dot-target).tmp; \
>  	sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \
>  	    -e 's/@@time@@/$(XEN_BUILD_TIME)/g' \
>  	    -e 's/@@whoami@@/$(XEN_WHOAMI)/g' \
> @@ -28,8 +30,9 @@ define cmd_compile.h
>  	    -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
>  	    -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
>  	    -e 's!@@changeset@@!$(shell $(srctree)/tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \
> -	    < $< > $(dot-target).tmp; \
> +	    < $< >> $(dot-target).tmp; \
>  	sed -rf $(srctree)/tools/process-banner.sed < .banner >> $(dot-target).tmp; \
> +	echo '#endif /* XEN__COMPILE_H */' >> $(dot-target).tmp; \
>  	mv -f $(dot-target).tmp $@; \
>      fi
>  endef
> @@ -40,6 +43,7 @@ include/xen/compile.h: include/xen/compile.h.in .banner FORCE
>  
>  targets += include/xen/compile.h
>  
> +

Spurious change? Could be fixed on commit. Other than this

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


>  -include $(wildcard .asm-offsets.s.d)
>  asm-offsets.s: arch/$(SRCARCH)/$(ARCH)/asm-offsets.c
>  	$(CC) $(call cpp_flags,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
> diff --git a/xen/include/Makefile b/xen/include/Makefile
> index 1ff9468eeb..35df93c82e 100644
> --- a/xen/include/Makefile
> +++ b/xen/include/Makefile
> @@ -119,7 +119,10 @@ $(obj)/compat/xlat.h: $(addprefix $(obj)/compat/.xlat/,$(xlat-y)) FORCE
>  
>  quiet_cmd_genhyp = GEN     $@
>  define cmd_genhyp
> -    awk -f $(srctree)/scripts/gen_hypercall.awk <$< >$@
> +    echo "#ifndef XEN__HYPERCALL_DEFS_H" >$@; \
> +    echo "#define XEN__HYPERCALL_DEFS_H" >>$@; \
> +    awk -f $(srctree)/scripts/gen_hypercall.awk <$< >>$@; \
> +    echo "#endif /* XEN__HYPERCALL_DEFS_H */" >>$@
>  endef
>  
>  all: $(obj)/xen/hypercall-defs.h
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Jul 23 22:40:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 22:40:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763622.1173900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWOBE-0005Fz-7i; Tue, 23 Jul 2024 22:40:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763622.1173900; Tue, 23 Jul 2024 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 1sWOBE-0005Fs-4y; Tue, 23 Jul 2024 22:40:24 +0000
Received: by outflank-mailman (input) for mailman id 763622;
 Tue, 23 Jul 2024 22: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=zFMf=OX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWOBC-0005Fm-CM
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 22:40:22 +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 8a995d09-4944-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 00:40: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 927BA60DC0;
 Tue, 23 Jul 2024 22:40:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5FD60C4AF09;
 Tue, 23 Jul 2024 22:40: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: 8a995d09-4944-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721774419;
	bh=baRk6FXpdaeiYW9PQTpKLhh4T/aESrBnGph3BVYHVHo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=rAZZgpDVG+aaW1duaLbEXz66mlDQpbfzHG9IJHr10MYv/ApA1KY9cxo0BELJpAyRD
	 CdEBj/+8S9XWWh4HVr1JbRZ6RqLlihuBglJZ4/ffv/z6WVdEeKAH+6y1ABL+5dAAWK
	 sCGzyONawA9/6FKuDKOjXdksg1hB0d1I5vvW5vUtNZOMS7hH5+QY9SGEqd4wYqZBi6
	 LvcnXKrPv2HMr8cIEMssNIOnjU5Vm2fkwBf4UJLWcVRnDbXaEj3GF2f/eNGTeleE7g
	 UM6kP6FUqlcbTl7sqAGRHGENO7pA40YdOcEYZTs/cNXYgMzCspkMWBnkxjfYmokIP1
	 qc4zW6H0bd3zQ==
Date: Tue, 23 Jul 2024 15:40:17 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v5 16/17] CODING_STYLE: Add a section on header guards
 naming conventions
In-Reply-To: <9ceeedb1-31c6-4701-849c-e4f32fc07409@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407231539570.4857@ubuntu-linux-20-04-desktop>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com> <14a663eaab02a78e688e1d260e1a4eb1799b13c5.1721720583.git.alessandro.zucchelli@bugseng.com> <9ceeedb1-31c6-4701-849c-e4f32fc07409@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, 23 Jul 2024, Jan Beulich wrote:
> On 23.07.2024 10:15, Alessandro Zucchelli wrote:
> > This section explains which format should be followed by header
> > inclusion guards via a drop-down list of rules.
> > 
> > No functional change.
> > 
> > Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
> 
> As indicated in reply to v4, this wants (imo needs) to move to the very start
> of the series. No changes following the new scheme should be made without the
> new scheme actually having been committed.
> 
> > --- a/CODING_STYLE
> > +++ b/CODING_STYLE
> > @@ -159,6 +159,27 @@ Emacs local variables
> >  A comment block containing local variables for emacs is permitted at
> >  the end of files.  It should be:
> >  
> > +Header inclusion guards
> > +-----------------------
> > +
> > +Unless differently specified all header files should have proper inclusion
> > +guards in order to avoid being included multiple times.
> > +The following naming conventions have been devised:
> > +
> > +- private headers -> <dir>__<filename>_H
> > +    - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
> > +    - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
> > +    - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> > +
> > +- asm-generic headers -> ASM_GENERIC__<filename>_H
> > +    - include/asm-generic/something.h -> ASM_GENERIC__SOMETHING_H
> > +
> > +- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM__<architecture>__<subdir>__<filename>_H
> > +    - arch/x86/include/asm/something.h -> ASM__X86__SOMETHING_H
> > +
> > +- include/xen -> XEN__<filename>_H
> > +    - include/xen/something.h -> XEN__SOMETHING_H
> 
> While I think this expresses what we have settled on, it lack details. For
> example, when to use single vs double underscores is left for the reader
> to derive from the examples, which leaves room for interpretation.

I think so too. Here is my improved version, what do you think:


Header inclusion guards
-----------------------

Unless otherwise specified, all header files should include proper
guards to prevent multiple inclusions. The following naming conventions
apply:

- Private headers: <dir>__<filename>_H
    - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
    - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
    - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H

- asm-generic headers: ASM_GENERIC__<filename>_H
    - include/asm-generic/something.h -> ASM_GENERIC__SOMETHING_H

- arch-specific headers: ASM__<architecture>__<subdir>__<filename>_H
    - arch/x86/include/asm/something.h -> ASM__X86__SOMETHING_H

- Xen headers: XEN__<filename>_H
    - include/xen/something.h -> XEN__SOMETHING_H

Notes:

- Filenames and directories are converted to uppercase.
- Dashes are converted to underscores.
- Directories, subdirectories, and filenames are separated by double
  underscores.



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 22:44:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 22:44:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763629.1173909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWOFM-0005q4-NE; Tue, 23 Jul 2024 22:44:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763629.1173909; Tue, 23 Jul 2024 22: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 1sWOFM-0005px-Kc; Tue, 23 Jul 2024 22:44:40 +0000
Received: by outflank-mailman (input) for mailman id 763629;
 Tue, 23 Jul 2024 22: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=zFMf=OX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWOFL-0005pr-N9
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 22:44:39 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24233b0a-4945-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 00:44:38 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 9CF0960DC1;
 Tue, 23 Jul 2024 22:44:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B786C4AF09;
 Tue, 23 Jul 2024 22:44: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: 24233b0a-4945-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721774677;
	bh=F5t+aW4/cz27tMUH2xtHVhEUlJFfdAox9w4UQHwArEo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=WO80UGrIAukZwaGKORhTjMjIS7y2jXq9DTEiKOm+gs8QB4wRkmn+Zkj2MsLXGfzzB
	 UNY6iDnsdRNgDSYwv5Vm85B038mW6KNzezSDu8OZx6KAmfT7qUgAEzkNpDnudhpRN8
	 fcrfaE06lPDWbY3xs6TOjNsYr7Iv0KJJN7Y4kL17sC/i7F9X344879DsXW8URXAv4F
	 Uj4Fc40TSKiw9A2pluXdUX5Q8nfk/xhFMMTCwOa8gDU8Wfh7FNkVlXYZGQ7yPi9kFZ
	 RfIW/bQSv6t2X8HXRu88ZNFny4ylruzH065053fVnFvAqe0KC2m9XqteyuOC+XxxeZ
	 790pRsKv7Btxg==
Date: Tue, 23 Jul 2024 15:44:34 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Tamas K Lengyel <tamas@tklengyel.com>, 
    Alexandru Isaila <aisaila@bitdefender.com>, 
    Petre Pircalabu <ppircalabu@bitdefender.com>
Subject: Re: [XEN PATCH v5 17/17] include/asm-generic: rename inclusion guards
 for consistency
In-Reply-To: <79c020c608d59c1c5d4156e307acba046b1ad17e.1721720583.git.alessandro.zucchelli@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407231544270.4857@ubuntu-linux-20-04-desktop>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com> <79c020c608d59c1c5d4156e307acba046b1ad17e.1721720583.git.alessandro.zucchelli@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 23 Jul 2024, Alessandro Zucchelli wrote:
> Edit inclusion guards in asm-generic header files in order to make them
> consistent with the estabilished naming convention.
> 
> No functional change.
> 
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Jul 23 22:51:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Jul 2024 22:51:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763638.1173920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWOLx-0007vB-Gd; Tue, 23 Jul 2024 22:51:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763638.1173920; Tue, 23 Jul 2024 22: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 1sWOLx-0007v4-Du; Tue, 23 Jul 2024 22:51:29 +0000
Received: by outflank-mailman (input) for mailman id 763638;
 Tue, 23 Jul 2024 22: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=zFMf=OX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWOLw-0007uy-Kk
 for xen-devel@lists.xenproject.org; Tue, 23 Jul 2024 22:51: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 16f07b9e-4946-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 00:51: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 B5ACD60DC1;
 Tue, 23 Jul 2024 22:51:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BFD02C4AF09;
 Tue, 23 Jul 2024 22:51: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: 16f07b9e-4946-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721775084;
	bh=79lelki9y6INjvFUC1gK88W+Ae7ArPN7+Eh8+zUIrQQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LajGhIHufYdHqr5eH+DktHkYqre3PioDUxQpiqUSKaQBcsHDrWXYH6HKsd5aZ2T/m
	 2DL8lelpd6DLQofU5Zo+oaJwrJ/89wzGNEZcrMcN9JlxHSQJpS8eqYgCGgIuu6rgmz
	 BrhQbaRTRZw972MPlD9BZ2VcoBFFrU9G36yaSBY3yL3dP6fy3aBQsntyciYP7m/E6j
	 xH7oJXUanfQZg16StjZJe5TPbaTrLuH0LaZIgsZ3RkWqWnXCmlO0hsdmTOftxNXs/u
	 q/dbXIcjoN8M0QdAhWJ4/d8INfX/d/XpAKglFPSs+ze/L32qsCoPrRa3nVq5ehJ621
	 TpDNKCpLdb/4g==
Date: Tue, 23 Jul 2024 15:51: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, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] CI: workaround broken selinux+docker interaction in
 yocto
In-Reply-To: <20240720001508.1673856-1-marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2407231548230.4857@ubuntu-linux-20-04-desktop>
References: <20240720001508.1673856-1-marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-77462335-1721775084=:4857"

  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-77462335-1721775084=:4857
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Sat, 20 Jul 2024, Marek Marczykowski-Górecki wrote:

> `cp --preserve=xattr` doesn't work in docker when SELinux is enabled. It
> tries to set the "security.selinux" xattr, but SELinux (or overlay fs?)
> denies it.
> Workaround it by skipping selinux.selinux xattr copying.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
> Tested here:
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/7386198058
> 
> But since yocto container fails to build, it isn't exactly easy to apply
> this patch...
> "kirkstone" branch of meta-virtualization seems to target Xen 4.15 and
> 4.16, so it isn't exactly surprising it fails to build with 4.19.
> 
> I tried also bumping yocto version to scarthgap (which supposedly should
> have updated pygrub patch), but that fails to build for me too, with a
> different error:
> 
>     ERROR: Layer 'filesystems-layer' depends on layer 'networking-layer', but this layer is not enabled in your configuration
>     ERROR: Parse failure with the specified layer added, exiting.
>     ...
>     ERROR: Nothing PROVIDES 'xen-image-minimal'. Close matches:
>       core-image-minimal
>       core-image-minimal-dev
>     Parsing of 2472 .bb files complete (0 cached, 2472 parsed). 4309 targets, 101 skipped, 0 masked, 0 errors.

This patch should upgrade succesfully to scarthgap, can you give it a
try? I could rebuild succefully the container, including a successful
Yocto build, but I did not push the container to the Hub yet. I only
tried x86, I haven't tried ARM yet.

---
automation: upgrade Yocto to scarthgap

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

diff --git a/automation/build/yocto/build-yocto.sh b/automation/build/yocto/build-yocto.sh
index 93ce81ce82..06efcce6ca 100755
--- a/automation/build/yocto/build-yocto.sh
+++ b/automation/build/yocto/build-yocto.sh
@@ -38,8 +38,9 @@ build_result=0
 # layers to include in the project
 build_layerlist="poky/meta poky/meta-poky poky/meta-yocto-bsp \
                  meta-openembedded/meta-oe meta-openembedded/meta-python \
+                 meta-openembedded/meta-networking \
                  meta-openembedded/meta-filesystems \
-                 meta-openembedded/meta-networking meta-virtualization"
+                 meta-virtualization"
 
 # yocto image to build
 build_image="xen-image-minimal"
diff --git a/automation/build/yocto/yocto.inc b/automation/build/yocto/yocto.inc
index 2f3b1a5b2a..209df7dde9 100644
--- a/automation/build/yocto/yocto.inc
+++ b/automation/build/yocto/yocto.inc
@@ -6,10 +6,10 @@
 # YOCTOVERSION-TARGET for x86_64 hosts
 # YOCTOVERSION-TARGET-arm64v8 for arm64 hosts
 # For example you can build an arm64 container with the following command:
-# make yocto/kirkstone-qemuarm64-arm64v8
+# make yocto/scarthgap-qemuarm64-arm64v8
 
 # Yocto versions we are currently using.
-YOCTO_VERSION = kirkstone
+YOCTO_VERSION = scarthgap
 
 # Yocto BSPs we want to build for.
 YOCTO_TARGETS = qemuarm64 qemuarm qemux86-64
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 7ce88d38e7..32045cef0c 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -212,7 +212,7 @@
   script:
     - ./automation/build/yocto/build-yocto.sh -v --log-dir=./logs --xen-dir=`pwd` ${YOCTO_BOARD} ${YOCTO_OUTPUT}
   variables:
-    YOCTO_VERSION: kirkstone
+    YOCTO_VERSION: scarthgap
     CONTAINER: yocto:${YOCTO_VERSION}-${YOCTO_BOARD}${YOCTO_HOST}
   artifacts:
     paths:
--8323329-77462335-1721775084=:4857--


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 00:19:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 00:19:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763648.1173929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWPiE-0002nu-KF; Wed, 24 Jul 2024 00:18:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763648.1173929; Wed, 24 Jul 2024 00:18:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWPiE-0002nn-HX; Wed, 24 Jul 2024 00:18:34 +0000
Received: by outflank-mailman (input) for mailman id 763648;
 Wed, 24 Jul 2024 00:18:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a5wr=OY=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1sWPiD-0002nh-NI
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 00:18:33 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20613.outbound.protection.outlook.com
 [2a01:111:f403:2408::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f94066e-4952-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 02:18:28 +0200 (CEST)
Received: from DM6PR03CA0010.namprd03.prod.outlook.com (2603:10b6:5:40::23) by
 PH7PR12MB5903.namprd12.prod.outlook.com (2603:10b6:510:1d7::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.20; Wed, 24 Jul
 2024 00:18:23 +0000
Received: from CY4PEPF0000EE38.namprd03.prod.outlook.com
 (2603:10b6:5:40:cafe::f4) by DM6PR03CA0010.outlook.office365.com
 (2603:10b6:5:40::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.16 via Frontend
 Transport; Wed, 24 Jul 2024 00:18:22 +0000
Received: from SATLEXMB04.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.7784.11 via Frontend Transport; Wed, 24 Jul 2024 00:18:21 +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, 23 Jul
 2024 19:18:20 -0500
Received: from xsjwoods50.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; Tue, 23 Jul 2024 19:18: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: 3f94066e-4952-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QIKxhtUA/vU+vBG7256ipJrxRzSbefDFd/r2qf/jyGS37nYcPJ46mGaIEkOWFjDQm0dMZnZ5YaVc0J0iOeXZSNSLAK3+TW8fRYLFkQ5i1NZNXuWUuGyi5OFZ0ufBe3obZi0WdOP4rBWSkZzCt6uabll9HViw6Kfyhe8o5mg38H7k0L+bORJFdl73mgoL6KBNkGIcPFbg936HHr9sFbu8d13cIyge4D5pwXKaIBWxUKw9rn81aonoZejuhMZf8bRPFr95pRFBN836CNlHRe1pm4zcqEdT6xIuZ8RZCljZlLsmP7sZ93Fq+NnB9ATKiM5L3JSZQOwLJShHKpgHnX1WLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pdmzGOZ01iKtzDRXJ5lnNKsk76Ks+qEliQuX5qEoB0I=;
 b=XuFRkWL4mmsySTk6eJw1SFhEFENem1AxWqWYs3U+j8F5UE96YVK+XG+qR73+X2ku2PlCBF6n2oP2kf7dJ7lRGnaCaLpse8CgeWZnKZk1igvOJ+d9s1OZqrvxVmAlb/DeCpcnELE26NvVmZTikTBMKr8lG6v8N+/7wpX/0ZOxKjLH0SW9smuJCRo3txc5rZu+C50WkGaf4k8E1IAmezLNzPwT9Zz3qApk4Wrl9DIAAszB2pHupE+x5H2AokhAjRXKa6Xjl5/EnzFfq9uSx15ZxBnDhi1kkyvYJ5xl/U+wUxJAeAP3NJ0SkuiA7cwVhL4zjDwBd/WGRVAQQ+gQZj7OnQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pdmzGOZ01iKtzDRXJ5lnNKsk76Ks+qEliQuX5qEoB0I=;
 b=hZ7otTfcJjL8mPpwYike4ZZjOT8Dm0W3FuEqzR3/iwCGei9ft8YAA8F4rAMx91GgrWGstXZDUCzU10QlbNL1Bc/IObbZwa1mbDRmNVDpdOsxWe+mGYU2cNH2DS0yXRyp7Kjkct4WYV0fI7xekHRF6Kcrd4mDzIKe0gN/PVQKBss=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Victor Lira <victorm.lira@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, <roberto.bagnara@bugseng.com>,
	<consulting@bugseng.com>, <simone.ballarin@bugseng.com>
Subject: [RFC PATCH] automation: add linker symbol name script
Date: Tue, 23 Jul 2024 17:18:05 -0700
Message-ID: <06e4ad1126b8e9231bf6dcf88205857081968274.1721779872.git.victorm.lira@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: victorm.lira@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE38:EE_|PH7PR12MB5903:EE_
X-MS-Office365-Filtering-Correlation-Id: ab898da0-0da6-4115-50d2-08dcab762092
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?ZI9hi9tZTnmZGRgg6cob/cM108LutXw+YtkBmBD4N84BzVGgjEcfb8dGATL4?=
 =?us-ascii?Q?dNTRayzRpTkF1UYzvt7iHQtpLmc2Ay/lZ8IQC//EzWapMzC1EKoDrTnI9NGU?=
 =?us-ascii?Q?r3WgPYR/vobVYt1jAOJOZLe0jq8m+7dsmkMxhXEs1C9XTEWRhpBvIawU9yxX?=
 =?us-ascii?Q?DPZMJ9775I4DZe7wDxZY5QXPesZLZGe6tCrg/0iNfH43XPq03pMOGQ+iLjj7?=
 =?us-ascii?Q?PcVKs8Dv7PMC3FqV0b9ZpgkztDugSgEKD2WxclHIFKLje+hjq/NOSw+cHMRC?=
 =?us-ascii?Q?kVqz5+rzQsphNIWVjYihw5aPpmeLbXKTh1XvEb+sjFCwuAadUhQcQXYZ6Njm?=
 =?us-ascii?Q?MSZaRwRY0SGgrSiP3dHt2mUb4LlkDnSeX8C1eU+yaetR72a0tRfijm7VNXur?=
 =?us-ascii?Q?wUgkWQs+YF/pRiMAP/ODO/AVRuSdGtEbkEbPGx2qOLCilsuxyagL26uSCyO+?=
 =?us-ascii?Q?OVp4d4vUF0BVmj1Dwq0PClPGKPvB/PbdgYT98miXoB2ySnuY/IEL4nkbmIIE?=
 =?us-ascii?Q?A+Zq86TjtmpsiVFjMgCeptvbBBsKleamhUfdi9PJLoc9TzWKXC1xuXcUD9AZ?=
 =?us-ascii?Q?9kHisvfOhREVZg+LqVLHcgYQlfYpTK73eVySebN7PkLKDn6KapUZBwa0GWNu?=
 =?us-ascii?Q?cLl1A/dkWzLj7GaxjmLmyzj6t7mGxZGL6dD46GfnsM/5KpFWf7NR1t3goQxw?=
 =?us-ascii?Q?gULAz2TrHZwnaebyrNwE5NUvwuczV7OYFt0QlZMZlBLJTsgv0MEvDXo8NXV+?=
 =?us-ascii?Q?gpc9iTU6UJ7MZv1CmZQ15rgQxEdd0aeHmPYwUL2Xni0EYy4ULtIj5wBzNoss?=
 =?us-ascii?Q?ntVdxdcsP5pEjOateijPVr7rWZQAxL2uQtNHiTmCsio073nxvV1NZWoA/vZd?=
 =?us-ascii?Q?l5+FkBuE1JTXQRAonNNbFawXLRgn5z3RoaPyHrn2XMDbr+CacJ7ELSbWx8G6?=
 =?us-ascii?Q?1cTEz53ikX8/TcH7ss58/rJx0DRf9DaIOG7tY2xtwKrI2rQyfxlldjl9xstV?=
 =?us-ascii?Q?gjfZnN+9R88xyxlGH4//UEI+6w1gv+TBX+8uZYaL9NpsLTLzNOHrBqzWhTge?=
 =?us-ascii?Q?jbZpcYzaIwdpX6Q/4rlOfNSHZaaUAnt4ty3qLWVkXi6+pwp0J3IOvxJqW303?=
 =?us-ascii?Q?IYN7IjK9KACCkSomz3OzCoqyOTDrQJWUPpCnTGIEycu0SXlJ6GGt93ZDHhJ2?=
 =?us-ascii?Q?AMK8K+mg1H2Qw69O9b9sEW4GgAyTosvdzRqMqF4bXga4c5eeJNxSbVwpzEBO?=
 =?us-ascii?Q?PfAxQGWJm2nb5aonkO9Qf4HcsS+60npQBaNQ8oJcOZqyNk3JyCCYV1rAVkaj?=
 =?us-ascii?Q?N+YJ7SacWeS+jxHAE5KLiRgy9DQZ9xFHZsnGD17McHFUWXUJDEYasja7NJHK?=
 =?us-ascii?Q?hsaIWXLWX2F+QMzfeK/k0RzItTnq2E9FYn/682q+249BBmOj+m1kbvGYZMNc?=
 =?us-ascii?Q?WLedNRZ7VbPQrSoP8r5/MNrtaCLCVHoX?=
X-Forefront-Antispam-Report:
	CIP:165.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: 24 Jul 2024 00:18:21.7749
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ab898da0-0da6-4115-50d2-08dcab762092
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.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: PH7PR12MB5903

From: Victor Lira <victorm.lira@amd.com>

Add a script that extracts the names of symbols in linker scripts.

Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Note:
Not included are the "." location name or symbol names enclosed in quotes
since the files dont't use any.
---
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: roberto.bagnara@bugseng.com
Cc: consulting@bugseng.com
Cc: simone.ballarin@bugseng.com
---
 automation/eclair_analysis/linker_symbols.sh | 41 +++++++++++++++++++
 automation/eclair_analysis/stuff.txt         | 42 ++++++++++++++++++++
 2 files changed, 83 insertions(+)
 create mode 100755 automation/eclair_analysis/linker_symbols.sh
 create mode 100644 automation/eclair_analysis/stuff.txt

diff --git a/automation/eclair_analysis/linker_symbols.sh b/automation/eclair_analysis/linker_symbols.sh
new file mode 100755
index 0000000000..c8c44e235f
--- /dev/null
+++ b/automation/eclair_analysis/linker_symbols.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+# Stop immediately if any executed command has exit status different from 0.
+set -e
+
+# Extract linker symbol names (except those starting with ".") from assignments.
+
+script_name=`basename "$0"`
+script_dir="$(
+  cd "$(dirname "$0")"
+  echo "${PWD}"
+)"
+src_dir="${script_dir}/../.."
+
+usage() {
+  echo "Usage: ${script_name} <ARM64|X86_64>"
+}
+
+if [ $# -ne 1 ]; then
+  usage
+  exit 1
+fi
+
+if [ "$1" == "X86_64" ]; then
+    filepaths=(
+        "${src_dir}/xen/arch/x86/xen.lds.S"
+    )
+elif [ "$1" == "ARM64" ]; then
+    filepaths=(
+        "${src_dir}/xen/arch/arm/xen.lds.S"
+    )
+else
+    usage
+    exit 1
+fi
+
+(
+    for file in "${filepaths[@]}"
+    do
+        sed -n "s/^\s*\([a-zA-Z_][a-zA-Z_0-9.\-]*\)\s*=.*;\s*$/\1/p" $filepaths
+    done
+)
diff --git a/automation/eclair_analysis/stuff.txt b/automation/eclair_analysis/stuff.txt
new file mode 100644
index 0000000000..efc33e6a59
--- /dev/null
+++ b/automation/eclair_analysis/stuff.txt
@@ -0,0 +1,42 @@
+_start
+_idmap_start
+_idmap_end
+__proc_info_start
+__proc_info_end
+__note_gnu_build_id_start
+__note_gnu_build_id_end
+__ro_after_init_start
+__ro_after_init_end
+__start___ex_table
+__stop___ex_table
+__start___pre_ex_table
+__stop___pre_ex_table
+__start_schedulers_array
+__end_schedulers_array
+_splatform
+_eplatform
+_sdevice
+_edevice
+_asdevice
+_aedevice
+_steemediator
+_eteemediator
+__init_begin
+_sinittext
+_einittext
+__setup_start
+__setup_end
+__initcall_start
+__presmp_initcall_end
+__initcall_end
+__alt_instructions
+__alt_instructions_end
+__ctors_start
+__ctors_end
+__init_end_efi
+__init_end
+__bss_start
+__per_cpu_start
+__per_cpu_data_end
+__bss_end
+_end
--
2.37.6



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 00:49:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 00:49:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763658.1173940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWQCL-0006Wz-1T; Wed, 24 Jul 2024 00:49:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763658.1173940; Wed, 24 Jul 2024 00: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 1sWQCK-0006Ws-Ux; Wed, 24 Jul 2024 00:49:40 +0000
Received: by outflank-mailman (input) for mailman id 763658;
 Wed, 24 Jul 2024 00:49:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWQCJ-0006Wi-Rm; Wed, 24 Jul 2024 00:49:39 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWQCJ-0004yB-AQ; Wed, 24 Jul 2024 00:49:39 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWQCI-0005hC-Ox; Wed, 24 Jul 2024 00:49:38 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWQCI-0002w6-OU; Wed, 24 Jul 2024 00:49:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=BIF8Xel9NWNsykXlRhG3pw23GIkPX96rRc6cDKSMWm0=; b=PFlhWQqEQwG074mvcFiqDDboBB
	98+6T93Ov4Tq6w2e38pS84LudZR/xTyc8IKCjrBiddnivKGmmesErJsjpFrPHRU9UdHp8+LsE8bYW
	rDpOAR9W2IvcZmTUy836D+nyb0O1UP7bM2nFcqOWsRI26IcZu4nhhH/JbFv1riB8aNBE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186965-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.19-testing test] 186965: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.19-testing:test-arm64-arm64-xl-xsm:xen-boot:fail:heisenbug
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:xen-boot:fail:heisenbug
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=9d7f7e3444bcd85b73a8a152b26b22821275a156
X-Osstest-Versions-That:
    xen=5eea8790495c9494fa0c7a4ba0e76d3e273af25b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 00:49:38 +0000

flight 186965 xen-4.19-testing real [real]
flight 186974 xen-4.19-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186965/
http://logs.test-lab.xenproject.org/osstest/logs/186974/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-xl-xsm       8 xen-boot            fail pass in 186974-retest
 test-armhf-armhf-xl-multivcpu  8 xen-boot           fail pass in 186974-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check fail in 186974 never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check fail in 186974 never pass
 test-arm64-arm64-xl-xsm     15 migrate-support-check fail in 186974 never pass
 test-arm64-arm64-xl-xsm 16 saverestore-support-check fail in 186974 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186899
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186899
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186899
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186899
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186899
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186899
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  9d7f7e3444bcd85b73a8a152b26b22821275a156
baseline version:
 xen                  5eea8790495c9494fa0c7a4ba0e76d3e273af25b

Last test of basis   186899  2024-07-19 06:18:50 Z    4 days
Testing same since   186965  2024-07-23 12:41:53 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   5eea879049..9d7f7e3444  9d7f7e3444bcd85b73a8a152b26b22821275a156 -> stable-4.19


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 01:09:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 01:09:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763669.1173953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWQVc-0003oQ-Ne; Wed, 24 Jul 2024 01:09:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763669.1173953; Wed, 24 Jul 2024 01:09:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWQVc-0003oJ-Kf; Wed, 24 Jul 2024 01:09:36 +0000
Received: by outflank-mailman (input) for mailman id 763669;
 Wed, 24 Jul 2024 01:09:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jziH=OY=intel.com=lkp@srs-se1.protection.inumbo.net>)
 id 1sWQVb-0003oD-0C
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 01:09:35 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 60517f60-4959-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 03:09:32 +0200 (CEST)
Received: from orviesa005.jf.intel.com ([10.64.159.145])
 by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Jul 2024 18:09:00 -0700
Received: from lkp-server01.sh.intel.com (HELO 68891e0c336b) ([10.239.97.150])
 by orviesa005.jf.intel.com with ESMTP; 23 Jul 2024 18:08:58 -0700
Received: from kbuild by 68891e0c336b with local (Exim 4.96)
 (envelope-from <lkp@intel.com>) id 1sWQUy-000mWQ-0P;
 Wed, 24 Jul 2024 01:08: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: 60517f60-4959-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1721783372; x=1753319372;
  h=date:from:to:cc:subject:message-id:mime-version;
  bh=YMPGTN+DPGFi0ycu5K0JfoqRYKasiH2eQe7ebY2tBYA=;
  b=lwJ/2OzVRTNIxOpn5z0S/0IrgjjLW/pV4N2kjOC8l5uWVDVTzF6tqisd
   8rZzRjuuSldMDAgMSo9CsiOiZKRmdUVZjU2dVPXJz8csU1X6IJLIhGjTm
   bSCxzdeoKasZ4BnpM+ycmqXFO9Jtxv3tbFPrNAetZB9wElRl/xOfSDqBD
   NVmDp6NMZgHxI4Oz/Frppuj/vr7MztJkPF5tPHYbhQdGvAAI89+Uhp/x2
   MrilrkHZ4zxUwUA1ng8IqrHjq9gzn1vnOfbpo7gHmjx9v6mIMtPaWfikU
   4c37p0+ZpOtPOdFlyrSGUDV1DakYNsqOx3zyW0EVvp1EW9zoOMxf24Pk8
   g==;
X-CSE-ConnectionGUID: V76/0zCZTiaam48qDNbxQg==
X-CSE-MsgGUID: vLCcmUxJQQKj/CTfvwxYVQ==
X-IronPort-AV: E=McAfee;i="6700,10204,11142"; a="22340122"
X-IronPort-AV: E=Sophos;i="6.09,232,1716274800"; 
   d="scan'208";a="22340122"
X-CSE-ConnectionGUID: FIcDSHD6Rvqs53L1hqASiQ==
X-CSE-MsgGUID: Y3Rzahs7Qn+B0mZonWUbIg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.09,232,1716274800"; 
   d="scan'208";a="57236834"
Date: Wed, 24 Jul 2024 09:08:34 +0800
From: kernel test robot <lkp@intel.com>
To: Juergen Gross <jgross@suse.com>
Cc: oe-kbuild-all@lists.linux.dev, xen-devel@lists.xenproject.org,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: [xen-tip:linux-next 12/12] WARNING: modpost: vmlinux: section
 mismatch in reference: mc_debug_data+0x0 (section: .data) ->
 mc_debug_data_early (section: .init.data)
Message-ID: <202407240907.u0NJHgTu-lkp@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next
head:   368990a7fe30737c990f628a60d26d9854a9e690
commit: 368990a7fe30737c990f628a60d26d9854a9e690 [12/12] xen: fix multicall debug data referencing
config: x86_64-randconfig-012-20240724 (https://download.01.org/0day-ci/archive/20240724/202407240907.u0NJHgTu-lkp@intel.com/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240724/202407240907.u0NJHgTu-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/202407240907.u0NJHgTu-lkp@intel.com/

All warnings (new ones prefixed by >>, old ones prefixed by <<):

>> WARNING: modpost: vmlinux: section mismatch in reference: mc_debug_data+0x0 (section: .data) -> mc_debug_data_early (section: .init.data)
WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/locking/locktorture.o
WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/locking/test-ww_mutex.o
WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/rcu/rcutorture.o
WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/rcu/rcuscale.o
WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/rcu/refscale.o
WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/time/time_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/torture.o
WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/resource_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/sysctl-test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in mm/kasan/kasan_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in mm/dmapool_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/ext4/ext4-inode-test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/fat/fat_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/kunit/kunit-test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/kunit/kunit-example-test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/math/rational-test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_hexdump.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_firmware.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/cpumask_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_hash.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_ida.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_list_sort.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_min_heap.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_sort.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_scanf.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_bitmap.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_uuid.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_xarray.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_maple_tree.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_meminit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_free_pages.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_kprobes.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_ref_tracker.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_fpu.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/atomic64_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/bitfield_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/checksum_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/list-test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/hashtable_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_bits.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/cmdline_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/slub_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/memcpy_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/is_signed_type_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/overflow_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/stackinit_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/fortify_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/siphash_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/acpi/platform_profile.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/clk/clk_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/clk/clk-gate_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/clk/clk-fractional-divider_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_buddy_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_cmdline_parser_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_connector_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_damage_helper_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_dp_mst_helper_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_exec_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_format_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_framebuffer_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_gem_shmem_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_managed_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_mm_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_modes_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_plane_helper_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_probe_helper_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_rect_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/input/tests/input_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/rtc/lib_test.o

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 01:15:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 01:15:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763675.1173963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWQam-0005HE-9b; Wed, 24 Jul 2024 01:14:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763675.1173963; Wed, 24 Jul 2024 01: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 1sWQam-0005H7-73; Wed, 24 Jul 2024 01:14:56 +0000
Received: by outflank-mailman (input) for mailman id 763675;
 Wed, 24 Jul 2024 01:14: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=rqjp=OY=byiq.org=techguru@srs-se1.protection.inumbo.net>)
 id 1sWQag-0005Gu-Qm
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 01:14:54 +0000
Received: from smtp-42a8.mail.infomaniak.ch (smtp-42a8.mail.infomaniak.ch
 [2001:1600:4:17::42a8])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e8634d5-495a-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 03:14:48 +0200 (CEST)
Received: from smtp-3-0000.mail.infomaniak.ch (smtp-3-0000.mail.infomaniak.ch
 [10.4.36.107])
 by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4WTGJl3N9WzlGr;
 Wed, 24 Jul 2024 03:14:47 +0200 (CEST)
Received: from unknown by smtp-3-0000.mail.infomaniak.ch (Postfix) with ESMTPA
 id 4WTGJk5wwfzkdh; Wed, 24 Jul 2024 03:14:46 +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: 1e8634d5-495a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=byiq.org;
	s=20191114; t=1721783687;
	bh=IZcCSVkfJ5d/f5q7ee6oDWEAtNFThCwZY+QoyV1B9VE=;
	h=Date:Subject:From:Reply-To:To:Cc:From;
	b=H417ZIgHzE2G6KMvgZw50BvDtSKtOQ0+MOP1ldT5+eExe4zts0O3o66u64i9s3gZ6
	 V0Pflq/dGrO38QGXZfC1O8G5PU0sXn9ueDj1/6Oo3VCdDRrh8L5RwHYJuox4Xhfy+z
	 TYj9YIdfr595TwvcFf8qo+WoWt2OIwSQkyvin+Pc=
Message-ID: <d5c3e0900db98aaaeb7fb52f16598257@mail.infomaniak.com>
Date: Wed, 24 Jul 2024 03:14:46 +0200
Subject: Xen for Apple Silicon (M1 and beyond)
From: Techguru <techguru@byiq.org>
Reply-To: Techguru <techguru@byiq.org>
To: xen-devel@lists.xenproject.org
Cc: Michal Orzel <michal.orzel@amd.com>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="_=_swift_1721783686_cd63555364968d59268544d57c4b1a35_=_"
X-WS-User-Origin: eyJpdiI6Ik1KVitoZ2xiMTJpOU9BUXlmSUYramc9PSIsInZhbHVlIjoiaEh6WTZleEIxSVk3cTR1RStkeDhPQT09IiwibWFjIjoiZDBlNWRlM2Q3MTdjYWZhZjA0OGU4MmQ4MmI1MGQ5ZDIzN2QzN2IzNjEwYmJmOWY5MWY5ZDE4NTBjZTc1NGRjYSIsInRhZyI6IiJ9
X-WS-User-Mbox: eyJpdiI6IjJTRk82dElRcmdaTGNicTB3eDc2TUE9PSIsInZhbHVlIjoiVVdya0RIZkRFcm11bk9Vd0xLTENDUT09IiwibWFjIjoiOTczYTgyMDNmODcyNzg3ZmRmYjUwNGM2MDk5ZTBjNjFjZmM5NTI0Y2EzNWYyMTZmNDdlMzQ3YTNlMzA3OTcwNyIsInRhZyI6IiJ9
X-WS-Location: eJxzKUpMKykGAAfpAmU-
X-Mailer: Infomaniak Workspace (1.3.723)
X-Infomaniak-Routing: alpha


--_=_swift_1721783686_cd63555364968d59268544d57c4b1a35_=_
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Stefano, on IRC, suggested that I start a discussion on this ma=
iling
list regarding my intention to bring up a fully function XEN on App=
le
Silicon (M1 and beyond).

I am in the process of getting up to spe=
ed on your governance
policies, applied for Coverity access to use some o=
f the known issues
there as training wheels, and putting my gitlab fork i=
nto good working
order with CI.

I would rather not duplicate effort =
which has already been proposed,
so definitely open to any pointers, any =
requests for how to chunk
things into smaller patches, any requests for p=
articular
ordering/sequencing of patch sets.

Some obvious areas: =
=C2=A0 16k pages; device trees; interrupts; power
management; any essenti=
al device drivers.



--_=_swift_1721783686_cd63555364968d59268544d57c4b1a35_=_
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><body><div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, =
sans-serif; font-size: 14px">Hello,<br></div><div style=3D"font-family: 'He=
lvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px">Stefano, on I=
RC, suggested that I start a discussion on this mailing list regarding my i=
ntention to bring up a fully function XEN on Apple Silicon (M1 and beyond).=
<br></div><div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, sa=
ns-serif; font-size: 14px">I am in the process of getting up to speed on yo=
ur governance policies, applied for Coverity access to use some of the know=
n issues there as training wheels, and putting my gitlab fork into good wor=
king order with CI.<br></div><div style=3D"font-family: 'Helvetica Neue', H=
elvetica, Arial, sans-serif; font-size: 14px"><br></div><div style=3D"font-=
family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px">I =
would rather not duplicate effort which has already been proposed, so defin=
itely open to any pointers, any requests for how to chunk things into small=
er patches, any requests for particular ordering/sequencing of patch sets.<=
br></div><div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, san=
s-serif; font-size: 14px"><br></div><div style=3D"font-family: 'Helvetica N=
eue', Helvetica, Arial, sans-serif; font-size: 14px">Some obvious areas: &n=
bsp; 16k pages; device trees; interrupts; power management; any essential d=
evice drivers.<br></div><div style=3D"font-family: 'Helvetica Neue', Helvet=
ica, Arial, sans-serif; font-size: 14px"><br></div><div style=3D"font-famil=
y: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px"><br></d=
iv><div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, sans-seri=
f; font-size: 14px"><br></div></body></html>


--_=_swift_1721783686_cd63555364968d59268544d57c4b1a35_=_--



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 04:54:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 04:54:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763695.1173973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWU0h-0004mO-BB; Wed, 24 Jul 2024 04:53:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763695.1173973; Wed, 24 Jul 2024 04:53: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 1sWU0h-0004mH-8b; Wed, 24 Jul 2024 04:53:55 +0000
Received: by outflank-mailman (input) for mailman id 763695;
 Wed, 24 Jul 2024 04:53:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWU0f-0004m7-RL; Wed, 24 Jul 2024 04:53:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWU0f-0004il-KQ; Wed, 24 Jul 2024 04:53:53 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWU0f-0003Gf-7Y; Wed, 24 Jul 2024 04:53:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWU0f-0000mA-77; Wed, 24 Jul 2024 04:53: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hrRzdrGvwrPK9XXBoCSw7ePWZLGxT/zBXJY3Zofj4rY=; b=zMPwCJUz277jq87izatWEcsXzA
	7OIwixZT/v2PuEDnArxtJNLPngbAfpktIooUY+rwrKTTSlscfRr/R2M2XY88JN7DnRckSCohy1I1d
	3zQJOCWH4OnU40SDcDobwUv507vShwc5KAnhp7HQ70rcSsdS0kF71T5Umrveb/Cq4igg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186971-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186971: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-arm64-arm64-xl-xsm:xen-boot:fail:heisenbug
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=fa58fcdc8cc38b5b73a59209a630ea7170eac713
X-Osstest-Versions-That:
    xen=c4bdb14b80a1751ba622f3e48a4b91401c67867d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 04:53:53 +0000

flight 186971 xen-unstable real [real]
flight 186976 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186971/
http://logs.test-lab.xenproject.org/osstest/logs/186976/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-xl-xsm       8 xen-boot            fail pass in 186976-retest

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-xl-xsm     15 migrate-support-check fail in 186976 never pass
 test-arm64-arm64-xl-xsm 16 saverestore-support-check fail in 186976 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186960
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186960
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186960
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186960
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186960
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186960
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  fa58fcdc8cc38b5b73a59209a630ea7170eac713
baseline version:
 xen                  c4bdb14b80a1751ba622f3e48a4b91401c67867d

Last test of basis   186960  2024-07-23 04:24:53 Z    1 days
Testing same since   186971  2024-07-23 17:07:07 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Tamas K Lengyel <tamas@tklengyel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c4bdb14b80..fa58fcdc8c  fa58fcdc8cc38b5b73a59209a630ea7170eac713 -> master


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 05:34:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 05:34:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763712.1174008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWUe1-0001ie-Me; Wed, 24 Jul 2024 05:34:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763712.1174008; Wed, 24 Jul 2024 05: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 1sWUe1-0001iX-Jp; Wed, 24 Jul 2024 05:34:33 +0000
Received: by outflank-mailman (input) for mailman id 763712;
 Wed, 24 Jul 2024 05:34:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWUe0-0001iN-I2; Wed, 24 Jul 2024 05:34:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWUe0-0005pD-Bf; Wed, 24 Jul 2024 05:34:32 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWUdz-0004KJ-RM; Wed, 24 Jul 2024 05:34:31 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWUdz-0000HV-Qx; Wed, 24 Jul 2024 05:34: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Ow9NqmeKBXSrkgIY1ygwokILrj+3EMF9iKmwOlPtiM0=; b=W8YMVqPl3/lWRFgRqyoLO0ilv/
	Jw9k2ohuxiO1R5Y2dFYh0kuKflE/SXmzGwqhd2Kak+/7e8+6PeMZgquQqqCv61tEtSAgm/NilgnzQ
	2+RDUkvF4t3g9SgjQxSCIvGYe12N7XWmJsrn7NgPQMABdV4mxOGN4QQ8xI6sJJyAVyOQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186975-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186975: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=9bc7a361200215fc5065dfaa6d90d4eb50fec00c
X-Osstest-Versions-That:
    ovmf=f5901ff2a472a5418ee6ff790c3b86cf9c3f54f1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 05:34:31 +0000

flight 186975 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186975/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 9bc7a361200215fc5065dfaa6d90d4eb50fec00c
baseline version:
 ovmf                 f5901ff2a472a5418ee6ff790c3b86cf9c3f54f1

Last test of basis   186972  2024-07-23 17:11:27 Z    0 days
Testing same since   186975  2024-07-24 03:15:02 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Zhiguang Liu <zhiguang.liu@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   f5901ff2a4..9bc7a36120  9bc7a361200215fc5065dfaa6d90d4eb50fec00c -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 05:42:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 05:42:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763725.1174018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWUlS-0003GH-IK; Wed, 24 Jul 2024 05:42:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763725.1174018; Wed, 24 Jul 2024 05:42:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWUlS-0003GA-FK; Wed, 24 Jul 2024 05:42:14 +0000
Received: by outflank-mailman (input) for mailman id 763725;
 Wed, 24 Jul 2024 05:42: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWUlQ-0003Fl-QI
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 05:42:12 +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 77b896b2-497f-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 07:42:09 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a7a843bef98so161408566b.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 22:42: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-a7a3c7be0a3sm606234066b.73.2024.07.23.22.42.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 22:42: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: 77b896b2-497f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721799728; x=1722404528; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NryCSaGRf3XeiYoOETz3tmz5rrNdBwS0AaGHaqvVdh4=;
        b=c8AWjJdXVNttq5fu6BkkqKwYPoRtjajcjwG6mtEEV+uW8lCpbhUiqokbqBZOfWE+yk
         Gha6dDCsk6/7NxUKV9bajMg1g6AiC3Pj/jeLtxHx+XKHwF/TLp82iobtyd9JuXHpUIkx
         G6wb+QW70iFJW2mQBgnqLt5oBMRMs06op/Ih6HS3BF8hXb+P/Bd8AihOaufzYDW+KR3z
         bP7KiP4e8WeGZa778v8iXHn/d8paKBJyH1Xa9FZzf0pBejdVtnpRoDZ4+UGGPCcigisU
         HM6dd4oSuU0OTTWIX23UZ7YLib8twDdQ3eDF6kyrrHiAvzwSLeyXrXW4Qcf6HijI/Y3u
         KCLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721799728; x=1722404528;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NryCSaGRf3XeiYoOETz3tmz5rrNdBwS0AaGHaqvVdh4=;
        b=dOY2PuLgiyOkW6UHVicM+tOB0Yhl5+EbDmWnDfV1LPiWRTfMX6ESOvPiNbdQSqjWaP
         WEDk/xIUnPQdqKLIq5i6kSOU/kVMVN+SdNL2mLdQB6ER6EcMecGgvayxjh/386zHNiX4
         aDvLM98KnFC0htt6ZUZAXUMTh9P5RTSIFqZaaRKpbafjs4oWyAd4cZMUqidmACyG79HA
         NGTdAwpwCxm5SH+6l9nwM3be2+v9l+HV6R0VccFd8v6evf7Seho8T5C/BTSbV+oTd2DL
         dyQ10WtDVqs+OuFi5ngmQQfTM9/REacclUJf5ZL2zoMOyt0NfgJNAZGfyvogNa07b8Mh
         3ZfA==
X-Forwarded-Encrypted: i=1; AJvYcCXzE1fnNwTWRpe4fbXwqVGaCR9uvmajJhJaad6hqqbzYxiKd0/wiJypL5p0leGlMgJyag5rvlySNfaKr0/Znz1V3gTFMK6hepiJLeXTy1g=
X-Gm-Message-State: AOJu0Yz9O7LtJMYDi69PBywaVHg8DAJUwk4w4coY+mjRO2wJ4XJTPL+7
	dc2+5wywlzyIXh7gNwbvLp1GUfaBS2J8eDdzAvZbg4wyZHcSJfH4NGKeIwPTVw==
X-Google-Smtp-Source: AGHT+IGlBIgY5mkx16lRUKg3c4cVeyrstC0SJjQnQmD/xuXzHIf5sTBm1pJXT1SpDObAcuMMuozHAw==
X-Received: by 2002:a17:906:d54f:b0:a77:e140:a66d with SMTP id a640c23a62f3a-a7ab10aa1d5mr63078566b.67.1721799728439;
        Tue, 23 Jul 2024 22:42:08 -0700 (PDT)
Message-ID: <d4860b8f-8562-4987-bd1b-fdbeacc0a994@suse.com>
Date: Wed, 24 Jul 2024 07:42:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/efi: Simplify efi_arch_cpu() a little
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Gene Bright <gene@cyberlight.us>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-2-andrew.cooper3@citrix.com>
 <D2WYR6RSF2NH.3FCEH00B4ZRZ2@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <D2WYR6RSF2NH.3FCEH00B4ZRZ2@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 15:47, Alejandro Vallejo wrote:
> On Mon Jul 22, 2024 at 11:18 AM BST, Andrew Cooper wrote:
>> +    if ( (eax >> 16) != 0x8000 || eax < 0x80000000U )
>> +        blexit(L"In 64bit mode, but no extended CPUID leaves?!?");
> 
> I'm not sure about the condition even for the old code. If eax had 0x90000000
> (because new convention appeared 10y in the future), then there would be
> extended leaves but we would be needlessly bailing out. Why not simply check
> that eax < 0x80000001 in here?

eax = 0x90000000 is in leaf group 0x9000, not in the extended leaf group
(0x8000). The splitting into groups may not be written down very well,
but you can see the pattern in e.g. groups 0x8086 and 0xc000 also being
used (by non-Intel non-AMD hardware), without those really being extended
leaves in the sense that 0x8000xxxx are.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 05:42:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 05:42:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763726.1174028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWUlb-0003Yt-PF; Wed, 24 Jul 2024 05:42:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763726.1174028; Wed, 24 Jul 2024 05: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 1sWUlb-0003Yi-MA; Wed, 24 Jul 2024 05:42:23 +0000
Received: by outflank-mailman (input) for mailman id 763726;
 Wed, 24 Jul 2024 05:42:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWUlb-0003Fl-3X
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 05:42:23 +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 7f21d480-497f-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 07:42:21 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5a1fcb611d9so5274235a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 22:42: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
 4fb4d7f45d1cf-5a30aaa30b9sm8371881a12.28.2024.07.23.22.42.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 22:42: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: 7f21d480-497f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721799741; x=1722404541; 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=Nx5ZOkh6AGoODejeSyAQss1Zm5TybGp1SNj8aAaipJE=;
        b=f4+L6MxW2yxTEl2kAHvd49YWADQxucIO4gMg0NxoZLFijfFw0VI0zQBoL6JHuW77Up
         nUTBjeoZPnJxGU0jrZ6xv/H8yDV9a/7RT0eQiIOKRgm6oxgPwZv3bm94rQrqJ2XeomtU
         D0e+vekZQRRqq8jiXH3WKBlT7xxUsLIXgdviALwTqlUa5gWIIDPMmKq5b/kyoJOegKNc
         AoLmUXWYgAbgQiL2sHDeM78+yQlWzpTPtJPOv279GYYFPW6jJ5/cJOWHXV1hW4c9toHd
         qp+YO1slv4qE4gLehzuFMnwIDIDWySPqghabaj9GqUmBXSq9VP972uc7NMJcu9UXP0HL
         blGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721799741; x=1722404541;
        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=Nx5ZOkh6AGoODejeSyAQss1Zm5TybGp1SNj8aAaipJE=;
        b=tRwbl9B0d+xzveLsfRAhoEot/fzmlNrVxW19A2f6P2xVSARKS6k75mYQc364G/sdOw
         SElO1FxFDwZ6i8kDMoJ1OwpR8QxbvvoZFY8ipn//7rfcB/7gOfqSalxYvm979MpCnrW2
         GVnXXjj2yCR6z7D0QZnkiiiPXrEnmZ+uijmO65AzJFzyyGvuuz+K48ClbgDVu9ggASNY
         EXrsGSiNUFMHKu1yB96c0pWfnwwbnbjAtmybO333o+1UB0jMR78jUM6IAjTDWyEbodNa
         NTx3dNekaK16gJUVUvH05mixS8szMivmHcTKq/8xfdqPCQZrgHrEfnQKdTelsv9yKQNK
         /YVw==
X-Gm-Message-State: AOJu0YyBdtOlGcLOgMD7Aq9Di5DybvwcJiGp6vOC7t1g1yvAmXFfbX7B
	imS1IH+Phj6wNiEjSjil/ft/QXMjirlF6RyCt9jp1ZfDPsCJSDWyEjtoSG1UYersybToIB+BLmY
	=
X-Google-Smtp-Source: AGHT+IGgrHQY8wnHbBX3clr4C7MOCYL+8ozTAtZyAsIdlQEPUzqMvJu4XsieG7A4QQPowqCdFSsDlg==
X-Received: by 2002:a05:6402:2692:b0:5a2:2654:7fd1 with SMTP id 4fb4d7f45d1cf-5aaee8b114emr658841a12.36.1721799740936;
        Tue, 23 Jul 2024 22:42:20 -0700 (PDT)
Message-ID: <a08d0d27-1d7b-4453-807c-3670cb4f05aa@suse.com>
Date: Wed, 24 Jul 2024 07:42:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v2] x86/cpuid: Expose max_vcpus field in HVM
 hypervisor leaf
To: Matthew Barnes <matthew.barnes@cloud.com>
References: <fa24cd3b232e8865eb6451e5f7af9cd203ce52ab.1721224079.git.matthew.barnes@cloud.com>
 <12e2c7b2-6d0b-4427-ac30-257bfea2aeab@suse.com>
 <669fa8ad.170a0220.843bc.3a17@mx.google.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
In-Reply-To: <669fa8ad.170a0220.843bc.3a17@mx.google.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

(re-adding xen-devel@)

On 23.07.2024 14:57, Matthew Barnes wrote:
> On Mon, Jul 22, 2024 at 01:37:11PM +0200, Jan Beulich wrote:
>> On 19.07.2024 16:21, Matthew Barnes wrote:
>>> Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
>>> startup.
>>>
>>> There are efforts to support a maximum of 128 vCPUs, which would involve
>>> bumping the OVMF constant from 64 to 128.
>>>
>>> However, it would be more future-proof for OVMF to access the maximum
>>> number of vCPUs for a domain and set itself up appropriately at
>>> run-time.
>>>
>>> GitLab ticket: https://gitlab.com/xen-project/xen/-/issues/191
>>>
>>> For OVMF to access the maximum vCPU count, this patch has Xen expose
>>> the maximum vCPU ID via cpuid on the HVM hypervisor leaf in edx.
>>>
>>> Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
>>> ---
>>> Changes in v2:
>>> - Tweak value from "maximum vcpu count" to "maximum vcpu id"
>>> - Reword commit message to avoid "have to" wording
>>> - Fix vpcus -> vcpus typo
>>> ---
>>
>> Yet still HVM-only?
> 
> This field is only used when the guest is HVM, so I decided it should
> only be present to HVM guests.
> 
> If not, where else would you suggest to put this field?

In a presently unused leaf? Or one of the unused registers of leaf x01
(with the gating flag in leaf x02 ECX)?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 05:46:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 05:46:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763736.1174038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWUpW-0004Ve-6T; Wed, 24 Jul 2024 05:46:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763736.1174038; Wed, 24 Jul 2024 05:46:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWUpW-0004VV-3C; Wed, 24 Jul 2024 05:46:26 +0000
Received: by outflank-mailman (input) for mailman id 763736;
 Wed, 24 Jul 2024 05:46:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWUpV-0004VK-Fi
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 05:46:25 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f94e859-4980-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 07:46:23 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-52efc60a6e6so5474013e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 22:46: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
 a640c23a62f3a-a7a3c95200fsm606102766b.225.2024.07.23.22.46.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 22:46: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: 0f94e859-4980-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721799983; x=1722404783; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Uqi+O8ia6HnD8cwY0vwlxSC4t2rKFpfwYtQayEFo7Gc=;
        b=eWdrYhCcTtG6JZL0Yc4K8gBP8xMqA94uE+EYfzUarhIbGy6lnXHmWdscGR8eyFPkeX
         M64NsZc9uJplbMb0jJbkfLLnbSWB7OGtk5LQuDjmtXoTtve/dGAfyZMME2NHpFyxboZC
         5PUBayUlTKFtIBnc95Rfjks5ForxL2sAVIep08StBqLaKa5jSAfhFrijixVSaaGm7imk
         YhHLp/T6oKaXmbhF1Zs9phZJYBwZNL6XQ0o/qKjwpHxUSt3o2fLhxq78P1lJ281+eoRl
         9vzKRUg9nvxr0hF7/V+8uBW9PN6mzxFifndKFzrcT8WjpU4TAPvmaLkh5HFsZawIge8B
         AtFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721799983; x=1722404783;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Uqi+O8ia6HnD8cwY0vwlxSC4t2rKFpfwYtQayEFo7Gc=;
        b=CfCXe5ZhOlvhfGRXORcFKHvWco3na0xiCY4i4qykmIR8DOzOBqn0UX0wtdnXKBNZI5
         lTf/d25CRaX/GC5/LaCeTRuDK12vfJ6+N/Me2EekqpP+kYTrrCxStc157vsBr92dhI/h
         J0eYheorxsc5ngIQSEZthkf12621vHI7lwvE8mEqhugdaA3X4CwQiwoK0GoK4H29X1vz
         wkz9SpShRic7sTQ5RokePjj+RoPdhbaRJl1SSUCr4IJyD6gAlHX/XI7UKBE5qv0aZm/+
         0voUEKEEbAjkrnhaxxdSEUh9fgUGos/LJWSaF+8CKCQpWbY0T0vibyCSgdyMKAnFXUrR
         fUaw==
X-Forwarded-Encrypted: i=1; AJvYcCX/N72n2dNSdAjL5w5yueFaL6v8ICyitbzFFr0/MLbiTZ1Gfr34zWul+dJYAapJfb6yBo7J+0OmUeGJywQntRrlxwCuZCaCuNt0X8eVpII=
X-Gm-Message-State: AOJu0YzqhNgp4GrbyfN89kriJo3ifuGLLfieBIOeN9K7jbWXvMbt9Fk/
	LprXTTliMiFAoct9/CyPKcafKKKYgiAapn2puXwQplWykD9GDY3EyFklgcZ/Mg==
X-Google-Smtp-Source: AGHT+IEsdyfVNr3IMtt8OgcWmAfer+A7qFPcbIPlUP3Z8nYFwNeBd0sr2Qg/Nzsor3/86qPfURFN6A==
X-Received: by 2002:a05:6512:3c87:b0:52c:df8c:72cc with SMTP id 2adb3069b0e04-52fcda64051mr1014491e87.43.1721799983183;
        Tue, 23 Jul 2024 22:46:23 -0700 (PDT)
Message-ID: <6be25cb3-2481-4832-9a05-6f58468b8cc0@suse.com>
Date: Wed, 24 Jul 2024 07:46:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 16/17] CODING_STYLE: Add a section on header guards
 naming conventions
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
 consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
 <14a663eaab02a78e688e1d260e1a4eb1799b13c5.1721720583.git.alessandro.zucchelli@bugseng.com>
 <9ceeedb1-31c6-4701-849c-e4f32fc07409@suse.com>
 <alpine.DEB.2.22.394.2407231539570.4857@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.2407231539570.4857@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 00:40, Stefano Stabellini wrote:
> On Tue, 23 Jul 2024, Jan Beulich wrote:
>> On 23.07.2024 10:15, Alessandro Zucchelli wrote:
>>> This section explains which format should be followed by header
>>> inclusion guards via a drop-down list of rules.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
>>
>> As indicated in reply to v4, this wants (imo needs) to move to the very start
>> of the series. No changes following the new scheme should be made without the
>> new scheme actually having been committed.
>>
>>> --- a/CODING_STYLE
>>> +++ b/CODING_STYLE
>>> @@ -159,6 +159,27 @@ Emacs local variables
>>>  A comment block containing local variables for emacs is permitted at
>>>  the end of files.  It should be:
>>>  
>>> +Header inclusion guards
>>> +-----------------------
>>> +
>>> +Unless differently specified all header files should have proper inclusion
>>> +guards in order to avoid being included multiple times.
>>> +The following naming conventions have been devised:
>>> +
>>> +- private headers -> <dir>__<filename>_H
>>> +    - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
>>> +    - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
>>> +    - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
>>> +
>>> +- asm-generic headers -> ASM_GENERIC__<filename>_H
>>> +    - include/asm-generic/something.h -> ASM_GENERIC__SOMETHING_H
>>> +
>>> +- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM__<architecture>__<subdir>__<filename>_H
>>> +    - arch/x86/include/asm/something.h -> ASM__X86__SOMETHING_H
>>> +
>>> +- include/xen -> XEN__<filename>_H
>>> +    - include/xen/something.h -> XEN__SOMETHING_H
>>
>> While I think this expresses what we have settled on, it lack details. For
>> example, when to use single vs double underscores is left for the reader
>> to derive from the examples, which leaves room for interpretation.
> 
> I think so too. Here is my improved version, what do you think:
> 
> 
> Header inclusion guards
> -----------------------
> 
> Unless otherwise specified, all header files should include proper
> guards to prevent multiple inclusions. The following naming conventions
> apply:
> 
> - Private headers: <dir>__<filename>_H
>     - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
>     - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
>     - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> 
> - asm-generic headers: ASM_GENERIC__<filename>_H
>     - include/asm-generic/something.h -> ASM_GENERIC__SOMETHING_H
> 
> - arch-specific headers: ASM__<architecture>__<subdir>__<filename>_H
>     - arch/x86/include/asm/something.h -> ASM__X86__SOMETHING_H
> 
> - Xen headers: XEN__<filename>_H
>     - include/xen/something.h -> XEN__SOMETHING_H
> 
> Notes:
> 
> - Filenames and directories are converted to uppercase.
> - Dashes are converted to underscores.

s/Dashes/Non-alphanumeric characters/

Jan

> - Directories, subdirectories, and filenames are separated by double
>   underscores.
> 



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 06:07:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 06:07:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763746.1174047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWV9n-0007eO-RV; Wed, 24 Jul 2024 06:07:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763746.1174047; Wed, 24 Jul 2024 06: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 1sWV9n-0007eH-Os; Wed, 24 Jul 2024 06:07:23 +0000
Received: by outflank-mailman (input) for mailman id 763746;
 Wed, 24 Jul 2024 06:07: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=7SE7=OY=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWV9m-0007eB-Qj
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 06:07:22 +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 fc966f67-4982-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 08:07:20 +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 C3C1A1F388;
 Wed, 24 Jul 2024 06:07: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 993B313411;
 Wed, 24 Jul 2024 06:07:19 +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 eFfeIxeaoGZ2IwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 24 Jul 2024 06:07: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: fc966f67-4982-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721801239; 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=9+kVKoG+9yKI4PKZ0Q+Q/3VBc57NEWov6+Hb3+PRmvA=;
	b=j3kZWxy96tkclv2l/zZWf8gKVT0DmdHnPLG+K2Oi5SSnXrOJq9j/yJ7IEs8ofPRWH0Aot1
	cJ1eTKiCurPihJcgeRJd5UbTXDHlIC12BEQ+65vPGTdc6cb4UUlgXcC9QCN5mY+TAQj11O
	qjq1j9FHA51MRTFGx+18eeJDjX/CZwQ=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721801239; 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=9+kVKoG+9yKI4PKZ0Q+Q/3VBc57NEWov6+Hb3+PRmvA=;
	b=j3kZWxy96tkclv2l/zZWf8gKVT0DmdHnPLG+K2Oi5SSnXrOJq9j/yJ7IEs8ofPRWH0Aot1
	cJ1eTKiCurPihJcgeRJd5UbTXDHlIC12BEQ+65vPGTdc6cb4UUlgXcC9QCN5mY+TAQj11O
	qjq1j9FHA51MRTFGx+18eeJDjX/CZwQ=
Message-ID: <a9b1e875-5bf8-4755-ad2e-78ab2eb02c97@suse.com>
Date: Wed, 24 Jul 2024 08:07:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [xen-tip:linux-next 12/12] WARNING: modpost: vmlinux: section
 mismatch in reference: mc_debug_data+0x0 (section: .data) ->
 mc_debug_data_early (section: .init.data)
To: kernel test robot <lkp@intel.com>
Cc: oe-kbuild-all@lists.linux.dev, xen-devel@lists.xenproject.org,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
References: <202407240907.u0NJHgTu-lkp@intel.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: <202407240907.u0NJHgTu-lkp@intel.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------aKmJoPeeYdrDcLNbIppC2yN0"
X-Spam-Level: 
X-Spamd-Result: default: False [-1.99 / 50.00];
	SIGNED_PGP(-2.00)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-0.998];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	XM_UA_NO_VERSION(0.01)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[01.org:url,imap1.dmz-prg2.suse.org:helo,intel.com:email];
	HAS_ATTACHMENT(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -1.99

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------aKmJoPeeYdrDcLNbIppC2yN0
Content-Type: multipart/mixed; boundary="------------yTPGLPB5HVJauaYLJYOdM88M";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: kernel test robot <lkp@intel.com>
Cc: oe-kbuild-all@lists.linux.dev, xen-devel@lists.xenproject.org,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Message-ID: <a9b1e875-5bf8-4755-ad2e-78ab2eb02c97@suse.com>
Subject: Re: [xen-tip:linux-next 12/12] WARNING: modpost: vmlinux: section
 mismatch in reference: mc_debug_data+0x0 (section: .data) ->
 mc_debug_data_early (section: .init.data)
References: <202407240907.u0NJHgTu-lkp@intel.com>
In-Reply-To: <202407240907.u0NJHgTu-lkp@intel.com>

--------------yTPGLPB5HVJauaYLJYOdM88M
Content-Type: multipart/mixed; boundary="------------3r7BLeRwrhkp6qQzTurBg0uK"

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

T24gMjQuMDcuMjQgMDM6MDgsIGtlcm5lbCB0ZXN0IHJvYm90IHdyb3RlOg0KPiB0cmVlOiAg
IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3hlbi90
aXAuZ2l0IGxpbnV4LW5leHQNCj4gaGVhZDogICAzNjg5OTBhN2ZlMzA3MzdjOTkwZjYyOGE2
MGQyNmQ5ODU0YTllNjkwDQo+IGNvbW1pdDogMzY4OTkwYTdmZTMwNzM3Yzk5MGY2MjhhNjBk
MjZkOTg1NGE5ZTY5MCBbMTIvMTJdIHhlbjogZml4IG11bHRpY2FsbCBkZWJ1ZyBkYXRhIHJl
ZmVyZW5jaW5nDQo+IGNvbmZpZzogeDg2XzY0LXJhbmRjb25maWctMDEyLTIwMjQwNzI0ICho
dHRwczovL2Rvd25sb2FkLjAxLm9yZy8wZGF5LWNpL2FyY2hpdmUvMjAyNDA3MjQvMjAyNDA3
MjQwOTA3LnUwTkpIZ1R1LWxrcEBpbnRlbC5jb20vY29uZmlnKQ0KPiBjb21waWxlcjogZ2Nj
LTEzIChVYnVudHUgMTMuMi4wLTR1YnVudHUzKSAxMy4yLjANCj4gcmVwcm9kdWNlICh0aGlz
IGlzIGEgVz0xIGJ1aWxkKTogKGh0dHBzOi8vZG93bmxvYWQuMDEub3JnLzBkYXktY2kvYXJj
aGl2ZS8yMDI0MDcyNC8yMDI0MDcyNDA5MDcudTBOSkhnVHUtbGtwQGludGVsLmNvbS9yZXBy
b2R1Y2UpDQo+IA0KPiBJZiB5b3UgZml4IHRoZSBpc3N1ZSBpbiBhIHNlcGFyYXRlIHBhdGNo
L2NvbW1pdCAoaS5lLiBub3QganVzdCBhIG5ldyB2ZXJzaW9uIG9mDQo+IHRoZSBzYW1lIHBh
dGNoL2NvbW1pdCksIGtpbmRseSBhZGQgZm9sbG93aW5nIHRhZ3MNCj4gfCBSZXBvcnRlZC1i
eToga2VybmVsIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+DQo+IHwgQ2xvc2VzOiBodHRw
czovL2xvcmUua2VybmVsLm9yZy9vZS1rYnVpbGQtYWxsLzIwMjQwNzI0MDkwNy51ME5KSGdU
dS1sa3BAaW50ZWwuY29tLw0KPiANCj4gQWxsIHdhcm5pbmdzIChuZXcgb25lcyBwcmVmaXhl
ZCBieSA+Piwgb2xkIG9uZXMgcHJlZml4ZWQgYnkgPDwpOg0KPiANCj4+PiBXQVJOSU5HOiBt
b2Rwb3N0OiB2bWxpbnV4OiBzZWN0aW9uIG1pc21hdGNoIGluIHJlZmVyZW5jZTogbWNfZGVi
dWdfZGF0YSsweDAgKHNlY3Rpb246IC5kYXRhKSAtPiBtY19kZWJ1Z19kYXRhX2Vhcmx5IChz
ZWN0aW9uOiAuaW5pdC5kYXRhKQ0KDQpXaXRoIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1cmUgdGhp
cyBpcyBub3QgZWFzaWx5IGZpeGFibGUsIGFzIHRoZXJlIGlzIG5vIHdheQ0KdG8gdGFnIGEg
cGVyY3B1IHZhcmlhYmxlIGFzIF9fcmVmZGF0YS4NCg0KDQpKdWVyZ2VuDQo=
--------------3r7BLeRwrhkp6qQzTurBg0uK
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-----

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
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------3r7BLeRwrhkp6qQzTurBg0uK--

--------------yTPGLPB5HVJauaYLJYOdM88M--

--------------aKmJoPeeYdrDcLNbIppC2yN0
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/Ey8FAmagmhcFAwAAAAAACgkQsN6d1ii/Ey8a
+Af+NVz5nELG4dmNB2Vo1cB/KwBdtOMraTWOSTPsb/qDY6ECINpnNczyU/qNJYOTq3j3lsygfHxT
6doURYn5xC/pn8fxX5Z9hUXfl1kJTFyTHId1g3zWP3tr046RV5Mx5Qsnjav2CqdM5PlruRbdGzy+
gFG556k128ZncGchUaw3TjZg4VrxTvm+hPNXrTt5PoRWWHvp8WBRLQuntU4nsdvNXnpWOdbBMCfS
sOxB86wM4Mlpb/DC//LdKdeILKxP7YgViK7fxXB06mBEqJLmJzT70hxIwLURnucwF9E1Hfx9Y8Ex
8Jiyuvu0+paTuKmJDzYT8bIqtWCFLv16vgT6fSezXg==
=NIQl
-----END PGP SIGNATURE-----

--------------aKmJoPeeYdrDcLNbIppC2yN0--


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 06:28:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 06:28:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763754.1174058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWVTn-00029m-KS; Wed, 24 Jul 2024 06:28:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763754.1174058; Wed, 24 Jul 2024 06:28: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 1sWVTn-00029f-HR; Wed, 24 Jul 2024 06:28:03 +0000
Received: by outflank-mailman (input) for mailman id 763754;
 Wed, 24 Jul 2024 06:28: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=nlgJ=OY=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1sWVTm-00029Z-9J
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 06:28:02 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df4a3428-4985-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 08:28:00 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 48D2A4EE0738;
 Wed, 24 Jul 2024 08:27: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: df4a3428-4985-11ef-8776-851b0ebba9a2
MIME-Version: 1.0
Date: Wed, 24 Jul 2024 08:27:59 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: victorm.lira@amd.com
Cc: xen-devel@lists.xenproject.org, Stefano Stabellini
 <sstabellini@kernel.org>, roberto.bagnara@bugseng.com,
 consulting@bugseng.com, simone.ballarin@bugseng.com
Subject: Re: [RFC PATCH] automation: add linker symbol name script
In-Reply-To: <06e4ad1126b8e9231bf6dcf88205857081968274.1721779872.git.victorm.lira@amd.com>
References: <06e4ad1126b8e9231bf6dcf88205857081968274.1721779872.git.victorm.lira@amd.com>
Message-ID: <a382237f631d86292db349924a097e64@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-24 02:18, victorm.lira@amd.com wrote:
> From: Victor Lira <victorm.lira@amd.com>
> 

Hi,

> Add a script that extracts the names of symbols in linker scripts.
> 
> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> ---
> Note:
> Not included are the "." location name or symbol names enclosed in 
> quotes
> since the files dont't use any.
> ---
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: roberto.bagnara@bugseng.com
> Cc: consulting@bugseng.com
> Cc: simone.ballarin@bugseng.com
> ---
>  automation/eclair_analysis/linker_symbols.sh | 41 +++++++++++++++++++
>  automation/eclair_analysis/stuff.txt         | 42 ++++++++++++++++++++
>  2 files changed, 83 insertions(+)
>  create mode 100755 automation/eclair_analysis/linker_symbols.sh
>  create mode 100644 automation/eclair_analysis/stuff.txt
> 
> diff --git a/automation/eclair_analysis/linker_symbols.sh 
> b/automation/eclair_analysis/linker_symbols.sh
> new file mode 100755
> index 0000000000..c8c44e235f
> --- /dev/null
> +++ b/automation/eclair_analysis/linker_symbols.sh
> @@ -0,0 +1,41 @@
> +#!/bin/bash
> +# Stop immediately if any executed command has exit status different 
> from 0.
> +set -e
> +
> +# Extract linker symbol names (except those starting with ".") from 
> assignments.
> +
> +script_name=`basename "$0"`
> +script_dir="$(
> +  cd "$(dirname "$0")"
> +  echo "${PWD}"
> +)"
> +src_dir="${script_dir}/../.."
> +
> +usage() {
> +  echo "Usage: ${script_name} <ARM64|X86_64>"
> +}
> +
> +if [ $# -ne 1 ]; then
> +  usage
> +  exit 1
> +fi
> +
> +if [ "$1" == "X86_64" ]; then
> +    filepaths=(
> +        "${src_dir}/xen/arch/x86/xen.lds.S"
> +    )
> +elif [ "$1" == "ARM64" ]; then
> +    filepaths=(
> +        "${src_dir}/xen/arch/arm/xen.lds.S"
> +    )
> +else
> +    usage
> +    exit 1
> +fi
> +
> +(
> +    for file in "${filepaths[@]}"
> +    do
> +        sed -n "s/^\s*\([a-zA-Z_][a-zA-Z_0-9.\-]*\)\s*=.*;\s*$/\1/p" 
> $filepaths
> +    done
> +)
> diff --git a/automation/eclair_analysis/stuff.txt 
> b/automation/eclair_analysis/stuff.txt
> new file mode 100644
> index 0000000000..efc33e6a59
> --- /dev/null
> +++ b/automation/eclair_analysis/stuff.txt

I wouldn't include the actual output in the patch. It' much better if I 
have a script that produces a list of symbols, and then use that to 
generate a configuration file right before the analysis.

> @@ -0,0 +1,42 @@
> +_start
> +_idmap_start
> +_idmap_end
> +__proc_info_start
> +__proc_info_end
> +__note_gnu_build_id_start
> +__note_gnu_build_id_end
> +__ro_after_init_start
> +__ro_after_init_end
> +__start___ex_table
> +__stop___ex_table
> +__start___pre_ex_table
> +__stop___pre_ex_table
> +__start_schedulers_array
> +__end_schedulers_array
> +_splatform
> +_eplatform
> +_sdevice
> +_edevice
> +_asdevice
> +_aedevice
> +_steemediator
> +_eteemediator
> +__init_begin
> +_sinittext
> +_einittext
> +__setup_start
> +__setup_end
> +__initcall_start
> +__presmp_initcall_end
> +__initcall_end
> +__alt_instructions
> +__alt_instructions_end
> +__ctors_start
> +__ctors_end
> +__init_end_efi
> +__init_end
> +__bss_start
> +__per_cpu_start
> +__per_cpu_data_end
> +__bss_end
> +_end
> --
> 2.37.6

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 06:39:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 06:39:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763763.1174067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWVeY-0003mY-JC; Wed, 24 Jul 2024 06:39:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763763.1174067; Wed, 24 Jul 2024 06:39: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 1sWVeY-0003mR-GH; Wed, 24 Jul 2024 06:39:10 +0000
Received: by outflank-mailman (input) for mailman id 763763;
 Wed, 24 Jul 2024 06:39: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWVeX-0003mL-UY
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 06:39:09 +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 6d98bdcb-4987-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 08:39:08 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-58f9874aeb4so5277118a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 23:39: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-a7ab4a01faasm22641966b.74.2024.07.23.23.39.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 23:39: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: 6d98bdcb-4987-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721803147; x=1722407947; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt: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/E1S6GlUp17I98dUZl8TyeqNdEAW/iSk+tuZZUHyJY=;
        b=c/acMaWC/+/kNEZOJdHQmZkKSV+y6BBG5cW/N2yAd3RY8aQb600LNcDEFvpNw69T22
         q/6vTEvkNr5aG9jc1hxL9i9YinUayc334tgy5GtLfBDLZa43pQWZEz8hPJWsRBQYTGFH
         C91iPMFu/NNfa7GuMTTxit6lUhjr/ZcL3vTkG8ReYpk20uT3VGQGp3Pvc19QsJiePbT7
         cbagyDgAj0TwdN/IoL0cmjxQ83ZXI4dqY4F3ZAIl0R+LA+7RQ9vuXqqnpR+zMKnCIib7
         5/lWTMS7l2NDU7c4TlJ+IcNYIwC+4Z+l7iYsQ0WqOB22QAJItnaf+RpcAn5FbHSBo3OO
         9K2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721803147; x=1722407947;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references: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/E1S6GlUp17I98dUZl8TyeqNdEAW/iSk+tuZZUHyJY=;
        b=KCtAqAEE9keqIThQnVIWAV03dqWYaaJ7Sys5jCfGCh0nCIbm0be0vj4J1dSCQ1bwBA
         fffIdd4hThbuOqso1Z1rC4oc2ydEtJE0cyA2sX2CCWXXdfYXFm/jKeCribgHBMAwUZX2
         rfpHB1Fa7ZUnsl2ZO6KfFMYQkLnlayIFmj+XVIyL8x9Q7dZm9dzY3/9j373/xZt4FjbI
         xONJOtoF1A9qtwkfu6ZX7x+TUwS19BS9Jq5u/yEZksZWHi5PSKbr6iNNYC5E6RBhgiTX
         oOc4zbOQHzJagF5QiXxasLWE3U1Bu3YUT7EYMm9oPmvrc9T9IYsMR+Fcthl2Zrfz+fOa
         rwRw==
X-Gm-Message-State: AOJu0Yw98SBYyAXdKab6JZ6uBN61VUFRcqx9uJiXA2ADLFB0h5U4wNqh
	wPHD6OgUEK5dC/LA4LdCd0BiI+wzbYKi0MXgTq31NRxmDni6H1K4ipI/1pvnxA==
X-Google-Smtp-Source: AGHT+IEHiKbwot4egEUzuME8h+bxHi8/7faOGLOOO+pghM+2qtZwhyd/VwiVlmJx041jMfREOHOwTg==
X-Received: by 2002:a17:906:794b:b0:a7a:b385:37cd with SMTP id a640c23a62f3a-a7ab3853bb3mr54489466b.30.1721803147543;
        Tue, 23 Jul 2024 23:39:07 -0700 (PDT)
Message-ID: <7a5da6ce-0ef0-4666-a5c4-44383469f67e@suse.com>
Date: Wed, 24 Jul 2024 08:39:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] x86/altcall: fix clang code-gen when using
 altcall in loop constructs
To: Alejandro Vallejo <alejandro.vallejo@cloud.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>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240723093117.99487-1-roger.pau@citrix.com>
 <D2X13ED477J8.25JRFH9VEW33O@cloud.com> <Zp_VuwxqH3Mii8_W@macbook>
 <D2X237Y7T92R.1VVSBS9MCJOFW@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <D2X237Y7T92R.1VVSBS9MCJOFW@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.07.2024 18:24, Alejandro Vallejo wrote:
> On Tue Jul 23, 2024 at 5:09 PM BST, Roger Pau Monné wrote:
>> On Tue, Jul 23, 2024 at 04:37:12PM +0100, Alejandro Vallejo wrote:
>>> On Tue Jul 23, 2024 at 10:31 AM BST, Roger Pau Monne wrote:
>>>> --- a/xen/arch/x86/include/asm/alternative.h
>>>> +++ b/xen/arch/x86/include/asm/alternative.h
>>>> @@ -185,10 +185,10 @@ extern void alternative_branches(void);
>>>>   */
>>>>  #define ALT_CALL_ARG(arg, n)                                            \
>>>>      register union {                                                    \
>>>> -        typeof(arg) e;                                                  \
>>>> +        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
>>>>          unsigned long r;                                                \
>>>>      } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
>>>> -        .e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })   \
>>>> +        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
>>>>      }
>>>>  #else
>>>>  #define ALT_CALL_ARG(arg, n) \
>>>
>>> Don't we want BUILD_BUG_ON(sizeof(long) % sizeof(arg) == 0) instead?
>>
>> I think you meant BUILD_BUG_ON(sizeof(long) % sizeof(arg) != 0)?
> 
> Bah, yes. I wrote it as a COMPILE_ASSERT().
> 
>>
>>> Otherwise
>>> odd sizes will cause the wrong union size to prevail, and while I can't see
>>> today how those might come to happen there's Murphy's law.
>>
>> The overall union size would still be fine, because it has the
>> unsigned long element, it's just that the array won't cover all the
>> space assigned to the long member?
> 
> I explained myself poorly. If the current BUILD_BUG_ON() stays as-is that's
> right, but...
> 
>>
>> IOW if sizeof(arg) == 7, then we would define an array with only 1
>> element, which won't make the size of the union change, but won't
>> cover the same space that's used by the long member.
> 
> ... I thought the point of the patch was to cover the full union with the
> array, and not just a subset. My proposed alternative merely tries to ensure
> the argument is always a submultiple in size of a long so the array is always a
> perfect match.

Question is whether there's an issue with odd sized values in Clang. I
wouldn't want to exclude such (admittedly somewhat exotic) uses "just
in case". My understanding here is that the issue the patch addresses
is not merely the treatment of the union by Clang, but the combination
thereof with it violating the psABI when it comes to passing bool
around.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 06:54:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 06:54:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763770.1174077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWVt2-0006UI-R1; Wed, 24 Jul 2024 06:54:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763770.1174077; Wed, 24 Jul 2024 06:54: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 1sWVt2-0006UB-ON; Wed, 24 Jul 2024 06:54:08 +0000
Received: by outflank-mailman (input) for mailman id 763770;
 Wed, 24 Jul 2024 06:54:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWVt1-0006U2-HN
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 06:54:07 +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 84e2231b-4989-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 08:54:06 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-58ef19aa69dso5174997a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 23:54: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
 4fb4d7f45d1cf-5a59be83c69sm5180416a12.58.2024.07.23.23.54.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 23:54: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: 84e2231b-4989-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721804046; x=1722408846; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LsOjcoGm+30jXQP9UfeyD1a5hhEGlKTQno0S2gPuCU0=;
        b=fZbbRmqT73RETm9TB80OKEHW4ER/+aYzo7BkpShA9BNIxwWKGBYEbYOvlmgLTlXrbY
         vRsQ2OIyGB3YRD58xyOkp425leM6EidmwaQWPrTSrfW1rMcruqO2X6+SK0YzsXm1+fWa
         DAiL5dA5kjuSORt6HmiSerZIZNFE/v8trnPnySGW0T5cJeATY5wUwABES7j4Ryvnb1Li
         XXWPPB0KYH14VIsc0EAvJ5deyP7TvqJ9VGGgEykk58Mtyp0TcW/Xim8ZGjd4aVQZUkT8
         MjqqyT19RdbYnt8KCtHgzxnEwjXbR894vyY9HrsBc2nlBjktwXBLihhrl6FI0CQ8qXC3
         DSgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721804046; x=1722408846;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LsOjcoGm+30jXQP9UfeyD1a5hhEGlKTQno0S2gPuCU0=;
        b=ujxAJ9mHDBn+P2Y9HFdqnXNO/d2apqbMXv0RVzOVEe2KqSQK8LEPyjvVWOv6CzcTmI
         ePcOkIA2tpE/Aa2RbkvEU00kvzgxAPN5sja6mVC7wHr96ozeijAtnkc5CbInILMh1PN8
         ay8WGxg9cN0RK6yQqbNiqawq2QEwSt6YlR7NPD3sx9QEKw75vtNtLKfdLa1G71tqMLCS
         IshbkSjY6+DylTTGkRhxBohGiH4crApvnDvsC1hyaBEvoRcvo8QkHiCfH448gn8dr0e+
         9Fs1V2o+xd+ImqHw9K7UyDcVyIZWDFrxQ5rbmQZ2tihlueLrYlbrk458V2BC8LcUHwrV
         Vjqg==
X-Forwarded-Encrypted: i=1; AJvYcCWzakfnTXbOEVMhJZQEphHIJt53JoF36b22IByZY4+OdPC3tHpgBNFwg68TkU1bU178SocHPIt3PMdQaVvR+q+bGsJ8Fh+BaYDBMC0XExQ=
X-Gm-Message-State: AOJu0YwYlIAAMOZfuIMo0OZ+cyJPSKTqpimOjcqI0DYy8RErvKF+CliI
	KI49pKA8cjXwQe7wMWXN8uTe1CJxSUlbY8ysbU0JN10pqztX8ez7Qt6kmnGSQQ==
X-Google-Smtp-Source: AGHT+IECdLND7sCB3+z89RmfXnP2F4KLDLgbhuGIiPK2EUeg3/+ackv4rufs8Q97rg24KpVjA09SPQ==
X-Received: by 2002:a50:871c:0:b0:5a2:763e:b8bf with SMTP id 4fb4d7f45d1cf-5aaedfe2befmr814539a12.25.1721804045653;
        Tue, 23 Jul 2024 23:54:05 -0700 (PDT)
Message-ID: <fc4b5a0c-19dc-4741-b184-08b704444a1b@suse.com>
Date: Wed, 24 Jul 2024 08:54:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [xen-tip:linux-next 12/12] WARNING: modpost: vmlinux: section
 mismatch in reference: mc_debug_data+0x0 (section: .data) ->
 mc_debug_data_early (section: .init.data)
To: Juergen Gross <jgross@suse.com>
Cc: oe-kbuild-all@lists.linux.dev, xen-devel@lists.xenproject.org,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 kernel test robot <lkp@intel.com>
References: <202407240907.u0NJHgTu-lkp@intel.com>
 <a9b1e875-5bf8-4755-ad2e-78ab2eb02c97@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: <a9b1e875-5bf8-4755-ad2e-78ab2eb02c97@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 08:07, Juergen Gross wrote:
> On 24.07.24 03:08, kernel test robot wrote:
>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next
>> head:   368990a7fe30737c990f628a60d26d9854a9e690
>> commit: 368990a7fe30737c990f628a60d26d9854a9e690 [12/12] xen: fix multicall debug data referencing
>> config: x86_64-randconfig-012-20240724 (https://download.01.org/0day-ci/archive/20240724/202407240907.u0NJHgTu-lkp@intel.com/config)
>> compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
>> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240724/202407240907.u0NJHgTu-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/202407240907.u0NJHgTu-lkp@intel.com/
>>
>> All warnings (new ones prefixed by >>, old ones prefixed by <<):
>>
>>>> WARNING: modpost: vmlinux: section mismatch in reference: mc_debug_data+0x0 (section: .data) -> mc_debug_data_early (section: .init.data)
> 
> With current infrastructure this is not easily fixable, as there is no way
> to tag a percpu variable as __refdata.

Would it be an option to drop the static initializer and set CPU0's value
from xen_parse_mc_debug()?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 06:58:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 06:58:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763776.1174087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWVxQ-0007FU-An; Wed, 24 Jul 2024 06:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763776.1174087; Wed, 24 Jul 2024 06: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 1sWVxQ-0007FN-8E; Wed, 24 Jul 2024 06:58:40 +0000
Received: by outflank-mailman (input) for mailman id 763776;
 Wed, 24 Jul 2024 06: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=hPJw=OY=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1sWVxO-0007FH-MR
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 06:58:39 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on20601.outbound.protection.outlook.com
 [2a01:111:f403:2607::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2612c0ef-498a-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 08:58:36 +0200 (CEST)
Received: from DUZPR01CA0262.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b9::24) by AM9PR08MB6019.eurprd08.prod.outlook.com
 (2603:10a6:20b:2da::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.19; Wed, 24 Jul
 2024 06:58:32 +0000
Received: from DB1PEPF000509E3.eurprd03.prod.outlook.com
 (2603:10a6:10:4b9:cafe::b1) by DUZPR01CA0262.outlook.office365.com
 (2603:10a6:10:4b9::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.20 via Frontend
 Transport; Wed, 24 Jul 2024 06:58:32 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB1PEPF000509E3.mail.protection.outlook.com (10.167.242.53) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7784.11
 via Frontend Transport; Wed, 24 Jul 2024 06:58:31 +0000
Received: ("Tessian outbound cd0b9b5d6f11:v365");
 Wed, 24 Jul 2024 06:58:31 +0000
Received: from Lf8c020d5d75c.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 30E89B7C-188E-472D-A4A7-30FCA8EA3E3F.1; 
 Wed, 24 Jul 2024 06:58:24 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lf8c020d5d75c.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 24 Jul 2024 06:58:24 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by GV1PR08MB7899.eurprd08.prod.outlook.com (2603:10a6:150:5e::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.14; Wed, 24 Jul
 2024 06:58:22 +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.7784.017; Wed, 24 Jul 2024
 06:58: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: 2612c0ef-498a-11ef-bbfe-fd08da9f4363
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=XC/3A8/g6IUkry3XG8t3b9Z+hYKtOzlswcJn4T8I22YBy07gNRY+CeixazXY2XqK8ffv2YbrMrymzFZuBlnwp1aiBKSQPZsDb2lbsPl3m5U15dCkVI4WFpKH/Amjslazma6UHSjJubxqks6lI5RZX5AWBEIBvdwHos4pVrMl3BnB5xLM4IQ0cjzl36I1q7ARADvzZUQkx6Ljxn6vq/kp62vTxaOW0k5GZOgwaDCTuIatKeFnvGHPSVK9AvgT/puPZY0Ja7l5fJ4fVp/ZIBqY6z+8Kd4EahRD+De6RKFCrvXvNmFYKrFAMav6BQtS0pfFDNmXZMgbu08oeOXpLP6MKA==
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=STMM9gnCdcRI3+WIFUerMS57w76gji1YK6QzXU6p6EM=;
 b=HybZCMjgB9jpIVdR1ija0emPbUVu6siBsqV1hTNb1Y63r9g1MoDA5QFkD+KIcjLp2xfMXWk7C9ebV72bdsPDpwcTwbKPAqJ1UUNDBcGS3NKVJQ/VdBnnP/wY1ARYZcY6gn2ox3748IVNTbrzGD41rpwvGJ+UW46knmrlgOxt3RIaMhm5Mm7Jos+0m9Gc921LiS/C4n4fWOi+e0pE30mO4sQsJVJIsH8XYr9XlB+0WYrxPNSRcxRPANAPhY0kc61jaWCmxLJxr3PNYS6ndfnw7wSqBiEprtLmZzwqVDYGIcJmR0a82W3dyT7CJtg74p0RbgU+H6rruuS2OsC6PUc96w==
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=STMM9gnCdcRI3+WIFUerMS57w76gji1YK6QzXU6p6EM=;
 b=jedbnFY0gUZr2sotbZhy9OQ83dyCTMZaE+VjCLtvtwu6b54pMwFU1ne5pBYtV+2OujNamZptGilzh1qjtMD17ZMK+oB+rXfEyqam7QApcSRLHwqchDPHBwZGNkqdF75AYZh0sPVkiAkXx5bK0Hsg+iY8SMutZXP1zom7pqlI3TI=
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: 7ae77e5790761d55
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f049cRIVES87bWIXbBsHeQHVtLHjIaFeKKSfWjBJCabv8LJHpZfUYPmFCY/HKysjczgHsx5HHAqXdygNz42nyXe7lpmwpEFlVFMx2GabT/XUVENmhSYJP+rBvwanrGtL+MCiXQ2fDJJZjtlLDkzUSh/P/ARcLJidQs7H43xoC8m/laAsuL4hNwFqWbv+dwEGwTFDMru/ztr/jHr/T1zwrtejXn2c4HNWkPAYkZPs1y/3VgbqRaf8Vt+WJoa/H0v+UEzGLYZhDPM555tUqC2ezABPm6HyxjUIZiCf1ldU9xagVztZmCCb5zh3F1gtPWMDVZnlZ9TRguvWu4Ey1khvqg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=STMM9gnCdcRI3+WIFUerMS57w76gji1YK6QzXU6p6EM=;
 b=V622p6lAJBbLnWJiQuPkAQzZNbyPoX+QGwqfav5rmaKDPQle2N1B8YmKiK3eRMr3jWPY7WL/vnicCB1PsBDXJBZKij8vVMeorY+lXr6cTLLaawgocgyavEmh4fqjvIkGGCWYg59skGpyaL+QA3Z2LFJuWbh+IxLfiDTykFT0t3Yz929XzkrrHpbr9A80R42mSogbbsEWjXak8whryKWoC/Zn+wXd1lm92HoGCgbo0riT8vG3/kuYoQ8mJOBW4SU+Hp9JRekkN3KJPRdxia6pn2ZcLTJvDwHG133ZgchHHxY7bTrmWmld1oL8yjDKWOg5GgFXL1Ods6SuM08qAHCZiA==
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=STMM9gnCdcRI3+WIFUerMS57w76gji1YK6QzXU6p6EM=;
 b=jedbnFY0gUZr2sotbZhy9OQ83dyCTMZaE+VjCLtvtwu6b54pMwFU1ne5pBYtV+2OujNamZptGilzh1qjtMD17ZMK+oB+rXfEyqam7QApcSRLHwqchDPHBwZGNkqdF75AYZh0sPVkiAkXx5bK0Hsg+iY8SMutZXP1zom7pqlI3TI=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Julien Grall
	<julien@xen.org>
Subject: Re: [PATCH] docs/misra: add R18.6 to rules.rst
Thread-Topic: [PATCH] docs/misra: add R18.6 to rules.rst
Thread-Index: AQHa3UkiFuR/2tGAzkO/R7OVV1IOyLIFcx6A
Date: Wed, 24 Jul 2024 06:58:22 +0000
Message-ID: <FCB77833-0354-4DC4-AF63-3E0280C21B05@arm.com>
References:
 <alpine.DEB.2.22.394.2407231439260.4857@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2407231439260.4857@ubuntu-linux-20-04-desktop>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.600.62)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|GV1PR08MB7899:EE_|DB1PEPF000509E3:EE_|AM9PR08MB6019:EE_
X-MS-Office365-Filtering-Correlation-Id: f5a33e2e-9c1c-4933-1190-08dcabae0792
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:
 =?iso-8859-1?Q?R8p86fiMIfntUafmh2J9+YFBUq5IQTPBj5bEwGAgzhPJI6yRC73uVJgIzn?=
 =?iso-8859-1?Q?3rmcoByQ3tc0ZWFIuuOL6nRmyq/1xzSgz8iKBkTDDEFwbhO9ahkIJZWbF5?=
 =?iso-8859-1?Q?KvFv11Q99D6WQO4N0Pi5zuZPa9ND1/17OVxCjpCWcMxx67jDipi6J96XmZ?=
 =?iso-8859-1?Q?gLZJ9sqkkr+enSRJLWH+aB0Iwu0sCTGo4tn7MzhbaMvoSrg3qrXsq522kq?=
 =?iso-8859-1?Q?LJJLWpHJP48eKomDL1Wmzlt8ov1pZMBYiyGC0CYrqIcZwlsLzyIMQ0E3JG?=
 =?iso-8859-1?Q?JUm+WU51AmCfCtD/zui/mz0Xun695NlHEQ28upmqTb7cvUss+0tkZHtmUL?=
 =?iso-8859-1?Q?Y0CqQJ74vfD+HVOy50TSAxNCjE8wK+hi1XBMsnwtveIQEWpWtoKDcguXub?=
 =?iso-8859-1?Q?I0FmljUZCRqtloewwngXlHj750hOwT+6ygxqssC/eB6Yksbca2486r+NBi?=
 =?iso-8859-1?Q?oUGMKpJUTM3MATubk+Vs4oa9Th8aj4aX7O9TSdKe1u3YbIrzedGoTbf9kU?=
 =?iso-8859-1?Q?EO5sEfBbLbAAuSnR6v0IJOz8yN0d44S7e9ou4ufJwlVFuTJJVnC5QBm5/J?=
 =?iso-8859-1?Q?k9WcKLpj4evmv/RypF45AFKAXttDRr4tOutml3IIxnCpAstZkeMAcuBGN2?=
 =?iso-8859-1?Q?4Q+kPLLglyeqzEmRcRSACGyWTnjrPbfl5Aywz1pImvyVOGwX2INc5hHCsf?=
 =?iso-8859-1?Q?l5DynjyFW18YxnbKWUViQ/Gl7T4edjTO8oojsblp9oP4CcEt7d4SpZx8o9?=
 =?iso-8859-1?Q?h7x/mMH5rQZ97xJ7pIg17gR94DaBEkesmRpCNQoBF2Nq+DbJlSvP4HZ8gV?=
 =?iso-8859-1?Q?iVgBKEzlInUq+gt014qvaP7DgU3P1YsMyM6tpPViLCZZ5WIgjCB1oeTSru?=
 =?iso-8859-1?Q?qDphwtaG3HsfOyJsj/Os/Y/SbfsMHv7MgQD4u2QkeuZc+iOjf7qYdQVqem?=
 =?iso-8859-1?Q?OYTqmq5JUnYVLs67ZmYEXMfnWuoL+IpQPPqNAEw56OP55YkmNMx5jgcmR4?=
 =?iso-8859-1?Q?rz7VMTGGL3qae3przNjoS8E6m9lPznoBH+lpDIDLZkM5clKR3ESEf8cMYX?=
 =?iso-8859-1?Q?AkUiQVJYMawhMVyXaxd9dPYJG/TTdi39JecxArFwtWRebh8v9vXJ/sHTzv?=
 =?iso-8859-1?Q?cwh+02jfYftlEHJIxpZA+rmYeyJ6zjJkvdIp0zgB5dLdx9/bjMtCeTaQT4?=
 =?iso-8859-1?Q?H7i1qds+cvlzBL5Ir+DF4pEjuVZYrC4MQJmYiACFo87JjK9avgYyrOXQzy?=
 =?iso-8859-1?Q?e3uOC8vs2kMER0DViCem1CQUKefqX834RakjQTdE8Tah5Jgvs+xZfeB+BR?=
 =?iso-8859-1?Q?WegCryVVoE+clJHA6CfcvfSN7HPu4yok3qeolGsuYPCZSrHPEndFrX+6lD?=
 =?iso-8859-1?Q?5nk8EmZ+X9V7ZjpPxsCTW5xdfVDjPrWoLv9bquWJFUJ1XlOuLTvGQ=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <5FD054957598AD49A76D6C43A6076390@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7899
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:
 DB1PEPF000509E3.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ecafff28-4714-4a5f-07dd-08dcabae01b9
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|34020700016|36860700013|82310400026|1800799024|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?6gtu9p4Dq01QjCSuw7FDKbjauV2jNHn1gww6uxxlSgdL8rgMU9e17tc118?=
 =?iso-8859-1?Q?/g1GEUy8z5fbuT0aVlIwEQk40fzicAA2ieluICig1bF8W1wYnDGIdAQ1sh?=
 =?iso-8859-1?Q?lLlz3gWVPEBKw8ltGLEi4DciuFBD7B9AFZNVM4vrF9G3/+AtBuQtvvWGXE?=
 =?iso-8859-1?Q?vDKmDkt5FBioM7zY3xFDaXCN//hA+RXAFXIRqZlcnhzBeuyf/WU1UEm5x2?=
 =?iso-8859-1?Q?SL3VykhJxzqphQLnFF6l2P9Ztg8ngJM3rm1ffHlJV9SPJlf6hS02K7XiRN?=
 =?iso-8859-1?Q?scdXdg4T475UIs+oKIk2I7UwMTDDfBYA3GEfGFtI+tTLIVfr30XS6i/GaY?=
 =?iso-8859-1?Q?V2a1igR7v4Ou6VVsfpTqyUnMSFxn/adrEwg9OWcnNNMYA3g9QceoOTTiBl?=
 =?iso-8859-1?Q?kcMEPmZeK0/Vuh6UlePdwxzKH4P771JiikuxoL+jK0gkkEotutIWl38M6B?=
 =?iso-8859-1?Q?A8Xbcdmt/sdTmmEv27CJlj+qjY2RrDlZnXOQJ4Rjqyat8HnMuj2EOOh2d1?=
 =?iso-8859-1?Q?/qsKfD2RgBNTTWerefZDtVrO1E1sJ9w8UPpuJq85Lwoghvjco4ap3A7tX2?=
 =?iso-8859-1?Q?feoN/KMrIKIYfsKStnomfZE3yaby3ZLcnsD2ZusrMp4e/3gAakaYNwF00Q?=
 =?iso-8859-1?Q?5cs00kdpCGn6yD7jqf/P1t0Cer518QFaZkPTiKpEUVA1LQwGwtmWyuNwDO?=
 =?iso-8859-1?Q?9FevWcQ+0DnM10ViMkWEHNHb9t8hPntVgdpI23BXFWG6d29NK4kN0I9ktg?=
 =?iso-8859-1?Q?vZXQvzAzMDe58nYtQIo6nkWkw7ho9x7XzH0oMjxnq/PfQ/CARM4DXWvqhe?=
 =?iso-8859-1?Q?BlhYZ1QvnB0LHYX6XsbFpfxRg+OO3oig/yMA3Bl443yVxp86nNHCcSo1ri?=
 =?iso-8859-1?Q?aHlMWQDlNTPUdxhcOzGh5CYRTsQRKYq7RkY+Qm5k0zvjEvnxGRZd3I4Xox?=
 =?iso-8859-1?Q?jyUPXv2ICFqkgZzmDuDQ+L1FOtSEi1uQfwQS7533byJNZiX++6qYZotCmS?=
 =?iso-8859-1?Q?e+Tv/k4YpVEOK9XocEJRHkxHBo8HTh+osgGCSW3emrXbuGwxZ874Qvvt+F?=
 =?iso-8859-1?Q?iaCEy4i47okbn09Rop2EFll7lQo2qLfzq6EERxJ0ZWf8sp8X8IPXW7OJ3L?=
 =?iso-8859-1?Q?OzG+JDctX48q8mfZiNTqY4xEHBwRBwlKArxTMoWyZh7Ip5dOIgx7J4G0y9?=
 =?iso-8859-1?Q?Gzc3tPq7vWo3LMhNjverpyC4Vjt9hLX1chx2EdxN5n+OoBKWziAGYDP/RC?=
 =?iso-8859-1?Q?6UGn5XF9LlHyuibS4LECxUOONCaSHKSJIqzbaJrZLuwJS99LUlG2BHL9SX?=
 =?iso-8859-1?Q?jiBeFD3dCNh9hy9qo25qXgoQuIP+fY6s6Ta3Vvq/6/FoTHMdGz4Nczcme9?=
 =?iso-8859-1?Q?X7KtikHdUwOb0HAU3hZ7NkSG6jzG/A67qh0HgXNO7T5PiO6/UWDDgZzedy?=
 =?iso-8859-1?Q?Iv6p5wkeR/+mwgBV0uVBwLtLuyX5C3CNIIpMcA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230040)(376014)(34020700016)(36860700013)(82310400026)(1800799024)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2024 06:58:31.9440
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f5a33e2e-9c1c-4933-1190-08dcabae0792
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:
	DB1PEPF000509E3.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6019

Hi Stefano,

> On 23 Jul 2024, at 23:41, Stefano Stabellini <sstabellini@kernel.org> wro=
te:
>=20
> In practice, we are already following R18.6 and we have zero violations
> reported by ECLAIR (there are some cautions being reported.)
>=20
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

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

Cheers
Bertrand

>=20
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index 80e5e972ad..0cb2fb8f24 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -580,6 +580,13 @@ maintainers if you want to suggest a change.
>      - The relational operators > >=3D < and <=3D shall not be applied to=
 objects of pointer type except where they point into the same object
>      -
>=20
> +   * - `Rule 18.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example=
-Suite/-/blob/master/R_18_06_1.c>`_
> +     - Required
> +     - The address of an object with automatic storage shall not be
> +       copied to another object that persists after the first object has
> +       ceased to exist
> +     -
> +
>    * - `Rule 19.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-=
Suite/-/blob/master/R_19_01.c>`_
>      - Mandatory
>      - An object shall not be assigned or copied to an overlapping



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 06:58:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 06:58:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763777.1174097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWVxW-0007WX-Lz; Wed, 24 Jul 2024 06:58:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763777.1174097; Wed, 24 Jul 2024 06:58: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 1sWVxW-0007WQ-JJ; Wed, 24 Jul 2024 06:58:46 +0000
Received: by outflank-mailman (input) for mailman id 763777;
 Wed, 24 Jul 2024 06:58: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWVxV-0007VT-9F
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 06:58:45 +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 29fb2941-498a-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 08:58:43 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a7aa212c1c9so142200266b.2
 for <xen-devel@lists.xenproject.org>; Tue, 23 Jul 2024 23:58: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
 a640c23a62f3a-a7aa49cc729sm97668366b.90.2024.07.23.23.58.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 23 Jul 2024 23:58: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: 29fb2941-498a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721804322; x=1722409122; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lgopAtM9TO4VTu1/8JIsoOM9ZJVxIuu3eLuvKuFSkNI=;
        b=I4BLEUnRhV+stZXU7guoaHCXxaMBNChiftVwxr9NJbUrz6KO9DZuOjFbLKURf+wALV
         CzcXBQp43AKDBgpSeVl8rYHZ0TxFe8n8AKuYN/5m3tBn2PC5cjpSwxm5WIQFkSg217sN
         ogl+3v+WetjbVrwhg9lJBZT2jxEJ9K9UOYRfodem9eQ4yxdYn+s6LXsLjRnbbm13QpEy
         qoe84Usl4mk6IoC2K7pqd0oGC4tAIWIYFuX5hRyLSXMTBFUDJuofjaS6GVTULo8UmYW8
         VCRwWuGjuIMS+YuFIv2K5oXOAjzqpzFoFjnQoKvaYoevvdn18GrJ+9cU8krxDbZh8dZm
         7U+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721804322; x=1722409122;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lgopAtM9TO4VTu1/8JIsoOM9ZJVxIuu3eLuvKuFSkNI=;
        b=t+P0Qzqs/Nc95B2q7GyML4D+5u20XsITjtRfaFBL2mMxOp6KFyPPVe9VW0AgwiPNvK
         0buJIV8Z7wSdqS5DXHuJ98UKaUnoYwfvWIWYu1DSxcMV9NnshG5MLbpjhkep7Vl48vq7
         RFCWHMwPt98Oggn7cYo1inctCCJ/BsryupMHuF+zILzUEjmL707yoqTw+SPUG4mRUTMn
         iY2o/7dqTWylwa1NWGBZdT67fUgYGSZiHbKtiexby0Q8+6TRIk7CTaALQ7Ud2p/IIsKe
         4EKrEIU33WivupcnRNQo824uQLTAfJWcwVRuFpFHDwmZ5DjZv7iyOk9PwB6y2/GxTQIu
         UzZg==
X-Gm-Message-State: AOJu0YzQsWtua07fMDrC0qPkS+M3iIhw6LIRjW4qFSP5aPSE9NrDykOG
	Ci+uZK/8DG16TzuRwOy4c7yLqGKeQYBSKaHblyvRPPNIOCY4J5NfZXBXv0XW8w==
X-Google-Smtp-Source: AGHT+IEEj0JZYDEWLb8XvsIdUJbcViHecK891TEjACPvTLMlg72DhDYXuCVAIlm+A0Amw9qFn9vNOQ==
X-Received: by 2002:a17:906:2dd5:b0:a7a:9d70:82b9 with SMTP id a640c23a62f3a-a7ab0e809bdmr59834366b.17.1721804322509;
        Tue, 23 Jul 2024 23:58:42 -0700 (PDT)
Message-ID: <4758a806-712f-4ec2-97e8-a31b493b2c31@suse.com>
Date: Wed, 24 Jul 2024 08:58:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/6] tools/libxs: Fix SIGPIPE handling issues
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
References: <20240718164842.3650702-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: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.07.2024 18:48, Andrew Cooper wrote:
> While the purpose of this series is patch 6, it has a side effect of reducing
> the number of system calls substantally.
> 
> Using a strace of test-xenstore as an example, we go from this:
> 
>   rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fda8278e2f0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fda8278e2f0}, 8) = 0
>   write(3, "\v\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0", 16) = 16
>   write(3, "xenstore-test/502673/a\0", 23) = 23
>   write(3, "a", 1)                        = 1
>   read(3, "\v\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0", 16) = 16
>   read(3, "OK\0", 3)                      = 3
>   rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fda8278e2f0}, NULL, 8) = 0
> 
> down to this:
> 
>   sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\v\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0", iov_len=16}, {iov_base="xenstore-test/504021/a\0", iov_len=23}, {iov_base="a", iov_len=1}], msg_iovlen=3, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 40
>   read(3, "\v\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0", 16) = 16
>   read(3, "OK\0", 3)                      = 3
> 
> 
> I.e., it removes 2x rt_sigaction(), and turns all write()'s into a single
> writev() or sendmsg().
> 
> 
> Reads are a little more problematic to deal with.  Xenstored will produce a
> full package basically in one go, but libxenstore's reading is horrbly
> complicated by virtue of it being completely different depending on whether
> xs_watch() has created a secondary read thread or not.
> 
> Andrew Cooper (6):
>   tools/libxs: Fix length check in xs_talkv()
>   tools/libxs: Rework xs_talkv() to take xsd_sockmsg within the iovec
>   tools/libxs: Rationalise the definition of struct xs_handle
>   tools/libxs: Track whether we're using a socket or file
>   tools/libxs: Use writev()/sendmsg() instead of write()
>   tools/libxs: Stop playing with SIGPIPE

The title of the entire series containing "Fix" vs there being no single
Fixes: tag throughout, afaics, leave unclear to me whether any or all of
this work wants/needs backporting. Please clarify.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 07:06:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 07:06:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763792.1174108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWW53-00014T-DN; Wed, 24 Jul 2024 07:06:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763792.1174108; Wed, 24 Jul 2024 07:06: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 1sWW53-00014M-AL; Wed, 24 Jul 2024 07:06:33 +0000
Received: by outflank-mailman (input) for mailman id 763792;
 Wed, 24 Jul 2024 07:06: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWW52-0000xR-0p
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 07:06:32 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4109fcc6-498b-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 09:06:31 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52f008aa351so4491512e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 00:06:31 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52ef5577d52sm1823355e87.265.2024.07.24.00.06.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 00:06: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: 4109fcc6-498b-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721804791; x=1722409591; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2IO0MKH2II0ITzbYnlBtXjPa8IicTPbMr+KdzN69UtU=;
        b=nQVFBPPKKdHqnh/+YGym7qV9xHPsndeYKeb+GkLY4dx0wGL8Y6eWNA+F09Ly4DB8qR
         I6Hqx5grt3aRQH0Dpe33Umrdc+E55dmuz0+/mhLHSELFWIHm0QQNwlJuXeCXqG3AJBHN
         Fh/dqz0b4vDt3OMm2XvMg+7C7wFwTty08XhyX9iMk9CB21D5sMEe8A0Jjp6TTZFsfGC/
         LL/GK0rz9h7x4kpyfqTWpT6eA/4CmKfl91i/5EIUFeHw2wkT2iVksoQkvg8R1RxH0qip
         5KVJsx1/2z4JHmq++Nm4aF9LLNaaLhavVrGcJYsFlVNGK+wnhBhOrsWAJ/rRvRU5VVOG
         LzXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721804791; x=1722409591;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=2IO0MKH2II0ITzbYnlBtXjPa8IicTPbMr+KdzN69UtU=;
        b=p4H0ZOFg9se/Mw5uHV1p94HYH3bj+0nV8PTANVGLcXB9Wi5+Zty7Or20OvNj5LKAEx
         QgeCDyvKEGXtyJUU+Yh/hna8gJ7yCzsdFbMXM7kf8x6ahclfd0VoCghbD7gMLPMi4YBW
         Tr0jCMmdkXqi+izNPmy2y+t+RBPeI1OVQxi3LHOFQUbMW9t+4BaGJwa3Ruv9RzYo4T7z
         6abafNVXPAuk5/J89A2Y5XV8/M9+dD+BEF896wuLzckmhZ4NTXCGYAfxfb5DAhhqxeX0
         rEqG1PzUIOFgErc2MTiQVZz56BbJ4Siei6lOfuxXJHmnxhuTaNflU7pD+RiqWrIMfWO7
         PBhw==
X-Forwarded-Encrypted: i=1; AJvYcCVIECo3mDTjPJchF/By58L7khJYxRqkM6KtDlmxIJT9Px/M5qwgMyh+aBYYl5mX/YrrHZyBGkR72OzA3yROXNgXTe31SEzgDARRxwxNSMI=
X-Gm-Message-State: AOJu0YyFvR8vSJva9EXSpHtAtMdnogrz9tUMe55OOsAsV0crwcojqGlA
	0W/6IoTtd1zNt/RQuFn+7QzMSRpjRekWzCVBnp9RvoAReOitG3y025Yl0c30
X-Google-Smtp-Source: AGHT+IEujQQ6KaRitroyBBKWJ9VnWCVK8UDfK7IVzDlUzR7Mq1V16shu8M1t2bQK28vwEenMruOhBA==
X-Received: by 2002:a05:6512:1089:b0:52e:9ecd:3465 with SMTP id 2adb3069b0e04-52fcda6f4c3mr1172539e87.57.1721804790354;
        Wed, 24 Jul 2024 00:06:30 -0700 (PDT)
Message-ID: <cc8ca0e4f3430f9f3ab91228ad6d332836da1929.camel@gmail.com>
Subject: Re: [PATCH for-4.19] hotplug: Restore block-tap phy compatibility
 (again)
From: oleksii.kurochko@gmail.com
To: Jason Andryuk <jason.andryuk@amd.com>, Andrew Cooper
	 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Date: Wed, 24 Jul 2024 09:06:29 +0200
In-Reply-To: <e5ee360d-d945-4807-a6ce-9a7b97b69bea@amd.com>
References: <20240715234631.4468-1-jandryuk@gmail.com>
	 <Zp/GcCUVPX/d/7qx@l14> <ac3d7bcd-6ed8-4ded-bb5d-ab9c228e9579@amd.com>
	 <8a185aeabe4b3928906036590affbec8658bf226.camel@gmail.com>
	 <eb096455-cc60-4c34-b7e4-fb0345086934@citrix.com>
	 <e5ee360d-d945-4807-a6ce-9a7b97b69bea@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-23 at 14:05 -0400, Jason Andryuk wrote:
> On 2024-07-23 13:34, Andrew Cooper wrote:
> > On 23/07/2024 6:31 pm, oleksii.kurochko@gmail.com=C2=A0wrote:
> > > On Tue, 2024-07-23 at 11:04 -0400, Jason Andryuk wrote:
> > > > On 2024-07-23 11:04, Anthony PERARD wrote:
> > > > > On Mon, Jul 15, 2024 at 07:46:31PM -0400, Jason Andryuk
> > > > > wrote:
> > > > > > "$dev" needs to be set correctly for backendtype=3Dphy as
> > > > > > well as
> > > > > > backendtype=3Dtap.=C2=A0 Move the setting into the conditional,=
 so
> > > > > > it
> > > > > > can be
> > > > > > handled properly for each.
> > > > > >=20
> > > > > > (dev could be captured during tap-ctl allocate for blktap
> > > > > > module,
> > > > > > but it
> > > > > > would not be set properly for the find_device case.=C2=A0 The
> > > > > > backendtype=3Dtap
> > > > > > case would need to be handled regardless.)
> > > > > >=20
> > > > > > Fixes: 6fcdc84927 ("hotplug: Restore block-tap phy
> > > > > > compatibility")
> > > > > Do you mean f16ac12bd418 ("hotplug: Restore block-tap phy
> > > > > compatibility") ?
> > > > Yes!=C2=A0 Thanks for checking that - I must have grabbed the hash
> > > > from a
> > > > local branch.
> > > >=20
> > > > > > Fixes: 76a484193d ("hotplug: Update block-tap")
> > > > > >=20
> > > > > > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> > > > > With the fixes tag fix:
> > > > > Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
> > > > Thanks again.
> > > >=20
> > > > Oleksii, this is a fix (for an incomplete fix) for 4.19.=C2=A0
> > > > 76a484193d
> > > > broke compatibility for block-tap with the blktap2 kernel model
> > > > (when
> > > > adding support for tapback).=C2=A0 This finishes restoring blktap2
> > > > support.
> > > >=20
> > > > I realize it's late in the release if you don't want to take
> > > > it.
> > > It's pretty late but I just wanted to clarify:
> > > 1. Is so critical that we should have this in 4.19?
> > > 2. If we won't take it now, then will it be backported anyway?
> >=20
> > 2) Yes it will get backported.=C2=A0 In fact I'm about to commit it to
> > staging.
> >=20
> > 1) It's a bug in a new feature for 4.19, so if we don't take this
> > bugfix
> > then we'll have to strip it from the release notes.
>=20
> It's a bug in the old feature.=C2=A0 The new feature - tapback daemon=20
> support, backendtype=3Dtap - works with what's in the 4.19 tree.=C2=A0 It=
's
> the=20
> old kernel module support - backendtype=3Dphy,script=3Dblock-tap - that
> was=20
> broken when adding tapback support.=C2=A0 This patch fixes the old
> support.
>=20
> The change is localized in the block-tap script and requires explicit
> configuration (script=3Dblock-tap) to use.=C2=A0 So it seems to me to be =
a=20
> lower risk to take it even though it is late in the cycle.
Agree, if it is by default is disabled then I think we can have this
patch in 4.19:
 Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 07:07:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 07:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763798.1174117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWW69-0001nQ-MH; Wed, 24 Jul 2024 07:07:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763798.1174117; Wed, 24 Jul 2024 07:07:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWW69-0001nJ-J3; Wed, 24 Jul 2024 07:07:41 +0000
Received: by outflank-mailman (input) for mailman id 763798;
 Wed, 24 Jul 2024 07: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWW69-0001nA-9C
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 07:07:41 +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 6982e8db-498b-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 09:07:39 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7aa4bf4d1eso89250266b.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 00:07: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
 a640c23a62f3a-a7a3c785db7sm624168066b.12.2024.07.24.00.07.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 00:07: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: 6982e8db-498b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721804858; x=1722409658; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7z+mc6hUQOaZlRkUCe8P38HatGZheB9ibsjiaAOfh3E=;
        b=N6txcjDgzXyoGname82ILBcVB9XQNK1XfAtVyxChrrKR3CKzdQ7F/QmiCpoZZKHHtw
         N1zmd2odt1Pw9axfW3ha6L9wPJGxKR4szLg7CUtgQjG3rRDClVPbRaHuz8FWZ0eHjB+W
         2n6jwAN4ZG5jjwDYvWdZbceIhE6W4HqNnM1DCs4730oqJwQ9wgDaH8aifB+VmVKLDpdn
         AGGnWR6SMSqjE8XgUptBjbzdhLx0VZp+y6opnASfgIBCWhiV3/nir6fB81NEApLr3NRx
         KpYPjZU0E1PZdzoRcOn250OHnSMAzXILN0b5XV2CO0lBCRxjnmAC22pSsGieHje1/468
         pMsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721804858; x=1722409658;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7z+mc6hUQOaZlRkUCe8P38HatGZheB9ibsjiaAOfh3E=;
        b=TxHwMgh2VrdABhYgCfi91FM+FfMVNX9/zSiCvPreQcRiV7254AgrL5oIrx83u3uYNw
         JJ1PSU8dG3+DyL71qEjrFDkLeNTSQIn4GLH5lnWcna21JxPPUYlQj1qbV1wpnk3n9l9N
         dano2i+O0fG+gSNNCFVvmHHgEyvNEfFjGO31mWY2LaIUaJSlLwK/hcgtqJiMZIhsOEBW
         HovtHe5MD4Prq1LkouqFTjinNzVyv9tz2pmUPEl76MFZB+zk0Cb4DWLgbc5P3E47rSQV
         tuNrEUHg5nMs7A75G27KLvRhBEQRMHpBCBGHuLt6i3V7L4EClXQCFT0tJ4iwtoeh9qnY
         iz8Q==
X-Forwarded-Encrypted: i=1; AJvYcCV0yrOtl2/vXFjBV9mfFVPKTf6KTFDoET1HXMlOMMk7oaf2DWrhaRdezdYszTWqyONuSMoKggX/5eRfFFN7b2lsHC/qlEu5KFF4hjiETfc=
X-Gm-Message-State: AOJu0YwWFeW51zMWOdwFO3mlHthh9ckfb4o4McCsrGerUO3eu+7vb0mi
	iVyRHwHQ+Es9dTl7YeERv7g9UllrWlnXqgk0aFu9FzDaYjT88vphcZgx3BAZFQ==
X-Google-Smtp-Source: AGHT+IGr33Fq44uKsGyZAZLQzaQFHomHoysGXsfB5BViVO3Ce481CaTI2H6w7Kj46RWeBX8OcxpHWw==
X-Received: by 2002:a17:907:86ac:b0:a7a:a5ae:11ba with SMTP id a640c23a62f3a-a7aa5ae13acmr217281566b.50.1721804858579;
        Wed, 24 Jul 2024 00:07:38 -0700 (PDT)
Message-ID: <afb2c8c8-e716-4079-9bfe-68032bdd09ec@suse.com>
Date: Wed, 24 Jul 2024 09:07:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen for Apple Silicon (M1 and beyond)
To: Techguru <techguru@byiq.org>
Cc: Michal Orzel <michal.orzel@amd.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <d5c3e0900db98aaaeb7fb52f16598257@mail.infomaniak.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d5c3e0900db98aaaeb7fb52f16598257@mail.infomaniak.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.07.2024 03:14, Techguru wrote:
> I am in the process of getting up to speed on your governance
> policies, applied for Coverity access to use some of the known issues
> there as training wheels, and putting my gitlab fork into good working
> order with CI.
> 
> I would rather not duplicate effort which has already been proposed,
> so definitely open to any pointers, any requests for how to chunk
> things into smaller patches, any requests for particular
> ordering/sequencing of patch sets.
> 
> Some obvious areas:   16k pages;

For this I'd suggest that you start with a conceptual model rather than
thinking of patches straight away. It has been the topic of past
discussions, without - iirc - conclusive results. I'm sure you're aware
that 4k page size is, sadly, baked into certain parts of the public
interface (see e.g. io/ring.h). Otoh it may well be that you're goal is
explicitly not to be able to run any guests working with 4k pages. If
so, what would need ensuring is that such guests would cleanly fail to
start, rather than crash early in a cryptic way.

Jan

> device trees; interrupts; power
> management; any essential device drivers.
> 
> 
> 



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 07:18:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 07:18:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763806.1174127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWWGl-0003l2-Gc; Wed, 24 Jul 2024 07:18:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763806.1174127; Wed, 24 Jul 2024 07:18: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 1sWWGl-0003kv-E5; Wed, 24 Jul 2024 07:18:39 +0000
Received: by outflank-mailman (input) for mailman id 763806;
 Wed, 24 Jul 2024 07:18:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWWGk-0003kl-9l; Wed, 24 Jul 2024 07:18:38 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWWGk-0007wc-1Q; Wed, 24 Jul 2024 07:18:38 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWWGj-0000ub-DL; Wed, 24 Jul 2024 07:18:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWWGj-0006PI-Cr; Wed, 24 Jul 2024 07:18:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=y3mO0S+oYyvuLc9CZ5JG/FGFW2pq6LHeCXrWBcRfogs=; b=fsZ1s2R8FlADyJJZHYsZzc5MP1
	ejHWyMJzD3UNbK1R8SZdmdfKtNKRMOQUnCwX4p2hWTJvlu9Q2SXoPua2+3rG4FqVgKUXUUamD6BMO
	s0rajkU9AgMhw0ArS/FEa9DqZGCF2QIxr+Zl44g+PdPyrPrqGWQhvHo+nAMZWcnIBY5g=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186973-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186973: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-qemuu-freebsd12-amd64:guest-start/freebsd.repeat:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=e9680017b2dc8686a908ea1b51941a91b6da9f1d
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 07:18:37 +0000

flight 186973 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186973/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel  8 xen-boot            fail REGR. vs. 186827
 test-amd64-amd64-dom0pvh-xl-amd  8 xen-boot              fail REGR. vs. 186827
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
 test-amd64-amd64-qemuu-freebsd12-amd64 21 guest-start/freebsd.repeat fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                e9680017b2dc8686a908ea1b51941a91b6da9f1d
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    7 days
Failing since        186925  2024-07-20 09:44:52 Z    3 days    9 attempts
Testing same since   186973  2024-07-23 20:14:32 Z    0 days    1 attempts

------------------------------------------------------------
1828 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       fail    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 202868 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 07:34:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 07:34:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763816.1174137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWWW7-0006Zv-Ue; Wed, 24 Jul 2024 07:34:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763816.1174137; Wed, 24 Jul 2024 07: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 1sWWW7-0006Zo-S7; Wed, 24 Jul 2024 07:34:31 +0000
Received: by outflank-mailman (input) for mailman id 763816;
 Wed, 24 Jul 2024 07:34:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWWW6-0006Zi-Ed
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 07:34:30 +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 28662c5c-498f-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 09:34:28 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a7a94aa5080so77389166b.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 00:34: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-a7aa6fea966sm87050266b.223.2024.07.24.00.34.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 00:34: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: 28662c5c-498f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721806468; x=1722411268; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lxpbdfCGrMS+HlYf5Z3VNQfjy8P76FtTN33whdHa8dw=;
        b=A1eQ+2Q65IpzW/7K85kUDtmnNGkgpbTjME/kCiXV4yMDqkpZCt9o5ODdZVbJBtZrx/
         IcIp8MujF4q3VnFYQEZxpj8vMZNpV/3GJyBJLw9PtZhdpLjoZsgsGlDYfCj/A7BgkFpy
         tyUiiqPfbC/CT1I9LoM1a3uV34qZ9gyKKu+Ou7oQZ8AW+iMrZYiY6lXNAOUrByTUsx2v
         0ZRnryD9F4ot0NXA/T2eLcwh2/nzOBjS+JdJ9QrjkB1FQTbuDMjUrKD3v5yHE4Sfk0kj
         6TxjVKSCyGE0BIR9QxTKq4MzXYGnp6Vq24x7HLu5eGT7Sgqt+rAujbYI/5Mwuj8CIKMc
         qGXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721806468; x=1722411268;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lxpbdfCGrMS+HlYf5Z3VNQfjy8P76FtTN33whdHa8dw=;
        b=s1FCaZ/Kab117kx7WjQRlfpdnhkO1cZiR962/V/LPcoa952S0xrP2s//JcniJVKJBg
         52EDNJVA2y2FuDwelEn//+MhRki58I0nOYhq55OnE0c1UWhoBLF+ovyx4RysmwLBNMG7
         BEGMMIF5f3mXMAjY/tWgGG1Dj0b+6V5/rPdFbWs6AQcwdfGz7qFwQlbKrmthykaDZe4R
         2ykbZ5pRH7hCvvlHvB595ZmrAiQfY7EjWLkjNOuUkvn1ikmaCj0SRRFIiJSluWtgECgx
         7NhxN3N8twLZqyvSkTf38AG7RK/+TV1yjRzkQIvtGcFxWJRd8qxesfmjLbCC7wBrLZoV
         ITdg==
X-Forwarded-Encrypted: i=1; AJvYcCXwwAKjcdWpiP6fsYGO9+D0qMsjERt5wpIK7g7PTka1nu8fPAhaW61t2Y7OCETOVLaTC6sOPxL1R7bZe3oB3DS/C1AHlkuvedg6EjV8YjE=
X-Gm-Message-State: AOJu0Yy4ELRyvYti6W+NwDAQnkyfRHCyjP6RtOZrH/jXej8IJFTXPGIZ
	EyQ9fuoT4dJhGsO92xPvY75BCqC8xnk/I49yP5ceve9axDcPAJijXRWwJj7EZP6hAjdkvayzKCs
	=
X-Google-Smtp-Source: AGHT+IHLC//ja0oYDuCPMPVQjT1GF9VodgJK3ZRfQNCYjo/3hgq+W37PxJnF9kXrTBkxfCL2XkZb8w==
X-Received: by 2002:a17:907:97c2:b0:a77:bfca:da53 with SMTP id a640c23a62f3a-a7a4c06a5f6mr949669866b.30.1721806467692;
        Wed, 24 Jul 2024 00:34:27 -0700 (PDT)
Message-ID: <f88005d5-8c1f-4060-b3b4-7f88d8c42725@suse.com>
Date: Wed, 24 Jul 2024 09:34:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/printk: Avoid the use of L as a length modifier
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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240723174129.67911-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: <20240723174129.67911-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 19:41, Andrew Cooper wrote:
> Coverity complains about it being invalid.  It turns out that it is a GCC-ism
> to treat ll and L equivalently.  C99 only permits L to mean long double.
> 
> Convert all uses of L in to alternatives, either l, ll or PRI.64 depending on
> the operand type.  This in turn removes some unnecessary casts which look to
> predate us having correct PRI* constants.

I'm certainly okay with switching to PRI.64 where appropriate. Switching to ll,
however, means longer string literals for no really good reason. We use all
sorts of GCC / GNU extensions; I don't see why we shouldn't be permitted to
also use this one. It's Coverity that wants to cope, imo.

Or, if we really meant to no longer use L, support for it should then imo also
be purged from vsnprintf().

> I'm disappointed at having to use %ll for __fix_to_virt() in apic.c and
> io_apic.c.  The expression ends up ULL because of the GB(64) in VMAP_VIRT_END,
> but can't really be changed without breaking 32bit builds of Xen.
> 
> One option might be to turn __fix_to_virt() into a proper function, but
> there's a lot of that infrastructure which should be dedup'd and not left to
> each arch to copy.

Maybe it doesn't need us going that far, as ...

> --- a/xen/arch/x86/apic.c
> +++ b/xen/arch/x86/apic.c
> @@ -938,7 +938,7 @@ void __init init_apic_mappings(void)
>          apic_phys = mp_lapic_addr;
>  
>      set_fixmap_nocache(FIX_APIC_BASE, apic_phys);
> -    apic_printk(APIC_VERBOSE, "mapped APIC to %08Lx (%08lx)\n", APIC_BASE,
> +    apic_printk(APIC_VERBOSE, "mapped APIC to %08llx (%08lx)\n", APIC_BASE,
>                  apic_phys);

... I wonder why we use __fix_to_virt() for APIC_BASE in the first place.
Using fix_to_virt() would look to be more logical, as all users cast to
a pointer anyway. Then it could simply be %p here.

> --- a/xen/arch/x86/cpu/intel.c
> +++ b/xen/arch/x86/cpu/intel.c
> @@ -441,7 +441,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
>              unsigned long long val = ecx;
>  
>              val *= ebx;
> -            printk("CPU%u: TSC: %u Hz * %u / %u = %Lu Hz\n",
> +            printk("CPU%u: TSC: %u Hz * %u / %u = %llu Hz\n",
>                     smp_processor_id(), ecx, ebx, eax, val / eax);
>          }

Maybe change val to be uint64_t instead? That's against what ./CODING_STYLE
calls for, but would be for a reason (to be able to use PRIu64) here.

> --- a/xen/arch/x86/cpu/mcheck/vmce.c
> +++ b/xen/arch/x86/cpu/mcheck/vmce.c
> @@ -71,7 +71,7 @@ int vmce_restore_vcpu(struct vcpu *v, const struct hvm_vmce_vcpu *ctxt)
>      if ( ctxt->caps & ~guest_mcg_cap & ~MCG_CAP_COUNT & ~MCG_CTL_P )
>      {
>          printk(XENLOG_G_ERR
> -               "%s restore: unsupported MCA capabilities %#"PRIx64" for %pv (supported: %#Lx)\n",
> +               "%s restore: unsupported MCA capabilities %#"PRIx64" for %pv (supported: %#llx)\n",
>                  is_hvm_vcpu(v) ? "HVM" : "PV", ctxt->caps,
>                  v, guest_mcg_cap & ~MCG_CAP_COUNT);

guest_mcg_cap is unsigned long and MCG_CAP_COUNT could as well use UL instead
of ULL, couldn't it?

> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> @@ -517,7 +517,7 @@ static int vmx_init_vmcs_config(bool bsp)
>          if ( (vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32)) >
>               PAGE_SIZE )
>          {
> -            printk("VMX: CPU%d VMCS size is too big (%Lu bytes)\n",
> +            printk("VMX: CPU%d VMCS size is too big (%llu bytes)\n",
>                     smp_processor_id(),
>                     vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32));
>              return -EINVAL;
> @@ -564,7 +564,7 @@ static int vmx_init_vmcs_config(bool bsp)
>          if ( (vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32)) !=
>               ((vmx_basic_msr & VMX_BASIC_VMCS_SIZE_MASK) >> 32) )
>          {
> -            printk("VMX: CPU%d unexpected VMCS size %Lu\n",
> +            printk("VMX: CPU%d unexpected VMCS size %llu\n",
>                     smp_processor_id(),
>                     vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32));
>              mismatch = 1;

Same here for VMX_BASIC_VMCS_SIZE_MASK. We leverage not doing 32-bit builds
anymore in exactly this way elsewhere.

> --- a/xen/arch/x86/io_apic.c
> +++ b/xen/arch/x86/io_apic.c
> @@ -2597,7 +2597,7 @@ static void __init ioapic_init_mappings(void)
>          }
>  
>          set_fixmap_nocache(idx, ioapic_phys);
> -        apic_printk(APIC_VERBOSE, "mapped IOAPIC to %08Lx (%08lx)\n",
> +        apic_printk(APIC_VERBOSE, "mapped IOAPIC to %08llx (%08lx)\n",
>                      __fix_to_virt(idx), ioapic_phys);

Like above, switch to using fix_to_virt() and %p?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 07:36:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 07:36:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763822.1174148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWWXa-00075x-82; Wed, 24 Jul 2024 07:36:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763822.1174148; Wed, 24 Jul 2024 07:36: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 1sWWXa-00075q-5K; Wed, 24 Jul 2024 07:36:02 +0000
Received: by outflank-mailman (input) for mailman id 763822;
 Wed, 24 Jul 2024 07:36: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWWXY-00075i-As
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 07:36:00 +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 5ed54a53-498f-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 09:35:59 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5a156557026so5788494a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 00:35: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
 4fb4d7f45d1cf-5a30c2f86d1sm8497859a12.73.2024.07.24.00.35.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 00:35: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: 5ed54a53-498f-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721806559; x=1722411359; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vxLouGrg9ZcI9cu6+DF6B6d1Zx02AGKqEtEN13EAkcc=;
        b=YaDbvf3hcdYeq1phFLfpPhwPBGB6x0BVGNQEwZDuZ1XFOfE6fCUDoIdTGAcq5dnpKy
         N3BjKRlVECR1dg495Nmi9T/GfV/JxtG2FUTSxSrfAs2OaZopWnOfS/l6vZbLdKbdrRCk
         F0974wbeeZRn1OcR03/WSrSdfo/PgntTgn3bt2mSW0/yvHc1RK+g6Y9PeXLNHB0ZNi3F
         wsKQ9Jf+sqrgz7zRjIbo9PCJSnZxdrry7Fdjzd1kBRxVvQfYQ2P4CU5Q2l5HViTeD5wI
         OctGC43/jNtcsPUbF4T1W0ZrOjMP6hollcU8BFJ6TM+5vOyBb7/LvTfLnBZ78H6zMX4U
         o9aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721806559; x=1722411359;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vxLouGrg9ZcI9cu6+DF6B6d1Zx02AGKqEtEN13EAkcc=;
        b=Oi0RV7Qkp5Qv+yPiit0GVSXKTBFjLhLFBWiv2RlPpgUrC00PXZF5sveRhVEw/fOrB2
         yOYK8JZieytPFmMKiWpe0RidgIc+0IbhOEUJ/GdwUxHh6S7W+VCS4K0KQV5cbjSqKupW
         Izg8UysFkezfKRW1sx5RtIH85v0T+3CinxYuNYZcSNTC1mBClGdCLIVqn3/w3abD/yNP
         7zS3Q1irio53tpUoYXDTFdRIFSZpZjHmz//F8n499+pl7gGPc69QR1l1nh0lgI554TkK
         cSHKFYiI00o/Aux1+JF3DCP3pRwY2ytlI21J/W5/z1dB+rGa0TMq8JyfQjh9D1QL/GHB
         czmw==
X-Gm-Message-State: AOJu0YxXY/gTx4XXma/d7z8TjVE4KgZybKMhZAvCHZBlGalMq7zVKGl9
	rNzxkLanrZbl/qxTN/QZu7AFXQKrgeYqNYoznS38L3GuraZHZrjtmTekMczcmA==
X-Google-Smtp-Source: AGHT+IHQ8vyC8yd9tXM7Z/BfbCWV7+lAX4wmy2bzzFp9ijgqkNJIlLRw425ovdpbL87crsjmBHajsQ==
X-Received: by 2002:a50:9ea6:0:b0:5a8:2f2b:d2d3 with SMTP id 4fb4d7f45d1cf-5a82f2bdb22mr4738320a12.37.1721806558816;
        Wed, 24 Jul 2024 00:35:58 -0700 (PDT)
Message-ID: <88004e00-9686-499c-beab-8fc9429645b0@suse.com>
Date: Wed, 24 Jul 2024 09:35:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] automation: add linker symbol name script
To: Nicola Vetrini <nicola.vetrini@bugseng.com>, victorm.lira@amd.com
Cc: xen-devel@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com,
 consulting@bugseng.com, simone.ballarin@bugseng.com
References: <06e4ad1126b8e9231bf6dcf88205857081968274.1721779872.git.victorm.lira@amd.com>
 <a382237f631d86292db349924a097e64@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: <a382237f631d86292db349924a097e64@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 08:27, Nicola Vetrini wrote:
> On 2024-07-24 02:18, victorm.lira@amd.com wrote:
>> --- /dev/null
>> +++ b/automation/eclair_analysis/stuff.txt
> 
> I wouldn't include the actual output in the patch. It' much better if I 
> have a script that produces a list of symbols, and then use that to 
> generate a configuration file right before the analysis.

+1

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 07:44:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 07:44:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763828.1174158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWWfl-0000WI-1k; Wed, 24 Jul 2024 07:44:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763828.1174158; Wed, 24 Jul 2024 07:44:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWWfk-0000WB-VM; Wed, 24 Jul 2024 07:44:28 +0000
Received: by outflank-mailman (input) for mailman id 763828;
 Wed, 24 Jul 2024 07:44:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWWfk-0000W5-GH
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 07:44:28 +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 8cf9ecc4-4990-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 09:44:26 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a7a8e73b29cso147406266b.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 00:44: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-a7ab17e8db5sm39574866b.123.2024.07.24.00.44.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 00:44: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: 8cf9ecc4-4990-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721807066; x=1722411866; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=F0nozimmj1fFiLCtwOAFz3+vcYAT/xjZFzLeWZ9UJzk=;
        b=QauCfnKy7cjH5HBx7e3NFN+xKWNmCbuBs69UFGt4mQIroi1eaVfA5Z9GUuG8CBumP7
         oMQ5ZLjtXHGL+OGsuK/HjTOZptLGK7NBpxOVn/Ihzc8gj3yj+TKesRFgml20dJd05+pI
         eAUeJKhe08p1V+IvMfx3snweOD7UpYxwZLIB/osADExVqepQe+I1Jn5nYRqnLVGjyPYZ
         kLCTNL77Qu4JKC5yvm5xShOhUfd5JwHs6OKEqpMlSC0cTxHu45mvooH5m35je+Lk/+Fq
         4wu3j+uFFSSXQyzgiX4oloMoIs/+rWZ4gz/jBBGUVGclLpR/pnkM77BMKp+v0gXHb7ZD
         Py6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721807066; x=1722411866;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F0nozimmj1fFiLCtwOAFz3+vcYAT/xjZFzLeWZ9UJzk=;
        b=sChcWfyJu3GMjITgaHLSKQuT18micWegDQkjiUKSWtfBnQNwXQnPjtuV/sq+loZRi9
         3ERy3Bp7lPiWAfW2lTXh2bHBhGbHqt9fe7X4uvEfAxcgKx/MHqEaVb0cNTIvRn02k3Ln
         sy80fw3ofP136Umib/FC9x8gQ0SDtOeNZBq2cbg++/v95W/+vwstbSbX5IP5o2j05Fvn
         4oR+2ea3HyKWaV7EAJJUNAXMmgj33wF+QAqZRa5YmnE68rDLCwssjBjvnCfr/mAcIpoS
         l86IcO8gRELwM2MobBFvUWmvWyWj3dRzpLU6f1Ra7OldzrvYH2JPa46b2K7zwBpHHzLj
         G+PA==
X-Forwarded-Encrypted: i=1; AJvYcCUuCxfetLfqRP7ZSvC1BHrapcgpH/Ym3isfhF2Pydq0MX/Ek8gc1lr4KhImolJEtsRkgbOkm0P8IZlsQo5RWj6eUF+z1ngFK5oN3NwAzw8=
X-Gm-Message-State: AOJu0Yz9Ikpiw4QQX+AU5wnFBIWxV3TVS1gsOjsVdLlnA6ZzxFOpjIUh
	53j2XOH7azxcZfzprcggsf5KxwLu3YgCVa/jjLXL5ShwdK80k26WpI1fCO4SdA==
X-Google-Smtp-Source: AGHT+IHbB98Vj/gKyMy9sA1SNaTIW393s4pFJ+byveIkKAuMgTXdOOPe3FhOZhRAfc6I1GCS9lSp1g==
X-Received: by 2002:a17:907:9720:b0:a77:cf09:9c5f with SMTP id a640c23a62f3a-a7aabba7270mr130955566b.37.1721807065615;
        Wed, 24 Jul 2024 00:44:25 -0700 (PDT)
Message-ID: <4468a02f-4d8c-4b94-8af6-cd1751cd0a89@suse.com>
Date: Wed, 24 Jul 2024 09:44:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] automation: add linker symbol name script
To: victorm.lira@amd.com
Cc: Stefano Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com,
 consulting@bugseng.com, simone.ballarin@bugseng.com,
 xen-devel@lists.xenproject.org
References: <06e4ad1126b8e9231bf6dcf88205857081968274.1721779872.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: <06e4ad1126b8e9231bf6dcf88205857081968274.1721779872.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 02:18, victorm.lira@amd.com wrote:
> --- /dev/null
> +++ b/automation/eclair_analysis/linker_symbols.sh

Nit: In names of new files we prefer - over _.

> @@ -0,0 +1,41 @@
> +#!/bin/bash

Can we rely on bash to be there and at that location? As you using any
bash-isms in the script which cannot be avoided?

> +# Stop immediately if any executed command has exit status different from 0.
> +set -e
> +
> +# Extract linker symbol names (except those starting with ".") from assignments.
> +
> +script_name=`basename "$0"`

Personally I consider $(...) more readable. What I'm strictly going to
request is that within a script you at least be consistent, seeing ...

> +script_dir="$(
> +  cd "$(dirname "$0")"
> +  echo "${PWD}"
> +)"

... e.g. this.

> +src_dir="${script_dir}/../.."
> +
> +usage() {
> +  echo "Usage: ${script_name} <ARM64|X86_64>"

Why require arguments that then ...

> +}
> +
> +if [ $# -ne 1 ]; then
> +  usage
> +  exit 1
> +fi
> +
> +if [ "$1" == "X86_64" ]; then
> +    filepaths=(
> +        "${src_dir}/xen/arch/x86/xen.lds.S"
> +    )
> +elif [ "$1" == "ARM64" ]; then
> +    filepaths=(
> +        "${src_dir}/xen/arch/arm/xen.lds.S"
> +    )

... you need to special case? What's wrong with having the arguments be
"arm" or "x86"?

However, you also cannot use xen.lds.S here, as that may yield incomplete
results. This script needs running _after_ a successful build, on the
generated xen.lds.

> +else
> +    usage
> +    exit 1
> +fi
> +
> +(
> +    for file in "${filepaths[@]}"
> +    do
> +        sed -n "s/^\s*\([a-zA-Z_][a-zA-Z_0-9.\-]*\)\s*=.*;\s*$/\1/p" $filepaths
> +    done
> +)

Why the extra parentheses? And why a loop and filepaths being an array,
when there's guaranteed to be only one file?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 07:56:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 07:56:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763836.1174168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWWrd-0002es-49; Wed, 24 Jul 2024 07:56:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763836.1174168; Wed, 24 Jul 2024 07:56: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 1sWWrd-0002el-18; Wed, 24 Jul 2024 07:56:45 +0000
Received: by outflank-mailman (input) for mailman id 763836;
 Wed, 24 Jul 2024 07:56: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWWrb-0002dO-Vm
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 07:56:43 +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 43809e0e-4992-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 09:56:41 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a7ab5fc975dso19691166b.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 00:56: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-a7a92dddccdsm162227466b.79.2024.07.24.00.56.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 00:56: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: 43809e0e-4992-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721807801; x=1722412601; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Zg5TTElUNPOWDRdPE4JFJtFqpfHGgOG+47kNLVUVaYk=;
        b=QCIK2ZvZeLEQysOaGV1WGplYXvhudH2mzwH6yBGTfZTy3KciYV2DE4O9TBHlPDI6na
         C8k5K9ZOBbbr/MOLu2LJuKsSBGRRRWESb5UtY+qikdLLUqh6sdOFoe2HHj6auP5FyZZK
         Rh6EJ73KAHlLBqX6VsrxzXjd6bjnkVwqUJ8r0fPPBJMvyd82ItlVyMkimR9eNzyFIKJb
         U+5u1e8srjQIeUPDHdBqakrmzc337qSpoAGS/92ezvADTAcL2IGrFt1+VD77LpYF6ZCp
         C2uYhvSqjqkytlkqyn4hOwjngYEqHvkUR1bI4F2R/PYFbeZ1Uus00hi08F1+AY+owpAT
         cOyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721807801; x=1722412601;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Zg5TTElUNPOWDRdPE4JFJtFqpfHGgOG+47kNLVUVaYk=;
        b=PBCHhTZWyuNACjValEhh2d8/U98Tjvwr32O5XO6sOMhff85W8xMEj5FUgG8BL7QZla
         strtzibwWUpnM4B1LZrIdNtVry/REqbFk8WqLjZ1Q1xmitf6I9+4vhhgHFDRx9Si6eM2
         bio1tN2ZTrQodZfXwExxfA3qL8R9DEFkbrKDtOiGRg4BkqgDL15r7wezMaR0HMRFAuOh
         cOWNiJLK2nv+J0UG/UPi8YOQOU01ZP9duVN5uAEMhgoQRhW86eUJWKdb1J/hAN2CBUih
         7Qw/CqwIxI28yDv/aa18hZQg4CMB7UHanN+UDrh6RFIzSoSdBkaWJrnLKegBAlgjjySs
         twUg==
X-Forwarded-Encrypted: i=1; AJvYcCUp5B0CDV+fM5OzONNXrjPWvxVsbebvDC20L9KZShg0UkisgzJRpA/vIigo20s0sSfJJnjG6I28IzDnaIOul09WHzNCBK4CWlTZ1j8y0u4=
X-Gm-Message-State: AOJu0YwjQ3yu9lsYLT3VgDQqLdoMZ7mmzrqex678TRsY34dVh1WT0Egd
	XiWiOc268cK9WVvlLA4WzWaYyyP/JwykCZiYcY7FPi15o4v10OXEeQJ3deHNVA==
X-Google-Smtp-Source: AGHT+IE9fxggadT2mF0F48MFKOLZBPQtE3LJO+wNeyTGjk2T3RiPKYops5mNJvl2dUXEIusfji6AZQ==
X-Received: by 2002:a17:907:7f0f:b0:a7a:a5ed:43d0 with SMTP id a640c23a62f3a-a7aa5ed4babmr194344766b.47.1721807801325;
        Wed, 24 Jul 2024 00:56:41 -0700 (PDT)
Message-ID: <14104805-0f0e-4741-877f-24afffc816ce@suse.com>
Date: Wed, 24 Jul 2024 09:56:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/IO-APIC: Improve APIC_TMR accesses
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: <20240723203701.208018-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: <20240723203701.208018-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 22:37, Andrew Cooper wrote:
> XenServer's instance of coverity complains of OVERFLOW_BEFORE_WIDEN in
> mask_and_ack_level_ioapic_irq(), which is ultimately because of v being
> unsigned long, and (1U << ...) being 32 bits.

Which of course is bogus when the shift amount is masked down to 5 bits.
May I ask that you express this somehow in the wording.

> Introduce a apic_tmr_read() helper like we already have for ISR and IRR, and
> use it to remove the opencoded access logic.  Introduce an is_level boolean to
> improve the legibility of the surrounding logic.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

The change is an improvement irrespective of Coverity's anomaly, so:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 07:57:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 07:57:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763842.1174179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWWsF-0003Et-G6; Wed, 24 Jul 2024 07:57:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763842.1174179; Wed, 24 Jul 2024 07: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 1sWWsF-0003Em-BC; Wed, 24 Jul 2024 07:57:23 +0000
Received: by outflank-mailman (input) for mailman id 763842;
 Wed, 24 Jul 2024 07: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWWsE-0002dO-Dg
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 07:57:22 +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 5abad9b7-4992-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 09:57:20 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-595856e2336so1083774a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 00: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
 4fb4d7f45d1cf-5a30a4d7127sm8647432a12.3.2024.07.24.00.57.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 00:57: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: 5abad9b7-4992-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721807840; x=1722412640; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=c2f4P9QdyyPTeUIlYdGXbyUGoQGCVV0wq54e53flh5A=;
        b=DLj+6sfVRPTbrH4CWppblUPTyOVoVsFnwTqUfUBsW9E06ZzkClnBmFkvWqxUzUafZe
         eCWzGJZhi5DPWqQdxlpwOZU/IxBJo+KXB96TbdOBAdSarQvxttoM/A0+j//8oyeYINQM
         8CX8zsKLMLM4o0SDw3B6XEib0YnvxhIFLl+aL1AN7tRL3DZBjnyhuTNKsjSuPNOscXjn
         xWO5AcfIDF/I1t9y7OPhIbZRE30S/mPu1nmoMtfEtMtreEp1zSw+KqyRYSMbblTEj1Ct
         cYgbDhiUStTZrhZMpFUakV0DWGU/mMWF9Qqm8VqXCHXsi/MSDNQ6MHbaLsIUyg1ZkaYl
         OpSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721807840; x=1722412640;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c2f4P9QdyyPTeUIlYdGXbyUGoQGCVV0wq54e53flh5A=;
        b=KlhTU3/7+KWV6rZRhPTri3AnyV/u6O64iiET/BRGAgmGJWPv/xhhcGbzetVF/Hp7lM
         j9CHoTC1vdIYEPNX9qPZXCGFG5dlV7f1UHptbGC/gcNtIFcit2Z1TmRHBrIp8s2sNi8o
         781PTwDf3F3Pv0nT4cV81QV/aIusUiZenrMoZWcPT3oVyservti5wC7/ZdfosJG3YKrW
         NtCK+pyxqqjoyse8aXfM7J/xibAfPjjV5nh8CKlTEf67VorYZCKN+3xfmmm1DYhUWq6G
         FaBjJ/L9B9SEHaxhO8S9J24z/cURRF8+UnGsfn0/0H6pWGNgLAorrwNA8UN3hr2gJEb0
         z3fg==
X-Forwarded-Encrypted: i=1; AJvYcCWuLoSx5kYRKlf298u2XT7Yv1qB0hSJvOBmHVOfxZ3fOwyw2788Y7eGfo/tJWfnrG14U4hj7WpKOO2NZwRznuY0KkM1ekbbdLT/F0bMLs4=
X-Gm-Message-State: AOJu0Yy5mx5x9vZ+XXwwNH3jJd7+mSWc15FPAYS202JiC0xDBVYbyWUK
	Y5kYDxBkbelZ6+TizfTqEtyQWJ2cNdoHWtWavvbyeeI9Arm+3KTMs1LVmuU4sSwMYOr6pNew99E
	=
X-Google-Smtp-Source: AGHT+IG9wbvZyw14p9ccoNq5OAXVIuwe+NW6POFgu1pfiPdtSK/sYsgiZmLKLuB/PkYE8PFkZNs4sw==
X-Received: by 2002:a05:6402:2483:b0:585:412f:ff8f with SMTP id 4fb4d7f45d1cf-5ab19dccf09mr1240583a12.4.1721807840360;
        Wed, 24 Jul 2024 00:57:20 -0700 (PDT)
Message-ID: <68b1f03e-505f-43b1-8203-272508bae52b@suse.com>
Date: Wed, 24 Jul 2024 09:57:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/APIC: Rewrite apic_isr_read() to match
 apic_{tmr,irr}_read()
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: <20240723211202.267212-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: <20240723211202.267212-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 23:12, Andrew Cooper wrote:
> This allows for marginally better code generation including the use of BT
> rather than SHR/TEST.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Wed Jul 24 08:00:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 08:00:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763855.1174192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWWvf-0005LO-19; Wed, 24 Jul 2024 08:00:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763855.1174192; Wed, 24 Jul 2024 08: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 1sWWve-0005LH-Ti; Wed, 24 Jul 2024 08:00:54 +0000
Received: by outflank-mailman (input) for mailman id 763855;
 Wed, 24 Jul 2024 08:00:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWWvd-0004ld-C3
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 08:00:53 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d917a3ec-4992-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 10:00:52 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52efdf02d13so5859923e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 01:00: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
 a640c23a62f3a-a7a3c922cecsm617999766b.161.2024.07.24.01.00.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 01: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: d917a3ec-4992-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721808052; x=1722412852; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=e864SaE6RLYrcS9xg0pzLY8iOuy2IgLhlRL59RW/wBM=;
        b=Oz3QWRusxEJ8rDXFWnTksGwna9zhzybjWYXgsAcGO4JdVWvfv7mf4C7mF3FjPsA7lp
         1Wg1BirMi2ooXn9HTSrYHrvQN2yrt8KQTVckVEN0lZF/qHBdvDhv6H4b73tPb4ffePM6
         +JqXu8vLabJXcEwYmb32x60LFR6MhQUKIZR8zd8xqHNeRcCUsgKAi/k88B1kRSwPIPjS
         2ybCTJjH8PwH6JWeQCfiqeSg7bhmrWy4g7I86uFFKH3/9/Lj4NSwNnnbePensH5pcuJA
         oicT5l48C2yrvNGw7GhNbaADAFP69uc3/ct9T8txqgMGW2u81FASvUgT2ePP8YIFwBMI
         A49w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721808052; x=1722412852;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e864SaE6RLYrcS9xg0pzLY8iOuy2IgLhlRL59RW/wBM=;
        b=Lva39hg3K+4LMi1hGTNm1NACTWN7VhOL2DLBfE+UC/TFOZOqzi1VOl9Q+Dkb3qguB+
         2JxV5080Ln9fCgII0fbt4xBhVWPvul2HDgT/24xbsh6Gtmua8B+809aJDqbgKVg6bLsG
         FN30A2YQj9OOVCmH3i/i2yxWQTU5JjA2HggH1qi/2x/V9GeG0gUhrEvTCFPv+GX40bqr
         COoaEDTW87IsKOWjScldVR3E5Ja2XpbwFHlKgRNal7Ua6sMG9xcg5Pqg6qwhAd4Vc7yH
         8X/3t62nIaUZUoPTZPp+bMUUdN/X8MZgDiiuQeXgcS5dv8hOo4bwup4gFgRoomIgh5o6
         8LHQ==
X-Forwarded-Encrypted: i=1; AJvYcCVYRkote4CElE/CsVwqBJMDZvnBS0aByCET8j4xCE5udeH/fHXWo0NpbTx4/VfZE8Q2LOlPIqr4BRlZ4QqX8cGcx5yTjeHjELi57MevHLo=
X-Gm-Message-State: AOJu0Yx7R/6tsFkp9a9BVViKLEQxks3eNtXgoYR6n4rOgP1i2Y4QPm/M
	dz7l99oSkkHKHP9YlHdMRtPz1+C9f3enJgqjhQWkQOGvsZ5PqyuyKIqgguK9X5ewR8YBh6wBEaU
	=
X-Google-Smtp-Source: AGHT+IGGowLoTSYCS+Q72628AekdZTtmuZ0EhquKE33QtrAaTtfr6qVza1QX14Yt0tm4FAaFqi8u6Q==
X-Received: by 2002:a05:6512:10d5:b0:52c:e05f:9052 with SMTP id 2adb3069b0e04-52fcda9b503mr1453227e87.47.1721808046929;
        Wed, 24 Jul 2024 01:00:46 -0700 (PDT)
Message-ID: <80b22fb7-f4e7-44ce-9693-db0c84c5aca5@suse.com>
Date: Wed, 24 Jul 2024 10:00:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/APIC: Change APIC reg types to unsigned int
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: <20240723210500.248261-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: <20240723210500.248261-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 23:05, Andrew Cooper wrote:
> They're all within a 12 bit range of their respective bases, and this prevents
> all the MSR coordinates being calculated in %rcx.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> There's one unpleasant surprise hidden:
> 
>   add/remove: 0/0 grow/shrink: 2/6 up/down: 18/-99 (-81)
>   Function                                     old     new   delta
>   trace_exit_reason.part                       229     245     +16
>   check_for_unexpected_msi                      73      75      +2
>   fixup_irqs                                  1239    1237      -2
>   lapic_resume                                 860     844     -16
>   irq_move_cleanup_interrupt                   683     667     -16
>   intel_mcheck_init                           1840    1824     -16
>   setup_local_APIC                             985     968     -17
>   clear_local_APIC                            1141    1109     -32
> 
> This causes check_for_unexpected_msi() to gain a CLTQ sign extending reg
> before adding it to APIC_BASE.  Furthermore it retains it's SAR from the start
> of apic_isr_read().
> 
> If the vector parameter changes from uint8_t to unsigned int, both the CLTQ
> and SAR go away and and are replaced with regular unsigned logic.
> 
> (uint8_t) & ~0x1f undergoes promotion to int, but can't be negative due to
> it's range, and I'm quite surprised that GCC-12 can't figure this out.

Odd indeed. But certainly no the only odd thing in code generation.

> --- a/xen/arch/x86/include/asm/apic.h
> +++ b/xen/arch/x86/include/asm/apic.h
> @@ -49,12 +49,12 @@ const struct genapic *apic_x2apic_probe(void);
>   * Basic functions accessing APICs.
>   */
>  
> -static inline void apic_mem_write(unsigned long reg, u32 v)
> +static inline void apic_mem_write(unsigned int reg, u32 v)

Mind me asking that on lines you touch anyway you also change u32 to
uint32_t?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 08:02:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 08:02:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763863.1174202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWWwj-0005rT-AO; Wed, 24 Jul 2024 08:02:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763863.1174202; Wed, 24 Jul 2024 08: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 1sWWwj-0005rM-7Q; Wed, 24 Jul 2024 08:02:01 +0000
Received: by outflank-mailman (input) for mailman id 763863;
 Wed, 24 Jul 2024 08: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=Rh+e=OY=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWWwi-0005KI-OP
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 08:02:00 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 009e2cf8-4993-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 10:01:59 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2ef283c58f4so40303861fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 01:01:59 -0700 (PDT)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-427f937aac1sm17373635e9.11.2024.07.24.01.01.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 01:01: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: 009e2cf8-4993-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721808118; x=1722412918; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FMtjqeS9qCuN178jGuhz9jycjtdh32KlfCJNMM9kOqw=;
        b=XEBpjLxXSQ05hFbVjUPR7WZCfh7VkYZn/OgdJnVtnzcvqOfvYGAWBKTn67H/IinCWs
         97sWuo9OlczmgDxatMd42RLCNFGJ9oDWGV1P4pyLPD2T/SBPsx9/7mkLSJnatJKitusq
         TARE0nnr+APCuUTDBMc+J0vkcDcHZsrufbdfU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721808118; x=1722412918;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FMtjqeS9qCuN178jGuhz9jycjtdh32KlfCJNMM9kOqw=;
        b=C44G5QkNMqWa8Cg1O8QbqJc/EZrd36biHszDtv37NsYHcYRVaDMWMWY4vAaPZvASyg
         bKd4zFjfbnQggr+bL7rLoDqQ+JOfxMmEXn8h3lcg8YH2/eqlpLA5BcmuxQ8I/UEMwEh+
         DBHAX23a2NNexcH1leYrfEddJagNn6sMN2yiHRNTtBvOsvJpFEQ40eY7Hs7Ff1Suhs6R
         4316LXCW8GAA/H3mixyfVsVKE0bBmk/SG+034TRt+mD3S0kzU9xufhJ0BYEsLgIVVsJ0
         ffiw1cqlaOIfBGkaeU5lPlpzaIxwCKQEFeu5xje/k842d9J2NoNBEdNEv5UmFm6bF2dh
         L3Dw==
X-Gm-Message-State: AOJu0YybuFTZ+tW3s5OC5XtAEuoftl+0s//tWUDsC4yR8Ot8LD85VcGZ
	fluCOYiqxrxfv/G8gAT2T6ECu9v8jQkZPbVzP4iq1na8hgjpMILT6hzR8+LjflI=
X-Google-Smtp-Source: AGHT+IEt1nM4FyIrR5teQWl7diGloh6nUQV7IoFZDFODJg6vJdJoLL5+m3mzgeqcHA2E1Bvp0e3+PA==
X-Received: by 2002:a2e:7212:0:b0:2ef:2c4b:b799 with SMTP id 38308e7fff4ca-2ef2c4bb8d6mr61857391fa.28.1721808118404;
        Wed, 24 Jul 2024 01:01:58 -0700 (PDT)
Message-ID: <69c5a7d8-7d71-4bbe-81f2-5f8a07e0d5e8@citrix.com>
Date: Wed, 24 Jul 2024 09:01:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/6] tools/libxs: Fix SIGPIPE handling issues
To: Jan Beulich <jbeulich@suse.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
References: <20240718164842.3650702-1-andrew.cooper3@citrix.com>
 <4758a806-712f-4ec2-97e8-a31b493b2c31@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: <4758a806-712f-4ec2-97e8-a31b493b2c31@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/07/2024 7:58 am, Jan Beulich wrote:
> On 18.07.2024 18:48, Andrew Cooper wrote:
>> While the purpose of this series is patch 6, it has a side effect of reducing
>> the number of system calls substantally.
>>
>> Using a strace of test-xenstore as an example, we go from this:
>>
>>   rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fda8278e2f0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fda8278e2f0}, 8) = 0
>>   write(3, "\v\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0", 16) = 16
>>   write(3, "xenstore-test/502673/a\0", 23) = 23
>>   write(3, "a", 1)                        = 1
>>   read(3, "\v\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0", 16) = 16
>>   read(3, "OK\0", 3)                      = 3
>>   rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fda8278e2f0}, NULL, 8) = 0
>>
>> down to this:
>>
>>   sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\v\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0", iov_len=16}, {iov_base="xenstore-test/504021/a\0", iov_len=23}, {iov_base="a", iov_len=1}], msg_iovlen=3, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 40
>>   read(3, "\v\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0", 16) = 16
>>   read(3, "OK\0", 3)                      = 3
>>
>>
>> I.e., it removes 2x rt_sigaction(), and turns all write()'s into a single
>> writev() or sendmsg().
>>
>>
>> Reads are a little more problematic to deal with.  Xenstored will produce a
>> full package basically in one go, but libxenstore's reading is horrbly
>> complicated by virtue of it being completely different depending on whether
>> xs_watch() has created a secondary read thread or not.
>>
>> Andrew Cooper (6):
>>   tools/libxs: Fix length check in xs_talkv()
>>   tools/libxs: Rework xs_talkv() to take xsd_sockmsg within the iovec
>>   tools/libxs: Rationalise the definition of struct xs_handle
>>   tools/libxs: Track whether we're using a socket or file
>>   tools/libxs: Use writev()/sendmsg() instead of write()
>>   tools/libxs: Stop playing with SIGPIPE
> The title of the entire series containing "Fix" vs there being no single
> Fixes: tag throughout, afaics, leave unclear to me whether any or all of
> this work wants/needs backporting. Please clarify.

I was on the fence about whether I should have used Fixes: (2005 commit)
in patch 6 or not.

Also I've had a spectacularly bad run of luck with the CLOEXEC fixes so
leaving them to bake for a little longer in staging is no bad thing. 
That said, I am likely to backport them into the patchqueue imminently.

Personally, I think it is very buggy for libxenstore to play with
SIGPIPE, but it also came from reading the strace of the CLOEXEC fixes
and thinking "well that's clearly broken too" rather than from a real
SIGPIPE problem.

~Andrew

P.S. Then again, the Xen libraries all get away with murder doing things
that libraries must never do...  I think it's still unforgivable that
libxentoollog adjusts stdout/stderr if you pass NULL into
xc_open_handle(), and that we have 5 different trivial few-kb libraries
which are co-dependent on each other when it should be a single one.


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 08:28:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 08:28:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.763992.1174256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWXMC-00026D-TY; Wed, 24 Jul 2024 08:28:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 763992.1174256; Wed, 24 Jul 2024 08: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 1sWXMC-000266-Pn; Wed, 24 Jul 2024 08:28:20 +0000
Received: by outflank-mailman (input) for mailman id 763992;
 Wed, 24 Jul 2024 08: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=23fT=OY=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWXMB-000260-Fx
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 08: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 ad6bfa07-4996-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 10:28:17 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4266edee10cso43456025e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 01:28:17 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-427f93aba72sm18005895e9.37.2024.07.24.01.28.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 01: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: ad6bfa07-4996-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721809697; x=1722414497; 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=pKoqUri68laBZ8jnjxxBrIZrLh5Z5m2ePL2hu34WOEw=;
        b=Tjszsb3gLikVhUF+dAdHa+1WLv0jFe+Eg7wi8dXNWHKllUjDTiBKGq9G796Tr12yCX
         g1B44tcel8IhxvOzJ8kwvnb8zvRWY685BHl9O+VGjy11RD8qfusCNFDiH1ItDQaIxxlm
         TReHFdKx0KY1VrUy/m/ZDMiPFZD2Alb1sEgLU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721809697; x=1722414497;
        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=pKoqUri68laBZ8jnjxxBrIZrLh5Z5m2ePL2hu34WOEw=;
        b=KBf2NxDDqMg3k3/ZjKUcCXlNAU+AkiN2l7hZE59GB45IPd3o47x5CZA1xAKdeyAeqp
         aL0roMckYgg2eBMR58l7RNt3j24oz/O4RO41650CBbKpo63wZ+UMAGkBtyZa2RIfxqIj
         4Aq1nBaVXvduzIflXWhjh+lF4UCWM9JKymIZUxS3XP92DIkQAjA9RZ7sQQVrSccsv7cp
         QPKX8qG+2pagErXhGEWMu9eeH+7Ov2J12Lqlf0wFSqIj6qzrAxYvCCCXg4+RoV5SIyW5
         wTgnFe5TQsX1Lvuefb9/q82Y06ShTz59nDf/A4nyjMhGxGdTkKpm+6gohsJ2vQis4481
         acrw==
X-Forwarded-Encrypted: i=1; AJvYcCU0giXvfYBi4342EhVufQ/1m0/A+W3bndOgF1BeUvVx/vPM2DiUkPbCbaYi0Y/hd/JDDEgXRn1Ay5jSkpnYCmQgR8SSMHCvLsS4OFjCoLc=
X-Gm-Message-State: AOJu0YxufTT3/mP4oTSFEmyVIPAYF56KI3wl55PJa5ji30cX+tfs21av
	k4uxI9NSmoENCTY5D3t+59PVLedE7N+ezpj8cAIsopLHNylECvSZOc0tCYrueys=
X-Google-Smtp-Source: AGHT+IEQiTjnPE/OA0TRCY0TE+B0rHDjebD4cAUoXK3ZmWsEN6s6TtwiI8PDW+tNkcLo09qgCtjd+A==
X-Received: by 2002:a05:600c:1c21:b0:426:6b47:290b with SMTP id 5b1f17b1804b1-427f95ad5b3mr9549595e9.28.1721809696545;
        Wed, 24 Jul 2024 01:28:16 -0700 (PDT)
Date: Wed, 24 Jul 2024 10:28:14 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19] x86/altcall: fix clang code-gen when using
 altcall in loop constructs
Message-ID: <ZqC7Hn8R6Mkyqtpl@macbook>
References: <20240723093117.99487-1-roger.pau@citrix.com>
 <D2X13ED477J8.25JRFH9VEW33O@cloud.com>
 <Zp_VuwxqH3Mii8_W@macbook>
 <D2X237Y7T92R.1VVSBS9MCJOFW@cloud.com>
 <7a5da6ce-0ef0-4666-a5c4-44383469f67e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7a5da6ce-0ef0-4666-a5c4-44383469f67e@suse.com>

On Wed, Jul 24, 2024 at 08:39:05AM +0200, Jan Beulich wrote:
> On 23.07.2024 18:24, Alejandro Vallejo wrote:
> > On Tue Jul 23, 2024 at 5:09 PM BST, Roger Pau Monné wrote:
> >> On Tue, Jul 23, 2024 at 04:37:12PM +0100, Alejandro Vallejo wrote:
> >>> On Tue Jul 23, 2024 at 10:31 AM BST, Roger Pau Monne wrote:
> >>>> --- a/xen/arch/x86/include/asm/alternative.h
> >>>> +++ b/xen/arch/x86/include/asm/alternative.h
> >>>> @@ -185,10 +185,10 @@ extern void alternative_branches(void);
> >>>>   */
> >>>>  #define ALT_CALL_ARG(arg, n)                                            \
> >>>>      register union {                                                    \
> >>>> -        typeof(arg) e;                                                  \
> >>>> +        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> >>>>          unsigned long r;                                                \
> >>>>      } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
> >>>> -        .e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })   \
> >>>> +        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> >>>>      }
> >>>>  #else
> >>>>  #define ALT_CALL_ARG(arg, n) \
> >>>
> >>> Don't we want BUILD_BUG_ON(sizeof(long) % sizeof(arg) == 0) instead?
> >>
> >> I think you meant BUILD_BUG_ON(sizeof(long) % sizeof(arg) != 0)?
> > 
> > Bah, yes. I wrote it as a COMPILE_ASSERT().
> > 
> >>
> >>> Otherwise
> >>> odd sizes will cause the wrong union size to prevail, and while I can't see
> >>> today how those might come to happen there's Murphy's law.
> >>
> >> The overall union size would still be fine, because it has the
> >> unsigned long element, it's just that the array won't cover all the
> >> space assigned to the long member?
> > 
> > I explained myself poorly. If the current BUILD_BUG_ON() stays as-is that's
> > right, but...
> > 
> >>
> >> IOW if sizeof(arg) == 7, then we would define an array with only 1
> >> element, which won't make the size of the union change, but won't
> >> cover the same space that's used by the long member.
> > 
> > ... I thought the point of the patch was to cover the full union with the
> > array, and not just a subset. My proposed alternative merely tries to ensure
> > the argument is always a submultiple in size of a long so the array is always a
> > perfect match.

I would be fine with the adjusted BUILD_BUG_ON(), but if we change the
instance for clang we should also update the BUILD_BUG_ON() used on
the gcc counterpart so they both match.  That might be undesirable
however since gcc doesn't exhibit any of those bugs, and hence
shouldn't have such constraints.

> Question is whether there's an issue with odd sized values in Clang. I
> wouldn't want to exclude such (admittedly somewhat exotic) uses "just
> in case". My understanding here is that the issue the patch addresses
> is not merely the treatment of the union by Clang, but the combination
> thereof with it violating the psABI when it comes to passing bool
> around.

So there are at least two issues, one is the lack of truncation of
register value done by the callee, which is a psABI violation.  The
other is clang not resetting the high bits of the register when the
altcall is inside a loop construct.  In the godbolt example provided
the high bits of %rdi are not cleared between loops.  This last issue
would also be 'fixed' if clang implemented the psABI properly and
truncated the register at the callee.

I've given a try in godbolt, and odd structure sizes seem to be
affected:

https://godbolt.org/z/778YsoWsn

We have no usages of such structures in Xen so far.

The only way I've found to cope with this is to use something like:

#define ALT_CALL_ARG(arg, n)                                            \
    union {                                                             \
        typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)];  \
        unsigned long r;                                                \
    } a ## n ## __  = {                                                 \
        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
    };                                                                  \
    register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =      \
        a ## n ## __.r

An oversized array that ensures all the space of the long is covered
by the array, but then we need an extra variable, as we would
otherwise require modifying ALT_CALL{0..6}_OUT to use aX_.r instead of
aX_.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 08:41:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 08:41:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764001.1174266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWXZF-0004ps-4Z; Wed, 24 Jul 2024 08:41:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764001.1174266; Wed, 24 Jul 2024 08: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 1sWXZF-0004pl-19; Wed, 24 Jul 2024 08:41:49 +0000
Received: by outflank-mailman (input) for mailman id 764001;
 Wed, 24 Jul 2024 08:41: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWXZD-0004pf-W2
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 08:41:47 +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 8f19ebe4-4998-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 10:41:45 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a7aada2358fso105218866b.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 01:41: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
 a640c23a62f3a-a7a3c786162sm629289766b.18.2024.07.24.01.41.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 01: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: 8f19ebe4-4998-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721810505; x=1722415305; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oMHZbGhqlChhbKXjQggAVAlCh5PZB2DlKGGnDf22Eyk=;
        b=W8z8rzPqOoFM+j1qOUVBrWd9rF4OKxSA4twwC7Y8yQEqP+cmgoMMlLWMXTvsTIdJBL
         x6asj1zpOMHLfOYKEJ1eVAPXANKnqiVxew7DSwiZnXlvpX2F/Y626wfq58SDuM8jd5Ol
         iO3Zsaq+/lMJMBtcydtTilAbgcjGNcelbYyzx+wQ9MPOaIFKVU5l6u6GLwRQ6yiJWBXB
         c9lxN7mETZOKHn8SHZl2z7A8aeQQvwxz43RDxZl5V96/SFTKlXC2qFocIRwRq49NEuwl
         qwOEjepF0KrM80t7KrPlAXfZZsWmQp0EmWNzYB2UQQ20y3JTa40kkToL0sRonx6l9t4d
         vCnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721810505; x=1722415305;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oMHZbGhqlChhbKXjQggAVAlCh5PZB2DlKGGnDf22Eyk=;
        b=N2V1SILK2ehgGLSw+n19lKrC7WpTLpPLPb4aVPkzspVyhZKbGneC782P4vsIuKqEaZ
         hu9HbcsheZAocihGhAxYyb7VSA17QBcuozcNo3lzemNgdmd/EwxtLTpLEi3jyG2nD/CV
         +Pap/KBnDIRiKHdKXmxl5aMlFlP0xo6vhW9w7oeF4wakdtEUktzsEoi6kLrSkDyH+tz6
         Q/cHcf0a+HZwP0FQDXVTw01Xa8m/5ZH3reHrqw8ra/ZWf6+qxZGwCxIkqSyaObOKd8YE
         VOV4gWMskMGvj7gSGkfDFX3pvR8qouAxH0yttQLnfquK4hjDQ00Ra7MsoFD7e9fcg3oV
         iwKQ==
X-Forwarded-Encrypted: i=1; AJvYcCXWeoncaE/B5HAece7Ybve1EiJLQT5n1/0MKO52NrDkUnpGnANoPO32h7vb0w7ippFUrqEgfzIYL+Wr5jJHWKVNlDS4CVX93iKSMvnzBQQ=
X-Gm-Message-State: AOJu0YwV9KapLFYaFwSaCGgcnwcxcnSlGNfjGbipJyxfepc6Hs9zlR5N
	In60/SV4FrLUSShSZgGLHqLTPyU0XDxS1OD+Y0jMtQ+30dtzhxiuJk9lf+KVeA==
X-Google-Smtp-Source: AGHT+IFI2JOKHlsU5JfRmnGGOHYeuzXYgSmiq8/E95gFCnMpnn0ALdRHhXAlHS25QD2gBPWRZU+OSA==
X-Received: by 2002:a17:906:eece:b0:a7a:a763:842e with SMTP id a640c23a62f3a-a7ab2e48c70mr103165766b.13.1721810505056;
        Wed, 24 Jul 2024 01:41:45 -0700 (PDT)
Message-ID: <4a1bae1e-16d2-4536-b69a-1fff8179ee86@suse.com>
Date: Wed, 24 Jul 2024 10:41:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] x86/altcall: fix clang code-gen when using
 altcall in loop constructs
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240723093117.99487-1-roger.pau@citrix.com>
 <D2X13ED477J8.25JRFH9VEW33O@cloud.com> <Zp_VuwxqH3Mii8_W@macbook>
 <D2X237Y7T92R.1VVSBS9MCJOFW@cloud.com>
 <7a5da6ce-0ef0-4666-a5c4-44383469f67e@suse.com> <ZqC7Hn8R6Mkyqtpl@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZqC7Hn8R6Mkyqtpl@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.07.2024 10:28, Roger Pau Monné wrote:
> The only way I've found to cope with this is to use something like:
> 
> #define ALT_CALL_ARG(arg, n)                                            \
>     union {                                                             \
>         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)];  \
>         unsigned long r;                                                \
>     } a ## n ## __  = {                                                 \
>         .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
>     };                                                                  \
>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =      \
>         a ## n ## __.r
> 
> An oversized array that ensures all the space of the long is covered
> by the array, but then we need an extra variable, as we would
> otherwise require modifying ALT_CALL{0..6}_OUT to use aX_.r instead of
> aX_.

I don't think we need to over-size the array. It just gets yet a little
more complex then:

#define ALT_CALL_ARG(arg, n)                                            \
    register union {                                                    \
        struct {                                                        \
            typeof(arg) e;                                              \
            char pad[sizeof(long) - sizeof(arg)];                       \
        } s;                                                            \
        unsigned long r;                                                \
    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
        .s.e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); }) \
    }

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 09:13:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 09:13:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764010.1174276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWY3f-0000SG-Eh; Wed, 24 Jul 2024 09:13:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764010.1174276; Wed, 24 Jul 2024 09: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 1sWY3f-0000S9-C6; Wed, 24 Jul 2024 09:13:15 +0000
Received: by outflank-mailman (input) for mailman id 764010;
 Wed, 24 Jul 2024 09:13: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=23fT=OY=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWY3e-0000S3-EQ
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 09:13:14 +0000
Received: from mail-qt1-x82c.google.com (mail-qt1-x82c.google.com
 [2607:f8b0:4864:20::82c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3c14130-499c-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 11:13:13 +0200 (CEST)
Received: by mail-qt1-x82c.google.com with SMTP id
 d75a77b69052e-44caaf77c7eso31808811cf.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 02:13:13 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44f9cbf236esm52243651cf.13.2024.07.24.02.13.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 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: f3c14130-499c-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721812392; x=1722417192; 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=+zP+aolFE9PrZh9txc7o8wHE311lPsj9k+y87+L9mso=;
        b=Yja888H2TBgsWT8ME7f8/NGg8EiNrrUfCvOL/wO0B3RMmpjXQYG0rQuFlTaIjbV0cd
         6BJu937nvrBsp7Ey53N0xJyaoSdOGoJPzPcbj3uOHDyNqwXnh2EDlqflmZEWxqOe1y5B
         e4h7JgUvF1YgmzeBH6MWxDO2XVdODPfbddf7k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721812392; x=1722417192;
        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=+zP+aolFE9PrZh9txc7o8wHE311lPsj9k+y87+L9mso=;
        b=shC40krwJcno/MOwhpKMN+hkPH6NWWkQ60UZ4eIxICL/l0s2HvJgakoDyJis7Nfzeo
         MruGlYt+W5hTWQ+YmVQUHlPoWwWqAOS8wmG80aCnaB/2s152xe4YtvH7nZyrVeuXx7M2
         lpuVQaa7Y4gCuBYE8Ms0mpkcBLkpgifGM4tPIlICb6jmndljN8D8tlhpvPofeHNNL1hh
         o6OfTgZx6ZfC12F6GumDzxTFYoEBOmcrb4tTJ3D8U+xn39xT04u5oNwdU0e0jdYR4A0V
         xErbCkn8DoNQcLkhyTn7djUroWUwecD5Vj6z3cnKd0P9gHwaDXoplPj76xZ10jecRR1L
         KKkQ==
X-Forwarded-Encrypted: i=1; AJvYcCXmkbvaZkCz2sEsQDUQSjjNE15G1E4SBE5SWGDbeQrvZBeGtd3xrzXMPQJdzCsmjmIOmxinL/N2kwY/betBCO8Sf31FLYRrPDrwLHKF9s0=
X-Gm-Message-State: AOJu0YzNSbhOwpNqy4UlO5d+NqkSplFa3INBtcVwaWGG9lYJ9y8EMBik
	oQZgtZ6/B1djqPIp+UyUCV/aigWfwSKOWhOVGFyqPkegGtFT08lLDhqkyECikBA=
X-Google-Smtp-Source: AGHT+IGahE//qQ1KiTJo44P2R5jCreP3H8C2yjv86vocSiCTdM9nuhyWpMujpoGBcNFUaktXSYKMag==
X-Received: by 2002:a05:622a:1a99:b0:447:e14a:20a3 with SMTP id d75a77b69052e-44fd6903981mr18059921cf.55.1721812391948;
        Wed, 24 Jul 2024 02:13:11 -0700 (PDT)
Date: Wed, 24 Jul 2024 11:13:08 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19] x86/altcall: fix clang code-gen when using
 altcall in loop constructs
Message-ID: <ZqDFpLbGe_HmTrTF@macbook>
References: <20240723093117.99487-1-roger.pau@citrix.com>
 <D2X13ED477J8.25JRFH9VEW33O@cloud.com>
 <Zp_VuwxqH3Mii8_W@macbook>
 <D2X237Y7T92R.1VVSBS9MCJOFW@cloud.com>
 <7a5da6ce-0ef0-4666-a5c4-44383469f67e@suse.com>
 <ZqC7Hn8R6Mkyqtpl@macbook>
 <4a1bae1e-16d2-4536-b69a-1fff8179ee86@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4a1bae1e-16d2-4536-b69a-1fff8179ee86@suse.com>

On Wed, Jul 24, 2024 at 10:41:43AM +0200, Jan Beulich wrote:
> On 24.07.2024 10:28, Roger Pau Monné wrote:
> > The only way I've found to cope with this is to use something like:
> > 
> > #define ALT_CALL_ARG(arg, n)                                            \
> >     union {                                                             \
> >         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)];  \
> >         unsigned long r;                                                \
> >     } a ## n ## __  = {                                                 \
> >         .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> >     };                                                                  \
> >     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =      \
> >         a ## n ## __.r
> > 
> > An oversized array that ensures all the space of the long is covered
> > by the array, but then we need an extra variable, as we would
> > otherwise require modifying ALT_CALL{0..6}_OUT to use aX_.r instead of
> > aX_.
> 
> I don't think we need to over-size the array. It just gets yet a little
> more complex then:
> 
> #define ALT_CALL_ARG(arg, n)                                            \
>     register union {                                                    \
>         struct {                                                        \
>             typeof(arg) e;                                              \
>             char pad[sizeof(long) - sizeof(arg)];                       \
>         } s;                                                            \
>         unsigned long r;                                                \
>     } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
>         .s.e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); }) \
>     }

We could even simplify this, there's no need for the union anymore,
since struct size == sizeof(long) already:

#define ALT_CALL_ARG(arg, n)                                            \
    register struct {                                                   \
        typeof(arg) e;                                                  \
        char pad[sizeof(long) - sizeof(arg)];                           \
    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
        .e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })   \
    }

The above seems to work for both the original issue and the new one.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 09:17:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 09:17:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764017.1174285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWY7G-0001Bi-TV; Wed, 24 Jul 2024 09:16:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764017.1174285; Wed, 24 Jul 2024 09:16:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWY7G-0001Bb-Qz; Wed, 24 Jul 2024 09:16:58 +0000
Received: by outflank-mailman (input) for mailman id 764017;
 Wed, 24 Jul 2024 09:16:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWY7F-0001BV-Ew
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 09:16: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 78abb341-499d-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 11:16:55 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5a3458bf989so5160181a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 02:16: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
 4fb4d7f45d1cf-5a30a4d7265sm8761587a12.9.2024.07.24.02.16.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 02:16: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: 78abb341-499d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721812615; x=1722417415; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GWgSDsw7CdK+T7TXtpnvUUd+ObIsggG6Z1aob2dx74k=;
        b=TNT/Kwi/lphHy0YccfKzDDYIxkI3+z8dm15i8VBAX4p/tuaVe8+L8ggMcy2m+mFEX+
         RnoflcsxuXOM1gZryLIwb0uiP3hze5UjttEKtEn9c9dfxhhLHq6zEItgG+nMrpVNGx8i
         HXm9nvOdaOU76opHNUZ1/1vLent5qoJalEMouNRI0JF3YCOXeB+1YY+RcQUQ1zUh/cQ6
         C4oVW9XOXA09l36W2CwMEZFGvg1VXJpwQnR6dfEymvAYLK6coB7Xk9MRlPvs4zzCME4b
         BzWyuAJhatOO5yx+gilVpYzLRSMNzwsio5nFi5lvSctQFteCuJQMKi7En72O+VqS0gwF
         wWcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721812615; x=1722417415;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GWgSDsw7CdK+T7TXtpnvUUd+ObIsggG6Z1aob2dx74k=;
        b=npg63FmqcBrjuHz8fceMY8uXRxxDKwP1gIYqOEuPjN2QZd1+cOb8IF/mTXKZ963NDU
         jDIN8gx2s7VEMoaDvnucurbpbxYMthiA/5C//KHFCO5BiT1EGHinSz9XkiucGZaBWGh1
         GabUA6m8Yp6sBQabe/AxKr0xi5ug+IoHZxMnlAvaghuUoXfpfkI9emHpRBtXmQooOoBY
         9ju77o6FzLDQI/3UbZz4O2qvQObw4eMa8QHbm2X+gYfXk1CZprrwXWzuccWoXq721xIH
         b0J9VhK6n/JHbCgsvb4dUUKoCP1HTI2RgyG12ioyOO4863YhMKMR7WgOKW0JrIquiMBt
         x8zg==
X-Forwarded-Encrypted: i=1; AJvYcCUhWKSOcuKBdGyfSsVkpjWNMAltbYCvSW3KuMRVEoGW7OyXmkW6t+MlJNP3pNrJflyapGXEKwhUDbN0T4rI5GFYy0Nh0+uo4EDocQ1nYvs=
X-Gm-Message-State: AOJu0YyLcM7tJ3S6jorloZMb2o1axrBUOYc3lNR1cH5SpOAvSaN+12n9
	C1qGGNI0ujaVWFL8cWNYOXwWiwvkLR/aXAbDL//8RcVaFh4eoPxWX8DDM/0yPQ==
X-Google-Smtp-Source: AGHT+IF1XX5WyqEKHmKpif+pbq/k4VrlqRuMZtLGrZxob1gSEkzYBAsqufPCIOTBYAjKQdDl6tgU+A==
X-Received: by 2002:a50:8d4b:0:b0:57c:7599:2c67 with SMTP id 4fb4d7f45d1cf-5aaeeaa46f5mr965410a12.37.1721812613890;
        Wed, 24 Jul 2024 02:16:53 -0700 (PDT)
Message-ID: <bda9b241-ce89-4e69-939a-e6e9d7259eb4@suse.com>
Date: Wed, 24 Jul 2024 11:16:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] x86/altcall: fix clang code-gen when using
 altcall in loop constructs
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240723093117.99487-1-roger.pau@citrix.com>
 <D2X13ED477J8.25JRFH9VEW33O@cloud.com> <Zp_VuwxqH3Mii8_W@macbook>
 <D2X237Y7T92R.1VVSBS9MCJOFW@cloud.com>
 <7a5da6ce-0ef0-4666-a5c4-44383469f67e@suse.com> <ZqC7Hn8R6Mkyqtpl@macbook>
 <4a1bae1e-16d2-4536-b69a-1fff8179ee86@suse.com> <ZqDFpLbGe_HmTrTF@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZqDFpLbGe_HmTrTF@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.07.2024 11:13, Roger Pau Monné wrote:
> On Wed, Jul 24, 2024 at 10:41:43AM +0200, Jan Beulich wrote:
>> On 24.07.2024 10:28, Roger Pau Monné wrote:
>>> The only way I've found to cope with this is to use something like:
>>>
>>> #define ALT_CALL_ARG(arg, n)                                            \
>>>     union {                                                             \
>>>         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)];  \
>>>         unsigned long r;                                                \
>>>     } a ## n ## __  = {                                                 \
>>>         .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
>>>     };                                                                  \
>>>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =      \
>>>         a ## n ## __.r
>>>
>>> An oversized array that ensures all the space of the long is covered
>>> by the array, but then we need an extra variable, as we would
>>> otherwise require modifying ALT_CALL{0..6}_OUT to use aX_.r instead of
>>> aX_.
>>
>> I don't think we need to over-size the array. It just gets yet a little
>> more complex then:
>>
>> #define ALT_CALL_ARG(arg, n)                                            \
>>     register union {                                                    \
>>         struct {                                                        \
>>             typeof(arg) e;                                              \
>>             char pad[sizeof(long) - sizeof(arg)];                       \
>>         } s;                                                            \
>>         unsigned long r;                                                \
>>     } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
>>         .s.e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); }) \
>>     }
> 
> We could even simplify this, there's no need for the union anymore,
> since struct size == sizeof(long) already:
> 
> #define ALT_CALL_ARG(arg, n)                                            \
>     register struct {                                                   \
>         typeof(arg) e;                                                  \
>         char pad[sizeof(long) - sizeof(arg)];                           \
>     } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
>         .e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })   \
>     }
> 
> The above seems to work for both the original issue and the new one.

Oh, good. If the compiler's happy with not being dealt an unsigned long,
even better. Maybe for consistency we want to use sizeof(void *) also in
pad's definition then.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 09:23:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 09:23:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764023.1174296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWYDm-0002hl-JR; Wed, 24 Jul 2024 09:23:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764023.1174296; Wed, 24 Jul 2024 09:23: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 1sWYDm-0002he-GQ; Wed, 24 Jul 2024 09:23:42 +0000
Received: by outflank-mailman (input) for mailman id 764023;
 Wed, 24 Jul 2024 09:23: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=23fT=OY=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWYDl-0002hY-1z
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 09:23:41 +0000
Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com
 [2607:f8b0:4864:20::82d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 68ce418a-499e-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 11:23:39 +0200 (CEST)
Received: by mail-qt1-x82d.google.com with SMTP id
 d75a77b69052e-44f6700addcso35937921cf.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 02:23:38 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44f9cd37290sm53182271cf.50.2024.07.24.02.23.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 02:23: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: 68ce418a-499e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721813018; x=1722417818; 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=42lULhR2Mk+N1S+M0ToChTU/LjrnZTV+wWXNzNs5YO4=;
        b=RUl+jcoJEQ4vCWj84ZKbzcCqZaMz0fJVRa0HGtkhX6QpzNOL6RRkIprO+E1RE7rDKt
         kFhqeQB37gcOWW7x9kkPIyNqErX0nuaF+EwkDOUcZ6rvCANizwNh5E4HJhOM3tWmUtpG
         lnbg04Xkj75T1ZuyIzkzHZUXH7mH5eyC37GMI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721813018; x=1722417818;
        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=42lULhR2Mk+N1S+M0ToChTU/LjrnZTV+wWXNzNs5YO4=;
        b=Afk3OUHejlE8DF/pSuZt8r316i1+a6ERF+8MCzphcrIjJGYcpcU+ffK3eMD9zL4UkW
         pNvfUIcQec95tyCru6xgrtQgreBWzMAf5+b4sJmaJHUF8CnJR0mQ+YTEwqgG3QblgVsi
         Gfrw6mrnk5nYu2ILyZLHR0lsQnrZli5JK6UJQtV/wHEjIoeJZ+u+XjY8Ecv1bBsOfS6L
         eiO7aWarVf9AMvKDTSQaAtjgE9Sa9ot10OTQL1v01xxkH0iw56S7XmMqgsJ60m/4hNWE
         yRLyZ+qpOP3/AKI1bJSYtLPRCNhenrf6R/xT662G12Cvob+60HJrj2KDYFLpHX0qzLNa
         muOA==
X-Forwarded-Encrypted: i=1; AJvYcCUsoDEzLNiWfOnKFZBLOA71yrIKicmxwTXhbT4LA55gaW3lv8pJGWM/rQV+1V5+I5khDWNq9fTWcKNlAp1rBJOErLKtehSESK8jmyl+gds=
X-Gm-Message-State: AOJu0YxYTCP3pNTZFk1YvdWd5iE0xuqqSddvK2x1ecXQ8OlsyBNTFvZ4
	t7EBPFNM7Og8QlGATS97l7Hfarj33CGEG7JXjUzVJgXImn4YEd/ppbrXo4BsdCc=
X-Google-Smtp-Source: AGHT+IE096mv8mPEhezE4xiFsZy7K/nSPoXwJbYxj0MIqtXek7eI/o00/jHkUziVDVHbTX3B6k6/zA==
X-Received: by 2002:ac8:5d4f:0:b0:447:ea03:4546 with SMTP id d75a77b69052e-44fd685306bmr13096781cf.15.1721813017552;
        Wed, 24 Jul 2024 02:23:37 -0700 (PDT)
Date: Wed, 24 Jul 2024 11:23:19 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.19] x86/altcall: fix clang code-gen when using
 altcall in loop constructs
Message-ID: <ZqDIB4DSI03OBs2Z@macbook>
References: <20240723093117.99487-1-roger.pau@citrix.com>
 <D2X13ED477J8.25JRFH9VEW33O@cloud.com>
 <Zp_VuwxqH3Mii8_W@macbook>
 <D2X237Y7T92R.1VVSBS9MCJOFW@cloud.com>
 <7a5da6ce-0ef0-4666-a5c4-44383469f67e@suse.com>
 <ZqC7Hn8R6Mkyqtpl@macbook>
 <4a1bae1e-16d2-4536-b69a-1fff8179ee86@suse.com>
 <ZqDFpLbGe_HmTrTF@macbook>
 <bda9b241-ce89-4e69-939a-e6e9d7259eb4@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <bda9b241-ce89-4e69-939a-e6e9d7259eb4@suse.com>

On Wed, Jul 24, 2024 at 11:16:52AM +0200, Jan Beulich wrote:
> On 24.07.2024 11:13, Roger Pau Monné wrote:
> > On Wed, Jul 24, 2024 at 10:41:43AM +0200, Jan Beulich wrote:
> >> On 24.07.2024 10:28, Roger Pau Monné wrote:
> >>> The only way I've found to cope with this is to use something like:
> >>>
> >>> #define ALT_CALL_ARG(arg, n)                                            \
> >>>     union {                                                             \
> >>>         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)];  \
> >>>         unsigned long r;                                                \
> >>>     } a ## n ## __  = {                                                 \
> >>>         .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> >>>     };                                                                  \
> >>>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =      \
> >>>         a ## n ## __.r
> >>>
> >>> An oversized array that ensures all the space of the long is covered
> >>> by the array, but then we need an extra variable, as we would
> >>> otherwise require modifying ALT_CALL{0..6}_OUT to use aX_.r instead of
> >>> aX_.
> >>
> >> I don't think we need to over-size the array. It just gets yet a little
> >> more complex then:
> >>
> >> #define ALT_CALL_ARG(arg, n)                                            \
> >>     register union {                                                    \
> >>         struct {                                                        \
> >>             typeof(arg) e;                                              \
> >>             char pad[sizeof(long) - sizeof(arg)];                       \
> >>         } s;                                                            \
> >>         unsigned long r;                                                \
> >>     } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
> >>         .s.e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); }) \
> >>     }
> > 
> > We could even simplify this, there's no need for the union anymore,
> > since struct size == sizeof(long) already:
> > 
> > #define ALT_CALL_ARG(arg, n)                                            \
> >     register struct {                                                   \
> >         typeof(arg) e;                                                  \
> >         char pad[sizeof(long) - sizeof(arg)];                           \
> >     } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
> >         .e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })   \
> >     }
> > 
> > The above seems to work for both the original issue and the new one.
> 
> Oh, good. If the compiler's happy with not being dealt an unsigned long,
> even better. Maybe for consistency we want to use sizeof(void *) also in
> pad's definition then.

I have to test this on Gitlab, it seems to be fine with clang version
18.1.6, not sure about older releases.

I can switch to void *, that would be fine, will attempt to prepare a
followup patch.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 09:45:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 09:45:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764043.1174333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWYYt-00065q-MB; Wed, 24 Jul 2024 09:45:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764043.1174333; Wed, 24 Jul 2024 09: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 1sWYYt-00065j-Jf; Wed, 24 Jul 2024 09:45:31 +0000
Received: by outflank-mailman (input) for mailman id 764043;
 Wed, 24 Jul 2024 09:45: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWYYs-00065d-Un
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 09:45:30 +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 76720d2f-49a1-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 11:45:30 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5a1fcb611d9so5474432a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 02:45: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-a7a879f155asm202671966b.53.2024.07.24.02.45.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 02:45: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: 76720d2f-49a1-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721814329; x=1722419129; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IC53NO0ncPSMZUJ19G1EiDgyEEM4QYwAlx7R5gn3y80=;
        b=RLeiGKNLA/jxmzyc36chUkukAzoajDhgIot6wh9nz21iVjEvfbsi/XRJUIKJvUolax
         SmYvlTqfW9GwxuTGLw+TdQ5PrNlyJBlzkWo/fnW+gb6faWEJWxNPb1j1Ma30osknon02
         eM2GEtbmMz/0+3TgODtN+qNZHR1S59npNntil21licUOMR0keNazQJ3cZBDRljj5JKT5
         OEyFsaE3bn4XPv0XIckN8bW5PqiAVNj6d2m7k2WCSDV9YddjetBskFhIABtq3fRpnyKz
         ZLJZwzWsEzQjlveEgxmNA8FBHL1K/xdpaPfewphTSQEjpX8OV4CAHyGWyNrLqEykVOky
         3aCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721814329; x=1722419129;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IC53NO0ncPSMZUJ19G1EiDgyEEM4QYwAlx7R5gn3y80=;
        b=EOQautFZHeOHcrSYDDf0Co0JflX89ROunZixFFaFK7doTA5zxP6afWQFeWDfTeID4R
         HAL6wUl5nzj0RnwEyYq9jFPLwhjw+uNsmXAc62XDQinh4JkByMnCPFTGPnKCzLxXZlIf
         J0V+ZuM+nPe5XxfFilLqGqC6BO0GVl4dZQ6dzyaH/GWGkxoF1S2FJFJfAbqy6c4qAzHQ
         w+GuJk5JU7oX57wWabesdcrqooKiUUZS6C+c9e+rl6IX8Xxe+lrdf75mTwjjrzNj4u1j
         O79yHk2WMyrstFwTjFSYg1iJhe7F7j8Ltdn2Ee/9XQrR339KSitKiPp+/9dyVGw7a7ff
         1feg==
X-Forwarded-Encrypted: i=1; AJvYcCWsy2YGEA2lxh7zMuPPHZYao0MA7HbbEC4DtoEBVJoKWwHjjj5xQkRaEfazjeVHOaRQHwvgFhqTOLVhiGpJT0+L9tT3z0DxHkulYVnkBkk=
X-Gm-Message-State: AOJu0Yw1SyBS72SK9Boxg6/9lpzu5brshN0IqMom9eMn/9RWL3JXkvrT
	olG0tjs58bl9X5pQPJ+8Frce7WZQeAYotvpvZ9aQcG/pqyspvbwgoivyNttWkQ==
X-Google-Smtp-Source: AGHT+IGYi7oC0l3FVpweQIrX1Mirn6dsd2X9doPhUD73+Ejd9JOQhoGKe/zQS+8jazqXIafdsU70sA==
X-Received: by 2002:a17:907:7f86:b0:a72:883f:f3dd with SMTP id a640c23a62f3a-a7ab101b5d3mr104810266b.56.1721814329218;
        Wed, 24 Jul 2024 02:45:29 -0700 (PDT)
Message-ID: <d39e4fd8-ce54-48b2-8b20-b22b5c70fe73@suse.com>
Date: Wed, 24 Jul 2024 11:45:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 1/9] automation/eclair: fix deviation of MISRA C
 Rule 16.3
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1721050709.git.federico.serafini@bugseng.com>
 <490e1a84b1b4b8d983dc41af147191f79506cdbd.1721050709.git.federico.serafini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <490e1a84b1b4b8d983dc41af147191f79506cdbd.1721050709.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.07.2024 18:48, Federico Serafini wrote:
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -499,7 +499,7 @@ safe."
>  -doc_end
>  
>  -doc_begin="Switch clauses ending with an explicit comment indicating the fallthrough intention are safe."
> --config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through.? \\*/.*$,0..1))))"}
> +-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through\\.? \\*/.*$,0..2))))"}
>  -doc_end
>  
>  -doc_begin="Switch statements having a controlling expression of enum type deliberately do not have a default case: gcc -Wall enables -Wswitch which warns (and breaks the build as we use -Werror) if one of the enum labels is missing from the switch."

This patch doesn't apply. There's a somewhat similar entry, but its doc_begin
line is sufficiently different. I have no idea what's going on here; there's
no dependency stated anywhere.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 09:55:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 09:55:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764050.1174348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWYim-0007ur-JR; Wed, 24 Jul 2024 09:55:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764050.1174348; Wed, 24 Jul 2024 09:55:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWYim-0007uk-Fx; Wed, 24 Jul 2024 09:55:44 +0000
Received: by outflank-mailman (input) for mailman id 764050;
 Wed, 24 Jul 2024 09:55:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7SE7=OY=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWYik-0007uc-Vi
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 09:55:42 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e338674d-49a2-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 11:55:41 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52f0277daa5so5379271e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 02:55:41 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7ab1f45134sm49614266b.91.2024.07.24.02.55.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 02:55: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: e338674d-49a2-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721814941; x=1722419741; 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=MhpSEukQ6m/m2O/CMOQous3Lt4aKITZyFanRBaLnxHk=;
        b=dagB4kytnzlck9nuUJ6PVjeQWuR9iqjJ2elfJYaUMVamap/pk9R5O57Cdiobsa49Xu
         5CcEQCr8CZRCv6gYd7KYfuCA0KdCRfRz4guYZmd5bqCFdaGwqM6xD1xE1M545Q29thNb
         94slKwIgqofL4rynA4N2K+w7vnesZOdzRbw2dj5o2E3RnaXpGL78N6FkT+buQt4BMGHW
         vhKv7PRxzXiKUpSYWxAMjmGiPWbHGS89ZL+iC6355aZI7Fcl0g9Ogr+pZtT7uqPZRxy+
         ieAkYc0dOv6ut8KyGKGrSet+3r6IsxKRDn0valPCJjXMmJu0OjCMEKe+tFdOSiszuMwP
         dHMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721814941; x=1722419741;
        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=MhpSEukQ6m/m2O/CMOQous3Lt4aKITZyFanRBaLnxHk=;
        b=IJncD9kbUtZxyKCZtiGDCoxIrNYGSROq2+1CuJUfkxzpdtI9uGACzpy+XRrrSSTgNB
         JhJigSBBCWL8Y1IARQw1imuVS6J47OCkNPAwFDdiaPM4RbBDAcUjYsNDxrY1b/Ttf7rW
         KBthveujoyv1s80mnIfCQt0DDlnosmrlZN1HJPpUhCcjAKWr8thrDRyFkkY7t6rWNJQx
         JcHPZAx272K2q3Vk/Pl05C4L8QttLAJBEqdPdZdDQVWzaj7zxhNLY/qgc3WNLmupDjlu
         fSTLAgWZxPD+KnpBMirlppvbO4mHuuf1hVWdppPay9MqzB99ZyX+0xeMHBsg/CcbanPu
         NLkg==
X-Forwarded-Encrypted: i=1; AJvYcCWAdiKvJ19J0DU/pe7qt/MJyWAznQdu7QbAxI6XaESFwMB8wHP3vbf58HneIFz//oDC5SV+DycTWZKPksGfp/PY4omUS2MZsPRtLy0V+eI=
X-Gm-Message-State: AOJu0Yy6QkumsaVHMxMSpXhF1Z7r9Z0nFgITtssfaMdgBMNDAamIggg2
	tqjO2lT61IJB24kTGsOySekZNfoqRRX8M/70K3wFpatxZ+cB3odX0vJLzwU1DkAfoDT5aMkhSgs
	J
X-Google-Smtp-Source: AGHT+IHSkQpsRs7vF2BLN0MDZhxdQ+UXOH+qiSLTm++pHNnEuJkjIxa1gpinn8CjHy6QcQic+o/nnw==
X-Received: by 2002:a05:6512:1114:b0:52c:e03d:dfd7 with SMTP id 2adb3069b0e04-52efb7a0d3cmr9399006e87.39.1721814941243;
        Wed, 24 Jul 2024 02:55:41 -0700 (PDT)
Message-ID: <3a847f18-750f-4bd2-9cac-37c4b9bdc84b@suse.com>
Date: Wed, 24 Jul 2024 11:55:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [xen-tip:linux-next 12/12] WARNING: modpost: vmlinux: section
 mismatch in reference: mc_debug_data+0x0 (section: .data) ->
 mc_debug_data_early (section: .init.data)
To: Jan Beulich <jbeulich@suse.com>
Cc: oe-kbuild-all@lists.linux.dev, xen-devel@lists.xenproject.org,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 kernel test robot <lkp@intel.com>
References: <202407240907.u0NJHgTu-lkp@intel.com>
 <a9b1e875-5bf8-4755-ad2e-78ab2eb02c97@suse.com>
 <fc4b5a0c-19dc-4741-b184-08b704444a1b@suse.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <fc4b5a0c-19dc-4741-b184-08b704444a1b@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 24.07.24 08:54, Jan Beulich wrote:
> On 24.07.2024 08:07, Juergen Gross wrote:
>> On 24.07.24 03:08, kernel test robot wrote:
>>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next
>>> head:   368990a7fe30737c990f628a60d26d9854a9e690
>>> commit: 368990a7fe30737c990f628a60d26d9854a9e690 [12/12] xen: fix multicall debug data referencing
>>> config: x86_64-randconfig-012-20240724 (https://download.01.org/0day-ci/archive/20240724/202407240907.u0NJHgTu-lkp@intel.com/config)
>>> compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
>>> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240724/202407240907.u0NJHgTu-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/202407240907.u0NJHgTu-lkp@intel.com/
>>>
>>> All warnings (new ones prefixed by >>, old ones prefixed by <<):
>>>
>>>>> WARNING: modpost: vmlinux: section mismatch in reference: mc_debug_data+0x0 (section: .data) -> mc_debug_data_early (section: .init.data)
>>
>> With current infrastructure this is not easily fixable, as there is no way
>> to tag a percpu variable as __refdata.
> 
> Would it be an option to drop the static initializer and set CPU0's value
> from xen_parse_mc_debug()?

It would hide this warning, yes.

OTOH I have another patch pending which will have the same problem, and this
time the solution would be more ugly, as the code would always be active in
a PV guest (yes, I could add an init function called very early during boot,
but ...).

I'd prefer a general way to handle this problem, like e.g. some kind of
__refdata tagging for percpu variables.


Juergen


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 09:59:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 09:59:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764058.1174358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWYma-0000Hr-2L; Wed, 24 Jul 2024 09:59:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764058.1174358; Wed, 24 Jul 2024 09:59:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWYmZ-0000He-VT; Wed, 24 Jul 2024 09:59:39 +0000
Received: by outflank-mailman (input) for mailman id 764058;
 Wed, 24 Jul 2024 09:59:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kKCg=OY=epam.com=prvs=3935428134=sergiy_kibrik@srs-se1.protection.inumbo.net>)
 id 1sWYmY-0000HW-GH
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 09:59:38 +0000
Received: from mx0a-0039f301.pphosted.com (mx0a-0039f301.pphosted.com
 [148.163.133.242]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e5047b2-49a3-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 11:59:36 +0200 (CEST)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46O83irx000824;
 Wed, 24 Jul 2024 09:59:25 GMT
Received: from du2pr03cu002.outbound.protection.outlook.com
 (mail-northeuropeazlp17012031.outbound.protection.outlook.com [40.93.64.31])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 40jcwfmcme-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 24 Jul 2024 09:59:25 +0000 (GMT)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by AS4PR03MB8253.eurprd03.prod.outlook.com (2603:10a6:20b:4fc::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.19; Wed, 24 Jul
 2024 09:59:21 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.7741.033; Wed, 24 Jul 2024
 09:59: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: 6e5047b2-49a3-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wVLRpJyeyMgo7JeAJa+GxuVnnNEL08r3QIsMII9z4JzhV/iJS8YfKqn6kP+9oU8fCje7KGKXck09vvceYlRbji1A4ADJsgZRotkOfjTi47+NIWWwcsMUcSQqZnrK6+sKqbPuR5/NMFj0S7XmOJmaIfqqu5v3CV2KdLzbaT2gTJItkC80gnSGbFcBpr7B1hG1Ijg2ItjFEm4kLxwgLPXEyG8fzpVe8Otqso/GcG+WLtsNjrxn7puQpfcWZpwTDLs/f/EvXONh6bYe4Vptd3RaVYexWXWYqkZwd8Pl+SkZaJYZh5hUlbkY4EeyVfRUaXm53Gv6i5hin8ndGaR3YwYSpw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cOyDNu2XcsuudN+p+2nAkvBKhVQUirlp15vouzEOAaU=;
 b=RIm91mJ/fadPR6q8dT+k20ra5dWr4qRi2/OEfY6wRAXFc0izay3jqJbr1gsfGl+0EHrQZoBErd9yF5VoqmYDWZfTvE2aXJ6dNvDbrTe/gTWbihuoySzibg7qlilc4P8QFTr4Bbi+KFyGMcUSSly0fLJQADwghxJ6Z4aNx8zlVQpsR7o7Y/5yYtoyLvK3l51c+D44e9qZIemVinlvJMKl4X0VS+4CSfU6DIt6Jt8NaiM+tG/XSR/I5fX0GjgXF7nFcc2QdF+rJLJULvvWnc9XPpMczu3CNRTN/HXjD40e6cnExp/akCua85P5+rQ8ggms7gTiDMrMiek4xjj/7NEU+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cOyDNu2XcsuudN+p+2nAkvBKhVQUirlp15vouzEOAaU=;
 b=Har48oTiwCyr9MQG845KyqY0+0XDxRWzSsmf/t560cbh/VxstI7fvtzbxfh8QVRwOaw5BX1lblFzJGmRfOlDhH/RiCN9AoSt3xD4GIp9J1OzVJuGzDAGqjGIXQV5rpf2NcdyaNXlqlxxhuWJSJe8f1nuxHN1UFaJfx6XVZuiGDVhJEEN//FqQgDR+b3weWV3YvUZV8i+xa1x3MVEG6ye5pSXMF5QoS6448kvz0QbC77tSDSvai8MHq9igBqEZiaF0NnaAvlXYqGXcWLrZn0BC5Bs1sgB30BZ/nb3n242Fl3Ufr7aez/8rgpvhKtpq0sWwyqrGqlgcVojwfgQz23oYQ==
Message-ID: <e0f86c3f-1d40-4e07-8e43-4806e3f89822@epam.com>
Date: Wed, 24 Jul 2024 12:59:19 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 10/14] x86/vmx: guard access to cpu_has_vmx_* in
 common code
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
        Paul Durrant <paul@xen.org>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <668355271f01681070cb15f67af1538104bfc651.1720501197.git.Sergiy_Kibrik@epam.com>
 <a89c973e-035a-4e8f-b446-03bbcf724f86@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <a89c973e-035a-4e8f-b446-03bbcf724f86@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BE1P281CA0104.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:79::7) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|AS4PR03MB8253:EE_
X-MS-Office365-Filtering-Correlation-Id: a47da188-508f-4867-ab24-08dcabc74a46
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|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QTZMUnlKU0dneEVqc3NaR2J6bFl6bHpybWoycDQ4bzg2WitkWVZoaXdkUnJH?=
 =?utf-8?B?TGFMV09BSWtSMmFkdjFIeWZBRGprVGFCa0o3RnlSYXNLcW51NGVBeGxrRDNC?=
 =?utf-8?B?eTdWakVBZXpGTVZpNk82YVd2cDJOQUwxcVZZdzJ0NmJrWkd0QjUwejhvbkFF?=
 =?utf-8?B?cU5HUS9hdktobTdvNnIyMloyaDBNZzdXeldmcVMwem9tT0d5WFlZTy9mT3Fp?=
 =?utf-8?B?RzBtcVFPQk1GejdIZDR3MnJWaTV3NGFtdDRwY2NRWUp6TGVBR2U0b1IzSG12?=
 =?utf-8?B?Z1g4dno2b3I1dVFaWkdTK3J4dWdBaGhZcTFidXhZY0tpYmlYZHBGZUlISG5D?=
 =?utf-8?B?Qy94ajRWaWsvUjJpNy9leEZ4d01hOFNrRUFxbVk1MW9vd0ZBZjVVUk9iY1k4?=
 =?utf-8?B?ektKUWFSRXFZTXR5alUwTFBxUks0bjhZY05Kbmg2NnhaQW9ycW5vVXc5TG1p?=
 =?utf-8?B?alU3SW94YnpDWkZGeDRjRkluVVcwTE9pbXl6T05aZ3lnSXplbWlBc0RRdkVZ?=
 =?utf-8?B?YVIxTE5SUXZ4dVJPTFBLZElzY2RMYnJNN1MvYXBhdlZSUFJIaXF0N2JxTHF1?=
 =?utf-8?B?V0x6OXdYV0pUcGRpVlMxQTU2RGYyTnlheDJJSWdRdVJRb21MNTlzNUQ4Y1Ex?=
 =?utf-8?B?b0laZWh2bXZFYlBNUjZvbWlacmJHa0dEOEcwb040eldKU0UvYVFJWEk0cDZO?=
 =?utf-8?B?dGRlSnVuR3RlL0N1NzA4dGdkVjhsZ1RRZUtjY0lPUGw2MkpCRmNHSXhFVmp3?=
 =?utf-8?B?elFaSFZlVUw2bmVvUnMxR0l6NmFiRDJNTTJWL2krVm1PbkJXcWx6S293Nm5i?=
 =?utf-8?B?b3llbWd2eWlweTNLbnpzRHFWeXJtNndPWWN1V3ljYzhOTkxremRPMWc5emJG?=
 =?utf-8?B?eXBha21xbXEwZHhLdUp0cEl5Z21oWERzQWNXRzFob2VnOWZ1RVZNc1R4Rnkw?=
 =?utf-8?B?QjIwcXpVNHAzRnRmbkU5dnFSRlRTRlBXZDlVVmtBa1MvSGhpdnc2WDJjSm5m?=
 =?utf-8?B?OWM2MWNrVy9YcUV4TzVzdlVyNVdMWVBRT2x3MGt1TDhBWkdETE01SFJzSzFa?=
 =?utf-8?B?eEg3N0NxUmJlaVNPRnJJbEp3UHJ1MEZNMEpneEN3K2ptVGJpZnFFSGpDVUtL?=
 =?utf-8?B?RGt5YW1GcCsrL0p5Q01ETHI4ZTFSekZmb09xY1dHMWJCaTVnQXRuWUlkT0FG?=
 =?utf-8?B?V3B1VDJtL1ZPVytUU1lSeGVOQXREa3YyMzcreEN5S1NJODB5Qm1pOEs0eWhx?=
 =?utf-8?B?NzlHaUova0tHZldjdHFpNmtqME5iRnMybUc2ZDN0NkNVcWovRGtmZExXbklW?=
 =?utf-8?B?NzVEVnd2QTYzaGFkditEV291a3RTbjRRc0N6RzlzajQ5eE5OMFVrWXpsN3Jn?=
 =?utf-8?B?NDBoamN2RTBQUEt1cGJ2WGdCUkF4U0xXNWVZTXY1YW5QOXZkOWJxTENScVdW?=
 =?utf-8?B?T0pJVDFnd0dCaDJEUGVPVEJGK21UL2pVUmpPemx2M202Y2JGbm1RZ3dJTEM2?=
 =?utf-8?B?WG5FTU1pQ0FvZmVWQXJYcUhwQ3ZUQzlEWktkb1F0TkxWY3REWC93amlpNnpu?=
 =?utf-8?B?SXFyNWJRMGtUK3FqQzZqVzV3Skt3YUE2QnN0Qm1sN3VwQlZWN05HcmpsNEdh?=
 =?utf-8?B?enJJVXh0Wm54a09oOTBnZjFManloRnVBdTFMS1FIZFI0UDQ1TmZyQ1RPL1dP?=
 =?utf-8?B?dm56R0RUSU9zV2JFK2FZUzViWXRyQ0F3WllxNUFxcVQ5RmZBeVArM1dOb05W?=
 =?utf-8?B?Y3ArZVE1Sld4aUp2alFuMzcvclhsbUJFQ3lvWDNlZ0ZyRGpOdnNiYkkxOW1U?=
 =?utf-8?B?VVc4d2N6NWFUTFRRN05EUT09?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZUErRUVkVS9vL2JPUXR5Ym90SnBGaUIxT0tKZytHM041MWppUEl3aE5EREdv?=
 =?utf-8?B?eW5IandraWVYRHdYTU8wWjNNaStSRUpObzlHYkVQWk1aU1MrSUNad3BzYzRD?=
 =?utf-8?B?ak4vb2pWdUV1aGVLOTRzSU1CV0k5TTdERmxHb0pKeGdNcXU3VkI3YmFVM2FV?=
 =?utf-8?B?eE5LQURPWWxZMmV2L0liWk9jTkFLSG4vRW1rcG1NQ1p1a0t2QTdKRFlpYWJ3?=
 =?utf-8?B?cmwyRVk2OXFkamFOZm40RGFza0VPR2h3RTVhRTRDc1JjU3JKdllScTVVcENM?=
 =?utf-8?B?SDdWeVpsMjVkQTBSenM2VUJjdzAvRjVlZkRaZlFnUnFiVXk4V050ZGRNNzJi?=
 =?utf-8?B?Rzlsd21uaFZKNXY4MmN5QmNwTmFsSUVqdnp1cEd0OUhhdnF4OE9VUkVIUDFk?=
 =?utf-8?B?Vk96NWlpNU5adDhzYlJBN2RyZUxLWDgrdmxqS1VZMUxjaGdKMCtFRllJeDlv?=
 =?utf-8?B?U3NjUHBjZGZYRS83bFk3bVVZSERSUkpCVEd5Yy8yWlhpaFdmd1FMMUlpVVRW?=
 =?utf-8?B?ZG5YYy9GOFJWRVVUOVp2TWR5NjR4WXE5ZTZDdGkxWWZoeWI5bXAyZDZpdDBN?=
 =?utf-8?B?TThYTVJHMFZITmY5TGNhQlpncGtxQmVOSUZrZElpd0VwRVJpQUhMS0g1Yjcv?=
 =?utf-8?B?YUdzTTlnT1oycSs3U0s0Tm8yd1Zaazh6dURUaTlRZVFnM3hUUkgxZlYzUkx0?=
 =?utf-8?B?MlNNZnJWSXdiTUh5cWxqVWgyOUduMkJsSll0WXN4bGU0enFheksvVGdES1lZ?=
 =?utf-8?B?QjVtTGhIWDdHZnVZNmNGZDJLOW0raEc5TC9hT0tEcXBKaU4yTmg0Rkx6SnVv?=
 =?utf-8?B?MUF2SzJwNzdzMWx1TXUvSnAwMUlOOW1YaDRNOFNYelpuWDVhcmpieEUwQ3dE?=
 =?utf-8?B?dFg5TlZEVllDOGprRkhmNTUxWTRDczNyOHpUNnplcUEvbkM4MmgvZUtqYUVJ?=
 =?utf-8?B?bmx4UW4vTG5uNVppQlA0M2cxZjZrZnQySnJrbEpHMlFVbGlxQVhINllQUmJI?=
 =?utf-8?B?dVZuZjZCMGk1UStNMjFVbUR1ZkZVemFET2c2V21Ba1grcm9Mcmc1cWhvSkw3?=
 =?utf-8?B?ZVhkc2psMlR0eGxuUlNnaWFXYlcyQjM1YkViTFFHS1FaYUJDaER1VXN0SGp5?=
 =?utf-8?B?ZHIwSHAvMjQ3U2tML09yNitObWpMaHIvNTBRRmxaNTE4U25kSTdhb3JSWnNn?=
 =?utf-8?B?ZDY0aldDekFvZkx5Y1FlZEwzc1kycG1mUDBRaEZTaE9vZUNXZWJNdndHYldl?=
 =?utf-8?B?Smo5bGhhTGQ4L0NHUFZaYTRCbks1Z0VEMjlzTHg3TEYwUk9naGU2YzQzcjVZ?=
 =?utf-8?B?THJ2YkVUQkdSZUsxZmlPcjh4M1hoWFFIaEkxOWVhVDRMS010dlZQRGJDZkhq?=
 =?utf-8?B?TFA5WGlKbFlMTFNzUUs1WGpDRXRBaEJyUmUxL20yRW5DZDlwTU9HNUx2a2Rz?=
 =?utf-8?B?Mmdid2lBQnZPU0U3RXRucTJMdEZ6SnhxTnVXenFuV0JtMDFWNlJwOGQ1TVIv?=
 =?utf-8?B?WnFERnNZRCtOUnJjSDh2dnVNNFJDNzl1Ky9qZDBJdWRWT3IzdUYyaHZYWC9Z?=
 =?utf-8?B?TVo0YUdHTFJoTlVOOUI3bC9qQXMzKzViMUVnT0VSN2dvQXFHazJtQ3doNnF3?=
 =?utf-8?B?bytLdkJKaW1DcHlvQ3A0Y1o2TUxpUVhiK3ltbk5KekFJZUhTRDB1TE9JaWRl?=
 =?utf-8?B?eDJkWUZBUVV6VDJtVmhtTzJTOEhJcDBKcjlYUkpha0h4Vzc1TUdobjdsRTVS?=
 =?utf-8?B?RkFpclhmcEs4UEZHZVU1SGtrZG16dGcrdlUzaDlsRDRrSXNKSnVqbzRPalUv?=
 =?utf-8?B?eDFPOW1WQkJMZ1RjT0RhMjFYaFViU1MxOVpXWUJBclBrc3g3ai9ES29zMng2?=
 =?utf-8?B?L3VzeTFaaHpnZlk0ZktFQ3QxUWpBOUE4K2pmUUlqL09XanJ1QmRndjB5V1Mz?=
 =?utf-8?B?WTdPUDM3WndKdldqVEt5NjZWdm5NZ3l4d2h5UExvNk9SMnhlRklBTnF1Wkw5?=
 =?utf-8?B?VjN2aFp4djFacnh0bk1GRnZPVXh0QjlhdWZDNHY0WGFJcTN0Z3d6Mkhza0w4?=
 =?utf-8?B?Z0ZGQXlvUy8xUFBHb2NjMGxoLzZRWXJYVEd2OWliWGczMW9ISHZGZWY3Vmdy?=
 =?utf-8?B?ZEMrblRQTFBTKzVjVjVsTVBlenhOVUlQL21lMmhJelpTYlRjanl1ODhlMTQ0?=
 =?utf-8?B?QWc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a47da188-508f-4867-ab24-08dcabc74a46
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2024 09:59:21.3906
 (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: MfwBJZ/rUzM82zSmqjqRHcCBiPSEnB5EW1+yK1eLABi3/6gXpzfiwKY0qmp+wuaR7yKEarwZzCN1tUdnkm2Plw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR03MB8253
X-Proofpoint-ORIG-GUID: 6DJ9samPJuTIc_ylu0iLaw_3yee20FhH
X-Proofpoint-GUID: 6DJ9samPJuTIc_ylu0iLaw_3yee20FhH
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16
 definitions=2024-07-24_07,2024-07-23_02,2024-05-17_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0
 malwarescore=0 impostorscore=0 mlxlogscore=999 clxscore=1011 mlxscore=0
 phishscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2407110000 definitions=main-2407240073

22.07.24 14:43, Jan Beulich:
> On 09.07.2024 08:05, Sergiy Kibrik wrote:
>> --- a/xen/arch/x86/hvm/hvm.c
>> +++ b/xen/arch/x86/hvm/hvm.c
>> @@ -5197,7 +5197,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
>>       {
>>           case XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_ON:
>>           case XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_OFF:
>> -            if ( !cpu_has_monitor_trap_flag )
>> +            if ( !IS_ENABLED(CONFIG_VMX) || !cpu_has_monitor_trap_flag )
>>                   return -EOPNOTSUPP;
>>               break;
> 
> Why at the use site here and ...
> 
>> --- a/xen/arch/x86/hvm/viridian/viridian.c
>> +++ b/xen/arch/x86/hvm/viridian/viridian.c
>> @@ -196,7 +196,7 @@ void cpuid_viridian_leaves(const struct vcpu *v, uint32_t leaf,
>>           res->a = CPUID4A_RELAX_TIMER_INT;
>>           if ( viridian_feature_mask(d) & HVMPV_hcall_remote_tlb_flush )
>>               res->a |= CPUID4A_HCALL_REMOTE_TLB_FLUSH;
>> -        if ( !cpu_has_vmx_apic_reg_virt )
>> +        if ( !IS_ENABLED(CONFIG_VMX) || !cpu_has_vmx_apic_reg_virt )
>>               res->a |= CPUID4A_MSR_BASED_APIC;
>>           if ( viridian_feature_mask(d) & HVMPV_hcall_ipi )
>>               res->a |= CPUID4A_SYNTHETIC_CLUSTER_IPI;
>> @@ -236,7 +236,7 @@ void cpuid_viridian_leaves(const struct vcpu *v, uint32_t leaf,
>>   
>>       case 6:
>>           /* Detected and in use hardware features. */
>> -        if ( cpu_has_vmx_virtualize_apic_accesses )
>> +        if ( IS_ENABLED(CONFIG_VMX) && cpu_has_vmx_virtualize_apic_accesses )
>>               res->a |= CPUID6A_APIC_OVERLAY;
>>           if ( cpu_has_vmx_msr_bitmap || (read_efer() & EFER_SVME) )
>>               res->a |= CPUID6A_MSR_BITMAPS;
> 
> ... here (and in yet a few more places), but ...
> 
>> --- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
>> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
>> @@ -306,7 +306,8 @@ extern u64 vmx_ept_vpid_cap;
>>   #define cpu_has_vmx_vnmi \
>>       (vmx_pin_based_exec_control & PIN_BASED_VIRTUAL_NMIS)
>>   #define cpu_has_vmx_msr_bitmap \
>> -    (vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_MSR_BITMAP)
>> +    (IS_ENABLED(CONFIG_VMX) && \
>> +     vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_MSR_BITMAP)
> 
> ... for others right in the definitions, as was suggested before? Yet then
> not consistently for all of them? Looks like if you did this consistently
> here, you'd have no need at all to fiddle with any .c file.
> 

these modifications in .c files are made mainly to track places where 
build fails and to highlight where global variables are causing a trouble.
cpu_has_monitor_trap_flag and fellow macros are used within VMX code 
mostly and don't need these checks inside of them most of the time -- at 
least so I felt.

As for those cpu_has_vmx_* macros that are modified in header -- these 
are being checked in a bit more tricky way, so instead of making complex 
conditionals even more complicated, I've integrated CONFIG_VMX condition 
check inside these macros instead.

Ofc we can proceed with only .h files modifications, if this is more 
consistent with what is planned for cpu_has_vmx_* checks in future.

   -Sergiy


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 10:07:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 10:07:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764066.1174368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWYtj-0001v7-Oc; Wed, 24 Jul 2024 10:07:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764066.1174368; Wed, 24 Jul 2024 10: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 1sWYtj-0001v0-Ly; Wed, 24 Jul 2024 10:07:03 +0000
Received: by outflank-mailman (input) for mailman id 764066;
 Wed, 24 Jul 2024 10:07: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWYti-0001uu-AB
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 10:07: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 783e7188-49a4-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 12:07:01 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7a94aa5080so94895166b.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 03:07: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-a7a93c62343sm170721966b.201.2024.07.24.03.07.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 03:07: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: 783e7188-49a4-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721815621; x=1722420421; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MGUrZ1/ArdIKegoXeJ9HNWq5JL1/O1F7a6tJEitp6yw=;
        b=dd/t4xHej0HQQZ8UBW4ffOJPdtSAkqVQAw21qz2kUtmWA8UppGXbYelteB9PHq5iTY
         47DtI97mmCFmN8E5a4YVDK0Lw4QR4YZXEKpmtX6zFv92nwE7O6+DnrPiTp6tBGgVUzFE
         wyZj4u0cc+RvyQcUJD9i9uerXUtRAQsiRAGbXkHj0eyhqP+BrBjJA2Xwbc+pVf5o7DWJ
         ubrT23Tqm1KXQW8xL6LgDG35LAKE5LnObYfjN2cUYWxjzaycI7HxCcVTHC9TCzKwRY3m
         632AWNcvBcJyknz5dxUnRtCX752K9ZQU2OXtiaBhdmL26Fpbaq0dbTeFbFYPGDnYml9O
         T7aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721815621; x=1722420421;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MGUrZ1/ArdIKegoXeJ9HNWq5JL1/O1F7a6tJEitp6yw=;
        b=WeDNpjeI2rqahzqUNEhZL3rTgzvbK0J7pdcgTZ9JtQvM0I2VQV5Gk5PmAPGK9U6DC5
         V0lyHXD8q0lmFViycPIw+0akZca9yM+WWJpera45A+2N5Bfc5B9Mo5Rd3Oot8n7aVmRO
         GKAqoqtNl02AS+okx4XithE8GEil3fHDeUDFhfW8kSMOOhiNj0rkpR+smB2qcyKkbPyV
         mloNKdYbpKNpjDjZ2QPx7RK3/ibr8aNYO99EA4/MuDkMcyBWVQhq+qd1o/tuVxTiVqfL
         dM74qwgIgIuK2MGPLTi0zYvAm0uILX/vLLGLFU8/axRCHWpR9nCdQYS4I2uiqCQ32P6g
         L7lQ==
X-Forwarded-Encrypted: i=1; AJvYcCVqLRArEcydlg3bWaQuUv3sL7qsJz5bTcwUMNX0b1ChJmPDYqAxXX8Uctm2oZjss+QFuRD4vmAzpcC4bZLy2D3YMGXZ7d6k9t23OHWH1QQ=
X-Gm-Message-State: AOJu0Yy4jyuPDPWG/i7T6k7OXr80dNUX6EBBCfqMEtKfqnFGCoqsRkxR
	P5xmzBkM1som6IqWjyVgyHqMbjPZGG1x3S0hLfJ0UUeffJPNBYfSd8HaGmti3A==
X-Google-Smtp-Source: AGHT+IGM2/wjTz7YLS/HBnmkgvEL000WPVW1usHL9dLRrG5UenrIHqC3bT4jwzuflWA9Kt7Dxk7jiA==
X-Received: by 2002:a17:907:7202:b0:a7a:b070:92d1 with SMTP id a640c23a62f3a-a7ab070a8f1mr125584066b.46.1721815620705;
        Wed, 24 Jul 2024 03:07:00 -0700 (PDT)
Message-ID: <2a839b9c-4584-4386-8b72-c0e047df7cfc@suse.com>
Date: Wed, 24 Jul 2024 12:06:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 10/14] x86/vmx: guard access to cpu_has_vmx_* in
 common code
To: Sergiy Kibrik <sergiy_kibrik@epam.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1720501197.git.Sergiy_Kibrik@epam.com>
 <668355271f01681070cb15f67af1538104bfc651.1720501197.git.Sergiy_Kibrik@epam.com>
 <a89c973e-035a-4e8f-b446-03bbcf724f86@suse.com>
 <e0f86c3f-1d40-4e07-8e43-4806e3f89822@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: <e0f86c3f-1d40-4e07-8e43-4806e3f89822@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 11:59, Sergiy Kibrik wrote:
> 22.07.24 14:43, Jan Beulich:
>> On 09.07.2024 08:05, Sergiy Kibrik wrote:
>>> --- a/xen/arch/x86/hvm/hvm.c
>>> +++ b/xen/arch/x86/hvm/hvm.c
>>> @@ -5197,7 +5197,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
>>>       {
>>>           case XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_ON:
>>>           case XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_OFF:
>>> -            if ( !cpu_has_monitor_trap_flag )
>>> +            if ( !IS_ENABLED(CONFIG_VMX) || !cpu_has_monitor_trap_flag )
>>>                   return -EOPNOTSUPP;
>>>               break;
>>
>> Why at the use site here and ...
>>
>>> --- a/xen/arch/x86/hvm/viridian/viridian.c
>>> +++ b/xen/arch/x86/hvm/viridian/viridian.c
>>> @@ -196,7 +196,7 @@ void cpuid_viridian_leaves(const struct vcpu *v, uint32_t leaf,
>>>           res->a = CPUID4A_RELAX_TIMER_INT;
>>>           if ( viridian_feature_mask(d) & HVMPV_hcall_remote_tlb_flush )
>>>               res->a |= CPUID4A_HCALL_REMOTE_TLB_FLUSH;
>>> -        if ( !cpu_has_vmx_apic_reg_virt )
>>> +        if ( !IS_ENABLED(CONFIG_VMX) || !cpu_has_vmx_apic_reg_virt )
>>>               res->a |= CPUID4A_MSR_BASED_APIC;
>>>           if ( viridian_feature_mask(d) & HVMPV_hcall_ipi )
>>>               res->a |= CPUID4A_SYNTHETIC_CLUSTER_IPI;
>>> @@ -236,7 +236,7 @@ void cpuid_viridian_leaves(const struct vcpu *v, uint32_t leaf,
>>>   
>>>       case 6:
>>>           /* Detected and in use hardware features. */
>>> -        if ( cpu_has_vmx_virtualize_apic_accesses )
>>> +        if ( IS_ENABLED(CONFIG_VMX) && cpu_has_vmx_virtualize_apic_accesses )
>>>               res->a |= CPUID6A_APIC_OVERLAY;
>>>           if ( cpu_has_vmx_msr_bitmap || (read_efer() & EFER_SVME) )
>>>               res->a |= CPUID6A_MSR_BITMAPS;
>>
>> ... here (and in yet a few more places), but ...
>>
>>> --- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
>>> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
>>> @@ -306,7 +306,8 @@ extern u64 vmx_ept_vpid_cap;
>>>   #define cpu_has_vmx_vnmi \
>>>       (vmx_pin_based_exec_control & PIN_BASED_VIRTUAL_NMIS)
>>>   #define cpu_has_vmx_msr_bitmap \
>>> -    (vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_MSR_BITMAP)
>>> +    (IS_ENABLED(CONFIG_VMX) && \
>>> +     vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_MSR_BITMAP)
>>
>> ... for others right in the definitions, as was suggested before? Yet then
>> not consistently for all of them? Looks like if you did this consistently
>> here, you'd have no need at all to fiddle with any .c file.
>>
> 
> these modifications in .c files are made mainly to track places where 
> build fails and to highlight where global variables are causing a trouble.
> cpu_has_monitor_trap_flag and fellow macros are used within VMX code 
> mostly and don't need these checks inside of them most of the time -- at 
> least so I felt.
> 
> As for those cpu_has_vmx_* macros that are modified in header -- these 
> are being checked in a bit more tricky way, so instead of making complex 
> conditionals even more complicated, I've integrated CONFIG_VMX condition 
> check inside these macros instead.
> 
> Ofc we can proceed with only .h files modifications, if this is more 
> consistent with what is planned for cpu_has_vmx_* checks in future.

Going that route would imo also be more future proof towards guarding
calls to yet to be introduced VMX-only functions.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 10:08:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 10:08:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764073.1174378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWYvP-0002fk-6t; Wed, 24 Jul 2024 10:08:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764073.1174378; Wed, 24 Jul 2024 10:08:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWYvP-0002fd-48; Wed, 24 Jul 2024 10:08:47 +0000
Received: by outflank-mailman (input) for mailman id 764073;
 Wed, 24 Jul 2024 10:08: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=Rh+e=OY=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWYvO-0002eH-GJ
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 10:08:46 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b64c23f5-49a4-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 12:08:45 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5a79df5af51so1362291a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 03:08:45 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5a30c2f88a5sm8704988a12.77.2024.07.24.03.08.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 03: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: b64c23f5-49a4-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721815725; x=1722420525; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RHhXtf0M4XS1hQhJfCo1M7nbwTPl20P9gwGK7kao0KM=;
        b=C2Ux5rvluW8YtmArq+d/3Lr/1/sUsGPGiwRV1l1K3kdlKsyO3Mi5+al5bkkLJ42AyS
         fojvYjgRhoRC2dNxjO2Fx/fNHu2DyyCoy0EzeTPfEV4ZjjjeD674wRWCqrO9GCmLjN69
         fS5UzlAzsDye/ITSBTmuvIiY/xZIFezlpbEcM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721815725; x=1722420525;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RHhXtf0M4XS1hQhJfCo1M7nbwTPl20P9gwGK7kao0KM=;
        b=cEg7z0WOxg3N/rl01Ey9aVLQF1dtmOpsC7IIuknqPm6jPwIoKgOQfjw9APct+SQmYW
         +mDyNqtBu7RJ1i9pi+W4lBqSxIN962z5eWR5E1TiQVRoKly1EjMfQ1vheygf7/f+ZYqT
         ffkpIrlp/0UKME7Na2IB7Lk32MMWj4+ALjfF2mExROOKEpeRYFMzgqVep1pn1/Ow2/1z
         RMhcjGnNL0Ps2XL2B2DiPy4Z5t/gShZh6CUd9P1MIgCN9VG1SjlVGXgpSUXMnL2zVdHA
         ks8uupHX0vz0l7fhGobLE3xgyCzQoTp6Z6BZe15eH5tmmkqQwr0gPcG3IlMr33bHuyRs
         eIVQ==
X-Forwarded-Encrypted: i=1; AJvYcCWUFofi31q3PSUFnTf9Xp54XM16JI2bdblzakR+UwkYfV1UmCNqBUcgSP7qsdorkD6lRsj7hEXbDTbfazMjEFNvxOlSFQUWaMX7+dRNEdc=
X-Gm-Message-State: AOJu0YyjoHEdZHplOLs2OEpcdvFsK58hs/7zYUPzw4edJSldv8h/WpyC
	CvxLvDpdQSqqUBWQ93tWTQf1hzqkwIPEsiAR8BozAjEHBBjkXH8DZcXN0fM48C8=
X-Google-Smtp-Source: AGHT+IFtiAHcWWbsn22jOsjc2WE2dcCIcsHLZqIhNWm5dIcEH0/XqtyBho4xuOAuj6ZhJ5OC1r7taQ==
X-Received: by 2002:a50:cddd:0:b0:57d:4692:ba54 with SMTP id 4fb4d7f45d1cf-5ab1a4c106fmr1136391a12.6.1721815724923;
        Wed, 24 Jul 2024 03:08:44 -0700 (PDT)
Message-ID: <2e133087-bc2d-47f8-be93-3a356f7b2d0b@citrix.com>
Date: Wed, 24 Jul 2024 11:08:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/IO-APIC: Improve APIC_TMR accesses
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: <20240723203701.208018-1-andrew.cooper3@citrix.com>
 <14104805-0f0e-4741-877f-24afffc816ce@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <14104805-0f0e-4741-877f-24afffc816ce@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/07/2024 8:56 am, Jan Beulich wrote:
> On 23.07.2024 22:37, Andrew Cooper wrote:
>> XenServer's instance of coverity complains of OVERFLOW_BEFORE_WIDEN in
>> mask_and_ack_level_ioapic_irq(), which is ultimately because of v being
>> unsigned long, and (1U << ...) being 32 bits.
> Which of course is bogus when the shift amount is masked down to 5 bits.
> May I ask that you express this somehow in the wording.

How about this?

Coverity's reasoning isn't correct.  (1U << (x & 0x1f)) can't ever
overflow, but the complaint is really based on having to expand the
RHS.  While this can be fixed by changing v to be unsigned int, take the
opportunity to better still.

>
>> Introduce a apic_tmr_read() helper like we already have for ISR and IRR, and
>> use it to remove the opencoded access logic.  Introduce an is_level boolean to
>> improve the legibility of the surrounding logic.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> The change is an improvement irrespective of Coverity's anomaly, so:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 10:10:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 10:10:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764078.1174388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWYxR-00048R-IZ; Wed, 24 Jul 2024 10:10:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764078.1174388; Wed, 24 Jul 2024 10: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 1sWYxR-00048K-Fk; Wed, 24 Jul 2024 10:10:53 +0000
Received: by outflank-mailman (input) for mailman id 764078;
 Wed, 24 Jul 2024 10: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWYxQ-00048C-74
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 10:10:52 +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 00719fb7-49a5-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 12:10:50 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5a1337cfbb5so6904035a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 03:10: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-5a30c7d3277sm8786969a12.87.2024.07.24.03.10.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 03:10: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: 00719fb7-49a5-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721815849; x=1722420649; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ApdJnXK62cp1LdO2dl5gzPGbnDoUV5lCOUwTLb3W4LQ=;
        b=UmQW1Cchl9uNGWswu0pwz8WAcRlBiIydlupeLSv6rkqoFhOD++p+YmjnosfZnOjKxw
         oy3HM8TE0bZNMGwKMfLrrv+bBieg+X/7ClIOEbR7bC4ePQ2q4INejnjgbIOP/NFJNz/2
         XjXNzEw17FLKqLgFKmemCVhbYlPYDOnU2Vq3Wb+9bkfzBWeACiO5GS3V6BRx/vsywNFw
         zdiZHtGLbeVWfaCBmZQn7Vg3E+jTXVO5KtLwSKaWGKu+ezhf2gAMVwqzZbBOfDfTLgHW
         DzfXcTSyLyXMvHfr5Jq2YDze41JfzUGEhdMFqzNXuRH0Xg4bvWS+ouBZs5D2iXsaWLE2
         DF/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721815849; x=1722420649;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ApdJnXK62cp1LdO2dl5gzPGbnDoUV5lCOUwTLb3W4LQ=;
        b=rROEs6g1Zu4BQLE0vr+FxWrGOOM5gpOx5WA3JwiptCDc4BGBbi3aOe8jn8/xYOTQQt
         HacgXszrF2xnZOXlpelTnKN4BZ2aR7wTH6TWL4P6/7VVAOXKBZzudjSYIF3RxBM5pHQ5
         RSH65O5MmcWn1jRS8iT3TD6KmF0BmJGrglN1u7NfzuV7iGaz1JKlqhHhbQMaIzeKg6DM
         lmiUNmvHZKeANTixdqjAcD9dFq2AmhufNBLelc9DE6K204ON+tBo4NrRWKQXmdVkxsmy
         v3/Qa9uf2Uu+lJV+RF+cyHBCrfa83Gs9REeO63fVXZERXFf4lx53v/nr/werJhrR0s68
         6dgQ==
X-Forwarded-Encrypted: i=1; AJvYcCW61PAHBXA46Jtl7dhBBn+5IUZWVlT2Ep19aMzu99Y3WJVq3bgNuTPzZM54o5Rze4c1mSAvFtOX1q2DNHdUFOeSkCg/5k0RGcxEwv+tdo0=
X-Gm-Message-State: AOJu0YztVYoTV8T3t/lT0UnOwqiCUJppSPXCEqn2CiHy6NBxPqJ+cfbv
	d0tYlVyb3y9sGvFBZI7BuH6N6NsHLA4ooQHjfgddQ0HoLPmKYHlTvPndE545Ew==
X-Google-Smtp-Source: AGHT+IGQ/C+IsbMBJqNm+reijz6rQSBUZS3g/dwFQYf95HDnxhRkcxdurtzTIvKz13OuIb0LblAt3Q==
X-Received: by 2002:a05:6402:2789:b0:5a1:73fc:6bdd with SMTP id 4fb4d7f45d1cf-5aaec95b682mr1321045a12.15.1721815849152;
        Wed, 24 Jul 2024 03:10:49 -0700 (PDT)
Message-ID: <9aaaefaf-07e3-4831-a534-6c28cbeae492@suse.com>
Date: Wed, 24 Jul 2024 12:10:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/IO-APIC: Improve APIC_TMR accesses
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: <20240723203701.208018-1-andrew.cooper3@citrix.com>
 <14104805-0f0e-4741-877f-24afffc816ce@suse.com>
 <2e133087-bc2d-47f8-be93-3a356f7b2d0b@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: <2e133087-bc2d-47f8-be93-3a356f7b2d0b@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.07.2024 12:08, Andrew Cooper wrote:
> On 24/07/2024 8:56 am, Jan Beulich wrote:
>> On 23.07.2024 22:37, Andrew Cooper wrote:
>>> XenServer's instance of coverity complains of OVERFLOW_BEFORE_WIDEN in
>>> mask_and_ack_level_ioapic_irq(), which is ultimately because of v being
>>> unsigned long, and (1U << ...) being 32 bits.
>> Which of course is bogus when the shift amount is masked down to 5 bits.
>> May I ask that you express this somehow in the wording.
> 
> How about this?
> 
> Coverity's reasoning isn't correct.  (1U << (x & 0x1f)) can't ever
> overflow, but the complaint is really based on having to expand the
> RHS.  While this can be fixed by changing v to be unsigned int, take the
> opportunity to better still.

Reads good, thanks.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 10:23:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 10:23:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764094.1174426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWZ99-0006Q7-Vv; Wed, 24 Jul 2024 10:22:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764094.1174426; Wed, 24 Jul 2024 10:22:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWZ99-0006Q0-Ru; Wed, 24 Jul 2024 10:22:59 +0000
Received: by outflank-mailman (input) for mailman id 764094;
 Wed, 24 Jul 2024 10:22:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWZ98-0006Pq-6I; Wed, 24 Jul 2024 10:22:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWZ97-0003dy-UI; Wed, 24 Jul 2024 10:22:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWZ97-0000o5-G5; Wed, 24 Jul 2024 10:22:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWZ97-0005Zq-Ef; Wed, 24 Jul 2024 10: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QBXzmcs5uGruq1JyImNfWQwLMon35y3ERkny294OWe8=; b=fmxF1iume8xJrNJe5G+plq1z4G
	1SSb5MpuWHsqa2ZWc8JAdW1Lz/nDk+r6U6LxrgbdU0ciygv63U7Xt87oploLafRSZCy5G/8CKoB0R
	yV3zNyfp8UGD+4bBB/pGp3NcSJ48qCVUAtxr185AUDQKFj12o68nofAh0rssuVVz65AA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186980-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186980: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=d4ae23b1e6c5fe95205818fcae9d5561c20588d3
X-Osstest-Versions-That:
    ovmf=9bc7a361200215fc5065dfaa6d90d4eb50fec00c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 10:22:57 +0000

flight 186980 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186980/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 d4ae23b1e6c5fe95205818fcae9d5561c20588d3
baseline version:
 ovmf                 9bc7a361200215fc5065dfaa6d90d4eb50fec00c

Last test of basis   186975  2024-07-24 03:15:02 Z    0 days
Testing same since   186980  2024-07-24 08:17:07 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dongyan Qian <qiandongyan@loongson.cn>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   9bc7a36120..d4ae23b1e6  d4ae23b1e6c5fe95205818fcae9d5561c20588d3 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 10:30:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 10:30:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764105.1174435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWZGP-0008Ca-MU; Wed, 24 Jul 2024 10:30:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764105.1174435; Wed, 24 Jul 2024 10:30:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWZGP-0008CT-Jk; Wed, 24 Jul 2024 10:30:29 +0000
Received: by outflank-mailman (input) for mailman id 764105;
 Wed, 24 Jul 2024 10: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=Rh+e=OY=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWZGP-0008CN-36
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 10:30:29 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be752453-49a7-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 12:30:28 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52f04b3cb33so6301321e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 03:30:27 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a83aedeaesm218371766b.2.2024.07.24.03.30.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 03:30: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: be752453-49a7-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721817027; x=1722421827; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CYWwUlUjagtnsd3G+yBkXbF/m7pgcIn0TBF45bTG0fM=;
        b=HxRUYKklEm2wlrZlG5TL+tIQIdkas+g87s3kWO/unzEKy2CO1bJdi50bPVzwZVKyDX
         TkFpWeNANqiAniLF/SLLVpvKYTXfz2RjST7YEG2B1Ljlv9lKPpWd0zDnSoFu9OB+d5m7
         Pi81AflXQ8f59ULqdXRIyWjzwuhlmSL0UwC98=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721817027; x=1722421827;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CYWwUlUjagtnsd3G+yBkXbF/m7pgcIn0TBF45bTG0fM=;
        b=V/E7jbcS1Pa2zm3N7cST5hdnxwYbN2oHJXPNEYbLKAHjLZsE5r6RvyUJV1uJ88D4fk
         ccQ9fsvfMV0jlXDODKgeLQygxB4LKAmg063WfbroET73ntKJ6wziCKj5oscIqM7fH1RY
         MCmXbS2w1txcokkKgQturHHIDVsIt+MwOUDWAREUuE1+MMkSYnGxAmoeo65q9RMLDlSx
         gj+Lt7Vb6jovfXrpb3HlakzNhiBTlnRy6sQZPTBlbYEQ852Idpg6QQf2ien5RxcOevLi
         upYbuIjGre1hI+hixJ9eGzm/HHN7sOj1IzMrD6dUhcXwZyPjGBztNjcpuSVnyHiCIrn6
         O+Sw==
X-Forwarded-Encrypted: i=1; AJvYcCXLmOfO2LO9R9Dm+HYYlZ5+x67sOaGJRS9/J/ytFPV+NGXUH6SRbrEheI+8tEcmSs7HvJF5odmZEYoNevYZR/6SxDmZGfYgOI7UWa+MCfI=
X-Gm-Message-State: AOJu0YzhNNEr7e3Zt/5WCLpCcjzrIfA8PlKvPJ3cO3jnqmBYFQ0Uow2J
	1i2aAitcFWKOjV+Gq87JsUsHeyd2ztum2qGbXr1F6S33CS7VmnlR5Rkk1pWU+cw=
X-Google-Smtp-Source: AGHT+IEGPKkALE5OefDWjqUTjQZFoh2BoSGW/4DDSZ4DKrVt9yVaWjQ3Mt9ax0lzx5vvVZss8pWwaQ==
X-Received: by 2002:a05:6512:a86:b0:52e:933f:f1fa with SMTP id 2adb3069b0e04-52fcdab33b9mr1805280e87.61.1721817026831;
        Wed, 24 Jul 2024 03:30:26 -0700 (PDT)
Message-ID: <7125fef0-fe2c-4c6d-bfc8-fdb4dc126905@citrix.com>
Date: Wed, 24 Jul 2024 11:30:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/printk: Avoid the use of L as a length modifier
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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240723174129.67911-1-andrew.cooper3@citrix.com>
 <f88005d5-8c1f-4060-b3b4-7f88d8c42725@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <f88005d5-8c1f-4060-b3b4-7f88d8c42725@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/07/2024 8:34 am, Jan Beulich wrote:
> On 23.07.2024 19:41, Andrew Cooper wrote:
>> Coverity complains about it being invalid.  It turns out that it is a GCC-ism
>> to treat ll and L equivalently.  C99 only permits L to mean long double.
>>
>> Convert all uses of L in to alternatives, either l, ll or PRI.64 depending on
>> the operand type.  This in turn removes some unnecessary casts which look to
>> predate us having correct PRI* constants.
> I'm certainly okay with switching to PRI.64 where appropriate. Switching to ll,
> however, means longer string literals for no really good reason. We use all
> sorts of GCC / GNU extensions; I don't see why we shouldn't be permitted to
> also use this one. It's Coverity that wants to cope, imo.

I'm about as unfussed with ll as I am over size_t.  The differences
presented here are not interesting.

> Or, if we really meant to no longer use L, support for it should then imo also
> be purged from vsnprintf().
>
>> I'm disappointed at having to use %ll for __fix_to_virt() in apic.c and
>> io_apic.c.  The expression ends up ULL because of the GB(64) in VMAP_VIRT_END,
>> but can't really be changed without breaking 32bit builds of Xen.
>>
>> One option might be to turn __fix_to_virt() into a proper function, but
>> there's a lot of that infrastructure which should be dedup'd and not left to
>> each arch to copy.
> Maybe it doesn't need us going that far, as ...
>
>> --- a/xen/arch/x86/apic.c
>> +++ b/xen/arch/x86/apic.c
>> @@ -938,7 +938,7 @@ void __init init_apic_mappings(void)
>>          apic_phys = mp_lapic_addr;
>>  
>>      set_fixmap_nocache(FIX_APIC_BASE, apic_phys);
>> -    apic_printk(APIC_VERBOSE, "mapped APIC to %08Lx (%08lx)\n", APIC_BASE,
>> +    apic_printk(APIC_VERBOSE, "mapped APIC to %08llx (%08lx)\n", APIC_BASE,
>>                  apic_phys);
> ... I wonder why we use __fix_to_virt() for APIC_BASE in the first place.
> Using fix_to_virt() would look to be more logical, as all users cast to
> a pointer anyway. Then it could simply be %p here.

That could work.  Lets see how it ends up looking.


>
>> --- a/xen/arch/x86/cpu/intel.c
>> +++ b/xen/arch/x86/cpu/intel.c
>> @@ -441,7 +441,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
>>              unsigned long long val = ecx;
>>  
>>              val *= ebx;
>> -            printk("CPU%u: TSC: %u Hz * %u / %u = %Lu Hz\n",
>> +            printk("CPU%u: TSC: %u Hz * %u / %u = %llu Hz\n",
>>                     smp_processor_id(), ecx, ebx, eax, val / eax);
>>          }
> Maybe change val to be uint64_t instead? That's against what ./CODING_STYLE
> calls for, but would be for a reason (to be able to use PRIu64) here.

Can do.

>
>> --- a/xen/arch/x86/cpu/mcheck/vmce.c
>> +++ b/xen/arch/x86/cpu/mcheck/vmce.c
>> @@ -71,7 +71,7 @@ int vmce_restore_vcpu(struct vcpu *v, const struct hvm_vmce_vcpu *ctxt)
>>      if ( ctxt->caps & ~guest_mcg_cap & ~MCG_CAP_COUNT & ~MCG_CTL_P )
>>      {
>>          printk(XENLOG_G_ERR
>> -               "%s restore: unsupported MCA capabilities %#"PRIx64" for %pv (supported: %#Lx)\n",
>> +               "%s restore: unsupported MCA capabilities %#"PRIx64" for %pv (supported: %#llx)\n",
>>                  is_hvm_vcpu(v) ? "HVM" : "PV", ctxt->caps,
>>                  v, guest_mcg_cap & ~MCG_CAP_COUNT);
> guest_mcg_cap is unsigned long and MCG_CAP_COUNT could as well use UL instead
> of ULL, couldn't it?

Well, like ...

>
>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>> @@ -517,7 +517,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>          if ( (vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32)) >
>>               PAGE_SIZE )
>>          {
>> -            printk("VMX: CPU%d VMCS size is too big (%Lu bytes)\n",
>> +            printk("VMX: CPU%d VMCS size is too big (%llu bytes)\n",
>>                     smp_processor_id(),
>>                     vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32));
>>              return -EINVAL;
>> @@ -564,7 +564,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>          if ( (vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32)) !=
>>               ((vmx_basic_msr & VMX_BASIC_VMCS_SIZE_MASK) >> 32) )
>>          {
>> -            printk("VMX: CPU%d unexpected VMCS size %Lu\n",
>> +            printk("VMX: CPU%d unexpected VMCS size %llu\n",
>>                     smp_processor_id(),
>>                     vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32));
>>              mismatch = 1;
> Same here for VMX_BASIC_VMCS_SIZE_MASK. We leverage not doing 32-bit builds
> anymore in exactly this way elsewhere.

... this, it is about 32bit builds.

For better or worse, the msr-index cleanup says to use ULL, and this was
so it could be shared into 32bit codebases.  (In this case, I was
thinking HVMLoader and misc bits of userspace.)

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 11:24:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 11:24:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764116.1174445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWa6B-0006S8-FU; Wed, 24 Jul 2024 11:23:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764116.1174445; Wed, 24 Jul 2024 11: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 1sWa6B-0006S1-Cp; Wed, 24 Jul 2024 11:23:59 +0000
Received: by outflank-mailman (input) for mailman id 764116;
 Wed, 24 Jul 2024 11:23:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWa6A-0006Rr-Ms; Wed, 24 Jul 2024 11:23:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWa6A-0004i7-9L; Wed, 24 Jul 2024 11:23:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWa69-00031t-SF; Wed, 24 Jul 2024 11:23:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWa69-0005yj-Rp; Wed, 24 Jul 2024 11:23: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=NKnaxy9US84ss9sLaHk/o157kvBQ0fyZ8N12ZENaDJE=; b=F+Y00ei2FFwMx4Ooxr7obCSaUv
	KV21WFwPazilE5I89/V04systlPRTAJM9H34PXkfCVaPRKxjs3dx/L92KUhCsjLDwE+ScGQAdTjUu
	4qMsFVdWgu0nkhrzMqegZWBpYwTmi0qrswppF/2WkXsj21sf3wa01bcKb0F5xrfS3tzs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186977-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186977: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=e5232f6fd691668decd5be1b3a76cdbd3666d032
X-Osstest-Versions-That:
    libvirt=6699341d880fdff110eb4e3ec03e4bc4172cb431
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 11:23:57 +0000

flight 186977 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186977/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186959
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              e5232f6fd691668decd5be1b3a76cdbd3666d032
baseline version:
 libvirt              6699341d880fdff110eb4e3ec03e4bc4172cb431

Last test of basis   186959  2024-07-23 04:18:49 Z    1 days
Testing same since   186977  2024-07-24 04:18:45 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andi Chandler <andi@gowling.com>
  Gildasio Junior <gildasiojunior@riseup.net>
  Göran Uddeborg <goeran@uddeborg.se>
  Michal Privoznik <mprivozn@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   6699341d88..e5232f6fd6  e5232f6fd691668decd5be1b3a76cdbd3666d032 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 11:32:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 11:32:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764125.1174456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWaEV-00086b-A0; Wed, 24 Jul 2024 11:32:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764125.1174456; Wed, 24 Jul 2024 11:32: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 1sWaEV-00086U-6U; Wed, 24 Jul 2024 11:32:35 +0000
Received: by outflank-mailman (input) for mailman id 764125;
 Wed, 24 Jul 2024 11:32: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=B9b6=OY=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sWaEU-00086O-Gu
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 11:32:34 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b26e532-49b0-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 13:32:33 +0200 (CEST)
Received: from [10.176.0.4] (unknown [160.78.253.149])
 by support.bugseng.com (Postfix) with ESMTPSA id 44BF94EE0738;
 Wed, 24 Jul 2024 13:32: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: 6b26e532-49b0-11ef-bbfe-fd08da9f4363
Message-ID: <efb0d95f-2feb-419f-92fb-ff2d1c199cb9@bugseng.com>
Date: Wed, 24 Jul 2024 13:32:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 1/9] automation/eclair: fix deviation of MISRA C
 Rule 16.3
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1721050709.git.federico.serafini@bugseng.com>
 <490e1a84b1b4b8d983dc41af147191f79506cdbd.1721050709.git.federico.serafini@bugseng.com>
 <d39e4fd8-ce54-48b2-8b20-b22b5c70fe73@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG
In-Reply-To: <d39e4fd8-ce54-48b2-8b20-b22b5c70fe73@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 24/07/24 11:45, Jan Beulich wrote:
> On 15.07.2024 18:48, Federico Serafini wrote:
>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> @@ -499,7 +499,7 @@ safe."
>>   -doc_end
>>   
>>   -doc_begin="Switch clauses ending with an explicit comment indicating the fallthrough intention are safe."
>> --config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through.? \\*/.*$,0..1))))"}
>> +-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through\\.? \\*/.*$,0..2))))"}
>>   -doc_end
>>   
>>   -doc_begin="Switch statements having a controlling expression of enum type deliberately do not have a default case: gcc -Wall enables -Wswitch which warns (and breaks the build as we use -Werror) if one of the enum labels is missing from the switch."
> 
> This patch doesn't apply. There's a somewhat similar entry, but its doc_begin
> line is sufficiently different. I have no idea what's going on here; there's
> no dependency stated anywhere.

Right, this patch depends on [1] which has not been committed yet.

[1]
https://lists.xenproject.org/archives/html/xen-devel/2024-06/msg01347.html

-- 
Federico Serafini, M.Sc.

Software Engineer, BUGSENG (http://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 11:40:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 11:40:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764134.1174465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWaM9-0001Jf-WB; Wed, 24 Jul 2024 11:40:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764134.1174465; Wed, 24 Jul 2024 11:40: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 1sWaM9-0001JY-Tf; Wed, 24 Jul 2024 11:40:29 +0000
Received: by outflank-mailman (input) for mailman id 764134;
 Wed, 24 Jul 2024 11:40: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=T9X1=OY=actia.se=jonas.blixt@srs-se1.protection.inumbo.net>)
 id 1sWaM8-0001JS-Sx
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 11:40:28 +0000
Received: from mail.actia.se (mail.actia.se [212.181.117.226])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8544efd4-49b1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 13:40:26 +0200 (CEST)
Received: from W388ANL (10.12.12.26) by S035ANL.actianordic.se (10.12.31.116)
 with Microsoft SMTP Server id 15.1.2507.39;
 Wed, 24 Jul 2024 13:40:25 +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: 8544efd4-49b1-11ef-8776-851b0ebba9a2
Date: Wed, 24 Jul 2024 13:40:21 +0200
From: Jonas Blixt <jonas.blixt@actia.se>
To: <xen-devel@lists.xenproject.org>, <linux-block@vger.kernel.org>
CC: <john.ernberg@actia.se>
Subject: xen: arm64: Poor block device performance
Message-ID: <ZqDoJQ+HTfjc0SZO@W388ANL>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
X-Originating-IP: [10.12.12.26]
X-EsetResult: clean, is OK
X-EsetId: 37303A2956B14454677361

Hello,

I'm investigating a block device performance issue on our system.

Our setup is as follows:
SoC: NXP IMX8DXP (arm64), Dual core Cortex A35
Flash: eMMC, HS400
Xen 4.18.1
Dom0 kernel: 6.1.55
DomU kernel: 6.1.14

Dom0 has two vcpu's and domU has one. We're using the xen-blkfront/back drivers to expose block devices to domU.

We measure the following using a simple 'dd' -test (echo 3 > /proc/sys/vm/drop_caches && time dd if=/dev/XXX  of=/dev/null bs=1M count=64):

Directly on the eMMC block device in dom 0: 160 MByte/s
On xvd device in domU: 9.5 MByte/s

Ram block device in dom0: 460 MByte/s
On xvd device in domU: 246 MByte/s

The difference between the ram block device and the eMMC might suggest that there is some interaction between the xenblk driver and the mmc driver that causes this performance degradation. I'm not sure what to expect with the ram device but it at least does not have the same penalty.

I would appreciate any help or suggestions on how to debug this. Is 'blktrace' the right tool for this job and what should I look for?

Best Regards
Jonas


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 11:50:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 11:50:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764144.1174476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWaVc-0002wM-Mn; Wed, 24 Jul 2024 11:50:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764144.1174476; Wed, 24 Jul 2024 11: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 1sWaVc-0002wF-JM; Wed, 24 Jul 2024 11:50:16 +0000
Received: by outflank-mailman (input) for mailman id 764144;
 Wed, 24 Jul 2024 11:50:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P5IH=OY=bounce.vates.tech=bounce-md_30504962.66a0ea73.v1-7527a93884c54397b780ff3730ee1865@srs-se1.protection.inumbo.net>)
 id 1sWaVa-0002w9-QE
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 11:50:14 +0000
Received: from mail135-10.atl141.mandrillapp.com
 (mail135-10.atl141.mandrillapp.com [198.2.135.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e29ea8cb-49b2-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 13:50:13 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-10.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4WTXPv6Ghdz5QkT3p
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 11:50:11 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7527a93884c54397b780ff3730ee1865; Wed, 24 Jul 2024 11:50: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: e29ea8cb-49b2-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721821811; x=1722082311;
	bh=MEN9yMgWV6uHJhkrg4XLTkHKLPjMoi2cLUMbAoL3Whg=;
	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=klG/nzghwyqxue+axwjD/9MTE2gHrcofu6S6/e1fI8ebhy78c8ffGUOpcatin8uj0
	 FedG6aF+/Ni/gwMolm+uzdAYTLCoOFZD6dAxgFemJM+pvb3gZJwKA98dbtSbuK6j0n
	 zPUtbGlxqB4tqPTzMswa5x5QUCBIXlWNhCkH0gzIvFjh0sxz/WhBH1DOie0Ct+uE2I
	 POrxQKoAkAjPtF9qp5k/dxs61KO19pRb8kz8cktmOafQwzteWrrS/nb75i0fmWwqT7
	 qVe8axa9nz74UxngeyT7aCvZzrG3aoQrkh35RlFCPsVrrBwGl+xPfqnc9Aj0h7cF9T
	 s+FctYEV9a16Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721821811; x=1722082311; i=anthony.perard@vates.tech;
	bh=MEN9yMgWV6uHJhkrg4XLTkHKLPjMoi2cLUMbAoL3Whg=;
	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=GnovSw2bXhbszm7f0kaL2dL0bOhrpjVznr3QdRa7gsBXBMEho1bS75JulXKLnMRBD
	 pp1X3+xG/05eOZAZSjtyKfIgwtcmOWGfZcpgz3YhJx/GNhIZf/SJRu5f7qFlAbGgnB
	 LaE00le0KqChV1n0v45l6VHciTwXxlyj2Bius6C6wRZI57c0ZedmCMK+r/9wEElMmJ
	 5xEcp6lARwBxsRUYbTytp9qimME95tiA3H8TTmdn3J+tqPCnDUP0NbOCuOY62zRBA5
	 fYAEke1bazOw9dR+kwqC04U/v+TyVMGCY48kcxiJBjKO2/Zn49QlbZgBSEC48gRrak
	 9bdpGC3cXmyig==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20for-4.19]=20hotplug:=20Restore=20block-tap=20phy=20compatibility=20(again)?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721821810735
To: oleksii.kurochko@gmail.com
Cc: Jason Andryuk <jason.andryuk@amd.com>, Jason Andryuk <jandryuk@gmail.com>, xen-devel@lists.xenproject.org
Message-Id: <ZqDqcoY4e0p2UJ3v@l14>
References: <20240715234631.4468-1-jandryuk@gmail.com> <Zp/GcCUVPX/d/7qx@l14> <ac3d7bcd-6ed8-4ded-bb5d-ab9c228e9579@amd.com> <8a185aeabe4b3928906036590affbec8658bf226.camel@gmail.com>
In-Reply-To: <8a185aeabe4b3928906036590affbec8658bf226.camel@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.7527a93884c54397b780ff3730ee1865?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240724:md
Date: Wed, 24 Jul 2024 11:50:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Jul 23, 2024 at 07:31:58PM +0200, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-07-23 at 11:04 -0400, Jason Andryuk wrote:
> > Oleksii, this is a fix (for an incomplete fix) for 4.19.=C2=A0 76a48419=
3d 
> > broke compatibility for block-tap with the blktap2 kernel model (when
> > adding support for tapback).=C2=A0 This finishes restoring blktap2
> > support.
> > 
> > I realize it's late in the release if you don't want to take it.
> It's pretty late but I just wanted to clarify:
> 1. Is so critical that we should have this in 4.19?

I don't think it's critical enough to justify delaying the release.
blktap2 is I think an out-of-tree kernel module so probably not very
used.
We might want to at least put a note in "known issue" about blktap2
support by the "block-tap" script been broken.

> 2. If we won't take it now, then will it be backported anyway?

Yes, we want to backport that as soon as 4.19 tree is open for
backports, to have the fix in 4.19.1.

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 12:34:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 12:34:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764163.1174497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWbC9-00087o-2e; Wed, 24 Jul 2024 12:34:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764163.1174497; Wed, 24 Jul 2024 12: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 1sWbC8-00087h-WC; Wed, 24 Jul 2024 12:34:12 +0000
Received: by outflank-mailman (input) for mailman id 764163;
 Wed, 24 Jul 2024 12:34: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWbC7-00087T-K0
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 12:34:11 +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 010c5baf-49b9-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 14:34:00 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2ef248ab2aeso61775851fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 05:34: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-a7a93c70c41sm182914966b.42.2024.07.24.05.33.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 05: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: 010c5baf-49b9-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721824440; x=1722429240; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rcRhokmq6WLZcBPydD/CHjgEbRheWu7fj0qXLc38ehQ=;
        b=Nxw78ZPrVye+22lKMw716X9HWQeLEm1BX7Nfm/3qvdQi+KHU+Wh+YR5OoBALvnbhRh
         Z3DYlSR7Hc22xNJJtK1umQ4v32CzwBJsmvKhXt8Q/LVmt4UyGRNl+q0+jul1lSeZgdxL
         7pROKkAcgKwt+7qrHgKqZvX+h8dC13XxmprOmZ/p+IGvWRAE/MGEZNFMu7ZEDDLvlQrP
         UmKExUWruIbTtOdYaGeKiq6glhtSFj6+XZ1FP3ypTr0V9f+RBpU5/G3+rrJTupMozhvy
         Igx7ih3aomRVnOIlXpSB9yEmicorjGjG1UiJRngzz1gjO+JC9ieyEbadI3DzzGV/+mMb
         xjkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721824440; x=1722429240;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rcRhokmq6WLZcBPydD/CHjgEbRheWu7fj0qXLc38ehQ=;
        b=LZUUBXDhGBGlbGkWTKg98z5JpQtdlVW5tLYa8u0XPkBHa6eI5GqN+HT5gdyL9pPKKh
         G02glvrM015S4z2QF4SUv52XxsEBvQjZZ6B0Bj8NSfcdYpiM92atRzxbuSyUWLEc6KaR
         qWynDGDAeGIhwURsT9d5MmB63L+yIaj7ltblGdtS2q0FIkRg514xBu2sY7A0ssZU5jQJ
         0Rd7OIFtzVC1IyyiYDMBu6AYiJqCwakrITr57RcYYX3wgHrJzgODgvDEsgyZcVkY3CbE
         F8BQSOEGZrt4ISThIHWt1PSXFspo8GcFxMb5QECHllID5FQOH6wc95zNNEY9WwdEzwgc
         uIdw==
X-Forwarded-Encrypted: i=1; AJvYcCX7TzCsZd4j5B4sNY5nhNLz3l+0UOs2pQJ1tkFCKvNuu1V37ess+OfU9YaGqzyZoemEtLyGUkBogutxwkuTFhQz8+WVrK8qCoDpgKNyZrs=
X-Gm-Message-State: AOJu0YwJeZuTe5II7cYF6t9t+cRKOT655EhTP0dlYUcC83v21rKGOSxX
	rUTnWl9w0VCEqqoxSeSa4LHsffFCC83b3Ail7ndRXiZ1W7SvbiqzpKhBbU5KcQ==
X-Google-Smtp-Source: AGHT+IEe5tIr88dhau/hp4cGFqNgorG6PCh03Lq9DqUi+0W2/aGRl4vPRYopnY0bg6Mbii/nfQvMHw==
X-Received: by 2002:a05:651c:2211:b0:2ef:2490:46f1 with SMTP id 38308e7fff4ca-2f02b741d17mr30664261fa.23.1721824440079;
        Wed, 24 Jul 2024 05:34:00 -0700 (PDT)
Message-ID: <7641ef1d-b6b0-409d-8169-6e0c43a0227f@suse.com>
Date: Wed, 24 Jul 2024 14:33:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/printk: Avoid the use of L as a length modifier
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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240723174129.67911-1-andrew.cooper3@citrix.com>
 <f88005d5-8c1f-4060-b3b4-7f88d8c42725@suse.com>
 <7125fef0-fe2c-4c6d-bfc8-fdb4dc126905@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: <7125fef0-fe2c-4c6d-bfc8-fdb4dc126905@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.07.2024 12:30, Andrew Cooper wrote:
> On 24/07/2024 8:34 am, Jan Beulich wrote:
>> On 23.07.2024 19:41, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/cpu/mcheck/vmce.c
>>> +++ b/xen/arch/x86/cpu/mcheck/vmce.c
>>> @@ -71,7 +71,7 @@ int vmce_restore_vcpu(struct vcpu *v, const struct hvm_vmce_vcpu *ctxt)
>>>      if ( ctxt->caps & ~guest_mcg_cap & ~MCG_CAP_COUNT & ~MCG_CTL_P )
>>>      {
>>>          printk(XENLOG_G_ERR
>>> -               "%s restore: unsupported MCA capabilities %#"PRIx64" for %pv (supported: %#Lx)\n",
>>> +               "%s restore: unsupported MCA capabilities %#"PRIx64" for %pv (supported: %#llx)\n",
>>>                  is_hvm_vcpu(v) ? "HVM" : "PV", ctxt->caps,
>>>                  v, guest_mcg_cap & ~MCG_CAP_COUNT);
>> guest_mcg_cap is unsigned long and MCG_CAP_COUNT could as well use UL instead
>> of ULL, couldn't it?
> 
> Well, like ...
> 
>>
>>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>>> @@ -517,7 +517,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>>          if ( (vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32)) >
>>>               PAGE_SIZE )
>>>          {
>>> -            printk("VMX: CPU%d VMCS size is too big (%Lu bytes)\n",
>>> +            printk("VMX: CPU%d VMCS size is too big (%llu bytes)\n",
>>>                     smp_processor_id(),
>>>                     vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32));
>>>              return -EINVAL;
>>> @@ -564,7 +564,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>>          if ( (vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32)) !=
>>>               ((vmx_basic_msr & VMX_BASIC_VMCS_SIZE_MASK) >> 32) )
>>>          {
>>> -            printk("VMX: CPU%d unexpected VMCS size %Lu\n",
>>> +            printk("VMX: CPU%d unexpected VMCS size %llu\n",
>>>                     smp_processor_id(),
>>>                     vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32));
>>>              mismatch = 1;
>> Same here for VMX_BASIC_VMCS_SIZE_MASK. We leverage not doing 32-bit builds
>> anymore in exactly this way elsewhere.
> 
> ... this, it is about 32bit builds.

I don't think this is relevant for the VMCS constants?

> For better or worse, the msr-index cleanup says to use ULL, and this was
> so it could be shared into 32bit codebases.  (In this case, I was
> thinking HVMLoader and misc bits of userspace.)

Hmm, yes. Let me mention though that right when starting that cleanup, you
introduced two outliers - MSR_CTC_{THREAD,CORE}_MASK. The latter was later
changed to have a U suffix, in part due to both Stefano and me not paying
enough attention when reviewing. So while I can see the goal, I'm wondering
whether we shouldn't take the abstraction there yet a step further and
arrange for UL suffixes in 64-bit builds, but for ULL in 32-bit ones:

#ifdef __i386__
# define _MC(x) _AC(x, ULL)
#else
# define _MC(x) _AC(x, UL)
#endif

Thoughts?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 12:38:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 12:38:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764171.1174508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWbGG-0000Ov-IY; Wed, 24 Jul 2024 12:38:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764171.1174508; Wed, 24 Jul 2024 12: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 1sWbGG-0000Oo-FS; Wed, 24 Jul 2024 12:38:28 +0000
Received: by outflank-mailman (input) for mailman id 764171;
 Wed, 24 Jul 2024 12:38:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWbGF-0000Oh-Ma
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 12:38:27 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f05a4ab-49b9-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 14:38:25 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2ef2c109eabso38216731fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 05:38: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-5a7f5349cc5sm4257230a12.13.2024.07.24.05.38.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 05:38: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: 9f05a4ab-49b9-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721824705; x=1722429505; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yl1wq62E2OWmmxs2B6fPZ+78OhF7H2md4Qsr4Igmt90=;
        b=WOAnjYzDEa6IIt4NpUDRpX/1LVIubSkhsasL7+v6zKeK0m52+cekkaVpk3qVR0ZZEu
         vmj8Z9fK0M85NDTOglnyhuRpiSzVp8360PCPM4Oe1GEvFkWK9KY/5LPR6Chv4sONAUgr
         1srkGchhnEL5tafHQr6ljQL/QzV+kM+Lp6cuPQxWjzj28oYW38UvScW4ipWnn4APwb7Q
         IIgG4Y2z+M2AyQJViBvPJtxhZ9YXUjrlnEUHQYpdpcgc9k8A/jbrOCw/bWV8xYB2rZuJ
         0JbOp1z91E+YHafAAHgpaiAgArawxj0hbgmIh5U8xysh4+4cskeeFOdTug7nJZDf82t4
         UVIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721824705; x=1722429505;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yl1wq62E2OWmmxs2B6fPZ+78OhF7H2md4Qsr4Igmt90=;
        b=nVALybSO1MksgcH2cIIkA44b5VByALrOBZjMIfG0bzY93WAO9qMEUaZ6iDx/tXagbN
         rABf3fNRv3aKSPTHvwedQJvHz6FFOJMX/vQWmVwfuwEGzWh4/tZck/aYcCr8MjsdkCBc
         WYYhrEbLdLtybPT7TRvzKnrtQ3V0iba9aj/kCn4epRKODhQ6jlcNR6CHXpieukwmdzN6
         lUBYP/sBjZeni5qz+6A5J5SLJNki5YRxfg8OJWDBYoa3u8vgTlTzf5AtG69QLgf0zwN1
         5zsmpEGgImQ3aLWpD9flWiERqI00OmKpHUdlhP798FzJnI2PQCac/mccAi90bbJIkLgU
         CO3g==
X-Forwarded-Encrypted: i=1; AJvYcCUDfnCg3nuUfUjR3x40AyfCO8O0JKg37QwwWdo6HOycg19wG1KLYhRyw8xL3JrascgVqxC993SsbkyT03GYptJyVGKVlMoei+YNn5kze6A=
X-Gm-Message-State: AOJu0YymoY/4Xwt4Br4XkAJsBblOuh2S//WSV01NK/dBT/J3GmMMGFVa
	4DKgbotYmJFVr2hg/DpaoEwuyfWXWzt+R1ArJTr3sdQ8+WGWGziwkcPYPSlTlA==
X-Google-Smtp-Source: AGHT+IFjqbWpmuQc9COMPEZiGX2jooP4sx1DsxDe1a8nraqmFWQaArEYzxxP0C+UkYAQ6y1g5LsBuw==
X-Received: by 2002:a2e:7d15:0:b0:2ef:2483:5659 with SMTP id 38308e7fff4ca-2ef24836095mr74736691fa.5.1721824705264;
        Wed, 24 Jul 2024 05:38:25 -0700 (PDT)
Message-ID: <313a4ce6-e080-4d9e-8f08-ba40be98a7a9@suse.com>
Date: Wed, 24 Jul 2024 14:38:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4 1/9] automation/eclair: fix deviation of MISRA C
 Rule 16.3
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1721050709.git.federico.serafini@bugseng.com>
 <490e1a84b1b4b8d983dc41af147191f79506cdbd.1721050709.git.federico.serafini@bugseng.com>
 <d39e4fd8-ce54-48b2-8b20-b22b5c70fe73@suse.com>
 <efb0d95f-2feb-419f-92fb-ff2d1c199cb9@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: <efb0d95f-2feb-419f-92fb-ff2d1c199cb9@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 13:32, Federico Serafini wrote:
> On 24/07/24 11:45, Jan Beulich wrote:
>> On 15.07.2024 18:48, Federico Serafini wrote:
>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> @@ -499,7 +499,7 @@ safe."
>>>   -doc_end
>>>   
>>>   -doc_begin="Switch clauses ending with an explicit comment indicating the fallthrough intention are safe."
>>> --config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through.? \\*/.*$,0..1))))"}
>>> +-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through\\.? \\*/.*$,0..2))))"}
>>>   -doc_end
>>>   
>>>   -doc_begin="Switch statements having a controlling expression of enum type deliberately do not have a default case: gcc -Wall enables -Wswitch which warns (and breaks the build as we use -Werror) if one of the enum labels is missing from the switch."
>>
>> This patch doesn't apply. There's a somewhat similar entry, but its doc_begin
>> line is sufficiently different. I have no idea what's going on here; there's
>> no dependency stated anywhere.
> 
> Right, this patch depends on [1] which has not been committed yet.
> 
> [1]
> https://lists.xenproject.org/archives/html/xen-devel/2024-06/msg01347.html

Which in turn isn't ready to be committed yet afaict, due to a pending
question regarding ASSERT_UNREACHABLE().

In any event - please make sure you prominently state dependencies on
uncommitted patches (outside of the same series of course).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 12:41:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 12:41:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764177.1174517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWbIt-0001qf-V0; Wed, 24 Jul 2024 12:41:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764177.1174517; Wed, 24 Jul 2024 12: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 1sWbIt-0001qX-SN; Wed, 24 Jul 2024 12:41:11 +0000
Received: by outflank-mailman (input) for mailman id 764177;
 Wed, 24 Jul 2024 12: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWbIs-0001qQ-RZ
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 12:41:10 +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 00b8f4c1-49ba-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 14:41:09 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5a22f09d976so1479519a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 05:41: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
 4fb4d7f45d1cf-5a7661b26c4sm5013485a12.26.2024.07.24.05.41.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 05:41: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: 00b8f4c1-49ba-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721824869; x=1722429669; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ll72TSk/Tmp5xvsxmqnNCtBoWv0yoPYAYGWyfGZq+1I=;
        b=UUPAkuoGo8sf4a2mNGBNeToJimCy+h5sB4xSn3dp5VfZ/4Wmraf9RK9351laTdvw7N
         Czb+NoG/VUS6+yhf3Msf9tsMjzMjt4ib9SP7VD7nraQyEFJ5bC4XAIL6KUcM9oakmpTd
         cKgdc0qIR8pyBg+ng91iiXCUl1KUA4Jq4+yPZqakkMQL1wCCoug0v1nCLL3SddlAbRUJ
         bVq006qsbOwqYy9yzlwFBP0JUT5G4krjwsVnHC3aIEmNyzvT+ECZR6IsMNmvHRpeYq1r
         UGmfQ3qmcpLM8j7OJ27tln/nxxzm7FoAwJ2ZZEwIkKTIzqnK4Y1QlJqcgcDj3L31GDz1
         pOOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721824869; x=1722429669;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ll72TSk/Tmp5xvsxmqnNCtBoWv0yoPYAYGWyfGZq+1I=;
        b=v2jKI77BFWntP6UnfFFmUyyHhF0UFy+FwhqBw2Ae0i/bNj2PRxVFnkMMNeCi9zTzKl
         eh3oWiww5LUgFdiLscp0ZuBFUkaSIAVeFarGg6iEgBI6g7Zuj34W9+v34ti6dXYidlJc
         tzDu/yfIX29aUftIL3ccK0IpcLoivic6fHpm9Kk45U+/+GcI1ZT6jaxW2PiVtJsZ4y1D
         iWd5vj3naI3tm9LUxbmdTgzn87or8NL0V1X7ZQ4mrnpSbqBz9S0a5WxbPSFZC+emu7DM
         qceoHdAfdEgTCieLxLyuAScHoDIN1j5JE/9DRj33AZIh1lFkmAWPvBwnaGyfwiMmBs/z
         DmGQ==
X-Gm-Message-State: AOJu0Yyq4j7cHyLWpVj+37ER5g3J7S7XSmG18a5T53hPMdGbYW3uHI1G
	DJuJpplQ8LRKJ3ghZfRU8lNlQoPDt28L/IHkLq2h6IixBiTWi7QFS2bucSlU0Q==
X-Google-Smtp-Source: AGHT+IGtcEp67XcFlau0eT0IK1XNiyviUHUt0g0VuccjJ662cDTu3GqAajpxLTqo9DLoXlYTkklIxA==
X-Received: by 2002:a05:6402:2689:b0:59f:9f59:b034 with SMTP id 4fb4d7f45d1cf-5ab1af79c28mr1922358a12.13.1721824868033;
        Wed, 24 Jul 2024 05:41:08 -0700 (PDT)
Message-ID: <e65e7307-7955-4427-9a10-7bfc1e1b7d59@suse.com>
Date: Wed, 24 Jul 2024 14:41:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] hotplug: Restore block-tap phy compatibility
 (again)
To: Jason Andryuk <jandryuk@gmail.com>
Cc: xen-devel@lists.xenproject.org, Jason Andryuk <jason.andryuk@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20240715234631.4468-1-jandryuk@gmail.com> <Zp/GcCUVPX/d/7qx@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: <Zp/GcCUVPX/d/7qx@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 17:04, Anthony PERARD wrote:
> On Mon, Jul 15, 2024 at 07:46:31PM -0400, Jason Andryuk wrote:
>> "$dev" needs to be set correctly for backendtype=phy as well as
>> backendtype=tap.  Move the setting into the conditional, so it can be
>> handled properly for each.
>>
>> (dev could be captured during tap-ctl allocate for blktap module, but it
>> would not be set properly for the find_device case.  The backendtype=tap
>> case would need to be handled regardless.)
>>
>> Fixes: 6fcdc84927 ("hotplug: Restore block-tap phy compatibility")
> 
> Do you mean f16ac12bd418 ("hotplug: Restore block-tap phy compatibility") ?

Which, when replacing it, made noticeable that the above and ...

>> Fixes: 76a484193d ("hotplug: Update block-tap")

... this hash also were too short. Please make sure you use 12 digits, as
indicated by docs/process/sending-patches.pandoc.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 12:51:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 12:51:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764184.1174527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWbSn-0003es-RR; Wed, 24 Jul 2024 12:51:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764184.1174527; Wed, 24 Jul 2024 12:51: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 1sWbSn-0003el-Of; Wed, 24 Jul 2024 12:51:25 +0000
Received: by outflank-mailman (input) for mailman id 764184;
 Wed, 24 Jul 2024 12:51: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=PMDA=OY=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sWbSm-0003ed-CC
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 12:51:24 +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 6dc9c837-49bb-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 14:51:22 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5a3458bf858so5278827a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 05:51:22 -0700 (PDT)
Received: from EMEAENGAAD91498. ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5aa1f02c9fesm1919210a12.67.2024.07.24.05.51.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 05:51: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: 6dc9c837-49bb-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721825482; x=1722430282; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:subject:cc
         :to:from:date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bStCLYTus3sUb8LHZDmlK5qUszEkzPQbeQ+3+ABNKZ4=;
        b=JfsIHeDfzmGoFI7j1XWdQwW/bIeiKHeNi/+KtXcyRCCBb8gnuG5wk6HSm9LiC6n9LI
         toOmCD1BXVQHFTmhyu1yAzjF79zLwxhdyx2CmoGmPLHic4kAXzLHAUvJ3rjQbOQ+9BSA
         q0aUBI8Lh0YGu8fvpCnC0Z28VStFShw4z8RsU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721825482; x=1722430282;
        h=in-reply-to:content-disposition:mime-version:references:subject:cc
         :to:from:date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bStCLYTus3sUb8LHZDmlK5qUszEkzPQbeQ+3+ABNKZ4=;
        b=XNVOSkE4nctbdLgBhH8qv1bxgnUOVRt/XSjguTxwG7nQF9Qxjivh253BOAEnM43+Ce
         V02YKegSFrPFX2rBKHgvUqRosAmLt2IJPBxmvDoujiZ1gGxpWJRMEDSzh49Bc5gJ3RYP
         Pnm9pzDvsbLm2NF3K0AGFi5wv8tC0u2fa9GzCwi/2Rh8VVN2CMnELRp4Nx+8RvHoKjRM
         e3bFRjo9ZrhbJjcQVYh7am0UpO2nA9cawc7fBYqbT+oq4SRUULNGqO/8o5xKiz2IEzA6
         KfVE8NoZdyPyyKMslKyFL/KceD4rS8LVhUgQcRxl7pRUGoDdGg58330TWKxkTv2dJ2YT
         IBXw==
X-Gm-Message-State: AOJu0Yw57KQme1GVqopfRDWPzsW1sp30Qr0wOFAp5qQeJ3mg89hol4ah
	2589K3TmwHtVcWA1etYpsvLCmZi1WCaOX6dqPluMFo4xGhuUz5DBnhZhnqUw7xQ=
X-Google-Smtp-Source: AGHT+IHYvbTsUIUTFRNPZwhYznq/YATReREQ3mKomTsPJ2xymzkceu2CXOmFnBjeQSHEgQ7hyBuUCA==
X-Received: by 2002:a50:bb02:0:b0:5a2:2ecc:2f0 with SMTP id 4fb4d7f45d1cf-5aaa38a6297mr1903881a12.1.1721825481432;
        Wed, 24 Jul 2024 05:51:21 -0700 (PDT)
Message-ID: <66a0f8c9.050a0220.879ba.9673@mx.google.com>
X-Google-Original-Message-ID: <20240724125116.xjjycidsgt7vvcnc@EMEAENGAAD91498.>
Date: Wed, 24 Jul 2024 13:51:16 +0100
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: Re: [RFC XEN PATCH v2] x86/cpuid: Expose max_vcpus field in HVM
 hypervisor leaf
References: <fa24cd3b232e8865eb6451e5f7af9cd203ce52ab.1721224079.git.matthew.barnes@cloud.com>
 <12e2c7b2-6d0b-4427-ac30-257bfea2aeab@suse.com>
 <669fa8ad.170a0220.843bc.3a17@mx.google.com>
 <a08d0d27-1d7b-4453-807c-3670cb4f05aa@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <a08d0d27-1d7b-4453-807c-3670cb4f05aa@suse.com>

On Wed, Jul 24, 2024 at 07:42:19AM +0200, Jan Beulich wrote:
> (re-adding xen-devel@)
> 
> On 23.07.2024 14:57, Matthew Barnes wrote:
> > On Mon, Jul 22, 2024 at 01:37:11PM +0200, Jan Beulich wrote:
> >> On 19.07.2024 16:21, Matthew Barnes wrote:
> >>> Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
> >>> startup.
> >>>
> >>> There are efforts to support a maximum of 128 vCPUs, which would involve
> >>> bumping the OVMF constant from 64 to 128.
> >>>
> >>> However, it would be more future-proof for OVMF to access the maximum
> >>> number of vCPUs for a domain and set itself up appropriately at
> >>> run-time.
> >>>
> >>> GitLab ticket: https://gitlab.com/xen-project/xen/-/issues/191
> >>>
> >>> For OVMF to access the maximum vCPU count, this patch has Xen expose
> >>> the maximum vCPU ID via cpuid on the HVM hypervisor leaf in edx.
> >>>
> >>> Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
> >>> ---
> >>> Changes in v2:
> >>> - Tweak value from "maximum vcpu count" to "maximum vcpu id"
> >>> - Reword commit message to avoid "have to" wording
> >>> - Fix vpcus -> vcpus typo
> >>> ---
> >>
> >> Yet still HVM-only?
> > 
> > This field is only used when the guest is HVM, so I decided it should
> > only be present to HVM guests.
> > 
> > If not, where else would you suggest to put this field?
> 
> In a presently unused leaf? Or one of the unused registers of leaf x01
> (with the gating flag in leaf x02 ECX)?

I could establish leaf x06 as a 'domain info' leaf for both HVM and PV,
have EAX as a features bitmap, and EBX as the max_vcpu_id field.

Is this satisfactory?

Matt


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 13:02:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 13:02:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764192.1174537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWbcz-0005UR-O6; Wed, 24 Jul 2024 13:01:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764192.1174537; Wed, 24 Jul 2024 13:01: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 1sWbcz-0005UK-LA; Wed, 24 Jul 2024 13:01:57 +0000
Received: by outflank-mailman (input) for mailman id 764192;
 Wed, 24 Jul 2024 13:01: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWbcy-0005UE-Eq
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 13:01: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 e6b38d93-49bc-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 15:01:54 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a7a9e25008aso216254366b.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 06:01: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
 a640c23a62f3a-a7ab62c1989sm48110766b.77.2024.07.24.06.01.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 06: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: e6b38d93-49bc-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721826114; x=1722430914; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4NmojNIdBgxJjJ5EY3OKSHBCa67OGBh1hKMW6lmTPnQ=;
        b=AG5nPVhblmdH7MXExjohyIRUr5LVZooG0V2XlExu3ylu2MNFlo+3IzXzjdwpRHiOqF
         zgF8KR2K83/yzZZ5XljFIkLYySOGn5BG9knVUhHdfjuDWq6GEGXtRtmVaCM6urbSt0f0
         D/BNpOZg3SQUHaEXynf2BiMXtxT1+DvdYsNcMR5aWawyFsndc03e+jpp8IRQ5R3LKIdy
         igTc9QmGw/hnatYsRywyBBX/PRjgSCFpVLCpNSmO7eMPYWUdjUtxyaY1QkrsUcK7mvH8
         C3azNR1DojqL+8tWjmp54LkItaYSz0hdwhWWKK9B3hT8wA+EjdiFdoghxXHO8uL5n2m/
         57aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721826114; x=1722430914;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4NmojNIdBgxJjJ5EY3OKSHBCa67OGBh1hKMW6lmTPnQ=;
        b=jIu7C/SHQvZmeqoIxEO2MH9zglJpBrKsf4hIo2XvROEf4ForaRtQ2geOOfDlvbRaN5
         LYkc26oeMRlFr233KVRQIkn6wl8kUDyuqe0tFeWiI4HHId3k4omONBLw3jS7nKCLAzQu
         kXQhxPSW/U+5+zek4HeLFTXMRs64+cjgcT3WFl5WfdIbOrl+dIVFlRgAIhIPRDJA2B21
         IIwMzsKx6EPTBgwkOX9w5RH2seoK1pMA8Gb+27w0mp1EGGtMC/nroshCQIE5xf4QzU0f
         LsBbQ3rzScvL9sY07XkiOG+4Z5N0wHy1T2HuZ50TwLsJgw+rAbpU1r5EKd8Euf1lOVf1
         8azg==
X-Gm-Message-State: AOJu0YyBE3ReeFh9MmTVt2MUYVAOotI5Pi98TxwbP27vwZeQuYpVsv27
	8uxxe/gN+AEgoPKczGgC950nTJLtJEDDvD3t+AjIijD/QKWZnz7WLf0q3YfUwA==
X-Google-Smtp-Source: AGHT+IFrPj3dMW6dkqoxNWmC2oFXfF+gGx/H1v+V4nhERDei3QF0LDsMNVT/RE4Iwpryjftaxyj+hQ==
X-Received: by 2002:a17:907:7296:b0:a72:8296:ca1f with SMTP id a640c23a62f3a-a7ab0fa460dmr157134966b.50.1721826113545;
        Wed, 24 Jul 2024 06:01:53 -0700 (PDT)
Message-ID: <a67ef182-b62b-4d0b-9532-a2356f145af5@suse.com>
Date: Wed, 24 Jul 2024 15:01:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v2] x86/cpuid: Expose max_vcpus field in HVM
 hypervisor leaf
To: Matthew Barnes <matthew.barnes@cloud.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
References: <fa24cd3b232e8865eb6451e5f7af9cd203ce52ab.1721224079.git.matthew.barnes@cloud.com>
 <12e2c7b2-6d0b-4427-ac30-257bfea2aeab@suse.com>
 <669fa8ad.170a0220.843bc.3a17@mx.google.com>
 <a08d0d27-1d7b-4453-807c-3670cb4f05aa@suse.com>
 <66a0f8c9.050a0220.879ba.9673@mx.google.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <66a0f8c9.050a0220.879ba.9673@mx.google.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 14:51, Matthew Barnes wrote:
> On Wed, Jul 24, 2024 at 07:42:19AM +0200, Jan Beulich wrote:
>> (re-adding xen-devel@)
>>
>> On 23.07.2024 14:57, Matthew Barnes wrote:
>>> On Mon, Jul 22, 2024 at 01:37:11PM +0200, Jan Beulich wrote:
>>>> On 19.07.2024 16:21, Matthew Barnes wrote:
>>>>> Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
>>>>> startup.
>>>>>
>>>>> There are efforts to support a maximum of 128 vCPUs, which would involve
>>>>> bumping the OVMF constant from 64 to 128.
>>>>>
>>>>> However, it would be more future-proof for OVMF to access the maximum
>>>>> number of vCPUs for a domain and set itself up appropriately at
>>>>> run-time.
>>>>>
>>>>> GitLab ticket: https://gitlab.com/xen-project/xen/-/issues/191
>>>>>
>>>>> For OVMF to access the maximum vCPU count, this patch has Xen expose
>>>>> the maximum vCPU ID via cpuid on the HVM hypervisor leaf in edx.
>>>>>
>>>>> Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
>>>>> ---
>>>>> Changes in v2:
>>>>> - Tweak value from "maximum vcpu count" to "maximum vcpu id"
>>>>> - Reword commit message to avoid "have to" wording
>>>>> - Fix vpcus -> vcpus typo
>>>>> ---
>>>>
>>>> Yet still HVM-only?
>>>
>>> This field is only used when the guest is HVM, so I decided it should
>>> only be present to HVM guests.
>>>
>>> If not, where else would you suggest to put this field?
>>
>> In a presently unused leaf? Or one of the unused registers of leaf x01
>> (with the gating flag in leaf x02 ECX)?
> 
> I could establish leaf x06 as a 'domain info' leaf for both HVM and PV,
> have EAX as a features bitmap, and EBX as the max_vcpu_id field.
> 
> Is this satisfactory?

Hmm. Personally I think that all new leaves would better permit for multiple
sub-leaves. Hence EAX is already unavailable. Additionally I'm told that
there are internal discussions (supposed to be) going on at your end, which
makes me wonder whether the above is the outcome of those discussions (in
particular having at least tentative buy-off by Andrew).

For the particular data to expose here, I would prefer the indicated re-use
of an existing leaf. I haven't seen counter-arguments to that so far.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 13:19:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 13:19:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764201.1174549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWbtQ-0007fz-9f; Wed, 24 Jul 2024 13:18:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764201.1174549; Wed, 24 Jul 2024 13: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 1sWbtQ-0007fs-5A; Wed, 24 Jul 2024 13:18:56 +0000
Received: by outflank-mailman (input) for mailman id 764201;
 Wed, 24 Jul 2024 13: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWbtO-0007fm-Mb
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 13:18:54 +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 45bff40c-49bf-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 15:18:53 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a7a9cf7d3f3so215222666b.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 06: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
 a640c23a62f3a-a7a3c94d241sm642171966b.190.2024.07.24.06.18.51
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 06: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: 45bff40c-49bf-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721827132; x=1722431932; 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=xQ/h9b0DpU4vM0n6HUsGZE40olDj6TbTfS1TErEmxL0=;
        b=VFg8dY63xK3v6yTkS4xGFRI4UVuA98R49CxJOx5aOFhKTRDDPPA0ycvX5WvwLapz2f
         weykAAngfLNhWcKs9+Nf4VsrRh028SQF4uQv3d9OYr1Oupt2sDHt0JyRr58X/Q3/b1TF
         jdr8h38xB36YqK2d/BbIWaEBkcCjphUr4uMDrMd8hIoOej6cP0zRu96F4FYARY7QfSjl
         NrPr6/x92Yo1B2xlpVvPcVzvk6vnA59k9BN8UNObjPi7KdBGzUDmjMmPzxoPKJmcOzd9
         3kRipAro9XB/Lz7sq2eIgvEYN+YPLGVAFJ8wO1qY/bZUU52W2FztaVyBbHh7gC2L998Y
         Ts9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721827132; x=1722431932;
        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=xQ/h9b0DpU4vM0n6HUsGZE40olDj6TbTfS1TErEmxL0=;
        b=CzZXl8h72nSUPAbsMq93VduTNLFCRJDSzMmupHtfFTRiTCYEKrPQ4ir06Gk1UXQqz2
         nmeyxNubjHbOgDGO3McdY5yorH/5TaH4iHbATmD8doza+qeYujZmF8V1SJXOewyneugB
         FkkHLf8iAFrHHHjS8ttdxObB3mieqnawdROr9/8dUbQDv1qthnvVNTm1P5MCloaprPfL
         1PhcdaTqMaOhN0VWFv0UNeE61yzx5njQoHY8axYSURfy5+wXkoiUPoayxGCtAKH7p/2h
         a95VFvLne0VRkJMfT5nbygOdoO79mcnJ2/90w6Eom/eEjGr3iS6FYPjmXB4FyHgZNQjJ
         iFug==
X-Gm-Message-State: AOJu0YzTzgr394cWyX5Osvy9yrCUZpVcjJuOtSRMnKg/aKzYDzuEE7iM
	fOT7agZmpdGmP29CUeCUQlf7QPCpr7ucscXfksGXOrHqHMI1vbz54daI6FTw7iEtiQ8meZUDB5s
	=
X-Google-Smtp-Source: AGHT+IE0YNnwf7yTjFdd+WOwfrV1rVAGc+CfZR8Pr0wB5L+tGrA3E872ngjI8cSuQxCTGtpDmlr3ww==
X-Received: by 2002:a17:906:c148:b0:a7a:9f0f:ab14 with SMTP id a640c23a62f3a-a7ab0eeb50emr152951166b.33.1721827132306;
        Wed, 24 Jul 2024 06:18:52 -0700 (PDT)
Message-ID: <24be503c-7c8a-4db9-aee4-04b0c872c0dc@suse.com>
Date: Wed, 24 Jul 2024 15:18:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: xen | Failed pipeline for staging-4.19 | 2d7b6170
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <66a0fe638f16a_33beeb0103995@gitlab-sidekiq-catchall-v2-96b77f447-9jjmp.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: <66a0fe638f16a_33beeb0103995@gitlab-sidekiq-catchall-v2-96b77f447-9jjmp.mail>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 15:15, GitLab wrote:
> 
> 
> Pipeline #1385987377 has failed!
> 
> Project: xen ( https://gitlab.com/xen-project/hardware/xen )
> Branch: staging-4.19 ( https://gitlab.com/xen-project/hardware/xen/-/commits/staging-4.19 )
> 
> Commit: 2d7b6170 ( https://gitlab.com/xen-project/hardware/xen/-/commit/2d7b6170cc69f8a1a60c52d87ba61f6b1f180132 )
> Commit Message: hotplug: Restore block-tap phy compatibility (a...
> Commit Author: Jason Andryuk ( https://gitlab.com/jandryuk-amd )
> Committed by: Jan Beulich ( https://gitlab.com/jbeulich )
> 
> 
> Pipeline #1385987377 ( https://gitlab.com/xen-project/hardware/xen/-/pipelines/1385987377 ) triggered by Jan Beulich ( https://gitlab.com/jbeulich )
> had 3 failed jobs.
> 
> Job #7415912260 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/7415912260/raw )
> 
> Stage: test
> Name: qemu-alpine-x86_64-gcc

This is the one known to fail more often than not, I think, but ...

> Job #7415912175 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/7415912175/raw )
> 
> Stage: build
> Name: ubuntu-24.04-x86_64-clang
> Job #7415912173 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/7415912173/raw )
> 
> Stage: build
> Name: ubuntu-22.04-x86_64-gcc

... for these two I can't spot any failure in the referenced logs. What's going on
there?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 13:26:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 13:26:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764208.1174557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWc0z-0000xG-Ur; Wed, 24 Jul 2024 13:26:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764208.1174557; Wed, 24 Jul 2024 13: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 1sWc0z-0000x9-SI; Wed, 24 Jul 2024 13:26:45 +0000
Received: by outflank-mailman (input) for mailman id 764208;
 Wed, 24 Jul 2024 13:26: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=Xdhr=OY=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1sWc0z-0000o2-EB
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 13:26:45 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5e4abfba-49c0-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 15:26:43 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 079824EE0738;
 Wed, 24 Jul 2024 15:26: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: 5e4abfba-49c0-11ef-8776-851b0ebba9a2
MIME-Version: 1.0
Date: Wed, 24 Jul 2024 15:26:42 +0200
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, Maria Celeste
 Cesario <maria.celeste.cesario@bugseng.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
 <julien@xen.org>
Subject: Re: [XEN PATCH v5 12/17] xen: address violations of MISRA C:2012
 Directive 4.10
Reply-To: alessandro.zucchelli@bugseng.com
Mail-Reply-To: alessandro.zucchelli@bugseng.com
In-Reply-To: <alpine.DEB.2.22.394.2407231528040.4857@ubuntu-linux-20-04-desktop>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
 <42fbbb9ffb85893d049c80812b547ffb10ccda7e.1721720583.git.alessandro.zucchelli@bugseng.com>
 <alpine.DEB.2.22.394.2407231528040.4857@ubuntu-linux-20-04-desktop>
Message-ID: <5350aa753d36f8fccc3bb32b30828f40@bugseng.com>
X-Sender: alessandro.zucchelli@bugseng.com
Organization: BUGSENG Srl
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-24 00:29, Stefano Stabellini wrote:
> On Tue, 23 Jul 2024, Alessandro Zucchelli wrote:
>> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
>> 
>> Modify creation rule for asm-offsets.h to conform to
>> the new standard and to not generate conflicting guards
>> between architectures (which is a violation of the directive).
>> Modify generic-y creation rule to generate code without violations
>> and to conform to the new standard.
>> 
>> Mechanical change.
>> 
>> Signed-off-by: Maria Celeste Cesario  
>> <maria.celeste.cesario@bugseng.com>
>> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
> 
> I know I gave my Reviewed-by already but I have a question below...
> 
> 
>> ---
>> Changes in v5:
>> - edit inclusion guards of autogenerated files
>> Commit introduced in v3
>> ---
>>  xen/build.mk                     | 7 ++++---
>>  xen/scripts/Makefile.asm-generic | 8 +++++++-
>>  2 files changed, 11 insertions(+), 4 deletions(-)
>> 
>> diff --git a/xen/build.mk b/xen/build.mk
>> index 0f490ca71b..32624d3097 100644
>> --- a/xen/build.mk
>> +++ b/xen/build.mk
>> @@ -47,6 +47,7 @@ asm-offsets.s: arch/$(SRCARCH)/$(ARCH)/asm-offsets.c
>> 
>>  arch/$(SRCARCH)/include/asm/asm-offsets.h: asm-offsets.s
>>  	@(set -e; \
>> +	  guard=$$(echo ASM__${SRCARCH}__ASM_OFFSETS_H | tr a-z A-Z); \
>>  	  echo "/*"; \
>>  	  echo " * DO NOT MODIFY."; \
>>  	  echo " *"; \
>> @@ -54,12 +55,12 @@ arch/$(SRCARCH)/include/asm/asm-offsets.h: 
>> asm-offsets.s
>>  	  echo " *"; \
>>  	  echo " */"; \
>>  	  echo ""; \
>> -	  echo "#ifndef __ASM_OFFSETS_H__"; \
>> -	  echo "#define __ASM_OFFSETS_H__"; \
>> +	  echo "#ifndef $$guard"; \
>> +	  echo "#define $$guard"; \
>>  	  echo ""; \
>>  	  sed -rne "/^[^#].*==>/{s:.*==>(.*)<==.*:\1:; s: [\$$#]: :; p;}"; \
>>  	  echo ""; \
>> -	  echo "#endif") <$< >$@
>> +	  echo "#endif /* $$guard */") <$< >$@
>> 
>>  build-dirs := $(patsubst %/built_in.o,%,$(filter 
>> %/built_in.o,$(ALL_OBJS) $(ALL_LIBS)))
>> 
>> diff --git a/xen/scripts/Makefile.asm-generic 
>> b/xen/scripts/Makefile.asm-generic
>> index b0d356bfa3..2d2fd9f76e 100644
>> --- a/xen/scripts/Makefile.asm-generic
>> +++ b/xen/scripts/Makefile.asm-generic
>> @@ -32,7 +32,13 @@ old-headers := $(wildcard $(obj)/*.h)
>>  unwanted    := $(filter-out $(generic-y) 
>> $(generated-y),$(old-headers))
>> 
>>  quiet_cmd_wrap = WRAP    $@
>> -      cmd_wrap = echo "\#include <asm-generic/$*.h>" > $@
>> +cmd_wrap = \
>> +    guard=$$(echo ASM_GENERIC__${SRCARCH}__$*_H | tr a-z A-Z); \
> 
> Shouldn't this be: ASM_GENERIC__$*_H  according to the coding style?

Yes, you are right, this slipped through.

>> +    echo "\#ifndef $$guard" >$@.new; \
>> +    echo "\#define $$guard" >>$@.new; \
>> +    echo "\#include <asm-generic/$*.h>" >>$@.new; \
>> +    echo "\#endif /* $$guard */" >>$@.new; \
>> +    mv -f $@.new $@
>> 
>>  quiet_cmd_remove = REMOVE  $(unwanted)
>>        cmd_remove = rm -f $(unwanted)
>> --
>> 2.34.1
>> 

-- 
Alessandro Zucchelli, B.Sc.

Software Engineer, BUGSENG (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 13:28:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 13:28:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764214.1174567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWc2m-0001f8-8r; Wed, 24 Jul 2024 13:28:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764214.1174567; Wed, 24 Jul 2024 13:28:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWc2m-0001f1-68; Wed, 24 Jul 2024 13:28:36 +0000
Received: by outflank-mailman (input) for mailman id 764214;
 Wed, 24 Jul 2024 13:28:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GqIO=OY=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sWc2l-0001ev-GW
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 13:28:35 +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 a058b82b-49c0-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 15:28:34 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a7abf92f57bso22244766b.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 06:28:34 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a92dddccdsm188885966b.79.2024.07.24.06.28.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 06: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: a058b82b-49c0-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721827714; x=1722432514; 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=/7e6GFagVKkp/el1EawOmsK1r0OoxC/mDz8AB0vr1l0=;
        b=XJo1/sweu/xNhlUcjG9Sgq7b/P5JLshgCJYWY7+E8akHEm+TnoO/38uDsCTT1/7VUe
         VWYN3A4LK1s0lEpNdQjXeKMSOZ9jYTwQnwi0Zbkh39ZpoeF0R8dzsgeDKnATMqf4ZqBh
         S5PBSacSTH5q7oawOPm1dyC6tvp3P67V6g8eM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721827714; x=1722432514;
        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=/7e6GFagVKkp/el1EawOmsK1r0OoxC/mDz8AB0vr1l0=;
        b=C+S34FSsZVQZ+wueOnfekfYGCzpYYCnXX6tDCDizfzCqr1qMoAiKC+oqojMLjBeBTE
         HYv7tziJnb8ywhYWwQq7jb9NVPLX8zrLNnv9Y4rMjj19gIgK8nrfqnIeNsvD7qJJvb88
         ItaIDlW5nFI9a3hYiSxag9sKYhmx05srw6L/Nkv93HWyxfZfhQJWQV/nXdI6AJ6EANUs
         uWDKa6L05qqNrkl5Ozl+n5ZdxxMRnDdIagiYiaNLAIoZykW6Xsu0cMaoVF1YqG5b02hB
         QW0+G/9PEnP/eNwemeuksPQXVufKWje0gg2/a1cudywzrEsTLeFoL21ePBrNa2Q8aWTO
         q4WQ==
X-Forwarded-Encrypted: i=1; AJvYcCUMvXAHetXqoXRS2o0tzIFEQiYmrL9Wu3NBy/ivIBImLu+Xxn6wnbv+KoL+7bj1SeBaI9zejocjlcy+vmADjKVcbKFN+YAv2qT2bnJw1Tg=
X-Gm-Message-State: AOJu0YyZKvABojfDhQe0XuXnwlf02O4efwMlPYraVHEOKc5sPUiBp/qf
	/oLAlk6H0VMyEGGeINeJF/vRSawW3p0YASolBjXFrpOeZ1jsvwZk+MhDEf6+PEI=
X-Google-Smtp-Source: AGHT+IFjCSiFhugZFh4FQ3jbLeYPd9G5GPMq5K7UK7K8jhg9al+MWL+Ama+ZtRRqGYbZTviCoIpttQ==
X-Received: by 2002:a17:907:2d29:b0:a7a:ae85:f25a with SMTP id a640c23a62f3a-a7aae860315mr180561966b.64.1721827713975;
        Wed, 24 Jul 2024 06:28:33 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Wed, 24 Jul 2024 14:28:31 +0100
Message-Id: <D2XSZET3RRIS.12CXT6HXUEBJB@cloud.com>
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Daniel P .
 Smith" <dpsmith@apertussolutions.com>,
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, "Gene Bright" <gene@cyberlight.us>,
 "Andrew Cooper" <andrew.cooper3@citrix.com>, "Xen-devel"
 <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 1/2] x86/efi: Simplify efi_arch_cpu() a little
X-Mailer: aerc 0.17.0
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-2-andrew.cooper3@citrix.com>
 <D2WYR6RSF2NH.3FCEH00B4ZRZ2@cloud.com>
 <d4860b8f-8562-4987-bd1b-fdbeacc0a994@suse.com>
In-Reply-To: <d4860b8f-8562-4987-bd1b-fdbeacc0a994@suse.com>

On Wed Jul 24, 2024 at 6:42 AM BST, Jan Beulich wrote:
> On 23.07.2024 15:47, Alejandro Vallejo wrote:
> > On Mon Jul 22, 2024 at 11:18 AM BST, Andrew Cooper wrote:
> >> +    if ( (eax >> 16) !=3D 0x8000 || eax < 0x80000000U )
> >> +        blexit(L"In 64bit mode, but no extended CPUID leaves?!?");
> >=20
> > I'm not sure about the condition even for the old code. If eax had 0x90=
000000
> > (because new convention appeared 10y in the future), then there would b=
e
> > extended leaves but we would be needlessly bailing out. Why not simply =
check
> > that eax < 0x80000001 in here?
>
> eax =3D 0x90000000 is in leaf group 0x9000, not in the extended leaf grou=
p
> (0x8000). The splitting into groups may not be written down very well,
> but you can see the pattern in e.g. groups 0x8086 and 0xc000 also being
> used (by non-Intel non-AMD hardware), without those really being extended
> leaves in the sense that 0x8000xxxx are.
>
> Jan

The code is checking for a number specifically in the extended group, but
that's the output of leaf 0x80000000 which is defined to be just that.

AMD: "The value returned in EAX provides the largest extended function numb=
er
      supported by the processor"

Intel: "Maximum Input Value for Extended Function CPUID Information."

Unless there are quirks I don't know about (I admit it's not unlikely) I ju=
st
don't see why this condition needs to be anything else than a check that th=
e
maximum function number is bigger than any of the leaves we read further ah=
ead.

If the number happens to start with 8000, that'd be fine; but there's no re=
ason
to bail out if it was 8001. And even if there was, the exit message is
misleading as it's claiming there's no extended CPUID leaves when in realit=
y an
unexpected max-extended-leaf was read off the base extended leaf.

Not that it matters a whole lot in practice because that's going to be with=
in
range. But it feels like a needless complication of the check.

Regardless, as I said it's more of a comment on the previous code than it i=
s
about this mechanical transformation.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 13:31:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 13:31:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764221.1174578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWc5R-00038f-M1; Wed, 24 Jul 2024 13:31:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764221.1174578; Wed, 24 Jul 2024 13: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 1sWc5R-00038Y-Ir; Wed, 24 Jul 2024 13:31:21 +0000
Received: by outflank-mailman (input) for mailman id 764221;
 Wed, 24 Jul 2024 13:31:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWc5Q-00038M-Sv; Wed, 24 Jul 2024 13:31:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWc5Q-0007FA-J8; Wed, 24 Jul 2024 13:31:20 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWc5Q-0001R9-4s; Wed, 24 Jul 2024 13:31:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWc5Q-0002g9-4P; Wed, 24 Jul 2024 13:31: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dncC1FbnYwKvlXwJ9HJSvbjnc0dSWNZ+20LrZXltVys=; b=TQg6r4ZvYMiHJbh8oWQx3ndkSI
	ivh/fT8IHVPqMtOGuCL1Gl31b8KEIejF/GW8gaP2Jis8S0jQF0RNcJ+LOUe6D7uqqgkyqg91SNYt4
	t6+qUcBCmr20mNkOAzpKtrSVaWu8ELizTH+bgvrciLWVqnqRbdcjXBv5Qny/A0zSsscc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186983-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186983: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=a9c8c47d5347c74f5e7e7cb859912a276c6e9fb8
X-Osstest-Versions-That:
    ovmf=d4ae23b1e6c5fe95205818fcae9d5561c20588d3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 13:31:20 +0000

flight 186983 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186983/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 a9c8c47d5347c74f5e7e7cb859912a276c6e9fb8
baseline version:
 ovmf                 d4ae23b1e6c5fe95205818fcae9d5561c20588d3

Last test of basis   186980  2024-07-24 08:17:07 Z    0 days
Testing same since   186983  2024-07-24 10:43:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ard Biesheuvel <ardb@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   d4ae23b1e6..a9c8c47d53  a9c8c47d5347c74f5e7e7cb859912a276c6e9fb8 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 13:36:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 13:36:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764230.1174588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWc9i-0003ni-7h; Wed, 24 Jul 2024 13:35:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764230.1174588; Wed, 24 Jul 2024 13:35: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 1sWc9i-0003nb-46; Wed, 24 Jul 2024 13:35:46 +0000
Received: by outflank-mailman (input) for mailman id 764230;
 Wed, 24 Jul 2024 13:35: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=i70y=OY=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sWc9h-0003nB-4K
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 13:35:45 +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 9f533bdc-49c1-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 15:35:43 +0200 (CEST)
Received: from BL1P221CA0011.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:2c5::23)
 by SN7PR12MB8130.namprd12.prod.outlook.com (2603:10b6:806:32e::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.20; Wed, 24 Jul
 2024 13:35:39 +0000
Received: from BL6PEPF0001AB4F.namprd04.prod.outlook.com
 (2603:10b6:208:2c5:cafe::b4) by BL1P221CA0011.outlook.office365.com
 (2603:10b6:208:2c5::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.20 via Frontend
 Transport; Wed, 24 Jul 2024 13:35:38 +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.7784.11 via Frontend Transport; Wed, 24 Jul 2024 13:35:38 +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, 24 Jul
 2024 08:35:38 -0500
Received: from [172.23.111.139] (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, 24 Jul 2024 08:35: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: 9f533bdc-49c1-11ef-bbfe-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d/eBxhTshMpT5Kq6VsOqAjBc+/IC+6AbqM+u2BJzxY9K3Nz59GwyGzwh2zp0TxRKl5c9dYDmBEqvA6TZNK5SwF6sBMxOLU+rSiv9hXEI8RmWWb4wbDWPbvKJmu0P9sEHlLKlw69yFSteCVKCB7bcB3pxJXgBBLvnakPD9nlwmdkivilQzZmRSexHj87AElEXvwyfHdo8VhufcAEZOmkuUpV6+FqJqMos5wnUX8fok2q/NVyiDaSyn5LxVNjO5l20Xe0S0f4nWTkA7FPy5ZQUYVpGiigNslrB2NTwtZd0gLkkxOaiE7CBzfQdcCy3OEhXgRsLUG/5HcAVTNJS95+srw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=opazuiMa3MEJlGARPBRbOaInCWrVby0T5oXoADeSrJ4=;
 b=RWm5jGnpmqChDCiUbAPASrE9RMM3k75RdlAVJ4QXStUIK3z6Ba5yL6g5xjzYOdHee0YIX9cDhJxyAiwZp4LjeExV3p09UmkD6wRRzNuMg2VF4NE4ekOBWfLS9ec/RsLnLpCfYrGIeUkzd1wvbu4z9Yyg1og0xNcyDGWKENPz3tvlP3pLSTFQ0BaKikjB5uBl8JMM+SUCJSNcNk+JNPdnHlYSGOSfXpE7wmfHnA30XccJ1xZq+2t+P15kAYG2uGvS4UcrxQgznYEZJ+3LG/ZC2Ib3QKKevKB6DljV91ekr9rGkIa9YTVdFTIeyTYzqOUcGqua1s1MNJvuTsb4WwGC4w==
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=opazuiMa3MEJlGARPBRbOaInCWrVby0T5oXoADeSrJ4=;
 b=qdJWZx57HyVVcTVNn5/7hngFx/G4ziSVDOGU7PtSidv4ZrmdQQeu65kUbQDKY2Oq5wxmvNeWADtlYUMn4bqrwid9B3IBbYSDtRklHGdCh9kpbOOsb+Xn8+R6mT6nuRKm2VVdPuMUPe54iQrlHxkEkC6eu5/uml/yBSf9OryqOf8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <50cc16d8-2811-46db-9482-fda88fda3d9e@amd.com>
Date: Wed, 24 Jul 2024 09:18:16 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] hotplug: Restore block-tap phy compatibility
 (again)
To: Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jandryuk@gmail.com>
CC: <xen-devel@lists.xenproject.org>, Anthony PERARD
	<anthony.perard@vates.tech>
References: <20240715234631.4468-1-jandryuk@gmail.com> <Zp/GcCUVPX/d/7qx@l14>
 <e65e7307-7955-4427-9a10-7bfc1e1b7d59@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <e65e7307-7955-4427-9a10-7bfc1e1b7d59@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: BL6PEPF0001AB4F:EE_|SN7PR12MB8130:EE_
X-MS-Office365-Filtering-Correlation-Id: e6a457b1-8fc2-46af-5593-08dcabe5815d
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?cE9lT09IbzdNK3JobktlaTk0ZVMvOTBlZ0cwMGZRUTFsU3VTLzJFVDBQRHdB?=
 =?utf-8?B?ZDhUaktaVnJtRVE4SVVuUXNhdkpiVWR1QjZ6SFlwM3JHcjZMVVNHbW94M3pQ?=
 =?utf-8?B?WDVqZXhWaWZTa2ZOSFE5RFJ5djhLUXoxRW5NNWVBRHV0cFcyYVRKMElFRU5W?=
 =?utf-8?B?a0x5ZXNDSkw4aHlsL0U2TjNHQi82T2xlSmEyQ3pxL1dScTVKUWVydGVZWlVU?=
 =?utf-8?B?RVZHYzRwaWdUOEVMZ1RJd0dZU2VsZGEvSG9hbG5mbDhqZm9Oa2taNWV1Y0NK?=
 =?utf-8?B?Zk1SMGllQ0FUenR3RmM2NnVCTzVZWkh6cTMvTWIrQ2Q4ZkZ4Sks2dEl2WVVH?=
 =?utf-8?B?Um5YUXQvKzRyaklQSnpOb1JmN3lvS2J1WUNWbFJ4MU05akdaNFlhZHErTllW?=
 =?utf-8?B?UDhldjNIVzczeG0wM2dTR2tseEpzZnI1aG9yY3hQbW9BMWRqUDg3NFZQZkdE?=
 =?utf-8?B?RW5GalRjUVB0SHdnbU1jcDlFaUNWc1Vab2dURW1nbUZZWnpiR3M4VnNkWnFw?=
 =?utf-8?B?NTA0R0VJTGNJWUZnZ2tUSTBKWU44KzFua1FBcmJGb2xoY1V1dU1vdEQvU2V5?=
 =?utf-8?B?M3A1WVBzVDc3RFJRazJUNzcyUnVNSzU3NG5MNEQwV2RiVmxzT1Mxckp1MHgx?=
 =?utf-8?B?dnY4R0NtWXArNWJsdEdnTVhlVmwyTFJOaUhmQlJpWlB4YmNQUUgwOHpidXJ4?=
 =?utf-8?B?Mkt2MjN0aDhvTjlSdnZXZ25tckJzU1BCdEZBdHk0L1JvVEgySUVIZ1JSR25Q?=
 =?utf-8?B?aHhDcDVBZll5TVlZZUg2aXNYQ3NzUzRraGpiWUlPV25UN3NkUWVhZ25oWGQv?=
 =?utf-8?B?aTdIWGo3aThtclZRMzROaEZUMERiVitjekhQYVV4V0tTcG12QmM3c1l3Wjhl?=
 =?utf-8?B?TVFxNTA1WDhra2JtT01KT0xTQTdNYjBHQjIvMSt0eEZmWi9semw4V0JibmNj?=
 =?utf-8?B?YmNQN0Z0cTVNOHRWdUFiVnVxMGdTY0dQYUprM2oraVJpSU9LaForckJqR3p5?=
 =?utf-8?B?WUFzaUZZUlE3NVhoRnZacm1ORnA0OHpKdmg0WC9KS1FTazJ4ZDQ2OW5xajg4?=
 =?utf-8?B?Z2Q5SkVjT2ZTVEhwWUh4L0JGcEtzLzcwTC9jalB4WXNRZE5LWFVqQ0J1akJZ?=
 =?utf-8?B?VFlXeU5TM2kwODVUZWZvdnloQWc5NXJjQnJNVnpzYlByLzBzd0d3NTNreWJp?=
 =?utf-8?B?QnNBcmp4bFhqOEpScTM5N1VFL3N6OUdINnMrZEplM1hldGxDUnYyaDNFNFNz?=
 =?utf-8?B?NTVjdlhIT0ZmbzVSM2dSdE9ISnBONm1QemZLaXIwNDNKbGsvaWh4YVJqZmNS?=
 =?utf-8?B?ZlM2VFZZQ0Z6eHg4T1cvTFBTNTJZWndZWUZBdmM1TWVZSFRNSUNHdlJtZXk4?=
 =?utf-8?B?cDhGa1VPY0ozZ1BwUnJjK0orL2g1bVd0aUk2RjdHUTAyaWpNMG9tYnh0U1FR?=
 =?utf-8?B?SGE2TjMyZ0dxbXRaWUdIaUV0QjRHM3B3S25nUnExTS8wNkg4NGdralVnSy95?=
 =?utf-8?B?QTlTMC82eVZhRFVaeXhBb2ExRXBFRHk5T2kzK1FLQnZKTHlScU40TlNxbHlF?=
 =?utf-8?B?akhsbS94cG1tNXc0UFRQTkhLWnA4TkVMNUdXR3NCSlJ3TjlaRUxHcFlvQ2VY?=
 =?utf-8?B?Yk1KOWxzZmNKYzRjMUJXbEdSWDRwQmg4ejJRcVp0ODF4N0NQRlZsZHZPdG5Y?=
 =?utf-8?B?NVRjWHVacDdwcFhudlV5Z1RSK1hBY0N4cXErRHhYUXdUSkM0bFRyTGNrQUZl?=
 =?utf-8?B?NDRUNUtlK3p6S2F2RGVZYkJnR01zUGZtdHUydkl6Vml6MEhqb3VmWm5nN0Fi?=
 =?utf-8?B?cmJMTE5UeHdJV2M1Q2dDTmVOR05GOGlMa2UvMlhLSlk4N0J1OTNoVlV4VFV6?=
 =?utf-8?B?dE9FV0lialpicGpaUENFSUlMMkpoV08wNjVwRTRvOWJZbnAweWFNTWhsZzA2?=
 =?utf-8?Q?XLTT6Bx/wzZxnOFgIHAn/sQfuhMUJZhF?=
X-Forefront-Antispam-Report:
	CIP:165.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: 24 Jul 2024 13:35:38.5224
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e6a457b1-8fc2-46af-5593-08dcabe5815d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: SN7PR12MB8130

On 2024-07-24 08:41, Jan Beulich wrote:
> On 23.07.2024 17:04, Anthony PERARD wrote:
>> On Mon, Jul 15, 2024 at 07:46:31PM -0400, Jason Andryuk wrote:
>>> "$dev" needs to be set correctly for backendtype=phy as well as
>>> backendtype=tap.  Move the setting into the conditional, so it can be
>>> handled properly for each.
>>>
>>> (dev could be captured during tap-ctl allocate for blktap module, but it
>>> would not be set properly for the find_device case.  The backendtype=tap
>>> case would need to be handled regardless.)
>>>
>>> Fixes: 6fcdc84927 ("hotplug: Restore block-tap phy compatibility")
>>
>> Do you mean f16ac12bd418 ("hotplug: Restore block-tap phy compatibility") ?
> 
> Which, when replacing it, made noticeable that the above and ...
> 
>>> Fixes: 76a484193d ("hotplug: Update block-tap")
> 
> ... this hash also were too short. Please make sure you use 12 digits, as
> indicated by docs/process/sending-patches.pandoc.

Sorry about that.  I'll make sure to use 12 in the future.  Thanks for 
catching and fixing up.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 13:42:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 13:42:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764241.1174598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWcG8-0005o0-Vo; Wed, 24 Jul 2024 13:42:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764241.1174598; Wed, 24 Jul 2024 13:42: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 1sWcG8-0005nt-Ro; Wed, 24 Jul 2024 13:42:24 +0000
Received: by outflank-mailman (input) for mailman id 764241;
 Wed, 24 Jul 2024 13:42:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWcG7-0005nk-6g
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 13:42:23 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8d9bb430-49c2-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 15:42:22 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2ef2d7d8854so38820511fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 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
 4fb4d7f45d1cf-5a7f0bf7489sm4338777a12.57.2024.07.24.06.42.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 06:42: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: 8d9bb430-49c2-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721828541; x=1722433341; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sZTOPwnQLlYN6U49shl5ZdC1sX9d5RXW2BJovdiRU0A=;
        b=FGlmsdTGhXSMV+5vH3PYxIxVHErEr2NoCVCvYa6yHzWBFZ291sI8Yb9/5rv0KMg59G
         4zatGLSZ2mXDwJggL0Fut1N+saWR1SYyUHSgOA+LVugtjjz04j2d5ojFbveViOLd47Mh
         S/y0nZHvs/d3A3anGmJ/88A3T2CXQ2eiCs5uEOls24gSJ5MQUd0IDCAmQivIx7EaOqye
         5BH1fbq9J42+f2OlgliimS9NYRLsiZjj3lSwnXFpS6kMX7JsBguNsTIEATM7+9+56u2g
         g52kIS8+S0WRC3ZWTmtFjE+kPeapxj9nLJs7foPhm1tZKcU/iniF4sCAICzTgypYjfbb
         /H5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721828541; x=1722433341;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sZTOPwnQLlYN6U49shl5ZdC1sX9d5RXW2BJovdiRU0A=;
        b=oBIA+RT4EU/ExLgAbLc3o56N2GOCCJwb2eFCdc+9C1vkWMrYUpvqCzoN1JOXNsID7S
         91bEGjupP6ooDA8Y7lTYvXX7IqPf7n58+2cWxl6XdDbtytR6K5nWMSunzKvipciTr7jT
         YCJJBKKwj1Fk0cI57jqgPXPV9SsS7Wr33RF2IVLpjvaYpDWvKy8vSFTQHdJad7waot2U
         Ar4RboXBF7m3bdK6W+de6msMQbFCkFeG5GaRsXLF7yDTdd1J8DRQMBy9OXiitMYJwRwi
         /PGjWhd6wsFYCxSvjm+Niqm6P9oD7vkGXPhRnxWhnCPdUyqHSO0qBBBpafP5QIsbKCXt
         7lcw==
X-Forwarded-Encrypted: i=1; AJvYcCVlhBrU7ffKGkS3SbgjONeYl3WL67dKsjdZ0I2ANWAj90br1wCN0oBN4HhN0t8xLTLHJuJBNkscOMIaKCTOvl7V5bv5E/bRPOZCm9s8JFQ=
X-Gm-Message-State: AOJu0YyYyzBBRv8/oi+9c4Gmee4c9tcL/Wh7WwqIOd6xr7kNwEQrMvl5
	QBQieaNJguE/JC70IQnQewLt4gOX+z7f5V+jU+88KYbPnyF/8fS/GLxdDC1tug==
X-Google-Smtp-Source: AGHT+IHJHkAm0khRRJ5m5LkQaD4bCxferwRBEZG16xRjpq6rJzLlI4s+e/Lwm+h3UFBZVV6mnroHSw==
X-Received: by 2002:a2e:8697:0:b0:2ef:2d3d:3cc3 with SMTP id 38308e7fff4ca-2f0324d88f3mr14591001fa.4.1721828541464;
        Wed, 24 Jul 2024 06:42:21 -0700 (PDT)
Message-ID: <5e20a7c7-d369-4be2-a9e4-63de8ef4e5c7@suse.com>
Date: Wed, 24 Jul 2024 15:42:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/efi: Simplify efi_arch_cpu() a little
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Gene Bright <gene@cyberlight.us>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-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: <20240722101838.3946983-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.07.2024 12:18, Andrew Cooper wrote:
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -738,29 +738,30 @@ static void __init efi_arch_handle_module(const struct file *file,
>  
>  static void __init efi_arch_cpu(void)
>  {
> -    uint32_t eax = cpuid_eax(0x80000000U);
> +    uint32_t eax;
>      uint32_t *caps = boot_cpu_data.x86_capability;
>  
>      boot_tsc_stamp = rdtsc();
>  
>      caps[FEATURESET_1c] = cpuid_ecx(1);
>  
> -    if ( (eax >> 16) == 0x8000 && eax > 0x80000000U )
> -    {
> -        caps[FEATURESET_e1d] = cpuid_edx(0x80000001U);
> +    eax = cpuid_eax(0x80000000U);
> +    if ( (eax >> 16) != 0x8000 || eax < 0x80000000U )

Only in the context of the further discussion with Alejandro I've spotted
that the rhs of the || is now dead code. A proper transformation of the
earlier condition would have required <= in place of <.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 13:47:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 13:47:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764247.1174609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWcL0-0006py-Gf; Wed, 24 Jul 2024 13:47:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764247.1174609; Wed, 24 Jul 2024 13:47:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWcL0-0006pr-CW; Wed, 24 Jul 2024 13:47:26 +0000
Received: by outflank-mailman (input) for mailman id 764247;
 Wed, 24 Jul 2024 13:47:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWcKz-0006ph-R8; Wed, 24 Jul 2024 13:47:25 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWcKz-0007WM-Jo; Wed, 24 Jul 2024 13:47:25 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWcKz-0001va-BH; Wed, 24 Jul 2024 13:47:25 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWcKz-00009u-Ak; Wed, 24 Jul 2024 13:47: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=S70vx55he8zRgSn8tk7Kr1envQOItfUiUutXcSBc7i8=; b=eEJSxthCgZ3/J5evyRvcoM6vJ6
	Z4oL8X8IzMJbSlc/LKPOgD7uPYC48yyzKqEp4MFmNHXmXoXButFup9v62Uu1CD3rx1Qd9WltgL4xP
	pqh1AvjdKQvUV3XDzn/g+61MeSePuYv3CWxC1o+uBV9unXGKEuqg1Uf47r9RlIm13DPY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186981-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186981: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c6661e89102065d3e04799b9baa9f928a1fc40da
X-Osstest-Versions-That:
    xen=a17b6db9b00784b409c35e3017dc45aed1ec2bfb
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 13:47:25 +0000

flight 186981 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186981/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c6661e89102065d3e04799b9baa9f928a1fc40da
baseline version:
 xen                  a17b6db9b00784b409c35e3017dc45aed1ec2bfb

Last test of basis   186970  2024-07-23 17:02:12 Z    0 days
Testing same since   186981  2024-07-24 10:02:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alejandro Vallejo <alejandro.vallejo@cloud.com>
  Bertrand Marquis <bertrand.marquis@arm.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Jason Andryuk <jason.andryuk@amd.com>
  Michal Orzel <michal.orzel@amd.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>
  Sergiy Kibrik <Sergiy_Kibrik@epam.com>
  Stefano Stabellini <sstabellini@kernel.org>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   a17b6db9b0..c6661e8910  c6661e89102065d3e04799b9baa9f928a1fc40da -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 13:47:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 13:47:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764250.1174617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWcL8-00077R-Ob; Wed, 24 Jul 2024 13:47:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764250.1174617; Wed, 24 Jul 2024 13:47:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWcL8-00077I-L0; Wed, 24 Jul 2024 13:47:34 +0000
Received: by outflank-mailman (input) for mailman id 764250;
 Wed, 24 Jul 2024 13:47:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWcL7-00076e-JO
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 13:47:33 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 468a5124-49c3-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 15:47:32 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52f04150796so4893904e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 06:47: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
 a640c23a62f3a-a7a3c8bf2f5sm645695466b.120.2024.07.24.06.47.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 06:47: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: 468a5124-49c3-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721828852; x=1722433652; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gYvcii2AZai9xjX0sQ5AVkCB4hpRUEiCPLvitN9Dpk8=;
        b=LSuo2pvGKMs7w7GkiBsXSq+FA2YGmCywk/zVJIEoex57X8BwBkUvz0VI2G6gRIjG2F
         GiJfsYMAO4yn5eZbqV2FHkX5D0vXm3BHQsPEH4YS1LbOJoJsTpp8NW0No/J008p7Sn8D
         DcjirMSM353CQC/6XgfXQN4ipSE8dHndv+JTv1W7Y8MKuvXfR5H1ivLejQBP/iD4ri+y
         OaQRozW2QONKRwPscrWJXdx2tmNqa0YOEVOqE/doxqseZjSLae0KFNbz6kZfqS/n8zS4
         JpORpa+UI3oSkM6RFOSOrEFmQYeTPssKBYPv4rYWSGRCwlIfmF6389DkDGmYEQWKwN6/
         Sa5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721828852; x=1722433652;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gYvcii2AZai9xjX0sQ5AVkCB4hpRUEiCPLvitN9Dpk8=;
        b=H49Ekdd+Gkor8EP66OL8N2FIWLTo1DBZ0qVs8t7L0+yZCuvens8jsGVYsbPs9BKlXS
         oDaNUwbthIBCos5EqBqKDhCpZxBjRe24L9dCjJdnKyHULpw4YHRAunFUvk4UvZVO/c/t
         2k17ln2LCGsqobAhtIXM0el1AjA0FF9iMT1fXq7VUHocdh7oDZVnUA8xtgNcqpUuDsZ0
         9uH3bNjxAUQmW5nVKjDXMxgMnUPwQ4tJswAROH9wEd6ciIwU6gC/t43dZgXflj1d+ovl
         FBdZQyWeKaBarVqAsIfItJiAQvt0lWkX+45Fyek59RqZBbIdQWiKgNR49a26dVtEyzr6
         JIsg==
X-Forwarded-Encrypted: i=1; AJvYcCUOsd49BX6lRsWgju+BQgISoapJXHeFbg8gkbhO5W/cOPA8GzoJEjmcSK16bsg71u26Ous1yI10bG7qBhO+gZ6XSN9awGwX0BnCAW7JJv4=
X-Gm-Message-State: AOJu0YzPJxW4VvS6vLRg71Q5SemwKYwVqLVGkfKf/5mOflSzxupyeCoT
	hviSMonNysWyt3eYZRAkGLe18t2IvheXjrFGAGNq7FBW4xK7DHhuend9cjPXlg==
X-Google-Smtp-Source: AGHT+IERRmREmM3AzHqbE1mpVJpsw7LF9s7QEqeHhlNQPReV/bHnYMjDFma6s8dqyEiWhFdJyt+Qiw==
X-Received: by 2002:a05:6512:1584:b0:52c:e01f:3665 with SMTP id 2adb3069b0e04-52fceffe584mr1436688e87.25.1721828851958;
        Wed, 24 Jul 2024 06:47:31 -0700 (PDT)
Message-ID: <84aebc89-9d36-4841-8df7-c458fd20b9f2@suse.com>
Date: Wed, 24 Jul 2024 15:47:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/efi: Simplify efi_arch_cpu() a little
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Gene Bright <gene@cyberlight.us>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240722101838.3946983-1-andrew.cooper3@citrix.com>
 <20240722101838.3946983-2-andrew.cooper3@citrix.com>
 <D2WYR6RSF2NH.3FCEH00B4ZRZ2@cloud.com>
 <d4860b8f-8562-4987-bd1b-fdbeacc0a994@suse.com>
 <D2XSZET3RRIS.12CXT6HXUEBJB@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <D2XSZET3RRIS.12CXT6HXUEBJB@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 15:28, Alejandro Vallejo wrote:
> On Wed Jul 24, 2024 at 6:42 AM BST, Jan Beulich wrote:
>> On 23.07.2024 15:47, Alejandro Vallejo wrote:
>>> On Mon Jul 22, 2024 at 11:18 AM BST, Andrew Cooper wrote:
>>>> +    if ( (eax >> 16) != 0x8000 || eax < 0x80000000U )
>>>> +        blexit(L"In 64bit mode, but no extended CPUID leaves?!?");
>>>
>>> I'm not sure about the condition even for the old code. If eax had 0x90000000
>>> (because new convention appeared 10y in the future), then there would be
>>> extended leaves but we would be needlessly bailing out. Why not simply check
>>> that eax < 0x80000001 in here?
>>
>> eax = 0x90000000 is in leaf group 0x9000, not in the extended leaf group
>> (0x8000). The splitting into groups may not be written down very well,
>> but you can see the pattern in e.g. groups 0x8086 and 0xc000 also being
>> used (by non-Intel non-AMD hardware), without those really being extended
>> leaves in the sense that 0x8000xxxx are.
>>
>> Jan
> 
> The code is checking for a number specifically in the extended group, but
> that's the output of leaf 0x80000000 which is defined to be just that.
> 
> AMD: "The value returned in EAX provides the largest extended function number
>       supported by the processor"
> 
> Intel: "Maximum Input Value for Extended Function CPUID Information."
> 
> Unless there are quirks I don't know about (I admit it's not unlikely) I just
> don't see why this condition needs to be anything else than a check that the
> maximum function number is bigger than any of the leaves we read further ahead.
> 
> If the number happens to start with 8000, that'd be fine; but there's no reason
> to bail out if it was 8001.

How do you know? We'll learn once someone starts populating that leaf
group. It _may_ be the continuation of extended leaves then (once the
other 64k were all consumed, i.e. in perhaps hundreds of years). Just
take again the case where the 8086 groups is populated: What if there
[80000000].eax = 8086yyyy? That'll be wrong, as 8086 forms its own group.
So no, I'm similarly unaware of quirks, but with this we're trying to
guard ourselves against some entirely bogus output (from all we know
today).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 14:14:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 14:14:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764266.1174628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWcl6-0003co-P2; Wed, 24 Jul 2024 14:14:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764266.1174628; Wed, 24 Jul 2024 14:14: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 1sWcl6-0003ch-Lm; Wed, 24 Jul 2024 14:14:24 +0000
Received: by outflank-mailman (input) for mailman id 764266;
 Wed, 24 Jul 2024 14:14:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GqIO=OY=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sWcl5-0003cb-Ed
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 14:14:23 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 05acfe27-49c7-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 16:14:21 +0200 (CEST)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-52efbc57456so2996392e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 07:14:21 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7ab5528925sm56495966b.108.2024.07.24.07.14.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 07:14: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: 05acfe27-49c7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721830461; x=1722435261; 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=uIvp6zr2ZGQb6lFBNEM4WASwLJXa0rBzd1Y5LOnZC4s=;
        b=Xkm+MiOqrZ3n0exsedEqcvkJIE1+2N1aUxsKmStmt8+6V7HoTbjGQP2yg/EBNOB7kl
         5tq1jZo+PbvN8BoYmCIZwMhSM3CBt6MRRevRL3HYbzVszVfa5OGcIQ16YPwU/u8s9V5n
         X2xCer1paj4UzOCAEl7If2tPcUAJZUk55TRI8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721830461; x=1722435261;
        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=uIvp6zr2ZGQb6lFBNEM4WASwLJXa0rBzd1Y5LOnZC4s=;
        b=ZplAPLowu51Yrxt/goWGxJVkGOa7f0eJfjXYTPptUDa/pvI8KJoJal3i3JHTggRKKa
         UE+qAAmbUx0TCLWoVm4swYKp7fmNHZtw3ratcik+W4TFgjYph5/TO+6KMxUS4/DJ414E
         /6pDVDNNxZkb0hxJrywdTYHhpryZly4VK3vq2Jh3hKXGSbWiDHREELVkskydmDlta/45
         0Bwen9a6tW684z+edmZjR1/LWmhspqCnG4YPxTlmVJomEhasidLAr74lbU3FP+799ymY
         wlzzfEz7cJ4uKcuKaqJvb0YuI1GmHT+Wi3D1WWs1Q15vZtAx4SrbxyFIlTGSQeXuEg9w
         fXuw==
X-Gm-Message-State: AOJu0Yz2odtVmmnT9ImRaMnGWoSPO31BCn4KXPBg1aWLCluFKNgtinRi
	l43XVlwdD7KeJmveeMC76eYWGwc2Ll31FJ4giNuGdQQXWmb+xcxZnyCQ5Z0R3KE=
X-Google-Smtp-Source: AGHT+IHDFUoShWZ/6sCyyxAKvuMwvEt8B16AMCDCEjTTbUfg6P3arkHbiVWR5wQwqcVPcIyPcqCEnw==
X-Received: by 2002:a05:6512:3191:b0:52c:e07d:229c with SMTP id 2adb3069b0e04-52fcf009671mr1639479e87.22.1721830460782;
        Wed, 24 Jul 2024 07:14:20 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Wed, 24 Jul 2024 15:14:18 +0100
Message-Id: <D2XTYGTZNLGG.30IMOEEFPZB0W@cloud.com>
Cc: "Xen-devel" <xen-devel@lists.xenproject.org>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [RFC XEN PATCH v2] x86/cpuid: Expose max_vcpus field in HVM
 hypervisor leaf
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>, "Matthew Barnes"
 <matthew.barnes@cloud.com>
X-Mailer: aerc 0.17.0
References: <fa24cd3b232e8865eb6451e5f7af9cd203ce52ab.1721224079.git.matthew.barnes@cloud.com> <12e2c7b2-6d0b-4427-ac30-257bfea2aeab@suse.com> <669fa8ad.170a0220.843bc.3a17@mx.google.com> <a08d0d27-1d7b-4453-807c-3670cb4f05aa@suse.com> <66a0f8c9.050a0220.879ba.9673@mx.google.com> <a67ef182-b62b-4d0b-9532-a2356f145af5@suse.com>
In-Reply-To: <a67ef182-b62b-4d0b-9532-a2356f145af5@suse.com>

On Wed Jul 24, 2024 at 2:01 PM BST, Jan Beulich wrote:
> On 24.07.2024 14:51, Matthew Barnes wrote:
> > On Wed, Jul 24, 2024 at 07:42:19AM +0200, Jan Beulich wrote:
> >> (re-adding xen-devel@)
> >>
> >> On 23.07.2024 14:57, Matthew Barnes wrote:
> >>> On Mon, Jul 22, 2024 at 01:37:11PM +0200, Jan Beulich wrote:
> >>>> On 19.07.2024 16:21, Matthew Barnes wrote:
> >>>>> Currently, OVMF is hard-coded to set up a maximum of 64 vCPUs on
> >>>>> startup.
> >>>>>
> >>>>> There are efforts to support a maximum of 128 vCPUs, which would in=
volve
> >>>>> bumping the OVMF constant from 64 to 128.
> >>>>>
> >>>>> However, it would be more future-proof for OVMF to access the maxim=
um
> >>>>> number of vCPUs for a domain and set itself up appropriately at
> >>>>> run-time.
> >>>>>
> >>>>> GitLab ticket: https://gitlab.com/xen-project/xen/-/issues/191
> >>>>>
> >>>>> For OVMF to access the maximum vCPU count, this patch has Xen expos=
e
> >>>>> the maximum vCPU ID via cpuid on the HVM hypervisor leaf in edx.
> >>>>>
> >>>>> Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
> >>>>> ---
> >>>>> Changes in v2:
> >>>>> - Tweak value from "maximum vcpu count" to "maximum vcpu id"
> >>>>> - Reword commit message to avoid "have to" wording
> >>>>> - Fix vpcus -> vcpus typo
> >>>>> ---
> >>>>
> >>>> Yet still HVM-only?
> >>>
> >>> This field is only used when the guest is HVM, so I decided it should
> >>> only be present to HVM guests.
> >>>
> >>> If not, where else would you suggest to put this field?
> >>
> >> In a presently unused leaf? Or one of the unused registers of leaf x01
> >> (with the gating flag in leaf x02 ECX)?
> >=20
> > I could establish leaf x06 as a 'domain info' leaf for both HVM and PV,
> > have EAX as a features bitmap, and EBX as the max_vcpu_id field.
> >=20
> > Is this satisfactory?
>
> Hmm. Personally I think that all new leaves would better permit for multi=
ple
> sub-leaves. Hence EAX is already unavailable. Additionally I'm told that
> there are internal discussions (supposed to be) going on at your end, whi=
ch
> makes me wonder whether the above is the outcome of those discussions (in
> particular having at least tentative buy-off by Andrew).
>
> For the particular data to expose here, I would prefer the indicated re-u=
se
> of an existing leaf. I haven't seen counter-arguments to that so far.
>
> Jan

I recommended Matt originally to expose it on the HVM leaf for semantic
cohesion with the other domain-related data and because it's strictly just
needed for HVM, at least for the time being.

It is true though that it's not HVM-specific and could go elsewhere. There'=
s a
fiction of choice, but not so much in practice, I think. Re-using leaf 1 wo=
uld
overload it semantically, as it's already used for version reporting (just =
like
other architectural CPUID groups). Leaf 2 could be an option, but it's some=
what
annoying because it leaves (pun intended) no room for expansion. A potentia=
l
new leaf 6 would indeed need to ensure only subleaf0 is implemented (as do
leaves 4 and 5), but otherwise should be pretty harmless.

Andrew might very well have wildly different views.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764287.1174697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxi-0006aZ-Ro; Wed, 24 Jul 2024 15:31:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764287.1174697; Wed, 24 Jul 2024 15: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 1sWdxi-0006aS-Mp; Wed, 24 Jul 2024 15:31:30 +0000
Received: by outflank-mailman (input) for mailman id 764287;
 Wed, 24 Jul 2024 15: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdxg-0005Od-Vc
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:28 +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 ca1b5c54-49d1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:31:26 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2ee910d6a9eso10077391fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:26 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef26f1bc4asm14240491fa.40.2024.07.24.08.31.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:31: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: ca1b5c54-49d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835085; x=1722439885; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4O/hwQwHF6rfJLVATnZjtAz9ttGqfT93bsxm/gvlyso=;
        b=Fx02EhSWbV36Y2XPEQJhk4I3PD1/abDRG4Axwf3C9J3R/UkDK8tM/L+K3sUM/qJnoj
         2cYjw9B0lFsfi6HHaSccH8iJPwnHGFfInCHQjXcV6QECpZcCXeOC6Yu79HiUEU/6V0zz
         InFMCYbtJo8u9E1MjZ6BYIXxZ9CxbEhDuZlj18yxZowyrvUzuUBWzVR6jWBVINSCa6jM
         ORjmyMccpUlUmVMFtOQOZQJm2wNE/QwtCcWr+z8UseqSSXNuSYkte8/K6kelchcMIAED
         eWOAht0WGh0PJ0N2mY2hMfj+vRB3GH75JIz8B8ZPSiUdIa85hyxt+kTK1QZYCNriU10U
         ecww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835085; x=1722439885;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4O/hwQwHF6rfJLVATnZjtAz9ttGqfT93bsxm/gvlyso=;
        b=f99J9Kf15C1th2Qn3XXy0rtTCxAWAPYcCD6B3WyjnTQqlhbdAp6bUppC8J3goWHNWp
         BtBlIRV9e5UItRUZ5rtVZ7d0/S1CHFZkyKk/UU3fSl4MeT2DN0IEnIYr4qOFmodyqT6q
         ZbgQPJI5bneRzMp3zMX+1diU3jEZ3YFZ/mRB547yuqjKSNow2Lo1PzE12yhu9dJoQqQJ
         2/++dH0GnL/RmMnAtiOBO/Lhb+RdygL4FXWmoZYw/8krYtHYc8Js1lRMJPWLmr+xA1VX
         t7tCNUj47xzUkaORzIeR0j9KZsvi5AbBmGY8goUq2TdOCRxTi+9XLzt6HLb9SwJ7l6kd
         tz8w==
X-Gm-Message-State: AOJu0YyHQZ4ecA450fmPIePkzd6G5ZqePwoESKD8GAnfMS1quueliCfp
	x8SUNLMzPa9fCDbk+yJTPus49+FpfsuPbm3+VKJ8y76J/QKjO4wXuAbNrRxN
X-Google-Smtp-Source: AGHT+IFwW9NRyjYW7BQrQYvv6ZlUZAHMK5dZdh4otNlSjFLdBd76AEtDTO4J0u1G65gJH33NGBAHAg==
X-Received: by 2002:a2e:a4cd:0:b0:2ee:7c35:d892 with SMTP id 38308e7fff4ca-2f032d43da6mr6452101fa.17.1721835085036;
        Wed, 24 Jul 2024 08:31: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>
Subject: [PATCH v11 5/5] xen/riscv: test basic exception handling stuff
Date: Wed, 24 Jul 2024 17:31:19 +0200
Message-ID: <c407999ca7a7fb2772cfa8ea4b9b312cf4366c4d.1721731887.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721731887.git.oleksii.kurochko@gmail.com>
References: <cover.1721731887.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduces testing of some macros from <xen/bug.h>.

Also wraps this testing into SELF_TESTS config to not produce
a noise in the log related to functionality testing ( in the
current case, it is macros from xen/bug.h ) when CONFIG_SELF_TESTS
is disabled.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
---
 xen/arch/riscv/setup.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index a6a29a1508..4defad68f4 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -19,6 +19,22 @@ void arch_get_xen_caps(xen_capabilities_info_t *info)
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
     __aligned(STACK_SIZE);
 
+#ifdef CONFIG_SELF_TESTS
+static void test_run_in_exception(const struct cpu_user_regs *regs)
+{
+    printk("If you see this message, ");
+    printk("run_in_exception_handler is most likely working\n");
+}
+
+static void test_macros_from_bug_h(void)
+{
+    run_in_exception_handler(test_run_in_exception);
+    WARN();
+    printk("If you see this message, ");
+    printk("WARN is most likely working\n");
+}
+#endif
+
 void __init noreturn start_xen(unsigned long bootcpu_id,
                                paddr_t dtb_addr)
 {
@@ -26,6 +42,10 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     trap_init();
 
+#ifdef CONFIG_SELF_TESTS
+    test_macros_from_bug_h();
+#endif
+
     printk("All set up\n");
 
     for ( ;; )
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764283.1174653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxf-0005SB-Gx; Wed, 24 Jul 2024 15:31:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764283.1174653; Wed, 24 Jul 2024 15:31:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxf-0005RR-9Q; Wed, 24 Jul 2024 15:31:27 +0000
Received: by outflank-mailman (input) for mailman id 764283;
 Wed, 24 Jul 2024 15:31:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdxd-0005Od-VT
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:25 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c892aca8-49d1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:31:23 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2ee910d6a9eso10076811fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:23 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef26f1bc4asm14240491fa.40.2024.07.24.08.31.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08: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: c892aca8-49d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835083; x=1722439883; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5G2pjQd0Lv6vwExyaSIrvv5vmUPPgawgWplARMvkx+E=;
        b=Mrsda4eaC9nBeobRf4UuXBCtazwOdLvRunCaoKrFLrrRil8deqV/VOHXtib2IjCNxq
         Io8YYc/gql/q1LD/E0nBK9gkyJiQ1uo05gPdXrpsFJiqe/hsqtwQCnJfPYqhth7ZjCDR
         6jpBkpQTTpcivWE9JiP639wAWg4UkGmKGrX3DgNLQ1baoEWdnd55Bb4T0cKJANnIOPyk
         efSv49lg4GTJLIP1kqYdSFqEE1xtgQA0kV5oSTr1kV6EP204iphZEnnk/bZUjc70LNQs
         lLJg4f2ucqlHXCUpJFh/kgJNLukecDNokMpQCwL/Wsq7aqbZvPURKSijLVs4jTzD1NAY
         1sYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835083; x=1722439883;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=5G2pjQd0Lv6vwExyaSIrvv5vmUPPgawgWplARMvkx+E=;
        b=bfif6kH84Yfz09kKanwZWERD5fSoz1GKCYuPNWWQp5bkDWHi/1LEedRR9g+OjWcv2R
         c7KurY01Zboxs21KEU0ZFinmTNsj2qemqklnXxuAhKbSXkCB1Ni9a5VYWeooDBRallLg
         9apye8aeSZcMrt8YAMO279cXJ8qFgJOzFx1dMOsgE9KMQH1K8QSzOL3/q8ZKoDENgxcU
         xjIEhXRl0+ywr4GP99Ggapok5fdu8TiNWxYJtWl211+Xch7+C2UqRBuKzyBn89fuHMI8
         lFBWV8zAi6lME/N4nm19XcByTfZofMDTs5K22tWot713xnemXu0SWhHvzOUNEVhAL7WV
         Gs3A==
X-Gm-Message-State: AOJu0YxNmbKvpb/0y9ZcxNAXufGR3wEAH8BTJRlaAQNNHAmL5X5BkCt3
	np2Cr8FiS0e1keckOrKPNQs1qzcKd7uHiLtYw3r6s5Kup8IfBTPRavJMGuk8
X-Google-Smtp-Source: AGHT+IEUnSTWoqw7sceknY8fvoknuG0Nuu+QDZ2ocZ66OWkjz85ttdEXvrTQKmznCSQhtObHHduKxw==
X-Received: by 2002:a2e:b618:0:b0:2ee:daf3:5d30 with SMTP id 38308e7fff4ca-2f03a4f64a2mr154841fa.0.1721835082374;
        Wed, 24 Jul 2024 08:31:22 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v11 1/5] xen/riscv: use printk() instead of early_printk()
Date: Wed, 24 Jul 2024 17:31:15 +0200
Message-ID: <f80a93ee72a5887a9ba259db61e4571379315f6f.1721731887.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721731887.git.oleksii.kurochko@gmail.com>
References: <cover.1721731887.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As common code is available it is better to use printk() instead
of early_printk().

Also the printing of "Hello from RISC-V world" is dropped as
it is useless and "All set up is enough".

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V11:
 - Nothing changed. Only rebase.
---
Changes in V10:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V9:
 - new patch
---
 xen/arch/riscv/setup.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 8bb5bdb2ae..e3cb0866d5 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -23,9 +23,7 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 {
     remove_identity_mapping();
 
-    early_printk("Hello from C env\n");
-
-    early_printk("All set up\n");
+    printk("All set up\n");
 
     for ( ;; )
         asm volatile ("wfi");
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764286.1174686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxh-0006K0-EA; Wed, 24 Jul 2024 15:31:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764286.1174686; Wed, 24 Jul 2024 15:31: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 1sWdxh-0006JB-AB; Wed, 24 Jul 2024 15:31:29 +0000
Received: by outflank-mailman (input) for mailman id 764286;
 Wed, 24 Jul 2024 15:31: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdxf-0005Od-VW
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:27 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c9b6fadd-49d1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:31:25 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2ef2d582e31so38976521fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:25 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef26f1bc4asm14240491fa.40.2024.07.24.08.31.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:31: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: c9b6fadd-49d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835085; x=1722439885; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bpktRcDF4JrvwzNydeWsiF50yQbYjN8viWEOOJ/BjaU=;
        b=hGRw7yGdLUCk6LwVIMhK6Gfi+FUyO4VVBomGkhwNa3bv8IpBRatDtKsAHyXTTbmJBA
         f0OjEDWfpAugXSNYyEfzzgZFrvVCmYHF+jlCoEpgGlg1MfZ3ebPvLZX6DEEoow4KjBGd
         5czRDPo4L/4ajAdmD68EnmrcL6E/ovEBpMAlJGvlng1meIVn/0NZXXPhKyBOdkPI2VAM
         e6/B3jVAsW2B3D7gzNT1rkTsj9WZkczS3JjbbM5lm2a3b4RRxxk8L9/Iv+LazsihmDKb
         oDkaTvTxeySdx0Sjlell2fDwi9YekKFU8tbMI55WevAY5lfRQFt2z9HWRqydUGB+VDjT
         qChg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835085; x=1722439885;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=bpktRcDF4JrvwzNydeWsiF50yQbYjN8viWEOOJ/BjaU=;
        b=ANlELxkhBhzOYnJkIBNsYswwtkoGixV2dE8JUB2w1+ZBuBg1ugM04bW3/O3CFbb4Mq
         86nsWr61F+yskP5jtou0Pb5PZzvqZ0/xdVpXn5kKwiPhe4OiTr6DQZxWrA3PZJSWxGGN
         TZ5qoP7Phlyo+HVQrTVsAOX4/PCPM3GrP/+ITzvF6o/Loi67+D/YgznAZCko8GGuDkyq
         S8Xxw76j829nCJmkXp1aGwZlPxit4zlyYPYmocRhtDX6Fn7YDcIELk2P9PHjXXABhyD1
         jhY9DMtNMBxNNAw47kSdKwtihTdQshr/8LD/TAnCeMIujhEM4rWzEFMneTzNaqLtrtEk
         G4iQ==
X-Gm-Message-State: AOJu0YyWaQbw+l4Gn4vEsmKtVo0Q4Di9pwpQBQuZn0RUtEY4eS7RgygQ
	449FOGd1m8/EQqNPlNhJsCauclQfiOL/dPm3JAJ5PXMeUqw/YSydIc0NtzWx
X-Google-Smtp-Source: AGHT+IELHpp33w+d2EYJm05wyLCODNBCJpRwvJRY8k7ZAX0tgnXUa47x7DGhJXJpLl7gMEbK/r92dw==
X-Received: by 2002:a2e:a543:0:b0:2ef:18b7:440a with SMTP id 38308e7fff4ca-2f039cdb6b2mr2098601fa.22.1721835084463;
        Wed, 24 Jul 2024 08:31:24 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v11 4/5] xen/riscv: enable GENERIC_BUG_FRAME
Date: Wed, 24 Jul 2024 17:31:18 +0200
Message-ID: <b79bcfb9031564fc8d275af66fa94c1e82e54de2.1721731887.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721731887.git.oleksii.kurochko@gmail.com>
References: <cover.1721731887.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

To have working BUG(), WARN(), ASSERT, run_in_exception_handler()
it is needed to enable GENERIC_BUG_FRAME.

ebreak is used as BUG_insn so when macros from <xen/bug.h> are
used, an exception with BREAKPOINT cause will be generated.

ebreak triggers a debug trap, which starts in debug mode and is
then filtered by every mode. A debugger will first handle the
debug trap and check if ebreak was set by it or not. If not,
CAUSE_BREAKPOINT will be generated for the mode where the ebreak
instruction was executed.

Also, <xen/lib.h> is needed to be included for the reason that panic() and
printk() are used in common/bug.c and RISC-V fails if it is not included.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V11:
  - update the commit message
  - change "%lx" to "%#x" for PC register printing.
  - drop +1 in argument of is_kernel_text(pc) and is_kernel_inittext(pc).
  - drop return for case CAUSE_BREAKPOINT.
  - add break to default and add a blank like above it.
  - add a comment CAUSE_BREAKPOINT is handled instead of illegal instruction.
---
Changes in V10:
 - put 'select GENERIC_BUG_FRAME' in "Config RISCV".
 - rework do_trap() to not fetch an instruction in case when the cause of trap
   is BUG_insn.
 - drop read_instr() and is_valid_bug_insn().
 - update the commit message.
---
Changes in V9:
 - Rebase on the top of current staging.
 - use GENERIC_BUG_FRAME as now we have common code available.
 - add xen/lib.h to bug.c to fix a compilation error around printk.
 - update the commit message.
 - update the code of read_instr() in traps.c
 - fold two-s if into 1 in do_trap.
---
Changes in V8:
  - remove Pointless initializer of id.
  - make bug_frames[] array constant.
  - remove cast_to_bug_frame(addr).
  - rename is_valig_bugaddr to is_valid_bug_insn().
  - add check that read_instr is used only on xen code
  - update the commit message.
---
Changes in V7:
 - move to this patch the definition of cast_to_bug_frame() from the previous patch.
 - update the comment in bug.h.
 - update the comment above do_bug_frame().
 - fix code style.
 - add comment to read_instr func.
 - add space for bug_frames in lds.S.
---
Changes in V6:
  - Avoid LINK_TO_LOAD() as bug.h functionality expected to be used
    after MMU is enabled.
  - Change early_printk() to printk()
---
Changes in V5:
  - Remove "#include <xen/types.h>" from <asm/bug.h> as there is no any need in it anymore
  - Update macros GET_INSN_LENGTH: remove UL and 'unsigned int len;' from it
  - Remove " include <xen/bug.h>" from risc/setup.c. it is not needed in the current version of
    the patch
  - change an argument type from vaddr_t to uint32_t for is_valid_bugaddr and introduce read_instr() to
    read instruction properly as the length of qinstruction can be either 32 or 16 bits.
  - Code style fixes
  - update the comments before do_bug_frame() in riscv/trap.c
  - Refactor is_valid_bugaddr() function.
  - introduce macros cast_to_bug_frame(addr) to hide casts.
  - use LINK_TO_LOAD() for addresses which are linker time relative.
---
Changes in V4:
  - Updates in RISC-V's <asm/bug.h>:
    * Add explanatory comment about why there is only defined for 32-bits length
      instructions and 16/32-bits BUG_INSN_{16,32}.
    * Change 'unsigned long' to 'unsigned int' inside GET_INSN_LENGTH().
    * Update declaration of is_valid_bugaddr(): switch return type from int to bool
      and the argument from 'unsigned int' to 'vaddr'.
  - Updates in RISC-V's traps.c:
    * replace /xen and /asm includes
    * update definition of is_valid_bugaddr():switch return type from int to bool
      and the argument from 'unsigned int' to 'vaddr'. Code style inside function
      was updated too.
    * do_bug_frame() refactoring:
      * local variables start and bug became 'const struct bug_frame'
      * bug_frames[] array became 'static const struct bug_frame[] = ...'
      * remove all casts
      * remove unneeded comments and add an explanatory comment that the do_bug_frame()
        will be switched to a generic one.
    * do_trap() refactoring:
      * read 16-bits value instead of 32-bits as compressed instruction can
        be used and it might happen than only 16-bits may be accessible.
      * code style updates
      * re-use instr variable instead of re-reading instruction.
  - Updates in setup.c:
    * add blank line between xen/ and asm/ includes.
---
Changes in V3:
  - Rebase the patch "xen/riscv: introduce an implementation of macros
    from <asm/bug.h>" on top of patch series [introduce generic implementation
    of macros from bug.h]
---
Changes in V2:
  - Remove __ in define namings
  - Update run_in_exception_handler() with
    register void *fn_ asm(__stringify(BUG_FN_REG)) = (fn);
  - Remove bug_instr_t type and change it's usage to uint32_t
---
 xen/arch/riscv/Kconfig |  1 +
 xen/arch/riscv/traps.c | 35 ++++++++++++++++++++++++++++++++++-
 xen/common/bug.c       |  1 +
 3 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index b4b354a778..f531e96657 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -1,6 +1,7 @@
 config RISCV
 	def_bool y
 	select FUNCTION_ALIGNMENT_16B
+	select GENERIC_BUG_FRAME
 
 config RISCV_64
 	def_bool y
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index cb18b30ff2..6802827eb5 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -5,6 +5,7 @@
  * RISC-V Trap handlers
  */
 
+#include <xen/bug.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
 
@@ -103,7 +104,39 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
 
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
-    do_unexpected_trap(cpu_regs);
+    register_t pc = cpu_regs->sepc;
+    unsigned long cause = csr_read(CSR_SCAUSE);
+
+    switch ( cause )
+    {
+    /*
+     * ebreak is used as BUG_insn so when macros from <xen/bug.h> are
+     * used, an exception with BREAKPOINT cause will be generated.
+     *
+     * ebreak triggers a debug trap, which starts in debug mode and is
+     * then filtered by every mode. A debugger will first handle the
+     * debug trap and check if ebreak was set by it or not. If not,
+     * CAUSE_BREAKPOINT will be generated for the mode where the ebreak
+     * instruction was executed.
+     */
+    case CAUSE_BREAKPOINT:
+        if ( do_bug_frame(cpu_regs, pc) >= 0 )
+        {
+            if ( !(is_kernel_text(pc) || is_kernel_inittext(pc)) )
+            {
+                printk("Something wrong with PC: %#lx\n", pc);
+                die();
+            }
+
+            cpu_regs->sepc += GET_INSN_LENGTH(*(uint16_t *)pc);
+        }
+
+        break;
+
+    default:
+        do_unexpected_trap(cpu_regs);
+        break;
+    }
 }
 
 void vcpu_show_execution_state(struct vcpu *v)
diff --git a/xen/common/bug.c b/xen/common/bug.c
index b7c5d8fd4d..75cb35fcfa 100644
--- a/xen/common/bug.c
+++ b/xen/common/bug.c
@@ -1,6 +1,7 @@
 #include <xen/bug.h>
 #include <xen/errno.h>
 #include <xen/kernel.h>
+#include <xen/lib.h>
 #include <xen/livepatch.h>
 #include <xen/string.h>
 #include <xen/types.h>
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764284.1174658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxf-0005Uq-NW; Wed, 24 Jul 2024 15:31:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764284.1174658; Wed, 24 Jul 2024 15:31:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxf-0005TO-GC; Wed, 24 Jul 2024 15:31:27 +0000
Received: by outflank-mailman (input) for mailman id 764284;
 Wed, 24 Jul 2024 15: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdxe-0005Oj-Ab
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:26 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c94115f3-49d1-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 17:31:24 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2f035ae1083so7913341fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:24 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef26f1bc4asm14240491fa.40.2024.07.24.08.31.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:31: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: c94115f3-49d1-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835084; x=1722439884; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mVzv7Lf3WsrGUV8320pTvF4jrk7P38KxVVOYJq9PCXU=;
        b=jdnpYO8/Sl3NXW61FqfANxGv8Xk8Lt+Ba6u9PyyYbos8FMlEE/CjlyVK2a/PF9Ahg7
         eSQSIqDt0hJUfB2BrlNkxBq9q4YGfod4Ahfr4fxYZWF2u0KzfFsQDW/dzvTxEKkXlm80
         Bxrk8p/u3uk5CF6PKFoRkT80mQWTVpYbuBhQ9TJXKxMioec86yOZc3f0iZBhqbF2UIXO
         GuKY12WDFENnwJ67tj9LgLUXe9FGfJgNlbsO8fAM6zcjyN//7H8j9SZX7SexFaF10RZ3
         C2RXtmonO2UK1NsJiaHJ3S4hk59EyhEDq1pAknxieFgkPNn7x/DI6PkGDk8/+zF5biGc
         OvtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835084; x=1722439884;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=mVzv7Lf3WsrGUV8320pTvF4jrk7P38KxVVOYJq9PCXU=;
        b=NANxyPIVhHdt8coLIeDKkStZe5+9UDwdv/4k9w0UnUynNja0jRovaBlbek1/qLplkJ
         3+hXyTIdbe7O3hhVgPcIb68ytsKWZmZgJuhe1inHp0kEYlddeFEcLELSwoq4Qc6Ag4/5
         5rBpa8DW33ajF/Oy27DP0ZCd11rh5t/Ox/HIdgbfXORxyvOWwz6ndOyoc4td2S/OhCXD
         3NFCh5Nw3si6b5QHwGADKXGHB3/6OnmLp4vw1D92gq2J3BerJkwy3XRbhDxF2KfH8CqP
         rmsUZELmGnS+vh4gwgXLguZLc0zr3e2uokjn/I3aFZRcY5gA/i6BAYOIwFqA0QjI3dsx
         e88Q==
X-Gm-Message-State: AOJu0Yy2mVE8XzvNB7oVQ2H7FAj7ByoGBXBlMwH2agdAdJ1AIvSv8ttG
	22DQpk2QFryvkDDVrJzEhybVoUgStZ/Y1EnSD0RZj3yGkWQHhu7vhjdim462
X-Google-Smtp-Source: AGHT+IFTfVE2OSbKfPeAzMl0JaPOdVB8BEcT/RiMeGKr+zDRJDb13/LT83G1YiwAl8BTH0zdipBXBQ==
X-Received: by 2002:a2e:a4a3:0:b0:2ef:2e3f:35da with SMTP id 38308e7fff4ca-2f039dbfbf0mr1225811fa.45.1721835083784;
        Wed, 24 Jul 2024 08:31:23 -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>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v11 3/5] xen/riscv: introduce trap_init()
Date: Wed, 24 Jul 2024 17:31:17 +0200
Message-ID: <e718fe9e83978efdd241d7c0d85d3644e030dd1e.1721731887.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721731887.git.oleksii.kurochko@gmail.com>
References: <cover.1721731887.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Note that trap_init() isn't declared with the __init attribute to
avoid removing __init when multi-CPU support for Xen is added.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V11:
  - update the commit message
  - add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V10:
  - update the commit message
---
Changes in V9:
 - drop inclusion of <asm/mm.h> in setup.c
 - drop #include <public/version.h>
 - ... <xen/bug.h>
 - introduce stub for
   void arch_get_xen_caps(xen_capabilities_info_t *info);

 - resolve rebase conflicts.
---
Changes in V8:
 - nothing changed. only rebase was done.
---
Changes in V7:
 - #define cast_to_bug_frame(addr) ((const struct bug_frame *)(addr)).
 - remove unnecessary comments in trap_init() function.
---
Changes in V6:
 - trap_init() is now called after enabling the MMU.
 - Add additional explanatory comments.
---
Changes in V5:
  - Nothing changed
---
Changes in V4:
  - Nothing changed
---
Changes in V3:
  - Nothing changed
---
Changes in V2:
  - Rename setup_trap_handler() to trap_init().
  - Add Reviewed-by to the commit message.
---
 xen/arch/riscv/include/asm/traps.h |  1 +
 xen/arch/riscv/setup.c             |  3 +++
 xen/arch/riscv/traps.c             | 12 ++++++++++++
 3 files changed, 16 insertions(+)

diff --git a/xen/arch/riscv/include/asm/traps.h b/xen/arch/riscv/include/asm/traps.h
index 3fef318478..c30118e095 100644
--- a/xen/arch/riscv/include/asm/traps.h
+++ b/xen/arch/riscv/include/asm/traps.h
@@ -9,6 +9,7 @@
 
 void do_trap(struct cpu_user_regs *cpu_regs);
 void handle_trap(void);
+void trap_init(void);
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index e3cb0866d5..a6a29a1508 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -8,6 +8,7 @@
 #include <public/version.h>
 
 #include <asm/early_printk.h>
+#include <asm/traps.h>
 
 void arch_get_xen_caps(xen_capabilities_info_t *info)
 {
@@ -23,6 +24,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 {
     remove_identity_mapping();
 
+    trap_init();
+
     printk("All set up\n");
 
     for ( ;; )
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 37cec40dfa..cb18b30ff2 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -12,6 +12,18 @@
 #include <asm/riscv_encoding.h>
 #include <asm/traps.h>
 
+/*
+ * Initialize the trap handling.
+ *
+ * The function is called after MMU is enabled.
+ */
+void trap_init(void)
+{
+    unsigned long addr = (unsigned long)&handle_trap;
+
+    csr_write(CSR_STVEC, addr);
+}
+
 static const char *decode_trap_cause(unsigned long cause)
 {
     static const char *const trap_causes[] = {
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764285.1174668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxg-0005j7-6g; Wed, 24 Jul 2024 15:31:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764285.1174668; Wed, 24 Jul 2024 15:31:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxf-0005gN-Vf; Wed, 24 Jul 2024 15:31:27 +0000
Received: by outflank-mailman (input) for mailman id 764285;
 Wed, 24 Jul 2024 15:31: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdxe-0005Od-VV
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:26 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c91e95c8-49d1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:31:24 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2f01e9f53ebso26080041fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:24 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef26f1bc4asm14240491fa.40.2024.07.24.08.31.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08: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: c91e95c8-49d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835084; x=1722439884; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=56J2Umln9ekAx0H/k4L6hwTUoVJfEpVRZy78p69qzAA=;
        b=TM9Kz0hVSzv2cWqrhw/LUFZ2K4AFfGjTUEdSL9/UjLyI79bRCofPl2t/Zp68hq93M8
         WsVH9ajq73i4cJwe2lvEPyhhH1VXvfrAh71ep89CouOuI034O5ygHmZf3CcCrLozFLbn
         vyNc101BXQNWzGrfCESfXfFzTNzFeNRM78wxPP6svNHWiAhuuDnWh+ZrcPW7rkgJ9Cko
         2TZP8IOBHlvAkdIRmjylqbAu2HbUmh+76dRywtWuzW+rp2p10yn1gzdURpEQyN+p1Jjz
         Kg3ZqsaDVcxJzl37eMo+uZFv7k0bSP8YWGsJq3xG7RoQFGRDXSDc71jDsX+s+lMWJkwX
         ZMCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835084; x=1722439884;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=56J2Umln9ekAx0H/k4L6hwTUoVJfEpVRZy78p69qzAA=;
        b=KCjMVoDTeL7IOe55+V5wJYCj4d9jnxbjr35aEWnHaouJ8BiB7W+uDX4Ofe7L2T62kF
         fT9sAOA3t1c5tKRkENqkUA1/MBvKux7SB1nMwXdt/sJNZdx91BhbVQA/Cia2QCYzqlxs
         FJaFZ8HPlm+NTKFtjE9W9tSsOkuwyXcj4Ig0DbsPfg2sJts8UNggPUoqEqI0UikE6mhl
         3V2HdYhXoMMfbaIhJIpaFbb/e22aJFWCp8mw9zhQfdiyrG7VzA08LaDX6tdBBUyS5oCP
         jbeg47mu/WQ77WlWlEndzQJTEzSzVLLnzqnWexSNT7mkvcGkN1FwzlOcgBQImXPnxnxZ
         CtZg==
X-Gm-Message-State: AOJu0YxSlpClRgooC3dovsABtu7WWXmHVQAOe8jZXIk2fkjThPC8f+lb
	2bV8kB8Ju50LF13p74LTnsT7ijTQ/YRKqYyNw2qRQmn5oz1KKuhh3Eo5P1f0
X-Google-Smtp-Source: AGHT+IH9oAwGr69eOcDYaniQ9eUobwcMuu+2onf6MtRizoPSP06ODrFSCoaTHWWIZx6UK06SxpUSUQ==
X-Received: by 2002:a05:651c:b1e:b0:2ef:2c27:6680 with SMTP id 38308e7fff4ca-2f039c79ea1mr2186621fa.12.1721835083200;
        Wed, 24 Jul 2024 08:31:23 -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>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v11 2/5] xen/riscv: introduce decode_cause() stuff
Date: Wed, 24 Jul 2024 17:31:16 +0200
Message-ID: <335b0b49720b3524b6c89c5ce62d3377a4bb1fb8.1721731887.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721731887.git.oleksii.kurochko@gmail.com>
References: <cover.1721731887.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The patch introduces stuff needed to decode a reason of an
exception.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V11:
 - Nothing changed. Only rebase.
---
Changes in V10:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V9:
 - This patch was reverted as breaks both release and randconfig builds.
   I don't see the failures now. ( probably it was because of printk usage
   which was not ready at that moment ).
 - drop inclusion of <asm/csr.h> and <asm/early_printk.h>
 - add <asm/riscv_encoding.h> for CAUSE_* in decode_trap_cause().
---
Changes in V8:
  - fix typo in return string from decode_reserved_interrupt_cause
  - add Acked-by: Alistair Francis <alistair.francis@wdc.com>
---
Changes in V7:
 - Nothing changed. Only rebase.
---
Changes in V6:
 - Remove usage of LINK_TO_LOAD() due to the MMU being enabled first.
 - Change early_printk() to printk()
---
Changes in V5:
  - Remove <xen/error.h> from riscv/traps/c as nothing would require
    inclusion.
  - decode_reserved_interrupt_cause(), decode_interrupt_cause(), decode_cause, do_unexpected_trap()
    were made as static they are expected to be used only in traps.c
  - use LINK_TO_LOAD() for addresses which can be linker time relative.
---
Changes in V4:
  - fix string in decode_reserved_interrupt_cause()
---
Changes in V3:
  - Nothing changed
---
Changes in V2:
  - Make decode_trap_cause() more optimization friendly.
  - Merge the pathc which introduces do_unexpected_trap() to the current one.
---
 xen/arch/riscv/traps.c | 80 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 79 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 5415cf8d90..37cec40dfa 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -9,13 +9,91 @@
 #include <xen/sched.h>
 
 #include <asm/processor.h>
+#include <asm/riscv_encoding.h>
 #include <asm/traps.h>
 
-void do_trap(struct cpu_user_regs *cpu_regs)
+static const char *decode_trap_cause(unsigned long cause)
+{
+    static const char *const trap_causes[] = {
+        [CAUSE_MISALIGNED_FETCH] = "Instruction Address Misaligned",
+        [CAUSE_FETCH_ACCESS] = "Instruction Access Fault",
+        [CAUSE_ILLEGAL_INSTRUCTION] = "Illegal Instruction",
+        [CAUSE_BREAKPOINT] = "Breakpoint",
+        [CAUSE_MISALIGNED_LOAD] = "Load Address Misaligned",
+        [CAUSE_LOAD_ACCESS] = "Load Access Fault",
+        [CAUSE_MISALIGNED_STORE] = "Store/AMO Address Misaligned",
+        [CAUSE_STORE_ACCESS] = "Store/AMO Access Fault",
+        [CAUSE_USER_ECALL] = "Environment Call from U-Mode",
+        [CAUSE_SUPERVISOR_ECALL] = "Environment Call from S-Mode",
+        [CAUSE_MACHINE_ECALL] = "Environment Call from M-Mode",
+        [CAUSE_FETCH_PAGE_FAULT] = "Instruction Page Fault",
+        [CAUSE_LOAD_PAGE_FAULT] = "Load Page Fault",
+        [CAUSE_STORE_PAGE_FAULT] = "Store/AMO Page Fault",
+        [CAUSE_FETCH_GUEST_PAGE_FAULT] = "Instruction Guest Page Fault",
+        [CAUSE_LOAD_GUEST_PAGE_FAULT] = "Load Guest Page Fault",
+        [CAUSE_VIRTUAL_INST_FAULT] = "Virtualized Instruction Fault",
+        [CAUSE_STORE_GUEST_PAGE_FAULT] = "Guest Store/AMO Page Fault",
+    };
+
+    if ( cause < ARRAY_SIZE(trap_causes) && trap_causes[cause] )
+        return trap_causes[cause];
+    return "UNKNOWN";
+}
+
+static const char *decode_reserved_interrupt_cause(unsigned long irq_cause)
+{
+    switch ( irq_cause )
+    {
+    case IRQ_M_SOFT:
+        return "M-mode Software Interrupt";
+    case IRQ_M_TIMER:
+        return "M-mode Timer Interrupt";
+    case IRQ_M_EXT:
+        return "M-mode External Interrupt";
+    default:
+        return "UNKNOWN IRQ type";
+    }
+}
+
+static const char *decode_interrupt_cause(unsigned long cause)
+{
+    unsigned long irq_cause = cause & ~CAUSE_IRQ_FLAG;
+
+    switch ( irq_cause )
+    {
+    case IRQ_S_SOFT:
+        return "Supervisor Software Interrupt";
+    case IRQ_S_TIMER:
+        return "Supervisor Timer Interrupt";
+    case IRQ_S_EXT:
+        return "Supervisor External Interrupt";
+    default:
+        return decode_reserved_interrupt_cause(irq_cause);
+    }
+}
+
+static const char *decode_cause(unsigned long cause)
+{
+    if ( cause & CAUSE_IRQ_FLAG )
+        return decode_interrupt_cause(cause);
+
+    return decode_trap_cause(cause);
+}
+
+static void do_unexpected_trap(const struct cpu_user_regs *regs)
 {
+    unsigned long cause = csr_read(CSR_SCAUSE);
+
+    printk("Unhandled exception: %s\n", decode_cause(cause));
+
     die();
 }
 
+void do_trap(struct cpu_user_regs *cpu_regs)
+{
+    do_unexpected_trap(cpu_regs);
+}
+
 void vcpu_show_execution_state(struct vcpu *v)
 {
     BUG_ON("unimplemented");
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764282.1174648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxf-0005PB-73; Wed, 24 Jul 2024 15:31:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764282.1174648; Wed, 24 Jul 2024 15:31:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxf-0005P4-2t; Wed, 24 Jul 2024 15:31:27 +0000
Received: by outflank-mailman (input) for mailman id 764282;
 Wed, 24 Jul 2024 15:31: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdxd-0005Od-BA
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:25 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c86077af-49d1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:31:23 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2ef2c109eabso40415011fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:23 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef26f1bc4asm14240491fa.40.2024.07.24.08.31.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08: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: c86077af-49d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835082; x=1722439882; 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=QEInmGWYRn2yPo33GMns9VX8hGeDJLyGubACYI0O0Eo=;
        b=bv7rR5B3mRFROYFMuVkqa7S6Azdlofr5g34qlwMZ6/RkWoxakQk6sTg2BJwxb95ISY
         +l/OLQQH33ZLiSeX2u2+bSnFECGsILGhEcFkMXLWNIyaOQUnPj+g8/xFfO4VIVD+bF8O
         JguDtWbdN2pQyF9jjAD2ORbK2XMAwQNQA1o8lCUfSG9jzAzJD7LTpHAWx2MUg3VYWi63
         ofIL/Ef2svZ6XAbL1jzWmdWN2dn658bMAkTzmoK7ZVZu1FbWbdBmawUebfUqFGBoVsK1
         xroHOUC4tTxSD+LxGfKBPcgPDRSxI/VqKdXTS/WWFI6IICfB0Yca9G8Br0boeHoEP5ed
         xUPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835082; x=1722439882;
        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=QEInmGWYRn2yPo33GMns9VX8hGeDJLyGubACYI0O0Eo=;
        b=CP2Kur7q2Buzrdm8nkQ3Qg2mqqctPt+ylNeUJkKJkuWjMxJ4M5RAGXd/ap0rWbZBBQ
         GOBQmftj8vTg/7lqSlfzmIH1ShYqxbk9D9C8aLl05y2HMiCHgQpdkVaPf/c+td+ngb8l
         KoYitPqVG0V845002O+Yspq/9WjuIAJCRTCeey1pRJ5UUUQXocQN+ImTBfHhy7H5tHjR
         mGDumSIsukqLR9n0PIRw1ZfxWlaxSzAfCFRP/zf4jqiB5dDCAR1URrvjHaSj8/rvgSp2
         fR7209Z7VV6XfGjO0g4DVmatYyZtJzvOv2996DWia/3/t4NVfmgieaBvjLwMEQLQlRAZ
         ZnfA==
X-Gm-Message-State: AOJu0YwwWJyxvnsWbrp1lRcsGgdf4zOvg/wD8n8Ovf+OAU+zuZWVqX9p
	RHxNQr3KdPAkMySxw32T+icDOoW+UChG4pHd/XBUlHRTWWYOS8kKm1rM/mnA
X-Google-Smtp-Source: AGHT+IGCivybB9Tn9DUjiDoxB3MJGc7K7yLTcVpKwU/Q8XslLEf073qwaOkbqtBpLJ+uFnI0mzPTFA==
X-Received: by 2002:a2e:958d:0:b0:2ee:494c:c3d3 with SMTP id 38308e7fff4ca-2f039f2cdf5mr994651fa.43.1721835081855;
        Wed, 24 Jul 2024 08:31:21 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v11 0/5] RISCV basic exception handling implementation
Date: Wed, 24 Jul 2024 17:31:14 +0200
Message-ID: <cover.1721731887.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The patch series is based on:
    Enable build of full Xen for RISC-V [1]
which haven't fully been merged yet.

The patch series provides a basic implementation of exception handling.
It can do only basic things such as decode a cause of an exception,
save/restore registers and execute "wfi" instruction if an exception
can not be handled.

To verify that exception handling works well it was used macros
from <asm/bug.h> such as BUG/WARN/run_in_exception/assert_failed.

It wasn't implemented show_execution_state() and stack trace discovering
as it's not necessary now.

[1] https://lore.kernel.org/xen-devel/cover.1719917348.git.oleksii.kurochko@gmail.com/T/#m8ee766297511fb6fb4a38b7753ab6b792361be04

---
Changes in V10 - V11:
 - No generic changes to describe here. Please look at patch-specific changes.
---
Changes in V9:
 - Update the cover letter message.
 - s/early_printk/printk.
 - use GENERIC_BUG_FRAME instead of arch-specific implementation of do_bug_frame().
 - Rebase on top of current staging and riscv-full-xen-build-v14.
---
Changes in V8:
 - Update the commit message of the cover letter.
 - Remove the patch with an introduction of dummy asm/bug.h and introduce
   normal asm/bug.h
 - Fix typo in return string from decode_reserved_interrupt_cause
 - Add "Acked-by: Alistair Francis <alistair.francis@wdc.com>" for the patch
   "xen/riscv: introduce decode_cause() stuff"
 - Remove Pointless initializer of id in do_bug_frame().
 - Make bug_frames[] array constant in do_bug_frame().
 - Remove cast_to_bug_frame(addr).
 - Rename is_valig_bugaddr to is_valid_bug_insn().
 - Add check that read_instr is used only on Xen code
 - Update the commit message.
---
Changes in V7:
 - Update the depenency ( mentioned in the cover letter message ) of the current
   patch series.
 - clean up comments.
 - code style fixes.
 - move definition of cast_to_bug_frame() from patch 4 to 5.
---
Changes in V6:
 - Update the cover letter message: the patch set is based on MMU patch series.
 - Introduce new patch with temporary printk functionality. ( it will be
   removed when Xen common code will be ready )
 - Change early_printk() to printk().
 - Remove usage of LINK_TO_LOAD() due to the MMU being enabled first.
 - Add additional explanatory comments.
 - Remove patch "xen/riscv: initialize boot_info structure" from the patch
   series.
---
Changes in V5:
 - Rebase on top of [1] and [2]
 - Add new patch which introduces stub for <asm/bug.h> to keep Xen compilable
   as in the patch [xen/riscv: introduce decode_cause() stuff] is used
   header <xen/lib.h> which requires <asm/bug.h>.
 - Remove <xen/error.h> from riscv/traps/c as nothing would require
   inclusion.
 - decode_reserved_interrupt_cause(), decode_interrupt_cause(),
   decode_cause, do_unexpected_trap() were made as static they are expected
   to be used only in traps.c
 - Remove "#include <xen/types.h>" from <asm/bug.h> as there is no any need in it anymore
 - Update macros GET_INSN_LENGTH: remove UL and 'unsigned int len;' from it
 - Remove " include <xen/bug.h>" from risc/setup.c. it is not needed in the current version of
   the patch
 - change an argument type from vaddr_t to uint32_t for is_valid_bugaddr and introduce 
   read_instr() to read instruction properly as the length of qinstruction can be
   either 32 or 16 bits.
 - Code style fixes
 - update the comments before do_bug_frame() in riscv/trap.c
 - [[PATCH v4 5/5] automation: modify RISC-V smoke test ] was dropped as it was provided
   more simple solution by Andrew.  CI: Simplify RISCV smoke testing
 - Refactor is_valid_bugaddr() function.
 - 2 new patches ([PATCH v5 {1-2}/7]) were introduced, the goal of which is to recalculate
   addresses used in traps.c, which can be linker time relative. It is needed as we don't
   have enabled MMU yet.
---
Changes in V4:
  - Rebase the patch series on top of new version of [introduce generic
    implementation of macros from bug.h] patch series.
  - Update the cover letter message as 'Early printk' was merged and
    the current one patch series is based only on [introduce generic
    implementation of macros from bug.h] which hasn't been commited yet.
  - The following patches of the patch series were merged to staging:
      [PATCH v3 01/14] xen/riscv: change ISA to r64G
      [PATCH v3 02/14] xen/riscv: add <asm/asm.h> header
      [PATCH v3 03/14] xen/riscv: add <asm/riscv_encoding.h header
      [PATCH v3 04/14] xen/riscv: add <asm/csr.h> header
      [PATCH v3 05/14] xen/riscv: introduce empty <asm/string.h>
      [PATCH v3 06/14] xen/riscv: introduce empty <asm/cache.h>
      [PATCH v3 07/14] xen/riscv: introduce exception context
      [PATCH v3 08/14] xen/riscv: introduce exception handlers implementation
      [PATCH v3 10/14] xen/riscv: mask all interrupts
  - Fix addressed comments in xen-devel mailing list.

---
Changes in V3:
  - Change the name of config RISCV_ISA_RV64IMA to RISCV_ISA_RV64G
    as instructions from Zicsr and Zifencei extensions aren't part of
    I extension any more.
  - Rebase the patch "xen/riscv: introduce an implementation of macros
    from <asm/bug.h>" on top of patch series [introduce generic implementation
    of macros from bug.h]
  - Update commit messages
---
Changes in V2:
  - take the latest riscv_encoding.h from OpenSBI, update it with Xen
    related changes, and update the commit message with "Origin:"
    tag and the commit message itself.
  - add "Origin:" tag to the commit messag of the patch
    [xen/riscv: add <asm/csr.h> header].
  - Remove the patch [xen/riscv: add early_printk_hnum() function] as the
    functionality provided by the patch isn't used now.
  - Refactor prcoess.h: move structure offset defines to asm-offsets.c,
    change register_t to unsigned long.
  - Refactor entry.S to use offsets defined in asm-offsets.C
  - Rename {__,}handle_exception to handle_trap() and do_trap() to be more
    consistent with RISC-V spec.
  - Merge the pathc which introduces do_unexpected_trap() with the patch
    [xen/riscv: introduce exception handlers implementation].
  - Rename setup_trap_handler() to trap_init() and update correspondingly
    the patches in the patch series.
  - Refactor bug.h, remove bug_instr_t type from it.
  - Refactor decode_trap_cause() function to be more optimization-friendly.
  - Add two new empty headers: <cache.h> and <string.h> as they are needed to
    include <xen/lib.h> which provides ARRAY_SIZE and other macros.
  - Code style fixes.
---

Oleksii Kurochko (5):
  xen/riscv: use printk() instead of early_printk()
  xen/riscv: introduce decode_cause() stuff
  xen/riscv: introduce trap_init()
  xen/riscv: enable GENERIC_BUG_FRAME
  xen/riscv: test basic exception handling stuff

 xen/arch/riscv/Kconfig             |   1 +
 xen/arch/riscv/include/asm/traps.h |   1 +
 xen/arch/riscv/setup.c             |  25 +++++-
 xen/arch/riscv/traps.c             | 125 ++++++++++++++++++++++++++++-
 xen/common/bug.c                   |   1 +
 5 files changed, 150 insertions(+), 3 deletions(-)

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764289.1174707 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxz-0007NN-4V; Wed, 24 Jul 2024 15:31:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764289.1174707; Wed, 24 Jul 2024 15:31:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdxz-0007NG-1O; Wed, 24 Jul 2024 15:31:47 +0000
Received: by outflank-mailman (input) for mailman id 764289;
 Wed, 24 Jul 2024 15:31: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdxy-0005Od-3v
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:46 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d52a2c92-49d1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:31:44 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2ef1c12ae23so49921801fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:44 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef2b568858sm13237311fa.35.2024.07.24.08.31.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:31: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: d52a2c92-49d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835104; x=1722439904; 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=y6EXp2HkQVB8UrhglnsBxDgtSrAqoItcHexdbcYlEvM=;
        b=NjiOf5lJWw7W7Qu2FYVUs82TVabQi1M2DH2ROth79yekgJLBIEXSlFb8ewrf649pzC
         ngSGMVD9o91SP1cIRU4Zd+/4nSZReZQWvU96+0xN/ZHX+evvQqngbi9wSQWqLx8OXJ9m
         UxLd7MbQgu1Gri7Tq7qeA8nZX/9hWRuDZJJAiiSNTa2PPHQOwgE/QiLlHBl9zjWJfy6F
         hAV2huwk6k9Gsgj9GfzDvBzi8A8wbY4oKvHO1ty7uLkIK4TmFPqoQVsr8A5Ks+JKVQww
         Gs4DRP1G6d2Dwly4cRGY9dzUoagQDIaKKLjePVlnY3hXpQE0QhST4ZdA53PzdVaLrXpp
         bBpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835104; x=1722439904;
        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=y6EXp2HkQVB8UrhglnsBxDgtSrAqoItcHexdbcYlEvM=;
        b=LDR72oXOLNzH9SZCR39sGRpjCxu+Ox5FVepecJWNngsBemtBu9et7jeJc9c3K9HW07
         IcWBOMGTCUwBpEZMSAKy5tlaXfBtGdSx9eRLYyyBjflRbs+CUoCDY71mWjga3ek3BzzZ
         Dqrt95Lvcs9QU84s0hgejvcMPeQhpIBWVST2nBcJfmlAE0hRPpsNypUeEqAqnHKINQsX
         NsxkhWcFnkir6c63D11iMiFl1BUxJyAbSO7KrSJz2pHob75tHFXh8oqnWlJh2362GhGe
         Lywr6YGiKWbEgEtICD0z2txANEMG2nHgu9LrresWZmrJ0+T2FObZH/1i4q1oxLG1iptX
         FP2g==
X-Gm-Message-State: AOJu0YwN/qWursyk+q8/Rhkjp5YVkJhYU7hu3XPm8j/omZ+LAF9A4asb
	qpgkTKV+rKZnO6/G6rIldw7h4K5Tvxs3/OUnrRc1V2dlzN32Okfh/q11Y4Lf
X-Google-Smtp-Source: AGHT+IFqCl0athOfpD4+ml5FENpESTH7jrVQRDChYNM1L6Ka7N3dNIf8g4l10uSwAlKA5uaKrbJqiw==
X-Received: by 2002:a2e:3812:0:b0:2ef:32bb:536f with SMTP id 38308e7fff4ca-2f039d9438cmr1563071fa.36.1721835103577;
        Wed, 24 Jul 2024 08:31:43 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v3 0/9] RISCV device tree mapping
Date: Wed, 24 Jul 2024 17:31:31 +0200
Message-ID: <cover.1721834549.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Current patch series introduces device tree mapping for RISC-V
and necessary things for that such as:
- Fixmap mapping
- pmap
- Xen page table processing

Also, it introduces common stuff for working with fdt which is
based on the patches from [1]:
  [PATCH v4 2/6] xen/device-tree: Move Arm's setup.c bootinfo functions to common
  [PATCH v4 3/6] xen/common: Move Arm's bootfdt.c
All changes which were done on top of Shawn's patches please find in "Changes" section
of each patch.

Also there is another one depenency:
RISCV basic exception handling implementation [2]

[1] https://lore.kernel.org/xen-devel/cover.1712893887.git.sanastasio@raptorengineering.com/
[2] https://lore.kernel.org/xen-devel/cover.1720799487.git.oleksii.kurochko@gmail.com/T/#t

---
Changes in v3:
 - Introduce SBI RFENCE extension support.
 - Introduce and initialize pcpu_info[] and __cpuid_to_hartid_map[] and functionality
   to work with this arrays.
 - Make page table handling arch specific instead of trying to make it generic.
 - All other changes are patch specific so please look at the patch.
---
Changes in v2:
 - Update the cover letter message
 - introduce fixmap mapping
 - introduce pmap
 - introduce CONFIG_GENREIC_PT
 - update use early_fdt_map() after MMU is enabled.
---

Oleksii Kurochko (7):
  xen/riscv: enable CONFIG_HAS_DEVICE_TREE
  xen/riscv: setup fixmap mapping
  xen/riscv: introduce asm/pmap.h header
  xen/riscv: introduce functionality to work with cpu info
  xen/riscv: introduce and init SBI RFENCE extension
  xen/riscv: page table handling
  xen/riscv: introduce early_fdt_map()

Shawn Anastasio (2):
  xen/device-tree: Move Arm's setup.c bootinfo functions to common
  xen/common: Move Arm's bootfdt.c to common

 MAINTAINERS                            |    2 +
 xen/arch/arm/Makefile                  |    1 -
 xen/arch/arm/bootfdt.c                 |  622 -------
 xen/arch/arm/include/asm/setup.h       |  198 +--
 xen/arch/arm/setup.c                   |  432 -----
 xen/arch/riscv/Kconfig                 |    3 +
 xen/arch/riscv/Makefile                |    3 +
 xen/arch/riscv/include/asm/config.h    |    8 +
 xen/arch/riscv/include/asm/fixmap.h    |   44 +
 xen/arch/riscv/include/asm/flushtlb.h  |   37 +
 xen/arch/riscv/include/asm/mm.h        |    6 +
 xen/arch/riscv/include/asm/page-bits.h |   36 +
 xen/arch/riscv/include/asm/page.h      |   84 +-
 xen/arch/riscv/include/asm/pmap.h      |   33 +
 xen/arch/riscv/include/asm/processor.h |   35 +-
 xen/arch/riscv/include/asm/sbi.h       |   57 +
 xen/arch/riscv/include/asm/smp.h       |   10 +
 xen/arch/riscv/mm.c                    |  120 +-
 xen/arch/riscv/pt.c                    |  410 +++++
 xen/arch/riscv/sbi.c                   |  256 +++
 xen/arch/riscv/setup.c                 |   27 +
 xen/arch/riscv/smp.c                   |    4 +
 xen/arch/riscv/smpboot.c               |   12 +
 xen/arch/riscv/xen.lds.S               |    2 +-
 xen/common/Makefile                    |    2 +-
 xen/common/device-tree/Makefile        |    3 +
 xen/common/device-tree/bootfdt.c       |  635 +++++++
 xen/common/device-tree/bootinfo.c      |  459 +++++
 xen/common/device-tree/device_tree.c   | 2253 ++++++++++++++++++++++++
 xen/common/device_tree.c               | 2253 ------------------------
 xen/include/xen/bootfdt.h              |  209 +++
 31 files changed, 4740 insertions(+), 3516 deletions(-)
 delete mode 100644 xen/arch/arm/bootfdt.c
 create mode 100644 xen/arch/riscv/include/asm/fixmap.h
 create mode 100644 xen/arch/riscv/include/asm/pmap.h
 create mode 100644 xen/arch/riscv/pt.c
 create mode 100644 xen/arch/riscv/smp.c
 create mode 100644 xen/arch/riscv/smpboot.c
 create mode 100644 xen/common/device-tree/Makefile
 create mode 100644 xen/common/device-tree/bootfdt.c
 create mode 100644 xen/common/device-tree/bootinfo.c
 create mode 100644 xen/common/device-tree/device_tree.c
 delete mode 100644 xen/common/device_tree.c
 create mode 100644 xen/include/xen/bootfdt.h

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764290.1174717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdy2-0007in-Dz; Wed, 24 Jul 2024 15:31:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764290.1174717; Wed, 24 Jul 2024 15:31:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdy2-0007ig-AP; Wed, 24 Jul 2024 15:31:50 +0000
Received: by outflank-mailman (input) for mailman id 764290;
 Wed, 24 Jul 2024 15:31:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdy0-0005Oj-Sc
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:48 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7640d8e-49d1-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 17:31:48 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2ef2fbf1d14so10882981fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:48 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef2b568858sm13237311fa.35.2024.07.24.08.31.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:31: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: d7640d8e-49d1-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835108; x=1722439908; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CrU347Bqi/Mu5IIuJa5WjXX+En829gmjRRoMWLS+Csc=;
        b=ddiHMFdWMSCTVkB6zrwBLO0pHNn4qr00CnXV3VEJKfToXhQr336fQ2ec5PbDrz5pN9
         R8W9n0hmHBUcev7oWOeXptDnHOWHlkw1njkG+85wKhmt+u/yyLlzbGuagFV0b0RFlswn
         RQqszwu/MJxlYXKKjQTufDyFIrvH5k8IQidikbVvINTruESh0i5oSJC7bWU49mSmwNsz
         s+BBCVvia3jd8TkR9EjrKXXmzZN4H+Z4zammH9ghYMpI5Xh9KJBSELZXNbvYvfXXrUpp
         Tiu+0EFVn0gjK8gZXL9a0eaUV4dtqOJjQcxl1SSPUQ7xuGFLXaqs3nXl1rqg2xVLgvWL
         qTWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835108; x=1722439908;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=CrU347Bqi/Mu5IIuJa5WjXX+En829gmjRRoMWLS+Csc=;
        b=H4oQyWtZ2maJPXu37rZBfgJyRC0Xgf405XGfatThrD+o93XbPUsovz2SfwNmbmUtJT
         sdamzgpqdMLr6LZ08+GjO1n9LTp3Y9jJs5dUp81zagGybDtm92czZGRpDGElHGBpZyvv
         ope95HM1uEVdgVXncU7rbPTVSuU5qPxFhUsqVIW6DxXEzSJ6L6LKg0x+RBnRdzG8Auxc
         ob5XOtYXuBc6iFoi2El1jt9SprSPnEH9RbMwUASlT+vYd6zqj4yvreAsjXnHZn/oLYjR
         h/iHv3S0qS4gO5r0TyDfWah38JSkNG0P8K+DKmE7tvI6ejdSWBpARB5ULF7pn51Qm2Hx
         Trmw==
X-Gm-Message-State: AOJu0YypdaKcD2+3zAS5XZnXjIYwF41CGDmtNefcABN2caoseIncg2A0
	VyBJMWqfT+G4wimWuObu17jScUz88Nx9085uV11ZAcbqerp71XqxGsncV8vn
X-Google-Smtp-Source: AGHT+IHmrh5MngxfCF1/++20FMQDwLx/3y8MXaraZVYqWCKJmI7Rg1+nFzCxgcikvq+dniNrPZDDtA==
X-Received: by 2002:a2e:9c8c:0:b0:2ef:2b70:5372 with SMTP id 38308e7fff4ca-2f032cd28a9mr6620981fa.12.1721835107655;
        Wed, 24 Jul 2024 08:31:47 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 3/9] xen/riscv: enable CONFIG_HAS_DEVICE_TREE
Date: Wed, 24 Jul 2024 17:31:34 +0200
Message-ID: <c1397f0701766be34d79d8dbc9db51ef3a5c5779.1721834549.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721834549.git.oleksii.kurochko@gmail.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Enable build of generic functionality for working with device
tree for RISC-V.
Also, a collection of functions for parsing memory map and other
boot information from a device tree are available now.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V3:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
 - update the commit message
---
Changes in V2:
 - move 'select HAS_DEVICE_TREE' to CONFIG_RISCV.
---
Changes in V1:
 - new patch
---
 xen/arch/riscv/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index f531e96657..259eea8d3b 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 HAS_DEVICE_TREE
 
 config RISCV_64
 	def_bool y
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764291.1174727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdy4-00082A-Ld; Wed, 24 Jul 2024 15:31:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764291.1174727; Wed, 24 Jul 2024 15:31:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdy4-00081t-Hw; Wed, 24 Jul 2024 15:31:52 +0000
Received: by outflank-mailman (input) for mailman id 764291;
 Wed, 24 Jul 2024 15:31:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdy2-0005Od-K7
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:50 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d7411ca8-49d1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:31:48 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2ef2d96164aso34909601fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:48 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef2b568858sm13237311fa.35.2024.07.24.08.31.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:31: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: d7411ca8-49d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835107; x=1722439907; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j+g7AFrErQBUChRVsS1091nTh6+2szALNipR3Qr/jkI=;
        b=gDcrlGmrzuyHFvlO3pK5FAMaQGZXT1vz/Z1ei4hswvZlffG+8/rhDZKC4m0YzyuJni
         5KYtIZm+2tfm0XQU8rXkZ+FFMrmEy3EP6QRwN7jNU5xcWto7MDTX4wKVtQSbOZF1rP49
         HFhRRQwTNntjpufRLnClY0BBs/g4aTF/hBnrZV9JA6FCAsBht9EpRakaUjdcMSxTife9
         /aTXiycaiO6TQwxhPRV0n7Hlp+/Q+9RKde2ceeUkjN28IPbJMJj5OvI1hm+ak3c3tnCa
         EupZCdZ2G9DdyX8gNLqmBIVeJO77R5GhVSPMJ1kmOx8DQHByV88KpqCbItuZDXntEyaw
         3SrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835107; x=1722439907;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=j+g7AFrErQBUChRVsS1091nTh6+2szALNipR3Qr/jkI=;
        b=i7JKviX9yWggVyaVu9PlFRchHWcBY62FCFrao0nTK0W7wyVOLccOGl6xmMA2PSUDbr
         pvMiyHavr2I06WOj+bq7pcOBDjmL3MaBpGgasXb31nNS7Y8Y3Page2aSXDgw1pHheiQ0
         6uBiYNe2CS9Hr1kYpXWDY5/rCWz78da1tmgjQ0B7k79j3aLcGkj+MZ+EEPAHPXbpdeiW
         mbZF5BZtNmptwrDJByOaXE7+QTQW46Zwj+i0nGcHnLfzhSEH6W2ttHFhaIIa/cfEpyqp
         fkFFFEsB7iz1w3UEKHq8I+ZRYC5ZCMdKzIBv3Qb20AFa+1Q3XIPLP2En81Rh20T42QHr
         1q4g==
X-Gm-Message-State: AOJu0YzggYqivdk1vWmAlISRTyMHFImfi7+GJhsle8t50dSroTRCoWJO
	BKNbcOJoy2tpaK2EpGVU3KVY9kpHbj+X4QXAc/Wp5aXdHJVgyxCNOd2sG+U+
X-Google-Smtp-Source: AGHT+IE/KIxrEqf9xFYS3i280KwwlmR0jeeBEOZDciJj5UgYbYzhc3CbNvJqtR+0RrLe9WyGZcrtng==
X-Received: by 2002:a05:651c:d0:b0:2ee:7a3e:4721 with SMTP id 38308e7fff4ca-2f039d56b7dmr1366041fa.39.1721835106818;
        Wed, 24 Jul 2024 08:31:46 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Shawn Anastasio <sanastasio@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>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v7 2/9] xen/common: Move Arm's bootfdt.c to common
Date: Wed, 24 Jul 2024 17:31:33 +0200
Message-ID: <35558886445c39c0f570632d355b42bb764dbdc4.1721834549.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721834549.git.oleksii.kurochko@gmail.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Shawn Anastasio <sanastasio@raptorengineering.com>

Move Arm's bootfdt.c to xen/common so that it can be used by other
device tree architectures like PPC and RISCV.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
Acked-by: Julien Grall <julien@xen.org>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V7:
 - Nothing changed. Only rebase.
---
Changes in V6:
 - update the version of the patch to v6.
---
Changes in V5:
 - add xen/include/xen/bootfdt.h to MAINTAINERS file.
 - drop message "Early device tree parsing and".
 - After rebase on top of the current staging the following changes were done:
   - init bootinfo variable in <common/device-tree/bootinfo.c> with BOOTINFO_INIT;
   - update the code of dt_unreserved_regions():
       CONFIG_STATIC_SHM related changes and getting of reserved_mem
       bootinfo_get_shmem() ??
   - update the code of meminfo_overlap_check():
       add check ( INVALID_PADDR == bank_start ) to if case.
   - update the code of check_reserved_regions_overlap():
       CONFIG_STATIC_SHM related changes.
   - struct bootinfo was updated ( CONFIG_STATIC_SHM changes )
   - add shared_meminfo ( because of CONFIG_STATIC_SHM )
   - struct struct membanks was update with __struct group so <xen/kernel> is
     neeeded to be included in bootfdt.h
   - move BOOTINFO_ACPI_INIT, BOOTINFO_SHMEM_INIT, BOOTINFO_INIT to generic bootfdt.h
   - bootinfo_get_reserved_mem(), bootinfo_get_mem(), bootinfo_get_acpi(),
     bootinfo_get_shmem() and bootinfo_get_shmem_extra() were moved to xen/bootfdt.h
 - s/arm32/CONFIG_SEPARATE_XENHEAP/
 - add inclusion of <xen/macros.h> because there are function in <xen/bootfdt.h> which
   are using container_of().
 ---
Changes in v4:
  - create new xen/include/bootinfo.h rather than relying on arch's
    asm/setup.h to provide required definitions for bootinfo.c
  - build bootinfo.c as .init.o
  - clean up and sort bootinfo.c's #includes
  - use CONFIG_SEPARATE_XENHEAP rather than CONFIG_ARM_32 to guard
    xenheap-specific behavior of populate_boot_allocator
  - (MAINTAINERS) include all of common/device-tree rather than just
    bootinfo.c
---
 xen/arch/arm/Makefile            |   1 -
 xen/arch/arm/bootfdt.c           | 622 ------------------------------
 xen/arch/arm/include/asm/setup.h |  13 -
 xen/common/device-tree/Makefile  |   1 +
 xen/common/device-tree/bootfdt.c | 635 +++++++++++++++++++++++++++++++
 xen/include/xen/bootfdt.h        |  14 +
 6 files changed, 650 insertions(+), 636 deletions(-)
 delete mode 100644 xen/arch/arm/bootfdt.c
 create mode 100644 xen/common/device-tree/bootfdt.c

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 45dc29ea53..da9c979dc4 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -10,7 +10,6 @@ obj-$(CONFIG_TEE) += tee/
 obj-$(CONFIG_HAS_VPCI) += vpci.o
 
 obj-$(CONFIG_HAS_ALTERNATIVE) += alternative.o
-obj-y += bootfdt.init.o
 obj-y += cpuerrata.o
 obj-y += cpufeature.o
 obj-y += decode.o
diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
deleted file mode 100644
index 6e060111d9..0000000000
--- a/xen/arch/arm/bootfdt.c
+++ /dev/null
@@ -1,622 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Early Device Tree
- *
- * Copyright (C) 2012-2014 Citrix Systems, Inc.
- */
-#include <xen/types.h>
-#include <xen/lib.h>
-#include <xen/kernel.h>
-#include <xen/init.h>
-#include <xen/efi.h>
-#include <xen/device_tree.h>
-#include <xen/lib.h>
-#include <xen/libfdt/libfdt-xen.h>
-#include <xen/sort.h>
-#include <xsm/xsm.h>
-#include <asm/setup.h>
-#include <asm/static-shmem.h>
-
-static void __init __maybe_unused build_assertions(void)
-{
-    /*
-     * Check that no padding is between struct membanks "bank" flexible array
-     * member and struct meminfo "bank" member
-     */
-    BUILD_BUG_ON((offsetof(struct membanks, bank) !=
-                 offsetof(struct meminfo, bank)));
-    /* Ensure "struct membanks" is 8-byte aligned */
-    BUILD_BUG_ON(alignof(struct membanks) != 8);
-}
-
-static bool __init device_tree_node_is_available(const void *fdt, int node)
-{
-    const char *status;
-    int len;
-
-    status = fdt_getprop(fdt, node, "status", &len);
-    if ( !status )
-        return true;
-
-    if ( len > 0 )
-    {
-        if ( !strcmp(status, "ok") || !strcmp(status, "okay") )
-            return true;
-    }
-
-    return false;
-}
-
-static bool __init device_tree_node_matches(const void *fdt, int node,
-                                            const char *match)
-{
-    const char *name;
-    size_t match_len;
-
-    name = fdt_get_name(fdt, node, NULL);
-    match_len = strlen(match);
-
-    /* Match both "match" and "match@..." patterns but not
-       "match-foo". */
-    return strncmp(name, match, match_len) == 0
-        && (name[match_len] == '@' || name[match_len] == '\0');
-}
-
-static bool __init device_tree_node_compatible(const void *fdt, int node,
-                                               const char *match)
-{
-    int len, l;
-    const void *prop;
-
-    prop = fdt_getprop(fdt, node, "compatible", &len);
-    if ( prop == NULL )
-        return false;
-
-    while ( len > 0 ) {
-        if ( !dt_compat_cmp(prop, match) )
-            return true;
-        l = strlen(prop) + 1;
-        prop += l;
-        len -= l;
-    }
-
-    return false;
-}
-
-void __init device_tree_get_reg(const __be32 **cell, uint32_t address_cells,
-                                uint32_t size_cells, paddr_t *start,
-                                paddr_t *size)
-{
-    uint64_t dt_start, dt_size;
-
-    /*
-     * dt_next_cell will return uint64_t whereas paddr_t may not be 64-bit.
-     * Thus, there is an implicit cast from uint64_t to paddr_t.
-     */
-    dt_start = dt_next_cell(address_cells, cell);
-    dt_size = dt_next_cell(size_cells, cell);
-
-    if ( dt_start != (paddr_t)dt_start )
-    {
-        printk("Physical address greater than max width supported\n");
-        WARN();
-    }
-
-    if ( dt_size != (paddr_t)dt_size )
-    {
-        printk("Physical size greater than max width supported\n");
-        WARN();
-    }
-
-    /*
-     * Xen will truncate the address/size if it is greater than the maximum
-     * supported width and it will give an appropriate warning.
-     */
-    *start = dt_start;
-    *size = dt_size;
-}
-
-static int __init device_tree_get_meminfo(const void *fdt, int node,
-                                          const char *prop_name,
-                                          u32 address_cells, u32 size_cells,
-                                          struct membanks *mem,
-                                          enum membank_type type)
-{
-    const struct fdt_property *prop;
-    unsigned int i, banks;
-    const __be32 *cell;
-    u32 reg_cells = address_cells + size_cells;
-    paddr_t start, size;
-
-    if ( !device_tree_node_is_available(fdt, node) )
-        return 0;
-
-    if ( address_cells < 1 || size_cells < 1 )
-    {
-        printk("fdt: property `%s': invalid #address-cells or #size-cells",
-               prop_name);
-        return -EINVAL;
-    }
-
-    prop = fdt_get_property(fdt, node, prop_name, NULL);
-    if ( !prop )
-        return -ENOENT;
-
-    cell = (const __be32 *)prop->data;
-    banks = fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32));
-
-    for ( i = 0; i < banks && mem->nr_banks < mem->max_banks; i++ )
-    {
-        device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
-        if ( mem == bootinfo_get_reserved_mem() &&
-             check_reserved_regions_overlap(start, size) )
-            return -EINVAL;
-        /* Some DT may describe empty bank, ignore them */
-        if ( !size )
-            continue;
-        mem->bank[mem->nr_banks].start = start;
-        mem->bank[mem->nr_banks].size = size;
-        mem->bank[mem->nr_banks].type = type;
-        mem->nr_banks++;
-    }
-
-    if ( i < banks )
-    {
-        printk("Warning: Max number of supported memory regions reached.\n");
-        return -ENOSPC;
-    }
-
-    return 0;
-}
-
-u32 __init device_tree_get_u32(const void *fdt, int node,
-                               const char *prop_name, u32 dflt)
-{
-    const struct fdt_property *prop;
-
-    prop = fdt_get_property(fdt, node, prop_name, NULL);
-    if ( !prop || prop->len < sizeof(u32) )
-        return dflt;
-
-    return fdt32_to_cpu(*(uint32_t*)prop->data);
-}
-
-/**
- * device_tree_for_each_node - iterate over all device tree sub-nodes
- * @fdt: flat device tree.
- * @node: parent node to start the search from
- * @func: function to call for each sub-node.
- * @data: data to pass to @func.
- *
- * Any nodes nested at DEVICE_TREE_MAX_DEPTH or deeper are ignored.
- *
- * Returns 0 if all nodes were iterated over successfully.  If @func
- * returns a value different from 0, that value is returned immediately.
- */
-int __init device_tree_for_each_node(const void *fdt, int node,
-                                     device_tree_node_func func,
-                                     void *data)
-{
-    /*
-     * We only care about relative depth increments, assume depth of
-     * node is 0 for simplicity.
-     */
-    int depth = 0;
-    const int first_node = node;
-    u32 address_cells[DEVICE_TREE_MAX_DEPTH];
-    u32 size_cells[DEVICE_TREE_MAX_DEPTH];
-    int ret;
-
-    do {
-        const char *name = fdt_get_name(fdt, node, NULL);
-        u32 as, ss;
-
-        if ( depth >= DEVICE_TREE_MAX_DEPTH )
-        {
-            printk("Warning: device tree node `%s' is nested too deep\n",
-                   name);
-            continue;
-        }
-
-        as = depth > 0 ? address_cells[depth-1] : DT_ROOT_NODE_ADDR_CELLS_DEFAULT;
-        ss = depth > 0 ? size_cells[depth-1] : DT_ROOT_NODE_SIZE_CELLS_DEFAULT;
-
-        address_cells[depth] = device_tree_get_u32(fdt, node,
-                                                   "#address-cells", as);
-        size_cells[depth] = device_tree_get_u32(fdt, node,
-                                                "#size-cells", ss);
-
-        /* skip the first node */
-        if ( node != first_node )
-        {
-            ret = func(fdt, node, name, depth, as, ss, data);
-            if ( ret != 0 )
-                return ret;
-        }
-
-        node = fdt_next_node(fdt, node, &depth);
-    } while ( node >= 0 && depth > 0 );
-
-    return 0;
-}
-
-static int __init process_memory_node(const void *fdt, int node,
-                                      const char *name, int depth,
-                                      u32 address_cells, u32 size_cells,
-                                      struct membanks *mem)
-{
-    return device_tree_get_meminfo(fdt, node, "reg", address_cells, size_cells,
-                                   mem, MEMBANK_DEFAULT);
-}
-
-static int __init process_reserved_memory_node(const void *fdt, int node,
-                                               const char *name, int depth,
-                                               u32 address_cells,
-                                               u32 size_cells,
-                                               void *data)
-{
-    int rc = process_memory_node(fdt, node, name, depth, address_cells,
-                                 size_cells, data);
-
-    if ( rc == -ENOSPC )
-        panic("Max number of supported reserved-memory regions reached.\n");
-    else if ( rc != -ENOENT )
-        return rc;
-    return 0;
-}
-
-static int __init process_reserved_memory(const void *fdt, int node,
-                                          const char *name, int depth,
-                                          u32 address_cells, u32 size_cells)
-{
-    return device_tree_for_each_node(fdt, node,
-                                     process_reserved_memory_node,
-                                     bootinfo_get_reserved_mem());
-}
-
-static void __init process_multiboot_node(const void *fdt, int node,
-                                          const char *name,
-                                          u32 address_cells, u32 size_cells)
-{
-    static int __initdata kind_guess = 0;
-    const struct fdt_property *prop;
-    const __be32 *cell;
-    bootmodule_kind kind;
-    paddr_t start, size;
-    int len;
-    /* sizeof("/chosen/") + DT_MAX_NAME + '/' + DT_MAX_NAME + '/0' => 92 */
-    char path[92];
-    int parent_node, ret;
-    bool domU;
-
-    parent_node = fdt_parent_offset(fdt, node);
-    ASSERT(parent_node >= 0);
-
-    /* Check that the node is under "/chosen" (first 7 chars of path) */
-    ret = fdt_get_path(fdt, node, path, sizeof (path));
-    if ( ret != 0 || strncmp(path, "/chosen", 7) )
-        return;
-
-    prop = fdt_get_property(fdt, node, "reg", &len);
-    if ( !prop )
-        panic("node %s missing `reg' property\n", name);
-
-    if ( len < dt_cells_to_size(address_cells + size_cells) )
-        panic("fdt: node `%s': `reg` property length is too short\n",
-                    name);
-
-    cell = (const __be32 *)prop->data;
-    device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
-
-    if ( fdt_node_check_compatible(fdt, node, "xen,linux-zimage") == 0 ||
-         fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )
-        kind = BOOTMOD_KERNEL;
-    else if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") == 0 ||
-              fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") == 0 )
-        kind = BOOTMOD_RAMDISK;
-    else if ( fdt_node_check_compatible(fdt, node, "xen,xsm-policy") == 0 )
-        kind = BOOTMOD_XSM;
-    else if ( fdt_node_check_compatible(fdt, node, "multiboot,device-tree") == 0 )
-        kind = BOOTMOD_GUEST_DTB;
-    else
-        kind = BOOTMOD_UNKNOWN;
-
-    /**
-     * Guess the kind of these first two unknowns respectively:
-     * (1) The first unknown must be kernel.
-     * (2) Detect the XSM Magic from the 2nd unknown:
-     *     a. If it's XSM, set the kind as XSM, and that also means we
-     *     won't load ramdisk;
-     *     b. if it's not XSM, set the kind as ramdisk.
-     *     So if user want to load ramdisk, it must be the 2nd unknown.
-     * We also detect the XSM Magic for the following unknowns,
-     * then set its kind according to the return value of has_xsm_magic.
-     */
-    if ( kind == BOOTMOD_UNKNOWN )
-    {
-        switch ( kind_guess++ )
-        {
-        case 0: kind = BOOTMOD_KERNEL; break;
-        case 1: kind = BOOTMOD_RAMDISK; break;
-        default: break;
-        }
-        if ( kind_guess > 1 && has_xsm_magic(start) )
-            kind = BOOTMOD_XSM;
-    }
-
-    domU = fdt_node_check_compatible(fdt, parent_node, "xen,domain") == 0;
-    add_boot_module(kind, start, size, domU);
-
-    prop = fdt_get_property(fdt, node, "bootargs", &len);
-    if ( !prop )
-        return;
-    add_boot_cmdline(fdt_get_name(fdt, parent_node, &len), prop->data,
-                     kind, start, domU);
-}
-
-static int __init process_chosen_node(const void *fdt, int node,
-                                      const char *name,
-                                      u32 address_cells, u32 size_cells)
-{
-    const struct fdt_property *prop;
-    paddr_t start, end;
-    int len;
-
-    if ( fdt_get_property(fdt, node, "xen,static-heap", NULL) )
-    {
-        int rc;
-
-        printk("Checking for static heap in /chosen\n");
-
-        rc = device_tree_get_meminfo(fdt, node, "xen,static-heap",
-                                     address_cells, size_cells,
-                                     bootinfo_get_reserved_mem(),
-                                     MEMBANK_STATIC_HEAP);
-        if ( rc )
-            return rc;
-
-        bootinfo.static_heap = true;
-    }
-
-    printk("Checking for initrd in /chosen\n");
-
-    prop = fdt_get_property(fdt, node, "linux,initrd-start", &len);
-    if ( !prop )
-        /* No initrd present. */
-        return 0;
-    if ( len != sizeof(u32) && len != sizeof(u64) )
-    {
-        printk("linux,initrd-start property has invalid length %d\n", len);
-        return -EINVAL;
-    }
-    start = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
-
-    prop = fdt_get_property(fdt, node, "linux,initrd-end", &len);
-    if ( !prop )
-    {
-        printk("linux,initrd-end not present but -start was\n");
-        return -EINVAL;
-    }
-    if ( len != sizeof(u32) && len != sizeof(u64) )
-    {
-        printk("linux,initrd-end property has invalid length %d\n", len);
-        return -EINVAL;
-    }
-    end = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
-
-    if ( start >= end )
-    {
-        printk("linux,initrd limits invalid: %"PRIpaddr" >= %"PRIpaddr"\n",
-                  start, end);
-        return -EINVAL;
-    }
-
-    printk("Initrd %"PRIpaddr"-%"PRIpaddr"\n", start, end);
-
-    add_boot_module(BOOTMOD_RAMDISK, start, end-start, false);
-
-    return 0;
-}
-
-static int __init process_domain_node(const void *fdt, int node,
-                                      const char *name,
-                                      u32 address_cells, u32 size_cells)
-{
-    const struct fdt_property *prop;
-
-    printk("Checking for \"xen,static-mem\" in domain node\n");
-
-    prop = fdt_get_property(fdt, node, "xen,static-mem", NULL);
-    if ( !prop )
-        /* No "xen,static-mem" present. */
-        return 0;
-
-    return device_tree_get_meminfo(fdt, node, "xen,static-mem", address_cells,
-                                   size_cells, bootinfo_get_reserved_mem(),
-                                   MEMBANK_STATIC_DOMAIN);
-}
-
-static int __init early_scan_node(const void *fdt,
-                                  int node, const char *name, int depth,
-                                  u32 address_cells, u32 size_cells,
-                                  void *data)
-{
-    int rc = 0;
-
-    /*
-     * If Xen has been booted via UEFI, the memory banks are
-     * populated. So we should skip the parsing.
-     */
-    if ( !efi_enabled(EFI_BOOT) &&
-         device_tree_node_matches(fdt, node, "memory") )
-        rc = process_memory_node(fdt, node, name, depth,
-                                 address_cells, size_cells, bootinfo_get_mem());
-    else if ( depth == 1 && !dt_node_cmp(name, "reserved-memory") )
-        rc = process_reserved_memory(fdt, node, name, depth,
-                                     address_cells, size_cells);
-    else if ( depth <= 3 && (device_tree_node_compatible(fdt, node, "xen,multiboot-module" ) ||
-              device_tree_node_compatible(fdt, node, "multiboot,module" )))
-        process_multiboot_node(fdt, node, name, address_cells, size_cells);
-    else if ( depth == 1 && device_tree_node_matches(fdt, node, "chosen") )
-        rc = process_chosen_node(fdt, node, name, address_cells, size_cells);
-    else if ( depth == 2 && device_tree_node_compatible(fdt, node, "xen,domain") )
-        rc = process_domain_node(fdt, node, name, address_cells, size_cells);
-    else if ( depth <= 3 && device_tree_node_compatible(fdt, node, "xen,domain-shared-memory-v1") )
-        rc = process_shm_node(fdt, node, address_cells, size_cells);
-
-    if ( rc < 0 )
-        printk("fdt: node `%s': parsing failed\n", name);
-    return rc;
-}
-
-static void __init early_print_info(void)
-{
-    const struct membanks *mi = bootinfo_get_mem();
-    const struct membanks *mem_resv = bootinfo_get_reserved_mem();
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootcmdlines *cmds = &bootinfo.cmdlines;
-    unsigned int i;
-
-    for ( i = 0; i < mi->nr_banks; i++ )
-        printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n",
-                mi->bank[i].start,
-                mi->bank[i].start + mi->bank[i].size - 1);
-    printk("\n");
-    for ( i = 0 ; i < mods->nr_mods; i++ )
-        printk("MODULE[%d]: %"PRIpaddr" - %"PRIpaddr" %-12s\n",
-                i,
-                mods->module[i].start,
-                mods->module[i].start + mods->module[i].size,
-                boot_module_kind_as_string(mods->module[i].kind));
-
-    for ( i = 0; i < mem_resv->nr_banks; i++ )
-    {
-        printk(" RESVD[%u]: %"PRIpaddr" - %"PRIpaddr"\n", i,
-               mem_resv->bank[i].start,
-               mem_resv->bank[i].start + mem_resv->bank[i].size - 1);
-    }
-    early_print_info_shmem();
-    printk("\n");
-    for ( i = 0 ; i < cmds->nr_mods; i++ )
-        printk("CMDLINE[%"PRIpaddr"]:%s %s\n", cmds->cmdline[i].start,
-               cmds->cmdline[i].dt_name,
-               &cmds->cmdline[i].cmdline[0]);
-    printk("\n");
-}
-
-/* This function assumes that memory regions are not overlapped */
-static int __init cmp_memory_node(const void *key, const void *elem)
-{
-    const struct membank *handler0 = key;
-    const struct membank *handler1 = elem;
-
-    if ( handler0->start < handler1->start )
-        return -1;
-
-    if ( handler0->start >= (handler1->start + handler1->size) )
-        return 1;
-
-    return 0;
-}
-
-static void __init swap_memory_node(void *_a, void *_b, size_t size)
-{
-    struct membank *a = _a, *b = _b;
-
-    SWAP(*a, *b);
-}
-
-/**
- * boot_fdt_info - initialize bootinfo from a DTB
- * @fdt: flattened device tree binary
- *
- * Returns the size of the DTB.
- */
-size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
-{
-    struct membanks *reserved_mem = bootinfo_get_reserved_mem();
-    struct membanks *mem = bootinfo_get_mem();
-    unsigned int i;
-    int nr_rsvd;
-    int ret;
-
-    ret = fdt_check_header(fdt);
-    if ( ret < 0 )
-        panic("No valid device tree\n");
-
-    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
-
-    nr_rsvd = fdt_num_mem_rsv(fdt);
-    if ( nr_rsvd < 0 )
-        panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
-
-    for ( i = 0; i < nr_rsvd; i++ )
-    {
-        struct membank *bank;
-        paddr_t s, sz;
-
-        if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
-            continue;
-
-        if ( reserved_mem->nr_banks < reserved_mem->max_banks )
-        {
-            bank = &reserved_mem->bank[reserved_mem->nr_banks];
-            bank->start = s;
-            bank->size = sz;
-            bank->type = MEMBANK_FDT_RESVMEM;
-            reserved_mem->nr_banks++;
-        }
-        else
-            panic("Cannot allocate reserved memory bank\n");
-    }
-
-    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
-    if ( ret )
-        panic("Early FDT parsing failed (%d)\n", ret);
-
-    /*
-     * On Arm64 setup_directmap_mappings() expects to be called with the lowest
-     * bank in memory first. There is no requirement that the DT will provide
-     * the banks sorted in ascending order. So sort them through.
-     */
-    sort(mem->bank, mem->nr_banks, sizeof(struct membank),
-         cmp_memory_node, swap_memory_node);
-
-    early_print_info();
-
-    return fdt_totalsize(fdt);
-}
-
-const __init char *boot_fdt_cmdline(const void *fdt)
-{
-    int node;
-    const struct fdt_property *prop;
-
-    node = fdt_path_offset(fdt, "/chosen");
-    if ( node < 0 )
-        return NULL;
-
-    prop = fdt_get_property(fdt, node, "xen,xen-bootargs", NULL);
-    if ( prop == NULL )
-    {
-        struct bootcmdline *dom0_cmdline =
-            boot_cmdline_find_by_kind(BOOTMOD_KERNEL);
-
-        if (fdt_get_property(fdt, node, "xen,dom0-bootargs", NULL) ||
-            ( dom0_cmdline && dom0_cmdline->cmdline[0] ) )
-            prop = fdt_get_property(fdt, node, "bootargs", NULL);
-    }
-    if ( prop == NULL )
-        return NULL;
-
-    return prop->data;
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 1748be29e5..64c227d171 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -41,19 +41,6 @@ void fw_unreserved_regions(paddr_t s, paddr_t e,
                            void (*cb)(paddr_t ps, paddr_t pe),
                            unsigned int first);
 
-bool check_reserved_regions_overlap(paddr_t region_start, paddr_t region_size);
-
-struct bootmodule *add_boot_module(bootmodule_kind kind,
-                                   paddr_t start, paddr_t size, bool domU);
-struct bootmodule *boot_module_find_by_kind(bootmodule_kind kind);
-struct bootmodule * boot_module_find_by_addr_and_kind(bootmodule_kind kind,
-                                                             paddr_t start);
-void add_boot_cmdline(const char *name, const char *cmdline,
-                      bootmodule_kind kind, paddr_t start, bool domU);
-struct bootcmdline *boot_cmdline_find_by_kind(bootmodule_kind kind);
-struct bootcmdline * boot_cmdline_find_by_name(const char *name);
-const char *boot_module_kind_as_string(bootmodule_kind kind);
-
 void init_pdx(void);
 void setup_mm(void);
 
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index da892dd55d..22a053f184 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -1,2 +1,3 @@
+obj-y += bootfdt.init.o
 obj-y += bootinfo.init.o
 obj-y += device_tree.o
diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
new file mode 100644
index 0000000000..748b5f7c69
--- /dev/null
+++ b/xen/common/device-tree/bootfdt.c
@@ -0,0 +1,635 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Early Device Tree
+ *
+ * Copyright (C) 2012-2014 Citrix Systems, Inc.
+ */
+
+#include <xen/bootfdt.h>
+#include <xen/device_tree.h>
+#include <xen/efi.h>
+#include <xen/init.h>
+#include <xen/kernel.h>
+#include <xen/libfdt/libfdt-xen.h>
+#include <xen/sort.h>
+#include <xsm/xsm.h>
+#include <asm/setup.h>
+#ifdef CONFIG_STATIC_SHM
+#include <asm/static-shmem.h>
+#endif
+
+static void __init __maybe_unused build_assertions(void)
+{
+    /*
+     * Check that no padding is between struct membanks "bank" flexible array
+     * member and struct meminfo "bank" member
+     */
+    BUILD_BUG_ON((offsetof(struct membanks, bank) !=
+                 offsetof(struct meminfo, bank)));
+    /* Ensure "struct membanks" is 8-byte aligned */
+    BUILD_BUG_ON(alignof(struct membanks) != 8);
+}
+
+static bool __init device_tree_node_is_available(const void *fdt, int node)
+{
+    const char *status;
+    int len;
+
+    status = fdt_getprop(fdt, node, "status", &len);
+    if ( !status )
+        return true;
+
+    if ( len > 0 )
+    {
+        if ( !strcmp(status, "ok") || !strcmp(status, "okay") )
+            return true;
+    }
+
+    return false;
+}
+
+static bool __init device_tree_node_matches(const void *fdt, int node,
+                                            const char *match)
+{
+    const char *name;
+    size_t match_len;
+
+    name = fdt_get_name(fdt, node, NULL);
+    match_len = strlen(match);
+
+    /* Match both "match" and "match@..." patterns but not
+       "match-foo". */
+    return strncmp(name, match, match_len) == 0
+        && (name[match_len] == '@' || name[match_len] == '\0');
+}
+
+static bool __init device_tree_node_compatible(const void *fdt, int node,
+                                               const char *match)
+{
+    int len, l;
+    const void *prop;
+
+    prop = fdt_getprop(fdt, node, "compatible", &len);
+    if ( prop == NULL )
+        return false;
+
+    while ( len > 0 ) {
+        if ( !dt_compat_cmp(prop, match) )
+            return true;
+        l = strlen(prop) + 1;
+        prop += l;
+        len -= l;
+    }
+
+    return false;
+}
+
+void __init device_tree_get_reg(const __be32 **cell, uint32_t address_cells,
+                                uint32_t size_cells, paddr_t *start,
+                                paddr_t *size)
+{
+    uint64_t dt_start, dt_size;
+
+    /*
+     * dt_next_cell will return uint64_t whereas paddr_t may not be 64-bit.
+     * Thus, there is an implicit cast from uint64_t to paddr_t.
+     */
+    dt_start = dt_next_cell(address_cells, cell);
+    dt_size = dt_next_cell(size_cells, cell);
+
+    if ( dt_start != (paddr_t)dt_start )
+    {
+        printk("Physical address greater than max width supported\n");
+        WARN();
+    }
+
+    if ( dt_size != (paddr_t)dt_size )
+    {
+        printk("Physical size greater than max width supported\n");
+        WARN();
+    }
+
+    /*
+     * Xen will truncate the address/size if it is greater than the maximum
+     * supported width and it will give an appropriate warning.
+     */
+    *start = dt_start;
+    *size = dt_size;
+}
+
+static int __init device_tree_get_meminfo(const void *fdt, int node,
+                                          const char *prop_name,
+                                          u32 address_cells, u32 size_cells,
+                                          struct membanks *mem,
+                                          enum membank_type type)
+{
+    const struct fdt_property *prop;
+    unsigned int i, banks;
+    const __be32 *cell;
+    u32 reg_cells = address_cells + size_cells;
+    paddr_t start, size;
+
+    if ( !device_tree_node_is_available(fdt, node) )
+        return 0;
+
+    if ( address_cells < 1 || size_cells < 1 )
+    {
+        printk("fdt: property `%s': invalid #address-cells or #size-cells",
+               prop_name);
+        return -EINVAL;
+    }
+
+    prop = fdt_get_property(fdt, node, prop_name, NULL);
+    if ( !prop )
+        return -ENOENT;
+
+    cell = (const __be32 *)prop->data;
+    banks = fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32));
+
+    for ( i = 0; i < banks && mem->nr_banks < mem->max_banks; i++ )
+    {
+        device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
+        if ( mem == bootinfo_get_reserved_mem() &&
+             check_reserved_regions_overlap(start, size) )
+            return -EINVAL;
+        /* Some DT may describe empty bank, ignore them */
+        if ( !size )
+            continue;
+        mem->bank[mem->nr_banks].start = start;
+        mem->bank[mem->nr_banks].size = size;
+        mem->bank[mem->nr_banks].type = type;
+        mem->nr_banks++;
+    }
+
+    if ( i < banks )
+    {
+        printk("Warning: Max number of supported memory regions reached.\n");
+        return -ENOSPC;
+    }
+
+    return 0;
+}
+
+u32 __init device_tree_get_u32(const void *fdt, int node,
+                               const char *prop_name, u32 dflt)
+{
+    const struct fdt_property *prop;
+
+    prop = fdt_get_property(fdt, node, prop_name, NULL);
+    if ( !prop || prop->len < sizeof(u32) )
+        return dflt;
+
+    return fdt32_to_cpu(*(uint32_t*)prop->data);
+}
+
+/**
+ * device_tree_for_each_node - iterate over all device tree sub-nodes
+ * @fdt: flat device tree.
+ * @node: parent node to start the search from
+ * @func: function to call for each sub-node.
+ * @data: data to pass to @func.
+ *
+ * Any nodes nested at DEVICE_TREE_MAX_DEPTH or deeper are ignored.
+ *
+ * Returns 0 if all nodes were iterated over successfully.  If @func
+ * returns a value different from 0, that value is returned immediately.
+ */
+int __init device_tree_for_each_node(const void *fdt, int node,
+                                     device_tree_node_func func,
+                                     void *data)
+{
+    /*
+     * We only care about relative depth increments, assume depth of
+     * node is 0 for simplicity.
+     */
+    int depth = 0;
+    const int first_node = node;
+    u32 address_cells[DEVICE_TREE_MAX_DEPTH];
+    u32 size_cells[DEVICE_TREE_MAX_DEPTH];
+    int ret;
+
+    do {
+        const char *name = fdt_get_name(fdt, node, NULL);
+        u32 as, ss;
+
+        if ( depth >= DEVICE_TREE_MAX_DEPTH )
+        {
+            printk("Warning: device tree node `%s' is nested too deep\n",
+                   name);
+            continue;
+        }
+
+        as = depth > 0 ? address_cells[depth-1] : DT_ROOT_NODE_ADDR_CELLS_DEFAULT;
+        ss = depth > 0 ? size_cells[depth-1] : DT_ROOT_NODE_SIZE_CELLS_DEFAULT;
+
+        address_cells[depth] = device_tree_get_u32(fdt, node,
+                                                   "#address-cells", as);
+        size_cells[depth] = device_tree_get_u32(fdt, node,
+                                                "#size-cells", ss);
+
+        /* skip the first node */
+        if ( node != first_node )
+        {
+            ret = func(fdt, node, name, depth, as, ss, data);
+            if ( ret != 0 )
+                return ret;
+        }
+
+        node = fdt_next_node(fdt, node, &depth);
+    } while ( node >= 0 && depth > 0 );
+
+    return 0;
+}
+
+static int __init process_memory_node(const void *fdt, int node,
+                                      const char *name, int depth,
+                                      u32 address_cells, u32 size_cells,
+                                      struct membanks *mem)
+{
+    return device_tree_get_meminfo(fdt, node, "reg", address_cells, size_cells,
+                                   mem, MEMBANK_DEFAULT);
+}
+
+static int __init process_reserved_memory_node(const void *fdt, int node,
+                                               const char *name, int depth,
+                                               u32 address_cells,
+                                               u32 size_cells,
+                                               void *data)
+{
+    int rc = process_memory_node(fdt, node, name, depth, address_cells,
+                                 size_cells, data);
+
+    if ( rc == -ENOSPC )
+        panic("Max number of supported reserved-memory regions reached.\n");
+    else if ( rc != -ENOENT )
+        return rc;
+    return 0;
+}
+
+static int __init process_reserved_memory(const void *fdt, int node,
+                                          const char *name, int depth,
+                                          u32 address_cells, u32 size_cells)
+{
+    return device_tree_for_each_node(fdt, node,
+                                     process_reserved_memory_node,
+                                     bootinfo_get_reserved_mem());
+}
+
+static void __init process_multiboot_node(const void *fdt, int node,
+                                          const char *name,
+                                          u32 address_cells, u32 size_cells)
+{
+    static int __initdata kind_guess = 0;
+    const struct fdt_property *prop;
+    const __be32 *cell;
+    bootmodule_kind kind;
+    paddr_t start, size;
+    int len;
+    /* sizeof("/chosen/") + DT_MAX_NAME + '/' + DT_MAX_NAME + '/0' => 92 */
+    char path[92];
+    int parent_node, ret;
+    bool domU;
+
+    parent_node = fdt_parent_offset(fdt, node);
+    ASSERT(parent_node >= 0);
+
+    /* Check that the node is under "/chosen" (first 7 chars of path) */
+    ret = fdt_get_path(fdt, node, path, sizeof (path));
+    if ( ret != 0 || strncmp(path, "/chosen", 7) )
+        return;
+
+    prop = fdt_get_property(fdt, node, "reg", &len);
+    if ( !prop )
+        panic("node %s missing `reg' property\n", name);
+
+    if ( len < dt_cells_to_size(address_cells + size_cells) )
+        panic("fdt: node `%s': `reg` property length is too short\n",
+                    name);
+
+    cell = (const __be32 *)prop->data;
+    device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
+
+    if ( fdt_node_check_compatible(fdt, node, "xen,linux-zimage") == 0 ||
+         fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )
+        kind = BOOTMOD_KERNEL;
+    else if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") == 0 ||
+              fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") == 0 )
+        kind = BOOTMOD_RAMDISK;
+    else if ( fdt_node_check_compatible(fdt, node, "xen,xsm-policy") == 0 )
+        kind = BOOTMOD_XSM;
+    else if ( fdt_node_check_compatible(fdt, node, "multiboot,device-tree") == 0 )
+        kind = BOOTMOD_GUEST_DTB;
+    else
+        kind = BOOTMOD_UNKNOWN;
+
+    /**
+     * Guess the kind of these first two unknowns respectively:
+     * (1) The first unknown must be kernel.
+     * (2) Detect the XSM Magic from the 2nd unknown:
+     *     a. If it's XSM, set the kind as XSM, and that also means we
+     *     won't load ramdisk;
+     *     b. if it's not XSM, set the kind as ramdisk.
+     *     So if user want to load ramdisk, it must be the 2nd unknown.
+     * We also detect the XSM Magic for the following unknowns,
+     * then set its kind according to the return value of has_xsm_magic.
+     */
+    if ( kind == BOOTMOD_UNKNOWN )
+    {
+        switch ( kind_guess++ )
+        {
+        case 0: kind = BOOTMOD_KERNEL; break;
+        case 1: kind = BOOTMOD_RAMDISK; break;
+        default: break;
+        }
+        if ( kind_guess > 1 && has_xsm_magic(start) )
+            kind = BOOTMOD_XSM;
+    }
+
+    domU = fdt_node_check_compatible(fdt, parent_node, "xen,domain") == 0;
+    add_boot_module(kind, start, size, domU);
+
+    prop = fdt_get_property(fdt, node, "bootargs", &len);
+    if ( !prop )
+        return;
+    add_boot_cmdline(fdt_get_name(fdt, parent_node, &len), prop->data,
+                     kind, start, domU);
+}
+
+static int __init process_chosen_node(const void *fdt, int node,
+                                      const char *name,
+                                      u32 address_cells, u32 size_cells)
+{
+    const struct fdt_property *prop;
+    paddr_t start, end;
+    int len;
+
+    if ( fdt_get_property(fdt, node, "xen,static-heap", NULL) )
+    {
+        int rc;
+
+        printk("Checking for static heap in /chosen\n");
+
+        rc = device_tree_get_meminfo(fdt, node, "xen,static-heap",
+                                     address_cells, size_cells,
+                                     bootinfo_get_reserved_mem(),
+                                     MEMBANK_STATIC_HEAP);
+        if ( rc )
+            return rc;
+
+        bootinfo.static_heap = true;
+    }
+
+    printk("Checking for initrd in /chosen\n");
+
+    prop = fdt_get_property(fdt, node, "linux,initrd-start", &len);
+    if ( !prop )
+        /* No initrd present. */
+        return 0;
+    if ( len != sizeof(u32) && len != sizeof(u64) )
+    {
+        printk("linux,initrd-start property has invalid length %d\n", len);
+        return -EINVAL;
+    }
+    start = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
+
+    prop = fdt_get_property(fdt, node, "linux,initrd-end", &len);
+    if ( !prop )
+    {
+        printk("linux,initrd-end not present but -start was\n");
+        return -EINVAL;
+    }
+    if ( len != sizeof(u32) && len != sizeof(u64) )
+    {
+        printk("linux,initrd-end property has invalid length %d\n", len);
+        return -EINVAL;
+    }
+    end = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
+
+    if ( start >= end )
+    {
+        printk("linux,initrd limits invalid: %"PRIpaddr" >= %"PRIpaddr"\n",
+                  start, end);
+        return -EINVAL;
+    }
+
+    printk("Initrd %"PRIpaddr"-%"PRIpaddr"\n", start, end);
+
+    add_boot_module(BOOTMOD_RAMDISK, start, end-start, false);
+
+    return 0;
+}
+
+static int __init process_domain_node(const void *fdt, int node,
+                                      const char *name,
+                                      u32 address_cells, u32 size_cells)
+{
+    const struct fdt_property *prop;
+
+    printk("Checking for \"xen,static-mem\" in domain node\n");
+
+    prop = fdt_get_property(fdt, node, "xen,static-mem", NULL);
+    if ( !prop )
+        /* No "xen,static-mem" present. */
+        return 0;
+
+    return device_tree_get_meminfo(fdt, node, "xen,static-mem", address_cells,
+                                   size_cells, bootinfo_get_reserved_mem(),
+                                   MEMBANK_STATIC_DOMAIN);
+}
+
+#ifndef CONFIG_STATIC_SHM
+static inline int process_shm_node(const void *fdt, int node,
+                                   uint32_t address_cells, uint32_t size_cells)
+{
+    printk("CONFIG_STATIC_SHM must be enabled for parsing static shared"
+            " memory nodes\n");
+    return -EINVAL;
+}
+#endif
+
+static int __init early_scan_node(const void *fdt,
+                                  int node, const char *name, int depth,
+                                  u32 address_cells, u32 size_cells,
+                                  void *data)
+{
+    int rc = 0;
+
+    /*
+     * If Xen has been booted via UEFI, the memory banks are
+     * populated. So we should skip the parsing.
+     */
+    if ( !efi_enabled(EFI_BOOT) &&
+         device_tree_node_matches(fdt, node, "memory") )
+        rc = process_memory_node(fdt, node, name, depth,
+                                 address_cells, size_cells, bootinfo_get_mem());
+    else if ( depth == 1 && !dt_node_cmp(name, "reserved-memory") )
+        rc = process_reserved_memory(fdt, node, name, depth,
+                                     address_cells, size_cells);
+    else if ( depth <= 3 && (device_tree_node_compatible(fdt, node, "xen,multiboot-module" ) ||
+              device_tree_node_compatible(fdt, node, "multiboot,module" )))
+        process_multiboot_node(fdt, node, name, address_cells, size_cells);
+    else if ( depth == 1 && device_tree_node_matches(fdt, node, "chosen") )
+        rc = process_chosen_node(fdt, node, name, address_cells, size_cells);
+    else if ( depth == 2 && device_tree_node_compatible(fdt, node, "xen,domain") )
+        rc = process_domain_node(fdt, node, name, address_cells, size_cells);
+    else if ( depth <= 3 && device_tree_node_compatible(fdt, node, "xen,domain-shared-memory-v1") )
+        rc = process_shm_node(fdt, node, address_cells, size_cells);
+
+    if ( rc < 0 )
+        printk("fdt: node `%s': parsing failed\n", name);
+    return rc;
+}
+
+static void __init early_print_info(void)
+{
+    const struct membanks *mi = bootinfo_get_mem();
+    const struct membanks *mem_resv = bootinfo_get_reserved_mem();
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootcmdlines *cmds = &bootinfo.cmdlines;
+    unsigned int i;
+
+    for ( i = 0; i < mi->nr_banks; i++ )
+        printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n",
+                mi->bank[i].start,
+                mi->bank[i].start + mi->bank[i].size - 1);
+    printk("\n");
+    for ( i = 0 ; i < mods->nr_mods; i++ )
+        printk("MODULE[%d]: %"PRIpaddr" - %"PRIpaddr" %-12s\n",
+                i,
+                mods->module[i].start,
+                mods->module[i].start + mods->module[i].size,
+                boot_module_kind_as_string(mods->module[i].kind));
+
+    for ( i = 0; i < mem_resv->nr_banks; i++ )
+    {
+        printk(" RESVD[%u]: %"PRIpaddr" - %"PRIpaddr"\n", i,
+               mem_resv->bank[i].start,
+               mem_resv->bank[i].start + mem_resv->bank[i].size - 1);
+    }
+#ifdef CONFIG_STATIC_SHM
+    early_print_info_shmem();
+#endif
+    printk("\n");
+    for ( i = 0 ; i < cmds->nr_mods; i++ )
+        printk("CMDLINE[%"PRIpaddr"]:%s %s\n", cmds->cmdline[i].start,
+               cmds->cmdline[i].dt_name,
+               &cmds->cmdline[i].cmdline[0]);
+    printk("\n");
+}
+
+/* This function assumes that memory regions are not overlapped */
+static int __init cmp_memory_node(const void *key, const void *elem)
+{
+    const struct membank *handler0 = key;
+    const struct membank *handler1 = elem;
+
+    if ( handler0->start < handler1->start )
+        return -1;
+
+    if ( handler0->start >= (handler1->start + handler1->size) )
+        return 1;
+
+    return 0;
+}
+
+static void __init swap_memory_node(void *_a, void *_b, size_t size)
+{
+    struct membank *a = _a, *b = _b;
+
+    SWAP(*a, *b);
+}
+
+/**
+ * boot_fdt_info - initialize bootinfo from a DTB
+ * @fdt: flattened device tree binary
+ *
+ * Returns the size of the DTB.
+ */
+size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
+{
+    struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+    struct membanks *mem = bootinfo_get_mem();
+    unsigned int i;
+    int nr_rsvd;
+    int ret;
+
+    ret = fdt_check_header(fdt);
+    if ( ret < 0 )
+        panic("No valid device tree\n");
+
+    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
+
+    nr_rsvd = fdt_num_mem_rsv(fdt);
+    if ( nr_rsvd < 0 )
+        panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
+
+    for ( i = 0; i < nr_rsvd; i++ )
+    {
+        struct membank *bank;
+        paddr_t s, sz;
+
+        if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
+            continue;
+
+        if ( reserved_mem->nr_banks < reserved_mem->max_banks )
+        {
+            bank = &reserved_mem->bank[reserved_mem->nr_banks];
+            bank->start = s;
+            bank->size = sz;
+            bank->type = MEMBANK_FDT_RESVMEM;
+            reserved_mem->nr_banks++;
+        }
+        else
+            panic("Cannot allocate reserved memory bank\n");
+    }
+
+    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
+    if ( ret )
+        panic("Early FDT parsing failed (%d)\n", ret);
+
+    /*
+     * On Arm64 setup_directmap_mappings() expects to be called with the lowest
+     * bank in memory first. There is no requirement that the DT will provide
+     * the banks sorted in ascending order. So sort them through.
+     */
+    sort(mem->bank, mem->nr_banks, sizeof(struct membank),
+         cmp_memory_node, swap_memory_node);
+
+    early_print_info();
+
+    return fdt_totalsize(fdt);
+}
+
+const __init char *boot_fdt_cmdline(const void *fdt)
+{
+    int node;
+    const struct fdt_property *prop;
+
+    node = fdt_path_offset(fdt, "/chosen");
+    if ( node < 0 )
+        return NULL;
+
+    prop = fdt_get_property(fdt, node, "xen,xen-bootargs", NULL);
+    if ( prop == NULL )
+    {
+        struct bootcmdline *dom0_cmdline =
+            boot_cmdline_find_by_kind(BOOTMOD_KERNEL);
+
+        if (fdt_get_property(fdt, node, "xen,dom0-bootargs", NULL) ||
+            ( dom0_cmdline && dom0_cmdline->cmdline[0] ) )
+            prop = fdt_get_property(fdt, node, "bootargs", NULL);
+    }
+    if ( prop == NULL )
+        return NULL;
+
+    return prop->data;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
index c39428d5f5..16fa05f38f 100644
--- a/xen/include/xen/bootfdt.h
+++ b/xen/include/xen/bootfdt.h
@@ -157,6 +157,20 @@ struct bootinfo {
 
 extern struct bootinfo bootinfo;
 
+bool check_reserved_regions_overlap(paddr_t region_start,
+                                    paddr_t region_size);
+
+struct bootmodule *add_boot_module(bootmodule_kind kind,
+                                   paddr_t start, paddr_t size, bool domU);
+struct bootmodule *boot_module_find_by_kind(bootmodule_kind kind);
+struct bootmodule * boot_module_find_by_addr_and_kind(bootmodule_kind kind,
+                                                             paddr_t start);
+void add_boot_cmdline(const char *name, const char *cmdline,
+                      bootmodule_kind kind, paddr_t start, bool domU);
+struct bootcmdline *boot_cmdline_find_by_kind(bootmodule_kind kind);
+struct bootcmdline * boot_cmdline_find_by_name(const char *name);
+const char *boot_module_kind_as_string(bootmodule_kind kind);
+
 void populate_boot_allocator(void);
 
 size_t boot_fdt_info(const void *fdt, paddr_t paddr);
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764292.1174733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdy5-00084N-7a; Wed, 24 Jul 2024 15:31:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764292.1174733; Wed, 24 Jul 2024 15:31: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 1sWdy4-00082w-QI; Wed, 24 Jul 2024 15:31:52 +0000
Received: by outflank-mailman (input) for mailman id 764292;
 Wed, 24 Jul 2024 15:31:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdy2-0005Oj-RP
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:51 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d79ff371-49d1-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 17:31:48 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2ef283c58f4so45563841fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:48 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef2b568858sm13237311fa.35.2024.07.24.08.31.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08: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: d79ff371-49d1-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835108; x=1722439908; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zhDenI8Vqhfps04l6z19lXhWwx3sADiuBr8IbwOHpQQ=;
        b=e5CD/4nsSmjuC+vTZupZL4WUhFjwUPBd+NSClhdBL+hsxT11BkMsEmaxnNG48XM7zw
         ecFuAe/XXMR4ylBU4dX6nnH3pzdIFP/kHBlu9Cruas0GAv9ewHfx1+bt+JuT8tnLy4S2
         QEC3cgPAS4SO9P0qXtcZullwnUO/d82wMlUXQ+u/x7TFbqv1eWRjOuWH4aWjPBqwYfq0
         p2Nvotd5TBByZG6CIEwRJ1hiufmEYip1I2IMvmMI+izhTlHZMiZ47X0Sjl1SDksGSilQ
         8Kv/xLYVJzGYf9llW97bRDOEYh0CmqHZMX8QHBTEUgAiD3iK4euOgCr+Hm9bTBd/30+S
         k4yQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835108; x=1722439908;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=zhDenI8Vqhfps04l6z19lXhWwx3sADiuBr8IbwOHpQQ=;
        b=MUrjI+BQj56LGhv26Lr6kheRxC39wAivxaY+CRGv252BKq1ehGIuDVSli/Nel4lRy1
         XooBYY72oVJOmB/GABCa8MZRBom/++bCYC7utzZNvelR/aWY01mM1Tb/vC35x4QJSjvW
         tw87Y9NEDzgL0FIeCs61ugVO8z448C9FPOiCps6SlanRfI8ybhG72YAXRKWr/hIcEak5
         mDykyLlgBqlG79MkkFG5PmLTDNT8ajqmEiIbtAVQwLJW89syGTM414E+SWxExsuaatn2
         BEOLyLPy9Nqezsyu8kdHAGzxMgQDxfnqS6i07x4qqFQNr73PTDRS0LRleLWjKd0ddDer
         aDoQ==
X-Gm-Message-State: AOJu0YyBUJLrorMCwjv/4Ys3r1gEmcer+xe3msyJPDAD5vrcJm74vM5N
	5B9BCNVvdnmDEyviHrr5FE+p3OiR6Gj36IhYQ4zzwQW7bGRJylhC3QjWxMzE
X-Google-Smtp-Source: AGHT+IEw2Ih7TjqWFH9quAInXrvmq/LMGy5eEqDbb+l4/OtqUgs8BZpiZZqTHUX1ITGf2HvUHoJgZQ==
X-Received: by 2002:a2e:8758:0:b0:2ef:2608:2e47 with SMTP id 38308e7fff4ca-2f039e92a53mr1149591fa.13.1721835104866;
        Wed, 24 Jul 2024 08:31:44 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Shawn Anastasio <sanastasio@raptorengineering.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>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v7 1/9] xen/device-tree: Move Arm's setup.c bootinfo functions to common
Date: Wed, 24 Jul 2024 17:31:32 +0200
Message-ID: <102f8b60c55cdf2db5890b9fb1c2fb66e61c4a67.1721834549.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721834549.git.oleksii.kurochko@gmail.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Shawn Anastasio <sanastasio@raptorengineering.com>

Arm's setup.c contains a collection of functions for parsing memory map
and other boot information from a device tree. Since these routines are
generally useful on any architecture that supports device tree booting,
move them into xen/common/device-tree.

Also, common/device_tree.c has been moved to the device-tree folder with
the corresponding updates to common/Makefile and common/device-tree/Makefile.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V7:
 - move obj-$(CONFIG_HAS_DEVICE_TREE) += device-tree/ to proper place in common/Makefile.
 - rename macros __XEN_BOOTFDT_H__ to XEN_BOOTFDT_H to not violate MISRA rule 21.1.
 - drop definition of "#define MAX_FDT_SIZE SZ_2M" in xen/bootfdt.h as it is expected to
   be arch-specific. Back "#define MAX_FDT_SIZE SZ_2M" to arm/setup.h where it was before
   these changes.
 - git mv xen/common/device_tree.c xen/common/device-tree/ and update correspondingly
   Makefiles of common/ and common/device-tree
 - update the commit message
---
Changes in V6:
 - update the version of the patch to v6.   
---
Changes in V5:
 - add xen/include/xen/bootfdt.h to MAINTAINERS file.
 - drop message "Early device tree parsing and".
 - After rebase on top of the current staging the following changes were done:
   - init bootinfo variable in <common/device-tree/bootinfo.c> with BOOTINFO_INIT;
   - update the code of dt_unreserved_regions():
       CONFIG_STATIC_SHM related changes and getting of reserved_mem
       bootinfo_get_shmem() ??
   - update the code of meminfo_overlap_check():
       add check ( INVALID_PADDR == bank_start ) to if case.
   - update the code of check_reserved_regions_overlap():
       CONFIG_STATIC_SHM related changes.
   - struct bootinfo was updated ( CONFIG_STATIC_SHM changes )
   - add shared_meminfo ( because of CONFIG_STATIC_SHM )
   - struct struct membanks was update with __struct group so <xen/kernel> is
     neeeded to be included in bootfdt.h
   - move BOOTINFO_ACPI_INIT, BOOTINFO_SHMEM_INIT, BOOTINFO_INIT to generic bootfdt.h
   - bootinfo_get_reserved_mem(), bootinfo_get_mem(), bootinfo_get_acpi(),
     bootinfo_get_shmem() and bootinfo_get_shmem_extra() were moved to xen/bootfdt.h
 - s/arm32/CONFIG_SEPARATE_XENHEAP/
 - add inclusion of <xen/macros.h> because there are function in <xen/bootfdt.h> which
   are using container_of().
 ---
Changes in v4:
  - create new xen/include/bootinfo.h rather than relying on arch's
    asm/setup.h to provide required definitions for bootinfo.c
  - build bootinfo.c as .init.o
  - clean up and sort bootinfo.c's #includes
  - use CONFIG_SEPARATE_XENHEAP rather than CONFIG_ARM_32 to guard
    xenheap-specific behavior of populate_boot_allocator
  - (MAINTAINERS) include all of common/device-tree rather than just
    bootinfo.c
---
 MAINTAINERS                          |    2 +
 xen/arch/arm/include/asm/setup.h     |  185 +--
 xen/arch/arm/setup.c                 |  432 -----
 xen/common/Makefile                  |    2 +-
 xen/common/device-tree/Makefile      |    2 +
 xen/common/device-tree/bootinfo.c    |  459 ++++++
 xen/common/device-tree/device_tree.c | 2253 ++++++++++++++++++++++++++
 xen/common/device_tree.c             | 2253 --------------------------
 xen/include/xen/bootfdt.h            |  195 +++
 9 files changed, 2913 insertions(+), 2870 deletions(-)
 create mode 100644 xen/common/device-tree/Makefile
 create mode 100644 xen/common/device-tree/bootinfo.c
 create mode 100644 xen/common/device-tree/device_tree.c
 delete mode 100644 xen/common/device_tree.c
 create mode 100644 xen/include/xen/bootfdt.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 2b0c894527..505915b6b6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -295,9 +295,11 @@ M:	Stefano Stabellini <sstabellini@kernel.org>
 M:	Julien Grall <julien@xen.org>
 S:	Supported
 F:	xen/common/libfdt/
+F:	xen/common/device-tree/
 F:	xen/common/device_tree.c
 F:	xen/common/dt-overlay.c
 F:	xen/include/xen/libfdt/
+F:	xen/include/xen/bootfdt.h
 F:	xen/include/xen/device_tree.h
 F:	xen/drivers/passthrough/device_tree.c
 
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index c34179da93..1748be29e5 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -3,159 +3,11 @@
 
 #include <public/version.h>
 #include <asm/p2m.h>
+#include <xen/bootfdt.h>
 #include <xen/device_tree.h>
 
-#define MIN_FDT_ALIGN 8
 #define MAX_FDT_SIZE SZ_2M
 
-#define NR_MEM_BANKS 256
-#define NR_SHMEM_BANKS 32
-
-#define MAX_MODULES 32 /* Current maximum useful modules */
-
-typedef enum {
-    BOOTMOD_XEN,
-    BOOTMOD_FDT,
-    BOOTMOD_KERNEL,
-    BOOTMOD_RAMDISK,
-    BOOTMOD_XSM,
-    BOOTMOD_GUEST_DTB,
-    BOOTMOD_UNKNOWN
-}  bootmodule_kind;
-
-enum membank_type {
-    /*
-     * The MEMBANK_DEFAULT type refers to either reserved memory for the
-     * device/firmware (when the bank is in 'reserved_mem') or any RAM (when
-     * the bank is in 'mem').
-     */
-    MEMBANK_DEFAULT,
-    /*
-     * The MEMBANK_STATIC_DOMAIN type is used to indicate whether the memory
-     * bank is bound to a static Xen domain. It is only valid when the bank
-     * is in reserved_mem.
-     */
-    MEMBANK_STATIC_DOMAIN,
-    /*
-     * The MEMBANK_STATIC_HEAP type is used to indicate whether the memory
-     * bank is reserved as static heap. It is only valid when the bank is
-     * in reserved_mem.
-     */
-    MEMBANK_STATIC_HEAP,
-    /*
-     * The MEMBANK_FDT_RESVMEM type is used to indicate whether the memory
-     * bank is from the FDT reserve map.
-     */
-    MEMBANK_FDT_RESVMEM,
-};
-
-/* Indicates the maximum number of characters(\0 included) for shm_id */
-#define MAX_SHM_ID_LENGTH 16
-
-struct shmem_membank_extra {
-    char shm_id[MAX_SHM_ID_LENGTH];
-    unsigned int nr_shm_borrowers;
-};
-
-struct membank {
-    paddr_t start;
-    paddr_t size;
-    union {
-        enum membank_type type;
-#ifdef CONFIG_STATIC_SHM
-        struct shmem_membank_extra *shmem_extra;
-#endif
-    };
-};
-
-struct membanks {
-    __struct_group(membanks_hdr, common, ,
-        unsigned int nr_banks;
-        unsigned int max_banks;
-    );
-    struct membank bank[];
-};
-
-struct meminfo {
-    struct membanks_hdr common;
-    struct membank bank[NR_MEM_BANKS];
-};
-
-struct shared_meminfo {
-    struct membanks_hdr common;
-    struct membank bank[NR_SHMEM_BANKS];
-    struct shmem_membank_extra extra[NR_SHMEM_BANKS];
-};
-
-/*
- * The domU flag is set for kernels and ramdisks of "xen,domain" nodes.
- * The purpose of the domU flag is to avoid getting confused in
- * kernel_probe, where we try to guess which is the dom0 kernel and
- * initrd to be compatible with all versions of the multiboot spec. 
- */
-#define BOOTMOD_MAX_CMDLINE 1024
-struct bootmodule {
-    bootmodule_kind kind;
-    bool domU;
-    paddr_t start;
-    paddr_t size;
-};
-
-/* DT_MAX_NAME is the node name max length according the DT spec */
-#define DT_MAX_NAME 41
-struct bootcmdline {
-    bootmodule_kind kind;
-    bool domU;
-    paddr_t start;
-    char dt_name[DT_MAX_NAME];
-    char cmdline[BOOTMOD_MAX_CMDLINE];
-};
-
-struct bootmodules {
-    int nr_mods;
-    struct bootmodule module[MAX_MODULES];
-};
-
-struct bootcmdlines {
-    unsigned int nr_mods;
-    struct bootcmdline cmdline[MAX_MODULES];
-};
-
-struct bootinfo {
-    struct meminfo mem;
-    /* The reserved regions are only used when booting using Device-Tree */
-    struct meminfo reserved_mem;
-    struct bootmodules modules;
-    struct bootcmdlines cmdlines;
-#ifdef CONFIG_ACPI
-    struct meminfo acpi;
-#endif
-#ifdef CONFIG_STATIC_SHM
-    struct shared_meminfo shmem;
-#endif
-    bool static_heap;
-};
-
-#ifdef CONFIG_ACPI
-#define BOOTINFO_ACPI_INIT .acpi.common.max_banks = NR_MEM_BANKS,
-#else
-#define BOOTINFO_ACPI_INIT
-#endif
-
-#ifdef CONFIG_STATIC_SHM
-#define BOOTINFO_SHMEM_INIT .shmem.common.max_banks = NR_SHMEM_BANKS,
-#else
-#define BOOTINFO_SHMEM_INIT
-#endif
-
-#define BOOTINFO_INIT                               \
-{                                                   \
-    .mem.common.max_banks = NR_MEM_BANKS,           \
-    .reserved_mem.common.max_banks = NR_MEM_BANKS,  \
-    BOOTINFO_ACPI_INIT                              \
-    BOOTINFO_SHMEM_INIT                             \
-}
-
 struct map_range_data
 {
     struct domain *d;
@@ -167,39 +19,8 @@ struct map_range_data
     struct rangeset *irq_ranges;
 };
 
-extern struct bootinfo bootinfo;
-
 extern domid_t max_init_domid;
 
-static inline struct membanks *bootinfo_get_mem(void)
-{
-    return container_of(&bootinfo.mem.common, struct membanks, common);
-}
-
-static inline struct membanks *bootinfo_get_reserved_mem(void)
-{
-    return container_of(&bootinfo.reserved_mem.common, struct membanks, common);
-}
-
-#ifdef CONFIG_ACPI
-static inline struct membanks *bootinfo_get_acpi(void)
-{
-    return container_of(&bootinfo.acpi.common, struct membanks, common);
-}
-#endif
-
-#ifdef CONFIG_STATIC_SHM
-static inline struct membanks *bootinfo_get_shmem(void)
-{
-    return container_of(&bootinfo.shmem.common, struct membanks, common);
-}
-
-static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void)
-{
-    return bootinfo.shmem.extra;
-}
-#endif
-
 void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
 
 size_t estimate_efi_size(unsigned int mem_nr_banks);
@@ -220,9 +41,6 @@ void fw_unreserved_regions(paddr_t s, paddr_t e,
                            void (*cb)(paddr_t ps, paddr_t pe),
                            unsigned int first);
 
-size_t boot_fdt_info(const void *fdt, paddr_t paddr);
-const char *boot_fdt_cmdline(const void *fdt);
-
 bool check_reserved_regions_overlap(paddr_t region_start, paddr_t region_size);
 
 struct bootmodule *add_boot_module(bootmodule_kind kind,
@@ -237,7 +55,6 @@ struct bootcmdline * boot_cmdline_find_by_name(const char *name);
 const char *boot_module_kind_as_string(bootmodule_kind kind);
 
 void init_pdx(void);
-void populate_boot_allocator(void);
 void setup_mm(void);
 
 extern uint32_t hyp_traps_vector[];
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 0c2fdaceaf..cb2c0a16b8 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -48,8 +48,6 @@
 #include <xsm/xsm.h>
 #include <asm/acpi.h>
 
-struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
-
 /*
  * Sanitized version of cpuinfo containing only features available on all
  * cores (only on arm64 as there is no sanitization support on arm32).
@@ -203,321 +201,6 @@ static void __init processor_id(void)
     processor_setup();
 }
 
-static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
-                                         void (*cb)(paddr_t ps, paddr_t pe),
-                                         unsigned int first)
-{
-    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
-#ifdef CONFIG_STATIC_SHM
-    const struct membanks *shmem = bootinfo_get_shmem();
-    unsigned int offset;
-#endif
-    unsigned int i;
-
-    /*
-     * i is the current bootmodule we are evaluating across all possible
-     * kinds.
-     */
-    for ( i = first; i < reserved_mem->nr_banks; i++ )
-    {
-        paddr_t r_s = reserved_mem->bank[i].start;
-        paddr_t r_e = r_s + reserved_mem->bank[i].size;
-
-        if ( s < r_e && r_s < e )
-        {
-            dt_unreserved_regions(r_e, e, cb, i + 1);
-            dt_unreserved_regions(s, r_s, cb, i + 1);
-            return;
-        }
-    }
-
-#ifdef CONFIG_STATIC_SHM
-    /*
-     * When retrieving the corresponding shared memory addresses
-     * below, we need to index the shmem->bank starting from 0, hence
-     * we need to use i - reserved_mem->nr_banks.
-    */
-    offset = reserved_mem->nr_banks;
-    for ( ; i - offset < shmem->nr_banks; i++ )
-    {
-        paddr_t r_s, r_e;
-
-        r_s = shmem->bank[i - offset].start;
-
-        /* Shared memory banks can contain INVALID_PADDR as start */
-        if ( INVALID_PADDR == r_s )
-            continue;
-
-        r_e = r_s + shmem->bank[i - offset].size;
-
-        if ( s < r_e && r_s < e )
-        {
-            dt_unreserved_regions(r_e, e, cb, i + 1);
-            dt_unreserved_regions(s, r_s, cb, i + 1);
-            return;
-        }
-    }
-#endif
-
-    cb(s, e);
-}
-
-/*
- * TODO: '*_end' could be 0 if the bank/region is at the end of the physical
- * address space. This is for now not handled as it requires more rework.
- */
-static bool __init meminfo_overlap_check(const struct membanks *mem,
-                                         paddr_t region_start,
-                                         paddr_t region_size)
-{
-    paddr_t bank_start = INVALID_PADDR, bank_end = 0;
-    paddr_t region_end = region_start + region_size;
-    unsigned int i, bank_num = mem->nr_banks;
-
-    for ( i = 0; i < bank_num; i++ )
-    {
-        bank_start = mem->bank[i].start;
-        bank_end = bank_start + mem->bank[i].size;
-
-        if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
-             region_start >= bank_end )
-            continue;
-        else
-        {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
-                   region_start, region_end, i, bank_start, bank_end);
-            return true;
-        }
-    }
-
-    return false;
-}
-
-/*
- * TODO: '*_end' could be 0 if the module/region is at the end of the physical
- * address space. This is for now not handled as it requires more rework.
- */
-static bool __init bootmodules_overlap_check(struct bootmodules *bootmodules,
-                                             paddr_t region_start,
-                                             paddr_t region_size)
-{
-    paddr_t mod_start = INVALID_PADDR, mod_end = 0;
-    paddr_t region_end = region_start + region_size;
-    unsigned int i, mod_num = bootmodules->nr_mods;
-
-    for ( i = 0; i < mod_num; i++ )
-    {
-        mod_start = bootmodules->module[i].start;
-        mod_end = mod_start + bootmodules->module[i].size;
-
-        if ( region_end <= mod_start || region_start >= mod_end )
-            continue;
-        else
-        {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with mod[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
-                   region_start, region_end, i, mod_start, mod_end);
-            return true;
-        }
-    }
-
-    return false;
-}
-
-void __init fw_unreserved_regions(paddr_t s, paddr_t e,
-                                  void (*cb)(paddr_t ps, paddr_t pe),
-                                  unsigned int first)
-{
-    if ( acpi_disabled )
-        dt_unreserved_regions(s, e, cb, first);
-    else
-        cb(s, e);
-}
-
-/*
- * Given an input physical address range, check if this range is overlapping
- * with the existing reserved memory regions defined in bootinfo.
- * Return true if the input physical address range is overlapping with any
- * existing reserved memory regions, otherwise false.
- */
-bool __init check_reserved_regions_overlap(paddr_t region_start,
-                                           paddr_t region_size)
-{
-    const struct membanks *mem_banks[] = {
-        bootinfo_get_reserved_mem(),
-#ifdef CONFIG_ACPI
-        bootinfo_get_acpi(),
-#endif
-#ifdef CONFIG_STATIC_SHM
-        bootinfo_get_shmem(),
-#endif
-    };
-    unsigned int i;
-
-    /*
-     * Check if input region is overlapping with reserved memory banks or
-     * ACPI EfiACPIReclaimMemory (when ACPI feature is enabled) or static
-     * shared memory banks (when static shared memory feature is enabled)
-     */
-    for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
-        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size) )
-            return true;
-
-    /* Check if input region is overlapping with bootmodules */
-    if ( bootmodules_overlap_check(&bootinfo.modules,
-                                   region_start, region_size) )
-        return true;
-
-    return false;
-}
-
-struct bootmodule __init *add_boot_module(bootmodule_kind kind,
-                                          paddr_t start, paddr_t size,
-                                          bool domU)
-{
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootmodule *mod;
-    unsigned int i;
-
-    if ( mods->nr_mods == MAX_MODULES )
-    {
-        printk("Ignoring %s boot module at %"PRIpaddr"-%"PRIpaddr" (too many)\n",
-               boot_module_kind_as_string(kind), start, start + size);
-        return NULL;
-    }
-
-    if ( check_reserved_regions_overlap(start, size) )
-        return NULL;
-
-    for ( i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->module[i];
-        if ( mod->kind == kind && mod->start == start )
-        {
-            if ( !domU )
-                mod->domU = false;
-            return mod;
-        }
-    }
-
-    mod = &mods->module[mods->nr_mods++];
-    mod->kind = kind;
-    mod->start = start;
-    mod->size = size;
-    mod->domU = domU;
-
-    return mod;
-}
-
-/*
- * boot_module_find_by_kind can only be used to return Xen modules (e.g
- * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
- * modules.
- */
-struct bootmodule * __init boot_module_find_by_kind(bootmodule_kind kind)
-{
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootmodule *mod;
-    int i;
-    for (i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->module[i];
-        if ( mod->kind == kind && !mod->domU )
-            return mod;
-    }
-    return NULL;
-}
-
-void __init add_boot_cmdline(const char *name, const char *cmdline,
-                             bootmodule_kind kind, paddr_t start, bool domU)
-{
-    struct bootcmdlines *cmds = &bootinfo.cmdlines;
-    struct bootcmdline *cmd;
-
-    if ( cmds->nr_mods == MAX_MODULES )
-    {
-        printk("Ignoring %s cmdline (too many)\n", name);
-        return;
-    }
-
-    cmd = &cmds->cmdline[cmds->nr_mods++];
-    cmd->kind = kind;
-    cmd->domU = domU;
-    cmd->start = start;
-
-    ASSERT(strlen(name) <= DT_MAX_NAME);
-    safe_strcpy(cmd->dt_name, name);
-
-    if ( strlen(cmdline) > BOOTMOD_MAX_CMDLINE )
-        panic("module %s command line too long\n", name);
-    safe_strcpy(cmd->cmdline, cmdline);
-}
-
-/*
- * boot_cmdline_find_by_kind can only be used to return Xen modules (e.g
- * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
- * modules.
- */
-struct bootcmdline * __init boot_cmdline_find_by_kind(bootmodule_kind kind)
-{
-    struct bootcmdlines *cmds = &bootinfo.cmdlines;
-    struct bootcmdline *cmd;
-    int i;
-
-    for ( i = 0 ; i < cmds->nr_mods ; i++ )
-    {
-        cmd = &cmds->cmdline[i];
-        if ( cmd->kind == kind && !cmd->domU )
-            return cmd;
-    }
-    return NULL;
-}
-
-struct bootcmdline * __init boot_cmdline_find_by_name(const char *name)
-{
-    struct bootcmdlines *mods = &bootinfo.cmdlines;
-    struct bootcmdline *mod;
-    unsigned int i;
-
-    for (i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->cmdline[i];
-        if ( strcmp(mod->dt_name, name) == 0 )
-            return mod;
-    }
-    return NULL;
-}
-
-struct bootmodule * __init boot_module_find_by_addr_and_kind(bootmodule_kind kind,
-                                                             paddr_t start)
-{
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootmodule *mod;
-    unsigned int i;
-
-    for (i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->module[i];
-        if ( mod->kind == kind && mod->start == start )
-            return mod;
-    }
-    return NULL;
-}
-
-const char * __init boot_module_kind_as_string(bootmodule_kind kind)
-{
-    switch ( kind )
-    {
-    case BOOTMOD_XEN:     return "Xen";
-    case BOOTMOD_FDT:     return "Device Tree";
-    case BOOTMOD_KERNEL:  return "Kernel";
-    case BOOTMOD_RAMDISK: return "Ramdisk";
-    case BOOTMOD_XSM:     return "XSM";
-    case BOOTMOD_GUEST_DTB:     return "DTB";
-    case BOOTMOD_UNKNOWN: return "Unknown";
-    default: BUG();
-    }
-}
-
 void __init discard_initial_modules(void)
 {
     struct bootmodules *mi = &bootinfo.modules;
@@ -556,40 +239,6 @@ static void * __init relocate_fdt(paddr_t dtb_paddr, size_t dtb_size)
     return fdt;
 }
 
-/*
- * Return the end of the non-module region starting at s. In other
- * words return s the start of the next modules after s.
- *
- * On input *end is the end of the region which should be considered
- * and it is updated to reflect the end of the module, clipped to the
- * end of the region if it would run over.
- */
-static paddr_t __init next_module(paddr_t s, paddr_t *end)
-{
-    struct bootmodules *mi = &bootinfo.modules;
-    paddr_t lowest = ~(paddr_t)0;
-    int i;
-
-    for ( i = 0; i < mi->nr_mods; i++ )
-    {
-        paddr_t mod_s = mi->module[i].start;
-        paddr_t mod_e = mod_s + mi->module[i].size;
-
-        if ( !mi->module[i].size )
-            continue;
-
-        if ( mod_s < s )
-            continue;
-        if ( mod_s > lowest )
-            continue;
-        if ( mod_s > *end )
-            continue;
-        lowest = mod_s;
-        *end = min(*end, mod_e);
-    }
-    return lowest;
-}
-
 void __init init_pdx(void)
 {
     const struct membanks *mem = bootinfo_get_mem();
@@ -635,87 +284,6 @@ void __init init_pdx(void)
     }
 }
 
-/*
- * Populate the boot allocator.
- * If a static heap was not provided by the admin, all the RAM but the
- * following regions will be added:
- *  - Modules (e.g., Xen, Kernel)
- *  - Reserved regions
- *  - Xenheap (arm32 only)
- * If a static heap was provided by the admin, populate the boot
- * allocator with the corresponding regions only, but with Xenheap excluded
- * on arm32.
- */
-void __init populate_boot_allocator(void)
-{
-    unsigned int i;
-    const struct membanks *banks = bootinfo_get_mem();
-    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
-    paddr_t s, e;
-
-    if ( bootinfo.static_heap )
-    {
-        for ( i = 0 ; i < reserved_mem->nr_banks; i++ )
-        {
-            if ( reserved_mem->bank[i].type != MEMBANK_STATIC_HEAP )
-                continue;
-
-            s = reserved_mem->bank[i].start;
-            e = s + reserved_mem->bank[i].size;
-#ifdef CONFIG_ARM_32
-            /* Avoid the xenheap, note that the xenheap cannot across a bank */
-            if ( s <= mfn_to_maddr(directmap_mfn_start) &&
-                 e >= mfn_to_maddr(directmap_mfn_end) )
-            {
-                init_boot_pages(s, mfn_to_maddr(directmap_mfn_start));
-                init_boot_pages(mfn_to_maddr(directmap_mfn_end), e);
-            }
-            else
-#endif
-                init_boot_pages(s, e);
-        }
-
-        return;
-    }
-
-    for ( i = 0; i < banks->nr_banks; i++ )
-    {
-        const struct membank *bank = &banks->bank[i];
-        paddr_t bank_end = bank->start + bank->size;
-
-        s = bank->start;
-        while ( s < bank_end )
-        {
-            paddr_t n = bank_end;
-
-            e = next_module(s, &n);
-
-            if ( e == ~(paddr_t)0 )
-                e = n = bank_end;
-
-            /*
-             * Module in a RAM bank other than the one which we are
-             * not dealing with here.
-             */
-            if ( e > bank_end )
-                e = bank_end;
-
-#ifdef CONFIG_ARM_32
-            /* Avoid the xenheap */
-            if ( s < mfn_to_maddr(directmap_mfn_end) &&
-                 mfn_to_maddr(directmap_mfn_start) < e )
-            {
-                e = mfn_to_maddr(directmap_mfn_start);
-                n = mfn_to_maddr(directmap_mfn_end);
-            }
-#endif
-
-            fw_unreserved_regions(s, e, init_boot_pages, 0);
-            s = n;
-        }
-    }
-}
-
 size_t __read_mostly dcache_line_bytes;
 
 /* C entry point for boot CPU */
diff --git a/xen/common/Makefile b/xen/common/Makefile
index f12a474d40..7e66802a9e 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -6,7 +6,7 @@ obj-$(CONFIG_HYPFS_CONFIG) += config_data.o
 obj-$(CONFIG_CORE_PARKING) += core_parking.o
 obj-y += cpu.o
 obj-$(CONFIG_DEBUG_TRACE) += debugtrace.o
-obj-$(CONFIG_HAS_DEVICE_TREE) += device_tree.o
+obj-$(CONFIG_HAS_DEVICE_TREE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
 obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
new file mode 100644
index 0000000000..da892dd55d
--- /dev/null
+++ b/xen/common/device-tree/Makefile
@@ -0,0 +1,2 @@
+obj-y += bootinfo.init.o
+obj-y += device_tree.o
diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
new file mode 100644
index 0000000000..dcac9a40a0
--- /dev/null
+++ b/xen/common/device-tree/bootinfo.c
@@ -0,0 +1,459 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Derived from $xen/arch/arm/setup.c.
+ *
+ * bookkeeping routines.
+ *
+ * Tim Deegan <tim@xen.org>
+ * Copyright (c) 2011 Citrix Systems.
+ * Copyright (c) 2024 Raptor Engineering LLC
+ */
+
+#include <xen/acpi.h>
+#include <xen/bootfdt.h>
+#include <xen/bug.h>
+#include <xen/device_tree.h>
+#include <xen/init.h>
+#include <xen/libfdt/libfdt-xen.h>
+#include <xen/mm.h>
+
+struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
+
+const char * __init boot_module_kind_as_string(bootmodule_kind kind)
+{
+    switch ( kind )
+    {
+    case BOOTMOD_XEN:     return "Xen";
+    case BOOTMOD_FDT:     return "Device Tree";
+    case BOOTMOD_KERNEL:  return "Kernel";
+    case BOOTMOD_RAMDISK: return "Ramdisk";
+    case BOOTMOD_XSM:     return "XSM";
+    case BOOTMOD_GUEST_DTB:     return "DTB";
+    case BOOTMOD_UNKNOWN: return "Unknown";
+    default: BUG();
+    }
+}
+
+static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
+                                         void (*cb)(paddr_t ps, paddr_t pe),
+                                         unsigned int first)
+{
+    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+#ifdef CONFIG_STATIC_SHM
+    const struct membanks *shmem = bootinfo_get_shmem();
+    unsigned int offset;
+#endif
+    unsigned int i;
+
+    /*
+     * i is the current bootmodule we are evaluating across all possible
+     * kinds.
+     */
+    for ( i = first; i < reserved_mem->nr_banks; i++ )
+    {
+        paddr_t r_s = reserved_mem->bank[i].start;
+        paddr_t r_e = r_s + reserved_mem->bank[i].size;
+
+        if ( s < r_e && r_s < e )
+        {
+            dt_unreserved_regions(r_e, e, cb, i + 1);
+            dt_unreserved_regions(s, r_s, cb, i + 1);
+            return;
+        }
+    }
+
+#ifdef CONFIG_STATIC_SHM
+    /*
+     * When retrieving the corresponding shared memory addresses
+     * below, we need to index the shmem->bank starting from 0, hence
+     * we need to use i - reserved_mem->nr_banks.
+    */
+    offset = reserved_mem->nr_banks;
+    for ( ; i - offset < shmem->nr_banks; i++ )
+    {
+        paddr_t r_s, r_e;
+
+        r_s = shmem->bank[i - offset].start;
+
+        /* Shared memory banks can contain INVALID_PADDR as start */
+        if ( INVALID_PADDR == r_s )
+            continue;
+
+        r_e = r_s + shmem->bank[i - offset].size;
+
+        if ( s < r_e && r_s < e )
+        {
+            dt_unreserved_regions(r_e, e, cb, i + 1);
+            dt_unreserved_regions(s, r_s, cb, i + 1);
+            return;
+        }
+    }
+#endif
+
+    cb(s, e);
+}
+
+/*
+ * TODO: '*_end' could be 0 if the bank/region is at the end of the physical
+ * address space. This is for now not handled as it requires more rework.
+ */
+static bool __init meminfo_overlap_check(const struct membanks *mem,
+                                         paddr_t region_start,
+                                         paddr_t region_size)
+{
+    paddr_t bank_start = INVALID_PADDR, bank_end = 0;
+    paddr_t region_end = region_start + region_size;
+    unsigned int i, bank_num = mem->nr_banks;
+
+    for ( i = 0; i < bank_num; i++ )
+    {
+        bank_start = mem->bank[i].start;
+        bank_end = bank_start + mem->bank[i].size;
+
+        if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
+             region_start >= bank_end )
+            continue;
+        else
+        {
+            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
+                   region_start, region_end, i, bank_start, bank_end);
+            return true;
+        }
+    }
+
+    return false;
+}
+
+/*
+ * TODO: '*_end' could be 0 if the module/region is at the end of the physical
+ * address space. This is for now not handled as it requires more rework.
+ */
+static bool __init bootmodules_overlap_check(struct bootmodules *bootmodules,
+                                             paddr_t region_start,
+                                             paddr_t region_size)
+{
+    paddr_t mod_start = INVALID_PADDR, mod_end = 0;
+    paddr_t region_end = region_start + region_size;
+    unsigned int i, mod_num = bootmodules->nr_mods;
+
+    for ( i = 0; i < mod_num; i++ )
+    {
+        mod_start = bootmodules->module[i].start;
+        mod_end = mod_start + bootmodules->module[i].size;
+
+        if ( region_end <= mod_start || region_start >= mod_end )
+            continue;
+        else
+        {
+            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with mod[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
+                   region_start, region_end, i, mod_start, mod_end);
+            return true;
+        }
+    }
+
+    return false;
+}
+
+void __init fw_unreserved_regions(paddr_t s, paddr_t e,
+                                  void (*cb)(paddr_t ps, paddr_t pe),
+                                  unsigned int first)
+{
+    if ( acpi_disabled )
+        dt_unreserved_regions(s, e, cb, first);
+    else
+        cb(s, e);
+}
+
+/*
+ * Given an input physical address range, check if this range is overlapping
+ * with the existing reserved memory regions defined in bootinfo.
+ * Return true if the input physical address range is overlapping with any
+ * existing reserved memory regions, otherwise false.
+ */
+bool __init check_reserved_regions_overlap(paddr_t region_start,
+                                           paddr_t region_size)
+{
+    const struct membanks *mem_banks[] = {
+        bootinfo_get_reserved_mem(),
+#ifdef CONFIG_ACPI
+        bootinfo_get_acpi(),
+#endif
+#ifdef CONFIG_STATIC_SHM
+        bootinfo_get_shmem(),
+#endif
+    };
+    unsigned int i;
+
+    /*
+     * Check if input region is overlapping with reserved memory banks or
+     * ACPI EfiACPIReclaimMemory (when ACPI feature is enabled) or static
+     * shared memory banks (when static shared memory feature is enabled)
+     */
+    for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
+        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size) )
+            return true;
+
+    /* Check if input region is overlapping with bootmodules */
+    if ( bootmodules_overlap_check(&bootinfo.modules,
+                                   region_start, region_size) )
+        return true;
+
+    return false;
+}
+
+struct bootmodule __init *add_boot_module(bootmodule_kind kind,
+                                          paddr_t start, paddr_t size,
+                                          bool domU)
+{
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootmodule *mod;
+    unsigned int i;
+
+    if ( mods->nr_mods == MAX_MODULES )
+    {
+        printk("Ignoring %s boot module at %"PRIpaddr"-%"PRIpaddr" (too many)\n",
+               boot_module_kind_as_string(kind), start, start + size);
+        return NULL;
+    }
+
+    if ( check_reserved_regions_overlap(start, size) )
+        return NULL;
+
+    for ( i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->module[i];
+        if ( mod->kind == kind && mod->start == start )
+        {
+            if ( !domU )
+                mod->domU = false;
+            return mod;
+        }
+    }
+
+    mod = &mods->module[mods->nr_mods++];
+    mod->kind = kind;
+    mod->start = start;
+    mod->size = size;
+    mod->domU = domU;
+
+    return mod;
+}
+
+/*
+ * boot_module_find_by_kind can only be used to return Xen modules (e.g
+ * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
+ * modules.
+ */
+struct bootmodule * __init boot_module_find_by_kind(bootmodule_kind kind)
+{
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootmodule *mod;
+    int i;
+    for (i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->module[i];
+        if ( mod->kind == kind && !mod->domU )
+            return mod;
+    }
+    return NULL;
+}
+
+void __init add_boot_cmdline(const char *name, const char *cmdline,
+                             bootmodule_kind kind, paddr_t start, bool domU)
+{
+    struct bootcmdlines *cmds = &bootinfo.cmdlines;
+    struct bootcmdline *cmd;
+
+    if ( cmds->nr_mods == MAX_MODULES )
+    {
+        printk("Ignoring %s cmdline (too many)\n", name);
+        return;
+    }
+
+    cmd = &cmds->cmdline[cmds->nr_mods++];
+    cmd->kind = kind;
+    cmd->domU = domU;
+    cmd->start = start;
+
+    ASSERT(strlen(name) <= DT_MAX_NAME);
+    safe_strcpy(cmd->dt_name, name);
+
+    if ( strlen(cmdline) > BOOTMOD_MAX_CMDLINE )
+        panic("module %s command line too long\n", name);
+    safe_strcpy(cmd->cmdline, cmdline);
+}
+
+/*
+ * boot_cmdline_find_by_kind can only be used to return Xen modules (e.g
+ * XSM, DTB) or Dom0 modules. This is not suitable for looking up guest
+ * modules.
+ */
+struct bootcmdline * __init boot_cmdline_find_by_kind(bootmodule_kind kind)
+{
+    struct bootcmdlines *cmds = &bootinfo.cmdlines;
+    struct bootcmdline *cmd;
+    int i;
+
+    for ( i = 0 ; i < cmds->nr_mods ; i++ )
+    {
+        cmd = &cmds->cmdline[i];
+        if ( cmd->kind == kind && !cmd->domU )
+            return cmd;
+    }
+    return NULL;
+}
+
+struct bootcmdline * __init boot_cmdline_find_by_name(const char *name)
+{
+    struct bootcmdlines *mods = &bootinfo.cmdlines;
+    struct bootcmdline *mod;
+    unsigned int i;
+
+    for (i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->cmdline[i];
+        if ( strcmp(mod->dt_name, name) == 0 )
+            return mod;
+    }
+    return NULL;
+}
+
+struct bootmodule * __init boot_module_find_by_addr_and_kind(bootmodule_kind kind,
+                                                             paddr_t start)
+{
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootmodule *mod;
+    unsigned int i;
+
+    for (i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->module[i];
+        if ( mod->kind == kind && mod->start == start )
+            return mod;
+    }
+    return NULL;
+}
+
+/*
+ * Return the end of the non-module region starting at s. In other
+ * words return s the start of the next modules after s.
+ *
+ * On input *end is the end of the region which should be considered
+ * and it is updated to reflect the end of the module, clipped to the
+ * end of the region if it would run over.
+ */
+static paddr_t __init next_module(paddr_t s, paddr_t *end)
+{
+    struct bootmodules *mi = &bootinfo.modules;
+    paddr_t lowest = ~(paddr_t)0;
+    int i;
+
+    for ( i = 0; i < mi->nr_mods; i++ )
+    {
+        paddr_t mod_s = mi->module[i].start;
+        paddr_t mod_e = mod_s + mi->module[i].size;
+
+        if ( !mi->module[i].size )
+            continue;
+
+        if ( mod_s < s )
+            continue;
+        if ( mod_s > lowest )
+            continue;
+        if ( mod_s > *end )
+            continue;
+        lowest = mod_s;
+        *end = min(*end, mod_e);
+    }
+    return lowest;
+}
+
+/*
+ * Populate the boot allocator.
+ * If a static heap was not provided by the admin, all the RAM but the
+ * following regions will be added:
+ *  - Modules (e.g., Xen, Kernel)
+ *  - Reserved regions
+ *  - Xenheap (CONFIG_SEPARATE_XENHEAP only)
+ * If a static heap was provided by the admin, populate the boot
+ * allocator with the corresponding regions only, but with Xenheap excluded
+ * on CONFIG_SEPARATE_XENHEAP.
+ */
+void __init populate_boot_allocator(void)
+{
+    unsigned int i;
+    const struct membanks *banks = bootinfo_get_mem();
+    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+    paddr_t s, e;
+
+    if ( bootinfo.static_heap )
+    {
+        for ( i = 0 ; i < reserved_mem->nr_banks; i++ )
+        {
+            if ( reserved_mem->bank[i].type != MEMBANK_STATIC_HEAP )
+                continue;
+
+            s = reserved_mem->bank[i].start;
+            e = s + reserved_mem->bank[i].size;
+#ifdef CONFIG_SEPARATE_XENHEAP
+            /* Avoid the xenheap, note that the xenheap cannot across a bank */
+            if ( s <= mfn_to_maddr(directmap_mfn_start) &&
+                 e >= mfn_to_maddr(directmap_mfn_end) )
+            {
+                init_boot_pages(s, mfn_to_maddr(directmap_mfn_start));
+                init_boot_pages(mfn_to_maddr(directmap_mfn_end), e);
+            }
+            else
+#endif
+                init_boot_pages(s, e);
+        }
+
+        return;
+    }
+
+    for ( i = 0; i < banks->nr_banks; i++ )
+    {
+        const struct membank *bank = &banks->bank[i];
+        paddr_t bank_end = bank->start + bank->size;
+
+        s = bank->start;
+        while ( s < bank_end )
+        {
+            paddr_t n = bank_end;
+
+            e = next_module(s, &n);
+
+            if ( e == ~(paddr_t)0 )
+                e = n = bank_end;
+
+            /*
+             * Module in a RAM bank other than the one which we are
+             * not dealing with here.
+             */
+            if ( e > bank_end )
+                e = bank_end;
+
+#ifdef CONFIG_SEPARATE_XENHEAP
+            /* Avoid the xenheap */
+            if ( s < mfn_to_maddr(directmap_mfn_end) &&
+                 mfn_to_maddr(directmap_mfn_start) < e )
+            {
+                e = mfn_to_maddr(directmap_mfn_start);
+                n = mfn_to_maddr(directmap_mfn_end);
+            }
+#endif
+
+            fw_unreserved_regions(s, e, init_boot_pages, 0);
+            s = n;
+        }
+    }
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/common/device-tree/device_tree.c b/xen/common/device-tree/device_tree.c
new file mode 100644
index 0000000000..8d1017a49d
--- /dev/null
+++ b/xen/common/device-tree/device_tree.c
@@ -0,0 +1,2253 @@
+/*
+ * Device Tree
+ *
+ * Copyright (C) 2012 Citrix Systems, Inc.
+ * Copyright 2009 Benjamin Herrenschmidt, IBM Corp
+ * benh@kernel.crashing.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <xen/types.h>
+#include <xen/init.h>
+#include <xen/guest_access.h>
+#include <xen/device_tree.h>
+#include <xen/kernel.h>
+#include <xen/lib.h>
+#include <xen/libfdt/libfdt.h>
+#include <xen/mm.h>
+#include <xen/stdarg.h>
+#include <xen/string.h>
+#include <xen/cpumask.h>
+#include <xen/ctype.h>
+#include <asm/setup.h>
+#include <xen/err.h>
+
+const void *device_tree_flattened;
+dt_irq_xlate_func dt_irq_xlate;
+/* Host device tree */
+struct dt_device_node *dt_host;
+/* Interrupt controller node*/
+const struct dt_device_node *dt_interrupt_controller;
+DEFINE_RWLOCK(dt_host_lock);
+
+/**
+ * struct dt_alias_prop - Alias property in 'aliases' node
+ * @link: List node to link the structure in aliases_lookup list
+ * @alias: Alias property name
+ * @np: Pointer to device_node that the alias stands for
+ * @id: Index value from end of alias name
+ * @stem: Alias string without the index
+ *
+ * The structure represents one alias property of 'aliases' node as
+ * an entry in aliases_lookup list.
+ */
+struct dt_alias_prop {
+    struct list_head link;
+    const char *alias;
+    struct dt_device_node *np;
+    int id;
+    char stem[0];
+};
+
+static LIST_HEAD(aliases_lookup);
+
+#ifdef CONFIG_DEVICE_TREE_DEBUG
+static void dt_dump_addr(const char *s, const __be32 *addr, int na)
+{
+    dt_dprintk("%s", s);
+    while ( na-- )
+        dt_dprintk(" %08x", be32_to_cpu(*(addr++)));
+    dt_dprintk("\n");
+}
+#else
+static void dt_dump_addr(const char *s, const __be32 *addr, int na) { }
+#endif
+
+#define DT_BAD_ADDR ((u64)-1)
+
+/* Max address size we deal with */
+#define DT_MAX_ADDR_CELLS 4
+#define DT_CHECK_ADDR_COUNT(na) ((na) > 0 && (na) <= DT_MAX_ADDR_CELLS)
+#define DT_CHECK_COUNTS(na, ns) (DT_CHECK_ADDR_COUNT(na) && (ns) > 0)
+
+/* Callbacks for bus specific translators */
+struct dt_bus
+{
+    const char *name;
+    const char *addresses;
+    bool (*match)(const struct dt_device_node *node);
+    void (*count_cells)(const struct dt_device_node *child,
+                        int *addrc, int *sizec);
+    u64 (*map)(__be32 *addr, const __be32 *range, int na, int ns, int pna);
+    int (*translate)(__be32 *addr, u64 offset, int na);
+    unsigned int (*get_flags)(const __be32 *addr);
+};
+
+void dt_get_range(const __be32 **cellp, const struct dt_device_node *np,
+                  u64 *address, u64 *size)
+{
+    *address = dt_next_cell(dt_n_addr_cells(np), cellp);
+    *size = dt_next_cell(dt_n_size_cells(np), cellp);
+}
+
+void dt_set_cell(__be32 **cellp, int size, u64 val)
+{
+    int cells = size;
+
+    while ( size-- )
+    {
+        (*cellp)[size] = cpu_to_fdt32(val);
+        val >>= 32;
+    }
+
+    (*cellp) += cells;
+}
+
+void dt_set_range(__be32 **cellp, const struct dt_device_node *np,
+                  u64 address, u64 size)
+{
+    dt_set_cell(cellp, dt_n_addr_cells(np), address);
+    dt_set_cell(cellp, dt_n_size_cells(np), size);
+}
+
+void dt_child_set_range(__be32 **cellp, int addrcells, int sizecells,
+                        u64 address, u64 size)
+{
+    dt_set_cell(cellp, addrcells, address);
+    dt_set_cell(cellp, sizecells, size);
+}
+
+static void __init *unflatten_dt_alloc(unsigned long *mem, unsigned long size,
+                                       unsigned long align)
+{
+    void *res;
+
+    *mem = ROUNDUP(*mem, align);
+    res = (void *)*mem;
+    *mem += size;
+
+    return res;
+}
+
+/* Find a property with a given name for a given node and return it. */
+const struct dt_property *dt_find_property(const struct dt_device_node *np,
+                                           const char *name, u32 *lenp)
+{
+    const struct dt_property *pp;
+
+    if ( !np )
+        return NULL;
+
+    for ( pp = np->properties; pp; pp = pp->next )
+    {
+        if ( dt_prop_cmp(pp->name, name) == 0 )
+        {
+            if ( lenp )
+                *lenp = pp->length;
+            break;
+        }
+    }
+
+    return pp;
+}
+
+const void *dt_get_property(const struct dt_device_node *np,
+                            const char *name, u32 *lenp)
+{
+    const struct dt_property *pp = dt_find_property(np, name, lenp);
+
+    return pp ? pp->value : NULL;
+}
+
+bool dt_property_read_u32(const struct dt_device_node *np,
+                          const char *name, u32 *out_value)
+{
+    u32 len;
+    const __be32 *val;
+
+    val = dt_get_property(np, name, &len);
+    if ( !val || len < sizeof(*out_value) )
+        return 0;
+
+    *out_value = be32_to_cpup(val);
+
+    return 1;
+}
+
+
+bool dt_property_read_u64(const struct dt_device_node *np,
+                          const char *name, u64 *out_value)
+{
+    u32 len;
+    const __be32 *val;
+
+    val = dt_get_property(np, name, &len);
+    if ( !val || len < sizeof(*out_value) )
+        return 0;
+
+    *out_value = dt_read_number(val, 2);
+
+    return 1;
+}
+int dt_property_read_string(const struct dt_device_node *np,
+                            const char *propname, const char **out_string)
+{
+    const struct dt_property *pp = dt_find_property(np, propname, NULL);
+
+    if ( !pp )
+        return -EINVAL;
+    if ( !pp->length )
+        return -ENODATA;
+    if ( strnlen(pp->value, pp->length) >= pp->length )
+        return -EILSEQ;
+
+    *out_string = pp->value;
+
+    return 0;
+}
+
+/**
+ * dt_find_property_value_of_size
+ *
+ * @np:     device node from which the property value is to be read.
+ * @propname:   name of the property to be searched.
+ * @min:    minimum allowed length of property value
+ * @max:    maximum allowed length of property value (0 means unlimited)
+ * @len:    if !=NULL, actual length is written to here
+ *
+ * Search for a property in a device node and valid the requested size.
+ *
+ * Return: The property value on success, -EINVAL if the property does not
+ * exist, -ENODATA if property does not have a value, and -EOVERFLOW if the
+ * property data is too small or too large.
+ */
+static void *dt_find_property_value_of_size(const struct dt_device_node *np,
+                                            const char *propname, u32 min,
+                                            u32 max, size_t *len)
+{
+    const struct dt_property *prop = dt_find_property(np, propname, NULL);
+
+    if ( !prop )
+        return ERR_PTR(-EINVAL);
+    if ( !prop->value )
+        return ERR_PTR(-ENODATA);
+    if ( prop->length < min )
+        return ERR_PTR(-EOVERFLOW);
+    if ( max && prop->length > max )
+        return ERR_PTR(-EOVERFLOW);
+
+    if ( len )
+        *len = prop->length;
+
+    return prop->value;
+}
+
+int dt_property_read_variable_u32_array(const struct dt_device_node *np,
+                                        const char *propname, u32 *out_values,
+                                        size_t sz_min, size_t sz_max)
+{
+    size_t sz, count;
+    const __be32 *val = dt_find_property_value_of_size(np, propname,
+                        (sz_min * sizeof(*out_values)),
+                        (sz_max * sizeof(*out_values)),
+                        &sz);
+
+    if ( IS_ERR(val) )
+        return PTR_ERR(val);
+
+    if ( !sz_max )
+        sz = sz_min;
+    else
+        sz /= sizeof(*out_values);
+
+    count = sz;
+    while ( count-- )
+        *out_values++ = be32_to_cpup(val++);
+
+    return sz;
+}
+
+int dt_property_match_string(const struct dt_device_node *np,
+                             const char *propname, const char *string)
+{
+    const struct dt_property *dtprop = dt_find_property(np, propname, NULL);
+    size_t l;
+    int i;
+    const char *p, *end;
+
+    if ( !dtprop )
+        return -EINVAL;
+    if ( !dtprop->value )
+        return -ENODATA;
+
+    p = dtprop->value;
+    end = p + dtprop->length;
+
+    for ( i = 0; p < end; i++, p += l )
+    {
+        l = strnlen(p, end - p) + 1;
+        if ( p + l > end )
+            return -EILSEQ;
+        if ( strcmp(string, p) == 0 )
+            return i; /* Found it; return index */
+    }
+    return -ENODATA;
+}
+
+bool dt_device_is_compatible(const struct dt_device_node *device,
+                             const char *compat)
+{
+    const char* cp;
+    u32 cplen, l;
+
+    cp = dt_get_property(device, "compatible", &cplen);
+    if ( cp == NULL )
+        return 0;
+    while ( cplen > 0 )
+    {
+        if ( dt_compat_cmp(cp, compat) == 0 )
+            return 1;
+        l = strlen(cp) + 1;
+        cp += l;
+        cplen -= l;
+    }
+
+    return 0;
+}
+
+bool dt_machine_is_compatible(const char *compat)
+{
+    const struct dt_device_node *root;
+    bool rc = false;
+
+    root = dt_find_node_by_path("/");
+    if ( root )
+    {
+        rc = dt_device_is_compatible(root, compat);
+    }
+    return rc;
+}
+
+struct dt_device_node *dt_find_node_by_name(struct dt_device_node *from,
+                                            const char *name)
+{
+    struct dt_device_node *np;
+    struct dt_device_node *dt;
+
+    dt = from ? from->allnext : dt_host;
+    dt_for_each_device_node(dt, np)
+        if ( np->name && (dt_node_cmp(np->name, name) == 0) )
+            break;
+
+    return np;
+}
+
+struct dt_device_node *dt_find_node_by_type(struct dt_device_node *from,
+                                            const char *type)
+{
+    struct dt_device_node *np;
+    struct dt_device_node *dt;
+
+    dt = from ? from->allnext : dt_host;
+    dt_for_each_device_node(dt, np)
+        if ( np->type && (dt_node_cmp(np->type, type) == 0) )
+            break;
+
+    return np;
+}
+
+struct dt_device_node *dt_find_node_by_path_from(struct dt_device_node *from,
+                                                 const char *path)
+{
+    struct dt_device_node *np;
+
+    dt_for_each_device_node(from, np)
+        if ( np->full_name && (dt_node_cmp(np->full_name, path) == 0) )
+            break;
+
+    return np;
+}
+
+int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
+                          struct dt_device_node **node)
+{
+    char *path;
+
+    path = safe_copy_string_from_guest(u_path, u_plen, PAGE_SIZE);
+    if ( IS_ERR(path) )
+        return PTR_ERR(path);
+
+    *node = dt_find_node_by_path(path);
+
+    xfree(path);
+
+    return (*node == NULL) ? -ESRCH : 0;
+}
+
+struct dt_device_node *dt_find_node_by_alias(const char *alias)
+{
+    const struct dt_alias_prop *app;
+
+    list_for_each_entry( app, &aliases_lookup, link )
+    {
+        if ( !strcmp(app->alias, alias) )
+            return app->np;
+    }
+
+    return NULL;
+}
+
+const struct dt_device_match *
+dt_match_node(const struct dt_device_match *matches,
+              const struct dt_device_node *node)
+{
+    if ( !matches )
+        return NULL;
+
+    while ( matches->path || matches->type ||
+            matches->compatible || matches->not_available || matches->prop )
+    {
+        bool match = true;
+
+        if ( matches->path )
+            match &= dt_node_path_is_equal(node, matches->path);
+
+        if ( matches->type )
+            match &= dt_device_type_is_equal(node, matches->type);
+
+        if ( matches->compatible )
+            match &= dt_device_is_compatible(node, matches->compatible);
+
+        if ( matches->not_available )
+            match &= !dt_device_is_available(node);
+
+        if ( matches->prop )
+            match &= dt_find_property(node, matches->prop, NULL) != NULL;
+
+        if ( match )
+            return matches;
+        matches++;
+    }
+
+    return NULL;
+}
+
+const struct dt_device_node *dt_get_parent(const struct dt_device_node *node)
+{
+    if ( !node )
+        return NULL;
+
+    return node->parent;
+}
+
+struct dt_device_node *
+dt_find_compatible_node(struct dt_device_node *from,
+                        const char *type,
+                        const char *compatible)
+{
+    struct dt_device_node *np;
+    struct dt_device_node *dt;
+
+    dt = from ? from->allnext : dt_host;
+    dt_for_each_device_node(dt, np)
+    {
+        if ( type
+             && !(np->type && (dt_node_cmp(np->type, type) == 0)) )
+            continue;
+        if ( dt_device_is_compatible(np, compatible) )
+            break;
+    }
+
+    return np;
+}
+
+struct dt_device_node *
+dt_find_matching_node(struct dt_device_node *from,
+                      const struct dt_device_match *matches)
+{
+    struct dt_device_node *np;
+    struct dt_device_node *dt;
+
+    dt = from ? from->allnext : dt_host;
+    dt_for_each_device_node(dt, np)
+    {
+        if ( dt_match_node(matches, np) )
+            return np;
+    }
+
+    return NULL;
+}
+
+static int __dt_n_addr_cells(const struct dt_device_node *np, bool parent)
+{
+    const __be32 *ip;
+
+    do {
+        if ( np->parent && !parent )
+            np = np->parent;
+        parent = false;
+
+        ip = dt_get_property(np, "#address-cells", NULL);
+        if ( ip )
+            return be32_to_cpup(ip);
+    } while ( np->parent );
+    /* No #address-cells property for the root node */
+    return DT_ROOT_NODE_ADDR_CELLS_DEFAULT;
+}
+
+static int __dt_n_size_cells(const struct dt_device_node *np, bool parent)
+{
+    const __be32 *ip;
+
+    do {
+        if ( np->parent && !parent )
+            np = np->parent;
+        parent = false;
+
+        ip = dt_get_property(np, "#size-cells", NULL);
+        if ( ip )
+            return be32_to_cpup(ip);
+    } while ( np->parent );
+    /* No #address-cells property for the root node */
+    return DT_ROOT_NODE_SIZE_CELLS_DEFAULT;
+}
+
+int dt_n_addr_cells(const struct dt_device_node *np)
+{
+    return __dt_n_addr_cells(np, false);
+}
+
+int dt_n_size_cells(const struct dt_device_node *np)
+{
+    return __dt_n_size_cells(np, false);
+}
+
+int dt_child_n_addr_cells(const struct dt_device_node *parent)
+{
+    return __dt_n_addr_cells(parent, true);
+}
+
+int dt_child_n_size_cells(const struct dt_device_node *parent)
+{
+    return __dt_n_size_cells(parent, true);
+}
+
+/*
+ * These are defined in Linux where much of this code comes from, but
+ * are currently unused outside this file in the context of Xen.
+ */
+#define IORESOURCE_BITS         0x000000ff      /* Bus-specific bits */
+
+#define IORESOURCE_TYPE_BITS    0x00001f00      /* Resource type */
+#define IORESOURCE_IO           0x00000100      /* PCI/ISA I/O ports */
+#define IORESOURCE_MEM          0x00000200
+#define IORESOURCE_REG          0x00000300      /* Register offsets */
+#define IORESOURCE_IRQ          0x00000400
+#define IORESOURCE_DMA          0x00000800
+#define IORESOURCE_BUS          0x00001000
+
+#define IORESOURCE_PREFETCH     0x00002000      /* No side effects */
+#define IORESOURCE_READONLY     0x00004000
+#define IORESOURCE_CACHEABLE    0x00008000
+#define IORESOURCE_RANGELENGTH  0x00010000
+#define IORESOURCE_SHADOWABLE   0x00020000
+
+/*
+ * Default translator (generic bus)
+ */
+static bool dt_bus_default_match(const struct dt_device_node *node)
+{
+    /* Root node doesn't have "ranges" property */
+    if ( node->parent == NULL )
+        return 1;
+
+    /* The default bus is only used when the "ranges" property exists.
+     * Otherwise we can't translate the address
+     */
+    return (dt_get_property(node, "ranges", NULL) != NULL);
+}
+
+static void dt_bus_default_count_cells(const struct dt_device_node *dev,
+                                int *addrc, int *sizec)
+{
+    if ( addrc )
+        *addrc = dt_n_addr_cells(dev);
+    if ( sizec )
+        *sizec = dt_n_size_cells(dev);
+}
+
+static u64 dt_bus_default_map(__be32 *addr, const __be32 *range,
+                              int na, int ns, int pna)
+{
+    u64 cp, s, da;
+
+    cp = dt_read_number(range, na);
+    s = dt_read_number(range + na + pna, ns);
+    da = dt_read_number(addr, na);
+
+    dt_dprintk("DT: default map, cp=%llx, s=%llx, da=%llx\n",
+               (unsigned long long)cp, (unsigned long long)s,
+               (unsigned long long)da);
+
+    /*
+     * If the number of address cells is larger than 2 we assume the
+     * mapping doesn't specify a physical address. Rather, the address
+     * specifies an identifier that must match exactly.
+     */
+    if ( na > 2 && memcmp(range, addr, na * 4) != 0 )
+        return DT_BAD_ADDR;
+
+    if ( da < cp || da >= (cp + s) )
+        return DT_BAD_ADDR;
+    return da - cp;
+}
+
+static int dt_bus_default_translate(__be32 *addr, u64 offset, int na)
+{
+    u64 a = dt_read_number(addr, na);
+
+    memset(addr, 0, na * 4);
+    a += offset;
+    if ( na > 1 )
+        addr[na - 2] = cpu_to_be32(a >> 32);
+    addr[na - 1] = cpu_to_be32(a & 0xffffffffu);
+
+    return 0;
+}
+static unsigned int dt_bus_default_get_flags(const __be32 *addr)
+{
+    return IORESOURCE_MEM;
+}
+
+/*
+ * PCI bus specific translator
+ */
+
+static bool dt_node_is_pci(const struct dt_device_node *np)
+{
+    bool is_pci = !strcmp(np->name, "pcie") || !strcmp(np->name, "pci");
+
+    if ( is_pci )
+        printk(XENLOG_WARNING "%s: Missing device_type\n", np->full_name);
+
+    return is_pci;
+}
+
+static bool dt_bus_pci_match(const struct dt_device_node *np)
+{
+    /*
+     * "pciex" is PCI Express "vci" is for the /chaos bridge on 1st-gen PCI
+     * powermacs "ht" is hypertransport
+     *
+     * If none of the device_type match, and that the node name is
+     * "pcie" or "pci", accept the device as PCI (with a warning).
+     */
+    return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex") ||
+        !strcmp(np->type, "vci") || !strcmp(np->type, "ht") ||
+        dt_node_is_pci(np);
+}
+
+static void dt_bus_pci_count_cells(const struct dt_device_node *np,
+				   int *addrc, int *sizec)
+{
+    if (addrc)
+        *addrc = 3;
+    if (sizec)
+        *sizec = 2;
+}
+
+static unsigned int dt_bus_pci_get_flags(const __be32 *addr)
+{
+    unsigned int flags = 0;
+    u32 w = be32_to_cpup(addr);
+
+    switch((w >> 24) & 0x03) {
+    case 0x01:
+        flags |= IORESOURCE_IO;
+        break;
+    case 0x02: /* 32 bits */
+    case 0x03: /* 64 bits */
+        flags |= IORESOURCE_MEM;
+        break;
+    }
+    if (w & 0x40000000)
+        flags |= IORESOURCE_PREFETCH;
+    return flags;
+}
+
+static u64 dt_bus_pci_map(__be32 *addr, const __be32 *range, int na, int ns,
+		int pna)
+{
+    u64 cp, s, da;
+    unsigned int af, rf;
+
+    af = dt_bus_pci_get_flags(addr);
+    rf = dt_bus_pci_get_flags(range);
+
+    /* Check address type match */
+    if ((af ^ rf) & (IORESOURCE_MEM | IORESOURCE_IO))
+        return DT_BAD_ADDR;
+
+    /* Read address values, skipping high cell */
+    cp = dt_read_number(range + 1, na - 1);
+    s  = dt_read_number(range + na + pna, ns);
+    da = dt_read_number(addr + 1, na - 1);
+
+    dt_dprintk("DT: PCI map, cp=%llx, s=%llx, da=%llx\n",
+               (unsigned long long)cp, (unsigned long long)s,
+               (unsigned long long)da);
+
+    if (da < cp || da >= (cp + s))
+        return DT_BAD_ADDR;
+    return da - cp;
+}
+
+static int dt_bus_pci_translate(__be32 *addr, u64 offset, int na)
+{
+    return dt_bus_default_translate(addr + 1, offset, na - 1);
+}
+
+/*
+ * Array of bus specific translators
+ */
+static const struct dt_bus dt_busses[] =
+{
+    /* PCI */
+    {
+        .name = "pci",
+        .addresses = "assigned-addresses",
+        .match = dt_bus_pci_match,
+        .count_cells = dt_bus_pci_count_cells,
+        .map = dt_bus_pci_map,
+        .translate = dt_bus_pci_translate,
+        .get_flags = dt_bus_pci_get_flags,
+    },
+    /* Default */
+    {
+        .name = "default",
+        .addresses = "reg",
+        .match = dt_bus_default_match,
+        .count_cells = dt_bus_default_count_cells,
+        .map = dt_bus_default_map,
+        .translate = dt_bus_default_translate,
+        .get_flags = dt_bus_default_get_flags,
+    },
+};
+
+static const struct dt_bus *dt_match_bus(const struct dt_device_node *np)
+{
+    int i;
+
+    for ( i = 0; i < ARRAY_SIZE(dt_busses); i++ )
+        if ( !dt_busses[i].match || dt_busses[i].match(np) )
+            return &dt_busses[i];
+
+    return NULL;
+}
+
+static const __be32 *dt_get_address(const struct dt_device_node *dev,
+                                    unsigned int index, u64 *size,
+                                    unsigned int *flags)
+{
+    const __be32 *prop;
+    u32 psize;
+    const struct dt_device_node *parent;
+    const struct dt_bus *bus;
+    int onesize, i, na, ns;
+
+    /* Get parent & match bus type */
+    parent = dt_get_parent(dev);
+    if ( parent == NULL )
+        return NULL;
+
+    bus = dt_match_bus(parent);
+    if ( !bus )
+        return NULL;
+    bus->count_cells(dev, &na, &ns);
+
+    if ( !DT_CHECK_ADDR_COUNT(na) )
+        return NULL;
+
+    /* Get "reg" or "assigned-addresses" property */
+    prop = dt_get_property(dev, bus->addresses, &psize);
+    if ( prop == NULL )
+        return NULL;
+    psize /= 4;
+
+    onesize = na + ns;
+    for ( i = 0; psize >= onesize; psize -= onesize, prop += onesize, i++ )
+    {
+        if ( i == index )
+        {
+            if ( size )
+                *size = dt_read_number(prop + na, ns);
+            if ( flags )
+                *flags = bus->get_flags(prop);
+            return prop;
+        }
+    }
+    return NULL;
+}
+
+static int dt_translate_one(const struct dt_device_node *parent,
+                            const struct dt_bus *bus,
+                            const struct dt_bus *pbus,
+                            __be32 *addr, int na, int ns,
+                            int pna, const char *rprop)
+{
+    const __be32 *ranges;
+    unsigned int rlen;
+    int rone;
+    u64 offset = DT_BAD_ADDR;
+
+    ranges = dt_get_property(parent, rprop, &rlen);
+    if ( ranges == NULL )
+    {
+        printk(XENLOG_ERR "DT: no ranges; cannot translate\n");
+        return 1;
+    }
+    if ( rlen == 0 )
+    {
+        offset = dt_read_number(addr, na);
+        memset(addr, 0, pna * 4);
+        dt_dprintk("DT: empty ranges; 1:1 translation\n");
+        goto finish;
+    }
+
+    dt_dprintk("DT: walking ranges...\n");
+
+    /* Now walk through the ranges */
+    rlen /= 4;
+    rone = na + pna + ns;
+    for ( ; rlen >= rone; rlen -= rone, ranges += rone )
+    {
+        offset = bus->map(addr, ranges, na, ns, pna);
+        if ( offset != DT_BAD_ADDR )
+            break;
+    }
+    if ( offset == DT_BAD_ADDR )
+    {
+        dt_dprintk("DT: not found !\n");
+        return 1;
+    }
+    memcpy(addr, ranges + na, 4 * pna);
+
+finish:
+    dt_dump_addr("DT: parent translation for:", addr, pna);
+    dt_dprintk("DT: with offset: %llx\n", (unsigned long long)offset);
+
+    /* Translate it into parent bus space */
+    return pbus->translate(addr, offset, pna);
+}
+
+/*
+ * Translate an address from the device-tree into a CPU physical address,
+ * this walks up the tree and applies the various bus mappings on the
+ * way.
+ *
+ * Note: We consider that crossing any level with #size-cells == 0 to mean
+ * that translation is impossible (that is we are not dealing with a value
+ * that can be mapped to a cpu physical address). This is not really specified
+ * that way, but this is traditionally the way IBM at least do things
+ */
+static u64 __dt_translate_address(const struct dt_device_node *dev,
+                                  const __be32 *in_addr, const char *rprop)
+{
+    const struct dt_device_node *parent = NULL;
+    const struct dt_bus *bus, *pbus;
+    __be32 addr[DT_MAX_ADDR_CELLS];
+    int na, ns, pna, pns;
+    u64 result = DT_BAD_ADDR;
+
+    dt_dprintk("DT: ** translation for device %s **\n", dev->full_name);
+
+    /* Get parent & match bus type */
+    parent = dt_get_parent(dev);
+    if ( parent == NULL )
+        goto bail;
+    bus = dt_match_bus(parent);
+    if ( !bus )
+        goto bail;
+
+    /* Count address cells & copy address locally */
+    bus->count_cells(dev, &na, &ns);
+    if ( !DT_CHECK_COUNTS(na, ns) )
+    {
+        printk(XENLOG_ERR "dt_parse: Bad cell count for device %s\n",
+                  dev->full_name);
+        goto bail;
+    }
+    memcpy(addr, in_addr, na * 4);
+
+    dt_dprintk("DT: bus is %s (na=%d, ns=%d) on %s\n",
+               bus->name, na, ns, parent->full_name);
+    dt_dump_addr("DT: translating address:", addr, na);
+
+    /* Translate */
+    for ( ;; )
+    {
+        /* Switch to parent bus */
+        dev = parent;
+        parent = dt_get_parent(dev);
+
+        /* If root, we have finished */
+        if ( parent == NULL )
+        {
+            dt_dprintk("DT: reached root node\n");
+            result = dt_read_number(addr, na);
+            break;
+        }
+
+        /* Get new parent bus and counts */
+        pbus = dt_match_bus(parent);
+        if ( pbus == NULL )
+        {
+            printk("DT: %s is not a valid bus\n", parent->full_name);
+            break;
+        }
+        pbus->count_cells(dev, &pna, &pns);
+        if ( !DT_CHECK_COUNTS(pna, pns) )
+        {
+            printk(XENLOG_ERR "dt_parse: Bad cell count for parent %s\n",
+                   dev->full_name);
+            break;
+        }
+
+        dt_dprintk("DT: parent bus is %s (na=%d, ns=%d) on %s\n",
+                   pbus->name, pna, pns, parent->full_name);
+
+        /* Apply bus translation */
+        if ( dt_translate_one(dev, bus, pbus, addr, na, ns, pna, rprop) )
+            break;
+
+        /* Complete the move up one level */
+        na = pna;
+        ns = pns;
+        bus = pbus;
+
+        dt_dump_addr("DT: one level translation:", addr, na);
+    }
+
+bail:
+    return result;
+}
+
+/* dt_device_address - Translate device tree address and return it */
+int dt_device_get_address(const struct dt_device_node *dev, unsigned int index,
+                          u64 *addr, u64 *size)
+{
+    const __be32 *addrp;
+    unsigned int flags;
+
+    addrp = dt_get_address(dev, index, size, &flags);
+    if ( addrp == NULL )
+        return -EINVAL;
+
+    if ( !addr )
+        return -EINVAL;
+
+    *addr = __dt_translate_address(dev, addrp, "ranges");
+
+    if ( *addr == DT_BAD_ADDR )
+        return -EINVAL;
+
+    return 0;
+}
+
+int dt_device_get_paddr(const struct dt_device_node *dev, unsigned int index,
+                        paddr_t *addr, paddr_t *size)
+{
+    uint64_t dt_addr, dt_size;
+    int ret;
+
+    ret = dt_device_get_address(dev, index, &dt_addr, &dt_size);
+    if ( ret )
+        return ret;
+
+    if ( !addr )
+        return -EINVAL;
+
+    if ( dt_addr != (paddr_t)dt_addr )
+    {
+        printk("Error: Physical address 0x%"PRIx64" for node=%s is greater than max width (%zu bytes) supported\n",
+               dt_addr, dev->name, sizeof(paddr_t));
+        return -ERANGE;
+    }
+
+    *addr = dt_addr;
+
+    if ( size )
+    {
+        if ( dt_size != (paddr_t)dt_size )
+        {
+            printk("Error: Physical size 0x%"PRIx64" for node=%s is greater than max width (%zu bytes) supported\n",
+                   dt_size, dev->name, sizeof(paddr_t));
+            return -ERANGE;
+        }
+
+        *size = dt_size;
+    }
+
+    return ret;
+}
+
+int dt_for_each_range(const struct dt_device_node *dev,
+                      int (*cb)(const struct dt_device_node *dev,
+                                uint64_t addr, uint64_t length,
+                                void *data),
+                      void *data)
+{
+    const struct dt_device_node *parent = NULL;
+    const struct dt_bus *bus, *pbus;
+    const __be32 *ranges;
+    __be32 addr[DT_MAX_ADDR_CELLS];
+    unsigned int rlen;
+    int na, ns, pna, pns, rone;
+
+    bus = dt_match_bus(dev);
+    if ( !bus )
+        return 0; /* device is not a bus */
+
+    parent = dt_get_parent(dev);
+    if ( parent == NULL )
+        return -EINVAL;
+
+    ranges = dt_get_property(dev, "ranges", &rlen);
+    if ( ranges == NULL )
+    {
+        printk(XENLOG_ERR "DT: no ranges; cannot enumerate %s\n",
+               dev->full_name);
+        return -EINVAL;
+    }
+    if ( rlen == 0 ) /* Nothing to do */
+        return 0;
+
+    bus->count_cells(dev, &na, &ns);
+    if ( !DT_CHECK_COUNTS(na, ns) )
+    {
+        printk(XENLOG_ERR "dt_parse: Bad cell count for device %s\n",
+                  dev->full_name);
+        return -EINVAL;
+    }
+
+    pbus = dt_match_bus(parent);
+    if ( pbus == NULL )
+    {
+        printk("DT: %s is not a valid bus\n", parent->full_name);
+        return -EINVAL;
+    }
+
+    pbus->count_cells(dev, &pna, &pns);
+    if ( !DT_CHECK_COUNTS(pna, pns) )
+    {
+        printk(XENLOG_ERR "dt_parse: Bad cell count for parent %s\n",
+               dev->full_name);
+        return -EINVAL;
+    }
+
+    /* Now walk through the ranges */
+    rlen /= 4;
+    rone = na + pna + ns;
+
+    dt_dprintk("%s: dev=%s, bus=%s, parent=%s, rlen=%d, rone=%d\n",
+               __func__,
+               dt_node_name(dev), bus->name,
+               dt_node_name(parent), rlen, rone);
+
+    for ( ; rlen >= rone; rlen -= rone, ranges += rone )
+    {
+        uint64_t a, s;
+        int ret;
+
+        memcpy(addr, ranges + na, 4 * pna);
+
+        a = __dt_translate_address(dev, addr, "ranges");
+        s = dt_read_number(ranges + na + pna, ns);
+
+        ret = cb(dev, a, s, data);
+        if ( ret )
+        {
+            dt_dprintk(" -> callback failed=%d\n", ret);
+            return ret;
+        }
+
+    }
+
+    return 0;
+}
+
+/**
+ * dt_find_node_by_phandle - Find a node given a phandle
+ * @handle: phandle of the node to find
+ *
+ * Returns a node pointer.
+ */
+struct dt_device_node *dt_find_node_by_phandle(dt_phandle handle)
+{
+    struct dt_device_node *np;
+
+    dt_for_each_device_node(dt_host, np)
+        if ( np->phandle == handle )
+            break;
+
+    return np;
+}
+
+/**
+ * dt_irq_find_parent - Given a device node, find its interrupt parent node
+ * @child: pointer to device node
+ *
+ * Returns a pointer to the interrupt parent node, or NULL if the interrupt
+ * parent could not be determined.
+ */
+static const struct dt_device_node *
+dt_irq_find_parent(const struct dt_device_node *child)
+{
+    const struct dt_device_node *p;
+    const __be32 *parp;
+
+    do
+    {
+        parp = dt_get_property(child, "interrupt-parent", NULL);
+        if ( parp == NULL )
+            p = dt_get_parent(child);
+        else
+            p = dt_find_node_by_phandle(be32_to_cpup(parp));
+        child = p;
+    } while ( p && dt_get_property(p, "#interrupt-cells", NULL) == NULL );
+
+    return p;
+}
+
+unsigned int dt_number_of_irq(const struct dt_device_node *device)
+{
+    const struct dt_device_node *p;
+    const __be32 *intspec, *tmp;
+    u32 intsize, intlen;
+    int intnum;
+
+    dt_dprintk("dt_irq_number: dev=%s\n", device->full_name);
+
+    /* Try the new-style interrupts-extended first */
+    intnum = dt_count_phandle_with_args(device, "interrupts-extended",
+                                        "#interrupt-cells");
+    if ( intnum >= 0 )
+    {
+        dt_dprintk(" using 'interrupts-extended' property\n");
+        dt_dprintk(" intnum=%d\n", intnum);
+        return intnum;
+    }
+
+    /* Get the interrupts property */
+    intspec = dt_get_property(device, "interrupts", &intlen);
+    if ( intspec == NULL )
+        return 0;
+    intlen /= sizeof(*intspec);
+
+    dt_dprintk(" using 'interrupts' property\n");
+    dt_dprintk(" intspec=%d intlen=%d\n", be32_to_cpup(intspec), intlen);
+
+    /* Look for the interrupt parent. */
+    p = dt_irq_find_parent(device);
+    if ( p == NULL )
+        return 0;
+
+    /* Get size of interrupt specifier */
+    tmp = dt_get_property(p, "#interrupt-cells", NULL);
+    if ( tmp == NULL )
+        return 0;
+    intsize = be32_to_cpu(*tmp);
+
+    dt_dprintk(" intsize=%d intlen=%d\n", intsize, intlen);
+
+    return (intlen / intsize);
+}
+
+unsigned int dt_number_of_address(const struct dt_device_node *dev)
+{
+    const __be32 *prop;
+    u32 psize;
+    const struct dt_device_node *parent;
+    const struct dt_bus *bus;
+    int onesize, na, ns;
+
+    /* Get parent & match bus type */
+    parent = dt_get_parent(dev);
+    if ( parent == NULL )
+        return 0;
+
+    bus = dt_match_bus(parent);
+    if ( !bus )
+        return 0;
+    bus->count_cells(dev, &na, &ns);
+
+    if ( !DT_CHECK_COUNTS(na, ns) )
+        return 0;
+
+    /* Get "reg" or "assigned-addresses" property */
+    prop = dt_get_property(dev, bus->addresses, &psize);
+    if ( prop == NULL )
+        return 0;
+
+    psize /= 4;
+    onesize = na + ns;
+
+    return (psize / onesize);
+}
+
+int dt_for_each_irq_map(const struct dt_device_node *dev,
+                        int (*cb)(const struct dt_device_node *dev,
+                                  const struct dt_irq *dt_irq,
+                                  void *data),
+                        void *data)
+{
+    const struct dt_device_node *ipar, *tnode, *old = NULL;
+    const __be32 *tmp, *imap;
+    u32 intsize = 1, addrsize, pintsize = 0, paddrsize = 0;
+    u32 imaplen;
+    int i, ret;
+
+    struct dt_raw_irq dt_raw_irq;
+    struct dt_irq dt_irq;
+
+    dt_dprintk("%s: par=%s cb=%p data=%p\n", __func__,
+               dev->full_name, cb, data);
+
+    ipar = dev;
+
+    /* First get the #interrupt-cells property of the current cursor
+     * that tells us how to interpret the passed-in intspec. If there
+     * is none, we are nice and just walk up the tree
+     */
+    do {
+        tmp = dt_get_property(ipar, "#interrupt-cells", NULL);
+        if ( tmp != NULL )
+        {
+            intsize = be32_to_cpu(*tmp);
+            break;
+        }
+        tnode = ipar;
+        ipar = dt_irq_find_parent(ipar);
+    } while ( ipar );
+    if ( ipar == NULL )
+    {
+        dt_dprintk(" -> no parent found !\n");
+        goto fail;
+    }
+
+    dt_dprintk("%s: ipar=%s, size=%d\n", __func__, ipar->full_name, intsize);
+
+    if ( intsize > DT_MAX_IRQ_SPEC )
+    {
+        dt_dprintk(" -> too many irq specifier cells\n");
+        goto fail;
+    }
+
+    /* Look for this #address-cells. We have to implement the old linux
+     * trick of looking for the parent here as some device-trees rely on it
+     */
+    old = ipar;
+    do {
+        tmp = dt_get_property(old, "#address-cells", NULL);
+        tnode = dt_get_parent(old);
+        old = tnode;
+    } while ( old && tmp == NULL );
+
+    old = NULL;
+    addrsize = (tmp == NULL) ? 2 : be32_to_cpu(*tmp);
+
+    dt_dprintk(" -> addrsize=%d\n", addrsize);
+
+    /* Now look for an interrupt-map */
+    imap = dt_get_property(dev, "interrupt-map", &imaplen);
+    /* No interrupt-map found. Ignore */
+    if ( imap == NULL )
+    {
+        dt_dprintk(" -> no map, ignoring\n");
+        return 0;
+    }
+    imaplen /= sizeof(u32);
+
+    /* Parse interrupt-map */
+    while ( imaplen > (addrsize + intsize + 1) )
+    {
+        /* skip child unit address and child interrupt specifier */
+        imap += addrsize + intsize;
+        imaplen -= addrsize + intsize;
+
+        /* Get the interrupt parent */
+        ipar = dt_find_node_by_phandle(be32_to_cpup(imap));
+        imap++;
+        --imaplen;
+
+        /* Check if not found */
+        if ( ipar == NULL )
+        {
+            dt_dprintk(" -> imap parent not found !\n");
+            goto fail;
+        }
+
+        dt_dprintk(" -> ipar %s\n", dt_node_name(ipar));
+
+        /* Get #interrupt-cells and #address-cells of new
+         * parent
+         */
+        tmp = dt_get_property(ipar, "#interrupt-cells", NULL);
+        if ( tmp == NULL )
+        {
+            dt_dprintk(" -> parent lacks #interrupt-cells!\n");
+            goto fail;
+        }
+        pintsize = be32_to_cpu(*tmp);
+        tmp = dt_get_property(ipar, "#address-cells", NULL);
+        paddrsize = (tmp == NULL) ? 0 : be32_to_cpu(*tmp);
+
+        dt_dprintk(" -> pintsize=%d, paddrsize=%d\n",
+                   pintsize, paddrsize);
+
+        if ( pintsize > DT_MAX_IRQ_SPEC )
+        {
+            dt_dprintk(" -> too many irq specifier cells in parent\n");
+            goto fail;
+        }
+
+        /* Check for malformed properties */
+        if ( imaplen < (paddrsize + pintsize) )
+            goto fail;
+
+        imap += paddrsize;
+        imaplen -= paddrsize;
+
+        dt_raw_irq.controller = ipar;
+        dt_raw_irq.size = pintsize;
+        for ( i = 0; i < pintsize; i++ )
+            dt_raw_irq.specifier[i] = dt_read_number(imap + i, 1);
+
+        if ( dt_raw_irq.controller != dt_interrupt_controller )
+        {
+            /*
+             * We don't map IRQs connected to secondary IRQ controllers as
+             * these IRQs have no meaning to us until they connect to the
+             * primary controller.
+             *
+             * Secondary IRQ controllers will at some point connect to
+             * the primary controller (possibly via other IRQ controllers).
+             * We map the IRQs at that last connection point.
+             */
+            imap += pintsize;
+            imaplen -= pintsize;
+            dt_dprintk(" -> Skipped IRQ for secondary IRQ controller\n");
+            continue;
+        }
+
+        ret = dt_irq_translate(&dt_raw_irq, &dt_irq);
+        if ( ret )
+        {
+            dt_dprintk(" -> failed to translate IRQ: %d\n", ret);
+            return ret;
+        }
+
+        ret = cb(dev, &dt_irq, data);
+        if ( ret )
+        {
+            dt_dprintk(" -> callback failed=%d\n", ret);
+            return ret;
+        }
+
+        imap += pintsize;
+        imaplen -= pintsize;
+
+        dt_dprintk(" -> imaplen=%d\n", imaplen);
+    }
+
+    return 0;
+
+fail:
+    return -EINVAL;
+}
+
+/**
+ * dt_irq_map_raw - Low level interrupt tree parsing
+ * @parent:     the device interrupt parent
+ * @intspec:    interrupt specifier ("interrupts" property of the device)
+ * @ointsize:   size of the passed in interrupt specifier
+ * @addr:       address specifier (start of "reg" property of the device)
+ * @oirq:       structure dt_raw_irq filled by this function
+ *
+ * Returns 0 on success and a negative number on error
+ *
+ * This function is a low-level interrupt tree walking function. It
+ * can be used to do a partial walk with synthesized reg and interrupts
+ * properties, for example when resolving PCI interrupts when no device
+ * node exist for the parent.
+ */
+static int dt_irq_map_raw(const struct dt_device_node *parent,
+                          const __be32 *intspec, u32 ointsize,
+                          const __be32 *addr,
+                          struct dt_raw_irq *oirq)
+{
+    const struct dt_device_node *ipar, *tnode, *old = NULL, *newpar = NULL;
+    const __be32 *tmp, *imap, *imask;
+    u32 intsize = 1, addrsize, newintsize = 0, newaddrsize = 0;
+    u32 imaplen;
+    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);
+
+    ipar = parent;
+
+    /* First get the #interrupt-cells property of the current cursor
+     * that tells us how to interpret the passed-in intspec. If there
+     * is none, we are nice and just walk up the tree
+     */
+    do {
+        tmp = dt_get_property(ipar, "#interrupt-cells", NULL);
+        if ( tmp != NULL )
+        {
+            intsize = be32_to_cpu(*tmp);
+            break;
+        }
+        tnode = ipar;
+        ipar = dt_irq_find_parent(ipar);
+    } while ( ipar );
+    if ( ipar == NULL )
+    {
+        dt_dprintk(" -> no parent found !\n");
+        goto fail;
+    }
+
+    dt_dprintk("dt_irq_map_raw: ipar=%s, size=%d\n", ipar->full_name, intsize);
+
+    if ( ointsize != intsize )
+        return -EINVAL;
+
+    /* Look for this #address-cells. We have to implement the old linux
+     * trick of looking for the parent here as some device-trees rely on it
+     */
+    old = ipar;
+    do {
+        tmp = dt_get_property(old, "#address-cells", NULL);
+        tnode = dt_get_parent(old);
+        old = tnode;
+    } while ( old && tmp == NULL );
+
+    old = NULL;
+    addrsize = (tmp == NULL) ? 2 : be32_to_cpu(*tmp);
+
+    dt_dprintk(" -> addrsize=%d\n", addrsize);
+
+    /* Now start the actual "proper" walk of the interrupt tree */
+    while ( ipar != NULL )
+    {
+        /* Now check if cursor is an interrupt-controller and if it is
+         * then we are done
+         */
+        if ( dt_get_property(ipar, "interrupt-controller", NULL) != NULL )
+        {
+            dt_dprintk(" -> got it !\n");
+            if ( intsize > DT_MAX_IRQ_SPEC )
+            {
+                dt_dprintk(" -> intsize(%u) greater than DT_MAX_IRQ_SPEC(%u)\n",
+                           intsize, DT_MAX_IRQ_SPEC);
+                goto fail;
+            }
+            for ( i = 0; i < intsize; i++ )
+                oirq->specifier[i] = dt_read_number(intspec + i, 1);
+            oirq->size = intsize;
+            oirq->controller = ipar;
+            return 0;
+        }
+
+        /* Now look for an interrupt-map */
+        imap = dt_get_property(ipar, "interrupt-map", &imaplen);
+        /* No interrupt map, check for an interrupt parent */
+        if ( imap == NULL )
+        {
+            dt_dprintk(" -> no map, getting parent\n");
+            newpar = dt_irq_find_parent(ipar);
+            goto skiplevel;
+        }
+        imaplen /= sizeof(u32);
+
+        /* Look for a mask */
+        imask = dt_get_property(ipar, "interrupt-map-mask", NULL);
+
+        /* If we were passed no "reg" property and we attempt to parse
+         * an interrupt-map, then #address-cells must be 0.
+         * Fail if it's not.
+         */
+        if ( addr == NULL && addrsize != 0 )
+        {
+            dt_dprintk(" -> no reg passed in when needed !\n");
+            goto fail;
+        }
+
+        /* Parse interrupt-map */
+        match = 0;
+        while ( imaplen > (addrsize + intsize + 1) && !match )
+        {
+            /* Compare specifiers */
+            match = 1;
+            for ( i = 0; i < addrsize && match; ++i )
+            {
+                __be32 mask = imask ? imask[i] : cpu_to_be32(0xffffffffu);
+                match = ((addr[i] ^ imap[i]) & mask) == 0;
+            }
+            for ( ; i < (addrsize + intsize) && match; ++i )
+            {
+                __be32 mask = imask ? imask[i] : cpu_to_be32(0xffffffffu);
+                match = ((intspec[i-addrsize] ^ imap[i]) & mask) == 0;
+            }
+            imap += addrsize + intsize;
+            imaplen -= addrsize + intsize;
+
+            dt_dprintk(" -> match=%d (imaplen=%d)\n", match, imaplen);
+
+            /* Get the interrupt parent */
+            newpar = dt_find_node_by_phandle(be32_to_cpup(imap));
+            imap++;
+            --imaplen;
+
+            /* Check if not found */
+            if ( newpar == NULL )
+            {
+                dt_dprintk(" -> imap parent not found !\n");
+                goto fail;
+            }
+
+            /* Get #interrupt-cells and #address-cells of new
+             * parent
+             */
+            tmp = dt_get_property(newpar, "#interrupt-cells", NULL);
+            if ( tmp == NULL )
+            {
+                dt_dprintk(" -> parent lacks #interrupt-cells!\n");
+                goto fail;
+            }
+            newintsize = be32_to_cpu(*tmp);
+            tmp = dt_get_property(newpar, "#address-cells", NULL);
+            newaddrsize = (tmp == NULL) ? 0 : be32_to_cpu(*tmp);
+
+            dt_dprintk(" -> newintsize=%d, newaddrsize=%d\n",
+                       newintsize, newaddrsize);
+
+            /* Check for malformed properties */
+            if ( imaplen < (newaddrsize + newintsize) )
+                goto fail;
+
+            imap += newaddrsize + newintsize;
+            imaplen -= newaddrsize + newintsize;
+
+            dt_dprintk(" -> imaplen=%d\n", imaplen);
+        }
+        if ( !match )
+            goto fail;
+
+        old = newpar;
+        addrsize = newaddrsize;
+        intsize = newintsize;
+        intspec = imap - intsize;
+        addr = intspec - addrsize;
+
+    skiplevel:
+        /* Iterate again with new parent */
+        dt_dprintk(" -> new parent: %s\n", dt_node_full_name(newpar));
+        ipar = newpar;
+        newpar = NULL;
+    }
+fail:
+    return -EINVAL;
+}
+
+int dt_device_get_raw_irq(const struct dt_device_node *device,
+                          unsigned int index,
+                          struct dt_raw_irq *out_irq)
+{
+    const struct dt_device_node *p;
+    const __be32 *intspec, *tmp, *addr;
+    u32 intsize, intlen;
+    int res = -EINVAL;
+    struct dt_phandle_args args;
+    int i;
+
+    dt_dprintk("dt_device_get_raw_irq: dev=%s, index=%u\n",
+               device->full_name, index);
+
+    /* Get the reg property (if any) */
+    addr = dt_get_property(device, "reg", NULL);
+
+    /* Try the new-style interrupts-extended first */
+    res = dt_parse_phandle_with_args(device, "interrupts-extended",
+                                     "#interrupt-cells", index, &args);
+    if ( !res )
+    {
+        dt_dprintk(" using 'interrupts-extended' property\n");
+        dt_dprintk(" intspec=%d intsize=%d\n", args.args[0], args.args_count);
+
+        for ( i = 0; i < args.args_count; i++ )
+            args.args[i] = cpu_to_be32(args.args[i]);
+
+        return dt_irq_map_raw(args.np, args.args, args.args_count,
+                              addr, out_irq);
+    }
+
+    /* Get the interrupts property */
+    intspec = dt_get_property(device, "interrupts", &intlen);
+    if ( intspec == NULL )
+        return -EINVAL;
+    intlen /= sizeof(*intspec);
+
+    dt_dprintk(" using 'interrupts' property\n");
+    dt_dprintk(" intspec=%d intlen=%d\n", be32_to_cpup(intspec), intlen);
+
+    /* Look for the interrupt parent. */
+    p = dt_irq_find_parent(device);
+    if ( p == NULL )
+        return -EINVAL;
+
+    /* Get size of interrupt specifier */
+    tmp = dt_get_property(p, "#interrupt-cells", NULL);
+    if ( tmp == NULL )
+        goto out;
+    intsize = be32_to_cpu(*tmp);
+
+    dt_dprintk(" intsize=%d intlen=%d\n", intsize, intlen);
+
+    /* Check index */
+    if ( (index + 1) * intsize > intlen )
+        goto out;
+
+    /* Get new specifier and map it */
+    res = dt_irq_map_raw(p, intspec + index * intsize, intsize,
+                         addr, out_irq);
+    if ( res )
+        goto out;
+out:
+    return res;
+}
+
+int dt_irq_translate(const struct dt_raw_irq *raw,
+                     struct dt_irq *out_irq)
+{
+    ASSERT(dt_irq_xlate != NULL);
+    ASSERT(dt_interrupt_controller != NULL);
+
+    /*
+     * TODO: Retrieve the right irq_xlate. This is only works for the primary
+     * interrupt controller.
+     */
+    if ( raw->controller != dt_interrupt_controller )
+        return -EINVAL;
+
+    return dt_irq_xlate(raw->specifier, raw->size,
+                        &out_irq->irq, &out_irq->type);
+}
+
+int dt_device_get_irq(const struct dt_device_node *device, unsigned int index,
+                      struct dt_irq *out_irq)
+{
+    struct dt_raw_irq raw;
+    int res;
+
+    res = dt_device_get_raw_irq(device, index, &raw);
+
+    if ( res )
+        return res;
+
+    return dt_irq_translate(&raw, out_irq);
+}
+
+bool dt_device_is_available(const struct dt_device_node *device)
+{
+    const char *status;
+    u32 statlen;
+
+    status = dt_get_property(device, "status", &statlen);
+    if ( status == NULL )
+        return 1;
+
+    if ( statlen > 0 )
+    {
+        if ( !strcmp(status, "okay") || !strcmp(status, "ok") )
+            return 1;
+    }
+
+    return 0;
+}
+
+bool dt_device_for_passthrough(const struct dt_device_node *device)
+{
+    return (dt_find_property(device, "xen,passthrough", NULL) != NULL);
+
+}
+
+static int __dt_parse_phandle_with_args(const struct dt_device_node *np,
+                                        const char *list_name,
+                                        const char *cells_name,
+                                        int cell_count, int index,
+                                        struct dt_phandle_args *out_args)
+{
+    const __be32 *list, *list_end;
+    int rc = 0, cur_index = 0;
+    u32 size, count = 0;
+    struct dt_device_node *node = NULL;
+    dt_phandle phandle;
+
+    /* Retrieve the phandle list property */
+    list = dt_get_property(np, list_name, &size);
+    if ( !list )
+        return -ENOENT;
+    list_end = list + size / sizeof(*list);
+
+    /* Loop over the phandles until all the requested entry is found */
+    while ( list < list_end )
+    {
+        rc = -EINVAL;
+        count = 0;
+
+        /*
+         * If phandle is 0, then it is an empty entry with no
+         * arguments.  Skip forward to the next entry.
+         * */
+        phandle = be32_to_cpup(list++);
+        if ( phandle )
+        {
+            /*
+             * Find the provider node and parse the #*-cells
+             * property to determine the argument length.
+             *
+             * This is not needed if the cell count is hard-coded
+             * (i.e. cells_name not set, but cell_count is set),
+             * except when we're going to return the found node
+             * below.
+             */
+            if ( cells_name || cur_index == index )
+            {
+                node = dt_find_node_by_phandle(phandle);
+                if ( !node )
+                {
+                    printk(XENLOG_ERR "%s: could not find phandle\n",
+                           np->full_name);
+                    goto err;
+                }
+            }
+
+            if ( cells_name )
+            {
+                if ( !dt_property_read_u32(node, cells_name, &count) )
+                {
+                    printk("%s: could not get %s for %s\n",
+                           np->full_name, cells_name, node->full_name);
+                    goto err;
+                }
+            }
+            else
+                count = cell_count;
+
+            /*
+             * Make sure that the arguments actually fit in the
+             * remaining property data length
+             */
+            if ( list + count > list_end )
+            {
+                printk(XENLOG_ERR "%s: arguments longer than property\n",
+                       np->full_name);
+                goto err;
+            }
+        }
+
+        /*
+         * All of the error cases above bail out of the loop, so at
+         * this point, the parsing is successful. If the requested
+         * index matches, then fill the out_args structure and return,
+         * or return -ENOENT for an empty entry.
+         */
+        rc = -ENOENT;
+        if ( cur_index == index )
+        {
+            if (!phandle)
+                goto err;
+
+            if ( out_args )
+            {
+                int i;
+
+                WARN_ON(count > MAX_PHANDLE_ARGS);
+                if (count > MAX_PHANDLE_ARGS)
+                    count = MAX_PHANDLE_ARGS;
+                out_args->np = node;
+                out_args->args_count = count;
+                for ( i = 0; i < count; i++ )
+                    out_args->args[i] = be32_to_cpup(list++);
+            }
+
+            /* Found it! return success */
+            return 0;
+        }
+
+        node = NULL;
+        list += count;
+        cur_index++;
+    }
+
+    /*
+     * Returning result will be one of:
+     * -ENOENT : index is for empty phandle
+     * -EINVAL : parsing error on data
+     * [1..n]  : Number of phandle (count mode; when index = -1)
+     */
+    rc = index < 0 ? cur_index : -ENOENT;
+err:
+    return rc;
+}
+
+struct dt_device_node *dt_parse_phandle(const struct dt_device_node *np,
+                                        const char *phandle_name, int index)
+{
+    struct dt_phandle_args args;
+
+    if (index < 0)
+        return NULL;
+
+    if (__dt_parse_phandle_with_args(np, phandle_name, NULL, 0,
+                                     index, &args))
+        return NULL;
+
+    return args.np;
+}
+
+
+int dt_parse_phandle_with_args(const struct dt_device_node *np,
+                               const char *list_name,
+                               const char *cells_name, int index,
+                               struct dt_phandle_args *out_args)
+{
+    if ( index < 0 )
+        return -EINVAL;
+    return __dt_parse_phandle_with_args(np, list_name, cells_name, 0,
+                                        index, out_args);
+}
+
+int dt_count_phandle_with_args(const struct dt_device_node *np,
+                               const char *list_name,
+                               const char *cells_name)
+{
+    return __dt_parse_phandle_with_args(np, list_name, cells_name, 0, -1, NULL);
+}
+
+/**
+ * unflatten_dt_node - Alloc and populate a device_node from the flat tree
+ * @fdt: The parent device tree blob
+ * @mem: Memory chunk to use for allocating device nodes and properties
+ * @p: pointer to node in flat tree
+ * @dad: Parent struct device_node
+ * @allnextpp: pointer to ->allnext from last allocated device_node
+ * @fpsize: Size of the node path up at the current depth.
+ */
+static unsigned long unflatten_dt_node(const void *fdt,
+                                       unsigned long mem,
+                                       unsigned long *p,
+                                       struct dt_device_node *dad,
+                                       struct dt_device_node ***allnextpp,
+                                       unsigned long fpsize)
+{
+    struct dt_device_node *np;
+    struct dt_property *pp, **prev_pp = NULL;
+    char *pathp;
+    u32 tag;
+    unsigned int l, allocl;
+    int has_name = 0;
+    int new_format = 0;
+
+    tag = be32_to_cpup((__be32 *)(*p));
+    if ( tag != FDT_BEGIN_NODE )
+    {
+        printk(XENLOG_WARNING "Weird tag at start of node: %x\n", tag);
+        return mem;
+    }
+    *p += 4;
+    pathp = (char *)*p;
+    l = allocl = strlen(pathp) + 1;
+    *p = ROUNDUP(*p + l, 4);
+
+    /* version 0x10 has a more compact unit name here instead of the full
+     * path. we accumulate the full path size using "fpsize", we'll rebuild
+     * it later. We detect this because the first character of the name is
+     * not '/'.
+     */
+    if ( (*pathp) != '/' )
+    {
+        new_format = 1;
+        if ( fpsize == 0 )
+        {
+            /* root node: special case. fpsize accounts for path
+             * plus terminating zero. root node only has '/', so
+             * fpsize should be 2, but we want to avoid the first
+             * level nodes to have two '/' so we use fpsize 1 here
+             */
+            fpsize = 1;
+            allocl = 2;
+        }
+        else
+        {
+            /* account for '/' and path size minus terminal 0
+             * already in 'l'
+             */
+            fpsize += l;
+            allocl = fpsize;
+        }
+    }
+
+    np = unflatten_dt_alloc(&mem, sizeof(struct dt_device_node) + allocl,
+                            __alignof__(struct dt_device_node));
+    if ( allnextpp )
+    {
+        memset(np, 0, sizeof(*np));
+        np->full_name = ((char *)np) + sizeof(struct dt_device_node);
+        /* By default dom0 owns the device */
+        np->used_by = 0;
+        /* By default the device is not protected */
+        np->is_protected = false;
+        INIT_LIST_HEAD(&np->domain_list);
+
+        if ( new_format )
+        {
+            char *fn = np->full_name;
+            /* rebuild full path for new format */
+            if ( dad && dad->parent )
+            {
+                strlcpy(fn, dad->full_name, allocl);
+#ifdef DEBUG_DT
+                if ( (strlen(fn) + l + 1) != allocl )
+                {
+                    dt_dprintk("%s: p: %d, l: %d, a: %d\n",
+                               pathp, (int)strlen(fn),
+                               l, allocl);
+                }
+#endif
+                fn += strlen(fn);
+            }
+            *(fn++) = '/';
+            memcpy(fn, pathp, l);
+        }
+        else
+            memcpy(np->full_name, pathp, l);
+        prev_pp = &np->properties;
+        **allnextpp = np;
+        *allnextpp = &np->allnext;
+        if ( dad != NULL )
+        {
+            np->parent = dad;
+            /* we temporarily use the next field as `last_child'*/
+            if ( dad->next == NULL )
+                dad->child = np;
+            else
+                dad->next->sibling = np;
+            dad->next = np;
+        }
+    }
+    /* process properties */
+    while ( 1 )
+    {
+        u32 sz, noff;
+        const char *pname;
+
+        tag = be32_to_cpup((__be32 *)(*p));
+        if ( tag == FDT_NOP )
+        {
+            *p += 4;
+            continue;
+        }
+        if ( tag != FDT_PROP )
+            break;
+        *p += 4;
+        sz = be32_to_cpup((__be32 *)(*p));
+        noff = be32_to_cpup((__be32 *)((*p) + 4));
+        *p += 8;
+        if ( fdt_version(fdt) < 0x10 )
+            *p = ROUNDUP(*p, sz >= 8 ? 8 : 4);
+
+        pname = fdt_string(fdt, noff);
+        if ( pname == NULL )
+        {
+            dt_dprintk("Can't find property name in list!\n");
+            break;
+        }
+        if ( strcmp(pname, "name") == 0 )
+            has_name = 1;
+        l = strlen(pname) + 1;
+        pp = unflatten_dt_alloc(&mem, sizeof(struct dt_property),
+                                __alignof__(struct dt_property));
+        if ( allnextpp )
+        {
+            /* We accept flattened tree phandles either in
+             * ePAPR-style "phandle" properties, or the
+             * legacy "linux,phandle" properties.  If both
+             * appear and have different values, things
+             * will get weird.  Don't do that. */
+            if ( (strcmp(pname, "phandle") == 0) ||
+                 (strcmp(pname, "linux,phandle") == 0) )
+            {
+                if ( np->phandle == 0 )
+                    np->phandle = be32_to_cpup((__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);
+            pp->name = pname;
+            pp->length = sz;
+            pp->value = (void *)*p;
+            *prev_pp = pp;
+            prev_pp = &pp->next;
+        }
+        *p = ROUNDUP((*p) + sz, 4);
+    }
+    /* with version 0x10 we may not have the name property, recreate
+     * it here from the unit name if absent
+     */
+    if ( !has_name )
+    {
+        char *p1 = pathp, *ps = pathp, *pa = NULL;
+        int sz;
+
+        while ( *p1 )
+        {
+            if ( (*p1) == '@' )
+                pa = p1;
+            if ( (*p1) == '/' )
+                ps = p1 + 1;
+            p1++;
+        }
+        if ( pa < ps )
+            pa = p1;
+        sz = (pa - ps) + 1;
+        pp = unflatten_dt_alloc(&mem, sizeof(struct dt_property) + sz,
+                                __alignof__(struct dt_property));
+        if ( allnextpp )
+        {
+            pp->name = "name";
+            pp->length = sz;
+            pp->value = pp + 1;
+            /*
+             * The device tree creation code assume that the property
+             * "name" is not a fake.
+             * To avoid a big divergence with Linux code, only remove
+             * property link. In this case we will lose a bit of memory
+             */
+#if 0
+            *prev_pp = pp;
+            prev_pp = &pp->next;
+#endif
+            np->name = pp->value;
+            memcpy(pp->value, ps, sz - 1);
+            ((char *)pp->value)[sz - 1] = 0;
+            dt_dprintk("fixed up name for %s -> %s\n", pathp,
+                       (char *)pp->value);
+            /* Generic device initialization */
+            np->dev.type = DEV_DT;
+            np->dev.of_node = np;
+        }
+    }
+    if ( allnextpp )
+    {
+        *prev_pp = NULL;
+        np->name = (np->name) ? : dt_get_property(np, "name", NULL);
+        np->type = dt_get_property(np, "device_type", NULL);
+
+        if ( !np->name )
+            np->name = "<NULL>";
+        if ( !np->type )
+            np->type = "<NULL>";
+    }
+    while ( tag == FDT_BEGIN_NODE || tag == FDT_NOP )
+    {
+        if ( tag == FDT_NOP )
+            *p += 4;
+        else
+            mem = unflatten_dt_node(fdt, mem, p, np, allnextpp, fpsize);
+        tag = be32_to_cpup((__be32 *)(*p));
+    }
+    if ( tag != FDT_END_NODE )
+    {
+        printk(XENLOG_WARNING "Weird tag at end of node: %x\n", tag);
+        return mem;
+    }
+
+    *p += 4;
+    return mem;
+}
+
+int unflatten_device_tree(const void *fdt, struct dt_device_node **mynodes)
+{
+    unsigned long start, mem, size;
+    struct dt_device_node **allnextp = mynodes;
+
+    dt_dprintk(" -> unflatten_device_tree()\n");
+
+    dt_dprintk("Unflattening device tree:\n");
+    dt_dprintk("magic: %#08x\n", fdt_magic(fdt));
+    dt_dprintk("size: %#08x\n", fdt_totalsize(fdt));
+    dt_dprintk("version: %#08x\n", fdt_version(fdt));
+
+    /* First pass, scan for size */
+    start = ((unsigned long)fdt) + fdt_off_dt_struct(fdt);
+    size = unflatten_dt_node(fdt, 0, &start, NULL, NULL, 0);
+    if ( !size )
+        return -EINVAL;
+
+    size = (size | 3) + 1;
+
+    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));
+    if ( !mem )
+        return -ENOMEM;
+
+    ((__be32 *)mem)[size / 4] = cpu_to_be32(0xdeadbeefU);
+
+    dt_dprintk("  unflattening %lx...\n", mem);
+
+    /* 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 )
+    {
+        printk(XENLOG_ERR "Weird tag at end of tree: %08x\n",
+                  *((u32 *)start));
+        xfree((void *)mem);
+        return -EINVAL;
+    }
+
+    if ( be32_to_cpu(((__be32 *)mem)[size / 4]) != 0xdeadbeefU )
+    {
+        printk(XENLOG_ERR "End of tree marker overwritten: %08x\n",
+                  be32_to_cpu(((__be32 *)mem)[size / 4]));
+        xfree((void *)mem);
+        return -EINVAL;
+    }
+
+    *allnextp = NULL;
+
+    dt_dprintk(" <- unflatten_device_tree()\n");
+
+    return 0;
+}
+
+static void dt_alias_add(struct dt_alias_prop *ap,
+                         struct dt_device_node *np,
+                         int id, const char *stem, int stem_len)
+{
+    ap->np = np;
+    ap->id = id;
+    strlcpy(ap->stem, stem, stem_len + 1);
+    list_add_tail(&ap->link, &aliases_lookup);
+    dt_dprintk("adding DT alias:%s: stem=%s id=%d node=%s\n",
+               ap->alias, ap->stem, ap->id, dt_node_full_name(np));
+}
+
+/**
+ * dt_alias_scan - Scan all properties of 'aliases' node
+ *
+ * The function scans all the properties of 'aliases' node and populate
+ * the the global lookup table with the properties.  It returns the
+ * number of alias_prop found, or error code in error case.
+ */
+static void __init dt_alias_scan(void)
+{
+    const struct dt_property *pp;
+    const struct dt_device_node *aliases;
+
+    aliases = dt_find_node_by_path("/aliases");
+    if ( !aliases )
+        return;
+
+    dt_for_each_property_node( aliases, pp )
+    {
+        const char *start = pp->name;
+        const char *end = start + strlen(start);
+        struct dt_device_node *np;
+        struct dt_alias_prop *ap;
+        int id, len;
+
+        /* Skip those we do not want to proceed */
+        if ( !strcmp(pp->name, "name") ||
+             !strcmp(pp->name, "phandle") ||
+             !strcmp(pp->name, "linux,phandle") )
+            continue;
+
+        np = dt_find_node_by_path(pp->value);
+        if ( !np )
+            continue;
+
+        /* walk the alias backwards to extract the id and work out
+         * the 'stem' string */
+        while ( isdigit(*(end-1)) && end > start )
+            end--;
+        len = end - start;
+
+        id = simple_strtoll(end, NULL, 10);
+
+        /* Allocate an alias_prop with enough space for the stem */
+        ap = _xmalloc(sizeof(*ap) + len + 1, 4);
+        if ( !ap )
+            continue;
+        ap->alias = start;
+        dt_alias_add(ap, np, id, start, len);
+    }
+}
+
+struct dt_device_node * __init
+dt_find_interrupt_controller(const struct dt_device_match *matches)
+{
+    struct dt_device_node *np = NULL;
+
+    while ( (np = dt_find_matching_node(np, matches)) )
+    {
+        if ( !dt_find_property(np, "interrupt-controller", NULL) )
+            continue;
+
+        if ( dt_get_parent(np) )
+            break;
+    }
+
+    return np;
+}
+
+void __init dt_unflatten_host_device_tree(void)
+{
+    int error = unflatten_device_tree(device_tree_flattened, &dt_host);
+
+    if ( error )
+        panic("unflatten_device_tree failed with error %d\n", error);
+
+    dt_alias_scan();
+}
+
+int dt_get_pci_domain_nr(struct dt_device_node *node)
+{
+    u32 domain;
+    int error;
+
+    error = dt_property_read_u32(node, "linux,pci-domain", &domain);
+    if ( !error )
+        return -EINVAL;
+
+    return (u16)domain;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
deleted file mode 100644
index 8d1017a49d..0000000000
--- a/xen/common/device_tree.c
+++ /dev/null
@@ -1,2253 +0,0 @@
-/*
- * Device Tree
- *
- * Copyright (C) 2012 Citrix Systems, Inc.
- * Copyright 2009 Benjamin Herrenschmidt, IBM Corp
- * benh@kernel.crashing.org
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <xen/types.h>
-#include <xen/init.h>
-#include <xen/guest_access.h>
-#include <xen/device_tree.h>
-#include <xen/kernel.h>
-#include <xen/lib.h>
-#include <xen/libfdt/libfdt.h>
-#include <xen/mm.h>
-#include <xen/stdarg.h>
-#include <xen/string.h>
-#include <xen/cpumask.h>
-#include <xen/ctype.h>
-#include <asm/setup.h>
-#include <xen/err.h>
-
-const void *device_tree_flattened;
-dt_irq_xlate_func dt_irq_xlate;
-/* Host device tree */
-struct dt_device_node *dt_host;
-/* Interrupt controller node*/
-const struct dt_device_node *dt_interrupt_controller;
-DEFINE_RWLOCK(dt_host_lock);
-
-/**
- * struct dt_alias_prop - Alias property in 'aliases' node
- * @link: List node to link the structure in aliases_lookup list
- * @alias: Alias property name
- * @np: Pointer to device_node that the alias stands for
- * @id: Index value from end of alias name
- * @stem: Alias string without the index
- *
- * The structure represents one alias property of 'aliases' node as
- * an entry in aliases_lookup list.
- */
-struct dt_alias_prop {
-    struct list_head link;
-    const char *alias;
-    struct dt_device_node *np;
-    int id;
-    char stem[0];
-};
-
-static LIST_HEAD(aliases_lookup);
-
-#ifdef CONFIG_DEVICE_TREE_DEBUG
-static void dt_dump_addr(const char *s, const __be32 *addr, int na)
-{
-    dt_dprintk("%s", s);
-    while ( na-- )
-        dt_dprintk(" %08x", be32_to_cpu(*(addr++)));
-    dt_dprintk("\n");
-}
-#else
-static void dt_dump_addr(const char *s, const __be32 *addr, int na) { }
-#endif
-
-#define DT_BAD_ADDR ((u64)-1)
-
-/* Max address size we deal with */
-#define DT_MAX_ADDR_CELLS 4
-#define DT_CHECK_ADDR_COUNT(na) ((na) > 0 && (na) <= DT_MAX_ADDR_CELLS)
-#define DT_CHECK_COUNTS(na, ns) (DT_CHECK_ADDR_COUNT(na) && (ns) > 0)
-
-/* Callbacks for bus specific translators */
-struct dt_bus
-{
-    const char *name;
-    const char *addresses;
-    bool (*match)(const struct dt_device_node *node);
-    void (*count_cells)(const struct dt_device_node *child,
-                        int *addrc, int *sizec);
-    u64 (*map)(__be32 *addr, const __be32 *range, int na, int ns, int pna);
-    int (*translate)(__be32 *addr, u64 offset, int na);
-    unsigned int (*get_flags)(const __be32 *addr);
-};
-
-void dt_get_range(const __be32 **cellp, const struct dt_device_node *np,
-                  u64 *address, u64 *size)
-{
-    *address = dt_next_cell(dt_n_addr_cells(np), cellp);
-    *size = dt_next_cell(dt_n_size_cells(np), cellp);
-}
-
-void dt_set_cell(__be32 **cellp, int size, u64 val)
-{
-    int cells = size;
-
-    while ( size-- )
-    {
-        (*cellp)[size] = cpu_to_fdt32(val);
-        val >>= 32;
-    }
-
-    (*cellp) += cells;
-}
-
-void dt_set_range(__be32 **cellp, const struct dt_device_node *np,
-                  u64 address, u64 size)
-{
-    dt_set_cell(cellp, dt_n_addr_cells(np), address);
-    dt_set_cell(cellp, dt_n_size_cells(np), size);
-}
-
-void dt_child_set_range(__be32 **cellp, int addrcells, int sizecells,
-                        u64 address, u64 size)
-{
-    dt_set_cell(cellp, addrcells, address);
-    dt_set_cell(cellp, sizecells, size);
-}
-
-static void __init *unflatten_dt_alloc(unsigned long *mem, unsigned long size,
-                                       unsigned long align)
-{
-    void *res;
-
-    *mem = ROUNDUP(*mem, align);
-    res = (void *)*mem;
-    *mem += size;
-
-    return res;
-}
-
-/* Find a property with a given name for a given node and return it. */
-const struct dt_property *dt_find_property(const struct dt_device_node *np,
-                                           const char *name, u32 *lenp)
-{
-    const struct dt_property *pp;
-
-    if ( !np )
-        return NULL;
-
-    for ( pp = np->properties; pp; pp = pp->next )
-    {
-        if ( dt_prop_cmp(pp->name, name) == 0 )
-        {
-            if ( lenp )
-                *lenp = pp->length;
-            break;
-        }
-    }
-
-    return pp;
-}
-
-const void *dt_get_property(const struct dt_device_node *np,
-                            const char *name, u32 *lenp)
-{
-    const struct dt_property *pp = dt_find_property(np, name, lenp);
-
-    return pp ? pp->value : NULL;
-}
-
-bool dt_property_read_u32(const struct dt_device_node *np,
-                          const char *name, u32 *out_value)
-{
-    u32 len;
-    const __be32 *val;
-
-    val = dt_get_property(np, name, &len);
-    if ( !val || len < sizeof(*out_value) )
-        return 0;
-
-    *out_value = be32_to_cpup(val);
-
-    return 1;
-}
-
-
-bool dt_property_read_u64(const struct dt_device_node *np,
-                          const char *name, u64 *out_value)
-{
-    u32 len;
-    const __be32 *val;
-
-    val = dt_get_property(np, name, &len);
-    if ( !val || len < sizeof(*out_value) )
-        return 0;
-
-    *out_value = dt_read_number(val, 2);
-
-    return 1;
-}
-int dt_property_read_string(const struct dt_device_node *np,
-                            const char *propname, const char **out_string)
-{
-    const struct dt_property *pp = dt_find_property(np, propname, NULL);
-
-    if ( !pp )
-        return -EINVAL;
-    if ( !pp->length )
-        return -ENODATA;
-    if ( strnlen(pp->value, pp->length) >= pp->length )
-        return -EILSEQ;
-
-    *out_string = pp->value;
-
-    return 0;
-}
-
-/**
- * dt_find_property_value_of_size
- *
- * @np:     device node from which the property value is to be read.
- * @propname:   name of the property to be searched.
- * @min:    minimum allowed length of property value
- * @max:    maximum allowed length of property value (0 means unlimited)
- * @len:    if !=NULL, actual length is written to here
- *
- * Search for a property in a device node and valid the requested size.
- *
- * Return: The property value on success, -EINVAL if the property does not
- * exist, -ENODATA if property does not have a value, and -EOVERFLOW if the
- * property data is too small or too large.
- */
-static void *dt_find_property_value_of_size(const struct dt_device_node *np,
-                                            const char *propname, u32 min,
-                                            u32 max, size_t *len)
-{
-    const struct dt_property *prop = dt_find_property(np, propname, NULL);
-
-    if ( !prop )
-        return ERR_PTR(-EINVAL);
-    if ( !prop->value )
-        return ERR_PTR(-ENODATA);
-    if ( prop->length < min )
-        return ERR_PTR(-EOVERFLOW);
-    if ( max && prop->length > max )
-        return ERR_PTR(-EOVERFLOW);
-
-    if ( len )
-        *len = prop->length;
-
-    return prop->value;
-}
-
-int dt_property_read_variable_u32_array(const struct dt_device_node *np,
-                                        const char *propname, u32 *out_values,
-                                        size_t sz_min, size_t sz_max)
-{
-    size_t sz, count;
-    const __be32 *val = dt_find_property_value_of_size(np, propname,
-                        (sz_min * sizeof(*out_values)),
-                        (sz_max * sizeof(*out_values)),
-                        &sz);
-
-    if ( IS_ERR(val) )
-        return PTR_ERR(val);
-
-    if ( !sz_max )
-        sz = sz_min;
-    else
-        sz /= sizeof(*out_values);
-
-    count = sz;
-    while ( count-- )
-        *out_values++ = be32_to_cpup(val++);
-
-    return sz;
-}
-
-int dt_property_match_string(const struct dt_device_node *np,
-                             const char *propname, const char *string)
-{
-    const struct dt_property *dtprop = dt_find_property(np, propname, NULL);
-    size_t l;
-    int i;
-    const char *p, *end;
-
-    if ( !dtprop )
-        return -EINVAL;
-    if ( !dtprop->value )
-        return -ENODATA;
-
-    p = dtprop->value;
-    end = p + dtprop->length;
-
-    for ( i = 0; p < end; i++, p += l )
-    {
-        l = strnlen(p, end - p) + 1;
-        if ( p + l > end )
-            return -EILSEQ;
-        if ( strcmp(string, p) == 0 )
-            return i; /* Found it; return index */
-    }
-    return -ENODATA;
-}
-
-bool dt_device_is_compatible(const struct dt_device_node *device,
-                             const char *compat)
-{
-    const char* cp;
-    u32 cplen, l;
-
-    cp = dt_get_property(device, "compatible", &cplen);
-    if ( cp == NULL )
-        return 0;
-    while ( cplen > 0 )
-    {
-        if ( dt_compat_cmp(cp, compat) == 0 )
-            return 1;
-        l = strlen(cp) + 1;
-        cp += l;
-        cplen -= l;
-    }
-
-    return 0;
-}
-
-bool dt_machine_is_compatible(const char *compat)
-{
-    const struct dt_device_node *root;
-    bool rc = false;
-
-    root = dt_find_node_by_path("/");
-    if ( root )
-    {
-        rc = dt_device_is_compatible(root, compat);
-    }
-    return rc;
-}
-
-struct dt_device_node *dt_find_node_by_name(struct dt_device_node *from,
-                                            const char *name)
-{
-    struct dt_device_node *np;
-    struct dt_device_node *dt;
-
-    dt = from ? from->allnext : dt_host;
-    dt_for_each_device_node(dt, np)
-        if ( np->name && (dt_node_cmp(np->name, name) == 0) )
-            break;
-
-    return np;
-}
-
-struct dt_device_node *dt_find_node_by_type(struct dt_device_node *from,
-                                            const char *type)
-{
-    struct dt_device_node *np;
-    struct dt_device_node *dt;
-
-    dt = from ? from->allnext : dt_host;
-    dt_for_each_device_node(dt, np)
-        if ( np->type && (dt_node_cmp(np->type, type) == 0) )
-            break;
-
-    return np;
-}
-
-struct dt_device_node *dt_find_node_by_path_from(struct dt_device_node *from,
-                                                 const char *path)
-{
-    struct dt_device_node *np;
-
-    dt_for_each_device_node(from, np)
-        if ( np->full_name && (dt_node_cmp(np->full_name, path) == 0) )
-            break;
-
-    return np;
-}
-
-int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
-                          struct dt_device_node **node)
-{
-    char *path;
-
-    path = safe_copy_string_from_guest(u_path, u_plen, PAGE_SIZE);
-    if ( IS_ERR(path) )
-        return PTR_ERR(path);
-
-    *node = dt_find_node_by_path(path);
-
-    xfree(path);
-
-    return (*node == NULL) ? -ESRCH : 0;
-}
-
-struct dt_device_node *dt_find_node_by_alias(const char *alias)
-{
-    const struct dt_alias_prop *app;
-
-    list_for_each_entry( app, &aliases_lookup, link )
-    {
-        if ( !strcmp(app->alias, alias) )
-            return app->np;
-    }
-
-    return NULL;
-}
-
-const struct dt_device_match *
-dt_match_node(const struct dt_device_match *matches,
-              const struct dt_device_node *node)
-{
-    if ( !matches )
-        return NULL;
-
-    while ( matches->path || matches->type ||
-            matches->compatible || matches->not_available || matches->prop )
-    {
-        bool match = true;
-
-        if ( matches->path )
-            match &= dt_node_path_is_equal(node, matches->path);
-
-        if ( matches->type )
-            match &= dt_device_type_is_equal(node, matches->type);
-
-        if ( matches->compatible )
-            match &= dt_device_is_compatible(node, matches->compatible);
-
-        if ( matches->not_available )
-            match &= !dt_device_is_available(node);
-
-        if ( matches->prop )
-            match &= dt_find_property(node, matches->prop, NULL) != NULL;
-
-        if ( match )
-            return matches;
-        matches++;
-    }
-
-    return NULL;
-}
-
-const struct dt_device_node *dt_get_parent(const struct dt_device_node *node)
-{
-    if ( !node )
-        return NULL;
-
-    return node->parent;
-}
-
-struct dt_device_node *
-dt_find_compatible_node(struct dt_device_node *from,
-                        const char *type,
-                        const char *compatible)
-{
-    struct dt_device_node *np;
-    struct dt_device_node *dt;
-
-    dt = from ? from->allnext : dt_host;
-    dt_for_each_device_node(dt, np)
-    {
-        if ( type
-             && !(np->type && (dt_node_cmp(np->type, type) == 0)) )
-            continue;
-        if ( dt_device_is_compatible(np, compatible) )
-            break;
-    }
-
-    return np;
-}
-
-struct dt_device_node *
-dt_find_matching_node(struct dt_device_node *from,
-                      const struct dt_device_match *matches)
-{
-    struct dt_device_node *np;
-    struct dt_device_node *dt;
-
-    dt = from ? from->allnext : dt_host;
-    dt_for_each_device_node(dt, np)
-    {
-        if ( dt_match_node(matches, np) )
-            return np;
-    }
-
-    return NULL;
-}
-
-static int __dt_n_addr_cells(const struct dt_device_node *np, bool parent)
-{
-    const __be32 *ip;
-
-    do {
-        if ( np->parent && !parent )
-            np = np->parent;
-        parent = false;
-
-        ip = dt_get_property(np, "#address-cells", NULL);
-        if ( ip )
-            return be32_to_cpup(ip);
-    } while ( np->parent );
-    /* No #address-cells property for the root node */
-    return DT_ROOT_NODE_ADDR_CELLS_DEFAULT;
-}
-
-static int __dt_n_size_cells(const struct dt_device_node *np, bool parent)
-{
-    const __be32 *ip;
-
-    do {
-        if ( np->parent && !parent )
-            np = np->parent;
-        parent = false;
-
-        ip = dt_get_property(np, "#size-cells", NULL);
-        if ( ip )
-            return be32_to_cpup(ip);
-    } while ( np->parent );
-    /* No #address-cells property for the root node */
-    return DT_ROOT_NODE_SIZE_CELLS_DEFAULT;
-}
-
-int dt_n_addr_cells(const struct dt_device_node *np)
-{
-    return __dt_n_addr_cells(np, false);
-}
-
-int dt_n_size_cells(const struct dt_device_node *np)
-{
-    return __dt_n_size_cells(np, false);
-}
-
-int dt_child_n_addr_cells(const struct dt_device_node *parent)
-{
-    return __dt_n_addr_cells(parent, true);
-}
-
-int dt_child_n_size_cells(const struct dt_device_node *parent)
-{
-    return __dt_n_size_cells(parent, true);
-}
-
-/*
- * These are defined in Linux where much of this code comes from, but
- * are currently unused outside this file in the context of Xen.
- */
-#define IORESOURCE_BITS         0x000000ff      /* Bus-specific bits */
-
-#define IORESOURCE_TYPE_BITS    0x00001f00      /* Resource type */
-#define IORESOURCE_IO           0x00000100      /* PCI/ISA I/O ports */
-#define IORESOURCE_MEM          0x00000200
-#define IORESOURCE_REG          0x00000300      /* Register offsets */
-#define IORESOURCE_IRQ          0x00000400
-#define IORESOURCE_DMA          0x00000800
-#define IORESOURCE_BUS          0x00001000
-
-#define IORESOURCE_PREFETCH     0x00002000      /* No side effects */
-#define IORESOURCE_READONLY     0x00004000
-#define IORESOURCE_CACHEABLE    0x00008000
-#define IORESOURCE_RANGELENGTH  0x00010000
-#define IORESOURCE_SHADOWABLE   0x00020000
-
-/*
- * Default translator (generic bus)
- */
-static bool dt_bus_default_match(const struct dt_device_node *node)
-{
-    /* Root node doesn't have "ranges" property */
-    if ( node->parent == NULL )
-        return 1;
-
-    /* The default bus is only used when the "ranges" property exists.
-     * Otherwise we can't translate the address
-     */
-    return (dt_get_property(node, "ranges", NULL) != NULL);
-}
-
-static void dt_bus_default_count_cells(const struct dt_device_node *dev,
-                                int *addrc, int *sizec)
-{
-    if ( addrc )
-        *addrc = dt_n_addr_cells(dev);
-    if ( sizec )
-        *sizec = dt_n_size_cells(dev);
-}
-
-static u64 dt_bus_default_map(__be32 *addr, const __be32 *range,
-                              int na, int ns, int pna)
-{
-    u64 cp, s, da;
-
-    cp = dt_read_number(range, na);
-    s = dt_read_number(range + na + pna, ns);
-    da = dt_read_number(addr, na);
-
-    dt_dprintk("DT: default map, cp=%llx, s=%llx, da=%llx\n",
-               (unsigned long long)cp, (unsigned long long)s,
-               (unsigned long long)da);
-
-    /*
-     * If the number of address cells is larger than 2 we assume the
-     * mapping doesn't specify a physical address. Rather, the address
-     * specifies an identifier that must match exactly.
-     */
-    if ( na > 2 && memcmp(range, addr, na * 4) != 0 )
-        return DT_BAD_ADDR;
-
-    if ( da < cp || da >= (cp + s) )
-        return DT_BAD_ADDR;
-    return da - cp;
-}
-
-static int dt_bus_default_translate(__be32 *addr, u64 offset, int na)
-{
-    u64 a = dt_read_number(addr, na);
-
-    memset(addr, 0, na * 4);
-    a += offset;
-    if ( na > 1 )
-        addr[na - 2] = cpu_to_be32(a >> 32);
-    addr[na - 1] = cpu_to_be32(a & 0xffffffffu);
-
-    return 0;
-}
-static unsigned int dt_bus_default_get_flags(const __be32 *addr)
-{
-    return IORESOURCE_MEM;
-}
-
-/*
- * PCI bus specific translator
- */
-
-static bool dt_node_is_pci(const struct dt_device_node *np)
-{
-    bool is_pci = !strcmp(np->name, "pcie") || !strcmp(np->name, "pci");
-
-    if ( is_pci )
-        printk(XENLOG_WARNING "%s: Missing device_type\n", np->full_name);
-
-    return is_pci;
-}
-
-static bool dt_bus_pci_match(const struct dt_device_node *np)
-{
-    /*
-     * "pciex" is PCI Express "vci" is for the /chaos bridge on 1st-gen PCI
-     * powermacs "ht" is hypertransport
-     *
-     * If none of the device_type match, and that the node name is
-     * "pcie" or "pci", accept the device as PCI (with a warning).
-     */
-    return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex") ||
-        !strcmp(np->type, "vci") || !strcmp(np->type, "ht") ||
-        dt_node_is_pci(np);
-}
-
-static void dt_bus_pci_count_cells(const struct dt_device_node *np,
-				   int *addrc, int *sizec)
-{
-    if (addrc)
-        *addrc = 3;
-    if (sizec)
-        *sizec = 2;
-}
-
-static unsigned int dt_bus_pci_get_flags(const __be32 *addr)
-{
-    unsigned int flags = 0;
-    u32 w = be32_to_cpup(addr);
-
-    switch((w >> 24) & 0x03) {
-    case 0x01:
-        flags |= IORESOURCE_IO;
-        break;
-    case 0x02: /* 32 bits */
-    case 0x03: /* 64 bits */
-        flags |= IORESOURCE_MEM;
-        break;
-    }
-    if (w & 0x40000000)
-        flags |= IORESOURCE_PREFETCH;
-    return flags;
-}
-
-static u64 dt_bus_pci_map(__be32 *addr, const __be32 *range, int na, int ns,
-		int pna)
-{
-    u64 cp, s, da;
-    unsigned int af, rf;
-
-    af = dt_bus_pci_get_flags(addr);
-    rf = dt_bus_pci_get_flags(range);
-
-    /* Check address type match */
-    if ((af ^ rf) & (IORESOURCE_MEM | IORESOURCE_IO))
-        return DT_BAD_ADDR;
-
-    /* Read address values, skipping high cell */
-    cp = dt_read_number(range + 1, na - 1);
-    s  = dt_read_number(range + na + pna, ns);
-    da = dt_read_number(addr + 1, na - 1);
-
-    dt_dprintk("DT: PCI map, cp=%llx, s=%llx, da=%llx\n",
-               (unsigned long long)cp, (unsigned long long)s,
-               (unsigned long long)da);
-
-    if (da < cp || da >= (cp + s))
-        return DT_BAD_ADDR;
-    return da - cp;
-}
-
-static int dt_bus_pci_translate(__be32 *addr, u64 offset, int na)
-{
-    return dt_bus_default_translate(addr + 1, offset, na - 1);
-}
-
-/*
- * Array of bus specific translators
- */
-static const struct dt_bus dt_busses[] =
-{
-    /* PCI */
-    {
-        .name = "pci",
-        .addresses = "assigned-addresses",
-        .match = dt_bus_pci_match,
-        .count_cells = dt_bus_pci_count_cells,
-        .map = dt_bus_pci_map,
-        .translate = dt_bus_pci_translate,
-        .get_flags = dt_bus_pci_get_flags,
-    },
-    /* Default */
-    {
-        .name = "default",
-        .addresses = "reg",
-        .match = dt_bus_default_match,
-        .count_cells = dt_bus_default_count_cells,
-        .map = dt_bus_default_map,
-        .translate = dt_bus_default_translate,
-        .get_flags = dt_bus_default_get_flags,
-    },
-};
-
-static const struct dt_bus *dt_match_bus(const struct dt_device_node *np)
-{
-    int i;
-
-    for ( i = 0; i < ARRAY_SIZE(dt_busses); i++ )
-        if ( !dt_busses[i].match || dt_busses[i].match(np) )
-            return &dt_busses[i];
-
-    return NULL;
-}
-
-static const __be32 *dt_get_address(const struct dt_device_node *dev,
-                                    unsigned int index, u64 *size,
-                                    unsigned int *flags)
-{
-    const __be32 *prop;
-    u32 psize;
-    const struct dt_device_node *parent;
-    const struct dt_bus *bus;
-    int onesize, i, na, ns;
-
-    /* Get parent & match bus type */
-    parent = dt_get_parent(dev);
-    if ( parent == NULL )
-        return NULL;
-
-    bus = dt_match_bus(parent);
-    if ( !bus )
-        return NULL;
-    bus->count_cells(dev, &na, &ns);
-
-    if ( !DT_CHECK_ADDR_COUNT(na) )
-        return NULL;
-
-    /* Get "reg" or "assigned-addresses" property */
-    prop = dt_get_property(dev, bus->addresses, &psize);
-    if ( prop == NULL )
-        return NULL;
-    psize /= 4;
-
-    onesize = na + ns;
-    for ( i = 0; psize >= onesize; psize -= onesize, prop += onesize, i++ )
-    {
-        if ( i == index )
-        {
-            if ( size )
-                *size = dt_read_number(prop + na, ns);
-            if ( flags )
-                *flags = bus->get_flags(prop);
-            return prop;
-        }
-    }
-    return NULL;
-}
-
-static int dt_translate_one(const struct dt_device_node *parent,
-                            const struct dt_bus *bus,
-                            const struct dt_bus *pbus,
-                            __be32 *addr, int na, int ns,
-                            int pna, const char *rprop)
-{
-    const __be32 *ranges;
-    unsigned int rlen;
-    int rone;
-    u64 offset = DT_BAD_ADDR;
-
-    ranges = dt_get_property(parent, rprop, &rlen);
-    if ( ranges == NULL )
-    {
-        printk(XENLOG_ERR "DT: no ranges; cannot translate\n");
-        return 1;
-    }
-    if ( rlen == 0 )
-    {
-        offset = dt_read_number(addr, na);
-        memset(addr, 0, pna * 4);
-        dt_dprintk("DT: empty ranges; 1:1 translation\n");
-        goto finish;
-    }
-
-    dt_dprintk("DT: walking ranges...\n");
-
-    /* Now walk through the ranges */
-    rlen /= 4;
-    rone = na + pna + ns;
-    for ( ; rlen >= rone; rlen -= rone, ranges += rone )
-    {
-        offset = bus->map(addr, ranges, na, ns, pna);
-        if ( offset != DT_BAD_ADDR )
-            break;
-    }
-    if ( offset == DT_BAD_ADDR )
-    {
-        dt_dprintk("DT: not found !\n");
-        return 1;
-    }
-    memcpy(addr, ranges + na, 4 * pna);
-
-finish:
-    dt_dump_addr("DT: parent translation for:", addr, pna);
-    dt_dprintk("DT: with offset: %llx\n", (unsigned long long)offset);
-
-    /* Translate it into parent bus space */
-    return pbus->translate(addr, offset, pna);
-}
-
-/*
- * Translate an address from the device-tree into a CPU physical address,
- * this walks up the tree and applies the various bus mappings on the
- * way.
- *
- * Note: We consider that crossing any level with #size-cells == 0 to mean
- * that translation is impossible (that is we are not dealing with a value
- * that can be mapped to a cpu physical address). This is not really specified
- * that way, but this is traditionally the way IBM at least do things
- */
-static u64 __dt_translate_address(const struct dt_device_node *dev,
-                                  const __be32 *in_addr, const char *rprop)
-{
-    const struct dt_device_node *parent = NULL;
-    const struct dt_bus *bus, *pbus;
-    __be32 addr[DT_MAX_ADDR_CELLS];
-    int na, ns, pna, pns;
-    u64 result = DT_BAD_ADDR;
-
-    dt_dprintk("DT: ** translation for device %s **\n", dev->full_name);
-
-    /* Get parent & match bus type */
-    parent = dt_get_parent(dev);
-    if ( parent == NULL )
-        goto bail;
-    bus = dt_match_bus(parent);
-    if ( !bus )
-        goto bail;
-
-    /* Count address cells & copy address locally */
-    bus->count_cells(dev, &na, &ns);
-    if ( !DT_CHECK_COUNTS(na, ns) )
-    {
-        printk(XENLOG_ERR "dt_parse: Bad cell count for device %s\n",
-                  dev->full_name);
-        goto bail;
-    }
-    memcpy(addr, in_addr, na * 4);
-
-    dt_dprintk("DT: bus is %s (na=%d, ns=%d) on %s\n",
-               bus->name, na, ns, parent->full_name);
-    dt_dump_addr("DT: translating address:", addr, na);
-
-    /* Translate */
-    for ( ;; )
-    {
-        /* Switch to parent bus */
-        dev = parent;
-        parent = dt_get_parent(dev);
-
-        /* If root, we have finished */
-        if ( parent == NULL )
-        {
-            dt_dprintk("DT: reached root node\n");
-            result = dt_read_number(addr, na);
-            break;
-        }
-
-        /* Get new parent bus and counts */
-        pbus = dt_match_bus(parent);
-        if ( pbus == NULL )
-        {
-            printk("DT: %s is not a valid bus\n", parent->full_name);
-            break;
-        }
-        pbus->count_cells(dev, &pna, &pns);
-        if ( !DT_CHECK_COUNTS(pna, pns) )
-        {
-            printk(XENLOG_ERR "dt_parse: Bad cell count for parent %s\n",
-                   dev->full_name);
-            break;
-        }
-
-        dt_dprintk("DT: parent bus is %s (na=%d, ns=%d) on %s\n",
-                   pbus->name, pna, pns, parent->full_name);
-
-        /* Apply bus translation */
-        if ( dt_translate_one(dev, bus, pbus, addr, na, ns, pna, rprop) )
-            break;
-
-        /* Complete the move up one level */
-        na = pna;
-        ns = pns;
-        bus = pbus;
-
-        dt_dump_addr("DT: one level translation:", addr, na);
-    }
-
-bail:
-    return result;
-}
-
-/* dt_device_address - Translate device tree address and return it */
-int dt_device_get_address(const struct dt_device_node *dev, unsigned int index,
-                          u64 *addr, u64 *size)
-{
-    const __be32 *addrp;
-    unsigned int flags;
-
-    addrp = dt_get_address(dev, index, size, &flags);
-    if ( addrp == NULL )
-        return -EINVAL;
-
-    if ( !addr )
-        return -EINVAL;
-
-    *addr = __dt_translate_address(dev, addrp, "ranges");
-
-    if ( *addr == DT_BAD_ADDR )
-        return -EINVAL;
-
-    return 0;
-}
-
-int dt_device_get_paddr(const struct dt_device_node *dev, unsigned int index,
-                        paddr_t *addr, paddr_t *size)
-{
-    uint64_t dt_addr, dt_size;
-    int ret;
-
-    ret = dt_device_get_address(dev, index, &dt_addr, &dt_size);
-    if ( ret )
-        return ret;
-
-    if ( !addr )
-        return -EINVAL;
-
-    if ( dt_addr != (paddr_t)dt_addr )
-    {
-        printk("Error: Physical address 0x%"PRIx64" for node=%s is greater than max width (%zu bytes) supported\n",
-               dt_addr, dev->name, sizeof(paddr_t));
-        return -ERANGE;
-    }
-
-    *addr = dt_addr;
-
-    if ( size )
-    {
-        if ( dt_size != (paddr_t)dt_size )
-        {
-            printk("Error: Physical size 0x%"PRIx64" for node=%s is greater than max width (%zu bytes) supported\n",
-                   dt_size, dev->name, sizeof(paddr_t));
-            return -ERANGE;
-        }
-
-        *size = dt_size;
-    }
-
-    return ret;
-}
-
-int dt_for_each_range(const struct dt_device_node *dev,
-                      int (*cb)(const struct dt_device_node *dev,
-                                uint64_t addr, uint64_t length,
-                                void *data),
-                      void *data)
-{
-    const struct dt_device_node *parent = NULL;
-    const struct dt_bus *bus, *pbus;
-    const __be32 *ranges;
-    __be32 addr[DT_MAX_ADDR_CELLS];
-    unsigned int rlen;
-    int na, ns, pna, pns, rone;
-
-    bus = dt_match_bus(dev);
-    if ( !bus )
-        return 0; /* device is not a bus */
-
-    parent = dt_get_parent(dev);
-    if ( parent == NULL )
-        return -EINVAL;
-
-    ranges = dt_get_property(dev, "ranges", &rlen);
-    if ( ranges == NULL )
-    {
-        printk(XENLOG_ERR "DT: no ranges; cannot enumerate %s\n",
-               dev->full_name);
-        return -EINVAL;
-    }
-    if ( rlen == 0 ) /* Nothing to do */
-        return 0;
-
-    bus->count_cells(dev, &na, &ns);
-    if ( !DT_CHECK_COUNTS(na, ns) )
-    {
-        printk(XENLOG_ERR "dt_parse: Bad cell count for device %s\n",
-                  dev->full_name);
-        return -EINVAL;
-    }
-
-    pbus = dt_match_bus(parent);
-    if ( pbus == NULL )
-    {
-        printk("DT: %s is not a valid bus\n", parent->full_name);
-        return -EINVAL;
-    }
-
-    pbus->count_cells(dev, &pna, &pns);
-    if ( !DT_CHECK_COUNTS(pna, pns) )
-    {
-        printk(XENLOG_ERR "dt_parse: Bad cell count for parent %s\n",
-               dev->full_name);
-        return -EINVAL;
-    }
-
-    /* Now walk through the ranges */
-    rlen /= 4;
-    rone = na + pna + ns;
-
-    dt_dprintk("%s: dev=%s, bus=%s, parent=%s, rlen=%d, rone=%d\n",
-               __func__,
-               dt_node_name(dev), bus->name,
-               dt_node_name(parent), rlen, rone);
-
-    for ( ; rlen >= rone; rlen -= rone, ranges += rone )
-    {
-        uint64_t a, s;
-        int ret;
-
-        memcpy(addr, ranges + na, 4 * pna);
-
-        a = __dt_translate_address(dev, addr, "ranges");
-        s = dt_read_number(ranges + na + pna, ns);
-
-        ret = cb(dev, a, s, data);
-        if ( ret )
-        {
-            dt_dprintk(" -> callback failed=%d\n", ret);
-            return ret;
-        }
-
-    }
-
-    return 0;
-}
-
-/**
- * dt_find_node_by_phandle - Find a node given a phandle
- * @handle: phandle of the node to find
- *
- * Returns a node pointer.
- */
-struct dt_device_node *dt_find_node_by_phandle(dt_phandle handle)
-{
-    struct dt_device_node *np;
-
-    dt_for_each_device_node(dt_host, np)
-        if ( np->phandle == handle )
-            break;
-
-    return np;
-}
-
-/**
- * dt_irq_find_parent - Given a device node, find its interrupt parent node
- * @child: pointer to device node
- *
- * Returns a pointer to the interrupt parent node, or NULL if the interrupt
- * parent could not be determined.
- */
-static const struct dt_device_node *
-dt_irq_find_parent(const struct dt_device_node *child)
-{
-    const struct dt_device_node *p;
-    const __be32 *parp;
-
-    do
-    {
-        parp = dt_get_property(child, "interrupt-parent", NULL);
-        if ( parp == NULL )
-            p = dt_get_parent(child);
-        else
-            p = dt_find_node_by_phandle(be32_to_cpup(parp));
-        child = p;
-    } while ( p && dt_get_property(p, "#interrupt-cells", NULL) == NULL );
-
-    return p;
-}
-
-unsigned int dt_number_of_irq(const struct dt_device_node *device)
-{
-    const struct dt_device_node *p;
-    const __be32 *intspec, *tmp;
-    u32 intsize, intlen;
-    int intnum;
-
-    dt_dprintk("dt_irq_number: dev=%s\n", device->full_name);
-
-    /* Try the new-style interrupts-extended first */
-    intnum = dt_count_phandle_with_args(device, "interrupts-extended",
-                                        "#interrupt-cells");
-    if ( intnum >= 0 )
-    {
-        dt_dprintk(" using 'interrupts-extended' property\n");
-        dt_dprintk(" intnum=%d\n", intnum);
-        return intnum;
-    }
-
-    /* Get the interrupts property */
-    intspec = dt_get_property(device, "interrupts", &intlen);
-    if ( intspec == NULL )
-        return 0;
-    intlen /= sizeof(*intspec);
-
-    dt_dprintk(" using 'interrupts' property\n");
-    dt_dprintk(" intspec=%d intlen=%d\n", be32_to_cpup(intspec), intlen);
-
-    /* Look for the interrupt parent. */
-    p = dt_irq_find_parent(device);
-    if ( p == NULL )
-        return 0;
-
-    /* Get size of interrupt specifier */
-    tmp = dt_get_property(p, "#interrupt-cells", NULL);
-    if ( tmp == NULL )
-        return 0;
-    intsize = be32_to_cpu(*tmp);
-
-    dt_dprintk(" intsize=%d intlen=%d\n", intsize, intlen);
-
-    return (intlen / intsize);
-}
-
-unsigned int dt_number_of_address(const struct dt_device_node *dev)
-{
-    const __be32 *prop;
-    u32 psize;
-    const struct dt_device_node *parent;
-    const struct dt_bus *bus;
-    int onesize, na, ns;
-
-    /* Get parent & match bus type */
-    parent = dt_get_parent(dev);
-    if ( parent == NULL )
-        return 0;
-
-    bus = dt_match_bus(parent);
-    if ( !bus )
-        return 0;
-    bus->count_cells(dev, &na, &ns);
-
-    if ( !DT_CHECK_COUNTS(na, ns) )
-        return 0;
-
-    /* Get "reg" or "assigned-addresses" property */
-    prop = dt_get_property(dev, bus->addresses, &psize);
-    if ( prop == NULL )
-        return 0;
-
-    psize /= 4;
-    onesize = na + ns;
-
-    return (psize / onesize);
-}
-
-int dt_for_each_irq_map(const struct dt_device_node *dev,
-                        int (*cb)(const struct dt_device_node *dev,
-                                  const struct dt_irq *dt_irq,
-                                  void *data),
-                        void *data)
-{
-    const struct dt_device_node *ipar, *tnode, *old = NULL;
-    const __be32 *tmp, *imap;
-    u32 intsize = 1, addrsize, pintsize = 0, paddrsize = 0;
-    u32 imaplen;
-    int i, ret;
-
-    struct dt_raw_irq dt_raw_irq;
-    struct dt_irq dt_irq;
-
-    dt_dprintk("%s: par=%s cb=%p data=%p\n", __func__,
-               dev->full_name, cb, data);
-
-    ipar = dev;
-
-    /* First get the #interrupt-cells property of the current cursor
-     * that tells us how to interpret the passed-in intspec. If there
-     * is none, we are nice and just walk up the tree
-     */
-    do {
-        tmp = dt_get_property(ipar, "#interrupt-cells", NULL);
-        if ( tmp != NULL )
-        {
-            intsize = be32_to_cpu(*tmp);
-            break;
-        }
-        tnode = ipar;
-        ipar = dt_irq_find_parent(ipar);
-    } while ( ipar );
-    if ( ipar == NULL )
-    {
-        dt_dprintk(" -> no parent found !\n");
-        goto fail;
-    }
-
-    dt_dprintk("%s: ipar=%s, size=%d\n", __func__, ipar->full_name, intsize);
-
-    if ( intsize > DT_MAX_IRQ_SPEC )
-    {
-        dt_dprintk(" -> too many irq specifier cells\n");
-        goto fail;
-    }
-
-    /* Look for this #address-cells. We have to implement the old linux
-     * trick of looking for the parent here as some device-trees rely on it
-     */
-    old = ipar;
-    do {
-        tmp = dt_get_property(old, "#address-cells", NULL);
-        tnode = dt_get_parent(old);
-        old = tnode;
-    } while ( old && tmp == NULL );
-
-    old = NULL;
-    addrsize = (tmp == NULL) ? 2 : be32_to_cpu(*tmp);
-
-    dt_dprintk(" -> addrsize=%d\n", addrsize);
-
-    /* Now look for an interrupt-map */
-    imap = dt_get_property(dev, "interrupt-map", &imaplen);
-    /* No interrupt-map found. Ignore */
-    if ( imap == NULL )
-    {
-        dt_dprintk(" -> no map, ignoring\n");
-        return 0;
-    }
-    imaplen /= sizeof(u32);
-
-    /* Parse interrupt-map */
-    while ( imaplen > (addrsize + intsize + 1) )
-    {
-        /* skip child unit address and child interrupt specifier */
-        imap += addrsize + intsize;
-        imaplen -= addrsize + intsize;
-
-        /* Get the interrupt parent */
-        ipar = dt_find_node_by_phandle(be32_to_cpup(imap));
-        imap++;
-        --imaplen;
-
-        /* Check if not found */
-        if ( ipar == NULL )
-        {
-            dt_dprintk(" -> imap parent not found !\n");
-            goto fail;
-        }
-
-        dt_dprintk(" -> ipar %s\n", dt_node_name(ipar));
-
-        /* Get #interrupt-cells and #address-cells of new
-         * parent
-         */
-        tmp = dt_get_property(ipar, "#interrupt-cells", NULL);
-        if ( tmp == NULL )
-        {
-            dt_dprintk(" -> parent lacks #interrupt-cells!\n");
-            goto fail;
-        }
-        pintsize = be32_to_cpu(*tmp);
-        tmp = dt_get_property(ipar, "#address-cells", NULL);
-        paddrsize = (tmp == NULL) ? 0 : be32_to_cpu(*tmp);
-
-        dt_dprintk(" -> pintsize=%d, paddrsize=%d\n",
-                   pintsize, paddrsize);
-
-        if ( pintsize > DT_MAX_IRQ_SPEC )
-        {
-            dt_dprintk(" -> too many irq specifier cells in parent\n");
-            goto fail;
-        }
-
-        /* Check for malformed properties */
-        if ( imaplen < (paddrsize + pintsize) )
-            goto fail;
-
-        imap += paddrsize;
-        imaplen -= paddrsize;
-
-        dt_raw_irq.controller = ipar;
-        dt_raw_irq.size = pintsize;
-        for ( i = 0; i < pintsize; i++ )
-            dt_raw_irq.specifier[i] = dt_read_number(imap + i, 1);
-
-        if ( dt_raw_irq.controller != dt_interrupt_controller )
-        {
-            /*
-             * We don't map IRQs connected to secondary IRQ controllers as
-             * these IRQs have no meaning to us until they connect to the
-             * primary controller.
-             *
-             * Secondary IRQ controllers will at some point connect to
-             * the primary controller (possibly via other IRQ controllers).
-             * We map the IRQs at that last connection point.
-             */
-            imap += pintsize;
-            imaplen -= pintsize;
-            dt_dprintk(" -> Skipped IRQ for secondary IRQ controller\n");
-            continue;
-        }
-
-        ret = dt_irq_translate(&dt_raw_irq, &dt_irq);
-        if ( ret )
-        {
-            dt_dprintk(" -> failed to translate IRQ: %d\n", ret);
-            return ret;
-        }
-
-        ret = cb(dev, &dt_irq, data);
-        if ( ret )
-        {
-            dt_dprintk(" -> callback failed=%d\n", ret);
-            return ret;
-        }
-
-        imap += pintsize;
-        imaplen -= pintsize;
-
-        dt_dprintk(" -> imaplen=%d\n", imaplen);
-    }
-
-    return 0;
-
-fail:
-    return -EINVAL;
-}
-
-/**
- * dt_irq_map_raw - Low level interrupt tree parsing
- * @parent:     the device interrupt parent
- * @intspec:    interrupt specifier ("interrupts" property of the device)
- * @ointsize:   size of the passed in interrupt specifier
- * @addr:       address specifier (start of "reg" property of the device)
- * @oirq:       structure dt_raw_irq filled by this function
- *
- * Returns 0 on success and a negative number on error
- *
- * This function is a low-level interrupt tree walking function. It
- * can be used to do a partial walk with synthesized reg and interrupts
- * properties, for example when resolving PCI interrupts when no device
- * node exist for the parent.
- */
-static int dt_irq_map_raw(const struct dt_device_node *parent,
-                          const __be32 *intspec, u32 ointsize,
-                          const __be32 *addr,
-                          struct dt_raw_irq *oirq)
-{
-    const struct dt_device_node *ipar, *tnode, *old = NULL, *newpar = NULL;
-    const __be32 *tmp, *imap, *imask;
-    u32 intsize = 1, addrsize, newintsize = 0, newaddrsize = 0;
-    u32 imaplen;
-    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);
-
-    ipar = parent;
-
-    /* First get the #interrupt-cells property of the current cursor
-     * that tells us how to interpret the passed-in intspec. If there
-     * is none, we are nice and just walk up the tree
-     */
-    do {
-        tmp = dt_get_property(ipar, "#interrupt-cells", NULL);
-        if ( tmp != NULL )
-        {
-            intsize = be32_to_cpu(*tmp);
-            break;
-        }
-        tnode = ipar;
-        ipar = dt_irq_find_parent(ipar);
-    } while ( ipar );
-    if ( ipar == NULL )
-    {
-        dt_dprintk(" -> no parent found !\n");
-        goto fail;
-    }
-
-    dt_dprintk("dt_irq_map_raw: ipar=%s, size=%d\n", ipar->full_name, intsize);
-
-    if ( ointsize != intsize )
-        return -EINVAL;
-
-    /* Look for this #address-cells. We have to implement the old linux
-     * trick of looking for the parent here as some device-trees rely on it
-     */
-    old = ipar;
-    do {
-        tmp = dt_get_property(old, "#address-cells", NULL);
-        tnode = dt_get_parent(old);
-        old = tnode;
-    } while ( old && tmp == NULL );
-
-    old = NULL;
-    addrsize = (tmp == NULL) ? 2 : be32_to_cpu(*tmp);
-
-    dt_dprintk(" -> addrsize=%d\n", addrsize);
-
-    /* Now start the actual "proper" walk of the interrupt tree */
-    while ( ipar != NULL )
-    {
-        /* Now check if cursor is an interrupt-controller and if it is
-         * then we are done
-         */
-        if ( dt_get_property(ipar, "interrupt-controller", NULL) != NULL )
-        {
-            dt_dprintk(" -> got it !\n");
-            if ( intsize > DT_MAX_IRQ_SPEC )
-            {
-                dt_dprintk(" -> intsize(%u) greater than DT_MAX_IRQ_SPEC(%u)\n",
-                           intsize, DT_MAX_IRQ_SPEC);
-                goto fail;
-            }
-            for ( i = 0; i < intsize; i++ )
-                oirq->specifier[i] = dt_read_number(intspec + i, 1);
-            oirq->size = intsize;
-            oirq->controller = ipar;
-            return 0;
-        }
-
-        /* Now look for an interrupt-map */
-        imap = dt_get_property(ipar, "interrupt-map", &imaplen);
-        /* No interrupt map, check for an interrupt parent */
-        if ( imap == NULL )
-        {
-            dt_dprintk(" -> no map, getting parent\n");
-            newpar = dt_irq_find_parent(ipar);
-            goto skiplevel;
-        }
-        imaplen /= sizeof(u32);
-
-        /* Look for a mask */
-        imask = dt_get_property(ipar, "interrupt-map-mask", NULL);
-
-        /* If we were passed no "reg" property and we attempt to parse
-         * an interrupt-map, then #address-cells must be 0.
-         * Fail if it's not.
-         */
-        if ( addr == NULL && addrsize != 0 )
-        {
-            dt_dprintk(" -> no reg passed in when needed !\n");
-            goto fail;
-        }
-
-        /* Parse interrupt-map */
-        match = 0;
-        while ( imaplen > (addrsize + intsize + 1) && !match )
-        {
-            /* Compare specifiers */
-            match = 1;
-            for ( i = 0; i < addrsize && match; ++i )
-            {
-                __be32 mask = imask ? imask[i] : cpu_to_be32(0xffffffffu);
-                match = ((addr[i] ^ imap[i]) & mask) == 0;
-            }
-            for ( ; i < (addrsize + intsize) && match; ++i )
-            {
-                __be32 mask = imask ? imask[i] : cpu_to_be32(0xffffffffu);
-                match = ((intspec[i-addrsize] ^ imap[i]) & mask) == 0;
-            }
-            imap += addrsize + intsize;
-            imaplen -= addrsize + intsize;
-
-            dt_dprintk(" -> match=%d (imaplen=%d)\n", match, imaplen);
-
-            /* Get the interrupt parent */
-            newpar = dt_find_node_by_phandle(be32_to_cpup(imap));
-            imap++;
-            --imaplen;
-
-            /* Check if not found */
-            if ( newpar == NULL )
-            {
-                dt_dprintk(" -> imap parent not found !\n");
-                goto fail;
-            }
-
-            /* Get #interrupt-cells and #address-cells of new
-             * parent
-             */
-            tmp = dt_get_property(newpar, "#interrupt-cells", NULL);
-            if ( tmp == NULL )
-            {
-                dt_dprintk(" -> parent lacks #interrupt-cells!\n");
-                goto fail;
-            }
-            newintsize = be32_to_cpu(*tmp);
-            tmp = dt_get_property(newpar, "#address-cells", NULL);
-            newaddrsize = (tmp == NULL) ? 0 : be32_to_cpu(*tmp);
-
-            dt_dprintk(" -> newintsize=%d, newaddrsize=%d\n",
-                       newintsize, newaddrsize);
-
-            /* Check for malformed properties */
-            if ( imaplen < (newaddrsize + newintsize) )
-                goto fail;
-
-            imap += newaddrsize + newintsize;
-            imaplen -= newaddrsize + newintsize;
-
-            dt_dprintk(" -> imaplen=%d\n", imaplen);
-        }
-        if ( !match )
-            goto fail;
-
-        old = newpar;
-        addrsize = newaddrsize;
-        intsize = newintsize;
-        intspec = imap - intsize;
-        addr = intspec - addrsize;
-
-    skiplevel:
-        /* Iterate again with new parent */
-        dt_dprintk(" -> new parent: %s\n", dt_node_full_name(newpar));
-        ipar = newpar;
-        newpar = NULL;
-    }
-fail:
-    return -EINVAL;
-}
-
-int dt_device_get_raw_irq(const struct dt_device_node *device,
-                          unsigned int index,
-                          struct dt_raw_irq *out_irq)
-{
-    const struct dt_device_node *p;
-    const __be32 *intspec, *tmp, *addr;
-    u32 intsize, intlen;
-    int res = -EINVAL;
-    struct dt_phandle_args args;
-    int i;
-
-    dt_dprintk("dt_device_get_raw_irq: dev=%s, index=%u\n",
-               device->full_name, index);
-
-    /* Get the reg property (if any) */
-    addr = dt_get_property(device, "reg", NULL);
-
-    /* Try the new-style interrupts-extended first */
-    res = dt_parse_phandle_with_args(device, "interrupts-extended",
-                                     "#interrupt-cells", index, &args);
-    if ( !res )
-    {
-        dt_dprintk(" using 'interrupts-extended' property\n");
-        dt_dprintk(" intspec=%d intsize=%d\n", args.args[0], args.args_count);
-
-        for ( i = 0; i < args.args_count; i++ )
-            args.args[i] = cpu_to_be32(args.args[i]);
-
-        return dt_irq_map_raw(args.np, args.args, args.args_count,
-                              addr, out_irq);
-    }
-
-    /* Get the interrupts property */
-    intspec = dt_get_property(device, "interrupts", &intlen);
-    if ( intspec == NULL )
-        return -EINVAL;
-    intlen /= sizeof(*intspec);
-
-    dt_dprintk(" using 'interrupts' property\n");
-    dt_dprintk(" intspec=%d intlen=%d\n", be32_to_cpup(intspec), intlen);
-
-    /* Look for the interrupt parent. */
-    p = dt_irq_find_parent(device);
-    if ( p == NULL )
-        return -EINVAL;
-
-    /* Get size of interrupt specifier */
-    tmp = dt_get_property(p, "#interrupt-cells", NULL);
-    if ( tmp == NULL )
-        goto out;
-    intsize = be32_to_cpu(*tmp);
-
-    dt_dprintk(" intsize=%d intlen=%d\n", intsize, intlen);
-
-    /* Check index */
-    if ( (index + 1) * intsize > intlen )
-        goto out;
-
-    /* Get new specifier and map it */
-    res = dt_irq_map_raw(p, intspec + index * intsize, intsize,
-                         addr, out_irq);
-    if ( res )
-        goto out;
-out:
-    return res;
-}
-
-int dt_irq_translate(const struct dt_raw_irq *raw,
-                     struct dt_irq *out_irq)
-{
-    ASSERT(dt_irq_xlate != NULL);
-    ASSERT(dt_interrupt_controller != NULL);
-
-    /*
-     * TODO: Retrieve the right irq_xlate. This is only works for the primary
-     * interrupt controller.
-     */
-    if ( raw->controller != dt_interrupt_controller )
-        return -EINVAL;
-
-    return dt_irq_xlate(raw->specifier, raw->size,
-                        &out_irq->irq, &out_irq->type);
-}
-
-int dt_device_get_irq(const struct dt_device_node *device, unsigned int index,
-                      struct dt_irq *out_irq)
-{
-    struct dt_raw_irq raw;
-    int res;
-
-    res = dt_device_get_raw_irq(device, index, &raw);
-
-    if ( res )
-        return res;
-
-    return dt_irq_translate(&raw, out_irq);
-}
-
-bool dt_device_is_available(const struct dt_device_node *device)
-{
-    const char *status;
-    u32 statlen;
-
-    status = dt_get_property(device, "status", &statlen);
-    if ( status == NULL )
-        return 1;
-
-    if ( statlen > 0 )
-    {
-        if ( !strcmp(status, "okay") || !strcmp(status, "ok") )
-            return 1;
-    }
-
-    return 0;
-}
-
-bool dt_device_for_passthrough(const struct dt_device_node *device)
-{
-    return (dt_find_property(device, "xen,passthrough", NULL) != NULL);
-
-}
-
-static int __dt_parse_phandle_with_args(const struct dt_device_node *np,
-                                        const char *list_name,
-                                        const char *cells_name,
-                                        int cell_count, int index,
-                                        struct dt_phandle_args *out_args)
-{
-    const __be32 *list, *list_end;
-    int rc = 0, cur_index = 0;
-    u32 size, count = 0;
-    struct dt_device_node *node = NULL;
-    dt_phandle phandle;
-
-    /* Retrieve the phandle list property */
-    list = dt_get_property(np, list_name, &size);
-    if ( !list )
-        return -ENOENT;
-    list_end = list + size / sizeof(*list);
-
-    /* Loop over the phandles until all the requested entry is found */
-    while ( list < list_end )
-    {
-        rc = -EINVAL;
-        count = 0;
-
-        /*
-         * If phandle is 0, then it is an empty entry with no
-         * arguments.  Skip forward to the next entry.
-         * */
-        phandle = be32_to_cpup(list++);
-        if ( phandle )
-        {
-            /*
-             * Find the provider node and parse the #*-cells
-             * property to determine the argument length.
-             *
-             * This is not needed if the cell count is hard-coded
-             * (i.e. cells_name not set, but cell_count is set),
-             * except when we're going to return the found node
-             * below.
-             */
-            if ( cells_name || cur_index == index )
-            {
-                node = dt_find_node_by_phandle(phandle);
-                if ( !node )
-                {
-                    printk(XENLOG_ERR "%s: could not find phandle\n",
-                           np->full_name);
-                    goto err;
-                }
-            }
-
-            if ( cells_name )
-            {
-                if ( !dt_property_read_u32(node, cells_name, &count) )
-                {
-                    printk("%s: could not get %s for %s\n",
-                           np->full_name, cells_name, node->full_name);
-                    goto err;
-                }
-            }
-            else
-                count = cell_count;
-
-            /*
-             * Make sure that the arguments actually fit in the
-             * remaining property data length
-             */
-            if ( list + count > list_end )
-            {
-                printk(XENLOG_ERR "%s: arguments longer than property\n",
-                       np->full_name);
-                goto err;
-            }
-        }
-
-        /*
-         * All of the error cases above bail out of the loop, so at
-         * this point, the parsing is successful. If the requested
-         * index matches, then fill the out_args structure and return,
-         * or return -ENOENT for an empty entry.
-         */
-        rc = -ENOENT;
-        if ( cur_index == index )
-        {
-            if (!phandle)
-                goto err;
-
-            if ( out_args )
-            {
-                int i;
-
-                WARN_ON(count > MAX_PHANDLE_ARGS);
-                if (count > MAX_PHANDLE_ARGS)
-                    count = MAX_PHANDLE_ARGS;
-                out_args->np = node;
-                out_args->args_count = count;
-                for ( i = 0; i < count; i++ )
-                    out_args->args[i] = be32_to_cpup(list++);
-            }
-
-            /* Found it! return success */
-            return 0;
-        }
-
-        node = NULL;
-        list += count;
-        cur_index++;
-    }
-
-    /*
-     * Returning result will be one of:
-     * -ENOENT : index is for empty phandle
-     * -EINVAL : parsing error on data
-     * [1..n]  : Number of phandle (count mode; when index = -1)
-     */
-    rc = index < 0 ? cur_index : -ENOENT;
-err:
-    return rc;
-}
-
-struct dt_device_node *dt_parse_phandle(const struct dt_device_node *np,
-                                        const char *phandle_name, int index)
-{
-    struct dt_phandle_args args;
-
-    if (index < 0)
-        return NULL;
-
-    if (__dt_parse_phandle_with_args(np, phandle_name, NULL, 0,
-                                     index, &args))
-        return NULL;
-
-    return args.np;
-}
-
-
-int dt_parse_phandle_with_args(const struct dt_device_node *np,
-                               const char *list_name,
-                               const char *cells_name, int index,
-                               struct dt_phandle_args *out_args)
-{
-    if ( index < 0 )
-        return -EINVAL;
-    return __dt_parse_phandle_with_args(np, list_name, cells_name, 0,
-                                        index, out_args);
-}
-
-int dt_count_phandle_with_args(const struct dt_device_node *np,
-                               const char *list_name,
-                               const char *cells_name)
-{
-    return __dt_parse_phandle_with_args(np, list_name, cells_name, 0, -1, NULL);
-}
-
-/**
- * unflatten_dt_node - Alloc and populate a device_node from the flat tree
- * @fdt: The parent device tree blob
- * @mem: Memory chunk to use for allocating device nodes and properties
- * @p: pointer to node in flat tree
- * @dad: Parent struct device_node
- * @allnextpp: pointer to ->allnext from last allocated device_node
- * @fpsize: Size of the node path up at the current depth.
- */
-static unsigned long unflatten_dt_node(const void *fdt,
-                                       unsigned long mem,
-                                       unsigned long *p,
-                                       struct dt_device_node *dad,
-                                       struct dt_device_node ***allnextpp,
-                                       unsigned long fpsize)
-{
-    struct dt_device_node *np;
-    struct dt_property *pp, **prev_pp = NULL;
-    char *pathp;
-    u32 tag;
-    unsigned int l, allocl;
-    int has_name = 0;
-    int new_format = 0;
-
-    tag = be32_to_cpup((__be32 *)(*p));
-    if ( tag != FDT_BEGIN_NODE )
-    {
-        printk(XENLOG_WARNING "Weird tag at start of node: %x\n", tag);
-        return mem;
-    }
-    *p += 4;
-    pathp = (char *)*p;
-    l = allocl = strlen(pathp) + 1;
-    *p = ROUNDUP(*p + l, 4);
-
-    /* version 0x10 has a more compact unit name here instead of the full
-     * path. we accumulate the full path size using "fpsize", we'll rebuild
-     * it later. We detect this because the first character of the name is
-     * not '/'.
-     */
-    if ( (*pathp) != '/' )
-    {
-        new_format = 1;
-        if ( fpsize == 0 )
-        {
-            /* root node: special case. fpsize accounts for path
-             * plus terminating zero. root node only has '/', so
-             * fpsize should be 2, but we want to avoid the first
-             * level nodes to have two '/' so we use fpsize 1 here
-             */
-            fpsize = 1;
-            allocl = 2;
-        }
-        else
-        {
-            /* account for '/' and path size minus terminal 0
-             * already in 'l'
-             */
-            fpsize += l;
-            allocl = fpsize;
-        }
-    }
-
-    np = unflatten_dt_alloc(&mem, sizeof(struct dt_device_node) + allocl,
-                            __alignof__(struct dt_device_node));
-    if ( allnextpp )
-    {
-        memset(np, 0, sizeof(*np));
-        np->full_name = ((char *)np) + sizeof(struct dt_device_node);
-        /* By default dom0 owns the device */
-        np->used_by = 0;
-        /* By default the device is not protected */
-        np->is_protected = false;
-        INIT_LIST_HEAD(&np->domain_list);
-
-        if ( new_format )
-        {
-            char *fn = np->full_name;
-            /* rebuild full path for new format */
-            if ( dad && dad->parent )
-            {
-                strlcpy(fn, dad->full_name, allocl);
-#ifdef DEBUG_DT
-                if ( (strlen(fn) + l + 1) != allocl )
-                {
-                    dt_dprintk("%s: p: %d, l: %d, a: %d\n",
-                               pathp, (int)strlen(fn),
-                               l, allocl);
-                }
-#endif
-                fn += strlen(fn);
-            }
-            *(fn++) = '/';
-            memcpy(fn, pathp, l);
-        }
-        else
-            memcpy(np->full_name, pathp, l);
-        prev_pp = &np->properties;
-        **allnextpp = np;
-        *allnextpp = &np->allnext;
-        if ( dad != NULL )
-        {
-            np->parent = dad;
-            /* we temporarily use the next field as `last_child'*/
-            if ( dad->next == NULL )
-                dad->child = np;
-            else
-                dad->next->sibling = np;
-            dad->next = np;
-        }
-    }
-    /* process properties */
-    while ( 1 )
-    {
-        u32 sz, noff;
-        const char *pname;
-
-        tag = be32_to_cpup((__be32 *)(*p));
-        if ( tag == FDT_NOP )
-        {
-            *p += 4;
-            continue;
-        }
-        if ( tag != FDT_PROP )
-            break;
-        *p += 4;
-        sz = be32_to_cpup((__be32 *)(*p));
-        noff = be32_to_cpup((__be32 *)((*p) + 4));
-        *p += 8;
-        if ( fdt_version(fdt) < 0x10 )
-            *p = ROUNDUP(*p, sz >= 8 ? 8 : 4);
-
-        pname = fdt_string(fdt, noff);
-        if ( pname == NULL )
-        {
-            dt_dprintk("Can't find property name in list!\n");
-            break;
-        }
-        if ( strcmp(pname, "name") == 0 )
-            has_name = 1;
-        l = strlen(pname) + 1;
-        pp = unflatten_dt_alloc(&mem, sizeof(struct dt_property),
-                                __alignof__(struct dt_property));
-        if ( allnextpp )
-        {
-            /* We accept flattened tree phandles either in
-             * ePAPR-style "phandle" properties, or the
-             * legacy "linux,phandle" properties.  If both
-             * appear and have different values, things
-             * will get weird.  Don't do that. */
-            if ( (strcmp(pname, "phandle") == 0) ||
-                 (strcmp(pname, "linux,phandle") == 0) )
-            {
-                if ( np->phandle == 0 )
-                    np->phandle = be32_to_cpup((__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);
-            pp->name = pname;
-            pp->length = sz;
-            pp->value = (void *)*p;
-            *prev_pp = pp;
-            prev_pp = &pp->next;
-        }
-        *p = ROUNDUP((*p) + sz, 4);
-    }
-    /* with version 0x10 we may not have the name property, recreate
-     * it here from the unit name if absent
-     */
-    if ( !has_name )
-    {
-        char *p1 = pathp, *ps = pathp, *pa = NULL;
-        int sz;
-
-        while ( *p1 )
-        {
-            if ( (*p1) == '@' )
-                pa = p1;
-            if ( (*p1) == '/' )
-                ps = p1 + 1;
-            p1++;
-        }
-        if ( pa < ps )
-            pa = p1;
-        sz = (pa - ps) + 1;
-        pp = unflatten_dt_alloc(&mem, sizeof(struct dt_property) + sz,
-                                __alignof__(struct dt_property));
-        if ( allnextpp )
-        {
-            pp->name = "name";
-            pp->length = sz;
-            pp->value = pp + 1;
-            /*
-             * The device tree creation code assume that the property
-             * "name" is not a fake.
-             * To avoid a big divergence with Linux code, only remove
-             * property link. In this case we will lose a bit of memory
-             */
-#if 0
-            *prev_pp = pp;
-            prev_pp = &pp->next;
-#endif
-            np->name = pp->value;
-            memcpy(pp->value, ps, sz - 1);
-            ((char *)pp->value)[sz - 1] = 0;
-            dt_dprintk("fixed up name for %s -> %s\n", pathp,
-                       (char *)pp->value);
-            /* Generic device initialization */
-            np->dev.type = DEV_DT;
-            np->dev.of_node = np;
-        }
-    }
-    if ( allnextpp )
-    {
-        *prev_pp = NULL;
-        np->name = (np->name) ? : dt_get_property(np, "name", NULL);
-        np->type = dt_get_property(np, "device_type", NULL);
-
-        if ( !np->name )
-            np->name = "<NULL>";
-        if ( !np->type )
-            np->type = "<NULL>";
-    }
-    while ( tag == FDT_BEGIN_NODE || tag == FDT_NOP )
-    {
-        if ( tag == FDT_NOP )
-            *p += 4;
-        else
-            mem = unflatten_dt_node(fdt, mem, p, np, allnextpp, fpsize);
-        tag = be32_to_cpup((__be32 *)(*p));
-    }
-    if ( tag != FDT_END_NODE )
-    {
-        printk(XENLOG_WARNING "Weird tag at end of node: %x\n", tag);
-        return mem;
-    }
-
-    *p += 4;
-    return mem;
-}
-
-int unflatten_device_tree(const void *fdt, struct dt_device_node **mynodes)
-{
-    unsigned long start, mem, size;
-    struct dt_device_node **allnextp = mynodes;
-
-    dt_dprintk(" -> unflatten_device_tree()\n");
-
-    dt_dprintk("Unflattening device tree:\n");
-    dt_dprintk("magic: %#08x\n", fdt_magic(fdt));
-    dt_dprintk("size: %#08x\n", fdt_totalsize(fdt));
-    dt_dprintk("version: %#08x\n", fdt_version(fdt));
-
-    /* First pass, scan for size */
-    start = ((unsigned long)fdt) + fdt_off_dt_struct(fdt);
-    size = unflatten_dt_node(fdt, 0, &start, NULL, NULL, 0);
-    if ( !size )
-        return -EINVAL;
-
-    size = (size | 3) + 1;
-
-    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));
-    if ( !mem )
-        return -ENOMEM;
-
-    ((__be32 *)mem)[size / 4] = cpu_to_be32(0xdeadbeefU);
-
-    dt_dprintk("  unflattening %lx...\n", mem);
-
-    /* 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 )
-    {
-        printk(XENLOG_ERR "Weird tag at end of tree: %08x\n",
-                  *((u32 *)start));
-        xfree((void *)mem);
-        return -EINVAL;
-    }
-
-    if ( be32_to_cpu(((__be32 *)mem)[size / 4]) != 0xdeadbeefU )
-    {
-        printk(XENLOG_ERR "End of tree marker overwritten: %08x\n",
-                  be32_to_cpu(((__be32 *)mem)[size / 4]));
-        xfree((void *)mem);
-        return -EINVAL;
-    }
-
-    *allnextp = NULL;
-
-    dt_dprintk(" <- unflatten_device_tree()\n");
-
-    return 0;
-}
-
-static void dt_alias_add(struct dt_alias_prop *ap,
-                         struct dt_device_node *np,
-                         int id, const char *stem, int stem_len)
-{
-    ap->np = np;
-    ap->id = id;
-    strlcpy(ap->stem, stem, stem_len + 1);
-    list_add_tail(&ap->link, &aliases_lookup);
-    dt_dprintk("adding DT alias:%s: stem=%s id=%d node=%s\n",
-               ap->alias, ap->stem, ap->id, dt_node_full_name(np));
-}
-
-/**
- * dt_alias_scan - Scan all properties of 'aliases' node
- *
- * The function scans all the properties of 'aliases' node and populate
- * the the global lookup table with the properties.  It returns the
- * number of alias_prop found, or error code in error case.
- */
-static void __init dt_alias_scan(void)
-{
-    const struct dt_property *pp;
-    const struct dt_device_node *aliases;
-
-    aliases = dt_find_node_by_path("/aliases");
-    if ( !aliases )
-        return;
-
-    dt_for_each_property_node( aliases, pp )
-    {
-        const char *start = pp->name;
-        const char *end = start + strlen(start);
-        struct dt_device_node *np;
-        struct dt_alias_prop *ap;
-        int id, len;
-
-        /* Skip those we do not want to proceed */
-        if ( !strcmp(pp->name, "name") ||
-             !strcmp(pp->name, "phandle") ||
-             !strcmp(pp->name, "linux,phandle") )
-            continue;
-
-        np = dt_find_node_by_path(pp->value);
-        if ( !np )
-            continue;
-
-        /* walk the alias backwards to extract the id and work out
-         * the 'stem' string */
-        while ( isdigit(*(end-1)) && end > start )
-            end--;
-        len = end - start;
-
-        id = simple_strtoll(end, NULL, 10);
-
-        /* Allocate an alias_prop with enough space for the stem */
-        ap = _xmalloc(sizeof(*ap) + len + 1, 4);
-        if ( !ap )
-            continue;
-        ap->alias = start;
-        dt_alias_add(ap, np, id, start, len);
-    }
-}
-
-struct dt_device_node * __init
-dt_find_interrupt_controller(const struct dt_device_match *matches)
-{
-    struct dt_device_node *np = NULL;
-
-    while ( (np = dt_find_matching_node(np, matches)) )
-    {
-        if ( !dt_find_property(np, "interrupt-controller", NULL) )
-            continue;
-
-        if ( dt_get_parent(np) )
-            break;
-    }
-
-    return np;
-}
-
-void __init dt_unflatten_host_device_tree(void)
-{
-    int error = unflatten_device_tree(device_tree_flattened, &dt_host);
-
-    if ( error )
-        panic("unflatten_device_tree failed with error %d\n", error);
-
-    dt_alias_scan();
-}
-
-int dt_get_pci_domain_nr(struct dt_device_node *node)
-{
-    u32 domain;
-    int error;
-
-    error = dt_property_read_u32(node, "linux,pci-domain", &domain);
-    if ( !error )
-        return -EINVAL;
-
-    return (u16)domain;
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
new file mode 100644
index 0000000000..c39428d5f5
--- /dev/null
+++ b/xen/include/xen/bootfdt.h
@@ -0,0 +1,195 @@
+#ifndef XEN_BOOTFDT_H
+#define XEN_BOOTFDT_H
+
+#include <xen/types.h>
+#include <xen/kernel.h>
+#include <xen/macros.h>
+
+#define MIN_FDT_ALIGN 8
+
+#define NR_MEM_BANKS 256
+#define NR_SHMEM_BANKS 32
+
+#define MAX_MODULES 32 /* Current maximum useful modules */
+
+typedef enum {
+    BOOTMOD_XEN,
+    BOOTMOD_FDT,
+    BOOTMOD_KERNEL,
+    BOOTMOD_RAMDISK,
+    BOOTMOD_XSM,
+    BOOTMOD_GUEST_DTB,
+    BOOTMOD_UNKNOWN
+}  bootmodule_kind;
+
+enum membank_type {
+    /*
+     * The MEMBANK_DEFAULT type refers to either reserved memory for the
+     * device/firmware (when the bank is in 'reserved_mem') or any RAM (when
+     * the bank is in 'mem').
+     */
+    MEMBANK_DEFAULT,
+    /*
+     * The MEMBANK_STATIC_DOMAIN type is used to indicate whether the memory
+     * bank is bound to a static Xen domain. It is only valid when the bank
+     * is in reserved_mem.
+     */
+    MEMBANK_STATIC_DOMAIN,
+    /*
+     * The MEMBANK_STATIC_HEAP type is used to indicate whether the memory
+     * bank is reserved as static heap. It is only valid when the bank is
+     * in reserved_mem.
+     */
+    MEMBANK_STATIC_HEAP,
+    /*
+     * The MEMBANK_FDT_RESVMEM type is used to indicate whether the memory
+     * bank is from the FDT reserve map.
+     */
+    MEMBANK_FDT_RESVMEM,
+};
+
+/* Indicates the maximum number of characters(\0 included) for shm_id */
+#define MAX_SHM_ID_LENGTH 16
+
+struct shmem_membank_extra {
+    char shm_id[MAX_SHM_ID_LENGTH];
+    unsigned int nr_shm_borrowers;
+};
+
+struct membank {
+    paddr_t start;
+    paddr_t size;
+    union {
+        enum membank_type type;
+#ifdef CONFIG_STATIC_SHM
+        struct shmem_membank_extra *shmem_extra;
+#endif
+    };
+};
+
+struct membanks {
+    __struct_group(membanks_hdr, common, ,
+        unsigned int nr_banks;
+        unsigned int max_banks;
+    );
+    struct membank bank[];
+};
+
+struct meminfo {
+    struct membanks_hdr common;
+    struct membank bank[NR_MEM_BANKS];
+};
+
+struct shared_meminfo {
+    struct membanks_hdr common;
+    struct membank bank[NR_SHMEM_BANKS];
+    struct shmem_membank_extra extra[NR_SHMEM_BANKS];
+};
+
+/*
+ * The domU flag is set for kernels and ramdisks of "xen,domain" nodes.
+ * The purpose of the domU flag is to avoid getting confused in
+ * kernel_probe, where we try to guess which is the dom0 kernel and
+ * initrd to be compatible with all versions of the multiboot spec.
+ */
+#define BOOTMOD_MAX_CMDLINE 1024
+struct bootmodule {
+    bootmodule_kind kind;
+    bool domU;
+    paddr_t start;
+    paddr_t size;
+};
+
+/* DT_MAX_NAME is the node name max length according the DT spec */
+#define DT_MAX_NAME 41
+struct bootcmdline {
+    bootmodule_kind kind;
+    bool domU;
+    paddr_t start;
+    char dt_name[DT_MAX_NAME];
+    char cmdline[BOOTMOD_MAX_CMDLINE];
+};
+
+struct bootmodules {
+    int nr_mods;
+    struct bootmodule module[MAX_MODULES];
+};
+
+struct bootcmdlines {
+    unsigned int nr_mods;
+    struct bootcmdline cmdline[MAX_MODULES];
+};
+
+struct bootinfo {
+    struct meminfo mem;
+    /* The reserved regions are only used when booting using Device-Tree */
+    struct meminfo reserved_mem;
+    struct bootmodules modules;
+    struct bootcmdlines cmdlines;
+#ifdef CONFIG_ACPI
+    struct meminfo acpi;
+#endif
+#ifdef CONFIG_STATIC_SHM
+    struct shared_meminfo shmem;
+#endif
+    bool static_heap;
+};
+
+#ifdef CONFIG_ACPI
+#define BOOTINFO_ACPI_INIT .acpi.common.max_banks = NR_MEM_BANKS,
+#else
+#define BOOTINFO_ACPI_INIT
+#endif
+
+#ifdef CONFIG_STATIC_SHM
+#define BOOTINFO_SHMEM_INIT .shmem.common.max_banks = NR_SHMEM_BANKS,
+#else
+#define BOOTINFO_SHMEM_INIT
+#endif
+
+#define BOOTINFO_INIT                               \
+{                                                   \
+    .mem.common.max_banks = NR_MEM_BANKS,           \
+    .reserved_mem.common.max_banks = NR_MEM_BANKS,  \
+    BOOTINFO_ACPI_INIT                              \
+    BOOTINFO_SHMEM_INIT                             \
+}
+
+extern struct bootinfo bootinfo;
+
+void populate_boot_allocator(void);
+
+size_t boot_fdt_info(const void *fdt, paddr_t paddr);
+
+const char *boot_fdt_cmdline(const void *fdt);
+
+static inline struct membanks *bootinfo_get_reserved_mem(void)
+{
+    return container_of(&bootinfo.reserved_mem.common, struct membanks, common);
+}
+
+static inline struct membanks *bootinfo_get_mem(void)
+{
+    return container_of(&bootinfo.mem.common, struct membanks, common);
+}
+
+#ifdef CONFIG_ACPI
+static inline struct membanks *bootinfo_get_acpi(void)
+{
+    return container_of(&bootinfo.acpi.common, struct membanks, common);
+}
+#endif
+
+#ifdef CONFIG_STATIC_SHM
+static inline struct membanks *bootinfo_get_shmem(void)
+{
+    return container_of(&bootinfo.shmem.common, struct membanks, common);
+}
+
+static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void)
+{
+    return bootinfo.shmem.extra;
+}
+#endif
+
+#endif /* XEN_BOOTFDT_H */
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764293.1174737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdy5-0008Ap-K9; Wed, 24 Jul 2024 15:31:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764293.1174737; Wed, 24 Jul 2024 15:31: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 1sWdy5-00087U-AN; Wed, 24 Jul 2024 15:31:53 +0000
Received: by outflank-mailman (input) for mailman id 764293;
 Wed, 24 Jul 2024 15:31: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdy3-0005Od-KJ
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:51 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d81d47e1-49d1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:31:49 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2eefe705510so76141901fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:49 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef2b568858sm13237311fa.35.2024.07.24.08.31.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:31: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: d81d47e1-49d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835109; x=1722439909; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J5JfDcjOdJ3XraQIsEMUmJEphHgWVY7ZxFBh+8Ru7ag=;
        b=iRvZPcocC+w/FdK0I8LwGhnr8ofeVKtLyOTcCuXfJnEXHtG5Yo38dkUMp7R2bFPa+y
         DliwlVuexEAb4pkrNEtC6ObRmcPUE10pbRj5iFWm1PCsEZVoD669aKaJw44YI/YM4nAU
         sHWLGF0GweaSPPgTQ965oGmSyKECwBVckoiIPJe5uXMwqjaqNsnbQ32xn3Ur7DJRylXa
         MnmVeP8y8JZHuCD3mRB3FzKWCrvYAqWfJPyN8vdGp/LCYy9xk8xgJTCBTcBW6odHeXEh
         9R6UQ/LbwYovpDbZ463Xj247uf9RvwRyn9AOa+zP4RB0nGLlvRhmZXWz50iKZyX0RAlp
         GXtQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835109; x=1722439909;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=J5JfDcjOdJ3XraQIsEMUmJEphHgWVY7ZxFBh+8Ru7ag=;
        b=FtHtxfwZ2pbJULL9tb0FBnfW8wPDiZ8ZItKaKhX4n31cOUuODanJrMky16T/aXuQdG
         ZJcb4Yd/oGF5iaNyElqx2H93UIWQzBkQKxptUp4DtfN6RXcCClRNG4RWh5Y52o0rrrB7
         U8nL2mDKo+Osv9MgKbHEN+5oDXZJXPkbWqgr0VLx4RvRMY1YgnPgoqpIbQgmgtrix3mN
         4q6EM/8+teqHjiyOH3z6RlkXEmAcTScqyVKMQRjTW9+FUnoVVVpZcYgwqo0bhrGEGW5e
         E6aZean+gu8Xb9ckI8gcGm59oeAKuClZYy+uK5xDOBCz00L4q0M/p6pterUfmTAvhHli
         MCow==
X-Gm-Message-State: AOJu0YydUWrxeHeBcPGmHaEsmEEKiYbX6DXoOPpYMlDqnj/3T8vxAWQh
	gxbIs6CdRGc5K3vLf1tCzl85u+vjfG4LoeO9QNNUYTBq/n2eSDmGZGxSF2tb
X-Google-Smtp-Source: AGHT+IFiBgT3XwFsReTDHlEwUN/Jqa4gn0ffbAC+D7oyHWup6bKLbWzzuzfNPdDOsXX1Le1M97rjNw==
X-Received: by 2002:a2e:9dc2:0:b0:2ef:23ec:9356 with SMTP id 38308e7fff4ca-2f039c4e0cdmr1827781fa.8.1721835108566;
        Wed, 24 Jul 2024 08:31:48 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 4/9] xen/riscv: setup fixmap mapping
Date: Wed, 24 Jul 2024 17:31:35 +0200
Message-ID: <04576976b82b97442f645b83b3d62475d144af8e.1721834549.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721834549.git.oleksii.kurochko@gmail.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce a function to set up fixmap mappings and L0 page
table for fixmap.

Additionally, defines were introduced in riscv/config.h to
calculate the FIXMAP_BASE address.
This involved introducing BOOT_FDT_VIRT_{START, SIZE} and
XEN_VIRT_SIZE, XEN_VIRT_END.

Also, the check of Xen size was updated in the riscv/lds.S
script to use XEN_VIRT_SIZE instead of a hardcoded constant.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - s/XEN_SIZE/XEN_VIRT_SIZE
 - drop usage of XEN_VIRT_END.
 - sort newly introduced defines in config.h by address
 - code style fixes
 - drop runtime check of that pte is valid as it was checked in L1 page table finding cycle by BUG_ON().
 - update implementation of write_pte() with FENCE rw, rw.
 - add BUILD_BUG_ON() to check that amount of entries aren't bigger then entries in page table.
 - drop set_fixmap, clear_fixmap declarations as they aren't used and defined now
 - update the commit message.
 - s/__ASM_FIXMAP_H/ASM_FIXMAP_H
 - add SPDX-License-Identifier: GPL-2.0 
---
 xen/arch/riscv/include/asm/config.h |  8 +++++
 xen/arch/riscv/include/asm/fixmap.h | 44 +++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/mm.h     |  2 ++
 xen/arch/riscv/include/asm/page.h   |  9 ++++++
 xen/arch/riscv/mm.c                 | 47 +++++++++++++++++++++++++++++
 xen/arch/riscv/setup.c              |  2 ++
 xen/arch/riscv/xen.lds.S            |  2 +-
 7 files changed, 113 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/riscv/include/asm/fixmap.h

diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 50583aafdc..f517684cbb 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -66,6 +66,14 @@
 #define SLOTN_ENTRY_BITS        (HYP_PT_ROOT_LEVEL * VPN_BITS + PAGE_SHIFT)
 #define SLOTN(slot)             (_AT(vaddr_t, slot) << SLOTN_ENTRY_BITS)
 
+#define XEN_VIRT_SIZE           MB(2)
+
+#define BOOT_FDT_VIRT_START     (XEN_VIRT_START + XEN_VIRT_SIZE)
+#define BOOT_FDT_VIRT_SIZE      MB(4)
+
+#define FIXMAP_BASE             (BOOT_FDT_VIRT_START + BOOT_FDT_VIRT_SIZE)
+#define FIXMAP_ADDR(n)          (FIXMAP_BASE + (n) * PAGE_SIZE)
+
 #if RV_STAGE1_MODE == SATP_MODE_SV39
 #define XEN_VIRT_START 0xFFFFFFFFC0000000
 #elif RV_STAGE1_MODE == SATP_MODE_SV48
diff --git a/xen/arch/riscv/include/asm/fixmap.h b/xen/arch/riscv/include/asm/fixmap.h
new file mode 100644
index 0000000000..d3f5ee4944
--- /dev/null
+++ b/xen/arch/riscv/include/asm/fixmap.h
@@ -0,0 +1,44 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * fixmap.h: compile-time virtual memory allocation
+ */
+#ifndef ASM_FIXMAP_H
+#define ASM_FIXMAP_H
+
+#include <xen/bug.h>
+#include <xen/page-size.h>
+#include <xen/pmap.h>
+
+#include <asm/page.h>
+
+/* Fixmap slots */
+#define FIX_PMAP_BEGIN (0) /* Start of PMAP */
+#define FIX_PMAP_END (FIX_PMAP_BEGIN + NUM_FIX_PMAP - 1) /* End of PMAP */
+#define FIX_MISC (FIX_PMAP_END + 1)  /* Ephemeral mappings of hardware */
+
+#define FIX_LAST FIX_MISC
+
+#define FIXADDR_START FIXMAP_ADDR(0)
+#define FIXADDR_TOP FIXMAP_ADDR(FIX_LAST)
+
+#ifndef __ASSEMBLY__
+
+/*
+ * Direct access to xen_fixmap[] should only happen when {set,
+ * clear}_fixmap() is unusable (e.g. where we would end up to
+ * recursively call the helpers).
+ */
+extern pte_t xen_fixmap[];
+
+#define fix_to_virt(slot) ((void *)FIXMAP_ADDR(slot))
+
+static inline unsigned int virt_to_fix(vaddr_t vaddr)
+{
+    BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START);
+
+    return ((vaddr - FIXADDR_START) >> PAGE_SHIFT);
+}
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* ASM_FIXMAP_H */
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 25af9e1aaa..a0bdc2bc3a 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -255,4 +255,6 @@ static inline unsigned int arch_get_dma_bitsize(void)
     return 32; /* TODO */
 }
 
+void setup_fixmap_mappings(void);
+
 #endif /* _ASM_RISCV_MM_H */
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index c831e16417..0cc2f37cf8 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -11,6 +11,7 @@
 
 #include <asm/mm.h>
 #include <asm/page-bits.h>
+#include <asm/system.h>
 
 #define VPN_MASK                    (PAGETABLE_ENTRIES - 1UL)
 
@@ -81,6 +82,14 @@ static inline void flush_page_to_ram(unsigned long mfn, bool sync_icache)
     BUG_ON("unimplemented");
 }
 
+/* Write a pagetable entry. */
+static inline void write_pte(pte_t *p, pte_t pte)
+{
+    RISCV_FENCE(rw, rw);
+    *p = pte;
+    RISCV_FENCE(rw, rw);
+}
+
 #endif /* __ASSEMBLY__ */
 
 #endif /* _ASM_RISCV_PAGE_H */
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 7d09e781bf..35724505ec 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -12,6 +12,7 @@
 #include <asm/early_printk.h>
 #include <asm/csr.h>
 #include <asm/current.h>
+#include <asm/fixmap.h>
 #include <asm/page.h>
 #include <asm/processor.h>
 
@@ -49,6 +50,9 @@ stage1_pgtbl_root[PAGETABLE_ENTRIES];
 pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
 stage1_pgtbl_nonroot[PGTBL_INITIAL_COUNT * PAGETABLE_ENTRIES];
 
+pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
+xen_fixmap[PAGETABLE_ENTRIES];
+
 #define HANDLE_PGTBL(curr_lvl_num)                                          \
     index = pt_index(curr_lvl_num, page_addr);                              \
     if ( pte_is_valid(pgtbl[index]) )                                       \
@@ -191,6 +195,49 @@ static bool __init check_pgtbl_mode_support(struct mmu_desc *mmu_desc,
     return is_mode_supported;
 }
 
+void __init setup_fixmap_mappings(void)
+{
+    pte_t *pte, tmp;
+    unsigned int i;
+
+    BUILD_BUG_ON(FIX_LAST >= PAGETABLE_ENTRIES);
+
+    pte = &stage1_pgtbl_root[pt_index(HYP_PT_ROOT_LEVEL, FIXMAP_ADDR(0))];
+
+    /*
+     * In RISC-V page table levels are enumerated from Lx to L0 where
+     * x is the highest page table level for currect  MMU mode ( for example,
+     * for Sv39 has 3 page tables so the x = 2 (L2 -> L1 -> L0) ).
+     *
+     * In this cycle we want to find L1 page table because as L0 page table
+     * xen_fixmap[] will be used.
+     *
+     * i is defined ( HYP_PT_ROOT_LEVEL - 1 ) becuase pte for L2 ( in
+     * case of Sv39 ) has been recieved above.
+     */
+    for ( i = HYP_PT_ROOT_LEVEL - 1; i != 0; i-- )
+    {
+        BUG_ON(!pte_is_valid(*pte));
+
+        pte = (pte_t *)LOAD_TO_LINK(pte_to_paddr(*pte));
+        pte = &pte[pt_index(i, FIXMAP_ADDR(0))];
+    }
+
+    BUG_ON(pte_is_valid(*pte));
+
+    tmp = paddr_to_pte(LINK_TO_LOAD((unsigned long)&xen_fixmap), PTE_TABLE);
+    write_pte(pte, tmp);
+
+    sfence_vma();
+
+    printk("(XEN) fixmap is mapped\n");
+
+    /*
+     * We only need the zeroeth table allocated, but not the PTEs set, because
+     * set_fixmap() will set them on the fly.
+     */
+}
+
 /*
  * setup_initial_pagetables:
  *
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 4defad68f4..13f0e8c77d 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -46,6 +46,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
     test_macros_from_bug_h();
 #endif
 
+    setup_fixmap_mappings();
+
     printk("All set up\n");
 
     for ( ;; )
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 070b19d915..7a683f6065 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -181,6 +181,6 @@ ASSERT(!SIZEOF(.got.plt),  ".got.plt non-empty")
  * Changing the size of Xen binary can require an update of
  * PGTBL_INITIAL_COUNT.
  */
-ASSERT(_end - _start <= MB(2), "Xen too large for early-boot assumptions")
+ASSERT(_end - _start <= XEN_VIRT_SIZE, "Xen too large for early-boot assumptions")
 
 ASSERT(_ident_end - _ident_start <= IDENT_AREA_SIZE, "identity region is too big");
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764294.1174749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdy6-00008v-NA; Wed, 24 Jul 2024 15:31:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764294.1174749; Wed, 24 Jul 2024 15:31:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdy6-00006s-Gj; Wed, 24 Jul 2024 15:31:54 +0000
Received: by outflank-mailman (input) for mailman id 764294;
 Wed, 24 Jul 2024 15:31: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdy4-0005Oj-HW
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:52 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d98969a1-49d1-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 17:31:51 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2ef2cce8c08so41848491fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:52 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef2b568858sm13237311fa.35.2024.07.24.08.31.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:31: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: d98969a1-49d1-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835111; x=1722439911; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PXOE9CRQc9546f2NMHjGZ/14SaZEN5RgTjEp/XheDio=;
        b=k49/vwWu8fhBmZqpE1IS9yn5z2UFmmfZFhWBw48/M9Hlx2tWiNtLxgrqC8XLt/NW08
         dGNjXrPZUocCpPNSirQeY0o/H7I9eJkn2OjDQcJ4ruZGmrgvzdAWBjHFybITO/ZJfHph
         uUnkU7ipv4mGQMhP8X+86UXxeCp+ecVXPgi7SKUDnbWrFqoWfQjnL2fcMwXnd9HRQdV6
         XmFtC97xrPhlZ5OqJxqF+xp1IbRcn8mu+mw7QaaqSYBhJsp+P4BY2d6oJeNamK2eyVfA
         tRIvqlaDnxWVRAseB2hfSAK0aIKpc1XpgEwg9BgMc321y6U6ujoN13R96TQJHOo3PpmU
         EUPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835111; x=1722439911;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=PXOE9CRQc9546f2NMHjGZ/14SaZEN5RgTjEp/XheDio=;
        b=iCrfoVzN0zKTihxKzsEqqMsUgPwnUkgzIsNOYaUIyL6KbMvHRsko6V6GaG7560GL9u
         C1AdML1eCYsfjWmLy2NX/kQVBPhdFoF9OSQa3eD2oCmqvWDg0iIfmOtc2jS+NAGyOLst
         KpfdUYlPYM+Yjhxs2FHnjHr1tKWdtUuK1944TFxhM/DdfWq1gBrLF66BfqT2HyV6WFzQ
         wWqYQ7SSSVVEyKRfvbzeg9iWVleNFgIsLV1nqg1iKXICY4dyyP8sO7+XtdUS33V60QvE
         +X9Hr4iTbUKtEYVRS9nC2QbM4U+BvVApf+Hd3KaV03bZ2ecDwzWilVLTihbH8S4LiDno
         TLBA==
X-Gm-Message-State: AOJu0YxkJF3TqD0b9UIyo0dknHvxMq8yZv08aa6rO7joV6BivtLjduIv
	z5tJ6g0bapZxEUgeh+xBnQ5RS9a22Xr30QBFrlTvU+f7TaRvu7lUZoOz3tc6
X-Google-Smtp-Source: AGHT+IFsU2+Od5rLfvrYUmDoF5dSsSMCuxFKBOlJMYc7fMR+ZRmqqk7JEQO5hNH2cIv6nBgSU6DcFA==
X-Received: by 2002:a2e:9651:0:b0:2ef:1edc:3b6a with SMTP id 38308e7fff4ca-2f039ea7c63mr1224821fa.21.1721835111186;
        Wed, 24 Jul 2024 08:31:51 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 6/9] xen/riscv: introduce functionality to work with cpu info
Date: Wed, 24 Jul 2024 17:31:37 +0200
Message-ID: <4ea9005d4209e24df9b30a7b3c282276084a3cf1.1721834549.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721834549.git.oleksii.kurochko@gmail.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

struct pcpu_info is introduced to store pcpu related information.
At the moment, it is only processor_id but in the fututre it will be
guest cpu information and some temporary variables which will be
used during save/restore of vcpu registers.

set_processor_id() and get_processor_id() are introduced to set and
get processor id which is stored in pcpu_info.

__cpuid_to_hartid_map[NR_CPUS] is introduced to store the mapping
between Xen logical CPU and hartid ( physical CPU id ) and auxiliary
macros cpuid_to_hartid_map() for convience access to __cpuid_to_hartid_map[].

smp_processor_id() is defined properly as it is enough to information to
define it now instead of seting it to "dummy" 0.

Also, tp registers is initialized to point to pcpu_info[0];
set_processor_id is set to 0 as Xen is running on logical cpu 0 and
save physical CPU id for current logical CPU id in __cpuid_to_hartid_map[].

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - new patch.
---
 xen/arch/riscv/Makefile                |  2 ++
 xen/arch/riscv/include/asm/processor.h | 35 ++++++++++++++++++++++++--
 xen/arch/riscv/include/asm/smp.h       | 10 ++++++++
 xen/arch/riscv/setup.c                 | 13 ++++++++++
 xen/arch/riscv/smp.c                   |  4 +++
 xen/arch/riscv/smpboot.c               | 12 +++++++++
 6 files changed, 74 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/smp.c
 create mode 100644 xen/arch/riscv/smpboot.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 81b77b13d6..334fd24547 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -4,6 +4,8 @@ obj-y += mm.o
 obj-$(CONFIG_RISCV_64) += riscv64/
 obj-y += sbi.o
 obj-y += setup.o
+obj-y += smp.o
+obj-y += smpboot.o
 obj-y += stubs.o
 obj-y += traps.o
 obj-y += vm_event.o
diff --git a/xen/arch/riscv/include/asm/processor.h b/xen/arch/riscv/include/asm/processor.h
index 3ae164c265..4c3e45fd17 100644
--- a/xen/arch/riscv/include/asm/processor.h
+++ b/xen/arch/riscv/include/asm/processor.h
@@ -12,8 +12,39 @@
 
 #ifndef __ASSEMBLY__
 
-/* TODO: need to be implemeted */
-#define smp_processor_id() 0
+#include <xen/bug.h>
+#include <xen/types.h>
+
+register struct pcpu_info *tp asm ("tp");
+
+struct pcpu_info {
+    unsigned int processor_id;
+};
+
+/* tp points to one of these */
+extern struct pcpu_info pcpu_info[NR_CPUS];
+
+#define get_processor_id()      (tp->processor_id)
+#define set_processor_id(id)    do { \
+    tp->processor_id = id;           \
+} while(0)
+
+static inline unsigned int smp_processor_id(void)
+{
+    unsigned int id;
+
+    id = get_processor_id();
+
+    /*
+     * Technically the hartid can be greater than what a uint can hold.
+     * If such a system were to exist, we will need to change
+     * the smp_processor_id() API to be unsigned long instead of
+     * unsigned int.
+     */
+    BUG_ON(id > UINT_MAX);
+
+    return id;
+}
 
 /* On stack VCPU state */
 struct cpu_user_regs
diff --git a/xen/arch/riscv/include/asm/smp.h b/xen/arch/riscv/include/asm/smp.h
index b1ea91b1eb..3fff27a8a5 100644
--- a/xen/arch/riscv/include/asm/smp.h
+++ b/xen/arch/riscv/include/asm/smp.h
@@ -5,6 +5,8 @@
 #include <xen/cpumask.h>
 #include <xen/percpu.h>
 
+#define INVALID_HARTID UINT_MAX
+
 DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_mask);
 DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);
 
@@ -14,6 +16,14 @@ DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);
  */
 #define park_offline_cpus false
 
+void smp_setup_processor_id(unsigned long boot_cpu_hartid);
+
+/*
+ * Mapping between linux logical cpu index and hartid.
+ */
+extern unsigned long __cpuid_to_hartid_map[NR_CPUS];
+#define cpuid_to_hartid_map(cpu) __cpuid_to_hartid_map[cpu]
+
 #endif
 
 /*
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 13f0e8c77d..37b234360c 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -40,6 +40,19 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 {
     remove_identity_mapping();
 
+    /*
+     * tp register contains an address of physical cpu information.
+     * So write physical CPU info of boot cpu to tp register
+     * It will be used later by get_processor_id() to get process_id ( look at
+     * <asm/processor.h> ):
+     *   #define get_processor_id()    (tp->processor_id)
+     */
+    asm volatile ("mv tp, %0" : : "r"((unsigned long)&pcpu_info[0]));
+
+    set_processor_id(0);
+
+    smp_setup_processor_id(bootcpu_id);
+
     trap_init();
 
 #ifdef CONFIG_SELF_TESTS
diff --git a/xen/arch/riscv/smp.c b/xen/arch/riscv/smp.c
new file mode 100644
index 0000000000..006a062ad7
--- /dev/null
+++ b/xen/arch/riscv/smp.c
@@ -0,0 +1,4 @@
+#include <xen/smp.h>
+
+/* tp points to one of these per cpu */
+struct pcpu_info pcpu_info[NR_CPUS];
\ No newline at end of file
diff --git a/xen/arch/riscv/smpboot.c b/xen/arch/riscv/smpboot.c
new file mode 100644
index 0000000000..a90401ffd4
--- /dev/null
+++ b/xen/arch/riscv/smpboot.c
@@ -0,0 +1,12 @@
+#include <xen/init.h>
+#include <xen/sections.h>
+#include <xen/smp.h>
+
+unsigned long __cpuid_to_hartid_map[NR_CPUS] __ro_after_init = {
+    [0 ... NR_CPUS-1] = INVALID_HARTID
+};
+
+void __init smp_setup_processor_id(unsigned long boot_cpu_hartid)
+{
+    cpuid_to_hartid_map(0) = boot_cpu_hartid;
+}
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764295.1174754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdy7-0000EF-5x; Wed, 24 Jul 2024 15:31:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764295.1174754; Wed, 24 Jul 2024 15:31: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 1sWdy6-0000DS-SY; Wed, 24 Jul 2024 15:31:54 +0000
Received: by outflank-mailman (input) for mailman id 764295;
 Wed, 24 Jul 2024 15:31: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdy4-0005Od-Kd
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:52 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d9092283-49d1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:31:51 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2ef2ed59200so44649161fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:51 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef2b568858sm13237311fa.35.2024.07.24.08.31.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:31: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: d9092283-49d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835110; x=1722439910; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g6XL7EOUU66EeSUXZG2jsVtfUvFtJf8Harf/p3UUhw0=;
        b=cvQF3i/3PM9dsQDE5rDJVaDnQzLFpWK1gorApVKjVCHl8QI1h80sw8evsms0XM7ymz
         dnXA7vRdpCEKs53EbLEtl8nWgJzA/+4T2ScdNfG3Bm1t3GLlwtWnJ6p9co2/MaMXdRuK
         BzdQ6D5yTuTqwnxmTMdCgtL2RJN4Q59BEKewa0R/XDucFJgTVxFWF/XakeNRXinA0fwt
         NPfl1F9sayXzq1rTBJuD2Q4pd6B9tDOE5N7r+nH6wDmIHTd0v8QUaMtjTO71+VyTvH75
         KsBPHnMrJuLdqYvuMblf+6Mi4HwzjGevY5Zknwx5XfZQhVy3iIJ72ZDNQjPJG/U9/aib
         ZMSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835110; x=1722439910;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=g6XL7EOUU66EeSUXZG2jsVtfUvFtJf8Harf/p3UUhw0=;
        b=u2rLISDuIXyzdjDsR8pHhkD9KHpRPgEzM+cjcEHhkdnENklM8KENPoQUj/0p07q+uN
         5292/JsZGtyvIKWRcTZ7xOxt7xK3EWXMiGyDwYoS22gmLsWkNCvEcuA3M2XaZcg9kmPe
         17BL9f9K29zIEEvlP3EuxKK9WAXpC8KTKoD8uFsBLJphZLrQQ2RMtbOkqM16LVZ/ElRX
         G7bZzZgDGWbicGS5ZfE7QaKoQrDGQfbQGR5pizn/rmrcJX3i8nBj37YYpBbyUyBRgv7v
         w7MxhAiWl9bJn80XD1PuV/eT59K8JkjEd5exECHwnzZFbZk3Dubbtv4bDWsg5bz86uSk
         Ma2A==
X-Gm-Message-State: AOJu0YzFRkBxx0za/oVgfYpXl70spYuxUDA3Q/Ypz/r3ckbdy6CwyJ7I
	b/a+7ELDwcQhdDCruZSNQovuB97Tsn9RnyppkEL4JCs/at9tgzbrzDzXWVaI
X-Google-Smtp-Source: AGHT+IH8HTEyrNUZ4pjWIiLtjbSoRHXD+2hsZ8NBtqOV5432Io/rqG/Z2LvelVQf/3ru/RpQkdb7VQ==
X-Received: by 2002:a2e:b8ce:0:b0:2ef:21e5:1f01 with SMTP id 38308e7fff4ca-2f039cdff01mr1878401fa.20.1721835109259;
        Wed, 24 Jul 2024 08:31:49 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 5/9] xen/riscv: introduce asm/pmap.h header
Date: Wed, 24 Jul 2024 17:31:36 +0200
Message-ID: <11b5487659a9c76793e520c108cd92c6c84b908d.1721834549.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721834549.git.oleksii.kurochko@gmail.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduces arch_pmap_{un}map functions and select HAS_PMAP
for CONFIG_RISCV.

Additionaly it was necessary to introduce functions:
 - mfn_from_xen_entry
 - mfn_to_pte

Also flush_xen_tlb_range_va_local() and flush_xen_tlb_one_local()
are introduced and use in arch_pmap_unmap().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - rename argument of function mfn_to_xen_entry(..., attr -> flags ).
 - update the code of mfn_to_xen_entry() to use flags argument.
 - add blank in mfn_from_pte() in return line.
 - introduce flush_xen_tlb_range_va_local() and use it inside arch_pmap_{un}map().
 - s/__ASM_PMAP_H__/ASM_PMAP_H
 - add SPDX-License-Identifier: GPL-2.0 
---
 xen/arch/riscv/Kconfig                |  1 +
 xen/arch/riscv/include/asm/flushtlb.h | 22 ++++++++++++++++++
 xen/arch/riscv/include/asm/page.h     |  2 ++
 xen/arch/riscv/include/asm/pmap.h     | 33 +++++++++++++++++++++++++++
 xen/arch/riscv/mm.c                   | 15 ++++++++++++
 5 files changed, 73 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/pmap.h

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 259eea8d3b..0112aa8778 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -3,6 +3,7 @@ config RISCV
 	select FUNCTION_ALIGNMENT_16B
 	select GENERIC_BUG_FRAME
 	select HAS_DEVICE_TREE
+	select HAS_PMAP
 
 config RISCV_64
 	def_bool y
diff --git a/xen/arch/riscv/include/asm/flushtlb.h b/xen/arch/riscv/include/asm/flushtlb.h
index 7ce32bea0b..cf66e90773 100644
--- a/xen/arch/riscv/include/asm/flushtlb.h
+++ b/xen/arch/riscv/include/asm/flushtlb.h
@@ -5,6 +5,28 @@
 #include <xen/bug.h>
 #include <xen/cpumask.h>
 
+/* Flush TLB of local processor for address va. */
+static inline void flush_xen_tlb_one_local(vaddr_t va)
+{
+    asm volatile ( "sfence.vma %0" :: "r" (va) : "memory" );
+}
+
+/*
+ * Flush a range of VA's hypervisor mappings from the TLB of the local
+ * processor.
+ */
+static inline void flush_xen_tlb_range_va_local(vaddr_t va,
+                                                unsigned long size)
+{
+    vaddr_t end = va + size;
+
+    while ( va < end )
+    {
+        flush_xen_tlb_one_local(va);
+        va += PAGE_SIZE;
+    }
+}
+
 /*
  * Filter the given set of CPUs, removing those that definitely flushed their
  * TLB since @page_timestamp.
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 0cc2f37cf8..2308cefb0a 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -52,6 +52,8 @@ typedef struct {
 #endif
 } pte_t;
 
+pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int access_bits);
+
 static inline pte_t paddr_to_pte(paddr_t paddr,
                                  unsigned int permissions)
 {
diff --git a/xen/arch/riscv/include/asm/pmap.h b/xen/arch/riscv/include/asm/pmap.h
new file mode 100644
index 0000000000..068d0794b1
--- /dev/null
+++ b/xen/arch/riscv/include/asm/pmap.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef ASM_PMAP_H
+#define ASM_PMAP_H
+
+#include <xen/bug.h>
+#include <xen/mm.h>
+#include <xen/page-size.h>
+
+#include <asm/fixmap.h>
+#include <asm/flushtlb.h>
+#include <asm/system.h>
+
+static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
+{
+    pte_t *entry = &xen_fixmap[slot];
+    pte_t pte;
+
+    ASSERT(!pte_is_valid(*entry));
+
+    pte = mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
+    write_pte(entry, pte);
+}
+
+static inline void arch_pmap_unmap(unsigned int slot)
+{
+    pte_t pte = {};
+
+    write_pte(&xen_fixmap[slot], pte);
+
+    flush_xen_tlb_range_va_local(FIXMAP_ADDR(slot), PAGE_SIZE);
+}
+
+#endif /* ASM_PMAP_H */
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 35724505ec..959b6fc63e 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -382,3 +382,18 @@ int map_pages_to_xen(unsigned long virt,
     BUG_ON("unimplemented");
     return -1;
 }
+
+static inline pte_t mfn_from_pte(mfn_t mfn)
+{
+    unsigned long pte = mfn_x(mfn) << PTE_PPN_SHIFT;
+    return (pte_t){ .pte = pte };
+}
+
+inline pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int access_bits)
+{
+    pte_t pte = mfn_from_pte(mfn);
+
+    pte.pte |= access_bits;
+
+    return pte;
+}
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:31:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:31:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764298.1174777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWdy9-000152-El; Wed, 24 Jul 2024 15:31:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764298.1174777; Wed, 24 Jul 2024 15: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 1sWdy9-000148-AB; Wed, 24 Jul 2024 15:31:57 +0000
Received: by outflank-mailman (input) for mailman id 764298;
 Wed, 24 Jul 2024 15:31: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdy7-0005Oj-33
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:55 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id db1383a3-49d1-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 17:31:54 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2ef1c12ae23so49923951fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:54 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef2b568858sm13237311fa.35.2024.07.24.08.31.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:31: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: db1383a3-49d1-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835114; x=1722439914; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A07ZG27CUr7oIHQ1UgxonLp6epcHXS0L6tvykTUJZJg=;
        b=AnJUY6WFojC+AmQGEI+GUc3vSX26bDaFMnW+7bIPxXsGBWcTsdlR/HU1EQKeqzakZ8
         PTapD2Gf+0fm9mMWD+yb8iLbZS+IUgz6wowA4Cb/XvW6Dbq7IQFVfISU96FAj9yhAXBC
         rTh+TTuFuqDjTJeSImVqCj07wL0J8HFCY9YQ6kfQt5xe9etn603BmYANOSrmyxkBAAZY
         jOYlahjSuovUY9wp3Uwv4tAjnSCIW4Yya0jSSKXK7lSTg5Y+/cv+1rxF8Geg47rhFANc
         aW3Sk1WU0dOQBokBNU8xgs/3bEiRUcepvFWUKmoaYhUu3Mr+BUq5ktxoXqwmbs8D/Sgc
         eHDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835114; x=1722439914;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=A07ZG27CUr7oIHQ1UgxonLp6epcHXS0L6tvykTUJZJg=;
        b=rSoJGIwB1iOK1HYIYtp/ZLqOkMZzAImsbhGWPV4uQ2fKic7BbI/zZ83MOVX+D0ahmF
         z06z01EfY86OXiCI9UZw+D3JaY/nupQSeFQrZNDPRIv4GLi9M8Go1BRNuZtg7Mh5ByHG
         zGqw1QBRx22fg89/BDtVhTHhezBgw6Us7iZ9oeJFzPcLfwhK7XthCFzJ4DavaI04OVuz
         VDhmI3U4stPvkDJ8RkLLGgOSWBioKxILAzaHS7r6FWw+PYicKtQ94h0jq2S096Xs92WR
         cLuIJS42dgJ7UC1uA5vd0hTfw7yiJxCH3RhwCPcRXTEs1v4oj5BZ8XsiBVxS1SV2/Nvj
         SrMQ==
X-Gm-Message-State: AOJu0Yy64/qZWZaVDOveNvEDuBNj2/HBMNiH/0PqwXqtkFYHj70Wk3yT
	5wHRDVZxFVaGDDFXw1j17KVi6OGXSQ1iGx2w5t31d9z/j7cXfhr1A6zyOWNd
X-Google-Smtp-Source: AGHT+IHKr9lRaxusHvpeu6vtWMcM0TrPaCtck08FGRlrObEi34V5vGEu0lFgr4d2GB0xW+qdGgCU8w==
X-Received: by 2002:a2e:b536:0:b0:2ee:4c2e:3d3b with SMTP id 38308e7fff4ca-2f039c8aaa4mr1691831fa.4.1721835113854;
        Wed, 24 Jul 2024 08:31: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 9/9] xen/riscv: introduce early_fdt_map()
Date: Wed, 24 Jul 2024 17:31:40 +0200
Message-ID: <9b1d88b2ad6ba81e925fb4a560a2a2899b5e0b36.1721834549.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721834549.git.oleksii.kurochko@gmail.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce function which allows to map FDT to Xen.

Also, initialization of device_tree_flattened happens using early_fdt_map.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - Code style fixes
 - s/SZ_2M/MB(2)
 - fix condition to check if early_fdt_map() in setup.c return NULL or not.
---
Changes in V2:
 - rework early_fdt_map to use map_pages_to_xen()
 - move call early_fdt_map() to C code after MMU is enabled.
---
 xen/arch/riscv/include/asm/mm.h |  2 ++
 xen/arch/riscv/mm.c             | 55 +++++++++++++++++++++++++++++++++
 xen/arch/riscv/setup.c          |  9 ++++++
 3 files changed, 66 insertions(+)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index a7550e77a7..56375bf833 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -259,4 +259,6 @@ static inline unsigned int arch_get_dma_bitsize(void)
 
 void setup_fixmap_mappings(void);
 
+void *early_fdt_map(paddr_t fdt_paddr);
+
 #endif /* _ASM_RISCV_MM_H */
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index ecb0f15fa8..3ca2cc1950 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -1,13 +1,16 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bootfdt.h>
 #include <xen/bug.h>
 #include <xen/compiler.h>
 #include <xen/init.h>
 #include <xen/kernel.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/macros.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
 #include <xen/sections.h>
+#include <xen/sizes.h>
 
 #include <asm/early_printk.h>
 #include <asm/csr.h>
@@ -388,3 +391,55 @@ inline pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int access_bits)
 
     return pte;
 }
+
+void * __init early_fdt_map(paddr_t fdt_paddr)
+{
+    /* We are using 2MB superpage for mapping the FDT */
+    paddr_t base_paddr = fdt_paddr & XEN_PT_LEVEL_MAP_MASK(1);
+    paddr_t offset;
+    void *fdt_virt;
+    uint32_t size;
+    int rc;
+
+    /*
+     * 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;
+
+    /* The FDT is mapped using 2MB superpage */
+    BUILD_BUG_ON(BOOT_FDT_VIRT_START % MB(2));
+
+    rc = map_pages_to_xen(BOOT_FDT_VIRT_START, maddr_to_mfn(base_paddr),
+                          MB(2) >> PAGE_SHIFT,
+                          PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
+    if ( rc )
+        panic("Unable to map the device-tree.\n");
+
+    offset = fdt_paddr % XEN_PT_LEVEL_SIZE(1);
+    fdt_virt = (void *)BOOT_FDT_VIRT_START + offset;
+
+    if ( fdt_magic(fdt_virt) != FDT_MAGIC )
+        return NULL;
+
+    size = fdt_totalsize(fdt_virt);
+    if ( size > BOOT_FDT_VIRT_SIZE )
+        return NULL;
+
+    if ( (offset + size) > MB(2) )
+    {
+        rc = map_pages_to_xen(BOOT_FDT_VIRT_START + MB(2),
+                              maddr_to_mfn(base_paddr + MB(2)),
+                              MB(2) >> PAGE_SHIFT,
+                              PAGE_HYPERVISOR_RO | _PAGE_BLOCK);
+        if ( rc )
+            panic("Unable to map the device-tree\n");
+    }
+
+    return fdt_virt;
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 497e273081..e5f32a142a 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -2,6 +2,7 @@
 
 #include <xen/bug.h>
 #include <xen/compile.h>
+#include <xen/device_tree.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 
@@ -64,6 +65,14 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     setup_fixmap_mappings();
 
+    device_tree_flattened = early_fdt_map(dtb_addr);
+    if ( !device_tree_flattened )
+        panic("Invalid device tree blob at physical address %#lx.\n"
+              "The DTB must be 8-byte aligned and must not exceed %lld "
+              "bytes in size.\n\n"
+              "Please check your bootloader.\n",
+              dtb_addr, BOOT_FDT_VIRT_SIZE);
+
     printk("All set up\n");
 
     for ( ;; )
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:36:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:36:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764342.1174787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWe2K-00058c-4m; Wed, 24 Jul 2024 15:36:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764342.1174787; Wed, 24 Jul 2024 15:36:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWe2K-00058V-1R; Wed, 24 Jul 2024 15:36:16 +0000
Received: by outflank-mailman (input) for mailman id 764342;
 Wed, 24 Jul 2024 15:36: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdy7-0005Od-LS
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:55 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id da30c9c0-49d1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:31:53 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2ef2d96164aso34910601fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:53 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef2b568858sm13237311fa.35.2024.07.24.08.31.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08: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: da30c9c0-49d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835112; x=1722439912; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q/CS7Jv3CQg3aYb6VjDr+kgbj+LlISONX9Xzf/VXrcE=;
        b=isNN5wGfEzeZZBDCZ9UPN64CIA8ouZHSl88/ejQk5xorhIqKLi7Hu1/JoMb5Htmu5m
         Xe2I8R+OnNFq9O4RFLmrRZ5AVyzkL9z4h9ZJKSqBaiEia70zl/X/7ikBvzklpfR8kpQL
         iL0n/Hp+fVh37lxxeQhmC9jE1ESgIjvVXyPL20hAxcLxDkygYtzcHnHZRlw+0x8Gf7+N
         tPwoASJ+5pn7tMlP1v283Hplklr1OMHTDbn4htaDpCoPRjUJKw72w350jGjjYC0lqPls
         +24usiP3A7a4iWmiHc20wj/jHIAzrNC66LbyVq2MqJGhospmD0YHrLOW2ytzto1cOrDC
         l9oQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835112; x=1722439912;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=q/CS7Jv3CQg3aYb6VjDr+kgbj+LlISONX9Xzf/VXrcE=;
        b=SC1eNCQdO5UyIdgcNmYuZUPVbkE6z7tZycwoBPIOZdoxCETx+i/OkLAyThd831RIG6
         c+lHW2jNu3cIKt7D8VEMRJUsyhwDuSS+Zc9zckktaw5eTKFhcW/xehkFFiv7g/Zz74Lm
         aXD81eKNAO9tZV8qeX0zGyDHWf/t9jZsVgC6Wm3qRxH/vVWkGzT97uHv7QygDwmnMuuf
         sG/q+0eD6cDAiKYXee9CnLJCI0EAsUB3w12ySWroXzcXkhu7wwBncxPwMWDzbDUHweye
         UlcDb4WR+dfIcpnhpSlJkAH0nAlmZAw19kFRO3kKc1FbJ2wOT3dRuKeof0bz1uTuOFXA
         POgw==
X-Gm-Message-State: AOJu0YxVvmpUOVxknsuDF0AL70U4K2BeRmaSjaevln2Ap7rNNjnyzHpW
	+S56Bdv74pdKppuFcsSvRSNWiE7zJ6FwB3qY4n5SN8NmenqrTGdDAaT+5cAX
X-Google-Smtp-Source: AGHT+IEyjEPjgLD8s7dHrkVR9Q0dDIrWRBSTtqdVISR/d2JPuqHEq2zU5N7KJ813KWl1O7q1C3Yopg==
X-Received: by 2002:a2e:9d17:0:b0:2ef:2f77:e577 with SMTP id 38308e7fff4ca-2f039cac58dmr1412581fa.27.1721835112186;
        Wed, 24 Jul 2024 08:31:52 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 7/9] xen/riscv: introduce and init SBI RFENCE extension
Date: Wed, 24 Jul 2024 17:31:38 +0200
Message-ID: <fb2d24731f870378d79077be39b1bc19cc655327.1721834549.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721834549.git.oleksii.kurochko@gmail.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduces functions to work with SBI RFENCE extenstion
which will be used to do various version of fences for
remote ( not local ) CPU.

Except that sbi_init() function and auxiliary functions and
macros definitions are introduced to proper initialization and
checking availability of SBI extenstions.
At the moment, it is only done for RFENCE.

sbi_remote_sfence_vma() is introduced to send SFENCE_VMA to
a set of target HARTs and based on that flush_xen_tlb_range_va()
will be implemented.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - new patch.
---
 xen/arch/riscv/include/asm/sbi.h |  57 +++++++
 xen/arch/riscv/sbi.c             | 256 +++++++++++++++++++++++++++++++
 xen/arch/riscv/setup.c           |   3 +
 3 files changed, 316 insertions(+)

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index 0e6820a4ed..0985fbb1aa 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -14,6 +14,38 @@
 
 #define SBI_EXT_0_1_CONSOLE_PUTCHAR		0x1
 
+#define SBI_EXT_BASE                    0x10
+#define SBI_EXT_RFENCE                  0x52464E43
+
+/* SBI function IDs for BASE extension */
+#define SBI_EXT_BASE_GET_SPEC_VERSION   0x0
+#define SBI_EXT_BASE_GET_IMP_ID         0x1
+#define SBI_EXT_BASE_GET_IMP_VERSION    0x2
+#define SBI_EXT_BASE_PROBE_EXT          0x3
+
+/* SBI function IDs for RFENCE extension */
+#define SBI_EXT_RFENCE_REMOTE_FENCE_I           0x0
+#define SBI_EXT_RFENCE_REMOTE_SFENCE_VMA        0x1
+#define SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID   0x2
+#define SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA       0x3
+#define SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID  0x4
+#define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA       0x5
+#define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID  0x6
+
+#define SBI_SPEC_VERSION_MAJOR_SHIFT    24
+#define SBI_SPEC_VERSION_MAJOR_MASK     0x7f
+#define SBI_SPEC_VERSION_MINOR_MASK     0xffffff
+
+/* SBI return error codes */
+#define SBI_SUCCESS             0
+#define SBI_ERR_FAILURE         -1
+#define SBI_ERR_NOT_SUPPORTED   -2
+#define SBI_ERR_INVALID_PARAM   -3
+#define SBI_ERR_DENIED          -4
+#define SBI_ERR_INVALID_ADDRESS -5
+
+#define SBI_SPEC_VERSION_DEFAULT        0x1
+
 struct sbiret {
     long error;
     long value;
@@ -31,4 +63,29 @@ struct sbiret sbi_ecall(unsigned long ext, unsigned long fid,
  */
 void sbi_console_putchar(int ch);
 
+/*
+ * Check underlying SBI implementation has RFENCE
+ *
+ * @return 1 for supported AND 0 for not-supported
+ */
+int sbi_has_rfence(void);
+
+/*
+ * Send SFENCE_VMA to a set of target HARTs.
+ *
+ * @param hart_mask mask representing set of target HARTs
+ * @param start virtual address start
+ * @param size virtual address size
+ */
+void sbi_remote_sfence_vma(const unsigned long *hart_mask,
+                           unsigned long start,
+                           unsigned long size);
+
+/*
+ * Initialize SBI library
+ *
+ * @return 0 on success, otherwise negative errno on failure
+ */
+int sbi_init(void);
+
 #endif /* __ASM_RISCV_SBI_H__ */
diff --git a/xen/arch/riscv/sbi.c b/xen/arch/riscv/sbi.c
index 0ae166c861..04d878d1e2 100644
--- a/xen/arch/riscv/sbi.c
+++ b/xen/arch/riscv/sbi.c
@@ -10,8 +10,18 @@
  * Copyright (c) 2021-2023 Vates SAS.
  */
 
+#include <xen/cpumask.h>
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/smp.h>
+
+#include <asm/processor.h>
 #include <asm/sbi.h>
 
+static unsigned long sbi_spec_version = SBI_SPEC_VERSION_DEFAULT;
+static unsigned long sbi_fw_id, sbi_fw_version;
+
 struct sbiret sbi_ecall(unsigned long ext, unsigned long fid,
                         unsigned long arg0, unsigned long arg1,
                         unsigned long arg2, unsigned long arg3,
@@ -38,7 +48,253 @@ struct sbiret sbi_ecall(unsigned long ext, unsigned long fid,
     return ret;
 }
 
+static int sbi_err_map_xen_errno(int err)
+{
+    switch ( err )
+    {
+    case SBI_SUCCESS:
+        return 0;
+    case SBI_ERR_DENIED:
+        return -EACCES;
+    case SBI_ERR_INVALID_PARAM:
+        return -EINVAL;
+    case SBI_ERR_INVALID_ADDRESS:
+        return -EFAULT;
+    case SBI_ERR_NOT_SUPPORTED:
+    case SBI_ERR_FAILURE:
+    default:
+        return -EOPNOTSUPP;
+    };
+}
+
 void sbi_console_putchar(int ch)
 {
     sbi_ecall(SBI_EXT_0_1_CONSOLE_PUTCHAR, 0, ch, 0, 0, 0, 0, 0);
 }
+
+static unsigned long sbi_major_version(void)
+{
+    return (sbi_spec_version >> SBI_SPEC_VERSION_MAJOR_SHIFT) &
+        SBI_SPEC_VERSION_MAJOR_MASK;
+}
+
+static unsigned long sbi_minor_version(void)
+{
+    return sbi_spec_version & SBI_SPEC_VERSION_MINOR_MASK;
+}
+
+static long sbi_ext_base_func(long fid)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
+    if (!ret.error)
+        return ret.value;
+    else
+        return ret.error;
+}
+
+static void sbi_cpumask_to_hartmask(const struct cpumask *cmask,
+                 struct cpumask *hmask)
+{
+    u32 cpu;
+    unsigned long hart = INVALID_HARTID;
+
+    if (!cmask || !hmask)
+        return;
+
+    cpumask_clear(hmask);
+    for_each_cpu(cpu, cmask)
+    {
+        if ( CONFIG_NR_CPUS <= cpu )
+        {
+            printk(XENLOG_ERR "SBI: invalid hart=%lu for cpu=%d\n",
+                     hart, cpu);
+            continue;
+        }
+
+        hart = cpuid_to_hartid_map(pcpu_info[cpu].processor_id);
+        cpumask_set_cpu(hart, hmask);
+    }
+}
+
+static int __sbi_rfence_v02_real(unsigned long fid,
+                 unsigned long hmask, unsigned long hbase,
+                 unsigned long start, unsigned long size,
+                 unsigned long arg4)
+{
+    struct sbiret ret = {0};
+    int result = 0;
+
+    switch ( fid )
+    {
+    case SBI_EXT_RFENCE_REMOTE_FENCE_I:
+        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
+                0, 0, 0, 0);
+        break;
+    case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA:
+        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
+                start, size, 0, 0);
+        break;
+    case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID:
+        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
+                start, size, arg4, 0);
+        break;
+    case SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA:
+        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
+                start, size, 0, 0);
+        break;
+    case SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID:
+        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
+                start, size, arg4, 0);
+        break;
+    case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA:
+        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
+                start, size, 0, 0);
+        break;
+    case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID:
+        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
+                start, size, arg4, 0);
+        break;
+
+    default:
+        printk("%s: unknown function ID [%lu]\n",
+               __func__, fid);
+        result = -EINVAL;
+        break;
+    };
+
+    if ( ret.error )
+    {
+        result = sbi_err_map_xen_errno(ret.error);
+        printk("%s: hbase=%lu hmask=0x%lx failed (error %d)\n",
+               __func__, hbase, hmask, result);
+    }
+
+    return result;
+}
+
+static int __sbi_rfence_v02(unsigned long fid,
+                const unsigned long *hart_mask,
+                unsigned long start, unsigned long size,
+                unsigned long arg4, unsigned long arg5)
+{
+    struct cpumask tmask;
+    unsigned long hart, hmask, hbase;
+    int result;
+
+    if (!hart_mask)
+    {
+        sbi_cpumask_to_hartmask(&cpu_online_map, &tmask);
+        hart_mask = cpumask_bits(&tmask);
+    }
+
+    hmask = hbase = 0;
+    for_each_set_bit(hart, hart_mask, CONFIG_NR_CPUS)
+    {
+        if (hmask && ((hbase + BITS_PER_LONG) <= hart))
+        {
+            result = __sbi_rfence_v02_real(fid, hmask, hbase,
+                            start, size, arg4);
+            if (result)
+                return result;
+            hmask = hbase = 0;
+        }
+
+        if (!hmask)
+            hbase = hart;
+
+        hmask |= 1UL << (hart - hbase);
+    }
+
+    if (hmask)
+    {
+        result = __sbi_rfence_v02_real(fid, hmask, hbase,
+                        start, size, arg4);
+        if (result)
+            return result;
+    }
+
+    return 0;
+}
+
+static int (*__sbi_rfence)(unsigned long fid,
+        const unsigned long *hart_mask,
+        unsigned long start, unsigned long size,
+        unsigned long arg4, unsigned long arg5) = NULL;
+
+void sbi_remote_sfence_vma(const unsigned long *hart_mask,
+                           unsigned long start,
+                           unsigned long size)
+{
+    __sbi_rfence(SBI_EXT_RFENCE_REMOTE_SFENCE_VMA,
+             hart_mask, start, size, 0, 0);
+}
+
+#define sbi_get_spec_version()		\
+    sbi_ext_base_func(SBI_EXT_BASE_GET_SPEC_VERSION)
+
+#define sbi_get_firmware_id()		\
+    sbi_ext_base_func(SBI_EXT_BASE_GET_IMP_ID)
+
+#define sbi_get_firmware_version()	\
+    sbi_ext_base_func(SBI_EXT_BASE_GET_IMP_VERSION)
+
+int sbi_probe_extension(long extid)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_BASE, SBI_EXT_BASE_PROBE_EXT, extid,
+            0, 0, 0, 0, 0);
+    if (!ret.error && ret.value)
+        return ret.value;
+
+    return -EOPNOTSUPP;
+}
+
+static int sbi_spec_is_0_1(void)
+{
+    return (sbi_spec_version == SBI_SPEC_VERSION_DEFAULT) ? 1 : 0;
+}
+
+int sbi_has_rfence(void)
+{
+    return __sbi_rfence ? 1 : 0;
+}
+
+int __init sbi_init(void)
+{
+    int ret;
+
+    ret = sbi_get_spec_version();
+    if (ret > 0)
+        sbi_spec_version = ret;
+
+    printk("SBI specification v%lu.%lu detected\n",
+            sbi_major_version(), sbi_minor_version());
+
+    if ( !sbi_spec_is_0_1() )
+    {
+        sbi_fw_id = sbi_get_firmware_id();
+        sbi_fw_version = sbi_get_firmware_version();
+
+        printk("SBI implementation ID=0x%lx Version=0x%lx\n",
+            sbi_fw_id, sbi_fw_version);
+
+        if ( sbi_probe_extension(SBI_EXT_RFENCE) > 0 )
+        {
+            __sbi_rfence = __sbi_rfence_v02;
+            printk("SBI v0.2 RFENCE extension detected\n");
+        }
+    } else {
+        BUG_ON("Ooops. SBI spec veriosn 0.1 detected. Need to add support");
+    }
+
+    if ( !sbi_has_rfence() )
+    {
+        BUG_ON("At the moment flush_xen_tlb_range_va() uses SBI rfence to "
+               "flush TLB for all CPUS!");
+    }
+
+    return 0;
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 37b234360c..497e273081 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -8,6 +8,7 @@
 #include <public/version.h>
 
 #include <asm/early_printk.h>
+#include <asm/sbi.h>
 #include <asm/traps.h>
 
 void arch_get_xen_caps(xen_capabilities_info_t *info)
@@ -55,6 +56,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     trap_init();
 
+    sbi_init();
+
 #ifdef CONFIG_SELF_TESTS
     test_macros_from_bug_h();
 #endif
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:36:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:36:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764353.1174796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWe2Q-0005lv-CB; Wed, 24 Jul 2024 15:36:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764353.1174796; Wed, 24 Jul 2024 15:36:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWe2Q-0005li-91; Wed, 24 Jul 2024 15:36:22 +0000
Received: by outflank-mailman (input) for mailman id 764353;
 Wed, 24 Jul 2024 15:36: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWdy8-0005Od-Lf
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:31:56 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dadb5699-49d1-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:31:54 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2f032cb782dso9068661fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:31:54 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ef2b568858sm13237311fa.35.2024.07.24.08.31.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:31: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: dadb5699-49d1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835113; x=1722439913; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lI5HWGurPenfum8/x5dM5na/gvlX/NTHbcJKhmKmsaw=;
        b=fjysHqPwsWHfHhBAuFL4TqYpd/nf0wUFQoL6qTmMgV/+cCWqVCBZ0k6vCJ9bpWREDt
         lIBNaTUTDx3e+MC+kEiI0GVk3sMfCxIbnzTioUsr+gY/cbyagTAW+tqLrouQ25wGpysR
         705W8Ua/iCO24Y+JYEiHzYECaVVQ/AANbjR8IjLgrzDADPn/W5R3AYWXc88cD4BrVCsC
         a101FCKTxM4XlmJLZy+XqXscW6jCaJHic7o15ey4XwdPZgE+enY/2jW1gOkl3btGodk9
         nGqFDPUfzO/MjMEW8FPpyWmMHVenNkKueexvtXlK/Q4u4fwRnxcNxp9DFovX+A2lHZ+n
         Uukw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835113; x=1722439913;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=lI5HWGurPenfum8/x5dM5na/gvlX/NTHbcJKhmKmsaw=;
        b=cl+79nlLPUXeXYImlTKKSNBQtzpQj3uDBIRO6lxoIOw+SGJBVIuKmzuQIC4NnUSfIy
         Z3DfiWfqXkfRZWvr4f3HfHBt88bmi4Dxy00h8NOoHezra6BEEvbR7hoG5WOC/l2y2a6P
         r9EOOT39AhLE5ZK6j+MbictQbjArZf7nXmqTW1Av2L5cPOQ79TCbzW5Rk10X1h327J6f
         8C1WPrlTfj8kt/WOJQm5ClUcDDs6qAUw6cK9DITDyWPq7PKsjQUT+a8qVRp3gxzgE6pk
         qvVbyqSAe2p3kd7ZSobAhtCAM3QYafpYr/FSx0miKg8G0YBG1NOsXlzDaGXKe1MrPZUj
         um1Q==
X-Gm-Message-State: AOJu0YzO7PodCjE+VbOd1f6jTrPL0JFm6CkIhX+5erOHJjsYu5C243Cd
	9cTuXmEdYjfsdBhz72rTDD1wBQc/7e/8vyHC5V74nwKM/plSOnXTJyMZTIRM
X-Google-Smtp-Source: AGHT+IFP73Maz9Gt5qpz141xPSg5oqeenO+HdR2JthQ4dCu0M1ouI1mY9DQ70NdFpK9qTDh6tCawmg==
X-Received: by 2002:a2e:9f0f:0:b0:2f0:1fb6:344b with SMTP id 38308e7fff4ca-2f039f3b8d9mr1028491fa.47.1721835113139;
        Wed, 24 Jul 2024 08:31: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 8/9] xen/riscv: page table handling
Date: Wed, 24 Jul 2024 17:31:39 +0200
Message-ID: <595c7b6736d6f718bafc7a677fb13881584ce4dc.1721834549.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1721834549.git.oleksii.kurochko@gmail.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduces an implementation of map_pages_to_xen() which requires multiple
functions to work with page tables/entries:
- xen_pt_update()
- xen_pt_mapping_level()
- xen_pt_update_entry()
- xen_pt_next_level()
- xen_pt_check_entry()

During the mentioned above function it is necessary to create Xen tables
or map/unmap them. For that it were introduced the following functions:
- create_xen_table()
- xen_map_table()
- xen_unmap_table()

Also it was introduced various internal macros for convience started with
_PAGE_* which almost duplicate the bits in PTE except _PAGE_BLOCK which
actually doesn't present in PTE which indicates that page larger then 4k
is needed. RISC-V doesn't have a specific bit in PTE and it detect if it
is a superpage or not only by using pte.x and pte.r. From the RISC-V spec:
```
  ...
  4. Otherwise, the PTE is valid. If pte.r = 1 or pte.x = 1, go to step 5.
     Otherwise, this PTE is a pointer to the next level of the page table.
     ... .
  5. A leaf PTE has been found.
     ...
  ...
```

Except that it was introduced flush_xen_tlb_range_va() for TLB flushing
accross CPUs when PTE for requested mapping was properly updated.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - new patch. ( Technically it is reworked version of the generic approach
   which I tried to suggest in the previous version )
---
 xen/arch/riscv/Kconfig                 |   1 +
 xen/arch/riscv/Makefile                |   1 +
 xen/arch/riscv/include/asm/flushtlb.h  |  15 +
 xen/arch/riscv/include/asm/mm.h        |   2 +
 xen/arch/riscv/include/asm/page-bits.h |  36 +++
 xen/arch/riscv/include/asm/page.h      |  73 ++++-
 xen/arch/riscv/mm.c                    |   9 -
 xen/arch/riscv/pt.c                    | 410 +++++++++++++++++++++++++
 8 files changed, 537 insertions(+), 10 deletions(-)
 create mode 100644 xen/arch/riscv/pt.c

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 0112aa8778..9827a12d34 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_PT
 	select HAS_DEVICE_TREE
 	select HAS_PMAP
 
diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 334fd24547..d058ea4e95 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -1,6 +1,7 @@
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
 obj-y += mm.o
+obj-y += pt.o
 obj-$(CONFIG_RISCV_64) += riscv64/
 obj-y += sbi.o
 obj-y += setup.o
diff --git a/xen/arch/riscv/include/asm/flushtlb.h b/xen/arch/riscv/include/asm/flushtlb.h
index cf66e90773..90c65b153f 100644
--- a/xen/arch/riscv/include/asm/flushtlb.h
+++ b/xen/arch/riscv/include/asm/flushtlb.h
@@ -5,6 +5,8 @@
 #include <xen/bug.h>
 #include <xen/cpumask.h>
 
+#include <asm/sbi.h>
+
 /* Flush TLB of local processor for address va. */
 static inline void flush_xen_tlb_one_local(vaddr_t va)
 {
@@ -27,6 +29,19 @@ static inline void flush_xen_tlb_range_va_local(vaddr_t va,
     }
 }
 
+/*
+ * Flush a range of VA's hypervisor mappings from the TLB of all
+ * processors in the inner-shareable domain.
+ */
+static inline void flush_xen_tlb_range_va(vaddr_t va,
+                                          unsigned long size)
+{
+    if ( sbi_has_rfence() )
+        sbi_remote_sfence_vma(NULL, va, size);
+    else
+        BUG_ON("IPI support is need for remote TLB flush");
+}
+
 /*
  * Filter the given set of CPUs, removing those that definitely flushed their
  * TLB since @page_timestamp.
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index a0bdc2bc3a..a7550e77a7 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -42,6 +42,8 @@ static inline void *maddr_to_virt(paddr_t ma)
 #define virt_to_mfn(va)     __virt_to_mfn(va)
 #define mfn_to_virt(mfn)    __mfn_to_virt(mfn)
 
+#define pte_get_mfn(pte) maddr_to_mfn(pte_to_paddr(pte))
+
 struct page_info
 {
     /* Each frame can be threaded onto a doubly-linked list. */
diff --git a/xen/arch/riscv/include/asm/page-bits.h b/xen/arch/riscv/include/asm/page-bits.h
index 8f1f474371..8e40a607d8 100644
--- a/xen/arch/riscv/include/asm/page-bits.h
+++ b/xen/arch/riscv/include/asm/page-bits.h
@@ -3,6 +3,42 @@
 #ifndef __RISCV_PAGE_BITS_H__
 #define __RISCV_PAGE_BITS_H__
 
+/*
+ * PTE format:
+ * | XLEN-1  10 | 9             8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
+ *       PFN      reserved for SW   D   A   G   U   X   W   R   V
+ */
+
+#define _PAGE_PRESENT   BIT(0, UL)
+#define _PAGE_READ      BIT(1, UL)    /* Readable */
+#define _PAGE_WRITE     BIT(2, UL)    /* Writable */
+#define _PAGE_EXEC      BIT(3, UL)    /* Executable */
+#define _PAGE_USER      BIT(4, UL)    /* User */
+#define _PAGE_GLOBAL    BIT(5, UL)    /* Global */
+#define _PAGE_ACCESSED  BIT(6, UL)    /* Set by hardware on any access */
+#define _PAGE_DIRTY     BIT(7, UL)    /* Set by hardware on any write */
+#define _PAGE_SOFT      BIT(8, UL)    /* Reserved for software */
+
+/*
+ * There is no such bits in PTE format for RISC-V.
+ *
+ * _PAGE_BLOCK was introduced to have ability to tell that superpage
+ * should be allocated.
+ */
+#define _PAGE_BLOCK         BIT(9, UL)
+
+#define _PAGE_W_BIT     2
+#define _PAGE_XN_BIT    3
+#define _PAGE_RO_BIT    1
+
+/* TODO: move to somewhere generic part/header ? */
+#define _PAGE_XN        (1U << _PAGE_XN_BIT)
+#define _PAGE_RO        (1U << _PAGE_RO_BIT)
+#define _PAGE_W         (1U << _PAGE_W_BIT)
+#define PAGE_XN_MASK(x) (((x) >> _PAGE_XN_BIT) & 0x1U)
+#define PAGE_RO_MASK(x) (((x) >> _PAGE_RO_BIT) & 0x1U)
+#define PAGE_W_MASK(x)  (((x) >> _PAGE_W_BIT) & 0x1U)
+
 #define PAGE_SHIFT              12 /* 4 KiB Pages */
 #define PADDR_BITS              56 /* 44-bit PPN */
 
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 2308cefb0a..0da52b03a3 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -34,6 +34,7 @@
 #define PTE_LEAF_DEFAULT            (PTE_VALID | PTE_READABLE | PTE_WRITABLE)
 #define PTE_TABLE                   (PTE_VALID)
 
+#define PAGE_HYPERVISOR_RO          (PTE_VALID | PTE_READABLE)
 #define PAGE_HYPERVISOR_RW          (PTE_VALID | PTE_READABLE | PTE_WRITABLE)
 
 #define PAGE_HYPERVISOR             PAGE_HYPERVISOR_RW
@@ -43,13 +44,68 @@
 
 #define pt_index(lvl, va) (pt_linear_offset((lvl), (va)) & VPN_MASK)
 
-/* Page Table entry */
+#define FIRST_SIZE (XEN_PT_LEVEL_SIZE(2))
+
+#define TABLE_OFFSET(offs) (_AT(unsigned int, offs) & ((_AC(1, U) << PAGETABLE_ORDER) - 1))
+
+#if RV_STAGE1_MODE > SATP_MODE_SV48
+#error "need to to update DECLARE_OFFSETS macros"
+#else
+
+#define l0_table_offset(va) TABLE_OFFSET(pt_linear_offset(0, va))
+#define l1_table_offset(va) TABLE_OFFSET(pt_linear_offset(1, va))
+#define l2_table_offset(va) TABLE_OFFSET(pt_linear_offset(2, va))
+#define l3_table_offset(va) TABLE_OFFSET(pt_linear_offset(3, va))
+
+/* Generate an array @var containing the offset for each level from @addr */
+#define DECLARE_OFFSETS(var, addr)          \
+    const unsigned int var[4] = {           \
+        l0_table_offset(addr),              \
+        l1_table_offset(addr),              \
+        l2_table_offset(addr),              \
+        l3_table_offset(addr)               \
+    }
+
+#endif
+
 typedef struct {
+    unsigned long v:1;
+    unsigned long r:1;
+    unsigned long w:1;
+    unsigned long x:1;
+    unsigned long u:1;
+    unsigned long g:1;
+    unsigned long a:1;
+    unsigned long d:1;
+    unsigned long rsw:2;
+#if RV_STAGE1_MODE == SATP_MODE_SV39
+    unsigned long ppn0:9;
+    unsigned long ppn1:9;
+    unsigned long ppn2:26;
+    unsigned long rsw2:7;
+    unsigned long pbmt:2;
+    unsigned long n:1;
+#elif RV_STAGE1_MODE == SATP_MODE_SV48
+    unsigned long ppn0:9;
+    unsigned long ppn1:9;
+    unsigned long ppn2:9;
+    unsigned long ppn3:17;
+    unsigned long rsw2:7;
+    unsigned long pbmt:2;
+    unsigned long n:1;
+#else
+#error "Add proper bits for SATP_MODE"
+#endif
+} pt_t;
+
+/* Page Table entry */
+typedef union {
 #ifdef CONFIG_RISCV_64
     uint64_t pte;
 #else
     uint32_t pte;
 #endif
+pt_t bits;
 } pte_t;
 
 pte_t mfn_to_xen_entry(mfn_t mfn, unsigned int access_bits);
@@ -70,6 +126,21 @@ static inline bool pte_is_valid(pte_t p)
     return p.pte & PTE_VALID;
 }
 
+inline bool pte_is_table(const pte_t p, unsigned int level)
+{
+    (void) level;
+
+    return (((p.pte) & (PTE_VALID
+                       | PTE_READABLE
+                       | PTE_WRITABLE
+                       | PTE_EXECUTABLE)) == PTE_VALID);
+}
+
+static inline bool pte_is_mapping(const pte_t pte, unsigned int level)
+{
+    return !pte_is_table(pte, level);
+}
+
 static inline void invalidate_icache(void)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 959b6fc63e..ecb0f15fa8 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -374,15 +374,6 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     return -1;
 }
 
-int map_pages_to_xen(unsigned long virt,
-                     mfn_t mfn,
-                     unsigned long nr_mfns,
-                     unsigned int flags)
-{
-    BUG_ON("unimplemented");
-    return -1;
-}
-
 static inline pte_t mfn_from_pte(mfn_t mfn)
 {
     unsigned long pte = mfn_x(mfn) << PTE_PPN_SHIFT;
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
new file mode 100644
index 0000000000..e057bc4e98
--- /dev/null
+++ b/xen/arch/riscv/pt.c
@@ -0,0 +1,410 @@
+#include <xen/bug.h>
+#include <xen/domain_page.h>
+#include <xen/errno.h>
+#include <xen/mm.h>
+#include <xen/mm-frame.h>
+#include <xen/pmap.h>
+#include <xen/spinlock.h>
+
+#include <asm/flushtlb.h>
+#include <asm/page.h>
+
+static inline const mfn_t get_root_page(void)
+{
+    unsigned long root_maddr = csr_read(CSR_SATP) << PAGE_SHIFT;
+
+    return maddr_to_mfn(root_maddr);
+}
+
+static inline void set_pte_permissions(pte_t *pte, unsigned int flags)
+{
+    pte->bits.r = PAGE_RO_MASK(flags);
+    pte->bits.x = ~PAGE_XN_MASK(flags);
+    pte->bits.w = PAGE_W_MASK(flags);
+
+    pte->pte |= PTE_ACCESSED | PTE_DIRTY;
+}
+
+/* Sanity check of the entry */
+static bool xen_pt_check_entry(pte_t entry, mfn_t mfn, unsigned int level,
+                               unsigned int flags)
+{
+    /* Sanity check when modifying an entry. */
+    if ( mfn_eq(mfn, INVALID_MFN) )
+    {
+        /* We don't allow modifying an invalid entry. */
+        if ( !pte_is_valid(entry) )
+        {
+            printk("Modifying invalid entry is not allowed.\n");
+            return false;
+        }
+
+        /* We don't allow modifying a table entry */
+        if ( !pte_is_mapping(entry, level) )
+        {
+            printk("Modifying a table entry is not allowed.\n");
+            return false;
+        }
+    }
+    /* Sanity check when inserting a mapping */
+    else if ( flags & _PAGE_PRESENT )
+    {
+        /* We should be here with a valid MFN. */
+        ASSERT(!mfn_eq(mfn, INVALID_MFN));
+
+        /*
+         * We don't allow replacing any valid entry.
+         *
+         * Note that the function xen_pt_update() relies on this
+         * assumption and will skip the TLB flush. The function will need
+         * to be updated if the check is relaxed.
+         */
+        if ( pte_is_valid(entry) )
+        {
+            if ( pte_is_mapping(entry, level) )
+                printk("Changing MFN for a valid entry is not allowed (%#"PRI_mfn" -> %#"PRI_mfn").\n",
+                          mfn_x(pte_get_mfn(entry)), mfn_x(mfn));
+            else
+                printk("Trying to replace a table with a mapping.\n");
+            return false;
+        }
+    }
+    /* Sanity check when removing a mapping. */
+    else if ( (flags & _PAGE_PRESENT) == 0 )
+    {
+        /* We should be here with an invalid MFN. */
+        ASSERT(mfn_eq(mfn, INVALID_MFN));
+
+        /* We don't allow removing a table */
+        if ( pte_is_table(entry, level) )
+        {
+            printk("Removing a table is not allowed.\n");
+            return false;
+        }
+    }
+    /* No check so far. */
+    else
+    {
+        /* We should be here with an invalid MFN */
+        ASSERT(mfn_eq(mfn, INVALID_MFN));
+    }
+
+    return true;
+}
+
+static pte_t *xen_map_table(mfn_t mfn)
+{
+    /*
+     * During early boot, map_domain_page() may be unusable. Use the
+     * PMAP to map temporarily a page-table.
+     */
+    if ( system_state == SYS_STATE_early_boot )
+        return pmap_map(mfn);
+
+    return map_domain_page(mfn);
+}
+
+static void xen_unmap_table(const pte_t *table)
+{
+    /*
+     * During early boot, xen_map_table() will not use map_domain_page()
+     * but the PMAP.
+     */
+    if ( system_state == SYS_STATE_early_boot )
+        pmap_unmap(table);
+    else
+        unmap_domain_page(table);
+}
+
+static int create_xen_table(pte_t *entry)
+{
+    mfn_t mfn;
+    void *p;
+    pte_t pte;
+
+    if ( system_state != SYS_STATE_early_boot )
+    {
+        struct page_info *pg = alloc_domheap_page(NULL, 0);
+
+        if ( pg == NULL )
+            return -ENOMEM;
+
+        mfn = page_to_mfn(pg);
+    }
+    else
+        mfn = alloc_boot_pages(1, 1);
+
+    p = xen_map_table(mfn);
+    clear_page(p);
+    xen_unmap_table(p);
+
+    pte = mfn_to_xen_entry(mfn, PTE_TABLE);
+    write_pte(entry, pte);
+
+    return 0;
+}
+
+#define XEN_TABLE_MAP_FAILED 0
+#define XEN_TABLE_SUPER_PAGE 1
+#define XEN_TABLE_NORMAL_PAGE 2
+
+/*
+ * Take the currently mapped table, find the corresponding entry,
+ * and map the next table, if available.
+ *
+ * The read_only parameters indicates whether intermediate tables should
+ * be allocated when not present.
+ *
+ * Return values:
+ *  XEN_TABLE_MAP_FAILED: Either read_only was set and the entry
+ *  was empty, or allocating a new page failed.
+ *  XEN_TABLE_NORMAL_PAGE: next level mapped normally
+ *  XEN_TABLE_SUPER_PAGE: The next entry points to a superpage.
+ */
+static int xen_pt_next_level(bool read_only, unsigned int level,
+                             pte_t **table, unsigned int offset)
+{
+    pte_t *entry;
+    int ret;
+    mfn_t mfn;
+
+    entry = *table + offset;
+
+    if ( !pte_is_valid(*entry) )
+    {
+        if ( read_only )
+            return XEN_TABLE_MAP_FAILED;
+
+        ret = create_xen_table(entry);
+        if ( ret )
+            return XEN_TABLE_MAP_FAILED;
+    }
+
+    if ( pte_is_mapping(*entry, level) )
+    {
+        return XEN_TABLE_SUPER_PAGE;
+    }
+
+    mfn = pte_get_mfn(*entry);
+
+    xen_unmap_table(*table);
+    *table = xen_map_table(mfn);
+
+    return XEN_TABLE_NORMAL_PAGE;
+}
+
+/* Update an entry at the level @target. */
+static int xen_pt_update_entry(mfn_t root, unsigned long virt,
+                               mfn_t mfn, unsigned int arch_target,
+                               unsigned int flags)
+{
+    int rc;
+    unsigned int level = HYP_PT_ROOT_LEVEL;
+    unsigned int arch_level = level;
+    unsigned int target = arch_target;
+    pte_t *table;
+    /*
+     * The intermediate page tables are read-only when the MFN is not valid
+     * This means we either modify permissions or remove an entry.
+     */
+    bool read_only = mfn_eq(mfn, INVALID_MFN);
+    pte_t pte, *entry;
+
+    /* convenience aliases */
+    DECLARE_OFFSETS(offsets, (paddr_t)virt);
+
+    table = xen_map_table(root);
+    for ( ; level > target; level--, arch_level = level )
+    {
+        rc = xen_pt_next_level(read_only, arch_level, &table, offsets[arch_level]);
+        if ( rc == XEN_TABLE_MAP_FAILED )
+        {
+            /*
+             * We are here because xen_pt_next_level has failed to map
+             * the intermediate page table (e.g the table does not exist
+             * and the pt is read-only). It is a valid case when
+             * removing a mapping as it may not exist in the page table.
+             * In this case, just ignore it.
+             */
+            if ( flags & _PAGE_PRESENT )
+            {
+                printk("%s: Unable to map level %u\n", __func__, arch_level);
+                rc = -ENOENT;
+                goto out;
+            }
+            else
+            {
+                rc = 0;
+                goto out;
+            }
+        }
+        else if ( rc != XEN_TABLE_NORMAL_PAGE ) {
+            break;
+        }
+    }
+
+    if ( arch_level != arch_target )
+    {
+        printk("%s: Shattering superpage is not supported\n", __func__);
+        rc = -EOPNOTSUPP;
+        goto out;
+    }
+
+    entry = table + offsets[arch_level];
+
+    rc = -EINVAL;
+    if ( !xen_pt_check_entry(*entry, mfn, arch_level, flags) )
+        goto out;
+
+    /* We are removing the page */
+    if ( !(flags & _PAGE_PRESENT) )
+        memset(&pte, 0x00, sizeof(pte));
+    else
+    {
+        /* We are inserting a mapping => Create new pte. */
+        if ( !mfn_eq(mfn, INVALID_MFN) )
+        {
+            pte = mfn_to_xen_entry(mfn, PTE_VALID);
+        }
+        else /* We are updating the permission => Copy the current pte. */
+            pte = *entry;
+
+        set_pte_permissions(&pte, flags);
+    }
+
+    write_pte(entry, pte);
+
+    rc = 0;
+
+out:
+    xen_unmap_table(table);
+
+    return rc;
+}
+
+static DEFINE_SPINLOCK(xen_pt_lock);
+
+/* Return the level where mapping should be done */
+static int xen_pt_mapping_level(unsigned long vfn, mfn_t mfn, unsigned long nr,
+                                unsigned int flags)
+{
+    unsigned int level = 0;
+    unsigned long mask;
+    int i;
+
+    /*
+     * Don't take into account the MFN when removing mapping (i.e
+     * MFN_INVALID) to calculate the correct target order.
+     *
+     * `vfn` and `mfn` must be both superpage aligned.
+     * They are or-ed together and then checked against the size of
+     * each level.
+     *
+     * `left` is not included and checked separately to allow
+     * superpage mapping even if it is not properly aligned (the
+     * user may have asked to map 2MB + 4k).
+     */
+    mask = !mfn_eq(mfn, INVALID_MFN) ? mfn_x(mfn) : 0;
+    mask |= vfn;
+
+    /*
+     * Always use level 0 ( 4k mapping ) mapping unless the caller request
+     * block mapping.
+     */
+    if ( likely(!(flags & _PAGE_BLOCK)) )
+        return level;
+
+    for ( i = HYP_PT_ROOT_LEVEL; i > 0; i-- )
+    {
+        if ( !(mask & (BIT(XEN_PT_LEVEL_ORDER(i), UL) - 1)) &&
+            (nr >= BIT(XEN_PT_LEVEL_ORDER(i), UL)) )
+        {
+            level = i;
+            break;
+        }
+    }
+
+    return level;
+}
+
+static int xen_pt_update(unsigned long virt,
+                         mfn_t mfn,
+                         /* const on purpose as it is used for TLB flush */
+                         const unsigned long nr_mfns,
+                         unsigned int flags)
+{
+    int rc = 0;
+    unsigned long vfn = virt >> PAGE_SHIFT;
+    unsigned long left = nr_mfns;
+
+    const mfn_t root = get_root_page();
+
+    /*
+     * It is bad idea to have mapping both writeable and
+     * executable.
+     * When modifying/creating mapping (i.e _PAGE_PRESENT is set),
+     * prevent any update if this happen.
+     */
+    if ( (flags & _PAGE_PRESENT) && !PAGE_RO_MASK(flags) &&
+         !PAGE_XN_MASK(flags) )
+    {
+        printk("Mappings should not be both Writeable and Executable.\n");
+        return -EINVAL;
+    }
+
+    if ( !IS_ALIGNED(virt, PAGE_SIZE) )
+    {
+        printk("The virtual address is not aligned to the page-size.\n");
+        return -EINVAL;
+    }
+
+    spin_lock(&xen_pt_lock);
+
+    while ( left )
+    {
+        unsigned int order, level;
+
+        level = xen_pt_mapping_level(vfn, mfn, left, flags);
+        order = XEN_PT_LEVEL_ORDER(level);
+
+        ASSERT(left >= BIT(order, UL));
+
+        rc = xen_pt_update_entry(root, vfn << PAGE_SHIFT, mfn, level,
+                                    flags);
+        if ( rc )
+            break;
+
+        vfn += 1U << order;
+        if ( !mfn_eq(mfn, INVALID_MFN) )
+            mfn = mfn_add(mfn, 1U << order);
+
+        left -= (1U << order);
+
+        if ( rc )
+            break;
+    }
+
+    /*
+     * The TLBs flush can be safely skipped when a mapping is inserted
+     * as we don't allow mapping replacement (see xen_pt_check_entry()).
+     *
+     * For all the other cases, the TLBs will be flushed unconditionally
+     * even if the mapping has failed. This is because we may have
+     * partially modified the PT. This will prevent any unexpected
+     * behavior afterwards.
+     */
+    if ( !((flags & _PAGE_PRESENT) && !mfn_eq(mfn, INVALID_MFN)) )
+        flush_xen_tlb_range_va(virt, PAGE_SIZE * nr_mfns);
+
+    spin_unlock(&xen_pt_lock);
+
+    return rc;
+}
+
+int map_pages_to_xen(unsigned long virt,
+                     mfn_t mfn,
+                     unsigned long nr_mfns,
+                     unsigned int flags)
+{
+    return xen_pt_update(virt, mfn, nr_mfns, flags);
+}
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:36:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:36:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764373.1174806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWe2q-0006Ro-Of; Wed, 24 Jul 2024 15:36:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764373.1174806; Wed, 24 Jul 2024 15:36: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 1sWe2q-0006Rh-M9; Wed, 24 Jul 2024 15:36:48 +0000
Received: by outflank-mailman (input) for mailman id 764373;
 Wed, 24 Jul 2024 15:36:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QZ/A=OY=bounce.vates.tech=bounce-md_30504962.66a11f8c.v1-511ba71050c64287a48492627d3b9298@srs-se1.protection.inumbo.net>)
 id 1sWe2p-0004li-As
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:36:47 +0000
Received: from mail135-10.atl141.mandrillapp.com
 (mail135-10.atl141.mandrillapp.com [198.2.135.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 887d549d-49d2-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 17:36:46 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-10.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4WTdRJ2R7cz5QkLqL
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 15:36:44 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 511ba71050c64287a48492627d3b9298; Wed, 24 Jul 2024 15:36:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 887d549d-49d2-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721835404; x=1722095904;
	bh=mV9F0yhKfZ8w5MgZPO8xeYhTQIZZoqoj9ikwsTDEwnQ=;
	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=iacdkq26LMe3q7ed8aUtpFSiysSSAoauuf0gz6G1ovH15ENzXz8QVJvOU2bNab0dz
	 mXu4xeug4vbmXkakc9fVqfWSOa/LKskWtQ0VnXfGancsytgFexZhmp9R6CkEVn3kXg
	 537W+Fnt7FwH4/UX+FYVCni2G/VdY2XXGeUNdAKeeIcmlDs/jhzkWNuYLAUL6bmOla
	 A65p8Jgc9woQC0fyNDV5AOFIGniIAVNrdqRUuhzTY3Tu5Z/7+ZOEFGWhR0YF11Smh9
	 KA3QPdbKdIKggtvIilyRhuCH2lsts6QueIu16aIJXuokne2I2HbIkil0zqus2tNPTc
	 bprPwb5e9cuhg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721835404; x=1722095904; i=anthony.perard@vates.tech;
	bh=mV9F0yhKfZ8w5MgZPO8xeYhTQIZZoqoj9ikwsTDEwnQ=;
	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=bCKnE1lPavt6MV/DforQx/iiiFvNk43Ru7xH4toygDk5g4Y9I2HV5bZzF1rcLhaVe
	 2ZNvLXefm6eDZl1SY9P3FabHc+q7SHcSC8dt2Yh9q4BcQsaNd3An2Yrmz69hoLZiS9
	 T7SMg6tSXN5MkGCpf0JBw3iJQW2tuYbXGk4In7DKW9LXIqVVGlCqZUDp9OKw8G7YNw
	 /fj4dovKkbyLnbGD4zNRIVthbJqZNwy4jVwIeJ+jaMOlxO57BkMNwhd1oCSJhfSkAS
	 JMNnY8vS6sdaqPYX7HqIla6DOpRfqBlSlSJw0ntiyfrAmqiVZiPSFeI+8R/+yD3bbC
	 nq+7dQIcezBeA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20xen=20|=20Failed=20pipeline=20for=20staging-4.19=20|=202d7b6170?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721835403611
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Message-Id: <ZqEfi3WkRTzDqRWi@l14>
References: <66a0fe638f16a_33beeb0103995@gitlab-sidekiq-catchall-v2-96b77f447-9jjmp.mail> <24be503c-7c8a-4db9-aee4-04b0c872c0dc@suse.com>
In-Reply-To: <24be503c-7c8a-4db9-aee4-04b0c872c0dc@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.511ba71050c64287a48492627d3b9298?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240724:md
Date: Wed, 24 Jul 2024 15:36:44 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Wed, Jul 24, 2024 at 03:18:50PM +0200, Jan Beulich wrote:
> On 24.07.2024 15:15, GitLab wrote:
> > 
> > 
> > Pipeline #1385987377 has failed!
> > 
> > Project: xen ( https://gitlab.com/xen-project/hardware/xen )
> > Branch: staging-4.19 ( https://gitlab.com/xen-project/hardware/xen/-/commits/staging-4.19 )
> > 
> > Commit: 2d7b6170 ( https://gitlab.com/xen-project/hardware/xen/-/commit/2d7b6170cc69f8a1a60c52d87ba61f6b1f180132 )
> > Commit Message: hotplug: Restore block-tap phy compatibility (a...
> > Commit Author: Jason Andryuk ( https://gitlab.com/jandryuk-amd )
> > Committed by: Jan Beulich ( https://gitlab.com/jbeulich )
> > 
> > 
> > Pipeline #1385987377 ( https://gitlab.com/xen-project/hardware/xen/-/pipelines/1385987377 ) triggered by Jan Beulich ( https://gitlab.com/jbeulich )
> > had 3 failed jobs.
> > 
> > Job #7415912260 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/7415912260/raw )
> > 
> > Stage: test
> > Name: qemu-alpine-x86_64-gcc
> 
> This is the one known to fail more often than not, I think, but ...
> 
> > Job #7415912175 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/7415912175/raw )
> > 
> > Stage: build
> > Name: ubuntu-24.04-x86_64-clang
> > Job #7415912173 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/7415912173/raw )
> > 
> > Stage: build
> > Name: ubuntu-22.04-x86_64-gcc
> 
> ... for these two I can't spot any failure in the referenced logs. What's going on
> there?

They are crutial information missing in that email, the actual reason
given by gitlab for the failures: "There has been a timeout failure or
the job got stuck." (That message can be seen when going to the url,
removing "/raw" part, and scrolling to the top. Or looking at the side
bar and seen a duration that well above 1h)

Communication between gitlab and the runner might be broken in those
cases, or the runner stop working.

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:37:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:37:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764378.1174816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWe38-0006un-0j; Wed, 24 Jul 2024 15:37:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764378.1174816; Wed, 24 Jul 2024 15:37:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWe37-0006ug-Tp; Wed, 24 Jul 2024 15:37:05 +0000
Received: by outflank-mailman (input) for mailman id 764378;
 Wed, 24 Jul 2024 15: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=fJNX=OY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWe36-0005XQ-LM
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:37:04 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 93083a68-49d2-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:37:03 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52efd8807aaso5688582e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:37:03 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52ef5571e54sm1926821e87.201.2024.07.24.08.37.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 24 Jul 2024 08:37: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: 93083a68-49d2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721835422; x=1722440222; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=xwhjoxlxMG+4UFTMGiDrbv+iUC/5fTZUmfSjb0fcIrc=;
        b=TI1yJ74m4yshLdls81eW/CRxNRitaqvseE6ErMeHy3zcIUofZID3Qbad0ZehqeuqDV
         MOkKVq8yX/ZG0pvjD+OdfsuxQbkmWIO1aX79YOZ1oB0rJ3fpiBlyMpfHXM9ntDydLgae
         XhD3sD1L6ndJHX4hW4sE0uf+WO5UoqXlX8oMSpTS6rACKQBd+AWn9llbrF2XTrUEDLJV
         ZrPGz7vqVdd7FTsa8yU5kkP6pdh+DVpeOY4601Ar9+YwLHSHPaEswiNdxLQb0wCsvknr
         RyNPgTywhn/uTjKcZG2ExXGJWQYfXm95WnJ7LFq8vkBn0zDejbSwJteNfxH7jywulY0G
         XGdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721835422; x=1722440222;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=xwhjoxlxMG+4UFTMGiDrbv+iUC/5fTZUmfSjb0fcIrc=;
        b=FCnsFPF2VgNgsKL0whHg2o0R649CcupFEGNla+m0wRbEwHHGlLrbhUS2pWSzgby7uK
         rVdWSARIncKKHvmcxnyGQzBaYhA6h5BtB6FDyFuashTFD/Yuvr5bC1mf7vfrCSBc6ZC6
         e6mX0KXlPwoF/z80kBC49zYumAoCZfoyQSfKYrZ5ak93ocyTssoRt8TTIzYiSNPs9N4R
         aJtZvoCaEIm86nuPdzl018Cz+u56B7UNbnT91NZg5VFXVYEuuMu5cqKMgS0qh1muUQ4r
         jkjAWQwIFKa1fpSebEb3bs9BQJCKGx5NrqrEzAztaSrXSlp9h4JO2PAeZiMkwlt5BM5s
         tXOA==
X-Forwarded-Encrypted: i=1; AJvYcCX+q6DiBKJXvqbvyPJ9HLuzzROqguqXyrgHCmhq3wOlj5TukO2gd9RLLbGMSV8xrIcJssfW8ZAQdj1QDnyJfPUZqjANWPly5UGwEvtRMkE=
X-Gm-Message-State: AOJu0YxmKdpVBUA9vdSYGQMmmu8cRttyvkw1DQfKlZx5ucaZunLv2IVT
	WUUO9tR3AFadMp0Hfg6Oit9Ufu0ARo89VA9bEE5TyMgFugL6/CgMaj7+B0BE
X-Google-Smtp-Source: AGHT+IFDceC437g+qwBiulIxDWfM5hGskr0tnjtoW1ZWxgm3Y129gpGd8HiZipfg5+4y+sm8BBirgA==
X-Received: by 2002:a05:6512:10cf:b0:52e:fa35:15a4 with SMTP id 2adb3069b0e04-52fd3f1f72dmr49560e87.33.1721835422379;
        Wed, 24 Jul 2024 08:37:02 -0700 (PDT)
Message-ID: <3dd8e6e3934279f4a9afff7c88da57777ecec633.camel@gmail.com>
Subject: Re: [PATCH for-4.19] hotplug: Restore block-tap phy compatibility
 (again)
From: oleksii.kurochko@gmail.com
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Jason Andryuk <jason.andryuk@amd.com>, Jason Andryuk
 <jandryuk@gmail.com>,  xen-devel@lists.xenproject.org
Date: Wed, 24 Jul 2024 17:37:01 +0200
In-Reply-To: <ZqDqcoY4e0p2UJ3v@l14>
References: <20240715234631.4468-1-jandryuk@gmail.com>
	 <Zp/GcCUVPX/d/7qx@l14> <ac3d7bcd-6ed8-4ded-bb5d-ab9c228e9579@amd.com>
	 <8a185aeabe4b3928906036590affbec8658bf226.camel@gmail.com>
	 <ZqDqcoY4e0p2UJ3v@l14>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Wed, 2024-07-24 at 11:50 +0000, Anthony PERARD wrote:
> On Tue, Jul 23, 2024 at 07:31:58PM +0200,
> oleksii.kurochko@gmail.com=C2=A0wrote:
> > On Tue, 2024-07-23 at 11:04 -0400, Jason Andryuk wrote:
> > > Oleksii, this is a fix (for an incomplete fix) for 4.19.=C2=A0
> > > 76a484193d=20
> > > broke compatibility for block-tap with the blktap2 kernel model
> > > (when
> > > adding support for tapback).=C2=A0 This finishes restoring blktap2
> > > support.
> > >=20
> > > I realize it's late in the release if you don't want to take it.
> > It's pretty late but I just wanted to clarify:
> > 1. Is so critical that we should have this in 4.19?
>=20
> I don't think it's critical enough to justify delaying the release.
> blktap2 is I think an out-of-tree kernel module so probably not very
> used.
> We might want to at least put a note in "known issue" about blktap2
> support by the "block-tap" script been broken.
It was merged and I think it won't delay a release as this feature is
disabled by default.

~ Oleksii

>=20
> > 2. If we won't take it now, then will it be backported anyway?
>=20
> Yes, we want to backport that as soon as 4.19 tree is open for
> backports, to have the fix in 4.19.1.
>=20
> Cheers,
>=20



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:53:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:53:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764397.1174827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWeIg-0002HC-9I; Wed, 24 Jul 2024 15:53:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764397.1174827; Wed, 24 Jul 2024 15:53:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWeIg-0002H5-61; Wed, 24 Jul 2024 15:53:10 +0000
Received: by outflank-mailman (input) for mailman id 764397;
 Wed, 24 Jul 2024 15: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWeIf-0002Gz-Po
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:53:09 +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 d1cd845f-49d4-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 17:53:07 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a7a9185e1c0so168866b.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:53: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-a7ab757bbf4sm57989566b.40.2024.07.24.08.53.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 08:53: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: d1cd845f-49d4-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721836387; x=1722441187; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CBfzmgzpnPfZuQTH7G4ZGzMYX9lIkGizPnCKJTfbn+8=;
        b=WEXZTIfCKSIF99SGgiExIAWDMJWQbdZyYXzIZivyu15TvlUQzcuWGXMgZEbx8O3fY4
         Gj7JNFayfpGC757ocqrnDNSjBc9gmjuQOgGsCNyGi37VB1sn7i969jotfEHbMvRC1fdp
         eUzA0cT+fxt5QIGDIhFEMqpRv9WiDGNkHPV+pNo3K1VFTFTD0riJOOc4shpgDStiSWg8
         CC5JgLtJo+yg8uZOHCbvdniiwX0d5DWRIDYPz5tE98XsOGAQOw8EtckQN8DJwRnAHKle
         X9HQh5aBtuKN8nqC5ZLRC+BpqUqYNMX/8qfJxqcXcHCh9Yt1DavewGrpV9ucpfGk83M5
         /6nw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721836387; x=1722441187;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CBfzmgzpnPfZuQTH7G4ZGzMYX9lIkGizPnCKJTfbn+8=;
        b=TCgQPuvTMnGb+GZmMLUgqfys9CQYpZb5dMaI/tUK+iv5S7vDh5568tH6UWfoqOGrlU
         hDiu0w9LGNA6W5y8qJd3NllA//PhdsDmmElzYmBO3T/ziZrGHJMlzlXo61NZfbAgHwyh
         AO1FJlySbjGhOOZZysG3s+TE+cvwsGbqQGe78e2Baf6QvG7YQHMLpb9n/ofp8Da7IpAl
         Z8OKds4LLJ6U/iF9Lk1b7BUZxXc18QLhn8d0UcNBTZL9lE55Gy9E0jm83tOEqYLrKOsv
         vBf4aZJny0TVrIQcfKmOa1RISzjaG5f+slMi+1q5D1iAmWLwfLXoqznzJHQkk8HqI47W
         WJfA==
X-Forwarded-Encrypted: i=1; AJvYcCUa5EldksZR5e51Mt1u2AI8MxjJyqOCPzUiUXBmjYTGbyBWPfSyRum/IjFHyhC9GWctplX/wV0+eaZydLPfwwi9p/65NNlbc0aJ5K9D/NM=
X-Gm-Message-State: AOJu0Yx2iKeZ5Zv5DTJU/B3MrKE6PsYATpnxEoTZrPeTHklA4x6rEtZF
	cco7kD2m4zjEQs2mK+P164koHU+aA6v4YQOOQ2rxfr4UoQUDhq2w1g3JvdgeZw==
X-Google-Smtp-Source: AGHT+IESuc1HnGQfC2wevBP2iYTiR6dLcnM5L3p3eKEwU1dV6s0qzP1ET4vdp8AAlIY2xb8/wjyFIw==
X-Received: by 2002:a17:907:7e81:b0:a7a:a46e:dc3f with SMTP id a640c23a62f3a-a7ab0f9ccffmr213146866b.45.1721836386944;
        Wed, 24 Jul 2024 08:53:06 -0700 (PDT)
Message-ID: <10dc5d41-e1da-4222-9334-7de76363adc7@suse.com>
Date: Wed, 24 Jul 2024 17:53:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 05/17] xen/x86: address violations of MISRA C:2012
 Directive 4.10
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
 <4395577d2a07f6edaebbef937cb96028bb92de31.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4395577d2a07f6edaebbef937cb96028bb92de31.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 10:14, Alessandro Zucchelli wrote:
> From: Simone Ballarin <simone.ballarin@bugseng.com>
> 
> Add or move inclusion guards to address violations of
> MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
> to prevent the contents of a header file being included more than
> once").
> 
> Inclusion guards must appear at the beginning of the headers
> (comments are permitted anywhere).
> 
> Mechanical change.
> 
> Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

Provided the description of the scheme itself goes in first:
Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:55:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:55:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764402.1174837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWeKX-00030y-Ju; Wed, 24 Jul 2024 15:55:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764402.1174837; Wed, 24 Jul 2024 15:55: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 1sWeKX-00030r-H6; Wed, 24 Jul 2024 15:55:05 +0000
Received: by outflank-mailman (input) for mailman id 764402;
 Wed, 24 Jul 2024 15:55: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWeKW-00030j-SB
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:55:04 +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 16ffb693-49d5-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 17:55:03 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-58b0beaf703so5901217a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:55: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
 a640c23a62f3a-a7a92dddccdsm199841566b.79.2024.07.24.08.55.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 08:55: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: 16ffb693-49d5-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721836503; x=1722441303; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WAJV7AqRHNU+zRboJgZu1Kleq20H7Ajj8B/uuEFbouA=;
        b=YjTJdI6wf4K9M7dM7vlSXENO8lpNFPqqOBLbBlXMTzwGIarOkXeZkOkELil6+7C/Tl
         bcjlIYHpSXKWCmP1ddq9K8N3GQlD03OaHIIKdJ1RFBP0rBHFiD2QPVyKYFce0/cKue6y
         eLDArzreLT3oqQrrf/DL30kS0P5WWqJ6tKsybU7tjTNB9hLXoa+ggCkeyCfzQHjSfxb8
         M/8huQh2P994lJA4d0mPuOkL547huER1hCQ6tyhobnPzKNh+/dEmG8CeKDB4QFafypQ3
         txiF1ZAJys/QGpTJ2QAKX+s5rtcnzisyO8O94Ohkalqd1VgWVsJ/pAn+i3uADwht5f8C
         5rBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721836503; x=1722441303;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WAJV7AqRHNU+zRboJgZu1Kleq20H7Ajj8B/uuEFbouA=;
        b=C6d1GK+HMfuIsWGFtENFhZxNcz8wWGwDjh6+xzHBAad6FK+JfEo4gWCFtHWLFE8+DA
         X1QJXw4Hbik6XZrrMwtSwI2Mqa8F5+X5miCUhig7+fgAFvQoE3E1IZhKfxBZrIlqAv2l
         mIyim1eUd1ktLmg4EeBJEDfmfHV9Q04VjyETaZczsGzuIBCDhPXHFQ18vu8FDF3eLK1q
         rt2fm0ikls3x3QRtvQsB8ar/OTLz+mbIbJ3qh5JYbBw1nCvKkd0scg/HB3FDXxYk3yw/
         pcfrZAzmv3IeR+VW0vacAH2Yo/vPb3C8eoL+Bk1kxqLhbUGi9PB8V2IOn6N5dAAIoJZj
         KVhA==
X-Forwarded-Encrypted: i=1; AJvYcCX6HQB+J2svXpr6H97oO2uGu2WPqqFvorPu3/0ClcXvEk5SR/WxDUnpYzAjGSiDgJC+taRfWSlPygdaHAVQ1jUbSxt/f/g+u8kLwHMzf10=
X-Gm-Message-State: AOJu0Yyl0pcySvqujYUJ0eXabd55H2l2owZhC2h+3ruHWp3ZcMUS6JTV
	wefQhN9upHs1DXR3MhXaA/91hOPGMsWIC+pNimZU4lLU7sbDKQaagMSW6i/+iA==
X-Google-Smtp-Source: AGHT+IHi+Ul9tMRm+NRwLJAHB96rx47aulaf5BGkLVpMCuguQLwVq22lZDGR0JiDfkbrqiQuOp69Fw==
X-Received: by 2002:a17:907:728b:b0:a77:b4e3:4fca with SMTP id a640c23a62f3a-a7a87bf3d94mr464174666b.9.1721836503119;
        Wed, 24 Jul 2024 08:55:03 -0700 (PDT)
Message-ID: <3b9a9dcc-dd85-4c0e-8880-f584aa3df17a@suse.com>
Date: Wed, 24 Jul 2024 17:55:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 09/17] xen: address violations of MISRA C:2012
 Directive 4.10
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <jgrall@amazon.com>, xen-devel@lists.xenproject.org
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
 <8776f366569c1e789eaaabc8d9204d11abbf1a48.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8776f366569c1e789eaaabc8d9204d11abbf1a48.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 10:15, Alessandro Zucchelli wrote:
> From: Simone Ballarin <simone.ballarin@bugseng.com>
> 
> Amend inclusion guards to address violations of
> MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
> to prevent the contents of a header file being included more than
> once").
> 
> Inclusion guards must appear at the beginning of the headers
> (comments are permitted anywhere) and the #if directive cannot
> be used for other checks.
> 
> Mechanical change.
> 
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Acked-by: Julien Grall <jgrall@amazon.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

Provided the description of the scheme itself goes in first:
Acked-by: Jan Beulich <jbeulich@suse.com>

> ---
> Changes in v5:
> - edit inclusion guards, according to the feedback received

Given how exactly the guards look like is the main aspect here, I
question the retaining of earlier R-b with changes like what is said
here.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:58:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:58:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764409.1174847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWeNP-000497-1e; Wed, 24 Jul 2024 15:58:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764409.1174847; Wed, 24 Jul 2024 15:58: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 1sWeNO-000490-Tx; Wed, 24 Jul 2024 15:58:02 +0000
Received: by outflank-mailman (input) for mailman id 764409;
 Wed, 24 Jul 2024 15: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWeNN-00048u-Ed
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:58: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 80620957-49d5-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 17:58:00 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5a108354819so25164a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:58: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-5a30c2f8c10sm9118686a12.76.2024.07.24.08.57.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 08: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: 80620957-49d5-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721836680; x=1722441480; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bm5XxPL8JVEXsZCYySN+JoxAulKMDqS5gQljFqYacOo=;
        b=JMj9d8GmGkoG5ZOV6LxsyXE14mcrFWGtKaqluyyX6x0VpM2RVr8NsaaivHeOO3gYns
         POKcpZwc8l6zzO5QPpbTl267hqJeN3nY7WxH0FFerA8xz/BmjTM08oVKFZjPnwTP5rLx
         F6OVWfsMxi3yVrw6/UD4Op1G1g3PYjy+ld4/fbszAdYF968UxA4boAtMOHnEusP5i0el
         SFUArvr4HZvXAVXfiPy2K+WmZ8Bq7QV4G/Sqy2wixcG6m53LpAA1xOo1vL5woZ7bcj28
         0sto8mKOh4n1JaBs6oG+ebMYoscfbhXB/JCltY2HkAUKUSbtQd8cxKK612qEXh6C2f84
         u1sA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721836680; x=1722441480;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bm5XxPL8JVEXsZCYySN+JoxAulKMDqS5gQljFqYacOo=;
        b=BNRyoG7J4Dob+qyZoXD2CLVReJbgB5jdfn9sqG1lTuw+PEFVslwE5viWn2OhZnBQ7c
         IjWDes2wvjvkymzEcfF2yxCTep0jm/qyDBkOz1+Y2UKSCNzongjOveZCU+K8aluxme9q
         Z0+W0I5Nz0pRYvYKHXZp58T83OUelcUafuLcwvrXj1Lk9e1UkBx977s8B1c6mZSG+y3g
         LvnTOJm6mWVxf6CrorUtvjDrTFd3eRUP8+NaJWtgtR/BulutlRdoj7n9c1UrxfVx3URz
         NP9KtzrHI+zf9HKFWFQS18OI7tgAdQfzuBDIGSql583lMyAv9wTQGjKK5n/zdwTrR6Mw
         TDAQ==
X-Forwarded-Encrypted: i=1; AJvYcCVDar3bDmpxDsPOt4a1s8vmuamQgmWwD/n304psntWXILoXUoqTvg5Xq2xxamzQHcrNw8aaxKxVRNS5M7RbylqS12uuvaEMLmItRxweK/E=
X-Gm-Message-State: AOJu0YyNULYTfTtgHQ2WYUYBHo4kdjdXAMJeoyk5cyQwR9rj7Td9Z3WV
	fbBv/RgQQATwtR5jIsOKtO0bOtE4N7rjL1EjrhCa9x4IyAVUfeoM7lOBIHF6tA==
X-Google-Smtp-Source: AGHT+IEveIfJdlwA4QfQSHmebcIEugK3yuzY9MGsG6jzNOwAM1iTVhK3/KgRPbsWXal29zTxKYxNEg==
X-Received: by 2002:a05:6402:34d1:b0:5a2:fc48:db2d with SMTP id 4fb4d7f45d1cf-5aaa596c79bmr2654145a12.31.1721836679982;
        Wed, 24 Jul 2024 08:57:59 -0700 (PDT)
Message-ID: <76527d47-8ffa-4d48-a249-fad56012df57@suse.com>
Date: Wed, 24 Jul 2024 17:57:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 10/17] x86/asm: address violations of MISRA C:2012
 Directive 4.10
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
 <20e1d32d9e384f9682fc25d9a55480edd11e344e.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20e1d32d9e384f9682fc25d9a55480edd11e344e.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 10:15, Alessandro Zucchelli wrote:
> --- a/xen/include/Makefile
> +++ b/xen/include/Makefile
> @@ -105,9 +105,14 @@ xlat-y := $(shell sed -ne 's,@arch@,$(compat-arch-y),g' -re 's,^[?!][[:blank:]]+
>  xlat-y := $(filter $(patsubst compat/%,%,$(headers-y)),$(xlat-y))
>  
>  quiet_cmd_xlat_h = GEN     $@
> -cmd_xlat_h = \
> -	cat $(filter %.h,$^) >$@.new; \
> +define cmd_xlat_h
> +	guard=$$(echo ASM__${SRCARCH}__COMPAT__XLAT_H | tr a-z A-Z); \

The generated living in xen/include/compat/xlat.h, I don't think this guard
identifier is correct.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 15:59:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 15:59:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764416.1174856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWeOu-0005CJ-Dd; Wed, 24 Jul 2024 15:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764416.1174856; Wed, 24 Jul 2024 15: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 1sWeOu-0005CC-B9; Wed, 24 Jul 2024 15:59:36 +0000
Received: by outflank-mailman (input) for mailman id 764416;
 Wed, 24 Jul 2024 15: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=D33k=OY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWeOt-0005Bi-13
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 15:59:35 +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 b8261a23-49d5-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 17:59:33 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a7a9a7af0d0so138699366b.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 08:59: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-a7a3c95200fsm653153866b.225.2024.07.24.08.59.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 08: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: b8261a23-49d5-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721836773; x=1722441573; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uR6c8qhLsuCW8Q+NYk+tzRgXYtdBSPcu5ydfiSUPGsI=;
        b=HKb+n/7WLouLT9MpFL+5ZIaLLsArJu4CGjOu9E5OGTRHIZgKOSXAsxRgc8/L0+dSrt
         a7aARba2DgwfgDtyXGA+e3LeIR8hTOLcIPjoMWkr9yW1Lc4WhAMgey3hXgvtWopUWwiJ
         cs4zoHjgpfyTyOtQ9PdvRRYRNtrktNX3fxyYp0mBiBov3lSorlwaqLKtRFi+AdPGWKFQ
         vDM0iqxZinRRiMc+iwoH+YC/04dd5OKMTCTdQaO673HfbwHVr25bg7ZeUpf1wPJAnQyJ
         1f7L46h2/2KcPJm4TRiJSyTN4ja1g45ybMAtEDD3UxNr+/ZzkxVpf6JUX242mA3nP2Nt
         +x7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721836773; x=1722441573;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uR6c8qhLsuCW8Q+NYk+tzRgXYtdBSPcu5ydfiSUPGsI=;
        b=oHCG+VoLq0u4UcxLtr9NKgk8D4Z6BMbAAfd1qsWsia9qg6cBZr28bMUaZHbpUnOzJH
         wKq3bAz/aIvNzc8hkJ3wCtbQc2ZQIv50i2kF73Al3177njK2YrCW8uojcNlhtaEHpEUK
         St1YQQz2u6EoyaPVpPOJZ5D4j4s1p2pWgcY69x5cUP2ZgGcN6dXy+FVo8J1B6nhwLfqk
         m2dFf0QvupKmqdABFGd6LBQs+2soQUiT4Lr4xAMurs08B9CpB+Tm8CN5i5KQNmEKaDZx
         aEQSPj6JVkEKzjYpyTBn/K+vjpvAUOn4rvdDgqCJ2hL3PgkS7obGlAWHlD9geS1yTudx
         1UgQ==
X-Forwarded-Encrypted: i=1; AJvYcCVG0yiYusLhSR5UqZ2NglbGoP7NHiQ4mjjpSkNnN4lAlVrd3OhpjwfsPpBy6ZlPvHRaCfk47ZH/Vp9pQ0VqPd1J75j6xUAJhZClX/uckJA=
X-Gm-Message-State: AOJu0YxC6yOsGRTRoQlvf4h4a5av1qe2hy5/UjiZUgr47AaPX5UnzEHs
	27hEhk+gLAvE7GYleHOmmpnq2aXkhFtRVOwfntmoiiOyfVB+4SolftlyNVOZEw==
X-Google-Smtp-Source: AGHT+IEObHCbEkfq1IHfcbcJV7iHg1jQRtJcSRV/7DBzeezDVJH7nsYBRZGai7W9CEEVwnYqR+e5NA==
X-Received: by 2002:a17:906:dac4:b0:a7a:8378:625e with SMTP id a640c23a62f3a-a7a8378655fmr465130066b.26.1721836773561;
        Wed, 24 Jul 2024 08:59:33 -0700 (PDT)
Message-ID: <78539d78-6971-4cf6-a3b2-17911a6a5c48@suse.com>
Date: Wed, 24 Jul 2024 17:59:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 14/17] xen/x86: rename inclusion guards for
 consistency
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
 <dc082174b2a7feda3860bf8655180af90065e60f.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <dc082174b2a7feda3860bf8655180af90065e60f.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 10:15, Alessandro Zucchelli wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> Edit inclusion guards in order to make them consistent with the
> estabilished naming conventions.
> 
> No functional change.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>

Provided the description of the scheme itself goes in first:
Acked-by: Jan Beulich <jbeulich@suse.com>

> ---
> Changs in v5:
> - edit inclusion guards, according to feedback received

Same remark as on the earlier patch regarding the retained R-b.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 16:37:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 16:37:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764426.1174866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWeza-0004nA-67; Wed, 24 Jul 2024 16:37:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764426.1174866; Wed, 24 Jul 2024 16:37: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 1sWeza-0004n3-3b; Wed, 24 Jul 2024 16:37:30 +0000
Received: by outflank-mailman (input) for mailman id 764426;
 Wed, 24 Jul 2024 16:37:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWezY-0004mr-Ev; Wed, 24 Jul 2024 16:37:28 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWezY-00039t-93; Wed, 24 Jul 2024 16:37:28 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWezX-0006PT-S6; Wed, 24 Jul 2024 16:37:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWezX-0005sG-Rf; Wed, 24 Jul 2024 16:37: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=HE4QnihzMi6fuWkL39zhkBDaIU7dPsouK1Ixidxmysw=; b=K/0M2xONzFiC9mpCLtHreYCNq9
	J3nFcxcELCYSZw7vUfXNbOs8ttjqIhOMJw0VHRG32Jl29r55qjwlqTwiS7v2/NkHPfjQGlFEHieqJ
	cmY36tb7a8HOgDe3eEh0LCH8vMloSgdBemH3E47FQEU4dCrFZ3yZh1G+CaqIzel53GZc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186978-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186978: FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-examine:host-install:broken:regression
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=a17b6db9b00784b409c35e3017dc45aed1ec2bfb
X-Osstest-Versions-That:
    xen=fa58fcdc8cc38b5b73a59209a630ea7170eac713
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 16:37:27 +0000

flight 186978 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186978/

Failures and problems with tests :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-examine      5 host-install           broken REGR. vs. 186971

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186971
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186971
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186971
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186971
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186971
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186971
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  a17b6db9b00784b409c35e3017dc45aed1ec2bfb
baseline version:
 xen                  fa58fcdc8cc38b5b73a59209a630ea7170eac713

Last test of basis   186971  2024-07-23 17:07:07 Z    0 days
Testing same since   186978  2024-07-24 04:56:31 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary

broken-step test-armhf-armhf-examine host-install

Not pushing.

------------------------------------------------------------
commit a17b6db9b00784b409c35e3017dc45aed1ec2bfb
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Fri Jun 28 16:33:56 2024 +0100

    tools/libxs: Stop playing with SIGPIPE
    
    It's very rude for a library to play with signals behind the back of the
    application, no matter ones views on the default behaviour of SIGPIPE under
    POSIX.  Even if the application doesn't care about the xenstored socket, it my
    care about others.
    
    This logic has existed since xenstore/xenstored was originally added in commit
    29c9e570b1ed ("Add xenstore daemon and library") in 2005.
    
    It's also unnecessary.  Pass MSG_NOSIGNAL when talking to xenstored over a
    pipe (to avoid sucumbing to SIGPIPE if xenstored has crashed), and forgo any
    playing with the signal disposition.
    
    This has a side benefit of saving 2 syscalls per xenstore request.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

commit ebaeb0c64a6d363313e213eb9995f48307604ebb
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Jul 18 12:55:48 2024 +0100

    tools/libxs: Use writev()/sendmsg() instead of write()
    
    With the input data now conveniently arranged, use writev()/sendmsg() instead
    of decomposing it into write() calls.
    
    This causes all requests to be submitted with a single system call, rather
    than at least two.  While in principle short writes can occur, the chances of
    it happening are slim given that most xenbus comms are only a handful of
    bytes.
    
    Nevertheless, provide {writev,sendmsg}_exact() wrappers which take care of
    resubmitting on EINTR or short write.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

commit 046efe529e82b8b999d8453d4ea49cb817c3f9b5
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Fri Jun 28 19:40:27 2024 +0100

    tools/libxs: Track whether we're using a socket or file
    
    It will determine whether to use writev() or sendmsg().
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

commit f050c03ce2ad0095ff0bec5f9ec673bb2026cf16
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Jul 18 12:03:03 2024 +0100

    tools/libxs: Rationalise the definition of struct xs_handle
    
    Right now there are two completely different struct xs_handle definitions,
    depend on #ifdef USE_PTHREAD.  One is quite well hidden, and often escapes
    updates.
    
    Rework struct xs_handle using some interior ifdefary.  It's slightly longer,
    but much easier to follow.  Importanly, this makes it much harder to forget
    the !PTHREAD case when adding a "common" variable.
    
    No functional change.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

commit e2a93bed8b9e0f0c4779dcd4b10dc7ba2a959fbc
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Jul 18 10:13:04 2024 +0100

    tools/libxs: Rework xs_talkv() to take xsd_sockmsg within the iovec
    
    We would like to writev() the whole outgoing message, but this is hard given
    the current need to prepend the locally-constructed xsd_sockmsg.
    
    Instead, have the caller provide xsd_sockmsg in iovec[0].  This in turn drops
    the 't' and 'type' parameters from xs_talkv().
    
    Note that xs_talkv() may alter the iovec structure.  This may happen when
    writev() is really used under the covers, and it's preferable to having the
    lower levels need to duplicate the iovec to edit it upon encountering a short
    write.  xs_directory_part() is the only function impacted by this, and it's
    easy to rearrange to be compatible.
    
    No functional change.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

commit 42db2deb5e7617f0459b68cd73ab503938356186
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Jul 18 10:23:00 2024 +0100

    tools/libxs: Fix length check in xs_talkv()
    
    If the sum of iov element lengths overflows, the XENSTORE_PAYLOAD_MAX can
    pass, after which we'll write 4G of data with a good-looking length field, and
    the remainder of the payload will be interpreted as subsequent commands.
    
    Check each iov element length for XENSTORE_PAYLOAD_MAX before accmulating it.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 16:56:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 16:56:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764436.1174877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWfHR-0007xE-MQ; Wed, 24 Jul 2024 16:55:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764436.1174877; Wed, 24 Jul 2024 16:55:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWfHR-0007x7-Jn; Wed, 24 Jul 2024 16:55:57 +0000
Received: by outflank-mailman (input) for mailman id 764436;
 Wed, 24 Jul 2024 16: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=BqPM=OY=bounce.vates.tech=bounce-md_30504962.66a13219.v1-b7fbadff23584586971799825d4c5773@srs-se1.protection.inumbo.net>)
 id 1sWfHR-0007x1-1K
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 16:55:57 +0000
Received: from mail135-10.atl141.mandrillapp.com
 (mail135-10.atl141.mandrillapp.com [198.2.135.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 973ddb23-49dd-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 18:55:55 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-10.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4WTgBd4ZVxz5QkSg0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 16:55:53 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b7fbadff23584586971799825d4c5773; Wed, 24 Jul 2024 16:55: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: 973ddb23-49dd-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721840153; x=1722100653;
	bh=qCZ6mYVmJIRN3TaxhdQ3Db+DFjiS3ogKT9Gjtzui1Vk=;
	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=H6aPVHncsrkoIImxZYOpzM+iA2BzkvCml0Mr4wJa0FhTsha9hJzz9pJzRiQFRPlC3
	 1gsfYRhRFkBiokXP20kOVPls90fIO4j3pvMz+1g5SmVRTHIixeHHcggGl89yGY6+Hg
	 shmAjkw7PuGZORjydj5cIrS/XyqO+ha0GDFSO4SrDtNBF4EtIrTG68jW7EdAFgzL4Z
	 cP3wbMBTuJbEiExiiD85nQYMHD5yrLp/oVikpsmRaLzsEukXtYljOiZRfOAfYNNw7q
	 kF6FiEB4xLoVcuHF4hYsE0xBSiRo6J2O0hOYxEeEd2F3cNvLcMI3/uNnYcqYzkR6Gx
	 usR2/GTlNSn6Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721840153; x=1722100653; i=anthony.perard@vates.tech;
	bh=qCZ6mYVmJIRN3TaxhdQ3Db+DFjiS3ogKT9Gjtzui1Vk=;
	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=VdvWr7rJ+svqNL6JvH9rjKtd22iizsWLqPMd1Qln5HS713wDcGKDuSMvMS3utDL3Z
	 Va/DjjKWxGUB2xj7rKmeR30tndnsdvoBg6hH6Hg7BvUq0bCoaknkWmhtJo91X21YIp
	 9AgS9N5T1o0l5xvGhzrXE8KlItv91Rd5QP2+lgqI+SS9uw/fENim3i/45PBjvQpFHp
	 zyp72je8FH9/z31SjKOY9m456YndDIiB6CbTLt5ci52zEOGXc3yNcpuLcWIzxcUBFZ
	 +AXDOWa3yA3iHV106fo6HVSRy3H5jnSmZsYsgt4OeirIx1jyTNtdiX9SD+FAKkIYEO
	 JqV2SAM4pwaAw==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v5=202/4]=20x86/ucode:=20refactor=20xen-ucode=20to=20utilize=20getopt?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721840152823
To: Fouad Hilly <fouad.hilly@cloud.com>
Cc: xen-devel@lists.xenproject.org
Message-Id: <ZqEyGD4wgL/z9nn5@l14>
References: <20240712130749.1272741-1-fouad.hilly@cloud.com> <20240712130749.1272741-3-fouad.hilly@cloud.com>
In-Reply-To: <20240712130749.1272741-3-fouad.hilly@cloud.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.b7fbadff23584586971799825d4c5773?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240724:md
Date: Wed, 24 Jul 2024 16:55:53 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Jul 12, 2024 at 02:07:47PM +0100, Fouad Hilly wrote:
> diff --git a/tools/misc/xen-ucode.c b/tools/misc/xen-ucode.c
> index 390969db3d1c..8de82e5b8a10 100644
> --- a/tools/misc/xen-ucode.c
> +++ b/tools/misc/xen-ucode.c
> @@ -71,12 +72,29 @@ static void show_curr_cpu(FILE *f)
>      }
>  }
>  
> +static void usage(FILE *stream, const char *name)
> +{
> +    fprintf(stream,
> +            "%s: Xen microcode updating tool\n"
> +            "options:\n"
> +            "  -h, --help            display this help\n"
> +            "  -s, --show-cpu-info   show CPU information\n"
> +            "Usage: %s [microcode file] [options]\n", name, name);

FYI, I disagree with Andy about the order of this message. First is
"Usage:" which explain where the option (dash-prefixed) can go, and
which are the mandatory arguments, sometime having all the single-letter
option in this line as well. Then there's an explanation of what the
options are. I've check `bash`, `cat`, `xl`, `gcc`.

I wonder which CLI program would print the minimum amount of information
on how to run the program as the last line of the help message.

> @@ -86,22 +104,34 @@ int main(int argc, char *argv[])
>          exit(1);
>      }
>  
> -    if ( argc < 2 )
> +    while ( (opt = getopt_long(argc, argv, "hs", options, NULL)) != -1 )
>      {
> -        fprintf(stderr,
> -                "xen-ucode: Xen microcode updating tool\n"
> -                "Usage: %s [<microcode file> | show-cpu-info]\n", argv[0]);
> -        show_curr_cpu(stderr);
> -        exit(2);
> +        switch (opt)
> +        {
> +        case 'h':
> +            usage(stdout, argv[0]);
> +            exit(EXIT_SUCCESS);
> +
> +        case 's':
> +            show_curr_cpu(stdout);
> +            exit(EXIT_SUCCESS);
> +
> +        default:
> +            goto ext_err;
> +        }
>      }
>  
> -    if ( !strcmp(argv[1], "show-cpu-info") )
> +    if ( optind == argc )
> +        goto ext_err;
> +
> +    /* For backwards compatibility to the pre-getopt() cmdline handling */
> +    if ( !strcmp(argv[optind], "show-cpu-info") )
>      {
>          show_curr_cpu(stdout);
>          return 0;
>      }
>  
> -    filename = argv[1];
> +    filename = argv[optind];
>      fd = open(filename, O_RDONLY);
>      if ( fd < 0 )
>      {
> @@ -146,4 +176,10 @@ int main(int argc, char *argv[])
>      close(fd);
>  
>      return 0;
> +
> + ext_err:
> +    fprintf(stderr,
> +            "%s: unable to process command line arguments\n", argv[0]);

A nice to have would be to have a better error message to point out
what's wrong with the arguments. For that you could print the error
message before "goto ext_err". One would be "unknown option" for the
first goto, and "missing microcode file" for the second goto, that is
instead of printing this more generic error message.

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 17:24:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 17:24:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764445.1174887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWfij-00044C-VZ; Wed, 24 Jul 2024 17:24:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764445.1174887; Wed, 24 Jul 2024 17:24:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWfij-000445-Ss; Wed, 24 Jul 2024 17:24:09 +0000
Received: by outflank-mailman (input) for mailman id 764445;
 Wed, 24 Jul 2024 17:24:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rh+e=OY=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sWfij-00043z-2P
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 17:24:09 +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 8839c426-49e1-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 19:24:07 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a77ec5d3b0dso11425666b.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 10:24:07 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7a92dddccdsm206680066b.79.2024.07.24.10.24.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 10:24: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: 8839c426-49e1-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721841847; x=1722446647; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4Rvyrsvi4VDHSNTEoTN5RHC0ozeuUeA8jV41FRDsJis=;
        b=hE0SX6Jc+MvvtI9AtIe+7N9hcH1HOR4XlUzWvjU4BfT86VMZB0Y2vpjOc1iQWmm8iD
         FFZfEPGTb+KkDfNeoIMcAZpZVrzv07WsSZJFgT2y80/eldnlF7aVmHJe11MbnRR8oKXv
         ja0kwnzcy6ZAt0YdmqUHxzkGAe81LlTwkd35E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721841847; x=1722446647;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4Rvyrsvi4VDHSNTEoTN5RHC0ozeuUeA8jV41FRDsJis=;
        b=FPkw3ZSzI2kmBntN+ksopDeHntFgs42TsgzhNtgfZKFbjV+vVqGzx5GAZVdz0Og6EH
         ozhgtaRuOZasBuKPWL/Nr/epyKIYN9Kqo1aUC9AXYpW37Aoxf4kDf2YB2vyL1q7nGaZQ
         cSt4vQZfQFz7YrqOzGxfcD10IZZds8aErVksjcsTisv22GBiKrQRln46e6a2CmwxDdFq
         16+kd+R6YlerdNfEk49r2fBuksJWDKuH/MgG3QgnRg8LQwAbqWpJFF6mzaKH2FY9ABzn
         h5Fax7qpPik22ilw51fb5UamaPqI5y7/3S/kY2e8aEb3l82CCGcVndccpH/faZx1Pjw8
         5NRw==
X-Forwarded-Encrypted: i=1; AJvYcCX2Bl4SbyKai3oRJ6x5cT1WuMN1QkMqIfltgCk6j70qf24AKc6Ag9VhLiYntnxDPbnq/vy6ajna4POPKnFsxqtnB5yxC7WrmMPxA4SviDM=
X-Gm-Message-State: AOJu0YwMsT6lXDWnadDe/w8vBvVin3pvUCjWvz0tOO1puNthNCWDCzW6
	PHJzDo4JUlvCX9UY1H4QjoHVMzKzWNgKsWh99NzUYvFW3vwCm/H9VlSeJ0qGs9I=
X-Google-Smtp-Source: AGHT+IFK1AvohhlDV9rKjIsqQFeMp48KS4yansf0Mvz5b0VmVQ0mtr2EhnUvOKmgBzBSmEmEPlwUeg==
X-Received: by 2002:a17:906:fca7:b0:a7a:c197:8712 with SMTP id a640c23a62f3a-a7ac528ecb7mr7009866b.59.1721841846848;
        Wed, 24 Jul 2024 10:24:06 -0700 (PDT)
Message-ID: <4f24cc9a-3eb8-4c6f-bcb4-a9e04a50cd9e@citrix.com>
Date: Wed, 24 Jul 2024 18:24:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] hvmloader: Rework hypercall infrastructure
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: <20240717111231.3517605-1-andrew.cooper3@citrix.com>
 <ec6f3d2b-d5be-4ff5-9bf1-79eb5a3a85e1@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ec6f3d2b-d5be-4ff5-9bf1-79eb5a3a85e1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17/07/2024 1:37 pm, Jan Beulich wrote:
> On 17.07.2024 13:12, Andrew Cooper wrote:
>> Right now, the hypercall page is at a hardcoded physical address, and making
>> hypercalls involves indirect calls to compile-time constant addresses.
>> e.g. HYPERCALL_memory_op is:
>>
>>   mov    $0x80180,%eax
>>   call   *%eax
>>
>> Instead, import the hypercall infrastructure from XTF to have hypercall_page[]
>> fully within the hvmloader image, and prepared at compile time rather than
>> runtime.  This uses direct calls, so HYPERCALL_memory_op now disassembles as:
>>
>>   call   132180 <HYPERCALL_memory_op>
>>
>> which is faster and clearer.
> Just to mention it - even with a fixed address using indirect calls shouldn't
> have been necessary (minus assembler bugs, that is).

Indeed.

The very proto-form of XTF to investigate XSA-106 was done in HVMLoader
because I needed something HVM based (rather than the MiniOS based PV
work I'd been doing up to that point).

Starting XTF from scratch was a very deliberate decision so as not to
starting with technical debt such as this...

>
>> Remove the loop over multiple hypercall pages.  It was long ago realised to be
>> an unworkable design, and eax fixed in the ABI to 1.
>>
>> Pass -z noexecstack to LD to stop newer bintuils complaining about the absence
>> of .note.GNU-stack.  hvmloader is not a regular binary, and in fact its stack
>> is always executable owing to operating in unpaged mode.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>
>> There doesn't appear to be any sensible AFLAGS infrastructure to set
>> -D__ASSEMBLY__.  Opecoding it once seemed like the least bad option.
> I agree.
>
>> ---
>>  tools/firmware/hvmloader/Makefile         |   3 +
>>  tools/firmware/hvmloader/config.h         |   1 -
>>  tools/firmware/hvmloader/hvmloader.c      |   7 +-
>>  tools/firmware/hvmloader/hvmloader.lds    |   4 +-
>>  tools/firmware/hvmloader/hypercall.h      | 121 ++++++----------------
>>  tools/firmware/hvmloader/hypercall_page.S |  67 ++++++++++++
>>  6 files changed, 105 insertions(+), 98 deletions(-)
>>  create mode 100644 tools/firmware/hvmloader/hypercall_page.S
> May I ask that the new file use a hyphen in place of the underscore?
>
>> @@ -142,8 +141,7 @@ static void init_hypercalls(void)
>>  
>>      /* Fill in hypercall transfer pages. */
>>      cpuid(base + 2, &eax, &ebx, &ecx, &edx);
>> -    for ( i = 0; i < eax; i++ )
>> -        wrmsr(ebx, HYPERCALL_PHYSICAL_ADDRESS + (i << 12) + i);
>> +    wrmsr(ebx, (unsigned long)hypercall_page);
> Convert the comment to singular then, too?
>
>> --- a/tools/firmware/hvmloader/hvmloader.lds
>> +++ b/tools/firmware/hvmloader/hvmloader.lds
>> @@ -7,9 +7,9 @@ SECTIONS
>>     * NB: there's no need to use the AT keyword in order to set the LMA, by
>>     * default the linker will use VMA = LMA unless specified otherwise.
>>     */
>> -  .text : { *(.text) *(.text.*) }
>> +  .text : { *(.text) *(.text.*)}
> Likely merely a leftover from some experimentation?

Ah yes.  I originally had .text.hcall which doesn't work properly after
.text.*

But I also didn't want it disassembled by default, hence ending up in data.

>
>> --- a/tools/firmware/hvmloader/hypercall.h
>> +++ b/tools/firmware/hvmloader/hypercall.h
>> @@ -35,148 +35,91 @@
>>  #include <xen/xen.h>
>>  #include "config.h"
>>  
>> -#define hcall_addr(name)                                                \
>> -    ((unsigned long)HYPERCALL_PHYSICAL_ADDRESS + __HYPERVISOR_##name * 32)
>> -
>> -#define _hypercall0(type, name)                 \
>> -({                                              \
>> -    long __res;                                 \
>> -    asm volatile (                              \
>> -        "call *%%eax"                           \
>> -        : "=a" (__res)                          \
>> -        : "0" (hcall_addr(name))                \
>> -        : "memory" );                           \
>> -    (type)__res;                                \
>> -})
>> -
>> -#define _hypercall1(type, name, a1)             \
>> -({                                              \
>> -    long __res, __ign1;                         \
>> -    asm volatile (                              \
>> -        "call *%%eax"                           \
>> -        : "=a" (__res), "=b" (__ign1)           \
>> -        : "0" (hcall_addr(name)),               \
>> -          "1" ((long)(a1))                      \
>> -        : "memory" );                           \
>> -    (type)__res;                                \
>> -})
>> -
>> -#define _hypercall2(type, name, a1, a2)                 \
>> -({                                                      \
>> -    long __res, __ign1, __ign2;                         \
>> -    asm volatile (                                      \
>> -        "call *%%eax"                                   \
>> -        : "=a" (__res), "=b" (__ign1), "=c" (__ign2)    \
>> -        : "0" (hcall_addr(name)),                       \
>> -          "1" ((long)(a1)), "2" ((long)(a2))            \
>> -        : "memory" );                                   \
>> -    (type)__res;                                        \
>> -})
>> -
>> -#define _hypercall3(type, name, a1, a2, a3)             \
>> -({                                                      \
>> -    long __res, __ign1, __ign2, __ign3;                 \
>> -    asm volatile (                                      \
>> -        "call *%%eax"                                   \
>> -        : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   \
>> -          "=d" (__ign3)                                 \
>> -        : "0" (hcall_addr(name)),                       \
>> -          "1" ((long)(a1)), "2" ((long)(a2)),           \
>> -          "3" ((long)(a3))                              \
>> -        : "memory" );                                   \
>> -    (type)__res;                                        \
>> -})
>> -
>> -#define _hypercall4(type, name, a1, a2, a3, a4)         \
>> -({                                                      \
>> -    long __res, __ign1, __ign2, __ign3, __ign4;         \
>> -    asm volatile (                                      \
>> -        "call *%%eax"                                   \
>> -        : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   \
>> -          "=d" (__ign3), "=S" (__ign4)                  \
>> -        : "0" (hcall_addr(name)),                       \
>> -          "1" ((long)(a1)), "2" ((long)(a2)),           \
>> -          "3" ((long)(a3)), "4" ((long)(a4))            \
>> -        : "memory" );                                   \
>> -    (type)__res;                                        \
>> -})
>> -
>> -#define _hypercall5(type, name, a1, a2, a3, a4, a5)     \
>> -({                                                      \
>> -    long __res, __ign1, __ign2, __ign3, __ign4, __ign5; \
>> -    asm volatile (                                      \
>> -        "call *%%eax"                                   \
>> -        : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   \
>> -          "=d" (__ign3), "=S" (__ign4), "=D" (__ign5)   \
>> -        : "0" (hcall_addr(name)),                       \
>> -          "1" ((long)(a1)), "2" ((long)(a2)),           \
>> -          "3" ((long)(a3)), "4" ((long)(a4)),           \
>> -          "5" ((long)(a5))                              \
>> -        : "memory" );                                   \
>> -    (type)__res;                                        \
>> -})
>> +extern const char hypercall_page[];
>> +
>> +#define _hypercall2(type, hcall, a1, a2)                                \
>> +    ({                                                                  \
>> +        long res, _a1 = (long)(a1), _a2 = (long)(a2);                   \
>> +        asm volatile (                                                  \
>> +            "call hypercall_page + %c[offset]"                          \
>> +            : "=a" (res), "+b" (_a1), "+c" (_a2)                        \
>> +            : [offset] "i" (hcall * 32)                                 \
>> +            : "memory" );                                               \
>> +        (type)res;                                                      \
>> +    })
>> +
>> +#define _hypercall3(type, hcall, a1, a2, a3)                            \
>> +    ({                                                                  \
>> +        long res, _a1 = (long)(a1), _a2 = (long)(a2), _a3 = (long)(a3); \
>> +        asm volatile (                                                  \
>> +            "call hypercall_page + %c[offset]"                          \
>> +            : "=a" (res), "+b" (_a1), "+c" (_a2), "+d" (_a3)            \
>> +            : [offset] "i" (hcall * 32)                                 \
>> +            : "memory" );                                               \
>> +        (type)res;                                                      \
>> +    })
> Not having _hypercall0() and _hypercall1() anymore is certainly a little
> odd. If one needed to use such a hypercall, even if only for debugging,
> the extra work needed (every time) would be larger than necessary. I'm
> definitely less worried about _hypercall4() and _hypercall5().
>
> In any event the removal of any wrappers could do with mentioning in the
> description, to indicate it's deliberate (and why).

I suppose leaving 0 and 1 behind is fine.  That's easy enough.

>
>>  static inline int
>>  hypercall_sched_op(
>>      int cmd, void *arg)
>>  {
>> -    return _hypercall2(int, sched_op, cmd, arg);
>> +    return _hypercall2(int, __HYPERVISOR_sched_op, cmd, arg);
>>  }
> I know you don't really like token concatenation in cases like these ones,
> but these adjustments all don't look as if they were necessary right here.
> The new macros use the macro parameter only in ways where token pasting
> would continue to work, afaics. And in the new assembly file you use very
> similar token pasting anyway.

That's because my judgement is not about simply tokenisation (or not). 
It's about not using ## when it is likely to interfere with
grep/cscope/tags/etc.

The assembly file both isn't really interesting to find this way, and
needs ## in order to work the way it does (differing prefixes in the
hypercall names).

>
>> --- /dev/null
>> +++ b/tools/firmware/hvmloader/hypercall_page.S
>> @@ -0,0 +1,67 @@
>> +#include <xen/xen.h>
>> +
>> +        .section ".hcall", "aw"
> Why "aw"? I'd have expected "awx" if you really think the writable part
> needs expressing here, or else "ax". Otherwise I think a brief comment as
> wanted as to the absence of x for something that is executable.

It's because it's merged with .data (so it doesn't pollute the
disassembly).  "awx" causes a section flags mismatch.

> Also may I ask that you add @progbits?

Ok.

>
>> +        .align 4096
> PAGE_SIZE? And then again ...
>
>> +        .globl hypercall_page
>> +hypercall_page:
>> +         /* Poisoned with `ret` for safety before hypercalls are set up. */
>> +        .fill 4096, 1, 0xc3
>> +        .type hypercall_page, STT_OBJECT
>> +        .size hypercall_page, 4096
> ... here?

HVMLoader doesn't have a suitable constant, and doesn't have _AC().

Although we probably can just get away with (1 << PAGE_SHIFT) and drop
the ul.

>
> As to the "poisoning" - how does RET provide any safety? If a call happened
> early, the uncertainty of what %eax is set to would make it unpredictable
> how such a caller would further behave. Imo better to crash / hang in such
> a case, perhaps by using INT3 instead.
>
> I notice that matches earlier behavior, but there the comment at least
> validly said "rendering them no-ops" (yet still without considering
> possible problems resulting from doing so).

That's a complicated one.  I can't remember why I chose that exact
phraseology, but it's not really about accidentally-too-early case, it's
about error handling.

HVMLoader doesn't have an IDT, so any exception is fatal.  But that's
also something that ideally wants fixing (if it weren't for the fact
that it's more likely that I'll complete plans to remove hvmloader
completely before having time to do an IDT).

But for code which does have a panic() function, there's console_io
(logging) and sched_op (SHUTDOWN_crash) which you want to use just in
case they do work, before moving onto other methods of terminating.


>
>> +#define DECLARE_HYPERCALL(name)                                                 \
>> +        .globl HYPERCALL_ ## name;                                              \
>> +        .type  HYPERCALL_ ## name, STT_FUNC;                                    \
>> +        .size  HYPERCALL_ ## name, 32;                                          \
>> +        .set   HYPERCALL_ ## name, hypercall_page + __HYPERVISOR_ ## name * 32
>> +
>> +DECLARE_HYPERCALL(set_trap_table)
>> +DECLARE_HYPERCALL(mmu_update)
>> +DECLARE_HYPERCALL(set_gdt)
>> +DECLARE_HYPERCALL(stack_switch)
>> +DECLARE_HYPERCALL(set_callbacks)
>> +DECLARE_HYPERCALL(fpu_taskswitch)
>> +DECLARE_HYPERCALL(sched_op_compat)
>> +DECLARE_HYPERCALL(platform_op)
>> +DECLARE_HYPERCALL(set_debugreg)
>> +DECLARE_HYPERCALL(get_debugreg)
>> +DECLARE_HYPERCALL(update_descriptor)
>> +DECLARE_HYPERCALL(memory_op)
>> +DECLARE_HYPERCALL(multicall)
>> +DECLARE_HYPERCALL(update_va_mapping)
>> +DECLARE_HYPERCALL(set_timer_op)
>> +DECLARE_HYPERCALL(event_channel_op_compat)
>> +DECLARE_HYPERCALL(xen_version)
>> +DECLARE_HYPERCALL(console_io)
>> +DECLARE_HYPERCALL(physdev_op_compat)
>> +DECLARE_HYPERCALL(grant_table_op)
>> +DECLARE_HYPERCALL(vm_assist)
>> +DECLARE_HYPERCALL(update_va_mapping_otherdomain)
>> +DECLARE_HYPERCALL(iret)
>> +DECLARE_HYPERCALL(vcpu_op)
>> +DECLARE_HYPERCALL(set_segment_base)
>> +DECLARE_HYPERCALL(mmuext_op)
>> +DECLARE_HYPERCALL(xsm_op)
>> +DECLARE_HYPERCALL(nmi_op)
>> +DECLARE_HYPERCALL(sched_op)
>> +DECLARE_HYPERCALL(callback_op)
>> +DECLARE_HYPERCALL(xenoprof_op)
>> +DECLARE_HYPERCALL(event_channel_op)
>> +DECLARE_HYPERCALL(physdev_op)
>> +DECLARE_HYPERCALL(hvm_op)
>> +DECLARE_HYPERCALL(sysctl)
>> +DECLARE_HYPERCALL(domctl)
>> +DECLARE_HYPERCALL(kexec_op)
>> +DECLARE_HYPERCALL(tmem_op)
> We're not going to ever need this in hvmloader, are we? There are quite a
> few more that I'd suggest to leave out, but this one stands out for no
> longer existing even in the hypervisor.

I suspect I can trim this to just what HVMLoader needs.  It's not as if
we're expecting a major change in functionality.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 17:49:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 17:49:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764454.1174901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWg6o-0007LF-Ua; Wed, 24 Jul 2024 17:49:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764454.1174901; Wed, 24 Jul 2024 17:49: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 1sWg6o-0007L8-Ru; Wed, 24 Jul 2024 17:49:02 +0000
Received: by outflank-mailman (input) for mailman id 764454;
 Wed, 24 Jul 2024 17:49: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=a5wr=OY=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1sWg6n-0007L2-5F
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 17:49:01 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2407::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fffa2817-49e4-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 19:48:58 +0200 (CEST)
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com (2603:10b6:a03:539::18)
 by MN2PR12MB4271.namprd12.prod.outlook.com (2603:10b6:208:1d7::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.17; Wed, 24 Jul
 2024 17:48:54 +0000
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a]) by SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a%5]) with mapi id 15.20.7762.027; Wed, 24 Jul 2024
 17:48: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: fffa2817-49e4-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=i84to+0kpjgGDRP3EuH3lkGiLvwTAEIo/NI5hGsnI/pZGXsB8Ri3NOFGQGhubykAkhswKuM0NL9bwlFjHUYaVgvHCLhiFhTBA3xnSPRqqZZE05ilD44eCT4Ij0k1GXQe7e9EN/XZfO2fstQJJ3ydZNY+OwjzXhNZOpvtjD6o/dGlGNao8vSsyUuLz+a5v1YNK6U4j2Ps9cNItbONScFx2BbBYknYnLloblLc3rcXj28w8U0mH8UpOVOwlrbyVIYYkzIRvl1UVRrsP7dTNQKC04UTMGXmAfDf1K5Ylh008TjTJ37FuiZO8GmIO1v7NmJvHBEdFLl3WtOoCrj0DO17RA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=G3rQt1eS1aoDIvTnPZegoVA5lc1gfRlK8Zh9V16wvto=;
 b=SznYS2viGtaeTSp2IsMa3lHPCqMDfT+tCCqf6QyTFO3huv9RL867ei/tHV8cZWhm+t9OVfYPyLgcAh2hJHzAxVyEGzIq6ur8dV9P89C5lMGS0IYC7SS7KsDW51HzU7bn7YeQyssQdrltBiQ+omkZT9Bbwxy/8DVLLLv4BgPs9yVTScfOHKxabtrOEpHTExvdMauzxWvH5ToTEw110HfHLTvycMiy62B1fPFcSeIPVF/bYpkAstmPPGTdegDkfi2uQ/8qZi0LEN77CNtYSaJ5dXGNpCYYPsyUaWjwZba5MzI5UwgbURt7BYFjjMJ8ihSzIdy9VmNc+/NNov+C8ZTP6Q==
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=G3rQt1eS1aoDIvTnPZegoVA5lc1gfRlK8Zh9V16wvto=;
 b=BSrYwqjFqushIzTrU3dgqk7NbCOv5BBSJie3JPpw9gt0LGMHLXcJLpbgA6ZVw83MlD99nZ0FrOgnWI0ordM8A+NvwD2fDFOx229hs38SyY4HPzMGJZuWLxFXZV+VkBCThNdkOUoLBAZWzvBLrdFcmJ7QCwXhXUYV5wehOGBYdTA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <8fa38784-ba85-4675-9fad-39dd97652bb6@amd.com>
Date: Wed, 24 Jul 2024 10:48:53 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] automation: add linker symbol name script
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com,
 consulting@bugseng.com, simone.ballarin@bugseng.com,
 xen-devel@lists.xenproject.org
References: <06e4ad1126b8e9231bf6dcf88205857081968274.1721779872.git.victorm.lira@amd.com>
 <4468a02f-4d8c-4b94-8af6-cd1751cd0a89@suse.com>
Content-Language: en-US
From: "Lira, Victor M" <VictorM.Lira@amd.com>
In-Reply-To: <4468a02f-4d8c-4b94-8af6-cd1751cd0a89@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BY5PR13CA0032.namprd13.prod.outlook.com
 (2603:10b6:a03:180::45) To SJ2PR12MB8876.namprd12.prod.outlook.com
 (2603:10b6:a03:539::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ2PR12MB8876:EE_|MN2PR12MB4271:EE_
X-MS-Office365-Filtering-Correlation-Id: 21da418c-1295-4be4-5fcc-08dcac08e2a7
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?RjZjaHlHcEU3dWY1cnU0YTUwNnl1S3FSNEJQUXZBRmQxei9kbkxCK1NjaDQy?=
 =?utf-8?B?eUVWK3FEWXJZaHFJOVRoNm4rQ3podDZnY2YxbzVHL1ExV0NFc2tqc3hSU3Zp?=
 =?utf-8?B?bGltUlpFeDBmQ3hXYTVlRDJQeXNNZm1ZbEordmJVQnlJZkFHcHFLU2J1Z0Nv?=
 =?utf-8?B?ODlGYVBDMWlKRmk0QUVmMUhTbTJ0YVo0K25mek9GYXU2OWN3WWVVT0RWZzdK?=
 =?utf-8?B?bFZwQllyVCtQczBPemU3a2dwU2UzQTFPWTlJaDJ6WXBqdHcxR3ZSM0xmNG04?=
 =?utf-8?B?cXc1eFBsa09kanFtZDJyaVREZng1UW9reEpzTUtQK2o4VjJza2dRSVRKZlJJ?=
 =?utf-8?B?QXpiUnFTbklLQklZQVZveE1ITHBvZy9VOHFWUUpRcm94ZGZKREhLN2NQMnJj?=
 =?utf-8?B?SEh3OHp4dkxkTUtSaGZKWlBzV3ZaOS9oN2tRcm05TmlYWXNjYlhOeHl1aktW?=
 =?utf-8?B?Q2lvWEJLT1Awa2Mwd2FxNnFiOVJnM05neUV1RTlTem5MbEduWEVrYmoxREsy?=
 =?utf-8?B?dGgyZWZlbjFXVEpVTGNIcnhIcitjb2R3REx0ZUNGNGo1eHEvbm5CdFNLRGR5?=
 =?utf-8?B?UlY2emw4VzBHTTE0QStkUjdURDBxZmpoZ1psNHpIN25YdnhFOUhmVTdmNy91?=
 =?utf-8?B?UjQ5eWQ1QVpQWjI2OUhkVFdJWTJlZnVraktyZ0Q3MFZsTUx3Z25RUjV4L3p5?=
 =?utf-8?B?c3VtNVBSNnpGMHRxZ0d3bWpwWlVoNnZKaHl2Z3hKNnJqOGFrMnF5OGIwWUJP?=
 =?utf-8?B?aHlTZlcrajYrQ05CVEZ2MW44YTJuQjRoMUYzMENJZUR1TTBDME5tVnQxanNr?=
 =?utf-8?B?bEgzSkNEYUxTNE93VDdwcTdaenU1OFV4SjVRY0RVMW5YaXphenU3ZjVZbUhj?=
 =?utf-8?B?T0VnMnAvMkNEQ3JFOVR2NkhjMGt0L3pNdHZPQ3VFdTRSdXVYZGdXZ3Z3b1or?=
 =?utf-8?B?R1QyQkN0TW8reU43VHpIaE8xQnVPSnMrZVcrMG40RXNFdnUvcmxWRU04aGRC?=
 =?utf-8?B?MHRwV1V5aDdRUGZIdzVWU2lJUDhPNEdyR3B1VEh5bEFpbGVQTmQwQnZNbFVu?=
 =?utf-8?B?eEhBWjE5cXVvUTBqMWpwUGxqNHRCemVwRzRFODRnTDlvei9TZEhKK3cvQ0lS?=
 =?utf-8?B?WEhEa2pmSXlPZy9mVFpuRmhxZzMrcmxpVGNQNXlmZndIREdZUU1rcFlUaWor?=
 =?utf-8?B?c2k1MDI0WVBWN2FzTFUvWWh4dlp0Y0VvUTlSUllJZUthQ3BuWFdsWU1JQWhV?=
 =?utf-8?B?b3JiTXBocFNQZUlzREUxVnZNSEMyL0JvbW1wM3NHa1dBbHBWcTA2YkUzdXpq?=
 =?utf-8?B?cldCQ1lkdzhMazF0N20rOEErb3Q3UDhrOHBMaFh3RTcvUmluOTR3QzA2Nlpz?=
 =?utf-8?B?a3U1Ky9yQ3pNbWlkN0tiMU9yWVoySmwxZWVSZzJzcFc0K2wyQUtEcDBDc1R6?=
 =?utf-8?B?YTR4a0w5ejFoaXRjWjltOHdTN0VqTTJRVHBaVldwWlVTR1crVDVuOHQyTVZk?=
 =?utf-8?B?Y1J0SWZ6MUw4SjVKRFBGRy84Q1NUQkxaMElBSlVmRFNXTEV3NDhIRFVQVURK?=
 =?utf-8?B?WG5pMWs4YktLTUxBYzJTR2kxRnFGZ1pWVWlLYW9vcU9GSm9SU2dxbUhMdSsx?=
 =?utf-8?B?RUVPSDNiQmtZY3pERkFmK0dwNUcwVURZcnZ0V1FMMFhQWnYyaitIOW04U3k5?=
 =?utf-8?B?UTkwUkNzWS9lN0pGZ3FnV3JSODdwQzUvUXVvZ0dONGZXUzZDSzg4RENXcjFZ?=
 =?utf-8?B?RmQ2QkNVcGN6MTczalJjRS96T29RWWc4bTdFSGZ4MWFYL1I4NHhpOTJSaFJ0?=
 =?utf-8?B?WkNESFN0N0QvOVIzd3hSUT09?=
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);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VHc0MXJGcnpHbldRaEVZaHcxVk10SjZDeXhHREZsVjJmeTN4TmhrNFlZcUwv?=
 =?utf-8?B?N0ZtTHVmSE8wb1BSQ3ArRXQzVmNUMnQzeml0dms5NmdpbytIRStEdzRtWEVp?=
 =?utf-8?B?Sk5LWEFFNk9tZkdXZWRRRGVVT04xUGd6UXhMM2g5NXZ2c0gvMHBKVDNwaWY5?=
 =?utf-8?B?aDZUTzYxdEVtOVYvcWJ2MFIzL3pCenREdHhPWUNGRFl5TGQyNFRtRDVkQ2Rw?=
 =?utf-8?B?M1h6Njh4bnlyZTUxVVhuOEdvWlVKU200KyszVW0yd0NzKzExZ3BScTN6Q281?=
 =?utf-8?B?ME1PTFFyT0l3c0tkTnFESTVwZ09qZ25VUEVmcDg3ZUpMSjduTXJlWSt1ZUVi?=
 =?utf-8?B?bFVscDRlbTJqaHhhcmtRUTZ1bHhUN29tNkxrRUlpRi8vYmZVQ01USUdYbUNu?=
 =?utf-8?B?eXQ5R0Z4aVZsaGFhbkhvNnpSOWQwUnpOK2hJSGxuV2RoYnI5QkVDdkVHMG9l?=
 =?utf-8?B?MExJTmlQVVdsbUt2YzdsZno4bVl2U2UwMGFqR2V6UW0vNDNFc3ZEcW9IVzNQ?=
 =?utf-8?B?cTVLRTJUR0ZkR25yVGpyd0Rjb25rYTZQWC9tTWY0M1BDNG05R1ZKVm93YzB5?=
 =?utf-8?B?UU53SnF0S2Y2UnFNeC9qSGo3TTZKMnRzVVZvSmxWK1ZTblV2K1NqY3orR2d1?=
 =?utf-8?B?bTBjUzQ3eFBMYy9wT0hUY0RJV0NHMjdpK1I4YmxsTk1TMzMxTG1kVkhMVkZJ?=
 =?utf-8?B?aXNxZ09OcVhCRFFML1kyc1VnMGpNaDBiTklFdlVXSjhUMXpUUE56OXQ5MmtB?=
 =?utf-8?B?T3c3SWhRc3dTdjlmZ3RudUF2TEdCNCtJU014QUE5OC8yME9CdU1vN2YxemY3?=
 =?utf-8?B?QlJzNmhEWXY2b01uVVNoeURYNURqRnJQY1FicExTTkhKYlJ2c2h4djBOdWxP?=
 =?utf-8?B?WW9yc2ZrVXdBbEZPVVZlcHdCWldXMnBJVDd3R1pKODhhMjBnZ0JudWRiejIx?=
 =?utf-8?B?d2lwaHBGSXdvY0JZRTZzZXVqc2Z4U0FseVJhU0tPamxrZ2dZTFJQbmhKSkIz?=
 =?utf-8?B?V3hvbTFiQVhPWUZpZzhjTmtLK1UwYjluaUs4aXpZZytmcXlkVU1VTS9SdkNl?=
 =?utf-8?B?dC80d1lPcjZCekJjS1kxeFNBcS9xQmVtYXludUt3aUt4T2tGNXZVYWd6cnB6?=
 =?utf-8?B?RlhOYXRVUmd0U0hCYUdUTmlTbDRPUVBBWTBnWlczMGswZWxRY0EyNzVzbzFS?=
 =?utf-8?B?aDN3T1FzU0lBbFpXK3VsKzVTaFVFOWlkY2lOTVBhMlpFelZjbGtlcEZWUTF5?=
 =?utf-8?B?akRiQ0dIek9maDVLd1k1UDhINzEvSVR0ZTBaK2wwbThTSm5aV3ZKUDlnQjdC?=
 =?utf-8?B?SU1aQjBRR0dZV2ErSzFUNkVmazhBVDFKUnJzdmVKN25JczdwZ2FLMDV6Z2pK?=
 =?utf-8?B?SGYwTHJYNkxLa2dHZkw5eFhSdjh4dHYxRmFQUnVOZ2Joc3hMUWozY3dpWlRr?=
 =?utf-8?B?dld2WlhsemVZZU9ISEJkeGI0aGtMcWFwdWJvT3JNRk0ya2ZMZDdWbUJETm42?=
 =?utf-8?B?QThKK0ZZYXZvN2xqOUs1bGt4TWZxR0k5cm5GOU5WaitYWDE4UFJRYWdJUzBk?=
 =?utf-8?B?U1Y0c2JSQldla2VkTXd0RWVpRExRWkhnbGhoUm1UMU0vNHhwQzRRWjhqbWJq?=
 =?utf-8?B?eWtOclZpQ3lxVjhVN29YNlNQSTJsclNaUnM0S2dieEJmYWZjTS9FcDRRSlFR?=
 =?utf-8?B?TEpaK0VTNzdtdnptM0w5YzBwK2tDVXZGOHpqVXNJdEc2eHhhUEVDaDRIU1N0?=
 =?utf-8?B?SUp1TktVYlpGc3AvRmU4ckZRRkJKMW9UcTFWbzcrQXZsdlNsZ0E1eUptcUFt?=
 =?utf-8?B?VkNQRGRqQXpXUzFqOVdlUGV3ZFBGV3BBMjVVRHI0aFYvbkJ3ZWNEdEtoaG9m?=
 =?utf-8?B?SXJVSmJ2RFJydmdTQmREcEJHUS9QOGpYV3V4cVJnZit1V3ZOLzU4czF0UzNB?=
 =?utf-8?B?OTVwZGJNeVNCZVZtQnpiYUVtdGhpTkROc1ppMlNiUGU3NTR2LzRHZlRMRWp2?=
 =?utf-8?B?UUlHazdqbFpGVDVtWHZvUU5RMko0LzFTSmx0dldCOXdPdFNDTDZCcjNEemhn?=
 =?utf-8?B?UjRNRURCNnN2amtlbkdnNVlRUXdzanQvTmh4bkJQSnBkR3o1RkFIT0doakRF?=
 =?utf-8?Q?n5dKuzN/V3iI0qYkLCpb+uP9C?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 21da418c-1295-4be4-5fcc-08dcac08e2a7
X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8876.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2024 17:48:54.3078
 (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: bxIILTi8lpj6p9/y/mpyttQSgNtYm3kP1zY8RYhb1aIrpaW4XQR+6UpvJtGmQoUV0yfxr9NzL5RnD4OvuuSfXQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4271


On 7/24/2024 12:44 AM, Jan Beulich wrote:
> Nit: In names of new files we prefer - over _.
> +script_name=`basename "$0"`
I have fixed the above comments in v2.

>> +#!/bin/bash
> Can we rely on bash to be there and at that location? As you using any
> bash-isms in the script which cannot be avoided?

Are the automation scripts required to be portable? Can you please point 
me to a resource where I can learn how to make the script portable?

Victor



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 17:52:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 17:52:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764461.1174910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWgAF-0000Pg-G5; Wed, 24 Jul 2024 17:52:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764461.1174910; Wed, 24 Jul 2024 17: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 1sWgAF-0000PZ-DW; Wed, 24 Jul 2024 17:52:35 +0000
Received: by outflank-mailman (input) for mailman id 764461;
 Wed, 24 Jul 2024 17:52:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a5wr=OY=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1sWgAE-0000PS-5h
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 17:52:34 +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 7fd0950b-49e5-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 19:52:32 +0200 (CEST)
Received: from BL0PR1501CA0028.namprd15.prod.outlook.com
 (2603:10b6:207:17::41) by DM6PR12MB4060.namprd12.prod.outlook.com
 (2603:10b6:5:216::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.18; Wed, 24 Jul
 2024 17:52:28 +0000
Received: from BL6PEPF00022571.namprd02.prod.outlook.com
 (2603:10b6:207:17:cafe::f4) by BL0PR1501CA0028.outlook.office365.com
 (2603:10b6:207:17::41) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.25 via Frontend
 Transport; Wed, 24 Jul 2024 17:52:28 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00022571.mail.protection.outlook.com (10.167.249.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.11 via Frontend Transport; Wed, 24 Jul 2024 17:52:28 +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, 24 Jul
 2024 12:52:27 -0500
Received: from xsjwoods50.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, 24 Jul 2024 12:52: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: 7fd0950b-49e5-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=E3qEj7ADIi3WXMC5aXGqCHYV7Uk5oY01kvVCDIuMWtW7cAZ6LStISe78Ti8U/RLkLNL2AC//nrwE2foRnQmsvzkFrntzZlour2OMrh9ETsaXGol9GBL8osfak60OpmWYtbeXoklUMt1gUr9HasHIPF0AcvzPvrzaVcRRQzPimE59/VTdxv9hBeTwmUBanM1n8ncmu22v9ElS+EnDiCr0IbGLWs/6ZBJ1Vf0fuskpXQXbDi+XtZ7qAZ2SADqVZSTeJr7psr3M779Xsk4fdtUEMdyvlbO6MzjPKNAfzvgRQwY/SDk90N5NXcuLPrtpwP2Lem0EZkid7/5KE0GaID/zIA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QSG+4QXsyKI+tdBgDmtpUygqksz8xeQoqV4gwUkde9s=;
 b=tnYSxYx7Jmv8MyMkL6U5V1DOJzI042nd4/4RwwEg3pTU+cFjmloepNJsLHIeKykTmjBx/ZpMvPFlQq44lRyNObb7sfUYzRRbTEi+vdZZm8PNefIiJlL8wUCPF5/vKQ/77FD5HvplXFMz8kPJwrbhaeqglCfn53PAiyJMJs2FGnl+Pa6ugk5N4Qfn7fzu8TrRTIAk8Df4L7vGDQfjUXMcPAVrakz+p1vrg7exG1DdxRt8ypRsYifSBlfsxMClg+H/NiOSWxOfhWT/8uebXUUMkO7jO0S+1k6wfhSIyC9stAHE9iRk/iCIQ/2qdBvvArO3pxs7MPZjSoDXR3q6uB8byg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QSG+4QXsyKI+tdBgDmtpUygqksz8xeQoqV4gwUkde9s=;
 b=izrKgzmxT1SuPxMNxHvCpUtD+KeIRWl9lsqvnlO64vkunw98SKYvFu4aNE5cfDw8tOSirPejfkQwfKMU9vq3yzCmjVApP6yr/cH6f+aXDkOOUGFOUc27gdAzpRKz06nWaG/m9OiGBmJHdZneE2jxoxofD4JCyC9OJmeREkvhRMU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: Victor Lira <victorm.lira@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, <roberto.bagnara@bugseng.com>,
	<consulting@bugseng.com>, <simone.ballarin@bugseng.com>
Subject: [RFC PATCH v2] automation: add linker symbol name script
Date: Wed, 24 Jul 2024 10:52:06 -0700
Message-ID: <5b2862d6d036248e8cdd76e9884f173c6b7ff325.1721842334.git.victorm.lira@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: victorm.lira@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00022571:EE_|DM6PR12MB4060:EE_
X-MS-Office365-Filtering-Correlation-Id: ec11ed7c-f491-4350-6aa6-08dcac096258
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?NWEcFUHV/PlOiKEqVbX2wx6yI8u4PqArGXSkajeDVT1s2f364RVgVnB1pC1G?=
 =?us-ascii?Q?SGJY5c/tHLYhxZGdU3dHMqtnt3zo4P/8FrPdel3/Osu+9bKXCu+UZjZknwPR?=
 =?us-ascii?Q?4le9ZES35nREjoJkBkLp53FDPKCtfrG3OamebqgjubRhLn/SLr63pfYQxzrU?=
 =?us-ascii?Q?4dWngZDlYL8finUw9oaV+8N4NQPJHLdoBU/B9tWKMlB3eCDb6g2kjDLJXzS9?=
 =?us-ascii?Q?B/9Y75A+izQ7HIUAC+9shDNos+8SxeYIUJTuk/X0eayqYXwIEwnQpa17WV5n?=
 =?us-ascii?Q?V/1uPIYouJyQqZtZsY4TRbq5conW1d4vmp3zOYQTrRCsIqhRiFE0uLn4g1no?=
 =?us-ascii?Q?BaSIvs47mS4dX9Q+4UbHcn/ybl0flaQlk2B8Y69YM0XoMGhkomkZL6DnKwoh?=
 =?us-ascii?Q?uVWsFJs/pBMOcYGRH9XnAeoHruBNe9VEp03k1NN7BPlO+VpBffdNSZgVd1EN?=
 =?us-ascii?Q?JhrEJrDtmR4Edta0y/qOMmmaxijOXZrKKgbbW5c0jpX26VwASm17Qkgf5PDx?=
 =?us-ascii?Q?ddBVLZK3VrvEg7B5aQ/ojqdjLtSlnhpMHiZrajodSdcS6C2X57qnURFwztB9?=
 =?us-ascii?Q?gkXx5k73ftvorvacglfOTKhKM3AgsjJQtfIlad6xefZaJ2wWhLDpuw4UwXtB?=
 =?us-ascii?Q?INdvGwYm6pDkXz8H6I9kfDu31FXMJhQu1O21Taw1RuOT3zcl6VTnBhuwUeiA?=
 =?us-ascii?Q?4p10LDdTMlqQzBJXkCyYzVvkqMKh7j3xs7TxLAX35bsoj88j3dr+VQEN+frB?=
 =?us-ascii?Q?GhzE5U7micgg/Fm+vN8/d5jq4TIae/uo/L51KuC2+mhJjgqBGbwcZ2SRom4O?=
 =?us-ascii?Q?zNv6l84DlEOmSzqhPmjfSojQ4Fl+ROJfHC1fDPwg+Epz/5yZYvxMvBbpC22L?=
 =?us-ascii?Q?D5YBtvhAU+uVPKUfeGFZ5pFDm86VY6CtUUkzZR0qrqkHb6cgeuKL9Ow5oNFJ?=
 =?us-ascii?Q?NVY3cVaAUq3s2FMP2zZJ6F3up46TgOb7aLlji8EV8XeuC0T+l5qxt6utPHda?=
 =?us-ascii?Q?y4kDdiHKhNlxbwJ45OzXObWhQkS2sDdASgcbxuWx39aepLKR4a5DqqpFWeSh?=
 =?us-ascii?Q?oTS48w2VZjCw3ecNzijQP13cjSinLhU8FTjzNrYEnOo5vBARfZBYm7NtUI3w?=
 =?us-ascii?Q?3t3+tPQqfhI753JSAeSonhEkhYWS/jLIZ4LOSByETHt1vSBVaBBKRxfNzlDc?=
 =?us-ascii?Q?1Z7fJsGKd+qtgQ4qzR+XtbCnp5DuEyyI5n9pLb6PzANl0xP+6BukIUFP3NZs?=
 =?us-ascii?Q?dGPwK5HAmBERqPgNI/+BjZqYuLTwlPitRdDRhu0mHVLkbnBMi+r5ybL39E7J?=
 =?us-ascii?Q?qrpQL77V6A3e3YkXubHybfNtAnfjiuZrjwl008RrMndgxXqc/XBHWEdGNQ1a?=
 =?us-ascii?Q?YEYBUtfuUN28lLsUcNdGpV/gp4uTjhYzfVxdacJyTT2e9wqdstXPNFa186tc?=
 =?us-ascii?Q?F/MxU4suELxg6j7pBoZdstE6YYr62EC1?=
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: 24 Jul 2024 17:52:28.3318
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ec11ed7c-f491-4350-6aa6-08dcac096258
X-MS-Exchange-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:
	BL6PEPF00022571.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4060

From: Victor Lira <victorm.lira@amd.com>

Signed-off-by: Victor Lira <victorm.lira@amd.com>
Requested-by: Stefano Stabellini <sstabellini@kernel.org>
---
Notes:
This is a utilty script for help with the MISRA process.
This script matches all linker symbol names in linker script files for
arm and x86.
Not included are symbol names starting with "." or symbol names enclosed
in quotes since the files dont't use any. The regular expression also does
not match for "&=" and similar compound assignments.
---
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: roberto.bagnara@bugseng.com
Cc: consulting@bugseng.com
Cc: simone.ballarin@bugseng.com
---
Changes v2:
- address style comments
- updated script to use .lds instead of .lds.S
- remove sample output from patch
---
 automation/eclair_analysis/linker-symbols.sh | 34 ++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100755 automation/eclair_analysis/linker-symbols.sh

diff --git a/automation/eclair_analysis/linker-symbols.sh b/automation/eclair_analysis/linker-symbols.sh
new file mode 100755
index 0000000000..35ec97eb8e
--- /dev/null
+++ b/automation/eclair_analysis/linker-symbols.sh
@@ -0,0 +1,34 @@
+# Stop immediately if any executed command has exit status different from 0.
+set -e
+
+# Extract linker symbol names (except those starting with ".") from assignments.
+
+script_name=$(basename "$0")
+script_dir="$(
+  cd "$(dirname "$0")"
+  echo "${PWD}"
+)"
+src_dir="${script_dir}/../.."
+
+usage() {
+  echo "Usage: ${script_name} <arm|x86>"
+}
+
+if [ $# -ne 1 ]; then
+  usage
+  exit 1
+fi
+
+if [ "$1" != "arm" ] && [ "$1" != "x86" ]; then
+    usage
+    exit 1
+fi
+
+filepath="${src_dir}/xen/arch/${1}/xen.lds"
+
+if [ ! -f "$filepath" ]; then
+    echo "Must be run after build."
+    exit 2
+fi
+
+sed -n "s/^\s*\([a-zA-Z_][a-zA-Z_0-9.\-]*\)\s*=.*;.*$/\1/p" $filepath
--
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 24 18:06:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 18:06:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764469.1174922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWgNR-0002Pl-MI; Wed, 24 Jul 2024 18:06:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764469.1174922; Wed, 24 Jul 2024 18:06:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWgNR-0002Pe-HP; Wed, 24 Jul 2024 18:06:13 +0000
Received: by outflank-mailman (input) for mailman id 764469;
 Wed, 24 Jul 2024 18:06:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWgNQ-0002PU-Is; Wed, 24 Jul 2024 18:06:12 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWgNQ-00051x-1x; Wed, 24 Jul 2024 18:06:12 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWgNP-00006n-MD; Wed, 24 Jul 2024 18:06:11 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWgNP-0004Am-Lg; Wed, 24 Jul 2024 18:06:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=tnLmbdGHXJGCnaAxkjnqUn2dekd5UQ7ieVpI0hhF/Lc=; b=mXDNv6uTNenzSJjKvEPSWl32Ha
	QJz4QQckIcwFkW0MxMnxKhS2+rhKgxiK13Okcbt4HgWps0Hbt3pebW3hs7mmRy8ANoeXq5DdbTVxE
	frc0JhgRJqFEz3gdyGIbN9Osx2X6FF5aA2iocH47QroXWM78zDM+jn6lTt2ybNw7FgNs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186984-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186984: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=5795a0bf5493d411155093180ed16e4ba63d37bf
X-Osstest-Versions-That:
    xen=c6661e89102065d3e04799b9baa9f928a1fc40da
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 18:06:11 +0000

flight 186984 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186984/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  5795a0bf5493d411155093180ed16e4ba63d37bf
baseline version:
 xen                  c6661e89102065d3e04799b9baa9f928a1fc40da

Last test of basis   186981  2024-07-24 10:02:12 Z    0 days
Testing same since   186984  2024-07-24 14:03:56 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c6661e8910..5795a0bf54  5795a0bf5493d411155093180ed16e4ba63d37bf -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 19:30:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 19:30:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764479.1174931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWhgX-0003yc-7g; Wed, 24 Jul 2024 19:30:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764479.1174931; Wed, 24 Jul 2024 19:30:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWhgX-0003yV-55; Wed, 24 Jul 2024 19:30:01 +0000
Received: by outflank-mailman (input) for mailman id 764479;
 Wed, 24 Jul 2024 19:30:00 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWhgW-0003yL-4I; Wed, 24 Jul 2024 19:30:00 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWhgV-00074q-S7; Wed, 24 Jul 2024 19:29:59 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWhgV-0004Yb-Km; Wed, 24 Jul 2024 19:29:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWhgV-0004tO-KL; Wed, 24 Jul 2024 19:29: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=9izWXgKhrZKtrl0hFcjBVa9NdHPzkIXESDBYzlnJ0dA=; b=Ux8/u/mXhCP5++v4YTZLNIhUQY
	+lQ1Ge39sJlSl7xFvbLVoG91t+gTvmphHn1/YFfR+ckri0NAba0A6gDlM3YYyOCTsXBlUWh5zJ0CM
	o4VUk2VSXMyrdeuUlZ8d1Mtmkr79+EbmoPvHWuav6QCiAWRl9k7X+9EP1ypRspofretU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186986-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xtf test] 186986: all pass - PUSHED
X-Osstest-Versions-This:
    xtf=4172faef1c0dee027ddd3ffdbc88fe20eb711e9c
X-Osstest-Versions-That:
    xtf=3955325292f49257797f339cfdcb84748550e069
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 19:29:59 +0000

flight 186986 xtf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186986/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 xtf                  4172faef1c0dee027ddd3ffdbc88fe20eb711e9c
baseline version:
 xtf                  3955325292f49257797f339cfdcb84748550e069

Last test of basis   184862  2024-03-03 00:41:25 Z  143 days
Testing same since   186986  2024-07-24 18:11:37 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-amd64-pvops                                            pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xtf.git
   3955325..4172fae  4172faef1c0dee027ddd3ffdbc88fe20eb711e9c -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 20:14:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 20:14:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764488.1174940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWiNP-0001Gg-Ei; Wed, 24 Jul 2024 20:14:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764488.1174940; Wed, 24 Jul 2024 20: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 1sWiNP-0001GZ-CE; Wed, 24 Jul 2024 20:14:19 +0000
Received: by outflank-mailman (input) for mailman id 764488;
 Wed, 24 Jul 2024 20:14: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=Ik8X=OY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWiNN-0001GT-Qo
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 20:14:17 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4c1cad38-49f9-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 22:14:16 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 7289DCE12AB;
 Wed, 24 Jul 2024 20:14:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EFF4DC32781;
 Wed, 24 Jul 2024 20:14: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: 4c1cad38-49f9-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721852052;
	bh=5LteRdY+MfTqF8UhxIIySAt41BaRsjswPvyJjP3n5fU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lfrVrzn4ts5Kuw82hwAt3NxiycGHXHxSSKuIH2Pz00LWir474etVQ7eUccouiQalD
	 qgNDnhCyBM6wD2WpFC7vBRkSbh0gGYHIQoNRTbimD7pg1gY2dZqF8QFE5sc3PVwOCM
	 Wrhj/lSI7nfNObD5B4++7Md97yHenfy5MPuYAkljVuE8/XDy2oEvE7rdpbsmaHazNc
	 C/O0jwTU+63/9bn8WS83bhDuO3Qx69L6LuKgOx+xPoC2RIz2QDYHaH9Ya9CPmWsCZ1
	 tzwYUEtpIcGLS3EF3Zl8u6vCMQ5XpQPDopvyeuvIOBpFKFDpW+QpJ7OJcH78YVLw2F
	 sjWR5Qx6NHBPQ==
Date: Wed, 24 Jul 2024 13:14:10 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Techguru <techguru@byiq.org>
cc: xen-devel@lists.xenproject.org, Michal Orzel <michal.orzel@amd.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: Xen for Apple Silicon (M1 and beyond)
In-Reply-To: <d5c3e0900db98aaaeb7fb52f16598257@mail.infomaniak.com>
Message-ID: <alpine.DEB.2.22.394.2407241309170.4857@ubuntu-linux-20-04-desktop>
References: <d5c3e0900db98aaaeb7fb52f16598257@mail.infomaniak.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 24 Jul 2024, Techguru wrote:
> Hello,
> Stefano, on IRC, suggested that I start a discussion on this mailing
> list regarding my intention to bring up a fully function XEN on Apple
> Silicon (M1 and beyond).  I am in the process of getting up to speed
> on your governance policies, applied for Coverity access to use some
> of the known issues there as training wheels, and putting my gitlab
> fork into good working order with CI.
> 
> I would rather not duplicate effort which has already been proposed,
> so definitely open to any pointers, any requests for how to chunk
> things into smaller patches, any requests for particular
> ordering/sequencing of patch sets.
> 
> Some obvious areas:
> 16k pages;

For this, do you know if 4K pages are supported (in addition to 16K)? It
would be a lot easier to keep running Xen using 4K pages and run guests
on top of Xen which use 16K pages. In the past, we had Linux using 64K
pages running on top of Xen using 4K pages for example.


> device trees;

You might be able to use the device tree which is used to boot Linux on
Apple silicon


> interrupts;

If the interrupt controller is not an ARM GIC, then we need a driver for
it in Xen


> power management;
> any essential device drivers.

In addition to the interrupt controller, we might need drivers for the
UART or framebuffer to see Xen output. Also the timer. Xen has a driver
for the ARM Generic Timer but if Apple has a different timer, that is
something else to consider.


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 20:24:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 20:24:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764495.1174950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWiWt-0002t7-AP; Wed, 24 Jul 2024 20:24:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764495.1174950; Wed, 24 Jul 2024 20:24:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWiWt-0002t0-7e; Wed, 24 Jul 2024 20:24:07 +0000
Received: by outflank-mailman (input) for mailman id 764495;
 Wed, 24 Jul 2024 20:24: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=i70y=OY=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1sWiWs-0002su-9o
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 20:24:06 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2069.outbound.protection.outlook.com [40.107.243.69])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa9f9b1c-49fa-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 22:24:03 +0200 (CEST)
Received: from CH0PR13CA0005.namprd13.prod.outlook.com (2603:10b6:610:b1::10)
 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.7784.18; Wed, 24 Jul
 2024 20:20:55 +0000
Received: from CH1PEPF0000AD7A.namprd04.prod.outlook.com
 (2603:10b6:610:b1:cafe::6f) by CH0PR13CA0005.outlook.office365.com
 (2603:10b6:610:b1::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.19 via Frontend
 Transport; Wed, 24 Jul 2024 20:20:55 +0000
Received: from SATLEXMB03.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.7784.11 via Frontend Transport; Wed, 24 Jul 2024 20:20:55 +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, 24 Jul
 2024 15:20:54 -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; Wed, 24 Jul
 2024 15:20:54 -0500
Received: from [172.23.111.139] (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, 24 Jul 2024 15:20: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: aa9f9b1c-49fa-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fdex6aqGwqsVMLmIGMA080hxDmM7SmLRc3wqAbrGi9znHcFxEB9VDe3lYjaDdIAfjhqFpzu59r37rFgBqXwF80mdBl6mtrAj6bn4wEesUuC9Ib1wecNtYfadV+YLmScQ8hlqEDDvkPe0IV5hm6zb13SbsjbfKiH3/Eni1W4TPiXo49w0kFktwQhpsrTx1X+uLuO5qb5sujI30xTKSpWIvz7BYcqIcLAxrVPg31goU/7INXhovC4ATWToNu2fZ8IDZYXaGi/hWsA3C1ylGIe+ERjYmdPYO3q2H9GnH3nYJocfjy3Tlf5npctedJ4RRX3KXBkTBmQ/klAfvh+uD0SR+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=Qt8PFUHR0NGaLcUJDI79oVJqQ29PrPLiklg/4GNIWLQ=;
 b=SKW1TymZthpa06nbiTvXYjPgbI0LFVUW17glAKsk2nf2HorkgA7ErcK2r7mrJkzBQyxbLFGhtqPzw2znhDnMVAshDLddQOE0Era8oMfUnBw6cSQY5RJM4P2Qms5hLwhr6fQrfKP3Va5k/voeCh1rO5aGRd8Z+eZ5xbPxTdh8KaS/W9721AA+/p0b1U0F7YaqCQY8NEY55ska9dP8PWRFLvuZN0QdM7ttEOGfo2u/38/ziCua9dGjJOg7PlGBtWR63s/GUHd75y4h8POMoRjJwVbLGon2lGLHmvW9IXv2K0jlhlXd7g5Ma82iM3JyeodFifgbFyqindNI6Q+455u/Bg==
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=Qt8PFUHR0NGaLcUJDI79oVJqQ29PrPLiklg/4GNIWLQ=;
 b=oEfs6AIlTG3R4ZlTeWvQoC4C+3Vzep4MJ5d4MUllGkXc1xNyQAAHgb47D4t9kXkp/9BTnS5xcWKlbTfG+tuQoHucxYp3REwyR5y7CPUk7vi40CORiQ974snAmF5KSLVkyN75mDLS3le2SK3XUrtvHNqW5h1cn9Sj1YOus/vPL/k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <9be5b78a-211c-4859-a56e-30ab414c99fb@amd.com>
Date: Wed, 24 Jul 2024 16:20:47 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] automation: add linker symbol name script
To: "Lira, Victor M" <VictorM.Lira@amd.com>, Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>,
	<roberto.bagnara@bugseng.com>, <consulting@bugseng.com>,
	<simone.ballarin@bugseng.com>, <xen-devel@lists.xenproject.org>
References: <06e4ad1126b8e9231bf6dcf88205857081968274.1721779872.git.victorm.lira@amd.com>
 <4468a02f-4d8c-4b94-8af6-cd1751cd0a89@suse.com>
 <8fa38784-ba85-4675-9fad-39dd97652bb6@amd.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <8fa38784-ba85-4675-9fad-39dd97652bb6@amd.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: CH1PEPF0000AD7A:EE_|PH7PR12MB9203:EE_
X-MS-Office365-Filtering-Correlation-Id: 77267993-06e4-4423-96cf-08dcac1e1f58
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?SWlpWTRlN05XdFZRNHdKSlhlcFVQZEJUQ1ZyQlQ3K1JFU05pUkZYNHFHSEtJ?=
 =?utf-8?B?b1JELzZRM2F6N0pHWkw5QXlOYzFKd1dlaWpUbDE5dDJXcHdpRG83RDF6bEV1?=
 =?utf-8?B?Q2tEa1BBUW9ERVhsK3EvcENEbEdkVUV4MTJyS0U5aTkxZnhVOXJ0UnlJSytu?=
 =?utf-8?B?M1d3Qmk1ZGp0Z1JlbkcyR0lKRWlnNm9yQTRoTXJlRmx6M3JtWFJDWjJ1K0xW?=
 =?utf-8?B?WklUT2htb25QVFp2cW4xQXRuWkpjYk1ZcVpLSGJmY2t0T3Y2NER1cU5POUE0?=
 =?utf-8?B?ZGlNQ0ZCWVNDekpidFNoeVJ5NmRrbnUzVExFcGs0cWEvMTlCWVd4cHFhZThZ?=
 =?utf-8?B?NFJ4VW5ocWRuaDRORTBaNENZREpaY096L1llK1VqUUZRSytTQVY0aXBscUEv?=
 =?utf-8?B?U3YxNjMzYndjbjlZaXF1clNZVC9vdU5BbkcvUzNwMitoc0pvenRVeExIa1dN?=
 =?utf-8?B?Y1FvTm0zb0wrYm1EV214YURmQjkwcDVsU2tkR0luaUFwTVVCcHNCZ3g5VmxK?=
 =?utf-8?B?QW9NZVhjMlRydTJRYWdwajZMNlBFYi9VYlBDREZxcXBySCtMZVVhaDBVWFlr?=
 =?utf-8?B?RTAyc3NOTVN4TGpIYThNeEZBM2xnK0RNMm0rd05VSlBXenAvSlZzelMxYVNt?=
 =?utf-8?B?NE5PQ2ttUHN3aUJLeGF0Zml5a2FHeGtyVERJVkN1K3IzSlk1bG9JS3Q1UDho?=
 =?utf-8?B?MFNPVStCRlQ2M0ZFNWdMVWdEUVlUNXhyK01ZRHJ0NlRWcVE4K21IcnZ1Y0xQ?=
 =?utf-8?B?ZDVUUlhJR05HRUNWNzhYbUpzcTNBRXRsWEJROEVKYlhCSmgycXBvaXhkMFlW?=
 =?utf-8?B?YkJ1Q0NBaHdWSmtQUEk0bzhkMkM0M2ExcVVYeE9ZeUZUOFZwT2tEalQ4MVM4?=
 =?utf-8?B?YWFINE9vUGg3L1JTVjVBdysyaGh5TEFjUUJCaXJkT2pscE1TZnhycEVwWE9M?=
 =?utf-8?B?SSt4cmhQL0Z0R3BmQlk4d2tmYmpRSnViQUtzb21OVzUyV1pEbDZTYlRUdENi?=
 =?utf-8?B?b3hMSnl6UUtxc0g3UVZpM2pQa29pbnNtSFc1RjZZQm5kMzdyOWtMVENHdUFV?=
 =?utf-8?B?NGlXbERFVkVPbk0yOGV4SUZrVUpqTDgyQTBuTWJyS0tCaEFkT1FmaWw3TDlj?=
 =?utf-8?B?SmIyaE95YVdJa29YdURaNXZXY0hTYmR4LzA3UlFvTVErU1VRK2g0emxYaDNn?=
 =?utf-8?B?YTBrcWh2ZVB2Z253SVRVanNqSGhvZnd6ZXNIV3gwTWdmZUROUkJ1WnJhVVov?=
 =?utf-8?B?ekZwRnMydVoyMnJZdGdDY3lMU0tuVnJzREY3MG8zV05KNHVrSDRxUzUyMklj?=
 =?utf-8?B?eWlENHgzaytMY01tdytCTzArR3haZDEvZnVtTG5tVUNnU0doMGlnazhKQzRY?=
 =?utf-8?B?OTd5eStaeFFhVVRFa0VmRFl2by9DSlVacTlQa3RjbjVBaTIzWnl0QTRhQjh6?=
 =?utf-8?B?YjdmMlFndkNDK0F4amhYL1FRclVSS21BWUJUbmZyeVI5NXE3ejVmc3BGaEox?=
 =?utf-8?B?L1FQZkUrajZ6WWtHbW9Nbk9XUDJuQzhaWkpsQUNzVlc1SDlOamh0eGs5dXZw?=
 =?utf-8?B?WUgvUVE2M3hsVERXbC9wa1JJUnNhSGQrMjZFVEZTYzhqVXR0WHJoMnU4YXNy?=
 =?utf-8?B?UDBEdlA3STA5ZldpSlpIOWtaUEJmUkxIUjhhckJGeENHTXZqc25XcS8wcWpQ?=
 =?utf-8?B?WXlHU1BiWnhVOFdEeGRacTcvY0lSZCt5YkpuMGp1aVN5MGM0QkVMKzFldXh3?=
 =?utf-8?B?cEErZXI2Q0wyWjdIQ1lxTlFTL05HVTIraXpmWE56NExBcVd0dHN4d29MbFNR?=
 =?utf-8?B?aHdYNjNHZDZmOC9McTlaZ2QvVm41R2JkakppTWtDeWJZOWptQ2M3TDAyQXFL?=
 =?utf-8?B?REFQWnZ2MHpWWHp1N0pyMXQzaVYrUVY1b0JxeCtuVk56Wm5YZ3hnV0JWdFp1?=
 =?utf-8?Q?czznVLB5+B4tg4xqxGgu6OmT8xoxB5bO?=
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: 24 Jul 2024 20:20:55.3569
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 77267993-06e4-4423-96cf-08dcac1e1f58
X-MS-Exchange-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:
	CH1PEPF0000AD7A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9203

On 2024-07-24 13:48, Lira, Victor M wrote:
> 
> On 7/24/2024 12:44 AM, Jan Beulich wrote:
>> Nit: In names of new files we prefer - over _.
>> +script_name=`basename "$0"`
> I have fixed the above comments in v2.
> 
>>> +#!/bin/bash
>> Can we rely on bash to be there and at that location? As you using any
>> bash-isms in the script which cannot be avoided?
> 
> Are the automation scripts required to be portable? Can you please point 
> me to a resource where I can learn how to make the script portable?

Hi Victor,

You might want to check out `checkbashisms`:

$ checkbashisms
Usage: checkbashisms [-n] [-f] [-x] [-e] [-l] script ...
    or: checkbashisms --help
    or: checkbashisms --version
This script performs basic checks for the presence of bashisms
in /bin/sh scripts and the lack of bashisms in /bin/bash ones.

Since your script has '#!/bin/bash', you'd run it with -f to force the 
bashism checks (or change to /bin/sh first).

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 20:38:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 20:38:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764502.1174961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWikh-0004q6-Ih; Wed, 24 Jul 2024 20:38:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764502.1174961; Wed, 24 Jul 2024 20:38:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWikh-0004pz-EM; Wed, 24 Jul 2024 20:38:23 +0000
Received: by outflank-mailman (input) for mailman id 764502;
 Wed, 24 Jul 2024 20:38:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWikf-0004pW-Su; Wed, 24 Jul 2024 20:38:21 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWikf-0000D8-IY; Wed, 24 Jul 2024 20:38:21 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWikf-0007SR-3p; Wed, 24 Jul 2024 20:38:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWikf-0000F9-3O; Wed, 24 Jul 2024 20:38:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=RpktzqqKI44+VlxImAOItGgxMkbXZWsOKuvU48FleZA=; b=d9xrJpiiAeREPADtFLsrSCtVoX
	6xQe1+rASftmAYvKNWGhOlUgvlus7Tn5ujHVj+BPXUB3T/rA1MHWMmAIzwpn0TCjg0Q4e8tG/lc8f
	EI5j18CETVLD57Wojjm2I32Bqa59hrlLDSUqVSJyTjhbc+0jNIsI4+g7t7Ua6PaGFR6U=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186979-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186979: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=786c8248dbd33a5a7a07f7c6e55a7bfc68d2ca48
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 20:38:21 +0000

flight 186979 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186979/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel  8 xen-boot            fail REGR. vs. 186827
 test-amd64-amd64-dom0pvh-xl-amd  8 xen-boot              fail REGR. vs. 186827
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                786c8248dbd33a5a7a07f7c6e55a7bfc68d2ca48
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    8 days
Failing since        186925  2024-07-20 09:44:52 Z    4 days   10 attempts
Testing same since   186979  2024-07-24 07:24:12 Z    0 days    1 attempts

------------------------------------------------------------
1854 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 206297 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 21:22:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 21:22:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764512.1174970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWjRh-0002Ik-QQ; Wed, 24 Jul 2024 21:22:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764512.1174970; Wed, 24 Jul 2024 21:22:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWjRh-0002Id-My; Wed, 24 Jul 2024 21:22:49 +0000
Received: by outflank-mailman (input) for mailman id 764512;
 Wed, 24 Jul 2024 21:22:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ik8X=OY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWjRg-0002IX-GY
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 21:22:48 +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 dedc7263-4a02-11ef-bbfe-fd08da9f4363;
 Wed, 24 Jul 2024 23:22: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 AC37761278;
 Wed, 24 Jul 2024 21:22:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E878EC32781;
 Wed, 24 Jul 2024 21:22: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: dedc7263-4a02-11ef-bbfe-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721856165;
	bh=WxKDxsINjhQlHG2vWz8bmckY/HLh3IoQLmrxTw6AiLU=;
	h=Date:From:To:cc:Subject:From;
	b=MjqsT+INENhaLKgAdBkkMLvE7/6IWBtXVPHfZjeSqb4/6how4UeEYj9Y/ZCC48kRd
	 cph9UJ5ttVxb3btjds12xskfkBpvZ3kYu7iYMDzGg+r2G+vukWGjzxjjXBlfeS3YOu
	 Dl6HoQlvX47q01yhqP+qFP1hIlF233Az0hrhRhCWwi5UISwB7xipgvjL8Z4HEiPUxB
	 Av4FKrPt0YPzhWRoUERdBX/v9wfoUbbIwG1RYzcuvvOl3YTm6FJXxOTjBlBPfZk/+j
	 4eyVgCtcJCanBsg76o66ZVA8CLdNoTqBc7CSEwnQpvP4E0rupHcq+wkkwKiKih86pz
	 o1VvZUlueO46Q==
Date: Wed, 24 Jul 2024 14:22: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, kelly.choi@cloud.com, committers@xenproject.org, 
    roger.pau@cloud.com, Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
    Anthony PERARD <anthony.perard@vates.tech>
Subject: Xen Project COLO, OSSTest and Gitlab CI
Message-ID: <alpine.DEB.2.22.394.2407241416130.4857@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

Hi all,

As many in the community are aware, the Xen Project has been notified
that the facility hosting the physical hardware for OSSTest and some of
the GitLab runners will shut down by the end of October 2024. This
necessitates a shift in our operations.

Our community manager, Kelly, has diligently explored options to
relocate the Xen Project hardware to a new facility. However, the costs
and risks associated with such a move are significant. These include
potential damage during transit, reconfiguration challenges, and the
possibility of OSSTest not returning to a functional state, even if the
hardware is correctly installed.

OSSTest has been instrumental to the Xen Project for many years,
providing exceptional testing capabilities, particularly for a
micro-kernel that requires bare metal hardware testing. Its unique
features, such as automatic bisection on regressions and the ability to
test external projects like the Linux kernel, QEMU, and OVMF, are
noteworthy. However, maintaining such a complex system demands
significant resources.

Given the current circumstances, the leadership team proposes to
pivot our focus to GitLab CI. GitLab CI offers a more modern and
sustainable infrastructure, with the added advantage of being much
easier to extend. This transition will enable any community member to
contribute tests and hardware resources easily, fostering greater
community involvement and collaboration.

We extend our heartfelt gratitude to everyone who has contributed to
OSSTest over the years. It has been invaluable in identifying countless
regressions in Xen and third-party projects alike.

Regarding the GitLab runners currently hosted on physical hardware at
the soon-to-be-closed facility, we are exploring alternative locations.
As any Linux machine can be turned into a GitLab runner with a simple
package install, we have numerous options available, and we welcome
support from community members to ensure a smooth transition.

Stefano, on behalf of the Xen Hypervisor Leadership Team


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 21:33:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 21:33:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764519.1174981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWjbg-0003x8-NX; Wed, 24 Jul 2024 21:33:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764519.1174981; Wed, 24 Jul 2024 21:33: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 1sWjbg-0003x1-Kn; Wed, 24 Jul 2024 21:33:08 +0000
Received: by outflank-mailman (input) for mailman id 764519;
 Wed, 24 Jul 2024 21:33: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=KqaG=OY=gmail.com=julien.grall@srs-se1.protection.inumbo.net>)
 id 1sWjbf-0003wr-7E
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 21:33:07 +0000
Received: from mail-yw1-x1132.google.com (mail-yw1-x1132.google.com
 [2607:f8b0:4864:20::1132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e9a4332-4a04-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 23:33:03 +0200 (CEST)
Received: by mail-yw1-x1132.google.com with SMTP id
 00721157ae682-65f880c56b1so2451397b3.3
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 14:33: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: 4e9a4332-4a04-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721856783; x=1722461583; 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=ydzBqt0vm7s/yvci8xO3NRbVqU0/wVqlaZcSbaQjepE=;
        b=ahzLI2clBlXcXRWAPJUOaVUBfmMpyN2oXBMFMTenx+fFn06LzijKqMRZYcKla52JFc
         p0guK5ZC1B0NXsxHQUgnxN2nNnQ56gwQhP2aCZBb7HOtqwQWzE9GG9oXnoaWDDb6tYCF
         wp5xa9lhnmiBaw63ch2GYZGiNKn4HaR3cET069E+lYNyMgfYi0DIl5rjGU35Hmot79p5
         JmVbQQtjcnjrwUQ6I6Rdbi8UVnP6GAStTpunVjDCythXnxnZG+6VOY4PushsvYaumN/c
         IGBuQmHXKtClOS82QCIpRjGM+2Mng0VPvvxEp0DTidnzf42Matg46HTEt3R4pgSWiU3x
         FLhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721856783; x=1722461583;
        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=ydzBqt0vm7s/yvci8xO3NRbVqU0/wVqlaZcSbaQjepE=;
        b=kp7BToGyBvdnNs5n6CVpx0WlQ/Ql8752USdyYeEeZZb9NgiUH5MiI5UxGFa/8eYeL2
         srYdcCojSgA/yobUl24kroX3q+dXVvi4MZr7diEvA04W9/uy5kVWPErdFcX/Mlor7Anu
         IWzfH5Nh0gR6ZUXGE6StwyEafNm8G3g4xDHgRa37O9RUhEA2oi4ker2Wv5ie0Jt39+c/
         wrLs6CMIcaoZFj5Kr56aaZvvLqoCJaN8uFYwcnxDGuGwJkaflLEw+GRlbROcW5/OSajY
         /FF9J4pR2Wnx+1IM8G40TlzdD2NXFhkekadJdPO2eTUzwI7jLBj7PEPHP+MgZPzTsSeV
         9gyw==
X-Forwarded-Encrypted: i=1; AJvYcCVwRayOpEE0rrIoInoYNoyMJYsOGLFH3XXvi86vLFS9cdL2gf2AzqmF6FH8nIgEBx/3du4bnZU9vX2roLjrSpLfysNXBYapOg8B0tDKobk=
X-Gm-Message-State: AOJu0Yyr6/hnZ7R4Nr1tc/VgHUs7CowQXyBDWD32AmpRIoT/lZygXKZR
	i6D9awbCNaDtPnWL+F6RWKlU215GS6+wO03nRupbLWg0HMwURL5JXbjsNH2maRIXYJAHAf9CxzH
	hxX9Femp2oSh37LMEyFO0jy8tlxg=
X-Google-Smtp-Source: AGHT+IHtKRXsO48gTyT+z5qLoimt36IxCgWKFWvW0BRsZS6nCUtRWXOSMXuDVZMv+onPHmKMTtJZlHTPWxFeEfdDUrc=
X-Received: by 2002:a05:690c:650b:b0:62c:c696:56fd with SMTP id
 00721157ae682-675156e7e81mr9054127b3.38.1721856782719; Wed, 24 Jul 2024
 14:33:02 -0700 (PDT)
MIME-Version: 1.0
References: <06e4ad1126b8e9231bf6dcf88205857081968274.1721779872.git.victorm.lira@amd.com>
 <4468a02f-4d8c-4b94-8af6-cd1751cd0a89@suse.com> <8fa38784-ba85-4675-9fad-39dd97652bb6@amd.com>
 <9be5b78a-211c-4859-a56e-30ab414c99fb@amd.com>
In-Reply-To: <9be5b78a-211c-4859-a56e-30ab414c99fb@amd.com>
From: Julien Grall <julien.grall@gmail.com>
Date: Wed, 24 Jul 2024 22:32:26 +0100
Message-ID: <CAF3u54BYkMryxhr45WfJDZP5VUKJuuo0FxLshGg8xeCLm0D7gg@mail.gmail.com>
Subject: Re: [RFC PATCH] automation: add linker symbol name script
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: "Lira, Victor M" <VictorM.Lira@amd.com>, Jan Beulich <jbeulich@suse.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com, 
	consulting@bugseng.com, simone.ballarin@bugseng.com, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Le mer. 24 juil. 2024 =C3=A0 21:56, Jason Andryuk <jason.andryuk@amd.com> a=
 =C3=A9crit :
>
> On 2024-07-24 13:48, Lira, Victor M wrote:
> >
> > On 7/24/2024 12:44 AM, Jan Beulich wrote:
> >> Nit: In names of new files we prefer - over _.
> >> +script_name=3D`basename "$0"`
> > I have fixed the above comments in v2.
> >
> >>> +#!/bin/bash
> >> Can we rely on bash to be there and at that location? As you using any
> >> bash-isms in the script which cannot be avoided?
> >
> > Are the automation scripts required to be portable? Can you please poin=
t
> > me to a resource where I can learn how to make the script portable?
>
> Hi Victor,
>
> You might want to check out `checkbashisms`:
>
> $ checkbashisms
> Usage: checkbashisms [-n] [-f] [-x] [-e] [-l] script ...
>     or: checkbashisms --help
>     or: checkbashisms --version
> This script performs basic checks for the presence of bashisms
> in /bin/sh scripts and the lack of bashisms in /bin/bash ones.
>
> Since your script has '#!/bin/bash', you'd run it with -f to force the
> bashism checks (or change to /bin/sh first).

Just for completeness, you could also use shellcheck.

https://www.shellcheck.net/

I haven't tried checkbashisms so I can't really provide any comparison
between the two.

Cheers,

--=20
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 21:45:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 21:45:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764525.1174991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWjnm-0005eE-Ps; Wed, 24 Jul 2024 21:45:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764525.1174991; Wed, 24 Jul 2024 21:45: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 1sWjnm-0005e7-Ml; Wed, 24 Jul 2024 21:45:38 +0000
Received: by outflank-mailman (input) for mailman id 764525;
 Wed, 24 Jul 2024 21:45: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=Ik8X=OY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWjnl-0005e1-Da
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 21:45:37 +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 0de26c3d-4a06-11ef-8776-851b0ebba9a2;
 Wed, 24 Jul 2024 23: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 27FA961232;
 Wed, 24 Jul 2024 21:45:33 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 136ACC32781;
 Wed, 24 Jul 2024 21: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: 0de26c3d-4a06-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721857532;
	bh=PI1sF0WC4cuOOemn4pl0GJf1GEmVZf9Ce5PDuMa6gjM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=gjbXZxkgtSPx5gpJSwA9qT46Q2gWSqDSShGVAJ5IfZ15iHafDSLvlD8UcVukxSf3v
	 sv1ZKMIqjvnvSGwSdRjyacOaR3/+sAVYRdFLl1d0xPnZB+eplZLQxz1PskiRi/ugmb
	 EQiRvgWDMg5nIsLJAPmzsbPeQFlmK1MucPkSJL+dlcfOxCM3kjATLTADzrNkfC7Z5i
	 +l02Ccany17GMKA9YSJYKzjpYWecbkXa4FHOciHMI6j4A97E6+XNeNTaefCBlvuQJU
	 HK20sZOb6I3VTWaKNFH2hDUqo0DM7y3g1QJbgv5CZvxPfKtbRPVQX843GfvBLV56vd
	 N6CCDFrw5HFDA==
Date: Wed, 24 Jul 2024 14:45:30 -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, 
    Stefano Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com, 
    consulting@bugseng.com, simone.ballarin@bugseng.com
Subject: Re: [RFC PATCH v2] automation: add linker symbol name script
In-Reply-To: <5b2862d6d036248e8cdd76e9884f173c6b7ff325.1721842334.git.victorm.lira@amd.com>
Message-ID: <alpine.DEB.2.22.394.2407241441480.4857@ubuntu-linux-20-04-desktop>
References: <5b2862d6d036248e8cdd76e9884f173c6b7ff325.1721842334.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, 24 Jul 2024, victorm.lira@amd.com wrote:
> From: Victor Lira <victorm.lira@amd.com>
> 
> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> Requested-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> Notes:
> This is a utilty script for help with the MISRA process.
> This script matches all linker symbol names in linker script files for
> arm and x86.
> Not included are symbol names starting with "." or symbol names enclosed
> in quotes since the files dont't use any. The regular expression also does
> not match for "&=" and similar compound assignments.
> ---
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: roberto.bagnara@bugseng.com
> Cc: consulting@bugseng.com
> Cc: simone.ballarin@bugseng.com
> ---
> Changes v2:
> - address style comments
> - updated script to use .lds instead of .lds.S
> - remove sample output from patch
> ---
>  automation/eclair_analysis/linker-symbols.sh | 34 ++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>  create mode 100755 automation/eclair_analysis/linker-symbols.sh
> 
> diff --git a/automation/eclair_analysis/linker-symbols.sh b/automation/eclair_analysis/linker-symbols.sh
> new file mode 100755
> index 0000000000..35ec97eb8e
> --- /dev/null
> +++ b/automation/eclair_analysis/linker-symbols.sh
> @@ -0,0 +1,34 @@

Hi Victor,

A previous comment about the presence of /bin/bash meant to suggest to
use instead something like:

#!/usr/bin/env bash

or if you don't use any bash-ism:

#!/bin/sh

The rest looks OK to me


> +# Stop immediately if any executed command has exit status different from 0.
> +set -e
> +
> +# Extract linker symbol names (except those starting with ".") from assignments.
> +
> +script_name=$(basename "$0")
> +script_dir="$(
> +  cd "$(dirname "$0")"
> +  echo "${PWD}"
> +)"
> +src_dir="${script_dir}/../.."
> +
> +usage() {
> +  echo "Usage: ${script_name} <arm|x86>"
> +}
> +
> +if [ $# -ne 1 ]; then
> +  usage
> +  exit 1
> +fi
> +
> +if [ "$1" != "arm" ] && [ "$1" != "x86" ]; then
> +    usage
> +    exit 1
> +fi
> +
> +filepath="${src_dir}/xen/arch/${1}/xen.lds"
> +
> +if [ ! -f "$filepath" ]; then
> +    echo "Must be run after build."
> +    exit 2
> +fi
> +
> +sed -n "s/^\s*\([a-zA-Z_][a-zA-Z_0-9.\-]*\)\s*=.*;.*$/\1/p" $filepath
> --
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 21:50:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 21:50:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764533.1175001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWjsH-0007MP-Dn; Wed, 24 Jul 2024 21:50:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764533.1175001; Wed, 24 Jul 2024 21:50:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWjsH-0007MI-Ao; Wed, 24 Jul 2024 21:50:17 +0000
Received: by outflank-mailman (input) for mailman id 764533;
 Wed, 24 Jul 2024 21:50:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWjsG-0007M8-BP; Wed, 24 Jul 2024 21:50:16 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWjsG-0001UZ-5s; Wed, 24 Jul 2024 21:50:16 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWjsF-0001VU-MD; Wed, 24 Jul 2024 21:50:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWjsF-00073T-Ll; Wed, 24 Jul 2024 21: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=R+aEraF2W2GsUi7UATD2w2Rmhr5rJIuA3YlcKtmMPcQ=; b=zw7YA0MbQ5cx/n1/68JKdXWBtf
	9bIsrse3uReztsTDiElkg/bQsrdQGKnEBmTF7JcudjsWybnqQ6OAu+C9LClZmuk6lYttyCi72r6tp
	EP+T+/ODe+g3P4Gd9J6onNvkMdhEzT/ShkYQCUf6384/Vuix0ZObSm2ETifqTksPWmDA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186988-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186988: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=a7abb77c599f4243d7dbab552ec74ed4d0d0d152
X-Osstest-Versions-That:
    ovmf=a9c8c47d5347c74f5e7e7cb859912a276c6e9fb8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 21:50:15 +0000

flight 186988 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186988/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 a7abb77c599f4243d7dbab552ec74ed4d0d0d152
baseline version:
 ovmf                 a9c8c47d5347c74f5e7e7cb859912a276c6e9fb8

Last test of basis   186983  2024-07-24 10:43:12 Z    0 days
Testing same since   186988  2024-07-24 20:13:23 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ard Biesheuvel <ardb@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   a9c8c47d53..a7abb77c59  a7abb77c599f4243d7dbab552ec74ed4d0d0d152 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 22:14:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 22:14:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764542.1175011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWkFN-0001uh-Ad; Wed, 24 Jul 2024 22:14:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764542.1175011; Wed, 24 Jul 2024 22: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 1sWkFN-0001ua-6Y; Wed, 24 Jul 2024 22:14:09 +0000
Received: by outflank-mailman (input) for mailman id 764542;
 Wed, 24 Jul 2024 22: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=Ik8X=OY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sWkFM-0001uR-3b
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 22:14:08 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a4466da-4a0a-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 00:14:06 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 152AE612B8;
 Wed, 24 Jul 2024 22:14:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC837C32781;
 Wed, 24 Jul 2024 22:14:03 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a4466da-4a0a-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721859244;
	bh=bcT+y/dwiVMzCXlP0bFQ0zxczNpbCiI1eganToTN200=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=isc7/Px1pKBAzvpH3sZNR0ArZdcBaa017QGmTP8a9IX/EdqiqNVohfZAUw0Govlnt
	 33hcr5cW+KeC/HyTZytRnqE94E1ISpnfYy9WtEmG1Xg+UoWEtK/9+Z5baZqOF73fJB
	 OBRXwYAFYUFittcAYUBkH7ZmqO3mXqYkbsIc3nEdiAc4//FyS8/KGwBEQCN0F107X6
	 1ElBcbNwHuI1VCqydhU0zJpzN6n8Y9r6FJ5i0OZlEfNHwYp6U81NLgTjqXsbMYTWSS
	 2MWH5x8bE3DqlmkcP4pRM/TP3GCFqsJBrdxWAXAsW+G8o+NV0sAWGFnZ0LAyOOWR+v
	 UDUE/VOd2nY/A==
Date: Wed, 24 Jul 2024 15:14:02 -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>, 
    Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v5 16/17] CODING_STYLE: Add a section on header guards
 naming conventions
In-Reply-To: <6be25cb3-2481-4832-9a05-6f58468b8cc0@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407241513540.4857@ubuntu-linux-20-04-desktop>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com> <14a663eaab02a78e688e1d260e1a4eb1799b13c5.1721720583.git.alessandro.zucchelli@bugseng.com> <9ceeedb1-31c6-4701-849c-e4f32fc07409@suse.com> <alpine.DEB.2.22.394.2407231539570.4857@ubuntu-linux-20-04-desktop>
 <6be25cb3-2481-4832-9a05-6f58468b8cc0@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, 24 Jul 2024, Jan Beulich wrote:
> On 24.07.2024 00:40, Stefano Stabellini wrote:
> > On Tue, 23 Jul 2024, Jan Beulich wrote:
> >> On 23.07.2024 10:15, Alessandro Zucchelli wrote:
> >>> This section explains which format should be followed by header
> >>> inclusion guards via a drop-down list of rules.
> >>>
> >>> No functional change.
> >>>
> >>> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
> >>
> >> As indicated in reply to v4, this wants (imo needs) to move to the very start
> >> of the series. No changes following the new scheme should be made without the
> >> new scheme actually having been committed.
> >>
> >>> --- a/CODING_STYLE
> >>> +++ b/CODING_STYLE
> >>> @@ -159,6 +159,27 @@ Emacs local variables
> >>>  A comment block containing local variables for emacs is permitted at
> >>>  the end of files.  It should be:
> >>>  
> >>> +Header inclusion guards
> >>> +-----------------------
> >>> +
> >>> +Unless differently specified all header files should have proper inclusion
> >>> +guards in order to avoid being included multiple times.
> >>> +The following naming conventions have been devised:
> >>> +
> >>> +- private headers -> <dir>__<filename>_H
> >>> +    - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
> >>> +    - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
> >>> +    - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> >>> +
> >>> +- asm-generic headers -> ASM_GENERIC__<filename>_H
> >>> +    - include/asm-generic/something.h -> ASM_GENERIC__SOMETHING_H
> >>> +
> >>> +- arch/<architecture>/include/asm/<subdir>/<filename>.h -> ASM__<architecture>__<subdir>__<filename>_H
> >>> +    - arch/x86/include/asm/something.h -> ASM__X86__SOMETHING_H
> >>> +
> >>> +- include/xen -> XEN__<filename>_H
> >>> +    - include/xen/something.h -> XEN__SOMETHING_H
> >>
> >> While I think this expresses what we have settled on, it lack details. For
> >> example, when to use single vs double underscores is left for the reader
> >> to derive from the examples, which leaves room for interpretation.
> > 
> > I think so too. Here is my improved version, what do you think:
> > 
> > 
> > Header inclusion guards
> > -----------------------
> > 
> > Unless otherwise specified, all header files should include proper
> > guards to prevent multiple inclusions. The following naming conventions
> > apply:
> > 
> > - Private headers: <dir>__<filename>_H
> >     - arch/arm/arm64/lib/something.h -> ARM__ARM64__LIB__SOMETHING_H
> >     - arch/arm/arm32/lib/something.h -> ARM__ARM32__LIB__SOMETHING_H
> >     - arch/x86/lib/something.h -> X86__LIB__SOMETHING_H
> > 
> > - asm-generic headers: ASM_GENERIC__<filename>_H
> >     - include/asm-generic/something.h -> ASM_GENERIC__SOMETHING_H
> > 
> > - arch-specific headers: ASM__<architecture>__<subdir>__<filename>_H
> >     - arch/x86/include/asm/something.h -> ASM__X86__SOMETHING_H
> > 
> > - Xen headers: XEN__<filename>_H
> >     - include/xen/something.h -> XEN__SOMETHING_H
> > 
> > Notes:
> > 
> > - Filenames and directories are converted to uppercase.
> > - Dashes are converted to underscores.
> 
> s/Dashes/Non-alphanumeric characters/

+1


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 22:22:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 22:22:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764549.1175020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWkMw-0003ae-0i; Wed, 24 Jul 2024 22:21:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764549.1175020; Wed, 24 Jul 2024 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 1sWkMv-0003aX-UE; Wed, 24 Jul 2024 22:21:57 +0000
Received: by outflank-mailman (input) for mailman id 764549;
 Wed, 24 Jul 2024 22:21: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=VfnQ=OY=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sWkMv-0003aR-4p
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 22:21:57 +0000
Received: from fout5-smtp.messagingengine.com (fout5-smtp.messagingengine.com
 [103.168.172.148]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 206ed573-4a0b-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 00:21:53 +0200 (CEST)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46])
 by mailfout.nyi.internal (Postfix) with ESMTP id 92DC813801DA;
 Wed, 24 Jul 2024 18:21:44 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute2.internal (MEProxy); Wed, 24 Jul 2024 18:21:44 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 24 Jul 2024 18:21: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: 206ed573-4a0b-11ef-8776-851b0ebba9a2
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=1721859704;
	 x=1721946104; bh=e7YYia+duEPY029zdgM/6UMvVwePoeNMsfMcO9EC9rg=; b=
	B1RZtqOkmmHb+7IgizYV1qyx+75BPOtyQ5X2+r56d7u1SFWhzhhr/YTk80YYOhNr
	ZZrsFT4JacsV9+jZdqonazE+SJVwX8Eov2YV8Uzqn4L7SCUpQRJyVzID9zJ7ZJnZ
	7HhBx1+kBuFa5vuaJKpTyy7tYUzmgz+jcm/4XcW0hkpiJwuo411uF1faYXxbU/KI
	hVmN+0txc67uNVbQM6AJnRrpBFSp9Hp2kVsO8ZqzUecEVPbbLK+T8suCciUENwgY
	ef97EEBBe6zmYujbRBIQGZ4bsegJ5iMF24mIZxKR944kdWnd8QPdJ/ayXQ7rY4Ca
	HDu8nMY4Uyu047DPmEyZIQ==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1721859704; x=1721946104; bh=e7YYia+duEPY029zdgM/6UMvVweP
	oeNMsfMcO9EC9rg=; b=ZRcKqxJkTTrIAqzxm2Fnz0sFSLIUgX7IV3Fw/NvTeHG4
	fTm23K/4nTV/xFA6fAleCam75pohe2F2BGHf42W8iv40xJuiRsWNkR50o2NpbEsE
	IDrryehfgKlgtREc9SEkgfmknSwN8Rb6xtM98NUC0gCNw3VZEUJ6ra2g8tlF68QF
	5pntbwF+Yy9vkuAEeBohualAIh05wnemo0hi+rqE5os9KdKaPB2qD0QJtAG/aFo6
	01jReGETJCY3EdH1geARVO0t+1H05z2dXeJZnjUrskGBZh9B9U4RKv+NoOI0apWL
	NCMOWyYChGIk3uO6zLLsFs1dcAJyTxr4gb8HUnp9kg==
X-ME-Sender: <xms:eH6hZqQovNj3zfCy4kkJZiJ9F9uIutfVv7ogjM0JUOQoWPO4womiIQ>
    <xme:eH6hZvzBxksCxGIWn5cjGR4c2lg8_ByIQaYHbIoWH9lsmS8LaG8xssXB-YYiLe4k3
    clpAdzWMboB9w>
X-ME-Received: <xmr:eH6hZn1YmSnBlj8ynJtYo-3a7-FbqT6t4xor6ScuZ5QKtZPqx3a_eCdQ1ihD3p9ZhS4dwIkMuY7qx-PKfN3bsMZ72n_Uw1h6Cw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddriedvgddutdcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpedugfdu
    gfdvvdekjeeffefgieegheduffelieeghffhiedtleeikeelgfeguddtudenucffohhmrg
    hinhepghhithhlrggsrdgtohhmpdhkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhi
    iigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedt
X-ME-Proxy: <xmx:eH6hZmBn6rkjYolv-_cZcBl_PbsnFvYUnvKI_UrxbHZPVJuG921zZw>
    <xmx:eH6hZjgIcorwQv2GfsmKszmK7BvEID5d5hYxKhl0LbSyp7zXNcDsFw>
    <xmx:eH6hZipsdgqw6phaVQzrZ8bvX1ixgVfa3TVDfZI4YFgHbuAvqBq9SA>
    <xmx:eH6hZmhb727F04HqJOhMAFBfiGtmyNsMnCJNqEMMeu-vZEd8o3xNeQ>
    <xmx:eH6hZmvksGCArOKbLmM0bRfI9ul6YTZGgjF5eSxN6kg-T_OvZPv2Pemc>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 25 Jul 2024 00:21:40 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: xen | Failed pipeline for staging-4.19 | 2d7b6170
Message-ID: <ZqF-dZETPHofyXQz@mail-itl>
References: <66a0fe638f16a_33beeb0103995@gitlab-sidekiq-catchall-v2-96b77f447-9jjmp.mail>
 <24be503c-7c8a-4db9-aee4-04b0c872c0dc@suse.com>
 <ZqEfi3WkRTzDqRWi@l14>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Wdr+mhhF7fX8ajJp"
Content-Disposition: inline
In-Reply-To: <ZqEfi3WkRTzDqRWi@l14>


--Wdr+mhhF7fX8ajJp
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 25 Jul 2024 00:21:40 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: xen | Failed pipeline for staging-4.19 | 2d7b6170

On Wed, Jul 24, 2024 at 03:36:44PM +0000, Anthony PERARD wrote:
> On Wed, Jul 24, 2024 at 03:18:50PM +0200, Jan Beulich wrote:
> > On 24.07.2024 15:15, GitLab wrote:
> > >=20
> > >=20
> > > Pipeline #1385987377 has failed!
> > >=20
> > > Project: xen ( https://gitlab.com/xen-project/hardware/xen )
> > > Branch: staging-4.19 ( https://gitlab.com/xen-project/hardware/xen/-/=
commits/staging-4.19 )
> > >=20
> > > Commit: 2d7b6170 ( https://gitlab.com/xen-project/hardware/xen/-/comm=
it/2d7b6170cc69f8a1a60c52d87ba61f6b1f180132 )
> > > Commit Message: hotplug: Restore block-tap phy compatibility (a...
> > > Commit Author: Jason Andryuk ( https://gitlab.com/jandryuk-amd )
> > > Committed by: Jan Beulich ( https://gitlab.com/jbeulich )
> > >=20
> > >=20
> > > Pipeline #1385987377 ( https://gitlab.com/xen-project/hardware/xen/-/=
pipelines/1385987377 ) triggered by Jan Beulich ( https://gitlab.com/jbeuli=
ch )
> > > had 3 failed jobs.
> > >=20
> > > Job #7415912260 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/=
7415912260/raw )
> > >=20
> > > Stage: test
> > > Name: qemu-alpine-x86_64-gcc
> >=20
> > This is the one known to fail more often than not, I think, but ...
> >=20
> > > Job #7415912175 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/=
7415912175/raw )
> > >=20
> > > Stage: build
> > > Name: ubuntu-24.04-x86_64-clang
> > > Job #7415912173 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/=
7415912173/raw )
> > >=20
> > > Stage: build
> > > Name: ubuntu-22.04-x86_64-gcc
> >=20
> > ... for these two I can't spot any failure in the referenced logs. What=
's going on
> > there?
>=20
> They are crutial information missing in that email, the actual reason
> given by gitlab for the failures: "There has been a timeout failure or
> the job got stuck." (That message can be seen when going to the url,
> removing "/raw" part, and scrolling to the top. Or looking at the side
> bar and seen a duration that well above 1h)
>=20
> Communication between gitlab and the runner might be broken in those
> cases, or the runner stop working.

This time the runner VM got hit with
https://lore.kernel.org/xen-devel/ZO0WrR5J0xuwDIxW@mail-itl/ . So, I
guess the failure is warranted, just not the one you'd expect...

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

--Wdr+mhhF7fX8ajJp
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmahfnUACgkQ24/THMrX
1ywkOAf+OR5meVls0TJqabi8y2X1CuxplE1WUwYUrToHqFO1+q2IKjxc+kWmZqUI
qZWdBYcG2cGw3O7/Bt/DLs4TIbYso6YLRS1HugCm8Pf3gORbOY8J7DRTqdDlqAYM
YLJrV+j9KKjJl1F1W/zBBm0ha0Gk0AjtcYuLtmYSbpRXiQYe7/y2asMjrFUiDedF
5glQ2AI2RKk8huMSni6wEi8BkPO94VusFyRspe1Q7EClTZ4eRNQgemTAHGMSuCwg
wRymmS6tUWk9/a1BvZW+FMDWFIU9SFwUZ407WAaIWzBbMdjddqlnpef2TgK8ZfMc
TxOxfAOA7pyfPZ45jmeSg1p2n76I5A==
=hJ1m
-----END PGP SIGNATURE-----

--Wdr+mhhF7fX8ajJp--


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 22:44:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 22:44:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764559.1175034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWkis-0006cB-Sg; Wed, 24 Jul 2024 22:44:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764559.1175034; Wed, 24 Jul 2024 22:44:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWkis-0006c1-PA; Wed, 24 Jul 2024 22:44:38 +0000
Received: by outflank-mailman (input) for mailman id 764559;
 Wed, 24 Jul 2024 22:44: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=7T/i=OY=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sWkir-0006bY-FG
 for xen-devel@lists.xenproject.org; Wed, 24 Jul 2024 22:44:37 +0000
Received: from sonata.ens-lyon.org (sonata.ens-lyon.org [140.77.166.138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4b752ae5-4a0e-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 00:44:35 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 8AA46A038F;
 Thu, 25 Jul 2024 00:44:32 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 8yB0qiCt7ad1; Thu, 25 Jul 2024 00:44:32 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id 676E2A038D;
 Thu, 25 Jul 2024 00:44:32 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98-RC3)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sWkil-0000000BNLX-1y2I; Thu, 25 Jul 2024 00:44:31 +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: 4b752ae5-4a0e-11ef-bbff-fd08da9f4363
Date: Thu, 25 Jul 2024 00:44:31 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 4/4] mini-os: remove sanity_check()
Message-ID: <20240724224431.jelemlo6tt2jgaw2@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
References: <20240722150141.31391-1-jgross@suse.com>
 <20240722150141.31391-5-jgross@suse.com>
 <20240722213544.hjyohnoz4mtcfltr@begin>
 <884d746c-47e4-4d0f-87a9-e2a03d2a3286@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <884d746c-47e4-4d0f-87a9-e2a03d2a3286@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Hello,

Jürgen Groß, le mar. 23 juil. 2024 08:36:13 +0200, a ecrit:
> On 22.07.24 23:35, Samuel Thibault wrote:
> > Juergen Gross, le lun. 22 juil. 2024 17:01:41 +0200, a ecrit:
> > > Remove the sanity_check() function, as it is used nowhere.
> > > 
> > > Since any application linked with Mini-OS can't call sanity_check()
> > > either (there is no EXPORT_SYMBOL for it), there is zero chance of
> > > breaking any use case.
> > 
> > Don't we still want to keep it around, at least as formal documentation
> > of the expected status of the list?
> 
> Hmm, is it really worth the extra code?

I have already seen such kind of piece of code getting very convenient
when tracking odd bugs.

Samuel


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 23:02:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 23:02:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764571.1175045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWl0D-00019Z-Bl; Wed, 24 Jul 2024 23:02:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764571.1175045; Wed, 24 Jul 2024 23:02: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 1sWl0D-00019S-7y; Wed, 24 Jul 2024 23:02:33 +0000
Received: by outflank-mailman (input) for mailman id 764571;
 Wed, 24 Jul 2024 23:02:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWl0C-00019I-96; Wed, 24 Jul 2024 23:02:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWl0B-0002pS-T3; Wed, 24 Jul 2024 23:02:31 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWl0B-0005EU-BO; Wed, 24 Jul 2024 23:02:31 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWl0B-0002Vp-Aw; Wed, 24 Jul 2024 23:02: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=w45eP2e6OyfmHDcwvegWRQu2cgR6wRFL7g0kwIcqp4w=; b=PfbqvDULWvEdk9qpNhZ+yA38pI
	mGox2dG0Y3CczrVPzulqjRvbB/QEB/RjbgBYaiKc8jTkF7ORr2GNVx9pAU/Mw2xGE8Zoas1I86nDW
	IR/GiUBWvRMYR8/tmItp+REQywxJSw6+PUp6Y8juitXVZuppe2iqjt6YYfsbm2P9sGVs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186987-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186987: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:guest-start/debian.repeat:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
X-Osstest-Versions-That:
    xen=5795a0bf5493d411155093180ed16e4ba63d37bf
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 23:02:31 +0000

flight 186987 xen-unstable-smoke real [real]
flight 186990 xen-unstable-smoke real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186987/
http://logs.test-lab.xenproject.org/osstest/logs/186990/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-libvirt    20 guest-start/debian.repeat fail REGR. vs. 186984

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847
baseline version:
 xen                  5795a0bf5493d411155093180ed16e4ba63d37bf

Last test of basis   186984  2024-07-24 14:03:56 Z    0 days
Testing same since   186987  2024-07-24 19:00:25 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit b25b28ede1cba43eda1e0b84ad967683b8196847
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu May 9 18:52:59 2024 +0100

    hvmloader: Use fastcall everywhere
    
    HVMLoader is a single freestanding 32bit program with no external
    dependencies.  Use the fastcall calling convetion (up to 3 parameters in
    registers) globally, which is more efficient than passing all parameters on
    the stack.
    
    Some bloat-o-meter highlights are:
    
      add/remove: 0/0 grow/shrink: 3/118 up/down: 8/-3004 (-2996)
      Function                                     old     new   delta
      ...
      hvmloader_acpi_build_tables                 1125     961    -164
      acpi_build_tables                           1277    1081    -196
      pci_setup                                   4756    4516    -240
      construct_secondary_tables                  1689    1447    -242
    
    No functional change.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Wed Jul 24 23:49:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 24 Jul 2024 23:49:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764581.1175058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWljf-0006Gg-Pf; Wed, 24 Jul 2024 23:49:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764581.1175058; Wed, 24 Jul 2024 23:49: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 1sWljf-0006GZ-N2; Wed, 24 Jul 2024 23:49:31 +0000
Received: by outflank-mailman (input) for mailman id 764581;
 Wed, 24 Jul 2024 23:49:30 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWlje-0006GP-0n; Wed, 24 Jul 2024 23:49:30 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWljd-0003bS-I8; Wed, 24 Jul 2024 23:49:29 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWljd-00076I-4b; Wed, 24 Jul 2024 23:49:29 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWljd-0003y3-47; Wed, 24 Jul 2024 23:49:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ZPM722QZAOUAUdoEWWadWR6nJYZjbzUUBr37qP4bvfQ=; b=csPqcmJMk5LBo0Yz7sDgTs0gGp
	cqi5jXoBTxd7OenjW0YASVEl3WJBEjG5KW58IdU7gE6q/ewiCkWMc4CJF4ix6Td1rFUx2hTeUwaw1
	n5AOHCU7leg0pI1YT06UtQpgsOGdAbkg5duVamjGIap5NXp4ZVEsUxC0lPvbOhZ434gM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186991-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186991: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=a96d2a8f2dd3eb7e32b383821fe30cfd7cdb2248
X-Osstest-Versions-That:
    ovmf=a7abb77c599f4243d7dbab552ec74ed4d0d0d152
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 24 Jul 2024 23:49:29 +0000

flight 186991 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186991/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 a96d2a8f2dd3eb7e32b383821fe30cfd7cdb2248
baseline version:
 ovmf                 a7abb77c599f4243d7dbab552ec74ed4d0d0d152

Last test of basis   186988  2024-07-24 20:13:23 Z    0 days
Testing same since   186991  2024-07-24 22:11:40 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Oliver Smith-Denny <osde@linux.microsoft.com>
  Taylor Beebe <31827475+TaylorBeebe@users.noreply.github.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   a7abb77c59..a96d2a8f2d  a96d2a8f2dd3eb7e32b383821fe30cfd7cdb2248 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 02:06:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 02:06:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764593.1175074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWnrk-0000JD-4P; Thu, 25 Jul 2024 02:06:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764593.1175074; Thu, 25 Jul 2024 02: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 1sWnrk-0000J6-0D; Thu, 25 Jul 2024 02:06:00 +0000
Received: by outflank-mailman (input) for mailman id 764593;
 Thu, 25 Jul 2024 02:05:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWnri-0000Iv-U3; Thu, 25 Jul 2024 02:05:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWnri-0001e9-NZ; Thu, 25 Jul 2024 02:05:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWnri-0002su-3z; Thu, 25 Jul 2024 02:05:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWnri-0003Hz-3X; Thu, 25 Jul 2024 02:05: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=fT4mH6dbNpWZU94HgSBlV3sc5UsSVsvDSFdkaz2NgEM=; b=tfCSMPHTWxE/K6RiRfdhaoc9LH
	elFxVlXX62vqcxyZFrsPNXbBIPo88xtA6b0g3+KDvpuPYaLy7AQgzr5toNfRD/HC75jsTslwh72qz
	9MBUj+fb2nXreN5SBdxgfY7NkjcItUx8ntMAEUAA8Nz4KDrypg5cyjgLDwPEhoSo1eV8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186995-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xtf test] 186995: all pass - PUSHED
X-Osstest-Versions-This:
    xtf=f37c4574dd79d058c035be989ac6648508556a1a
X-Osstest-Versions-That:
    xtf=4172faef1c0dee027ddd3ffdbc88fe20eb711e9c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 02:05:58 +0000

flight 186995 xtf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186995/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 xtf                  f37c4574dd79d058c035be989ac6648508556a1a
baseline version:
 xtf                  4172faef1c0dee027ddd3ffdbc88fe20eb711e9c

Last test of basis   186986  2024-07-24 18:11:37 Z    0 days
Testing same since   186995  2024-07-25 01:11:38 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Manuel Andreas <manuel.andreas@tum.de>

jobs:
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-amd64-pvops                                            pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xtf.git
   4172fae..f37c457  f37c4574dd79d058c035be989ac6648508556a1a -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 03:01:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 03:01:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764604.1175090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWojf-0007AC-59; Thu, 25 Jul 2024 03:01:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764604.1175090; Thu, 25 Jul 2024 03: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 1sWojf-0007A5-2b; Thu, 25 Jul 2024 03:01:43 +0000
Received: by outflank-mailman (input) for mailman id 764604;
 Thu, 25 Jul 2024 03:01:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWoje-00079v-A6; Thu, 25 Jul 2024 03:01:42 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWoje-0002ot-7b; Thu, 25 Jul 2024 03:01:42 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWojd-0004Ki-RK; Thu, 25 Jul 2024 03:01:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWojd-0005Sm-Qq; Thu, 25 Jul 2024 03:01: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=NvNUNQlX/uM1sco0Jsxxug7FgMxfemOlMRW6Zx8ribI=; b=tIjggztR5GnkrrqhL4FZdEVIDI
	/NHE7ufwPPBPuY/FjHKqORgTc0KltSA8QW8TRU/80cq4ee9w0t88chTjV78PH2Mm3BdoA7H2HTBqk
	q4S/PzkgUBLKfMBtSZZ8F1DqjOYp8klhT7KTC1Ec3XTMguKYosns6mgBdcAdzEKJsCJ4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186982-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.19-testing test] 186982: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.19-testing:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-4.19-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=2d7b6170cc69f8a1a60c52d87ba61f6b1f180132
X-Osstest-Versions-That:
    xen=9d7f7e3444bcd85b73a8a152b26b22821275a156
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 03:01:41 +0000

flight 186982 xen-4.19-testing real [real]
flight 186996 xen-4.19-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186982/
http://logs.test-lab.xenproject.org/osstest/logs/186996/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186996-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186965
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186965
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186965
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186965
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186965
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186965
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  2d7b6170cc69f8a1a60c52d87ba61f6b1f180132
baseline version:
 xen                  9d7f7e3444bcd85b73a8a152b26b22821275a156

Last test of basis   186965  2024-07-23 12:41:53 Z    1 days
Testing same since   186982  2024-07-24 10:07:08 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jason Andryuk <jason.andryuk@amd.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   9d7f7e3444..2d7b6170cc  2d7b6170cc69f8a1a60c52d87ba61f6b1f180132 -> stable-4.19


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 04:24:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 04:24:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764613.1175100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWq13-0007wH-09; Thu, 25 Jul 2024 04:23:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764613.1175100; Thu, 25 Jul 2024 04:23: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 1sWq12-0007wA-Ts; Thu, 25 Jul 2024 04:23:44 +0000
Received: by outflank-mailman (input) for mailman id 764613;
 Thu, 25 Jul 2024 04:23:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWq11-0007vz-Gv; Thu, 25 Jul 2024 04:23:43 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWq11-0004UR-DX; Thu, 25 Jul 2024 04:23:43 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWq10-0006Qy-VT; Thu, 25 Jul 2024 04:23:43 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWq10-0006qQ-V1; Thu, 25 Jul 2024 04:23: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=DcSUTSMAxNqf/42VDGEQgzI2JucSFPGiXoK/AdzrS58=; b=gFBIPnD0nn12RtOij4vEjmEpCw
	+rBjOsvH2anfd7ik1s+dG2j4Re/4lJFDxe9aRkZcfIiirPHoKudsTNBKiNtB3/qSv+23Gxu8iyxi9
	xKjHCdnykNwWDKFGyLJuHh7/ybIDz8MdwvLeQLIIBAXNIdQWf1uw2QvSYTmM50LpD9Z4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186993-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 186993: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
X-Osstest-Versions-That:
    xen=5795a0bf5493d411155093180ed16e4ba63d37bf
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 04:23:42 +0000

flight 186993 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186993/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847
baseline version:
 xen                  5795a0bf5493d411155093180ed16e4ba63d37bf

Last test of basis   186984  2024-07-24 14:03:56 Z    0 days
Testing same since   186987  2024-07-24 19:00:25 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   5795a0bf54..b25b28ede1  b25b28ede1cba43eda1e0b84ad967683b8196847 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 04:40:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 04:40:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764622.1175110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWqHK-00026c-9G; Thu, 25 Jul 2024 04:40:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764622.1175110; Thu, 25 Jul 2024 04:40:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWqHK-00026V-6G; Thu, 25 Jul 2024 04:40:34 +0000
Received: by outflank-mailman (input) for mailman id 764622;
 Thu, 25 Jul 2024 04:40:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWqHI-00026L-Sg; Thu, 25 Jul 2024 04:40:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWqHH-0004m1-OM; Thu, 25 Jul 2024 04:40:31 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWqHH-0006qt-9D; Thu, 25 Jul 2024 04:40:31 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWqHH-00036I-8r; Thu, 25 Jul 2024 04:40: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=g+Rsc2p5zh3D3/VpJ+IKmuJKlgpWYjU2QFJvFs4ZreE=; b=Oe3Zk61S3sFz/wMAdbLrKkEoqs
	wOvElfepWtGzPG+BXMAvsh6x0wXcTeClcRL1z8KHHF0SrA3ZZHHjZDxBmVKrG20AG1gP2HRnc3rdx
	dOzdu/Qhf4SlqaFdqd0HgSLwr3ZMKM82o3x/QbbgSwETxlPrqTOVHCfTy9ZfZpwGb/Q4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186997-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 186997: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=6271b617b4e653029246152871cde93f3926e144
X-Osstest-Versions-That:
    ovmf=a96d2a8f2dd3eb7e32b383821fe30cfd7cdb2248
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 04:40:31 +0000

flight 186997 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186997/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 6271b617b4e653029246152871cde93f3926e144
baseline version:
 ovmf                 a96d2a8f2dd3eb7e32b383821fe30cfd7cdb2248

Last test of basis   186991  2024-07-24 22:11:40 Z    0 days
Testing same since   186997  2024-07-25 02:41:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   a96d2a8f2d..6271b617b4  6271b617b4e653029246152871cde93f3926e144 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 06:18:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 06:18:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764639.1175121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWro9-0004Wg-5A; Thu, 25 Jul 2024 06:18:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764639.1175121; Thu, 25 Jul 2024 06: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 1sWro9-0004WZ-2W; Thu, 25 Jul 2024 06:18:33 +0000
Received: by outflank-mailman (input) for mailman id 764639;
 Thu, 25 Jul 2024 06: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=/1nn=OZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWro7-0004WT-ET
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 06:18:31 +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 b5ec2324-4a4d-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 08:18:29 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a7a8a4f21aeso20918666b.2
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 23:18: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-a7acab260besm36193766b.4.2024.07.24.23.18.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 23:18: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: b5ec2324-4a4d-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721888309; x=1722493109; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=i5l58HtoMGBpgKq+ZNQOo3FEK/p0y6FWPUmFXwp3Mwo=;
        b=dm7uErXM5lKUWAGwja1C1klt3TJA2tYDPbyI9Wx/Bodo/dF4dtWWECB0zLlJBA+Qen
         dRy2dibQmtAAMTqcrnw+M4qGxy4j+wAuM/4X0EDah3A1VZf6nWKXgq4xgPkgucc8gsLf
         cdDZxF/DoHgElTxD83Ch9/3mGTG2v5x6RJBZW/s3D/++nkc/I2+fIjJ6qHBC6qX8ivta
         xsApQvju5DElmlezL3Msfj1eCeN+AwsE0AeOlWLfY+Mf+Jxeg3rvUz9ySdCT4FSwZ9TQ
         Qj9HxCF4sghbL38MgQUL28F4s2PErq5MTO+2IfNCOG3aYOQVWX4DJjEBVnXHE4Nwvip0
         RISQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721888309; x=1722493109;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i5l58HtoMGBpgKq+ZNQOo3FEK/p0y6FWPUmFXwp3Mwo=;
        b=WWYcmP1t8xVKd58jLMAr3m5EAZYUG2NuTQEMikUpXadmI8b3a2NmgcN41yRVIsH4y1
         9eR2qmK7bFN15XzYCTiRAm0h2nJ39cV03P6GuWsSlV7w9tzPXQb2WRYBEfuguEyusClt
         jokMV+xrxiZV/9ilUUUUv2I7A9bqKmddwqZJw8lcCUJke3uDexbjMJeUZ6Iizh5p9PDW
         ONmlY2lxYittiI7zxX3qUBoMT5xWsyIRiJpfJMwSvdSKmVSmZFETCc4Asl0OocUBGAYZ
         OJqNq3zfT3ppLg+Tto/HjOmMvVVAphbXxkOjixQkC/uoM9RPtqmjf6qFmWPr44XPFWl1
         c00A==
X-Forwarded-Encrypted: i=1; AJvYcCVhyzOQKpBMLtpYE/yHzL6ANqJOPW1IyZ3HhipuUc8sS8mV4uk50WrERZYOeK//srOnmpFy1c22sHvxJ93Ff5idgfr2yowUR+SfjRdkr08=
X-Gm-Message-State: AOJu0YypzCEANbUa3t8BH0A3c+SRa525jWcz4u7l//3+N4m2zZgPaGFh
	u1BqE14UD/IUFQSV7NUbFjCDU3eQlu1U/ZXdkC5HZU0t6mTjTjGRtZIcowIXmQ==
X-Google-Smtp-Source: AGHT+IHTvCOt0u5SLnP6cbudeMIIl3wG86DXKBZQ3uObc8Ps5RFQxFMfM21Qvn5EKV16SJoqFhlZjw==
X-Received: by 2002:a17:907:3ea2:b0:a7a:bece:6223 with SMTP id a640c23a62f3a-a7acb3d6a08mr62276866b.6.1721888309212;
        Wed, 24 Jul 2024 23:18:29 -0700 (PDT)
Message-ID: <d1abd5ef-745c-49bb-b392-3ca5159e4cb4@suse.com>
Date: Thu, 25 Jul 2024 08:18:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] hvmloader: Rework hypercall infrastructure
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: <20240717111231.3517605-1-andrew.cooper3@citrix.com>
 <ec6f3d2b-d5be-4ff5-9bf1-79eb5a3a85e1@suse.com>
 <4f24cc9a-3eb8-4c6f-bcb4-a9e04a50cd9e@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: <4f24cc9a-3eb8-4c6f-bcb4-a9e04a50cd9e@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.07.2024 19:24, Andrew Cooper wrote:
> On 17/07/2024 1:37 pm, Jan Beulich wrote:
>> On 17.07.2024 13:12, Andrew Cooper wrote:
>>>  static inline int
>>>  hypercall_sched_op(
>>>      int cmd, void *arg)
>>>  {
>>> -    return _hypercall2(int, sched_op, cmd, arg);
>>> +    return _hypercall2(int, __HYPERVISOR_sched_op, cmd, arg);
>>>  }
>> I know you don't really like token concatenation in cases like these ones,
>> but these adjustments all don't look as if they were necessary right here.
>> The new macros use the macro parameter only in ways where token pasting
>> would continue to work, afaics. And in the new assembly file you use very
>> similar token pasting anyway.
> 
> That's because my judgement is not about simply tokenisation (or not). 
> It's about not using ## when it is likely to interfere with
> grep/cscope/tags/etc.
> 
> The assembly file both isn't really interesting to find this way, and
> needs ## in order to work the way it does (differing prefixes in the
> hypercall names).

The "not interesting" part is very subjective. If one really wanted to find
everything, this still would get in the way. And there being differing
prefixes in the other case would then simply require passing two arguments
to the macro instead of just one (which imo is undesirable, but that is
along with considering the change above undesirable as well).

I'm not bothered enough to request to undo this altogether, or to split
this into a separate change, but I wonder whether in the opposite case you
wouldn't demand either or even both.

>>> +        .align 4096
>> PAGE_SIZE? And then again ...
>>
>>> +        .globl hypercall_page
>>> +hypercall_page:
>>> +         /* Poisoned with `ret` for safety before hypercalls are set up. */
>>> +        .fill 4096, 1, 0xc3
>>> +        .type hypercall_page, STT_OBJECT
>>> +        .size hypercall_page, 4096
>> ... here?
> 
> HVMLoader doesn't have a suitable constant, and doesn't have _AC().
> 
> Although we probably can just get away with (1 << PAGE_SHIFT) and drop
> the ul.

Oh, right, we still mean to be compatible with gas not ignoring the ul
suffix on numbers.

>> As to the "poisoning" - how does RET provide any safety? If a call happened
>> early, the uncertainty of what %eax is set to would make it unpredictable
>> how such a caller would further behave. Imo better to crash / hang in such
>> a case, perhaps by using INT3 instead.
>>
>> I notice that matches earlier behavior, but there the comment at least
>> validly said "rendering them no-ops" (yet still without considering
>> possible problems resulting from doing so).
> 
> That's a complicated one.  I can't remember why I chose that exact
> phraseology, but it's not really about accidentally-too-early case, it's
> about error handling.
> 
> HVMLoader doesn't have an IDT, so any exception is fatal.  But that's
> also something that ideally wants fixing (if it weren't for the fact
> that it's more likely that I'll complete plans to remove hvmloader
> completely before having time to do an IDT).
> 
> But for code which does have a panic() function, there's console_io
> (logging) and sched_op (SHUTDOWN_crash) which you want to use just in
> case they do work, before moving onto other methods of terminating.

All fine, but that still leaves this RET filling yielding random behavior
at possible early call sites. At the very least the pre-fill should result
in errors to be observed by too-early callers. For this to at least vaguely
resemble something valid to call "poisoned", that is.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 06:25:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 06:25:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764647.1175134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWruk-00062W-SL; Thu, 25 Jul 2024 06:25:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764647.1175134; Thu, 25 Jul 2024 06: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 1sWruk-00062P-Pe; Thu, 25 Jul 2024 06:25:22 +0000
Received: by outflank-mailman (input) for mailman id 764647;
 Thu, 25 Jul 2024 06: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=/jnY=OZ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWruj-00060X-IB
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 06:25:21 +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 aa686db8-4a4e-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 08:25:20 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a7aa4ca9d72so23357666b.0
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 23:25:20 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad41983sm35993866b.108.2024.07.24.23.25.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 23:25: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: aa686db8-4a4e-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721888719; x=1722493519; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :to:cc:subject:date:message-id:reply-to;
        bh=DQTDIw25o9tj4BCQ2SvHzxN+J5CCzsukrTbMLcryhQU=;
        b=PNGCtsktbCLUnPV7BYe26m0fuk/4Z5ybxMYGd7rCm4VPIRr+FLERi0lKUnCqDkB8lE
         lvodwOY67c7Zqrn+Oq6RE00iUjMOWaVrERDEvsD1a+9cdps6xghs3s+HQ4DVsFHldfrP
         u8rPUZiEJO72vBMlk+JV2yXqzQxk0hppgkq8Cxs+SNzQ2f+IknDPzqz/CLcqMflhZ2Am
         ZJPJqFV9MKEBHB0f6T82KsBlv+PFTJMBvkeicsa6dw5r8rqYRc+q46JgBRaz7QoiSWxl
         KBUbtuocRSm7PawEOv8/xm3pu8Kut/FLh8Y4RMVK1Enius6095lZzBO6S1bzreeEEJPu
         FT/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721888719; x=1722493519;
        h=content-transfer-encoding:in-reply-to: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=DQTDIw25o9tj4BCQ2SvHzxN+J5CCzsukrTbMLcryhQU=;
        b=TEwSuTPDZhJsaaDQPIg1C9d8aotOUmhNT548UnM0RAzILQyNuRja5QsAvTOO7C+Mx6
         VoxlbHKXiiUe8qMUeUH0Sq5roplEaJmmeCODqfow++6IHuf510Nb3FPnamgulZih+Avz
         hO3/XSy0SwHdReWRolW8W/j7Qz2DNJ3UfrCezZGjA4d2jZ5WiHDLtmk46mCBxvTYwMN5
         TXklU9zmqyNXNlHc+RlxWVhiz2punHQJe7AQEnXGbQmLyPzdQXFnKVJWrk+gis3x1PYQ
         KfJIxFsOJxOr60GFEpjV+nDT+paVFsQbV/HbZgvUWeINFfcjTf7IMd6DA/jQivbJqtpK
         ak5Q==
X-Forwarded-Encrypted: i=1; AJvYcCUC2qaAJWtE+IrS+QUgO48j2tOiRooBUinK3dYWGsWQR6lmPxQrtYkoh2c12F6It9TQQ5/QssBJHckfF8zUkWoqSvwT2HQ2/kFQH6lnBJs=
X-Gm-Message-State: AOJu0YxsJe6r19gysPOYoIJe1rfMymtpEuff+o+q2xBA8x7RT+1VAfaK
	sbo3vkpAjB0yGJhrW56X+dWr1U47RjUtDXCcvzDJRZb3EquolRgWXX5iR7FYz2g=
X-Google-Smtp-Source: AGHT+IH9XJZZ/soxZciMQtO7yiJTM5uei0LGraN598e42YLk/RTTRYj/7cJIBsI3WCnySWiu/cd7BQ==
X-Received: by 2002:a17:907:a08:b0:a7a:ab8a:384 with SMTP id a640c23a62f3a-a7acb931dedmr46908866b.64.1721888719376;
        Wed, 24 Jul 2024 23:25:19 -0700 (PDT)
Message-ID: <7b76ceae-181d-4371-8feb-195fd4cc6d90@suse.com>
Date: Thu, 25 Jul 2024 08:25:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] mini-os: remove sanity_check()
To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
 minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org, wl@xen.org
References: <20240722150141.31391-1-jgross@suse.com>
 <20240722150141.31391-5-jgross@suse.com>
 <20240722213544.hjyohnoz4mtcfltr@begin>
 <884d746c-47e4-4d0f-87a9-e2a03d2a3286@suse.com>
 <20240724224431.jelemlo6tt2jgaw2@begin>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240724224431.jelemlo6tt2jgaw2@begin>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 25.07.24 00:44, Samuel Thibault wrote:
> Hello,
> 
> Jürgen Groß, le mar. 23 juil. 2024 08:36:13 +0200, a ecrit:
>> On 22.07.24 23:35, Samuel Thibault wrote:
>>> Juergen Gross, le lun. 22 juil. 2024 17:01:41 +0200, a ecrit:
>>>> Remove the sanity_check() function, as it is used nowhere.
>>>>
>>>> Since any application linked with Mini-OS can't call sanity_check()
>>>> either (there is no EXPORT_SYMBOL for it), there is zero chance of
>>>> breaking any use case.
>>>
>>> Don't we still want to keep it around, at least as formal documentation
>>> of the expected status of the list?
>>
>> Hmm, is it really worth the extra code?
> 
> I have already seen such kind of piece of code getting very convenient
> when tracking odd bugs.

What about putting it under CONFIG_TEST then?

This would keep it in the source and it would even be compile tested by
a simple "make testbuild", which is a simple test I'm always doing
before submitting a patch.


Juergen



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 06:29:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 06:29:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764657.1175144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWryO-0006oQ-Ab; Thu, 25 Jul 2024 06:29:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764657.1175144; Thu, 25 Jul 2024 06: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 1sWryO-0006oJ-8A; Thu, 25 Jul 2024 06:29:08 +0000
Received: by outflank-mailman (input) for mailman id 764657;
 Thu, 25 Jul 2024 06: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=Od1u=OZ=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sWryN-0006oA-Kt
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 06:29:07 +0000
Received: from sonata.ens-lyon.org (domu-toccata.ens-lyon.fr [140.77.166.138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2f84e0e2-4a4f-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 08:29:04 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 02667A0304;
 Thu, 25 Jul 2024 08:29:03 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id OtxuR0i-bsvf; Thu, 25 Jul 2024 08:29:02 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id B859CA02C4;
 Thu, 25 Jul 2024 08:29:02 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98-RC3)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sWryI-000000003Vp-1Ko8; Thu, 25 Jul 2024 08:29:02 +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: 2f84e0e2-4a4f-11ef-8776-851b0ebba9a2
Date: Thu, 25 Jul 2024 08:29:02 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 4/4] mini-os: remove sanity_check()
Message-ID: <20240725062902.croun5gpmgfplfyt@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
References: <20240722150141.31391-1-jgross@suse.com>
 <20240722150141.31391-5-jgross@suse.com>
 <20240722213544.hjyohnoz4mtcfltr@begin>
 <884d746c-47e4-4d0f-87a9-e2a03d2a3286@suse.com>
 <20240724224431.jelemlo6tt2jgaw2@begin>
 <7b76ceae-181d-4371-8feb-195fd4cc6d90@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7b76ceae-181d-4371-8feb-195fd4cc6d90@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Jürgen Groß, le jeu. 25 juil. 2024 08:25:18 +0200, a ecrit:
> On 25.07.24 00:44, Samuel Thibault wrote:
> > Hello,
> > 
> > Jürgen Groß, le mar. 23 juil. 2024 08:36:13 +0200, a ecrit:
> > > On 22.07.24 23:35, Samuel Thibault wrote:
> > > > Juergen Gross, le lun. 22 juil. 2024 17:01:41 +0200, a ecrit:
> > > > > Remove the sanity_check() function, as it is used nowhere.
> > > > > 
> > > > > Since any application linked with Mini-OS can't call sanity_check()
> > > > > either (there is no EXPORT_SYMBOL for it), there is zero chance of
> > > > > breaking any use case.
> > > > 
> > > > Don't we still want to keep it around, at least as formal documentation
> > > > of the expected status of the list?
> > > 
> > > Hmm, is it really worth the extra code?
> > 
> > I have already seen such kind of piece of code getting very convenient
> > when tracking odd bugs.
> 
> What about putting it under CONFIG_TEST then?

Ok !

Samuel


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 06:30:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 06:30:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764669.1175158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWrzy-0008HY-MB; Thu, 25 Jul 2024 06:30:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764669.1175158; Thu, 25 Jul 2024 06:30: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 1sWrzy-0008HR-Jf; Thu, 25 Jul 2024 06:30:46 +0000
Received: by outflank-mailman (input) for mailman id 764669;
 Thu, 25 Jul 2024 06:30: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=/1nn=OZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWrzx-0008HJ-PY
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 06:30:45 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c1c410c-4a4f-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 08:30:44 +0200 (CEST)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-52efd08e6d9so584126e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 23: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
 4fb4d7f45d1cf-5ac64eb3a95sm454424a12.61.2024.07.24.23.30.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 23:30: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: 6c1c410c-4a4f-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721889044; x=1722493844; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JWV0Z/FRCc78nFOv71bdzI9o5hMZkoIum/9R1LZsDKU=;
        b=QnIJthufySiS46Xds5J/sRw1M0OPHyzteRnB5YqD5OHcMJE7LStpSEpenuQAO2ywI+
         XBL9UdUskrtkWFKlyHNg4ZoSHg8/SekUNRa5Jf8P1z547q/VEC0zajLbWJq6iBjAX7Mx
         9RuMl7eZu+7jBMaF0qV3i2+nhxQEbrHfcOJoJiLirHueY9brYqNIL0n1l2/yOVh1aaCp
         oHmU+UvcNQpBHGWMvJrNiqAgaUJFukKg+c4gL6hPegAQmk73YA89nS56KQ+5B061jjBx
         N3gRUtJLi9w6WhX+k9Wqg1wUAp6igI4/H454IQx3O6X137PoCf5FDe+aFP6JeS3ybdeX
         Rnjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721889044; x=1722493844;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JWV0Z/FRCc78nFOv71bdzI9o5hMZkoIum/9R1LZsDKU=;
        b=WGWAQebTz+0GBuA+sxgbRFt3zF98WFMpFbyaXsVHtrW+6G/ZgN0JQc9u4w0Jfi4Nz1
         Iwlevt6DfnhkD2GUHx1gQDscJt2ul2RA7oE6tro/tEGOoIsmLzf9X65xoMt1etUsYbQa
         7LYcC/uJRxV8gXZXirl9CclBH+eq1/NxNYYCGov2hB/6WcylmH25k2vpqNL+x3cvTjWD
         P5V8W5ktatYX7imKB2AuJZSqZvwB8VAGkfS+yyvvWq8BL3Pej93WC4UGqcnAGAmafmI6
         HrO0YzH/NHFajDSf0hKLvbu/2KCIMhAZ5PKEo231Fvnl++24H+uk9Z1lIi5v1Eofdk9+
         HIOQ==
X-Forwarded-Encrypted: i=1; AJvYcCXrdYkkaPAG0Psc1uxeIbWRufo2KqMg+f/JdFYiqsiMq2B6+b5Sv6N8El3YwoNo4Q9/b9ycmToqqBbUu5seMbIwds5GT6Bupe7oAuMLXvs=
X-Gm-Message-State: AOJu0Yy1PD1aXz1uIOROnN2/ij9oQ6vvJhVbexEBT7XaXpf7IFB6Gijs
	ssJUYxl+AbHwPuNpdlCRN8l2/A4SsFtGSAEkfEo2m9eXzD3YMHnlxPZnFy5M4A==
X-Google-Smtp-Source: AGHT+IHJ/6SeBg4MMs7CQbkqDZk3rXHvIDcCj8dWe1upanLHiO72zoL2fGz73+dMbFMdZ4BXFtso9w==
X-Received: by 2002:a05:6512:a96:b0:52e:9619:e26a with SMTP id 2adb3069b0e04-52fd3f1c319mr1411309e87.26.1721889044307;
        Wed, 24 Jul 2024 23:30:44 -0700 (PDT)
Message-ID: <5a56ae90-f211-4650-b026-09650e93adf6@suse.com>
Date: Thu, 25 Jul 2024 08:30:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] automation: add linker symbol name script
To: "Lira, Victor M" <VictorM.Lira@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com,
 consulting@bugseng.com, simone.ballarin@bugseng.com,
 xen-devel@lists.xenproject.org
References: <06e4ad1126b8e9231bf6dcf88205857081968274.1721779872.git.victorm.lira@amd.com>
 <4468a02f-4d8c-4b94-8af6-cd1751cd0a89@suse.com>
 <8fa38784-ba85-4675-9fad-39dd97652bb6@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: <8fa38784-ba85-4675-9fad-39dd97652bb6@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 19:48, Lira, Victor M wrote:
> On 7/24/2024 12:44 AM, Jan Beulich wrote:
>> Nit: In names of new files we prefer - over _.
>> +script_name=`basename "$0"`
> I have fixed the above comments in v2.
> 
>>> +#!/bin/bash
>> Can we rely on bash to be there and at that location? As you using any
>> bash-isms in the script which cannot be avoided?
> 
> Are the automation scripts required to be portable? Can you please point 
> me to a resource where I can learn how to make the script portable?

In addition to what Jason pointed you at, the more abstract answer is to
look at the shell specification. E.g.

https://pubs.opengroup.org/onlinepubs/007904975/utilities/contents.html
(issue 6, i.e. a little dated by now)

https://pubs.opengroup.org/onlinepubs/9699919799/
(issue 7, also already about 6 years old)

https://pubs.opengroup.org/onlinepubs/9799919799/
(issue 8, very resent)

The older variants may be relevant when backward compatibility matters.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 06:39:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 06:39:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764676.1175170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWs84-0000gu-HA; Thu, 25 Jul 2024 06:39:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764676.1175170; Thu, 25 Jul 2024 06: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 1sWs84-0000gn-Ca; Thu, 25 Jul 2024 06:39:08 +0000
Received: by outflank-mailman (input) for mailman id 764676;
 Thu, 25 Jul 2024 06:39: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=/1nn=OZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWs83-0000ge-2t
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 06:39:07 +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 9670dbfa-4a50-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 08:39:05 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a7a94478a4eso36052066b.1
 for <xen-devel@lists.xenproject.org>; Wed, 24 Jul 2024 23:39: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
 a640c23a62f3a-a7acac60369sm37746466b.90.2024.07.24.23.39.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 24 Jul 2024 23:39: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: 9670dbfa-4a50-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721889545; x=1722494345; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=427Rs21Ah7mgrEF0QTzXMrltScXbNCl/tT6CWILqlpc=;
        b=I76jYFunxM1Zhq+Q5EnLRAvNc+pzED/WfzxFST3DlAcrhTeRKaPyO9buGjiiMFoakF
         oHsU2AoXO0mrz4eK5U0nQjoy8UyMQ+UU7u+WY3/ZqnW8fYeC6cEtHZitjLWVmHO/KZgG
         1NY2vJ1/M4+Ih6N9fwIJzrDAl6eQTvDablPmO4dPfuNEAlW6GPYwmSpyDyoFP6qiCbp/
         eEA1scQP+c2WvxEPkXhpzR779KZKqQHDJ7df5VNWXRinVAHYRTEa6Xc6TgKc1xVX4mcy
         +ZjxXHITT1KnnzDSx8rPRrnkYxDj52Mr/eWvvGMTE8qCD6CXBjMSCrRuMDDsmYMBBvyN
         OX/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721889545; x=1722494345;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=427Rs21Ah7mgrEF0QTzXMrltScXbNCl/tT6CWILqlpc=;
        b=Y2vFJdpUJUhwYoT6MxGSPbKUslOFxWusfDoyTfsKgyXaxONoHn/y3H5Ahru+o0utQc
         o7WNUde7y3P/n0yocwcc6T0Cc0hyURaPCIM/S0ODw3twi/F+DwLG1gTNL/AuwmOAlMfw
         lVlboZoHraqy5q07NgDjEeEuX2IXlfszl2ZmYhIpRDLNr+5ZSrMoJC51eXGKHm5poWTx
         tFZE2kqGfuxoVmZ8TQAmjp/FcA3keksalY1FaONL27uMg0ZhRcZetS8Dr22zKT3/nYIF
         2hCqHRdfZn8+mahRKtkG7kBbYdtcyoMD6TI1F6gOaUz9GMsWfg58Jmc/GNjhut/8DlzO
         x8gg==
X-Forwarded-Encrypted: i=1; AJvYcCWSPrmrA3duxDmzb46VSsFjly5BqV2svy5/TCqwrbnMvBxra7ierFvcAYfMCZRrIERw0RhyqjnzUapoDWTGKYDPS6BXILU4utIuC+exx5Y=
X-Gm-Message-State: AOJu0YzJl+3xjbd2/0YLXXNUwyAA6Q7VRBq4P4VdN/jm2WAGp/+DyzUf
	dEHwAW99qZjvpu8rLILz3wkDU++JxTKTWd4k7LIBsmjh5GfD8WWhvKk+29Kkxw==
X-Google-Smtp-Source: AGHT+IGN7900JHAICfY88OgVm3rbAcYtjCyXEqOnk4rVtODjtNZeBLSpkG3JX3gE2+/z0QJHDL/GdQ==
X-Received: by 2002:a17:907:9718:b0:a6f:5609:954f with SMTP id a640c23a62f3a-a7ac44e1aaamr211791666b.12.1721889544851;
        Wed, 24 Jul 2024 23:39:04 -0700 (PDT)
Message-ID: <115612cd-92c8-4494-a4c4-c996543d43b5@suse.com>
Date: Thu, 25 Jul 2024 08:39:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2] automation: add linker symbol name script
To: victorm.lira@amd.com
Cc: Stefano Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com,
 consulting@bugseng.com, simone.ballarin@bugseng.com,
 xen-devel@lists.xenproject.org
References: <5b2862d6d036248e8cdd76e9884f173c6b7ff325.1721842334.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: <5b2862d6d036248e8cdd76e9884f173c6b7ff325.1721842334.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 19:52, victorm.lira@amd.com wrote:
> From: Victor Lira <victorm.lira@amd.com>
> 
> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> Requested-by: Stefano Stabellini <sstabellini@kernel.org>

Note: Tags in chronological order, please. Stefano isn't likely to have requested
that after you signed off on the change. As an aside, aiui Stefano requested this
in response to me having requested it on the call earlier this week.

> --- /dev/null
> +++ b/automation/eclair_analysis/linker-symbols.sh
> @@ -0,0 +1,34 @@
> +# Stop immediately if any executed command has exit status different from 0.
> +set -e
> +
> +# Extract linker symbol names (except those starting with ".") from assignments.
> +
> +script_name=$(basename "$0")
> +script_dir="$(
> +  cd "$(dirname "$0")"
> +  echo "${PWD}"
> +)"
> +src_dir="${script_dir}/../.."
> +
> +usage() {
> +  echo "Usage: ${script_name} <arm|x86>"
> +}
> +
> +if [ $# -ne 1 ]; then
> +  usage
> +  exit 1
> +fi
> +
> +if [ "$1" != "arm" ] && [ "$1" != "x86" ]; then
> +    usage
> +    exit 1
> +fi

This isn't really needed when you ...

> +filepath="${src_dir}/xen/arch/${1}/xen.lds"
> +
> +if [ ! -f "$filepath" ]; then
> +    echo "Must be run after build."
> +    exit 2
> +fi

... check existence first here. Perhaps worth mentioning $1 in the error
message, as having done just some build may not be sufficient.

Plus, for all error messages: The better want re-directing via >&2.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 06:40:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 06:40:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764685.1175181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWs9q-0002BS-W1; Thu, 25 Jul 2024 06:40:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764685.1175181; Thu, 25 Jul 2024 06:40: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 1sWs9q-0002BG-SM; Thu, 25 Jul 2024 06:40:58 +0000
Received: by outflank-mailman (input) for mailman id 764685;
 Thu, 25 Jul 2024 06:40: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=/jnY=OZ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWs9p-0002Ak-B3
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 06:40:57 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d6c7f67f-4a50-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 08:40:53 +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 EC55321A9C;
 Thu, 25 Jul 2024 06: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 BDC1513874;
 Thu, 25 Jul 2024 06: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 WZHCLHTzoWZECgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 25 Jul 2024 06: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: d6c7f67f-4a50-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721889653; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=S4kS8VMWkCS8vOn9IpAnhLR4KboBpI7iPk1Vz8YTmrI=;
	b=i+wlaYUcBG/c7s97dbHRN5A2Dk1lfQ1CSyv4oTaoX42sm+YtymEdxk70b5xsK8QlLTv3bb
	B6xqHb5mhkyJxVNWeBDanQp2Gu+IWndEkHVa2tkSKZFEOrQerA74SAiaJaNcnbDdAgqn85
	XP0D65E6jQblQ64nWizKMOocK2eUOHE=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721889652; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=S4kS8VMWkCS8vOn9IpAnhLR4KboBpI7iPk1Vz8YTmrI=;
	b=A1fSnjEQSSpSMl9QcUl/djssZquY0wNe+d8RZDudJqSnYByxDZWO7/VfxbWqeTG1nQl59E
	YCC9qzTTg8XE/ubvloYiH5Dgm9jGDOWtoOGNT4TZ/ldsbASPXlG/tg4S8QclqtfnOm8iSH
	/QqkcyNX1DeAW9Nar8MVSaKhtCsUsm4=
Message-ID: <39396c60-691f-422c-a065-7d148a81977d@suse.com>
Date: Thu, 25 Jul 2024 08:40:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] mini-os: remove sanity_check()
To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
 minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org, wl@xen.org
References: <20240722150141.31391-1-jgross@suse.com>
 <20240722150141.31391-5-jgross@suse.com>
 <20240722213544.hjyohnoz4mtcfltr@begin>
 <884d746c-47e4-4d0f-87a9-e2a03d2a3286@suse.com>
 <20240724224431.jelemlo6tt2jgaw2@begin>
 <7b76ceae-181d-4371-8feb-195fd4cc6d90@suse.com>
 <20240725062902.croun5gpmgfplfyt@begin>
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: <20240725062902.croun5gpmgfplfyt@begin>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------7cdd5Knu3JOrgWvNmis168ZQ"
X-Spamd-Result: default: False [-5.99 / 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];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	XM_UA_NO_VERSION(0.01)[];
	MID_RHS_MATCH_FROM(0.00)[];
	TO_DN_SOME(0.00)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	RCVD_TLS_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_THREE(0.00)[4];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo];
	HAS_ATTACHMENT(0.00)[]
X-Spam-Level: 
X-Spam-Flag: NO
X-Spam-Score: -5.99

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------7cdd5Knu3JOrgWvNmis168ZQ
Content-Type: multipart/mixed; boundary="------------96XCosfT8gZudRYgzDFfjsOZ";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
 minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org, wl@xen.org
Message-ID: <39396c60-691f-422c-a065-7d148a81977d@suse.com>
Subject: Re: [PATCH 4/4] mini-os: remove sanity_check()
References: <20240722150141.31391-1-jgross@suse.com>
 <20240722150141.31391-5-jgross@suse.com>
 <20240722213544.hjyohnoz4mtcfltr@begin>
 <884d746c-47e4-4d0f-87a9-e2a03d2a3286@suse.com>
 <20240724224431.jelemlo6tt2jgaw2@begin>
 <7b76ceae-181d-4371-8feb-195fd4cc6d90@suse.com>
 <20240725062902.croun5gpmgfplfyt@begin>
In-Reply-To: <20240725062902.croun5gpmgfplfyt@begin>

--------------96XCosfT8gZudRYgzDFfjsOZ
Content-Type: multipart/mixed; boundary="------------BKXl3rn22l0PYF1iVOm178o4"

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

T24gMjUuMDcuMjQgMDg6MjksIFNhbXVlbCBUaGliYXVsdCB3cm90ZToNCj4gSsO8cmdlbiBH
cm/DnywgbGUgamV1LiAyNSBqdWlsLiAyMDI0IDA4OjI1OjE4ICswMjAwLCBhIGVjcml0Og0K
Pj4gT24gMjUuMDcuMjQgMDA6NDQsIFNhbXVlbCBUaGliYXVsdCB3cm90ZToNCj4+PiBIZWxs
bywNCj4+Pg0KPj4+IErDvHJnZW4gR3Jvw58sIGxlIG1hci4gMjMganVpbC4gMjAyNCAwODoz
NjoxMyArMDIwMCwgYSBlY3JpdDoNCj4+Pj4gT24gMjIuMDcuMjQgMjM6MzUsIFNhbXVlbCBU
aGliYXVsdCB3cm90ZToNCj4+Pj4+IEp1ZXJnZW4gR3Jvc3MsIGxlIGx1bi4gMjIganVpbC4g
MjAyNCAxNzowMTo0MSArMDIwMCwgYSBlY3JpdDoNCj4+Pj4+PiBSZW1vdmUgdGhlIHNhbml0
eV9jaGVjaygpIGZ1bmN0aW9uLCBhcyBpdCBpcyB1c2VkIG5vd2hlcmUuDQo+Pj4+Pj4NCj4+
Pj4+PiBTaW5jZSBhbnkgYXBwbGljYXRpb24gbGlua2VkIHdpdGggTWluaS1PUyBjYW4ndCBj
YWxsIHNhbml0eV9jaGVjaygpDQo+Pj4+Pj4gZWl0aGVyICh0aGVyZSBpcyBubyBFWFBPUlRf
U1lNQk9MIGZvciBpdCksIHRoZXJlIGlzIHplcm8gY2hhbmNlIG9mDQo+Pj4+Pj4gYnJlYWtp
bmcgYW55IHVzZSBjYXNlLg0KPj4+Pj4NCj4+Pj4+IERvbid0IHdlIHN0aWxsIHdhbnQgdG8g
a2VlcCBpdCBhcm91bmQsIGF0IGxlYXN0IGFzIGZvcm1hbCBkb2N1bWVudGF0aW9uDQo+Pj4+
PiBvZiB0aGUgZXhwZWN0ZWQgc3RhdHVzIG9mIHRoZSBsaXN0Pw0KPj4+Pg0KPj4+PiBIbW0s
IGlzIGl0IHJlYWxseSB3b3J0aCB0aGUgZXh0cmEgY29kZT8NCj4+Pg0KPj4+IEkgaGF2ZSBh
bHJlYWR5IHNlZW4gc3VjaCBraW5kIG9mIHBpZWNlIG9mIGNvZGUgZ2V0dGluZyB2ZXJ5IGNv
bnZlbmllbnQNCj4+PiB3aGVuIHRyYWNraW5nIG9kZCBidWdzLg0KPj4NCj4+IFdoYXQgYWJv
dXQgcHV0dGluZyBpdCB1bmRlciBDT05GSUdfVEVTVCB0aGVuPw0KPiANCj4gT2vCoCENCg0K
SSB3ZW50IGEgbGl0dGxlIGJpdCBmdXJ0aGVyIGJ5IGNhbGxpbmcgc2FuaXR5X2NoZWNrKCkg
ZnJvbSBwZXJpb2RpY190aHJlYWQoKQ0KaW4gdGVzdC5jIG9uY2UgYSBzZWNvbmQuIFRoaXMg
d2lsbCBtYWtlIHJlYWwgdXNlIG9mIHRoZSBmdW5jdGlvbi4NCg0KDQpKdWVyZ2VuDQo=
--------------BKXl3rn22l0PYF1iVOm178o4
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-----

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
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------BKXl3rn22l0PYF1iVOm178o4--

--------------96XCosfT8gZudRYgzDFfjsOZ--

--------------7cdd5Knu3JOrgWvNmis168ZQ
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/Ey8FAmah83QFAwAAAAAACgkQsN6d1ii/Ey/v
5gf/Qx6wAjba0UmYYUPL5UgT5CqZmYLphB6cbdnGR4hU2VofE4OLzZnStQSuDyPnNuNqaKrc9/+C
2B5PuyaCwKWrT6HY0g5RNIvKPFPxt3lPoF1w3NTTBW4PqGJIQbJSf0Z1P6XrdVfs5aF9W0MXai61
GhylftN2dKuszQvCQz9/pJU8hRT2DXPpuJ60e9WjvKn3K9gcuLM8yAfQGENFPlu6eTs+JZlsAI2H
4HjYv7WrT01FQtrKSfU0BIV//l+G6FUM0LsA/PpGSXt26cbX27uDeKhasRxIRBegSH+o905ZrP5Y
1pnwy95JusQOoUVvA8ofeu7AHPjh8BblkTzXatx+Og==
=TWi8
-----END PGP SIGNATURE-----

--------------7cdd5Knu3JOrgWvNmis168ZQ--


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 06:43:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 06:43:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764695.1175197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWsBn-0002pY-Ed; Thu, 25 Jul 2024 06:42:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764695.1175197; Thu, 25 Jul 2024 06: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 1sWsBn-0002pK-9w; Thu, 25 Jul 2024 06:42:59 +0000
Received: by outflank-mailman (input) for mailman id 764695;
 Thu, 25 Jul 2024 06:42: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=/jnY=OZ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWsBm-0002on-Ix
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 06:42: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 205d3e64-4a51-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 08:42: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-out1.suse.de (Postfix) with ESMTPS id 6D11321A2C;
 Thu, 25 Jul 2024 06:42:56 +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 3C66B13874;
 Thu, 25 Jul 2024 06:42:56 +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 UkdKDfDzoWavCgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 25 Jul 2024 06:42:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 205d3e64-4a51-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721889776; 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=Lfts1DgUcPXDbLNnlF8FqwxDF6KaPncxEu7VvAfnPNk=;
	b=axTgCmqnhEwBKV838KWE0dwgd3Tw8sAZgvgGGsUz8mBX6Y9AoRIbhL0aotT5NcNl1uXHk8
	BTchlGV13qLf2Y2vkJxg0YW9NaasnDP6GQX4icfHwERVYlQYwsiYLTmAl3misTVtWWEfha
	xlecHG4yGSUVPlVxf+ITT1Y3y0Ny7Aw=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=axTgCmqn
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721889776; 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=Lfts1DgUcPXDbLNnlF8FqwxDF6KaPncxEu7VvAfnPNk=;
	b=axTgCmqnhEwBKV838KWE0dwgd3Tw8sAZgvgGGsUz8mBX6Y9AoRIbhL0aotT5NcNl1uXHk8
	BTchlGV13qLf2Y2vkJxg0YW9NaasnDP6GQX4icfHwERVYlQYwsiYLTmAl3misTVtWWEfha
	xlecHG4yGSUVPlVxf+ITT1Y3y0Ny7Aw=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v2] mini-os: put sanity_check() under CONFIG_TEST
Date: Thu, 25 Jul 2024 08:42:54 +0200
Message-ID: <20240725064254.7545-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [0.19 / 50.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];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo];
	FROM_HAS_DN(0.00)[];
	DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_FIVE(0.00)[5];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+]
X-Spamd-Bar: /
X-Rspamd-Queue-Id: 6D11321A2C
X-Spam-Level: 
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: 0.19

Hide the sanity_check() function, as it is used nowhere. By putting it
under #ifdef CONFIG_TEST it will stay around, but it won't be
included in normal production builds.

Call sanity_check() from the periodic thread of the test app, causing
a sanity check every second.

Since any application linked with Mini-OS can't call sanity_check()
(there is no EXPORT_SYMBOL for it), there is zero chance of breaking
any use case.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- don't remove it, but just hide it (Samuel Thibault)
---
 include/lib.h | 2 ++
 mm.c          | 2 ++
 test.c        | 1 +
 3 files changed, 5 insertions(+)

diff --git a/include/lib.h b/include/lib.h
index abd4e9ab..de67bab0 100644
--- a/include/lib.h
+++ b/include/lib.h
@@ -152,8 +152,10 @@ do {                                                           \
 
 #define BUG_ON(x) ASSERT(!(x))
 
+#ifdef CONFIG_TEST
 /* Consistency check as much as possible. */
 void sanity_check(void);
+#endif
 
 /* Get own domid. */
 domid_t get_domid(void);
diff --git a/mm.c b/mm.c
index 4aa0c6ca..a5d3f5e5 100644
--- a/mm.c
+++ b/mm.c
@@ -395,6 +395,7 @@ void fini_mm(void)
 {
 }
 
+#ifdef CONFIG_TEST
 void sanity_check(void)
 {
     int x;
@@ -410,3 +411,4 @@ void sanity_check(void)
         }
     }
 }
+#endif
diff --git a/test.c b/test.c
index 465c54e8..4dd6e260 100644
--- a/test.c
+++ b/test.c
@@ -185,6 +185,7 @@ static void periodic_thread(void *p)
     {
         gettimeofday(&tv, NULL);
         printk("T(s=%ld us=%ld)\n", tv.tv_sec, tv.tv_usec);
+        sanity_check();
         msleep(1000);
     }
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 06:59:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 06:59:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764711.1175211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWsRM-0005NV-PG; Thu, 25 Jul 2024 06:59:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764711.1175211; Thu, 25 Jul 2024 06:59:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWsRM-0005NN-MO; Thu, 25 Jul 2024 06:59:04 +0000
Received: by outflank-mailman (input) for mailman id 764711;
 Thu, 25 Jul 2024 06:59:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Od1u=OZ=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sWsRL-0005LV-5H
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 06:59:03 +0000
Received: from sonata.ens-lyon.org (domu-toccata.ens-lyon.fr [140.77.166.138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ed894ae-4a53-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 08:59:01 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 6F022A02C4;
 Thu, 25 Jul 2024 08:59:00 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 8b8yThK8-v56; Thu, 25 Jul 2024 08:59:00 +0200 (CEST)
Received: from begin (nat-inria-interne-52-gw-01-bso.bordeaux.inria.fr
 [194.199.1.52])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id 53DEBA02A2;
 Thu, 25 Jul 2024 08:59:00 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98-RC3)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sWsRI-000000004wm-0H3M; Thu, 25 Jul 2024 08:59:00 +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: 5ed894ae-4a53-11ef-bbff-fd08da9f4363
Date: Thu, 25 Jul 2024 08:59:00 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH v2] mini-os: put sanity_check() under CONFIG_TEST
Message-ID: <20240725065859.mp2ijjthuhw7ecgj@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240725064254.7545-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240725064254.7545-1-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le jeu. 25 juil. 2024 08:42:54 +0200, a ecrit:
> Hide the sanity_check() function, as it is used nowhere. By putting it
> under #ifdef CONFIG_TEST it will stay around, but it won't be
> included in normal production builds.
> 
> Call sanity_check() from the periodic thread of the test app, causing
> a sanity check every second.
> 
> Since any application linked with Mini-OS can't call sanity_check()
> (there is no EXPORT_SYMBOL for it), there is zero chance of breaking
> any use case.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Thanks!

> ---
> V2:
> - don't remove it, but just hide it (Samuel Thibault)
> ---
>  include/lib.h | 2 ++
>  mm.c          | 2 ++
>  test.c        | 1 +
>  3 files changed, 5 insertions(+)
> 
> diff --git a/include/lib.h b/include/lib.h
> index abd4e9ab..de67bab0 100644
> --- a/include/lib.h
> +++ b/include/lib.h
> @@ -152,8 +152,10 @@ do {                                                           \
>  
>  #define BUG_ON(x) ASSERT(!(x))
>  
> +#ifdef CONFIG_TEST
>  /* Consistency check as much as possible. */
>  void sanity_check(void);
> +#endif
>  
>  /* Get own domid. */
>  domid_t get_domid(void);
> diff --git a/mm.c b/mm.c
> index 4aa0c6ca..a5d3f5e5 100644
> --- a/mm.c
> +++ b/mm.c
> @@ -395,6 +395,7 @@ void fini_mm(void)
>  {
>  }
>  
> +#ifdef CONFIG_TEST
>  void sanity_check(void)
>  {
>      int x;
> @@ -410,3 +411,4 @@ void sanity_check(void)
>          }
>      }
>  }
> +#endif
> diff --git a/test.c b/test.c
> index 465c54e8..4dd6e260 100644
> --- a/test.c
> +++ b/test.c
> @@ -185,6 +185,7 @@ static void periodic_thread(void *p)
>      {
>          gettimeofday(&tv, NULL);
>          printk("T(s=%ld us=%ld)\n", tv.tv_sec, tv.tv_usec);
> +        sanity_check();
>          msleep(1000);
>      }
>  }
> -- 
> 2.43.0
> 

-- 
Samuel
`When you say "I wrote a program that crashed Windows", people just stare at
you blankly and say "Hey, I got those with the system, *for free*".'
(By Linus Torvalds)


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 07:01:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 07:01:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764722.1175220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWsTn-0006tS-44; Thu, 25 Jul 2024 07:01:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764722.1175220; Thu, 25 Jul 2024 07: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 1sWsTn-0006tL-1E; Thu, 25 Jul 2024 07:01:35 +0000
Received: by outflank-mailman (input) for mailman id 764722;
 Thu, 25 Jul 2024 07: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=Ik63=OZ=aepfle.de=olaf@srs-se1.protection.inumbo.net>)
 id 1sWsTl-0006tD-HN
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 07:01:33 +0000
Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de
 [85.215.255.20]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b8fcb8a1-4a53-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 09:01:32 +0200 (CEST)
Received: from sender by smtp.strato.de (RZmta 51.1.0 AUTH)
 with ESMTPSA id Da26f206P71V8dA
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate)
 for <xen-devel@lists.xenproject.org>;
 Thu, 25 Jul 2024 09:01: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: b8fcb8a1-4a53-11ef-bbff-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; t=1721890891; cv=none;
    d=strato.com; s=strato-dkim-0002;
    b=HrqWdAKrjJeJjTdQcAYaFJHidHgjxTsNdj6MRgM4eey7n/AYy4sBlkhxuKAMF4+Joz
    9Z5xyKSF5Cv4CCuVupkxVkC84DygDiLij1AGZJW2/i59SzcXjy1s9tax5MsbuOl25/2J
    XhwzkRc46OC5UdiI3h9AFlN8DHk9rpzXyFHUwSgWzbSrkgzViIznLBQATxJuWWdemoL+
    YejqpCFkUOAmW48Un/zreNdxp74UyCC7l5psfuDb/hNV7Kb0qLEss1gOjlzrYyAbbBK7
    zfuMyLYZIeDrcq0EAckayOCgXPTLOcAX/57u3hXrjywdhuBfVqleVxF+/NElp/tnPZX0
    1nEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1721890891;
    s=strato-dkim-0002; d=strato.com;
    h=Message-ID:Subject:To:From:Date:Cc:Date:From:Subject:Sender;
    bh=lcMkuGHGXoTQ7r035i/bbCgRrhgabq8SC9/hfmOJc2c=;
    b=BTIFxlDof58nbqZBI8tNbqJFg8R9ZhLM3Auu7CV3HCHyOWE5i63Bdqo4kb+/ROe1h4
    wenEYIztXkXKfEkay8zhVeJ4rc0/2W4Y/+hcBlrY3bKq/QDb3kKOuhL5FVVfLkCfhneu
    SmPvEcorDDN0BLPX8yAXolWIGD75dkrz4sn5BLOqBWAoMMrStKuj9d2AF4LVPH+fIfw6
    OEwLRIGgJ05g0KW7FsBvfV3hEYyIEq4+ZmlrC2kkOS+bfsGj0P0eRbh9e8N2ndvmugJF
    sx6PJ/H3rv9fqI3gu6xPiegg2b4EXf6UKDd08mXm+tAif69Yi5zb3SXztLOQw0Jy/UQ4
    Z/Vw==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1721890891;
    s=strato-dkim-0002; d=aepfle.de;
    h=Message-ID:Subject:To:From:Date:Cc:Date:From:Subject:Sender;
    bh=lcMkuGHGXoTQ7r035i/bbCgRrhgabq8SC9/hfmOJc2c=;
    b=VxkTbNGhX67uTvZAWqG1ftPzgdLjoa+C+CWKfVx8uKxwn6+NzflAdeX1/oY6ySRA+d
    2LSAegT5hpN7rvfEkOr1LYqwcRHLFJy4QJo3GkGldLTTVn6uJpMgLXtF16aX7NJpwkZb
    r3gm6LbthMn2h3FYf0dNHhxjzA2mr3VI9ZH9mcWX2q+8YjfnLUJ63ulDtHTzZXdchY0Q
    oJle1yE0HJ/4REnGCXuztcg2H0hXh5S0DVDJgb1hCWFhjSVNcyuVApDAmadddOV6RVG/
    v/Y0y7GmWWNXWc2EIoPzIKTcsdq1luTYhNaCYotn+VSdVoAjLpj2o77561txyhKyOoRn
    isUQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1721890891;
    s=strato-dkim-0003; d=aepfle.de;
    h=Message-ID:Subject:To:From:Date:Cc:Date:From:Subject:Sender;
    bh=lcMkuGHGXoTQ7r035i/bbCgRrhgabq8SC9/hfmOJc2c=;
    b=yIkV8AQV61O6cSGmX/chJEtWOGnXoag3ukFWjNIbTWgZfgB8F1jVszH9EtFS4+OYnR
    qKn9m5iI31VyQO9HJ/Dg==
X-RZG-AUTH: ":P2EQZWCpfu+qG7CngxMFH1J+3q8wa/QLpd5ylWvMDX3y/OuD5rXVisR5U0KIYkrsgXpphFp5TpggLXYhJp+e75du9haPEQ=="
Date: Thu, 25 Jul 2024 09:01:24 +0200
From: Olaf Hering <olaf@aepfle.de>
To: xen-devel@lists.xenproject.org
Subject: remove usage of hostname
Message-ID: <20240725090124.33d571b9.olaf@aepfle.de>
X-Mailer: Claws Mail (olh) 20240408T134401.7adfa8f7 hat ein Softwareproblem, kann man nichts machen.
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/mi7WFVmz=_7ead0OfsLsRso";
 protocol="application/pgp-signature"; micalg=pgp-sha256
Content-Transfer-Encoding: 7bit

--Sig_/mi7WFVmz=_7ead0OfsLsRso
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Some parts of the build, like "make -C xen defconfig" use the "hostname"
binary, which may not be installed by default. At least the openSUSE
containers lack it. The configure scripts already have code like
"hostname | uname -n" to handle this. I think 'uname -n' gives the same
result as 'hostname'.

Is there any benefit in using 'hostname'?


Olaf

--Sig_/mi7WFVmz=_7ead0OfsLsRso
Content-Type: application/pgp-signature
Content-Description: Digitale Signatur von OpenPGP

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

iQIzBAEBCAAdFiEE97o7Um30LT3B+5b/86SN7mm1DoAFAmah+EQACgkQ86SN7mm1
DoAUxg//aUjOd01ThPlLZqwhd32xW8dvl0E+f2D5FoqfBMwcKtxqZvNoHKXDTr+R
pPMTeeFvB22Xu6CYMD3smp4ijMiZiXeKsfI4kIbmJISulHcR5SrAVVgQKJyexXht
YbcxgiekwQqYKD22PriJFPpbLHLCFqXyOkWsvo+/mnqyeSqzs90dNEiMLSEP/eXG
Z6RhvDJdx5Vpem+MHlfqRDvNBs+c/xbgu1ukRAHCxdbTk0KT96le7NEbOyafwlAZ
o7uwrHD/M8D423QGKfK4l5DIHhr+k3y0MvvC8eo62jrJvy/I/VSMsAK7jgcHxf7y
rSi31pvSS2Is2i7j8VHfHlO0Bxv7cGSc5ZRzog49jvE1C5T0ZrP6qf1Da5aWOVlw
tGUoQ5VRI9f03O+6mO5I8w9P+H+liEJUPIbx63/tK8qj4+E4HHhmY0zE19IAN4rW
51vJ7eZK0PaI+uz7BtOx42qAtDx54tKD8qtzctWNXd4qI5nogay43fi/5qGK6dFz
VupvjlSshpqejd8mrkPszGq2SNyqSH0kCFA0zu0OXCFmdO1isvhfyi01gkNooAmH
XjI3up8pL/lcfXFgRCFmzpl6m/4s55obknZmAteZ/P5yBgzJQ5UVaB5zheDU7KNc
a++p8OPpyJ9rL7m4vnL4FXprVNKWhySa0bwEYZPlIELc39w81zg=
=nUFm
-----END PGP SIGNATURE-----

--Sig_/mi7WFVmz=_7ead0OfsLsRso--


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 07:32:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 07:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764734.1175241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWsxF-00036H-K1; Thu, 25 Jul 2024 07:32:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764734.1175241; Thu, 25 Jul 2024 07: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 1sWsxF-00036A-HH; Thu, 25 Jul 2024 07:32:01 +0000
Received: by outflank-mailman (input) for mailman id 764734;
 Thu, 25 Jul 2024 07:32: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=KwaG=OZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWsxE-0002ro-Rb
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 07:32:00 +0000
Received: from mail-oo1-xc29.google.com (mail-oo1-xc29.google.com
 [2607:f8b0:4864:20::c29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa67c81b-4a57-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 09:32:00 +0200 (CEST)
Received: by mail-oo1-xc29.google.com with SMTP id
 006d021491bc7-5c791729c36so381097eaf.3
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 00:32:00 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe8416381sm3660701cf.93.2024.07.25.00.31.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 00: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: fa67c81b-4a57-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721892718; x=1722497518; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NRJmNl7Bb9/OZ0AorI+0NK/6Qn825Rg5jazvccIBXIg=;
        b=nbrUBmetEX6aCsarMR3l1WDYnziWSDJMD8nRV+aR670489/8dq9tqgvTTU+8z2VdKN
         iR1az+vzCoTomuMXxmr32JUB55uvBiDysQnxzxNzWWcjFuO6x0cx0b/Tisw705kwwnIs
         nTsTyLchextEqBRZJG5t+8LRvvr6GWTTq7cJc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721892718; x=1722497518;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=NRJmNl7Bb9/OZ0AorI+0NK/6Qn825Rg5jazvccIBXIg=;
        b=WfKcU5/BBoSeMy/4S8ZtLFkEXNSOJB3vd8xtP8kjmRa93ffqchm6uAFau2wDE5QCTb
         ASjmSHlttMe5Yh1Uda/qv5V07KtMoQjyBknQiPZU81Ra2X18/iNZ/WlCmNW+76ov3rLW
         VC+3plkiCFdQytgjFuz/nzO0WUZi7AvXSBqM1HYabUsHPbI2hPpLcKJcFdvNbcgGMGs5
         kiHXdqh7tVyKoumYAkoexloXXFolE6mNS4Xufs+BHx5TstHae6efPA4rvvpSloYQM4kA
         yxg1MR8HyETowJW8wwhYcqls0u5e2A9QnQjPGpOmW5fCDjSMvzK11GHoFmE1g+dVsC7S
         PcAA==
X-Gm-Message-State: AOJu0YxkKHIYzmJxawJdFc/uVCORP8AwgZF7V86F8FTnMu3YAuz9ACeT
	/cJthgyM7DXoMK/e3ZLZK0go//eSxAlLWY3GNF5QkAzQ8KDW0dNepnRv3c02ws3rH/qPRZb9AfZ
	9
X-Google-Smtp-Source: AGHT+IFCNLG+ST0ZSsb5RJ0EWHwiIT/DnYl4e0Leyodh0YVdE/18MhaBFG2YoCxWCCHPvCxSvB4InQ==
X-Received: by 2002:a05:6358:2829:b0:1ac:ed54:224d with SMTP id e5c5f4694b2df-1acf8878d6fmr282666955d.11.1721892717619;
        Thu, 25 Jul 2024 00:31:57 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	Juergen Gross <jgross@suse.com>,
	Roger Pau Monne <roger.pau@citrix.com>
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>
Subject: [PATCH 1/2] x86/xen: move xen_reserve_extra_memory()
Date: Thu, 25 Jul 2024 09:31:14 +0200
Message-ID: <20240725073116.14626-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240725073116.14626-1-roger.pau@citrix.com>
References: <20240725073116.14626-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In preparation for making the function static.

No functional change.

Fixes: 38620fc4e893 ('x86/xen: attempt to inflate the memory balloon on PVH')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Since this is a pre-requisite for a bugfix, I've tagged it with "Fixes:", not
sure if that's appropriate or there's some better tag to use.
---
 arch/x86/xen/enlighten_pvh.c | 96 ++++++++++++++++++------------------
 1 file changed, 48 insertions(+), 48 deletions(-)

diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
index 27a2a02ef8fb..91c6db4ec054 100644
--- a/arch/x86/xen/enlighten_pvh.c
+++ b/arch/x86/xen/enlighten_pvh.c
@@ -27,54 +27,6 @@
 bool __ro_after_init xen_pvh;
 EXPORT_SYMBOL_GPL(xen_pvh);
 
-void __init xen_pvh_init(struct boot_params *boot_params)
-{
-	u32 msr;
-	u64 pfn;
-
-	xen_pvh = 1;
-	xen_domain_type = XEN_HVM_DOMAIN;
-	xen_start_flags = pvh_start_info.flags;
-
-	msr = cpuid_ebx(xen_cpuid_base() + 2);
-	pfn = __pa(hypercall_page);
-	wrmsr_safe(msr, (u32)pfn, (u32)(pfn >> 32));
-
-	if (xen_initial_domain())
-		x86_init.oem.arch_setup = xen_add_preferred_consoles;
-	x86_init.oem.banner = xen_banner;
-
-	xen_efi_init(boot_params);
-
-	if (xen_initial_domain()) {
-		struct xen_platform_op op = {
-			.cmd = XENPF_get_dom0_console,
-		};
-		int ret = HYPERVISOR_platform_op(&op);
-
-		if (ret > 0)
-			xen_init_vga(&op.u.dom0_console,
-				     min(ret * sizeof(char),
-					 sizeof(op.u.dom0_console)),
-				     &boot_params->screen_info);
-	}
-}
-
-void __init mem_map_via_hcall(struct boot_params *boot_params_p)
-{
-	struct xen_memory_map memmap;
-	int rc;
-
-	memmap.nr_entries = ARRAY_SIZE(boot_params_p->e820_table);
-	set_xen_guest_handle(memmap.buffer, boot_params_p->e820_table);
-	rc = HYPERVISOR_memory_op(XENMEM_memory_map, &memmap);
-	if (rc) {
-		xen_raw_printk("XENMEM_memory_map failed (%d)\n", rc);
-		BUG();
-	}
-	boot_params_p->e820_entries = memmap.nr_entries;
-}
-
 /*
  * Reserve e820 UNUSABLE regions to inflate the memory balloon.
  *
@@ -141,3 +93,51 @@ void __init xen_reserve_extra_memory(struct boot_params *bootp)
 		xen_add_extra_mem(PFN_UP(e->addr), pages);
 	}
 }
+
+void __init xen_pvh_init(struct boot_params *boot_params)
+{
+	u32 msr;
+	u64 pfn;
+
+	xen_pvh = 1;
+	xen_domain_type = XEN_HVM_DOMAIN;
+	xen_start_flags = pvh_start_info.flags;
+
+	msr = cpuid_ebx(xen_cpuid_base() + 2);
+	pfn = __pa(hypercall_page);
+	wrmsr_safe(msr, (u32)pfn, (u32)(pfn >> 32));
+
+	if (xen_initial_domain())
+		x86_init.oem.arch_setup = xen_add_preferred_consoles;
+	x86_init.oem.banner = xen_banner;
+
+	xen_efi_init(boot_params);
+
+	if (xen_initial_domain()) {
+		struct xen_platform_op op = {
+			.cmd = XENPF_get_dom0_console,
+		};
+		int ret = HYPERVISOR_platform_op(&op);
+
+		if (ret > 0)
+			xen_init_vga(&op.u.dom0_console,
+				     min(ret * sizeof(char),
+					 sizeof(op.u.dom0_console)),
+				     &boot_params->screen_info);
+	}
+}
+
+void __init mem_map_via_hcall(struct boot_params *boot_params_p)
+{
+	struct xen_memory_map memmap;
+	int rc;
+
+	memmap.nr_entries = ARRAY_SIZE(boot_params_p->e820_table);
+	set_xen_guest_handle(memmap.buffer, boot_params_p->e820_table);
+	rc = HYPERVISOR_memory_op(XENMEM_memory_map, &memmap);
+	if (rc) {
+		xen_raw_printk("XENMEM_memory_map failed (%d)\n", rc);
+		BUG();
+	}
+	boot_params_p->e820_entries = memmap.nr_entries;
+}
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 07:32:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 07:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764733.1175230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWsxD-0002s1-DG; Thu, 25 Jul 2024 07:31:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764733.1175230; Thu, 25 Jul 2024 07:31: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 1sWsxD-0002ru-Ai; Thu, 25 Jul 2024 07:31:59 +0000
Received: by outflank-mailman (input) for mailman id 764733;
 Thu, 25 Jul 2024 07:31: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=KwaG=OZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWsxB-0002ro-V5
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 07:31:57 +0000
Received: from mail-yb1-xb2b.google.com (mail-yb1-xb2b.google.com
 [2607:f8b0:4864:20::b2b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f86418f2-4a57-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 09:31:56 +0200 (CEST)
Received: by mail-yb1-xb2b.google.com with SMTP id
 3f1490d57ef6-e0b2d2e7dc9so297226276.2
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 00:31:56 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fafa1aesm4291046d6.133.2024.07.25.00.31.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 00: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: f86418f2-4a57-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721892715; x=1722497515; 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=VvZ4DTblxYxly9G9vL3gUkX/k/yzmXgKCMvFtxah1qs=;
        b=GAjXDM4mJFrtJkkb40bdTCjB+ecbdBUA7LgDA7TJkxatI8rYs+4Xlz+jpST6K+ktEm
         wssxFs8HKzkEbuKFiqUSdHZl9csT2WQNz35BGGg/abtuRbJbHW0DLnyM5fTP+jt1uCFJ
         jFRH1mGbxssuIpZqn69QR8E9zzPTY5/obP8Qc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721892715; x=1722497515;
        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=VvZ4DTblxYxly9G9vL3gUkX/k/yzmXgKCMvFtxah1qs=;
        b=rHojpaZbLiocc4JbfnwGeFE/a4nE4xJSVkt1AC7SZsy6dSvkok4OMlFDNdJTLPHh0H
         OgsE+ztDfjrr6SComjzImpmYFAktFrDd6Z6vbnkfx4krDVfFEI8xe1G3ZsKomr8mNw8B
         W2xBaw9efAOvjT8aHnL7/b9c5p1tTILp6OhPlmFc4yUpDRwXsDM1LnE1L+qCyy+NUDkz
         CqaGin+eOp/C6DbbOe1IW8SiEOA8KnRJNYSaIjC6/xjE1bBgCxHqcsd0FuEqO7IjooWG
         9JM7QYqygdgCJJuCUV6fxBDIGXKIQRtepbME81njis6LD+bTu1eJF25Fz3OFWevkQY+N
         VVHw==
X-Gm-Message-State: AOJu0YwtH7WmfyAcGySwE0mQ26jJJiH/StJbWpWEeYOhjhcQsfucq2jd
	b1Gu3AGZ+SMzHL77Us9njlPV1nlrKoDmfEfLTblO7E3nLMLP0WSJAi06fCSpF7XMzmETNBfTHh5
	W
X-Google-Smtp-Source: AGHT+IEQ3ilVsGS4D0Yn0i3rrErdJYCa0VhU+F+tFJqk4zJ4GND8LiLWiZXrzfjIIg4gfIYZK7uezQ==
X-Received: by 2002:a05:6902:240f:b0:e02:b9ac:1486 with SMTP id 3f1490d57ef6-e0b2346ead8mr1859811276.57.1721892715002;
        Thu, 25 Jul 2024 00:31:55 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 0/2] x86/xen: fix memblock_reserve() usage on PVH
Date: Thu, 25 Jul 2024 09:31:13 +0200
Message-ID: <20240725073116.14626-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

First patch is just code movement, the second patch is the actual
bugfix.

Thanks, Roger.

Roger Pau Monne (2):
  x86/xen: move xen_reserve_extra_memory()
  x86/xen: fix memblock_reserve() usage on PVH

 arch/x86/include/asm/xen/hypervisor.h |   5 --
 arch/x86/platform/pvh/enlighten.c     |   3 -
 arch/x86/xen/enlighten_pvh.c          | 107 ++++++++++++++------------
 3 files changed, 58 insertions(+), 57 deletions(-)

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 07:32:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 07:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764735.1175251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWsxJ-0003MA-QT; Thu, 25 Jul 2024 07:32:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764735.1175251; Thu, 25 Jul 2024 07:32: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 1sWsxJ-0003Lz-Nl; Thu, 25 Jul 2024 07:32:05 +0000
Received: by outflank-mailman (input) for mailman id 764735;
 Thu, 25 Jul 2024 07:32: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=KwaG=OZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWsxJ-0003L9-3Q
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 07:32:05 +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 fb747a71-4a57-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 09:32:02 +0200 (CEST)
Received: by mail-qv1-xf35.google.com with SMTP id
 6a1803df08f44-6b795574f9dso3913996d6.0
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 00:32:02 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f9143e1sm4321446d6.61.2024.07.25.00.31.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 00: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: fb747a71-4a57-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721892720; x=1722497520; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2GVlNStJvrT8ORCcRB8+CmsmV0FyqBN6Hy+p1P9rZbw=;
        b=MhkYLUdGIF+WYGBg4fh2js3Rf1RqwYqh+25r/WAUupuiw9bkEc5WHOlLBot6Le2QdU
         uOz+aYEmJxz/6NyYJy+ftZoYBaehYYgeZBGYuyDZ47uicqQGh28Jxj1oN+s2JsEISG9A
         t+aiaFryu1x5/WSmj6G9QKZ6ZbMcrQutsLfTc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721892720; x=1722497520;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2GVlNStJvrT8ORCcRB8+CmsmV0FyqBN6Hy+p1P9rZbw=;
        b=BvH7WLEFu5P1QrKsfunQBuaPtX4YQGBHJHfSCtpQf+Z7VKMeKmEgjYbVC+VC3rBpWG
         TenQrpE+WXibNWiLFdeWK8I4F90dNYfuY2EOxXUKFhKyye1Ru2CAqbVeA4lXFn5sdgaZ
         OmT1GyIDL5/NkZCOosrCl5emgTcmOFjT1d0DWuW73dCVx4jkI1GDqytLcaMttf1pY7M/
         JMYy8IxTwnn1VRNULthM5dWYfDdKP8uAhhBM5BF6bJy0Pw5KhuyCweaJfax4RxKwvkhg
         9yMZfOw0VGp5q+qy8pRBndkJ64oAcGxhmF5hG1GyFX6yJ4lKypbX0KrckM0S2SRCPsEk
         FeBg==
X-Gm-Message-State: AOJu0YwTvGk6TV/hPUMXBP7CjZTijki+5vQEi4BgwqFdGyFDpVcQTYZU
	4O6mnLD4earzCGuW1806LoF1AwKLx+a8Mu4RKM+QxFVYTGqU7Gg/W8lue9vb92b9x1KgN8CDXG+
	T
X-Google-Smtp-Source: AGHT+IHfDJbquxK4yoeiAtgbU0j7N/IGyrHV9CdR7h6snx/JBoTzCuXUsX3oxBVqaoEeHvgUuwnjCQ==
X-Received: by 2002:a05:6214:202f:b0:6b0:6dba:c947 with SMTP id 6a1803df08f44-6bb40700306mr13763466d6.18.1721892720336;
        Thu, 25 Jul 2024 00:32:00 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	Juergen Gross <jgross@suse.com>,
	Roger Pau Monne <roger.pau@citrix.com>
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>
Subject: [PATCH 2/2] x86/xen: fix memblock_reserve() usage on PVH
Date: Thu, 25 Jul 2024 09:31:15 +0200
Message-ID: <20240725073116.14626-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240725073116.14626-1-roger.pau@citrix.com>
References: <20240725073116.14626-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current usage of memblock_reserve() in init_pvh_bootparams() is done before
the .bss is zeroed, and that used to be fine when
memblock_reserved_init_regions implicitly ended up in the .meminit.data
section.  However after commit 73db3abdca58c memblock_reserved_init_regions
ends up in the .bss section, thus breaking it's usage before the .bss is
cleared.

Move and rename the call to xen_reserve_extra_memory() so it's done in the
x86_init.oem.arch_setup hook, which gets executed after the .bss has been
zeroed, but before calling e820__memory_setup().

Fixes: 38620fc4e893 ('x86/xen: attempt to inflate the memory balloon on PVH')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
While the commit that introduced the user-noticeable regression is
73db3abdca58c, I think 38620fc4e893 should have been more careful to not
initialize the memblock ranges ahead of the .bss zeroing.
---
 arch/x86/include/asm/xen/hypervisor.h |  5 -----
 arch/x86/platform/pvh/enlighten.c     |  3 ---
 arch/x86/xen/enlighten_pvh.c          | 15 ++++++++++++---
 3 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/arch/x86/include/asm/xen/hypervisor.h b/arch/x86/include/asm/xen/hypervisor.h
index 64fbd2dbc5b7..a9088250770f 100644
--- a/arch/x86/include/asm/xen/hypervisor.h
+++ b/arch/x86/include/asm/xen/hypervisor.h
@@ -62,11 +62,6 @@ void xen_arch_unregister_cpu(int num);
 #ifdef CONFIG_PVH
 void __init xen_pvh_init(struct boot_params *boot_params);
 void __init mem_map_via_hcall(struct boot_params *boot_params_p);
-#ifdef CONFIG_XEN_PVH
-void __init xen_reserve_extra_memory(struct boot_params *bootp);
-#else
-static inline void xen_reserve_extra_memory(struct boot_params *bootp) { }
-#endif
 #endif
 
 /* Lazy mode for batching updates / context switch */
diff --git a/arch/x86/platform/pvh/enlighten.c b/arch/x86/platform/pvh/enlighten.c
index 8c2d4b8de25d..944e0290f2c0 100644
--- a/arch/x86/platform/pvh/enlighten.c
+++ b/arch/x86/platform/pvh/enlighten.c
@@ -75,9 +75,6 @@ static void __init init_pvh_bootparams(bool xen_guest)
 	} else
 		xen_raw_printk("Warning: Can fit ISA range into e820\n");
 
-	if (xen_guest)
-		xen_reserve_extra_memory(&pvh_bootparams);
-
 	pvh_bootparams.hdr.cmd_line_ptr =
 		pvh_start_info.cmdline_paddr;
 
diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
index 91c6db4ec054..728a4366ca85 100644
--- a/arch/x86/xen/enlighten_pvh.c
+++ b/arch/x86/xen/enlighten_pvh.c
@@ -9,6 +9,7 @@
 #include <asm/io_apic.h>
 #include <asm/hypervisor.h>
 #include <asm/e820/api.h>
+#include <asm/setup.h>
 
 #include <xen/xen.h>
 #include <asm/xen/interface.h>
@@ -41,8 +42,9 @@ EXPORT_SYMBOL_GPL(xen_pvh);
  * hypervisor should notify us which memory ranges are suitable for creating
  * foreign mappings, but that's not yet implemented.
  */
-void __init xen_reserve_extra_memory(struct boot_params *bootp)
+static void __init pvh_reserve_extra_memory(void)
 {
+	struct boot_params *bootp = &boot_params;
 	unsigned int i, ram_pages = 0, extra_pages;
 
 	for (i = 0; i < bootp->e820_entries; i++) {
@@ -94,6 +96,14 @@ void __init xen_reserve_extra_memory(struct boot_params *bootp)
 	}
 }
 
+static void __init pvh_arch_setup(void)
+{
+	pvh_reserve_extra_memory();
+
+	if (xen_initial_domain())
+		xen_add_preferred_consoles();
+}
+
 void __init xen_pvh_init(struct boot_params *boot_params)
 {
 	u32 msr;
@@ -107,8 +117,7 @@ void __init xen_pvh_init(struct boot_params *boot_params)
 	pfn = __pa(hypercall_page);
 	wrmsr_safe(msr, (u32)pfn, (u32)(pfn >> 32));
 
-	if (xen_initial_domain())
-		x86_init.oem.arch_setup = xen_add_preferred_consoles;
+	x86_init.oem.arch_setup = pvh_arch_setup;
 	x86_init.oem.banner = xen_banner;
 
 	xen_efi_init(boot_params);
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 07:38:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 07:38:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764754.1175260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWt35-0004Xe-F4; Thu, 25 Jul 2024 07:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764754.1175260; Thu, 25 Jul 2024 07:38:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWt35-0004XX-C8; Thu, 25 Jul 2024 07:38:03 +0000
Received: by outflank-mailman (input) for mailman id 764754;
 Thu, 25 Jul 2024 07:38:02 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWt34-0004XN-0X; Thu, 25 Jul 2024 07:38:02 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWt33-0008MV-Nw; Thu, 25 Jul 2024 07:38:01 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWt33-0002nJ-DA; Thu, 25 Jul 2024 07:38:01 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWt33-0002aO-Cj; Thu, 25 Jul 2024 07:38: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=0cshyRoPaMTNZOfwEtV7DFm7sTL7NbBxrqOtVl37PPk=; b=naAypfsOLRI3FZaNm6eUeIlvB6
	p4G/g+kj7zldU9kUwJzVhTuVCHr2LpzIW65OFAXJHDs2Bkub89pNtaRpQjucTpeKxkNMIQILUEedK
	f/nxkAL+Mpb7NAuEB1SKTypCXdma3s0k6byAyQb7lkwQxTdlUViQNKzggUuLQELTQwnY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186985-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 186985: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt-vhd:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-credit1:host-ping-check-xen:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=c6661e89102065d3e04799b9baa9f928a1fc40da
X-Osstest-Versions-That:
    xen=fa58fcdc8cc38b5b73a59209a630ea7170eac713
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 07:38:01 +0000

flight 186985 xen-unstable real [real]
flight 186999 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/186985/
http://logs.test-lab.xenproject.org/osstest/logs/186999/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-vhd  8 xen-boot            fail pass in 186999-retest
 test-armhf-armhf-xl-credit1  10 host-ping-check-xen fail pass in 186999-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check fail in 186999 never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check fail in 186999 never pass
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 186999 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 186999 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186971
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186971
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186971
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186971
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186971
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186971
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  c6661e89102065d3e04799b9baa9f928a1fc40da
baseline version:
 xen                  fa58fcdc8cc38b5b73a59209a630ea7170eac713

Last test of basis   186971  2024-07-23 17:07:07 Z    1 days
Failing since        186978  2024-07-24 04:56:31 Z    1 days    2 attempts
Testing same since   186985  2024-07-24 17:10:37 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alejandro Vallejo <alejandro.vallejo@cloud.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  Bertrand Marquis <bertrand.marquis@arm.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Jason Andryuk <jason.andryuk@amd.com>
  Michal Orzel <michal.orzel@amd.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>
  Sergiy Kibrik <Sergiy_Kibrik@epam.com>
  Stefano Stabellini <sstabellini@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   fa58fcdc8c..c6661e8910  c6661e89102065d3e04799b9baa9f928a1fc40da -> master


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:01:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:01:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764782.1175323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtPe-0001U1-VO; Thu, 25 Jul 2024 08:01:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764782.1175323; Thu, 25 Jul 2024 08:01: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 1sWtPe-0001Tu-SX; Thu, 25 Jul 2024 08:01:22 +0000
Received: by outflank-mailman (input) for mailman id 764782;
 Thu, 25 Jul 2024 08:01: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=/jnY=OZ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWtPd-0001To-Cb
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 08:01:21 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1311dffd-4a5c-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 10:01:19 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2eecd2c6432so9673081fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 01:01:19 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab23394sm44719966b.26.2024.07.25.01.01.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Jul 2024 01:01: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: 1311dffd-4a5c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721894478; x=1722499278; 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=1rcRioImMxc/6ndik9rsNgcLsBY2YiVPz+IgBUsue8c=;
        b=NaWU1v3vCVtG5Kz9oWHvKxxD9UMLzY9t5MUzo8QIlkWMYc3GXsNhP5RtPH+7aA/DkW
         ln/Cuq67KBhiD/hZ9qIOINCeTeM+TuX00qv926n/KrywEY4+OCgcDP2rZuN20t1/HZEq
         9QdFw3sM+7A8bZAIhzekbjTMUA5lDXnLqe6CZKq/JSCyfmS9X6DW8VHCdvuj4hC7kRcn
         EH3UC5SkFABBcdS5/JWNREKMEogGXjzEChBmYVdmqZ+0sSqxCfE7uEqGSeHO/Vq0G8uQ
         ypcoZqLHMEAbDgY0W+j7cuiv+XlV6Y29M2cxXwijXbT4+ZaRpkJl4q3u57QlHl3C0fmv
         KGsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721894478; x=1722499278;
        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=1rcRioImMxc/6ndik9rsNgcLsBY2YiVPz+IgBUsue8c=;
        b=BRuRQIJXoLGC+Z8SeuHjCEmZNw1YP7KuUoJZWJs/an1YoQFAQpmiezZvr7GiFaKsb9
         j6rTggk3Pt28+PP1ajb96tS7erxr9XrFCgMA3LsO9xj3mjT729oiiZE6GWYH4qPKXp0R
         2AzJEok6ZCSRN42EnWBUQL1Y0Ra6JvJjP2vEYgIhQEyAnWlsot6G1Ifhmqlp+i2QzLiL
         bG2ccUr0ilngKJc78dgRKewz7zRcsk2MvwgUmIqNiSj9iPnP88Ou8dSzx4ga4cEQta65
         tgY4iyHkk/XgSgPoLqhNlUi0P05C+y7bd2WsqDuppV3a32kXG1DLub16aJJCoZniN3EN
         uaHQ==
X-Forwarded-Encrypted: i=1; AJvYcCVIzLGu3yKbW3Yd02h/HlI7tf2JatNe/guXbxT5eWpXQ5DE7C9zt+iZgd9QzENBH2keXhRX0do5LeZDmrLtqGa4NESk+4ro17jtw/L50xM=
X-Gm-Message-State: AOJu0YyqJ9+1TXc/aUL1V2Tyx+Qx//Y1H8MF/7Pm/2kZXUC3rm6gg6CW
	E7kFtqWLITtkmk26fuD+1ZzIe0azJirhUCqEQwO+XmB8M2uMkM0oyjr8+JnFBQI=
X-Google-Smtp-Source: AGHT+IHcNb2whkudlAoX0PIxv0wM+WiJHVbabURN52CZ95xVY0/XjQG7ggcKAuwehZjH4LmIdYalug==
X-Received: by 2002:a2e:3603:0:b0:2ef:2dbe:7455 with SMTP id 38308e7fff4ca-2f03db56305mr10047511fa.1.1721894478341;
        Thu, 25 Jul 2024 01:01:18 -0700 (PDT)
Message-ID: <a249e651-a2a1-4ea9-b262-0d04a8abaf0e@suse.com>
Date: Thu, 25 Jul 2024 10:01:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/xen: fix memblock_reserve() usage on PVH
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>
References: <20240725073116.14626-1-roger.pau@citrix.com>
 <20240725073116.14626-3-roger.pau@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240725073116.14626-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 25.07.24 09:31, Roger Pau Monne wrote:
> The current usage of memblock_reserve() in init_pvh_bootparams() is done before
> the .bss is zeroed, and that used to be fine when
> memblock_reserved_init_regions implicitly ended up in the .meminit.data
> section.  However after commit 73db3abdca58c memblock_reserved_init_regions
> ends up in the .bss section, thus breaking it's usage before the .bss is
> cleared.
> 
> Move and rename the call to xen_reserve_extra_memory() so it's done in the
> x86_init.oem.arch_setup hook, which gets executed after the .bss has been
> zeroed, but before calling e820__memory_setup().
> 
> Fixes: 38620fc4e893 ('x86/xen: attempt to inflate the memory balloon on PVH')
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> While the commit that introduced the user-noticeable regression is
> 73db3abdca58c, I think 38620fc4e893 should have been more careful to not
> initialize the memblock ranges ahead of the .bss zeroing.

Reviewed-by: Juergen Gross <jgross@suse.com>

I'd prefer using 73db3abdca58c for the fixes tag. Otherwise you'd need to
add this patch to the stable branches, too, which is technically not really
needed.

Additionally I'd like to drop the Fixes: tag from the prereq patch, as this
one doesn't really fix anything.

I can do both while committing.


Juergen


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:02:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:02:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764788.1175332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtR4-00022J-91; Thu, 25 Jul 2024 08:02:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764788.1175332; Thu, 25 Jul 2024 08: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 1sWtR4-00022C-6M; Thu, 25 Jul 2024 08:02:50 +0000
Received: by outflank-mailman (input) for mailman id 764788;
 Thu, 25 Jul 2024 08: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=/jnY=OZ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWtR2-00021z-SI
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 08:02:48 +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 47378f7f-4a5c-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 10:02:46 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a7b2dbd81e3so21196566b.1
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 01:02:46 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acadb021asm44214166b.188.2024.07.25.01.02.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Jul 2024 01: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: 47378f7f-4a5c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721894566; x=1722499366; 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=AP47ysTrD1B/0czQGo5UjPtQ30JzUCGh6ScFen3bgnQ=;
        b=ZixbgwU0hfuxpnqaIhRzv7oWM5+9Ws4aMmEGHGcTBwaHmNlXuH8tPh1yfvD/Ancisa
         d/Y9VyjDfxW9NZmOlEVwvSI/Acbg4AqgyuT+AmwmZjZFv2jNTgyoFIY/9we0FpkMUNBn
         6JJpTXx0He+woWPMlDBJS1MmSFDZKdOw9Kg8a58+gXMpAqdRflA4+Xa/XbA/sCuROitS
         yT2FhnTYVJFnsht4UcpDTQujNL/xc4PnoLd5yUfF+BI3S39yiB4uo6s4DYQeQ77rnsYb
         0Q0Tveu8cbMAKLdIP/JZDnUVxZMcAnJrr3wyh1XyVrDRMk/YL04IVvQtjoTCpbYZoeXr
         ul9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721894566; x=1722499366;
        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=AP47ysTrD1B/0czQGo5UjPtQ30JzUCGh6ScFen3bgnQ=;
        b=OMRZ+gze47MChL+y3jH46v7d0Wq6T+pBnSZOx7pl8Z/nAZU/mcL7R+NswV1GU4Qyiq
         5Qke2fcUyuljlx/THiKV/wCI9ZBmC40vC4p6UxbTOmnQRCo4Xjx7LarauKdJBXGqYG/l
         svnQCTJXv4urw44AnF+54FYyq9ORhlqrlY5vj9mX9zMah8eDEdzU1ZMd0bzlLOaxOP59
         4AUl6TMmPy6dKgYX61D5QAV8E2aOJn04L/GC+lDl8DbNSFoiEyMRryKy+sz0Wz4QoJ+N
         u/zjicMF02FZsDaWobzfV+DscI1ZNlEfDe9o+RNDitlDu0+j1WTuvNTr8CwGHoL/uIFy
         EdXw==
X-Forwarded-Encrypted: i=1; AJvYcCVCNmalqDTvGGuW+XQZo7mH1vn3yZ9CltWuTfwhV52J3IxcOQdBYMUQDraGTcIUDgXFm9Awvrg1AgkGCuj9aXllCricOowODvNW0wSZV54=
X-Gm-Message-State: AOJu0Yw3rE8kSDYmxi9ER3hoXK3m+uaTdkL4DDmzJW0ODGJmH5XGRC6h
	735JHAJoch1mIqYk424+JyKxCn1BnF6adfGfhlJz17Boj40ew9h+lPtLdTW+OhHybtJaeNZk8ry
	F
X-Google-Smtp-Source: AGHT+IEVJJ3nESMvDj3qZN35DsT4AR4wlpLYi6EzQNKrYOMLzABEAXbto0MdLywaTjjGWg0Y6EzVuw==
X-Received: by 2002:a17:907:9694:b0:a7a:b385:37c8 with SMTP id a640c23a62f3a-a7ac4d9f44amr153068366b.5.1721894566083;
        Thu, 25 Jul 2024 01:02:46 -0700 (PDT)
Message-ID: <a2edee01-b895-4d0f-b435-9a92bcc5c411@suse.com>
Date: Thu, 25 Jul 2024 10:02:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/xen: move xen_reserve_extra_memory()
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>
References: <20240725073116.14626-1-roger.pau@citrix.com>
 <20240725073116.14626-2-roger.pau@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240725073116.14626-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 25.07.24 09:31, Roger Pau Monne wrote:
> In preparation for making the function static.
> 
> No functional change.
> 
> Fixes: 38620fc4e893 ('x86/xen: attempt to inflate the memory balloon on PVH')
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Without the Fixes: tag (can be dropped while committing):

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:10:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:10:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764799.1175343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtYm-0003qC-0n; Thu, 25 Jul 2024 08:10:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764799.1175343; Thu, 25 Jul 2024 08:10:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtYl-0003q5-UQ; Thu, 25 Jul 2024 08:10:47 +0000
Received: by outflank-mailman (input) for mailman id 764799;
 Thu, 25 Jul 2024 08:10: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=KwaG=OZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWtYk-0003pz-IE
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 08:10:46 +0000
Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com
 [2607:f8b0:4864:20::735])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 64652ede-4a5d-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 10:10:45 +0200 (CEST)
Received: by mail-qk1-x735.google.com with SMTP id
 af79cd13be357-79ef72bb8c8so24923985a.2
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 01:10:45 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d73b5b7bsm54038185a.46.2024.07.25.01.10.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 01:10: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: 64652ede-4a5d-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721895044; x=1722499844; 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=BRzauhp029bfNwoz4LI5DK7BUaVkg/wkvBoPwQYFbbI=;
        b=BYTJICBeMLQoIFufT3eek1SHYiEdldCSRjMbUlj9fyjc3EwO4kvGoK0DARzi1uexco
         D9lw2VowppYLQeXePic657MYFpVFTKNdqltcxoaApgG0XsfYolrrbOnSY/WbOMEMSbWV
         viUxn/yuI8sthGpp+CpDvcEkyFeHTVpY7yA/o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721895044; x=1722499844;
        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=BRzauhp029bfNwoz4LI5DK7BUaVkg/wkvBoPwQYFbbI=;
        b=baDagTv5NKC07EeQ516i2cS11yaW081V7QtAz7m1/opyAOUHtIhah/W4e20idPv+Bz
         zal9Fvp9eYTQbA3dHIe/mOfPmpnrePTLc09LDF3KTyet3Z0QBxIXVg34jP1gnE+R0Pk4
         SWlwX7AMzYgy7ad5kVB0v2qL+pAHBDgTsbVzAgqsT+NVgauYiDFET+BvFp2FYgrGxbKv
         W/GQEvsUl8IyUBwoIUKBHv6g6Ytat1jXTbNKYp9RiJWIDFg2L9qt2xpW/YoeX8dPqwJ1
         cHNrFxJ+ZXCnGJkMgXRbw7OZEUSMDAVvkqID4Og9MhoZLs/dPt0QYbP9B6EM6PzPBrsB
         g6YQ==
X-Gm-Message-State: AOJu0Yzv3KdaOEXFRdiuoK6aFMlQKRVQMe0z7+DR7ygdJn7b0Ac7TvHM
	tzQkzHBNrb/41JzWKlUyK8ZO/RjKBW64rL/mJb/wSHauIx9OUVhYdc/+RF7gF44=
X-Google-Smtp-Source: AGHT+IHMP8aNo2avdNrP4jZnmdyG2J4CN5eFB1+b/ecGVBYY0OwBduL2Js6UAhl6Pr/QYhscQPKKzw==
X-Received: by 2002:a05:620a:468f:b0:79e:ffdb:e32d with SMTP id af79cd13be357-7a1d7ef936amr119261485a.51.1721895044134;
        Thu, 25 Jul 2024 01:10:44 -0700 (PDT)
Date: Thu, 25 Jul 2024 10:10:41 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@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>
Subject: Re: [PATCH 2/2] x86/xen: fix memblock_reserve() usage on PVH
Message-ID: <ZqIIgc9xj6wmDJtE@macbook>
References: <20240725073116.14626-1-roger.pau@citrix.com>
 <20240725073116.14626-3-roger.pau@citrix.com>
 <a249e651-a2a1-4ea9-b262-0d04a8abaf0e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <a249e651-a2a1-4ea9-b262-0d04a8abaf0e@suse.com>

On Thu, Jul 25, 2024 at 10:01:17AM +0200, Jürgen Groß wrote:
> On 25.07.24 09:31, Roger Pau Monne wrote:
> > The current usage of memblock_reserve() in init_pvh_bootparams() is done before
> > the .bss is zeroed, and that used to be fine when
> > memblock_reserved_init_regions implicitly ended up in the .meminit.data
> > section.  However after commit 73db3abdca58c memblock_reserved_init_regions
> > ends up in the .bss section, thus breaking it's usage before the .bss is
> > cleared.
> > 
> > Move and rename the call to xen_reserve_extra_memory() so it's done in the
> > x86_init.oem.arch_setup hook, which gets executed after the .bss has been
> > zeroed, but before calling e820__memory_setup().
> > 
> > Fixes: 38620fc4e893 ('x86/xen: attempt to inflate the memory balloon on PVH')
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > While the commit that introduced the user-noticeable regression is
> > 73db3abdca58c, I think 38620fc4e893 should have been more careful to not
> > initialize the memblock ranges ahead of the .bss zeroing.
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>
> 
> I'd prefer using 73db3abdca58c for the fixes tag. Otherwise you'd need to
> add this patch to the stable branches, too, which is technically not really
> needed.
> 
> Additionally I'd like to drop the Fixes: tag from the prereq patch, as this
> one doesn't really fix anything.
> 
> I can do both while committing.

I was unsure myself (as noted in the post-commit notes) about which
"Fixes:" tag to use.

Is there anyway that it can be noted that this commit depends on the
previous change also being present?  For backport reasons, if anyone
ends up backporting 73db3abdca58c it would also need to pick the two
patches here.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:17:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:17:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764806.1175353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtfI-0004pY-N2; Thu, 25 Jul 2024 08:17:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764806.1175353; Thu, 25 Jul 2024 08: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 1sWtfI-0004pR-JR; Thu, 25 Jul 2024 08:17:32 +0000
Received: by outflank-mailman (input) for mailman id 764806;
 Thu, 25 Jul 2024 08:17:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWtfH-0004pH-BG; Thu, 25 Jul 2024 08:17:31 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWtfH-0001Dj-4M; Thu, 25 Jul 2024 08:17:31 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWtfG-0003no-PS; Thu, 25 Jul 2024 08:17:30 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWtfG-0004dw-OX; Thu, 25 Jul 2024 08:17:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=fy8+xB1p4irS2zeL18Sg/74HdDlz7xHPQus5LcboM1s=; b=1KX6kD9zHrF2XsTVel7nBo6s3q
	jRBX2sfLp3t8YBYFdC5i6SS0J5pSs/ibVGTOGDUR4tn72xpBdRFWikQevBnD+iI0pqqsyIuVJAn9y
	VuZ5g+bAXKod2s1/QrSgpkZylwK6R+QrSy8H9SxVqtnfZWOyqEBBp513WG9VjcIKcXT4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187000-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187000: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=556640bceac32c86a843d09a1dd0688e44883781
X-Osstest-Versions-That:
    ovmf=6271b617b4e653029246152871cde93f3926e144
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 08:17:30 +0000

flight 187000 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187000/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 556640bceac32c86a843d09a1dd0688e44883781
baseline version:
 ovmf                 6271b617b4e653029246152871cde93f3926e144

Last test of basis   186997  2024-07-25 02:41:29 Z    0 days
Testing same since   187000  2024-07-25 06:41:30 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dongyan Qian <qiandongyan@loongson.cn>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   6271b617b4..556640bcea  556640bceac32c86a843d09a1dd0688e44883781 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:27:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:27:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764819.1175397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtpM-0007Sq-P6; Thu, 25 Jul 2024 08:27:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764819.1175397; Thu, 25 Jul 2024 08: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 1sWtpM-0007Q0-Jo; Thu, 25 Jul 2024 08:27:56 +0000
Received: by outflank-mailman (input) for mailman id 764819;
 Thu, 25 Jul 2024 08: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=D+J6=OZ=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sWtpL-0006fy-1U
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 08:27:55 +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 c98fceed-4a5f-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 10:27:53 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5a3458bf858so775061a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 01:27:53 -0700 (PDT)
Received: from fhilly.. ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac63590e7esm558590a12.36.2024.07.25.01.27.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 01:27: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: c98fceed-4a5f-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721896073; x=1722500873; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VVOe/t8VUEI4RbQ7J8nQRfJ3cqYvw3XGeBz8W3XqdYQ=;
        b=bc9NLOZqY8akKdVl6epvNFAIRbhXk37XuqogVZYvHCD0CfcZLQcXrWX1RyuO6QR8fm
         6jTsaw3Wb2m9Cbt+GwD8RKQkbIIw4L8fGTlZ1yBqPFu/tAUwRMyfHka1VMfunAWkKWTL
         qeYJcHFQgvi/n5+Yio6780R1x8OI2yQWZbDpc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721896073; x=1722500873;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=VVOe/t8VUEI4RbQ7J8nQRfJ3cqYvw3XGeBz8W3XqdYQ=;
        b=m8tPmJP5acrqNOFpLaVCWEM/EGXH9GVviiVVARrMArM28FuCr9FWY6WhUFZTWqdP0a
         ujnRyAlKcdinkAFwzNT50FFi+zFDQncxf4tNn6eGzz2raUsmAqUUJF8pcCnnhgoAjJts
         CIiGxLtpqf4qI6iXAfzwO2DrbBX9KouZOzYm9U4MIUBl9ztW45h9zxW6kUHKNpmqByc4
         31mJJFbkoXOHMi9M0vRCTnry7vvjUdgeSfBKkiVUjGxseDBOIfYauB1PZH8HUdNida/b
         3nzzM+jks2oiJ257zF3tN2poKkaP3DAP9TZNX8SVsa1ItC0eiCCGbHHoAfQvdgoaz7+q
         g1qQ==
X-Gm-Message-State: AOJu0YyBD7wSEF8wksHNYRBuunZ5YyUm+xO5cf6Xz14xvFMYsABaop9A
	+AnIJ/yegB9a/zn9SOYHny6vvgvDNWS4HAMyTkl4ZdbW6oFEuLkXys2EinBdyUAwOmWVCIErLQs
	z
X-Google-Smtp-Source: AGHT+IHqduZ9jVdHIHCAMWvCZqNZx+lg5p4II0Cave3jH/z3mA1k0t7L04M1v0i9O+J7YkYuM9Katw==
X-Received: by 2002:a50:870b:0:b0:58b:9561:650b with SMTP id 4fb4d7f45d1cf-5ac63c50f88mr962304a12.25.1721896072638;
        Thu, 25 Jul 2024 01:27:52 -0700 (PDT)
From: Fouad Hilly <fouad.hilly@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Fouad Hilly <fouad.hilly@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v6 4/4] x86/ucode: Utilize ucode_force and remove opt_ucode_allow_same
Date: Thu, 25 Jul 2024 09:27:25 +0100
Message-ID: <20240725082725.2685481-5-fouad.hilly@cloud.com>
X-Mailer: git-send-email 2.42.0
In-Reply-To: <20240725082725.2685481-1-fouad.hilly@cloud.com>
References: <20240725082725.2685481-1-fouad.hilly@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Pass xen-ucode flags to do low level checks on micorocde version and
utilize it to allow for microcode downgrade or reapply the same version of the
microcode.
ucode_force is required to be passed to a low level Intel and AMD for version
checks to be done.
While adding ucode_force, opt_ucode_allow_same was removed.
Remove opt_ucode_allow_same from documentation.

Signed-off-by: Fouad Hilly <fouad.hilly@cloud.com>
---
[v6]
1- Removed struct microcode_nmi_patch_with_flags.
2- removed const from control_thread_fn() and primary_thread_fn().
3- Fixed "flags" checks.
[v5]
1- Update commit message.
2- Introduce structs microcode_patch_with_flags and microcode_nmi_patch_with_flags.
3- pass flags to Intel and AMD low level through apply_microcode().
[4]
1- As opt_ucode_allow_same is not required anymore, it has been removed while introducing ucode_force.
2- Apply the changes for both AMD and Intel.
3- Remove the mention of opt_ucode_allow_same from documentation.
---
 docs/misc/xen-command-line.pandoc    |  7 +--
 xen/arch/x86/cpu/microcode/amd.c     |  8 ++-
 xen/arch/x86/cpu/microcode/core.c    | 88 +++++++++++++++++-----------
 xen/arch/x86/cpu/microcode/intel.c   |  9 ++-
 xen/arch/x86/cpu/microcode/private.h |  5 +-
 5 files changed, 68 insertions(+), 49 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 98a45211556b..2a8d47bbc664 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2650,7 +2650,7 @@ performance.
    Alternatively, selecting `tsx=1` will re-enable TSX at the users own risk.
 
 ### ucode
-> `= List of [ <integer> | scan=<bool>, nmi=<bool>, allow-same=<bool> ]`
+> `= List of [ <integer> | scan=<bool>, nmi=<bool> ]`
 
     Applicability: x86
     Default: `nmi`
@@ -2682,11 +2682,6 @@ precedence over `scan`.
 stop_machine context. In NMI handler, even NMIs are blocked, which is
 considered safer. The default value is `true`.
 
-'allow-same' alters the default acceptance policy for new microcode to permit
-trying to reload the same version.  Many CPUs will actually reload microcode
-of the same version, and this allows for easy testing of the late microcode
-loading path.
-
 ### unrestricted_guest (Intel)
 > `= <boolean>`
 
diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index f76a563c8b84..80ff6335d64a 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -22,6 +22,8 @@
 
 #include "private.h"
 
+#include "public/platform.h"
+
 #define pr_debug(x...) ((void)0)
 
 struct equiv_cpu_entry {
@@ -214,13 +216,15 @@ static enum microcode_match_result cf_check compare_patch(
     return compare_header(new, old);
 }
 
-static int cf_check apply_microcode(const struct microcode_patch *patch)
+static int cf_check apply_microcode(const struct microcode_patch *patch,
+                                    unsigned int flags)
 {
     int hw_err;
     unsigned int cpu = smp_processor_id();
     struct cpu_signature *sig = &per_cpu(cpu_sig, cpu);
     uint32_t rev, old_rev = sig->rev;
     enum microcode_match_result result = microcode_fits(patch);
+    bool ucode_force = flags & XENPF_UCODE_FORCE;
 
     if ( result == MIS_UCODE )
         return -EINVAL;
@@ -229,7 +233,7 @@ static int cf_check apply_microcode(const struct microcode_patch *patch)
      * Allow application of the same revision to pick up SMT-specific changes
      * even if the revision of the other SMT thread is already up-to-date.
      */
-    if ( result == OLD_UCODE )
+    if ( !ucode_force && (result == SAME_UCODE || result == OLD_UCODE) )
         return -EEXIST;
 
     if ( check_final_patch_levels(sig) )
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 8a9e744489b9..a0106a987e33 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -90,6 +90,11 @@ struct ucode_mod_blob {
     size_t size;
 };
 
+struct patch_with_flags {
+    unsigned int flags;
+    struct microcode_patch *patch;
+};
+
 static struct ucode_mod_blob __initdata ucode_blob;
 /*
  * By default we will NOT parse the multiboot modules to see if there is
@@ -100,8 +105,6 @@ static bool __initdata ucode_scan;
 /* By default, ucode loading is done in NMI handler */
 static bool ucode_in_nmi = true;
 
-bool __read_mostly opt_ucode_allow_same;
-
 /* Protected by microcode_mutex */
 static struct microcode_patch *microcode_cache;
 
@@ -128,8 +131,6 @@ static int __init cf_check parse_ucode(const char *s)
 
         if ( (val = parse_boolean("nmi", s, ss)) >= 0 )
             ucode_in_nmi = val;
-        else if ( (val = parse_boolean("allow-same", s, ss)) >= 0 )
-            opt_ucode_allow_same = val;
         else if ( !ucode_mod_forced ) /* Not forced by EFI */
         {
             if ( (val = parse_boolean("scan", s, ss)) >= 0 )
@@ -237,7 +238,11 @@ static DEFINE_PER_CPU(int, loading_err);
  */
 static cpumask_t cpu_callin_map;
 static atomic_t cpu_out, cpu_updated;
-static const struct microcode_patch *nmi_patch = ZERO_BLOCK_PTR;
+static struct patch_with_flags nmi_patch_with_flags =
+{
+    .flags  = 0,
+    .patch  = ZERO_BLOCK_PTR,
+};
 
 /*
  * Return a patch that covers current CPU. If there are multiple patches,
@@ -327,7 +332,8 @@ static bool cf_check wait_cpu_callout(unsigned int nr)
  * If no patch is provided, the cached patch will be loaded. Microcode update
  * during APs bringup and CPU resuming falls into this case.
  */
-static int microcode_update_cpu(const struct microcode_patch *patch)
+static int microcode_update_cpu(const struct microcode_patch *patch,
+                                unsigned int flags)
 {
     int err;
 
@@ -335,10 +341,11 @@ static int microcode_update_cpu(const struct microcode_patch *patch)
 
     spin_lock(&microcode_mutex);
     if ( patch )
-        err = alternative_call(ucode_ops.apply_microcode, patch);
+        err = alternative_call(ucode_ops.apply_microcode, patch, flags);
     else if ( microcode_cache )
     {
-        err = alternative_call(ucode_ops.apply_microcode, microcode_cache);
+        err = alternative_call(ucode_ops.apply_microcode, microcode_cache,
+                               flags);
         if ( err == -EIO )
         {
             microcode_free_patch(microcode_cache);
@@ -379,7 +386,8 @@ static int secondary_nmi_work(void)
     return wait_for_state(LOADING_EXIT) ? 0 : -EBUSY;
 }
 
-static int primary_thread_work(const struct microcode_patch *patch)
+static int primary_thread_work(struct microcode_patch *patch,
+                               unsigned int flags)
 {
     int ret;
 
@@ -388,7 +396,7 @@ static int primary_thread_work(const struct microcode_patch *patch)
     if ( !wait_for_state(LOADING_ENTER) )
         return -EBUSY;
 
-    ret = alternative_call(ucode_ops.apply_microcode, patch);
+    ret = alternative_call(ucode_ops.apply_microcode, patch, flags);
     if ( !ret )
         atomic_inc(&cpu_updated);
     atomic_inc(&cpu_out);
@@ -416,7 +424,8 @@ static int cf_check microcode_nmi_callback(
         return 0;
 
     if ( primary_cpu )
-        ret = primary_thread_work(nmi_patch);
+        ret = primary_thread_work(nmi_patch_with_flags.patch,
+                                  nmi_patch_with_flags.flags);
     else
         ret = secondary_nmi_work();
     this_cpu(loading_err) = ret;
@@ -446,7 +455,8 @@ static int secondary_thread_fn(void)
     return this_cpu(loading_err);
 }
 
-static int primary_thread_fn(const struct microcode_patch *patch)
+static int primary_thread_fn(struct microcode_patch *patch,
+                             unsigned int flags)
 {
     if ( !wait_for_state(LOADING_CALLIN) )
         return -EBUSY;
@@ -466,10 +476,11 @@ static int primary_thread_fn(const struct microcode_patch *patch)
         return this_cpu(loading_err);
     }
 
-    return primary_thread_work(patch);
+    return primary_thread_work(patch, flags);
 }
 
-static int control_thread_fn(const struct microcode_patch *patch)
+static int control_thread_fn(struct microcode_patch *patch,
+                             unsigned int flags)
 {
     unsigned int cpu = smp_processor_id(), done;
     unsigned long tick;
@@ -482,7 +493,8 @@ static int control_thread_fn(const struct microcode_patch *patch)
      */
     watchdog_disable();
 
-    nmi_patch = patch;
+    nmi_patch_with_flags.patch = patch;
+    nmi_patch_with_flags.flags = flags;
     smp_wmb();
     saved_nmi_callback = set_nmi_callback(microcode_nmi_callback);
 
@@ -498,7 +510,7 @@ static int control_thread_fn(const struct microcode_patch *patch)
         goto out;
 
     /* Control thread loads ucode first while others are in NMI handler. */
-    ret = alternative_call(ucode_ops.apply_microcode, patch);
+    ret = alternative_call(ucode_ops.apply_microcode, patch, flags);
     if ( !ret )
         atomic_inc(&cpu_updated);
     atomic_inc(&cpu_out);
@@ -544,17 +556,19 @@ static int control_thread_fn(const struct microcode_patch *patch)
 
     set_nmi_callback(saved_nmi_callback);
     smp_wmb();
-    nmi_patch = ZERO_BLOCK_PTR;
+    nmi_patch_with_flags.patch = ZERO_BLOCK_PTR;
+    nmi_patch_with_flags.flags = 0;
 
     watchdog_enable();
 
     return ret;
 }
 
-static int cf_check do_microcode_update(void *patch)
+static int cf_check do_microcode_update(void *_patch_with_flags)
 {
     unsigned int cpu = smp_processor_id();
     int ret;
+    struct patch_with_flags *patch_with_flags = _patch_with_flags;
 
     /*
      * The control thread set state to coordinate ucode loading. Primary
@@ -562,9 +576,11 @@ static int cf_check do_microcode_update(void *patch)
      * the completion of the ucode loading process.
      */
     if ( cpu == cpumask_first(&cpu_online_map) )
-        ret = control_thread_fn(patch);
+        ret = control_thread_fn(patch_with_flags->patch,
+                                patch_with_flags->flags);
     else if ( is_cpu_primary(cpu) )
-        ret = primary_thread_fn(patch);
+        ret = primary_thread_fn(patch_with_flags->patch,
+                                patch_with_flags->flags);
     else
         ret = secondary_thread_fn();
 
@@ -582,7 +598,8 @@ static long cf_check microcode_update_helper(void *data)
     int ret;
     struct ucode_buf *buffer = data;
     unsigned int cpu, updated;
-    struct microcode_patch *patch;
+    struct patch_with_flags patch_with_flags;
+    bool ucode_force = buffer->flags & XENPF_UCODE_FORCE;
 
     /* cpu_online_map must not change during update */
     if ( !get_cpu_maps() )
@@ -606,16 +623,17 @@ static long cf_check microcode_update_helper(void *data)
         goto put;
     }
 
-    patch = parse_blob(buffer->buffer, buffer->len);
+    patch_with_flags.patch = parse_blob(buffer->buffer, buffer->len);
+    patch_with_flags.flags = buffer->flags;
     xfree(buffer);
-    if ( IS_ERR(patch) )
+    if ( IS_ERR(patch_with_flags.patch) )
     {
-        ret = PTR_ERR(patch);
+        ret = PTR_ERR(patch_with_flags.patch);
         printk(XENLOG_WARNING "Parsing microcode blob error %d\n", ret);
         goto put;
     }
 
-    if ( !patch )
+    if ( !patch_with_flags.patch )
     {
         printk(XENLOG_WARNING "microcode: couldn't find any matching ucode in "
                               "the provided blob!\n");
@@ -632,17 +650,17 @@ static long cf_check microcode_update_helper(void *data)
     {
         enum microcode_match_result result;
 
-        result = alternative_call(ucode_ops.compare_patch, patch,
-                                  microcode_cache);
+        result = alternative_call(ucode_ops.compare_patch,
+                                  patch_with_flags.patch, microcode_cache);
 
         if ( result != NEW_UCODE &&
-             !(opt_ucode_allow_same && result == SAME_UCODE) )
+             !(ucode_force && (result == OLD_UCODE || result == SAME_UCODE)) )
         {
             spin_unlock(&microcode_mutex);
             printk(XENLOG_WARNING
                    "microcode: couldn't find any newer%s revision in the provided blob!\n",
-                   opt_ucode_allow_same ? " (or the same)" : "");
-            microcode_free_patch(patch);
+                   ucode_force? " (or a valid)" : "");
+            microcode_free_patch(patch_with_flags.patch);
             ret = -EEXIST;
 
             goto put;
@@ -674,13 +692,13 @@ static long cf_check microcode_update_helper(void *data)
      *   this requirement can be relaxed in the future. Right now, this is
      *   conservative and good.
      */
-    ret = stop_machine_run(do_microcode_update, patch, NR_CPUS);
+    ret = stop_machine_run(do_microcode_update, &patch_with_flags, NR_CPUS);
 
     updated = atomic_read(&cpu_updated);
     if ( updated > 0 )
     {
         spin_lock(&microcode_mutex);
-        microcode_update_cache(patch);
+        microcode_update_cache(patch_with_flags.patch);
         spin_unlock(&microcode_mutex);
 
         /*
@@ -697,7 +715,7 @@ static long cf_check microcode_update_helper(void *data)
             alternative_vcall(ctxt_switch_masking, current);
     }
     else
-        microcode_free_patch(patch);
+        microcode_free_patch(patch_with_flags.patch);
 
     if ( updated && updated != nr_cores )
         printk(XENLOG_ERR "ERROR: Updating microcode succeeded on %u cores and failed\n"
@@ -775,7 +793,7 @@ int microcode_update_one(void)
     if ( !ucode_ops.apply_microcode )
         return -EOPNOTSUPP;
 
-    return microcode_update_cpu(NULL);
+    return microcode_update_cpu(NULL, 0);
 }
 
 static int __init early_update_cache(const void *data, size_t len)
@@ -858,7 +876,7 @@ static int __init early_microcode_update_cpu(void)
     if ( !patch )
         return -ENOENT;
 
-    return microcode_update_cpu(patch);
+    return microcode_update_cpu(patch, 0);
 }
 
 int __init early_microcode_init(unsigned long *module_map,
diff --git a/xen/arch/x86/cpu/microcode/intel.c b/xen/arch/x86/cpu/microcode/intel.c
index f505aa1b7888..fc80f17d2376 100644
--- a/xen/arch/x86/cpu/microcode/intel.c
+++ b/xen/arch/x86/cpu/microcode/intel.c
@@ -29,6 +29,8 @@
 
 #include "private.h"
 
+#include "public/platform.h"
+
 #define pr_debug(x...) ((void)0)
 
 struct microcode_patch {
@@ -284,21 +286,22 @@ static enum microcode_match_result cf_check compare_patch(
     return compare_revisions(old->rev, new->rev);
 }
 
-static int cf_check apply_microcode(const struct microcode_patch *patch)
+static int cf_check apply_microcode(const struct microcode_patch *patch,
+                                    unsigned int flags)
 {
     uint64_t msr_content;
     unsigned int cpu = smp_processor_id();
     struct cpu_signature *sig = &this_cpu(cpu_sig);
     uint32_t rev, old_rev = sig->rev;
     enum microcode_match_result result;
+    bool ucode_force = flags & XENPF_UCODE_FORCE;
 
     result = microcode_update_match(patch);
 
     if ( result == MIS_UCODE )
         return -EINVAL;
 
-    if ( result == OLD_UCODE ||
-         (result == SAME_UCODE && !opt_ucode_allow_same) )
+    if ( !ucode_force && (result == SAME_UCODE || result == OLD_UCODE) )
         return -EEXIST;
 
     wbinvd();
diff --git a/xen/arch/x86/cpu/microcode/private.h b/xen/arch/x86/cpu/microcode/private.h
index da556fe5060a..017889e1b58d 100644
--- a/xen/arch/x86/cpu/microcode/private.h
+++ b/xen/arch/x86/cpu/microcode/private.h
@@ -3,8 +3,6 @@
 
 #include <asm/microcode.h>
 
-extern bool opt_ucode_allow_same;
-
 enum microcode_match_result {
     OLD_UCODE, /* signature matched, but revision id is older */
     SAME_UCODE, /* signature matched, but revision id is the same */
@@ -50,7 +48,8 @@ struct microcode_ops {
      * Attempt to load the provided patch into the CPU.  Returns an error if
      * anything didn't go as expected.
      */
-    int (*apply_microcode)(const struct microcode_patch *patch);
+    int (*apply_microcode)(const struct microcode_patch *patch,
+                           unsigned int flags);
 
     /*
      * Given two patches, are they both applicable to the current CPU, and is
-- 
2.42.0



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:27:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:27:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764818.1175393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtpM-0007OJ-Cy; Thu, 25 Jul 2024 08:27:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764818.1175393; Thu, 25 Jul 2024 08: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 1sWtpM-0007O8-A6; Thu, 25 Jul 2024 08:27:56 +0000
Received: by outflank-mailman (input) for mailman id 764818;
 Thu, 25 Jul 2024 08:27: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=D+J6=OZ=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sWtpK-00070a-Pg
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 08:27:54 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c8da7fd4-4a5f-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 10:27:52 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5a1c49632deso784624a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 01:27:52 -0700 (PDT)
Received: from fhilly.. ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac63590e7esm558590a12.36.2024.07.25.01.27.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 01:27: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: c8da7fd4-4a5f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721896072; x=1722500872; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OBaRyDnAGRnUAzYqwQI4QueAjcDEPAmUfs0Um5xu1Fw=;
        b=VA/+1NZG2Ye8x+cMODrXVvy6Unbm++2iWufSv0SZOqAQC96FnaR+YLSwub7qLFFS7k
         x/8cQtKO4uVEUAlyWEhVskccGzKSTRpRSD9zeSjfUT04EmJLqGhs3mxLzwSbjhZHXy7t
         a6ElbEJksFbsktC0YVVeRestsirLlLGsot6xA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721896072; x=1722500872;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=OBaRyDnAGRnUAzYqwQI4QueAjcDEPAmUfs0Um5xu1Fw=;
        b=BI1RACxYHeaoM3vE6CmJFkDA+MWZOezYp+lW9Q0ffqUfW18g6wqOBALVRxyh1AHfDW
         LGxX+lmtE+7oIcMDfz5zMzMGq8bHnwYZuAthkrjQGXwdebTq5P3gHYZ/4Ndhs4ba+3a4
         yujxffFIQFEUr5Rs1tLm+T1aU5OxuLL5phRVZMdsbyYSP7ZuEplZOh08G/Q3VThLqyr4
         43vFDXbTywJfL/tQ23HwxWF7eTlVyTBDTaOMGV3gWdan4UMaXJCBj+6ubGyXcKnqB6pE
         5hoh3fQi6fXRipcQIbSjQTbMm6tZtFl7fPgEmp31UXgl+txvlWHF0SqEvVllY+eOAPMg
         2rBQ==
X-Gm-Message-State: AOJu0YzoFQ6EZcA0dzjrCHx/GoTzA1WTzgW3nO8VEtwVe6X2uwLssLoo
	kJFvYAuQZtA79cDOJW9KbEA4DGwRJzHS4VP09mMQoTpDggT0EMEKiBnogG7V8aAJFcHxBQ5wAlG
	N
X-Google-Smtp-Source: AGHT+IH7u/9vSqUG18/Wai/gBMKMoz1kLZADxXkS2EPtQ2jADup/zKwH3xjvDtCWFr24WntaeJTVng==
X-Received: by 2002:a05:6402:2681:b0:586:e6e3:ea18 with SMTP id 4fb4d7f45d1cf-5acaad3c2b4mr672296a12.23.1721896071456;
        Thu, 25 Jul 2024 01:27:51 -0700 (PDT)
From: Fouad Hilly <fouad.hilly@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Fouad Hilly <fouad.hilly@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v6 2/4] x86/ucode: refactor xen-ucode to utilize getopt
Date: Thu, 25 Jul 2024 09:27:23 +0100
Message-ID: <20240725082725.2685481-3-fouad.hilly@cloud.com>
X-Mailer: git-send-email 2.42.0
In-Reply-To: <20240725082725.2685481-1-fouad.hilly@cloud.com>
References: <20240725082725.2685481-1-fouad.hilly@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Use getopt_long() to handle command line arguments.
Introduce ext_err for common exit with errors.
Introducing usage() to handle usage\help messages in a common block.
show_curr_cpu is printed to stdout only.

Signed-off-by: Fouad Hilly <fouad.hilly@cloud.com>
---
[v6]
1- Update usage() printed message format: [microcode file] [options] -> [microcode file | options]
2- Add missing blanks in switch ( opt )
[v5]
1- Update message description.
2- re-arrange static and automatic variables.
3- Fix indentations.
4- reverted the deletion of show-cpu-info for backwards compatibility.
[v4]
1- Merge three patches into one.
2- usage() to print messages to the correct stream.
3- Update commit message and description.
---
 tools/misc/xen-ucode.c | 52 +++++++++++++++++++++++++++++++++++-------
 1 file changed, 44 insertions(+), 8 deletions(-)

diff --git a/tools/misc/xen-ucode.c b/tools/misc/xen-ucode.c
index 390969db3d1c..2c9f337b86cb 100644
--- a/tools/misc/xen-ucode.c
+++ b/tools/misc/xen-ucode.c
@@ -11,6 +11,7 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <xenctrl.h>
+#include <getopt.h>
 
 static xc_interface *xch;
 
@@ -71,12 +72,29 @@ static void show_curr_cpu(FILE *f)
     }
 }
 
+static void usage(FILE *stream, const char *name)
+{
+    fprintf(stream,
+            "%s: Xen microcode updating tool\n"
+            "options:\n"
+            "  -h, --help            display this help\n"
+            "  -s, --show-cpu-info   show CPU information\n"
+            "Usage: %s [microcode file | options]\n", name, name);
+    show_curr_cpu(stream);
+}
+
 int main(int argc, char *argv[])
 {
+    static const struct option options[] = {
+        {"help", no_argument, NULL, 'h'},
+        {"show-cpu-info", no_argument, NULL, 's'},
+        {NULL, no_argument, NULL, 0}
+    };
     int fd, ret;
     char *filename, *buf;
     size_t len;
     struct stat st;
+    int opt;
 
     xch = xc_interface_open(NULL, NULL, 0);
     if ( xch == NULL )
@@ -86,22 +104,34 @@ int main(int argc, char *argv[])
         exit(1);
     }
 
-    if ( argc < 2 )
+    while ( (opt = getopt_long(argc, argv, "hs", options, NULL)) != -1 )
     {
-        fprintf(stderr,
-                "xen-ucode: Xen microcode updating tool\n"
-                "Usage: %s [<microcode file> | show-cpu-info]\n", argv[0]);
-        show_curr_cpu(stderr);
-        exit(2);
+        switch ( opt )
+        {
+        case 'h':
+            usage(stdout, argv[0]);
+            exit(EXIT_SUCCESS);
+
+        case 's':
+            show_curr_cpu(stdout);
+            exit(EXIT_SUCCESS);
+
+        default:
+            goto ext_err;
+        }
     }
 
-    if ( !strcmp(argv[1], "show-cpu-info") )
+    if ( optind == argc )
+        goto ext_err;
+
+    /* For backwards compatibility to the pre-getopt() cmdline handling */
+    if ( !strcmp(argv[optind], "show-cpu-info") )
     {
         show_curr_cpu(stdout);
         return 0;
     }
 
-    filename = argv[1];
+    filename = argv[optind];
     fd = open(filename, O_RDONLY);
     if ( fd < 0 )
     {
@@ -146,4 +176,10 @@ int main(int argc, char *argv[])
     close(fd);
 
     return 0;
+
+ ext_err:
+    fprintf(stderr,
+            "%s: unable to process command line arguments\n", argv[0]);
+    usage(stderr, argv[0]);
+    exit(EXIT_FAILURE);
 }
-- 
2.42.0



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:27:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:27:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764817.1175383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtpL-000797-6E; Thu, 25 Jul 2024 08:27:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764817.1175383; Thu, 25 Jul 2024 08:27: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 1sWtpL-000790-1u; Thu, 25 Jul 2024 08:27:55 +0000
Received: by outflank-mailman (input) for mailman id 764817;
 Thu, 25 Jul 2024 08:27: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=D+J6=OZ=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sWtpK-0006fy-1S
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 08:27:54 +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 c91f2d10-4a5f-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 10:27:52 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-58f9874aeb4so705754a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 01:27:52 -0700 (PDT)
Received: from fhilly.. ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac63590e7esm558590a12.36.2024.07.25.01.27.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 01:27: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: c91f2d10-4a5f-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721896072; x=1722500872; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BMAwTFy1Rlxptzf1ewiWhywNFS6V1PSKUkf1KHF6qIo=;
        b=Is5JZWrhnOBXK54KYo9gKIe9Zx3/9zcObnIgEsbKKAfI8VCcTjCubpc6uL3Tmf1RWG
         eBCjUxIvMrohf7dw+L5giWkVtgKXXGLAWYBLMYB7ItEwR3WXMqRGWxukryfNV9X2XK0c
         Kh9PUghh9Na5Oxcn157FMXvB7E/iuU8SdgW50=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721896072; x=1722500872;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BMAwTFy1Rlxptzf1ewiWhywNFS6V1PSKUkf1KHF6qIo=;
        b=wWL7BaWv1eLLFu6WfPlCok1B28YdA05V7s7SGLxNU0h3Vvpqa1g5ARBIXw3H5vPxYc
         LVw4GTYPGfR6ZmH9pPuW7xRABwq94PxLWxYtXOFlf4cvGEM91rCfXG2qneQUtRsJb8po
         iHREIlNmLfsAQ48OmI5Xj3PQabPfsM8m7s9c0R07pCvHREdAm4HGoXn98LuXleNCxcNJ
         sY4D2ie4dtGyMYwpG1OeyVcWL+OtgsYMLlV7gJpaZA8nSydlgfP2EgI3qx8Ey+wuDoga
         t2bPQUvlJzNYlkmmrJwpmfiDWCUitmfjVNUN8qDDlKNsGr26Zo5kQ3mJZQWPSx+yQHeO
         doEg==
X-Gm-Message-State: AOJu0YyeBdoCU3Qcziv5AQvw85Wn26tg2QbPYq8cLxcLheYDm1Lt1KBz
	NBC0vOrXhNBqksw8SbsI56Y46y+E35aK4SuEWyljKwvr7KbW/yi23tf1M/xcViz2mQmf6L108o8
	w
X-Google-Smtp-Source: AGHT+IEz/+qJhdhxjZMktp80vLu3Z7zdYAu8mcS1B1o0Mx+HJTsGQGdTSZqLNFRA01NszMnXySo2Kw==
X-Received: by 2002:a50:9f6a:0:b0:5a1:b0b2:798d with SMTP id 4fb4d7f45d1cf-5ac64cc7549mr999063a12.25.1721896071983;
        Thu, 25 Jul 2024 01:27:51 -0700 (PDT)
From: Fouad Hilly <fouad.hilly@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Fouad Hilly <fouad.hilly@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v6 3/4] x86/ucode: Introduce --force option to xen-ucode
Date: Thu, 25 Jul 2024 09:27:24 +0100
Message-ID: <20240725082725.2685481-4-fouad.hilly@cloud.com>
X-Mailer: git-send-email 2.42.0
In-Reply-To: <20240725082725.2685481-1-fouad.hilly@cloud.com>
References: <20240725082725.2685481-1-fouad.hilly@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce --force option to xen-ucode to force skipping microcode version check, which
allows the user to update x86 microcode even if both versions are the same or downgrade.
xc_microcode_update() refactored to accept flags and utilize xenpf_microcode_update2.

Signed-off-by: Fouad Hilly <fouad.hilly@cloud.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
[v6]
1- Fix usage() output for -f option to be explicitly wrapped for 80 character width
[v5]
1- Update commit message.
2- Re-phrase --force option description.
[v4]
1- Add --force to xen-ucode options.
2- Update xc_microcode_update() to accept and handle flags.
---
 tools/include/xenctrl.h   |  3 ++-
 tools/libs/ctrl/xc_misc.c | 12 +++++++-----
 tools/misc/xen-ucode.c    | 15 ++++++++++++---
 3 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 9ceca0cffc2f..2c4608c09ab0 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -1171,7 +1171,8 @@ typedef uint32_t xc_node_to_node_dist_t;
 int xc_physinfo(xc_interface *xch, xc_physinfo_t *info);
 int xc_cputopoinfo(xc_interface *xch, unsigned *max_cpus,
                    xc_cputopo_t *cputopo);
-int xc_microcode_update(xc_interface *xch, const void *buf, size_t len);
+int xc_microcode_update(xc_interface *xch, const void *buf,
+                        size_t len, unsigned int flags);
 int xc_get_cpu_version(xc_interface *xch, struct xenpf_pcpu_version *cpu_ver);
 int xc_get_ucode_revision(xc_interface *xch,
                           struct xenpf_ucode_revision *ucode_rev);
diff --git a/tools/libs/ctrl/xc_misc.c b/tools/libs/ctrl/xc_misc.c
index 50282fd60dcc..6a60216bda03 100644
--- a/tools/libs/ctrl/xc_misc.c
+++ b/tools/libs/ctrl/xc_misc.c
@@ -203,11 +203,12 @@ int xc_physinfo(xc_interface *xch,
     return 0;
 }
 
-int xc_microcode_update(xc_interface *xch, const void *buf, size_t len)
+int xc_microcode_update(xc_interface *xch, const void *buf,
+                        size_t len, unsigned int flags)
 {
     int ret;
     struct xen_platform_op platform_op = {};
-    DECLARE_HYPERCALL_BUFFER(struct xenpf_microcode_update, uc);
+    DECLARE_HYPERCALL_BUFFER(struct xenpf_microcode_update2, uc);
 
     uc = xc_hypercall_buffer_alloc(xch, uc, len);
     if ( uc == NULL )
@@ -215,9 +216,10 @@ int xc_microcode_update(xc_interface *xch, const void *buf, size_t len)
 
     memcpy(uc, buf, len);
 
-    platform_op.cmd = XENPF_microcode_update;
-    platform_op.u.microcode.length = len;
-    set_xen_guest_handle(platform_op.u.microcode.data, uc);
+    platform_op.cmd = XENPF_microcode_update2;
+    platform_op.u.microcode2.length = len;
+    platform_op.u.microcode2.flags = flags;
+    set_xen_guest_handle(platform_op.u.microcode2.data, uc);
 
     ret = do_platform_op(xch, &platform_op);
 
diff --git a/tools/misc/xen-ucode.c b/tools/misc/xen-ucode.c
index 2c9f337b86cb..688e540943b1 100644
--- a/tools/misc/xen-ucode.c
+++ b/tools/misc/xen-ucode.c
@@ -13,6 +13,8 @@
 #include <xenctrl.h>
 #include <getopt.h>
 
+#include <xen/platform.h>
+
 static xc_interface *xch;
 
 static const char intel_id[] = "GenuineIntel";
@@ -79,7 +81,9 @@ static void usage(FILE *stream, const char *name)
             "options:\n"
             "  -h, --help            display this help\n"
             "  -s, --show-cpu-info   show CPU information\n"
-            "Usage: %s [microcode file | options]\n", name, name);
+            "  -f, --force           skip certain checks; do not use unless\n"
+            "you know exactly what you are doing\n"
+            "Usage: %s [microcode file [-f,--force] | options]\n", name, name);
     show_curr_cpu(stream);
 }
 
@@ -88,6 +92,7 @@ int main(int argc, char *argv[])
     static const struct option options[] = {
         {"help", no_argument, NULL, 'h'},
         {"show-cpu-info", no_argument, NULL, 's'},
+        {"force", no_argument, NULL, 'f'},
         {NULL, no_argument, NULL, 0}
     };
     int fd, ret;
@@ -95,6 +100,7 @@ int main(int argc, char *argv[])
     size_t len;
     struct stat st;
     int opt;
+    uint32_t ucode_flags = 0;
 
     xch = xc_interface_open(NULL, NULL, 0);
     if ( xch == NULL )
@@ -104,7 +110,7 @@ int main(int argc, char *argv[])
         exit(1);
     }
 
-    while ( (opt = getopt_long(argc, argv, "hs", options, NULL)) != -1 )
+    while ( (opt = getopt_long(argc, argv, "hsf", options, NULL)) != -1 )
     {
         switch ( opt )
         {
@@ -116,6 +122,9 @@ int main(int argc, char *argv[])
             show_curr_cpu(stdout);
             exit(EXIT_SUCCESS);
 
+        case 'f':
+            ucode_flags = XENPF_UCODE_FORCE;
+            break;
         default:
             goto ext_err;
         }
@@ -156,7 +165,7 @@ int main(int argc, char *argv[])
     }
 
     errno = 0;
-    ret = xc_microcode_update(xch, buf, len);
+    ret = xc_microcode_update(xch, buf, len, ucode_flags);
     if ( ret == -1 && errno == EEXIST )
         printf("Microcode already up to date\n");
     else if ( ret )
-- 
2.42.0



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:27:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:27:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764816.1175370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtpJ-0006j4-Tt; Thu, 25 Jul 2024 08:27:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764816.1175370; Thu, 25 Jul 2024 08:27: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 1sWtpJ-0006i0-NE; Thu, 25 Jul 2024 08:27:53 +0000
Received: by outflank-mailman (input) for mailman id 764816;
 Thu, 25 Jul 2024 08:27: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=D+J6=OZ=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sWtpJ-0006fy-19
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 08:27:53 +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 c888f67d-4a5f-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 10:27:52 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5a3458bf858so775042a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 01:27:51 -0700 (PDT)
Received: from fhilly.. ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac63590e7esm558590a12.36.2024.07.25.01.27.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 01: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: c888f67d-4a5f-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721896071; x=1722500871; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DlS1KhWcLxjYccvIIzbFt8aClNyV66/s1GUBwIQYHsI=;
        b=c7LMZXVi2We6MGyqpij+TBdQJk7Ssfl1yF05x8UM2JnRQbB10vWTA5y9DfvNhAYhw3
         4A7wjqzb1p10mGnjxIRQUqKQ1w7G129OjlM31Mz+97okFehlCzvbiLhff00o80rUCJzy
         BWQ4XQbt1lDQs7HaIgo9qW4cA+ipTq+Eayl+E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721896071; x=1722500871;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=DlS1KhWcLxjYccvIIzbFt8aClNyV66/s1GUBwIQYHsI=;
        b=U3+maFW335quJAVRpwXKdLop4fXmTj4v0KnoABD6WiYdd/V06UNoTpyMkw3JGHSN26
         tFBzNQNJn05lWh9w/KsowyK0jlbIgkh2I/OJKDKvZdvsSePC7rq6LAyOB3hS2eeJi2ab
         BMEvoOJeVSyWGL9WhdNzD5vVOyWqvIFFOPOt2QkuESN+XcvzqVKGhi6Vbn85ohAln0NQ
         LhCXjVUp3NcS4BisHaQ0T/uAOgIPpM1cOqGbqvcFnmcitUw8mvZbuJNBSg0Fxif9H0bR
         IargPItFeb2KbDNgOrKGHYYnvw6GDD1jMRXr7+biKrrVWg/Yf+XQBHQW5omXju8qSz84
         gcRA==
X-Gm-Message-State: AOJu0Yw3nymmaEkiige79tvhhL4O8WB6klI61Vu6aIW7riWr2zhqFEjx
	j+PUfms8hz3oPFLOzbq/KA7dP17ibVaL7lj0PyJVrSoRQNF2hxxo03hH2HO/9sjF+pZGh6N2CV/
	L
X-Google-Smtp-Source: AGHT+IGTV8Q1xjQCN4TbbuLHy7aECY3v2sqai8ntavveWfSOYmY+ZgnOp4IJHYABt/xKMKw2wpr6qg==
X-Received: by 2002:a50:d79b:0:b0:5a2:d411:89fa with SMTP id 4fb4d7f45d1cf-5ac6412964amr874373a12.36.1721896070978;
        Thu, 25 Jul 2024 01:27:50 -0700 (PDT)
From: Fouad Hilly <fouad.hilly@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Fouad Hilly <fouad.hilly@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 1/4] x86/ucode: Introduce XENPF_microcode_update2 with flags parameter
Date: Thu, 25 Jul 2024 09:27:22 +0100
Message-ID: <20240725082725.2685481-2-fouad.hilly@cloud.com>
X-Mailer: git-send-email 2.42.0
In-Reply-To: <20240725082725.2685481-1-fouad.hilly@cloud.com>
References: <20240725082725.2685481-1-fouad.hilly@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Refactor microcode_update() by adding flags field.
struct xenpf_microcode_update2 added with uint32_t flags field.
Introduce XENPF_microcode_update2 hypercall with flags field.

Signed-off-by: Fouad Hilly <fouad.hilly@cloud.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
[v6]
No change
[v5]
1- Update commit message to include the full name of XENPF_microcode_update2
[v4]
1- Commit message and description updated.
2- Changing the order of the patches.
[v3]
1- Updated Commit message description.
2- Revereted changes to a stable ABI and introduced a new struct.
3- ucode_force_flag updated from static to a local variable.
4- microcode_update() updated to reject unsupported flags yet.
[v2]
1- Update message description to highlight interface change.
2- Removed extra empty lines.
3- removed unnecessary define.
4- Corrected long lines.
5- Removed ternary operator.
6- Introduced static ucode_update_flags, which will be used later to determine local ucode_force_flag.
---
 xen/arch/x86/cpu/microcode/core.c    | 11 ++++++++---
 xen/arch/x86/include/asm/microcode.h |  3 ++-
 xen/arch/x86/platform_hypercall.c    | 13 ++++++++++++-
 xen/include/public/platform.h        | 14 ++++++++++++++
 4 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index e90055772acf..8a9e744489b9 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -40,6 +40,8 @@
 #include <asm/processor.h>
 #include <asm/setup.h>
 
+#include <public/platform.h>
+
 #include "private.h"
 
 /*
@@ -570,6 +572,7 @@ static int cf_check do_microcode_update(void *patch)
 }
 
 struct ucode_buf {
+    unsigned int flags;
     unsigned int len;
     char buffer[];
 };
@@ -708,13 +711,14 @@ static long cf_check microcode_update_helper(void *data)
     return ret;
 }
 
-int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
+int microcode_update(XEN_GUEST_HANDLE(const_void) buf,
+                     unsigned long len, unsigned int flags)
 {
     int ret;
     struct ucode_buf *buffer;
 
-    if ( len != (uint32_t)len )
-        return -E2BIG;
+    if ( flags & ~XENPF_UCODE_FORCE )
+        return -EINVAL;
 
     if ( !ucode_ops.apply_microcode )
         return -EINVAL;
@@ -730,6 +734,7 @@ int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
         return -EFAULT;
     }
     buffer->len = len;
+    buffer->flags = flags;
 
     /*
      * Always queue microcode_update_helper() on CPU0.  Most of the logic
diff --git a/xen/arch/x86/include/asm/microcode.h b/xen/arch/x86/include/asm/microcode.h
index 8f59b20b0289..57c08205d475 100644
--- a/xen/arch/x86/include/asm/microcode.h
+++ b/xen/arch/x86/include/asm/microcode.h
@@ -22,7 +22,8 @@ struct cpu_signature {
 DECLARE_PER_CPU(struct cpu_signature, cpu_sig);
 
 void microcode_set_module(unsigned int idx);
-int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len);
+int microcode_update(XEN_GUEST_HANDLE(const_void) buf,
+                     unsigned long len, unsigned int flags);
 int early_microcode_init(unsigned long *module_map,
                          const struct multiboot_info *mbi);
 int microcode_init_cache(unsigned long *module_map,
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 95467b88ab64..7e3278109300 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -311,7 +311,18 @@ ret_t do_platform_op(
 
         guest_from_compat_handle(data, op->u.microcode.data);
 
-        ret = microcode_update(data, op->u.microcode.length);
+        ret = microcode_update(data, op->u.microcode.length, 0);
+        break;
+    }
+
+    case XENPF_microcode_update2:
+    {
+        XEN_GUEST_HANDLE(const_void) data;
+
+        guest_from_compat_handle(data, op->u.microcode2.data);
+
+        ret = microcode_update(data, op->u.microcode2.length,
+                               op->u.microcode2.flags);
         break;
     }
 
diff --git a/xen/include/public/platform.h b/xen/include/public/platform.h
index 15777b541690..2725b8d1044f 100644
--- a/xen/include/public/platform.h
+++ b/xen/include/public/platform.h
@@ -624,6 +624,19 @@ struct xenpf_ucode_revision {
 typedef struct xenpf_ucode_revision xenpf_ucode_revision_t;
 DEFINE_XEN_GUEST_HANDLE(xenpf_ucode_revision_t);
 
+/* Hypercall to microcode_update with flags */
+#define XENPF_microcode_update2    66
+struct xenpf_microcode_update2 {
+    /* IN variables. */
+    uint32_t flags;                   /* Flags to be passed with ucode. */
+/* Force to skip microcode version check */
+#define XENPF_UCODE_FORCE           1
+    uint32_t length;                  /* Length of microcode data. */
+    XEN_GUEST_HANDLE(const_void) data;/* Pointer to microcode data */
+};
+typedef struct xenpf_microcode_update2 xenpf_microcode_update2_t;
+DEFINE_XEN_GUEST_HANDLE(xenpf_microcode_update2_t);
+
 /*
  * ` enum neg_errnoval
  * ` HYPERVISOR_platform_op(const struct xen_platform_op*);
@@ -656,6 +669,7 @@ struct xen_platform_op {
         xenpf_symdata_t               symdata;
         xenpf_dom0_console_t          dom0_console;
         xenpf_ucode_revision_t        ucode_revision;
+        xenpf_microcode_update2_t     microcode2;
         uint8_t                       pad[128];
     } u;
 };
-- 
2.42.0



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:27:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:27:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764815.1175363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtpJ-0006gH-Ji; Thu, 25 Jul 2024 08:27:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764815.1175363; Thu, 25 Jul 2024 08:27: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 1sWtpJ-0006gA-Gz; Thu, 25 Jul 2024 08:27:53 +0000
Received: by outflank-mailman (input) for mailman id 764815;
 Thu, 25 Jul 2024 08:27: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=D+J6=OZ=cloud.com=fouad.hilly@srs-se1.protection.inumbo.net>)
 id 1sWtpI-0006fy-CJ
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 08:27:52 +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 c8363221-4a5f-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 10:27:51 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5a3458bf858so775034a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 01:27:51 -0700 (PDT)
Received: from fhilly.. ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac63590e7esm558590a12.36.2024.07.25.01.27.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 01: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: c8363221-4a5f-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1721896071; x=1722500871; 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=m6yyfqqYk1ygVqha37CcbDMngpYzNkFAOOOxh/xLphk=;
        b=jvr0QO3Cmtt1hCTiaacb1OUjSwZzUmN9YotPOMB0UTYnioU6XC+wI9Th/HWql1pnLI
         5Lfn9ZdD5JpGnXsH0AYUfU8Pfk/84plKWf0CiDyBhkFBoit7EZHT1MkYSzmIMLAfht6K
         ssAdPltFVJFmcm8er6E0bUoqOe0cwZL0NXXUQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721896071; x=1722500871;
        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=m6yyfqqYk1ygVqha37CcbDMngpYzNkFAOOOxh/xLphk=;
        b=jc7DuGcJkT6o93zGNDY59fI9oXmcck8bDkIvJSld8HN/STQzyspmOHUwo4pxObCgKm
         RLqU4wRoB4LaI8S/fCP/V75fjw1ocknwMF7VNx9YFBjz8PapmhZAW+qjVcHE1PbFmS1W
         aUqQwu4jJrWaD1hrbHuQIA4tyFQlT6LctjMQsBn0BfSvafSIYo1nzXBizFAILDlkA+bA
         XZsm4VxdHCGRj+Wu7iTucYI+F1QE2bFVjHdkxb0Jtl4cDls05Q97PZg304v5zh2waydM
         nep4lOyb1geZuW6Tc+mkJrma7p0Eh8AdwPwbTRqxAx7C6M6VElZ6RotuDPvsc+zeOrZk
         rK8g==
X-Gm-Message-State: AOJu0YzMMe7F3BMdQDM99V2yaqM/y68Ye+R+w1w27Q5wbKY8A9KEBC5/
	jwLTrVH3Eg/774THCPcc2B8J/URaQLblBpKRxZ7aGNiOCalJTKgg6IN/qbaFv7Fl1xZFbrhewtW
	0
X-Google-Smtp-Source: AGHT+IHfHOw5mOk911ZxLplhb78R5Ce2nVBf65Td+k4xwlpbNu4GixbxfGHhJEIKFl0THVvurwNKtA==
X-Received: by 2002:a50:d71e:0:b0:5a3:64dc:33a5 with SMTP id 4fb4d7f45d1cf-5ac62906bc6mr846243a12.17.1721896070436;
        Thu, 25 Jul 2024 01:27:50 -0700 (PDT)
From: Fouad Hilly <fouad.hilly@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Fouad Hilly <fouad.hilly@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v6 0/4]  x86/xen-ucode: Introduce --force option
Date: Thu, 25 Jul 2024 09:27:21 +0100
Message-ID: <20240725082725.2685481-1-fouad.hilly@cloud.com>
X-Mailer: git-send-email 2.42.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Refactor and introduce --force option to xen-ucode, which skips microcode
version check when updating x86 CPU micocode. A new hypercall introduced
with flags field to facilitate the new option and allow for future flags
as needed.
This change is required to enable developers to load ucode that is the same version as the
one already loaded or downgrade for testing.

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

Fouad Hilly (4):
  x86/ucode: Introduce XENPF_microcode_update2 with flags parameter
  x86/ucode: refactor xen-ucode to utilize getopt
  x86/ucode: Introduce --force option to xen-ucode
  x86/ucode: Utilize ucode_force and remove opt_ucode_allow_same

 docs/misc/xen-command-line.pandoc    |  7 +-
 tools/include/xenctrl.h              |  3 +-
 tools/libs/ctrl/xc_misc.c            | 12 ++--
 tools/misc/xen-ucode.c               | 63 +++++++++++++++---
 xen/arch/x86/cpu/microcode/amd.c     |  8 ++-
 xen/arch/x86/cpu/microcode/core.c    | 99 +++++++++++++++++-----------
 xen/arch/x86/cpu/microcode/intel.c   |  9 ++-
 xen/arch/x86/cpu/microcode/private.h |  5 +-
 xen/arch/x86/include/asm/microcode.h |  3 +-
 xen/arch/x86/platform_hypercall.c    | 13 +++-
 xen/include/public/platform.h        | 14 ++++
 11 files changed, 167 insertions(+), 69 deletions(-)

-- 
2.42.0



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:37:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:37:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764853.1175413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtyk-0002Wf-V3; Thu, 25 Jul 2024 08:37:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764853.1175413; Thu, 25 Jul 2024 08:37:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWtyk-0002WY-SM; Thu, 25 Jul 2024 08:37:38 +0000
Received: by outflank-mailman (input) for mailman id 764853;
 Thu, 25 Jul 2024 08:37: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=/1nn=OZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWtyj-0002Qu-Nm
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 08:37:37 +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 24b87bb2-4a61-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 10:37:36 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a7a9cf7d3f3so33244266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 01:37: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-a7acad4160bsm47245766b.98.2024.07.25.01.37.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Jul 2024 01: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: 24b87bb2-4a61-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721896656; x=1722501456; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zaIrx7YHUpypK+qpBz60y/7w1fXeUC/TztAWP1g1ecM=;
        b=Fn7/9aY5Py7BTe/sDx1Es67HgcBnUynTOCJ3XpbU8KWBxI4xmTIJYb5VoRXAUriXsY
         GipOTN3nyRxhDA8o5AYLEqW9RC/fPZcI1k7q9huwE8ZxnFBIc5ADADt/o+bWTTqjj+sg
         5NL5ug12YRPOPKBnoQYhWqVgsBy2rjciCepmCnfrmVjacOvhjSqXS5rnrdQ5bp06xvMh
         /QaHTRVMAjYuWnwMc6lNr0OAi9SYHtRCjW8QOisYNWduJ+CIeZINmtkmehgpGOxE7/ef
         PtUlXxvx/cOkFePpwiQ2Ypa/SCsS94kdDRHuoJX0lYWJ3PTjkv/QLj8TyBt8uT0kvnjJ
         HmJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721896656; x=1722501456;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zaIrx7YHUpypK+qpBz60y/7w1fXeUC/TztAWP1g1ecM=;
        b=aehoVBte1RDNrfjuoM37wvubI7uuU+jxP/Fw9crPQghkIO5B29SLuTvja26qSkPLCl
         X87jAvX3tmOIw/sGnJPF6qJWhUcn64ruPHZ6npBASKJCTJLED22BRQe8CcJja+SZ/PI2
         eVIcfIWyt4iZlKo4IEa3u2wwAqTIHgwBqC8cdXSv6FueJJgXOTJ5VgW55dcsi9mgxR2I
         Hamk6R7SUQCeJh5HleBTezxfwb1Q3INNhh8bho9OW/AO3lUVKsWsiVQ+0icsZSYva+C+
         1BCX4hus1FdHQ3D/p5BjY75cVtyU5AdVTknjqUlneQE418Ru+MiqwvlYIKfxEM6vFx3b
         Q1UQ==
X-Forwarded-Encrypted: i=1; AJvYcCWprXoltcttgGPzjZYdhjK3dhPSpyCqlUQYWm/O1FdwNmzDSiLAwr6DLkunqK2UgG4nBvkc3iwZuPsChVNkWlApm2RGGbyqdz/Y1X3xnFc=
X-Gm-Message-State: AOJu0YxtifqvTFFgsf5mQ+jgDGB31/0H7qFieuPAoZ6mPzjkLC2DOPAc
	LRRUlcrvzOSigHekFDFaxfGo2d26y2gjuO4tTnepH8frP3hZ2P2w8ayoot7C6NA37YyP8jE/jCE
	=
X-Google-Smtp-Source: AGHT+IHykuXenWBb45vtWxcccZd4/vj2HyCQ/8AfQw4Ogpr4yB63sa5cZlLKYdtHhR+ZIGiils2QZA==
X-Received: by 2002:a17:907:7f86:b0:a77:e48d:bc3 with SMTP id a640c23a62f3a-a7ac4de3b26mr142936866b.19.1721896655654;
        Thu, 25 Jul 2024 01:37:35 -0700 (PDT)
Message-ID: <772e656a-8d03-47b3-884e-4aeeb48b1c0d@suse.com>
Date: Thu, 25 Jul 2024 10:37:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/4] x86/ucode: refactor xen-ucode to utilize getopt
To: Fouad Hilly <fouad.hilly@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20240725082725.2685481-1-fouad.hilly@cloud.com>
 <20240725082725.2685481-3-fouad.hilly@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240725082725.2685481-3-fouad.hilly@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.07.2024 10:27, Fouad Hilly wrote:
> @@ -71,12 +72,29 @@ static void show_curr_cpu(FILE *f)
>      }
>  }
>  
> +static void usage(FILE *stream, const char *name)
> +{
> +    fprintf(stream,
> +            "%s: Xen microcode updating tool\n"
> +            "options:\n"
> +            "  -h, --help            display this help\n"
> +            "  -s, --show-cpu-info   show CPU information\n"
> +            "Usage: %s [microcode file | options]\n", name, name);

You did see Anthony's comments on this before sending the new version,
didn't you? I agree with him (and I'm somewhat embarrassed that I didn't
notice this myself earlier on).

> @@ -146,4 +176,10 @@ int main(int argc, char *argv[])
>      close(fd);
>  
>      return 0;
> +
> + ext_err:
> +    fprintf(stderr,
> +            "%s: unable to process command line arguments\n", argv[0]);
> +    usage(stderr, argv[0]);
> +    exit(EXIT_FAILURE);
>  }

And there was a comment on this, too.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:41:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:41:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764859.1175423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWu2A-0003zP-Fa; Thu, 25 Jul 2024 08:41:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764859.1175423; Thu, 25 Jul 2024 08: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 1sWu2A-0003zI-BU; Thu, 25 Jul 2024 08:41:10 +0000
Received: by outflank-mailman (input) for mailman id 764859;
 Thu, 25 Jul 2024 08:41:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/1nn=OZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWu28-0003zC-RI
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 08:41:08 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a253c5ec-4a61-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 10:41:06 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-58f9874aeb4so717189a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 01:41: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
 a640c23a62f3a-a7acac60f14sm47927466b.91.2024.07.25.01.41.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Jul 2024 01:41: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: a253c5ec-4a61-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721896866; x=1722501666; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7Gak7R+79LwKvGqU9BLyAey2IZ5rU+hPjw4/obE8YM0=;
        b=QoO9g5pcBqKetNR+FW3FVtiGmJ/FcLnvjEMm27YNYZmxWvYQWuqm+bBLl1JcE5VMNb
         kVj+Px/q886vxMO6jZm8OVsDAMIL6dJT6R3QMERCsQhCBIT4ruEZkERtiRleFpn4YAfy
         KWsZ5Iegn2kKctD3jZjdFclOf7XDWGsLiMDzKvjyxHQS1QW+GteISsZpXU4QK8E/TsZ9
         M5cNVTKMwO4ErnD9oH7KpYMSMuOE0HpmcNnA6D/iOCqq7zkfO7jsmCng+Ogzp0Y9eMN4
         87p5oGwTTHv2QLDycXb25uCz+iYurQD2FYiS2ryhf77heCd2vvMGWyWKMIsk7zeck/+H
         Ingg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721896866; x=1722501666;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7Gak7R+79LwKvGqU9BLyAey2IZ5rU+hPjw4/obE8YM0=;
        b=F741unfaM7xRROHCfgHli0o8YedK/RLWgALSYythVsvr3JyhgBvYPi6qeiDwK8cBa2
         fKmfgt/wCuUJuYzeaBenAsp4clxvxgIcqswDXJx4PZRvthEoJTkp4EtXRmo86aoKYZ0J
         USzwSe08XluAalgu1PX1Dr9tswGlL+K9MhCYO5qtP0DZae7yr+UkMUrOpszCPlkaYnk7
         tTiNir6Jx4OcrzFWFVitgxty4eufHBr/8ogtMmBuOqZCCsO4cVjDIVn7EJkAzPR4tvY/
         ZHAEyJHUZnL5hqkUUKd5uhqo0iTQ/torUGpa0kM95AliIRM0689UM+9JVSm+V3ySFvfJ
         axZg==
X-Forwarded-Encrypted: i=1; AJvYcCXLYPcUBdCVClUM4u7XfmwmM5LmWN/p54l7lp7Q9hdA1PEZ5D1Mxty7J+ESlAGGRbhRAjslH7wPS0rHWhKikBOoyGc50m0uzvoiLc6KnzE=
X-Gm-Message-State: AOJu0YyUcxLJKJfTOpj7GPdto0irSHWjabUmwKTK5aGu7/0k0J4p5cs6
	j03b+vT25R1eWgV/vrl/gcvTrJOCOWstahelB665cvCHuuijkppE1uL0GWwJHML+gCEKaEYqVaw
	=
X-Google-Smtp-Source: AGHT+IGR1AXm6/WAd3SPeKz5cV/bEopuuQ69EMO0jnPt2A57LVAoXLWZ0SkgqAwfzjAs5StCVFAljg==
X-Received: by 2002:a17:907:845:b0:a7a:a46e:dc37 with SMTP id a640c23a62f3a-a7acb92ebd4mr89483066b.57.1721896866367;
        Thu, 25 Jul 2024 01:41:06 -0700 (PDT)
Message-ID: <e2d2244d-66ac-46bd-b047-044c9860c955@suse.com>
Date: Thu, 25 Jul 2024 10:41:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/4] x86/ucode: refactor xen-ucode to utilize getopt
To: Fouad Hilly <fouad.hilly@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20240725082725.2685481-1-fouad.hilly@cloud.com>
 <20240725082725.2685481-3-fouad.hilly@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240725082725.2685481-3-fouad.hilly@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.07.2024 10:27, Fouad Hilly wrote:
> @@ -71,12 +72,29 @@ static void show_curr_cpu(FILE *f)
>      }
>  }
>  
> +static void usage(FILE *stream, const char *name)
> +{
> +    fprintf(stream,
> +            "%s: Xen microcode updating tool\n"
> +            "options:\n"
> +            "  -h, --help            display this help\n"
> +            "  -s, --show-cpu-info   show CPU information\n"
> +            "Usage: %s [microcode file | options]\n", name, name);

Oh, and: While I gave this precise layout as an outline, it wasn't really
meant to be used literally. Note how "microcode" and "file" now suggest
there need to be two separate command line elements. Perhaps using
"microcode-file" instead may already make this less ambiguous.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 08:44:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 08:44:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764864.1175433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWu5V-0004Z8-TV; Thu, 25 Jul 2024 08:44:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764864.1175433; Thu, 25 Jul 2024 08: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 1sWu5V-0004Z1-Qa; Thu, 25 Jul 2024 08:44:37 +0000
Received: by outflank-mailman (input) for mailman id 764864;
 Thu, 25 Jul 2024 08:44: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=/1nn=OZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWu5U-0004Ys-Bq
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 08:44: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 1e0244a4-4a62-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 10:44:34 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7ac469e4c4so52292966b.0
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 01:44: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-a7acad90e34sm47721866b.164.2024.07.25.01.44.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Jul 2024 01:44: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: 1e0244a4-4a62-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721897074; x=1722501874; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+RyqYk1s5dADHCQYvpaZbng6pCvpWh0WeQEqgzEk/sE=;
        b=Y/Ynjmm+hkBynizqrkfiNY6p29j7Wbh1agqzGmMJ1vhatMIxBKd4SaKSVGpKQ3e14R
         55EZGoNyAzG4ysNLKzlKyhml1m6carkwKmJK4ln+YThwjJgzeorb2koC9XbdsRWKmva5
         aWozchzp4ALU+laTqRNdKSD3rqOTuuf/8HE0dUJOohunmJAn7FQcHXSEcvHJIhfOf9cB
         U21sTFcdPGva6XQsmAUsKmkbIoPNUpKef6aYvEDxZnMgCwGIQwHijnJrM4VQVFzuQUSf
         5TZfm4u5q9aMJgrH/UciV5JclFeZuyOxyPnzH2M+9lMq9DEK7G8WEzh5cCUGi/ocpKYd
         hy4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721897074; x=1722501874;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+RyqYk1s5dADHCQYvpaZbng6pCvpWh0WeQEqgzEk/sE=;
        b=MU+mzA5weP0e3o7HhG0ZJLCGvwK2PKMzCMhHaKkeLXXQU1HC8/I6CuF77C2kXilG7g
         qt+n1/bbkCp+yFVqjsmTyyeK+2/eWGvtT7z1tEv4pUVbAySMnFtfamHkK+brQq4/fHsY
         +4m6VrQfVGDRjdh/RjS0cyPQbkidftF9ypVo4+JtOgq+Qm1z0xJGhgDhkopNzGQ3kY6F
         Ghyp6qJYrXJreLYKjhckwJ/JXtYK44bn9Ymtx5W6GK1m0vuXbKq49vNNztVxHkyUVAOH
         Esg8SHIIcV9JvNampJzBAxG9ag35tS5+Sy6gE2aQT5sxu2ufk/aR6pjHPr4Yj7gszEyt
         6Eug==
X-Forwarded-Encrypted: i=1; AJvYcCU8T32vp+CeJ9DI1qLpEqSJnYjFPtfnJHPqKDIJPeJ6ZK7Hykqy144uVaZDPQuZMOV6spgfGQOSb+5cQx51dINhubKMuHret+4SlvpR6cw=
X-Gm-Message-State: AOJu0YyChQbXLch+zkLIIeVhcsSdq8jwDAmRJ2dO+JEYRu4jyDZ7vDPk
	4vGE7yIttCKnN2rHavHWZ5730N1pGeePE6Ap2YXz4QamLk56KvIuIpkKnD+bRg==
X-Google-Smtp-Source: AGHT+IFUMONjJKXJ42LgrHlhWx9iHUWD65l4AQgEdzUm9aLTgNpmvBJWd2Sk3I2jq7vsR39T7ZGZuw==
X-Received: by 2002:a17:907:3d9e:b0:a6f:e03a:99d with SMTP id a640c23a62f3a-a7ab27c1feamr453949966b.0.1721897073826;
        Thu, 25 Jul 2024 01:44:33 -0700 (PDT)
Message-ID: <d26bc29f-3ceb-4fe4-af58-c188f9bbf097@suse.com>
Date: Thu, 25 Jul 2024 10:44:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 3/4] x86/ucode: Introduce --force option to xen-ucode
To: Fouad Hilly <fouad.hilly@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20240725082725.2685481-1-fouad.hilly@cloud.com>
 <20240725082725.2685481-4-fouad.hilly@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240725082725.2685481-4-fouad.hilly@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.07.2024 10:27, Fouad Hilly wrote:
> Introduce --force option to xen-ucode to force skipping microcode version check, which
> allows the user to update x86 microcode even if both versions are the same or downgrade.
> xc_microcode_update() refactored to accept flags and utilize xenpf_microcode_update2.
> 
> Signed-off-by: Fouad Hilly <fouad.hilly@cloud.com>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> [v6]
> 1- Fix usage() output for -f option to be explicitly wrapped for 80 character width
> [v5]
> 1- Update commit message.
> 2- Re-phrase --force option description.
> [v4]
> 1- Add --force to xen-ucode options.
> 2- Update xc_microcode_update() to accept and handle flags.
> ---
>  tools/include/xenctrl.h   |  3 ++-
>  tools/libs/ctrl/xc_misc.c | 12 +++++++-----
>  tools/misc/xen-ucode.c    | 15 ++++++++++++---
>  3 files changed, 21 insertions(+), 9 deletions(-)
> 
> diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
> index 9ceca0cffc2f..2c4608c09ab0 100644
> --- a/tools/include/xenctrl.h
> +++ b/tools/include/xenctrl.h
> @@ -1171,7 +1171,8 @@ typedef uint32_t xc_node_to_node_dist_t;
>  int xc_physinfo(xc_interface *xch, xc_physinfo_t *info);
>  int xc_cputopoinfo(xc_interface *xch, unsigned *max_cpus,
>                     xc_cputopo_t *cputopo);
> -int xc_microcode_update(xc_interface *xch, const void *buf, size_t len);
> +int xc_microcode_update(xc_interface *xch, const void *buf,
> +                        size_t len, unsigned int flags);
>  int xc_get_cpu_version(xc_interface *xch, struct xenpf_pcpu_version *cpu_ver);
>  int xc_get_ucode_revision(xc_interface *xch,
>                            struct xenpf_ucode_revision *ucode_rev);
> diff --git a/tools/libs/ctrl/xc_misc.c b/tools/libs/ctrl/xc_misc.c
> index 50282fd60dcc..6a60216bda03 100644
> --- a/tools/libs/ctrl/xc_misc.c
> +++ b/tools/libs/ctrl/xc_misc.c
> @@ -203,11 +203,12 @@ int xc_physinfo(xc_interface *xch,
>      return 0;
>  }
>  
> -int xc_microcode_update(xc_interface *xch, const void *buf, size_t len)
> +int xc_microcode_update(xc_interface *xch, const void *buf,
> +                        size_t len, unsigned int flags)
>  {
>      int ret;
>      struct xen_platform_op platform_op = {};
> -    DECLARE_HYPERCALL_BUFFER(struct xenpf_microcode_update, uc);
> +    DECLARE_HYPERCALL_BUFFER(struct xenpf_microcode_update2, uc);
>  
>      uc = xc_hypercall_buffer_alloc(xch, uc, len);
>      if ( uc == NULL )
> @@ -215,9 +216,10 @@ int xc_microcode_update(xc_interface *xch, const void *buf, size_t len)
>  
>      memcpy(uc, buf, len);
>  
> -    platform_op.cmd = XENPF_microcode_update;
> -    platform_op.u.microcode.length = len;
> -    set_xen_guest_handle(platform_op.u.microcode.data, uc);
> +    platform_op.cmd = XENPF_microcode_update2;
> +    platform_op.u.microcode2.length = len;
> +    platform_op.u.microcode2.flags = flags;
> +    set_xen_guest_handle(platform_op.u.microcode2.data, uc);
>  
>      ret = do_platform_op(xch, &platform_op);
>  
> diff --git a/tools/misc/xen-ucode.c b/tools/misc/xen-ucode.c
> index 2c9f337b86cb..688e540943b1 100644
> --- a/tools/misc/xen-ucode.c
> +++ b/tools/misc/xen-ucode.c
> @@ -13,6 +13,8 @@
>  #include <xenctrl.h>
>  #include <getopt.h>
>  
> +#include <xen/platform.h>
> +
>  static xc_interface *xch;
>  
>  static const char intel_id[] = "GenuineIntel";
> @@ -79,7 +81,9 @@ static void usage(FILE *stream, const char *name)
>              "options:\n"
>              "  -h, --help            display this help\n"
>              "  -s, --show-cpu-info   show CPU information\n"
> -            "Usage: %s [microcode file | options]\n", name, name);
> +            "  -f, --force           skip certain checks; do not use unless\n"
> +            "you know exactly what you are doing\n"

Did you look at the produced output? Imo you want to have

            "  -f, --force           skip certain checks; do not use unless\n"
            "                        you know exactly what you are doing\n"

> +            "Usage: %s [microcode file [-f,--force] | options]\n", name, name);

At least

            "Usage: %s [microcode file [-f|--force] | options]\n", name, name);

But: "options" now includes -f / --force, yet that on its own makes no sense.
I think this needs further textual clarification to properly indicate what is
valid to use and what is not.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 09:13:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 09:13:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764874.1175443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWuXK-0001AZ-UN; Thu, 25 Jul 2024 09:13:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764874.1175443; Thu, 25 Jul 2024 09: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 1sWuXK-0001AS-R9; Thu, 25 Jul 2024 09:13:22 +0000
Received: by outflank-mailman (input) for mailman id 764874;
 Thu, 25 Jul 2024 09:13:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/jnY=OZ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sWuXK-0001AM-EV
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 09:13:22 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 234a318e-4a66-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 11:13:21 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5a88be88a3aso850029a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 02:13:21 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acadb98a2sm49682166b.217.2024.07.25.02.13.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Jul 2024 02:13: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: 234a318e-4a66-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721898801; x=1722503601; 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=xbOh1YnLRGUof5jIdg/YaLDXWdX8IKsWKWEs5XtNUCY=;
        b=MQdkdCTWw307vgLLjc56GPiwxrwBTT8ofe1vSijyvSOFk6qIHMPU6OSadKfvoMtUJS
         0HViZGag2e2XzB/MgQUpQW1kWD591PY53FBqZuDzPG6sUJxPIyIBFxv1eaHC0jrTvyY8
         30Z9NZCIxGmVWAJ2l+jSeeo8dSqx/9682iIcIb/wArVPaXA86aj+DDg8B0Jvsk5MuqK2
         0S6APIJTRi5y3f2ptovjNWmMN8rXD/2zlop4k0rBB/KMS2gooohtK+oqgsxV/0aWyWyI
         CI2slu/Vsxlgsj3+xNSO05nS8La3+91KgvZ6047ZXXL/2kjwOho7l7r8V3N0naf+pRX5
         p8wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721898801; x=1722503601;
        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=xbOh1YnLRGUof5jIdg/YaLDXWdX8IKsWKWEs5XtNUCY=;
        b=mHH9hL6sgYtHsQ6XR9m3v9dzyO8aZ2xif96nnpd/LIpD/zd8v8csclWaIP+eDhiYUN
         eTcQMYjWbmAAo7wa2zeqy+ap9CvHNdoC3eYWLNgiazEt4TStsZSBUUiZLRmIl+U7TuWn
         A2omJ64XeVwXd818Y4+LiwdYT7TWAWWTv+64T8PiL67ULCOm4hBWT05lJvDcK7cwl5uz
         dISrw4coHlToTD6ueGvsDExcvx2LOwEnoTxkGtRG98iDW+uDizcnLxX+0JC3ECue+RnP
         f8FnrxpsHUAZZmjBQechkSHrvvm2p22PAyq8UAeHzm3Hn4AW4AnncHwaGlYrQWqcjssC
         XlaQ==
X-Gm-Message-State: AOJu0YyExXRtSytqyuwaWh89tlHOUXysLf77wkAkS1lLytI2paoExxai
	5ylg1cawsdGxcscwzBXPoEx5OtCYCFp+5MJEND6KxngeYwmwU01f8mO7aZlfAM8=
X-Google-Smtp-Source: AGHT+IHxmwgcPOVP7EAaplSEN4sDlAIuvKhcJZrN3BNDqOUMOcNM4PXGUk94TQFdyWJlKa2+KaDWzQ==
X-Received: by 2002:a17:906:c145:b0:a7a:a138:dbc5 with SMTP id a640c23a62f3a-a7acb97172bmr106298066b.65.1721898800661;
        Thu, 25 Jul 2024 02:13:20 -0700 (PDT)
Message-ID: <036855d4-b1d4-444b-92d6-84376ecdffb8@suse.com>
Date: Thu, 25 Jul 2024 11:13:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/xen: fix memblock_reserve() usage on PVH
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@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>
References: <20240725073116.14626-1-roger.pau@citrix.com>
 <20240725073116.14626-3-roger.pau@citrix.com>
 <a249e651-a2a1-4ea9-b262-0d04a8abaf0e@suse.com> <ZqIIgc9xj6wmDJtE@macbook>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <ZqIIgc9xj6wmDJtE@macbook>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 25.07.24 10:10, Roger Pau Monné wrote:
> On Thu, Jul 25, 2024 at 10:01:17AM +0200, Jürgen Groß wrote:
>> On 25.07.24 09:31, Roger Pau Monne wrote:
>>> The current usage of memblock_reserve() in init_pvh_bootparams() is done before
>>> the .bss is zeroed, and that used to be fine when
>>> memblock_reserved_init_regions implicitly ended up in the .meminit.data
>>> section.  However after commit 73db3abdca58c memblock_reserved_init_regions
>>> ends up in the .bss section, thus breaking it's usage before the .bss is
>>> cleared.
>>>
>>> Move and rename the call to xen_reserve_extra_memory() so it's done in the
>>> x86_init.oem.arch_setup hook, which gets executed after the .bss has been
>>> zeroed, but before calling e820__memory_setup().
>>>
>>> Fixes: 38620fc4e893 ('x86/xen: attempt to inflate the memory balloon on PVH')
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>> ---
>>> While the commit that introduced the user-noticeable regression is
>>> 73db3abdca58c, I think 38620fc4e893 should have been more careful to not
>>> initialize the memblock ranges ahead of the .bss zeroing.
>>
>> Reviewed-by: Juergen Gross <jgross@suse.com>
>>
>> I'd prefer using 73db3abdca58c for the fixes tag. Otherwise you'd need to
>> add this patch to the stable branches, too, which is technically not really
>> needed.
>>
>> Additionally I'd like to drop the Fixes: tag from the prereq patch, as this
>> one doesn't really fix anything.
>>
>> I can do both while committing.
> 
> I was unsure myself (as noted in the post-commit notes) about which
> "Fixes:" tag to use.
> 
> Is there anyway that it can be noted that this commit depends on the
> previous change also being present?  For backport reasons, if anyone
> ends up backporting 73db3abdca58c it would also need to pick the two
> patches here.

This is normal business of backporting. This patch added to a stable kernel
would at least result in a build failure. The person doing the backport could
it either fixup locally in the backported patch, or look which patch did setup
the source to make this patch work.


Juergen



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 09:26:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 09:26:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764886.1175452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWuk8-0003IR-3z; Thu, 25 Jul 2024 09:26:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764886.1175452; Thu, 25 Jul 2024 09:26:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWuk8-0003IK-0p; Thu, 25 Jul 2024 09:26:36 +0000
Received: by outflank-mailman (input) for mailman id 764886;
 Thu, 25 Jul 2024 09:26: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=/1nn=OZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWuk7-0003H4-3H
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 09:26:35 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fbe45370-4a67-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 11:26:34 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5a22f09d976so3105574a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 02:26: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-a7acab23704sm52494266b.3.2024.07.25.02.26.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Jul 2024 02:26: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: fbe45370-4a67-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721899593; x=1722504393; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vrKoZlQWrKJ4ZNG6GJimcEMPC3rmfVGwlDySbp2Xgig=;
        b=B04aOntqYFq0nNS9w1RGgmhBwn5XIc94+tn6gYxILr1hYLmDERCyD4Z6Jb1wIlwC4E
         8ga8VCbAIRD2IDL1F9CK+vGxl0bupHmbPtaGRAEg7gf5aYiL8Y6JzHHlRjU3Uvyu5eLP
         JqRwb4IYdhD8mW2fazmmiLXsStoYKMRq7w5a1TE9XYuzE3HrQyW3EtmU5OHghk6nr7jV
         P6PJd7RSYOhfAlVa1p2QKQw6EWfPpJjSaG4x3hk+r1ciVud8dzUSaVg5aD/6jbgKO42a
         t+uvvyQzKIJWEYct9qABVVos29vNCoGUt2TOlx1jyE8lTE5h2+4fIKrMRo5CzVdFpaYY
         ur7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721899593; x=1722504393;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vrKoZlQWrKJ4ZNG6GJimcEMPC3rmfVGwlDySbp2Xgig=;
        b=RsG1xWMCldKuVz1I415zaw1qMeS6uWvn/eesxYbpZyHYNgDNQANL/Fst8mWwKjeg0u
         cqf9zd+MALp3M3v7Y+oUxKmNSBoc8fGBIppfkScuKi4n6CU608aKmy9B57XEVDmo3RcT
         9TFfTFGCJIJNtvkkKi0vLjcRS1rzUu84+T4pouhBb/7G8gnBiyrAEeZtDirqa6rBlRX/
         SE2stdCEymJIJ5Pj6SsDIqjz1QbxqC3DSVQsCTLxQ/bm8cyD1HFHNlV8inyErgdrDrBj
         xxbzB84/x/iJfmVE/MyKVP/YH1Iv/CybELEMqZPJLmpKW1tiGA4p1NBrUZlEd+Jx8Qmq
         NYpg==
X-Forwarded-Encrypted: i=1; AJvYcCW79Ft156eEhymn+OnF/Qf/NISM/YZG3eNOkmCPZPCc098K5rUdouPTQUeBsHudxjKM+p0UzLbYec6wOcyC3FN/Ddx1gghyf1zEElqYjr4=
X-Gm-Message-State: AOJu0YySne5QcDW1SbdGAEqiZBNACCvri28CZjjAaGMAFZDtZWiNDFph
	bRmLI37n2klNtOKfaJRpzFEHz9FVs99FMb17NfceFWGX1/LaJyLr83u0Q1PvoA==
X-Google-Smtp-Source: AGHT+IFJv0zBeXKluJDR88ArbTGz73U2lP//S71kp1O41735aGelOW8Q9zsHFvydutyn+qUzhyBWlg==
X-Received: by 2002:a17:907:7244:b0:a77:c051:36a9 with SMTP id a640c23a62f3a-a7ac44e144amr265540066b.9.1721899593550;
        Thu, 25 Jul 2024 02:26:33 -0700 (PDT)
Message-ID: <7588feb4-dc42-4bf3-85db-7aaac201a2ff@suse.com>
Date: Thu, 25 Jul 2024 11:26:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] x86/mm: add API for marking only part of a MMIO
 page read only
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>,
 xen-devel@lists.xenproject.org
References: <cover.66bd16d0134f9664ea3e0f4d56f7c127afc308c8.1721704980.git-series.marmarek@invisiblethingslab.com>
 <4bea5034cda37f35cd04115bebcccb52e3ea719e.1721704980.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: <4bea5034cda37f35cd04115bebcccb52e3ea719e.1721704980.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.07.2024 05:24, Marek Marczykowski-Górecki wrote:
> +static int __init subpage_mmio_ro_add_page(
> +    mfn_t mfn,
> +    unsigned int offset_s,
> +    unsigned int offset_e)
> +{
> +    struct subpage_ro_range *entry = NULL;
> +    bool new_entry = false;
> +    unsigned int i;
> +
> +    entry = subpage_mmio_find_page(mfn);
> +    if ( !entry )
> +    {
> +        entry = xzalloc(struct subpage_ro_range);
> +        if ( !entry )
> +            return -ENOMEM;
> +        entry->mfn = mfn;
> +        list_add(&entry->list, &subpage_ro_ranges);
> +        new_entry = true;
> +    }
> +
> +    for ( i = offset_s; i <= offset_e; i += MMIO_RO_SUBPAGE_GRAN )
> +    {
> +        bool oldbit = __test_and_set_bit(i / MMIO_RO_SUBPAGE_GRAN,
> +                                         entry->ro_elems);
> +        ASSERT(!oldbit);
> +    }
> +
> +    return new_entry ? 0 : 1;

Imo simply !new_entry would be more concise.

> +int __init subpage_mmio_ro_add(
> +    paddr_t start,
> +    size_t size)
> +{
> +    mfn_t mfn_start = maddr_to_mfn(start);
> +    paddr_t end = start + size - 1;
> +    mfn_t mfn_end = maddr_to_mfn(end);
> +    unsigned int offset_end = 0;
> +    int rc;
> +    bool subpage_start, subpage_end;
> +
> +    /*
> +     * In release, build unaligned start will protect larger area,

I think the first comma wants to move past "build".

> +     * so tolerate it.
> +     * But unaligned size would result in smaller area, so deny it.
> +     */
> +    ASSERT(IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN));
> +    ASSERT(IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN));
> +    if ( !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
> +        return -EINVAL;

I hoped you would, when adding the comment, recall an earlier comment of
mine: If you want to tolerate mis-aligned start in release builds, you
need to make further adjustments to the subsequent logic (at which
point the respective assertion may become pointless); see below. While
things may work okay without (I didn't fully convince myself either way),
the main point here is that you want to make sure we test in debug builds
what's actually used in release one. Hence subtleties like this would
better be dealt with uniformly between release and debug builds.

> +    if ( !size )
> +        return 0;
> +
> +    if ( mfn_eq(mfn_start, mfn_end) )
> +    {
> +        /* Both starting and ending parts handled at once */
> +        subpage_start = PAGE_OFFSET(start) || PAGE_OFFSET(end) != PAGE_SIZE - 1;
> +        subpage_end = false;
> +    }
> +    else
> +    {
> +        subpage_start = PAGE_OFFSET(start);
> +        subpage_end = PAGE_OFFSET(end) != PAGE_SIZE - 1;
> +    }

Neither of the two subpage_start calculations is correct when start is
misaligned, but within the first 8 bytes of a page.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 09:57:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 09:57:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764901.1175462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWvDc-0007pS-DT; Thu, 25 Jul 2024 09:57:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764901.1175462; Thu, 25 Jul 2024 09:57:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWvDc-0007pL-Aj; Thu, 25 Jul 2024 09:57:04 +0000
Received: by outflank-mailman (input) for mailman id 764901;
 Thu, 25 Jul 2024 09:57:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/1nn=OZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWvDa-0007pF-Tj
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 09:57: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 3d308334-4a6c-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 11:57:01 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a77ec5d3b0dso35906366b.0
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 02:57: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-a7acad903f1sm54617466b.152.2024.07.25.02.57.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Jul 2024 02:57: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: 3d308334-4a6c-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721901421; x=1722506221; 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=Voik6myG6U2fsby5AJZEMgOr4NbzqfMzJUWbvCxCJJU=;
        b=AbPRWUrhZllaztGnqEqjfMZXOQezghNFClUuORuxczbfNAP3qASiC7JVUa039WJkNv
         kDWFmTBYQTy4Qv/6CjActzSKrn43tlfjMU45lTs3kPZvNyVKmzQTn8ptgP4L6BUj2/nW
         5TBshxJUeAdq69zAFh+N489d5BShuTILfAVZ3+p7154/5Xn2PgZFRB7r1+JPSFQ3ejYa
         2/u6TuOcpz41+IagnGDyKYIvusvZq3WIXMjbSAPmdtQng3gUnS4Wgf6faEhWqBqRd6ks
         6keBHuGpTuUn3DXzE3qrOnZSsMdJJcfYM+zdJl3ajM4Z8H8mghGbk7YvyAsQ6tiOABaj
         8yKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721901421; x=1722506221;
        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=Voik6myG6U2fsby5AJZEMgOr4NbzqfMzJUWbvCxCJJU=;
        b=DOe1GeQemfa1vz2gm5YUhbER2XqkcUqsJab1OFOVeNjsqXkiBXg/OVNvOZlmzunzJa
         m0L2c91agWXgyH25jiGVN2Ahq9Sq8eKfH3VgSwcfuSifp8UpbQZM/MBkrkRyh4TgIgyi
         RTeUQkQIPCmxA1IrOXqWCqEltEOz/kVdMSyXWCYQ7wWzugfPQliCrzhI5WIdu0AxWxuZ
         8nzmTZff4QJiq3U77zyJ41Ni8jvj4MySDqDewdjohXMp7tjnSD0VdTjRzVw4Rh0xVmhA
         g9xna2gSIrqOMSeFsyU3btkjiz6HLLviN2aTxuCSNOalVMbzzK4hhlNE5XJo34jlIlVc
         NqmA==
X-Gm-Message-State: AOJu0YxAiQH9LB84wpzUlNdJ/BzL2GjLAa6VGeLEg44YQcgxYBu1QlJ7
	ZkRuH2rdt1JJPdgbjFfHVleBGadDFylJcInbOyEdqns6m8Yehm0n+cHlvq3eQNQtR/nGC8ky5fA
	=
X-Google-Smtp-Source: AGHT+IG+W2YA5eb7XNkNUSgP0Hgv+JtsrKpr8VIXK4WblVKGUZ+F/jr66nv6OUe8bp48wO9+e3ncWw==
X-Received: by 2002:a17:907:98b:b0:a77:cbe5:413f with SMTP id a640c23a62f3a-a7acb3d6a15mr98139266b.4.1721901421161;
        Thu, 25 Jul 2024 02:57:01 -0700 (PDT)
Message-ID: <bd43ad1f-9cc4-42a4-8461-c8e3990b6910@suse.com>
Date: Thu, 25 Jul 2024 11:56:59 +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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] gnttab: complete compat [gs]et-version logic
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

While the CHECK_* macro invocations exist for these, the just-in-case
CASE() invocations were missing for them.

Fixes: a98dc13703e0 ("Introduce a grant_entry_v2 structure")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Alternatively, as I'm under the impression Andrew would prefer it, we
could decide to drop all of these fallback #ifndef blocks.

--- a/xen/common/compat/grant_table.c
+++ b/xen/common/compat/grant_table.c
@@ -118,10 +118,18 @@ int (compat_grant_table_op)(
     CASE(dump_table);
 #endif
 
+#ifndef CHECK_gnttab_set_version
+    CASE(set_version);
+#endif
+
 #ifndef CHECK_gnttab_get_status_frames
     CASE(get_status_frames);
 #endif
 
+#ifndef CHECK_gnttab_get_version
+    CASE(get_version);
+#endif
+
 #ifndef CHECK_gnttab_swap_grant_ref
     CASE(swap_grant_ref);
 #endif


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 10:54:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 10:54:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764916.1175473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWw6z-0006ko-En; Thu, 25 Jul 2024 10:54:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764916.1175473; Thu, 25 Jul 2024 10:54: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 1sWw6z-0006kh-Ax; Thu, 25 Jul 2024 10:54:17 +0000
Received: by outflank-mailman (input) for mailman id 764916;
 Thu, 25 Jul 2024 10:54:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWw6x-0006kX-K2; Thu, 25 Jul 2024 10:54:15 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWw6x-0004F9-Cr; Thu, 25 Jul 2024 10:54:15 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWw6w-0001m7-Tp; Thu, 25 Jul 2024 10:54:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWw6w-00086U-Sw; Thu, 25 Jul 2024 10:54:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Wk3/F9lQ8dHNiymDTcombB9jhVTjDz7VhRfjX4j6p7M=; b=jfgn2Q4cnu9QlXnbio+nlfFwQ9
	EvOp2N/TOzE9C/FPGkEhpseNZJqnAU7dB2BH2aDvyDu3KDpohczT0kHmV254003GvGRM7A6QcZS+a
	5FTRA1oGrByP0vCCwhDywZNi/cByLP8bBwh+OPvLm2p6xaYoOkDXoTVZKAsEbBtX6tm8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186989-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 186989: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c33ffdb70cc6df4105160f991288e7d2567d7ffa
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 10:54:14 +0000

flight 186989 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186989/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel  8 xen-boot            fail REGR. vs. 186827
 test-amd64-amd64-dom0pvh-xl-amd  8 xen-boot              fail REGR. vs. 186827
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                c33ffdb70cc6df4105160f991288e7d2567d7ffa
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    8 days
Failing since        186925  2024-07-20 09:44:52 Z    5 days   11 attempts
Testing same since   186989  2024-07-24 20:42:49 Z    0 days    1 attempts

------------------------------------------------------------
1872 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 209256 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 10:56:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 10:56:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764927.1175483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWw9T-0007SP-VV; Thu, 25 Jul 2024 10:56:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764927.1175483; Thu, 25 Jul 2024 10: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 1sWw9T-0007SI-SM; Thu, 25 Jul 2024 10:56:51 +0000
Received: by outflank-mailman (input) for mailman id 764927;
 Thu, 25 Jul 2024 10:56: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=KwaG=OZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWw9T-0007SA-44
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 10:56:51 +0000
Received: from mail-vs1-xe30.google.com (mail-vs1-xe30.google.com
 [2607:f8b0:4864:20::e30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9777b53c-4a74-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 12:56:50 +0200 (CEST)
Received: by mail-vs1-xe30.google.com with SMTP id
 ada2fe7eead31-4929fa64542so262962137.3
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 03:56:49 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d74463besm65800285a.101.2024.07.25.03.56.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 03: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: 9777b53c-4a74-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721905007; x=1722509807; 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=qnf1lnF4sJueMmlYsMrsZCaaFDpgQH1yHy/fTvyC3oE=;
        b=Y5O7k2CUqxHUFdQj0z+kTw6mhc+pcEEWGAMU51uJ7my/Fnhnd8/X0w1h3WCDxPGXlC
         uzveSP0H6wV8G3KtncOinAxdbRfirO0TbT+mybdweqJEsxWddJXnnuwRTxtzAWRfsb9X
         8AbKaRYfNO4VWAOs/nYNFLlxxzDSQHD9e/tLE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721905007; x=1722509807;
        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=qnf1lnF4sJueMmlYsMrsZCaaFDpgQH1yHy/fTvyC3oE=;
        b=nLJg2ijkTD7tjqkaZz+NMC1tSvG5idcjzFapGdvFljWGKf06g0M7O/6hyTtqxJ7ecv
         CIaye8HX7pWoygEdyXrJ7eD2k4Wp1CpezEzyWm/ufbuhPjHejID/JI53Zj9ccjbvhsF3
         PGQqDdwGphwf5BJMsMhRXpp8PK9AVc3bMfLkpGAMRdV2ugwxCCriaxeu9vhAsr0FSd5P
         k45VnM13/DJzyUiknysQIpDeLe5YOrRT8LuxYO5oIESVY935lIhl8SOFg9rREOImYpb2
         O3QQmdAAD7id42gmJSHbzm0fODMeT2j1lUdVrJHdjNb2QIX7sl+7MsRXY1NJCnHFj2TA
         A0LQ==
X-Gm-Message-State: AOJu0Yzl5La+5WIg4fK+Um8bUzwCUd8N+J4nNyjxOQeQIviNJNUFzvNv
	baz7/fj38EqfoAJUIXyN8/9gzgdEULpyC7UDQ09scT5o2bFlf14J1li/o43pYhQu+DHJdnk1pew
	1
X-Google-Smtp-Source: AGHT+IFRvVmGHqc4+Ckc9WYTR+cXwloGUZI5DKe58Rc740b6tWLFLxnWXb5NuIXAjQzsrc4wf2Mtjw==
X-Received: by 2002:a05:6102:c8c:b0:493:de53:9bac with SMTP id ada2fe7eead31-493de53a376mr867292137.11.1721905007353;
        Thu, 25 Jul 2024 03:56: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>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH] x86/altcall: further refine clang workaround
Date: Thu, 25 Jul 2024 12:56:34 +0200
Message-ID: <20240725105634.16825-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current code in ALT_CALL_ARG() won't successfully workaround the clang
code-generation issue if the arg parameter has a size that's not a power of 2.
While there are no such sized parameters at the moment, improve the workaround
to also be effective when such sizes are used.

Instead of using a union with a long, add the necessary padding so that the
resulting struct always has the same size as a register, and let the compiler
zero-initialize the padding.

Reported-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/alternative.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index e63b45927643..c3e3a5e3f8a8 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -184,11 +184,11 @@ extern void alternative_branches(void);
  * https://github.com/llvm/llvm-project/issues/82598
  */
 #define ALT_CALL_ARG(arg, n)                                            \
-    register union {                                                    \
-        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
-        unsigned long r;                                                \
+    register struct {                                                   \
+        typeof(arg) e;                                                  \
+        char pad[sizeof(void *) - sizeof(arg)];                         \
     } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
-        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
+        .e = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })   \
     }
 #else
 #define ALT_CALL_ARG(arg, n) \
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 12:13:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 12:13:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764940.1175492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWxKv-0000Cv-AX; Thu, 25 Jul 2024 12:12:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764940.1175492; Thu, 25 Jul 2024 12:12:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWxKv-0000Co-7m; Thu, 25 Jul 2024 12:12:45 +0000
Received: by outflank-mailman (input) for mailman id 764940;
 Thu, 25 Jul 2024 11:36: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=a07w=OZ=uter.be=w@srs-se1.protection.inumbo.net>)
 id 1sWwmF-0004DG-JU
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 11:36:56 +0000
Received: from lounge.grep.be (lounge.grep.be [2a01:4f8:200:91e8::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30691926-4a7a-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 13:36:53 +0200 (CEST)
Received: from [102.39.153.168] (helo=pc220518)
 by lounge.grep.be with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <w@uter.be>) id 1sWwlF-001dJr-31;
 Thu, 25 Jul 2024 13:35:53 +0200
Received: from wouter by pc220518 with local (Exim 4.98)
 (envelope-from <w@uter.be>) id 1sWwl8-00000002sGZ-0mps;
 Thu, 25 Jul 2024 13:35:46 +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: 30691926-4a7a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=uter.be;
	s=2021.lounge; 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:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
	:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
	List-Post:List-Owner:List-Archive;
	bh=A2VuDAKeSGGGRwdNEgASvdRePK2jE6LTgdknFzfGiVg=; b=HRSnzfY+SxqUo9lzjJBHswdyNO
	izEqhcP/7tFCFgJJGzzhTZHV+hkIJ95lvet5keDsrZB2SVJh4LM2TT0rY+nfGtvBDiOATcCiQ/ZZp
	NX14nRCfBdImELKCJsEds0YwtB87PNneYsFwhe69klvX8hKaVd3bPAdUOO5oKLpwqsdI1TpEV3xHA
	zPeruYumASMydrGBh8+RD0p+DiFqZyJ0vUaImcbHlwd7Aik2LDO+RgK3xJUkwPiJj9pwJIeGrrPKF
	y3yZwQEUsA40VBWzlQvQ+rZPVwPFNOT65DR9yRxPQziuObFSyUbJuGiw7PBH1R7FTtIfgagxi0sHi
	wC/6XZ8A==;
Date: Thu, 25 Jul 2024 13:35:46 +0200
From: Wouter Verhelst <w@uter.be>
To: Christoph Hellwig <hch@lst.de>
Cc: Jens Axboe <axboe@kernel.dk>, Geert Uytterhoeven <geert@linux-m68k.org>,
	Richard Weinberger <richard@nod.at>,
	Philipp Reisner <philipp.reisner@linbit.com>,
	Lars Ellenberg <lars.ellenberg@linbit.com>,
	Christoph =?iso-8859-1?Q?B=F6hmwalder?= <christoph.boehmwalder@linbit.com>,
	Josef Bacik <josef@toxicpanda.com>, Ming Lei <ming.lei@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Alasdair Kergon <agk@redhat.com>, Mike Snitzer <snitzer@kernel.org>,
	Mikulas Patocka <mpatocka@redhat.com>, Song Liu <song@kernel.org>,
	Yu Kuai <yukuai3@huawei.com>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	linux-m68k@lists.linux-m68k.org, linux-um@lists.infradead.org,
	drbd-dev@lists.linbit.com, nbd@other.debian.org,
	linuxppc-dev@lists.ozlabs.org, ceph-devel@vger.kernel.org,
	virtualization@lists.linux.dev, xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org, dm-devel@lists.linux.dev,
	linux-raid@vger.kernel.org, linux-mmc@vger.kernel.org,
	linux-mtd@lists.infradead.org, nvdimm@lists.linux.dev,
	linux-nvme@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-block@vger.kernel.org,
	Damien Le Moal <dlemoal@kernel.org>
Subject: Re: [PATCH 14/26] block: move the nonrot flag to queue_limits
Message-ID: <ZqI4kosy20WkLC2P@pc220518.home.grep.be>
References: <20240617060532.127975-1-hch@lst.de>
 <20240617060532.127975-15-hch@lst.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240617060532.127975-15-hch@lst.de>
X-Speed: Gates' Law: Every 18 months, the speed of software halves.
Organization: none

On Mon, Jun 17, 2024 at 08:04:41AM +0200, Christoph Hellwig wrote:
> Use the chance to switch to defaulting to non-rotational and require
> the driver to opt into rotational, which matches the polarity of the
> sysfs interface.
[...]
> diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
> index cb1c86a6a3fb9d..6cddf5baffe02a 100644
> --- a/drivers/block/nbd.c
> +++ b/drivers/block/nbd.c
> @@ -1867,11 +1867,6 @@ static struct nbd_device *nbd_dev_add(int index, unsigned int refs)
>  		goto out_err_disk;
>  	}
>  
> -	/*
> -	 * Tell the block layer that we are not a rotational device
> -	 */
> -	blk_queue_flag_set(QUEUE_FLAG_NONROT, disk->queue);
> -
>  	mutex_init(&nbd->config_lock);
>  	refcount_set(&nbd->config_refs, 0);
>  	/*

NBD actually exports a flag for rotational devices; it's defined in
nbd.h in the NBD userland source as

#define NBD_FLAG_ROTATIONAL     (1 << 4)        /* Use elevator algorithm - rotational media */

which is passed in the same flags field which also contains the
NBD_FLAG_SEND_FLUSH and NBD_FLAG_SEND_FUA flags.

Perhaps we might want to look at that flag and set the device to
rotational if it is specified?

-- 
     w@uter.{be,co.za}
wouter@{grep.be,fosdem.org,debian.org}

I will have a Tin-Actinium-Potassium mixture, thanks.


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 13:00:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 13:00:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764963.1175502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWy53-00067T-Lt; Thu, 25 Jul 2024 13:00:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764963.1175502; Thu, 25 Jul 2024 13:00: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 1sWy53-00067M-JI; Thu, 25 Jul 2024 13:00:25 +0000
Received: by outflank-mailman (input) for mailman id 764963;
 Thu, 25 Jul 2024 13: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=Yn1G=OZ=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1sWy52-00067G-1t
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 13:00:24 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d9b6a4ef-4a85-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 15:00:21 +0200 (CEST)
Received: by verein.lst.de (Postfix, from userid 2407)
 id C4CD1227A8E; Thu, 25 Jul 2024 15:00: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: d9b6a4ef-4a85-11ef-8776-851b0ebba9a2
Date: Thu, 25 Jul 2024 15:00:08 +0200
From: Christoph Hellwig <hch@lst.de>
To: Wouter Verhelst <w@uter.be>
Cc: Christoph Hellwig <hch@lst.de>, Jens Axboe <axboe@kernel.dk>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Richard Weinberger <richard@nod.at>,
	Philipp Reisner <philipp.reisner@linbit.com>,
	Lars Ellenberg <lars.ellenberg@linbit.com>,
	Christoph =?iso-8859-1?Q?B=F6hmwalder?= <christoph.boehmwalder@linbit.com>,
	Josef Bacik <josef@toxicpanda.com>, Ming Lei <ming.lei@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Alasdair Kergon <agk@redhat.com>, Mike Snitzer <snitzer@kernel.org>,
	Mikulas Patocka <mpatocka@redhat.com>, Song Liu <song@kernel.org>,
	Yu Kuai <yukuai3@huawei.com>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	linux-m68k@lists.linux-m68k.org, linux-um@lists.infradead.org,
	drbd-dev@lists.linbit.com, nbd@other.debian.org,
	linuxppc-dev@lists.ozlabs.org, ceph-devel@vger.kernel.org,
	virtualization@lists.linux.dev, xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org, dm-devel@lists.linux.dev,
	linux-raid@vger.kernel.org, linux-mmc@vger.kernel.org,
	linux-mtd@lists.infradead.org, nvdimm@lists.linux.dev,
	linux-nvme@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-block@vger.kernel.org,
	Damien Le Moal <dlemoal@kernel.org>
Subject: Re: [PATCH 14/26] block: move the nonrot flag to queue_limits
Message-ID: <20240725130008.GA22625@lst.de>
References: <20240617060532.127975-1-hch@lst.de> <20240617060532.127975-15-hch@lst.de> <ZqI4kosy20WkLC2P@pc220518.home.grep.be>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ZqI4kosy20WkLC2P@pc220518.home.grep.be>
User-Agent: Mutt/1.5.17 (2007-11-01)

On Thu, Jul 25, 2024 at 01:35:46PM +0200, Wouter Verhelst wrote:
> NBD actually exports a flag for rotational devices; it's defined in
> nbd.h in the NBD userland source as
> 
> #define NBD_FLAG_ROTATIONAL     (1 << 4)        /* Use elevator algorithm - rotational media */
> 
> which is passed in the same flags field which also contains the
> NBD_FLAG_SEND_FLUSH and NBD_FLAG_SEND_FUA flags.
> 
> Perhaps we might want to look at that flag and set the device to
> rotational if it is specified?

Yes, that sounds good.  Can you send a patch?



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 13:02:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 13:02:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764969.1175513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWy6a-0006de-14; Thu, 25 Jul 2024 13:02:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764969.1175513; Thu, 25 Jul 2024 13:02:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWy6Z-0006dX-TX; Thu, 25 Jul 2024 13:01:59 +0000
Received: by outflank-mailman (input) for mailman id 764969;
 Thu, 25 Jul 2024 13:01:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWy6Y-0006dL-ST; Thu, 25 Jul 2024 13:01:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWy6Y-0006j2-Df; Thu, 25 Jul 2024 13:01:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWy6Y-0000D7-00; Thu, 25 Jul 2024 13:01:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWy6X-00039u-Vf; Thu, 25 Jul 2024 13:01: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=NOoY8jn8ej1bj+804+jci56LRgTwDM8POxA9Oop8NUI=; b=uj0vpIqD2ekE2hSF3gLIZNVhBt
	+iccpPGfQnD8J7R7sCG9snA9PephgjQ6nF9V1yu0j+eAn6YW0Cciq+aaaFIU6ZLJg5WnWgDZyphPr
	beIoos5IZ1srCMXdWPHmwUAuqwN32b6j0xXjQjP55O5wnfQUIKCYfaNIG8hGgB5fWYEU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-186998-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 186998: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=e62c26a20dced58ea342d9cb8f5e9164dc3bb023
X-Osstest-Versions-That:
    libvirt=e5232f6fd691668decd5be1b3a76cdbd3666d032
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 13:01:57 +0000

flight 186998 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/186998/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186977
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              e62c26a20dced58ea342d9cb8f5e9164dc3bb023
baseline version:
 libvirt              e5232f6fd691668decd5be1b3a76cdbd3666d032

Last test of basis   186977  2024-07-24 04:18:45 Z    1 days
Testing same since   186998  2024-07-25 04:22:25 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adam Julis <ajulis@redhat.com>
  Boris Fiuczynski <fiuczy@linux.ibm.com>
  John Levon <john.levon@nutanix.com>
  Kristina Hanicova <khanicov@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   e5232f6fd6..e62c26a20d  e62c26a20dced58ea342d9cb8f5e9164dc3bb023 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 13:15:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 13:15:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764983.1175523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWyJ3-0008Ix-4B; Thu, 25 Jul 2024 13:14:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764983.1175523; Thu, 25 Jul 2024 13:14:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWyJ3-0008Iq-0x; Thu, 25 Jul 2024 13:14:53 +0000
Received: by outflank-mailman (input) for mailman id 764983;
 Thu, 25 Jul 2024 13:14:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWyJ1-0008Ig-Hb; Thu, 25 Jul 2024 13:14:51 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWyJ1-0006x7-AT; Thu, 25 Jul 2024 13:14:51 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sWyJ1-0001Sh-0I; Thu, 25 Jul 2024 13:14:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sWyJ0-0002lk-WD; Thu, 25 Jul 2024 13:14:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=FbTxzzAmC5MqaOgsaMQ4RqrYvte3BvZyDmwrAdkRIrw=; b=rMMCuWgB7d7Z2F9KGCCVEKpJP5
	5RkhpDMvRREUA3yaQE6tqDKfYXw+u3auC6bq107owUSUmNQV5Bw/7+jWLdrfHuTto6ueT8tczCPkb
	+mG7/Vkr1mT/63yZQgRPdTAXaGl+F+8S8VqlzfFmygU6s5KJRsu+hUSd2ABKgvEzr4fU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187003-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187003: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=8665187b017b0e4e4febf2241b433e6371f6e7e1
X-Osstest-Versions-That:
    ovmf=556640bceac32c86a843d09a1dd0688e44883781
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 13:14:50 +0000

flight 187003 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187003/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 8665187b017b0e4e4febf2241b433e6371f6e7e1
baseline version:
 ovmf                 556640bceac32c86a843d09a1dd0688e44883781

Last test of basis   187000  2024-07-25 06:41:30 Z    0 days
Testing same since   187003  2024-07-25 09:45:20 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  HoraceX Lien <horacex.lien@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   556640bcea..8665187b01  8665187b017b0e4e4febf2241b433e6371f6e7e1 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 13:18:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 13:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764992.1175533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWyMb-0000Wh-JX; Thu, 25 Jul 2024 13:18:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764992.1175533; Thu, 25 Jul 2024 13: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 1sWyMb-0000Wa-GV; Thu, 25 Jul 2024 13:18:33 +0000
Received: by outflank-mailman (input) for mailman id 764992;
 Thu, 25 Jul 2024 13: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=/1nn=OZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWyMa-0000WU-AS
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 13:18:32 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63639286-4a88-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 15:18:31 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a7ab63a388bso33060666b.1
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 06: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
 4fb4d7f45d1cf-5ac64eb3ab8sm809330a12.71.2024.07.25.06.18.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Jul 2024 06: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: 63639286-4a88-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721913511; x=1722518311; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lae7/d5qpbENe30pdE3wh0YAmja6ImzeuzBnoBpO5PM=;
        b=eTfTDstkFBqB4bNpmZPI6qkDNgTrH5raT+rw484IEHR/8Xy1Sz7fK9pwpzGZxfsf5B
         dkzl8x6dllpiFWJNkgQamXsvWTOLJso/S1D1dx3AAPB+EkjK5KPpP45SXdjK54L6PayE
         SrrB5LmuZ7LsXmSuNNz7XejiX2ZioheL/8jl2jraAL+47Zemo1kddS4Tbxz5H0+7nzbn
         pzd9YWeLdw27rZ9TonAxryAxEcXIQGLifphpKho6m+4G209YM8JV1GA91yPWosV/UCIk
         0+msuIkvwk9hFA5u5yi4uhAHozBvHg5gMJykooBL30vyGLoLkqyrU1P5U0CU1RH1QCO+
         dkLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721913511; x=1722518311;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lae7/d5qpbENe30pdE3wh0YAmja6ImzeuzBnoBpO5PM=;
        b=G7kN5CpIJjXzlYS+BwKyZ+6jbWmYEJwOirIKaFWhftqt/mGiCptvW5j17a+vpnwaje
         NG7HyvGojUWqFUZWsd5YXyK/lKlGYlnrtGrD3hwMxjv9p9yZ/Rf/1zLmpqFG46R5qwFQ
         HRhW5FCAziCkCIyRsxpul22c1EhisOGGL6AahEuGy7Wvdz2FixV0He8rHvR84eIv9olc
         02UyhmP5qY1lVcVdDCrvMksnM8guoQWhc9k3tGSWAUinQFF82pGNvQkncdzCDZCTxfbf
         aPYddtmz1RqmTCayCw9gjTvcEp4qUvZP/VwiPT978i/QDXn1FkS823JfrhggDu2FxceY
         7oxg==
X-Forwarded-Encrypted: i=1; AJvYcCW2wtyqfO3alFMgb0tjwhktrEYzvWmflBHqyIX7cZJT2JyheR3j359Np1U+ew+ALidvYLuaHVydirUOftDoDa/UumKrFCq08Tt4Akf8mmU=
X-Gm-Message-State: AOJu0YyuIiFkDuNQBpG2ax6BQYJzf3AShYpqeQ7vJy2piH9yaCUL3nvV
	PIu+I3CWIy8JHYPRuyxERtYRfjkHiu6lxwFXSdCgZqu19tKH87t5PnWtWRGFuCqsWtZfzSyqiPY
	=
X-Google-Smtp-Source: AGHT+IHRBMYprdpZlTvHV8KAZ2NU4h0xSOTOe/EGK8/0FFBBf74o+OTp+tWB/57WxbY7XUg66QUM2Q==
X-Received: by 2002:a50:8a91:0:b0:5a2:8f7d:aff4 with SMTP id 4fb4d7f45d1cf-5ac62906b5bmr1860993a12.20.1721913510842;
        Thu, 25 Jul 2024 06:18:30 -0700 (PDT)
Message-ID: <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com>
Date: Thu, 25 Jul 2024 15:18:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org
References: <20240725105634.16825-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: <20240725105634.16825-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.07.2024 12:56, Roger Pau Monne wrote:
> --- a/xen/arch/x86/include/asm/alternative.h
> +++ b/xen/arch/x86/include/asm/alternative.h
> @@ -184,11 +184,11 @@ extern void alternative_branches(void);
>   * https://github.com/llvm/llvm-project/issues/82598
>   */
>  #define ALT_CALL_ARG(arg, n)                                            \
> -    register union {                                                    \
> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> -        unsigned long r;                                                \
> +    register struct {                                                   \
> +        typeof(arg) e;                                                  \
> +        char pad[sizeof(void *) - sizeof(arg)];                         \

One thing that occurred to me only after our discussion, and I then forgot
to mention this before you would send a patch: What if sizeof(void *) ==
sizeof(arg)? Zero-sized arrays are explicitly something we're trying to
get rid of.

I was wondering whether we could get away resorting to bitfields, as those
are well-defined when having a width of zero:

    register struct {                                                   \
        typeof(arg) e;                                                  \
        unsigned long pad:(sizeof(void *) - sizeof(arg)) * 8;           \
    } ...

Yet when the width is zero, the field may not have name, whereas when the
field uniformly doesn't have a name, Clang would, like also for

    register struct {                                                   \
        typeof(arg) e;                                                  \
        unsigned long :0;                                               \
    } ...

regards that space as not needing any (re)init. Bottom line: For the
moment I'm out of ideas.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 13:20:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 13:20:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.764999.1175543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWyOa-000214-1F; Thu, 25 Jul 2024 13:20:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 764999.1175543; Thu, 25 Jul 2024 13:20: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 1sWyOZ-00020x-Ur; Thu, 25 Jul 2024 13:20:35 +0000
Received: by outflank-mailman (input) for mailman id 764999;
 Thu, 25 Jul 2024 13:20: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=wowc=OZ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sWyOY-00020m-E8
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 13:20:34 +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 ac257ff5-4a88-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 15:20:33 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52f04b4abdcso225630e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 06:20:33 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52fd5c3a943sm229234e87.305.2024.07.25.06.20.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 06:20: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: ac257ff5-4a88-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721913633; x=1722518433; 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=TZ0Qtz0uWdy+/GgY9gT15K5+O141MDfodDtrSxR2ylk=;
        b=gqNDhr3yEA3IAcyVNNitlsDzQQcsiN877RxbkkiYexmWhOruJQwnEpiUpMTR5j7pFK
         9/wfu/hghnmlGizgaOCwocNllEjWpj6xLbAwnEnyuXdPMfWoQF3AjFPri6jZ3tQ+0xqS
         0boFdNe0lbF0aUNeuJSRXhftfvBb2PllL5PChKoNBjC7CB540y9Hjg32c4LUuOMyYTGx
         n3c1GqMlNYZHabD/82JEYQyEoyMoyjBbk8R3DnGLxXCKEWUsMel/ETTCGY4YXFZHq21Q
         ObuZG9STfiUs+rm6vzgFAsIxF1IWu6rDruN6Xbt32DVxtUt5BwhaLt8AAwcB6XkmV1M6
         Zm+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721913633; x=1722518433;
        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=TZ0Qtz0uWdy+/GgY9gT15K5+O141MDfodDtrSxR2ylk=;
        b=obde7LVC9iDD3buIg+HMGoUu/g/VwWHOL8RsV87EmpI1WQfROsSXYA1ITQmpAbl2/7
         icqJohvx1gsuCku/FissmRf0U60oJrunr7C084UvsoUQEXYRpOLGbWBMCHbhJnwfafKu
         xZ3VUCZKrcgdWvvgk9utnSlhd5qVUxKFdOO/285fV8M7RfAA/h2ebjf8CxN7pu7nz6HB
         Pq10kuvaCnOiyw6AA1a3ybD68wpWPaJA7sjGg081Inc7SOAEqtlGWIs96gTDUoGrhGYW
         i4w6pReQe2/sRr1uoRygPrP4r77i1YxwLRcrrnT3mhZgDrUF/lTocwi7LqSrMksqOrC2
         jbqQ==
X-Gm-Message-State: AOJu0YxUO+g8jG6Numkr82zOO4sUB8T8tBmwz+vCAeVhyFGjBsykUl0l
	zArpyArDEW2loEpmaNgfYPRCyybpfCRxy7Sv59eZ1NpqJpVHrGNzA4PV16pW
X-Google-Smtp-Source: AGHT+IF31avIDm7LVvR+SWKosmsWXhiW+cQa8xZIY/+D9OegfC4EphFeQRBlUvS8AXVF2rBNT1MyGw==
X-Received: by 2002:a05:6512:308d:b0:52e:be14:7012 with SMTP id 2adb3069b0e04-52fd3f24d19mr2193802e87.32.1721913632373;
        Thu, 25 Jul 2024 06:20:32 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	"committers @ xenproject . org" <committers@xenproject.org>
Subject: [PATCH] CHANGELOG.md: Finalize changes in 4.19 release cycle
Date: Thu, 25 Jul 2024 15:20:29 +0200
Message-ID: <b0e62915605cbc00548afd70c5fad81f57ce5217.1721913394.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 CHANGELOG.md | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index f8fbe82df6..39e8737e61 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Reduce IOMMU setup time for hardware domain.
    - Allow HVM/PVH domains to map foreign pages.
    - Declare PVH dom0 supported with caveats.
+ - On Arm:
+   - Reworking the logic so all the MMU-off code is now self-contained for
+     secondary boot CPUs on arm64.
+   - Code symbol annotations and MISRA compliance improvements.
+   - Addressing issues of the static shared memory feature.
+ - On PPC:
+   - Minor fixes and improvements:
+     - Add .text.exceptions section for exception vectors.
+     - Replace debug printing code with printk.
+     - Address violations of MISRA C:2012 Rule 11.8.
+     - Ensure ELF sections' physical load addresses start at 0x0.
  - xl/libxl configures vkb=[] for HVM domains with priority over vkb_device.
  - Increase the maximum number of CPUs Xen can be built for from 4095 to
    16383.
@@ -23,6 +34,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    using a standalone library implementation.
  - xenalyze no longer requires `--svm-mode` when analyzing traces
    generated on AMD CPUs
+ - CI updates:
+   - minimum fixes to rebuild the containers, following the HEREDOC problems.
+   - rebuild containers to have testing with up-to-date LTS distros.
+   - few build system checks, and strip the obsolete contents of
+     the build containers.
 
 ### Added
  - On x86:
@@ -31,6 +47,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
  - Add a new 9pfs backend running as a daemon in dom0. First user is
    Xenstore-stubdom now being able to support full Xenstore trace capability.
  - libxl support for backendtype=tap with tapback.
+ - On Arm:
+   - FF-A notification support.
+   - Introduction of dynamic node programming using overlay dtbo.
+ - On PPC:
+   - Basic exception handler implementation.
+ - On RISCV:
+   - Identity mapping implementation.
+   - Introduction of architecture-specific headers.
 
 ### Removed
  - caml-stubdom.  It hasn't built since 2014, was pinned to Ocaml 4.02, and has
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 14:06:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 14:06:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765010.1175552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWz6m-0007U5-Bb; Thu, 25 Jul 2024 14:06:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765010.1175552; Thu, 25 Jul 2024 14:06:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWz6m-0007Ty-8z; Thu, 25 Jul 2024 14:06:16 +0000
Received: by outflank-mailman (input) for mailman id 765010;
 Thu, 25 Jul 2024 14:06:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ByKr=OZ=bounce.vates.tech=bounce-md_30504962.66a25bcc.v1-d1ac2b5b40c04416823c65458f359e36@srs-se1.protection.inumbo.net>)
 id 1sWz6l-0007Ts-7J
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 14:06:15 +0000
Received: from mail145-27.atl61.mandrillapp.com
 (mail145-27.atl61.mandrillapp.com [198.2.145.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 099a319d-4a8f-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 16:06:08 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-27.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4WVCND2Cd3z4f3qyF
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 14:06:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d1ac2b5b40c04416823c65458f359e36; Thu, 25 Jul 2024 14: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: 099a319d-4a8f-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721916364; x=1722176864;
	bh=5JTCAEV+av8gxi1TGY+pjTD4pczARUjgtACVcScayik=;
	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+CBtdthJku+YxxPPLFuR9DDfBejmlLveIt4EPFhHBzI9tWG+iWwKTYDQ3i59kfdx
	 /bIrWt1aDlIMDzMjcoYkPk7cCWGYkKrH6Z6nzlvLkHB8IN48sbVeF/iocDyClt9IdA
	 NO4lNoI64DfoeMLrH1xnkCS6D5aVuNWYpAWUuGkvdBCo/Req7ORdYbVN8jAxCv52vy
	 M605lMYdkn7HSmJKIe8aiucEqP9nx1/W9OiY3oYq03/bN2+FRAliPFjjWgZ+KHuQNg
	 E1VUT4twcnfGC6h+EwgaeXG6VWY5xVIXNV8+dd37GTdkEK/U/6K6Qamu4DDXeOzerm
	 8D8bJ3yHPNcIg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721916364; x=1722176864; i=anthony.perard@vates.tech;
	bh=5JTCAEV+av8gxi1TGY+pjTD4pczARUjgtACVcScayik=;
	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=DDFGzYEzsWBO7q+6qVZmrgfOvmly/zuznAFgt5fwuLrBqt5JBwKxczv/DU1M0jgr0
	 nYau0C5I7vu+EHHN20SCkTa2O0u+LAO778yBA0lZ2YBIFUDR+tIOSDqXeDZcha0cDf
	 Hbd+oZxEvQRliqpbMNRU+ePGi2qxyBlpLwtxGYGkRYixOR5baLSJgDnKvrBPRl1eBV
	 hsAGZQu4LQiloPiX/3tvM4WFsov6IKSfGXBnTV3BxpcvNNAUzChGWQvX5Zpe+c8j8a
	 Fu55Inq8kwmCawHjPOrSl0F47QIo6/hzPlNk/ArEmRQhjiwVEA6CojlTzfeSXfF6Cr
	 9B0Wu97FdXnGg==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2007/12]=20libxl:=20Allow=20stubdomain=20to=20control=20interupts=20of=20PCI=20device?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721916363568
To: =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Message-Id: <ZqJby/TBLQOmzQPH@l14>
References: <cover.f23e316613d8f82981f99b5fb90e36255c4adc63.1715867907.git-series.marmarek@invisiblethingslab.com> <aeba05a5ec7a0657217933f165ee0ac7e86e1b1b.1715867907.git-series.marmarek@invisiblethingslab.com>
In-Reply-To: <aeba05a5ec7a0657217933f165ee0ac7e86e1b1b.1715867907.git-series.marmarek@invisiblethingslab.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.d1ac2b5b40c04416823c65458f359e36?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240725:md
Date: Thu, 25 Jul 2024 14:06:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, May 16, 2024 at 03:58:28PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> Especially allow it to control MSI/MSI-X enabling bits. This part only
> writes a flag to a sysfs, the actual implementation is on the kernel
> side.
> 
> This requires Linux >=3D 5.10 in dom0 (or relevant patch backported).

Does it not work before 5.10? Because the
Documentation/ABI/testing/sysfs-driver-pciback in linux tree say that
allow_interrupt_control is in 5.6.

> diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
> index 96cb4da0794e..6f357b70b815 100644
> --- a/tools/libs/light/libxl_pci.c
> +++ b/tools/libs/light/libxl_pci.c
> @@ -1513,6 +1513,14 @@ static void pci_add_dm_done(libxl__egc *egc,
>              rc =3D ERROR_FAIL;
>              goto out;
>          }
> +    } else if (libxl_is_stubdom(ctx, domid, NULL)) {
> +        /* Allow acces to MSI enable flag in PCI config space for the st=
ubdom */

s/acces/access/

> +        if ( sysfs_write_bdf(gc, SYSFS_PCIBACK_DRIVER"/allow_interrupt_c=
ontrol",
> +                             pci) < 0 ) {
> +            LOGD(ERROR, domainid, "Setting allow_interrupt_control for d=
evice");
> +            rc =3D ERROR_FAIL;
> +            goto out;

Is it possible to make this non-fatal for cases where the kernel is
older than the introduction of the new setting? Or does pci passthrough
doesn't work at all with a stubdom before the change in the kernel?

If making this new setting conditional is an option, you could
potentially improve the error code returned by sysfs_write_bdf() to
distinguish between an open() failure and write() failure, to avoid
checking the existance of the path ahead of the call. But maybe that
pointless because it doesn't appear possible to distinguish between
permission denied and not found.

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 Jul 25 14:17:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 14:17:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765017.1175563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWzGz-0000xb-9D; Thu, 25 Jul 2024 14:16:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765017.1175563; Thu, 25 Jul 2024 14:16:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWzGz-0000xU-6a; Thu, 25 Jul 2024 14:16:49 +0000
Received: by outflank-mailman (input) for mailman id 765017;
 Thu, 25 Jul 2024 14: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=KREk=OZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sWzGx-0000xO-Su
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 14:16:48 +0000
Received: from fhigh3-smtp.messagingengine.com
 (fhigh3-smtp.messagingengine.com [103.168.172.154])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 857de9b5-4a90-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 16:16:46 +0200 (CEST)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 09C17114013D;
 Thu, 25 Jul 2024 10:16:44 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute3.internal (MEProxy); Thu, 25 Jul 2024 10:16:44 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 25 Jul 2024 10:16: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: 857de9b5-4a90-11ef-bbff-fd08da9f4363
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=1721917004;
	 x=1722003404; bh=P+yMhEs/3exhTu1otUV2BqNOR4YwMMDZGrRzIhCfZdQ=; b=
	tZqObzARqiUdRcvBlXpwoVr9YC3FO2jvNsGKfGFwmIl9dNZurVkOAOTJLK9DLQoU
	KXrrw/V1TaH9LerFmH3Seuf09L0ahniY40SJDnFb0azJ/cfaIJ09wUOOZSjJYEht
	He7kFE2xRQl2rXNe/D+4nsi4xyRXnqr8MgxcJ3w/0llAs4nlIruEHl9LZWEzsFfx
	oSUHOO/O+s9n7Lz+Jz9SSEs+YFx2Rxnud/KDnS9W1R0rXq/B1OWPgGr0nnOAPjWA
	PCl+e0kIAJjInzSZQJMdm9i2hwqrZCWmL4FONFN5+kPMUmHI7Oee41HXmXmkFZ1x
	COOpPApE3rF1WluJEXf2+A==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1721917004; x=1722003404; bh=P+yMhEs/3exhTu1otUV2BqNOR4Yw
	MMDZGrRzIhCfZdQ=; b=BS5+M0li9kxZaNCkZGStZBc+1yxhwcdQIZGD04rBYSiO
	FYjBdrAeAFWN9+1pSC5DXUFYxcGqYq9svxfaRANIH3lP1M1BRJqz4bbX4uoNfLE7
	rWk8m9IAnGVIAVBp3FioE+Qr4KIuGQgJu0MnfW3xKI6oHSuBs/4GLOjh+vBPqfds
	zVot6+w6LD2p9qENELAI3PYOJ1rKzGIOwB8DYaTzs7+OpK63+/ZjN4ilhaGmzqaW
	u1bzsMocjd7D7j6le7xfgHU8f91BPimfgXaT/+GJYi5m3LYPWriSzPQUc+PV/G/M
	ATEtzatutqQEqV2DHjC1jb+ayeNX7pJR+jqAJ52dGQ==
X-ME-Sender: <xms:S16iZvjJrOyPBQINx7i4ugtV18lcD4NfPTyePlt44ZlFs83aIpcjZA>
    <xme:S16iZsDqnIuVUOlbqYy1Vj4Bx_sh8MILCsUqpEsUylrnEJ3Ktjd-gYmtf--T53TWo
    zAhEcc67Y_Zcg>
X-ME-Received: <xmr:S16iZvHLGE1ePZBrkDvcDodCttumH9NTNLxNTlwWf3c1D9duXMEtueYDwP0aTn5tSjGXtYwwtiykmTtauVoIFNnjcx6YkOX-2Q>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrieefgdejgecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudel
    teefvefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedt
X-ME-Proxy: <xmx:S16iZsTH2F80yKUkUHE76S3I0GtaY66RLBdjonxcdpIk79Y7I65zfw>
    <xmx:S16iZszquu9gKjHhED-vSwkymth2-AZJYjWPgms8kubhhR03LPX95Q>
    <xmx:S16iZi7df94atpmg2ykyeI6l0TCRKCU2-YjyGF8221_fYwdhMjVaPg>
    <xmx:S16iZhwSLtrf1xsDMAGoIAavYnfITsvj_RdGuonMBY5tAJYJrMVDxQ>
    <xmx:TF6iZn8FNF9dQI_QgYUWfXjRL1mz7EEWIKzcxEXzKZCc1QOTc9UoTO6P>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 25 Jul 2024 16:16:37 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH 07/12] libxl: Allow stubdomain to control interupts of
 PCI device
Message-ID: <ZqJeRpv0leu3vWuf@mail-itl>
References: <cover.f23e316613d8f82981f99b5fb90e36255c4adc63.1715867907.git-series.marmarek@invisiblethingslab.com>
 <aeba05a5ec7a0657217933f165ee0ac7e86e1b1b.1715867907.git-series.marmarek@invisiblethingslab.com>
 <ZqJby/TBLQOmzQPH@l14>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="L8u8qAmv491cOECL"
Content-Disposition: inline
In-Reply-To: <ZqJby/TBLQOmzQPH@l14>


--L8u8qAmv491cOECL
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 25 Jul 2024 16:16:37 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH 07/12] libxl: Allow stubdomain to control interupts of
 PCI device

On Thu, Jul 25, 2024 at 02:06:04PM +0000, Anthony PERARD wrote:
> On Thu, May 16, 2024 at 03:58:28PM +0200, Marek Marczykowski-G=C3=B3recki=
 wrote:
> > Especially allow it to control MSI/MSI-X enabling bits. This part only
> > writes a flag to a sysfs, the actual implementation is on the kernel
> > side.
> >
> > This requires Linux >=3D 5.10 in dom0 (or relevant patch backported).
>=20
> Does it not work before 5.10? Because the
> Documentation/ABI/testing/sysfs-driver-pciback in linux tree say that
> allow_interrupt_control is in 5.6.

For MSI-X to work at least with Linux it needs a fixup
2c269f42d0f382743ab230308b836ffe5ae9b2ae, which was backported to
5.10.201, but not further.=20

> > diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
> > index 96cb4da0794e..6f357b70b815 100644
> > --- a/tools/libs/light/libxl_pci.c
> > +++ b/tools/libs/light/libxl_pci.c
> > @@ -1513,6 +1513,14 @@ static void pci_add_dm_done(libxl__egc *egc,
> >              rc =3D ERROR_FAIL;
> >              goto out;
> >          }
> > +    } else if (libxl_is_stubdom(ctx, domid, NULL)) {
> > +        /* Allow acces to MSI enable flag in PCI config space for the =
stubdom */
>=20
> s/acces/access/
>=20
> > +        if ( sysfs_write_bdf(gc, SYSFS_PCIBACK_DRIVER"/allow_interrupt=
_control",
> > +                             pci) < 0 ) {
> > +            LOGD(ERROR, domainid, "Setting allow_interrupt_control for=
 device");
> > +            rc =3D ERROR_FAIL;
> > +            goto out;
>=20
> Is it possible to make this non-fatal for cases where the kernel is
> older than the introduction of the new setting? Or does pci passthrough
> doesn't work at all with a stubdom before the change in the kernel?

MSI/MSI-X will not work. And if QEMU wouldn't hide MSI/MSI-X (upstream
one doesn't), Linux won't fallback to INTx, so the device won't work at
all.

> If making this new setting conditional is an option, you could
> potentially improve the error code returned by sysfs_write_bdf() to
> distinguish between an open() failure and write() failure, to avoid
> checking the existance of the path ahead of the call. But maybe that
> pointless because it doesn't appear possible to distinguish between
> permission denied and not found.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmaiXkYACgkQ24/THMrX
1yyC0wf/Us3IBId7hFMmgTOWzWQBPTBFkJ2aWsFbtjRGsMF6kum1OQQ3QvUEzKJT
0Qox5NzOBG1o/qVjy/2oUzMDvO1F41iDEXwsFb/lqLlRg7TKuqDOpMN/85VPxWpE
h8UUnctl0Mwy1gd1bC6vG78L0QcCCS2GdaNuSUNWn4ZDvjtLoImYZaglDfZK2OFI
TQ5BqhxJny44/WBoQegtmuL4L8FSwwzScGtI3vSlXVuB1Co1ZdebMa7yHF+kDP/3
xY0K95l+UHOmsciSx2svR6uDultse9k6v5bSAocVM034cRG+r2pGTfexQ0kOtaUv
iJCRzyNdOh/SbApZXTXAr6ucgnOo7w==
=q68+
-----END PGP SIGNATURE-----

--L8u8qAmv491cOECL--


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 14:24:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 14:24:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765024.1175574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWzOP-0002Te-0v; Thu, 25 Jul 2024 14:24:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765024.1175574; Thu, 25 Jul 2024 14: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 1sWzOO-0002TX-SX; Thu, 25 Jul 2024 14:24:28 +0000
Received: by outflank-mailman (input) for mailman id 765024;
 Thu, 25 Jul 2024 14:24: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=/1nn=OZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWzON-0002TR-BR
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 14:24:27 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 974d9f04-4a91-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 16:24:24 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2ef2c109eabso2656691fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 07:24: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
 a640c23a62f3a-a7acadb9819sm77628966b.205.2024.07.25.07.24.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Jul 2024 07:24: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: 974d9f04-4a91-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721917463; x=1722522263; 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=5iBzzJZKN4/MHgtaBxutVuuVQSTJdzlGsZw+uqwSav8=;
        b=SuLwDRse7VhhHYZCd7XVm2YDNIVRjhnPHmmaAs/sLh2DuDSZxCgCBockMj8sA7wl5X
         NHBOIDcgjLiVFCVGoJRSyuD5XxeZt2A0M/pkE/2WYbGnUOTdftlHr9dFSB7IydkRuEi5
         Z241ajt+Y9rli7FRpBrbI9Wtmw4HCXIazWoKUPZ1bbl9xoztUNFJr0kyNzQy+3RGOOwo
         arESLvF28VraH2HGufPf0boBn2ASi7V/gWJqdNp7oAZ++oIdcyqheKD8N8hAbeJv6yya
         6lQnWQQeKfS3+IUjzAu961hKZneWpOpiHK8fm+8CL7ItHxzkTPQSnxuOBEdhn/+vsp8t
         5Clg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721917463; x=1722522263;
        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=5iBzzJZKN4/MHgtaBxutVuuVQSTJdzlGsZw+uqwSav8=;
        b=pn1hh6Vg93HOKYc+OXwLqe/nIWGV1xiGwP1RP2KRpZEFiKqrsCmgnpIDrsLeOOrcCG
         4GOBm21IKPObCs6z3nfLIJycB6a7aZXoVcmrENGoqYPVHVyS3+CbnxCmGJFlybP6idcr
         kCX+sooPBbStODe9medUL1D5v2Q1UJ2cwMDcXVn33LUCxPMKG+nTzxBu5JytyX+1bbGA
         JujI+y15kgO0QTQa5AcNMCeUECFSLdMYaq8B2QoW1wkMPp/ktgBj6bUzziTPptG7iVcQ
         9+unguuvFqc1SpDtZ+o1XfdTu+G2dFkxOtAPDXvSMWoMKV91eKDBtqtqflTYq8MYCKPl
         9YBw==
X-Gm-Message-State: AOJu0YypS97N0Xhz7zhMP/RWXo9EukLbDUadhpvMLLiDf7ufS5ymz8lX
	pTk7R7RXS18+vDtke9WtWIneb5OdX0Bq8i/NIwikt9HD0Uobln6EG0XptVsKFwCg19kSK7XVosY
	=
X-Google-Smtp-Source: AGHT+IEHAmy1m5LmNTfJovbM/dElxgQ45vwBCGOV5ywYvgfZ26iv4YIV/49PvtTdcz2gvun6QWC2BA==
X-Received: by 2002:a05:6512:5cb:b0:52e:9428:c6dd with SMTP id 2adb3069b0e04-52fd609b9d9mr1321023e87.59.1721917463565;
        Thu, 25 Jul 2024 07:24:23 -0700 (PDT)
Message-ID: <2dbe1632-4959-4b15-ada6-c438bc300c2a@suse.com>
Date: Thu, 25 Jul 2024 16:24:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: preparations for 4.18.3 and 4.17.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 releases are due in about two weeks. Please point out backports you find
missing from the respective staging branches, but which you consider relevant.

Note that 4.17.5 is going to be the last Xen Project coordinated ordinary stable
release from the 4.17 branch; the branch will move into security-only support
mode afterwards.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 14:55:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 14:55:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765039.1175607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWzrv-00077r-F5; Thu, 25 Jul 2024 14:54:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765039.1175607; Thu, 25 Jul 2024 14: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 1sWzrv-00077k-C4; Thu, 25 Jul 2024 14:54:59 +0000
Received: by outflank-mailman (input) for mailman id 765039;
 Thu, 25 Jul 2024 14: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=KwaG=OZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWzru-00077Z-3v
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 14:54:58 +0000
Received: from mail-oi1-x22f.google.com (mail-oi1-x22f.google.com
 [2607:f8b0:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id db97351b-4a95-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 16:54:57 +0200 (CEST)
Received: by mail-oi1-x22f.google.com with SMTP id
 5614622812f47-3d9e13ef8edso594429b6e.2
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 07:54:57 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe8123fb1sm6871261cf.18.2024.07.25.07.54.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 07:54: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: db97351b-4a95-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721919296; x=1722524096; 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=onuCBAMg0ZTh1qjbMu/QgglL5loFwS5IkGrwQbw/xOY=;
        b=Y1sdfIUAKzCStGpEuCLr5TOExoG2rTHEZVUgm8vjQ6ySHjgWVzQYSPvk8szUOd+pOb
         H0APt5R/trTxdsYOrT9/1cRJhRu8fRUnoRKUXml2fHET1i1bYw+Bc7HZop7EElT0/0c8
         3ITcoNlxeYhoUmSnckFrqK1wo/VOVlrlrglNc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721919296; x=1722524096;
        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=onuCBAMg0ZTh1qjbMu/QgglL5loFwS5IkGrwQbw/xOY=;
        b=sx0la0gS2wm28jBF+iF0pmV3+SrHGpqWW/44WVlP3KMNVewQPL8XNPkz1s4WS2C3Im
         GyVDnQY29d0Hc+LoF2P3tMvjFq1w7rBeSThgWmpU84RYG6zlWTNZ8MZN06f+GMdNapaq
         eCbDLYwFfti6fC2jDIGknEi5W+ICw4ylZr0hbJxYesbMlXOqxAK/DoFXXJE6Lky6hioG
         zYJVxUMGJUN8s1L+N9BGONu7vVTCSOqPqcjyKZmPQHQc/Je4ADgQ4sw0s+k7hfDw/B21
         4zFYm3R7q5OTM3kpk1qMqu6YssVaMICtYDPXSqFzOkD1pAPcsioKuTTPPF4cJdjVJoDw
         8uxw==
X-Forwarded-Encrypted: i=1; AJvYcCW6UWuv2Z9j4VxRKPpc8P3rgBYN4vOl2TbSrQVTNUTX9qI8Fh7BjsG1lHWClfoybjSWd/1w26U16eov5U1IkRBrmDDpQOcAUClXwwIGFDY=
X-Gm-Message-State: AOJu0YyqGtAE0X5YWCyJJtpuibW8yJCpE5bpTVQuFIC8e6jO16xdYjmc
	ZTv8j0yDXQ3CAnznmMhJhursvmvKnCJa8FP1z/6R/RViUHTS5a4CpamZepIq7p0=
X-Google-Smtp-Source: AGHT+IF6uIXn51WotDMC7RtYtp1s0/WYA+bKu3G9qQ1Gr1PtkOzcNqb1VglvCEJUHgl+dkvxi+0G/g==
X-Received: by 2002:a05:6808:2029:b0:3d9:2c5a:c81a with SMTP id 5614622812f47-3db142650c7mr2483537b6e.50.1721919296105;
        Thu, 25 Jul 2024 07:54:56 -0700 (PDT)
Date: Thu, 25 Jul 2024 16:54:54 +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>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
Message-ID: <ZqJnPvL1ilDDzM9V@macbook>
References: <20240725105634.16825-1-roger.pau@citrix.com>
 <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com>

On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote:
> On 25.07.2024 12:56, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/include/asm/alternative.h
> > +++ b/xen/arch/x86/include/asm/alternative.h
> > @@ -184,11 +184,11 @@ extern void alternative_branches(void);
> >   * https://github.com/llvm/llvm-project/issues/82598
> >   */
> >  #define ALT_CALL_ARG(arg, n)                                            \
> > -    register union {                                                    \
> > -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> > -        unsigned long r;                                                \
> > +    register struct {                                                   \
> > +        typeof(arg) e;                                                  \
> > +        char pad[sizeof(void *) - sizeof(arg)];                         \
> 
> One thing that occurred to me only after our discussion, and I then forgot
> to mention this before you would send a patch: What if sizeof(void *) ==
> sizeof(arg)? Zero-sized arrays are explicitly something we're trying to
> get rid of.

I wondered about this, but I though it was only [] that we were trying
to get rid of, not [0].

> I was wondering whether we could get away resorting to bitfields, as those
> are well-defined when having a width of zero:
> 
>     register struct {                                                   \
>         typeof(arg) e;                                                  \
>         unsigned long pad:(sizeof(void *) - sizeof(arg)) * 8;           \
>     } ...
> 
> Yet when the width is zero, the field may not have name, whereas when the
> field uniformly doesn't have a name, Clang would, like also for
> 
>     register struct {                                                   \
>         typeof(arg) e;                                                  \
>         unsigned long :0;                                               \
>     } ...
> 
> regards that space as not needing any (re)init. Bottom line: For the
> moment I'm out of ideas.

Hm, I see.  I don't have any good ideas right now either.  Will put it
on the back burner and pick up later, already too much on my plate
right now to be playing clang games.  Thanks for your input.

Roger.


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 14:56:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 14:56:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765045.1175617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWztC-0007lP-RH; Thu, 25 Jul 2024 14:56:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765045.1175617; Thu, 25 Jul 2024 14:56: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 1sWztC-0007kE-O7; Thu, 25 Jul 2024 14:56:18 +0000
Received: by outflank-mailman (input) for mailman id 765045;
 Thu, 25 Jul 2024 14: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=KwaG=OZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sWztB-0007k4-Ty
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 14:56:17 +0000
Received: from mail-yw1-x1134.google.com (mail-yw1-x1134.google.com
 [2607:f8b0:4864:20::1134])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a7b1f3a-4a96-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 16:56:16 +0200 (CEST)
Received: by mail-yw1-x1134.google.com with SMTP id
 00721157ae682-6694b50a937so12643097b3.0
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 07:56:15 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f8d81d7sm8027786d6.1.2024.07.25.07.56.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 25 Jul 2024 07:56: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: 0a7b1f3a-4a96-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721919375; x=1722524175; 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=E4AwIE1qUdpDdyhq95igZC041Bcf6gYh00JLvLezD1o=;
        b=LN+EfiLmM2r1OLOuqR/yoEubwy7W5sj9vZfvoCRLyiuo3fUYADXPjB486mGhzCJxtO
         n7jtTCipYna95qBUW7V4DlyyDhVxTufM4b7BXbjj5nuLpu3wWr2GcVJ5kvg0FdGhStma
         sCy4x39sNWtjXO6ULyD97iYIhkaZ9l4YcTgsU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721919375; x=1722524175;
        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=E4AwIE1qUdpDdyhq95igZC041Bcf6gYh00JLvLezD1o=;
        b=cpL9A3bvFMs6q6MlPSRBUgEQXP2Hq2pi4UIfBFCA3Vb1HfMzWkcugyhsLlw7OnNYeZ
         j/krh3ZQW+MgRA3pz/lWxLZ9nx7OZSZRu0d4pAcSu/Swo12McDIqKAKk9SsvS0rzcCIo
         k4eBES1X4VcZsBz1cU6rZhR0MtsFcHO0ptFI1I7ssmDD5wE4k8tnIc80p+nUCIgxiiuo
         0WMxdoLfPjakQZDXgcT37DUT2y6XrD8LIDbqobbfwRYtGw51mHIIqp3qzoooB7MipeDz
         207EbQieMPEl3rjR46VXE5RlsKIZu06M7y+xuG7XfaGytPH1DxlluA9jkR/XREdTwKII
         /e7Q==
X-Gm-Message-State: AOJu0YzqgvpVJ1s9PWfCMeYvw4FdBHYTfOma3Fja7AsDWV0yrJMRvmCZ
	YDEEpdDo9fLb4AgGFnr2pFSX0ZoU8Mva6d+OFn8v9oo3naQ+hQYkzd1IE/0IjRg=
X-Google-Smtp-Source: AGHT+IHEM3aG+B4ili8UmU0BLDY0jUN8kzMFsu5pcohs927DRHXUTgxwr+WYqLjPChrN/kuas9SJyw==
X-Received: by 2002:a05:690c:490c:b0:64b:6f7f:bc29 with SMTP id 00721157ae682-675b949d34emr31660307b3.16.1721919374725;
        Thu, 25 Jul 2024 07:56:14 -0700 (PDT)
Date: Thu, 25 Jul 2024 16:56:12 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: xen-devel@lists.xenproject.org,
	Community Manager <community.manager@xenproject.org>,
	"committers @ xenproject . org" <committers@xenproject.org>
Subject: Re: [PATCH] CHANGELOG.md: Finalize changes in 4.19 release cycle
Message-ID: <ZqJnjCt_tt3l6qNj@macbook>
References: <b0e62915605cbc00548afd70c5fad81f57ce5217.1721913394.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <b0e62915605cbc00548afd70c5fad81f57ce5217.1721913394.git.oleksii.kurochko@gmail.com>

On Thu, Jul 25, 2024 at 03:20:29PM +0200, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  CHANGELOG.md | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index f8fbe82df6..39e8737e61 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -15,6 +15,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     - Reduce IOMMU setup time for hardware domain.
>     - Allow HVM/PVH domains to map foreign pages.
>     - Declare PVH dom0 supported with caveats.
> + - On Arm:
> +   - Reworking the logic so all the MMU-off code is now self-contained for
> +     secondary boot CPUs on arm64.
> +   - Code symbol annotations and MISRA compliance improvements.
> +   - Addressing issues of the static shared memory feature.
> + - On PPC:
> +   - Minor fixes and improvements:
> +     - Add .text.exceptions section for exception vectors.
> +     - Replace debug printing code with printk.
> +     - Address violations of MISRA C:2012 Rule 11.8.
> +     - Ensure ELF sections' physical load addresses start at 0x0.
>   - xl/libxl configures vkb=[] for HVM domains with priority over vkb_device.
>   - Increase the maximum number of CPUs Xen can be built for from 4095 to
>     16383.
> @@ -23,6 +34,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     using a standalone library implementation.
>   - xenalyze no longer requires `--svm-mode` when analyzing traces
>     generated on AMD CPUs
> + - CI updates:
> +   - minimum fixes to rebuild the containers, following the HEREDOC problems.
> +   - rebuild containers to have testing with up-to-date LTS distros.
> +   - few build system checks, and strip the obsolete contents of
> +     the build containers.

Nit: the above items want to start with uppercase letters.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 15:00:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 15:00:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765053.1175626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sWzxF-00010D-Ar; Thu, 25 Jul 2024 15:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765053.1175626; Thu, 25 Jul 2024 15: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 1sWzxF-000106-8B; Thu, 25 Jul 2024 15:00:29 +0000
Received: by outflank-mailman (input) for mailman id 765053;
 Thu, 25 Jul 2024 15: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=/1nn=OZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sWzxD-000100-PF
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 15:00:27 +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 a03f033c-4a96-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 17:00:26 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a7a94aa5080so80036566b.3
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 08: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
 a640c23a62f3a-a7acadb82e7sm80605066b.208.2024.07.25.08.00.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 25 Jul 2024 08: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: a03f033c-4a96-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721919626; x=1722524426; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Cxh0yHJTpeufZlceGuugsvM4+7leklw3kg0qM/qkq70=;
        b=eckakWNhroVpewnpM98eBFno7Hhyrzab+aXGIt/7oFoxSsE0hT1s54XiFTHgySvvMT
         IVmFrn0xs4MqaT1jEUNsyTzwuItB3/GWN7vnF/R+pA2WuMdaDIQzjDYGzEa8CyeruwLq
         HL82P1rzbjCOUvGkLDGI0s/I35zjim5OARKSBQssSH3UaMLSdQrvCulJmOkUj2zzLGDK
         2G4W4FwK3yqUPuSk7EU4KaGCFSzaI+7ZpkmlRj45NL6672aNXHYbFWvhUolHwbhXKXbN
         76/uIJO65dMS74InPsEbzEq2ezjhAbmCMTSn9eoBU95U1VTJjKMFL5QZqgPx3TPP0A1m
         KSJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721919626; x=1722524426;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Cxh0yHJTpeufZlceGuugsvM4+7leklw3kg0qM/qkq70=;
        b=TmZ6T+wZg822bukyiI2X+CnrwaLqNtOItSBwMj/trbS0KHu7Sq0if+eEfe+Vd9YSsW
         lkw8sCrrW8VgpJctliVZa/VY5OcNRqUC3sI++tjYNxelLYWcn2/JFIlEtNKax0iA7eW8
         sCw26/BMw9oCWix+jmz1BpjSoVpR/fuhHkA+xkuuSaywz3ohoG2i0SUYyQYuhGak1mNf
         JpVCPtEbqRW8iqerIr7VbNd1xqZnngiifEFyZGVRhV/um7VazYq9PBLRimeSKhSdY+Jg
         2YzBISvfA5fql4L3Gw8l1SmXQySzpKC0JdSWmc+cRk4WjpRUbMQSBi23RS0nqExe6W/4
         krJA==
X-Forwarded-Encrypted: i=1; AJvYcCWVtiqLwh/qVtKX7MUtK/YkvEgiawspzM1R+Ln+A9zIH94txtX9NTj6Qw+b6WvvheZoiQEVm8t4hAJWsRDUFCjc0B1S9HLFeQMgrczeAZ0=
X-Gm-Message-State: AOJu0YzS1WlNNBq5UMcWcwottFEeUeCRPEz6FUPXYhm7rrwork+KtAc+
	s/C0vayyXvc3DnX77MMcmI/h5LmyIjPzrMTaQQtL0txEMhe9qJJ+4KtB8s6WHg==
X-Google-Smtp-Source: AGHT+IFyowGV1+MtMYonO+h21VwgvuF3xVxTfyf+6m9MpIadJsyBW7QWC686YozSThY8lmX6iW4rLg==
X-Received: by 2002:a17:907:6d17:b0:a7a:9144:e251 with SMTP id a640c23a62f3a-a7acb38edc8mr196931666b.11.1721919626172;
        Thu, 25 Jul 2024 08:00:26 -0700 (PDT)
Message-ID: <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com>
Date: Thu, 25 Jul 2024 17:00:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org
References: <20240725105634.16825-1-roger.pau@citrix.com>
 <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com> <ZqJnPvL1ilDDzM9V@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZqJnPvL1ilDDzM9V@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.07.2024 16:54, Roger Pau Monné wrote:
> On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote:
>> On 25.07.2024 12:56, Roger Pau Monne wrote:
>>> --- a/xen/arch/x86/include/asm/alternative.h
>>> +++ b/xen/arch/x86/include/asm/alternative.h
>>> @@ -184,11 +184,11 @@ extern void alternative_branches(void);
>>>   * https://github.com/llvm/llvm-project/issues/82598
>>>   */
>>>  #define ALT_CALL_ARG(arg, n)                                            \
>>> -    register union {                                                    \
>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
>>> -        unsigned long r;                                                \
>>> +    register struct {                                                   \
>>> +        typeof(arg) e;                                                  \
>>> +        char pad[sizeof(void *) - sizeof(arg)];                         \
>>
>> One thing that occurred to me only after our discussion, and I then forgot
>> to mention this before you would send a patch: What if sizeof(void *) ==
>> sizeof(arg)? Zero-sized arrays are explicitly something we're trying to
>> get rid of.
> 
> I wondered about this, but I though it was only [] that we were trying
> to get rid of, not [0].

Sadly (here) it's actually the other way around, aiui.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 15:32:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 15:32:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765062.1175637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX0RZ-0005Le-M8; Thu, 25 Jul 2024 15:31:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765062.1175637; Thu, 25 Jul 2024 15: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 1sX0RZ-0005LX-JN; Thu, 25 Jul 2024 15:31:49 +0000
Received: by outflank-mailman (input) for mailman id 765062;
 Thu, 25 Jul 2024 15:31:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3wvf=OZ=bounce.vates.tech=bounce-md_30504962.66a26fe0.v1-1aff5e7615cf4445bc978cfa9b42682f@srs-se1.protection.inumbo.net>)
 id 1sX0RY-0005LR-4b
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 15:31:48 +0000
Received: from mail177-18.suw61.mandrillapp.com
 (mail177-18.suw61.mandrillapp.com [198.2.177.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 001fa911-4a9b-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 17:31:46 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-18.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4WVFH45jZZzCf9QZ2
 for <xen-devel@lists.xenproject.org>; Thu, 25 Jul 2024 15:31:44 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1aff5e7615cf4445bc978cfa9b42682f; Thu, 25 Jul 2024 15:31: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: 001fa911-4a9b-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1721921504; x=1722182004;
	bh=a3TUdkuBh4DWTRcuXtKOWymiELHH4Spp935SCdmXsoA=;
	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=1sMF8OWYPNdQZE8Nu30TIXyTQVM97ca+hMUNXMjuNLmrKk9LITB130yV8HSM9+7h+
	 3vnZHSPZBNYoM9t+dlWlFjrr9BkHKOLiasUJas7Api7MFo3Da3tGSMbUn8YUkz+k2M
	 Is82llP0oJ88XO51+Sv40DVkDMiH1IMJfCYrHMir7ReMPdH2IuKuOTt8Cs6yTa8Gwy
	 L3NK3Yxg5MHZQSGUTKK52Yh34w5kY5T5YNBaHLyUTIt11pNx7VrONK1mtQ7Pvgq2uu
	 fo+V3hbPqDX94VCF3eYkB6zYROUxIgQDhyl8YB0lAL7jXU29zecqJiiQK3hSjInRFL
	 YOzfk1pxRs1Uw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1721921504; x=1722182004; i=anthony.perard@vates.tech;
	bh=a3TUdkuBh4DWTRcuXtKOWymiELHH4Spp935SCdmXsoA=;
	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=u6+GN1cWWPwuXXtRCs1sHlAwS/rpXdi5xQJiT+8mswdDY4xJ0U9exgsa0RAWahTbw
	 pR8PMrVksviMWqZfdUwxtCpfwmhJH3D2/weUL5kGjibuQpwCa2D7gufmcdsOYgtc7W
	 aUbGjAR61WEVPg4nQ4UTOb18Av/3rFLyBV0MyY8voRht16+zY1gnDiXg7I3jHbfI0D
	 qTht+azgTsWuGB2W6m3yKcOTD+bkJVnUw5gHVPZNzG+NLDFvEbgK0UozqoKB5R2Osn
	 nrtbhKbVgew2TnNxailkwzQqb+3OefEaKsl8a3rqyUONxV/YQ5pEgoLT6eb59PL0Sy
	 1qQPqgG5nmMDw==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3]=20libxl:=20Enable=20stubdom=20cdrom=20changing?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1721921503339
To: Jason Andryuk <jandryuk@gmail.com>
Cc: xen-devel@lists.xenproject.org, Jason Andryuk <jason.andryuk@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross <jgross@suse.com>
Message-Id: <ZqJv3rflSUC0Iv1d@l14>
References: <20240516021010.3783-1-jandryuk@gmail.com>
In-Reply-To: <20240516021010.3783-1-jandryuk@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.1aff5e7615cf4445bc978cfa9b42682f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240725:md
Date: Thu, 25 Jul 2024 15:31:44 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Wed, May 15, 2024 at 10:10:10PM -0400, Jason Andryuk wrote:
> +static void cdrom_insert_stubdom_parse_fdset_rm(libxl__egc *egc,
> +                                                libxl__ev_qmp *qmp,
> +                                                const libxl__json_object *resp,
> +                                                int rc)
> +{
> +    EGC_GC;
> +    libxl__cdrom_insert_state *cis = CONTAINER_OF(qmp, *cis, qmp);
> +    int devid;
> +    int fdset;
> +
> +    if (rc) goto out;
> +
> +    /* Only called for qemu-xen/linux stubdom. */
> +    assert(cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
> +
> +    devid = libxl__device_disk_dev_number(cis->disk->vdev, NULL, NULL);
> +    fdset = query_fdsets_find_fdset(gc, resp, devid);
> +    if (fdset < 0) {
> +        rc = fdset;
> +        goto out;
> +    }
> +
> +    LOGD(DEBUG, cis->domid, "Found fdset %d", fdset);
> +
> +    libxl__json_object *args = NULL;
> +
> +    libxl__qmp_param_add_integer(gc, &args, "fdset-id", fdset);
> +
> +    cis->qmp.callback = cdrom_insert_stubdom_ejected;
> +
> +    rc = libxl__ev_qmp_send(egc, &cis->qmp, "remove-fd", args);
> +    if (rc) goto out;
> +
> +    return;
> +
> + out:
> +    if (rc == ERROR_NOTFOUND) {
> +        LOGD(DEBUG, cis->domid, "No fdset found - skipping remove-fd");
> +        cdrom_insert_stubdom_ejected(egc, qmp, resp, 0);

I think technically, cdrom_insert_stubdom_ejected also "must be last",
like cdrom_insert_done, for one thing it actually call cdrom_insert_done
in some cases. I think we used "/* must be last */" to indicate that
resources used by the current chain of callback could be freed,
including `egc`, `gc`, `ao`. There's quite a few more calls in this
patch that would benefit from the annotation. But we can live without
those.

> +    } else {
> +        cdrom_insert_done(egc, cis, rc); /* must be last */
> +    }
> +}
[...]
> +static void cdrom_insert_stubdom_parse_fdset(libxl__egc *egc,
> +                                             libxl__ev_qmp *qmp,
> +                                             const libxl__json_object *response,
> +                                             int rc)
> +{
> +    EGC_GC;
> +    libxl__cdrom_insert_state *cis = CONTAINER_OF(qmp, *cis, qmp);
> +    int devid;
> +    int fdset;
> +
> +    if (rc) goto out;
> +
> +    /* Only called for qemu-xen/linux stubdom. */
> +    assert(cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
> +
> +    devid = libxl__device_disk_dev_number(cis->disk->vdev, NULL, NULL);
> +    fdset = query_fdsets_find_fdset(gc, response, devid);
> +    if (fdset < 0) {
> +        rc = fdset;
> +        goto out;
> +    }
> +
> +    cis->stubdom_fdset = fdset;
> +
> +    LOGD(DEBUG, cis->domid, "Found fdset %d", cis->stubdom_fdset);
> +    cdrom_insert_ejected(egc, &cis->qmp, NULL, rc);
> +    return;
> +
> + out:
> +    if (rc == ERROR_NOTFOUND) {

While in the previous function it seems ok to deal with the NOTFOUND
error in the "out:" path, I don't think it's a good idea here as it is
an expected part of the workflow of this callback, and not an error.

Could you move setting this timer above again? I guess something like
that would work fine:

  fdset = query_fdsets_find_fdset()
  if (fdset == ERROR_NOTFOUND) {
    // doesn't exist yet, wait a bit
    rc = libxl__ev_time_register_rel()
    if (rc) goto out;
    return
  }
  if (fdset < 0) {
  ...

Or also possible to deal with all error from query_fdsets..() first with
something like:
  if (fdset < 0 && fdset != ERROR_NOTFOUND) {
    rc = fdset;
    goto out;
   ...


> +        rc = libxl__ev_time_register_rel(cis->ao, &cis->retry_timer,
> +                                         cdrom_insert_stubdom_query_fdset,
> +                                         200);
> +        if (rc) goto out;

That "goto out" after the "out" label makes this even stranger and even
a potential infinite loop if `rc` would happen to be set to
ERROR_NOTFOUND again, which I don't think can happen right now.

> +        return;
> +    }
> +
> +    cdrom_insert_done(egc, cis, rc); /* must be last */
> +}


Otherwise patch looks good, with just the comment in
cdrom_insert_stubdom_parse_fdset
act on: 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 Jul 25 17:08:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 17:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765075.1175647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX1wc-00086t-BO; Thu, 25 Jul 2024 17:07:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765075.1175647; Thu, 25 Jul 2024 17: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 1sX1wc-00086m-8c; Thu, 25 Jul 2024 17:07:58 +0000
Received: by outflank-mailman (input) for mailman id 765075;
 Thu, 25 Jul 2024 17:07:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sX1wa-00086c-LA; Thu, 25 Jul 2024 17:07:56 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sX1wa-0003yC-An; Thu, 25 Jul 2024 17:07:56 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sX1wZ-0003mu-U2; Thu, 25 Jul 2024 17:07:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sX1wZ-0001yM-TX; Thu, 25 Jul 2024 17: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=3uZXyVMBIOTNCkaganWQll+54DsHm4AedOEv5dm6aR8=; b=S/YmI+hgN72gvJZNuLd3nK30a3
	gytmoiM5o7NxHkoEIKXY30YTUpL9/I2bs8x0xBQJR6Zg8ICSJ5OA+BGuz5b7xraSgHQ8PHOBllGXu
	xecoMFe7hVBak8ud051Y3v/RH8uzMR5LFYJ/DIcfZvqj6aHBDGpPC3GwLnM7yk6Myb0s=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187001-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 187001: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
X-Osstest-Versions-That:
    xen=c6661e89102065d3e04799b9baa9f928a1fc40da
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 17:07:55 +0000

flight 187001 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187001/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186985
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186985
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186985
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186985
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186985
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186985
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847
baseline version:
 xen                  c6661e89102065d3e04799b9baa9f928a1fc40da

Last test of basis   186985  2024-07-24 17:10:37 Z    0 days
Testing same since   187001  2024-07-25 07:40:45 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   c6661e8910..b25b28ede1  b25b28ede1cba43eda1e0b84ad967683b8196847 -> master


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 18:57:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 18:57:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765095.1175673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX3eG-0004Gl-13; Thu, 25 Jul 2024 18:57:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765095.1175673; Thu, 25 Jul 2024 18: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 1sX3eF-0004Ge-TX; Thu, 25 Jul 2024 18:57:07 +0000
Received: by outflank-mailman (input) for mailman id 765095;
 Thu, 25 Jul 2024 18: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=uDAE=OZ=byiq.org=techguru@srs-se1.protection.inumbo.net>)
 id 1sX3eA-0004GW-Ob
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 18:57:07 +0000
Received: from smtp-8fa8.mail.infomaniak.ch (smtp-8fa8.mail.infomaniak.ch
 [83.166.143.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac697eaf-4ab7-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 20:57:00 +0200 (CEST)
Received: from smtp-3-0000.mail.infomaniak.ch (smtp-3-0000.mail.infomaniak.ch
 [10.4.36.107])
 by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4WVKqv5ZBkzqNk;
 Thu, 25 Jul 2024 20:56:59 +0200 (CEST)
Received: from unknown by smtp-3-0000.mail.infomaniak.ch (Postfix) with ESMTPA
 id 4WVKqt6zSLzW6L; Thu, 25 Jul 2024 20:56: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: ac697eaf-4ab7-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=byiq.org;
	s=20191114; t=1721933819;
	bh=BRruTllybKIIf3F/b0lHofkv4WQ2TL5jHRPMDfFiy5M=;
	h=Date:Subject:From:Reply-To:To:Cc:References:In-Reply-To:From;
	b=KjwEwEtawkqBhufkLOwXenWwrhJcdeR6FtSVoJeJWGsQrxbW09GIPutAWPUcodPrN
	 1Y4xePjiuogn5XYMSNrjdCDNK8hXSD9W5oKeDbHrJz068oHRxnRErrBpR7utITG3Ko
	 SWkt2ptciYxNOswqYmmNWoRFIvbj0qSvKSaotonI=
Message-ID: <99c8f34c61b59a16edb0fd11d214267e@mail.infomaniak.com>
Date: Thu, 25 Jul 2024 20:56:58 +0200
Subject: Re: Xen for Apple Silicon (M1 and beyond)
From: Techguru <techguru@byiq.org>
Reply-To: Techguru <techguru@byiq.org>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, Michal Orzel <michal.orzel@amd.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Julien Grall <julien@xen.org>
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="_=_swift_1721933818_e06b5c8fb8646690b380d5680f631849_=_"
X-WS-User-Origin: eyJpdiI6ImlHSkt6eHlPMDBPeVJKSFN0WHZNQ1E9PSIsInZhbHVlIjoicG9wbWR2Z0N2UGxkM2RRUzhWRlIzZz09IiwibWFjIjoiMjdmMjIwMWNkZjQxNjY3MjM1ODYxOWVmMDE2MjllZGJhNDIwY2Q3OTViYTcwOTllOGUzZjgxOGRjOTI3NjExZiIsInRhZyI6IiJ9
X-WS-User-Mbox: eyJpdiI6ImZlc3lnOStTaXNpZWV6N0ZLdDBuVUE9PSIsInZhbHVlIjoiVTBtM1JweVdqNWdVZHYvNUFYS1lxdz09IiwibWFjIjoiNDAyODk4OGYyZTA2NjA0NzQyOTgyYzk1NTNlYjMzYjAwYWY0NmVkMmYxZTk4Y2E0NDIwNmY3NWQzYzE2Y2YwZCIsInRhZyI6IiJ9
X-WS-Location: eJxzKUpMKykGAAfpAmU-
X-Mailer: Infomaniak Workspace (1.3.725)
References: <d5c3e0900db98aaaeb7fb52f16598257@mail.infomaniak.com>
 <alpine.DEB.2.22.394.2407241309170.4857@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2407241309170.4857@ubuntu-linux-20-04-desktop>
X-Infomaniak-Routing: alpha


--_=_swift_1721933818_e06b5c8fb8646690b380d5680f631849_=_
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

A bit about Apple Silicon M1(2,3,4) architecture, SoC and motherboard.
(A=
FAIK)

There are no EFI assumptions nor contracts, and no EFI firmware.=


Between those 4 generations of silicon, there are about 80 different=

roles "SoC cores/components" can play, each with its own signed Apple
=
Firmware.

Most of those SoC cores/functions have nothing to do with th=
e
traditional ARM compute cores.

At least one of those SoC cores is =
actually an x86 processor core (on
models which support HDMI), running x8=
6 firmware.

Many of the other non-compute cores (Networking, USC (A-C)=
,
Thunderbolt ... yada yada) are various size Arm cores running an Apple=

RTOS Variant of L4 microkernel.

Each of those, again, has its own A=
pple Signed firmware which is
paired with a particular Darwin kernel rele=
ase.

One point of friction is that there is no stable ABI spec for eac=
h of
the firmware modules. =C2=A0 Apple reserves the right to completely =
change
the firmware's

interface with the paired Darwin kernel.

=
It is perhaps best to think of the SoC and related motherboard
hardware a=
s a "compute cluster" rather than a single von-neuman
machine.

I cou=
ld be wrong about a lot of the above, and invite corrections with
citatio=
ns.

>=C2=A0For=C2=A0this,=C2=A0do=C2=A0you=C2=A0know=C2=A0if=C2=A04K=
=C2=A0pages=C2=A0are=C2=A0supported=C2=A0(in=C2=A0addition=C2=A0to=C2=A016K=
)?=C2=A0It
>=C2=A0
>=C2=A0would=C2=A0be=C2=A0a=C2=A0lot=C2=A0easier=
=C2=A0to=C2=A0keep=C2=A0running=C2=A0Xen=C2=A0using=C2=A04K=C2=A0pages=
=C2=A0and=C2=A0run=C2=A0guests
>=C2=A0
>=C2=A0on=C2=A0top=C2=A0of=C2=
=A0Xen=C2=A0which=C2=A0use=C2=A016K=C2=A0pages.=C2=A0In=C2=A0the=C2=A0past,=
=C2=A0we=C2=A0had=C2=A0Linux=C2=A0using=C2=A064K
>=C2=A0
>=C2=A0pages=
=C2=A0running=C2=A0on=C2=A0top=C2=A0of=C2=A0Xen=C2=A0using=C2=A04K=C2=A0pag=
es=C2=A0for=C2=A0example.

Given the state of all of the _other_ SoC co=
res running L4 RTOS, I
have reservations about running with anything othe=
r than 16k native
pages. =C2=A0Will have to

investigate what options=
, if any, are available for keeping 16k pages
for existing firmware, whil=
e presenting 4k pages to guest OS.

However, both Rosetta and Docker ap=
pear to run 4k guests just fine, so
not sure how many pushups they are do=
ing in the process.

TBD

>>=C2=A0=C2=A0device=C2=A0trees;
>=
=C2=A0
>=C2=A0You=C2=A0might=C2=A0be=C2=A0able=C2=A0to=C2=A0use=C2=A0the=
=C2=A0device=C2=A0tree=C2=A0which=C2=A0is=C2=A0used=C2=A0to=C2=A0boot=C2=
=A0Linux
>=C2=A0on
>=C2=A0
>=C2=A0Apple=C2=A0silicon

Yes, the As=
ahi team has done some wizard level heavy lifting in that
area. =C2=A0If =
I recall correctly, their model is let apple boot loader
load the apple s=
igned firmware, pass off to the Asahi boot kernel,
=C2=A0then present an =
EFI compatible DT and driver surface on top of that
for boot-essential dr=
ivers. =C2=A0They also have a fairly nifty
lightweight hypervisor that as=
sists with debug and ultimately does
boot via u-boot -> grub -> linux in =
the current incarnation

>=C2=A0



--_=_swift_1721933818_e06b5c8fb8646690b380d5680f631849_=_
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><body><div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, =
sans-serif; font-size: 14px">A bit about Apple Silicon M1(2,3,4) architectu=
re, SoC and motherboard. (AFAIK)<br></div><div style=3D"font-family: 'Helve=
tica Neue', Helvetica, Arial, sans-serif; font-size: 14px"><br></div><div s=
tyle=3D"font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-s=
ize: 14px">There are no EFI assumptions nor contracts, and no EFI firmware.=
<br></div><div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, sa=
ns-serif; font-size: 14px">Between those 4 generations of silicon, there ar=
e about 80 different roles "SoC cores/components" can play, each with its o=
wn signed Apple Firmware.<br></div><div style=3D"font-family: 'Helvetica Ne=
ue', Helvetica, Arial, sans-serif; font-size: 14px">Most of those SoC cores=
/functions have nothing to do with the traditional ARM compute cores.<br></=
div><div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, sans-ser=
if; font-size: 14px">At least one of those SoC cores is actually an x86 pro=
cessor core (on models which support HDMI), running x86 firmware.<br></div>=
<div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; =
font-size: 14px">Many of the other non-compute cores (Networking, USC (A-C)=
, Thunderbolt ... yada yada) are various size Arm cores running an Apple RT=
OS Variant of L4 microkernel.<br></div><div style=3D"font-family: 'Helvetic=
a Neue', Helvetica, Arial, sans-serif; font-size: 14px">Each of those, agai=
n, has its own Apple Signed firmware which is paired with a particular Darw=
in kernel release.<br></div><div style=3D"font-family: 'Helvetica Neue', He=
lvetica, Arial, sans-serif; font-size: 14px">One point of friction is that =
there is no stable ABI spec for each of the firmware modules. &nbsp; Apple =
reserves the right to completely change the firmware's<br></div><div style=
=3D"font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size:=
 14px">interface with the paired Darwin kernel.<br></div><div style=3D"font=
-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px"><=
br></div><div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, san=
s-serif; font-size: 14px">It is perhaps best to think of the SoC and relate=
d motherboard hardware as a "compute cluster" rather than a single von-neum=
an machine.<br></div><div style=3D"font-family: 'Helvetica Neue', Helvetica=
, Arial, sans-serif; font-size: 14px"><br></div><div style=3D"font-family: =
'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px">I could be=
 wrong about a lot of the above, and invite corrections with citations.<br>=
</div><div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, sans-s=
erif; font-size: 14px"><br></div><div class=3D"ik_mail_quote answerContentM=
essage"><blockquote class=3D"ws-ng-quote"><pre style=3D"white-space: normal=
;"><div>For this, do you know if 4K pages are supported (in addition to 16K=
)? It<br></div><div>would be a lot easier to keep running Xen using 4K page=
s and run guests<br></div><div>on top of Xen which use 16K pages. In the pa=
st, we had Linux using 64K<br></div><div>pages running on top of Xen using =
4K pages for example.<br></div></pre></blockquote></div><div style=3D"font-=
family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px">Gi=
ven the state of all of the _other_ SoC cores running L4 RTOS, I have reser=
vations about running with anything other than 16k native pages. &nbsp;Will=
 have to<br></div><div style=3D"font-family: 'Helvetica Neue', Helvetica, A=
rial, sans-serif; font-size: 14px">investigate what options, if any, are av=
ailable for keeping 16k pages for existing firmware, while presenting 4k pa=
ges to guest OS.<br></div><div style=3D"font-family: 'Helvetica Neue', Helv=
etica, Arial, sans-serif; font-size: 14px"><br></div><div style=3D"font-fam=
ily: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px">Howev=
er, both Rosetta and Docker appear to run 4k  guests just fine, so not sure=
 how many pushups they are doing in the process.<br></div><div style=3D"fon=
t-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px">=
<br></div><div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, sa=
ns-serif; font-size: 14px">TBD</div><div class=3D"ik_mail_quote answerConte=
ntMessage"><blockquote class=3D"ws-ng-quote"><pre style=3D"white-space: nor=
mal;"><div style=3D"font-family: 'Helvetica Neue', Helvetica, Arial, sans-s=
erif; font-size: 14px"><br></div><blockquote class=3D"ws-ng-quote">  device=
 trees;<br></blockquote><div> <br></div><div>You might be able to use the d=
evice tree which is used to boot Linux on<br></div><div>Apple silicon<br></=
div></pre></blockquote></div><div style=3D"font-family: 'Helvetica Neue', H=
elvetica, Arial, sans-serif; font-size: 14px">Yes, the Asahi team has done =
some wizard level heavy lifting in that area. &nbsp;If I recall correctly, =
their model is let apple boot loader load the apple signed firmware, pass o=
ff to the Asahi boot kernel, &nbsp;then present an EFI compatible DT and dr=
iver surface on top of that for boot-essential drivers. &nbsp;They also hav=
e a fairly nifty lightweight hypervisor that assists with debug and ultimat=
ely does boot via u-boot -&gt; grub -&gt; linux in the current incarnation<=
br></div><div class=3D"ik_mail_quote answerContentMessage"><blockquote clas=
s=3D"ws-ng-quote"><pre style=3D"white-space: normal;"><div><br></div></pre>=
</blockquote></div><div style=3D"font-family: 'Helvetica Neue', Helvetica, =
Arial, sans-serif; font-size: 14px"><br></div></body></html>


--_=_swift_1721933818_e06b5c8fb8646690b380d5680f631849_=_--



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 19:02:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 19:02:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765102.1175684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX3jE-0005m0-JK; Thu, 25 Jul 2024 19:02:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765102.1175684; Thu, 25 Jul 2024 19:02:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX3jE-0005lt-Ez; Thu, 25 Jul 2024 19:02:16 +0000
Received: by outflank-mailman (input) for mailman id 765102;
 Thu, 25 Jul 2024 19:02: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=4Kni=OZ=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1sX3jD-0005ln-Qf
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 19:02:15 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2412::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 669951b1-4ab8-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 21:02:14 +0200 (CEST)
Received: from PH7P220CA0121.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:327::10)
 by CY8PR12MB7708.namprd12.prod.outlook.com (2603:10b6:930:87::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.20; Thu, 25 Jul
 2024 19:02:09 +0000
Received: from SJ1PEPF0000231C.namprd03.prod.outlook.com
 (2603:10b6:510:327:cafe::19) by PH7P220CA0121.outlook.office365.com
 (2603:10b6:510:327::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.28 via Frontend
 Transport; Thu, 25 Jul 2024 19:02:09 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF0000231C.mail.protection.outlook.com (10.167.242.233) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.11 via Frontend Transport; Thu, 25 Jul 2024 19:02:08 +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, 25 Jul
 2024 14:02:07 -0500
Received: from xsjwoods50.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; Thu, 25 Jul 2024 14:02: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: 669951b1-4ab8-11ef-bbff-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mhIvIghJ8QBuWYsLcQLvqh8NerZ941yaZmnvz5V+AJXXKVHDKeI5D72Qi1CcHDVySJyR+dLsmFlokNuyolABnYbflczQIMvOhWiGGqC5Uime5cNja/xHvWn0PFWmXPO9teh2U1uU19QgiShs9n8W+uxa3JSh+7NZLBPH5a+o8srHkhnSYEYIPDrAdFG0MRfISyfhtrSMQJ522YAJEotL+pyPlPCGS3njsukoF8n6BOo7WkLarwYY/GGWKeUr3iQYP+T8uTRNbGcNqMSKj0UqMkRtay1sIsksMnOzqfHHzCGcmVGW2W/WqOboNdnD8YdY8GXXbBTtKskpI4nEqYuJJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IFmmQR3vnXMbekwltZbuh3LwRrigr6liLi100vVOUTU=;
 b=uCk3PwvSqkIv3m9r0IXNU99YzwJxahqWNtw2Iry3byHQfm1r6iMnXTJ3HUcm5FELJaFEqgUrKd2a1rbIWujBwI14i7r5PZe/E+sFEt1Flasb7m0Zay+6cVB8IXsgRRV3JHmC1qLjRdZ/6BlNrPgAQP+mB31vgRPMIgS3Q367J5Bi9Pf5Ey1PlGNDYFabSVQ1cjyK9tS8Aw9HxBxKrH/j/Cj2uBQy0xk18XWqvbCkEAkjsqQ7YJwLE6JUZAVk+uHtxN8fi9nPsELrv/WElSbcMcxZWOgsS5V8C1Q7pUMDg+cFeOXyRTT88Lu1FHYVAn4vHAQRWFT3OesXX6/oeBhKjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IFmmQR3vnXMbekwltZbuh3LwRrigr6liLi100vVOUTU=;
 b=KuwGFwP1RNRQYXtN6tPWhvH5at7Lz427SF5gFOkllir4zHeSBpT5sPKu/FVDODId5ZLuacEPcW2NwXIRAJrXfKoTz3YLo4W1DLzNSAAEN7/0ymDrvWeeHt9FvUngP3Qbi8vZ8bcT3i0p6tiouQNVpbdGbhNjr4NsdXXj8CRlqNg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: Victor Lira <victorm.lira@amd.com>, Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>, <roberto.bagnara@bugseng.com>,
	<consulting@bugseng.com>, <simone.ballarin@bugseng.com>
Subject: [RFC PATCH v3] automation: add linker symbol name script
Date: Thu, 25 Jul 2024 12:01:53 -0700
Message-ID: <29c7f6cd166d5d3c0e9f64dc937e29dc7ecf3f2d.1721933988.git.victorm.lira@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: victorm.lira@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231C:EE_|CY8PR12MB7708:EE_
X-MS-Office365-Filtering-Correlation-Id: 7fc53d28-8ef3-48d4-611d-08dcacdc489a
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?xrU38c5t3ugPFMFYBHecvU9bnPeNSIYvhQ02OFGT4UvFzSgBvOaBZ+z0mdcG?=
 =?us-ascii?Q?UA8mttsJcgI0ewhQOuB5KsqSvZD/EueCefwB+7aEeEYi+bnkDNEqLfCO6BsE?=
 =?us-ascii?Q?jIRVGAmA8PDkRbT5oQICWhB+QhP75Aw5r1TzKxfBjVN5A3o3uDWb3zaqNkta?=
 =?us-ascii?Q?vXas5djxFbjbfSt0P9QtvohSV0rULiXRGUR73rjgm3ADOQPzHS7aG/31mW5L?=
 =?us-ascii?Q?nL7UXn3MmXJpYRwXRZ3tSgQIRu5AEhso5Q3+Ank+JhGVBv28HqlRvs5o7XnX?=
 =?us-ascii?Q?++Xlz6+Bqk8V81rfyK4m9nQq2jXNJ0kFE0cbiAZgpWugGVBmkpo+jfTgSGjh?=
 =?us-ascii?Q?4QjPPW6IUH61OX8Whbt6fg3MpjDOQIjJXtKe1eXi4qo8r4lDxlQrWWsn1bac?=
 =?us-ascii?Q?gCGu2mY8Vbcsnbt5/mru4AZev0oNy5BNtyDUHzKEbH438+J4x6c5qMf2XfIn?=
 =?us-ascii?Q?LuIdogRHHGps4fRdF6HbHCRKduIU0TESbjtBJt/1pOOsSXYEsRBtOTLAi38l?=
 =?us-ascii?Q?kKL/g2zTJ+rq3jo780yWuP6zX3yRqDomF9WmK4pQ+s0v/+m+EiSeZAEbf4kp?=
 =?us-ascii?Q?QX00Gw2A8qrVU9gM+oOktDdB/r0oquUI+baOcR9EIRNQ3ztnfXDsJTezAFyF?=
 =?us-ascii?Q?Afbj9vgiHREu3LF1l6kYSIyOLJpcdvxtrTXThTQKU+LYoREDdPPuOMABZVTk?=
 =?us-ascii?Q?yglvHKC/TSyZ8QrkRWEh0kgCfO2drqe1Asu5ps5iaaT+f2hC6U4k05kvmWH9?=
 =?us-ascii?Q?LwGJgXpjGikQagOxoDqFf1vQJEVXfLMLRTc12K4/wghZd/Hv0RjqjbAO7J+M?=
 =?us-ascii?Q?bKTavXpd+fArqEp+vJ+YwDNUbOrnzwLlWcK7xWHTMyo4DELxBWGBYXJsNDZz?=
 =?us-ascii?Q?b6axnheHwKXJUGyWlrmxYdR95wRaHtTb461VvXBkQVrcH24QRvJPaFP80gx5?=
 =?us-ascii?Q?TZaNQbrEogRQhEWkBvK5+XM+0kcJBWOzlI0+7XP3TZHegG46xsr7Y/+R4rwH?=
 =?us-ascii?Q?wuyvEHeXQEe999vO+cINr4HP2j1OV8U8lDLggrdhPJD93GKAftz4eDBUIRci?=
 =?us-ascii?Q?uMzKFxvpLvMcu6NW3Qms8w1eZ2SbZjtzLvfr0rLxvTen4x7vpuyrwbba8Sov?=
 =?us-ascii?Q?vY+kaBJ5FgK/MEjAlxQT50KRzZT/sOeM7R6mgQqE2Zgs2Fg1rrgnkn0cMCWr?=
 =?us-ascii?Q?Tdc//s12mExWenj9yHP96StxKMx3jLeFMUIjRJAxHz+CbEnTD7ptc23OR0jf?=
 =?us-ascii?Q?Dj6Nh6tU9CtroeGhtpCt7CxW+lC6eDx4p34XcmYUoGqnPHFw3c5RYiOvlFIp?=
 =?us-ascii?Q?s72ocL556/FnE3LrI+ior5siv+S13P/2qWLSF2V3q1Qur9VG3lqvMDW5zflp?=
 =?us-ascii?Q?zd/+ua1cRJOQjlFowPlW2DE6j08ksONAjlAmPJEHqRFOpq5cRAJLoY/LU3fg?=
 =?us-ascii?Q?eFX30hNlmo58THks2YeqdqZl9E+Y3+qf?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2024 19:02:08.7658
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7fc53d28-8ef3-48d4-611d-08dcacdc489a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231C.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7708

From: Victor Lira <victorm.lira@amd.com>

Requested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Notes:
This is a utilty script for help with the MISRA process.
This script matches all linker symbol names in linker script files for
arm or x86.
Not included are symbol names starting with "." or symbol names enclosed
in quotes since the files dont't use any. The regular expression also does
not match for "&=" and similar compound assignments.
---
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: roberto.bagnara@bugseng.com
Cc: consulting@bugseng.com
Cc: simone.ballarin@bugseng.com
---
Changes v2:
- address style comments
- updated script to use .lds instead of .lds.S
- remove sample output from patch

Changes v3:
- use #!/bin/sh
- update error handling and message similar to ../build.sh
---
 automation/eclair_analysis/linker-symbols.sh | 34 ++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100755 automation/eclair_analysis/linker-symbols.sh

diff --git a/automation/eclair_analysis/linker-symbols.sh b/automation/eclair_analysis/linker-symbols.sh
new file mode 100755
index 0000000000..61790fb281
--- /dev/null
+++ b/automation/eclair_analysis/linker-symbols.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+# Stop immediately if any executed command has exit status different from 0.
+set -e
+
+# Extract linker symbol names (except those starting with ".") from assignments.
+
+script_name=$(basename "$0")
+script_dir="$(
+  cd "$(dirname "$0")"
+  echo "${PWD}"
+)"
+src_dir="${script_dir}/../.."
+
+fatal() {
+  echo "${script_name}: $*" >&2
+  exit 1
+}
+
+usage() {
+  fatal "Usage: ${script_name} <arm|x86>"
+}
+
+if [ $# -ne 1 ]; then
+  usage
+fi
+
+filepath="${src_dir}/xen/arch/${1}/xen.lds"
+
+if [ ! -f "$filepath" ]; then
+  fatal "Could not find ${1} linker script. Must be run after arm/x86 build."
+fi
+
+sed -n "s/^\s*\([a-zA-Z_][a-zA-Z_0-9.\-]*\)\s*=.*;.*$/\1/p" "$filepath"
--
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Jul 25 19:07:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 19:07:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765108.1175693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX3nm-0006Yp-3n; Thu, 25 Jul 2024 19:06:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765108.1175693; Thu, 25 Jul 2024 19: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 1sX3nm-0006Yi-0R; Thu, 25 Jul 2024 19:06:58 +0000
Received: by outflank-mailman (input) for mailman id 765108;
 Thu, 25 Jul 2024 19: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=4Kni=OZ=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1sX3nk-0006Yc-QD
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 19:06:56 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20628.outbound.protection.outlook.com
 [2a01:111:f403:200a::628])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0e501102-4ab9-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 21:06:55 +0200 (CEST)
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com (2603:10b6:a03:539::18)
 by SN7PR12MB8769.namprd12.prod.outlook.com (2603:10b6:806:34b::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.28; Thu, 25 Jul
 2024 19:06: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%5]) with mapi id 15.20.7762.027; Thu, 25 Jul 2024
 19:06: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: 0e501102-4ab9-11ef-bbff-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BxNli1Ob9cR+t0DgoMLIiDg311MaDyZd81I3roGfpSoJBt7mHg6huRsTe8sqM5vddQ/v/epHc99YGLEPBkuBBgUslIsPoa41nUzaoi0MsZ9PH4VJl7U99MkEma3nKAi7rsmJvg4GdZMz8Rm64zZwdsHmy9XKCp1lm0JfQRQed8GII8FvTWqD7aBV51bK8lunUXRqPW2oLK4mRmLvNisn9783YxGQWUZxWlL5VxJVJGxPoy92pzwTQSq0mfgIUtd3GbvXpZ3FDAi6rQQ9oDPSHf7AXRpdJN6jXaPKMHChkWlQXmkAMFi9pWqDYGcwrauR3fbxWW09cci65JUWgojGHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iNrNgZSSLzuGE6KNPjMD0lJbD7HochztpqdypL0VwgQ=;
 b=a1kq195TqExe+RNL8rgotg7ZDisJjwWAIaZUEOaNziojf6z/PmFokGXaKBEpYVZozrxnmsyTo3WsmcEq5lRjV+lIt+F02LH3L2VgFaIA70hkBfjLMJM2/WUGJV/QYgu90L/Sw15QZpFSbitgu3vRMByM2dzCitstYPTFWtCoeHdmD2po/+lTaJiIWXXddfQ2SUWdlxAgxYybgSW8hAsb5eY1NjVnLwXJt0gvGbvwVgsma6r9EWVZqZxojSNdLo29U+y8xtA1RUTAupouFmod7kznluDaLOFzAIfyrTeafEzyT3r8xcEX526nbb6IV/xJnXXhSwlkYVP9XygDhXO/lw==
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=iNrNgZSSLzuGE6KNPjMD0lJbD7HochztpqdypL0VwgQ=;
 b=HXO27oFvhRXwNmsyxtTwBDBkHKpZOemNFw4sqwQCpM+b36kXDVnNKClBPfo4g+tKqeptHUMsm8S9GP286hHaCNLeK7Mz2ow3Zl1yDoOKY8gPJIflXK1iy876KIaQ2Oeqvw2sm62jtFG/JdeAfo5evUCfxc01n8W4JKoinCVUcPg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <662924ab-18fb-4b15-b3e3-4f09ef770aca@amd.com>
Date: Thu, 25 Jul 2024 12:06:49 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v3] automation: add linker symbol name script
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com,
 consulting@bugseng.com, simone.ballarin@bugseng.com
References: <29c7f6cd166d5d3c0e9f64dc937e29dc7ecf3f2d.1721933988.git.victorm.lira@amd.com>
Content-Language: en-US
From: "Lira, Victor M" <VictorM.Lira@amd.com>
In-Reply-To: <29c7f6cd166d5d3c0e9f64dc937e29dc7ecf3f2d.1721933988.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR05CA0021.namprd05.prod.outlook.com
 (2603:10b6:a03:33b::26) To SJ2PR12MB8876.namprd12.prod.outlook.com
 (2603:10b6:a03:539::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ2PR12MB8876:EE_|SN7PR12MB8769:EE_
X-MS-Office365-Filtering-Correlation-Id: 189c7d58-195e-4203-2a47-08dcacdcf0a6
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?ZHMvbjJRS3N5NXVDSjlMVHpHdTYxRy9mWkV2aWJnNkxMT0FtdDlqMVpGdTRR?=
 =?utf-8?B?bWNGRENMenlSd1hacjI3cmlJYXZxR1IzV3JSY3VVcFNjTlBmV05RR2IrK1dx?=
 =?utf-8?B?QUNtcFVkQmtpNVA0YmZxZDVxVWQ3Vi9IOFJ3RGlJOG1GTkhxSndYeVdoZ0xO?=
 =?utf-8?B?cFliNUlNd1hrSTIvRXU3TS9Bazh6RUJ4QTlqeWQzakJRRFhRYUkyNERBMWY2?=
 =?utf-8?B?eE1HSWl1eTZPdXd6ZlVsVkx1ZFpUWHlIcTQ0N0RuZ3l5UVVac2lxUVlNbzZP?=
 =?utf-8?B?WUU0Njd1VmczNGdsSmRZbFp4dXdHeFEwTWpoallEYnVENUVoUVJoTk1MSVpT?=
 =?utf-8?B?aVhNRVgrdmRybTRSamhPMnhWZ25ySzJsaDFzc056d3UrbnB0Mk5Ob0UvNVpK?=
 =?utf-8?B?QzBMQWswZlBhdVlRRkVNSXJBWEdxWVNsNVBkVi9aV2tTVmdKSFNPa3p3M0d4?=
 =?utf-8?B?M09VUEY5WFhmQU1hR1ZCVkEwcjU4TURpaVBPMXlFQkFoR0F0U1pNZnJ0OVdD?=
 =?utf-8?B?d0Jpb2tXSW51YUFzTlJ3ejNrK2JaTGlQZm4ySzVrK05ZNXdtckNIcXpzTHlD?=
 =?utf-8?B?Vk9rQUR3T09lbUdnZ0hxdGUwUHI0NjFuWWhWaDcwOUIzc05ONDNqV20yMHoy?=
 =?utf-8?B?aU45bHh5ejFpSlpIOHJ2ZVZzekNwWjZxZm82bHJSSkd5bVN5YjJqVE5lSmNP?=
 =?utf-8?B?TnhKY01HcE4zZkc1SHlPWGNiMDdCUUdFcnlRUWIvY3NCYjR2b0dubDZIR1Rh?=
 =?utf-8?B?ZE1STjJaOWdQKzNXc1JkbGNUR3lXemVFRU5FUGd3bmE0SUIxancxRHRySW5h?=
 =?utf-8?B?VTAzVHJGZkF2STZndGE5c3hLZUp6ajEwdk1OREt0cy9sVUo1QU9qT0tJaWtH?=
 =?utf-8?B?SDdISXdJRzNVQXJ5a01sRE9CZFBIckhLWkJWdmZya0QxcXh2K056LzVRQ2Ew?=
 =?utf-8?B?Z2lVanVNZk1CS1JFRGhURUhTNTB0akNwWjFLR2Y2QXl4MGtHNWs4Y2x4R3lz?=
 =?utf-8?B?b1ZhWkt2THhVWWhOV2tXTHQySVNRYTZRZkY0bmd4NmtNanFlNEJYd3EwMC9H?=
 =?utf-8?B?ZnJ1amlOOC9SOG5uM0NudDV5dmxuaytSL2VnenNoSDE4Ym9ucjcrSXEzeHJi?=
 =?utf-8?B?Yk5MaHhCbFlLc2lDQk1BY1lud1hMampwczRlRW9Ub0tFVlhUbExUWGJVamZp?=
 =?utf-8?B?SzdUZGp4LzdRQ3NCLzBsWDdPait1dXFPU1VCT1pYT2toa0s4ak9rb09NSXFS?=
 =?utf-8?B?dXVKSEkrZnlIaXd1Wm9NdHBkanRXS3QxMjNjUERnalFKUXZuV2JDYlEvYWw0?=
 =?utf-8?B?THN5MlRISFlGb1RwWDIrZlFIdUNRVlN3Qkh5alE4SkVBeXo5Zk1WUmhSUjFz?=
 =?utf-8?B?Q0JRTnB0UUtSN21Pd2dvTUp2UEJIMFp1c2svcDBCWlBXdyt3bVBqbHcxOEVa?=
 =?utf-8?B?Ym4yL2xvaTZrSlFkdmxZZlAyWlRvRHFYaDI1UDh0YWI3SE43WGlvbXFDbXpV?=
 =?utf-8?B?aVF2bEhJa3c4V1hweGNQR3hVSG5ZSjNlUXhrUW5TN0Frd1QyZFVWOXpoZlBV?=
 =?utf-8?B?RGl2bHQ0M3M1K1gwS0g4dXNldVlIdzkrNW5XUVg4WWxLUzh6a0hBRlpTQWpM?=
 =?utf-8?B?Q1V6dHAwd1c2UmZJOFRFaVRLNFdwVGFZL2RJem93ZFpQSU05eTJMVm94WXVY?=
 =?utf-8?B?UC9XZjJCMEk0VnlKb1RXRjA2T0ptSTI4eE51Nm5KR2ppcDlVZjdDYlBXYStw?=
 =?utf-8?B?V3dzdWxsY1JIemx6dGhWdG1ybDNHRUJPUmN6SWFORllSWHhWa1l1bUhidU5a?=
 =?utf-8?B?bEgwY0NmdFBMejdrcXdPQT09?=
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);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aDVtaGduc3ZZVURaaVhjM3hTNitUSEtGZ0dISC84ZHlaaVpHMzBqU0tqQnBL?=
 =?utf-8?B?c3F1Mm5qY3dJeVJVMk1GOU9qcDV2Ny9BY0dNS2xpczFVVEsrWlhYNk9zbCtU?=
 =?utf-8?B?U2U4emFvQU8vMmVLbVlSNkxaQVlZeWUvOU5pK3YxWFlvQ0VMa2MwT0dhQVQ5?=
 =?utf-8?B?aXBUODh3YkF4N1lialBCQnR1OGlOMEViTURpYXE1SjkvT0RUcFIremNkWDkx?=
 =?utf-8?B?VFBKRkFpTTM2RGp5d00wUFowNU1RZjF3ZnNYS1VwQ3VMbnIxYXQ2YjB1bmxu?=
 =?utf-8?B?a1FFSVBybVN4VFJEaTNiYTZtazVTYmRWcjRqeExJcE1GMmVGOEgzUHUyWmVS?=
 =?utf-8?B?UE5hS3pNaEt4ZGJjVFpOSTJMaVpOUVJ6UGJvZlRjZE10VkZET2F6WThERFky?=
 =?utf-8?B?WkpEUlF3V3Q3blY4ZnlIaCtkei9MdHpNVGNGUXRHYzV1aEpjRUVmdnV5aEhP?=
 =?utf-8?B?bGtRUFljV1pSclZJSGdCZXVkKzdadHh6OEJVcVhPOStQQkFmbnAzV3pKTzdK?=
 =?utf-8?B?OWZYOHNtcWRIaGQvMmdhR01FazAwOWxwVkZ5bnBUZXBhanVUdzRVME1vN2Rs?=
 =?utf-8?B?NFRjSEFGTlREU1F5WVUra3JBQ3RHd1lXZWVUcDh4OGxqMHJ5RVkvaHA0OWl4?=
 =?utf-8?B?cVA1ekNzdVM0RDI0eHM3UloyZ3VTUEZsdTVodHVGcjJjMmp2WlpwSkJRVUZr?=
 =?utf-8?B?YXAxSllOdkk5Rktaa2ZGQ1VJYVcwa2FUR3RWc3V6Ry9rMmpQUUdxUExtcUZC?=
 =?utf-8?B?YVVRR2s4V3pwSWg4eGNGZDdrWlg0VnpRek42YisrOTR0Q0cyUWpNOXkrMWtH?=
 =?utf-8?B?OEVqcE1Xc3dVYzNOWFcyakNkQ1RyVEExTzRoRTF4V0FqbS9OZVg5YnNYc2wz?=
 =?utf-8?B?R1U1VHRWYzh4K3lRNHVneUUrT0hJZ2hLOWtnNlgyU2VuekZnaWZUQ0h0YzF6?=
 =?utf-8?B?QnB2MWVUS0tGL0JicFA0bXgzUnZrOVhSVmJGWGlSWmp5OC9NbDlqc053VWhY?=
 =?utf-8?B?eWN4dHFiVWU4RG5QUEpnZE9la3FlNEc5TGlHN0EyK01OamZkZ3ZOdXNEY3pi?=
 =?utf-8?B?MHhzTWtleGZPclFtb0QvclV0V1E1WUk0aFhKUnR2RzdNZnRCaXI5NzJHNGhh?=
 =?utf-8?B?Zll3S1VjcE54cDRsRDBVVmc0aTc0OTR3OEJqbWFkRjk5TjZPbWIweGRlMjU2?=
 =?utf-8?B?Q3dZMVFLNEVCb2RjTjJ4Q0ZJSW9GVTBwSXNyczJTWllRTUwrUnJTblN4Vkli?=
 =?utf-8?B?T2d3eUhVSml3cUlaekdzTDJWdEozM2pBMHRwaENBSnV6a2dsWUtOYVp1QTVH?=
 =?utf-8?B?VURBQ1REQ0gralE1U05oeU5KQXU5eTJaUUhtZ3FMTzdiMmhvK3lmK010L0gx?=
 =?utf-8?B?L3FLQ1NodVk3NW02YUlZWnRvUjJrT1h0aTJWeTBEVitYSHlrd0FpdklDdVQy?=
 =?utf-8?B?cVlqaFByVGxxQ2lVeW9wNmw4V2Vrc2MrM2tISmZvNWxrWDdzWXhRTWE3Y0hV?=
 =?utf-8?B?eXpwZk9VWVlpd0JoMm5PTDFEaldDUkt6UlNITnQ5RXR3KzdHY29CMXFHelFO?=
 =?utf-8?B?alV1dmtramFKMW1HNTQxd0YyMThEUnRpdUswdk1xeVppSWkzTDh5ZmxMM1dR?=
 =?utf-8?B?MVdVTTVCRTJERzNqdU1NbG5SR2lDR2lGa3pxN1E2Y0V0L1VmdlJrOWlHWGlv?=
 =?utf-8?B?QVlLN1prZ3NrWkEva3F3RmRXcDNHQkxaUnRLbDQzSWR3TWlXRTBvYjZHVjZ6?=
 =?utf-8?B?YnFYQ0JLNGIzTUh2YXlBcm91Q3NnUnFQUDJqeG5oMks4ekRpMVZabmRZbktD?=
 =?utf-8?B?UEhZMGNrQm9yZHM4Wi9yYkdwZGxNYkovNnZZTVA4cG92Qzh1WXNScXRoRkdz?=
 =?utf-8?B?NmFrU1Bid3hoYVFwQ2U1T1dIWExIVUJ0REpyYlRTdjV2Z0FQcCtTTk9GUXhv?=
 =?utf-8?B?cVVIdG5sdEdUTkF5dGUwbjcwL2RDSmZpNjhsNWFMeExxcmlodS9vNHU1RUZq?=
 =?utf-8?B?aEphenl5UFJDc21vNTNGRzlqV3VyalV0bXlLSkF2dkpMT294NGpvNXE2bUI5?=
 =?utf-8?B?eHhqb2x3dWkzREtsNi9HZlBPN1h0MDVVU3dLUk1PSnRBUktrZm5sQWg1Yjlo?=
 =?utf-8?Q?Jg5lwAH53N2KfdyO8wNyT3XyD?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 189c7d58-195e-4203-2a47-08dcacdcf0a6
X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8876.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2024 19:06:51.1061
 (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: NMWSpjcwaUkDBI166uDFwXLJB4lTdfpeP919HvnYf6kHEOdEj0SmQjRu4L/yL5pdwgil+L8SVC+micClZSEW8Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8769

Thanks all for suggestions in v2.

Do we need to worry about duplicates or alphabetically sorting/filtering 
the output here? As it stands there are no duplicates but I think it can 
happen with linker syntax.

Victor




From xen-devel-bounces@lists.xenproject.org Thu Jul 25 19:33:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 19:33:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765117.1175703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX4DR-0002FZ-4R; Thu, 25 Jul 2024 19:33:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765117.1175703; Thu, 25 Jul 2024 19:33:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX4DR-0002FS-1O; Thu, 25 Jul 2024 19:33:29 +0000
Received: by outflank-mailman (input) for mailman id 765117;
 Thu, 25 Jul 2024 19:33: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=l8vd=OZ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1sX4DP-0002FM-P7
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 19:33:27 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c2b6ec26-4abc-11ef-8776-851b0ebba9a2;
 Thu, 25 Jul 2024 21:33:25 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id A0CA54EE073C;
 Thu, 25 Jul 2024 21:33: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: c2b6ec26-4abc-11ef-8776-851b0ebba9a2
MIME-Version: 1.0
Date: Thu, 25 Jul 2024 21:33:24 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: "Lira, Victor M" <VictorM.Lira@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com,
 consulting@bugseng.com, simone.ballarin@bugseng.com
Subject: Re: [RFC PATCH v3] automation: add linker symbol name script
In-Reply-To: <662924ab-18fb-4b15-b3e3-4f09ef770aca@amd.com>
References: <29c7f6cd166d5d3c0e9f64dc937e29dc7ecf3f2d.1721933988.git.victorm.lira@amd.com>
 <662924ab-18fb-4b15-b3e3-4f09ef770aca@amd.com>
Message-ID: <32a3b30c59be4adeef594a2d4a4b963b@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-25 21:06, Lira, Victor M wrote:
> Thanks all for suggestions in v2.
> 
> Do we need to worry about duplicates or alphabetically 
> sorting/filtering the output here? As it stands there are no duplicates 
> but I think it can happen with linker syntax.
> 
> Victor

Hi,

for the specific task it will carry out that's not a particular concern, 
as each symbol will be used to construct a single regex, but for 
readability that might be appreciated by the maintainers.

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 19:39:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 19:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765123.1175713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX4JY-00033N-PD; Thu, 25 Jul 2024 19:39:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765123.1175713; Thu, 25 Jul 2024 19:39: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 1sX4JY-00033G-MP; Thu, 25 Jul 2024 19:39:48 +0000
Received: by outflank-mailman (input) for mailman id 765123;
 Thu, 25 Jul 2024 19:39: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=l8vd=OZ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1sX4JX-00033A-GY
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 19:39:47 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a5f33243-4abd-11ef-bbff-fd08da9f4363;
 Thu, 25 Jul 2024 21:39:46 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id B8CC94EE073C;
 Thu, 25 Jul 2024 21:39: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: a5f33243-4abd-11ef-bbff-fd08da9f4363
MIME-Version: 1.0
Date: Thu, 25 Jul 2024 21:39:45 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: victorm.lira@amd.com
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com,
 consulting@bugseng.com, simone.ballarin@bugseng.com
Subject: Re: [RFC PATCH v3] automation: add linker symbol name script
In-Reply-To: <29c7f6cd166d5d3c0e9f64dc937e29dc7ecf3f2d.1721933988.git.victorm.lira@amd.com>
References: <29c7f6cd166d5d3c0e9f64dc937e29dc7ecf3f2d.1721933988.git.victorm.lira@amd.com>
Message-ID: <d1a08318bb28df72f95c737627c1a4e5@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-25 21:01, victorm.lira@amd.com wrote:
> From: Victor Lira <victorm.lira@amd.com>
> 
> Requested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> ---
> Notes:
> This is a utilty script for help with the MISRA process.
> This script matches all linker symbol names in linker script files for
> arm or x86.
> Not included are symbol names starting with "." or symbol names 
> enclosed
> in quotes since the files dont't use any. The regular expression also 
> does
> not match for "&=" and similar compound assignments.
> ---
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: roberto.bagnara@bugseng.com
> Cc: consulting@bugseng.com
> Cc: simone.ballarin@bugseng.com
> ---
> Changes v2:
> - address style comments
> - updated script to use .lds instead of .lds.S
> - remove sample output from patch
> 
> Changes v3:
> - use #!/bin/sh
> - update error handling and message similar to ../build.sh
> ---
>  automation/eclair_analysis/linker-symbols.sh | 34 ++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>  create mode 100755 automation/eclair_analysis/linker-symbols.sh
> 
> diff --git a/automation/eclair_analysis/linker-symbols.sh 
> b/automation/eclair_analysis/linker-symbols.sh
> new file mode 100755
> index 0000000000..61790fb281
> --- /dev/null
> +++ b/automation/eclair_analysis/linker-symbols.sh
> @@ -0,0 +1,34 @@
> +#!/bin/sh
> +
> +# Stop immediately if any executed command has exit status different 
> from 0.
> +set -e
> +
> +# Extract linker symbol names (except those starting with ".") from 
> assignments.
> +
> +script_name=$(basename "$0")
> +script_dir="$(
> +  cd "$(dirname "$0")"
> +  echo "${PWD}"
> +)"
> +src_dir="${script_dir}/../.."
> +
> +fatal() {
> +  echo "${script_name}: $*" >&2
> +  exit 1
> +}
> +
> +usage() {
> +  fatal "Usage: ${script_name} <arm|x86>"
> +}
> +
> +if [ $# -ne 1 ]; then
> +  usage
> +fi
> +
> +filepath="${src_dir}/xen/arch/${1}/xen.lds"
> +
> +if [ ! -f "$filepath" ]; then
> +  fatal "Could not find ${1} linker script. Must be run after arm/x86 
> build."
> +fi
> +

A doubt I came across now: since this script must be run after the build 
(and hence the analysis), but the configuration must be generated before 
the analysis, the only way this could work in my opinion is this:

- a build without analysis is performed, just enough to build xen.lds 
(maybe there is a specific Makefile target to do this)
- generate the configuration, then clean everything and then run the 
analysis

> +sed -n "s/^\s*\([a-zA-Z_][a-zA-Z_0-9.\-]*\)\s*=.*;.*$/\1/p" 
> "$filepath"
> --
> 2.25.1

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 20:10:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 20:10:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765133.1175723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX4mg-00072Z-0u; Thu, 25 Jul 2024 20:09:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765133.1175723; Thu, 25 Jul 2024 20:09:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX4mf-00072S-Tn; Thu, 25 Jul 2024 20:09:53 +0000
Received: by outflank-mailman (input) for mailman id 765133;
 Thu, 25 Jul 2024 20:09:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sX4mf-00072I-EU; Thu, 25 Jul 2024 20:09:53 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sX4mf-0007fX-8g; Thu, 25 Jul 2024 20:09:53 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sX4me-0006Cr-S9; Thu, 25 Jul 2024 20:09:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sX4me-0006xt-Rh; Thu, 25 Jul 2024 20:09:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=/SnT1OWZKL2U8sSeSY5MDq0xOwg/6bGisL3uvLeEdSg=; b=c22kAV+35aLqx10CZhge70jSYB
	8HHZ/OPDvaZOpnB6n1zUBGgh5L3JsVdkp6f2P8jkGyF0yTRxOR4kUDRHeln/oD9+9TSgsE7AU7akL
	/RumBmg1aYLGDsaZr5+rUlUknA6CsmwxcBMcaB+OfxKwTHiQ0GLrAENi+jcLyt97kVBE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187008-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187008: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=b1bce5e5649840159d54eb8bffa4fa3d4fae8ee6
X-Osstest-Versions-That:
    ovmf=8665187b017b0e4e4febf2241b433e6371f6e7e1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 20:09:52 +0000

flight 187008 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187008/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 b1bce5e5649840159d54eb8bffa4fa3d4fae8ee6
baseline version:
 ovmf                 8665187b017b0e4e4febf2241b433e6371f6e7e1

Last test of basis   187003  2024-07-25 09:45:20 Z    0 days
Testing same since   187008  2024-07-25 14:43:33 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ard Biesheuvel <ardb@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   8665187b01..b1bce5e564  b1bce5e5649840159d54eb8bffa4fa3d4fae8ee6 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 22:41:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 22:41:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765152.1175732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX79W-0008M6-8b; Thu, 25 Jul 2024 22:41:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765152.1175732; Thu, 25 Jul 2024 22:41: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 1sX79W-0008Lz-5Q; Thu, 25 Jul 2024 22:41:38 +0000
Received: by outflank-mailman (input) for mailman id 765152;
 Thu, 25 Jul 2024 22: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=+0nn=OZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sX79U-0008Lt-UW
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 22:41:37 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a9da018-4ad7-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 00:41:34 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 7BC6ECE1689;
 Thu, 25 Jul 2024 22:41:30 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5812AC4AF0C;
 Thu, 25 Jul 2024 22:41:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a9da018-4ad7-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721947290;
	bh=sOVM4r7mU3j5oVQ/ecTboEcugQf38pMenhU9TEOvlxc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TeByrUzyDl2nBdnWYmTW0arfbTqBl94g10G03CJELfYPuRF2Q+G9RJzlQF4eg86BR
	 Ff3cQD/kJkFqJAv7pdwE4L5Wwsg0JK2jW/fj3sEfDgK9V4SK8WLSitAw6/i9Qitk84
	 J7zjmNDnJlfldti0ybOCIugpexix5r4xZ1HNV8UvHGUJq6E7EHXa8nyxeWyhq+/ixS
	 y7EjRwcxc/XQG3XWvEi7Cd5BSxhIP6nnde/Nn/W6FR3umS61Ut6worIshOKX8swhmc
	 /Yh38XtxkVVPWttWVtcKUNylQHGLPqqecE9ci+wOJA8E0+LLkspgK473rSHY8gkO6V
	 De97BHXbQ4BBQ==
Date: Thu, 25 Jul 2024 15:41:28 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Techguru <techguru@byiq.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Michal Orzel <michal.orzel@amd.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Julien Grall <julien@xen.org>
Subject: Re: Xen for Apple Silicon (M1 and beyond)
In-Reply-To: <99c8f34c61b59a16edb0fd11d214267e@mail.infomaniak.com>
Message-ID: <alpine.DEB.2.22.394.2407251540130.4857@ubuntu-linux-20-04-desktop>
References: <d5c3e0900db98aaaeb7fb52f16598257@mail.infomaniak.com> <alpine.DEB.2.22.394.2407241309170.4857@ubuntu-linux-20-04-desktop> <99c8f34c61b59a16edb0fd11d214267e@mail.infomaniak.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1760869520-1721947290=:4857"

  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-1760869520-1721947290=:4857
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 25 Jul 2024, Techguru wrote:
> A bit about Apple Silicon M1(2,3,4) architecture, SoC and motherboard. (AFAIK)
> 
> There are no EFI assumptions nor contracts, and no EFI firmware.
> Between those 4 generations of silicon, there are about 80 different roles "SoC cores/components" can play, each with its own signed Apple
> Firmware.
> Most of those SoC cores/functions have nothing to do with the traditional ARM compute cores.
> At least one of those SoC cores is actually an x86 processor core (on models which support HDMI), running x86 firmware.
> Many of the other non-compute cores (Networking, USC (A-C), Thunderbolt ... yada yada) are various size Arm cores running an Apple RTOS
> Variant of L4 microkernel.
> Each of those, again, has its own Apple Signed firmware which is paired with a particular Darwin kernel release.
> One point of friction is that there is no stable ABI spec for each of the firmware modules.   Apple reserves the right to completely change
> the firmware's
> interface with the paired Darwin kernel.
> 
> It is perhaps best to think of the SoC and related motherboard hardware as a "compute cluster" rather than a single von-neuman machine.
> 
> I could be wrong about a lot of the above, and invite corrections with citations.
> 
> For this, do you know if 4K pages are supported (in addition to 16K)? It
> would be a lot easier to keep running Xen using 4K pages and run guests
> on top of Xen which use 16K pages. In the past, we had Linux using 64K
> pages running on top of Xen using 4K pages for example.
> 
> Given the state of all of the _other_ SoC cores running L4 RTOS, I have reservations about running with anything other than 16k native
> pages.  Will have to
> investigate what options, if any, are available for keeping 16k pages for existing firmware, while presenting 4k pages to guest OS.
> 
> However, both Rosetta and Docker appear to run 4k guests just fine, so not sure how many pushups they are doing in the process.

I just wanted to clarify that I am suggesting to run Xen with 4K pages
and the guests with 16K pages. I am *not* suggesting to change the page
granularity of the guests.
--8323329-1760869520-1721947290=:4857--


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 22:43:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 22:43:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765158.1175743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX7B4-0000T0-Is; Thu, 25 Jul 2024 22:43:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765158.1175743; Thu, 25 Jul 2024 22:43: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 1sX7B4-0000St-Fa; Thu, 25 Jul 2024 22:43:14 +0000
Received: by outflank-mailman (input) for mailman id 765158;
 Thu, 25 Jul 2024 22:43: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=+0nn=OZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sX7B3-0000Sl-Gw
 for xen-devel@lists.xenproject.org; Thu, 25 Jul 2024 22:43:13 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43dac7ce-4ad7-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 00:43:10 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id CC22ACE1670;
 Thu, 25 Jul 2024 22:43:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 20D8FC116B1;
 Thu, 25 Jul 2024 22:43: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: 43dac7ce-4ad7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721947387;
	bh=YSo0ZWw2Rmtmy3caExuqNagDM3pbktT9dEH66VTsiWE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ukkrpSypdxqqAToLgn1t1aqea1OMaokstn+NyCARl1fMwLx1i5AcArg0lcL87gLr+
	 /bH5BOF9Quy7f0Lr5mY8K6fOeH7sFT1/Z1VvxbzXo00HEqn4U1q0TPF6dtfKQFzwZy
	 NvhX22sjJeBFGSoNFOfxxtVHynENvEdHnUun03tn43v6L9wR0ERlVEF8vW7pv62W8N
	 xDOZXK0CVUDcsXvZH/Tj9K1lP92cxYfX1y82fF7GyyOdVEaIIe7AcAE3eGk+ZFSNAk
	 qNj5YpD0EMDCbcTvrsWWQ1pInmFSzEvpk9XX90l9lYbGagKLBJ2pUytzCcCHbJg8Jz
	 K2VqxUSZci3Eg==
Date: Thu, 25 Jul 2024 15:43:04 -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: victorm.lira@amd.com, xen-devel@lists.xenproject.org, 
    Jan Beulich <jbeulich@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com, 
    consulting@bugseng.com, simone.ballarin@bugseng.com
Subject: Re: [RFC PATCH v3] automation: add linker symbol name script
In-Reply-To: <d1a08318bb28df72f95c737627c1a4e5@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407251542230.4857@ubuntu-linux-20-04-desktop>
References: <29c7f6cd166d5d3c0e9f64dc937e29dc7ecf3f2d.1721933988.git.victorm.lira@amd.com> <d1a08318bb28df72f95c737627c1a4e5@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 25 Jul 2024, Nicola Vetrini wrote:
> On 2024-07-25 21:01, victorm.lira@amd.com wrote:
> > From: Victor Lira <victorm.lira@amd.com>
> > 
> > Requested-by: Jan Beulich <jbeulich@suse.com>
> > Signed-off-by: Victor Lira <victorm.lira@amd.com>
> > ---
> > Notes:
> > This is a utilty script for help with the MISRA process.
> > This script matches all linker symbol names in linker script files for
> > arm or x86.
> > Not included are symbol names starting with "." or symbol names enclosed
> > in quotes since the files dont't use any. The regular expression also does
> > not match for "&=" and similar compound assignments.
> > ---
> > Cc: Jan Beulich <jbeulich@suse.com>
> > Cc: Stefano Stabellini <sstabellini@kernel.org>
> > Cc: roberto.bagnara@bugseng.com
> > Cc: consulting@bugseng.com
> > Cc: simone.ballarin@bugseng.com
> > ---
> > Changes v2:
> > - address style comments
> > - updated script to use .lds instead of .lds.S
> > - remove sample output from patch
> > 
> > Changes v3:
> > - use #!/bin/sh
> > - update error handling and message similar to ../build.sh
> > ---
> >  automation/eclair_analysis/linker-symbols.sh | 34 ++++++++++++++++++++
> >  1 file changed, 34 insertions(+)
> >  create mode 100755 automation/eclair_analysis/linker-symbols.sh
> > 
> > diff --git a/automation/eclair_analysis/linker-symbols.sh
> > b/automation/eclair_analysis/linker-symbols.sh
> > new file mode 100755
> > index 0000000000..61790fb281
> > --- /dev/null
> > +++ b/automation/eclair_analysis/linker-symbols.sh
> > @@ -0,0 +1,34 @@
> > +#!/bin/sh
> > +
> > +# Stop immediately if any executed command has exit status different from
> > 0.
> > +set -e
> > +
> > +# Extract linker symbol names (except those starting with ".") from
> > assignments.
> > +
> > +script_name=$(basename "$0")
> > +script_dir="$(
> > +  cd "$(dirname "$0")"
> > +  echo "${PWD}"
> > +)"
> > +src_dir="${script_dir}/../.."
> > +
> > +fatal() {
> > +  echo "${script_name}: $*" >&2
> > +  exit 1
> > +}
> > +
> > +usage() {
> > +  fatal "Usage: ${script_name} <arm|x86>"
> > +}
> > +
> > +if [ $# -ne 1 ]; then
> > +  usage
> > +fi
> > +
> > +filepath="${src_dir}/xen/arch/${1}/xen.lds"
> > +
> > +if [ ! -f "$filepath" ]; then
> > +  fatal "Could not find ${1} linker script. Must be run after arm/x86
> > build."
> > +fi
> > +
> 
> A doubt I came across now: since this script must be run after the build (and
> hence the analysis), but the configuration must be generated before the
> analysis, the only way this could work in my opinion is this:
> 
> - a build without analysis is performed, just enough to build xen.lds (maybe
> there is a specific Makefile target to do this)
> - generate the configuration, then clean everything and then run the analysis

Yes, that is one option and it should work. The other option is to run
this script against the xen.lds.S files instead (if it works.)


> > +sed -n "s/^\s*\([a-zA-Z_][a-zA-Z_0-9.\-]*\)\s*=.*;.*$/\1/p" "$filepath"


From xen-devel-bounces@lists.xenproject.org Thu Jul 25 22:46:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 25 Jul 2024 22:46:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765165.1175752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX7EE-0001Hh-Vv; Thu, 25 Jul 2024 22:46:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765165.1175752; Thu, 25 Jul 2024 22:46:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX7EE-0001Ha-Sv; Thu, 25 Jul 2024 22:46:30 +0000
Received: by outflank-mailman (input) for mailman id 765165;
 Thu, 25 Jul 2024 22:46:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sX7ED-0001HH-6Z; Thu, 25 Jul 2024 22:46:29 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sX7EC-0002BP-MX; Thu, 25 Jul 2024 22:46:28 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sX7EC-0003YA-Ao; Thu, 25 Jul 2024 22:46:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sX7EC-00070V-AN; Thu, 25 Jul 2024 22:46: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=uf4dY2yWur06dR51MRH9GzL//IQ3LAavzyzX/ljSs/M=; b=quVAAsP/0R5GsVFXR90fsxMPoZ
	/iPL9XeLNp0w6nXxyBCnx2BQ1qW2fDjVkL0ofi/UNCaV0zxmWbyQ5sZqIvgevD+bYeAKh6ePlNo/e
	O2VmUXwicceIFaA+jmMAgUhSU3N6X5kwgKreURvLQ4okldGPLM7NKK6TT3FAecOaqgKw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187002-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-6.1 test] 187002: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-6.1:test-amd64-amd64-libvirt-pair:debian-fixup/dst_host:fail:heisenbug
    linux-6.1:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c18e82d3ee4426dd73eaa5550ac54b8bf01133cd
X-Osstest-Versions-That:
    linux=9b3f9a5b12dc96965b2fcc9d7d8342f1b63e29c4
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 25 Jul 2024 22:46:28 +0000

flight 187002 linux-6.1 real [real]
flight 187009 linux-6.1 real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/187002/
http://logs.test-lab.xenproject.org/osstest/logs/187009/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-libvirt-pair 21 debian-fixup/dst_host fail pass in 187009-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186877
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186877
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186877
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186877
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186877
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186877
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                c18e82d3ee4426dd73eaa5550ac54b8bf01133cd
baseline version:
 linux                9b3f9a5b12dc96965b2fcc9d7d8342f1b63e29c4

Last test of basis   186877  2024-07-18 11:42:52 Z    7 days
Testing same since   187002  2024-07-25 08:13:58 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Agathe Boutmy <agathe@boutmy.com>
  Aivaz Latypov <reichaivaz@gmail.com>
  Alex Deucher <alexander.deucher@amd.com>
  Alexander Gordeev <agordeev@linux.ibm.com>
  Alexander Usyskin <alexander.usyskin@intel.com>
  Alexey Makhalov <alexey.makhalov@broadcom.com>
  Alvin Lee <alvin.lee2@amd.com>
  Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
  Ananth Narayan <Ananth.Narayan@amd.com>
  Andreas Hindborg <a.hindborg@samsung.com>
  Andrew Morton <akpm@linux-foundation.org>
  Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  Anjali K <anjalik@linux.ibm.com>
  Anup Patel <apatel@ventanamicro.com>
  Ard Biesheuvel <ardb@kernel.org>
  Armin Wolf <W_Armin@gmx.de>
  Arnd Bergmann <arnd@arndb.de>
  Atish Patra <atishp@rivosinc.com>
  Ayala Beker <ayala.beker@intel.com>
  Baokun Li <libaokun1@huawei.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bjørn Mork <bjorn@mork.no>
  Borislav Petkov (AMD) <bp@alien8.de>
  Chen Ni <nichen@iscas.ac.cn>
  Christian Brauner <brauner@kernel.org>
  Chunguang Xu <chunguang.xu@shopee.com>
  Conor Dooley <conor.dooley@microchip.com>
  Daniel Gabay <daniel.gabay@intel.com>
  Daniel Wagner <dwagner@suse.de>
  Daniel Wheeler <daniel.wheeler@amd.com>
  Daniele Palmas <dnlplm@gmail.com>
  David Laight <david.laight@aculab.com>
  David Lechner <dlechner@baylibre.com>
  David Sterba <dsterba@suse.com>
  Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Mastykin <mastichi@gmail.com>
  Dmitry Torokhov <dmitry.torokhov@gmail.com>
  Edward Adam Davis <eadavis@qq.com>
  Eric Dumazet <edumazet@google.com>
  Filipe Manana <fdmanana@suse.com>
  Florian Fainelli <florian.fainelli@broadcom.com>
  Ganesh Goudar <ganeshgr@linux.ibm.com>
  Gao Xiang <hsiangkao@linux.alibaba.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Hannes Reinecke <hare@suse.de>
  Hans de Goede <hdegoede@redhat.com>
  Heiko Carstens <hca@linux.ibm.com>
  Huacai Chen <chenhuacai@loongson.cn>
  Ian Ray <ian.ray@gehealthcare.com>
  Ilan Peer <ilan.peer@intel.com>
  Jai Luthra <j-luthra@ti.com>
  Jakub Kicinski <kuba@kernel.org>
  Jann Horn <jannh@google.com>
  Jason A. Donenfeld <Jason@zx2c4.com>
  Jeff Layton <jlayton@kernel.org>
  Jens Axboe <axboe@kernel.dk>
  Jens Wiklander <jens.wiklander@linaro.org>
  Jerry Zuo <jerry.zuo@amd.com>
  Jiri Kosina <jkosina@suse.com>
  Johannes Berg <johannes.berg@intel.com>
  John Hubbard <jhubbard@nvidia.com>
  Jon Hunter <jonathanh@nvidia.com>
  Jonathan Denose <jdenose@google.com>
  Kailang Yang <kailang@realtek.com>
  Kees Cook <keescook@chromium.org>
  Keith Busch <kbusch@kernel.org>
  kernelci.org bot <bot@kernelci.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Louis Dalibard <ontake@ontake.dev>
  Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
  Marc Kleine-Budde <mkl@pengutronix.de>
  Marc Zyngier <maz@kernel.org>
  Mark Brown <broonie@kernel.org>
  Mark-PK Tsai <mark-pk.tsai@mediatek.com>
  Martin K. Petersen <martin.petersen@oracle.com>
  Martin Wilck <martin.wilck@suse.com>
  Masahiro Yamada <masahiroy@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  ming-jen.chang <ming-jen.chang@mediatek.com>
  Miri Korenblit <miriam.rachel.korenblit@intel.com>
  Muhammad Usama Anjum <usama.anjum@collabora.com>
  Namjae Jeon <linkinjeon@kernel.org>
  Nathan Chancellor <nathan@kernel.org>
  Nick Child <nnac123@linux.ibm.com>
  Nicolas Escande <nico.escande@gmail.com>
  Nilesh Javali <njavali@marvell.com>
  Palmer Dabbelt <palmer@rivosinc.com>
  Paolo Abeni <pabeni@redhat.com>
  Pavel Machek (CIP) <pavel@denx.de>
  Peter Ujfalusi <peter.ujfalusi@gmail.com>
  Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
  Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Primoz Fiser <primoz.fiser@norik.com>
  Puranjay Mohan <puranjay@kernel.org>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Randy Dunlap <rdunlap@infradead.org>
  Ritesh Harjani (IBM) <ritesh.list@gmail.com>
  Rob Herring (Arm) <robh@kernel.org>
  Ron Economos <re@w6rz@net>
  Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
  Sagi Grimberg <sagi@grimberg.me>
  Samuel Holland <samuel.holland@sifive.com>
  Sasha Levin <sashal@kernel.org>
  Saurav Kashyap <skashyap@marvell.com>
  Scott Mayhew <smayhew@redhat.com>
  SeongJae Park <sj@kernel.org>
  Shengjiu Wang <shengjiu.wang@nxp.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Stefan Schmidt <stefan@datenfreihafen.org>
  Steve French <stfrench@microsoft.com>
  Takashi Iwai <tiwai@suse.de>
  Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
  Thomas Bogendoerfer <tsbogend@alpha.franken.de>
  Thomas GENTY <tomlohave@gmail.com>
  Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
  Tomas Winkler <tomas.winkler@intel.com>
  Trond Myklebust <trond.myklebust@hammerspace.com>
  Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  Vishal Chourasia <vishalc@linux.ibm.com>
  Vyacheslav Frantsishko <itmymaill@gmail.com>
  Xingui Yang <yangxingui@huawei.com>
  Yedidya Benshimol <yedidya.ben.shimol@intel.com>
  Yunshui Jiang <jiangyunshui@kylinos.cn>
  Yuntao Wang <yuntao.wang@linux.dev>
  Zizhi Wo <wozizhi@huawei.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                fail    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   9b3f9a5b12dc9..c18e82d3ee442  c18e82d3ee4426dd73eaa5550ac54b8bf01133cd -> tested/linux-6.1


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 00:10:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 00:10:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765180.1175762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX8XI-0004SO-Iv; Fri, 26 Jul 2024 00:10:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765180.1175762; Fri, 26 Jul 2024 00: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 1sX8XI-0004SH-GH; Fri, 26 Jul 2024 00:10:16 +0000
Received: by outflank-mailman (input) for mailman id 765180;
 Fri, 26 Jul 2024 00: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=HdqS=O2=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sX8XH-0004SB-NL
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 00:10:15 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d7fc060-4ae3-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 02:10: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 5D33F61465;
 Fri, 26 Jul 2024 00:10:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E9D4C116B1;
 Fri, 26 Jul 2024 00:10: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: 6d7fc060-4ae3-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721952612;
	bh=Tkz4GQlHoVPhtWQR8vMeBbjvWRmzouX17IeGbQXjVMg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ZfePysSYhNoiPsxOojav541KYWboUwwsxGwe/lOXfp5TQidbl6v4HkU7fcqecMeFx
	 h2zntHUNYteFtL8XpMXvgHj61Ez3QDb3MQldWTL5K/JxYOUuUMpYuDRh84zn44epvC
	 y+3CytXMCcPVULYSw4PYnTQWb+F8p/ODcMZ8T1LPl3ppk7ERb0de+Z0F6NrO4cbaVJ
	 ZOs53lzBJDsMK6qoyF12O0sZxeTDnm2hs/l4RkCktg6RphWi0lEvsA4rhpQl8IvVbi
	 MXp+HOsFSP9tiNolgM1Scdg38qeGWrJCgPS+09qUx6h04fP2y2if8qt81qiEU1DQCC
	 odVUQ2df2vmsg==
Date: Thu, 25 Jul 2024 17:10:10 -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] CI: workaround broken selinux+docker interaction in
 yocto
In-Reply-To: <20240720001508.1673856-1-marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2407251709250.4857@ubuntu-linux-20-04-desktop>
References: <20240720001508.1673856-1-marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-2146384984-1721952612=:4857"

  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-2146384984-1721952612=:4857
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Sat, 20 Jul 2024, Marek Marczykowski-Górecki wrote:
> `cp --preserve=xattr` doesn't work in docker when SELinux is enabled. It
> tries to set the "security.selinux" xattr, but SELinux (or overlay fs?)
> denies it.
> Workaround it by skipping selinux.selinux xattr copying.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

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

I tested this patch together with another patch to upgrade Yocto to
scarthgap, I'll send that separately. I have already built and pushed
the yocto scarthgap containers.

> ---
> Tested here:
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/7386198058
> 
> But since yocto container fails to build, it isn't exactly easy to apply
> this patch...
> "kirkstone" branch of meta-virtualization seems to target Xen 4.15 and
> 4.16, so it isn't exactly surprising it fails to build with 4.19.
> 
> I tried also bumping yocto version to scarthgap (which supposedly should
> have updated pygrub patch), but that fails to build for me too, with a
> different error:
> 
>     ERROR: Layer 'filesystems-layer' depends on layer 'networking-layer', but this layer is not enabled in your configuration
>     ERROR: Parse failure with the specified layer added, exiting.
>     ...
>     ERROR: Nothing PROVIDES 'xen-image-minimal'. Close matches:
>       core-image-minimal
>       core-image-minimal-dev
>     Parsing of 2472 .bb files complete (0 cached, 2472 parsed). 4309 targets, 101 skipped, 0 masked, 0 errors.
> ---
>  automation/build/yocto/yocto.dockerfile.in | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/automation/build/yocto/yocto.dockerfile.in b/automation/build/yocto/yocto.dockerfile.in
~ index fbaa4e191caa..600db7bf4d19 100644
> --- a/automation/build/yocto/yocto.dockerfile.in
> +++ b/automation/build/yocto/yocto.dockerfile.in
> @@ -68,6 +68,10 @@ RUN locale-gen en_US.UTF-8 && update-locale LC_ALL=en_US.UTF-8 \
>  ENV LANG en_US.UTF-8
>  ENV LC_ALL en_US.UTF-8
>  
> +# Workaround `cp --preserve=xattr` not working in docker when SELinux is
> +# enabled
> +RUN echo "security.selinux skip" >> /etc/xattr.conf
> +
>  # Create a user for the build (we don't want to build as root).
>  ENV USER_NAME docker-build
>  ARG host_uid=1000
> -- 
> 2.45.2
> 
--8323329-2146384984-1721952612=:4857--


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 00:18:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 00:18:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765187.1175773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX8em-0005FT-9b; Fri, 26 Jul 2024 00:18:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765187.1175773; Fri, 26 Jul 2024 00:18: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 1sX8em-0005FM-6R; Fri, 26 Jul 2024 00:18:00 +0000
Received: by outflank-mailman (input) for mailman id 765187;
 Fri, 26 Jul 2024 00: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=HdqS=O2=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sX8ek-0005FG-TO
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 00:17:58 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 819a235e-4ae4-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 02:17:57 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 192ABCE149E;
 Fri, 26 Jul 2024 00:17:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C24FC116B1;
 Fri, 26 Jul 2024 00:17: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: 819a235e-4ae4-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1721953072;
	bh=LBVW3dzU89gbMUGTP1Ub4+WEJmEzM3nZ4iu+JrhXksk=;
	h=Date:From:To:cc:Subject:From;
	b=Cw0k75SOBYVrNODW+zi4K3Hi5CiwzdsWeRGHoqDmko4BCWo/oih/LEbtiGOrXdRej
	 XIOryrt7JEpPo8RydloMwdyBQfXahNgMT4BTRkCSJlVps9sIqvii3fRy9dDOcd31WB
	 z2on8fVoB9X8IBNfhgsxBFrufuwELVEPehgpRY6n194orz5hodBtUeC1x/3f3uWAK1
	 /bKPSgydT6OpDlYTz2lGbJzFx6CjUMXrkpLQMBQBpVnFHRMd/m8R+OZRTriN8zNzjx
	 zZnjC1xVMbrF19aCtlprBIp2taVe8lVaQ5SDH2a1XJ1Kr7wU/dtZne5EC0JDnZ+TED
	 t/RgVd7rzKNuA==
Date: Thu, 25 Jul 2024 17:17:50 -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, marmarek@invisiblethingslab.com, 
    andrew.cooper3@citrix.com, cardoe@cardoe.com
Subject: [PATCH] automation: upgrade Yocto to scarthgap
Message-ID: <alpine.DEB.2.22.394.2407251715040.4857@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

Upgrade Yocto to a newer version. Use ext4 as image format for testing
with QEMU on ARM and ARM64 as the default is WIC and it is not available
for our xen-image-minimal target.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
I am running one last test (that takes hours) I'll make sure it passes
before I commit anything.
---
 automation/build/yocto/build-yocto.sh | 9 +++++++--
 automation/build/yocto/yocto.inc      | 4 ++--
 automation/gitlab-ci/build.yaml       | 2 +-
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/automation/build/yocto/build-yocto.sh b/automation/build/yocto/build-yocto.sh
index 93ce81ce82..e7a03c4b10 100755
--- a/automation/build/yocto/build-yocto.sh
+++ b/automation/build/yocto/build-yocto.sh
@@ -25,6 +25,7 @@ TARGET_SUPPORTED="qemuarm qemuarm64 qemux86-64"
 VERBOSE="n"
 TARGETLIST=""
 BUILDJOBS="8"
+EXT4="ext4"
 
 # actions to do
 do_clean="n"
@@ -38,8 +39,9 @@ build_result=0
 # layers to include in the project
 build_layerlist="poky/meta poky/meta-poky poky/meta-yocto-bsp \
                  meta-openembedded/meta-oe meta-openembedded/meta-python \
+                 meta-openembedded/meta-networking \
                  meta-openembedded/meta-filesystems \
-                 meta-openembedded/meta-networking meta-virtualization"
+                 meta-virtualization"
 
 # yocto image to build
 build_image="xen-image-minimal"
@@ -83,6 +85,9 @@ function run_task() {
 function project_create() {
     target="${1:?}"
     destdir="${BUILDDIR}/${target}"
+    if [ $target = "qemux86-64" ]; then
+        EXT4=""
+    fi
 
     (
         # init yocto project
@@ -196,7 +201,7 @@ function project_run() {
 
         /usr/bin/expect <<EOF
 set timeout 1000
-spawn bash -c "runqemu serialstdio nographic slirp"
+spawn bash -c "runqemu serialstdio nographic slirp ${EXT4}"
 
 expect_after {
     -re "(.*)\r" {
diff --git a/automation/build/yocto/yocto.inc b/automation/build/yocto/yocto.inc
index 2f3b1a5b2a..209df7dde9 100644
--- a/automation/build/yocto/yocto.inc
+++ b/automation/build/yocto/yocto.inc
@@ -6,10 +6,10 @@
 # YOCTOVERSION-TARGET for x86_64 hosts
 # YOCTOVERSION-TARGET-arm64v8 for arm64 hosts
 # For example you can build an arm64 container with the following command:
-# make yocto/kirkstone-qemuarm64-arm64v8
+# make yocto/scarthgap-qemuarm64-arm64v8
 
 # Yocto versions we are currently using.
-YOCTO_VERSION = kirkstone
+YOCTO_VERSION = scarthgap
 
 # Yocto BSPs we want to build for.
 YOCTO_TARGETS = qemuarm64 qemuarm qemux86-64
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 7ce88d38e7..32045cef0c 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -212,7 +212,7 @@
   script:
     - ./automation/build/yocto/build-yocto.sh -v --log-dir=./logs --xen-dir=`pwd` ${YOCTO_BOARD} ${YOCTO_OUTPUT}
   variables:
-    YOCTO_VERSION: kirkstone
+    YOCTO_VERSION: scarthgap
     CONTAINER: yocto:${YOCTO_VERSION}-${YOCTO_BOARD}${YOCTO_HOST}
   artifacts:
     paths:
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 01:01:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 01:01:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765196.1175784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sX9Kg-0008BI-HT; Fri, 26 Jul 2024 01:01:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765196.1175784; Fri, 26 Jul 2024 01:01: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 1sX9Kg-0008AP-C9; Fri, 26 Jul 2024 01:01:18 +0000
Received: by outflank-mailman (input) for mailman id 765196;
 Fri, 26 Jul 2024 01:01: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=XHFb=O2=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sX9Ke-00059r-Qa
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 01:01:17 +0000
Received: from fout6-smtp.messagingengine.com (fout6-smtp.messagingengine.com
 [103.168.172.149]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a080a2b-4aea-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 03:01:07 +0200 (CEST)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.47])
 by mailfout.nyi.internal (Postfix) with ESMTP id 45F371380351;
 Thu, 25 Jul 2024 21:01:06 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute6.internal (MEProxy); Thu, 25 Jul 2024 21:01:06 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 25 Jul 2024 21:01:04 -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: 8a080a2b-4aea-11ef-8776-851b0ebba9a2
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=1721955666;
	 x=1722042066; bh=vMEFVFOBmxb1HtF7SEeR9nke0slxYCkVy8bbPz/CgoQ=; b=
	KQ2WtaqQrcn9tMX9La5NeuV5zz9y8a/L0veU9nefTcxUl41189n1jVcBKx2a7v8W
	YcsNFgKXN+zL7Lg1z9sXxEigVkl/4ppe7pq3YS25BI5yP9H+NvIQT3XR8hCL40Mu
	ONFPeFuH06rSQOESQBNPXJK5pDDweiExyo0TTArW3sIhzxC8kCX0dGtC7c6A1GsZ
	9uR4Qxl1uneAXJA13TGblN+fm7Jh+JHfWiUco3LySGGMt2O78NY+EUOe6XpQnryE
	b/zuvkIn/j/sFMM0KsdU3dJuU/jCQZ7FpWTvQGdg2mqvotGgnm744ijWkmAtwkWb
	LwES+y20Ne6MlKSTzReGpA==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1721955666; x=1722042066; bh=vMEFVFOBmxb1HtF7SEeR9nke0slx
	YCkVy8bbPz/CgoQ=; b=R65c60C5newhRbf30/1qG6FAHZmdGGi63FDU39ycfWKm
	uycRwgIzZPrqfEN0OHljJTKUzwtgXrAZAEkgNsCgiKzJC5wKkvPbU4HpXDyKNbfO
	rTktcQlu+6iOFL6r1/1yMtpSlJSMHKgMQx6nAGwIAXcJlUUHm5kSY2B1Fxlus0sB
	dkUymfW7QZtJtYEGkzKD3EP983C8IyZ8tIBb5uUF3SBGzWlD1fSbISMGgCiAce7m
	Wf9cMVm4520nvqsvS05rh0pH2jn/vqTHOFCusa+0kSDIQ1lXnF93An2lp7U9mkkF
	bNuCepEmD5Tkek/oWVvHGJb3eNrA8+kBxND+hlp1Cw==
X-ME-Sender: <xms:UfWiZmfmLenvZjmDm9O7o8iOzJ8Z4SiZH7x2dtPL6wHPOP97AFi6wg>
    <xme:UfWiZgPAdYbAmo4mFNzTGxC4TAtp1BlBVY2hgaxiqukdebAlF6sqz_a4eKDsQBDUg
    Scd_Qqd0G7WsQ>
X-ME-Received: <xmr:UfWiZnjLyZ5sVdRbfu2G_6erJi0UYbx1WS14LCOkmXARlDnvXaFxGHlUnwStv6JCm5vGwoLzShKUAvTxPLX0mujb_YdeGad1Ww>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrieeggdegtdcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudel
    teefvefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedt
X-ME-Proxy: <xmx:UvWiZj_ePNCIfe7LSZEg5KBC_9S3WDwz1lLOViEi7Hy8Bfn7Dr2fow>
    <xmx:UvWiZiv_7hkqD8bW4B3DYAGHg2NDcnb-DNqIobEHFPIbk0WrkleMfA>
    <xmx:UvWiZqHjjcqPT4DI1UdA3OChi8dBtU43aQjQ0mBC3t_vOeD1vFvrAw>
    <xmx:UvWiZhMj9qG2bCWfbr5aM52Tvl4ZNjVTYgte2mW4o8wDkA_AS4wyvw>
    <xmx:UvWiZmK8mAcVLnoAJmB6SxL10g4m2q-EW6AgMgywgU6CEjsyCrbSqLxU>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 26 Jul 2024 03:01:00 +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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v6 2/3] x86/mm: add API for marking only part of a MMIO
 page read only
Message-ID: <ZqL1TBOezvBgMQso@mail-itl>
References: <cover.66bd16d0134f9664ea3e0f4d56f7c127afc308c8.1721704980.git-series.marmarek@invisiblethingslab.com>
 <4bea5034cda37f35cd04115bebcccb52e3ea719e.1721704980.git-series.marmarek@invisiblethingslab.com>
 <7588feb4-dc42-4bf3-85db-7aaac201a2ff@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="1j2XPxvC1isC58oq"
Content-Disposition: inline
In-Reply-To: <7588feb4-dc42-4bf3-85db-7aaac201a2ff@suse.com>


--1j2XPxvC1isC58oq
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 26 Jul 2024 03:01:00 +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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v6 2/3] x86/mm: add API for marking only part of a MMIO
 page read only

On Thu, Jul 25, 2024 at 11:26:31AM +0200, Jan Beulich wrote:
> On 23.07.2024 05:24, Marek Marczykowski-G=C3=B3recki wrote:
> > +     * so tolerate it.
> > +     * But unaligned size would result in smaller area, so deny it.
> > +     */
> > +    ASSERT(IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN));
> > +    ASSERT(IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN));
> > +    if ( !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
> > +        return -EINVAL;
>=20
> I hoped you would, when adding the comment, recall an earlier comment of
> mine: If you want to tolerate mis-aligned start in release builds, you
> need to make further adjustments to the subsequent logic (at which
> point the respective assertion may become pointless); see below. While
> things may work okay without (I didn't fully convince myself either way),
> the main point here is that you want to make sure we test in debug builds
> what's actually used in release one. Hence subtleties like this would
> better be dealt with uniformly between release and debug builds.

Right, and I think this is a good argument to not try to accept
unaligned size either, even if it would be possible here.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmai9UwACgkQ24/THMrX
1yytbQf/ZvSfv6BxnYZLGS6L0Gjx1bhRO5xzwkGEXbcQgLdzhEsGFi3TcpNXJmGA
Mq46erMm2EFMkHSeHwiyboXay3F0tYLrEelRuWvJV5kTZ6V94Ws1bPhbwPZJ9VqG
Uig8ESaQr7XzNX98MxRm6rQtSfFbAJxSLmV8Qd1bGHQFhP+HA26P4gbVb4YIwFOC
b68C2+IJOIjsFMzsuXg6CvlQMXppSwBowce+cnT49oMVq/8YFTBfAlkb3bevyIkj
HLc/Bs7/NtKaZNP1L2ojeQGk9DQPxMQirYKeE2BKPLZBIj3nTXy+OlGDyE95dt2B
CzD1Y/QG5Mp/ok8KmA/P43zf5QR45w==
=sydp
-----END PGP SIGNATURE-----

--1j2XPxvC1isC58oq--


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 01:57:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 01:57:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765204.1175803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXACl-0004MK-Or; Fri, 26 Jul 2024 01:57:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765204.1175803; Fri, 26 Jul 2024 01: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 1sXACl-0004MA-KJ; Fri, 26 Jul 2024 01:57:11 +0000
Received: by outflank-mailman (input) for mailman id 765204;
 Fri, 26 Jul 2024 01: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=XHFb=O2=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sXACk-0004M2-Qt
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 01:57:10 +0000
Received: from fout7-smtp.messagingengine.com (fout7-smtp.messagingengine.com
 [103.168.172.150]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5cf6505f-4af2-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 03:57:08 +0200 (CEST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailfout.nyi.internal (Postfix) with ESMTP id 4A35A13802CF;
 Thu, 25 Jul 2024 21:57:07 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute5.internal (MEProxy); Thu, 25 Jul 2024 21:57:07 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 25 Jul 2024 21:57:04 -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: 5cf6505f-4af2-11ef-8776-851b0ebba9a2
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=1721959027; x=1722045427; bh=3q36D4bJYb
	KeTNzDrlCHr7vVdpQaHyX3JUKiZcT8bno=; b=vN/hKgqjhbMpN6C73nTDymg29F
	MNcGa6Imys7zQ6zvCuhUkw2tHlrdUmAlchyNdn3S4K/27872lU4WVi/DhBNUd/dS
	gitJ960hKVfQvdY010S932cs0aMBIA+jydLp+2nq9Gm8mhSrAu/vOIw8jkbVoZLC
	Ki75TDhvPpq3AUiXU0OY8cTJq7B13QjUpDbDexYEuHXS/2eqc3MATkhcLTfjieB/
	q+zpASYVQaHZJvmVXp6V5wQR7J0A8MFxGqW80sUpg+NyhxB1c82kxlyjnvwbPBkJ
	VNUzDNSxnYbJEcMx/NbRS1/p64OA6w3WBnrJiLN92J3vnmaO9o6rqmuOmlTA==
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-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1721959027; x=
	1722045427; bh=3q36D4bJYbKeTNzDrlCHr7vVdpQaHyX3JUKiZcT8bno=; b=K
	TTbsAg73rkDPw66++pyniJBiVrsqNCNfudpdreWk/iONcTfDhQ5HW6diiwTgF7S5
	rMkt6ubfs2d5jIO/nsxot6/xRvqD+PjsNFWuMg7NvAmeqMzBh1xllw/QQwAv4u9y
	HKKtlSwQU3Zc/7Ve4ihaqkiIXTH/M8HG8bbgPFb4zSezixzTyTZqMmy3H2feXQgJ
	i5pKpZApUE2EOjl2iE8E25u49zy1o3AU9mto8cjfp94bNAQelfaO7wkUppSLbJGq
	CLuXW2gnu0Fmd+xRypC3OWOnW3NH3ElX+riS8hxFUk/OiWdU92SDMjb2AMpsfL2r
	lsa38yCumnU2Isg+af3fw==
X-ME-Sender: <xms:cwKjZkXiw7XEYI1aA-RPyy2CAT9R7uj36H4J_cxeUbvvnMrLcRZVFA>
    <xme:cwKjZolxQxdUwyHUJPc_wE0oHllwZepenLcCyFjEo9GlMzNF2yJNul-XcbNNDlEXK
    q8Wf6hzPn7Tbw>
X-ME-Received: <xmr:cwKjZobFZO8n8UsAQo0Vy84ZzTe-4pW8rEcIbXpHa9AWATkcYgXg0Gp0y-atFyR60AGuXt6tpBcxT9u1nC0TAGY3LO_HMPl79Ll1hwynkQg7QqYxTzM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrieeggdehudcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeu
    udehgfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluh
    hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtoheptd
X-ME-Proxy: <xmx:cwKjZjXqyQdnGqpCxNyXibL6dTAgEVfFdAtc00Fl5Ro0rNZ4mmwc5g>
    <xmx:cwKjZukahNS4SABAFQw6oAJmtJRnVaGp-Rw7ZD_b3smYwAfVKc8fwA>
    <xmx:cwKjZodnH4pYfMfSrOyFXj5E_TWDWCrdJvSXLvQheENKoJsXGCL9pQ>
    <xmx:cwKjZgHwc_uHXUWA1ZRkEJlk18ikoWirSi7psuwZH6HvOPrrpYbxQg>
    <xmx:cwKjZltVIFm1WfHWY9FNey7p1kTdj7IMHHqPJEg5YG8i0Y6a7bSnHiJ_>
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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 2/2] drivers/char: Use sub-page ro API to make just xhci dbc cap RO
Date: Fri, 26 Jul 2024 03:55:54 +0200
Message-ID: <278c3f5336a02f6c3235772271e364f9d50c6034.1721958949.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.fe70b6220fe40bbe11f97b9396340c5dd11d59aa.1721958949.git-series.marmarek@invisiblethingslab.com>
References: <cover.fe70b6220fe40bbe11f97b9396340c5dd11d59aa.1721958949.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Not the whole page, which may contain other registers too. The XHCI
specification describes DbC as designed to be controlled by a different
driver, but does not mandate placing registers on a separate page. In fact
on Tiger Lake and newer (at least), this page do contain other registers
that Linux tries to use. And with share=yes, a domU would use them too.
Without this patch, PV dom0 would fail to initialize the controller,
while HVM would be killed on EPT violation.

With `share=yes`, this patch gives domU more access to the emulator
(although a HVM with any emulated device already has plenty of it). This
configuration is already documented as unsafe with untrusted guests and
not security supported.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4:
- restore mmio_ro_ranges in the fallback case
- set XHCI_SHARE_NONE in the fallback case
Changes in v3:
- indentation fix
- remove stale comment
- fallback to pci_ro_device() if subpage_mmio_ro_add() fails
- extend commit message
Changes in v2:
 - adjust for simplified subpage_mmio_ro_add() API
---
 xen/drivers/char/xhci-dbc.c | 36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/xen/drivers/char/xhci-dbc.c b/xen/drivers/char/xhci-dbc.c
index 8e2037f1a5f7..c45e4b6825cc 100644
--- a/xen/drivers/char/xhci-dbc.c
+++ b/xen/drivers/char/xhci-dbc.c
@@ -1216,20 +1216,28 @@ static void __init cf_check dbc_uart_init_postirq(struct serial_port *port)
         break;
     }
 #ifdef CONFIG_X86
-    /*
-     * This marks the whole page as R/O, which may include other registers
-     * unrelated to DbC. Xen needs only DbC area protected, but it seems
-     * Linux's XHCI driver (as of 5.18) works without writting to the whole
-     * page, so keep it simple.
-     */
-    if ( rangeset_add_range(mmio_ro_ranges,
-                PFN_DOWN((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
-                         uart->dbc.xhc_dbc_offset),
-                PFN_UP((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
-                       uart->dbc.xhc_dbc_offset +
-                sizeof(*uart->dbc.dbc_reg)) - 1) )
-        printk(XENLOG_INFO
-               "Error while adding MMIO range of device to mmio_ro_ranges\n");
+    if ( subpage_mmio_ro_add(
+             (uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
+              uart->dbc.xhc_dbc_offset,
+             sizeof(*uart->dbc.dbc_reg)) )
+    {
+        printk(XENLOG_WARNING
+               "Error while marking MMIO range of XHCI console as R/O, "
+               "making the whole device R/O (share=no)\n");
+        uart->dbc.share = XHCI_SHARE_NONE;
+        if ( pci_ro_device(0, uart->dbc.sbdf.bus, uart->dbc.sbdf.devfn) )
+            printk(XENLOG_WARNING
+                   "Failed to mark read-only %pp used for XHCI console\n",
+                   &uart->dbc.sbdf);
+        if ( rangeset_add_range(mmio_ro_ranges,
+                 PFN_DOWN((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
+                          uart->dbc.xhc_dbc_offset),
+                 PFN_UP((uart->dbc.bar_val & PCI_BASE_ADDRESS_MEM_MASK) +
+                        uart->dbc.xhc_dbc_offset +
+                        sizeof(*uart->dbc.dbc_reg)) - 1) )
+            printk(XENLOG_INFO
+                   "Error while adding MMIO range of device to mmio_ro_ranges\n");
+    }
 #endif
 }
 
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 01:57:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 01:57:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765203.1175793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXACj-00047z-Ff; Fri, 26 Jul 2024 01:57:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765203.1175793; Fri, 26 Jul 2024 01: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 1sXACj-00047s-D3; Fri, 26 Jul 2024 01:57:09 +0000
Received: by outflank-mailman (input) for mailman id 765203;
 Fri, 26 Jul 2024 01: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=XHFb=O2=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sXACh-00047h-R4
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 01:57:07 +0000
Received: from fhigh2-smtp.messagingengine.com
 (fhigh2-smtp.messagingengine.com [103.168.172.153])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a7bf067-4af2-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 03:57:04 +0200 (CEST)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id AE9D711401EA;
 Thu, 25 Jul 2024 21:57:02 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute2.internal (MEProxy); Thu, 25 Jul 2024 21:57:02 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 25 Jul 2024 21:57: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: 5a7bf067-4af2-11ef-bbff-fd08da9f4363
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=1721959022; x=1722045422; bh=ELkS5LyLRXW6K4j+ygM4XILJ8BqvSvZ7
	MAPzWMIadhU=; b=HLT1UnbHD8PrfoHA7Ty5qdPVZDo1bTwfz1KvYyDoHwgZxZnC
	FnlkR6nwM9ruz1G+XqxWsbKhSJiZy6VZyY0xTbkFrH1KJjK8TmZweQ3HXs0PbUpE
	YKbSheNFXQujSbSVCoo1vHIIZaXLIGEOv0sqqftXlIYpuPPVSWe6sNr/wORteOZa
	Kbq49Goldtl6lzE+wjDgXxLT8PJ/sgoqUXsnnMOkD1UjYFABoWYiaQTl/6kPpOIf
	9V0FETKKCT8kjWTcKmdnAR9xZZTC/ymUe9AO7AeDAPhXBLAqVUR2iWQ9SZ3GCbJg
	7A9zBQu1LOGz+Qu9qWg2BwdkVmn2PgsrOoU7aA==
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-proxy:x-me-sender:x-me-sender
	:x-sasl-enc; s=fm3; t=1721959022; x=1722045422; bh=ELkS5LyLRXW6K
	4j+ygM4XILJ8BqvSvZ7MAPzWMIadhU=; b=bJf6hggmutyWWXOXz5c/Yp6wTANH3
	WCbvQwPBPmIEh2vF3Vzk4GdxjT9MDBfr7kJdDPRmv15N1aAc5ltCS6dsDx7oN2iK
	yQjxicxDwEZXSmHLvSRBHN1Q+zF/iWf2fTfCmafcOZsh/DAKE0yEJve1gv1t8emv
	rXQLqs4f62CmnADwaGFh98ixKYERdlAmiI3PJLfNqhVavAl9adZBg7tLTYRz6IDH
	Jt8ga1OiuDWdl7062MmwZ7FL/AQkFSvYSzEDOcjZE7dLfw0Jw7TGGpRV8tPGFAPr
	U1wlCJXR2QIblprXNK7B5wH2AVyZHOG1aOzpv6nGSWIHzg6yIsFKhCR2Q==
X-ME-Sender: <xms:bgKjZt23ez2bf_kNizoQi0vLK4pvMO57cIYN5SgKhrawtMN_MGVeoA>
    <xme:bgKjZkHzj8KfDhKLCEplzUzH2dTC_C-lLIL6muJDbK0LuQTSGsR2jzA0Tzbc_k3y_
    LNN7rIFwAf-nA>
X-ME-Received: <xmr:bgKjZt5QI8Gq2wLVf-3xyI4FuC50JGX9CNABnwFyO_3IqfXfnV9frgbb4X-R7QPG97_sGUop3x9zf45wpw_ZUMFT5bEIRV2ZQTs-J_HUSut9-bMDI8U>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrieeggdehudcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecunecujfgurhephffvvefufffkofggtgfgsehtkeertd
    ertdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghk
    ihcuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqe
    enucggtffrrghtthgvrhhnpeelkefhudelteelleelteetveeffeetffekteetjeehlefg
    geekleeghefhtdehvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrih
    hlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgt
    ohhmpdhnsggprhgtphhtthhopedt
X-ME-Proxy: <xmx:bgKjZq1OPExS_qoZDBc0lnn3RrknErU_E_UxkQQqYoo_Ez_x1Y-vcg>
    <xmx:bgKjZgGyHG41jAbjbYGS9CEEUyCU8xI0tAEOy9X9bIavtvdz9kuzpA>
    <xmx:bgKjZr9M9yEqqBRvAioY3HbZitv9CatlrUSEuIngo-YiAVTWi-MBaQ>
    <xmx:bgKjZtnY8Hm9xaD6hZyesQDxa_Tug-N8TKi6QqWH-I5Hfm1JFfagig>
    <xmx:bgKjZqOi-zV1OmzivAOSX0eIbvB8Yz8HaLXncqrtYIJ_iHNNW7NnEiv2>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v7 0/2] Add API for making parts of a MMIO page R/O and use it in XHCI console
Date: Fri, 26 Jul 2024 03:55:52 +0200
Message-ID: <cover.fe70b6220fe40bbe11f97b9396340c5dd11d59aa.1721958949.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On older systems, XHCI xcap had a layout that no other (interesting) registers
were placed on the same page as the debug capability, so Linux was fine with
making the whole page R/O. But at least on Tiger Lake and Alder Lake, Linux
needs to write to some other registers on the same page too.

Add a generic API for making just parts of an MMIO page R/O and use it to fix
USB3 console with share=yes or share=hwdom options. More details in commit
messages.

Marek Marczykowski-Górecki (2):
  x86/mm: add API for marking only part of a MMIO page read only
  drivers/char: Use sub-page ro API to make just xhci dbc cap RO

 xen/arch/x86/hvm/emulate.c      |   2 +-
 xen/arch/x86/hvm/hvm.c          |   4 +-
 xen/arch/x86/include/asm/mm.h   |  23 +++-
 xen/arch/x86/mm.c               | 261 +++++++++++++++++++++++++++++++++-
 xen/arch/x86/pv/ro-page-fault.c |   6 +-
 xen/drivers/char/xhci-dbc.c     |  36 +++--
 6 files changed, 313 insertions(+), 19 deletions(-)

base-commit: b25b28ede1cba43eda1e0b84ad967683b8196847
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 01:57:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 01:57:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765205.1175813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXACn-0004ay-1e; Fri, 26 Jul 2024 01:57:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765205.1175813; Fri, 26 Jul 2024 01:57: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 1sXACm-0004ap-V2; Fri, 26 Jul 2024 01:57:12 +0000
Received: by outflank-mailman (input) for mailman id 765205;
 Fri, 26 Jul 2024 01:57: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=XHFb=O2=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sXACl-0004M2-G3
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 01:57:11 +0000
Received: from fhigh2-smtp.messagingengine.com
 (fhigh2-smtp.messagingengine.com [103.168.172.153])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5bc41b29-4af2-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 03:57:06 +0200 (CEST)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 4A4171140092;
 Thu, 25 Jul 2024 21:57:04 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute3.internal (MEProxy); Thu, 25 Jul 2024 21:57:04 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 25 Jul 2024 21:57: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: 5bc41b29-4af2-11ef-8776-851b0ebba9a2
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=1721959024; x=1722045424; bh=V9SW5G0rGZ
	yTaulKb/zNegGR8bV9fwlDUplOPdsUEsY=; b=nWOKrYsMoFTj54sXUcAIim+JiV
	9t4l3wUWok8oNLP4k6MRWHJBeoLT2CNRiqeFmFDXYATmJVqhCiCRB0jBEYXUmQwg
	6Qb1aLDOt2lFumyz4qqqBFDcgSgfMWbUf8S5BLDfPDROX4vG/CnXYBUG3VlUTDXF
	KErBtt06wvzKlzxJuJfXfD5ewySVcPA2qRiTbWbgE3l/MUnKeLFl5rTXpIv53pyk
	SOh2bqEm+XJIoxBg/p450nR9ZDLpod4p/7ox3X1ISq6jDIZVCflYal10EnoEAw17
	kObRX0APARuCQ7FO1U3vL2kZtyatSDHH44QsYDqR+QDwIf79U3Xkdt8lFYPQ==
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-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1721959024; x=
	1722045424; bh=V9SW5G0rGZyTaulKb/zNegGR8bV9fwlDUplOPdsUEsY=; b=G
	MxolI5CP9zwkwcrPJoImSPxS/sudY43tn3Qv/d+xe0eer02cg69LuPgnoljgmdhu
	n6eh4D5sH0eg2zMHU3+OTC3MBrVlqeea5LOof5SEo1GlI7yISk0qMG1jmHoEz/2g
	ch8BpT6p18jX5nDpaG0SsZ0RptCh9oR7n1KcqCPfEr0UCuy9FAMPaDx6XeQ5B/Yk
	QmD88ZWC7d89JVwSDzT571QVNJ2oUfkXD1RcSb3eyeBLTuFZvk+C2vFhJHi3Fe2R
	8GELUGcHbLL2YKzL7eLUNtxee4PE/g4K0BKv7Q5fJY0Jnyq5vm0GiZtHOZZnFe4p
	Vd2qsspNtCXXHgkTgLBqg==
X-ME-Sender: <xms:cAKjZiqq2Wiv3InJ3czepqikLZdvJmpogdrLKHBPDXWQjVgsD_DHhA>
    <xme:cAKjZgpMPcaPSzlFB1Zs5mjWiAHeSklSgkXZ1Tf-d-tBkyXvdO8uPDsBSvoW0Y7hk
    ZnPauPeYkweaA>
X-ME-Received: <xmr:cAKjZnO0Ajd_CDoJRi_IUNZl5FgwCgm8p5FXHwQxMKdMR4pGtf4TfNQxKDGLsfwRvkU1zHl4F7osUmay6WgsZplmDGoAe2k94cyqvR3UoVOAayr4ECg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrieeggdehudcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeu
    udehgfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluh
    hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtoheptd
X-ME-Proxy: <xmx:cAKjZh6TLTOmFnp9wL-B_IX5zA2dvY19YkcUIh52eoNF-2R8z5uHxA>
    <xmx:cAKjZh5cgJw1DHJolWmYpJzPgSklpphJbDi4W6ZYdwvum6P_RjvLVA>
    <xmx:cAKjZhjJ-GU47T0Q1ill3KMquRzK8tzo1GWd5w4ZmKV7QP_fUfYPAA>
    <xmx:cAKjZr7AVpQQULH6eVRR81qKrcY0RUmSnsfaHRPxe5neGcdeKC8nFA>
    <xmx:cAKjZk1pTDMH_FyxX4v2Fl3rSUTmhM3bCaGCdJBPNslACvrnvOEwxac2>
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>
Subject: [PATCH v7 1/2] x86/mm: add API for marking only part of a MMIO page read only
Date: Fri, 26 Jul 2024 03:55:53 +0200
Message-ID: <7439bbc83314e4d24a82afca4f6dbf1a1d002141.1721958949.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.fe70b6220fe40bbe11f97b9396340c5dd11d59aa.1721958949.git-series.marmarek@invisiblethingslab.com>
References: <cover.fe70b6220fe40bbe11f97b9396340c5dd11d59aa.1721958949.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In some cases, only few registers on a page needs to be write-protected.
Examples include USB3 console (64 bytes worth of registers) or MSI-X's
PBA table (which doesn't need to span the whole table either), although
in the latter case the spec forbids placing other registers on the same
page. Current API allows only marking whole pages pages read-only,
which sometimes may cover other registers that guest may need to
write into.

Currently, when a guest tries to write to an MMIO page on the
mmio_ro_ranges, it's either immediately crashed on EPT violation - if
that's HVM, or if PV, it gets #PF. In case of Linux PV, if access was
from userspace (like, /dev/mem), it will try to fixup by updating page
tables (that Xen again will force to read-only) and will hit that #PF
again (looping endlessly). Both behaviors are undesirable if guest could
actually be allowed the write.

Introduce an API that allows marking part of a page read-only. Since
sub-page permissions are not a thing in page tables (they are in EPT,
but not granular enough), do this via emulation (or simply page fault
handler for PV) that handles writes that are supposed to be allowed.
The new subpage_mmio_ro_add() takes a start physical address and the
region size in bytes. Both start address and the size need to be 8-byte
aligned, as a practical simplification (allows using smaller bitmask,
and a smaller granularity isn't really necessary right now).
It will internally add relevant pages to mmio_ro_ranges, but if either
start or end address is not page-aligned, it additionally adds that page
to a list for sub-page R/O handling. The list holds a bitmask which
qwords are supposed to be read-only and an address where page is mapped
for write emulation - this mapping is done only on the first access. A
plain list is used instead of more efficient structure, because there
isn't supposed to be many pages needing this precise r/o control.

The mechanism this API is plugged in is slightly different for PV and
HVM. For both paths, it's plugged into mmio_ro_emulated_write(). For PV,
it's already called for #PF on read-only MMIO page. For HVM however, EPT
violation on p2m_mmio_direct page results in a direct domain_crash() for
non hardware domains.  To reach mmio_ro_emulated_write(), change how
write violations for p2m_mmio_direct are handled - specifically, check
if they relate to such partially protected page via
subpage_mmio_write_accept() and if so, call hvm_emulate_one_mmio() for
them too. This decodes what guest is trying write and finally calls
mmio_ro_emulated_write(). The EPT write violation is detected as
npfec.write_access and npfec.present both being true (similar to other
places), which may cover some other (future?) cases - if that happens,
emulator might get involved unnecessarily, but since it's limited to
pages marked with subpage_mmio_ro_add() only, the impact is minimal.
Both of those paths need an MFN to which guest tried to write (to check
which part of the page is supposed to be read-only, and where
the page is mapped for writes). This information currently isn't
available directly in mmio_ro_emulated_write(), but in both cases it is
already resolved somewhere higher in the call tree. Pass it down to
mmio_ro_emulated_write() via new mmio_ro_emulate_ctxt.mfn field.

This may give a bit more access to the instruction emulator to HVM
guests (the change in hvm_hap_nested_page_fault()), but only for pages
explicitly marked with subpage_mmio_ro_add() - so, if the guest has a
passed through a device partially used by Xen.
As of the next patch, it applies only configuration explicitly
documented as not security supported.

The subpage_mmio_ro_add() function cannot be called with overlapping
ranges, and on pages already added to mmio_ro_ranges separately.
Successful calls would result in correct handling, but error paths may
result in incorrect state (like pages removed from mmio_ro_ranges too
early). Debug build has asserts for relevant cases.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Shadow mode is not tested, but I don't expect it to work differently than
HAP in areas related to this patch.

Changes in v7:
- refuse misaligned start in release build too, to have release build
  running what was tested in debug build
- simplify return from subpage_mmio_ro_add_page
Changes in v6:
- fix return type of subpage_mmio_find_page()
- change 'iter' pointer to 'new_entry' bool and move list_add()
- comment why different error handling for unaligned start / size
- code style
Changes in v5:
- use subpage_mmio_find_page helper, simplifying several functions
- use LIST_HEAD_RO_AFTER_INIT
- don't use subpage_ro_lock in __init
- drop #ifdef in mm.h
- return error on unaligned size in subpage_mmio_ro_add() instead of
  extending the size (in release build)
Changes in v4:
- rename SUBPAGE_MMIO_RO_ALIGN to MMIO_RO_SUBPAGE_GRAN
- guard subpage_mmio_write_accept with CONFIG_HVM, as it's used only
  there
- rename ro_qwords to ro_elems
- use unsigned arguments for subpage_mmio_ro_remove_page()
- use volatile for __iomem
- do not set mmio_ro_ctxt.mfn for mmcfg case
- comment where fields of mmio_ro_ctxt are used
- use bool for result of __test_and_set_bit
- do not open-code mfn_to_maddr()
- remove leftover RCU
- mention hvm_hap_nested_page_fault() explicitly in the commit message
Changes in v3:
- use unsigned int for loop iterators
- use __set_bit/__clear_bit when under spinlock
- avoid ioremap() under spinlock
- do not cast away const
- handle unaligned parameters in release build
- comment fixes
- remove RCU - the add functions are __init and actual usage is only
  much later after domains are running
- add checks overlapping ranges in debug build and document the
  limitations
- change subpage_mmio_ro_add() so the error path doesn't potentially
  remove pages from mmio_ro_ranges
- move printing message to avoid one goto in
  subpage_mmio_write_emulate()
Changes in v2:
- Simplify subpage_mmio_ro_add() parameters
- add to mmio_ro_ranges from within subpage_mmio_ro_add()
- use ioremap() instead of caller-provided fixmap
- use 8-bytes granularity (largest supported single write) and a bitmap
  instead of a rangeset
- clarify commit message
- change how it's plugged in for HVM domain, to not change the behavior for
  read-only parts (keep it hitting domain_crash(), instead of ignoring
  write)
- remove unused subpage_mmio_ro_remove()
---
 xen/arch/x86/hvm/emulate.c      |   2 +-
 xen/arch/x86/hvm/hvm.c          |   4 +-
 xen/arch/x86/include/asm/mm.h   |  23 +++-
 xen/arch/x86/mm.c               | 261 +++++++++++++++++++++++++++++++++-
 xen/arch/x86/pv/ro-page-fault.c |   6 +-
 5 files changed, 291 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 02e378365b40..7253a87032dd 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2734,7 +2734,7 @@ int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
         .write      = mmio_ro_emulated_write,
         .validate   = hvmemul_validate,
     };
-    struct mmio_ro_emulate_ctxt mmio_ro_ctxt = { .cr2 = 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;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7f4b627b1f5f..a108870558bf 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2016,8 +2016,8 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
         goto out_put_gfn;
     }
 
-    if ( (p2mt == p2m_mmio_direct) && is_hardware_domain(currd) &&
-         npfec.write_access && npfec.present &&
+    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;
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 98b66edaca5e..a457f0d2b1b3 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -522,9 +522,32 @@ extern struct rangeset *mmio_ro_ranges;
 void memguard_guard_stack(void *p);
 void memguard_unguard_stack(void *p);
 
+/*
+ * Add more precise r/o marking for a MMIO page. Range specified here
+ * will still be R/O, but the rest of the page (not marked as R/O via another
+ * call) will have writes passed through.
+ * The start address and the size must be aligned to MMIO_RO_SUBPAGE_GRAN.
+ *
+ * This API cannot be used for overlapping ranges, nor for pages already added
+ * to mmio_ro_ranges separately.
+ *
+ * Since there is currently no subpage_mmio_ro_remove(), relevant device should
+ * not be hot-unplugged.
+ *
+ * Return values:
+ *  - negative: error
+ *  - 0: success
+ */
+#define MMIO_RO_SUBPAGE_GRAN 8
+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(
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 95795567f2a5..cfd487d06474 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -152,6 +152,17 @@ 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);
+
 /* Global bit is allowed to be set on L1 PTEs. Intended for user mappings. */
 #define L1_DISALLOW_MASK ((base_disallow_mask | _PAGE_GNTTAB) & ~_PAGE_GLOBAL)
 
@@ -4912,6 +4923,253 @@ 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 *entry;
+
+    list_for_each_entry(entry, &subpage_ro_ranges, list)
+        if ( mfn_eq(entry->mfn, mfn) )
+            return entry;
+
+    return NULL;
+}
+
+/*
+ * Mark part of the page as R/O.
+ * Returns:
+ * - 0 on success - first range in the page
+ * - 1 on success - subsequent range in the page
+ * - <0 on error
+ */
+static int __init subpage_mmio_ro_add_page(
+    mfn_t mfn,
+    unsigned int offset_s,
+    unsigned int offset_e)
+{
+    struct subpage_ro_range *entry = NULL;
+    bool new_entry = false;
+    unsigned int i;
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+    {
+        entry = xzalloc(struct subpage_ro_range);
+        if ( !entry )
+            return -ENOMEM;
+        entry->mfn = mfn;
+        list_add(&entry->list, &subpage_ro_ranges);
+        new_entry = true;
+    }
+
+    for ( i = offset_s; i <= offset_e; i += MMIO_RO_SUBPAGE_GRAN )
+    {
+        bool oldbit = __test_and_set_bit(i / MMIO_RO_SUBPAGE_GRAN,
+                                         entry->ro_elems);
+        ASSERT(!oldbit);
+    }
+
+    return !new_entry;
+}
+
+static void __init subpage_mmio_ro_remove_page(
+    mfn_t mfn,
+    unsigned int offset_s,
+    unsigned int offset_e)
+{
+    struct subpage_ro_range *entry = NULL;
+    unsigned int i;
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+        return;
+
+    for ( i = offset_s; i <= offset_e; i += MMIO_RO_SUBPAGE_GRAN )
+        __clear_bit(i / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems);
+
+    if ( !bitmap_empty(entry->ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN) )
+        return;
+
+    list_del(&entry->list);
+    if ( entry->mapped )
+        iounmap(entry->mapped);
+    xfree(entry);
+}
+
+int __init subpage_mmio_ro_add(
+    paddr_t start,
+    size_t size)
+{
+    mfn_t mfn_start = maddr_to_mfn(start);
+    paddr_t end = start + size - 1;
+    mfn_t mfn_end = maddr_to_mfn(end);
+    unsigned int offset_end = 0;
+    int rc;
+    bool subpage_start, subpage_end;
+
+    ASSERT(IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN));
+    ASSERT(IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN));
+    if ( !IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN) ||
+         !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
+        return -EINVAL;
+
+    if ( !size )
+        return 0;
+
+    if ( mfn_eq(mfn_start, mfn_end) )
+    {
+        /* Both starting and ending parts handled at once */
+        subpage_start = PAGE_OFFSET(start) || PAGE_OFFSET(end) != PAGE_SIZE - 1;
+        subpage_end = false;
+    }
+    else
+    {
+        subpage_start = PAGE_OFFSET(start);
+        subpage_end = PAGE_OFFSET(end) != PAGE_SIZE - 1;
+    }
+
+    if ( subpage_start )
+    {
+        offset_end = mfn_eq(mfn_start, mfn_end) ?
+                     PAGE_OFFSET(end) :
+                     (PAGE_SIZE - 1);
+        rc = subpage_mmio_ro_add_page(mfn_start,
+                                      PAGE_OFFSET(start),
+                                      offset_end);
+        if ( rc < 0 )
+            goto err_unlock;
+        /* Check if not marking R/W part of a page intended to be fully R/O */
+        ASSERT(rc || !rangeset_contains_singleton(mmio_ro_ranges,
+                                                  mfn_x(mfn_start)));
+    }
+
+    if ( subpage_end )
+    {
+        rc = subpage_mmio_ro_add_page(mfn_end, 0, PAGE_OFFSET(end));
+        if ( rc < 0 )
+            goto err_unlock_remove;
+        /* Check if not marking R/W part of a page intended to be fully R/O */
+        ASSERT(rc || !rangeset_contains_singleton(mmio_ro_ranges,
+                                                  mfn_x(mfn_end)));
+    }
+
+    rc = rangeset_add_range(mmio_ro_ranges, mfn_x(mfn_start), mfn_x(mfn_end));
+    if ( rc )
+        goto err_remove;
+
+    return 0;
+
+ err_remove:
+    if ( subpage_end )
+        subpage_mmio_ro_remove_page(mfn_end, 0, PAGE_OFFSET(end));
+ err_unlock_remove:
+    if ( subpage_start )
+        subpage_mmio_ro_remove_page(mfn_start, PAGE_OFFSET(start), offset_end);
+ err_unlock:
+    return rc;
+}
+
+static void __iomem *subpage_mmio_map_page(
+    struct subpage_ro_range *entry)
+{
+    void __iomem *mapped_page;
+
+    if ( entry->mapped )
+        return entry->mapped;
+
+    mapped_page = ioremap(mfn_to_maddr(entry->mfn), PAGE_SIZE);
+
+    spin_lock(&subpage_ro_lock);
+    /* Re-check under the lock */
+    if ( entry->mapped )
+    {
+        spin_unlock(&subpage_ro_lock);
+        if ( mapped_page )
+            iounmap(mapped_page);
+        return entry->mapped;
+    }
+
+    entry->mapped = mapped_page;
+    spin_unlock(&subpage_ro_lock);
+    return entry->mapped;
+}
+
+static void subpage_mmio_write_emulate(
+    mfn_t mfn,
+    unsigned int offset,
+    const void *data,
+    unsigned int len)
+{
+    struct subpage_ro_range *entry;
+    volatile void __iomem *addr;
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+        /* Do not print message for pages without any writable parts. */
+        return;
+
+    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);
+        return;
+    }
+
+    addr = subpage_mmio_map_page(entry);
+    if ( !addr )
+    {
+        gprintk(XENLOG_ERR,
+                "Failed to map page for MMIO write at 0x%"PRI_mfn"%03x\n",
+                mfn_x(mfn), offset);
+        return;
+    }
+
+    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;
+    }
+}
+
+#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,
@@ -4930,6 +5188,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);
+
     return X86EMUL_OKAY;
 }
 
diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c
index cad28ef928ad..2ea1a6ad489c 100644
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -333,8 +333,10 @@ static int mmio_ro_do_page_fault(struct x86_emulate_ctxt *ctxt,
     ctxt->data = &mmio_ro_ctxt;
     if ( pci_ro_mmcfg_decode(mfn_x(mfn), &mmio_ro_ctxt.seg, &mmio_ro_ctxt.bdf) )
         return x86_emulate(ctxt, &mmcfg_intercept_ops);
-    else
-        return x86_emulate(ctxt, &mmio_ro_emulate_ops);
+
+    mmio_ro_ctxt.mfn = mfn;
+
+    return x86_emulate(ctxt, &mmio_ro_emulate_ops);
 }
 
 int pv_ro_page_fault(unsigned long addr, struct cpu_user_regs *regs)
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 01:59:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 01:59:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765221.1175822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXAEr-0005lY-EA; Fri, 26 Jul 2024 01:59:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765221.1175822; Fri, 26 Jul 2024 01: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 1sXAEr-0005lR-Ay; Fri, 26 Jul 2024 01:59:21 +0000
Received: by outflank-mailman (input) for mailman id 765221;
 Fri, 26 Jul 2024 01:59:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXAEq-0005lF-13; Fri, 26 Jul 2024 01:59:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXAEp-0000kE-RY; Fri, 26 Jul 2024 01:59:19 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXAEp-0000HP-C5; Fri, 26 Jul 2024 01:59:19 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXAEp-0001l1-Be; Fri, 26 Jul 2024 01:59:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ZVpwY/7pzGUo/MdUgl54dCdN+0UnrLqPaYSB316/WYQ=; b=daCJpP4cuVpJzUzMDTNlvlWdHn
	EluMMPtEuRhfr1lMXdkEb140HI9eq2k4FMDVAbVDqa2jIkQw6SYWKYYMgSIDfplmhKDJxbNgtlj62
	RMMLE0XN0UjZBoNpt0vs7jP9zSuFutbcXwcP4+40uBTKg2BhaEvG3uEFjVq7DCcbbAI0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187004-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187004: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-libvirt:debian-fixup:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c33ffdb70cc6df4105160f991288e7d2567d7ffa
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Jul 2024 01:59:19 +0000

flight 187004 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187004/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel  8 xen-boot            fail REGR. vs. 186827
 test-amd64-amd64-dom0pvh-xl-amd  8 xen-boot              fail REGR. vs. 186827
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-libvirt     13 debian-fixup               fail pass in 186989
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 186989

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt    15 migrate-support-check fail in 186989 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                c33ffdb70cc6df4105160f991288e7d2567d7ffa
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    9 days
Failing since        186925  2024-07-20 09:44:52 Z    5 days   12 attempts
Testing same since   186989  2024-07-24 20:42:49 Z    1 days    2 attempts

------------------------------------------------------------
1872 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     fail    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 209256 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 06:41:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 06:41:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765251.1175833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXEdO-0006Qi-4r; Fri, 26 Jul 2024 06:40:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765251.1175833; Fri, 26 Jul 2024 06:40: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 1sXEdO-0006Qb-1p; Fri, 26 Jul 2024 06:40:58 +0000
Received: by outflank-mailman (input) for mailman id 765251;
 Fri, 26 Jul 2024 06:40:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=v01E=O2=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1sXEdN-0006QT-Dg
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 06:40:57 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02c57151-4b1a-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 08:40:56 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 2CE024EE073C;
 Fri, 26 Jul 2024 08:40: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: 02c57151-4b1a-11ef-bbff-fd08da9f4363
MIME-Version: 1.0
Date: Fri, 26 Jul 2024 08:40:55 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: victorm.lira@amd.com, xen-devel@lists.xenproject.org, Jan Beulich
 <jbeulich@suse.com>, roberto.bagnara@bugseng.com, consulting@bugseng.com,
 simone.ballarin@bugseng.com
Subject: Re: [RFC PATCH v3] automation: add linker symbol name script
In-Reply-To: <alpine.DEB.2.22.394.2407251542230.4857@ubuntu-linux-20-04-desktop>
References: <29c7f6cd166d5d3c0e9f64dc937e29dc7ecf3f2d.1721933988.git.victorm.lira@amd.com>
 <d1a08318bb28df72f95c737627c1a4e5@bugseng.com>
 <alpine.DEB.2.22.394.2407251542230.4857@ubuntu-linux-20-04-desktop>
Message-ID: <0d4bd08ca7e9054b04c7eda6c03c7621@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-26 00:43, Stefano Stabellini wrote:
> On Thu, 25 Jul 2024, Nicola Vetrini wrote:
>> On 2024-07-25 21:01, victorm.lira@amd.com wrote:
>> > From: Victor Lira <victorm.lira@amd.com>
>> >
>> > Requested-by: Jan Beulich <jbeulich@suse.com>
>> > Signed-off-by: Victor Lira <victorm.lira@amd.com>
>> > ---
>> > Notes:
>> > This is a utilty script for help with the MISRA process.
>> > This script matches all linker symbol names in linker script files for
>> > arm or x86.
>> > Not included are symbol names starting with "." or symbol names enclosed
>> > in quotes since the files dont't use any. The regular expression also does
>> > not match for "&=" and similar compound assignments.
>> > ---
>> > Cc: Jan Beulich <jbeulich@suse.com>
>> > Cc: Stefano Stabellini <sstabellini@kernel.org>
>> > Cc: roberto.bagnara@bugseng.com
>> > Cc: consulting@bugseng.com
>> > Cc: simone.ballarin@bugseng.com
>> > ---
>> > Changes v2:
>> > - address style comments
>> > - updated script to use .lds instead of .lds.S
>> > - remove sample output from patch
>> >
>> > Changes v3:
>> > - use #!/bin/sh
>> > - update error handling and message similar to ../build.sh
>> > ---
>> >  automation/eclair_analysis/linker-symbols.sh | 34 ++++++++++++++++++++
>> >  1 file changed, 34 insertions(+)
>> >  create mode 100755 automation/eclair_analysis/linker-symbols.sh
>> >
>> > diff --git a/automation/eclair_analysis/linker-symbols.sh
>> > b/automation/eclair_analysis/linker-symbols.sh
>> > new file mode 100755
>> > index 0000000000..61790fb281
>> > --- /dev/null
>> > +++ b/automation/eclair_analysis/linker-symbols.sh
>> > @@ -0,0 +1,34 @@
>> > +#!/bin/sh
>> > +
>> > +# Stop immediately if any executed command has exit status different from
>> > 0.
>> > +set -e
>> > +
>> > +# Extract linker symbol names (except those starting with ".") from
>> > assignments.
>> > +
>> > +script_name=$(basename "$0")
>> > +script_dir="$(
>> > +  cd "$(dirname "$0")"
>> > +  echo "${PWD}"
>> > +)"
>> > +src_dir="${script_dir}/../.."
>> > +
>> > +fatal() {
>> > +  echo "${script_name}: $*" >&2
>> > +  exit 1
>> > +}
>> > +
>> > +usage() {
>> > +  fatal "Usage: ${script_name} <arm|x86>"
>> > +}
>> > +
>> > +if [ $# -ne 1 ]; then
>> > +  usage
>> > +fi
>> > +
>> > +filepath="${src_dir}/xen/arch/${1}/xen.lds"
>> > +
>> > +if [ ! -f "$filepath" ]; then
>> > +  fatal "Could not find ${1} linker script. Must be run after arm/x86
>> > build."
>> > +fi
>> > +
>> 
>> A doubt I came across now: since this script must be run after the 
>> build (and
>> hence the analysis), but the configuration must be generated before 
>> the
>> analysis, the only way this could work in my opinion is this:
>> 
>> - a build without analysis is performed, just enough to build xen.lds 
>> (maybe
>> there is a specific Makefile target to do this)
>> - generate the configuration, then clean everything and then run the 
>> analysis
> 
> Yes, that is one option and it should work. The other option is to run
> this script against the xen.lds.S files instead (if it works.)
> 

However, as Jan pointed out in v1, this second option may yield 
incomplete results.
The way we can notice if there's a discrepancy is by running the 
analysis with the automatically generated deviation and tell whether the 
resulting reports for Rule 18.2 there are any about linker-defined 
symbols.

> 
>> > +sed -n "s/^\s*\([a-zA-Z_][a-zA-Z_0-9.\-]*\)\s*=.*;.*$/\1/p" "$filepath"

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 06:45:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 06:45:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765259.1175842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXEhs-000708-Le; Fri, 26 Jul 2024 06:45:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765259.1175842; Fri, 26 Jul 2024 06: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 1sXEhs-000701-It; Fri, 26 Jul 2024 06:45:36 +0000
Received: by outflank-mailman (input) for mailman id 765259;
 Fri, 26 Jul 2024 06:45:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXEhr-0006zp-Ke; Fri, 26 Jul 2024 06:45:35 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXEhr-0002lc-B4; Fri, 26 Jul 2024 06:45:35 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXEhq-00069A-Uv; Fri, 26 Jul 2024 06:45:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXEhq-0000iV-UC; Fri, 26 Jul 2024 06:45:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=D8+r94At0UXF/58tnMeT76BHuFTzQaDWxdZyAHr0/Ew=; b=5X7wwHV3dryYj58NDGipYuhurg
	w0eKDoBWOVpL6Kntruh9ejyEOw/r/M8mgGjLditdyq+btFTCkojrJ2e5hSYQadOfrUts+26HGrmqL
	VLlpNkT9PSQQWEyhXFnoaPLnftCd3ZthYuzEBoGGUT5LGZ6WRXeQOF6vHE+GCYrrSQyY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187012-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187012: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=ffc09b51cb7cc47bc80730d6c9e14563140dd052
X-Osstest-Versions-That:
    ovmf=b1bce5e5649840159d54eb8bffa4fa3d4fae8ee6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Jul 2024 06:45:34 +0000

flight 187012 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187012/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 ffc09b51cb7cc47bc80730d6c9e14563140dd052
baseline version:
 ovmf                 b1bce5e5649840159d54eb8bffa4fa3d4fae8ee6

Last test of basis   187008  2024-07-25 14:43:33 Z    0 days
Testing same since   187012  2024-07-26 03:15:18 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dmitry Antipov <dmanti@microsoft.com>
  Oliver Smith-Denny <osde@linux.microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   b1bce5e564..ffc09b51cb  ffc09b51cb7cc47bc80730d6c9e14563140dd052 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 06:53:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 06:53:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765269.1175853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXEpc-0000C3-EC; Fri, 26 Jul 2024 06:53:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765269.1175853; Fri, 26 Jul 2024 06:53:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXEpc-0000Bw-BS; Fri, 26 Jul 2024 06:53:36 +0000
Received: by outflank-mailman (input) for mailman id 765269;
 Fri, 26 Jul 2024 06:53: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=8CH3=O2=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sXEpa-0000Bq-AZ
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 06:53:34 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20601.outbound.protection.outlook.com
 [2a01:111:f403:2416::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c41c3e4d-4b1b-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 08:53:31 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CH3PR12MB8281.namprd12.prod.outlook.com (2603:10b6:610:128::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.29; Fri, 26 Jul
 2024 06:53: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%3]) with mapi id 15.20.7784.020; Fri, 26 Jul 2024
 06:53: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: c41c3e4d-4b1b-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V3R5waRWVxXqgX/NqxkBDe+H1h9p5sDhOkREVIVIB33W+5pipCYDQ9K5aLdxJSvEARKNB9YVdE74MySpqYJg0nJWUdREeFcZOzftuzcn97d1BodYxKLVyL8bx0CbwRStS3cAQ+vpEXbRM+rDO8ZuAJZSMv7xk29jNik73LD6kkLmudkAbqsJF1ImWp6FoEACN1UTTjbUln24jOH5onRbqiPcRzkZYEN/zIqdxPGBogNgOrGBS02i2WBaR06mOkKjIWKddozChe18pw5jxZplaOwKDCL6OcUbkz+55vVren4k8mTzZEHRadRz5vkkO0AZmqUxHataOIIcpA+OY8dqUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AfMPp1rzJPurHPEQ0MOgTyxy0JVuYr8ce3YkF1vUxBU=;
 b=s/ouNwGeMTVPxOkmObfam5lPBO/t2XYuCjT8ksf67mr5CWxfChkx8A/dOggrDCnhUpO8pg/+YcZ/vK+58seNiAWbdHpZHkJrxVWxgQ4gNbfOeCxtjq1EE7Y9G4rqf6GiIRtb/TdwIsmE6NPanAraV6bexeg3iALGAH+eXvgna6ZgErVCnAW6VM19VCpK53eMx6TH9+NHCd7v8JUQydkVxzTH5hGB9Kqwp94+D4pgTMqtMAGtgf4KH1uVnQQSrHJtBOBPnfAwXyau8htbd7SIb6oARbWybfdpPHIzqIBLOgNigcQ+vXP8duPBdnRcAgx86Wn0ff3DxoKuxY4Qaaydww==
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=AfMPp1rzJPurHPEQ0MOgTyxy0JVuYr8ce3YkF1vUxBU=;
 b=CHPA5CvG3zS/AgxtIxDklgnrcly7HVU5d2SiVrKWOC9PRvnTHDYbM546EQWPi0PEes1xjOHJaWpfhuOUVD0kB9euelMyXrL+t0le0ah1T/fZQugtUuacpUiq3IFdYtLbTBoMJDMx08UNZGBo/ZulT4vgDaHWg0RqsWYNSTAZSKE=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall
	<julien@xen.org>, Anthony PERARD <anthony@xenproject.org>, Juergen Gross
	<jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 4/7] x86/domctl: Add hypercall to set the access
 of x86 gsi
Thread-Topic: [XEN PATCH v12 4/7] x86/domctl: Add hypercall to set the access
 of x86 gsi
Thread-Index: AQHa0SvYL4tONjoIyEuzfSK6fk2TK7IDZYuAgAXOcoA=
Date: Fri, 26 Jul 2024 06:53:27 +0000
Message-ID:
 <BL1PR12MB5849C8A40630534241B31941E7B42@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-5-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2407221505440.4857@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2407221505440.4857@ubuntu-linux-20-04-desktop>
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.7784.020)
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_|CH3PR12MB8281:EE_
x-ms-office365-filtering-correlation-id: c5f3ddad-db52-4403-0233-08dcad3fa6b2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?OVlKTjIwM2ZqcW9TMjloSitWQXBCTVF3Skd6aU8rMTJscGYzWDltQnVvV3Qr?=
 =?utf-8?B?Q3FGcW1DZ2xVTjQyVHhwVm5wNmJTcE9tdkFVTnFzd0tjQ3hlbzA0cDhsUnI0?=
 =?utf-8?B?VHZBRTd4QnZmRWVhUE5rWGhqZmNQM0I0OFVYbTJWaGVLbVF5b2QxaklETVZX?=
 =?utf-8?B?QlJGaElpNi9UR0dtV3VSY2JIaU1VSUwwM25PNld3M3VMVVF6K09mcU9iK08y?=
 =?utf-8?B?d3BRVTN5NnZHaUphdmhsejVqWGhjQzhQdVJMYlpuano1WG91NFpzZ3ZBaWV0?=
 =?utf-8?B?NlRkb2I2QWlrMHhMMkQ2NU95eCtNQjl1YmgvRDVBckFmdStnN0N1UHl3ejE1?=
 =?utf-8?B?SWFGNHBkREJYOTNSNWRmREM3eExrcEZISnRoZFVJWUxxUjU4dzJKb3NIVzdk?=
 =?utf-8?B?b2krZGlWN2RUVVBQSk1adEFPdFJZS21ZZEhjdGpTMXF3OGxiMG4rS0NHUWwv?=
 =?utf-8?B?ajU2T1JTKzF6ZDFZQ3RnYmVqY2t6U3VxL2pyQnRoT1BoYnBKYWVWS2FhRVVN?=
 =?utf-8?B?N1lwQ3QyQ0xNZE14WGpnSWJtRlNTNmIybmdGQm1xc2NmM2xRU2JJYzMwM3J5?=
 =?utf-8?B?aGpSdTVRZXIwajRSZmNua05GMWdCQ2NmcjhSQVl0cHpLMFpicVZuZW8xRjJS?=
 =?utf-8?B?cjJIeDZhUlkvVktHRGRTWFl1WGFFcE5kY3F5ZFBRckNjcmZxaW1rVkpOKzBa?=
 =?utf-8?B?R1g0bUl2NVlQK1FobGNwbHNBTEttcEJrMjAra3c3WHNxNDZ0S2I5SVJTV3hx?=
 =?utf-8?B?Z3R3T1lEelBuTWZaUjNEbGlGYWhHR1Mwa0lnbncxSkxaM3o4WGRqS2lZRVdk?=
 =?utf-8?B?Vis0QThFQWhPM3E3MHlKSmhpd2tOWjAzUnF5cWkrNlFsVDBuaittRjJ5cTVJ?=
 =?utf-8?B?SW82d0dMWjJMMHdncUtKWXVrdzBTbWZRcGpuMHRNTUJKVE5SYmFuQndUa21p?=
 =?utf-8?B?cTJ2UENYUy9pSk1YbGt2VWp6TkF2cWhuRllkY1VCMzVFTDFsRGk0VXBmRnNh?=
 =?utf-8?B?UDE0L2pUcjMxTGY4OE9uVjVVanRhTHRROWM5eklWNEd4MlJ2Um92cGpteGo2?=
 =?utf-8?B?SEFBSDVDU2J4RDNVWmdWSFJJMFdMT003emlXQzZvaTE4Y0ZHUmMzQWM4c0t1?=
 =?utf-8?B?cTBObkw0ZllmUTdVOGRmdDRvK1lsL0MxK3UwU3NyVXY2R210NUxpYXFtSjgy?=
 =?utf-8?B?L0NSNE1kTnhLTm42REVtM3BqSDB4dnJ0QUtmcFpOVVNQYXdHVDJJZjdGR0hn?=
 =?utf-8?B?b2N3aVBlNkdrNWF6RXpXcmswZVVoS2NSZE9EVkZCOTNhK2gxRHBRN3pxRFBP?=
 =?utf-8?B?UE1EUURoSDBmaTQrK1owWVZyTmhZN3ArT1lCbDVMTG14Y1VhMXZ0LytPMWd5?=
 =?utf-8?B?SDl0dXNaQlREdWk1U0txaFNYZFNtZjhrUHIxR3ZZcGRJR3ZCK2cyMSszVnRk?=
 =?utf-8?B?NXhWaDRJamU0amZObzg4UG8wTUZzQ29sd0RrbmgxTU1rbEV5N3JXR1dyRnlm?=
 =?utf-8?B?aXR5SVRybkg2Z0lqZHhxTTVpSWZFYWc5Ly9mWFQ0ZGlPbkJFTUdBbVZKN3FJ?=
 =?utf-8?B?bHF1SENLakZhVnhrTHQvanc1eVNzZ1d3ZTMyVlJ6Tnhhb2djVjBvekpkT0p0?=
 =?utf-8?B?aEM2UWJqMllFQ3ErZldyVUkzeTlSSUpjd1lNTThMYVBKb2VBaTNxOVM1U2FU?=
 =?utf-8?B?Z3g4eEpOYWJCVUNQQlVHVkpMSzlJRTZFYWpBbCs2VjZqT2ZWUzMxQzIvS0hV?=
 =?utf-8?B?bGNRNFBQdkhkTkpjc0lISVc0Q0owLzVYdldEUmNwNmtUM3p6amFXR2c5OWp6?=
 =?utf-8?B?bi82VlQrL3BHc2xiWjZpTjQ3MEw4ZzZFNm5GZldKSjlHZktMZEdSVjQ1NVlF?=
 =?utf-8?B?MVRFb2h3ckV3OVNGenR2N1FVcXRvcURuQWt3Y1k1eEQ2WGc9PQ==?=
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)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?d0M4cnRYU1dlNlhUOG9uNVQ0Z2NMMzlEMnFSMGVZcWdIV0E5ZzhXK0FVWE5O?=
 =?utf-8?B?OThGUTNNTUd3Q0k3clozcFdjbXlaVWd1ZGI3YXZ4WXlKaGEvWmlkcnd5eGFt?=
 =?utf-8?B?YkFobTU2eXVqNVZHVXBCem1tMTVneWVPKzJUbUE4UHpCN0RSa1VadmtNbzky?=
 =?utf-8?B?My9jUktiRWxoY05wMGFUV1JBYjd2aWVQOFY4RDhnRHpCZ0N1bVhFN1hXZjFh?=
 =?utf-8?B?bi9WUmxETEVXL0QwZDhqRmVHbnVuSlBFM0daL2oxU1JvdHI1Z3JOMEVqR2V3?=
 =?utf-8?B?cVFEUnk5K2NtMHF2ak56NmNZSVYrTy9HaGRPb2o0SWRBOFU3UnNjd3lhTmtw?=
 =?utf-8?B?T21IVXQxSEZUSmZteERLdkpuN0RTSnAybTk3RXRZS0xlTkkrbHJ2SWFBUGo4?=
 =?utf-8?B?QVVhUWtqK1pOeURrMlpOdVdBRVB3cFhOUnpOVFYzWTdSdHZZRkhFS1VjSEpI?=
 =?utf-8?B?YWlxTDgzQktuSDI5aTZoVjZPOXlVeU8weE5UbHg0VThwWnQ5cGJlZloyT0dP?=
 =?utf-8?B?ZTJPaGtNNFhiOWgrbFRtUld2ZEhPMGg0UnNtbWU4ZTdMc2VTUkdFcmRuZm5h?=
 =?utf-8?B?ekZpb0ZXb0hKL0lrelA4RHJ2OXpHazlEcjl3eHNoc1lSWi9GSVNHVkFKUFM5?=
 =?utf-8?B?ZTFkRUNFWlV6RmdiSUNuZ0NlcEJYMWw4UVIwTlQzZXJ3czIyNTZxcnRPNzhn?=
 =?utf-8?B?TXZkVmJleUg0NkNld1hkVjBQU3RwdFI3Q1BwMUdZVzUwTWZJekxNL1ZVcG5J?=
 =?utf-8?B?dUdQVHJZZDBnUi91M04vbUpudDlGUEg1WlJZaTlOd0tOeTNnM0pOWk1KME9D?=
 =?utf-8?B?eWpSLy9YYzB1UnJxSXR3SE5VRml1LytmM3V0Q1g0WHZLeGJuNm5tOG9xZE5q?=
 =?utf-8?B?UnNzOU9Od0hXdFlHM2FTUWRtYzVlVDZ1cE9hN2x5TGc3aEU1eTlyWkwydXdl?=
 =?utf-8?B?Zm9ROTg3QVcwYk5ZL3RnUEl3UnBybFQzbkpjNU5JdkhWWWtxSkhZTjY5M0w3?=
 =?utf-8?B?WGlaVHpPbThpTWF5ZC9ZTEVzaHNxbEZVcmlMMVdkcDRMTUpYZHVCTzBsRXFK?=
 =?utf-8?B?ZE44N1AvWVptN3VjN3pGcXNJMmZ5Z0lIY3JKdUdwVHIxUTZla2lHdkNKOTRU?=
 =?utf-8?B?ZXFFUlNiWjVibWFGN1BXRm9WVnErOEo2YnNmK0VaZ2x6SGptaXFZU29DYmJG?=
 =?utf-8?B?dWJ6bDAyZlFVczg3eTlJRXZ0SjdMVEFLWmNhR1pVWmxlRkhYL0dHZmUwOWRy?=
 =?utf-8?B?dnEzajgwNHFvc09ya293ZWJYSVhMTlozMTBnY2VmdkhuS3VvVU1ZWHc0WWNY?=
 =?utf-8?B?UDR3STBNcXdHU2srTWtGVFovRFZFSnNLampzalVmR29QZlpzVGpYMng0S3N2?=
 =?utf-8?B?TjVnZ2FtY296Q096eEVNc3RudklwU0VqdnowRkhBQU1CSm1acHBUK2p1L1Jk?=
 =?utf-8?B?WWs5bS9LTUNoeEcwdDl5S1dPOTlDeDIzZnBXazUzaEowa296dWcyUmJOK0NY?=
 =?utf-8?B?dEZuVVhvKzkwanpBVnk2YlM0R0lEZkV6QTJFbVB0a1c2Zk44dXlKNktaRWdt?=
 =?utf-8?B?dkZMaVBjOThXSGxzMFlJaDVqQTVJUlBPS1BIbG9JM0VxVkpNTzB2bGFYUkdv?=
 =?utf-8?B?Rnh1Qk12czFxMlJvaWxHL2RUY1JJUXQ3ZzhQTU1nZTM1cTRZTzhsOXFFQkdG?=
 =?utf-8?B?TXlXbkhjSDlYaEVxRC94eWRWZUhCbUFFWlFDQ0xxSzNYYjA4YkxFQXA0bEdE?=
 =?utf-8?B?c21aOURuWnJHY0t6WkdrZkEzcC9JdCtzZ0xNNmxSRXhyOFNtdCtaU0RKTnYy?=
 =?utf-8?B?VTNuM1NibTc2ZzJJWnNqNTMvQ3k3N3ZnWUFRSHFUTmRsS0NKU2FjdmZtQUdP?=
 =?utf-8?B?UEhwMDZFUkRTZEpUd28wWlFNZFhuK2FmNWgwaXoxODBxcXdiMEk1dW05OHdY?=
 =?utf-8?B?bk1wZURuNnlRYTEvbStkNjgvVVJiR3J2RGhpdFN0OVpKbzhQOGgvUGJSOHFK?=
 =?utf-8?B?a2NsZjBMUjFjOWdYdWlIN2Z2UVlUNWEzTEtGUkg5M2hwQU8vRXd4cEdsZU5G?=
 =?utf-8?B?bnRJNnFpd3VlNVFiU1V6R0szeVFuNlZPZ09hcjNmMnVBUTdvQjVHclB3NWMv?=
 =?utf-8?Q?bN1c=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <63946469FAB758479AA58B345EB5D68D@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: c5f3ddad-db52-4403-0233-08dcad3fa6b2
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jul 2024 06:53:27.0373
 (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: UCG6EgYLhMwg//+wiNCqeHQqCMXRjMk4xwWvobDk7AeG1rtPoKAGQ95WcFuLOLlJzix/lREryh4UrD9yTJbuOw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8281

T24gMjAyNC83LzIzIDA2OjEwLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQo+IE9uIE1vbiwg
OCBKdWwgMjAyNCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBTb21lIHR5cGUgb2YgZG9tYWlucyBk
b24ndCBoYXZlIFBJUlFzLCBsaWtlIFBWSCwgaXQgZG9lc24ndCBkbw0KPj4gUEhZU0RFVk9QX21h
cF9waXJxIGZvciBlYWNoIGdzaS4gV2hlbiBwYXNzdGhyb3VnaCBhIGRldmljZQ0KPj4gdG8gZ3Vl
c3QgYmFzZSBvbiBQVkggZG9tMCwgY2FsbHN0YWNrDQo+PiBwY2lfYWRkX2RtX2RvbmUtPlhFTl9E
T01DVExfaXJxX3Blcm1pc3Npb24gd2lsbCBmYWlsIGF0IGZ1bmN0aW9uDQo+PiBkb21haW5fcGly
cV90b19pcnEsIGJlY2F1c2UgUFZIIGhhcyBubyBtYXBwaW5nIG9mIGdzaSwgcGlycSBhbmQNCj4+
IGlycSBvbiBYZW4gc2lkZS4NCj4+IFdoYXQncyBtb3JlLCBjdXJyZW50IGh5cGVyY2FsbCBYRU5f
RE9NQ1RMX2lycV9wZXJtaXNzaW9uIHJlcXVpcmVzDQo+PiBwYXNzaW5nIGluIHBpcnEgdG8gc2V0
IHRoZSBhY2Nlc3Mgb2YgaXJxLCBpdCBpcyBub3Qgc3VpdGFibGUgZm9yDQo+PiBkb20wIHRoYXQg
ZG9lc24ndCBoYXZlIFBJUlFzLg0KPj4NCj4+IFNvLCBhZGQgYSBuZXcgaHlwZXJjYWxsIFhFTl9E
T01DVExfZ3NpX3Blcm1pc3Npb24gdG8gZ3JhbnQvZGVueQ0KPj4gdGhlIHBlcm1pc3Npb24gb2Yg
aXJxKHRyYW5zbGF0ZSBmcm9tIHg4NiBnc2kpIHRvIGR1bVUgd2hlbiBkb20wDQo+PiBoYXMgbm8g
UElSUXMuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFt
ZC5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPg0K
Pj4gU2lnbmVkLW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+PiAt
LS0NCj4+IENDOiBEYW5pZWwgUCAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
Pg0KPj4gUmVtYWluaW5nIGNvbW1lbnQgQERhbmllbCBQIC4gU21pdGg6DQo+PiArICAgICAgICBy
ZXQgPSAtRVBFUk07DQo+PiArICAgICAgICBpZiAoICFpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJy
ZCwgaXJxKSB8fA0KPj4gKyAgICAgICAgICAgICB4c21faXJxX3Blcm1pc3Npb24oWFNNX0hPT0ss
IGQsIGlycSwgYWNjZXNzX2ZsYWcpICkNCj4+ICsgICAgICAgICAgICBnb3RvIGdzaV9wZXJtaXNz
aW9uX291dDsNCj4+IElzIGl0IG9rYXkgdG8gaXNzdWUgdGhlIFhTTSBjaGVjayB1c2luZyB0aGUg
dHJhbnNsYXRlZCB2YWx1ZSwgDQo+PiBub3QgdGhlIG9uZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHBh
c3NlZCBpbnRvIHRoZSBoeXBlcmNhbGw/DQo+PiAtLS0NCj4+ICB4ZW4vYXJjaC94ODYvZG9tY3Rs
LmMgICAgICAgICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAg
eGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lvX2FwaWMuaCB8ICAyICsrDQo+PiAgeGVuL2FyY2gv
eDg2L2lvX2FwaWMuYyAgICAgICAgICAgICB8IDE3ICsrKysrKysrKysrKysrKysNCj4+ICB4ZW4v
YXJjaC94ODYvbXBwYXJzZS5jICAgICAgICAgICAgIHwgIDUgKystLS0NCj4+ICB4ZW4vaW5jbHVk
ZS9wdWJsaWMvZG9tY3RsLmggICAgICAgIHwgIDkgKysrKysrKysrDQo+PiAgeGVuL3hzbS9mbGFz
ay9ob29rcy5jICAgICAgICAgICAgICB8ICAxICsNCj4+ICA2IGZpbGVzIGNoYW5nZWQsIDYzIGlu
c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9kb21jdGwuYyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYw0KPj4gaW5kZXggOTE5MGUxMWZh
YWEzLi40ZTllNGM0Y2ZlZDMgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMN
Cj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYw0KPj4gQEAgLTM2LDYgKzM2LDcgQEANCj4+
ICAjaW5jbHVkZSA8YXNtL3hzdGF0ZS5oPg0KPj4gICNpbmNsdWRlIDxhc20vcHNyLmg+DQo+PiAg
I2luY2x1ZGUgPGFzbS9jcHUtcG9saWN5Lmg+DQo+PiArI2luY2x1ZGUgPGFzbS9pb19hcGljLmg+
DQo+PiAgDQo+PiAgc3RhdGljIGludCB1cGRhdGVfZG9tYWluX2NwdV9wb2xpY3koc3RydWN0IGRv
bWFpbiAqZCwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fZG9t
Y3RsX2NwdV9wb2xpY3lfdCAqeGRwYykNCj4+IEBAIC0yMzcsNiArMjM4LDM3IEBAIGxvbmcgYXJj
aF9kb19kb21jdGwoDQo+PiAgICAgICAgICBicmVhazsNCj4+ICAgICAgfQ0KPj4gIA0KPj4gKyAg
ICBjYXNlIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb246DQo+PiArICAgIHsNCj4+ICsgICAgICAg
IGludCBpcnE7DQo+PiArICAgICAgICB1bnNpZ25lZCBpbnQgZ3NpID0gZG9tY3RsLT51LmdzaV9w
ZXJtaXNzaW9uLmdzaTsNCj4+ICsgICAgICAgIHVpbnQ4X3QgYWNjZXNzX2ZsYWcgPSBkb21jdGwt
PnUuZ3NpX3Blcm1pc3Npb24uYWNjZXNzX2ZsYWc7DQo+PiArDQo+PiArICAgICAgICAvKiBDaGVj
ayBhbGwgYml0cyBhbmQgcGFkcyBhcmUgemVybyBleGNlcHQgbG93ZXN0IGJpdCAqLw0KPj4gKyAg
ICAgICAgcmV0ID0gLUVJTlZBTDsNCj4+ICsgICAgICAgIGlmICggYWNjZXNzX2ZsYWcgJiAoIH5Y
RU5fRE9NQ1RMX0dTSV9QRVJNSVNTSU9OX01BU0sgKSApDQo+PiArICAgICAgICAgICAgZ290byBn
c2lfcGVybWlzc2lvbl9vdXQ7DQo+PiArICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJ
WkUoZG9tY3RsLT51LmdzaV9wZXJtaXNzaW9uLnBhZCk7ICsraSApDQo+PiArICAgICAgICAgICAg
aWYgKCBkb21jdGwtPnUuZ3NpX3Blcm1pc3Npb24ucGFkW2ldICkNCj4+ICsgICAgICAgICAgICAg
ICAgZ290byBnc2lfcGVybWlzc2lvbl9vdXQ7DQo+PiArDQo+PiArICAgICAgICBpZiAoIGdzaSA+
IGhpZ2hlc3RfZ3NpKCkgfHwgKGlycSA9IGdzaV8yX2lycShnc2kpKSA8PSAwICkNCj4gDQo+IGdz
aSBpcyB1bnNpZ25lZCBpbnQgYnV0IGl0IGlzIHBhc3NlZCB0byBnc2lfMl9pcnEgd2hpY2ggdGFr
ZXMgYW4gaW50IGFzDQo+IHBhcmFtZXRlci4gSWYgZ3NpID49IElOVDMyX01BWCB3ZSBoYXZlIGEg
cHJvYmxlbS4gSSB0aGluayB3ZSBzaG91bGQNCj4gZXhwbGljaXRseSBjaGVjayBmb3IgdGhlIHBv
c3NpYmxlIG92ZXJmbG93IGFuZCByZXR1cm4gZXJyb3IgaW4gdGhhdA0KPiBjYXNlLg0KQnV0IGhl
cmUgaGFzIGNoZWNrZWQgImdzaSA+IGhpZ2hlc3RfZ3NpKCkiLCBjYW4gaGlnaGVzaV9nc2koKSBy
ZXR1cm4gYSBnc2kgPj0gSU5UMzJfTUFYPw0KDQo+IA0KPiANCj4+ICsgICAgICAgICAgICBnb3Rv
IGdzaV9wZXJtaXNzaW9uX291dDsNCj4+ICsNCj4+ICsgICAgICAgIHJldCA9IC1FUEVSTTsNCj4+
ICsgICAgICAgIGlmICggIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBpcnEpIHx8DQo+PiAr
ICAgICAgICAgICAgIHhzbV9pcnFfcGVybWlzc2lvbihYU01fSE9PSywgZCwgaXJxLCBhY2Nlc3Nf
ZmxhZykgKQ0KPj4gKyAgICAgICAgICAgIGdvdG8gZ3NpX3Blcm1pc3Npb25fb3V0Ow0KPj4gKw0K
Pj4gKyAgICAgICAgaWYgKCBhY2Nlc3NfZmxhZyApDQo+PiArICAgICAgICAgICAgcmV0ID0gaXJx
X3Blcm1pdF9hY2Nlc3MoZCwgaXJxKTsNCj4+ICsgICAgICAgIGVsc2UNCj4+ICsgICAgICAgICAg
ICByZXQgPSBpcnFfZGVueV9hY2Nlc3MoZCwgaXJxKTsNCj4+ICsNCj4+ICsgICAgZ3NpX3Blcm1p
c3Npb25fb3V0Og0KPj4gKyAgICAgICAgYnJlYWs7DQo+PiArICAgIH0NCj4+ICsNCj4+ICAgICAg
Y2FzZSBYRU5fRE9NQ1RMX2dldHBhZ2VmcmFtZWluZm8zOg0KPj4gICAgICB7DQo+PiAgICAgICAg
ICB1bnNpZ25lZCBpbnQgbnVtID0gZG9tY3RsLT51LmdldHBhZ2VmcmFtZWluZm8zLm51bTsNCj4+
IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaW9fYXBpYy5oIGIveGVuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2lvX2FwaWMuaA0KPj4gaW5kZXggNzgyNjhlYThmNjY2Li43ZTg2
ZDgzMzc3NTggMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaW9fYXBp
Yy5oDQo+PiArKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaW9fYXBpYy5oDQo+PiBAQCAt
MjEzLDUgKzIxMyw3IEBAIHVuc2lnbmVkIGhpZ2hlc3RfZ3NpKHZvaWQpOw0KPj4gIA0KPj4gIGlu
dCBpb2FwaWNfZ3Vlc3RfcmVhZCggdW5zaWduZWQgbG9uZyBwaHlzYmFzZSwgdW5zaWduZWQgaW50
IHJlZywgdTMyICpwdmFsKTsNCj4+ICBpbnQgaW9hcGljX2d1ZXN0X3dyaXRlKHVuc2lnbmVkIGxv
bmcgcGh5c2Jhc2UsIHVuc2lnbmVkIGludCByZWcsIHUzMiB2YWwpOw0KPj4gK2ludCBtcF9maW5k
X2lvYXBpYyhpbnQgZ3NpKTsNCj4+ICtpbnQgZ3NpXzJfaXJxKGludCBnc2kpOw0KPj4gIA0KPj4g
ICNlbmRpZg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pb19hcGljLmMgYi94ZW4vYXJj
aC94ODYvaW9fYXBpYy5jDQo+PiBpbmRleCBkMmEzMTNjNGFjNzIuLjU5NjhjODA1NTY3MSAxMDA2
NDQNCj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9pb19hcGljLmMNCj4+ICsrKyBiL3hlbi9hcmNoL3g4
Ni9pb19hcGljLmMNCj4+IEBAIC05NTUsNiArOTU1LDIzIEBAIHN0YXRpYyBpbnQgcGluXzJfaXJx
KGludCBpZHgsIGludCBhcGljLCBpbnQgcGluKQ0KPj4gICAgICByZXR1cm4gaXJxOw0KPj4gIH0N
Cj4+ICANCj4+ICtpbnQgZ3NpXzJfaXJxKGludCBnc2kpDQo+PiArew0KPj4gKyAgICBpbnQgaW9h
cGljLCBwaW4sIGlycTsNCj4+ICsNCj4+ICsgICAgaW9hcGljID0gbXBfZmluZF9pb2FwaWMoZ3Np
KTsNCj4+ICsgICAgaWYgKCBpb2FwaWMgPCAwICkNCj4+ICsgICAgICAgIHJldHVybiAtRUlOVkFM
Ow0KPj4gKw0KPj4gKyAgICBwaW4gPSBnc2kgLSBpb19hcGljX2dzaV9iYXNlKGlvYXBpYyk7DQo+
PiArDQo+PiArICAgIGlycSA9IGFwaWNfcGluXzJfZ3NpX2lycShpb2FwaWMsIHBpbik7DQo+PiAr
ICAgIGlmICggaXJxIDw9IDAgKQ0KPj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArDQo+
PiArICAgIHJldHVybiBpcnE7DQo+PiArfQ0KPj4gKw0KPj4gIHN0YXRpYyBpbmxpbmUgaW50IElP
X0FQSUNfaXJxX3RyaWdnZXIoaW50IGlycSkNCj4+ICB7DQo+PiAgICAgIGludCBhcGljLCBpZHgs
IHBpbjsNCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbXBwYXJzZS5jIGIveGVuL2FyY2gv
eDg2L21wcGFyc2UuYw0KPj4gaW5kZXggZDhjY2FiMjQ0OWM2Li43Nzg2YTMzMzc3NjAgMTAwNjQ0
DQo+PiAtLS0gYS94ZW4vYXJjaC94ODYvbXBwYXJzZS5jDQo+PiArKysgYi94ZW4vYXJjaC94ODYv
bXBwYXJzZS5jDQo+PiBAQCAtODQxLDggKzg0MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgbXBfaW9hcGlj
X3JvdXRpbmcgew0KPj4gIH0gbXBfaW9hcGljX3JvdXRpbmdbTUFYX0lPX0FQSUNTXTsNCj4+ICAN
Cj4+ICANCj4+IC1zdGF0aWMgaW50IG1wX2ZpbmRfaW9hcGljICgNCj4+IC0JaW50CQkJZ3NpKQ0K
Pj4gK2ludCBtcF9maW5kX2lvYXBpYyhpbnQgZ3NpKQ0KPj4gIHsNCj4+ICAJdW5zaWduZWQgaW50
CQlpOw0KPj4gIA0KPj4gQEAgLTkxNCw3ICs5MTMsNyBAQCB2b2lkIF9faW5pdCBtcF9yZWdpc3Rl
cl9pb2FwaWMgKA0KPj4gIAlyZXR1cm47DQo+PiAgfQ0KPj4gIA0KPj4gLXVuc2lnbmVkIF9faW5p
dCBoaWdoZXN0X2dzaSh2b2lkKQ0KPj4gK3Vuc2lnbmVkIGhpZ2hlc3RfZ3NpKHZvaWQpDQo+PiAg
ew0KPj4gIAl1bnNpZ25lZCB4LCByZXMgPSAwOw0KPj4gIAlmb3IgKHggPSAwOyB4IDwgbnJfaW9h
cGljczsgeCsrKQ0KPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaCBi
L3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaA0KPj4gaW5kZXggMmE0OWZlNDZjZTI1Li44Nzdl
MzVhYjEzNzYgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgNCj4+
ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaA0KPj4gQEAgLTQ2NCw2ICs0NjQsMTMg
QEAgc3RydWN0IHhlbl9kb21jdGxfaXJxX3Blcm1pc3Npb24gew0KPj4gICAgICB1aW50OF90IHBh
ZFszXTsNCj4+ICB9Ow0KPj4gIA0KPj4gKy8qIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb24gKi8N
Cj4+ICtzdHJ1Y3QgeGVuX2RvbWN0bF9nc2lfcGVybWlzc2lvbiB7DQo+PiArICAgIHVpbnQzMl90
IGdzaTsNCj4+ICsjZGVmaW5lIFhFTl9ET01DVExfR1NJX1BFUk1JU1NJT05fTUFTSyAxDQo+PiAr
ICAgIHVpbnQ4X3QgYWNjZXNzX2ZsYWc7ICAgIC8qIGZsYWcgdG8gc3BlY2lmeSBlbmFibGUvZGlz
YWJsZSBvZiB4ODYgZ3NpIGFjY2VzcyAqLw0KPj4gKyAgICB1aW50OF90IHBhZFszXTsNCj4+ICt9
Ow0KPj4gIA0KPj4gIC8qIFhFTl9ET01DVExfaW9tZW1fcGVybWlzc2lvbiAqLw0KPj4gIHN0cnVj
dCB4ZW5fZG9tY3RsX2lvbWVtX3Blcm1pc3Npb24gew0KPj4gQEAgLTEzMDYsNiArMTMxMyw3IEBA
IHN0cnVjdCB4ZW5fZG9tY3RsIHsNCj4+ICAjZGVmaW5lIFhFTl9ET01DVExfZ2V0X3BhZ2luZ19t
ZW1wb29sX3NpemUgICAgICAgODUNCj4+ICAjZGVmaW5lIFhFTl9ET01DVExfc2V0X3BhZ2luZ19t
ZW1wb29sX3NpemUgICAgICAgODYNCj4+ICAjZGVmaW5lIFhFTl9ET01DVExfZHRfb3ZlcmxheSAg
ICAgICAgICAgICAgICAgICAgODcNCj4+ICsjZGVmaW5lIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Np
b24gICAgICAgICAgICAgICAgODgNCj4+ICAjZGVmaW5lIFhFTl9ET01DVExfZ2Ric3hfZ3Vlc3Rt
ZW1pbyAgICAgICAgICAgIDEwMDANCj4+ICAjZGVmaW5lIFhFTl9ET01DVExfZ2Ric3hfcGF1c2V2
Y3B1ICAgICAgICAgICAgIDEwMDENCj4+ICAjZGVmaW5lIFhFTl9ET01DVExfZ2Ric3hfdW5wYXVz
ZXZjcHUgICAgICAgICAgIDEwMDINCj4+IEBAIC0xMzI4LDYgKzEzMzYsNyBAQCBzdHJ1Y3QgeGVu
X2RvbWN0bCB7DQo+PiAgICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zZXRkb21haW5oYW5kbGUg
ICBzZXRkb21haW5oYW5kbGU7DQo+PiAgICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zZXRkZWJ1
Z2dpbmcgICAgICBzZXRkZWJ1Z2dpbmc7DQo+PiAgICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9p
cnFfcGVybWlzc2lvbiAgICBpcnFfcGVybWlzc2lvbjsNCj4+ICsgICAgICAgIHN0cnVjdCB4ZW5f
ZG9tY3RsX2dzaV9wZXJtaXNzaW9uICAgIGdzaV9wZXJtaXNzaW9uOw0KPj4gICAgICAgICAgc3Ry
dWN0IHhlbl9kb21jdGxfaW9tZW1fcGVybWlzc2lvbiAgaW9tZW1fcGVybWlzc2lvbjsNCj4+ICAg
ICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2lvcG9ydF9wZXJtaXNzaW9uIGlvcG9ydF9wZXJtaXNz
aW9uOw0KPj4gICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfaHlwZXJjYWxsX2luaXQgICAgaHlw
ZXJjYWxsX2luaXQ7DQo+PiBkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVu
L3hzbS9mbGFzay9ob29rcy5jDQo+PiBpbmRleCA1ZTg4YzcxYjhlMjIuLmE1YjEzNGM5MTEwMSAx
MDA2NDQNCj4+IC0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYw0KPj4gKysrIGIveGVuL3hzbS9m
bGFzay9ob29rcy5jDQo+PiBAQCAtNjg1LDYgKzY4NSw3IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sg
Zmxhc2tfZG9tY3RsKHN0cnVjdCBkb21haW4gKmQsIGludCBjbWQpDQo+PiAgICAgIGNhc2UgWEVO
X0RPTUNUTF9zaGFkb3dfb3A6DQo+PiAgICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfcGVybWlz
c2lvbjoNCj4+ICAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nOg0KPj4gKyAgICBj
YXNlIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb246DQo+PiAgI2VuZGlmDQo+PiAgI2lmZGVmIENP
TkZJR19IQVNfUEFTU1RIUk9VR0gNCj4+ICAgICAgLyoNCj4+IC0tIA0KPj4gMi4zNC4xDQo+Pg0K
DQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 06:55:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 06:55:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765276.1175862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXErg-0000nQ-UB; Fri, 26 Jul 2024 06:55:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765276.1175862; Fri, 26 Jul 2024 06:55:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXErg-0000nJ-R9; Fri, 26 Jul 2024 06:55:44 +0000
Received: by outflank-mailman (input) for mailman id 765276;
 Fri, 26 Jul 2024 06:55:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8CH3=O2=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sXErf-0000n9-Mx
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 06:55:43 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20614.outbound.protection.outlook.com
 [2a01:111:f403:2414::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 128f8b99-4b1c-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 08:55:42 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CH3PR12MB8281.namprd12.prod.outlook.com (2603:10b6:610:128::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.29; Fri, 26 Jul
 2024 06:55:39 +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.7784.020; Fri, 26 Jul 2024
 06:55: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: 128f8b99-4b1c-11ef-bbff-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Mx0IeizKAABzbTN1paQ08nRuYhbcj1KAUiR5hD8Nkd9NB2XzesWWSSYO9+arJ69XYOhYyKDouK4HoI4DLjkTDaH/8LbmoF+Zv9RrcITIErvtMx8P2j7UpOl8yvxV6tOYWgvAp1gLiqeoEKODgkDM9vM1Wlk+M/DACU3LKdi2G1akSpGa2/T8XDZEQ9vhRTg1MlGQIvlD3nsp4536ZqO5dy2A/7wVVmcLUl5+4JFCSUsfSLWqpoDiunhzlV2jVtk9igfmLBuD7qAtC2CMTxZ7iiTwLxUKpQKPCl9+pGVjSS4CE3kPCd79Kb1Tf59VpY4Ebr7Q9iYaU6x0x7K+OQtOgQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R3okgs+vnu5UpMrw79mfnD0nXqMC6u1i1DU6eXaeei8=;
 b=vPshsjBhRWenLe00zOvN46tOxV7Alq/fSneirTN26okkaI/xFirJJXPpOG8HD54q934fyX5Py8lwK0f4mxhv/xI9Lu3GoWlmqMKzBHq/sJa/Bh21MWYhkBkGoxQduumzlkuuMd6FMPMXF0NQuefvdj101TO/Z+yxcAMZWVv8fFtaJU1C/mwDvhMuuDn5qi1SczVJQiUSBVALb74HduI2Dv5FJEpGvIFRLRt44NjznBOsYsSi99Mvr6hD4SE/3b7hIsa3ItO1X97RDFb0xnB7A+BXpLlJpNQWMErEzqONfR+J62Z0Kuii+VnGsscWEo8jNjVlaAMmQIYQUbkfhKi7xA==
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=R3okgs+vnu5UpMrw79mfnD0nXqMC6u1i1DU6eXaeei8=;
 b=yFKgav9bZqwxWqznjaTP6z2rVkSWAzDwjjuaO8zEZb9xINU8IMJTjdSTIkwHOse/d2I+MPqP9tLVhD3ICkVsCnS1eg/rkZ4/iUqgBd8ffV5Bi6iJyAinhuPWPgyYWP3q4/IVNSGjXxojylqYSn1GUkLJdBE7tFVRsihfaWUBcps=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: "Daniel P . Smith" <dpsmith@apertussolutions.com>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, "Hildebrand,
 Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 4/7] x86/domctl: Add hypercall to set the access
 of x86 gsi
Thread-Topic: [XEN PATCH v12 4/7] x86/domctl: Add hypercall to set the access
 of x86 gsi
Thread-Index: AQHa0SvYL4tONjoIyEuzfSK6fk2TK7HuX7kAgBrVMQA=
Date: Fri, 26 Jul 2024 06:55:38 +0000
Message-ID:
 <BL1PR12MB58495A106E02C8225C23405DE7B42@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-5-Jiqian.Chen@amd.com>
 <e350fbb3-edfb-407d-aa69-ae995889b262@suse.com>
In-Reply-To: <e350fbb3-edfb-407d-aa69-ae995889b262@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.7784.020)
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_|CH3PR12MB8281:EE_
x-ms-office365-filtering-correlation-id: 68c23a91-1c4b-458a-f02b-08dcad3ff532
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?QUVJRWMwak5vbjdwR0p1d2p0bXQ1RTdFNGl0a2hveHl1Yk5pS1FoRXUzRVJN?=
 =?utf-8?B?L2xkRDhiSlRIWlVidXFwMmp0NzZMcE9KVlBYV21HTTIxRWsrbXJJYkc2ZU85?=
 =?utf-8?B?dWQ5Z2gzLy9DeGZWZjFXZjlHaXNVWWc0VVAzWmI0bFR5aGN0NWlVcTV5dU1B?=
 =?utf-8?B?QmhlYm5USS9hbzBVd0hkaHpPcEhuOGNWYzFjd2I2WmpLM0ptWFo0cSthN1lt?=
 =?utf-8?B?VEJvM1pQb1lPUU9zV3dBT1FKRnRibHE5T0JEbTNSdExNMlVHeEI4WkdxTXpX?=
 =?utf-8?B?TmRJVXg1bGt2S2tyRkdIOVo1M2xJYVdqUko0dVI4UFZlWGNkMHJ0VUtMeit1?=
 =?utf-8?B?cGVUcVllMGwzanNVd01oQmxYajVwZVppTCttSS8zcnBqTWpWNFNCd0lUT2VY?=
 =?utf-8?B?QkJ0aGlqY3I1TDZtS2kyNGdJQmdwdWhTU2ErV2pIN0llTFRaYXlLSTlwcVVv?=
 =?utf-8?B?ck9BV0dDQXN4OE8wOC9UYVBOVzJuN1dzZ1NBa3ZQd04yWTZkOTlwbEZldjlp?=
 =?utf-8?B?Rk9qQm9LQ3pJWU1aTVM3YlNNMjlVQnVZMzlVZ3c1NGhiSFhaY0tBU21nTDdh?=
 =?utf-8?B?c2Ftd2VmSktBYTFFN2pxWjV6SXVzL1MzUHF5UGZWRzZmNkJhQSt2MzV6eUVS?=
 =?utf-8?B?amdIUENSaWdCUmJwL3BTL21RK3IvNTVaZ0tDbnNPT0o4MWRxSXVHbmRWS3cw?=
 =?utf-8?B?MFdNWWVURGJRcTNCMzRPR2p5WSsySTRvemtzTittR2p2OEsyU1gyREZrT015?=
 =?utf-8?B?T3ZPNmxXMHVSTWFXYmY4eTBVL0tDUnlyUCtLUG5rWGQ4UE0wVUxEa3o0K241?=
 =?utf-8?B?a3lDMVpWbGV6ODYxUVIwMC9PMU01cFNlU0Nvcmw3c2U2Ym0yemlkLzBoTWxC?=
 =?utf-8?B?Uy9TSmJka3JGTEpRa2dOc2Foc29JbHBFb05kUDJkeWdqRmcreitpZ3JUNmdE?=
 =?utf-8?B?QjdWMTNHQU1qeHNYbDl1Rkt5VlpJODN0L0RVMW94VnNlYzZRbzJ0aXhnTkQ3?=
 =?utf-8?B?aTF2QWpxN1FxZFRaNXhreUZKd1lneE1lRjJaQkc1dUs0YVhGU0V3WElKbytz?=
 =?utf-8?B?WnZPeFRiYUg3Mis3K2p3Y1ppZk1LOUcra09saGorMVpnb1pmRG5mY3pyL0xy?=
 =?utf-8?B?SUpnNjU3eXNwOVdlM2liZFNVdktmclVqNlBOTTBYbnpqVUlUVmtTNXJFMEFy?=
 =?utf-8?B?ZUkvOXpUSERQekQ5ZVlZdThEVTRRZmdQODdTSUlHRUZTUG9OZ0RwOHZMYm1l?=
 =?utf-8?B?OEFiUTZ4dC9VbTFwblJwNG5VTHJaMVJwYW1MZGUwZERVS1llUkYxQThkUVZx?=
 =?utf-8?B?Q2gyL0F5RlBhNktFdmN5V1pPTmlTWEdQSW1GanRhOUlTVDBsN1VlenFzbEFZ?=
 =?utf-8?B?NHJ4U2RyVHBtQmJSL0NCUWIrRUhqVEpjcWRRS09XcDl4dURTNG9DTFlIZXdj?=
 =?utf-8?B?Uk5JTDQ5Q1d0OTVZWUttMHM4S1U2QUFuOGEzUldtSXNvT2crYlJpZGFPaGhR?=
 =?utf-8?B?amJKMXJHOWhLZ3ZyaUlpVytiRjN5TVlrcTUrRGRkUEIxeVBESlRaekI3T0VD?=
 =?utf-8?B?ckVqTDhDeW01YnpQdEpqY0Z6YUR0cWV6ZGxTSk12VHBxSTgwbGxBcXVOUFNB?=
 =?utf-8?B?TThJdS9yUGlTRUU5djFWU29IWXNKc2Npdm9IVFFTNGF5THFiUzdIdGxLNVJn?=
 =?utf-8?B?OFd1MDZxNldzL09VaEtDZ1Q4Rk5WU3IydnAvRDdDS29VZ0lXWWsvNExKN0l0?=
 =?utf-8?B?REM2Z2dvcy8vMjluTFZYWkJDTkkrcEVaRm1Vc0MyMFZQTjFIUnlmVDcvQ21t?=
 =?utf-8?B?VzFBb05SeHR0bjJRZmQrVUp2V2tVUTJTZWZHbWxNNGF0dEp2cEZMNHdTdjNE?=
 =?utf-8?B?V2Jlb3FvMnRWdzQyZmNMVzFmam1ndkwvd3IrS1lya1Y1cUE9PQ==?=
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)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZXZ4dTNXdFhFRXpZTjZWRHJRTEViYi9HSnA4K1hROU5xbWhXVCt0a3NDdEps?=
 =?utf-8?B?cGJVV0drdFhYY1hja0NLb2diNzBZMlhwWFhKb3A1Rm9FYnN6aERkeUliZ2Ni?=
 =?utf-8?B?ODNSTFZiRktMNk9xVTMweDR2SXFEdy9jRlF1VTl6Z2tLMXVmVzNuM1BhQnhF?=
 =?utf-8?B?NHRrdDJzMllhRTBFTTVWaEZFa1YxZjBPTlorSTZyZ1ZwTWVsTWR1bmdBK3ZJ?=
 =?utf-8?B?eVhMaDk0VnJKekUrMDZjVFdSN3NjM3ZhcmxMUkQzKzRyWkNvN1lGMkc5ZGM4?=
 =?utf-8?B?dW5aQ0NHOW9qLzJTalZvYWR6OXZxN2UvWjErSUZYNGNlYjlZM2pSTHZQdDRU?=
 =?utf-8?B?VStOUUk4SUMvVkZRUzBNY1BNSmh3UnlGTHFjYUtEbkVHU1JvUWJFR2pnZk9F?=
 =?utf-8?B?WC9xakdHYnk0cWI4QkdQcGNLbGdXZzZyV3AwREhqTlZIWnZzVkwvb3BXRVJv?=
 =?utf-8?B?MVI4NDVDbE42OUdURjBkcTdyYUJoOXQzS3c4Y0lZWXYxMkxEcnlxL2prMXJh?=
 =?utf-8?B?cEpSVFJiTjlBbHlPKzRSM25hRTBJTU93eVVXbHBwdU4zc2lUckI2TVlaYUZy?=
 =?utf-8?B?RVBKaHVkVm5VWjNFYUtIT3k1a2htTE02YzNMcWtCN3g0ZWZHRkJ5RklrSmg0?=
 =?utf-8?B?MG5uWmdDMS93Z3dLdzNWVEZRaExEM1JKbWNiY240M2cwclo1UjRnakg2THY0?=
 =?utf-8?B?SHhRdE93aStjZUZMZTZFUHFaTE44Zlo2bStYamdVckpGa3c4bGtsNGtCVWtH?=
 =?utf-8?B?RUYrODMrVTJWdVlyQ2lCVktacFcvem82SkUvMGEzbVJuY1Y3aERZdHdsTjhi?=
 =?utf-8?B?RHh6WUxnSGVjRmN2M1NvWlpUeis0MmdlQWVjenZqUHBLTGRxdEdzOWpsMW1a?=
 =?utf-8?B?YjMxQkhNbnFhd1diTHZXQzdSSEdWUWpROXBjOTMxUnFpRVZ3TlhlWkdXT3pl?=
 =?utf-8?B?dzFvQUx6eTZLVVU5ZWJFWElJWW9pZVpHRkx3VWdSNUlkSnFnTTZsL1llZnBy?=
 =?utf-8?B?QWdEa2x2Wk9DWGhXRlowNDhFd1F6M2I2RUFVQm5NL24wY1RJelZraEFUdHBF?=
 =?utf-8?B?bDlUNWhVcFlpMHdRNFBDK2hyZWNoZkR0Vm5nY3V4aHhpK2tCdTdudDdBbHNv?=
 =?utf-8?B?R3ZJOGd5SE1FdVpyN0hDOFg2aCtYejVrRTF6dTVQZWoyaGZmU1JWTStFZ1Bs?=
 =?utf-8?B?c29uQWViR2ZNTkNCU3liWlJVYjBzc0JhUldYWmpVV2oyZXg5Q2kzSG9uVlZN?=
 =?utf-8?B?QUw4d09ZNzg4ZE51ay9NOU5ZaWFsUUhLbytZQWdZQzdIamZYM1QzSUdzSlhl?=
 =?utf-8?B?blZyVkZobjlmeHZSUUNmQ2pXaVR4bHl6bFBoSWVYQVJZclVLSW5VT3FOekg0?=
 =?utf-8?B?MG9kd0pkdHhhZzdmSUk1cS9LenhEM3pzSGt2NUxxWWcxMTJ0NCs3TFJLa3Mw?=
 =?utf-8?B?QUUybGlCRGt1ZGowT28vTC8vRng5aE9KditoSGZsZ25Cek1zWlFMM3Vxakhy?=
 =?utf-8?B?bzBuOGEwaUplbGdMUnoydEJpZVZQWWdOdVpCdmUwRWxmWitXQ0VwZUNENE5p?=
 =?utf-8?B?ZE11d3lQZW1uY2hRQW5mL0JwWUhVa1h4SDk3VmJhbEp1SHJaREFOdVFiTW1m?=
 =?utf-8?B?MnBWUlp5UGc0RVZFNWxmQ3JPY2tpSVZuSXhZaTVMZnYvQkJkMEw4YW12Kzlw?=
 =?utf-8?B?b1ZCa3RuZ0x0cEtVZEtGSlQ0MjF3RFJmTU1vOXNrSUpiQ0czaHJwM2JIL0pj?=
 =?utf-8?B?d08zV2FqaGNQK2xCNk55WVVFaUtlbEJYRHV0dDJjWG5UWmY5M2JmRFIzbGtp?=
 =?utf-8?B?eTk0R3hLVnpMVVRRWWhOd0w3UDloNUNQYmlTdTRzQmVaVjdmWXRxTWhSUHZL?=
 =?utf-8?B?d3JLcHpoM0hLYTNOUEg0aFE2RnZxSFRJTEVGcnhISFhWZVByS2M5SmJsMTFt?=
 =?utf-8?B?ZnFRR1BjdjNkNFBXOEV6V2xFc0RRdncrZmpIWXJhelV2M0QvQ3NsVjV4ZUVv?=
 =?utf-8?B?cHhlT24yOG8zUFVRV1VSMlczN1U3c2ZoL3R3YkZvQWlzUHAwMWtNcjkzQU5N?=
 =?utf-8?B?dDVzWW8vSURyeFRETnpWK0kvc29JK2tlcTViRTBHWEs5MHNnSWh5NC9lS29H?=
 =?utf-8?Q?iP1k=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <48BEAA5DFC0F1E4BAD833DED15E31C57@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: 68c23a91-1c4b-458a-f02b-08dcad3ff532
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jul 2024 06:55:38.7565
 (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: ipzCvDZ1eUwezliO4VYUdY00SGO4Cj1/CoWEhSs3J5lCXGF4W7nxTCZF3JBKVi4TQCtInaWbwJnHVdnU0NR7CQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8281

SGkgRGFuaWVsLA0KDQpPbiAyMDI0LzcvOSAyMTowOCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+IE9u
IDA4LjA3LjIwMjQgMTM6NDEsIEppcWlhbiBDaGVuIHdyb3RlOg0KPj4gU29tZSB0eXBlIG9mIGRv
bWFpbnMgZG9uJ3QgaGF2ZSBQSVJRcywgbGlrZSBQVkgsIGl0IGRvZXNuJ3QgZG8NCj4+IFBIWVNE
RVZPUF9tYXBfcGlycSBmb3IgZWFjaCBnc2kuIFdoZW4gcGFzc3Rocm91Z2ggYSBkZXZpY2UNCj4+
IHRvIGd1ZXN0IGJhc2Ugb24gUFZIIGRvbTAsIGNhbGxzdGFjaw0KPj4gcGNpX2FkZF9kbV9kb25l
LT5YRU5fRE9NQ1RMX2lycV9wZXJtaXNzaW9uIHdpbGwgZmFpbCBhdCBmdW5jdGlvbg0KPj4gZG9t
YWluX3BpcnFfdG9faXJxLCBiZWNhdXNlIFBWSCBoYXMgbm8gbWFwcGluZyBvZiBnc2ksIHBpcnEg
YW5kDQo+PiBpcnEgb24gWGVuIHNpZGUuDQo+PiBXaGF0J3MgbW9yZSwgY3VycmVudCBoeXBlcmNh
bGwgWEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbiByZXF1aXJlcw0KPj4gcGFzc2luZyBpbiBwaXJx
IHRvIHNldCB0aGUgYWNjZXNzIG9mIGlycSwgaXQgaXMgbm90IHN1aXRhYmxlIGZvcg0KPj4gZG9t
MCB0aGF0IGRvZXNuJ3QgaGF2ZSBQSVJRcy4NCj4+DQo+PiBTbywgYWRkIGEgbmV3IGh5cGVyY2Fs
bCBYRU5fRE9NQ1RMX2dzaV9wZXJtaXNzaW9uIHRvIGdyYW50L2RlbnkNCj4+IHRoZSBwZXJtaXNz
aW9uIG9mIGlycSh0cmFuc2xhdGUgZnJvbSB4ODYgZ3NpKSB0byBkdW1VIHdoZW4gZG9tMA0KPj4g
aGFzIG5vIFBJUlFzLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4u
Q2hlbkBhbWQuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1k
LmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29t
Pg0KPj4gLS0tDQo+PiBDQzogRGFuaWVsIFAgLiBTbWl0aCA8ZHBzbWl0aEBhcGVydHVzc29sdXRp
b25zLmNvbT4NCj4+IFJlbWFpbmluZyBjb21tZW50IEBEYW5pZWwgUCAuIFNtaXRoOg0KPj4gKyAg
ICAgICAgcmV0ID0gLUVQRVJNOw0KPj4gKyAgICAgICAgaWYgKCAhaXJxX2FjY2Vzc19wZXJtaXR0
ZWQoY3VycmQsIGlycSkgfHwNCj4+ICsgICAgICAgICAgICAgeHNtX2lycV9wZXJtaXNzaW9uKFhT
TV9IT09LLCBkLCBpcnEsIGFjY2Vzc19mbGFnKSApDQo+PiArICAgICAgICAgICAgZ290byBnc2lf
cGVybWlzc2lvbl9vdXQ7DQo+PiBJcyBpdCBva2F5IHRvIGlzc3VlIHRoZSBYU00gY2hlY2sgdXNp
bmcgdGhlIHRyYW5zbGF0ZWQgdmFsdWUsIA0KPj4gbm90IHRoZSBvbmUgdGhhdCB3YXMgb3JpZ2lu
YWxseSBwYXNzZWQgaW50byB0aGUgaHlwZXJjYWxsPw0KDQpOZWVkIHlvdXIgaW5wdXQuDQoNCj4g
DQo+IEFzIGxvbmcgYXMgdGhlIGFuc3dlciB0byB0aGlzIGlzIGdvaW5nIHRvIGJlICJZZXMiOg0K
PiBSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiANCj4gRGFu
aWVsLCBhd2FpdGluZyB5b3VyIGlucHV0Lg0KPiANCj4gSmFuDQoNCi0tIA0KQmVzdCByZWdhcmRz
LA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 07:31:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 07:31:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765284.1175872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXFQA-0006Ak-Er; Fri, 26 Jul 2024 07:31:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765284.1175872; Fri, 26 Jul 2024 07:31: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 1sXFQA-0006Ad-C0; Fri, 26 Jul 2024 07:31:22 +0000
Received: by outflank-mailman (input) for mailman id 765284;
 Fri, 26 Jul 2024 07:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXFQ9-0006AV-0d
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 07:31:21 +0000
Received: from mail-qv1-xf36.google.com (mail-qv1-xf36.google.com
 [2607:f8b0:4864:20::f36])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0aa34778-4b21-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 09:31:16 +0200 (CEST)
Received: by mail-qv1-xf36.google.com with SMTP id
 6a1803df08f44-6b5d3113168so2131126d6.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 00:31:16 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f8db083sm14421536d6.19.2024.07.26.00.31.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 00:31: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: 0aa34778-4b21-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721979075; x=1722583875; 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=7T1RPparR4n0DFQfHklUcgedcAh9YksCWJn3yX0zJvk=;
        b=qoZzxzXmRC5My7yYcE5yIze+7pBifp+Z7kpGFLOLGRmBtYJshffbO3MrJb7xOZ2/se
         AFE+fb2lC/1GAJSDG3hLFwx/OP+87q5IrPTHVr+tMyI/g/LuNEMrmbYeg+r2t3ETlKYj
         BCJ399i++1yH2/oG8zUbL5ViV3FAtuNM4m9n0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721979075; x=1722583875;
        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=7T1RPparR4n0DFQfHklUcgedcAh9YksCWJn3yX0zJvk=;
        b=Jq04eE5lZOYGgsRUOr9xBLHGtRCUZjFtNBHcxeQLm8lXpOmlK0Ioh2eZ/qQGtpYTi6
         SMP9w1ai0fEI4j+CeNsDOFkSruvMEXx2WZMECAlEeY2z73C3Xc4/g+0gOrtWfHZnB+8z
         am3AJJXWnneT/NDXC0XZa5iXmaLHZJeW62LCRai/hp/92BPDZ7yRs7TF1HoCFERE9g7z
         Q9kuh3EsHIBQsXowDfmNShkaVsk9/jlDwUpbXeDCfEidGYC2ySezT2SCw8zdyOchirbJ
         xv5IG10v5glqZhaFYZmp0FKluI2UTKhFMcF3nOIHm0f8cEbnhVXjApJgXTEy2cx9+G8b
         NI7w==
X-Forwarded-Encrypted: i=1; AJvYcCWKzngcS+s+xOj/8T3YRxGUWBEIeV8KmJSWy/WfPSH/Scy3vkl+doHjrEWILP/uLoz1nqR9fdpqMeTmlOLdi3Q5RRV6C+f4ObrC3/frM80=
X-Gm-Message-State: AOJu0YyTi9stwI/irBvLZnDK0n6IwYBN7TWYkyoxbVHaWDEYXyv0nfzj
	wRtjZGyQA+c1giffwxbdIHYCy0lbgGnbZ3ypCwC5Zi64tLqaFl4Opxjlcvv6FAA=
X-Google-Smtp-Source: AGHT+IFmK3OyqU+nLG8U9CJYDyASW/TI1jsxGYMl44GGd3iqexf1uI14A86b4jAagDM2IRqPJnIYJA==
X-Received: by 2002:a05:6214:300b:b0:6b7:9bdd:c5ac with SMTP id 6a1803df08f44-6bb3cb30bf8mr52290766d6.54.1721979074907;
        Fri, 26 Jul 2024 00:31:14 -0700 (PDT)
Date: Fri, 26 Jul 2024 09:31: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>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
Message-ID: <ZqNQwM3U8S5q-kg5@macbook>
References: <20240725105634.16825-1-roger.pau@citrix.com>
 <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com>
 <ZqJnPvL1ilDDzM9V@macbook>
 <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com>

On Thu, Jul 25, 2024 at 05:00:22PM +0200, Jan Beulich wrote:
> On 25.07.2024 16:54, Roger Pau Monné wrote:
> > On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote:
> >> On 25.07.2024 12:56, Roger Pau Monne wrote:
> >>> --- a/xen/arch/x86/include/asm/alternative.h
> >>> +++ b/xen/arch/x86/include/asm/alternative.h
> >>> @@ -184,11 +184,11 @@ extern void alternative_branches(void);
> >>>   * https://github.com/llvm/llvm-project/issues/82598
> >>>   */
> >>>  #define ALT_CALL_ARG(arg, n)                                            \
> >>> -    register union {                                                    \
> >>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> >>> -        unsigned long r;                                                \
> >>> +    register struct {                                                   \
> >>> +        typeof(arg) e;                                                  \
> >>> +        char pad[sizeof(void *) - sizeof(arg)];                         \
> >>
> >> One thing that occurred to me only after our discussion, and I then forgot
> >> to mention this before you would send a patch: What if sizeof(void *) ==
> >> sizeof(arg)? Zero-sized arrays are explicitly something we're trying to
> >> get rid of.
> > 
> > I wondered about this, but I though it was only [] that we were trying
> > to get rid of, not [0].
> 
> Sadly (here) it's actually the other way around, aiui.

The only other option I have in mind is using an oversized array on
the union, like:

#define ALT_CALL_ARG(arg, n)                                            \
    union {                                                             \
        typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)];  \
        unsigned long r;                                                \
    } a ## n ## __  = {                                                 \
        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
    };                                                                  \
    register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =      \
        a ## n ## __.r

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 07:36:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 07:36:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765289.1175882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXFUx-0006pb-Vk; Fri, 26 Jul 2024 07:36:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765289.1175882; Fri, 26 Jul 2024 07:36: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 1sXFUx-0006pU-TB; Fri, 26 Jul 2024 07:36:19 +0000
Received: by outflank-mailman (input) for mailman id 765289;
 Fri, 26 Jul 2024 07:36: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=Bo/X=O2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sXFUw-0006pO-Q7
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 07:36:18 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bea84b1c-4b21-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 09:36:17 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a7aa086b077so131673366b.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 00:36: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-a7acad4ae4dsm143833966b.136.2024.07.26.00.36.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Jul 2024 00: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: bea84b1c-4b21-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721979377; x=1722584177; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=L+XrnBvO28HTfSsxjfwSjzdC3/Q1fvXAJzgvBQwjoVo=;
        b=ZXjDBGl47crZuIgtdICKNYPN9QMOmrWapbkHMJniwbKzvl1FyFgHj3EmO609LDo5t9
         1m5bmV2zcvDy1hdp2X9nCo6ZCwux04CcH2gViTlqAvid86qIXU2nm3O4XZFI0iGgCnmU
         fCMXdPXGXkKM6yki2m2nbhIzcQy7XPr+utwH99W9SCWbqL5HVywuYr8z7LoItMOgrf7c
         sbe8Cu6ctPwB+UJhq4oBXn3BSQcIo7m9YKB1OrcsBVoIBzh92r+TnLp1GwkNvqjhluoE
         /duiazzqnsTITvnR4q5txRDOJyAS6uYVLwER6OQsB+z1NyinIE6iJyh1zJY6rYBjBU54
         8x/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721979377; x=1722584177;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L+XrnBvO28HTfSsxjfwSjzdC3/Q1fvXAJzgvBQwjoVo=;
        b=XEXIgTcVgEibZb0DOj1vt1iP6bf5r70DonEG1jww8ol3BsJe+xusoIvoUfJffwxnDu
         29z6tFFit7w8CbdF3RnSYMR8T0GTGz79jQNJKqmjzNOxhd1BRa9cvB8LnM4IsOAnHFET
         dw6YcZ2qTL0iH6EadcHHIW4xCr6zITE0LH1/ORNkRTKmU5o7kH7A2yUT+vV2Gn4c5FgK
         u6saIC5afl2AKRg+sS+vXd+C67+fgRBlFvXJKL8Wq8OT7dskxeFy0x3Rx+l0eL7BVZGU
         pQbvXkKC74AHCAmpOOS9TlI4U8nFnmckRdX4ryjB0l4yptWUJ6fYNzTXs9g8oVaJaZ8M
         c7YQ==
X-Forwarded-Encrypted: i=1; AJvYcCXbErhkELS30S1FhLUh9u5VQ/sp2tPOaXc+cALC1Ag+OEVPt2pv6rT3fpePvLFV4OBuc1LVLGFRFzeH1lbvx993PjpRHIlQ5o75BltgK6Q=
X-Gm-Message-State: AOJu0YxkX2A7GbI1Y59CuJmhK8c3qvskuAGQP99+PzpXMq/FiVy0ftox
	O8r7zM3LaTgTTJdZ/lLJzsYonXxM/GawFqUNgJVmxg+OpKO3/x4tLq0fIKNZJg==
X-Google-Smtp-Source: AGHT+IGK/+/23iKUCeJ8vXJmxDP0nlOKhORICd/yFNN2GR9i/P8iOQiIHQouoR0bjfdVXUVSkmUxcQ==
X-Received: by 2002:a17:906:d54f:b0:a7a:ac5f:bc01 with SMTP id a640c23a62f3a-a7ac4b624b5mr447943466b.0.1721979377167;
        Fri, 26 Jul 2024 00:36:17 -0700 (PDT)
Message-ID: <0f6b446a-0dda-4e59-807b-c0c0bcdf78bf@suse.com>
Date: Fri, 26 Jul 2024 09:36:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org
References: <20240725105634.16825-1-roger.pau@citrix.com>
 <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com> <ZqJnPvL1ilDDzM9V@macbook>
 <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com> <ZqNQwM3U8S5q-kg5@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZqNQwM3U8S5q-kg5@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.07.2024 09:31, Roger Pau Monné wrote:
> On Thu, Jul 25, 2024 at 05:00:22PM +0200, Jan Beulich wrote:
>> On 25.07.2024 16:54, Roger Pau Monné wrote:
>>> On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote:
>>>> On 25.07.2024 12:56, Roger Pau Monne wrote:
>>>>> --- a/xen/arch/x86/include/asm/alternative.h
>>>>> +++ b/xen/arch/x86/include/asm/alternative.h
>>>>> @@ -184,11 +184,11 @@ extern void alternative_branches(void);
>>>>>   * https://github.com/llvm/llvm-project/issues/82598
>>>>>   */
>>>>>  #define ALT_CALL_ARG(arg, n)                                            \
>>>>> -    register union {                                                    \
>>>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
>>>>> -        unsigned long r;                                                \
>>>>> +    register struct {                                                   \
>>>>> +        typeof(arg) e;                                                  \
>>>>> +        char pad[sizeof(void *) - sizeof(arg)];                         \
>>>>
>>>> One thing that occurred to me only after our discussion, and I then forgot
>>>> to mention this before you would send a patch: What if sizeof(void *) ==
>>>> sizeof(arg)? Zero-sized arrays are explicitly something we're trying to
>>>> get rid of.
>>>
>>> I wondered about this, but I though it was only [] that we were trying
>>> to get rid of, not [0].
>>
>> Sadly (here) it's actually the other way around, aiui.
> 
> The only other option I have in mind is using an oversized array on
> the union, like:
> 
> #define ALT_CALL_ARG(arg, n)                                            \
>     union {                                                             \
>         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)];  \
>         unsigned long r;                                                \
>     } a ## n ## __  = {                                                 \
>         .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
>     };                                                                  \
>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =      \
>         a ## n ## __.r

Yet that's likely awful code-gen wise? For the time being, can we perhaps
just tighten the BUILD_BUG_ON(), as iirc Alejandro had suggested?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 07:44:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 07:44:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765298.1175894 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXFce-0008VX-Kz; Fri, 26 Jul 2024 07:44:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765298.1175894; Fri, 26 Jul 2024 07:44: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 1sXFce-0008VQ-Gi; Fri, 26 Jul 2024 07:44:16 +0000
Received: by outflank-mailman (input) for mailman id 765298;
 Fri, 26 Jul 2024 07:44:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Bo/X=O2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sXFcc-0008VK-PG
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 07:44:14 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id da4cb01b-4b22-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 09:44:13 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7a843bef98so147565266b.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 00:44: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
 a640c23a62f3a-a7acada27ddsm143617566b.184.2024.07.26.00.44.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Jul 2024 00:44: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: da4cb01b-4b22-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721979853; x=1722584653; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ugfk6aT1iGRzcL2ectDCRPJ1gZaTogcQcIYTYhFZZ7Q=;
        b=UeyN4PGOUKA/sRzoedIkmnr/FBu18W0hFZZynb8AQSs6v8+Nj/qIyPP6ozQCpZ6nN0
         UdQUHo+jcIS20FD1NnC5SeW70M1Pcm0a+xSKxVsQJRRzwAJntQrr3ywKVduXU3XFVIGT
         oc0b8dHMVp3wxFw62uaiLQotN0gLqrSr7jVch8B6HJ9nDoOtSvEQoN081JwMcI29T5Qt
         St3MNfN50ppx8RP+u7Tld6pruT9mnwWzNo5HGfUrV27NtbwqJHXiuW73BdyhauMML7ip
         VyqrTrbGkooWSAgQxBEhALCBFBbQeCD5v3Wapo1N0VN7tyjXdnqbsqOv6K9XPm7Ok4hv
         s8UQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721979853; x=1722584653;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ugfk6aT1iGRzcL2ectDCRPJ1gZaTogcQcIYTYhFZZ7Q=;
        b=WXjjjhgrVnXdhouE6ELbeKapkUABviCbMzaKa37NkaC0ApuKgFB50iQv65Q2tXMSCK
         V+wb9ZZPc0R48Ek0FFsaE+BwgHso8C+1Zi84EnM8bH1ngQZtSmYPWKH+PSOeAUtbWIhF
         B8EInByas2oYA/zHootZraVsT7SA/WcDTQ11IpCFhT+06YqPRMxYCpBJRX3oepQZfhEE
         aGUfpbgVxMMvJ2sZLaDA7sa9XibL21ROkJXhF4LUFGnm+8ChwoEtuhoEx/eFhE95bNGT
         v5cbo+hjZcZL3gqTXClrgcxvNddwjfPlckesFvaWi3VROoto3F/eAsqUeYqTVbh3W+MC
         s0wQ==
X-Forwarded-Encrypted: i=1; AJvYcCU8IbY0g0nhRQWgz+x7ZZsp0UzVyUGDlBCJldHXV6h561adAebd/0iQWXTl7+EL5A/6WpBdH8vFj007THh1Y+ExCTIg74MX2VfVhXqzH6U=
X-Gm-Message-State: AOJu0YyB8D7K6FFZlAJpH5gpO5lglc7uA64eFKtRbYUsQrQpql6QZafZ
	wYmsjx4L4aplGZ0XD7pNG9YMub4RatcLtolS4sGMNp0WJNwQ4712DGW09wJiKQ==
X-Google-Smtp-Source: AGHT+IF+f5yrT96Oz8OhDbnClSgHf2QZ7MGDg8wm6IqcgmUz/rdxZeggKjVCPjfIGEHnwKYIFZxwoQ==
X-Received: by 2002:a17:907:2689:b0:a77:dbf0:d22 with SMTP id a640c23a62f3a-a7ac5330b2bmr297159366b.65.1721979853037;
        Fri, 26 Jul 2024 00:44:13 -0700 (PDT)
Message-ID: <68c3ac17-2ccb-40db-b105-712d444440c3@suse.com>
Date: Fri, 26 Jul 2024 09:44:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v3] automation: add linker symbol name script
To: victorm.lira@amd.com
Cc: Stefano Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com,
 consulting@bugseng.com, simone.ballarin@bugseng.com,
 xen-devel@lists.xenproject.org
References: <29c7f6cd166d5d3c0e9f64dc937e29dc7ecf3f2d.1721933988.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: <29c7f6cd166d5d3c0e9f64dc937e29dc7ecf3f2d.1721933988.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.07.2024 21:01, victorm.lira@amd.com wrote:
> From: Victor Lira <victorm.lira@amd.com>
> 
> Requested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>

Looks okay to me now, just that I don't see ...

> --- /dev/null
> +++ b/automation/eclair_analysis/linker-symbols.sh
> @@ -0,0 +1,34 @@
> +#!/bin/sh
> +
> +# Stop immediately if any executed command has exit status different from 0.
> +set -e
> +
> +# Extract linker symbol names (except those starting with ".") from assignments.
> +
> +script_name=$(basename "$0")
> +script_dir="$(
> +  cd "$(dirname "$0")"
> +  echo "${PWD}"
> +)"
> +src_dir="${script_dir}/../.."
> +
> +fatal() {
> +  echo "${script_name}: $*" >&2
> +  exit 1
> +}
> +
> +usage() {
> +  fatal "Usage: ${script_name} <arm|x86>"
> +}
> +
> +if [ $# -ne 1 ]; then
> +  usage
> +fi
> +
> +filepath="${src_dir}/xen/arch/${1}/xen.lds"
> +
> +if [ ! -f "$filepath" ]; then
> +  fatal "Could not find ${1} linker script. Must be run after arm/x86 build."

... why you have "arm/x86" there when the message already includes ${1}.
That'll simply go stale (and unnoticed) when PPC and/or RISC-V make further
progress. Actually in usage() I'm similarly uncertain you want to mention
the two architectures explicitly. Just say <arch> there? Happy to make
adjustments while committing, so long as you agree.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 07:52:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 07:52:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765314.1175903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXFka-0001xo-Fl; Fri, 26 Jul 2024 07:52:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765314.1175903; Fri, 26 Jul 2024 07:52:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXFka-0001xh-D6; Fri, 26 Jul 2024 07:52:28 +0000
Received: by outflank-mailman (input) for mailman id 765314;
 Fri, 26 Jul 2024 07:52: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXFkY-0001xb-Q9
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 07:52:26 +0000
Received: from mail-qk1-x72a.google.com (mail-qk1-x72a.google.com
 [2607:f8b0:4864:20::72a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fe26d0b6-4b23-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 09:52:23 +0200 (CEST)
Received: by mail-qk1-x72a.google.com with SMTP id
 af79cd13be357-7a1dd1b24e6so22822785a.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 00:52:23 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d74353f1sm153533485a.75.2024.07.26.00.52.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 00: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: fe26d0b6-4b23-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1721980342; x=1722585142; 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=iNrrXtP4YrdJB1scfRd9oYdx5XBXMRM65ppWgEEeKmA=;
        b=r3ViufThka6DH3YANPkGLIuM65YQmljSRHJK1Rk8IRRzNLPXS73HbclfupEXGesXZJ
         4S4c81L26oWEpLS4UJ5qFjlmiub4f7n3praVUX5gtdGtVFdSUEzqMRvUgUX+F+j+ib+3
         RYke/iqKJ7Ip1oeBQmxausQBMyaNDGJeIVrEo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721980342; x=1722585142;
        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=iNrrXtP4YrdJB1scfRd9oYdx5XBXMRM65ppWgEEeKmA=;
        b=q2QiMQ8ZOVyAbqZ4tnIbFseZJL94V2glVcgfSx2YXzqmud5ZBjeBdJCKt6pEYuqfhy
         2yU/qtVMebY2c5qZVDmG1yZGVr4dZrkjH6+mK6qxLnPf11GFNFwiTRcUuH1U6zg//q2K
         tnH24R1HH+LZdnU/sUzGJtQ4KJZNm3If5pmCStUVSvsUg3ryFdjLeRZAQfZRsBqJ0ZGg
         VGd0cEmlHYqe3H6Dw7mg51hSm58LgtHb7AmqRZ83Bn85scUKc1fkGlLk63piN0ewMN5p
         phDx8GcKQX4a+Tx8Yx5vkUmYu9XuGDGIfR9GJ2yWlBeShnvK0S7Qc56+hnEjlEQHFQj/
         U6pw==
X-Forwarded-Encrypted: i=1; AJvYcCU/VoKnzs3Kv2dQ/oL2EvdMQ7f05NDda9BGSUUwoqsFlcidp5AaTj2SlsA/XLaZzZcpNWn/v4eNW+JUheP83HRQlLN0J3/0e0B37YVcRPY=
X-Gm-Message-State: AOJu0YxNgfPM3DIMzl58K611bBC+sQ1wTI26Ug/k5xJ+u0/pNrZAEJgG
	fne1F8t8esJbf4wwSfrBvH244bvaXGRLsyRItBgvk4IN8TSh3AbCYdMATq32Ydw=
X-Google-Smtp-Source: AGHT+IEXDQUD7OeMv0PoAd4c8HOiI1r7Z7shUU/ZS6DDnIgFZsuiEtqB8iuVZJXYKrEXSX6zGyt9UQ==
X-Received: by 2002:a05:620a:25c9:b0:79f:1382:9256 with SMTP id af79cd13be357-7a1d453db69mr672054785a.60.1721980342492;
        Fri, 26 Jul 2024 00:52:22 -0700 (PDT)
Date: Fri, 26 Jul 2024 09:52:19 +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>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
Message-ID: <ZqNVs97wexqd5trA@macbook>
References: <20240725105634.16825-1-roger.pau@citrix.com>
 <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com>
 <ZqJnPvL1ilDDzM9V@macbook>
 <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com>
 <ZqNQwM3U8S5q-kg5@macbook>
 <0f6b446a-0dda-4e59-807b-c0c0bcdf78bf@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0f6b446a-0dda-4e59-807b-c0c0bcdf78bf@suse.com>

On Fri, Jul 26, 2024 at 09:36:15AM +0200, Jan Beulich wrote:
> On 26.07.2024 09:31, Roger Pau Monné wrote:
> > On Thu, Jul 25, 2024 at 05:00:22PM +0200, Jan Beulich wrote:
> >> On 25.07.2024 16:54, Roger Pau Monné wrote:
> >>> On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote:
> >>>> On 25.07.2024 12:56, Roger Pau Monne wrote:
> >>>>> --- a/xen/arch/x86/include/asm/alternative.h
> >>>>> +++ b/xen/arch/x86/include/asm/alternative.h
> >>>>> @@ -184,11 +184,11 @@ extern void alternative_branches(void);
> >>>>>   * https://github.com/llvm/llvm-project/issues/82598
> >>>>>   */
> >>>>>  #define ALT_CALL_ARG(arg, n)                                            \
> >>>>> -    register union {                                                    \
> >>>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> >>>>> -        unsigned long r;                                                \
> >>>>> +    register struct {                                                   \
> >>>>> +        typeof(arg) e;                                                  \
> >>>>> +        char pad[sizeof(void *) - sizeof(arg)];                         \
> >>>>
> >>>> One thing that occurred to me only after our discussion, and I then forgot
> >>>> to mention this before you would send a patch: What if sizeof(void *) ==
> >>>> sizeof(arg)? Zero-sized arrays are explicitly something we're trying to
> >>>> get rid of.
> >>>
> >>> I wondered about this, but I though it was only [] that we were trying
> >>> to get rid of, not [0].
> >>
> >> Sadly (here) it's actually the other way around, aiui.
> > 
> > The only other option I have in mind is using an oversized array on
> > the union, like:
> > 
> > #define ALT_CALL_ARG(arg, n)                                            \
> >     union {                                                             \
> >         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)];  \
> >         unsigned long r;                                                \
> >     } a ## n ## __  = {                                                 \
> >         .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> >     };                                                                  \
> >     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =      \
> >         a ## n ## __.r
> 
> Yet that's likely awful code-gen wise?

Seems OK: https://godbolt.org/z/nsdo5Gs8W

> For the time being, can we perhaps
> just tighten the BUILD_BUG_ON(), as iirc Alejandro had suggested?

My main concern with tightening the BUILD_BUG_ON() is that then I
would also like to do so for the GCC one, so that build fails
uniformly.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 08:05:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 08:05:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765323.1175912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXFxS-0004QZ-MP; Fri, 26 Jul 2024 08:05:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765323.1175912; Fri, 26 Jul 2024 08:05: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 1sXFxS-0004QS-Jr; Fri, 26 Jul 2024 08:05:46 +0000
Received: by outflank-mailman (input) for mailman id 765323;
 Fri, 26 Jul 2024 08:05: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=Bo/X=O2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sXFxR-0004Q6-QT
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 08:05:45 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id db33e2eb-4b25-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 10:05:43 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-52efdf02d13so1559189e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 01:05: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
 a640c23a62f3a-a7acab4debasm147255366b.60.2024.07.26.01.05.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Jul 2024 01:05: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: db33e2eb-4b25-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1721981143; x=1722585943; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ib6gE8OR8cqHpesv31TjJsDXyWkqWwzXKQl6l1Au1sk=;
        b=IR+oM0i1/L9PDlLIJEQ32rQR8l2CkEl55O1NRqP26U5ExUNf581cH0f9r0eaaOHlWw
         0iYxYCNdz1+Wfk0zAFhZp/ZUq+bn3e2VFm+Dydosq8+7I2Pb1gDiWwrwXvgkd+e2rNde
         ZGfdwCJ3U3dqMzemhe679gjFFqU1zijBjvvqojbi6b5ICxfZ+C9RtJRdpszKO2wvtely
         Fdqvr1SVZ5Xog3lfFbyezFit4wpM15dOSPuuOnRiZ7EsVhzneRbNFZ9AmJQV4EIRDW37
         8BHTFQHpxF6rLuUQ8OESPJNnSEoZAMM5q6Lj9mp+U5cMfZq9+HDZrMLELivvBmaBMRGB
         JCYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721981143; x=1722585943;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ib6gE8OR8cqHpesv31TjJsDXyWkqWwzXKQl6l1Au1sk=;
        b=K/Z14q3mCbTcjKqJoSjs17ywaZzov0YsCFF75e0Q4buOUjQC58XkNYEV5HlKtY10MC
         1LevXxoY5a83D5MCdPWopDZ8wUcQLckWPVzPeTp/IDmpXNlVCIUB26Oef2NIYv0RePDL
         hxngRv8Fh/7vv9a2qOMAzpVTIo6sSbr/Tk6Z+hcxr7lXhAOjl0jFO5HYjWSR+vlhBVjg
         w2jOnXd+7dH40yMyEIwVbV+cF8krFSACY3idRQ0AiEpquHEI6D43pW+zaphfkMg+qTgq
         aQUVRRSHXHBcpId0qCSMYvaxQas/IRGtLuv2pFLRAAayV0TFqdt4Yc9gwM794+0MiMQj
         2tbg==
X-Forwarded-Encrypted: i=1; AJvYcCUkvDR3xHbeqecbVFOb3b3BWVVeUFmX9yX87tPHVUmGOdzGwLXZtr8wEM25W9DBtSsXbpyh4UuDfEjaacpgL7Y/L92+JL1oc8QH5D3fdO4=
X-Gm-Message-State: AOJu0YwutMnAwTFEDN60UPKaVBx7Gdh634C6cP6NUTIKqZTHPRSttNgS
	X0z1SZpI3pCoUNx0sNkB4CP/DUu/mHCvpHTAkcOENqgiosz+qY6JoigkHNjWKw==
X-Google-Smtp-Source: AGHT+IGDR9KVrGhkNCgDkReUtTYzH4fastcmwpxiWKE8nUl5nLgCtMOF4jI1eUaaExQcUncO/V/weQ==
X-Received: by 2002:a05:6512:54f:b0:52c:dd25:9ac6 with SMTP id 2adb3069b0e04-52fd6038916mr3579363e87.29.1721981142945;
        Fri, 26 Jul 2024 01:05:42 -0700 (PDT)
Message-ID: <4e2117f9-2a68-4032-9d1a-09965f97085f@suse.com>
Date: Fri, 26 Jul 2024 10:05:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org
References: <20240725105634.16825-1-roger.pau@citrix.com>
 <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com> <ZqJnPvL1ilDDzM9V@macbook>
 <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com> <ZqNQwM3U8S5q-kg5@macbook>
 <0f6b446a-0dda-4e59-807b-c0c0bcdf78bf@suse.com> <ZqNVs97wexqd5trA@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZqNVs97wexqd5trA@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.07.2024 09:52, Roger Pau Monné wrote:
> On Fri, Jul 26, 2024 at 09:36:15AM +0200, Jan Beulich wrote:
>> On 26.07.2024 09:31, Roger Pau Monné wrote:
>>> On Thu, Jul 25, 2024 at 05:00:22PM +0200, Jan Beulich wrote:
>>>> On 25.07.2024 16:54, Roger Pau Monné wrote:
>>>>> On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote:
>>>>>> On 25.07.2024 12:56, Roger Pau Monne wrote:
>>>>>>> --- a/xen/arch/x86/include/asm/alternative.h
>>>>>>> +++ b/xen/arch/x86/include/asm/alternative.h
>>>>>>> @@ -184,11 +184,11 @@ extern void alternative_branches(void);
>>>>>>>   * https://github.com/llvm/llvm-project/issues/82598
>>>>>>>   */
>>>>>>>  #define ALT_CALL_ARG(arg, n)                                            \
>>>>>>> -    register union {                                                    \
>>>>>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
>>>>>>> -        unsigned long r;                                                \
>>>>>>> +    register struct {                                                   \
>>>>>>> +        typeof(arg) e;                                                  \
>>>>>>> +        char pad[sizeof(void *) - sizeof(arg)];                         \
>>>>>>
>>>>>> One thing that occurred to me only after our discussion, and I then forgot
>>>>>> to mention this before you would send a patch: What if sizeof(void *) ==
>>>>>> sizeof(arg)? Zero-sized arrays are explicitly something we're trying to
>>>>>> get rid of.
>>>>>
>>>>> I wondered about this, but I though it was only [] that we were trying
>>>>> to get rid of, not [0].
>>>>
>>>> Sadly (here) it's actually the other way around, aiui.
>>>
>>> The only other option I have in mind is using an oversized array on
>>> the union, like:
>>>
>>> #define ALT_CALL_ARG(arg, n)                                            \
>>>     union {                                                             \
>>>         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)];  \
>>>         unsigned long r;                                                \
>>>     } a ## n ## __  = {                                                 \
>>>         .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
>>>     };                                                                  \
>>>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =      \
>>>         a ## n ## __.r
>>
>> Yet that's likely awful code-gen wise?
> 
> Seems OK: https://godbolt.org/z/nsdo5Gs8W

In which case why not go this route. If the compiler is doing fine with
that, maybe the array dimension expression could be further simplified,
accepting yet more over-sizing? Like "sizeof(void *) / sizeof (arg) + 1"
or even simply "sizeof(void *)"? Suitably commented of course ...

>> For the time being, can we perhaps
>> just tighten the BUILD_BUG_ON(), as iirc Alejandro had suggested?
> 
> My main concern with tightening the BUILD_BUG_ON() is that then I
> would also like to do so for the GCC one, so that build fails
> uniformly.

If we were to take that route, then yes, probably should constrain both
(with a suitable comment on the gcc one).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 09:20:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 09:20:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765343.1175922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXH7f-0006EK-Sa; Fri, 26 Jul 2024 09:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765343.1175922; Fri, 26 Jul 2024 09:20: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 1sXH7f-0006ED-Pv; Fri, 26 Jul 2024 09:20:23 +0000
Received: by outflank-mailman (input) for mailman id 765343;
 Fri, 26 Jul 2024 09:20:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXH7e-0006E3-Jl; Fri, 26 Jul 2024 09:20:22 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXH7e-0003s7-BJ; Fri, 26 Jul 2024 09:20:22 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXH7d-0002Ae-Mx; Fri, 26 Jul 2024 09:20:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXH7d-0006iz-Mf; Fri, 26 Jul 2024 09:20:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=EDYRvSixMsWY/SZPwg/TzSakvMk9oPUsWpoWGfzvm5w=; b=fUIp6GNoLQhovrrHSNSLsRrbDM
	8pKfm6Reo0iv90F/jMnlHiSwTsfDMvq/O1YYxvlXiVvusPkmToIYLH5f0QJETxNDAy11XFU6XDIdE
	vsnTyKIUsadmAdLD5ONCaKvuBxQ2v1bOkvPNhwP2xWx3AwIoZCK26xfaaeMuN7FoYwQg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187014-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187014: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=68300746421eed4df291e4d075c1fd566d1d5169
X-Osstest-Versions-That:
    ovmf=ffc09b51cb7cc47bc80730d6c9e14563140dd052
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Jul 2024 09:20:21 +0000

flight 187014 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187014/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 68300746421eed4df291e4d075c1fd566d1d5169
baseline version:
 ovmf                 ffc09b51cb7cc47bc80730d6c9e14563140dd052

Last test of basis   187012  2024-07-26 03:15:18 Z    0 days
Testing same since   187014  2024-07-26 07:15:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   ffc09b51cb..6830074642  68300746421eed4df291e4d075c1fd566d1d5169 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 09:40:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 09:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765354.1175932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXHRC-0000Xr-Dx; Fri, 26 Jul 2024 09:40:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765354.1175932; Fri, 26 Jul 2024 09:40:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXHRC-0000Xk-BA; Fri, 26 Jul 2024 09:40:34 +0000
Received: by outflank-mailman (input) for mailman id 765354;
 Fri, 26 Jul 2024 09:40:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXHRA-0000Xa-Ri; Fri, 26 Jul 2024 09:40:32 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXHRA-0004zg-Hz; Fri, 26 Jul 2024 09:40:32 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXHRA-0002lL-6g; Fri, 26 Jul 2024 09:40:32 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXHRA-0004de-6M; Fri, 26 Jul 2024 09:40: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Iq+tTJ72o9yYewEYtewddEC0vApcNq5Sa1rWrtfqD+Q=; b=Sq7kpgQ/xeEcd4J9g7094O2ma/
	FgfWM+GB4IKomXuxbHE7VQLKJkD1Yu7TY6I/C0sGPg0F+RJzO1TktGzztub4YeHqu8PLd3O/2Hi2C
	987RCBANc02L5Hquu9ZL1xy3wwgI5gOgPQKFltJ4CVuuLCdboR8GmTiD6Uj2q5usP8Xo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187007-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.18-testing test] 187007: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.18-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d078d0aa86e9e3b937f673dc89306b3afd09d560
X-Osstest-Versions-That:
    xen=d46a1ce3175dc45e97a8c9b89b0d0ff46145ae64
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Jul 2024 09:40:32 +0000

flight 187007 xen-4.18-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187007/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186820
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186820
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186820
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186820
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186820
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186820
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  d078d0aa86e9e3b937f673dc89306b3afd09d560
baseline version:
 xen                  d46a1ce3175dc45e97a8c9b89b0d0ff46145ae64

Last test of basis   186820  2024-07-16 12:40:22 Z    9 days
Testing same since   187007  2024-07-25 14:38:46 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Huang Rui <ray.huang@amd.com>
  Jiqian Chen <Jiqian.Chen@amd.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   d46a1ce317..d078d0aa86  d078d0aa86e9e3b937f673dc89306b3afd09d560 -> stable-4.18


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 09:58:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 09:58:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765370.1175955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXHi7-0002aK-1W; Fri, 26 Jul 2024 09:58:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765370.1175955; Fri, 26 Jul 2024 09:58: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 1sXHi6-0002aD-V4; Fri, 26 Jul 2024 09:58:02 +0000
Received: by outflank-mailman (input) for mailman id 765370;
 Fri, 26 Jul 2024 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=xI/c=O2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sXHi5-0002a3-Ep
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 09:58:01 +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 8a9db4c4-4b35-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 11:58:00 +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 BA8C61F892;
 Fri, 26 Jul 2024 09:57:59 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 8646F1396E;
 Fri, 26 Jul 2024 09:57:59 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id QHT2Hidzo2Y9TgAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 26 Jul 2024 09:57: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: 8a9db4c4-4b35-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721987879; 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=1knbRafuZJdjClcPDZqqUCWVZiNFY1gGFmGIQ1GvI/U=;
	b=dMfzfwgczwDGZ9T7UZGIzIQ9LaT1E99Pvl1lrdn/YDSbRkKh/E5W7OIn4kJzatFhQv/Yfx
	/lkwhqtwvBZmkgRmidk8vE/sXTTBv3Xhr0+HQcq57VJCHbr2X4isJP+PzLCj7HppgWcnR8
	jmLG21dlXOefdMYiWwRASOnWKaVYT/k=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1721987879; 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=1knbRafuZJdjClcPDZqqUCWVZiNFY1gGFmGIQ1GvI/U=;
	b=dMfzfwgczwDGZ9T7UZGIzIQ9LaT1E99Pvl1lrdn/YDSbRkKh/E5W7OIn4kJzatFhQv/Yfx
	/lkwhqtwvBZmkgRmidk8vE/sXTTBv3Xhr0+HQcq57VJCHbr2X4isJP+PzLCj7HppgWcnR8
	jmLG21dlXOefdMYiWwRASOnWKaVYT/k=
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.11-rc1 take 2
Date: Fri, 26 Jul 2024 11:57:58 +0200
Message-ID: <20240726095758.15879-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.60 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	MIME_GOOD(-0.10)[text/plain];
	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];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	FROM_EQ_ENVFROM(0.00)[];
	TO_DN_NONE(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Flag: NO
X-Spam-Score: -2.60

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.11-rc1a-tag

xen: branch for v6.11-rc1 take 2

It contains 2 fixes for issues introduced in this merge window:

- one for enhanced debugging in the Xen multicall handling

- a series with 2 patches fixing a boot failure when running as dom0 in
  PVH mode

Thanks.

Juergen

 arch/x86/include/asm/xen/hypervisor.h |   5 --
 arch/x86/platform/pvh/enlighten.c     |   3 -
 arch/x86/xen/enlighten_pvh.c          | 107 ++++++++++++++++++----------------
 arch/x86/xen/multicalls.c             |  19 +++---
 arch/x86/xen/smp_pv.c                 |   1 +
 arch/x86/xen/xen-ops.h                |   3 +
 6 files changed, 74 insertions(+), 64 deletions(-)

Juergen Gross (1):
      xen: fix multicall debug data referencing

Roger Pau Monne (2):
      x86/xen: move xen_reserve_extra_memory()
      x86/xen: fix memblock_reserve() usage on PVH


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 10:35:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 10:35:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765384.1175977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXIHz-0007iU-RC; Fri, 26 Jul 2024 10:35:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765384.1175977; Fri, 26 Jul 2024 10:35:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXIHz-0007iN-Ny; Fri, 26 Jul 2024 10:35:07 +0000
Received: by outflank-mailman (input) for mailman id 765384;
 Fri, 26 Jul 2024 10:35:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXIHy-0007iD-4H; Fri, 26 Jul 2024 10:35:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXIHy-00006H-2K; Fri, 26 Jul 2024 10:35:06 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXIHx-00046D-97; Fri, 26 Jul 2024 10:35:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXIHx-00016Y-89; Fri, 26 Jul 2024 10:35: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=nUJx9zEreTzEE+aKSNjfNvJBGlUeAc6E6O1QLsCXX2c=; b=LWhKqTNdu2y+Q7ERrBAFNE6q2J
	bIfRjSv6XCEDaV7Myg6cZxALnlSyYGGwXchArHFwO02M1pwAWNYJvJJZgIZZHkqgl/btYGapdTyuG
	fHyRZsUMorasxuPj/mzBHRJK36y5HzE15hib6pGFoPCMYSJmcQ2W+mp9Ng2EDZJUmzsY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187006-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.17-testing test] 187006: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.17-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=6c4e415656d68d905550070d7aa0f3fe219e4422
X-Osstest-Versions-That:
    xen=8f653989ecdc6e152ee39e974be82a659453f4f8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Jul 2024 10:35:05 +0000

flight 187006 xen-4.17-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187006/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186819
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186819
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186819
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186819
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186819
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186819
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  6c4e415656d68d905550070d7aa0f3fe219e4422
baseline version:
 xen                  8f653989ecdc6e152ee39e974be82a659453f4f8

Last test of basis   186819  2024-07-16 12:40:22 Z    9 days
Testing same since   187006  2024-07-25 14:38:46 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Huang Rui <ray.huang@amd.com>
  Jiqian Chen <Jiqian.Chen@amd.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   8f653989ec..6c4e415656  6c4e415656d68d905550070d7aa0f3fe219e4422 -> stable-4.17


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 11:05:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 11:05:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765394.1175986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXIlN-0003HZ-3Y; Fri, 26 Jul 2024 11:05:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765394.1175986; Fri, 26 Jul 2024 11: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 1sXIlN-0003HS-15; Fri, 26 Jul 2024 11:05:29 +0000
Received: by outflank-mailman (input) for mailman id 765394;
 Fri, 26 Jul 2024 11:05:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXIlL-0003HI-Ri; Fri, 26 Jul 2024 11:05:27 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXIlL-0001kp-MR; Fri, 26 Jul 2024 11:05:27 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXIlL-0004wk-Bw; Fri, 26 Jul 2024 11:05:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXIlL-0003VZ-BW; Fri, 26 Jul 2024 11:05: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=L2kem68nlQjUeQEA5pi7yddtJ1ZzZx28l3E37IfbJ+4=; b=oC0rqu3yUEsfOF19c8n1oA48yi
	OeXn1Us3oJNlwaggFftXepysmKLrr1EK9z7+ocig9AV3Rs5TcBsp+RYUDkyyjN98zR6XvY7iCq8pp
	JE3SGpES1A88iU46+ykl32JgPWc3pposDx86n5jfkyy2AacuSCCtqQCb/0EQifjgRnQM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187015-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187015: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=6589843cc619b3a5e2d2c0e5b12451b11a3f2288
X-Osstest-Versions-That:
    ovmf=68300746421eed4df291e4d075c1fd566d1d5169
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Jul 2024 11:05:27 +0000

flight 187015 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187015/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 6589843cc619b3a5e2d2c0e5b12451b11a3f2288
baseline version:
 ovmf                 68300746421eed4df291e4d075c1fd566d1d5169

Last test of basis   187014  2024-07-26 07:15:06 Z    0 days
Testing same since   187015  2024-07-26 09:43:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   6830074642..6589843cc6  6589843cc619b3a5e2d2c0e5b12451b11a3f2288 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 14:18:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 14:18:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765418.1175996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXLla-0008Mk-9i; Fri, 26 Jul 2024 14:17:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765418.1175996; Fri, 26 Jul 2024 14:17:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXLla-0008Md-6i; Fri, 26 Jul 2024 14:17:54 +0000
Received: by outflank-mailman (input) for mailman id 765418;
 Fri, 26 Jul 2024 14:17: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=P8ZK=O2=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sXLlZ-0008MX-Cd
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 14:17:53 +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 d7d45be8-4b59-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 16:17:52 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a7b2dbd81e3so212840766b.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 07:17:51 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad411b1sm181338066b.125.2024.07.26.07.17.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Jul 2024 07:17: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: d7d45be8-4b59-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722003471; x=1722608271; 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=eMI9aTT6zvaQdWTpgbXG4TzJOEoxkvv0ztlC/9mykyI=;
        b=fqX7ActQWKdj3oFrp9aws+UiStUfthjHwF+dmFZ4bCV3+lsaVEE6fv5Oc1iHaB1MBw
         103CQPaL12T2Y315TufA8IAKugyau8A/qtAIsNy5Ao9ulNzYT37WiOkSx3SJlAcSUO2S
         wPcBQxKJara72KNwDi7c9YX48PImTfjSNw99o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722003471; x=1722608271;
        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=eMI9aTT6zvaQdWTpgbXG4TzJOEoxkvv0ztlC/9mykyI=;
        b=SI3RJhDSrd9Sa4r2YESyOTEb5aBWDR6FENYaMfYzNUvJC2fwRqhynUXZzljf2hXprb
         wA6sqzl568Fg5FsSfTi49V3rCqnH05j3cAJgsQceR/37cUnxgveGvcUPTFBAM7/9jiAr
         2Px5wnDAJ7KBx0co8YRVPavO+NLtjIRSDr8z6iSLX/z9NGg0IfAtn3tqHQue6SkdnyEY
         88+2TS3eZ9+MNBXiR+0rqs4fjDiH0CuYXlaF0hoZssIaoIKNAvmEIYyu7szbUiHzfwoI
         Tz7Kot4vSLjYQ9/d/ZfRbNHzJU8XYOSgv3Z2pHjtdCO6YtvmCS2Cgdwx3cVI3Hgx4VMm
         PkKw==
X-Forwarded-Encrypted: i=1; AJvYcCX8m4kbUotmycckkIBxzT3vCrpgJDIgndqe5YKWS775fYz/VKTY+KLX77v41XyFfg4qgcIflNDBpeU3DTdnzGvTzXO/XEIf5/Nw8xMHmjU=
X-Gm-Message-State: AOJu0Yxe+h6y7UeRf4ySisgNxlqxtHuPkyA1DSpNm4CROB9+5ag7ErMb
	qreDUm8hb6hmdKkxYl91FM/W8sR+f+fuHAJwKZbdfBgJPXJGFKdwn6pO+DnKtKw=
X-Google-Smtp-Source: AGHT+IEVcXBhV7rB8LmG/bGjq4JOkaMbqLMndfpnqpRo6OMqTudFsPRkYDcQgew2IC2yrfUEj/qNEw==
X-Received: by 2002:a17:907:94c8:b0:a7a:9ca6:528 with SMTP id a640c23a62f3a-a7ac4d9d28bmr501042766b.11.1722003471121;
        Fri, 26 Jul 2024 07:17:51 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 26 Jul 2024 15:17:48 +0100
Message-Id: <D2ZJA8MODIO2.9JHFXZO8LW7Z@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
 <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
X-Mailer: aerc 0.17.0
References: <20240725105634.16825-1-roger.pau@citrix.com>
 <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com> <ZqJnPvL1ilDDzM9V@macbook>
 <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com> <ZqNQwM3U8S5q-kg5@macbook>
 <0f6b446a-0dda-4e59-807b-c0c0bcdf78bf@suse.com> <ZqNVs97wexqd5trA@macbook>
 <4e2117f9-2a68-4032-9d1a-09965f97085f@suse.com>
In-Reply-To: <4e2117f9-2a68-4032-9d1a-09965f97085f@suse.com>

On Fri Jul 26, 2024 at 9:05 AM BST, Jan Beulich wrote:
> On 26.07.2024 09:52, Roger Pau Monn=C3=A9 wrote:
> > On Fri, Jul 26, 2024 at 09:36:15AM +0200, Jan Beulich wrote:
> >> On 26.07.2024 09:31, Roger Pau Monn=C3=A9 wrote:
> >>> On Thu, Jul 25, 2024 at 05:00:22PM +0200, Jan Beulich wrote:
> >>>> On 25.07.2024 16:54, Roger Pau Monn=C3=A9 wrote:
> >>>>> On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote:
> >>>>>> On 25.07.2024 12:56, Roger Pau Monne wrote:
> >>>>>>> --- a/xen/arch/x86/include/asm/alternative.h
> >>>>>>> +++ b/xen/arch/x86/include/asm/alternative.h
> >>>>>>> @@ -184,11 +184,11 @@ extern void alternative_branches(void);
> >>>>>>>   * https://github.com/llvm/llvm-project/issues/82598
> >>>>>>>   */
> >>>>>>>  #define ALT_CALL_ARG(arg, n)                                    =
        \
> >>>>>>> -    register union {                                            =
        \
> >>>>>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];              =
        \
> >>>>>>> -        unsigned long r;                                        =
        \
> >>>>>>> +    register struct {                                           =
        \
> >>>>>>> +        typeof(arg) e;                                          =
        \
> >>>>>>> +        char pad[sizeof(void *) - sizeof(arg)];                 =
        \
> >>>>>>
> >>>>>> One thing that occurred to me only after our discussion, and I the=
n forgot
> >>>>>> to mention this before you would send a patch: What if sizeof(void=
 *) =3D=3D
> >>>>>> sizeof(arg)? Zero-sized arrays are explicitly something we're tryi=
ng to
> >>>>>> get rid of.
> >>>>>
> >>>>> I wondered about this, but I though it was only [] that we were try=
ing
> >>>>> to get rid of, not [0].
> >>>>
> >>>> Sadly (here) it's actually the other way around, aiui.
> >>>
> >>> The only other option I have in mind is using an oversized array on
> >>> the union, like:
> >>>
> >>> #define ALT_CALL_ARG(arg, n)                                         =
   \
> >>>     union {                                                          =
   \
> >>>         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)]=
;  \
> >>>         unsigned long r;                                             =
   \
> >>>     } a ## n ## __  =3D {                                            =
     \
> >>>         .e[0] =3D ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg=
); })\
> >>>     };                                                               =
   \
> >>>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D =
     \
> >>>         a ## n ## __.r
> >>
> >> Yet that's likely awful code-gen wise?
> >=20
> > Seems OK: https://godbolt.org/z/nsdo5Gs8W
>
> In which case why not go this route. If the compiler is doing fine with
> that, maybe the array dimension expression could be further simplified,
> accepting yet more over-sizing? Like "sizeof(void *) / sizeof (arg) + 1"
> or even simply "sizeof(void *)"? Suitably commented of course ...
>
> >> For the time being, can we perhaps
> >> just tighten the BUILD_BUG_ON(), as iirc Alejandro had suggested?
> >=20
> > My main concern with tightening the BUILD_BUG_ON() is that then I
> > would also like to do so for the GCC one, so that build fails
> > uniformly.
>
> If we were to take that route, then yes, probably should constrain both
> (with a suitable comment on the gcc one).
>
> Jan

Yet another way would be to have an intermediate `long` to cast onto. Compi=
lers
will optimise away the copy. It ignores the different-type aliasing rules i=
n
the C spec, so there's an assumption that we have -fno-strict-aliasing. But=
 I
belive we do? Otherwise it should pretty much work on anything.

```
  #define ALT_CALL_ARG(arg, n)                                             =
 \
      unsigned long __tmp =3D 0;                                           =
   \
      *(typeof(arg) *)&__tmp =3D                                           =
   \
          ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })         =
 \
      register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D __tm=
p; \
```

fwiw, clang18 emits identical code compared with the previous godbolt link.

Link: https://godbolt.org/z/facd1M9xa

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 14:20:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 14:20:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765425.1176007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXLoT-0001LL-Nv; Fri, 26 Jul 2024 14:20:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765425.1176007; Fri, 26 Jul 2024 14:20:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXLoT-0001LE-JV; Fri, 26 Jul 2024 14:20:53 +0000
Received: by outflank-mailman (input) for mailman id 765425;
 Fri, 26 Jul 2024 14: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=RNFL=O2=bounce.vates.tech=bounce-md_30504962.66a3b0c0.v1-6d452fc3fec049d6a27e65e0eab297e1@srs-se1.protection.inumbo.net>)
 id 1sXLoS-0001L5-0F
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 14:20:52 +0000
Received: from mail177-18.suw61.mandrillapp.com
 (mail177-18.suw61.mandrillapp.com [198.2.177.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41be024f-4b5a-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 16:20:50 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-18.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4WVqfm5pb4zCfBXGD
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 14:20:48 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 6d452fc3fec049d6a27e65e0eab297e1; Fri, 26 Jul 2024 14:20: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: 41be024f-4b5a-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1722003648; x=1722264148;
	bh=w1ILTJam9PX/r2+TOHHi9ELKTuYeghDtEIiQI/vRMhk=;
	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=esn95cffTlQxMbiyQrWYIgGmLdgYD1APvmrEcntCT7amGqevqnZ5ITx4bsxzYDtI6
	 B/w8e9AoLobBicUJOjmZFu18f6dYWAwlPF+73J2bxJAh1cjsvxXrJmgSQVQnRqVZ2e
	 KBwbd6GfqmmWEqK3gFHxFKbs45ioZcGVCt7/n9DOVYivNoZoahqTAmYchopNpLUEyJ
	 eqwc1aTUHlvzEaJvc0NiofTkBXKDHoMVCfFHw9tRnRR31wQ8Zt345tvp3ocLrk1eef
	 IBRKVZtyvrwiWTzxUcZcjtICGWYR7eWr5PYwkvAqsYlmPB5UJlBpCQzm1sB8cdRWG3
	 JbdTKgadTMuhA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1722003648; x=1722264148; i=anthony.perard@vates.tech;
	bh=w1ILTJam9PX/r2+TOHHi9ELKTuYeghDtEIiQI/vRMhk=;
	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=pJz8POrqh3jZevEHUDkyqDyDqUAu8jBO4AS8xUT7zjs2IupOCiG6VVsaBhm1l/dD6
	 d2xmnvR1L1VVdodSw4A9xttZZbWbkStqxfYSvTwmUb4l0LZz5938qan5wQrPTM75WK
	 OGhsqjN6l9hMRarOpuN5NIFbqjt0z0v3SWrdXPpOtkzVQYqBAtM8Neig4Eqf41KHDJ
	 GZLVZJMyK/xzjUfaGtBzs1n3kOY3dr3OsND3GkWGujkQsHpwKTxi8lzVRt9lERau3t
	 nzgH+fqiS/OouTcvhlkDpZGNbu2Aza/lu+byC59/UVDSIIOV9caViSex3wyYQ6qyEg
	 uSbis/fCpFKmA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2007/12]=20libxl:=20Allow=20stubdomain=20to=20control=20interupts=20of=20PCI=20device?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1722003648134
To: =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Message-Id: <ZqOwv6j6Xh+RfITd@l14>
References: <cover.f23e316613d8f82981f99b5fb90e36255c4adc63.1715867907.git-series.marmarek@invisiblethingslab.com> <aeba05a5ec7a0657217933f165ee0ac7e86e1b1b.1715867907.git-series.marmarek@invisiblethingslab.com> <ZqJby/TBLQOmzQPH@l14> <ZqJeRpv0leu3vWuf@mail-itl>
In-Reply-To: <ZqJeRpv0leu3vWuf@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.6d452fc3fec049d6a27e65e0eab297e1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240726:md
Date: Fri, 26 Jul 2024 14:20:48 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 25, 2024 at 04:16:37PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Thu, Jul 25, 2024 at 02:06:04PM +0000, Anthony PERARD wrote:
> > On Thu, May 16, 2024 at 03:58:28PM +0200, Marek Marczykowski-G=C3=B3rec=
ki wrote:
> > > Especially allow it to control MSI/MSI-X enabling bits. This part onl=
y
> > > writes a flag to a sysfs, the actual implementation is on the kernel
> > > side.
> > >
> > > This requires Linux >=3D 5.10 in dom0 (or relevant patch backported).
> > 
> > Does it not work before 5.10? Because the
> > Documentation/ABI/testing/sysfs-driver-pciback in linux tree say that
> > allow_interrupt_control is in 5.6.
> 
> For MSI-X to work at least with Linux it needs a fixup
> 2c269f42d0f382743ab230308b836ffe5ae9b2ae, which was backported to
> 5.10.201, but not further. 
> 
> > > diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pc=
i.c
> > > index 96cb4da0794e..6f357b70b815 100644
> > > --- a/tools/libs/light/libxl_pci.c
> > > +++ b/tools/libs/light/libxl_pci.c
> > > @@ -1513,6 +1513,14 @@ static void pci_add_dm_done(libxl__egc *egc,
> > >              rc =3D ERROR_FAIL;
> > >              goto out;
> > >          }
> > > +    } else if (libxl_is_stubdom(ctx, domid, NULL)) {
> > > +        /* Allow acces to MSI enable flag in PCI config space for th=
e stubdom */
> > 
> > s/acces/access/
> > 
> > > +        if ( sysfs_write_bdf(gc, SYSFS_PCIBACK_DRIVER"/allow_interru=
pt_control",
> > > +                             pci) < 0 ) {
> > > +            LOGD(ERROR, domainid, "Setting allow_interrupt_control f=
or device");
> > > +            rc =3D ERROR_FAIL;
> > > +            goto out;
> > 
> > Is it possible to make this non-fatal for cases where the kernel is
> > older than the introduction of the new setting? Or does pci passthrough
> > doesn't work at all with a stubdom before the change in the kernel?
> 
> MSI/MSI-X will not work. And if QEMU wouldn't hide MSI/MSI-X (upstream
> one doesn't), Linux won't fallback to INTx, so the device won't work at
> all.

Ok

I guess this patch is fine then:
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 Fri Jul 26 14:25:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 14:25:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765430.1176016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXLsg-0001wn-5T; Fri, 26 Jul 2024 14:25:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765430.1176016; Fri, 26 Jul 2024 14: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 1sXLsg-0001wg-2h; Fri, 26 Jul 2024 14:25:14 +0000
Received: by outflank-mailman (input) for mailman id 765430;
 Fri, 26 Jul 2024 14:25: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=P8ZK=O2=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sXLse-0001wa-FT
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 14:25:12 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ddf84907-4b5a-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 16:25:11 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-52f01afa11cso1971283e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 07:25:11 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad41616sm182950766b.137.2024.07.26.07.25.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Jul 2024 07:25: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: ddf84907-4b5a-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722003911; x=1722608711; 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=RTGr6E4iUPh9DMDAZ7f58092WQTR2KdftTscFn5t7Ps=;
        b=EqCBG5h98YlJbRQQYcEN1yv7+gmXmzpFXgc9AhY7bsFlKGe1eDTs5chNUWd2fe3hTQ
         Lsx59zcAqNTxwE6O5hI6S3WRBYLYLb6iAv/gKv4saq2xl0x8mU4kPdgbZ8WWQ8A1HSUy
         clypO5CvWtNMABYS2t1+98E2DDeWYfRY6tW7c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722003911; x=1722608711;
        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=RTGr6E4iUPh9DMDAZ7f58092WQTR2KdftTscFn5t7Ps=;
        b=HTTFbcwj9IKwTsu37tYDqZxMbraEhEdmlhqc7v++haOk6b6/Ia4/rjArzTM227DHHd
         ZT+RBZ6LBQ5QGOALQqx2ayp+i8bjyw/mRXwrca1fKOfb06MCu5pLUd45iCI+XoI2ea0g
         tlrHCO+xrU6AedhWTfCgeyLpwbjH2HhLaz4viL6Zo78GxywKyoWdPoM8M4bf/kBjOwBd
         40CJNt+l3kU9G+GM6hqEKmSWHBynwCYGKBz5gQz+NjufhFuPQA6LKzKVdICKIqLofktm
         8DtCf3aHAQR8jJmIaa3PLDlPyWUoZc4T/5l0bUg7szRQkYcNPhVM5Y6AlQFo9qvBAtIP
         8ZgQ==
X-Forwarded-Encrypted: i=1; AJvYcCXVQj1PSYlqrLkGIYQIGvnk+eEYFJbyVJReJaKezQXGgjBoRzLyJB6f+aGHmFy4IYEUfXdhr5tTiJ2G+gLbjUfKzHXsI5A6s4MVmHUENOg=
X-Gm-Message-State: AOJu0Yx+LvqU/9G/g7EilnHJkol1B903wLUNDh3yCwAFViLgQaF9Kj8J
	o3q2SoBMVZ/clqiOFaS8+6/dLWKRNRihvw057HKSqdyFUieRadWRwY32vAqqxDY=
X-Google-Smtp-Source: AGHT+IFRxfK9RsUS0U+ocskmLtHNbJ+B2gYyx0BAXiE0V+NA1JZ2s8Jf3o5Hv8nEu0e63vN75zBt1A==
X-Received: by 2002:ac2:4c48:0:b0:52c:dca7:c9bd with SMTP id 2adb3069b0e04-52fd3f2c027mr4128976e87.30.1722003910823;
        Fri, 26 Jul 2024 07:25:10 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 26 Jul 2024 15:25:08 +0100
Message-Id: <D2ZJFUKTDIAL.2OE4EHLK6GGIB@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
 <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>, "Jan Beulich"
 <jbeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
X-Mailer: aerc 0.17.0
References: <20240725105634.16825-1-roger.pau@citrix.com>
 <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com> <ZqJnPvL1ilDDzM9V@macbook>
 <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com> <ZqNQwM3U8S5q-kg5@macbook>
 <0f6b446a-0dda-4e59-807b-c0c0bcdf78bf@suse.com> <ZqNVs97wexqd5trA@macbook>
 <4e2117f9-2a68-4032-9d1a-09965f97085f@suse.com>
 <D2ZJA8MODIO2.9JHFXZO8LW7Z@cloud.com>
In-Reply-To: <D2ZJA8MODIO2.9JHFXZO8LW7Z@cloud.com>

On Fri Jul 26, 2024 at 3:17 PM BST, Alejandro Vallejo wrote:
> On Fri Jul 26, 2024 at 9:05 AM BST, Jan Beulich wrote:
> > On 26.07.2024 09:52, Roger Pau Monn=C3=A9 wrote:
> > > On Fri, Jul 26, 2024 at 09:36:15AM +0200, Jan Beulich wrote:
> > >> On 26.07.2024 09:31, Roger Pau Monn=C3=A9 wrote:
> > >>> On Thu, Jul 25, 2024 at 05:00:22PM +0200, Jan Beulich wrote:
> > >>>> On 25.07.2024 16:54, Roger Pau Monn=C3=A9 wrote:
> > >>>>> On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote:
> > >>>>>> On 25.07.2024 12:56, Roger Pau Monne wrote:
> > >>>>>>> --- a/xen/arch/x86/include/asm/alternative.h
> > >>>>>>> +++ b/xen/arch/x86/include/asm/alternative.h
> > >>>>>>> @@ -184,11 +184,11 @@ extern void alternative_branches(void);
> > >>>>>>>   * https://github.com/llvm/llvm-project/issues/82598
> > >>>>>>>   */
> > >>>>>>>  #define ALT_CALL_ARG(arg, n)                                  =
          \
> > >>>>>>> -    register union {                                          =
          \
> > >>>>>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];            =
          \
> > >>>>>>> -        unsigned long r;                                      =
          \
> > >>>>>>> +    register struct {                                         =
          \
> > >>>>>>> +        typeof(arg) e;                                        =
          \
> > >>>>>>> +        char pad[sizeof(void *) - sizeof(arg)];               =
          \
> > >>>>>>
> > >>>>>> One thing that occurred to me only after our discussion, and I t=
hen forgot
> > >>>>>> to mention this before you would send a patch: What if sizeof(vo=
id *) =3D=3D
> > >>>>>> sizeof(arg)? Zero-sized arrays are explicitly something we're tr=
ying to
> > >>>>>> get rid of.
> > >>>>>
> > >>>>> I wondered about this, but I though it was only [] that we were t=
rying
> > >>>>> to get rid of, not [0].
> > >>>>
> > >>>> Sadly (here) it's actually the other way around, aiui.
> > >>>
> > >>> The only other option I have in mind is using an oversized array on
> > >>> the union, like:
> > >>>
> > >>> #define ALT_CALL_ARG(arg, n)                                       =
     \
> > >>>     union {                                                        =
     \
> > >>>         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg=
)];  \
> > >>>         unsigned long r;                                           =
     \
> > >>>     } a ## n ## __  =3D {                                          =
       \
> > >>>         .e[0] =3D ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (a=
rg); })\
> > >>>     };                                                             =
     \
> > >>>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =
=3D      \
> > >>>         a ## n ## __.r
> > >>
> > >> Yet that's likely awful code-gen wise?
> > >=20
> > > Seems OK: https://godbolt.org/z/nsdo5Gs8W
> >
> > In which case why not go this route. If the compiler is doing fine with
> > that, maybe the array dimension expression could be further simplified,
> > accepting yet more over-sizing? Like "sizeof(void *) / sizeof (arg) + 1=
"
> > or even simply "sizeof(void *)"? Suitably commented of course ...
> >
> > >> For the time being, can we perhaps
> > >> just tighten the BUILD_BUG_ON(), as iirc Alejandro had suggested?
> > >=20
> > > My main concern with tightening the BUILD_BUG_ON() is that then I
> > > would also like to do so for the GCC one, so that build fails
> > > uniformly.
> >
> > If we were to take that route, then yes, probably should constrain both
> > (with a suitable comment on the gcc one).
> >
> > Jan
>
> Yet another way would be to have an intermediate `long` to cast onto. Com=
pilers
> will optimise away the copy. It ignores the different-type aliasing rules=
 in
> the C spec, so there's an assumption that we have -fno-strict-aliasing. B=
ut I
> belive we do? Otherwise it should pretty much work on anything.
>
> ```
>   #define ALT_CALL_ARG(arg, n)                                           =
   \
>       unsigned long __tmp =3D 0;                                         =
     \
>       *(typeof(arg) *)&__tmp =3D                                         =
     \
>           ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })       =
   \
>       register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D __=
tmp; \
> ```
>
> fwiw, clang18 emits identical code compared with the previous godbolt lin=
k.
>
> Link: https://godbolt.org/z/facd1M9xa
>
> Cheers,
> Alejandro

Bah. s/b/__tmp/ in line15. Same output though, so the point still stands.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 14:55:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 14:55:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765445.1176027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMLa-0006Jf-Bm; Fri, 26 Jul 2024 14:55:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765445.1176027; Fri, 26 Jul 2024 14:55: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 1sXMLa-0006JY-90; Fri, 26 Jul 2024 14:55:06 +0000
Received: by outflank-mailman (input) for mailman id 765445;
 Fri, 26 Jul 2024 14:55: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=P8ZK=O2=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sXMLY-0006JS-JM
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 14:55:04 +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 095b7ec7-4b5f-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 16:55:02 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5a10835487fso2877584a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 07:55:02 -0700 (PDT)
Received: from EMEAENGAAD19049.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad41462sm180156266b.119.2024.07.26.07.55.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 07:55: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: 095b7ec7-4b5f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722005701; x=1722610501; 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=U04aEBUi0SKv54sVsrAk71ymAOHw5qjFievhU+jTj60=;
        b=R27vc1lfdG2rPhyOfcdOtistsOsMyUcoSHmUSOywc4AUFW32jY7MC5FDhQUXXKmOt3
         ZglxESbZdQX/ws6TPGy7dRyht1E6Vhq27wZ2Tt1QmKvBpqxn+QjfYRqgg1Mu76gSKbL9
         ETcpvhVKVv974dyRQydoNgOe5NATfr4k+1Klo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722005701; x=1722610501;
        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=U04aEBUi0SKv54sVsrAk71ymAOHw5qjFievhU+jTj60=;
        b=EejZvdHHLafcPec69gyOf9fZlr2jX0HAueFeJc/j6+sbz6nKFtQWYo8uH9VNk3RTeW
         5Kf+Aut3dThtjRrGc+IZGfeJEC++Lu4Aou7Y8XEcNmr8mpUZAYcL6bevQVnjxiymhoo5
         pd2RX5kjHlZjc7KaNhh4GNHRq71hcA477aLF693EwwuQskegRqbehaGGvj0a3ffrJ98X
         fEu2sSSUyz2+vtBZcUgEj679R1N8mOM2w5ECqgEFT10ZbbMS5MAYZayMviYWW3eh9rBM
         YxVCIYktvhUPPVCY5+KqIHX8IsfSrQBABUKRQhAb+zHhNdTz2e9tjiYuAlvlKJYRRvpY
         Fz1A==
X-Gm-Message-State: AOJu0YzkaskrM1BpbZNJoGESeW4CKRwejdJD8jXolW0jgGXMr1x+gKNI
	myC6foxu3Q+Xhn7bNOjB4vA89QJunrnfMW3CxZQVJFI1jEySFfD+dX4fAz4wu97V956qYTve8Bi
	Q1oM=
X-Google-Smtp-Source: AGHT+IGBbauuT5eMx63qcvKu3h7pvqL2FktMuh7xTChhQ4XelaAUap2b3ZJMn1MhJSHCDPCztpQWfQ==
X-Received: by 2002:a17:906:3bd1:b0:a77:c080:11fa with SMTP id a640c23a62f3a-a7ac5064904mr410935566b.48.1722005701449;
        Fri, 26 Jul 2024 07:55:01 -0700 (PDT)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	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>
Subject: [PATCH] x86/viridian: Clarify some viridian logging strings
Date: Fri, 26 Jul 2024 15:52:00 +0100
Message-ID: <20240726145200.1991-1-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

It's sadically misleading to show an error without letters and expect
the dmesg reader to understand it's in hex. The patch adds a 0x prefix
to all hex numbers that don't already have it.

On the one instance in which a boolean is printed as an integer, print
it as a decimal integer instead so it's 0/1 in the common case and not
misleading if it's ever not just that due to a bug.

While at it, rename VIRIDIAN CRASH to VIRIDIAN GUEST_CRASH. Every member
of a support team that looks at the message systematically believes
"viridian" crashed, which is absolutely not what goes on. It's the guest
asking the hypervisor for a sudden shutdown because it crashed, and
stating why.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
Still going through its Gitlab pipeline

---
 xen/arch/x86/hvm/viridian/synic.c    | 2 +-
 xen/arch/x86/hvm/viridian/viridian.c | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/hvm/viridian/synic.c b/xen/arch/x86/hvm/viridian/synic.c
index 3375e55e95ca..c3dc573b003d 100644
--- a/xen/arch/x86/hvm/viridian/synic.c
+++ b/xen/arch/x86/hvm/viridian/synic.c
@@ -172,7 +172,7 @@ int viridian_synic_wrmsr(struct vcpu *v, uint32_t idx, uint64_t val)
         vector = new.vector;
         vv->vector_to_sintx[vector] = sintx;
 
-        printk(XENLOG_G_INFO "%pv: VIRIDIAN SINT%u: vector: %x\n", v, sintx,
+        printk(XENLOG_G_INFO "%pv: VIRIDIAN SINT%u: vector: %#x\n", v, sintx,
                vector);
 
         *vs = new;
diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c
index 0496c52ed5a2..21480d9ee700 100644
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -253,7 +253,7 @@ static void dump_guest_os_id(const struct domain *d)
     goi = &d->arch.hvm.viridian->guest_os_id;
 
     printk(XENLOG_G_INFO
-           "d%d: VIRIDIAN GUEST_OS_ID: vendor: %x os: %x major: %x minor: %x sp: %x build: %x\n",
+           "d%d: VIRIDIAN GUEST_OS_ID: vendor: %#x os: %#x major: %#x minor: %#x sp: %#x build: %#x\n",
            d->domain_id, goi->vendor, goi->os, goi->major, goi->minor,
            goi->service_pack, goi->build_number);
 }
@@ -264,7 +264,7 @@ static void dump_hypercall(const struct domain *d)
 
     hg = &d->arch.hvm.viridian->hypercall_gpa;
 
-    printk(XENLOG_G_INFO "d%d: VIRIDIAN HYPERCALL: enabled: %x pfn: %lx\n",
+    printk(XENLOG_G_INFO "d%d: VIRIDIAN HYPERCALL: enabled: %u pfn: %#lx\n",
            d->domain_id,
            hg->enabled, (unsigned long)hg->pfn);
 }
@@ -372,7 +372,8 @@ int guest_wrmsr_viridian(struct vcpu *v, uint32_t idx, uint64_t val)
         d->shutdown_code = SHUTDOWN_crash;
         spin_unlock(&d->shutdown_lock);
 
-        gprintk(XENLOG_WARNING, "VIRIDIAN CRASH: %lx %lx %lx %lx %lx\n",
+        gprintk(XENLOG_WARNING,
+                "VIRIDIAN GUEST_CRASH: %#lx %#lx %#lx %#lx %#lx\n",
                 vv->crash_param[0], vv->crash_param[1], vv->crash_param[2],
                 vv->crash_param[3], vv->crash_param[4]);
         break;
@@ -1056,7 +1057,7 @@ void viridian_dump_guest_page(const struct vcpu *v, const char *name,
     if ( !vp->msr.enabled )
         return;
 
-    printk(XENLOG_G_INFO "%pv: VIRIDIAN %s: pfn: %lx\n",
+    printk(XENLOG_G_INFO "%pv: VIRIDIAN %s: pfn: %#lx\n",
            v, name, (unsigned long)vp->msr.pfn);
 }
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:08:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:08:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765455.1176036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMXz-0008UA-Ho; Fri, 26 Jul 2024 15:07:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765455.1176036; Fri, 26 Jul 2024 15:07:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMXz-0008U3-FI; Fri, 26 Jul 2024 15:07:55 +0000
Received: by outflank-mailman (input) for mailman id 765455;
 Fri, 26 Jul 2024 15:07:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=aepa=O2=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1sXMXy-0008Tx-Of
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:07:54 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d458a013-4b60-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:07:53 +0200 (CEST)
Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-260-uU9eNeBmOBmxsbHiNspYkQ-1; Fri,
 26 Jul 2024 11:07:47 -0400
Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15])
 (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 mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 396AC1955D4D; Fri, 26 Jul 2024 15:07:42 +0000 (UTC)
Received: from t14s.redhat.com (unknown [10.39.193.153])
 by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id AF9BB1955D45; Fri, 26 Jul 2024 15:07: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: d458a013-4b60-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1722006472;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding;
	bh=hcrSbRRNq3UgkpcRSzhVfFxj5WTgmNA01IUpGR6Hr34=;
	b=XRacDgs/Mzs2TRDlJQVyC6a336xwSil5aqS5yuXTP8IVRDDjK1CGK+fzRS2R9garMIlqId
	Ftt8/bEmY7kyYiLWHzzLMACB1LAHJe4oFhkYhHpbgkVeNl3BiHMrGx38tBiFL545r38ZM1
	Rg0QMMalGMXndwZxIiq5YWPQeaE2AdE=
X-MC-Unique: uU9eNeBmOBmxsbHiNspYkQ-1
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	linux-arm-kernel@lists.infradead.org,
	x86@kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Oscar Salvador <osalvador@suse.de>,
	Peter Xu <peterx@redhat.com>,
	Muchun Song <muchun.song@linux.dev>,
	Russell King <linux@armlinux.org.uk>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	"Naveen N. Rao" <naveen.n.rao@linux.ibm.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>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>
Subject: [PATCH v1 0/3] mm: split PTE/PMD PT table Kconfig cleanups+clarifications
Date: Fri, 26 Jul 2024 17:07:25 +0200
Message-ID: <20240726150728.3159964-1-david@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15

This series is a follow up to the fixes:
	"[PATCH v1 0/2] mm/hugetlb: fix hugetlb vs. core-mm PT locking"

When working on the fixes, I wondered why 8xx is fine (-> never uses split
PT locks) and how PT locking even works properly with PMD page table
sharing (-> always requires split PMD PT locks).

Let's improve the split PT lock detection, make hugetlb properly depend
on it and make 8xx bail out if it would ever get enabled by accident.

As an alternative to patch #3 we could extend the Kconfig SPLIT_PTE_PTLOCKS
option from patch #2 -- but enforcing it closer to the code that actually
implements it feels a bit nicer for documentation purposes, and there
is no need to actually disable it because it should always be disabled
(!SMP).

Did a bunch of cross-compilations to make sure that split PTE/PMD
PT locks are still getting used where we would expect them.

[1] https://lkml.kernel.org/r/20240725183955.2268884-1-david@redhat.com

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Peter Xu <peterx@redhat.com>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Christian Brauner <brauner@kernel.org>

David Hildenbrand (3):
  mm: turn USE_SPLIT_PTE_PTLOCKS / USE_SPLIT_PTE_PTLOCKS into Kconfig
    options
  mm/hugetlb: enforce that PMD PT sharing has split PMD PT locks
  powerpc/8xx: document and enforce that split PT locks are not used

 arch/arm/mm/fault-armv.c      |  6 +++---
 arch/powerpc/mm/pgtable.c     |  6 ++++++
 arch/x86/xen/mmu_pv.c         |  7 ++++---
 fs/Kconfig                    |  4 ++++
 include/linux/hugetlb.h       |  5 ++---
 include/linux/mm.h            |  8 ++++----
 include/linux/mm_types.h      |  2 +-
 include/linux/mm_types_task.h |  3 ---
 kernel/fork.c                 |  4 ++--
 mm/Kconfig                    | 18 +++++++++++-------
 mm/hugetlb.c                  |  8 ++++----
 mm/memory.c                   |  2 +-
 12 files changed, 42 insertions(+), 31 deletions(-)

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:08:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:08:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765456.1176047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMY7-0000Jv-QT; Fri, 26 Jul 2024 15:08:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765456.1176047; Fri, 26 Jul 2024 15:08:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMY7-0000Jo-MB; Fri, 26 Jul 2024 15:08:03 +0000
Received: by outflank-mailman (input) for mailman id 765456;
 Fri, 26 Jul 2024 15:08:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=aepa=O2=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1sXMY6-0008Tx-Ik
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:08:02 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d965cb0a-4b60-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:08:01 +0200 (CEST)
Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-450-UZOl2F6gMmGTdFJuxLRNgg-1; Fri,
 26 Jul 2024 11:07:54 -0400
Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15])
 (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 mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 911FC1956046; Fri, 26 Jul 2024 15:07:50 +0000 (UTC)
Received: from t14s.redhat.com (unknown [10.39.193.153])
 by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 70DC71955D4C; Fri, 26 Jul 2024 15:07:42 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d965cb0a-4b60-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1722006480;
	h=from:from:reply-to:subject:subject: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=RMo8fPcevHXuY+AOXboYttXTm4mmJMhIiWopBrN6CAw=;
	b=FPW20khXG9T3eoYEy/yCA/PyIfmOPys3BRE9H6f1Id3cuj51zA6W8+1k84lWLIcHxnuZWL
	KM6V+VTKXdscOaXwue8V0e5vWt4WTSqU11FLxGXGJyG2zIXu3rFJbyZjf90vIbMLi+mVeY
	1Z0I7bqpbC42kEcovWdOCFFeEowZzAE=
X-MC-Unique: UZOl2F6gMmGTdFJuxLRNgg-1
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	linux-arm-kernel@lists.infradead.org,
	x86@kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Oscar Salvador <osalvador@suse.de>,
	Peter Xu <peterx@redhat.com>,
	Muchun Song <muchun.song@linux.dev>,
	Russell King <linux@armlinux.org.uk>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	"Naveen N. Rao" <naveen.n.rao@linux.ibm.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>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>
Subject: [PATCH v1 1/3] mm: turn USE_SPLIT_PTE_PTLOCKS / USE_SPLIT_PTE_PTLOCKS into Kconfig options
Date: Fri, 26 Jul 2024 17:07:26 +0200
Message-ID: <20240726150728.3159964-2-david@redhat.com>
In-Reply-To: <20240726150728.3159964-1-david@redhat.com>
References: <20240726150728.3159964-1-david@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15

Let's clean that up a bit and prepare for depending on
CONFIG_SPLIT_PMD_PTLOCKS in other Kconfig options.

More cleanups would be reasonable (like the arch-specific "depends on"
for CONFIG_SPLIT_PTE_PTLOCKS), but we'll leave that for another day.

Signed-off-by: David Hildenbrand <david@redhat.com>
---
 arch/arm/mm/fault-armv.c      |  6 +++---
 arch/x86/xen/mmu_pv.c         |  7 ++++---
 include/linux/mm.h            |  8 ++++----
 include/linux/mm_types.h      |  2 +-
 include/linux/mm_types_task.h |  3 ---
 kernel/fork.c                 |  4 ++--
 mm/Kconfig                    | 18 +++++++++++-------
 mm/memory.c                   |  2 +-
 8 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c
index 2286c2ea60ec4..831793cd6ff94 100644
--- a/arch/arm/mm/fault-armv.c
+++ b/arch/arm/mm/fault-armv.c
@@ -61,7 +61,7 @@ static int do_adjust_pte(struct vm_area_struct *vma, unsigned long address,
 	return ret;
 }
 
-#if USE_SPLIT_PTE_PTLOCKS
+#if defined(CONFIG_SPLIT_PTE_PTLOCKS)
 /*
  * If we are using split PTE locks, then we need to take the page
  * lock here.  Otherwise we are using shared mm->page_table_lock
@@ -80,10 +80,10 @@ static inline void do_pte_unlock(spinlock_t *ptl)
 {
 	spin_unlock(ptl);
 }
-#else /* !USE_SPLIT_PTE_PTLOCKS */
+#else /* !defined(CONFIG_SPLIT_PTE_PTLOCKS) */
 static inline void do_pte_lock(spinlock_t *ptl) {}
 static inline void do_pte_unlock(spinlock_t *ptl) {}
-#endif /* USE_SPLIT_PTE_PTLOCKS */
+#endif /* defined(CONFIG_SPLIT_PTE_PTLOCKS) */
 
 static int adjust_pte(struct vm_area_struct *vma, unsigned long address,
 	unsigned long pfn)
diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index f1ce39d6d32cb..f4a316894bbb4 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -665,7 +665,7 @@ static spinlock_t *xen_pte_lock(struct page *page, struct mm_struct *mm)
 {
 	spinlock_t *ptl = NULL;
 
-#if USE_SPLIT_PTE_PTLOCKS
+#if defined(CONFIG_SPLIT_PTE_PTLOCKS)
 	ptl = ptlock_ptr(page_ptdesc(page));
 	spin_lock_nest_lock(ptl, &mm->page_table_lock);
 #endif
@@ -1553,7 +1553,8 @@ static inline void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn,
 
 		__set_pfn_prot(pfn, PAGE_KERNEL_RO);
 
-		if (level == PT_PTE && USE_SPLIT_PTE_PTLOCKS && !pinned)
+		if (level == PT_PTE && IS_ENABLED(CONFIG_SPLIT_PTE_PTLOCKS) &&
+		    !pinned)
 			__pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
 
 		xen_mc_issue(XEN_LAZY_MMU);
@@ -1581,7 +1582,7 @@ static inline void xen_release_ptpage(unsigned long pfn, unsigned level)
 	if (pinned) {
 		xen_mc_batch();
 
-		if (level == PT_PTE && USE_SPLIT_PTE_PTLOCKS)
+		if (level == PT_PTE && IS_ENABLED(CONFIG_SPLIT_PTE_PTLOCKS))
 			__pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, pfn);
 
 		__set_pfn_prot(pfn, PAGE_KERNEL);
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 0472a5090b180..dff43101572ec 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -2843,7 +2843,7 @@ static inline void pagetable_free(struct ptdesc *pt)
 	__free_pages(page, compound_order(page));
 }
 
-#if USE_SPLIT_PTE_PTLOCKS
+#if defined(CONFIG_SPLIT_PTE_PTLOCKS)
 #if ALLOC_SPLIT_PTLOCKS
 void __init ptlock_cache_init(void);
 bool ptlock_alloc(struct ptdesc *ptdesc);
@@ -2895,7 +2895,7 @@ static inline bool ptlock_init(struct ptdesc *ptdesc)
 	return true;
 }
 
-#else	/* !USE_SPLIT_PTE_PTLOCKS */
+#else	/* !defined(CONFIG_SPLIT_PTE_PTLOCKS) */
 /*
  * We use mm->page_table_lock to guard all pagetable pages of the mm.
  */
@@ -2906,7 +2906,7 @@ static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pte_t *pte)
 static inline void ptlock_cache_init(void) {}
 static inline bool ptlock_init(struct ptdesc *ptdesc) { return true; }
 static inline void ptlock_free(struct ptdesc *ptdesc) {}
-#endif /* USE_SPLIT_PTE_PTLOCKS */
+#endif /* defined(CONFIG_SPLIT_PTE_PTLOCKS) */
 
 static inline bool pagetable_pte_ctor(struct ptdesc *ptdesc)
 {
@@ -2966,7 +2966,7 @@ pte_t *pte_offset_map_nolock(struct mm_struct *mm, pmd_t *pmd,
 	((unlikely(pmd_none(*(pmd))) && __pte_alloc_kernel(pmd))? \
 		NULL: pte_offset_kernel(pmd, address))
 
-#if USE_SPLIT_PMD_PTLOCKS
+#if defined(CONFIG_SPLIT_PMD_PTLOCKS)
 
 static inline struct page *pmd_pgtable_page(pmd_t *pmd)
 {
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 4854249792545..165c58b12ccc9 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -947,7 +947,7 @@ struct mm_struct {
 #ifdef CONFIG_MMU_NOTIFIER
 		struct mmu_notifier_subscriptions *notifier_subscriptions;
 #endif
-#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
+#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !defined(CONFIG_SPLIT_PMD_PTLOCKS)
 		pgtable_t pmd_huge_pte; /* protected by page_table_lock */
 #endif
 #ifdef CONFIG_NUMA_BALANCING
diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h
index a2f6179b672b8..bff5706b76e14 100644
--- a/include/linux/mm_types_task.h
+++ b/include/linux/mm_types_task.h
@@ -16,9 +16,6 @@
 #include <asm/tlbbatch.h>
 #endif
 
-#define USE_SPLIT_PTE_PTLOCKS	(NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS)
-#define USE_SPLIT_PMD_PTLOCKS	(USE_SPLIT_PTE_PTLOCKS && \
-		IS_ENABLED(CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK))
 #define ALLOC_SPLIT_PTLOCKS	(SPINLOCK_SIZE > BITS_PER_LONG/8)
 
 /*
diff --git a/kernel/fork.c b/kernel/fork.c
index a8362c26ebcb0..216ce9ba4f4e6 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -832,7 +832,7 @@ static void check_mm(struct mm_struct *mm)
 		pr_alert("BUG: non-zero pgtables_bytes on freeing mm: %ld\n",
 				mm_pgtables_bytes(mm));
 
-#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
+#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !defined(CONFIG_SPLIT_PMD_PTLOCKS)
 	VM_BUG_ON_MM(mm->pmd_huge_pte, mm);
 #endif
 }
@@ -1276,7 +1276,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p,
 	RCU_INIT_POINTER(mm->exe_file, NULL);
 	mmu_notifier_subscriptions_init(mm);
 	init_tlb_flush_pending(mm);
-#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
+#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !defined(CONFIG_SPLIT_PMD_PTLOCKS)
 	mm->pmd_huge_pte = NULL;
 #endif
 	mm_init_uprobes_state(mm);
diff --git a/mm/Kconfig b/mm/Kconfig
index b72e7d040f789..7b716ac802726 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -585,17 +585,21 @@ config ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE
 # at the same time (e.g. copy_page_range()).
 # DEBUG_SPINLOCK and DEBUG_LOCK_ALLOC spinlock_t also enlarge struct page.
 #
-config SPLIT_PTLOCK_CPUS
-	int
-	default "999999" if !MMU
-	default "999999" if ARM && !CPU_CACHE_VIPT
-	default "999999" if PARISC && !PA20
-	default "999999" if SPARC32
-	default "4"
+config SPLIT_PTE_PTLOCKS
+	def_bool y
+	depends on MMU
+	depends on NR_CPUS >= 4
+	depends on !ARM || CPU_CACHE_VIPT
+	depends on !PARISC || PA20
+	depends on !SPARC32
 
 config ARCH_ENABLE_SPLIT_PMD_PTLOCK
 	bool
 
+config SPLIT_PMD_PTLOCKS
+	def_bool y
+	depends on SPLIT_PTE_PTLOCKS && ARCH_ENABLE_SPLIT_PMD_PTLOCK
+
 #
 # support for memory balloon
 config MEMORY_BALLOON
diff --git a/mm/memory.c b/mm/memory.c
index 833d2cad6eb29..714589582fe15 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -6559,7 +6559,7 @@ long copy_folio_from_user(struct folio *dst_folio,
 }
 #endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */
 
-#if USE_SPLIT_PTE_PTLOCKS && ALLOC_SPLIT_PTLOCKS
+#if defined(CONFIG_SPLIT_PTE_PTLOCKS) && ALLOC_SPLIT_PTLOCKS
 
 static struct kmem_cache *page_ptl_cachep;
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:08:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:08:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765458.1176057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMYK-0000jG-15; Fri, 26 Jul 2024 15:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765458.1176057; Fri, 26 Jul 2024 15: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 1sXMYJ-0000j9-Tm; Fri, 26 Jul 2024 15:08:15 +0000
Received: by outflank-mailman (input) for mailman id 765458;
 Fri, 26 Jul 2024 15: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=aepa=O2=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1sXMYI-0000fu-9k
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:08:14 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df4411a3-4b60-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:08:11 +0200 (CEST)
Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-481-CIqENtZwNcGlPB5wTz9pqg-1; Fri,
 26 Jul 2024 11:08:04 -0400
Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15])
 (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 mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 336DD1955D50; Fri, 26 Jul 2024 15:08:00 +0000 (UTC)
Received: from t14s.redhat.com (unknown [10.39.193.153])
 by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id D50641955D45; Fri, 26 Jul 2024 15:07: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: df4411a3-4b60-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1722006490;
	h=from:from:reply-to:subject:subject: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=gclXSPT2RuzrPlofvNqS2CiD4N2Pif5SxTyxuMydzCs=;
	b=ekoM1XeEGewFpWmvKd8XUGfCK0Fm3t2kXd2sCJxEgiWf9EwoZbDjb0vAdkqMzbTaPy8eGP
	a3YwMljDWYrajc8Yum1Uotsj6odyaJXmMFbXpzC0yA2c6A1/XS5BVflhrCNzIiEXC4eXYf
	yxw5jwGCNZRlYzBs4rv8GQMTv/C5tZA=
X-MC-Unique: CIqENtZwNcGlPB5wTz9pqg-1
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	linux-arm-kernel@lists.infradead.org,
	x86@kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Oscar Salvador <osalvador@suse.de>,
	Peter Xu <peterx@redhat.com>,
	Muchun Song <muchun.song@linux.dev>,
	Russell King <linux@armlinux.org.uk>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	"Naveen N. Rao" <naveen.n.rao@linux.ibm.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>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>
Subject: [PATCH v1 2/3] mm/hugetlb: enforce that PMD PT sharing has split PMD PT locks
Date: Fri, 26 Jul 2024 17:07:27 +0200
Message-ID: <20240726150728.3159964-3-david@redhat.com>
In-Reply-To: <20240726150728.3159964-1-david@redhat.com>
References: <20240726150728.3159964-1-david@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15

Sharing page tables between processes but falling back to per-MM page
table locks cannot possibly work.

So, let's make sure that we do have split PMD locks by adding a new
Kconfig option and letting that depend on CONFIG_SPLIT_PMD_PTLOCKS.

Signed-off-by: David Hildenbrand <david@redhat.com>
---
 fs/Kconfig              | 4 ++++
 include/linux/hugetlb.h | 5 ++---
 mm/hugetlb.c            | 8 ++++----
 3 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/fs/Kconfig b/fs/Kconfig
index a46b0cbc4d8f6..0e4efec1d92e6 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -288,6 +288,10 @@ config HUGETLB_PAGE_OPTIMIZE_VMEMMAP
 	depends on ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP
 	depends on SPARSEMEM_VMEMMAP
 
+config HUGETLB_PMD_PAGE_TABLE_SHARING
+	def_bool HUGETLB_PAGE
+	depends on ARCH_WANT_HUGE_PMD_SHARE && SPLIT_PMD_PTLOCKS
+
 config ARCH_HAS_GIGANTIC_PAGE
 	bool
 
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
index da800e56fe590..4d2f3224ff027 100644
--- a/include/linux/hugetlb.h
+++ b/include/linux/hugetlb.h
@@ -1243,7 +1243,7 @@ static inline __init void hugetlb_cma_reserve(int order)
 }
 #endif
 
-#ifdef CONFIG_ARCH_WANT_HUGE_PMD_SHARE
+#ifdef CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING
 static inline bool hugetlb_pmd_shared(pte_t *pte)
 {
 	return page_count(virt_to_page(pte)) > 1;
@@ -1279,8 +1279,7 @@ bool __vma_private_lock(struct vm_area_struct *vma);
 static inline pte_t *
 hugetlb_walk(struct vm_area_struct *vma, unsigned long addr, unsigned long sz)
 {
-#if defined(CONFIG_HUGETLB_PAGE) && \
-	defined(CONFIG_ARCH_WANT_HUGE_PMD_SHARE) && defined(CONFIG_LOCKDEP)
+#if defined(CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING) && defined(CONFIG_LOCKDEP)
 	struct hugetlb_vma_lock *vma_lock = vma->vm_private_data;
 
 	/*
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 0858a18272073..c4d94e122c41f 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -7211,7 +7211,7 @@ long hugetlb_unreserve_pages(struct inode *inode, long start, long end,
 	return 0;
 }
 
-#ifdef CONFIG_ARCH_WANT_HUGE_PMD_SHARE
+#ifdef CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING
 static unsigned long page_table_shareable(struct vm_area_struct *svma,
 				struct vm_area_struct *vma,
 				unsigned long addr, pgoff_t idx)
@@ -7373,7 +7373,7 @@ int huge_pmd_unshare(struct mm_struct *mm, struct vm_area_struct *vma,
 	return 1;
 }
 
-#else /* !CONFIG_ARCH_WANT_HUGE_PMD_SHARE */
+#else /* !CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING */
 
 pte_t *huge_pmd_share(struct mm_struct *mm, struct vm_area_struct *vma,
 		      unsigned long addr, pud_t *pud)
@@ -7396,7 +7396,7 @@ bool want_pmd_share(struct vm_area_struct *vma, unsigned long addr)
 {
 	return false;
 }
-#endif /* CONFIG_ARCH_WANT_HUGE_PMD_SHARE */
+#endif /* CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING */
 
 #ifdef CONFIG_ARCH_WANT_GENERAL_HUGETLB
 pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma,
@@ -7494,7 +7494,7 @@ unsigned long hugetlb_mask_last_page(struct hstate *h)
 /* See description above.  Architectures can provide their own version. */
 __weak unsigned long hugetlb_mask_last_page(struct hstate *h)
 {
-#ifdef CONFIG_ARCH_WANT_HUGE_PMD_SHARE
+#ifdef CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING
 	if (huge_page_size(h) == PMD_SIZE)
 		return PUD_SIZE - PMD_SIZE;
 #endif
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:08:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:08:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765461.1176067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMYQ-00014E-7h; Fri, 26 Jul 2024 15:08:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765461.1176067; Fri, 26 Jul 2024 15:08:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMYQ-000147-4t; Fri, 26 Jul 2024 15:08:22 +0000
Received: by outflank-mailman (input) for mailman id 765461;
 Fri, 26 Jul 2024 15:08:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=aepa=O2=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1sXMYO-0000fu-II
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:08:20 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e36bff77-4b60-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:08:18 +0200 (CEST)
Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-672-HOHS8bHhPF-HxdWbNQ7urA-1; Fri,
 26 Jul 2024 11:08:13 -0400
Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15])
 (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 mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 1CD891955BF7; Fri, 26 Jul 2024 15:08:10 +0000 (UTC)
Received: from t14s.redhat.com (unknown [10.39.193.153])
 by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id BB2841955D48; Fri, 26 Jul 2024 15:08: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: e36bff77-4b60-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1722006497;
	h=from:from:reply-to:subject:subject: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=h2hZ5iaP0GGncGDVruB29gu4r9/BL7FMsu+FThy8pbQ=;
	b=bs1/SY/1hSc8+N37SFiXxWJA7U7izclRcs2snzd9c3tRNJnydN//CAvvU9t57pGjilrJzI
	idKSdIcZPHeIJMd9RomL64ojpKbBNWxj1g9hQSU582Wmb8PwrIKL5aftO0zDjpWmc/p96Q
	vrfukLBA0Nqb2cFQm5ZN1lXiluQ6hx4=
X-MC-Unique: HOHS8bHhPF-HxdWbNQ7urA-1
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	linux-arm-kernel@lists.infradead.org,
	x86@kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Oscar Salvador <osalvador@suse.de>,
	Peter Xu <peterx@redhat.com>,
	Muchun Song <muchun.song@linux.dev>,
	Russell King <linux@armlinux.org.uk>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	"Naveen N. Rao" <naveen.n.rao@linux.ibm.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>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>
Subject: [PATCH v1 3/3] powerpc/8xx: document and enforce that split PT locks are not used
Date: Fri, 26 Jul 2024 17:07:28 +0200
Message-ID: <20240726150728.3159964-4-david@redhat.com>
In-Reply-To: <20240726150728.3159964-1-david@redhat.com>
References: <20240726150728.3159964-1-david@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15

Right now, we cannot have split PT locks because 8xx does not support
SMP.

But for the sake of documentation *why* 8xx is fine regarding what
we documented in huge_pte_lockptr(), let's just add code to enforce it
at the same time as documenting it.

This should also make everybody who wants to copy from the 8xx approach of
supporting such unusual ways of mapping hugetlb folios aware that it gets
tricky once multiple page tables are involved.

Signed-off-by: David Hildenbrand <david@redhat.com>
---
 arch/powerpc/mm/pgtable.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index ab0656115424f..7316396e452d8 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -297,6 +297,12 @@ int huge_ptep_set_access_flags(struct vm_area_struct *vma,
 }
 
 #if defined(CONFIG_PPC_8xx)
+
+#if defined(CONFIG_SPLIT_PTE_PTLOCKS) || defined(CONFIG_SPLIT_PMD_PTLOCKS)
+/* We need the same lock to protect the PMD table and the two PTE tables. */
+#error "8M hugetlb folios are incompatible with split page table locks"
+#endif
+
 static void __set_huge_pte_at(pmd_t *pmd, pte_t *ptep, pte_basic_t val)
 {
 	pte_basic_t *entry = (pte_basic_t *)ptep;
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:11:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:11:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765480.1176077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMbd-00037E-SS; Fri, 26 Jul 2024 15:11:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765480.1176077; Fri, 26 Jul 2024 15:11: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 1sXMbd-000377-Pm; Fri, 26 Jul 2024 15:11:41 +0000
Received: by outflank-mailman (input) for mailman id 765480;
 Fri, 26 Jul 2024 15: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=t3f9=O2=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1sXMbd-000370-D1
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:11:41 +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 5bf50f2e-4b61-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:11:40 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5a20de39cfbso2733168a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:11:40 -0700 (PDT)
Received: from [192.168.10.153] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac63590d76sm2066253a12.24.2024.07.26.08.11.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Jul 2024 08: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: 5bf50f2e-4b61-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722006699; x=1722611499; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:content-language
         :references:cc:to:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=PtN7YD4vWIa/pIMpNQVWBTwEYFjOjLmOFYvTvqHLV3w=;
        b=N/YL8Jyawr3EUhLRbQA038/3HLI/Fp8qCVGOmrwPExT1Rr3QDZaNVp7g+TLDPHJghv
         ME3OQtVHAClafcKyxMlokWz/gSUhgT5TO5bsVhjRIoGOzfzH7Lp1LnRgFooBeelDz/cX
         WVU4/tM5ETwJDsfxE15o+LTHTjHdsvWshrGxJtuoMVVI4YRuqeKmcKqANrIiAmORgZMM
         oq5ULjMWFIDe28+CFHWCUYCo4PZtzZXhpxh96aMmKKKxBVsiAAHrXWtMT+L5w3uNZZfy
         LWBC+f/zFomDAmrTOBGCiPnz3PMVNm5yagDKckbAjIFeXiFDVcEL/wUV1g75KrbUWcCN
         Ayuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722006699; x=1722611499;
        h=content-transfer-encoding:in-reply-to:organization:content-language
         :references:cc:to:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PtN7YD4vWIa/pIMpNQVWBTwEYFjOjLmOFYvTvqHLV3w=;
        b=ezugnZlADjenAGF/snlHkT7dsJpRDJTQCmtFJ7Pp3znazFfsuu7luhGkSMUOcsQlME
         20JZ7qWBMB6zqMqk+lZ5U3najZh1hqKRhgw2IXGawGZHzDOAh2j9JRbun3h/L30mJe2E
         +XJCiwjhZ9suE+6e8MUUygywTViQ+2HYs3Js08DfzVzUZnZTNnqcXXofKKs/FVGNv/oA
         HQ+SYHlxani+fI2M0hxgYmhDUzjMFMu5yIsufNIOlRXjC3DvHBsqppH/RpDinL1G7dnt
         5sXE0VnK6u38iZjKDlAu484nZNkbTO6VMfVBcy6YNuxtokdk3okxHBCsdh4KpUyVf20C
         qRrw==
X-Forwarded-Encrypted: i=1; AJvYcCX3jHKo1EVEUY0xUc613aBvt7okjQTK0dWgKcjBBk1ReTbyx+e0xzap+xBgkWnWFOxmrIs24XjZJlLdhKx/I9TLeo2cU1zK8Z1yRj3Cxmo=
X-Gm-Message-State: AOJu0YzZ7CIfZRc7DuJ8TRovDXxyFVs54f66tpmSh+uCACCncgbpN8FX
	Q+YTIUc0egS+dACTqVuyekRelSnGIW271VnwkKTMd7YVG+3y0DJJ
X-Google-Smtp-Source: AGHT+IFnKkJp/1waKWTbyIEMKJ3SRzzqtcZbM1rgXA0+cPnII/2Wg6EhA5FLBrYKYeYy3EOqA5PjZA==
X-Received: by 2002:a50:d7d3:0:b0:57c:9d54:67db with SMTP id 4fb4d7f45d1cf-5ac6349a973mr4112535a12.9.1722006699174;
        Fri, 26 Jul 2024 08:11:39 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <e757eaeb-a10f-423e-a914-ec1d77ee0491@xen.org>
Date: Fri, 26 Jul 2024 16:11:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH] x86/viridian: Clarify some viridian logging strings
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <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>
References: <20240726145200.1991-1-alejandro.vallejo@cloud.com>
Content-Language: en-US
Organization: Xen Project
In-Reply-To: <20240726145200.1991-1-alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 26/07/2024 15:52, Alejandro Vallejo wrote:
> It's sadically misleading to show an error without letters and expect
> the dmesg reader to understand it's in hex.

That depends on who's doing the reading.

> The patch adds a 0x prefix
> to all hex numbers that don't already have it.
> 
> On the one instance in which a boolean is printed as an integer, print
> it as a decimal integer instead so it's 0/1 in the common case and not
> misleading if it's ever not just that due to a bug.
> 
> While at it, rename VIRIDIAN CRASH to VIRIDIAN GUEST_CRASH. Every member
> of a support team that looks at the message systematically believes
> "viridian" crashed,

... which suggests they need educating as to what 'viridian' is (or was).

> which is absolutely not what goes on. It's the guest
> asking the hypervisor for a sudden shutdown because it crashed, and
> stating why.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> ---
> Still going through its Gitlab pipeline
> 
> ---
>   xen/arch/x86/hvm/viridian/synic.c    | 2 +-
>   xen/arch/x86/hvm/viridian/viridian.c | 9 +++++----
>   2 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/viridian/synic.c b/xen/arch/x86/hvm/viridian/synic.c
> index 3375e55e95ca..c3dc573b003d 100644
> --- a/xen/arch/x86/hvm/viridian/synic.c
> +++ b/xen/arch/x86/hvm/viridian/synic.c
> @@ -172,7 +172,7 @@ int viridian_synic_wrmsr(struct vcpu *v, uint32_t idx, uint64_t val)
>           vector = new.vector;
>           vv->vector_to_sintx[vector] = sintx;
>   
> -        printk(XENLOG_G_INFO "%pv: VIRIDIAN SINT%u: vector: %x\n", v, sintx,
> +        printk(XENLOG_G_INFO "%pv: VIRIDIAN SINT%u: vector: %#x\n", v, sintx,
>                  vector);
>   
>           *vs = new;
> diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c
> index 0496c52ed5a2..21480d9ee700 100644
> --- a/xen/arch/x86/hvm/viridian/viridian.c
> +++ b/xen/arch/x86/hvm/viridian/viridian.c
> @@ -253,7 +253,7 @@ static void dump_guest_os_id(const struct domain *d)
>       goi = &d->arch.hvm.viridian->guest_os_id;
>   
>       printk(XENLOG_G_INFO
> -           "d%d: VIRIDIAN GUEST_OS_ID: vendor: %x os: %x major: %x minor: %x sp: %x build: %x\n",
> +           "d%d: VIRIDIAN GUEST_OS_ID: vendor: %#x os: %#x major: %#x minor: %#x sp: %#x build: %#x\n",
>              d->domain_id, goi->vendor, goi->os, goi->major, goi->minor,
>              goi->service_pack, goi->build_number);
>   }
> @@ -264,7 +264,7 @@ static void dump_hypercall(const struct domain *d)
>   
>       hg = &d->arch.hvm.viridian->hypercall_gpa;
>   
> -    printk(XENLOG_G_INFO "d%d: VIRIDIAN HYPERCALL: enabled: %x pfn: %lx\n",
> +    printk(XENLOG_G_INFO "d%d: VIRIDIAN HYPERCALL: enabled: %u pfn: %#lx\n",
>              d->domain_id,
>              hg->enabled, (unsigned long)hg->pfn);
>   }
> @@ -372,7 +372,8 @@ int guest_wrmsr_viridian(struct vcpu *v, uint32_t idx, uint64_t val)
>           d->shutdown_code = SHUTDOWN_crash;
>           spin_unlock(&d->shutdown_lock);
>   
> -        gprintk(XENLOG_WARNING, "VIRIDIAN CRASH: %lx %lx %lx %lx %lx\n",
> +        gprintk(XENLOG_WARNING,
> +                "VIRIDIAN GUEST_CRASH: %#lx %#lx %#lx %#lx %#lx\n",

Honestly this change should be unnecessary, but since this is all 
cosmetic...

Reviewed-by: Paul Durrant <paul@xen.org>

>                   vv->crash_param[0], vv->crash_param[1], vv->crash_param[2],
>                   vv->crash_param[3], vv->crash_param[4]);
>           break;
> @@ -1056,7 +1057,7 @@ void viridian_dump_guest_page(const struct vcpu *v, const char *name,
>       if ( !vp->msr.enabled )
>           return;
>   
> -    printk(XENLOG_G_INFO "%pv: VIRIDIAN %s: pfn: %lx\n",
> +    printk(XENLOG_G_INFO "%pv: VIRIDIAN %s: pfn: %#lx\n",
>              v, name, (unsigned long)vp->msr.pfn);
>   }
>   



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:15:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:15:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765491.1176087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMfe-0003iH-Di; Fri, 26 Jul 2024 15:15:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765491.1176087; Fri, 26 Jul 2024 15:15:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMfe-0003iA-AM; Fri, 26 Jul 2024 15:15:50 +0000
Received: by outflank-mailman (input) for mailman id 765491;
 Fri, 26 Jul 2024 15:15:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXMfd-0003hk-2M; Fri, 26 Jul 2024 15:15:49 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXMfc-0001Nk-OK; Fri, 26 Jul 2024 15:15:48 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXMfc-0002Nl-F1; Fri, 26 Jul 2024 15:15:48 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXMfc-0005w2-Ea; Fri, 26 Jul 2024 15:15: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=lSR5Gm5vMxuzK6YhUV/E57gOhcTLTBQ5qeZ75wuacUU=; b=nMsa2R4GVSM2qJomlzPdjTJsfO
	a3GUqWbY6w8yDLCneo/mXspGxd4YHeyTvOvMZnWHj/LPmLOtcBh5rHPhgwMnL4FwjY7XPNtZhU5jc
	8V68F4dyX9Cw60GJn0KIP4phWsAXyiyzcaaHaamOW6fOVv/B/CZdijrldsMEazJvpoEg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187010-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 187010: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl-arndale:xen-boot:fail:heisenbug
    xen-unstable:test-amd64-amd64-qemuu-freebsd11-amd64:guest-start.2:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
X-Osstest-Versions-That:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Jul 2024 15:15:48 +0000

flight 187010 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187010/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-arndale   8 xen-boot                   fail pass in 187001
 test-amd64-amd64-qemuu-freebsd11-amd64 22 guest-start.2    fail pass in 187001

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-arndale 15 migrate-support-check fail in 187001 never pass
 test-armhf-armhf-xl-arndale 16 saverestore-support-check fail in 187001 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 187001
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 187001
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 187001
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 187001
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 187001
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 187001
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847
baseline version:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847

Last test of basis   187010  2024-07-26 01:53:55 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       fail    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:18:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:18:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765500.1176096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMiI-0004ub-R7; Fri, 26 Jul 2024 15:18:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765500.1176096; Fri, 26 Jul 2024 15:18:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMiI-0004uU-Of; Fri, 26 Jul 2024 15:18:34 +0000
Received: by outflank-mailman (input) for mailman id 765500;
 Fri, 26 Jul 2024 15:18: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMiH-0004uO-DY
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:18:33 +0000
Received: from mail-ot1-x332.google.com (mail-ot1-x332.google.com
 [2607:f8b0:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 511daa38-4b62-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:18:32 +0200 (CEST)
Received: by mail-ot1-x332.google.com with SMTP id
 46e09a7af769-70446231242so654159a34.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:18:32 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f8ddd7esm17581416d6.15.2024.07.26.08.18.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08: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: 511daa38-4b62-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007110; x=1722611910; 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=z28BwUqlGfuCYZiEq7Wrt7AnHoiKBZZZBXeirgUlkr8=;
        b=TkjC5WtjVwJIs1W7alLUkl/36gyEom2diQomGGT504luUbUtVQYXggSFuH5fR7BM6x
         KPHalfheE0dd0RZXN+j0TM4zvKXmRe0ICssUAQSyiAHH5kDuC/eLmmL3TcuvuzO6GK9Z
         TUxFRcXpyXpJ/+WGdHuCox0b3Ja7sknucziy0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007110; x=1722611910;
        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=z28BwUqlGfuCYZiEq7Wrt7AnHoiKBZZZBXeirgUlkr8=;
        b=XKtDfA2In68QH9cPckx9v5uJioEMzADk6/uMYYy3xhaUfRjTOA007Pb8X0DZmlayUs
         oZo7Lm3egIwPKbyMvLDdRaSSfx8Vstsdv20N6jHUb1rJ5qShHT15ZDHcHoPesZIoOnsR
         5XOcrb2oe5s0J6XrQGy84/W4YmhrRPSF0Uew9qebYzCOI4Dk37ZX48janS809XKmR0mx
         bYpHRfa8tHsF1sLrtaICEL8FcZ3F84uFxu6+iAB2Stb/pjjlbWDLUTa5H6EIFiY8CRTm
         cutLdMFCgerBQoyMdvypgAK4nzyE8jDNxYsBqv4FKVNGEJj3uOBYe0thU4tIZitSo11r
         oPQQ==
X-Forwarded-Encrypted: i=1; AJvYcCW2rkORWTe7TIAjBsUT6XQXquT5slmOS3uAoNT/e/Evm5kpD03gfCb8EleLIU6dZD7UoDN8n7AubAk7/8HC8OHLMLD8kf5OoxDtv80m39I=
X-Gm-Message-State: AOJu0Yy8U2APONmVSkppmyRg2asLQdRGyFTxfJHlvvhE3oNYlO0s6svg
	TuOzZWgDp7jix2VJuEwNWdAWk6IvnqJlSI9Wzjh00zHeGtingO0tSvZ/5OR8yxQ=
X-Google-Smtp-Source: AGHT+IH+SmaLK8ebPDRx7s6q65eASz/4C8sElevQkt8lgTVvHEvUGnaQMFd9PuVAinJB67q/ZTIDRw==
X-Received: by 2002:a05:6830:6310:b0:709:3462:a4b6 with SMTP id 46e09a7af769-7093462a85bmr7379342a34.9.1722007110460;
        Fri, 26 Jul 2024 08:18:30 -0700 (PDT)
Date: Fri, 26 Jul 2024 17:18:28 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
Message-ID: <ZqO-RFZHdCrIuRok@macbook>
References: <20240725105634.16825-1-roger.pau@citrix.com>
 <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com>
 <ZqJnPvL1ilDDzM9V@macbook>
 <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com>
 <ZqNQwM3U8S5q-kg5@macbook>
 <0f6b446a-0dda-4e59-807b-c0c0bcdf78bf@suse.com>
 <ZqNVs97wexqd5trA@macbook>
 <4e2117f9-2a68-4032-9d1a-09965f97085f@suse.com>
 <D2ZJA8MODIO2.9JHFXZO8LW7Z@cloud.com>
 <D2ZJFUKTDIAL.2OE4EHLK6GGIB@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <D2ZJFUKTDIAL.2OE4EHLK6GGIB@cloud.com>

On Fri, Jul 26, 2024 at 03:25:08PM +0100, Alejandro Vallejo wrote:
> On Fri Jul 26, 2024 at 3:17 PM BST, Alejandro Vallejo wrote:
> > On Fri Jul 26, 2024 at 9:05 AM BST, Jan Beulich wrote:
> > > On 26.07.2024 09:52, Roger Pau Monné wrote:
> > > > On Fri, Jul 26, 2024 at 09:36:15AM +0200, Jan Beulich wrote:
> > > >> On 26.07.2024 09:31, Roger Pau Monné wrote:
> > > >>> On Thu, Jul 25, 2024 at 05:00:22PM +0200, Jan Beulich wrote:
> > > >>>> On 25.07.2024 16:54, Roger Pau Monné wrote:
> > > >>>>> On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote:
> > > >>>>>> On 25.07.2024 12:56, Roger Pau Monne wrote:
> > > >>>>>>> --- a/xen/arch/x86/include/asm/alternative.h
> > > >>>>>>> +++ b/xen/arch/x86/include/asm/alternative.h
> > > >>>>>>> @@ -184,11 +184,11 @@ extern void alternative_branches(void);
> > > >>>>>>>   * https://github.com/llvm/llvm-project/issues/82598
> > > >>>>>>>   */
> > > >>>>>>>  #define ALT_CALL_ARG(arg, n)                                            \
> > > >>>>>>> -    register union {                                                    \
> > > >>>>>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> > > >>>>>>> -        unsigned long r;                                                \
> > > >>>>>>> +    register struct {                                                   \
> > > >>>>>>> +        typeof(arg) e;                                                  \
> > > >>>>>>> +        char pad[sizeof(void *) - sizeof(arg)];                         \
> > > >>>>>>
> > > >>>>>> One thing that occurred to me only after our discussion, and I then forgot
> > > >>>>>> to mention this before you would send a patch: What if sizeof(void *) ==
> > > >>>>>> sizeof(arg)? Zero-sized arrays are explicitly something we're trying to
> > > >>>>>> get rid of.
> > > >>>>>
> > > >>>>> I wondered about this, but I though it was only [] that we were trying
> > > >>>>> to get rid of, not [0].
> > > >>>>
> > > >>>> Sadly (here) it's actually the other way around, aiui.
> > > >>>
> > > >>> The only other option I have in mind is using an oversized array on
> > > >>> the union, like:
> > > >>>
> > > >>> #define ALT_CALL_ARG(arg, n)                                            \
> > > >>>     union {                                                             \
> > > >>>         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)];  \
> > > >>>         unsigned long r;                                                \
> > > >>>     } a ## n ## __  = {                                                 \
> > > >>>         .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> > > >>>     };                                                                  \
> > > >>>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =      \
> > > >>>         a ## n ## __.r
> > > >>
> > > >> Yet that's likely awful code-gen wise?
> > > > 
> > > > Seems OK: https://godbolt.org/z/nsdo5Gs8W
> > >
> > > In which case why not go this route. If the compiler is doing fine with
> > > that, maybe the array dimension expression could be further simplified,
> > > accepting yet more over-sizing? Like "sizeof(void *) / sizeof (arg) + 1"
> > > or even simply "sizeof(void *)"? Suitably commented of course ...
> > >
> > > >> For the time being, can we perhaps
> > > >> just tighten the BUILD_BUG_ON(), as iirc Alejandro had suggested?
> > > > 
> > > > My main concern with tightening the BUILD_BUG_ON() is that then I
> > > > would also like to do so for the GCC one, so that build fails
> > > > uniformly.
> > >
> > > If we were to take that route, then yes, probably should constrain both
> > > (with a suitable comment on the gcc one).
> > >
> > > Jan
> >
> > Yet another way would be to have an intermediate `long` to cast onto. Compilers
> > will optimise away the copy. It ignores the different-type aliasing rules in
> > the C spec, so there's an assumption that we have -fno-strict-aliasing. But I
> > belive we do? Otherwise it should pretty much work on anything.
> >
> > ```
> >   #define ALT_CALL_ARG(arg, n)                                              \
> >       unsigned long __tmp = 0;                                              \
> >       *(typeof(arg) *)&__tmp =                                              \
> >           ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })          \
> >       register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = __tmp; \
> > ```
> >
> > fwiw, clang18 emits identical code compared with the previous godbolt link.
> >
> > Link: https://godbolt.org/z/facd1M9xa
> >
> > Cheers,
> > Alejandro
> 
> Bah. s/b/__tmp/ in line15. Same output though, so the point still stands.

Had to adjust it to:

#define ALT_CALL_ARG(arg, n)                                              \
    unsigned long a ## n ## __ = 0;                                       \
    *(typeof(arg) *)&a ## n ## __ =                                       \
        ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); });         \
    register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = a ## n ## __

So that tmp__ is not defined multiple times for repeated
ALT_CALL_ARG() usages.

Already tried something like this in the past, but it mixes code with
declarations, and that's forbidden in the current C standard that Xen
uses:

./arch/x86/include/asm/hvm/hvm.h:665:5: error: mixing declarations and code is incompatible with standards before C99 [-Werror,-Wdeclaration-after-statement]

The `*(typeof(arg) *)&__tmp = ...` line is considered code, and is
followed by further declarations.  Even if we moved both declarations
ahead of the assigns it would still complain when multiple
ALT_CALL_ARG() instances are used in the same altcall block.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765510.1176127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMus-00005t-H5; Fri, 26 Jul 2024 15:31:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765510.1176127; Fri, 26 Jul 2024 15:31: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 1sXMus-00005k-Dk; Fri, 26 Jul 2024 15:31:34 +0000
Received: by outflank-mailman (input) for mailman id 765510;
 Fri, 26 Jul 2024 15:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMus-00084T-2x
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:34 +0000
Received: from mail-qk1-x730.google.com (mail-qk1-x730.google.com
 [2607:f8b0:4864:20::730])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 225b2650-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:31:32 +0200 (CEST)
Received: by mail-qk1-x730.google.com with SMTP id
 af79cd13be357-7a1dea79e1aso46018885a.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:32 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d73b6030sm184648085a.52.2024.07.26.08.31.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 225b2650-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007891; x=1722612691; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rKymiwpMPZJ5/hzGvo04irbMOh4ckmWGExUi8izxgEY=;
        b=g2CZh8PzJVV6cSccLzcfZao96z+rrxvlhV/jpqKyjIwTYzWn5GNoDkKHugM3d1P8j1
         lrwSyBWFFNxJi8Jpff7C/MrhR5XtaJUe36O5gVmv4+WHywNE0swkG3eHDnrOVOq+lit0
         u5E225yvs1PGMM2skBwlh3CGPKStapi7dFUj4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007891; x=1722612691;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rKymiwpMPZJ5/hzGvo04irbMOh4ckmWGExUi8izxgEY=;
        b=vSdKYiFYkWjuXCI8mzRNXYK1CEZSjuUitWYsH/SyxTIVhnfIOh5H14vJP2cfsBc6jU
         KjIXu6ll/smE4u1LEax5IwHKWOdM08RbIzfEB9p6flTTAzmdMybxOhihOQlwFEHoRTRR
         0LzIRCRj2ELUUadJJGWMWQoRkulQ6Do3dZ55QzAJujmfXFrDi7WdQEeOTWXXSIiLa6U2
         77CD+Xy+7jWC/3sVOmyHwsAY//yAZ/yfM2Ri2V04ow/vrH5IGHZzHJcFpt6Jf7qmQNtj
         L61/C7ka8lZbPSQIE8n16+0rqqpBB31YRO5iorVDyJfoyTbEx+jaZU+Xxt8Whse0AIQr
         W6YA==
X-Gm-Message-State: AOJu0Yz7d048j2LP1tJ34vJ0VJG5C/2ibTLtgthsvBTI5UYbTuGseBja
	iinc3ANkEJIvyj7TB9xBCFnybJcFP+zIOzcxR5//lccavS8h5nZdeNqZhV1y9NeC4n4FNPZjJ94
	G
X-Google-Smtp-Source: AGHT+IEdUO0MI9dsyDOfxgyck3T6p5fTlRG7Ie+Y+ECT2UK0qouUz1Bg+vc3njuND80gxH1JaE/PaQ==
X-Received: by 2002:a05:620a:4013:b0:79f:17af:e360 with SMTP id af79cd13be357-7a1e525e9c4mr11217485a.33.1722007890580;
        Fri, 26 Jul 2024 08:31:30 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 02/22] x86/mm: rename l{1,2,3,4}e_read_atomic()
Date: Fri, 26 Jul 2024 17:21:46 +0200
Message-ID: <20240726152206.28411-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There's no l{1,2,3,4}e_read() implementation, so drop the _atomic suffix from
the read helpers.  This allows unifying the naming with the write helpers,
which are also atomic but don't have the suffix already: l{1,2,3,4}e_write().

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/page.h        | 16 ++++++++--------
 xen/arch/x86/include/asm/x86_64/page.h |  2 --
 xen/arch/x86/mm.c                      | 12 ++++++------
 xen/arch/x86/traps.c                   |  8 ++++----
 4 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/include/asm/page.h b/xen/arch/x86/include/asm/page.h
index 3d20ee507a33..e48571de9332 100644
--- a/xen/arch/x86/include/asm/page.h
+++ b/xen/arch/x86/include/asm/page.h
@@ -16,14 +16,14 @@
 #include <asm/x86_64/page.h>
 
 /* Read a pte atomically from memory. */
-#define l1e_read_atomic(l1ep) \
-    l1e_from_intpte(pte_read_atomic(&l1e_get_intpte(*(l1ep))))
-#define l2e_read_atomic(l2ep) \
-    l2e_from_intpte(pte_read_atomic(&l2e_get_intpte(*(l2ep))))
-#define l3e_read_atomic(l3ep) \
-    l3e_from_intpte(pte_read_atomic(&l3e_get_intpte(*(l3ep))))
-#define l4e_read_atomic(l4ep) \
-    l4e_from_intpte(pte_read_atomic(&l4e_get_intpte(*(l4ep))))
+#define l1e_read(l1ep) \
+    l1e_from_intpte(read_atomic(&l1e_get_intpte(*(l1ep))))
+#define l2e_read(l2ep) \
+    l2e_from_intpte(read_atomic(&l2e_get_intpte(*(l2ep))))
+#define l3e_read(l3ep) \
+    l3e_from_intpte(read_atomic(&l3e_get_intpte(*(l3ep))))
+#define l4e_read(l4ep) \
+    l4e_from_intpte(read_atomic(&l4e_get_intpte(*(l4ep))))
 
 /* Write a pte atomically to memory. */
 #define l1e_write(l1ep, l1e) \
diff --git a/xen/arch/x86/include/asm/x86_64/page.h b/xen/arch/x86/include/asm/x86_64/page.h
index 03fcce61c052..465a70731214 100644
--- a/xen/arch/x86/include/asm/x86_64/page.h
+++ b/xen/arch/x86/include/asm/x86_64/page.h
@@ -69,8 +69,6 @@ typedef l4_pgentry_t root_pgentry_t;
 
 #endif /* !__ASSEMBLY__ */
 
-#define pte_read_atomic(ptep)       read_atomic(ptep)
-
 /* Given a virtual address, get an entry offset into a linear page table. */
 #define l1_linear_offset(_a) (((_a) & VADDR_MASK) >> L1_PAGETABLE_SHIFT)
 #define l2_linear_offset(_a) (((_a) & VADDR_MASK) >> L2_PAGETABLE_SHIFT)
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index fab2de5fae27..6ffacab341ad 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -2147,7 +2147,7 @@ static int mod_l1_entry(l1_pgentry_t *pl1e, l1_pgentry_t nl1e,
                         struct vcpu *pt_vcpu, struct domain *pg_dom)
 {
     bool preserve_ad = (cmd == MMU_PT_UPDATE_PRESERVE_AD);
-    l1_pgentry_t ol1e = l1e_read_atomic(pl1e);
+    l1_pgentry_t ol1e = l1e_read(pl1e);
     struct domain *pt_dom = pt_vcpu->domain;
     int rc = 0;
 
@@ -2270,7 +2270,7 @@ static int mod_l2_entry(l2_pgentry_t *pl2e,
         return -EPERM;
     }
 
-    ol2e = l2e_read_atomic(pl2e);
+    ol2e = l2e_read(pl2e);
 
     if ( l2e_get_flags(nl2e) & _PAGE_PRESENT )
     {
@@ -2332,7 +2332,7 @@ static int mod_l3_entry(l3_pgentry_t *pl3e,
     if ( pgentry_ptr_to_slot(pl3e) >= 3 && is_pv_32bit_domain(d) )
         return -EINVAL;
 
-    ol3e = l3e_read_atomic(pl3e);
+    ol3e = l3e_read(pl3e);
 
     if ( l3e_get_flags(nl3e) & _PAGE_PRESENT )
     {
@@ -2394,7 +2394,7 @@ static int mod_l4_entry(l4_pgentry_t *pl4e,
         return -EINVAL;
     }
 
-    ol4e = l4e_read_atomic(pl4e);
+    ol4e = l4e_read(pl4e);
 
     if ( l4e_get_flags(nl4e) & _PAGE_PRESENT )
     {
@@ -5925,7 +5925,7 @@ void init_or_livepatch modify_xen_mappings_lite(
     while ( v < e )
     {
         l2_pgentry_t *pl2e = &l2_xenmap[l2_table_offset(v)];
-        l2_pgentry_t l2e = l2e_read_atomic(pl2e);
+        l2_pgentry_t l2e = l2e_read(pl2e);
         unsigned int l2f = l2e_get_flags(l2e);
 
         ASSERT(l2f & _PAGE_PRESENT);
@@ -5947,7 +5947,7 @@ void init_or_livepatch modify_xen_mappings_lite(
             while ( v < e )
             {
                 l1_pgentry_t *pl1e = &pl1t[l1_table_offset(v)];
-                l1_pgentry_t l1e = l1e_read_atomic(pl1e);
+                l1_pgentry_t l1e = l1e_read(pl1e);
                 unsigned int l1f = l1e_get_flags(l1e);
 
                 ASSERT(l1f & _PAGE_PRESENT);
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index ee91fc56b125..b4fb95917023 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1450,7 +1450,7 @@ static enum pf_type __page_fault_type(unsigned long addr,
     mfn = cr3 >> PAGE_SHIFT;
 
     l4t = map_domain_page(_mfn(mfn));
-    l4e = l4e_read_atomic(&l4t[l4_table_offset(addr)]);
+    l4e = l4e_read(&l4t[l4_table_offset(addr)]);
     mfn = l4e_get_pfn(l4e);
     unmap_domain_page(l4t);
     if ( ((l4e_get_flags(l4e) & required_flags) != required_flags) ||
@@ -1459,7 +1459,7 @@ static enum pf_type __page_fault_type(unsigned long addr,
     page_user &= l4e_get_flags(l4e);
 
     l3t  = map_domain_page(_mfn(mfn));
-    l3e = l3e_read_atomic(&l3t[l3_table_offset(addr)]);
+    l3e = l3e_read(&l3t[l3_table_offset(addr)]);
     mfn = l3e_get_pfn(l3e);
     unmap_domain_page(l3t);
     if ( ((l3e_get_flags(l3e) & required_flags) != required_flags) ||
@@ -1470,7 +1470,7 @@ static enum pf_type __page_fault_type(unsigned long addr,
         goto leaf;
 
     l2t = map_domain_page(_mfn(mfn));
-    l2e = l2e_read_atomic(&l2t[l2_table_offset(addr)]);
+    l2e = l2e_read(&l2t[l2_table_offset(addr)]);
     mfn = l2e_get_pfn(l2e);
     unmap_domain_page(l2t);
     if ( ((l2e_get_flags(l2e) & required_flags) != required_flags) ||
@@ -1481,7 +1481,7 @@ static enum pf_type __page_fault_type(unsigned long addr,
         goto leaf;
 
     l1t = map_domain_page(_mfn(mfn));
-    l1e = l1e_read_atomic(&l1t[l1_table_offset(addr)]);
+    l1e = l1e_read(&l1t[l1_table_offset(addr)]);
     mfn = l1e_get_pfn(l1e);
     unmap_domain_page(l1t);
     if ( ((l1e_get_flags(l1e) & required_flags) != required_flags) ||
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765509.1176116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMur-0008Iw-94; Fri, 26 Jul 2024 15:31:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765509.1176116; Fri, 26 Jul 2024 15: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 1sXMur-0008Ip-6H; Fri, 26 Jul 2024 15:31:33 +0000
Received: by outflank-mailman (input) for mailman id 765509;
 Fri, 26 Jul 2024 15:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMup-00084Z-Dm
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:31 +0000
Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com
 [2607:f8b0:4864:20::735])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2124b10b-4b64-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:31:30 +0200 (CEST)
Received: by mail-qk1-x735.google.com with SMTP id
 af79cd13be357-7a1d024f775so52880185a.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:30 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f8f83d4sm17591006d6.35.2024.07.26.08.31.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 2124b10b-4b64-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007889; x=1722612689; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q8/eLzGKCNNaqp81P/ebP+yU7jUBZnj71z4rM4VxIFc=;
        b=qO0jKsIZ8iWXK45vr0ZvmZnaxWd/D6nA1AwpS7MPmv9BYvqhE5TCpM7ix54kTCuyXz
         ZuRXeH03rj0DOJtRC3hBNlKgz1RrCbhuq7V2M1KaRMnpqQ0nUiVYSPY8LU4aVWonlrs0
         +fCNPguGDLb5rC1YHRqHPCvBpWSWGmESrPW6s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007889; x=1722612689;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Q8/eLzGKCNNaqp81P/ebP+yU7jUBZnj71z4rM4VxIFc=;
        b=KbPRU3K0gyfhG0UpnLN/Y22ngEwgaLOHToPz1bfYq+QnzM6RUTtknr8DcagpV1IAYS
         Pw1vUitt/ngcHrEkG6gOo2qjv59qepG27SSt2haqY1Z/hq8Yixew+d9aApKSM0ZdhjfT
         +TlCOwe5ae/mwH4brkxCpjd50y0t47qZ2GhuZv6FOCRbs/vm2gv3THSGDVt8j6rS4hFa
         x1Wux0T5rTsWo5CI9Wa0gzMyeN3si99Bs4TgYu7ZBdVw7vOc90cJVikxS39TRP9biK4u
         06cWL3viIjfc/zVpOKEc3aTBvCmTuOwnyiSO6W/rFBUHaGQA0goSbWVba6lbaScpL+T2
         4PfQ==
X-Gm-Message-State: AOJu0YxMA+C+swB2Q26QClHB+8JHvY2Jim8WZIqRQFQPsvBG0U7E++Fg
	SpcVAxpr3pY43e/MfigfgC+KkKke/yxTUNxyYydKC2uIZbLwBFnKOK4tIBoyeHaJVGYchkinvR2
	l
X-Google-Smtp-Source: AGHT+IFLtsWsY1JYEGzPRoLeoM/bqF2ayyF64j8qdM3N2504+XrbCNnIhwNYx2hvnFRpCWiQHayJQw==
X-Received: by 2002:a05:6214:4106:b0:6b5:423:52bc with SMTP id 6a1803df08f44-6bb559f8dd9mr1901106d6.3.1722007888414;
        Fri, 26 Jul 2024 08:31:28 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 01/22] x86/mm: drop l{1,2,3,4}e_write_atomic()
Date: Fri, 26 Jul 2024 17:21:45 +0200
Message-ID: <20240726152206.28411-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The l{1,2,3,4}e_write_atomic() and non _atomic suffixed helpers share the same
implementation, so it seems pointless and possibly confusing to have both.

Remove the l{1,2,3,4}e_write_atomic() helpers and switch it's user to
l{1,2,3,4}e_write(), as that's also atomic.  While there also remove
pte_write{,_atomic}() and just use write_atomic() in the wrappers.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/page.h        | 21 +++-----------
 xen/arch/x86/include/asm/x86_64/page.h |  2 --
 xen/arch/x86/mm.c                      | 39 +++++++++++---------------
 3 files changed, 20 insertions(+), 42 deletions(-)

diff --git a/xen/arch/x86/include/asm/page.h b/xen/arch/x86/include/asm/page.h
index 350d1fb1100f..3d20ee507a33 100644
--- a/xen/arch/x86/include/asm/page.h
+++ b/xen/arch/x86/include/asm/page.h
@@ -26,27 +26,14 @@
     l4e_from_intpte(pte_read_atomic(&l4e_get_intpte(*(l4ep))))
 
 /* Write a pte atomically to memory. */
-#define l1e_write_atomic(l1ep, l1e) \
-    pte_write_atomic(&l1e_get_intpte(*(l1ep)), l1e_get_intpte(l1e))
-#define l2e_write_atomic(l2ep, l2e) \
-    pte_write_atomic(&l2e_get_intpte(*(l2ep)), l2e_get_intpte(l2e))
-#define l3e_write_atomic(l3ep, l3e) \
-    pte_write_atomic(&l3e_get_intpte(*(l3ep)), l3e_get_intpte(l3e))
-#define l4e_write_atomic(l4ep, l4e) \
-    pte_write_atomic(&l4e_get_intpte(*(l4ep)), l4e_get_intpte(l4e))
-
-/*
- * Write a pte safely but non-atomically to memory.
- * The PTE may become temporarily not-present during the update.
- */
 #define l1e_write(l1ep, l1e) \
-    pte_write(&l1e_get_intpte(*(l1ep)), l1e_get_intpte(l1e))
+    write_atomic(&l1e_get_intpte(*(l1ep)), l1e_get_intpte(l1e))
 #define l2e_write(l2ep, l2e) \
-    pte_write(&l2e_get_intpte(*(l2ep)), l2e_get_intpte(l2e))
+    write_atomic(&l2e_get_intpte(*(l2ep)), l2e_get_intpte(l2e))
 #define l3e_write(l3ep, l3e) \
-    pte_write(&l3e_get_intpte(*(l3ep)), l3e_get_intpte(l3e))
+    write_atomic(&l3e_get_intpte(*(l3ep)), l3e_get_intpte(l3e))
 #define l4e_write(l4ep, l4e) \
-    pte_write(&l4e_get_intpte(*(l4ep)), l4e_get_intpte(l4e))
+    write_atomic(&l4e_get_intpte(*(l4ep)), l4e_get_intpte(l4e))
 
 /* Get direct integer representation of a pte's contents (intpte_t). */
 #define l1e_get_intpte(x)          ((x).l1)
diff --git a/xen/arch/x86/include/asm/x86_64/page.h b/xen/arch/x86/include/asm/x86_64/page.h
index 19ca64d79223..03fcce61c052 100644
--- a/xen/arch/x86/include/asm/x86_64/page.h
+++ b/xen/arch/x86/include/asm/x86_64/page.h
@@ -70,8 +70,6 @@ typedef l4_pgentry_t root_pgentry_t;
 #endif /* !__ASSEMBLY__ */
 
 #define pte_read_atomic(ptep)       read_atomic(ptep)
-#define pte_write_atomic(ptep, pte) write_atomic(ptep, pte)
-#define pte_write(ptep, pte)        write_atomic(ptep, pte)
 
 /* Given a virtual address, get an entry offset into a linear page table. */
 #define l1_linear_offset(_a) (((_a) & VADDR_MASK) >> L1_PAGETABLE_SHIFT)
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 95795567f2a5..fab2de5fae27 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5253,7 +5253,7 @@ int map_pages_to_xen(
              !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
         {
             /* 1GB-page mapping. */
-            l3e_write_atomic(pl3e, l3e_from_mfn(mfn, l1f_to_lNf(flags)));
+            l3e_write(pl3e, l3e_from_mfn(mfn, l1f_to_lNf(flags)));
 
             if ( (l3e_get_flags(ol3e) & _PAGE_PRESENT) )
             {
@@ -5353,8 +5353,7 @@ int map_pages_to_xen(
             if ( (l3e_get_flags(*pl3e) & _PAGE_PRESENT) &&
                  (l3e_get_flags(*pl3e) & _PAGE_PSE) )
             {
-                l3e_write_atomic(pl3e,
-                                 l3e_from_mfn(l2mfn, __PAGE_HYPERVISOR));
+                l3e_write(pl3e, l3e_from_mfn(l2mfn, __PAGE_HYPERVISOR));
                 l2mfn = INVALID_MFN;
             }
             if ( locking )
@@ -5375,7 +5374,7 @@ int map_pages_to_xen(
         {
             /* Super-page mapping. */
             ol2e = *pl2e;
-            l2e_write_atomic(pl2e, l2e_from_mfn(mfn, l1f_to_lNf(flags)));
+            l2e_write(pl2e, l2e_from_mfn(mfn, l1f_to_lNf(flags)));
 
             if ( (l2e_get_flags(ol2e) & _PAGE_PRESENT) )
             {
@@ -5457,8 +5456,7 @@ int map_pages_to_xen(
                 if ( (l2e_get_flags(*pl2e) & _PAGE_PRESENT) &&
                      (l2e_get_flags(*pl2e) & _PAGE_PSE) )
                 {
-                    l2e_write_atomic(pl2e, l2e_from_mfn(l1mfn,
-                                                        __PAGE_HYPERVISOR));
+                    l2e_write(pl2e, l2e_from_mfn(l1mfn, __PAGE_HYPERVISOR));
                     l1mfn = INVALID_MFN;
                 }
                 if ( locking )
@@ -5471,7 +5469,7 @@ int map_pages_to_xen(
             if ( !pl1e )
                 pl1e = map_l1t_from_l2e(*pl2e) + l1_table_offset(virt);
             ol1e  = *pl1e;
-            l1e_write_atomic(pl1e, l1e_from_mfn(mfn, flags));
+            l1e_write(pl1e, l1e_from_mfn(mfn, flags));
             UNMAP_DOMAIN_PAGE(pl1e);
             if ( (l1e_get_flags(ol1e) & _PAGE_PRESENT) )
             {
@@ -5524,8 +5522,7 @@ int map_pages_to_xen(
                 UNMAP_DOMAIN_PAGE(l1t);
                 if ( i == L1_PAGETABLE_ENTRIES )
                 {
-                    l2e_write_atomic(pl2e, l2e_from_pfn(base_mfn,
-                                                        l1f_to_lNf(flags)));
+                    l2e_write(pl2e, l2e_from_pfn(base_mfn, l1f_to_lNf(flags)));
                     if ( locking )
                         spin_unlock(&map_pgdir_lock);
                     flush_area(virt - PAGE_SIZE,
@@ -5574,8 +5571,7 @@ int map_pages_to_xen(
             UNMAP_DOMAIN_PAGE(l2t);
             if ( i == L2_PAGETABLE_ENTRIES )
             {
-                l3e_write_atomic(pl3e, l3e_from_pfn(base_mfn,
-                                                    l1f_to_lNf(flags)));
+                l3e_write(pl3e, l3e_from_pfn(base_mfn, l1f_to_lNf(flags)));
                 if ( locking )
                     spin_unlock(&map_pgdir_lock);
                 flush_area(virt - PAGE_SIZE,
@@ -5674,7 +5670,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
                     : l3e_from_pfn(l3e_get_pfn(*pl3e),
                                    (l3e_get_flags(*pl3e) & ~FLAGS_MASK) | nf);
 
-                l3e_write_atomic(pl3e, nl3e);
+                l3e_write(pl3e, nl3e);
                 v += 1UL << L3_PAGETABLE_SHIFT;
                 continue;
             }
@@ -5696,8 +5692,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
             if ( (l3e_get_flags(*pl3e) & _PAGE_PRESENT) &&
                  (l3e_get_flags(*pl3e) & _PAGE_PSE) )
             {
-                l3e_write_atomic(pl3e,
-                                 l3e_from_mfn(l2mfn, __PAGE_HYPERVISOR));
+                l3e_write(pl3e, l3e_from_mfn(l2mfn, __PAGE_HYPERVISOR));
                 l2mfn = INVALID_MFN;
             }
             if ( locking )
@@ -5732,7 +5727,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
                     : l2e_from_pfn(l2e_get_pfn(*pl2e),
                                    (l2e_get_flags(*pl2e) & ~FLAGS_MASK) | nf);
 
-                l2e_write_atomic(pl2e, nl2e);
+                l2e_write(pl2e, nl2e);
                 v += 1UL << L2_PAGETABLE_SHIFT;
             }
             else
@@ -5755,8 +5750,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
                 if ( (l2e_get_flags(*pl2e) & _PAGE_PRESENT) &&
                      (l2e_get_flags(*pl2e) & _PAGE_PSE) )
                 {
-                    l2e_write_atomic(pl2e, l2e_from_mfn(l1mfn,
-                                                        __PAGE_HYPERVISOR));
+                    l2e_write(pl2e, l2e_from_mfn(l1mfn, __PAGE_HYPERVISOR));
                     l1mfn = INVALID_MFN;
                 }
                 if ( locking )
@@ -5785,7 +5779,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
                 : l1e_from_pfn(l1e_get_pfn(*pl1e),
                                (l1e_get_flags(*pl1e) & ~FLAGS_MASK) | nf);
 
-            l1e_write_atomic(pl1e, nl1e);
+            l1e_write(pl1e, nl1e);
             UNMAP_DOMAIN_PAGE(pl1e);
             v += PAGE_SIZE;
 
@@ -5824,7 +5818,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
             if ( i == L1_PAGETABLE_ENTRIES )
             {
                 /* Empty: zap the L2E and free the L1 page. */
-                l2e_write_atomic(pl2e, l2e_empty());
+                l2e_write(pl2e, l2e_empty());
                 if ( locking )
                     spin_unlock(&map_pgdir_lock);
                 flush_area(NULL, FLUSH_TLB_GLOBAL); /* flush before free */
@@ -5868,7 +5862,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
             if ( i == L2_PAGETABLE_ENTRIES )
             {
                 /* Empty: zap the L3E and free the L2 page. */
-                l3e_write_atomic(pl3e, l3e_empty());
+                l3e_write(pl3e, l3e_empty());
                 if ( locking )
                     spin_unlock(&map_pgdir_lock);
                 flush_area(NULL, FLUSH_TLB_GLOBAL); /* flush before free */
@@ -5940,7 +5934,7 @@ void init_or_livepatch modify_xen_mappings_lite(
         {
             ASSERT(IS_ALIGNED(v, 1UL << L2_PAGETABLE_SHIFT));
 
-            l2e_write_atomic(pl2e, l2e_from_intpte((l2e.l2 & ~fm) | flags));
+            l2e_write(pl2e, l2e_from_intpte((l2e.l2 & ~fm) | flags));
 
             v += 1UL << L2_PAGETABLE_SHIFT;
             continue;
@@ -5958,8 +5952,7 @@ void init_or_livepatch modify_xen_mappings_lite(
 
                 ASSERT(l1f & _PAGE_PRESENT);
 
-                l1e_write_atomic(pl1e,
-                                 l1e_from_intpte((l1e.l1 & ~fm) | flags));
+                l1e_write(pl1e, l1e_from_intpte((l1e.l1 & ~fm) | flags));
 
                 v += 1UL << L1_PAGETABLE_SHIFT;
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765511.1176137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMut-0000ME-RL; Fri, 26 Jul 2024 15:31:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765511.1176137; Fri, 26 Jul 2024 15:31:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMut-0000M7-Og; Fri, 26 Jul 2024 15:31:35 +0000
Received: by outflank-mailman (input) for mailman id 765511;
 Fri, 26 Jul 2024 15:31:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMut-00084Z-0f
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:35 +0000
Received: from mail-qk1-x72e.google.com (mail-qk1-x72e.google.com
 [2607:f8b0:4864:20::72e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23a1d1c0-4b64-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:31:34 +0200 (CEST)
Received: by mail-qk1-x72e.google.com with SMTP id
 af79cd13be357-7a1d066a5daso54328585a.3
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:34 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d7435509sm186366385a.84.2024.07.26.08.31.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 23a1d1c0-4b64-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007893; x=1722612693; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MrZv9tGqnq3TAI08DUcqWZ+fCYOfSGrET03dF6dNqU8=;
        b=LWAZeWxM1RrL3oPCtb/SlPeV3IUT8Y/eIxtOTRRWgRsIs2h/NFMsJ/NoAfJyAfwAl/
         GNC+SCQBOzU0VCS/Usu+txSi5OnEoyFHEr66tLliUmOrttD6sR6FWW909sKdNohckBMD
         /K47COWDH369FaK/nfYYjHjx0pqooqmpwWKrU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007893; x=1722612693;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=MrZv9tGqnq3TAI08DUcqWZ+fCYOfSGrET03dF6dNqU8=;
        b=bYyhwcTbZJq75L364o62P+3fTbw8nzO9PjjG2jtuG3B8fMliTpZ2t5lOKJ4ELqfu12
         4UFw+i6uNpVlSJzeLk4bzNLIhSBqd6F5dLdiv4MW+RQa3UrYH1QzuKOBp0ex/51FCqPC
         GyUtexGnPAyA3fJ7m1F2hOjNPHR774qRuM7umFzP/cLDpOhvhtBe44sc2kogBhWicLbb
         NQB3EoldSSZHeZHxRXjZADxyDWcP0tG8Yo/JpMHJp1K76/36zbSl9zYSvJ9mk1TYxtC9
         ZP3d3/xOLL2B+JAPcpxZutO7J39E+h480bl17i3n0ITO3vRlhbBE9/geK24D8esWPW8H
         hJ1g==
X-Gm-Message-State: AOJu0YweFinyxLbWH0nRkJlFTkPVGVnqAfJ4WWalaYdOclFBB+rKucGG
	KYweSxPfOfl0zjkCKoQSIhI+HnvuQbvQxQNjyVE1GvIRGYYbvbIljSGOGeDPdNX6KAz9mKBLvmH
	Z
X-Google-Smtp-Source: AGHT+IGyDtkAcj5IZPqhstlPoxGGp6hPgDdq+Y1SNHkmt0iu6GWc2+FI5Kc9gUzSMVGbOCdn/uQB2g==
X-Received: by 2002:a05:620a:f11:b0:79f:1869:11fe with SMTP id af79cd13be357-7a1e52b5ecbmr6452485a.52.1722007892781;
        Fri, 26 Jul 2024 08:31:32 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 03/22] x86/dom0: only disable SMAP for the PV dom0 build
Date: Fri, 26 Jul 2024 17:21:47 +0200
Message-ID: <20240726152206.28411-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The PVH dom0 builder doesn't switch page tables and has no need to run with
SMAP disabled.

Put the SMAP disabling close to the code region where it's necessary, as it
then becomes obvious why switch_cr3_cr4() is required instead of
write_ptbase().

Note removing SMAP from cr4_pv32_mask is not required, as we never jump into
guest context, and hence updating the value of cr4_pv32_mask is not relevant.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/pv/dom0_build.c | 13 ++++++++++---
 xen/arch/x86/setup.c         | 17 -----------------
 2 files changed, 10 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index d8043fa58a27..41772dbe80bf 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -370,6 +370,7 @@ int __init dom0_construct_pv(struct domain *d,
     unsigned long alloc_epfn;
     unsigned long initrd_pfn = -1, initrd_mfn = 0;
     unsigned long count;
+    unsigned long cr4;
     struct page_info *page = NULL;
     unsigned int flush_flags = 0;
     start_info_t *si;
@@ -814,8 +815,14 @@ int __init dom0_construct_pv(struct domain *d,
     /* Set up CR3 value for switch_cr3_cr4(). */
     update_cr3(v);
 
+    /*
+     * Temporarily clear SMAP in CR4 to allow user-accesses when running with
+     * the dom0 page-tables.  Cache the value of CR4 so it can be restored.
+     */
+    cr4 = read_cr4();
+
     /* We run on dom0's page tables for the final part of the build process. */
-    switch_cr3_cr4(cr3_pa(v->arch.cr3), read_cr4());
+    switch_cr3_cr4(cr3_pa(v->arch.cr3), cr4 & ~X86_CR4_SMAP);
     mapcache_override_current(v);
 
     /* Copy the OS image and free temporary buffer. */
@@ -836,7 +843,7 @@ int __init dom0_construct_pv(struct domain *d,
              (parms.virt_hypercall >= v_end) )
         {
             mapcache_override_current(NULL);
-            switch_cr3_cr4(current->arch.cr3, read_cr4());
+            switch_cr3_cr4(current->arch.cr3, cr4);
             printk("Invalid HYPERCALL_PAGE field in ELF notes.\n");
             return -EINVAL;
         }
@@ -978,7 +985,7 @@ int __init dom0_construct_pv(struct domain *d,
 
     /* Return to idle domain's page tables. */
     mapcache_override_current(NULL);
-    switch_cr3_cr4(current->arch.cr3, read_cr4());
+    switch_cr3_cr4(current->arch.cr3, cr4);
 
     update_domain_wallclock_time(d);
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index eee20bb1753c..bc387d96b519 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -955,26 +955,9 @@ static struct domain *__init create_dom0(const module_t *image,
         }
     }
 
-    /*
-     * Temporarily clear SMAP in CR4 to allow user-accesses in construct_dom0().
-     * This saves a large number of corner cases interactions with
-     * copy_from_user().
-     */
-    if ( cpu_has_smap )
-    {
-        cr4_pv32_mask &= ~X86_CR4_SMAP;
-        write_cr4(read_cr4() & ~X86_CR4_SMAP);
-    }
-
     if ( construct_dom0(d, image, headroom, initrd, cmdline) != 0 )
         panic("Could not construct domain 0\n");
 
-    if ( cpu_has_smap )
-    {
-        write_cr4(read_cr4() | X86_CR4_SMAP);
-        cr4_pv32_mask |= X86_CR4_SMAP;
-    }
-
     return d;
 }
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765508.1176106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMuq-00084m-3A; Fri, 26 Jul 2024 15:31:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765508.1176106; Fri, 26 Jul 2024 15:31: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 1sXMuq-00084f-0C; Fri, 26 Jul 2024 15:31:32 +0000
Received: by outflank-mailman (input) for mailman id 765508;
 Fri, 26 Jul 2024 15:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMuo-00084T-7o
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:30 +0000
Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com
 [2607:f8b0:4864:20::f33])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1fd2e656-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:31:28 +0200 (CEST)
Received: by mail-qv1-xf33.google.com with SMTP id
 6a1803df08f44-6b79b93a4c9so6710386d6.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:28 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f8f63e7sm17685666d6.30.2024.07.26.08.31.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 1fd2e656-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007886; x=1722612686; 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=zPU3LlqrtwNZylg0zb4sk1TXfrsqUZcTdsqYRGiXSDU=;
        b=t0peZe+bVcVHy3LIjXmnGx17aa9LHEFIhf+fyliL7upywGD9s6sawdqD4jLtGmVbBX
         ZePAOlKUNJ3PXSC38oD3Kv+pMTMRhvQXsUHflnnlJhOFKBbdjR31EHkuprxlvYRNCdTi
         03uIgaIfj5xjc1wWt4j5biGvSZhFvkMQU90vM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007886; x=1722612686;
        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=zPU3LlqrtwNZylg0zb4sk1TXfrsqUZcTdsqYRGiXSDU=;
        b=lZG94fOM4sZmHNboHSARAqfIWaNijjKp76M/u+XIdpBP+aktD6tmblr4Hz3D+j4Ujt
         PRf7F1k8EWHmpRSRccqNTqx6nBR3R0b9LKcAz5bnMN7pyDfYrQnukRICJH3PO8kfFVMU
         bFjSU2pHytMC3WlHbMi0i8juRIEzCXYEEN8VPzPnQVbKkG7A/z8kVFH2t1Z7ce9VHW+q
         2MRk2DtFBLESrNytsIlvFA2lP9PPPF0K1lc3f4VWQ2jdFpUCfTIoOjggxbrMmqqItSos
         RazIvinwZ7mLcEjhcORRWHT+BezMa543yqJL4Xa1BGlY2snoUfbXNqkCRp1UjlkRB4O3
         bz6w==
X-Gm-Message-State: AOJu0YypAj2ffkLdy2EG+Iat5reCIYEfa1GoFqEYIo5KgYJGPeVr7nvX
	lDgKZHx64VvVz0le7oYoaSpV/BSMI5xMwE4sZdytgaPujrzWd1k9aKM36gwOlzMJeTfDJRUM267
	t
X-Google-Smtp-Source: AGHT+IHU7Vjgt39cEspg360NKE/64h8BaUjvXaT9vcd6mGJ05cMtUQcSlTKWkq+XLt2Tkxsbz8cv+A==
X-Received: by 2002:ad4:5ece:0:b0:6b5:d95c:692d with SMTP id 6a1803df08f44-6bb3c8cd3b5mr115974516d6.13.1722007886272;
        Fri, 26 Jul 2024 08:31:26 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Tim Deegan <tim@xen.org>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 00/22] x86: adventures in Address Space Isolation
Date: Fri, 26 Jul 2024 17:21:44 +0200
Message-ID: <20240726152206.28411-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

The aim of this series is to introduce the functionality required to
create linear mappings visible to a single pCPU.

Doing so requires having a per-CPU root page-table (L4), and hence
requires changes to the HVM monitor tables and shadowing the guest
selected L4 on PV guests.  As follow ups (and partially to ensure the
per-CPU mappings work fine) the CPU stacks are switched to use per-CPU
mappings, so that remote stack contents are not by default mapped on all
page-tables (note: for this to be true the directmap entries for the
stack pages would need to be removed also).

Patches before patch 12 are either small fixes or preparatory
non-functional changes in order to accommodate the rest of the series.

Patch 12 introduces a new 'asi' spec-ctrl option, that's used to enable
Address Space Isolation.

Patches 13-15 and 20 introduce logic to use per-CPU L4 on HVM and PV
guests.

Patches 16-18 add support for creating per-CPU mappings to the existing
page-table management functions, map_pages_to_xen() and related
functions.  Patch 19 introduce helpers for creating per-CPU mappings
using a fixmap interface.

Finally patches 21-22 add support for mapping the CPU stack in a per-CPU
fixmap region, and zeroing the stacks on guest context switch.

I've been testing the patches quite a lot using XenRT, and so far they
seem to not cause regressions (either with spec-ctrl=asi or without it),
but XenRT no longer tests shadow paging or 32bit PV guests.

This proposal is also missing an interface similar to map_domain_page()
in order to create per-CPU mappings that don't use a fixmap entry.  I
thought however that the current content was fair enough for a first
posting, and that I would like to get feedback on this before building
further functionality on top of it.

Note that none of the logic introduced in the series removes entries for
the directmap, so evne when creating the per-CPU mappings the underlying
physical addresses are fully accessible when using it's linear direct
map entries.

I also haven't done any benchmarking.  Doesn't seem to cripple
performance up to the point that XenRT jobs would timeout before
finishing, that the only objective reference I can provide at the
moment.

It's likely to still have some rough edges, handle with care.

Thanks, Roger.

Roger Pau Monne (22):
  x86/mm: drop l{1,2,3,4}e_write_atomic()
  x86/mm: rename l{1,2,3,4}e_read_atomic()
  x86/dom0: only disable SMAP for the PV dom0 build
  x86/mm: ensure L4 idle_pg_table is not modified past boot
  x86/mm: make virt_to_xen_l1e() static
  x86/mm: introduce a local domain variable to write_ptbase()
  x86/spec-ctrl: initialize per-domain XPTI in spec_ctrl_init_domain()
  x86/mm: avoid passing a domain parameter to L4 init function
  x86/pv: untie issuing FLUSH_ROOT_PGTBL from XPTI
  x86/mm: move FLUSH_ROOT_PGTBL handling before TLB flush
  x86/mm: split setup of the per-domain slot on context switch
  x86/spec-ctrl: introduce Address Space Isolation command line option
  x86/hvm: use a per-pCPU monitor table in HAP mode
  x86/hvm: use a per-pCPU monitor table in shadow mode
  x86/idle: allow using a per-pCPU L4
  x86/mm: introduce a per-CPU L3 table for the per-domain slot
  x86/mm: introduce support to populate a per-CPU page-table region
  x86/mm: allow modifying per-CPU entries of remote page-tables
  x86/mm: introduce a per-CPU fixmap area
  x86/pv: allow using a unique per-pCPU root page table (L4)
  x86/mm: switch to a per-CPU mapped stack when using ASI
  x86/mm: zero stack on stack switch or reset

 docs/misc/xen-command-line.pandoc      |  15 +-
 xen/arch/x86/boot/x86_64.S             |  11 +
 xen/arch/x86/domain.c                  |  75 +++-
 xen/arch/x86/domain_page.c             |   2 +-
 xen/arch/x86/flushtlb.c                |  18 +-
 xen/arch/x86/hvm/hvm.c                 |  67 ++++
 xen/arch/x86/hvm/svm/svm.c             |   5 +
 xen/arch/x86/hvm/vmx/vmcs.c            |   1 +
 xen/arch/x86/hvm/vmx/vmx.c             |   4 +
 xen/arch/x86/include/asm/config.h      |   4 +
 xen/arch/x86/include/asm/current.h     |  38 +-
 xen/arch/x86/include/asm/domain.h      |   7 +
 xen/arch/x86/include/asm/fixmap.h      |  50 +++
 xen/arch/x86/include/asm/flushtlb.h    |   3 +-
 xen/arch/x86/include/asm/hap.h         |   1 -
 xen/arch/x86/include/asm/hvm/hvm.h     |   8 +
 xen/arch/x86/include/asm/hvm/vcpu.h    |   6 +-
 xen/arch/x86/include/asm/mm.h          |  34 +-
 xen/arch/x86/include/asm/page.h        |  37 +-
 xen/arch/x86/include/asm/paging.h      |  18 +
 xen/arch/x86/include/asm/pv/mm.h       |   8 +
 xen/arch/x86/include/asm/setup.h       |   1 +
 xen/arch/x86/include/asm/smp.h         |  12 +
 xen/arch/x86/include/asm/spec_ctrl.h   |   2 +
 xen/arch/x86/include/asm/x86_64/page.h |   4 -
 xen/arch/x86/mm.c                      | 484 ++++++++++++++++++++-----
 xen/arch/x86/mm/hap/hap.c              |  74 ----
 xen/arch/x86/mm/paging.c               |   4 +-
 xen/arch/x86/mm/shadow/common.c        |  42 +--
 xen/arch/x86/mm/shadow/hvm.c           |  64 ++--
 xen/arch/x86/mm/shadow/multi.c         |  73 ++--
 xen/arch/x86/mm/shadow/private.h       |   4 +-
 xen/arch/x86/pv/dom0_build.c           |  16 +-
 xen/arch/x86/pv/domain.c               |  28 +-
 xen/arch/x86/pv/mm.c                   |  52 +++
 xen/arch/x86/setup.c                   |  55 +--
 xen/arch/x86/smp.c                     |  29 ++
 xen/arch/x86/smpboot.c                 |  78 +++-
 xen/arch/x86/spec_ctrl.c               |  78 +++-
 xen/arch/x86/traps.c                   |  14 +-
 xen/common/efi/runtime.c               |  12 +
 xen/common/smp.c                       |  10 +
 xen/include/xen/smp.h                  |   5 +
 43 files changed, 1198 insertions(+), 355 deletions(-)

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765512.1176148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMux-0000fB-4r; Fri, 26 Jul 2024 15:31:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765512.1176148; Fri, 26 Jul 2024 15: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 1sXMuw-0000f4-W1; Fri, 26 Jul 2024 15:31:38 +0000
Received: by outflank-mailman (input) for mailman id 765512;
 Fri, 26 Jul 2024 15:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMuv-00084Z-Uf
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:37 +0000
Received: from mail-ot1-x330.google.com (mail-ot1-x330.google.com
 [2607:f8b0:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 255233ec-4b64-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:31:37 +0200 (CEST)
Received: by mail-ot1-x330.google.com with SMTP id
 46e09a7af769-708adad61f8so726198a34.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:37 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fab9ba9sm17151416d6.104.2024.07.26.08.31.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 255233ec-4b64-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007896; x=1722612696; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1D+8OpNgSxikEbAcjcwMvwV6ssnWzWasPU4PrnTdBEE=;
        b=dPbGo67K6EHMyH5XkjAL+SxkZOBlja+6K/vMPo+pLiHgVrNa+G3Eztrs/9oADFcDt9
         O0NSnM3/sXXCBxZsP8hdhC3hvsvnaUXB96nW3o6yTBkjfBeZWMhNENTbQDkGfSxi4DCl
         xDClQ8PQ1bwDGfAMbT8bzSY2Onx/fkNQAyb3w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007896; x=1722612696;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=1D+8OpNgSxikEbAcjcwMvwV6ssnWzWasPU4PrnTdBEE=;
        b=QYob78A8z1kjBMTTun1EjXofIms9B/jMSEkIHdj6VYiLLb4iG1kDYLfDy77kSDrQc7
         +rqdYighj+2vWykFD1EFnWeikLA1sRlqRPFjA/9DcqTgqdzPvAZTo6CoFrBObDUgv/n1
         hs7IQ5RygM4bBQpv2XECFoRwdb9555MTDWTQFZndnPtcTKJl22EdVJl59YQLFafr0hjj
         IFuoOd8dp2Ccln/xDNOVfES4h4BgpEy86IrKS4LbghgsR8P+TkZdiXm9YHeUUwTd/Q5j
         AkT3ScGiHt2gy/zLdpFqF3XKkBYwmCSebo2dV/qH898ZTZsMb38BV3C6Xpyy/Oo1Ea4V
         UNaQ==
X-Gm-Message-State: AOJu0YygVTaB+kEGCk7lhIIYGx6C34eT/8Gzie/HYhmCMTG5RI/7xne2
	H0oIIUpvdjx8MvjdEzBqoo92ckFcmpDdEhR73JAJqkG8Dx/1OmybxXGFNIjn9UFGDIq8DxySU+r
	J
X-Google-Smtp-Source: AGHT+IGW6Jn234GYX3zr224VkCf1lMsflVoxkzb2acZ/LDiAqdHCiEKnBIOIZJqcFAakpcNykPeUFw==
X-Received: by 2002:a05:6830:6386:b0:703:5db8:805 with SMTP id 46e09a7af769-7093210b60dmr7311216a34.4.1722007895551;
        Fri, 26 Jul 2024 08:31:35 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 04/22] x86/mm: ensure L4 idle_pg_table is not modified past boot
Date: Fri, 26 Jul 2024 17:21:48 +0200
Message-ID: <20240726152206.28411-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The idle_pg_table L4 is cloned to create all the other L4 Xen uses, and hence
it shouldn't be modified once further L4 are created.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/mm.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 6ffacab341ad..01380fd82c9d 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5023,6 +5023,12 @@ static l3_pgentry_t *virt_to_xen_l3e(unsigned long v)
         mfn_t l3mfn;
         l3_pgentry_t *l3t = alloc_mapped_pagetable(&l3mfn);
 
+        /*
+         * dom0 is build at smp_boot, at which point we already create new L4s
+         * based on idle_pg_table.
+         */
+        BUG_ON(system_state >= SYS_STATE_smp_boot);
+
         if ( !l3t )
             return NULL;
         UNMAP_DOMAIN_PAGE(l3t);
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765513.1176157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMv0-0000yO-Ar; Fri, 26 Jul 2024 15:31:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765513.1176157; Fri, 26 Jul 2024 15:31:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMv0-0000yD-7y; Fri, 26 Jul 2024 15:31:42 +0000
Received: by outflank-mailman (input) for mailman id 765513;
 Fri, 26 Jul 2024 15:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMuz-00084T-50
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:41 +0000
Received: from mail-qv1-xf34.google.com (mail-qv1-xf34.google.com
 [2607:f8b0:4864:20::f34])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26aa0850-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:31:39 +0200 (CEST)
Received: by mail-qv1-xf34.google.com with SMTP id
 6a1803df08f44-6b97097f7fdso5314326d6.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:39 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f8d81e2sm17439186d6.25.2024.07.26.08.31.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 26aa0850-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007898; x=1722612698; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JmNhqru4TlGrw3ILyEg6ph0OyPR73zD1eJAHzMTaW8w=;
        b=YwoJa+jXdGxX2gahklZ0pc6vJclaPRbfY1eMfduE3W5Spgv0LIpt7b4HsmTm34mevH
         AzMTN0yfDAKiIvx5g5/XEsRqXKto1SX/iqLlxCLL8vQ9euysukwra9Iu48Ox169BJVhN
         mublEqQUz2ZYTBm0c47Riq+QYuz1WBUvsbuvY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007898; x=1722612698;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=JmNhqru4TlGrw3ILyEg6ph0OyPR73zD1eJAHzMTaW8w=;
        b=igfEBfUTg3BwnkYca0Ws0FztKrpBMm4L55APlsFFeO2pS/MUIyZeNYOwhGz9/qtgQ5
         f8WmKCiWhi2vjDfP5j+FePrLVX+uWFFDajaTlKVs7Rq+eVWRvAuXKONDdnKIowQAKitG
         LSRbGqUBvWTWh5goeg141jQrB6bawRKhjnP0bvfz1R0Iwee+ff57HTXT0Nzis/CTFLXj
         tF0lRBc35t7cjuxSZkzpEXMuP9VORSiU8N/jQzfP1vLtlANosDgDDqxQeQIFkVR5CEwz
         JxdrzLbDuwQ3Nz61QeSqfK/+3KK645zp6w3e2w62yiVOaoRoTZlI5Zlh9sZ89jxiSd85
         dNUQ==
X-Gm-Message-State: AOJu0YzRx+qaztXb7FHQ/i6PSxfhWJt1E2kKXbJf5dQGGZN6HyQ9l2aB
	/0A4qhUY1Z9gwIEgfXI26T4jr0f/av+MvsVeI4nq0/KlYmsszS8DsdcNZXPY8vfe189HvIZc6CW
	e
X-Google-Smtp-Source: AGHT+IFVo7RCWrzdGCf8WbHKXJS7FPJoMhkuGB/902ihUsT3Fi3KBTh0NjvB6zh1fvY99h7U1GZriw==
X-Received: by 2002:a05:6214:62e:b0:6b5:e403:4418 with SMTP id 6a1803df08f44-6bb5597d56dmr1948886d6.10.1722007897691;
        Fri, 26 Jul 2024 08:31:37 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 05/22] x86/mm: make virt_to_xen_l1e() static
Date: Fri, 26 Jul 2024 17:21:49 +0200
Message-ID: <20240726152206.28411-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There are no callers outside the translation unit where it's defined, so make
the function static.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/mm.h | 2 --
 xen/arch/x86/mm.c             | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 98b66edaca5e..b3853ae734fa 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -567,8 +567,6 @@ mfn_t alloc_xen_pagetable(void);
 void free_xen_pagetable(mfn_t mfn);
 void *alloc_mapped_pagetable(mfn_t *pmfn);
 
-l1_pgentry_t *virt_to_xen_l1e(unsigned long v);
-
 int __sync_local_execstate(void);
 
 /* Arch-specific portion of memory_op hypercall. */
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 01380fd82c9d..ca3d116b0e05 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5087,7 +5087,7 @@ static l2_pgentry_t *virt_to_xen_l2e(unsigned long v)
     return map_l2t_from_l3e(l3e) + l2_table_offset(v);
 }
 
-l1_pgentry_t *virt_to_xen_l1e(unsigned long v)
+static l1_pgentry_t *virt_to_xen_l1e(unsigned long v)
 {
     l2_pgentry_t *pl2e, l2e;
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765514.1176167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMv1-0001Fj-LP; Fri, 26 Jul 2024 15:31:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765514.1176167; Fri, 26 Jul 2024 15:31: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 1sXMv1-0001Ef-Hv; Fri, 26 Jul 2024 15:31:43 +0000
Received: by outflank-mailman (input) for mailman id 765514;
 Fri, 26 Jul 2024 15:31:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMv1-00084T-1n
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:43 +0000
Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com
 [2607:f8b0:4864:20::736])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 27d047fb-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:31:41 +0200 (CEST)
Received: by mail-qk1-x736.google.com with SMTP id
 af79cd13be357-7a1d42da3baso57124785a.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:41 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe820158esm14064471cf.73.2024.07.26.08.31.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 27d047fb-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007900; x=1722612700; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0xB8CrUuvcSfc2nlcH8MxzDzMULu8CCxjZFQajnmXd4=;
        b=rAG0gPfdWsyWmy1P9g3gvzV5bNgiGgG98k5YOBlVlCfxdLKMKGkm3+cMRO3YkcURst
         mi5ztb0CV9VtSY4meOYnYLls0nxS40q0iENp4IHp26J5vqBEBQFVW6T7uAV8OM0eEjIP
         29Mp2g+pauVBnbFwsz9Am4Ri2qTNWdE1rJVbY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007900; x=1722612700;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0xB8CrUuvcSfc2nlcH8MxzDzMULu8CCxjZFQajnmXd4=;
        b=Bm/8QvXjX8DZZQNWBvqqvHaK2lGvbOZJ08LiuyrV9U29jnsrDFtf5UGTuLLIRAx6vL
         wHOcVV32b4wBo0GEv2XQy2A6OoWTF3sTpI0PQYBS5gjSnMh7lnYqqv7XPSMMdlrMWyYU
         5NYwoo134A9lHKJzK1KK2t4Z5U+ouPihQgN6ZM9f0MyM8frh/TAN7aw+5TfckGvVPTYM
         gaRst43bB8WdeqwFAqqo3blk+b7cEXXjs7iEQNhSizatEK+OAw0sj9EZcCKUwj4NcBLN
         2HJKTLuwoWwujlrerNdfWFsrcCkI1uLguSPQAouxKWYF4QaSVlaPg9nIv/LIH/7Xiko9
         MOBA==
X-Gm-Message-State: AOJu0YwHBrJPcQbqY4o0+6adH15gbooEzE8DiGNrzzeSqKSuIl8MW1gR
	9zBHZNrYlYscTfCPabXWK2807d6bHbY4q+0jS30AHTZYjiDhKto0RPGWlNqk8MxOGCjpPP0jsJB
	/
X-Google-Smtp-Source: AGHT+IG5blLKfHhCf2QVQb7PvatlQw/jrtr6nl9TiOaAlzbLO5OiY1VzEjatQoI/IW6I/wUCr86o/w==
X-Received: by 2002:a05:620a:17a4:b0:79f:62a:808 with SMTP id af79cd13be357-7a1e52fbc86mr6582685a.61.1722007899832;
        Fri, 26 Jul 2024 08:31:39 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 06/22] x86/mm: introduce a local domain variable to write_ptbase()
Date: Fri, 26 Jul 2024 17:21:50 +0200
Message-ID: <20240726152206.28411-7-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This reduces the repeated accessing of v->domain.

No functional change intended.

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

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index ca3d116b0e05..a792a300a866 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -517,13 +517,14 @@ void make_cr3(struct vcpu *v, mfn_t mfn)
 
 void write_ptbase(struct vcpu *v)
 {
+    const struct domain *d = v->domain;
     struct cpu_info *cpu_info = get_cpu_info();
     unsigned long new_cr4;
 
-    new_cr4 = (is_pv_vcpu(v) && !is_idle_vcpu(v))
+    new_cr4 = (is_pv_domain(d) && !is_idle_domain(d))
               ? pv_make_cr4(v) : mmu_cr4_features;
 
-    if ( is_pv_vcpu(v) && v->domain->arch.pv.xpti )
+    if ( is_pv_domain(d) && d->arch.pv.xpti )
     {
         cpu_info->root_pgt_changed = true;
         cpu_info->pv_cr3 = __pa(this_cpu(root_pgt));
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765515.1176177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMv2-0001Vu-Un; Fri, 26 Jul 2024 15:31:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765515.1176177; Fri, 26 Jul 2024 15:31:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMv2-0001VO-Qx; Fri, 26 Jul 2024 15:31:44 +0000
Received: by outflank-mailman (input) for mailman id 765515;
 Fri, 26 Jul 2024 15:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMv2-00084Z-1b
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:44 +0000
Received: from mail-qk1-x731.google.com (mail-qk1-x731.google.com
 [2607:f8b0:4864:20::731])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2906e854-4b64-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:31:43 +0200 (CEST)
Received: by mail-qk1-x731.google.com with SMTP id
 af79cd13be357-7a1d6f47112so50000185a.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:43 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d73ed33bsm186240685a.58.2024.07.26.08.31.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 2906e854-4b64-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007902; x=1722612702; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dOEvkcqnun3SiCPLNVGMeM5jDZg54ALoRCfw9d7wQaw=;
        b=cpzIamfP6qyJrMXqifj4si5HGpo+rD0LWImppcPOkWOEzHON5ysnDTuAB7cXnX/hu+
         /zXU7NB8A+TnVPUhQahtF0fo6ql+IsG3njJ9JNzfBwa3VKukMbdCKTnlI4eSSjUow0CB
         Mmju8PSGLwm5/0l6cakrayTanupNpq1pVlGTs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007902; x=1722612702;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dOEvkcqnun3SiCPLNVGMeM5jDZg54ALoRCfw9d7wQaw=;
        b=E77D+qEHWgyUtsTep0HW4BVklsRwKyaJHH5ULA1gmqXVQUKJH0sasfUDZyC9pbz4mm
         mxdBJR1y1UdXmbIuPscL+R4jGjsZ1apMgolyQ9HJIaIrN8CBKGzox3i2dLtrG3i5jelg
         nkMv6WL/gf6FLpYG2QQw0KkehHuOhuD7grIqDHqE0unEJ5/oNRgPVL714TV3d+PWP9nK
         6RJ5Lpk79lV2HYbx3OKG7ULgXFLiAk2cXdqrBx5yGxvV+odMP1QvXp0caHepqFlHm4dK
         QQZXUJjOQDH8DVtGq0FQV5uYBH4lZmSsQmxu3Vz+3nGaEgQgZMQqGR+CQouiUb+/y+vo
         l6xQ==
X-Gm-Message-State: AOJu0Yzf/kdtDthaOkdP8ArgolrXGQXPaOfD/nuusjM+CwzNlSgyNpdp
	NG5MMYGaRjq83SS7us1evTWRpwL+vxD354iCI9xHUGQgoNq+uabpnzB/jwCwYHpZXZKQYFLizkx
	/
X-Google-Smtp-Source: AGHT+IGDtXcbJU9fFL56JcrQei4HNt94c4Zq8RiEGD8vSM+2WteFX2PTYvTW9/iZo0GgHcOnjLs8aw==
X-Received: by 2002:a05:620a:17a7:b0:79f:1711:29fa with SMTP id af79cd13be357-7a1e52398f4mr14269485a.1.1722007901936;
        Fri, 26 Jul 2024 08:31:41 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 07/22] x86/spec-ctrl: initialize per-domain XPTI in spec_ctrl_init_domain()
Date: Fri, 26 Jul 2024 17:21:51 +0200
Message-ID: <20240726152206.28411-8-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

XPTI being a speculation mitigation feels better to be initialized in
spec_ctrl_init_domain().

No functional change intended, although the call to spec_ctrl_init_domain() in
arch_domain_create() needs to be moved ahead of pv_domain_initialise() for
d->->arch.pv.xpti to be correctly set.

Move it ahead of most of the initialization functions, since
spec_ctrl_init_domain() doesn't depend on any member in the struct domain being
set.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/domain.c    | 4 ++--
 xen/arch/x86/pv/domain.c | 2 --
 xen/arch/x86/spec_ctrl.c | 4 ++++
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index ccadfe0c9e70..3d3c14dbb5ae 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -842,6 +842,8 @@ int arch_domain_create(struct domain *d,
         is_pv_domain(d) ? __HYPERVISOR_COMPAT_VIRT_START : ~0u;
 #endif
 
+    spec_ctrl_init_domain(d);
+
     if ( (rc = paging_domain_init(d)) != 0 )
         goto fail;
     paging_initialised = true;
@@ -908,8 +910,6 @@ int arch_domain_create(struct domain *d,
 
     d->arch.msr_relaxed = config->arch.misc_flags & XEN_X86_MSR_RELAXED;
 
-    spec_ctrl_init_domain(d);
-
     return 0;
 
  fail:
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 2a445bb17b99..86b74fb372d5 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -383,8 +383,6 @@ int pv_domain_initialise(struct domain *d)
 
     d->arch.ctxt_switch = &pv_csw;
 
-    d->arch.pv.xpti = is_hardware_domain(d) ? opt_xpti_hwdom : opt_xpti_domu;
-
     if ( !is_pv_32bit_domain(d) && use_invpcid && cpu_has_pcid )
         switch ( ACCESS_ONCE(opt_pcid) )
         {
diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index 40f6ae017010..5dc7a17b9354 100644
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -1769,6 +1769,10 @@ void spec_ctrl_init_domain(struct domain *d)
         (ibpb   ? SCF_entry_ibpb   : 0) |
         (bhb    ? SCF_entry_bhb    : 0) |
         0;
+
+    if ( pv )
+        d->arch.pv.xpti = is_hardware_domain(d) ? opt_xpti_hwdom
+                                                : opt_xpti_domu;
 }
 
 void __init init_speculation_mitigations(void)
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765516.1176186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMv7-00020q-DK; Fri, 26 Jul 2024 15:31:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765516.1176186; Fri, 26 Jul 2024 15: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 1sXMv7-00020c-9G; Fri, 26 Jul 2024 15:31:49 +0000
Received: by outflank-mailman (input) for mailman id 765516;
 Fri, 26 Jul 2024 15:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMv5-00084T-D7
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:47 +0000
Received: from mail-qv1-xf2a.google.com (mail-qv1-xf2a.google.com
 [2607:f8b0:4864:20::f2a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a52ccd7-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:31:45 +0200 (CEST)
Received: by mail-qv1-xf2a.google.com with SMTP id
 6a1803df08f44-6b79c969329so3887046d6.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:45 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f8d82a1sm17583836d6.8.2024.07.26.08.31.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 2a52ccd7-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007904; x=1722612704; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XVLmi/fkvu4CTYAI+yfb6OgrqWm3rUKjjqk2EK0FSak=;
        b=HbZWYo47BAi0LT/8bPoeBP1TStinvU5gFwLXujMNhmmFvcCwbrhorVNOI6bFM31aM3
         THhS4PiN+60SBBRxgxM/4+gXJYSg7bXefTnnkC/fd8J+6ue23TAmB37yNzOhTDGrOK60
         WKwtWI3wMhbYkU6aTjuz1qxXtC0y40hH2EPp4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007904; x=1722612704;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=XVLmi/fkvu4CTYAI+yfb6OgrqWm3rUKjjqk2EK0FSak=;
        b=A4SQbz0kW8PmOkn0TbL5DKmSkoUuM/WDdttwu7w0F6YE8JRsB0czuohCb6C04WADT1
         tXIfFB4T3NWaUEGvpxpaLsJ4nHKZYBYimbEveXh1FCc5yWKJpzM0WD1p9yAo0rja0770
         XnTuT0/9igfJKQn5FXw+MMa9+wa2LlqPRyGlz3Ubvjc9Fw2TpEpzrGyuDVod63Fyt5Xq
         NMQnNVSgazpY7zXvHaTNEMvicyOAhuOMdENW+3xsJaTEyiAl6pajfeEWKNSAoWoKmOhY
         x9FJmpMjO4RLO3EDVe7+SUCMg/A+POzn0Nm6DkGj0+oKk8KJdQia5x7XNFobxrMfuCWS
         0QzA==
X-Gm-Message-State: AOJu0YwJQmni7jSEhIXUz2qmLIsqdm3XEMSHMfj21B+NoF3RWcM6EIzt
	gk6fw2H5EHRgzhOkq4en/DAn0QTooKNU8Hgcq07cJdLIVexXPT8XK/kWP/RzIQYVEPSa/QHxldC
	7
X-Google-Smtp-Source: AGHT+IEcufzqkmPcezP4vOETUa2u5a43wCguxoFnd/xXU0ayAqpb2EzoCg4TNkabrtG+7Xer6mXs8Q==
X-Received: by 2002:a05:6214:d6a:b0:6b7:9b14:627b with SMTP id 6a1803df08f44-6bb55ace5bemr1746786d6.40.1722007903998;
        Fri, 26 Jul 2024 08:31:43 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Tim Deegan <tim@xen.org>
Subject: [PATCH 08/22] x86/mm: avoid passing a domain parameter to L4 init function
Date: Fri, 26 Jul 2024 17:21:52 +0200
Message-ID: <20240726152206.28411-9-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In preparation for the function being called from contexts where no domain is
present.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/mm.h  |  4 +++-
 xen/arch/x86/mm.c              | 24 +++++++++++++-----------
 xen/arch/x86/mm/hap/hap.c      |  3 ++-
 xen/arch/x86/mm/shadow/hvm.c   |  3 ++-
 xen/arch/x86/mm/shadow/multi.c |  7 +++++--
 xen/arch/x86/pv/dom0_build.c   |  3 ++-
 xen/arch/x86/pv/domain.c       |  3 ++-
 7 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index b3853ae734fa..076e7009dc99 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -375,7 +375,9 @@ int devalidate_page(struct page_info *page, unsigned long type,
 
 void init_xen_pae_l2_slots(l2_pgentry_t *l2t, const struct domain *d);
 void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l4mfn,
-                       const struct domain *d, mfn_t sl4mfn, bool ro_mpt);
+                       mfn_t sl4mfn, const struct page_info *perdomain_l3,
+                       bool ro_mpt, bool maybe_compat, bool short_directmap);
+
 bool fill_ro_mpt(mfn_t mfn);
 void zap_ro_mpt(mfn_t mfn);
 
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index a792a300a866..c01b6712143e 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -1645,14 +1645,9 @@ static int promote_l3_table(struct page_info *page)
  * extended directmap.
  */
 void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l4mfn,
-                       const struct domain *d, mfn_t sl4mfn, bool ro_mpt)
+                       mfn_t sl4mfn, const struct page_info *perdomain_l3,
+                       bool ro_mpt, bool maybe_compat, bool short_directmap)
 {
-    /*
-     * PV vcpus need a shortened directmap.  HVM and Idle vcpus get the full
-     * directmap.
-     */
-    bool short_directmap = !paging_mode_external(d);
-
     /* Slot 256: RO M2P (if applicable). */
     l4t[l4_table_offset(RO_MPT_VIRT_START)] =
         ro_mpt ? idle_pg_table[l4_table_offset(RO_MPT_VIRT_START)]
@@ -1673,13 +1668,14 @@ void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l4mfn,
         l4e_from_mfn(sl4mfn, __PAGE_HYPERVISOR_RW);
 
     /* Slot 260: Per-domain mappings. */
-    l4t[l4_table_offset(PERDOMAIN_VIRT_START)] =
-        l4e_from_page(d->arch.perdomain_l3_pg, __PAGE_HYPERVISOR_RW);
+    if ( perdomain_l3 )
+        l4t[l4_table_offset(PERDOMAIN_VIRT_START)] =
+            l4e_from_page(perdomain_l3, __PAGE_HYPERVISOR_RW);
 
     /* Slot 4: Per-domain mappings mirror. */
     BUILD_BUG_ON(IS_ENABLED(CONFIG_PV32) &&
                  !l4_table_offset(PERDOMAIN_ALT_VIRT_START));
-    if ( !is_pv_64bit_domain(d) )
+    if ( perdomain_l3 && maybe_compat )
         l4t[l4_table_offset(PERDOMAIN_ALT_VIRT_START)] =
             l4t[l4_table_offset(PERDOMAIN_VIRT_START)];
 
@@ -1710,6 +1706,10 @@ void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l4mfn,
     else
 #endif
     {
+        /*
+         * PV vcpus need a shortened directmap.  HVM and Idle vcpus get the full
+         * directmap.
+         */
         unsigned int slots = (short_directmap
                               ? ROOT_PAGETABLE_PV_XEN_SLOTS
                               : ROOT_PAGETABLE_XEN_SLOTS);
@@ -1830,7 +1830,9 @@ static int promote_l4_table(struct page_info *page)
     if ( !rc )
     {
         init_xen_l4_slots(pl4e, l4mfn,
-                          d, INVALID_MFN, VM_ASSIST(d, m2p_strict));
+                          INVALID_MFN, d->arch.perdomain_l3_pg,
+                          VM_ASSIST(d, m2p_strict), !is_pv_64bit_domain(d),
+                          true);
         atomic_inc(&d->arch.pv.nr_l4_pages);
     }
     unmap_domain_page(pl4e);
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index d2011fde2462..c8514ca0e917 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -402,7 +402,8 @@ static mfn_t hap_make_monitor_table(struct vcpu *v)
     m4mfn = page_to_mfn(pg);
     l4e = map_domain_page(m4mfn);
 
-    init_xen_l4_slots(l4e, m4mfn, d, INVALID_MFN, false);
+    init_xen_l4_slots(l4e, m4mfn, INVALID_MFN, d->arch.perdomain_l3_pg,
+                      false, true, false);
     unmap_domain_page(l4e);
 
     return m4mfn;
diff --git a/xen/arch/x86/mm/shadow/hvm.c b/xen/arch/x86/mm/shadow/hvm.c
index c16f3b3adf32..93922a71e511 100644
--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -758,7 +758,8 @@ mfn_t sh_make_monitor_table(const struct vcpu *v, unsigned int shadow_levels)
      * shadow-linear mapping will either be inserted below when creating
      * lower level monitor tables, or later in sh_update_cr3().
      */
-    init_xen_l4_slots(l4e, m4mfn, d, INVALID_MFN, false);
+    init_xen_l4_slots(l4e, m4mfn, INVALID_MFN, d->arch.perdomain_l3_pg,
+                      false, true, false);
 
     if ( shadow_levels < 4 )
     {
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
index 376f6823cd44..0def0c073ca8 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -973,8 +973,11 @@ sh_make_shadow(struct vcpu *v, mfn_t gmfn, u32 shadow_type)
 
             BUILD_BUG_ON(sizeof(l4_pgentry_t) != sizeof(shadow_l4e_t));
 
-            init_xen_l4_slots(l4t, gmfn, d, smfn, (!is_pv_32bit_domain(d) &&
-                                                   VM_ASSIST(d, m2p_strict)));
+            init_xen_l4_slots(l4t, gmfn, smfn,
+                              d->arch.perdomain_l3_pg,
+                              (!is_pv_32bit_domain(d) &&
+                               VM_ASSIST(d, m2p_strict)),
+                              !is_pv_64bit_domain(d), true);
             unmap_domain_page(l4t);
         }
         break;
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 41772dbe80bf..6a6689f402bb 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -711,7 +711,8 @@ int __init dom0_construct_pv(struct domain *d,
         l4start = l4tab = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
         clear_page(l4tab);
         init_xen_l4_slots(l4tab, _mfn(virt_to_mfn(l4start)),
-                          d, INVALID_MFN, true);
+                          INVALID_MFN, d->arch.perdomain_l3_pg,
+                          true, !is_pv_64bit_domain(d), true);
         v->arch.guest_table = pagetable_from_paddr(__pa(l4start));
     }
     else
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 86b74fb372d5..6ff71f14a2f2 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -124,7 +124,8 @@ static int setup_compat_l4(struct vcpu *v)
     mfn = page_to_mfn(pg);
     l4tab = map_domain_page(mfn);
     clear_page(l4tab);
-    init_xen_l4_slots(l4tab, mfn, v->domain, INVALID_MFN, false);
+    init_xen_l4_slots(l4tab, mfn, INVALID_MFN, v->domain->arch.perdomain_l3_pg,
+                      false, true, true);
     unmap_domain_page(l4tab);
 
     /* This page needs to look like a pagetable so that it can be shadowed */
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765519.1176197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMv9-0002PZ-3G; Fri, 26 Jul 2024 15:31:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765519.1176197; Fri, 26 Jul 2024 15:31:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMv8-0002Nc-Sa; Fri, 26 Jul 2024 15:31:50 +0000
Received: by outflank-mailman (input) for mailman id 765519;
 Fri, 26 Jul 2024 15:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMv7-00084T-IB
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:49 +0000
Received: from mail-ot1-x32c.google.com (mail-ot1-x32c.google.com
 [2607:f8b0:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b975213-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:31:47 +0200 (CEST)
Received: by mail-ot1-x32c.google.com with SMTP id
 46e09a7af769-7093abb12edso645859a34.3
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:47 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3faf858csm17506806d6.128.2024.07.26.08.31.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 2b975213-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007906; x=1722612706; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oS3y4Ocny/CCyKe8xJHGMa6gk6B7qtxm6NZOH5KyGFA=;
        b=FweycZPOEeJWazdD7sZvnpe5b2hxzBOz9JV55v4lpo3KnNJVIr3kBlJCJv2aLTIKEF
         R9p5fiQTIcUBP4c9kSxkrMo2b8QfMb6+PIaHIhEggeisOvYXXGCaqd5uKfd8Et546XB2
         /2hEWHETZgVex5ho7aD42df2Ri2FdNzw9K+jA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007906; x=1722612706;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=oS3y4Ocny/CCyKe8xJHGMa6gk6B7qtxm6NZOH5KyGFA=;
        b=s2hVURYr8jyDsHUTXuL53bUEdfyb7DzqD733k2oEawwrnOg6WJooD2DxOhQx0TziGA
         wtVu82uomwsletNTd9QGSCWo1Pv5zlY+bOhRpvuvaCHTDeTzrVf66QTxvxWHmhzRelHD
         BZRxGPMY4sjt786ODRyUctXJnklHL9EK2QTvh2rwkQpEWO4Xu+DDxB4fSJE143m68xB6
         M2VAT4UALiRUrrBUFJyBgdp7LKyYvNptZk6SQYrQ6q/ibBL09fwpJK7qeifngGmLlpM4
         TXFvA4f7I4kV3jHRF5PbQP0FxWm6JR2lrdHnF5nfNdjQfLHkW6I3Gq40GMAHxeb4YZuD
         NyDg==
X-Gm-Message-State: AOJu0YwzxYsEATVJWUA/aZh98A2CoNHtzm3ToUL/9gPwM/7xfq4X5KdP
	ho2Fu2DK4jf7WN0NXjSGmz84RjdolHFlhBwCtzeA0KqM7MymcsESaTbIY+cwJguUqdoZrIBbuAs
	0
X-Google-Smtp-Source: AGHT+IEI/SmxM1OVVQwG596ftYXa8ugL3WbsTaRvUruPRnqPk3jpUVflDTDvv9TDG0yYGgBR1OTsCQ==
X-Received: by 2002:a05:6830:668b:b0:703:5c2d:56a7 with SMTP id 46e09a7af769-7093248b4b5mr6952622a34.24.1722007906135;
        Fri, 26 Jul 2024 08:31:46 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 09/22] x86/pv: untie issuing FLUSH_ROOT_PGTBL from XPTI
Date: Fri, 26 Jul 2024 17:21:53 +0200
Message-ID: <20240726152206.28411-10-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current logic gates issuing flush TLB requests with the FLUSH_ROOT_PGTBL
flag to XPTI being enabled.

In preparation for FLUSH_ROOT_PGTBL also being needed when not using XPTI,
untie it from the xpti domain boolean and instead introduce a new flush_root_pt
field.

No functional change intended, as flush_root_pt == xpti.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/domain.h   | 2 ++
 xen/arch/x86/include/asm/flushtlb.h | 2 +-
 xen/arch/x86/mm.c                   | 2 +-
 xen/arch/x86/pv/domain.c            | 2 ++
 4 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index f5daeb182baa..9dd2e047f4de 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -283,6 +283,8 @@ struct pv_domain
     bool pcid;
     /* Mitigate L1TF with shadow/crashing? */
     bool check_l1tf;
+    /* Issue FLUSH_ROOT_PGTBL for root page-table changes. */
+    bool flush_root_pt;
 
     /* map_domain_page() mapping cache. */
     struct mapcache_domain mapcache;
diff --git a/xen/arch/x86/include/asm/flushtlb.h b/xen/arch/x86/include/asm/flushtlb.h
index bb0ad58db49b..1b98d03decdc 100644
--- a/xen/arch/x86/include/asm/flushtlb.h
+++ b/xen/arch/x86/include/asm/flushtlb.h
@@ -177,7 +177,7 @@ void flush_area_mask(const cpumask_t *mask, const void *va,
 
 #define flush_root_pgtbl_domain(d)                                       \
 {                                                                        \
-    if ( is_pv_domain(d) && (d)->arch.pv.xpti )                          \
+    if ( is_pv_domain(d) && (d)->arch.pv.flush_root_pt )                 \
         flush_mask((d)->dirty_cpumask, FLUSH_ROOT_PGTBL);                \
 }
 
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index c01b6712143e..a1ac7bdc5b44 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4167,7 +4167,7 @@ long do_mmu_update(
                                       cmd == MMU_PT_UPDATE_PRESERVE_AD, v);
                     if ( !rc )
                         flush_linear_pt = true;
-                    if ( !rc && pt_owner->arch.pv.xpti )
+                    if ( !rc && pt_owner->arch.pv.flush_root_pt )
                     {
                         bool local_in_use = false;
 
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 6ff71f14a2f2..46ee10a8a4c2 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -384,6 +384,8 @@ int pv_domain_initialise(struct domain *d)
 
     d->arch.ctxt_switch = &pv_csw;
 
+    d->arch.pv.flush_root_pt = d->arch.pv.xpti;
+
     if ( !is_pv_32bit_domain(d) && use_invpcid && cpu_has_pcid )
         switch ( ACCESS_ONCE(opt_pcid) )
         {
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765521.1176207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMvA-0002mi-Jr; Fri, 26 Jul 2024 15:31:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765521.1176207; Fri, 26 Jul 2024 15:31:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMvA-0002lw-AW; Fri, 26 Jul 2024 15:31:52 +0000
Received: by outflank-mailman (input) for mailman id 765521;
 Fri, 26 Jul 2024 15:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMv8-00084Z-Fm
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:50 +0000
Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com
 [2607:f8b0:4864:20::f33])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ce49961-4b64-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:31:50 +0200 (CEST)
Received: by mail-qv1-xf33.google.com with SMTP id
 6a1803df08f44-6b797234b09so6976056d6.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:50 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3faf858csm17507206d6.128.2024.07.26.08.31.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 2ce49961-4b64-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007908; x=1722612708; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ufe7axpF1ypMkRxpc+P1Xp8b7quSOOvHVvX3frr6ICk=;
        b=TyDYpBwrBC9nFO9DFal52naltESj2OEJ01croPBXbqBGwzv6BArT7pdZLC0CQfTGbk
         IQKxa+F875U+FsrEZj6i/RasPvv6o1h2c2IcePYcGPvEOxfbpJAGh2abLDAG4NpCe78c
         acyPsY5pk5m4EApMMw6ceyVlKDVsF8mw3EP7U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007908; x=1722612708;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ufe7axpF1ypMkRxpc+P1Xp8b7quSOOvHVvX3frr6ICk=;
        b=FXydynoG708w1rGsnX+hsXcUGyLAHsDOixxlJ7eszVjOLja411xqRH73tU/dCZwdyr
         R3yFn5UV5Ag9/okreSigPalTheT9WxFOmkpNMETO4zKKFplVF01XLJmayxnYjcRmAUhK
         GeYJZFghNfkt9PTiPtFlRn+PdqMZvTIu5NeBq7L9WJDRScJl53SDUPcB5Ap9w/YQSIX7
         QXR761ACaqoQcQ6Yx4Av7NVhSxFcmdcHNU6L2pdvI68vC77k8u2M7NQHaIhPEmghylPz
         Tr/EEHVIkfG9QrMe0gT9qjKTKxfKY0ucTXC5dJ0jd5GuJR6kl44dvTcsDxDiCQ49XSn9
         T60A==
X-Gm-Message-State: AOJu0YwXN8H++EsmMI3rugLUn+sB/KwKkL8ZejNR5aHOS9+JPIMdkSI4
	kktJrtIPXsE8ezRkwpRdj03n04KJ3r7vTSsRt0uXHohUlPyg5DXI+a+Jn2DVG3hBRcXMnMDWEgY
	D
X-Google-Smtp-Source: AGHT+IHc7fZj2qbt+CZssxa2I5bm4GBAKmtWk5QMumzkfy0VWkMpko7m2q+uj3dIHAa/OM3tGAsQnQ==
X-Received: by 2002:a05:6214:1785:b0:6b7:9a53:70e9 with SMTP id 6a1803df08f44-6b99154d6d4mr154646366d6.17.1722007908375;
        Fri, 26 Jul 2024 08:31:48 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 10/22] x86/mm: move FLUSH_ROOT_PGTBL handling before TLB flush
Date: Fri, 26 Jul 2024 17:21:54 +0200
Message-ID: <20240726152206.28411-11-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Move the handling of FLUSH_ROOT_PGTBL in flush_area_local() ahead of the logic
that does the TLB flushing, in preparation for further changes requiring the
TLB flush to be strictly done after having handled FLUSH_ROOT_PGTBL.

No functional change intended.

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

diff --git a/xen/arch/x86/flushtlb.c b/xen/arch/x86/flushtlb.c
index 18748b2bc805..fd5ed16ffb57 100644
--- a/xen/arch/x86/flushtlb.c
+++ b/xen/arch/x86/flushtlb.c
@@ -191,6 +191,9 @@ unsigned int flush_area_local(const void *va, unsigned int flags)
 {
     unsigned int order = (flags - 1) & FLUSH_ORDER_MASK;
 
+    if ( flags & FLUSH_ROOT_PGTBL )
+        get_cpu_info()->root_pgt_changed = true;
+
     if ( flags & (FLUSH_TLB|FLUSH_TLB_GLOBAL) )
     {
         if ( order == 0 )
@@ -254,9 +257,6 @@ unsigned int flush_area_local(const void *va, unsigned int flags)
         }
     }
 
-    if ( flags & FLUSH_ROOT_PGTBL )
-        get_cpu_info()->root_pgt_changed = true;
-
     return flags;
 }
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765528.1176217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMvC-0003Ew-Np; Fri, 26 Jul 2024 15:31:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765528.1176217; Fri, 26 Jul 2024 15:31:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMvC-0003ES-IY; Fri, 26 Jul 2024 15:31:54 +0000
Received: by outflank-mailman (input) for mailman id 765528;
 Fri, 26 Jul 2024 15:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMvA-00084Z-O4
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:52 +0000
Received: from mail-ot1-x32e.google.com (mail-ot1-x32e.google.com
 [2607:f8b0:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2e24b3cc-4b64-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:31:52 +0200 (CEST)
Received: by mail-ot1-x32e.google.com with SMTP id
 46e09a7af769-709340f1cb1so493262a34.3
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:52 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f8fccc8sm17632336d6.46.2024.07.26.08.31.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 2e24b3cc-4b64-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007910; x=1722612710; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6hWSsSoEx0LARRjSkgW9NcJZyDQpP6n7zvGlI2J4wyQ=;
        b=v7xk+VQpkTsZaEZbp0MkbxyouX2fEB72+40E+mLROAPvWNn58REHd/zvN3AquF+Ysv
         UW0racs50Rl1qNQbmjlaFIlSocIJHwphDdP0fx8CRSCwEu6ZD+YBg472Tjtfqzv2r4xt
         74/VQwUmnHAsqRTUs/4RMKofyza/wXZNQWF4o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007910; x=1722612710;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=6hWSsSoEx0LARRjSkgW9NcJZyDQpP6n7zvGlI2J4wyQ=;
        b=ROtqgqIGTXjVk5X7sc1Zr195RGha1xKHygC+WYDy6JVc+r5mOjOwjni1CAAqZu4Clo
         s32cIojzSsLMwFAtr8Qnrxwz8AJ/kUskc5pjt83O2+Xp18Kj5ZFeqDB067ettVBryHpe
         SJEqsCVMNymPZIM7VoljhJYlPgyfLBiytt7xLqIZINHVg3bsfzCDd5I7/2Yv7gsuvixV
         KosdqHo9fd1LHJC90gNEaqn0XzM0qGryrDvsz/1vJPB31Ju4Zr2ETrHAkccH/kgqjhW4
         D1H5U6JB+8vcAmNJKuB+b47zkj7ryjP01NpQnqfNRREY6731Ep94IYA8ZbOHyXf8cceL
         fAvA==
X-Gm-Message-State: AOJu0Yx8GaEeKhyrjd1l0hWKmKwiVvxLgOipinrfv6RamsXlg5QPfOE3
	y65oSTb/MPWZ3kaBvBmYYC/tJWW8KhdRQ2Mx4eHXK3lNr103FaQ1F+JEr7D7ahWEQMxbe3oV6C/
	W
X-Google-Smtp-Source: AGHT+IHxlzX8le2A7D93UfdcVgHhPUz046St0tOWOrUfJUB4rrBX2JMUFaM2f0ryExX5KYWoktrEzg==
X-Received: by 2002:a05:6830:9c3:b0:708:b2c6:bb41 with SMTP id 46e09a7af769-709321125famr6342877a34.2.1722007910496;
        Fri, 26 Jul 2024 08:31:50 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 11/22] x86/mm: split setup of the per-domain slot on context switch
Date: Fri, 26 Jul 2024 17:21:55 +0200
Message-ID: <20240726152206.28411-12-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's currently only used for XPTI.  Move the code to a separate helper in
preparation for it gaining more logic.

While there switch to using l4e_write(): in the current context the L4 is
not active when modified, but that could change.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/domain.c         | 4 +---
 xen/arch/x86/include/asm/mm.h | 3 +++
 xen/arch/x86/mm.c             | 7 +++++++
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 3d3c14dbb5ae..9cfcf0dc63f3 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1918,9 +1918,7 @@ void cf_check paravirt_ctxt_switch_to(struct vcpu *v)
     root_pgentry_t *root_pgt = this_cpu(root_pgt);
 
     if ( root_pgt )
-        root_pgt[root_table_offset(PERDOMAIN_VIRT_START)] =
-            l4e_from_page(v->domain->arch.perdomain_l3_pg,
-                          __PAGE_HYPERVISOR_RW);
+        setup_perdomain_slot(v, root_pgt);
 
     if ( unlikely(v->arch.dr7 & DR7_ACTIVE_MASK) )
         activate_debugregs(v);
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 076e7009dc99..2c309f7b1444 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -630,4 +630,7 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
     return (mfn + nr) <= (virt_to_mfn(eva - 1) + 1);
 }
 
+/* Setup the per-domain slot in the root page table pointer. */
+void setup_perdomain_slot(const struct vcpu *v, root_pgentry_t *root_pgt);
+
 #endif /* __ASM_X86_MM_H__ */
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index a1ac7bdc5b44..35e929057d21 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -6362,6 +6362,13 @@ unsigned long get_upper_mfn_bound(void)
     return min(max_mfn, 1UL << (paddr_bits - PAGE_SHIFT)) - 1;
 }
 
+void setup_perdomain_slot(const struct vcpu *v, root_pgentry_t *root_pgt)
+{
+    l4e_write(&root_pgt[root_table_offset(PERDOMAIN_VIRT_START)],
+              l4e_from_page(v->domain->arch.perdomain_l3_pg,
+                            __PAGE_HYPERVISOR_RW));
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:31:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:31:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765531.1176226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMvG-0003uH-40; Fri, 26 Jul 2024 15:31:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765531.1176226; Fri, 26 Jul 2024 15:31: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 1sXMvF-0003ti-VA; Fri, 26 Jul 2024 15:31:57 +0000
Received: by outflank-mailman (input) for mailman id 765531;
 Fri, 26 Jul 2024 15:31: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMvE-00084T-T5
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:31:56 +0000
Received: from mail-ot1-x333.google.com (mail-ot1-x333.google.com
 [2607:f8b0:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2fd9cbbd-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:31:55 +0200 (CEST)
Received: by mail-ot1-x333.google.com with SMTP id
 46e09a7af769-703ba2477bdso609366a34.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:55 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fac6b6csm17414816d6.116.2024.07.26.08.31.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 2fd9cbbd-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007913; x=1722612713; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RwqVraHAOEdS2c3l2+7Y1e8iYSimDDq5AdSITnK40sk=;
        b=eXq5YPJ8JeORhYxt8v4nZy1hZ3nSNsdw03RhttIB3usq7Z6UAQ14XGc4f8AJh10syD
         vrxI0Dig0nA/P2zwIbGDQRDF+ojuz5dnoMoQlJ+0VYS17k0BQU9Y+iUOem3zVEvKL5QY
         JT0SkrDF8gUbiKK8DQn8snBi7Zr3PktkPXFl4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007913; x=1722612713;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=RwqVraHAOEdS2c3l2+7Y1e8iYSimDDq5AdSITnK40sk=;
        b=MvtSz+AypS/P+JaFC04qFtb/hgneqXurNBPWQ82eG0CH+Njc8u7+HTRq16G7U2xKqX
         kHSC6eiJLqsCU6N0ngn0gi3Fvn/F0xkLdOYS2AKdGJdnaDQGxbRf22yu5iBAOdr5dKsQ
         djPAHPGRll12+8V4tV2ww6jC1VcaXIV3gy8oUbcPx84rEb8FqdyAZvbFxKKJFgh/UCr6
         e6mYci8uvHGXPF09Ny1KJBJH1dXCMM25G8dPl7Ncry0+74Rovo+fxhZI3UJgcgWppEzJ
         cNN4Bge0zKcJLPLVCZVF87GruQjhncWhbJqMI+zWIobaipAWCcLJBfnUO/ZexljPDqFf
         f04A==
X-Gm-Message-State: AOJu0YxISWJWguPRkE7cQO2FsKJQkln8LmPEPWc9gb5J3RX/bCl7QE/J
	cs19Mn89+uMipMdkLsXEs9p0DPkZ0cfuaIk3StbrRZOQ4w2QtmQT0ukrOnQgd5OaCagYs1mTEzM
	q
X-Google-Smtp-Source: AGHT+IEqRPmgIWN8QNqdUP8A5AuXysm1C0BZEZj9FBfcL0gwTK9jQh8X0JnqL2bI0Bd/lrn6iSOH3g==
X-Received: by 2002:a05:6830:658e:b0:703:5ab1:64d4 with SMTP id 46e09a7af769-7093251b313mr5066647a34.29.1722007912714;
        Fri, 26 Jul 2024 08:31:52 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 12/22] x86/spec-ctrl: introduce Address Space Isolation command line option
Date: Fri, 26 Jul 2024 17:21:56 +0200
Message-ID: <20240726152206.28411-13-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

No functional change, as the option is not used.

Introduced new so newly added functionality is keyed on the option being
enabled, even if the feature is non-functional.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 docs/misc/xen-command-line.pandoc    | 15 ++++--
 xen/arch/x86/include/asm/domain.h    |  3 ++
 xen/arch/x86/include/asm/spec_ctrl.h |  2 +
 xen/arch/x86/spec_ctrl.c             | 74 +++++++++++++++++++++++++---
 4 files changed, 81 insertions(+), 13 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 98a45211556b..0ddc330428d9 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2387,7 +2387,7 @@ By default SSBD will be mitigated at runtime (i.e `ssbd=runtime`).
 
 ### spec-ctrl (x86)
 > `= List of [ <bool>, xen=<bool>, {pv,hvm}=<bool>,
->              {msr-sc,rsb,verw,{ibpb,bhb}-entry}=<bool>|{pv,hvm}=<bool>,
+>              {msr-sc,rsb,verw,{ibpb,bhb}-entry,asi}=<bool>|{pv,hvm}=<bool>,
 >              bti-thunk=retpoline|lfence|jmp,bhb-seq=short|tsx|long,
 >              {ibrs,ibpb,ssbd,psfd,
 >              eager-fpu,l1d-flush,branch-harden,srb-lock,
@@ -2414,10 +2414,10 @@ in place for guests to use.
 
 Use of a positive boolean value for either of these options is invalid.
 
-The `pv=`, `hvm=`, `msr-sc=`, `rsb=`, `verw=`, `ibpb-entry=` and `bhb-entry=`
-options offer fine grained control over the primitives by Xen.  These impact
-Xen's ability to protect itself, and/or Xen's ability to virtualise support
-for guests to use.
+The `pv=`, `hvm=`, `msr-sc=`, `rsb=`, `verw=`, `ibpb-entry=`, `bhb-entry=` and
+`asi=` options offer fine grained control over the primitives by Xen.  These
+impact Xen's ability to protect itself, and/or Xen's ability to virtualise
+support for guests to use.
 
 * `pv=` and `hvm=` offer control over all suboptions for PV and HVM guests
   respectively.
@@ -2449,6 +2449,11 @@ for guests to use.
   is not available (see `bhi-dis-s`).  The choice of scrubbing sequence can be
   selected using the `bhb-seq=` option.  If it is necessary to protect dom0
   too, boot with `spec-ctrl=bhb-entry`.
+* `asi=` offers control over whether the hypervisor will engage in Address
+  Space Isolation, by not having sensitive information mapped in the VMM
+  page-tables.  Not having sensitive information on the page-tables avoids
+  having to perform some mitigations for speculative attacks when
+  context-switching to the hypervisor.
 
 If Xen was compiled with `CONFIG_INDIRECT_THUNK` support, `bti-thunk=` can be
 used to select which of the thunks gets patched into the
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 9dd2e047f4de..8c366be8c75f 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -458,6 +458,9 @@ struct arch_domain
     /* Don't unconditionally inject #GP for unhandled MSRs. */
     bool msr_relaxed;
 
+    /* Run the guest without sensitive information in the VMM page-tables. */
+    bool asi;
+
     /* Emulated devices enabled bitmap. */
     uint32_t emulation_flags;
 } __cacheline_aligned;
diff --git a/xen/arch/x86/include/asm/spec_ctrl.h b/xen/arch/x86/include/asm/spec_ctrl.h
index 72347ef2b959..39963c004312 100644
--- a/xen/arch/x86/include/asm/spec_ctrl.h
+++ b/xen/arch/x86/include/asm/spec_ctrl.h
@@ -88,6 +88,8 @@ extern uint8_t default_scf;
 
 extern int8_t opt_xpti_hwdom, opt_xpti_domu;
 
+extern int8_t opt_asi_pv, opt_asi_hwdom, opt_asi_hvm;
+
 extern bool cpu_has_bug_l1tf;
 extern int8_t opt_pv_l1tf_hwdom, opt_pv_l1tf_domu;
 
diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index 5dc7a17b9354..2e403aad791c 100644
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -84,6 +84,11 @@ static bool __ro_after_init opt_verw_mmio;
 static int8_t __initdata opt_gds_mit = -1;
 static int8_t __initdata opt_div_scrub = -1;
 
+/* Address Space Isolation for PV/HVM. */
+int8_t __ro_after_init opt_asi_pv = -1;
+int8_t __ro_after_init opt_asi_hwdom = -1;
+int8_t __ro_after_init opt_asi_hvm = -1;
+
 static int __init cf_check parse_spec_ctrl(const char *s)
 {
     const char *ss;
@@ -143,6 +148,10 @@ static int __init cf_check parse_spec_ctrl(const char *s)
             opt_unpriv_mmio = false;
             opt_gds_mit = 0;
             opt_div_scrub = 0;
+
+            opt_asi_pv = 0;
+            opt_asi_hwdom = 0;
+            opt_asi_hvm = 0;
         }
         else if ( val > 0 )
             rc = -EINVAL;
@@ -162,6 +171,7 @@ static int __init cf_check parse_spec_ctrl(const char *s)
             opt_verw_pv = val;
             opt_ibpb_entry_pv = val;
             opt_bhb_entry_pv = val;
+            opt_asi_pv = val;
         }
         else if ( (val = parse_boolean("hvm", s, ss)) >= 0 )
         {
@@ -170,6 +180,7 @@ static int __init cf_check parse_spec_ctrl(const char *s)
             opt_verw_hvm = val;
             opt_ibpb_entry_hvm = val;
             opt_bhb_entry_hvm = val;
+            opt_asi_hvm = val;
         }
         else if ( (val = parse_boolean("msr-sc", s, ss)) != -1 )
         {
@@ -279,6 +290,27 @@ static int __init cf_check parse_spec_ctrl(const char *s)
                 break;
             }
         }
+        else if ( (val = parse_boolean("asi", s, ss)) != -1 )
+        {
+            switch ( val )
+            {
+            case 0:
+            case 1:
+                opt_asi_pv = opt_asi_hwdom = opt_asi_hvm = val;
+                break;
+
+            case -2:
+                s += strlen("asi=");
+                if ( (val = parse_boolean("pv", s, ss)) >= 0 )
+                    opt_asi_pv = val;
+                else if ( (val = parse_boolean("hvm", s, ss)) >= 0 )
+                    opt_asi_hvm = val;
+                else
+            default:
+                    rc = -EINVAL;
+                break;
+            }
+        }
 
         /* Xen's speculative sidechannel mitigation settings. */
         else if ( !strncmp(s, "bti-thunk=", 10) )
@@ -378,6 +410,13 @@ int8_t __ro_after_init opt_xpti_domu = -1;
 
 static __init void xpti_init_default(void)
 {
+    ASSERT(opt_asi_pv >= 0 && opt_asi_hwdom >= 0);
+    if ( (opt_xpti_hwdom == 1 || opt_xpti_domu == 1) && opt_asi_pv == 1 )
+    {
+        printk(XENLOG_ERR
+               "XPTI is incompatible with Address Space Isolation - disabling ASI\n");
+        opt_asi_pv = 0;
+    }
     if ( (boot_cpu_data.x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) ||
          cpu_has_rdcl_no )
     {
@@ -389,9 +428,9 @@ static __init void xpti_init_default(void)
     else
     {
         if ( opt_xpti_hwdom < 0 )
-            opt_xpti_hwdom = 1;
+            opt_xpti_hwdom = !opt_asi_hwdom;
         if ( opt_xpti_domu < 0 )
-            opt_xpti_domu = 1;
+            opt_xpti_domu = !opt_asi_pv;
     }
 }
 
@@ -630,12 +669,13 @@ static void __init print_details(enum ind_thunk thunk)
      * mitigation support for guests.
      */
 #ifdef CONFIG_HVM
-    printk("  Support for HVM VMs:%s%s%s%s%s%s%s%s\n",
+    printk("  Support for HVM VMs:%s%s%s%s%s%s%s%s%s\n",
            (boot_cpu_has(X86_FEATURE_SC_MSR_HVM) ||
             boot_cpu_has(X86_FEATURE_SC_RSB_HVM) ||
             boot_cpu_has(X86_FEATURE_IBPB_ENTRY_HVM) ||
             opt_bhb_entry_hvm || amd_virt_spec_ctrl ||
-            opt_eager_fpu || opt_verw_hvm)           ? ""               : " None",
+            opt_eager_fpu || opt_verw_hvm ||
+            opt_asi_hvm)                             ? ""               : " None",
            boot_cpu_has(X86_FEATURE_SC_MSR_HVM)      ? " MSR_SPEC_CTRL" : "",
            (boot_cpu_has(X86_FEATURE_SC_MSR_HVM) ||
             amd_virt_spec_ctrl)                      ? " MSR_VIRT_SPEC_CTRL" : "",
@@ -643,22 +683,24 @@ static void __init print_details(enum ind_thunk thunk)
            opt_eager_fpu                             ? " EAGER_FPU"     : "",
            opt_verw_hvm                              ? " VERW"          : "",
            boot_cpu_has(X86_FEATURE_IBPB_ENTRY_HVM)  ? " IBPB-entry"    : "",
-           opt_bhb_entry_hvm                         ? " BHB-entry"     : "");
+           opt_bhb_entry_hvm                         ? " BHB-entry"     : "",
+           opt_asi_hvm                               ? " ASI"           : "");
 
 #endif
 #ifdef CONFIG_PV
-    printk("  Support for PV VMs:%s%s%s%s%s%s%s\n",
+    printk("  Support for PV VMs:%s%s%s%s%s%s%s%s\n",
            (boot_cpu_has(X86_FEATURE_SC_MSR_PV) ||
             boot_cpu_has(X86_FEATURE_SC_RSB_PV) ||
             boot_cpu_has(X86_FEATURE_IBPB_ENTRY_PV) ||
-            opt_bhb_entry_pv ||
+            opt_bhb_entry_pv || opt_asi_pv ||
             opt_eager_fpu || opt_verw_pv)            ? ""               : " None",
            boot_cpu_has(X86_FEATURE_SC_MSR_PV)       ? " MSR_SPEC_CTRL" : "",
            boot_cpu_has(X86_FEATURE_SC_RSB_PV)       ? " RSB"           : "",
            opt_eager_fpu                             ? " EAGER_FPU"     : "",
            opt_verw_pv                               ? " VERW"          : "",
            boot_cpu_has(X86_FEATURE_IBPB_ENTRY_PV)   ? " IBPB-entry"    : "",
-           opt_bhb_entry_pv                          ? " BHB-entry"     : "");
+           opt_bhb_entry_pv                          ? " BHB-entry"     : "",
+           opt_asi_pv                                ? " ASI"           : "");
 
     printk("  XPTI (64-bit PV only): Dom0 %s, DomU %s (with%s PCID)\n",
            opt_xpti_hwdom ? "enabled" : "disabled",
@@ -1773,6 +1815,9 @@ void spec_ctrl_init_domain(struct domain *d)
     if ( pv )
         d->arch.pv.xpti = is_hardware_domain(d) ? opt_xpti_hwdom
                                                 : opt_xpti_domu;
+
+    d->arch.asi = is_hardware_domain(d) ? opt_asi_hwdom
+                                        : pv ? opt_asi_pv : opt_asi_hvm;
 }
 
 void __init init_speculation_mitigations(void)
@@ -2069,6 +2114,19 @@ void __init init_speculation_mitigations(void)
          hw_smt_enabled && default_xen_spec_ctrl )
         setup_force_cpu_cap(X86_FEATURE_SC_MSR_IDLE);
 
+    /* Disable ASI by default until feature is finished. */
+    if ( opt_asi_pv == -1 )
+        opt_asi_pv = 0;
+    if ( opt_asi_hwdom == -1 )
+        opt_asi_hwdom = 0;
+    if ( opt_asi_hvm == -1 )
+        opt_asi_hvm = 0;
+
+    if ( opt_asi_pv || opt_asi_hvm )
+        warning_add(
+            "Address Space Isolation is not functional, this option is\n"
+            "intended to be used only for development purposes.\n");
+
     xpti_init_default();
 
     l1tf_calculations();
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:32:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:32:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765538.1176237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXMvJ-0004WM-Re; Fri, 26 Jul 2024 15:32:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765538.1176237; Fri, 26 Jul 2024 15: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 1sXMvJ-0004Va-Np; Fri, 26 Jul 2024 15:32:01 +0000
Received: by outflank-mailman (input) for mailman id 765538;
 Fri, 26 Jul 2024 15: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMvH-00084T-Tp
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:32:00 +0000
Received: from mail-ot1-x330.google.com (mail-ot1-x330.google.com
 [2607:f8b0:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3110a368-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:31:57 +0200 (CEST)
Received: by mail-ot1-x330.google.com with SMTP id
 46e09a7af769-7035b2947a4so632328a34.3
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:57 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fa94e7csm17499786d6.91.2024.07.26.08.31.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08: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: 3110a368-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007915; x=1722612715; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bm6SwbrLrL2F0whPBohLSi3P90SQDvaLyu2bafK8Eyw=;
        b=BxdtNThbjEeZ+BYrnpa+C4wJ45o2O88QfK5jzQS8jusOtrdih2MXa7o8v20rUeBDvp
         v0DPIVXY511ZBBu3VwVkJTQJZQSUWGOU7seNodwjREMvKVx8d9qQk1Sc4g4ZsFWxYKme
         f8lde/VZ+/KV9MM0Eii73ol92SfYg0Obx8QIg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007915; x=1722612715;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Bm6SwbrLrL2F0whPBohLSi3P90SQDvaLyu2bafK8Eyw=;
        b=AXq1+7KJHZ0MUyf9xctBNg7BHrmgjAz/CA0e447ccDLvPzOiaZkkCt30OyMn+EWrZc
         mOoEZVkTEU3ipGFtUVb99DaGKxHkyd4QlI41TzgTADb76ZrONV2K92dwH6ags39p9uM3
         LxaCf1zW0/Pu7B3+qwWYDpTDMNVvSao2fe5Ajrz9F5HVF4TmjiVnAsp0C6HQR0psiOJ6
         7+UMlcl9jZtT7563Xk+s94i/ZBIssRYTXnyx6Vge6bmxyD5iDtu0f9IYN/zmkvo2RdkN
         bUwUB0VH3YEkp9VFXQ3HK0qoT7q7xaEoHuwmOtSaHtihcjdjztdIEsZVK8zWEgSztNtF
         PRbw==
X-Gm-Message-State: AOJu0Yyt9Lu2HScz2OitSeZExlS0CSe6CA4tm+tiZ/3bhwgpFQBSL9sX
	vr1wGEYQ7QlIGvVjpnfB5taDIx/7oy67KZihdZS7xouDmU9DtMzIakX4PrUOdXUSJ3zmftzPrrG
	i
X-Google-Smtp-Source: AGHT+IHEhPUjKUQ4d5eJhvKBEzz6/++MROSwxGNSkIyqscU6O9baUOB7YZ72GYyoimg6xQnrkpiKKA==
X-Received: by 2002:a05:6830:61c6:b0:703:79c6:a9ba with SMTP id 46e09a7af769-7092e695159mr8230070a34.7.1722007914842;
        Fri, 26 Jul 2024 08:31:54 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 13/22] x86/hvm: use a per-pCPU monitor table in HAP mode
Date: Fri, 26 Jul 2024 17:21:57 +0200
Message-ID: <20240726152206.28411-14-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Instead of allocating a monitor table for each vCPU when running in HVM HAP
mode, use a per-pCPU monitor table, which gets the per-domain slot updated on
guest context switch.

This limits the amount of memory used for HVM HAP monitor tables to the amount
of active pCPUs, rather than to the number of vCPUs.  It also simplifies vCPU
allocation and teardown, since the monitor table handling is removed from
there.

Note the switch to using a per-CPU monitor table is done regardless of whether
Address Space Isolation is enabled or not.  Partly for the memory usage
reduction, and also because it allows to simplify the VM tear down path by not
having to cleanup the per-vCPU monitor tables.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Note the monitor table is not made static because uses outside of the file
where it's defined will be added by further patches.
---
 xen/arch/x86/hvm/hvm.c             | 60 ++++++++++++++++++++++++
 xen/arch/x86/hvm/svm/svm.c         |  5 ++
 xen/arch/x86/hvm/vmx/vmcs.c        |  1 +
 xen/arch/x86/hvm/vmx/vmx.c         |  4 ++
 xen/arch/x86/include/asm/hap.h     |  1 -
 xen/arch/x86/include/asm/hvm/hvm.h |  8 ++++
 xen/arch/x86/mm.c                  |  8 ++++
 xen/arch/x86/mm/hap/hap.c          | 75 ------------------------------
 xen/arch/x86/mm/paging.c           |  4 +-
 9 files changed, 87 insertions(+), 79 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7f4b627b1f5f..3f771bc65677 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -104,6 +104,54 @@ static const char __initconst warning_hvm_fep[] =
 static bool __initdata opt_altp2m_enabled;
 boolean_param("altp2m", opt_altp2m_enabled);
 
+DEFINE_PER_CPU(root_pgentry_t *, monitor_pgt);
+
+static int allocate_cpu_monitor_table(unsigned int cpu)
+{
+    root_pgentry_t *pgt = alloc_xenheap_page();
+
+    if ( !pgt )
+        return -ENOMEM;
+
+    clear_page(pgt);
+
+    init_xen_l4_slots(pgt, _mfn(virt_to_mfn(pgt)), INVALID_MFN, NULL,
+                      false, true, false);
+
+    ASSERT(!per_cpu(monitor_pgt, cpu));
+    per_cpu(monitor_pgt, cpu) = pgt;
+
+    return 0;
+}
+
+static void free_cpu_monitor_table(unsigned int cpu)
+{
+    root_pgentry_t *pgt = per_cpu(monitor_pgt, cpu);
+
+    if ( !pgt )
+        return;
+
+    per_cpu(monitor_pgt, cpu) = NULL;
+    free_xenheap_page(pgt);
+}
+
+void hvm_set_cpu_monitor_table(struct vcpu *v)
+{
+    root_pgentry_t *pgt = this_cpu(monitor_pgt);
+
+    ASSERT(pgt);
+
+    setup_perdomain_slot(v, pgt);
+
+    make_cr3(v, _mfn(virt_to_mfn(pgt)));
+}
+
+void hvm_clear_cpu_monitor_table(struct vcpu *v)
+{
+    /* Poison %cr3, it will be updated when the vCPU is scheduled. */
+    make_cr3(v, INVALID_MFN);
+}
+
 static int cf_check cpu_callback(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
@@ -113,6 +161,9 @@ static int cf_check cpu_callback(
     switch ( action )
     {
     case CPU_UP_PREPARE:
+        rc = allocate_cpu_monitor_table(cpu);
+        if ( rc )
+            break;
         rc = alternative_call(hvm_funcs.cpu_up_prepare, cpu);
         break;
     case CPU_DYING:
@@ -121,6 +172,7 @@ static int cf_check cpu_callback(
     case CPU_UP_CANCELED:
     case CPU_DEAD:
         alternative_vcall(hvm_funcs.cpu_dead, cpu);
+        free_cpu_monitor_table(cpu);
         break;
     default:
         break;
@@ -154,6 +206,7 @@ static bool __init hap_supported(struct hvm_function_table *fns)
 static int __init cf_check hvm_enable(void)
 {
     const struct hvm_function_table *fns = NULL;
+    int rc;
 
     if ( cpu_has_vmx )
         fns = start_vmx();
@@ -205,6 +258,13 @@ static int __init cf_check hvm_enable(void)
 
     register_cpu_notifier(&cpu_nfb);
 
+    rc = allocate_cpu_monitor_table(0);
+    if ( rc )
+    {
+        printk(XENLOG_ERR "Error %d setting up HVM monitor page tables\n", rc);
+        return rc;
+    }
+
     return 0;
 }
 presmp_initcall(hvm_enable);
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 988250dbc154..a3fc033c0100 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -902,6 +902,8 @@ static void cf_check svm_ctxt_switch_from(struct vcpu *v)
     if ( unlikely((read_efer() & EFER_SVME) == 0) )
         return;
 
+    hvm_clear_cpu_monitor_table(v);
+
     if ( !v->arch.fully_eager_fpu )
         svm_fpu_leave(v);
 
@@ -957,6 +959,8 @@ static void cf_check svm_ctxt_switch_to(struct vcpu *v)
         ASSERT(v->domain->arch.cpuid->extd.virt_ssbd);
         amd_set_legacy_ssbd(true);
     }
+
+    hvm_set_cpu_monitor_table(v);
 }
 
 static void noreturn cf_check svm_do_resume(void)
@@ -990,6 +994,7 @@ static void noreturn cf_check svm_do_resume(void)
         hvm_migrate_pirqs(v);
         /* Migrating to another ASID domain.  Request a new ASID. */
         hvm_asid_flush_vcpu(v);
+        hvm_update_host_cr3(v);
     }
 
     if ( !vcpu_guestmode && !vlapic_hw_disabled(vlapic) )
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 9b6dc51f36ab..5d67c8157825 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1957,6 +1957,7 @@ void cf_check vmx_do_resume(void)
         v->arch.hvm.vmx.hostenv_migrated = 1;
 
         hvm_asid_flush_vcpu(v);
+        hvm_update_host_cr3(v);
     }
 
     debug_state = v->domain->debugger_attached
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index cbe91c679807..5863c57b2d4a 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1153,6 +1153,8 @@ static void cf_check vmx_ctxt_switch_from(struct vcpu *v)
     if ( unlikely(!this_cpu(vmxon)) )
         return;
 
+    hvm_clear_cpu_monitor_table(v);
+
     if ( !v->is_running )
     {
         /*
@@ -1182,6 +1184,8 @@ static void cf_check vmx_ctxt_switch_to(struct vcpu *v)
 
     if ( v->domain->arch.hvm.pi_ops.flags & PI_CSW_TO )
         vmx_pi_switch_to(v);
+
+    hvm_set_cpu_monitor_table(v);
 }
 
 
diff --git a/xen/arch/x86/include/asm/hap.h b/xen/arch/x86/include/asm/hap.h
index f01ce73fb4f3..ae6760bc2bf5 100644
--- a/xen/arch/x86/include/asm/hap.h
+++ b/xen/arch/x86/include/asm/hap.h
@@ -24,7 +24,6 @@ int   hap_domctl(struct domain *d, struct xen_domctl_shadow_op *sc,
                  XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
 int   hap_enable(struct domain *d, u32 mode);
 void  hap_final_teardown(struct domain *d);
-void  hap_vcpu_teardown(struct vcpu *v);
 void  hap_teardown(struct domain *d, bool *preempted);
 void  hap_vcpu_init(struct vcpu *v);
 int   hap_track_dirty_vram(struct domain *d,
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 1c01e22c8e62..6d9a1ae04feb 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -550,6 +550,14 @@ static inline void hvm_invlpg(struct vcpu *v, unsigned long linear)
                        (1U << X86_EXC_AC) | \
                        (1U << X86_EXC_MC))
 
+/*
+ * Setup the per-domain slots of the per-cpu monitor table and update the vCPU
+ * cr3 to use it.
+ */
+DECLARE_PER_CPU(root_pgentry_t *, monitor_pgt);
+void hvm_set_cpu_monitor_table(struct vcpu *v);
+void hvm_clear_cpu_monitor_table(struct vcpu *v);
+
 /* Called in boot/resume paths.  Must cope with no HVM support. */
 static inline int hvm_cpu_up(void)
 {
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 35e929057d21..7f2666adaef4 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -6367,6 +6367,14 @@ void setup_perdomain_slot(const struct vcpu *v, root_pgentry_t *root_pgt)
     l4e_write(&root_pgt[root_table_offset(PERDOMAIN_VIRT_START)],
               l4e_from_page(v->domain->arch.perdomain_l3_pg,
                             __PAGE_HYPERVISOR_RW));
+
+    if ( !is_pv_64bit_vcpu(v) )
+        /*
+         * HVM guests always have the compatibility L4 per-domain area because
+         * bitness is not know, and can change at runtime.
+         */
+        l4e_write(&root_pgt[root_table_offset(PERDOMAIN_ALT_VIRT_START)],
+                  root_pgt[root_table_offset(PERDOMAIN_VIRT_START)]);
 }
 
 static void __init __maybe_unused build_assertions(void)
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index c8514ca0e917..3279aafcd7d8 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -387,46 +387,6 @@ int hap_set_allocation(struct domain *d, unsigned int pages, bool *preempted)
     return 0;
 }
 
-static mfn_t hap_make_monitor_table(struct vcpu *v)
-{
-    struct domain *d = v->domain;
-    struct page_info *pg;
-    l4_pgentry_t *l4e;
-    mfn_t m4mfn;
-
-    ASSERT(pagetable_get_pfn(v->arch.hvm.monitor_table) == 0);
-
-    if ( (pg = hap_alloc(d)) == NULL )
-        goto oom;
-
-    m4mfn = page_to_mfn(pg);
-    l4e = map_domain_page(m4mfn);
-
-    init_xen_l4_slots(l4e, m4mfn, INVALID_MFN, d->arch.perdomain_l3_pg,
-                      false, true, false);
-    unmap_domain_page(l4e);
-
-    return m4mfn;
-
- oom:
-    if ( !d->is_dying &&
-         (!d->is_shutting_down || d->shutdown_code != SHUTDOWN_crash) )
-    {
-        printk(XENLOG_G_ERR "%pd: out of memory building monitor pagetable\n",
-               d);
-        domain_crash(d);
-    }
-    return INVALID_MFN;
-}
-
-static void hap_destroy_monitor_table(struct vcpu* v, mfn_t mmfn)
-{
-    struct domain *d = v->domain;
-
-    /* Put the memory back in the pool */
-    hap_free(d, mmfn);
-}
-
 /************************************************/
 /*          HAP DOMAIN LEVEL FUNCTIONS          */
 /************************************************/
@@ -548,25 +508,6 @@ void hap_final_teardown(struct domain *d)
     }
 }
 
-void hap_vcpu_teardown(struct vcpu *v)
-{
-    struct domain *d = v->domain;
-    mfn_t mfn;
-
-    paging_lock(d);
-
-    if ( !paging_mode_hap(d) || !v->arch.paging.mode )
-        goto out;
-
-    mfn = pagetable_get_mfn(v->arch.hvm.monitor_table);
-    if ( mfn_x(mfn) )
-        hap_destroy_monitor_table(v, mfn);
-    v->arch.hvm.monitor_table = pagetable_null();
-
- out:
-    paging_unlock(d);
-}
-
 void hap_teardown(struct domain *d, bool *preempted)
 {
     struct vcpu *v;
@@ -575,10 +516,6 @@ void hap_teardown(struct domain *d, bool *preempted)
     ASSERT(d->is_dying);
     ASSERT(d != current->domain);
 
-    /* TODO - Remove when the teardown path is better structured. */
-    for_each_vcpu ( d, v )
-        hap_vcpu_teardown(v);
-
     /* Leave the root pt in case we get further attempts to modify the p2m. */
     if ( hvm_altp2m_supported() )
     {
@@ -782,21 +719,9 @@ static void cf_check hap_update_paging_modes(struct vcpu *v)
 
     v->arch.paging.mode = hap_paging_get_mode(v);
 
-    if ( pagetable_is_null(v->arch.hvm.monitor_table) )
-    {
-        mfn_t mmfn = hap_make_monitor_table(v);
-
-        if ( mfn_eq(mmfn, INVALID_MFN) )
-            goto unlock;
-        v->arch.hvm.monitor_table = pagetable_from_mfn(mmfn);
-        make_cr3(v, mmfn);
-        hvm_update_host_cr3(v);
-    }
-
     /* CR3 is effectively updated by a mode change. Flush ASIDs, etc. */
     hap_update_cr3(v, false);
 
- unlock:
     paging_unlock(d);
     put_gfn(d, cr3_gfn);
 }
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index bca320fffabf..8ba105b5cb0c 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -794,9 +794,7 @@ long do_paging_domctl_cont(
 
 void paging_vcpu_teardown(struct vcpu *v)
 {
-    if ( hap_enabled(v->domain) )
-        hap_vcpu_teardown(v);
-    else
+    if ( !hap_enabled(v->domain) )
         shadow_vcpu_teardown(v);
 }
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:37:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:37:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765568.1176247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXN0S-0007Yp-IU; Fri, 26 Jul 2024 15:37:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765568.1176247; Fri, 26 Jul 2024 15: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 1sXN0S-0007Yi-EE; Fri, 26 Jul 2024 15:37:20 +0000
Received: by outflank-mailman (input) for mailman id 765568;
 Fri, 26 Jul 2024 15: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMvL-00084T-UE
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:32:03 +0000
Received: from mail-oi1-x22e.google.com (mail-oi1-x22e.google.com
 [2607:f8b0:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 33486385-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:32:00 +0200 (CEST)
Received: by mail-oi1-x22e.google.com with SMTP id
 5614622812f47-3db157d3bb9so641892b6e.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:32:00 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f8fb75esm17647636d6.37.2024.07.26.08.31.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 33486385-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007919; x=1722612719; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HYXdVkLLNIS4KtspHlJSKYzWQbuXp954bdTpVDbEoAM=;
        b=rNx1e2VONFwODEt63rW9CKplpEYgHObqHmkaK5EEUaKiXi+oJ/UlFo6wVetymujbXV
         dAw0e5uhdUZX+Mxt+Z2y8SQ9F4usadtehGX01H0AOMNQHOngK+/Lqxs3X75pHfgct8N8
         eRAct8FyWP5rqqNV8UCGWIbSD1ljuxgJWmrCw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007919; x=1722612719;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=HYXdVkLLNIS4KtspHlJSKYzWQbuXp954bdTpVDbEoAM=;
        b=EzCif13BYp/1aPpzCNfUpj77ElztRDK+q7ym3IxJv2OajoX+Oj+N9PHKXdXYLrtIXW
         szDOblZiiUuOrSk7v9OWB0b3b5Nhz7MeP44iDDgr+0U6bCSyOgkxX/YOHwZubrBEHs4q
         0B4OTwFpEKM8PVyjkmCedK14ZU1bhz0pPTlFrpRoM8NcyqkLRplyauIXsggQa/bbDDle
         uDYMHvtDThqxyIab0tfuPcH8HGs2uF5FdE3G5QkmusDSSY2gohtTt7xru/TEz+6E4wOK
         LVEl++3jWBpjfSi0YBPcX8Koa7QmV8rbZeiB3TudiZ5RB/A92P/GiE5gK9hWdx2sKyIs
         TSIA==
X-Gm-Message-State: AOJu0YxxeMy6YbAbDDNtGKBnYTnBxy0ElnADDX0Tx6ZaL+QC12YhlNVE
	dBQsX/s1X3P53OyYjpPG5g8koOtKoTwelvBBK21o7DHhf6f9Tk2kTbN1teKrOEEhIiViZLQxJbd
	z
X-Google-Smtp-Source: AGHT+IELQuiKg0dTrgg6mKY/L8iQGU8ZCA7DqdUymXnvFtIjJNaHMTKjAvlY61OEYN4a/0/7vnN8Cg==
X-Received: by 2002:a05:6808:16a7:b0:3d9:37cf:3cad with SMTP id 5614622812f47-3db23a812a4mr37700b6e.49.1722007919026;
        Fri, 26 Jul 2024 08:31:59 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 15/22] x86/idle: allow using a per-pCPU L4
Date: Fri, 26 Jul 2024 17:21:59 +0200
Message-ID: <20240726152206.28411-16-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce support for possibly using a different L4 across the idle vCPUs.

This change only introduces support for loading a per-pPCU idle L4, but even
with the per-CPU idle page-table enabled it should still be a clone of
idle_pg_table, hence no functional change expected.

Note the idle L4 is not changed after Xen has reached the SYS_STATE_smp_boot
state, hence there are no need to synchronize the contents of the L4 once the
CPUs are started.

Using a per-CPU idle page-table is not strictly required for the Address Space
Isolation work, as idle page tables are never used when running guests.
However it simplifies memory management of the per-CPU mappings, as creating
per-CPU mappings only require using the idle page-table of the CPU where the
mappings should be created.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/boot/x86_64.S       | 11 +++++++++++
 xen/arch/x86/domain.c            | 20 +++++++++++++++++++-
 xen/arch/x86/domain_page.c       |  2 +-
 xen/arch/x86/include/asm/setup.h |  1 +
 xen/arch/x86/setup.c             |  3 +++
 xen/arch/x86/smpboot.c           |  7 +++++++
 6 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index 04bb62ae8680..af7854820185 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -15,6 +15,17 @@ ENTRY(__high_start)
         mov     $XEN_MINIMAL_CR4,%rcx
         mov     %rcx,%cr4
 
+        /*
+         * Possibly switch to the per-CPU idle page-tables. Note we cannot
+         * switch earlier as the per-CPU page-tables might be above 4G, and
+         * hence need to load them from 64bit code.
+         */
+        mov     ap_cr3(%rip), %rax
+        test    %rax, %rax
+        jz      .L_skip_cr3
+        mov     %rax, %cr3
+.L_skip_cr3:
+
         mov     stack_start(%rip),%rsp
 
         /* Reset EFLAGS (subsumes CLI and CLD). */
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 9cfcf0dc63f3..b62c4311da6c 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -555,6 +555,7 @@ void arch_vcpu_regs_init(struct vcpu *v)
 int arch_vcpu_create(struct vcpu *v)
 {
     struct domain *d = v->domain;
+    root_pgentry_t *pgt = NULL;
     int rc;
 
     v->arch.flags = TF_kernel_mode;
@@ -589,7 +590,23 @@ int arch_vcpu_create(struct vcpu *v)
     else
     {
         /* Idle domain */
-        v->arch.cr3 = __pa(idle_pg_table);
+        if ( (opt_asi_pv || opt_asi_hvm) && v->vcpu_id )
+        {
+            pgt = alloc_xenheap_page();
+
+            /*
+             * For the idle vCPU 0 (the BSP idle vCPU) use idle_pg_table
+             * directly, there's no need to create yet another copy.
+             */
+            rc = -ENOMEM;
+            if ( !pgt )
+                goto fail;
+
+            copy_page(pgt, idle_pg_table);
+            v->arch.cr3 = __pa(pgt);
+        }
+        else
+            v->arch.cr3 = __pa(idle_pg_table);
         rc = 0;
         v->arch.msrs = ZERO_BLOCK_PTR; /* Catch stray misuses */
     }
@@ -611,6 +628,7 @@ int arch_vcpu_create(struct vcpu *v)
     vcpu_destroy_fpu(v);
     xfree(v->arch.msrs);
     v->arch.msrs = NULL;
+    free_xenheap_page(pgt);
 
     return rc;
 }
diff --git a/xen/arch/x86/domain_page.c b/xen/arch/x86/domain_page.c
index eac5e3304fb8..99b78af90fd3 100644
--- a/xen/arch/x86/domain_page.c
+++ b/xen/arch/x86/domain_page.c
@@ -51,7 +51,7 @@ static inline struct vcpu *mapcache_current_vcpu(void)
         if ( (v = idle_vcpu[smp_processor_id()]) == current )
             sync_local_execstate();
         /* We must now be running on the idle page table. */
-        ASSERT(cr3_pa(read_cr3()) == __pa(idle_pg_table));
+        ASSERT(cr3_pa(read_cr3()) == cr3_pa(v->arch.cr3));
     }
 
     return v;
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index d75589178b91..a8452fce8f05 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -14,6 +14,7 @@ extern unsigned long xenheap_initial_phys_start;
 extern uint64_t boot_tsc_stamp;
 
 extern void *stack_start;
+extern unsigned long ap_cr3;
 
 void early_cpu_init(bool verbose);
 void early_time_init(void);
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index bc387d96b519..c5a13b30daf4 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -158,6 +158,9 @@ char asmlinkage __section(".init.bss.stack_aligned") __aligned(STACK_SIZE)
 /* Used by the BSP/AP paths to find the higher half stack mapping to use. */
 void *stack_start = cpu0_stack + STACK_SIZE - sizeof(struct cpu_info);
 
+/* cr3 value for the AP to load on boot. */
+unsigned long ap_cr3;
+
 /* Used by the boot asm to stash the relocated multiboot info pointer. */
 unsigned int asmlinkage __initdata multiboot_ptr;
 
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 8aa621533f3d..e07add36b1b6 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -581,6 +581,13 @@ static int do_boot_cpu(int apicid, int cpu)
 
     stack_start = stack_base[cpu] + STACK_SIZE - sizeof(struct cpu_info);
 
+    /*
+     * If per-CPU idle root page table has been allocated, switch to it as
+     * part of the AP bringup trampoline.
+     */
+    ap_cr3 = idle_vcpu[cpu]->arch.cr3 != __pa(idle_pg_table) ?
+             idle_vcpu[cpu]->arch.cr3 : 0;
+
     /* This grunge runs the startup process for the targeted processor. */
 
     set_cpu_state(CPU_STATE_INIT);
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:37:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:37:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765570.1176252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXN0S-0007c4-QJ; Fri, 26 Jul 2024 15:37:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765570.1176252; Fri, 26 Jul 2024 15: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 1sXN0S-0007bJ-LF; Fri, 26 Jul 2024 15:37:20 +0000
Received: by outflank-mailman (input) for mailman id 765570;
 Fri, 26 Jul 2024 15:37: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMvN-00084T-UO
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:32:05 +0000
Received: from mail-qv1-xf2b.google.com (mail-qv1-xf2b.google.com
 [2607:f8b0:4864:20::f2b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 34934c3e-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:32:02 +0200 (CEST)
Received: by mail-qv1-xf2b.google.com with SMTP id
 6a1803df08f44-6b7b28442f9so9058466d6.3
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:32:02 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f8d82a1sm17586896d6.8.2024.07.26.08.32.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:32: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: 34934c3e-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007921; x=1722612721; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wcKEcIFuRVzpYWYIIO7wusSFWSLDiglqIhdKhUx/dZ0=;
        b=pIliK6jM8ikuchh9GUCPAVsgDp3CyuTuzPpJqEQMb8N8yfXSLvlRmaF66XGpEew/rB
         3Fbjo4QE3HHSD1vAk97HDXVJ+UNynJx1UkouwUrJmLtOm+ymTZ3kh8mav2Z6DxCPOQxQ
         Rh1n6q9ueE84GmXJFHz548PzofuMr78MRRG9k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007921; x=1722612721;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=wcKEcIFuRVzpYWYIIO7wusSFWSLDiglqIhdKhUx/dZ0=;
        b=igFZNNUdwaInFFuZ7aF6wmGHTnN6Us/SihjebS2JrvdiqyPqv5JGRRkXS1qLRj1+0O
         p0rEt6rXlDzjNWJoqmKq1S7cSqqHE0xb7aFq2fWa+gjmL8IY310oUS35XO8Uw7oj2PId
         4piMIwQ14sWISiQXlHXwlMaFtZgrpvzGH13qehqamExVcdHeg1YN4/KStNi1coLkoe4u
         p9phZtvbrqLZVnBPqqmwirTmb85AsWm97HP0sUB7Es5xOV0gfBvPfrNoNJ54g9Q0lWBK
         Z6agMNvmIZrUKp7Pxl5wlWj1LUkil18VzgcvY1x+eLN8eew4nLS+7f/VAfxA3gJr08KQ
         XIew==
X-Gm-Message-State: AOJu0YzoQSEOqoBu+TMh6vvsrTA1XpuZJfnUrgT9YbZAW6fKSjTt9AXY
	FdqIU8P5Ifl4am8N5MQwM87OOEA7VH9khYNuDnoMXNEwl2UB3S+ZYKD/cs+3L8yioPcaoIzsJm0
	9
X-Google-Smtp-Source: AGHT+IHqAu8Qz1BY8yZmp87C+3Fu28qPJ50Yvmj36fS5QokP/EOXTjLUGudnvfM7GSui/Mp4Dy/a3g==
X-Received: by 2002:ad4:5e85:0:b0:6b0:90b4:1cb3 with SMTP id 6a1803df08f44-6bb55a7eef3mr1897296d6.32.1722007921198;
        Fri, 26 Jul 2024 08:32:01 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 16/22] x86/mm: introduce a per-CPU L3 table for the per-domain slot
Date: Fri, 26 Jul 2024 17:22:00 +0200
Message-ID: <20240726152206.28411-17-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

So far L4 slot 260 has always been per-domain, in other words: all vCPUs of a
domain share the same L3 entry.  Currently only 3 slots are used in that L3
table, which leaves plenty of room.

Introduce a per-CPU L3 that's used the the domain has Address Space Isolation
enabled.  Such per-CPU L3 gets currently populated using the same L3 entries
present on the per-domain L3 (d->arch.perdomain_l3_pg).

No functional change expected, as the per-CPU L3 is always a copy of the
contents of d->arch.perdomain_l3_pg.

Note that all the per-domain L3 entries are populated at domain create, and
hence there's no need to sync the state of the per-CPU L3 as the domain won't
yet be running when the L3 is modified.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/domain.h |  2 +
 xen/arch/x86/include/asm/mm.h     |  4 ++
 xen/arch/x86/mm.c                 | 80 +++++++++++++++++++++++++++++--
 xen/arch/x86/setup.c              |  8 ++++
 xen/arch/x86/smpboot.c            |  4 ++
 5 files changed, 95 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 8c366be8c75f..7620a352b9e3 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -313,6 +313,8 @@ struct arch_domain
 {
     struct page_info *perdomain_l3_pg;
 
+    struct page_info *perdomain_l2_pgs[PERDOMAIN_SLOTS];
+
 #ifdef CONFIG_PV32
     unsigned int hv_compat_vstart;
 #endif
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 2c309f7b1444..34407fb0af06 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -633,4 +633,8 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
 /* Setup the per-domain slot in the root page table pointer. */
 void setup_perdomain_slot(const struct vcpu *v, root_pgentry_t *root_pgt);
 
+/* Allocate a per-CPU local L3 table to use in the per-domain slot. */
+int allocate_perdomain_local_l3(unsigned int cpu);
+void free_perdomain_local_l3(unsigned int cpu);
+
 #endif /* __ASM_X86_MM_H__ */
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 13aa15f4db22..1367f3361ffe 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -6079,6 +6079,12 @@ int create_perdomain_mapping(struct domain *d, unsigned long va,
         l2tab = __map_domain_page(pg);
         clear_page(l2tab);
         l3tab[l3_table_offset(va)] = l3e_from_page(pg, __PAGE_HYPERVISOR_RW);
+        /*
+         * Keep a reference to the per-domain L3 entries in case a per-CPU L3
+         * is in use (as opposed to using perdomain_l3_pg).
+         */
+        ASSERT(!d->creation_finished);
+        d->arch.perdomain_l2_pgs[l3_table_offset(va)] = pg;
     }
     else
         l2tab = map_l2t_from_l3e(l3tab[l3_table_offset(va)]);
@@ -6368,11 +6374,79 @@ unsigned long get_upper_mfn_bound(void)
     return min(max_mfn, 1UL << (paddr_bits - PAGE_SHIFT)) - 1;
 }
 
+static DEFINE_PER_CPU(l3_pgentry_t *, local_l3);
+
+static void populate_perdomain(const struct domain *d, l4_pgentry_t *l4,
+                               l3_pgentry_t *l3)
+{
+    unsigned int i;
+
+    /* Populate the per-CPU L3 with the per-domain entries. */
+    for ( i = 0; i < ARRAY_SIZE(d->arch.perdomain_l2_pgs); i++ )
+    {
+        const struct page_info *pg = d->arch.perdomain_l2_pgs[i];
+
+        BUILD_BUG_ON(ARRAY_SIZE(d->arch.perdomain_l2_pgs) >
+                     L3_PAGETABLE_ENTRIES);
+        l3e_write(&l3[i], pg ? l3e_from_page(pg, __PAGE_HYPERVISOR_RW)
+                             : l3e_empty());
+    }
+
+    l4e_write(&l4[l4_table_offset(PERDOMAIN_VIRT_START)],
+              l4e_from_mfn(virt_to_mfn(l3), __PAGE_HYPERVISOR_RW));
+}
+
+int allocate_perdomain_local_l3(unsigned int cpu)
+{
+    const struct domain *d = idle_vcpu[cpu]->domain;
+    l3_pgentry_t *l3;
+    root_pgentry_t *root_pgt = maddr_to_virt(idle_vcpu[cpu]->arch.cr3);
+
+    ASSERT(!per_cpu(local_l3, cpu));
+
+    if ( !opt_asi_pv && !opt_asi_hvm )
+        return 0;
+
+    l3 = alloc_xenheap_page();
+    if ( !l3 )
+        return -ENOMEM;
+
+    clear_page(l3);
+
+    /* Setup the idle domain slots (current domain) in the L3. */
+    populate_perdomain(d, root_pgt, l3);
+
+    per_cpu(local_l3, cpu) = l3;
+
+    return 0;
+}
+
+void free_perdomain_local_l3(unsigned int cpu)
+{
+    l3_pgentry_t *l3 = per_cpu(local_l3, cpu);
+
+    if ( !l3 )
+        return;
+
+    per_cpu(local_l3, cpu) = NULL;
+    free_xenheap_page(l3);
+}
+
 void setup_perdomain_slot(const struct vcpu *v, root_pgentry_t *root_pgt)
 {
-    l4e_write(&root_pgt[root_table_offset(PERDOMAIN_VIRT_START)],
-              l4e_from_page(v->domain->arch.perdomain_l3_pg,
-                            __PAGE_HYPERVISOR_RW));
+    const struct domain *d = v->domain;
+
+    if ( d->arch.asi )
+    {
+        l3_pgentry_t *l3 = this_cpu(local_l3);
+
+        ASSERT(l3);
+        populate_perdomain(d, root_pgt, l3);
+    }
+    else if ( is_hvm_domain(d) || d->arch.pv.xpti )
+        l4e_write(&root_pgt[root_table_offset(PERDOMAIN_VIRT_START)],
+                  l4e_from_page(v->domain->arch.perdomain_l3_pg,
+                                __PAGE_HYPERVISOR_RW));
 
     if ( !is_pv_64bit_vcpu(v) )
         /*
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index c5a13b30daf4..5bf81b81b46f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1961,6 +1961,14 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
 
     alternative_branches();
 
+    /*
+     * Setup the local per-domain L3 for the BSP also, so it matches the state
+     * of the APs.
+     */
+    ret = allocate_perdomain_local_l3(0);
+    if ( ret )
+        panic("Error %d setting up local per-domain L3\n", ret);
+
     /*
      * NB: when running as a PV shim VCPUOP_up/down is wired to the shim
      * physical cpu_add/remove functions, so launch the guest with only
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index e07add36b1b6..40cc14799252 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -986,6 +986,7 @@ static void cpu_smpboot_free(unsigned int cpu, bool remove)
     }
 
     cleanup_cpu_root_pgt(cpu);
+    free_perdomain_local_l3(cpu);
 
     if ( per_cpu(stubs.addr, cpu) )
     {
@@ -1100,6 +1101,9 @@ static int cpu_smpboot_alloc(unsigned int cpu)
     per_cpu(stubs.addr, cpu) = stub_page + STUB_BUF_CPU_OFFS(cpu);
 
     rc = setup_cpu_root_pgt(cpu);
+    if ( rc )
+        goto out;
+    rc = allocate_perdomain_local_l3(cpu);
     if ( rc )
         goto out;
     rc = -ENOMEM;
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:38:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:38:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765593.1176266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXN1f-0000Vt-Aq; Fri, 26 Jul 2024 15:38:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765593.1176266; Fri, 26 Jul 2024 15:38: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 1sXN1f-0000Vm-86; Fri, 26 Jul 2024 15:38:35 +0000
Received: by outflank-mailman (input) for mailman id 765593;
 Fri, 26 Jul 2024 15:38: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMva-00084T-CI
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:32:18 +0000
Received: from mail-qt1-x82e.google.com (mail-qt1-x82e.google.com
 [2607:f8b0:4864:20::82e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ce06ce3-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:32:16 +0200 (CEST)
Received: by mail-qt1-x82e.google.com with SMTP id
 d75a77b69052e-44fe11dedb3so3920871cf.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:32:16 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe817b704sm14134541cf.49.2024.07.26.08.32.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:32: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: 3ce06ce3-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007935; x=1722612735; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ujxzWIZCxxgOdDMzOO3f1hDHb8R0sblL5/6JViBiwPw=;
        b=uFw+QpwwhbidcC77uubDdoH10eC9LJ8xXKwzJft22lAaUcosgJsLS7RCHZUjkpVGAS
         iHxdSEKLPSAVfDq255QRkfR+413yKhucswkHIcSknLgWYBGE4MmbR+de0Bt8hlzFGdiX
         ZzeB5uikKdL/4lSZILCpvqB1FENyTjSOctGUY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007935; x=1722612735;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ujxzWIZCxxgOdDMzOO3f1hDHb8R0sblL5/6JViBiwPw=;
        b=h2KjDLnxAGZW+OlhgD9z0thvgimw98plLnZsK8n6WhBNykZpgFPE0yIgClpwHRXICn
         l628cNbawypjDA8dH4Pyx/Q0gWifQ2Pg+5R7tnpPn4MexWDR258kndkiajLvqiL8qnqY
         ciEqWudbTUJU3ciM2Jdd0CM/ni8HxsP29/tdrXUPqfV+wVWGfERqer4g6C+O3FLGkPt5
         Grrwy7dZxWBDVdogq6mTW2zuXwU7tjqJTopHpR3TUnicOCGAR3UXF/O/BCv24Guxn5Uv
         OEmXsWMmomjZspvFX0kS6jgTc094fdkWYzEQQ/BRvJjtUbEAEnxqmCzDks1OcUTOWaZi
         HBiA==
X-Gm-Message-State: AOJu0YyJ85eMMOJGVyTymBUXyuCB0NWg8/g4RTL+8PlHl0TuF6AIKWmI
	7KVAGV9N8L+mGNfiSJFAQbiwZapPXzo0JX10Y0GsAPj7PqvmpcQrMdXE/UzPkXNjieVbstlAyyJ
	T
X-Google-Smtp-Source: AGHT+IEN0Eq8CDQ5Cb603qPnp/JwUedIQCyO4aYdsNBLQFTLNZuf7mCOphfab1I5CFzTJfvm3Gvhew==
X-Received: by 2002:a05:622a:1309:b0:447:df6b:b8c5 with SMTP id d75a77b69052e-45004db298amr1640751cf.33.1722007935174;
        Fri, 26 Jul 2024 08:32:15 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 22/22] x86/mm: zero stack on stack switch or reset
Date: Fri, 26 Jul 2024 17:22:06 +0200
Message-ID: <20240726152206.28411-23-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the stack mapped on a per-CPU basis there's no risk of other CPUs being
able to read the stack contents, but vCPUs running on the current pCPU could
read stack rubble from operations of previous vCPUs.

The #DF stack is not zeroed because handling of #DF results in a panic.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/current.h | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index 75b9a341f814..02b4118b03ef 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -177,6 +177,14 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
 # define SHADOW_STACK_WORK ""
 #endif
 
+#define ZERO_STACK                                              \
+    "test %[stk_size], %[stk_size];"                            \
+    "jz .L_skip_zeroing.%=;"                                    \
+    "std;"                                                      \
+    "rep stosb;"                                                \
+    "cld;"                                                      \
+    ".L_skip_zeroing.%=:"
+
 #if __GNUC__ >= 9
 # define ssaj_has_attr_noreturn(fn) __builtin_has_attribute(fn, __noreturn__)
 #else
@@ -187,10 +195,24 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
 #define switch_stack_and_jump(fn, instr, constr)                        \
     ({                                                                  \
         unsigned int tmp;                                               \
+        bool zero_stack = current->domain->arch.asi;                    \
         BUILD_BUG_ON(!ssaj_has_attr_noreturn(fn));                      \
+        ASSERT(IS_ALIGNED((unsigned long)guest_cpu_user_regs() -        \
+                          PRIMARY_STACK_SIZE +                          \
+                          sizeof(struct cpu_info), PAGE_SIZE));         \
+        if ( zero_stack )                                               \
+        {                                                               \
+            unsigned long stack_top = get_stack_bottom() &              \
+                                      ~(STACK_SIZE - 1);                \
+                                                                        \
+            clear_page((void *)stack_top + IST_MCE * PAGE_SIZE);        \
+            clear_page((void *)stack_top + IST_NMI * PAGE_SIZE);        \
+            clear_page((void *)stack_top + IST_DB  * PAGE_SIZE);        \
+        }                                                               \
         __asm__ __volatile__ (                                          \
             SHADOW_STACK_WORK                                           \
             "mov %[stk], %%rsp;"                                        \
+            ZERO_STACK                                                  \
             CHECK_FOR_LIVEPATCH_WORK                                    \
             instr "[fun]"                                               \
             : [val] "=&r" (tmp),                                        \
@@ -201,7 +223,13 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
               ((PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8),               \
               [stack_mask] "i" (STACK_SIZE - 1),                        \
               _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__,                \
-                                 __FILE__, NULL)                        \
+                                 __FILE__, NULL),                       \
+              /* For stack zeroing. */                                  \
+              "D" ((void *)guest_cpu_user_regs() - 1),                  \
+              [stk_size] "c"                                            \
+              (zero_stack ? PRIMARY_STACK_SIZE - sizeof(struct cpu_info)\
+                          : 0),                                         \
+              "a" (0)                                                   \
             : "memory" );                                               \
         unreachable();                                                  \
     })
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:38:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:38:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765594.1176277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXN1q-0000r1-Hp; Fri, 26 Jul 2024 15:38:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765594.1176277; Fri, 26 Jul 2024 15: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 1sXN1q-0000qs-Ev; Fri, 26 Jul 2024 15:38:46 +0000
Received: by outflank-mailman (input) for mailman id 765594;
 Fri, 26 Jul 2024 15:38:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMvR-00084Z-Jz
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:32:09 +0000
Received: from mail-qv1-xf31.google.com (mail-qv1-xf31.google.com
 [2607:f8b0:4864:20::f31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35cb5aff-4b64-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:32:04 +0200 (CEST)
Received: by mail-qv1-xf31.google.com with SMTP id
 6a1803df08f44-6b7a4668f07so4077776d6.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:32:04 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fb0c4dfsm17369086d6.140.2024.07.26.08.32.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:32: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: 35cb5aff-4b64-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007923; x=1722612723; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UsXOcQaVUMQAqctB3o7fFiw3e+HWymJDiLOCUlhSRAY=;
        b=dxuAy7gHDzDH/KVGGpPHLFEyUE9iFudZgosm4OFWPZefJShPK/rq2p7YtytyGlY5QC
         ZUZfyhqqKX+24y2yv24yP34xMIlfHTq+hOuVRnDjRw+X/lpjA65HiJtOtOjBL4Tmwem7
         CumZNIqyMqkTAsmSkxp5Ex9Iqhe5hSe6FStt8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007923; x=1722612723;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=UsXOcQaVUMQAqctB3o7fFiw3e+HWymJDiLOCUlhSRAY=;
        b=ukQL6x9ixnTKAZxk7txarR4WHFDwUiYKrare8Pl66CM/6mZ74g/AL17qNTrXlqZBe9
         BSSDzcJebRkSJvuc4tcRCiWC4k0Ap+nyZI2+VAI6j67+nz28kIxl57pdUHPfx0brpSwl
         iwYAkiOJC/t6DK8f2iVCENraMJ/Tlrf1/gPnIbIS3HTx0psBSnBJy6AW1XluVTYeN7Ba
         to9wjCsh7ychPSua1gkcodMfQBk84X7FwbBVwbNmpFxykjAVBpv4HIcmtHYp2gJC6NRy
         JwCcX+1bhgalfLbm1nvOlrsdZHlq8heZsV+aPi0FTXrl52hJNC6ItBwUiZoScNanNWeH
         EizQ==
X-Gm-Message-State: AOJu0Yx9n4M3H8/TsJTqFr8Gk3za3VNyO8S49T29UV1nc/y4hv8HUbMv
	CVJPZ8/dB5OGiwYoC1tdEsUHdnHPCsu3Ee9GknNIqujMGz90pS8Gz150tGL87F931mD8AiI0M65
	q
X-Google-Smtp-Source: AGHT+IEcDXOgS0ArbTo0uiVXKSfjiaRnNuncKiibiDiIX5cVaz+XagHjF/5offdpuLLIGr5eCJgaFA==
X-Received: by 2002:a05:6214:1d2e:b0:6b7:42aa:3358 with SMTP id 6a1803df08f44-6bb55a7cb75mr1693526d6.31.1722007923280;
        Fri, 26 Jul 2024 08:32:03 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 17/22] x86/mm: introduce support to populate a per-CPU page-table region
Date: Fri, 26 Jul 2024 17:22:01 +0200
Message-ID: <20240726152206.28411-18-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add logic in map_pages_to_xen() and modify_xen_mappings() so that TLB flushes
are only performed locally when dealing with entries in the per-CPU area of the
page-tables.

No functional change intended, as there are no callers added that create or
modify per-CPU mappings, nor is the per-CPU area still properly setup in
the page-tables yet.

Note that the removed flush_area() ended up calling flush_area_mask() through
the flush_area_all() alias.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/config.h   |  4 ++
 xen/arch/x86/include/asm/flushtlb.h |  1 -
 xen/arch/x86/mm.c                   | 64 +++++++++++++++++++----------
 3 files changed, 47 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/asm/config.h
index 2a260a2581fd..c24d735a0cee 100644
--- a/xen/arch/x86/include/asm/config.h
+++ b/xen/arch/x86/include/asm/config.h
@@ -204,6 +204,10 @@ extern unsigned char boot_edid_info[128];
 #define PERDOMAIN_SLOTS         3
 #define PERDOMAIN_VIRT_SLOT(s)  (PERDOMAIN_VIRT_START + (s) * \
                                  (PERDOMAIN_SLOT_MBYTES << 20))
+#define PERCPU_VIRT_START       PERDOMAIN_VIRT_SLOT(PERDOMAIN_SLOTS)
+#define PERCPU_SLOTS            1
+#define PERCPU_VIRT_SLOT(s)     (PERCPU_VIRT_START + (s) * \
+                                 (PERDOMAIN_SLOT_MBYTES << 20))
 /* Slot 4: mirror of per-domain mappings (for compat xlat area accesses). */
 #define PERDOMAIN_ALT_VIRT_START PML4_ADDR(4)
 /* Slot 261: machine-to-phys conversion table (256GB). */
diff --git a/xen/arch/x86/include/asm/flushtlb.h b/xen/arch/x86/include/asm/flushtlb.h
index 1b98d03decdc..affe944d1a5b 100644
--- a/xen/arch/x86/include/asm/flushtlb.h
+++ b/xen/arch/x86/include/asm/flushtlb.h
@@ -146,7 +146,6 @@ void flush_area_mask(const cpumask_t *mask, const void *va,
 #define flush_mask(mask, flags) flush_area_mask(mask, NULL, flags)
 
 /* Flush all CPUs' TLBs/caches */
-#define flush_area_all(va, flags) flush_area_mask(&cpu_online_map, va, flags)
 #define flush_all(flags) flush_mask(&cpu_online_map, flags)
 
 /* Flush local TLBs */
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 1367f3361ffe..c468b46a9d1b 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5023,9 +5023,13 @@ static DEFINE_SPINLOCK(map_pgdir_lock);
  */
 static l3_pgentry_t *virt_to_xen_l3e(unsigned long v)
 {
+    unsigned int cpu = smp_processor_id();
+    /* Called before idle_vcpu is populated, fallback to idle_pg_table. */
+    root_pgentry_t *root_pgt = idle_vcpu[cpu] ?
+        maddr_to_virt(idle_vcpu[cpu]->arch.cr3) : idle_pg_table;
     l4_pgentry_t *pl4e;
 
-    pl4e = &idle_pg_table[l4_table_offset(v)];
+    pl4e = &root_pgt[l4_table_offset(v)];
     if ( !(l4e_get_flags(*pl4e) & _PAGE_PRESENT) )
     {
         bool locking = system_state > SYS_STATE_boot;
@@ -5138,8 +5142,8 @@ static l1_pgentry_t *virt_to_xen_l1e(unsigned long v)
 #define l1f_to_lNf(f) (((f) & _PAGE_PRESENT) ? ((f) |  _PAGE_PSE) : (f))
 #define lNf_to_l1f(f) (((f) & _PAGE_PRESENT) ? ((f) & ~_PAGE_PSE) : (f))
 
-/* flush_area_all() can be used prior to any other CPU being online.  */
-#define flush_area(v, f) flush_area_all((const void *)(v), f)
+/* flush_area_mask() can be used prior to any other CPU being online.  */
+#define flush_area_mask(m, v, f) flush_area_mask(m, (const void *)(v), f)
 
 #define L3T_INIT(page) (page) = ZERO_BLOCK_PTR
 
@@ -5222,7 +5226,11 @@ int map_pages_to_xen(
     unsigned long nr_mfns,
     unsigned int flags)
 {
-    bool locking = system_state > SYS_STATE_boot;
+    bool global = virt < PERCPU_VIRT_START ||
+                  virt >= PERCPU_VIRT_SLOT(PERCPU_SLOTS);
+    bool locking = system_state > SYS_STATE_boot && global;
+    const cpumask_t *flush_mask = global ? &cpu_online_map
+                                         : cpumask_of(smp_processor_id());
     l3_pgentry_t *pl3e = NULL, ol3e;
     l2_pgentry_t *pl2e = NULL, ol2e;
     l1_pgentry_t *pl1e, ol1e;
@@ -5244,6 +5252,11 @@ int map_pages_to_xen(
     }                                          \
 } while (0)
 
+    /* Ensure it's a global mapping or it's only modifying the per-CPU area. */
+    ASSERT(global ||
+           (virt + nr_mfns * PAGE_SIZE >= PERCPU_VIRT_START &&
+            virt + nr_mfns * PAGE_SIZE <  PERCPU_VIRT_SLOT(PERCPU_SLOTS)));
+
     L3T_INIT(current_l3page);
 
     while ( nr_mfns != 0 )
@@ -5278,7 +5291,7 @@ int map_pages_to_xen(
                 if ( l3e_get_flags(ol3e) & _PAGE_PSE )
                 {
                     flush_flags(lNf_to_l1f(l3e_get_flags(ol3e)));
-                    flush_area(virt, flush_flags);
+                    flush_area_mask(flush_mask, virt, flush_flags);
                 }
                 else
                 {
@@ -5301,7 +5314,7 @@ int map_pages_to_xen(
                             unmap_domain_page(l1t);
                         }
                     }
-                    flush_area(virt, flush_flags);
+                    flush_area_mask(flush_mask, virt, flush_flags);
                     for ( i = 0; i < L2_PAGETABLE_ENTRIES; i++ )
                     {
                         ol2e = l2t[i];
@@ -5373,7 +5386,7 @@ int map_pages_to_xen(
             }
             if ( locking )
                 spin_unlock(&map_pgdir_lock);
-            flush_area(virt, flush_flags);
+            flush_area_mask(flush_mask, virt, flush_flags);
 
             free_xen_pagetable(l2mfn);
         }
@@ -5399,7 +5412,7 @@ int map_pages_to_xen(
                 if ( l2e_get_flags(ol2e) & _PAGE_PSE )
                 {
                     flush_flags(lNf_to_l1f(l2e_get_flags(ol2e)));
-                    flush_area(virt, flush_flags);
+                    flush_area_mask(flush_mask, virt, flush_flags);
                 }
                 else
                 {
@@ -5407,7 +5420,7 @@ int map_pages_to_xen(
 
                     for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
                         flush_flags(l1e_get_flags(l1t[i]));
-                    flush_area(virt, flush_flags);
+                    flush_area_mask(flush_mask, virt, flush_flags);
                     unmap_domain_page(l1t);
                     free_xen_pagetable(l2e_get_mfn(ol2e));
                 }
@@ -5476,7 +5489,7 @@ int map_pages_to_xen(
                 }
                 if ( locking )
                     spin_unlock(&map_pgdir_lock);
-                flush_area(virt, flush_flags);
+                flush_area_mask(flush_mask, virt, flush_flags);
 
                 free_xen_pagetable(l1mfn);
             }
@@ -5491,7 +5504,7 @@ int map_pages_to_xen(
                 unsigned int flush_flags = FLUSH_TLB | FLUSH_ORDER(0);
 
                 flush_flags(l1e_get_flags(ol1e));
-                flush_area(virt, flush_flags);
+                flush_area_mask(flush_mask, virt, flush_flags);
             }
 
             virt    += 1UL << L1_PAGETABLE_SHIFT;
@@ -5540,9 +5553,9 @@ int map_pages_to_xen(
                     l2e_write(pl2e, l2e_from_pfn(base_mfn, l1f_to_lNf(flags)));
                     if ( locking )
                         spin_unlock(&map_pgdir_lock);
-                    flush_area(virt - PAGE_SIZE,
-                               FLUSH_TLB_GLOBAL |
-                               FLUSH_ORDER(PAGETABLE_ORDER));
+                    flush_area_mask(flush_mask, virt - PAGE_SIZE,
+                                    FLUSH_TLB_GLOBAL |
+                                    FLUSH_ORDER(PAGETABLE_ORDER));
                     free_xen_pagetable(l2e_get_mfn(ol2e));
                 }
                 else if ( locking )
@@ -5589,9 +5602,9 @@ int map_pages_to_xen(
                 l3e_write(pl3e, l3e_from_pfn(base_mfn, l1f_to_lNf(flags)));
                 if ( locking )
                     spin_unlock(&map_pgdir_lock);
-                flush_area(virt - PAGE_SIZE,
-                           FLUSH_TLB_GLOBAL |
-                           FLUSH_ORDER(2*PAGETABLE_ORDER));
+                flush_area_mask(flush_mask, virt - PAGE_SIZE,
+                                FLUSH_TLB_GLOBAL |
+                                FLUSH_ORDER(2*PAGETABLE_ORDER));
                 free_xen_pagetable(l3e_get_mfn(ol3e));
             }
             else if ( locking )
@@ -5629,7 +5642,11 @@ int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
  */
 int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
 {
-    bool locking = system_state > SYS_STATE_boot;
+    bool global = s < PERCPU_VIRT_START ||
+                  s >= PERCPU_VIRT_SLOT(PERCPU_SLOTS);
+    bool locking = system_state > SYS_STATE_boot && global;
+    const cpumask_t *flush_mask = global ? &cpu_online_map
+                                         : cpumask_of(smp_processor_id());
     l3_pgentry_t *pl3e = NULL;
     l2_pgentry_t *pl2e = NULL;
     l1_pgentry_t *pl1e;
@@ -5638,6 +5655,9 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
     int rc = -ENOMEM;
     struct page_info *current_l3page;
 
+    ASSERT(global ||
+           (e >= PERCPU_VIRT_START && e < PERCPU_VIRT_SLOT(PERCPU_SLOTS)));
+
     /* Set of valid PTE bits which may be altered. */
 #define FLAGS_MASK (_PAGE_NX|_PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_RW|_PAGE_PRESENT)
     nf &= FLAGS_MASK;
@@ -5836,7 +5856,8 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
                 l2e_write(pl2e, l2e_empty());
                 if ( locking )
                     spin_unlock(&map_pgdir_lock);
-                flush_area(NULL, FLUSH_TLB_GLOBAL); /* flush before free */
+                /* flush before free */
+                flush_area_mask(flush_mask, NULL, FLUSH_TLB_GLOBAL);
                 free_xen_pagetable(l1mfn);
             }
             else if ( locking )
@@ -5880,7 +5901,8 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
                 l3e_write(pl3e, l3e_empty());
                 if ( locking )
                     spin_unlock(&map_pgdir_lock);
-                flush_area(NULL, FLUSH_TLB_GLOBAL); /* flush before free */
+                /* flush before free */
+                flush_area_mask(flush_mask, NULL, FLUSH_TLB_GLOBAL);
                 free_xen_pagetable(l2mfn);
             }
             else if ( locking )
@@ -5888,7 +5910,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
         }
     }
 
-    flush_area(NULL, FLUSH_TLB_GLOBAL);
+    flush_area_mask(flush_mask, NULL, FLUSH_TLB_GLOBAL);
 
 #undef FLAGS_MASK
     rc = 0;
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:39:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:39:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765605.1176286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXN2I-0001dg-Od; Fri, 26 Jul 2024 15:39:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765605.1176286; Fri, 26 Jul 2024 15:39:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXN2I-0001dZ-M7; Fri, 26 Jul 2024 15:39:14 +0000
Received: by outflank-mailman (input) for mailman id 765605;
 Fri, 26 Jul 2024 15:39:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMvW-00084T-VO
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:32:15 +0000
Received: from mail-qt1-x82e.google.com (mail-qt1-x82e.google.com
 [2607:f8b0:4864:20::82e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a956b84-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:32:13 +0200 (CEST)
Received: by mail-qt1-x82e.google.com with SMTP id
 d75a77b69052e-44fe58fcf29so3847531cf.2
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:32:12 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe81259cesm14414941cf.6.2024.07.26.08.32.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 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: 3a956b84-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007931; x=1722612731; darn=lists.xenproject.org;
        h=content-transfer-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/Si1GObgr7VHk+37CZa7YHHAXjnb60+qTIn0xcWOxk=;
        b=kvGLK3cnHBOWVPyLL2a5LWNAGH+IdS0PqP3iwoNcbT6QccCG9Vk/FaOHrdLhd3/MKc
         dSw+1gjN6EFBEeD6JMmsEX8TUtLoAagtbO4akI9YTzxFqawG9GhG2/dHhddSJKW6uKWF
         Y8qEVNx1T3TP6rx0HwqaPQz7SOIQu4FID+fQE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007931; x=1722612731;
        h=content-transfer-encoding:mime-version:references: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/Si1GObgr7VHk+37CZa7YHHAXjnb60+qTIn0xcWOxk=;
        b=uwMQpRUpNf+DscGt3s4mol6LnWsFis3Zd2ueXE5m50WvUsKJbwCe3TZna6oTWboplb
         vrW0RkzerbuSCMf8B7R2X+f4a8rtEN74rI3JwJo4aPjkSOcWjU06IdpIAXtcwYQTCDGv
         wVYkHSsT87rKnnpNCgEGrehpU9LcPJmfHy5EnE84zE01F8cT5+Rn3aklccaoriK6P55Z
         xffCEP8XccVrJAl+uk5HGk8rNXuYCHRmGSqvIPUL096ejROgvpz3OPJKZxm54Qb+7S4H
         WA4tj/yGNYT01prVNM90/U/TlkF7C3di92Ji4gNu6OcoMK+4ZhvBw7cv1OnRAO5hY819
         AHIw==
X-Gm-Message-State: AOJu0YzGQfVAPg4ZZdzZa01cf24MVSeJAV4M+POvrPhD9mOdw7kvpnuA
	9cwBuDMJ13EfMr29nwJAx0CpgxuoosQq+5f9DDOtx/X+aykkIKPf7StCVVJZQaUvsm3qTGDGyzk
	9
X-Google-Smtp-Source: AGHT+IFlmoKIVbvsxd/sjDsiPGUXG2bxnsKNLp/iKOSkxDcooIG1tLdj9v2mDDAsKk1LuEAAGdEnhA==
X-Received: by 2002:a05:622a:13d1:b0:447:e83a:1051 with SMTP id d75a77b69052e-45004f3dd66mr1394031cf.47.1722007930041;
        Fri, 26 Jul 2024 08:32:10 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 20/22] x86/pv: allow using a unique per-pCPU root page table (L4)
Date: Fri, 26 Jul 2024 17:22:04 +0200
Message-ID: <20240726152206.28411-21-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When running PV guests it's possible for the guest to use the same root page
table (L4) for all vCPUs, which in turn will result in Xen also using the same
root page table on all pCPUs that are running any domain vCPU.

When using XPTI Xen switches to a per-CPU shadow L4 when running in guest
context, switching to the fully populated L4 when in Xen context.

Take advantage of this existing shadowing and force the usage of a per-CPU L4
that shadows the guest selected L4 when Address Space Isolation is requested
for PV guests.

The mapping of the guest L4 is done with a per-CPU fixmap entry, that however
requires that the currently loaded L4 has the per-CPU slot setup.  In order to
ensure this switch to the shadow per-CPU L4 with just the Xen slots populated,
and then map the guest L4 and copy the contents of the guest controlled
slots.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/domain.c              | 37 +++++++++++++++++++++
 xen/arch/x86/flushtlb.c            |  9 ++++++
 xen/arch/x86/include/asm/current.h | 15 ++++++---
 xen/arch/x86/include/asm/fixmap.h  |  1 +
 xen/arch/x86/include/asm/pv/mm.h   |  8 +++++
 xen/arch/x86/mm.c                  | 47 +++++++++++++++++++++++++++
 xen/arch/x86/pv/domain.c           | 25 ++++++++++++--
 xen/arch/x86/pv/mm.c               | 52 ++++++++++++++++++++++++++++++
 xen/arch/x86/smpboot.c             | 20 +++++++++++-
 9 files changed, 207 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index b62c4311da6c..94a42ef29cd1 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -45,6 +45,7 @@
 #include <asm/io.h>
 #include <asm/processor.h>
 #include <asm/desc.h>
+#include <asm/fixmap.h>
 #include <asm/i387.h>
 #include <asm/xstate.h>
 #include <asm/cpuidle.h>
@@ -2110,11 +2111,47 @@ void context_switch(struct vcpu *prev, struct vcpu *next)
 
     local_irq_disable();
 
+    if ( is_pv_domain(prevd) && prevd->arch.asi )
+    {
+        /*
+         * Don't leak the L4 shadow mapping in the per-CPU area.  Can't be done
+         * in paravirt_ctxt_switch_from() because the lazy idle vCPU context
+         * switch would otherwise enter an infinite loop in
+         * mapcache_current_vcpu() with sync_local_execstate().
+         *
+         * Note clearing the fixmpa must strictly be done ahead of changing the
+         * current vCPU and with interrupts disabled, so there's no window
+         * where current->domain->arch.asi == true and PCPU_FIX_PV_L4SHADOW is
+         * not mapped.
+         */
+        percpu_clear_fixmap(PCPU_FIX_PV_L4SHADOW);
+        get_cpu_info()->root_pgt_changed = false;
+    }
+
     set_current(next);
 
     if ( (per_cpu(curr_vcpu, cpu) == next) ||
          (is_idle_domain(nextd) && cpu_online(cpu)) )
     {
+        if ( is_pv_domain(nextd) && nextd->arch.asi )
+        {
+            /* Signal the fixmap entry must be mapped. */
+            get_cpu_info()->new_cr3 = true;
+            if ( get_cpu_info()->root_pgt_changed )
+            {
+                /*
+                 * Map and update the shadow L4 in case we received any
+                 * FLUSH_ROOT_PGTBL request while running on the idle vCPU.
+                 *
+                 * Do it before enabling interrupts so that no flush IPI can be
+                 * delivered without having PCPU_FIX_PV_L4SHADOW correctly
+                 * mapped.
+                 */
+                pv_update_shadow_l4(next, true);
+                get_cpu_info()->root_pgt_changed = false;
+            }
+        }
+
         local_irq_enable();
     }
     else
diff --git a/xen/arch/x86/flushtlb.c b/xen/arch/x86/flushtlb.c
index fd5ed16ffb57..b85ce232abbb 100644
--- a/xen/arch/x86/flushtlb.c
+++ b/xen/arch/x86/flushtlb.c
@@ -17,6 +17,7 @@
 #include <asm/nops.h>
 #include <asm/page.h>
 #include <asm/pv/domain.h>
+#include <asm/pv/mm.h>
 #include <asm/spec_ctrl.h>
 
 /* Debug builds: Wrap frequently to stress-test the wrap logic. */
@@ -192,7 +193,15 @@ unsigned int flush_area_local(const void *va, unsigned int flags)
     unsigned int order = (flags - 1) & FLUSH_ORDER_MASK;
 
     if ( flags & FLUSH_ROOT_PGTBL )
+    {
+        const struct vcpu *curr = current;
+        const struct domain *curr_d = curr->domain;
+
         get_cpu_info()->root_pgt_changed = true;
+        if ( is_pv_domain(curr_d) && curr_d->arch.asi )
+            /* Update the shadow root page-table ahead of doing TLB flush. */
+            pv_update_shadow_l4(curr, false);
+    }
 
     if ( flags & (FLUSH_TLB|FLUSH_TLB_GLOBAL) )
     {
diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index bcec328c9875..6a021607a1a9 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -60,10 +60,14 @@ struct cpu_info {
     uint8_t      scf; /* SCF_* */
 
     /*
-     * The following field controls copying of the L4 page table of 64-bit
-     * PV guests to the per-cpu root page table on entering the guest context.
-     * If set the L4 page table is being copied to the root page table and
-     * the field will be reset.
+     * For XPTI the following field controls copying of the L4 page table of
+     * 64-bit PV guests to the per-cpu root page table on entering the guest
+     * context.  If set the L4 page table is being copied to the root page
+     * table and the field will be reset.
+     *
+     * For ASI the field is used to acknowledge whether a FLUSH_ROOT_PGTBL
+     * request has been received when running the idle vCPU on PV guest
+     * page-tables (a lazy context switch to the idle vCPU).
      */
     bool         root_pgt_changed;
 
@@ -74,6 +78,9 @@ struct cpu_info {
      */
     bool         use_pv_cr3;
 
+    /* For ASI: per-CPU fixmap of guest L4 is possibly out of sync. */
+    bool         new_cr3;
+
     /* get_stack_bottom() must be 16-byte aligned */
 };
 
diff --git a/xen/arch/x86/include/asm/fixmap.h b/xen/arch/x86/include/asm/fixmap.h
index a456c65072d8..bc68a98568ae 100644
--- a/xen/arch/x86/include/asm/fixmap.h
+++ b/xen/arch/x86/include/asm/fixmap.h
@@ -120,6 +120,7 @@ extern void __set_fixmap_x(
 
 /* per-CPU fixmap area. */
 enum percpu_fixed_addresses {
+    PCPU_FIX_PV_L4SHADOW,
     __end_of_percpu_fixed_addresses
 };
 
diff --git a/xen/arch/x86/include/asm/pv/mm.h b/xen/arch/x86/include/asm/pv/mm.h
index 182764542c1f..a7c74898fce0 100644
--- a/xen/arch/x86/include/asm/pv/mm.h
+++ b/xen/arch/x86/include/asm/pv/mm.h
@@ -23,6 +23,9 @@ bool pv_destroy_ldt(struct vcpu *v);
 
 int validate_segdesc_page(struct page_info *page);
 
+void pv_clear_l4_guest_entries(root_pgentry_t *root_pgt);
+void pv_update_shadow_l4(const struct vcpu *v, bool flush);
+
 #else
 
 #include <xen/errno.h>
@@ -44,6 +47,11 @@ static inline bool pv_map_ldt_shadow_page(unsigned int off) { return false; }
 static inline bool pv_destroy_ldt(struct vcpu *v)
 { ASSERT_UNREACHABLE(); return false; }
 
+static inline void pv_clear_l4_guest_entries(root_pgentry_t *root_pgt)
+{ ASSERT_UNREACHABLE(); }
+static inline void pv_update_shadow_l4(const struct vcpu *v, bool flush)
+{ ASSERT_UNREACHABLE(); }
+
 #endif
 
 #endif /* __X86_PV_MM_H__ */
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 937089d203cc..8fea7465a9df 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -513,6 +513,8 @@ void make_cr3(struct vcpu *v, mfn_t mfn)
     v->arch.cr3 = mfn_x(mfn) << PAGE_SHIFT;
     if ( is_pv_domain(d) && d->arch.pv.pcid )
         v->arch.cr3 |= get_pcid_bits(v, false);
+    if ( is_pv_domain(d) && d->arch.asi )
+        get_cpu_info()->new_cr3 = true;
 }
 
 void write_ptbase(struct vcpu *v)
@@ -532,6 +534,40 @@ void write_ptbase(struct vcpu *v)
             cpu_info->pv_cr3 |= get_pcid_bits(v, true);
         switch_cr3_cr4(v->arch.cr3, new_cr4);
     }
+    else if ( is_pv_domain(d) && d->arch.asi )
+    {
+        root_pgentry_t *root_pgt = this_cpu(root_pgt);
+        unsigned long cr3 = __pa(root_pgt);
+
+        /*
+         * XPTI and ASI cannot be simultaneously used even by different
+         * domains at runtime.
+         */
+        ASSERT(!cpu_info->use_pv_cr3 && !cpu_info->xen_cr3 &&
+               !cpu_info->pv_cr3);
+
+        if ( new_cr4 & X86_CR4_PCIDE )
+            cr3 |= get_pcid_bits(v, false);
+
+        /*
+         * Zap guest L4 entries ahead of flushing the TLB, so that the CPU
+         * cannot speculatively populate the TLB with stale mappings.
+         */
+        pv_clear_l4_guest_entries(root_pgt);
+
+        /*
+         * Switch to the shadow L4 with just the Xen slots populated, the guest
+         * slots will be populated by pv_update_shadow_l4() once running on the
+         * shadow L4.
+         *
+         * The reason for switching to the per-CPU shadow L4 before updating
+         * the guest slots is that pv_update_shadow_l4() uses per-CPU mappings,
+         * and the in-use page-table previous to the switch_cr3_cr4() call
+         * might not support per-CPU mappings.
+         */
+        switch_cr3_cr4(cr3, new_cr4);
+        pv_update_shadow_l4(v, false);
+    }
     else
     {
         ASSERT(!is_hvm_domain(d) || !d->arch.asi
@@ -6505,6 +6541,17 @@ void setup_perdomain_slot(const struct vcpu *v, root_pgentry_t *root_pgt)
 
         ASSERT(l3);
         populate_perdomain(d, root_pgt, l3);
+
+        if ( is_pv_domain(d) )
+        {
+            /*
+             * Abuse the fact that this function is called on vCPU context
+             * switch and clean previous guest controlled slots from the shadow
+             * L4.
+             */
+            pv_clear_l4_guest_entries(root_pgt);
+            get_cpu_info()->new_cr3 = true;
+        }
     }
     else if ( is_hvm_domain(d) || d->arch.pv.xpti )
         l4e_write(&root_pgt[root_table_offset(PERDOMAIN_VIRT_START)],
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 46ee10a8a4c2..80bf2bf934dd 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -15,6 +15,7 @@
 #include <asm/invpcid.h>
 #include <asm/spec_ctrl.h>
 #include <asm/pv/domain.h>
+#include <asm/pv/mm.h>
 #include <asm/shadow.h>
 
 #ifdef CONFIG_PV32
@@ -384,7 +385,7 @@ int pv_domain_initialise(struct domain *d)
 
     d->arch.ctxt_switch = &pv_csw;
 
-    d->arch.pv.flush_root_pt = d->arch.pv.xpti;
+    d->arch.pv.flush_root_pt = d->arch.pv.xpti || d->arch.asi;
 
     if ( !is_pv_32bit_domain(d) && use_invpcid && cpu_has_pcid )
         switch ( ACCESS_ONCE(opt_pcid) )
@@ -446,7 +447,27 @@ static void _toggle_guest_pt(struct vcpu *v)
      * to release). Switch to the idle page tables in such an event; the
      * guest will have been crashed already.
      */
-    cr3 = v->arch.cr3;
+    if ( v->domain->arch.asi )
+    {
+        /*
+         * _toggle_guest_pt() might switch between user and kernel page tables,
+         * but doesn't use write_ptbase(), and hence needs an explicit call to
+         * sync the shadow L4.
+         */
+        cr3 = __pa(this_cpu(root_pgt));
+        if ( v->domain->arch.pv.pcid )
+            cr3 |= get_pcid_bits(v, false);
+        /*
+         * Ensure the current root page table is already the shadow L4, as
+         * guest user/kernel switches can only happen once the guest is
+         * running.
+         */
+        ASSERT(read_cr3() == cr3);
+        pv_update_shadow_l4(v, false);
+    }
+    else
+        cr3 = v->arch.cr3;
+
     if ( shadow_mode_enabled(v->domain) )
     {
         cr3 &= ~X86_CR3_NOFLUSH;
diff --git a/xen/arch/x86/pv/mm.c b/xen/arch/x86/pv/mm.c
index 24f0d2e4ff7d..c20ce099ae27 100644
--- a/xen/arch/x86/pv/mm.c
+++ b/xen/arch/x86/pv/mm.c
@@ -11,6 +11,7 @@
 #include <xen/guest_access.h>
 
 #include <asm/current.h>
+#include <asm/fixmap.h>
 #include <asm/p2m.h>
 
 #include "mm.h"
@@ -103,6 +104,57 @@ void init_xen_pae_l2_slots(l2_pgentry_t *l2t, const struct domain *d)
 }
 #endif
 
+void pv_clear_l4_guest_entries(root_pgentry_t *root_pgt)
+{
+    unsigned int i;
+
+    for ( i = 0; i < ROOT_PAGETABLE_FIRST_XEN_SLOT; i++ )
+        l4e_write(&root_pgt[i], l4e_empty());
+    for ( i = ROOT_PAGETABLE_LAST_XEN_SLOT + 1; i < L4_PAGETABLE_ENTRIES; i++ )
+        l4e_write(&root_pgt[i], l4e_empty());
+}
+
+void pv_update_shadow_l4(const struct vcpu *v, bool flush)
+{
+    const root_pgentry_t *guest_pgt = percpu_fix_to_virt(PCPU_FIX_PV_L4SHADOW);
+    root_pgentry_t *shadow_pgt = this_cpu(root_pgt);
+
+    ASSERT(!v->domain->arch.pv.xpti);
+    ASSERT(is_pv_vcpu(v));
+    ASSERT(!is_idle_vcpu(v));
+
+    if ( get_cpu_info()->new_cr3 )
+    {
+        percpu_set_fixmap(PCPU_FIX_PV_L4SHADOW, maddr_to_mfn(v->arch.cr3),
+                          __PAGE_HYPERVISOR_RO);
+        get_cpu_info()->new_cr3 = false;
+    }
+
+    if ( is_pv_32bit_vcpu(v) )
+    {
+        l4e_write(&shadow_pgt[0], guest_pgt[0]);
+        l4e_write(&shadow_pgt[root_table_offset(PERDOMAIN_ALT_VIRT_START)],
+            shadow_pgt[root_table_offset(PERDOMAIN_VIRT_START)]);
+    }
+    else
+    {
+        unsigned int i;
+
+        for ( i = 0; i < ROOT_PAGETABLE_FIRST_XEN_SLOT; i++ )
+            l4e_write(&shadow_pgt[i], guest_pgt[i]);
+        for ( i = ROOT_PAGETABLE_LAST_XEN_SLOT + 1;
+              i < L4_PAGETABLE_ENTRIES; i++ )
+            l4e_write(&shadow_pgt[i], guest_pgt[i]);
+
+        /* The presence of this Xen slot is selected by the guest. */
+        l4e_write(&shadow_pgt[l4_table_offset(RO_MPT_VIRT_START)],
+            guest_pgt[l4_table_offset(RO_MPT_VIRT_START)]);
+    }
+
+    if ( flush )
+        flush_local(FLUSH_TLB_GLOBAL);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 40cc14799252..d9841ed3b663 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -829,7 +829,7 @@ int setup_cpu_root_pgt(unsigned int cpu)
     unsigned int off;
     int rc;
 
-    if ( !opt_xpti_hwdom && !opt_xpti_domu )
+    if ( !opt_xpti_hwdom && !opt_xpti_domu && !opt_asi_pv )
         return 0;
 
     rpt = alloc_xenheap_page();
@@ -839,6 +839,18 @@ int setup_cpu_root_pgt(unsigned int cpu)
     clear_page(rpt);
     per_cpu(root_pgt, cpu) = rpt;
 
+    if ( opt_asi_pv )
+    {
+        /*
+         * Populate the Xen slots, the guest ones will be copied from the guest
+         * root page-table.
+         */
+        init_xen_l4_slots(rpt, _mfn(virt_to_mfn(rpt)), INVALID_MFN, NULL,
+                          false, false, true);
+
+        return 0;
+    }
+
     rpt[root_table_offset(RO_MPT_VIRT_START)] =
         idle_pg_table[root_table_offset(RO_MPT_VIRT_START)];
     /* SH_LINEAR_PT inserted together with guest mappings. */
@@ -892,6 +904,12 @@ static void cleanup_cpu_root_pgt(unsigned int cpu)
 
     per_cpu(root_pgt, cpu) = NULL;
 
+    if ( opt_asi_pv )
+    {
+        free_xenheap_page(rpt);
+        return;
+    }
+
     for ( r = root_table_offset(DIRECTMAP_VIRT_START);
           r < root_table_offset(HYPERVISOR_VIRT_END); ++r )
     {
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:39:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:39:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765610.1176298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXN2a-000279-6e; Fri, 26 Jul 2024 15:39:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765610.1176298; Fri, 26 Jul 2024 15:39: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 1sXN2a-000272-1l; Fri, 26 Jul 2024 15:39:32 +0000
Received: by outflank-mailman (input) for mailman id 765610;
 Fri, 26 Jul 2024 15:39: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMvW-00084Z-La
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:32:14 +0000
Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com
 [2607:f8b0:4864:20::82d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 388cccde-4b64-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:32:09 +0200 (CEST)
Received: by mail-qt1-x82d.google.com with SMTP id
 d75a77b69052e-44fdde0c8dcso4458681cf.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:32:09 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe812350bsm14403271cf.9.2024.07.26.08.32.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:32: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: 388cccde-4b64-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007928; x=1722612728; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BinizVTi7GOPnEVhKIj7EHarU0kRGEbeujfs570yXU4=;
        b=TYuQCLcln+oAe6OXvifAcjCJ7+RsJ4/Re+h1oCnelvIkpBoXY4jFGy+VPVSBGdFQGs
         PvwBAO77i1pSOYknHCEqI4eRpPN6TpfU8JcL2vLsFlX0bB181TX0rlNZ8ePRzUM9jfSc
         PoSJlx8EcxS/3eiZYPSSUplujenlp12zbLT7k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007928; x=1722612728;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BinizVTi7GOPnEVhKIj7EHarU0kRGEbeujfs570yXU4=;
        b=QZb3NezfhxOpso6ImJOKKsG+LpkJSEdafCx5W9i8K3FDQIyBa5aT8OaC1y4xWjTRy4
         dvutwceBZIl8JGSzKZu06O0yPDdPQvybqcgAtREZblBg0A/S02fvgKrcUwi6Fw8nzDm2
         2zMjJcE7d5NJd6IURUoLzX0XT8wEDUW4hUqlnRyhbnLdPYvneAEFK5zbGkpkBLYay5MW
         ZLi+7A8lW4QLM/tW+PBNhu1JkfkDzw3mQ6w65gN+yskdJTXVhmvzhc5toNZG5gkylsN0
         TqSeky9NND4+fEmNEcoh2D0vZCQpUMCdCLXXGcv8n1B8xqawAE93UPVFkJM4mO+3z9Jh
         cquA==
X-Gm-Message-State: AOJu0YzPAP7gwycglyQGUgVDn8X1B7fMelDdL5vCDhThTo+vdvs4eWDF
	dJ7M/r8QXA/vVRfQqRTfHzG6BAtX24yVvau3p3egetod+f8IaJhjXZzbjREszDAU7u455nnOcPY
	3
X-Google-Smtp-Source: AGHT+IH7HhTgM9wzAwV7qVf5Dw7zzApRYlbHlcznF51xEGNl5V19OCzC2QVC77wObVn2OfyDnPT0Ug==
X-Received: by 2002:a05:622a:547:b0:44f:f7be:4d3e with SMTP id d75a77b69052e-45004d6fd41mr2330571cf.5.1722007927942;
        Fri, 26 Jul 2024 08:32:07 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 19/22] x86/mm: introduce a per-CPU fixmap area
Date: Fri, 26 Jul 2024 17:22:03 +0200
Message-ID: <20240726152206.28411-20-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce the logic to manage a per-CPU fixmap area.  This includes adding a
new set of headers that are capable of creating mappings in the per-CPU
page-table regions by making use of the map_pages_to_xen_cpu().

This per-CPU fixmap area is currently set to use one L3 slot: 1GiB of linear
address space.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/fixmap.h | 44 +++++++++++++++++++++++++++++++
 xen/arch/x86/mm.c                 | 16 ++++++++++-
 2 files changed, 59 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/fixmap.h b/xen/arch/x86/include/asm/fixmap.h
index 516ec3fa6c95..a456c65072d8 100644
--- a/xen/arch/x86/include/asm/fixmap.h
+++ b/xen/arch/x86/include/asm/fixmap.h
@@ -118,6 +118,50 @@ extern void __set_fixmap_x(
 #define __fix_x_to_virt(x) (FIXADDR_X_TOP - ((x) << PAGE_SHIFT))
 #define fix_x_to_virt(x)   ((void *)__fix_x_to_virt(x))
 
+/* per-CPU fixmap area. */
+enum percpu_fixed_addresses {
+    __end_of_percpu_fixed_addresses
+};
+
+#define PERCPU_FIXADDR_SIZE (__end_of_percpu_fixed_addresses << PAGE_SHIFT)
+#define PERCPU_FIXADDR PERCPU_VIRT_SLOT(0)
+
+static inline void *percpu_fix_to_virt(enum percpu_fixed_addresses idx)
+{
+    BUG_ON(idx >=__end_of_percpu_fixed_addresses);
+    return (void *)PERCPU_FIXADDR + (idx << PAGE_SHIFT);
+}
+
+static inline void percpu_set_fixmap_remote(
+    unsigned int cpu, enum percpu_fixed_addresses idx, mfn_t mfn,
+    unsigned long flags)
+{
+    map_pages_to_xen_cpu((unsigned long)percpu_fix_to_virt(idx), mfn, 1, flags,
+                         cpu);
+}
+
+static inline void percpu_clear_fixmap_remote(
+    unsigned int cpu, enum percpu_fixed_addresses idx)
+{
+    /*
+     * Use map_pages_to_xen_cpu() instead of destroy_xen_mappings_cpu() to
+     * avoid tearing down the intermediate page-tables if empty.
+     */
+    map_pages_to_xen_cpu((unsigned long)percpu_fix_to_virt(idx), INVALID_MFN, 1,
+                         0, cpu);
+}
+
+static inline void percpu_set_fixmap(enum percpu_fixed_addresses idx, mfn_t mfn,
+                                     unsigned long flags)
+{
+    percpu_set_fixmap_remote(smp_processor_id(), idx, mfn, flags);
+}
+
+static inline void percpu_clear_fixmap(enum percpu_fixed_addresses idx)
+{
+    percpu_clear_fixmap_remote(smp_processor_id(), idx);
+}
+
 #endif /* __ASSEMBLY__ */
 
 #endif
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index faf2d42745d1..937089d203cc 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -6467,7 +6467,17 @@ int allocate_perdomain_local_l3(unsigned int cpu)
 
     per_cpu(local_l3, cpu) = l3;
 
-    return 0;
+    /*
+     * Pre-allocate the page-table structures for the per-cpu fixmap.  Some of
+     * the per-cpu fixmap calls might happen in contexts where memory
+     * allocation is not possible.
+     *
+     * Only one L3 slot is currently reserved for the per-CPU fixmap.
+     */
+    BUILD_BUG_ON(PERCPU_FIXADDR_SIZE > (1 << L3_PAGETABLE_SHIFT));
+    return map_pages_to_xen_cpu(PERCPU_VIRT_START, INVALID_MFN,
+                                PFN_DOWN(PERCPU_FIXADDR_SIZE), MAP_SMALL_PAGES,
+                                cpu);
 }
 
 void free_perdomain_local_l3(unsigned int cpu)
@@ -6478,6 +6488,10 @@ void free_perdomain_local_l3(unsigned int cpu)
         return;
 
     per_cpu(local_l3, cpu) = NULL;
+
+    destroy_xen_mappings_cpu(PERCPU_VIRT_START,
+                             PERCPU_VIRT_START + PERCPU_FIXADDR_SIZE, cpu);
+
     free_xenheap_page(l3);
 }
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:40:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:40:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765621.1176306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXN3V-0003y5-Ee; Fri, 26 Jul 2024 15:40:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765621.1176306; Fri, 26 Jul 2024 15:40: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 1sXN3V-0003xy-Bd; Fri, 26 Jul 2024 15:40:29 +0000
Received: by outflank-mailman (input) for mailman id 765621;
 Fri, 26 Jul 2024 15:40:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMvR-00084T-28
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:32:09 +0000
Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com
 [2607:f8b0:4864:20::735])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37395fc1-4b64-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 17:32:07 +0200 (CEST)
Received: by mail-qk1-x735.google.com with SMTP id
 af79cd13be357-7a1dac7f0b7so50831785a.0
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:32:07 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fafa1aesm17379126d6.133.2024.07.26.08.32.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:32: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: 37395fc1-4b64-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007926; x=1722612726; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6N5uFSzBTQXjVPjBVWB2aNudK8NA3i5SjmiiCJAOxYs=;
        b=oJUF7bB8n4OBULxWBwN4LGtJjxxsUveUOVM5DApoLnlJ0tupXEOQul0zcUkoYpXNag
         sUH8FD9yt1KMl91ZLSeM81qjLj4Zyp659UgobctyLBsOEPclbbDVJbt7YUD3Jif4jd/l
         yyuKqTddDN5KyeA84f+Xr6Mgt+rBn0BmprsTQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007926; x=1722612726;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=6N5uFSzBTQXjVPjBVWB2aNudK8NA3i5SjmiiCJAOxYs=;
        b=TlxDlqg3UMXwRMe++gkspbAJ2jZUq0Rh7WlwhpeLZeKQA40XA8ltlgesTQvyb7f0hS
         8b8rle7xti14p1/7vvZFdQOHVhT0XEix+K1gPmUJ51ChRFZdhK/2+HPxEEKq/6zLP6qe
         zkt5q0Rd8nXYoKFvozRb8oXXm5sEtG0XCeAchFx838T6yQ8jydvHKbV8uYlF5w3KUJ1N
         Ax0v0kdudiOjYm9mbr4qGHqwTsASQBPT/0v5uJDEqKAh5mxfb8QBuJ3PEKm1UMvsPVKb
         CYBnOpUsag6jbfJrYOgz0ypYttBjQtJDjtvYYW7Yscjm/eQThzxY5COPHv4hSYUTIQRh
         w/4A==
X-Gm-Message-State: AOJu0Yw5F8GIS+TR+VVWnffh+oJeKBSNJjsv7nSHItcVDp3GL5xfvCDS
	8fWuZ8Wy+g2DKKXqHp05clNDKCI7QCed3PnYX6UtxSpTO7RlLkVvpjA40PW643UE6VEHWJfWVrh
	T
X-Google-Smtp-Source: AGHT+IF/3NRsMDjUgIjYnbPd2fhW6tsx++V1EFbAhEJKBkE/No/KxeQ0CEuKp6/ZZy6Hgd5ovaiF9g==
X-Received: by 2002:a05:6214:1247:b0:6b4:dd2a:aa44 with SMTP id 6a1803df08f44-6bb55a83e51mr2216066d6.37.1722007925575;
        Fri, 26 Jul 2024 08:32:05 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 18/22] x86/mm: allow modifying per-CPU entries of remote page-tables
Date: Fri, 26 Jul 2024 17:22:02 +0200
Message-ID: <20240726152206.28411-19-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add support for modifying the per-CPU page-tables entries of remote CPUs, this
will be required in order to setup the page-tables of CPUs before bringing them
up.  A restriction is added so that remote page-tables can only be modified as
long as the remote CPU is not yet online.

Non functional change, as there's no user introduced that modifies remote
page-tables.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Can be merged with previous patch?
---
 xen/arch/x86/include/asm/mm.h | 15 ++++++++++
 xen/arch/x86/mm.c             | 55 ++++++++++++++++++++++++++---------
 2 files changed, 56 insertions(+), 14 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 34407fb0af06..f883468b1a7c 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -637,4 +637,19 @@ void setup_perdomain_slot(const struct vcpu *v, root_pgentry_t *root_pgt);
 int allocate_perdomain_local_l3(unsigned int cpu);
 void free_perdomain_local_l3(unsigned int cpu);
 
+/* Specify the CPU idle root page-table to use for modifications. */
+int map_pages_to_xen_cpu(
+    unsigned long virt,
+    mfn_t mfn,
+    unsigned long nr_mfns,
+    unsigned int flags,
+    unsigned int cpu);
+int modify_xen_mappings_cpu(unsigned long s, unsigned long e, unsigned int nf,
+                            unsigned int cpu);
+static inline int destroy_xen_mappings_cpu(unsigned long s, unsigned long e,
+                                           unsigned int cpu)
+{
+    return modify_xen_mappings_cpu(s, e, _PAGE_NONE, cpu);
+}
+
 #endif /* __ASM_X86_MM_H__ */
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index c468b46a9d1b..faf2d42745d1 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5021,9 +5021,8 @@ static DEFINE_SPINLOCK(map_pgdir_lock);
  * For virt_to_xen_lXe() functions, they take a linear address and return a
  * pointer to Xen's LX entry. Caller needs to unmap the pointer.
  */
-static l3_pgentry_t *virt_to_xen_l3e(unsigned long v)
+static l3_pgentry_t *virt_to_xen_l3e_cpu(unsigned long v, unsigned int cpu)
 {
-    unsigned int cpu = smp_processor_id();
     /* Called before idle_vcpu is populated, fallback to idle_pg_table. */
     root_pgentry_t *root_pgt = idle_vcpu[cpu] ?
         maddr_to_virt(idle_vcpu[cpu]->arch.cr3) : idle_pg_table;
@@ -5062,11 +5061,16 @@ static l3_pgentry_t *virt_to_xen_l3e(unsigned long v)
     return map_l3t_from_l4e(*pl4e) + l3_table_offset(v);
 }
 
-static l2_pgentry_t *virt_to_xen_l2e(unsigned long v)
+static l3_pgentry_t *virt_to_xen_l3e(unsigned long v)
+{
+    return virt_to_xen_l3e_cpu(v, smp_processor_id());
+}
+
+static l2_pgentry_t *virt_to_xen_l2e_cpu(unsigned long v, unsigned int cpu)
 {
     l3_pgentry_t *pl3e, l3e;
 
-    pl3e = virt_to_xen_l3e(v);
+    pl3e = virt_to_xen_l3e_cpu(v, cpu);
     if ( !pl3e )
         return NULL;
 
@@ -5100,11 +5104,11 @@ static l2_pgentry_t *virt_to_xen_l2e(unsigned long v)
     return map_l2t_from_l3e(l3e) + l2_table_offset(v);
 }
 
-static l1_pgentry_t *virt_to_xen_l1e(unsigned long v)
+static l1_pgentry_t *virt_to_xen_l1e_cpu(unsigned long v, unsigned int cpu)
 {
     l2_pgentry_t *pl2e, l2e;
 
-    pl2e = virt_to_xen_l2e(v);
+    pl2e = virt_to_xen_l2e_cpu(v, cpu);
     if ( !pl2e )
         return NULL;
 
@@ -5220,17 +5224,18 @@ mfn_t xen_map_to_mfn(unsigned long va)
     return ret;
 }
 
-int map_pages_to_xen(
+int map_pages_to_xen_cpu(
     unsigned long virt,
     mfn_t mfn,
     unsigned long nr_mfns,
-    unsigned int flags)
+    unsigned int flags,
+    unsigned int cpu)
 {
     bool global = virt < PERCPU_VIRT_START ||
                   virt >= PERCPU_VIRT_SLOT(PERCPU_SLOTS);
     bool locking = system_state > SYS_STATE_boot && global;
     const cpumask_t *flush_mask = global ? &cpu_online_map
-                                         : cpumask_of(smp_processor_id());
+                                         : cpumask_of(cpu);
     l3_pgentry_t *pl3e = NULL, ol3e;
     l2_pgentry_t *pl2e = NULL, ol2e;
     l1_pgentry_t *pl1e, ol1e;
@@ -5257,6 +5262,9 @@ int map_pages_to_xen(
            (virt + nr_mfns * PAGE_SIZE >= PERCPU_VIRT_START &&
             virt + nr_mfns * PAGE_SIZE <  PERCPU_VIRT_SLOT(PERCPU_SLOTS)));
 
+    /* Only allow modifying remote page-tables if the CPU is not online. */
+    ASSERT(cpu == smp_processor_id() || !cpu_online(cpu));
+
     L3T_INIT(current_l3page);
 
     while ( nr_mfns != 0 )
@@ -5266,7 +5274,7 @@ int map_pages_to_xen(
         UNMAP_DOMAIN_PAGE(pl3e);
         UNMAP_DOMAIN_PAGE(pl2e);
 
-        pl3e = virt_to_xen_l3e(virt);
+        pl3e = virt_to_xen_l3e_cpu(virt, cpu);
         if ( !pl3e )
             goto out;
 
@@ -5391,7 +5399,7 @@ int map_pages_to_xen(
             free_xen_pagetable(l2mfn);
         }
 
-        pl2e = virt_to_xen_l2e(virt);
+        pl2e = virt_to_xen_l2e_cpu(virt, cpu);
         if ( !pl2e )
             goto out;
 
@@ -5437,7 +5445,7 @@ int map_pages_to_xen(
             /* Normal page mapping. */
             if ( !(l2e_get_flags(*pl2e) & _PAGE_PRESENT) )
             {
-                pl1e = virt_to_xen_l1e(virt);
+                pl1e = virt_to_xen_l1e_cpu(virt, cpu);
                 if ( pl1e == NULL )
                     goto out;
             }
@@ -5623,6 +5631,16 @@ int map_pages_to_xen(
     return rc;
 }
 
+int map_pages_to_xen(
+    unsigned long virt,
+    mfn_t mfn,
+    unsigned long nr_mfns,
+    unsigned int flags)
+{
+    return map_pages_to_xen_cpu(virt, mfn, nr_mfns, flags, smp_processor_id());
+}
+
+
 int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
 {
     return map_pages_to_xen(virt, INVALID_MFN, nr_mfns, MAP_SMALL_PAGES);
@@ -5640,7 +5658,8 @@ 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_cpu(unsigned long s, unsigned long e, unsigned int nf,
+                            unsigned int cpu)
 {
     bool global = s < PERCPU_VIRT_START ||
                   s >= PERCPU_VIRT_SLOT(PERCPU_SLOTS);
@@ -5658,6 +5677,9 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
     ASSERT(global ||
            (e >= PERCPU_VIRT_START && e < PERCPU_VIRT_SLOT(PERCPU_SLOTS)));
 
+    /* Only allow modifying remote page-tables if the CPU is not online. */
+    ASSERT(cpu == smp_processor_id() || !cpu_online(cpu));
+
     /* Set of valid PTE bits which may be altered. */
 #define FLAGS_MASK (_PAGE_NX|_PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_RW|_PAGE_PRESENT)
     nf &= FLAGS_MASK;
@@ -5674,7 +5696,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
         UNMAP_DOMAIN_PAGE(pl2e);
         UNMAP_DOMAIN_PAGE(pl3e);
 
-        pl3e = virt_to_xen_l3e(v);
+        pl3e = virt_to_xen_l3e_cpu(v, cpu);
         if ( !pl3e )
             goto out;
 
@@ -5927,6 +5949,11 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
 
 #undef flush_area
 
+int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
+{
+    return modify_xen_mappings_cpu(s, e, nf, smp_processor_id());
+}
+
 int destroy_xen_mappings(unsigned long s, unsigned long e)
 {
     return modify_xen_mappings(s, e, _PAGE_NONE);
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:41:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:41:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765661.1176317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXN4b-0004pP-OK; Fri, 26 Jul 2024 15:41:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765661.1176317; Fri, 26 Jul 2024 15: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 1sXN4b-0004pI-KA; Fri, 26 Jul 2024 15:41:37 +0000
Received: by outflank-mailman (input) for mailman id 765661;
 Fri, 26 Jul 2024 15:41: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMvL-00084Z-Ik
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:32:03 +0000
Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com
 [2607:f8b0:4864:20::835])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3216d2c5-4b64-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:31:58 +0200 (CEST)
Received: by mail-qt1-x835.google.com with SMTP id
 d75a77b69052e-44ff7cc5432so5018541cf.3
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:31:58 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe8201583sm13962251cf.69.2024.07.26.08.31.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:31: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: 3216d2c5-4b64-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007917; x=1722612717; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y0jFmKsOaRzFzsuDJr/vpzxDf870ieWIqAEP938hVyw=;
        b=M7Qeu1AAlr0bQG8bOphO1sdcojnhZZLTcmLZp1Z8T+qyHIZ3L32hi40lz8Dx+apTol
         wwtj4pTT4IU4v/Q0T2N1SPwX2wcCQgd65sK+1GpcKjiJwy+KO4tcH9TilJbsqbBfSgP9
         IPjc6HO62lw93TFytJoVqfD5MJ5Ln5pcDkv5U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007917; x=1722612717;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=y0jFmKsOaRzFzsuDJr/vpzxDf870ieWIqAEP938hVyw=;
        b=xNhhr2hZwqIXClJVPSAFTpKMfaCcWrAgH44XtF2eLso/79fMcxU98Fu8xrh3NGVHKm
         Taw0MnjWf7+v5YHUJY8JCOd36NDu46AtKb4AakEERzqFYvpdyDRMA+c+cJaKJ9LA+8tv
         2+7HR21adF86zOIetTCTD1Nu+G5GG9nKfAPl7cCQ09zajnb+Z6LT2LCbSAVitv81/3wD
         0GRGO/U+wEDOhk0l1x6QYA0vBCwrQqf+CJA+oo6bw5LfwVOLJMHMJTnQ8hifhBO41FIJ
         UaTSK43IO8lEZqlix4L0lDMPB9H+ip1PcJyR1oVEPMNQP4ozJEy23HT42v+n8aHNFdrc
         sy7A==
X-Gm-Message-State: AOJu0YzKckbeIHrjeNUD7G8AuxoaJfUzDFAuuQb2ol9YogKBJwuEUABY
	sN/Hc/rLTM371r7lF/4KCo1/wXRsEy3ksEVGDaeZl+6mT8Scwd53IjgBB9FjEXoLjb46ClBdxgC
	G
X-Google-Smtp-Source: AGHT+IGiS/h6u9qqSHvgUrluH594A0zTw0s1tnDElj/8eDjyLad+rVrps4h28Kg+Rh5qgtG1Fnzf4g==
X-Received: by 2002:a05:622a:547:b0:44f:f7be:4d3e with SMTP id d75a77b69052e-45004d6fd41mr2322221cf.5.1722007917022;
        Fri, 26 Jul 2024 08:31:57 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Tim Deegan <tim@xen.org>
Subject: [PATCH 14/22] x86/hvm: use a per-pCPU monitor table in shadow mode
Date: Fri, 26 Jul 2024 17:21:58 +0200
Message-ID: <20240726152206.28411-15-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Instead of allocating a monitor table for each vCPU when running in HVM shadow
mode, use a per-pCPU monitor table, which gets the per-domain slot updated on
guest context switch.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
I've tested this manually, but XenServer builds disable shadow support, so it
possibly hasn't been given the same level of testing as the rest of the
changes.
---
 xen/arch/x86/hvm/hvm.c              |  7 +++
 xen/arch/x86/include/asm/hvm/vcpu.h |  6 ++-
 xen/arch/x86/include/asm/paging.h   | 18 ++++++++
 xen/arch/x86/mm.c                   |  6 +++
 xen/arch/x86/mm/shadow/common.c     | 42 +++++++-----------
 xen/arch/x86/mm/shadow/hvm.c        | 65 ++++++++++++----------------
 xen/arch/x86/mm/shadow/multi.c      | 66 ++++++++++++++++++-----------
 xen/arch/x86/mm/shadow/private.h    |  4 +-
 8 files changed, 120 insertions(+), 94 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 3f771bc65677..419d78a79c51 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -141,6 +141,7 @@ void hvm_set_cpu_monitor_table(struct vcpu *v)
 
     ASSERT(pgt);
 
+    paging_set_cpu_monitor_table(v);
     setup_perdomain_slot(v, pgt);
 
     make_cr3(v, _mfn(virt_to_mfn(pgt)));
@@ -150,6 +151,8 @@ void hvm_clear_cpu_monitor_table(struct vcpu *v)
 {
     /* Poison %cr3, it will be updated when the vCPU is scheduled. */
     make_cr3(v, INVALID_MFN);
+
+    paging_clear_cpu_monitor_table(v);
 }
 
 static int cf_check cpu_callback(
@@ -1645,6 +1648,10 @@ int hvm_vcpu_initialise(struct vcpu *v)
     int rc;
     struct domain *d = v->domain;
 
+#ifdef CONFIG_SHADOW_PAGING
+    v->arch.hvm.shadow_linear_l3 = INVALID_MFN;
+#endif
+
     hvm_asid_flush_vcpu(v);
 
     spin_lock_init(&v->arch.hvm.tm_lock);
diff --git a/xen/arch/x86/include/asm/hvm/vcpu.h b/xen/arch/x86/include/asm/hvm/vcpu.h
index 64c7a6fedea9..f7faaaa21521 100644
--- a/xen/arch/x86/include/asm/hvm/vcpu.h
+++ b/xen/arch/x86/include/asm/hvm/vcpu.h
@@ -149,8 +149,10 @@ struct hvm_vcpu {
         uint16_t p2midx;
     } fast_single_step;
 
-    /* (MFN) hypervisor page table */
-    pagetable_t         monitor_table;
+#ifdef CONFIG_SHADOW_PAGING
+    /* Reference to the linear L3 page table. */
+    mfn_t shadow_linear_l3;
+#endif
 
     struct hvm_vcpu_asid n1asid;
 
diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
index 8a2a0af40874..c1e188bcd3c0 100644
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -117,6 +117,8 @@ struct paging_mode {
                                             unsigned long cr3,
                                             paddr_t ga, uint32_t *pfec,
                                             unsigned int *page_order);
+    void          (*set_cpu_monitor_table  )(struct vcpu *v);
+    void          (*clear_cpu_monitor_table)(struct vcpu *v);
 #endif
     pagetable_t   (*update_cr3            )(struct vcpu *v, bool noflush);
 
@@ -288,6 +290,22 @@ static inline bool paging_flush_tlb(const unsigned long *vcpu_bitmap)
     return current->domain->arch.paging.flush_tlb(vcpu_bitmap);
 }
 
+static inline void paging_set_cpu_monitor_table(struct vcpu *v)
+{
+    const struct paging_mode *mode = paging_get_hostmode(v);
+
+    if ( mode->set_cpu_monitor_table )
+        mode->set_cpu_monitor_table(v);
+}
+
+static inline void paging_clear_cpu_monitor_table(struct vcpu *v)
+{
+    const struct paging_mode *mode = paging_get_hostmode(v);
+
+    if ( mode->clear_cpu_monitor_table )
+        mode->clear_cpu_monitor_table(v);
+}
+
 #endif /* CONFIG_HVM */
 
 /* Update all the things that are derived from the guest's CR3.
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 7f2666adaef4..13aa15f4db22 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -534,6 +534,12 @@ void write_ptbase(struct vcpu *v)
     }
     else
     {
+        ASSERT(!is_hvm_domain(d) || !d->arch.asi
+#ifdef CONFIG_HVM
+               || mfn_eq(maddr_to_mfn(v->arch.cr3),
+                         virt_to_mfn(this_cpu(monitor_pgt)))
+#endif
+               );
         /* Make sure to clear use_pv_cr3 and xen_cr3 before pv_cr3. */
         cpu_info->use_pv_cr3 = false;
         cpu_info->xen_cr3 = 0;
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 0176e33bc9c7..d31c1db8a1ab 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -2413,16 +2413,12 @@ static void sh_update_paging_modes(struct vcpu *v)
                 &SHADOW_INTERNAL_NAME(sh_paging_mode, 2);
         }
 
-        if ( pagetable_is_null(v->arch.hvm.monitor_table) )
+        if ( mfn_eq(v->arch.hvm.shadow_linear_l3, INVALID_MFN) )
         {
-            mfn_t mmfn = sh_make_monitor_table(
-                             v, v->arch.paging.mode->shadow.shadow_levels);
-
-            if ( mfn_eq(mmfn, INVALID_MFN) )
+            if ( sh_update_monitor_table(
+                     v, v->arch.paging.mode->shadow.shadow_levels) )
                 return;
 
-            v->arch.hvm.monitor_table = pagetable_from_mfn(mmfn);
-            make_cr3(v, mmfn);
             hvm_update_host_cr3(v);
         }
 
@@ -2440,8 +2436,8 @@ static void sh_update_paging_modes(struct vcpu *v)
                  (v->arch.paging.mode->shadow.shadow_levels !=
                   old_mode->shadow.shadow_levels) )
             {
-                /* Need to make a new monitor table for the new mode */
-                mfn_t new_mfn, old_mfn;
+                /* Might need to make a new L3 linear table for the new mode */
+                mfn_t old_mfn;
 
                 if ( v != current && vcpu_runnable(v) )
                 {
@@ -2455,24 +2451,21 @@ static void sh_update_paging_modes(struct vcpu *v)
                     return;
                 }
 
-                old_mfn = pagetable_get_mfn(v->arch.hvm.monitor_table);
-                v->arch.hvm.monitor_table = pagetable_null();
-                new_mfn = sh_make_monitor_table(
-                              v, v->arch.paging.mode->shadow.shadow_levels);
-                if ( mfn_eq(new_mfn, INVALID_MFN) )
+                old_mfn = v->arch.hvm.shadow_linear_l3;
+                v->arch.hvm.shadow_linear_l3 = INVALID_MFN;
+                if ( sh_update_monitor_table(
+                         v, v->arch.paging.mode->shadow.shadow_levels) )
                 {
                     sh_destroy_monitor_table(v, old_mfn,
                                              old_mode->shadow.shadow_levels);
                     return;
                 }
-                v->arch.hvm.monitor_table = pagetable_from_mfn(new_mfn);
-                SHADOW_PRINTK("new monitor table %"PRI_mfn "\n",
-                               mfn_x(new_mfn));
+                SHADOW_PRINTK("new L3 linear table %"PRI_mfn "\n",
+                               mfn_x(v->arch.hvm.shadow_linear_l3));
 
                 /* Don't be running on the old monitor table when we
                  * pull it down!  Switch CR3, and warn the HVM code that
                  * its host cr3 has changed. */
-                make_cr3(v, new_mfn);
                 if ( v == current )
                     write_ptbase(v);
                 hvm_update_host_cr3(v);
@@ -2781,16 +2774,13 @@ void shadow_vcpu_teardown(struct vcpu *v)
 
     sh_detach_old_tables(v);
 #ifdef CONFIG_HVM
-    if ( shadow_mode_external(d) )
+    if ( shadow_mode_external(d) &&
+         !mfn_eq(v->arch.hvm.shadow_linear_l3, INVALID_MFN) )
     {
-        mfn_t mfn = pagetable_get_mfn(v->arch.hvm.monitor_table);
-
-        if ( mfn_x(mfn) )
-            sh_destroy_monitor_table(
-                v, mfn,
+        sh_destroy_monitor_table(
+                v, v->arch.hvm.shadow_linear_l3,
                 v->arch.paging.mode->shadow.shadow_levels);
-
-        v->arch.hvm.monitor_table = pagetable_null();
+        v->arch.hvm.shadow_linear_l3 = INVALID_MFN;
     }
 #endif
 
diff --git a/xen/arch/x86/mm/shadow/hvm.c b/xen/arch/x86/mm/shadow/hvm.c
index 93922a71e511..15c75cf766bb 100644
--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -736,30 +736,15 @@ bool cf_check shadow_flush_tlb(const unsigned long *vcpu_bitmap)
     return true;
 }
 
-mfn_t sh_make_monitor_table(const struct vcpu *v, unsigned int shadow_levels)
+int sh_update_monitor_table(struct vcpu *v, unsigned int shadow_levels)
 {
     struct domain *d = v->domain;
-    mfn_t m4mfn;
-    l4_pgentry_t *l4e;
 
-    ASSERT(!pagetable_get_pfn(v->arch.hvm.monitor_table));
+    ASSERT(mfn_eq(v->arch.hvm.shadow_linear_l3, INVALID_MFN));
 
     /* Guarantee we can get the memory we need */
-    if ( !shadow_prealloc(d, SH_type_monitor_table, CONFIG_PAGING_LEVELS) )
-        return INVALID_MFN;
-
-    m4mfn = shadow_alloc(d, SH_type_monitor_table, 0);
-    mfn_to_page(m4mfn)->shadow_flags = 4;
-
-    l4e = map_domain_page(m4mfn);
-
-    /*
-     * Create a self-linear mapping, but no shadow-linear mapping.  A
-     * shadow-linear mapping will either be inserted below when creating
-     * lower level monitor tables, or later in sh_update_cr3().
-     */
-    init_xen_l4_slots(l4e, m4mfn, INVALID_MFN, d->arch.perdomain_l3_pg,
-                      false, true, false);
+    if ( !shadow_prealloc(d, SH_type_monitor_table, CONFIG_PAGING_LEVELS - 1) )
+        return -ENOMEM;
 
     if ( shadow_levels < 4 )
     {
@@ -773,52 +758,54 @@ mfn_t sh_make_monitor_table(const struct vcpu *v, unsigned int shadow_levels)
          */
         m3mfn = shadow_alloc(d, SH_type_monitor_table, 0);
         mfn_to_page(m3mfn)->shadow_flags = 3;
-        l4e[l4_table_offset(SH_LINEAR_PT_VIRT_START)]
-            = l4e_from_mfn(m3mfn, __PAGE_HYPERVISOR_RW);
 
         m2mfn = shadow_alloc(d, SH_type_monitor_table, 0);
         mfn_to_page(m2mfn)->shadow_flags = 2;
         l3e = map_domain_page(m3mfn);
         l3e[0] = l3e_from_mfn(m2mfn, __PAGE_HYPERVISOR_RW);
         unmap_domain_page(l3e);
-    }
 
-    unmap_domain_page(l4e);
+        v->arch.hvm.shadow_linear_l3 = m3mfn;
+
+        /*
+         * If the vCPU is not the current one the L4 entry will be updated on
+         * context switch.
+         */
+        if ( v == current )
+            this_cpu(monitor_pgt)[l4_table_offset(SH_LINEAR_PT_VIRT_START)]
+                = l4e_from_mfn(m3mfn, __PAGE_HYPERVISOR_RW);
+    }
+    else if ( v == current )
+        /* The shadow linear mapping will be inserted in sh_update_cr3(). */
+        this_cpu(monitor_pgt)[l4_table_offset(SH_LINEAR_PT_VIRT_START)]
+            = l4e_empty();
 
-    return m4mfn;
+    return 0;
 }
 
-void sh_destroy_monitor_table(const struct vcpu *v, mfn_t mmfn,
+void sh_destroy_monitor_table(const struct vcpu *v, mfn_t m3mfn,
                               unsigned int shadow_levels)
 {
     struct domain *d = v->domain;
 
-    ASSERT(mfn_to_page(mmfn)->u.sh.type == SH_type_monitor_table);
-
     if ( shadow_levels < 4 )
     {
-        mfn_t m3mfn;
-        l4_pgentry_t *l4e = map_domain_page(mmfn);
-        l3_pgentry_t *l3e;
-        unsigned int linear_slot = l4_table_offset(SH_LINEAR_PT_VIRT_START);
+        l3_pgentry_t *l3e = map_domain_page(m3mfn);
+
+        ASSERT(!mfn_eq(m3mfn, INVALID_MFN));
+        ASSERT(mfn_to_page(m3mfn)->u.sh.type == SH_type_monitor_table);
 
         /*
          * Need to destroy the l3 and l2 monitor pages used
          * for the linear map.
          */
-        ASSERT(l4e_get_flags(l4e[linear_slot]) & _PAGE_PRESENT);
-        m3mfn = l4e_get_mfn(l4e[linear_slot]);
-        l3e = map_domain_page(m3mfn);
         ASSERT(l3e_get_flags(l3e[0]) & _PAGE_PRESENT);
         shadow_free(d, l3e_get_mfn(l3e[0]));
         unmap_domain_page(l3e);
         shadow_free(d, m3mfn);
-
-        unmap_domain_page(l4e);
     }
-
-    /* Put the memory back in the pool */
-    shadow_free(d, mmfn);
+    else
+        ASSERT(mfn_eq(m3mfn, INVALID_MFN));
 }
 
 /**************************************************************************/
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
index 0def0c073ca8..68c59233794f 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -3007,6 +3007,32 @@ static unsigned long cf_check sh_gva_to_gfn(
     return gfn_x(gfn);
 }
 
+static void cf_check set_cpu_monitor_table(struct vcpu *v)
+{
+    root_pgentry_t *pgt = this_cpu(monitor_pgt);
+
+    virt_to_page(pgt)->shadow_flags = 4;
+
+    /* Setup linear L3 entry. */
+    if ( !mfn_eq(v->arch.hvm.shadow_linear_l3, INVALID_MFN) )
+        pgt[l4_table_offset(SH_LINEAR_PT_VIRT_START)] =
+            l4e_from_mfn(v->arch.hvm.shadow_linear_l3, __PAGE_HYPERVISOR_RW);
+    else
+        pgt[l4_table_offset(SH_LINEAR_PT_VIRT_START)] =
+            l4e_from_pfn(
+                pagetable_get_pfn(v->arch.paging.shadow.shadow_table[0]),
+                __PAGE_HYPERVISOR_RW);
+}
+
+static void cf_check clear_cpu_monitor_table(struct vcpu *v)
+{
+    root_pgentry_t *pgt = this_cpu(monitor_pgt);
+
+    virt_to_page(pgt)->shadow_flags = 0;
+
+    pgt[l4_table_offset(SH_LINEAR_PT_VIRT_START)] = l4e_empty();
+}
+
 #endif /* CONFIG_HVM */
 
 static inline void
@@ -3033,8 +3059,11 @@ sh_update_linear_entries(struct vcpu *v)
      */
 
     /* Don't try to update the monitor table if it doesn't exist */
-    if ( !shadow_mode_external(d) ||
-         pagetable_get_pfn(v->arch.hvm.monitor_table) == 0 )
+    if ( !shadow_mode_external(d)
+#if SHADOW_PAGING_LEVELS == 3
+         || mfn_eq(v->arch.hvm.shadow_linear_l3, INVALID_MFN)
+#endif
+       )
         return;
 
 #if !defined(CONFIG_HVM)
@@ -3051,17 +3080,6 @@ sh_update_linear_entries(struct vcpu *v)
                 pagetable_get_pfn(v->arch.paging.shadow.shadow_table[0]),
                 __PAGE_HYPERVISOR_RW);
     }
-    else
-    {
-        l4_pgentry_t *ml4e;
-
-        ml4e = map_domain_page(pagetable_get_mfn(v->arch.hvm.monitor_table));
-        ml4e[l4_table_offset(SH_LINEAR_PT_VIRT_START)] =
-            l4e_from_pfn(
-                pagetable_get_pfn(v->arch.paging.shadow.shadow_table[0]),
-                __PAGE_HYPERVISOR_RW);
-        unmap_domain_page(ml4e);
-    }
 
 #elif SHADOW_PAGING_LEVELS == 3
 
@@ -3087,16 +3105,8 @@ sh_update_linear_entries(struct vcpu *v)
                 + l2_linear_offset(SH_LINEAR_PT_VIRT_START);
         else
         {
-            mfn_t l3mfn, l2mfn;
-            l4_pgentry_t *ml4e;
-            l3_pgentry_t *ml3e;
-            int linear_slot = shadow_l4_table_offset(SH_LINEAR_PT_VIRT_START);
-            ml4e = map_domain_page(pagetable_get_mfn(v->arch.hvm.monitor_table));
-
-            ASSERT(l4e_get_flags(ml4e[linear_slot]) & _PAGE_PRESENT);
-            l3mfn = l4e_get_mfn(ml4e[linear_slot]);
-            ml3e = map_domain_page(l3mfn);
-            unmap_domain_page(ml4e);
+            mfn_t l2mfn;
+            l3_pgentry_t *ml3e = map_domain_page(v->arch.hvm.shadow_linear_l3);
 
             ASSERT(l3e_get_flags(ml3e[0]) & _PAGE_PRESENT);
             l2mfn = l3e_get_mfn(ml3e[0]);
@@ -3341,9 +3351,13 @@ static pagetable_t cf_check sh_update_cr3(struct vcpu *v, bool noflush)
     ///
     /// v->arch.cr3
     ///
-    if ( shadow_mode_external(d) )
+    if ( shadow_mode_external(d) && v == current )
     {
-        make_cr3(v, pagetable_get_mfn(v->arch.hvm.monitor_table));
+#ifdef CONFIG_HVM
+        make_cr3(v, _mfn(virt_to_mfn(this_cpu(monitor_pgt))));
+#else
+        ASSERT_UNREACHABLE();
+#endif
     }
 #if SHADOW_PAGING_LEVELS == 4
     else // not shadow_mode_external...
@@ -4106,6 +4120,8 @@ const struct paging_mode sh_paging_mode = {
     .invlpg                        = sh_invlpg,
 #ifdef CONFIG_HVM
     .gva_to_gfn                    = sh_gva_to_gfn,
+    .set_cpu_monitor_table         = set_cpu_monitor_table,
+    .clear_cpu_monitor_table       = clear_cpu_monitor_table,
 #endif
     .update_cr3                    = sh_update_cr3,
     .guest_levels                  = GUEST_PAGING_LEVELS,
diff --git a/xen/arch/x86/mm/shadow/private.h b/xen/arch/x86/mm/shadow/private.h
index a5fc3a7676eb..6743aeefe12e 100644
--- a/xen/arch/x86/mm/shadow/private.h
+++ b/xen/arch/x86/mm/shadow/private.h
@@ -420,8 +420,8 @@ void shadow_unhook_mappings(struct domain *d, mfn_t smfn, int user_only);
  * sh_{make,destroy}_monitor_table() depend only on the number of shadow
  * levels.
  */
-mfn_t sh_make_monitor_table(const struct vcpu *v, unsigned int shadow_levels);
-void sh_destroy_monitor_table(const struct vcpu *v, mfn_t mmfn,
+int sh_update_monitor_table(struct vcpu *v, unsigned int shadow_levels);
+void sh_destroy_monitor_table(const struct vcpu *v, mfn_t m3mfn,
                               unsigned int shadow_levels);
 
 /* VRAM dirty tracking helpers. */
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 15:41:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 15:41:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765662.1176322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXN4b-0004sb-W7; Fri, 26 Jul 2024 15:41:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765662.1176322; Fri, 26 Jul 2024 15: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 1sXN4b-0004rZ-RI; Fri, 26 Jul 2024 15:41:37 +0000
Received: by outflank-mailman (input) for mailman id 765662;
 Fri, 26 Jul 2024 15:41: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=Bxzg=O2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sXMvZ-00084Z-Lz
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 15:32:17 +0000
Received: from mail-qk1-x733.google.com (mail-qk1-x733.google.com
 [2607:f8b0:4864:20::733])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3baeadbc-4b64-11ef-bbff-fd08da9f4363;
 Fri, 26 Jul 2024 17:32:14 +0200 (CEST)
Received: by mail-qk1-x733.google.com with SMTP id
 af79cd13be357-7a1df0a93eeso54357785a.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 08:32:14 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d73ed33bsm186293085a.58.2024.07.26.08.32.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 08:32: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: 3baeadbc-4b64-11ef-bbff-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722007933; x=1722612733; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+bQ+ii7M1KJhsihYtAn+LMm9W2OsmDXTDtNb1K2Kk+8=;
        b=ULjq/Fq8AEzNonKiqnzDW2K4UctU1Jls2eXHeGiyKUtMbUZ1fup+OMvxdw69kxqRDG
         bCMe/pFZwI4HvSBRwtfaOF7JekIf5n1R2unNXmCNwGqinsTniSiOC2TA4Xco+ugIfLAM
         u5or8g1UmGciX16GTqlgQzD4Fo/YzT4aGXeh4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722007933; x=1722612733;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+bQ+ii7M1KJhsihYtAn+LMm9W2OsmDXTDtNb1K2Kk+8=;
        b=XTjbhbKK7gMAVEajiqbuSMrkNWsYY+/q+NRzGjuu6L1kZfruMFba8YEKKSQRpmLG6s
         FLV0dGsAA9UDttxrigvUXktyBjcKoYbUsLBhhx1H7bgXUMy1q7i97SXDEyQMM7I+wGQg
         LRup8Nr2feEDEhm6MnvwPgVeWCllxLB3hZh8mX8faIj08syDoM3Lv6hrIpm9HBuK0CMG
         JkVonKdyFAAaRQYotYNRcQ01crPOX/xwEYriGh8tZNtOsXiK8RypHLfR/jlF1Z+wsLsH
         xeyFum5eVkyYmTb3nKjufn8jeKA4S2ISL+tHP8j/H9Lf4lbDBsMQT17UxIdpEBf1Oib8
         5sEQ==
X-Gm-Message-State: AOJu0Yy7/FtcEumP2xkLgioa0Va7WzY0j4PckaIZFWekavioZO5SCYij
	ZjVUQy2FSKbZ7SnQtcv63lCISF2z0JHgNobxN84iJdcPkactxJzsendIQEIHBK69grEVz963CHk
	+
X-Google-Smtp-Source: AGHT+IFEl+l6gfhV/oaxuOmcOHpAbe9haRO9XmK8X2xunfJzUIgKMhf39uziKga6rh7b4MNPD63eCg==
X-Received: by 2002:a05:620a:4152:b0:79f:fe8:5fce with SMTP id af79cd13be357-7a1e522fb05mr11382285a.3.1722007932948;
        Fri, 26 Jul 2024 08:32:12 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 21/22] x86/mm: switch to a per-CPU mapped stack when using ASI
Date: Fri, 26 Jul 2024 17:22:05 +0200
Message-ID: <20240726152206.28411-22-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240726152206.28411-1-roger.pau@citrix.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When using ASI the CPU stack is mapped using a range of fixmap entries in the
per-CPU region.  This ensures the stack is only accessible by the current CPU.

Note however there's further work required in order to allocate the stack from
domheap instead of xenheap, and ensure the stack is not part of the direct
map.

For domains not running with ASI enabled all the CPU stacks are mapped in the
per-domain L3, so that the stack is always at the same linear address,
regardless of whether ASI is enabled or not for the domain.

When calling UEFI runtime methods the current per-domain slot needs to be added
to the EFI L4, so that the stack is available in UEFI.

Finally, some users of callfunc IPIs pass parameters from the stack, so when
handling a callfunc IPI the stack of the caller CPU is mapped into the address
space of the CPU handling the IPI.  This needs further work to use a bounce
buffer in order to avoid having to map remote CPU stacks.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
There's also further work required in order to avoid mapping remote stack when
handling callfunc IPIs.
---
 xen/arch/x86/domain.c              |  12 +++
 xen/arch/x86/include/asm/current.h |   5 ++
 xen/arch/x86/include/asm/fixmap.h  |   5 ++
 xen/arch/x86/include/asm/mm.h      |   6 +-
 xen/arch/x86/include/asm/smp.h     |  12 +++
 xen/arch/x86/mm.c                  | 125 +++++++++++++++++++++++++++--
 xen/arch/x86/setup.c               |  27 +++++--
 xen/arch/x86/smp.c                 |  29 +++++++
 xen/arch/x86/smpboot.c             |  47 ++++++++++-
 xen/arch/x86/traps.c               |   6 +-
 xen/common/efi/runtime.c           |  12 +++
 xen/common/smp.c                   |  10 +++
 xen/include/xen/smp.h              |   5 ++
 13 files changed, 281 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 94a42ef29cd1..d00ba415877f 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -929,6 +929,18 @@ int arch_domain_create(struct domain *d,
 
     d->arch.msr_relaxed = config->arch.misc_flags & XEN_X86_MSR_RELAXED;
 
+    if ( !d->arch.asi && (opt_asi_hvm || opt_asi_pv ) )
+    {
+        /*
+         * This domain is not using ASI, but other domains on the system
+         * possibly are, hence the CPU stacks are on the per-CPU page-table
+         * region.  Add an L3 entry that has all the stacks mapped.
+         */
+        rc = map_all_stacks(d);
+        if ( rc )
+            goto fail;
+    }
+
     return 0;
 
  fail:
diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index 6a021607a1a9..75b9a341f814 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -24,6 +24,11 @@
  * 0 - IST Shadow Stacks (4x 1k, read-only)
  */
 
+static inline bool is_shstk_slot(unsigned int i)
+{
+    return (i == 0 || i == PRIMARY_SHSTK_SLOT);
+}
+
 /*
  * Identify which stack page the stack pointer is on.  Returns an index
  * as per the comment above.
diff --git a/xen/arch/x86/include/asm/fixmap.h b/xen/arch/x86/include/asm/fixmap.h
index bc68a98568ae..d52c1886fcdd 100644
--- a/xen/arch/x86/include/asm/fixmap.h
+++ b/xen/arch/x86/include/asm/fixmap.h
@@ -120,6 +120,11 @@ extern void __set_fixmap_x(
 
 /* per-CPU fixmap area. */
 enum percpu_fixed_addresses {
+    /* For alignment reasons the per-CPU stacks must come first. */
+    PCPU_STACK_START,
+    PCPU_STACK_END = PCPU_STACK_START + NR_CPUS * (1U << STACK_ORDER) - 1,
+#define PERCPU_STACK_IDX(c) (PCPU_STACK_START + (c) * (1U << STACK_ORDER))
+#define PERCPU_STACK_ADDR(c) percpu_fix_to_virt(PERCPU_STACK_IDX(c))
     PCPU_FIX_PV_L4SHADOW,
     __end_of_percpu_fixed_addresses
 };
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index f883468b1a7c..b4f1e0399275 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -521,7 +521,7 @@ extern struct rangeset *mmio_ro_ranges;
 #define compat_pfn_to_cr3(pfn) (((unsigned)(pfn) << 12) | ((unsigned)(pfn) >> 20))
 #define compat_cr3_to_pfn(cr3) (((unsigned)(cr3) >> 12) | ((unsigned)(cr3) << 20))
 
-void memguard_guard_stack(void *p);
+void memguard_guard_stack(void *p, unsigned int cpu);
 void memguard_unguard_stack(void *p);
 
 struct mmio_ro_emulate_ctxt {
@@ -652,4 +652,8 @@ static inline int destroy_xen_mappings_cpu(unsigned long s, unsigned long e,
     return modify_xen_mappings_cpu(s, e, _PAGE_NONE, cpu);
 }
 
+/* Setup a per-domain slot that maps all pCPU stacks. */
+int map_all_stacks(struct domain *d);
+int add_stack(const void *stack, unsigned int cpu);
+
 #endif /* __ASM_X86_MM_H__ */
diff --git a/xen/arch/x86/include/asm/smp.h b/xen/arch/x86/include/asm/smp.h
index c8c79601343d..a17c609da4b6 100644
--- a/xen/arch/x86/include/asm/smp.h
+++ b/xen/arch/x86/include/asm/smp.h
@@ -79,6 +79,18 @@ extern bool unaccounted_cpus;
 
 void *cpu_alloc_stack(unsigned int cpu);
 
+/*
+ * Setup the per-CPU area stack mappings.
+ *
+ * @dest_cpu:  CPU where the mappings are to appear.
+ * @stack_cpu: CPU whose stacks should be mapped.
+ */
+void cpu_set_stack_mappings(unsigned int dest_cpu, unsigned int stack_cpu);
+
+#define HAS_ARCH_SMP_CALLFUNC
+void arch_smp_pre_callfunc(unsigned int cpu);
+void arch_smp_post_callfunc(unsigned int cpu);
+
 #endif /* !__ASSEMBLY__ */
 
 #endif
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 8fea7465a9df..67ffdebb595e 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -87,6 +87,7 @@
  * doing the final put_page(), and remove it from the iommu if so.
  */
 
+#include <xen/cpu.h>
 #include <xen/init.h>
 #include <xen/ioreq.h>
 #include <xen/kernel.h>
@@ -6352,31 +6353,40 @@ void free_perdomain_mappings(struct domain *d)
     d->arch.perdomain_l3_pg = NULL;
 }
 
-static void write_sss_token(unsigned long *ptr)
+static void write_sss_token(unsigned long *ptr, unsigned long va)
 {
     /*
      * A supervisor shadow stack token is its own linear address, with the
      * busy bit (0) clear.
      */
-    *ptr = (unsigned long)ptr;
+    *ptr = va;
 }
 
-void memguard_guard_stack(void *p)
+void memguard_guard_stack(void *p, unsigned int cpu)
 {
+    unsigned long va =
+        (opt_asi_hvm || opt_asi_pv) ? (unsigned long)PERCPU_STACK_ADDR(cpu)
+                                    : (unsigned long)p;
+
     /* IST Shadow stacks.  4x 1k in stack page 0. */
     if ( IS_ENABLED(CONFIG_XEN_SHSTK) )
     {
-        write_sss_token(p + (IST_MCE * IST_SHSTK_SIZE) - 8);
-        write_sss_token(p + (IST_NMI * IST_SHSTK_SIZE) - 8);
-        write_sss_token(p + (IST_DB  * IST_SHSTK_SIZE) - 8);
-        write_sss_token(p + (IST_DF  * IST_SHSTK_SIZE) - 8);
+        write_sss_token(p + (IST_MCE * IST_SHSTK_SIZE) - 8,
+                        va + (IST_MCE * IST_SHSTK_SIZE) - 8);
+        write_sss_token(p + (IST_NMI * IST_SHSTK_SIZE) - 8,
+                        va + (IST_NMI * IST_SHSTK_SIZE) - 8);
+        write_sss_token(p + (IST_DB  * IST_SHSTK_SIZE) - 8,
+                        va + (IST_DB  * IST_SHSTK_SIZE) - 8);
+        write_sss_token(p + (IST_DF  * IST_SHSTK_SIZE) - 8,
+                        va + (IST_DF  * IST_SHSTK_SIZE) - 8);
     }
     map_pages_to_xen((unsigned long)p, virt_to_mfn(p), 1, PAGE_HYPERVISOR_SHSTK);
 
     /* Primary Shadow Stack.  1x 4k in stack page 5. */
     p += PRIMARY_SHSTK_SLOT * PAGE_SIZE;
+    va += PRIMARY_SHSTK_SLOT * PAGE_SIZE;
     if ( IS_ENABLED(CONFIG_XEN_SHSTK) )
-        write_sss_token(p + PAGE_SIZE - 8);
+        write_sss_token(p + PAGE_SIZE - 8, va + PAGE_SIZE - 8);
 
     map_pages_to_xen((unsigned long)p, virt_to_mfn(p), 1, PAGE_HYPERVISOR_SHSTK);
 }
@@ -6567,6 +6577,105 @@ void setup_perdomain_slot(const struct vcpu *v, root_pgentry_t *root_pgt)
                   root_pgt[root_table_offset(PERDOMAIN_VIRT_START)]);
 }
 
+static struct page_info *l2_all_stacks;
+
+int add_stack(const void *stack, unsigned int cpu)
+{
+    unsigned long va = (unsigned long)PERCPU_STACK_ADDR(cpu);
+    struct page_info *pg;
+    l2_pgentry_t *l2tab = NULL;
+    l1_pgentry_t *l1tab = NULL;
+    unsigned int nr;
+    int rc = 0;
+
+    /*
+     * Assume CPU stack allocation is always serialized, either because it's
+     * done on the BSP during boot, or in case of hotplug, in stop machine
+     * context.
+     */
+    ASSERT(system_state < SYS_STATE_active || cpu_in_hotplug_context());
+
+    if ( !opt_asi_hvm && !opt_asi_pv )
+        return 0;
+
+    if ( !l2_all_stacks )
+    {
+        l2_all_stacks = alloc_domheap_page(NULL, MEMF_no_owner);
+        if ( !l2_all_stacks )
+            return -ENOMEM;
+        l2tab = __map_domain_page(l2_all_stacks);
+        clear_page(l2tab);
+    }
+    else
+        l2tab = __map_domain_page(l2_all_stacks);
+
+    /* code assumes all the stacks can be mapped with a single l2. */
+    ASSERT(l3_table_offset((unsigned long)percpu_fix_to_virt(PCPU_STACK_END)) ==
+        l3_table_offset((unsigned long)percpu_fix_to_virt(PCPU_STACK_START)));
+    for ( nr = 0 ; nr < (1U << STACK_ORDER) ; nr++)
+    {
+        l2_pgentry_t *pl2e = l2tab + l2_table_offset(va);
+
+        if ( !(l2e_get_flags(*pl2e) & _PAGE_PRESENT) )
+        {
+            pg = alloc_domheap_page(NULL, MEMF_no_owner);
+            if ( !pg )
+            {
+                rc = -ENOMEM;
+                break;
+            }
+            l1tab = __map_domain_page(pg);
+            clear_page(l1tab);
+            l2e_write(pl2e, l2e_from_page(pg, __PAGE_HYPERVISOR_RW));
+        }
+        else if ( !l1tab )
+            l1tab = map_l1t_from_l2e(*pl2e);
+
+        l1e_write(&l1tab[l1_table_offset(va)],
+                  l1e_from_mfn(virt_to_mfn(stack),
+                               is_shstk_slot(nr) ? __PAGE_HYPERVISOR_SHSTK
+                                                 : __PAGE_HYPERVISOR_RW));
+
+        va += PAGE_SIZE;
+        stack += PAGE_SIZE;
+
+        if ( !l1_table_offset(va) )
+        {
+            unmap_domain_page(l1tab);
+            l1tab = NULL;
+        }
+    }
+
+    unmap_domain_page(l1tab);
+    unmap_domain_page(l2tab);
+    /*
+     * Don't care to free the intermediate page-tables on failure, can be used
+     * to map other stacks.
+     */
+
+    return rc;
+}
+
+int map_all_stacks(struct domain *d)
+{
+    /*
+     * Create the per-domain L3.  Pass a dummy PERDOMAIN_VIRT_START, but note
+     * only the per-domain L3 is allocated when nr == 0.
+     */
+    int rc = create_perdomain_mapping(d, PERDOMAIN_VIRT_START, 0, NULL, NULL);
+    l3_pgentry_t *l3tab;
+
+    if ( rc )
+        return rc;
+
+    l3tab = __map_domain_page(d->arch.perdomain_l3_pg);
+    l3tab[l3_table_offset((unsigned long)percpu_fix_to_virt(PCPU_STACK_START))]
+        = l3e_from_page(l2_all_stacks, __PAGE_HYPERVISOR_RW);
+    unmap_domain_page(l3tab);
+
+    return 0;
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 5bf81b81b46f..76f7d71b8c1c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -808,8 +808,6 @@ static void __init noreturn reinit_bsp_stack(void)
     /* Update SYSCALL trampolines */
     percpu_traps_init();
 
-    stack_base[0] = stack;
-
     rc = setup_cpu_root_pgt(0);
     if ( rc )
         panic("Error %d setting up PV root page table\n", rc);
@@ -1771,10 +1769,6 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
 
     system_state = SYS_STATE_boot;
 
-    bsp_stack = cpu_alloc_stack(0);
-    if ( !bsp_stack )
-        panic("No memory for BSP stack\n");
-
     console_init_ring();
     vesa_init();
 
@@ -1961,6 +1955,16 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
 
     alternative_branches();
 
+    /*
+     * Alloc the BSP stack closer to the point where the AP ones also get
+     * allocated - and after the speculation mitigations have been initialized.
+     * In order to set up the shadow stack token correctly Xen needs to know
+     * whether per-CPU mapped stacks are being used.
+     */
+    bsp_stack = cpu_alloc_stack(0);
+    if ( !bsp_stack )
+        panic("No memory for BSP stack\n");
+
     /*
      * Setup the local per-domain L3 for the BSP also, so it matches the state
      * of the APs.
@@ -2065,8 +2069,17 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
         info->last_spec_ctrl = default_xen_spec_ctrl;
     }
 
+    stack_base[0] = bsp_stack;
+
     /* Copy the cpu info block, and move onto the BSP stack. */
-    bsp_info = get_cpu_info_from_stack((unsigned long)bsp_stack);
+    if ( opt_asi_hvm || opt_asi_pv )
+    {
+        cpu_set_stack_mappings(0, 0);
+        bsp_info = get_cpu_info_from_stack((unsigned long)PERCPU_STACK_ADDR(0));
+    }
+    else
+        bsp_info = get_cpu_info_from_stack((unsigned long)bsp_stack);
+
     *bsp_info = *info;
 
     asm volatile ("mov %[stk], %%rsp; jmp %c[fn]" ::
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index 04c6a0572319..18a7196195cf 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -22,6 +22,7 @@
 #include <asm/hardirq.h>
 #include <asm/hpet.h>
 #include <asm/setup.h>
+#include <asm/spec_ctrl.h>
 #include <irq_vectors.h>
 #include <mach_apic.h>
 
@@ -433,3 +434,31 @@ long cf_check cpu_down_helper(void *data)
         ret = cpu_down(cpu);
     return ret;
 }
+
+void arch_smp_pre_callfunc(unsigned int cpu)
+{
+    if ( (!opt_asi_pv && !opt_asi_hvm) || cpu == smp_processor_id() ||
+         (!current->domain->arch.asi && !is_idle_vcpu(current)) ||
+        /*
+         * CPU#0 still runs on the .init stack when the APs are started, don't
+         * attempt to map such stack.
+         */
+         (!cpu && system_state < SYS_STATE_active) )
+        return;
+
+    cpu_set_stack_mappings(smp_processor_id(), cpu);
+}
+
+void arch_smp_post_callfunc(unsigned int cpu)
+{
+    unsigned int i;
+
+    if ( (!opt_asi_pv && !opt_asi_hvm) || cpu == smp_processor_id() ||
+         (!current->domain->arch.asi && !is_idle_vcpu(current)) )
+        return;
+
+    for ( i = 0; i < (1U << STACK_ORDER); i++ )
+        percpu_clear_fixmap(PERCPU_STACK_IDX(cpu) + i);
+
+    flush_area_local(PERCPU_STACK_ADDR(cpu), FLUSH_ORDER(STACK_ORDER));
+}
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index d9841ed3b663..548e3102101c 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -579,7 +579,20 @@ static int do_boot_cpu(int apicid, int cpu)
         printk("Booting processor %d/%d eip %lx\n",
                cpu, apicid, start_eip);
 
-    stack_start = stack_base[cpu] + STACK_SIZE - sizeof(struct cpu_info);
+    if ( opt_asi_hvm || opt_asi_pv )
+    {
+        /*
+         * Uniformly run with the stack mapping of the per-CPU area (including
+         * the idle vCPU) if ASI is enabled for any domain type.
+         */
+        cpu_set_stack_mappings(cpu, cpu);
+
+        ASSERT(IS_ALIGNED((unsigned long)PERCPU_STACK_ADDR(cpu), STACK_SIZE));
+
+        stack_start = PERCPU_STACK_ADDR(cpu) + STACK_SIZE - sizeof(struct cpu_info);
+    }
+    else
+        stack_start = stack_base[cpu] + STACK_SIZE - sizeof(struct cpu_info);
 
     /*
      * If per-CPU idle root page table has been allocated, switch to it as
@@ -1053,11 +1066,41 @@ void *cpu_alloc_stack(unsigned int cpu)
     stack = alloc_xenheap_pages(STACK_ORDER, memflags);
 
     if ( stack )
-        memguard_guard_stack(stack);
+    {
+        int rc = add_stack(stack, cpu);
+
+        if ( rc )
+        {
+            printk(XENLOG_ERR "unable to map stack for CPU %u: %d\n", cpu, rc);
+            free_xenheap_pages(stack, STACK_ORDER);
+            return NULL;
+        }
+        memguard_guard_stack(stack, cpu);
+    }
 
     return stack;
 }
 
+void cpu_set_stack_mappings(unsigned int dest_cpu, unsigned int stack_cpu)
+{
+    unsigned int i;
+
+    for ( i = 0; i < (1U << STACK_ORDER); i++ )
+    {
+        unsigned int flags = (is_shstk_slot(i) ? __PAGE_HYPERVISOR_SHSTK
+                                               : __PAGE_HYPERVISOR_RW) |
+                             (dest_cpu == stack_cpu ? _PAGE_GLOBAL : 0);
+
+        if ( is_shstk_slot(i) && dest_cpu != stack_cpu )
+            continue;
+
+        percpu_set_fixmap_remote(dest_cpu, PERCPU_STACK_IDX(stack_cpu) + i,
+                                 _mfn(virt_to_mfn(stack_base[stack_cpu] +
+                                                  i * PAGE_SIZE)),
+                                 flags);
+    }
+}
+
 static int cpu_smpboot_alloc(unsigned int cpu)
 {
     struct cpu_info *info;
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index b4fb95917023..28513c0e3d6a 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -609,10 +609,12 @@ void show_stack_overflow(unsigned int cpu, const struct cpu_user_regs *regs)
     unsigned long esp = regs->rsp;
     unsigned long curr_stack_base = esp & ~(STACK_SIZE - 1);
     unsigned long esp_top, esp_bottom;
+    const void *stack = current->domain->arch.asi ? PERCPU_STACK_ADDR(cpu)
+                                                  : stack_base[cpu];
 
-    if ( _p(curr_stack_base) != stack_base[cpu] )
+    if ( _p(curr_stack_base) != stack )
         printk("Current stack base %p differs from expected %p\n",
-               _p(curr_stack_base), stack_base[cpu]);
+               _p(curr_stack_base), stack);
 
     esp_bottom = (esp | (STACK_SIZE - 1)) + 1;
     esp_top    = esp_bottom - PRIMARY_STACK_SIZE;
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index d952c3ba785e..3a8233ed62ac 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -32,6 +32,7 @@ void efi_rs_leave(struct efi_rs_state *state);
 
 #ifndef CONFIG_ARM
 # include <asm/i387.h>
+# include <asm/spec_ctrl.h>
 # include <asm/xstate.h>
 # include <public/platform.h>
 #endif
@@ -85,6 +86,7 @@ struct efi_rs_state efi_rs_enter(void)
     static const u16 fcw = FCW_DEFAULT;
     static const u32 mxcsr = MXCSR_DEFAULT;
     struct efi_rs_state state = { .cr3 = 0 };
+    root_pgentry_t *efi_pgt, *idle_pgt;
 
     if ( mfn_eq(efi_l4_mfn, INVALID_MFN) )
         return state;
@@ -98,6 +100,16 @@ struct efi_rs_state efi_rs_enter(void)
 
     efi_rs_on_cpu = smp_processor_id();
 
+    if ( opt_asi_pv || opt_asi_hvm )
+    {
+        /* Insert the idle per-domain slot for the stack mapping. */
+        efi_pgt = map_domain_page(efi_l4_mfn);
+        idle_pgt = maddr_to_virt(idle_vcpu[efi_rs_on_cpu]->arch.cr3);
+        efi_pgt[root_table_offset(PERDOMAIN_VIRT_START)].l4 =
+            idle_pgt[root_table_offset(PERDOMAIN_VIRT_START)].l4;
+        unmap_domain_page(efi_pgt);
+    }
+
     /* prevent fixup_page_fault() from doing anything */
     irq_enter();
 
diff --git a/xen/common/smp.c b/xen/common/smp.c
index a011f541f1ea..04f5aede0d3d 100644
--- a/xen/common/smp.c
+++ b/xen/common/smp.c
@@ -29,6 +29,7 @@ static struct call_data_struct {
     void (*func) (void *info);
     void *info;
     int wait;
+    unsigned int caller;
     cpumask_t selected;
 } call_data;
 
@@ -63,6 +64,7 @@ void on_selected_cpus(
     call_data.func = func;
     call_data.info = info;
     call_data.wait = wait;
+    call_data.caller = smp_processor_id();
 
     smp_send_call_function_mask(&call_data.selected);
 
@@ -82,6 +84,12 @@ void smp_call_function_interrupt(void)
     if ( !cpumask_test_cpu(cpu, &call_data.selected) )
         return;
 
+    /*
+     * TODO: use bounce buffers to pass callfunc data, so that when using ASI
+     * there's no need to map remote CPU stacks.
+     */
+    arch_smp_pre_callfunc(call_data.caller);
+
     irq_enter();
 
     if ( unlikely(!func) )
@@ -102,6 +110,8 @@ void smp_call_function_interrupt(void)
     }
 
     irq_exit();
+
+    arch_smp_post_callfunc(call_data.caller);
 }
 
 /*
diff --git a/xen/include/xen/smp.h b/xen/include/xen/smp.h
index 2ca9ff1bfcc1..610c279ca24c 100644
--- a/xen/include/xen/smp.h
+++ b/xen/include/xen/smp.h
@@ -76,4 +76,9 @@ extern void *stack_base[NR_CPUS];
 void initialize_cpu_data(unsigned int cpu);
 int setup_cpu_root_pgt(unsigned int cpu);
 
+#ifndef HAS_ARCH_SMP_CALLFUNC
+static inline void arch_smp_pre_callfunc(unsigned int cpu) {}
+static inline void arch_smp_post_callfunc(unsigned int cpu) {}
+#endif
+
 #endif /* __XEN_SMP_H__ */
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 16:26:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 16:26:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765683.1176338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXNlf-0001Ns-Bl; Fri, 26 Jul 2024 16:26:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765683.1176338; Fri, 26 Jul 2024 16:26:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXNlf-0001Nl-7S; Fri, 26 Jul 2024 16:26:07 +0000
Received: by outflank-mailman (input) for mailman id 765683;
 Fri, 26 Jul 2024 16:26:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P8ZK=O2=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sXNle-0001Nf-3B
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 16:26:06 +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 bf236d53-4b6b-11ef-bc00-fd08da9f4363;
 Fri, 26 Jul 2024 18:26:01 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a7a9a369055so201938666b.3
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 09:26:01 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad91005sm193463566b.173.2024.07.26.09.26.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Jul 2024 09: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: bf236d53-4b6b-11ef-bc00-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722011161; x=1722615961; 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=YlGYXb7vpgE153wxJcUKemLIuYFS/C4BxEM1AQOl8rI=;
        b=XPu5sO25kfQLAKeiqfTO8Cjz/+hjJssmE8s6faUix8Rw2yCSGxeLE9vefSZd+693l0
         78ZVYWp8j1WGYLDnrtqiiFWi0/Mvf/0lWbHC+bxs9ruG5R51RkCIrSHjOYokvYRVYgv1
         DAeMN7h7wX9P76VxBQiuzVEFcrUMbIAlzaOw8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722011161; x=1722615961;
        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=YlGYXb7vpgE153wxJcUKemLIuYFS/C4BxEM1AQOl8rI=;
        b=k6RJ5BN4bl3CSNsdE2cxmdXz+5B8xgEo9gu4DjZ7nvTkJOxz5pu1kpwioQD8SF9tZP
         qKdTRO9G8ZJn4PJITWSE2sH7cctzuBOg/tga7yK3NRuycUVPVAehHNb6my0mTTtoBkZd
         f05JFUKVuiBZSw+RBgGOd0Kx/090s0vHMe6lZlEim44BubvPP+ZXlW8XOjYTlINsq0vn
         pof8D6G1V9T6PDulTXz06X+sRLl+urTPnTZOqsMt9n8/Q7OQmWnB3famSiHco+6n3EQP
         jQcLPDBIC5GsNpqbp5cD1r5VtMmKNxCYADsKTEH6BgMDSf/qlqXiUVQ8T2tT9Dq6n8X4
         /LWg==
X-Forwarded-Encrypted: i=1; AJvYcCXpktXGW90YflIcrrxdh7wxqG2Regy7CpKGwltkWgZ514zT6l4zUsO+nl7dWfntlvV1WtRyfxt8khFij8zhUQ4Xx6ucyp+uqkNRTHYzgB8=
X-Gm-Message-State: AOJu0Yyf+hev+xEnQpdcPZuiz6mzzypu1HMGpM0cRTmVtmdPKZGI06F+
	gnRyHkWrFA4Phi/LYPfrfj4/JZl856BMK6cYMt0yGxRryEkRc355L+7S74MXKb3BBDwnqFQfhs+
	pyq4=
X-Google-Smtp-Source: AGHT+IHwu4GZE1g+GQ/O/7EBDDYdZOWkGfJOmxAxidHBgWVaOYRM9eaEY2OMzyd5+7KItSHVG0cstA==
X-Received: by 2002:a17:907:6d01:b0:a7a:a06b:eec3 with SMTP id a640c23a62f3a-a7d3ff9ed50mr1933366b.23.1722011160676;
        Fri, 26 Jul 2024 09:26:00 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 26 Jul 2024 17:25:58 +0100
Message-Id: <D2ZM0D609TOQ.2GQQWR1QALUPA@cloud.com>
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
X-Mailer: aerc 0.17.0
References: <20240725105634.16825-1-roger.pau@citrix.com>
 <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com> <ZqJnPvL1ilDDzM9V@macbook>
 <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com> <ZqNQwM3U8S5q-kg5@macbook>
 <0f6b446a-0dda-4e59-807b-c0c0bcdf78bf@suse.com> <ZqNVs97wexqd5trA@macbook>
 <4e2117f9-2a68-4032-9d1a-09965f97085f@suse.com>
 <D2ZJA8MODIO2.9JHFXZO8LW7Z@cloud.com>
 <D2ZJFUKTDIAL.2OE4EHLK6GGIB@cloud.com> <ZqO-RFZHdCrIuRok@macbook>
In-Reply-To: <ZqO-RFZHdCrIuRok@macbook>

On Fri Jul 26, 2024 at 4:18 PM BST, Roger Pau Monn=C3=A9 wrote:
> On Fri, Jul 26, 2024 at 03:25:08PM +0100, Alejandro Vallejo wrote:
> > On Fri Jul 26, 2024 at 3:17 PM BST, Alejandro Vallejo wrote:
> > > On Fri Jul 26, 2024 at 9:05 AM BST, Jan Beulich wrote:
> > > > On 26.07.2024 09:52, Roger Pau Monn=C3=A9 wrote:
> > > > > On Fri, Jul 26, 2024 at 09:36:15AM +0200, Jan Beulich wrote:
> > > > >> On 26.07.2024 09:31, Roger Pau Monn=C3=A9 wrote:
> > > > >>> On Thu, Jul 25, 2024 at 05:00:22PM +0200, Jan Beulich wrote:
> > > > >>>> On 25.07.2024 16:54, Roger Pau Monn=C3=A9 wrote:
> > > > >>>>> On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote:
> > > > >>>>>> On 25.07.2024 12:56, Roger Pau Monne wrote:
> > > > >>>>>>> --- a/xen/arch/x86/include/asm/alternative.h
> > > > >>>>>>> +++ b/xen/arch/x86/include/asm/alternative.h
> > > > >>>>>>> @@ -184,11 +184,11 @@ extern void alternative_branches(void=
);
> > > > >>>>>>>   * https://github.com/llvm/llvm-project/issues/82598
> > > > >>>>>>>   */
> > > > >>>>>>>  #define ALT_CALL_ARG(arg, n)                              =
              \
> > > > >>>>>>> -    register union {                                      =
              \
> > > > >>>>>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];        =
              \
> > > > >>>>>>> -        unsigned long r;                                  =
              \
> > > > >>>>>>> +    register struct {                                     =
              \
> > > > >>>>>>> +        typeof(arg) e;                                    =
              \
> > > > >>>>>>> +        char pad[sizeof(void *) - sizeof(arg)];           =
              \
> > > > >>>>>>
> > > > >>>>>> One thing that occurred to me only after our discussion, and=
 I then forgot
> > > > >>>>>> to mention this before you would send a patch: What if sizeo=
f(void *) =3D=3D
> > > > >>>>>> sizeof(arg)? Zero-sized arrays are explicitly something we'r=
e trying to
> > > > >>>>>> get rid of.
> > > > >>>>>
> > > > >>>>> I wondered about this, but I though it was only [] that we we=
re trying
> > > > >>>>> to get rid of, not [0].
> > > > >>>>
> > > > >>>> Sadly (here) it's actually the other way around, aiui.
> > > > >>>
> > > > >>> The only other option I have in mind is using an oversized arra=
y on
> > > > >>> the union, like:
> > > > >>>
> > > > >>> #define ALT_CALL_ARG(arg, n)                                   =
         \
> > > > >>>     union {                                                    =
         \
> > > > >>>         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof=
(arg)];  \
> > > > >>>         unsigned long r;                                       =
         \
> > > > >>>     } a ## n ## __  =3D {                                      =
           \
> > > > >>>         .e[0] =3D ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *))=
; (arg); })\
> > > > >>>     };                                                         =
         \
> > > > >>>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n =
) =3D      \
> > > > >>>         a ## n ## __.r
> > > > >>
> > > > >> Yet that's likely awful code-gen wise?
> > > > >=20
> > > > > Seems OK: https://godbolt.org/z/nsdo5Gs8W
> > > >
> > > > In which case why not go this route. If the compiler is doing fine =
with
> > > > that, maybe the array dimension expression could be further simplif=
ied,
> > > > accepting yet more over-sizing? Like "sizeof(void *) / sizeof (arg)=
 + 1"
> > > > or even simply "sizeof(void *)"? Suitably commented of course ...
> > > >
> > > > >> For the time being, can we perhaps
> > > > >> just tighten the BUILD_BUG_ON(), as iirc Alejandro had suggested=
?
> > > > >=20
> > > > > My main concern with tightening the BUILD_BUG_ON() is that then I
> > > > > would also like to do so for the GCC one, so that build fails
> > > > > uniformly.
> > > >
> > > > If we were to take that route, then yes, probably should constrain =
both
> > > > (with a suitable comment on the gcc one).
> > > >
> > > > Jan
> > >
> > > Yet another way would be to have an intermediate `long` to cast onto.=
 Compilers
> > > will optimise away the copy. It ignores the different-type aliasing r=
ules in
> > > the C spec, so there's an assumption that we have -fno-strict-aliasin=
g. But I
> > > belive we do? Otherwise it should pretty much work on anything.
> > >
> > > ```
> > >   #define ALT_CALL_ARG(arg, n)                                       =
       \
> > >       unsigned long __tmp =3D 0;                                     =
         \
> > >       *(typeof(arg) *)&__tmp =3D                                     =
         \
> > >           ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })   =
       \
> > >       register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =
=3D __tmp; \
> > > ```
> > >
> > > fwiw, clang18 emits identical code compared with the previous godbolt=
 link.
> > >
> > > Link: https://godbolt.org/z/facd1M9xa
> > >
> > > Cheers,
> > > Alejandro
> >=20
> > Bah. s/b/__tmp/ in line15. Same output though, so the point still stand=
s.
>
> Had to adjust it to:
>
> #define ALT_CALL_ARG(arg, n)                                             =
 \
>     unsigned long a ## n ## __ =3D 0;                                    =
   \
>     *(typeof(arg) *)&a ## n ## __ =3D                                    =
   \
>         ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); });        =
 \
>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D a ##=
 n ## __
>
> So that tmp__ is not defined multiple times for repeated
> ALT_CALL_ARG() usages.
>
> Already tried something like this in the past, but it mixes code with
> declarations, and that's forbidden in the current C standard that Xen
> uses:
>
> ./arch/x86/include/asm/hvm/hvm.h:665:5: error: mixing declarations and co=
de is incompatible with standards before C99 [-Werror,-Wdeclaration-after-s=
tatement]
>
> The `*(typeof(arg) *)&__tmp =3D ...` line is considered code, and is
> followed by further declarations.  Even if we moved both declarations
> ahead of the assigns it would still complain when multiple
> ALT_CALL_ARG() instances are used in the same altcall block.
>
> Thanks, Roger.

That _was_ forbidden in C89, but it has been allowed since. We have a warni=
ng
enabled to cause it to fail even if we always use C99-compatible compilers.=
 I
think we should change that.

Regardless, I think it can be worked around. This compiles (otherwise
untested):

#define ALT_CALL_ARG(arg, n)
    register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D ({   \
        unsigned long tmp =3D 0;                                          \
        *(typeof(arg) *)&a ## n ## __ =3D (arg);                          \
        BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                     \
        tmp;                                                            \
    })

That said, if the oversized temp union works, I'm fine with that too.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 16:30:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 16:30:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765691.1176347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXNph-00047j-VA; Fri, 26 Jul 2024 16:30:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765691.1176347; Fri, 26 Jul 2024 16: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 1sXNph-00047c-S0; Fri, 26 Jul 2024 16:30:17 +0000
Received: by outflank-mailman (input) for mailman id 765691;
 Fri, 26 Jul 2024 16:30: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=5GXa=O2=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1sXNpg-00046E-Gf
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 16:30:16 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2418::61f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54fdbe77-4b6c-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 18:30:14 +0200 (CEST)
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com (2603:10b6:a03:539::18)
 by MW6PR12MB8897.namprd12.prod.outlook.com (2603:10b6:303:24a::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.29; Fri, 26 Jul
 2024 16:30:07 +0000
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a]) by SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a%5]) with mapi id 15.20.7784.020; Fri, 26 Jul 2024
 16:30: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: 54fdbe77-4b6c-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RVOyBrZQCLZ0tzjCw0XwC2wwMqMtcWrMU3IW7jx8CLGn8DC7rg6OjkEiT5oq9z4RpH5wD5I8CmUj7yqi54BnLpsIlv69KoMtXk6GbdFiCKb38JtkhsIFJ+GHRytBvLne0QZuLjnPOEpAfEBfq4w7s5FnQSe2WkPeYb3BQPi5xyXSWlwFNgSpNa07gOZV6W5UkqC2y/w2NL8XBgPj5OdXl6gp1N8Mek0YkUKGDAENvTB0YschLEGMQW+zlrIRwgueKHeZOzzbiyOa2zGzc56SVF5u9TyBH60CT2cefT8AWDbm5+zb8LhH2kXhqYVgAOYhcR3AFayCQruucQiMojk+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=Y5/A11Jd0LhVLYAWmJfeRLAyGmxDxFiaeExH8ReIFC8=;
 b=Ev1AzMOKdza+Tlotr3oeY+Wgswb4iV/wUqGsPa2pFHuQ133p3K2tIop8NeoCZ4I+IyIG6/nECxris4T8t0KdMTEPIjZ39bq6L1lOFzD+5edz3brvpcDUy7am+CnHB3a7SDmaI8VSxqbtK44no9dWZgsZLWfAzX31U98U6AofDyFGuBbT1ltLRynZxbrIwRvHxO+zSGd4sEUCHSZCjKJK40yOtHfBl6+DWRWX0oS7LFeR6eUGooy7EWd6gn2W63n9QZTkSN/9cSENLM4Pryw3KOHn/CpXxkY0qeOzCpYbFAgybYiwrUzpZEmwMYtiP6H9+EP3iw4htailXOjDyU3trg==
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=Y5/A11Jd0LhVLYAWmJfeRLAyGmxDxFiaeExH8ReIFC8=;
 b=Q1vAxk1bBLGbSBgQmjHlD4ghqsW6dIO4jKdR9xHzYfPp1V4Zn7yqOobm+BnlWSjYz4ykZk/8Ej3YW0HTg/RRgeS9p8DgL/zk9Z6q0WMvhNj1DFIub6vR2f2AQbFA7BP2SPTzsI8IQjVf4kmL3+avE+Qrby3dwKDq0Kl5XewE4Lw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <993a1f22-2d65-4bac-b466-aa4fb9626553@amd.com>
Date: Fri, 26 Jul 2024 09:30:06 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v3] automation: add linker symbol name script
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, roberto.bagnara@bugseng.com,
 consulting@bugseng.com, simone.ballarin@bugseng.com,
 xen-devel@lists.xenproject.org
References: <29c7f6cd166d5d3c0e9f64dc937e29dc7ecf3f2d.1721933988.git.victorm.lira@amd.com>
 <68c3ac17-2ccb-40db-b105-712d444440c3@suse.com>
Content-Language: en-US
From: "Lira, Victor M" <VictorM.Lira@amd.com>
In-Reply-To: <68c3ac17-2ccb-40db-b105-712d444440c3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com
 (2603:10b6:a03:1f4::43) To SJ2PR12MB8876.namprd12.prod.outlook.com
 (2603:10b6:a03:539::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ2PR12MB8876:EE_|MW6PR12MB8897:EE_
X-MS-Office365-Filtering-Correlation-Id: 69808da6-1c21-4f0d-0213-08dcad9035f7
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?WW1QWXJQME95T3MvZnU3YlVmOU92eXFjS3BBYk1vWDh1WVEzYkxiY1lzaFdW?=
 =?utf-8?B?MjRzWTBmbWlQVmUrLzE1SFc0QjZ0OXhvU1RZM0Z5ZEVlaXlMU1hTUWFETExN?=
 =?utf-8?B?V0V1TXlIcVBsV0l6bHhiOFAwSGpZNDFEejlFN25jWFYxTFo2V0VUUmZuWGYy?=
 =?utf-8?B?Nk5lYmNhc3AramU1eVg1dFFPT2FRL0NDSVlhc2lFS3RLTUhIbkVCTG4xdG1q?=
 =?utf-8?B?aGpWRVdYQXJpdHExVlQ1MUQ0clVGLys5SUY2S25HSmJNbzc4U2FjNXhpRys1?=
 =?utf-8?B?c0hHdUM4RVhOc21Zd3UxbXYyZ3pjZ1NUcjVqQjlGdzkrcFZKa3JIV2pLem5T?=
 =?utf-8?B?Ui9reDBNUDdacC83MmduYzdrdGFwSEhMcFMzdDFQWnlsaEJJZ0daWEdOcklU?=
 =?utf-8?B?US9abGVvVGdvYzlQcWRGRGs3aEVpUHI3UVV2R1VmOEw5TUxXallldFJKNDQv?=
 =?utf-8?B?WngxRTZIakhCZENZK29iOUdOWDJ2Mm01RlZpK2lITmlEeFgzelkwS013UTdY?=
 =?utf-8?B?b2ltQm5DaS81d0tZdi9SYjdBODdlcUlxQXp6VWpBdy9vWVRmazVNbVBDaTM4?=
 =?utf-8?B?WUtMK0RLTWhzUmU3eGhRd3haQ2VTK2VJT2V2a1lrZ1NOZ3JYTmtHRWNRMkJJ?=
 =?utf-8?B?MFIydENHWWZWRFlkWFovZVdVbE1WMUs0cWh3YngzbG16aG1VU3Rra3NCaGJt?=
 =?utf-8?B?OGc5UnlyRldLdXlGYWRGRnhCOEdVcklUdXI5b1JDNTJiWDdxL25FYTkrdFE5?=
 =?utf-8?B?MXliWStSWVM3bllIQVk1b204QkdLbEtaVUZYdGkvWUVHNnk1QTBtZGdCVkgx?=
 =?utf-8?B?YUxJMGtiTEIwQW8yeS9NM05UekIycE9PdHhCUXFaTDkyZXN1UEhqK2ZNa21w?=
 =?utf-8?B?eGJ4RkxyQytpNU5ESWxwaWdKSDZiSC82OWFjWW16UXFJUE9GS1NMb1pibFVU?=
 =?utf-8?B?dDRMVHhlRE1ITnNZZFBDUlFBSFI4UTNMZFc2azdTNFErbDNZeG9QUU84S2Ri?=
 =?utf-8?B?WVIvbEYxdU14Y3pwS1lQWDZBRk55aVRPYU91b1FEN2dERE9GVVRsclhjN2pj?=
 =?utf-8?B?cmhYRHpJaVBOOGEyL0hnU29Db2tHTEt1aVZ2VTZ6Zm5TNkFKQVdHUmY0anYx?=
 =?utf-8?B?QTVIdWZTWFIzbU5tVE4veUJiRjdWZ3NIN1N6RTVncmk2Q2U1bEtkL0RQQldk?=
 =?utf-8?B?bUMrZFROQW9kemdNUzQ0RDBsN3kzREU5L2lqVzhJdmZVN1FMcDRHRE03Z0pl?=
 =?utf-8?B?U2tEU3F2WCtQRUtMcXY3cC9BanZhRWhQNmlTTWlvRWtxL283bjdDY1IvQllG?=
 =?utf-8?B?cmpMd3FWK1ZxbG43emc1dGxqY2g3TG51UEUxUTNidXYycEs0dVAvOU8xUjNP?=
 =?utf-8?B?ekZ6dUFNZnRDMHB6WWJjQWkzZ2pNQTMyMmtUc1Rrd3hZdWZrbHBCQmlvcll6?=
 =?utf-8?B?MTl4eFZaMXF4T0dMYUMraGR1dkZuc2kvdm41UE1iWXdPSlRIbGdtVUduN2tV?=
 =?utf-8?B?Ynh0eHV4K3FjOTBZNU5hTUxGdDNuRWVZS3N5WnZjZWFPZzg0dkljSlNzK1Jk?=
 =?utf-8?B?eGR6OFhtZ1pHenl3VVY1b3lJWm5ZWUIwMGdtbTcwNHZpQ240c3lYckE3Wk5C?=
 =?utf-8?B?NzNBQXhtSFFsKytMWTBJeDZKZFJNcGRpTWFDYjBFVXRMM24zWnlrRGxJTE5Z?=
 =?utf-8?B?dUJnQ1F6N3pvdS9SYkZnYzhIWmErYmpvVXNSYjFneXZSdkhjdkZ4K2ppUEhi?=
 =?utf-8?B?S0E0ck5RS2szdW1pdXZIeWVWSW1acEUzZjFxNHV5UUFkY2VHSXB3U2VZdjV6?=
 =?utf-8?B?cHFMN013UjNrWk93SUZpUT09?=
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)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dXFUM0EwdnBCNkdadjRMK1JSZlduSi9FOEtpNnhkNnhxRTM3MWNNTTJUY1Jq?=
 =?utf-8?B?enFHWlFKeHNVUmNseWhVQnovR2xyNm5oZy9kVldjdTBrZGJtV3hsdFZoSmpz?=
 =?utf-8?B?bmhuUmZXTUFTS2M0Y21DeU9oSGkweDFRK0RJN1VJcDBiaHpveTc4eG9IejRl?=
 =?utf-8?B?NjRPSUw3dU82VG5VWHZmNnZJU0doTTlqRU9GMVBtanQzRUcrVi85VTV4WE93?=
 =?utf-8?B?ODNJc0J3Tm5YS05hdVhYRTdnVU1mMzVja2xUOE5oMFNhdDNGcU8xNnU4eEpt?=
 =?utf-8?B?Um16dEdLd0tJelZRQzJSZEF1YVlPc28zcHY3MmlBR1ZSOWxFdFJyNHRvSjFO?=
 =?utf-8?B?amtnTlBkV0ZDa3UzMisyVmlhMVczeVl1ZjQyVDRLUExtTm5ZbE9MKzdWZ213?=
 =?utf-8?B?aHRxTU5VbjJwUGJmTnMwWjljd09FWG90azFiWmdkdjRWdmRzNjJIbTU0alFs?=
 =?utf-8?B?cFJDSzNNbDRQQVBIa0dnL2JIL0lTbDlVZlEzSk1kRUFRKzlOaGVuNXVXVm0v?=
 =?utf-8?B?b3c5ZCtDdlltVGJmVnkxblJLRXY4NjlXa2dRRjJQNjJ2SEFhbnhtS2pYcTJJ?=
 =?utf-8?B?ZlYyVTRNaERYZWdnQ3VBd05xUkZuRkxLblBzRFhicFZQN2FXMlgxbmFtUVRR?=
 =?utf-8?B?Qy9JdFMxRTd1ZHJpbWpXY2lpS0d6N3pBZHNtc3FoNHM2L0NYQ1E0OFBGblR6?=
 =?utf-8?B?b0h1QzFqaWtZaDdUQVYyd2RzOWF0RUlpdGV1cTA2azh0a3pQbFhISkcwdkYz?=
 =?utf-8?B?Q0NEQWZkNEVqcnRYckE4Z0YvUXEvWFZyR2J4Y3pZeUJOR1RWc0NWbmo2Z2ZX?=
 =?utf-8?B?UVJlQU40RzNEMEpTT0tKNFByd2ozODZkR3JUZ3hsdVZpK2wyUnI0QXhuRlFw?=
 =?utf-8?B?Z3lpZWpMUlpNdXlrblFRZHE0ZVpYaW1lZmJSckFLRWVBWk8wNFlmcWZJeHd4?=
 =?utf-8?B?NEdzQ2RSckppTU9FSUlQVGpUbS9XOG9nNFVibjI1bWVVekc1cWU5VTFwNFJi?=
 =?utf-8?B?U1R1QWN5MjlKT3BqaG10MHlqVWEyM3c0NDlUV3lRV2twenJGRWIwdW0yYThH?=
 =?utf-8?B?K2pTNDdjZ2FkczNoZVEzdU5CYTNPdkV1clpiVnQvZkt2N0hqMUtNMk00dWxu?=
 =?utf-8?B?ZXQ0Zk1XZU9VbFlTaURxc2RnTU1JQytWSThJZmxJNkZOb3BlYnJOYXhIMyth?=
 =?utf-8?B?eGJMdHhoeW5QUGtYNXRuakh1R0hlSTlNTzU1dmxNMndUdkwwZ1FrZFc2S0VK?=
 =?utf-8?B?UzkrYmpqSUp0V0VTd2lkSmQ0R1A5Ly9KRmh1dUtVeXhkSm5HWTIxYVpVYWZL?=
 =?utf-8?B?andkdWpLeSs4RlZuc0w5VXJsQTlEcnY1UlNwQzFiUzRqTDRhNjJ2SldwdkRq?=
 =?utf-8?B?NktCZjNuY2pzT1BCMERKSEFic3dIVWkyZlRXTHozYXY0cXZ1Y2tuMUtiNS9j?=
 =?utf-8?B?c1FES0w2MTV0S0Q3Z3VUbHpFVmhPaWs0SmJHb2EyZ1dGcEpNcW1JR2NqWmlm?=
 =?utf-8?B?NzFHKzlQMUZiNndSSHRldmp4RUd0dk1UbDl0ODN0M2l4cWF5ZjdrOGNKZ2tZ?=
 =?utf-8?B?NTdGTkI0czNxTWxPT1l1NThKbWtXVjVRRjg2UVRocngzRlhhU3BjQzlzcHFQ?=
 =?utf-8?B?Tjc3SFRZMDU1b2d6dXhIeWs5QTdVZElKTmt1bjJWYnZhc0UvTUtaSXBwYysy?=
 =?utf-8?B?ZDk4bU0wZmxrbnZXVitpRHd6dXo1YlJaSm1Tb0J2eVMrd2ZlMW5nYStGak5l?=
 =?utf-8?B?NXRPVitUVXFNOXcxZnVmZ2dXUllzcys4KzF4c1pRdU5kTS9JK2pqcmIvSmc2?=
 =?utf-8?B?US96STVsVEdDbk1lcXVtWGVBVjJzQVVDc2MvaXpyRDcyTnV1eTdUMEQ2YU1i?=
 =?utf-8?B?OW9uZFRKQWNGY09DMFVlOGxnTFdMc1VzVUNaalViU29oTlpya2ZPbkVLVDd3?=
 =?utf-8?B?dzVFNTNaaVRPYS9DdWhRYzhnaGpoNk12b2t3OVpXSisxSWhHY2NESC9rS2tH?=
 =?utf-8?B?MENkYmloT2Z5Zi9OOTJwdUlJMDZHK09QMGJOYmZwTDhoSDRQWDJISWNRVUNG?=
 =?utf-8?B?MlZXZXI2NVB3Ukp2cjVUMzhvVlVRNytablgrd3d5L2ovS3BWVWV6K0NXTm9Q?=
 =?utf-8?Q?4JjiUNuDGU0/tQZIroRxx5cj/?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 69808da6-1c21-4f0d-0213-08dcad9035f7
X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8876.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2024 16:30:07.3147
 (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: T2Cuao04v6I4PxL4lBuW8ZdbbJ5T3YsRRFQimLfxmY4qf5WndoygVhHCc7Np+uo4bRkjY74s10NkxzExq3Zffw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8897


On 7/26/2024 12:44 AM, Jan Beulich wrote:
>> +  fatal "Could not find ${1} linker script. Must be run after arm/x86 build."
> ... why you have "arm/x86" there when the message already includes ${1}.
> That'll simply go stale (and unnoticed) when PPC and/or RISC-V make further
> progress. Actually in usage() I'm similarly uncertain you want to mention
> the two architectures explicitly. Just say <arch> there? Happy to make
> adjustments while committing, so long as you agree.
>
> Jan

OK, I see your point and I agree with both changes.

Victor



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 16:32:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 16:32:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765698.1176357 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXNrY-0004hi-AJ; Fri, 26 Jul 2024 16:32:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765698.1176357; Fri, 26 Jul 2024 16:32:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXNrY-0004hb-6k; Fri, 26 Jul 2024 16:32:12 +0000
Received: by outflank-mailman (input) for mailman id 765698;
 Fri, 26 Jul 2024 16: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=P8ZK=O2=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sXNrW-0004hT-KF
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 16:32: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 9ab4cee9-4b6c-11ef-bc00-fd08da9f4363;
 Fri, 26 Jul 2024 18:32:09 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5a2ffc3447fso2721252a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 09:32:09 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac63b59ca1sm2139425a12.52.2024.07.26.09.32.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Jul 2024 09: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: 9ab4cee9-4b6c-11ef-bc00-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722011529; x=1722616329; darn=lists.xenproject.org;
        h=in-reply-to:references:from:subject:cc:to:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=45nvN7EPr/hhNIhud3ZozczxUmsCkPjNs4KnECSaARs=;
        b=lGMjMqgstn89lszWdqT0a7QY7p3yj1g26CAOZa+8OmL5PvHsrF8rTdvh6B7FgfH5O2
         Ty51HNRwqYzTuW1fHp0oRrkwllPDIkLPuqGzICpEu1N10shbUJBh9AJLIXpdaxwpt8yD
         066IuBbbsz8Qp13zz7tRaWCyJe9mOB55q60f4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722011529; x=1722616329;
        h=in-reply-to:references:from:subject:cc:to:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=45nvN7EPr/hhNIhud3ZozczxUmsCkPjNs4KnECSaARs=;
        b=IgpchISYS587Ujlf0ZISJ1npOSals0nRJaB3kRsoSgpEoc0WmPbh9Co2BYfzX32dHI
         +lsUap0L1+zNabf/hp14wHOz0vpxpzPu0FWSmc35P+AmHVDGWI5pak59JAvN8QKmQIbB
         Xpl+MRd/Q+fOaW+hdAuQYkHH4P+G8JWTH5LeX8eaCqVO633ZzY0DDvtpHs7DByEvorys
         tPbkXhydcsHqXElG797OMBqZMGWcSKSDOYrRQc2zDsOKvB8yYTyc/+ldeZqSnjfGben6
         4q6388/gzYApy3zzb9y/Pr6ii3LUhthZQWH1pslme1GDKN4PTi14xrDZLMNRfjosgx5c
         jQNw==
X-Forwarded-Encrypted: i=1; AJvYcCXbuhyB9BOWXEIuYJmKrB4SIm5s25HYC8Bqr0aIV3dwyEBQzyBNhAesWQYoKbQIJ9Fr6PLSJvBzPy39w1dXwLCkQ6ff1b5P3Q8Fpu5K70o=
X-Gm-Message-State: AOJu0Yz4F6905i7Mz2ObrSNpiNoOy6DEHkheUFkBby5Z5eh+tpKn0oep
	XAzSJUmkz0890s8HlsMfUDfXLTzZ/dpl8XUaz8cuT/rTDCpIvkIvJbjEgBlEZ1g=
X-Google-Smtp-Source: AGHT+IHF7/UohxQFGXt4cSthc6lhVaRDfVltT5QW9nTfHOoG03fpZIIpzPyUvvh0hB/ZhNtU2itBAw==
X-Received: by 2002:a50:cd18:0:b0:5a3:b866:eaee with SMTP id 4fb4d7f45d1cf-5ac631afba8mr4490748a12.7.1722011529170;
        Fri, 26 Jul 2024 09:32:09 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 26 Jul 2024 17:32:07 +0100
Message-Id: <D2ZM52IVW8FG.7497GL0FA95Z@cloud.com>
To: <paul@xen.org>, "Xen-devel" <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>
Subject: Re: [PATCH] x86/viridian: Clarify some viridian logging strings
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
X-Mailer: aerc 0.17.0
References: <20240726145200.1991-1-alejandro.vallejo@cloud.com>
 <e757eaeb-a10f-423e-a914-ec1d77ee0491@xen.org>
In-Reply-To: <e757eaeb-a10f-423e-a914-ec1d77ee0491@xen.org>

On Fri Jul 26, 2024 at 4:11 PM BST, Paul Durrant wrote:
> On 26/07/2024 15:52, Alejandro Vallejo wrote:
> > It's sadically misleading to show an error without letters and expect
> > the dmesg reader to understand it's in hex.
>
> That depends on who's doing the reading.
>
> > The patch adds a 0x prefix
> > to all hex numbers that don't already have it.
> >=20
> > On the one instance in which a boolean is printed as an integer, print
> > it as a decimal integer instead so it's 0/1 in the common case and not
> > misleading if it's ever not just that due to a bug.
> >=20
> > While at it, rename VIRIDIAN CRASH to VIRIDIAN GUEST_CRASH. Every membe=
r
> > of a support team that looks at the message systematically believes
> > "viridian" crashed,
>
> ... which suggests they need educating as to what 'viridian' is (or was).
>

Can't argue with you there. But if a minor cosmetic tweak to a dmesg string
clarifies a matter without further explanation it's imo a net positive chan=
ge.

> > which is absolutely not what goes on. It's the guest
> > asking the hypervisor for a sudden shutdown because it crashed, and
> > stating why.
> >=20
> > Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> > ---
> > Still going through its Gitlab pipeline
> >=20
> > ---
> >   xen/arch/x86/hvm/viridian/synic.c    | 2 +-
> >   xen/arch/x86/hvm/viridian/viridian.c | 9 +++++----
> >   2 files changed, 6 insertions(+), 5 deletions(-)
> >=20
> > diff --git a/xen/arch/x86/hvm/viridian/synic.c b/xen/arch/x86/hvm/virid=
ian/synic.c
> > index 3375e55e95ca..c3dc573b003d 100644
> > --- a/xen/arch/x86/hvm/viridian/synic.c
> > +++ b/xen/arch/x86/hvm/viridian/synic.c
> > @@ -172,7 +172,7 @@ int viridian_synic_wrmsr(struct vcpu *v, uint32_t i=
dx, uint64_t val)
> >           vector =3D new.vector;
> >           vv->vector_to_sintx[vector] =3D sintx;
> >  =20
> > -        printk(XENLOG_G_INFO "%pv: VIRIDIAN SINT%u: vector: %x\n", v, =
sintx,
> > +        printk(XENLOG_G_INFO "%pv: VIRIDIAN SINT%u: vector: %#x\n", v,=
 sintx,
> >                  vector);
> >  =20
> >           *vs =3D new;
> > diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/vi=
ridian/viridian.c
> > index 0496c52ed5a2..21480d9ee700 100644
> > --- a/xen/arch/x86/hvm/viridian/viridian.c
> > +++ b/xen/arch/x86/hvm/viridian/viridian.c
> > @@ -253,7 +253,7 @@ static void dump_guest_os_id(const struct domain *d=
)
> >       goi =3D &d->arch.hvm.viridian->guest_os_id;
> >  =20
> >       printk(XENLOG_G_INFO
> > -           "d%d: VIRIDIAN GUEST_OS_ID: vendor: %x os: %x major: %x min=
or: %x sp: %x build: %x\n",
> > +           "d%d: VIRIDIAN GUEST_OS_ID: vendor: %#x os: %#x major: %#x =
minor: %#x sp: %#x build: %#x\n",
> >              d->domain_id, goi->vendor, goi->os, goi->major, goi->minor=
,
> >              goi->service_pack, goi->build_number);
> >   }
> > @@ -264,7 +264,7 @@ static void dump_hypercall(const struct domain *d)
> >  =20
> >       hg =3D &d->arch.hvm.viridian->hypercall_gpa;
> >  =20
> > -    printk(XENLOG_G_INFO "d%d: VIRIDIAN HYPERCALL: enabled: %x pfn: %l=
x\n",
> > +    printk(XENLOG_G_INFO "d%d: VIRIDIAN HYPERCALL: enabled: %u pfn: %#=
lx\n",
> >              d->domain_id,
> >              hg->enabled, (unsigned long)hg->pfn);
> >   }
> > @@ -372,7 +372,8 @@ int guest_wrmsr_viridian(struct vcpu *v, uint32_t i=
dx, uint64_t val)
> >           d->shutdown_code =3D SHUTDOWN_crash;
> >           spin_unlock(&d->shutdown_lock);
> >  =20
> > -        gprintk(XENLOG_WARNING, "VIRIDIAN CRASH: %lx %lx %lx %lx %lx\n=
",
> > +        gprintk(XENLOG_WARNING,
> > +                "VIRIDIAN GUEST_CRASH: %#lx %#lx %#lx %#lx %#lx\n",
>
> Honestly this change should be unnecessary, but since this is all=20
> cosmetic...
>
> Reviewed-by: Paul Durrant <paul@xen.org>
>

Thanks

> >                   vv->crash_param[0], vv->crash_param[1], vv->crash_par=
am[2],
> >                   vv->crash_param[3], vv->crash_param[4]);
> >           break;
> > @@ -1056,7 +1057,7 @@ void viridian_dump_guest_page(const struct vcpu *=
v, const char *name,
> >       if ( !vp->msr.enabled )
> >           return;
> >  =20
> > -    printk(XENLOG_G_INFO "%pv: VIRIDIAN %s: pfn: %lx\n",
> > +    printk(XENLOG_G_INFO "%pv: VIRIDIAN %s: pfn: %#lx\n",
> >              v, name, (unsigned long)vp->msr.pfn);
> >   }
> >  =20

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 16:38:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 16:38:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765706.1176368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXNxR-0006Gv-Vc; Fri, 26 Jul 2024 16:38:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765706.1176368; Fri, 26 Jul 2024 16:38:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXNxR-0006Go-R4; Fri, 26 Jul 2024 16:38:17 +0000
Received: by outflank-mailman (input) for mailman id 765706;
 Fri, 26 Jul 2024 16:38: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=P8ZK=O2=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sXNxQ-0006Gi-Rc
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 16:38:16 +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 742b7324-4b6d-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 18:38:14 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a7aac70e30dso214587066b.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 09:38:14 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acadb9a12sm192388766b.213.2024.07.26.09.38.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 26 Jul 2024 09:38: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: 742b7324-4b6d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722011894; x=1722616694; darn=lists.xenproject.org;
        h=in-reply-to:references:from:subject:cc:to:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Zi+M0YEVtCCHMFjKcPbyYYrYm9tsXvtltG/eXyPt5n4=;
        b=Ckd4TnBLjfoLwKedS9jJNFf/jfsZzEbea0lj/Tkqy/pGkuTZ3En3BMP/dl0gSGyxGL
         PtjKYoyzKJxmdWsVm5xmGCDSZDsaAKjQ+CTOa/K6JIDe8gF5HeoXXLTNNb1T+k7pfGid
         LDMqgywNRbOmCdwUXgeNxMy+TO8vt2jz5CIbs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722011894; x=1722616694;
        h=in-reply-to:references:from:subject:cc:to:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Zi+M0YEVtCCHMFjKcPbyYYrYm9tsXvtltG/eXyPt5n4=;
        b=qMoEL8ilckxtbdIw89qJtnnmWcZIGvm7GseSyzSUMj19yjqAIi4mWv/cN2nnEmgiuR
         fwTDCD3R3RmKWGkVFyb7OvUdjkZ9mlT0pGRYmfvV5QhCOFRIGOv3GpEbMTqtbogKVoSS
         ADeYNgjB7CDUk85RaLhvNW99+/l6VWSiop0Qgw905ooxMrCrI5u0ao8g/WJIqgNRYeD0
         0oItGmL3tGJJEUDlt/4GsF2RCzEHhG46tRhHnuxwOKIP7pfoe1A86eL7dLCq3jxIkMcU
         Y/ZxLnu6fWxuGyiBpzY3lQPOiqBlb1DwlJU5yIUK7APMq+ikteGIZTUF3IsPejGVSRXB
         5ZLw==
X-Forwarded-Encrypted: i=1; AJvYcCVyEGVq1qL1sUzVO6PJNBNtcWp86A3QQz8UN0ObHrsaQ6+FEyXE3pZHkhOIT2c1+I1bdr8lR8ZSFAhbHLhdIYIUhIlbVLC+bcLlzapGQE4=
X-Gm-Message-State: AOJu0YzkkiKZz9nx0VP9V91A141egsqEdZr3CQJSXCASOhZLRY+Pkgrt
	NqYcAvNYmX6NgQWz0HhdrYrhVImHsu2hiNuCqaLr/ihEpt2wctu27he8FI3LBis=
X-Google-Smtp-Source: AGHT+IGaUtFwDAYURq8uP70AoSPPUBSlCFdX484s3r5HOvNPlFhcPFAo7tibYJy2ok8yGeJ6A8kaGQ==
X-Received: by 2002:a17:907:97d0:b0:a6f:c9c6:7219 with SMTP id a640c23a62f3a-a7d400dbfefmr3537166b.47.1722011893798;
        Fri, 26 Jul 2024 09:38:13 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 26 Jul 2024 17:38:11 +0100
Message-Id: <D2ZM9PYSGG06.3ENIG6XVJLMFL@cloud.com>
To: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>,
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
X-Mailer: aerc 0.17.0
References: <20240725105634.16825-1-roger.pau@citrix.com>
 <9ecd3a39-55bf-4a49-9f45-1e0abfad353a@suse.com> <ZqJnPvL1ilDDzM9V@macbook>
 <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com> <ZqNQwM3U8S5q-kg5@macbook>
 <0f6b446a-0dda-4e59-807b-c0c0bcdf78bf@suse.com> <ZqNVs97wexqd5trA@macbook>
 <4e2117f9-2a68-4032-9d1a-09965f97085f@suse.com>
 <D2ZJA8MODIO2.9JHFXZO8LW7Z@cloud.com>
 <D2ZJFUKTDIAL.2OE4EHLK6GGIB@cloud.com> <ZqO-RFZHdCrIuRok@macbook>
 <D2ZM0D609TOQ.2GQQWR1QALUPA@cloud.com>
In-Reply-To: <D2ZM0D609TOQ.2GQQWR1QALUPA@cloud.com>

On Fri Jul 26, 2024 at 5:25 PM BST, Alejandro Vallejo wrote:
> On Fri Jul 26, 2024 at 4:18 PM BST, Roger Pau Monn=C3=A9 wrote:
> > On Fri, Jul 26, 2024 at 03:25:08PM +0100, Alejandro Vallejo wrote:
> > > On Fri Jul 26, 2024 at 3:17 PM BST, Alejandro Vallejo wrote:
> > > > On Fri Jul 26, 2024 at 9:05 AM BST, Jan Beulich wrote:
> > > > > On 26.07.2024 09:52, Roger Pau Monn=C3=A9 wrote:
> > > > > > On Fri, Jul 26, 2024 at 09:36:15AM +0200, Jan Beulich wrote:
> > > > > >> On 26.07.2024 09:31, Roger Pau Monn=C3=A9 wrote:
> > > > > >>> On Thu, Jul 25, 2024 at 05:00:22PM +0200, Jan Beulich wrote:
> > > > > >>>> On 25.07.2024 16:54, Roger Pau Monn=C3=A9 wrote:
> > > > > >>>>> On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote=
:
> > > > > >>>>>> On 25.07.2024 12:56, Roger Pau Monne wrote:
> > > > > >>>>>>> --- a/xen/arch/x86/include/asm/alternative.h
> > > > > >>>>>>> +++ b/xen/arch/x86/include/asm/alternative.h
> > > > > >>>>>>> @@ -184,11 +184,11 @@ extern void alternative_branches(vo=
id);
> > > > > >>>>>>>   * https://github.com/llvm/llvm-project/issues/82598
> > > > > >>>>>>>   */
> > > > > >>>>>>>  #define ALT_CALL_ARG(arg, n)                            =
                \
> > > > > >>>>>>> -    register union {                                    =
                \
> > > > > >>>>>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];      =
                \
> > > > > >>>>>>> -        unsigned long r;                                =
                \
> > > > > >>>>>>> +    register struct {                                   =
                \
> > > > > >>>>>>> +        typeof(arg) e;                                  =
                \
> > > > > >>>>>>> +        char pad[sizeof(void *) - sizeof(arg)];         =
                \
> > > > > >>>>>>
> > > > > >>>>>> One thing that occurred to me only after our discussion, a=
nd I then forgot
> > > > > >>>>>> to mention this before you would send a patch: What if siz=
eof(void *) =3D=3D
> > > > > >>>>>> sizeof(arg)? Zero-sized arrays are explicitly something we=
're trying to
> > > > > >>>>>> get rid of.
> > > > > >>>>>
> > > > > >>>>> I wondered about this, but I though it was only [] that we =
were trying
> > > > > >>>>> to get rid of, not [0].
> > > > > >>>>
> > > > > >>>> Sadly (here) it's actually the other way around, aiui.
> > > > > >>>
> > > > > >>> The only other option I have in mind is using an oversized ar=
ray on
> > > > > >>> the union, like:
> > > > > >>>
> > > > > >>> #define ALT_CALL_ARG(arg, n)                                 =
           \
> > > > > >>>     union {                                                  =
           \
> > > > > >>>         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / size=
of(arg)];  \
> > > > > >>>         unsigned long r;                                     =
           \
> > > > > >>>     } a ## n ## __  =3D {                                    =
             \
> > > > > >>>         .e[0] =3D ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *=
)); (arg); })\
> > > > > >>>     };                                                       =
           \
> > > > > >>>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## =
n ) =3D      \
> > > > > >>>         a ## n ## __.r
> > > > > >>
> > > > > >> Yet that's likely awful code-gen wise?
> > > > > >=20
> > > > > > Seems OK: https://godbolt.org/z/nsdo5Gs8W
> > > > >
> > > > > In which case why not go this route. If the compiler is doing fin=
e with
> > > > > that, maybe the array dimension expression could be further simpl=
ified,
> > > > > accepting yet more over-sizing? Like "sizeof(void *) / sizeof (ar=
g) + 1"
> > > > > or even simply "sizeof(void *)"? Suitably commented of course ...
> > > > >
> > > > > >> For the time being, can we perhaps
> > > > > >> just tighten the BUILD_BUG_ON(), as iirc Alejandro had suggest=
ed?
> > > > > >=20
> > > > > > My main concern with tightening the BUILD_BUG_ON() is that then=
 I
> > > > > > would also like to do so for the GCC one, so that build fails
> > > > > > uniformly.
> > > > >
> > > > > If we were to take that route, then yes, probably should constrai=
n both
> > > > > (with a suitable comment on the gcc one).
> > > > >
> > > > > Jan
> > > >
> > > > Yet another way would be to have an intermediate `long` to cast ont=
o. Compilers
> > > > will optimise away the copy. It ignores the different-type aliasing=
 rules in
> > > > the C spec, so there's an assumption that we have -fno-strict-alias=
ing. But I
> > > > belive we do? Otherwise it should pretty much work on anything.
> > > >
> > > > ```
> > > >   #define ALT_CALL_ARG(arg, n)                                     =
         \
> > > >       unsigned long __tmp =3D 0;                                   =
           \
> > > >       *(typeof(arg) *)&__tmp =3D                                   =
           \
> > > >           ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); }) =
         \
> > > >       register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =
=3D __tmp; \
> > > > ```
> > > >
> > > > fwiw, clang18 emits identical code compared with the previous godbo=
lt link.
> > > >
> > > > Link: https://godbolt.org/z/facd1M9xa
> > > >
> > > > Cheers,
> > > > Alejandro
> > >=20
> > > Bah. s/b/__tmp/ in line15. Same output though, so the point still sta=
nds.
> >
> > Had to adjust it to:
> >
> > #define ALT_CALL_ARG(arg, n)                                           =
   \
> >     unsigned long a ## n ## __ =3D 0;                                  =
     \
> >     *(typeof(arg) *)&a ## n ## __ =3D                                  =
     \
> >         ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); });      =
   \
> >     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D a =
## n ## __
> >
> > So that tmp__ is not defined multiple times for repeated
> > ALT_CALL_ARG() usages.
> >
> > Already tried something like this in the past, but it mixes code with
> > declarations, and that's forbidden in the current C standard that Xen
> > uses:
> >
> > ./arch/x86/include/asm/hvm/hvm.h:665:5: error: mixing declarations and =
code is incompatible with standards before C99 [-Werror,-Wdeclaration-after=
-statement]
> >
> > The `*(typeof(arg) *)&__tmp =3D ...` line is considered code, and is
> > followed by further declarations.  Even if we moved both declarations
> > ahead of the assigns it would still complain when multiple
> > ALT_CALL_ARG() instances are used in the same altcall block.
> >
> > Thanks, Roger.
>
> That _was_ forbidden in C89, but it has been allowed since. We have a war=
ning
> enabled to cause it to fail even if we always use C99-compatible compiler=
s. I
> think we should change that.
>
> Regardless, I think it can be worked around. This compiles (otherwise
> untested):
>
> #define ALT_CALL_ARG(arg, n)
>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D ({  =
 \
>         unsigned long tmp =3D 0;                                         =
 \
>         *(typeof(arg) *)&a ## n ## __ =3D (arg);                         =
 \
>         BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                     \
>         tmp;                                                            \
>     })
>
> That said, if the oversized temp union works, I'm fine with that too.
>
> Cheers,
> Alejandro

Sigh... I'm going at 1 mistake per email today. I meant:

#define ALT_CALL_ARG(arg, n)
     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D ({   =
\
         unsigned long tmp =3D 0;                                          =
\
         *(typeof(arg) *)&tmp =3D (arg);                                   =
\
         BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                     \
         tmp;                                                            \
     })

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 16:40:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 16:40:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765714.1176378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXNzj-00089o-Et; Fri, 26 Jul 2024 16:40:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765714.1176378; Fri, 26 Jul 2024 16: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 1sXNzj-00089h-Ap; Fri, 26 Jul 2024 16:40:39 +0000
Received: by outflank-mailman (input) for mailman id 765714;
 Fri, 26 Jul 2024 16:40: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=Kt2q=O2=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sXNzi-00089Z-1Z
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 16:40:38 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c922b669-4b6d-11ef-bc00-fd08da9f4363;
 Fri, 26 Jul 2024 18:40:37 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5a2ffc3447fso2730279a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 26 Jul 2024 09:40:37 -0700 (PDT)
Received: from EMEAENGAAD91498.citrite.net ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acac615c0sm195437766b.97.2024.07.26.09.40.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 26 Jul 2024 09:40: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: c922b669-4b6d-11ef-bc00-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722012036; x=1722616836; 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=LO45yhSQCcSMoa4fk6/H17U+Lx8XN6Ubl0ffAptUvJI=;
        b=S34yoHx3yP+9NPibhK1MIwai2FKXjHxusIyRKorBuS6TDLdiCnfvVg10g/0ZCPEr78
         p86vmuY30LnOfTrpyghKTeSk8C5V6tjI2lfG2Y9r8Bkr4VKqTOQIJ4jmsbnIYr0rDu87
         sJZryL+uy5VqV5YfTDS8ijXy8F54qy0hBnPMU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722012036; x=1722616836;
        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=LO45yhSQCcSMoa4fk6/H17U+Lx8XN6Ubl0ffAptUvJI=;
        b=GXpY81N1cEbSmnuHOpt9f0YTulcUC3TQSdUYKQhvsKDft5hX9yy3zNTM11YHxkiwP/
         bYN7PnGGvp/JO4y3elmP62lO0ux2kpsMBZabdkmIzSuUO5RMqlkS6MzYEJbIh3mCJAUp
         UD/Ka1MBXkfqp9lR0df88FA7AwPkTmI810EuIG1mwk0l9Frbp39x8oXWgXKZZAM/MwmO
         fnctq6X37BccWaRJRZYJ0Wfk7PfdEligXFEUqteJl91MwwvLyQA4mZm7BkkgEJWBuS8M
         mCp2wML0HRHVY9hUVJPuw0f5pA5tv4E67XXBhANZpktGNdBAyGGKL+3uFn+cGenHKYD9
         dlsQ==
X-Gm-Message-State: AOJu0Yw7MOYWavxpB73CpeGaMTcomkrb6qs2bTI0qcIWB3n35a1g8L/h
	9Xk6IfzoYay5uMh9YM7eZHXnLhlm+99/jvaTdmpv7JUo+GYs8b1J3B1mF7G8/Xk/pG3hpf9ex00
	U
X-Google-Smtp-Source: AGHT+IHjqHCEBSuT/dvqjRlG2EYBj4qLNYlOMmVv+H/rd2GXyRnk+AIHpWJ8Tzq9gH0n/jJ8YMd2SQ==
X-Received: by 2002:a17:907:874c:b0:a7a:9f78:fef with SMTP id a640c23a62f3a-a7d400dc3fdmr2228666b.45.1722012036083;
        Fri, 26 Jul 2024 09:40:36 -0700 (PDT)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v4] tools/lsevtchn: Use errno macro to handle hypercall error cases
Date: Fri, 26 Jul 2024 17:40:32 +0100
Message-Id: <cce46da98274f84a3cea16d0e1e34b56d4d09410.1722011581.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Bcc: Matthew Barnes <matthew.barnes@cloud.com>
Content-Transfer-Encoding: 8bit

Currently, lsevtchn aborts its event channel enumeration when it hits
an event channel that is owned by Xen.

lsevtchn does not distinguish between different hypercall errors, which
results in lsevtchn missing potential relevant event channels with
higher port numbers.

Use the errno macro to distinguish between hypercall errors, and
continue event channel enumeration if the hypercall error is not
critical to enumeration.

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
Changes in v4:
- Catch non-critical errors and fail on everything else, instead of
  catching few known critical errors and ignoring everything else
- Use 'perror' to describe miscellaneous critical errors
- Return appropriate error code from lsevtchn tool
- Tweak commit description
---
 tools/xcutils/lsevtchn.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/tools/xcutils/lsevtchn.c b/tools/xcutils/lsevtchn.c
index d1710613ddc5..16f5e3def023 100644
--- a/tools/xcutils/lsevtchn.c
+++ b/tools/xcutils/lsevtchn.c
@@ -3,6 +3,7 @@
 #include <stdint.h>
 #include <string.h>
 #include <stdio.h>
+#include <errno.h>
 
 #include <xenctrl.h>
 
@@ -24,7 +25,23 @@ int main(int argc, char **argv)
         status.port = port;
         rc = xc_evtchn_status(xch, &status);
         if ( rc < 0 )
-            break;
+        {
+            switch ( errno ) {
+                case EACCES: continue; /* Xen-owned evtchn */
+                case EINVAL: /* Port enumeration has ended */
+                    rc = 0;
+                    goto out;
+
+                case ESRCH:
+                    perror("Domain ID does not correspond to valid domain");
+                    rc = ESRCH;
+                    goto out;
+                default:
+                    perror(NULL);
+                    rc = errno;
+                    goto out;
+            }
+        }
 
         if ( status.status == EVTCHNSTAT_closed )
             continue;
@@ -58,7 +75,8 @@ int main(int argc, char **argv)
         printf("\n");
     }
 
+out:
     xc_interface_close(xch);
 
-    return 0;
+    return rc;
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Jul 26 18:46:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 18:46:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765733.1176388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXPxf-0002Al-H2; Fri, 26 Jul 2024 18:46:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765733.1176388; Fri, 26 Jul 2024 18:46: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 1sXPxf-0002Ad-Bi; Fri, 26 Jul 2024 18:46:39 +0000
Received: by outflank-mailman (input) for mailman id 765733;
 Fri, 26 Jul 2024 18:46:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXPxd-0002AT-To; Fri, 26 Jul 2024 18:46:37 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXPxd-0005YH-Mv; Fri, 26 Jul 2024 18:46:37 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXPxd-0006xS-B8; Fri, 26 Jul 2024 18:46:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXPxd-0002Wj-Ad; Fri, 26 Jul 2024 18:46:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=aErHE87qok6rbFGW8eJ1ax6gXrcMwdugv/GdnQA7BXo=; b=p63bWehgpl/d1virnAoRX6sCCY
	AyCjcGBXenPk85BoJX4ghfd4TiEZ7ScEaR24CKVbtEoZjJno9tAKA1cqI2crat2Frv4jTaGynpr/8
	t1WuTqRmVvbbqeX4Tvp2vvOS1P04ubS8Y7EAMO9FR0FcevSO8x+/T5BlWMBTvlhTo2Dc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187011-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187011: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=1722389b0d863056d78287a120a1d6cadb8d4f7b
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Jul 2024 18:46:37 +0000

flight 187011 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187011/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel  8 xen-boot            fail REGR. vs. 186827
 test-amd64-amd64-dom0pvh-xl-amd  8 xen-boot              fail REGR. vs. 186827
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                1722389b0d863056d78287a120a1d6cadb8d4f7b
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z    9 days
Failing since        186925  2024-07-20 09:44:52 Z    6 days   13 attempts
Testing same since   187011  2024-07-26 02:02:53 Z    0 days    1 attempts

------------------------------------------------------------
1906 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 213231 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 20:07:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 20:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765746.1176397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXRDj-0003pm-4S; Fri, 26 Jul 2024 20:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765746.1176397; Fri, 26 Jul 2024 20: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 1sXRDj-0003pf-07; Fri, 26 Jul 2024 20:07:19 +0000
Received: by outflank-mailman (input) for mailman id 765746;
 Fri, 26 Jul 2024 20:07:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXRDh-0003nv-94; Fri, 26 Jul 2024 20:07:17 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXRDh-0004c5-4R; Fri, 26 Jul 2024 20:07:17 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXRDg-0001C4-Mq; Fri, 26 Jul 2024 20:07:16 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXRDg-0004hM-MP; Fri, 26 Jul 2024 20:07:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=RIp4Ubwlfdy9lX5SAu5012TcR08pNSFbkYsl8YajSqY=; b=lj5LZe8lNx4Joj1Yk6SBmpvIim
	yBw2NSgBY9EQEl3Ja18lhliTziZQGIwC0hbv+jIUb/OA5QpUYq9OxLLJqrixDSguOAOg9m5++bbCF
	O7+MU3kinYwAiUW/KAM2eWdygxxvdzIUQ/GCiuUhuEX9lR/wHzRdFsz/sea38teG1wf8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187018-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187018: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=03ad59e631aaab0143c5b1c1d64f27f5da1eb8c4
X-Osstest-Versions-That:
    ovmf=6589843cc619b3a5e2d2c0e5b12451b11a3f2288
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Jul 2024 20:07:16 +0000

flight 187018 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187018/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 03ad59e631aaab0143c5b1c1d64f27f5da1eb8c4
baseline version:
 ovmf                 6589843cc619b3a5e2d2c0e5b12451b11a3f2288

Last test of basis   187015  2024-07-26 09:43:32 Z    0 days
Testing same since   187018  2024-07-26 17:45:25 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  George Liao <george.liao@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   6589843cc6..03ad59e631  03ad59e631aaab0143c5b1c1d64f27f5da1eb8c4 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 20:16:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 20:16:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765756.1176407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXRMJ-0005ir-TE; Fri, 26 Jul 2024 20:16:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765756.1176407; Fri, 26 Jul 2024 20:16: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 1sXRMJ-0005iL-Qa; Fri, 26 Jul 2024 20:16:11 +0000
Received: by outflank-mailman (input) for mailman id 765756;
 Fri, 26 Jul 2024 20:16: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=HdqS=O2=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sXRMI-0005he-RH
 for xen-devel@lists.xenproject.org; Fri, 26 Jul 2024 20:16: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 e3d67f97-4b8b-11ef-8776-851b0ebba9a2;
 Fri, 26 Jul 2024 22:16:08 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 2491461671;
 Fri, 26 Jul 2024 20:16:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27452C4AF09;
 Fri, 26 Jul 2024 20:16: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: e3d67f97-4b8b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722024965;
	bh=F8ifxgQXWaNGze3x4qI8bHRWYDbVSo9IftHDTKXH1QU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=VK1AujExIMVH+0tSY7eVWXQUOWXWYVyQAGa+tRZ13JdfUWzEixgfu+z8s9MshJ+Ql
	 MzueY+1/QJUUeRVRsTYf+IGnX+OYyw5X14SVLRvqTsl6LPq5UP/ScaDrLREXp5BeZW
	 CXW02XaJcDoy8m54kgWbj/sOE9/69JlDS0LpLvhYyuYXdbIp3PD5lCet117RHXwxTk
	 wq5hGTeR2OCP77udKqVBiddvWytrZsAdjBEom1I5JimH+cdVvSknwxWsZAoxWeYRM9
	 13sSU3GDhnrfFsxbxcgG2KOXnuQe3eaz55y4nNf+F6f6fVyOgDV+N50F76laNxR7TY
	 b89onZOBQLT+w==
Date: Fri, 26 Jul 2024 13:16:02 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.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>, 
    Wei Liu <wl@xen.org>, George Dunlap <gwd@xenproject.org>, 
    Julien Grall <julien@xen.org>, Anthony PERARD <anthony@xenproject.org>, 
    Juergen Gross <jgross@suse.com>, 
    "Daniel P . Smith" <dpsmith@apertussolutions.com>, 
    "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, 
    "Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [XEN PATCH v12 4/7] x86/domctl: Add hypercall to set the access
 of x86 gsi
In-Reply-To: <BL1PR12MB5849C8A40630534241B31941E7B42@BL1PR12MB5849.namprd12.prod.outlook.com>
Message-ID: <alpine.DEB.2.22.394.2407261313160.4857@ubuntu-linux-20-04-desktop>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com> <20240708114124.407797-5-Jiqian.Chen@amd.com> <alpine.DEB.2.22.394.2407221505440.4857@ubuntu-linux-20-04-desktop> <BL1PR12MB5849C8A40630534241B31941E7B42@BL1PR12MB5849.namprd12.prod.outlook.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 26 Jul 2024, Chen, Jiqian wrote:
> On 2024/7/23 06:10, Stefano Stabellini wrote:
> > On Mon, 8 Jul 2024, Jiqian Chen wrote:
> >> Some type of domains don't have PIRQs, like PVH, it doesn't do
> >> PHYSDEVOP_map_pirq for each gsi. When passthrough a device
> >> to guest base on PVH dom0, callstack
> >> pci_add_dm_done->XEN_DOMCTL_irq_permission will fail at function
> >> domain_pirq_to_irq, because PVH has no mapping of gsi, pirq and
> >> irq on Xen side.
> >> What's more, current hypercall XEN_DOMCTL_irq_permission requires
> >> passing in pirq to set the access of irq, it is not suitable for
> >> dom0 that doesn't have PIRQs.
> >>
> >> So, add a new hypercall XEN_DOMCTL_gsi_permission to grant/deny
> >> the permission of irq(translate from x86 gsi) to dumU when dom0
> >> has no PIRQs.
> >>
> >> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> >> Signed-off-by: Huang Rui <ray.huang@amd.com>
> >> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> >> ---
> >> CC: Daniel P . Smith <dpsmith@apertussolutions.com>
> >> Remaining comment @Daniel P . Smith:
> >> +        ret = -EPERM;
> >> +        if ( !irq_access_permitted(currd, irq) ||
> >> +             xsm_irq_permission(XSM_HOOK, d, irq, access_flag) )
> >> +            goto gsi_permission_out;
> >> Is it okay to issue the XSM check using the translated value, 
> >> not the one that was originally passed into the hypercall?
> >> ---
> >>  xen/arch/x86/domctl.c              | 32 ++++++++++++++++++++++++++++++
> >>  xen/arch/x86/include/asm/io_apic.h |  2 ++
> >>  xen/arch/x86/io_apic.c             | 17 ++++++++++++++++
> >>  xen/arch/x86/mpparse.c             |  5 ++---
> >>  xen/include/public/domctl.h        |  9 +++++++++
> >>  xen/xsm/flask/hooks.c              |  1 +
> >>  6 files changed, 63 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
> >> index 9190e11faaa3..4e9e4c4cfed3 100644
> >> --- a/xen/arch/x86/domctl.c
> >> +++ b/xen/arch/x86/domctl.c
> >> @@ -36,6 +36,7 @@
> >>  #include <asm/xstate.h>
> >>  #include <asm/psr.h>
> >>  #include <asm/cpu-policy.h>
> >> +#include <asm/io_apic.h>
> >>  
> >>  static int update_domain_cpu_policy(struct domain *d,
> >>                                      xen_domctl_cpu_policy_t *xdpc)
> >> @@ -237,6 +238,37 @@ long arch_do_domctl(
> >>          break;
> >>      }
> >>  
> >> +    case XEN_DOMCTL_gsi_permission:
> >> +    {
> >> +        int irq;
> >> +        unsigned int gsi = domctl->u.gsi_permission.gsi;
> >> +        uint8_t access_flag = domctl->u.gsi_permission.access_flag;
> >> +
> >> +        /* Check all bits and pads are zero except lowest bit */
> >> +        ret = -EINVAL;
> >> +        if ( access_flag & ( ~XEN_DOMCTL_GSI_PERMISSION_MASK ) )
> >> +            goto gsi_permission_out;
> >> +        for ( i = 0; i < ARRAY_SIZE(domctl->u.gsi_permission.pad); ++i )
> >> +            if ( domctl->u.gsi_permission.pad[i] )
> >> +                goto gsi_permission_out;
> >> +
> >> +        if ( gsi > highest_gsi() || (irq = gsi_2_irq(gsi)) <= 0 )
> > 
> > gsi is unsigned int but it is passed to gsi_2_irq which takes an int as
> > parameter. If gsi >= INT32_MAX we have a problem. I think we should
> > explicitly check for the possible overflow and return error in that
> > case.
> But here has checked "gsi > highest_gsi()", can highesi_gsi() return a gsi >= INT32_MAX?

In practice it is impossible but in theory it could. But then I looked
at the implementation of highest_gsi() and gsi_end actually a signed
int. So I think this is OK:

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


From xen-devel-bounces@lists.xenproject.org Fri Jul 26 20:40:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 26 Jul 2024 20:40:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765766.1176416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXRjM-00016h-Pf; Fri, 26 Jul 2024 20:40:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765766.1176416; Fri, 26 Jul 2024 20:40:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXRjM-00016a-N7; Fri, 26 Jul 2024 20:40:00 +0000
Received: by outflank-mailman (input) for mailman id 765766;
 Fri, 26 Jul 2024 20:39:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXRjL-00016M-Cx; Fri, 26 Jul 2024 20:39:59 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXRjK-0005DV-Ro; Fri, 26 Jul 2024 20:39:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXRjK-0003Ip-Ei; Fri, 26 Jul 2024 20:39:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXRjK-0007Uq-EG; Fri, 26 Jul 2024 20:39: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=FMiEFxpC8tzUMilkU0HvkUv5JNvrKFZE2oj2wCAESw4=; b=Azo0s9huZUFUQGt5IQ9GhnkxYv
	7EVU5xmIsr/eLViFPSCcIPkmraPR89Aw0NvMFTVVIeXk4RquCSLSovsbFV2LdIkR6rDTaNQsmA/yb
	HvkI8MEqAUKF2QQ2jsjshizOPJxr319kxr0eSOcOG0f5u8aX908W42bj5lGRPZJxKjRU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187013-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 187013: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=bd11c753f3f947d91ae0c8d2ba965e5661e25080
X-Osstest-Versions-That:
    libvirt=e62c26a20dced58ea342d9cb8f5e9164dc3bb023
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 26 Jul 2024 20:39:58 +0000

flight 187013 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187013/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186998
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              bd11c753f3f947d91ae0c8d2ba965e5661e25080
baseline version:
 libvirt              e62c26a20dced58ea342d9cb8f5e9164dc3bb023

Last test of basis   186998  2024-07-25 04:22:25 Z    1 days
Testing same since   187013  2024-07-26 04:20:39 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ján Tomko <jtomko@redhat.com>
  Michal Privoznik <mprivozn@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   e62c26a20d..bd11c753f3  bd11c753f3f947d91ae0c8d2ba965e5661e25080 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Jul 27 00:19:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 00:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765785.1176427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXV9i-00009O-Ke; Sat, 27 Jul 2024 00:19:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765785.1176427; Sat, 27 Jul 2024 00:19: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 1sXV9i-00009G-Gz; Sat, 27 Jul 2024 00:19:26 +0000
Received: by outflank-mailman (input) for mailman id 765785;
 Sat, 27 Jul 2024 00:19: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=Ti8Z=O3=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sXV9g-000096-LE
 for xen-devel@lists.xenproject.org; Sat, 27 Jul 2024 00:19:24 +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 deba9698-4bad-11ef-8776-851b0ebba9a2;
 Sat, 27 Jul 2024 02:19:22 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 9B5606199D;
 Sat, 27 Jul 2024 00:19:20 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 88C71C4AF0A;
 Sat, 27 Jul 2024 00:19: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: deba9698-4bad-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722039560;
	bh=vz2izZP2K4EhzYPagaCKR85TIn2qAdiJ27WrJJYbp5o=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=KSZeSx4eOhtEckztNo4wrt7uXpwy31yqST3luFagtHldU8gzVP1oXycbZ1rNu+kKW
	 wlqMHdXe9PHoRjoIJADHl68O/kZqVrH6AAXaC30He+P9oRK40vHLbKiFEwQ9NKX/Ex
	 t7W7t5M39XrpYy0B9LRQKhrkKUNmKAnCkhSFLD7eIXZTq1cgucsyAgL87UvUp7bz5q
	 J6ht3M+xTFrrX7Kt5N8UTC8ZPCVi9mv52XaI9LsCoE3iDDGygnKxLFCt3QsNf+G3F3
	 3OfT+LQLQfr0AZS8xx/uadv5Wo8edLhKMfxSzw5x23cygHLXHxGvUNsxCgGWIeq/tK
	 fQPSB8EL7SyaQ==
Date: Fri, 26 Jul 2024 17:19:17 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: xen-devel@lists.xenproject.org, marmarek@invisiblethingslab.com, 
    andrew.cooper3@citrix.com, cardoe@cardoe.com
Subject: Re: [PATCH] automation: upgrade Yocto to scarthgap
In-Reply-To: <alpine.DEB.2.22.394.2407251715040.4857@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2407261639080.4857@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2407251715040.4857@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 Thu, 25 Jul 2024, Stefano Stabellini wrote:
> Upgrade Yocto to a newer version. Use ext4 as image format for testing
> with QEMU on ARM and ARM64 as the default is WIC and it is not available
> for our xen-image-minimal target.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

This patch has a couple of issues, I'll send an update

> ---
> I am running one last test (that takes hours) I'll make sure it passes
> before I commit anything.
> ---
>  automation/build/yocto/build-yocto.sh | 9 +++++++--
>  automation/build/yocto/yocto.inc      | 4 ++--
>  automation/gitlab-ci/build.yaml       | 2 +-
>  3 files changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/automation/build/yocto/build-yocto.sh b/automation/build/yocto/build-yocto.sh
> index 93ce81ce82..e7a03c4b10 100755
> --- a/automation/build/yocto/build-yocto.sh
> +++ b/automation/build/yocto/build-yocto.sh
> @@ -25,6 +25,7 @@ TARGET_SUPPORTED="qemuarm qemuarm64 qemux86-64"
>  VERBOSE="n"
>  TARGETLIST=""
>  BUILDJOBS="8"
> +EXT4="ext4"
>  
>  # actions to do
>  do_clean="n"
> @@ -38,8 +39,9 @@ build_result=0
>  # layers to include in the project
>  build_layerlist="poky/meta poky/meta-poky poky/meta-yocto-bsp \
>                   meta-openembedded/meta-oe meta-openembedded/meta-python \
> +                 meta-openembedded/meta-networking \
>                   meta-openembedded/meta-filesystems \
> -                 meta-openembedded/meta-networking meta-virtualization"
> +                 meta-virtualization"
>  
>  # yocto image to build
>  build_image="xen-image-minimal"
> @@ -83,6 +85,9 @@ function run_task() {
>  function project_create() {
>      target="${1:?}"
>      destdir="${BUILDDIR}/${target}"
> +    if [ $target = "qemux86-64" ]; then
> +        EXT4=""
> +    fi
>  
>      (
>          # init yocto project
> @@ -196,7 +201,7 @@ function project_run() {
>  
>          /usr/bin/expect <<EOF
>  set timeout 1000
> -spawn bash -c "runqemu serialstdio nographic slirp"
> +spawn bash -c "runqemu serialstdio nographic slirp ${EXT4}"
>  
>  expect_after {
>      -re "(.*)\r" {
> diff --git a/automation/build/yocto/yocto.inc b/automation/build/yocto/yocto.inc
> index 2f3b1a5b2a..209df7dde9 100644
> --- a/automation/build/yocto/yocto.inc
> +++ b/automation/build/yocto/yocto.inc
> @@ -6,10 +6,10 @@
>  # YOCTOVERSION-TARGET for x86_64 hosts
>  # YOCTOVERSION-TARGET-arm64v8 for arm64 hosts
>  # For example you can build an arm64 container with the following command:
> -# make yocto/kirkstone-qemuarm64-arm64v8
> +# make yocto/scarthgap-qemuarm64-arm64v8
>  
>  # Yocto versions we are currently using.
> -YOCTO_VERSION = kirkstone
> +YOCTO_VERSION = scarthgap
>  
>  # Yocto BSPs we want to build for.
>  YOCTO_TARGETS = qemuarm64 qemuarm qemux86-64
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index 7ce88d38e7..32045cef0c 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -212,7 +212,7 @@
>    script:
>      - ./automation/build/yocto/build-yocto.sh -v --log-dir=./logs --xen-dir=`pwd` ${YOCTO_BOARD} ${YOCTO_OUTPUT}
>    variables:
> -    YOCTO_VERSION: kirkstone
> +    YOCTO_VERSION: scarthgap
>      CONTAINER: yocto:${YOCTO_VERSION}-${YOCTO_BOARD}${YOCTO_HOST}
>    artifacts:
>      paths:
> -- 
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Jul 27 00:19:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 00:19:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765789.1176436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXVA9-0000aZ-Rl; Sat, 27 Jul 2024 00:19:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765789.1176436; Sat, 27 Jul 2024 00:19: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 1sXVA9-0000aS-P7; Sat, 27 Jul 2024 00:19:53 +0000
Received: by outflank-mailman (input) for mailman id 765789;
 Sat, 27 Jul 2024 00:19: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=Ti8Z=O3=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sXVA8-0000Sf-P3
 for xen-devel@lists.xenproject.org; Sat, 27 Jul 2024 00:19:52 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f03dffaa-4bad-11ef-bc00-fd08da9f4363;
 Sat, 27 Jul 2024 02:19:51 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 9379FCE0ED1;
 Sat, 27 Jul 2024 00:19:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B0E3C32782;
 Sat, 27 Jul 2024 00:19: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: f03dffaa-4bad-11ef-bc00-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722039584;
	bh=caF8ZEnVQAiNG73dG8gwlbc6P0P+Qerrz+YIN+0RoYY=;
	h=Date:From:To:cc:Subject:From;
	b=SZ27PMHYdp2E7lT6S0L+6NG+gmYrcpAEga6X1bWDXZk3Tel2b+3VRAR+nm4wQyKxo
	 YlGBCyzfrS6POgwYWaX9CEYEGBWtvNJvUcevhy9Dn6SMHWwzJPYIQYG04/IIS7vnnM
	 qg0oh/UHBMorJwGEGLflhmQAxGBrpy6clmv6KQfS9uta+mhAvHSTBdLMyjz1coixql
	 zPtASQ9F7xVUulvs55dMJk2IbBEVpO5hPpgbM2+MMZlPddaO2J478X91dFsL2WCjFC
	 DrbX3/f2grgTGXM4lqYkgV3a7uPSQGxfqSo1EWXFilQSKbv78qhkbp73ehKxk7gNb2
	 p9xOriynMsM9g==
Date: Fri, 26 Jul 2024 17:19: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, marmarek@invisiblethingslab.com, 
    andrew.cooper3@citrix.com, cardoe@cardoe.com
Subject: [PATCH v2] automation: upgrade Yocto to scarthgap
Message-ID: <alpine.DEB.2.22.394.2407261639190.4857@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

Upgrade Yocto to a newer version. Use ext4 as image format for testing
with QEMU on ARM and ARM64 as the default is WIC and it is not available
for our xen-image-minimal target.

Also update the tar.bz2 filename for the rootfs.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---

all yocto tests pass:
https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1390081173

Changes in v2:
- s/EXT4/IMAGE_FMT/
- set IMAGE_FMT before the call to project_build
- also update the filename xen-image-minimal-qemuarm.rootfs.tar.bz2
---
 automation/build/yocto/build-yocto.sh       | 15 ++++++++++++---
 automation/build/yocto/yocto.inc            |  4 ++--
 automation/gitlab-ci/build.yaml             |  2 +-
 automation/scripts/qemu-smoke-dom0-arm32.sh |  2 +-
 4 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/automation/build/yocto/build-yocto.sh b/automation/build/yocto/build-yocto.sh
index 93ce81ce82..e1e69f2bb5 100755
--- a/automation/build/yocto/build-yocto.sh
+++ b/automation/build/yocto/build-yocto.sh
@@ -25,6 +25,7 @@ TARGET_SUPPORTED="qemuarm qemuarm64 qemux86-64"
 VERBOSE="n"
 TARGETLIST=""
 BUILDJOBS="8"
+IMAGE_FMT=""
 
 # actions to do
 do_clean="n"
@@ -38,8 +39,9 @@ build_result=0
 # layers to include in the project
 build_layerlist="poky/meta poky/meta-poky poky/meta-yocto-bsp \
                  meta-openembedded/meta-oe meta-openembedded/meta-python \
+                 meta-openembedded/meta-networking \
                  meta-openembedded/meta-filesystems \
-                 meta-openembedded/meta-networking meta-virtualization"
+                 meta-virtualization"
 
 # yocto image to build
 build_image="xen-image-minimal"
@@ -175,7 +177,7 @@ function project_build() {
                 mkdir -p $OUTPUTDIR
                 cp $BUILDDIR/tmp/deploy/images/qemuarm/zImage $OUTPUTDIR
                 cp $BUILDDIR/tmp/deploy/images/qemuarm/xen-qemuarm $OUTPUTDIR
-                cp $BUILDDIR/tmp/deploy/images/qemuarm/xen-image-minimal-qemuarm.tar.bz2 $OUTPUTDIR
+                cp $BUILDDIR/tmp/deploy/images/qemuarm/xen-image-minimal-qemuarm.rootfs.tar.bz2 $OUTPUTDIR
             fi
         fi
     ) || return 1
@@ -196,7 +198,7 @@ function project_run() {
 
         /usr/bin/expect <<EOF
 set timeout 1000
-spawn bash -c "runqemu serialstdio nographic slirp"
+spawn bash -c "runqemu serialstdio nographic slirp ${IMAGE_FMT}"
 
 expect_after {
     -re "(.*)\r" {
@@ -356,6 +358,13 @@ for f in ${TARGETLIST}; do
         run_task project_create "${f}"
     fi
     if [ -f "${BUILDDIR}/${f}/conf/local.conf" ]; then
+        # Set the right image target
+        if [ "$f" = "qemux86-64" ]; then
+            IMAGE_FMT=""
+        else
+            IMAGE_FMT="ext4"
+        fi
+
         if [ "${do_build}" = "y" ]; then
             run_task project_build "${f}"
         fi
diff --git a/automation/build/yocto/yocto.inc b/automation/build/yocto/yocto.inc
index 2f3b1a5b2a..209df7dde9 100644
--- a/automation/build/yocto/yocto.inc
+++ b/automation/build/yocto/yocto.inc
@@ -6,10 +6,10 @@
 # YOCTOVERSION-TARGET for x86_64 hosts
 # YOCTOVERSION-TARGET-arm64v8 for arm64 hosts
 # For example you can build an arm64 container with the following command:
-# make yocto/kirkstone-qemuarm64-arm64v8
+# make yocto/scarthgap-qemuarm64-arm64v8
 
 # Yocto versions we are currently using.
-YOCTO_VERSION = kirkstone
+YOCTO_VERSION = scarthgap
 
 # Yocto BSPs we want to build for.
 YOCTO_TARGETS = qemuarm64 qemuarm qemux86-64
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 7ce88d38e7..32045cef0c 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -212,7 +212,7 @@
   script:
     - ./automation/build/yocto/build-yocto.sh -v --log-dir=./logs --xen-dir=`pwd` ${YOCTO_BOARD} ${YOCTO_OUTPUT}
   variables:
-    YOCTO_VERSION: kirkstone
+    YOCTO_VERSION: scarthgap
     CONTAINER: yocto:${YOCTO_VERSION}-${YOCTO_BOARD}${YOCTO_HOST}
   artifacts:
     paths:
diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scripts/qemu-smoke-dom0-arm32.sh
index 31c05cc840..eaaea5a982 100755
--- a/automation/scripts/qemu-smoke-dom0-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
@@ -8,7 +8,7 @@ cd binaries
 
 mkdir rootfs
 cd rootfs
-tar xvf ../xen-image-minimal-qemuarm.tar.bz2
+tar xvf ../xen-image-minimal-qemuarm.rootfs.tar.bz2
 mkdir -p ./root
 echo "name=\"test\"
 memory=400
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Sat Jul 27 01:33:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 01:33:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765801.1176447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXWIj-0006Y9-3V; Sat, 27 Jul 2024 01:32:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765801.1176447; Sat, 27 Jul 2024 01:32: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 1sXWIi-0006Xr-TE; Sat, 27 Jul 2024 01:32:48 +0000
Received: by outflank-mailman (input) for mailman id 765801;
 Sat, 27 Jul 2024 01:32:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXWIh-0006Xh-3A; Sat, 27 Jul 2024 01:32:47 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXWIg-0005X6-QT; Sat, 27 Jul 2024 01:32:46 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXWIg-000373-7V; Sat, 27 Jul 2024 01:32:46 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXWIg-0007RA-71; Sat, 27 Jul 2024 01:32: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=yZmGyb8NRDQD+LZCy5UoazQJZ29CETO98oiJrDpBOTo=; b=entdcKoG9cpWnQosdhx5c1YFnU
	maHFHRdipCx3bebxewZn0tgt4YY8FG3SNHK4n6ltdaAENznOK8EZv62ipZX7nYsRKAK2j4RYIh1aP
	3Hp35+0UzqMk2e5lZzDRDgnUDRqv+Y2/Ebb9bWgLqIEzMLgW4CF7/UCxXdbinD7HfTAk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187019-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187019: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-credit1:guest-start/debian.repeat:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=2f8c4f5062855a83c1f2dbc012c4fa274ce999d4
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Jul 2024 01:32:46 +0000

flight 187019 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187019/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel  8 xen-boot            fail REGR. vs. 186827
 test-amd64-amd64-dom0pvh-xl-amd  8 xen-boot              fail REGR. vs. 186827
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-amd64-amd64-xl-credit1 22 guest-start/debian.repeat fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                2f8c4f5062855a83c1f2dbc012c4fa274ce999d4
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   10 days
Failing since        186925  2024-07-20 09:44:52 Z    6 days   14 attempts
Testing same since   187019  2024-07-26 19:10:58 Z    0 days    1 attempts

------------------------------------------------------------
1928 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  fail    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 216313 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Jul 27 01:57:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 01:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765812.1176457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXWgF-0001Cm-1M; Sat, 27 Jul 2024 01:57:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765812.1176457; Sat, 27 Jul 2024 01: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 1sXWgE-0001Ce-TJ; Sat, 27 Jul 2024 01:57:06 +0000
Received: by outflank-mailman (input) for mailman id 765812;
 Sat, 27 Jul 2024 01:57: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=9te9=O3=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1sXWgD-0001CY-GP
 for xen-devel@lists.xenproject.org; Sat, 27 Jul 2024 01:57:05 +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 83887ab8-4bbb-11ef-8776-851b0ebba9a2;
 Sat, 27 Jul 2024 03:57:02 +0200 (CEST)
Received: from MW4PR03CA0278.namprd03.prod.outlook.com (2603:10b6:303:b5::13)
 by CH2PR12MB4167.namprd12.prod.outlook.com (2603:10b6:610:7a::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.29; Sat, 27 Jul
 2024 01:56:58 +0000
Received: from CO1PEPF000042AD.namprd03.prod.outlook.com
 (2603:10b6:303:b5:cafe::e6) by MW4PR03CA0278.outlook.office365.com
 (2603:10b6:303:b5::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.29 via Frontend
 Transport; Sat, 27 Jul 2024 01:56:58 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000042AD.mail.protection.outlook.com (10.167.243.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7784.11 via Frontend Transport; Sat, 27 Jul 2024 01:56:57 +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, 26 Jul
 2024 20:56:55 -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, 26 Jul
 2024 20:56:55 -0500
Received: from xsjwoods50.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, 26 Jul 2024 20:56: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: 83887ab8-4bbb-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G/VXJUZzrlkN1prrYNXr7khurNUJi8TI7lTkx4CtAwcT4XyjsKEpq5oWZvtNElyrhVpSM/TO8Yq3uzcsCNfmpO9szWGsZTlAPAFGR6qqJtTo6H7IgYjbuxVvsJMeNjEXUqLcR7Q7u3+1SiFgHBdjBt6DzXohqmj22qpIygjBQye5D6q3o3Rwx7gzVACwLe4Cj0/NOsQMJYEe94/mYMMKgPaOs4Mhxmq+EfdX3AtEyGcIx2NXLiHIR+ROfy3jPmkqbjC0r8Ce3XZfnpG+LM5fRpbxtZBfeeg2BZyJGOpb3f3/sy0GvfsbqdV3EOJB+NIZTdcof8fe50+2U3WF09my1Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=com1FW1lk64G/Gzr/egji+D781kvGjwH+ntR26SMN8s=;
 b=PzGF/5EOrkMnwJz5bW3LrQPAdrkq0kt6A3RPmjZLGfBPGFeGNywYYx6IAkudkSqNL/p92Soy3XX+MgkORSsDJghVJUzOjmtud1m+WqZsd+NkN7YXiSEDW9LEf3gfPK9i22uetE6zrM0dlHtrxjR8Vuui2yP4B09JXLsHVTfJQMSjQVgSbqEbwAxNIg9p4NGqCzX6VpfVJ7ES1HP6kzUDzfWrBhDvos2kmZ1NdYwV/xXKRsKPzMC3D7a5do6ZRMvHpCquXPx3MGIeRSPI+/ku1avmoT3oCIm01KWSQhxvJm8yZoBytGXB8juQ4k5JKkxtcMiPSXyCjLpH+w+7/1NdYw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=com1FW1lk64G/Gzr/egji+D781kvGjwH+ntR26SMN8s=;
 b=4/h0m/Dqlnx+dtQJqlkTwIFQk168kiDkU3qJv5OSKO291+Nhzz59RGOCHOdsCskyn4UXBehln/Ky4fcG/+kRyGBbGDZP/SrurlbJ9xGq+wAzx8AtDTjncHmUI7ie0+Ny9GvI80HfYiY9muYxSq08yrGsfT80+QW/Wd79MbBwS0o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: Victor Lira <victorm.lira@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v1] automation: add x86_64 xilinx smoke test
Date: Fri, 26 Jul 2024 18:56:39 -0700
Message-ID: <9c065e301bf1f00c218def202f4685b83083e1a1.1722044804.git.victorm.lira@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: CO1PEPF000042AD:EE_|CH2PR12MB4167:EE_
X-MS-Office365-Filtering-Correlation-Id: b0284a17-4267-4620-099b-08dcaddf65aa
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?ENSWwGChdAa3u8F75NYq8roBxx+XGCRbOGCowmYA85lpInIXiPLgMlmiIed1?=
 =?us-ascii?Q?S1FFr2fLduLY6w2BskA0ZDAkS0Dj6GmN3pNT8pTPWIyOoXs07SMATi/nAlsj?=
 =?us-ascii?Q?v7GV1klRvNXJCbdE7FQvgLcUbJLjsql6Iq19t+oIg2EvjTEuuRsW/cbd7Dhy?=
 =?us-ascii?Q?GGDE3NhqMVQ4cvqZ8lPSSqEzv6HDLkDUs/rQwM9wjkCVsXvEd8Io8IiFYRP2?=
 =?us-ascii?Q?MODerahEZUlRJZxLb8GPl3EGwDM0d7W4FHf7XYWMFCVqq5h1SPtUUW7gKZar?=
 =?us-ascii?Q?zfI+WViCtog7Ht0ngWd8Ycz8lL/LutwRs2zpBsZoNOn/WFRW2z28538DMz1H?=
 =?us-ascii?Q?RJAm6t8SmK0G64lZPrKriftCc7O/pvS5AdjC3caV8M6mlFsPc0KrKVOrB5FM?=
 =?us-ascii?Q?KMVYxz+ZT6DXSCy52T9OmpMgg1Q02mW31pxP7N+NYyJLAJL7LnaP6XxBBRLN?=
 =?us-ascii?Q?yaclqAXugWJDWTFeSDQ7jLMwGpBRH/uRc3JucOPR5OO/0/WobjYt/ijo6SXc?=
 =?us-ascii?Q?CRKSeQXAWyVNMCxHBRnveiplb3rQriCUxlKTrLb7MPrnqIZXF744pho5RQAU?=
 =?us-ascii?Q?nZgoHIXP3MTHaY54rRjY5ip4+aEZAQ2+4rVHqRiZZRuDQAiACNSoyjAwLPLl?=
 =?us-ascii?Q?Aq8lN5Ctzg33LDZ59PGeE+rfn9eKty7CVLqKd1OXq/ogTU7ja1GJfsb69rIV?=
 =?us-ascii?Q?Srp2fP6q0IvPR2kGbjVv2Ta7PnRf1hWUO0p6wC4sge+92iZTqDUmD3rPq4Ow?=
 =?us-ascii?Q?Qi7h6hMS5WZtqiftB5EoUZw9Qg7CtdODXp9dfEoZz6G4rThUUaVcu0XfS2XW?=
 =?us-ascii?Q?YPe21yJULw0g20D5HHJkGd/5o7i3l5bV7UvQ3wGj10DAt25uQRNTEwKzBR4z?=
 =?us-ascii?Q?AmbS2OhWmQonZd8QlQUN9sP01WFggbYOUl9znQCouTxgMprjZRrB/blQAzKA?=
 =?us-ascii?Q?f7KtooPJOId79QkloF6e84csCmqAgqn+FgTPtRrdJ+67YJsEffFPuL6FuT9g?=
 =?us-ascii?Q?+z7TwM1VWG7KDp7zZyyM9g2Nt0vfvrR1YLwu/lZ8QaiDDINPZeJxey38Z8m5?=
 =?us-ascii?Q?aLbqLQYUOfIidzbrLF7DVP+6eEvUK80SatIJ8IiVrhpBmerG7cHxoaQ8VQir?=
 =?us-ascii?Q?M8RhUBtU2HeYLPaCeYmVYWnwm+RJW9HxVQSmZyXngxmOaoYqrol6oISfxYeP?=
 =?us-ascii?Q?/tDyo/1I/dO4DXrWNbToDu3OzajXqhhVWw8+5mD/mIcfism9rlBcqAWdp0tE?=
 =?us-ascii?Q?URDeXqRp4ouQ5hK4QgYCwu3q+PgaPEf98yMLK6CHnwcJ6NAmrzgzXR3pl26g?=
 =?us-ascii?Q?P+Qc3ais4TxAbiNX7zEbcv6mTi/Sblr50vRTShOlXr/+Dz1Xynkjsp873NhP?=
 =?us-ascii?Q?udGTiKPRfzJSLv6gW7jyCN0xljwIDKY99lhqokBklXvrM5wKPz1/XeqDyBIM?=
 =?us-ascii?Q?n302FGgu/wxLMt0okdMFcpnCpZr4CpXs?=
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: 27 Jul 2024 01:56:57.3003
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b0284a17-4267-4620-099b-08dcaddf65aa
X-MS-Exchange-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:
	CO1PEPF000042AD.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4167

From: Victor Lira <victorm.lira@amd.com>

Add a test script and related job for running x86_64 dom0 tests.

Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Doug Goldstein <cardoe@cardoe.com>
---
 automation/gitlab-ci/test.yaml                |  24 +++
 .../scripts/xilinx-smoke-dom0-x86_64.sh       | 144 ++++++++++++++++++
 2 files changed, 168 insertions(+)
 create mode 100755 automation/scripts/xilinx-smoke-dom0-x86_64.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index d89e41f244..4e74946419 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -96,6 +96,22 @@
   tags:
     - xilinx

+.xilinx-x86_64:
+  extends: .test-jobs-common
+  variables:
+    CONTAINER: ubuntu:xenial-xilinx
+    LOGFILE: xilinx-smoke-x86_64.log
+  artifacts:
+    paths:
+      - smoke.serial
+      - '*.log'
+    when: always
+  only:
+    variables:
+      - $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+  tags:
+    - xilinx
+
 .adl-x86-64:
   extends: .test-jobs-common
   variables:
@@ -159,6 +175,14 @@ xilinx-smoke-dom0less-arm64-gcc-debug-gem-passthrough:
     - *arm64-test-needs
     - alpine-3.18-gcc-debug-arm64

+xilinx-smoke-dom0-x86_64-gcc-debug:
+  extends: .xilinx-x86_64
+  script:
+    - ./automation/scripts/xilinx-smoke-dom0-x86_64.sh ping 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-debug
+
 adl-smoke-x86-64-gcc-debug:
   extends: .adl-x86-64
   script:
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
new file mode 100755
index 0000000000..e6e6fac6a5
--- /dev/null
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -0,0 +1,144 @@
+#!/bin/sh
+
+# Run x86_64 dom0 tests on hardware.
+
+set -ex
+
+fatal() {
+    echo "$(basename "$0") $*" >&2
+    exit 1
+}
+
+# Test parameter defaults.
+TEST="$1"
+PASS_MSG="Test passed: ${TEST}"
+XEN_CMD_CONSOLE="console=com1 com1=115200,8n1,0x3F8,4"
+XEN_CMD_DOM0="dom0=pvh dom0_max_vcpus=4 dom0_mem=4G"
+XEN_CMD_XEN="sched=null loglvl=all guest_loglvl=all console_timestamps=boot"
+XEN_CMD_EXTRA=""
+DOM0_CMD=""
+DOMU_CMD=""
+DOMU_CFG='
+type = "pvh"
+name = "domU"
+kernel = "/boot/vmlinuz"
+ramdisk = "/boot/initrd-domU"
+extra = "root=/dev/ram0 console=hvc0"
+memory = 512
+vif = [ "bridge=xenbr0", ]
+disk = [ ]
+'
+TIMEOUT_SECONDS=120
+
+# Select test variant.
+if [ "${TEST}" = "ping" ]; then
+    DOMU_MSG="domU online"
+    DOMU_CMD="
+ifconfig eth0 192.168.0.2
+until ping -c 10 192.168.0.1; do
+    sleep 1
+done
+echo \"${DOMU_MSG}\"
+"
+    DOM0_CMD="
+set +x
+until grep -q \"${DOMU_MSG}\" /var/log/xen/console/guest-domU.log; do
+    sleep 1
+done
+set -x
+echo \"${PASS_MSG}\"
+"
+else
+    fatal "Unknown test: ${TEST}"
+fi
+
+# Set up domU rootfs.
+mkdir -p rootfs
+cd rootfs
+tar xzf ../binaries/initrd.tar.gz
+mkdir proc
+mkdir run
+mkdir srv
+mkdir sys
+rm var/run
+echo "#!/bin/sh
+
+${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
+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
+mkdir proc
+mkdir run
+mkdir srv
+mkdir sys
+rm var/run
+cp -ar ../binaries/dist/install/* .
+echo "#!/bin/bash
+
+export LD_LIBRARY_PATH=/usr/local/lib
+bash /etc/init.d/xencommons start
+
+brctl addbr xenbr0
+brctl addif xenbr0 eth0
+ifconfig eth0 up
+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
+${DOM0_CMD}
+" > etc/local.d/xen.start
+chmod +x etc/local.d/xen.start
+echo "${DOMU_CFG}" > 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
+find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+cd ..
+
+# Load software into TFTP server directory.
+TFTP="/scratch/gitlab-runner/tftp"
+XEN_CMDLINE="${XEN_CMD_CONSOLE} ${XEN_CMD_XEN} ${XEN_CMD_DOM0} ${XEN_CMD_EXTRA}"
+cp -f binaries/xen ${TFTP}/pxelinux.cfg/xen
+cp -f binaries/bzImage ${TFTP}/pxelinux.cfg/vmlinuz
+cp -f binaries/dom0-rootfs.cpio.gz ${TFTP}/pxelinux.cfg/initrd-dom0
+echo "
+net_default_server=10.0.6.1
+multiboot2 (tftp)/pxelinux.cfg/xen ${XEN_CMDLINE}
+module2 (tftp)/pxelinux.cfg/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen
+module2 (tftp)/pxelinux.cfg/initrd-dom0
+boot
+" > ${TFTP}/pxelinux.cfg/grub.cfg
+
+# Power cycle board and collect serial port output.
+SERIAL_CMD="cat /dev/ttyUSB9 | tee smoke.serial | sed 's/\r//'"
+sh /scratch/gitlab-runner/v2000a.sh 2
+sleep 5
+sh /scratch/gitlab-runner/v2000a.sh 1
+sleep 5
+set +e
+stty -F /dev/ttyUSB9 115200
+timeout -k 1 ${TIMEOUT_SECONDS} nohup sh -c "${SERIAL_CMD}"
+sh /scratch/gitlab-runner/v2000a.sh 2
+
+set -e
+
+if grep -q "${PASS_MSG}" smoke.serial; then
+    exit 0
+fi
+
+fatal "Test failed"
--
2.25.1



From xen-devel-bounces@lists.xenproject.org Sat Jul 27 02:07:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 02:07:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765821.1176467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXWqW-0003J4-Ss; Sat, 27 Jul 2024 02:07:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765821.1176467; Sat, 27 Jul 2024 02: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 1sXWqW-0003Ix-Py; Sat, 27 Jul 2024 02:07:44 +0000
Received: by outflank-mailman (input) for mailman id 765821;
 Sat, 27 Jul 2024 02: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=9te9=O3=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1sXWqV-0003Ir-Oi
 for xen-devel@lists.xenproject.org; Sat, 27 Jul 2024 02:07:43 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20614.outbound.protection.outlook.com
 [2a01:111:f403:2414::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 00b48e0c-4bbd-11ef-bc00-fd08da9f4363;
 Sat, 27 Jul 2024 04:07:42 +0200 (CEST)
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com (2603:10b6:a03:539::18)
 by IA1PR12MB6185.namprd12.prod.outlook.com (2603:10b6:208:3e7::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.29; Sat, 27 Jul
 2024 02:07:37 +0000
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a]) by SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a%5]) with mapi id 15.20.7784.020; Sat, 27 Jul 2024
 02:07: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: 00b48e0c-4bbd-11ef-bc00-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rtfyoHKr0DH35EWVjVJhWNNHu4GVnsIN628ry/egsLPdJvod0gnpsr1TdG9VCUxJ0SYXCOWMNR3crCcV/C+3sGMs5+1O8rvSYsFpxopw8tpIxarkXd9QewVf4Vd1Mow4El+S7zUE2AQcpvqC2mCcfjbqxsy+ja8IUum7ctkVU03q3RFZKSCFYJoC6G2BL2zKcbDxTL/TXr6LULU8c8w6WJ/6s4IXuj28GI9gkhGByq36h7un4HyKBkiOaVcEmn4XF6/fYD7hwBMlv658aWWIvxZhX6nrH6n7Vwvn5SRDIUDCw8eq259mPIaLzL16xOF03kYIMH+9VYD/elmIptZKJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8Hu6SPjyd7uFwhIOol54HgCu7zWoa372Rm4gqf/f0hk=;
 b=p1MnsYkGbve/hamrL3hIr4fWyTATupO/In39O54GLOzO4egqpzL7EFLQIQQjhUGp+elvWfLNFmPHlE2hC+2VwmZvDsplwunfDmaHTxroqhv6OZwNfAT0gcsEFfpbi6hmri5H+hMY0oIHNyLrNQt/SLU70x9oO61j5xGguuhJpZR3ijZuzeT+zzjqpHOmqFgJSgzzabiKtNk8KGkCfXR/76AUtnDr4JvGvtB8Cu3Dtcya6eTjzKmy/D6m5k1CIG8MpkN0G6qwGiGYtumx0+fNqzVx3HjiRNb8e0sVJBhi2Dj0nRzHJ6z/8cDSU/kmlz6vSlekxmrL6tG3hbs+NdHJqw==
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=8Hu6SPjyd7uFwhIOol54HgCu7zWoa372Rm4gqf/f0hk=;
 b=GMJOqFbkUO4mSGlJrXwjmOapAw6QkGnQlvsCPGlsb7MKnZIolrmVvNLH5QTeGQWuQY7anLwVeZX9x4fTRsYsba0U6SwAXZga5cOhZ1oHhWg6lIcXytV1O+5DVIE+M+nZilDCBjAIbUpb91arI9Duguab2oWT6N1AkJru61AoJtU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <b5764e91-a88f-4ddd-932a-b5955d26aa93@amd.com>
Date: Fri, 26 Jul 2024 19:07:35 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] automation: add x86_64 xilinx smoke test
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>
References: <9c065e301bf1f00c218def202f4685b83083e1a1.1722044804.git.victorm.lira@amd.com>
Content-Language: en-US
From: "Lira, Victor M" <VictorM.Lira@amd.com>
In-Reply-To: <9c065e301bf1f00c218def202f4685b83083e1a1.1722044804.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR13CA0066.namprd13.prod.outlook.com
 (2603:10b6:a03:2c4::11) To SJ2PR12MB8876.namprd12.prod.outlook.com
 (2603:10b6:a03:539::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ2PR12MB8876:EE_|IA1PR12MB6185:EE_
X-MS-Office365-Filtering-Correlation-Id: 58c311f0-0d67-4933-83b2-08dcade0e2bf
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?aG9Gd3F2dkRieURuMXV6RGVHL0xQSFduTzdacmE0R1FlM0dXREhncm5IelJY?=
 =?utf-8?B?SnJreDNzSmkxTDlOZE1vdTNvYy9uR0JobFJrVEp4cWpoMkxYcmk1MjJDd0R0?=
 =?utf-8?B?WnpTT2FHazJ5UkIzcGtzOUR5cTNkWDh6WkhERTRldk50TkR0bjBEM3g3bkNJ?=
 =?utf-8?B?OVQ4RXFYT0Y0b01hVkZIS29oejBBN1RzclYzZWZVOHdxUGFUVlo1MU9nRTA2?=
 =?utf-8?B?QmtVVzdPclpGRDl2V09xZmE5cTM5K1M1Sytuby81VGpnMFNVdXE4N0QxU2h5?=
 =?utf-8?B?bFFSc3JLL2tKVzd0Z0swSlFEWnhLOFRJemhrRWhkREtlWTFjQ2JhT2YwOEht?=
 =?utf-8?B?SnRsSFhvOThCVnQwOXhDTXRTNUwvK29jd0tXbDd0SHAzandBdlZ3ckI3Y1hX?=
 =?utf-8?B?WktTa2FPSk9YVGc1dmxQd3ZzTjVVL3pjMGNHZk4xbytlbmpDK0JmZjZQQjVL?=
 =?utf-8?B?MmptbUErK2R4QTRxd2l1MTVGc245UGxWdDlrWHkzRWNta3h6RTd6RmNnQzJt?=
 =?utf-8?B?YTFBajVZS21QcjZsVDBLRS9VdlRzMUtKZXlFaXI2MzVYMXB5QnovWG1WMDht?=
 =?utf-8?B?RUJkZzBWQTl0TmU2WXBaQ25hbzFzc2FlYXRGRmtCUDAvaGE1VmlOM1phZEky?=
 =?utf-8?B?dFk5Zy9JbVBlci9wY3liN00xckwyaDRFN2srRU8vWWpVbTJPZXp6bENUZURT?=
 =?utf-8?B?QUxYUXlRU3gxY2hHV0Q2cnVTd3FBVEViRGpXMEFoaTBTdUcwQ1RVWVkrMmF4?=
 =?utf-8?B?SmdBZVdQM201WU94amRCSzg1Um9oNXJoWlU4ODkxbzE3RHhiejRmclp4emRy?=
 =?utf-8?B?cTc4UndMN0hxL2FJQk5EZldZNk5Kb3hiOVFkdnNQUXpFbVIvNEhEdmhkQVVy?=
 =?utf-8?B?WHZZeEdzQzB2L0NBRXlGVDFWblE1ck1mcFU1RnRtQ2lPaDBDakRlTkIwY0ZP?=
 =?utf-8?B?QVN4ZGtVRkwxYTIydDVqa1lRVGhTVm5iL2RNTFRtWE5UMC9qc1E5RDlnTU5K?=
 =?utf-8?B?UmN3VHJiSE5QeWs0amNXbHVzME56SGpTQitja3NoeWthZU9XT1czL3pQM04v?=
 =?utf-8?B?eGpuTEJoRnZIRGtnRWx4dkJkelllR09zYlhsSmVmM1JucE81VXczUmxpdFEw?=
 =?utf-8?B?azZMaG1YK2FxY1Fhd1lDRHFmL1BCY2dheUxVMFJlRmNRRFlIV2dvQ0o4RnpS?=
 =?utf-8?B?d2htRnNiZW5LaFU5Nk92aW0wL2xMWG4vR3RWczBGRXBnTzdtZDZ0RE5aRlln?=
 =?utf-8?B?cWMzZDlpc2JxS1crbklTSFFJOUxKSERLMHNvbDRzdm1sbWJBajdyOThQMEQx?=
 =?utf-8?B?dy91WjFJOERQN0JabEhYamkrTC83UERhdXZ6bFRzQzZwY2o5TEh1M1prYXZi?=
 =?utf-8?B?eTMzRzhLZDAvb3hVRVpDU242dUorY2pxRVhzek5ldzE5MzhNMTRWY2tOenlS?=
 =?utf-8?B?YlZRQ3pJMjFscGluc0hMNzl6c2k1c3k1TFl1OGVEYXBGdi9pWkJwNzQ3Ny8z?=
 =?utf-8?B?WU9TR3IvbmVvN09SYWhzci8wVGxEVEphOFJ6azlJeE14RXZMQXZJaWQ5OTUw?=
 =?utf-8?B?RUtiL2lURFN6eDI5bUpqbWhQNUJBMlorK0Vpa3VlanBoUC9ibFowOWtKV0w5?=
 =?utf-8?B?Z1pQeGpYQ2pmdUdKNlVzMG93aTI2UXdqd3pvdE9UblNla1pic0JwNGpoT05m?=
 =?utf-8?B?bmozMm9aZzEwVUFEV1g2ZVk1ajE3dmYzenVidFJWYWFnVXJXemV3a0dWU2Ft?=
 =?utf-8?B?enE5OG9zSmtLWXZadXZqS3h3RERZTmQyYU9BWDR3eEpzS1ZXTFhvRWl6Ly9s?=
 =?utf-8?B?VTMrbVlFdk15S3Fvbm13QT09?=
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)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TGp4L25PWjZmOHdIRHNBRzJvckpjQ1FHWG13cmZ1VFQzeWh6Nm5lY1BsS0ZR?=
 =?utf-8?B?UjVVcVpFUnZlQ296OTlyemNOelByam5wSGFaSnBaSW5IdFVscTFneUlwdkhq?=
 =?utf-8?B?TDBLdm9Tc2t6bUpLODh3OGJDcjBwbmlMU21RaitqUDB6SGgwT2tvMXluNnE1?=
 =?utf-8?B?ZkZSbmVSSkR1ZGpOY3QrQ1JjYm9EWEZld0VtWnJ4bmdZK1Y4a2lRRVpBTGVV?=
 =?utf-8?B?R3pGeWx2eEtOOFhidDVCRVF5UDVjQ0ZGSk9SYTFIeG5ZYkVwL3ByVlFIajhQ?=
 =?utf-8?B?UzhIcUxJTW9jVnJWenpmdHZBZDZZelhJUGlWTkJBeEQ3TU52Tm5jM0l1Rzdl?=
 =?utf-8?B?aTZ3N2xFQzJua29OMzUrK1ZWNWdJMUFGc1QydUwyck50ckpYdTVhY045L0Nt?=
 =?utf-8?B?eVR2UFFLbkh4ekJYM3FDT1hXQ3pZZXhsU2FyMzZPam8xb0gySVZKaDFQdVF3?=
 =?utf-8?B?Wk1OMUVKL0Z2QVhLanh1Wk52NDc1b2JxVkQwV3JWM0lFQi9tRzQ0QS9hdVNF?=
 =?utf-8?B?WlNJRnNDMTBWMHlmWXJXNW9IOFl0c0dWNkdxQmtza2xYb1o1Z0NtZVhrWjhq?=
 =?utf-8?B?aURmVjhQbkFYMXpvekpjREd4Vnk2Nk10d3BDZlBPS0J4VG92Qm5ReVNTQWYr?=
 =?utf-8?B?azhlQ3FOaDhSaFM5TDl1c21ZYzduYnEzQWhMRTkwdmxmbTc5VHVUbHZLSjF6?=
 =?utf-8?B?N016K2hSRXQrRHh4K0ZqOVNyY0hUU0c0QUxoQ1V4ZDBzMlR2ZUlrdkxrQmtk?=
 =?utf-8?B?d1ZrczJqRTRoUXhpQk9SNGQ5WTBQY3RRNGtNVVBRNkN4RmJVRXlaUnZWMW16?=
 =?utf-8?B?azRZRW8vYURNbWhYQ2ppcndReGlpNGdHVXBGQm5pM2EvUXRDczBHRXJVQ3Yw?=
 =?utf-8?B?bzRpWGZpWXo5WFlmeFN4Y1VpYmlIUkh2RnBPbG9QN3lnVFJUTEM3d2pLYjJJ?=
 =?utf-8?B?Vm1Sb09iYm1ZZGt1emVvY2JzNm91RUs4SjN4Zm9HRmR3QjNZYlRoNWZhbEw5?=
 =?utf-8?B?dU4wZGd6blBINlJIREFlUGlTZzFRVEZ2Zk5hWnVodGQ0djgrUEVDK25wOUY4?=
 =?utf-8?B?T3l4YXZrMWZJS01uemZmUkhLK2JDWmxWYlh4cUpLTWJpUFp5S2NQZ0dYYXQ5?=
 =?utf-8?B?NThiQi9LSENidDFsWHZUemtWQ3N0aTZHVzk3NW04K2doS1dRVVk1bFJSdUdK?=
 =?utf-8?B?a0VWWUtxYkRzWCtLck9HMTFCUkhJQ1huNnNFSTFkOEI3Zy9kUW1CRFJuZjNJ?=
 =?utf-8?B?Q05YeHAvVlZ3ZlJwVkN3VFVTc0dIMjBzcWdTTWZnM0dvWEc5cXNOM3lweEZU?=
 =?utf-8?B?K0IvcnJ2OEFYOUF0aTBnWlhXOS91bkFLUGtma0JKdG9Ib2JtSnV1RjJqRTl4?=
 =?utf-8?B?YkhYaVhpaHhlRC9NVzQzQnVXMTZiWjlpSjJjeGw0SERoL1phRmtNdEh3SXph?=
 =?utf-8?B?VDFaeXJ2NDA3NEhLMXpXSm8rYnpPVGxSRUgzWXFGMWJVcFp2NitVNTQxbXMv?=
 =?utf-8?B?L2NmRXF5Y00xalY2WU9ZTjdJN215dXNsYzg0b0gzdHVFQkp3Q0h3WTRVVE85?=
 =?utf-8?B?bEJ6OFRkeHAxTjVYQlNZSTMwTnFLNE91TnNJSmFzeGFlWkMwVUpVVGtGMTNk?=
 =?utf-8?B?b3dEMGRKUUc1TU90ZVZJWExJeml2c3dsaFdhQzVzNlVsNU1UMldwcFJodHJl?=
 =?utf-8?B?WFNLWUM2ZE1ueWl0UEpmZE9FcTkrdm45RWtaUGR5Z0ZydUNDZlBhYmhZQnJC?=
 =?utf-8?B?UTkyZlV2NElaQ29jdDFGZHVXNnhVZUpob1JPNlNsZkVQOFJ6cWNVOTZzK3JU?=
 =?utf-8?B?R2RwcEpWWkRLV2tKREg3SGl2NjNnY0NhZmpnZGxqdUdVMk1SQWpBRE15WGRJ?=
 =?utf-8?B?YldXTTlqWGc5K0ZkVnFhRU5JNElIVldUNnVFZkE3WHVZWm1ndHFqYmxPS1Z1?=
 =?utf-8?B?M2xQbmF5U2tVOGpaSGMwNldtT1liZ2x3a1ozNHlabkliN01tWlpVU0l6WG9B?=
 =?utf-8?B?RUl1azc4RXV6S3VtV1Vna3l3Z1RQckZyRVYwT3B0bFVXRGJqVlczV012c1dZ?=
 =?utf-8?B?cytRLzdLK2cxYXFnSEEvYnV1blZlc0kzM2ZiMlgxVzJHQkpGNjVySjJvMlZm?=
 =?utf-8?Q?AK8I5m7P2A7lUqvp69knKMsv/?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 58c311f0-0d67-4933-83b2-08dcade0e2bf
X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8876.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jul 2024 02:07:36.9350
 (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: MLnjQTOJisF1VSPQXy7kqBwDalS+2n2ERW2MtSwX3GdYhDFGmr0KU+e78TwjIt0sbsEoyIrXjdr257rtEGz6aA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6185

Note: This test job uses the same tag 'xilinx' as the existing test 
'xilinx-smoke-dom0less-arm64.sh' because there is a single gitlab runner 
which can run either test.

Victor




From xen-devel-bounces@lists.xenproject.org Sat Jul 27 03:54:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 03:54:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765828.1176476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXYVn-0008ER-89; Sat, 27 Jul 2024 03:54:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765828.1176476; Sat, 27 Jul 2024 03: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 1sXYVn-0008EK-5W; Sat, 27 Jul 2024 03:54:27 +0000
Received: by outflank-mailman (input) for mailman id 765828;
 Sat, 27 Jul 2024 03:54:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXYVm-0008EA-2N; Sat, 27 Jul 2024 03:54:26 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXYVl-0008Q6-Mv; Sat, 27 Jul 2024 03:54:25 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXYVl-0007d7-Cc; Sat, 27 Jul 2024 03:54:25 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXYVl-0005mL-AX; Sat, 27 Jul 2024 03:54: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=GFbNk+jhYPBR6vbxilRTaI8TpYRY61kvNZX+0SzYjyk=; b=6KuQL1tpK3NHLDYFkrObBT3uIg
	l+EuPlOqOeZj0msyTNH389hGsxHdkvREelvLlY/ZeyYz0AxK54XGFJu+DVjPnQW1CeEDyw5BjZXFd
	LFxYRvqOx+W3PjLBnI1GBcUjLbDTIC4RHqK0aoKgD3upxUZG7nCtja8ezamXqaKCYDko=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187021-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187021: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=d7e36ccbbde76ab39dd8bb21c3712767c2f2c98f
X-Osstest-Versions-That:
    ovmf=03ad59e631aaab0143c5b1c1d64f27f5da1eb8c4
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Jul 2024 03:54:25 +0000

flight 187021 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187021/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 d7e36ccbbde76ab39dd8bb21c3712767c2f2c98f
baseline version:
 ovmf                 03ad59e631aaab0143c5b1c1d64f27f5da1eb8c4

Last test of basis   187018  2024-07-26 17:45:25 Z    0 days
Testing same since   187021  2024-07-27 01:45:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Oliver Smith-Denny <osde@linux.microsoft.com>
  Sean Brogan <sean.brogan@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   03ad59e631..d7e36ccbbd  d7e36ccbbde76ab39dd8bb21c3712767c2f2c98f -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Jul 27 05:48:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 05:48:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765845.1176487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXaHg-00054K-8b; Sat, 27 Jul 2024 05:48:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765845.1176487; Sat, 27 Jul 2024 05:48: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 1sXaHg-00054D-5g; Sat, 27 Jul 2024 05:48:00 +0000
Received: by outflank-mailman (input) for mailman id 765845;
 Sat, 27 Jul 2024 05:47:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXaHe-00053l-Ri; Sat, 27 Jul 2024 05:47:58 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXaHe-0002ZQ-HQ; Sat, 27 Jul 2024 05:47:58 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXaHe-0006Pk-4T; Sat, 27 Jul 2024 05:47:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXaHe-0006NF-40; Sat, 27 Jul 2024 05: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=u44ICRz/w+srsMMd//ghCv9rdNcdXGziZ33pnPUPWLU=; b=eLLKTtZZqugg41zs2+bzicSuY9
	rsHAjd/c1HZqUuA4yB7aIyHzyoTbUgOT6XGLP+M067506ECNQoTEPgBV/YhjryUZHCKnFUjwlzZfY
	3ieSSUBo5LRp9dZMyGzd7J7ZIIlk06CbH+EpLbNZa2qYSTFCdXM6F4gfc7i8LU5JiB2w=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187023-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187023: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=7868d509dd33af30f57de76d8fd67117cf23c8a7
X-Osstest-Versions-That:
    ovmf=d7e36ccbbde76ab39dd8bb21c3712767c2f2c98f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Jul 2024 05:47:58 +0000

flight 187023 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187023/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 7868d509dd33af30f57de76d8fd67117cf23c8a7
baseline version:
 ovmf                 d7e36ccbbde76ab39dd8bb21c3712767c2f2c98f

Last test of basis   187021  2024-07-27 01:45:10 Z    0 days
Testing same since   187023  2024-07-27 03:58:40 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   d7e36ccbbd..7868d509dd  7868d509dd33af30f57de76d8fd67117cf23c8a7 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Jul 27 08:04:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 08:04:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765869.1176496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXcPQ-0005Gm-O3; Sat, 27 Jul 2024 08:04:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765869.1176496; Sat, 27 Jul 2024 08:04:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXcPQ-0005Gf-LU; Sat, 27 Jul 2024 08:04:08 +0000
Received: by outflank-mailman (input) for mailman id 765869;
 Sat, 27 Jul 2024 08:04:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXcPO-0005GS-Og; Sat, 27 Jul 2024 08:04:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXcPO-0005id-K9; Sat, 27 Jul 2024 08:04:06 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXcPO-0002vj-6g; Sat, 27 Jul 2024 08:04:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXcPO-000443-6J; Sat, 27 Jul 2024 08:04:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=J9FOZF7i4sR0gPjAu06P7Acvvb/ZiCIV7COebCF8uuA=; b=rsgwQyNOov+qviD8zepQsmHuEP
	bNdUEjjy8YECUziQdedQOBVi73K6jkwM67yd9JhTMBphaTGWfHcdkY+uPKpj6n2OJDxSLXCkqeRld
	ZF1XUtI19hmljEE/7A6BaCb6+YNGP4mXYRsSGVDFzr/Zmm2Cw/hclAWQ5ooUiKsjD5hI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187024-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187024: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=0343e7523387df6204c3219211d798683d3fd200
X-Osstest-Versions-That:
    ovmf=7868d509dd33af30f57de76d8fd67117cf23c8a7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Jul 2024 08:04:06 +0000

flight 187024 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187024/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 0343e7523387df6204c3219211d798683d3fd200
baseline version:
 ovmf                 7868d509dd33af30f57de76d8fd67117cf23c8a7

Last test of basis   187023  2024-07-27 03:58:40 Z    0 days
Testing same since   187024  2024-07-27 06:15:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michael Kubacki <michael.kubacki@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   7868d509dd..0343e75233  0343e7523387df6204c3219211d798683d3fd200 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Jul 27 08:19:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 08:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765879.1176506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXce7-000776-3m; Sat, 27 Jul 2024 08:19:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765879.1176506; Sat, 27 Jul 2024 08: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 1sXce7-00076z-13; Sat, 27 Jul 2024 08:19:19 +0000
Received: by outflank-mailman (input) for mailman id 765879;
 Sat, 27 Jul 2024 08:19:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXce6-00076p-Es; Sat, 27 Jul 2024 08:19:18 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXce6-0005zZ-0T; Sat, 27 Jul 2024 08:19:18 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXce5-0003Jp-He; Sat, 27 Jul 2024 08:19:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXce5-0000IH-HD; Sat, 27 Jul 2024 08:19: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hQGzRAFa2+x7nOPJwTuPNZBAE2unY6FNXypaUf4lgGA=; b=GXk8aXhAotkdxUVsa78l3/FLZ8
	5fNznsJeDnyj0b1Lhlqsq7ZqBtpQswccoapdyhH3d+c9wQimm2iudeNUy+QNnRH7T+g7pG+UgyNZt
	nDbchCGtop54qs2yLI7aYsacLgtjEbljRWZi4K/u6A9IkcRf6sJSpjN+Rw2eCciTVvio=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187020-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187020: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=3a7e02c040b130b5545e4b115aada7bacd80a2b6
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Jul 2024 08:19:17 +0000

flight 187020 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187020/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel  8 xen-boot            fail REGR. vs. 186827
 test-amd64-amd64-dom0pvh-xl-amd  8 xen-boot              fail REGR. vs. 186827
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                3a7e02c040b130b5545e4b115aada7bacd80a2b6
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   10 days
Failing since        186925  2024-07-20 09:44:52 Z    6 days   15 attempts
Testing same since   187020  2024-07-27 01:44:58 Z    0 days    1 attempts

------------------------------------------------------------
1928 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 216397 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Jul 27 10:46:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 10:46:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765909.1176516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXevz-0007g2-JG; Sat, 27 Jul 2024 10:45:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765909.1176516; Sat, 27 Jul 2024 10:45:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXevz-0007fv-G2; Sat, 27 Jul 2024 10:45:55 +0000
Received: by outflank-mailman (input) for mailman id 765909;
 Sat, 27 Jul 2024 10:45: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 1sXevy-0007fp-Cj
 for xen-devel@lists.xenproject.org; Sat, 27 Jul 2024 10:45:54 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sXevx-00007E-RX; Sat, 27 Jul 2024 10:45:53 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=dev-dsk-jgrall-1b-035652ec.eu-west-1.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sXevx-0007qL-DL; Sat, 27 Jul 2024 10:45: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:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=j7Wjq4qGEyEv6tB906bN7P4FQ5GbMlh4dm+qV8ztyEs=; b=bG3vF9
	E1tC5FLCS6zU7QFrdJJLaUzQTAIHsik2JrMdpF0mYBMvmzRuZJsvlUQy/GZ0jddQvYxKza63e4Tt7
	Pi44JMrTPFRRQAVSulDMlkIOkjTkEHmr1+UhsDiUjZ3kMbhjgvT1PgJrwAInXMLAJkArCZRzTen4g
	1XQVaURbCT0=;
From: Julien Grall <julien@xen.org>
To: xen-devel@lists.xenproject.org
Cc: oleksii.kurochko@gmail.com,
	Julien Grall <jgrall@amazon.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN for-4.19] SUPPORT.md: Define support lifetime
Date: Sat, 27 Jul 2024 11:45:46 +0100
Message-Id: <20240727104546.94312-1-julien@xen.org>
X-Mailer: git-send-email 2.40.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Julien Grall <jgrall@amazon.com>

Signed-off-by: Julien Grall <jgrall@amazon.com>
---
 SUPPORT.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index 77d2a7a7db1a..8b998d9bc7b7 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -9,13 +9,13 @@ for the definitions of the support status levels etc.
 
 # Release Support
 
-    Xen-Version: 4.19-rc
-    Initial-Release: n/a
-    Supported-Until: TBD
-    Security-Support-Until: Unreleased - not yet security-supported
+    Xen-Version: 4.19
+    Initial-Release: 2024-07-29
+    Supported-Until: 2026-01-29
+    Security-Support-Until: 2027-07-29
 
 Release Notes
-: <a href="https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes">RN</a>
+: <a href="https://wiki.xenproject.org/wiki/Xen_Project_4.19_Release_Notes">RN</a>
 
 # Feature Support
 
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Sat Jul 27 11:53:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 11:53:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765922.1176526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXfyg-00083Q-81; Sat, 27 Jul 2024 11:52:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765922.1176526; Sat, 27 Jul 2024 11:52:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXfyg-00083J-4v; Sat, 27 Jul 2024 11:52:46 +0000
Received: by outflank-mailman (input) for mailman id 765922;
 Sat, 27 Jul 2024 11:52:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXfye-000837-VM; Sat, 27 Jul 2024 11:52:44 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXfye-0001NX-Ok; Sat, 27 Jul 2024 11:52:44 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXfye-00050O-6h; Sat, 27 Jul 2024 11:52:44 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXfye-00086r-5n; Sat, 27 Jul 2024 11:52:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+W6+dHkcwmOOSVIJl8znlrEkrJ9NDrOR3H1WpiyUCaQ=; b=u8frMmZcMionxGHiHipEViX/vy
	55rkCDiuT9zQRp+tpsK+srWxwc9qqVGSDW1PNqNHLwoTeGOiTau/6yXz/5w8pCreaq16jD0Q1yFX4
	3Lhx0aoj0veavwsHq742zdaBzFrZH4U57qn8HIljUwTR4xgTyHCvE5yKpiI8unJgQ8hQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187022-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 187022: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-qemuu-freebsd11-amd64:guest-start.2:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-arndale:xen-boot:fail:heisenbug
    xen-unstable:test-amd64-amd64-qemuu-freebsd11-amd64:guest-localmigrate/x10:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
X-Osstest-Versions-That:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Jul 2024 11:52:44 +0000

flight 187022 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187022/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-qemuu-freebsd11-amd64 22 guest-start.2 fail in 187010 pass in 187001
 test-armhf-armhf-xl-arndale   8 xen-boot         fail in 187010 pass in 187022
 test-amd64-amd64-qemuu-freebsd11-amd64 19 guest-localmigrate/x10 fail pass in 187010

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 187010
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 187010
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 187010
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 187010
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 187010
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 187010
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847
baseline version:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847

Last test of basis   187022  2024-07-27 01:52:15 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       fail    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sat Jul 27 13:46:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 13:46:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765940.1176537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXhkM-0004Gm-6Y; Sat, 27 Jul 2024 13:46:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765940.1176537; Sat, 27 Jul 2024 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 1sXhkM-0004Gf-39; Sat, 27 Jul 2024 13:46:06 +0000
Received: by outflank-mailman (input) for mailman id 765940;
 Sat, 27 Jul 2024 13:46:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXhkK-0004GF-Us; Sat, 27 Jul 2024 13:46:04 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXhkK-0003Hw-4d; Sat, 27 Jul 2024 13:46:04 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXhkJ-0001Px-Mh; Sat, 27 Jul 2024 13:46:03 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXhkJ-00023d-M5; Sat, 27 Jul 2024 13:46:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=VrIoby6qkFtf8b+eCXNszE2O2DFWybKTxrz+1mRuys8=; b=Yff5drEqX3DWNT/njOLXJTyfNQ
	YfWH8ayCarwFHv6aL168sSilBLxGIH9oQNlrJEpoq2MBUy7mM8001i63mCbx5AuX3VB4gD5hSJ+i5
	AMWriXw38lzlCiR6YGcQW/dJpEoDulEvAcSKedaPhx6suLUAuJvgMeva+F2L476BInB0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187027-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187027: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=418b8176b8d7d99f4303d92f87130f1b09989b7a
X-Osstest-Versions-That:
    ovmf=0343e7523387df6204c3219211d798683d3fd200
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Jul 2024 13:46:03 +0000

flight 187027 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187027/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 418b8176b8d7d99f4303d92f87130f1b09989b7a
baseline version:
 ovmf                 0343e7523387df6204c3219211d798683d3fd200

Last test of basis   187024  2024-07-27 06:15:13 Z    0 days
Testing same since   187027  2024-07-27 12:15:17 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ard Biesheuvel <ardb@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   0343e75233..418b8176b8  418b8176b8d7d99f4303d92f87130f1b09989b7a -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Jul 27 15:58:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 15:58:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765969.1176547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXjnk-0002kg-Di; Sat, 27 Jul 2024 15:57:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765969.1176547; Sat, 27 Jul 2024 15:57:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXjnk-0002kZ-9f; Sat, 27 Jul 2024 15:57:44 +0000
Received: by outflank-mailman (input) for mailman id 765969;
 Sat, 27 Jul 2024 15:57:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXjni-0002kP-US; Sat, 27 Jul 2024 15:57:42 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXjni-0005cY-Eo; Sat, 27 Jul 2024 15:57:42 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXjni-0005SD-0L; Sat, 27 Jul 2024 15:57:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXjnh-0004KF-W5; Sat, 27 Jul 2024 15: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=0+pGhJ+6TURpkjWawMAVNN1GeTiUxWKHivJog729MGA=; b=wLcglixM64AU+tpoU/E4UBOUCf
	dA/trVNIoKYBluiZADsJFLlKXks3R+L0MNXzXvUO4jbPNApCQi4359KdmrDjTPBIICK0IQJGUYfc9
	hrrmoX0MszJ46Mc5g/BfWG5IyscBZU/ge3YhcmIP/hcOGFF3Yh0GVZ3k8O9EqmzafQHI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187025-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187025: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=3a7e02c040b130b5545e4b115aada7bacd80a2b6
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Jul 2024 15:57:41 +0000

flight 187025 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187025/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel  8 xen-boot            fail REGR. vs. 186827
 test-amd64-amd64-dom0pvh-xl-amd  8 xen-boot              fail REGR. vs. 186827
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                3a7e02c040b130b5545e4b115aada7bacd80a2b6
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   10 days
Failing since        186925  2024-07-20 09:44:52 Z    7 days   16 attempts
Testing same since   187020  2024-07-27 01:44:58 Z    0 days    2 attempts

------------------------------------------------------------
1928 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 216397 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Jul 27 18:46:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 18:46:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765984.1176556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXmRG-0006A3-UE; Sat, 27 Jul 2024 18:46:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765984.1176556; Sat, 27 Jul 2024 18: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 1sXmRG-00069w-RK; Sat, 27 Jul 2024 18:46:42 +0000
Received: by outflank-mailman (input) for mailman id 765984;
 Sat, 27 Jul 2024 18:46:41 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXmRF-00069m-Ml; Sat, 27 Jul 2024 18:46:41 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXmRF-0000jS-F7; Sat, 27 Jul 2024 18:46:41 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXmRE-0002mR-WE; Sat, 27 Jul 2024 18:46:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXmRE-000460-Vg; Sat, 27 Jul 2024 18:46: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Z28qlNY/Bw94kkj80byUuIsIfZ/IiyCHkIkfrf1k1lM=; b=H9dma03TtCBTooY1/2wyoLWcDC
	/zEmdwHCAKVxkSWBrAAy8enBvPkxcqFDa2u1JHZeq8kjSiISMzsSPW+2F3bqJavskwciM/KOKK+Ob
	SGHQrm95OqgFS1zOEyQpvORjyYVK9disJuYtgnHOF7KZqvZWEfSks5Kg507f/ijK1tiI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187029-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187029: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=52eb643d0785a19c7f1c107d390c7bb52a79789e
X-Osstest-Versions-That:
    ovmf=418b8176b8d7d99f4303d92f87130f1b09989b7a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Jul 2024 18:46:40 +0000

flight 187029 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187029/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 52eb643d0785a19c7f1c107d390c7bb52a79789e
baseline version:
 ovmf                 418b8176b8d7d99f4303d92f87130f1b09989b7a

Last test of basis   187027  2024-07-27 12:15:17 Z    0 days
Testing same since   187029  2024-07-27 16:13:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ard Biesheuvel <ardb@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   418b8176b8..52eb643d07  52eb643d0785a19c7f1c107d390c7bb52a79789e -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Jul 27 20:00:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 20:00:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.765995.1176566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXnat-00079t-2j; Sat, 27 Jul 2024 20:00:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 765995.1176566; Sat, 27 Jul 2024 20:00: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 1sXnat-00079m-0D; Sat, 27 Jul 2024 20:00:43 +0000
Received: by outflank-mailman (input) for mailman id 765995;
 Sat, 27 Jul 2024 20:00:41 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXnar-00079c-A7; Sat, 27 Jul 2024 20:00:41 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXnaq-00028W-T4; Sat, 27 Jul 2024 20:00:40 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXnap-0006JJ-Vu; Sat, 27 Jul 2024 20:00:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXnap-0003d7-VV; Sat, 27 Jul 2024 20:00:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=3u667R/3NL7Uetqxw9oUiHTYYCe0GVGvok91phNHS+w=; b=XRQsHfqL7RbF+YEEOiceYhVsMp
	0YHTLosvrPvRPLrXNtIOmprQxs2zjt62JwtkOvpvjsUj+PxA3q/HaH1Uivm8fyzRtK0UwpRmA3grF
	rEpWkUYIeB9sOj6l5hr0TZKRj1zh+Tz443TmmNJjIA8Wlcz6rXPqazs/y1ggrivmScis=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187026-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-6.1 test] 187026: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-6.1:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-6.1:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-6.1:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-6.1:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c1cec4dad96b5e49c2b7680f7246acf58d4c87da
X-Osstest-Versions-That:
    linux=c18e82d3ee4426dd73eaa5550ac54b8bf01133cd
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 27 Jul 2024 20:00:39 +0000

flight 187026 linux-6.1 real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187026/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 187002
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 187002
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 187002
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 187002
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 187002
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 187002
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                c1cec4dad96b5e49c2b7680f7246acf58d4c87da
baseline version:
 linux                c18e82d3ee4426dd73eaa5550ac54b8bf01133cd

Last test of basis   187002  2024-07-25 08:13:58 Z    2 days
Testing same since   187026  2024-07-27 09:43:41 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Deucher <alexander.deucher@amd.com>
  Andrew Morton <akpm@linux-foundation.org>
  Bjorn Andersson <andersson@kernel.org>
  Chao Yu <chao@kernel.org>
  Christian Brauner <brauner@kernel.org>
  ChromeOS CQ Test <chromeos-kernel-stable-merge@google.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Dave Kleikamp <dave.kleikamp@oracle.com>
  David Sterba <dsterba@suse.com>
  Dongli Zhang <dongli.zhang@oracle.com>
  Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
  Filipe Manana <fdmanana@suse.com>
  Florian Fainelli <florian.fainelli@broadcom.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Jaegeuk Kim <jaegeuk@kernel.org>
  Jakub Kicinski <kuba@kernel.org>
  Jann Horn <jannh@google.com>
  Jon Hunter <jonathanh@nvidia.com>
  Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
  Krishna Kurapati <quic_kriskura@quicinc.com>
  lei lu <llfamsec@gmail.com>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Mark Brown <broonie@kernel.org>
  Pavel Machek (CIP) <pavel@denx.de>
  Ron Economos <re@w6rz.net>
  SeongJae Park <sj@kernel.org>
  Sergio González Collado <sergio.collado@gmail.com>
  Seunghun Han <kkamagui@gmail.com>
  Shengjiu Wang <shengjiu.wang@nxp.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Si-Wei Liu <si-wei.liu@oracle.com>
  Takashi Iwai <tiwai@suse.de>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

hint: The 'hooks/update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-receive' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The 'hooks/post-update' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
To xenbits.xen.org:/home/xen/git/linux-pvops.git
   c18e82d3ee442..c1cec4dad96b5  c1cec4dad96b5e49c2b7680f7246acf58d4c87da -> tested/linux-6.1


From xen-devel-bounces@lists.xenproject.org Sat Jul 27 20:07:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 27 Jul 2024 20:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766006.1176577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXnhP-0007yB-US; Sat, 27 Jul 2024 20:07:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766006.1176577; Sat, 27 Jul 2024 20:07: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 1sXnhP-0007y4-QX; Sat, 27 Jul 2024 20:07:27 +0000
Received: by outflank-mailman (input) for mailman id 766006;
 Sat, 27 Jul 2024 20:07:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=e1dS=O3=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1sXnhO-0007xy-W9
 for xen-devel@lists.xenproject.org; Sat, 27 Jul 2024 20:07:27 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d69ec25f-4c53-11ef-8776-851b0ebba9a2;
 Sat, 27 Jul 2024 22:07:24 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 4935661199;
 Sat, 27 Jul 2024 20:07:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 1C1EEC4AF0B;
 Sat, 27 Jul 2024 20:07:23 +0000 (UTC)
Received: from aws-us-west-2-korg-oddjob-1.ci.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by aws-us-west-2-korg-oddjob-1.ci.codeaurora.org (Postfix) with ESMTP id
 119CEC43601; Sat, 27 Jul 2024 20:07: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: d69ec25f-4c53-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722110843;
	bh=GXzX7Bh5FzfCbOvFuuUV+xdEP1fi8kCBTU+0qCZVGU0=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=YuhiFf4ZtQKWzDis2s6TEAfg++0Q8AgWlKTBjZNUExObaZBg1hk+4hHkk7TRvYenL
	 3pnmltXbesEl6jn5uzKv3BlOEMKXXFmM1aT1MLveBJUu8IpLoSYakG2OE749ay6ywT
	 1b9HGnrOq7agz3Q6fAwC1fBJQMMNCZo/YSjeQQlQ96fdxWf4Qo2TPg0npca3vLIRir
	 D+mCZlK6cQbyCT5YxYAgb3rg8KUFMXiQNf9DgDuvlscibNLHQMj0QVTZJkdzTuS6i9
	 zBjxTs0ggIg3ibIlGF70T5/y6RxGKZrodTfjJyrwjOhezPUJ2MKptjApG38qPEib5Y
	 2oxQkfLOhUH4Q==
Subject: Re: [GIT PULL] xen: branch for v6.11-rc1 take 2
From: pr-tracker-bot@kernel.org
In-Reply-To: <20240726095758.15879-1-jgross@suse.com>
References: <20240726095758.15879-1-jgross@suse.com>
X-PR-Tracked-List-Id: <linux-kernel.vger.kernel.org>
X-PR-Tracked-Message-Id: <20240726095758.15879-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.11-rc1a-tag
X-PR-Tracked-Commit-Id: 4c006734898a113a64a528027274a571b04af95a
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: c17f1224b8d79339e9f2156fdf2966281cdb31df
Message-Id: <172211084306.16614.4055916101052089743.pr-tracker-bot@kernel.org>
Date: Sat, 27 Jul 2024 20:07:23 +0000
To: Juergen Gross <jgross@suse.com>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, sstabellini@kernel.org

The pull request you sent on Fri, 26 Jul 2024 11:57:58 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.11-rc1a-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/c17f1224b8d79339e9f2156fdf2966281cdb31df

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Sun Jul 28 00:48:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 00:48:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766021.1176587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXs5O-0007Q3-8U; Sun, 28 Jul 2024 00:48:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766021.1176587; Sun, 28 Jul 2024 00: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 1sXs5O-0007Pw-5M; Sun, 28 Jul 2024 00:48:30 +0000
Received: by outflank-mailman (input) for mailman id 766021;
 Sun, 28 Jul 2024 00:48:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXs5N-0007Pm-9U; Sun, 28 Jul 2024 00:48:29 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXs5M-0008Cw-Sf; Sun, 28 Jul 2024 00:48:28 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXs5M-0004vn-C5; Sun, 28 Jul 2024 00:48:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXs5M-0002wX-Bl; Sun, 28 Jul 2024 00:48: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ejYOd2g+oDBqQcoUTpoK6i7Sx2LARLwBQDf4o8J4nKU=; b=nr4ewl87pSABOcy56zPMSeAuYf
	SdmpJjZUi1jlk6ohaNC/Ik6f2TUodOBoc7+bbFwGO/UROB89MMoMkHA01+G+6u+HSbMN8l+iwhu1L
	hrvPJhbH+h3/MJfa/JfVdxNhdKii5iwFQJf0AObQnmps3FDZz6SaNCZuMvdYB6pmFm7M=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187028-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187028: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=3a7e02c040b130b5545e4b115aada7bacd80a2b6
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Jul 2024 00:48:28 +0000

flight 187028 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187028/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-intel  8 xen-boot            fail REGR. vs. 186827
 test-amd64-amd64-dom0pvh-xl-amd  8 xen-boot              fail REGR. vs. 186827
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                3a7e02c040b130b5545e4b115aada7bacd80a2b6
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   11 days
Failing since        186925  2024-07-20 09:44:52 Z    7 days   17 attempts
Testing same since   187020  2024-07-27 01:44:58 Z    0 days    3 attempts

------------------------------------------------------------
1928 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            fail    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 216397 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Jul 28 00:49:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 00:49:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766030.1176597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXs6f-0007vT-Ic; Sun, 28 Jul 2024 00:49:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766030.1176597; Sun, 28 Jul 2024 00: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 1sXs6f-0007vM-FZ; Sun, 28 Jul 2024 00:49:49 +0000
Received: by outflank-mailman (input) for mailman id 766030;
 Sun, 28 Jul 2024 00: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=s8sE=O4=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1sXs6e-0007jx-Qy
 for xen-devel@lists.xenproject.org; Sun, 28 Jul 2024 00:49:48 +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 489da565-4c7b-11ef-bc01-fd08da9f4363;
 Sun, 28 Jul 2024 02:49: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 C62AB611CC;
 Sun, 28 Jul 2024 00:49:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6DAF0C32781;
 Sun, 28 Jul 2024 00:49: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: 489da565-4c7b-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722127784;
	bh=j8O+Y2OWqrxe+aohDyuBzwI56Pv3SBxqYqNA/KrA3H0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=qlCmMoWenmtPyDecSBedOwBkF99XGx6UiCbY2HqJmQEPZdFHXDsWUYq4fjUbElVpo
	 QzfA/EJw1s8QNWyNLF6LJVKAuM0TcsVEgeh2SXyMIc8NgpnJklNOaEv8quUAZnIAjJ
	 U+twF0PG54G0eFdgQYJQXBciIEeDkgDmThRNLG4NIDD/g1EvLj84Hib3LAf2/Lf5tP
	 wnjo0SQ4KLMcciZheEMpHfW9siApxge6bzm7RPEDMQ4306fGq2hCdr0ihOtD23wW24
	 MTX4RLQ8Qu41+C3FxmjcHEunQFQiFJ0Vl4HPQUD2/uJzm5DON6kX33S1js3xvvCKBt
	 jDviTWubr3kqg==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Viresh Kumar <viresh.kumar@linaro.org>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	sstabellini@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 6.10 6/9] xen: privcmd: Switch from mutex to spinlock for irqfds
Date: Sat, 27 Jul 2024 20:49:26 -0400
Message-ID: <20240728004934.1706375-6-sashal@kernel.org>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240728004934.1706375-1-sashal@kernel.org>
References: <20240728004934.1706375-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 6.10.2
Content-Transfer-Encoding: 8bit

From: Viresh Kumar <viresh.kumar@linaro.org>

[ Upstream commit 1c682593096a487fd9aebc079a307ff7a6d054a3 ]

irqfd_wakeup() gets EPOLLHUP, when it is called by
eventfd_release() by way of wake_up_poll(&ctx->wqh, EPOLLHUP), which
gets called under spin_lock_irqsave(). We can't use a mutex here as it
will lead to a deadlock.

Fix it by switching over to a spin lock.

Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/a66d7a7a9001424d432f52a9fc3931a1f345464f.1718703669.git.viresh.kumar@linaro.org
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/privcmd.c | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
index 67dfa47788649..c9c620e32fa8b 100644
--- a/drivers/xen/privcmd.c
+++ b/drivers/xen/privcmd.c
@@ -845,7 +845,7 @@ static long privcmd_ioctl_mmap_resource(struct file *file,
 #ifdef CONFIG_XEN_PRIVCMD_EVENTFD
 /* Irqfd support */
 static struct workqueue_struct *irqfd_cleanup_wq;
-static DEFINE_MUTEX(irqfds_lock);
+static DEFINE_SPINLOCK(irqfds_lock);
 static LIST_HEAD(irqfds_list);
 
 struct privcmd_kernel_irqfd {
@@ -909,9 +909,11 @@ irqfd_wakeup(wait_queue_entry_t *wait, unsigned int mode, int sync, void *key)
 		irqfd_inject(kirqfd);
 
 	if (flags & EPOLLHUP) {
-		mutex_lock(&irqfds_lock);
+		unsigned long flags;
+
+		spin_lock_irqsave(&irqfds_lock, flags);
 		irqfd_deactivate(kirqfd);
-		mutex_unlock(&irqfds_lock);
+		spin_unlock_irqrestore(&irqfds_lock, flags);
 	}
 
 	return 0;
@@ -929,6 +931,7 @@ irqfd_poll_func(struct file *file, wait_queue_head_t *wqh, poll_table *pt)
 static int privcmd_irqfd_assign(struct privcmd_irqfd *irqfd)
 {
 	struct privcmd_kernel_irqfd *kirqfd, *tmp;
+	unsigned long flags;
 	__poll_t events;
 	struct fd f;
 	void *dm_op;
@@ -968,18 +971,18 @@ static int privcmd_irqfd_assign(struct privcmd_irqfd *irqfd)
 	init_waitqueue_func_entry(&kirqfd->wait, irqfd_wakeup);
 	init_poll_funcptr(&kirqfd->pt, irqfd_poll_func);
 
-	mutex_lock(&irqfds_lock);
+	spin_lock_irqsave(&irqfds_lock, flags);
 
 	list_for_each_entry(tmp, &irqfds_list, list) {
 		if (kirqfd->eventfd == tmp->eventfd) {
 			ret = -EBUSY;
-			mutex_unlock(&irqfds_lock);
+			spin_unlock_irqrestore(&irqfds_lock, flags);
 			goto error_eventfd;
 		}
 	}
 
 	list_add_tail(&kirqfd->list, &irqfds_list);
-	mutex_unlock(&irqfds_lock);
+	spin_unlock_irqrestore(&irqfds_lock, flags);
 
 	/*
 	 * Check if there was an event already pending on the eventfd before we
@@ -1011,12 +1014,13 @@ static int privcmd_irqfd_deassign(struct privcmd_irqfd *irqfd)
 {
 	struct privcmd_kernel_irqfd *kirqfd;
 	struct eventfd_ctx *eventfd;
+	unsigned long flags;
 
 	eventfd = eventfd_ctx_fdget(irqfd->fd);
 	if (IS_ERR(eventfd))
 		return PTR_ERR(eventfd);
 
-	mutex_lock(&irqfds_lock);
+	spin_lock_irqsave(&irqfds_lock, flags);
 
 	list_for_each_entry(kirqfd, &irqfds_list, list) {
 		if (kirqfd->eventfd == eventfd) {
@@ -1025,7 +1029,7 @@ static int privcmd_irqfd_deassign(struct privcmd_irqfd *irqfd)
 		}
 	}
 
-	mutex_unlock(&irqfds_lock);
+	spin_unlock_irqrestore(&irqfds_lock, flags);
 
 	eventfd_ctx_put(eventfd);
 
@@ -1073,13 +1077,14 @@ static int privcmd_irqfd_init(void)
 static void privcmd_irqfd_exit(void)
 {
 	struct privcmd_kernel_irqfd *kirqfd, *tmp;
+	unsigned long flags;
 
-	mutex_lock(&irqfds_lock);
+	spin_lock_irqsave(&irqfds_lock, flags);
 
 	list_for_each_entry_safe(kirqfd, tmp, &irqfds_list, list)
 		irqfd_deactivate(kirqfd);
 
-	mutex_unlock(&irqfds_lock);
+	spin_unlock_irqrestore(&irqfds_lock, flags);
 
 	destroy_workqueue(irqfd_cleanup_wq);
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun Jul 28 00:50:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 00:50:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766031.1176607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXs6u-0000Lf-Q5; Sun, 28 Jul 2024 00:50:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766031.1176607; Sun, 28 Jul 2024 00:50:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXs6u-0000LE-NH; Sun, 28 Jul 2024 00:50:04 +0000
Received: by outflank-mailman (input) for mailman id 766031;
 Sun, 28 Jul 2024 00:50: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=s8sE=O4=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1sXs6t-0008Sh-Eu
 for xen-devel@lists.xenproject.org; Sun, 28 Jul 2024 00:50:03 +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 50c24294-4c7b-11ef-8776-851b0ebba9a2;
 Sun, 28 Jul 2024 02:50: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 D2167611D9;
 Sun, 28 Jul 2024 00:49:58 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 71818C32781;
 Sun, 28 Jul 2024 00:49: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: 50c24294-4c7b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722127798;
	bh=cVpANbBpyjABr/uwdE5+zHiR2KnbawAzmIIg/G1xH9g=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=ca62VEKVSZ4du/QbzmQULMpO3q3t0hMzJuNgYpCE0i1wYDiSyh8qjxH8Obx6IPVnB
	 QapihDBV9lZQ5CR5C3F59b3KX6s4PJVcYUuUfOqXFzGmIfSoj4c0HBnnjQqFt/6Yon
	 1kob8PvmVUzqqaQl819z7klVYURh1cbUseZdy4W8t1XRh4r2rS/vhDyz0ztoo7OBkh
	 I6ynsjk6QwOKFzWsAoZULuklXMQXgDqwLR80LJWPEWESMkGGgYdBYC+RQF8O4IIbta
	 3+V0hrH3gHyPJe9iclzOGh7Ggs/GIk326sQUAgeRb/2Mnz3xmR4TrsAV4tVKNLd7yi
	 pjFqR9Zs9yQQA==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Viresh Kumar <viresh.kumar@linaro.org>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	sstabellini@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 6.6 3/3] xen: privcmd: Switch from mutex to spinlock for irqfds
Date: Sat, 27 Jul 2024 20:49:51 -0400
Message-ID: <20240728004952.1707781-3-sashal@kernel.org>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240728004952.1707781-1-sashal@kernel.org>
References: <20240728004952.1707781-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 6.6.43
Content-Transfer-Encoding: 8bit

From: Viresh Kumar <viresh.kumar@linaro.org>

[ Upstream commit 1c682593096a487fd9aebc079a307ff7a6d054a3 ]

irqfd_wakeup() gets EPOLLHUP, when it is called by
eventfd_release() by way of wake_up_poll(&ctx->wqh, EPOLLHUP), which
gets called under spin_lock_irqsave(). We can't use a mutex here as it
will lead to a deadlock.

Fix it by switching over to a spin lock.

Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/a66d7a7a9001424d432f52a9fc3931a1f345464f.1718703669.git.viresh.kumar@linaro.org
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/privcmd.c | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
index da88173bac432..923f064c7e3e9 100644
--- a/drivers/xen/privcmd.c
+++ b/drivers/xen/privcmd.c
@@ -841,7 +841,7 @@ static long privcmd_ioctl_mmap_resource(struct file *file,
 #ifdef CONFIG_XEN_PRIVCMD_IRQFD
 /* Irqfd support */
 static struct workqueue_struct *irqfd_cleanup_wq;
-static DEFINE_MUTEX(irqfds_lock);
+static DEFINE_SPINLOCK(irqfds_lock);
 static LIST_HEAD(irqfds_list);
 
 struct privcmd_kernel_irqfd {
@@ -905,9 +905,11 @@ irqfd_wakeup(wait_queue_entry_t *wait, unsigned int mode, int sync, void *key)
 		irqfd_inject(kirqfd);
 
 	if (flags & EPOLLHUP) {
-		mutex_lock(&irqfds_lock);
+		unsigned long flags;
+
+		spin_lock_irqsave(&irqfds_lock, flags);
 		irqfd_deactivate(kirqfd);
-		mutex_unlock(&irqfds_lock);
+		spin_unlock_irqrestore(&irqfds_lock, flags);
 	}
 
 	return 0;
@@ -925,6 +927,7 @@ irqfd_poll_func(struct file *file, wait_queue_head_t *wqh, poll_table *pt)
 static int privcmd_irqfd_assign(struct privcmd_irqfd *irqfd)
 {
 	struct privcmd_kernel_irqfd *kirqfd, *tmp;
+	unsigned long flags;
 	__poll_t events;
 	struct fd f;
 	void *dm_op;
@@ -964,18 +967,18 @@ static int privcmd_irqfd_assign(struct privcmd_irqfd *irqfd)
 	init_waitqueue_func_entry(&kirqfd->wait, irqfd_wakeup);
 	init_poll_funcptr(&kirqfd->pt, irqfd_poll_func);
 
-	mutex_lock(&irqfds_lock);
+	spin_lock_irqsave(&irqfds_lock, flags);
 
 	list_for_each_entry(tmp, &irqfds_list, list) {
 		if (kirqfd->eventfd == tmp->eventfd) {
 			ret = -EBUSY;
-			mutex_unlock(&irqfds_lock);
+			spin_unlock_irqrestore(&irqfds_lock, flags);
 			goto error_eventfd;
 		}
 	}
 
 	list_add_tail(&kirqfd->list, &irqfds_list);
-	mutex_unlock(&irqfds_lock);
+	spin_unlock_irqrestore(&irqfds_lock, flags);
 
 	/*
 	 * Check if there was an event already pending on the eventfd before we
@@ -1007,12 +1010,13 @@ static int privcmd_irqfd_deassign(struct privcmd_irqfd *irqfd)
 {
 	struct privcmd_kernel_irqfd *kirqfd;
 	struct eventfd_ctx *eventfd;
+	unsigned long flags;
 
 	eventfd = eventfd_ctx_fdget(irqfd->fd);
 	if (IS_ERR(eventfd))
 		return PTR_ERR(eventfd);
 
-	mutex_lock(&irqfds_lock);
+	spin_lock_irqsave(&irqfds_lock, flags);
 
 	list_for_each_entry(kirqfd, &irqfds_list, list) {
 		if (kirqfd->eventfd == eventfd) {
@@ -1021,7 +1025,7 @@ static int privcmd_irqfd_deassign(struct privcmd_irqfd *irqfd)
 		}
 	}
 
-	mutex_unlock(&irqfds_lock);
+	spin_unlock_irqrestore(&irqfds_lock, flags);
 
 	eventfd_ctx_put(eventfd);
 
@@ -1069,13 +1073,14 @@ static int privcmd_irqfd_init(void)
 static void privcmd_irqfd_exit(void)
 {
 	struct privcmd_kernel_irqfd *kirqfd, *tmp;
+	unsigned long flags;
 
-	mutex_lock(&irqfds_lock);
+	spin_lock_irqsave(&irqfds_lock, flags);
 
 	list_for_each_entry_safe(kirqfd, tmp, &irqfds_list, list)
 		irqfd_deactivate(kirqfd);
 
-	mutex_unlock(&irqfds_lock);
+	spin_unlock_irqrestore(&irqfds_lock, flags);
 
 	destroy_workqueue(irqfd_cleanup_wq);
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun Jul 28 01:20:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 01:20:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766048.1176617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXsaF-0008Gj-6J; Sun, 28 Jul 2024 01:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766048.1176617; Sun, 28 Jul 2024 01:20: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 1sXsaF-0008Gc-3a; Sun, 28 Jul 2024 01:20:23 +0000
Received: by outflank-mailman (input) for mailman id 766048;
 Sun, 28 Jul 2024 01:20:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXsaD-0008GQ-AG; Sun, 28 Jul 2024 01:20:21 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXsaC-00030v-Ty; Sun, 28 Jul 2024 01:20:20 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXsaC-0005hm-KL; Sun, 28 Jul 2024 01:20:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXsaC-0004G1-Jr; Sun, 28 Jul 2024 01:20: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=EdVfNIMrTMf8bCAg14f+Quur1JjUrhUHoIUm7YzuUHs=; b=mlQokv4lUdFyx0SpmIsSp5Jq5r
	gex4CIfNP929pFCQezQ98fwhwGe97bGicJ9WlaT59c4Xmu4V664Q8jnvo80AT28OHI4aQ5IqFaLYc
	dX4qWJ9U1FtTWEUqGOyls4m0s3/Wyb23ZKHVhTw7hcxAHghZnHhoYjCggml1StwU4OWM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187030-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187030: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=b7f963d570ec5e27bc04d546372c6fc47e4f3b17
X-Osstest-Versions-That:
    ovmf=52eb643d0785a19c7f1c107d390c7bb52a79789e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Jul 2024 01:20:20 +0000

flight 187030 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187030/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 b7f963d570ec5e27bc04d546372c6fc47e4f3b17
baseline version:
 ovmf                 52eb643d0785a19c7f1c107d390c7bb52a79789e

Last test of basis   187029  2024-07-27 16:13:52 Z    0 days
Testing same since   187030  2024-07-27 23:44:56 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Bret Barkelew <brbarkel@microsoft.com>
  Oliver Smith-Denny <osde@linux.microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   52eb643d07..b7f963d570  b7f963d570ec5e27bc04d546372c6fc47e4f3b17 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sun Jul 28 07:52:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 07:52:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766072.1176626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sXyhn-0003vN-Py; Sun, 28 Jul 2024 07:52:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766072.1176626; Sun, 28 Jul 2024 07: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 1sXyhn-0003vG-NW; Sun, 28 Jul 2024 07:52:35 +0000
Received: by outflank-mailman (input) for mailman id 766072;
 Sun, 28 Jul 2024 07:52:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXyhm-0003v6-Rw; Sun, 28 Jul 2024 07:52:34 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXyhm-0002Vy-K0; Sun, 28 Jul 2024 07:52:34 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sXyhm-0005OZ-3O; Sun, 28 Jul 2024 07:52:34 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sXyhm-0002y7-1n; Sun, 28 Jul 2024 07:52:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4ySJ0B/C3dC7I/bpKbNEQeB9McevcuzSwkNAXDCk4rg=; b=EGkaFYTZ6Pt4Y8Vd6RwUg1vkjG
	/mOzLQnbjBenx/SaBROqLJhBDzF06gqINdKrX8/0nTndlSgcp2lHN3VLC3rL5yypwFRNeyzJ4N70j
	CEpSAsOw0dZhq0FSelABS2tF240RJ0B0wV0CCRLKloOu7eJyXgN/+1f+c+3rqh1mpewY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187031-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187031: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-libvirt-pair:guest-migrate/dst_host/src_host/debian.repeat:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=6342649c33d232c4e7ac690b98bcddaab10a4d8c
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Jul 2024 07:52:34 +0000

flight 187031 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187031/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-amd64-amd64-libvirt-pair 28 guest-migrate/dst_host/src_host/debian.repeat fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                6342649c33d232c4e7ac690b98bcddaab10a4d8c
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   11 days
Failing since        186925  2024-07-20 09:44:52 Z    7 days   18 attempts
Testing same since   187031  2024-07-28 01:12:23 Z    0 days    1 attempts

------------------------------------------------------------
1981 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                fail    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 220948 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Jul 28 11:17:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 11:17:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766103.1176637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sY1tK-0003M8-PZ; Sun, 28 Jul 2024 11:16:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766103.1176637; Sun, 28 Jul 2024 11:16:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sY1tK-0003M1-MD; Sun, 28 Jul 2024 11:16:42 +0000
Received: by outflank-mailman (input) for mailman id 766103;
 Sun, 28 Jul 2024 11:16:41 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sY1tJ-0003Lr-Ql; Sun, 28 Jul 2024 11:16:41 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sY1tJ-0006S2-J7; Sun, 28 Jul 2024 11:16:41 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sY1tI-0004Z9-W2; Sun, 28 Jul 2024 11:16:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sY1tI-0006bP-Va; Sun, 28 Jul 2024 11:16: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Am/djzKa0cdmuPKzTUFtgcGubuWGA15BymBbs0skY5E=; b=PHq355l1meBTd17oI116f/Cjhm
	Vud3lsCQ1U7+5uzTSA/mKvk9/CQCFlJ0I7TxBaMg4VvMKM+Qu1JP+fyK/McLLAsT8fFn4Q7e+1IfQ
	UpDLB7cmhAry4Q2HVU4NYb0eiC8ld+UIJxqePCckMtY3DxkdWbNBjnBWgpIiiALrO+CQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187032-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 187032: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-qemuu-freebsd11-amd64:guest-localmigrate/x10:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
X-Osstest-Versions-That:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Jul 2024 11:16:40 +0000

flight 187032 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187032/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-qemuu-freebsd11-amd64 19 guest-localmigrate/x10 fail in 187022 pass in 187032
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 187022

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 187022
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 187022
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 187022
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 187022
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 187022
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 187022
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847
baseline version:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847

Last test of basis   187032  2024-07-28 01:53:47 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sun Jul 28 12:46:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 12:46:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766116.1176647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sY3ID-0005gc-5v; Sun, 28 Jul 2024 12:46:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766116.1176647; Sun, 28 Jul 2024 12: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 1sY3ID-0005gV-32; Sun, 28 Jul 2024 12:46:29 +0000
Received: by outflank-mailman (input) for mailman id 766116;
 Sun, 28 Jul 2024 12:46: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=h+eR=O4=kernel.org=rppt@srs-se1.protection.inumbo.net>)
 id 1sY3IC-0005gJ-1W
 for xen-devel@lists.xenproject.org; Sun, 28 Jul 2024 12:46:28 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6351a5db-4cdf-11ef-8776-851b0ebba9a2;
 Sun, 28 Jul 2024 14:46:21 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id C28A1CE0225;
 Sun, 28 Jul 2024 12:46:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC8AAC116B1;
 Sun, 28 Jul 2024 12:46: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: 6351a5db-4cdf-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722170777;
	bh=bPWnkShYzyS23RMpEdqVZDxd8gOdgkm8rn5MDKi64Wk=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=HRxaihC902l7wjlV17ey9HedBqpC8su5ukZaja6H29JbUmtNuU9hQXMTH8WAr2QzQ
	 ZzmfQGrmtefLPNZjzUUgCMMiA/ymps0JYfxTG+ry/DiXmjB0sl5qzkd/tE+ZFBvQM0
	 W9q2r80VFIdoz1ZX0OWN11lu0UBfKBlz3BW52Kqjkqo5yBlw7bQX88CwWy5XSpM0UD
	 QgFYpVz25Ad81W4Sa+NHu0U2WZeL9XZ8hXfL5xURD/H3i7GlDt5NY1YLBoYsWVgt11
	 yY/xOzl4Joi00MFX8OSm8OqUDtOeP9j6Y8wYqsbk2rgO4vBHdMxgpjMAK7QPSAgPXN
	 PnLr9yZcXV6Rw==
Date: Sun, 28 Jul 2024 15:45:53 +0300
From: Mike Rapoport <rppt@kernel.org>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-arm-kernel@lists.infradead.org, x86@kernel.org,
	linuxppc-dev@lists.ozlabs.org, xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Oscar Salvador <osalvador@suse.de>, Peter Xu <peterx@redhat.com>,
	Muchun Song <muchun.song@linux.dev>,
	Russell King <linux@armlinux.org.uk>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	"Naveen N. Rao" <naveen.n.rao@linux.ibm.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>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>
Subject: Re: [PATCH v1 1/3] mm: turn USE_SPLIT_PTE_PTLOCKS /
 USE_SPLIT_PTE_PTLOCKS into Kconfig options
Message-ID: <ZqY9gRujwqOGuvW1@kernel.org>
References: <20240726150728.3159964-1-david@redhat.com>
 <20240726150728.3159964-2-david@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240726150728.3159964-2-david@redhat.com>

On Fri, Jul 26, 2024 at 05:07:26PM +0200, David Hildenbrand wrote:
> Let's clean that up a bit and prepare for depending on
> CONFIG_SPLIT_PMD_PTLOCKS in other Kconfig options.
> 
> More cleanups would be reasonable (like the arch-specific "depends on"
> for CONFIG_SPLIT_PTE_PTLOCKS), but we'll leave that for another day.
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>

Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>

> ---
>  arch/arm/mm/fault-armv.c      |  6 +++---
>  arch/x86/xen/mmu_pv.c         |  7 ++++---
>  include/linux/mm.h            |  8 ++++----
>  include/linux/mm_types.h      |  2 +-
>  include/linux/mm_types_task.h |  3 ---
>  kernel/fork.c                 |  4 ++--
>  mm/Kconfig                    | 18 +++++++++++-------
>  mm/memory.c                   |  2 +-
>  8 files changed, 26 insertions(+), 24 deletions(-)
> 
> diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c
> index 2286c2ea60ec4..831793cd6ff94 100644
> --- a/arch/arm/mm/fault-armv.c
> +++ b/arch/arm/mm/fault-armv.c
> @@ -61,7 +61,7 @@ static int do_adjust_pte(struct vm_area_struct *vma, unsigned long address,
>  	return ret;
>  }
>  
> -#if USE_SPLIT_PTE_PTLOCKS
> +#if defined(CONFIG_SPLIT_PTE_PTLOCKS)
>  /*
>   * If we are using split PTE locks, then we need to take the page
>   * lock here.  Otherwise we are using shared mm->page_table_lock
> @@ -80,10 +80,10 @@ static inline void do_pte_unlock(spinlock_t *ptl)
>  {
>  	spin_unlock(ptl);
>  }
> -#else /* !USE_SPLIT_PTE_PTLOCKS */
> +#else /* !defined(CONFIG_SPLIT_PTE_PTLOCKS) */
>  static inline void do_pte_lock(spinlock_t *ptl) {}
>  static inline void do_pte_unlock(spinlock_t *ptl) {}
> -#endif /* USE_SPLIT_PTE_PTLOCKS */
> +#endif /* defined(CONFIG_SPLIT_PTE_PTLOCKS) */
>  
>  static int adjust_pte(struct vm_area_struct *vma, unsigned long address,
>  	unsigned long pfn)
> diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
> index f1ce39d6d32cb..f4a316894bbb4 100644
> --- a/arch/x86/xen/mmu_pv.c
> +++ b/arch/x86/xen/mmu_pv.c
> @@ -665,7 +665,7 @@ static spinlock_t *xen_pte_lock(struct page *page, struct mm_struct *mm)
>  {
>  	spinlock_t *ptl = NULL;
>  
> -#if USE_SPLIT_PTE_PTLOCKS
> +#if defined(CONFIG_SPLIT_PTE_PTLOCKS)
>  	ptl = ptlock_ptr(page_ptdesc(page));
>  	spin_lock_nest_lock(ptl, &mm->page_table_lock);
>  #endif
> @@ -1553,7 +1553,8 @@ static inline void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn,
>  
>  		__set_pfn_prot(pfn, PAGE_KERNEL_RO);
>  
> -		if (level == PT_PTE && USE_SPLIT_PTE_PTLOCKS && !pinned)
> +		if (level == PT_PTE && IS_ENABLED(CONFIG_SPLIT_PTE_PTLOCKS) &&
> +		    !pinned)
>  			__pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
>  
>  		xen_mc_issue(XEN_LAZY_MMU);
> @@ -1581,7 +1582,7 @@ static inline void xen_release_ptpage(unsigned long pfn, unsigned level)
>  	if (pinned) {
>  		xen_mc_batch();
>  
> -		if (level == PT_PTE && USE_SPLIT_PTE_PTLOCKS)
> +		if (level == PT_PTE && IS_ENABLED(CONFIG_SPLIT_PTE_PTLOCKS))
>  			__pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, pfn);
>  
>  		__set_pfn_prot(pfn, PAGE_KERNEL);
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 0472a5090b180..dff43101572ec 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -2843,7 +2843,7 @@ static inline void pagetable_free(struct ptdesc *pt)
>  	__free_pages(page, compound_order(page));
>  }
>  
> -#if USE_SPLIT_PTE_PTLOCKS
> +#if defined(CONFIG_SPLIT_PTE_PTLOCKS)
>  #if ALLOC_SPLIT_PTLOCKS
>  void __init ptlock_cache_init(void);
>  bool ptlock_alloc(struct ptdesc *ptdesc);
> @@ -2895,7 +2895,7 @@ static inline bool ptlock_init(struct ptdesc *ptdesc)
>  	return true;
>  }
>  
> -#else	/* !USE_SPLIT_PTE_PTLOCKS */
> +#else	/* !defined(CONFIG_SPLIT_PTE_PTLOCKS) */
>  /*
>   * We use mm->page_table_lock to guard all pagetable pages of the mm.
>   */
> @@ -2906,7 +2906,7 @@ static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pte_t *pte)
>  static inline void ptlock_cache_init(void) {}
>  static inline bool ptlock_init(struct ptdesc *ptdesc) { return true; }
>  static inline void ptlock_free(struct ptdesc *ptdesc) {}
> -#endif /* USE_SPLIT_PTE_PTLOCKS */
> +#endif /* defined(CONFIG_SPLIT_PTE_PTLOCKS) */
>  
>  static inline bool pagetable_pte_ctor(struct ptdesc *ptdesc)
>  {
> @@ -2966,7 +2966,7 @@ pte_t *pte_offset_map_nolock(struct mm_struct *mm, pmd_t *pmd,
>  	((unlikely(pmd_none(*(pmd))) && __pte_alloc_kernel(pmd))? \
>  		NULL: pte_offset_kernel(pmd, address))
>  
> -#if USE_SPLIT_PMD_PTLOCKS
> +#if defined(CONFIG_SPLIT_PMD_PTLOCKS)
>  
>  static inline struct page *pmd_pgtable_page(pmd_t *pmd)
>  {
> diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
> index 4854249792545..165c58b12ccc9 100644
> --- a/include/linux/mm_types.h
> +++ b/include/linux/mm_types.h
> @@ -947,7 +947,7 @@ struct mm_struct {
>  #ifdef CONFIG_MMU_NOTIFIER
>  		struct mmu_notifier_subscriptions *notifier_subscriptions;
>  #endif
> -#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
> +#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !defined(CONFIG_SPLIT_PMD_PTLOCKS)
>  		pgtable_t pmd_huge_pte; /* protected by page_table_lock */
>  #endif
>  #ifdef CONFIG_NUMA_BALANCING
> diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h
> index a2f6179b672b8..bff5706b76e14 100644
> --- a/include/linux/mm_types_task.h
> +++ b/include/linux/mm_types_task.h
> @@ -16,9 +16,6 @@
>  #include <asm/tlbbatch.h>
>  #endif
>  
> -#define USE_SPLIT_PTE_PTLOCKS	(NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS)
> -#define USE_SPLIT_PMD_PTLOCKS	(USE_SPLIT_PTE_PTLOCKS && \
> -		IS_ENABLED(CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK))
>  #define ALLOC_SPLIT_PTLOCKS	(SPINLOCK_SIZE > BITS_PER_LONG/8)
>  
>  /*
> diff --git a/kernel/fork.c b/kernel/fork.c
> index a8362c26ebcb0..216ce9ba4f4e6 100644
> --- a/kernel/fork.c
> +++ b/kernel/fork.c
> @@ -832,7 +832,7 @@ static void check_mm(struct mm_struct *mm)
>  		pr_alert("BUG: non-zero pgtables_bytes on freeing mm: %ld\n",
>  				mm_pgtables_bytes(mm));
>  
> -#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
> +#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !defined(CONFIG_SPLIT_PMD_PTLOCKS)
>  	VM_BUG_ON_MM(mm->pmd_huge_pte, mm);
>  #endif
>  }
> @@ -1276,7 +1276,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p,
>  	RCU_INIT_POINTER(mm->exe_file, NULL);
>  	mmu_notifier_subscriptions_init(mm);
>  	init_tlb_flush_pending(mm);
> -#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
> +#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !defined(CONFIG_SPLIT_PMD_PTLOCKS)
>  	mm->pmd_huge_pte = NULL;
>  #endif
>  	mm_init_uprobes_state(mm);
> diff --git a/mm/Kconfig b/mm/Kconfig
> index b72e7d040f789..7b716ac802726 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -585,17 +585,21 @@ config ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE
>  # at the same time (e.g. copy_page_range()).
>  # DEBUG_SPINLOCK and DEBUG_LOCK_ALLOC spinlock_t also enlarge struct page.
>  #
> -config SPLIT_PTLOCK_CPUS
> -	int
> -	default "999999" if !MMU
> -	default "999999" if ARM && !CPU_CACHE_VIPT
> -	default "999999" if PARISC && !PA20
> -	default "999999" if SPARC32
> -	default "4"
> +config SPLIT_PTE_PTLOCKS
> +	def_bool y
> +	depends on MMU
> +	depends on NR_CPUS >= 4
> +	depends on !ARM || CPU_CACHE_VIPT
> +	depends on !PARISC || PA20
> +	depends on !SPARC32
>  
>  config ARCH_ENABLE_SPLIT_PMD_PTLOCK
>  	bool
>  
> +config SPLIT_PMD_PTLOCKS
> +	def_bool y
> +	depends on SPLIT_PTE_PTLOCKS && ARCH_ENABLE_SPLIT_PMD_PTLOCK
> +
>  #
>  # support for memory balloon
>  config MEMORY_BALLOON
> diff --git a/mm/memory.c b/mm/memory.c
> index 833d2cad6eb29..714589582fe15 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -6559,7 +6559,7 @@ long copy_folio_from_user(struct folio *dst_folio,
>  }
>  #endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */
>  
> -#if USE_SPLIT_PTE_PTLOCKS && ALLOC_SPLIT_PTLOCKS
> +#if defined(CONFIG_SPLIT_PTE_PTLOCKS) && ALLOC_SPLIT_PTLOCKS
>  
>  static struct kmem_cache *page_ptl_cachep;
>  
> -- 
> 2.45.2
> 
> 

-- 
Sincerely yours,
Mike.


From xen-devel-bounces@lists.xenproject.org Sun Jul 28 12:47:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 12:47:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766124.1176656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sY3JU-0006DC-Eo; Sun, 28 Jul 2024 12:47:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766124.1176656; Sun, 28 Jul 2024 12:47:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sY3JU-0006D5-CF; Sun, 28 Jul 2024 12:47:48 +0000
Received: by outflank-mailman (input) for mailman id 766124;
 Sun, 28 Jul 2024 12:47:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h+eR=O4=kernel.org=rppt@srs-se1.protection.inumbo.net>)
 id 1sY3JT-0006Cz-H6
 for xen-devel@lists.xenproject.org; Sun, 28 Jul 2024 12:47:47 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9583d2e5-4cdf-11ef-bc01-fd08da9f4363;
 Sun, 28 Jul 2024 14:47:46 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 1520FCE01FE;
 Sun, 28 Jul 2024 12:47:43 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1214EC116B1;
 Sun, 28 Jul 2024 12:47: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: 9583d2e5-4cdf-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722170862;
	bh=7DAw1bh/7KLG2aowoCQ2qKx/EFyJdeQ1d+TtPaE81w4=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=DKSOfRoyAcagm/ZCjuUtmZe1LP1/m3qOMpkt+Ja038rI7l8A3gAIiS9vTlhyRlcph
	 q9W3Gs/md02my2rqjor8RoVRuhKeRng2CLjeuQpPwElHl4VIJ1PE8mhHy3nlfCsgPo
	 diba//3nG7207nq7Hoz29mmSrKFjel41IEd1K+OUbqJ9ji9TOMZcPpMQo+WMhANpud
	 6Q847BLXlRgpdKyKpfoIprH/01r3UrVLIMjJqRG5P1sgBD0Z0nzmDaGOzqSAcDzpJq
	 76zEEQv9n49HVtrhliR31CW/giJaLvR0UAqUXFsYST53aU5H48QgjliObfxaz9+zTj
	 RELQP2y7z3fMw==
Date: Sun, 28 Jul 2024 15:47:19 +0300
From: Mike Rapoport <rppt@kernel.org>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-arm-kernel@lists.infradead.org, x86@kernel.org,
	linuxppc-dev@lists.ozlabs.org, xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Oscar Salvador <osalvador@suse.de>, Peter Xu <peterx@redhat.com>,
	Muchun Song <muchun.song@linux.dev>,
	Russell King <linux@armlinux.org.uk>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	"Naveen N. Rao" <naveen.n.rao@linux.ibm.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>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>
Subject: Re: [PATCH v1 2/3] mm/hugetlb: enforce that PMD PT sharing has split
 PMD PT locks
Message-ID: <ZqY918UEsmkbIGOn@kernel.org>
References: <20240726150728.3159964-1-david@redhat.com>
 <20240726150728.3159964-3-david@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240726150728.3159964-3-david@redhat.com>

On Fri, Jul 26, 2024 at 05:07:27PM +0200, David Hildenbrand wrote:
> Sharing page tables between processes but falling back to per-MM page
> table locks cannot possibly work.
> 
> So, let's make sure that we do have split PMD locks by adding a new
> Kconfig option and letting that depend on CONFIG_SPLIT_PMD_PTLOCKS.
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>

Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>

> ---
>  fs/Kconfig              | 4 ++++
>  include/linux/hugetlb.h | 5 ++---
>  mm/hugetlb.c            | 8 ++++----
>  3 files changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/fs/Kconfig b/fs/Kconfig
> index a46b0cbc4d8f6..0e4efec1d92e6 100644
> --- a/fs/Kconfig
> +++ b/fs/Kconfig
> @@ -288,6 +288,10 @@ config HUGETLB_PAGE_OPTIMIZE_VMEMMAP
>  	depends on ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP
>  	depends on SPARSEMEM_VMEMMAP
>  
> +config HUGETLB_PMD_PAGE_TABLE_SHARING
> +	def_bool HUGETLB_PAGE
> +	depends on ARCH_WANT_HUGE_PMD_SHARE && SPLIT_PMD_PTLOCKS
> +
>  config ARCH_HAS_GIGANTIC_PAGE
>  	bool
>  
> diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
> index da800e56fe590..4d2f3224ff027 100644
> --- a/include/linux/hugetlb.h
> +++ b/include/linux/hugetlb.h
> @@ -1243,7 +1243,7 @@ static inline __init void hugetlb_cma_reserve(int order)
>  }
>  #endif
>  
> -#ifdef CONFIG_ARCH_WANT_HUGE_PMD_SHARE
> +#ifdef CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING
>  static inline bool hugetlb_pmd_shared(pte_t *pte)
>  {
>  	return page_count(virt_to_page(pte)) > 1;
> @@ -1279,8 +1279,7 @@ bool __vma_private_lock(struct vm_area_struct *vma);
>  static inline pte_t *
>  hugetlb_walk(struct vm_area_struct *vma, unsigned long addr, unsigned long sz)
>  {
> -#if defined(CONFIG_HUGETLB_PAGE) && \
> -	defined(CONFIG_ARCH_WANT_HUGE_PMD_SHARE) && defined(CONFIG_LOCKDEP)
> +#if defined(CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING) && defined(CONFIG_LOCKDEP)
>  	struct hugetlb_vma_lock *vma_lock = vma->vm_private_data;
>  
>  	/*
> diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> index 0858a18272073..c4d94e122c41f 100644
> --- a/mm/hugetlb.c
> +++ b/mm/hugetlb.c
> @@ -7211,7 +7211,7 @@ long hugetlb_unreserve_pages(struct inode *inode, long start, long end,
>  	return 0;
>  }
>  
> -#ifdef CONFIG_ARCH_WANT_HUGE_PMD_SHARE
> +#ifdef CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING
>  static unsigned long page_table_shareable(struct vm_area_struct *svma,
>  				struct vm_area_struct *vma,
>  				unsigned long addr, pgoff_t idx)
> @@ -7373,7 +7373,7 @@ int huge_pmd_unshare(struct mm_struct *mm, struct vm_area_struct *vma,
>  	return 1;
>  }
>  
> -#else /* !CONFIG_ARCH_WANT_HUGE_PMD_SHARE */
> +#else /* !CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING */
>  
>  pte_t *huge_pmd_share(struct mm_struct *mm, struct vm_area_struct *vma,
>  		      unsigned long addr, pud_t *pud)
> @@ -7396,7 +7396,7 @@ bool want_pmd_share(struct vm_area_struct *vma, unsigned long addr)
>  {
>  	return false;
>  }
> -#endif /* CONFIG_ARCH_WANT_HUGE_PMD_SHARE */
> +#endif /* CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING */
>  
>  #ifdef CONFIG_ARCH_WANT_GENERAL_HUGETLB
>  pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma,
> @@ -7494,7 +7494,7 @@ unsigned long hugetlb_mask_last_page(struct hstate *h)
>  /* See description above.  Architectures can provide their own version. */
>  __weak unsigned long hugetlb_mask_last_page(struct hstate *h)
>  {
> -#ifdef CONFIG_ARCH_WANT_HUGE_PMD_SHARE
> +#ifdef CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING
>  	if (huge_page_size(h) == PMD_SIZE)
>  		return PUD_SIZE - PMD_SIZE;
>  #endif
> -- 
> 2.45.2
> 
> 

-- 
Sincerely yours,
Mike.


From xen-devel-bounces@lists.xenproject.org Sun Jul 28 15:36:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 15:36:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766141.1176666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sY5wy-0002ne-Uj; Sun, 28 Jul 2024 15:36:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766141.1176666; Sun, 28 Jul 2024 15:36:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sY5wy-0002nX-S3; Sun, 28 Jul 2024 15:36:44 +0000
Received: by outflank-mailman (input) for mailman id 766141;
 Sun, 28 Jul 2024 15:36:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sY5wx-0002nN-20; Sun, 28 Jul 2024 15:36:43 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sY5ww-0002b2-Ni; Sun, 28 Jul 2024 15:36:42 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sY5ww-0003Lj-3S; Sun, 28 Jul 2024 15:36:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sY5ww-00026p-2v; Sun, 28 Jul 2024 15:36:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=GlcptYKPx8HbCkqhatbdytVpAG4/m4DuIr3yw1AB7WQ=; b=vPEDyhu9nfUXOmv4xPrYwiaDng
	OsdWHr6rskufM6zA4R1CPXaxkUxlIOXlE48DY4jmvOsqEV+Wu+QYXG3fgSQ3vQjrhI6BBJ0A5QvT8
	Ph/3ZgwaO0D5HSVRlpI2lm3ic62kMByqG0mseH+wfG78gnOZx9m4DMr3WijmZDt0FZEk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187033-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187033: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5437f30d3458ad36e83ab96088d490ebfee844d8
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Jul 2024 15:36:42 +0000

flight 187033 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187033/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                5437f30d3458ad36e83ab96088d490ebfee844d8
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   11 days
Failing since        186925  2024-07-20 09:44:52 Z    8 days   19 attempts
Testing same since   187033  2024-07-28 07:57:27 Z    0 days    1 attempts

------------------------------------------------------------
1981 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 221116 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Jul 28 20:52:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 20:52:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766190.1176693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYAs4-00011B-QO; Sun, 28 Jul 2024 20:52:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766190.1176693; Sun, 28 Jul 2024 20:52: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 1sYAs4-000114-Mp; Sun, 28 Jul 2024 20:52:00 +0000
Received: by outflank-mailman (input) for mailman id 766190;
 Sun, 28 Jul 2024 20:51: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=q4sB=O4=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1sYAs3-00010y-7s
 for xen-devel@lists.xenproject.org; Sun, 28 Jul 2024 20:51:59 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3958f3d5-4d23-11ef-8776-851b0ebba9a2;
 Sun, 28 Jul 2024 22:51:55 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5a10835480bso4369815a12.2
 for <xen-devel@lists.xenproject.org>; Sun, 28 Jul 2024 13:51: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: 3958f3d5-4d23-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722199915; x=1722804715; 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=HeLS4wZZDHXd4WtWxolh7E5Rm8nNRZwiEQOp6tPVS+4=;
        b=Vh2MEjaFKO54+9r+hW5SokFZUV7HSYC7Io4rbsRMuVnnuv2UTcwJhWoPKuKm6dlx7Z
         iczdAmFchDlZytREmpO/RIuCq+XEvTHf7JbmT/+dUgMK2v3D9mOvkd4nVI+5qfH8XtSE
         iGCHgGJBSr7eMwW0WIDIYzKtzrP5Sart/orjgCK5Lf5CforbSmeRHa2CLW3NtXKxV02T
         hKf3Fc7WwuHebOg5KC360ojrkn0bL2+ct4THtjsN+f0w5QrjjrhJSt212ClOjr2UY0Yf
         kBdz4XUpgsVCjrWywxHbMXVMgbg0W3+eqyvRQUTY5fdDs1e5h4Ex6I5dmkzgPmkv5Id/
         4A4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722199915; x=1722804715;
        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=HeLS4wZZDHXd4WtWxolh7E5Rm8nNRZwiEQOp6tPVS+4=;
        b=C/lxlKDkkcJY0Vrvlqg+mhpYKYoGKPhqisSV9JaUvNFG3XmfnyVb6u3hucM3bYziC8
         7KKjqSlm72qxXbTCjjCWPbiH2HftOjfRPGjrNSC+orBfiTEeQVQhJckFFF42L72f38Wa
         XYEUEuOIFKvk1ydKd0uw5y+FfFcA/QtQkn7yw8MFs8iUHncZGeT1IMelrclZoSN2Pks3
         snqg7ERVvE++OI4aAUXHws4iz3S+ULBHI2G6mOVwqSkT86bdtHturW5Z4kJmk/ww46Kv
         GvCdy4h6W//HTaM9OWFpfrdQbkUL93OlkcErqbbV2qHXxpEXaJCNY9LLNboDBiPYMQXD
         7Jyg==
X-Gm-Message-State: AOJu0YzYuJG+B3DQluhhdJ5nydRkuRfOZVFUsgvnBMXQjq3nJRMrKjps
	ywMTW93yksN1w/MpjZEtD6432YZKtyzbTTH04bJ1T99C3Aa1p5qyQtdd25MG3PeMfDIPzfLQyF1
	ZICJoRO1c+ARP4JwZyg8qmZsoiWY=
X-Google-Smtp-Source: AGHT+IHy0qgVNDHTAdcxW/ih3YW9C2HclFAl+M4UR/jWwBLAD6pewJf96jof4INMTBYZjpclc+9oa18y6+oGwGEfdn0=
X-Received: by 2002:a50:ab11:0:b0:57d:2659:9141 with SMTP id
 4fb4d7f45d1cf-5b022003c65mr3344497a12.24.1722199914595; Sun, 28 Jul 2024
 13:51:54 -0700 (PDT)
MIME-Version: 1.0
References: <20240516021010.3783-1-jandryuk@gmail.com> <ZqJv3rflSUC0Iv1d@l14>
In-Reply-To: <ZqJv3rflSUC0Iv1d@l14>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Sun, 28 Jul 2024 16:51:42 -0400
Message-ID: <CAKf6xpshMJH=kgS+f0ahLqATdLY=J-Ex0nJk97LoU0Q_JntTNQ@mail.gmail.com>
Subject: Re: [PATCH v3] libxl: Enable stubdom cdrom changing
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Jason Andryuk <jason.andryuk@amd.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, 
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross <jgross@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 25, 2024 at 11:31=E2=80=AFAM Anthony PERARD
<anthony.perard@vates.tech> wrote:
>
> On Wed, May 15, 2024 at 10:10:10PM -0400, Jason Andryuk wrote:
> > +static void cdrom_insert_stubdom_parse_fdset_rm(libxl__egc *egc,
> > +                                                libxl__ev_qmp *qmp,
> > +                                                const libxl__json_obje=
ct *resp,
> > +                                                int rc)
> > +{
> > +    EGC_GC;
> > +    libxl__cdrom_insert_state *cis =3D CONTAINER_OF(qmp, *cis, qmp);
> > +    int devid;
> > +    int fdset;
> > +
> > +    if (rc) goto out;
> > +
> > +    /* Only called for qemu-xen/linux stubdom. */
> > +    assert(cis->dm_ver =3D=3D LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
> > +
> > +    devid =3D libxl__device_disk_dev_number(cis->disk->vdev, NULL, NUL=
L);
> > +    fdset =3D query_fdsets_find_fdset(gc, resp, devid);
> > +    if (fdset < 0) {
> > +        rc =3D fdset;
> > +        goto out;
> > +    }
> > +
> > +    LOGD(DEBUG, cis->domid, "Found fdset %d", fdset);
> > +
> > +    libxl__json_object *args =3D NULL;
> > +
> > +    libxl__qmp_param_add_integer(gc, &args, "fdset-id", fdset);
> > +
> > +    cis->qmp.callback =3D cdrom_insert_stubdom_ejected;
> > +
> > +    rc =3D libxl__ev_qmp_send(egc, &cis->qmp, "remove-fd", args);
> > +    if (rc) goto out;
> > +
> > +    return;
> > +
> > + out:
> > +    if (rc =3D=3D ERROR_NOTFOUND) {
> > +        LOGD(DEBUG, cis->domid, "No fdset found - skipping remove-fd")=
;
> > +        cdrom_insert_stubdom_ejected(egc, qmp, resp, 0);
>
> I think technically, cdrom_insert_stubdom_ejected also "must be last",
> like cdrom_insert_done, for one thing it actually call cdrom_insert_done
> in some cases. I think we used "/* must be last */" to indicate that
> resources used by the current chain of callback could be freed,
> including `egc`, `gc`, `ao`. There's quite a few more calls in this
> patch that would benefit from the annotation. But we can live without
> those.

Thanks for the explanation.  I'll add it here, and also in
cdrom_insert_stubdom_disk_add_cb().

> > +    } else {
> > +        cdrom_insert_done(egc, cis, rc); /* must be last */
> > +    }
> > +}
> [...]
> > +static void cdrom_insert_stubdom_parse_fdset(libxl__egc *egc,
> > +                                             libxl__ev_qmp *qmp,
> > +                                             const libxl__json_object =
*response,
> > +                                             int rc)
> > +{
> > +    EGC_GC;
> > +    libxl__cdrom_insert_state *cis =3D CONTAINER_OF(qmp, *cis, qmp);
> > +    int devid;
> > +    int fdset;
> > +
> > +    if (rc) goto out;
> > +
> > +    /* Only called for qemu-xen/linux stubdom. */
> > +    assert(cis->dm_ver =3D=3D LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
> > +
> > +    devid =3D libxl__device_disk_dev_number(cis->disk->vdev, NULL, NUL=
L);
> > +    fdset =3D query_fdsets_find_fdset(gc, response, devid);
> > +    if (fdset < 0) {
> > +        rc =3D fdset;
> > +        goto out;
> > +    }
> > +
> > +    cis->stubdom_fdset =3D fdset;
> > +
> > +    LOGD(DEBUG, cis->domid, "Found fdset %d", cis->stubdom_fdset);
> > +    cdrom_insert_ejected(egc, &cis->qmp, NULL, rc);
> > +    return;
> > +
> > + out:
> > +    if (rc =3D=3D ERROR_NOTFOUND) {
>
> While in the previous function it seems ok to deal with the NOTFOUND
> error in the "out:" path, I don't think it's a good idea here as it is
> an expected part of the workflow of this callback, and not an error.
>
> Could you move setting this timer above again? I guess something like
> that would work fine:
>
>   fdset =3D query_fdsets_find_fdset()
>   if (fdset =3D=3D ERROR_NOTFOUND) {
>     // doesn't exist yet, wait a bit
>     rc =3D libxl__ev_time_register_rel()
>     if (rc) goto out;
>     return
>   }
>   if (fdset < 0) {

I'll go with this approach, and that means ...

>
> > +        rc =3D libxl__ev_time_register_rel(cis->ao, &cis->retry_timer,
> > +                                         cdrom_insert_stubdom_query_fd=
set,
> > +                                         200);
> > +        if (rc) goto out;
>
> That "goto out" after the "out" label makes this even stranger and even
> a potential infinite loop if `rc` would happen to be set to
> ERROR_NOTFOUND again, which I don't think can happen right now.

...this will go away.  I must have re-organized without really
thinking through the result.

> > +        return;
> > +    }
> > +
> > +    cdrom_insert_done(egc, cis, rc); /* must be last */
> > +}
>
>
> Otherwise patch looks good, with just the comment in
> cdrom_insert_stubdom_parse_fdset
> act on: Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

I'll refrain from adding this, since I am making a few more changes.

Thanks for the review.

-Jason


From xen-devel-bounces@lists.xenproject.org Sun Jul 28 21:10:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 21:10:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766198.1176703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYB9a-0003rN-4d; Sun, 28 Jul 2024 21:10:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766198.1176703; Sun, 28 Jul 2024 21:10: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 1sYB9Z-0003rG-W2; Sun, 28 Jul 2024 21:10:05 +0000
Received: by outflank-mailman (input) for mailman id 766198;
 Sun, 28 Jul 2024 21: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=q4sB=O4=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1sYB9Y-0003XQ-Cn
 for xen-devel@lists.xenproject.org; Sun, 28 Jul 2024 21:10:04 +0000
Received: from mail-yb1-xb31.google.com (mail-yb1-xb31.google.com
 [2607:f8b0:4864:20::b31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c11af098-4d25-11ef-bc01-fd08da9f4363;
 Sun, 28 Jul 2024 23:10:02 +0200 (CEST)
Received: by mail-yb1-xb31.google.com with SMTP id
 3f1490d57ef6-e03caab48a2so892288276.1
 for <xen-devel@lists.xenproject.org>; Sun, 28 Jul 2024 14:10:02 -0700 (PDT)
Received: from shine.ofnet.lan ([2601:cb:4001:dd00:842f:4f76:e06d:f6d3])
 by smtp.gmail.com with ESMTPSA id
 3f1490d57ef6-e0b2a28d442sm1558371276.38.2024.07.28.14.09.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 28 Jul 2024 14: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: c11af098-4d25-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722201000; x=1722805800; 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=lLKffgjndy2s0fUcns8QxQV6Ox25xreW9DzUOl5kyBQ=;
        b=YRwKv2znsgD8TSgeGa8ibdiJkCRR+L9HcJBuNIxQDiot19WWx5nez0exC9ViamSRX8
         mSOkrXziPJsMyUKKRh77UT57x7MCptQ6nBVMXti0b2QZ8kExW1+eQ11H/+gc0vy4bKod
         JNURwnZOqm9LbtRktHq26GzP+GB4oe5qahtRxz8gwTOZCXXAlMXCb96PpSd7A3Be+fui
         4ymW5qzOy1+ClceOnSxgEZUKttavpkkzpIoG/yO1uScWGYrxVr3wssiw+hfVjSscCI8U
         jTf/ilFKf1rVgmYCKLbfzio7wdcz+Lsl6HJ+0B7/ERxs9vmxzsJYPYPIwx5Lhkf0GYce
         Ex/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722201000; x=1722805800;
        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=lLKffgjndy2s0fUcns8QxQV6Ox25xreW9DzUOl5kyBQ=;
        b=kLAzMMnqYxaeLPGj6R1Flj097ygAfcvx8onds/NW4swCM3vnVcofj9BCx8uBPvoA8k
         SLMmYtxElxzSf6lyYgkQWDJTQKbZ9cYW8cJ3Q+A3S6nbzogEfzPH7sQpNpnOEXt2bARH
         /rxsKA4oYl+o5vIeRxB1/lRwPkKHADZwba3WzECskEOGZ6LK5fxz+mbC35pvRhPcsyaU
         sioAIgE+8yQ+3ghJOkkNG0xvtykVlxvt7ihLeZOEiOtKLhLtmrEx9PjlY7YPBNGbMVch
         5Ea/wQhES6V0IVlhSSTtllM/RmrHxR4nCNt9+MF1w2TSh3XOvj4YqLoQBYxwkB+PhOfD
         qCAg==
X-Gm-Message-State: AOJu0YxcGyF+52SJP7amGfPahBuMeqjBoyQlyU08JTxlosFzvlRQnBRF
	hhk3pou5cFRTxC8OhhQQ75fj7Cdh2qjI9Z2loVveX5khb1RQMEp4WpcOlA==
X-Google-Smtp-Source: AGHT+IETs/+T56t8FMSucV5Gv9aTo7r04A9wgubhBUqByPu1idXhrDwfIoMCzXgR6MOVAs8YfUEzrg==
X-Received: by 2002:a25:8512:0:b0:e05:cf78:2908 with SMTP id 3f1490d57ef6-e0b55526892mr4253431276.6.1722201000342;
        Sun, 28 Jul 2024 14:10:00 -0700 (PDT)
From: Jason Andryuk <jandryuk@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Jason Andryuk <jandryuk@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v4] libxl: Enable stubdom cdrom changing
Date: Sun, 28 Jul 2024 17:08:56 -0400
Message-Id: <20240728210856.310083-1-jandryuk@gmail.com>
X-Mailer: git-send-email 2.40.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

To change the cd-rom medium, libxl will:
 - QMP eject the medium from QEMU
 - block-detach the old PV disk
 - block-attach the new PV disk
 - QMP change the medium to the new PV disk by fdset-id

The QMP code is reused, and remove and attach are implemented here.

The stubdom must internally handle adding /dev/xvdc to the appropriate
fdset.  libxl in dom0 doesn't see the result of adding to the fdset as
that is internal to the stubdom, but the fdset's opaque fields will be
set to stub-devid:$devid, so libxl can identify it.  $devid is common
between the stubdom and libxl, so it can be identified on both side.
The stubdom will name the device xvdY regardless of the guest name hdY,
sdY, or xvdY, but the stubdom will be assigned the same devid
facilitating lookup.  Because the stubdom add-fd call is asynchronous,
libxl needs to poll query-fdsets to identify when add-fd has completed.

For cd-eject, we still need to attach the empty vbd.  This is necessary
since xenstore is used to determine that hdc exists.  Otherwise after
eject, hdc would be gone and the cd-insert would fail to find the drive
to insert new media.

Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
QEMU inside the stubdom can be sandboxed disallowing opening the devices
by path name, so QMP add-fd is used like with dom0 QEMU depriv.

v1 allowed ERROR_JSON_CONFIG_EMPTY "because a stubdom don't have a json
config," but it is re-introduced in v2 since the guest should be acted
on.  It seems fine in testing.  The missing JSON was probably from
OpenXT having disabled JSON configs in the past.

v2
Use query-fdsets for removal and addition - stub-devid:$devid
Re-use aodev instead of 2nd aodev_del
Rename some functions
Support sdX vdevs
Get stubdomid from cis->disk_domid in stubdom callbacks
Use if (rc) not if (rc != 0)
Remove comment about libxl_device_disk_remove
Use EGC_GC not STATE_AO_GC
Re-work and eliminate cdrom_insert_stubdom_query_fdset_retry
Change some messages
Allow missing removal fdset in case it wasn't added during startup.
Drop LOGD(... rc=%d)

v3:
Remove LOG DEBUGs
s/timeout_retry/retry_timer/
Init stubdom_fdset = -1 and use as flag to pase fdset-id
Drop AO_GC
Avoid non-error goto
Expect ERROR_TIMEOUT as non-error
Drop some comments
close payload_fd and set to -1
Remove limit on query-fdset retries

By removing the limit on query-fdset retries, we lose an explicity error
message for the stubdom not performing the add-fd, but we give more time
which may let more cases succeed.

v4:
Add "must be last" in cdrom_insert_stubdom_parse_fdset_rm()
Add "must be last" in cdrom_insert_stubdom_disk_add_cb()
Move ERROR_NOTFOUND handling earlier in cdrom_insert_stubdom_parse_fdset()
---
 docs/misc/stubdom.txt         |  10 +
 tools/libs/light/libxl_disk.c | 382 ++++++++++++++++++++++++++++++++--
 2 files changed, 371 insertions(+), 21 deletions(-)

diff --git a/docs/misc/stubdom.txt b/docs/misc/stubdom.txt
index c717a95d17..64c220db20 100644
--- a/docs/misc/stubdom.txt
+++ b/docs/misc/stubdom.txt
@@ -127,6 +127,16 @@ Limitations:
  - at most 26 emulated disks are supported (more are still available as PV disks)
  - graphics output (VNC/SDL/Spice) not supported
 
+CD-ROM changing:
+
+To change the CD-ROM medium, libxl will:
+ - QMP eject the medium from QEMU
+ - block-detach the old PV disk
+ - block-attach the new PV disk
+ - QMP change the medium to the new PV disk by fdset-id
+
+The stubdom must internally add /dev/xvdc to an fdset in QEMU with opaque set
+to "stub-devid:$devid".  libxl will lookup the fdset with that string.
 
                                    PV-GRUB
                                    =======
diff --git a/tools/libs/light/libxl_disk.c b/tools/libs/light/libxl_disk.c
index 1f1e5c6567..d2e814cc3b 100644
--- a/tools/libs/light/libxl_disk.c
+++ b/tools/libs/light/libxl_disk.c
@@ -829,21 +829,118 @@ int libxl_device_disk_getinfo(libxl_ctx *ctx, uint32_t domid,
     return rc;
 }
 
+/*
+ * Search through the query-fdsets JSON looking for a matching devid.
+ *
+ * If found, return the fdset-id integer (>=0).
+ *
+ * If not found, return ERROR_NOTFOUND.
+ *
+ * On error, return libxl ERROR_*.
+ */
+static int query_fdsets_find_fdset(libxl__gc *gc,
+                                   const libxl__json_object *response,
+                                   int devid)
+{
+    const libxl__json_object *fdset;
+    const char *needle = GCSPRINTF("stub-devid:%d", devid);
+    int i, j, rc;
+
+    /* query-fdsets returns:
+     * [
+     *   { "fds": [
+     *       { "fd": 30,
+     *         "opaque": "stub-devid:2080"
+     *       }
+     *     ],
+     *     "fdset-id": 1
+     *   }
+     * ]
+     */
+    for (i = 0; (fdset = libxl__json_array_get(response, i)); i++) {
+        const libxl__json_object *fdset_id;
+        const libxl__json_object *fds;
+        const libxl__json_object *fd;
+
+        fdset_id = libxl__json_map_get("fdset-id", fdset, JSON_INTEGER);
+        if (!fdset_id) {
+            rc = ERROR_QEMU_API;
+            goto out;
+        }
+
+        fds = libxl__json_map_get("fds", fdset, JSON_ARRAY);
+        if (!fds) {
+            rc = ERROR_QEMU_API;
+            goto out;
+        }
+        for (j = 0; (fd = libxl__json_array_get(fds, j)); j++) {
+            const libxl__json_object *fd_num;
+            const libxl__json_object *opaque;
+            const char *opaque_str;
+
+            fd_num = libxl__json_map_get("fd", fd, JSON_INTEGER);
+            if (!fd_num) {
+                rc = ERROR_QEMU_API;
+                goto out;
+            }
+            opaque = libxl__json_map_get("opaque", fd, JSON_STRING);
+            if (!opaque) {
+                continue;
+            }
+
+            opaque_str = libxl__json_object_get_string(opaque);
+            if (strcmp(opaque_str, needle) == 0) {
+                return libxl__json_object_get_integer(fdset_id);
+            }
+        }
+    }
+    rc = ERROR_NOTFOUND;
+
+ out:
+    return rc;
+}
+
 typedef struct {
     libxl__ao *ao;
+    libxl__ao_device aodev;
     libxl_domid domid;
+    libxl_domid disk_domid;
     libxl_device_disk *disk;
     libxl_device_disk disk_saved;
     libxl__ev_slowlock qmp_lock;
     int dm_ver;
     libxl__ev_time time;
+    libxl__ev_time retry_timer;
     libxl__ev_qmp qmp;
+    int stubdom_fdset;
 } libxl__cdrom_insert_state;
 
 static void cdrom_insert_lock_acquired(libxl__egc *, libxl__ev_slowlock *,
                                        int rc);
 static void cdrom_insert_qmp_connected(libxl__egc *, libxl__ev_qmp *,
                                        const libxl__json_object *, int rc);
+static void cdrom_insert_stubdom_query_fdset_rm(libxl__egc *egc,
+                                                libxl__ev_qmp *qmp,
+                                                const libxl__json_object *resp,
+                                                int rc);
+static void cdrom_insert_stubdom_parse_fdset_rm(libxl__egc *egc,
+                                                libxl__ev_qmp *qmp,
+                                                const libxl__json_object *resp,
+                                                int rc);
+static void cdrom_insert_stubdom_ejected(libxl__egc *egc, libxl__ev_qmp *,
+                                         const libxl__json_object *, int rc);
+static void cdrom_insert_stubdom_disk_remove_cb(libxl__egc *egc,
+                                                 libxl__ao_device *aodev);
+static void cdrom_insert_stubdom_disk_add_cb(libxl__egc *egc,
+                                             libxl__ao_device *aodev);
+static void cdrom_insert_stubdom_query_fdset(libxl__egc *egc,
+                                             libxl__ev_time *ev,
+                                             const struct timeval *abs,
+                                             int rc);
+static void cdrom_insert_stubdom_parse_fdset(libxl__egc *egc,
+                                             libxl__ev_qmp *qmp,
+                                             const libxl__json_object *response,
+                                             int rc);
 static void cdrom_insert_ejected(libxl__egc *egc, libxl__ev_qmp *,
                                  const libxl__json_object *, int rc);
 static void cdrom_insert_addfd_cb(libxl__egc *egc, libxl__ev_qmp *,
@@ -865,6 +962,7 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
     libxl_device_disk *disks = NULL;
     int rc;
     libxl__cdrom_insert_state *cis;
+    libxl_domid stubdomid;
 
     GCNEW(cis);
     cis->ao = ao;
@@ -876,6 +974,8 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
     cis->qmp_lock.ao = ao;
     cis->qmp_lock.domid = domid;
     libxl__ev_time_init(&cis->time);
+    libxl__ev_time_init(&cis->retry_timer);
+    cis->stubdom_fdset = -1;
     libxl__ev_qmp_init(&cis->qmp);
     cis->qmp.ao = ao;
     cis->qmp.domid = domid;
@@ -892,12 +992,6 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
         goto out;
     }
 
-    if (libxl_get_stubdom_id(ctx, domid) != 0) {
-        LOGD(ERROR, domid, "cdrom-insert doesn't work for stub domains");
-        rc = ERROR_INVAL;
-        goto out;
-    }
-
     cis->dm_ver = libxl__device_model_version_running(gc, domid);
     if (cis->dm_ver == -1) {
         LOGD(ERROR, domid, "Cannot determine device model version");
@@ -905,7 +999,22 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
         goto out;
     }
 
-    disks = libxl__device_list(gc, &libxl__disk_devtype, domid, &num);
+    stubdomid = libxl_get_stubdom_id(CTX, cis->domid);
+    if (stubdomid == 0) {
+        cis->disk_domid = domid;
+    } else {
+        cis->disk_domid = stubdomid;
+        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))
         {
@@ -920,7 +1029,7 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
         goto out;
     }
 
-    rc = libxl__device_disk_setdefault(gc, domid, disk, false);
+    rc = libxl__device_disk_setdefault(gc, cis->disk_domid, disk, false);
     if (rc) goto out;
 
     if (!disk->pdev_path) {
@@ -994,7 +1103,12 @@ static void cdrom_insert_qmp_connected(libxl__egc *egc, libxl__ev_qmp *qmp,
         QMP_PARAMETERS_SPRINTF(&args, "id", "ide-%i", devid);
     else
         QMP_PARAMETERS_SPRINTF(&args, "device", "ide-%i", devid);
-    qmp->callback = cdrom_insert_ejected;
+
+    if (libxl_get_stubdom_id(CTX, cis->domid))
+        qmp->callback = cdrom_insert_stubdom_query_fdset_rm;
+    else
+        qmp->callback = cdrom_insert_ejected;
+
     rc = libxl__ev_qmp_send(egc, qmp, "eject", args);
     if (rc) goto out;
     return;
@@ -1002,6 +1116,209 @@ out:
     cdrom_insert_done(egc, cis, rc); /* must be last */
 }
 
+static void cdrom_insert_stubdom_query_fdset_rm(libxl__egc *egc,
+                                                libxl__ev_qmp *qmp,
+                                                const libxl__json_object *resp,
+                                                int rc)
+{
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(qmp, *cis, qmp);
+
+    if (rc) goto out;
+
+    /* Only called for qemu-xen/linux stubdom. */
+    assert(cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
+
+    cis->qmp.callback = cdrom_insert_stubdom_parse_fdset_rm;
+
+    rc = libxl__ev_qmp_send(egc, &cis->qmp, "query-fdsets", NULL);
+    if (rc) goto out;
+
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, rc); /* must be last */
+}
+
+static void cdrom_insert_stubdom_parse_fdset_rm(libxl__egc *egc,
+                                                libxl__ev_qmp *qmp,
+                                                const libxl__json_object *resp,
+                                                int rc)
+{
+    EGC_GC;
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(qmp, *cis, qmp);
+    int devid;
+    int fdset;
+
+    if (rc) goto out;
+
+    /* Only called for qemu-xen/linux stubdom. */
+    assert(cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
+
+    devid = libxl__device_disk_dev_number(cis->disk->vdev, NULL, NULL);
+    fdset = query_fdsets_find_fdset(gc, resp, devid);
+    if (fdset < 0) {
+        rc = fdset;
+        goto out;
+    }
+
+    LOGD(DEBUG, cis->domid, "Found fdset %d", fdset);
+
+    libxl__json_object *args = NULL;
+
+    libxl__qmp_param_add_integer(gc, &args, "fdset-id", fdset);
+
+    cis->qmp.callback = cdrom_insert_stubdom_ejected;
+
+    rc = libxl__ev_qmp_send(egc, &cis->qmp, "remove-fd", args);
+    if (rc) goto out;
+
+    return;
+
+ out:
+    if (rc == ERROR_NOTFOUND) {
+        LOGD(DEBUG, cis->domid, "No fdset found - skipping remove-fd");
+        cdrom_insert_stubdom_ejected(egc, qmp, resp, 0); /* must be last */
+    } else {
+        cdrom_insert_done(egc, cis, rc); /* must be last */
+    }
+}
+
+
+static void cdrom_insert_stubdom_ejected(libxl__egc *egc, libxl__ev_qmp *qmp,
+                                         const libxl__json_object *response,
+                                         int rc)
+{
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(qmp, *cis, qmp);
+    libxl__device *device;
+    STATE_AO_GC(cis->ao);
+    domid_t stubdomid = cis->disk_domid;
+
+    if (rc) goto out;
+
+    GCNEW(device);
+    rc = libxl__device_from_disk(gc, stubdomid, cis->disk, device);
+    if (rc) goto out;
+
+    /* stubdom PV block dev eject */
+    libxl__prepare_ao_device(ao, &cis->aodev);
+    cis->aodev.action = LIBXL__DEVICE_ACTION_REMOVE;
+    cis->aodev.dev = device;
+    cis->aodev.callback = cdrom_insert_stubdom_disk_remove_cb;
+    cis->aodev.force.flag = LIBXL__FORCE_OFF;
+    libxl__initiate_device_generic_remove(egc, &cis->aodev);
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, rc); /* must be last */
+}
+
+static void cdrom_insert_stubdom_disk_remove_cb(libxl__egc *egc,
+                                                 libxl__ao_device *aodev)
+{
+    STATE_AO_GC(aodev->ao);
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(aodev, *cis, aodev);
+    domid_t stubdomid = cis->disk_domid;
+
+    if (aodev->rc) {
+        LOGD(ERROR, aodev->dev->domid, "Unable to remove stubdom PV disk id %u",
+             aodev->dev->devid);
+        goto out;
+    }
+
+    /* block dev insert - this may be inserting an empty disk for eject. */
+    libxl__prepare_ao_device(ao, &cis->aodev);
+    /* set an ao callback to end up in cdrom_insert_ejected */
+    cis->aodev.callback = cdrom_insert_stubdom_disk_add_cb;
+    libxl__device_disk_add(egc, stubdomid, cis->disk, &cis->aodev);
+
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, aodev->rc); /* must be last */
+}
+
+static void cdrom_insert_stubdom_disk_add_cb(libxl__egc *egc,
+                                             libxl__ao_device *aodev)
+{
+    EGC_GC;
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(aodev, *cis, aodev);
+
+    if (aodev->rc) {
+        LOGD(ERROR, aodev->dev->domid, "Unable to insert stubdom PV disk id %u",
+             aodev->dev->devid);
+        goto out;
+    }
+
+    cdrom_insert_stubdom_query_fdset(egc, &cis->retry_timer, NULL,
+                                     ERROR_TIMEDOUT);
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, aodev->rc); /* must be last */
+}
+
+static void cdrom_insert_stubdom_query_fdset(libxl__egc *egc,
+                                             libxl__ev_time *ev,
+                                             const struct timeval *abs,
+                                             int rc)
+{
+    EGC_GC;
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(ev, *cis, retry_timer);
+
+    if (rc != ERROR_TIMEDOUT) goto out;
+
+    /* Only called for qemu-xen/linux stubdom. */
+    assert(cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
+
+    cis->qmp.callback = cdrom_insert_stubdom_parse_fdset;
+
+    rc = libxl__ev_qmp_send(egc, &cis->qmp, "query-fdsets", NULL);
+    if (rc) goto out;
+
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, rc); /* must be last */
+}
+
+static void cdrom_insert_stubdom_parse_fdset(libxl__egc *egc,
+                                             libxl__ev_qmp *qmp,
+                                             const libxl__json_object *response,
+                                             int rc)
+{
+    EGC_GC;
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(qmp, *cis, qmp);
+    int devid;
+    int fdset;
+
+    if (rc) goto out;
+
+    /* Only called for qemu-xen/linux stubdom. */
+    assert(cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
+
+    devid = libxl__device_disk_dev_number(cis->disk->vdev, NULL, NULL);
+    fdset = query_fdsets_find_fdset(gc, response, devid);
+    if (fdset == ERROR_NOTFOUND) {
+        /* Give the stubdom a little time before trying again. */
+        rc = libxl__ev_time_register_rel(cis->ao, &cis->retry_timer,
+                                         cdrom_insert_stubdom_query_fdset,
+                                         200);
+        if (rc) goto out;
+    } else if (fdset < 0) {
+        rc = fdset;
+        goto out;
+    }
+
+    cis->stubdom_fdset = fdset;
+
+    LOGD(DEBUG, cis->domid, "Found fdset %d", cis->stubdom_fdset);
+    cdrom_insert_ejected(egc, &cis->qmp, NULL, rc);
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, rc); /* must be last */
+}
+
 static void cdrom_insert_ejected(libxl__egc *egc,
                                  libxl__ev_qmp *qmp,
                                  const libxl__json_object *response,
@@ -1026,7 +1343,7 @@ static void cdrom_insert_ejected(libxl__egc *egc,
 
     if (rc) goto out;
 
-    rc = libxl__device_from_disk(gc, domid, disk, &device);
+    rc = libxl__device_from_disk(gc, cis->disk_domid, disk, &device);
     if (rc) goto out;
     be_path = libxl__device_backend_path(gc, &device);
     libxl_path = libxl__device_libxl_path(gc, &device);
@@ -1082,6 +1399,7 @@ static void cdrom_insert_ejected(libxl__egc *egc,
     if (rc) goto out;
 
     if (cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN &&
+        libxl_get_stubdom_id(CTX, cis->domid) == 0 &&
         disk->format != LIBXL_DISK_FORMAT_EMPTY) {
         libxl__json_object *args = NULL;
 
@@ -1094,7 +1412,7 @@ static void cdrom_insert_ejected(libxl__egc *egc,
             goto out;
         }
 
-        /* This free form parameter is not use by QEMU or libxl. */
+        /* This free form parameter is not used by QEMU or non-stubdom libxl. */
         QMP_PARAMETERS_SPRINTF(&args, "opaque", "%s:%s",
                                libxl_disk_format_to_string(disk->format),
                                disk->pdev_path);
@@ -1116,7 +1434,15 @@ out:
         cdrom_insert_done(egc, cis, rc); /* must be last */
     } else if (!has_callback) {
         /* Only called if no asynchronous callback are set. */
-        cdrom_insert_inserted(egc, qmp, NULL, 0); /* must be last */
+        if (libxl_get_stubdom_id(CTX, cis->domid) &&
+            disk->format != LIBXL_DISK_FORMAT_EMPTY) {
+            LOGD(DEBUG, cis->domid,
+                 "stubdom %d needs to perform add-fd internally",
+                 libxl_get_stubdom_id(CTX, cis->domid));
+            cdrom_insert_addfd_cb(egc, qmp, NULL, 0); /* must be last */
+        } else  {
+            cdrom_insert_inserted(egc, qmp, NULL, 0); /* must be last */
+        }
     }
 }
 
@@ -1135,17 +1461,25 @@ static void cdrom_insert_addfd_cb(libxl__egc *egc,
     /* convenience aliases */
     libxl_device_disk *disk = cis->disk;
 
-    close(qmp->payload_fd);
+    if (qmp->payload_fd >= 0)
+    {
+        close(qmp->payload_fd);
+    }
     qmp->payload_fd = -1;
 
     if (rc) goto out;
 
-    o = libxl__json_map_get("fdset-id", response, JSON_INTEGER);
-    if (!o) {
-        rc = ERROR_FAIL;
-        goto out;
+    /* response non-NULL only for non-stubdom */
+    if (cis->stubdom_fdset == -1) {
+        o = libxl__json_map_get("fdset-id", response, JSON_INTEGER);
+        if (!o) {
+            rc = ERROR_FAIL;
+            goto out;
+        }
+        fdset = libxl__json_object_get_integer(o);
+    } else {
+        fdset = cis->stubdom_fdset;
     }
-    fdset = libxl__json_object_get_integer(o);
 
     devid = libxl__device_disk_dev_number(disk->vdev, NULL, NULL);
     qmp->callback = cdrom_insert_inserted;
@@ -1158,8 +1492,13 @@ static void cdrom_insert_addfd_cb(libxl__egc *egc,
     if (libxl__qmp_ev_qemu_compare_version(qmp, 2, 8, 0) >= 0) {
         QMP_PARAMETERS_SPRINTF(&args, "id", "ide-%i", devid);
         QMP_PARAMETERS_SPRINTF(&args, "filename", "/dev/fdset/%d", fdset);
-        libxl__qmp_param_add_string(gc, &args, "format",
-            libxl__qemu_disk_format_string(disk->format));
+        if (response) {
+            libxl__qmp_param_add_string(gc, &args, "format",
+                libxl__qemu_disk_format_string(disk->format));
+        } else {
+            /* Stubdom is using blockdev /dev/xvd* */
+            libxl__qmp_param_add_string(gc, &args, "format", "host_device");
+        }
         rc = libxl__ev_qmp_send(egc, qmp, "blockdev-change-medium", args);
     } else {
         QMP_PARAMETERS_SPRINTF(&args, "device", "ide-%i", devid);
@@ -1196,7 +1535,7 @@ static void cdrom_insert_inserted(libxl__egc *egc,
 
     if (rc) goto out;
 
-    rc = libxl__device_from_disk(gc, domid, disk, &device);
+    rc = libxl__device_from_disk(gc, cis->disk_domid, disk, &device);
     if (rc) goto out;
     be_path = libxl__device_backend_path(gc, &device);
     libxl_path = libxl__device_libxl_path(gc, &device);
@@ -1281,6 +1620,7 @@ static void cdrom_insert_done(libxl__egc *egc,
     EGC_GC;
 
     libxl__ev_time_deregister(gc, &cis->time);
+    libxl__ev_time_deregister(gc, &cis->retry_timer);
     libxl__ev_qmp_dispose(gc, &cis->qmp);
     if (cis->qmp.payload_fd >= 0) close(cis->qmp.payload_fd);
     libxl__ev_slowlock_unlock(gc, &cis->qmp_lock);
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Sun Jul 28 22:28:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 22:28:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766208.1176713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYCN5-0004zz-RP; Sun, 28 Jul 2024 22:28:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766208.1176713; Sun, 28 Jul 2024 22: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 1sYCN5-0004zs-Nv; Sun, 28 Jul 2024 22:28:07 +0000
Received: by outflank-mailman (input) for mailman id 766208;
 Sun, 28 Jul 2024 22:28:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYCN4-0004ze-7N; Sun, 28 Jul 2024 22:28:06 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYCN3-0001oP-VQ; Sun, 28 Jul 2024 22:28:06 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYCN3-0007wY-Bl; Sun, 28 Jul 2024 22:28:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYCN3-0005mq-BD; Sun, 28 Jul 2024 22:28: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=JVLxoVvYhT3LMRWvZI2ukN3jL0eH/X61A9ULO129ZZo=; b=Ln0vcXBzNztBynxCsM5Wnr8W/r
	0YJBfyJun305qswWGD3dhD+0IYH3iQuake+eOpLdBodNbtr5Y1WgxKvDLq3UCp6+3/BQowuHAHKLg
	sZv2IMerszLN2aOsQK74OPBZvY85pJGLveypfgbzltrviKoPCf3dMKh/OSgZ3wRaySsw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187034-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187034: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5437f30d3458ad36e83ab96088d490ebfee844d8
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Jul 2024 22:28:05 +0000

flight 187034 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187034/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                5437f30d3458ad36e83ab96088d490ebfee844d8
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   12 days
Failing since        186925  2024-07-20 09:44:52 Z    8 days   20 attempts
Testing same since   187033  2024-07-28 07:57:27 Z    0 days    2 attempts

------------------------------------------------------------
1981 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 221116 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Jul 28 22:58:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 22:58:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766220.1176722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYCqk-0000Wu-3F; Sun, 28 Jul 2024 22:58:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766220.1176722; Sun, 28 Jul 2024 22:58: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 1sYCqk-0000Wn-0c; Sun, 28 Jul 2024 22:58:46 +0000
Received: by outflank-mailman (input) for mailman id 766220;
 Sun, 28 Jul 2024 22:58: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=m0Qz=O4=byiq.org=techguru@srs-se1.protection.inumbo.net>)
 id 1sYCqe-0000Wg-9w
 for xen-devel@lists.xenproject.org; Sun, 28 Jul 2024 22:58:44 +0000
Received: from smtp-bc08.mail.infomaniak.ch (smtp-bc08.mail.infomaniak.ch
 [2001:1600:4:17::bc08])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec63a902-4d34-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 00:58:37 +0200 (CEST)
Received: from smtp-3-0001.mail.infomaniak.ch (smtp-3-0001.mail.infomaniak.ch
 [10.4.36.108])
 by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4WXH3J3ldGzblG
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 00:58:36 +0200 (CEST)
Received: from unknown by smtp-3-0001.mail.infomaniak.ch (Postfix) with ESMTPA
 id 4WXH3J1ZwBzMgZ
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 00:58: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: ec63a902-4d34-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=byiq.org;
	s=20191114; t=1722207516;
	bh=yomPAbtoeerznwAxCQ7S3pDuHJhKgMlP98s6ZuJG05M=;
	h=Date:Subject:From:Reply-To:To:From;
	b=eMJBrBXq4UuLvZhbFUWpvocE5ZrNC9pxre8j7LFfLtF2cLDuShMK9ungJbJYt6KFm
	 vekU02CncgHkhsdp98ZWSnsutFr8OTc/NOM+AgTVGBYQQ98YAqDbeaCEwYBJJftean
	 p8UzpiOH6bV9zI8Rp64FmSXhR3/OTGnjXVOQWFOI=
Message-ID: <3e2f9830a43bd867cd50faf4485c2683@mail.infomaniak.com>
Date: Mon, 29 Jul 2024 00:58:36 +0200
Subject: SLA Exceeded -- Coverity project access
From: Techguru <techguru@byiq.org>
Reply-To: Techguru <techguru@byiq.org>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="_=_swift_1722207516_35e967953221b53dc0ff2b7adcfdbfc2_=_"
X-WS-User-Origin: eyJpdiI6IlFjcVk3Z2Vlb0lKRlJlY0RnKyt2bUE9PSIsInZhbHVlIjoidkRvcDl2cS9GQUpwdk1zT0NoemJwZz09IiwibWFjIjoiZDk2YmFkMjhkYTYwNjYyYmRhN2ZjMDNlNGUzYjhkOTAyY2RhZmJhNWFhYzBiNTFhMGMxZDlhZTEwZTE5ZGQyYSIsInRhZyI6IiJ9
X-WS-User-Mbox: eyJpdiI6IkQrZVgzR05WbEJSaG9ubUNTVEV4NGc9PSIsInZhbHVlIjoiSFpRZXJ4UzZRWGIwL3V5YjhMREtUQT09IiwibWFjIjoiNmM5ZWQ0ODg2ZjIxMjQ5MWVhOGQ3OTA4ZGQ1YjAxYWNjM2E2OGZmM2JiODc4YzBmMDI1YTVlYjk3MDU5ZTI4YSIsInRhZyI6IiJ9
X-WS-Location: eJxzKUpMKykGAAfpAmU-
X-Mailer: Infomaniak Workspace (1.3.725)
X-Infomaniak-Routing: alpha


--_=_swift_1722207516_35e967953221b53dc0ff2b7adcfdbfc2_=_
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Project
Requested On
Status

=09=09XenProject [https://scan.coverit=
y.com/projects/606]

=09=09Jul 22, 2024

=09=09Pending Approval
=

request would be for GitHub ID "techguru@byiq.com"

thanks for your =
kind attention to this matter.



--_=_swift_1722207516_35e967953221b53dc0ff2b7adcfdbfc2_=_
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><body><table style=3D"font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start;=
 text-transform: none; white-space: normal; widows: auto; word-spacing: 0px=
; -webkit-text-stroke-width: 0px; text-decoration: none; box-sizing: border=
-box; border-collapse: collapse; border-spacing: 0px; background-color: rgb=
(245, 245, 245); width: 847.5px; max-width: 100%; margin-bottom: 20px; min-=
height: 20px; padding: 19px; border: 1px solid rgb(207, 207, 207); border-r=
adius: 0px; -webkit-box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 1px inset; box-=
shadow: rgba(0, 0, 0, 0.05) 0px 1px 1px inset; caret-color: rgb(51, 51, 51)=
; color: rgb(51, 51, 51); font-family: arial, helvetica, clean, sans-serif;=
 font-size: 18px;" class=3D"table table-striped well"><thead style=3D"box-s=
izing: border-box;"><tr style=3D"box-sizing: border-box;"><th style=3D"box-=
sizing: border-box; padding: 8px; text-align: left; line-height: 1.428571; =
vertical-align: bottom; border-top-width: 0px; border-top-style: none; bord=
er-top-color: currentcolor; border-bottom-width: 2px; border-bottom-style: =
solid; border-bottom-color: rgb(221, 221, 221);">Project<br></th><th style=
=3D"box-sizing: border-box; padding: 8px; text-align: left; line-height: 1.=
428571; vertical-align: bottom; border-top-width: 0px; border-top-style: no=
ne; border-top-color: currentcolor; border-bottom-width: 2px; border-bottom=
-style: solid; border-bottom-color: rgb(221, 221, 221);">Requested On<br></=
th><th style=3D"box-sizing: border-box; padding: 8px; text-align: left; lin=
e-height: 1.428571; vertical-align: bottom; border-top-width: 0px; border-t=
op-style: none; border-top-color: currentcolor; border-bottom-width: 2px; b=
order-bottom-style: solid; border-bottom-color: rgb(221, 221, 221);">Status=
<br></th><th style=3D"box-sizing: border-box; padding: 8px; text-align: lef=
t; line-height: 1.428571; vertical-align: bottom; border-top-width: 0px; bo=
rder-top-style: none; border-top-color: currentcolor; border-bottom-width: =
2px; border-bottom-style: solid; border-bottom-color: rgb(221, 221, 221);">=
<br></th></tr></thead><tbody style=3D"box-sizing: border-box;"><tr style=3D=
"box-sizing: border-box; background-color: rgb(249, 249, 249);"><td style=
=3D"box-sizing: border-box; padding: 8px; line-height: 1.428571; vertical-a=
lign: top; border-top-width: 1px; border-top-style: solid; border-top-color=
: rgb(221, 221, 221);"><a style=3D"box-sizing: border-box; background-color=
: transparent; color: rgb(224, 124, 5); text-decoration: none;" href=3D"htt=
ps://scan.coverity.com/projects/606" target=3D"_blank" rel=3D"noopener nore=
ferrer" data-ik=3D"ik-secure">XenProject</a><br></td><td style=3D"box-sizin=
g: border-box; padding: 8px; line-height: 1.428571; vertical-align: top; bo=
rder-top-width: 1px; border-top-style: solid; border-top-color: rgb(221, 22=
1, 221);">Jul 22, 2024<br></td><td style=3D"box-sizing: border-box; padding=
: 8px; line-height: 1.428571; vertical-align: top; border-top-width: 1px; b=
order-top-style: solid; border-top-color: rgb(221, 221, 221);"><span class=
=3D"colour" style=3D"color:rgb(138, 109, 59)">Pending Approval<br><br></spa=
n></td></tr></tbody></table><div ><div>request would be for GitHub ID "<a h=
ref=3D"mailto:techguru@byiq.com">techguru@byiq.com</a>"<br></div><div style=
=3D"font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size:=
 14px"><br></div><div style=3D"font-family: 'Helvetica Neue', Helvetica, Ar=
ial, sans-serif; font-size: 14px">thanks for your kind attention to this ma=
tter.<br></div><div style=3D"font-family: 'Helvetica Neue', Helvetica, Aria=
l, sans-serif; font-size: 14px"><br></div></div><div style=3D"font-family: =
'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px"><br></div>=
</body></html>


--_=_swift_1722207516_35e967953221b53dc0ff2b7adcfdbfc2_=_--



From xen-devel-bounces@lists.xenproject.org Sun Jul 28 23:01:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 28 Jul 2024 23:01:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766227.1176733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYCtH-0001zK-Gh; Sun, 28 Jul 2024 23:01:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766227.1176733; Sun, 28 Jul 2024 23: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 1sYCtH-0001zD-Cz; Sun, 28 Jul 2024 23:01:23 +0000
Received: by outflank-mailman (input) for mailman id 766227;
 Sun, 28 Jul 2024 23:01:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYCtG-0001yy-39; Sun, 28 Jul 2024 23:01:22 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYCtF-0002NJ-R5; Sun, 28 Jul 2024 23:01:21 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYCtF-0000It-BE; Sun, 28 Jul 2024 23:01:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYCtF-0007m3-Ap; Sun, 28 Jul 2024 23:01:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hdHuLKSCLfN294tRZhrDoGimJA7sQK91BT47DcIlBuE=; b=pxSjT+K7Fn3PhYKOcNK84kyi6O
	zTlYAlrL/1mu6YyglZOp0Ap1qTk/bpST8jTjgIvLrjlRZbmVy4E9JSDN7Ahoxki6ztEaoI4ipmCy1
	s4r14dwPeqq99Zn+7sL2Yb/EN9va7vgXi0VEFCUesoLmWMHS03oUMhmq/PR429whtOHk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187035-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187035: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=ecb1d67775a6dcaa9a0deb4869ca60e250987e91
X-Osstest-Versions-That:
    ovmf=b7f963d570ec5e27bc04d546372c6fc47e4f3b17
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 28 Jul 2024 23:01:21 +0000

flight 187035 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187035/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 ecb1d67775a6dcaa9a0deb4869ca60e250987e91
baseline version:
 ovmf                 b7f963d570ec5e27bc04d546372c6fc47e4f3b17

Last test of basis   187030  2024-07-27 23:44:56 Z    0 days
Testing same since   187035  2024-07-28 21:13:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ard Biesheuvel <ardb@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   b7f963d570..ecb1d67775  ecb1d67775a6dcaa9a0deb4869ca60e250987e91 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 05:19:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 05:19:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766276.1176759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYInC-00015M-U2; Mon, 29 Jul 2024 05:19:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766276.1176759; Mon, 29 Jul 2024 05: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 1sYInC-00015F-R9; Mon, 29 Jul 2024 05:19:30 +0000
Received: by outflank-mailman (input) for mailman id 766276;
 Mon, 29 Jul 2024 05:19:30 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYInC-00014m-BB; Mon, 29 Jul 2024 05:19:30 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYInC-0005NR-5l; Mon, 29 Jul 2024 05:19:30 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYInB-0007xV-Lr; Mon, 29 Jul 2024 05:19:29 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYInB-00041s-JY; Mon, 29 Jul 2024 05:19: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=mVMXd2zJkgyaxqeS76BN6XGnUDwX0JMkYOCpqBjKPYs=; b=is4V+wKFbhfwLeOtzkCT399jI7
	OT6RzjoeFF6bRwoLpXJsJgo2xdqoHfgldp9ZEG8d6I7V4XXQUBDBj2xIwmwaTWreodlQf3RHF9E4A
	VF75oZn5ANpP28CLAdvCtyn5Kq+sy+GDp+QaOZQCj+FRTEAbVL1wIFWCnMO+rn3qG5zE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187036-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187036: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=8400291e289ee6b2bf9779ff1c83a291501f017b
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Jul 2024 05:19:29 +0000

flight 187036 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187036/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                8400291e289ee6b2bf9779ff1c83a291501f017b
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   12 days
Failing since        186925  2024-07-20 09:44:52 Z    8 days   21 attempts
Testing same since   187036  2024-07-28 22:42:16 Z    0 days    1 attempts

------------------------------------------------------------
1998 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 222678 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 06:46:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 06:46:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766289.1176768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYK8t-0003rm-5J; Mon, 29 Jul 2024 06:45:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766289.1176768; Mon, 29 Jul 2024 06:45: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 1sYK8t-0003rf-2i; Mon, 29 Jul 2024 06:45:59 +0000
Received: by outflank-mailman (input) for mailman id 766289;
 Mon, 29 Jul 2024 06:45:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYK8r-0003rV-Kb; Mon, 29 Jul 2024 06:45:57 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYK8r-00072l-9t; Mon, 29 Jul 2024 06:45:57 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYK8q-0002B9-VV; Mon, 29 Jul 2024 06:45:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYK8q-0005Rc-Uz; Mon, 29 Jul 2024 06:45:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=1Ge5urlt5nnLEsWbLwluTBkNdZj3eR7VERrrJtxXPz0=; b=TIp5GEpIOPEGunBltIMpBeQTe6
	qtjxUu5crqAHJ1LpHaRLBiRgHmhnO6VzjyBmJHollI9VEZR9wrkBuYzKkR8NA4PrGEFJGrKfNTr64
	HwELbkyoVpdW+7PSb/ozxMQ3uSzXFc04wwri2bJboEopWhiJFCGdi/TYuNjPk/RPou/M=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187038-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187038: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=51edd4830d822e70b96a8548d0d89383e12bc4c0
X-Osstest-Versions-That:
    ovmf=ecb1d67775a6dcaa9a0deb4869ca60e250987e91
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Jul 2024 06:45:56 +0000

flight 187038 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187038/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 51edd4830d822e70b96a8548d0d89383e12bc4c0
baseline version:
 ovmf                 ecb1d67775a6dcaa9a0deb4869ca60e250987e91

Last test of basis   187035  2024-07-28 21:13:14 Z    0 days
Testing same since   187038  2024-07-29 04:11:44 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dun Tan <dun.tan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   ecb1d67775..51edd4830d  51edd4830d822e70b96a8548d0d89383e12bc4c0 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 07:31:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 07:31:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766299.1176778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYKqs-0001ZH-Gx; Mon, 29 Jul 2024 07:31:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766299.1176778; Mon, 29 Jul 2024 07: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 1sYKqs-0001ZA-EJ; Mon, 29 Jul 2024 07:31:26 +0000
Received: by outflank-mailman (input) for mailman id 766299;
 Mon, 29 Jul 2024 07:31: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=pZrP=O5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYKqq-0001Yy-Nx
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 07:31:24 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8e8815a2-4d7c-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 09:31:23 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-52f025bc147so4358934e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 00:31:23 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52fd5c19f89sm1376424e87.216.2024.07.29.00.31.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 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: 8e8815a2-4d7c-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722238283; x=1722843083; 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=tn2zCNs4p2bZ0t6v0S65/PLs90ZGp523/+08PeuDdc8=;
        b=cR2YlhdYcsUhmacpT7PSEbi02DotdK6j+5++jyMhNPDmdgAdOU/8KFtqVE3mB7DR3B
         0n/4mMLbk44VY1NpyCJTDy5wrvEOlzNgNuJjdLHu0XJh3Bj1ldvY6gPEF2rjE4aLqyGJ
         4GjXrEirVcJJavroePXynIkhg1xwxfGaR67sUSgxE5Q08c6IMiq6EZq4b4yYWI5m0jR1
         mPWE48rHA42wBHiNIayGWIXDskao9mMEPbZOPqlOQaMmuaXxEnMd/hRdU71yWIC3sdVs
         LHws6EYZMW31KwC+GmxX0BIIXyI65fMmsvra3CP1f+c2ZxaofvTsQg3ozNyd6zuJ1b6g
         G/2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722238283; x=1722843083;
        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=tn2zCNs4p2bZ0t6v0S65/PLs90ZGp523/+08PeuDdc8=;
        b=j8fl483vhV7lOsUXpgGqOE3Vxi54T3K+OlpjYjEuxpFx/f2dDnoRJ/PXb+QqJ0p773
         TtFX84ZU4S9vgDsza0b82P4cbwT6xrXDlLdr7R+vaJQHxMLFk0axzXOpRJwwO1uss7gJ
         hNTV1cusncmjdxPRHCDLgYkLVP3sB/D/oKPss2q2gOOe8QmTm824dkj9g2uPoS2iUQdj
         hF3GZqeA/Pc8cjXhjL9LtFFib8YLuPP6NTuChtYVc9m7cjXjAW2DySH7XC3DWBNadP+I
         9snqHqGZl2PjfnAZurjkMKMZQcfXUJRJj8u/ftVHpq6QmOJvIeGk00P4dO/9IMbGH03A
         stvQ==
X-Gm-Message-State: AOJu0Yxc6kEE+tXelcqzryjQBTdDiUCLt79IOWS9cD9s8u8V9JB0qlRR
	p2r5cqdKIStlBxShT6CMLIs/3EZ6wV8h19E2BV0FCgC0hka9IoLYlV6BsYp6
X-Google-Smtp-Source: AGHT+IGMgLXU1yOQkzhBSD58zGxxjONJ6uDnIVLrO7loscsuMhSYoaaoYJzFlMRuWiA9NNkD6fTa6g==
X-Received: by 2002:a05:6512:3504:b0:52c:de00:9c04 with SMTP id 2adb3069b0e04-5309b2c2ac3mr4753449e87.48.1722238282400;
        Mon, 29 Jul 2024 00:31:22 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	"committers @ xenproject . org" <committers@xenproject.org>,
	Julien Grall <jgrall@amazon.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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for 4.19] CHANGELOG.md: Finalize changes in 4.19 release cycle
Date: Mon, 29 Jul 2024 09:31:16 +0200
Message-ID: <0c93b49ac00fa92721035b4f9eb2ae76175fe886.1722237887.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V2:
 - Make CI items started with uppercase letters.
---
 CHANGELOG.md | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index f8fbe82df6..a8b56b9632 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Reduce IOMMU setup time for hardware domain.
    - Allow HVM/PVH domains to map foreign pages.
    - Declare PVH dom0 supported with caveats.
+ - On Arm:
+   - Reworking the logic so all the MMU-off code is now self-contained for
+     secondary boot CPUs on arm64.
+   - Code symbol annotations and MISRA compliance improvements.
+   - Addressing issues of the static shared memory feature.
+ - On PPC:
+   - Minor fixes and improvements:
+     - Add .text.exceptions section for exception vectors.
+     - Replace debug printing code with printk.
+     - Address violations of MISRA C:2012 Rule 11.8.
+     - Ensure ELF sections' physical load addresses start at 0x0.
  - xl/libxl configures vkb=[] for HVM domains with priority over vkb_device.
  - Increase the maximum number of CPUs Xen can be built for from 4095 to
    16383.
@@ -23,6 +34,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    using a standalone library implementation.
  - xenalyze no longer requires `--svm-mode` when analyzing traces
    generated on AMD CPUs
+ - CI updates:
+   - Minimum fixes to rebuild the containers, following the HEREDOC problems.
+   - Rebuild containers to have testing with up-to-date LTS distros.
+   - Few build system checks, and strip the obsolete contents of
+     the build containers.
 
 ### Added
  - On x86:
@@ -31,6 +47,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
  - Add a new 9pfs backend running as a daemon in dom0. First user is
    Xenstore-stubdom now being able to support full Xenstore trace capability.
  - libxl support for backendtype=tap with tapback.
+ - On Arm:
+   - FF-A notification support.
+   - Introduction of dynamic node programming using overlay dtbo.
+ - On PPC:
+   - Basic exception handler implementation.
+ - On RISCV:
+   - Identity mapping implementation.
+   - Introduction of architecture-specific headers.
 
 ### Removed
  - caml-stubdom.  It hasn't built since 2014, was pinned to Ocaml 4.02, and has
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 07:32:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 07:32:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766307.1176789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYKs6-00027h-R8; Mon, 29 Jul 2024 07:32:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766307.1176789; Mon, 29 Jul 2024 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 1sYKs6-00027a-O7; Mon, 29 Jul 2024 07:32:42 +0000
Received: by outflank-mailman (input) for mailman id 766307;
 Mon, 29 Jul 2024 07: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=pZrP=O5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYKs5-00027U-JQ
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 07:32:41 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bc804586-4d7c-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 09:32:40 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2eeb1051360so31485891fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 00:32:40 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2f03d074b0asm12025641fa.102.2024.07.29.00.32.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 00: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: bc804586-4d7c-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722238360; x=1722843160; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=4mmW6m6430ybKp9+iaDOHgj3ZGQZMKcButDecWwu9nQ=;
        b=Shqv/w5KmTI9kUuT8OqaP6bM9JujjM1qAUHC3ezq+d2+1jPwYlI6buy0wAlCwkecwm
         8MZkfyJp1D+YBMFi0n/0PT6qsPxbDHBVHlWfv1/RD6zIJLzqeNikO9+a8rhS0u00h57Z
         sKAp1TiHnpG81tlsuBB/Z4nvH0I4uEZRazGC5uV5oSJzAL+YJeAGrJNcaDUtVNbKatID
         W6UlMwtV3JhiiSSTXjLk5UiazkwIlvz4Qg/cj9pupQ5XqJ7AIwk3bv5Zu3MGrT9NQwVr
         fXTXnXcxq5Q30xGBm8ARoVgJfhA8h5Oxel8SuNyvuOB8FQV6URam+fKY26zusR5SlyYV
         WN8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722238360; x=1722843160;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=4mmW6m6430ybKp9+iaDOHgj3ZGQZMKcButDecWwu9nQ=;
        b=M6Y5mC7Gqfc/Ng2muaXiZzuHacXegsr6knSucNstE2DRpKdPDD1FWmUmrHkr1++4Jr
         Ob3EYStdrk8mA5dqKo9GOXEHwyx9FxJtDrGals6kOIxRtkCgwLrjxf3QCZPczNOIp7Gu
         GakAiqF3OQXo6SmgKGutMPNgMeiUF2Er3ZG3UGeDyvsrxB2najy8rHoKZm6DAiuoWEj1
         VSyGjtqCsML8DhXVGbW7FEByZJneGu4Cuf0ij5pH66FOQKq60ubr3QWspBbVLb1LkErl
         bvYglB4inA7ZlILoXkwovoOmTMSlN3Mbq9hVFOOP5wCilrfrgRJQWt+0EzUaadaHcZsZ
         x+MA==
X-Forwarded-Encrypted: i=1; AJvYcCVNwiPK3hHFnjLcFkMDtg9ZGDgJYgNBMntAwraX23kmdN5lidvn6xcqvp5xo5PjFuqrChFZFpHxpn3vgzI+ULTbaTLOA74vp4QuWvadXg8=
X-Gm-Message-State: AOJu0YycjIKZ4X6U7wuDFmGAM0/B3nVwnVLYljnVBdwWKxmO1FNlyvdM
	J/jWgKvMXz/6YE58Gs3Nerm/wn7OQooFSu4hraVPDljyEHhjJOKf
X-Google-Smtp-Source: AGHT+IHygfLK9B+ljxtXPnXwQ2u2cj/kiNleR4EJTUVHcYrLP16bFZVMViqv08JX0iswBIpAT6VbOg==
X-Received: by 2002:a2e:3a15:0:b0:2ef:22e6:234b with SMTP id 38308e7fff4ca-2f12ee194bbmr39466531fa.26.1722238359583;
        Mon, 29 Jul 2024 00:32:39 -0700 (PDT)
Message-ID: <33f1595f10e3a6060119c6b22b930c299fd59235.camel@gmail.com>
Subject: Re: [XEN for-4.19] SUPPORT.md: Define support lifetime
From: oleksii.kurochko@gmail.com
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Julien Grall <jgrall@amazon.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>,  Jan Beulich <jbeulich@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>
Date: Mon, 29 Jul 2024 09:32:38 +0200
In-Reply-To: <20240727104546.94312-1-julien@xen.org>
References: <20240727104546.94312-1-julien@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

Hi Julien,

On Sat, 2024-07-27 at 11:45 +0100, Julien Grall wrote:
> From: Julien Grall <jgrall@amazon.com>
>=20
> Signed-off-by: Julien Grall <jgrall@amazon.com>
> ---
> =C2=A0SUPPORT.md | 10 +++++-----
> =C2=A01 file changed, 5 insertions(+), 5 deletions(-)
>=20
> diff --git a/SUPPORT.md b/SUPPORT.md
> index 77d2a7a7db1a..8b998d9bc7b7 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -9,13 +9,13 @@ for the definitions of the support status levels
> etc.
> =C2=A0
> =C2=A0# Release Support
> =C2=A0
> -=C2=A0=C2=A0=C2=A0 Xen-Version: 4.19-rc
> -=C2=A0=C2=A0=C2=A0 Initial-Release: n/a
> -=C2=A0=C2=A0=C2=A0 Supported-Until: TBD
> -=C2=A0=C2=A0=C2=A0 Security-Support-Until: Unreleased - not yet security=
-supported
> +=C2=A0=C2=A0=C2=A0 Xen-Version: 4.19
> +=C2=A0=C2=A0=C2=A0 Initial-Release: 2024-07-29
> +=C2=A0=C2=A0=C2=A0 Supported-Until: 2026-01-29
> +=C2=A0=C2=A0=C2=A0 Security-Support-Until: 2027-07-29

I am not sure that it is critical but I am still waiting for CHANGELOG
changes review. If it won't reviewed/merged today we can't cut off the
release today so the date should be changed. ( But I hope we will be
able to review and merge CHANGELOG changes [1] )

Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>

[1]
https://lore.kernel.org/xen-devel/0c93b49ac00fa92721035b4f9eb2ae76175fe886.=
1722237887.git.oleksii.kurochko@gmail.com/T/#u

~ Oleksii

> =C2=A0
> =C2=A0Release Notes
> -: <a
> href=3D"https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes
> ">RN</a>
> +: <a
> href=3D"https://wiki.xenproject.org/wiki/Xen_Project_4.19_Release_Notes
> ">RN</a>
> =C2=A0
> =C2=A0# Feature Support
> =C2=A0



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 07:49:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 07:49:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766317.1176799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYL7s-0004G2-5y; Mon, 29 Jul 2024 07:49:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766317.1176799; Mon, 29 Jul 2024 07:49: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 1sYL7s-0004Fv-2s; Mon, 29 Jul 2024 07:49:00 +0000
Received: by outflank-mailman (input) for mailman id 766317;
 Mon, 29 Jul 2024 07:48:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYL7q-0004Fn-S7
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 07:48:58 +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 0240a686-4d7f-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 09:48:56 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a7a9a369055so353912066b.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 00:48: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
 a640c23a62f3a-a7acad92fd8sm467852066b.159.2024.07.29.00.48.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 00:48: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: 0240a686-4d7f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722239336; x=1722844136; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yRZECdnepxKr8OdvtClTHDTPSPKU+zpa9QLJ01Ubr9Q=;
        b=Jl+QvbwrJegz8OoDhcXo6dL0ZvJuCw7iFjAEZ5c7iXDU4CAIbJ+Ag3ZqGehK15Z/GF
         u3+3D+PhSlT25JKx0HO0Rjzdg2DAqmYwviM3S0TvzKnABuOWNEQcq6BuoLHg2/UuGi4W
         6RgqO7o9YnjBU7yerkL+JAO1zOo+pD8Q8SxY/pd8iu4kx/hZx17Sb3qHpk1TnSBZDYAE
         CgxxVkFFrAuBUEgLuvlx6Rm3usFMt4QiJZ/3zL+3lsOkRBLAQIJUo8G0db7Y8zTvhuD4
         XuP5c92S0JEETO/a+N2zc0DeDrjiKiNl5X5IfZMkJKwf0+5HOYJSOLj8l9XI9MHUbUeE
         OmsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722239336; x=1722844136;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yRZECdnepxKr8OdvtClTHDTPSPKU+zpa9QLJ01Ubr9Q=;
        b=uvS5ACs4HVVX7m3RmjUHcuN1DHI6xuNiuRVONal8YoXK+mDCD74H+0FUOb9MNu7LQ1
         hFv2SfrOZ6Yh//v0wfwIHjpg86J7nGxcq2Rklu06w1QwnN4B5zY9dHZpGcjIOmuIkKKj
         PT5ooTjNYv2fIiwDadPvMt3lb8j+8PJHEsbmPguukVmmgOJPzTx/jrt0YkePabpNEs0W
         DewyUrwY9c07/ucn4m1dqP1tPYadCUdNInM774dDykdLXBPDHqd+fwbJlW3mM8n2Qtx7
         M6ongLkMjNjBp2EJ8ZL4BPGt5yPxWJlHIEkZPsnEo4I1LUCAbFOgIipKBMChPLiHrda1
         13hA==
X-Forwarded-Encrypted: i=1; AJvYcCUco7urE0H+1/sb4CrxkdFzjRGJLUG3OjMLz1bfUrgiLtTVrYvL93p1M+Q/Pzhn2zIGmmyKu0KyFqZZhUOSxwjFMkVZ6wu4VsoN/TE2//c=
X-Gm-Message-State: AOJu0Yy/EbUvTy0/sL0oX9sqzPAJTOlIXGqUFpT2VmsKMqMwfvJstP16
	p0SdbSMI0cAlwH5Q9iTjehhHk6PDy4R8MhUMkBmXhC4YWOSCear1x4rr6p3bIA==
X-Google-Smtp-Source: AGHT+IE+L5hIKbjbH4HS746ObXwB0Amz0zqp/EpZIVoklQ0+3mXnUDKYQ6WvnDMi9ZwoyrZeZQJ9vw==
X-Received: by 2002:a17:907:d8e:b0:a77:c314:d621 with SMTP id a640c23a62f3a-a7d3ff557c0mr567180566b.13.1722239335985;
        Mon, 29 Jul 2024 00:48:55 -0700 (PDT)
Message-ID: <9add0cfe-e5e9-41fa-9845-4921f53f479c@suse.com>
Date: Mon, 29 Jul 2024 09:48:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/viridian: Clarify some viridian logging strings
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240726145200.1991-1-alejandro.vallejo@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240726145200.1991-1-alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.07.2024 16:52, Alejandro Vallejo wrote:
> It's sadically misleading to show an error without letters and expect
> the dmesg reader to understand it's in hex. The patch adds a 0x prefix
> to all hex numbers that don't already have it.

Just a few remarks: First I agree with Paul here. Imo ...

> --- a/xen/arch/x86/hvm/viridian/synic.c
> +++ b/xen/arch/x86/hvm/viridian/synic.c
> @@ -172,7 +172,7 @@ int viridian_synic_wrmsr(struct vcpu *v, uint32_t idx, uint64_t val)
>          vector = new.vector;
>          vv->vector_to_sintx[vector] = sintx;
>  
> -        printk(XENLOG_G_INFO "%pv: VIRIDIAN SINT%u: vector: %x\n", v, sintx,
> +        printk(XENLOG_G_INFO "%pv: VIRIDIAN SINT%u: vector: %#x\n", v, sintx,
>                 vector);

... vectors should simply never be logged decimal, and then there's no
need for any disambiguating 0x.

> --- a/xen/arch/x86/hvm/viridian/viridian.c
> +++ b/xen/arch/x86/hvm/viridian/viridian.c
> @@ -253,7 +253,7 @@ static void dump_guest_os_id(const struct domain *d)
>      goi = &d->arch.hvm.viridian->guest_os_id;
>  
>      printk(XENLOG_G_INFO
> -           "d%d: VIRIDIAN GUEST_OS_ID: vendor: %x os: %x major: %x minor: %x sp: %x build: %x\n",
> +           "d%d: VIRIDIAN GUEST_OS_ID: vendor: %#x os: %#x major: %#x minor: %#x sp: %#x build: %#x\n",
>             d->domain_id, goi->vendor, goi->os, goi->major, goi->minor,
>             goi->service_pack, goi->build_number);

Here otoh I agree, to some degree at least: Generally I'd expect version
numbers to be logged decimal.

What would have been nice both here and ...

> @@ -264,7 +264,7 @@ static void dump_hypercall(const struct domain *d)
>  
>      hg = &d->arch.hvm.viridian->hypercall_gpa;
>  
> -    printk(XENLOG_G_INFO "d%d: VIRIDIAN HYPERCALL: enabled: %x pfn: %lx\n",
> +    printk(XENLOG_G_INFO "d%d: VIRIDIAN HYPERCALL: enabled: %u pfn: %#lx\n",
>             d->domain_id,
>             hg->enabled, (unsigned long)hg->pfn);

... here would be to take the opportunity and switch to %pd.

> @@ -372,7 +372,8 @@ int guest_wrmsr_viridian(struct vcpu *v, uint32_t idx, uint64_t val)
>          d->shutdown_code = SHUTDOWN_crash;
>          spin_unlock(&d->shutdown_lock);
>  
> -        gprintk(XENLOG_WARNING, "VIRIDIAN CRASH: %lx %lx %lx %lx %lx\n",
> +        gprintk(XENLOG_WARNING,
> +                "VIRIDIAN GUEST_CRASH: %#lx %#lx %#lx %#lx %#lx\n",
>                  vv->crash_param[0], vv->crash_param[1], vv->crash_param[2],
>                  vv->crash_param[3], vv->crash_param[4]);

Here I wonder what good the underscore does that you add.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 07:53:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 07:53:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766324.1176809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLBd-0005iS-Lf; Mon, 29 Jul 2024 07:52:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766324.1176809; Mon, 29 Jul 2024 07: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 1sYLBd-0005iL-IQ; Mon, 29 Jul 2024 07:52:53 +0000
Received: by outflank-mailman (input) for mailman id 766324;
 Mon, 29 Jul 2024 07: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYLBc-0005iE-6c
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 07:52: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 8e26d9e0-4d7f-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 09:52:51 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a6265d3ba8fso294238666b.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 00:52: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
 a640c23a62f3a-a7acad4ae4dsm470840166b.136.2024.07.29.00.52.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 00:52: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: 8e26d9e0-4d7f-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722239571; x=1722844371; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rXOrwGXm38fF+ifJcSxFCrHtH99KGTl/Cdeaz3eH+AU=;
        b=OBLmLNjmy4N22ieP3b7ASQKon6e8pbKN7HPXPpDgeUxv69PFITSEOfd9x8f2TG0j/R
         1mZP2HYT7RX0gS9P9sqetQ2jzUDUsEU9HGiH/gpTucTjdcO2KCyySr3Ubbzi4y8CDNTQ
         BMrUuQEPgIAwUDi1/uisGiMd1kh584iFHrwymbOa7ZwksN/p8euIBNTtTNXtcK3SKXrn
         yib0YNpSSQFogrzavA2pecqqFipJz0kfIhJssSsC1yqqwujAHpYq4gRkwqpQF6zd6XvT
         8pv4p1ednAmvsU++BOVnpKO8g4thPyUKqv93WZVIOCclgMFIwQjydC6jqW2izUmy87AX
         4yCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722239571; x=1722844371;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rXOrwGXm38fF+ifJcSxFCrHtH99KGTl/Cdeaz3eH+AU=;
        b=hw+XuyxoSHEHYe096zSb/+JzskIntodzdWyI23d5KTY7rmY0ZfgJHpA1AS/N6vxVK9
         joFF/NqJbN8NvhmTdCLpXwoLewX2378PDqsqquqeLU+gZw+PZZsxJVQx0r/EAbM2BmU6
         nTSBJ/ZULn/wOr0xYU5+/AsbKd2p4L4hXLXbO3nAp81cN7YkeiZt5MOeKj9JR9l6BnuD
         oF8YoBL+fhGWpBsvGsFvbWkHJ2W3W0X7TtCgPJRytn1TI9EDw0F0N4/7MasXKd4N6EcH
         UTP91i2Cxveosf4SzXhlvD5UIMCYkpdY6T4GGxwIr9GD8IqewN/JrSxcCLiw26TEg5Xo
         qc0Q==
X-Forwarded-Encrypted: i=1; AJvYcCW6U9EG37IsdlmkXrN4Vo+cJ2nTJE+dWrfCI5tcfzMy+N+X39QZ/eJ8q08wE7JunSeiW9wqDbKdpuKE+hgRNoV6y7ZQXj7u9NV4qnO+dVo=
X-Gm-Message-State: AOJu0YxTh+CVjj1R2P42cBGdBOCO0Oopow5iHLqS+3Omr7qcwp046VTJ
	/Jl/Qxnt1R3yra4/MBoolwAyNlM1dgwQPD53+lrNpk5w0QAUhIPsCr4ZubqLPfP1p2JvwKERVwk
	=
X-Google-Smtp-Source: AGHT+IGVU3MYhPkHnwVbIhFsH7laq05SrsN4aPvEsKrScrmHBtI0RP41H0o69lReH/z89+LtyWdojQ==
X-Received: by 2002:a17:907:6d01:b0:a77:f2c5:84bf with SMTP id a640c23a62f3a-a7d3ffa524bmr400230566b.2.1722239570718;
        Mon, 29 Jul 2024 00:52:50 -0700 (PDT)
Message-ID: <c46c1d62-c9d3-4549-8006-9e846fbc9d3d@suse.com>
Date: Mon, 29 Jul 2024 09:52:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/22] x86/mm: drop l{1,2,3,4}e_write_atomic()
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: alejandro.vallejo@cloud.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-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: <20240726152206.28411-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.07.2024 17:21, Roger Pau Monne wrote:
> The l{1,2,3,4}e_write_atomic() and non _atomic suffixed helpers share the same
> implementation, so it seems pointless and possibly confusing to have both.
> 
> Remove the l{1,2,3,4}e_write_atomic() helpers and switch it's user to
> l{1,2,3,4}e_write(), as that's also atomic.  While there also remove
> pte_write{,_atomic}() and just use write_atomic() in the wrappers.
> 
> No functional change intended.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

In the description, can we perhaps mention the historical aspect of why
these were there (and separate)? Happy to add a sentence when committing,
as long as you agree.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 07:53:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 07:53:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766332.1176818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLCR-0006HT-2A; Mon, 29 Jul 2024 07:53:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766332.1176818; Mon, 29 Jul 2024 07: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 1sYLCQ-0006HM-VZ; Mon, 29 Jul 2024 07:53:42 +0000
Received: by outflank-mailman (input) for mailman id 766332;
 Mon, 29 Jul 2024 07: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYLCO-0005iE-VC
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 07:53:40 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab6aa6ef-4d7f-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 09:53:40 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a7a81bd549eso281656466b.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 00:53: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
 a640c23a62f3a-a7acad41616sm472995566b.137.2024.07.29.00.53.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 00:53: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: ab6aa6ef-4d7f-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722239620; x=1722844420; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=47XvnKvqGFz/PAE7vf8u+e1o2yMA+dKIiEZnU44Qdps=;
        b=ddkSZE2VbjbRMuzm1uwyv7Nx4Qgpc0n7bwbkQhNH1pA+yWacznTVQ8GtenAt3RPvVh
         E6Q9UG4Vu4tkWqw/dkkitJH1ZTGIPi7UMhfuWEfufwJQLK0WJjmap2vsq+htGa4QufCJ
         2hMBABmUSJbk21BXZKYva+dmurXraJFq8dOLxvAC0o7ka9/QmHqqVA/+KUncdXJUE2Z5
         9dduDM/ku++ojMj5B+AJ6+M+pqDrIztV2/oNNy/dku4uyb92+STWAsTBo+qXVDY3+n4g
         QpI+hPBz8BTBWTzuJ952tti4HAPgCmZ8p9zlC53tPKRANP8YFNlrsVJLVYTZIZN/nJOw
         SQSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722239620; x=1722844420;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=47XvnKvqGFz/PAE7vf8u+e1o2yMA+dKIiEZnU44Qdps=;
        b=PyyQ5h+n0PJzE9DwPovOh6GU7FkfsIUFtr+au+JRn64FcCL79QcHdy9LNMkmI3x/YT
         mAsSR7VysftyHe/wmtECRhU54VkSgCPvD3R3aRZqPsW3nH9+MvvpuDRRsXICEVRa7id/
         KXkWcEvkZA2/uXKWg+EDEz/0fGJiPAQCoPnw4dSvf7RTubFvDOeZfsQEEAP5P1R3GnUi
         B6Ejg/Q+ta16wymY25VmFTBkiD1x+lFF69pmFsJ9kxlhboIiJu+VEWVuNR5R636YHWfJ
         myiG7/I3LdY35rLMg0XdhFFllKiQSFv5UWwXqdyDRlvUccUdt/CsW6igLcqlbgUhejwl
         VF5Q==
X-Forwarded-Encrypted: i=1; AJvYcCXiMA8pK1fJNFviByjwVAVczRoUyG3ldDMF+wm9/xy2Qgg7SLoPnfe4MNMXzsA9Zj3VoHm731FjQP21j9ujO8qtP714Nao6DaA5OoHZDqY=
X-Gm-Message-State: AOJu0Yy15hwvX2EUWzwtgdKAGbOKVRm4hxXm0f6cqkHDboIKBmCfO/KF
	sem5V9RMRQAnkNSHayfSjaAc6XJf43Q5OwvVk8469gwoO4fFnxzULgGKkzUlGQ==
X-Google-Smtp-Source: AGHT+IGyiwwlOqM8OqDR0y/GOidQf/UsAAQQOhUV7XOw69mErpgzb+PKZlI6MTV3ufK42RA+uJo1RA==
X-Received: by 2002:a17:907:9720:b0:a7a:97ca:3056 with SMTP id a640c23a62f3a-a7d3fff8d5fmr501686566b.16.1722239619888;
        Mon, 29 Jul 2024 00:53:39 -0700 (PDT)
Message-ID: <c20c15af-a8c6-44af-a0b2-bf24c7d27f72@suse.com>
Date: Mon, 29 Jul 2024 09:53:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/22] x86/mm: rename l{1,2,3,4}e_read_atomic()
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: alejandro.vallejo@cloud.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-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: <20240726152206.28411-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.07.2024 17:21, Roger Pau Monne wrote:
> There's no l{1,2,3,4}e_read() implementation, so drop the _atomic suffix from
> the read helpers.  This allows unifying the naming with the write helpers,
> which are also atomic but don't have the suffix already: l{1,2,3,4}e_write().
> 
> No functional change intended.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Jul 29 07:57:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 07:57:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766342.1176829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLFk-00077b-G3; Mon, 29 Jul 2024 07:57:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766342.1176829; Mon, 29 Jul 2024 07: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 1sYLFk-00077U-Cj; Mon, 29 Jul 2024 07:57:08 +0000
Received: by outflank-mailman (input) for mailman id 766342;
 Mon, 29 Jul 2024 07:57: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=EQyq=O5=bytedance.com=zhengqi.arch@srs-se1.protection.inumbo.net>)
 id 1sYLFj-00077O-D1
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 07:57:07 +0000
Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com
 [2607:f8b0:4864:20::432])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23ff8aba-4d80-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 09:57:03 +0200 (CEST)
Received: by mail-pf1-x432.google.com with SMTP id
 d2e1a72fcca58-70d39a836ccso71982b3a.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 00:57:03 -0700 (PDT)
Received: from [10.255.168.175] ([139.177.225.232])
 by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-70ead72b7easm6309789b3a.89.2024.07.29.00.56.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 00: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: 23ff8aba-4d80-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=bytedance.com; s=google; t=1722239822; x=1722844622; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=c3wfki45IHznha7QobB3MdtHXTqchjTEez4Ly6yQ4WE=;
        b=BFT8Vl0To7vEZwRIr8Th1CPwQzv7P5O7kI702Jd3dEeIYPXFL7JedeA33wmiRfh1w4
         PXQDHL3d4jMqVjbcPyDUlpFi3fT+rOrm/uzWTazbADGKeXfbqDALSuVDkhj0Kn4WMcsJ
         f/i/YSFaUEnXGHjq/RMyF/DPF/9loP8gSnSzDQwLnkqXRaWaNhWuZ5AeIxn91Q3zwkuV
         wgYijB7+l75v9yQVSuMB70gh2h7/kuu6uhzxKtmj5vbtLc+fbN61nNEPBroeeuzguk6X
         fd4hxez/yq3VXrbhSpeoYSzTqW4iiyOKw08R55uQ9cuBtCrHl2MhHNibkYoS5W6skCMj
         Wzew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722239822; x=1722844622;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=c3wfki45IHznha7QobB3MdtHXTqchjTEez4Ly6yQ4WE=;
        b=O78XAG696+vSQHGY89qzOZNyB5ZcvbZWG8p4lhWn5CnUVfZKGrYyB48OnTzkx2D3s5
         LBNQdZoIXqENvmyVRgT3FiGxAGGb6GFs3Qa+lE3nlq3NZFuKYyaZk8BP6RJVzu8GI8ei
         fy3LY7q8pBm9np3BYQv+f3T2NN1HPqzMLfi7CMFugVdtNIxJNRJzSLpf7scSS58XhKE9
         LXk+CCxvFNE8tEo9hCm1wy6xJAQqr5FTptwo5DhexOVCl3VIR2J7BF0FENjv4Gy3aNud
         i5Q+QEfM02fwXDQYVc3A6qBJQPW201YhvYOHaEIbLGHBKlyYPRPvRB2dgqZel4XcGeeo
         Vyog==
X-Forwarded-Encrypted: i=1; AJvYcCWmk+7S1S51Zcz5CqG7lilIP4DMgnZYEyRniXnAgElHv5L4RmwLSOqFXePY9slBACsoiXnyzG+f/54=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGjq308JGlMsYrCqYvZIpkZ1E6D7uJIe85ZGJJmT3zbNt1BO8n
	ZRMpqSHHojGfhVZ/YDFmv0Dbz/0ZkXVVgiPv806oLOdQ9wyFWgImZ0PR2A+FT8k=
X-Google-Smtp-Source: AGHT+IGe0lJSXq0Vh5OHsO4Tqomt8qIJFlqbE1F0RWa3l62BQCbxWuuvCVwPlATb9n6C8GSnyp3sLQ==
X-Received: by 2002:a05:6a00:6f4f:b0:70d:25f1:c086 with SMTP id d2e1a72fcca58-70eac7f5ff3mr8578118b3a.0.1722239821921;
        Mon, 29 Jul 2024 00:57:01 -0700 (PDT)
Message-ID: <fe50cde6-dc9f-49b0-9a9a-0d07fb643617@bytedance.com>
Date: Mon, 29 Jul 2024 15:56:50 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] mm: turn USE_SPLIT_PTE_PTLOCKS /
 USE_SPLIT_PTE_PTLOCKS into Kconfig options
Content-Language: en-US
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 linux-arm-kernel@lists.infradead.org, x86@kernel.org,
 linuxppc-dev@lists.ozlabs.org, xen-devel@lists.xenproject.org,
 linux-fsdevel@vger.kernel.org, Andrew Morton <akpm@linux-foundation.org>,
 Oscar Salvador <osalvador@suse.de>, Peter Xu <peterx@redhat.com>,
 Muchun Song <muchun.song@linux.dev>, Russell King <linux@armlinux.org.uk>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 "Naveen N. Rao" <naveen.n.rao@linux.ibm.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>, Alexander Viro <viro@zeniv.linux.org.uk>,
 Christian Brauner <brauner@kernel.org>
References: <20240726150728.3159964-1-david@redhat.com>
 <20240726150728.3159964-2-david@redhat.com>
From: Qi Zheng <zhengqi.arch@bytedance.com>
In-Reply-To: <20240726150728.3159964-2-david@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 2024/7/26 23:07, David Hildenbrand wrote:
> Let's clean that up a bit and prepare for depending on
> CONFIG_SPLIT_PMD_PTLOCKS in other Kconfig options.
> 
> More cleanups would be reasonable (like the arch-specific "depends on"
> for CONFIG_SPLIT_PTE_PTLOCKS), but we'll leave that for another day.
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>   arch/arm/mm/fault-armv.c      |  6 +++---
>   arch/x86/xen/mmu_pv.c         |  7 ++++---
>   include/linux/mm.h            |  8 ++++----
>   include/linux/mm_types.h      |  2 +-
>   include/linux/mm_types_task.h |  3 ---
>   kernel/fork.c                 |  4 ++--
>   mm/Kconfig                    | 18 +++++++++++-------
>   mm/memory.c                   |  2 +-
>   8 files changed, 26 insertions(+), 24 deletions(-)

That's great. Thanks!

Reviewed-by: Qi Zheng <zhengqi.arch@bytedance.com>

> 
> diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c
> index 2286c2ea60ec4..831793cd6ff94 100644
> --- a/arch/arm/mm/fault-armv.c
> +++ b/arch/arm/mm/fault-armv.c
> @@ -61,7 +61,7 @@ static int do_adjust_pte(struct vm_area_struct *vma, unsigned long address,
>   	return ret;
>   }
>   
> -#if USE_SPLIT_PTE_PTLOCKS
> +#if defined(CONFIG_SPLIT_PTE_PTLOCKS)
>   /*
>    * If we are using split PTE locks, then we need to take the page
>    * lock here.  Otherwise we are using shared mm->page_table_lock
> @@ -80,10 +80,10 @@ static inline void do_pte_unlock(spinlock_t *ptl)
>   {
>   	spin_unlock(ptl);
>   }
> -#else /* !USE_SPLIT_PTE_PTLOCKS */
> +#else /* !defined(CONFIG_SPLIT_PTE_PTLOCKS) */
>   static inline void do_pte_lock(spinlock_t *ptl) {}
>   static inline void do_pte_unlock(spinlock_t *ptl) {}
> -#endif /* USE_SPLIT_PTE_PTLOCKS */
> +#endif /* defined(CONFIG_SPLIT_PTE_PTLOCKS) */
>   
>   static int adjust_pte(struct vm_area_struct *vma, unsigned long address,
>   	unsigned long pfn)
> diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
> index f1ce39d6d32cb..f4a316894bbb4 100644
> --- a/arch/x86/xen/mmu_pv.c
> +++ b/arch/x86/xen/mmu_pv.c
> @@ -665,7 +665,7 @@ static spinlock_t *xen_pte_lock(struct page *page, struct mm_struct *mm)
>   {
>   	spinlock_t *ptl = NULL;
>   
> -#if USE_SPLIT_PTE_PTLOCKS
> +#if defined(CONFIG_SPLIT_PTE_PTLOCKS)
>   	ptl = ptlock_ptr(page_ptdesc(page));
>   	spin_lock_nest_lock(ptl, &mm->page_table_lock);
>   #endif
> @@ -1553,7 +1553,8 @@ static inline void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn,
>   
>   		__set_pfn_prot(pfn, PAGE_KERNEL_RO);
>   
> -		if (level == PT_PTE && USE_SPLIT_PTE_PTLOCKS && !pinned)
> +		if (level == PT_PTE && IS_ENABLED(CONFIG_SPLIT_PTE_PTLOCKS) &&
> +		    !pinned)
>   			__pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
>   
>   		xen_mc_issue(XEN_LAZY_MMU);
> @@ -1581,7 +1582,7 @@ static inline void xen_release_ptpage(unsigned long pfn, unsigned level)
>   	if (pinned) {
>   		xen_mc_batch();
>   
> -		if (level == PT_PTE && USE_SPLIT_PTE_PTLOCKS)
> +		if (level == PT_PTE && IS_ENABLED(CONFIG_SPLIT_PTE_PTLOCKS))
>   			__pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, pfn);
>   
>   		__set_pfn_prot(pfn, PAGE_KERNEL);
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 0472a5090b180..dff43101572ec 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -2843,7 +2843,7 @@ static inline void pagetable_free(struct ptdesc *pt)
>   	__free_pages(page, compound_order(page));
>   }
>   
> -#if USE_SPLIT_PTE_PTLOCKS
> +#if defined(CONFIG_SPLIT_PTE_PTLOCKS)
>   #if ALLOC_SPLIT_PTLOCKS
>   void __init ptlock_cache_init(void);
>   bool ptlock_alloc(struct ptdesc *ptdesc);
> @@ -2895,7 +2895,7 @@ static inline bool ptlock_init(struct ptdesc *ptdesc)
>   	return true;
>   }
>   
> -#else	/* !USE_SPLIT_PTE_PTLOCKS */
> +#else	/* !defined(CONFIG_SPLIT_PTE_PTLOCKS) */
>   /*
>    * We use mm->page_table_lock to guard all pagetable pages of the mm.
>    */
> @@ -2906,7 +2906,7 @@ static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pte_t *pte)
>   static inline void ptlock_cache_init(void) {}
>   static inline bool ptlock_init(struct ptdesc *ptdesc) { return true; }
>   static inline void ptlock_free(struct ptdesc *ptdesc) {}
> -#endif /* USE_SPLIT_PTE_PTLOCKS */
> +#endif /* defined(CONFIG_SPLIT_PTE_PTLOCKS) */
>   
>   static inline bool pagetable_pte_ctor(struct ptdesc *ptdesc)
>   {
> @@ -2966,7 +2966,7 @@ pte_t *pte_offset_map_nolock(struct mm_struct *mm, pmd_t *pmd,
>   	((unlikely(pmd_none(*(pmd))) && __pte_alloc_kernel(pmd))? \
>   		NULL: pte_offset_kernel(pmd, address))
>   
> -#if USE_SPLIT_PMD_PTLOCKS
> +#if defined(CONFIG_SPLIT_PMD_PTLOCKS)
>   
>   static inline struct page *pmd_pgtable_page(pmd_t *pmd)
>   {
> diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
> index 4854249792545..165c58b12ccc9 100644
> --- a/include/linux/mm_types.h
> +++ b/include/linux/mm_types.h
> @@ -947,7 +947,7 @@ struct mm_struct {
>   #ifdef CONFIG_MMU_NOTIFIER
>   		struct mmu_notifier_subscriptions *notifier_subscriptions;
>   #endif
> -#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
> +#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !defined(CONFIG_SPLIT_PMD_PTLOCKS)
>   		pgtable_t pmd_huge_pte; /* protected by page_table_lock */
>   #endif
>   #ifdef CONFIG_NUMA_BALANCING
> diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h
> index a2f6179b672b8..bff5706b76e14 100644
> --- a/include/linux/mm_types_task.h
> +++ b/include/linux/mm_types_task.h
> @@ -16,9 +16,6 @@
>   #include <asm/tlbbatch.h>
>   #endif
>   
> -#define USE_SPLIT_PTE_PTLOCKS	(NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS)
> -#define USE_SPLIT_PMD_PTLOCKS	(USE_SPLIT_PTE_PTLOCKS && \
> -		IS_ENABLED(CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK))
>   #define ALLOC_SPLIT_PTLOCKS	(SPINLOCK_SIZE > BITS_PER_LONG/8)
>   
>   /*
> diff --git a/kernel/fork.c b/kernel/fork.c
> index a8362c26ebcb0..216ce9ba4f4e6 100644
> --- a/kernel/fork.c
> +++ b/kernel/fork.c
> @@ -832,7 +832,7 @@ static void check_mm(struct mm_struct *mm)
>   		pr_alert("BUG: non-zero pgtables_bytes on freeing mm: %ld\n",
>   				mm_pgtables_bytes(mm));
>   
> -#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
> +#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !defined(CONFIG_SPLIT_PMD_PTLOCKS)
>   	VM_BUG_ON_MM(mm->pmd_huge_pte, mm);
>   #endif
>   }
> @@ -1276,7 +1276,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p,
>   	RCU_INIT_POINTER(mm->exe_file, NULL);
>   	mmu_notifier_subscriptions_init(mm);
>   	init_tlb_flush_pending(mm);
> -#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
> +#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !defined(CONFIG_SPLIT_PMD_PTLOCKS)
>   	mm->pmd_huge_pte = NULL;
>   #endif
>   	mm_init_uprobes_state(mm);
> diff --git a/mm/Kconfig b/mm/Kconfig
> index b72e7d040f789..7b716ac802726 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -585,17 +585,21 @@ config ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE
>   # at the same time (e.g. copy_page_range()).
>   # DEBUG_SPINLOCK and DEBUG_LOCK_ALLOC spinlock_t also enlarge struct page.
>   #
> -config SPLIT_PTLOCK_CPUS
> -	int
> -	default "999999" if !MMU
> -	default "999999" if ARM && !CPU_CACHE_VIPT
> -	default "999999" if PARISC && !PA20
> -	default "999999" if SPARC32
> -	default "4"
> +config SPLIT_PTE_PTLOCKS
> +	def_bool y
> +	depends on MMU
> +	depends on NR_CPUS >= 4
> +	depends on !ARM || CPU_CACHE_VIPT
> +	depends on !PARISC || PA20
> +	depends on !SPARC32
>   
>   config ARCH_ENABLE_SPLIT_PMD_PTLOCK
>   	bool
>   
> +config SPLIT_PMD_PTLOCKS
> +	def_bool y
> +	depends on SPLIT_PTE_PTLOCKS && ARCH_ENABLE_SPLIT_PMD_PTLOCK
> +
>   #
>   # support for memory balloon
>   config MEMORY_BALLOON
> diff --git a/mm/memory.c b/mm/memory.c
> index 833d2cad6eb29..714589582fe15 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -6559,7 +6559,7 @@ long copy_folio_from_user(struct folio *dst_folio,
>   }
>   #endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */
>   
> -#if USE_SPLIT_PTE_PTLOCKS && ALLOC_SPLIT_PTLOCKS
> +#if defined(CONFIG_SPLIT_PTE_PTLOCKS) && ALLOC_SPLIT_PTLOCKS
>   
>   static struct kmem_cache *page_ptl_cachep;
>   


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 07:59:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 07:59:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766349.1176839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLHN-0007jD-Qx; Mon, 29 Jul 2024 07:58:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766349.1176839; Mon, 29 Jul 2024 07:58: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 1sYLHN-0007j6-O1; Mon, 29 Jul 2024 07:58:49 +0000
Received: by outflank-mailman (input) for mailman id 766349;
 Mon, 29 Jul 2024 07:58: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYLHN-0007j0-67
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 07:58:49 +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 624e315f-4d80-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 09:58:47 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5af326eddb2so4295321a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 00:58: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-5ac63b59bfesm5384919a12.44.2024.07.29.00.58.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 00:58: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: 624e315f-4d80-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722239927; x=1722844727; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JTA9nN1j9WD+sbsfEZj27INEmgj7ty4D+VYolvmYf9U=;
        b=IVEaYJo9Mh8HX/9ewPtzCXzp57Cda4prfNe+jZSbpHOFSRTcCnOrIn9zUyu/ifC19u
         DnO94EzexL+8ES9niAKLEH7hikUqcUHzC4D+nDIHmhB2WiHvI0JVr9E1FrWoDgCBrOWX
         AR7twli9TMmFodkbA9ngd0LAzw5qMinKuPlswu0A1nDA5qrtRSsPTvwkmc3GnLVI+QAe
         LgvFyJmSj0E46DXiB8H7v0Nh6iYtg82nSgU+g7DSNP/RMbeG3UuAALOKIlTwqSVG/9B2
         XeWk50PxEDv6/mQ5vf8ZJTnBMkEhCjcjl6XoO6MwMYNdS6loV1QtnvKbudofnhTxopnc
         a4eA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722239927; x=1722844727;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JTA9nN1j9WD+sbsfEZj27INEmgj7ty4D+VYolvmYf9U=;
        b=cUCMb9z+AS3x9uvBMrO7wWSu3/uFwE7P9SJ3Rz25RDvG1l0QpNodBmkNyliz6qY+sQ
         n73iRchFh4kN+PMj1X84KNRGw8QiLMuqUumxncdgOTEotRSURIgCuW2M2w9PUWPjGYI/
         i0FKKSG51g1Ekg8n4DF2N0DG1CUHvIi2s8ZxCee68XZG6LDvpcJSeoOZuEmNDdIhhgrb
         Qm05NBnqaoKqMmMxcWDoVaShRpJvyhZXXUK+5ddJpjh9fWi2hRdTD/ierlam0xowx1yD
         X37O25eY596UQp+BFj4BzCPSGUrMqjQ9vCCevR9IGsjCm7pNx9QjHT2iDNuF12QSFj88
         mUbg==
X-Forwarded-Encrypted: i=1; AJvYcCWAAApjHm9rKsO8uiCkWUMcBLMP8WpqNkO0xMrIq3oFQTma6Ub2G/lqY8mSuHlixBzKAeRdM3W+2Mgf4sr32d8hJEkOCcEccjhgfpOz4Wc=
X-Gm-Message-State: AOJu0YxIfw8JuT+MIKD7NI88KH2WS5bFR2fku1YWui83THLkDivhLlU9
	JE8u0bMnV6M3jPrYUiM7Uv0H1Lrh2Pa4O+OauFOfiEKmaUB/8fBD7gsMZmju6g==
X-Google-Smtp-Source: AGHT+IERqENyqgn6XPQzpAOBc6W+v3CLD9Lg1EYq+cSfTpHRMOssb05vgJVLJgDg6Xl1V4Lyxus9dw==
X-Received: by 2002:a50:d75e:0:b0:5af:d7a9:63d7 with SMTP id 4fb4d7f45d1cf-5b0173a0c65mr6227818a12.6.1722239926595;
        Mon, 29 Jul 2024 00:58:46 -0700 (PDT)
Message-ID: <1491a5c3-bb30-4804-95d6-31946ee1588d@suse.com>
Date: Mon, 29 Jul 2024 09:58:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v4] tools/lsevtchn: Use errno macro to handle
 hypercall error cases
To: Matthew Barnes <matthew.barnes@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <cce46da98274f84a3cea16d0e1e34b56d4d09410.1722011581.git.matthew.barnes@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cce46da98274f84a3cea16d0e1e34b56d4d09410.1722011581.git.matthew.barnes@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.07.2024 18:40, Matthew Barnes wrote:
> @@ -24,7 +25,23 @@ int main(int argc, char **argv)
>          status.port = port;
>          rc = xc_evtchn_status(xch, &status);
>          if ( rc < 0 )
> -            break;
> +        {
> +            switch ( errno ) {
> +                case EACCES: continue; /* Xen-owned evtchn */
> +                case EINVAL: /* Port enumeration has ended */
> +                    rc = 0;
> +                    goto out;
> +
> +                case ESRCH:
> +                    perror("Domain ID does not correspond to valid domain");
> +                    rc = ESRCH;
> +                    goto out;
> +                default:
> +                    perror(NULL);
> +                    rc = errno;
> +                    goto out;
> +            }
> +        }

There are a number of style violations here: Opening figure brace
placement, indentation of the case labels, placement of the
"continue", lack of blank lines between non-fall-through case blocks.
Also why three "goto out" when one would do?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 08:00:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 08:00:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766357.1176849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLJC-0001Ne-8w; Mon, 29 Jul 2024 08:00:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766357.1176849; Mon, 29 Jul 2024 08: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 1sYLJC-0001NW-5o; Mon, 29 Jul 2024 08:00:42 +0000
Received: by outflank-mailman (input) for mailman id 766357;
 Mon, 29 Jul 2024 08:00: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=2PyK=O5=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1sYLJB-0001NL-4S
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 08:00:41 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a5971792-4d80-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 10:00:40 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-52efe4c7c16so4509733e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 01: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: a5971792-4d80-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722240039; x=1722844839; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=v+fGOGCd2qFL5BV0AyxUeQOj9yUyE03oPQ7rwv3EXQo=;
        b=OwD03sIzONqvkL3AN0fuijJifkHmuGDg+XZHPKffwaFq0SOzbXbfsqEYb74lAeq2m9
         RSYstTtqHWdlgydYBrST3uP9E0TXcpBG6Fdcwcb1vFSAciEAxK2MUGF9XO+8yPotshrs
         Xyo8/UrqZhKQqYC4/4i7wkuKg/2ffZMEHWzAY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722240039; x=1722844839;
        h=to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=v+fGOGCd2qFL5BV0AyxUeQOj9yUyE03oPQ7rwv3EXQo=;
        b=MIKYC1SIuTGOCABYeOdzcXuwDInjnea+IDKY6PSSJcJ+nizi8jWbgYdLs4/NMhBDTL
         e2ck4+YnYwYcNAlxH1G33X9uagRYSAeI24V8jAurqhm1BCfqru/kQp2UWe/NZpaeLRH8
         CAeAqASsi8V9UrOoTTNHjFq3oYOS6JhH3bwOwCWP77EMSskEAi3ibgcLXNSIPvRvEg3p
         aWL0lc6/kDyrZ9UzP//zcASI9k1jX1VVEIi/EGP2XIWHpxfhJic72UITKGkUxrSZC+Ud
         Vc7F5UpZ+SXH95fh41ngLIkThQKl15V0wKstXXnrpHuj5XBw+B4Bwwvm0ezJisyI8Yky
         09jg==
X-Gm-Message-State: AOJu0Yw4v13DgbjWajSvzxCZ3Cqh8cJ3N26RY2/aU7Gqvk8f6MiE1VBL
	g4cQLWnlgl1EqEGaaZ+SVh2QOxB9Zq0uROpxFHF8CW2peHbiHl0qSHfO8JFyy26N2uKcZDCsNZf
	16AbqmW/qVsDh91JPkIaeZ+RvxlHHw6Pg4nlFLxePDnfdupTsN30qEBGkq9Y=
X-Google-Smtp-Source: AGHT+IHU8w3PCBeOHoSvatmuWtGzo4NOxXh1713jK9MfIgMJXm4/JB57vOcb8jn7eYo+cFuuBPgStJikztnU/NLbIkE=
X-Received: by 2002:ac2:4558:0:b0:52e:be2c:4b05 with SMTP id
 2adb3069b0e04-5309b27d284mr3674453e87.21.1722240038806; Mon, 29 Jul 2024
 01:00:38 -0700 (PDT)
MIME-Version: 1.0
From: Kelly Choi <kelly.choi@cloud.com>
Date: Mon, 29 Jul 2024 09:00:00 +0100
Message-ID: <CAO-mL=y6W0xo=3hmhS1tCw5ywB_s8dZ2eWAsJH=L2yQhJ30ujQ@mail.gmail.com>
Subject: [ANNOUNCE] Call for agenda items - Community Call 1st August 2024
To: xen-devel <xen-devel@lists.xenproject.org>, xen-users@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000bb557f061e5e410c"

--000000000000bb557f061e5e410c
Content-Type: text/plain; charset="UTF-8"

Hi all,

*Please add your proposed agenda items below.*

https://cryptpad.fr/pad/#/2/pad/edit/VxQ65XLa-w4D3D9z9ipZInnC/

**Please can a community member help host and record the call this month as
I will be out of office**

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

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

*DATE: Thursday 1st August 2024*

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


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








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

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

Many thanks,
Kelly Choi

Community Manager
Xen Project

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

<div dir=3D"ltr"><div>Hi all,<br><p><u>Please add your proposed agenda item=
s below.</u>=C2=A0</p><p><a href=3D"https://cryptpad.fr/pad/#/2/pad/edit/Vx=
Q65XLa-w4D3D9z9ipZInnC/">https://cryptpad.fr/pad/#/2/pad/edit/VxQ65XLa-w4D3=
D9z9ipZInnC/</a>=C2=A0<br></p><p><font color=3D"#ff0000"><b>*Please can a c=
ommunity member help host and record the call this month as I will be out o=
f office*</b></font></p><p>If any action items are missing or have been res=
olved, please add/remove them from the sheet.=C2=A0</p><p><b><span class=3D=
"gmail-il">CALL</span>=C2=A0LINK:=C2=A0<a href=3D"https://www.google.com/ur=
l?q=3Dhttps://meet.jit.si/XenProjectCommunityCall&amp;sa=3DD&amp;source=3Dc=
alendar&amp;ust=3D1699196661201312&amp;usg=3DAOvVaw1FcogEsMjFSd1Pmi7V0cBc" =
target=3D"_blank">https://meet.jit.si/XenProjectCommunityCall</a></b></p><p=
><b>DATE: Thursday 1st August 2024</b></p><p><b>TIME: 1500 UTC (4 pm UK tim=
e)</b></p><i>Note the following administrative conventions for the=C2=A0<sp=
an class=3D"gmail-il">call</span>:</i></div><div><div><i>* To allow time to=
 switch between meetings, we plan on starting the<br>agenda at 15:05 UTC sh=
arp.=C2=A0 Aim to join by 15:03 UTC if possible to allocate<br>time to sort=
 out technical difficulties.</i></div><div><i><br>* If you want to be CC&#3=
9;ed please add or remove yourself from the<br>sign-up-sheet at=C2=A0<a hre=
f=3D"https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/" rel=3D=
"noreferrer" target=3D"_blank">https://cryptpad.fr/pad/#/2/pad/edit/D9vGzih=
PxxAOe6RFPz0sRCf+/</a><br><br>=3D=3D=C2=A0<span class=3D"gmail-il">Dial</sp=
an>-in Information =3D=3D<br>## Meeting time<br>16:00 - 17:00 British time<=
br>Further International meeting times:<br></i><a href=3D"https://www.timea=
nddate.com/worldclock/meetingdetails.html?year=3D2024&amp;month=3D8&amp;day=
=3D1=3D4&amp;hour=3D15&amp;min=3D0&amp;sec=3D0&amp;p1=3D1234&amp;p2=3D37&am=
p;p3=3D224&amp;p4=3D179" target=3D"_blank">https://www.timeanddate.com/worl=
dclock/meetingdetails.html?year=3D2024&amp;month=3D8&amp;day=3D1=3D4&amp;ho=
ur=3D15&amp;min=3D0&amp;sec=3D0&amp;p1=3D1234&amp;p2=3D37&amp;p3=3D224&amp;=
p4=3D179</a><br><br>##=C2=A0<span class=3D"gmail-il">Dial</span>=C2=A0in de=
tails<br><a href=3D"https://meet.jit.si/static/dialInInfo.html?room=3DXenPr=
ojectCommunityCall" rel=3D"noreferrer" target=3D"_blank">https://meet.jit.s=
i/static/dialInInfo.html?room=3DXenProjectCommunityCall</a></div></div><div=
><div dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signatu=
re"><div dir=3D"ltr"><div><br></div><div>Many thanks,</div><div>Kelly Choi<=
/div><div><br></div><div><div style=3D"color:rgb(136,136,136)">Community Ma=
nager</div><div style=3D"color:rgb(136,136,136)">Xen Project=C2=A0<br></div=
></div></div></div></div></div>

--000000000000bb557f061e5e410c--


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 08:11:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 08:11:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766402.1176875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLTa-0004lO-MQ; Mon, 29 Jul 2024 08:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766402.1176875; Mon, 29 Jul 2024 08: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 1sYLTa-0004lH-J4; Mon, 29 Jul 2024 08:11:26 +0000
Received: by outflank-mailman (input) for mailman id 766402;
 Mon, 29 Jul 2024 08: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYLTZ-0004l5-HS
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 08:11:25 +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 258641ce-4d82-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 10:11:24 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52f025ab3a7so4878140e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 01:11: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
 a640c23a62f3a-a7acad4acbfsm470389266b.100.2024.07.29.01.11.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 01:11: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: 258641ce-4d82-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722240684; x=1722845484; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jm8EN2VlOFASS22rImLfY2MQQP23ALZJZHzo2Qio+NI=;
        b=XssHEiOj8FQ7cQ8mcfyI1P1N81ylYQgSQ+dDoF4pnneQl2ofpljkyugbuTfVoo8CfX
         GtS/Lo30+9nfkCADuM4Cy5D2+8c7/DERjkWPBPcJtXIsy/9VP8e4yg+Eims8oHM3Y5qu
         oVWhgwg/XJAz+cPGxgHSvCdIQbqlm0fhr3Ro3eI/yZAqnoslsIx2TmBA7Scva+8QwpVZ
         mrGkXU0ghcOY7kqiFwPGp2IMIW0JL5Gm20kNIrUakjdG5TDpjLzWervYFrzCpHlxijpy
         n96RF5r54xEHEO2YFKxbheqqPCcTQN6BMo+9zH/GGSyNyumzyHl38xFR6wnj3exSM2My
         mQmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722240684; x=1722845484;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jm8EN2VlOFASS22rImLfY2MQQP23ALZJZHzo2Qio+NI=;
        b=mSaUdKCneEIJZjdgmNTO/nNrgJMJUk3HrocIUGFOI3zeyvoObZqNoagmDmz1p7M0Se
         +JuyyEaCwIUpssKByoNTChqWnB3Tu/to+L7hTlbWdR/fDtG2h+9M9XDiEzMw68atOdTw
         a1DZ0pGwJQYgQ8YXSFwySWmer9D3gwccSqB/rdMmUobURBRyPV2YX36EOz0SOGibmKtx
         6FEojRCYlHaVBXV34+w69qv512X2V5M1k1EVnhluJ6rZuYIeCq7S4GWO/DAciow8w0m7
         5Vo9L/UBXP6SWXllaK/elVJN7ccqbyvsjHZGRoKptxIunUCMZf27bq3Pht6bvxVGJoAc
         KStA==
X-Forwarded-Encrypted: i=1; AJvYcCXTLEZjM983hZ7QV0lkL2a/EaL7NHDousjRKghc39HfSp3ICWahopPiVbhyBjGShVNwc7esI6iRQ14=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzrc7nc54E55ppyHwbKom/hYy3IHE9n+hiUKABY6jVf0GmdQthq
	7bdS7nH69+hufyhHKJpcRA5m9L8X8dLtpPhHPHlrxxeze4s7tWFKZQF9SHwyUw==
X-Google-Smtp-Source: AGHT+IHYLQUrDHEIDkXSFj2zlZda8Ppsit0yqwz3sW5EzjVHEDsg9c82O/dlD9T8MD5+N5abTtJHQA==
X-Received: by 2002:a05:6512:1249:b0:52f:c14e:2533 with SMTP id 2adb3069b0e04-5309b2dfe13mr4876387e87.48.1722240683749;
        Mon, 29 Jul 2024 01:11:23 -0700 (PDT)
Message-ID: <f2450b46-3542-4e1c-b7d7-8735b1839791@suse.com>
Date: Mon, 29 Jul 2024 10:11:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for 4.19] CHANGELOG.md: Finalize changes in 4.19 release
 cycle
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Community Manager <community.manager@xenproject.org>,
 "committers @ xenproject . org" <committers@xenproject.org>,
 Julien Grall <jgrall@amazon.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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <0c93b49ac00fa92721035b4f9eb2ae76175fe886.1722237887.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: <0c93b49ac00fa92721035b4f9eb2ae76175fe886.1722237887.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 09:31, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Since no-one else cared to reply so far, I will (I tried to avoid doing so,
because - I'm sorry for that - feedback is mostly negative, in part following
what I said for some 4.18 entries last time already, iirc):

> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -15,6 +15,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     - Reduce IOMMU setup time for hardware domain.
>     - Allow HVM/PVH domains to map foreign pages.
>     - Declare PVH dom0 supported with caveats.
> + - On Arm:
> +   - Reworking the logic so all the MMU-off code is now self-contained for
> +     secondary boot CPUs on arm64.

This is an implementation detail aiui nothing people using Xen would actually
stumble across or notice. Imo such doesn't belong here. Same goes for the
entire PPC part of this hunk further down.

> +   - Code symbol annotations and MISRA compliance improvements.

This isn't Arm-specific, is it?

> +   - Addressing issues of the static shared memory feature.

Along the lines of the above, I don't think individual features' bug fixes
want/need mentioning here.

> @@ -23,6 +34,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     using a standalone library implementation.
>   - xenalyze no longer requires `--svm-mode` when analyzing traces
>     generated on AMD CPUs
> + - CI updates:
> +   - Minimum fixes to rebuild the containers, following the HEREDOC problems.
> +   - Rebuild containers to have testing with up-to-date LTS distros.
> +   - Few build system checks, and strip the obsolete contents of
> +     the build containers.

This again doesn't concern people using Xen, does it?

> @@ -31,6 +47,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>   - Add a new 9pfs backend running as a daemon in dom0. First user is
>     Xenstore-stubdom now being able to support full Xenstore trace capability.
>   - libxl support for backendtype=tap with tapback.
> + - On Arm:
> +   - FF-A notification support.
> +   - Introduction of dynamic node programming using overlay dtbo.

This is fine to have. I wonder though if the per-arch sections wouldn't
better sit next to each other (all at the top or all at the bottom).

> + - On PPC:
> +   - Basic exception handler implementation.
> + - On RISCV:
> +   - Identity mapping implementation.
> +   - Introduction of architecture-specific headers.

These again don't concern people using Xen, do they?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 08:14:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 08:14:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766409.1176885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLWV-0005Km-2X; Mon, 29 Jul 2024 08:14:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766409.1176885; Mon, 29 Jul 2024 08:14:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLWU-0005Kf-WB; Mon, 29 Jul 2024 08:14:26 +0000
Received: by outflank-mailman (input) for mailman id 766409;
 Mon, 29 Jul 2024 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=QfTU=O5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYLWT-0005KZ-Lz
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 08:14:25 +0000
Received: from mail-qk1-x729.google.com (mail-qk1-x729.google.com
 [2607:f8b0:4864:20::729])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8febe400-4d82-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 10:14:23 +0200 (CEST)
Received: by mail-qk1-x729.google.com with SMTP id
 af79cd13be357-7a1d7a544e7so228063285a.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 01:14:23 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d73b8837sm499906885a.48.2024.07.29.01.14.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 01:14: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: 8febe400-4d82-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722240862; x=1722845662; 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=6tZGqaqO6NWw/DdJ8IMDm9yeYail2IVrE3vcfP4RIog=;
        b=hbxRu3PdB5Q1UjGwDyKOeG274FwBFV+gHb9pKXSgqpC1yo6Z69wlJoxtwxMPIB3K7P
         l3wPNqclpBWgb/pw4yRD9SVY+tRZgG49TnSa3+qhd0gNGN8RYnGIYfbOX7VVOo/QnTCk
         cTHDfBUpKhMfJkXg8vcvS1cSedzxRjWKYhIQ0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722240862; x=1722845662;
        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=6tZGqaqO6NWw/DdJ8IMDm9yeYail2IVrE3vcfP4RIog=;
        b=Kqb92B8vQiRQHvhTYup3q6/KR9rHhRZez7x9wpIlNoEhQUQLqrFunRQEFIA4aVy/Tv
         N+fmCsnT1ltMucXnOoRwx0qQJV/Ym+onjeN7LKQ+J7zuSeGsit3qn93+CNQkSHDh0YwH
         bowCxZMFFpNax9ILJQWKRN8812JRi29w6XEVnUaFII5OjUu/XIqXmPnA6rh1LMkUgNyk
         RFLfTPe/WcYBN8OfuV8w29pwGRpIsv4md6VBPHUuojKoSwnx87cwc/HeYOw47b/9C1lg
         RYCGluYpGzWzMn28T0BorGWqAP2iZsHye3rIhscrkDGxjGvg1+FqqFS2H4TL7Bvd+WnX
         xZpQ==
X-Forwarded-Encrypted: i=1; AJvYcCU91LUayArhNcfK6asK4xHruSi/zhhLlyFKnPw+0Tw89x35vCHOqT3//JenTU9Q/nm4bxSOGXHcX8xVu/MnS1EjMfrhjYD3eA4qV5M2lLU=
X-Gm-Message-State: AOJu0YxrWJBiDuAQY3219oLMPmHPV2JP/IF1/xUbEXuuyo0Mt3RITXJd
	PjqfkfVqS38wzPSQgMfDAdodzw6GzTTs1vLwi01JGJrtN1P/SND8tbqLh3WUsjs=
X-Google-Smtp-Source: AGHT+IGOXsZx022sd55edxrM9wUlXp8kE/07zWV9WuwQzgmYqkP9P2YDeBMvcC18UtY5HG3PYgkg6w==
X-Received: by 2002:a05:620a:2549:b0:79d:6749:4247 with SMTP id af79cd13be357-7a1e52677f3mr842225385a.39.1722240862005;
        Mon, 29 Jul 2024 01:14:22 -0700 (PDT)
Date: Mon, 29 Jul 2024 10:14:19 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/altcall: further refine clang workaround
Message-ID: <ZqdPW4loFbZ_IZD4@macbook>
References: <a638b0e1-07a3-495c-b3b9-e450a50f9429@suse.com>
 <ZqNQwM3U8S5q-kg5@macbook>
 <0f6b446a-0dda-4e59-807b-c0c0bcdf78bf@suse.com>
 <ZqNVs97wexqd5trA@macbook>
 <4e2117f9-2a68-4032-9d1a-09965f97085f@suse.com>
 <D2ZJA8MODIO2.9JHFXZO8LW7Z@cloud.com>
 <D2ZJFUKTDIAL.2OE4EHLK6GGIB@cloud.com>
 <ZqO-RFZHdCrIuRok@macbook>
 <D2ZM0D609TOQ.2GQQWR1QALUPA@cloud.com>
 <D2ZM9PYSGG06.3ENIG6XVJLMFL@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <D2ZM9PYSGG06.3ENIG6XVJLMFL@cloud.com>

On Fri, Jul 26, 2024 at 05:38:11PM +0100, Alejandro Vallejo wrote:
> On Fri Jul 26, 2024 at 5:25 PM BST, Alejandro Vallejo wrote:
> > On Fri Jul 26, 2024 at 4:18 PM BST, Roger Pau Monné wrote:
> > > On Fri, Jul 26, 2024 at 03:25:08PM +0100, Alejandro Vallejo wrote:
> > > > On Fri Jul 26, 2024 at 3:17 PM BST, Alejandro Vallejo wrote:
> > > > > On Fri Jul 26, 2024 at 9:05 AM BST, Jan Beulich wrote:
> > > > > > On 26.07.2024 09:52, Roger Pau Monné wrote:
> > > > > > > On Fri, Jul 26, 2024 at 09:36:15AM +0200, Jan Beulich wrote:
> > > > > > >> On 26.07.2024 09:31, Roger Pau Monné wrote:
> > > > > > >>> On Thu, Jul 25, 2024 at 05:00:22PM +0200, Jan Beulich wrote:
> > > > > > >>>> On 25.07.2024 16:54, Roger Pau Monné wrote:
> > > > > > >>>>> On Thu, Jul 25, 2024 at 03:18:29PM +0200, Jan Beulich wrote:
> > > > > > >>>>>> On 25.07.2024 12:56, Roger Pau Monne wrote:
> > > > > > >>>>>>> --- a/xen/arch/x86/include/asm/alternative.h
> > > > > > >>>>>>> +++ b/xen/arch/x86/include/asm/alternative.h
> > > > > > >>>>>>> @@ -184,11 +184,11 @@ extern void alternative_branches(void);
> > > > > > >>>>>>>   * https://github.com/llvm/llvm-project/issues/82598
> > > > > > >>>>>>>   */
> > > > > > >>>>>>>  #define ALT_CALL_ARG(arg, n)                                            \
> > > > > > >>>>>>> -    register union {                                                    \
> > > > > > >>>>>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> > > > > > >>>>>>> -        unsigned long r;                                                \
> > > > > > >>>>>>> +    register struct {                                                   \
> > > > > > >>>>>>> +        typeof(arg) e;                                                  \
> > > > > > >>>>>>> +        char pad[sizeof(void *) - sizeof(arg)];                         \
> > > > > > >>>>>>
> > > > > > >>>>>> One thing that occurred to me only after our discussion, and I then forgot
> > > > > > >>>>>> to mention this before you would send a patch: What if sizeof(void *) ==
> > > > > > >>>>>> sizeof(arg)? Zero-sized arrays are explicitly something we're trying to
> > > > > > >>>>>> get rid of.
> > > > > > >>>>>
> > > > > > >>>>> I wondered about this, but I though it was only [] that we were trying
> > > > > > >>>>> to get rid of, not [0].
> > > > > > >>>>
> > > > > > >>>> Sadly (here) it's actually the other way around, aiui.
> > > > > > >>>
> > > > > > >>> The only other option I have in mind is using an oversized array on
> > > > > > >>> the union, like:
> > > > > > >>>
> > > > > > >>> #define ALT_CALL_ARG(arg, n)                                            \
> > > > > > >>>     union {                                                             \
> > > > > > >>>         typeof(arg) e[(sizeof(long) + sizeof(arg) - 1) / sizeof(arg)];  \
> > > > > > >>>         unsigned long r;                                                \
> > > > > > >>>     } a ## n ## __  = {                                                 \
> > > > > > >>>         .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> > > > > > >>>     };                                                                  \
> > > > > > >>>     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =      \
> > > > > > >>>         a ## n ## __.r
> > > > > > >>
> > > > > > >> Yet that's likely awful code-gen wise?
> > > > > > > 
> > > > > > > Seems OK: https://godbolt.org/z/nsdo5Gs8W
> > > > > >
> > > > > > In which case why not go this route. If the compiler is doing fine with
> > > > > > that, maybe the array dimension expression could be further simplified,
> > > > > > accepting yet more over-sizing? Like "sizeof(void *) / sizeof (arg) + 1"
> > > > > > or even simply "sizeof(void *)"? Suitably commented of course ...
> > > > > >
> > > > > > >> For the time being, can we perhaps
> > > > > > >> just tighten the BUILD_BUG_ON(), as iirc Alejandro had suggested?
> > > > > > > 
> > > > > > > My main concern with tightening the BUILD_BUG_ON() is that then I
> > > > > > > would also like to do so for the GCC one, so that build fails
> > > > > > > uniformly.
> > > > > >
> > > > > > If we were to take that route, then yes, probably should constrain both
> > > > > > (with a suitable comment on the gcc one).
> > > > > >
> > > > > > Jan
> > > > >
> > > > > Yet another way would be to have an intermediate `long` to cast onto. Compilers
> > > > > will optimise away the copy. It ignores the different-type aliasing rules in
> > > > > the C spec, so there's an assumption that we have -fno-strict-aliasing. But I
> > > > > belive we do? Otherwise it should pretty much work on anything.
> > > > >
> > > > > ```
> > > > >   #define ALT_CALL_ARG(arg, n)                                              \
> > > > >       unsigned long __tmp = 0;                                              \
> > > > >       *(typeof(arg) *)&__tmp =                                              \
> > > > >           ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })          \
> > > > >       register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = __tmp; \
> > > > > ```
> > > > >
> > > > > fwiw, clang18 emits identical code compared with the previous godbolt link.
> > > > >
> > > > > Link: https://godbolt.org/z/facd1M9xa
> > > > >
> > > > > Cheers,
> > > > > Alejandro
> > > > 
> > > > Bah. s/b/__tmp/ in line15. Same output though, so the point still stands.
> > >
> > > Had to adjust it to:
> > >
> > > #define ALT_CALL_ARG(arg, n)                                              \
> > >     unsigned long a ## n ## __ = 0;                                       \
> > >     *(typeof(arg) *)&a ## n ## __ =                                       \
> > >         ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); });         \
> > >     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = a ## n ## __
> > >
> > > So that tmp__ is not defined multiple times for repeated
> > > ALT_CALL_ARG() usages.
> > >
> > > Already tried something like this in the past, but it mixes code with
> > > declarations, and that's forbidden in the current C standard that Xen
> > > uses:
> > >
> > > ./arch/x86/include/asm/hvm/hvm.h:665:5: error: mixing declarations and code is incompatible with standards before C99 [-Werror,-Wdeclaration-after-statement]
> > >
> > > The `*(typeof(arg) *)&__tmp = ...` line is considered code, and is
> > > followed by further declarations.  Even if we moved both declarations
> > > ahead of the assigns it would still complain when multiple
> > > ALT_CALL_ARG() instances are used in the same altcall block.
> > >
> > > Thanks, Roger.
> >
> > That _was_ forbidden in C89, but it has been allowed since. We have a warning
> > enabled to cause it to fail even if we always use C99-compatible compilers. I
> > think we should change that.
> >
> > Regardless, I think it can be worked around. This compiles (otherwise
> > untested):
> >
> > #define ALT_CALL_ARG(arg, n)
> >     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
> >         unsigned long tmp = 0;                                          \
> >         *(typeof(arg) *)&a ## n ## __ = (arg);                          \
> >         BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                     \
> >         tmp;                                                            \
> >     })
> >
> > That said, if the oversized temp union works, I'm fine with that too.
> >
> > Cheers,
> > Alejandro
> 
> Sigh... I'm going at 1 mistake per email today. I meant:
> 
> #define ALT_CALL_ARG(arg, n)
>      register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
>          unsigned long tmp = 0;                                          \
>          *(typeof(arg) *)&tmp = (arg);                                   \
>          BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                     \
>          tmp;                                                            \
>      })

I see, so placing the temp variable on an inner scope.  The code
generated seems to be the same from godbolt.  I don't have a strong
opinion on using either.  Your suggestion is slightly shorter than the
union one, so I might go for it.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 08:17:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 08:17:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766418.1176895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLZT-0006IJ-Gv; Mon, 29 Jul 2024 08:17:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766418.1176895; Mon, 29 Jul 2024 08:17: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 1sYLZT-0006IC-Du; Mon, 29 Jul 2024 08:17:31 +0000
Received: by outflank-mailman (input) for mailman id 766418;
 Mon, 29 Jul 2024 08:17: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=QfTU=O5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYLZR-0006I6-KQ
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 08:17:29 +0000
Received: from mail-qk1-x72e.google.com (mail-qk1-x72e.google.com
 [2607:f8b0:4864:20::72e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe684c91-4d82-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 10:17:28 +0200 (CEST)
Received: by mail-qk1-x72e.google.com with SMTP id
 af79cd13be357-7a1e2ac1ee5so186468985a.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 01:17:28 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3f8d84e2sm48874876d6.21.2024.07.29.01.17.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 01:17: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: fe684c91-4d82-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722241047; x=1722845847; 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=cvbs/cxiByXlz9GbAZjIUDAo+YIyO15xk7TjFWjOgNQ=;
        b=P7OXvbTmUXvm1uGITgtJ4+FoYSnG1k/JQSmdJFsB+LVEVmdCyTBbOxJo5I2+x3iRp6
         Jsmxx0wKfkjlfd9hF/xpHUrO7szlL0o3WPEDZKeuDtb8pPbjo0aqyQ2QEiEw3fAYYEHu
         yIZxv4bycghP8tCX+QOd6W+oGdfOvS3EcdeY4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722241047; x=1722845847;
        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=cvbs/cxiByXlz9GbAZjIUDAo+YIyO15xk7TjFWjOgNQ=;
        b=NtuI9mnFYuaE8wjuUaX4J7Z3P4f44Oaey95aVeSib/Qzk5T9NfDafetMYNMNOZGZ2o
         UIVPawAfh0TU1DZD4K0U50tLIlIHcAaBSdLL3j3Tyx+s74ZWH7xQCrkpi5m6SQVvGJ1r
         J6QxLTqvIlPEA8N14sDFlbWjj7uGy2knUyE6v1pbMwsnc5EZ34dT5XHQIDEsR6B9gVor
         ZCmcMMMc/AwvSl8zaXJhn5gnk+z6lrY4Y5S0q9QoeULw1xztr5L4qM81wIpaZ+wwXFbt
         Qvk41kNGBu9iE53GojtnPd8OJbNavLRPJdMy7wjOfHXw089XhJXsAK6+oeMRLzF31gu8
         jCVw==
X-Gm-Message-State: AOJu0YylEIbJvqLTE2Keo85Vcm5m21O9tKd4nPOO2YKL9qWTSaxgb3eE
	UYuRs9ZnQh25t1MZn64Ugs3VR4QDz9PFT4Wm0UBec3ouAbINbJYB+QYlPM6DoVDR2LyUtnewzO2
	Q
X-Google-Smtp-Source: AGHT+IE8T9GwSzCF8QIX1x9Tr/+4qjjaseYfN5PW9t8R6KjknY0V9Urt9tXJUZ9iY1PdEaMGM318ng==
X-Received: by 2002:a05:6214:1245:b0:6b7:b026:fa3 with SMTP id 6a1803df08f44-6bb55aafd35mr76686416d6.46.1722241047091;
        Mon, 29 Jul 2024 01:17:27 -0700 (PDT)
Date: Mon, 29 Jul 2024 10:17:25 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 03/22] x86/dom0: only disable SMAP for the PV dom0 build
Message-ID: <ZqdQFRyoV6umqO1z@macbook>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-4-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20240726152206.28411-4-roger.pau@citrix.com>

On Fri, Jul 26, 2024 at 05:21:47PM +0200, Roger Pau Monne wrote:
> The PVH dom0 builder doesn't switch page tables and has no need to run with
> SMAP disabled.

This should be reworded as:

"The PVH dom0 builder doesn't build guest page-tables, because PVH is
started in 32bit protected mode, hence has no need to run with SMAP
disabled."

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 08:38:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 08:38:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766439.1176910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLu3-0002mC-7l; Mon, 29 Jul 2024 08:38:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766439.1176910; Mon, 29 Jul 2024 08:38:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLu3-0002m5-4c; Mon, 29 Jul 2024 08:38:47 +0000
Received: by outflank-mailman (input) for mailman id 766439;
 Mon, 29 Jul 2024 08:38:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QfTU=O5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYLu1-0002lz-45
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 08:38:45 +0000
Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com
 [2607:f8b0:4864:20::836])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f66c8715-4d85-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 10:38:43 +0200 (CEST)
Received: by mail-qt1-x836.google.com with SMTP id
 d75a77b69052e-44ff6dd158cso19043781cf.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 01:38:43 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe814c2bbsm39878511cf.35.2024.07.29.01.38.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 01:38: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: f66c8715-4d85-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722242322; x=1722847122; 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=yksyStlcpCKPHCR2lpoH4mXGfQBNBTxFjbm/2lizJuI=;
        b=JU9J23YvBUcLuD4FrvueiAYEurxW6U+afrbo3Oc+bnGCwgGj/pKGiEhyzReiipA1o1
         upoKWL0XWkEdcUZb727C5vAsVtsMsuf84RXFn72Te7JwPLdMOcnThO0RS51QGPZT5jNG
         hbb4qk9VO7IwGM9AoywQp2TJ4gGMvhGms2xKQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722242322; x=1722847122;
        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=yksyStlcpCKPHCR2lpoH4mXGfQBNBTxFjbm/2lizJuI=;
        b=lj4MNT+U8WpqI5dtOUh9iFEn6LyezYPD3ZyhGQVDWedtbeaiLkWjT4GM/2ah0yEj0k
         29YizuArWvOD4I/SeC+axzAQbQaM9D/I97N6+5VsJRvoVP6mkovrU17j0EPrB9ZKr1EP
         h7fQzZMwMBGtUtdkJcRE4DIsPmZo8LiFl1WvG8YFimokUCfZ2k2Cuk5edgP3sk5DNF47
         yo3/7K1+wHW7uHvf1P5AW0U+ZvEXzGDs3vXKbEF0djcfM8V8Py6NR2QlSVs8dpHway1a
         nH7QDfEzvyOWgUYZPtmM6Q3KiJiGU1iBV4suRdwdn47lOnijYjRRThpzCGDoY5NB9oOZ
         193w==
X-Forwarded-Encrypted: i=1; AJvYcCVq20WyZw05MMcnF4y78YdiqO2uPuE5VUSiNA2KJbgOndZB9Dx4pKW1DRp9NFl+OkkEhPwGJCYsSUkVPQxN5RQ4Y99KKzx21HQCybj9/3k=
X-Gm-Message-State: AOJu0Yw5nf+s/ELvJJIBT94b3gSaqjDmJqiY8Aw2qH9IJyLjigaUkmFx
	6vw/tHHE5Mh5ZJ4AkXcixdD5as2RXzdE7rI7FkMTeiw2HIR+Tki9c6n0bbP6nVc=
X-Google-Smtp-Source: AGHT+IF54BaRbwvUbu6aqAXUbcCRTREORUj+xk1kO3hdhPt6asghppOM5RYZ5Usi8/S5trV7aI4K6w==
X-Received: by 2002:a05:622a:1888:b0:446:4b81:807d with SMTP id d75a77b69052e-45004d68f98mr100381161cf.1.1722242322613;
        Mon, 29 Jul 2024 01:38:42 -0700 (PDT)
Date: Mon, 29 Jul 2024 10:38:40 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	"committers @ xenproject . org" <committers@xenproject.org>,
	Julien Grall <jgrall@amazon.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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH for 4.19] CHANGELOG.md: Finalize changes in 4.19 release
 cycle
Message-ID: <ZqdVEDNZDxhAXb_p@macbook>
References: <0c93b49ac00fa92721035b4f9eb2ae76175fe886.1722237887.git.oleksii.kurochko@gmail.com>
 <f2450b46-3542-4e1c-b7d7-8735b1839791@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <f2450b46-3542-4e1c-b7d7-8735b1839791@suse.com>

On Mon, Jul 29, 2024 at 10:11:23AM +0200, Jan Beulich wrote:
> On 29.07.2024 09:31, Oleksii Kurochko wrote:
> > @@ -23,6 +34,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >     using a standalone library implementation.
> >   - xenalyze no longer requires `--svm-mode` when analyzing traces
> >     generated on AMD CPUs
> > + - CI updates:
> > +   - Minimum fixes to rebuild the containers, following the HEREDOC problems.
> > +   - Rebuild containers to have testing with up-to-date LTS distros.
> > +   - Few build system checks, and strip the obsolete contents of
> > +     the build containers.
> 
> This again doesn't concern people using Xen, does it?

I think the CHANGELOG was for both users consuming Xen, but also for
developers (or more technical consumers) to know what changed between
releases.

The PR notes should indeed be more user-focused, but in that case I
still think mentioning something about increased efforts to improve
Gitlab CI is worth having in the release notes, so people know
improvements are being done wrt testing.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 08:44:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 08:44:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766447.1176920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYLzQ-0004Jz-UV; Mon, 29 Jul 2024 08:44:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766447.1176920; Mon, 29 Jul 2024 08: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 1sYLzQ-0004Js-Qn; Mon, 29 Jul 2024 08:44:20 +0000
Received: by outflank-mailman (input) for mailman id 766447;
 Mon, 29 Jul 2024 08:44:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYLzQ-0004Ji-8y; Mon, 29 Jul 2024 08:44:20 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYLzP-0001Ck-M0; Mon, 29 Jul 2024 08:44:19 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYLzP-0007Pp-3z; Mon, 29 Jul 2024 08:44:19 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYLzP-0008EK-3V; Mon, 29 Jul 2024 08:44:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=2YRxRx0OJMiD9WgNGYL95xz9jYsZnQLbl/fHgYasHw8=; b=Y94easT3O2/TJFKGuhOzjuhKkG
	iwikyWSpaPKE+9M4AS2Yc6Gm/fCxEDOBE6vjjQmIxDl/fBRmXU4Vet2vpVk1Q1tUTSUTm35Pj0LWE
	UODkayb4qnLhinLM1vf6OaRaMMj1geE/VTasEqWoJDZTbMAGWnRoqFXf/AZR1mhe2y+M=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187037-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 187037: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-vhd:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
X-Osstest-Versions-That:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Jul 2024 08:44:19 +0000

flight 187037 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187037/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail in 187032 pass in 187037
 test-armhf-armhf-libvirt-vhd  8 xen-boot                   fail pass in 187032

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check fail in 187032 never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check fail in 187032 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 187032
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 187032
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 187032
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 187032
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 187032
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 187032
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847
baseline version:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847

Last test of basis   187037  2024-07-29 01:55:42 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 08:57:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 08:57:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766458.1176930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMBV-0006xr-0w; Mon, 29 Jul 2024 08:56:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766458.1176930; Mon, 29 Jul 2024 08: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 1sYMBU-0006xk-Tn; Mon, 29 Jul 2024 08:56:48 +0000
Received: by outflank-mailman (input) for mailman id 766458;
 Mon, 29 Jul 2024 08:56: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=QfTU=O5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYMBT-0006wE-AA
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 08:56:47 +0000
Received: from mail-yw1-x1129.google.com (mail-yw1-x1129.google.com
 [2607:f8b0:4864:20::1129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7ae16678-4d88-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 10:56:45 +0200 (CEST)
Received: by mail-yw1-x1129.google.com with SMTP id
 00721157ae682-66493332ebfso16914247b3.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 01:56:45 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fa982a2sm49673076d6.77.2024.07.29.01.56.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 01:56: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: 7ae16678-4d88-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722243404; x=1722848204; 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=Ea1wsv49NI9/Jm56F0saeDBINm1+Jzagx7L96a0mfww=;
        b=PdOirAXF7+80ywcIcY6RRk/kL39k1dVVyQnGulmsQGkrW5Xlh5ZmLuT0+6W+f64w8+
         bON2TebKVjdgiGfi1nDsDhUzltPwGAHFqm1VFAunBsVnkegwqgEc7sryvot8rqF1izsO
         FyHl+wf8b3S5tK4y25MwfwXoshPyj7OpXZaiQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722243404; x=1722848204;
        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=Ea1wsv49NI9/Jm56F0saeDBINm1+Jzagx7L96a0mfww=;
        b=Vnx+itnCieNkWq2OVrdcKRECrAHisgQoTp7uKeirzVoA24HA3ufLTVlK44nyCxfo2i
         fuc//geY0rY7acZbnGsdd2RVLr1gWCZusaQVt1jmBPMfrWOz50Ci8LHNvitTs1O//VxE
         C2DTTHlhZNH6d/BzcTXq9rHVN+p/Bv9CtLxdzCQdp2u2kJca4/d6QK35QIXjnDakqv84
         GJgQjY+iIpf68osn06rYct8kMJXPvXQxaxUpslek/a7eKS9fDXEmYe3xaxu1yWrFgZQm
         EbDGv5KGolrbzj2E1QFr03VdrNTpoXaB+/Q6QUshN2XzfuVTnu0v2EhzZyRI/jHCtsGb
         bX7Q==
X-Forwarded-Encrypted: i=1; AJvYcCWM9tTqZ1FEJG+hOS48k0WbrOjvTwMStR6j9s77dfI+BriZoQwpNEZbAPmXTfcfJD/ZMIFpFFzU28IkbsrAIwY55h48vuWlOoVkGxsaaDY=
X-Gm-Message-State: AOJu0YwCxV7RGEyIDdBSgdbnV4W0VSQuMbmjRbT0hx/eaXnEC6aWKp2K
	1q0HmhKtWeu/yWVC+WcY8Flvj0ut/2G/mrWMpfUhQ4iTsADydXb7XUwZBysBAZE=
X-Google-Smtp-Source: AGHT+IFraanFk0XhCEkZg7h1L6dx/Cdly/gwrcmw8knQNJYLvh85IL7UH5hHUE+GF+56IrgN1Pdy7g==
X-Received: by 2002:a0d:f444:0:b0:653:ffe7:d641 with SMTP id 00721157ae682-67a0afb6583mr78299197b3.45.1722243403695;
        Mon, 29 Jul 2024 01:56:43 -0700 (PDT)
Date: Mon, 29 Jul 2024 10:56:41 +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 <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.20] hvmloader: Rework hypercall infrastructure
Message-ID: <ZqdZSdBZJxf57jsx@macbook>
References: <20240717111231.3517605-1-andrew.cooper3@citrix.com>
 <ec6f3d2b-d5be-4ff5-9bf1-79eb5a3a85e1@suse.com>
 <4f24cc9a-3eb8-4c6f-bcb4-a9e04a50cd9e@citrix.com>
 <d1abd5ef-745c-49bb-b392-3ca5159e4cb4@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d1abd5ef-745c-49bb-b392-3ca5159e4cb4@suse.com>

On Thu, Jul 25, 2024 at 08:18:27AM +0200, Jan Beulich wrote:
> On 24.07.2024 19:24, Andrew Cooper wrote:
> > On 17/07/2024 1:37 pm, Jan Beulich wrote:
> >> On 17.07.2024 13:12, Andrew Cooper wrote:
> >>>  static inline int
> >>>  hypercall_sched_op(
> >>>      int cmd, void *arg)
> >>>  {
> >>> -    return _hypercall2(int, sched_op, cmd, arg);
> >>> +    return _hypercall2(int, __HYPERVISOR_sched_op, cmd, arg);
> >>>  }
> >> I know you don't really like token concatenation in cases like these ones,
> >> but these adjustments all don't look as if they were necessary right here.
> >> The new macros use the macro parameter only in ways where token pasting
> >> would continue to work, afaics. And in the new assembly file you use very
> >> similar token pasting anyway.
> > 
> > That's because my judgement is not about simply tokenisation (or not). 
> > It's about not using ## when it is likely to interfere with
> > grep/cscope/tags/etc.
> > 
> > The assembly file both isn't really interesting to find this way, and
> > needs ## in order to work the way it does (differing prefixes in the
> > hypercall names).
> 
> The "not interesting" part is very subjective. If one really wanted to find
> everything, this still would get in the way. And there being differing
> prefixes in the other case would then simply require passing two arguments
> to the macro instead of just one (which imo is undesirable, but that is
> along with considering the change above undesirable as well).
> 
> I'm not bothered enough to request to undo this altogether, or to split
> this into a separate change, but I wonder whether in the opposite case you
> wouldn't demand either or even both.
> 
> >>> +        .align 4096
> >> PAGE_SIZE? And then again ...
> >>
> >>> +        .globl hypercall_page
> >>> +hypercall_page:
> >>> +         /* Poisoned with `ret` for safety before hypercalls are set up. */
> >>> +        .fill 4096, 1, 0xc3
> >>> +        .type hypercall_page, STT_OBJECT
> >>> +        .size hypercall_page, 4096
> >> ... here?
> > 
> > HVMLoader doesn't have a suitable constant, and doesn't have _AC().
> > 
> > Although we probably can just get away with (1 << PAGE_SHIFT) and drop
> > the ul.
> 
> Oh, right, we still mean to be compatible with gas not ignoring the ul
> suffix on numbers.
> 
> >> As to the "poisoning" - how does RET provide any safety? If a call happened
> >> early, the uncertainty of what %eax is set to would make it unpredictable
> >> how such a caller would further behave. Imo better to crash / hang in such
> >> a case, perhaps by using INT3 instead.
> >>
> >> I notice that matches earlier behavior, but there the comment at least
> >> validly said "rendering them no-ops" (yet still without considering
> >> possible problems resulting from doing so).
> > 
> > That's a complicated one.  I can't remember why I chose that exact
> > phraseology, but it's not really about accidentally-too-early case, it's
> > about error handling.
> > 
> > HVMLoader doesn't have an IDT, so any exception is fatal.  But that's
> > also something that ideally wants fixing (if it weren't for the fact
> > that it's more likely that I'll complete plans to remove hvmloader
> > completely before having time to do an IDT).
> > 
> > But for code which does have a panic() function, there's console_io
> > (logging) and sched_op (SHUTDOWN_crash) which you want to use just in
> > case they do work, before moving onto other methods of terminating.
> 
> All fine, but that still leaves this RET filling yielding random behavior
> at possible early call sites. At the very least the pre-fill should result
> in errors to be observed by too-early callers. For this to at least vaguely
> resemble something valid to call "poisoned", that is.

FWIW, I've not long ago [0] switched FreeBSD hypercall page to be
poisoned with int3, as it was previously filled with nops which
resulted in very funny traces when the hypercall page was used prior
to being initialized.

I also considered filling with ret, but I think that's likely to
mask or make uninitialized usages harder to spot.  It's IMO better to
get a triple-fault than silence attempts to use the hypercall page too
early.

Thanks, Roger.

[0] https://cgit.freebsd.org/src/commit/?id=e283c994ab270706142ef5dde9092950000af901


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 09:00:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 09:00:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766466.1176940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMEt-0000MC-FS; Mon, 29 Jul 2024 09:00:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766466.1176940; Mon, 29 Jul 2024 09: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 1sYMEt-0000M5-CP; Mon, 29 Jul 2024 09:00:19 +0000
Received: by outflank-mailman (input) for mailman id 766466;
 Mon, 29 Jul 2024 09: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=tqVw=O5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sYMEs-0000Lt-4b
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 09:00:18 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f9724428-4d88-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 11:00:17 +0200 (CEST)
Received: from truciolo.homenet.telecomitalia.it
 (host-87-20-207-105.retail.telecomitalia.it [87.20.207.105])
 by support.bugseng.com (Postfix) with ESMTPSA id 613654EE0759;
 Mon, 29 Jul 2024 11:00: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: f9724428-4d88-11ef-bc01-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	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 v5 0/8] x86: address some violations of MISRA C Rule 16.3
Date: Mon, 29 Jul 2024 11:00:01 +0200
Message-Id: <cover.1722239813.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch series fixes a missing escape in a deviation and addresses some
violations.

Federico Serafini (8):
  automation/eclair: fix deviation of MISRA C Rule 16.3
  x86/vpmu: address violations of MISRA C Rule 16.3
  x86/traps: address violations of MISRA C Rule 16.3
  x86/mce: address violations of MISRA C Rule 16.3
  x86/hvm: address violations of MISRA C Rule 16.3
  x86/hvm: add defensive statements in unreachable program points
  x86/mm: add defensive return
  x86/mpparse: address a violation of MISRA C Rule 16.3

 automation/eclair_analysis/ECLAIR/deviations.ecl |  5 ++---
 xen/arch/x86/cpu/mcheck/mce_amd.c                |  1 +
 xen/arch/x86/cpu/mcheck/mce_intel.c              |  2 ++
 xen/arch/x86/cpu/vpmu.c                          |  3 +++
 xen/arch/x86/cpu/vpmu_intel.c                    |  2 ++
 xen/arch/x86/hvm/emulate.c                       | 12 +++++++-----
 xen/arch/x86/hvm/hvm.c                           |  5 +++++
 xen/arch/x86/hvm/hypercall.c                     |  2 +-
 xen/arch/x86/hvm/irq.c                           |  1 +
 xen/arch/x86/hvm/pmtimer.c                       |  1 +
 xen/arch/x86/hvm/svm/svm.c                       |  2 ++
 xen/arch/x86/hvm/vlapic.c                        |  1 +
 xen/arch/x86/hvm/vmx/vmcs.c                      |  2 ++
 xen/arch/x86/hvm/vmx/vmx.c                       |  3 ++-
 xen/arch/x86/hvm/vmx/vvmx.c                      |  1 +
 xen/arch/x86/hvm/vpic.c                          |  1 +
 xen/arch/x86/hvm/vpt.c                           |  3 +--
 xen/arch/x86/mm.c                                |  1 +
 xen/arch/x86/mpparse.c                           |  1 +
 xen/arch/x86/traps.c                             |  3 +++
 20 files changed, 40 insertions(+), 12 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 09:00:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 09:00:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766467.1176950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMEu-0000at-Mi; Mon, 29 Jul 2024 09:00:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766467.1176950; Mon, 29 Jul 2024 09:00: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 1sYMEu-0000ak-Ie; Mon, 29 Jul 2024 09:00:20 +0000
Received: by outflank-mailman (input) for mailman id 766467;
 Mon, 29 Jul 2024 09: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=tqVw=O5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sYMEs-0000Lt-Qa
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 09:00:18 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa1f509f-4d88-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 11:00:18 +0200 (CEST)
Received: from truciolo.homenet.telecomitalia.it
 (host-87-20-207-105.retail.telecomitalia.it [87.20.207.105])
 by support.bugseng.com (Postfix) with ESMTPSA id 85A4B4EE075F;
 Mon, 29 Jul 2024 11:00: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: fa1f509f-4d88-11ef-bc01-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v5 3/8] x86/traps: address violations of MISRA C Rule 16.3
Date: Mon, 29 Jul 2024 11:00:04 +0200
Message-Id: <89cbae91ca175eaaf3e639ee4cd1accd9aedb866.1722239813.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1722239813.git.federico.serafini@bugseng.com>
References: <cover.1722239813.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add break or pseudo keyword fallthrough to address violations of
MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/traps.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index ee91fc56b1..7a9299ae6c 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1186,6 +1186,7 @@ void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
 
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 }
 
@@ -1748,6 +1749,7 @@ static void io_check_error(const struct cpu_user_regs *regs)
     {
     case 'd': /* 'dom0' */
         nmi_hwdom_report(_XEN_NMIREASON_io_error);
+        break;
     case 'i': /* 'ignore' */
         break;
     default:  /* 'fatal' */
@@ -1768,6 +1770,7 @@ static void unknown_nmi_error(const struct cpu_user_regs *regs,
     {
     case 'd': /* 'dom0' */
         nmi_hwdom_report(_XEN_NMIREASON_unknown);
+        break;
     case 'i': /* 'ignore' */
         break;
     default:  /* 'fatal' */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 09:00:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 09:00:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766468.1176954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMEv-0000e0-0C; Mon, 29 Jul 2024 09:00:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766468.1176954; Mon, 29 Jul 2024 09:00: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 1sYMEu-0000dm-Q8; Mon, 29 Jul 2024 09:00:20 +0000
Received: by outflank-mailman (input) for mailman id 766468;
 Mon, 29 Jul 2024 09: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=tqVw=O5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sYMEt-0000M4-Gl
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 09:00:19 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f9b08f62-4d88-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 11:00:17 +0200 (CEST)
Received: from truciolo.homenet.telecomitalia.it
 (host-87-20-207-105.retail.telecomitalia.it [87.20.207.105])
 by support.bugseng.com (Postfix) with ESMTPSA id 7DA4A4EE075C;
 Mon, 29 Jul 2024 11:00: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: f9b08f62-4d88-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v5 1/8] automation/eclair: fix deviation of MISRA C Rule 16.3
Date: Mon, 29 Jul 2024 11:00:02 +0200
Message-Id: <8cade55538836d76a038a090f272b02ebdcc22b3.1722239813.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1722239813.git.federico.serafini@bugseng.com>
References: <cover.1722239813.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing escape for the final dot of the fallthrough comment,
extend the search of a fallthrough comment up to 2 lines after the last
statement and improve the text of the justification.

Fixes: a128d8da91 ("automation/eclair: add deviations for MISRA C:2012 Rule 16.3")
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 0af1cb93d1..88b49c23d8 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -482,9 +482,8 @@ safe."
 -config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(/BUG\\(\\);/))))"}
 -doc_end
 
--doc_begin="Switch clauses not ending with the break statement are safe if an
-explicit comment indicating the fallthrough intention is present."
--config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through.? \\*/.*$,0..1))))"}
+-doc_begin="Switch clauses ending with an explicit comment indicating the fallthrough intention are safe."
+-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through\\.? \\*/.*$,0..2))))"}
 -doc_end
 
 -doc_begin="Switch statements having a controlling expression of enum type deliberately do not have a default case: gcc -Wall enables -Wswitch which warns (and breaks the build as we use -Werror) if one of the enum labels is missing from the switch."
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 09:00:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 09:00:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766469.1176962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMEv-0000n1-GT; Mon, 29 Jul 2024 09:00:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766469.1176962; Mon, 29 Jul 2024 09: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 1sYMEv-0000lx-9S; Mon, 29 Jul 2024 09:00:21 +0000
Received: by outflank-mailman (input) for mailman id 766469;
 Mon, 29 Jul 2024 09:00: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=tqVw=O5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sYMEt-0000Lt-Qu
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 09:00:19 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa8265b0-4d88-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 11:00:18 +0200 (CEST)
Received: from truciolo.homenet.telecomitalia.it
 (host-87-20-207-105.retail.telecomitalia.it [87.20.207.105])
 by support.bugseng.com (Postfix) with ESMTPSA id 3A3014EE075E;
 Mon, 29 Jul 2024 11:00: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: fa8265b0-4d88-11ef-bc01-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH v5 5/8] x86/hvm: address violations of MISRA C Rule 16.3
Date: Mon, 29 Jul 2024 11:00:06 +0200
Message-Id: <6814760ce9c58faad6ab3a3b17196d3fccc23b43.1722239813.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1722239813.git.federico.serafini@bugseng.com>
References: <cover.1722239813.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C Rule 16.3 states that "An unconditional `break' statement shall
terminate every switch-clause".

Add pseudo keyword fallthrough or missing break statement
to address violations of the rule.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
Changes in v5:
- separate mechanical changes from the ones that report an error to the caller
  (see patch 6 of this series).
Changes in v4:
- do not separate different parts of HVM in different patches;
- re-arrange fallthrough positioning to comply with Coverity.
Changes in v3:
- squashed here modifications of pmtimer.c;
- no blank line after fallthrough;
- better indentation of fallthrough.
---
 xen/arch/x86/hvm/emulate.c   | 11 ++++++-----
 xen/arch/x86/hvm/hvm.c       |  1 +
 xen/arch/x86/hvm/hypercall.c |  2 +-
 xen/arch/x86/hvm/irq.c       |  1 +
 xen/arch/x86/hvm/pmtimer.c   |  1 +
 xen/arch/x86/hvm/svm/svm.c   |  2 ++
 xen/arch/x86/hvm/vlapic.c    |  1 +
 xen/arch/x86/hvm/vmx/vmx.c   |  3 ++-
 xen/arch/x86/hvm/vmx/vvmx.c  |  1 +
 xen/arch/x86/hvm/vpic.c      |  1 +
 xen/arch/x86/hvm/vpt.c       |  3 +--
 11 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 02e378365b..135aa6fc22 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -339,7 +339,7 @@ static int hvmemul_do_io(
     }
     case X86EMUL_UNIMPLEMENTED:
         ASSERT_UNREACHABLE();
-        /* Fall-through */
+        fallthrough;
     default:
         BUG();
     }
@@ -396,8 +396,7 @@ static int hvmemul_acquire_page(unsigned long gmfn, struct page_info **page)
 
     default:
         ASSERT_UNREACHABLE();
-        /* Fallthrough */
-
+        fallthrough;
     case -EINVAL:
         return X86EMUL_UNHANDLEABLE;
     }
@@ -2764,6 +2763,7 @@ int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
         /* fallthrough */
     default:
         hvm_emulate_writeback(&ctxt);
+        break;
     }
 
     return rc;
@@ -2799,10 +2799,11 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
         memcpy(hvio->mmio_insn, curr->arch.vm_event->emul.insn.data,
                hvio->mmio_insn_bytes);
     }
-    /* Fall-through */
+        fallthrough;
     default:
         ctx.set_context = (kind == EMUL_KIND_SET_CONTEXT_DATA);
         rc = hvm_emulate_one(&ctx, VIO_no_completion);
+        break;
     }
 
     switch ( rc )
@@ -2818,7 +2819,7 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
     case X86EMUL_UNIMPLEMENTED:
         if ( hvm_monitor_emul_unimplemented() )
             return;
-        /* fall-through */
+        fallthrough;
     case X86EMUL_UNHANDLEABLE:
         hvm_dump_emulation_state(XENLOG_G_DEBUG, "Mem event", &ctx, rc);
         hvm_inject_hw_exception(trapnr, errcode);
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7f4b627b1f..1d32f473a4 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5283,6 +5283,7 @@ void hvm_get_segment_register(struct vcpu *v, enum x86_segment seg,
          * %cs and %tr are unconditionally present.  SVM ignores these present
          * bits and will happily run without them set.
          */
+        fallthrough;
     case x86_seg_cs:
         reg->p = 1;
         break;
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 7fb3136f0c..c1bd17571e 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -110,7 +110,7 @@ int hvm_hypercall(struct cpu_user_regs *regs)
     {
     case 8:
         eax = regs->rax;
-        /* Fallthrough to permission check. */
+        fallthrough;
     case 4:
     case 2:
         if ( currd->arch.monitor.guest_request_userspace_enabled &&
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index 210cebb0e6..1eab44defc 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -282,6 +282,7 @@ static void hvm_set_callback_irq_level(struct vcpu *v)
             __hvm_pci_intx_assert(d, pdev, pintx);
         else
             __hvm_pci_intx_deassert(d, pdev, pintx);
+        break;
     default:
         break;
     }
diff --git a/xen/arch/x86/hvm/pmtimer.c b/xen/arch/x86/hvm/pmtimer.c
index 97099ac305..87a7a01c9f 100644
--- a/xen/arch/x86/hvm/pmtimer.c
+++ b/xen/arch/x86/hvm/pmtimer.c
@@ -185,6 +185,7 @@ static int cf_check handle_evt_io(
                 gdprintk(XENLOG_WARNING, 
                          "Bad ACPI PM register write: %x bytes (%x) at %x\n", 
                          bytes, *val, port);
+                break;
             }
         }
         /* Fix up the SCI state to match the new register state */
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 988250dbc1..92bb10c504 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -681,6 +681,7 @@ static void cf_check svm_get_segment_register(
         ASSERT_UNREACHABLE();
         domain_crash(v->domain);
         *reg = (struct segment_register){};
+        break;
     }
 }
 
@@ -2416,6 +2417,7 @@ static void cf_check svm_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
         printk(XENLOG_G_ERR "%s(%pv, 0x%08x, 0x%016"PRIx64") Bad register\n",
                __func__, v, reg, val);
         domain_crash(d);
+        break;
     }
 }
 
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 9cfc82666a..2ec9594271 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -367,6 +367,7 @@ static void vlapic_accept_irq(struct vcpu *v, uint32_t icr_low)
         gdprintk(XENLOG_ERR, "TODO: unsupported delivery mode in ICR %x\n",
                  icr_low);
         domain_crash(v->domain);
+        break;
     }
 }
 
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index f16faa6a61..46911c3e1c 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -2745,6 +2745,7 @@ static void cf_check vmx_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
         printk(XENLOG_G_ERR "%s(%pv, 0x%08x, 0x%016"PRIx64") Bad register\n",
                __func__, v, reg, val);
         domain_crash(d);
+        break;
     }
     vmx_vmcs_exit(v);
 }
@@ -3393,7 +3394,7 @@ static int cf_check vmx_msr_read_intercept(
         *msr_content |= MSR_IA32_MISC_ENABLE_BTS_UNAVAIL |
                        MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL;
         /* Perhaps vpmu will change some bits. */
-        /* FALLTHROUGH */
+        fallthrough;
     case MSR_P6_PERFCTR(0)...MSR_P6_PERFCTR(7):
     case MSR_P6_EVNTSEL(0)...MSR_P6_EVNTSEL(3):
     case MSR_CORE_PERF_FIXED_CTR0...MSR_CORE_PERF_FIXED_CTR2:
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index 39290c9861..c05e0e9326 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -2768,6 +2768,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
         gprintk(XENLOG_ERR, "Unhandled nested vmexit: reason %u\n",
                 exit_reason);
         domain_crash(v->domain);
+        break;
     }
 
     return ( nvcpu->nv_vmexit_pending == 1 );
diff --git a/xen/arch/x86/hvm/vpic.c b/xen/arch/x86/hvm/vpic.c
index 7c3b5c7254..6427b08086 100644
--- a/xen/arch/x86/hvm/vpic.c
+++ b/xen/arch/x86/hvm/vpic.c
@@ -309,6 +309,7 @@ static void vpic_ioport_write(
             if ( !(vpic->init_state & 8) )
                 break; /* CASCADE mode: wait for write to ICW3. */
             /* SNGL mode: fall through (no ICW3). */
+            fallthrough;
         case 2:
             /* ICW3 */
             vpic->init_state++;
diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c
index e1d6845a28..5e7b9a9f66 100644
--- a/xen/arch/x86/hvm/vpt.c
+++ b/xen/arch/x86/hvm/vpt.c
@@ -119,8 +119,7 @@ static int pt_irq_masked(struct periodic_time *pt)
 
         gsi = hvm_isa_irq_to_gsi(pt->irq);
     }
-
-    /* Fallthrough to check if the interrupt is masked on the IO APIC. */
+        fallthrough;
     case PTSRC_ioapic:
     {
         int mask = vioapic_get_mask(v->domain, gsi);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 09:00:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 09:00:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766470.1176967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMEv-0000t3-Q2; Mon, 29 Jul 2024 09:00:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766470.1176967; Mon, 29 Jul 2024 09: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 1sYMEv-0000q0-Jq; Mon, 29 Jul 2024 09:00:21 +0000
Received: by outflank-mailman (input) for mailman id 766470;
 Mon, 29 Jul 2024 09:00: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=tqVw=O5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sYMEu-0000M4-6g
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 09:00:20 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f9e8979b-4d88-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 11:00:17 +0200 (CEST)
Received: from truciolo.homenet.telecomitalia.it
 (host-87-20-207-105.retail.telecomitalia.it [87.20.207.105])
 by support.bugseng.com (Postfix) with ESMTPSA id 302264EE075A;
 Mon, 29 Jul 2024 11:00: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: f9e8979b-4d88-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v5 2/8] x86/vpmu: address violations of MISRA C Rule 16.3
Date: Mon, 29 Jul 2024 11:00:03 +0200
Message-Id: <4130e1f7f7c32cff1d3c8887febe0ed3793f11c1.1722239813.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1722239813.git.federico.serafini@bugseng.com>
References: <cover.1722239813.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing break statements to address violations of MISRA C Rule
16.3: "An unconditional `break' statement shall terminate every
switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/cpu/vpmu.c       | 3 +++
 xen/arch/x86/cpu/vpmu_intel.c | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index a7bc0cd1fc..b2ba999412 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -663,6 +663,8 @@ long do_xenpmu_op(
 
         if ( pmu_params.version.maj != XENPMU_VER_MAJ )
             return -EINVAL;
+
+        break;
     }
 
     switch ( op )
@@ -776,6 +778,7 @@ long do_xenpmu_op(
 
     default:
         ret = -EINVAL;
+        break;
     }
 
     return ret;
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index cd414165df..26dd3a9358 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -666,6 +666,7 @@ static int cf_check core2_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content)
 
             xen_pmu_cntr_pair[tmp].control = msr_content;
         }
+        break;
     }
 
     if ( type != MSR_TYPE_GLOBAL )
@@ -713,6 +714,7 @@ static int cf_check core2_vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
             break;
         default:
             rdmsrl(msr, *msr_content);
+            break;
         }
     }
     else if ( msr == MSR_IA32_MISC_ENABLE )
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 09:00:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 09:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766471.1176988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMEx-0001Rn-4x; Mon, 29 Jul 2024 09:00:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766471.1176988; Mon, 29 Jul 2024 09:00:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMEw-0001Qs-W8; Mon, 29 Jul 2024 09:00:22 +0000
Received: by outflank-mailman (input) for mailman id 766471;
 Mon, 29 Jul 2024 09: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=tqVw=O5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sYMEu-0000Lt-Qx
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 09:00:20 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fab3f2b0-4d88-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 11:00:19 +0200 (CEST)
Received: from truciolo.homenet.telecomitalia.it
 (host-87-20-207-105.retail.telecomitalia.it [87.20.207.105])
 by support.bugseng.com (Postfix) with ESMTPSA id 872954EE0761;
 Mon, 29 Jul 2024 11:00: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: fab3f2b0-4d88-11ef-bc01-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH v5 6/8] x86/hvm: add defensive statements in unreachable program points
Date: Mon, 29 Jul 2024 11:00:07 +0200
Message-Id: <a686f70406c33d689b040af5d4e14878cde8a36c.1722239813.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1722239813.git.federico.serafini@bugseng.com>
References: <cover.1722239813.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As a defensive measure, make sure to signal an error to the caller
if an unreachable program point is reached.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/x86/hvm/emulate.c  | 1 +
 xen/arch/x86/hvm/hvm.c      | 4 ++++
 xen/arch/x86/hvm/vmx/vmcs.c | 2 ++
 3 files changed, 7 insertions(+)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 135aa6fc22..b6ca5cb9d1 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2673,6 +2673,7 @@ static int _hvm_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt,
 
     default:
         ASSERT_UNREACHABLE();
+        return X86EMUL_UNHANDLEABLE;
     }
 
     if ( hvmemul_ctxt->ctxt.retire.singlestep )
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 1d32f473a4..d7f195ba9a 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4919,6 +4919,8 @@ static int do_altp2m_op(
 
     default:
         ASSERT_UNREACHABLE();
+        rc = -EOPNOTSUPP;
+        break;
     }
 
  out:
@@ -5020,6 +5022,8 @@ static int compat_altp2m_op(
 
     default:
         ASSERT_UNREACHABLE();
+        rc = -EOPNOTSUPP;
+        break;
     }
 
     return rc;
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 9b6dc51f36..5787110a56 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1446,6 +1446,7 @@ struct vmx_msr_entry *vmx_find_msr(const struct vcpu *v, uint32_t msr,
 
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 
     if ( !start )
@@ -1598,6 +1599,7 @@ int vmx_del_msr(struct vcpu *v, uint32_t msr, enum vmx_msr_list_type type)
 
     default:
         ASSERT_UNREACHABLE();
+        return -EINVAL;
     }
 
     if ( !start )
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 09:00:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 09:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766472.1176996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMEx-0001b8-Ne; Mon, 29 Jul 2024 09:00:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766472.1176996; Mon, 29 Jul 2024 09:00:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMEx-0001Z6-DD; Mon, 29 Jul 2024 09:00:23 +0000
Received: by outflank-mailman (input) for mailman id 766472;
 Mon, 29 Jul 2024 09:00:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tqVw=O5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sYMEv-0000M4-6m
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 09:00:21 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa4f8ad8-4d88-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 11:00:18 +0200 (CEST)
Received: from truciolo.homenet.telecomitalia.it
 (host-87-20-207-105.retail.telecomitalia.it [87.20.207.105])
 by support.bugseng.com (Postfix) with ESMTPSA id DA4A84EE0760;
 Mon, 29 Jul 2024 11:00: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: fa4f8ad8-4d88-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v5 4/8] x86/mce: address violations of MISRA C Rule 16.3
Date: Mon, 29 Jul 2024 11:00:05 +0200
Message-Id: <04c74d59c12f5bdd3c6fe3f38df76b19ff999536.1722239813.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1722239813.git.federico.serafini@bugseng.com>
References: <cover.1722239813.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing break statements to address violations of
MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/cpu/mcheck/mce_amd.c   | 1 +
 xen/arch/x86/cpu/mcheck/mce_intel.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/xen/arch/x86/cpu/mcheck/mce_amd.c b/xen/arch/x86/cpu/mcheck/mce_amd.c
index 3318b8204f..4f06a3153b 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.c
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
@@ -201,6 +201,7 @@ static void mcequirk_amd_apply(enum mcequirk_amd_flags flags)
 
     default:
         ASSERT(flags == MCEQUIRK_NONE);
+        break;
     }
 }
 
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index dd812f4b8a..9574dedbfd 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -896,6 +896,8 @@ static void intel_init_ppin(const struct cpuinfo_x86 *c)
             ppin_msr = 0;
         else if ( c == &boot_cpu_data )
             ppin_msr = MSR_PPIN;
+
+        break;
     }
 }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 09:00:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 09:00:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766473.1177000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMEy-0001ly-4m; Mon, 29 Jul 2024 09:00:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766473.1177000; Mon, 29 Jul 2024 09:00: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 1sYMEx-0001k0-Uv; Mon, 29 Jul 2024 09:00:23 +0000
Received: by outflank-mailman (input) for mailman id 766473;
 Mon, 29 Jul 2024 09:00: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=tqVw=O5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sYMEv-0000Lt-R0
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 09:00:21 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb17298b-4d88-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 11:00:19 +0200 (CEST)
Received: from truciolo.homenet.telecomitalia.it
 (host-87-20-207-105.retail.telecomitalia.it [87.20.207.105])
 by support.bugseng.com (Postfix) with ESMTPSA id 2C4684EE0764;
 Mon, 29 Jul 2024 11:00: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: fb17298b-4d88-11ef-bc01-fd08da9f4363
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v5 8/8] x86/mpparse: address a violation of MISRA C Rule 16.3
Date: Mon, 29 Jul 2024 11:00:09 +0200
Message-Id: <ea5833b887ad48598b5d39077f28e86263888629.1722239813.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1722239813.git.federico.serafini@bugseng.com>
References: <cover.1722239813.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a missing break statement to address a violation of
MISRA C Rule 16.3: "An unconditional `break' statement shall terminate
every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/mpparse.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c
index d8ccab2449..306d8ed97a 100644
--- a/xen/arch/x86/mpparse.c
+++ b/xen/arch/x86/mpparse.c
@@ -544,6 +544,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
 		case 4:
 		case 7:
 			memcpy(bus.mpc_bustype, "MCA   ", 6);
+			break;
 	}
 	MP_bus_info(&bus);
 	if (mpc_default_type > 4) {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 09:00:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 09:00:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766474.1177007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMEy-0001t9-Ob; Mon, 29 Jul 2024 09:00:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766474.1177007; Mon, 29 Jul 2024 09:00: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 1sYMEy-0001sH-Dc; Mon, 29 Jul 2024 09:00:24 +0000
Received: by outflank-mailman (input) for mailman id 766474;
 Mon, 29 Jul 2024 09:00: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=tqVw=O5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1sYMEw-0000M4-6r
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 09:00:22 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fadf6cce-4d88-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 11:00:19 +0200 (CEST)
Received: from truciolo.homenet.telecomitalia.it
 (host-87-20-207-105.retail.telecomitalia.it [87.20.207.105])
 by support.bugseng.com (Postfix) with ESMTPSA id D3B3A4EE0763;
 Mon, 29 Jul 2024 11:00: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: fadf6cce-4d88-11ef-8776-851b0ebba9a2
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH v5 7/8] x86/mm: add defensive return
Date: Mon, 29 Jul 2024 11:00:08 +0200
Message-Id: <24501d2e7f5d82d8e5a483a80b35e04ce765a7cf.1722239813.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1722239813.git.federico.serafini@bugseng.com>
References: <cover.1722239813.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add defensive return statement at the end of an unreachable
default case. Other than improve safety, this meets the requirements
to deviate a violation of MISRA C Rule 16.3: "An unconditional `break'
statement shall terminate every switch-clause".

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
No changes from v3 and v4, further feedback on this thread would be appreciated:
https://lists.xenproject.org/archives/html/xen-devel/2024-07/msg00474.html
---
 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 95795567f2..8973e76dff 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -917,6 +917,7 @@ get_page_from_l1e(
                 return 0;
             default:
                 ASSERT_UNREACHABLE();
+                return -EPERM;
             }
         }
         else if ( l1f & _PAGE_RW )
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 09:18:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 09:18:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766539.1177030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMWl-0007f7-R3; Mon, 29 Jul 2024 09:18:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766539.1177030; Mon, 29 Jul 2024 09: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 1sYMWl-0007f0-OM; Mon, 29 Jul 2024 09:18:47 +0000
Received: by outflank-mailman (input) for mailman id 766539;
 Mon, 29 Jul 2024 09: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYMWl-0007eu-Ag
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 09:18:47 +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 8e182b14-4d8b-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 11:18:45 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5a79df5af51so9105425a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 02: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
 4fb4d7f45d1cf-5ac657835e4sm5448360a12.93.2024.07.29.02.18.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 02: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: 8e182b14-4d8b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722244725; x=1722849525; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=L+v6GWjC+xZB+T7KOMoGEA8L2CzaP6mV/aOf5UNjKa8=;
        b=gKaCB3/6d+MZVVK050cTNI6fI3hqAjTCoekVek5hFpq5Whb1Q3gD7wg3p5T8hs84Hs
         J9aTZFcUKqyG0yR0NW94HX5NgXFLgKwjjsZid5StQN3x+62ZM+w4Wh9i8KNSESbMT8kH
         R4drH/wz5O647d5Za0DJ3+kTR2uye074ACBx8ffPiMv+os359lBzDHX0jKtlhqKr1ekq
         nF3sUUn5Fbpf8/qEsK7li0XnwEawgV1Xw1r3GUSUDQU0M2bJ7+y5p0SE2e8SylhUP7la
         0nz43zwCiRfyrOSqOaUaBOU426RiXySJj49KlTLaD6w/dUbxK3pChbKy7BgSKKIQ6auj
         Jhfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722244725; x=1722849525;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L+v6GWjC+xZB+T7KOMoGEA8L2CzaP6mV/aOf5UNjKa8=;
        b=fERf9zmx6WA+ATrPNguJTKGfP9qJ61rXQI14fJHJmvLnv4SyYsB69jiHo97djKH9YJ
         wjRGdlBTp1SH3bNEbB4CNa974/V1h0wMGUCymUwW9jxYsmHyTsnTLV7F/7eWIZEmrIdp
         A5OAfB9SMbEDI6vEkO9HHwd7SNiWHfQEYmiWt4hRllStwf5MnE9cOGKSIs2AOQlbY4A+
         DrD++OXh+vRvcRmg60ieH2hDMi0uY5LFoWlh0qr4uG4F0AmomG5zmJhPBxX8WAK9yaZA
         siuycKS+O+nQb8T3dnUKi3VUunsvO5BK/RsED4h/6TENKyPO9cY4gNUNDxU532V0+qBi
         lbxw==
X-Forwarded-Encrypted: i=1; AJvYcCVisgvAWBrXa2SEjN9h3OHv1EYx6r4zW3C7W6nYkHu0GNqGVSp9H3gB64Nkg/+l43xxtCs3Z4a1vmzQdNEhp7RTorwWj4FyyPdMPhNN/6o=
X-Gm-Message-State: AOJu0YxGD7n4d3RhjL9eayHFFWihSc3JBeT2mCHMxqXUmu24m0mbHJha
	Dgize16A6SW7V9ZWWbZKaeql2X/E2CEjTUkvfqKtPPaQCEcMr4WIMRerxMm8fA==
X-Google-Smtp-Source: AGHT+IFJPea/+XqIuSp1S0L3yBKZFAejCybqd1OOckBfHdTNWCNJ6iY8Ho3ZY3i7CX5FTZMFlA6Y1A==
X-Received: by 2002:a50:d75e:0:b0:5af:d7a9:63d7 with SMTP id 4fb4d7f45d1cf-5b0173a0c65mr6428508a12.6.1722244724576;
        Mon, 29 Jul 2024 02:18:44 -0700 (PDT)
Message-ID: <cd4bf474-0329-42b9-b292-d8a7606a1dff@suse.com>
Date: Mon, 29 Jul 2024 11:18:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 5/8] x86/hvm: address violations of MISRA C Rule
 16.3
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.1722239813.git.federico.serafini@bugseng.com>
 <6814760ce9c58faad6ab3a3b17196d3fccc23b43.1722239813.git.federico.serafini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6814760ce9c58faad6ab3a3b17196d3fccc23b43.1722239813.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 11:00, Federico Serafini wrote:
> MISRA C Rule 16.3 states that "An unconditional `break' statement shall
> terminate every switch-clause".
> 
> Add pseudo keyword fallthrough or missing break statement
> to address violations of the rule.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Jul 29 09:35:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 09:35:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766546.1177040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYMn3-0002JG-4A; Mon, 29 Jul 2024 09:35:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766546.1177040; Mon, 29 Jul 2024 09: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 1sYMn3-0002J9-0n; Mon, 29 Jul 2024 09:35:37 +0000
Received: by outflank-mailman (input) for mailman id 766546;
 Mon, 29 Jul 2024 09:35:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYMn2-0002Iz-7y; Mon, 29 Jul 2024 09:35:36 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYMn1-0002Dw-Sn; Mon, 29 Jul 2024 09:35:35 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYMn1-0001Vk-H4; Mon, 29 Jul 2024 09:35:35 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYMn1-0003Yr-Gf; Mon, 29 Jul 2024 09:35:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=uC+RXhfus64nX2Linus6hO0KYwVot1RuW989W+p1Kp4=; b=YfdMMEpGWX29oxobFV66U3Adwx
	iDUTqbnPocsr98omd7MCJ95PRIrOnL9nWDO10m5H6mvStKKeVaDd9v8zerPUEv3WnVSGNwo77Ma2+
	Lg3r5DqiO28SBkmZeLgKM4RGz5sQNoxSr7OvEhJpLR9TCs2qwTAFrXxyZVVnweuekmsI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187040-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187040: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=43e2395c1b130540820957305451340e1fff81e4
X-Osstest-Versions-That:
    ovmf=51edd4830d822e70b96a8548d0d89383e12bc4c0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Jul 2024 09:35:35 +0000

flight 187040 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187040/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 43e2395c1b130540820957305451340e1fff81e4
baseline version:
 ovmf                 51edd4830d822e70b96a8548d0d89383e12bc4c0

Last test of basis   187038  2024-07-29 04:11:44 Z    0 days
Testing same since   187040  2024-07-29 07:15:16 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dun Tan <dun.tan@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   51edd4830d..43e2395c1b  43e2395c1b130540820957305451340e1fff81e4 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 10:20:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 10:20:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766559.1177049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYNUI-0001rf-9e; Mon, 29 Jul 2024 10:20:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766559.1177049; Mon, 29 Jul 2024 10: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 1sYNUI-0001rY-6M; Mon, 29 Jul 2024 10:20:18 +0000
Received: by outflank-mailman (input) for mailman id 766559;
 Mon, 29 Jul 2024 10: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=pZrP=O5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYNUH-0001rS-3a
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 10:20:17 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 249a25bc-4d94-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 12:20:13 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-52efc60a6e6so5160723e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 03:20:13 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52fd5bc445esm1427615e87.30.2024.07.29.03.20.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 03:20: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: 249a25bc-4d94-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722248413; x=1722853213; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=8CfzeXNdrnFUcdHxmlWuXj+M7D2UCsOLZToHACCAJ1k=;
        b=Dub8ohfuWPGodkuJwdIOiPTDdG5Rv1vw8ojiWj6RsacLZmEpIBzkhuxbgz459KcsPu
         LtqLjHPpX6zcDdDvqiXoYwqjN0xCECDseRhaig5Ke+I0mu6QQOTDaDS0LpdYIgKfnuwQ
         tVSwSlMiyolamVK0rPUszvGsfb2JtuuqkLGBiYUgx9Hp1PcJEJrAa8Z4ML0L+QXKRatJ
         zH43BgpzQUXf8hkr9pmEmhIacnpPhHaiVcvKRmoewhpdALnSr+MbSMWFIBLOmujzP3IA
         c5WU1Aeyzowu3iyseDtWC0UMea6dUWFOd1g0pCM6iKgUVN0K7icF3hK6yrU3txK77t4/
         hxVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722248413; x=1722853213;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=8CfzeXNdrnFUcdHxmlWuXj+M7D2UCsOLZToHACCAJ1k=;
        b=taUTf/dPTV1yetY730sY8sKEMfCqU46mObq4NeaXV4m4qJSOBE9yTPOT7PlcoGBmcQ
         HPNS56BIPgxsyS5/ceyQt34nq68v40T2ioGnQ7QEYzgaDCcYCpaUp+1dOM7zGr0CuvrG
         cma3nZVnKC5TlDZSyCyFrRrSzVzJYdNzGaqtWzAwK3vwPKIxJSg5MFSch/KjSrdm6ue7
         qk71aCnOpXmZxc5KTn/ySRTTJWyAqHkFbPqLBWgHHeEyMS3/DgedIq8LPHz8vPSRtKxa
         RStkZDTV3KZ5sWVjwL3YTPsGRY76fsQVZuG/4c22WLszp5Kx1j48VNprT1bsp8xn6tXB
         f06w==
X-Forwarded-Encrypted: i=1; AJvYcCW5+OicqxHbbRNSfNrTtSO52t3s/vWPBf4InbnAGYq71VHkF9igItiH/70MqQ+blPl+vtsPHYr/KjoMiYbt2WDRXtB/dElixZ8lXwVdupw=
X-Gm-Message-State: AOJu0YyA9Yqu26mlkhmmEA48RSKYBaAn2sXH/TT3F+j9qfls2qAnFDu+
	FT60eFbOYYtO7ZcL2eITWZMe7YG0Z4SVOAvei/nLjEbdORGO/NZl
X-Google-Smtp-Source: AGHT+IH4HcTozjOmk8xBFK9leXtLFkOvJ5l8I7zd8/4xYyqKznbgQ6Lt+SV976afkBxMVIad0HUpaA==
X-Received: by 2002:a05:6512:b96:b0:52e:767a:ada7 with SMTP id 2adb3069b0e04-5309b2c3ad6mr5645626e87.50.1722248412692;
        Mon, 29 Jul 2024 03:20:12 -0700 (PDT)
Message-ID: <843c1b340e153cb535f28872a95623cf46a35981.camel@gmail.com>
Subject: Re: [PATCH for 4.19] CHANGELOG.md: Finalize changes in 4.19 release
 cycle
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Community Manager <community.manager@xenproject.org>, "committers @
 xenproject . org" <committers@xenproject.org>, Julien Grall
 <jgrall@amazon.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>, Shawn Anastasio <sanastasio@raptorengineering.com>,
 Roger Pau =?ISO-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
Date: Mon, 29 Jul 2024 12:20:11 +0200
In-Reply-To: <f2450b46-3542-4e1c-b7d7-8735b1839791@suse.com>
References:
	  <0c93b49ac00fa92721035b4f9eb2ae76175fe886.1722237887.git.oleksii.kurochko@gmail.com>
	 <f2450b46-3542-4e1c-b7d7-8735b1839791@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-29 at 10:11 +0200, Jan Beulich wrote:
> On 29.07.2024 09:31, Oleksii Kurochko wrote:
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> Since no-one else cared to reply so far, I will (I tried to avoid
> doing so,
> because - I'm sorry for that - feedback is mostly negative, in part
> following
> what I said for some 4.18 entries last time already, iirc):
Any feedback is good!

>=20
> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -15,6 +15,17 @@ The format is based on [Keep a
> > Changelog](https://keepachangelog.com/en/1.0.0/)
> > =C2=A0=C2=A0=C2=A0 - Reduce IOMMU setup time for hardware domain.
> > =C2=A0=C2=A0=C2=A0 - Allow HVM/PVH domains to map foreign pages.
> > =C2=A0=C2=A0=C2=A0 - Declare PVH dom0 supported with caveats.
> > + - On Arm:
> > +=C2=A0=C2=A0 - Reworking the logic so all the MMU-off code is now self=
-
> > contained for
> > +=C2=A0=C2=A0=C2=A0=C2=A0 secondary boot CPUs on arm64.
>=20
> This is an implementation detail aiui nothing people using Xen would
> actually
> stumble across or notice. Imo such doesn't belong here. Same goes for
> the
> entire PPC part of this hunk further down.
>=20
> > +=C2=A0=C2=A0 - Code symbol annotations and MISRA compliance improvemen=
ts.
>=20
> This isn't Arm-specific, is it?
Agree, this is not Arm-specific, so I will move it to "Changed".

>=20
> > +=C2=A0=C2=A0 - Addressing issues of the static shared memory feature.
>=20
> Along the lines of the above, I don't think individual features' bug
> fixes
> want/need mentioning here.
>=20
> > @@ -23,6 +34,11 @@ The format is based on [Keep a
> > Changelog](https://keepachangelog.com/en/1.0.0/)
> > =C2=A0=C2=A0=C2=A0 using a standalone library implementation.
> > =C2=A0 - xenalyze no longer requires `--svm-mode` when analyzing traces
> > =C2=A0=C2=A0=C2=A0 generated on AMD CPUs
> > + - CI updates:
> > +=C2=A0=C2=A0 - Minimum fixes to rebuild the containers, following the
> > HEREDOC problems.
> > +=C2=A0=C2=A0 - Rebuild containers to have testing with up-to-date LTS
> > distros.
> > +=C2=A0=C2=A0 - Few build system checks, and strip the obsolete content=
s of
> > +=C2=A0=C2=A0=C2=A0=C2=A0 the build containers.
>=20
> This again doesn't concern people using Xen, does it?
What about people who are building Xen themselves? This part of the
changelog informs them that we have verified Xen builds with the latest
up-to-date LTS.

>=20
> > @@ -31,6 +47,14 @@ The format is based on [Keep a
> > Changelog](https://keepachangelog.com/en/1.0.0/)
> > =C2=A0 - Add a new 9pfs backend running as a daemon in dom0. First user
> > is
> > =C2=A0=C2=A0=C2=A0 Xenstore-stubdom now being able to support full Xens=
tore trace
> > capability.
> > =C2=A0 - libxl support for backendtype=3Dtap with tapback.
> > + - On Arm:
> > +=C2=A0=C2=A0 - FF-A notification support.
> > +=C2=A0=C2=A0 - Introduction of dynamic node programming using overlay =
dtbo.
>=20
> This is fine to have. I wonder though if the per-arch sections
> wouldn't
> better sit next to each other (all at the top or all at the bottom).
I didn't get you here. Everything in "### Added" is sorted per-arch.

>=20
> > + - On PPC:
> > +=C2=A0=C2=A0 - Basic exception handler implementation.
> > + - On RISCV:
> > +=C2=A0=C2=A0 - Identity mapping implementation.
> > +=C2=A0=C2=A0 - Introduction of architecture-specific headers.
>=20
> These again don't concern people using Xen, do they?
Well, I agree that PPC/RISCV is far away from being used but still it
shows that progress is going on.

Do we have the document which tell what should be in CHANGELOG and what
shouldn't?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 10:31:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 10:31:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766567.1177060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYNet-0003pa-89; Mon, 29 Jul 2024 10:31:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766567.1177060; Mon, 29 Jul 2024 10:31:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYNet-0003pT-5M; Mon, 29 Jul 2024 10:31:15 +0000
Received: by outflank-mailman (input) for mailman id 766567;
 Mon, 29 Jul 2024 10: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=QfTU=O5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYNer-0003pN-Ls
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 10:31:13 +0000
Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com
 [2607:f8b0:4864:20::735])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id acf5027d-4d95-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 12:31:12 +0200 (CEST)
Received: by mail-qk1-x735.google.com with SMTP id
 af79cd13be357-7a1d42da3e9so212765685a.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 03:31:12 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d73b46b4sm501905385a.53.2024.07.29.03.31.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 03:31: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: acf5027d-4d95-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722249071; x=1722853871; 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=AI0UK5qCNOOrU7GfTGx6cClk9X+EWmbw1QdJSQJMxLQ=;
        b=Y1PpxrTKUd+mL+E50W0ijLhl0cJBg8aRfbd633oImXwDqGuFkr+HeH/w069kUXYKeD
         K+QTJF01mhOgAKxzltjaPEr0Ei9gjWIXFYkOVywo4dWHqj+QHKSkdPcrOrgfCofJzUDx
         1Oxhg3TUoTzx1KcDXp9tX346PhKQc6m8nNYyg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722249071; x=1722853871;
        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=AI0UK5qCNOOrU7GfTGx6cClk9X+EWmbw1QdJSQJMxLQ=;
        b=UKgRtNCqGvSCGWT2qHcFvvYId9gufEGGpqrOueU/sSiNlxgmGUDBsnn8eA6T4D/Ti+
         NYKT3gTSbBORdtaR+10QSOqfyDAuRI3zQcYXf8O1PgLfPQ5vcXAxbTcHLkiOvvlbJsSy
         VKtLbHyOTS+sQe/klAoS0nxLpJrNmoLuz4iJWhGDrT0Rr+cMte/MEBIv7JTm4qYzgkaS
         e7Ky0w0V5F1H84NEgTEdcL0FAZgC/Z4nO/AlzUDtJBUi53VGuqtbNqoApHo/3dBoLrgM
         ogwqDntTf+G1Q00jMCwVq6XCEWbSSyjVa1AWVbHMGrUh22unu4ZdReRGAEMp2FuBMVz9
         3lzg==
X-Gm-Message-State: AOJu0YwGYRaDAfsZ10DfHvJV2qgJPZeJj0dw0IgcgUpk9NsPzrb/fowK
	RNs8uV0/2hetFjRMKXy/tLfjdh9RcXygc5QLW+xtgmvDjCkRahqZplQ9e9ovqCUiXar8rQVfS/z
	P
X-Google-Smtp-Source: AGHT+IHTYKTe5I7K3KjDdlckLM6QoOsRNqwdZH6h6uDlkL9PQzvOgXZAQDuDhoGiJnbSWdu5CQtUhQ==
X-Received: by 2002:a05:620a:472a:b0:79f:8a2:c33 with SMTP id af79cd13be357-7a1e5230095mr918579785a.8.1722249070858;
        Mon, 29 Jul 2024 03:31:10 -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>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v2] x86/altcall: further refine clang workaround
Date: Mon, 29 Jul 2024 12:30:50 +0200
Message-ID: <20240729103050.38401-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current code in ALT_CALL_ARG() won't successfully workaround the clang
code-generation issue if the arg parameter has a size that's not a power of 2.
While there are no such sized parameters at the moment, improve the workaround
to also be effective when such sizes are used.

Instead of using a union with a long use an unsigned long that's first
initialized to 0 and afterwards set to the argument value.

Reported-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Suggested-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/alternative.h | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index e63b45927643..12590504d465 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -183,13 +183,13 @@ extern void alternative_branches(void);
  * https://github.com/llvm/llvm-project/issues/12579
  * https://github.com/llvm/llvm-project/issues/82598
  */
-#define ALT_CALL_ARG(arg, n)                                            \
-    register union {                                                    \
-        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
-        unsigned long r;                                                \
-    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
-        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
-    }
+#define ALT_CALL_ARG(arg, n)                                             \
+     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
+         unsigned long tmp = 0;                                          \
+         *(typeof(arg) *)&tmp = (arg);                                   \
+         BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                     \
+         tmp;                                                            \
+     })
 #else
 #define ALT_CALL_ARG(arg, n) \
     register typeof(arg) a ## n ## _ asm ( ALT_CALL_arg ## n ) = \
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 10:40:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 10:40:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766575.1177070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYNnm-0005r1-2y; Mon, 29 Jul 2024 10:40:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766575.1177070; Mon, 29 Jul 2024 10: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 1sYNnl-0005qu-W7; Mon, 29 Jul 2024 10:40:25 +0000
Received: by outflank-mailman (input) for mailman id 766575;
 Mon, 29 Jul 2024 10:40: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYNnk-0005qo-Lk
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 10:40:24 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f50151e1-4d96-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 12:40:22 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a7aada2358fso612291166b.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 03:40: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
 a640c23a62f3a-a7acab4de6fsm493592866b.63.2024.07.29.03.40.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 03: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: f50151e1-4d96-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722249622; x=1722854422; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CyjpNTegy+UU7KeQwylz5bSCg0p9AmxPerrRAfmVEqQ=;
        b=M1BD46JMtqHR31QZabe59BvlmwspTwkuYdVa0ksAh9rKIicDYNR6CnvsGR2n66inz/
         CMkVtojiWue8CQfN4TWvLds/JnblfToDziktxi7EzQv36Uje7qGcSqSkyT2pSdbb+jIs
         JJZSFFwx80/GFT9BG4Ok53RDcNAGKBQB4Rfgjw+D7vgt1bgpQ3x/WKI2q63Z5dLNRs9t
         qIVOBrjn34R3mCUh2ff4nO2E8klN6J2uz+wijh0ecEyrg6SrU/gBS2YAfNGncrIgWIBJ
         EKLjPi76W7fVmTFpNSy6lh8E/Qm2bSrntJtZXIKcPLtWUVuxXo50/JF+T7TVPZs8N/T7
         Z8uQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722249622; x=1722854422;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CyjpNTegy+UU7KeQwylz5bSCg0p9AmxPerrRAfmVEqQ=;
        b=EXEfxz0El6qj7uWsSMoTFcpUlC4F6aedrkq8LWrVJP/DElcB90ANxbckzeW055ysyZ
         JOyo8QfC1ZpIqjRa9ArnBnS17bp0h0MQYEzSrUb3FJl1hvzBa00TbJGjlsx1zxhEl6W9
         WPWuVmNugf7VnHEUqGOtwkSy7s5SghKJBJEunbzwBIZ2+i+58mG6t3NFHpNY+DzzdyQm
         a/8Z7uY/5Vk6CtCVxFWHlqocfK+Uxo5byDF2sLICQ68gXBdGd4WYgUcPcz+YncAxyCTr
         WkAwvDNburo0ocR/9oC9KL+xGzxsxd4ttejjjown95VWQK9+TEd6y7ydUz7lNQGUq2E7
         zRbg==
X-Forwarded-Encrypted: i=1; AJvYcCV5/FAig1b1lHaVchugCf4RsjBXYZ/ZpDG5aZhrFuwRMMafyplKe1EE8sR6fK4f+/yOAEdTAE8LzrErdsXfFP6IEwOkwyZxS+Q2esqr/VE=
X-Gm-Message-State: AOJu0Yxh/i8QBWuT6NH9fOsNp0LVQSpn3nhLSPuzEcIMoWojzXTNHeP+
	MU3wtmFNRVPCHleItnXm8XITdMkaw2wZE0Gv1WEm7CWUchz4xQvDI6LfH2pdgQ==
X-Google-Smtp-Source: AGHT+IHElL4ZMTUkg7Of0OxTLAURpm/cVQa0+kC6UsnhS1t5lPBibttEniWvVv33bvZ1W01A7LPTUg==
X-Received: by 2002:a17:907:9403:b0:a6f:e0f0:d669 with SMTP id a640c23a62f3a-a7d3f85b402mr708468266b.12.1722249621821;
        Mon, 29 Jul 2024 03:40:21 -0700 (PDT)
Message-ID: <dcca64aa-eb2c-41e2-9f24-3fdc26e6e367@suse.com>
Date: Mon, 29 Jul 2024 12:40:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for 4.19] CHANGELOG.md: Finalize changes in 4.19 release
 cycle
To: oleksii.kurochko@gmail.com
Cc: Community Manager <community.manager@xenproject.org>,
 "committers @ xenproject . org" <committers@xenproject.org>,
 Julien Grall <jgrall@amazon.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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <0c93b49ac00fa92721035b4f9eb2ae76175fe886.1722237887.git.oleksii.kurochko@gmail.com>
 <f2450b46-3542-4e1c-b7d7-8735b1839791@suse.com>
 <843c1b340e153cb535f28872a95623cf46a35981.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <843c1b340e153cb535f28872a95623cf46a35981.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.07.2024 12:20, oleksii.kurochko@gmail.com wrote:
> On Mon, 2024-07-29 at 10:11 +0200, Jan Beulich wrote:
>> On 29.07.2024 09:31, Oleksii Kurochko wrote:
>>> @@ -31,6 +47,14 @@ The format is based on [Keep a
>>> Changelog](https://keepachangelog.com/en/1.0.0/)
>>>   - Add a new 9pfs backend running as a daemon in dom0. First user
>>> is
>>>     Xenstore-stubdom now being able to support full Xenstore trace
>>> capability.
>>>   - libxl support for backendtype=tap with tapback.
>>> + - On Arm:
>>> +   - FF-A notification support.
>>> +   - Introduction of dynamic node programming using overlay dtbo.
>>
>> This is fine to have. I wonder though if the per-arch sections
>> wouldn't
>> better sit next to each other (all at the top or all at the bottom).
> I didn't get you here. Everything in "### Added" is sorted per-arch.

But x86 is at the start of the section, whereas you add to the bottom.

>>> + - On PPC:
>>> +   - Basic exception handler implementation.
>>> + - On RISCV:
>>> +   - Identity mapping implementation.
>>> +   - Introduction of architecture-specific headers.
>>
>> These again don't concern people using Xen, do they?
> Well, I agree that PPC/RISCV is far away from being used but still it
> shows that progress is going on.
> 
> Do we have the document which tell what should be in CHANGELOG and what
> shouldn't?

I'm not aware of any. And as mentioned, there has been disagreement before.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 10:47:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 10:47:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766585.1177080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYNuJ-0006zr-Qu; Mon, 29 Jul 2024 10:47:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766585.1177080; Mon, 29 Jul 2024 10: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 1sYNuJ-0006zk-OF; Mon, 29 Jul 2024 10:47:11 +0000
Received: by outflank-mailman (input) for mailman id 766585;
 Mon, 29 Jul 2024 10:47: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYNuI-0006ze-JI
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 10:47:10 +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 e793e1c8-4d97-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 12:47:09 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a7aa212c1c9so449385766b.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 03:47: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-a7acad418f1sm486769066b.135.2024.07.29.03.47.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 03: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: e793e1c8-4d97-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722250029; x=1722854829; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=75tZsRRT0P/pYwpcBW5aVpn9TYPt/uXgIxOkkV6L/Lw=;
        b=AEnjZfWPzB7KQGjz7ZDYDIxUE14rKQgpYpGKHA0e6Pvo4tzXZduBhMHmN7uCnKZT6C
         3q+yBCK2AuANODW2JwnFsUvNoZrUcrqUEKjiqeRraS/pFebibaxA0LHyDRK+yoru8z1V
         ajAu1LMmcFwmA5g4GmVseidvlUclKHRnf9zMUm8nzSmA7h07ihSgk6/jMtOShOMJyl/B
         6srp5KhNlbKLt1AICZePaKAJRVtEFCpVEZjQtO6dCBfKA277hsYVFK+Ypn2YyIz9ztr8
         UKMntnNrndDTtEhRq1Ht6KS9mPpLUcYjQAWAaIHS8S1iIXEijz6EUPa6C7EB6j16uf3c
         qtTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722250029; x=1722854829;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=75tZsRRT0P/pYwpcBW5aVpn9TYPt/uXgIxOkkV6L/Lw=;
        b=VbIfxk1Oy9HjsZHSF7MLtinaFKQjEYwvpXfi/5t1w/+HdhbXtKrhJYTMXspxzCZdZr
         FiQEWvOwYbf9voJZITYAU7ePHfMcfry67aZFh7nyBcKcOam+LSko8qGPGoM8QJkDN9vD
         hgj/rMFzR/n9JfSEBy+qy817u/d4bQOfjxkfTFhyjoBtTTU2ubwcuSZ6iRUQqYNFULYY
         4V59INmOoAbTLfszry8d8DarNR33Zm7epOTVdeMYA6ZHCXBT+C1EqgC9hNSksfalAlzt
         oZDI+aiSB+/my4aRh2hW21lkxySQYVHqmo4KmKyrmSL4NDMgCeIxcVIqEjMCV4xhdDr5
         d0HA==
X-Forwarded-Encrypted: i=1; AJvYcCUUyq/Dk36jkDWFVYcrSYQ0SscBmJQ0pnh+7d4Qi7lmV4Oskc1G9eAcZFguD0/u8N4iSBHgcMetQQN0/ET2aFb7FaVliZ/ip71ecsekQ0E=
X-Gm-Message-State: AOJu0YxFgI3wMVQvBxAOB5rtYbvkN4Fi5YMMFBsV8ClLksIeKTJk51r8
	iVI4GrnvWBXEVt08UobYVCg4+FiZ6oO7K43YoFCzbEEwC2//DownBzUOQ8mrFQ==
X-Google-Smtp-Source: AGHT+IESOR2+VoUyPOWTgXCHlXh7hOzOkJ5+F4Mc53h/J9Pl2NofVEx9kUZwfptkc8Xvl9pLBkKt7w==
X-Received: by 2002:a17:907:e8a:b0:a7a:af5d:f30b with SMTP id a640c23a62f3a-a7d401e02c2mr359882166b.66.1722250028743;
        Mon, 29 Jul 2024 03:47:08 -0700 (PDT)
Message-ID: <5f31e485-f103-4fe8-bcd5-7e5d1312e449@suse.com>
Date: Mon, 29 Jul 2024 12:47:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/altcall: further refine clang workaround
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org
References: <20240729103050.38401-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: <20240729103050.38401-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 12:30, Roger Pau Monne wrote:
> --- a/xen/arch/x86/include/asm/alternative.h
> +++ b/xen/arch/x86/include/asm/alternative.h
> @@ -183,13 +183,13 @@ extern void alternative_branches(void);
>   * https://github.com/llvm/llvm-project/issues/12579
>   * https://github.com/llvm/llvm-project/issues/82598
>   */
> -#define ALT_CALL_ARG(arg, n)                                            \
> -    register union {                                                    \
> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> -        unsigned long r;                                                \
> -    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
> -        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> -    }
> +#define ALT_CALL_ARG(arg, n)                                             \
> +     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
> +         unsigned long tmp = 0;                                          \
> +         *(typeof(arg) *)&tmp = (arg);                                   \
> +         BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                     \

With this, even more so than before, I think the type of tmp would better
be void * (or the BUILD_BUG_ON() be made use unsigned long, yet I consider
that less desirable). As a nit, I also don't think the backslashes need
moving out by one position. Finally I'm afraid you're leaving stale the
comment ahead of this construct.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 11:07:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 11:07:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766595.1177089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYODP-000219-CY; Mon, 29 Jul 2024 11:06:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766595.1177089; Mon, 29 Jul 2024 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 1sYODP-00020B-9N; Mon, 29 Jul 2024 11:06:55 +0000
Received: by outflank-mailman (input) for mailman id 766595;
 Mon, 29 Jul 2024 11:06: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYODO-0001zn-Nu
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 11:06:54 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a9805e2b-4d9a-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 13:06:53 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-52efa16aad9so4891688e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 04:06: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
 4fb4d7f45d1cf-5ac63590d76sm5658722a12.24.2024.07.29.04.06.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 04: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: a9805e2b-4d9a-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722251213; x=1722856013; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jdcyUW8YkGgSGPTmCXDLuGHXhlnx4+qvAzXEI3OMnMk=;
        b=dMEbq7bUtvVF5lhlw/ZsjiL6OYy2YtEL+2ZXmQ3Eswbt8ZoCsOo5a+VA3AzrYTCec2
         7hI3RvnhrnNoS4IKnc/WmfVMBp48iOD0Ul2ZKDMgbT9UlPkah6StVeOJcIv8hTKsq/J3
         MkhLyyeUwWCeztP7rHv+qEVVQhEGwHZW+r1qDwWEw42mUj8FKCzVIw5LATCnuHoFxPQo
         0kcHn9c01ofSMS0KfJ+YLfXgu7erFC3ZIq2+ErXmnpQar6LrSZzGJnd7GIMrEokiRxM5
         kTUrrz5DMOIcJDTJknet2LOLu/YKM2fn62ePoyphSoWLUBKvu1D0WlQ1JNJOwf7QX8DS
         rabg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722251213; x=1722856013;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jdcyUW8YkGgSGPTmCXDLuGHXhlnx4+qvAzXEI3OMnMk=;
        b=J2uzzxl2UCzkpuMSRY8bqSkUocu3jZ5NyJWV68ewPuZxzHiZ/6elg8TH/oBTfaOACc
         v0Sl7fsk4WDFdkWLaGCymzSOHBjq3Kxpe4pgpNJmFxNPLsv7XAhk8X64tzxP4bjB8yCm
         HQOZ9GGY2sB1U2EGcJ1ieMYWZoBL6hGFrd7FWSn0Ct+1KsV1Urikzuoa633NkNtn2gbC
         KFNlEe/VPlPJBn/TvtlT5gMfpZxiZPPWqjxVTDv8WyuGsQmTeTOE1nEGtEpKXJppVr/m
         tLJoBDCm9Rdjq8nUF0ovdGHT29XGhj5yD2bta7oUMc3d6mag5HJpcFLk/NtkqxKbDoFZ
         u+tg==
X-Forwarded-Encrypted: i=1; AJvYcCUTBX2fR1Ylkm/wM2p9KFLY4Q7BNqrHnbYkV/oZdi3ZPoBpvyjb5f2yLjNK6W7nUe/HX+055f9dCP8BRuX4lF7g2Sh9gyxXTq41zhVCGiY=
X-Gm-Message-State: AOJu0YxZUY5ERXibXBTjXgG95Y4/CF+YTQQZ3gkw0Hzrq8JjA0LnS1xm
	7sE0DaacON9Uu2mpEtVXDG/Gkyxc2HZtta5VUG1EhJnbiSXKrG0qnw7ihqNJig==
X-Google-Smtp-Source: AGHT+IHvQxFlL3Gm7GgP5OLe7Oc8FqXKxi4KPs0sPlPbXjAAkMRRS+cwG5L+oA/hMi7Pg7wSeBPmdw==
X-Received: by 2002:ac2:48a5:0:b0:52c:f2e0:db23 with SMTP id 2adb3069b0e04-5309b2c2ab8mr4354849e87.40.1722251212908;
        Mon, 29 Jul 2024 04:06:52 -0700 (PDT)
Message-ID: <9a91fed1-64eb-4f52-9134-131c556e9244@suse.com>
Date: Mon, 29 Jul 2024 13:06:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 6/8] x86/hvm: add defensive statements in
 unreachable program points
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.1722239813.git.federico.serafini@bugseng.com>
 <a686f70406c33d689b040af5d4e14878cde8a36c.1722239813.git.federico.serafini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a686f70406c33d689b040af5d4e14878cde8a36c.1722239813.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 11:00, Federico Serafini wrote:
> As a defensive measure, make sure to signal an error to the caller
> if an unreachable program point is reached.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 11:12:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 11:12:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766603.1177100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOIw-0003e5-05; Mon, 29 Jul 2024 11:12:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766603.1177100; Mon, 29 Jul 2024 11:12: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 1sYOIv-0003dy-T8; Mon, 29 Jul 2024 11:12:37 +0000
Received: by outflank-mailman (input) for mailman id 766603;
 Mon, 29 Jul 2024 11:12: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=vj3p=O5=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sYOIu-0003ds-QY
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 11:12:36 +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 75678f6b-4d9b-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 13:12:35 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-595856e2336so6968995a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 04:12:35 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac631b046fsm5621463a12.18.2024.07.29.04.12.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 04:12: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: 75678f6b-4d9b-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722251555; x=1722856355; 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=PwobmWn9iHkOe0+zh6FeaE5pEcL8ZlX2W1yrPwOtvx8=;
        b=A0YNUxSFQQciaa5m0nqy95Y7SUHGJoCZvTnipSVZ+zS9uEHp4G9sXnihpJOUMPiFqS
         UWfmsluGqw/NVXZN7zM5AG5Dg61+chhvFldDa3MxUg1sqpCEKqzk5szQ7ydFIk3ghn+u
         UlvnmQYwdvvyZE9VbbkfcApyFA+lqoeLmZqBI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722251555; x=1722856355;
        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=PwobmWn9iHkOe0+zh6FeaE5pEcL8ZlX2W1yrPwOtvx8=;
        b=J73rxGj9laCfvIAxSi40ZtUM4v6xkjvMbXioFSmkLUugZExeEpDledEzAy7YpDHD0s
         9GrNTZV97GC5dwRm5WdkMSqXDzitl6u4N5vh4BBdCITYMgP/94D+Cb//brdCaZoOkVI+
         ce2wWZZOWZ3NbtuCManpIFsUISdqcag1/3Z/nn/NJrGkD7MCQYJUlPUkNXHKD7y2V2is
         3Vjp3bOGnCw/zya6ruKAgHxHqHumkh3n3RQogDDAtJKapaAqictxH50HalegJKGxTwuX
         tjx8JMEsScf0vdeiCx6qjDUchggr5Kpe12WZR2FakvjwSyozxZ6f+M/PldI2HSYD+dcN
         UrWg==
X-Forwarded-Encrypted: i=1; AJvYcCUOHg8cMd8IHeE1+6zuo9vQrZuGeHkWniVs4t61C1abm7xefbR9nmTYBH6BKtQ4+dlZ2Zks6+v2kcSa8p6nI3upRspA6Kbflmy2LeeyXEE=
X-Gm-Message-State: AOJu0Yzg0bignEfB5/hxEOPahjBqMmaI3HcvyT4pZ0btJ6DLemB8g2/n
	4RrBTWqPnNGjZLai11aCZSxSz84VxJsbvBk0VbIRs6z9i/zsPTG9ouowAQ1mOQY=
X-Google-Smtp-Source: AGHT+IEbWeA2HbXNhQEWgUNNmstbFm3NUWgLivKlWscR3vSfeRqzBHNxvD/vvnViTOB+98j8u1hORA==
X-Received: by 2002:a50:9b5b:0:b0:5a1:4f76:1a25 with SMTP id 4fb4d7f45d1cf-5b0192a5ab6mr6858392a12.17.1722251555239;
        Mon, 29 Jul 2024 04:12:35 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 29 Jul 2024 12:12:32 +0100
Message-Id: <D31Z80PQAXQ8.3CHMUYH6AQJOL@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
 <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2] x86/altcall: further refine clang workaround
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>, "Roger Pau Monne"
 <roger.pau@citrix.com>
X-Mailer: aerc 0.17.0
References: <20240729103050.38401-1-roger.pau@citrix.com>
 <5f31e485-f103-4fe8-bcd5-7e5d1312e449@suse.com>
In-Reply-To: <5f31e485-f103-4fe8-bcd5-7e5d1312e449@suse.com>

On Mon Jul 29, 2024 at 11:47 AM BST, Jan Beulich wrote:
> On 29.07.2024 12:30, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/include/asm/alternative.h
> > +++ b/xen/arch/x86/include/asm/alternative.h
> > @@ -183,13 +183,13 @@ extern void alternative_branches(void);
> >   * https://github.com/llvm/llvm-project/issues/12579
> >   * https://github.com/llvm/llvm-project/issues/82598
> >   */
> > -#define ALT_CALL_ARG(arg, n)                                          =
  \
> > -    register union {                                                  =
  \
> > -        typeof(arg) e[sizeof(long) / sizeof(arg)];                    =
  \
> > -        unsigned long r;                                              =
  \
> > -    } a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D {                     =
    \
> > -        .e[0] =3D ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg)=
; })\
> > -    }
> > +#define ALT_CALL_ARG(arg, n)                                          =
   \
> > +     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) =3D =
({   \
> > +         unsigned long tmp =3D 0;                                     =
     \
> > +         *(typeof(arg) *)&tmp =3D (arg);                              =
     \
> > +         BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                  =
   \
>
> With this, even more so than before, I think the type of tmp would better
> be void * (or the BUILD_BUG_ON() be made use unsigned long, yet I conside=
r
> that less desirable). As a nit, I also don't think the backslashes need
> moving out by one position. Finally I'm afraid you're leaving stale the
> comment ahead of this construct.
>
> Jan

I wouldn't be thrilled to create a temp variable of yet another type that i=
s
potentially neither "typeof(arg)" nor "unsigned long". No need to create a =
3
body problem, where 2 is enough. Adjusting BUILD_BUG_ON() to use the same t=
emp
type seems sensible, but I don't mind very much.

With the stale comment adjusted:

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

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 11:13:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 11:13:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766606.1177110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOJN-00041y-7u; Mon, 29 Jul 2024 11:13:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766606.1177110; Mon, 29 Jul 2024 11: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 1sYOJN-00041r-4t; Mon, 29 Jul 2024 11:13:05 +0000
Received: by outflank-mailman (input) for mailman id 766606;
 Mon, 29 Jul 2024 11: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYOJL-0003ds-Bj
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 11:13:03 +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 85680bb4-4d9b-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 13:13:02 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a7aa4bf4d1eso453167466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 04:13: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
 a640c23a62f3a-a7acad426aasm494112666b.105.2024.07.29.04.13.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 04: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: 85680bb4-4d9b-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722251582; x=1722856382; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=S0XskagNe3/5G8CJDuDPhhS02aAa2EarHZUmEHf3vUg=;
        b=OjmmINxUCGSOd/lzlB/Wh65FHmTt7LFZPzX2wsj+kWw3CGfv2wNIJQaXEqnOnvnNBI
         Bs3hoDTKBDjFsINHsjSKvahIsH5+/QLCNzj12hlcidSiKMGpI2GDZTbf/peObShMFUTq
         7OKm2TrcL1cEAmGjL/CyFvlBD07bTUgGoZStHhQn7iZ+icrtjer0o4+p9JY7BCUoSXpe
         wxHVaxHsvE3ATryCjlmSjk5t3bbTwlb1BosibSL3H6OXnTHYj/ueaDG3K86ijpEq/yR0
         zDy+OdZezcqLMBRQVqMB8/9SBja895X0oKKXSpEI+DPkay9DXIMFNonw1tNaLj7t7sva
         /kRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722251582; x=1722856382;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S0XskagNe3/5G8CJDuDPhhS02aAa2EarHZUmEHf3vUg=;
        b=WVHFClcUCVPEGl0Na3JlTBlCgfrB16/lePyBPqD2MUpQWKONCHpxvKOEZM1aTwcLeG
         D8TdbmQ11wWqNk8bjwOFqTViT9zpDvv/xSdtdQrk0EG9w2buYVgRJDTMFxKgpGSQYw4B
         DWV/40+ExZJQ6VESSsYzCP0Ws+Unqoii8CZdZlWhC6awEvu2l1Oxi+VcxI4R3QtS0TQJ
         YZ0Pj+HvqQqcdZm18qlP56thpqp063DnS5CPrtvvvo6fDNKDDMnaVqi7IQqRmGYTqpgI
         Q/ulBOK7tu+8yPy7U/KT16zn7Ntn3Xtjwt7DQUY5b3A0Q1YiRbKCGN1MsQr3vSev4yf9
         Y8vQ==
X-Forwarded-Encrypted: i=1; AJvYcCXy6CR5cXk1IrG0GD9UFbiNSe1dpiea8A5Gj+VhWuYyNpO4TLHu7asBJIQoZ3rXTuCr9K7xfLGGmilKk2qEGwNctBkspj4H15NQXzAjoFo=
X-Gm-Message-State: AOJu0YyinzHc9VAZkOLEzlj+Ofb6UORTcFJan8/QrWEGiXb5hBmxXv6K
	NtS9FL9kRUvnW7WTGrhtoKMwvP0iCU2O6SqNJGYcKhpTGqa8KzpR0QWa4VsoHw==
X-Google-Smtp-Source: AGHT+IEo6OUdTUDTGyPhR3Vf4FZmQt6CAiOf9SWn61VlB8YqEn5C1nWU3+Md9QqJa77ocgMZZNSQTw==
X-Received: by 2002:a17:907:7e81:b0:a7a:3928:3529 with SMTP id a640c23a62f3a-a7d3fdb643fmr546004766b.13.1722251581942;
        Mon, 29 Jul 2024 04:13:01 -0700 (PDT)
Message-ID: <a713e7a4-61d6-48ec-95ca-ad729fa3395d@suse.com>
Date: Mon, 29 Jul 2024 13:13:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/2] x86/mm: add API for marking only part of a MMIO
 page read only
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>,
 xen-devel@lists.xenproject.org
References: <cover.fe70b6220fe40bbe11f97b9396340c5dd11d59aa.1721958949.git-series.marmarek@invisiblethingslab.com>
 <7439bbc83314e4d24a82afca4f6dbf1a1d002141.1721958949.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: <7439bbc83314e4d24a82afca4f6dbf1a1d002141.1721958949.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.07.2024 03:55, Marek Marczykowski-Górecki wrote:
> In some cases, only few registers on a page needs to be write-protected.
> Examples include USB3 console (64 bytes worth of registers) or MSI-X's
> PBA table (which doesn't need to span the whole table either), although
> in the latter case the spec forbids placing other registers on the same
> page. Current API allows only marking whole pages pages read-only,
> which sometimes may cover other registers that guest may need to
> write into.
> 
> Currently, when a guest tries to write to an MMIO page on the
> mmio_ro_ranges, it's either immediately crashed on EPT violation - if
> that's HVM, or if PV, it gets #PF. In case of Linux PV, if access was
> from userspace (like, /dev/mem), it will try to fixup by updating page
> tables (that Xen again will force to read-only) and will hit that #PF
> again (looping endlessly). Both behaviors are undesirable if guest could
> actually be allowed the write.
> 
> Introduce an API that allows marking part of a page read-only. Since
> sub-page permissions are not a thing in page tables (they are in EPT,
> but not granular enough), do this via emulation (or simply page fault
> handler for PV) that handles writes that are supposed to be allowed.
> The new subpage_mmio_ro_add() takes a start physical address and the
> region size in bytes. Both start address and the size need to be 8-byte
> aligned, as a practical simplification (allows using smaller bitmask,
> and a smaller granularity isn't really necessary right now).
> It will internally add relevant pages to mmio_ro_ranges, but if either
> start or end address is not page-aligned, it additionally adds that page
> to a list for sub-page R/O handling. The list holds a bitmask which
> qwords are supposed to be read-only and an address where page is mapped
> for write emulation - this mapping is done only on the first access. A
> plain list is used instead of more efficient structure, because there
> isn't supposed to be many pages needing this precise r/o control.
> 
> The mechanism this API is plugged in is slightly different for PV and
> HVM. For both paths, it's plugged into mmio_ro_emulated_write(). For PV,
> it's already called for #PF on read-only MMIO page. For HVM however, EPT
> violation on p2m_mmio_direct page results in a direct domain_crash() for
> non hardware domains.  To reach mmio_ro_emulated_write(), change how
> write violations for p2m_mmio_direct are handled - specifically, check
> if they relate to such partially protected page via
> subpage_mmio_write_accept() and if so, call hvm_emulate_one_mmio() for
> them too. This decodes what guest is trying write and finally calls
> mmio_ro_emulated_write(). The EPT write violation is detected as
> npfec.write_access and npfec.present both being true (similar to other
> places), which may cover some other (future?) cases - if that happens,
> emulator might get involved unnecessarily, but since it's limited to
> pages marked with subpage_mmio_ro_add() only, the impact is minimal.
> Both of those paths need an MFN to which guest tried to write (to check
> which part of the page is supposed to be read-only, and where
> the page is mapped for writes). This information currently isn't
> available directly in mmio_ro_emulated_write(), but in both cases it is
> already resolved somewhere higher in the call tree. Pass it down to
> mmio_ro_emulated_write() via new mmio_ro_emulate_ctxt.mfn field.
> 
> This may give a bit more access to the instruction emulator to HVM
> guests (the change in hvm_hap_nested_page_fault()), but only for pages
> explicitly marked with subpage_mmio_ro_add() - so, if the guest has a
> passed through a device partially used by Xen.
> As of the next patch, it applies only configuration explicitly
> documented as not security supported.
> 
> The subpage_mmio_ro_add() function cannot be called with overlapping
> ranges, and on pages already added to mmio_ro_ranges separately.
> Successful calls would result in correct handling, but error paths may
> result in incorrect state (like pages removed from mmio_ro_ranges too
> early). Debug build has asserts for relevant cases.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with the prior restriction that this does not include the usually implied
ack.

> +int __init subpage_mmio_ro_add(
> +    paddr_t start,
> +    size_t size)
> +{
> +    mfn_t mfn_start = maddr_to_mfn(start);
> +    paddr_t end = start + size - 1;
> +    mfn_t mfn_end = maddr_to_mfn(end);
> +    unsigned int offset_end = 0;
> +    int rc;
> +    bool subpage_start, subpage_end;
> +
> +    ASSERT(IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN));
> +    ASSERT(IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN));
> +    if ( !IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN) ||
> +         !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
> +        return -EINVAL;

As a minor remark: I can certainly see the value of having separate
assertions. For the if() I wonder though if it wouldn't better be

    if ( !IS_ALIGNED(start | size, MMIO_RO_SUBPAGE_GRAN) )
        return -EINVAL;

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 11:30:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 11:30:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766624.1177120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOa4-0007hc-Ob; Mon, 29 Jul 2024 11:30:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766624.1177120; Mon, 29 Jul 2024 11:30:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOa4-0007hV-M3; Mon, 29 Jul 2024 11:30:20 +0000
Received: by outflank-mailman (input) for mailman id 766624;
 Mon, 29 Jul 2024 11:30:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYOa2-0007hP-RM
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 11:30:18 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee56c934-4d9d-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 13:30:17 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5a10bb7bcd0so5456114a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 04:30: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
 4fb4d7f45d1cf-5ac6377d005sm5606195a12.38.2024.07.29.04.30.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 04:30: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: ee56c934-4d9d-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722252617; x=1722857417; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IUHCZK6ZvL/Arnra9wTvMAxvHk5mx1RRtZCcQa7O3h0=;
        b=NgES5xovCGdl30g67iXOftZUtOuyIUMQ/h1maq1pRLn+l+tPkZVdgRsiqTOh6czewH
         spN3b/BhPg7wGkQifaWH2OcJR83xz376PeusHFX3Fig2duEw5nG6oMtRM6OOXJZXpFs4
         itljMpeZ4hidnO7o/ND8dC0rTozFxNKjO8KBMU+wlUya95hrAig5SE+nm0AcxCfCq1Pv
         TPwKBcfOKSlguRVJDTLZtiN6rKYqnxfYacilUBMcsaT4yGdN/ba10Xslf282ZyryGzcU
         S0pTeT6A86lbK2lwMGoY5+3mF67Ilj3B1ZNEYH+D19Po3kyAlFiRrbvCQlRWtP6GEmuh
         5kDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722252617; x=1722857417;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IUHCZK6ZvL/Arnra9wTvMAxvHk5mx1RRtZCcQa7O3h0=;
        b=if4NPreqRWc0sDY2+FdBFvx9cW2Ln8aM5ipaS1JMLWeWeZBbf9SV+Rqabai0f35FkU
         0hqRgS43TXmX06loMIS8uTmzfl0HXtsJtQi1aReSoxir0liyd03Iqx+32ZyRzBd9Hq/+
         b430iFTWx/sjhZjH8/JVQjw7Obk3nNQNO7tpfy6jkc1BG2WCgkeUUAfkBJuVny96XpIj
         a12JQ+NLZu7LfbUIjlN/74bDw+mJRhk8S1/LN9kdq+MIdC6mvV2vwgCZHEoA33+iQrAa
         cKIfhh7fmezCMvoz4+Ff5rByhPPYTBwEt2NdipeuIJOcwPd0rjhmRZ+HseOgQw6LHCIz
         ln6g==
X-Forwarded-Encrypted: i=1; AJvYcCV436o+2SIivmhMhtm6cIHY2h7mC/HsnWUyVJzEfKa88n4H70kdwR/juMgw9MzZ/DhR2NCyuTTYYNA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YysWr6hxk4fBuy/ROCDevJYPE8PL5XP31WHlfqk9jO2+n9tOg7Z
	crgkmx2s7gR76tSefV40T3faOMQhMU6r4hI4SRNuQaKxVx5LKDA9v/2X6DoiEg==
X-Google-Smtp-Source: AGHT+IGbvyDMbJSBfVnrX/TW2OzdVRnZ3CxczBnMrg9rJk41cISSSWwXWWIoWuZmbdipTID1UxFV+Q==
X-Received: by 2002:a50:8e50:0:b0:5a2:fc48:db27 with SMTP id 4fb4d7f45d1cf-5b02385bb88mr5407915a12.32.1722252617121;
        Mon, 29 Jul 2024 04:30:17 -0700 (PDT)
Message-ID: <f0925d77-db8d-410c-873f-0bf38727aca9@suse.com>
Date: Mon, 29 Jul 2024 13:30:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/4] x86/ucode: Utilize ucode_force and remove
 opt_ucode_allow_same
To: Fouad Hilly <fouad.hilly@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20240725082725.2685481-1-fouad.hilly@cloud.com>
 <20240725082725.2685481-5-fouad.hilly@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240725082725.2685481-5-fouad.hilly@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.07.2024 10:27, Fouad Hilly wrote:
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -2650,7 +2650,7 @@ performance.
>     Alternatively, selecting `tsx=1` will re-enable TSX at the users own risk.
>  
>  ### ucode
> -> `= List of [ <integer> | scan=<bool>, nmi=<bool>, allow-same=<bool> ]`
> +> `= List of [ <integer> | scan=<bool>, nmi=<bool> ]`
>  
>      Applicability: x86
>      Default: `nmi`
> @@ -2682,11 +2682,6 @@ precedence over `scan`.
>  stop_machine context. In NMI handler, even NMIs are blocked, which is
>  considered safer. The default value is `true`.
>  
> -'allow-same' alters the default acceptance policy for new microcode to permit
> -trying to reload the same version.  Many CPUs will actually reload microcode
> -of the same version, and this allows for easy testing of the late microcode
> -loading path.

The removal of a command line (sub)option should come with a CHANGELOG.md
entry.

> --- a/xen/arch/x86/cpu/microcode/core.c
> +++ b/xen/arch/x86/cpu/microcode/core.c
> @@ -90,6 +90,11 @@ struct ucode_mod_blob {
>      size_t size;
>  };
>  
> +struct patch_with_flags {
> +    unsigned int flags;
> +    struct microcode_patch *patch;

Pointer-to-const? If the const was omitted here just because of
microcode_free_patch(), then I think the issue should be taken care
of there.

> @@ -237,7 +238,11 @@ static DEFINE_PER_CPU(int, loading_err);
>   */
>  static cpumask_t cpu_callin_map;
>  static atomic_t cpu_out, cpu_updated;
> -static const struct microcode_patch *nmi_patch = ZERO_BLOCK_PTR;
> +static struct patch_with_flags nmi_patch_with_flags =

Could the variable name perhaps continue to be "nmi_patch"? Or be
simply "nmi_arg" or some such?

> +{
> +    .flags  = 0,

Nit: This isn't really needed.

> @@ -379,7 +386,8 @@ static int secondary_nmi_work(void)
>      return wait_for_state(LOADING_EXIT) ? 0 : -EBUSY;
>  }
>  
> -static int primary_thread_work(const struct microcode_patch *patch)
> +static int primary_thread_work(struct microcode_patch *patch,
> +                               unsigned int flags)
>  {

Why is this change needed?

> @@ -446,7 +455,8 @@ static int secondary_thread_fn(void)
>      return this_cpu(loading_err);
>  }
>  
> -static int primary_thread_fn(const struct microcode_patch *patch)
> +static int primary_thread_fn(struct microcode_patch *patch,
> +                             unsigned int flags)

Same here.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 11:33:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 11:33:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766631.1177130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOdH-0008HL-7P; Mon, 29 Jul 2024 11:33:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766631.1177130; Mon, 29 Jul 2024 11:33:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOdH-0008HE-3Q; Mon, 29 Jul 2024 11:33:39 +0000
Received: by outflank-mailman (input) for mailman id 766631;
 Mon, 29 Jul 2024 11:33: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=2xOR=O5=armlinux.org.uk=linux+xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1sYOdE-0008H3-KC
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 11:33:37 +0000
Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk
 [2001:4d48:ad52:32c8:5054:ff:fe00:142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 62516039-4d9e-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 13:33:32 +0200 (CEST)
Received: from shell.armlinux.org.uk
 ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:55110)
 by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <linux@armlinux.org.uk>) id 1sYOcq-00045I-1a;
 Mon, 29 Jul 2024 12:33:12 +0100
Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2)
 (envelope-from <linux@shell.armlinux.org.uk>)
 id 1sYOcp-0004HW-NT; Mon, 29 Jul 2024 12:33:11 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 62516039-4d9e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To:Content-Type:
	MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:
	Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:
	List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;
	bh=wW9pxkDzQg+yBW1oIEL/KaRBqPYRvqr8l7NCyzI1vz8=; b=mKmAhjZND32uINvoMlw8aAwV45
	JM8gYQ5yvZxJN9wwL5vOmaP9p9S4woOwnZ0QHbHYGf806WmsaApv6dRXJmvZmK443XlFau4HOK7ty
	PS1EOh+d95auyIjLW3cnUBc2m95ln+UEU39BI7kAt9oAgI8LjL4HzS341sX85VNHppwtBuwtTxWE0
	Ulrebm3qogVzFVpthb9yxcTPLXeTs8KauIprCix8nuCPkm3DJlNpNDU65BaNzE8zXehNuISKUkpUy
	4LOdrFf8xxRKGrTz914qlqIxvyGdrpytWDdz3IW1aet706cA2r7tYL6tXWhsvmN5J1VABBJOwP5gD
	9btd+zpg==;
Date: Mon, 29 Jul 2024 12:33:11 +0100
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-arm-kernel@lists.infradead.org, x86@kernel.org,
	linuxppc-dev@lists.ozlabs.org, xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Oscar Salvador <osalvador@suse.de>, Peter Xu <peterx@redhat.com>,
	Muchun Song <muchun.song@linux.dev>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	"Naveen N. Rao" <naveen.n.rao@linux.ibm.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>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>
Subject: Re: [PATCH v1 1/3] mm: turn USE_SPLIT_PTE_PTLOCKS /
 USE_SPLIT_PTE_PTLOCKS into Kconfig options
Message-ID: <Zqd998jx8NJK+BNX@shell.armlinux.org.uk>
References: <20240726150728.3159964-1-david@redhat.com>
 <20240726150728.3159964-2-david@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240726150728.3159964-2-david@redhat.com>
Sender: Russell King (Oracle) <linux@armlinux.org.uk>

On Fri, Jul 26, 2024 at 05:07:26PM +0200, David Hildenbrand wrote:
> Let's clean that up a bit and prepare for depending on
> CONFIG_SPLIT_PMD_PTLOCKS in other Kconfig options.
> 
> More cleanups would be reasonable (like the arch-specific "depends on"
> for CONFIG_SPLIT_PTE_PTLOCKS), but we'll leave that for another day.
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>

Thanks!

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 11:42:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 11:42:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766643.1177139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOm9-0002Ae-0n; Mon, 29 Jul 2024 11:42:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766643.1177139; Mon, 29 Jul 2024 11:42:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOm8-0002AX-UB; Mon, 29 Jul 2024 11:42:48 +0000
Received: by outflank-mailman (input) for mailman id 766643;
 Mon, 29 Jul 2024 11:42: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYOm8-0002AR-6s
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 11:42:48 +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 ad13d5f6-4d9f-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 13:42:47 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-58ef19aa69dso3862095a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 04:42: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-5ac64eb3a95sm5577095a12.61.2024.07.29.04.42.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 04:42: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: ad13d5f6-4d9f-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722253366; x=1722858166; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eoh+pQlB/FOFYYuseEPthjFuyrVQIAx5RhzLBlsRonY=;
        b=UiKVuN0IskYGNDwYMTu4msM4QhunkvWMn0cdHKwcR5571hT9MQ/FIFdd3vZwdXdBQ9
         d4+VWzNDH5XxTGF7DspEvlIewANKcbxkkwHRNwm3CpMM7YOQnxT3ZmXqCp3M2j8wdL1V
         VB9HwaRPrmg8ilYDo9bOVbYNk+XvmLf3XvPZKpztorY4NjiuGAwZBd2rBguLqCkIiARM
         dAKueLPFNzQLWgF1sTSzWyKjSKQR27v+vJ6cVPUI8vgsWcf1/hTObVf8+1Ty5i6sepri
         8U5g1KrKDFBXvk4Z93DD/eAYOOOyQfJy6FaoX4FSmik7Ilc1tNvwhtkYKk/9e6Ngdfj+
         iHww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722253366; x=1722858166;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eoh+pQlB/FOFYYuseEPthjFuyrVQIAx5RhzLBlsRonY=;
        b=TDuSRAAxtFGBBAuIXXwnqBua3OG+DJr0EHQzWZVy65drIkfouaFUKA/EHbEm5wLrWe
         HasgS74kBVnapOu4k7eXpQ2PrPK8yPjEslV+u8sRVFUGAIndZzERYqkg9JA8uZf0+Bcu
         YSffiHNRTaWhWV6EQzo/gNt4Wc/nEIFDUTQobtWaHbkAPVAzRg6pOSj3R3kGC8ONgMFj
         BB78qaWh/58WR2gKfBzAzT7H1C5GaneZVBnyp7Jpqhg4u9V1k8hLY5q5A2wC7xsJ1ocP
         Ai/f2M8CHBCAYTq26vNA/gzFN81ldjlQGsWelcqh8NAAB0vA3aRWY4+XnGO/C0jZKob+
         XAIQ==
X-Forwarded-Encrypted: i=1; AJvYcCXd8DU31e8/Ozby9fopDuf/sV/EyXh8jI9WrLPXGG4i1RJxMtkPjnb9D+qWtY2QQtvVp4oFh2C/9PS3i3h084Eh3p95VJjYzYDLHRz1yVg=
X-Gm-Message-State: AOJu0YwfNH1w4mC3CFwm4WpurUPOlnjaZgJ0AuARezOPX7itsiAnEBqR
	BEkBk17xPaXy0xsqCBMBoFfm/qOxXv3ZNegemfoSWDNiF6E7iW24/rTArmM+PQ==
X-Google-Smtp-Source: AGHT+IEVZpnFnfRORA/WBXGE9zo+TcV8KDql5ikDC5iJQ+BVODr3QjMeuuQAav6r5ETR7b28Rf8GIA==
X-Received: by 2002:a05:6402:34cc:b0:5a0:e61c:edfd with SMTP id 4fb4d7f45d1cf-5b0207cb548mr5807405a12.14.1722253366573;
        Mon, 29 Jul 2024 04:42:46 -0700 (PDT)
Message-ID: <1e898a3c-b881-4ca8-99f0-48f51ed28098@suse.com>
Date: Mon, 29 Jul 2024 13:42:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: PE/COFF image header
To: Milan Djokic <milandjokic1995@gmail.com>
Cc: oleksii.kurochko@gmail.com, Nikola Jelic <nikola.jelic@rt-rk.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Milan Djokic <milan.djokic@rt-rk.com>,
 xen-devel@lists.xenproject.org
References: <2b747d672eeadc1150d3b84f0303e1d288311133.1721391876.git.milan.djokic@rt-rk.com>
 <728bb10e944a7ec28a67c2e9e62910632eb2366b.1721758832.git.milandjokic1995@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: <728bb10e944a7ec28a67c2e9e62910632eb2366b.1721758832.git.milandjokic1995@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 20:22, Milan Djokic wrote:
> From: Nikola Jelic <nikola.jelic@rt-rk.com>
> 
> Added PE/COFF generic image header which shall be used for EFI
> application format for x86/risc-v. x86 and risc-v source shall be adjusted
> to use this header in following commits. pe.h header is taken over from
> linux kernel with minor changes in terms of formatting and structure member comments.
> Also, COFF relocation and win cert structures are ommited, since these are not relevant for Xen.
> 
> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 36e4fc57fc16
> 
> Signed-off-by: Nikola Jelic <nikola.jelic@rt-rk.com>
> Signed-off-by: Milan Djokic <milan.djokic@rt-rk.com>

This looks okay to me now, but I can't ack it (or more precisely my ack
wouldn't mean anything). There are a few style issues in comments, but
leaving them as they are in Linux may be intentional. Just one question,
more to other maintainers than to you:

> +#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         0x0040
> +#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      0x0080
> +#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            0x0100
> +#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          0x0200
> +#define IMAGE_DLLCHARACTERISTICS_NO_SEH                0x0400
> +#define IMAGE_DLLCHARACTERISTICS_NO_BIND               0x0800
> +#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            0x2000
> +#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
> +
> +#define IMAGE_DLLCHARACTERISTICS_EX_CET_COMPAT         0x0001
> +#define IMAGE_DLLCHARACTERISTICS_EX_FORWARD_CFI_COMPAT 0x0040

The naming inconsistency (underscore or not after DLL) is somewhat
unhelpful. Do we maybe want to diverge from what Linux has here? Note
that e.g. the GNU binutils header has at least a comment there.

What I'm puzzled by is IMAGE_DLLCHARACTERISTICS_EX_FORWARD_CFI_COMPAT
having the same value as IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE. Are
these meant to apply to the same field? Or do these values rather
relate to IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS? Some clarification
may be needed here, or the two entries may simply want omitting for
now.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 11:52:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 11:52:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766651.1177150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOvk-0004Kh-SU; Mon, 29 Jul 2024 11:52:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766651.1177150; Mon, 29 Jul 2024 11: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 1sYOvk-0004Ka-PI; Mon, 29 Jul 2024 11:52:44 +0000
Received: by outflank-mailman (input) for mailman id 766651;
 Mon, 29 Jul 2024 11: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=pZrP=O5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYOvj-0004KU-73
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 11:52:43 +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 0f3589ba-4da1-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 13:52:41 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a7a81bd549eso303556466b.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 04:52:41 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab4de64sm496084966b.48.2024.07.29.04.52.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 04:52: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: 0f3589ba-4da1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722253960; x=1722858760; 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=WliYJg/qMJnVNx2VV1RDbTJKi70OXdKC7sFDOciaFUc=;
        b=bcT4IMsyJ/NMDwlxEIy0H0EVSkp+FuydB1aPEaF0dz24YHlHtg3V2mIAdHAsCJkkAo
         7FzFHqnBh5DDmIitndOk0pFGC2Ik3OJCp14sgTZFVCvX+DT97BOtv7gaDl1m4ikDZCBQ
         BzgHL6m1OTpWAAq60Qh3WiG4gbB+7XCeYL2XcaTu02ngF/XnzfnA1XKNIxfW5NMFVFIf
         Rnm8vpmW/HnH475HQtFaaKvRuXntti/3T9OJUuOyqA/fv1l/BxREQWOQCHTiLtP1m82D
         AvMYaT8q4bLv/7Dbe8rj+cDJF7iFhFUKVnpOPqcYCrl5XjikmroF6l6CsWJq3u8MaPR3
         C64g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722253960; x=1722858760;
        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=WliYJg/qMJnVNx2VV1RDbTJKi70OXdKC7sFDOciaFUc=;
        b=AlDRCuE4w9VYDDSUDsbYbgRPnQR3kholgWcjC0PnbZCpx2tN3UDSlxHilrytgeyIrS
         4DfLJevQrNs8WpoB4tvhxcLBSKIQtjMuQLyqY2UruEf9iYS3bZTD8A5zHDDJmtIxuJj5
         9XHm4nSqgdnzxk9+/vloLlSufqPzW2a6m9S0pMGt6oWzTfRzYeihl6uWZxmT+9IYSbxK
         63JJzcw1S77MR69N4IfeVw2A0J7BcX7zUIF7GWPNBa6KskUY0p8zcdb+c+/zma0WI90D
         wU61j9ERfraLiMP5io22a6P7njL5IqEo4RC0zQeaHwZb2KHvhf3C3ed6e/0r4vFovYU0
         mVMw==
X-Gm-Message-State: AOJu0Yyqd80T765ECf/COPTDgoLwiOg8c05aaqRH5BaMXq7SHelAgCbw
	Hk9bFgbheGtSdtdpPbeOmAH4uZodYuHS0aY5RT9FQI3spcliVDroMWAPRm7E
X-Google-Smtp-Source: AGHT+IF7Xzi7CKvJXw8CTe1e6L+yNP6AUOxP2Zdxd7q/+SgK2ymMYHrl0zg2j58YZfPXOPiEdJBUMQ==
X-Received: by 2002:a17:907:94c8:b0:a77:c6c4:2bb7 with SMTP id a640c23a62f3a-a7d3ffaddd0mr583474766b.1.1722253959995;
        Mon, 29 Jul 2024 04:52:39 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Community Manager <community.manager@xenproject.org>,
	"committers @ xenproject . org" <committers@xenproject.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] CHANGELOG.md: Finalize changes in 4.19 release cycle
Date: Mon, 29 Jul 2024 13:52:36 +0200
Message-ID: <32f773f72abbe114574980a8e99260ba96bd32e8.1722253791.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - update "Changed". Move "Code symbol annotations and MISRA compliance improvements" to generic
   part.
 - Sort "Added section". Per-arch changes go first.
 - Drop implementation related details for Arm and PPC in "Changed".
 - drop PPC and RISCV changes as nothing usable at the moment we have and only minor fixes
   and improvements were done.
---
Changes in V2:
 - Make CI items started with uppercase letters.
---
 CHANGELOG.md | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index f8fbe82df6..f143a924ef 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,11 +23,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    using a standalone library implementation.
  - xenalyze no longer requires `--svm-mode` when analyzing traces
    generated on AMD CPUs
+ - Code symbol annotations and MISRA compliance improvements.
+ - CI updates:
+   - Minimum fixes to rebuild the containers, following the HEREDOC problems.
+   - Rebuild containers to have testing with up-to-date LTS distros.
+   - Few build system checks, and strip the obsolete contents of
+     the build containers.
 
 ### Added
  - On x86:
    - Introduce a new x2APIC driver that uses Cluster Logical addressing mode
      for IPIs and Physical addressing mode for external interrupts.
+ - On Arm:
+   - FF-A notification support.
+   - Introduction of dynamic node programming using overlay dtbo.
  - Add a new 9pfs backend running as a daemon in dom0. First user is
    Xenstore-stubdom now being able to support full Xenstore trace capability.
  - libxl support for backendtype=tap with tapback.
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 11:54:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 11:54:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766658.1177161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOww-0004qw-5w; Mon, 29 Jul 2024 11:53:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766658.1177161; Mon, 29 Jul 2024 11:53:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOww-0004qp-1i; Mon, 29 Jul 2024 11:53:58 +0000
Received: by outflank-mailman (input) for mailman id 766658;
 Mon, 29 Jul 2024 11:53: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYOwv-0004qh-0e
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 11:53:57 +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 3b43cf2d-4da1-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 13:53:55 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a7a9a369055so379122566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 04:53: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-a7acadb8072sm495772466b.196.2024.07.29.04.53.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 04:53: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: 3b43cf2d-4da1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722254034; x=1722858834; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RHxB+KOsH2qUfsGR7EJ+h5H+zbkNMnGmnXV0Nli+o1U=;
        b=aZh5CqQya31GW7kE4jfTUsskhkS0z4he2nTJpnp8CBiycONQDSQ4JNqUBMxed92fWp
         nYHE0z9dT9nEb/Nyqtzx69cht76z4WuXH9ndWfLcOC0B6P0dOHRqgQdV1j7ZUu5Og7HK
         JMs8c68+PRy847OAl483P6YdcOaZMpFCb1l8AtgfMsu/uEWhi9rMMOrsjLkcPkJMKsNf
         K88jyGN77PWnVcqgxYpWnbDpuWIqZjFt8pjnsYLhfgJCVvjK77oDMrketjBicduVaNJx
         dpvDrrAswnj44j3txZEKnGmXfOtsM6w2xo4AaFMSGh9lcN50ZbFu6++W5H6u6QTra3q7
         aFHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722254034; x=1722858834;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RHxB+KOsH2qUfsGR7EJ+h5H+zbkNMnGmnXV0Nli+o1U=;
        b=h4GuHIKzzfd1oSebvn4NzurT+A+gsgRH7EnO7GCZVyYVurxNeN79Uh9M+9Tte9G/6h
         6eDe7UBQA00g/tIWwZEVPXo+CahgEcPPpocp8OprM+JRUzAZFAkAunQK73u46UZ3kOMG
         qV6cOSI4oZAJNPE19cUNcy4AX6iZ6nqJWdrmzfGX5yAGqbFIIZWAir1wjD+i3UoMlKyX
         OjjyYEDcOptvP4aBgTISjmBiN3ZDAkDzzTH/o8nAQzny3Q38jsQTVcyentKeDrNGgZrQ
         S03QFNO2spUutIDUzhOjq8GdEG7piC2r6ud0vbSar1ZjYRRqHQIdjA4p37Canj5ZU3LO
         ZZ5A==
X-Forwarded-Encrypted: i=1; AJvYcCVK+TpWVKmzrxqgyG5Hn+Nq5OgENkVprmhHzCA8Dk5we9v8XF0XUte+x124HkFA+EsbfSMTqaZN3jERccG/64GZC4FzcMwu0aHNvS5D0Vo=
X-Gm-Message-State: AOJu0Yy1Qzf8B7lgsfQ+bxYg54TAxhovHBDhVn03CXauG4i0w2m66tek
	G8tJBeo50G5jb0V6nwtN0sbPzJM5nMzfWR8hx3KsItyRNwhRF+EaGfNQ9b+vMQ==
X-Google-Smtp-Source: AGHT+IEawEg71ZZqW7v2vUSg/3DTj5bBabnh32gSriG5lG8qvYfRTPyVnja8be0EIb0PwDtDf/HIdQ==
X-Received: by 2002:a17:907:7f1f:b0:a77:db97:f4fd with SMTP id a640c23a62f3a-a7d400575dbmr423823766b.34.1722254034567;
        Mon, 29 Jul 2024 04:53:54 -0700 (PDT)
Message-ID: <b1918f51-1ac0-40f8-9174-d8161b2681dd@suse.com>
Date: Mon, 29 Jul 2024 13:53:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/22] x86/dom0: only disable SMAP for the PV dom0 build
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: alejandro.vallejo@cloud.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-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: <20240726152206.28411-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.07.2024 17:21, Roger Pau Monne wrote:
> The PVH dom0 builder doesn't switch page tables and has no need to run with
> SMAP disabled.
> 
> Put the SMAP disabling close to the code region where it's necessary, as it
> then becomes obvious why switch_cr3_cr4() is required instead of
> write_ptbase().
> 
> Note removing SMAP from cr4_pv32_mask is not required, as we never jump into
> guest context, and hence updating the value of cr4_pv32_mask is not relevant.

I'm okay-ish with that being dropped, but iirc the goal was to keep the
variable in sync with CPU state.

> 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 Jul 29 11:56:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 11:56:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766665.1177171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOz3-0005Ta-Kz; Mon, 29 Jul 2024 11:56:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766665.1177171; Mon, 29 Jul 2024 11:56:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOz3-0005TT-Gl; Mon, 29 Jul 2024 11:56:09 +0000
Received: by outflank-mailman (input) for mailman id 766665;
 Mon, 29 Jul 2024 11:56: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYOz2-0005TI-1C
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 11:56:08 +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 894d534f-4da1-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 13:56:06 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5a2ffc3447fso5026355a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 04:56: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
 4fb4d7f45d1cf-5ac6377d724sm5699471a12.40.2024.07.29.04.56.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 04:56: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: 894d534f-4da1-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722254165; x=1722858965; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V3aerfiNd+Qw4NIW8btZkv5t7sqtJzDuyM7luKLJjjg=;
        b=Br59XFfJcaPxTs9wozgz2IZOBbpxZ1QrSiqTLm7H4rB5gleyhfJiBsmPuLzjJK1hqd
         UN66Jnx4lBVOMoT9nJb8eDh9KLBr1w0GvR4+XfLdBgQD3ftbGIUEAJeDKbyiEgnwqwce
         BdZTeThk4szNlzDPfspJTDaVJW8XQsFi+wAeoKGV6nEblr903nuiFwedFjwAgVVUkd+p
         SOPb++rSpwHLWLGla3xrRHcykgbfnycqtrOCrkyIlQFnZFCrtppudOEecUHZT+trH7jN
         3hhewoPvWq2AwkFTQGHP9yx3uZehlSand4K84rWmA4yUQY/U1t3bBHrLFnKQmTJ2VGmn
         Fpvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722254165; x=1722858965;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V3aerfiNd+Qw4NIW8btZkv5t7sqtJzDuyM7luKLJjjg=;
        b=HyOocZtqdrIcG/dmmzDTUWz2q1rN4h+Uwa3vfDue5gXkAa5Lna3bLYz/B23VJecWOA
         V8lvuG3HknUDDUYOVcSdrzF0DTayLMH8v2cMGRxPB3AeGe4FM2H84GpeeRLU8gdTy/Xm
         CvqWC8A5GuYKfE6ceEPcCrMp7ZWjoDAwRqu/XHJc80ZSgSTsCeICX212rnWljwPa8PUX
         FguoPg1FTfGhTEDPaDmt0SdT3vSPSQfz3Fw81W0aApjzmLZITS7cx+BdwEJBpbTd65B8
         lmhc9lhh/XCKNvLQQcPwviz6P5GQsEMIlLTvq6EGjOrA9gib0SVDpy9sIfhYQ749bEFG
         Qpdw==
X-Forwarded-Encrypted: i=1; AJvYcCUbjYp5/e1nGUmAMnWt2eRjXNNIdTfvEMqzfB4k2kuJROWlPjjBp7YBhNAhDPA5s7+RgDpXLMLVFkyM6B1yCj8xLWi5bFT0JqPYm+VmnUo=
X-Gm-Message-State: AOJu0YwQmXjVIgFt6o88TjcQqF1fIOcFRTFIn30OlW2U3ziK7jtiyyFc
	GIcMGldXBWxAB4r5y1qrFdeJgDwCuFlzkct1zyXZDuxQD4YGeqeL+XT6CudK0g==
X-Google-Smtp-Source: AGHT+IFHr70a3SxG6yXhWoKb74BCy2O7m9AAWgS3a7y4VF1wLy96iB+PI8WUE1EZRjPtNOKCgNZVWA==
X-Received: by 2002:a05:6402:34cd:b0:5a2:8f7d:aff6 with SMTP id 4fb4d7f45d1cf-5b020ba571fmr5892575a12.17.1722254165428;
        Mon, 29 Jul 2024 04:56:05 -0700 (PDT)
Message-ID: <fd95fd5c-844c-4a4b-8242-98293f63faa4@suse.com>
Date: Mon, 29 Jul 2024 13:56:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CHANGELOG.md: Finalize changes in 4.19 release cycle
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers @ xenproject . org" <committers@xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <32f773f72abbe114574980a8e99260ba96bd32e8.1722253791.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: <32f773f72abbe114574980a8e99260ba96bd32e8.1722253791.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 13:52, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
(for whatever that's worth)



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 11:57:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 11:57:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766673.1177180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOzv-0006cg-Uy; Mon, 29 Jul 2024 11:57:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766673.1177180; Mon, 29 Jul 2024 11:57:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYOzv-0006cZ-Qv; Mon, 29 Jul 2024 11:57:03 +0000
Received: by outflank-mailman (input) for mailman id 766673;
 Mon, 29 Jul 2024 11:57: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=pZrP=O5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYOzv-0006cR-FI
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 11:57:03 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab017910-4da1-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 13:57:02 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5a167b9df7eso5624252a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 04:57:02 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acada29f2sm498746666b.162.2024.07.29.04.57.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 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: ab017910-4da1-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722254222; x=1722859022; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=qfOXd6cP3YykFyXTBB9swP+NqTvtV+wj3UofHyFvHK4=;
        b=fX072Cr58j5j2d1s58GtgSu8tCZG5P9ZNIC3yeHxM/I2GiiaifLIjUPed+If4vG+kl
         EMpSSIpdtWlSSAj8Pvk252Q4uiVB5+uD8WdAs4Hl+2wmXUzM/X/qRyB0vzBpexJcYD3U
         3qHDtbFLwU/b3AoAUKDs2WT8Uc8Ycow5kw0UThUEC5EmW1mZGS3MTxx6nl8YWvq0vMzx
         kpOxwB+Kb65mFBI/gkMO39qh9AlBiYDBZFfaWkNLU5TzcWeV6vRuZahIUsm6akP0xvjq
         YjY7xFvxTf3C81GW4Ifx2AVKRwpWxyjbqVfKXwZ88LqqPowwTQwQEJEiy9F6VHgl/7Z4
         98dA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722254222; x=1722859022;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=qfOXd6cP3YykFyXTBB9swP+NqTvtV+wj3UofHyFvHK4=;
        b=wBpXMJRTDUA33vA8J5XSoVxvt63IwB3ep5V8FT6IOREqFys3HDGSm4bC40XmaeNSMD
         p7rNGve5eQjoMMCYAnFvK9tvva1eh3lP7swprG+G7//Ozj/NrFLGmkgLryZQq93+Rws9
         QPknLJkTjRgXSnUHcYXKYmkCGBixZEqKnIcMW6l40UG26TJ9nVMTaBAPcQzslRyxHZOZ
         Wm7b+JbH1L3fd2lrZinLyJy+2/4HPvqOguYHztYGKqz1zdEUY3X/eeH+L94GQhbSUkUK
         496UUNz9w7uNHI2MrcTH3WrYhT+FG99+oMfgz4DsgXoC68hzgKumCPiRL2EtZ7F2D1sM
         MTWQ==
X-Forwarded-Encrypted: i=1; AJvYcCXXgql0bof6o5ZB+rqPbgKsRn5cnL+KHEOGDfhtGznC9IvRQ/Yl53MYwQ5H6L5IwiNhds3C1mLoE2JiRAET41rIiFRzKO/dFEZH1QY4LtI=
X-Gm-Message-State: AOJu0YzO2CWyjHoE1hEea60kC9/C/l2fVeDENx3OgzlB1n0t5nTJztr7
	hsOHxlu5RrJH3RVz3hiCy0vtZ0qJCbj37vHQQqNAfgWqRkaKLxvh
X-Google-Smtp-Source: AGHT+IE76GUviERtMc1eKLGkxYTEHwxR9SVwaA/ldZNz7OAcy8+SuR/SIP81TckiAsyFP4jFoj+06Q==
X-Received: by 2002:a17:907:1c19:b0:a77:cf9d:f49b with SMTP id a640c23a62f3a-a7d4016584fmr536299466b.54.1722254221922;
        Mon, 29 Jul 2024 04:57:01 -0700 (PDT)
Message-ID: <c2972009af443751195ce6406c33cd6f682d8bc9.camel@gmail.com>
Subject: Re: [PATCH] CHANGELOG.md: Finalize changes in 4.19 release cycle
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall
 <julien@xen.org>,  Stefano Stabellini <sstabellini@kernel.org>, Community
 Manager <community.manager@xenproject.org>, "committers @ xenproject . org"
 <committers@xenproject.org>, Roger Pau =?ISO-8859-1?Q?Monn=E9?=
 <roger.pau@citrix.com>,  xen-devel@lists.xenproject.org
Date: Mon, 29 Jul 2024 13:57:00 +0200
In-Reply-To: <fd95fd5c-844c-4a4b-8242-98293f63faa4@suse.com>
References: 
	<32f773f72abbe114574980a8e99260ba96bd32e8.1722253791.git.oleksii.kurochko@gmail.com>
	 <fd95fd5c-844c-4a4b-8242-98293f63faa4@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-29 at 13:56 +0200, Jan Beulich wrote:
> On 29.07.2024 13:52, Oleksii Kurochko wrote:
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> Acked-by: Jan Beulich <jbeulich@suse.com>
> (for whatever that's worth)
>=20
Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 12:00:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 12:00:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766680.1177190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYP31-0008BX-MJ; Mon, 29 Jul 2024 12:00:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766680.1177190; Mon, 29 Jul 2024 12: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 1sYP31-0008BQ-Iu; Mon, 29 Jul 2024 12:00:15 +0000
Received: by outflank-mailman (input) for mailman id 766680;
 Mon, 29 Jul 2024 12:00: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=QfTU=O5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYP30-0008AI-K3
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 12:00:14 +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 1b945fd1-4da2-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 14:00:11 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4281c164408so8233245e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 05:00:11 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4281c79ea02sm41849815e9.46.2024.07.29.05.00.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 05: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: 1b945fd1-4da2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722254411; x=1722859211; 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=vc8De1Wn97aOPhSXX0N+rg6wDyHwYKOiv8MIWGdQTgs=;
        b=KuLZ6ARmOf9/gfa5RQWApQt8HBX/KvCoUe6aCKSA/vXURKd6UD62dHqU4IWxC2xU4X
         BultCCEGTwFibRbTa033vUzLNvx6EnrhGDW372Iq1mM+Z16KDuJIMJjgTluE/APuOuon
         zbR7Wotl+ejvmutzD22iYgVa+DlX1JwV8iQGI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722254411; x=1722859211;
        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=vc8De1Wn97aOPhSXX0N+rg6wDyHwYKOiv8MIWGdQTgs=;
        b=t/StmDWganuVGMydlnhCGQZwtnhNbRfCVSi7a7Fvagecdg7Fpeobxej1IoDTqvKRk8
         et0YyxsST982TOLm0Whl5Fbu6ChydXxV6ib4Xcbv1p8EwIu8RONcDY14wqRjgTNelXEd
         vama3yK3Qz2YfDHQ3slSNJC4ra40ZbTsNSgetZk4qXtrwFqGnumYitHvjqKf1yRmmfwa
         3uBca3CWyr/jkbKOFNu8idaATj/5YGujWwk7U+duQnVpNvZAL0QGJnG+QHmJGIaBEIrq
         MsKSG1baVbrMxGIwPuBxe6td2Iwaz3ESflx2v1W8h7jucNrv4Z7VTB3bH/hO0LNPClnY
         7hBQ==
X-Forwarded-Encrypted: i=1; AJvYcCUr0fSd3a+8YBm7RxEHmY9/zCq93XmaYxlenu0cIFbF3hsVOEZYljGtiE2HCnIocMNpQRo5RCDGnbpUve+c6jG+x0prMs8lhLX3m8rPZzs=
X-Gm-Message-State: AOJu0YzkmMIwEAeDfg+5YGs0O21ar9QM0h3adSASx3XYLD4/4t2d8gC0
	fL4q3G0wGDCqJX1hQiozHTm3ikQYYOg9Aq5nQ0ojszTr6qcW6K5WXujNGoi4zBg=
X-Google-Smtp-Source: AGHT+IFV4i3/uAS5g+Kj1HE69JyXc6oqhrrqByBehsi06Lt0X1+KfdlM0teFg00B0OLwB1m9c41NDw==
X-Received: by 2002:a05:600c:3541:b0:428:f41:d467 with SMTP id 5b1f17b1804b1-42811d96e7emr49300455e9.10.1722254410486;
        Mon, 29 Jul 2024 05:00:10 -0700 (PDT)
Date: Mon, 29 Jul 2024 14:00:08 +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>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] x86/altcall: further refine clang workaround
Message-ID: <ZqeESDfcw85yJv2e@macbook>
References: <20240729103050.38401-1-roger.pau@citrix.com>
 <5f31e485-f103-4fe8-bcd5-7e5d1312e449@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <5f31e485-f103-4fe8-bcd5-7e5d1312e449@suse.com>

On Mon, Jul 29, 2024 at 12:47:09PM +0200, Jan Beulich wrote:
> On 29.07.2024 12:30, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/include/asm/alternative.h
> > +++ b/xen/arch/x86/include/asm/alternative.h
> > @@ -183,13 +183,13 @@ extern void alternative_branches(void);
> >   * https://github.com/llvm/llvm-project/issues/12579
> >   * https://github.com/llvm/llvm-project/issues/82598
> >   */
> > -#define ALT_CALL_ARG(arg, n)                                            \
> > -    register union {                                                    \
> > -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> > -        unsigned long r;                                                \
> > -    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
> > -        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> > -    }
> > +#define ALT_CALL_ARG(arg, n)                                             \
> > +     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
> > +         unsigned long tmp = 0;                                          \
> > +         *(typeof(arg) *)&tmp = (arg);                                   \
> > +         BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                     \
> 
> With this, even more so than before, I think the type of tmp would better
> be void * (or the BUILD_BUG_ON() be made use unsigned long, yet I consider
> that less desirable).

Won't using void * be uglier, as we then need to cast the last tmp
statement to unsigned long?

> As a nit, I also don't think the backslashes need
> moving out by one position. Finally I'm afraid you're leaving stale the
> comment ahead of this construct.

Yes, thanks for noticing.  Will attempt to adjust the comment.

Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 12:41:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 12:41:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766698.1177199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYPgt-0006xJ-Gk; Mon, 29 Jul 2024 12:41:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766698.1177199; Mon, 29 Jul 2024 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 1sYPgt-0006xC-E6; Mon, 29 Jul 2024 12:41:27 +0000
Received: by outflank-mailman (input) for mailman id 766698;
 Mon, 29 Jul 2024 12:41: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYPgs-0006x0-CG
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 12:41:26 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd54d4f2-4da7-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 14:41:24 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a7aabb71bb2so484587466b.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 05:41: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
 a640c23a62f3a-a7acab5948asm503539366b.85.2024.07.29.05.41.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 05:41: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: dd54d4f2-4da7-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722256883; x=1722861683; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YULLr0Wx5v8GFltj2CE1Q7/zDfepEGYe/jLhxXlbRk0=;
        b=ZxQ0UVLoHZ6etuTFtT8gZ55ejOZ2+X1uYTinTEGoB7MUpDLRc3fF4DA7YSHUqEpLMe
         KcgUBvW90eclqtNVw0nXwGIQdOigSVRkhwqB35ko6dOntHxi85ee6WcjBCs/st1s1zL6
         i3XCPNjqRrS7yw1bkKCdOyE/DPlt9X8ugDRo11quChn1zB9TqzSFqOYJBLXtLUn31H+q
         9MctIxoCsJhbTxLOtZPbBtjOM+iNoVgW1O7hG8778jrYCNI6zqIOUcSTFLzZnMI//uMO
         F7WNq6ziQXrnX35sXq8g4UK3LoBRMQlCiUsAfAchj6ee/45cypoOVZ69yXimGB2j879B
         /NHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722256883; x=1722861683;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YULLr0Wx5v8GFltj2CE1Q7/zDfepEGYe/jLhxXlbRk0=;
        b=pCh9ZAP0xgLdMXPEQVZpxP1fQwSx34Y5vms8QNl+mnpouTxDkMsim4sA2ycDetpoGE
         iKk02n8RSN8igu1VcaiL127tVFg43GSmhiBpwFbNCo1VPh6dGrivF/vm2oCLgS+ONKqt
         YHMnaB9OKoMMsNLMBjIE6x1yt3SLiORAnZtj9hfaRrp5Uhg5i8NkX828gQFDV5bwTFXn
         nrDCQg9KPeQM8C/jm1WubOYFOek87zX7BdMjm3AkpqY/ayScHHLeEhGO5uyfwkxY4q9n
         2dfZDdqc9jkON68SbArLC4lcjStrI2czTIIOQQh+F3jCRaX0lIHnvFS+3ZybAys5CJyl
         NknQ==
X-Forwarded-Encrypted: i=1; AJvYcCV9DxHY2KA+t3YjqeE3S8s4+h9/2LLOHnRhJYZ4IpdI1uqpGE3mLza8avmFGJUcHnTLiFSSxv8+QJi+zm71QWWSUzNOu8TSuz5L8CQLNTA=
X-Gm-Message-State: AOJu0YxXLKc9VTMgWxaee/BSay3VH2v5WEoGhE7xC3n366L1lHg/Mk0N
	W5W9bTprNG6Vz5BBdI9VhdCYYxcDXClQsDfgVdC5Urs5PZq4N7StpA2VEUjqew==
X-Google-Smtp-Source: AGHT+IEcPhsa6XM2+okNKfxoIckjK2EEZ+pzr+/bgLL+wlel1TLfKSIihgG7UiaFwyTd7wC2SqaiwA==
X-Received: by 2002:a17:906:c10f:b0:a7a:a33e:47cc with SMTP id a640c23a62f3a-a7d40185a3emr544752366b.59.1722256883536;
        Mon, 29 Jul 2024 05:41:23 -0700 (PDT)
Message-ID: <2a6efb82-bde4-490b-9c72-413009e756bd@suse.com>
Date: Mon, 29 Jul 2024 14:41:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/altcall: further refine clang workaround
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org
References: <20240729103050.38401-1-roger.pau@citrix.com>
 <5f31e485-f103-4fe8-bcd5-7e5d1312e449@suse.com> <ZqeESDfcw85yJv2e@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZqeESDfcw85yJv2e@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.07.2024 14:00, Roger Pau Monné wrote:
> On Mon, Jul 29, 2024 at 12:47:09PM +0200, Jan Beulich wrote:
>> On 29.07.2024 12:30, Roger Pau Monne wrote:
>>> --- a/xen/arch/x86/include/asm/alternative.h
>>> +++ b/xen/arch/x86/include/asm/alternative.h
>>> @@ -183,13 +183,13 @@ extern void alternative_branches(void);
>>>   * https://github.com/llvm/llvm-project/issues/12579
>>>   * https://github.com/llvm/llvm-project/issues/82598
>>>   */
>>> -#define ALT_CALL_ARG(arg, n)                                            \
>>> -    register union {                                                    \
>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
>>> -        unsigned long r;                                                \
>>> -    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
>>> -        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
>>> -    }
>>> +#define ALT_CALL_ARG(arg, n)                                             \
>>> +     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
>>> +         unsigned long tmp = 0;                                          \
>>> +         *(typeof(arg) *)&tmp = (arg);                                   \
>>> +         BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                     \
>>
>> With this, even more so than before, I think the type of tmp would better
>> be void * (or the BUILD_BUG_ON() be made use unsigned long, yet I consider
>> that less desirable).
> 
> Won't using void * be uglier, as we then need to cast the last tmp
> statement to unsigned long?

Only if we stick to using unsigned long for a ## n ## _. Afaics there's
nothing wrong with making that void *, too.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 12:48:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 12:48:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766706.1177210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYPnL-00082A-6L; Mon, 29 Jul 2024 12:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766706.1177210; Mon, 29 Jul 2024 12:48: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 1sYPnL-000823-2o; Mon, 29 Jul 2024 12:48:07 +0000
Received: by outflank-mailman (input) for mailman id 766706;
 Mon, 29 Jul 2024 12: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=QfTU=O5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYPnJ-00081t-GE
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 12:48:05 +0000
Received: from mail-oo1-xc29.google.com (mail-oo1-xc29.google.com
 [2607:f8b0:4864:20::c29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cb15602c-4da8-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 14:48:03 +0200 (CEST)
Received: by mail-oo1-xc29.google.com with SMTP id
 006d021491bc7-5d5cbad01c5so1737245eaf.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 05:48:03 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d7445a75sm519752785a.110.2024.07.29.05.48.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 05:48: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: cb15602c-4da8-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722257282; x=1722862082; 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=2wY/Q2VXNQ5jHRqEuqMqd//zjVUD+j62ZPd7anCoeos=;
        b=CsUy+/Ck+Lq9xp99f6nudkD+Y2WTd/grtqJuAUjbeAYYsoWQbxxoWnzHdxDXXwczba
         wJ3ikn0ZNeCCbYAZcKCmatE+blcqSf+YCa9uzzhqH1f4PuI1/4jphwmQWtPXy0yoGjsd
         9M4ar34dRCF6voIGUw4DoZFjSdB1ujhxJHpC8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722257282; x=1722862082;
        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=2wY/Q2VXNQ5jHRqEuqMqd//zjVUD+j62ZPd7anCoeos=;
        b=UcB/F2jSxPcEnlOLJwmdK9SLqF/tCzXK44YVoLKvC5brY4reXCdPfj+XPSIieRjkfj
         crL82DGuXYapD3LckCDlfEk6qj/YO9Rlh1PkXCg3guFQmr0Owh21cmuBt2qPy1gvspHt
         tHIwiMkh71E5IfmvjZrwosLMCX/RvFqgQTxGq5nj0O41wOoMSXbN4y+f+PQr3pVMDi31
         fb6EYNfDiuGdVVGbzDXApYiX0ttIn8Jg1kWrz4tg9v1BbViO7kHvBa4giW6XWnj+2eh0
         R1+xTjFLXMKewysuL+V20l1mEYa3W60PLE7jr9t0X6dhYO9joaKHdFwRpBnuR5b1QKXP
         9Gtg==
X-Forwarded-Encrypted: i=1; AJvYcCXlRe92SPGD+iWBxJf3efPRdf2QYfETyqdksc6OXfAS7PRfl8XXuMFiGN1tQsNBa/4rHNNu2tvhprSUasX1VpyBkAfXaxWl7Fg3AXWXBN0=
X-Gm-Message-State: AOJu0Yx3f45O38uRt++fF5iDgLUocBPSAi77DiBXy1qWkqD698Jz3/Xs
	SEHvCj92OTWD+5hRfVj6UHpMpsD0/yKsEk34j7WQNYJYtzBZlKcky4tOjIq4bWk=
X-Google-Smtp-Source: AGHT+IFx0KLoJyYpaptlfPexjSSzv9eSCv1tOb6xuezXnAMXCdd4ZnYVAyX1cOZijFelJvQ8YHr4EQ==
X-Received: by 2002:a05:6358:720e:b0:1ad:282:ab1f with SMTP id e5c5f4694b2df-1adc06602d1mr1045147555d.7.1722257282109;
        Mon, 29 Jul 2024 05:48:02 -0700 (PDT)
Date: Mon, 29 Jul 2024 14:47:59 +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>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] x86/altcall: further refine clang workaround
Message-ID: <ZqePfxLIrTjqdxWp@macbook>
References: <20240729103050.38401-1-roger.pau@citrix.com>
 <5f31e485-f103-4fe8-bcd5-7e5d1312e449@suse.com>
 <ZqeESDfcw85yJv2e@macbook>
 <2a6efb82-bde4-490b-9c72-413009e756bd@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2a6efb82-bde4-490b-9c72-413009e756bd@suse.com>

On Mon, Jul 29, 2024 at 02:41:23PM +0200, Jan Beulich wrote:
> On 29.07.2024 14:00, Roger Pau Monné wrote:
> > On Mon, Jul 29, 2024 at 12:47:09PM +0200, Jan Beulich wrote:
> >> On 29.07.2024 12:30, Roger Pau Monne wrote:
> >>> --- a/xen/arch/x86/include/asm/alternative.h
> >>> +++ b/xen/arch/x86/include/asm/alternative.h
> >>> @@ -183,13 +183,13 @@ extern void alternative_branches(void);
> >>>   * https://github.com/llvm/llvm-project/issues/12579
> >>>   * https://github.com/llvm/llvm-project/issues/82598
> >>>   */
> >>> -#define ALT_CALL_ARG(arg, n)                                            \
> >>> -    register union {                                                    \
> >>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> >>> -        unsigned long r;                                                \
> >>> -    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
> >>> -        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> >>> -    }
> >>> +#define ALT_CALL_ARG(arg, n)                                             \
> >>> +     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
> >>> +         unsigned long tmp = 0;                                          \
> >>> +         *(typeof(arg) *)&tmp = (arg);                                   \
> >>> +         BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                     \
> >>
> >> With this, even more so than before, I think the type of tmp would better
> >> be void * (or the BUILD_BUG_ON() be made use unsigned long, yet I consider
> >> that less desirable).
> > 
> > Won't using void * be uglier, as we then need to cast the last tmp
> > statement to unsigned long?
> 
> Only if we stick to using unsigned long for a ## n ## _. Afaics there's
> nothing wrong with making that void *, too.

Right, but then for consistency I would also like to make r{10,11}_
void *, and ALT_CALL_NO_ARG(), which might be too much.

My preference is likely to keep it at unsigned long, and adjust the
BUILD_BUG_ON(), unless you have a strong opinion to change it to void
* (and possibly the rest of the register variables).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 12:54:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 12:54:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766715.1177219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYPsy-000151-Oc; Mon, 29 Jul 2024 12:53:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766715.1177219; Mon, 29 Jul 2024 12: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 1sYPsy-00014u-M2; Mon, 29 Jul 2024 12:53:56 +0000
Received: by outflank-mailman (input) for mailman id 766715;
 Mon, 29 Jul 2024 12:53: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=QfTU=O5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYPsw-00014o-MP
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 12:53:54 +0000
Received: from mail-qk1-x732.google.com (mail-qk1-x732.google.com
 [2607:f8b0:4864:20::732])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b5c2cd0-4da9-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 14:53:53 +0200 (CEST)
Received: by mail-qk1-x732.google.com with SMTP id
 af79cd13be357-79ef72bb8c8so129547185a.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 05:53:52 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1e4292ae6sm347878285a.74.2024.07.29.05.53.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 05:53: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: 9b5c2cd0-4da9-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722257631; x=1722862431; 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=ObDcHphduOFVb9T8BaQz9ibo8RiD6nspOnXXFzzwsQw=;
        b=sfBm5SpCOSR7YVeWkZ8z2gwxiENzQyYxQNN5fvXa/mgiaVUgdcsRh6N6zL8YLMlfIi
         KQ+NrYzUA9iq0nJUqSYSEUi+7pHTXQST8jWv+fC9hIOM7qdL9duaq3f7v0JU4+OC/qQA
         Wjr1DzJFUjVq6b5lj864BvjpOhgo/NsLpy6U4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722257631; x=1722862431;
        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=ObDcHphduOFVb9T8BaQz9ibo8RiD6nspOnXXFzzwsQw=;
        b=gTEwIcjKAPdWAkhE8KyKNBn13SyWNCWdMJui1wSVnoZV8MFJposzrpsRJlsxEYNSxU
         hRffhwouEc1OAxlurs4QRhhuziOuZokI/UK53jgj2Jkm8XBuMuri5hI5cBNWe2Wo9s6d
         hrK9lGOmhQmckuZ0xymrK6vMIBfnJ9/+gC8Z0ZBCQQj+a41MYVECpaeN/hCGAwLjghhP
         Ukh/7kfyFawVG4Xf1d49roLV2TnK+Q65nnYsIqd+LKCUKbHhLV4R3N/e04OQGLvfrOQj
         0zJYq/MsqK+cESt14AxBj2eCZdlqLG6EExUiTo/RcF0wYPzmXWbl5ejRsRi78sj6DYI4
         uWrw==
X-Forwarded-Encrypted: i=1; AJvYcCVgmc1kAYU5VBna8SwkiBuONKZkDZx0BQohVkhzFjzGa2EImW5xjIZ3VheFq4jRE9KV/d7+aAQr+Tv0drGRGtJZTRr5iE+1Ot6Ex/nTofs=
X-Gm-Message-State: AOJu0YxGKg70g/ceOJ4xT8fpW5VCLcul8SUONoGTlmuA57uOMF9/RNd9
	kdBuYNnt1Wp3ke43/noI5DtZFgkuNq8FuXMmZyOwKXhYzjsDQM0xQXFbzP1/R10=
X-Google-Smtp-Source: AGHT+IH8kunUhb9TKWqwzdDgmVUF5lcfRFtAebuKGxjAcavbW7OB2/XQsjRM3qUVb2JQSLl3mGwEgA==
X-Received: by 2002:a05:620a:4711:b0:79c:9431:f71a with SMTP id af79cd13be357-7a1e522f672mr1023123285a.11.1722257631382;
        Mon, 29 Jul 2024 05:53:51 -0700 (PDT)
Date: Mon, 29 Jul 2024 14:53:48 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: alejandro.vallejo@cloud.com, Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 01/22] x86/mm: drop l{1,2,3,4}e_write_atomic()
Message-ID: <ZqeQ3KKyBe9sJ8Qf@macbook>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-2-roger.pau@citrix.com>
 <c46c1d62-c9d3-4549-8006-9e846fbc9d3d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c46c1d62-c9d3-4549-8006-9e846fbc9d3d@suse.com>

On Mon, Jul 29, 2024 at 09:52:50AM +0200, Jan Beulich wrote:
> On 26.07.2024 17:21, Roger Pau Monne wrote:
> > The l{1,2,3,4}e_write_atomic() and non _atomic suffixed helpers share the same
> > implementation, so it seems pointless and possibly confusing to have both.
> > 
> > Remove the l{1,2,3,4}e_write_atomic() helpers and switch it's user to
> > l{1,2,3,4}e_write(), as that's also atomic.  While there also remove
> > pte_write{,_atomic}() and just use write_atomic() in the wrappers.
> > 
> > No functional change intended.
> > 
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> In the description, can we perhaps mention the historical aspect of why
> these were there (and separate)? Happy to add a sentence when committing,
> as long as you agree.

Sure:

"x86 32bit mode used to have a non-atomic PTE write that would split
the write in two halves, but with Xen only supporting x86 64bit
that's no longer present."

Would be fine?  Possibly added after the first paragraph IMO.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 13:00:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 13:00:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766722.1177229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYPzR-0003CE-DN; Mon, 29 Jul 2024 13:00:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766722.1177229; Mon, 29 Jul 2024 13:00: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 1sYPzR-0003C7-Ag; Mon, 29 Jul 2024 13:00:37 +0000
Received: by outflank-mailman (input) for mailman id 766722;
 Mon, 29 Jul 2024 13:00: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYPzQ-0003C1-Le
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 13:00:36 +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 8ba7852e-4daa-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 15:00:35 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a7d2a9a23d9so339205966b.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 06:00: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
 a640c23a62f3a-a7acab52932sm501059566b.77.2024.07.29.06.00.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 06:00: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: 8ba7852e-4daa-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722258035; x=1722862835; 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=0M9z771BB643RbT6KD1Kab4CxpYlJRLqSLh2eCZUKik=;
        b=aJHqHrhPbcG1bn3hVZCUpXCt13EunADy79HfOZXANS6WIt43Qnd8SknQGZQ5C8anuk
         06FzatcwkiChOVPZgZnXfdVP9NujiUu/ygM4Ji332phmswcOgRu0PL2FdXdNXBhptP6d
         IAAXhy+XyLT7/jsNeqe1rvkL56CNcCwDICMfBYqOyeg4/0hkbIgDko/yX/R6jOknJI6h
         nfUzstrb8IvrcOFTsuppBEX5aYYxp8Ms6ag7bxii4A442ZA0Z/6On20Yqrl0n4xY2bnK
         6ySG67pdsFGcU936xVLy3w1p9c7gOZSOzWFuBzI4SMG78aYXoQ8eo/R9Fqn/x/ppsKsS
         KOIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722258035; x=1722862835;
        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=0M9z771BB643RbT6KD1Kab4CxpYlJRLqSLh2eCZUKik=;
        b=Fnf7cULEatPlIKKtoVbMVRm3B6PWp5qyLLOrvKyIdESXfnaW2zLUuu0MnXo1mGZyVx
         3M1oVHdLRomfoxI48adihA4HuI3FD3dFh0Ax80H2fwYtzVlHBXj40AQzSKdS6xmnnMdI
         ViM18a8KMw3yf+Z2Jbtl0fNa3btqseutBDIAyrW/5rWYWmAe7+Ec7r6g/IbpsFzzNXYC
         GIpZEM9Yi8BraVXTuiO7ehhG3OjrznwxtxXKac48eRi2Fj+DSzxdaY+Ejilhk2cDQV0G
         hZkoLetuHo/dt55Kj//ocnc2p90XmmRP9mKIDDRzQMsqa5uc4B6RCijC1FPvgjnlQuiS
         9xpg==
X-Gm-Message-State: AOJu0YyS1fbEn3DdT499o18ZngOMe6GP6mc0bJD6nSA/6gsqnXLR7SMb
	YEdmOLDMOiYiPmuRRTi1JxwgNIkxeeWt9WobUheIeyy6033CZVgpYyKNSgeci/e2kwyYKv/Uc9k
	=
X-Google-Smtp-Source: AGHT+IFrfiPOfLPg4wHhDA2KK0TMTQikMg+Fwm7reAz4QMe3SH3FWJ8ifiFFwUMHtTE6teqE/Ydz7A==
X-Received: by 2002:a17:907:ea2:b0:a77:dd1c:6274 with SMTP id a640c23a62f3a-a7d401e13c5mr480017566b.69.1722258034998;
        Mon, 29 Jul 2024 06:00:34 -0700 (PDT)
Message-ID: <7c03ed78-7c80-45bf-acf3-a916b7abb7d5@suse.com>
Date: Mon, 29 Jul 2024 15:00:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 4/5] xen/riscv: enable GENERIC_BUG_FRAME
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <cover.1721731887.git.oleksii.kurochko@gmail.com>
 <b79bcfb9031564fc8d275af66fa94c1e82e54de2.1721731887.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
Cc: xen-devel@lists.xenproject.org
In-Reply-To: <b79bcfb9031564fc8d275af66fa94c1e82e54de2.1721731887.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 17:31, Oleksii Kurochko wrote:
> To have working BUG(), WARN(), ASSERT, run_in_exception_handler()
> it is needed to enable GENERIC_BUG_FRAME.
> 
> ebreak is used as BUG_insn so when macros from <xen/bug.h> are
> used, an exception with BREAKPOINT cause will be generated.
> 
> ebreak triggers a debug trap, which starts in debug mode and is
> then filtered by every mode. A debugger will first handle the
> debug trap and check if ebreak was set by it or not. If not,
> CAUSE_BREAKPOINT will be generated for the mode where the ebreak
> instruction was executed.

Here and in the similar code comment you talk about an external
debugger, requiring debug mode, which is an optional feature. In
my earlier comments what I was referring to was pure software
debugging. I continue to fail to see how properly distinguishing
ebreak uses for breakpoints from ebreak uses for e.g. BUG() and
WARN() is going to be feasible.

> @@ -103,7 +104,39 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
>  
>  void do_trap(struct cpu_user_regs *cpu_regs)
>  {
> -    do_unexpected_trap(cpu_regs);
> +    register_t pc = cpu_regs->sepc;
> +    unsigned long cause = csr_read(CSR_SCAUSE);
> +
> +    switch ( cause )
> +    {
> +    /*
> +     * ebreak is used as BUG_insn so when macros from <xen/bug.h> are
> +     * used, an exception with BREAKPOINT cause will be generated.
> +     *
> +     * ebreak triggers a debug trap, which starts in debug mode and is
> +     * then filtered by every mode. A debugger will first handle the
> +     * debug trap and check if ebreak was set by it or not. If not,
> +     * CAUSE_BREAKPOINT will be generated for the mode where the ebreak
> +     * instruction was executed.
> +     */
> +    case CAUSE_BREAKPOINT:
> +        if ( do_bug_frame(cpu_regs, pc) >= 0 )
> +        {
> +            if ( !(is_kernel_text(pc) || is_kernel_inittext(pc)) )
> +            {
> +                printk("Something wrong with PC: %#lx\n", pc);
> +                die();
> +            }
> +
> +            cpu_regs->sepc += GET_INSN_LENGTH(*(uint16_t *)pc);
> +        }
> +
> +        break;

Wouldn't you better fall through here, with the "break" moved into
the if()'s body?

Jan

> +    default:
> +        do_unexpected_trap(cpu_regs);
> +        break;
> +    }
>  }




From xen-devel-bounces@lists.xenproject.org Mon Jul 29 13:03:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 13:03:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766730.1177239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYQ1x-0003p9-SU; Mon, 29 Jul 2024 13:03:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766730.1177239; Mon, 29 Jul 2024 13: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 1sYQ1x-0003p0-Pg; Mon, 29 Jul 2024 13:03:13 +0000
Received: by outflank-mailman (input) for mailman id 766730;
 Mon, 29 Jul 2024 13:03: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYQ1w-0003ot-CQ
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 13:03:12 +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 e7e80b09-4daa-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 15:03:10 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a7a83a968ddso480808666b.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 06:03: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-a7acab4ddb4sm504897466b.69.2024.07.29.06.03.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 06:03: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: e7e80b09-4daa-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722258190; x=1722862990; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=O0uAjUn6r9NlxZ/Oo/ODqWkDwrD9xKvGqeEaBBccDAo=;
        b=HJWwUw5HPgorar0diaVqPF7buqPOhY+rjDFSN+nIdICP3RQd3lkK1lGiezrbpkBAXW
         JcyQD5QHkwdKwfk+eKxYYzzPbNY7dlH9Fqe/UEgFhPMGJ63TksP0AW+rfdtm7AzicfVH
         N+L7Nd5CBZHT0Fp712i3npbdRnwGYHyFvw1GMLhWXXSczAOAtbJIsR/HLicdwCExxi1g
         b3IYUwUuMnOD04vNeWhnjLY3D4suw5CZJJzaECkTL/m6S4skIz7Z7IYuQ+arAmdmY8gj
         NG42QaM4UG5ETasU3l7OYGF1A/HbKyW8/Wo5OBnSUjk8FsHfF6XQCsps1e+rvaT800S4
         UlXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722258190; x=1722862990;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O0uAjUn6r9NlxZ/Oo/ODqWkDwrD9xKvGqeEaBBccDAo=;
        b=RVVF3LG7FQuP+Z1/3UWrA9TXSgED7+eEix8d78efxWxdxDwJh+NZxszKjw2jQFR/IY
         iXIoRpU45xqtxfH8JBhkzqXt0H9o84NzMleQR864xQJWOyxBlc7QTirDeD2FHEMBCo2e
         YjCL0TQ1uwGeNgEXrb+3wSCKd0BgKto7KmHp+r4GmtrgxOLGRZ8KrCgHzTW59EgNwyuq
         qY+MKhjSy8ELjR9SzWJpEMKYNysj0ImnCOxF266YoRkK4iICVkg6lF0Q68HYSqJJAs3V
         6PM65g7ffJlRLp+rw94oeuDiuBNd5Wrj2Gj9P4cLHdJK1GHWZtM2ysHdhjiaqA3IAMFS
         c+fw==
X-Forwarded-Encrypted: i=1; AJvYcCWfcOhO8c+FlqLRs8EU9i9zvGruoeCRvBm+qAtD7yEMF7DGU3ApuXM2V/NWr59rrQBoVAHpl+TntyrTXWPKBOA9Izqv6fmi0AAOcn0ixKs=
X-Gm-Message-State: AOJu0Yx2YiDwmAXikQ52lFy7c/2bV7WLSMHCy4igslMKJk6r35Oei3SY
	V9ZVowyPKrAthwjaWZccIsMQNm+zYCTtmbJcNMari33emjfp97GEky0RS0LP3GqfFU48mRaiAU8
	=
X-Google-Smtp-Source: AGHT+IF1fyx68ZGsTbFrYVz7vVi29GgFGBziNLkoF2DLEEkhPyoog0Z6c49ll1dsS4q8QoYa0ekgjg==
X-Received: by 2002:a17:907:3f26:b0:a7d:3cf6:48d1 with SMTP id a640c23a62f3a-a7d3fff4d58mr638355266b.32.1722258188210;
        Mon, 29 Jul 2024 06:03:08 -0700 (PDT)
Message-ID: <8928eb9d-2765-42ff-b885-00d4709b6b34@suse.com>
Date: Mon, 29 Jul 2024 15:03:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/altcall: further refine clang workaround
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org
References: <20240729103050.38401-1-roger.pau@citrix.com>
 <5f31e485-f103-4fe8-bcd5-7e5d1312e449@suse.com> <ZqeESDfcw85yJv2e@macbook>
 <2a6efb82-bde4-490b-9c72-413009e756bd@suse.com> <ZqePfxLIrTjqdxWp@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZqePfxLIrTjqdxWp@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.07.2024 14:47, Roger Pau Monné wrote:
> On Mon, Jul 29, 2024 at 02:41:23PM +0200, Jan Beulich wrote:
>> On 29.07.2024 14:00, Roger Pau Monné wrote:
>>> On Mon, Jul 29, 2024 at 12:47:09PM +0200, Jan Beulich wrote:
>>>> On 29.07.2024 12:30, Roger Pau Monne wrote:
>>>>> --- a/xen/arch/x86/include/asm/alternative.h
>>>>> +++ b/xen/arch/x86/include/asm/alternative.h
>>>>> @@ -183,13 +183,13 @@ extern void alternative_branches(void);
>>>>>   * https://github.com/llvm/llvm-project/issues/12579
>>>>>   * https://github.com/llvm/llvm-project/issues/82598
>>>>>   */
>>>>> -#define ALT_CALL_ARG(arg, n)                                            \
>>>>> -    register union {                                                    \
>>>>> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
>>>>> -        unsigned long r;                                                \
>>>>> -    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
>>>>> -        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
>>>>> -    }
>>>>> +#define ALT_CALL_ARG(arg, n)                                             \
>>>>> +     register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
>>>>> +         unsigned long tmp = 0;                                          \
>>>>> +         *(typeof(arg) *)&tmp = (arg);                                   \
>>>>> +         BUILD_BUG_ON(sizeof(arg) > sizeof(void *));                     \
>>>>
>>>> With this, even more so than before, I think the type of tmp would better
>>>> be void * (or the BUILD_BUG_ON() be made use unsigned long, yet I consider
>>>> that less desirable).
>>>
>>> Won't using void * be uglier, as we then need to cast the last tmp
>>> statement to unsigned long?
>>
>> Only if we stick to using unsigned long for a ## n ## _. Afaics there's
>> nothing wrong with making that void *, too.
> 
> Right, but then for consistency I would also like to make r{10,11}_
> void *, and ALT_CALL_NO_ARG(), which might be too much.
> 
> My preference is likely to keep it at unsigned long, and adjust the
> BUILD_BUG_ON(), unless you have a strong opinion to change it to void
> * (and possibly the rest of the register variables).

That's okay if you prefer it that way; I said "less desirable" and I really
don't mean any more than that.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 13:35:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 13:35:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766739.1177250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYQXD-0000XA-9O; Mon, 29 Jul 2024 13:35:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766739.1177250; Mon, 29 Jul 2024 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 1sYQXD-0000X3-64; Mon, 29 Jul 2024 13:35:31 +0000
Received: by outflank-mailman (input) for mailman id 766739;
 Mon, 29 Jul 2024 13:35: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYQXB-0000Wx-Pv
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 13:35:29 +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 6af8f524-4daf-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 15:35:28 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a77ec5d3b0dso419087166b.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 06:35: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-a7acadb9dd3sm510878966b.220.2024.07.29.06.35.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 06:35: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: 6af8f524-4daf-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722260128; x=1722864928; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=N6Sd4G8NrzabDO45pXVJTxJ7sKajI1yRniQmC8+rgZo=;
        b=FkXV+OtNytdGG5EQ7E7FxogUaQ47coTqRQNGc7Qm9q9l730B1+FvHV77lQPNOnBuTz
         21/h6R5RjZ4tPhWU8cLgbKq4gR5Jy1vcIbq05NNu91YBpyZqE139I8ZeFyN85lntDbZ6
         cwZagNPYNT4vdAsIqReKRHvp+k6PeQ/yDeswqRWMdFx7LkylAdlCd//3FBlN06SEkZQ4
         ezUU+i4ZjGrsXmDDrZi0/AbkIEjlmcgRxZu8sFTIb69zOrNFRbzAsuj507f5JiH0Q60J
         la1w2Q2IYFxbF+1mz+hIQBBNbMCwBsRQIwza8bW/1B0LiRHIWSWDBTbfpocBcgnxMkGz
         12Ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722260128; x=1722864928;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N6Sd4G8NrzabDO45pXVJTxJ7sKajI1yRniQmC8+rgZo=;
        b=LfFR03a31Iim+m8SBz85IGFV0wsBJByv8s2XG2w47ag26UmH10uPdUiPh4Dlf0XEfC
         ymkZf1YbRK0q14DJo3/iAq6Rkg+vcMr7+7Rg/ezCoL1ZWxQxibIY+Y3xgkCqSPvkmyhI
         jXxd7DHd/v5is9z4NZ5LH+z5EmvtOMcHyU4wjI49Q3UxklCKaFMtH+xEcFgbrKIHPJCb
         TTOFw4yGaw1iHMWwWkNN4BnrqqJlmJT6T4bVndHTlb9P5ZSUQ4aDJT48QWXFzhVdsB5+
         NDWe3mYatDI7Wx0K3pTuf3mHk0R7cL3XptPKvgS6uw5rLp96s7KhDUgTOOqaJRt45eGC
         8OuQ==
X-Forwarded-Encrypted: i=1; AJvYcCWNEko9ftnKreWsRKJVHnPUeL0jMNJ9fZgxEcLAgWPW3o9mtffmj67W+mH4hxtE5CC7aKK4FT3A9k5Bn5JJvyNjJNFpP5yGGcUapyUpgJc=
X-Gm-Message-State: AOJu0YyobXWnt23PRztrFvyEJ6ArCXOMy9Ol9JnrmX4Htt8gk+QDJfkZ
	lIeN/nlRksJ3wA2KMZ55rMFuIlXXCG3jNUtDc7RE/DzChBJAHVtp9YzMHun1Ug==
X-Google-Smtp-Source: AGHT+IG8svJHUhBdS89lWMAOwOlcIZ+CFchCL0VhVe3K48NPicC8TBeowD/dB3Erd47TgQikggN+Dw==
X-Received: by 2002:a17:907:2da3:b0:a7a:8378:625e with SMTP id a640c23a62f3a-a7d4000978fmr644371266b.26.1722260127515;
        Mon, 29 Jul 2024 06:35:27 -0700 (PDT)
Message-ID: <917cc521-c0c4-49e8-bc40-948679398bc6@suse.com>
Date: Mon, 29 Jul 2024 15:35:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/9] xen/riscv: setup fixmap mapping
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <04576976b82b97442f645b83b3d62475d144af8e.1721834549.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: <04576976b82b97442f645b83b3d62475d144af8e.1721834549.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 17:31, Oleksii Kurochko wrote:
> Introduce a function to set up fixmap mappings and L0 page
> table for fixmap.
> 
> Additionally, defines were introduced in riscv/config.h to
> calculate the FIXMAP_BASE address.
> This involved introducing BOOT_FDT_VIRT_{START, SIZE} and
> XEN_VIRT_SIZE, XEN_VIRT_END.
> 
> Also, the check of Xen size was updated in the riscv/lds.S
> script to use XEN_VIRT_SIZE instead of a hardcoded constant.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Yet set_fixmap() isn't introduced here, so effectively it's all dead
code. This could do with mentioning, as I at least would expect
set_fixmap() to be usable once fixmaps are properly set up.

> --- a/xen/arch/riscv/include/asm/config.h
> +++ b/xen/arch/riscv/include/asm/config.h
> @@ -66,6 +66,14 @@
>  #define SLOTN_ENTRY_BITS        (HYP_PT_ROOT_LEVEL * VPN_BITS + PAGE_SHIFT)
>  #define SLOTN(slot)             (_AT(vaddr_t, slot) << SLOTN_ENTRY_BITS)
>  
> +#define XEN_VIRT_SIZE           MB(2)
> +
> +#define BOOT_FDT_VIRT_START     (XEN_VIRT_START + XEN_VIRT_SIZE)
> +#define BOOT_FDT_VIRT_SIZE      MB(4)
> +
> +#define FIXMAP_BASE             (BOOT_FDT_VIRT_START + BOOT_FDT_VIRT_SIZE)
> +#define FIXMAP_ADDR(n)          (FIXMAP_BASE + (n) * PAGE_SIZE)
> +
>  #if RV_STAGE1_MODE == SATP_MODE_SV39
>  #define XEN_VIRT_START 0xFFFFFFFFC0000000
>  #elif RV_STAGE1_MODE == SATP_MODE_SV48

Related to my earlier comment: Is there a particular reason that what
you add cannot live _below_ the XEN_VIRT_START definitions, so things
actually appear in order?

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/fixmap.h
> @@ -0,0 +1,44 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * fixmap.h: compile-time virtual memory allocation
> + */
> +#ifndef ASM_FIXMAP_H
> +#define ASM_FIXMAP_H
> +
> +#include <xen/bug.h>
> +#include <xen/page-size.h>
> +#include <xen/pmap.h>
> +
> +#include <asm/page.h>
> +
> +/* Fixmap slots */
> +#define FIX_PMAP_BEGIN (0) /* Start of PMAP */
> +#define FIX_PMAP_END (FIX_PMAP_BEGIN + NUM_FIX_PMAP - 1) /* End of PMAP */
> +#define FIX_MISC (FIX_PMAP_END + 1)  /* Ephemeral mappings of hardware */
> +
> +#define FIX_LAST FIX_MISC
> +
> +#define FIXADDR_START FIXMAP_ADDR(0)
> +#define FIXADDR_TOP FIXMAP_ADDR(FIX_LAST)

This doesn't look right, even if it matches what Arm has. Following
what we have for x86, the page at FIXADDR_TOP should be a guard page,
i.e. not have any mapping ever put there. Whereas you put FIX_MISC's
mapping there. This then results in ...

> +#ifndef __ASSEMBLY__
> +
> +/*
> + * Direct access to xen_fixmap[] should only happen when {set,
> + * clear}_fixmap() is unusable (e.g. where we would end up to
> + * recursively call the helpers).
> + */
> +extern pte_t xen_fixmap[];
> +
> +#define fix_to_virt(slot) ((void *)FIXMAP_ADDR(slot))
> +
> +static inline unsigned int virt_to_fix(vaddr_t vaddr)
> +{
> +    BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START);

... this being wrong, i.e. triggering for FIX_MISC. Again, same issue
on Arm afaics, just that it would trigger for FIX_PMAP_END there. (Cc-ing
the other two Arm maintainers for that.)

> @@ -81,6 +82,14 @@ static inline void flush_page_to_ram(unsigned long mfn, bool sync_icache)
>      BUG_ON("unimplemented");
>  }
>  
> +/* Write a pagetable entry. */
> +static inline void write_pte(pte_t *p, pte_t pte)
> +{
> +    RISCV_FENCE(rw, rw);
> +    *p = pte;
> +    RISCV_FENCE(rw, rw);
> +}

Why the first of the two fences? And isn't having the 2nd here going
to badly affect batch updates of page tables?

> @@ -191,6 +195,49 @@ static bool __init check_pgtbl_mode_support(struct mmu_desc *mmu_desc,
>      return is_mode_supported;
>  }
>  
> +void __init setup_fixmap_mappings(void)
> +{
> +    pte_t *pte, tmp;
> +    unsigned int i;
> +
> +    BUILD_BUG_ON(FIX_LAST >= PAGETABLE_ENTRIES);
> +
> +    pte = &stage1_pgtbl_root[pt_index(HYP_PT_ROOT_LEVEL, FIXMAP_ADDR(0))];
> +
> +    /*
> +     * In RISC-V page table levels are enumerated from Lx to L0 where

Nit: s/enumerated/numbered/ ?

> +     * x is the highest page table level for currect  MMU mode ( for example,
> +     * for Sv39 has 3 page tables so the x = 2 (L2 -> L1 -> L0) ).
> +     *
> +     * In this cycle we want to find L1 page table because as L0 page table
> +     * xen_fixmap[] will be used.
> +     *
> +     * i is defined ( HYP_PT_ROOT_LEVEL - 1 ) becuase pte for L2 ( in
> +     * case of Sv39 ) has been recieved above.
> +     */
> +    for ( i = HYP_PT_ROOT_LEVEL - 1; i != 0; i-- )

I think the subtracting of 1 is unhelpful here. Think of another  case where
you want to walk down to L0. How would you express that with a similar for()
construct. It would imo be more natural to use

    for ( i = HYP_PT_ROOT_LEVEL; i > 1; i-- )

here (and then in that hypothetical other case

    for ( i = HYP_PT_ROOT_LEVEL; i > 0; i-- )

), and then the last part of the comment likely wouldn't be needed either.
However, considering ...

> +    {
> +        BUG_ON(!pte_is_valid(*pte));
> +
> +        pte = (pte_t *)LOAD_TO_LINK(pte_to_paddr(*pte));
> +        pte = &pte[pt_index(i, FIXMAP_ADDR(0))];

... the use of i here, it may instead want to be

    for ( i = HYP_PT_ROOT_LEVEL; i-- > 1; )

> +    }
> +
> +    BUG_ON(pte_is_valid(*pte));
> +
> +    tmp = paddr_to_pte(LINK_TO_LOAD((unsigned long)&xen_fixmap), PTE_TABLE);

I'm a little puzzled by the use of LINK_TO_LOAD() (and LOAD_TO_LINK() a
little further up) here. Don't you have functioning __pa() and __va()?

> +    write_pte(pte, tmp);
> +
> +    sfence_vma();
> +
> +    printk("(XEN) fixmap is mapped\n");

Why the (XEN) prefix? And perhaps why the printk() in the first place?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 13:36:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 13:36:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766747.1177260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYQYO-00016z-Jl; Mon, 29 Jul 2024 13:36:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766747.1177260; Mon, 29 Jul 2024 13:36:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYQYO-00016s-GT; Mon, 29 Jul 2024 13:36:44 +0000
Received: by outflank-mailman (input) for mailman id 766747;
 Mon, 29 Jul 2024 13:36: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=vj3p=O5=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1sYQYN-00010W-B4
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 13:36:43 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9753d7ac-4daf-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 15:36:42 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a7a83a968ddso486124466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 06:36:42 -0700 (PDT)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad414e2sm507142066b.127.2024.07.29.06.36.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 06:36: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: 9753d7ac-4daf-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722260202; x=1722865002; 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=k1+lg4XxXA+d1m2Iy9FsWuEcd8B0hbx48+4qCXe7DqI=;
        b=Tkffr0ueT4F++GoSqe1WawnG9aTp9u2EwUwlZELGvPqySfGmUKqHw+o/jXum+4m707
         akH/wMpgtiSaQgOWUiB9orInmXKkp3c955s+KLfKFUOOycSt95ev4V5DQz9eMUXIVbaM
         64uaFhmCB8B+ZzzHrtR3q8+fZvU2dbIR8+Ws4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722260202; x=1722865002;
        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=k1+lg4XxXA+d1m2Iy9FsWuEcd8B0hbx48+4qCXe7DqI=;
        b=aiASg4aWWA+eCmDt40E1RtAX/jkccwgw6IW/6fXrZQbAOHco1V0mokLGLo3SEm9L1v
         HqDOYSP8ACEe+QarZQW8NSVWJN+4wT/geivErswok8QZlFPizk8WLacNZf7fUas5lHL9
         lJ+jTiduncU0q6k6yJ6Hdo+DzEwcC/N6UwtTS+R6/KhXg1UOopS481qAf1kULQTTipp6
         V4n/5oOvrInPOo+MJls+YUumvga2oYAYdaGkBwcbYI9McmUMtlSh9NudJSp9WCVhDByn
         kUnK16Z2+cH0TrPyA0Ois0tC/CsiTl/AeZL8J9wy8oHworL7EonzkzkOFRx7dQjQP8vi
         SEEg==
X-Forwarded-Encrypted: i=1; AJvYcCUh1+JTN0ADrMqaN2V4GU0S9GwoG1icDZmEWFBHq9R5wk/4meT5cLoIhezwAdlEoou+eW0u3gAdSnAkDBVOu7emmtUggNT8/2lfutIArQk=
X-Gm-Message-State: AOJu0Yy1GFSLQA26Ine4HipK5DolRqaxlfklOiusC3K/+zBx97j4Agkd
	aX+JG45bRJpASjLz/k7DAXSR6LeLaqyeLYK3OLUX1+SU4dFVKwhTLrQrkAs9G/k=
X-Google-Smtp-Source: AGHT+IEejAvAVpK9VD0REaEmJ+H2+YF04iDCqwOD7YSOP7mn0me8Tv7Uik2n7eCP8u7wwlOFg8+t7g==
X-Received: by 2002:a17:907:60d0:b0:a79:7e8b:34be with SMTP id a640c23a62f3a-a7d3ff557b5mr440850166b.4.1722260201894;
        Mon, 29 Jul 2024 06:36:41 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 29 Jul 2024 14:36:39 +0100
Message-Id: <D322ACW6M240.2G3UQGXHR0XU0@cloud.com>
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, "Tim Deegan" <tim@xen.org>
Subject: Re: [PATCH 08/22] x86/mm: avoid passing a domain parameter to L4
 init function
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Roger Pau Monne" <roger.pau@citrix.com>,
 <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.17.0
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-9-roger.pau@citrix.com>
In-Reply-To: <20240726152206.28411-9-roger.pau@citrix.com>

On Fri Jul 26, 2024 at 4:21 PM BST, Roger Pau Monne wrote:
> In preparation for the function being called from contexts where no domai=
n is
> present.
>
> No functional change intended.
>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
>  xen/arch/x86/include/asm/mm.h  |  4 +++-
>  xen/arch/x86/mm.c              | 24 +++++++++++++-----------
>  xen/arch/x86/mm/hap/hap.c      |  3 ++-
>  xen/arch/x86/mm/shadow/hvm.c   |  3 ++-
>  xen/arch/x86/mm/shadow/multi.c |  7 +++++--
>  xen/arch/x86/pv/dom0_build.c   |  3 ++-
>  xen/arch/x86/pv/domain.c       |  3 ++-
>  7 files changed, 29 insertions(+), 18 deletions(-)
>
> diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.=
h
> index b3853ae734fa..076e7009dc99 100644
> --- a/xen/arch/x86/include/asm/mm.h
> +++ b/xen/arch/x86/include/asm/mm.h
> @@ -375,7 +375,9 @@ int devalidate_page(struct page_info *page, unsigned =
long type,
> =20
>  void init_xen_pae_l2_slots(l2_pgentry_t *l2t, const struct domain *d);
>  void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l4mfn,
> -                       const struct domain *d, mfn_t sl4mfn, bool ro_mpt=
);
> +                       mfn_t sl4mfn, const struct page_info *perdomain_l=
3,
> +                       bool ro_mpt, bool maybe_compat, bool short_direct=
map);
> +

The comment currently in the .c file should probably be here instead, and
updated for the new arguments. That said, I'm skeptical 3 booleans is somet=
hing
desirable. It induces a lot of complexity at the call sites (which of the 8
forms of init_xen_l4_slots() do I need here?) and a lot of cognitive overlo=
ad.

I can't propose a solution because I'm still wrapping my head around how th=
e
layout (esp. compat layout) fits together. Maybe the booleans can be mapped=
 to
an enum? It would also help interpret the callsites as it'd no longer be a
sequence of contextless booleans, but a readable identifier.

>  bool fill_ro_mpt(mfn_t mfn);
>  void zap_ro_mpt(mfn_t mfn);
> =20
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index a792a300a866..c01b6712143e 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -1645,14 +1645,9 @@ static int promote_l3_table(struct page_info *page=
)
>   * extended directmap.
>   */
>  void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l4mfn,
> -                       const struct domain *d, mfn_t sl4mfn, bool ro_mpt=
)
> +                       mfn_t sl4mfn, const struct page_info *perdomain_l=
3,
> +                       bool ro_mpt, bool maybe_compat, bool short_direct=
map)
>  {
> -    /*
> -     * PV vcpus need a shortened directmap.  HVM and Idle vcpus get the =
full
> -     * directmap.
> -     */
> -    bool short_directmap =3D !paging_mode_external(d);
> -
>      /* Slot 256: RO M2P (if applicable). */
>      l4t[l4_table_offset(RO_MPT_VIRT_START)] =3D
>          ro_mpt ? idle_pg_table[l4_table_offset(RO_MPT_VIRT_START)]
> @@ -1673,13 +1668,14 @@ void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l=
4mfn,
>          l4e_from_mfn(sl4mfn, __PAGE_HYPERVISOR_RW);
> =20
>      /* Slot 260: Per-domain mappings. */
> -    l4t[l4_table_offset(PERDOMAIN_VIRT_START)] =3D
> -        l4e_from_page(d->arch.perdomain_l3_pg, __PAGE_HYPERVISOR_RW);
> +    if ( perdomain_l3 )
> +        l4t[l4_table_offset(PERDOMAIN_VIRT_START)] =3D
> +            l4e_from_page(perdomain_l3, __PAGE_HYPERVISOR_RW);
> =20
>      /* Slot 4: Per-domain mappings mirror. */
>      BUILD_BUG_ON(IS_ENABLED(CONFIG_PV32) &&
>                   !l4_table_offset(PERDOMAIN_ALT_VIRT_START));
> -    if ( !is_pv_64bit_domain(d) )
> +    if ( perdomain_l3 && maybe_compat )
>          l4t[l4_table_offset(PERDOMAIN_ALT_VIRT_START)] =3D
>              l4t[l4_table_offset(PERDOMAIN_VIRT_START)];
> =20
> @@ -1710,6 +1706,10 @@ void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l4=
mfn,
>      else
>  #endif
>      {
> +        /*
> +         * PV vcpus need a shortened directmap.  HVM and Idle vcpus get =
the full
> +         * directmap.
> +         */
>          unsigned int slots =3D (short_directmap
>                                ? ROOT_PAGETABLE_PV_XEN_SLOTS
>                                : ROOT_PAGETABLE_XEN_SLOTS);
> @@ -1830,7 +1830,9 @@ static int promote_l4_table(struct page_info *page)
>      if ( !rc )
>      {
>          init_xen_l4_slots(pl4e, l4mfn,
> -                          d, INVALID_MFN, VM_ASSIST(d, m2p_strict));
> +                          INVALID_MFN, d->arch.perdomain_l3_pg,
> +                          VM_ASSIST(d, m2p_strict), !is_pv_64bit_domain(=
d),
> +                          true);
>          atomic_inc(&d->arch.pv.nr_l4_pages);
>      }
>      unmap_domain_page(pl4e);
> diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
> index d2011fde2462..c8514ca0e917 100644
> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -402,7 +402,8 @@ static mfn_t hap_make_monitor_table(struct vcpu *v)
>      m4mfn =3D page_to_mfn(pg);
>      l4e =3D map_domain_page(m4mfn);
> =20
> -    init_xen_l4_slots(l4e, m4mfn, d, INVALID_MFN, false);
> +    init_xen_l4_slots(l4e, m4mfn, INVALID_MFN, d->arch.perdomain_l3_pg,
> +                      false, true, false);

Out of ignorance: why is the compat area mapped on HVM monitor PTs? I thoug=
ht
those were used exclusively in hypervisor context, and would hence always h=
ave
the 512 slots available.

>      unmap_domain_page(l4e);
> =20
>      return m4mfn;
> diff --git a/xen/arch/x86/mm/shadow/hvm.c b/xen/arch/x86/mm/shadow/hvm.c
> index c16f3b3adf32..93922a71e511 100644
> --- a/xen/arch/x86/mm/shadow/hvm.c
> +++ b/xen/arch/x86/mm/shadow/hvm.c
> @@ -758,7 +758,8 @@ mfn_t sh_make_monitor_table(const struct vcpu *v, uns=
igned int shadow_levels)
>       * shadow-linear mapping will either be inserted below when creating
>       * lower level monitor tables, or later in sh_update_cr3().
>       */
> -    init_xen_l4_slots(l4e, m4mfn, d, INVALID_MFN, false);
> +    init_xen_l4_slots(l4e, m4mfn, INVALID_MFN, d->arch.perdomain_l3_pg,
> +                      false, true, false);
> =20
>      if ( shadow_levels < 4 )
>      {
> diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/mult=
i.c
> index 376f6823cd44..0def0c073ca8 100644
> --- a/xen/arch/x86/mm/shadow/multi.c
> +++ b/xen/arch/x86/mm/shadow/multi.c
> @@ -973,8 +973,11 @@ sh_make_shadow(struct vcpu *v, mfn_t gmfn, u32 shado=
w_type)
> =20
>              BUILD_BUG_ON(sizeof(l4_pgentry_t) !=3D sizeof(shadow_l4e_t))=
;
> =20
> -            init_xen_l4_slots(l4t, gmfn, d, smfn, (!is_pv_32bit_domain(d=
) &&
> -                                                   VM_ASSIST(d, m2p_stri=
ct)));
> +            init_xen_l4_slots(l4t, gmfn, smfn,
> +                              d->arch.perdomain_l3_pg,
> +                              (!is_pv_32bit_domain(d) &&
> +                               VM_ASSIST(d, m2p_strict)),
> +                              !is_pv_64bit_domain(d), true);
>              unmap_domain_page(l4t);
>          }
>          break;
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index 41772dbe80bf..6a6689f402bb 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -711,7 +711,8 @@ int __init dom0_construct_pv(struct domain *d,
>          l4start =3D l4tab =3D __va(mpt_alloc); mpt_alloc +=3D PAGE_SIZE;
>          clear_page(l4tab);
>          init_xen_l4_slots(l4tab, _mfn(virt_to_mfn(l4start)),
> -                          d, INVALID_MFN, true);
> +                          INVALID_MFN, d->arch.perdomain_l3_pg,
> +                          true, !is_pv_64bit_domain(d), true);
>          v->arch.guest_table =3D pagetable_from_paddr(__pa(l4start));
>      }
>      else
> diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
> index 86b74fb372d5..6ff71f14a2f2 100644
> --- a/xen/arch/x86/pv/domain.c
> +++ b/xen/arch/x86/pv/domain.c
> @@ -124,7 +124,8 @@ static int setup_compat_l4(struct vcpu *v)
>      mfn =3D page_to_mfn(pg);
>      l4tab =3D map_domain_page(mfn);
>      clear_page(l4tab);
> -    init_xen_l4_slots(l4tab, mfn, v->domain, INVALID_MFN, false);
> +    init_xen_l4_slots(l4tab, mfn, INVALID_MFN, v->domain->arch.perdomain=
_l3_pg,
> +                      false, true, true);
>      unmap_domain_page(l4tab);
> =20
>      /* This page needs to look like a pagetable so that it can be shadow=
ed */



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 13:44:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 13:44:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766757.1177270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYQfP-00035A-Ew; Mon, 29 Jul 2024 13:43:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766757.1177270; Mon, 29 Jul 2024 13:43:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYQfP-000353-C2; Mon, 29 Jul 2024 13:43:59 +0000
Received: by outflank-mailman (input) for mailman id 766757;
 Mon, 29 Jul 2024 13:43: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYQfO-00034x-HA
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 13:43:58 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9aa3973d-4db0-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 15:43:57 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-52efd530a4eso5440882e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 06:43: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-5ac63b59ccdsm5826898a12.46.2024.07.29.06.43.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 06:43: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: 9aa3973d-4db0-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722260637; x=1722865437; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MRkVAhArxp3DUVJI2/AIDH/bZvTfg80MLUjQUouVPpM=;
        b=XTjS287LxoLDkbJW3TOS8umdFAgSVrBjIr7W1hqsHzttpSLu77xCx5zmqtlsQAj/sv
         Pjm+1v7Bm7RAWaKwvhFEu+VDq1IB4rsSt6QD4G5z+TNZ1auI5rkfKGDoiJfMQS1ckTO8
         WRkknFHfY7lcsprUqV8oF0ZiSAEFBm/eqFEpuIrKuCQOYxdCj1MwCMt0E00XuNPf1GaX
         NgOlsOBW+q5/iSp2AWnFe7tSUTwlk4ZU58fCOhIZ+k7EhvUNgjDAwrtE2A/us+Saqufh
         etqofAvAcB3AZQ3SFB6qPBO4ruDN4Iagk9ZZjG5VwZjJL3MyilT/IXroYnulZA0yxfx9
         B/oQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722260637; x=1722865437;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MRkVAhArxp3DUVJI2/AIDH/bZvTfg80MLUjQUouVPpM=;
        b=il5elzn51QAZAu8wixvLSQHtwzcoiamVq/QtNh8vkuN4oaPD8qaVMJdGJpB+MxfK1x
         +Q6MjsBgZm0Qgr53Oi5Q0HL4L5DN+OZSL7BVNMPOobORXKaX/hjEIEi2jr1iycBJcWMp
         d306ojuPBwBjKJoBD2G0JiAM1t2pwN8eus9qstQdNOqF5newDe9PImtftvgXvVGWPGWm
         7k6KHMy9vnDO4Pc9/AbIHcK5RAbFBNwxAXQtgtaDECPszXhbs5zY9twYR6fZD+gy1XIE
         3HeYJpA/k41vwVL9clPb5N88p1+O/I5hYkxKByeirgbunvLXunCG9E4P5Xx00HyWVjeP
         h3ZQ==
X-Forwarded-Encrypted: i=1; AJvYcCULZGIrJKOmz+yUAIU+W5w5BdKu0rtnXW+GgENIjvSBIgN6AKVMrCc0iP3N1klYAGPKorg6NDCOFMjRC7j6mSZ8qmtgZkzaavKPZtpxBz0=
X-Gm-Message-State: AOJu0YyMb5Js/+9gBhmiYBAyF5F5BNSP/hwtyS8gBdsVnzMVL3voCkNB
	e+IpzmtlFBnlfszzQLVY2keS+HXvf4mh0I8QBl/rErXaPaG/Gb1QFh8qtovLnw==
X-Google-Smtp-Source: AGHT+IGM0R7s+Q/245c1mZHHjvO57VGqdAitknWRXy1VpHANHMGj2aHm9VDPXLm3X8HiI3QwWWOrSg==
X-Received: by 2002:ac2:5690:0:b0:52f:31:c2a3 with SMTP id 2adb3069b0e04-5309b2704d0mr6848030e87.12.1722260636914;
        Mon, 29 Jul 2024 06:43:56 -0700 (PDT)
Message-ID: <2b247ac2-b129-4732-a68a-5d6a20209db2@suse.com>
Date: Mon, 29 Jul 2024 15:43:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/22] x86/mm: avoid passing a domain parameter to L4 init
 function
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Tim Deegan <tim@xen.org>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-9-roger.pau@citrix.com>
 <D322ACW6M240.2G3UQGXHR0XU0@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <D322ACW6M240.2G3UQGXHR0XU0@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 15:36, Alejandro Vallejo wrote:
> On Fri Jul 26, 2024 at 4:21 PM BST, Roger Pau Monne wrote:
>> --- a/xen/arch/x86/mm/hap/hap.c
>> +++ b/xen/arch/x86/mm/hap/hap.c
>> @@ -402,7 +402,8 @@ static mfn_t hap_make_monitor_table(struct vcpu *v)
>>      m4mfn = page_to_mfn(pg);
>>      l4e = map_domain_page(m4mfn);
>>  
>> -    init_xen_l4_slots(l4e, m4mfn, d, INVALID_MFN, false);
>> +    init_xen_l4_slots(l4e, m4mfn, INVALID_MFN, d->arch.perdomain_l3_pg,
>> +                      false, true, false);
> 
> Out of ignorance: why is the compat area mapped on HVM monitor PTs? I thought
> those were used exclusively in hypervisor context, and would hence always have
> the 512 slots available.

"compat area" is perhaps a misleading term. If you look at the function itself,
it's PERDOMAIN_ALT_VIRT_START that is mapped in that case. Which underlies the
compat-arg-xlat area, which both 32-bit PV and all HVM guests need, the latter
as they can, at any time, switch to 32-bit mode.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 13:48:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 13:48:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766766.1177280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYQjn-0004BK-Vx; Mon, 29 Jul 2024 13:48:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766766.1177280; Mon, 29 Jul 2024 13: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 1sYQjn-0004BD-SN; Mon, 29 Jul 2024 13:48:31 +0000
Received: by outflank-mailman (input) for mailman id 766766;
 Mon, 29 Jul 2024 13:48:30 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYQjm-0004B3-LP; Mon, 29 Jul 2024 13:48:30 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYQjm-00074k-Bu; Mon, 29 Jul 2024 13:48:30 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYQjl-0007Ly-P8; Mon, 29 Jul 2024 13:48:29 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYQjl-0006Hs-Oe; Mon, 29 Jul 2024 13:48: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=7t7D+1kpuhyb+3ubu4cMZGci6dgxiPesFs1Qb2mTbD8=; b=MSZPsEO14rRjBJKEyyM5f0k4UB
	/sy58EFRpL0tw2lmLMybDaKS2bqENHHkBDbVN5C/RW+Qowe44Cka8B2q4uM+geIWW6kxz7QTKMDj7
	PEVfd6a07L51HlieUQjjv6lnSqh2PLFF1mMRPwqsYyNoWouhN64nvsHHGsJxS6ut7xBs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187039-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187039: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-vhd:guest-start/debian.repeat:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=dc1c8034e31b14a2e5e212104ec508aec44ce1b9
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Jul 2024 13:48:29 +0000

flight 187039 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187039/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
 test-amd64-amd64-xl-vhd     21 guest-start/debian.repeat fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                dc1c8034e31b14a2e5e212104ec508aec44ce1b9
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   12 days
Failing since        186925  2024-07-20 09:44:52 Z    9 days   22 attempts
Testing same since   187039  2024-07-29 05:22:18 Z    0 days    1 attempts

------------------------------------------------------------
1998 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      fail    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 222847 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 14:00:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 14:00:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766776.1177290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYQvj-00078L-2k; Mon, 29 Jul 2024 14:00:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766776.1177290; Mon, 29 Jul 2024 14:00: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 1sYQvi-00078E-WA; Mon, 29 Jul 2024 14:00:50 +0000
Received: by outflank-mailman (input) for mailman id 766776;
 Mon, 29 Jul 2024 14:00: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=7lGn=O5=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sYQvh-000788-Vj
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 14:00:50 +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 f5557428-4db2-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 16:00:48 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a7ab76558a9so676638466b.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 07:00:48 -0700 (PDT)
Received: from EMEAENGAAD91498. ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acadb8313sm511972166b.211.2024.07.29.07.00.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 07:00: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: f5557428-4db2-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722261648; x=1722866448; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:subject:cc
         :to:from:date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tPWdhGz+1Zr1Fi+/4UAxIQSk+5sixhT902OdGrxe3JQ=;
        b=hwMXkJTz+H+h4VfnG585ogU9y8wNFyeP8CRkBRPMOHdT4NttjOD1ZDpQdI4WDvCJBQ
         fgpi80arwtev2YXfp7pu8S5S+a0zi0xheml9YTbfLXFTH8HzL4bqkZD0geOoRr/M45UN
         zoCxQOf+ckgneeyRZOR5EQW9Ng0nZ23BgvqdU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722261648; x=1722866448;
        h=in-reply-to:content-disposition:mime-version:references:subject:cc
         :to:from:date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tPWdhGz+1Zr1Fi+/4UAxIQSk+5sixhT902OdGrxe3JQ=;
        b=Nv2T5kFkdXUWoBWPlDDcxDTtDh3VIOnuGVkyLMZ9pDVwh4Qmt7hCiTivbJJGnbxYLb
         e6VUyvmKzvZQWfCpema4tZpbeVz45+qruFIP763p8JrRhEDrmTIQ+DzLkP2LTA7PzCaC
         yH3oMtKJW1iux3+X6z0Uv5ZY79v3GWqv5aPm1RuD7x0Oeb6+i1tqF/VKVSR8dngMEpze
         ZMQAhMR7VyRxtoVh7aN95/TQXXnH2+NK13hZryyMUwMsDgps9igi5y8Fr9EQv2Zt9lz9
         oh+1f3jPfz4WkAOJWvvH0fNqO8bD4THyYB5I/fMEEfsOvlu7PsGjTw4tOcEMkeoeskeD
         UgcA==
X-Forwarded-Encrypted: i=1; AJvYcCU/G7azgmIkLr+SdrNnmi5NfwaaTyjT0wlefR+YmzYwPPAYz0XiO8y6jaWsSB6krGKFeUupegL1CErKbe0dmqJ3SHoVQvnlo2t9fl4GR4k=
X-Gm-Message-State: AOJu0YyKWU8AyRHOG+WRl+hD5XK/cQcH6EYLPrgFaFlLFIR7MycJD2xy
	AM41VrzJWRf4Kam4F4RQyD0+NhsRyafSmWPN5sDim5zZg3p4BdtgqUw6Mm7g0T8=
X-Google-Smtp-Source: AGHT+IHjmgjWZ4jn/s31/CsMLtw1MvZbXZBEXWi1v+6ALWREYaWLovE0bF55FCvbIjnkhB5blwYRxQ==
X-Received: by 2002:a17:906:c10d:b0:a77:c7d8:7b4c with SMTP id a640c23a62f3a-a7d3f86fd32mr766962466b.11.1722261647947;
        Mon, 29 Jul 2024 07:00:47 -0700 (PDT)
Message-ID: <66a7a08f.170a0220.ecc03.23f1@mx.google.com>
X-Google-Original-Message-ID: <20240729140042.d6yzd7v67tmnbpx3@EMEAENGAAD91498.>
Date: Mon, 29 Jul 2024 15:00:42 +0100
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH v4] tools/lsevtchn: Use errno macro to handle
 hypercall error cases
References: <cce46da98274f84a3cea16d0e1e34b56d4d09410.1722011581.git.matthew.barnes@cloud.com>
 <1491a5c3-bb30-4804-95d6-31946ee1588d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1491a5c3-bb30-4804-95d6-31946ee1588d@suse.com>

On Mon, Jul 29, 2024 at 09:58:46AM +0200, Jan Beulich wrote:
> On 26.07.2024 18:40, Matthew Barnes wrote:
> > @@ -24,7 +25,23 @@ int main(int argc, char **argv)
> >          status.port = port;
> >          rc = xc_evtchn_status(xch, &status);
> >          if ( rc < 0 )
> > -            break;
> > +        {
> > +            switch ( errno ) {
> > +                case EACCES: continue; /* Xen-owned evtchn */
> > +                case EINVAL: /* Port enumeration has ended */
> > +                    rc = 0;
> > +                    goto out;
> > +
> > +                case ESRCH:
> > +                    perror("Domain ID does not correspond to valid domain");
> > +                    rc = ESRCH;
> > +                    goto out;
> > +                default:
> > +                    perror(NULL);
> > +                    rc = errno;
> > +                    goto out;
> > +            }
> > +        }
> 
> There are a number of style violations here: Opening figure brace
> placement, indentation of the case labels, placement of the
> "continue", lack of blank lines between non-fall-through case blocks.
> Also why three "goto out" when one would do?

There's no particular reason why three "goto out"s were used.

I will tweak these style decisions in patch v5.

Matt


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 14:18:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 14:18:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766783.1177300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRCr-00013D-Gp; Mon, 29 Jul 2024 14:18:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766783.1177300; Mon, 29 Jul 2024 14: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 1sYRCr-000136-EG; Mon, 29 Jul 2024 14:18:33 +0000
Received: by outflank-mailman (input) for mailman id 766783;
 Mon, 29 Jul 2024 14: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=QfTU=O5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYRCp-000130-N5
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 14:18:31 +0000
Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com
 [2607:f8b0:4864:20::831])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d4a9f96-4db5-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 16:18:30 +0200 (CEST)
Received: by mail-qt1-x831.google.com with SMTP id
 d75a77b69052e-44fffca4fb7so13235761cf.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 07:18:30 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe8126979sm41098401cf.7.2024.07.29.07.18.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 07:18: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: 6d4a9f96-4db5-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722262708; x=1722867508; 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=5Xqj9Ad9phWii7KRfvFhqzLIAqDK3JVN1IPltAXWtgs=;
        b=AMbbF3B3CMIwZ7xe4untwYNXANpTimuQKeKoUP/px+L2yGQw5uDAlc5eD7s6HT6RyX
         iWeyHhzbKmbIWEKL2AHP/rg9IAbjHhPPSwVQrbqlCFAC39VlA6yw8nl1wZWk79DMlTC+
         7i0Jahd0A+cvUydmPesrtYvO19yakX0hrUPtM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722262708; x=1722867508;
        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=5Xqj9Ad9phWii7KRfvFhqzLIAqDK3JVN1IPltAXWtgs=;
        b=CZKq2LHf8EXzv7WE5ZpxvBrbH/vxq+Vc2rmew+3bXzEe0TrBDbRcjcNdG9JeIaKOrW
         KwQUSnjArBdAr+0n/rKhSoJXEMzmww07Ro5Q5MAyeYwWtx8pGjTVcj78GWYdPEqHpqDU
         46hTW9wHJL2me/eya7k9EAC1d2GP79sLkO38EzkcYnw4hcoNBaJtK4emnz0C5o0yJ4Ei
         AoQeEyo9l5Vamm6H0rIIVCGR8hzIN1EsXYixEnFB2sEdOODpV2fiGTq/+aDtIwZbTL7Y
         tD3gthWYkUvJmSnECbYJm40JbyQUHt/VpUT/+8LS9l5wQXEvRzrUnGOTjwWQkHG+uKrz
         QdAA==
X-Gm-Message-State: AOJu0Yw3VXGIjFFKWHejbc5wceSC9qAeUpaxnPNC7aheqGVpk9XYsgao
	M7M2Na+97nL+ggLEKKcuCdOAeb+6Se0aVKg564xUDCGBA8TfGYnkIWwI4+2y6oQ=
X-Google-Smtp-Source: AGHT+IHx1QidPx2xSjYhPOTjOHySF+w7yFZbvpEKCpJ5noFL/glf6a+CnE7rsPMD0FvppQyTQvcwAg==
X-Received: by 2002:a05:622a:13d1:b0:44f:f6f0:7d2b with SMTP id d75a77b69052e-45004f5e7abmr105236071cf.53.1722262708269;
        Mon, 29 Jul 2024 07:18:28 -0700 (PDT)
Date: Mon, 29 Jul 2024 16:18:26 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Tim Deegan <tim@xen.org>
Subject: Re: [PATCH 08/22] x86/mm: avoid passing a domain parameter to L4
 init function
Message-ID: <Zqeksmgq87ak7YID@macbook>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-9-roger.pau@citrix.com>
 <D322ACW6M240.2G3UQGXHR0XU0@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <D322ACW6M240.2G3UQGXHR0XU0@cloud.com>

On Mon, Jul 29, 2024 at 02:36:39PM +0100, Alejandro Vallejo wrote:
> On Fri Jul 26, 2024 at 4:21 PM BST, Roger Pau Monne wrote:
> > In preparation for the function being called from contexts where no domain is
> > present.
> >
> > No functional change intended.
> >
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> >  xen/arch/x86/include/asm/mm.h  |  4 +++-
> >  xen/arch/x86/mm.c              | 24 +++++++++++++-----------
> >  xen/arch/x86/mm/hap/hap.c      |  3 ++-
> >  xen/arch/x86/mm/shadow/hvm.c   |  3 ++-
> >  xen/arch/x86/mm/shadow/multi.c |  7 +++++--
> >  xen/arch/x86/pv/dom0_build.c   |  3 ++-
> >  xen/arch/x86/pv/domain.c       |  3 ++-
> >  7 files changed, 29 insertions(+), 18 deletions(-)
> >
> > diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
> > index b3853ae734fa..076e7009dc99 100644
> > --- a/xen/arch/x86/include/asm/mm.h
> > +++ b/xen/arch/x86/include/asm/mm.h
> > @@ -375,7 +375,9 @@ int devalidate_page(struct page_info *page, unsigned long type,
> >  
> >  void init_xen_pae_l2_slots(l2_pgentry_t *l2t, const struct domain *d);
> >  void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l4mfn,
> > -                       const struct domain *d, mfn_t sl4mfn, bool ro_mpt);
> > +                       mfn_t sl4mfn, const struct page_info *perdomain_l3,
> > +                       bool ro_mpt, bool maybe_compat, bool short_directmap);
> > +
> 
> The comment currently in the .c file should probably be here instead, and
> updated for the new arguments. That said, I'm skeptical 3 booleans is something
> desirable. It induces a lot of complexity at the call sites (which of the 8
> forms of init_xen_l4_slots() do I need here?) and a lot of cognitive overload.
> 
> I can't propose a solution because I'm still wrapping my head around how the
> layout (esp. compat layout) fits together. Maybe the booleans can be mapped to
> an enum? It would also help interpret the callsites as it'd no longer be a
> sequence of contextless booleans, but a readable identifier.

We have the following possible combinations:

          RO MPT  COMPAT XLAT  SHORT DMAP
PV64        ?         N             Y
PV32        N         Y             Y
HVM         N         Y             N


So we would need:

enum l4_domain_type {
    PV64,
    PV64_RO_MPT,
    PV32,
    HVM
};

I can see about replacing those last 3 booleans with the proposed
enum.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 14:24:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 14:24:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766792.1177319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRIo-0002qS-Gy; Mon, 29 Jul 2024 14:24:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766792.1177319; Mon, 29 Jul 2024 14:24:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRIo-0002qL-DW; Mon, 29 Jul 2024 14:24:42 +0000
Received: by outflank-mailman (input) for mailman id 766792;
 Mon, 29 Jul 2024 14:24:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lVSF=O5=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1sYRIn-0002bd-JW
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 14:24:41 +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 4a650f01-4db6-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 16:24:41 +0200 (CEST)
Received: from DS7PR03CA0109.namprd03.prod.outlook.com (2603:10b6:5:3b7::24)
 by MW6PR12MB8757.namprd12.prod.outlook.com (2603:10b6:303:239::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.27; Mon, 29 Jul
 2024 14:24:36 +0000
Received: from DS3PEPF000099D9.namprd04.prod.outlook.com
 (2603:10b6:5:3b7:cafe::bb) by DS7PR03CA0109.outlook.office365.com
 (2603:10b6:5:3b7::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.34 via Frontend
 Transport; Mon, 29 Jul 2024 14:24:36 +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.7828.19 via Frontend Transport; Mon, 29 Jul 2024 14:24:35 +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, 29 Jul
 2024 09:24:35 -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, 29 Jul
 2024 09:24:34 -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; Mon, 29 Jul 2024 09:24: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: 4a650f01-4db6-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iYfAt38wHfrYbCzKvgvscqLAJGiBQWVjXQHc6BMuJa0bsfhyjBol90pM8IsQCPhwBRvbYS5/d2OH9hTPxngQV2Cm41V64iGqTTUHzbmUKBW8GbTHSS6A1Zo907XKhbJY7qR248DeobidCQJYJaBfnp9SeSlSxuJUFmZFKn2evdYoljxxPG3PeoWlixWQBWKaYqiMSQms0CHNzSzeyXtNcR1vCdaefbsuhOXAMCUMRAgz95EbaNse/woRoXAjhZiyiEVfQ+fin0hXizsG2KQb8+OhUVtsVUM+6AETtoj5YSqClHcNI31NAwfY5MgxhFSUKGlkydEaCGY0U5nJAxYxDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Qpd/3sEoVyoP99DEMD3O6+ZaTL/UJPyUlDVvloH+sA8=;
 b=zBJTnkO9yDntjlddEsPrXUd3sMIbVp3GJ4lE4sOKse2rBHqf2man61B4+h4dGciO+T4faNrAoU6QJqFyyW6xteXNRtk3L0tmrl9pGtl7gqY+BdXGY47aPlqHEZJWRBgULHU2qHISLfAZrzAW/yvgAP8i/JsEAe6RKaCCYt1nfN+lDKRlnNhrXM5sh5wqXV7bygTx9Um5ovwf92/u6MtKgG6uJuOpZ3OxVFs6XGQeNwU6qJJz/VF1f75vyj0qTB+s9MUVwrPP9qGbRR2jWuJvgLr/H2tttxX080SNFv6AOdWQZx9vwLds11VgsrvCAiPdxcwsfw1Av+Ns5x+DlsQBJg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Qpd/3sEoVyoP99DEMD3O6+ZaTL/UJPyUlDVvloH+sA8=;
 b=mLu6WFhG/p97bmM4yr4UIcpWApsJ/luNV4n652aQjL2nWdGYY/L3qlsKQNz1ljNaeT5pEVrIrLqoIjjMxTOaJ0w5MjPsMuOpQD7r70j+77vnIfW90pSTC3hQyTxgbQojLaKMRgabCn3J5XDC/zYcWTuBRZfyBQw8IFXpZE+8XLw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH 1/3] xen: add no_instrument_function attributes
Date: Mon, 29 Jul 2024 10:24:15 -0400
Message-ID: <20240729142421.137283-2-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240729142421.137283-1-stewart.hildebrand@amd.com>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: DS3PEPF000099D9:EE_|MW6PR12MB8757:EE_
X-MS-Office365-Filtering-Correlation-Id: 81cb6bc6-a952-4dc2-b27a-08dcafda2c42
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?OT6s7LNjrd4WTXde1/FTwFntz/jxUPE9GORxkoMI40z+7u3SVpowdOk3gS1n?=
 =?us-ascii?Q?chUQFVC6fxmSW50yxHwOSkFBQAmuwjU1fzKahsJw2wjQsVD9nF1weUqa5edF?=
 =?us-ascii?Q?/iNvbzh66IvvgA+C9EkDLjaIFR1iEm3NsXEIAiS3Fvfp0H21iv182/pq6DCD?=
 =?us-ascii?Q?MkY8J++wtU0JuBCvVp5rK9vPP6nmLCeYh7F2Qp2rwv75uKp5X2miSn4fjlcc?=
 =?us-ascii?Q?Ee/5aDYdzlaJnNyzCkdIBPSLPGc12oTRosIoFu0KXeAhAB3Ld/1gRhsSh0e5?=
 =?us-ascii?Q?KKwkzrr8a0IxWd51vz7HNeGcojeFQtIP+smMxTxyzDZFTzIWMB+GkwVM7ZcC?=
 =?us-ascii?Q?DYgxgd9BVQpsK0BJUMujOFf+eTWVvzj6K0QHxzg7h4nFFDRfwDe07SvE4sus?=
 =?us-ascii?Q?4GPy0lLL5SclzO9FMZcVTK38KJvF0mH9YlkjunVSBXefSWnmWBtaJSc0vrfD?=
 =?us-ascii?Q?6b2vE608+QriAe8i0pa3ayf1+vAsBsZbJv61jrae9EWbI4Dw91G4y7wFpHwt?=
 =?us-ascii?Q?d+2Atk0c9FhnhGGTkG2gBbtEgEx6Vga8YYlMKEK9W5avyIZrZwCyR8dD8Mwn?=
 =?us-ascii?Q?V+hkxt2YZNBE5V1nrCtkfXIEegU9w/Sn81G0Bukp6AimFiMLDgwGXJb7pE+6?=
 =?us-ascii?Q?kmmmF1dC+5+sff6DXIosngoCtwBMV1pVGWHlHRYAlFUDqTNxanseCYnRu0vh?=
 =?us-ascii?Q?qIUKBBVLAIHkngRpn79pV0CYMLaPIH++wI/W8kWyWTedcb21W3Ae0vRs/X18?=
 =?us-ascii?Q?xtaUum5lBm0YSz5kwEm4gGGAoL0HKLNFocALCHF+EvZKOb90/YJAqYms6gQK?=
 =?us-ascii?Q?hoRmbDq2oIAede3fHAWOjzaqNifO2u1Zl1xNSkOpBbNUnIFCmPBrISOCqb2c?=
 =?us-ascii?Q?bLAEgg397ckiG84mtzp7Ua2ANiCcTTDyq0PmZTyEqT7Q4Cj1+09uFWMnBtEc?=
 =?us-ascii?Q?0AmZHnHLgF0VcBf1k7HZz8GA01j/W2/BCXeMwiclvkvNzAgTRSRi6ly2TLn+?=
 =?us-ascii?Q?bg2XgdWv0tTvWmoYn+j4yUaj6YZYq/4SwpCtEXMby7NXD5UVBgYlWSQWCIVY?=
 =?us-ascii?Q?f5AXwffdk1hTI9H2x7vlXFV9D0/m6DYy2KoHU0d95PfTi8/IHjfNgANdlTNj?=
 =?us-ascii?Q?pN+7wsDidDX1t45g6K+DM/5QTbppOQfeMgxbtiIK7FCPyxp/hEVaHgnlL9bR?=
 =?us-ascii?Q?KpOI8UX4NmMSQJXnvB49UsByNuC4fv8sJDiVF4eLuS42OYrAHEdlDzkkDrfO?=
 =?us-ascii?Q?6ds30J8R9mGnyUatI21q/Y1w4QsGgcnt2GLJCnMUltP4A5lG2eVQxZe0uFsj?=
 =?us-ascii?Q?NQYxKLAXIyGHfhpAtvp+XYucSUQcKer/g0G6vaTG7lHIsTjOAl/wPErk6uRG?=
 =?us-ascii?Q?CWqn4Xvq5GXtvmj9j/CJ2DzuGm9Kcq9JqwXvJHgFVZus3K5RedN5epWTxMXP?=
 =?us-ascii?Q?eDsdCIJ2I7AG81XoRH4CpvUEujQmgvhc?=
X-Forefront-Antispam-Report:
	CIP:165.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 Jul 2024 14:24:35.9130
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 81cb6bc6-a952-4dc2-b27a-08dcafda2c42
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: MW6PR12MB8757

In preparation for using -finstrument-functions option, we need to tag a
few functions that don't work well with such instrumentation. If we
don't intervene, we would end up with linker errors such as undefined
reference to __bad_cmpxchg.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
 xen/arch/arm/include/asm/arm64/cmpxchg.h | 4 ++++
 xen/arch/arm/include/asm/arm64/sve.h     | 1 +
 xen/arch/arm/include/asm/atomic.h        | 2 ++
 xen/arch/arm/include/asm/guest_atomics.h | 1 +
 xen/include/xsm/dummy.h                  | 1 +
 5 files changed, 9 insertions(+)

diff --git a/xen/arch/arm/include/asm/arm64/cmpxchg.h b/xen/arch/arm/include/asm/arm64/cmpxchg.h
index f160e8e7bcf9..acabd42ca986 100644
--- a/xen/arch/arm/include/asm/arm64/cmpxchg.h
+++ b/xen/arch/arm/include/asm/arm64/cmpxchg.h
@@ -5,6 +5,7 @@
 
 extern void __bad_xchg(volatile void *ptr, int size);
 
+__attribute__((no_instrument_function))
 static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
 {
 	unsigned long ret, tmp;
@@ -102,6 +103,7 @@ __CMPXCHG_CASE(w, h, 2)
 __CMPXCHG_CASE(w,  , 4)
 __CMPXCHG_CASE( ,  , 8)
 
+__attribute__((no_instrument_function))
 static always_inline bool __int_cmpxchg(volatile void *ptr, unsigned long *old,
 					unsigned long new, int size,
 					bool timeout, unsigned int max_try)
@@ -122,6 +124,7 @@ static always_inline bool __int_cmpxchg(volatile void *ptr, unsigned long *old,
 	ASSERT_UNREACHABLE();
 }
 
+__attribute__((no_instrument_function))
 static always_inline unsigned long __cmpxchg(volatile void *ptr,
 					     unsigned long old,
 					     unsigned long new,
@@ -145,6 +148,7 @@ static always_inline unsigned long __cmpxchg(volatile void *ptr,
  * The helper will return true when the update has succeeded (i.e no
  * timeout) and false if the update has failed.
  */
+__attribute__((no_instrument_function))
 static always_inline bool __cmpxchg_timeout(volatile void *ptr,
 					    unsigned long *old,
 					    unsigned long new,
diff --git a/xen/arch/arm/include/asm/arm64/sve.h b/xen/arch/arm/include/asm/arm64/sve.h
index a71d6a295dcc..3090e1cb784b 100644
--- a/xen/arch/arm/include/asm/arm64/sve.h
+++ b/xen/arch/arm/include/asm/arm64/sve.h
@@ -48,6 +48,7 @@ unsigned int get_sys_vl_len(void);
 
 #define opt_dom0_sve     0
 
+__attribute__((no_instrument_function))
 static inline bool is_sve_domain(const struct domain *d)
 {
     return false;
diff --git a/xen/arch/arm/include/asm/atomic.h b/xen/arch/arm/include/asm/atomic.h
index 517216d2a846..31c3b3c3745b 100644
--- a/xen/arch/arm/include/asm/atomic.h
+++ b/xen/arch/arm/include/asm/atomic.h
@@ -74,6 +74,7 @@ build_add_sized(add_u32_sized, "", WORD, uint32_t)
 void __bad_atomic_read(const volatile void *p, void *res);
 void __bad_atomic_size(void);
 
+__attribute__((no_instrument_function))
 static always_inline void read_atomic_size(const volatile void *p,
                                            void *res,
                                            unsigned int size)
@@ -99,6 +100,7 @@ static always_inline void read_atomic_size(const volatile void *p,
     }
 }
 
+__attribute__((no_instrument_function))
 static always_inline void write_atomic_size(volatile void *p,
                                             void *val,
                                             unsigned int size)
diff --git a/xen/arch/arm/include/asm/guest_atomics.h b/xen/arch/arm/include/asm/guest_atomics.h
index 8893eb9a55d7..f5f4ba0df0b1 100644
--- a/xen/arch/arm/include/asm/guest_atomics.h
+++ b/xen/arch/arm/include/asm/guest_atomics.h
@@ -86,6 +86,7 @@ static inline void guest_clear_mask16(struct domain *d, uint16_t mask,
     domain_unpause(d);
 }
 
+__attribute__((no_instrument_function))
 static always_inline unsigned long __guest_cmpxchg(struct domain *d,
                                                    volatile void *ptr,
                                                    unsigned long old,
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 00d2cbebf25a..7b42f8faa61c 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -75,6 +75,7 @@ void __xsm_action_mismatch_detected(void);
 
 #endif /* CONFIG_XSM */
 
+__attribute__((no_instrument_function))
 static always_inline int xsm_default_action(
     xsm_default_t action, struct domain *src, struct domain *target)
 {
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 14:24:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 14:24:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766791.1177309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRIm-0002bq-99; Mon, 29 Jul 2024 14:24:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766791.1177309; Mon, 29 Jul 2024 14:24: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 1sYRIm-0002bj-6R; Mon, 29 Jul 2024 14:24:40 +0000
Received: by outflank-mailman (input) for mailman id 766791;
 Mon, 29 Jul 2024 14: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=lVSF=O5=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1sYRIl-0002bd-Ay
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 14:24:39 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2414::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4712b653-4db6-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 16:24:37 +0200 (CEST)
Received: from DM6PR06CA0046.namprd06.prod.outlook.com (2603:10b6:5:54::23) by
 SJ1PR12MB6361.namprd12.prod.outlook.com (2603:10b6:a03:455::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.26; Mon, 29 Jul
 2024 14:24:30 +0000
Received: from CY4PEPF0000EE3C.namprd03.prod.outlook.com
 (2603:10b6:5:54:cafe::26) by DM6PR06CA0046.outlook.office365.com
 (2603:10b6:5:54::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.34 via Frontend
 Transport; Mon, 29 Jul 2024 14:24:29 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EE3C.mail.protection.outlook.com (10.167.242.13) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7828.19 via Frontend Transport; Mon, 29 Jul 2024 14:24:29 +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, 29 Jul
 2024 09:24:28 -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; Mon, 29 Jul
 2024 09:24:28 -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; Mon, 29 Jul 2024 09:24: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: 4712b653-4db6-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OA/sbVZtZZiK76ej6AVrrEfQre6mXbqj3vYi6rk+xmiORJe3NG9swdMuqMRdw2srZFsortk3DhEiF+8DiBbYt73+RsKjTYOWigxA3WTUvymANPOlifvNCzDc2fWnupNleW7r4ntfA5Bw8yqWAzGHSmm12udQWINqfs2aX3sBpOZtj9E39dQr+ReSsnZISN/s/fxkWR5GVrjIjOFmsUchMwt95xwGo2v5VqCwgiEJPq9CC2y37MwaP/XUVsn6VtRGdS4qmAM4ccto6CBs30S6zNWiQmuuDYfNxWxN5f8j1Lmc0E2ThI18DFO0q+L9D72VZl3BWvZInBh0zLSN5uVZXQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5yeTMOahb9lxcvfHiHivc0gVIAteJro/1tGJf8GjS/g=;
 b=Fru9bJEPVaLEBNqjZMKYuHBjp2g5Gh9JQa4n0HggAhNrNZMOfEgV0s04T/Dt1O4RdqxEOewjh6nXFXqIxSO774gh8Tec/Oyg5cdEYMVoXoFHTw+DfgvCrGqsvegxvVWJcVTvpLsBZtyahJNl1VYBr4h97tWUM0Hu/k0EV5xnQVLMVWaDRESLCZ/8YYQaNwJxKIkhCxKNeglbuN2GKlkQZzr4ACx7Z1wmEkuXe2JmZkL3KsZTlUP2i4lnF5TVFGEz+fbbobP42LMOXwNLm8DOnAO4n8VVmVmzz4Fx3TZefhHyZq53dac53V+qgFLkjMn1Cb2rlvwo/TWo6djmJ2udIg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5yeTMOahb9lxcvfHiHivc0gVIAteJro/1tGJf8GjS/g=;
 b=vbi1dnaOmlTvf9UQF7xs/3zgTfGXz5cfv/pTjG/uCqcTC24Fnla6MtuClHJhJR0BmbArbq997A8E1VcjX+1m2Q1/Aqz6CQRG/7o/mH4ZqhX6U3Zh+cnJDOJixilw+ixoSIzpFWsNcjfVTBwVcCr4ti9501q8jb4Lb0Wuq36nN9w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Dario Faggioli <dfaggioli@suse.com>, "Juergen
 Gross" <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: [PATCH 0/3] Stack checking on Arm
Date: Mon, 29 Jul 2024 10:24:14 -0400
Message-ID: <20240729142421.137283-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.45.2
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: CY4PEPF0000EE3C:EE_|SJ1PR12MB6361:EE_
X-MS-Office365-Filtering-Correlation-Id: 64d7997b-1284-42da-e7a7-08dcafda282e
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?ZUxTSHdpVlBIM3ZoMTJ0SUU2SDRKWVd0ckxWbzlnaEpHNngxbFE1NUFsbDdV?=
 =?utf-8?B?YXI1NE1xQ1l6bkowOFUzbzU0enhFWkRxSWR1cmRNM29uYjBvVTZzWHlhbFg5?=
 =?utf-8?B?UmxnUkRWN1NNblNKYXBhdlpFL3Zsc3E4VEYySS9FNi83OHVsV1RyVWhaUjZa?=
 =?utf-8?B?VUdpOUN0dnE5VWEzVmM0cmYxY25JWHphaFRUR0lNTmVNdVNwTFFXRm9qdS9n?=
 =?utf-8?B?NWZMN1kxU1lZUzFCakI1KzFqWmFUK2cwNzBlNitRZWxuNk5DeVBndnhWMUNZ?=
 =?utf-8?B?YWdWeWl0RGVwQVpYUTBwU2JDamNEKzRnZ2lScDh0MFpvTzg3YTkwS3RQQ0VZ?=
 =?utf-8?B?Q3FpQTFUVUNvUEJ4UTFjOXorY1lTZ3BaS3gxVlFEQUZHZ3lOUiswVThTTlpU?=
 =?utf-8?B?TXVRaXBObk84b1IzV0dMZ3RVR1I5aTJiZEJsZFlkK3kyeVRjTWlSQlZWN1Ro?=
 =?utf-8?B?am9xSm1WRTk1KzdzVllldnJkNTJnRW1CclFyT3NRclpvaDlvRFFSSTRHZmFT?=
 =?utf-8?B?R05sSUtFRHA5KzNrdnArTy81MnhSSjcrZy9tVWJvTHZNSTQ1TEhIRElVcS8v?=
 =?utf-8?B?SjNkNmY2c25YUXh1ZVhVNXFZMGhpYnJaaFg2QmR5d2NwTEVIbEdYZ3JqME9D?=
 =?utf-8?B?MUgwOXdIRDYxU244TmN4cjhiV3QyYTBrajg2Wjl3V3g3T1VuUER4MEpjVFNz?=
 =?utf-8?B?dFFpTVdyZ24xenAyMHN4SUZpU01Ma0d5KzhDVm1NR3N5dGxBNUNQeTl1aXcx?=
 =?utf-8?B?QVhqVHJCTUhWS01Yc2t1TzA2c2VXVXZrR2tNVkcxemtyb25LWVUrY2F3QnVK?=
 =?utf-8?B?dUdmRkNWQkJVVzdFb3Z2Q1poV1JCUWU1cTZTVWpIVTg5Yko5NmJkSC91TXFp?=
 =?utf-8?B?ZkJTYmc3bVVIaG05dThYUlhmTGE0WTNZZXVzOWZTMXdrcGY2SldBV0J5YUMr?=
 =?utf-8?B?MEdoZzhQaCtyWlZQVEZxRkIyNU5oQWd3M3pPVENzcC95U0g4cTBSTmpNaWxN?=
 =?utf-8?B?Z0RqUkFoVy9VVWxXZXlCcXN1cGxBb29oOHJ1L1d5ZFFkaUNBRHFPWnFlK28x?=
 =?utf-8?B?SHRjUHhQS1ZMWW9MYlMremFJTTVDY21zTTA4QXo3V2hpbUtsQkV4S3VUaG9v?=
 =?utf-8?B?aGw1cmVLRXROTXo1Z1BxKzdoam41WUtod2tKN0hzcGowQnd6WmE5RERxdWRk?=
 =?utf-8?B?Z05TK3c3V05VWDFhTkdoQkxGOHNKMTVlT1U2NW43WjI2S2VUYW5hMDVzZnBX?=
 =?utf-8?B?U1V1R21mSmFpN0YwMWpFZkdmc1daeHE5Z1FZc0pESCs4Vk1RUkNpZXVJS0Fj?=
 =?utf-8?B?WUNEREc4M2c2SHMxUmdod2N2RXBFZitkVmRZTWk3QnNpM1JjRFBQdmNINFhQ?=
 =?utf-8?B?eG11Tm9VYVZOaGNkRWRPdUZ1MjBqajNpczk2R0xiQXlIamF5Z2FTOWRoWXdC?=
 =?utf-8?B?Mld1L0t3YlMwNkRHSEFPcDk0T0dqUW9mY1F3RWUvaXpuNlpNTlVvemtKbmY0?=
 =?utf-8?B?eCtUb3Y4bVozTmxEOFByVHJTZmxwcjZVYUJxdUUvUWlSeU0yc3FtalljVUdU?=
 =?utf-8?B?MTEvUDBoWTdpR0w3YUtiRmlGSU56NEVMaFhZUXA2bEFYSmFzY0hUL3V1RUZY?=
 =?utf-8?B?Ui9pSEx3WThaN2dGNFFVSkU0dTAyWVhoZW1sSXhlcUdZWkpzTENJc25BTkNX?=
 =?utf-8?B?bE9qcStEVkNnK0JVM0hnTkZoQ2tJVVZsKzdsQzEyQ1NaM0lUaU1Jc2Uvc1Nu?=
 =?utf-8?B?WUU2cUxkMGlZeUdtNzRMRGorQ3dtc0pKYXhpZ3d1MjBQZStRRTJWNzJvdXpU?=
 =?utf-8?B?RU1veVl1VlJuRmE1ckJpQW1nSVBXS1pvUS9yVnpJOFJHaU53RFlVWjJXeUxN?=
 =?utf-8?B?WFNEM3QwNzZpa0ZHRDRmYWl1YndIRW9PcW54ZFMwV2dUdzczZnYwaWJrUnBj?=
 =?utf-8?Q?ogY5nWtfkw56UC1uDiEa7en3vuFepqa5?=
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: 29 Jul 2024 14:24:29.0411
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 64d7997b-1284-42da-e7a7-08dcafda282e
X-MS-Exchange-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:
	CY4PEPF0000EE3C.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6361

This series introduces stack check instrumentation on Arm. This is
helpful for safety certification efforts. I'm sending this in an RFC
state because I wanted to gather opinions on the approach of using
-finstrument-functions.

Stewart Hildebrand (3):
  xen: add no_instrument_function attributes
  xen: silence maybe-unitialized warning
  xen/arm: stack check instrumentation

 xen/arch/arm/arch.mk                     |  1 +
 xen/arch/arm/arm64/head.S                |  4 +++
 xen/arch/arm/domain.c                    |  3 ++
 xen/arch/arm/include/asm/arm64/cmpxchg.h |  4 +++
 xen/arch/arm/include/asm/arm64/sve.h     |  1 +
 xen/arch/arm/include/asm/atomic.h        |  2 ++
 xen/arch/arm/include/asm/guest_atomics.h |  1 +
 xen/arch/arm/include/asm/page.h          |  2 ++
 xen/arch/arm/include/asm/traps.h         |  8 +++++
 xen/arch/arm/setup.c                     |  4 +++
 xen/arch/arm/smpboot.c                   |  3 ++
 xen/arch/arm/traps.c                     | 45 ++++++++++++++++++++++++
 xen/common/sched/cpupool.c               |  1 +
 xen/include/xsm/dummy.h                  |  1 +
 14 files changed, 80 insertions(+)


base-commit: b25b28ede1cba43eda1e0b84ad967683b8196847
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 14:24:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 14:24:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766793.1177330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRIv-00039t-OM; Mon, 29 Jul 2024 14:24:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766793.1177330; Mon, 29 Jul 2024 14:24: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 1sYRIv-00039k-Lh; Mon, 29 Jul 2024 14:24:49 +0000
Received: by outflank-mailman (input) for mailman id 766793;
 Mon, 29 Jul 2024 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=lVSF=O5=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1sYRIu-0002bd-H8
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 14:24:48 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20600.outbound.protection.outlook.com
 [2a01:111:f403:2416::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e506db0-4db6-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 16:24:47 +0200 (CEST)
Received: from CH0PR07CA0011.namprd07.prod.outlook.com (2603:10b6:610:32::16)
 by DS0PR12MB8318.namprd12.prod.outlook.com (2603:10b6:8:f6::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.27; Mon, 29 Jul
 2024 14:24:43 +0000
Received: from DS3PEPF000099DA.namprd04.prod.outlook.com
 (2603:10b6:610:32:cafe::37) by CH0PR07CA0011.outlook.office365.com
 (2603:10b6:610:32::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.34 via Frontend
 Transport; Mon, 29 Jul 2024 14:24:43 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS3PEPF000099DA.mail.protection.outlook.com (10.167.17.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7828.19 via Frontend Transport; Mon, 29 Jul 2024 14:24:43 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 29 Jul
 2024 09:24:42 -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; Mon, 29 Jul 2024 09:24: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: 4e506db0-4db6-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z69hYOhWRWrn9abDEaxwVR4AWFtb0CRtjBL/isMZBYJ/bNq7rkJVl/mBB+mISUcOQgigflr4n+aQAtccZAN8mxphfru5Kv8QM9LUCTLihfE/AIop3BE5LUvsWkhhjgBaXkb0+EaXta2PHfC5Z8lYR9dwoXfnON3RO5oK5ZtTs0uxlpCQxSg/gC0A4vDRW2laeAyrrs+T+1ssiAkOR8529gOsjILzv5SKskUhjYiMB45HO/mex3oILzReA8jOf0TJ5Jua8HjjCGchnmBWoWcwGQ3211WbHpvQml7lgtEC69qtN3buF9HQbF2FdUPmLMjQwnZLTrCWjPG8GRrekHHQ5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CxhM1vltXOjPvL+T6lC6D2DCOSNH7I4CBgQMkOmeLEs=;
 b=Z5nTLZVom3hZnSpGTE2Al0nlihZrgZVau8f8nDhQnwbRtGFZVLtKbG90ctUaCh1PZ102PFcB132Sp+uhXSTUgDWYHjR5z6gX0J310PqhSPsCMXxz4RYl3tKgUz/1YEey4JSCTy05zw6ixwaE6aLAMTdSIPt0YT90Ud6l/z0O2xmVfO5iAIdc77HKWefhXOqB03l7wG3aDCzRXEw0ZfjdgMiPVDWAzrrU1BnSWANocGSkpsy5ZbyrFIgSBWuTeP6zWShIZ6eNsMICnuua0ZRwaTUjsYBUsOMqq5ux/B6SXFsJ6ucsWxN+lLST7f9RjgdqdZMuxWX1DOIbFj8bgG87rA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CxhM1vltXOjPvL+T6lC6D2DCOSNH7I4CBgQMkOmeLEs=;
 b=4BC1REjSajqEcXbvKSRUyj3ugcKReIwoGXw2M/ujM6U0q+ehVxrhiwGbRFzrJV0t0EVVjge1JFNzpGuM3Terb39hybMc5cC4Rm4pVi4+8Uim9V2zFMID6Psl8egtaErL8pVePo/ftSM25fdA7vQGtIR81zZ4+59SS28LKfIv18U=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>, Dario Faggioli
	<dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>
Subject: [PATCH 2/3] xen: silence maybe-unitialized warning
Date: Mon, 29 Jul 2024 10:24:16 -0400
Message-ID: <20240729142421.137283-3-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240729142421.137283-1-stewart.hildebrand@amd.com>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099DA:EE_|DS0PR12MB8318:EE_
X-MS-Office365-Filtering-Correlation-Id: c1c3a7ee-e25c-4d86-b9a5-08dcafda30b6
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?MGhPQTZjYXJuWVovUEpMQW9WM1NLOFFYeWMyWUJoVm0vUmRrUGFkWmxmWmY1?=
 =?utf-8?B?Y1ZUdFdKWVlVdWZ6aHhIVUdweWR4SmI1SDJFSy9uUjFkekk3Tk1jUXhNYTlj?=
 =?utf-8?B?RE9EcEJMODFLZFpNaHkycGp4bTV1QjM5QjFQcFFaS1NNcS9BT0hjVHpnUGpT?=
 =?utf-8?B?bXVMaklDaEszMVVNWDdVYTR5eVZXNXk2TlpBdUZJSFJJbllycWNjWE40K3ZB?=
 =?utf-8?B?L2FkN2h5dXNZL0N0YkNuaXBBVFBiZzd0bnhHNWkybTJ6YWxHZkJ2TndxMEY4?=
 =?utf-8?B?Nk9DN1pZVkJtcEJibDBxaGN2NW5jcW8yWk9mbGVmOE82K0F3YUo4aUw2c2Mz?=
 =?utf-8?B?MFZ6ZEZ0VGNDS2gxOE1SbjBNNExSYkRYWTQ4MzZqdUVpYjNIQ25acHovNUR6?=
 =?utf-8?B?UzFvN3pPRE5FZ0UwUU51SkIwdXp1ay9lNXI1VlBVdHFReFNEeG54SVFyVDdN?=
 =?utf-8?B?TmtBN2hra29tYU5wSnNrbW8yN1YyUENMV1l1Yk5UOG9pZzAxK3VvR2dGK1BS?=
 =?utf-8?B?WDZYY1JyTitFQThiMDlSSmxYcGhpT3B0c3F6ZU9CUkJYQWZ1eWRYcmorTDJx?=
 =?utf-8?B?QjJsODJnQVk0MC8vUUNnamx6cC9tbU5zbjZXSzBGTmNzZG1IZnh6VzFoaVN5?=
 =?utf-8?B?eHN5SHdJTVRtODY3Sms3aENZaTRjVXRlbkd6ZnlDRktzalpHK2ZXUFNydEdz?=
 =?utf-8?B?ODU5alFqZ0x4V0x3L3BvOWhVaE44VUZ0eWVlZ1pXbDdxd0YzM2JqZ3AvSXBx?=
 =?utf-8?B?b05ZUXVEYWZQV3krVnhsblYwSGNxYVlIbHVReGEzUlNpMHJaQWxESWNFWUI4?=
 =?utf-8?B?Zy9HMTJ4bHUxb1JVVVhOOUs1eWZ0YVBKSnZWcVdyOXkrRko0cDIyRmVvc2RF?=
 =?utf-8?B?ZVpwK2JRSkRyRTFnNmcrNEFLM2JsV2Z4ekdFeldGY3ZmOHVhZ3h1SW9mR0Na?=
 =?utf-8?B?UzRkY21HbmlLZ0VsdmhhZDN6UjhwNEpnbmNNODZFbU0vcEtRS2NqMEhnbWxk?=
 =?utf-8?B?RFo3Y0FYT001VFA0QTkyWDBibWdqSHFXWFVETnJOZDVoekxzQVFmUUJna0N1?=
 =?utf-8?B?TFplSGdXMDRrbDc1TmN2SFBaNzJGWmVXNUxRVExndGxnOGpsU0tRcVpndGlK?=
 =?utf-8?B?L3RHZXE4TzgvaVZEek16YkQrUW9xcmZ1dWpKOGpsTGk0M3ZFNVlPc1picmhG?=
 =?utf-8?B?b3hsdFhxSEdaVmNoclhVRjNnZ3RFL0VYYk9kYWx6N2R0T2xxaEE4bjd4d0sx?=
 =?utf-8?B?T3dBOFFPSFZIWnZZT1NScFpubXkxaWFHblNrM3gyRGxrYWZMMjcrSzB1R3Zh?=
 =?utf-8?B?TWM0UURjdlo4MEZVMmdUVTkyRE1FMGMrd051Vm50eUc0cXR0ZTFmaFFMdjI4?=
 =?utf-8?B?ODJzMVVvbG90Z0NOcU1sWmFCNDVTVVRrY1JJVExXOXpwQWpVTFJ1cnVWSjQw?=
 =?utf-8?B?b2hWWXJyWnJMa3RqODF5RFNxN05EdTE1M3hSbzVCUTdCMVN0RVkyOVpCSGho?=
 =?utf-8?B?OUdHdm05cy9hZ3JRYXB2OGZxNGlFNmdzV3BJNnNlZnNzU2wzdTlYeFhEbEt1?=
 =?utf-8?B?dGFQWktIRVFZOTdiampJV29TZGtGU01mM0hjaGhKWUhSUmdxdFBlNG16MzdF?=
 =?utf-8?B?RHpEcDBORXJPYVM2YzRsUEtWRWkrWVFqczBIMitXekVlNFc4UE9Kb0laNnBp?=
 =?utf-8?B?RHNQYWt0RnJxVmhJVCt1LzRYRkpqeHRGeXlPTnF4Mm1mTWxqalloZG0zdjVw?=
 =?utf-8?B?bk9BVUJtd212UjE0QnpyRk9VZ0hVQjhWQWNkdmZyak9zc1NVK3VaQ2JlcGdL?=
 =?utf-8?B?YXNNMm9PVFpnVmdtN2dUazBMNThMZ2NTV01YR0tzd2FDN1FpeXoxSUVRNGJK?=
 =?utf-8?B?S0RMS29tRi9tM0t5cCtIZWlJLzFOR0QwWnJpWkhxL2hEZXB4bWJoOTgzajYz?=
 =?utf-8?Q?8LPtVttN6Ng2IFyUKb945BFkJ9VZwhYA?=
X-Forefront-Antispam-Report:
	CIP:165.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 Jul 2024 14:24:43.3530
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c1c3a7ee-e25c-4d86-b9a5-08dcafda30b6
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DA.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8318

When building with gcc with -finstrument-functions, optimization level
-O1, CONFIG_HYPFS=y and # CONFIG_HAS_SCHED_GRANULARITY is not set, the
the following build warning (error) is encountered:

common/sched/cpupool.c: In function ‘cpupool_gran_write’:
common/sched/cpupool.c:1220:26: error: ‘gran’ may be used uninitialized [-Werror=maybe-uninitialized]
 1220 |                      0 : cpupool_check_granularity(gran);
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
common/sched/cpupool.c:1207:21: note: ‘gran’ declared here
 1207 |     enum sched_gran gran;
      |                     ^~~~

This is a false positive. Silence the warning (error) by initializing
the variable.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
 xen/common/sched/cpupool.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index 57dfee26f21f..3d02c7b70690 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -103,6 +103,7 @@ custom_param("sched-gran", sched_select_granularity);
 #elif defined(CONFIG_HYPFS)
 static int sched_gran_get(const char *str, enum sched_gran *mode)
 {
+    *mode = SCHED_GRAN_cpu;
     return -EINVAL;
 }
 #endif
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 14:25:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 14:25:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766796.1177340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRJ6-0003dj-9q; Mon, 29 Jul 2024 14:25:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766796.1177340; Mon, 29 Jul 2024 14:25:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRJ6-0003da-4g; Mon, 29 Jul 2024 14:25:00 +0000
Received: by outflank-mailman (input) for mailman id 766796;
 Mon, 29 Jul 2024 14:24: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=lVSF=O5=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1sYRJ4-0003ZM-53
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 14:24:58 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20601.outbound.protection.outlook.com
 [2a01:111:f403:2405::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 53711ad6-4db6-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 16:24:56 +0200 (CEST)
Received: from CH5PR04CA0015.namprd04.prod.outlook.com (2603:10b6:610:1f4::16)
 by IA0PR12MB8714.namprd12.prod.outlook.com (2603:10b6:208:488::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.28; Mon, 29 Jul
 2024 14:24:51 +0000
Received: from DS3PEPF000099D6.namprd04.prod.outlook.com
 (2603:10b6:610:1f4:cafe::60) by CH5PR04CA0015.outlook.office365.com
 (2603:10b6:610:1f4::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.34 via Frontend
 Transport; Mon, 29 Jul 2024 14:24:50 +0000
Received: from SATLEXMB04.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.7828.19 via Frontend Transport; Mon, 29 Jul 2024 14:24:50 +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, 29 Jul
 2024 09:24:50 -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, 29 Jul
 2024 09:24:49 -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; Mon, 29 Jul 2024 09:24: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: 53711ad6-4db6-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cHRmPxEHO4owW8CpirPq6sPM52zHNmRnguTaoiLfEoNT+m9fO75v7XgZe87s1w+95LH1+Lc33AH/9mTPhFpUKl+0D03NYHyfSCR0CiaLUlLBPj7W2dECks5NoufNCi06TmoQWCY43ssL7QVzDaDUQfRX9x7rWTtJVVEMtTbfJCNIBuWayBju3gBxouCYlynE+3twiMj0gWxgNsMnKI/qqzQmckXn7otOnAUDZ/mPLAtPqMnn7l/YGP9G+CXeAFs86W5wM/mMUSjkpH2AoDKeYcXn9DCmvgp8FNgECg63bshjC33gTtqxfg9w+GjtHcB7UrOZ1xSgZS65bL2NfxviVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TSm79FkEI7y4i+M/UCormwCYBTtHPSb5Zm5QtdPtlSY=;
 b=yQ61iHq5CACPPembOTSkn/0/wY4G64w9UlZOj0ETwCQgsWIxk3ClwXHzjbVQZ6qJODEqiek4pDZzsbWeiQ5VjTqq+xamsXxCd3WzWNX2xSqmcT5CrABaMcFAhragWjhXfD4TXBImgQDGqATt8ula76V3f+/86RwMq7xVS+hCFK04sX5miv1cuOnaO2+CDr5sa6PVgN/p6SkVmlpreKZ2QXEUMvcdZvyVfbdwCk64ELv0JnY0/nC55NEFjWQS0+1RzL82Z8klileNcC4U+KBbCG3769tmNWKWV3Wjb02GiYJFhaCE2fqM4aY226pUqog054Z178dqsKWqfbClVZz1fQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TSm79FkEI7y4i+M/UCormwCYBTtHPSb5Zm5QtdPtlSY=;
 b=kF4meOSDHYvfi5+9M4M4MLOD2vua6NcldG7dSmBDcYHCxwXeeRz+zyFR6RSsnHut8IWNJwZqK0dktg6aWZDjIYw6PZdEuD9XIOXBSjtKrqeXcYeUtRHIKIx0bZTvgeVcFmFzo9Xv9ZSnZj2Mw2VkyKjzM6pHj5JQhrCM4Y0s50g=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>
Subject: [PATCH 3/3] xen/arm: stack check instrumentation
Date: Mon, 29 Jul 2024 10:24:17 -0400
Message-ID: <20240729142421.137283-4-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240729142421.137283-1-stewart.hildebrand@amd.com>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: DS3PEPF000099D6:EE_|IA0PR12MB8714:EE_
X-MS-Office365-Filtering-Correlation-Id: 7fb1ffd3-64e5-47c0-2937-08dcafda3515
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?7qvpyGSaSAs7SSrqASTkAaSrjFv9vxREIO1PCtmW84zvr7o7RILwe/tYSlrh?=
 =?us-ascii?Q?vmepIDw9+yvtk3OR2neys3fAr1cc4tk5CAjJkK3uGIDX3be6vIJJf6ebS8bH?=
 =?us-ascii?Q?pBPNni5e5PeafIToF1n4FibidLn2n0RSs0+T25cW5zYsIuxCWUjk7ZgjQQrT?=
 =?us-ascii?Q?6zjlAYbSPZRkSVBc6p4cmr44JVvg5GA5ib0/mU7N/EhNB4gLpBra0g+CNhen?=
 =?us-ascii?Q?YqIP7qnNzzPBFuiUtx4uQuPJSwtKRJiS1PQCuyPO6nvea+KWE85q6SDs2qe3?=
 =?us-ascii?Q?UepdfQEtlJcp9y72lov/b+1S/xE8fknNvSy+Dun+SVKkz4fkTQ/k/kzruA0o?=
 =?us-ascii?Q?vejt4fG8BQgpaJ23ZHCd/3QQCdtCTdA4BwT7/LgsQQKSI3No1DC9b+zcOejw?=
 =?us-ascii?Q?7cVLHreXhg9KO0Q5qeeNMOM61LjKVhtN3bZCvaaf6fwtTRZ+xtbQCpNKCSqf?=
 =?us-ascii?Q?5OonyXV8q6gYFoNEFURlNe3nuPfFVow/zoZYkHdJQMcGk8a/tWVBEEeDLiZZ?=
 =?us-ascii?Q?dYbo1PQ0rtOuuMbWfC9ybmC0UGxs4bTA6ESDpAQHhENVefblMshnsje0APXy?=
 =?us-ascii?Q?y4nnb9vuX8kLpee03dgcxDcT+DMbBRDJ6bswsY4jFMDQMAmXb4itAPa6ZdDg?=
 =?us-ascii?Q?XGpQtsX501WIG9bTxjWP7vZL1WFKHNbn9usZ/lLFOyUcR/KkY26OfF+CxOsa?=
 =?us-ascii?Q?6aW1XfE6IrfaLaHQUrpz4lda4jJPUZkanAhS4CXn6CEvoGp+C5L6UkjDGajW?=
 =?us-ascii?Q?hg5t089vMXpUmxMEY9d/J2mlTfkbHz/CAeqhDOd7UX7T9sEb3LtXg2Fqj/hN?=
 =?us-ascii?Q?qfjxTlaARioVVajQVRjZDfzDT3ec0Qti0UJ/CnHF5bT5ohR3XI4Fmdu+laTi?=
 =?us-ascii?Q?ir/bEt+XxWY7TJEsbfsNBWX1JfzWtFfmQwON2hFPaEcgGFtjnu2uLV6+7oma?=
 =?us-ascii?Q?IWK+ZM4nt8zVydhJpzW/WeBx/NDJcrX1WzZ6Atd5J+YYfeL5tDQcQCjG6niW?=
 =?us-ascii?Q?82Bj9K7UrBSIHGT5dE3WKPYyWkNPPZeAY9OFujHPuCf465vzkJRCROSqCPvu?=
 =?us-ascii?Q?Qj4l9NKJYMUbukqQf0vVELmaTh5NGS+MSKXePAjDKaYooSVx5/VFAmVjc7y2?=
 =?us-ascii?Q?tSaVQ+ZGu2md2m1otGobiThrlBulXjjZPEVPCGxFX5D+9Q4PqZv6Gt9lKQ/r?=
 =?us-ascii?Q?5q/a2VzuP/WzumY2sC3XMQjsKo/m+iFZ5116an5jbUDmNupYFT/c/opzHypm?=
 =?us-ascii?Q?H4Cnh0cLAMXsNAFNhr3G6Iqh1KF5UJcdUXx9eqAMczTevK2YsajcqZ2UtqVR?=
 =?us-ascii?Q?WExc9hCXgCS8gtqswcbDdxoaIDN/AldnbxV2xMa8OImf+x4W6GH+5tihKuk+?=
 =?us-ascii?Q?4/7ugUnatb7O4s96obgNKApGSqx9J7qIeokD0GI6+WbfrZ6UeuzLUBM3jZRF?=
 =?us-ascii?Q?g+QQYEyJgI5E2/Zvq20Dz4QvEacebL5H?=
X-Forefront-Antispam-Report:
	CIP:165.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: 29 Jul 2024 14:24:50.6984
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7fb1ffd3-64e5-47c0-2937-08dcafda3515
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.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: IA0PR12MB8714

Use the -finstrument-functions option to check that the stack pointer is
valid upon each function entry. Only enable it for debug builds due to
the overhead introduced.

Use per-cpu variables to store the stack base and nesting level. The
nesting level is used to avoid invoking __cyg_profile_func_enter
recursively.

A check is added for whether per-cpu data has been initialized. Since
TPIDR_EL2 resets to an unknown value, initialize it to an invalid value.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
RFC: I only tested this on arm64. I still need to test with arm32.

RFC: Should we put this under its own config option instead of reusing
     CONFIG_DEBUG?

RFC: Is there a better value for INVALID_PER_CPU_OFFSET? We can't use 0
     because 0 is a valid value for get_per_cpu_offset().
---
 xen/arch/arm/arch.mk             |  1 +
 xen/arch/arm/arm64/head.S        |  4 +++
 xen/arch/arm/domain.c            |  3 +++
 xen/arch/arm/include/asm/page.h  |  2 ++
 xen/arch/arm/include/asm/traps.h |  8 ++++++
 xen/arch/arm/setup.c             |  4 +++
 xen/arch/arm/smpboot.c           |  3 +++
 xen/arch/arm/traps.c             | 45 ++++++++++++++++++++++++++++++++
 8 files changed, 70 insertions(+)

diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 022dcda19224..c39cb65d183d 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -12,6 +12,7 @@ CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access
 CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
 CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
 $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
+CFLAGS-$(CONFIG_DEBUG) += -finstrument-functions
 
 ifneq ($(filter command line environment,$(origin CONFIG_EARLY_PRINTK)),)
     $(error You must use 'make menuconfig' to enable/disable early printk now)
diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index 2fa07dc3a04b..4a332b9cbc7c 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -399,6 +399,10 @@ FUNC_LOCAL(cpu_init)
          * than SP_EL0.
          */
         msr spsel, #1
+
+        ldr   x0, =INVALID_PER_CPU_OFFSET
+        msr   tpidr_el2, x0
+
         ret
 END(cpu_init)
 
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 7cfcefd27944..93ebe6e5f8af 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -26,6 +26,7 @@
 #include <asm/procinfo.h>
 #include <asm/regs.h>
 #include <asm/tee/tee.h>
+#include <asm/traps.h>
 #include <asm/vfp.h>
 #include <asm/vgic.h>
 #include <asm/vtimer.h>
@@ -328,6 +329,8 @@ void context_switch(struct vcpu *prev, struct vcpu *next)
 
     set_current(next);
 
+    stack_set(next->arch.stack);
+
     prev = __context_switch(prev, next);
 
     schedule_tail(prev);
diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
index 69f817d1e68a..6b5aaf1eb3ff 100644
--- a/xen/arch/arm/include/asm/page.h
+++ b/xen/arch/arm/include/asm/page.h
@@ -7,6 +7,8 @@
 #include <asm/lpae.h>
 #include <asm/sysregs.h>
 
+#define INVALID_PER_CPU_OFFSET            _AC(0x1, UL)
+
 /* Shareability values for the LPAE entries */
 #define LPAE_SH_NON_SHAREABLE 0x0
 #define LPAE_SH_UNPREDICTALE  0x1
diff --git a/xen/arch/arm/include/asm/traps.h b/xen/arch/arm/include/asm/traps.h
index 9a60dbf70e5b..13e6997c2643 100644
--- a/xen/arch/arm/include/asm/traps.h
+++ b/xen/arch/arm/include/asm/traps.h
@@ -118,6 +118,14 @@ static inline register_t sign_extend(const struct hsr_dabt dabt, register_t r)
 
 void finalize_instr_emulation(const struct instr_details *instr);
 
+#ifdef CONFIG_DEBUG
+void stack_check_init(void);
+void stack_set(unsigned char *base);
+#else
+static inline void stack_check_init(void) { }
+static inline void stack_set(unsigned char *base) { }
+#endif
+
 #endif /* __ASM_ARM_TRAPS__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 0c2fdaceaf21..07d07feff602 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -47,6 +47,7 @@
 #include <asm/setup.h>
 #include <xsm/xsm.h>
 #include <asm/acpi.h>
+#include <asm/traps.h>
 
 struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
 
@@ -733,6 +734,8 @@ void asmlinkage __init start_xen(unsigned long boot_phys_offset,
     percpu_init_areas();
     set_processor_id(0); /* needed early, for smp_processor_id() */
 
+    stack_check_init();
+
     /* Initialize traps early allow us to get backtrace when an error occurred */
     init_traps();
 
@@ -924,6 +927,7 @@ void asmlinkage __init start_xen(unsigned long boot_phys_offset,
      * since the static one we're running on is about to be freed. */
     memcpy(idle_vcpu[0]->arch.cpu_info, get_cpu_info(),
            sizeof(struct cpu_info));
+    stack_set(idle_vcpu[0]->arch.stack);
     switch_stack_and_jump(idle_vcpu[0]->arch.cpu_info, init_done);
 }
 
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index 04e363088d60..1c689f2caed7 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -30,6 +30,7 @@
 #include <asm/psci.h>
 #include <asm/acpi.h>
 #include <asm/tee/tee.h>
+#include <asm/traps.h>
 
 /* Override macros from asm/page.h to make them work with mfn_t */
 #undef virt_to_mfn
@@ -329,6 +330,8 @@ void asmlinkage start_secondary(void)
 
     set_processor_id(cpuid);
 
+    stack_check_init();
+
     identify_cpu(&current_cpu_data);
     processor_setup();
 
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index aac6c599f878..b4890eec7ec4 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -2325,6 +2325,51 @@ void asmlinkage leave_hypervisor_to_guest(void)
         arm_smccc_1_1_smc(ARM_SMCCC_ARCH_WORKAROUND_2_FID, 0, NULL);
 }
 
+#ifdef CONFIG_DEBUG
+DEFINE_PER_CPU(unsigned int, stack_check_nesting);
+DEFINE_PER_CPU(unsigned char *, stack_base);
+
+void __attribute__((no_instrument_function)) stack_set(unsigned char *base)
+{
+    this_cpu(stack_base) = base;
+}
+
+void __init __attribute__((no_instrument_function)) stack_check_init(void)
+{
+    this_cpu(stack_check_nesting) = 0;
+    stack_set(init_data.stack);
+}
+
+__attribute__((no_instrument_function))
+void __cyg_profile_func_enter(void *this_fn, void *call_site)
+{
+    unsigned char *sp;
+
+    if ( get_per_cpu_offset() == INVALID_PER_CPU_OFFSET )
+        return;
+
+    asm volatile ("mov %0, sp" : "=r" (sp) );
+
+    if ( sp < this_cpu(stack_base) ||
+         sp > (this_cpu(stack_base) + STACK_SIZE) )
+    {
+        if ( this_cpu(stack_check_nesting) )
+            return;
+
+        this_cpu(stack_check_nesting)++;
+        printk("CPU %d stack pointer out of bounds (sp %#lx, stack base %#lx)\n",
+               smp_processor_id(), (uintptr_t)sp,
+               (uintptr_t)this_cpu(stack_base));
+        BUG();
+    }
+}
+
+__attribute__((no_instrument_function))
+void __cyg_profile_func_exit(void *this_fn, void *call_site)
+{
+}
+#endif
+
 /*
  * Local variables:
  * mode: C
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 14:29:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 14:29:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766826.1177350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRNK-0005NP-Rv; Mon, 29 Jul 2024 14:29:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766826.1177350; Mon, 29 Jul 2024 14:29:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRNK-0005NI-Nl; Mon, 29 Jul 2024 14:29:22 +0000
Received: by outflank-mailman (input) for mailman id 766826;
 Mon, 29 Jul 2024 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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYRNJ-0005NC-W2
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 14:29:21 +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 f1d0c52b-4db6-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 16:29:21 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7ac469e4c4so701953866b.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 07:29: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-a7acab23f21sm513951066b.37.2024.07.29.07.29.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 07:29: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: f1d0c52b-4db6-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722263360; x=1722868160; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ek9HDFKIhaL+t8Gwc5EWQqh7/03/2YDofjLoJlxaQxs=;
        b=QBUM+vg363KMmym/zVIpR1X5fqoKm/tw8GgQhrjT7KgBVodMBbJx3kepb6y3zyafXT
         s6naL5912vguSAcdYpUGBESyY4Lb5E5Jnjm2/wR6LT1k9jMRZ6dObbpoX9GZ0grlKKc+
         Q52QnFQ0OddZeHR+XQcb2lfqq0no0YaJ1ANhK+Ji0mMWarivK0AlM1YqapYOC6aVIRUI
         Gkwzg+p2fW9EMRz4wUGyY/+qYIVIVeP1kfrtOcX/Co+PjipG/2T9RM4Crem+fC7aeV3B
         P3DuNtn0l6bH+NLy7Jq6CeorVQBVa4zxIQqaNI+sRYymdC6Ii0jdAhp0tgDDk7XCAaBD
         2UVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722263360; x=1722868160;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ek9HDFKIhaL+t8Gwc5EWQqh7/03/2YDofjLoJlxaQxs=;
        b=jA87nyA9ruIn1BFJovp5vIVBPBZ9eknlt2/0uBnWeHBm4yfo+mcpohz3NdO0y+yWge
         aVJmJ2HBx0AImSfGMXLT95ku+7/sPzacopAlp9LDEJs2V1L+OQYyqVYEyvYvpswULlta
         SHou2UPGQx5p7Ey5t40eMtfbvM3z35vguduoKO4E3r+c7b00JT/iSbxC6vaKO8U6EV73
         SIyNSFJ7A0BEP5c4vIB7ptQ9zzvUF1akGdXiWtrcy5AP91zXt2KAPVZEXCSIxLDVVHBA
         3UgxR6eXvbeVZALFGL2oAHe7k4chbYAKnoR0ogpnsAU3OCzd6C+BufmBdRcrX+KXcdhg
         JQEA==
X-Forwarded-Encrypted: i=1; AJvYcCUASwhlP3GEbYzwWlhCQmiC88P7w5eTi8+ywDXIboTwNwDmbvnLBWN/1Y3k9vKP8IEAl4SqTr6KNE89KH489vnjicHo+HnMUdghx3CedSQ=
X-Gm-Message-State: AOJu0YxqTw6ztVJUZCFB7M2TZ7xC1VS6BXyk91KW++San5YRowzQoteE
	AiIA9YEIz9tWWZ6Af9h2MJ0bA9Kdp1+2tasjXFDYIKRDa+NMNSwwp1SG1FxLdQ==
X-Google-Smtp-Source: AGHT+IEts3F4gtfTQUTq/sC3mhp1r+KNGjqDIfa6nq2x1dZso53XSTD4IzIe0pO0gu6tC5JCWabAHg==
X-Received: by 2002:a17:906:d262:b0:a6f:e7a0:91cf with SMTP id a640c23a62f3a-a7d3fa09eccmr746903366b.24.1722263360345;
        Mon, 29 Jul 2024 07:29:20 -0700 (PDT)
Message-ID: <3359e37e-eaae-49ca-80a5-2bf70b9b46c7@suse.com>
Date: Mon, 29 Jul 2024 16:29:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/9] xen/riscv: introduce asm/pmap.h header
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <11b5487659a9c76793e520c108cd92c6c84b908d.1721834549.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: <11b5487659a9c76793e520c108cd92c6c84b908d.1721834549.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 17:31, Oleksii Kurochko wrote:
> Introduces arch_pmap_{un}map functions and select HAS_PMAP
> for CONFIG_RISCV.
> 
> Additionaly it was necessary to introduce functions:
>  - mfn_from_xen_entry
>  - mfn_to_pte
> 
> Also flush_xen_tlb_range_va_local() and flush_xen_tlb_one_local()
> are introduced and use in arch_pmap_unmap().

Just flush_xen_tlb_one_local() would suffice for the purposes here.
flush_xen_tlb_range_va_local() will need some kind of cutoff, to
avoid looping for an excessivly long time.

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/pmap.h
> @@ -0,0 +1,33 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef ASM_PMAP_H
> +#define ASM_PMAP_H
> +
> +#include <xen/bug.h>
> +#include <xen/mm.h>
> +#include <xen/page-size.h>
> +
> +#include <asm/fixmap.h>
> +#include <asm/flushtlb.h>
> +#include <asm/system.h>
> +
> +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
> +{
> +    pte_t *entry = &xen_fixmap[slot];
> +    pte_t pte;
> +
> +    ASSERT(!pte_is_valid(*entry));
> +
> +    pte = mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
> +    write_pte(entry, pte);
> +}

Perhaps add a comment to clarify why it's safe to omit a TLB flush here.
Note that arch_pmap_unmap() having one is a necessary but not sufficient
condition to that. In principle hardware may also cache "negative" TLB
entries; I have no idea how RISC-V behaves in this regard, or whether
that aspect is actually left to implementations.

> +static inline void arch_pmap_unmap(unsigned int slot)
> +{
> +    pte_t pte = {};
> +
> +    write_pte(&xen_fixmap[slot], pte);
> +
> +    flush_xen_tlb_range_va_local(FIXMAP_ADDR(slot), PAGE_SIZE);
> +}

For both functions, even if mainly for documentation purposes, it may
be desirable to mark them __init. It's again a necessary (but not
sufficient) condition here, to validly use local TLB flushes only.

> --- a/xen/arch/riscv/mm.c
> +++ b/xen/arch/riscv/mm.c
> @@ -382,3 +382,18 @@ int map_pages_to_xen(unsigned long virt,
>      BUG_ON("unimplemented");
>      return -1;
>  }
> +
> +static inline pte_t mfn_from_pte(mfn_t mfn)
> +{
> +    unsigned long pte = mfn_x(mfn) << PTE_PPN_SHIFT;
> +    return (pte_t){ .pte = pte };
> +}

My earlier naming related comment may not have been here, but it
was certainly meant to apply to any similar functions: A function
of this name should imo take a pte_t and produce an mfn_t. IOW I'd
expect this function to be pte_from_mfn(). However, I question it being
a good idea to do it this way. The resulting pte_t isn't valid yet, aiui,
as it still needs at least the access controls filled in. Such a partial
pte_t would better not be floating around at any time, imo. IOW the
function likely wants to take a 2nd parameter.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 14:32:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 14:32:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766833.1177360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRQc-0006ph-8v; Mon, 29 Jul 2024 14:32:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766833.1177360; Mon, 29 Jul 2024 14:32: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 1sYRQc-0006pa-5T; Mon, 29 Jul 2024 14:32:46 +0000
Received: by outflank-mailman (input) for mailman id 766833;
 Mon, 29 Jul 2024 14:32:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ITaz=O5=bounce.vates.tech=bounce-md_30504962.66a7a802.v1-9d9836ec55ae402c865cf5993de36484@srs-se1.protection.inumbo.net>)
 id 1sYRQa-0006pU-Va
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 14:32:44 +0000
Received: from mail177-18.suw61.mandrillapp.com
 (mail177-18.suw61.mandrillapp.com [198.2.177.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69f897ae-4db7-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 16:32:43 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-18.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4WXgn56MjDzCf9KK2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 14:32:41 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9d9836ec55ae402c865cf5993de36484; Mon, 29 Jul 2024 14:32: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: 69f897ae-4db7-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1722263561; x=1722524061;
	bh=0B0hEUJ0vxMyrd1PzytLoS0fLlQWml7ZY89g/4uhyso=;
	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=AL/63MKiDIoG+WEWzS6mEb04ZXTLICfImTEzVLNtqLLBFynj3d7QHY2TwP2IDVpZX
	 bCUHVZwz/1okiy/l9B/OOJfSjFyoiIa2kGt6L+AHbgFGl1Spyaal00mPfslKJ1HQA+
	 WosRurtFobI/zONdkZqisAWwIc3TwSc6eNvfOHekQF/p/i0eXmsCLOPmY2+uyqOUpQ
	 id8FIMiARm5h2SiU1GY1DzCuE/s+JFJmyVEqRJaAdKYBIhhq269czr8PYpR15oFPw3
	 ELjBJIyM/wMbCXFPykuqr7jdwFAuAYVYhBnGVSJcvDqgTa8qGmKsmCdoJypcSX+ylB
	 2/I9bVg3FtDrA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1722263561; x=1722524061; i=anthony.perard@vates.tech;
	bh=0B0hEUJ0vxMyrd1PzytLoS0fLlQWml7ZY89g/4uhyso=;
	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=katNSv9fq365Ifvm5vDu8/7kyNFnS4SPqCD2AeMwgIi5aHl3vRyS3iSZP2w7sBmQJ
	 20RDrYUG+ptYTbdNG+VFJLVR7zHD18h/NqjYE+laY2/8xaCMS3D3RhQ4QdQY8nDvip
	 8yp1zu3ELnF4GsN5M4zXJn0BMb9j4iVvVef3Qt6fYsvBCrHc+igvvy9F+WEbaOOLdD
	 iNV8UCqzZdbbYyyiTgkfErLGaF+cPgEC4wD5dt6ZkdHTrT9lJPJGoP0OJkMBk7T2ID
	 bU6VjFEk6cUDIxLXEYV34wjuFXGiyLeI9Kwzwrb5HycylatuNKt+jYwlbq1koeTDs4
	 jMV1evIH736mw==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v4]=20libxl:=20Enable=20stubdom=20cdrom=20changing?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1722263553595
To: Jason Andryuk <jandryuk@gmail.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross <jgross@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Message-Id: <ZqeoAElP7fWJc15s@l14>
References: <20240728210856.310083-1-jandryuk@gmail.com>
In-Reply-To: <20240728210856.310083-1-jandryuk@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.9d9836ec55ae402c865cf5993de36484?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240729:md
Date: Mon, 29 Jul 2024 14:32:34 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Sun, Jul 28, 2024 at 05:08:56PM -0400, Jason Andryuk wrote:
> +static void cdrom_insert_stubdom_parse_fdset(libxl__egc *egc,
> +                                             libxl__ev_qmp *qmp,
> +                                             const libxl__json_object *response,
> +                                             int rc)
> +{
> +    EGC_GC;
> +    libxl__cdrom_insert_state *cis = CONTAINER_OF(qmp, *cis, qmp);
> +    int devid;
> +    int fdset;
> +
> +    if (rc) goto out;
> +
> +    /* Only called for qemu-xen/linux stubdom. */
> +    assert(cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
> +
> +    devid = libxl__device_disk_dev_number(cis->disk->vdev, NULL, NULL);
> +    fdset = query_fdsets_find_fdset(gc, response, devid);
> +    if (fdset == ERROR_NOTFOUND) {
> +        /* Give the stubdom a little time before trying again. */
> +        rc = libxl__ev_time_register_rel(cis->ao, &cis->retry_timer,
> +                                         cdrom_insert_stubdom_query_fdset,
> +                                         200);
> +        if (rc) goto out;

There's a missing "return;" here.

And looks like it's the only issue,
with that fixed: Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

> +    } else if (fdset < 0) {
> +        rc = fdset;
> +        goto out;
> +    }
> +
> +    cis->stubdom_fdset = fdset;
> +
> +    LOGD(DEBUG, cis->domid, "Found fdset %d", cis->stubdom_fdset);
> +    cdrom_insert_ejected(egc, &cis->qmp, NULL, rc);
> +    return;
> +
> + out:
> +    cdrom_insert_done(egc, cis, rc); /* must be last */
> +}
> +

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 Jul 29 14:34:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 14:34:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766841.1177369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRSA-0007Pt-M0; Mon, 29 Jul 2024 14:34:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766841.1177369; Mon, 29 Jul 2024 14:34:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRSA-0007Pm-JX; Mon, 29 Jul 2024 14:34:22 +0000
Received: by outflank-mailman (input) for mailman id 766841;
 Mon, 29 Jul 2024 14:34:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7lGn=O5=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sYRS9-0007Pg-1h
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 14:34:21 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a3b55e8e-4db7-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 16:34:19 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52f0277daa5so5534027e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 07:34:19 -0700 (PDT)
Received: from EMEAENGAAD91498.citrite.net ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab22ffcsm523005266b.12.2024.07.29.07.34.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 07: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: a3b55e8e-4db7-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722263658; x=1722868458; 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=WYQASg0qEMRl0vt7k1Mn52hk12I5MM01uJ4iEBy3MoA=;
        b=kPzHL33kej+L6WDh9hdgWd8zb9kBS7+olUqHXCe0aS9CnAdxs7fSKWi/8T2ZPDRnR9
         T+HAlgOBNG6hMKIFf4UMXtSsVbatF8UuPmfnD0x7Ro2izvGbJgEkiuI+dTnN9ztY/87r
         vdUIQ/xspAZxGaOSttrDxOhnamQbGufIxRYcA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722263658; x=1722868458;
        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=WYQASg0qEMRl0vt7k1Mn52hk12I5MM01uJ4iEBy3MoA=;
        b=PHLqbikbyTlHn1hEmHpj4CLwhR9at4kJs/UuIqjMfbEVIwCleuAi9HeGNBxnhJMLLa
         P2QWBuNiH4FRC/SocN2Fgsj+nwZt4oZLi09RK7xR5WXuIOOyXprvn32tOxgdfGy5nf72
         rIJ2ProMb5Q7YEyDPuglJ8Be3YH1lAQiWR/kyJvn+0QRRH0S5RxkuG53VifB80v72Mxv
         HO4e7qJ/WYsauyrI6fnIsVE2F8d4N2Abjv1zq5MBmV8y5dzHkCMykCr7htQ8aYKEKZ+S
         4C9cZ8egj+M4tvxcBc5m9HkoYSrqroOeGNNCxPOp38Z6gt/ATDqb+ojYWc4mNjxFsuuP
         3ViA==
X-Gm-Message-State: AOJu0YwirCVzo/8D+fCk3exuNOqpYjRK3+gbs9huREvHzbnQi2qxqKmW
	19EjQPQHjZoU83HcNylVUIFyP10O+NK8Sw/mzc0pmPmHxlVYuawTF6ouHNQ8nWeObJr9uIPxrFY
	m
X-Google-Smtp-Source: AGHT+IE4mgT1kEGBeVHUDuG7vDqdEvTWYP9MxoqFErLHoggYa/wos73pFBjG56spMhLYXa+UyI8lXQ==
X-Received: by 2002:a05:6512:ea0:b0:52c:d819:517e with SMTP id 2adb3069b0e04-5309b27bd2fmr7006371e87.30.1722263657812;
        Mon, 29 Jul 2024 07:34:17 -0700 (PDT)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v5] tools/lsevtchn: Use errno macro to handle hypercall error cases
Date: Mon, 29 Jul 2024 15:34:11 +0100
Message-Id: <f7bc11cc63a7b8596eb7a7c17f1e5c910f0009e5.1722263364.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Bcc: Matthew Barnes <matthew.barnes@cloud.com>
Content-Transfer-Encoding: 8bit

Currently, lsevtchn aborts its event channel enumeration when it hits
an event channel that is owned by Xen.

lsevtchn does not distinguish between different hypercall errors, which
results in lsevtchn missing potential relevant event channels with
higher port numbers.

Use the errno macro to distinguish between hypercall errors, and
continue event channel enumeration if the hypercall error is not
critical to enumeration.

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
Changes in v5:
- Code style changes to switch statement

Changes in v4:
- Catch non-critical errors and fail on everything else, instead of
  catching few known critical errors and ignoring everything else
- Use 'perror' to describe miscellaneous critical errors
- Return appropriate error code from lsevtchn tool
- Tweak commit description
---
 tools/xcutils/lsevtchn.c | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/tools/xcutils/lsevtchn.c b/tools/xcutils/lsevtchn.c
index d1710613ddc5..b7d1b3d424ae 100644
--- a/tools/xcutils/lsevtchn.c
+++ b/tools/xcutils/lsevtchn.c
@@ -3,6 +3,7 @@
 #include <stdint.h>
 #include <string.h>
 #include <stdio.h>
+#include <errno.h>
 
 #include <xenctrl.h>
 
@@ -24,7 +25,28 @@ int main(int argc, char **argv)
         status.port = port;
         rc = xc_evtchn_status(xch, &status);
         if ( rc < 0 )
-            break;
+        {
+            switch ( errno )
+            {
+            case EACCES: /* Xen-owned evtchn */
+                continue;
+
+            case EINVAL: /* Port enumeration has ended */
+                rc = 0;
+                break;
+
+            case ESRCH:
+                perror("Domain ID does not correspond to valid domain");
+                rc = ESRCH;
+                break;
+
+            default:
+                perror(NULL);
+                rc = errno;
+                break;
+            }
+            goto out;
+        }
 
         if ( status.status == EVTCHNSTAT_closed )
             continue;
@@ -58,7 +80,8 @@ int main(int argc, char **argv)
         printf("\n");
     }
 
+out:
     xc_interface_close(xch);
 
-    return 0;
+    return rc;
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 14:45:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 14:45:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766851.1177380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRcF-0001G7-KP; Mon, 29 Jul 2024 14:44:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766851.1177380; Mon, 29 Jul 2024 14:44: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 1sYRcF-0001G0-H8; Mon, 29 Jul 2024 14:44:47 +0000
Received: by outflank-mailman (input) for mailman id 766851;
 Mon, 29 Jul 2024 14:44: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYRcD-0001Fr-SO
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 14:44:45 +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 14190caa-4db9-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 16:44:37 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a7a9a7af0d0so474289666b.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 07:44: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
 a640c23a62f3a-a7acab4de7asm516353366b.66.2024.07.29.07.44.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 07:44: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: 14190caa-4db9-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722264277; x=1722869077; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=N6z+L8J4g/6gTtcX1rcZAOHLgCzHuGot2VvPUUI2fB8=;
        b=IrFMFzAqAxzMEmqrAbWpqV32BNn5WN45BAM6A7Wbgc+WYSHm6WuA+LlMn04lZ7NWBM
         IFhtu90eG6WKsGWA5JyiFROgg5vuRO/LxKuwJCSb61Gwsoq7TcMKbX34YXYfKCdVVxcP
         W0WjyqgBLs/P39ZtBXw1nLZ3iXrAp3iPzfTKRfyWS7mC+2WfIEt7WT9KUEI/0H86y9nn
         0qBzGQljA2tXxAlYt5MVLtpaZSzVL4g/viwg17I+WSis2KFUyPlBmJtNMMMJtkGgp/hQ
         TbW715ttjuDoYOnPHtBVOswLyljUtoWLbSx8nrDhG+0m5I7WyLa2tfg4OXJ0sEDkofdL
         v3Eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722264277; x=1722869077;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N6z+L8J4g/6gTtcX1rcZAOHLgCzHuGot2VvPUUI2fB8=;
        b=Ul92nCi0U9RojJJGcSpBIh3/YFaQweZeHT6msWaAYJSOTo0WqJMwxkkPPsKjNjWsqm
         c7y9O4opdu9gECD2xAF6tQQGD/dLPX9Y0X1j8N0IjGsBGDbEYdLaBFekRf8SFoa0UcpP
         fDL/IXynw9TftLib6CAJRez4sjURedPVqQCGg5Ycx90jsCbHZAGqRJc3g7g8OSlXlOMZ
         5AVq440QLeceL2p5kKKhcIS8MinzOdZbkYg6uSWzXJAmdqIQCGWg0qIav+OSIjBJl5rv
         ErfCgSYkXSC77zjOHV+33pMN8IC5S/jKF85UjCfiklCKduR25uiu71YQfqwUsTfDUAl4
         Qk+w==
X-Forwarded-Encrypted: i=1; AJvYcCUIwOU68FwzgUUYYHkOxW0le+Al+WJdGMVvTdk8IDXc2f4k32ahAo+TowK6wz/onC6/nzZdirKa0H0JqwrXfhDPUECsKaL3MpDsMgUmmAc=
X-Gm-Message-State: AOJu0YzwbG+HQMO+6A3rRLINKAPWRehqhKoJuO4y9w293fxfyRpjwiTJ
	ytMiyiioyXzcxlRN9MDpE57a0FF+MaZaiMuNgPjqCz/h/TSboH3Uuc/4xxn6TA==
X-Google-Smtp-Source: AGHT+IFZ3+od9csvA1zxqfjuvpfa7iS4vqfl0hcoywcP9Z9lHMr60qtX0TDAbA2r0iC9WqpXh66D6A==
X-Received: by 2002:a17:907:7205:b0:a7a:9ca6:527 with SMTP id a640c23a62f3a-a7d3ff7cce8mr562413666b.8.1722264276797;
        Mon, 29 Jul 2024 07:44:36 -0700 (PDT)
Message-ID: <d62df418-ff89-4594-944f-e68513d1f672@suse.com>
Date: Mon, 29 Jul 2024 16:44:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5] tools/lsevtchn: Use errno macro to handle
 hypercall error cases
To: Matthew Barnes <matthew.barnes@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <f7bc11cc63a7b8596eb7a7c17f1e5c910f0009e5.1722263364.git.matthew.barnes@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f7bc11cc63a7b8596eb7a7c17f1e5c910f0009e5.1722263364.git.matthew.barnes@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 16:34, Matthew Barnes wrote:
> @@ -58,7 +80,8 @@ int main(int argc, char **argv)
>          printf("\n");
>      }
>  
> +out:

Sorry didn't pay attention here (and can likely be taken care of when
committing, unless other comments arise): Labels want to be indented
by at least one blank. See ./CODING_STYLE.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 14:56:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 14:56:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766859.1177389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRn7-0003Vp-IR; Mon, 29 Jul 2024 14:56:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766859.1177389; Mon, 29 Jul 2024 14: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 1sYRn7-0003Vi-Fv; Mon, 29 Jul 2024 14:56:01 +0000
Received: by outflank-mailman (input) for mailman id 766859;
 Mon, 29 Jul 2024 14:55:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYRn5-0003Vb-EB
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 14:55:59 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a96b9e37-4dba-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 16:55:57 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-52f04c29588so6391801e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 07:55: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-a7acac60369sm516869566b.90.2024.07.29.07.55.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 07:55: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: a96b9e37-4dba-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722264957; x=1722869757; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=S5EEaYouypDnIwmtZs+E2u3r89NVpG5/evnwm/MoRfw=;
        b=ciAL3mwZNkPk+bYTAIHIIXK0weYb46y2QiwJq2eXzADJ8ejaPgCHq01LPrvkGoKJdG
         LgBv5MZUvGGNErPEOp4MVnsb+LmQgSFxfUBnKuS4MPlTLe4BaRCmo2orbio7r2R+ScFZ
         HOEsfbTdc/aEK1hQLEwNyIAP+l4xh8c4f7JOiYlgtObRS8CPVfin2e4krc5zg8ghPUT+
         D0GMG8Nq0TENAvDX0hDPQeAidaLJ6V7sb23d2bROew4IEF0aNcjXWV8zR90ISkmCqRW2
         HpDmbpp7HEqRjXy2286z8y5CELFqCFTSKR9WNn/3P0oiqgiHu5T7QsFswlaMDGIj9x/9
         onpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722264957; x=1722869757;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S5EEaYouypDnIwmtZs+E2u3r89NVpG5/evnwm/MoRfw=;
        b=MT4+YqRTFQYkQDo0u98iy6Qd4ZCeJNIhfr7DUOx7mv/DFzhV3hY13ovVbjjxsHMn5i
         Cnk2Mx+IX4EC/10UWiOgamwmyZLzyw+TcDOJ/tpgG4BQKrgZTATEQy17Zl86G0LKjFjK
         to3a1yWygOmiFR6r8RViwhrT2rD3PZxRSN6oSyXmAoWBPBDlL24Pm0yi3886MmP2687I
         XMQajdjs1wfBzK+yAfA2YPDpwNOhC+7KihWHNpnGMvLZEbrLkggdKoWa4f3sEkM4R1qx
         cPsJomrtP8n3EZusFsewfVedmVUfcY393IcgWJBmgQUHwFtjJFMAoBTanChn3vIn97ck
         5xxg==
X-Forwarded-Encrypted: i=1; AJvYcCU2gr2/PVknmcaH9Ily2LVqbOSAbbHW4L4iwycjF5EW+GefQV4TUO4kqXaBE0soY/2+SQpAUsMALxX8Tb0GYalgmej6SPAoqd6b9BUe/jo=
X-Gm-Message-State: AOJu0Yy6PLKgA5HlCPpyKPDIjLNOphlgjeTJQA84wpLbLSi2Sc8ObYIk
	0V6/65aEGKqFtjky9RCwQAEqeAZfkXCoVMTppu1Wb21xp3Sj1DiROZCrDjIGLQ==
X-Google-Smtp-Source: AGHT+IHa5Uo99km7B125x7mifT5FhSBXJlkSUuj8eHPLF/dewcXjPe3wQZA1YXXoul9XN8pWqLTDFQ==
X-Received: by 2002:a05:6512:4859:b0:52c:850b:cfc6 with SMTP id 2adb3069b0e04-5309b2c3a7bmr4747317e87.38.1722264956729;
        Mon, 29 Jul 2024 07:55:56 -0700 (PDT)
Message-ID: <baa57ab0-60c9-49b0-9601-09bea081ddd7@suse.com>
Date: Mon, 29 Jul 2024 16:55:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen: add no_instrument_function attributes
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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-2-stewart.hildebrand@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240729142421.137283-2-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 16:24, Stewart Hildebrand wrote:
> In preparation for using -finstrument-functions option, we need to tag a
> few functions that don't work well with such instrumentation. If we
> don't intervene, we would end up with linker errors such as undefined
> reference to __bad_cmpxchg.

I can't spot mention of such a side effect from the documentation. Talk
there is of function calls being added at function entry and exit.
Nothing is being said that calls to other functions would also be
affected.

> --- a/xen/arch/arm/include/asm/arm64/cmpxchg.h
> +++ b/xen/arch/arm/include/asm/arm64/cmpxchg.h
> @@ -5,6 +5,7 @@
>  
>  extern void __bad_xchg(volatile void *ptr, int size);
>  
> +__attribute__((no_instrument_function))

I guess it would be nice to have

#define no_instrument __attribute__((no_instrument_function))

in xen/compiler.h. I also don't think these annotations want placing
ahead of the entire declaration, but rather where other similar
annotations would also go.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 15:01:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 15:01:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766867.1177400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRsa-0005kn-5j; Mon, 29 Jul 2024 15:01:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766867.1177400; Mon, 29 Jul 2024 15:01:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRsa-0005kg-2Z; Mon, 29 Jul 2024 15:01:40 +0000
Received: by outflank-mailman (input) for mailman id 766867;
 Mon, 29 Jul 2024 15:01: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYRsY-0005kX-PZ
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 15:01:38 +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 73b829bb-4dbb-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 17:01:36 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5b391c8abd7so845672a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 08:01: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-a7acab23639sm520554066b.9.2024.07.29.08.01.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 08:01: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: 73b829bb-4dbb-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722265296; x=1722870096; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nnGpzgEAON+HCynjBA54wewKN1M/X+qB/wBGCKcDNnw=;
        b=J3UffZ3Kmk1YSWbSutIqHdPv7WkO82AnVhRjrnyAijT02SSaggASIaHsfyF7nzxDaX
         +4IRjUfgsPjWYJzigjd9XE9nVeOzhC4+mKNzclEl1EuYqsLu8bMKX1TVzDqlLlaqZXv9
         VB/pLxRNIn4rx6+w2iNy8BrB+SeVJe6jyppS40zUqg3QDuCkqRTktgGIq6Xb4hbENA9s
         DAtNE9PLlpN5e9RaJrfjB4Z0iEvSBN5GxOxddaZB3Q2oC4ZjwXg1aikGNGl0C6qzgINB
         AO4+ZjLhquP6WUi6AM81p2soVja3oQiSbhMIYmP/qasPkEsK9NpFQ4zeAsxvaKLVkSkd
         h5EQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722265296; x=1722870096;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nnGpzgEAON+HCynjBA54wewKN1M/X+qB/wBGCKcDNnw=;
        b=WnC2IOXcNntbDN+QIyRc86ZTut1s0Sac279IrICkJwulePZSvpbLXhX0WpM9ccKjUa
         Jv+rIZWnCkZzv70dBbgGzf7sPFTHLmKSCDLHmeCIkGMQAJ3Iysb4Fwx+PUR6RTN10NXy
         s6ekzN/PqokdCzEBpW8bpUPvCSAzwCxXOXwjNVxm0QnrruXWbR5yAIfe7gzdiAhk7QJ/
         KjUhtXJwx99T8YKY7q3Q/HO8DA2ABzULFqc0uLNfVd4Rp2vTSLOt0UKmF6fPlnQipX0+
         qLO8Jqv2ZQJX8Ld3xOWbp/o0l0oRpV4CdhPxb9b9IDCsl/0hLN75mLOkUXDdKIPRZsjw
         YrMA==
X-Forwarded-Encrypted: i=1; AJvYcCUFvKA+T056/kMQBQ6AM7Bi2N/k2LDY3iA9B65nK3VXHR9JNmrS+z4aPx6UuWFWem4aXwJTOTUTEzHEAlDxmBpPcJCJoN0KH2kkYTQOx/I=
X-Gm-Message-State: AOJu0Ywpbb9eoVqOCHMgz4DBfSTFn6y9sV3DRo4XYSkM/o3HGpvqsKT3
	rsQD8JWf/AVb+yMhYI1Lid3s8ExUBnaGs84wxBVOrdwh+cV6ZxWX2axngEvQ2g==
X-Google-Smtp-Source: AGHT+IGyFF3qGNtyaKkVMN/MtRe5w7OR4YqzzMnBBooAW4vj67OlMSZGS6IEVW/40VzFaRNxcmf1WA==
X-Received: by 2002:a17:907:9718:b0:a72:6375:5fc4 with SMTP id a640c23a62f3a-a7d3ffc17b7mr599057166b.11.1722265296125;
        Mon, 29 Jul 2024 08:01:36 -0700 (PDT)
Message-ID: <d313bf2f-a5af-4cd4-b9a4-5ad321c59519@suse.com>
Date: Mon, 29 Jul 2024 17:01:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xen/arm: stack check instrumentation
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>,
 xen-devel@lists.xenproject.org
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-4-stewart.hildebrand@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20240729142421.137283-4-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 16:24, Stewart Hildebrand wrote:
> RFC: Should we put this under its own config option instead of reusing
>      CONFIG_DEBUG?

I'd say yes, with it merely defaulting to DEBUG. And then have this in
generic code rather than ...

> --- a/xen/arch/arm/arch.mk
> +++ b/xen/arch/arm/arch.mk
> @@ -12,6 +12,7 @@ CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access
>  CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
>  CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
>  $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
> +CFLAGS-$(CONFIG_DEBUG) += -finstrument-functions

... here, with arches simply indicating whether the Kconfig is usable
(i.e. arch code had been suitably enabled).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 15:02:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 15:02:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766873.1177411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRto-0006In-H6; Mon, 29 Jul 2024 15:02:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766873.1177411; Mon, 29 Jul 2024 15:02:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRto-0006Ig-Bu; Mon, 29 Jul 2024 15:02:56 +0000
Received: by outflank-mailman (input) for mailman id 766873;
 Mon, 29 Jul 2024 15: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=7lGn=O5=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sYRtn-0006Ia-Dx
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 15:02:55 +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 a17c0cb2-4dbb-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 17:02:53 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5afa207b8bfso3103068a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 08:02:53 -0700 (PDT)
Received: from EMEAENGAAD91498.citrite.net ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac6339b06esm5848322a12.10.2024.07.29.08.02.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 08: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: a17c0cb2-4dbb-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722265373; x=1722870173; 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=kBtjsfdsTy7i8mRY2ZgMcr3TDqeVEGFIRB258IV37CA=;
        b=bXl/YNPq/y8M6JBi8jWAAjX9XMi2Fpw7u9H+9a2Lg2scRiErjo3nD3GyUHtrNAvBOb
         KSvxlvxNT7D1U6QjzjLtliXO978D1oBtiMzEQmdzKVoGqKQAdS7VzyfxKZFAQE3c8kiN
         XUnsEp8hfwrHTqaDtvqcvzf/vO/74z4EzFAWY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722265373; x=1722870173;
        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=kBtjsfdsTy7i8mRY2ZgMcr3TDqeVEGFIRB258IV37CA=;
        b=NiZEn4i086rBqFNpaKD+ELC9yoQcjyAdJZz85XbBL2jOg1nbpMssCWFLU2c+Y6nuFf
         IVnNvTKKLHLbwsmGbjT6P72kmn4kIpfjOBTKxQFZh/XxzmUKVl1Dpk2PRGpTl63FLLq8
         5BIvEHuKlnljehKigeI9JvvoUb+l5Cs2Gao9kAzQOzmblTIY3GFFlf6/1fS6LzAYKMcf
         bQHJnwBK2/UwfJWtTrhkjFUdCMUnGOh/K7mnSB5ri06+Ir4+Die+TbzswLbbbSEzbEQR
         llZUDrAf0/sBe5xsO0EHGce8w5MwbLZsl86c+/gPQ6+bvi+/W56eajwxMICnV/l8aBnj
         ai7A==
X-Gm-Message-State: AOJu0Yw2h+DB6CNal7I7FHRJxnkJ+I+Koi0uimidmfBEsUY+7O0UTxkY
	/7D4Pk0S9pdbl6aE3bC3A2yB+OuYxwRax5Z+IzwIu0Oyd4WAs74PxW5v0/VMypIRhlfMFl87Czl
	z
X-Google-Smtp-Source: AGHT+IEklQ96vRviqOT8LlJpDTS1BsN+ypuK42NQSF78PAKQ9a8sQ24qH0SFjgEQUGQ2p/1LYCSRKw==
X-Received: by 2002:a50:d489:0:b0:5a2:1693:1a2f with SMTP id 4fb4d7f45d1cf-5b0208c2d59mr4992714a12.12.1722265372287;
        Mon, 29 Jul 2024 08:02:52 -0700 (PDT)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v6] tools/lsevtchn: Use errno macro to handle hypercall error cases
Date: Mon, 29 Jul 2024 16:02:41 +0100
Message-Id: <cbb751a7fab10d228513bb163c85c83d025330c9.1722265284.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Bcc: Matthew Barnes <matthew.barnes@cloud.com>
Content-Transfer-Encoding: 8bit

Currently, lsevtchn aborts its event channel enumeration when it hits
an event channel that is owned by Xen.

lsevtchn does not distinguish between different hypercall errors, which
results in lsevtchn missing potential relevant event channels with
higher port numbers.

Use the errno macro to distinguish between hypercall errors, and
continue event channel enumeration if the hypercall error is not
critical to enumeration.

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
Changes in v6:
- Add blank space before label

Changes in v5:
- Code style changes to switch statement

Changes in v4:
- Catch non-critical errors and fail on everything else, instead of
  catching few known critical errors and ignoring everything else
- Use 'perror' to describe miscellaneous critical errors
- Return appropriate error code from lsevtchn tool
- Tweak commit description
---
 tools/xcutils/lsevtchn.c | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/tools/xcutils/lsevtchn.c b/tools/xcutils/lsevtchn.c
index d1710613ddc5..29504c9d2077 100644
--- a/tools/xcutils/lsevtchn.c
+++ b/tools/xcutils/lsevtchn.c
@@ -3,6 +3,7 @@
 #include <stdint.h>
 #include <string.h>
 #include <stdio.h>
+#include <errno.h>
 
 #include <xenctrl.h>
 
@@ -24,7 +25,28 @@ int main(int argc, char **argv)
         status.port = port;
         rc = xc_evtchn_status(xch, &status);
         if ( rc < 0 )
-            break;
+        {
+            switch ( errno )
+            {
+            case EACCES: /* Xen-owned evtchn */
+                continue;
+
+            case EINVAL: /* Port enumeration has ended */
+                rc = 0;
+                break;
+
+            case ESRCH:
+                perror("Domain ID does not correspond to valid domain");
+                rc = ESRCH;
+                break;
+
+            default:
+                perror(NULL);
+                rc = errno;
+                break;
+            }
+            goto out;
+        }
 
         if ( status.status == EVTCHNSTAT_closed )
             continue;
@@ -58,7 +80,8 @@ int main(int argc, char **argv)
         printf("\n");
     }
 
+ out:
     xc_interface_close(xch);
 
-    return 0;
+    return rc;
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 15:03:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 15:03:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766881.1177419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRuK-0006qm-QM; Mon, 29 Jul 2024 15:03:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766881.1177419; Mon, 29 Jul 2024 15:03: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 1sYRuK-0006qf-Nw; Mon, 29 Jul 2024 15:03:28 +0000
Received: by outflank-mailman (input) for mailman id 766881;
 Mon, 29 Jul 2024 15:03: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=+PZO=O5=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1sYRuI-0006eV-Tv
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 15:03:26 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4e5dea5-4dbb-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 17:03:26 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5af326eddb2so5021963a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 08:03: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: b4e5dea5-4dbb-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722265406; x=1722870206; 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=r39w7G2DfUB7c3EusM9NnT8kZ1CCHY4LUzhurD4ImZ8=;
        b=JNMNOn7lhTy8PTZecp7Be/4kpav+dViVihWl6/TLcMqPc/lrIv09BQnKu5FK5kWYY4
         2Wx7Z8GovD9CaRj3zEI/Tbe63QIkwHOO6IUAOm42YK5cyB/nja8diI54+Ece3cYiuwC0
         DXXe9issOAvSVkKLg/zDWKAEFZxVzcc/0MRxYi8RVMCgZsjpSDwXERhzKY0bz0+PFona
         h9CKN7ouVsKsiW8Scz4ZOftT3CazOMFGKGb9Sg3n4t2m1H5nRJfj1deXUc2+R7RLEkJh
         mLaQwX//b0yXe1JvykiAVK340bTEdEW+bdNOkIHZiKL7CvQRPy0vwm7QW4C8SZXa5zu2
         FVHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722265406; x=1722870206;
        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=r39w7G2DfUB7c3EusM9NnT8kZ1CCHY4LUzhurD4ImZ8=;
        b=d7lVQKdT4kspXiabOvxuim/1ebHW9sPaelR7pY8mEzxWV+QvXuqFqD6CeW9j8EcXX+
         M5F8MSK1MUHj/3TXJ2bRTx7T1qC8qRoEJkhY1tyOV0TNuImr9IWr27UNpAlw4C4a/JsV
         /ITHTnUfJ0OmIa7kkGvvGIn9Iv7coW2ebBf0NDAB/Z+RB9htZhWzTSUPxBCXlPT1k8Kl
         VxrGdGn3eqxgYtH3ymrA4l4Bu7CjSTkEB6GWwZQ57NDbrSFhMtUW0HFVXeQ80ZMC1vsj
         3Qh7a7DfJn7pNR0Wp0MObUQeoFfHoTPhRy6FRGh4fjZYzKTehwYTat5AXYbO80Xh78LJ
         R+oQ==
X-Gm-Message-State: AOJu0YwVEvXmnAUbNX9NVls84u4Us7ij/ofGOR+PcNUgZPOqVXolRZq3
	57RIKhF10ZiJVpedsE/PpElO0iOGe2i09V6X5kMwKgFZD2vSjkeN9+D8560a14MstOY3YJmIxpd
	1Psnd8MNkxK0JQN4e5jiSH90rYsV9Ax/w
X-Google-Smtp-Source: AGHT+IEj9xkOR+maYcz+v3DVnsOKo+OcgTaN7vgXrp5yAilaAQO12h7bty+bd2Q5XnSbuSRL8+uuhd02nWm7BBBvVvE=
X-Received: by 2002:a50:a40e:0:b0:58c:b2b8:31b2 with SMTP id
 4fb4d7f45d1cf-5b0191acfddmr6963373a12.17.1722265405187; Mon, 29 Jul 2024
 08:03:25 -0700 (PDT)
MIME-Version: 1.0
References: <20240728210856.310083-1-jandryuk@gmail.com> <ZqeoAElP7fWJc15s@l14>
In-Reply-To: <ZqeoAElP7fWJc15s@l14>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Mon, 29 Jul 2024 11:03:13 -0400
Message-ID: <CAKf6xpvoUnZ_Vrwm9t7PBM5hgjspQ=C6FmWj5gr7V22WsRXsMA@mail.gmail.com>
Subject: Re: [PATCH v4] libxl: Enable stubdom cdrom changing
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross <jgross@suse.com>, 
	Jason Andryuk <jason.andryuk@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 29, 2024 at 10:32=E2=80=AFAM Anthony PERARD
<anthony.perard@vates.tech> wrote:
>
> On Sun, Jul 28, 2024 at 05:08:56PM -0400, Jason Andryuk wrote:
> > +static void cdrom_insert_stubdom_parse_fdset(libxl__egc *egc,
> > +                                             libxl__ev_qmp *qmp,
> > +                                             const libxl__json_object =
*response,
> > +                                             int rc)
> > +{
> > +    EGC_GC;
> > +    libxl__cdrom_insert_state *cis =3D CONTAINER_OF(qmp, *cis, qmp);
> > +    int devid;
> > +    int fdset;
> > +
> > +    if (rc) goto out;
> > +
> > +    /* Only called for qemu-xen/linux stubdom. */
> > +    assert(cis->dm_ver =3D=3D LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
> > +
> > +    devid =3D libxl__device_disk_dev_number(cis->disk->vdev, NULL, NUL=
L);
> > +    fdset =3D query_fdsets_find_fdset(gc, response, devid);
> > +    if (fdset =3D=3D ERROR_NOTFOUND) {
> > +        /* Give the stubdom a little time before trying again. */
> > +        rc =3D libxl__ev_time_register_rel(cis->ao, &cis->retry_timer,
> > +                                         cdrom_insert_stubdom_query_fd=
set,
> > +                                         200);
> > +        if (rc) goto out;
>
> There's a missing "return;" here.

Thank you for spotting that!  Now I feel silly that I missed it.  My
quick testing yesterday succeeded, but it must not have needed a
retry.  So I did not notice.  I have re-tested with your change and
verified that retries happen properly - I see two 'query-fdsets' QMP
commands sometimes.

> And looks like it's the only issue,
> with that fixed: Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 15:03:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 15:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766886.1177430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRug-0007GO-1Q; Mon, 29 Jul 2024 15:03:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766886.1177430; Mon, 29 Jul 2024 15:03:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRuf-0007GH-Ut; Mon, 29 Jul 2024 15:03:49 +0000
Received: by outflank-mailman (input) for mailman id 766886;
 Mon, 29 Jul 2024 15:03:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RtVC=O5=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sYRue-0006eV-Qx
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 15:03:48 +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 c215cb5f-4dbb-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 17:03:48 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a7abf92f57bso476391766b.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 08:03:48 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab22ffcsm527202666b.12.2024.07.29.08.03.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 08:03: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: c215cb5f-4dbb-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722265428; x=1722870228; 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=t9yvEDyX53YGg23DSo2/GlutdHQD1gV8kYZOT5EPEzE=;
        b=F24rJA8NEIaz8Z5pXP1+lhl5tu3WnkANbiudwzXwkkYc5huYdgOBnUsrxDMH8yQ9tQ
         qReCzy0Bai5cvE1SMmApr386odf/dv0fyGnfLatsJvCXhqVgJQmCcQ6y4GVqWcrOaIlP
         ORRpLyF6lph89IW86F7R+L+x871S+1QZbNA6MQZWYQDuTdpCgf4CH1VrENHG7pGr9xVM
         ceFnofrpYh1y+25nGMjaHO/O8W+RmHVzP3ETBovHi1x/v2g9x2mR7cTaRyIBxJVJzoUd
         y7lIurcfSKV1uVzAALVSWdXQBS89/nyUa/5UcR8z0ElivYKgqorXZmirUa3BrhIlpCND
         6rYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722265428; x=1722870228;
        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=t9yvEDyX53YGg23DSo2/GlutdHQD1gV8kYZOT5EPEzE=;
        b=eyZayETAhkawyBV/CppF3mVBuDkFWWEkIPNMustuegrI9nRk0tMBOEJWMzRL+Db+Cs
         DG+S5FNXjmNXwCanJxOKDUIaP55ex46Vkhfk6cPyWhMWKi1utYne3rwF2Du0bSboGPem
         BiGsLL/gzc0B6CsLytfa3TWjE9zLOmaqkqebO9QE98bp/LmhCKrcK+ZB9UlphFMzMrHy
         A6VRGYq9yE57EXfKdupnNKCjSJBbldNsORbr6hgDkr7jrFsJt5IuVvCEH2snt9vt1gL+
         boxV2YpD0bYMBFcZahQYT9rdJdJ0uk3dizbZTvQvYv9Q47BYCadueLqaWHAPb8Mim/6R
         lb9g==
X-Forwarded-Encrypted: i=1; AJvYcCXxshQV0RuGg/SpQQP03/h7X6M4iqO7o6gRiYPbOLWKdJt7NHH80ZJo2F1pZXA/XJVwMzgZTfZ+IFQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdDL+dv6pUfYvyL9i8DHUKVCNc4xj+cPngAW8nPW8K0lrT24Bc
	Z3osJFy4ybl+WsZtQ7bOckE0YWUj7jdYF58EePMM8NhkoECvzrbVcVrg55jxNMI=
X-Google-Smtp-Source: AGHT+IGaY7wvRrbE2uT53l17q+geoEIGqr0rBezVhy9b7P+tbOxmLf0itgEUVet7+9VhXHCXASLUHg==
X-Received: by 2002:a17:906:ee85:b0:a72:9d25:8ad3 with SMTP id a640c23a62f3a-a7d3ff58047mr493046766b.9.1722265427389;
        Mon, 29 Jul 2024 08:03:47 -0700 (PDT)
Message-ID: <b49f76cb-f22e-498e-83ae-68cc9840c48d@suse.com>
Date: Mon, 29 Jul 2024 17:03:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] xen: silence maybe-unitialized warning
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-3-stewart.hildebrand@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20240729142421.137283-3-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 29.07.24 16:24, Stewart Hildebrand wrote:
> When building with gcc with -finstrument-functions, optimization level
> -O1, CONFIG_HYPFS=y and # CONFIG_HAS_SCHED_GRANULARITY is not set, the
> the following build warning (error) is encountered:
> 
> common/sched/cpupool.c: In function ‘cpupool_gran_write’:
> common/sched/cpupool.c:1220:26: error: ‘gran’ may be used uninitialized [-Werror=maybe-uninitialized]
>   1220 |                      0 : cpupool_check_granularity(gran);
>        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> common/sched/cpupool.c:1207:21: note: ‘gran’ declared here
>   1207 |     enum sched_gran gran;
>        |                     ^~~~
> 
> This is a false positive. Silence the warning (error) by initializing
> the variable.
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 15:04:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 15:04:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766895.1177440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYRvh-0007wj-CF; Mon, 29 Jul 2024 15:04:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766895.1177440; Mon, 29 Jul 2024 15:04: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 1sYRvh-0007wc-99; Mon, 29 Jul 2024 15:04:53 +0000
Received: by outflank-mailman (input) for mailman id 766895;
 Mon, 29 Jul 2024 15:04: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=+PZO=O5=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1sYRvf-0007wD-Mh
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 15:04:51 +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 e68f81e1-4dbb-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 17:04:50 +0200 (CEST)
Received: by mail-yb1-xb2d.google.com with SMTP id
 3f1490d57ef6-e0b2d2e7dc9so2211767276.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 08:04:50 -0700 (PDT)
Received: from shine.ofnet.lan ([2601:cb:4001:dd00:4607:a3c8:56f1:778a])
 by smtp.gmail.com with ESMTPSA id
 3f1490d57ef6-e0b29f1c248sm1852374276.6.2024.07.29.08.04.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 08: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: e68f81e1-4dbb-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722265488; x=1722870288; 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=SKl4Me2z0mrDM66JsCXjWuDWO0RAfsJJlEIk4qi0i7c=;
        b=AQ33t0cuzvL+7O0eOpsWNPL/GPCLXp7Rp1al1RgH4wOEIO/xsZFYo4KThoR9Eg5EE6
         F+puMVZfdJZ2ttMBlPtqSAAaO+sWg9a/uRGD63N3NY7V/RclGKpCYd8gllG1jeOB3Sj1
         WfhkRGiGNYaTsWlFBzmgjMzwLiO+iSDdacJ4aSMiKF6KaxQWyYPO+ZUX9N3M8IjBYXmr
         P10l6Vl4aVlEjoJRUiiEjkup5GHs9POhI0s4EJKqiXqob0N45ZVubaLMftYg+zw+ENUs
         +TognGL1hibqPa0ZQPANXjC4tt4MZWjItKbamuv9/NzMJuETTThMqZ31MLdan6h6nRoT
         vl+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722265488; x=1722870288;
        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=SKl4Me2z0mrDM66JsCXjWuDWO0RAfsJJlEIk4qi0i7c=;
        b=WaFi0xyJ56TRtClXLvGHoQ43CfrjNJePlbiEwYSg2ExrK54XaWfJWG1810kNwKWmrd
         S1T6vaDfiYoyWGMgYFrmpwvZcRDnf3UbPsgFZ0/SljJEFq68Lh26i7QE4a/E1/O7ykBE
         MHiLVJuNpQRQgBWUnSW2ShSSqw24ZyGJ/jeeEIaSAjEDqItZRj+k/IxNt/J5j94aIFvO
         yamUjsVbPTAa/MEb5A7oWGqXKYEve8USLkYh2NoBGhGkywPhtVFnZyCGKZpEQDUyk3GJ
         t2bynwc3a8DqNuHdrzeSvMSKsj2TfUcRtd8a1Trn7yNIR+d3mifmAhO+6tn9qqcAWegf
         eKig==
X-Gm-Message-State: AOJu0YxmzOcOvRc+n0xiJttSR0XFxiR8ovWW1tS9iOWii+AxVe5Hkhjg
	LWrvEw16L8yFpSowEA3zsc26KBkHDtXbh2WTvCiQq0tpCDX7gnt0KmYdOQ==
X-Google-Smtp-Source: AGHT+IFJxGIX4lu9G8X1djtrH2ajDN1X0+J4aRn14wrvSFoLECvMaqUQerddHSdNYY7B2Gz5b+88rw==
X-Received: by 2002:a05:6902:1883:b0:e03:577d:a354 with SMTP id 3f1490d57ef6-e0b545d5e82mr8406263276.49.1722265487657;
        Mon, 29 Jul 2024 08:04:47 -0700 (PDT)
From: Jason Andryuk <jandryuk@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Jason Andryuk <jandryuk@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v5] libxl: Enable stubdom cdrom changing
Date: Mon, 29 Jul 2024 11:04:12 -0400
Message-Id: <20240729150412.64285-1-jandryuk@gmail.com>
X-Mailer: git-send-email 2.40.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

To change the cd-rom medium, libxl will:
 - QMP eject the medium from QEMU
 - block-detach the old PV disk
 - block-attach the new PV disk
 - QMP change the medium to the new PV disk by fdset-id

The QMP code is reused, and remove and attach are implemented here.

The stubdom must internally handle adding /dev/xvdc to the appropriate
fdset.  libxl in dom0 doesn't see the result of adding to the fdset as
that is internal to the stubdom, but the fdset's opaque fields will be
set to stub-devid:$devid, so libxl can identify it.  $devid is common
between the stubdom and libxl, so it can be identified on both side.
The stubdom will name the device xvdY regardless of the guest name hdY,
sdY, or xvdY, but the stubdom will be assigned the same devid
facilitating lookup.  Because the stubdom add-fd call is asynchronous,
libxl needs to poll query-fdsets to identify when add-fd has completed.

For cd-eject, we still need to attach the empty vbd.  This is necessary
since xenstore is used to determine that hdc exists.  Otherwise after
eject, hdc would be gone and the cd-insert would fail to find the drive
to insert new media.

Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
---
QEMU inside the stubdom can be sandboxed disallowing opening the devices
by path name, so QMP add-fd is used like with dom0 QEMU depriv.

v1 allowed ERROR_JSON_CONFIG_EMPTY "because a stubdom don't have a json
config," but it is re-introduced in v2 since the guest should be acted
on.  It seems fine in testing.  The missing JSON was probably from
OpenXT having disabled JSON configs in the past.

v2
Use query-fdsets for removal and addition - stub-devid:$devid
Re-use aodev instead of 2nd aodev_del
Rename some functions
Support sdX vdevs
Get stubdomid from cis->disk_domid in stubdom callbacks
Use if (rc) not if (rc != 0)
Remove comment about libxl_device_disk_remove
Use EGC_GC not STATE_AO_GC
Re-work and eliminate cdrom_insert_stubdom_query_fdset_retry
Change some messages
Allow missing removal fdset in case it wasn't added during startup.
Drop LOGD(... rc=%d)

v3:
Remove LOG DEBUGs
s/timeout_retry/retry_timer/
Init stubdom_fdset = -1 and use as flag to pase fdset-id
Drop AO_GC
Avoid non-error goto
Expect ERROR_TIMEOUT as non-error
Drop some comments
close payload_fd and set to -1
Remove limit on query-fdset retries

By removing the limit on query-fdset retries, we lose an explicity error
message for the stubdom not performing the add-fd, but we give more time
which may let more cases succeed.

v4:
Add "must be last" in cdrom_insert_stubdom_parse_fdset_rm()
Add "must be last" in cdrom_insert_stubdom_disk_add_cb()
Move ERROR_NOTFOUND handling earlier in cdrom_insert_stubdom_parse_fdset()

v5:
Add missing return
Add Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
---
 docs/misc/stubdom.txt         |  10 +
 tools/libs/light/libxl_disk.c | 383 ++++++++++++++++++++++++++++++++--
 2 files changed, 372 insertions(+), 21 deletions(-)

diff --git a/docs/misc/stubdom.txt b/docs/misc/stubdom.txt
index c717a95d17..64c220db20 100644
--- a/docs/misc/stubdom.txt
+++ b/docs/misc/stubdom.txt
@@ -127,6 +127,16 @@ Limitations:
  - at most 26 emulated disks are supported (more are still available as PV disks)
  - graphics output (VNC/SDL/Spice) not supported
 
+CD-ROM changing:
+
+To change the CD-ROM medium, libxl will:
+ - QMP eject the medium from QEMU
+ - block-detach the old PV disk
+ - block-attach the new PV disk
+ - QMP change the medium to the new PV disk by fdset-id
+
+The stubdom must internally add /dev/xvdc to an fdset in QEMU with opaque set
+to "stub-devid:$devid".  libxl will lookup the fdset with that string.
 
                                    PV-GRUB
                                    =======
diff --git a/tools/libs/light/libxl_disk.c b/tools/libs/light/libxl_disk.c
index 1f1e5c6567..da1d973bf5 100644
--- a/tools/libs/light/libxl_disk.c
+++ b/tools/libs/light/libxl_disk.c
@@ -829,21 +829,118 @@ int libxl_device_disk_getinfo(libxl_ctx *ctx, uint32_t domid,
     return rc;
 }
 
+/*
+ * Search through the query-fdsets JSON looking for a matching devid.
+ *
+ * If found, return the fdset-id integer (>=0).
+ *
+ * If not found, return ERROR_NOTFOUND.
+ *
+ * On error, return libxl ERROR_*.
+ */
+static int query_fdsets_find_fdset(libxl__gc *gc,
+                                   const libxl__json_object *response,
+                                   int devid)
+{
+    const libxl__json_object *fdset;
+    const char *needle = GCSPRINTF("stub-devid:%d", devid);
+    int i, j, rc;
+
+    /* query-fdsets returns:
+     * [
+     *   { "fds": [
+     *       { "fd": 30,
+     *         "opaque": "stub-devid:2080"
+     *       }
+     *     ],
+     *     "fdset-id": 1
+     *   }
+     * ]
+     */
+    for (i = 0; (fdset = libxl__json_array_get(response, i)); i++) {
+        const libxl__json_object *fdset_id;
+        const libxl__json_object *fds;
+        const libxl__json_object *fd;
+
+        fdset_id = libxl__json_map_get("fdset-id", fdset, JSON_INTEGER);
+        if (!fdset_id) {
+            rc = ERROR_QEMU_API;
+            goto out;
+        }
+
+        fds = libxl__json_map_get("fds", fdset, JSON_ARRAY);
+        if (!fds) {
+            rc = ERROR_QEMU_API;
+            goto out;
+        }
+        for (j = 0; (fd = libxl__json_array_get(fds, j)); j++) {
+            const libxl__json_object *fd_num;
+            const libxl__json_object *opaque;
+            const char *opaque_str;
+
+            fd_num = libxl__json_map_get("fd", fd, JSON_INTEGER);
+            if (!fd_num) {
+                rc = ERROR_QEMU_API;
+                goto out;
+            }
+            opaque = libxl__json_map_get("opaque", fd, JSON_STRING);
+            if (!opaque) {
+                continue;
+            }
+
+            opaque_str = libxl__json_object_get_string(opaque);
+            if (strcmp(opaque_str, needle) == 0) {
+                return libxl__json_object_get_integer(fdset_id);
+            }
+        }
+    }
+    rc = ERROR_NOTFOUND;
+
+ out:
+    return rc;
+}
+
 typedef struct {
     libxl__ao *ao;
+    libxl__ao_device aodev;
     libxl_domid domid;
+    libxl_domid disk_domid;
     libxl_device_disk *disk;
     libxl_device_disk disk_saved;
     libxl__ev_slowlock qmp_lock;
     int dm_ver;
     libxl__ev_time time;
+    libxl__ev_time retry_timer;
     libxl__ev_qmp qmp;
+    int stubdom_fdset;
 } libxl__cdrom_insert_state;
 
 static void cdrom_insert_lock_acquired(libxl__egc *, libxl__ev_slowlock *,
                                        int rc);
 static void cdrom_insert_qmp_connected(libxl__egc *, libxl__ev_qmp *,
                                        const libxl__json_object *, int rc);
+static void cdrom_insert_stubdom_query_fdset_rm(libxl__egc *egc,
+                                                libxl__ev_qmp *qmp,
+                                                const libxl__json_object *resp,
+                                                int rc);
+static void cdrom_insert_stubdom_parse_fdset_rm(libxl__egc *egc,
+                                                libxl__ev_qmp *qmp,
+                                                const libxl__json_object *resp,
+                                                int rc);
+static void cdrom_insert_stubdom_ejected(libxl__egc *egc, libxl__ev_qmp *,
+                                         const libxl__json_object *, int rc);
+static void cdrom_insert_stubdom_disk_remove_cb(libxl__egc *egc,
+                                                 libxl__ao_device *aodev);
+static void cdrom_insert_stubdom_disk_add_cb(libxl__egc *egc,
+                                             libxl__ao_device *aodev);
+static void cdrom_insert_stubdom_query_fdset(libxl__egc *egc,
+                                             libxl__ev_time *ev,
+                                             const struct timeval *abs,
+                                             int rc);
+static void cdrom_insert_stubdom_parse_fdset(libxl__egc *egc,
+                                             libxl__ev_qmp *qmp,
+                                             const libxl__json_object *response,
+                                             int rc);
 static void cdrom_insert_ejected(libxl__egc *egc, libxl__ev_qmp *,
                                  const libxl__json_object *, int rc);
 static void cdrom_insert_addfd_cb(libxl__egc *egc, libxl__ev_qmp *,
@@ -865,6 +962,7 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
     libxl_device_disk *disks = NULL;
     int rc;
     libxl__cdrom_insert_state *cis;
+    libxl_domid stubdomid;
 
     GCNEW(cis);
     cis->ao = ao;
@@ -876,6 +974,8 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
     cis->qmp_lock.ao = ao;
     cis->qmp_lock.domid = domid;
     libxl__ev_time_init(&cis->time);
+    libxl__ev_time_init(&cis->retry_timer);
+    cis->stubdom_fdset = -1;
     libxl__ev_qmp_init(&cis->qmp);
     cis->qmp.ao = ao;
     cis->qmp.domid = domid;
@@ -892,12 +992,6 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
         goto out;
     }
 
-    if (libxl_get_stubdom_id(ctx, domid) != 0) {
-        LOGD(ERROR, domid, "cdrom-insert doesn't work for stub domains");
-        rc = ERROR_INVAL;
-        goto out;
-    }
-
     cis->dm_ver = libxl__device_model_version_running(gc, domid);
     if (cis->dm_ver == -1) {
         LOGD(ERROR, domid, "Cannot determine device model version");
@@ -905,7 +999,22 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
         goto out;
     }
 
-    disks = libxl__device_list(gc, &libxl__disk_devtype, domid, &num);
+    stubdomid = libxl_get_stubdom_id(CTX, cis->domid);
+    if (stubdomid == 0) {
+        cis->disk_domid = domid;
+    } else {
+        cis->disk_domid = stubdomid;
+        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))
         {
@@ -920,7 +1029,7 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
         goto out;
     }
 
-    rc = libxl__device_disk_setdefault(gc, domid, disk, false);
+    rc = libxl__device_disk_setdefault(gc, cis->disk_domid, disk, false);
     if (rc) goto out;
 
     if (!disk->pdev_path) {
@@ -994,7 +1103,12 @@ static void cdrom_insert_qmp_connected(libxl__egc *egc, libxl__ev_qmp *qmp,
         QMP_PARAMETERS_SPRINTF(&args, "id", "ide-%i", devid);
     else
         QMP_PARAMETERS_SPRINTF(&args, "device", "ide-%i", devid);
-    qmp->callback = cdrom_insert_ejected;
+
+    if (libxl_get_stubdom_id(CTX, cis->domid))
+        qmp->callback = cdrom_insert_stubdom_query_fdset_rm;
+    else
+        qmp->callback = cdrom_insert_ejected;
+
     rc = libxl__ev_qmp_send(egc, qmp, "eject", args);
     if (rc) goto out;
     return;
@@ -1002,6 +1116,210 @@ out:
     cdrom_insert_done(egc, cis, rc); /* must be last */
 }
 
+static void cdrom_insert_stubdom_query_fdset_rm(libxl__egc *egc,
+                                                libxl__ev_qmp *qmp,
+                                                const libxl__json_object *resp,
+                                                int rc)
+{
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(qmp, *cis, qmp);
+
+    if (rc) goto out;
+
+    /* Only called for qemu-xen/linux stubdom. */
+    assert(cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
+
+    cis->qmp.callback = cdrom_insert_stubdom_parse_fdset_rm;
+
+    rc = libxl__ev_qmp_send(egc, &cis->qmp, "query-fdsets", NULL);
+    if (rc) goto out;
+
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, rc); /* must be last */
+}
+
+static void cdrom_insert_stubdom_parse_fdset_rm(libxl__egc *egc,
+                                                libxl__ev_qmp *qmp,
+                                                const libxl__json_object *resp,
+                                                int rc)
+{
+    EGC_GC;
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(qmp, *cis, qmp);
+    int devid;
+    int fdset;
+
+    if (rc) goto out;
+
+    /* Only called for qemu-xen/linux stubdom. */
+    assert(cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
+
+    devid = libxl__device_disk_dev_number(cis->disk->vdev, NULL, NULL);
+    fdset = query_fdsets_find_fdset(gc, resp, devid);
+    if (fdset < 0) {
+        rc = fdset;
+        goto out;
+    }
+
+    LOGD(DEBUG, cis->domid, "Found fdset %d", fdset);
+
+    libxl__json_object *args = NULL;
+
+    libxl__qmp_param_add_integer(gc, &args, "fdset-id", fdset);
+
+    cis->qmp.callback = cdrom_insert_stubdom_ejected;
+
+    rc = libxl__ev_qmp_send(egc, &cis->qmp, "remove-fd", args);
+    if (rc) goto out;
+
+    return;
+
+ out:
+    if (rc == ERROR_NOTFOUND) {
+        LOGD(DEBUG, cis->domid, "No fdset found - skipping remove-fd");
+        cdrom_insert_stubdom_ejected(egc, qmp, resp, 0); /* must be last */
+    } else {
+        cdrom_insert_done(egc, cis, rc); /* must be last */
+    }
+}
+
+
+static void cdrom_insert_stubdom_ejected(libxl__egc *egc, libxl__ev_qmp *qmp,
+                                         const libxl__json_object *response,
+                                         int rc)
+{
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(qmp, *cis, qmp);
+    libxl__device *device;
+    STATE_AO_GC(cis->ao);
+    domid_t stubdomid = cis->disk_domid;
+
+    if (rc) goto out;
+
+    GCNEW(device);
+    rc = libxl__device_from_disk(gc, stubdomid, cis->disk, device);
+    if (rc) goto out;
+
+    /* stubdom PV block dev eject */
+    libxl__prepare_ao_device(ao, &cis->aodev);
+    cis->aodev.action = LIBXL__DEVICE_ACTION_REMOVE;
+    cis->aodev.dev = device;
+    cis->aodev.callback = cdrom_insert_stubdom_disk_remove_cb;
+    cis->aodev.force.flag = LIBXL__FORCE_OFF;
+    libxl__initiate_device_generic_remove(egc, &cis->aodev);
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, rc); /* must be last */
+}
+
+static void cdrom_insert_stubdom_disk_remove_cb(libxl__egc *egc,
+                                                 libxl__ao_device *aodev)
+{
+    STATE_AO_GC(aodev->ao);
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(aodev, *cis, aodev);
+    domid_t stubdomid = cis->disk_domid;
+
+    if (aodev->rc) {
+        LOGD(ERROR, aodev->dev->domid, "Unable to remove stubdom PV disk id %u",
+             aodev->dev->devid);
+        goto out;
+    }
+
+    /* block dev insert - this may be inserting an empty disk for eject. */
+    libxl__prepare_ao_device(ao, &cis->aodev);
+    /* set an ao callback to end up in cdrom_insert_ejected */
+    cis->aodev.callback = cdrom_insert_stubdom_disk_add_cb;
+    libxl__device_disk_add(egc, stubdomid, cis->disk, &cis->aodev);
+
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, aodev->rc); /* must be last */
+}
+
+static void cdrom_insert_stubdom_disk_add_cb(libxl__egc *egc,
+                                             libxl__ao_device *aodev)
+{
+    EGC_GC;
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(aodev, *cis, aodev);
+
+    if (aodev->rc) {
+        LOGD(ERROR, aodev->dev->domid, "Unable to insert stubdom PV disk id %u",
+             aodev->dev->devid);
+        goto out;
+    }
+
+    cdrom_insert_stubdom_query_fdset(egc, &cis->retry_timer, NULL,
+                                     ERROR_TIMEDOUT);
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, aodev->rc); /* must be last */
+}
+
+static void cdrom_insert_stubdom_query_fdset(libxl__egc *egc,
+                                             libxl__ev_time *ev,
+                                             const struct timeval *abs,
+                                             int rc)
+{
+    EGC_GC;
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(ev, *cis, retry_timer);
+
+    if (rc != ERROR_TIMEDOUT) goto out;
+
+    /* Only called for qemu-xen/linux stubdom. */
+    assert(cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
+
+    cis->qmp.callback = cdrom_insert_stubdom_parse_fdset;
+
+    rc = libxl__ev_qmp_send(egc, &cis->qmp, "query-fdsets", NULL);
+    if (rc) goto out;
+
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, rc); /* must be last */
+}
+
+static void cdrom_insert_stubdom_parse_fdset(libxl__egc *egc,
+                                             libxl__ev_qmp *qmp,
+                                             const libxl__json_object *response,
+                                             int rc)
+{
+    EGC_GC;
+    libxl__cdrom_insert_state *cis = CONTAINER_OF(qmp, *cis, qmp);
+    int devid;
+    int fdset;
+
+    if (rc) goto out;
+
+    /* Only called for qemu-xen/linux stubdom. */
+    assert(cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN);
+
+    devid = libxl__device_disk_dev_number(cis->disk->vdev, NULL, NULL);
+    fdset = query_fdsets_find_fdset(gc, response, devid);
+    if (fdset == ERROR_NOTFOUND) {
+        /* Give the stubdom a little time before trying again. */
+        rc = libxl__ev_time_register_rel(cis->ao, &cis->retry_timer,
+                                         cdrom_insert_stubdom_query_fdset,
+                                         200);
+        if (rc) goto out;
+        return;
+    } else if (fdset < 0) {
+        rc = fdset;
+        goto out;
+    }
+
+    cis->stubdom_fdset = fdset;
+
+    LOGD(DEBUG, cis->domid, "Found fdset %d", cis->stubdom_fdset);
+    cdrom_insert_ejected(egc, &cis->qmp, NULL, rc);
+    return;
+
+ out:
+    cdrom_insert_done(egc, cis, rc); /* must be last */
+}
+
 static void cdrom_insert_ejected(libxl__egc *egc,
                                  libxl__ev_qmp *qmp,
                                  const libxl__json_object *response,
@@ -1026,7 +1344,7 @@ static void cdrom_insert_ejected(libxl__egc *egc,
 
     if (rc) goto out;
 
-    rc = libxl__device_from_disk(gc, domid, disk, &device);
+    rc = libxl__device_from_disk(gc, cis->disk_domid, disk, &device);
     if (rc) goto out;
     be_path = libxl__device_backend_path(gc, &device);
     libxl_path = libxl__device_libxl_path(gc, &device);
@@ -1082,6 +1400,7 @@ static void cdrom_insert_ejected(libxl__egc *egc,
     if (rc) goto out;
 
     if (cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN &&
+        libxl_get_stubdom_id(CTX, cis->domid) == 0 &&
         disk->format != LIBXL_DISK_FORMAT_EMPTY) {
         libxl__json_object *args = NULL;
 
@@ -1094,7 +1413,7 @@ static void cdrom_insert_ejected(libxl__egc *egc,
             goto out;
         }
 
-        /* This free form parameter is not use by QEMU or libxl. */
+        /* This free form parameter is not used by QEMU or non-stubdom libxl. */
         QMP_PARAMETERS_SPRINTF(&args, "opaque", "%s:%s",
                                libxl_disk_format_to_string(disk->format),
                                disk->pdev_path);
@@ -1116,7 +1435,15 @@ out:
         cdrom_insert_done(egc, cis, rc); /* must be last */
     } else if (!has_callback) {
         /* Only called if no asynchronous callback are set. */
-        cdrom_insert_inserted(egc, qmp, NULL, 0); /* must be last */
+        if (libxl_get_stubdom_id(CTX, cis->domid) &&
+            disk->format != LIBXL_DISK_FORMAT_EMPTY) {
+            LOGD(DEBUG, cis->domid,
+                 "stubdom %d needs to perform add-fd internally",
+                 libxl_get_stubdom_id(CTX, cis->domid));
+            cdrom_insert_addfd_cb(egc, qmp, NULL, 0); /* must be last */
+        } else  {
+            cdrom_insert_inserted(egc, qmp, NULL, 0); /* must be last */
+        }
     }
 }
 
@@ -1135,17 +1462,25 @@ static void cdrom_insert_addfd_cb(libxl__egc *egc,
     /* convenience aliases */
     libxl_device_disk *disk = cis->disk;
 
-    close(qmp->payload_fd);
+    if (qmp->payload_fd >= 0)
+    {
+        close(qmp->payload_fd);
+    }
     qmp->payload_fd = -1;
 
     if (rc) goto out;
 
-    o = libxl__json_map_get("fdset-id", response, JSON_INTEGER);
-    if (!o) {
-        rc = ERROR_FAIL;
-        goto out;
+    /* response non-NULL only for non-stubdom */
+    if (cis->stubdom_fdset == -1) {
+        o = libxl__json_map_get("fdset-id", response, JSON_INTEGER);
+        if (!o) {
+            rc = ERROR_FAIL;
+            goto out;
+        }
+        fdset = libxl__json_object_get_integer(o);
+    } else {
+        fdset = cis->stubdom_fdset;
     }
-    fdset = libxl__json_object_get_integer(o);
 
     devid = libxl__device_disk_dev_number(disk->vdev, NULL, NULL);
     qmp->callback = cdrom_insert_inserted;
@@ -1158,8 +1493,13 @@ static void cdrom_insert_addfd_cb(libxl__egc *egc,
     if (libxl__qmp_ev_qemu_compare_version(qmp, 2, 8, 0) >= 0) {
         QMP_PARAMETERS_SPRINTF(&args, "id", "ide-%i", devid);
         QMP_PARAMETERS_SPRINTF(&args, "filename", "/dev/fdset/%d", fdset);
-        libxl__qmp_param_add_string(gc, &args, "format",
-            libxl__qemu_disk_format_string(disk->format));
+        if (response) {
+            libxl__qmp_param_add_string(gc, &args, "format",
+                libxl__qemu_disk_format_string(disk->format));
+        } else {
+            /* Stubdom is using blockdev /dev/xvd* */
+            libxl__qmp_param_add_string(gc, &args, "format", "host_device");
+        }
         rc = libxl__ev_qmp_send(egc, qmp, "blockdev-change-medium", args);
     } else {
         QMP_PARAMETERS_SPRINTF(&args, "device", "ide-%i", devid);
@@ -1196,7 +1536,7 @@ static void cdrom_insert_inserted(libxl__egc *egc,
 
     if (rc) goto out;
 
-    rc = libxl__device_from_disk(gc, domid, disk, &device);
+    rc = libxl__device_from_disk(gc, cis->disk_domid, disk, &device);
     if (rc) goto out;
     be_path = libxl__device_backend_path(gc, &device);
     libxl_path = libxl__device_libxl_path(gc, &device);
@@ -1281,6 +1621,7 @@ static void cdrom_insert_done(libxl__egc *egc,
     EGC_GC;
 
     libxl__ev_time_deregister(gc, &cis->time);
+    libxl__ev_time_deregister(gc, &cis->retry_timer);
     libxl__ev_qmp_dispose(gc, &cis->qmp);
     if (cis->qmp.payload_fd >= 0) close(cis->qmp.payload_fd);
     libxl__ev_slowlock_unlock(gc, &cis->qmp_lock);
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 15:29:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 15:29:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766912.1177449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYSIw-00045N-9q; Mon, 29 Jul 2024 15:28:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766912.1177449; Mon, 29 Jul 2024 15:28: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 1sYSIw-00045G-7O; Mon, 29 Jul 2024 15:28:54 +0000
Received: by outflank-mailman (input) for mailman id 766912;
 Mon, 29 Jul 2024 15: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYSIv-00045A-1k
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 15:28:53 +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 4251602e-4dbf-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 17:28:52 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-58ef19aa69dso4117692a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 08:28: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
 a640c23a62f3a-a7acab5151csm519880766b.74.2024.07.29.08.28.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 08:28: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: 4251602e-4dbf-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722266931; x=1722871731; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8sev3bBuQNQu80TeieCkWveOqmk53YYSZ7PX3Na1KUc=;
        b=cylvhAaaR/YuE9bGaSF6FN77UoNYj9C9mpoX8yQCf+5dDSW62kABXlUtjXdue3zPSo
         4mj5dI8/tk0krPz08M8bnNTsjJwD3o2zNMHncrGpCpsMRIVjOv0RiSuhxMvHY+OKxDn8
         nS3/nkdHa9vzDNPyjZ2ohhykkkrFrr7xA2JoGcgzXn0+tYikEbJycjFzXKg4QFyvM5X8
         j9X54JxBDRFhdoQ2KBzgv26Nus6BwAhTuQa1lD9NfJsRdSPH84TO1Y+4ch++sV9HtKdO
         xqG9UU1D9D+mug0rhFZjlTL5nF5dbIyikLn4N/iEw1NuGjBi7BsvhOeUsfBVnxruE8fo
         lFQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722266931; x=1722871731;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8sev3bBuQNQu80TeieCkWveOqmk53YYSZ7PX3Na1KUc=;
        b=s1o8R6/3sLV/h4ILtXMobwpJARmR53chJpm6CY8Tl3DE1B33bPvgpbIrFu3JsY/czk
         TOaxuIbknyZIy1LJaDZtqywLO+82eBD+BN93UnPCWv3jRIZAiaaUkvLItjfqko8YwlJ7
         kLlswKx9HwEQaUFpjqTVjTnAn+YrMwSbr4tb51aZlU4gd9eQP1zhXq75Z5vtUJB863jU
         oS5mqDp8m9LIF2KtD+3zlf3FrSQlhBjudbSQ2UFhXh34X/Sg9WNwJPwGV7BJmCbph4n1
         Y8BzBPIWGw2jNWcRSWgGORWAI5NjqCy6JyneNpBGbCvRvclQVtXKZBPPPqJ2MMH32AcC
         HHMw==
X-Forwarded-Encrypted: i=1; AJvYcCVjSzMDMKwS7WJHTCzIs4g+ucBkNH4bEicpoo4H5OOGXUTkGPu4BymTWarHlgghjgFAWu9yOevSS7rKGrxgK3YYZchHu457ppCVGD5JcKs=
X-Gm-Message-State: AOJu0YzOxqzLIk/MdmKJJzSaX0kmpDtSRnWlEY3ilRX4mYvn70YAIuSF
	92JKjD97qYkSix5owJDV2q3R/V4gH97yNpZFoNZ7/hi/10IjS66U31F2wEOB95l7G027vJSPIuc
	=
X-Google-Smtp-Source: AGHT+IEr/4ovTkjmjNyaBWE92JPKvrnHDcmomEMMDvgJH8Gm9uMpnJgUmSuZ2RQE2feOgkjWy8DOKQ==
X-Received: by 2002:a17:907:e8a:b0:a7a:af5d:f30b with SMTP id a640c23a62f3a-a7d401e02c2mr401844566b.66.1722266931198;
        Mon, 29 Jul 2024 08:28:51 -0700 (PDT)
Message-ID: <113b9d4a-d31c-4491-bf8c-96ac97d98f45@suse.com>
Date: Mon, 29 Jul 2024 17:28:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/9] xen/riscv: introduce functionality to work with
 cpu info
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <4ea9005d4209e24df9b30a7b3c282276084a3cf1.1721834549.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: <4ea9005d4209e24df9b30a7b3c282276084a3cf1.1721834549.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 17:31, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/processor.h
> +++ b/xen/arch/riscv/include/asm/processor.h
> @@ -12,8 +12,39 @@
>  
>  #ifndef __ASSEMBLY__
>  
> -/* TODO: need to be implemeted */
> -#define smp_processor_id() 0
> +#include <xen/bug.h>
> +#include <xen/types.h>
> +
> +register struct pcpu_info *tp asm ("tp");
> +
> +struct pcpu_info {
> +    unsigned int processor_id;
> +};
> +
> +/* tp points to one of these */
> +extern struct pcpu_info pcpu_info[NR_CPUS];
> +
> +#define get_processor_id()      (tp->processor_id)
> +#define set_processor_id(id)    do { \
> +    tp->processor_id = id;           \

Nit: Parentheses around id please.

> +} while(0)

While often we omit the blanks inside the parentheses for such
constructs, the one ahead of the opening paren should still be there.

> +static inline unsigned int smp_processor_id(void)
> +{
> +    unsigned int id;
> +
> +    id = get_processor_id();
> +
> +    /*
> +     * Technically the hartid can be greater than what a uint can hold.
> +     * If such a system were to exist, we will need to change
> +     * the smp_processor_id() API to be unsigned long instead of
> +     * unsigned int.
> +     */
> +    BUG_ON(id > UINT_MAX);

Compilers may complaing about this condition being always false. But: Why
do you check against UINT_MAX, not against NR_CPUS? It's not the hart ID
your retrieving get_processor_id(), but Xen's, isn't it? Even if I'm
missing something here, ...

> --- a/xen/arch/riscv/include/asm/smp.h
> +++ b/xen/arch/riscv/include/asm/smp.h
> @@ -5,6 +5,8 @@
>  #include <xen/cpumask.h>
>  #include <xen/percpu.h>
>  
> +#define INVALID_HARTID UINT_MAX

... this implies that the check above would need to use >=.

> @@ -14,6 +16,14 @@ DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);
>   */
>  #define park_offline_cpus false
>  
> +void smp_setup_processor_id(unsigned long boot_cpu_hartid);
> +
> +/*
> + * Mapping between linux logical cpu index and hartid.
> + */
> +extern unsigned long __cpuid_to_hartid_map[NR_CPUS];
> +#define cpuid_to_hartid_map(cpu) __cpuid_to_hartid_map[cpu]

May I please ask that there be no new variables with double underscores
at the front or any other namespacing violations?

> --- a/xen/arch/riscv/setup.c
> +++ b/xen/arch/riscv/setup.c
> @@ -40,6 +40,19 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>  {
>      remove_identity_mapping();
>  
> +    /*
> +     * tp register contains an address of physical cpu information.
> +     * So write physical CPU info of boot cpu to tp register
> +     * It will be used later by get_processor_id() to get process_id ( look at

process_id?

> +     * <asm/processor.h> ):
> +     *   #define get_processor_id()    (tp->processor_id)
> +     */
> +    asm volatile ("mv tp, %0" : : "r"((unsigned long)&pcpu_info[0]));

Nit: Blanks missing.

> --- /dev/null
> +++ b/xen/arch/riscv/smp.c
> @@ -0,0 +1,4 @@
> +#include <xen/smp.h>
> +
> +/* tp points to one of these per cpu */
> +struct pcpu_info pcpu_info[NR_CPUS];
> \ No newline at end of file

Please correct this.

> --- /dev/null
> +++ b/xen/arch/riscv/smpboot.c
> @@ -0,0 +1,12 @@
> +#include <xen/init.h>
> +#include <xen/sections.h>
> +#include <xen/smp.h>
> +
> +unsigned long __cpuid_to_hartid_map[NR_CPUS] __ro_after_init = {
> +    [0 ... NR_CPUS-1] = INVALID_HARTID

Nit: Blanks around - please.

> +};
> +
> +void __init smp_setup_processor_id(unsigned long boot_cpu_hartid)
> +{
> +    cpuid_to_hartid_map(0) = boot_cpu_hartid;
> +}

The function name suggests this can be used for all CPUs, but the
code is pretty clear abut this being for the boot CPU only.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 15:40:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 15:40:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766929.1177459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYSUA-0007ct-9v; Mon, 29 Jul 2024 15:40:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766929.1177459; Mon, 29 Jul 2024 15:40:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYSUA-0007cm-7B; Mon, 29 Jul 2024 15:40:30 +0000
Received: by outflank-mailman (input) for mailman id 766929;
 Mon, 29 Jul 2024 15:40:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=U+rL=O5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYSU8-0007cb-UF
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 15:40:28 +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 e0ff2571-4dc0-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 17:40:27 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5af326eddb2so5092496a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 08:40:27 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad41027sm522974466b.122.2024.07.29.08.40.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 08:40: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: e0ff2571-4dc0-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722267627; x=1722872427; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hHHOTZKfN5Mg8lHknKrtPcg1fIky6wy2Oya5b6jbNgA=;
        b=inKC5Vf0ytWvKVoCBOhA1GE/UXs55sM5j088B1dThTc7Ff6+yZovQiWPxizdDaBpls
         oLPwv3CqKlIiZ8w69UZFHt2KUszNlqu1mjEKV/vAu2xd25uE6cTBiQTwf64/SejShLm8
         gYGZ3mvQUwsWT0Pbl94SYAVm7m6pIVwurl4Yw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722267627; x=1722872427;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hHHOTZKfN5Mg8lHknKrtPcg1fIky6wy2Oya5b6jbNgA=;
        b=uLqVUoP5e0VW5IkagQl22V4feuBFcr8ewyibjR9KHiRzCHYuRtrWgF4IeZS21Fp5i9
         KeYMN+Tnqo+B6gz7JkkGfgp6LdgN+YRh2NPWj1uQmaaQaOKyC5fxiW1XcbGOKDk/jdH8
         ewbP5bnXdJpSkzL5rB+d+PKzrperwd9pdvN3TKCgNyHnsJBTQ6Gjoq9mXBXXB7sGXQ1R
         xNxb6W5iLfw5VdBFkQx8MbmSs9PrMc7jytvdRA/wYSer6uwI3RZKX5hIkc+DOlha+psa
         9YohcPBbqyMw2wv2NEHBcL7tVqrzyY9mlq2h0T869BMqOEOU/bg8O4jENUivucfuiB3J
         UTpQ==
X-Forwarded-Encrypted: i=1; AJvYcCUZXQck08i0Pa8gmwTvuZZicWlUFGgLt7em5T9wzIrnR089w5aKsJ8bkuEaIrPt398LtJM+vbToQSQUIKkKr8CMo6KqP2QAN2QJj4F2gw4=
X-Gm-Message-State: AOJu0YwGSqBR7GKrk2VmAdYAiRFIA+jNkITmG1rCsAMIbwwLU2Sp3MXj
	UGV+a2fSkPdFx5Jg1eT/0Wk/u/1jRtgNkx/0khoq/kOpObf5ZK4f5sKDuyV5fsNDPI8VoZ39Aru
	d
X-Google-Smtp-Source: AGHT+IGFbTEuU1IeKrRDIbs6G54/h7kmEPRz9J+KeQUlSOO1/oeYmQFvaDGPYx5+U9EXfsE81WXw+A==
X-Received: by 2002:a17:907:1c19:b0:a6f:e03a:99d with SMTP id a640c23a62f3a-a7d3f514a03mr942560466b.0.1722267626965;
        Mon, 29 Jul 2024 08:40:26 -0700 (PDT)
Message-ID: <5e600017-e929-4ebf-b620-1e673b06fc1a@citrix.com>
Date: Mon, 29 Jul 2024 16:40:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 22/22] x86/mm: zero stack on stack switch or reset
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com, Jan Beulich <jbeulich@suse.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-23-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240726152206.28411-23-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/07/2024 4:22 pm, Roger Pau Monne wrote:
> With the stack mapped on a per-CPU basis there's no risk of other CPUs being
> able to read the stack contents, but vCPUs running on the current pCPU could
> read stack rubble from operations of previous vCPUs.
>
> The #DF stack is not zeroed because handling of #DF results in a panic.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
>  xen/arch/x86/include/asm/current.h | 30 +++++++++++++++++++++++++++++-
>  1 file changed, 29 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
> index 75b9a341f814..02b4118b03ef 100644
> --- a/xen/arch/x86/include/asm/current.h
> +++ b/xen/arch/x86/include/asm/current.h
> @@ -177,6 +177,14 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>  # define SHADOW_STACK_WORK ""
>  #endif
>  
> +#define ZERO_STACK                                              \
> +    "test %[stk_size], %[stk_size];"                            \
> +    "jz .L_skip_zeroing.%=;"                                    \
> +    "std;"                                                      \
> +    "rep stosb;"                                                \
> +    "cld;"                                                      \
> +    ".L_skip_zeroing.%=:"
> +
>  #if __GNUC__ >= 9
>  # define ssaj_has_attr_noreturn(fn) __builtin_has_attribute(fn, __noreturn__)
>  #else
> @@ -187,10 +195,24 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>  #define switch_stack_and_jump(fn, instr, constr)                        \
>      ({                                                                  \
>          unsigned int tmp;                                               \
> +        bool zero_stack = current->domain->arch.asi;                    \
>          BUILD_BUG_ON(!ssaj_has_attr_noreturn(fn));                      \
> +        ASSERT(IS_ALIGNED((unsigned long)guest_cpu_user_regs() -        \
> +                          PRIMARY_STACK_SIZE +                          \
> +                          sizeof(struct cpu_info), PAGE_SIZE));         \
> +        if ( zero_stack )                                               \
> +        {                                                               \
> +            unsigned long stack_top = get_stack_bottom() &              \
> +                                      ~(STACK_SIZE - 1);                \
> +                                                                        \
> +            clear_page((void *)stack_top + IST_MCE * PAGE_SIZE);        \
> +            clear_page((void *)stack_top + IST_NMI * PAGE_SIZE);        \
> +            clear_page((void *)stack_top + IST_DB  * PAGE_SIZE);        \
> +        }                                                               \
>          __asm__ __volatile__ (                                          \
>              SHADOW_STACK_WORK                                           \
>              "mov %[stk], %%rsp;"                                        \
> +            ZERO_STACK                                                  \
>              CHECK_FOR_LIVEPATCH_WORK                                    \
>              instr "[fun]"                                               \
>              : [val] "=&r" (tmp),                                        \
> @@ -201,7 +223,13 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>                ((PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8),               \
>                [stack_mask] "i" (STACK_SIZE - 1),                        \
>                _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__,                \
> -                                 __FILE__, NULL)                        \
> +                                 __FILE__, NULL),                       \
> +              /* For stack zeroing. */                                  \
> +              "D" ((void *)guest_cpu_user_regs() - 1),                  \
> +              [stk_size] "c"                                            \
> +              (zero_stack ? PRIMARY_STACK_SIZE - sizeof(struct cpu_info)\
> +                          : 0),                                         \
> +              "a" (0)                                                   \
>              : "memory" );                                               \
>          unreachable();                                                  \
>      })

This looks very expensive.

For starters, switch_stack_and_jump() is used twice in a typical context
switch; once in the schedule tail, and again out of hvm_do_resume().

Furthermore, #MC happen never (to many many significant figures), #DB
happens never for HVM guests (but does happen for PV), and NMIs are
either ~never, or 2Hz which is far less often than the 30ms default
timeslice.

So, the overwhelming majority of the time, those 3 calls to clear_page()
will be re-zeroing blocks of zeroes.

This can probably be avoided by making use of ist_exit (held in %r12) to
only zero an IST stack when leaving it.  This leaves the IRET frame able
to be recovered, but with e.g. RFDS, you can do that irrespective, and
it's not terribly sensitive.


What about shadow stacks?  You're not zeroing those, and while they're
less sensitive than the data stack, there ought to be some reasoning
about them.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 15:52:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 15:52:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766941.1177481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYSfk-0001aE-F0; Mon, 29 Jul 2024 15:52:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766941.1177481; Mon, 29 Jul 2024 15:52:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYSfk-0001a7-C0; Mon, 29 Jul 2024 15:52:28 +0000
Received: by outflank-mailman (input) for mailman id 766941;
 Mon, 29 Jul 2024 15:52: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=U+rL=O5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYSfi-0001a1-Nk
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 15:52:26 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8cb7946e-4dc2-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 17:52:25 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2f035ae1083so48584651fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 08:52:25 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac64eb3111sm5954127a12.69.2024.07.29.08.52.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 08:52: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: 8cb7946e-4dc2-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722268345; x=1722873145; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nv0j4OU+BIienT8K4WyNHHX1Z4IJTt9TYCyx7EZ/HNM=;
        b=ZxBkjCslob+Ia6WTjAAwjlz82pcQ5+kbZ5gFslQv8hfjtxuY8QxOk6j7PbZnev+7Lm
         MsyxWeonbTMzImGPurl6JZhVNJuP9JXxSCZYzzA2ebNZSNZH9mHh104ne99tX9LjZnEo
         ROIoXHkUmAjgXJGthRTg4nHzQBnYvER08nIo0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722268345; x=1722873145;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nv0j4OU+BIienT8K4WyNHHX1Z4IJTt9TYCyx7EZ/HNM=;
        b=Sncq94DAF5aEJwYvLj9+mKRymd4R12OGXjBl8w46TvBUDCVdh6O5rDIhq/yIZdiZS6
         1ZDNnCqe4H8eR3dz7PyOsHV34Stz88BEenSwBkbbejz5Cb+vv5pHB4PL7O+etnfCCHdS
         cfyBVo745oK0psBq+EicRv6gSTf4cFoQM5V3O5Za2jTH09zEK4nuP3xuZLD+8ZtOXtwH
         9vUzIoKPblQ7On4LKnaZup2wZl41ieLK5a6YA3/vCuXN27iBD53AFKr/5oAGVQrbp8Bb
         DUOnqdIA3FsvlabOC3K60bwLqa7K2Jw1MZw/4I0a/QqNc1pFyeydDD2mzIWSN7yCpi28
         7cUA==
X-Forwarded-Encrypted: i=1; AJvYcCXaTvsyZyoZPFtcOSpCIUCdY7KS7JFu9ZSIZb/GRlbAH1msECNwzKoaKxjeTNqA3q8KOjS8xc36m5uJzbcjw30kjDZJVSpbrnyNNt/ADiI=
X-Gm-Message-State: AOJu0YwkQ15e2dhfmDZr8d2H7V15pXtzo3/ARc9s/91Id6qp53IOYigI
	Qo41i4n6eL2ylO4WJxPJmZoa98wDDiAaWgEpXTOQGmfCzWfUZRJ+F7pYZkbJ9B4=
X-Google-Smtp-Source: AGHT+IH+I8Iq3Pr3UNAYqRuieBkDvhYHoUyY6bwV6Li/Jilx8Qb+Vt4k6+/STo6TNi35Q1e6PelghA==
X-Received: by 2002:a2e:9619:0:b0:2ef:2e3f:35da with SMTP id 38308e7fff4ca-2f12ee634famr48998341fa.45.1722268344464;
        Mon, 29 Jul 2024 08:52:24 -0700 (PDT)
Message-ID: <5aad5f48-e32e-4a59-bcef-05adec0ecbec@citrix.com>
Date: Mon, 29 Jul 2024 16:52:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/22] x86/dom0: only disable SMAP for the PV dom0 build
To: Jan Beulich <jbeulich@suse.com>, Roger Pau Monne <roger.pau@citrix.com>
Cc: alejandro.vallejo@cloud.com, xen-devel@lists.xenproject.org
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-4-roger.pau@citrix.com>
 <b1918f51-1ac0-40f8-9174-d8161b2681dd@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <b1918f51-1ac0-40f8-9174-d8161b2681dd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29/07/2024 12:53 pm, Jan Beulich wrote:
> On 26.07.2024 17:21, Roger Pau Monne wrote:
>> The PVH dom0 builder doesn't switch page tables and has no need to run with
>> SMAP disabled.
>>
>> Put the SMAP disabling close to the code region where it's necessary, as it
>> then becomes obvious why switch_cr3_cr4() is required instead of
>> write_ptbase().
>>
>> Note removing SMAP from cr4_pv32_mask is not required, as we never jump into
>> guest context, and hence updating the value of cr4_pv32_mask is not relevant.
> I'm okay-ish with that being dropped, but iirc the goal was to keep the
> variable in sync with CPU state.

Removing SMAP from cr4_pv32_mask is necessary.

Otherwise IST vectors will reactive SMAP behind the back of the dombuilder.

This will probably only manifest in practice in a CONFIG_PV32=y build,
and with a poorly timed NMI.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 15:52:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 15:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766945.1177492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYSgA-00022Y-QO; Mon, 29 Jul 2024 15:52:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766945.1177492; Mon, 29 Jul 2024 15:52: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 1sYSgA-00022R-Ni; Mon, 29 Jul 2024 15:52:54 +0000
Received: by outflank-mailman (input) for mailman id 766945;
 Mon, 29 Jul 2024 15: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=XCGL=O5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYSg9-0001xm-Sd
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 15:52:53 +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 9cb701e8-4dc2-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 17:52:52 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a7a8caef11fso400932966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 08:52: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
 a640c23a62f3a-a7acad9127esm531811266b.149.2024.07.29.08.52.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 08:52: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: 9cb701e8-4dc2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722268371; x=1722873171; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ob9uToRYdqOwVGZHRH+DfX5JpxOpUV+wANi4VdXUBec=;
        b=KPp9hJ5CTOlDNorrVn6BEJ9S6XgmbVR/YFprxs9lx+Rp2qvxutrvyf3PyAykNECPm9
         QHTYw8HhEZ7WwBlasYIIAsNH7rSxAd8MQkFZGb1M4RWRDnUwUoSj57/PoU29Sr4tNyvQ
         CcUH7qk+yavySlu9TRAtRUq7OEmIFerNndGjDnr1jBHKGDbJ8njsZcnNjDhChhQ3kNfY
         bJahLkArEhIjK3QSGY2dxRxk0LIJ1BvvsFEvBfm27zw+ibVh1Y2rIX0bZOJy2ucDIAZ8
         6iJpU9zpM1SuoJzB2N9r8rDIOrQ6zr14AViLMwuNhJJ560gvh7OV4fo/CrzGq0+CAl5N
         O7LA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722268371; x=1722873171;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ob9uToRYdqOwVGZHRH+DfX5JpxOpUV+wANi4VdXUBec=;
        b=P6R3gloeKNktDCZoUn9I/qima49b2V+3iqPuWZY+QyuyqdCXCX2Agwjk1ePzOZOhMJ
         6Ua5WymmuRFTOSgOEZ4+4oKGUVjqOBXEUobgMF4KSamr30o0aeNN1dK9QVf6c/mG/tNR
         plxcpjy6MToB52fHljrIivEp7C3O7y7srygqAkhhDKYor75kRkLnJwokgSM34LYWKzZH
         0wfsurdGlSFut+PluTDHFJfAFu82NdpOrrJIf6/bIGAiWSTi4101YHagu1/pRy+FzF/f
         HVB/bQuCQWslKh1r7dPBXg79KXGxIbliMdUZA2o/eFHMDxbGjYbf4V57L5jmPEZknw9x
         OP7w==
X-Forwarded-Encrypted: i=1; AJvYcCWMCRlZG8vSdQLYq9vnv/YpZhIBe40M3yYmhTxNyC3RvhLClcFaH9f1PnD5jmpx+5HgMxqvn5/pmE1oYxOBk/j8D5+0FhY62jILbreaqIM=
X-Gm-Message-State: AOJu0YxBvpliKY6JphRp/83bKEfrgpciN9h4lzkk4N68nIYL++Tc0m1U
	+to6P9E1LT/kmqSm2spHa6mPmYvORCufgmWqSg4Gupzk4bGqC9W9blf8ar5oeQ==
X-Google-Smtp-Source: AGHT+IEzR3SnxNJm82vspv5KbX90mUjmOu2jPLODDSkt9aXW+HydS7OU5fqpSTX7S9928ONN20GtNQ==
X-Received: by 2002:a17:907:97d0:b0:a7a:aa35:4089 with SMTP id a640c23a62f3a-a7d40051478mr597724366b.24.1722268371401;
        Mon, 29 Jul 2024 08:52:51 -0700 (PDT)
Message-ID: <49d3a181-0830-4f55-83a4-c6c9fd54eb17@suse.com>
Date: Mon, 29 Jul 2024 17:52:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/9] xen/riscv: introduce and init SBI RFENCE extension
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <fb2d24731f870378d79077be39b1bc19cc655327.1721834549.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: <fb2d24731f870378d79077be39b1bc19cc655327.1721834549.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 17:31, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/sbi.h
> +++ b/xen/arch/riscv/include/asm/sbi.h
> @@ -14,6 +14,38 @@
>  
>  #define SBI_EXT_0_1_CONSOLE_PUTCHAR		0x1
>  
> +#define SBI_EXT_BASE                    0x10
> +#define SBI_EXT_RFENCE                  0x52464E43
> +
> +/* SBI function IDs for BASE extension */
> +#define SBI_EXT_BASE_GET_SPEC_VERSION   0x0
> +#define SBI_EXT_BASE_GET_IMP_ID         0x1
> +#define SBI_EXT_BASE_GET_IMP_VERSION    0x2
> +#define SBI_EXT_BASE_PROBE_EXT          0x3
> +
> +/* SBI function IDs for RFENCE extension */
> +#define SBI_EXT_RFENCE_REMOTE_FENCE_I           0x0
> +#define SBI_EXT_RFENCE_REMOTE_SFENCE_VMA        0x1
> +#define SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID   0x2
> +#define SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA       0x3
> +#define SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID  0x4
> +#define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA       0x5
> +#define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID  0x6
> +
> +#define SBI_SPEC_VERSION_MAJOR_SHIFT    24
> +#define SBI_SPEC_VERSION_MAJOR_MASK     0x7f
> +#define SBI_SPEC_VERSION_MINOR_MASK     0xffffff
> +
> +/* SBI return error codes */
> +#define SBI_SUCCESS             0
> +#define SBI_ERR_FAILURE         -1
> +#define SBI_ERR_NOT_SUPPORTED   -2
> +#define SBI_ERR_INVALID_PARAM   -3
> +#define SBI_ERR_DENIED          -4
> +#define SBI_ERR_INVALID_ADDRESS -5

Parentheses around all the negative numbers please.

> +#define SBI_SPEC_VERSION_DEFAULT        0x1
> +
>  struct sbiret {
>      long error;
>      long value;
> @@ -31,4 +63,29 @@ struct sbiret sbi_ecall(unsigned long ext, unsigned long fid,
>   */
>  void sbi_console_putchar(int ch);
>  
> +/*
> + * Check underlying SBI implementation has RFENCE
> + *
> + * @return 1 for supported AND 0 for not-supported

In which case ...

> + */
> +int sbi_has_rfence(void);

... bool please.

> +/*
> + * Send SFENCE_VMA to a set of target HARTs.
> + *
> + * @param hart_mask mask representing set of target HARTs
> + * @param start virtual address start
> + * @param size virtual address size

Are these really virtual addresses, not somehow a bias and a number
of bits (CPUs) or elements? From the rest of the patch I can't deduce
what these two parameters express.

> + */
> +void sbi_remote_sfence_vma(const unsigned long *hart_mask,

Maybe better hart_mask[]? It's not clear to me though what the upper
bound of the array is.

> @@ -38,7 +48,253 @@ struct sbiret sbi_ecall(unsigned long ext, unsigned long fid,
>      return ret;
>  }
>  
> +static int sbi_err_map_xen_errno(int err)
> +{
> +    switch ( err )
> +    {
> +    case SBI_SUCCESS:
> +        return 0;
> +    case SBI_ERR_DENIED:
> +        return -EACCES;
> +    case SBI_ERR_INVALID_PARAM:
> +        return -EINVAL;
> +    case SBI_ERR_INVALID_ADDRESS:
> +        return -EFAULT;
> +    case SBI_ERR_NOT_SUPPORTED:
> +    case SBI_ERR_FAILURE:
> +    default:
> +        return -EOPNOTSUPP;

Mapping FAILURE to -EOPNOTSUPP may end up confusing.

> +    };
> +}
> +
>  void sbi_console_putchar(int ch)
>  {
>      sbi_ecall(SBI_EXT_0_1_CONSOLE_PUTCHAR, 0, ch, 0, 0, 0, 0, 0);
>  }
> +
> +static unsigned long sbi_major_version(void)
> +{
> +    return (sbi_spec_version >> SBI_SPEC_VERSION_MAJOR_SHIFT) &
> +        SBI_SPEC_VERSION_MAJOR_MASK;
> +}
> +
> +static unsigned long sbi_minor_version(void)
> +{
> +    return sbi_spec_version & SBI_SPEC_VERSION_MINOR_MASK;
> +}
> +
> +static long sbi_ext_base_func(long fid)
> +{
> +    struct sbiret ret;
> +
> +    ret = sbi_ecall(SBI_EXT_BASE, fid, 0, 0, 0, 0, 0, 0);
> +    if (!ret.error)

Nit: Blanks missing.

> +        return ret.value;
> +    else
> +        return ret.error;
> +}
> +
> +static void sbi_cpumask_to_hartmask(const struct cpumask *cmask,
> +                 struct cpumask *hmask)

I doubt it is valud to re-use struct cpumask for hart maps.

> +{
> +    u32 cpu;

uint32_t or yet better unsigned int please.

> +    unsigned long hart = INVALID_HARTID;
> +
> +    if (!cmask || !hmask)
> +        return;
> +
> +    cpumask_clear(hmask);
> +    for_each_cpu(cpu, cmask)
> +    {
> +        if ( CONFIG_NR_CPUS <= cpu )
> +        {
> +            printk(XENLOG_ERR "SBI: invalid hart=%lu for cpu=%d\n",

%u for the CPU please.

> +                     hart, cpu);

"hart" wasn't set yet and hence is invalid or at least misleading to
log.

Nit: Indentation.

> +            continue;

Can you really sensibly continue in such a case?

> +        }
> +
> +        hart = cpuid_to_hartid_map(pcpu_info[cpu].processor_id);

What does "_map" in the function/macro name signify?

> +        cpumask_set_cpu(hart, hmask);
> +    }
> +}
> +
> +static int __sbi_rfence_v02_real(unsigned long fid,
> +                 unsigned long hmask, unsigned long hbase,
> +                 unsigned long start, unsigned long size,
> +                 unsigned long arg4)

Nit: Indentation (more similar issues elsewhere).

> +{
> +    struct sbiret ret = {0};
> +    int result = 0;
> +
> +    switch ( fid )
> +    {
> +    case SBI_EXT_RFENCE_REMOTE_FENCE_I:
> +        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
> +                0, 0, 0, 0);
> +        break;
> +    case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA:
> +        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
> +                start, size, 0, 0);
> +        break;
> +    case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID:
> +        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
> +                start, size, arg4, 0);
> +        break;
> +    case SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA:
> +        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
> +                start, size, 0, 0);
> +        break;
> +    case SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID:
> +        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
> +                start, size, arg4, 0);
> +        break;
> +    case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA:
> +        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
> +                start, size, 0, 0);
> +        break;
> +    case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID:
> +        ret = sbi_ecall(SBI_EXT_RFENCE, fid, hmask, hbase,
> +                start, size, arg4, 0);
> +        break;
> +
> +    default:
> +        printk("%s: unknown function ID [%lu]\n",
> +               __func__, fid);
> +        result = -EINVAL;
> +        break;
> +    };
> +
> +    if ( ret.error )
> +    {
> +        result = sbi_err_map_xen_errno(ret.error);
> +        printk("%s: hbase=%lu hmask=0x%lx failed (error %d)\n",

%#lx (also elsewhere)

> +               __func__, hbase, hmask, result);
> +    }
> +
> +    return result;
> +}
> +
> +static int __sbi_rfence_v02(unsigned long fid,
> +                const unsigned long *hart_mask,
> +                unsigned long start, unsigned long size,
> +                unsigned long arg4, unsigned long arg5)
> +{
> +    struct cpumask tmask;
> +    unsigned long hart, hmask, hbase;
> +    int result;
> +
> +    if (!hart_mask)

Nit: Style (and more below). And I'm afraid I'm tired of making such
remarks. Please check style yourself before submitting.

> +static int sbi_spec_is_0_1(void)
> +{
> +    return (sbi_spec_version == SBI_SPEC_VERSION_DEFAULT) ? 1 : 0;

bool and no conditional operator

Jan


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 15:59:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 15:59:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766955.1177502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYSmI-0003V6-Ec; Mon, 29 Jul 2024 15:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766955.1177502; Mon, 29 Jul 2024 15: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 1sYSmI-0003Uz-Bp; Mon, 29 Jul 2024 15:59:14 +0000
Received: by outflank-mailman (input) for mailman id 766955;
 Mon, 29 Jul 2024 15: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=U+rL=O5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYSmH-0003Ut-PR
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 15:59:13 +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 7f9a66e4-4dc3-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 17:59:12 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5a2ffc346ceso5424283a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 08:59:12 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac64eb3146sm5971061a12.66.2024.07.29.08.59.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 08: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: 7f9a66e4-4dc3-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722268752; x=1722873552; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ihSbzRgipOsuD09EvEfqCPX1X75vAlN/2OSNtZs5Mgs=;
        b=mUNhLMRPIBUalfiOjLSizuHw0B+SzpFXYh6RzA4T1jUi1x7OMFtvIg+bFp7k2XKXPY
         ZVZGfc3FHqdi3qvZi4XlHHip906xSRmzg8wUgo8vFE0Io2lkH0HfpcpXX/oFN9DDYwO7
         eI1ysVONkENVq830G94vXOoTdh4kQVYFUueaw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722268752; x=1722873552;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ihSbzRgipOsuD09EvEfqCPX1X75vAlN/2OSNtZs5Mgs=;
        b=qCZ7POimNF4g1B3ChCm+MKlM0W4OtXjozoo0m0j5Rx74+MlwDChTMI5cDqQLIMb4Un
         NZJ1wMPq8YhagBZO4K9qZezWuL+aG+CZ90L7JB0kxuk2grZZVqZsYlH4+nMmJ68QnUCN
         s4Yi4lpYNx/jKTh75abNzzECqA2ZeL/E3ITyoKeJrwJtLu9Ua8RTGbAYrpGvIlkRDTCo
         hLXc5kE6NNVt/KbTcO9r9+3w3LTIA63cW/UOeiksV8T64NZr59XxDUcZ+/2Z9bmTcKFX
         c53wkrgiuiDUX8MpFJZuAfSvgccP377bn7HxBiAOKy4Z/lRd08mkFJYpADc/xsE2nKcu
         VoQA==
X-Forwarded-Encrypted: i=1; AJvYcCXb/Y4muoDDjK7/5ca/tKDWZP9GGN4419jGGAmh5t+au2TRmWm4RLIOXiYtOMCXltF27JCwRWsDEK05KOsQ68RONbQtCA1CBffll9EAe1Q=
X-Gm-Message-State: AOJu0YxDrChuc6t7LvYckuxDu9BV6zA9b5CTUcM7h0dWP/7e/Zbuoq/5
	B1T2iZ6E7KrxzVaToFLgMjSha7R7q77TAVIwMkLsPRtAJs7d/DqrmU0n0NaYStk=
X-Google-Smtp-Source: AGHT+IGS61yS3bqMqHPfDjFOtKNu+n2YTsKUoPthJoWfR0VUlIfjW0cHCwSzGSWjW6TWOKQbhDcYBA==
X-Received: by 2002:a05:6402:2353:b0:5a1:807d:e868 with SMTP id 4fb4d7f45d1cf-5b021f0ded4mr6441071a12.24.1722268752056;
        Mon, 29 Jul 2024 08:59:12 -0700 (PDT)
Message-ID: <3077368e-caba-42ad-b6ac-3406ca5c4861@citrix.com>
Date: Mon, 29 Jul 2024 16:59:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/22] x86/dom0: only disable SMAP for the PV dom0 build
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com, Jan Beulich <jbeulich@suse.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-4-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240726152206.28411-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/07/2024 4:21 pm, Roger Pau Monne wrote:
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index eee20bb1753c..bc387d96b519 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -955,26 +955,9 @@ static struct domain *__init create_dom0(const module_t *image,
>          }
>      }
>  
> -    /*
> -     * Temporarily clear SMAP in CR4 to allow user-accesses in construct_dom0().
> -     * This saves a large number of corner cases interactions with
> -     * copy_from_user().
> -     */
> -    if ( cpu_has_smap )
> -    {
> -        cr4_pv32_mask &= ~X86_CR4_SMAP;
> -        write_cr4(read_cr4() & ~X86_CR4_SMAP);
> -    }
> -
>      if ( construct_dom0(d, image, headroom, initrd, cmdline) != 0 )
>          panic("Could not construct domain 0\n");
>  
> -    if ( cpu_has_smap )
> -    {
> -        write_cr4(read_cr4() | X86_CR4_SMAP);
> -        cr4_pv32_mask |= X86_CR4_SMAP;
> -    }
> -

Hang on.  Isn't this (preexistingly) broken given the distinction
between cpu_has_smap and X86_FEATURE_XEN_SMAP ?

I'm very tempted to use this as a justification to remove opt_smap.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 16:02:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 16:02:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766963.1177512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYSpN-0005Vf-Sn; Mon, 29 Jul 2024 16:02:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766963.1177512; Mon, 29 Jul 2024 16:02: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 1sYSpN-0005VY-P1; Mon, 29 Jul 2024 16:02:25 +0000
Received: by outflank-mailman (input) for mailman id 766963;
 Mon, 29 Jul 2024 16:02: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=uBYv=O5=bounce.vates.tech=bounce-md_30504962.66a7bd0b.v1-117daf7f6245428b90b34a7189df7e90@srs-se1.protection.inumbo.net>)
 id 1sYSpM-0005Ti-Og
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 16:02:24 +0000
Received: from mail177-18.suw61.mandrillapp.com
 (mail177-18.suw61.mandrillapp.com [198.2.177.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef551a69-4dc3-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 18:02:20 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-18.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4WXjmW3GVkzCf9KMZ
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 16:02:19 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 117daf7f6245428b90b34a7189df7e90; Mon, 29 Jul 2024 16:02:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef551a69-4dc3-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1722268939; x=1722529439;
	bh=QzxkKAT2sWOQONDycuNwG5buQ3Dcxg1jeKgeGHJ9llM=;
	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=t8pXpSQZ1HIfSS7O0bpzmX5ocXs+PmgzS3+7pgR0uE8TNcdDKlUzw5nhIwR5oxbI1
	 MDI9hg+uOB6+Rzewb8PEcD32tIA19v3QYIvQcVBcZoyDoNrKt6RQJSceavXWocvHwa
	 WLFqigbcNA2SO55Pl0CIxhwhBwPCsAZPodzJVNFTgnueVWqgk3qS8vxxDaVWfIXAy7
	 VmDulo0dRUoa1u9MR3+/BuZc2OoJt+kv7TIpPBQoNallR8UFAYpbYsPVgVFscjHILg
	 EHwXd1qfVSo7KQdsHvJuG/u+eijyhmFf4UbfpsevzJvC3EPCg4b7qlCt85oZwt7zt3
	 qzkcYoPJ1BKYg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1722268939; x=1722529439; i=anthony.perard@vates.tech;
	bh=QzxkKAT2sWOQONDycuNwG5buQ3Dcxg1jeKgeGHJ9llM=;
	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=fWoYutFYTj58Q351O2Ko48DAZlMR5a9phMRWYAe28Oc0P+lDCi2Ct46VC9BT2TAJ5
	 vhLhyOGrGGGB+jzaSpXY7VizmmFL8dj8WE5zymHZdl8X0hoXeWeHpjTA7oZ+gR7wW0
	 6fgHYtX1wgun+1YHgsvG3JLPGLE5QmY5KiEPbnfYaRf9f1xjJ6WFtJH6d7nr5IIZp2
	 CYMTPDzqNfo56VJUq39RwpFg4kZ8PxZPWZxJwWU324AmNl0ts67nIUvXFwuPrCxK37
	 0YTa41o92DWWYE4GXz2Vk2Xd3IOWmy/q5y8jnkxm5rTWAZrFDdM+wMUdj0vobFbzHd
	 D0gEOwi8RAPqA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN=20PATCH=20v6]=20tools/lsevtchn:=20Use=20errno=20macro=20to=20handle=20hypercall=20error=20cases?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1722268938285
To: Matthew Barnes <matthew.barnes@cloud.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Message-Id: <Zqe9CYQ7ODXMSJfo@l14>
References: <cbb751a7fab10d228513bb163c85c83d025330c9.1722265284.git.matthew.barnes@cloud.com>
In-Reply-To: <cbb751a7fab10d228513bb163c85c83d025330c9.1722265284.git.matthew.barnes@cloud.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.117daf7f6245428b90b34a7189df7e90?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240729:md
Date: Mon, 29 Jul 2024 16:02:19 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Jul 29, 2024 at 04:02:41PM +0100, Matthew Barnes wrote:
> diff --git a/tools/xcutils/lsevtchn.c b/tools/xcutils/lsevtchn.c
> index d1710613ddc5..29504c9d2077 100644
> --- a/tools/xcutils/lsevtchn.c
> +++ b/tools/xcutils/lsevtchn.c
> @@ -24,7 +25,28 @@ int main(int argc, char **argv)
>          status.port = port;
>          rc = xc_evtchn_status(xch, &status);
>          if ( rc < 0 )
> -            break;
> +        {
> +            switch ( errno )
> +            {
> +            case EACCES: /* Xen-owned evtchn */
> +                continue;
> +
> +            case EINVAL: /* Port enumeration has ended */
> +                rc = 0;
> +                break;
> +
> +            case ESRCH:
> +                perror("Domain ID does not correspond to valid domain");

I think this is going to print:
    "Domain ID does not correspond to valid domain: No such process"

> +                rc = ESRCH;

So, `rc` is going to be the value returned by main(), that is the exit
value of the program `lsevtchn`. Having different exit value might
be useful sometime to distinguish between different errors but that
would at least need to be written in some document. Can we just return
"1" here on error? (I mean "rc = 1")

> +                break;
> +
> +            default:
> +                perror(NULL);

It would be slightly more useful to print which function fails, simply
with:
    perror("xc_evtchn_status");


> +                rc = errno;

Same here, just "rc=1" should be good enough. Then if someone want to
know why `lsevtchn` failed, they can read the error messages.

At least, errno is likely to be between 0 and 255, but still, usually
not very useful as an exit value for a program.

> +                break;
> +            }
> +            goto out;
> +        }
>  
>          if ( status.status == EVTCHNSTAT_closed )
>              continue;
> @@ -58,7 +80,8 @@ int main(int argc, char **argv)
>          printf("\n");
>      }
>  
> + out:
>      xc_interface_close(xch);
>  
> -    return 0;
> +    return rc;
>  }

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 Jul 29 16:11:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 16:11:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766973.1177522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYSy9-0007hl-LT; Mon, 29 Jul 2024 16:11:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766973.1177522; Mon, 29 Jul 2024 16: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 1sYSy9-0007he-Id; Mon, 29 Jul 2024 16:11:29 +0000
Received: by outflank-mailman (input) for mailman id 766973;
 Mon, 29 Jul 2024 16:11:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pZrP=O5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYSy8-0007hW-BV
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 16:11:28 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3538e06f-4dc5-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 18:11:26 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ef2cce8be8so47060011fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 09:11:26 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2f03d0900absm13704961fa.134.2024.07.29.09.11.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 09: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: 3538e06f-4dc5-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722269486; x=1722874286; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=qWPt5WEHzQ428/Gsy6YVPEJI1ji/Sm98Wz22XT/prMI=;
        b=XcdTzNrA1GPspP9+O3RnHkIuvf6vSiX5oCfn2kYIWMsBI6wZgdIJ7QId6Xm3H8qjy9
         pQmNQas345E2D8i5+BtPfXE25qqNtddz9pnRmAoDzDVJogGam6j0Dkp92Pwk4rbnzSOE
         dSWxU58+mWkMNLLFsIpfV3ogfyKLXjmIUgNd4NvuF/kFPBL9TF0kzLtzz1Le4i72MrjF
         jJfY2OKTa0UH9ZDrqVlBnJTRiXNC2VShYzVm9G9gT8tr7WO2C81IvrOK8T5V6q5w7D1Z
         tg4KcarL6uXmCV+C2jHpGIDEsms6u/sOLsmr7uvu3t35LPc/C3G0JCDLNVnge8M7hj11
         U/CA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722269486; x=1722874286;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=qWPt5WEHzQ428/Gsy6YVPEJI1ji/Sm98Wz22XT/prMI=;
        b=dn7gsUCU5APzjYbGHQnzjQUJ5iWrOkQuz0bk69X74mHYqWaNULtYMJDD6btseuDmJA
         eX05tk472ZTKN9ArIwrdVQGOlNN+/hETpZW4jEEW4tbfJMtFJV9Os8JFa9j8MqTiU30r
         7w0cUpEZ4ieoFoJWO542dxqm6CtEb6NhDQGhOF3UBk28TEjHOFRJ/msehaeyMNI7BWzY
         PX2cWlkYkZVDRDIjgP6/sg9vxSVzSOGZuC9LoL+ANQIdCaExuN4yJVgbTD49IIsoP1SC
         so1e/ru2rbrL7zV8DjRfaHc0XZOxxY1H4GKUTuZx5TjkkgLnjVbuAHX+tw0/b9rSOtml
         n5iQ==
X-Forwarded-Encrypted: i=1; AJvYcCVRW1bH9yd8OXU5ab5IyBqX/qJdPZiGqde+IyHhodUFgdV9qXpgW3vNT8rlDtL3BjICKpbNzRdMENkHiEPLJwFA4o863rX3Q7DfSd5mHBU=
X-Gm-Message-State: AOJu0YzS0gn+gr/LCUNYGlA2L3EP9RSuP5uLF9lHKl5Qb71exMKaH+xi
	AADcuFyXY9UofGwqLtYan3Fzbjs8C5A50BUzz8bSsP8ISDzjGRV7
X-Google-Smtp-Source: AGHT+IEH//J2BVIS1PtdH2HMLPvL3hUf6Bze8wiC8ynBM8MAYT6Ig3zpkDNjH4G6dxNv0v4Yxlaedw==
X-Received: by 2002:a2e:b051:0:b0:2ef:25be:ebeb with SMTP id 38308e7fff4ca-2f12ebcaffdmr60831841fa.10.1722269485773;
        Mon, 29 Jul 2024 09:11:25 -0700 (PDT)
Message-ID: <28d646ba3d95da2eaf40869e1c07d950a0f3f203.camel@gmail.com>
Subject: Re: [PATCH v3 4/9] xen/riscv: setup fixmap mapping
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
 <michal.orzel@amd.com>
Date: Mon, 29 Jul 2024 18:11:24 +0200
In-Reply-To: <917cc521-c0c4-49e8-bc40-948679398bc6@suse.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
	 <04576976b82b97442f645b83b3d62475d144af8e.1721834549.git.oleksii.kurochko@gmail.com>
	 <917cc521-c0c4-49e8-bc40-948679398bc6@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-29 at 15:35 +0200, Jan Beulich wrote:
> On 24.07.2024 17:31, Oleksii Kurochko wrote:
> > Introduce a function to set up fixmap mappings and L0 page
> > table for fixmap.
> >=20
> > Additionally, defines were introduced in riscv/config.h to
> > calculate the FIXMAP_BASE address.
> > This involved introducing BOOT_FDT_VIRT_{START, SIZE} and
> > XEN_VIRT_SIZE, XEN_VIRT_END.
> >=20
> > Also, the check of Xen size was updated in the riscv/lds.S
> > script to use XEN_VIRT_SIZE instead of a hardcoded constant.
> >=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> Yet set_fixmap() isn't introduced here, so effectively it's all dead
> code. This could do with mentioning, as I at least would expect
> set_fixmap() to be usable once fixmaps are properly set up.
>=20
> > --- a/xen/arch/riscv/include/asm/config.h
> > +++ b/xen/arch/riscv/include/asm/config.h
> > @@ -66,6 +66,14 @@
> > =C2=A0#define SLOTN_ENTRY_BITS=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 (HYP_PT_ROOT_LEVEL * VPN_BITS +
> > PAGE_SHIFT)
> > =C2=A0#define SLOTN(slot)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 (_AT(vaddr_t, slot) <<
> > SLOTN_ENTRY_BITS)
> > =C2=A0
> > +#define XEN_VIRT_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 MB(2)
> > +
> > +#define BOOT_FDT_VIRT_START=C2=A0=C2=A0=C2=A0=C2=A0 (XEN_VIRT_START + =
XEN_VIRT_SIZE)
> > +#define BOOT_FDT_VIRT_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 MB(4)
> > +
> > +#define FIXMAP_BASE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 (BOOT_FDT_VIRT_START +
> > BOOT_FDT_VIRT_SIZE)
> > +#define FIXMAP_ADDR(n)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 (FIXMAP_BASE + (n) * PAGE_SIZE)
> > +
> > =C2=A0#if RV_STAGE1_MODE =3D=3D SATP_MODE_SV39
> > =C2=A0#define XEN_VIRT_START 0xFFFFFFFFC0000000
> > =C2=A0#elif RV_STAGE1_MODE =3D=3D SATP_MODE_SV48
>=20
> Related to my earlier comment: Is there a particular reason that what
> you add cannot live _below_ the XEN_VIRT_START definitions, so things
> actually appear in order?
It can leave _below_ the XEN_VIRT_START definitions, I just wanted to
be in sync with table above.
But I'll move everything below the XEN_VIRT_START as it is used in
newly introduced definitions.
>=20
>=20
>=20
> > @@ -81,6 +82,14 @@ static inline void flush_page_to_ram(unsigned
> > long mfn, bool sync_icache)
> > =C2=A0=C2=A0=C2=A0=C2=A0 BUG_ON("unimplemented");
> > =C2=A0}
> > =C2=A0
> > +/* Write a pagetable entry. */
> > +static inline void write_pte(pte_t *p, pte_t pte)
> > +{
> > +=C2=A0=C2=A0=C2=A0 RISCV_FENCE(rw, rw);
> > +=C2=A0=C2=A0=C2=A0 *p =3D pte;
> > +=C2=A0=C2=A0=C2=A0 RISCV_FENCE(rw, rw);
> > +}
>=20
> Why the first of the two fences?=C2=A0
To ensure that writes have completed with the old mapping.

> And isn't having the 2nd here going
> to badly affect batch updates of page tables?
By batch you mean update more then one pte?
It yes, then it will definitely affect. It could be dropped here but
could we do something to be sure that someone won't miss to add
fence/barrier?

>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * x is the highest page table level for curre=
ct=C2=A0 MMU mode (
> > for example,
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * for Sv39 has 3 page tables so the x =3D 2 (=
L2 -> L1 -> L0) ).
> > +=C2=A0=C2=A0=C2=A0=C2=A0 *
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * In this cycle we want to find L1 page table=
 because as L0
> > page table
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * xen_fixmap[] will be used.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 *
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * i is defined ( HYP_PT_ROOT_LEVEL - 1 ) becu=
ase pte for L2 (
> > in
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * case of Sv39 ) has been recieved above.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0 for ( i =3D HYP_PT_ROOT_LEVEL - 1; i !=3D 0; i-- )
>=20
> I think the subtracting of 1 is unhelpful here. Think of another=C2=A0
> case where
> you want to walk down to L0. How would you express that with a
> similar for()
> construct. It would imo be more natural to use
>=20
> =C2=A0=C2=A0=C2=A0 for ( i =3D HYP_PT_ROOT_LEVEL; i > 1; i-- )
Then the first one _i_ will be initialized as L2, not L1. As an option
we then have to use ...
>=20
> here (and then in that hypothetical other case
>=20
> =C2=A0=C2=A0=C2=A0 for ( i =3D HYP_PT_ROOT_LEVEL; i > 0; i-- )
>=20
> ), and then the last part of the comment likely wouldn't be needed
> either.
> However, considering ...
>=20
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 BUG_ON(!pte_is_valid(*pte))=
;
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte =3D (pte_t *)LOAD_TO_LI=
NK(pte_to_paddr(*pte));
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pte =3D &pte[pt_index(i, FI=
XMAP_ADDR(0))];
>=20
> ... the use of i here, it may instead want to be
... should be ( i - 1 ).
I am okay with such refactoring.

>=20
> =C2=A0=C2=A0=C2=A0 for ( i =3D HYP_PT_ROOT_LEVEL; i-- > 1; )
>=20
> > +=C2=A0=C2=A0=C2=A0 }
> > +
> > +=C2=A0=C2=A0=C2=A0 BUG_ON(pte_is_valid(*pte));
> > +
> > +=C2=A0=C2=A0=C2=A0 tmp =3D paddr_to_pte(LINK_TO_LOAD((unsigned long)&x=
en_fixmap),
> > PTE_TABLE);
>=20
> I'm a little puzzled by the use of LINK_TO_LOAD() (and LOAD_TO_LINK()
> a
> little further up) here. Don't you have functioning __pa() and
> __va()?
No, they haven't been introduced yet.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 16:19:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 16:19:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766981.1177532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYT5V-0000fG-GX; Mon, 29 Jul 2024 16:19:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766981.1177532; Mon, 29 Jul 2024 16:19:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYT5V-0000f9-DP; Mon, 29 Jul 2024 16:19:05 +0000
Received: by outflank-mailman (input) for mailman id 766981;
 Mon, 29 Jul 2024 16:19:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QfTU=O5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYT5T-0000ez-VL
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 16:19:03 +0000
Received: from mail-yb1-xb31.google.com (mail-yb1-xb31.google.com
 [2607:f8b0:4864:20::b31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 446b18c6-4dc6-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 18:19:02 +0200 (CEST)
Received: by mail-yb1-xb31.google.com with SMTP id
 3f1490d57ef6-e0875778facso2081163276.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 09:19:02 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fae78c6sm53559316d6.126.2024.07.29.09.19.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 09: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: 446b18c6-4dc6-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722269941; x=1722874741; 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=ZgbMMDklNxipWx8O8O70zQRwrNe5QRaTKfpv0vnkRy4=;
        b=qI9Kerao4SdV+rsjUz7ijttkAp3QnBOBcBZUGRygMWc2ddOCtm2H2KXlsBiPuqv7gp
         IaeRhRQS17Jl6G7Rx+oOeBFT6B1R8PSarfocWmj4DGxkyA47gCrB2RDV2RcgqThvssCb
         hxscrEjce3EBnaXxXciQYT4nAbDnCbr1LXHqI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722269941; x=1722874741;
        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=ZgbMMDklNxipWx8O8O70zQRwrNe5QRaTKfpv0vnkRy4=;
        b=EH4RckRcnzLeBJyy4O5MLJY7555uZSbONx5GNyI9WOvKWjpWsi2hdvmXkjTvigT5re
         sJ6BWEh7zscDMOZClEFsnswtc/AD7Z2BiH6kAr4TUBjhugcwg4KGCmn0J1mqO5xM3Nbl
         M6fv3kB5kI5DiKjpc2PSEHHCXjq2UmezACDTXFz5YPx06jzadoAkbisX8P0PcnsSVLqZ
         zuEf9q5Hgoh/e6G/uXk8HoDQNDnYfMLFDOdbCyGiWj8p4Y9COanCJFW0lAlZp6DguMue
         /0yG3odSNAC3+vuis6OBhoC/xWwMwdezQjxQclBabdnolo3kBewdAsK50AIZ0lUTGMrv
         LxIQ==
X-Forwarded-Encrypted: i=1; AJvYcCV/gmonOb2THijrimwLXodwRCh6k7JwL6G+lxsVIbw34ePt/Ivklk2c/0xv08R+GJUnYmVlRlCh/N3Zb5RupIKEEDpoF0LuiZbkERL/hqY=
X-Gm-Message-State: AOJu0YyFhp5Iv5HfFTiuuaMUZfJB3FMDzIBMx4BgYg+alCDpgw6IS4xx
	dU39gdyi/Q5D0jdOIVpVDEdRX9pUSbGfWTnGnmLIMyYV5POZ5wp9vwkT/lTSi6VKXjsitO6Yy7k
	d
X-Google-Smtp-Source: AGHT+IGV+UqNOlplUUcSP0vcmLSwfYvweZe7iroJCVD8QxRgqo/Itoyq/qxrX6XGnMj766MvvYhlDw==
X-Received: by 2002:a05:6902:709:b0:e08:6ce9:6e8e with SMTP id 3f1490d57ef6-e0b544a0b1dmr8365132276.23.1722269941220;
        Mon, 29 Jul 2024 09:19:01 -0700 (PDT)
Date: Mon, 29 Jul 2024 18:18:55 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, alejandro.vallejo@cloud.com,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 03/22] x86/dom0: only disable SMAP for the PV dom0 build
Message-ID: <ZqfA714LUFgZOYqw@macbook>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-4-roger.pau@citrix.com>
 <b1918f51-1ac0-40f8-9174-d8161b2681dd@suse.com>
 <5aad5f48-e32e-4a59-bcef-05adec0ecbec@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <5aad5f48-e32e-4a59-bcef-05adec0ecbec@citrix.com>

On Mon, Jul 29, 2024 at 04:52:22PM +0100, Andrew Cooper wrote:
> On 29/07/2024 12:53 pm, Jan Beulich wrote:
> > On 26.07.2024 17:21, Roger Pau Monne wrote:
> >> The PVH dom0 builder doesn't switch page tables and has no need to run with
> >> SMAP disabled.
> >>
> >> Put the SMAP disabling close to the code region where it's necessary, as it
> >> then becomes obvious why switch_cr3_cr4() is required instead of
> >> write_ptbase().
> >>
> >> Note removing SMAP from cr4_pv32_mask is not required, as we never jump into
> >> guest context, and hence updating the value of cr4_pv32_mask is not relevant.
> > I'm okay-ish with that being dropped, but iirc the goal was to keep the
> > variable in sync with CPU state.
> 
> Removing SMAP from cr4_pv32_mask is necessary.
> 
> Otherwise IST vectors will reactive SMAP behind the back of the dombuilder.
> 
> This will probably only manifest in practice in a CONFIG_PV32=y build,

Sorry, I'm possibly missing some context here.  When running the dom0
builder we switch to the guest page-tables, but not to the guest vCPU,
(iow: current == idle) and hence the context is always the Xen
context.

Why would the return path of the IST use cr4_pv32_mask when the
context in which the IST happened was the Xen one, and the current
vCPU is the idle one (a 64bit PV guest from Xen's PoV).

My understanding is that cr4_pv32_mask should only be used when the
current context is running a 32bit PV vCPU.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 16:22:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 16:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766992.1177542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYT8q-0002Ay-0J; Mon, 29 Jul 2024 16:22:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766992.1177542; Mon, 29 Jul 2024 16:22: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 1sYT8p-0002Ar-Ta; Mon, 29 Jul 2024 16:22:31 +0000
Received: by outflank-mailman (input) for mailman id 766992;
 Mon, 29 Jul 2024 16:22: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=pZrP=O5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYT8p-0002Al-Am
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 16:22:31 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c02b1f39-4dc6-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 18:22:29 +0200 (CEST)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-52efd855adbso5578489e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 09:22:29 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52fd5c2d48fsm1523979e87.275.2024.07.29.09.22.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 09:22: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: c02b1f39-4dc6-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722270149; x=1722874949; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=0d3C7WDYGgQXysGo7utvuSdWbnb71BlRiRCFC64WsVE=;
        b=O5uItSPTDwBhRKGYM/k3iunrek7ApAQL86FpdE40xg5pd84bwYNSPf+h2unYJqjT/M
         Z/e3rLyjIoViV83TckRayBNibSVJWE7SRy7xaGo6L4mkGzrloQlSxw+zoBOfKGv9c3q1
         KY26MbEwbGVZ8THzKX68fmLboH1fhSaHmcpt7xRL9NNPPZurBpAYERBhoS5Wp/y9EZ1M
         o4IGmhECq3lX8/ADvb+H2zRBNo9vTeQ61LJ4eJJi19oozlUvjyBW/b2VHm1DvhgB0E51
         q7yZeibBDNnykYTb0gmgFCulf8HV2LfNlGtK9ysOvdFOzn8XFtMSE/AYcdbsYh92cddi
         BsOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722270149; x=1722874949;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0d3C7WDYGgQXysGo7utvuSdWbnb71BlRiRCFC64WsVE=;
        b=NlRWK2bw4lON5sr7wLwBxjJ3f/ZfzJoZKSInHyDFTuK6kf+xmWF+4Ri3N7IjS1NVHF
         B75fxEG7KD+0NMLAUKDbwNlGOiG/5iKlobsZF6baZoWUUTouOuFYCrVL5WFKJZj60s1d
         ep9trNg29+o38Aj9wwS5zArUbY8Q07Sb2OOoKldD2rCBCWSA3ECdsiiDndiX9TJfZdw9
         uRqz0fLnpeE0KbylD8CjqCOcccUBv8jaQIFvKAR9r1laVRQkrOrXm9fJgs7LhcY50de7
         euPO/V8UR84cAGZGRZ1hxxEmDi7lx8MLumjyfFbxW1QKVvKPr+zKq0eGHAekXpnlXhpk
         UkgA==
X-Forwarded-Encrypted: i=1; AJvYcCXKELpzyO+E3P9aeY6pMIEcTJKMeDKz2+CSezCXFEpe5IPwRBC3fVdSKbk35rPA40YyqmxM/mEIAmHx9qrh68BhQ3T+VBzm1vzqGhjUGyM=
X-Gm-Message-State: AOJu0YyXwc/Ia7Z9xAnvhlyD7DQwKTm8jXktZRyS0FB9XzmXM3dvUr8V
	WihhwxFNPrMp49EGWqTKuhRzvmawOuz8DMr3F7WGRx/LeOIt+X43
X-Google-Smtp-Source: AGHT+IH7Acq6fihlX7b+nyLuAIwCj2DSvIFejQWYvtsn9hmebArD0gdoiUO4eh+m+gd+NO/khJ1KGg==
X-Received: by 2002:a05:6512:39d5:b0:52e:f2e8:1646 with SMTP id 2adb3069b0e04-5309b2cea3dmr5878753e87.58.1722270148547;
        Mon, 29 Jul 2024 09:22:28 -0700 (PDT)
Message-ID: <78effb178b1ffe7ccb1714a13157e94f5e816b01.camel@gmail.com>
Subject: Re: [PATCH v3 5/9] xen/riscv: introduce asm/pmap.h header
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Mon, 29 Jul 2024 18:22:27 +0200
In-Reply-To: <3359e37e-eaae-49ca-80a5-2bf70b9b46c7@suse.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
	 <11b5487659a9c76793e520c108cd92c6c84b908d.1721834549.git.oleksii.kurochko@gmail.com>
	 <3359e37e-eaae-49ca-80a5-2bf70b9b46c7@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-29 at 16:29 +0200, Jan Beulich wrote:
> On 24.07.2024 17:31, Oleksii Kurochko wrote:
> > Introduces arch_pmap_{un}map functions and select HAS_PMAP
> > for CONFIG_RISCV.
> >=20
> > Additionaly it was necessary to introduce functions:
> > =C2=A0- mfn_from_xen_entry
> > =C2=A0- mfn_to_pte
> >=20
> > Also flush_xen_tlb_range_va_local() and flush_xen_tlb_one_local()
> > are introduced and use in arch_pmap_unmap().
>=20
> Just flush_xen_tlb_one_local() would suffice for the purposes here.
> flush_xen_tlb_range_va_local() will need some kind of cutoff, to
> avoid looping for an excessivly long time.
>=20
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/pmap.h
> > @@ -0,0 +1,33 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +#ifndef ASM_PMAP_H
> > +#define ASM_PMAP_H
> > +
> > +#include <xen/bug.h>
> > +#include <xen/mm.h>
> > +#include <xen/page-size.h>
> > +
> > +#include <asm/fixmap.h>
> > +#include <asm/flushtlb.h>
> > +#include <asm/system.h>
> > +
> > +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
> > +{
> > +=C2=A0=C2=A0=C2=A0 pte_t *entry =3D &xen_fixmap[slot];
> > +=C2=A0=C2=A0=C2=A0 pte_t pte;
> > +
> > +=C2=A0=C2=A0=C2=A0 ASSERT(!pte_is_valid(*entry));
> > +
> > +=C2=A0=C2=A0=C2=A0 pte =3D mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
> > +=C2=A0=C2=A0=C2=A0 write_pte(entry, pte);
> > +}
>=20
> Perhaps add a comment to clarify why it's safe to omit a TLB flush
> here.
> Note that arch_pmap_unmap() having one is a necessary but not
> sufficient
> condition to that. In principle hardware may also cache "negative"
> TLB
> entries; I have no idea how RISC-V behaves in this regard, or whether
> that aspect is actually left to implementations.
what do you mean by "negative" TLB? an old TLB entry which should be
invalidated?

>=20
> > +static inline void arch_pmap_unmap(unsigned int slot)
> > +{
> > +=C2=A0=C2=A0=C2=A0 pte_t pte =3D {};
> > +
> > +=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixmap[slot], pte);
> > +
> > +=C2=A0=C2=A0=C2=A0 flush_xen_tlb_range_va_local(FIXMAP_ADDR(slot), PAG=
E_SIZE);
> > +}
>=20
> For both functions, even if mainly for documentation purposes, it may
> be desirable to mark them __init. It's again a necessary (but not
> sufficient) condition here, to validly use local TLB flushes only.
Does __init in this context means that it will be called only by boot
cpu at the start and that is it?

>=20
> > --- a/xen/arch/riscv/mm.c
> > +++ b/xen/arch/riscv/mm.c
> > @@ -382,3 +382,18 @@ int map_pages_to_xen(unsigned long virt,
> > =C2=A0=C2=A0=C2=A0=C2=A0 BUG_ON("unimplemented");
> > =C2=A0=C2=A0=C2=A0=C2=A0 return -1;
> > =C2=A0}
> > +
> > +static inline pte_t mfn_from_pte(mfn_t mfn)
> > +{
> > +=C2=A0=C2=A0=C2=A0 unsigned long pte =3D mfn_x(mfn) << PTE_PPN_SHIFT;
> > +=C2=A0=C2=A0=C2=A0 return (pte_t){ .pte =3D pte };
> > +}
>=20
> My earlier naming related comment may not have been here, but it
> was certainly meant to apply to any similar functions: A function
> of this name should imo take a pte_t and produce an mfn_t. IOW I'd
> expect this function to be pte_from_mfn(). However, I question it
> being
> a good idea to do it this way. The resulting pte_t isn't valid yet,
> aiui,
> as it still needs at least the access controls filled in. Such a
> partial
> pte_t would better not be floating around at any time, imo. IOW the
> function likely wants to take a 2nd parameter.
Thanks. I'll double check the namings and update the prototype of this
function.


~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 16:27:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 16:27:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766999.1177552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYTD7-0002m1-Gw; Mon, 29 Jul 2024 16:26:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766999.1177552; Mon, 29 Jul 2024 16: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 1sYTD7-0002lu-DP; Mon, 29 Jul 2024 16:26:57 +0000
Received: by outflank-mailman (input) for mailman id 766999;
 Mon, 29 Jul 2024 16:26: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=U+rL=O5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYTD6-0002lo-PM
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 16:26:56 +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 5eb2452b-4dc7-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 18:26:55 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5b391c8abd7so987522a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 09:26:55 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac657837cdsm6031635a12.97.2024.07.29.09.26.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 09:26: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: 5eb2452b-4dc7-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722270414; x=1722875214; 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=DVItmSyQGZzigyCUITOGLDF5SaH+lZWw41oSPFUOFfI=;
        b=PbCi50H4sOGPHw6HknlFsl8qMxtftZxYdVkOwO35biOtxdVSqq+Wb8oV3dzhTcQ11D
         kuB3kOP2s1JBcQswebeN1Z08DS5YO9LpwxGT+EL1eNa25e+5HUGZUgwRcDF6rJXk9L5Z
         fW5c+bkM7/FM2LVS94JwGrZQE9CUcwWruDwNQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722270414; x=1722875214;
        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=DVItmSyQGZzigyCUITOGLDF5SaH+lZWw41oSPFUOFfI=;
        b=URUKzk3LcQEQuD8rCWFIbs+l8wqxipjXvPIQbKI3+GyMPNQ64G14VHHKoR0XVWS2Ln
         My1P/YTKcfloctOgoTOJgFaXf0kGymrrqiHPX8YBYR5BKPD5Udnpn6WtnZFMOlRtN/9q
         dwVkMJ8ycal78ONAGEGYFrbgveay176s2UsTaTkWnvU9n64nvB7nAes37prNf/u6o0Jo
         /g3FKBIizeyssgOzh0s0fQaS+V/gg/AZgDlQeZqsR56QHkrWsbKAto3k5ie+V/sTct4e
         +ZwxGYpOaMp3q43XLCQ903UAMCuzExAtb6hHoalz5D3OLaMN7OSKVLTl1N10j+is0xvg
         KsjQ==
X-Gm-Message-State: AOJu0YztZDe9WZPhio//9PKpul5RYxUr4UOPUouh0i/b9ISdVTLo6dvI
	ZXOPZveWKSU9tum+5Z5vHg8IFYJJnomLCtszD39+UNr8YlQndkVw3HRuvoaJZsp4yU4sTSTJvlp
	j
X-Google-Smtp-Source: AGHT+IGYnErR2tlUECKCyr2vyzYxPKtU802yE/SXoq8yKUI7h1EBMjFRGXHUvt72Fn10ipYgJareig==
X-Received: by 2002:a50:d659:0:b0:5a0:e4a6:b3c9 with SMTP id 4fb4d7f45d1cf-5b0205d5d69mr5137434a12.7.1722270414480;
        Mon, 29 Jul 2024 09:26: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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Daniel Smith <dpsmith@apertussolutions.com>
Subject: [PATCH] XSM/domctl: Fix permission checks on XEN_DOMCTL_createdomain
Date: Mon, 29 Jul 2024 17:26:51 +0100
Message-Id: <20240729162651.571991-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The XSM checks for XEN_DOMCTL_createdomain are problematic.  There's a split
between xsm_domctl() called early, and flask_domain_create() called quite late
during domain construction.

All XSM implementations except Flask have a simple IS_PRIV check in
xsm_domctl(), and operate as expected when an unprivileged domain tries to
make a hypercall.

Flask however foregoes any action in xsm_domctl() and defers everything,
including the simple "is current permitted to create a a domain" check, to
flask_domain_create().

As a conseqeuence, when XSM Flask is active, and irrespective of the policy
loaded, all domains irrespective of privilege can:

 * Mutate the global 'rover' variable, used to track the next free domid.
   Therefore, all domains can cause a domid wraparound, and combined with a
   volentary reboot, choose their own domid.

 * Cause a reasonable amount of a domain to be constructed before ultimately
   failing for permission reasons, including the use of settings outside of
   supported limits.

In order to remedate this, pass the ssidref into xsm_domctl() and at least
check that the calling domain privileged enough to create domains.

This issue has not been assigned an XSA, because Flask is experimental and not
security supported.

Reported-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Daniel Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/mm/paging.c |  2 +-
 xen/common/domctl.c      |  4 +++-
 xen/include/xsm/dummy.h  |  2 +-
 xen/include/xsm/xsm.h    |  6 +++---
 xen/xsm/flask/hooks.c    | 13 +++++++++++--
 5 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index bca320fffabf..dd47bde5ce40 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -767,7 +767,7 @@ long do_paging_domctl_cont(
     if ( d == NULL )
         return -ESRCH;
 
-    ret = xsm_domctl(XSM_OTHER, d, op.cmd);
+    ret = xsm_domctl(XSM_OTHER, d, op.cmd, 0 /* SSIDref not applicable */);
     if ( !ret )
     {
         if ( domctl_lock_acquire() )
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 2c0331bb05ed..ea16b759109e 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -322,7 +322,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
         break;
     }
 
-    ret = xsm_domctl(XSM_OTHER, d, op->cmd);
+    ret = xsm_domctl(XSM_OTHER, d, op->cmd,
+                     /* SSIDRef only applicable for cmd == createdomain */
+                     op->u.createdomain.ssidref);
     if ( ret )
         goto domctl_out_unlock_domonly;
 
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 00d2cbebf25a..709de238e4ef 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -162,7 +162,7 @@ static XSM_INLINE int cf_check xsm_set_target(
 }
 
 static XSM_INLINE int cf_check xsm_domctl(
-    XSM_DEFAULT_ARG struct domain *d, int cmd)
+    XSM_DEFAULT_ARG struct domain *d, int cmd, uint32_t ssidref)
 {
     XSM_ASSERT_ACTION(XSM_OTHER);
     switch ( cmd )
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 8dad03fd3d45..4a6f31ab9c23 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -60,7 +60,7 @@ struct xsm_ops {
     int (*domctl_scheduler_op)(struct domain *d, int op);
     int (*sysctl_scheduler_op)(int op);
     int (*set_target)(struct domain *d, struct domain *e);
-    int (*domctl)(struct domain *d, int cmd);
+    int (*domctl)(struct domain *d, int cmd, uint32_t ssidref);
     int (*sysctl)(int cmd);
     int (*readconsole)(uint32_t clear);
 
@@ -248,9 +248,9 @@ static inline int xsm_set_target(
     return alternative_call(xsm_ops.set_target, d, e);
 }
 
-static inline int xsm_domctl(xsm_default_t def, struct domain *d, int cmd)
+static inline int xsm_domctl(xsm_default_t def, struct domain *d, int cmd, uint32_t ssidref)
 {
-    return alternative_call(xsm_ops.domctl, d, cmd);
+    return alternative_call(xsm_ops.domctl, d, cmd, ssidref);
 }
 
 static inline int xsm_sysctl(xsm_default_t def, int cmd)
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 5e88c71b8e22..3d228a6011f3 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -663,12 +663,21 @@ static int cf_check flask_set_target(struct domain *d, struct domain *t)
     return rc;
 }
 
-static int cf_check flask_domctl(struct domain *d, int cmd)
+static int cf_check flask_domctl(struct domain *d, int cmd, uint32_t ssidref)
 {
     switch ( cmd )
     {
-    /* These have individual XSM hooks (common/domctl.c) */
     case XEN_DOMCTL_createdomain:
+        /*
+         * There is a later hook too, but at this early point simply check
+         * that the calling domain is privileged enough to create a domain.
+         *
+         * Note that d is NULL because we haven't even allocated memory for it
+         * this early in XEN_DOMCTL_createdomain.
+         */
+        return avc_current_has_perm(ssidref, SECCLASS_DOMAIN, DOMAIN__CREATE, NULL);
+
+    /* These have individual XSM hooks (common/domctl.c) */
     case XEN_DOMCTL_getdomaininfo:
     case XEN_DOMCTL_scheduler_op:
     case XEN_DOMCTL_irq_permission:

base-commit: 8b5016e28737f140926619b14b8ca291dc4c5e62
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 16:30:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 16:30:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767005.1177563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYTGI-0004pZ-09; Mon, 29 Jul 2024 16:30:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767005.1177563; Mon, 29 Jul 2024 16: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 1sYTGH-0004pS-SK; Mon, 29 Jul 2024 16:30:13 +0000
Received: by outflank-mailman (input) for mailman id 767005;
 Mon, 29 Jul 2024 16:30: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=oYFf=O5=bounce.vates.tech=bounce-md_30504962.66a7c391.v1-d803707a3069417398f26b8cd2904e63@srs-se1.protection.inumbo.net>)
 id 1sYTGG-0004pM-Ir
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 16:30:12 +0000
Received: from mail145-27.atl61.mandrillapp.com
 (mail145-27.atl61.mandrillapp.com [198.2.145.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2f21523-4dc7-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 18:30:11 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-27.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4WXkNd3dnjz4f3k3v
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 16:30:09 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d803707a3069417398f26b8cd2904e63; Mon, 29 Jul 2024 16:30: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: d2f21523-4dc7-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1722270609; x=1722531109;
	bh=Ruy1Q7hG2+TYV4ovuEb0fCW3N1ymemBberSeQrXFI40=;
	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=SxP7Jm/s0235zPNU+EDtBAJihoAgJ1nVN3EIEV4dcl9XL1AQ9PNvLwSe6OjiHnQFV
	 0NG80l/xF4KpuUhhL21/RJz0fP/GCpWjbDLFifFXcJ/KlLmteytioLPxgm/QmO/2qy
	 Peg1DvWYLh+iCxXx2ugp8wpJi7IrZyCPi2atnI64lhIo+HZKJ9cP/o6jm+1hw87vg7
	 ixD+CL2P4sz/HCBNN7JLcLHjX1YNaWv5KGzIiGvYNoWA9sukPKWGVuuCrSTx2ibgOm
	 pa9Ew9AYCEQ2P/OkeCg5nl/Iecz59kztj01dPaesppg4fq/9ihDY6ocu4g/CKB89Lk
	 cV62O+hWGH++Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1722270609; x=1722531109; i=anthony.perard@vates.tech;
	bh=Ruy1Q7hG2+TYV4ovuEb0fCW3N1ymemBberSeQrXFI40=;
	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=a6EcfDtlfSt8UJ/d9AHxlGvOz4qVLT6arUemw7iocEG8Agqr46/3n1uGu3A2W2kJc
	 eVt3Nns8zcKFamUE8fxiLyBeqIKqb1QND0YqTweOh5djNw7f6riMZnVMhb5RczreJH
	 avk6hqr1+k0kdwi+5llKPNfaA4SaeeywnxiHNiiTCLQZXt/qE1nG1tshmK24B6YQwK
	 UhXmH4PVFunZ55LHJs7wdYL4sZ6AbO6FZsI/YHSZHHBcGb9UsPly7ytIhY+4p09gEs
	 HvVpaqrgY8kOxw3kfm+IqHvl8GUlXOKiwN7ytpIArhhlXi3m+bI/Hu5oCV0BjofImo
	 uB167IeqCnPrA==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20XEN=20PATCH=20v12=206/7]=20tools:=20Add=20new=20function=20to=20get=20gsi=20from=20dev?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1722270607522
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>, "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>
Message-Id: <ZqfDjjpq6zDZojJi@l14>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com> <20240708114124.407797-7-Jiqian.Chen@amd.com> <ZovpKmmoabIvy135@l14> <BL1PR12MB5849BEF865F5E6413402C219E7DB2@BL1PR12MB5849.namprd12.prod.outlook.com>
In-Reply-To: <BL1PR12MB5849BEF865F5E6413402C219E7DB2@BL1PR12MB5849.namprd12.prod.outlook.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.d803707a3069417398f26b8cd2904e63?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240729:md
Date: Mon, 29 Jul 2024 16:30:09 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Tue, Jul 09, 2024 at 03:35:57AM +0000, Chen, Jiqian wrote:
> On 2024/7/8 21:27, Anthony PERARD wrote:
> > You could reuse the already opened fd from libxencall:
> >     xencall_fd(xch->xcall)
> Do I need to check it this fd<0?

No, it should be good to use.

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 Jul 29 16:32:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 16:32:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767015.1177572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYTIC-0005Ur-AF; Mon, 29 Jul 2024 16:32:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767015.1177572; Mon, 29 Jul 2024 16:32:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYTIC-0005Uk-6h; Mon, 29 Jul 2024 16:32:12 +0000
Received: by outflank-mailman (input) for mailman id 767015;
 Mon, 29 Jul 2024 16:32: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=QfTU=O5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYTIA-0005Uc-LR
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 16:32:10 +0000
Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com
 [2607:f8b0:4864:20::82a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 191486bf-4dc8-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 18:32:08 +0200 (CEST)
Received: by mail-qt1-x82a.google.com with SMTP id
 d75a77b69052e-44f666d9607so18308791cf.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 09:32:08 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe81745aesm42669781cf.51.2024.07.29.09.32.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 09:32: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: 191486bf-4dc8-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722270727; x=1722875527; 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=YBffJ6t/sO1GIH1ET9H2l2N6LNi8NyHOyJ9i6dO7VUo=;
        b=RJ56x0SVIhKomfoG1aJZVYUKUMCkCkJfXLRUA4yPuTlD1OaF5HKaNkFHDxbjAk2v/n
         1QGwW/DMEQiHTH7PTFUcuMxwAkgk8BF0rUvfyUfQm3LmjVqvefnBeOrFXsQntL3kKMiM
         7v1C4fPX7YfHCyaO2TwS1JVnQTgaHkfWrVpUQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722270727; x=1722875527;
        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=YBffJ6t/sO1GIH1ET9H2l2N6LNi8NyHOyJ9i6dO7VUo=;
        b=A1ED5qyVS6u5ae3fyqPGKEQYv6SdHO1AETOlDcWi0fGOWOVzOSs0DBrXkCVsCKqAaq
         XJN8RNkvjA4rC8552eXMoylhbv8LDi2DbgwgAKZcPjxiNLdoCPwPDwA3ubmgaHI8u8T+
         H4A6ORGMBrY0FQRl/+DY//yrFWgd8OIRGHh8xe3PV/5S7jSF89UP1RDzs6BLd14U+kun
         7gDJeg2sq7srF8JH1dz9RBg1xHhYM8n7t5IAfgs7Izw3McEZNsngLjZbCne+ue93T8S3
         XZ2upiricppVpDnsxw6fuasyzUUXHDKVAdAcP14He8u7ScUGbOsg+bRxWG1PFjF1DM2W
         h4lg==
X-Gm-Message-State: AOJu0YzLEg8LJYOF21uH+MHA6EUmc0cGVw/g4RvAHb/pOBir6ZMWBgC2
	eZfmpOm/yPxD5eVODdkO8j85zBEpMMib7MqrFcAO4EyVSBb4JExz+jkP+iNNsvU=
X-Google-Smtp-Source: AGHT+IFa4Y/m7QKgo9qurwcsabqkUX8JbXyniIvPmNB+ltxYXyDJjA3aRvs8llpfTCvtuku79HxcEw==
X-Received: by 2002:ac8:5f95:0:b0:44f:e2ba:2d66 with SMTP id d75a77b69052e-45004dfd4fdmr103266781cf.18.1722270727490;
        Mon, 29 Jul 2024 09:32:07 -0700 (PDT)
Date: Mon, 29 Jul 2024 18:32:05 +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, alejandro.vallejo@cloud.com,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH 03/22] x86/dom0: only disable SMAP for the PV dom0 build
Message-ID: <ZqfEBfcxJL87deDx@macbook>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-4-roger.pau@citrix.com>
 <3077368e-caba-42ad-b6ac-3406ca5c4861@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3077368e-caba-42ad-b6ac-3406ca5c4861@citrix.com>

On Mon, Jul 29, 2024 at 04:59:09PM +0100, Andrew Cooper wrote:
> On 26/07/2024 4:21 pm, Roger Pau Monne wrote:
> > diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> > index eee20bb1753c..bc387d96b519 100644
> > --- a/xen/arch/x86/setup.c
> > +++ b/xen/arch/x86/setup.c
> > @@ -955,26 +955,9 @@ static struct domain *__init create_dom0(const module_t *image,
> >          }
> >      }
> >  
> > -    /*
> > -     * Temporarily clear SMAP in CR4 to allow user-accesses in construct_dom0().
> > -     * This saves a large number of corner cases interactions with
> > -     * copy_from_user().
> > -     */
> > -    if ( cpu_has_smap )
> > -    {
> > -        cr4_pv32_mask &= ~X86_CR4_SMAP;
> > -        write_cr4(read_cr4() & ~X86_CR4_SMAP);
> > -    }
> > -
> >      if ( construct_dom0(d, image, headroom, initrd, cmdline) != 0 )
> >          panic("Could not construct domain 0\n");
> >  
> > -    if ( cpu_has_smap )
> > -    {
> > -        write_cr4(read_cr4() | X86_CR4_SMAP);
> > -        cr4_pv32_mask |= X86_CR4_SMAP;
> > -    }
> > -
> 
> Hang on.  Isn't this (preexistingly) broken given the distinction
> between cpu_has_smap and X86_FEATURE_XEN_SMAP ?

I see, looks like Xen will unconditionally enable SMAP if the user has
requested SMP for HVM only.  Forcefully disabling SMAP for both PV and
HVM will result in the CPUID bit getting cleared, and hence
cpu_has_smap == false.

> I'm very tempted to use this as a justification to remove opt_smap.

Oh, so my change fixes that bug by caching the previous cr4 instead of
using cpu_has_smap.

It seems like opt_smap is useful for the PV shim, as it caused some
unnecessary performance degradation on AMD hardware due to AMD not
allowing to selectively trap accesses to CR4, so on pvshim mode
it gets disabled:

b05ec9263e56 x86/sm{e, a}p: do not enable SMEP/SMAP in PV shim by default on AMD

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 16:32:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 16:32:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767017.1177581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYTIT-0005tW-J2; Mon, 29 Jul 2024 16:32:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767017.1177581; Mon, 29 Jul 2024 16: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 1sYTIT-0005tP-Ga; Mon, 29 Jul 2024 16:32:29 +0000
Received: by outflank-mailman (input) for mailman id 767017;
 Mon, 29 Jul 2024 16:32:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pZrP=O5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYTIR-0005sp-V1
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 16:32:27 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 240127f1-4dc8-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 18:32:26 +0200 (CEST)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-52ed9b802ceso4452390e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 09:32:26 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52fd5c19aaesm1554442e87.185.2024.07.29.09.32.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 09:32: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: 240127f1-4dc8-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722270746; x=1722875546; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=1WmRZqnnBctnsmGuHbBlHpFp7XEp/UwX4oCLiQS8AvM=;
        b=Fiui5DIlr1AtIeq7FYbBE/r7gURN6HwS2gaCM/yT+4hf9J8+xL9QRol+y/fFICUJjO
         ikPqWJ90P8iYhuYERtzzHjmT6KS9o6Kt5PL95899iC7QP06bA68TyQ71HH4tZnw7eLxq
         uL4ZIfEAhP/2r+NkLKtpOHtKt6yc7PYVKVFfMzP95hlvL1jpVxq1jOtIc2W8PYZ/uGiB
         v+GNCm6yncvE38N5qxsrzn9JfqgHUSotbUBpJMWW9Y3281XSziBnoh5+QX6b/jAbJ0t5
         JugOBLgdWTxp9B116iHZZ2u/2mysh5eLX4cAwtEKp/DlqaO9hDHJjWI2m0iFNRc5F4dU
         ejtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722270746; x=1722875546;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1WmRZqnnBctnsmGuHbBlHpFp7XEp/UwX4oCLiQS8AvM=;
        b=PUcCAOom07TESqIwMD15ydubQyuhjV3fIX+TIG8U0S0mHz3pJNm2ec1odkqoq/mppP
         Ik0+lmFVVea0FLlLPgIwLoi8nOaABBQW8a59SpP8SbE9ruCDFnyZ14GIKwCHFUxixCny
         CnGcAbjAw5dlkn1Kznp+zq5Qy5NjU8fhQTbHXcySE+xElHucDU3fasAolGrZmyqFe5pP
         VCnPtMPBaY6BxnXcG4bgq4qrmY7UOmhcN5MEiKS5CYyc9aqr/0of5VDh3n5hs3V/QcFM
         Tp6DoAazOamPzb2M3lqgz1ieBuRo/XEmrNcyFo80gNeJtet5qaE0Kq6nzPgSNtOkVggJ
         2a8A==
X-Forwarded-Encrypted: i=1; AJvYcCUrEGwWb9XrxMKthl4gCV1d+2/e2zigOqHvS7KvxNbpnPbcqtZmBsM1sm/q/4rkFACCPqYrsmb5gVRMU+kHRZq7tCrmGfG9zPd+bgElRDQ=
X-Gm-Message-State: AOJu0Yw0+dd3dqYzBit39jn9QfxUcGU5ObrWXaK1sf2RKSLMC/vvl7dq
	DAlK74xLR4kj95zIUpExNiYkSq48Ka0ZV71BU7GWv1ZSj8QLpx3O
X-Google-Smtp-Source: AGHT+IHfLqgai3Y8lol/ByCT1xwt1Jle6NBA5r02y4m9CZ1J1VnTs90N96ViIVfCcy3Fct6jlY/NNA==
X-Received: by 2002:ac2:4db6:0:b0:52f:cd03:a850 with SMTP id 2adb3069b0e04-5309b27d44fmr5844414e87.32.1722270745468;
        Mon, 29 Jul 2024 09:32:25 -0700 (PDT)
Message-ID: <370588e93fe59acb0ae1f26416541290004e593b.camel@gmail.com>
Subject: Re: [PATCH v3 6/9] xen/riscv: introduce functionality to work with
 cpu info
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Mon, 29 Jul 2024 18:32:24 +0200
In-Reply-To: <113b9d4a-d31c-4491-bf8c-96ac97d98f45@suse.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
	 <4ea9005d4209e24df9b30a7b3c282276084a3cf1.1721834549.git.oleksii.kurochko@gmail.com>
	 <113b9d4a-d31c-4491-bf8c-96ac97d98f45@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-29 at 17:28 +0200, Jan Beulich wrote:
> On 24.07.2024 17:31, Oleksii Kurochko wrote:
> > --- a/xen/arch/riscv/include/asm/processor.h
> > +++ b/xen/arch/riscv/include/asm/processor.h
> > @@ -12,8 +12,39 @@
> > =C2=A0
> > =C2=A0#ifndef __ASSEMBLY__
> > =C2=A0
> > -/* TODO: need to be implemeted */
> > -#define smp_processor_id() 0
> > +#include <xen/bug.h>
> > +#include <xen/types.h>
> > +
> > +register struct pcpu_info *tp asm ("tp");
> > +
> > +struct pcpu_info {
> > +=C2=A0=C2=A0=C2=A0 unsigned int processor_id;
> > +};
> > +
> > +/* tp points to one of these */
> > +extern struct pcpu_info pcpu_info[NR_CPUS];
> > +
> > +#define get_processor_id()=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (tp->processo=
r_id)
> > +#define set_processor_id(id)=C2=A0=C2=A0=C2=A0 do { \
> > +=C2=A0=C2=A0=C2=A0 tp->processor_id =3D id;=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
>=20
> Nit: Parentheses around id please.
>=20
> > +} while(0)
>=20
> While often we omit the blanks inside the parentheses for such
> constructs, the one ahead of the opening paren should still be there.
>=20
> > +static inline unsigned int smp_processor_id(void)
> > +{
> > +=C2=A0=C2=A0=C2=A0 unsigned int id;
> > +
> > +=C2=A0=C2=A0=C2=A0 id =3D get_processor_id();
> > +
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * Technically the hartid can be greater than =
what a uint can
> > hold.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * If such a system were to exist, we will nee=
d to change
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * the smp_processor_id() API to be unsigned l=
ong instead of
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * unsigned int.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0 BUG_ON(id > UINT_MAX);
>=20
> Compilers may complaing about this condition being always false. But:
> Why
> do you check against UINT_MAX, not against NR_CPUS?=C2=A0
Because HART id theoretically could be greater then what unsigned int
can provide thereby NR_CPUS could be also greater then unsigned int (
or it can't ? ).
Generally I agree it would be better to compare it with NR_CPUS.

> It's not the hart ID
> your retrieving get_processor_id(), but Xen's, isn't it?
You are right it is Xen's CPU id.


>  Even if I'm
> missing something here, ...
>=20
> > --- a/xen/arch/riscv/include/asm/smp.h
> > +++ b/xen/arch/riscv/include/asm/smp.h
> > @@ -5,6 +5,8 @@
> > =C2=A0#include <xen/cpumask.h>
> > =C2=A0#include <xen/percpu.h>
> > =C2=A0
> > +#define INVALID_HARTID UINT_MAX
>=20
> ... this implies that the check above would need to use >=3D.
>=20
> > @@ -14,6 +16,14 @@ DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);
> > =C2=A0 */
> > =C2=A0#define park_offline_cpus false
> > =C2=A0
> > +void smp_setup_processor_id(unsigned long boot_cpu_hartid);
> > +
> > +/*
> > + * Mapping between linux logical cpu index and hartid.
> > + */
> > +extern unsigned long __cpuid_to_hartid_map[NR_CPUS];
> > +#define cpuid_to_hartid_map(cpu) __cpuid_to_hartid_map[cpu]
>=20
> May I please ask that there be no new variables with double
> underscores
> at the front or any other namespacing violations?
I just couldn't come up with better naming for __cpuid_to_hartid_map[]
to show that it is private array. I will update the namings here.

> > --- a/xen/arch/riscv/setup.c
> > +++ b/xen/arch/riscv/setup.c
> > @@ -40,6 +40,19 @@ void __init noreturn start_xen(unsigned long
> > bootcpu_id,
> > =C2=A0{
> > =C2=A0=C2=A0=C2=A0=C2=A0 remove_identity_mapping();
> > =C2=A0
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * tp register contains an address of physical=
 cpu
> > information.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * So write physical CPU info of boot cpu to t=
p register
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * It will be used later by get_processor_id()=
 to get
> > process_id ( look at
>=20
> process_id?
I meant processor_id here.

>=20
>=20
> > +};
> > +
> > +void __init smp_setup_processor_id(unsigned long boot_cpu_hartid)
> > +{
> > +=C2=A0=C2=A0=C2=A0 cpuid_to_hartid_map(0) =3D boot_cpu_hartid;
> > +}
>=20
> The function name suggests this can be used for all CPUs, but the
> code is pretty clear abut this being for the boot CPU only.
Then I will rename it to setup_bootcpu_id(...).

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 16:37:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 16:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767032.1177591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYTN2-00077v-5Q; Mon, 29 Jul 2024 16:37:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767032.1177591; Mon, 29 Jul 2024 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 1sYTN2-00077o-2R; Mon, 29 Jul 2024 16:37:12 +0000
Received: by outflank-mailman (input) for mailman id 767032;
 Mon, 29 Jul 2024 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=pZrP=O5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYTN1-0006xn-Lv
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 16:37:11 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd1585df-4dc8-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 18:37:10 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2f0dfdc9e16so43396081fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 09:37:10 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac64eb399esm5955843a12.65.2024.07.29.09.37.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 29 Jul 2024 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: cd1585df-4dc8-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722271029; x=1722875829; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=0erfytgjUyrrVAKxrWsImdEcQHX/DgiaLlPdBMMadMg=;
        b=OOrQz0W3CHD3MatqgW7K50cmvGM37dz7JjtjWc2zZRxsLZJSR3R/jrxH73tORURnDW
         W9eEq7/wjIkWpKJzO2VmQAHo5XO0O79eVqSlUN0/bEzlxHWUR6M9CAkSuTugeIVXCO0N
         2itiAoDLRe1oGYbF6O1eDyk2zjlMhrO4akpP6JJyL4pLUH8rU4V5ljcSinPgeJ2917OC
         gcgIsOlxXnZFFTgjbtQ8UH+dDpaIj4SoLPbxMC1QvfBZSpOzMtoXsjIfnetaUHIfW1fW
         ikmhhfiDcVQDSnlLNQZ1jn0BZ0nZXtMJPlfvtCUvsKk6vGxrRZ5F73w5EOaN6wj6uIVy
         Xq3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722271029; x=1722875829;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0erfytgjUyrrVAKxrWsImdEcQHX/DgiaLlPdBMMadMg=;
        b=LFED/EJFb3vVm4595pB21nFA9Swad605ZEd3coftJgljkaxNNeARZPRRkE5Q+8N67e
         9sjtpzaRtDeTcu/XY2P/h6vtjQVHxEyjHA8/7PATM2iSPC2HKtIYyqcexpi3sG/h7IDB
         ELWB63/QIb8OplvVCOuxjsw2ZcPalXmDzTjxR5zYNOi+878RyIV7UIbdCAWRt8lc2RrH
         k4BcHvfJACq5Ft0DobHsMEf72y9KIbRobifrOYMs4/dXGZZcLzrS76HaV0Qol9MLD5Ju
         RmmuawdxoFSD1rfdvTFpJIgB0ywHhx7NgoauTvKR9V0nMg9vpO6vsvpU1+nL2n0O4NKK
         QK+A==
X-Gm-Message-State: AOJu0YxO5zxFXzoPQkFCOnjNDRGUlUhB0Rr12jPs8pQ9EIg3/ktpqubb
	zD/0eePN4vsrC3GEjXVaAvsTmCzSKjiDQKUi9FuZ73uAkDMAIZVXbTarYG8L
X-Google-Smtp-Source: AGHT+IG0NfwwivFaFYyBwUQ/63KGr8d+2KeYsqLVWNPiLN8s8FMo0R7OSVIU/9zHv9wuOWEme43L8g==
X-Received: by 2002:a2e:331a:0:b0:2ef:2dac:9078 with SMTP id 38308e7fff4ca-2f12ee04fbfmr49595011fa.16.1722271029210;
        Mon, 29 Jul 2024 09:37:09 -0700 (PDT)
Message-ID: <16a02674155acf49540d4cd23082a88ba0b9b4ff.camel@gmail.com>
Subject: Re: [PATCH v11 4/5] xen/riscv: enable GENERIC_BUG_FRAME
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Date: Mon, 29 Jul 2024 18:37:08 +0200
In-Reply-To: <7c03ed78-7c80-45bf-acf3-a916b7abb7d5@suse.com>
References: <cover.1721731887.git.oleksii.kurochko@gmail.com>
	 <b79bcfb9031564fc8d275af66fa94c1e82e54de2.1721731887.git.oleksii.kurochko@gmail.com>
	 <7c03ed78-7c80-45bf-acf3-a916b7abb7d5@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-29 at 15:00 +0200, Jan Beulich wrote:
> On 24.07.2024 17:31, Oleksii Kurochko wrote:
> > To have working BUG(), WARN(), ASSERT, run_in_exception_handler()
> > it is needed to enable GENERIC_BUG_FRAME.
> >=20
> > ebreak is used as BUG_insn so when macros from <xen/bug.h> are
> > used, an exception with BREAKPOINT cause will be generated.
> >=20
> > ebreak triggers a debug trap, which starts in debug mode and is
> > then filtered by every mode. A debugger will first handle the
> > debug trap and check if ebreak was set by it or not. If not,
> > CAUSE_BREAKPOINT will be generated for the mode where the ebreak
> > instruction was executed.
>=20
> Here and in the similar code comment you talk about an external
> debugger, requiring debug mode, which is an optional feature. In
> my earlier comments what I was referring to was pure software
> debugging. I continue to fail to see how properly distinguishing
> ebreak uses for breakpoints from ebreak uses for e.g. BUG() and
> WARN() is going to be feasible.
I am using GDB now and everything working well.

>=20
> > @@ -103,7 +104,39 @@ static void do_unexpected_trap(const struct
> > cpu_user_regs *regs)
> > =C2=A0
> > =C2=A0void do_trap(struct cpu_user_regs *cpu_regs)
> > =C2=A0{
> > -=C2=A0=C2=A0=C2=A0 do_unexpected_trap(cpu_regs);
> > +=C2=A0=C2=A0=C2=A0 register_t pc =3D cpu_regs->sepc;
> > +=C2=A0=C2=A0=C2=A0 unsigned long cause =3D csr_read(CSR_SCAUSE);
> > +
> > +=C2=A0=C2=A0=C2=A0 switch ( cause )
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * ebreak is used as BUG_insn so when macros f=
rom <xen/bug.h>
> > are
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * used, an exception with BREAKPOINT cause wi=
ll be generated.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 *
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * ebreak triggers a debug trap, which starts =
in debug mode
> > and is
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * then filtered by every mode. A debugger wil=
l first handle
> > the
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * debug trap and check if ebreak was set by i=
t or not. If
> > not,
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * CAUSE_BREAKPOINT will be generated for the =
mode where the
> > ebreak
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * instruction was executed.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0 case CAUSE_BREAKPOINT:
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( do_bug_frame(cpu_regs,=
 pc) >=3D 0 )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if =
( !(is_kernel_text(pc) || is_kernel_inittext(pc)) )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 printk("Something wrong with PC: %#lx\n", pc);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 die();
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu=
_regs->sepc +=3D GET_INSN_LENGTH(*(uint16_t *)pc);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 break;
>=20
> Wouldn't you better fall through here, with the "break" moved into
> the if()'s body?
It makes sense to me. Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 17:12:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 17:12:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767043.1177601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYTua-0005cm-Oc; Mon, 29 Jul 2024 17:11:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767043.1177601; Mon, 29 Jul 2024 17: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 1sYTua-0005cf-LO; Mon, 29 Jul 2024 17:11:52 +0000
Received: by outflank-mailman (input) for mailman id 767043;
 Mon, 29 Jul 2024 17:11:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYTuZ-0005cV-SO; Mon, 29 Jul 2024 17:11:51 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYTuZ-0002vG-Mj; Mon, 29 Jul 2024 17:11:51 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYTuZ-0005wl-AN; Mon, 29 Jul 2024 17:11:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYTuZ-0005mB-9n; Mon, 29 Jul 2024 17:11:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=qGKmSqkeGTNPBB9xtFVDkchxR/lw+BkiagAGpIe3hRQ=; b=aRCkO+ty2k46x2LgBGGca5vUSH
	1RIpq7gt0qbT1gat6fmIqqW2sq4fRud+UCGdzVHVhmCAgcgeDYJMKppMI95/oJfoF92Ts2tHHeZuE
	cY4ECYMYE5RYq9P/oxK5wUGdw9vHmgpCh0nSCuzPqsev2wi1UB9U9xAGN3F8Gtf717jI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187042-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187042: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=be1d408773504df8b95a2a81be7b558276ba5356
X-Osstest-Versions-That:
    ovmf=43e2395c1b130540820957305451340e1fff81e4
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Jul 2024 17:11:51 +0000

flight 187042 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187042/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 be1d408773504df8b95a2a81be7b558276ba5356
baseline version:
 ovmf                 43e2395c1b130540820957305451340e1fff81e4

Last test of basis   187040  2024-07-29 07:15:16 Z    0 days
Testing same since   187042  2024-07-29 14:13:49 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Pierre Gondois <pierre.gondois@arm.com>
  Sami Mujawar <sami.mujawar@arm.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   43e2395c1b..be1d408773  be1d408773504df8b95a2a81be7b558276ba5356 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 17:51:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 17:51:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767057.1177623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYUX2-0003Wr-QG; Mon, 29 Jul 2024 17:51:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767057.1177623; Mon, 29 Jul 2024 17:51: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 1sYUX2-0003Wk-Nf; Mon, 29 Jul 2024 17:51:36 +0000
Received: by outflank-mailman (input) for mailman id 767057;
 Mon, 29 Jul 2024 17:51: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=U+rL=O5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYUX1-0003We-SW
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 17:51:35 +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 316157ee-4dd3-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 19:51:33 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4281f00e70cso7820605e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 10:51:33 -0700 (PDT)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-36b367d9576sm12952910f8f.31.2024.07.29.10.51.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 10:51: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: 316157ee-4dd3-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722275493; x=1722880293; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jF1MrwtNaChbQg+KF324+dQeLVOpu3FAPmGNawyI/1Q=;
        b=Uz6+CbDq/j5oxRphMfigofNroaK2cB2dAmu4/vPMdOQ1cUgAwHIukb78wpBVQNZiTJ
         XXHnu7V9Mx7s9F0QJz7sldip6hkXgb/9RzbrSxtl4Ef4WmYJAvqB7QFGgwnBscrSS6xs
         8w/OWpvM8qY9HwRXRR1gVbHYqBfftOa2S6U0g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722275493; x=1722880293;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jF1MrwtNaChbQg+KF324+dQeLVOpu3FAPmGNawyI/1Q=;
        b=woLAVdWqFH+GCX87E2V4SNlJBIr23F18/LoO9VZFe/bPgu4wSlEyUA32t1S19k/33a
         2RS6bdqehw1eZwLPlXYDu4d6BAd4yDWewoDuICDntadWnnKRCId7Ou/VF/OV76a11zyn
         shkFMiD9jz8vdmyZsjgrVi2SBaQNsqc0vCIwDiaajeRyK2X4ECdVQGh78ad4nXgeWHdo
         tHw3d2qFM7cRix7dKukTudyQr2Osn/AKZPfEtw1uY67bub45KnGiDajwHSF6eDiUvF1a
         NV9iNV6akJHlCr/zBfoXLiT1n29KgQlSHdgT0Dm8dwZk7IXsttdTuIkGr9psuzCRa0Fh
         NiLw==
X-Forwarded-Encrypted: i=1; AJvYcCX4MKXMeMqJS5fZTwVSyvkGQWjXQxIYwSniOoi5L8tsc076zt6pKpK4HuGDYYTM5BLEJTCLAGXeHMOogdCuYk9rcVYhvpPL3diQSY/6cWs=
X-Gm-Message-State: AOJu0Yyc4deIeCJfKwtd6m3NBnpETBR0ewUiGagTy8ZwbrNR/rkfZZbx
	D619t6suD11R2JGm3LmKv76BpkUIYM6ukWpfGeLbi/QStUCRa/UQ3qMKSpOLs+U=
X-Google-Smtp-Source: AGHT+IFgZReSXzQR3V1ms2jn3NdMEb51xhy/KS6cshqTc8JauKclPeJJrUt+UIFPwZIH3w5DbCImPg==
X-Received: by 2002:a5d:6787:0:b0:362:d382:2569 with SMTP id ffacd0b85a97d-36b5d08f68bmr5297976f8f.44.1722275492705;
        Mon, 29 Jul 2024 10:51:32 -0700 (PDT)
Message-ID: <542807c8-425b-481f-b02f-dd657c12ef5d@citrix.com>
Date: Mon, 29 Jul 2024 18:51:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/22] x86/dom0: only disable SMAP for the PV dom0 build
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, alejandro.vallejo@cloud.com,
 xen-devel@lists.xenproject.org
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-4-roger.pau@citrix.com>
 <b1918f51-1ac0-40f8-9174-d8161b2681dd@suse.com>
 <5aad5f48-e32e-4a59-bcef-05adec0ecbec@citrix.com> <ZqfA714LUFgZOYqw@macbook>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZqfA714LUFgZOYqw@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/07/2024 5:18 pm, Roger Pau Monné wrote:
> On Mon, Jul 29, 2024 at 04:52:22PM +0100, Andrew Cooper wrote:
>> On 29/07/2024 12:53 pm, Jan Beulich wrote:
>>> On 26.07.2024 17:21, Roger Pau Monne wrote:
>>>> The PVH dom0 builder doesn't switch page tables and has no need to run with
>>>> SMAP disabled.
>>>>
>>>> Put the SMAP disabling close to the code region where it's necessary, as it
>>>> then becomes obvious why switch_cr3_cr4() is required instead of
>>>> write_ptbase().
>>>>
>>>> Note removing SMAP from cr4_pv32_mask is not required, as we never jump into
>>>> guest context, and hence updating the value of cr4_pv32_mask is not relevant.
>>> I'm okay-ish with that being dropped, but iirc the goal was to keep the
>>> variable in sync with CPU state.
>> Removing SMAP from cr4_pv32_mask is necessary.
>>
>> Otherwise IST vectors will reactive SMAP behind the back of the dombuilder.
>>
>> This will probably only manifest in practice in a CONFIG_PV32=y build,
> Sorry, I'm possibly missing some context here.  When running the dom0
> builder we switch to the guest page-tables, but not to the guest vCPU,
> (iow: current == idle) and hence the context is always the Xen
> context.

Correct.

> Why would the return path of the IST use cr4_pv32_mask when the
> context in which the IST happened was the Xen one, and the current
> vCPU is the idle one (a 64bit PV guest from Xen's PoV).
>
> My understanding is that cr4_pv32_mask should only be used when the
> current context is running a 32bit PV vCPU.

This logic is evil to follow, because you need to look at both
cr4_pv32_mask and XEN_CR4_PV32_BITS to see both halves of it.

Notice how cr4_pv32_restore() only ever OR's cr4_pv32_mask into %cr4?

CR4_PV32_RESTORE is called from every entry path which *might* have come
from a 32bit PV guest, and it always results in Xen having SMEP/SMAP
active (as applicable).  This includes NMI.

The change is only undone in compat_restore_all_guest(), where
XEN_CR4_PV32_BITS is cleared from %cr4 iff returning to Ring1/2.  This
is logic cunningly disguised in the use of the Parity flag.


Because the NMI handler does reactive SMEP/SMAP (based on the value in
cr4_pv32_mask), and returning to Xen does not pass through
compat_restore_all_guest(), taking an NMI in the middle of of the
dombuilder will reactive SMAP behind your back.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 18:36:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 18:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767066.1177634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYVEU-00010R-5Z; Mon, 29 Jul 2024 18:36:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767066.1177634; Mon, 29 Jul 2024 18: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 1sYVEU-00010K-1n; Mon, 29 Jul 2024 18:36:30 +0000
Received: by outflank-mailman (input) for mailman id 767066;
 Mon, 29 Jul 2024 18:36:28 +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 1sYVES-0000yV-Dl
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 18:36:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYVER-0004NX-Pp; Mon, 29 Jul 2024 18:36:27 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.0.211])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYVER-0000qW-Hp; Mon, 29 Jul 2024 18:36: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=KjvEYtc9GLw6AYpclvrKLl0ilJRyrS7Ibi0cpJ88ogw=; b=KH5TxQiRuQcIBi52DYxCEu6YrP
	mBAdOu2sN+yMuK9kp+1bGklm4E2GQyhIZOmKIaps+HjOpum2Cn46ymo4vxedSKzSa8FWAa/uHctvI
	xo/duG3oHqgxH/GuXJxIpIuMFY2wj7C59OObH584VBLd1Nrksjqqqok+mu1UymSRi018=;
Message-ID: <d313f39a-f5aa-4611-975e-bc64759bbd01@xen.org>
Date: Mon, 29 Jul 2024 19:36:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xen/arm: stack check instrumentation
Content-Language: en-GB
To: Stewart Hildebrand <stewart.hildebrand@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: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-4-stewart.hildebrand@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20240729142421.137283-4-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stewart,

On 29/07/2024 15:24, Stewart Hildebrand wrote:
> Use the -finstrument-functions option to check that the stack pointer is

Is the feature supported by both clang and GCC? If so, which from versions?

 From README, this is what we currently support.

       - For ARM 32-bit:
         - GCC 4.9 or later
         - GNU Binutils 2.24 or later
       - For ARM 64-bit:
         - GCC 5.1 or later
         - GNU Binutils 2.24 or later

We don't mention Clang, but I would expect a clang from 4-5 years should 
still be Arm (not cross-compile as we never fully added the support).


> valid upon each function entry. Only enable it for debug builds due to
> the overhead introduced.

How much overhead is it? We use debug builds during the dev cycle, so we 
need to make sure this is not noticeable.

In any case, it would be better if this new option is under its own 
kconfig options. We can separately decide whether it is on or off by 
default when CONFIG_DEBUG=y.

> 
> Use per-cpu variables to store the stack base and nesting level. The
> nesting level is used to avoid invoking __cyg_profile_func_enter
> recursively.
> 
> A check is added for whether per-cpu data has been initialized. Since
> TPIDR_EL2 resets to an unknown value, initialize it to an invalid value.
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
> RFC: I only tested this on arm64. I still need to test with arm32.
> 
> RFC: Should we put this under its own config option instead of reusing
>       CONFIG_DEBUG?

See above.

> 
> RFC: Is there a better value for INVALID_PER_CPU_OFFSET? We can't use 0
>       because 0 is a valid value for get_per_cpu_offset().

I would consider to use ~0 because this is very unlikely to be used as 
an offset (at least on arm64).

> ---
>   xen/arch/arm/arch.mk             |  1 +
>   xen/arch/arm/arm64/head.S        |  4 +++
>   xen/arch/arm/domain.c            |  3 +++
>   xen/arch/arm/include/asm/page.h  |  2 ++
>   xen/arch/arm/include/asm/traps.h |  8 ++++++
>   xen/arch/arm/setup.c             |  4 +++
>   xen/arch/arm/smpboot.c           |  3 +++
>   xen/arch/arm/traps.c             | 45 ++++++++++++++++++++++++++++++++
>   8 files changed, 70 insertions(+)
> 
> diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
> index 022dcda19224..c39cb65d183d 100644
> --- a/xen/arch/arm/arch.mk
> +++ b/xen/arch/arm/arch.mk
> @@ -12,6 +12,7 @@ CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access
>   CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
>   CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
>   $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
> +CFLAGS-$(CONFIG_DEBUG) += -finstrument-functions
>   
>   ifneq ($(filter command line environment,$(origin CONFIG_EARLY_PRINTK)),)
>       $(error You must use 'make menuconfig' to enable/disable early printk now)
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index 2fa07dc3a04b..4a332b9cbc7c 100644
> --- a/xen/arch/arm/arm64/head.S
> +++ b/xen/arch/arm/arm64/head.S
> @@ -399,6 +399,10 @@ FUNC_LOCAL(cpu_init)
>            * than SP_EL0.
>            */
>           msr spsel, #1
> +

I would add a comment explaining what we are doing.

> +        ldr   x0, =INVALID_PER_CPU_OFFSET
> +        msr   tpidr_el2, x0
> +
>           ret
>   END(cpu_init)
>   
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 7cfcefd27944..93ebe6e5f8af 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -26,6 +26,7 @@
>   #include <asm/procinfo.h>
>   #include <asm/regs.h>
>   #include <asm/tee/tee.h>
> +#include <asm/traps.h>
>   #include <asm/vfp.h>
>   #include <asm/vgic.h>
>   #include <asm/vtimer.h>
> @@ -328,6 +329,8 @@ void context_switch(struct vcpu *prev, struct vcpu *next)
>   
>       set_current(next);
>   
> +    stack_set(next->arch.stack);
> +
>       prev = __context_switch(prev, next);
>   
>       schedule_tail(prev);
> diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
> index 69f817d1e68a..6b5aaf1eb3ff 100644
> --- a/xen/arch/arm/include/asm/page.h
> +++ b/xen/arch/arm/include/asm/page.h
> @@ -7,6 +7,8 @@
>   #include <asm/lpae.h>
>   #include <asm/sysregs.h>
>   
> +#define INVALID_PER_CPU_OFFSET            _AC(0x1, UL)
> +
>   /* Shareability values for the LPAE entries */
>   #define LPAE_SH_NON_SHAREABLE 0x0
>   #define LPAE_SH_UNPREDICTALE  0x1
> diff --git a/xen/arch/arm/include/asm/traps.h b/xen/arch/arm/include/asm/traps.h
> index 9a60dbf70e5b..13e6997c2643 100644
> --- a/xen/arch/arm/include/asm/traps.h
> +++ b/xen/arch/arm/include/asm/traps.h
> @@ -118,6 +118,14 @@ static inline register_t sign_extend(const struct hsr_dabt dabt, register_t r)
>   
>   void finalize_instr_emulation(const struct instr_details *instr);
>   
> +#ifdef CONFIG_DEBUG
> +void stack_check_init(void);
> +void stack_set(unsigned char *base);
> +#else
> +static inline void stack_check_init(void) { }
> +static inline void stack_set(unsigned char *base) { }
> +#endif
> +
>   #endif /* __ASM_ARM_TRAPS__ */
>   /*
>    * Local variables:
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 0c2fdaceaf21..07d07feff602 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -47,6 +47,7 @@
>   #include <asm/setup.h>
>   #include <xsm/xsm.h>
>   #include <asm/acpi.h>
> +#include <asm/traps.h>
>   
>   struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
>   
> @@ -733,6 +734,8 @@ void asmlinkage __init start_xen(unsigned long boot_phys_offset,
>       percpu_init_areas();
>       set_processor_id(0); /* needed early, for smp_processor_id() */
>   
> +    stack_check_init();
> +
>       /* Initialize traps early allow us to get backtrace when an error occurred */
>       init_traps();
>   
> @@ -924,6 +927,7 @@ void asmlinkage __init start_xen(unsigned long boot_phys_offset,
>        * since the static one we're running on is about to be freed. */
>       memcpy(idle_vcpu[0]->arch.cpu_info, get_cpu_info(),
>              sizeof(struct cpu_info));
> +    stack_set(idle_vcpu[0]->arch.stack);
>       switch_stack_and_jump(idle_vcpu[0]->arch.cpu_info, init_done);
>   }
>   
> diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
> index 04e363088d60..1c689f2caed7 100644
> --- a/xen/arch/arm/smpboot.c
> +++ b/xen/arch/arm/smpboot.c
> @@ -30,6 +30,7 @@
>   #include <asm/psci.h>
>   #include <asm/acpi.h>
>   #include <asm/tee/tee.h>
> +#include <asm/traps.h>
>   
>   /* Override macros from asm/page.h to make them work with mfn_t */
>   #undef virt_to_mfn
> @@ -329,6 +330,8 @@ void asmlinkage start_secondary(void)
>   
>       set_processor_id(cpuid);
>   
> +    stack_check_init();
> +
>       identify_cpu(&current_cpu_data);
>       processor_setup();
>   
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index aac6c599f878..b4890eec7ec4 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -2325,6 +2325,51 @@ void asmlinkage leave_hypervisor_to_guest(void)
>           arm_smccc_1_1_smc(ARM_SMCCC_ARCH_WORKAROUND_2_FID, 0, NULL);
>   }
>   
> +#ifdef CONFIG_DEBUG

Loooking at the code below. Aside the stack pointer part, nothing seems 
specific to Arm. So maybe this could be moved to common code?

> +DEFINE_PER_CPU(unsigned int, stack_check_nesting);
> +DEFINE_PER_CPU(unsigned char *, stack_base);

I think this could be "const unsigned char *" as the stack should not be 
modified directly.

> +
> +void __attribute__((no_instrument_function)) stack_set(unsigned char *base)
> +{
> +    this_cpu(stack_base) = base;
> +}
> +
> +void __init __attribute__((no_instrument_function)) stack_check_init(void)
> +{
> +    this_cpu(stack_check_nesting) = 0;
> +    stack_set(init_data.stack);
> +}
> +
> +__attribute__((no_instrument_function))
> +void __cyg_profile_func_enter(void *this_fn, void *call_site)
> +{
> +    unsigned char *sp;
> +
> +    if ( get_per_cpu_offset() == INVALID_PER_CPU_OFFSET )
> +        return;
> +
> +    asm volatile ("mov %0, sp" : "=r" (sp) );
> +
> +    if ( sp < this_cpu(stack_base) ||
> +         sp > (this_cpu(stack_base) + STACK_SIZE) )

The top of the stack is used to store struct cpu_info. So you want to 
substract its size (see arch_vcpu_create()).

> +    {
> +        if ( this_cpu(stack_check_nesting) )
> +            return;
> +
> +        this_cpu(stack_check_nesting)++;

Looking at the use, it only seems to be used as "print/panic once". So 
maybe use a bool to avoid any overflow.

> +        printk("CPU %d stack pointer out of bounds (sp %#lx, stack base %#lx)\n",
> +               smp_processor_id(), (uintptr_t)sp,
> +               (uintptr_t)this_cpu(stack_base));
> +        BUG();

I would consider to call panic(). But is it safe to call any of this if 
we blew the stack? IOW, should we have a buffer?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 18:39:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 18:39:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767073.1177643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYVHA-0001Zj-HJ; Mon, 29 Jul 2024 18:39:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767073.1177643; Mon, 29 Jul 2024 18: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 1sYVHA-0001Zc-El; Mon, 29 Jul 2024 18:39:16 +0000
Received: by outflank-mailman (input) for mailman id 767073;
 Mon, 29 Jul 2024 18:39:16 +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 1sYVHA-0001ZW-0T
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 18:39:16 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYVH9-0004Pq-3O; Mon, 29 Jul 2024 18:39:15 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.0.211])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYVH8-00013v-Qg; Mon, 29 Jul 2024 18:39:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=spdveYf6IxIQtWNvnvXw4Hpp/onsxjok8NUfRpDyDIM=; b=BXpV2P4y22pkITBtWj5p9W0ngC
	1tMjREjJ30TJgI6ChaHnKM8mErAqsReMi1dF4n/bWzUayo1rSMVzvUFku2svJIdpTblPc0a9JtOw6
	Jf79UU6cglaJN8yyOnv/syktiO9TExRuQimJlpB2lCn53zpjpZF5VB1y0URXs9HWPJx8=;
Message-ID: <2cfb4a5c-dff8-4202-80dd-c546d5d6bc6d@xen.org>
Date: Mon, 29 Jul 2024 19:39:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/3] Stack checking on Arm
Content-Language: en-GB
To: Stewart Hildebrand <stewart.hildebrand@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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20240729142421.137283-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 29/07/2024 15:24, Stewart Hildebrand wrote:
> This series introduces stack check instrumentation on Arm. This is
> helpful for safety certification efforts. I'm sending this in an RFC
> state because I wanted to gather opinions on the approach of using
> -finstrument-functions.

This looks ok for an initial approach. I wonder if longer term we want 
to implement stack guards on Arm. We would need to allocate an extra 
"virtual" page per stack that would be unmapped.

The advantage is this could be used also in production and doesn't rely 
on any support from the processor.

Any thoughts?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 18:39:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 18:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767075.1177654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYVHT-0001xC-PX; Mon, 29 Jul 2024 18:39:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767075.1177654; Mon, 29 Jul 2024 18: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 1sYVHT-0001x5-MJ; Mon, 29 Jul 2024 18:39:35 +0000
Received: by outflank-mailman (input) for mailman id 767075;
 Mon, 29 Jul 2024 18:39: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 1sYVHS-0001vM-Fd
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 18:39:34 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYVHR-0004QF-Mp; Mon, 29 Jul 2024 18:39:33 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.0.211])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYVHR-00015Q-GN; Mon, 29 Jul 2024 18:39:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=CwmqQYzRkCzhFHaR6z+495eBdJBcOv/u7suq6S0YORo=; b=ttHD922aNvzc3sCqhmA+2Rgdvp
	wyvNVPvHhwiFuHHzu2oY3Mdi+Rcy5Hh9u4SHkENczFLrBTtotvnfkbsinucbgCkxFw5WCxAREnKKg
	Qhe5si0R1NrijSHRhao0DPjXhmClIIDkIFilecRj1Cbu9drG8zYQUydPPkaVRTc0JHgQ=;
Message-ID: <ef2908fc-c21c-401e-8e15-b9c2f9a8e445@xen.org>
Date: Mon, 29 Jul 2024 19:39:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/3] Stack checking on Arm
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Stewart Hildebrand <stewart.hildebrand@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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <2cfb4a5c-dff8-4202-80dd-c546d5d6bc6d@xen.org>
In-Reply-To: <2cfb4a5c-dff8-4202-80dd-c546d5d6bc6d@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 29/07/2024 19:39, Julien Grall wrote:
> Hi,
> 
> On 29/07/2024 15:24, Stewart Hildebrand wrote:
>> This series introduces stack check instrumentation on Arm. This is
>> helpful for safety certification efforts. I'm sending this in an RFC
>> state because I wanted to gather opinions on the approach of using
>> -finstrument-functions.
> 
> This looks ok for an initial approach. I wonder if longer term we want 
> to implement stack guards on Arm. We would need to allocate an extra 
> "virtual" page per stack that would be unmapped.
> 
> The advantage is this could be used also in production and doesn't rely 
> on any support from the processor.

s/processor/compiler/

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 18:50:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 18:50:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767090.1177664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYVRk-0004u5-NY; Mon, 29 Jul 2024 18:50:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767090.1177664; Mon, 29 Jul 2024 18:50:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYVRk-0004ty-Kb; Mon, 29 Jul 2024 18:50:12 +0000
Received: by outflank-mailman (input) for mailman id 767090;
 Mon, 29 Jul 2024 18:50: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 1sYVRj-0004ts-Fn
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 18:50:11 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYVRi-0004aw-R1; Mon, 29 Jul 2024 18:50:10 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.0.211])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYVRi-0001mN-L8; Mon, 29 Jul 2024 18:50:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=7JJrbn8jZ+DaOfdBSdwaLWO8+aozYvk+DOwQIY0Xwh8=; b=HrX2UKikGOcNqp7wEGFKfISPct
	ib5YLsMYJY3+kj+GQJtN7QpXL2W6YJH0NiBFEufE+JFVYTCZiVhITgrTu9duqEl4tftzOJJkOxocH
	3LCiMuTVW8K20vNMyc7X+UuSijvFomTYRG+zxwqnBzV5SSdnKjRw8rkxOp24VQqjtTRU=;
Message-ID: <e49e00d0-0986-4382-a8c9-1934417eaffc@xen.org>
Date: Mon, 29 Jul 2024 19:50:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xen/arm: stack check instrumentation
Content-Language: en-GB
To: Stewart Hildebrand <stewart.hildebrand@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: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-4-stewart.hildebrand@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20240729142421.137283-4-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi again,

On 29/07/2024 15:24, Stewart Hildebrand wrote:
> Use the -finstrument-functions option to check that the stack pointer is
> valid upon each function entry. Only enable it for debug builds due to
> the overhead introduced.
> 
> Use per-cpu variables to store the stack base and nesting level. The
> nesting level is used to avoid invoking __cyg_profile_func_enter
> recursively.
> 
> A check is added for whether per-cpu data has been initialized. Since
> TPIDR_EL2 resets to an unknown value, initialize it to an invalid value.
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
> RFC: I only tested this on arm64. I still need to test with arm32.
> 
> RFC: Should we put this under its own config option instead of reusing
>       CONFIG_DEBUG?
> 
> RFC: Is there a better value for INVALID_PER_CPU_OFFSET? We can't use 0
>       because 0 is a valid value for get_per_cpu_offset().
> ---
>   xen/arch/arm/arch.mk             |  1 +
>   xen/arch/arm/arm64/head.S        |  4 +++
>   xen/arch/arm/domain.c            |  3 +++
>   xen/arch/arm/include/asm/page.h  |  2 ++
>   xen/arch/arm/include/asm/traps.h |  8 ++++++
>   xen/arch/arm/setup.c             |  4 +++
>   xen/arch/arm/smpboot.c           |  3 +++
>   xen/arch/arm/traps.c             | 45 ++++++++++++++++++++++++++++++++
>   8 files changed, 70 insertions(+)
> 
> diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
> index 022dcda19224..c39cb65d183d 100644
> --- a/xen/arch/arm/arch.mk
> +++ b/xen/arch/arm/arch.mk
> @@ -12,6 +12,7 @@ CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access
>   CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
>   CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
>   $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
> +CFLAGS-$(CONFIG_DEBUG) += -finstrument-functions
>   
>   ifneq ($(filter command line environment,$(origin CONFIG_EARLY_PRINTK)),)
>       $(error You must use 'make menuconfig' to enable/disable early printk now)
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index 2fa07dc3a04b..4a332b9cbc7c 100644
> --- a/xen/arch/arm/arm64/head.S
> +++ b/xen/arch/arm/arm64/head.S
> @@ -399,6 +399,10 @@ FUNC_LOCAL(cpu_init)
>            * than SP_EL0.
>            */
>           msr spsel, #1
> +
> +        ldr   x0, =INVALID_PER_CPU_OFFSET
> +        msr   tpidr_el2, x0
> +
>           ret
>   END(cpu_init)
>   
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 7cfcefd27944..93ebe6e5f8af 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -26,6 +26,7 @@
>   #include <asm/procinfo.h>
>   #include <asm/regs.h>
>   #include <asm/tee/tee.h>
> +#include <asm/traps.h>
>   #include <asm/vfp.h>
>   #include <asm/vgic.h>
>   #include <asm/vtimer.h>
> @@ -328,6 +329,8 @@ void context_switch(struct vcpu *prev, struct vcpu *next)
>   
>       set_current(next);
>   
> +    stack_set(next->arch.stack);
> +
>       prev = __context_switch(prev, next);
>   
>       schedule_tail(prev);
> diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
> index 69f817d1e68a..6b5aaf1eb3ff 100644
> --- a/xen/arch/arm/include/asm/page.h
> +++ b/xen/arch/arm/include/asm/page.h
> @@ -7,6 +7,8 @@
>   #include <asm/lpae.h>
>   #include <asm/sysregs.h>
>   
> +#define INVALID_PER_CPU_OFFSET            _AC(0x1, UL)
> +
>   /* Shareability values for the LPAE entries */
>   #define LPAE_SH_NON_SHAREABLE 0x0
>   #define LPAE_SH_UNPREDICTALE  0x1
> diff --git a/xen/arch/arm/include/asm/traps.h b/xen/arch/arm/include/asm/traps.h
> index 9a60dbf70e5b..13e6997c2643 100644
> --- a/xen/arch/arm/include/asm/traps.h
> +++ b/xen/arch/arm/include/asm/traps.h
> @@ -118,6 +118,14 @@ static inline register_t sign_extend(const struct hsr_dabt dabt, register_t r)
>   
>   void finalize_instr_emulation(const struct instr_details *instr);
>   
> +#ifdef CONFIG_DEBUG
> +void stack_check_init(void);
> +void stack_set(unsigned char *base);
> +#else
> +static inline void stack_check_init(void) { }
> +static inline void stack_set(unsigned char *base) { } > +#endif
> +
>   #endif /* __ASM_ARM_TRAPS__ */
>   /*
>    * Local variables:
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 0c2fdaceaf21..07d07feff602 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -47,6 +47,7 @@
>   #include <asm/setup.h>
>   #include <xsm/xsm.h>
>   #include <asm/acpi.h>
> +#include <asm/traps.h>
>   
>   struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
>   
> @@ -733,6 +734,8 @@ void asmlinkage __init start_xen(unsigned long boot_phys_offset,
>       percpu_init_areas();
>       set_processor_id(0); /* needed early, for smp_processor_id() */
>   
> +    stack_check_init();
> +
>       /* Initialize traps early allow us to get backtrace when an error occurred */
>       init_traps();
>   
> @@ -924,6 +927,7 @@ void asmlinkage __init start_xen(unsigned long boot_phys_offset,
>        * since the static one we're running on is about to be freed. */
>       memcpy(idle_vcpu[0]->arch.cpu_info, get_cpu_info(),
>              sizeof(struct cpu_info));
> +    stack_set(idle_vcpu[0]->arch.stack);
>       switch_stack_and_jump(idle_vcpu[0]->arch.cpu_info, init_done);
>   }
>   
> diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
> index 04e363088d60..1c689f2caed7 100644
> --- a/xen/arch/arm/smpboot.c
> +++ b/xen/arch/arm/smpboot.c
> @@ -30,6 +30,7 @@
>   #include <asm/psci.h>
>   #include <asm/acpi.h>
>   #include <asm/tee/tee.h>
> +#include <asm/traps.h>
>   
>   /* Override macros from asm/page.h to make them work with mfn_t */
>   #undef virt_to_mfn
> @@ -329,6 +330,8 @@ void asmlinkage start_secondary(void)
>   
>       set_processor_id(cpuid);
>   
> +    stack_check_init();
> +
>       identify_cpu(&current_cpu_data);
>       processor_setup();
>   
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index aac6c599f878..b4890eec7ec4 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -2325,6 +2325,51 @@ void asmlinkage leave_hypervisor_to_guest(void)
>           arm_smccc_1_1_smc(ARM_SMCCC_ARCH_WORKAROUND_2_FID, 0, NULL);
>   }
>   
> +#ifdef CONFIG_DEBUG
> +DEFINE_PER_CPU(unsigned int, stack_check_nesting);
> +DEFINE_PER_CPU(unsigned char *, stack_base);

While looking at the code, I just realized that this should be 
equivalent to current->arch.base. So do we actually need stack_base?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 18:56:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 18:56:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767098.1177675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYVXz-0005d5-Ep; Mon, 29 Jul 2024 18:56:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767098.1177675; Mon, 29 Jul 2024 18:56: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 1sYVXz-0005cy-A4; Mon, 29 Jul 2024 18:56:39 +0000
Received: by outflank-mailman (input) for mailman id 767098;
 Mon, 29 Jul 2024 18:56: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=lVSF=O5=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1sYVXy-0005cc-84
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 18:56:38 +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 4656d26b-4ddc-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 20:56:35 +0200 (CEST)
Received: from SN7PR04CA0212.namprd04.prod.outlook.com (2603:10b6:806:127::7)
 by SA1PR12MB8966.namprd12.prod.outlook.com (2603:10b6:806:385::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.28; Mon, 29 Jul
 2024 18:56:29 +0000
Received: from SA2PEPF00001508.namprd04.prod.outlook.com
 (2603:10b6:806:127:cafe::c6) by SN7PR04CA0212.outlook.office365.com
 (2603:10b6:806:127::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.34 via Frontend
 Transport; Mon, 29 Jul 2024 18:56:29 +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.7828.19 via Frontend Transport; Mon, 29 Jul 2024 18:56:29 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 29 Jul
 2024 13:56:28 -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, 29 Jul
 2024 13:56:28 -0500
Received: from [172.28.183.80] (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, 29 Jul 2024 13:56: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: 4656d26b-4ddc-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UDMopCobvKJO7V3IQDekX3czO4ee+hDdvQV0sTr1S29yGLlbXcYRVd+nirpgBR1wAq6+szCMvJ269fF9wSf6yUom609oI+Jypk0nuVRY+uRnaMmjdWeo5aeGwR/bcHPY/VpVuauxJSUoMqtwSX8GjMlXKAHRsgstSed/6SQwOMulMjBo0OYWXT1jpbMlK4o3qf+HAuwvZaxPP7/WpHDVHP68VKYM2G2kM5z8i4lQrDq3bX6rdVCmfmh4UVdksRoiVkkSbgHHwj/tONcprQPjOHyIqKhQTnCGrPLnbNQo7guYD71HySchAgSQXAClbpsuo2kCJHxTGOOOmEUK9qqPkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T88bbNJu3PbBdyPbHFKrw8RU47CY/WC7OGN+CqH8CWo=;
 b=d/nPFSeIepbhqSBbZKktdE058HqaoaUswclMtgXIzss7FJi2Q33smKthxn73CfsLkOMD0MsOBByKIlE5M3zfYDKWgNsE+Qu0TdAG4HjC+LWQNFdLge6Gefi6cptNI3Z2jtV7FEcPTqf/W1RWmIzLAPyJ51AldxlE5f4qgI3aicQdQbgbosWHPyyNp/4vA8lL2kqS4KZJP54ElPt12Q5jaZM48iRBtbA031Ksob3j0uVu5pEAvnTEooGu3zbe0doHNnuYmlLGJn3Q9pVcRmWiIL0mOIctnjTcuwzQkSgVGnDnK2ZO5lS0+Uz3ufjsCsqJ4MDton7MJXIUdfG+seeZqg==
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=T88bbNJu3PbBdyPbHFKrw8RU47CY/WC7OGN+CqH8CWo=;
 b=WOdjM5nSL8UxoDMXYBsISu5UIDM6pnwVog0qWTMsudO+Zr367u60BDML2ENAnO+1YJ5uaAZ9JI/v3PB2cr/JO00H7UTm7joN590JmgjW7Rxaln4H67ESKSC4q3/mjai6BobYM7jsdzMeIQgtbqpz06d8JFeSh+deZLnhIpP38Zc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <5d015d47-0ba0-4a3d-861e-2c7712d9a97d@amd.com>
Date: Mon, 29 Jul 2024 14:56:27 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen: add no_instrument_function attributes
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>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-2-stewart.hildebrand@amd.com>
 <baa57ab0-60c9-49b0-9601-09bea081ddd7@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <baa57ab0-60c9-49b0-9601-09bea081ddd7@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00001508:EE_|SA1PR12MB8966:EE_
X-MS-Office365-Filtering-Correlation-Id: b3ebe96b-4511-4239-89d2-08dcb00027c1
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?aUROcklzTG5hMHg5ZkVWZ1F6UHBGL3IvTnF4ZmxjbHF4cXhpako3WjJhYk8x?=
 =?utf-8?B?SkZVQTdXOXRDUnpuWHgweWtibVI0ellwbDF3L2traDg5MThjTVJmN2VIQ1F5?=
 =?utf-8?B?cGpMMmVJeTN5YVB5SWtvNkxNbkFTRjVHeW9iZEpJcnRpVUJ6RlQzeWJjY3Z2?=
 =?utf-8?B?cWUyNmo1RUZlRDIvTUtITkRDd21rdzJhNGFzSWJ3U2dsSjl6QnlxYTFSbld5?=
 =?utf-8?B?NThXL2JjRWg1TG5XTzYwU2V0UGtDc2NrbGtQWmxxRUVlRmdQSkhvdE1sYmdL?=
 =?utf-8?B?bHRaWVVWR253NFQ5Z1pMdzVxVFlIb2R5WjVwYUpxM1N4eVE5RkYwODROckxR?=
 =?utf-8?B?R3RRRjVFTnkyanhINUNqZC94MnNMQWpkSk9rR0l3cEtMZGx1dW1mMjZrNTNw?=
 =?utf-8?B?VGwxZFc2amJHbmpSRW91bnQxMlNVZG5sbjU4VDFvanFuS0E0ZTI3TmFVQmFw?=
 =?utf-8?B?ZXBpYTJ1Rjc2eWhWTEQxNGg1QUJVL1pVTWRuY3dCUVgxSFFNay9OcWV4QnQ0?=
 =?utf-8?B?NTNZNm5MdnVIdmZIMExOcGZJRXlUMVNNME11bDVPWFZXaUNFOXdzRThXZDZ3?=
 =?utf-8?B?RjB3RmVjZk5CMUdRRnN4ZWQwNVMwZW1aYnNBNUZXZmFhVkVCTEs1SEs3N01N?=
 =?utf-8?B?TmN0TllyTFlncXQ2TUV1TWY0cnhvamtSbGpYTXg1dXJzS1RwNVhib3RYZE10?=
 =?utf-8?B?eUhIVnc2Vy83Z1V3QlV0N0pTZ2dxQjJmNW1pQ2FVK0s5WUZzRVVEQitKeDZ1?=
 =?utf-8?B?Qlc0aFJMRW11c1QvWFpxalpnSmFuN2RJVnFja2RIZ0xnWjRzNzNLa2x3cnBk?=
 =?utf-8?B?T3NURGp4TnlqSEk4OC82d3BWbUF5Q2FOdnhTQjBHUm1zRnVWeTBNQlhlVldr?=
 =?utf-8?B?RDVqditNbTVpcUtkKzJhelpyQ0xDeGJvWU1KS25nS0JqRzJhVWxhUXhoTVZC?=
 =?utf-8?B?YWxqUUVNTDJXWm0zWEZ1bTFjYkdodFFJQ2NpcXVGRE0yMURpeTZicFZzV0J1?=
 =?utf-8?B?M1hyQ0ZFV1MxRFd5bUZ6M0lWcDJPT29MaFZqcHNnak5BU2lZNVpUMWFTNm5p?=
 =?utf-8?B?dlAxN1lCbzRGQmc2RXpETllJbjlUTDNKQ1QvTC85ZEVFS05mWG5reFpZSVdm?=
 =?utf-8?B?N3o2SmlGRVpNVFdnUUozSFJCQU93M0hvTUxuZEpLMnlKdDMxMkN4Zy9QS0s4?=
 =?utf-8?B?dm1paDUyT3JLZ0tNU3J0ZXZEV0pNK0M1T3B1eGs1V2lnM05ESmRkSVNTRFhC?=
 =?utf-8?B?OVdKZHlrK3BYa0k2TElhSW92REtYeXBiTTE4ZmlXcjhyTFpOZHgrQWNUdTdK?=
 =?utf-8?B?MmJOUFcwdHpUR3lGMWpFMkRmVVhKd0lnODE1QUROcE55MFQvUXB2MlpyVEpM?=
 =?utf-8?B?aC80enRnTVV0TGxpSEtrL2J5VVdjSVNYM3JuSTJ2aE5zdmZ1ekRCeFRyREtz?=
 =?utf-8?B?SXluNGZrSkMyejFSMjQrRXlCVFliRC85OFZTU2g3bXlIdHNwTmxuK3YxOHBv?=
 =?utf-8?B?ejUyTG9hQzBiZjJJczJWTysydGlVRTdUa2dLd3d1QUhXSGNBOXF6NG1OWldT?=
 =?utf-8?B?R0ZLa1hXSGhFbDY5eHZNaW5DUDhXT1QreEoyYmdiTjZ5WmF6akV4VTYrZ2lo?=
 =?utf-8?B?bmFmdU5hNUp6T1lXNm5SZVpxRE1nMkhNaHZ1RmtUNlhXQ2txYkZ3Q3FVVFdL?=
 =?utf-8?B?SDliTEVtWWdGaWNkSG5sR3ZoYllSYnBSQWV0YVAremNQOU8zcm1za0FTbjdR?=
 =?utf-8?B?ZTFHQ3k4WGo1U1llcFh1NUo5cGpEZEtrSExvVXV4ZWtrY0ZsUEVNRm5NblVX?=
 =?utf-8?B?L0NuL0NwQmtpWEtmNDBoMWlFUzhob2lHU2Jkend4c0VnaFRyMjFtNklQamlm?=
 =?utf-8?B?RWpLbDUzYmZON3JOanptc3hKdk52ejF0bTRQblR0dkRVZEEwYWlXSkxycVBH?=
 =?utf-8?Q?KektCvell7j5QRPcNqNnnnxLGqZBa3uR?=
X-Forefront-Antispam-Report:
	CIP:165.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: 29 Jul 2024 18:56:29.2314
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b3ebe96b-4511-4239-89d2-08dcb00027c1
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: SA1PR12MB8966

On 7/29/24 10:55, Jan Beulich wrote:
> On 29.07.2024 16:24, Stewart Hildebrand wrote:
>> In preparation for using -finstrument-functions option, we need to tag a
>> few functions that don't work well with such instrumentation. If we
>> don't intervene, we would end up with linker errors such as undefined
>> reference to __bad_cmpxchg.
> 
> I can't spot mention of such a side effect from the documentation. Talk
> there is of function calls being added at function entry and exit.
> Nothing is being said that calls to other functions would also be
> affected.

Oddly, it seems the compiler fails remove the implementations of the
affected functions from the object files even though they are not called
in the generated code (because they were inlined). I can mention this in
the commit message.

For example, if no_instrument is omitted from __int_cmpxchg, feeding one
of the object files through aarch64-none-linux-gnu-objdump -d yields for
example:

0000000000000048 <__int_cmpxchg>:
     <snip>
     16c:       94000000        bl      0 <__bad_cmpxchg>
     <snip>

Yet, __int_cmpxchg is not called by anything.

Even more oddly, this appears to be the case for both clang and gcc.

>> --- a/xen/arch/arm/include/asm/arm64/cmpxchg.h
>> +++ b/xen/arch/arm/include/asm/arm64/cmpxchg.h
>> @@ -5,6 +5,7 @@
>>  
>>  extern void __bad_xchg(volatile void *ptr, int size);
>>  
>> +__attribute__((no_instrument_function))
> 
> I guess it would be nice to have
> 
> #define no_instrument __attribute__((no_instrument_function))
> 
> in xen/compiler.h. I also don't think these annotations want placing
> ahead of the entire declaration, but rather where other similar
> annotations would also go.

Will do, thanks for the suggestion.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 19:01:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 19:01:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767107.1177684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYVcA-0007Xq-3D; Mon, 29 Jul 2024 19:00:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767107.1177684; Mon, 29 Jul 2024 19:00: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 1sYVc9-0007Xj-Vw; Mon, 29 Jul 2024 19:00:57 +0000
Received: by outflank-mailman (input) for mailman id 767107;
 Mon, 29 Jul 2024 19:00:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYVc8-0007XZ-AK; Mon, 29 Jul 2024 19:00:56 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYVc8-0004nF-47; Mon, 29 Jul 2024 19:00:56 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYVc7-0003Rc-Kn; Mon, 29 Jul 2024 19:00:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYVc7-0003mE-KE; Mon, 29 Jul 2024 19:00:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=NwxFIz5yIo9tojwQAtO0mo7/RNxI3R0F/adyjIIh4w4=; b=bRnbEyejFVigK9NS/KJauWgKRP
	3eK4QNdH9O6sIU+xDgZRG4bi2ey6CgDPRrtNW2TmiNKwvg6R9TQk01L1LQQtQQWcOwlI8umRrQmkZ
	AGNgN8vuyW2GcFbGnWCi/RJjXBLPO+IMsdZY+HCttHOuSqzFcftg0vb/bCmhZAY6iOAg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187043-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 187043: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=8b5016e28737f140926619b14b8ca291dc4c5e62
X-Osstest-Versions-That:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Jul 2024 19:00:55 +0000

flight 187043 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187043/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  8b5016e28737f140926619b14b8ca291dc4c5e62
baseline version:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847

Last test of basis   186993  2024-07-25 00:02:15 Z    4 days
Testing same since   187043  2024-07-29 16:02:08 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   b25b28ede1..8b5016e287  8b5016e28737f140926619b14b8ca291dc4c5e62 -> smoke


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 19:01:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 19:01:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767110.1177694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYVcP-0007qY-Ar; Mon, 29 Jul 2024 19:01:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767110.1177694; Mon, 29 Jul 2024 19:01: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 1sYVcP-0007qR-7w; Mon, 29 Jul 2024 19:01:13 +0000
Received: by outflank-mailman (input) for mailman id 767110;
 Mon, 29 Jul 2024 19:01: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=lVSF=O5=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1sYVcO-0007qE-TM
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 19:01:12 +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 eac48a1d-4ddc-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 21:01:10 +0200 (CEST)
Received: from SJ0PR05CA0091.namprd05.prod.outlook.com (2603:10b6:a03:334::6)
 by CH3PR12MB8660.namprd12.prod.outlook.com (2603:10b6:610:177::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.28; Mon, 29 Jul
 2024 19:01:05 +0000
Received: from SJ5PEPF000001C9.namprd05.prod.outlook.com
 (2603:10b6:a03:334:cafe::7a) by SJ0PR05CA0091.outlook.office365.com
 (2603:10b6:a03:334::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.18 via Frontend
 Transport; Mon, 29 Jul 2024 19:01:05 +0000
Received: from SATLEXMB03.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.7828.19 via Frontend Transport; Mon, 29 Jul 2024 19:01:04 +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, 29 Jul
 2024 14:01:03 -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, 29 Jul
 2024 14:01:03 -0500
Received: from [172.28.183.80] (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, 29 Jul 2024 14:01: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: eac48a1d-4ddc-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XrZFI/xNlwiTl1o491HZl17zq+84zs3QAeI9HNA5hyFB0NC74Yaxr2Z2GGmPxOrqh6incdc9FdchI5SB0IMTVjri5kI1wYBchuyE99wJL2oHtcB8qhf+T16MoVM4OLRGcgWy8PCh4A+H0tEmlD7FGU8ie9ccL4hvEfvm6lY4O16RuBBDQCe6zgC1yUdTTlZjcVx8yUNNkXyXio2UvgNIPY5qE7QuuegBhQE3Xm7czsREdwTGULzsM7cPNGiEhKWMJ/DFe36TJT5ppu8Qx6Czamm7EJMwg7vA9J5bFtFqOuxeMNjrLRGd3jwBGt9TbUByh6U/z3FfYsKBA1BiIiA+QA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T0UZJOlVK4SzrZKcExMnE76yioHMQ14SuFpawkbHYpw=;
 b=UMq3uOTtzFC232UbQyXlBiEcIX22++/KG6Jf9W+CJjatjyj68wAzpztq8WSu4notLSldb8u3Gi/WyEyvLkvfCVRg5RIRfrcI5lKm/jlTcbraNFRMK/JUimlK8BJiaWhprHMbI/ekiL8dfjC43VT//NCF4QFsrWEogISIHRMDMjLsV2+Q5jwHFsLKhBeO9/LNFhO7UwXcVPho6dlC/TG+Ek+c+3omgh82+6Ht4Lty7ytZ6+9TuKpe5Wryf7OouWd6xpezSojvdif5hh9iDSpFeZUo6+U70PLubqMIc3As9ykU2qX7N2MzIWa3QflOAgCGYs5z6KN5v1zLr/umcSXfdw==
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=T0UZJOlVK4SzrZKcExMnE76yioHMQ14SuFpawkbHYpw=;
 b=HkTfUabqOH7jBWi3KYMZuKx5nOK4iGhtbOoDxElx1NihV5GrQU4yyGU/+Mvb/K1ok4jHiAocimR8mvaKhgDGiNc9vRUX2JdpQZzlR9tciu4Ee6JP24t72zwAo+IPSbSzYQN+x9LDVtBPcwfRDJIz/K8aV7pn2y7s5HCaLCBuVP8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <e816ca86-3b1f-42ea-b338-de73d9fb6370@amd.com>
Date: Mon, 29 Jul 2024 15:01:02 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] xen: silence maybe-unitialized warning
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	<xen-devel@lists.xenproject.org>
CC: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-3-stewart.hildebrand@amd.com>
 <b49f76cb-f22e-498e-83ae-68cc9840c48d@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <b49f76cb-f22e-498e-83ae-68cc9840c48d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001C9:EE_|CH3PR12MB8660:EE_
X-MS-Office365-Filtering-Correlation-Id: abd5411e-768f-436e-8fc9-08dcb000cc18
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?Y2ROOXFkeE5Xa1VkYi9kdlhRVjJYODh2MW9wUXp2dDhaS2dUZG02c2JvMUcx?=
 =?utf-8?B?SVZrSkkzT0l0Z1NFVCszZUVKS3QrRzcrRG5rY0NMaklQV3MwY2tWQjFBVWow?=
 =?utf-8?B?RjEveGk5TTFhYTNzY0RIUTRJRjIxTWNMODRyUi9uTmx1M3Z1eTRKckRzNlkx?=
 =?utf-8?B?TUdmR1RzOHFheXNFMkM4eGY0N0hLUWgrdjZpa3Rvak1DbDdqUnpJMUd0cVRE?=
 =?utf-8?B?bkExeUFOT1ZqOTJaMmpLU2RvSnlVeFo1a0VWTmJjdEZNNmY3WnUyemlwS1pR?=
 =?utf-8?B?Q20xWm00WjlkRkZEZk5LVEtHYmRkTnRaUDMzWEZId0QxS3BJemZmdHEvQUx3?=
 =?utf-8?B?d3c2UkV3KzVvZjZpTDhyeXJMUm9aZVpHVGtmR1VSbTk3MTZ6ZFV2SklicVNV?=
 =?utf-8?B?ckFPT3FNbFhpczUzZDA3aEFldTdzQkpxRHh3VnR3WGFYbUp2Q0FNQ1FEMFZy?=
 =?utf-8?B?YU1BWEYyR1dKcHdoL2p2RWRteFQ4eFFzOWloU09RRlkvQ0xSNGpXL25jalli?=
 =?utf-8?B?U28zWWlkbWdCRThSWDc3MStCYkluSzhBUlJBQzV4QUhJbTFEM29oNWY0emN4?=
 =?utf-8?B?Nlp5elB4WWpvRzhXc3dpZlZHbjFGbHJVeHZ0V0ZZdlRKbjA0R2ZJaXZvYnJH?=
 =?utf-8?B?dmFDWFNuK2k2OTJQTnJNRDVFd0hwNHNYM0hxbVRScVRIcXJySGp3OElVRlJG?=
 =?utf-8?B?cU9BR1o3SExwTm1hUjBubktIRHIxUW4rS2VvcW91VHZlREc1WUh1dnZvT01k?=
 =?utf-8?B?NjV0QkgvYi9VUERlY0l6blVDWEJ1WnBaQmVsa0lNVFl6blpVbHdsQjRUbWt4?=
 =?utf-8?B?RUFlbzhwSzZtUVhSUXVKN3BaaFQ3SjQ3MkhHcmdsZno3QlJ0L0dwazUrT2d6?=
 =?utf-8?B?MC9vdldsWXJmb2VOQnk4T0d2ZnplMlN5bHZ4N1EvU0dLZ1hQU05seDBMcGlT?=
 =?utf-8?B?Vm1zV0NGQndvazI2d3FyK3IreUhqUE5DRm9QTDdHRGk1NVVYdm1VN2RHOTI3?=
 =?utf-8?B?NklhQ3VhWG9ubFRTeFNaNWJ5NFNmeUtGYWc0azN0dnNQbDdzaC9PeG1tZ0NW?=
 =?utf-8?B?Q2h5T2hwMWUvQy9GUVN4cllCVXd4RlI1YnJaUURwd3F6OEQyWExyVmNjOVVx?=
 =?utf-8?B?THJhTHFIeWI4NUJIUE9LMTYyc2V5TkM4RElaWmVEakJYR0dJYWhaU09DRyt3?=
 =?utf-8?B?T2NWb2M2dWo2OENZTFJnc21pN3l0NmRGYkZQQ0pTZUlUZEVHNkFGOTc4Yndm?=
 =?utf-8?B?SmgxTWNHR2JBeDUvbS9LeVl0U1BVNUlOcThtdDlzWVNGTWF6dHN0WDl6Ymp0?=
 =?utf-8?B?bXRGWlpSTFgrYk5yVDBOUXpMK0pucnJ5aUpmT0FqQkp5K0s2YjNiVWQwUmRE?=
 =?utf-8?B?OUpaN2pxdUdsUkVNZHNOUW9QcnkwYzAyRTZMOU9DSW1ST3QyTVYrSkczMjJK?=
 =?utf-8?B?bUJURGVGZmtEWmwzZ29yOEVNYjBWRWM1ejRtWkRCUzhqdUNDVU5tV1o4a29q?=
 =?utf-8?B?RXhrcVJJanZSU25LYVRYOW5sZThsTmRKMFJnU1VJVktCV0xPYVhqUkhiOERV?=
 =?utf-8?B?aW82WFA3S1d2aEV3Y1ArVnViVnE0RVZSUG5kK2h0ZXBnRTBsd3hQMSt5clJK?=
 =?utf-8?B?YnBjNTFjQkFCNUVvWERvZGtFcmFoTVdpWVcwVlVyOE5GK0kvNWhmaXZnRFdI?=
 =?utf-8?B?NGluQUJOMjVRaUdSL2poTmVoNFBSc3o3bFRVanFSSVhCK3JRSkgxWWNHUTJn?=
 =?utf-8?B?bzdvM2d3dFpYRzdWK0cxQlV5SG9raXgzVFFrdlUzZ0xEdEdKakNDQVNvR1pD?=
 =?utf-8?B?dXlZS2dHNC9IeHBmYndoYVFTZDgweGxQQm5qL2RIcHRKZXRGTGQwQXBUakV4?=
 =?utf-8?B?T3Uyd1dLZTlVSjAyN1orS1cxbFMyNUwwdTMvWUVMVHR6TXB2R0l4UHJ6ZWFY?=
 =?utf-8?Q?2JfbT5VFIsJoj+Yjy9Av4o4Zk26Su2cC?=
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: 29 Jul 2024 19:01:04.8855
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: abd5411e-768f-436e-8fc9-08dcb000cc18
X-MS-Exchange-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:
	SJ5PEPF000001C9.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8660

On 7/29/24 11:03, Jürgen Groß wrote:
> On 29.07.24 16:24, Stewart Hildebrand wrote:
>> When building with gcc with -finstrument-functions, optimization level
>> -O1, CONFIG_HYPFS=y and # CONFIG_HAS_SCHED_GRANULARITY is not set, the
>> the following build warning (error) is encountered:
>>
>> common/sched/cpupool.c: In function ‘cpupool_gran_write’:
>> common/sched/cpupool.c:1220:26: error: ‘gran’ may be used uninitialized [-Werror=maybe-uninitialized]
>>   1220 |                      0 : cpupool_check_granularity(gran);
>>        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> common/sched/cpupool.c:1207:21: note: ‘gran’ declared here
>>   1207 |     enum sched_gran gran;
>>        |                     ^~~~
>>
>> This is a false positive. Silence the warning (error) by initializing
>> the variable.
>>
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>

Thanks!

It just occurred to me: should the subject prefix be xen/cpupool:
instead of plain xen: ?


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 19:41:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 19:41:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767125.1177704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYWEl-0005ut-8w; Mon, 29 Jul 2024 19:40:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767125.1177704; Mon, 29 Jul 2024 19:40:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYWEl-0005um-5u; Mon, 29 Jul 2024 19:40:51 +0000
Received: by outflank-mailman (input) for mailman id 767125;
 Mon, 29 Jul 2024 19:40:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lVSF=O5=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1sYWEk-0005ug-Ac
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 19:40:50 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20601.outbound.protection.outlook.com
 [2a01:111:f403:2416::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72258ca8-4de2-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 21:40:46 +0200 (CEST)
Received: from CH2PR18CA0058.namprd18.prod.outlook.com (2603:10b6:610:55::38)
 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.7807.28; Mon, 29 Jul
 2024 19:40:41 +0000
Received: from CH2PEPF0000009D.namprd02.prod.outlook.com
 (2603:10b6:610:55:cafe::62) by CH2PR18CA0058.outlook.office365.com
 (2603:10b6:610:55::38) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.34 via Frontend
 Transport; Mon, 29 Jul 2024 19:40:40 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF0000009D.mail.protection.outlook.com (10.167.244.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7828.19 via Frontend Transport; Mon, 29 Jul 2024 19:40:40 +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, 29 Jul
 2024 14:40:39 -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, 29 Jul
 2024 14:40:39 -0500
Received: from [172.28.183.80] (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, 29 Jul 2024 14:40: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: 72258ca8-4de2-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FuIpwuky7k0urVYn0m/HT2uSSrNcWXbtabZrvZVonA2GXgdCSHekZ/UJqJPgy8+TOrOwY06+nyZnlc+4Kk4XuuBHre/O/w3gcRnli2wyEaJlLwF05gR9i+lxEL7uwPzvj7H9D3iWMII/R2vzd6Jkccx6Nm5pOWufd2Nk8CDMWPONEjdcIyvmHtLMFyHvO6gapnP9FRmZd34Bb904rGAB9OTAmTifwttV6lO1oQXaMZzTRSCT9WB4emPbndPgNy9UIW8lljIHgZnFXtwOlv/C//kXre1LPx1pGAS/jtXNJ3Klt0+51Es9sCEfzetKHh7594CgoeqUdzNb+VO40alVyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5aABjyKaClT8pPIpFqzEgIwi5aX84o/quFhqE1As6tU=;
 b=QDjik1R97qvlNdecYYS075KNI/+/JO9q8PxxGqpO/MsLNgc1FR6qINZLWD6/LlHVnocszkAbAyAw/PzbVTLDX0JX70PGQdus8iv0uXsGtAauqgWqbAGp2KM1NPi4ukgpMylMFqOAW/PGtKDolsbg0m0UJ87EgZ0z7I2F7Xr3qcRkwyPBoz/olpfTp3skZz/I11wRfIg3ACjxDi3Ni3WK+Do/up7W4kbgLMIE2Vh4jgIArqPGTJIarD4nFK3jH8LjeW8Gfu1M3DaZQlscRu+dLVPEIcp7TZVP7fNxDan9nALRU3Cgw9ZGvS7w0ouW9l2JxiBsrq9Ih6fDxR8yY2j8Rg==
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=5aABjyKaClT8pPIpFqzEgIwi5aX84o/quFhqE1As6tU=;
 b=AjNyOnGG1FKjKc1VvZnkJs/AGYKpj0oPeZ7IolO3ijEjVuLxiKdvieVwhtp9ChrBiV5jzZ26gTk1C8LfV3+3Bc6boL0XoxeexEo/cSQwD1u40ITsqSXZ2gHj23OhaLQ1YmXJknd8mUGXRfTe3iUFbV25rySRKUz7Hp56XrJcoWk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <1cf7f9d4-9df8-423b-a033-8c93acb3cfce@amd.com>
Date: Mon, 29 Jul 2024 15:40:38 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xen/arm: stack check instrumentation
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>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-4-stewart.hildebrand@amd.com>
 <e49e00d0-0986-4382-a8c9-1934417eaffc@xen.org>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <e49e00d0-0986-4382-a8c9-1934417eaffc@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000009D:EE_|CYXPR12MB9425:EE_
X-MS-Office365-Filtering-Correlation-Id: 006187d2-e916-4a02-a532-08dcb00653f5
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?L0s4bmhwd0F0cG1oTFNKL1RHNWhuZ2lrQXVSN2hFamt1bjNBVThPN1JFNGFU?=
 =?utf-8?B?c01EbktYY1Q0bFhCVkYrS1B1eXJvUDkzNHlybjRMWXk4NTI3RkJrRm9qNnR0?=
 =?utf-8?B?akVidjV3YW9nT21SSXA2YW9iUWpnT25OZDZnZVJwZVd5OE9yczY5dTAvMTBX?=
 =?utf-8?B?SkRtWnRmaWxES21WUENrS1cvNHl5emg1ZWRkWGhzWUMwSE45SjdqaDVhK3RJ?=
 =?utf-8?B?eUdMK09GNDBVekhrVVVXMVZta0FIL21yRXBEY0JMNUVyWlh1RTUzeUVXSDhW?=
 =?utf-8?B?TExUMjJrbk5ZVWV2WWJFazFRcXFnY1JPSE9pY2kzYk43eDZ0Q0lOUmlXRENZ?=
 =?utf-8?B?YThRVU53R0JudlZ3ZTY0YWRhL1V4b016Rk5CTFhKaVJCQndxS0poOXBtN1cy?=
 =?utf-8?B?Y1liOUxUQWcvQkpxTE5qTTVhd1FVVkh6SDNUUDFTRHJXc1NRdklLeTh0SVRD?=
 =?utf-8?B?a2FWVUtnQnBHSUQzS0E3TlFhWSt2WmlPYXNFbXQ5aDJVTFJXM242bzRFa2JK?=
 =?utf-8?B?TGQ3Y0xlbXlRdEl3N1lJMksrVW8yVDI2QXhHTzVqNkNqZUFUNk5UVFRkeVNJ?=
 =?utf-8?B?RCs1aVJnRm4wTjBGZ0dJaTJ6YVREVHhyUlh1amxzYkFTT2U4WFNZaWhZRjla?=
 =?utf-8?B?enI2K3FvWEt6SjVIRENIOG9iUXZXeEEycUtJRkFLUnVpWkMxb3JrNFpjTDJW?=
 =?utf-8?B?RDB5OWFuM0hzUG41Q0RuSXc3ZXpua1Y1NDR4OStLakc1SCtCanRjYUFaSEVZ?=
 =?utf-8?B?Nk9oSGl5czFrcitsZ0FpUXpiekYrLzVNQWt1b0pnTTNIaTBJM3lrYlBaYjFa?=
 =?utf-8?B?Nm9xU0R4QVJVRW1PcHY5a3VoV0REOTNWb0VkSFg2UHFuS0FTVEMxb2daUjFi?=
 =?utf-8?B?WkxKZ0Fwenl1RGZxU3hCYjk2MkdYVVdQdGxTZlBJZjNhK1FpbHVrdXJ5OVlr?=
 =?utf-8?B?NGNEdzVmRlpsTUMxTXZ2UzdMWWF2MG1JRW91RjNyV1kxY2dqMzl2Qk85Y2VN?=
 =?utf-8?B?aE9TbzRNbkVSY2tTUjFlcENRemNPNTNYNm1ZbjIzNUdPZWFLVHVNZE1vamFs?=
 =?utf-8?B?OUpaTVdNTkJhUUY3a25lVnZobkRqOVJsb05hSU43WHRpaXZLUklwR0tHaFJ4?=
 =?utf-8?B?djFEUGd4Y2lta0QxMk1OQitkRld6TzA4cEVzQ1FGYXpkSFkvQkNrWWRWb3pr?=
 =?utf-8?B?UnFQR3ZLa2E0aFJCdlFFMENGNXdnRWF4WWcrVEdlRy9TcnEyNm9wYXNDZ2cr?=
 =?utf-8?B?NC83c0N1OGlYZDNaZTBrdlJ3OXd1ZzZKYVB0b2dQaHZONVg3bGhXMy9rQ0Uz?=
 =?utf-8?B?V2VKL1FPckQ2V3B6QVhZZGhRYnUwN0cxbkM2VmUwcTI4VkRrWEJPd294YXQv?=
 =?utf-8?B?Y3h4N0c3S21CQ2hUejE4NzVRRDcva2pqdUVpNWdseHB5UUtCYTNGN1doeXZx?=
 =?utf-8?B?SHJvbVNza2YzWjltVndiMzhkTWNXaldSQTdDL1F1VCtTUkVzRXd6b1NPbmpw?=
 =?utf-8?B?emNLZGxyTnRuNHoxQ0NRU1YwV2lOa1VGUlZ2YlYra1JKTUxlb1RvdFFNbmFK?=
 =?utf-8?B?b3NHdDFURzF4ak9uZTdIa256bWZmUEc2RjJpK1o0VFZRZmtjRUhmak1tS2Qv?=
 =?utf-8?B?UUVLMzJqZzlQSkdyaEpDUVM4OWlVQzhOaTU1aHJ0WkRNUjVROEFtemNIeEx3?=
 =?utf-8?B?eVNkWnlVNDRaSE5iMjdTM2JQTUg0M3AzWWtVT2RyZDV0SmNVaFpHaFkyQU1Z?=
 =?utf-8?B?M3VPaTFjTE5QL0ZkVFBoVXU1TFhFcUxORTl3N2hHRCtDdzNqUGU5YXhRMzlO?=
 =?utf-8?B?VVVMRFR5NTN1UDlGVkZZVVl5dUVZcVpGVW5ZU2hFeGpoZGxQVWVzdFZtU2Zl?=
 =?utf-8?B?ZTA4WlBmSStWZFBha2VtRnlGSm9jUE81aEw4bVd4OW9WcUdtSWtRV1ZqUjQ0?=
 =?utf-8?Q?8/ujjAvcD4mbMu9tP3SVPdm9XAhsTCWi?=
X-Forefront-Antispam-Report:
	CIP:165.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: 29 Jul 2024 19:40:40.3886
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 006187d2-e916-4a02-a532-08dcb00653f5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000009D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9425

On 7/29/24 14:50, Julien Grall wrote:
> Hi again,
> 
> On 29/07/2024 15:24, Stewart Hildebrand wrote:
>> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
>> index aac6c599f878..b4890eec7ec4 100644
>> --- a/xen/arch/arm/traps.c
>> +++ b/xen/arch/arm/traps.c
>> @@ -2325,6 +2325,51 @@ void asmlinkage leave_hypervisor_to_guest(void)
>>           arm_smccc_1_1_smc(ARM_SMCCC_ARCH_WORKAROUND_2_FID, 0, NULL);
>>   }
>>   +#ifdef CONFIG_DEBUG
>> +DEFINE_PER_CPU(unsigned int, stack_check_nesting);
>> +DEFINE_PER_CPU(unsigned char *, stack_base);
> 
> While looking at the code, I just realized that this should be equivalent to current->arch.base.

current->arch.stack

That's true only after the idle vcpu stacks have been allocated.

> So do we actually need stack_base?

This is a way to enable stack instrumentation much earlier during boot
when we are still using the static boot stack.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 20:37:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 20:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767132.1177713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYX7t-00059b-Dk; Mon, 29 Jul 2024 20:37:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767132.1177713; Mon, 29 Jul 2024 20: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 1sYX7t-00059U-B1; Mon, 29 Jul 2024 20:37:49 +0000
Received: by outflank-mailman (input) for mailman id 767132;
 Mon, 29 Jul 2024 20:37:48 +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 1sYX7s-00059O-7T
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 20:37:48 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYX7r-0006iq-EL; Mon, 29 Jul 2024 20:37:47 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.244])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYX7r-0000ZM-8i; Mon, 29 Jul 2024 20:37: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>
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=WxX+aslObCObf1hAUxfWsrJcVgPzOA2xLC/B+a390kY=; b=cnM9aIOFddHtkX3dm4CI+u6aGD
	8ANCk8OkvUONcGMSfRnInSmWuXbrmyQfqm7CU3IX/bpqxr1NFg+Ga73B7Z8oYQtfM74aSPiX5aG5c
	8ut6UEk5a5BMtansi9tM8NryjHeKBoB9BE3+4l+Dgcq01B7t+nFWk9zRqOreGEYGItMs=;
Message-ID: <8c013f47-56c9-4b43-8ec2-79230897fedb@xen.org>
Date: Mon, 29 Jul 2024 21:37:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xen/arm: stack check instrumentation
To: Stewart Hildebrand <stewart.hildebrand@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: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-4-stewart.hildebrand@amd.com>
 <e49e00d0-0986-4382-a8c9-1934417eaffc@xen.org>
 <1cf7f9d4-9df8-423b-a033-8c93acb3cfce@amd.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <1cf7f9d4-9df8-423b-a033-8c93acb3cfce@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 29/07/2024 20:40, Stewart Hildebrand wrote:
> On 7/29/24 14:50, Julien Grall wrote:
>> Hi again,
>>
>> On 29/07/2024 15:24, Stewart Hildebrand wrote:
>>> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
>>> index aac6c599f878..b4890eec7ec4 100644
>>> --- a/xen/arch/arm/traps.c
>>> +++ b/xen/arch/arm/traps.c
>>> @@ -2325,6 +2325,51 @@ void asmlinkage leave_hypervisor_to_guest(void)
>>>            arm_smccc_1_1_smc(ARM_SMCCC_ARCH_WORKAROUND_2_FID, 0, NULL);
>>>    }
>>>    +#ifdef CONFIG_DEBUG
>>> +DEFINE_PER_CPU(unsigned int, stack_check_nesting);
>>> +DEFINE_PER_CPU(unsigned char *, stack_base);
>>
>> While looking at the code, I just realized that this should be equivalent to current->arch.base.
> 
> current->arch.stack
> 
> That's true only after the idle vcpu stacks have been allocated.
> 
>> So do we actually need stack_base?
> 
> This is a way to enable stack instrumentation much earlier during boot
> when we are still using the static boot stack.

Sure. But we are only partially checking the static boot stack. I am not 
entirely sure if there is any value for that because at that point the 
stack would be barely used.

Anyway, this is only for debug build so far, so I am ok to keep it.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 20:48:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 20:48:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767141.1177724 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYXI9-0006yV-CD; Mon, 29 Jul 2024 20:48:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767141.1177724; Mon, 29 Jul 2024 20: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 1sYXI9-0006yO-8m; Mon, 29 Jul 2024 20:48:25 +0000
Received: by outflank-mailman (input) for mailman id 767141;
 Mon, 29 Jul 2024 20:48:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYXI7-0006yE-Au; Mon, 29 Jul 2024 20:48:23 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYXI6-00077Y-Ts; Mon, 29 Jul 2024 20:48:22 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYXI6-00084p-ET; Mon, 29 Jul 2024 20:48:22 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYXI6-0001q6-Dz; Mon, 29 Jul 2024 20:48:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=1IwMd6cwabSAg74vbIUEdeJ/8IshwgwCPyNLbmXUMac=; b=2HAzCkBx8G2EA6CQKAoivGx9hP
	MgcVV6QTPwpY3WvxyLbBoU9ChaBHKyiwxxXm/k76NW0zc59F9Wrjvvlt/HkA2ntKiFW62seGleg+O
	5Npw8fVE0h1ePoRKsKWlZ9OAio3sCsdN8sEBAp7XneYDKVyjy8eoKvSA27Fu4mBxjBLU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187041-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187041: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-vhd:guest-start/debian.repeat:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-arndale:host-ping-check-xen:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-vhd:host-ping-check-xen:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=dc1c8034e31b14a2e5e212104ec508aec44ce1b9
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 29 Jul 2024 20:48:22 +0000

flight 187041 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187041/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-vhd 21 guest-start/debian.repeat fail in 187039 pass in 187041
 test-armhf-armhf-xl-arndale  10 host-ping-check-xen        fail pass in 187039

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-vhd 10 host-ping-check-xen     fail blocked in 186827
 test-armhf-armhf-xl-arndale 15 migrate-support-check fail in 187039 never pass
 test-armhf-armhf-xl-arndale 16 saverestore-support-check fail in 187039 never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check fail in 187039 never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check fail in 187039 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                dc1c8034e31b14a2e5e212104ec508aec44ce1b9
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   13 days
Failing since        186925  2024-07-20 09:44:52 Z    9 days   23 attempts
Testing same since   187039  2024-07-29 05:22:18 Z    0 days    2 attempts

------------------------------------------------------------
1998 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 fail    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 222847 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 21:37:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 21:37:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767152.1177733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYY3v-0005Ne-0h; Mon, 29 Jul 2024 21:37:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767152.1177733; Mon, 29 Jul 2024 21:37:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYY3u-0005NX-TY; Mon, 29 Jul 2024 21:37:46 +0000
Received: by outflank-mailman (input) for mailman id 767152;
 Mon, 29 Jul 2024 21:37:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NfYO=O5=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sYY3t-0005NR-GW
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 21:37:45 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c85d9c83-4df2-11ef-8776-851b0ebba9a2;
 Mon, 29 Jul 2024 23:37:43 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 34401CE0E21;
 Mon, 29 Jul 2024 21:37:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 248DFC32786;
 Mon, 29 Jul 2024 21:37: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: c85d9c83-4df2-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722289057;
	bh=uy2o00y8vz8yHCeg/30hSFJ52S6q1HTe0dNw7tIY1wQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=NuC0vebLw3LGsqdbZ9qDow2dHIj1fflgikO8y3s7249/p8AkcGDoi+8INQNi3cVl2
	 ZOpanrl8tcSqZrpZgwWcDFFkqrIjSnTaSvDrXTwlXigAdDYXbxHB0BZOdXOJ8pgZvf
	 SavXVUyJCyZG2jTsxYiUw2JUyx2KCiHUTldtRM3pyNVgSrKNj0osDnwDoAN08Yylbk
	 SAMxOcnSXU82S2U+FFEwuv4JlNJSzkHs1iAnnYeqCQag/QdKtjnTmpzwy3STkVtdV4
	 uUjUqrDj5W+gSbHWoSlmvIQRhyEkuTdDMmHjkxU+09yndHERVwq2DaIHeHnCpJ1WJ2
	 lzT4OMHVEf97A==
Date: Mon, 29 Jul 2024 14:37:34 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    xen-devel@lists.xenproject.org, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
    Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, 
    George Dunlap <gwd@xenproject.org>
Subject: Re: [PATCH 0/3] Stack checking on Arm
In-Reply-To: <2cfb4a5c-dff8-4202-80dd-c546d5d6bc6d@xen.org>
Message-ID: <alpine.DEB.2.22.394.2407291333550.4857@ubuntu-linux-20-04-desktop>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com> <2cfb4a5c-dff8-4202-80dd-c546d5d6bc6d@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, 29 Jul 2024, Julien Grall wrote:
> Hi,
> 
> On 29/07/2024 15:24, Stewart Hildebrand wrote:
> > This series introduces stack check instrumentation on Arm. This is
> > helpful for safety certification efforts. I'm sending this in an RFC
> > state because I wanted to gather opinions on the approach of using
> > -finstrument-functions.
> 
> This looks ok for an initial approach. I wonder if longer term we want to
> implement stack guards on Arm. We would need to allocate an extra "virtual"
> page per stack that would be unmapped.
> 
> The advantage is this could be used also in production and doesn't rely on any
> support from the processor.
> 
> Any thoughts?

I think we need both. We should implement stack guards on Arm. In
addition, it is also beneficial to have -finstrument-functions for
profiling, debugging, and also so that we can retrieve detailed call
graphs from execution runs. As an example, -finstrument-functions can
help with offline analysis to prove that we don't have unbounded
recursion, on both arm and x86 too. On the other hand, stack guards help
with protecting the stack in production.


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 21:50:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 21:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767159.1177743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYYG1-00085D-2S; Mon, 29 Jul 2024 21:50:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767159.1177743; Mon, 29 Jul 2024 21:50:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYYG0-000856-Vn; Mon, 29 Jul 2024 21:50:16 +0000
Received: by outflank-mailman (input) for mailman id 767159;
 Mon, 29 Jul 2024 21:50:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NfYO=O5=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sYYFz-000850-OB
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 21:50:15 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 887169bd-4df4-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 23:50: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 DCE3361009;
 Mon, 29 Jul 2024 21:50:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0874BC32786;
 Mon, 29 Jul 2024 21:50: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: 887169bd-4df4-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722289811;
	bh=aE+bxWX8sqTq7QJHNJbrYD7BMyBHaNC3wB7fSrxTgCI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Adukp7esVzPotAOAEMdbjgtuISv3GktaxjgDpEUVW1qOwk0NEMPGEN9CWIYoF+4OD
	 ydCVid0kYjB+UUC6QcFz2fFNEo5M1VrZAV+1b5jrqVizgWwXiRlBHJy4JmRAxqmAb7
	 p2RFBsbktdSMt6LT20yAt9l9cG7KUKqa0Hflgr8XTmyQNFI1ZBI3ldDVjuZUQN1Kg2
	 /JuTw7CjwDtUy1i/u+5zz7ii5RJRscadf+ri+85YVOZhLilVrxyPstKRTbGsrOpkmO
	 lyfzJx2rRFtQrf/g9CU2njmNRGglW1BAaLJJBWjh6g/oBAiBK5HCRrRUu6gPbc5bih
	 EMWXjpxf3dbFQ==
Date: Mon, 29 Jul 2024 14:50:10 -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, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v1] automation: add x86_64 xilinx smoke test
In-Reply-To: <9c065e301bf1f00c218def202f4685b83083e1a1.1722044804.git.victorm.lira@amd.com>
Message-ID: <alpine.DEB.2.22.394.2407291449170.4857@ubuntu-linux-20-04-desktop>
References: <9c065e301bf1f00c218def202f4685b83083e1a1.1722044804.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 Fri, 26 Jul 2024, victorm.lira@amd.com wrote:
> From: Victor Lira <victorm.lira@amd.com>
> 
> Add a test script and related job for running x86_64 dom0 tests.
> 
> Signed-off-by: Victor Lira <victorm.lira@amd.com>

Looks great!

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


> ---
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Doug Goldstein <cardoe@cardoe.com>
> ---
>  automation/gitlab-ci/test.yaml                |  24 +++
>  .../scripts/xilinx-smoke-dom0-x86_64.sh       | 144 ++++++++++++++++++
>  2 files changed, 168 insertions(+)
>  create mode 100755 automation/scripts/xilinx-smoke-dom0-x86_64.sh
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index d89e41f244..4e74946419 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -96,6 +96,22 @@
>    tags:
>      - xilinx
> 
> +.xilinx-x86_64:
> +  extends: .test-jobs-common
> +  variables:
> +    CONTAINER: ubuntu:xenial-xilinx
> +    LOGFILE: xilinx-smoke-x86_64.log
> +  artifacts:
> +    paths:
> +      - smoke.serial
> +      - '*.log'
> +    when: always
> +  only:
> +    variables:
> +      - $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
> +  tags:
> +    - xilinx
> +
>  .adl-x86-64:
>    extends: .test-jobs-common
>    variables:
> @@ -159,6 +175,14 @@ xilinx-smoke-dom0less-arm64-gcc-debug-gem-passthrough:
>      - *arm64-test-needs
>      - alpine-3.18-gcc-debug-arm64
> 
> +xilinx-smoke-dom0-x86_64-gcc-debug:
> +  extends: .xilinx-x86_64
> +  script:
> +    - ./automation/scripts/xilinx-smoke-dom0-x86_64.sh ping 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
>  adl-smoke-x86-64-gcc-debug:
>    extends: .adl-x86-64
>    script:
> diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> new file mode 100755
> index 0000000000..e6e6fac6a5
> --- /dev/null
> +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> @@ -0,0 +1,144 @@
> +#!/bin/sh
> +
> +# Run x86_64 dom0 tests on hardware.
> +
> +set -ex
> +
> +fatal() {
> +    echo "$(basename "$0") $*" >&2
> +    exit 1
> +}
> +
> +# Test parameter defaults.
> +TEST="$1"
> +PASS_MSG="Test passed: ${TEST}"
> +XEN_CMD_CONSOLE="console=com1 com1=115200,8n1,0x3F8,4"
> +XEN_CMD_DOM0="dom0=pvh dom0_max_vcpus=4 dom0_mem=4G"
> +XEN_CMD_XEN="sched=null loglvl=all guest_loglvl=all console_timestamps=boot"
> +XEN_CMD_EXTRA=""
> +DOM0_CMD=""
> +DOMU_CMD=""
> +DOMU_CFG='
> +type = "pvh"
> +name = "domU"
> +kernel = "/boot/vmlinuz"
> +ramdisk = "/boot/initrd-domU"
> +extra = "root=/dev/ram0 console=hvc0"
> +memory = 512
> +vif = [ "bridge=xenbr0", ]
> +disk = [ ]
> +'
> +TIMEOUT_SECONDS=120
> +
> +# Select test variant.
> +if [ "${TEST}" = "ping" ]; then
> +    DOMU_MSG="domU online"
> +    DOMU_CMD="
> +ifconfig eth0 192.168.0.2
> +until ping -c 10 192.168.0.1; do
> +    sleep 1
> +done
> +echo \"${DOMU_MSG}\"
> +"
> +    DOM0_CMD="
> +set +x
> +until grep -q \"${DOMU_MSG}\" /var/log/xen/console/guest-domU.log; do
> +    sleep 1
> +done
> +set -x
> +echo \"${PASS_MSG}\"
> +"
> +else
> +    fatal "Unknown test: ${TEST}"
> +fi
> +
> +# Set up domU rootfs.
> +mkdir -p rootfs
> +cd rootfs
> +tar xzf ../binaries/initrd.tar.gz
> +mkdir proc
> +mkdir run
> +mkdir srv
> +mkdir sys
> +rm var/run
> +echo "#!/bin/sh
> +
> +${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
> +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
> +mkdir proc
> +mkdir run
> +mkdir srv
> +mkdir sys
> +rm var/run
> +cp -ar ../binaries/dist/install/* .
> +echo "#!/bin/bash
> +
> +export LD_LIBRARY_PATH=/usr/local/lib
> +bash /etc/init.d/xencommons start
> +
> +brctl addbr xenbr0
> +brctl addif xenbr0 eth0
> +ifconfig eth0 up
> +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
> +${DOM0_CMD}
> +" > etc/local.d/xen.start
> +chmod +x etc/local.d/xen.start
> +echo "${DOMU_CFG}" > 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
> +find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
> +cd ..
> +
> +# Load software into TFTP server directory.
> +TFTP="/scratch/gitlab-runner/tftp"
> +XEN_CMDLINE="${XEN_CMD_CONSOLE} ${XEN_CMD_XEN} ${XEN_CMD_DOM0} ${XEN_CMD_EXTRA}"
> +cp -f binaries/xen ${TFTP}/pxelinux.cfg/xen
> +cp -f binaries/bzImage ${TFTP}/pxelinux.cfg/vmlinuz
> +cp -f binaries/dom0-rootfs.cpio.gz ${TFTP}/pxelinux.cfg/initrd-dom0
> +echo "
> +net_default_server=10.0.6.1
> +multiboot2 (tftp)/pxelinux.cfg/xen ${XEN_CMDLINE}
> +module2 (tftp)/pxelinux.cfg/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen
> +module2 (tftp)/pxelinux.cfg/initrd-dom0
> +boot
> +" > ${TFTP}/pxelinux.cfg/grub.cfg
> +
> +# Power cycle board and collect serial port output.
> +SERIAL_CMD="cat /dev/ttyUSB9 | tee smoke.serial | sed 's/\r//'"
> +sh /scratch/gitlab-runner/v2000a.sh 2
> +sleep 5
> +sh /scratch/gitlab-runner/v2000a.sh 1
> +sleep 5
> +set +e
> +stty -F /dev/ttyUSB9 115200
> +timeout -k 1 ${TIMEOUT_SECONDS} nohup sh -c "${SERIAL_CMD}"
> +sh /scratch/gitlab-runner/v2000a.sh 2
> +
> +set -e
> +
> +if grep -q "${PASS_MSG}" smoke.serial; then
> +    exit 0
> +fi
> +
> +fatal "Test failed"
> --
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 22:08:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 22:08:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767167.1177753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYYXr-0001yW-EI; Mon, 29 Jul 2024 22:08:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767167.1177753; Mon, 29 Jul 2024 22:08: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 1sYYXr-0001yP-BX; Mon, 29 Jul 2024 22:08:43 +0000
Received: by outflank-mailman (input) for mailman id 767167;
 Mon, 29 Jul 2024 22: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=lS6U=O5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sYYXp-0001y3-CX
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 22:08:41 +0000
Received: from fhigh4-smtp.messagingengine.com
 (fhigh4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1bd2459a-4df7-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 00:08:39 +0200 (CEST)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 52D3E11401A0;
 Mon, 29 Jul 2024 18:08:37 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute1.internal (MEProxy); Mon, 29 Jul 2024 18:08:37 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 29 Jul 2024 18:08: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: 1bd2459a-4df7-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1722290917;
	 x=1722377317; bh=Wyz5mVHR3G8vUpOSDBaUIeknkHvsrxRKQHb3UhLhg58=; b=
	jezJNaDpwgkCsRcAxVJjjgq6vsnzzJVw8hXcBJllq2BM8T/7TwmDoBtqYU7b3AOZ
	/e9jlYwgqdBo5z24zYawrqkx/zhzrNPMm1X41lEJLXwbPjzoZdZ5wS76t+Rub8p4
	KC951awjDymHBB3mNZ4VEMa4Nwc5a7xsW7sylOQvp8IonT/AFuTQKbc8sPDbhM3h
	P6GpqPrwlUabEOIu3L2Ypj9N5rMMrF6dqUkXxAUAFCtsk0JLWlphRD/Up5K5Hky5
	UMuhvZ0mvoLr3Vs789lXUSKgS3vUq2wHUPWN5IqB7C9wnOGalOfezL4mo7DDnTg5
	9J9/jZNCBI00+85IlLUo2w==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1722290917; x=1722377317; bh=Wyz5mVHR3G8vUpOSDBaUIeknkHvs
	rxRKQHb3UhLhg58=; b=KKZYnwVSAGs32VIFTzZbmwldcmSmHksd/gYdA2k+2pIm
	swy9eqwmdzOfHqjD5pFK0yaJEj3p3+Y04orJ87CdL/Ko2+Acnz3FK/rY052kcTNc
	nwAczQ/kc9g+yeD2RUATdnG0K03FysKUDdN+s21Q9G6R4JOJqlJBXBZUzhOS84WR
	v1ZmuQX0lZw69WzBopcBl1vKHWNZ5bNHn1SjKkp+xjuxC9pQLpDtePFXNpzRQixd
	p6zZDaqx1k6oNXQqETyiqWJ9bsnWH5VHEY9OoPYL7AO1gZ88kqNJCpwcztm+n7sK
	dODTQpMCEJJPsNwhJMWuehlEpjp0P2iQGxmeNpsmng==
X-ME-Sender: <xms:5BKoZs9LSwXC7EM78ViAtHdtwSF7iMv9cya9eLunwYPEtc4YKIIydQ>
    <xme:5BKoZktd9ZOFsVaP-C0BEISL-LODC0WiREj2IPvfDksFJ2VtqGXIUIPI-u28kifSO
    ksfo8wKml64Ng>
X-ME-Received: <xmr:5BKoZiBzznPWAAU20HNVYxPVcHGUkddmf8NjxGbu86b1tH8rhgdusUYTyxOnl8JptA2oq6wjhUHxb_AjGwvYxuFSVMxmSRespw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrjeefgddtjecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudel
    teefvefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedt
X-ME-Proxy: <xmx:5BKoZscwufBX2XkvLajUgpKb4aw7bA3H007dEfF3eOgwe5VWq-aHNg>
    <xmx:5BKoZhNTZKYUVkk5iDF-vP1pV9nDz-esCLEHP_U_kz2bWm-2jW1TPg>
    <xmx:5BKoZmkNxYt-e8alvIB2MB8xCXaDgNZIEayXdXAstJ5oIOAhkEL_Cw>
    <xmx:5BKoZjudXGqqMoU8uZy_KyP-aBp7OBO8uLjVppCkx9OhQcuG9rjiYw>
    <xmx:5RKoZk13M7gMblXGPoTxir-_-xP4BOcKoI02td-qOZbHGzDssH_MeyqR>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 30 Jul 2024 00:08:33 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2] x86/shutdown: change default reboot method preference
Message-ID: <ZqgS4Zc9Tg-a_D-j@mail-itl>
References: <20230915074347.94712-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="B0iUB4CmVPG+vr8t"
Content-Disposition: inline
In-Reply-To: <20230915074347.94712-1-roger.pau@citrix.com>


--B0iUB4CmVPG+vr8t
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 30 Jul 2024 00:08:33 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2] x86/shutdown: change default reboot method preference

On Fri, Sep 15, 2023 at 09:43:47AM +0200, Roger Pau Monne wrote:
> The current logic to chose the preferred reboot method is based on the mo=
de Xen
> has been booted into, so if the box is booted from UEFI, the preferred re=
boot
> method will be to use the ResetSystem() run time service call.
>=20
> However, that method seems to be widely untested, and quite often leads t=
o a
> result similar to:
>=20
> Hardware Dom0 shutdown: rebooting machine
> ----[ Xen-4.18-unstable  x86_64  debug=3Dy  Tainted:   C    ]----
> CPU:    0
> RIP:    e008:[<0000000000000017>] 0000000000000017
> RFLAGS: 0000000000010202   CONTEXT: hypervisor
> [...]
> Xen call trace:
>    [<0000000000000017>] R 0000000000000017
>    [<ffff83207eff7b50>] S ffff83207eff7b50
>    [<ffff82d0403525aa>] F machine_restart+0x1da/0x261
>    [<ffff82d04035263c>] F apic_wait_icr_idle+0/0x37
>    [<ffff82d040233689>] F smp_call_function_interrupt+0xc7/0xcb
>    [<ffff82d040352f05>] F call_function_interrupt+0x20/0x34
>    [<ffff82d04033b0d5>] F do_IRQ+0x150/0x6f3
>    [<ffff82d0402018c2>] F common_interrupt+0x132/0x140
>    [<ffff82d040283d33>] F arch/x86/acpi/cpu_idle.c#acpi_idle_do_entry+0x1=
13/0x129
>    [<ffff82d04028436c>] F arch/x86/acpi/cpu_idle.c#acpi_processor_idle+0x=
3eb/0x5f7
>    [<ffff82d04032a549>] F arch/x86/domain.c#idle_loop+0xec/0xee
>=20
> ****************************************
> Panic on CPU 0:
> FATAL TRAP: vector =3D 6 (invalid opcode)
> ****************************************
>=20
> Which in most cases does lead to a reboot, however that's unreliable.
>=20
> Change the default reboot preference to prefer ACPI over UEFI if availabl=
e and
> not in reduced hardware mode.
>=20
> This is in line to what Linux does, so it's unlikely to cause issues on c=
urrent
> and future hardware, since there's a much higher chance of vendors testing
> hardware with Linux rather than Xen.
>=20
> Add a special case for one Acer model that does require being rebooted us=
ing
> ResetSystem().  See Linux commit 0082517fa4bce for rationale.
>=20
> I'm not aware of using ACPI reboot causing issues on boxes that do have
> properly implemented ResetSystem() methods.

With the Acer quirk, and the info Jan posted in the thread, this
sentence technically is not true. I don't think it warrants any code
change in this patch (it's clearly less common and less problematic
issue than crash during ResetSystem(), and still can be worked around
with a cmdline option). But might warrant adjusting commit message.

> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Other points still stand, and I think this generally is an improvement,
so, preferably with adjusted commit message:

Acked-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

> ---
> Changes since v1:
>  - Add special case for Acer model to use UEFI reboot.
>  - Adjust commit message.
> ---
>  xen/arch/x86/shutdown.c | 19 +++++++++++++++----
>  1 file changed, 15 insertions(+), 4 deletions(-)
>=20
> diff --git a/xen/arch/x86/shutdown.c b/xen/arch/x86/shutdown.c
> index 7619544d14da..3816ede1afe5 100644
> --- a/xen/arch/x86/shutdown.c
> +++ b/xen/arch/x86/shutdown.c
> @@ -150,19 +150,20 @@ static void default_reboot_type(void)
> =20
>      if ( xen_guest )
>          reboot_type =3D BOOT_XEN;
> +    else if ( !acpi_disabled && !acpi_gbl_reduced_hardware )
> +        reboot_type =3D BOOT_ACPI;
>      else if ( efi_enabled(EFI_RS) )
>          reboot_type =3D BOOT_EFI;
> -    else if ( acpi_disabled )
> -        reboot_type =3D BOOT_KBD;
>      else
> -        reboot_type =3D BOOT_ACPI;
> +        reboot_type =3D BOOT_KBD;
>  }
> =20
>  static int __init cf_check override_reboot(const struct dmi_system_id *d)
>  {
>      enum reboot_type type =3D (long)d->driver_data;
> =20
> -    if ( type =3D=3D BOOT_ACPI && acpi_disabled )
> +    if ( (type =3D=3D BOOT_ACPI && acpi_disabled) ||
> +         (type =3D=3D BOOT_EFI && !efi_enabled(EFI_RS)) )
>          type =3D BOOT_KBD;
> =20
>      if ( reboot_type !=3D type )
> @@ -172,6 +173,7 @@ static int __init cf_check override_reboot(const stru=
ct dmi_system_id *d)
>              [BOOT_KBD]  =3D "keyboard controller",
>              [BOOT_ACPI] =3D "ACPI",
>              [BOOT_CF9]  =3D "PCI",
> +            [BOOT_EFI]  =3D "UEFI",
>          };
> =20
>          reboot_type =3D type;
> @@ -530,6 +532,15 @@ static const struct dmi_system_id __initconstrel reb=
oot_dmi_table[] =3D {
>              DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R740"),
>          },
>      },
> +    {    /* Handle problems with rebooting on Acer TravelMate X514-51T. =
*/
> +        .callback =3D override_reboot,
> +        .driver_data =3D (void *)(long)BOOT_EFI,
> +        .ident =3D "Acer TravelMate X514-51T",
> +        .matches =3D {
> +            DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
> +            DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate X514-51T"),
> +        },
> +    },
>      { }
>  };
> =20
> --=20
> 2.42.0
>=20
>=20

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

--B0iUB4CmVPG+vr8t
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmaoEuEACgkQ24/THMrX
1yx4RAf+MZSi/S0RKra9krmr1H0OjVXCcgdXDw0IcG8XkdvwYQhFg57elhpigUaz
btaDJGL15RFyOQ5JHwfeRVdrk7WbcmfUEtC23Kv3RwdnkBpOELfHg7z4M4pXuP6a
9o5YHIkzrv3WpZxErVzIHcOf+hQyze7XIqMtEGU0JzQcB/fzYNFnO+IOQjjgcssy
XHTjtjmVSCkFLx6xeyZtYPhwR/UCbIlIPnZyXnMTg7GP8mJLp+a23Muml7JTnvLB
nMa+jucg0mwohF8IdziurMYlrqnTu0REnO9EV5TvE8Xa3DPpzX0tRsgJ/ISC1wZH
ITTg5u3ZSYM2rT6i7/3W/W+OWT+WoA==
=tDyL
-----END PGP SIGNATURE-----

--B0iUB4CmVPG+vr8t--


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 22:13:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 22:13:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767175.1177764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYYc7-0003Qd-U4; Mon, 29 Jul 2024 22:13:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767175.1177764; Mon, 29 Jul 2024 22: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 1sYYc7-0003QW-RJ; Mon, 29 Jul 2024 22:13:07 +0000
Received: by outflank-mailman (input) for mailman id 767175;
 Mon, 29 Jul 2024 22: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=NfYO=O5=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sYYc6-0003QL-4E
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 22:13:06 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b9366374-4df7-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 00:13:04 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 4D0ACCE0A25;
 Mon, 29 Jul 2024 22:12:58 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E3BF7C32786;
 Mon, 29 Jul 2024 22: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: b9366374-4df7-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722291177;
	bh=8qN6bkvEn2bUYp+GfPElANlqN5MUNzSykFxHvABWZYQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JAbmZGtgDYH6SxweMNF87lMahJ7Nz2NNzcKvGmX6Q5dfiVRhPcHjcU0BmCk6/25Zo
	 YipRflgFYeeaH+cZ82pM5/ips+bRaHKtsydm+NP2yX+WZ6AxYEfdUclFkfAhMD40PW
	 veVdoWkQeJtIQ4mY5cgmOXka5MT6fVD3GVFymcdEi1Z8S9gmd0j2/BMd9w9Rn60GrH
	 FFcqGtlKZOx22FIoInznBFWnkbzmwB+kpgt+5AGKUWZ1r2lBJfzIRpu2vl5KuO0CUg
	 cHy3daVaqjwwzVwrtqwCLgplWWUhkFot8tHyPjMMZMIJo3tVvsxveSHno7uRH31XU/
	 4y9suUOwwcY5A==
Date: Mon, 29 Jul 2024 15:12:55 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [XEN PATCH v5 7/8] x86/mm: add defensive return
In-Reply-To: <24501d2e7f5d82d8e5a483a80b35e04ce765a7cf.1722239813.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407291512280.4857@ubuntu-linux-20-04-desktop>
References: <cover.1722239813.git.federico.serafini@bugseng.com> <24501d2e7f5d82d8e5a483a80b35e04ce765a7cf.1722239813.git.federico.serafini@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 29 Jul 2024, Federico Serafini wrote:
> Add defensive return statement at the end of an unreachable
> default case. Other than improve safety, this meets the requirements
> to deviate a violation of MISRA C Rule 16.3: "An unconditional `break'
> statement shall terminate every switch-clause".
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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

> ---
> No changes from v3 and v4, further feedback on this thread would be appreciated:
> https://lists.xenproject.org/archives/html/xen-devel/2024-07/msg00474.html
> ---
>  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 95795567f2..8973e76dff 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -917,6 +917,7 @@ get_page_from_l1e(
>                  return 0;
>              default:
>                  ASSERT_UNREACHABLE();
> +                return -EPERM;
>              }
>          }
>          else if ( l1f & _PAGE_RW )
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Mon Jul 29 22:15:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 22:15:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767181.1177773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYYe1-0003yH-98; Mon, 29 Jul 2024 22:15:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767181.1177773; Mon, 29 Jul 2024 22:15: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 1sYYe1-0003yA-6F; Mon, 29 Jul 2024 22:15:05 +0000
Received: by outflank-mailman (input) for mailman id 767181;
 Mon, 29 Jul 2024 22:15: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=cV/c=O5=rabbit.lu=slack@srs-se1.protection.inumbo.net>)
 id 1sYYe0-0003y4-Hr
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 22:15:04 +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 00474856-4df8-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 00:15:02 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-427fc97a88cso21029335e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 15:15:02 -0700 (PDT)
Received: from [192.168.2.1] (82-64-138-184.subs.proxad.net. [82.64.138.184])
 by smtp.googlemail.com with ESMTPSA id
 5b1f17b1804b1-4280ca10aa6sm140749915e9.26.2024.07.29.15.15.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 15:15: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: 00474856-4df8-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=rabbit-lu.20230601.gappssmtp.com; s=20230601; t=1722291302; x=1722896102; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=G/s9EEuC6kL0VgdBLDMI7MqsE6wMxQnEZgLWWOZgohQ=;
        b=rPycoD2CRTPFAoCnGmagI4VitF7K3P3PRDzxD9U103gyKXRKR0knHsapJuJiCE4/KX
         15cpqimr4N9NXbCUsw4xwamlRgZ56lT434nJ5mRmdYhWJUiYVSFad0espEg7/6VTqXPb
         u1MuExg9c+GWgUE1lrqcXzQiKu7sJJzNGQloFazubrHajqY/tzxMViVoboSaO0l+BbtY
         VnZYiXVGA7WkBbuC1SPdF6e/5vvIFY3cuw3LfOzscmYGnWZzlJ81nuXcHEmBOPol1l4g
         GZ6SaqaInZQURvyLba/OeVGy2+EjcC2fksPqJplB1KTAKBe9mMQf2LmpolnuAl1X7pum
         RwKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722291302; x=1722896102;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=G/s9EEuC6kL0VgdBLDMI7MqsE6wMxQnEZgLWWOZgohQ=;
        b=icACqPd5oKS6c68ZlnhEJFvPqGQUORPOY22HkgSYJNkkCoJBa28KYyesThTIAS+YLG
         OggJ2/OE/Y7LTwcsH0Akyjfmzkx+aCtexwGL0fO+pomGN9v/U2UVI1PPuK9VJokzTKp+
         O5cBxeDg3aHHp4AEKRHsuLdNrqKBSu7Dz+MvX+ky82SutrxU29Rpyl/YDOxoBAozr+mK
         mjIu27FyOWYK8SFschVh/ortLZXn5CpaFJMHX9Q1qeCKC0fQMv0g01i9nK99wWVVKk67
         Ml9IcbYhgAvYO68+HNdGo9uiS+N/dmbpuIcXBrmv5EPQ3gK5XMoT9hMYDDeSEJe9h3U7
         XnTg==
X-Gm-Message-State: AOJu0YzQFiauVm4pJyjIHo9Ii5Z+xii96KJJuqVtGBGQtQwjocMcRhNw
	LVh3eik5Vix6rmIlxj4LVocixuBCUNBJjX+CVHhtYtP6bWtKL/H+gehKu8PX9W0jMjAQoGKvE10
	G
X-Google-Smtp-Source: AGHT+IG+ka9xmP71GE6JWDtFAdKJ1hlnaXR5WCwLheNFscR7oaVIptJf3efOpWfhadL3BeS9tHVJSg==
X-Received: by 2002:a05:600c:4ec9:b0:426:58cb:8ca3 with SMTP id 5b1f17b1804b1-42811d9eda7mr60088005e9.21.1722291301786;
        Mon, 29 Jul 2024 15:15:01 -0700 (PDT)
Message-ID: <6adecba0-0a22-470f-9cac-9b7ef5aa671d@rabbit.lu>
Date: Tue, 30 Jul 2024 00:15:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xl: add suspend-to-ram and resume subcommands
Content-Language: en-US
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <4e9f3590be9f19edb87e05c7b7c2efeae8863109.1709190010.git.slack@rabbit.lu>
From: zithro <slack@rabbit.lu>
In-Reply-To: <4e9f3590be9f19edb87e05c7b7c2efeae8863109.1709190010.git.slack@rabbit.lu>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Added my S-o-B (no other change).

On 29 Feb 2024 08:00, zithro / Cyril Rébert wrote:
> The xl command doesn't provide suspend/resume, so add them :
>    xl suspend-to-ram <Domain>
>    xl resume <Domain>
> 
> This patch follows a discussion on XenDevel: when you want the
> virtualized equivalent of "sleep"-ing a host, it's better to
> suspend/resume than to pause/unpause a domain.
> 
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Suggested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Cyril Rébert (zithro) <slack@rabbit.lu>
> 
> ---
> - Tested on v4.17, x86
> - the function "libxl_domain_resume" is called like libvirt does, so
>    using a "co-operative resume", but I don't know what it means (:
> - there may be a problem with the words resume <-> restore, like
>    for "LIBXL_HAVE_NO_SUSPEND_RESUME"
> - for the docs, I only slightly adapted a copy/paste from xl pause ...
> ---
> ---
>   docs/man/xl.1.pod.in    | 10 ++++++++++
>   tools/xl/xl.h           |  2 ++
>   tools/xl/xl_cmdtable.c  | 10 ++++++++++
>   tools/xl/xl_vmcontrol.c | 36 ++++++++++++++++++++++++++++++++++++
>   4 files changed, 58 insertions(+)
> 
> diff --git a/docs/man/xl.1.pod.in b/docs/man/xl.1.pod.in
> index bed8393473..63d80f1449 100644
> --- a/docs/man/xl.1.pod.in
> +++ b/docs/man/xl.1.pod.in
> @@ -682,6 +682,10 @@ Pass the VNC password to vncviewer via stdin.
>   
>   =back
>   
> +=item B<resume> I<domain-id>
> +
> +Resume a domain, after having been suspended to RAM.
> +
>   =item B<save> [I<OPTIONS>] I<domain-id> I<checkpointfile> [I<configfile>]
>   
>   Saves a running domain to a state file so that it can be restored
> @@ -760,6 +764,12 @@ in response to this event.
>   
>   =back
>   
> +=item B<suspend-to-ram> I<domain-id>
> +
> +Suspend a domain to RAM.  When in a suspended state the domain will still
> +consume allocated resources (such as memory), but will not be eligible for
> +scheduling by the Xen hypervisor. It is in a shutdown state, but not dying.
> +
>   =item B<sysrq> I<domain-id> I<letter>
>   
>   Send a <Magic System Request> to the domain, each type of request is
> diff --git a/tools/xl/xl.h b/tools/xl/xl.h
> index 9c86bb1d98..716ad32423 100644
> --- a/tools/xl/xl.h
> +++ b/tools/xl/xl.h
> @@ -133,6 +133,8 @@ int main_migrate(int argc, char **argv);
>   int main_dump_core(int argc, char **argv);
>   int main_pause(int argc, char **argv);
>   int main_unpause(int argc, char **argv);
> +int main_suspendtoram(int argc, char **argv);
> +int main_resume(int argc, char **argv);
>   int main_destroy(int argc, char **argv);
>   int main_shutdown(int argc, char **argv);
>   int main_reboot(int argc, char **argv);
> diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
> index 62bdb2aeaa..1382282252 100644
> --- a/tools/xl/xl_cmdtable.c
> +++ b/tools/xl/xl_cmdtable.c
> @@ -136,6 +136,16 @@ const struct cmd_spec cmd_table[] = {
>         "Unpause a paused domain",
>         "<Domain>",
>       },
> +    { "suspend-to-ram",
> +      &main_suspendtoram, 0, 1,
> +      "Suspend a domain to RAM",
> +      "<Domain>",
> +    },
> +    { "resume",
> +      &main_resume, 0, 1,
> +      "Resume a domain from RAM",
> +      "<Domain>",
> +    },
>       { "console",
>         &main_console, 0, 0,
>         "Attach to domain's console",
> diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
> index 98f6bd2e76..ba45f89c5a 100644
> --- a/tools/xl/xl_vmcontrol.c
> +++ b/tools/xl/xl_vmcontrol.c
> @@ -42,6 +42,16 @@ static void unpause_domain(uint32_t domid)
>       libxl_domain_unpause(ctx, domid, NULL);
>   }
>   
> +static void suspend_domain_toram(uint32_t domid)
> +{
> +    libxl_domain_suspend_only(ctx, domid, NULL);
> +}
> +
> +static void resume_domain(uint32_t domid)
> +{
> +    libxl_domain_resume(ctx, domid, 1, NULL);
> +}
> +
>   static void destroy_domain(uint32_t domid, int force)
>   {
>       int rc;
> @@ -82,6 +92,32 @@ int main_unpause(int argc, char **argv)
>       return EXIT_SUCCESS;
>   }
>   
> +int main_suspendtoram(int argc, char **argv)
> +{
> +    int opt;
> +
> +    SWITCH_FOREACH_OPT(opt, "", NULL, "suspend-to-ram", 1) {
> +        /* No options */
> +    }
> +
> +    suspend_domain_toram(find_domain(argv[optind]));
> +
> +    return EXIT_SUCCESS;
> +}
> +
> +int main_resume(int argc, char **argv)
> +{
> +    int opt;
> +
> +    SWITCH_FOREACH_OPT(opt, "", NULL, "resume", 1) {
> +        /* No options */
> +    }
> +
> +    resume_domain(find_domain(argv[optind]));
> +
> +    return EXIT_SUCCESS;
> +}
> +
>   int main_destroy(int argc, char **argv)
>   {
>       int opt;

-- 
++
zithro / Cyril



From xen-devel-bounces@lists.xenproject.org Mon Jul 29 22:32:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 29 Jul 2024 22:32:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767193.1177784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYYuS-0007EU-Q9; Mon, 29 Jul 2024 22:32:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767193.1177784; Mon, 29 Jul 2024 22:32: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 1sYYuS-0007EN-MN; Mon, 29 Jul 2024 22:32:04 +0000
Received: by outflank-mailman (input) for mailman id 767193;
 Mon, 29 Jul 2024 22:32: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=cV/c=O5=rabbit.lu=slack@srs-se1.protection.inumbo.net>)
 id 1sYYuR-0007EH-Qd
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 22:32:03 +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 5f7f620a-4dfa-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 00:32:01 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-42122ac2f38so13781145e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 15:32:01 -0700 (PDT)
Received: from [192.168.2.1] (82-64-138-184.subs.proxad.net. [82.64.138.184])
 by smtp.googlemail.com with ESMTPSA id
 5b1f17b1804b1-42805730d92sm193065265e9.3.2024.07.29.15.31.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 15:32: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: 5f7f620a-4dfa-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=rabbit-lu.20230601.gappssmtp.com; s=20230601; t=1722292321; x=1722897121; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ayqfIiq+/6WGn7TchExAmRzOwbbAd8qYjwmC5vSoL+A=;
        b=XMQrUP2jtIFhVvVczfIZ+Hqrz95EyQuApoLFjipfsnj42iTB4PUjxRArY7V4Vn5Qsd
         Dmr0OqQeWtxdpxoa+W4njoJyEPAZ2lk96Ln33ew5OYQEu3AFqsUATlB5ioop9CmYNGTX
         7Ec+kVUv9UY8vFbla4sjYmCWMk0Xtg94k0rzs9WZhc9WlnPSDEj2Vp9MDKBP69fYg3ce
         r1qZYHZiPtvH+Cos6vL9PSnPLZymTRY5TKGcYFdoL3EZO8r3IEhpmusHq6vK9XdB8E4x
         9lhhj1FhfwteL3picim4bFzioY9PwCL9gIupfg3qAtVy+A2qrUbngR4v8TK1ybqrXP8p
         WDmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722292321; x=1722897121;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ayqfIiq+/6WGn7TchExAmRzOwbbAd8qYjwmC5vSoL+A=;
        b=TrCoVwAUB/VUmZp1PubUX8YcHMrDL1Tbe6oraPlLLmfa813ciB0L/RqkP04uereU83
         x0Dvb03shZJ8A1qOeUbvgybiHVjZthxHSiaJJIlZ3nSnfWDZ317m8wBzGURDIyEGmdze
         mpry4D0yYmooNuYD81Ism6LPWugkYI6D8QbKcT+byjYS/7rXTfxihZ0Jmi9ImaFwXKrP
         MPmlDzPG7NoiQxpgqCzhUwaucEE7+ItZ0H2CflxsQ24hwHdsnjXd8aNTacQhJt0pNxrh
         1OZ2sHPa8j05Uyq3toVsI+72puWPjSkA73NVQdmYQB2g9pRYK3OXPOVJOIYMWs3bXToB
         3eqQ==
X-Gm-Message-State: AOJu0YyuUcLJxRnyHsV25fLwwr06bfQ3IfwXlcl9OJwrBXryBVMPOEii
	qq5DZz1ZVM2K+iLCnH9fpk/240eQIxlKQQNI4xG8O6xhBPNrQUQn36EktDUyAcSzAe69FfUwJw7
	cZuE=
X-Google-Smtp-Source: AGHT+IEp5e8/zFHOhoNtRQU4WCOEPFgeVqrizO8CnpYn8yEEOIOlkB0IOdRs7/X9nwqq2Zovxn0OLw==
X-Received: by 2002:a05:600c:a41:b0:428:9c0:2ad with SMTP id 5b1f17b1804b1-4282445d0c0mr496115e9.18.1722292320427;
        Mon, 29 Jul 2024 15:32:00 -0700 (PDT)
Message-ID: <500adb55-4927-4876-aa22-3269538bb4c7@rabbit.lu>
Date: Tue, 30 Jul 2024 00:31:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xl: add suspend-to-ram and resume subcommands
Content-Language: en-US
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <4e9f3590be9f19edb87e05c7b7c2efeae8863109.1709190010.git.slack@rabbit.lu>
From: zithro <slack@rabbit.lu>
In-Reply-To: <4e9f3590be9f19edb87e05c7b7c2efeae8863109.1709190010.git.slack@rabbit.lu>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Added my S-o-B (no other change).

PS: re-sent to account for Anthony mail address change

On 29 Feb 2024 08:00, zithro / Cyril Rébert wrote:
> The xl command doesn't provide suspend/resume, so add them :
>    xl suspend-to-ram <Domain>
>    xl resume <Domain>
> 
> This patch follows a discussion on XenDevel: when you want the
> virtualized equivalent of "sleep"-ing a host, it's better to
> suspend/resume than to pause/unpause a domain.
> 
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Suggested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Cyril Rébert (zithro) <slack@rabbit.lu>
> 
> ---
> - Tested on v4.17, x86
> - the function "libxl_domain_resume" is called like libvirt does, so
>    using a "co-operative resume", but I don't know what it means (:
> - there may be a problem with the words resume <-> restore, like
>    for "LIBXL_HAVE_NO_SUSPEND_RESUME"
> - for the docs, I only slightly adapted a copy/paste from xl pause ...
> ---
> ---
>   docs/man/xl.1.pod.in    | 10 ++++++++++
>   tools/xl/xl.h           |  2 ++
>   tools/xl/xl_cmdtable.c  | 10 ++++++++++
>   tools/xl/xl_vmcontrol.c | 36 ++++++++++++++++++++++++++++++++++++
>   4 files changed, 58 insertions(+)
> 
> diff --git a/docs/man/xl.1.pod.in b/docs/man/xl.1.pod.in
> index bed8393473..63d80f1449 100644
> --- a/docs/man/xl.1.pod.in
> +++ b/docs/man/xl.1.pod.in
> @@ -682,6 +682,10 @@ Pass the VNC password to vncviewer via stdin.
>   
>   =back
>   
> +=item B<resume> I<domain-id>
> +
> +Resume a domain, after having been suspended to RAM.
> +
>   =item B<save> [I<OPTIONS>] I<domain-id> I<checkpointfile> [I<configfile>]
>   
>   Saves a running domain to a state file so that it can be restored
> @@ -760,6 +764,12 @@ in response to this event.
>   
>   =back
>   
> +=item B<suspend-to-ram> I<domain-id>
> +
> +Suspend a domain to RAM.  When in a suspended state the domain will still
> +consume allocated resources (such as memory), but will not be eligible for
> +scheduling by the Xen hypervisor. It is in a shutdown state, but not dying.
> +
>   =item B<sysrq> I<domain-id> I<letter>
>   
>   Send a <Magic System Request> to the domain, each type of request is
> diff --git a/tools/xl/xl.h b/tools/xl/xl.h
> index 9c86bb1d98..716ad32423 100644
> --- a/tools/xl/xl.h
> +++ b/tools/xl/xl.h
> @@ -133,6 +133,8 @@ int main_migrate(int argc, char **argv);
>   int main_dump_core(int argc, char **argv);
>   int main_pause(int argc, char **argv);
>   int main_unpause(int argc, char **argv);
> +int main_suspendtoram(int argc, char **argv);
> +int main_resume(int argc, char **argv);
>   int main_destroy(int argc, char **argv);
>   int main_shutdown(int argc, char **argv);
>   int main_reboot(int argc, char **argv);
> diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
> index 62bdb2aeaa..1382282252 100644
> --- a/tools/xl/xl_cmdtable.c
> +++ b/tools/xl/xl_cmdtable.c
> @@ -136,6 +136,16 @@ const struct cmd_spec cmd_table[] = {
>         "Unpause a paused domain",
>         "<Domain>",
>       },
> +    { "suspend-to-ram",
> +      &main_suspendtoram, 0, 1,
> +      "Suspend a domain to RAM",
> +      "<Domain>",
> +    },
> +    { "resume",
> +      &main_resume, 0, 1,
> +      "Resume a domain from RAM",
> +      "<Domain>",
> +    },
>       { "console",
>         &main_console, 0, 0,
>         "Attach to domain's console",
> diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
> index 98f6bd2e76..ba45f89c5a 100644
> --- a/tools/xl/xl_vmcontrol.c
> +++ b/tools/xl/xl_vmcontrol.c
> @@ -42,6 +42,16 @@ static void unpause_domain(uint32_t domid)
>       libxl_domain_unpause(ctx, domid, NULL);
>   }
>   
> +static void suspend_domain_toram(uint32_t domid)
> +{
> +    libxl_domain_suspend_only(ctx, domid, NULL);
> +}
> +
> +static void resume_domain(uint32_t domid)
> +{
> +    libxl_domain_resume(ctx, domid, 1, NULL);
> +}
> +
>   static void destroy_domain(uint32_t domid, int force)
>   {
>       int rc;
> @@ -82,6 +92,32 @@ int main_unpause(int argc, char **argv)
>       return EXIT_SUCCESS;
>   }
>   
> +int main_suspendtoram(int argc, char **argv)
> +{
> +    int opt;
> +
> +    SWITCH_FOREACH_OPT(opt, "", NULL, "suspend-to-ram", 1) {
> +        /* No options */
> +    }
> +
> +    suspend_domain_toram(find_domain(argv[optind]));
> +
> +    return EXIT_SUCCESS;
> +}
> +
> +int main_resume(int argc, char **argv)
> +{
> +    int opt;
> +
> +    SWITCH_FOREACH_OPT(opt, "", NULL, "resume", 1) {
> +        /* No options */
> +    }
> +
> +    resume_domain(find_domain(argv[optind]));
> +
> +    return EXIT_SUCCESS;
> +}
> +
>   int main_destroy(int argc, char **argv)
>   {
>       int opt;

-- 
++
zithro / Cyril



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 00:45:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 00:45:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767204.1177794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYazM-0007xy-MN; Tue, 30 Jul 2024 00:45:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767204.1177794; Tue, 30 Jul 2024 00: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 1sYazM-0007xr-J3; Tue, 30 Jul 2024 00:45:16 +0000
Received: by outflank-mailman (input) for mailman id 767204;
 Tue, 30 Jul 2024 00:45:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYazK-0007xh-Rt; Tue, 30 Jul 2024 00:45:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYazK-0003CL-IW; Tue, 30 Jul 2024 00:45:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYazK-0000YN-3S; Tue, 30 Jul 2024 00:45:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYazK-0004Qn-2l; Tue, 30 Jul 2024 00: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=2ddENcCBSstEb1/MwKWBDLEqNyPdvEcGuYR2z1l6DyU=; b=aMQrvX8WK4ait6ccHyRAkmGRFU
	xYyyr5DcINueJGEPibwUkGF2N7N/7ZtFEbtA1Yxybr/4PCpKAoSUfKcxwS2GHN4/ZNXEKUrJ5QE6b
	grft4oYNafV9adMs5JUNJT9DuRkH/kSrfuVpLc6DEZ9CoXOY1l4cxqHA5uWj8a/2wEEM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187047-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187047: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=909abd7104b87986ad22e92b4cb07d30a8cca11b
X-Osstest-Versions-That:
    ovmf=be1d408773504df8b95a2a81be7b558276ba5356
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 00:45:14 +0000

flight 187047 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187047/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 909abd7104b87986ad22e92b4cb07d30a8cca11b
baseline version:
 ovmf                 be1d408773504df8b95a2a81be7b558276ba5356

Last test of basis   187042  2024-07-29 14:13:49 Z    0 days
Testing same since   187047  2024-07-29 23:11:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Oliver Smith-Denny <osde@linux.microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   be1d408773..909abd7104  909abd7104b87986ad22e92b4cb07d30a8cca11b -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 01:08:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 01:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767215.1177804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYbLs-0005iO-GA; Tue, 30 Jul 2024 01:08:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767215.1177804; Tue, 30 Jul 2024 01: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 1sYbLs-0005iH-CT; Tue, 30 Jul 2024 01:08:32 +0000
Received: by outflank-mailman (input) for mailman id 767215;
 Tue, 30 Jul 2024 01:08:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYbLr-0005i7-4Y; Tue, 30 Jul 2024 01:08:31 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYbLq-0006Pp-Py; Tue, 30 Jul 2024 01:08:30 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYbLq-0001BS-8F; Tue, 30 Jul 2024 01:08:30 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYbLq-0000CT-7u; Tue, 30 Jul 2024 01:08:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4IQNdKsE8zSG0tTC+XWsKErRz3tKT/6uMgvYtPu/JFs=; b=ywzddVK+t8bujucxRDM1zEcCfo
	RLl/gIJFS34++SMZAxtKCHG1nlNYShNPvr88QrR8gsYOBo3LanFSWGS0xRILSzum/XTlbxozvCWJ7
	PVwDhkupJSpmwcZubebGxAa00hKKX97d8FoGzEfM/IpFlJ/UEKCDJRSjpPI70pi1tE8c=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187044-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.19-testing test] 187044: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.19-testing:test-armhf-armhf-xl-rtds:xen-boot:fail:allowable
    xen-4.19-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=fe84f5392d8c96d7d73c0cf02413eeff0ef2a40e
X-Osstest-Versions-That:
    xen=2d7b6170cc69f8a1a60c52d87ba61f6b1f180132
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 01:08:30 +0000

flight 187044 xen-4.19-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187044/

Failures :-/ but no regressions.

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 186982

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186982
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186982
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186982
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186982
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail like 186982
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186982
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  fe84f5392d8c96d7d73c0cf02413eeff0ef2a40e
baseline version:
 xen                  2d7b6170cc69f8a1a60c52d87ba61f6b1f180132

Last test of basis   186982  2024-07-24 10:07:08 Z    5 days
Testing same since   187044  2024-07-29 16:07:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         pass    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   2d7b6170cc..fe84f5392d  fe84f5392d8c96d7d73c0cf02413eeff0ef2a40e -> stable-4.19


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 04:44:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 04:44:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767232.1177821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYeiH-0000fA-Dl; Tue, 30 Jul 2024 04:43:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767232.1177821; Tue, 30 Jul 2024 04: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 1sYeiH-0000f3-B8; Tue, 30 Jul 2024 04:43:53 +0000
Received: by outflank-mailman (input) for mailman id 767232;
 Tue, 30 Jul 2024 04:43:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYeiG-0000et-9w; Tue, 30 Jul 2024 04:43:52 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYeiG-0002nj-2o; Tue, 30 Jul 2024 04:43:52 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYeiF-00011F-MC; Tue, 30 Jul 2024 04:43:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYeiF-0007jh-JT; Tue, 30 Jul 2024 04:43:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Qj2/Qd0lidUV7HCbBJkMV5kBOcDhw5ew9jWEeQEouSM=; b=vJVaOmDBo0I/bOIw8ez/KAKpAH
	3b2loBJE0GFNWzNXQ2KunP8JVQYsefEL0IF/LQys557cU8mRxZyrVjbCR05CLquweMbD5BtBt8x0q
	UUgVCE0jpv7EmJ2HqoXO4Q6Z/jHkkU0rikqTdD9w2L9NzAX6S9eX6LPOoBAh5E377EtA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187045-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 187045: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=8b5016e28737f140926619b14b8ca291dc4c5e62
X-Osstest-Versions-That:
    xen=b25b28ede1cba43eda1e0b84ad967683b8196847
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 04:43:51 +0000

flight 187045 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187045/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 187037
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 187037
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 187037
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 187037
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 187037
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 187037
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  8b5016e28737f140926619b14b8ca291dc4c5e62
baseline version:
 xen                  b25b28ede1cba43eda1e0b84ad967683b8196847

Last test of basis   187037  2024-07-29 01:55:42 Z    1 days
Testing same since   187045  2024-07-29 19:10:45 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   b25b28ede1..8b5016e287  8b5016e28737f140926619b14b8ca291dc4c5e62 -> master


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 05:08:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 05:08:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767244.1177836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYf6G-0004MG-Fp; Tue, 30 Jul 2024 05:08:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767244.1177836; Tue, 30 Jul 2024 05:08:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYf6G-0004M9-Cz; Tue, 30 Jul 2024 05:08:40 +0000
Received: by outflank-mailman (input) for mailman id 767244;
 Tue, 30 Jul 2024 05:08:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYf6E-0004Lx-Sk; Tue, 30 Jul 2024 05:08:38 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYf6E-0003fz-KE; Tue, 30 Jul 2024 05:08:38 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYf6E-00023J-39; Tue, 30 Jul 2024 05:08:38 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYf6E-00083h-2g; Tue, 30 Jul 2024 05:08:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=8T+03Q0qS/5+XGGbjs6EBcoWvzu7U/57vxoauaHQRJk=; b=W7hMxgMy7WaCnGTgxSIL8BQdsT
	5D9nX1Or8T9n4/L6D79WhHuPzT2qA1Xlx/d4e0mupg51PLCbr/XgMl3HRraY87S+DqgCEj/lSf5bn
	Tuh/mD3MpNj65PSmnJ6AG05hl8Re5SEnX4TjuaTECxigNZr7sEN90q6OeTEOeDhnPqsY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187049-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187049: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=84fc1ec52fc0f650187359bb081ee5a9400d9675
X-Osstest-Versions-That:
    ovmf=909abd7104b87986ad22e92b4cb07d30a8cca11b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 05:08:38 +0000

flight 187049 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187049/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 84fc1ec52fc0f650187359bb081ee5a9400d9675
baseline version:
 ovmf                 909abd7104b87986ad22e92b4cb07d30a8cca11b

Last test of basis   187047  2024-07-29 23:11:32 Z    0 days
Testing same since   187049  2024-07-30 03:43:18 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Herman Li <herman.li@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   909abd7104..84fc1ec52f  84fc1ec52fc0f650187359bb081ee5a9400d9675 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 05:42:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 05:42:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.766988.1177846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYfd2-0000zn-Vh; Tue, 30 Jul 2024 05:42:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 766988.1177846; Tue, 30 Jul 2024 05:42:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYfd2-0000zg-SK; Tue, 30 Jul 2024 05:42:32 +0000
Received: by outflank-mailman (input) for mailman id 766988;
 Mon, 29 Jul 2024 16:19: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=kiB1=O5=yahoo.com=avikalpa@srs-se1.protection.inumbo.net>)
 id 1sYT6G-0000ez-HW
 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 16:19:53 +0000
Received: from sonic304-20.consmr.mail.sg3.yahoo.com
 (sonic304-20.consmr.mail.sg3.yahoo.com [106.10.242.210])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f1540e1-4dc6-11ef-bc01-fd08da9f4363;
 Mon, 29 Jul 2024 18:19:51 +0200 (CEST)
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic304.consmr.mail.sg3.yahoo.com with HTTP; Mon, 29 Jul 2024 16:19:44 +0000
Received: by hermes--production-ir2-57d49df6b5-64vl7 (Yahoo Inc. Hermes SMTP
 Server) with ESMTPA ID 4f7f708f22a9c57021e9511dbee6f05d; 
 Mon, 29 Jul 2024 16:19: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: 5f1540e1-4dc6-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1722269984; bh=FV14CYu2wRRrZzwFPU5EC4El3CLPS+/fFrU6poNeBPQ=; h=Date:To:From:Subject:References:From:Subject:Reply-To; b=oPsP7hoc7dUBZPqXCL6lDRIyouozZ9gPLPAd1PMfwdp68zoBy472SJvK4YJqtnSn7AF3zLd0hy37NLq6YgA/4GCohBhjGpzOMZvGbc2qCZko0MXdtwUlWX8lDo3UC5jP8Z+h5lIERpRMpdT51q20rdIm8l8KOd5Ih0/ZPN6O+Ge4YqPvs8jiBqL5v13XjQZ0TZyDnFcQW32KrpeuYB+qXRil2/d/2Tw0tFWbcCx6asTTPSLI0iBcQqPsI9EUCk1RZYpEV42siZt7LJqS8AGIMa4sNj+vGNAr3YalEH0+VM7+h6ki2x8w/wtY5+QcCc9ixuz4OL0AOtbjYLcTdHdjkg==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1722269984; bh=CACZexD0DFJcNV083K1e2ugya2waxsWXT0/VgENaLEu=; h=X-Sonic-MF:Date:To:From:Subject:From:Subject; b=SY5wdgbdqkl6ZnPa9RaZjHagTDAZjzPAA9gY/9JFcElAXCsEMmrUbizXYXmyBmYcNztdkbJ4u3oQy24ZUreasN4H9EpPL6CnVOnraa/V0fru2ajJ0FVqEDoTt8/B71AemC5r39mDFaC60UPAk7H/u0tDtB5wP03wcJE9ojAbrJU38NHJKqpD/OjIqN/XTCsGdV6CXVvCJ7LJU2n8XG+tXOwuvMVWdkq2YGFzIehed3vtQft2z3W8/mPa6vDe8bLHR8IX/+GQYxTpV0ghTpR8HSQS4P3ZWDyuyMZZdSKno/TAb+S9yFmi4KYNe8JsoqqXuVQO+rces6m+FLG48E2vrA==
X-YMail-OSG: riPUJrgVM1m1n9wJwjWZ3VUuXlANWVKM.yfOi5mJ7oMB4njhdFkNqifdxuXMCpC
 Yd6mLcMbR5kyXnC8wMKq.7.Et60XxRtcvu8TXPZY1CtWaLzzSv9dVFZA9i3ekuT_rObo.1fSJZnz
 Tdc62VfaTv3.22GS__u1jDbo7mgsfzX7dcTSm7fFdICj3ML10E6rbjTZXFfEdSjvcOjWJ5.yboQr
 odLVG4Lz23Cad59sQXhS6datHZjCm98QwtiEKXi1p5MxBqU8d.sdKSEiwozvfDQ4sUy_oBwL0n9p
 baEy16DwfTXpMgBEQBXfW_7OAYHJCKjKllWlLW.IutHk82t9pyXYaI3_Fdj2qsNATBd3UayQrxPl
 QXVZqBpU2v4naXTomikCgGMrkdwP.DfgOEOVzK6ScWv8CNP6S5zlEUYsLWP3vqgXcd0RdJGNryX4
 raLf7mTnF8NLIdqRL46g1KcgvYqqm3zQBkMbiU_Un95d0tlPo36KJU9b8mglUEJdRq2xOW8XmiDA
 8DIvGgWWCWDL.Q9c9HdEVo_E.bYCxDseSQOkjd9C3xyHW5d7w5_TmFFgsvy4KYOoc2k3mUbFVl0.
 h8qJ74cE89GLzB4GRi8vaoQl3iI7GCgrXOP4ma5gR.5hAOpYzBSTMLMAX5M7tJptW4JdfVpJP1iF
 JB49sDw1immAhEHZoOYjgclYnsKBAXjqDTiRYe0bQp3bjDkCxoPDBa0UcuDarR3JD3BU_eznLi.r
 x4V3pTjv1fGtRhnxPzeCUBeHCjyeeGfEl.s3g_XqRyIFbVQF_wsc7nxMrXqGTlhKIgqGIOp9wiQG
 PKb_RWpPui1mzEGd6j_MZpTEFFo.MH5moWQ6VPqCvDDfykZ5jp9uvqz8IaaohpjHYvLeysQN0Q7K
 48oPa43S89SfiKoJarAt06s9P9QpbYJSxpt5RmTF5jfghbqLZpTXwfcllgtvVy.IujM87tozThrC
 V90tYSxkGNGcKW754slRxqonyGQnOBYegYyz3RktbNqgdbpqY9E_jqBJj_8.47Bln94_7snDwQQ5
 oUtJ9iX1D.O4HGTTYEh6dyXDuUA_hpKTdOoNJ1xjWthFBO7aXiW1g_vgtHFa8U7HaU4L1KtbXvPl
 FEzmCOx9seiICA9crsYKjgLSCUwOLH1xNIl_hGiJ5c7CuSaZxGCWlabxYDfvQrKFDhc.SwjKNPrR
 zHsNihxTF7tT0KjDI05oDlTwF0uV.F_aCUNDcESl4ov3OmDS4DyCt6RkUrp1tsnBpAuYWOBu3.mf
 DcsyXGa_3TR84vEzt7C0yFlPfLkFcjEAvAtbNqn17f9cKKne_pPHIjJshNdFwm6mCzFWscAyqwgm
 vSooGeDlbco2cN7eljXaGjm_Z_H.WahMZ8DdquEZxiWuIx.ivgNVrMnZqkoMmrhzL90A2MwiEp1A
 _CSBFcCn1IrqEC4t9exaKR77ObB8VWe3mvLfW_.iJVvF1g63gJQPD7bLSTk9D4zgMo7cxvipFhMS
 k3sgBrS9ALQ9FmRlZ_3XLTYx9qgbcWI3CxIs3p5wpeDSAkpKsKam1eDb_un3WHsqlEC8aUiSjAYO
 2NuAPKa0VlRkAu_YkqdUKOCoWS.t6pE5Sd6qGWPUxpvHMgZjuV82w43uI2U4qzPsa1yqh1UX7JTL
 zeolqO4XGb7gK4.lDRfAJKOYSlMU018AdcbUQdO2iyU.mqbrfuiptbMVqgq6zONrtZ4rXDJaWkEb
 7cWUpugzRbyO6Khu9W0pGjQF7g8GAOCF7O1GG3cX5pZobNLbmDpuZsJ3NGUoz9UxubqSkvwEFuEz
 kT9x.4hK1U4AtK_7db3eiysseCdcbiPIHVSq1JX7JYe8MjUao4rsK_JWOpFP_75e2g1xIMmcO30G
 3BvARsTX3JIbnn1ve4oPtcJ9IToCLWl_tym0UBv1.B40IJaUxWqcvxZ2wVXkjGzUpTZ6quDcPBlH
 5.hxry.TaHV5mNbDhiyUIuAPOvowdm5fxpdsmHeADP1EJHYaly3362RC.KiveUxdhMAJKsFsHfsV
 tnbeIPFWG3VRriNkdGPP_6XQjyVabdvyiFaJxm8JbHKlP6aqcyxbz2tnjM7izpbDni7Xe2Qv9cyB
 dUNwb.KUTqzMNB2Oc8mXbFdw94Sw8qSOc02nO_KB_Kv5gewRWSQLmw32O2nL.AiVM8NiUuAZAs1o
 Z4PCBvYURkb2st6f.V03QN4M9Gk_AvGh5aUXaP2c4ejAR7PcEJg45ngO18QyzGA--
X-Sonic-MF: <avikalpa@yahoo.com>
X-Sonic-ID: 0822630f-8684-4a72-a30f-72ad7e49e5fc
Message-ID: <c13e7918-6657-403d-a804-c40874460cff@yahoo.com>
Date: Mon, 29 Jul 2024 21:49:33 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: xen-devel@lists.xenproject.org
From: A Kundu <avikalpa@yahoo.com>
Subject: Missing documentation and kexec failure with Xen 4.19-rc4 and
 4.20-dev on Linux host
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
References: <c13e7918-6657-403d-a804-c40874460cff.ref@yahoo.com>
X-Mailer: WebService/1.1.22544 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo
Content-Length: 2214

[I'm not subscribed to xen-devel@, so please cc me in replies.]

I am experiencing issues using kexec to load Xen 4.19-rc4 and
4.20-dev. The current documentation at
https://xenbits.xenproject.org/docs/4.19-testing/misc/kexec_and_kdump.txt
appears to be missing crucial details on properly using kexec
with the --vmm option (which may not have exist for sometime) for 
loading Xen.

System information:
$ uname -a
Linux host 6.9.10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.9.10-1 
(2024-07-19) x86_64 GNU/Linux

$ kexec --version
kexec-tools 2.0.29

Steps to reproduce:
1. Set variables:
XEN_HYPERVISOR="/boot/xen.gz"
XEN_CMD="dom0_mem=6G dom0_max_vcpus=6 dom0_vcpus_pin cpufreq=xen"

2. Attempt to load Xen 4.19-rc4:

# kexec -l "$XEN_HYPERVISOR" --command-line="$XEN_CMD"
Could not find a free area of memory of 0x3b6001 bytes...
elf_exec_build_load_relocatable: ELF exec load failed

3. Attempt to load Xen 4.20-dev:

# kexec -l "$XEN_HYPERVISOR" --command-line="$XEN_CMD"
Could not find a free area of memory of 0x3f8001 bytes...
elf_exec_build_load_relocatable: ELF exec load failed

4. Follow the steps in the Xen manual:

# Set variables
XEN_IMAGE="/boot/xen-4.19-rc.gz"
DOM0_IMAGE="/boot/vmlinuz-6.9.10-amd64"
DOM0_INITRD="/boot/initrd.img-6.9.10-amd64"
DOM0_MEMORY="6G"
DOM0_CPUS="0-5"

# Prepare Xen and dom0 command line arguments
XEN_ARGS="no-real-mode dom0_mem=${DOM0_MEMORY}"
DOM0_ARGS="max_cpus=6 dom0_max_vcpus=6 dom0_vcpus_pin"

# Load Xen and dom0 kernel
kexec -l --append="${XEN_ARGS} -- ${DOM0_ARGS}" --initrd=${DOM0_INITRD} \
   --vmm=${XEN_IMAGE} ${DOM0_IMAGE}

Result:
kexec: unrecognized option '--vmm=/boot/xen-4.19-rc.gz'

I have tried compiling kexec-tools 2.0.29 from source using
./configure --with-xen, as well as using the apt version, but
both result in the same "unrecognized option '--vmm'" error.

Please provide guidance on the correct steps to get kexec working
for loading Xen 4.19-rc4 and 4.20-dev. Additionally, I kindly
request that the documentation be updated with these details to
assist other users who may encounter this issue.

If you need any further information to investigate this problem,
please let me know.

Thank you for your attention to this matter.

A Kundu


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 05:42:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 05:42:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767230.1177851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYfd3-00012q-8R; Tue, 30 Jul 2024 05:42:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767230.1177851; Tue, 30 Jul 2024 05:42:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYfd3-00011d-2y; Tue, 30 Jul 2024 05:42:33 +0000
Received: by outflank-mailman (input) for mailman id 767230;
 Tue, 30 Jul 2024 04: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=EP8J=O6=yahoo.com=avikalpa@srs-se1.protection.inumbo.net>)
 id 1sYe4P-00047z-Kz
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 04:02:41 +0000
Received: from sonic311-22.consmr.mail.sg3.yahoo.com
 (sonic311-22.consmr.mail.sg3.yahoo.com [106.10.244.39])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8b9a03b3-4e28-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 06:02:38 +0200 (CEST)
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic311.consmr.mail.sg3.yahoo.com with HTTP; Tue, 30 Jul 2024 04:02:29 +0000
Received: by hermes--production-ir2-57d49df6b5-64vl7 (Yahoo Inc. Hermes SMTP
 Server) with ESMTPA ID a6a452cd5391e7bd45c6614673d5491f; 
 Tue, 30 Jul 2024 04:02: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: 8b9a03b3-4e28-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1722312149; bh=aW3+eSQfsxuMVwhV9iZgk7IBkdQbWmEeUnyPqQY/GMo=; h=Date:To:Cc:From:Subject:References:From:Subject:Reply-To; b=SUVMnoBqRzbzW97WeYsOLwUSKBTApl0o5UXm43S8xle9zAaYZ/XFTdwUp6YNgKBhxVNoWWybN4wYndzpqIedOPy1Nd4VUuH7qX9yLdQpE+HXQ1L09UdxkRGo89jKMAJhA4ce0Qj9a94p9Tyfby23kRRNcap1zE1M7vQaXfYuZ5iSCB+sHFAB/XHbo1RZXGtFiBS26PfEM7lhsnUlzdZiC6bk9oTWi9MxkPbP3dTSYQMxG1eT9Dh00JtWYNiqfRwOtRZhx9nS27daTOvPQqP/xE9FYiuUAxqGHZBkNFXIHHeZhJArJADn8kpb04IxlIHoo6smWVW9QVoweN31xg42zw==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1722312149; bh=e9ntVuWGP8U+iZJRjNooRQZWYfJeWe2kfbTOhFfNLXx=; h=X-Sonic-MF:Date:To:From:Subject:From:Subject; b=aqfuEtwQ31ObOyfCRWiQOxeSE4r3QSsxK+6s0p7xMgSHlV4CXNycupW3B82GXGVsNw2I9w+Au9NHmGwxAug/YhzQybqNrwzlvjBOBw1ufnqgGLkq3siNcgC051FQ3MWuVFyjXpn7yQ9Y3yAg8WZZb/mr3dMdmqfHPpo055ZmLX9ZgIiR5cA6xDCgxsqU3W8W8HEqpyYHSm8D3/plb/ldbKDmm474gz6NsksvWDY3eyd+HxJRpBaQSrLKFZcxUw4pm7XCd33PlEUXMhzPcSQ5CiQ/p2Tv2TDwLgHKkShA0UmyY4swPYiqgU/GMh3/C171y43oh2BVEr98m8gqYYwkAw==
X-YMail-OSG: Tey3vWsVM1muYHYyLHsILzy6CM8QOBk.3QLF8Kr4ZM1_fVRxe.9PD8D9yb_KnsS
 IsTyRDF6n6vABI6FOqx3VEHSiu0j4aJao0mow_jXdKTkf8aM5O2VTggrapbItF31.tNfLhwRHY9F
 9hGZYfDiKWx4L8kaBsskuL5GseF.jHxK7Sp0jR5ymvfbLNbjNtks3HL1B5zG9DFp5n0WbQKeB4Fw
 _65TrI_JKsRaDTGJf6vuOb0bx1XgOLE1Mp0La2TbdihRVpQGiR8L1MaYPEG3BXnTZBxlMMeq7Xa2
 NbA8M0a0e63DVIfB4BLw7QsfTfzKOp7sKwDlXIwh4VNRiHZSgKeGkHzYTc98pCG9l1Br.zfJN.8B
 eQ.aGs47u7iWp8XV99adKSVsbXBIqb80NYRvIx4uhB2lmR8Ny1WK_waW.ejmPZbHZz1IAf7HIk9l
 3mLHRwsLz3XOgK8OHMHYWPs3AnKcqWDQvvcJpM5DAuGZzSMcUThSP_anXoHnTT6VEBpkgXeQqnWX
 RGhsL71Nz47ElTZicf.aUFB0zCnQYrOl0dwZQA_sQ_bp7abH.tbVI1GmgdielonRyhI.X1EYbWAm
 i5acSsHKDZsQoqdHF.4cohyrqho6DhPPh3wodWTjragHrgNfX_oO77.eAMar1iPfLGuVBfL2ezXX
 SnVWsKORJGD.U7SAp3MNo1GvHjOPchiqO3GD0.hud9snLVTZ34XnAG.ttwXYqv4EnMvgP_P4sre5
 5TXieTbgljKHppU4UnmnWOg18AFHJNYCf3Q2Fjs2JEPiOjPPYylL1EU7pth7qIdtPOwvr4fWyB9B
 nTpHI7gwoxFAS7Fb2eImubEGudiUKqDRzowvKzm8iIW_jIDrE2wc21q7x6jyslClh4FMt9gf2Xdt
 qhHLRtWs4DNPmAx2SzrMrMzfbKcSY.b.7loQRr9.KMjj5Jtli1YwKzddqi5rT7SbbO81DGn5alqJ
 EiNX5t7ZQEkcKZLqlIldx915e4Q_pimSwLE9VPp97KS3bkuphe3GsoqRLvJYCgiM4oGqPW3XGmBK
 FpkoGfKAgsNUWIFxNrkXKzSazc8kXkQiBo7cexcybKok34EAEuAfIOc3CEOwLLXt7.r6sO9vSBBt
 Wdfn5bzEnN5FMLT7o4i.OBCnQRNsDikT0sloQC93AcRM58l4Mvq2PJPHkP_63aZu7wgC5RLwQi_F
 72ykaIEelFUWBdGX3oa5K9GsdTsdGTy0vY6VtJ9QJATufyNOhE2wZPK7CZNeP0bvlIUSbFVtrtt4
 YxV47Q9CWef_EmVeUhqAEVUyjuvFMoKXZTkvKD8OPJ_F43KnMnNhnpBAOszVH3C7F0uw_y_8Nq0.
 dkbtmemnW3PHRujwy..LKvG8Dug8z5H.iGIGGXfMTX8TLIDonwFIJlOrGBdsLFn2Vo2GJPlY6B_Y
 QM63GZl7dhNnl23d9gynxBI93_AehAr7hAxHC7iQSnW_cstOct3T4ZWVmSPlN19otZ79n7lShsU_
 VxH.zGWPEb.36PBMLfJe8_tjW.AzgQs3k3oZOAhv_tjk56KddltHFqKaIEQYv9i76PhFpXipsjMQ
 VrnNFKFObHcGMvxzraIAyTCdLPjmPM.ZNV33r1pZ5x5U685nXWuYaL_Q398VS.1IUmBtbUW2roHq
 VFoJ1atUJwEp6ZHVhNLzzZpm8YpwpiE5i_Cv_YSDnA3gncBscQUxxK7kuUNGovIVwhR6PuCgZ1am
 9uBqwKLPHuHswG49pB.OR8pS_VxdkmT9N9jrUul9sNG2FRIQPiGnv3jO75AZeZ8OKv.J1XcpKEha
 b4tBe4qJpF99JjxOLvFibtT1dVgAIYpprUiLTqXJTGCUJVPYgqw2HR046hftXMJ.hRowEKeSQ64f
 ApobH4w33cCKgT45_SGSibzbx4uyjaHG3lg5ohF5h3ZaRU3hMT4lj134eFBwt_9yNXlNxGuEryuW
 _f8kfq_WlaF.O5C7ASDoNP8pkPBynyCvgU0u2HctkD_QCklZjoRXgKmh1th.wLjwjiaNPikLtloF
 _JXPQAFqpIXFn_et5C.gcqzV1SzHIHS6HttaUUdgUq86TZPSJDaZpo2CKN_EMk.uiox0GEkJTgvn
 c_ACg.NZa.oX1kqDQYB1Selt6vJlp8h8aS7KbYnS0f5PKxa9BcNRmijH5alypzIwpByp_uLv4oYZ
 IWFkWG130qK9o2z8ePjUYxxdvfsaoDoIvI.rc1tkNykYnHD9Zaqpgwax0UD_vYKdWzOYfcmHu2h.
 NnZg-
X-Sonic-MF: <avikalpa@yahoo.com>
X-Sonic-ID: f070aa9a-c771-45f2-aa1b-5cfee1fd7865
Message-ID: <05395ed2-3bf3-4926-8e24-c2e7ff37ed26@yahoo.com>
Date: Tue, 30 Jul 2024 09:32:13 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com
From: A Kundu <avikalpa@yahoo.com>
Subject: [KEXEC] Lacking documentation and kexec failure with Xen 4.19-rc4 and
 4.20-dev on linux host
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
References: <05395ed2-3bf3-4926-8e24-c2e7ff37ed26.ref@yahoo.com>
X-Mailer: WebService/1.1.22544 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo
Content-Length: 2273

I am experiencing issues using kexec to load Xen 4.19-rc4 and
4.20-dev on a debian host.

The current documentation at
https://xenbits.xenproject.org/docs/4.19-testing/misc/kexec_and_kdump.txt
appears to be missing crucial details on properly using kexec
with the --vmm option for loading Xen.

kexec complains the --vmm option is not present.

System information:
$ uname -a
Linux host 6.9.10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.9.10-1 
(2024-07-19) x86_64 GNU/Linux

$ kexec --version # compiled from source tarball with ./configure --with-xen
kexec-tools 2.0.29

Steps to reproduce:

1. Set variables:

XEN_HYPERVISOR="/boot/xen.gz"
XEN_CMD="dom0_mem=6G dom0_max_vcpus=6 dom0_vcpus_pin cpufreq=xen"

2. Attempt to load Xen 4.19-rc4:

# kexec -l "$XEN_HYPERVISOR" --command-line="$XEN_CMD"
Could not find a free area of memory of 0x3b6001 bytes...
elf_exec_build_load_relocatable: ELF exec load failed

3. Attempt to load Xen 4.20-dev:

# kexec -l "$XEN_HYPERVISOR" --command-line="$XEN_CMD"
Could not find a free area of memory of 0x3f8001 bytes...
elf_exec_build_load_relocatable: ELF exec load failed

4. Follow the steps in the Xen manual at misc/kexec_and_kdump.txt:

# Set variables

XEN_IMAGE="/boot/xen-4.19-rc.gz"
DOM0_IMAGE="/boot/vmlinuz-6.9.10-amd64"
DOM0_INITRD="/boot/initrd.img-6.9.10-amd64"
DOM0_MEMORY="6G"
DOM0_CPUS="0-5"

# Prepare Xen and dom0 command line arguments

XEN_ARGS="no-real-mode dom0_mem=${DOM0_MEMORY}"
DOM0_ARGS="max_cpus=6 dom0_max_vcpus=6 dom0_vcpus_pin"

# Load Xen and dom0 kernel

kexec -l --append="${XEN_ARGS} -- ${DOM0_ARGS}" --initrd=${DOM0_INITRD} \
   --vmm=${XEN_IMAGE} ${DOM0_IMAGE}

Result:
kexec: unrecognized option '--vmm=/boot/xen-4.19-rc.gz'

I have tried compiling kexec-tools 2.0.29 from source using
./configure --with-xen, as well as using debian's apt version, but
both result in the same "unrecognized option '--vmm'" error.

Please provide guidance on the correct steps to get kexec working
for loading Xen 4.19-rc4 and 4.20-dev. Additionally, I kindly
request that the documentation be updated with these details to
assist other users who may encounter this issue.

If you need any further information to investigate this problem,
please let me know.

Thank you for your attention to this matter.

A Kundu


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 06:29:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 06:29:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767270.1177866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYgM6-0007xI-PZ; Tue, 30 Jul 2024 06:29:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767270.1177866; Tue, 30 Jul 2024 06: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 1sYgM6-0007xB-Mr; Tue, 30 Jul 2024 06:29:06 +0000
Received: by outflank-mailman (input) for mailman id 767270;
 Tue, 30 Jul 2024 06: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYgM5-0007x5-TJ
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 06:29:05 +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 02e76180-4e3d-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 08:29:02 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-59589a9be92so6450437a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 23:29: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
 4fb4d7f45d1cf-5ac64eb3591sm6717367a12.67.2024.07.29.23.29.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 23:29: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: 02e76180-4e3d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722320942; x=1722925742; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=o30rSjGyiLA+baByhVUoagAJ4Eom+O/0agfEBg6EUQY=;
        b=Y8X/uwXypuewe9oKyzlviHbuV9eU/IZFOnM2enzEek0ud7BFCEUtyihQGzBHiH1JvU
         7kf+Gokq1CmpKLX/XyiNOAOhWElMGPgwVYNTKZ+2BLLYO2Kb1Cf18EVz8oZuh6WkSO3e
         KUtB+q05+ElPDogRc6QD1ftCe+KChxf2xMTiHPHJVsaIF6K/WaRvLfSe9viXB436DMae
         eN4BmsbjbVOF84nb0AtjKX4O4Wd/2LzHgzJrKUeN99KS3x1dWyuH0pfVQCgS5c8IQ5iS
         +vp2/5zXzJf9sCKIQd43hSsv1+zBGV2qQcma3rE+LWTNTHraCfA1f6snAnPN+Sa7qLyJ
         4R6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722320942; x=1722925742;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=o30rSjGyiLA+baByhVUoagAJ4Eom+O/0agfEBg6EUQY=;
        b=kAHefk+Ligr6ZKEeNFsugcbthPwwZJoqOJnW4I6k01VQKTL/wzpb7EMikTtldsP9no
         QmIjSzDinoqKlIZquOJXyun1MshEn4ZIn7EyLC3mgzkLeCdCGOJZDE3aokSZ642BSiZa
         wkbvGBt+DWFGZrdCtudTbZNwYIK3UMcPqye5NgaKh53YU6IJJE4dJUW//1b3X3wK2UXi
         yHUi6wEwbpnAdswdDFoJIuZz5KDS4FkrBTvQhfsN8+zXpYtzz0oeVvw7qFIZ5HeyVvuJ
         FdbaMShqvf/VdsBStVQG5bwdwsyamMct7sUiD5Wod/i3PnSYpJIn60MboBM8GI4SbKLb
         STEg==
X-Forwarded-Encrypted: i=1; AJvYcCXT6Q9cjCJZIylmEaVyRaIGmjDUiv2N1V7g07tkUcWG/nb05zmwRbI1ho21MGF0DNmccvZJPJRy81GPHCq2bTqVsXF5hk+DiXFxlirn5oQ=
X-Gm-Message-State: AOJu0YxQ/V5+WiVFI5mJ44I8q5bGXu0W35OCtRirE634ibkCKErq+5na
	Q/9Suhr2sJxsGCSg2jGmS5VPF8dWrptJaaC78YVLNzMz7ojGd56mctASujaSFg==
X-Google-Smtp-Source: AGHT+IH59fRTnHOIPue11mbvKplVBJZBUKMytES2o/lykZSYrTX/ZWE3ous8WgGmLHDSQaw9iZaPQw==
X-Received: by 2002:a50:d7c5:0:b0:5a2:1f7b:dffa with SMTP id 4fb4d7f45d1cf-5b020101f53mr6212972a12.3.1722320941473;
        Mon, 29 Jul 2024 23:29:01 -0700 (PDT)
Message-ID: <1cf7a97f-b9fd-4daa-851b-fb0fc43a2817@suse.com>
Date: Tue, 30 Jul 2024 08:29:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen: add no_instrument_function attributes
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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-2-stewart.hildebrand@amd.com>
 <baa57ab0-60c9-49b0-9601-09bea081ddd7@suse.com>
 <5d015d47-0ba0-4a3d-861e-2c7712d9a97d@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: <5d015d47-0ba0-4a3d-861e-2c7712d9a97d@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 20:56, Stewart Hildebrand wrote:
> On 7/29/24 10:55, Jan Beulich wrote:
>> On 29.07.2024 16:24, Stewart Hildebrand wrote:
>>> In preparation for using -finstrument-functions option, we need to tag a
>>> few functions that don't work well with such instrumentation. If we
>>> don't intervene, we would end up with linker errors such as undefined
>>> reference to __bad_cmpxchg.
>>
>> I can't spot mention of such a side effect from the documentation. Talk
>> there is of function calls being added at function entry and exit.
>> Nothing is being said that calls to other functions would also be
>> affected.
> 
> Oddly, it seems the compiler fails remove the implementations of the
> affected functions from the object files even though they are not called
> in the generated code (because they were inlined). I can mention this in
> the commit message.
> 
> For example, if no_instrument is omitted from __int_cmpxchg, feeding one
> of the object files through aarch64-none-linux-gnu-objdump -d yields for
> example:
> 
> 0000000000000048 <__int_cmpxchg>:
>      <snip>
>      16c:       94000000        bl      0 <__bad_cmpxchg>
>      <snip>
> 
> Yet, __int_cmpxchg is not called by anything.
> 
> Even more oddly, this appears to be the case for both clang and gcc.

Upon a 2nd, closer look this doesn't appear odd at all. The 1st
argument to the two instrumentation functions is a pointer to the
function, thus requiring instantiation somewhere. Question then is
whether adding the attribute is an appropriate approach to the issue.
Gcc doc kind of suggests to possibly use extern inline instead.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 06:42:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 06:42:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767278.1177876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYgYl-0002Lj-TF; Tue, 30 Jul 2024 06:42:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767278.1177876; Tue, 30 Jul 2024 06: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 1sYgYl-0002Lc-QJ; Tue, 30 Jul 2024 06:42:11 +0000
Received: by outflank-mailman (input) for mailman id 767278;
 Tue, 30 Jul 2024 06:42: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYgYk-0002LW-HO
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 06:42:10 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d766591a-4e3e-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 08:42:09 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7a843bef98so440854766b.2
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 23:42: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-a7acab23f62sm606207066b.16.2024.07.29.23.42.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 23:42: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: d766591a-4e3e-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722321728; x=1722926528; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XHB4eU3RZ35UpD8A5nbV2DYKKPlBqIpFdqY8Irf/JA4=;
        b=DmhhWB5zP7srK1XaTHDtjAPUVWbyQVRQnF/NgjESi3Tx2MfCWyikIsGiik1cpkvZ9G
         OnR/vIj3p0FFHZgtUF7kvL/0yGs+CaBPvpk54ibwVCunvAjjbRsynFsfDhIbuFnOmvo4
         HY7CxBZT4Woq5f+zOrQfayxtSmJECVzMLDrQwFwh9I+GMt7A9hFOOQp+PcsBojsPrFof
         HsiS7sdj5xvZTKAFlonQmKhT0a6ItWd1ECBnN1BX7ZK5/qkopGoHFpymzoQc1eNIc3J0
         dY5diC2HIqjFhuluUwATts5KRPA1lf2OnHAfVnw6C/fqvklqlgzjqvJTRr4it6FE/X9F
         +mBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722321728; x=1722926528;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XHB4eU3RZ35UpD8A5nbV2DYKKPlBqIpFdqY8Irf/JA4=;
        b=hG3+DUdk0U2mqgysrgKpAkPRheKBFVXwdbD3wBaNt410Xdq7I4lpfyBRG3A9mVXlhX
         h1kUQU6lpoC8DKCpaEjiOf0gZ6026M0MX+BHT7+14E/aaKG9/VL46knGIxfANit/i+YP
         bDvue0IrKjrK7trn/5Fjno2789Wf7JFraP8iug6dGlNisfes3VjCgaxcMVG61JDYF5WA
         d/OdlXOHHGeyBNoypqNB/3Y//FS/QG+9RwHDXOf9n+q1s6/Pzw9ApseHQI/kVUg6L30w
         n54EE6WZXLqryPYDs99rSTOXjoLogpcLewXsxqKDkDDocubE7VIKop2WZGIXnUlORxuy
         7aMw==
X-Forwarded-Encrypted: i=1; AJvYcCUruEC3luiIs4X1SZDYcueRPDIvYi1TB8MGI/7ZGetwvkQEvNGzeddlkEHN8tcwyP6LfCkhNHfwgFHA73473PQa3UP+jsht9m360rPTBvM=
X-Gm-Message-State: AOJu0YweEIPQIGWkYDd1A1CTcNU50qct1Ta6eHzZc9SDOHYhvryOZNwX
	K+71GXLFdY5QrF+4JuZ6yYQTiFZG0aOU3U3YuNsNTPUNe0zREpYueYYCoe0A3DN98bZ2yhURpUM
	=
X-Google-Smtp-Source: AGHT+IH0Qf7OO2E3uecdSANP+YFzzO3JCAMFaOb2gSmgWsy6U8ZWb1JWUkU/UMqfY1jEsW+Mboq6Tw==
X-Received: by 2002:a17:907:2da8:b0:a77:c824:b4c5 with SMTP id a640c23a62f3a-a7d4004414bmr693291266b.18.1722321727715;
        Mon, 29 Jul 2024 23:42:07 -0700 (PDT)
Message-ID: <59e3fdd5-f13b-414c-95e1-46e86a4779ac@suse.com>
Date: Tue, 30 Jul 2024 08:42:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xl: add suspend-to-ram and resume subcommands
To: zithro <slack@rabbit.lu>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <4e9f3590be9f19edb87e05c7b7c2efeae8863109.1709190010.git.slack@rabbit.lu>
 <500adb55-4927-4876-aa22-3269538bb4c7@rabbit.lu>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <500adb55-4927-4876-aa22-3269538bb4c7@rabbit.lu>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.07.2024 00:31, zithro wrote:
> Added my S-o-B (no other change).
> 
> PS: re-sent to account for Anthony mail address change
> 
> On 29 Feb 2024 08:00, zithro / Cyril Rébert wrote:
>> The xl command doesn't provide suspend/resume, so add them :
>>    xl suspend-to-ram <Domain>
>>    xl resume <Domain>
>>
>> This patch follows a discussion on XenDevel: when you want the
>> virtualized equivalent of "sleep"-ing a host, it's better to
>> suspend/resume than to pause/unpause a domain.
>>
>> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Suggested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Signed-off-by: Cyril Rébert (zithro) <slack@rabbit.lu>

Imo you want to properly re-submit, ...

>> ---
>> - Tested on v4.17, x86

... with this testing also advanced to 4.19.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 06:48:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 06:48:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767284.1177886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYgfE-0003MJ-ID; Tue, 30 Jul 2024 06:48:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767284.1177886; Tue, 30 Jul 2024 06: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 1sYgfE-0003MC-E6; Tue, 30 Jul 2024 06:48:52 +0000
Received: by outflank-mailman (input) for mailman id 767284;
 Tue, 30 Jul 2024 06:48: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYgfC-0003M6-Rg
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 06:48: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 c6bbbc92-4e3f-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 08:48:49 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a7a9e25008aso544897766b.0
 for <xen-devel@lists.xenproject.org>; Mon, 29 Jul 2024 23: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
 a640c23a62f3a-a7acab4de6fsm605084466b.63.2024.07.29.23.48.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 29 Jul 2024 23: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: c6bbbc92-4e3f-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722322129; x=1722926929; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Eb7QeYB4jrltSR1X1h+r+HsYjyWy/W7WT9zzF8QC3c4=;
        b=MMPxTCCGuNtEKehsE3XXQ58lURoHVXeH7l6gEJOiGZlk5+mUyDPjUow6gtIpr/CH+1
         W+yFAyr+EF0kEe9LAGrm+chlYuUe7LkEfZl1kT/iV9VuTkUP5+xnnYI3rQA2MdbvGpcU
         sfK7oZjYyq8KXFqOkhn8bNVgczXQbyWRbooTrRIW742Z83PDYGwMaTuA8l5+DSXLZJi7
         ahm8fiYRXdjX87k/WaLi70CyIGzts9HrmQSovdj0y4gVxUze23RhxiFqXNdhcYutfSiy
         Zg9uWiImz6VC29zJdHV6ALNpU7GKnaBCowPtdVsdp/OjlOofqEzxQkDhTccyv0iaTrKb
         AIWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722322129; x=1722926929;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Eb7QeYB4jrltSR1X1h+r+HsYjyWy/W7WT9zzF8QC3c4=;
        b=g+n8GgclQXf35BvE6de/u4OSfkbdwSzuFL1QUn9idlrDqJ+a2ILm6mwQZewVPl1dq3
         piLj+wUXeC+OYiG81MBlaz2zA5raPBw0oNb53dezKbozweIEmRy+Ubl1tZwDC/ftu7h6
         H0SGlsOVL8+XCHbUt0ojfYIgk6xMoaNgmc4p9xQMGDB1lXPr7qhO2Gtchvsu+M0Kup8O
         EET5lJyS+tDRxW1wH0taWuN1hLLFh18TNC/LVTj1LaE2GP13ECy62d2Ts6my6dXaRB0F
         2LaBwVr38Fd8c9IFTnQY2Ne2kTY2IqkAQsrI+PhV2neJgUj+wy0mI9foHIZKcvalFhpF
         vF0g==
X-Forwarded-Encrypted: i=1; AJvYcCXYkyoqcW4BgyP6weYqGldIU+gewB7q3aadaFsRtzwVhhYLvngUzD363jES6gT4gZOv9tJNiOhYnVCr4gEhydXQTlUjRRZc1+PyezkpQXU=
X-Gm-Message-State: AOJu0YzFit7mhA315S84vHpoEIKhdoL2/ymuJYorrOTRMqfgz1JiD7t7
	Gwgtd3nsANgTbd+RauIy5lE/K0DNfPfjPgToKINIuYmYb82EFudiOoWkQpb0ag==
X-Google-Smtp-Source: AGHT+IE6PMGNc9ucX7Nyz8rHSmkEG1Da6kLPK2uhDsmQGNGs6wR4P/HVMWvjpXYlGnpskDo8L73cCg==
X-Received: by 2002:a17:907:2da8:b0:a7a:a7b8:ada7 with SMTP id a640c23a62f3a-a7d400746d3mr728961166b.24.1722322129245;
        Mon, 29 Jul 2024 23:48:49 -0700 (PDT)
Message-ID: <680f461a-fd84-4d93-9dde-f524120d6522@suse.com>
Date: Tue, 30 Jul 2024 08:48:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xen/arm: stack check instrumentation
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-4-stewart.hildebrand@amd.com>
 <d313f39a-f5aa-4611-975e-bc64759bbd01@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: <d313f39a-f5aa-4611-975e-bc64759bbd01@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 20:36, Julien Grall wrote:
> On 29/07/2024 15:24, Stewart Hildebrand wrote:
>> Use the -finstrument-functions option to check that the stack pointer is
> 
> Is the feature supported by both clang and GCC? If so, which from versions?
> 
>  From README, this is what we currently support.
> 
>        - For ARM 32-bit:
>          - GCC 4.9 or later
>          - GNU Binutils 2.24 or later
>        - For ARM 64-bit:
>          - GCC 5.1 or later
>          - GNU Binutils 2.24 or later
> 
> We don't mention Clang, but I would expect a clang from 4-5 years should 
> still be Arm (not cross-compile as we never fully added the support).

I was wondering the same, but already on patch 1 and with other architectures
also in mind, as there's common (XSM) code gaining respective attributes. For
gcc I checked that even 4.1 supports that attribute, so I expect we're fine
here (and double checking with godbolt, Clang 3.0.0 also supports the option).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 07:00:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 07:00:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767293.1177895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYgqj-0006Fs-Gs; Tue, 30 Jul 2024 07:00:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767293.1177895; Tue, 30 Jul 2024 07:00:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYgqj-0006Fl-EH; Tue, 30 Jul 2024 07:00:45 +0000
Received: by outflank-mailman (input) for mailman id 767293;
 Tue, 30 Jul 2024 07:00: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYgqi-0006Ff-80
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 07:00:44 +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 6fb62d07-4e41-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 09:00:42 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a7d638a1f27so135292666b.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 00:00: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
 4fb4d7f45d1cf-5ac63590ce2sm6766210a12.26.2024.07.30.00.00.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 00:00: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: 6fb62d07-4e41-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722322842; x=1722927642; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VD46Z5ff3GZBwqie9LRLIXmPd9irkxsEFxkK+YXHWVw=;
        b=HgO4PywVPZf25f0bVX0mGgV84c3/QNP4uOuMX5+sjfnoM7uayfjx6+rxGJlyhAWMj0
         oZONSJNGUJEEkt3u4YuNAQtdkKWKql/3fXTEMpr+wOSM8jVPZ6u6p6s3J8v1e9pL7yr9
         40uUsoDFDmABftFxQt4hQcmQ8HIOue4KZVZBTwPBiFCyxw2FkByrtc6NpYt5MwiIffEm
         cWJZa3AMw2hCsHsXGApM4FKQiXYMxTP6sZ8MAnG8XdaOtEjl3FvvOVyvC42BzkgSvUSY
         5blqOuX165KXc6cD5u6/WwdluwKRA5h6/Ti3zumzohdK2YQgJvFWh0WA47fke7fJElFD
         e1nw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722322842; x=1722927642;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VD46Z5ff3GZBwqie9LRLIXmPd9irkxsEFxkK+YXHWVw=;
        b=qjg/38iCmxewLayjfjkZIGy+2/l1hdOTuCASGy+g5uyvR2uKiYg3xbE1kMeaQcxfRr
         yOjGltZFqtpxQZnWAM6N48hJ5NBprEBjZRBBz6w43AK/tMaNWLxi6JC0FrX2GtgJkAg3
         lZpv6TV6s9hybiRyZ6CPc2kOfIsc2FQPWIE1c0hlFSHDwc51sxXttx79Dm8VeDzInItk
         SCQytw9g0hFSWbcXOfzfjZAvis8+qWP/V/W94/xKPYGL62vmP8d5p6QS2/QfTojvH3uw
         VQTolMfOIUiL+iyIgQKuG4c6X4QpoDV9RSD3Z7VKfDDJT1wCaNskJUbgWqASKEwtaB0g
         CeyA==
X-Forwarded-Encrypted: i=1; AJvYcCWuhsrlkkgSJCYVDIbk+nvQREt0UTB0Q8l30PsFS9IdKL5Qp0UVZM8TaYtcbT6YMqCM6Tgw+2kTPbzAvCs6HkTt3Vb5IGoVp0U9U721shw=
X-Gm-Message-State: AOJu0YxG93BjbBvjMLeWU6wbYBuncjHkHeB8Jce/KgzNUolxJb8b8t/3
	FzM8OqaKVLGT6Ik8pDOY+I0u0/6RvnhweZum5vdfM8K7Yf2dTMThfFWPYF5eJA==
X-Google-Smtp-Source: AGHT+IEvPJO5Qrt8/7ERHr8auh2XD8NP31FHnbu9XztHgaNCIN9y8hB1OVJZW5nmJXYsuY3WjxcqVw==
X-Received: by 2002:a05:6402:268d:b0:5a2:65cb:7335 with SMTP id 4fb4d7f45d1cf-5b021d22bf0mr8709081a12.19.1722322842128;
        Tue, 30 Jul 2024 00:00:42 -0700 (PDT)
Message-ID: <ec446763-7e23-4f53-86d2-dab0df8a6c1b@suse.com>
Date: Tue, 30 Jul 2024 09:00:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] XSM/domctl: Fix permission checks on
 XEN_DOMCTL_createdomain
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240729162651.571991-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: <20240729162651.571991-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.07.2024 18:26, Andrew Cooper wrote:
> The XSM checks for XEN_DOMCTL_createdomain are problematic.  There's a split
> between xsm_domctl() called early, and flask_domain_create() called quite late
> during domain construction.
> 
> All XSM implementations except Flask have a simple IS_PRIV check in
> xsm_domctl(), and operate as expected when an unprivileged domain tries to
> make a hypercall.
> 
> Flask however foregoes any action in xsm_domctl() and defers everything,
> including the simple "is current permitted to create a a domain" check, to

Nit: Double "a".

> flask_domain_create().
> 
> As a conseqeuence, when XSM Flask is active, and irrespective of the policy
> loaded, all domains irrespective of privilege can:
> 
>  * Mutate the global 'rover' variable, used to track the next free domid.
>    Therefore, all domains can cause a domid wraparound, and combined with a
>    volentary reboot, choose their own domid.
> 
>  * Cause a reasonable amount of a domain to be constructed before ultimately
>    failing for permission reasons, including the use of settings outside of
>    supported limits.
> 
> In order to remedate this, pass the ssidref into xsm_domctl() and at least
> check that the calling domain privileged enough to create domains.
> 
> This issue has not been assigned an XSA, because Flask is experimental and not
> security supported.
> 
> Reported-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

However, a remark and a nit:

> --- a/xen/include/xsm/dummy.h
> +++ b/xen/include/xsm/dummy.h
> @@ -162,7 +162,7 @@ static XSM_INLINE int cf_check xsm_set_target(
>  }
>  
>  static XSM_INLINE int cf_check xsm_domctl(
> -    XSM_DEFAULT_ARG struct domain *d, int cmd)
> +    XSM_DEFAULT_ARG struct domain *d, int cmd, uint32_t ssidref)

Might be a reasonable thing to also convert type of "cmd" here and elsewhere,
as you're touching all relevant places anyway: The struct field passed in is
uint32_t, so the caller needlessly does a signed-ness conversion.

> @@ -248,9 +248,9 @@ static inline int xsm_set_target(
>      return alternative_call(xsm_ops.set_target, d, e);
>  }
>  
> -static inline int xsm_domctl(xsm_default_t def, struct domain *d, int cmd)
> +static inline int xsm_domctl(xsm_default_t def, struct domain *d, int cmd, uint32_t ssidref)

This line is getting a little too long now.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 07:46:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 07:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767303.1177906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYhYc-0004Da-VB; Tue, 30 Jul 2024 07:46:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767303.1177906; Tue, 30 Jul 2024 07: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 1sYhYc-0004DT-SJ; Tue, 30 Jul 2024 07:46:06 +0000
Received: by outflank-mailman (input) for mailman id 767303;
 Tue, 30 Jul 2024 07:46:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYhYb-0004DJ-Py; Tue, 30 Jul 2024 07:46:05 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYhYb-0007C8-JY; Tue, 30 Jul 2024 07:46:05 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYhYb-000164-6a; Tue, 30 Jul 2024 07:46:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYhYb-0006la-66; Tue, 30 Jul 2024 07:46: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=3P6mEAHq7iqfOK2RsHt/pvgqA70uZd7V9RbiB7AE+Xs=; b=pNo0tDJ9bdisW5isV5W8D0fQ1l
	maDZ+m2eOLqFvQnXp7OOtReyDT8/kOWB5N9g5yCjTzZ/j6yZhAoqS+72PwkHQ13SfnYBiEjvGiKen
	wV99+zpKmHoi4T9Bs5KNFGcst4ug4c8A4x513VW43sUkxH0ZlKyS8DSJIakAJ1SlpaYQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187052-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187052: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=621a30c676d55bfe0049f65e98f65104528218db
X-Osstest-Versions-That:
    ovmf=84fc1ec52fc0f650187359bb081ee5a9400d9675
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 07:46:05 +0000

flight 187052 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187052/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 621a30c676d55bfe0049f65e98f65104528218db
baseline version:
 ovmf                 84fc1ec52fc0f650187359bb081ee5a9400d9675

Last test of basis   187049  2024-07-30 03:43:18 Z    0 days
Testing same since   187052  2024-07-30 05:45:33 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Abhishek Mainkar <abmainkar@nvidia.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   84fc1ec52f..621a30c676  621a30c676d55bfe0049f65e98f65104528218db -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 07:49:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 07:49:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767312.1177915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYhbt-00054j-D7; Tue, 30 Jul 2024 07:49:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767312.1177915; Tue, 30 Jul 2024 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 1sYhbt-00054c-AQ; Tue, 30 Jul 2024 07:49:29 +0000
Received: by outflank-mailman (input) for mailman id 767312;
 Tue, 30 Jul 2024 07:49: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYhbr-00054U-NB
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 07:49: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 3e3c6734-4e48-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 09:49:26 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5a167b9df7eso6989271a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 00:49: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-a7acab4de90sm605107266b.62.2024.07.30.00.49.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 00:49: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: 3e3c6734-4e48-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722325766; x=1722930566; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rOQgbSmCjqlR4rFbd5QNe0Gi/KMbK02sW2z1r2xQ7+w=;
        b=PSLesPNNmPuWWqfPNEZVU2WEId+8plSTG28XiWiBAjf8yehVaMzqEOnKjG8P/K6NDh
         F2PKYjKhUhqyKgdfoUhdgm+dsnUZDEj/jBPEabixdPxVILgNp68piQK8No022zuPTjgg
         xLTHvRXyxoFmxupBcIY1SLcE8XrZu5cfOlE6hsK3UBbnzR0ee/ChV81m0T64ZnGNHh62
         A2SGOxHPsz05T+t3HkoKYl/GfJpfzFww6w3ToV/BPV09qegj6SuQGvoZSL8UfVFw7Emw
         UFx2kKcML6CTp8EeXTVoFAh63hs4VtzVSFdzUxYH3plNLq05IbgeJd3hs/fvCsfJkbiO
         rlbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722325766; x=1722930566;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rOQgbSmCjqlR4rFbd5QNe0Gi/KMbK02sW2z1r2xQ7+w=;
        b=Rt0The9yxK6Es6NNZwa5s7Hv6Q4XAsLXj8snNllwNQVsMbpiy1t6le28WrzHh2Zmjx
         xspCnRtuYNQ1XWfcX7S3vJwGIAykf3baFRH7AXSer5wCQ17vfC9PBMzkwRQU3fihrcK4
         8BgA3llSO/aosKwIxY7FQzrzSAlmVRrPQb2c2YyshPx/IUZbyXa9oVLKjkUQ5RJV5Bb4
         o03+Fg4nNLPH2Fgz7Bu+WecD0KqUPYreyeOt307Xtrj6RJlTZIl3aWP+Yh0HECpNhwz4
         +7oynPQO211gmPdD0RJKc3b0tgtfFX5P8rLjITpMYBbvlxxiiqLiMC+RzU+EGRlTPWq8
         pPXg==
X-Forwarded-Encrypted: i=1; AJvYcCVsXtB6UX6a+M2P0W7oEGRqFmNpLZr8JddGvTCHQBIjKPU1JuTcsPnLoS4frcWXjhqMe9AqZt+IJXx/SYgBB2E1D2pXZT3ZBM0b0F/w5nM=
X-Gm-Message-State: AOJu0Yx9vmk973o9YpwdxOkWArF2q5wPoYpHDNT2L24rJzinCQ0bHM/M
	/QftZH6dwjHNPtXu+WUt8XZEArZObKPa40Pc6ktzrTLlBVxE/WWGnA15arB0Ug==
X-Google-Smtp-Source: AGHT+IFtLwiD5yKQ/bhFVXkVhMCFbrlFXpRb5RLVBcCn8vK4veuBtXYmZUFy1yPFYBZ9zQDgFZXbGg==
X-Received: by 2002:a17:907:d17:b0:a7a:c256:3cb with SMTP id a640c23a62f3a-a7d400e1442mr680327766b.39.1722325765546;
        Tue, 30 Jul 2024 00:49:25 -0700 (PDT)
Message-ID: <8b8b0304-9f6f-4ded-a451-edc8fdd0e52a@suse.com>
Date: Tue, 30 Jul 2024 09:49:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/9] xen/riscv: setup fixmap mapping
To: oleksii.kurochko@gmail.com
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <04576976b82b97442f645b83b3d62475d144af8e.1721834549.git.oleksii.kurochko@gmail.com>
 <917cc521-c0c4-49e8-bc40-948679398bc6@suse.com>
 <28d646ba3d95da2eaf40869e1c07d950a0f3f203.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <28d646ba3d95da2eaf40869e1c07d950a0f3f203.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.07.2024 18:11, oleksii.kurochko@gmail.com wrote:
> On Mon, 2024-07-29 at 15:35 +0200, Jan Beulich wrote:
>> On 24.07.2024 17:31, Oleksii Kurochko wrote:
>>> @@ -81,6 +82,14 @@ static inline void flush_page_to_ram(unsigned
>>> long mfn, bool sync_icache)
>>>      BUG_ON("unimplemented");
>>>  }
>>>  
>>> +/* Write a pagetable entry. */
>>> +static inline void write_pte(pte_t *p, pte_t pte)
>>> +{
>>> +    RISCV_FENCE(rw, rw);
>>> +    *p = pte;
>>> +    RISCV_FENCE(rw, rw);
>>> +}
>>
>> Why the first of the two fences? 
> To ensure that writes have completed with the old mapping.

Wait: There can certainly be uncompleted writes, but those must have
walked the page tables already, or else a (synchronous) fault could
not be delivered on the originating store instruction. Or am I
misunderstanding how paging (and associated faults) work on RISC-V?

>> And isn't having the 2nd here going
>> to badly affect batch updates of page tables?
> By batch you mean update more then one pte?
> It yes, then it will definitely affect. It could be dropped here but
> could we do something to be sure that someone won't miss to add
> fence/barrier?

Well, imo you first want to spell out where the responsibilities for
fencing lies. Then follow the spelled out rules in all new code you
add.

>>> +     * x is the highest page table level for currect  MMU mode (
>>> for example,
>>> +     * for Sv39 has 3 page tables so the x = 2 (L2 -> L1 -> L0) ).
>>> +     *
>>> +     * In this cycle we want to find L1 page table because as L0
>>> page table
>>> +     * xen_fixmap[] will be used.
>>> +     *
>>> +     * i is defined ( HYP_PT_ROOT_LEVEL - 1 ) becuase pte for L2 (
>>> in
>>> +     * case of Sv39 ) has been recieved above.
>>> +     */
>>> +    for ( i = HYP_PT_ROOT_LEVEL - 1; i != 0; i-- )
>>
>> I think the subtracting of 1 is unhelpful here. Think of another 
>> case where
>> you want to walk down to L0. How would you express that with a
>> similar for()
>> construct. It would imo be more natural to use
>>
>>     for ( i = HYP_PT_ROOT_LEVEL; i > 1; i-- )
> Then the first one _i_ will be initialized as L2, not L1. As an option
> we then have to use ...
>>
>> here (and then in that hypothetical other case
>>
>>     for ( i = HYP_PT_ROOT_LEVEL; i > 0; i-- )
>>
>> ), and then the last part of the comment likely wouldn't be needed
>> either.
>> However, considering ...
>>
>>> +    {
>>> +        BUG_ON(!pte_is_valid(*pte));
>>> +
>>> +        pte = (pte_t *)LOAD_TO_LINK(pte_to_paddr(*pte));
>>> +        pte = &pte[pt_index(i, FIXMAP_ADDR(0))];
>>
>> ... the use of i here, it may instead want to be
> ... should be ( i - 1 ).
> I am okay with such refactoring.

Well, because of this use of i I specifically suggested ...

>>     for ( i = HYP_PT_ROOT_LEVEL; i-- > 1; )

... this.

>>> +    }
>>> +
>>> +    BUG_ON(pte_is_valid(*pte));
>>> +
>>> +    tmp = paddr_to_pte(LINK_TO_LOAD((unsigned long)&xen_fixmap),
>>> PTE_TABLE);
>>
>> I'm a little puzzled by the use of LINK_TO_LOAD() (and LOAD_TO_LINK()
>> a
>> little further up) here. Don't you have functioning __pa() and
>> __va()?
> No, they haven't been introduced yet.

So you're building up more technical debt, as the use of said two
constructs really should be limited to very early setup. Aiui once
you have functioning __va() / __pa() the code here would want
changing?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 07:56:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 07:56:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767321.1177925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYhir-0006q8-3k; Tue, 30 Jul 2024 07:56:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767321.1177925; Tue, 30 Jul 2024 07: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 1sYhir-0006q1-14; Tue, 30 Jul 2024 07:56:41 +0000
Received: by outflank-mailman (input) for mailman id 767321;
 Tue, 30 Jul 2024 07:56: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYhip-0006o1-LK
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 07:56:39 +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 400f98f2-4e49-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 09:56:39 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a7aa212c1c9so586917866b.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 00:56: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
 a640c23a62f3a-a7acac64b7csm609893166b.93.2024.07.30.00.56.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 00:56: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: 400f98f2-4e49-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722326198; x=1722930998; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NUBmyX8fwbzEcyTRBXhDHMwFZvkgD8DEHn8tOwLUNME=;
        b=gREhWyg8S+CL51maHtHYJfxMLUO6MDc4PnMzye/acEJjzOBoJzmTJ+UxR45bF+UodU
         acLchUnRdk4qaGoVXA3UxrCRTdbb16WDRf4R46IuC2nCGDrjwXeTPB9A8Z7KID72uDC6
         ATM3gSKJISlrDKbxeYnAVG1k9PcY6O0A88p5KM341IOL+CZEpH4IUS+oUNhDmeFGm1q8
         YzqGFsWVhdoCG494Scs6YVAiSRsd3mdP9Cds4mStkx4XRc2h4iGYc2xOTws+hKsN9gdr
         5RIF4f0QZPpbR/6dfgZ7w//PptumLRgQ4JYcEpCmwNOHjQjtDDGHG2kCWi8MsZ9C892b
         bw7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722326198; x=1722930998;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NUBmyX8fwbzEcyTRBXhDHMwFZvkgD8DEHn8tOwLUNME=;
        b=EewFh9HKkTE3QN/0EMQQ0Pzzv3qtAXlLrDGFeTAkGbqYZyT6h0FQ0SktbhEjEOTCbn
         8S7u7UQwagOiNVtb23e3Kb+7zjty6gfVugSrLpfekbKZ6Y6zvx7S2NeumdjpGMADgRTM
         201v8X/uzIDfOH8NLoP9n+OJSwwbusq7M0cVYVsbIKxDTj6oKVkQ/gz/UJ6gB7P3zSKk
         c/HXrdLptARyrnGYnR/ArnjNQ/k5Rb6jy0bhUEnWa8kRq3jHKb/ne35NJEsep1Zi5DXn
         sKpSAz/xvwritQlxVDOtPA2zmkRFRm80zVjSWBER5nJw+DcclKIBo8gwo6dpMKWemNBt
         BfgA==
X-Forwarded-Encrypted: i=1; AJvYcCXU52VTiT3K+AO0hOyjfkP9JpN+BroH4F0ZgPxVSrrpFslOFVAO9qRfLMTUSS11+QV485bhYIzdVQtE3EPFgCYYeyjZZSsqMoA5kuHfk7c=
X-Gm-Message-State: AOJu0Yy3Kt/DcKFRDB06Vaj5Yzcjqc1ZiEjYg+jDRbZqaENHXfn5R0K0
	Q6/2ni4HZjA4fxrIYW9OnXChIM5g0ZQXxOAZsXPMED6d0q2B3BESWeBgsEBvug==
X-Google-Smtp-Source: AGHT+IFeKXHa+iZm3YCGiyjLm+1Cjz8azkzisE0w9u5iNPElqQ+wPwEJ0w63Usuh3XRIFqDGgHhknQ==
X-Received: by 2002:a17:907:1c19:b0:a6f:8265:8f2 with SMTP id a640c23a62f3a-a7d400d6673mr782289366b.37.1722326198155;
        Tue, 30 Jul 2024 00:56:38 -0700 (PDT)
Message-ID: <6c2ebc9e-cc0d-4139-80a2-4d7025989a9e@suse.com>
Date: Tue, 30 Jul 2024 09:56:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/9] xen/riscv: introduce asm/pmap.h header
To: oleksii.kurochko@gmail.com
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <11b5487659a9c76793e520c108cd92c6c84b908d.1721834549.git.oleksii.kurochko@gmail.com>
 <3359e37e-eaae-49ca-80a5-2bf70b9b46c7@suse.com>
 <78effb178b1ffe7ccb1714a13157e94f5e816b01.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <78effb178b1ffe7ccb1714a13157e94f5e816b01.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.07.2024 18:22, oleksii.kurochko@gmail.com wrote:
> On Mon, 2024-07-29 at 16:29 +0200, Jan Beulich wrote:
>> On 24.07.2024 17:31, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/include/asm/pmap.h
>>> @@ -0,0 +1,33 @@
>>> +/* SPDX-License-Identifier: GPL-2.0 */
>>> +#ifndef ASM_PMAP_H
>>> +#define ASM_PMAP_H
>>> +
>>> +#include <xen/bug.h>
>>> +#include <xen/mm.h>
>>> +#include <xen/page-size.h>
>>> +
>>> +#include <asm/fixmap.h>
>>> +#include <asm/flushtlb.h>
>>> +#include <asm/system.h>
>>> +
>>> +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
>>> +{
>>> +    pte_t *entry = &xen_fixmap[slot];
>>> +    pte_t pte;
>>> +
>>> +    ASSERT(!pte_is_valid(*entry));
>>> +
>>> +    pte = mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
>>> +    write_pte(entry, pte);
>>> +}
>>
>> Perhaps add a comment to clarify why it's safe to omit a TLB flush
>> here.
>> Note that arch_pmap_unmap() having one is a necessary but not
>> sufficient
>> condition to that. In principle hardware may also cache "negative"
>> TLB
>> entries; I have no idea how RISC-V behaves in this regard, or whether
>> that aspect is actually left to implementations.
> what do you mean by "negative" TLB? an old TLB entry which should be
> invalidated?

No, I mean TLB entries saying "no valid translation here". I.e. avoiding
recurring walks of something that was once found to have no translation.

>>> +static inline void arch_pmap_unmap(unsigned int slot)
>>> +{
>>> +    pte_t pte = {};
>>> +
>>> +    write_pte(&xen_fixmap[slot], pte);
>>> +
>>> +    flush_xen_tlb_range_va_local(FIXMAP_ADDR(slot), PAGE_SIZE);
>>> +}
>>
>> For both functions, even if mainly for documentation purposes, it may
>> be desirable to mark them __init. It's again a necessary (but not
>> sufficient) condition here, to validly use local TLB flushes only.
> Does __init in this context means that it will be called only by boot
> cpu at the start and that is it?

No, and I said so in my reply. __init is indicative of the function not
being suitable for runtime use, but it is not enough to indicate the
function is also unsuitable for use as soon as a 2nd CPU is being brought
up. Yet for the latter we have no proper annotation. Hence my suggestion
to use the former to have at least a limited indicator.

An alternative might be to add ASSERT(system_state < SYS_STATE_smp_boot).
That, however, exists in common/pmap.c already anyway.

Yet another alternative would be a clarifying comment.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 08:04:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 08:04:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767339.1177939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYhpy-0000fX-0z; Tue, 30 Jul 2024 08:04:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767339.1177939; Tue, 30 Jul 2024 08: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 1sYhpx-0000fQ-Ti; Tue, 30 Jul 2024 08:04:01 +0000
Received: by outflank-mailman (input) for mailman id 767339;
 Tue, 30 Jul 2024 08:04: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYhpx-0000du-7A
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 08:04:01 +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 4772dacd-4e4a-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 10:04:00 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5af6a1afa63so4034745a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 01:04: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-a7acab233aasm611223066b.8.2024.07.30.01.03.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 01:03: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: 4772dacd-4e4a-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722326640; x=1722931440; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yKvKgh0M2Q1xpxKFE4KbmHIwVWCai7Z03Un0lCACDJM=;
        b=Yo8AnCur/fiE1E2T3L6smAhcxeNO+BVl8F2hZk39ctIR232ggn7CzBfwJksUeM2Ujx
         urS1aSSEphgsyRe1zVt8ViaqTqq5sx5mwBpykF41h5Hhl4i9pr7I6mnTp/92f3rKGwkP
         CCe2c7YbbD33qSwUG6kzmCDrKcl3acPnrQwSxsRSHp72psMt5gSdDkVImI63ojQ2ozQV
         ZbyAEz/EEyD9O++HklHq1o96yy6fJf1ixkv4BDpidCyTLoCQGAa+GVPeY1y7JXkGy97W
         /XT7yhKqkC2vwFjq/PP+NcUpUaRHnj0Y5OyGjFvPDbvDjLXHb4bDoXWoB3o0UfxOaZuh
         KW3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722326640; x=1722931440;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yKvKgh0M2Q1xpxKFE4KbmHIwVWCai7Z03Un0lCACDJM=;
        b=V2L+saSg2Tjg/+RUDutFQ3Kj708AaHp3wPTeKD15ElyITKE2fCVwJLrX1aThbcIJvM
         znUb/8XFiCzXGv9yzodSA6dqKRm135NLfjejsbICbZwHuu0cA/7okWvzR7zXFwur/JMU
         ONWWCkl/ek4vsJqN5BhLAk/ovUNoUmNXOuqkqKmp1eOFmRGOq4mZ553eT2TYXFV/xipN
         RnGzUGW+sozQXtAWh8yT0HgSiAUZKYVgYwVoImxJUU7seMTqTWgW2+33FN/2c62d18V1
         VbWnhTSVVfMXdQNQSxyWZe/vi5KPTBRvfKlRrDdGZms5mH8fulZvNyHxRApdUGRFoJED
         X+nA==
X-Forwarded-Encrypted: i=1; AJvYcCUVfuqe4nHtxC1MjhhKUWdBfrcm8YBxWTsWoT5miUM9KOTI6h1Rxni6D2UrPkukCZI70lfRL9jey+noxDJaN9/EifTzQCzWNtpr3Y7MIbw=
X-Gm-Message-State: AOJu0YwW/2V9aWn6QbqgD8JSA/Mj3q+EfuCHV3ykl3gr3l3U/rm1FDwH
	HggckreAOf4SwWEpTCDT0diMeiXwT8B/5kFHyR9SCmYYWIKhJD7vcyisjRBW8A==
X-Google-Smtp-Source: AGHT+IEthjftmP1pChPfB1IXcVYdAE8KM1tCBu3OHw72pPXQJVHnD2AsZj2r7jaMT549XOPd63Jvgw==
X-Received: by 2002:a17:906:7955:b0:a7a:84ec:8785 with SMTP id a640c23a62f3a-a7d40086e54mr760333366b.40.1722326639952;
        Tue, 30 Jul 2024 01:03:59 -0700 (PDT)
Message-ID: <0816a3b3-61b1-4382-b919-9d25f124ebbd@suse.com>
Date: Tue, 30 Jul 2024 10:03:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/9] xen/riscv: introduce functionality to work with
 cpu info
To: oleksii.kurochko@gmail.com
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <4ea9005d4209e24df9b30a7b3c282276084a3cf1.1721834549.git.oleksii.kurochko@gmail.com>
 <113b9d4a-d31c-4491-bf8c-96ac97d98f45@suse.com>
 <370588e93fe59acb0ae1f26416541290004e593b.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <370588e93fe59acb0ae1f26416541290004e593b.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.07.2024 18:32, oleksii.kurochko@gmail.com wrote:
> On Mon, 2024-07-29 at 17:28 +0200, Jan Beulich wrote:
>> On 24.07.2024 17:31, Oleksii Kurochko wrote:
>>> +static inline unsigned int smp_processor_id(void)
>>> +{
>>> +    unsigned int id;
>>> +
>>> +    id = get_processor_id();
>>> +
>>> +    /*
>>> +     * Technically the hartid can be greater than what a uint can
>>> hold.
>>> +     * If such a system were to exist, we will need to change
>>> +     * the smp_processor_id() API to be unsigned long instead of
>>> +     * unsigned int.
>>> +     */
>>> +    BUG_ON(id > UINT_MAX);
>>
>> Compilers may complaing about this condition being always false. But:
>> Why
>> do you check against UINT_MAX, not against NR_CPUS? 
> Because HART id theoretically could be greater then what unsigned int
> can provide thereby NR_CPUS could be also greater then unsigned int (
> or it can't ? ).

Well, there are two aspects here. On a system with billions of harts,
we wouldn't be able to bring up all of them anyway. NR_CPUS is presently
limited at about 16k.

Yet than I have no idea whether hart IDs need to be all consecutive. On
other hardware (x86 for example), the analog APIC IDs don't need to be.
Hence I could see there being large hart IDs (unless excluded somewhere
in the spec), which then you map to consecutive Xen CPU IDs, all having
relatively small numbers (less than NR_CPUS).

If hart IDs can be sparse and wider than 32 bits, then I'd suggest to
use an appropriately typed array right away for the Xen -> hart
translation. For the hart -> Xen translation, if also needed, an array
may then not be appropriate to use.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 08:04:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 08:04:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767345.1177950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYhqI-00013l-Ai; Tue, 30 Jul 2024 08:04:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767345.1177950; Tue, 30 Jul 2024 08: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 1sYhqI-00013e-85; Tue, 30 Jul 2024 08:04:22 +0000
Received: by outflank-mailman (input) for mailman id 767345;
 Tue, 30 Jul 2024 08: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=ZYes=O6=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1sYhqH-0000d6-9E
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 08:04:21 +0000
Received: from mail-qk1-x72a.google.com (mail-qk1-x72a.google.com
 [2607:f8b0:4864:20::72a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 528a467d-4e4a-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 10:04:19 +0200 (CEST)
Received: by mail-qk1-x72a.google.com with SMTP id
 af79cd13be357-7a1da036d35so265442085a.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 01:04:19 -0700 (PDT)
Received: from rossla-pc.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1f0153705sm259963885a.108.2024.07.30.01.04.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 01:04: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: 528a467d-4e4a-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722326658; x=1722931458; 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=2h7HiiJXVeJ+i1ScVuKzptcWqQHcv9MhlmldDZ9sR80=;
        b=etYe70o3jRmlzxfj4NIQIq7diIfMJV6mwgYeRbrM3Ka1NzWQl7QgwSiInQdg5CZnzy
         +40p78dqUbabOjs43r3WgUmAmNebPmsWHac6tnPOtttGKrQyUIbYpSEkdu2iuL3Oj8v7
         FJUNiWYZ9X8h5zPLhI7/GJl1DKTPmZnmVSSkw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722326658; x=1722931458;
        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=2h7HiiJXVeJ+i1ScVuKzptcWqQHcv9MhlmldDZ9sR80=;
        b=Wa43UNrkIYhb8VyzGzPFaquFkbNTpt5TLgZiafC6rnh+du5oPJqPC4Tcy599OzwJIQ
         2yF00NZv1nBZyb+O+KDKbwB5JDmEu/uj+GhGx4bbRGQUp4E2Cl/M53C/1v+fupz3UzY3
         qA1xyRN40zJprmZa4gO1bo1jelqdL3xtXplCSNxn/P2TBQViZarsygkFPL53O5utVytT
         ZawC5mggTqUcanq3kg5HI7wXCTRBhDwHnm/m1EZZFnd3sDosPOshw+POScTXTXQX5oFF
         azm7H0azcaZECD51LakVBHFBXdq5MYyOQxytKOr6dNb42rSwkVgdjEAJe9qN15Cc72PC
         OCIw==
X-Gm-Message-State: AOJu0YznvhCN2DxvJ+/pPZDwZ32OQTz8FySopg4amzcgMamfwSQVRIj8
	UqAPvHRPxGu7m/1YPEmotEyh9kgkh0k4/iaLX8Iq4BRLf2+XkF9K5HEvFm4FatZvSY01hH8SEF0
	=
X-Google-Smtp-Source: AGHT+IFYzGTp4JN85y+xJB+bbDfT4w3vLxnCxFqldQRouVMaOxpVS0cEvsHMjaXmyq09TV+z7VmugA==
X-Received: by 2002:a05:620a:45aa:b0:79f:38e:c015 with SMTP id af79cd13be357-7a1e52fc11emr1242934385a.62.1722326658280;
        Tue, 30 Jul 2024 01:04:18 -0700 (PDT)
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH] bunzip2: fix rare decompression failure
Date: Tue, 30 Jul 2024 09:03:42 +0100
Message-ID: <20240730080342.1814470-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The decompression code parses a huffman tree and counts the number of
symbols for a given bit length.  In rare cases, there may be >= 256
symbols with a given bit length, causing the unsigned char to overflow.
This causes a decompression failure later when the code tries and fails to
find the bit length for a given symbol.

Since the maximum number of symbols is 258, use unsigned short instead.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---

This issue was noticed in Linux decompressing initrds but since Xen has
the same decompression code, it is possible the issue occurs here too.

 xen/common/bunzip2.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/common/bunzip2.c b/xen/common/bunzip2.c
index 4466426941e0..79f17162b138 100644
--- a/xen/common/bunzip2.c
+++ b/xen/common/bunzip2.c
@@ -221,7 +221,8 @@ static int __init get_next_block(struct bunzip_data *bd)
 	   RUNB) */
 	symCount = symTotal+2;
 	for (j = 0; j < groupCount; j++) {
-		unsigned char length[MAX_SYMBOLS], temp[MAX_HUFCODE_BITS+1];
+		unsigned char length[MAX_SYMBOLS];
+		unsigned short temp[MAX_HUFCODE_BITS+1];
 		int	minLen,	maxLen, pp;
 		/* Read Huffman code lengths for each symbol.  They're
 		   stored in a way similar to mtf; record a starting
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 08:20:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 08:20:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767362.1177960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYi5K-00041a-KT; Tue, 30 Jul 2024 08:19:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767362.1177960; Tue, 30 Jul 2024 08: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 1sYi5K-00041T-Gm; Tue, 30 Jul 2024 08:19:54 +0000
Received: by outflank-mailman (input) for mailman id 767362;
 Tue, 30 Jul 2024 08:19:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HnHO=O6=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sYi5J-00041N-5F
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 08:19:53 +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 7dfda483-4e4c-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 10:19:51 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-59589a9be92so6571704a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 01:19:51 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad41462sm599013366b.119.2024.07.30.01.19.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 01:19: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: 7dfda483-4e4c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722327590; x=1722932390; 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=Avtw4N1eR+GiFCtanmTPhq54KY38UjoQBkTBOJ8ucHg=;
        b=Xum7bXlai1fQZqzw7cDEYLb9NIeBYy5UmOVrkjLYUHm7QuqCC5OrH3yiqsw14kY0v1
         85HIGGWSe+PWcZ9m7S4UWECwuyqkAz8PQIhf5NlXPxT9O3HWjB/KGRvWt8xUkF2hODe8
         jJaoJL7KuKljA388V/gbShskb2yiTvHxR3tYexwI3aTcS3mW2LcBwIrizdUSPsOa9rVN
         w6qAYTHjWJQRlH8CYwVMKlheJXSxcFBeRh2pQ+XwhK7whM0kqBH4LXv3SaG3D5hlJAzk
         ZhcHxuwmXDbyIA2IErSIzqJQ2enZFxJJgjWk1aqX2k6UtRN/riwskzSkdqIH7JIUB/Nw
         RZ6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722327590; x=1722932390;
        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=Avtw4N1eR+GiFCtanmTPhq54KY38UjoQBkTBOJ8ucHg=;
        b=S1FehHXPD9DR4/zyY07dsFZlMqztSH9dxixDN/TBXVQ0eaoDSbg+nryhjIAz71ojhj
         zdzMYROSywtPqD4vxNc3kj9OjU7CIXex+QKAc28fjvQO9TRVCyNdN+Iq46XQaFRRJYXK
         7dzn7CQJmyOKcW4kLn/IyL3xSp/TtmXHNNTvvuBa8YFDH4vu8tVrK+1mojkMoMsbOgt/
         Zr45IX99P/stCMWQoURqlGwvSup/8LyQYRqI/7ZrnDSYn/WO/ky2KjHop4cYSDxgUkAR
         oSWurFV+UXbPM1ockxD0kXrfz1znUclqlCRCG4u+N2ePmwXaMSKSPOQO9A4DohwOidu9
         BT4w==
X-Forwarded-Encrypted: i=1; AJvYcCU1PSBrY4HmN5ridwesezYHoZvxMIcekpRHMWX5Tj+unqn8Dg3NNnuYVLJwK/Kb6p8mh/Ufqv3wDEr4zlCsVtv03sFvq+Ape4v1pfqnpLc=
X-Gm-Message-State: AOJu0YxR+o7WWWGnu/W9cao2ZIR3WLDR9vWb40a69xwfaoZGa+2TTWTh
	sOb1BTagpVR9Bj5wKUEztYXOvAWzXR4hd6xUHwIOfnYM5X4wn0Ex+deTVocOsss=
X-Google-Smtp-Source: AGHT+IFtJfbuc2u/eqs3fRRONElGEKaG14fTy9PG8wn0MX65Vt4oWxjVm5SNDXnIIsDaAG7fIWy+1g==
X-Received: by 2002:a17:907:72c1:b0:a7a:8876:4427 with SMTP id a640c23a62f3a-a7d40071af4mr757772966b.25.1722327590535;
        Tue, 30 Jul 2024 01:19:50 -0700 (PDT)
Message-ID: <8270bede-d548-481b-b349-e305a4f574c8@suse.com>
Date: Tue, 30 Jul 2024 10:19:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] xen: silence maybe-unitialized warning
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-3-stewart.hildebrand@amd.com>
 <b49f76cb-f22e-498e-83ae-68cc9840c48d@suse.com>
 <e816ca86-3b1f-42ea-b338-de73d9fb6370@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <e816ca86-3b1f-42ea-b338-de73d9fb6370@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 29.07.24 21:01, Stewart Hildebrand wrote:
> On 7/29/24 11:03, Jürgen Groß wrote:
>> On 29.07.24 16:24, Stewart Hildebrand wrote:
>>> When building with gcc with -finstrument-functions, optimization level
>>> -O1, CONFIG_HYPFS=y and # CONFIG_HAS_SCHED_GRANULARITY is not set, the
>>> the following build warning (error) is encountered:
>>>
>>> common/sched/cpupool.c: In function ‘cpupool_gran_write’:
>>> common/sched/cpupool.c:1220:26: error: ‘gran’ may be used uninitialized [-Werror=maybe-uninitialized]
>>>    1220 |                      0 : cpupool_check_granularity(gran);
>>>         |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> common/sched/cpupool.c:1207:21: note: ‘gran’ declared here
>>>    1207 |     enum sched_gran gran;
>>>         |                     ^~~~
>>>
>>> This is a false positive. Silence the warning (error) by initializing
>>> the variable.
>>>
>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>
>> Reviewed-by: Juergen Gross <jgross@suse.com>
> 
> Thanks!
> 
> It just occurred to me: should the subject prefix be xen/cpupool:
> instead of plain xen: ?

Probably, yes.


Juergen


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 08:44:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 08:44:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767372.1177979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYiTX-0000J4-Oj; Tue, 30 Jul 2024 08:44:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767372.1177979; Tue, 30 Jul 2024 08:44: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 1sYiTX-0000Iv-Ln; Tue, 30 Jul 2024 08:44:55 +0000
Received: by outflank-mailman (input) for mailman id 767372;
 Tue, 30 Jul 2024 08:44: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=3FYA=O6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYiTW-0000IK-LI
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 08:44:54 +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 fceb3578-4e4f-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 10:44:52 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a7a81bd549eso400809066b.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 01:44:52 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab235fesm615910466b.36.2024.07.30.01.44.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 01: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: fceb3578-4e4f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722329092; x=1722933892; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=6I/dVUGdVTQaJjNIE9OK2jT6xxy9qmocb7jXgDWAWH0=;
        b=XcTRhAgx3c3Dnqk1u+N/51HfkSXQXAcqjlA+2KoOGMaIu2pcXv4itwGSC6Afhf2DZO
         Rw4d4PSMdpLVR1COhxhrI2CRJY/GBwu2XrDafURmozuGxXD3lUKMNnysjfX03+/aW7sv
         aqLX+YzFkqLYG/dU62TIsED4F21ChGUw/F270taPuUr7bMeQv7T30vQsw4X8QzLztyGO
         jJzVQMkGcD7DnLlMZ8Ni8Ongna5ZZ4NouRsL271rRH+KTeVjg8H3Mwk3D00xnusaArSQ
         R8Mr2IlXTh4bnPmdXZwQmyX4N9+zXHeC8xx0H+1c5t2En5qNADmeKhmtvpAEYHrEQ1sl
         WN8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722329092; x=1722933892;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=6I/dVUGdVTQaJjNIE9OK2jT6xxy9qmocb7jXgDWAWH0=;
        b=uGLS00cfxCH0M/8Q/BZniozC9HclP9fxvr/wbcDjObKhEjUV5HqZKDb+apD41zAilq
         GbDP1qUQH0X1KdzNHVabx6Ux4DHDEROtXyyIuJahoagPoAWldBp/tmYhRe7chTDGWzvm
         GQG/6ylAR0TORngWX/d0bBqJPAAbD9F3HWKS8235QNvWA/FFZOLrz5xxoKnI1+iqjmOu
         409BRYtVY1VBm7PKNbOO30iIrQlKFO92NeZOAe4eiAb87hBfmrl0dtCoOA2jz3E8/u8T
         DVshCvhdJvwA3oXHHk1cJPfzC9L6oBZKgCXuWJCTxzaWIXH+X0+WDrC9pY9kjK7Xlt20
         0cpw==
X-Forwarded-Encrypted: i=1; AJvYcCWTm6AipFo3YgyWmavsnC2uwK53PDH6HMYdiEGutG3mDTkz4RUOGS/kcbRbFzFC6H07tv3LeYPIktnbASQJwQOmoKI+2H5RH007YFqfAM8=
X-Gm-Message-State: AOJu0Ywy0cTDqJMWdqCrY2WABhv2Qzi9q9SW55Xm6VLcWJHUQj8EEJUA
	FKum3bgz4hgI0iw9uYg+WFIvmhPVM4cgL0Mm9Spiy44/uDbtIeB/
X-Google-Smtp-Source: AGHT+IEQuiP2uWEAEATirapGpowcEdMQMAhbDxgqdyDNslDa3XjcQ9LNfKnICKFftNiJNQEgXOgmFg==
X-Received: by 2002:a17:907:874c:b0:a7a:a138:dbd4 with SMTP id a640c23a62f3a-a7d401916bbmr740303966b.64.1722329091692;
        Tue, 30 Jul 2024 01:44:51 -0700 (PDT)
Message-ID: <b7433d25bb3ca7a0f4e54f561b450b5724fb46dc.camel@gmail.com>
Subject: Re: [PATCH v3 7/9] xen/riscv: introduce and init SBI RFENCE
 extension
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Tue, 30 Jul 2024 10:44:50 +0200
In-Reply-To: <49d3a181-0830-4f55-83a4-c6c9fd54eb17@suse.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
	 <fb2d24731f870378d79077be39b1bc19cc655327.1721834549.git.oleksii.kurochko@gmail.com>
	 <49d3a181-0830-4f55-83a4-c6c9fd54eb17@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Mon, 2024-07-29 at 17:52 +0200, Jan Beulich wrote:
> On 24.07.2024 17:31, Oleksii Kurochko wrote:
>=20
>=20
> > +/*
> > + * Send SFENCE_VMA to a set of target HARTs.
> > + *
> > + * @param hart_mask mask representing set of target HARTs
> > + * @param start virtual address start
> > + * @param size virtual address size
>=20
> Are these really virtual addresses, not somehow a bias and a number
> of bits (CPUs) or elements? From the rest of the patch I can't deduce
> what these two parameters express.
According to SBI doc start is an virtual address:
https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-rfence.a=
doc?plain=3D1#L44

and hart_mask is:
=E2=80=A2 unsigned long hart_mask is a scalar bit-vector containing hartids


>=20
> > + */
> > +void sbi_remote_sfence_vma(const unsigned long *hart_mask,
>=20
> Maybe better hart_mask[]? It's not clear to me though what the upper
> bound of the array is.
Theoretically it is ULONGMAX but we don't looking more then
CONFIG_NR_CPUS.

>=20
> > +
> > +static void sbi_cpumask_to_hartmask(const struct cpumask *cmask,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=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 cpumask *hmask)
>=20
> I doubt it is valud to re-use struct cpumask for hart maps.
Why not? Would it be better to use unsigned long *hmask?

>=20
> > +{
> > +=C2=A0=C2=A0=C2=A0 u32 cpu;
>=20
> uint32_t or yet better unsigned int please.
>=20
> > +=C2=A0=C2=A0=C2=A0 unsigned long hart =3D INVALID_HARTID;
> > +
> > +=C2=A0=C2=A0=C2=A0 if (!cmask || !hmask)
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return;
> > +
> > +=C2=A0=C2=A0=C2=A0 cpumask_clear(hmask);
> > +=C2=A0=C2=A0=C2=A0 for_each_cpu(cpu, cmask)
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( CONFIG_NR_CPUS <=3D cp=
u )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pri=
ntk(XENLOG_ERR "SBI: invalid hart=3D%lu for
> > cpu=3D%d\n",
>=20
> %u for the CPU please.
>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hart, cpu);
>=20
> "hart" wasn't set yet and hence is invalid or at least misleading to
> log.
That why it will print INVALID_HARTID which user will identify as
invalid hartid.
Do you mean that there is no any sense to message "invalid hart=3D%lu" as
it is obviously invalid?

>=20
> Nit: Indentation.
>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 con=
tinue;
>=20
>=20
> Can you really sensibly continue in such a case?
I think yes, the worst thing we will have is that the "bad" CPU won't
be used.
But it might be better to switch to BUG_ON() as if we are inised the
"if CONFIG_NR_CPUS <=3D cpu" then it could tell us that something went
wrong.


>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hart =3D cpuid_to_hartid_ma=
p(pcpu_info[cpu].processor_id);
>=20
> What does "_map" in the function/macro name signify?
It is interconnections/correllation between Xen's CPU id and Hart's id.


~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 08:44:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 08:44:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767369.1177969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYiTU-0008UJ-CM; Tue, 30 Jul 2024 08:44:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767369.1177969; Tue, 30 Jul 2024 08:44:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYiTU-0008UC-9d; Tue, 30 Jul 2024 08:44:52 +0000
Received: by outflank-mailman (input) for mailman id 767369;
 Tue, 30 Jul 2024 08:44:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYiTT-0008U2-7X; Tue, 30 Jul 2024 08:44:51 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYiTS-0000G2-Qq; Tue, 30 Jul 2024 08:44:50 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYiTS-0002y8-Du; Tue, 30 Jul 2024 08:44:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYiTS-00079h-DS; Tue, 30 Jul 2024 08: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=iXuTDhL6LyfOLPLfHKFJhVRpd4h9H9HJUZINb/9pvok=; b=bERbpzQQXY0+HsVk3OKleOx6+d
	6MP+6HW4MjMNAJ9eix5x0JqWBKeQLWwz34x2KaDG2CSj6iOkGAu0B1X5CdifxTcnWj+ceyaKERlG4
	xsy97YT2hgqDU7sTdjXFJjeDhPwcu5AwryEdD94G6St0RDU7PwTIPEGU6Ty2tWpP945Y=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187046-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187046: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:build-amd64-pvops:kernel-build:fail:regression
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-amd64-amd64-xl-vhd:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-shadow:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-rtds:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-raw:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ovmf-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-debianhvm-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-qcow2:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-pvshim:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-pvhv2-intel:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-pvhv2-amd:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-dom0pvh-xl-intel:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-multivcpu:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-examine:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-examine-bios:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-examine-uefi:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-credit2:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt-pair:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-credit1:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-intel:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-pair:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-pygrub:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-qemuu-freebsd11-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-qemuu-freebsd12-amd64:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-amd64-xl-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-amd64-coresched-amd64-xl:build-check(1):blocked:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=6b5faec9f564ea627c66064a4a6a5904fe5a07dd
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 08:44:50 +0000

flight 187046 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187046/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
 build-amd64-pvops             6 kernel-build             fail REGR. vs. 186827
 build-i386-pvops              6 kernel-build             fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-vhd       1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-shadow    1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-rtds      1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-raw       1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemuu-ws16-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemuu-win7-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemuu-ovmf-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict 1 build-check(1) blocked n/a
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm  1 build-check(1)     blocked n/a
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow  1 build-check(1) blocked n/a
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  1 build-check(1)        blocked n/a
 test-amd64-amd64-xl-qemut-ws16-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemut-win7-amd64  1 build-check(1)             blocked n/a
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm  1 build-check(1)     blocked n/a
 test-amd64-amd64-xl-qemut-debianhvm-amd64  1 build-check(1)        blocked n/a
 test-amd64-amd64-xl-qcow2     1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-pvshim    1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-pvhv2-intel  1 build-check(1)               blocked  n/a
 test-amd64-amd64-dom0pvh-xl-amd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-pvhv2-amd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-dom0pvh-xl-intel  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-multivcpu  1 build-check(1)               blocked  n/a
 test-amd64-amd64-examine      1 build-check(1)               blocked  n/a
 test-amd64-amd64-examine-bios  1 build-check(1)               blocked  n/a
 test-amd64-amd64-examine-uefi  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-credit2   1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt      1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-pair  1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-credit1   1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qcow2  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked n/a
 test-amd64-amd64-xl           1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-raw  1 build-check(1)               blocked  n/a
 test-amd64-amd64-libvirt-vhd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-qemuu-nested-intel  1 build-check(1)              blocked n/a
 test-amd64-amd64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-amd64-amd64-pair         1 build-check(1)               blocked  n/a
 test-amd64-amd64-qemuu-nested-amd  1 build-check(1)               blocked  n/a
 test-amd64-amd64-pygrub       1 build-check(1)               blocked  n/a
 test-amd64-amd64-qemuu-freebsd11-amd64  1 build-check(1)           blocked n/a
 test-amd64-amd64-qemuu-freebsd12-amd64  1 build-check(1)           blocked n/a
 test-amd64-amd64-xl-xsm       1 build-check(1)               blocked  n/a
 test-amd64-coresched-amd64-xl  1 build-check(1)               blocked  n/a
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                6b5faec9f564ea627c66064a4a6a5904fe5a07dd
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   13 days
Failing since        186925  2024-07-20 09:44:52 Z    9 days   24 attempts
Testing same since   187046  2024-07-29 21:14:47 Z    0 days    1 attempts

------------------------------------------------------------
2003 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            fail    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          blocked 
 test-amd64-coresched-amd64-xl                                blocked 
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           blocked 
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        blocked 
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 blocked 
 test-amd64-amd64-libvirt-xsm                                 blocked 
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      blocked 
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            blocked 
 test-amd64-amd64-xl-pvhv2-amd                                blocked 
 test-amd64-amd64-dom0pvh-xl-amd                              blocked 
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    blocked 
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    blocked 
 test-amd64-amd64-qemuu-freebsd11-amd64                       blocked 
 test-amd64-amd64-qemuu-freebsd12-amd64                       blocked 
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         blocked 
 test-amd64-amd64-xl-qemut-win7-amd64                         blocked 
 test-amd64-amd64-xl-qemuu-win7-amd64                         blocked 
 test-amd64-amd64-xl-qemut-ws16-amd64                         blocked 
 test-amd64-amd64-xl-qemuu-ws16-amd64                         blocked 
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                blocked 
 test-amd64-amd64-xl-credit1                                  blocked 
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  blocked 
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        blocked 
 test-amd64-amd64-examine                                     blocked 
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          blocked 
 test-amd64-amd64-xl-pvhv2-intel                              blocked 
 test-amd64-amd64-dom0pvh-xl-intel                            blocked 
 test-amd64-amd64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                blocked 
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        blocked 
 test-amd64-amd64-libvirt-pair                                blocked 
 test-amd64-amd64-xl-pvshim                                   blocked 
 test-amd64-amd64-pygrub                                      blocked 
 test-amd64-amd64-libvirt-qcow2                               blocked 
 test-amd64-amd64-xl-qcow2                                    blocked 
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 blocked 
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      blocked 
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     blocked 
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             blocked 
 test-amd64-amd64-xl-shadow                                   blocked 
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                blocked 
 test-amd64-amd64-libvirt-vhd                                 blocked 
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      blocked 
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 223614 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 09:17:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 09:17:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767394.1177990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYiyg-0005cr-3k; Tue, 30 Jul 2024 09:17:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767394.1177990; Tue, 30 Jul 2024 09:17:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYiyg-0005cj-0F; Tue, 30 Jul 2024 09:17:06 +0000
Received: by outflank-mailman (input) for mailman id 767394;
 Tue, 30 Jul 2024 09:17:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYiye-0005cd-WF
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 09:17:05 +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 7be2efca-4e54-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 11:17:03 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a7a843bef98so455958366b.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 02:17: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
 a640c23a62f3a-a7acad91005sm620135866b.173.2024.07.30.02.17.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 02:17: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: 7be2efca-4e54-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722331023; x=1722935823; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yHmWRPVefvQZOxK9cNEe0eeQo8mZO5QUbojAkpjJSEo=;
        b=AYBltkps/tRNk8nBZgaRsQ27GaFPHrDpfNYG6/rN+JlR9MnfEsYKDHxDrpvY3//6vG
         squ8ENuUqxOSYvVOONyJgiXGhNzrrQaxm7iap5X+D9gMwYkvqLrBYLvIiUqgvHq2GtKk
         E/1nbSofLgLRWXZGzWVEDbIunTYy9T62HMXL49pfxK/jUiPyfr2XQ6g1BhVnwNZz7GaG
         uV+ZetbYj+DMdXsaRxVpX2Gb6TNVNXkl9BUozpeaQokVt/GJQmaiGrdiQJK8F71XgQGm
         WpmYEwesv8So6h6GQCHLFqIo0l2WM09s8tEfYQFMfFXV4WUL1VpxbeQ4vlgr/RIDTPsI
         d7wA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722331023; x=1722935823;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yHmWRPVefvQZOxK9cNEe0eeQo8mZO5QUbojAkpjJSEo=;
        b=adPLX42WSTcj1vMrrkLXvGC2ICfQYeoR/Q7rSfeGYl6qo1Fa6XcUwvLE9duyGFUgZc
         Sur7mN+8y9uFVekenCX7FVIhnXeaiCqtIxXl8R5Rp8i8WuS+xrcd7ivZcoOa4JyuNgd0
         joWDMRPLlYnZBWXrkZ7QdS3wFfhSGR7sQ7DqBPUAxSwxwYE6+1k3eK9BkqgiFdqk2EMY
         LmwL8Lrh+jz6QcICZ7pLDQiQ3AvJ/AegXhhYXgghsAI7aDh4S2AKOoS9BjsLxDKO1FNe
         LMXMFo31cZ1JObGHqxHTLcdKE8nfcGz7NFqME58cibeB24cnjnpVZZKM5LuVQYpfDbyo
         tbBg==
X-Forwarded-Encrypted: i=1; AJvYcCXHoAypRuYnj9S9ID9h9Jas5INl6mVXrtOG1g5vqyCWPna4nY+TO3ZxuJrkO+QqCY7ShDjSnLxoc7Nzuk/0Dl1MsRVK/8veekBmSbFK3Kw=
X-Gm-Message-State: AOJu0YwOCq5IKGlAnh5ivJQtn68e9GnsAnmGSKBJ83maLQ+36f9mofUH
	yTxJTHmt1trK81eXyZmuDbd7aLrx96vkIA484+tcrTCn3Bw9e3kXVKBi05ZJ6g==
X-Google-Smtp-Source: AGHT+IEpg7z6U1tPbfK0/HwebaaWHU9o6Yv9741Q0D3EG6AizGqpcc5GgHh+ejJgfPTrldLAOC1BVQ==
X-Received: by 2002:a17:907:971f:b0:a7a:83f8:cfd2 with SMTP id a640c23a62f3a-a7d40043eaemr786615666b.17.1722331023034;
        Tue, 30 Jul 2024 02:17:03 -0700 (PDT)
Message-ID: <97554cbe-7009-4bc9-8205-7a9e0f29aad0@suse.com>
Date: Tue, 30 Jul 2024 11:17:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/9] xen/riscv: introduce and init SBI RFENCE extension
To: oleksii.kurochko@gmail.com
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <fb2d24731f870378d79077be39b1bc19cc655327.1721834549.git.oleksii.kurochko@gmail.com>
 <49d3a181-0830-4f55-83a4-c6c9fd54eb17@suse.com>
 <b7433d25bb3ca7a0f4e54f561b450b5724fb46dc.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b7433d25bb3ca7a0f4e54f561b450b5724fb46dc.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.07.2024 10:44, oleksii.kurochko@gmail.com wrote:
> On Mon, 2024-07-29 at 17:52 +0200, Jan Beulich wrote:
>> On 24.07.2024 17:31, Oleksii Kurochko wrote:
>>
>>
>>> +/*
>>> + * Send SFENCE_VMA to a set of target HARTs.
>>> + *
>>> + * @param hart_mask mask representing set of target HARTs
>>> + * @param start virtual address start
>>> + * @param size virtual address size
>>
>> Are these really virtual addresses, not somehow a bias and a number
>> of bits (CPUs) or elements? From the rest of the patch I can't deduce
>> what these two parameters express.
> According to SBI doc start is an virtual address:
> https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-rfence.adoc?plain=1#L44

Oh, so these are describing the VA range to be flushed. Okay.

> and hart_mask is:
> • unsigned long hart_mask is a scalar bit-vector containing hartids

Biased by hart_mask_base in the actual SBI call.

>>> + */
>>> +void sbi_remote_sfence_vma(const unsigned long *hart_mask,
>>
>> Maybe better hart_mask[]? It's not clear to me though what the upper
>> bound of the array is.
> Theoretically it is ULONGMAX but we don't looking more then
> CONFIG_NR_CPUS.

See my comment elsewhere about possibly sparse numbering of hart IDs.

>>> +
>>> +static void sbi_cpumask_to_hartmask(const struct cpumask *cmask,
>>> +                 struct cpumask *hmask)
>>
>> I doubt it is valud to re-use struct cpumask for hart maps.
> Why not? Would it be better to use unsigned long *hmask?

It's not only better, but imo a requirement. Unless there's a guarantee
by the spec that hart IDs for any subset of harts are sequential and
starting from 0, you just can't assume they fall in the [0,NR_CPUS) or
really [0,nr_cpu_ids) range. Yet without that you simply can't (ab)use
struct cpumask (and btw it wants to be cpumask_t everywhere).

You may want to take a look at struct physid_mask that we have on x86
for the equivalent purpose.

>>> +{
>>> +    u32 cpu;
>>
>> uint32_t or yet better unsigned int please.
>>
>>> +    unsigned long hart = INVALID_HARTID;
>>> +
>>> +    if (!cmask || !hmask)
>>> +        return;
>>> +
>>> +    cpumask_clear(hmask);
>>> +    for_each_cpu(cpu, cmask)
>>> +    {
>>> +        if ( CONFIG_NR_CPUS <= cpu )
>>> +        {
>>> +            printk(XENLOG_ERR "SBI: invalid hart=%lu for
>>> cpu=%d\n",
>>
>> %u for the CPU please.
>>
>>> +                     hart, cpu);
>>
>> "hart" wasn't set yet and hence is invalid or at least misleading to
>> log.
> That why it will print INVALID_HARTID which user will identify as
> invalid hartid.
> Do you mean that there is no any sense to message "invalid hart=%lu" as
> it is obviously invalid?

Yes. Plus the problem in this case isn't that there's no hart ID, but
that the CPU ID is out of range. That's what the message wants to say.
If such a check and message are necessary in the first place. I don't
think we have anything like that on x86. And for_each_cpu() also can't
possibly produce any ID at or beyond nr_cpu_ids, where nr_cpu_ids <=
NR_CPUS.

>>> +            continue;
>>
>>
>> Can you really sensibly continue in such a case?
> I think yes, the worst thing we will have is that the "bad" CPU won't
> be used.
> But it might be better to switch to BUG_ON() as if we are inised the
> "if CONFIG_NR_CPUS <= cpu" then it could tell us that something went
> wrong.

Again - your problem here isn't the range of "cpu". What you instead
want to check is ...

>>> +        }
>>> +
>>> +        hart = cpuid_to_hartid_map(pcpu_info[cpu].processor_id);

the hart ID that you get back. If that's INVALID_HARTID, you're in
fact in trouble.

>> What does "_map" in the function/macro name signify?
> It is interconnections/correllation between Xen's CPU id and Hart's id.

Well. What the function does internally is consult the map. Yet that's
not relevant to any caller? They only care about the translation from
one ID space to the other? No matter whether a map, radix tree, rbtree,
or what not is used behind the scenes?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 09:25:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 09:25:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767401.1178000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYj74-0007AF-TH; Tue, 30 Jul 2024 09:25:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767401.1178000; Tue, 30 Jul 2024 09:25:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYj74-0007A8-QC; Tue, 30 Jul 2024 09:25:46 +0000
Received: by outflank-mailman (input) for mailman id 767401;
 Tue, 30 Jul 2024 09:25:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYj73-0007A2-Er
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 09:25:45 +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 b21f59bb-4e55-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 11:25:44 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a7a91cdcc78so262098066b.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 02:25: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-5ac64eb318dsm6992859a12.68.2024.07.30.02.25.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 02:25: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: b21f59bb-4e55-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722331543; x=1722936343; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=y13kDLjHG4uSmfh1flxL0HF+g9EbhaYvStQSPg6Obvk=;
        b=QsWncr/48xVgSznqO3EnfalR0D9VhR2uWk5o/OSILVoNp3o8QHi8wNbIhoyqAoJ9wG
         7DnRd0d05svoGNBrL3dQRYmSkOYxfs1xIyDCfUBJdVz8d59ooVevP2ChOx2fiivmAPH3
         kRswpV5xNWI2Rq0RA7rJv08yyeciAo9jquhcIM7tu4xZYzSIt+iaOm6839zRpCVY8JYP
         NTVgF7rTwvffey3u5CcG+GnSblggs872ymughEutuHIiVjADfAEsis6RyIiLuIAifEVO
         xv+pzFTTKaEhsbIkFN7pVDjo7yILjFSjizJI8FoFFQMp67CauVJXbJ2QuynKyV4Bz1l7
         k4FQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722331543; x=1722936343;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y13kDLjHG4uSmfh1flxL0HF+g9EbhaYvStQSPg6Obvk=;
        b=OUlS6Ub7RcciHHsOrL+GY7P2PDzYfvp+Ri4bF/KIS1s2ezPDi3AwIj0ciVMPac5e4f
         XSwyI+sY+jcOaJMlWBk6TXBXFOC2/VU5DTm9upWGtuE2QrXp6O0GkkKC04TnRArO0Ezw
         nDVat9H4bKlPkU1S8Y0r5HuGQG8eIWKsX20VrvrojLhwReAOakr2vWDQOpzBxJKTx2X3
         vqBWxOVRZViZqYA/id0C7TJof7lEebylrsFTm4/FYu73kCiBYqLBsuRCNEwduP3IPMXS
         tH8gzCHtx/Zw5BXld5hnzGDoWMXGBY7Au6MGjcZ6q0pKsbS2I4mhWtj9QV97FYbEZgck
         a5XA==
X-Forwarded-Encrypted: i=1; AJvYcCUdA3Kj4h9OLMJ8V8N7fhp3jdSacwoxeUDIay1JengCZthO8rXBgWjpaHpyK3A7+2zTIUBxL0O349r1gzRdAtpQ5mbLu8j4rCA363A8tHE=
X-Gm-Message-State: AOJu0YzuEBvagdAtWI9ZlJIpNXOiX3cquyIscfqRm52AMbV/hUzM3Qj5
	wwuffUYxxHPymptCHire8pfSIVbltrq3JnSwD7dVMq9tOmj0EYsN7VL5I7ywHw==
X-Google-Smtp-Source: AGHT+IFF02rogP5BLs0uQXMaSR7eCurnlcdwzzuPG56p3pHk5CI4ZAkYAPbk7qhKw02vMpj00MyIUA==
X-Received: by 2002:a50:9e46:0:b0:5ac:55a8:55bf with SMTP id 4fb4d7f45d1cf-5b02184bcc9mr7574967a12.13.1722331543575;
        Tue, 30 Jul 2024 02:25:43 -0700 (PDT)
Message-ID: <a99a8fea-59d1-487d-ba40-cbdd88d30400@suse.com>
Date: Tue, 30 Jul 2024 11:25:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] bunzip2: fix rare decompression failure
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20240730080342.1814470-1-ross.lagerwall@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: <20240730080342.1814470-1-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.07.2024 10:03, Ross Lagerwall wrote:
> The decompression code parses a huffman tree and counts the number of
> symbols for a given bit length.  In rare cases, there may be >= 256
> symbols with a given bit length, causing the unsigned char to overflow.
> This causes a decompression failure later when the code tries and fails to
> find the bit length for a given symbol.
> 
> Since the maximum number of symbols is 258, use unsigned short instead.
> 
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

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

A Fixes: tag and maybe an Origin: one would have been nice; the latter just
"maybe" because the Linux patch is one of yours anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 09:34:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 09:34:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767409.1178010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYjFj-0000aO-P4; Tue, 30 Jul 2024 09:34:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767409.1178010; Tue, 30 Jul 2024 09: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 1sYjFj-0000aH-KS; Tue, 30 Jul 2024 09:34:43 +0000
Received: by outflank-mailman (input) for mailman id 767409;
 Tue, 30 Jul 2024 09: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=ZYes=O6=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1sYjFi-0000a8-6x
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 09:34:42 +0000
Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com
 [2607:f8b0:4864:20::1033])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f124efc6-4e56-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 11:34:40 +0200 (CEST)
Received: by mail-pj1-x1033.google.com with SMTP id
 98e67ed59e1d1-2cb5787b4a5so2675655a91.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 02:34: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: f124efc6-4e56-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722332078; x=1722936878; 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=C8NeC0x2vepROQfxqNt15Zwi79SYG3mwUmPegufzJ+8=;
        b=NImZUKE+d5vd3KgajUKTIPP6OVNrAcSVPnQG8t8N8bVrAlJpSAvb+MulVijrYHCFZ+
         91U/Jdjq4IjyuLqVzRVTytGJbNwo5JGtb9VtJWUZwjZncPreE3Fngfa1xhFshyiNicm3
         g7N480UEBF8ULJJtcpAbJHbUlIxCP9qs5tGAo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722332078; x=1722936878;
        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=C8NeC0x2vepROQfxqNt15Zwi79SYG3mwUmPegufzJ+8=;
        b=v2B71tF/JkC0H5Qt/LrQSm1NgWZJ7uISMDzUUXc1dEqBeYDXi/D+rQ7X4IYGTMn5gA
         WGeV8d9LKWyG7GvPxRUgNNa0N1ZsS0gneI7FiNN2SVsmXUGhOKygZ3tJbo/4gTf4/FN9
         Kjawh6b/JXHhstzotQeck+LfJoCBPQjHSEB1Mt/doc1+7O0YiXpBgi8MBJ0lz+RnbJf8
         QcsGTaVvljj5IydYuwvyngbACJgLFIC3vYQw3ymtl/3uyH980tTgOZ/sFUYu1sRWNjU2
         I+EPZXhzeyygyCj6M5PVzFJEUdGABxn48wjf/C+2RvBCQIcefBS1h1lVB9t7OzqFoFQ4
         SNyg==
X-Forwarded-Encrypted: i=1; AJvYcCWu73xDFlViNuz2iL4s13mtfgKDk7AD2cebsn1GQndrNXtdDk634OnwIh/xMqSMipLy8JdL9p6xu9JNYVGkgQo6O8hKpYjYs9HEj1sheZ4=
X-Gm-Message-State: AOJu0YwAdhx/+PYnTJp/H7mdPnZPLId0MCD3IvC7yPkyGcJbFx8XQjPo
	6fd4ic3maikMTnbCDiiBeAfuXMCPcKQJRMQTSyLx4Cka1BJP1syBEbBLoskmgLU4CVatq26I2AW
	7VTyJ5hvrbcjRTHY71qdV3uQRbEb+aW6tLBQP
X-Google-Smtp-Source: AGHT+IF6zr4nsGjuS66zyzczRh2l40B4sOZPgSXg5dnNxMHlPEHn6EXJjBPPFhp8oC2XzAr7b/QOt9bZ28FwsySCC0I=
X-Received: by 2002:a17:90b:915:b0:2cb:5455:8018 with SMTP id
 98e67ed59e1d1-2cf7e1fb9d1mr8620472a91.23.1722332078316; Tue, 30 Jul 2024
 02:34:38 -0700 (PDT)
MIME-Version: 1.0
References: <20240730080342.1814470-1-ross.lagerwall@citrix.com> <a99a8fea-59d1-487d-ba40-cbdd88d30400@suse.com>
In-Reply-To: <a99a8fea-59d1-487d-ba40-cbdd88d30400@suse.com>
From: Ross Lagerwall <ross.lagerwall@citrix.com>
Date: Tue, 30 Jul 2024 10:34:26 +0100
Message-ID: <CAG7k0EqMyZBFseyKey2sEaSL1JxFWtkQeJ=Xc_rfB339kN+S0Q@mail.gmail.com>
Subject: Re: [PATCH] bunzip2: fix rare decompression failure
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Jul 30, 2024 at 10:25=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 30.07.2024 10:03, Ross Lagerwall wrote:
> > The decompression code parses a huffman tree and counts the number of
> > symbols for a given bit length.  In rare cases, there may be >=3D 256
> > symbols with a given bit length, causing the unsigned char to overflow.
> > This causes a decompression failure later when the code tries and fails=
 to
> > find the bit length for a given symbol.
> >
> > Since the maximum number of symbols is 258, use unsigned short instead.
> >
> > Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
>
> Acked-by: Jan Beulich <jbeulich@suse.com>
>
> A Fixes: tag and maybe an Origin: one would have been nice; the latter ju=
st
> "maybe" because the Linux patch is one of yours anyway.
>

Indeed, I decided against an origin tag since I wasn't backporting
someone else's change from Linux, just fixing the same thing in
multiple places.

I should have added a fixes tag. Here it is:

Fixes: ab77e81f6521 ("x86/dom0: support bzip2 and lzma compressed
bzImage payloads")

Thanks,
Ross


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 09:45:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 09:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767417.1178019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYjQF-0002V8-MZ; Tue, 30 Jul 2024 09:45:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767417.1178019; Tue, 30 Jul 2024 09:45: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 1sYjQF-0002V1-Jr; Tue, 30 Jul 2024 09:45:35 +0000
Received: by outflank-mailman (input) for mailman id 767417;
 Tue, 30 Jul 2024 09:45: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYjQE-0002Uv-4r
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 09:45:34 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 763797e0-4e58-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 11:45:32 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5a2ffc34722so9006270a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 02:45: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
 4fb4d7f45d1cf-5ac631b049csm7063955a12.3.2024.07.30.02.45.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 02:45: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: 763797e0-4e58-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722332731; x=1722937531; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+7VN6XpvIUNL/t0RlxVGC4Une0iibsPZ4kuOrxouJBA=;
        b=UjsFuliNhvqlrA7qFYTIwQVa7xl30eSQE/WnthUTdkuMLZPgcJOzTIPRflWgnx4n+x
         HSHVZ09b4GnN36W+V7xxWjTYCo4sN+es7nJrFvSnTYQglowPf/TJPcTxc6VgUXtOC3VQ
         m781kHOgi5ZgFvo93avAOsDPbHoAfd3HiqSSCE/RLeWBW5iWAfwTwpgxOWDdGmPoD+Z1
         Z5eNX0LTEZqErWYf5CRgfopsxSZZd2kC4Ju+a6YP9YypfieKUW6/6UK2flKwtf54tsAC
         BuooTQd7UdF1UNGQ50eZpRwZJv1N35mVo+y9iM3lcoyHfh8PWh5TwEKdd1PJVHYx90Pf
         jWlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722332731; x=1722937531;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+7VN6XpvIUNL/t0RlxVGC4Une0iibsPZ4kuOrxouJBA=;
        b=FNtXWgHaocg1HAlE2wGCCjjIVxckT2uqle8kSY3oOBu6YBsTXeS3VcIIL8MDPfVsWH
         /63/e4/0dHLgupqqplIyBujYZ29+euotwqDGPWns2WjaH3phAsbWgP3VXVxj89ZOdf1x
         dlKUg9YwS5BLzk8i2iZ90KXWFFed9e20YOK3wHkHjOi73ui84Ag6LrILiDWvUcj9J+I9
         VInKNlfmEzM14W6ZsQjt8TyE3Lx8WunSgM+JDRq2wmlbIBM5PQQXCyoun07ufvg/3uEU
         oi4oQZfQNhb+7Wg3GOTWSlhAtVKclAwhkykz1xR3Fm4f9Ibxs5I1gjcG7lq8M6u5bOpB
         XrsA==
X-Forwarded-Encrypted: i=1; AJvYcCVuXAqDlRR2/5Y5Ai6jWb+dUj9C+vOkzcliZXTN++Lc6suUP4phvrn6b38VBBYBcGRpeSwfr4TSCwC8zv8Vc+ch7GQMhsP1h850SxCejxc=
X-Gm-Message-State: AOJu0YyhHMdrvEIv4930nPDj0y/TwF7agdHQpHWF1PcmAdcyBkrEPsKT
	SQvHmMZJDRkdy+k9csoN6gb4ApLL/h+XL1zsqBH+K36g9TAOW7xp+opM027CXw==
X-Google-Smtp-Source: AGHT+IG857zViPAVGFuiTUREDGMDAMQc1JuvtmAFJ1yw5SZ2xK9d+p0Cw4DoGupf7PYqW9vFgXMvQA==
X-Received: by 2002:a05:6402:3489:b0:57d:3e48:165d with SMTP id 4fb4d7f45d1cf-5b46b88cba7mr1705865a12.4.1722332731463;
        Tue, 30 Jul 2024 02:45:31 -0700 (PDT)
Message-ID: <7116e5dd-ad7b-4d2d-bb72-739320208dc1@suse.com>
Date: Tue, 30 Jul 2024 11:45:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 13/17] xen: add deviations for MISRA C 2012 Dir
 D4.10
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
 <1a47750ebed47a3429269112fad6da58bfb6ee96.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1a47750ebed47a3429269112fad6da58bfb6ee96.1721720583.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2024 10:15, Alessandro Zucchelli wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Add safe deviation for *.c files, as estabilished in past discussion.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Hmm, I was about to commit this when I noticed the mismatch between From:
and the sequence of S-o-b: Who's properly the original author of this
patch (whose S-o-b ought to be first)?

Jan



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 09:54:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 09:54:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767425.1178030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYjZA-0004a3-Lw; Tue, 30 Jul 2024 09:54:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767425.1178030; Tue, 30 Jul 2024 09:54: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 1sYjZA-0004Zw-Hr; Tue, 30 Jul 2024 09:54:48 +0000
Received: by outflank-mailman (input) for mailman id 767425;
 Tue, 30 Jul 2024 09:54: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=bhKs=O6=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1sYjZ9-0004Zq-KY
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 09:54:47 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be9bcc9a-4e59-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 11:54:43 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 3932E4EE075E;
 Tue, 30 Jul 2024 11:54: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: be9bcc9a-4e59-11ef-8776-851b0ebba9a2
MIME-Version: 1.0
Date: Tue, 30 Jul 2024 11:54:42 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
 consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>, Doug
 Goldstein <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v5 13/17] xen: add deviations for MISRA C 2012 Dir
 D4.10
In-Reply-To: <7116e5dd-ad7b-4d2d-bb72-739320208dc1@suse.com>
References: <cover.1721720583.git.alessandro.zucchelli@bugseng.com>
 <1a47750ebed47a3429269112fad6da58bfb6ee96.1721720583.git.alessandro.zucchelli@bugseng.com>
 <7116e5dd-ad7b-4d2d-bb72-739320208dc1@suse.com>
Message-ID: <eb14ffb915e10b22ab9a32ded6961337@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-07-30 11:45, Jan Beulich wrote:
> On 23.07.2024 10:15, Alessandro Zucchelli wrote:
>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> 
>> Add safe deviation for *.c files, as estabilished in past discussion.
>> 
>> Signed-off-by: Maria Celeste Cesario  
>> <maria.celeste.cesario@bugseng.com>
>> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> Hmm, I was about to commit this when I noticed the mismatch between 
> From:
> and the sequence of S-o-b: Who's properly the original author of this
> patch (whose S-o-b ought to be first)?
> 
> Jan

Hi,

the original authors are Maria Celeste Cesario and Simone Ballarin, then 
me and Alessandro picked this up.
Perhaps some git configuration made it so that my From is there, but the 
S-o-b order reflects the ordering of events.

Thanks,
  Nicola

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:14:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:14:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767446.1178092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYjs3-0008Uo-M6; Tue, 30 Jul 2024 10:14:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767446.1178092; Tue, 30 Jul 2024 10: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 1sYjs3-0008Uh-I4; Tue, 30 Jul 2024 10:14:19 +0000
Received: by outflank-mailman (input) for mailman id 767446;
 Tue, 30 Jul 2024 10:14: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=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYjs2-0008Ub-4u
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:14:18 +0000
Received: from pb-smtp1.pobox.com (pb-smtp1.pobox.com [64.147.108.70])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 77ef2168-4e5c-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 12:14:15 +0200 (CEST)
Received: from pb-smtp1.pobox.com (unknown [127.0.0.1])
 by pb-smtp1.pobox.com (Postfix) with ESMTP id 21D6330E01;
 Tue, 30 Jul 2024 06:14:12 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1])
 by pb-smtp1.pobox.com (Postfix) with ESMTP id 168D030E00;
 Tue, 30 Jul 2024 06:14:12 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp1.pobox.com (Postfix) with ESMTPSA id C478330DFF;
 Tue, 30 Jul 2024 06:14:10 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77ef2168-4e5c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:mime-version:content-transfer-encoding;
	 s=sasl; bh=Q5CKzpcB3ylJYdwmh/nNZvLT1TNBn8T1qLP88pH2KXc=; b=EfeY
	OSU/PVIjFqaWHeL/G/AhAQwcXSZSPgp5e6aMomnAun4a3S+sEoo73L8a9up7W6JX
	EtK9u+szZ3N0pILY/qQiVNjhQ8coONZ2GgvUvl/05W4oiGOSKIR6bTlWgCRP1ABt
	KPH9P8qFg7zqDbnqbHlt3boOezAACdPYsnBsVfI=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.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>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>
Subject: [XEN PATCH v5 00/13] x86: make CPU virtualisation support configurable
Date: Tue, 30 Jul 2024 13:14:08 +0300
Message-Id: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
X-Pobox-Relay-ID:
 76C3212C-4E5C-11EF-9D73-34EEED2EC81B-90055647!pb-smtp1.pobox.com
Content-Transfer-Encoding: quoted-printable

This is another series to provide a means to render the CPU virtualisatio=
n
technology support in Xen configurable.
Currently, irrespectively of the target platform, both AMD-V and Intel VT=
-x
drivers are built.
The series adds three new Kconfig controls, ALT2PM, AMD_SVM and INTEL_VMX=
,
that can be used to switch to a finer-grained configuration for a given
platform, and reduce dead code.

The code separation is done using the new config guards.

Major changes in this series, comparing to v4, are renaming of config opt=
ions
from SVM to AMD_SVM and from VMX to INTEL_VMX -- the way they were in ini=
tial
RFC series. Also patch for ioreq has been remade once again trying to mak=
e it
clearer and simplify a bit.
More specific changes are provided in per-patch changelog.=20

v4 series here:
https://lore.kernel.org/xen-devel/cover.1720501197.git.Sergiy_Kibrik@epam=
.com/

 -Sergiy


Sergiy Kibrik (6):
  x86/monitor: guard altp2m usage
  x86: introduce CONFIG_ALTP2M Kconfig option
  x86: introduce using_{svm,vmx}() helpers
  x86/vmx: guard access to cpu_has_vmx_* in common code
  x86/vpmu: guard calls to vmx/svm functions
  x86/vmx: replace CONFIG_HVM with CONFIG_INTEL_VMX in vmx.h

Xenia Ragiadakou (7):
  x86: introduce AMD-V and Intel VT-x Kconfig options
  x86/p2m: guard EPT functions with using_vmx() check
  x86/traps: guard vmx specific functions with usinc_vmx() check
  x86/PV: guard svm specific functions with usinc_svm() check
  x86/oprofile: guard svm specific symbols with CONFIG_AMD_SVM
  ioreq: do not build arch_vcpu_ioreq_completion() for non-VMX
    configurations
  x86/hvm: make AMD-V and Intel VT-x support configurable

 xen/Kconfig                             |  3 +++
 xen/arch/arm/ioreq.c                    |  6 -----
 xen/arch/x86/Kconfig                    | 32 ++++++++++++++++++++++++
 xen/arch/x86/cpu/vpmu_amd.c             | 11 +++++----
 xen/arch/x86/cpu/vpmu_intel.c           | 32 +++++++++++++-----------
 xen/arch/x86/domain.c                   |  8 +++---
 xen/arch/x86/hvm/Makefile               |  4 +--
 xen/arch/x86/hvm/hvm.c                  |  4 +--
 xen/arch/x86/hvm/ioreq.c                |  2 ++
 xen/arch/x86/hvm/monitor.c              |  4 ++-
 xen/arch/x86/hvm/nestedhvm.c            |  4 +--
 xen/arch/x86/include/asm/altp2m.h       |  5 +++-
 xen/arch/x86/include/asm/hvm/hvm.h      | 12 ++++++++-
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 33 ++++++++++++++++---------
 xen/arch/x86/include/asm/hvm/vmx/vmx.h  |  2 +-
 xen/arch/x86/include/asm/p2m.h          | 23 +++++++++++++----
 xen/arch/x86/mm/Makefile                |  5 ++--
 xen/arch/x86/mm/hap/Makefile            |  2 +-
 xen/arch/x86/mm/p2m-basic.c             |  4 +--
 xen/arch/x86/oprofile/op_model_athlon.c |  2 +-
 xen/arch/x86/traps.c                    |  8 ++----
 xen/include/xen/ioreq.h                 | 10 ++++++++
 22 files changed, 147 insertions(+), 69 deletions(-)

--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:16:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:16:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767454.1178101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYju6-0000n8-0g; Tue, 30 Jul 2024 10:16:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767454.1178101; Tue, 30 Jul 2024 10:16:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYju5-0000n1-UG; Tue, 30 Jul 2024 10:16:25 +0000
Received: by outflank-mailman (input) for mailman id 767454;
 Tue, 30 Jul 2024 10:16: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=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYju4-0000j2-8k
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:16:24 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3ec1bc8-4e5c-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 12:16:21 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id A63103ED1B;
 Tue, 30 Jul 2024 06:16:19 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 9E6FB3ED1A;
 Tue, 30 Jul 2024 06:16:19 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id 692143ED17;
 Tue, 30 Jul 2024 06:16:15 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3ec1bc8-4e5c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=L6AETPgQkcYiX+QHAexZ2iwZP
	QZAtjMQ/7c+q/KthCY=; b=ZnAMwby1nAwHKozP7D5swP3F1R2OD9umUiN3T9NQG
	QBUQIVqr7Yw+9BFFT/k2oiA3np5pIjw8wbGbXqOJa3cB62bpSK7ff1Ey1+HTNT/J
	8flAUhreNsB8DI/7p2dQTz6I6qQ2m0ZAf1iMoR6HKyt/IKhWEqba2Yksh12MpyG0
	XU=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v5 01/13] x86: introduce AMD-V and Intel VT-x Kconfig options
Date: Tue, 30 Jul 2024 13:16:11 +0300
Message-Id: <eff6569e9499f49f0bbaf3dbd4589e47b65950e5.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 C10B3904-4E5C-11EF-9A5D-9625FCCAB05B-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

Introduce two new Kconfig options, AMD_SVM and INTEL_VMX, to allow code
specific to each virtualization technology to be separated and, when not
required, stripped.
CONFIG_AMD_SVM will be used to enable virtual machine extensions on platf=
orms
that implement the AMD Virtualization Technology (AMD-V).
CONFIG_INTEL_VMX will be used to enable virtual machine extensions on pla=
tforms
that implement the Intel Virtualization Technology (Intel VT-x).

Both features depend on HVM support.

Since, at this point, disabling any of them would cause Xen to not compil=
e,
the options are enabled by default if HVM and are not selectable by the u=
ser.

No functional change intended.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v5:
 - change kconfig option name SVM/VMX -> AMD_SVM/INTEL_VMX
changes in v3:
 - tag added
changes in v2:
 - simplify kconfig expression to def_bool HVM
 - keep file list in Makefile in alphabetical order
---
 xen/arch/x86/Kconfig         | 6 ++++++
 xen/arch/x86/hvm/Makefile    | 4 ++--
 xen/arch/x86/mm/Makefile     | 3 ++-
 xen/arch/x86/mm/hap/Makefile | 2 +-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 7e03e4bc55..fa5405e0d3 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -122,6 +122,12 @@ config HVM
=20
 	  If unsure, say Y.
=20
+config AMD_SVM
+	def_bool HVM
+
+config INTEL_VMX
+	def_bool HVM
+
 config XEN_SHSTK
 	bool "Supervisor Shadow Stacks"
 	depends on HAS_AS_CET_SS
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 3464191544..4c1fa5c6c2 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -1,5 +1,5 @@
-obj-y +=3D svm/
-obj-y +=3D vmx/
+obj-$(CONFIG_AMD_SVM) +=3D svm/
+obj-$(CONFIG_INTEL_VMX) +=3D vmx/
 obj-y +=3D viridian/
=20
 obj-y +=3D asid.o
diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
index 0803ac9297..52c5abdfee 100644
--- a/xen/arch/x86/mm/Makefile
+++ b/xen/arch/x86/mm/Makefile
@@ -10,6 +10,7 @@ obj-$(CONFIG_MEM_SHARING) +=3D mem_sharing.o
 obj-$(CONFIG_HVM) +=3D nested.o
 obj-$(CONFIG_HVM) +=3D p2m.o
 obj-y +=3D p2m-basic.o
-obj-$(CONFIG_HVM) +=3D p2m-ept.o p2m-pod.o p2m-pt.o
+obj-$(CONFIG_INTEL_VMX) +=3D p2m-ept.o
+obj-$(CONFIG_HVM) +=3D p2m-pod.o p2m-pt.o
 obj-y +=3D paging.o
 obj-y +=3D physmap.o
diff --git a/xen/arch/x86/mm/hap/Makefile b/xen/arch/x86/mm/hap/Makefile
index 8ef54b1faa..67c29b2162 100644
--- a/xen/arch/x86/mm/hap/Makefile
+++ b/xen/arch/x86/mm/hap/Makefile
@@ -3,4 +3,4 @@ obj-y +=3D guest_walk_2.o
 obj-y +=3D guest_walk_3.o
 obj-y +=3D guest_walk_4.o
 obj-y +=3D nested_hap.o
-obj-y +=3D nested_ept.o
+obj-$(CONFIG_INTEL_VMX) +=3D nested_ept.o
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:18:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:18:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767461.1178112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYjw8-0001Vt-Bd; Tue, 30 Jul 2024 10:18:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767461.1178112; Tue, 30 Jul 2024 10: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 1sYjw8-0001Vm-8l; Tue, 30 Jul 2024 10:18:32 +0000
Received: by outflank-mailman (input) for mailman id 767461;
 Tue, 30 Jul 2024 10:18:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYjw6-0001Vg-Ox
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:18:30 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f9d4f42-4e5d-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 12:18:28 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id C71A6352CE;
 Tue, 30 Jul 2024 06:18:26 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id BDF61352CB;
 Tue, 30 Jul 2024 06:18:26 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id 430E8352CA;
 Tue, 30 Jul 2024 06:18:22 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f9d4f42-4e5d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=fZgepJ99FLaK7AHeqjTZAWTib
	QvdlwNx7oQOyRXLmVM=; b=PjYmm5j2TCZQntY56hr0kLmHYUa/aIkKBsNAOzSve
	K6iC8xwmrgGSKfX3X/a6oc2cC2D3ahdKPUfGKV4W+Qr12EH7h2HEG4UA7s6hv22l
	T2p6p/ChqOSnN0jtt65axxcAyn8cD6jXlSj01+C9WzZWI9mmHYIURWtDgxxiESJY
	Zk=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Tamas K Lengyel <tamas@tklengyel.com>
Subject: [XEN PATCH v5 02/13] x86/monitor: guard altp2m usage
Date: Tue, 30 Jul 2024 13:18:18 +0300
Message-Id: <b0292af6629ad483dd0a437960585cf5aa3a03cd.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 0CA62FEA-4E5D-11EF-BF3D-92D9AF168FA5-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

Explicitly check whether altp2m is on for domain when getting altp2m inde=
x.
If explicit call to altp2m_active() always returns false, DCE will remove
call to altp2m_vcpu_idx().

p2m_get_mem_access() expects 0 as altp2m_idx parameter when altp2m not ac=
tive
or not supported, so 0 is a fallback value then.

The puspose of that is later to be able to disable altp2m support and
exclude its code from the build completely, when not supported by target
platform (as of now it's supported for VT-d only).

Also all other calls to altp2m_vcpu_idx() are guarded by altp2m_active(),=
 so
this change puts usage of this routine in line with the rest of code.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Tamas K Lengyel <tamas@tklengyel.com>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v5:
 - changed patch description
changes in v2:
 - patch description changed, removed VMX mentioning
 - guard by altp2m_active() instead of hvm_altp2m_supported()
---
 xen/arch/x86/hvm/monitor.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/monitor.c b/xen/arch/x86/hvm/monitor.c
index 2a8ff07ec9..74621000b2 100644
--- a/xen/arch/x86/hvm/monitor.c
+++ b/xen/arch/x86/hvm/monitor.c
@@ -262,6 +262,8 @@ bool hvm_monitor_check_p2m(unsigned long gla, gfn_t g=
fn, uint32_t pfec,
     struct vcpu *curr =3D current;
     vm_event_request_t req =3D {};
     paddr_t gpa =3D (gfn_to_gaddr(gfn) | (gla & ~PAGE_MASK));
+    unsigned int altp2m_idx =3D altp2m_active(curr->domain) ?
+                              altp2m_vcpu_idx(curr) : 0;
     int rc;
=20
     ASSERT(curr->arch.vm_event->send_event);
@@ -270,7 +272,7 @@ bool hvm_monitor_check_p2m(unsigned long gla, gfn_t g=
fn, uint32_t pfec,
      * p2m_get_mem_access() can fail from a invalid MFN and return -ESRC=
H
      * in which case access must be restricted.
      */
-    rc =3D p2m_get_mem_access(curr->domain, gfn, &access, altp2m_vcpu_id=
x(curr));
+    rc =3D p2m_get_mem_access(curr->domain, gfn, &access, altp2m_idx);
=20
     if ( rc =3D=3D -ESRCH )
         access =3D XENMEM_access_n;
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:20:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:20:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767468.1178122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYjyB-0002vq-Mf; Tue, 30 Jul 2024 10:20:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767468.1178122; Tue, 30 Jul 2024 10:20:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYjyB-0002vj-Jr; Tue, 30 Jul 2024 10:20:39 +0000
Received: by outflank-mailman (input) for mailman id 767468;
 Tue, 30 Jul 2024 10:20:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYjyA-0002vY-Gy
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:20:38 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5bf26ede-4e5d-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 12:20:36 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id BEE613543E;
 Tue, 30 Jul 2024 06:20:34 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id AA39C3543D;
 Tue, 30 Jul 2024 06:20:34 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id E6F173543C;
 Tue, 30 Jul 2024 06:20:29 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5bf26ede-4e5d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=Ily8J/O+RwpKuEMEVWmpbQY+A
	5ZLNIXdklAbdyftYqw=; b=gPvbyx6TzGtHVI55TGXvS4g+slOmVkqyoJJye03ro
	R2SwrVzrP2cmh6YepESBFyr45FEHtwuYWadfJgpgjIzPt9WDggLlI/1aJdcIiFP9
	HWvHiwjVOoyt5Fv9D3uS92QdngkesfsPCZFR5xScyCRTN9xfpOnb/pTY7a/S6UUc
	z4=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Tamas K Lengyel <tamas@tklengyel.com>
Subject: [XEN PATCH v5 03/13] x86: introduce CONFIG_ALTP2M Kconfig option
Date: Tue, 30 Jul 2024 13:20:26 +0300
Message-Id: <93cb9a86c76a8d7cb24df916a4049b92bfb24459.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 58BF2B84-4E5D-11EF-A1B7-92D9AF168FA5-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

Add new option to make altp2m code inclusion optional.
Currently altp2m implemented for Intel EPT only, so option is dependant o=
n VMX.
Also the prompt itself depends on EXPERT=3Dy, so that option is available
for fine-tuning, if one want to play around with it.

Use this option instead of more generic CONFIG_HVM option.
That implies the possibility to build hvm code without altp2m support,
hence we need to declare altp2m routines for hvm code to compile successf=
ully
(altp2m_vcpu_initialise(), altp2m_vcpu_destroy(), altp2m_vcpu_enable_ve()=
)

Also guard altp2m routines, so that they can be disabled completely in th=
e
build -- when target platform does not actually support altp2m
(AMD-V & ARM as of now).

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
CC: Tamas K Lengyel <tamas@tklengyel.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
changes in v5:
 - change kconfig option name VMX -> INTEL_VMX
changes in v4:
 - move static inline stub for p2m_altp2m_check() from under CONFIG_HVM u=
nder CONFIG_ALTP2M
 - keep AP2MGET_prepopulate/AP2MGET_query under CONFIG_ALTP2M as Jan sugg=
ested
changes in v3:
 - added help text
 - use conditional prompt depending on EXPERT=3Dy
 - corrected & extended patch description
 - put a blank line before #ifdef CONFIG_ALTP2M
 - sqashed in a separate patch for guarding altp2m code with CONFIG_ALTP2=
M option
---
 xen/arch/x86/Kconfig               | 11 +++++++++++
 xen/arch/x86/include/asm/altp2m.h  |  5 ++++-
 xen/arch/x86/include/asm/hvm/hvm.h |  2 +-
 xen/arch/x86/include/asm/p2m.h     | 23 ++++++++++++++++++-----
 xen/arch/x86/mm/Makefile           |  2 +-
 5 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index fa5405e0d3..cd81fd1675 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -358,6 +358,17 @@ config REQUIRE_NX
 	  was unavailable. However, if enabled, Xen will no longer boot on
 	  any CPU which is lacking NX support.
=20
+config ALTP2M
+	bool "Alternate P2M support" if EXPERT
+	default y
+	depends on INTEL_VMX
+	help
+	  Alternate-p2m allows a guest to manage multiple p2m guest physical
+	  "memory views" (as opposed to a single p2m).
+	  Useful for memory introspection.
+
+	  If unsure, stay with defaults.
+
 endmenu
=20
 source "common/Kconfig"
diff --git a/xen/arch/x86/include/asm/altp2m.h b/xen/arch/x86/include/asm=
/altp2m.h
index e5e59cbd68..c57a8c5588 100644
--- a/xen/arch/x86/include/asm/altp2m.h
+++ b/xen/arch/x86/include/asm/altp2m.h
@@ -7,7 +7,7 @@
 #ifndef __ASM_X86_ALTP2M_H
 #define __ASM_X86_ALTP2M_H
=20
-#ifdef CONFIG_HVM
+#ifdef CONFIG_ALTP2M
=20
 #include <xen/types.h>
 #include <xen/sched.h>         /* for struct vcpu, struct domain */
@@ -39,6 +39,9 @@ static inline bool altp2m_active(const struct domain *d=
)
=20
 /* Only declaration is needed. DCE will optimise it out when linking. */
 uint16_t altp2m_vcpu_idx(const struct vcpu *v);
+void altp2m_vcpu_initialise(struct vcpu *v);
+void altp2m_vcpu_destroy(struct vcpu *v);
+int altp2m_vcpu_enable_ve(struct vcpu *v, gfn_t gfn);
 void altp2m_vcpu_disable_ve(struct vcpu *v);
=20
 #endif
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/as=
m/hvm/hvm.h
index 277648dd18..34824af6df 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -670,7 +670,7 @@ static inline bool hvm_hap_supported(void)
 /* returns true if hardware supports alternate p2m's */
 static inline bool hvm_altp2m_supported(void)
 {
-    return hvm_funcs.caps.altp2m;
+    return IS_ENABLED(CONFIG_ALTP2M) && hvm_funcs.caps.altp2m;
 }
=20
 /* Returns true if we have the minimum hardware requirements for nested =
virt */
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2=
m.h
index c1478ffc36..e6de37f108 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -577,7 +577,7 @@ static inline gfn_t mfn_to_gfn(const struct domain *d=
, mfn_t mfn)
         return _gfn(mfn_x(mfn));
 }
=20
-#ifdef CONFIG_HVM
+#ifdef CONFIG_ALTP2M
 #define AP2MGET_prepopulate true
 #define AP2MGET_query false
=20
@@ -589,6 +589,16 @@ static inline gfn_t mfn_to_gfn(const struct domain *=
d, mfn_t mfn)
 int altp2m_get_effective_entry(struct p2m_domain *ap2m, gfn_t gfn, mfn_t=
 *mfn,
                                p2m_type_t *t, p2m_access_t *a,
                                bool prepopulate);
+#else
+static inline int _altp2m_get_effective_entry(struct p2m_domain *ap2m,
+                                             gfn_t gfn, mfn_t *mfn,
+                                             p2m_type_t *t, p2m_access_t=
 *a)
+{
+    ASSERT_UNREACHABLE();
+    return -EOPNOTSUPP;
+}
+#define altp2m_get_effective_entry(ap2m, gfn, mfn, t, a, prepopulate) \
+        _altp2m_get_effective_entry(ap2m, gfn, mfn, t, a)
 #endif
=20
 /* Init the datastructures for later use by the p2m code */
@@ -914,9 +924,6 @@ static inline bool p2m_set_altp2m(struct vcpu *v, uns=
igned int idx)
 /* Switch alternate p2m for a single vcpu */
 bool p2m_switch_vcpu_altp2m_by_id(struct vcpu *v, unsigned int idx);
=20
-/* Check to see if vcpu should be switched to a different p2m. */
-void p2m_altp2m_check(struct vcpu *v, uint16_t idx);
-
 /* Flush all the alternate p2m's for a domain */
 void p2m_flush_altp2m(struct domain *d);
=20
@@ -952,9 +959,15 @@ int p2m_set_altp2m_view_visibility(struct domain *d,=
 unsigned int altp2m_idx,
                                    uint8_t visible);
 #else /* !CONFIG_HVM */
 struct p2m_domain *p2m_get_altp2m(struct vcpu *v);
-static inline void p2m_altp2m_check(struct vcpu *v, uint16_t idx) {}
 #endif /* CONFIG_HVM */
=20
+#ifdef CONFIG_ALTP2M
+/* Check to see if vcpu should be switched to a different p2m. */
+void p2m_altp2m_check(struct vcpu *v, uint16_t idx);
+#else
+static inline void p2m_altp2m_check(struct vcpu *v, uint16_t idx) {}
+#endif
+
 /* p2m access to IOMMU flags */
 static inline unsigned int p2m_access_to_iommu_flags(p2m_access_t p2ma)
 {
diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
index 52c5abdfee..0345388359 100644
--- a/xen/arch/x86/mm/Makefile
+++ b/xen/arch/x86/mm/Makefile
@@ -1,7 +1,7 @@
 obj-y +=3D shadow/
 obj-$(CONFIG_HVM) +=3D hap/
=20
-obj-$(CONFIG_HVM) +=3D altp2m.o
+obj-$(CONFIG_ALTP2M) +=3D altp2m.o
 obj-$(CONFIG_HVM) +=3D guest_walk_2.o guest_walk_3.o guest_walk_4.o
 obj-$(CONFIG_SHADOW_PAGING) +=3D guest_walk_4.o
 obj-$(CONFIG_MEM_ACCESS) +=3D mem_access.o
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:22:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:22:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767477.1178131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYk0F-0003Yr-4q; Tue, 30 Jul 2024 10:22:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767477.1178131; Tue, 30 Jul 2024 10:22: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 1sYk0F-0003Yk-2J; Tue, 30 Jul 2024 10:22:47 +0000
Received: by outflank-mailman (input) for mailman id 767477;
 Tue, 30 Jul 2024 10:22: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=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYk0D-0003Ya-Mm
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:22:45 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a7d6a8dc-4e5d-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 12:22:43 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id E3BD43544F;
 Tue, 30 Jul 2024 06:22:41 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id DC67D3544E;
 Tue, 30 Jul 2024 06:22:41 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id 3B20F3544A;
 Tue, 30 Jul 2024 06:22:37 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a7d6a8dc-4e5d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=TrLfjt8TdLelwfW8Lze4IzwKh
	TmEd5lEptuf7ypFWEE=; b=nnZs0xj86rR+RqSmSfDvwtfQ1DrI5FMbwPfiQxZQo
	dgxNsf44mYHw9SR+DTCGlht4bY5OrtbLUugGwUyG6JbXtwLI5XHBrQ0elsnOXdtv
	bZ7qDPfdri17x1N+gzwBbyg6Jlc6vO7OG90ufu4mQ41CLMKgygcA4aLtjOTQURmb
	eg=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>
Subject: [XEN PATCH v5 04/13] x86: introduce using_{svm,vmx}() helpers
Date: Tue, 30 Jul 2024 13:22:34 +0300
Message-Id: <df0f9e12216c40ce8dc4804ee76bbf6ece1db56e.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 A5378916-4E5D-11EF-A135-92D9AF168FA5-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

As we now have AMD_SVM/INTEL_VMX config options for enabling/disabling th=
ese
features completely in the build, we need some build-time checks to ensur=
e that
vmx/svm code can be used and things compile. Macros cpu_has_{svm,vmx} use=
d to be
doing such checks at runtime, however they do not check if SVM/VMX suppor=
t is
enabled in the build.

Also cpu_has_{svm,vmx} can potentially be called from non-{VMX,SVM} build
yet running on {VMX,SVM}-enabled CPU, so would correctly indicate that VM=
X/SVM
is indeed supported by CPU, but code to drive it can't be used.

New routines using_{vmx,svm}() indicate that both CPU _and_ build provide
corresponding technology support, while cpu_has_{vmx,svm} still remains f=
or
informational runtime purpose, just as their naming suggests.

These new helpers are used right away in several sites, namely guard call=
s to
start_nested_{svm,vmx} and start_{svm,vmx} to fix a build when INTEL_VMX=3D=
n or
AMD_SVM=3Dn.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
changes in v5:
 - change kconfig option name SVM/VMX -> AMD_SVM/INTEL_VMX
changes in v4:
 - make using_{vmx,svm} static inline functions instead of macros
 - squash patch with 2 other patches where using_{vmx,svm} are being used
 - changed patch description
changes in v3:
 - introduce separate macros instead of modifying behaviour of cpu_has_{v=
mx,svm}
---
 xen/arch/x86/hvm/hvm.c             |  4 ++--
 xen/arch/x86/hvm/nestedhvm.c       |  4 ++--
 xen/arch/x86/include/asm/hvm/hvm.h | 10 ++++++++++
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7f4b627b1f..057c61b4c3 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -155,9 +155,9 @@ static int __init cf_check hvm_enable(void)
 {
     const struct hvm_function_table *fns =3D NULL;
=20
-    if ( cpu_has_vmx )
+    if ( using_vmx() )
         fns =3D start_vmx();
-    else if ( cpu_has_svm )
+    else if ( using_svm() )
         fns =3D start_svm();
=20
     if ( fns =3D=3D NULL )
diff --git a/xen/arch/x86/hvm/nestedhvm.c b/xen/arch/x86/hvm/nestedhvm.c
index 451c4da6d4..5009167372 100644
--- a/xen/arch/x86/hvm/nestedhvm.c
+++ b/xen/arch/x86/hvm/nestedhvm.c
@@ -155,9 +155,9 @@ static int __init cf_check nestedhvm_setup(void)
      * done, so that if (for example) HAP is disabled, nested virt is
      * disabled as well.
      */
-    if ( cpu_has_vmx )
+    if ( using_vmx() )
         start_nested_vmx(&hvm_funcs);
-    else if ( cpu_has_svm )
+    else if ( using_svm() )
         start_nested_svm(&hvm_funcs);
=20
     return 0;
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/as=
m/hvm/hvm.h
index 34824af6df..518ba5319b 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -363,6 +363,16 @@ int hvm_copy_context_and_params(struct domain *dst, =
struct domain *src);
=20
 int hvm_get_param(struct domain *d, uint32_t index, uint64_t *value);
=20
+static inline bool using_vmx(void)
+{
+    return IS_ENABLED(CONFIG_INTEL_VMX) && cpu_has_vmx;
+}
+
+static inline bool using_svm(void)
+{
+    return IS_ENABLED(CONFIG_AMD_SVM) && cpu_has_svm;
+}
+
 #ifdef CONFIG_HVM
=20
 #define hvm_get_guest_tsc(v) hvm_get_guest_tsc_fixed(v, 0)
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:24:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:24:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767485.1178141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYk2G-00046s-GS; Tue, 30 Jul 2024 10:24:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767485.1178141; Tue, 30 Jul 2024 10:24: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 1sYk2G-00046l-Ds; Tue, 30 Jul 2024 10:24:52 +0000
Received: by outflank-mailman (input) for mailman id 767485;
 Tue, 30 Jul 2024 10:24: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=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYk2F-00046b-L8
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:24:51 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f2e2c2be-4e5d-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 12:24:49 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 3AEC2354A5;
 Tue, 30 Jul 2024 06:24:48 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 334A5354A4;
 Tue, 30 Jul 2024 06:24:48 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id C9948354A1;
 Tue, 30 Jul 2024 06:24:44 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2e2c2be-4e5d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=a9yGdN5UJg74MWMxngSXjpTTe
	p0k3IjQWp09AuJ1Dr4=; b=XwrMsGtXTcFgWsWWkAnoLbo9HfyuFdQuWG1ZFUgyT
	9qP9gHtzWXZAiX41CWso32jrJdFkHMTN+/zhpUCnS0AnPpKtEmlEfsSE7KURkg2S
	I/mUWyxbOcgS29RyZTi16gOGRA6+CxNvrQfODwptHjADsXTGvsnAlOuuRpbDlzKE
	3k=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v5 05/13] x86/p2m: guard EPT functions with using_vmx() check
Date: Tue, 30 Jul 2024 13:24:41 +0300
Message-Id: <cb0057575bcc2d31ad9929c1cfd7476100962c91.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 F0AA9974-4E5D-11EF-963E-92D9AF168FA5-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

Replace cpu_has_vmx check with using_vmx(), so that DCE would remove call=
s
to functions ept_p2m_init() and ept_p2m_uninit() on non-VMX build.
Since currently Intel EPT implementation depends on CONFIG_INTEL_VMX conf=
ig
option, when VMX is off these functions are unavailable.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v5:
 - changed description
changes in v4:
 - changed description a bit
 - added tag
 - adjusted call to using_vmx(), as it has become an inline function
changes in v3:
 - using_vmx instead of IS_ENABLED(CONFIG_VMX)
 - updated description
---
 xen/arch/x86/mm/p2m-basic.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/mm/p2m-basic.c b/xen/arch/x86/mm/p2m-basic.c
index 08007a687c..e126fda267 100644
--- a/xen/arch/x86/mm/p2m-basic.c
+++ b/xen/arch/x86/mm/p2m-basic.c
@@ -40,7 +40,7 @@ static int p2m_initialise(struct domain *d, struct p2m_=
domain *p2m)
     p2m_pod_init(p2m);
     p2m_nestedp2m_init(p2m);
=20
-    if ( hap_enabled(d) && cpu_has_vmx )
+    if ( hap_enabled(d) && using_vmx() )
         ret =3D ept_p2m_init(p2m);
     else
         p2m_pt_init(p2m);
@@ -72,7 +72,7 @@ struct p2m_domain *p2m_init_one(struct domain *d)
 void p2m_free_one(struct p2m_domain *p2m)
 {
     p2m_free_logdirty(p2m);
-    if ( hap_enabled(p2m->domain) && cpu_has_vmx )
+    if ( hap_enabled(p2m->domain) && using_vmx() )
         ept_p2m_uninit(p2m);
     free_cpumask_var(p2m->dirty_cpumask);
     xfree(p2m);
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:27:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:27:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767496.1178151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYk4F-0004tq-Rr; Tue, 30 Jul 2024 10:26:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767496.1178151; Tue, 30 Jul 2024 10:26: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 1sYk4F-0004tj-P1; Tue, 30 Jul 2024 10:26:55 +0000
Received: by outflank-mailman (input) for mailman id 767496;
 Tue, 30 Jul 2024 10:26: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=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYk4E-0004td-PL
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:26:54 +0000
Received: from pb-smtp2.pobox.com (pb-smtp2.pobox.com [64.147.108.71])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c29963b-4e5e-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 12:26:53 +0200 (CEST)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id EF6652C073;
 Tue, 30 Jul 2024 06:26:50 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1])
 by pb-smtp2.pobox.com (Postfix) with ESMTP id E6F752C072;
 Tue, 30 Jul 2024 06:26:50 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp2.pobox.com (Postfix) with ESMTPSA id 86B932C071;
 Tue, 30 Jul 2024 06:26:49 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c29963b-4e5e-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=+Yl11oadxrSru19AkHHp51vGZ
	ym9OE6VsrHHN87lIL4=; b=DOTjPg11+8cv+HaBfoTSiwQoJsAzKiIdihNEQRpK8
	PkeDeT9T0S8RjzbsAhrxPHvfotUz8tRS/2Yc5U/WoaRvrJ3QjWrUl97jw+466Pv4
	YJt0TG1Zrr3BJwBj8OrrdbcbeZwE1ElKAfHORxVJOjNcTq0xnbK49P7v/a/a0Zcc
	Wg=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v5 06/13] x86/traps: guard vmx specific functions with usinc_vmx() check
Date: Tue, 30 Jul 2024 13:26:47 +0300
Message-Id: <06e0df650a0b06ba3f56501696e455f7d4be41ce.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 3B0278A2-4E5E-11EF-AF65-BAC1940A682E-90055647!pb-smtp2.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

Replace cpu_has_vmx check with using_vmx(), so that not only VMX support =
in CPU
is being checked at runtime, but also at build time we ensure the availab=
ility
of functions vmx_vmcs_enter() & vmx_vmcs_exit().

Also since CONFIG_VMX is checked in using_vmx and it depends on CONFIG_HV=
M,
we can drop #ifdef CONFIG_HVM lines around using_vmx.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v4:
 - adjusted call to using_vmx(), as it has become an inline function
 - added tag
 - description changed a bit for more clarity
changes in v3:
 -using_vmx instead of IS_ENABLED(CONFIG_VMX)
 - updated description
---
 xen/arch/x86/traps.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index ee91fc56b1..d2af6d70d2 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -676,7 +676,6 @@ void vcpu_show_execution_state(struct vcpu *v)
=20
     vcpu_pause(v); /* acceptably dangerous */
=20
-#ifdef CONFIG_HVM
     /*
      * For VMX special care is needed: Reading some of the register stat=
e will
      * require VMCS accesses. Engaging foreign VMCSes involves acquiring=
 of a
@@ -684,12 +683,11 @@ void vcpu_show_execution_state(struct vcpu *v)
      * region. Despite this being a layering violation, engage the VMCS =
right
      * here. This then also avoids doing so several times in close succe=
ssion.
      */
-    if ( cpu_has_vmx && is_hvm_vcpu(v) )
+    if ( using_vmx() && is_hvm_vcpu(v) )
     {
         ASSERT(!in_irq());
         vmx_vmcs_enter(v);
     }
-#endif
=20
     /* Prevent interleaving of output. */
     flags =3D console_lock_recursive_irqsave();
@@ -714,10 +712,8 @@ void vcpu_show_execution_state(struct vcpu *v)
         console_unlock_recursive_irqrestore(flags);
     }
=20
-#ifdef CONFIG_HVM
-    if ( cpu_has_vmx && is_hvm_vcpu(v) )
+    if ( using_vmx() && is_hvm_vcpu(v) )
         vmx_vmcs_exit(v);
-#endif
=20
     vcpu_unpause(v);
 }
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:29:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:29:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767503.1178161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYk6J-0005wK-6s; Tue, 30 Jul 2024 10:29:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767503.1178161; Tue, 30 Jul 2024 10:29:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYk6J-0005wD-3g; Tue, 30 Jul 2024 10:29:03 +0000
Received: by outflank-mailman (input) for mailman id 767503;
 Tue, 30 Jul 2024 10:29:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYk6H-0005w7-Jf
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:29:01 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87db5eef-4e5e-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 12:28:59 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 97C073EDC1;
 Tue, 30 Jul 2024 06:28:57 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 911E63EDC0;
 Tue, 30 Jul 2024 06:28:57 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id CE8A63EDBF;
 Tue, 30 Jul 2024 06:28:53 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87db5eef-4e5e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=HOwAYjPRmMki8TMFevxWhhW05
	eW/GeGVd0EhWHsG0rw=; b=TZ/W6ZrSSIDeEc39jO8+SJMPDFyU/aXe2WlyJlSdQ
	wL8GHA0A/Go8CXcEeJTZEOw8N777X7vnsXhbYauHTEUTNcZI51eOJWWzyiunmwW6
	AyeAYbDSdk0M45hPfaDyiKlesmpFxr/nAH2ouzH1RE7fKgqFeofa/SiJjhiDYiOm
	Xg=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v5 07/13] x86/PV: guard svm specific functions with usinc_svm() check
Date: Tue, 30 Jul 2024 13:28:50 +0300
Message-Id: <01c571eec29f7842d4f701bf0afd1cd072bb8289.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 851835C6-4E5E-11EF-A835-9625FCCAB05B-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

Replace cpu_has_svm check with using_svm(), so that not only SVM support =
in CPU
is being checked at runtime, but also at build time we ensure the availab=
ility
of functions svm_load_segs() and svm_load_segs_prefetch().

Since SVM depends on HVM, it can be used alone.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v4:
 - changed patch subject line
 - adjusted call to using_svm(), as it has become an inline function
 - use #ifdef CONFIG_PV
 - description changed a bit for more clarity
 - added tag
changes in v3:
 - using_svm instead of IS_ENABLED(CONFIG_SVM)
 - updated description
---
 xen/arch/x86/domain.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index ccadfe0c9e..05cb9f7a4c 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1732,11 +1732,9 @@ static void load_segments(struct vcpu *n)
         if ( !(n->arch.flags & TF_kernel_mode) )
             SWAP(gsb, gss);
=20
-#ifdef CONFIG_HVM
-        if ( cpu_has_svm && (uregs->fs | uregs->gs) <=3D 3 )
+        if ( using_svm() && (uregs->fs | uregs->gs) <=3D 3 )
             fs_gs_done =3D svm_load_segs(n->arch.pv.ldt_ents, LDT_VIRT_S=
TART(n),
                                        n->arch.pv.fs_base, gsb, gss);
-#endif
     }
=20
     if ( !fs_gs_done )
@@ -2049,9 +2047,9 @@ static void __context_switch(void)
=20
     write_ptbase(n);
=20
-#if defined(CONFIG_PV) && defined(CONFIG_HVM)
+#ifdef CONFIG_PV
     /* Prefetch the VMCB if we expect to use it later in the context swi=
tch */
-    if ( cpu_has_svm && is_pv_64bit_domain(nd) && !is_idle_domain(nd) )
+    if ( using_svm() && is_pv_64bit_domain(nd) && !is_idle_domain(nd) )
         svm_load_segs_prefetch();
 #endif
=20
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:31:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:31:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767510.1178171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYk8L-0007MX-HZ; Tue, 30 Jul 2024 10:31:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767510.1178171; Tue, 30 Jul 2024 10:31:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYk8L-0007MQ-Ex; Tue, 30 Jul 2024 10:31:09 +0000
Received: by outflank-mailman (input) for mailman id 767510;
 Tue, 30 Jul 2024 10:31:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYk8K-0007MK-QC
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:31:08 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2e688df-4e5e-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 12:31:05 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 060C13EF70;
 Tue, 30 Jul 2024 06:31:04 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id DD68B3EF6F;
 Tue, 30 Jul 2024 06:31:03 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id EE0CC3EF65;
 Tue, 30 Jul 2024 06:30:59 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2e688df-4e5e-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=a3JUqFJ0pv4wjciXe5achXNd8
	po6sg6Fn2xTByUFn8o=; b=JKclh5kv4MX8CJCxgzGaMgSCurXif/XzzhSWGwvBG
	7Y5NIoyN5/nFK1+B16niIigUylBnUmcfPWfiEhZkztUgBfXFAaTXXrSpQI3PUMy/
	axEzYaUkRlWkPun5TQh69M7U4peWbjh6jDikdbTkCIJxFoLRUapoU3INZp4LehYP
	FA=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v5 08/13] x86/oprofile: guard svm specific symbols with CONFIG_AMD_SVM
Date: Tue, 30 Jul 2024 13:30:57 +0300
Message-Id: <2a4f65ddae78d19d266224b0a16011e5a953bdf9.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 D0459FDE-4E5E-11EF-97F8-9625FCCAB05B-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

The symbol svm_stgi_label is AMD-V specific so guard its usage in common =
code
with CONFIG_AMD_SVM.

Since SVM depends on HVM, it can be used alone.
Also, use #ifdef instead of #if.

No functional change intended.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v5:
 - change kconfig option name SVM -> AMD_SVM
---
 xen/arch/x86/oprofile/op_model_athlon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/oprofile/op_model_athlon.c b/xen/arch/x86/oprof=
ile/op_model_athlon.c
index 69fd3fcc86..782fa606ee 100644
--- a/xen/arch/x86/oprofile/op_model_athlon.c
+++ b/xen/arch/x86/oprofile/op_model_athlon.c
@@ -320,7 +320,7 @@ static int cf_check athlon_check_ctrs(
 	struct vcpu *v =3D current;
 	unsigned int const nr_ctrs =3D model->num_counters;
=20
-#if CONFIG_HVM
+#ifdef CONFIG_AMD_SVM
 	struct cpu_user_regs *guest_regs =3D guest_cpu_user_regs();
=20
 	if (!guest_mode(regs) &&
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:33:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:33:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767517.1178181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkAK-0007vS-T3; Tue, 30 Jul 2024 10:33:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767517.1178181; Tue, 30 Jul 2024 10: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 1sYkAK-0007vL-QP; Tue, 30 Jul 2024 10:33:12 +0000
Received: by outflank-mailman (input) for mailman id 767517;
 Tue, 30 Jul 2024 10:33:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYkAK-0007vD-4k
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:33:12 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1ddc727d-4e5f-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 12:33:11 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id C8ED83EF89;
 Tue, 30 Jul 2024 06:33:09 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id C0B523EF88;
 Tue, 30 Jul 2024 06:33:09 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id 68EAC3EF87;
 Tue, 30 Jul 2024 06:33:06 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ddc727d-4e5f-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=TYiTEy4cUxeBQmG3mkiO34ODY
	8YMOMAHGuXGuqNEmg4=; b=b8NKrxhlTE9+AcL/Xyfp2QPq0pnohHav+Hz1on2dq
	aAWDm2DTADa1yu4GH42GK5pbEU+E8xiOjd0LTDsOXlTK58nUP2GHC8HaV2jBx2U1
	2suGzTELfA+KbAbvrHrQ/oF/YwvsVl9zPKxsjL5Oi1Oe7wrFqkYJxVtG1ygtcQ6X
	PM=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Paul Durrant <paul@xen.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [XEN PATCH v5 09/13] x86/vmx: guard access to cpu_has_vmx_* in common code
Date: Tue, 30 Jul 2024 13:33:03 +0300
Message-Id: <c2961c8b67041883ce5a5f6d0511a31dc7fbe22d.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 1BA55366-4E5F-11EF-BB9B-9625FCCAB05B-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

There're several places in common code, outside of arch/x86/hvm/vmx,
where cpu_has_vmx_* get accessed without checking whether VMX supported f=
irst.
These macros rely on global variables defined in vmx code, so when VMX su=
pport
is disabled accesses to these variables turn into build failures.

To overcome these failures, build-time check is done before accessing glo=
bal
variables, so that DCE would remove these variables.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Paul Durrant <paul@xen.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v5:
 - change kconfig option name VMX -> INTEL_VMX
 - do not change .c files, only modify macros in vmcs.h
changes in v4:
 - use IS_ENABLED(CONFIG_VMX) instead of using_vmx
changes in v3:
 - using_vmx instead of cpu_has_vmx
 - clarify description on why this change needed
---
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 33 ++++++++++++++++---------
 1 file changed, 22 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/inclu=
de/asm/hvm/vmx/vmcs.h
index 58140af691..34898d9612 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -300,13 +300,15 @@ extern u64 vmx_ept_vpid_cap;
 #define cpu_has_wbinvd_exiting \
     (vmx_secondary_exec_control & SECONDARY_EXEC_WBINVD_EXITING)
 #define cpu_has_vmx_virtualize_apic_accesses \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSE=
S)
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSE=
S)
 #define cpu_has_vmx_tpr_shadow \
     (vmx_cpu_based_exec_control & CPU_BASED_TPR_SHADOW)
 #define cpu_has_vmx_vnmi \
     (vmx_pin_based_exec_control & PIN_BASED_VIRTUAL_NMIS)
 #define cpu_has_vmx_msr_bitmap \
-    (vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_MSR_BITMAP)
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_MSR_BITMAP)
 #define cpu_has_vmx_secondary_exec_control \
     (vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CONTROLS)
 #define cpu_has_vmx_tertiary_exec_control \
@@ -316,11 +318,13 @@ extern u64 vmx_ept_vpid_cap;
 #define cpu_has_vmx_dt_exiting \
     (vmx_secondary_exec_control & SECONDARY_EXEC_DESCRIPTOR_TABLE_EXITIN=
G)
 #define cpu_has_vmx_rdtscp \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_RDTSCP)
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_RDTSCP)
 #define cpu_has_vmx_vpid \
     (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_VPID)
 #define cpu_has_monitor_trap_flag \
-    (vmx_cpu_based_exec_control & CPU_BASED_MONITOR_TRAP_FLAG)
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     vmx_cpu_based_exec_control & CPU_BASED_MONITOR_TRAP_FLAG)
 #define cpu_has_vmx_pat \
     (vmx_vmentry_control & VM_ENTRY_LOAD_GUEST_PAT)
 #define cpu_has_vmx_efer \
@@ -333,13 +337,17 @@ extern u64 vmx_ept_vpid_cap;
 #define cpu_has_vmx_ple \
     (vmx_secondary_exec_control & SECONDARY_EXEC_PAUSE_LOOP_EXITING)
 #define cpu_has_vmx_invpcid \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_INVPCID)
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_INVPCID)
 #define cpu_has_vmx_apic_reg_virt \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_APIC_REGISTER_VIRT)
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_APIC_REGISTER_VIRT)
 #define cpu_has_vmx_virtual_intr_delivery \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY)
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY)
 #define cpu_has_vmx_virtualize_x2apic_mode \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE)
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE)
 #define cpu_has_vmx_posted_intr_processing \
     (vmx_pin_based_exec_control & PIN_BASED_POSTED_INTERRUPT)
 #define cpu_has_vmx_vmcs_shadowing \
@@ -347,14 +355,17 @@ extern u64 vmx_ept_vpid_cap;
 #define cpu_has_vmx_vmfunc \
     (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_VM_FUNCTIONS)
 #define cpu_has_vmx_virt_exceptions \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_VIRT_EXCEPTIONS)
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_VIRT_EXCEPTIONS)
 #define cpu_has_vmx_pml \
     (vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_PML)
 #define cpu_has_vmx_mpx \
-    ((vmx_vmexit_control & VM_EXIT_CLEAR_BNDCFGS) && \
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     (vmx_vmexit_control & VM_EXIT_CLEAR_BNDCFGS) && \
      (vmx_vmentry_control & VM_ENTRY_LOAD_BNDCFGS))
 #define cpu_has_vmx_xsaves \
-    (vmx_secondary_exec_control & SECONDARY_EXEC_XSAVES)
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     vmx_secondary_exec_control & SECONDARY_EXEC_XSAVES)
 #define cpu_has_vmx_tsc_scaling \
     (vmx_secondary_exec_control & SECONDARY_EXEC_TSC_SCALING)
 #define cpu_has_vmx_bus_lock_detection \
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:35:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:35:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767525.1178191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkCO-000051-Bb; Tue, 30 Jul 2024 10:35:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767525.1178191; Tue, 30 Jul 2024 10:35: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 1sYkCO-00004t-8g; Tue, 30 Jul 2024 10:35:20 +0000
Received: by outflank-mailman (input) for mailman id 767525;
 Tue, 30 Jul 2024 10:35:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYkCN-0008WT-EE
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:35:19 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 699d59dc-4e5f-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 12:35:18 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id AEB7E3EF9A;
 Tue, 30 Jul 2024 06:35:16 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id A72C93EF99;
 Tue, 30 Jul 2024 06:35:16 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id 4C14C3EF98;
 Tue, 30 Jul 2024 06:35:12 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 699d59dc-4e5f-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=ZWslkpob5/V135B4z/OMGz0wX
	maU/UJuAqh6Fq+RDfA=; b=XOp0rSK/zbpFTz0gM5wxM1MKCs75QVNnw8ssI6Xju
	okdVvjsIjTpS5shTxmaYiOwdFfhRb7oR5uf6D40D0a476aBDo5Z/chbhQsftjoNq
	JcwipDge7w72QFTHK/MugtEUoBFpbeadF/Y1coPlvMxzZPkZP/Si77FMipfg8hNC
	1I=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>
Subject: [XEN PATCH v5 10/13] x86/vpmu: guard calls to vmx/svm functions
Date: Tue, 30 Jul 2024 13:35:09 +0300
Message-Id: <fda81012adec8c4993acd83076f1a46f2d71d668.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 66ADABE2-4E5F-11EF-ABA6-9625FCCAB05B-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

If VMX/SVM disabled in the build, we may still want to have vPMU drivers =
for
PV guests. Yet in such case before using VMX/SVM features and functions w=
e have
to explicitly check if they're available in the build. For this purpose
(and also not to complicate conditionals) two helpers introduced --
is_{vmx,svm}_vcpu(v) that check both HVM & VMX/SVM conditions at the same=
 time,
and they replace is_hvm_vcpu(v) macro in Intel/AMD PMU drivers.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v5:
- change kconfig option name SVM/VMX -> AMD_SVM/INTEL_VMX
 - replace is_hvm_vcpu() with is_{svm,vmx}_vcpu()
changes in v4:
 - use IS_ENABLED(CONFIG_{VMX,SVM}) instead of using_{vmx,svm}
 - fix typo
changes in v3:
 - introduced macro is_{vmx,svm}_vcpu(v)
 - changed description
 - reordered patch, do not modify conditionals w/ cpu_has_vmx_msr_bitmap =
check
---
 xen/arch/x86/cpu/vpmu_amd.c   | 11 ++++++-----
 xen/arch/x86/cpu/vpmu_intel.c | 32 +++++++++++++++++---------------
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c
index 97e6315bd9..a082450e92 100644
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -27,6 +27,7 @@
 #define is_pmu_enabled(msr) ((msr) & (1ULL << MSR_F10H_EVNTSEL_EN_SHIFT)=
)
 #define set_guest_mode(msr) ((msr) |=3D (1ULL << MSR_F10H_EVNTSEL_GO_SHI=
FT))
 #define is_overflowed(msr) (!((msr) & (1ULL << (MSR_F10H_COUNTER_LENGTH =
- 1))))
+#define is_svm_vcpu(v) (IS_ENABLED(CONFIG_AMD_SVM) && is_hvm_vcpu(v))
=20
 static unsigned int __read_mostly num_counters;
 static const u32 __read_mostly *counters;
@@ -289,7 +290,7 @@ static int cf_check amd_vpmu_save(struct vcpu *v,  bo=
ol to_guest)
=20
     context_save(v);
=20
-    if ( !vpmu_is_set(vpmu, VPMU_RUNNING) && is_hvm_vcpu(v) &&
+    if ( !vpmu_is_set(vpmu, VPMU_RUNNING) && is_svm_vcpu(v) &&
          is_msr_bitmap_on(vpmu) )
         amd_vpmu_unset_msr_bitmap(v);
=20
@@ -349,7 +350,7 @@ static int cf_check amd_vpmu_do_wrmsr(unsigned int ms=
r, uint64_t msr_content)
         return -EINVAL;
=20
     /* For all counters, enable guest only mode for HVM guest */
-    if ( is_hvm_vcpu(v) && (type =3D=3D MSR_TYPE_CTRL) &&
+    if ( is_svm_vcpu(v) && (type =3D=3D MSR_TYPE_CTRL) &&
          !is_guest_mode(msr_content) )
     {
         set_guest_mode(msr_content);
@@ -363,7 +364,7 @@ static int cf_check amd_vpmu_do_wrmsr(unsigned int ms=
r, uint64_t msr_content)
             return 0;
         vpmu_set(vpmu, VPMU_RUNNING);
=20
-        if ( is_hvm_vcpu(v) && is_msr_bitmap_on(vpmu) )
+        if ( is_svm_vcpu(v) && is_msr_bitmap_on(vpmu) )
              amd_vpmu_set_msr_bitmap(v);
     }
=20
@@ -372,7 +373,7 @@ static int cf_check amd_vpmu_do_wrmsr(unsigned int ms=
r, uint64_t msr_content)
         (is_pmu_enabled(msr_content) =3D=3D 0) && vpmu_is_set(vpmu, VPMU=
_RUNNING) )
     {
         vpmu_reset(vpmu, VPMU_RUNNING);
-        if ( is_hvm_vcpu(v) && is_msr_bitmap_on(vpmu) )
+        if ( is_svm_vcpu(v) && is_msr_bitmap_on(vpmu) )
              amd_vpmu_unset_msr_bitmap(v);
         release_pmu_ownership(PMU_OWNER_HVM);
     }
@@ -415,7 +416,7 @@ static void cf_check amd_vpmu_destroy(struct vcpu *v)
 {
     struct vpmu_struct *vpmu =3D vcpu_vpmu(v);
=20
-    if ( is_hvm_vcpu(v) && is_msr_bitmap_on(vpmu) )
+    if ( is_svm_vcpu(v) && is_msr_bitmap_on(vpmu) )
         amd_vpmu_unset_msr_bitmap(v);
=20
     xfree(vpmu->context);
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.=
c
index cd414165df..085495ab5f 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -54,6 +54,8 @@
 #define MSR_PMC_ALIAS_MASK       (~(MSR_IA32_PERFCTR0 ^ MSR_IA32_A_PERFC=
TR0))
 static bool __read_mostly full_width_write;
=20
+#define is_vmx_vcpu(v) (IS_ENABLED(CONFIG_INTEL_VMX) && is_hvm_vcpu(v))
+
 /*
  * MSR_CORE_PERF_FIXED_CTR_CTRL contains the configuration of all fixed
  * counters. 4 bits for every counter.
@@ -266,10 +268,10 @@ static inline void __core2_vpmu_save(struct vcpu *v=
)
         rdmsrl(MSR_P6_EVNTSEL(i), xen_pmu_cntr_pair[i].control);
     }
=20
-    if ( !is_hvm_vcpu(v) )
+    if ( !is_vmx_vcpu(v) )
         rdmsrl(MSR_CORE_PERF_GLOBAL_STATUS, core2_vpmu_cxt->global_statu=
s);
     /* Save MSR to private context to make it fork-friendly */
-    else if ( mem_sharing_enabled(v->domain) )
+    else if ( is_vmx_vcpu(v) && mem_sharing_enabled(v->domain) )
         vmx_read_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL,
                            &core2_vpmu_cxt->global_ctrl);
 }
@@ -278,7 +280,7 @@ static int cf_check core2_vpmu_save(struct vcpu *v, b=
ool to_guest)
 {
     struct vpmu_struct *vpmu =3D vcpu_vpmu(v);
=20
-    if ( !is_hvm_vcpu(v) )
+    if ( !is_vmx_vcpu(v) )
         wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, 0);
=20
     if ( !vpmu_are_all_set(vpmu, VPMU_CONTEXT_SAVE | VPMU_CONTEXT_LOADED=
) )
@@ -287,7 +289,7 @@ static int cf_check core2_vpmu_save(struct vcpu *v, b=
ool to_guest)
     __core2_vpmu_save(v);
=20
     /* Unset PMU MSR bitmap to trap lazy load. */
-    if ( !vpmu_is_set(vpmu, VPMU_RUNNING) && is_hvm_vcpu(v) &&
+    if ( !vpmu_is_set(vpmu, VPMU_RUNNING) && is_vmx_vcpu(v) &&
          cpu_has_vmx_msr_bitmap )
         core2_vpmu_unset_msr_bitmap(v);
=20
@@ -326,14 +328,14 @@ static inline void __core2_vpmu_load(struct vcpu *v=
)
     if ( vpmu_is_set(vcpu_vpmu(v), VPMU_CPU_HAS_DS) )
         wrmsrl(MSR_IA32_DS_AREA, core2_vpmu_cxt->ds_area);
=20
-    if ( !is_hvm_vcpu(v) )
+    if ( !is_vmx_vcpu(v) )
     {
         wrmsrl(MSR_CORE_PERF_GLOBAL_OVF_CTRL, core2_vpmu_cxt->global_ovf=
_ctrl);
         core2_vpmu_cxt->global_ovf_ctrl =3D 0;
         wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, core2_vpmu_cxt->global_ctrl);
     }
     /* Restore MSR from context when used with a fork */
-    else if ( mem_sharing_is_fork(v->domain) )
+    else if ( is_vmx_vcpu(v) && mem_sharing_is_fork(v->domain) )
         vmx_write_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL,
                             core2_vpmu_cxt->global_ctrl);
 }
@@ -381,7 +383,7 @@ static int core2_vpmu_verify(struct vcpu *v)
     }
=20
     if ( vpmu_is_set(vpmu, VPMU_CPU_HAS_DS) &&
-         !(is_hvm_vcpu(v)
+         !(is_vmx_vcpu(v)
            ? is_canonical_address(core2_vpmu_cxt->ds_area)
            : __addr_ok(core2_vpmu_cxt->ds_area)) )
         return -EINVAL;
@@ -442,7 +444,7 @@ static int cf_check core2_vpmu_alloc_resource(struct =
vcpu *v)
     if ( !acquire_pmu_ownership(PMU_OWNER_HVM) )
         return 0;
=20
-    if ( is_hvm_vcpu(v) )
+    if ( is_vmx_vcpu(v) )
     {
         if ( vmx_add_host_load_msr(v, MSR_CORE_PERF_GLOBAL_CTRL, 0) )
             goto out_err;
@@ -513,7 +515,7 @@ static int core2_vpmu_msr_common_check(u32 msr_index,=
 int *type, int *index)
         __core2_vpmu_load(current);
         vpmu_set(vpmu, VPMU_CONTEXT_LOADED);
=20
-        if ( is_hvm_vcpu(current) && cpu_has_vmx_msr_bitmap )
+        if ( is_vmx_vcpu(current) && cpu_has_vmx_msr_bitmap )
             core2_vpmu_set_msr_bitmap(current);
     }
     return 1;
@@ -562,7 +564,7 @@ static int cf_check core2_vpmu_do_wrmsr(unsigned int =
msr, uint64_t msr_content)
             return -EINVAL;
         if ( vpmu_is_set(vpmu, VPMU_CPU_HAS_DS) )
         {
-            if ( !(is_hvm_vcpu(v) ? is_canonical_address(msr_content)
+            if ( !(is_vmx_vcpu(v) ? is_canonical_address(msr_content)
                                   : __addr_ok(msr_content)) )
             {
                 gdprintk(XENLOG_WARNING,
@@ -584,7 +586,7 @@ static int cf_check core2_vpmu_do_wrmsr(unsigned int =
msr, uint64_t msr_content)
         if ( msr_content & fixed_ctrl_mask )
             return -EINVAL;
=20
-        if ( is_hvm_vcpu(v) )
+        if ( is_vmx_vcpu(v) )
             vmx_read_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL,
                                &core2_vpmu_cxt->global_ctrl);
         else
@@ -653,7 +655,7 @@ static int cf_check core2_vpmu_do_wrmsr(unsigned int =
msr, uint64_t msr_content)
             if ( blocked )
                 return -EINVAL;
=20
-            if ( is_hvm_vcpu(v) )
+            if ( is_vmx_vcpu(v) )
                 vmx_read_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL,
                                    &core2_vpmu_cxt->global_ctrl);
             else
@@ -672,7 +674,7 @@ static int cf_check core2_vpmu_do_wrmsr(unsigned int =
msr, uint64_t msr_content)
         wrmsrl(msr, msr_content);
     else
     {
-        if ( is_hvm_vcpu(v) )
+        if ( is_vmx_vcpu(v) )
             vmx_write_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL, msr_conten=
t);
         else
             wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, msr_content);
@@ -706,7 +708,7 @@ static int cf_check core2_vpmu_do_rdmsr(unsigned int =
msr, uint64_t *msr_content)
             *msr_content =3D core2_vpmu_cxt->global_status;
             break;
         case MSR_CORE_PERF_GLOBAL_CTRL:
-            if ( is_hvm_vcpu(v) )
+            if ( is_vmx_vcpu(v) )
                 vmx_read_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL, msr_con=
tent);
             else
                 rdmsrl(MSR_CORE_PERF_GLOBAL_CTRL, *msr_content);
@@ -808,7 +810,7 @@ static void cf_check core2_vpmu_destroy(struct vcpu *=
v)
     vpmu->context =3D NULL;
     xfree(vpmu->priv_context);
     vpmu->priv_context =3D NULL;
-    if ( is_hvm_vcpu(v) && cpu_has_vmx_msr_bitmap )
+    if ( is_vmx_vcpu(v) && cpu_has_vmx_msr_bitmap )
         core2_vpmu_unset_msr_bitmap(v);
     release_pmu_ownership(PMU_OWNER_HVM);
     vpmu_clear(vpmu);
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:37:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:37:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767535.1178201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkES-0001kV-MK; Tue, 30 Jul 2024 10:37:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767535.1178201; Tue, 30 Jul 2024 10:37:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkES-0001kO-Jc; Tue, 30 Jul 2024 10:37:28 +0000
Received: by outflank-mailman (input) for mailman id 767535;
 Tue, 30 Jul 2024 10:37: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=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYkER-0001hd-6X
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:37:27 +0000
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4a03df4-4e5f-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 12:37:25 +0200 (CEST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 9254A355CF;
 Tue, 30 Jul 2024 06:37:22 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp20.pobox.com (Postfix) with ESMTP id 8AB63355CE;
 Tue, 30 Jul 2024 06:37:22 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp20.pobox.com (Postfix) with ESMTPSA id 3A267355CD;
 Tue, 30 Jul 2024 06:37:19 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4a03df4-4e5f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=3xlIyZGRQapil037Ov1OT3TEI
	+COLOquSIjJIH8xBF4=; b=byHdmW0ngI3bjiwI/c1qEunsswo/6aJtuSpeloZb6
	pvnxfOodCAdze0+VWf+iYpQqLa01us/8TPpk6yqygySVhBh7jviDE6Gn//b+9z1p
	ynRu8jUQQhlSgAkJrM/fAxVTQPeorqQMOBCUg2kKSoiJ5C6pgJ/LkbfoCVVQdj2v
	68=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Julien Grall <julien@xen.org>
Subject: [XEN PATCH v5 11/13] ioreq: do not build arch_vcpu_ioreq_completion() for non-VMX configurations
Date: Tue, 30 Jul 2024 13:37:16 +0300
Message-Id: <67f143c15bece937d7b5c0739b14cc53b0c8c13d.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 B254EDE4-4E5F-11EF-901C-92D9AF168FA5-90055647!pb-smtp20.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

VIO_realmode_completion is specific to vmx realmode and thus the function
arch_vcpu_ioreq_completion() has actual handling work only in VMX-enabled=
 build,
as for the rest x86 and ARM build configurations it is basically a stub.

Here a separate configuration option ARCH_IOREQ_COMPLETION introduced tha=
t tells
whether the platform we're building for requires any specific ioreq compl=
etion
handling. As of now only VMX has such requirement, so the option is selec=
ted
by INTEL_VMX, for other configurations a generic default stub is provided
(it is ARM's version of arch_vcpu_ioreq_completion() moved to common head=
er).

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Julien Grall <julien@xen.org>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v5:
 - introduce ARCH_IOREQ_COMPLETION option & put arch_vcpu_ioreq_completio=
n() under it
 - description changed
changes in v4:
 - move whole arch_vcpu_ioreq_completion() under CONFIG_VMX and remove
   ARM's variant of this handler, as Julien suggested
changes in v1:
 - put VIO_realmode_completion enum under #ifdef CONFIG_VMX
---
 xen/Kconfig              |  3 +++
 xen/arch/arm/ioreq.c     |  6 ------
 xen/arch/x86/Kconfig     |  1 +
 xen/arch/x86/hvm/ioreq.c |  2 ++
 xen/include/xen/ioreq.h  | 10 ++++++++++
 5 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index e459cdac0c..4f477fa39b 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -95,4 +95,7 @@ config LTO
 config ARCH_SUPPORTS_INT128
 	bool
=20
+config ARCH_IOREQ_COMPLETION
+	bool
+
 source "Kconfig.debug"
diff --git a/xen/arch/arm/ioreq.c b/xen/arch/arm/ioreq.c
index 5df755b48b..2e829d2e7f 100644
--- a/xen/arch/arm/ioreq.c
+++ b/xen/arch/arm/ioreq.c
@@ -135,12 +135,6 @@ bool arch_ioreq_complete_mmio(void)
     return false;
 }
=20
-bool arch_vcpu_ioreq_completion(enum vio_completion completion)
-{
-    ASSERT_UNREACHABLE();
-    return true;
-}
-
 /*
  * The "legacy" mechanism of mapping magic pages for the IOREQ servers
  * is x86 specific, so the following hooks don't need to be implemented =
on Arm:
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index cd81fd1675..eff9eedc19 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -127,6 +127,7 @@ config AMD_SVM
=20
 config INTEL_VMX
 	def_bool HVM
+	select ARCH_IOREQ_COMPLETION
=20
 config XEN_SHSTK
 	bool "Supervisor Shadow Stacks"
diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index 4eb7a70182..0153ac4195 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -29,6 +29,7 @@ bool arch_ioreq_complete_mmio(void)
     return handle_mmio();
 }
=20
+#ifdef CONFIG_ARCH_IOREQ_COMPLETION
 bool arch_vcpu_ioreq_completion(enum vio_completion completion)
 {
     switch ( completion )
@@ -51,6 +52,7 @@ bool arch_vcpu_ioreq_completion(enum vio_completion com=
pletion)
=20
     return true;
 }
+#endif
=20
 static gfn_t hvm_alloc_legacy_ioreq_gfn(struct ioreq_server *s)
 {
diff --git a/xen/include/xen/ioreq.h b/xen/include/xen/ioreq.h
index cd399adf17..31d88eb2fe 100644
--- a/xen/include/xen/ioreq.h
+++ b/xen/include/xen/ioreq.h
@@ -111,7 +111,17 @@ void ioreq_domain_init(struct domain *d);
 int ioreq_server_dm_op(struct xen_dm_op *op, struct domain *d, bool *con=
st_op);
=20
 bool arch_ioreq_complete_mmio(void);
+
+#ifdef CONFIG_ARCH_IOREQ_COMPLETION
 bool arch_vcpu_ioreq_completion(enum vio_completion completion);
+#else
+static inline bool arch_vcpu_ioreq_completion(enum vio_completion comple=
tion)
+{
+    ASSERT_UNREACHABLE();
+    return true;
+}
+#endif
+
 int arch_ioreq_server_map_pages(struct ioreq_server *s);
 void arch_ioreq_server_unmap_pages(struct ioreq_server *s);
 void arch_ioreq_server_enable(struct ioreq_server *s);
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:39:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:39:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767541.1178212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkGU-0002PI-1S; Tue, 30 Jul 2024 10:39:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767541.1178212; Tue, 30 Jul 2024 10:39: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 1sYkGT-0002PB-VB; Tue, 30 Jul 2024 10:39:33 +0000
Received: by outflank-mailman (input) for mailman id 767541;
 Tue, 30 Jul 2024 10:39: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=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYkGS-0002P5-3m
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:39:32 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 00569ff9-4e60-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 12:39:31 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id ABCA03EFD5;
 Tue, 30 Jul 2024 06:39:29 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 956A23EFD4;
 Tue, 30 Jul 2024 06:39:29 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id 2D6C63EFD2;
 Tue, 30 Jul 2024 06:39:24 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00569ff9-4e60-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=20gz3fWtI75N+KDktRlgBWgUQ
	6Rep9w3jgom4UXRHu4=; b=pmIJ1TprgfIJprwHbYQgyIvJ6ug/BVHXtV3XPXygW
	9e/ndA58yuCuWywOItW/xAqaVz9fpNBq+PvEQwxStPPhIjMrtdndazTZKHwguppR
	73MOu/b5a6cyw6gBogVDGiBgkvdF3hw79DCTPHe3ToonCHasbnkzcc+FbOikHDIU
	u0=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>
Subject: [XEN PATCH v5 12/13] x86/vmx: replace CONFIG_HVM with CONFIG_INTEL_VMX in vmx.h
Date: Tue, 30 Jul 2024 13:39:22 +0300
Message-Id: <11e0804a979f7ee7279bbf4741be0b2019967f37.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 FD66FCD2-4E5F-11EF-BFA6-9625FCCAB05B-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

As now we got a separate config option for VMX which itself depends on
CONFIG_HVM, we need to use it to provide vmx_pi_hooks_{assign,deassign}
stubs for case when VMX is disabled while HVM is enabled.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v5:
- change kconfig option name VMX -> INTEL_VMX
changes in v4:
 - added tag
changes in v3:
 - use CONFIG_VMX instead of CONFIG_HVM to provide stubs, instead of guar=
ding
   calls to vmx_pi_hooks_{assign,deassign} in iommu/vt-d code
---
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/includ=
e/asm/hvm/vmx/vmx.h
index 1489dd05c2..f0ec459622 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -599,7 +599,7 @@ void vmx_pi_desc_fixup(unsigned int cpu);
=20
 void vmx_sync_exit_bitmap(struct vcpu *v);
=20
-#ifdef CONFIG_HVM
+#ifdef CONFIG_INTEL_VMX
 void vmx_pi_hooks_assign(struct domain *d);
 void vmx_pi_hooks_deassign(struct domain *d);
 #else
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:41:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:41:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767550.1178221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkIW-0003ph-Bn; Tue, 30 Jul 2024 10:41:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767550.1178221; Tue, 30 Jul 2024 10:41:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkIW-0003pa-9G; Tue, 30 Jul 2024 10:41:40 +0000
Received: by outflank-mailman (input) for mailman id 767550;
 Tue, 30 Jul 2024 10: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=f2k0=O6=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1sYkIU-0003oy-Sh
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:41:38 +0000
Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b5db4de-4e60-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 12:41:37 +0200 (CEST)
Received: from pb-smtp21.pobox.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 658593F018;
 Tue, 30 Jul 2024 06:41:35 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1])
 by pb-smtp21.pobox.com (Postfix) with ESMTP id 5F04C3F017;
 Tue, 30 Jul 2024 06:41:35 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
Received: from localhost (unknown [185.130.54.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by pb-smtp21.pobox.com (Postfix) with ESMTPSA id 0700E3F016;
 Tue, 30 Jul 2024 06:41:31 -0400 (EDT)
 (envelope-from sakib@darkstar.site)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b5db4de-4e60-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc
	:subject:date:message-id:in-reply-to:references:mime-version
	:content-transfer-encoding; s=sasl; bh=PLWtHtTVfhKJOmXqlZPRu0lCA
	GY1YvlMSG00r7Ubp84=; b=XVYLtJbJQYRYqEmkmnVIlq1bf4jiTsiMMtj6IZys6
	WTImyCfFEwdqsDrRIAMQq1YBx7FQxBzvq/Z3kyvUGyxYTJdXcz8dY8JaFh7ie3O9
	LJEWmPAL0rI3hDV75HaraKMiQfA5sndGf2rGMgZWsAMi5R6DsFDjyGkFDISQppg6
	q8=
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Xenia Ragiadakou <burzalodowa@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [XEN PATCH v5 13/13] x86/hvm: make AMD-V and Intel VT-x support configurable
Date: Tue, 30 Jul 2024 13:41:29 +0300
Message-Id: <827008e4af26814e4cd4bf6abbb92c77fc136aa8.1722333634.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
X-Pobox-Relay-ID:
 4901D3BA-4E60-11EF-9654-9625FCCAB05B-90055647!pb-smtp21.pobox.com
Content-Transfer-Encoding: quoted-printable

From: Xenia Ragiadakou <burzalodowa@gmail.com>

Provide the user with configuration control over the cpu virtualization s=
upport
in Xen by making AMD_SVM and INTEL_VMX options user selectable.

To preserve the current default behavior, both options depend on HVM and
default to value of HVM.

To prevent users from unknowingly disabling virtualization support, make =
the
controls user selectable only if EXPERT is enabled.

No functional change intended.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
changes in v5:
- change kconfig option name SVM/VMX -> AMD_SVM/INTEL_VMX
changes in v3:
 - only tags added
changes in v2:
 - remove dependency of build options IOMMU/AMD_IOMMU on VMX/SVM options
---
 xen/arch/x86/Kconfig | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index eff9eedc19..f6a90d71fb 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -123,11 +123,25 @@ config HVM
 	  If unsure, say Y.
=20
 config AMD_SVM
-	def_bool HVM
+	bool "AMD-V" if EXPERT
+	depends on HVM
+	default HVM
+	help
+	  Enables virtual machine extensions on platforms that implement the
+	  AMD Virtualization Technology (AMD-V).
+	  If your system includes a processor with AMD-V support, say Y.
+	  If in doubt, say Y.
=20
 config INTEL_VMX
-	def_bool HVM
+	bool "Intel VT-x" if EXPERT
+	depends on HVM
+	default HVM
 	select ARCH_IOREQ_COMPLETION
+	help
+	  Enables virtual machine extensions on platforms that implement the
+	  Intel Virtualization Technology (Intel VT-x).
+	  If your system includes a processor with Intel VT-x support, say Y.
+	  If in doubt, say Y.
=20
 config XEN_SHSTK
 	bool "Supervisor Shadow Stacks"
--=20
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:49:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:49:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767562.1178232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkQ2-0005GW-3N; Tue, 30 Jul 2024 10:49:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767562.1178232; Tue, 30 Jul 2024 10: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 1sYkQ2-0005GP-0U; Tue, 30 Jul 2024 10:49:26 +0000
Received: by outflank-mailman (input) for mailman id 767562;
 Tue, 30 Jul 2024 10: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=f/bP=O6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYkQ1-0005GJ-5T
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:49:25 +0000
Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com
 [2607:f8b0:4864:20::72d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 61eb5507-4e61-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 12:49:24 +0200 (CEST)
Received: by mail-qk1-x72d.google.com with SMTP id
 af79cd13be357-7a1dd2004e1so275241985a.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 03:49:23 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a201bcfbc8sm46803885a.77.2024.07.30.03.49.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 03:49: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: 61eb5507-4e61-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722336563; x=1722941363; 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=OgLCtt5Lvm07HTnzII7Mpc5F8wSjDwMWQlufjHET5h0=;
        b=PBORxhpyC6bwHYyd3LweE+d+OX+jfrhRcFAyaWGO4W9bIiqbP0Emfc0N04QuZNdXQs
         MUGJKBBjw7ynYHc5rDs3x/stlUBWux/rF3i8VMPmsUdFOLbfM1ChYIg31QZNkCisNtYO
         kUxulWCARsBRnzPaZp1Zoy6VJ6a4tiLK+Cgro=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722336563; x=1722941363;
        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=OgLCtt5Lvm07HTnzII7Mpc5F8wSjDwMWQlufjHET5h0=;
        b=usjtw0AACp91Tu5usdGYGua66LW93GFu6eYhOiVerNZmI01UZ1c+TCadXN0PVKox1b
         GyLFHei0y/Y6v0vDAbwPbzkjEypC3cL6aEE0olTMrwtAFD4mtRUYfUVc83UP375wqaVg
         SyBpubiUFjceVXg/OkrvOf19JP366Z88hr5PtDeTWhwjgW9SsnMIjxF5zZgMFneECU6y
         yE9FgM5DQx7aVuOyDWiqLboRV1wb6Di6E0a5LHWXAydO0Lht9xKUT0ngFQbDOZSjdo0x
         Nu2LlG8jLOPOgPqRcAMDNVxsUzEDID+fS7feseg+OM5DH58utXaK2jmXuzNNptKCzrFz
         ZO1g==
X-Gm-Message-State: AOJu0YxOafxh6x0vDQwMG8cGnYHjYY/KeobsgIy7KNTNTWvvwWUX1+QP
	BTIiRctIxwkB4Vsl/tCQrkqK1UGdqO+0ESDhRvb5Aldot4qD1IpxNEwjzFGKyk8=
X-Google-Smtp-Source: AGHT+IHQ5gU4H9i2DQyhaaYWH2VkpYp6KqiakEuesWMBOcHl2/dtKLaMqGnuIb0d3Idf0rm9MzrCYQ==
X-Received: by 2002:a05:620a:370b:b0:79e:fc8c:daf1 with SMTP id af79cd13be357-7a1e52475dfmr1367298785a.19.1722336562585;
        Tue, 30 Jul 2024 03:49:22 -0700 (PDT)
Date: Tue, 30 Jul 2024 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@lists.xenproject.org, alejandro.vallejo@cloud.com,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH 22/22] x86/mm: zero stack on stack switch or reset
Message-ID: <ZqjFB3U-7l8Nop_u@macbook>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-23-roger.pau@citrix.com>
 <5e600017-e929-4ebf-b620-1e673b06fc1a@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <5e600017-e929-4ebf-b620-1e673b06fc1a@citrix.com>

On Mon, Jul 29, 2024 at 04:40:24PM +0100, Andrew Cooper wrote:
> On 26/07/2024 4:22 pm, Roger Pau Monne wrote:
> > With the stack mapped on a per-CPU basis there's no risk of other CPUs being
> > able to read the stack contents, but vCPUs running on the current pCPU could
> > read stack rubble from operations of previous vCPUs.
> >
> > The #DF stack is not zeroed because handling of #DF results in a panic.
> >
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> >  xen/arch/x86/include/asm/current.h | 30 +++++++++++++++++++++++++++++-
> >  1 file changed, 29 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
> > index 75b9a341f814..02b4118b03ef 100644
> > --- a/xen/arch/x86/include/asm/current.h
> > +++ b/xen/arch/x86/include/asm/current.h
> > @@ -177,6 +177,14 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
> >  # define SHADOW_STACK_WORK ""
> >  #endif
> >  
> > +#define ZERO_STACK                                              \
> > +    "test %[stk_size], %[stk_size];"                            \
> > +    "jz .L_skip_zeroing.%=;"                                    \
> > +    "std;"                                                      \
> > +    "rep stosb;"                                                \
> > +    "cld;"                                                      \
> > +    ".L_skip_zeroing.%=:"
> > +
> >  #if __GNUC__ >= 9
> >  # define ssaj_has_attr_noreturn(fn) __builtin_has_attribute(fn, __noreturn__)
> >  #else
> > @@ -187,10 +195,24 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
> >  #define switch_stack_and_jump(fn, instr, constr)                        \
> >      ({                                                                  \
> >          unsigned int tmp;                                               \
> > +        bool zero_stack = current->domain->arch.asi;                    \
> >          BUILD_BUG_ON(!ssaj_has_attr_noreturn(fn));                      \
> > +        ASSERT(IS_ALIGNED((unsigned long)guest_cpu_user_regs() -        \
> > +                          PRIMARY_STACK_SIZE +                          \
> > +                          sizeof(struct cpu_info), PAGE_SIZE));         \
> > +        if ( zero_stack )                                               \
> > +        {                                                               \
> > +            unsigned long stack_top = get_stack_bottom() &              \
> > +                                      ~(STACK_SIZE - 1);                \
> > +                                                                        \
> > +            clear_page((void *)stack_top + IST_MCE * PAGE_SIZE);        \
> > +            clear_page((void *)stack_top + IST_NMI * PAGE_SIZE);        \
> > +            clear_page((void *)stack_top + IST_DB  * PAGE_SIZE);        \
> > +        }                                                               \
> >          __asm__ __volatile__ (                                          \
> >              SHADOW_STACK_WORK                                           \
> >              "mov %[stk], %%rsp;"                                        \
> > +            ZERO_STACK                                                  \
> >              CHECK_FOR_LIVEPATCH_WORK                                    \
> >              instr "[fun]"                                               \
> >              : [val] "=&r" (tmp),                                        \
> > @@ -201,7 +223,13 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
> >                ((PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8),               \
> >                [stack_mask] "i" (STACK_SIZE - 1),                        \
> >                _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__,                \
> > -                                 __FILE__, NULL)                        \
> > +                                 __FILE__, NULL),                       \
> > +              /* For stack zeroing. */                                  \
> > +              "D" ((void *)guest_cpu_user_regs() - 1),                  \
> > +              [stk_size] "c"                                            \
> > +              (zero_stack ? PRIMARY_STACK_SIZE - sizeof(struct cpu_info)\
> > +                          : 0),                                         \
> > +              "a" (0)                                                   \
> >              : "memory" );                                               \
> >          unreachable();                                                  \
> >      })
> 
> This looks very expensive.
> 
> For starters, switch_stack_and_jump() is used twice in a typical context
> switch; once in the schedule tail, and again out of hvm_do_resume().

Right, it's the reset_stack_and_call_ind() at the end of context
switch and then the reset_stack_and_jump() in the HVM tail context
switch handlers.

One option would be to only do the stack zeroing from the
reset_stack_and_call_ind() call in context_switch().

I've got no idea how expensive this is, I might try to run some
benchmarks to get some figures.  I was planning on running two VMs
with 1 vCPU each, both pinned to the same pCPU.

> 
> Furthermore, #MC happen never (to many many significant figures), #DB
> happens never for HVM guests (but does happen for PV), and NMIs are
> either ~never, or 2Hz which is far less often than the 30ms default
> timeslice.
> 
> So, the overwhelming majority of the time, those 3 calls to clear_page()
> will be re-zeroing blocks of zeroes.
> 
> This can probably be avoided by making use of ist_exit (held in %r12) to
> only zero an IST stack when leaving it.  This leaves the IRET frame able
> to be recovered, but with e.g. RFDS, you can do that irrespective, and
> it's not terribly sensitive.

I could look into that, TBH I was bordeline with clearing the IST
stacks, as I wasn't convinced there could be anything sensitive there,
but again couldn't convince myself there's nothing sensitive now,
nor can be in the future.

> What about shadow stacks?  You're not zeroing those, and while they're
> less sensitive than the data stack, there ought to be some reasoning
> about them.

I've assumed that shadow stacks only contained the expected return
addresses, and hence won't be considered sensitive information, but
maybe I was too lax.

An attacker could get execution traces of the previous vCPU, and that
might be useful for some exploits?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:56:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:56:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767572.1178242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkWM-0007a8-RE; Tue, 30 Jul 2024 10:55:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767572.1178242; Tue, 30 Jul 2024 10: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 1sYkWM-0007a1-OA; Tue, 30 Jul 2024 10:55:58 +0000
Received: by outflank-mailman (input) for mailman id 767572;
 Tue, 30 Jul 2024 10:55:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/bP=O6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYkWM-0007Zv-0Y
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:55:58 +0000
Received: from mail-qt1-x82e.google.com (mail-qt1-x82e.google.com
 [2607:f8b0:4864:20::82e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4a530597-4e62-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 12:55:53 +0200 (CEST)
Received: by mail-qt1-x82e.google.com with SMTP id
 d75a77b69052e-44fe11dedb3so19458751cf.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 03:55:53 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe817b704sm48859191cf.49.2024.07.30.03.55.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 03:55: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: 4a530597-4e62-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722336953; x=1722941753; 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=FgXOKJWNRnRlz0Nm5RAVMdrRS+bLkdw98dwTpwqDu7Q=;
        b=F7bWE5lp75dbMAb5rgSbdRHkyGkbmCW3wBjvnFjZSmksGhD1HtfKYslZBXZ5tgiZ9p
         iWvP9qWg+BVGJ8HoMfqCT9OMT9JY9aqmqZnSxRQVG16k/Q36J7ifhO7BEZ/D+aWP85Jn
         Jlo+KGYU7UBLzZfGahQOmLR+g1Xz0gStEqVPk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722336953; x=1722941753;
        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=FgXOKJWNRnRlz0Nm5RAVMdrRS+bLkdw98dwTpwqDu7Q=;
        b=oU2FkckRg0TIrbeoNa1lOzzM2ceTPMZ9hoOJmY5ofmUDPxHOs+Xt/PmGVxoIo718gx
         NjcXig/0cXcedi3I7vt6BdlFsgo0mA0GRZiM2bKjdm2aQ9CMlU8uUi0pdwBaImMb72im
         JVdHVInIjsk94+QFQTLjtApOh3j71A8UwW2cQhKfGmqyaZlHmS+1QvtNWsDtU14saNWH
         1dAkZqOQa63h6iXmr4w4kPZO00Vxa8fs5HSGyn5jfRagbty5cMQFs1D5zdJucpnZkweg
         Nt/Tpn9lAavRpZzjGWvzsvpjcjUfq4oiI/kIRd8SfpqCHXVoADjTxUpPlTH8RHCwouje
         7zhw==
X-Forwarded-Encrypted: i=1; AJvYcCWATYD4DYjJ6JYW1U3s2iSkOvt48joPHODtEy31/eKCHwC3/kKoArCiwAOVQRt5Y3aRBjeRrpn0qzRxm5QntN5H8HGK5Que1h1dpssDYNM=
X-Gm-Message-State: AOJu0YxzPqUV6x59Br3Y/MmCOyEJ81WkuPKxzkUuoGk9X1OCUqj8V5uo
	kA+Sywf5rOF944sDsL8maWPzz4yUn7upb7vBTwP800qK5YjnCgODB8nhjIlPguY=
X-Google-Smtp-Source: AGHT+IGDcuHOXGDLPG2b8B3tNSoa6NthQF9XssbyibuciuFoE3LIh6WuK4czhNZhgcIhhog4QcHNUQ==
X-Received: by 2002:a05:622a:1309:b0:447:df6b:b8c5 with SMTP id d75a77b69052e-45004db298amr120861831cf.33.1722336952454;
        Tue, 30 Jul 2024 03:55:52 -0700 (PDT)
Date: Tue, 30 Jul 2024 12:55:47 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, alejandro.vallejo@cloud.com,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 03/22] x86/dom0: only disable SMAP for the PV dom0 build
Message-ID: <ZqjGs2NLTbatrQS9@macbook>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-4-roger.pau@citrix.com>
 <b1918f51-1ac0-40f8-9174-d8161b2681dd@suse.com>
 <5aad5f48-e32e-4a59-bcef-05adec0ecbec@citrix.com>
 <ZqfA714LUFgZOYqw@macbook>
 <542807c8-425b-481f-b02f-dd657c12ef5d@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <542807c8-425b-481f-b02f-dd657c12ef5d@citrix.com>

On Mon, Jul 29, 2024 at 06:51:31PM +0100, Andrew Cooper wrote:
> On 29/07/2024 5:18 pm, Roger Pau Monné wrote:
> > On Mon, Jul 29, 2024 at 04:52:22PM +0100, Andrew Cooper wrote:
> >> On 29/07/2024 12:53 pm, Jan Beulich wrote:
> >>> On 26.07.2024 17:21, Roger Pau Monne wrote:
> >>>> The PVH dom0 builder doesn't switch page tables and has no need to run with
> >>>> SMAP disabled.
> >>>>
> >>>> Put the SMAP disabling close to the code region where it's necessary, as it
> >>>> then becomes obvious why switch_cr3_cr4() is required instead of
> >>>> write_ptbase().
> >>>>
> >>>> Note removing SMAP from cr4_pv32_mask is not required, as we never jump into
> >>>> guest context, and hence updating the value of cr4_pv32_mask is not relevant.
> >>> I'm okay-ish with that being dropped, but iirc the goal was to keep the
> >>> variable in sync with CPU state.
> >> Removing SMAP from cr4_pv32_mask is necessary.
> >>
> >> Otherwise IST vectors will reactive SMAP behind the back of the dombuilder.
> >>
> >> This will probably only manifest in practice in a CONFIG_PV32=y build,
> > Sorry, I'm possibly missing some context here.  When running the dom0
> > builder we switch to the guest page-tables, but not to the guest vCPU,
> > (iow: current == idle) and hence the context is always the Xen
> > context.
> 
> Correct.
> 
> > Why would the return path of the IST use cr4_pv32_mask when the
> > context in which the IST happened was the Xen one, and the current
> > vCPU is the idle one (a 64bit PV guest from Xen's PoV).
> >
> > My understanding is that cr4_pv32_mask should only be used when the
> > current context is running a 32bit PV vCPU.
> 
> This logic is evil to follow, because you need to look at both
> cr4_pv32_mask and XEN_CR4_PV32_BITS to see both halves of it.
> 
> Notice how cr4_pv32_restore() only ever OR's cr4_pv32_mask into %cr4?
> 
> CR4_PV32_RESTORE is called from every entry path which *might* have come
> from a 32bit PV guest, and it always results in Xen having SMEP/SMAP
> active (as applicable).  This includes NMI.
> 
> The change is only undone in compat_restore_all_guest(), where
> XEN_CR4_PV32_BITS is cleared from %cr4 iff returning to Ring1/2.  This
> is logic cunningly disguised in the use of the Parity flag.
> 
> 
> Because the NMI handler does reactive SMEP/SMAP (based on the value in
> cr4_pv32_mask), and returning to Xen does not pass through
> compat_restore_all_guest(), taking an NMI in the middle of of the
> dombuilder will reactive SMAP behind your back.

After further conversations with Andrew we believe the current
disabling of X86_CR4_SMAP in %cr4 during dom0 build is not safe.

Regardless of whether cr4_pv32_mask is properly adjusted return to Xen
context from interrupt would be done with SMAP enabled if
X86_FEATURE_XEN_SMAP is set.

I will send a new patch that uses stac/clac in order to disable SMAP
(if required) around the dom0 builder code that switches to the guest
page-tables.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:57:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767581.1178251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkXZ-0008OV-3e; Tue, 30 Jul 2024 10:57:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767581.1178251; Tue, 30 Jul 2024 10:57: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 1sYkXZ-0008OO-14; Tue, 30 Jul 2024 10:57:13 +0000
Received: by outflank-mailman (input) for mailman id 767581;
 Tue, 30 Jul 2024 10: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYkXY-0007Zv-5W
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:57:12 +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 7834a7a3-4e62-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 12:57:10 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a7aac70e30dso564847266b.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 03:57: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-a7acab2314csm642063366b.14.2024.07.30.03.57.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 03: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: 7834a7a3-4e62-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722337030; x=1722941830; 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=Po8FTiwtDWrNQap1N3UoZT3/Uk5DxNwtOnO6XpY1gU4=;
        b=fvtHnKmEJFdQK+a0LAScnKQPBdg3eEUB1GZDkK1cMcXV0QczpcJ7ki2MtcXXoQTqb6
         xkQVRgkt97KlaBv55UOvxKtL44X3/zSlYv7/64Q8DWW+q9rTFeUG8BJTSsB0VbuciuHE
         htfD2Uz3ptjcVYvFRFeTYzdDFWtOAdiDShJ321IcThWjnjKKv0nnTQaKJBMLzu7GCc3q
         EstyVQD8bdOTlt9s+lyG0LZZ1HW8qnwQFi6esK53X2k4Fel1laEzZSPqJK71fk62ThcL
         wOTf/SO7hTK4Vqlvu68Bodp37Mc2NsC6BKGSdJc0u4Akka6Fuhanw6bAm6EUv2VPG0Sw
         vHWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722337030; x=1722941830;
        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=Po8FTiwtDWrNQap1N3UoZT3/Uk5DxNwtOnO6XpY1gU4=;
        b=vfX+S1o8qnMBh4+Xl5mQ/s3kqR6i4RvQ2TYiCR+SK3b6ZHKBLvQXy2Wr67rnaD2L8i
         sg2/qBgRf7HD0/5cT9TPj4JKfy8RBoqvlnEkVlOy2zW6m1+Y/bqrmEvCKU7z/3QJYRw0
         FRJiHBZ2JII5Pqf4NLJVZxog+RzeNbcvxrAS4eti/BI67Uz3+fRvinsuMeg8GPt2Y3+V
         1RQnyNfcJzkLMZbubFUmIGhxYmRyFLtOZdaJsWdCD+czmi5bb1tzQLlISTgDeDm8YW8v
         6QViEoMu1Jqw0koGR5m98iswgAyK+x6M1I1boTnEXnrNoHKn7CqLcBfl9Y8WZjB8jwHN
         fEpg==
X-Gm-Message-State: AOJu0YwsSTOjKJqkhWZfipYQWu+DMziF7m0nYG67doEMXNCifEd7BagE
	THaXs7eYDhtCyP4uqM8SNjr8O2+5O4MSfxElOK3fpiTD0LJKNPCIwSCSyplg5dELkPwAw6wUqYM
	=
X-Google-Smtp-Source: AGHT+IEi712nRbYdEHOSzCpWqfCH4dlIc28CjJ4SDhBKoITbgcPOEjsGb1MrBEiWEdn5bAWXsz6dcw==
X-Received: by 2002:a17:907:9713:b0:a77:bfca:da53 with SMTP id a640c23a62f3a-a7d3ff97f73mr656160766b.30.1722337029597;
        Tue, 30 Jul 2024 03:57:09 -0700 (PDT)
Message-ID: <d7289554-258b-4f75-858b-64005e9ae9be@suse.com>
Date: Tue, 30 Jul 2024 12:57: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>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Daniel Smith <dpsmith@apertussolutions.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] SUPPORT.md: split XSM from Flask
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

XSM is a generic framework, which in particular is also used by SILO.
With this it can't really be experimental: Arm enables SILO by default.

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

--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -768,13 +768,20 @@ Compile time disabled for ARM by default
 
     Status, x86: Supported, not security supported
 
-### XSM & FLASK
+### XSM
+
+    Status: Supported
+
+See below for use with FLASK and SILO.  The dummy implementation is covered here
+as well.
+
+### XSM + FLASK
 
     Status: Experimental
 
 Compile time disabled by default.
 
-Also note that using XSM
+Also note that using FLASK
 to delegate various domain control hypercalls
 to particular other domains, rather than only permitting use by dom0,
 is also specifically excluded from security support for many hypercalls.
@@ -787,6 +794,10 @@ Please see XSA-77 for more details.
 The default policy includes FLASK labels and roles for a "typical" Xen-based system
 with dom0, driver domains, stub domains, domUs, and so on.
 
+### XSM + SILO
+
+    Status: Supported
+
 ## Virtual Hardware, Hypervisor
 
 ### x86/Nested PV


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 10:59:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 10:59:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767589.1178262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYka0-00016I-Gs; Tue, 30 Jul 2024 10:59:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767589.1178262; Tue, 30 Jul 2024 10: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 1sYka0-00016B-Ct; Tue, 30 Jul 2024 10:59:44 +0000
Received: by outflank-mailman (input) for mailman id 767589;
 Tue, 30 Jul 2024 10:59: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=BAGm=O6=ti.com=a-singh21@srs-se1.protection.inumbo.net>)
 id 1sYkZy-000162-Qf
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 10:59:43 +0000
Received: from lelv0142.ext.ti.com (lelv0142.ext.ti.com [198.47.23.249])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d0cc17d0-4e62-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 12:59:40 +0200 (CEST)
Received: from fllv0035.itg.ti.com ([10.64.41.0])
 by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id 46UAxNdt007163;
 Tue, 30 Jul 2024 05:59:23 -0500
Received: from DLEE104.ent.ti.com (dlee104.ent.ti.com [157.170.170.34])
 by fllv0035.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 46UAxN3S122728
 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL);
 Tue, 30 Jul 2024 05:59:23 -0500
Received: from DLEE107.ent.ti.com (157.170.170.37) by DLEE104.ent.ti.com
 (157.170.170.34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Tue, 30
 Jul 2024 05:59:23 -0500
Received: from lelvsmtp6.itg.ti.com (10.180.75.249) by DLEE107.ent.ti.com
 (157.170.170.37) 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; Tue, 30 Jul 2024 05:59:23 -0500
Received: from localhost (nightbug.dhcp.ti.com [10.24.68.118])
 by lelvsmtp6.itg.ti.com (8.15.2/8.15.2) with ESMTP id 46UAxMmB042060;
 Tue, 30 Jul 2024 05:59: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: d0cc17d0-4e62-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com;
	s=ti-com-17Q1; t=1722337163;
	bh=S4TKs36zuyYQhQC2wNo65S9DbOgKoxAMU4qhwPg6ZC0=;
	h=From:To:CC:Subject:Date:In-Reply-To:References;
	b=DRGoe7jKXTG+0vpSFv46vZ0XAtzs/e8IZ4vj7YQ8NCMFawEj8PxHEu4BOVegSmwnI
	 RJQnJI8asevu6QgxWmHceCp1RQ5p9oDKhYLEYqE0YSitIEwfIXd4ltf4I1cm5EkoyN
	 0/orT05a8NzXl1mFbCCRAVdn6lIJ9aiWG0Y6YkxI=
From: Amneesh Singh <a-singh21@ti.com>
To: <sstabellini@kernel.org>
CC: <boris.ostrovsky@oracle.com>, <hch@infradead.org>,
        <iommu@lists.linux-foundation.org>, <jasowang@redhat.com>,
        <jgross@suse.com>, <konrad.wilk@oracle.com>,
        <linux-arm-kernel@lists.infradead.org>, <linux-imx@nxp.com>,
        <linux-kernel@vger.kernel.org>, <mst@redhat.com>, <peng.fan@nxp.com>,
        <virtualization@lists.linux-foundation.org>, <x86@kernel.org>,
        <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen: introduce xen_vring_use_dma
Date: Tue, 30 Jul 2024 16:29:10 +0530
Message-ID: <20240730105910.443753-1-a-singh21@ti.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <alpine.DEB.2.21.2007151001140.4124@sstabellini-ThinkPad-T480s>
References: <alpine.DEB.2.21.2007151001140.4124@sstabellini-ThinkPad-T480s>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180

Hi Stefano,

First off, apologies for bumping this dead thread.

I came across this patch signed off by you recently
https://github.com/Xilinx/linux-xlnx/commit/72cb5514953be3aa2ac00c57c9eaa100ecc67176

and was wondering if a patch replacing xen_domain() with xen_pv_domain() in
vring_use_dma_api() can be sent upstream? If not, is there a reason why?

Regards
Amneesh


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 11:06:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 11:06:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767600.1178272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkgv-0003pc-62; Tue, 30 Jul 2024 11:06:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767600.1178272; Tue, 30 Jul 2024 11:06: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 1sYkgv-0003pV-3D; Tue, 30 Jul 2024 11:06:53 +0000
Received: by outflank-mailman (input) for mailman id 767600;
 Tue, 30 Jul 2024 11:06: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=3jiA=O6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYkgt-0003nv-Ix
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 11:06:51 +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 d17cf295-4e63-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 13:06:49 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a6265d3ba8fso415970166b.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 04:06:49 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab233c0sm624794566b.44.2024.07.30.04.06.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 04:06:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d17cf295-4e63-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722337609; x=1722942409; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qh85qxF6D8Ab2ndLu+A2zH9pRPhi+zXajHBy3xDe6II=;
        b=Q8CTxj5i4LPNs+zYuHRMFb4nUWXj2vwGHXdJfR51Qg77/5BCdHQJEWtLi1RnQJVcpR
         fqYCta0jL8QNHNsNwaC3tD/rbdWJLuADVmEGdrCVVA5U7GbYw/YJqDZjLFw1F1GYP7tj
         SVPYSuu0nZxJKuFNi95RCXKCmyJ+8sdxK7jIs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722337609; x=1722942409;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qh85qxF6D8Ab2ndLu+A2zH9pRPhi+zXajHBy3xDe6II=;
        b=Z/iZSyynxnvtOAWE5Zc8t4rzKmd3wGjIsoNYN+zvk6pn6H0iyLlz2ZV4ABsGZiT2Ub
         mIfkYFxZflFdI1mLGzCBBoVcm65iArBJWpleTygOLSEEqsyBjHpIcxWQUQoCUDs0dEZe
         haMHz+743VWXzxcs4NEIHPYLwjSATSVQhRP01hwzn+rVm0KoDva1BJ0tUpmGjebxRNe2
         izDVbBI321JoXHIYGoeFx7PC79IvnyZUX3DuAkI8m2iwBEjwE41K82S3zArdBRy+4+2c
         nMBOOeiXsHyaUcbrobY0LIZuDfhTSuCuiK1daCAm3Y0pwbkoxM53/7GhIfk3qbnByJbz
         fC8g==
X-Forwarded-Encrypted: i=1; AJvYcCXFhZnplauqSo/tVKOSOggV9cXTewKChHQYYPvBdccW0fHBjRD+48uf1EXU6CGuu/9W0e846sJRn426Xq5SKOFXCc4mEJvM/iY5PXZYPgQ=
X-Gm-Message-State: AOJu0YyU744+BM6pdS8hao78fl1zlflJOj9+ugTxkRhLVYp9FH3UDjDH
	PWgvQ77jbvdWnLmUCpX9Kb8nB96tdbSKM9Pkpbn42ZmGRlmn82YJ6x0NoOmSIfc=
X-Google-Smtp-Source: AGHT+IFE092zwsJ6dzIyqJO3uvj/WAdKAdkC6G+n1D5bngxjbfldp9+wuL5EE/W3+uuumrokDflyMw==
X-Received: by 2002:a17:907:2d8a:b0:a77:cdaa:88a7 with SMTP id a640c23a62f3a-a7d401769e3mr908982866b.48.1722337608990;
        Tue, 30 Jul 2024 04:06:48 -0700 (PDT)
Message-ID: <9aa68e23-8c9c-4596-b847-6b1d34e57004@citrix.com>
Date: Tue, 30 Jul 2024 12:06:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/22] x86/dom0: only disable SMAP for the PV dom0 build
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, alejandro.vallejo@cloud.com,
 xen-devel@lists.xenproject.org
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-4-roger.pau@citrix.com>
 <b1918f51-1ac0-40f8-9174-d8161b2681dd@suse.com>
 <5aad5f48-e32e-4a59-bcef-05adec0ecbec@citrix.com> <ZqfA714LUFgZOYqw@macbook>
 <542807c8-425b-481f-b02f-dd657c12ef5d@citrix.com> <ZqjGs2NLTbatrQS9@macbook>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZqjGs2NLTbatrQS9@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/07/2024 11:55 am, Roger Pau Monné wrote:
> On Mon, Jul 29, 2024 at 06:51:31PM +0100, Andrew Cooper wrote:
>> On 29/07/2024 5:18 pm, Roger Pau Monné wrote:
>>> On Mon, Jul 29, 2024 at 04:52:22PM +0100, Andrew Cooper wrote:
>>>> On 29/07/2024 12:53 pm, Jan Beulich wrote:
>>>>> On 26.07.2024 17:21, Roger Pau Monne wrote:
>>>>>> The PVH dom0 builder doesn't switch page tables and has no need to run with
>>>>>> SMAP disabled.
>>>>>>
>>>>>> Put the SMAP disabling close to the code region where it's necessary, as it
>>>>>> then becomes obvious why switch_cr3_cr4() is required instead of
>>>>>> write_ptbase().
>>>>>>
>>>>>> Note removing SMAP from cr4_pv32_mask is not required, as we never jump into
>>>>>> guest context, and hence updating the value of cr4_pv32_mask is not relevant.
>>>>> I'm okay-ish with that being dropped, but iirc the goal was to keep the
>>>>> variable in sync with CPU state.
>>>> Removing SMAP from cr4_pv32_mask is necessary.
>>>>
>>>> Otherwise IST vectors will reactive SMAP behind the back of the dombuilder.
>>>>
>>>> This will probably only manifest in practice in a CONFIG_PV32=y build,
>>> Sorry, I'm possibly missing some context here.  When running the dom0
>>> builder we switch to the guest page-tables, but not to the guest vCPU,
>>> (iow: current == idle) and hence the context is always the Xen
>>> context.
>> Correct.
>>
>>> Why would the return path of the IST use cr4_pv32_mask when the
>>> context in which the IST happened was the Xen one, and the current
>>> vCPU is the idle one (a 64bit PV guest from Xen's PoV).
>>>
>>> My understanding is that cr4_pv32_mask should only be used when the
>>> current context is running a 32bit PV vCPU.
>> This logic is evil to follow, because you need to look at both
>> cr4_pv32_mask and XEN_CR4_PV32_BITS to see both halves of it.
>>
>> Notice how cr4_pv32_restore() only ever OR's cr4_pv32_mask into %cr4?
>>
>> CR4_PV32_RESTORE is called from every entry path which *might* have come
>> from a 32bit PV guest, and it always results in Xen having SMEP/SMAP
>> active (as applicable).  This includes NMI.
>>
>> The change is only undone in compat_restore_all_guest(), where
>> XEN_CR4_PV32_BITS is cleared from %cr4 iff returning to Ring1/2.  This
>> is logic cunningly disguised in the use of the Parity flag.
>>
>>
>> Because the NMI handler does reactive SMEP/SMAP (based on the value in
>> cr4_pv32_mask), and returning to Xen does not pass through
>> compat_restore_all_guest(), taking an NMI in the middle of of the
>> dombuilder will reactive SMAP behind your back.
> After further conversations with Andrew we believe the current
> disabling of X86_CR4_SMAP in %cr4 during dom0 build is not safe.
>
> Regardless of whether cr4_pv32_mask is properly adjusted return to Xen
> context from interrupt would be done with SMAP enabled if
> X86_FEATURE_XEN_SMAP is set.

Sorry - that's not what I intended to convey.

The logic prior to this patch is safe.  SMAP is cleared from
cr4_pv32_mask before clearing CR4.SMAP, and reinstated in the opposite
order.  Therefore, an NMI hitting the region won't reactivate SMAP
because it's not (instantaniously) set in cr4_pv32_mask.

Arguably it wants some barrier()'s for clarity, and an explanation of
why this works.

The problem your patch has is that by not clearing SMAP from
cr4_pv32_mask, it becomes unsafe iff an NMI/#MC/#DB hits the region.

> I will send a new patch that uses stac/clac in order to disable SMAP
> (if required) around the dom0 builder code that switches to the guest
> page-tables.

Either way - this is a much cleaner solution.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 11:07:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 11:07:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767601.1178281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkhA-0004B5-CK; Tue, 30 Jul 2024 11:07:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767601.1178281; Tue, 30 Jul 2024 11: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 1sYkhA-0004Ay-9c; Tue, 30 Jul 2024 11:07:08 +0000
Received: by outflank-mailman (input) for mailman id 767601;
 Tue, 30 Jul 2024 11: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYkh9-0003nv-63
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 11:07:07 +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 daddb330-4e63-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 13:07:05 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a77ec5d3b0dso537514766b.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 04: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
 a640c23a62f3a-a7acab236c2sm631750566b.31.2024.07.30.04.07.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 04: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: daddb330-4e63-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722337625; x=1722942425; 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=6RQ+w0Ug9ZM/A42hRx5PoW7PJtGUX4wP+Uhkm7ftIzo=;
        b=eG0d7E6ta7oeVptzRboEbXh37N78DQICT7PnKQ+4lYv9HNcJd8QWpbWVSGHU/excSA
         unJ/V83W7dPgfU6dubk9SABIczBEZDgrl7qTgzNLPoKf/7ZZNEIqME1zaMSPwzf0i7kD
         uGJeEEBDJgU8jdJLg5UravYPBf3OtDlRf1HxXri7MwijVC1iVMoECXQAtuVitH7Ch79l
         hj3VFgxy/rU75fklShfLu4VkbMBqdIQ4m+MRorsvMcw/QWuMlJdJJBj7scYFS6L58WEB
         etF0qnPRxLIWDf6iFLSmrzdN4RiNCU3Dn6I12D7wTtUCl+TjQXusx2n2hWe1DHoC90qU
         IsUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722337625; x=1722942425;
        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=6RQ+w0Ug9ZM/A42hRx5PoW7PJtGUX4wP+Uhkm7ftIzo=;
        b=ctetvMcDFAiwge5tX7P/kADAisk9X97WsVHeVmilMtjusohWLqaKLuR6ceG++6+7d7
         ikTAlxFLpDGibdbFzvelLIVLDmbHidSTVHMGr2ZuI/FKOTjkW/tn6sTAI+Ywt36D7AcA
         gT/bgc2um8ucpbB+oNNOawXuzGF2M4I23oV/QMSNPqAdlTGUbJFqTxQCRsOsI4uVIheX
         N9eQdLd1PbHF7y6tFBg1Rh82HgOLNq0FoW0yG/QwhhXPENAT3uVzOax55EM1VPj4PCoL
         43C1+emcX7ta+boLQ0so9En7GWD6VkkGUrY9uuGI50ayxJoZYHB9IkgCbDLFX4xadBCl
         DcmA==
X-Gm-Message-State: AOJu0YzIuaSV7JmzyZodsipYrNs8t/ui3ewEIAlVLFEgLzsjIOhUrlV6
	aB1PKx/4xBeFa8HNVOOLr3gNHT2cSvXSRA7VgAQHS8ViA2j5pNLYQ9wpMc3xG2sm//9yGyNK3Vk
	=
X-Google-Smtp-Source: AGHT+IF1kkjSuGXaz1LmQS3R73F+42MdduuR9szbanVrYKhEDitUQBWkE9OmpwsUB6mTWqp4GaSbIQ==
X-Received: by 2002:a17:907:2cc6:b0:a7d:4dc4:3d8 with SMTP id a640c23a62f3a-a7d4dc40564mr660738766b.54.1722337624445;
        Tue, 30 Jul 2024 04:07:04 -0700 (PDT)
Message-ID: <44147507-65a4-4f21-aada-fa647f53ffd0@suse.com>
Date: Tue, 30 Jul 2024 13:07:03 +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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "community.manager@xenproject.org" <community.manager@xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86: drop Xeon Phi support
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Do as was decided in Lisbon. Reportedly Xen hasn't been working very
well on those processors anyway.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
One file I left untouched is the test harness'es predicates.c: Those
tests are imo fine to retain. Plus of course the dependencies in
gen-cpuid.py also want leaving in place imo (unless we were to remove
the respective 4 lines from the public header).

--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,8 @@ The format is based on [Keep a Changelog
 ### Added
 
 ### Removed
+ - On x86:
+   - Support for running on Xeon Phi processors.
 
 ## [4.19.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.19.0) - 2024-07-29
 
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -30,6 +30,7 @@ if the related features are marked as su
 ### x86-64
 
     Status: Supported
+    Status, Xeon Phi: Not supported.
 
 ### ARM v7 + Virtualization Extensions
 
--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -16,7 +16,7 @@ vpath %.c $(XEN_ROOT)/xen/lib/x86
 
 CFLAGS += $(CFLAGS_xeninclude)
 
-SIMD := 3dnow sse sse2 sse4 avx avx2 xop avx512f avx512bw avx512dq avx512er avx512vbmi avx512fp16
+SIMD := 3dnow sse sse2 sse4 avx avx2 xop avx512f avx512bw avx512dq avx512vbmi avx512fp16
 FMA := fma4 fma
 SG := avx2-sg avx512f-sg
 AES := ssse3-aes avx-aes avx2-vaes avx512bw-vaes
@@ -80,9 +80,6 @@ avx512bw-flts :=
 avx512dq-vecs := $(avx512f-vecs)
 avx512dq-ints := $(avx512f-ints)
 avx512dq-flts := $(avx512f-flts)
-avx512er-vecs := 64
-avx512er-ints :=
-avx512er-flts := 4 8
 avx512vbmi-vecs := $(avx512bw-vecs)
 avx512vbmi-ints := $(avx512bw-ints)
 avx512vbmi-flts := $(avx512bw-flts)
--- a/tools/tests/x86_emulator/evex-disp8.c
+++ b/tools/tests/x86_emulator/evex-disp8.c
@@ -524,37 +524,6 @@ static const struct test avx512dq_512[]
     INSN(inserti32x8,    66, 0f3a, 3a, el_8, d, vl),
 };
 
-static const struct test avx512er_512[] = {
-    INSN(exp2,    66, 0f38, c8, vl, sd, vl),
-    INSN(rcp28,   66, 0f38, ca, vl, sd, vl),
-    INSN(rcp28,   66, 0f38, cb, el, sd, el),
-    INSN(rsqrt28, 66, 0f38, cc, vl, sd, vl),
-    INSN(rsqrt28, 66, 0f38, cd, el, sd, el),
-};
-
-static const struct test avx512pf_512[] = {
-    INSNX(gatherpf0d,  66, 0f38, c6, 1, vl, sd, el),
-    INSNX(gatherpf0q,  66, 0f38, c7, 1, vl, sd, el),
-    INSNX(gatherpf1d,  66, 0f38, c6, 2, vl, sd, el),
-    INSNX(gatherpf1q,  66, 0f38, c7, 2, vl, sd, el),
-    INSNX(scatterpf0d, 66, 0f38, c6, 5, vl, sd, el),
-    INSNX(scatterpf0q, 66, 0f38, c7, 5, vl, sd, el),
-    INSNX(scatterpf1d, 66, 0f38, c6, 6, vl, sd, el),
-    INSNX(scatterpf1q, 66, 0f38, c7, 6, vl, sd, el),
-};
-
-static const struct test avx512_4fmaps_512[] = {
-    INSN(4fmaddps,  f2, 0f38, 9a, el_4, d, vl),
-    INSN(4fmaddss,  f2, 0f38, 9b, el_4, d, vl),
-    INSN(4fnmaddps, f2, 0f38, aa, el_4, d, vl),
-    INSN(4fnmaddss, f2, 0f38, ab, el_4, d, vl),
-};
-
-static const struct test avx512_4vnniw_512[] = {
-    INSN(p4dpwssd,  f2, 0f38, 52, el_4, d, vl),
-    INSN(p4dpwssds, f2, 0f38, 53, el_4, d, vl),
-};
-
 static const struct test avx512_bf16_all[] = {
     INSN(cvtne2ps2bf16, f2, 0f38, 72, vl, d, vl),
     INSN(cvtneps2bf16,  f3, 0f38, 72, vl, d, vl),
@@ -1110,11 +1079,6 @@ void evex_disp8_test(void *instr, struct
     RUN(avx512dq, 128);
     RUN(avx512dq, no128);
     RUN(avx512dq, 512);
-    RUN(avx512er, 512);
-#define cpu_has_avx512pf cpu_has_avx512f
-    RUN(avx512pf, 512);
-    RUN(avx512_4fmaps, 512);
-    RUN(avx512_4vnniw, 512);
     RUN(avx512_bf16, all);
     RUN(avx512_bitalg, all);
     RUN(avx512_ifma, all);
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -39,7 +39,6 @@ asm ( ".pushsection .test, \"ax\", @prog
 #include "avx512bw-vpclmulqdq.h"
 #include "avx512bw-gf.h"
 #include "avx512dq.h"
-#include "avx512er.h"
 #include "avx512vbmi.h"
 #include "avx512vbmi2-vpclmulqdq.h"
 #include "avx512fp16.h"
@@ -147,11 +146,6 @@ static bool simd_check_avx512dq_vl(void)
     return cpu_has_avx512dq && cpu_has_avx512vl;
 }
 
-static bool simd_check_avx512er(void)
-{
-    return cpu_has_avx512er;
-}
-
 static bool simd_check_avx512bw(void)
 {
     return cpu_has_avx512bw;
@@ -507,10 +501,6 @@ static const struct {
     AVX512VL(DQ+VL u64x2,    avx512dq,      16u8),
     AVX512VL(DQ+VL s64x4,    avx512dq,      32i8),
     AVX512VL(DQ+VL u64x4,    avx512dq,      32u8),
-    SIMD(AVX512ER f32 scalar,avx512er,        f4),
-    SIMD(AVX512ER f32x16,    avx512er,      64f4),
-    SIMD(AVX512ER f64 scalar,avx512er,        f8),
-    SIMD(AVX512ER f64x8,     avx512er,      64f8),
     SIMD(AVX512_VBMI s8x64,  avx512vbmi,    64i1),
     SIMD(AVX512_VBMI u8x64,  avx512vbmi,    64u1),
     SIMD(AVX512_VBMI s16x32, avx512vbmi,    64i2),
@@ -4983,81 +4973,6 @@ int main(int argc, char **argv)
     }
 #endif
 
-    printf("%-40s", "Testing v4fmaddps 32(%ecx),%zmm4,%zmm4{%k5}...");
-    if ( stack_exec && cpu_has_avx512_4fmaps )
-    {
-        decl_insn(v4fmaddps);
-        static const struct {
-            float f[16];
-        } in = {{
-            1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
-        }}, out = {{
-            1 + 1 * 9 + 2 * 10 + 3 * 11 + 4 * 12,
-            2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-            16 + 16 * 9 + 17 * 10 + 18 * 11 + 19 * 12
-        }};
-
-        asm volatile ( "vmovups %1, %%zmm4\n\t"
-                       "vbroadcastss %%xmm4, %%zmm7\n\t"
-                       "vaddps %%zmm4, %%zmm7, %%zmm5\n\t"
-                       "vaddps %%zmm5, %%zmm7, %%zmm6\n\t"
-                       "vaddps %%zmm6, %%zmm7, %%zmm7\n\t"
-                       "kmovw %2, %%k5\n"
-                       put_insn(v4fmaddps,
-                                "v4fmaddps 32(%0), %%zmm4, %%zmm4%{%%k5%}")
-                       :: "c" (NULL), "m" (in), "rmk" (0x8001) );
-
-        set_insn(v4fmaddps);
-        regs.ecx = (unsigned long)&in;
-        rc = x86_emulate(&ctxt, &emulops);
-        if ( rc != X86EMUL_OKAY || !check_eip(v4fmaddps) )
-            goto fail;
-
-        asm ( "vcmpeqps %1, %%zmm4, %%k0\n\t"
-              "kmovw %%k0, %0" : "=g" (rc) : "m" (out) );
-        if ( rc != 0xffff )
-            goto fail;
-        printf("okay\n");
-    }
-    else
-        printf("skipped\n");
-
-    printf("%-40s", "Testing v4fnmaddss 16(%edx),%zmm4,%zmm4{%k3}...");
-    if ( stack_exec && cpu_has_avx512_4fmaps )
-    {
-        decl_insn(v4fnmaddss);
-        static const struct {
-            float f[16];
-        } in = {{
-            1, 2, 3, 4, 5, 6, 7, 8
-        }}, out = {{
-            1 - 1 * 5 - 2 * 6 - 3 * 7 - 4 * 8, 2, 3, 4
-        }};
-
-        asm volatile ( "vmovups %1, %%xmm4\n\t"
-                       "vaddss %%xmm4, %%xmm4, %%xmm5\n\t"
-                       "vaddss %%xmm5, %%xmm4, %%xmm6\n\t"
-                       "vaddss %%xmm6, %%xmm4, %%xmm7\n\t"
-                       "kmovw %2, %%k3\n"
-                       put_insn(v4fnmaddss,
-                                "v4fnmaddss 16(%0), %%xmm4, %%xmm4%{%%k3%}")
-                       :: "d" (NULL), "m" (in), "rmk" (1) );
-
-        set_insn(v4fnmaddss);
-        regs.edx = (unsigned long)&in;
-        rc = x86_emulate(&ctxt, &emulops);
-        if ( rc != X86EMUL_OKAY || !check_eip(v4fnmaddss) )
-            goto fail;
-
-        asm ( "vcmpeqps %1, %%zmm4, %%k0\n\t"
-              "kmovw %%k0, %0" : "=g" (rc) : "m" (out) );
-        if ( rc != 0xffff )
-            goto fail;
-        printf("okay\n");
-    }
-    else
-        printf("skipped\n");
-
     if ( stack_exec && cpu_has_avx512_bf16 )
     {
         decl_insn(vcvtne2ps2bf16);
--- a/tools/tests/x86_emulator/x86-emulate.c
+++ b/tools/tests/x86_emulator/x86-emulate.c
@@ -84,7 +84,6 @@ bool emul_test_init(void)
     cp.basic.movbe = true;
     cp.feat.invpcid = true;
     cp.feat.adx = true;
-    cp.feat.avx512pf = cp.feat.avx512f;
     cp.feat.rdpid = true;
     cp.feat.wrmsrns = true;
     cp.extd.clzero = true;
--- a/tools/tests/x86_emulator/x86-emulate.h
+++ b/tools/tests/x86_emulator/x86-emulate.h
@@ -156,7 +156,6 @@ void wrpkru(unsigned int val);
 #define cpu_has_avx512f   (cp.feat.avx512f  && xcr0_mask(0xe6))
 #define cpu_has_avx512dq  (cp.feat.avx512dq && xcr0_mask(0xe6))
 #define cpu_has_avx512_ifma (cp.feat.avx512_ifma && xcr0_mask(0xe6))
-#define cpu_has_avx512er  (cp.feat.avx512er && xcr0_mask(0xe6))
 #define cpu_has_avx512cd  (cp.feat.avx512cd && xcr0_mask(0xe6))
 #define cpu_has_sha        cp.feat.sha
 #define cpu_has_avx512bw  (cp.feat.avx512bw && xcr0_mask(0xe6))
@@ -171,8 +170,6 @@ void wrpkru(unsigned int val);
 #define cpu_has_avx512_vpopcntdq (cp.feat.avx512_vpopcntdq && xcr0_mask(0xe6))
 #define cpu_has_movdiri    cp.feat.movdiri
 #define cpu_has_movdir64b  cp.feat.movdir64b
-#define cpu_has_avx512_4vnniw (cp.feat.avx512_4vnniw && xcr0_mask(0xe6))
-#define cpu_has_avx512_4fmaps (cp.feat.avx512_4fmaps && xcr0_mask(0xe6))
 #define cpu_has_avx512_vp2intersect (cp.feat.avx512_vp2intersect && xcr0_mask(0xe6))
 #define cpu_has_serialize  cp.feat.serialize
 #define cpu_has_avx512_fp16 (cp.feat.avx512_fp16 && xcr0_mask(0xe6))
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -73,7 +73,6 @@
 #define GET_CC3_RES(val)  GET_HW_RES_IN_NS(0x3FC, val)
 #define GET_CC6_RES(val)  GET_HW_RES_IN_NS(0x3FD, val)
 #define GET_CC7_RES(val)  GET_HW_RES_IN_NS(0x3FE, val) /* SNB onwards */
-#define PHI_CC6_RES(val)  GET_HW_RES_IN_NS(0x3FF, val) /* Xeon Phi only */
 
 static void cf_check lapic_timer_nop(void) { }
 void (*__read_mostly lapic_timer_off)(void);
@@ -222,18 +221,6 @@ static void cf_check do_get_hw_residenci
         GET_CC6_RES(hw_res->cc6);
         GET_CC7_RES(hw_res->cc7);
         break;
-    /* Xeon Phi Knights Landing */
-    case 0x57:
-    /* Xeon Phi Knights Mill */
-    case 0x85:
-        GET_CC3_RES(hw_res->mc0); /* abusing GET_CC3_RES */
-        GET_CC6_RES(hw_res->mc6); /* abusing GET_CC6_RES */
-        GET_PC2_RES(hw_res->pc2);
-        GET_PC3_RES(hw_res->pc3);
-        GET_PC6_RES(hw_res->pc6);
-        GET_PC7_RES(hw_res->pc7);
-        PHI_CC6_RES(hw_res->cc6);
-        break;
     /* various Atoms */
     case 0x27:
         GET_PC3_RES(hw_res->pc2); /* abusing GET_PC3_RES */
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -875,10 +875,8 @@ static void intel_init_ppin(const struct
     case 0x4f: /* Broadwell X */
     case 0x55: /* Skylake X */
     case 0x56: /* Broadwell Xeon D */
-    case 0x57: /* Knights Landing */
     case 0x6a: /* Icelake X */
     case 0x6c: /* Icelake D */
-    case 0x85: /* Knights Mill */
     case 0x8f: /* Sapphire Rapids X */
 
         if ( (c != &boot_cpu_data && !ppin_msr) ||
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -778,22 +778,6 @@ static const struct cpuidle_state avn_cs
 	{}
 };
 
-static const struct cpuidle_state knl_cstates[] = {
-	{
-		.name = "C1",
-		.flags = MWAIT2flg(0x00),
-		.exit_latency = 1,
-		.target_residency = 2,
-	},
-	{
-		.name = "C6",
-		.flags = MWAIT2flg(0x10) | CPUIDLE_FLAG_TLB_FLUSHED,
-		.exit_latency = 120,
-		.target_residency = 500,
-	},
-	{}
-};
-
 static struct cpuidle_state __read_mostly bxt_cstates[] = {
 	{
 		.name = "C1",
@@ -1121,10 +1105,6 @@ static const struct idle_cpu idle_cpu_av
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_knl = {
-	.state_table = knl_cstates,
-};
-
 static const struct idle_cpu idle_cpu_bxt = {
 	.state_table = bxt_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
@@ -1181,8 +1161,6 @@ static const struct x86_cpu_id intel_idl
 	ICPU(ALDERLAKE,			adl),
 	ICPU(ALDERLAKE_L,		adl_l),
 	ICPU(SAPPHIRERAPIDS_X,		spr),
-	ICPU(XEON_PHI_KNL,		knl),
-	ICPU(XEON_PHI_KNM,		knl),
 	ICPU(ATOM_GOLDMONT,		bxt),
 	ICPU(ATOM_GOLDMONT_PLUS,	bxt),
 	ICPU(ATOM_GOLDMONT_D,		dnv),
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -533,10 +533,6 @@ static const struct lbr_info *__init get
             return at_lbr;
         /* Silvermont */
         case 0x37: case 0x4a: case 0x4d: case 0x5a: case 0x5d:
-        /* Xeon Phi Knights Landing */
-        case 0x57:
-        /* Xeon Phi Knights Mill */
-        case 0x85:
         /* Airmont */
         case 0x4c:
             return sm_lbr;
@@ -2984,13 +2980,6 @@ static bool __init has_if_pschange_mc(vo
     case 0x7a: /* Gemini Lake */
     case 0x86: /* Jacobsville */
 
-        /*
-         * Knights processors are not vulnerable.
-         */
-    case 0x57: /* Knights Landing */
-    case 0x85: /* Knights Mill */
-        return false;
-
     default:
         printk("Unrecognised CPU model %#x - assuming vulnerable to IF_PSCHANGE_MC\n",
                boot_cpu_data.x86_model);
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -140,7 +140,6 @@ static inline bool boot_cpu_has(unsigned
 #define cpu_has_avx512_ifma     boot_cpu_has(X86_FEATURE_AVX512_IFMA)
 #define cpu_has_clflushopt      boot_cpu_has(X86_FEATURE_CLFLUSHOPT)
 #define cpu_has_clwb            boot_cpu_has(X86_FEATURE_CLWB)
-#define cpu_has_avx512er        boot_cpu_has(X86_FEATURE_AVX512ER)
 #define cpu_has_avx512cd        boot_cpu_has(X86_FEATURE_AVX512CD)
 #define cpu_has_proc_trace      boot_cpu_has(X86_FEATURE_PROC_TRACE)
 #define cpu_has_sha             boot_cpu_has(X86_FEATURE_SHA)
@@ -174,8 +173,6 @@ static inline bool boot_cpu_has(unsigned
 #define cpu_has_auto_ibrs       boot_cpu_has(X86_FEATURE_AUTO_IBRS)
 
 /* CPUID level 0x00000007:0.edx */
-#define cpu_has_avx512_4vnniw   boot_cpu_has(X86_FEATURE_AVX512_4VNNIW)
-#define cpu_has_avx512_4fmaps   boot_cpu_has(X86_FEATURE_AVX512_4FMAPS)
 #define cpu_has_avx512_vp2intersect boot_cpu_has(X86_FEATURE_AVX512_VP2INTERSECT)
 #define cpu_has_srbds_ctrl      boot_cpu_has(X86_FEATURE_SRBDS_CTRL)
 #define cpu_has_md_clear        boot_cpu_has(X86_FEATURE_MD_CLEAR)
--- a/xen/arch/x86/include/asm/intel-family.h
+++ b/xen/arch/x86/include/asm/intel-family.h
@@ -13,8 +13,8 @@
  *	INTEL_FAM6{OPTFAMILY}_{MICROARCH}{OPTDIFF}
  * where:
  * OPTFAMILY	Describes the family of CPUs that this belongs to. Default
- *		is assumed to be "_CORE" (and should be omitted). Other values
- *		currently in use are _ATOM and _XEON_PHI
+ *		is assumed to be "_CORE" (and should be omitted). The other
+ *		value currently in use is _ATOM.
  * MICROARCH	Is the code name for the micro-architecture for this core.
  *		N.B. Not the platform name.
  * OPTDIFF	If needed, a short string to differentiate by market segment.
@@ -164,11 +164,6 @@
 
 #define INTEL_FAM6_ATOM_DARKMONT_X	0xDD /* Clearwater Forest */
 
-/* Xeon Phi */
-
-#define INTEL_FAM6_XEON_PHI_KNL		0x57 /* Knights Landing */
-#define INTEL_FAM6_XEON_PHI_KNM		0x85 /* Knights Mill */
-
 /* Family 5 */
 #define INTEL_FAM5_QUARK_X1000		0x09 /* Quark X1000 SoC */
 
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -887,11 +887,9 @@ static bool __init retpoline_calculation
     case 0x4d: /* Avaton / Rangely (Silvermont) */
     case 0x4c: /* Cherrytrail / Brasswell */
     case 0x4a: /* Merrifield */
-    case 0x57: /* Knights Landing */
     case 0x5a: /* Moorefield */
     case 0x5c: /* Goldmont */
     case 0x5f: /* Denverton */
-    case 0x85: /* Knights Mill */
         safe = true;
         break;
 
@@ -1005,13 +1003,6 @@ static bool __init should_use_eager_fpu(
     case 0x7a: /* Gemini Lake */
         return false;
 
-        /*
-         * Knights processors are not vulnerable.
-         */
-    case 0x57: /* Knights Landing */
-    case 0x85: /* Knights Mill */
-        return false;
-
     default:
         printk("Unrecognised CPU model %#x - assuming vulnerable to LazyFPU\n",
                boot_cpu_data.x86_model);
@@ -1259,13 +1250,6 @@ static __init void l1tf_calculations(voi
         case 0x7a: /* Gemini Lake */
             break;
 
-            /*
-             * Knights processors are not vulnerable.
-             */
-        case 0x57: /* Knights Landing */
-        case 0x85: /* Knights Mill */
-            break;
-
         default:
             /* Defer printk() until we've accounted for RDCL_NO. */
             hit_default = true;
@@ -1416,13 +1400,6 @@ static __init void mds_calculations(void
     case 0x65: /* SoFIA LTE AOSP */
     case 0x6e: /* Cougar Mountain */
     case 0x75: /* Lightning Mountain */
-        /*
-         * Knights processors (which are based on the Silvermont/Airmont
-         * microarchitecture) are similarly only affected by the Store Buffer
-         * aspect.
-         */
-    case 0x57: /* Knights Landing */
-    case 0x85: /* Knights Mill */
         cpu_has_bug_msbds_only = true;
         break;
 
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -564,8 +564,6 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_avx512_ifma() (ctxt->cpuid->feat.avx512_ifma)
 #define vcpu_has_clflushopt()  (ctxt->cpuid->feat.clflushopt)
 #define vcpu_has_clwb()        (ctxt->cpuid->feat.clwb)
-#define vcpu_has_avx512pf()    (ctxt->cpuid->feat.avx512pf)
-#define vcpu_has_avx512er()    (ctxt->cpuid->feat.avx512er)
 #define vcpu_has_avx512cd()    (ctxt->cpuid->feat.avx512cd)
 #define vcpu_has_sha()         (ctxt->cpuid->feat.sha)
 #define vcpu_has_avx512bw()    (ctxt->cpuid->feat.avx512bw)
@@ -582,8 +580,6 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_movdiri()     (ctxt->cpuid->feat.movdiri)
 #define vcpu_has_movdir64b()   (ctxt->cpuid->feat.movdir64b)
 #define vcpu_has_enqcmd()      (ctxt->cpuid->feat.enqcmd)
-#define vcpu_has_avx512_4vnniw() (ctxt->cpuid->feat.avx512_4vnniw)
-#define vcpu_has_avx512_4fmaps() (ctxt->cpuid->feat.avx512_4fmaps)
 #define vcpu_has_avx512_vp2intersect() (ctxt->cpuid->feat.avx512_vp2intersect)
 #define vcpu_has_serialize()   (ctxt->cpuid->feat.serialize)
 #define vcpu_has_tsxldtrk()    (ctxt->cpuid->feat.tsxldtrk)
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -6029,7 +6029,6 @@ x86_emulate(
     case X86EMUL_OPC_EVEX_66(0x0f38, 0xbd): /* vfnmadd231s{s,d} xmm/mem,xmm,xmm{k} */
     case X86EMUL_OPC_EVEX_66(0x0f38, 0xbf): /* vfnmsub231s{s,d} xmm/mem,xmm,xmm{k} */
         host_and_vcpu_must_have(avx512f);
-    simd_zmm_scalar_sae:
         generate_exception_if(ea.type != OP_REG && evex.brs, X86_EXC_UD);
         if ( !evex.brs )
             avx512_vlen_check(true);
@@ -6123,15 +6122,6 @@ x86_emulate(
         avx512_vlen_check(true);
         goto simd_zmm;
 
-    case X86EMUL_OPC_EVEX_F2(0x0f38, 0x52): /* vp4dpwssd m128,zmm+3,zmm{k} */
-    case X86EMUL_OPC_EVEX_F2(0x0f38, 0x53): /* vp4dpwssds m128,zmm+3,zmm{k} */
-        host_and_vcpu_must_have(avx512_4vnniw);
-        generate_exception_if((ea.type != OP_MEM || evex.w || evex.brs ||
-                               evex.lr != 2),
-                              X86_EXC_UD);
-        op_mask = op_mask & 0xffff ? 0xf : 0;
-        goto simd_zmm;
-
     case X86EMUL_OPC_EVEX_66(0x0f38, 0x8f): /* vpshufbitqmb [xyz]mm/mem,[xyz]mm,k{k} */
         generate_exception_if(evex.w || !evex.r || !evex.R || evex.z, X86_EXC_UD);
         /* fall through */
@@ -6601,24 +6591,6 @@ x86_emulate(
         host_and_vcpu_must_have(fma);
         goto simd_0f_ymm;
 
-    case X86EMUL_OPC_EVEX_F2(0x0f38, 0x9a): /* v4fmaddps m128,zmm+3,zmm{k} */
-    case X86EMUL_OPC_EVEX_F2(0x0f38, 0xaa): /* v4fnmaddps m128,zmm+3,zmm{k} */
-        host_and_vcpu_must_have(avx512_4fmaps);
-        generate_exception_if((ea.type != OP_MEM || evex.w || evex.brs ||
-                               evex.lr != 2),
-                              X86_EXC_UD);
-        op_mask = op_mask & 0xffff ? 0xf : 0;
-        goto simd_zmm;
-
-    case X86EMUL_OPC_EVEX_F2(0x0f38, 0x9b): /* v4fmaddss m128,xmm+3,xmm{k} */
-    case X86EMUL_OPC_EVEX_F2(0x0f38, 0xab): /* v4fnmaddss m128,xmm+3,xmm{k} */
-        host_and_vcpu_must_have(avx512_4fmaps);
-        generate_exception_if((ea.type != OP_MEM || evex.w || evex.brs ||
-                               evex.lr == 3),
-                              X86_EXC_UD);
-        op_mask = op_mask & 1 ? 0xf : 0;
-        goto simd_zmm;
-
     case X86EMUL_OPC_EVEX_66(0x0f38, 0xa0): /* vpscatterd{d,q} [xyz]mm,mem{k} */
     case X86EMUL_OPC_EVEX_66(0x0f38, 0xa1): /* vpscatterq{d,q} [xyz]mm,mem{k} */
     case X86EMUL_OPC_EVEX_66(0x0f38, 0xa2): /* vscatterdp{s,d} [xyz]mm,mem{k} */
@@ -6759,97 +6731,6 @@ x86_emulate(
         generate_exception_if(!evex.w, X86_EXC_UD);
         goto avx512f_no_sae;
 
-    case X86EMUL_OPC_EVEX_66(0x0f38, 0xc6):
-    case X86EMUL_OPC_EVEX_66(0x0f38, 0xc7):
-    {
-#ifndef __XEN__
-        typeof(evex) *pevex;
-        union {
-            int32_t dw[16];
-            int64_t qw[8];
-        } index;
-#endif
-
-        ASSERT(ea.type == OP_MEM);
-        generate_exception_if((!cpu_has_avx512f || !evex.opmsk || evex.brs ||
-                               evex.z || evex.reg != 0xf || evex.lr != 2),
-                              X86_EXC_UD);
-
-        switch ( modrm_reg & 7 )
-        {
-        case 1: /* vgatherpf0{d,q}p{s,d} mem{k} */
-        case 2: /* vgatherpf1{d,q}p{s,d} mem{k} */
-        case 5: /* vscatterpf0{d,q}p{s,d} mem{k} */
-        case 6: /* vscatterpf1{d,q}p{s,d} mem{k} */
-            vcpu_must_have(avx512pf);
-            break;
-        default:
-            generate_exception(X86_EXC_UD);
-        }
-
-        get_fpu(X86EMUL_FPU_zmm);
-
-#ifndef __XEN__
-        /*
-         * For the test harness perform zero byte memory accesses, such that
-         * in particular correct Disp8 scaling can be verified.
-         */
-        fail_if((modrm_reg & 4) && !ops->write);
-
-        /* Read index register. */
-        opc = init_evex(stub);
-        pevex = copy_EVEX(opc, evex);
-        pevex->opcx = vex_0f;
-        /* vmovdqu{32,64} */
-        opc[0] = 0x7f;
-        pevex->pfx = vex_f3;
-        pevex->w = b & 1;
-        /* Use (%rax) as destination and sib_index as source. */
-        pevex->b = 1;
-        opc[1] = (state->sib_index & 7) << 3;
-        pevex->r = !mode_64bit() || !(state->sib_index & 0x08);
-        pevex->R = !mode_64bit() || !(state->sib_index & 0x10);
-        pevex->RX = 1;
-        opc[2] = 0xc3;
-
-        invoke_stub("", "", "=m" (index) : "a" (&index));
-        put_stub(stub);
-
-        /* Clear untouched parts of the mask value. */
-        n = 1 << (4 - ((b & 1) | evex.w));
-        op_mask &= (1 << n) - 1;
-
-        for ( i = 0; rc == X86EMUL_OKAY && op_mask; ++i )
-        {
-            long idx = b & 1 ? index.qw[i] : index.dw[i];
-
-            if ( !(op_mask & (1 << i)) )
-                continue;
-
-            rc = (modrm_reg & 4
-                  ? ops->write
-                  : ops->read)(ea.mem.seg,
-                               truncate_ea(ea.mem.off +
-                                           idx * (1 << state->sib_scale)),
-                               NULL, 0, ctxt);
-            if ( rc == X86EMUL_EXCEPTION )
-            {
-                /* Squash memory access related exceptions. */
-                x86_emul_reset_event(ctxt);
-                rc = X86EMUL_OKAY;
-            }
-
-            op_mask &= ~(1 << i);
-        }
-
-        if ( rc != X86EMUL_OKAY )
-            goto done;
-#endif
-
-        state->simd_size = simd_none;
-        break;
-    }
-
     case X86EMUL_OPC(0x0f38, 0xc8):     /* sha1nexte xmm/m128,xmm */
     case X86EMUL_OPC(0x0f38, 0xc9):     /* sha1msg1 xmm/m128,xmm */
     case X86EMUL_OPC(0x0f38, 0xca):     /* sha1msg2 xmm/m128,xmm */
@@ -6860,19 +6741,6 @@ x86_emulate(
         op_bytes = 16;
         goto simd_0f38_common;
 
-    case X86EMUL_OPC_EVEX_66(0x0f38, 0xc8): /* vexp2p{s,d} zmm/mem,zmm{k} */
-    case X86EMUL_OPC_EVEX_66(0x0f38, 0xca): /* vrcp28p{s,d} zmm/mem,zmm{k} */
-    case X86EMUL_OPC_EVEX_66(0x0f38, 0xcc): /* vrsqrt28p{s,d} zmm/mem,zmm{k} */
-        host_and_vcpu_must_have(avx512er);
-        generate_exception_if((ea.type != OP_REG || !evex.brs) && evex.lr != 2,
-                              X86_EXC_UD);
-        goto simd_zmm;
-
-    case X86EMUL_OPC_EVEX_66(0x0f38, 0xcb): /* vrcp28s{s,d} xmm/mem,xmm,xmm{k} */
-    case X86EMUL_OPC_EVEX_66(0x0f38, 0xcd): /* vrsqrt28s{s,d} xmm/mem,xmm,xmm{k} */
-        host_and_vcpu_must_have(avx512er);
-        goto simd_zmm_scalar_sae;
-
     case X86EMUL_OPC_VEX_F2(0x0f38, 0xcb): /* vsha512rnds2 xmm,ymm,ymm */
     case X86EMUL_OPC_VEX_F2(0x0f38, 0xcc): /* vsha512msg1 xmm,ymm */
     case X86EMUL_OPC_VEX_F2(0x0f38, 0xcd): /* vsha512msg2 ymm,ymm */
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -208,8 +208,8 @@ XEN_CPUFEATURE(AVX512_IFMA,   5*32+21) /
 XEN_CPUFEATURE(CLFLUSHOPT,    5*32+23) /*A  CLFLUSHOPT instruction */
 XEN_CPUFEATURE(CLWB,          5*32+24) /*!A CLWB instruction */
 XEN_CPUFEATURE(PROC_TRACE,    5*32+25) /*   Processor Trace */
-XEN_CPUFEATURE(AVX512PF,      5*32+26) /*A  AVX-512 Prefetch Instructions */
-XEN_CPUFEATURE(AVX512ER,      5*32+27) /*A  AVX-512 Exponent & Reciprocal Instrs */
+XEN_CPUFEATURE(AVX512PF,      5*32+26) /*   Xeon Phi AVX-512 Prefetch Instructions */
+XEN_CPUFEATURE(AVX512ER,      5*32+27) /*   Xeon Phi AVX-512 Exponent & Reciprocal Instrs */
 XEN_CPUFEATURE(AVX512CD,      5*32+28) /*A  AVX-512 Conflict Detection Instrs */
 XEN_CPUFEATURE(SHA,           5*32+29) /*A  SHA1 & SHA256 instructions */
 XEN_CPUFEATURE(AVX512BW,      5*32+30) /*A  AVX-512 Byte and Word Instructions */
@@ -264,8 +264,8 @@ XEN_CPUFEATURE(BTC_NO,        8*32+29) /
 XEN_CPUFEATURE(IBPB_RET,      8*32+30) /*A  IBPB clears RSB/RAS too. */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:0.edx, word 9 */
-XEN_CPUFEATURE(AVX512_4VNNIW, 9*32+ 2) /*A  AVX512 Neural Network Instructions */
-XEN_CPUFEATURE(AVX512_4FMAPS, 9*32+ 3) /*A  AVX512 Multiply Accumulation Single Precision */
+XEN_CPUFEATURE(AVX512_4VNNIW, 9*32+ 2) /*   Xeon Phi AVX512 Neural Network Instructions */
+XEN_CPUFEATURE(AVX512_4FMAPS, 9*32+ 3) /*   Xeon Phi AVX512 Multiply Accumulation Single Precision */
 XEN_CPUFEATURE(FSRM,          9*32+ 4) /*A  Fast Short REP MOVS */
 XEN_CPUFEATURE(UINTR,         9*32+ 5) /*   User-mode Interrupts */
 XEN_CPUFEATURE(AVX512_VP2INTERSECT, 9*32+8) /*a  VP2INTERSECT{D,Q} insns */


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 11:25:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 11:25:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767620.1178292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYkyo-0001Y2-VK; Tue, 30 Jul 2024 11:25:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767620.1178292; Tue, 30 Jul 2024 11: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 1sYkyo-0001Xv-SZ; Tue, 30 Jul 2024 11:25:22 +0000
Received: by outflank-mailman (input) for mailman id 767620;
 Tue, 30 Jul 2024 11: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=3FYA=O6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYkyn-0001Xp-Jz
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 11:25:21 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67232e3d-4e66-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 13:25:19 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-52f04b3cb33so9994002e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 04:25:19 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52fd5bd127csm1840913e87.89.2024.07.30.04.25.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 04: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: 67232e3d-4e66-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722338719; x=1722943519; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=0hoR/d+VPn4QBGvGRPEFrniE/WxftGNXc+fruYl+EEY=;
        b=U5gryV6cPwgZNQVCkW6dMjtu3AGT4FFrQuTDry/bam7lM1+SwWif34XqyYmnGvfmv3
         NXqb7UxJWyaewiUPqA41RzhbUvGVo1TtYpLpL0S+Ouzu5PaX+mgkheCt/U+aRz5b9nj8
         BaSRcbNF6cRNzvyplvg0bEme48hHwZv2/hO3y2sGVjP4e30zPAAZKGM6t01u9+PJEKIO
         bm+xwhDdIHnXKnezljC6swWK2zNrXcy4malwiU2waL5I1KldtRlLNOZupwknVheofExc
         8w3fI9WjsJS5GD7S1RA1kb0bJiEExK6A8zpmPS5BxZHGvPFA5C8oNIWzCRYUl0rf2byC
         U56A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722338719; x=1722943519;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0hoR/d+VPn4QBGvGRPEFrniE/WxftGNXc+fruYl+EEY=;
        b=Kv9TMU6wvssvMFasIyphM6UfBSb93nSjH0yvMwvhFTRA8Oq69x6qq+3otqGcwvr0Fx
         syxvm2qiJU5G1zzLWGJxsYgHwulEasSCvejxFqDnI36+awpuDPFe7i761SD9wPMq+qnE
         IFkxbJz/IFdG+hzzCNm7PPxs51M6zIePL1oOojTHOOONHcuhUooWr7FpxXuv6/UlWQCw
         dJGqFoafkreMCckRQxgiFMW4Mgw2d8XMrJTlzF58rn6P5/2HA6gRK3OwYDbAa1d2B7sI
         A6eyJ3gTO2hGYzwodIV7a6sXquOf3GNly+VoAGhSZ0N30iheH6TFxb61QGLd5mAatMY+
         6RMQ==
X-Forwarded-Encrypted: i=1; AJvYcCXm6cYRyUoCLaKAwrHO5axwe/89CiFf2s6EYNA4WC80yrhsgV2ZyZeYWV65gUE+yWXTwaCwZF4yFKD42AYrYelPpDO5A9OfHQopNlkdV10=
X-Gm-Message-State: AOJu0YwasNs2lQercZiVuAoFWBmFH73IfA0m4jPmyxHYcRZL1MQoZCkB
	ss01gNlXZy96RRnq0fCvJp9mIq+dtB/Jz8siogu1dOULoWYGV7ZT
X-Google-Smtp-Source: AGHT+IGvs7BT8cO+/OX0o4u7JKi5jhVEZNiHYHBQdxe3xyJLlGhwdCuFs4YLeVmsLcbYNTV3aFpY/A==
X-Received: by 2002:a05:6512:39c1:b0:52e:fa5f:b6a7 with SMTP id 2adb3069b0e04-5309b2706eamr11058855e87.13.1722338718721;
        Tue, 30 Jul 2024 04:25:18 -0700 (PDT)
Message-ID: <2803670c49bdce4ef5982e7d149c77dda0701a31.camel@gmail.com>
Subject: Re: [PATCH v3 4/9] xen/riscv: setup fixmap mapping
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
 <michal.orzel@amd.com>
Date: Tue, 30 Jul 2024 13:25:17 +0200
In-Reply-To: <8b8b0304-9f6f-4ded-a451-edc8fdd0e52a@suse.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
	 <04576976b82b97442f645b83b3d62475d144af8e.1721834549.git.oleksii.kurochko@gmail.com>
	 <917cc521-c0c4-49e8-bc40-948679398bc6@suse.com>
	 <28d646ba3d95da2eaf40869e1c07d950a0f3f203.camel@gmail.com>
	 <8b8b0304-9f6f-4ded-a451-edc8fdd0e52a@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-30 at 09:49 +0200, Jan Beulich wrote:
> On 29.07.2024 18:11, oleksii.kurochko@gmail.com=C2=A0wrote:
> > On Mon, 2024-07-29 at 15:35 +0200, Jan Beulich wrote:
> > > On 24.07.2024 17:31, Oleksii Kurochko wrote:
> > > > @@ -81,6 +82,14 @@ static inline void
> > > > flush_page_to_ram(unsigned
> > > > long mfn, bool sync_icache)
> > > > =C2=A0=C2=A0=C2=A0=C2=A0 BUG_ON("unimplemented");
> > > > =C2=A0}
> > > > =C2=A0
> > > > +/* Write a pagetable entry. */
> > > > +static inline void write_pte(pte_t *p, pte_t pte)
> > > > +{
> > > > +=C2=A0=C2=A0=C2=A0 RISCV_FENCE(rw, rw);
> > > > +=C2=A0=C2=A0=C2=A0 *p =3D pte;
> > > > +=C2=A0=C2=A0=C2=A0 RISCV_FENCE(rw, rw);
> > > > +}
> > >=20
> > > Why the first of the two fences?=C2=A0
> > To ensure that writes have completed with the old mapping.
>=20
> Wait: There can certainly be uncompleted writes, but those must have
> walked the page tables already, or else a (synchronous) fault could
> not be delivered on the originating store instruction. Or am I
> misunderstanding how paging (and associated faults) work on RISC-V?
I am not sure that I correctly understand the part regarding (
synchronous ) fault. Could you please come up with an example?

If something during page table walk will go wrong then a fault will be
raised.

My initial intension was to be sure if I will be writing to an actively
in-use page table that other cores can see at the time then fences
above are required. It is not the case for now as we have only one CPUs
but I assume that it will be a case when SMP will be enabled and more
then one CPU will be able to work with the same page table.

>>> And isn't having the 2nd here going
>> to badly affect batch updates of page tables?
>> By batch you mean update more then one pte?
>> It yes, then it will definitely affect. It could be dropped here but
>> could we do something to be sure that someone won't miss to add
>> fence/barrier?

> Well, imo you first want to spell out where the responsibilities for
> fencing lies. Then follow the spelled out rules in all new code you
> add.
It makes sense. It would we nice if someone can help me with that.

>=20
> > > > +=C2=A0=C2=A0=C2=A0 }
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 BUG_ON(pte_is_valid(*pte));
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 tmp =3D paddr_to_pte(LINK_TO_LOAD((unsigned
> > > > long)&xen_fixmap),
> > > > PTE_TABLE);
> > >=20
> > > I'm a little puzzled by the use of LINK_TO_LOAD() (and
> > > LOAD_TO_LINK()
> > > a
> > > little further up) here. Don't you have functioning __pa() and
> > > __va()?
> > No, they haven't been introduced yet.
>=20
> So you're building up more technical debt, as the use of said two
> constructs really should be limited to very early setup. Aiui once
> you have functioning __va() / __pa() the code here would want
> changing?

Ideally yes, it would want to changed.

Would it be the better solution to define __va() and __pa() using
LOAD_TO_LINK()/LINK_TO_LOAD() so when "real" __va() and __pa() will be
ready so only definitions of __va() and __pa() should be changed.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 11:29:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 11:29:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767627.1178301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYl2y-0003Th-Ep; Tue, 30 Jul 2024 11:29:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767627.1178301; Tue, 30 Jul 2024 11:29:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYl2y-0003Ta-C1; Tue, 30 Jul 2024 11:29:40 +0000
Received: by outflank-mailman (input) for mailman id 767627;
 Tue, 30 Jul 2024 11: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=P4le=O6=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1sYl2w-0003S4-Ej
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 11:29:38 +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 fed7585d-4e66-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 13:29:35 +0200 (CEST)
Received: from mail.zoho.com by mx.zohomail.com
 with SMTP id 1722338963377848.0522511693326;
 Tue, 30 Jul 2024 04:29: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: fed7585d-4e66-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1722338970; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Rgq9EhtoexiuQDu1Fbnu8DGiodgcmVVjR5NbtTJHC+wgGChb7KVzuBvGohQRcwF/3jdNodpnLFY7gO4BCgwW5AVTvKxs9OIoke8p+Pfh8ovFuTd95D/IrPOtyDchyGbB4E6T5Cwr5heZ4FrYpGY6NpeJ3B0V25m6+A1kjHrgB/I=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1722338970; 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=3n0fFlr23F33EHRPuG52P3Z9RgdRTwzGTNI2w+2PThs=; 
	b=Ax/BKP3OP72pqMfv/3C0rPb1xBatb4B7owOEAy9catvZ9XPrVZm62328JdGh7MDUE+LJj9Z/OceQ9J2Elb/iOhGn3rArhOs029KqDBHCYw3VsPpP9QPfP/i+kvc84Yu29lC/T7goCn77Y4tn84wdO7VX3YrCEjHRflnHguVXwv0=
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=1722338970;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Date:Date:From:From:To:To:Cc:Cc:Message-ID:In-Reply-To:References:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=3n0fFlr23F33EHRPuG52P3Z9RgdRTwzGTNI2w+2PThs=;
	b=nFexUMmr2L/a+oijKOzxMBfF74GIDT5bP8T91fo8wlr+2wCJArJP6czPV/Dg0Y93
	BzF/wvCrxKceTKDuSuX+W1mpcLFaxcK7z1zZib5rSRxqoK3mfOBdVSEi2XhfGls5UWN
	/lssIk7ArHdnZ5IrYw9/Zb1DE0vDYM0E+Kg4GJPg=
Date: Tue, 30 Jul 2024 07:29:23 -0400
From: Daniel Smith <dpsmith@apertussolutions.com>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>
Cc: "Xen-devel" <xen-devel@lists.xenproject.org>,
	"Ross Lagerwall" <ross.lagerwall@citrix.com>,
	"Jan Beulich" <JBeulich@suse.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Julien Grall" <julien@xen.org>
Message-ID: <1910366ef2d.eeaec081551070.1936079822786945233@apertussolutions.com>
In-Reply-To: <20240729162651.571991-1-andrew.cooper3@citrix.com>
References: <20240729162651.571991-1-andrew.cooper3@citrix.com>
Subject: Re: [PATCH] XSM/domctl: Fix permission checks on
 XEN_DOMCTL_createdomain
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Importance: Medium
User-Agent: Zoho Mail
X-Mailer: Zoho Mail

---- On Mon, 29 Jul 2024 12:26:51 -0400 Andrew Cooper  wrote ---

 > The XSM checks for XEN_DOMCTL_createdomain are problematic.  There's a split 
 > between xsm_domctl() called early, and flask_domain_create() called quite late 
 > during domain construction. 
 >  
 > All XSM implementations except Flask have a simple IS_PRIV check in 
 > xsm_domctl(), and operate as expected when an unprivileged domain tries to 
 > make a hypercall. 
 >  
 > Flask however foregoes any action in xsm_domctl() and defers everything, 
 > including the simple "is current permitted to create a a domain" check, to 
 > flask_domain_create(). 
 >  
 > As a conseqeuence, when XSM Flask is active, and irrespective of the policy 
 > loaded, all domains irrespective of privilege can: 
 >  
 >  * Mutate the global 'rover' variable, used to track the next free domid. 
 >  Therefore, all domains can cause a domid wraparound, and combined with a 
 >  volentary reboot, choose their own domid. 
 >  
 >  * Cause a reasonable amount of a domain to be constructed before ultimately 
 >  failing for permission reasons, including the use of settings outside of 
 >  supported limits. 
 >  
 > In order to remedate this, pass the ssidref into xsm_domctl() and at least 
 > check that the calling domain privileged enough to create domains. 
 >  
 > This issue has not been assigned an XSA, because Flask is experimental and not 
 > security supported. 
 >  
 > Reported-by: Ross Lagerwall ross.lagerwall@citrix.com> 
 > Signed-off-by: Andrew Cooper andrew.cooper3@citrix.com> 
 > --- 
 
Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 11:38:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 11:38:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767636.1178312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlBD-0005j3-8V; Tue, 30 Jul 2024 11:38:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767636.1178312; Tue, 30 Jul 2024 11:38:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlBD-0005iw-4s; Tue, 30 Jul 2024 11:38:11 +0000
Received: by outflank-mailman (input) for mailman id 767636;
 Tue, 30 Jul 2024 11:38: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=P4le=O6=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1sYlBB-0005iq-C8
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 11:38:09 +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 2fb14f7b-4e68-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 13:38:07 +0200 (CEST)
Received: from mail.zoho.com by mx.zohomail.com
 with SMTP id 1722339476675366.8932505596366;
 Tue, 30 Jul 2024 04:37: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: 2fb14f7b-4e68-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1722339483; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Jjbtz1/mxkRYC7/0pPTRdgwgzpsVoOSCWgetmM3yKCGOLSm+MLYNH6fKsH2eWNbNnDAD+DreyoAHDElBT4IMR7VdpoIErts2MWPyJXQ89QLzEuAIpiMRrYJh47xpUpPCwufwBy3TK5QM7m9PSetZ5Pa079OBhxszQt4jZp8/vkQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1722339483; 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=PvnRetwX0f8CpuOHuXbaTB1vKIy4u7RL8rIG58UWOUU=; 
	b=VdCNngthCF+kePiuJVN1k4sol58Wh7uHsQz+DgJnE/EJHMZE+yhfaOkQosqJ+lk0jtPKVhlod59H1nKRta/ohkGS+GB+ZJBtq+KX5hMLumpgKHKAQcQApz9FHxzxb54bSXF0L3CyiWisVG+elGAuQFF1VNJNA5yHfBP/x9jvrhs=
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=1722339483;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Date:Date:From:From:To:To:Cc:Cc:Message-ID:In-Reply-To:References:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=PvnRetwX0f8CpuOHuXbaTB1vKIy4u7RL8rIG58UWOUU=;
	b=de8vYL2q8yuAl9GJtjZG2pL5NBoO+bdVfMLKxp7XG/X8CrdBjRiTgNr2wnsc90gY
	Z/I1I5Y9P+r66y9Ms/KW/hHbA3FzDCpyEOoXhgQJd6FJArQfpQ0qabEdy6mFWst+lIq
	PLspf8rVnBDq3rq0qi9/E1StKP+I5gJ3YarGIHFI=
Date: Tue, 30 Jul 2024 07:37:56 -0400
From: Daniel Smith <dpsmith@apertussolutions.com>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Julien Grall" <julien@xen.org>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Message-ID: <191036ec4af.b419d861552194.691516900344490021@apertussolutions.com>
In-Reply-To: <d7289554-258b-4f75-858b-64005e9ae9be@suse.com>
References: <d7289554-258b-4f75-858b-64005e9ae9be@suse.com>
Subject: Re: [PATCH] SUPPORT.md: split XSM from Flask
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Importance: Medium
User-Agent: Zoho Mail
X-Mailer: Zoho Mail

---- On Tue, 30 Jul 2024 06:57:08 -0400 Jan Beulich  wrote ---

 > XSM is a generic framework, which in particular is also used by SILO. 
 > With this it can't really be experimental: Arm enables SILO by default. 
 >  
 > Signed-off-by: Jan Beulich jbeulich@suse.com> 
 >  
 > --- a/SUPPORT.md 
 > +++ b/SUPPORT.md 
 > @@ -768,13 +768,20 @@ Compile time disabled for ARM by default 
 >  
 >  Status, x86: Supported, not security supported 
 >  
 > -### XSM & FLASK 
 > +### XSM 
 > + 
 > +    Status: Supported 
 > + 
 > +See below for use with FLASK and SILO.  The dummy implementation is covered here 
 > +as well. 
 > + 
 > +### XSM + FLASK 

To me it would make more sense to say XSM FLASK Policy than XSM + FLASK.

 >  Status: Experimental 
 >  
 >  Compile time disabled by default. 
 >  
 > -Also note that using XSM 
 > +Also note that using FLASK 
 >  to delegate various domain control hypercalls 
 >  to particular other domains, rather than only permitting use by dom0, 
 >  is also specifically excluded from security support for many hypercalls. 
 > @@ -787,6 +794,10 @@ Please see XSA-77 for more details. 
 >  The default policy includes FLASK labels and roles for a "typical" Xen-based system 
 >  with dom0, driver domains, stub domains, domUs, and so on. 
 >  
 > +### XSM + SILO 

Same here, XSM SILO Policy.

 > +    Status: Supported 
 > + 
 >  ## Virtual Hardware, Hypervisor 
 >  
 >  ### x86/Nested PV 
 > 

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 11:39:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 11:39:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767642.1178322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlCH-0006NG-I6; Tue, 30 Jul 2024 11:39:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767642.1178322; Tue, 30 Jul 2024 11:39:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlCH-0006N9-Eg; Tue, 30 Jul 2024 11:39:17 +0000
Received: by outflank-mailman (input) for mailman id 767642;
 Tue, 30 Jul 2024 11:39: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=3FYA=O6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYlCG-0006Li-4i
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 11:39:16 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5896fbb7-4e68-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 13:39:14 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-52efbb55d24so6720388e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 04:39:14 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52fd5c0839bsm1849883e87.168.2024.07.30.04.39.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 04: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: 5896fbb7-4e68-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722339554; x=1722944354; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=UC3MDCHQrzzin0QjqNNR+3f4CmqCkUqJ6ZT8s6CwG1s=;
        b=lMJODSF+2HkvTMj6HdZgP9u9KZx4TqVLcqSdbmC9W3+QQ5iSB1GvztDwX7ECDnBm6k
         M/mHcEe7ReNCvKx7rCTeOfYF9lScoxy7WboCx6ZoshYrKH3KRuctVpZJFBO9R7Zp6HW/
         xF5vydEKfdpTZgNxBkpxTtulMGGa9g+qy24XZAZ6sxHLHm3H86GTeFQSZ23GLfWYyeW2
         wJZ5fh6SofGlPCydBeqG9c9CIIilx/6k6J/v+kUKIwgg60zUvam64u2NjEhO8emb1j9j
         gRP+uF0Y8vkocP1ef1mP7LbWuL9TqMRyM1+C1O2bZwaYajNKsPjSJZIqIRfAHNpqCLI/
         kw7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722339554; x=1722944354;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=UC3MDCHQrzzin0QjqNNR+3f4CmqCkUqJ6ZT8s6CwG1s=;
        b=M7URRSZBZLlcIcZo8j25lqm0/UKP4CZfMSX4iqyn/bl6og4UHA3noMkySUFbva1Q/E
         PYYyilTPXEfX5Hutj6iWqI9ptC5jbzS8D0II4k3Go84JcGWOuyu+vtT87eeQ2+UZcKPF
         PANTw+AIF2LA+KSKQ2LV6ecUP6IbnRfxHUmcdP2Jv28vuFxmg4MwwsvNjupTSnhjsaKV
         rZW21U0ehS04EkJRwYxYQEdufdUvMOF+wpKJQNSaeT0Y/dXY6O9JWK3ZVjSWBMcZb6RH
         wNJ+7cnxUlRpe1wHniHNRm9XAVc7RSDXyKUfHEFbsA6TT8bqc6xYi/h3wVRXTIOIwBLQ
         IWrA==
X-Forwarded-Encrypted: i=1; AJvYcCVBrhFPMM8/U/8T3YY+OxDYSTsDNJGMFsCtoTQEP0mfK3bn429qX0s7Jq7k26CAayS5BX422gTyse0mPWuZS2sTYxrgWHgFc/9ialg9i8M=
X-Gm-Message-State: AOJu0YxVF7eUK7FMPNElRyHALAKnFsAleiESmhcsfsDbbvFbxYMKBeR7
	aBCEAW0I5a9LKOgCb415OMl4+N5kmslFgiyqRpK5//yZ/MD8+Xd1
X-Google-Smtp-Source: AGHT+IFtXPtKWLrORtc/uhsAN6ZYUwBt75velvukHMvv3bkIxOXSTmQYpcIpr60LInE4UD3ebrha3A==
X-Received: by 2002:a05:6512:3da2:b0:52c:dd94:bda9 with SMTP id 2adb3069b0e04-5309b2d8a9cmr10045073e87.56.1722339553288;
        Tue, 30 Jul 2024 04:39:13 -0700 (PDT)
Message-ID: <035f836a53966194048df5b720b94a78b0a490ae.camel@gmail.com>
Subject: Re: [PATCH v3 5/9] xen/riscv: introduce asm/pmap.h header
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Tue, 30 Jul 2024 13:39:12 +0200
In-Reply-To: <6c2ebc9e-cc0d-4139-80a2-4d7025989a9e@suse.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
	 <11b5487659a9c76793e520c108cd92c6c84b908d.1721834549.git.oleksii.kurochko@gmail.com>
	 <3359e37e-eaae-49ca-80a5-2bf70b9b46c7@suse.com>
	 <78effb178b1ffe7ccb1714a13157e94f5e816b01.camel@gmail.com>
	 <6c2ebc9e-cc0d-4139-80a2-4d7025989a9e@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-30 at 09:56 +0200, Jan Beulich wrote:
> On 29.07.2024 18:22, oleksii.kurochko@gmail.com=C2=A0wrote:
> > On Mon, 2024-07-29 at 16:29 +0200, Jan Beulich wrote:
> > > On 24.07.2024 17:31, Oleksii Kurochko wrote:
> > > > --- /dev/null
> > > > +++ b/xen/arch/riscv/include/asm/pmap.h
> > > > @@ -0,0 +1,33 @@
> > > > +/* SPDX-License-Identifier: GPL-2.0 */
> > > > +#ifndef ASM_PMAP_H
> > > > +#define ASM_PMAP_H
> > > > +
> > > > +#include <xen/bug.h>
> > > > +#include <xen/mm.h>
> > > > +#include <xen/page-size.h>
> > > > +
> > > > +#include <asm/fixmap.h>
> > > > +#include <asm/flushtlb.h>
> > > > +#include <asm/system.h>
> > > > +
> > > > +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
> > > > +{
> > > > +=C2=A0=C2=A0=C2=A0 pte_t *entry =3D &xen_fixmap[slot];
> > > > +=C2=A0=C2=A0=C2=A0 pte_t pte;
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 ASSERT(!pte_is_valid(*entry));
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 pte =3D mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_R=
W);
> > > > +=C2=A0=C2=A0=C2=A0 write_pte(entry, pte);
> > > > +}
> > >=20
> > > Perhaps add a comment to clarify why it's safe to omit a TLB
> > > flush
> > > here.
> > > Note that arch_pmap_unmap() having one is a necessary but not
> > > sufficient
> > > condition to that. In principle hardware may also cache
> > > "negative"
> > > TLB
> > > entries; I have no idea how RISC-V behaves in this regard, or
> > > whether
> > > that aspect is actually left to implementations.
> > what do you mean by "negative" TLB? an old TLB entry which should
> > be
> > invalidated?
>=20
> No, I mean TLB entries saying "no valid translation here". I.e.
> avoiding
> recurring walks of something that was once found to have no
> translation.
But we can't modify an existent entry because we have
"ASSERT(!pte_is_valid(*entry))" in pmap_map() function and we are doing
TLB flush during pmap_unmap(). So when we will be in pmap_map() we are
sure that there is no TLB entry for the new pte.

>=20
> > > > +static inline void arch_pmap_unmap(unsigned int slot)
> > > > +{
> > > > +=C2=A0=C2=A0=C2=A0 pte_t pte =3D {};
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 write_pte(&xen_fixmap[slot], pte);
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 flush_xen_tlb_range_va_local(FIXMAP_ADDR(slot),
> > > > PAGE_SIZE);
> > > > +}
> > >=20
> > > For both functions, even if mainly for documentation purposes, it
> > > may
> > > be desirable to mark them __init. It's again a necessary (but not
> > > sufficient) condition here, to validly use local TLB flushes
> > > only.
> > Does __init in this context means that it will be called only by
> > boot
> > cpu at the start and that is it?
>=20
> No, and I said so in my reply. __init is indicative of the function
> not
> being suitable for runtime use, but it is not enough to indicate the
> function is also unsuitable for use as soon as a 2nd CPU is being
> brought
> up. Yet for the latter we have no proper annotation. Hence my
> suggestion
> to use the former to have at least a limited indicator.
>=20
> An alternative might be to add ASSERT(system_state <
> SYS_STATE_smp_boot).
> That, however, exists in common/pmap.c already anyway.
>=20
> Yet another alternative would be a clarifying comment.
Thanks for clarifying. I will stick to the first option with __init.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 11:57:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 11:57:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767654.1178331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlTt-0003Da-00; Tue, 30 Jul 2024 11:57:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767654.1178331; Tue, 30 Jul 2024 11: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 1sYlTs-0003DT-T8; Tue, 30 Jul 2024 11:57:28 +0000
Received: by outflank-mailman (input) for mailman id 767654;
 Tue, 30 Jul 2024 11:57: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=3FYA=O6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYlTr-0003DN-Kt
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 11:57:27 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3ba3093-4e6a-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 13:57:26 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2f0271b0ae9so57035491fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 04:57:26 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2f03cf0e36csm16221771fa.17.2024.07.30.04.57.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 04: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: e3ba3093-4e6a-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722340646; x=1722945446; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=hTV+zVkIo80oYqLoPlPSB0a9atR1wKZVsLTIyEXTZDA=;
        b=VRq8l3KyxgmcPwkyBtPKGKZTnoC1VD2O3Q40W0CJe20JUJ4WtGReo1PENVvHDXGLaZ
         lszBA9iClDVnTd4Lw64hHdHHrYoLPfFH52A4qyH5XgrrVCV1iouUeyPbsqWeUrt9j+rK
         3YMxtAxkqLj+rsqfP1kmfliZ0dnNfa3uCokdetei27jlp1NYE+ECctvMWeTVeGZJHlC6
         4x5j92NEDIRB60odgRnUfgXFUXcfcNoG/skX2TnIARdwQ0/qabBlIdWEIm6ET923KeDL
         bov0kNEAHvhYf5+9tCd3kaWC/KH4Px9VgTYCf077Wzc8dOQTa+cG0bwZdne8McVJVsaQ
         GmKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722340646; x=1722945446;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=hTV+zVkIo80oYqLoPlPSB0a9atR1wKZVsLTIyEXTZDA=;
        b=VgjYcjfzMfqPo+a8dEskdoJRndqgM9HaByEHBoX3swhqnQWwRfy+cel0KBOxVwy7XI
         4z+zO6OGlMxCBR517PJ0JKUJh59qomSXQ0HrOZGq52bMsJAyL1h1AlJCpWG/sKk1ltC/
         64JJXxm1Cjz9U6ggoLyrCa3VMHqyDorCiqWpQZRocLqPamgPnwEhriLLDclkW7bROmkw
         FnMnDjn46mqw178lhrd+eup2qWW75h7jHxETwOepPL7wtaTBbP2rMP7bfxLTavxB/iVe
         qj7aMXoy/a2wcupWWLQZgU9bLCBc+KXAyS/ApGer3XasbsLcNKeeDlbqd14Z7KA4zKv3
         bHBg==
X-Forwarded-Encrypted: i=1; AJvYcCXp75JRShMCNnZuwQrLZhpneDR1by89up9O5YK+lMujpvTAeg6+GRd4qcIb1JHTEwPhMHvxSUyuh3doEDRzfBrYlU50BPrV3dfTQog5vnI=
X-Gm-Message-State: AOJu0YwfDvIUGiacqEuG4hl85H43Csa6gmiRftXPFkXGmT8l7VgA+8d3
	bVIUIvBtpBGHqFU8ezQl9kw39aMNj9rXVAXnXIsOJ4cdriOtbhpZ
X-Google-Smtp-Source: AGHT+IGJ0lEIRSkGQTBAGeo8+B+N/LIurDoNsV+q8arDlGAkOZ382oS/JjT9rdNJLQ0F5HGNsqjrzQ==
X-Received: by 2002:a2e:a595:0:b0:2ec:3d74:88ca with SMTP id 38308e7fff4ca-2f12edd6041mr74798121fa.25.1722340645669;
        Tue, 30 Jul 2024 04:57:25 -0700 (PDT)
Message-ID: <23ef6ff003d4170269eedfc7d3354965f060ba3f.camel@gmail.com>
Subject: Re: [PATCH v3 7/9] xen/riscv: introduce and init SBI RFENCE
 extension
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Tue, 30 Jul 2024 13:57:24 +0200
In-Reply-To: <97554cbe-7009-4bc9-8205-7a9e0f29aad0@suse.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
	 <fb2d24731f870378d79077be39b1bc19cc655327.1721834549.git.oleksii.kurochko@gmail.com>
	 <49d3a181-0830-4f55-83a4-c6c9fd54eb17@suse.com>
	 <b7433d25bb3ca7a0f4e54f561b450b5724fb46dc.camel@gmail.com>
	 <97554cbe-7009-4bc9-8205-7a9e0f29aad0@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-30 at 11:17 +0200, Jan Beulich wrote:
> On 30.07.2024 10:44, oleksii.kurochko@gmail.com=C2=A0wrote:
> > On Mon, 2024-07-29 at 17:52 +0200, Jan Beulich wrote:
> > > On 24.07.2024 17:31, Oleksii Kurochko wrote:
> > >=20
> > >=20
> > > > +/*
> > > > + * Send SFENCE_VMA to a set of target HARTs.
> > > > + *
> > > > + * @param hart_mask mask representing set of target HARTs
> > > > + * @param start virtual address start
> > > > + * @param size virtual address size
> > >=20
> > > Are these really virtual addresses, not somehow a bias and a
> > > number
> > > of bits (CPUs) or elements? From the rest of the patch I can't
> > > deduce
> > > what these two parameters express.
> > According to SBI doc start is an virtual address:
> > https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-rfen=
ce.adoc?plain=3D1#L44
>=20
> Oh, so these are describing the VA range to be flushed. Okay.
>=20
> > and hart_mask is:
> > =E2=80=A2 unsigned long hart_mask is a scalar bit-vector containing har=
tids
>=20
> Biased by hart_mask_base in the actual SBI call.
What word "biased" mean here?

>=20
> > > > +
> > > > +static void sbi_cpumask_to_hartmask(const struct cpumask
> > > > *cmask,
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=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 cpumask *hmask)
> > >=20
> > > I doubt it is valud to re-use struct cpumask for hart maps.
> > Why not? Would it be better to use unsigned long *hmask?
>=20
> It's not only better, but imo a requirement. Unless there's a
> guarantee
> by the spec that hart IDs for any subset of harts are sequential and
> starting from 0, you just can't assume they fall in the [0,NR_CPUS)
> or
> really [0,nr_cpu_ids) range. Yet without that you simply can't
> (ab)use
> struct cpumask (and btw it wants to be cpumask_t everywhere).
It is guarantee that hart ID 0 will be present but not that they are
numbered contiguously:
```
Hart IDs might
not necessarily be numbered contiguously in a multiprocessor system,
but at least one hart must
have a hart ID of zero. Hart IDs must be unique within the execution
environment.
```
I have to rework then this things around sbi_cpumask_to_hartmask().

>=20
> You may want to take a look at struct physid_mask that we have on x86
> for the equivalent purpose.
Thanks I will look at.

> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 continue;
> > >=20
> > >=20
> > > Can you really sensibly continue in such a case?
> > I think yes, the worst thing we will have is that the "bad" CPU
> > won't
> > be used.
> > But it might be better to switch to BUG_ON() as if we are inised
> > the
> > "if CONFIG_NR_CPUS <=3D cpu" then it could tell us that something
> > went
> > wrong.
>=20
> Again - your problem here isn't the range of "cpu". What you instead
> want to check is ...
>=20
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hart =3D
> > > > cpuid_to_hartid_map(pcpu_info[cpu].processor_id);
>=20
> the hart ID that you get back. If that's INVALID_HARTID, you're in
> fact in trouble.
>=20
> > > What does "_map" in the function/macro name signify?
> > It is interconnections/correllation between Xen's CPU id and Hart's
> > id.
>=20
> Well. What the function does internally is consult the map. Yet
> that's
> not relevant to any caller? They only care about the translation from
> one ID space to the other? No matter whether a map, radix tree,
> rbtree,
> or what not is used behind the scenes?
Agree, the "_map" in cpuid_to_hartid_map() is useless. Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 11:59:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 11:59:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767662.1178342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlVm-0004TH-FG; Tue, 30 Jul 2024 11:59:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767662.1178342; Tue, 30 Jul 2024 11:59:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlVm-0004TA-BF; Tue, 30 Jul 2024 11:59:26 +0000
Received: by outflank-mailman (input) for mailman id 767662;
 Tue, 30 Jul 2024 11:59:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3FYA=O6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sYlVl-0004RK-5n
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 11:59:25 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2976c86b-4e6b-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 13:59:23 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2f0dfdc9e16so54511291fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 04:59:23 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2f03d04e138sm16799741fa.85.2024.07.30.04.59.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 04:59: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: 2976c86b-4e6b-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722340763; x=1722945563; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=r0un5D9KCR29i99FyMj758CRfCnX+pE1BG4TFLFp2sE=;
        b=mgECdLSj9DiyyQbtmPyKpb1kz2W9UaG6TzP1xmsAQzekYkXQLzEjdOP5oUZdc6iVVG
         zVfkTS0FA1/qaqJ+UfkdKFDOmgDqlHHo6LnxtSi2LvCdfdjtz+sK2sWB8FmUkuQBXg0D
         iE8AzICAz4uh8Q09AnUW+VhTJbgcFggzOuyK+3pToCRJWKtU/Of7pIuk2D4jBOm6ibay
         g9sKIbaRPZG7uyTRAg772jjI2I3Ph7tEce283cUABcG2AO6f2+p2qRVHEe/rVRv4LdEA
         DlKTYqfujh1aIuVEPlGHMCh8k6mSO52pb0RnVrrVuIQuSVnKuf0Psiykbv+YEe6KHmht
         oLNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722340763; x=1722945563;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=r0un5D9KCR29i99FyMj758CRfCnX+pE1BG4TFLFp2sE=;
        b=r1iotyYNaNxtXZbRfXApMHg8iHVyuvySbpw07faNoP7lojWV3WqfUf5OpfzlHSNEtB
         5509hmHs7huQBaDXo6R2vGLrfiI3jADLoFJUoW6JeP8dQfYK16CjTlWSKR1A1el8mcOs
         e6TuaudMc3IQwiGWU1yLxf1kCrpmVMQX2gY4YZSYdOsDYF5dFyZFaqSHSLkwrLYq+Qk+
         hyxp0y5T+eNCNh1/nIaAelP2Q0kM1TnRQ9sSgY6qOGKcebvwRVImuuW+tAhzOPfV+3Lg
         M99gbFBQrLQA+yNh+yMRGg2fP4Pwy3OFKUHoFca2yldCEyNNDLUxr2sQ/5xSWVul+gPe
         oUiw==
X-Forwarded-Encrypted: i=1; AJvYcCWUjKppKLUf1uI6Kv2SBrD+vsTd6zTRGK7Dt5eGhFACPtUa9nMTxqQTrcgpulx3Z17l3L7jd4RlUcOd40B8jIhEPK6869bsA34HP7V9uT0=
X-Gm-Message-State: AOJu0YxdRcX2PmnJ4OdxGGYntHY7JBmZQvBZEu/okfndQ1h0c9LrkHi4
	9yOMBUv/46avGOreB4uMJiwELYlgVEovN/GjGBBMfuIRxognuDYG
X-Google-Smtp-Source: AGHT+IFCmHqrO+VGbf6NTxut3KGo9iTmxJxTwniDfx+a4CO7xJ6QH6wNnVvSxfFsykbp4jL/V8gs5w==
X-Received: by 2002:a2e:9e85:0:b0:2ef:2b08:1747 with SMTP id 38308e7fff4ca-2f12ee04e8cmr70321211fa.13.1722340762464;
        Tue, 30 Jul 2024 04:59:22 -0700 (PDT)
Message-ID: <23c0440f77133d845ac64650542768e68c622df8.camel@gmail.com>
Subject: Re: [PATCH] x86: drop Xeon Phi support
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	 <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau
 =?ISO-8859-1?Q?Monn=E9?=
	 <roger.pau@citrix.com>, "community.manager@xenproject.org"
	 <community.manager@xenproject.org>
Date: Tue, 30 Jul 2024 13:59:21 +0200
In-Reply-To: <44147507-65a4-4f21-aada-fa647f53ffd0@suse.com>
References: <44147507-65a4-4f21-aada-fa647f53ffd0@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

T24gVHVlLCAyMDI0LTA3LTMwIGF0IDEzOjA3ICswMjAwLCBKYW4gQmV1bGljaCB3cm90ZToKPiBE
byBhcyB3YXMgZGVjaWRlZCBpbiBMaXNib24uIFJlcG9ydGVkbHkgWGVuIGhhc24ndCBiZWVuIHdv
cmtpbmcgdmVyeQo+IHdlbGwgb24gdGhvc2UgcHJvY2Vzc29ycyBhbnl3YXkuCj4gCj4gU2lnbmVk
LW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgo+IC0tLQo+IE9uZSBmaWxl
IEkgbGVmdCB1bnRvdWNoZWQgaXMgdGhlIHRlc3QgaGFybmVzcydlcyBwcmVkaWNhdGVzLmM6IFRo
b3NlCj4gdGVzdHMgYXJlIGltbyBmaW5lIHRvIHJldGFpbi4gUGx1cyBvZiBjb3Vyc2UgdGhlIGRl
cGVuZGVuY2llcyBpbgo+IGdlbi1jcHVpZC5weSBhbHNvIHdhbnQgbGVhdmluZyBpbiBwbGFjZSBp
bW8gKHVubGVzcyB3ZSB3ZXJlIHRvIHJlbW92ZQo+IHRoZSByZXNwZWN0aXZlIDQgbGluZXMgZnJv
bSB0aGUgcHVibGljIGhlYWRlcikuCj4gCj4gLS0tIGEvQ0hBTkdFTE9HLm1kCj4gKysrIGIvQ0hB
TkdFTE9HLm1kCj4gQEAgLTExLDYgKzExLDggQEAgVGhlIGZvcm1hdCBpcyBiYXNlZCBvbiBbS2Vl
cCBhIENoYW5nZWxvZwo+IMKgIyMjIEFkZGVkCj4gwqAKPiDCoCMjIyBSZW1vdmVkCj4gKyAtIE9u
IHg4NjoKPiArwqDCoCAtIFN1cHBvcnQgZm9yIHJ1bm5pbmcgb24gWGVvbiBQaGkgcHJvY2Vzc29y
cy4KQWNrZWQtQnk6IE9sZWtzaWkgS3Vyb2Noa28gPG9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29t
PgoKfiBPbGVrc2lpCgo+IMKgCj4gwqAjIwo+IFs0LjE5LjBdKGh0dHBzOi8veGVuYml0cy54ZW5w
cm9qZWN0Lm9yZy9naXR3ZWIvP3A9eGVuLmdpdDthPXNob3J0bG9nOwo+IGg9UkVMRUFTRS00LjE5
LjApIC0gMjAyNC0wNy0yOQo+IMKgCj4gLS0tIGEvU1VQUE9SVC5tZAo+ICsrKyBiL1NVUFBPUlQu
bWQKPiBAQCAtMzAsNiArMzAsNyBAQCBpZiB0aGUgcmVsYXRlZCBmZWF0dXJlcyBhcmUgbWFya2Vk
IGFzIHN1Cj4gwqAjIyMgeDg2LTY0Cj4gwqAKPiDCoMKgwqDCoCBTdGF0dXM6IFN1cHBvcnRlZAo+
ICvCoMKgwqAgU3RhdHVzLCBYZW9uIFBoaTogTm90IHN1cHBvcnRlZC4KPiDCoAo+IMKgIyMjIEFS
TSB2NyArIFZpcnR1YWxpemF0aW9uIEV4dGVuc2lvbnMKPiDCoAo+IC0tLSBhL3Rvb2xzL3Rlc3Rz
L3g4Nl9lbXVsYXRvci9NYWtlZmlsZQo+ICsrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9N
YWtlZmlsZQo+IEBAIC0xNiw3ICsxNiw3IEBAIHZwYXRoICUuYyAkKFhFTl9ST09UKS94ZW4vbGli
L3g4Ngo+IMKgCj4gwqBDRkxBR1MgKz0gJChDRkxBR1NfeGVuaW5jbHVkZSkKPiDCoAo+IC1TSU1E
IDo9IDNkbm93IHNzZSBzc2UyIHNzZTQgYXZ4IGF2eDIgeG9wIGF2eDUxMmYgYXZ4NTEyYncgYXZ4
NTEyZHEKPiBhdng1MTJlciBhdng1MTJ2Ym1pIGF2eDUxMmZwMTYKPiArU0lNRCA6PSAzZG5vdyBz
c2Ugc3NlMiBzc2U0IGF2eCBhdngyIHhvcCBhdng1MTJmIGF2eDUxMmJ3IGF2eDUxMmRxCj4gYXZ4
NTEydmJtaSBhdng1MTJmcDE2Cj4gwqBGTUEgOj0gZm1hNCBmbWEKPiDCoFNHIDo9IGF2eDItc2cg
YXZ4NTEyZi1zZwo+IMKgQUVTIDo9IHNzc2UzLWFlcyBhdngtYWVzIGF2eDItdmFlcyBhdng1MTJi
dy12YWVzCj4gQEAgLTgwLDkgKzgwLDYgQEAgYXZ4NTEyYnctZmx0cyA6PQo+IMKgYXZ4NTEyZHEt
dmVjcyA6PSAkKGF2eDUxMmYtdmVjcykKPiDCoGF2eDUxMmRxLWludHMgOj0gJChhdng1MTJmLWlu
dHMpCj4gwqBhdng1MTJkcS1mbHRzIDo9ICQoYXZ4NTEyZi1mbHRzKQo+IC1hdng1MTJlci12ZWNz
IDo9IDY0Cj4gLWF2eDUxMmVyLWludHMgOj0KPiAtYXZ4NTEyZXItZmx0cyA6PSA0IDgKPiDCoGF2
eDUxMnZibWktdmVjcyA6PSAkKGF2eDUxMmJ3LXZlY3MpCj4gwqBhdng1MTJ2Ym1pLWludHMgOj0g
JChhdng1MTJidy1pbnRzKQo+IMKgYXZ4NTEydmJtaS1mbHRzIDo9ICQoYXZ4NTEyYnctZmx0cykK
PiAtLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCj4gKysrIGIvdG9v
bHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDguYwo+IEBAIC01MjQsMzcgKzUyNCw2IEBA
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV81MTJbXQo+IMKgwqDCoMKgIElOU04o
aW5zZXJ0aTMyeDgswqDCoMKgIDY2LCAwZjNhLCAzYSwgZWxfOCwgZCwgdmwpLAo+IMKgfTsKPiDC
oAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZXJfNTEyW10gPSB7Cj4gLcKgwqDC
oCBJTlNOKGV4cDIswqDCoMKgIDY2LCAwZjM4LCBjOCwgdmwsIHNkLCB2bCksCj4gLcKgwqDCoCBJ
TlNOKHJjcDI4LMKgwqAgNjYsIDBmMzgsIGNhLCB2bCwgc2QsIHZsKSwKPiAtwqDCoMKgIElOU04o
cmNwMjgswqDCoCA2NiwgMGYzOCwgY2IsIGVsLCBzZCwgZWwpLAo+IC3CoMKgwqAgSU5TTihyc3Fy
dDI4LCA2NiwgMGYzOCwgY2MsIHZsLCBzZCwgdmwpLAo+IC3CoMKgwqAgSU5TTihyc3FydDI4LCA2
NiwgMGYzOCwgY2QsIGVsLCBzZCwgZWwpLAo+IC19Owo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVj
dCB0ZXN0IGF2eDUxMnBmXzUxMltdID0gewo+IC3CoMKgwqAgSU5TTlgoZ2F0aGVycGYwZCzCoCA2
NiwgMGYzOCwgYzYsIDEsIHZsLCBzZCwgZWwpLAo+IC3CoMKgwqAgSU5TTlgoZ2F0aGVycGYwcSzC
oCA2NiwgMGYzOCwgYzcsIDEsIHZsLCBzZCwgZWwpLAo+IC3CoMKgwqAgSU5TTlgoZ2F0aGVycGYx
ZCzCoCA2NiwgMGYzOCwgYzYsIDIsIHZsLCBzZCwgZWwpLAo+IC3CoMKgwqAgSU5TTlgoZ2F0aGVy
cGYxcSzCoCA2NiwgMGYzOCwgYzcsIDIsIHZsLCBzZCwgZWwpLAo+IC3CoMKgwqAgSU5TTlgoc2Nh
dHRlcnBmMGQsIDY2LCAwZjM4LCBjNiwgNSwgdmwsIHNkLCBlbCksCj4gLcKgwqDCoCBJTlNOWChz
Y2F0dGVycGYwcSwgNjYsIDBmMzgsIGM3LCA1LCB2bCwgc2QsIGVsKSwKPiAtwqDCoMKgIElOU05Y
KHNjYXR0ZXJwZjFkLCA2NiwgMGYzOCwgYzYsIDYsIHZsLCBzZCwgZWwpLAo+IC3CoMKgwqAgSU5T
Tlgoc2NhdHRlcnBmMXEsIDY2LCAwZjM4LCBjNywgNiwgdmwsIHNkLCBlbCksCj4gLX07Cj4gLQo+
IC1zdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyXzRmbWFwc181MTJbXSA9IHsKPiAtwqDC
oMKgIElOU04oNGZtYWRkcHMswqAgZjIsIDBmMzgsIDlhLCBlbF80LCBkLCB2bCksCj4gLcKgwqDC
oCBJTlNOKDRmbWFkZHNzLMKgIGYyLCAwZjM4LCA5YiwgZWxfNCwgZCwgdmwpLAo+IC3CoMKgwqAg
SU5TTig0Zm5tYWRkcHMsIGYyLCAwZjM4LCBhYSwgZWxfNCwgZCwgdmwpLAo+IC3CoMKgwqAgSU5T
Tig0Zm5tYWRkc3MsIGYyLCAwZjM4LCBhYiwgZWxfNCwgZCwgdmwpLAo+IC19Owo+IC0KPiAtc3Rh
dGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMl80dm5uaXdfNTEyW10gPSB7Cj4gLcKgwqDCoCBJ
TlNOKHA0ZHB3c3NkLMKgIGYyLCAwZjM4LCA1MiwgZWxfNCwgZCwgdmwpLAo+IC3CoMKgwqAgSU5T
TihwNGRwd3NzZHMsIGYyLCAwZjM4LCA1MywgZWxfNCwgZCwgdmwpLAo+IC19Owo+IC0KPiDCoHN0
YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJfYmYxNl9hbGxbXSA9IHsKPiDCoMKgwqDCoCBJ
TlNOKGN2dG5lMnBzMmJmMTYsIGYyLCAwZjM4LCA3MiwgdmwsIGQsIHZsKSwKPiDCoMKgwqDCoCBJ
TlNOKGN2dG5lcHMyYmYxNizCoCBmMywgMGYzOCwgNzIsIHZsLCBkLCB2bCksCj4gQEAgLTExMTAs
MTEgKzEwNzksNiBAQCB2b2lkIGV2ZXhfZGlzcDhfdGVzdCh2b2lkICppbnN0ciwgc3RydWN0Cj4g
wqDCoMKgwqAgUlVOKGF2eDUxMmRxLCAxMjgpOwo+IMKgwqDCoMKgIFJVTihhdng1MTJkcSwgbm8x
MjgpOwo+IMKgwqDCoMKgIFJVTihhdng1MTJkcSwgNTEyKTsKPiAtwqDCoMKgIFJVTihhdng1MTJl
ciwgNTEyKTsKPiAtI2RlZmluZSBjcHVfaGFzX2F2eDUxMnBmIGNwdV9oYXNfYXZ4NTEyZgo+IC3C
oMKgwqAgUlVOKGF2eDUxMnBmLCA1MTIpOwo+IC3CoMKgwqAgUlVOKGF2eDUxMl80Zm1hcHMsIDUx
Mik7Cj4gLcKgwqDCoCBSVU4oYXZ4NTEyXzR2bm5pdywgNTEyKTsKPiDCoMKgwqDCoCBSVU4oYXZ4
NTEyX2JmMTYsIGFsbCk7Cj4gwqDCoMKgwqAgUlVOKGF2eDUxMl9iaXRhbGcsIGFsbCk7Cj4gwqDC
oMKgwqAgUlVOKGF2eDUxMl9pZm1hLCBhbGwpOwo+IC0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVs
YXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jCj4gKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9y
L3Rlc3RfeDg2X2VtdWxhdG9yLmMKPiBAQCAtMzksNyArMzksNiBAQCBhc20gKCAiLnB1c2hzZWN0
aW9uIC50ZXN0LCBcImF4XCIsIEBwcm9nCj4gwqAjaW5jbHVkZSAiYXZ4NTEyYnctdnBjbG11bHFk
cS5oIgo+IMKgI2luY2x1ZGUgImF2eDUxMmJ3LWdmLmgiCj4gwqAjaW5jbHVkZSAiYXZ4NTEyZHEu
aCIKPiAtI2luY2x1ZGUgImF2eDUxMmVyLmgiCj4gwqAjaW5jbHVkZSAiYXZ4NTEydmJtaS5oIgo+
IMKgI2luY2x1ZGUgImF2eDUxMnZibWkyLXZwY2xtdWxxZHEuaCIKPiDCoCNpbmNsdWRlICJhdng1
MTJmcDE2LmgiCj4gQEAgLTE0NywxMSArMTQ2LDYgQEAgc3RhdGljIGJvb2wgc2ltZF9jaGVja19h
dng1MTJkcV92bCh2b2lkKQo+IMKgwqDCoMKgIHJldHVybiBjcHVfaGFzX2F2eDUxMmRxICYmIGNw
dV9oYXNfYXZ4NTEydmw7Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIGJvb2wgc2ltZF9jaGVja19hdng1
MTJlcih2b2lkKQo+IC17Cj4gLcKgwqDCoCByZXR1cm4gY3B1X2hhc19hdng1MTJlcjsKPiAtfQo+
IC0KPiDCoHN0YXRpYyBib29sIHNpbWRfY2hlY2tfYXZ4NTEyYncodm9pZCkKPiDCoHsKPiDCoMKg
wqDCoCByZXR1cm4gY3B1X2hhc19hdng1MTJidzsKPiBAQCAtNTA3LDEwICs1MDEsNiBAQCBzdGF0
aWMgY29uc3Qgc3RydWN0IHsKPiDCoMKgwqDCoCBBVlg1MTJWTChEUStWTCB1NjR4MizCoMKgwqAg
YXZ4NTEyZHEswqDCoMKgwqDCoCAxNnU4KSwKPiDCoMKgwqDCoCBBVlg1MTJWTChEUStWTCBzNjR4
NCzCoMKgwqAgYXZ4NTEyZHEswqDCoMKgwqDCoCAzMmk4KSwKPiDCoMKgwqDCoCBBVlg1MTJWTChE
UStWTCB1NjR4NCzCoMKgwqAgYXZ4NTEyZHEswqDCoMKgwqDCoCAzMnU4KSwKPiAtwqDCoMKgIFNJ
TUQoQVZYNTEyRVIgZjMyIHNjYWxhcixhdng1MTJlcizCoMKgwqDCoMKgwqDCoCBmNCksCj4gLcKg
wqDCoCBTSU1EKEFWWDUxMkVSIGYzMngxNizCoMKgwqAgYXZ4NTEyZXIswqDCoMKgwqDCoCA2NGY0
KSwKPiAtwqDCoMKgIFNJTUQoQVZYNTEyRVIgZjY0IHNjYWxhcixhdng1MTJlcizCoMKgwqDCoMKg
wqDCoCBmOCksCj4gLcKgwqDCoCBTSU1EKEFWWDUxMkVSIGY2NHg4LMKgwqDCoMKgIGF2eDUxMmVy
LMKgwqDCoMKgwqAgNjRmOCksCj4gwqDCoMKgwqAgU0lNRChBVlg1MTJfVkJNSSBzOHg2NCzCoCBh
dng1MTJ2Ym1pLMKgwqDCoCA2NGkxKSwKPiDCoMKgwqDCoCBTSU1EKEFWWDUxMl9WQk1JIHU4eDY0
LMKgIGF2eDUxMnZibWkswqDCoMKgIDY0dTEpLAo+IMKgwqDCoMKgIFNJTUQoQVZYNTEyX1ZCTUkg
czE2eDMyLCBhdng1MTJ2Ym1pLMKgwqDCoCA2NGkyKSwKPiBAQCAtNDk4Myw4MSArNDk3Myw2IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiDCoMKgwqDCoCB9Cj4gwqAjZW5kaWYK
PiDCoAo+IC3CoMKgwqAgcHJpbnRmKCIlLTQwcyIsICJUZXN0aW5nIHY0Zm1hZGRwcwo+IDMyKCVl
Y3gpLCV6bW00LCV6bW00eyVrNX0uLi4iKTsKPiAtwqDCoMKgIGlmICggc3RhY2tfZXhlYyAmJiBj
cHVfaGFzX2F2eDUxMl80Zm1hcHMgKQo+IC3CoMKgwqAgewo+IC3CoMKgwqDCoMKgwqDCoCBkZWNs
X2luc24odjRmbWFkZHBzKTsKPiAtwqDCoMKgwqDCoMKgwqAgc3RhdGljIGNvbnN0IHN0cnVjdCB7
Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmxvYXQgZlsxNl07Cj4gLcKgwqDCoMKgwqDCoMKg
IH0gaW4gPSB7ewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEsIDIsIDMsIDQsIDUsIDYsIDcs
IDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2Cj4gLcKgwqDCoMKgwqDCoMKgIH19LCBv
dXQgPSB7ewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEgKyAxICogOSArIDIgKiAxMCArIDMg
KiAxMSArIDQgKiAxMiwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyLCAzLCA0LCA1LCA2LCA3
LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IDE2ICsgMTYgKiA5ICsgMTcgKiAxMCArIDE4ICogMTEgKyAxOSAqIDEyCj4gLcKgwqDCoMKgwqDC
oMKgIH19Owo+IC0KPiAtwqDCoMKgwqDCoMKgwqAgYXNtIHZvbGF0aWxlICggInZtb3Z1cHMgJTEs
ICUlem1tNFxuXHQiCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgICJ2YnJvYWRjYXN0c3MgJSV4bW00LCAlJXptbTdcblx0Igo+IC3CoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAidmFkZHBzICUlem1tNCwgJSV6bW03LCAlJXpt
bTVcblx0Igo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAi
dmFkZHBzICUlem1tNSwgJSV6bW03LCAlJXptbTZcblx0Igo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAidmFkZHBzICUlem1tNiwgJSV6bW03LCAlJXptbTdc
blx0Igo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAia21v
dncgJTIsICUlazVcbiIKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgcHV0X2luc24odjRmbWFkZHBzLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAidjRmbWFkZHBzIDMyKCUwKSwgJSV6
bW00LAo+ICUlem1tNCV7JSVrNSV9IikKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgOjogImMiIChOVUxMKSwgIm0iIChpbiksICJybWsiICgweDgwMDEpICk7
Cj4gLQo+IC3CoMKgwqDCoMKgwqDCoCBzZXRfaW5zbih2NGZtYWRkcHMpOwo+IC3CoMKgwqDCoMKg
wqDCoCByZWdzLmVjeCA9ICh1bnNpZ25lZCBsb25nKSZpbjsKPiAtwqDCoMKgwqDCoMKgwqAgcmMg
PSB4ODZfZW11bGF0ZSgmY3R4dCwgJmVtdWxvcHMpOwo+IC3CoMKgwqDCoMKgwqDCoCBpZiAoIHJj
ICE9IFg4NkVNVUxfT0tBWSB8fCAhY2hlY2tfZWlwKHY0Zm1hZGRwcykgKQo+IC3CoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIGdvdG8gZmFpbDsKPiAtCj4gLcKgwqDCoMKgwqDCoMKgIGFzbSAoICJ2Y21w
ZXFwcyAlMSwgJSV6bW00LCAlJWswXG5cdCIKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
Imttb3Z3ICUlazAsICUwIiA6ICI9ZyIgKHJjKSA6ICJtIiAob3V0KSApOwo+IC3CoMKgwqDCoMKg
wqDCoCBpZiAoIHJjICE9IDB4ZmZmZiApCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBm
YWlsOwo+IC3CoMKgwqDCoMKgwqDCoCBwcmludGYoIm9rYXlcbiIpOwo+IC3CoMKgwqAgfQo+IC3C
oMKgwqAgZWxzZQo+IC3CoMKgwqDCoMKgwqDCoCBwcmludGYoInNraXBwZWRcbiIpOwo+IC0KPiAt
wqDCoMKgIHByaW50ZigiJS00MHMiLCAiVGVzdGluZyB2NGZubWFkZHNzCj4gMTYoJWVkeCksJXpt
bTQsJXptbTR7JWszfS4uLiIpOwo+IC3CoMKgwqAgaWYgKCBzdGFja19leGVjICYmIGNwdV9oYXNf
YXZ4NTEyXzRmbWFwcyApCj4gLcKgwqDCoCB7Cj4gLcKgwqDCoMKgwqDCoMKgIGRlY2xfaW5zbih2
NGZubWFkZHNzKTsKPiAtwqDCoMKgwqDCoMKgwqAgc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4gLcKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgZmxvYXQgZlsxNl07Cj4gLcKgwqDCoMKgwqDCoMKgIH0gaW4g
PSB7ewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgKPiAt
wqDCoMKgwqDCoMKgwqAgfX0sIG91dCA9IHt7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMSAt
IDEgKiA1IC0gMiAqIDYgLSAzICogNyAtIDQgKiA4LCAyLCAzLCA0Cj4gLcKgwqDCoMKgwqDCoMKg
IH19Owo+IC0KPiAtwqDCoMKgwqDCoMKgwqAgYXNtIHZvbGF0aWxlICggInZtb3Z1cHMgJTEsICUl
eG1tNFxuXHQiCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
ICJ2YWRkc3MgJSV4bW00LCAlJXhtbTQsICUleG1tNVxuXHQiCj4gLcKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJ2YWRkc3MgJSV4bW01LCAlJXhtbTQsICUleG1t
NlxuXHQiCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJ2
YWRkc3MgJSV4bW02LCAlJXhtbTQsICUleG1tN1xuXHQiCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJrbW92dyAlMiwgJSVrM1xuIgo+IC3CoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwdXRfaW5zbih2NGZubWFkZHNzLAo+
IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCAidjRmbm1hZGRzcyAxNiglMCksICUleG1tNCwKPiAlJXhtbTQleyUlazMlfSIpCj4g
LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDo6ICJkIiAoTlVM
TCksICJtIiAoaW4pLCAicm1rIiAoMSkgKTsKPiAtCj4gLcKgwqDCoMKgwqDCoMKgIHNldF9pbnNu
KHY0Zm5tYWRkc3MpOwo+IC3CoMKgwqDCoMKgwqDCoCByZWdzLmVkeCA9ICh1bnNpZ25lZCBsb25n
KSZpbjsKPiAtwqDCoMKgwqDCoMKgwqAgcmMgPSB4ODZfZW11bGF0ZSgmY3R4dCwgJmVtdWxvcHMp
Owo+IC3CoMKgwqDCoMKgwqDCoCBpZiAoIHJjICE9IFg4NkVNVUxfT0tBWSB8fCAhY2hlY2tfZWlw
KHY0Zm5tYWRkc3MpICkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGZhaWw7Cj4gLQo+
IC3CoMKgwqDCoMKgwqDCoCBhc20gKCAidmNtcGVxcHMgJTEsICUlem1tNCwgJSVrMFxuXHQiCj4g
LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJrbW92dyAlJWswLCAlMCIgOiAiPWciIChyYykg
OiAibSIgKG91dCkgKTsKPiAtwqDCoMKgwqDCoMKgwqAgaWYgKCByYyAhPSAweGZmZmYgKQo+IC3C
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gZmFpbDsKPiAtwqDCoMKgwqDCoMKgwqAgcHJpbnRm
KCJva2F5XG4iKTsKPiAtwqDCoMKgIH0KPiAtwqDCoMKgIGVsc2UKPiAtwqDCoMKgwqDCoMKgwqAg
cHJpbnRmKCJza2lwcGVkXG4iKTsKPiAtCj4gwqDCoMKgwqAgaWYgKCBzdGFja19leGVjICYmIGNw
dV9oYXNfYXZ4NTEyX2JmMTYgKQo+IMKgwqDCoMKgIHsKPiDCoMKgwqDCoMKgwqDCoMKgIGRlY2xf
aW5zbih2Y3Z0bmUycHMyYmYxNik7Cj4gLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4
Ni1lbXVsYXRlLmMKPiArKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IveDg2LWVtdWxhdGUu
Ywo+IEBAIC04NCw3ICs4NCw2IEBAIGJvb2wgZW11bF90ZXN0X2luaXQodm9pZCkKPiDCoMKgwqDC
oCBjcC5iYXNpYy5tb3ZiZSA9IHRydWU7Cj4gwqDCoMKgwqAgY3AuZmVhdC5pbnZwY2lkID0gdHJ1
ZTsKPiDCoMKgwqDCoCBjcC5mZWF0LmFkeCA9IHRydWU7Cj4gLcKgwqDCoCBjcC5mZWF0LmF2eDUx
MnBmID0gY3AuZmVhdC5hdng1MTJmOwo+IMKgwqDCoMKgIGNwLmZlYXQucmRwaWQgPSB0cnVlOwo+
IMKgwqDCoMKgIGNwLmZlYXQud3Jtc3JucyA9IHRydWU7Cj4gwqDCoMKgwqAgY3AuZXh0ZC5jbHpl
cm8gPSB0cnVlOwo+IC0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODYtZW11bGF0ZS5o
Cj4gKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Ni1lbXVsYXRlLmgKPiBAQCAtMTU2
LDcgKzE1Niw2IEBAIHZvaWQgd3Jwa3J1KHVuc2lnbmVkIGludCB2YWwpOwo+IMKgI2RlZmluZSBj
cHVfaGFzX2F2eDUxMmbCoMKgIChjcC5mZWF0LmF2eDUxMmbCoCAmJiB4Y3IwX21hc2soMHhlNikp
Cj4gwqAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEyZHHCoCAoY3AuZmVhdC5hdng1MTJkcSAmJiB4Y3Iw
X21hc2soMHhlNikpCj4gwqAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEyX2lmbWEgKGNwLmZlYXQuYXZ4
NTEyX2lmbWEgJiYgeGNyMF9tYXNrKDB4ZTYpKQo+IC0jZGVmaW5lIGNwdV9oYXNfYXZ4NTEyZXLC
oCAoY3AuZmVhdC5hdng1MTJlciAmJiB4Y3IwX21hc2soMHhlNikpCj4gwqAjZGVmaW5lIGNwdV9o
YXNfYXZ4NTEyY2TCoCAoY3AuZmVhdC5hdng1MTJjZCAmJiB4Y3IwX21hc2soMHhlNikpCj4gwqAj
ZGVmaW5lIGNwdV9oYXNfc2hhwqDCoMKgwqDCoMKgwqAgY3AuZmVhdC5zaGEKPiDCoCNkZWZpbmUg
Y3B1X2hhc19hdng1MTJid8KgIChjcC5mZWF0LmF2eDUxMmJ3ICYmIHhjcjBfbWFzaygweGU2KSkK
PiBAQCAtMTcxLDggKzE3MCw2IEBAIHZvaWQgd3Jwa3J1KHVuc2lnbmVkIGludCB2YWwpOwo+IMKg
I2RlZmluZSBjcHVfaGFzX2F2eDUxMl92cG9wY250ZHEgKGNwLmZlYXQuYXZ4NTEyX3Zwb3BjbnRk
cSAmJgo+IHhjcjBfbWFzaygweGU2KSkKPiDCoCNkZWZpbmUgY3B1X2hhc19tb3ZkaXJpwqDCoMKg
IGNwLmZlYXQubW92ZGlyaQo+IMKgI2RlZmluZSBjcHVfaGFzX21vdmRpcjY0YsKgIGNwLmZlYXQu
bW92ZGlyNjRiCj4gLSNkZWZpbmUgY3B1X2hhc19hdng1MTJfNHZubml3IChjcC5mZWF0LmF2eDUx
Ml80dm5uaXcgJiYKPiB4Y3IwX21hc2soMHhlNikpCj4gLSNkZWZpbmUgY3B1X2hhc19hdng1MTJf
NGZtYXBzIChjcC5mZWF0LmF2eDUxMl80Zm1hcHMgJiYKPiB4Y3IwX21hc2soMHhlNikpCj4gwqAj
ZGVmaW5lIGNwdV9oYXNfYXZ4NTEyX3ZwMmludGVyc2VjdCAoY3AuZmVhdC5hdng1MTJfdnAyaW50
ZXJzZWN0ICYmCj4geGNyMF9tYXNrKDB4ZTYpKQo+IMKgI2RlZmluZSBjcHVfaGFzX3NlcmlhbGl6
ZcKgIGNwLmZlYXQuc2VyaWFsaXplCj4gwqAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEyX2ZwMTYgKGNw
LmZlYXQuYXZ4NTEyX2ZwMTYgJiYgeGNyMF9tYXNrKDB4ZTYpKQo+IC0tLSBhL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMKPiArKysgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCj4g
QEAgLTczLDcgKzczLDYgQEAKPiDCoCNkZWZpbmUgR0VUX0NDM19SRVModmFsKcKgIEdFVF9IV19S
RVNfSU5fTlMoMHgzRkMsIHZhbCkKPiDCoCNkZWZpbmUgR0VUX0NDNl9SRVModmFsKcKgIEdFVF9I
V19SRVNfSU5fTlMoMHgzRkQsIHZhbCkKPiDCoCNkZWZpbmUgR0VUX0NDN19SRVModmFsKcKgIEdF
VF9IV19SRVNfSU5fTlMoMHgzRkUsIHZhbCkgLyogU05CCj4gb253YXJkcyAqLwo+IC0jZGVmaW5l
IFBISV9DQzZfUkVTKHZhbCnCoCBHRVRfSFdfUkVTX0lOX05TKDB4M0ZGLCB2YWwpIC8qIFhlb24g
UGhpCj4gb25seSAqLwo+IMKgCj4gwqBzdGF0aWMgdm9pZCBjZl9jaGVjayBsYXBpY190aW1lcl9u
b3Aodm9pZCkgeyB9Cj4gwqB2b2lkICgqX19yZWFkX21vc3RseSBsYXBpY190aW1lcl9vZmYpKHZv
aWQpOwo+IEBAIC0yMjIsMTggKzIyMSw2IEBAIHN0YXRpYyB2b2lkIGNmX2NoZWNrIGRvX2dldF9o
d19yZXNpZGVuY2kKPiDCoMKgwqDCoMKgwqDCoMKgIEdFVF9DQzZfUkVTKGh3X3Jlcy0+Y2M2KTsK
PiDCoMKgwqDCoMKgwqDCoMKgIEdFVF9DQzdfUkVTKGh3X3Jlcy0+Y2M3KTsKPiDCoMKgwqDCoMKg
wqDCoMKgIGJyZWFrOwo+IC3CoMKgwqAgLyogWGVvbiBQaGkgS25pZ2h0cyBMYW5kaW5nICovCj4g
LcKgwqDCoCBjYXNlIDB4NTc6Cj4gLcKgwqDCoCAvKiBYZW9uIFBoaSBLbmlnaHRzIE1pbGwgKi8K
PiAtwqDCoMKgIGNhc2UgMHg4NToKPiAtwqDCoMKgwqDCoMKgwqAgR0VUX0NDM19SRVMoaHdfcmVz
LT5tYzApOyAvKiBhYnVzaW5nIEdFVF9DQzNfUkVTICovCj4gLcKgwqDCoMKgwqDCoMKgIEdFVF9D
QzZfUkVTKGh3X3Jlcy0+bWM2KTsgLyogYWJ1c2luZyBHRVRfQ0M2X1JFUyAqLwo+IC3CoMKgwqDC
oMKgwqDCoCBHRVRfUEMyX1JFUyhod19yZXMtPnBjMik7Cj4gLcKgwqDCoMKgwqDCoMKgIEdFVF9Q
QzNfUkVTKGh3X3Jlcy0+cGMzKTsKPiAtwqDCoMKgwqDCoMKgwqAgR0VUX1BDNl9SRVMoaHdfcmVz
LT5wYzYpOwo+IC3CoMKgwqDCoMKgwqDCoCBHRVRfUEM3X1JFUyhod19yZXMtPnBjNyk7Cj4gLcKg
wqDCoMKgwqDCoMKgIFBISV9DQzZfUkVTKGh3X3Jlcy0+Y2M2KTsKPiAtwqDCoMKgwqDCoMKgwqAg
YnJlYWs7Cj4gwqDCoMKgwqAgLyogdmFyaW91cyBBdG9tcyAqLwo+IMKgwqDCoMKgIGNhc2UgMHgy
NzoKPiDCoMKgwqDCoMKgwqDCoMKgIEdFVF9QQzNfUkVTKGh3X3Jlcy0+cGMyKTsgLyogYWJ1c2lu
ZyBHRVRfUEMzX1JFUyAqLwo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZV9pbnRl
bC5jCj4gKysrIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlX2ludGVsLmMKPiBAQCAtODc1
LDEwICs4NzUsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9pbml0X3BwaW4oY29uc3Qgc3RydWN0Cj4g
wqDCoMKgwqAgY2FzZSAweDRmOiAvKiBCcm9hZHdlbGwgWCAqLwo+IMKgwqDCoMKgIGNhc2UgMHg1
NTogLyogU2t5bGFrZSBYICovCj4gwqDCoMKgwqAgY2FzZSAweDU2OiAvKiBCcm9hZHdlbGwgWGVv
biBEICovCj4gLcKgwqDCoCBjYXNlIDB4NTc6IC8qIEtuaWdodHMgTGFuZGluZyAqLwo+IMKgwqDC
oMKgIGNhc2UgMHg2YTogLyogSWNlbGFrZSBYICovCj4gwqDCoMKgwqAgY2FzZSAweDZjOiAvKiBJ
Y2VsYWtlIEQgKi8KPiAtwqDCoMKgIGNhc2UgMHg4NTogLyogS25pZ2h0cyBNaWxsICovCj4gwqDC
oMKgwqAgY2FzZSAweDhmOiAvKiBTYXBwaGlyZSBSYXBpZHMgWCAqLwo+IMKgCj4gwqDCoMKgwqDC
oMKgwqDCoCBpZiAoIChjICE9ICZib290X2NwdV9kYXRhICYmICFwcGluX21zcikgfHwKPiAtLS0g
YS94ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9jcHUv
bXdhaXQtaWRsZS5jCj4gQEAgLTc3OCwyMiArNzc4LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBj
cHVpZGxlX3N0YXRlIGF2bl9jcwo+IMKgCXt9Cj4gwqB9Owo+IMKgCj4gLXN0YXRpYyBjb25zdCBz
dHJ1Y3QgY3B1aWRsZV9zdGF0ZSBrbmxfY3N0YXRlc1tdID0gewo+IC0Jewo+IC0JCS5uYW1lID0g
IkMxIiwKPiAtCQkuZmxhZ3MgPSBNV0FJVDJmbGcoMHgwMCksCj4gLQkJLmV4aXRfbGF0ZW5jeSA9
IDEsCj4gLQkJLnRhcmdldF9yZXNpZGVuY3kgPSAyLAo+IC0JfSwKPiAtCXsKPiAtCQkubmFtZSA9
ICJDNiIsCj4gLQkJLmZsYWdzID0gTVdBSVQyZmxnKDB4MTApIHwgQ1BVSURMRV9GTEFHX1RMQl9G
TFVTSEVELAo+IC0JCS5leGl0X2xhdGVuY3kgPSAxMjAsCj4gLQkJLnRhcmdldF9yZXNpZGVuY3kg
PSA1MDAsCj4gLQl9LAo+IC0Je30KPiAtfTsKPiAtCj4gwqBzdGF0aWMgc3RydWN0IGNwdWlkbGVf
c3RhdGUgX19yZWFkX21vc3RseSBieHRfY3N0YXRlc1tdID0gewo+IMKgCXsKPiDCoAkJLm5hbWUg
PSAiQzEiLAo+IEBAIC0xMTIxLDEwICsxMTA1LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpZGxl
X2NwdSBpZGxlX2NwdV9hdgo+IMKgCS5jMWVfcHJvbW90aW9uID0gQzFFX1BST01PVElPTl9ESVNB
QkxFLAo+IMKgfTsKPiDCoAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGlkbGVfY3B1IGlkbGVfY3B1
X2tubCA9IHsKPiAtCS5zdGF0ZV90YWJsZSA9IGtubF9jc3RhdGVzLAo+IC19Owo+IC0KPiDCoHN0
YXRpYyBjb25zdCBzdHJ1Y3QgaWRsZV9jcHUgaWRsZV9jcHVfYnh0ID0gewo+IMKgCS5zdGF0ZV90
YWJsZSA9IGJ4dF9jc3RhdGVzLAo+IMKgCS5jMWVfcHJvbW90aW9uID0gQzFFX1BST01PVElPTl9E
SVNBQkxFLAo+IEBAIC0xMTgxLDggKzExNjEsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHg4Nl9j
cHVfaWQgaW50ZWxfaWRsCj4gwqAJSUNQVShBTERFUkxBS0UsCQkJYWRsKSwKPiDCoAlJQ1BVKEFM
REVSTEFLRV9MLAkJYWRsX2wpLAo+IMKgCUlDUFUoU0FQUEhJUkVSQVBJRFNfWCwJCXNwciksCj4g
LQlJQ1BVKFhFT05fUEhJX0tOTCwJCWtubCksCj4gLQlJQ1BVKFhFT05fUEhJX0tOTSwJCWtubCks
Cj4gwqAJSUNQVShBVE9NX0dPTERNT05ULAkJYnh0KSwKPiDCoAlJQ1BVKEFUT01fR09MRE1PTlRf
UExVUywJYnh0KSwKPiDCoAlJQ1BVKEFUT01fR09MRE1PTlRfRCwJCWRudiksCj4gLS0tIGEveGVu
L2FyY2gveDg2L2h2bS92bXgvdm14LmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXgu
Ywo+IEBAIC01MzMsMTAgKzUzMyw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbGJyX2luZm8gKl9f
aW5pdCBnZXQKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGF0X2xicjsKPiDCoMKg
wqDCoMKgwqDCoMKgIC8qIFNpbHZlcm1vbnQgKi8KPiDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgMHgz
NzogY2FzZSAweDRhOiBjYXNlIDB4NGQ6IGNhc2UgMHg1YTogY2FzZSAweDVkOgo+IC3CoMKgwqDC
oMKgwqDCoCAvKiBYZW9uIFBoaSBLbmlnaHRzIExhbmRpbmcgKi8KPiAtwqDCoMKgwqDCoMKgwqAg
Y2FzZSAweDU3Ogo+IC3CoMKgwqDCoMKgwqDCoCAvKiBYZW9uIFBoaSBLbmlnaHRzIE1pbGwgKi8K
PiAtwqDCoMKgwqDCoMKgwqAgY2FzZSAweDg1Ogo+IMKgwqDCoMKgwqDCoMKgwqAgLyogQWlybW9u
dCAqLwo+IMKgwqDCoMKgwqDCoMKgwqAgY2FzZSAweDRjOgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCByZXR1cm4gc21fbGJyOwo+IEBAIC0yOTg0LDEzICsyOTgwLDYgQEAgc3RhdGljIGJvb2wg
X19pbml0IGhhc19pZl9wc2NoYW5nZV9tYyh2bwo+IMKgwqDCoMKgIGNhc2UgMHg3YTogLyogR2Vt
aW5pIExha2UgKi8KPiDCoMKgwqDCoCBjYXNlIDB4ODY6IC8qIEphY29ic3ZpbGxlICovCj4gwqAK
PiAtwqDCoMKgwqDCoMKgwqAgLyoKPiAtwqDCoMKgwqDCoMKgwqDCoCAqIEtuaWdodHMgcHJvY2Vz
c29ycyBhcmUgbm90IHZ1bG5lcmFibGUuCj4gLcKgwqDCoMKgwqDCoMKgwqAgKi8KPiAtwqDCoMKg
IGNhc2UgMHg1NzogLyogS25pZ2h0cyBMYW5kaW5nICovCj4gLcKgwqDCoCBjYXNlIDB4ODU6IC8q
IEtuaWdodHMgTWlsbCAqLwo+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gZmFsc2U7Cj4gLQo+IMKg
wqDCoMKgIGRlZmF1bHQ6Cj4gwqDCoMKgwqDCoMKgwqDCoCBwcmludGsoIlVucmVjb2duaXNlZCBD
UFUgbW9kZWwgJSN4IC0gYXNzdW1pbmcgdnVsbmVyYWJsZSB0bwo+IElGX1BTQ0hBTkdFX01DXG4i
LAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBib290X2NwdV9kYXRhLng4Nl9tb2Rl
bCk7Cj4gLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaAo+ICsrKyBi
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgKPiBAQCAtMTQwLDcgKzE0MCw2
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9oYXModW5zaWduZWQKPiDCoCNkZWZpbmUg
Y3B1X2hhc19hdng1MTJfaWZtYcKgwqDCoMKgCj4gYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FW
WDUxMl9JRk1BKQo+IMKgI2RlZmluZSBjcHVfaGFzX2NsZmx1c2hvcHTCoMKgwqDCoMKgIGJvb3Rf
Y3B1X2hhcyhYODZfRkVBVFVSRV9DTEZMVVNIT1BUKQo+IMKgI2RlZmluZSBjcHVfaGFzX2Nsd2LC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DTFdCKQo+IC0j
ZGVmaW5lIGNwdV9oYXNfYXZ4NTEyZXLCoMKgwqDCoMKgwqDCoCBib290X2NwdV9oYXMoWDg2X0ZF
QVRVUkVfQVZYNTEyRVIpCj4gwqAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEyY2TCoMKgwqDCoMKgwqDC
oCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVZYNTEyQ0QpCj4gwqAjZGVmaW5lIGNwdV9oYXNf
cHJvY190cmFjZcKgwqDCoMKgwqAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1BST0NfVFJBQ0Up
Cj4gwqAjZGVmaW5lIGNwdV9oYXNfc2hhwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJvb3RfY3B1
X2hhcyhYODZfRkVBVFVSRV9TSEEpCj4gQEAgLTE3NCw4ICsxNzMsNiBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgYm9vdF9jcHVfaGFzKHVuc2lnbmVkCj4gwqAjZGVmaW5lIGNwdV9oYXNfYXV0b19pYnJz
wqDCoMKgwqDCoMKgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BVVRPX0lCUlMpCj4gwqAKPiDC
oC8qIENQVUlEIGxldmVsIDB4MDAwMDAwMDc6MC5lZHggKi8KPiAtI2RlZmluZSBjcHVfaGFzX2F2
eDUxMl80dm5uaXfCoMKgCj4gYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FWWDUxMl80Vk5OSVcp
Cj4gLSNkZWZpbmUgY3B1X2hhc19hdng1MTJfNGZtYXBzwqDCoAo+IGJvb3RfY3B1X2hhcyhYODZf
RkVBVFVSRV9BVlg1MTJfNEZNQVBTKQo+IMKgI2RlZmluZSBjcHVfaGFzX2F2eDUxMl92cDJpbnRl
cnNlY3QKPiBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVZYNTEyX1ZQMklOVEVSU0VDVCkKPiDC
oCNkZWZpbmUgY3B1X2hhc19zcmJkc19jdHJswqDCoMKgwqDCoCBib290X2NwdV9oYXMoWDg2X0ZF
QVRVUkVfU1JCRFNfQ1RSTCkKPiDCoCNkZWZpbmUgY3B1X2hhc19tZF9jbGVhcsKgwqDCoMKgwqDC
oMKgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9NRF9DTEVBUikKPiAtLS0gYS94ZW4vYXJjaC94
ODYvaW5jbHVkZS9hc20vaW50ZWwtZmFtaWx5LmgKPiArKysgYi94ZW4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vaW50ZWwtZmFtaWx5LmgKPiBAQCAtMTMsOCArMTMsOCBAQAo+IMKgICoJSU5URUxfRkFN
NntPUFRGQU1JTFl9X3tNSUNST0FSQ0h9e09QVERJRkZ9Cj4gwqAgKiB3aGVyZToKPiDCoCAqIE9Q
VEZBTUlMWQlEZXNjcmliZXMgdGhlIGZhbWlseSBvZiBDUFVzIHRoYXQgdGhpcyBiZWxvbmdzIHRv
Lgo+IERlZmF1bHQKPiAtICoJCWlzIGFzc3VtZWQgdG8gYmUgIl9DT1JFIiAoYW5kIHNob3VsZCBi
ZSBvbWl0dGVkKS4KPiBPdGhlciB2YWx1ZXMKPiAtICoJCWN1cnJlbnRseSBpbiB1c2UgYXJlIF9B
VE9NIGFuZCBfWEVPTl9QSEkKPiArICoJCWlzIGFzc3VtZWQgdG8gYmUgIl9DT1JFIiAoYW5kIHNo
b3VsZCBiZSBvbWl0dGVkKS4KPiBUaGUgb3RoZXIKPiArICoJCXZhbHVlIGN1cnJlbnRseSBpbiB1
c2UgaXMgX0FUT00uCj4gwqAgKiBNSUNST0FSQ0gJSXMgdGhlIGNvZGUgbmFtZSBmb3IgdGhlIG1p
Y3JvLWFyY2hpdGVjdHVyZSBmb3IgdGhpcwo+IGNvcmUuCj4gwqAgKgkJTi5CLiBOb3QgdGhlIHBs
YXRmb3JtIG5hbWUuCj4gwqAgKiBPUFRESUZGCUlmIG5lZWRlZCwgYSBzaG9ydCBzdHJpbmcgdG8g
ZGlmZmVyZW50aWF0ZSBieSBtYXJrZXQKPiBzZWdtZW50Lgo+IEBAIC0xNjQsMTEgKzE2NCw2IEBA
Cj4gwqAKPiDCoCNkZWZpbmUgSU5URUxfRkFNNl9BVE9NX0RBUktNT05UX1gJMHhERCAvKiBDbGVh
cndhdGVyIEZvcmVzdCAqLwo+IMKgCj4gLS8qIFhlb24gUGhpICovCj4gLQo+IC0jZGVmaW5lIElO
VEVMX0ZBTTZfWEVPTl9QSElfS05MCQkweDU3IC8qIEtuaWdodHMKPiBMYW5kaW5nICovCj4gLSNk
ZWZpbmUgSU5URUxfRkFNNl9YRU9OX1BISV9LTk0JCTB4ODUgLyogS25pZ2h0cyBNaWxsCj4gKi8K
PiAtCj4gwqAvKiBGYW1pbHkgNSAqLwo+IMKgI2RlZmluZSBJTlRFTF9GQU01X1FVQVJLX1gxMDAw
CQkweDA5IC8qIFF1YXJrIFgxMDAwIFNvQyAqLwo+IMKgCj4gLS0tIGEveGVuL2FyY2gveDg2L3Nw
ZWNfY3RybC5jCj4gKysrIGIveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCj4gQEAgLTg4NywxMSAr
ODg3LDkgQEAgc3RhdGljIGJvb2wgX19pbml0IHJldHBvbGluZV9jYWxjdWxhdGlvbgo+IMKgwqDC
oMKgIGNhc2UgMHg0ZDogLyogQXZhdG9uIC8gUmFuZ2VseSAoU2lsdmVybW9udCkgKi8KPiDCoMKg
wqDCoCBjYXNlIDB4NGM6IC8qIENoZXJyeXRyYWlsIC8gQnJhc3N3ZWxsICovCj4gwqDCoMKgwqAg
Y2FzZSAweDRhOiAvKiBNZXJyaWZpZWxkICovCj4gLcKgwqDCoCBjYXNlIDB4NTc6IC8qIEtuaWdo
dHMgTGFuZGluZyAqLwo+IMKgwqDCoMKgIGNhc2UgMHg1YTogLyogTW9vcmVmaWVsZCAqLwo+IMKg
wqDCoMKgIGNhc2UgMHg1YzogLyogR29sZG1vbnQgKi8KPiDCoMKgwqDCoCBjYXNlIDB4NWY6IC8q
IERlbnZlcnRvbiAqLwo+IC3CoMKgwqAgY2FzZSAweDg1OiAvKiBLbmlnaHRzIE1pbGwgKi8KPiDC
oMKgwqDCoMKgwqDCoMKgIHNhZmUgPSB0cnVlOwo+IMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4g
wqAKPiBAQCAtMTAwNSwxMyArMTAwMyw2IEBAIHN0YXRpYyBib29sIF9faW5pdCBzaG91bGRfdXNl
X2VhZ2VyX2ZwdSgKPiDCoMKgwqDCoCBjYXNlIDB4N2E6IC8qIEdlbWluaSBMYWtlICovCj4gwqDC
oMKgwqDCoMKgwqDCoCByZXR1cm4gZmFsc2U7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqAgLyoKPiAt
wqDCoMKgwqDCoMKgwqDCoCAqIEtuaWdodHMgcHJvY2Vzc29ycyBhcmUgbm90IHZ1bG5lcmFibGUu
Cj4gLcKgwqDCoMKgwqDCoMKgwqAgKi8KPiAtwqDCoMKgIGNhc2UgMHg1NzogLyogS25pZ2h0cyBM
YW5kaW5nICovCj4gLcKgwqDCoCBjYXNlIDB4ODU6IC8qIEtuaWdodHMgTWlsbCAqLwo+IC3CoMKg
wqDCoMKgwqDCoCByZXR1cm4gZmFsc2U7Cj4gLQo+IMKgwqDCoMKgIGRlZmF1bHQ6Cj4gwqDCoMKg
wqDCoMKgwqDCoCBwcmludGsoIlVucmVjb2duaXNlZCBDUFUgbW9kZWwgJSN4IC0gYXNzdW1pbmcg
dnVsbmVyYWJsZSB0bwo+IExhenlGUFVcbiIsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIGJvb3RfY3B1X2RhdGEueDg2X21vZGVsKTsKPiBAQCAtMTI1OSwxMyArMTI1MCw2IEBAIHN0
YXRpYyBfX2luaXQgdm9pZCBsMXRmX2NhbGN1bGF0aW9ucyh2b2kKPiDCoMKgwqDCoMKgwqDCoMKg
IGNhc2UgMHg3YTogLyogR2VtaW5pIExha2UgKi8KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
YnJlYWs7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKgo+IC3CoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgKiBLbmlnaHRzIHByb2Nlc3NvcnMgYXJlIG5vdCB2dWxuZXJhYmxlLgo+IC3C
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8KPiAtwqDCoMKgwqDCoMKgwqAgY2FzZSAweDU3OiAv
KiBLbmlnaHRzIExhbmRpbmcgKi8KPiAtwqDCoMKgwqDCoMKgwqAgY2FzZSAweDg1OiAvKiBLbmln
aHRzIE1pbGwgKi8KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPiAtCj4gwqDCoMKg
wqDCoMKgwqDCoCBkZWZhdWx0Ogo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBEZWZlciBw
cmludGsoKSB1bnRpbCB3ZSd2ZSBhY2NvdW50ZWQgZm9yIFJEQ0xfTk8uICovCj4gwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIGhpdF9kZWZhdWx0ID0gdHJ1ZTsKPiBAQCAtMTQxNiwxMyArMTQwMCw2
IEBAIHN0YXRpYyBfX2luaXQgdm9pZCBtZHNfY2FsY3VsYXRpb25zKHZvaWQKPiDCoMKgwqDCoCBj
YXNlIDB4NjU6IC8qIFNvRklBIExURSBBT1NQICovCj4gwqDCoMKgwqAgY2FzZSAweDZlOiAvKiBD
b3VnYXIgTW91bnRhaW4gKi8KPiDCoMKgwqDCoCBjYXNlIDB4NzU6IC8qIExpZ2h0bmluZyBNb3Vu
dGFpbiAqLwo+IC3CoMKgwqDCoMKgwqDCoCAvKgo+IC3CoMKgwqDCoMKgwqDCoMKgICogS25pZ2h0
cyBwcm9jZXNzb3JzICh3aGljaCBhcmUgYmFzZWQgb24gdGhlCj4gU2lsdmVybW9udC9BaXJtb250
Cj4gLcKgwqDCoMKgwqDCoMKgwqAgKiBtaWNyb2FyY2hpdGVjdHVyZSkgYXJlIHNpbWlsYXJseSBv
bmx5IGFmZmVjdGVkIGJ5IHRoZQo+IFN0b3JlIEJ1ZmZlcgo+IC3CoMKgwqDCoMKgwqDCoMKgICog
YXNwZWN0Lgo+IC3CoMKgwqDCoMKgwqDCoMKgICovCj4gLcKgwqDCoCBjYXNlIDB4NTc6IC8qIEtu
aWdodHMgTGFuZGluZyAqLwo+IC3CoMKgwqAgY2FzZSAweDg1OiAvKiBLbmlnaHRzIE1pbGwgKi8K
PiDCoMKgwqDCoMKgwqDCoMKgIGNwdV9oYXNfYnVnX21zYmRzX29ubHkgPSB0cnVlOwo+IMKgwqDC
oMKgwqDCoMKgwqAgYnJlYWs7Cj4gwqAKPiAtLS0gYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUv
cHJpdmF0ZS5oCj4gKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3ByaXZhdGUuaAo+IEBA
IC01NjQsOCArNTY0LDYgQEAgYW1kX2xpa2UoY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQg
Kgo+IMKgI2RlZmluZSB2Y3B1X2hhc19hdng1MTJfaWZtYSgpIChjdHh0LT5jcHVpZC0+ZmVhdC5h
dng1MTJfaWZtYSkKPiDCoCNkZWZpbmUgdmNwdV9oYXNfY2xmbHVzaG9wdCgpwqAgKGN0eHQtPmNw
dWlkLT5mZWF0LmNsZmx1c2hvcHQpCj4gwqAjZGVmaW5lIHZjcHVfaGFzX2Nsd2IoKcKgwqDCoMKg
wqDCoMKgIChjdHh0LT5jcHVpZC0+ZmVhdC5jbHdiKQo+IC0jZGVmaW5lIHZjcHVfaGFzX2F2eDUx
MnBmKCnCoMKgwqAgKGN0eHQtPmNwdWlkLT5mZWF0LmF2eDUxMnBmKQo+IC0jZGVmaW5lIHZjcHVf
aGFzX2F2eDUxMmVyKCnCoMKgwqAgKGN0eHQtPmNwdWlkLT5mZWF0LmF2eDUxMmVyKQo+IMKgI2Rl
ZmluZSB2Y3B1X2hhc19hdng1MTJjZCgpwqDCoMKgIChjdHh0LT5jcHVpZC0+ZmVhdC5hdng1MTJj
ZCkKPiDCoCNkZWZpbmUgdmNwdV9oYXNfc2hhKCnCoMKgwqDCoMKgwqDCoMKgIChjdHh0LT5jcHVp
ZC0+ZmVhdC5zaGEpCj4gwqAjZGVmaW5lIHZjcHVfaGFzX2F2eDUxMmJ3KCnCoMKgwqAgKGN0eHQt
PmNwdWlkLT5mZWF0LmF2eDUxMmJ3KQo+IEBAIC01ODIsOCArNTgwLDYgQEAgYW1kX2xpa2UoY29u
c3Qgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKgo+IMKgI2RlZmluZSB2Y3B1X2hhc19tb3ZkaXJp
KCnCoMKgwqDCoCAoY3R4dC0+Y3B1aWQtPmZlYXQubW92ZGlyaSkKPiDCoCNkZWZpbmUgdmNwdV9o
YXNfbW92ZGlyNjRiKCnCoMKgIChjdHh0LT5jcHVpZC0+ZmVhdC5tb3ZkaXI2NGIpCj4gwqAjZGVm
aW5lIHZjcHVfaGFzX2VucWNtZCgpwqDCoMKgwqDCoCAoY3R4dC0+Y3B1aWQtPmZlYXQuZW5xY21k
KQo+IC0jZGVmaW5lIHZjcHVfaGFzX2F2eDUxMl80dm5uaXcoKSAoY3R4dC0+Y3B1aWQtPmZlYXQu
YXZ4NTEyXzR2bm5pdykKPiAtI2RlZmluZSB2Y3B1X2hhc19hdng1MTJfNGZtYXBzKCkgKGN0eHQt
PmNwdWlkLT5mZWF0LmF2eDUxMl80Zm1hcHMpCj4gwqAjZGVmaW5lIHZjcHVfaGFzX2F2eDUxMl92
cDJpbnRlcnNlY3QoKSAoY3R4dC0+Y3B1aWQtCj4gPmZlYXQuYXZ4NTEyX3ZwMmludGVyc2VjdCkK
PiDCoCNkZWZpbmUgdmNwdV9oYXNfc2VyaWFsaXplKCnCoMKgIChjdHh0LT5jcHVpZC0+ZmVhdC5z
ZXJpYWxpemUpCj4gwqAjZGVmaW5lIHZjcHVfaGFzX3RzeGxkdHJrKCnCoMKgwqAgKGN0eHQtPmNw
dWlkLT5mZWF0LnRzeGxkdHJrKQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZf
ZW11bGF0ZS5jCj4gKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMK
PiBAQCAtNjAyOSw3ICs2MDI5LDYgQEAgeDg2X2VtdWxhdGUoCj4gwqDCoMKgwqAgY2FzZSBYODZF
TVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHhiZCk6IC8qIHZmbm1hZGQyMzFze3MsZH0KPiB4bW0v
bWVtLHhtbSx4bW17a30gKi8KPiDCoMKgwqDCoCBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgw
ZjM4LCAweGJmKTogLyogdmZubXN1YjIzMXN7cyxkfQo+IHhtbS9tZW0seG1tLHhtbXtrfSAqLwo+
IMKgwqDCoMKgwqDCoMKgwqAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyZik7Cj4gLcKg
wqDCoCBzaW1kX3ptbV9zY2FsYXJfc2FlOgo+IMKgwqDCoMKgwqDCoMKgwqAgZ2VuZXJhdGVfZXhj
ZXB0aW9uX2lmKGVhLnR5cGUgIT0gT1BfUkVHICYmIGV2ZXguYnJzLAo+IFg4Nl9FWENfVUQpOwo+
IMKgwqDCoMKgwqDCoMKgwqAgaWYgKCAhZXZleC5icnMgKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCBhdng1MTJfdmxlbl9jaGVjayh0cnVlKTsKPiBAQCAtNjEyMywxNSArNjEyMiw2IEBAIHg4
Nl9lbXVsYXRlKAo+IMKgwqDCoMKgwqDCoMKgwqAgYXZ4NTEyX3ZsZW5fY2hlY2sodHJ1ZSk7Cj4g
wqDCoMKgwqDCoMKgwqDCoCBnb3RvIHNpbWRfem1tOwo+IMKgCj4gLcKgwqDCoCBjYXNlIFg4NkVN
VUxfT1BDX0VWRVhfRjIoMHgwZjM4LCAweDUyKTogLyogdnA0ZHB3c3NkCj4gbTEyOCx6bW0rMyx6
bW17a30gKi8KPiAtwqDCoMKgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMigweDBmMzgsIDB4NTMp
OiAvKiB2cDRkcHdzc2RzCj4gbTEyOCx6bW0rMyx6bW17a30gKi8KPiAtwqDCoMKgwqDCoMKgwqAg
aG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyXzR2bm5pdyk7Cj4gLcKgwqDCoMKgwqDCoMKg
IGdlbmVyYXRlX2V4Y2VwdGlvbl9pZigoZWEudHlwZSAhPSBPUF9NRU0gfHwgZXZleC53IHx8Cj4g
ZXZleC5icnMgfHwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIGV2ZXgubHIgIT0gMiksCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgWDg2X0VYQ19VRCk7Cj4gLcKg
wqDCoMKgwqDCoMKgIG9wX21hc2sgPSBvcF9tYXNrICYgMHhmZmZmID8gMHhmIDogMDsKPiAtwqDC
oMKgwqDCoMKgwqAgZ290byBzaW1kX3ptbTsKPiAtCj4gwqDCoMKgwqAgY2FzZSBYODZFTVVMX09Q
Q19FVkVYXzY2KDB4MGYzOCwgMHg4Zik6IC8qIHZwc2h1ZmJpdHFtYgo+IFt4eXpdbW0vbWVtLFt4
eXpdbW0sa3trfSAqLwo+IMKgwqDCoMKgwqDCoMKgwqAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGV2
ZXgudyB8fCAhZXZleC5yIHx8ICFldmV4LlIgfHwKPiBldmV4LnosIFg4Nl9FWENfVUQpOwo+IMKg
wqDCoMKgwqDCoMKgwqAgLyogZmFsbCB0aHJvdWdoICovCj4gQEAgLTY2MDEsMjQgKzY1OTEsNiBA
QCB4ODZfZW11bGF0ZSgKPiDCoMKgwqDCoMKgwqDCoMKgIGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZl
KGZtYSk7Cj4gwqDCoMKgwqDCoMKgwqDCoCBnb3RvIHNpbWRfMGZfeW1tOwo+IMKgCj4gLcKgwqDC
oCBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjIoMHgwZjM4LCAweDlhKTogLyogdjRmbWFkZHBzCj4g
bTEyOCx6bW0rMyx6bW17a30gKi8KPiAtwqDCoMKgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMigw
eDBmMzgsIDB4YWEpOiAvKiB2NGZubWFkZHBzCj4gbTEyOCx6bW0rMyx6bW17a30gKi8KPiAtwqDC
oMKgwqDCoMKgwqAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyXzRmbWFwcyk7Cj4gLcKg
wqDCoMKgwqDCoMKgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZigoZWEudHlwZSAhPSBPUF9NRU0gfHwg
ZXZleC53IHx8Cj4gZXZleC5icnMgfHwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGV2ZXgubHIgIT0gMiksCj4gLcKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgWDg2X0VY
Q19VRCk7Cj4gLcKgwqDCoMKgwqDCoMKgIG9wX21hc2sgPSBvcF9tYXNrICYgMHhmZmZmID8gMHhm
IDogMDsKPiAtwqDCoMKgwqDCoMKgwqAgZ290byBzaW1kX3ptbTsKPiAtCj4gLcKgwqDCoCBjYXNl
IFg4NkVNVUxfT1BDX0VWRVhfRjIoMHgwZjM4LCAweDliKTogLyogdjRmbWFkZHNzCj4gbTEyOCx4
bW0rMyx4bW17a30gKi8KPiAtwqDCoMKgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMigweDBmMzgs
IDB4YWIpOiAvKiB2NGZubWFkZHNzCj4gbTEyOCx4bW0rMyx4bW17a30gKi8KPiAtwqDCoMKgwqDC
oMKgwqAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyXzRmbWFwcyk7Cj4gLcKgwqDCoMKg
wqDCoMKgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZigoZWEudHlwZSAhPSBPUF9NRU0gfHwgZXZleC53
IHx8Cj4gZXZleC5icnMgfHwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGV2ZXgubHIgPT0gMyksCj4gLcKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgWDg2X0VYQ19VRCk7
Cj4gLcKgwqDCoMKgwqDCoMKgIG9wX21hc2sgPSBvcF9tYXNrICYgMSA/IDB4ZiA6IDA7Cj4gLcKg
wqDCoMKgwqDCoMKgIGdvdG8gc2ltZF96bW07Cj4gLQo+IMKgwqDCoMKgIGNhc2UgWDg2RU1VTF9P
UENfRVZFWF82NigweDBmMzgsIDB4YTApOiAvKiB2cHNjYXR0ZXJke2QscX0KPiBbeHl6XW1tLG1l
bXtrfSAqLwo+IMKgwqDCoMKgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4YTEp
OiAvKiB2cHNjYXR0ZXJxe2QscX0KPiBbeHl6XW1tLG1lbXtrfSAqLwo+IMKgwqDCoMKgIGNhc2Ug
WDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4YTIpOiAvKiB2c2NhdHRlcmRwe3MsZH0KPiBb
eHl6XW1tLG1lbXtrfSAqLwo+IEBAIC02NzU5LDk3ICs2NzMxLDYgQEAgeDg2X2VtdWxhdGUoCj4g
wqDCoMKgwqDCoMKgwqDCoCBnZW5lcmF0ZV9leGNlcHRpb25faWYoIWV2ZXgudywgWDg2X0VYQ19V
RCk7Cj4gwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGF2eDUxMmZfbm9fc2FlOwo+IMKgCj4gLcKgwqDC
oCBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweGM2KToKPiAtwqDCoMKgIGNhc2Ug
WDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4YzcpOgo+IC3CoMKgwqAgewo+IC0jaWZuZGVm
IF9fWEVOX18KPiAtwqDCoMKgwqDCoMKgwqAgdHlwZW9mKGV2ZXgpICpwZXZleDsKPiAtwqDCoMKg
wqDCoMKgwqAgdW5pb24gewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludDMyX3QgZHdbMTZd
Owo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludDY0X3QgcXdbOF07Cj4gLcKgwqDCoMKgwqDC
oMKgIH0gaW5kZXg7Cj4gLSNlbmRpZgo+IC0KPiAtwqDCoMKgwqDCoMKgwqAgQVNTRVJUKGVhLnR5
cGUgPT0gT1BfTUVNKTsKPiAtwqDCoMKgwqDCoMKgwqAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKCgh
Y3B1X2hhc19hdng1MTJmIHx8ICFldmV4Lm9wbXNrIHx8Cj4gZXZleC5icnMgfHwKPiAtwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGV2
ZXgueiB8fCBldmV4LnJlZyAhPSAweGYgfHwgZXZleC5scgo+ICE9IDIpLAo+IC3CoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFg4Nl9FWENf
VUQpOwo+IC0KPiAtwqDCoMKgwqDCoMKgwqAgc3dpdGNoICggbW9kcm1fcmVnICYgNyApCj4gLcKg
wqDCoMKgwqDCoMKgIHsKPiAtwqDCoMKgwqDCoMKgwqAgY2FzZSAxOiAvKiB2Z2F0aGVycGYwe2Qs
cX1we3MsZH0gbWVte2t9ICovCj4gLcKgwqDCoMKgwqDCoMKgIGNhc2UgMjogLyogdmdhdGhlcnBm
MXtkLHF9cHtzLGR9IG1lbXtrfSAqLwo+IC3CoMKgwqDCoMKgwqDCoCBjYXNlIDU6IC8qIHZzY2F0
dGVycGYwe2QscX1we3MsZH0gbWVte2t9ICovCj4gLcKgwqDCoMKgwqDCoMKgIGNhc2UgNjogLyog
dnNjYXR0ZXJwZjF7ZCxxfXB7cyxkfSBtZW17a30gKi8KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCB2Y3B1X211c3RfaGF2ZShhdng1MTJwZik7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJl
YWs7Cj4gLcKgwqDCoMKgwqDCoMKgIGRlZmF1bHQ6Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
Z2VuZXJhdGVfZXhjZXB0aW9uKFg4Nl9FWENfVUQpOwo+IC3CoMKgwqDCoMKgwqDCoCB9Cj4gLQo+
IC3CoMKgwqDCoMKgwqDCoCBnZXRfZnB1KFg4NkVNVUxfRlBVX3ptbSk7Cj4gLQo+IC0jaWZuZGVm
IF9fWEVOX18KPiAtwqDCoMKgwqDCoMKgwqAgLyoKPiAtwqDCoMKgwqDCoMKgwqDCoCAqIEZvciB0
aGUgdGVzdCBoYXJuZXNzIHBlcmZvcm0gemVybyBieXRlIG1lbW9yeSBhY2Nlc3NlcywKPiBzdWNo
IHRoYXQKPiAtwqDCoMKgwqDCoMKgwqDCoCAqIGluIHBhcnRpY3VsYXIgY29ycmVjdCBEaXNwOCBz
Y2FsaW5nIGNhbiBiZSB2ZXJpZmllZC4KPiAtwqDCoMKgwqDCoMKgwqDCoCAqLwo+IC3CoMKgwqDC
oMKgwqDCoCBmYWlsX2lmKChtb2RybV9yZWcgJiA0KSAmJiAhb3BzLT53cml0ZSk7Cj4gLQo+IC3C
oMKgwqDCoMKgwqDCoCAvKiBSZWFkIGluZGV4IHJlZ2lzdGVyLiAqLwo+IC3CoMKgwqDCoMKgwqDC
oCBvcGMgPSBpbml0X2V2ZXgoc3R1Yik7Cj4gLcKgwqDCoMKgwqDCoMKgIHBldmV4ID0gY29weV9F
VkVYKG9wYywgZXZleCk7Cj4gLcKgwqDCoMKgwqDCoMKgIHBldmV4LT5vcGN4ID0gdmV4XzBmOwo+
IC3CoMKgwqDCoMKgwqDCoCAvKiB2bW92ZHF1ezMyLDY0fSAqLwo+IC3CoMKgwqDCoMKgwqDCoCBv
cGNbMF0gPSAweDdmOwo+IC3CoMKgwqDCoMKgwqDCoCBwZXZleC0+cGZ4ID0gdmV4X2YzOwo+IC3C
oMKgwqDCoMKgwqDCoCBwZXZleC0+dyA9IGIgJiAxOwo+IC3CoMKgwqDCoMKgwqDCoCAvKiBVc2Ug
KCVyYXgpIGFzIGRlc3RpbmF0aW9uIGFuZCBzaWJfaW5kZXggYXMgc291cmNlLiAqLwo+IC3CoMKg
wqDCoMKgwqDCoCBwZXZleC0+YiA9IDE7Cj4gLcKgwqDCoMKgwqDCoMKgIG9wY1sxXSA9IChzdGF0
ZS0+c2liX2luZGV4ICYgNykgPDwgMzsKPiAtwqDCoMKgwqDCoMKgwqAgcGV2ZXgtPnIgPSAhbW9k
ZV82NGJpdCgpIHx8ICEoc3RhdGUtPnNpYl9pbmRleCAmIDB4MDgpOwo+IC3CoMKgwqDCoMKgwqDC
oCBwZXZleC0+UiA9ICFtb2RlXzY0Yml0KCkgfHwgIShzdGF0ZS0+c2liX2luZGV4ICYgMHgxMCk7
Cj4gLcKgwqDCoMKgwqDCoMKgIHBldmV4LT5SWCA9IDE7Cj4gLcKgwqDCoMKgwqDCoMKgIG9wY1sy
XSA9IDB4YzM7Cj4gLQo+IC3CoMKgwqDCoMKgwqDCoCBpbnZva2Vfc3R1YigiIiwgIiIsICI9bSIg
KGluZGV4KSA6ICJhIiAoJmluZGV4KSk7Cj4gLcKgwqDCoMKgwqDCoMKgIHB1dF9zdHViKHN0dWIp
Owo+IC0KPiAtwqDCoMKgwqDCoMKgwqAgLyogQ2xlYXIgdW50b3VjaGVkIHBhcnRzIG9mIHRoZSBt
YXNrIHZhbHVlLiAqLwo+IC3CoMKgwqDCoMKgwqDCoCBuID0gMSA8PCAoNCAtICgoYiAmIDEpIHwg
ZXZleC53KSk7Cj4gLcKgwqDCoMKgwqDCoMKgIG9wX21hc2sgJj0gKDEgPDwgbikgLSAxOwo+IC0K
PiAtwqDCoMKgwqDCoMKgwqAgZm9yICggaSA9IDA7IHJjID09IFg4NkVNVUxfT0tBWSAmJiBvcF9t
YXNrOyArK2kgKQo+IC3CoMKgwqDCoMKgwqDCoCB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
bG9uZyBpZHggPSBiICYgMSA/IGluZGV4LnF3W2ldIDogaW5kZXguZHdbaV07Cj4gLQo+IC3CoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIGlmICggIShvcF9tYXNrICYgKDEgPDwgaSkpICkKPiAtwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+IC0KPiAtwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCByYyA9IChtb2RybV9yZWcgJiA0Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgPyBvcHMtPndyaXRlCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgOiBvcHMtPnJlYWQpKGVhLm1lbS5zZWcsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0cnVuY2F0ZV9lYShlYS5tZW0ub2Zm
ICsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlkeCAqICgxIDw8IHN0YXRlLQo+ID5z
aWJfc2NhbGUpKSwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIE5VTEwsIDAsIGN0eHQpOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIGlmICggcmMgPT0gWDg2RU1VTF9FWENFUFRJT04gKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIFNxdWFzaCBtZW1vcnkg
YWNjZXNzIHJlbGF0ZWQgZXhjZXB0aW9ucy4gKi8KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHg4Nl9lbXVsX3Jlc2V0X2V2ZW50KGN0eHQpOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgcmMgPSBYODZFTVVMX09LQVk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
fQo+IC0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvcF9tYXNrICY9IH4oMSA8PCBpKTsKPiAt
wqDCoMKgwqDCoMKgwqAgfQo+IC0KPiAtwqDCoMKgwqDCoMKgwqAgaWYgKCByYyAhPSBYODZFTVVM
X09LQVkgKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gZG9uZTsKPiAtI2VuZGlmCj4g
LQo+IC3CoMKgwqDCoMKgwqDCoCBzdGF0ZS0+c2ltZF9zaXplID0gc2ltZF9ub25lOwo+IC3CoMKg
wqDCoMKgwqDCoCBicmVhazsKPiAtwqDCoMKgIH0KPiAtCj4gwqDCoMKgwqAgY2FzZSBYODZFTVVM
X09QQygweDBmMzgsIDB4YzgpOsKgwqDCoMKgIC8qIHNoYTFuZXh0ZSB4bW0vbTEyOCx4bW0gKi8K
PiDCoMKgwqDCoCBjYXNlIFg4NkVNVUxfT1BDKDB4MGYzOCwgMHhjOSk6wqDCoMKgwqAgLyogc2hh
MW1zZzEgeG1tL20xMjgseG1tICovCj4gwqDCoMKgwqAgY2FzZSBYODZFTVVMX09QQygweDBmMzgs
IDB4Y2EpOsKgwqDCoMKgIC8qIHNoYTFtc2cyIHhtbS9tMTI4LHhtbSAqLwo+IEBAIC02ODYwLDE5
ICs2NzQxLDYgQEAgeDg2X2VtdWxhdGUoCj4gwqDCoMKgwqDCoMKgwqDCoCBvcF9ieXRlcyA9IDE2
Owo+IMKgwqDCoMKgwqDCoMKgwqAgZ290byBzaW1kXzBmMzhfY29tbW9uOwo+IMKgCj4gLcKgwqDC
oCBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweGM4KTogLyogdmV4cDJwe3MsZH0K
PiB6bW0vbWVtLHptbXtrfSAqLwo+IC3CoMKgwqAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4
MGYzOCwgMHhjYSk6IC8qIHZyY3AyOHB7cyxkfQo+IHptbS9tZW0sem1te2t9ICovCj4gLcKgwqDC
oCBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweGNjKTogLyogdnJzcXJ0Mjhwe3Ms
ZH0KPiB6bW0vbWVtLHptbXtrfSAqLwo+IC3CoMKgwqDCoMKgwqDCoCBob3N0X2FuZF92Y3B1X211
c3RfaGF2ZShhdng1MTJlcik7Cj4gLcKgwqDCoMKgwqDCoMKgIGdlbmVyYXRlX2V4Y2VwdGlvbl9p
ZigoZWEudHlwZSAhPSBPUF9SRUcgfHwgIWV2ZXguYnJzKSAmJgo+IGV2ZXgubHIgIT0gMiwKPiAt
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBYODZfRVhDX1VEKTsKPiAtwqDCoMKgwqDCoMKgwqAgZ290byBzaW1kX3ptbTsKPiAtCj4gLcKg
wqDCoCBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweGNiKTogLyogdnJjcDI4c3tz
LGR9Cj4geG1tL21lbSx4bW0seG1te2t9ICovCj4gLcKgwqDCoCBjYXNlIFg4NkVNVUxfT1BDX0VW
RVhfNjYoMHgwZjM4LCAweGNkKTogLyogdnJzcXJ0Mjhze3MsZH0KPiB4bW0vbWVtLHhtbSx4bW17
a30gKi8KPiAtwqDCoMKgwqDCoMKgwqAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyZXIp
Owo+IC3CoMKgwqDCoMKgwqDCoCBnb3RvIHNpbWRfem1tX3NjYWxhcl9zYWU7Cj4gLQo+IMKgwqDC
oMKgIGNhc2UgWDg2RU1VTF9PUENfVkVYX0YyKDB4MGYzOCwgMHhjYik6IC8qIHZzaGE1MTJybmRz
Mgo+IHhtbSx5bW0seW1tICovCj4gwqDCoMKgwqAgY2FzZSBYODZFTVVMX09QQ19WRVhfRjIoMHgw
ZjM4LCAweGNjKTogLyogdnNoYTUxMm1zZzEgeG1tLHltbSAqLwo+IMKgwqDCoMKgIGNhc2UgWDg2
RU1VTF9PUENfVkVYX0YyKDB4MGYzOCwgMHhjZCk6IC8qIHZzaGE1MTJtc2cyIHltbSx5bW0gKi8K
PiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCj4gKysr
IGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaAo+IEBAIC0yMDgs
OCArMjA4LDggQEAgWEVOX0NQVUZFQVRVUkUoQVZYNTEyX0lGTUEswqDCoCA1KjMyKzIxKSAvCj4g
wqBYRU5fQ1BVRkVBVFVSRShDTEZMVVNIT1BULMKgwqDCoCA1KjMyKzIzKSAvKkHCoCBDTEZMVVNI
T1BUIGluc3RydWN0aW9uCj4gKi8KPiDCoFhFTl9DUFVGRUFUVVJFKENMV0IswqDCoMKgwqDCoMKg
wqDCoMKgIDUqMzIrMjQpIC8qIUEgQ0xXQiBpbnN0cnVjdGlvbiAqLwo+IMKgWEVOX0NQVUZFQVRV
UkUoUFJPQ19UUkFDRSzCoMKgwqAgNSozMisyNSkgLyrCoMKgIFByb2Nlc3NvciBUcmFjZSAqLwo+
IC1YRU5fQ1BVRkVBVFVSRShBVlg1MTJQRizCoMKgwqDCoMKgIDUqMzIrMjYpIC8qQcKgIEFWWC01
MTIgUHJlZmV0Y2gKPiBJbnN0cnVjdGlvbnMgKi8KPiAtWEVOX0NQVUZFQVRVUkUoQVZYNTEyRVIs
wqDCoMKgwqDCoCA1KjMyKzI3KSAvKkHCoCBBVlgtNTEyIEV4cG9uZW50ICYKPiBSZWNpcHJvY2Fs
IEluc3RycyAqLwo+ICtYRU5fQ1BVRkVBVFVSRShBVlg1MTJQRizCoMKgwqDCoMKgIDUqMzIrMjYp
IC8qwqDCoCBYZW9uIFBoaSBBVlgtNTEyCj4gUHJlZmV0Y2ggSW5zdHJ1Y3Rpb25zICovCj4gK1hF
Tl9DUFVGRUFUVVJFKEFWWDUxMkVSLMKgwqDCoMKgwqAgNSozMisyNykgLyrCoMKgIFhlb24gUGhp
IEFWWC01MTIKPiBFeHBvbmVudCAmIFJlY2lwcm9jYWwgSW5zdHJzICovCj4gwqBYRU5fQ1BVRkVB
VFVSRShBVlg1MTJDRCzCoMKgwqDCoMKgIDUqMzIrMjgpIC8qQcKgIEFWWC01MTIgQ29uZmxpY3QK
PiBEZXRlY3Rpb24gSW5zdHJzICovCj4gwqBYRU5fQ1BVRkVBVFVSRShTSEEswqDCoMKgwqDCoMKg
wqDCoMKgwqAgNSozMisyOSkgLypBwqAgU0hBMSAmIFNIQTI1Ngo+IGluc3RydWN0aW9ucyAqLwo+
IMKgWEVOX0NQVUZFQVRVUkUoQVZYNTEyQlcswqDCoMKgwqDCoCA1KjMyKzMwKSAvKkHCoCBBVlgt
NTEyIEJ5dGUgYW5kIFdvcmQKPiBJbnN0cnVjdGlvbnMgKi8KPiBAQCAtMjY0LDggKzI2NCw4IEBA
IFhFTl9DUFVGRUFUVVJFKEJUQ19OTyzCoMKgwqDCoMKgwqDCoCA4KjMyKzI5KSAvCj4gwqBYRU5f
Q1BVRkVBVFVSRShJQlBCX1JFVCzCoMKgwqDCoMKgIDgqMzIrMzApIC8qQcKgIElCUEIgY2xlYXJz
IFJTQi9SQVMgdG9vLgo+ICovCj4gwqAKPiDCoC8qIEludGVsLWRlZmluZWQgQ1BVIGZlYXR1cmVz
LCBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjAuZWR4LCB3b3JkIDkKPiAqLwo+IC1YRU5fQ1BVRkVB
VFVSRShBVlg1MTJfNFZOTklXLCA5KjMyKyAyKSAvKkHCoCBBVlg1MTIgTmV1cmFsIE5ldHdvcmsK
PiBJbnN0cnVjdGlvbnMgKi8KPiAtWEVOX0NQVUZFQVRVUkUoQVZYNTEyXzRGTUFQUywgOSozMisg
MykgLypBwqAgQVZYNTEyIE11bHRpcGx5Cj4gQWNjdW11bGF0aW9uIFNpbmdsZSBQcmVjaXNpb24g
Ki8KPiArWEVOX0NQVUZFQVRVUkUoQVZYNTEyXzRWTk5JVywgOSozMisgMikgLyrCoMKgIFhlb24g
UGhpIEFWWDUxMiBOZXVyYWwKPiBOZXR3b3JrIEluc3RydWN0aW9ucyAqLwo+ICtYRU5fQ1BVRkVB
VFVSRShBVlg1MTJfNEZNQVBTLCA5KjMyKyAzKSAvKsKgwqAgWGVvbiBQaGkgQVZYNTEyIE11bHRp
cGx5Cj4gQWNjdW11bGF0aW9uIFNpbmdsZSBQcmVjaXNpb24gKi8KPiDCoFhFTl9DUFVGRUFUVVJF
KEZTUk0swqDCoMKgwqDCoMKgwqDCoMKgIDkqMzIrIDQpIC8qQcKgIEZhc3QgU2hvcnQgUkVQIE1P
VlMgKi8KPiDCoFhFTl9DUFVGRUFUVVJFKFVJTlRSLMKgwqDCoMKgwqDCoMKgwqAgOSozMisgNSkg
LyrCoMKgIFVzZXItbW9kZSBJbnRlcnJ1cHRzICovCj4gwqBYRU5fQ1BVRkVBVFVSRShBVlg1MTJf
VlAySU5URVJTRUNULCA5KjMyKzgpIC8qYcKgIFZQMklOVEVSU0VDVHtELFF9Cj4gaW5zbnMgKi8K
Cg==



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 12:04:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 12:04:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767672.1178351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlaR-0006BN-61; Tue, 30 Jul 2024 12:04:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767672.1178351; Tue, 30 Jul 2024 12:04: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 1sYlaR-0006BG-3I; Tue, 30 Jul 2024 12:04:15 +0000
Received: by outflank-mailman (input) for mailman id 767672;
 Tue, 30 Jul 2024 12:04:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYlaP-0006BA-J7
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 12:04:13 +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 d5126462-4e6b-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 14:04:11 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5a2ffc34722so9223461a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 05:04: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
 4fb4d7f45d1cf-5ac64eb3c29sm7109005a12.59.2024.07.30.05.04.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 05:04: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: d5126462-4e6b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722341051; x=1722945851; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HZKFikV9T8407QvCk0mbySiwJQj1JdBUYVZmSaBepoc=;
        b=XqYh3gmQ1P1Y1nAJ8LaZwHdqYWUHRbJI2XJiO2a1VxkKCKM0ziY2o8+hqVkq/WV4pO
         WN8209py8BGygb46zh7a3VC5EBiviI4hVWXdW4mjLHHaJ4jXQ+vNPpPIDnO2ll2iZ7k8
         N1E2vMh/ZEoBoZp0LwTLVmkYLgNkexgRNoLETWL2BU6pQBC2+I11Ldcw3qeSPDGgUPXf
         l4nI+OmNMd3r4azz6MrGeak3WI0J1MV+SinWmPJKV5mlLaBirQZa+7AKtAKGJ9LfBWQc
         lm6ANXCdOrizB+neY18AgmY46wrpLR7xlug4t6ZVLV4kduOdLOjqC0uMqu3bDP2SOOlm
         xSCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722341051; x=1722945851;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HZKFikV9T8407QvCk0mbySiwJQj1JdBUYVZmSaBepoc=;
        b=OLh+ukgE5IGKV1aLIh8pzzC3JO3e//OApMsfW8tQD0htZjGvePcNwAGTHWIk704gRT
         1vT3/7xMMEb5WUmQxj68SP++WraqtRaMzAw4UE1r14F+C4/Re8s0Z+oft5y526teTmqM
         xQ2pb8X/VHPnXW/xP9WSjMJX/XN+qPbaWI/WqvVzl/qgD1gB4wMxkLslEtspb9l/WyCB
         yJRjUgtwXDtvOHKVuqkHmkpH5clmQT8F9XUO+ycRIJUbLLGryH6DRte11Q9+8OgeEQJO
         w6JGkmijd7eVOZd1sEd3QSnwFC26eSxfMxxOxzAKvv77TyqUcNWrnut9QrntL7EfkYpS
         kWQg==
X-Gm-Message-State: AOJu0Yy9lI6dgc1PIh8XAuTYAu52dZCduxArWhnxbADUiM42QgSNFq40
	FuXzlLv0KB7MaSrFGXjIHW9vcNwK6RdcaiaAb9UlHWixSv3rRTq2CYoEWyZl3A==
X-Google-Smtp-Source: AGHT+IE1uws4CAdZOI6WCo+3ym3kgGzTobeyS3VIGYcROaca6T4pVH5kg5ttpZet0r2LfM4QNtjw7A==
X-Received: by 2002:a50:c30f:0:b0:58c:b2b8:31b2 with SMTP id 4fb4d7f45d1cf-5b46cf13951mr1622142a12.17.1722341050906;
        Tue, 30 Jul 2024 05:04:10 -0700 (PDT)
Message-ID: <67f1bcb7-8924-413f-a8ec-6a01f90e7836@suse.com>
Date: Tue, 30 Jul 2024 14:04:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] SUPPORT.md: split XSM from Flask
To: Daniel Smith <dpsmith@apertussolutions.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <d7289554-258b-4f75-858b-64005e9ae9be@suse.com>
 <191036ec4af.b419d861552194.691516900344490021@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: <191036ec4af.b419d861552194.691516900344490021@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.07.2024 13:37, Daniel Smith wrote:
> ---- On Tue, 30 Jul 2024 06:57:08 -0400 Jan Beulich  wrote ---
> 
>  > XSM is a generic framework, which in particular is also used by SILO. 
>  > With this it can't really be experimental: Arm enables SILO by default. 
>  >  
>  > Signed-off-by: Jan Beulich jbeulich@suse.com> 
>  >  
>  > --- a/SUPPORT.md 
>  > +++ b/SUPPORT.md 
>  > @@ -768,13 +768,20 @@ Compile time disabled for ARM by default 
>  >  
>  >  Status, x86: Supported, not security supported 
>  >  
>  > -### XSM & FLASK 
>  > +### XSM 
>  > + 
>  > +    Status: Supported 
>  > + 
>  > +See below for use with FLASK and SILO.  The dummy implementation is covered here 
>  > +as well. 
>  > + 
>  > +### XSM + FLASK 
> 
> To me it would make more sense to say XSM FLASK Policy than XSM + FLASK.

I thought about using "policy", but then deemed that wrong. The "Flask
policy" is what you load into Flask. Whereas here we're talking about the
code actually carrying out what such a policy says.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 12:11:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 12:11:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767679.1178362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlhM-0000Wa-T9; Tue, 30 Jul 2024 12:11:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767679.1178362; Tue, 30 Jul 2024 12:11:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlhM-0000WT-QF; Tue, 30 Jul 2024 12:11:24 +0000
Received: by outflank-mailman (input) for mailman id 767679;
 Tue, 30 Jul 2024 12:11:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYlhL-0000WN-J7
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 12:11:23 +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 d5527d41-4e6c-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 14:11:21 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7d2a9a23d9so493266766b.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 05:11: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-a7acab4de06sm635379466b.71.2024.07.30.05.11.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 05:11: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: d5527d41-4e6c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722341481; x=1722946281; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IFHEc9VLs6aD6v7ubFKDDN9rjvCJlMDm8nYff6mJLpM=;
        b=T5z4fjSTW4g4jCVNyktoJy3occ3tHFt6IeN+EcLIoravKGsOyBSJ+iVYsLjikrdi3h
         EYzzArNlnZCL81hoSZT/JVVYsbcq5y+EuA4KQK1e9xnePd1fJfZY1zScNxFlsrPJM0DK
         ObIEYQjMAGv2r2HLPeZX1pYIJw4PXFaUXb3yh31ViOjFtI/Kfusbh+kjWlkaN5/h0ULh
         xYN4tAhjcv3IzoyAO8V4Q8UZ36B0W7byjgeBWoBvcTVOfJx/7l/u4LY78dQT7mwsLD2w
         YF6KGTCLEy7GWtkN2d8XKThZWfwuKQehQAgn2JDc8yMvhmx+M5h8sFi/ugJVe0iHrFaH
         j64g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722341481; x=1722946281;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IFHEc9VLs6aD6v7ubFKDDN9rjvCJlMDm8nYff6mJLpM=;
        b=LKp7c7CBJGV813eA57X6ER0wfA5rsQjHiGbCMQbXVZ5JC4qzr8DwCcHorTZ6i5xj65
         SshMSArxuAyYZbzN+3QRqGk4VdZZx1eTnx9fOPzXjdEu3UTYc6e/q56t9zwcE0qlJv0Y
         V0eCEUvvT7D6jUqGaz+8DtaQS6Ct7qC5TwoDOsekcgIbI1pd72vh86oYiPcnL40ec6Sa
         NMMPtJ+yB0AUS85S1S2+0va26vZVtXQror0lgnPsyhisilnD3FszquiZr/uSMozT05Yj
         iiIb27c+msYZcqDoApEy1yBerq2rOvpAXfzj+GbIq+i2MKk+RXeirmkZhCP02+2Xa9xg
         3MRg==
X-Forwarded-Encrypted: i=1; AJvYcCUtUDuIiyZy4duNRjtK5fDgkHiOzl1AmLJRuaCotAFKDAlia6TLbU/8+sl5X9vX7L2VWx9cSGW6kaegRexPL4KvZQkOQnlS6tQNRWOoSKE=
X-Gm-Message-State: AOJu0YzifMgZtq1zGj+43I6PvPZPV4v8WNNXIVg/Z8arPFj6suorF4V8
	ZUDa3skNdlUIKnuAgR3o61PODrK9BIvwO8OpChQq8pKomRrDr8X1R7H7kQ0+Fw==
X-Google-Smtp-Source: AGHT+IG+0LM30RBDwqeSFQ1Rtl4XfhNktvMPtzGlh2QKUMpH1VUL6k3FFvWBbPLp9Z4d4rtxLP1GoA==
X-Received: by 2002:a17:907:7286:b0:a7c:4095:ccb6 with SMTP id a640c23a62f3a-a7d3fff71eemr861557166b.16.1722341480899;
        Tue, 30 Jul 2024 05:11:20 -0700 (PDT)
Message-ID: <9ed45d6d-5fdc-4754-908c-1d29b66b850a@suse.com>
Date: Tue, 30 Jul 2024 14:11:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/9] xen/riscv: setup fixmap mapping
To: oleksii.kurochko@gmail.com
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <04576976b82b97442f645b83b3d62475d144af8e.1721834549.git.oleksii.kurochko@gmail.com>
 <917cc521-c0c4-49e8-bc40-948679398bc6@suse.com>
 <28d646ba3d95da2eaf40869e1c07d950a0f3f203.camel@gmail.com>
 <8b8b0304-9f6f-4ded-a451-edc8fdd0e52a@suse.com>
 <2803670c49bdce4ef5982e7d149c77dda0701a31.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2803670c49bdce4ef5982e7d149c77dda0701a31.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.07.2024 13:25, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-07-30 at 09:49 +0200, Jan Beulich wrote:
>> On 29.07.2024 18:11, oleksii.kurochko@gmail.com wrote:
>>> On Mon, 2024-07-29 at 15:35 +0200, Jan Beulich wrote:
>>>> On 24.07.2024 17:31, Oleksii Kurochko wrote:
>>>>> @@ -81,6 +82,14 @@ static inline void
>>>>> flush_page_to_ram(unsigned
>>>>> long mfn, bool sync_icache)
>>>>>      BUG_ON("unimplemented");
>>>>>  }
>>>>>  
>>>>> +/* Write a pagetable entry. */
>>>>> +static inline void write_pte(pte_t *p, pte_t pte)
>>>>> +{
>>>>> +    RISCV_FENCE(rw, rw);
>>>>> +    *p = pte;
>>>>> +    RISCV_FENCE(rw, rw);
>>>>> +}
>>>>
>>>> Why the first of the two fences? 
>>> To ensure that writes have completed with the old mapping.
>>
>> Wait: There can certainly be uncompleted writes, but those must have
>> walked the page tables already, or else a (synchronous) fault could
>> not be delivered on the originating store instruction. Or am I
>> misunderstanding how paging (and associated faults) work on RISC-V?
> I am not sure that I correctly understand the part regarding (
> synchronous ) fault. Could you please come up with an example?
> 
> If something during page table walk will go wrong then a fault will be
> raised.

On the very insn, with subsequent insns not having started executing
(from an architectural perspective, i.e. leaving aside speculation).
That is what my use of "synchronous" meant.

> My initial intension was to be sure if I will be writing to an actively
> in-use page table that other cores can see at the time then fences
> above are required. It is not the case for now as we have only one CPUs
> but I assume that it will be a case when SMP will be enabled and more
> then one CPU will be able to work with the same page table.

Would that first fence really help there? The other CPU could use
the page tables in the window between the fence and the write. My
understanding of the need for fences is for them to be used at times
where ordering of memory accesses matters. For the moment I don't
see this as an aspect for the 1st fence here, but I may be
overlooking something.

>>>>> +    tmp = paddr_to_pte(LINK_TO_LOAD((unsigned
>>>>> long)&xen_fixmap),
>>>>> PTE_TABLE);
>>>>
>>>> I'm a little puzzled by the use of LINK_TO_LOAD() (and
>>>> LOAD_TO_LINK()
>>>> a
>>>> little further up) here. Don't you have functioning __pa() and
>>>> __va()?
>>> No, they haven't been introduced yet.
>>
>> So you're building up more technical debt, as the use of said two
>> constructs really should be limited to very early setup. Aiui once
>> you have functioning __va() / __pa() the code here would want
>> changing?
> 
> Ideally yes, it would want to changed.
> 
> Would it be the better solution to define __va() and __pa() using
> LOAD_TO_LINK()/LINK_TO_LOAD() so when "real" __va() and __pa() will be
> ready so only definitions of __va() and __pa() should be changed.

Well, that's something you're in a better position to answer, as it
depends on the ordering of subsequent work of yours.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 12:15:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 12:15:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767686.1178371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYllZ-00016V-BJ; Tue, 30 Jul 2024 12:15:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767686.1178371; Tue, 30 Jul 2024 12:15:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYllZ-00016O-8l; Tue, 30 Jul 2024 12:15:45 +0000
Received: by outflank-mailman (input) for mailman id 767686;
 Tue, 30 Jul 2024 12:15:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYllY-00016I-Fu
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 12:15:44 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70d8cbd5-4e6d-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 14:15:42 +0200 (CEST)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-52efd530a4eso7010748e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 05:15: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
 a640c23a62f3a-a7acab23f62sm643080466b.16.2024.07.30.05.15.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 05:15: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: 70d8cbd5-4e6d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722341742; x=1722946542; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=t+yBq+PZ3qeR79tyRs5EQIzbiBScpMqImrplcSta1j4=;
        b=WJdC0uanTOW7lREGerPilhoYhP1dU2XDqjpWLSalRJMT/K02Cf00P/E1/hQye7Gzne
         /9deGUy2Ex/ye15aNtp3rDJAAtlk568mnPpHhEm6WEjLeUSVgIA7HYjHSTm8LQ+gBUMm
         MrwUuE0oRVJiq4B0/3d1J9ryIJsioTTLHcLhzZ5z/0xs0rg8afh9DgPpcIxCZ25f4q00
         wO8KpaG0W/wYOnrN0s89oWfUZZTs9QcGQBXlZkjQMk5nqpxyvNy+JYPnq/5YmnmlCDjE
         mwCRQlOqFWLHrvh5jtCl/FrO1MKhzdmzPLnEEqq6+LWKRkCKJqZtUALArWGjBfFOGJsu
         L5xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722341742; x=1722946542;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t+yBq+PZ3qeR79tyRs5EQIzbiBScpMqImrplcSta1j4=;
        b=n4pD6dUOPJsmfKQ3m39nshf6rlTWa1XFPH2pRNUnpxbSVaSOqnIAzSK4/DSweunqm6
         Z36zQoC0bt9VInAXnbkJOvrAlXS3DeWBWMgHJ98QXMAByZZ4k5ZGkC3su9ZZKx20YsWF
         /SLQIdFxoiXZZ9ZAGNEq6/sMOsVzKIwizn3Jz4h0oQDvfxyAVsaa6GuvTBZY9IRqFaJu
         smP5Jh+14vSbWq9ml2N7o3kKSMPG1azKvhzaPGZUaVHm6woFHpBc1dadhAYbBW/czcOF
         9Z84R/4ylbQNeaysj/iaMFQFel8RhxDsGxUJlHGYp/C9+NlQdr2tWiiUNtFvusyaOcEU
         9jYQ==
X-Forwarded-Encrypted: i=1; AJvYcCXvxjwBoVx9a8brKSYOdLjdXzTDlGY8AvwTjV2V/bJUJ/pcgaQIS1h6aZ12jPd2UUvm+8Krkx3nBCIRy58gkIMHSkRAugevkk1y2iAfxfU=
X-Gm-Message-State: AOJu0YzmINWgdwIZQv/R2ASsgmmLlfwX3OUVsEyfxXTcxFXEu+mBrxJJ
	At7BURUDWwyil8SLRwrLAq7MoFuE5iICYXVp43GHok8N2ESnB/BkoB+arMHTFg==
X-Google-Smtp-Source: AGHT+IGFKhXdIOd2WDocyVb1hGYlwZVtn9OE7XK/rs8+KWPnhHfjNo21ePyNvhL+gXNl4CQA+OPtug==
X-Received: by 2002:a19:915e:0:b0:52e:ff2a:217 with SMTP id 2adb3069b0e04-5309b2d7baamr6808175e87.50.1722341741682;
        Tue, 30 Jul 2024 05:15:41 -0700 (PDT)
Message-ID: <36944f26-1180-4eaa-aa5d-3186e65faeb8@suse.com>
Date: Tue, 30 Jul 2024 14:15:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/9] xen/riscv: introduce asm/pmap.h header
To: oleksii.kurochko@gmail.com
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <11b5487659a9c76793e520c108cd92c6c84b908d.1721834549.git.oleksii.kurochko@gmail.com>
 <3359e37e-eaae-49ca-80a5-2bf70b9b46c7@suse.com>
 <78effb178b1ffe7ccb1714a13157e94f5e816b01.camel@gmail.com>
 <6c2ebc9e-cc0d-4139-80a2-4d7025989a9e@suse.com>
 <035f836a53966194048df5b720b94a78b0a490ae.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <035f836a53966194048df5b720b94a78b0a490ae.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.07.2024 13:39, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-07-30 at 09:56 +0200, Jan Beulich wrote:
>> On 29.07.2024 18:22, oleksii.kurochko@gmail.com wrote:
>>> On Mon, 2024-07-29 at 16:29 +0200, Jan Beulich wrote:
>>>> On 24.07.2024 17:31, Oleksii Kurochko wrote:
>>>>> --- /dev/null
>>>>> +++ b/xen/arch/riscv/include/asm/pmap.h
>>>>> @@ -0,0 +1,33 @@
>>>>> +/* SPDX-License-Identifier: GPL-2.0 */
>>>>> +#ifndef ASM_PMAP_H
>>>>> +#define ASM_PMAP_H
>>>>> +
>>>>> +#include <xen/bug.h>
>>>>> +#include <xen/mm.h>
>>>>> +#include <xen/page-size.h>
>>>>> +
>>>>> +#include <asm/fixmap.h>
>>>>> +#include <asm/flushtlb.h>
>>>>> +#include <asm/system.h>
>>>>> +
>>>>> +static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
>>>>> +{
>>>>> +    pte_t *entry = &xen_fixmap[slot];
>>>>> +    pte_t pte;
>>>>> +
>>>>> +    ASSERT(!pte_is_valid(*entry));
>>>>> +
>>>>> +    pte = mfn_to_xen_entry(mfn, PAGE_HYPERVISOR_RW);
>>>>> +    write_pte(entry, pte);
>>>>> +}
>>>>
>>>> Perhaps add a comment to clarify why it's safe to omit a TLB
>>>> flush
>>>> here.
>>>> Note that arch_pmap_unmap() having one is a necessary but not
>>>> sufficient
>>>> condition to that. In principle hardware may also cache
>>>> "negative"
>>>> TLB
>>>> entries; I have no idea how RISC-V behaves in this regard, or
>>>> whether
>>>> that aspect is actually left to implementations.
>>> what do you mean by "negative" TLB? an old TLB entry which should
>>> be
>>> invalidated?
>>
>> No, I mean TLB entries saying "no valid translation here". I.e.
>> avoiding
>> recurring walks of something that was once found to have no
>> translation.
> But we can't modify an existent entry because we have
> "ASSERT(!pte_is_valid(*entry))" in pmap_map() function and we are doing
> TLB flush during pmap_unmap().

You _always_ modify an existing entry. That may be a not-present one, but
that's still an entry. And that's part of why I think you still didn't
understand what I said. A particular implementation, if permitted by the
spec, may very well put in place a TLB entry when the result of a page
walk was a non-present entry. So ...

> So when we will be in pmap_map() we are
> sure that there is no TLB entry for the new pte.

..., can you point me at the part of the spec saying that such "negative"
TLB entries are not permitted?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 12:17:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 12:17:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767693.1178382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlnc-0002F0-Me; Tue, 30 Jul 2024 12:17:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767693.1178382; Tue, 30 Jul 2024 12:17: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 1sYlnc-0002Et-Jv; Tue, 30 Jul 2024 12:17:52 +0000
Received: by outflank-mailman (input) for mailman id 767693;
 Tue, 30 Jul 2024 12:17: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYlnb-0002El-Ai
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 12:17:51 +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 bd0f7e09-4e6d-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 14:17:50 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5a156556fb4so6970279a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 05:17: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-5ac63b59aa5sm7243556a12.43.2024.07.30.05.17.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 05:17: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: bd0f7e09-4e6d-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722341870; x=1722946670; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt: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/Ns7A9vLLtAkaOYavA9pBxbaBVNxBHRAR0jTb8lJxk=;
        b=RHpYFOABTEs3WhKOax4G8NIXRA09GvsFceM73FkmRIB4sY/WcumMAS33YIrX9zg+Fh
         9FjV3KsmipvZJSEctf3M0PH1dJPEwItmMCJ4lB6g9RhE6jV4TxPBlu7XaN7+a69YoZqW
         xKTDuya9Ym1Fw2BUnfswKj/ZTHMTixqd4KsL/J40LJmusdgA3BLVbCQ1YNDBGlSeaPjb
         tSoWqSgKfo5OK1yW/KHCUaPdMG7ZCpZ62ukN+/97Z9fESZA93hbLlx5B7BNicXJsdG8Q
         rgAq+gMoonCaW/sLZW3f3iTPdk7pzhNKrnv9yDAS759GnoiMWXDI+jTwAoRaVK8MjyI2
         3N6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722341870; x=1722946670;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references: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/Ns7A9vLLtAkaOYavA9pBxbaBVNxBHRAR0jTb8lJxk=;
        b=JoU/cjIcKGcfC9IzuQEiFPYDtC10LYog1f8x3g2TKASDPJaC78TEl0sPdSXIV0rmdL
         DXLefBcUFmD9B74CgWIKx6GK0wZXhy/lJOaxMRQcjBJ3QiVOIxle9PHzmjHe0RizTgJk
         cPgYVLvuzvsemL1jgyCHThEgt9XEdZ8myORPjIqQVh1dbkarvyPqdqX4TI3uZJyS6ZGk
         2it4+bM/69bLZi3vNHWs5iBVRMANOa7hs/EzQUsJbsnhhlAJxsqs0AIOsOFIOdvHt/vN
         Q5L9coFwGt+h0ypYat2zpN62ktNn0Ma5W2YSiKjCiuAGwJ/gmN6b69viSfZHwaEH/Uax
         gLaw==
X-Forwarded-Encrypted: i=1; AJvYcCWW9VzUnqah5TKW9SYF7O41Mj/N5i/WxKjKgbLRA3CtoVG4L1ZPAt7vplE3Iz/UyPpZG/72BEwJl3iu8tOXIWcFo/zGTip7qNW4Ik5Yds4=
X-Gm-Message-State: AOJu0Yz4U+bScxOBHvwWA/xl8LwhheGcYXQLS16bFJ9n/Uk8/jqXdb/t
	UanI32A2DlCSO+Qr3LGJUQPArOi0ziLemDKUKsi9LUlMQZghWNJ+ZCGfgCw+dA==
X-Google-Smtp-Source: AGHT+IFKRG+Y8ErrHF9ay4aRM7UwV1reznpmbqNPa1/BcBFZL8EHUonoK3KncWSrZIR3D/V5zcz0Ow==
X-Received: by 2002:a05:6402:3508:b0:5aa:32bb:146 with SMTP id 4fb4d7f45d1cf-5b0226baf28mr7740110a12.38.1722341869700;
        Tue, 30 Jul 2024 05:17:49 -0700 (PDT)
Message-ID: <13aa38d9-9554-43d7-aa76-9599ae2824cc@suse.com>
Date: Tue, 30 Jul 2024 14:17:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/9] xen/riscv: introduce and init SBI RFENCE extension
To: oleksii.kurochko@gmail.com
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <fb2d24731f870378d79077be39b1bc19cc655327.1721834549.git.oleksii.kurochko@gmail.com>
 <49d3a181-0830-4f55-83a4-c6c9fd54eb17@suse.com>
 <b7433d25bb3ca7a0f4e54f561b450b5724fb46dc.camel@gmail.com>
 <97554cbe-7009-4bc9-8205-7a9e0f29aad0@suse.com>
 <23ef6ff003d4170269eedfc7d3354965f060ba3f.camel@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <23ef6ff003d4170269eedfc7d3354965f060ba3f.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.07.2024 13:57, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-07-30 at 11:17 +0200, Jan Beulich wrote:
>> On 30.07.2024 10:44, oleksii.kurochko@gmail.com wrote:
>>> On Mon, 2024-07-29 at 17:52 +0200, Jan Beulich wrote:
>>>> On 24.07.2024 17:31, Oleksii Kurochko wrote:
>>>>
>>>>
>>>>> +/*
>>>>> + * Send SFENCE_VMA to a set of target HARTs.
>>>>> + *
>>>>> + * @param hart_mask mask representing set of target HARTs
>>>>> + * @param start virtual address start
>>>>> + * @param size virtual address size
>>>>
>>>> Are these really virtual addresses, not somehow a bias and a
>>>> number
>>>> of bits (CPUs) or elements? From the rest of the patch I can't
>>>> deduce
>>>> what these two parameters express.
>>> According to SBI doc start is an virtual address:
>>> https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/src/ext-rfence.adoc?plain=1#L44
>>
>> Oh, so these are describing the VA range to be flushed. Okay.
>>
>>> and hart_mask is:
>>> • unsigned long hart_mask is a scalar bit-vector containing hartids
>>
>> Biased by hart_mask_base in the actual SBI call.
> What word "biased" mean here?

The meaning of e.g. bit 0 in hart_mask will, aiui, be determined by
hart_mask_base. If the latter is non-zero, the bit will not name hart 0.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 12:17:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 12:17:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767694.1178392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlnh-0002Vn-2K; Tue, 30 Jul 2024 12:17:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767694.1178392; Tue, 30 Jul 2024 12: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 1sYlng-0002Vg-VZ; Tue, 30 Jul 2024 12:17:56 +0000
Received: by outflank-mailman (input) for mailman id 767694;
 Tue, 30 Jul 2024 12:17:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3jiA=O6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYlnf-0002To-I4
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 12:17:55 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bedecef6-4e6d-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 14:17:53 +0200 (CEST)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-52efa9500e0so5499060e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 05:17:53 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab23132sm638852666b.27.2024.07.30.05.17.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 05:17: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: bedecef6-4e6d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722341872; x=1722946672; 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=oJt36nY/JnhLYtPKhz3iINvaXsKib9chEKF3Ew8HPvA=;
        b=gj0GMDPMefbsZzysTD1QrbCVH+QeJdW5xDniYaAskjwijuAdV9qSlmThoVawnPtkV0
         WTQzVAhJU0ey640icv8ea/KZxmpZ/DYZkK/gwb6jQgGfyUmvCG30X/ywILct3t2ohLN8
         AmBxNAeaYU0YccGQ/4UF71jBlvj2owSpKys3c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722341872; x=1722946672;
        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=oJt36nY/JnhLYtPKhz3iINvaXsKib9chEKF3Ew8HPvA=;
        b=OFxkoaBUhuqahRGM7/fsCVVjwfJXOL2yyrF4g0s2cLfjPSF17H8Rx3LnPyz/f5CQO9
         Y5rbDBSh4bcpwcUiVUO5qtiggQmE8ElHIkXMHvKICh4TOj7RmPwCXemOWTT3lA6lzPJ7
         5K8nr8tqmm0+Di5My9XBI0lmCnF6JhhZ9oU7ZukcJIEunXcYdS7IRHQrlRtTDZI7srfn
         Flvq4PKFtaeMVjEWn9dpkebd6m7ezmnxfCWpwgqWLA/Y3NWxpvAnMrlgo26FHq72GPXm
         J20zoFIDu3SnVtOG+9FerPLq4154aTLhU5YRDg/e+c7upOuhZR/Zh2xGbYrnyae5lThB
         383g==
X-Gm-Message-State: AOJu0YzmP0ZBJuWENwQNsBhBExhVPLNmd31SwHRN8jSgksEikuEShWAn
	PMv7xXjyoYd11OgdvXghqd3W6kJhgcNCABX5aojum1rYxuVERImAJHy/t13H3MYxd2A1YZ1tTBo
	n
X-Google-Smtp-Source: AGHT+IFc0u2RQD+LmaEGt1f8CY8IZectWqgNjeIMQbR+0lneeB4GEhs0HWO/e7J129/P5FGGoChtTg==
X-Received: by 2002:ac2:4f07:0:b0:52e:a60e:3a08 with SMTP id 2adb3069b0e04-5309b25aa12mr9326707e87.11.1722341872315;
        Tue, 30 Jul 2024 05:17: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>
Subject: [PATCH] x86/APIC: Drop APIC_BASE and use fix_to_virt()
Date: Tue, 30 Jul 2024 13:17:49 +0100
Message-Id: <20240730121749.637879-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Right now the apic_mem_*() helpers only compile because sizeof(void *) ==
sizeof(long long).  Switch to using fix_to_virt() which is a void *type.

Also adjust the two places where the APIC/IO-APIC virtual address is rendered
in a printk().

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>

Split out of %L patch.
---
 xen/arch/x86/apic.c                |  4 ++--
 xen/arch/x86/include/asm/apic.h    | 10 +++++++---
 xen/arch/x86/include/asm/apicdef.h |  2 --
 xen/arch/x86/io_apic.c             |  4 ++--
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 6567af685a1b..7869c30e83f6 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -938,8 +938,8 @@ void __init init_apic_mappings(void)
         apic_phys = mp_lapic_addr;
 
     set_fixmap_nocache(FIX_APIC_BASE, apic_phys);
-    apic_printk(APIC_VERBOSE, "mapped APIC to %08Lx (%08lx)\n", APIC_BASE,
-                apic_phys);
+    apic_printk(APIC_VERBOSE, "mapped APIC to %p (%08lx)\n",
+                fix_to_virt(FIX_APIC_BASE), apic_phys);
 
 __next:
     /*
diff --git a/xen/arch/x86/include/asm/apic.h b/xen/arch/x86/include/asm/apic.h
index a7798de02993..25faa54d9d10 100644
--- a/xen/arch/x86/include/asm/apic.h
+++ b/xen/arch/x86/include/asm/apic.h
@@ -51,12 +51,16 @@ const struct genapic *apic_x2apic_probe(void);
 
 static inline void apic_mem_write(unsigned int reg, uint32_t v)
 {
-	*((volatile u32 *)(APIC_BASE+reg)) = v;
+    volatile uint32_t *addr = fix_to_virt(FIX_APIC_BASE) + reg;
+
+    *addr = v;
 }
 
-static inline u32 apic_mem_read(unsigned int reg)
+static inline uint32_t apic_mem_read(unsigned int reg)
 {
-	return *((volatile u32 *)(APIC_BASE+reg));
+    volatile uint32_t *addr = fix_to_virt(FIX_APIC_BASE) + reg;
+
+    return *addr;
 }
 
 /* NOTE: in x2APIC mode, we should use apic_icr_write()/apic_icr_read() to
diff --git a/xen/arch/x86/include/asm/apicdef.h b/xen/arch/x86/include/asm/apicdef.h
index b0790fad1cdb..49e29ec80156 100644
--- a/xen/arch/x86/include/asm/apicdef.h
+++ b/xen/arch/x86/include/asm/apicdef.h
@@ -117,8 +117,6 @@
 /* Applicable to vectors, TPR, and PPR. */
 #define		APIC_PRIO_CLASS(v)	((v) & 0xF0)
 
-#define APIC_BASE __fix_to_virt(FIX_APIC_BASE)
-
 #define MAX_IO_APICS 128
 
 extern bool x2apic_enabled;
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 7744b43f2414..772700584639 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2596,8 +2596,8 @@ static void __init ioapic_init_mappings(void)
         }
 
         set_fixmap_nocache(idx, ioapic_phys);
-        apic_printk(APIC_VERBOSE, "mapped IOAPIC to %08Lx (%08lx)\n",
-                    __fix_to_virt(idx), ioapic_phys);
+        apic_printk(APIC_VERBOSE, "mapped IOAPIC to %p (%08lx)\n",
+                    fix_to_virt(idx), ioapic_phys);
 
         if ( bad_ioapic_register(i) )
         {
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 12:20:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 12:20:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767708.1178402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlpu-0004vm-Eu; Tue, 30 Jul 2024 12:20:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767708.1178402; Tue, 30 Jul 2024 12:20: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 1sYlpu-0004vf-Bk; Tue, 30 Jul 2024 12:20:14 +0000
Received: by outflank-mailman (input) for mailman id 767708;
 Tue, 30 Jul 2024 12:20:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYlpt-0004vZ-5R
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 12:20:13 +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 110d2e23-4e6e-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 14:20:11 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5af6a1afa7bso4388850a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 05:20: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
 4fb4d7f45d1cf-5ac631b0464sm7195767a12.4.2024.07.30.05.20.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 05:20: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: 110d2e23-4e6e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722342011; x=1722946811; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Yn8BgAw6Gp0DxNh8lZ3IYst5fC5UQL1IuYSVb6S5Xqo=;
        b=DKy3TxvFJmCLIJHw52OAG0328g1pOxzDxQrHZnjTVHjCiFrT+JFR5aMUNafvJnbXjB
         dsotdoRhEAOpP8bkqu4d8layjuc0ozrZ7iGWCPUk7o8iyoPvz/9UErRGcr/l2W/RVVso
         dgDBHcfJJFbQqwDIe79Soptgtpd2XghWbuhSgfXDRo/XhT+eSrxD3p6jDO9Fywjx8zC/
         8lgfyCkISOpeJ3PmmzTXuveetkvSrlZ7UcagzrD9NIVQtg9ekt/+cLDwgQeCfy1X4E4E
         ++smXvGmAmlBCmMYugMR1EzZGvxl4Zi34R43jQ9JOgOPd/NNhfwmDpl9CO4CAzKXDHxn
         LqCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722342011; x=1722946811;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Yn8BgAw6Gp0DxNh8lZ3IYst5fC5UQL1IuYSVb6S5Xqo=;
        b=jToatbC9/g4wq2/j0BE+XUDYLKYejpc/sP3esuu3uUCUl/wYbO+Z2fGupux8Y7+xog
         NT8GC4ivXHeZFz0k6quKNXfVpS6ZqkWKd/iNwfyKkZfmciFiyD74HGOzyWKIzYvCs/7O
         vyTUiR8a8sqL6C/y3etuncm++IMQGMPH9Hqzn+e/DxEQ0lHAR+JEV8zlse2Nw2waxxNS
         q3OQHpWvP0R8zusFRgaUDyeW6kGwDLHKB8ELRdJH4o6hVkAryTA2V8vnGRv2WtMawpw8
         2A/VWLBU/Z3LCuWXz2PeFTwARAxUjMCa8K2et/6lVYEUydK16IGCN12x3wlbwbWRSkxQ
         2Vog==
X-Forwarded-Encrypted: i=1; AJvYcCW1Ab1Fcz66aE/CW01wXUfa8UYQPwFWGTi71nBRAI499o6DYgHVkIokknv4+vmOkic5NEZg1sACYSxlhRO0JOsdzf+lj48FyrTF+uzZGkU=
X-Gm-Message-State: AOJu0Yy8h1bFQhaQdJvnR7hARfvbTXzP2W3liDrwee5dW4Iuceuphntz
	ceDshvxySdlxihJzio4fm7I7YmYQFzGk7Gs8249/rQOCFmqCHIK+ZD2THSuFDJfsFBMEXu4iKE0
	=
X-Google-Smtp-Source: AGHT+IEJfO7kXee9CNwbHnfZoZnd22D74Dxe37p4Gi8LoR92LrXu2eYMeH3Pewnc5apCO5S4NhoOtA==
X-Received: by 2002:a50:c192:0:b0:5a4:622f:63c6 with SMTP id 4fb4d7f45d1cf-5b0205d5b5amr5760098a12.13.1722342010586;
        Tue, 30 Jul 2024 05:20:10 -0700 (PDT)
Message-ID: <404275f0-b7f7-4303-b6b9-88af9ccddc57@suse.com>
Date: Tue, 30 Jul 2024 14:20:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/APIC: Drop APIC_BASE and use fix_to_virt()
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: <20240730121749.637879-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: <20240730121749.637879-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.07.2024 14:17, Andrew Cooper wrote:
> Right now the apic_mem_*() helpers only compile because sizeof(void *) ==
> sizeof(long long).  Switch to using fix_to_virt() which is a void *type.
> 
> Also adjust the two places where the APIC/IO-APIC virtual address is rendered
> in a printk().
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> --- a/xen/arch/x86/include/asm/apic.h
> +++ b/xen/arch/x86/include/asm/apic.h
> @@ -51,12 +51,16 @@ const struct genapic *apic_x2apic_probe(void);
>  
>  static inline void apic_mem_write(unsigned int reg, uint32_t v)
>  {
> -	*((volatile u32 *)(APIC_BASE+reg)) = v;
> +    volatile uint32_t *addr = fix_to_virt(FIX_APIC_BASE) + reg;
> +
> +    *addr = v;
>  }
>  
> -static inline u32 apic_mem_read(unsigned int reg)
> +static inline uint32_t apic_mem_read(unsigned int reg)
>  {
> -	return *((volatile u32 *)(APIC_BASE+reg));
> +    volatile uint32_t *addr = fix_to_virt(FIX_APIC_BASE) + reg;

... with const added here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 12:21:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 12:21:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767720.1178411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYlrA-0005SL-Ni; Tue, 30 Jul 2024 12:21:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767720.1178411; Tue, 30 Jul 2024 12: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 1sYlrA-0005SE-LD; Tue, 30 Jul 2024 12:21:32 +0000
Received: by outflank-mailman (input) for mailman id 767720;
 Tue, 30 Jul 2024 12: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=3jiA=O6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYlr9-0005Rn-AV
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 12:21:31 +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 40580386-4e6e-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 14:21:30 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5a108354819so7136950a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 05:21:30 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac631b049csm7252148a12.3.2024.07.30.05.21.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 05:21: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: 40580386-4e6e-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722342090; x=1722946890; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=daQtbC861zDhab2VCchVoqloxVaFpiYgIz1BrsKnUwE=;
        b=K5tL21iI3790dNW6zQSo1GLk38D9crH+b3HSAFj7b8EChQRv1i0aMBO3jIzzvK1f5i
         oddqwwbTb2M4SOJjyvkdDOFkDIdXpv7J158fvCK5GmuZ6GpPtkLqkz6f//ZPfNRQPmI+
         3YgUkvScfmUxpGaOjHpsz94aY3av0XIoc1Qmg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722342090; x=1722946890;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=daQtbC861zDhab2VCchVoqloxVaFpiYgIz1BrsKnUwE=;
        b=LMwb/Pw3Pe9jDgmAt2H+JDYA4Mo7lLiNzhh25bRPqQ/kjuoZVnP5EMjs7lambk+Ghi
         m9AiVrlhrAmMQ+JSXOd//STLpF6EkFQMftmQ0H4DRswLzwYLNE1YeMtL/GPQVetRuMFk
         OF07vkfm4TtjBIVhOXXVYEs7pqSEL5P79qVXPTzYK8RCZAD5QdLEWzLw5dF/XnhnLaPH
         Mtg+y1Do+Mrb6EYEZnbQxK4CgTrtb4TvmFk3UDmFnsa4RTnGPhcy03Y5+gp8xnsedVwJ
         tQyp0kI6UkUgAoK/gbX8ZDnP2CYoKGhsRTzUFqdJymjV9VDXSXbnAoqzE7BHtTvhGkve
         I7DQ==
X-Forwarded-Encrypted: i=1; AJvYcCXb5Vomv5sE+cg2eXTiL6JLN1lJSAp4AcqaKQEpXSNPEcseugR1T1g29e0xuRO8Qv9/B2bLY8pShYBSYWa18g1FCuxMPDEmH3IybHnxVR8=
X-Gm-Message-State: AOJu0YyKsMvA6dFFcwzQh3nDrOQMM17/8di7NKqtKo8HESNcq3YP1cqp
	1R1hxZRju35Nl2uUVoNJceoMYce002chjT+dtclPqmicCTGCTye8zLs+gDjN7EM=
X-Google-Smtp-Source: AGHT+IEgeogyKEHQhFnnoMswHrOdz6J9JGG0QHdKUty2/GfRTa2ALFEGTQLo9CVwDBxwtxVSKMdI0w==
X-Received: by 2002:a05:6402:34c5:b0:57c:9da5:fc09 with SMTP id 4fb4d7f45d1cf-5b021d22dc9mr7739445a12.23.1722342089854;
        Tue, 30 Jul 2024 05:21:29 -0700 (PDT)
Message-ID: <cecd7f69-d9bd-4930-9662-14454ccea674@citrix.com>
Date: Tue, 30 Jul 2024 13:21:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/APIC: Drop APIC_BASE and use fix_to_virt()
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: <20240730121749.637879-1-andrew.cooper3@citrix.com>
 <404275f0-b7f7-4303-b6b9-88af9ccddc57@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <404275f0-b7f7-4303-b6b9-88af9ccddc57@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/07/2024 1:20 pm, Jan Beulich wrote:
> On 30.07.2024 14:17, Andrew Cooper wrote:
>> Right now the apic_mem_*() helpers only compile because sizeof(void *) ==
>> sizeof(long long).  Switch to using fix_to_virt() which is a void *type.
>>
>> Also adjust the two places where the APIC/IO-APIC virtual address is rendered
>> in a printk().
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> ideally ...
>
>> --- a/xen/arch/x86/include/asm/apic.h
>> +++ b/xen/arch/x86/include/asm/apic.h
>> @@ -51,12 +51,16 @@ const struct genapic *apic_x2apic_probe(void);
>>  
>>  static inline void apic_mem_write(unsigned int reg, uint32_t v)
>>  {
>> -	*((volatile u32 *)(APIC_BASE+reg)) = v;
>> +    volatile uint32_t *addr = fix_to_virt(FIX_APIC_BASE) + reg;
>> +
>> +    *addr = v;
>>  }
>>  
>> -static inline u32 apic_mem_read(unsigned int reg)
>> +static inline uint32_t apic_mem_read(unsigned int reg)
>>  {
>> -	return *((volatile u32 *)(APIC_BASE+reg));
>> +    volatile uint32_t *addr = fix_to_virt(FIX_APIC_BASE) + reg;
> ... with const added here.

Oops yes.  Will fix.  Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 12:31:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 12:31:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767728.1178422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYm0Y-0008Kl-K7; Tue, 30 Jul 2024 12:31:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767728.1178422; Tue, 30 Jul 2024 12:31:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYm0Y-0008Ke-HD; Tue, 30 Jul 2024 12:31:14 +0000
Received: by outflank-mailman (input) for mailman id 767728;
 Tue, 30 Jul 2024 12: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=P4le=O6=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1sYm0X-0008Ip-Ix
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 12:31:13 +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 9a02044f-4e6f-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 14:31:11 +0200 (CEST)
Received: from mail.zoho.com by mx.zohomail.com
 with SMTP id 1722342663090791.3026533651047;
 Tue, 30 Jul 2024 05:31: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: 9a02044f-4e6f-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; t=1722342669; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Y0/N8YyMTs8ZjF0NNSKwdnhQv0c80A0Y6uaICWaKRnLOu1/07r4YBLBBNVq2UFKRHyF2a5uJU8Vr/MU6FnvXptiHd6FjbxVRFvrlxDmKDCn5Or8SbkwcqMOXCZ1Xqa0LLss8UEqHsb1fvWEdaSwst0x3Oay+ibkZKxTboR287FU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1722342669; 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=cvlg50xaFD2o0cJz53Xj8OtdSE306ZvU7oCopCMp1Gs=; 
	b=n5IC93js5BAs7hW61GT7Hi1B3N9pqmiVTOIbrSnqjM8VUUiNaUtsppc36M5KZHVX1sEZFL0i/bBS+AOFvJcrDMWGsMtjdsvTHCGSy8cyqGmLtGe2XC7GZBPq6URIyvLgkdlj3p2LsUwgKEPEdC2BoMpeCF1wA97m5b+rpZzgshI=
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=1722342669;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Date:Date:From:From:To:To:Cc:Cc:Message-ID:In-Reply-To:References:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=cvlg50xaFD2o0cJz53Xj8OtdSE306ZvU7oCopCMp1Gs=;
	b=K9WZL53TrdTSEfNV7SifnFrNmH9aTA9G0WvVoYIpNHhUZUVVH2bWGLmK0+YDStz1
	vGrvbhAvH/u3nzzuSRi31SSdr4Q6cHVAkPodd+cU4n7uDtpi0XYBBL+5WstCL9j6/gv
	nWEJOcCQN9eP6aP72K2vPBaSn2wRfNzCPB+Q2D8g=
Date: Tue, 30 Jul 2024 08:31:03 -0400
From: Daniel Smith <dpsmith@apertussolutions.com>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Julien Grall" <julien@xen.org>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Message-ID: <191039f639c.eee6b8a8560183.5020758529681496430@apertussolutions.com>
In-Reply-To: <67f1bcb7-8924-413f-a8ec-6a01f90e7836@suse.com>
References: <d7289554-258b-4f75-858b-64005e9ae9be@suse.com>
 <191036ec4af.b419d861552194.691516900344490021@apertussolutions.com> <67f1bcb7-8924-413f-a8ec-6a01f90e7836@suse.com>
Subject: Re: [PATCH] SUPPORT.md: split XSM from Flask
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Importance: Medium
User-Agent: Zoho Mail
X-Mailer: Zoho Mail

---- On Tue, 30 Jul 2024 08:04:09 -0400 Jan Beulich  wrote ---

 > On 30.07.2024 13:37, Daniel Smith wrote: 
 > > ---- On Tue, 30 Jul 2024 06:57:08 -0400 Jan Beulich  wrote --- 
 > > 
 > >  > XSM is a generic framework, which in particular is also used by SILO. 
 > >  > With this it can't really be experimental: Arm enables SILO by default. 
 > >  > 
 > >  > Signed-off-by: Jan Beulich jbeulich@suse.com> 
 > >  > 
 > >  > --- a/SUPPORT.md 
 > >  > +++ b/SUPPORT.md 
 > >  > @@ -768,13 +768,20 @@ Compile time disabled for ARM by default 
 > >  > 
 > >  >  Status, x86: Supported, not security supported 
 > >  > 
 > >  > -### XSM & FLASK 
 > >  > +### XSM 
 > >  > + 
 > >  > +    Status: Supported 
 > >  > + 
 > >  > +See below for use with FLASK and SILO.  The dummy implementation is covered here 
 > >  > +as well. 
 > >  > + 
 > >  > +### XSM + FLASK 
 > > 
 > > To me it would make more sense to say XSM FLASK Policy than XSM + FLASK. 
 >  
 > I thought about using "policy", but then deemed that wrong. The "Flask 
 > policy" is what you load into Flask. Whereas here we're talking about the 
 > code actually carrying out what such a policy says. 
 
The main issue I have is the "+", so I checked how the different security models/policies are referenced under LSM. The documentation I reviwed lists them as modules or security modules, e.g. AppArmor module. How about one of these combinations, FLASK Module, XSM FLASK Module, or FLASK XSM Module? And similar for SILO.

dps


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 12:35:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 12:35:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767735.1178432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYm4g-0000YE-4x; Tue, 30 Jul 2024 12:35:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767735.1178432; Tue, 30 Jul 2024 12:35: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 1sYm4g-0000Y7-1v; Tue, 30 Jul 2024 12:35:30 +0000
Received: by outflank-mailman (input) for mailman id 767735;
 Tue, 30 Jul 2024 12:35:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3jiA=O6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYm4e-0000Y1-Sv
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 12:35:28 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 32ea0d7f-4e70-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 14:35:27 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-52efdf02d13so7241527e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 05:35:27 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab50cbfsm637122266b.47.2024.07.30.05.35.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 05:35: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: 32ea0d7f-4e70-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722342926; x=1722947726; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Qtq7TsueE9u8/FdZWfoI543ZcoeEgBnk907nQynhQME=;
        b=vDuR5+sWYl+vcBiC5JWO4Jq8UDsJM5+ghA4eivI2aNtYl8VPnTyVQAhMBwlXYkBImw
         nLrHwZxXOk7KTJwLBsk/OH+Udd7uabc4vDy3p7UatSByg5A9EZTzZMbmLPcEfd1RQZqs
         apb0yPph9cUCMxURYECB8FhxNPJg2PyVsTGJY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722342926; x=1722947726;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qtq7TsueE9u8/FdZWfoI543ZcoeEgBnk907nQynhQME=;
        b=lGACZ7ypcjQf+UxyXrgPHT/2CE9rhaWHx/vhkm57wp6PbwwtF3Ooqyf/EnFxGealSD
         qS6hiysTyWoAmOh+7kyKCL6E5p4GFOk0emN/WNlyvbUfMvbHSn2UwgAHl7NJk75HbnWG
         TerF6QApvWDnS2zVXnyHyN+2I17TcZulH3hVEvctmvCAYBBgvYfCfxEebTBRKADHWPpq
         axiSqO68aZTcgeYKArj5CeJD3qNJc92mUv092NcSvb6jkdiuSYe5cA+oRqHwraUCiiuc
         8Ox0rr6H3+hMztVRtOfSxqJcj6Q98unkWhoVt4M6A9tZwmXRWz7pQvyKO18xxFP6vYhM
         1+hQ==
X-Forwarded-Encrypted: i=1; AJvYcCVB88T1wemksoYWxmghpqUv7+25m8DNi+cqhLu+hm3AJjETywIM5vr5kR9X3k3ZgXU51s6CXsPkusltu1weuxf6CQ15lYJ2EXAdgSrPT90=
X-Gm-Message-State: AOJu0YyaPal3vGwBx6mWHFTUvnkwJuLwCBubguLUqSHDAUJhII7HdDs5
	SRDWnhkQ/O9jJke535xz9yAEPXj4BFvmkVFxq+9Xj0Em3rYhzya8PT7m8JsStts=
X-Google-Smtp-Source: AGHT+IGQOFsuca8btLLS8EWo8r4Hsp71Cx4HwmYxXwM+p8dwdrMnJ3nl4YA0f4o74R8eF0uiGOltKg==
X-Received: by 2002:a19:690b:0:b0:52c:8075:4f3 with SMTP id 2adb3069b0e04-5309b2a9f7dmr8067255e87.36.1722342926340;
        Tue, 30 Jul 2024 05:35:26 -0700 (PDT)
Message-ID: <ef4b21d8-a5a9-4d24-bf18-908b5ee067db@citrix.com>
Date: Tue, 30 Jul 2024 13:35:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] SUPPORT.md: split XSM from Flask
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>, Daniel Smith <dpsmith@apertussolutions.com>
References: <d7289554-258b-4f75-858b-64005e9ae9be@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <d7289554-258b-4f75-858b-64005e9ae9be@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/07/2024 11:57 am, Jan Beulich wrote:
> XSM is a generic framework, which in particular is also used by SILO.
> With this it can't really be experimental: Arm enables SILO by default.

It's stronger than this.

XSA-295 makes SILO the only security supported configuration for ARM.

And since then, no-one has added LSE atomic support to ARM, so this is
still the case even on hardware which can be driven in a way which isn't
susceptible to LL/SC infinite loops...

>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -768,13 +768,20 @@ Compile time disabled for ARM by default
>  
>      Status, x86: Supported, not security supported
>  
> -### XSM & FLASK
> +### XSM
> +
> +    Status: Supported
> +
> +See below for use with FLASK and SILO.  The dummy implementation is covered here
> +as well.

This feels weird, although I can't suggest a better option.

XSM isn't optional; it can't be compiled out, nor can the dummy policy,
so it's weird to call out what literally cannot have a statement
different to the rest of Xen.

Combined with ...

> +
> +### XSM + FLASK

... this wanting to say "Flask (XSM module/policy)" IMO, maybe what we
really want is:

---%<---
### XSM (Xen Security Modules)

Base XSM is a security policy framework used in Xen.  The dummy policy
implements a basic "dom0 all powerful, domUs all unprivileged" policy".
---%<---

intentionally without giving a Status.

Then, the two blocks below are clearly alternative modules which have
optionality and different support statuses.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 12:51:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 12:51:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767747.1178442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYmKS-0005gG-L2; Tue, 30 Jul 2024 12:51:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767747.1178442; Tue, 30 Jul 2024 12: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 1sYmKS-0005g9-IQ; Tue, 30 Jul 2024 12:51:48 +0000
Received: by outflank-mailman (input) for mailman id 767747;
 Tue, 30 Jul 2024 12:51:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYmKQ-0005g3-Ml
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 12:51:46 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79b3b24e-4e72-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 14:51:44 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-52f04c1e58eso5899809e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 05:51: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
 a640c23a62f3a-a7acad903f1sm642605866b.152.2024.07.30.05.51.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 05:51: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: 79b3b24e-4e72-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722343904; x=1722948704; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=o8545QigfXVaF1KsEMarV5g9cqBKF88cQWB2WemE7S4=;
        b=fEadpkzRpDbpxVAIdzixIyzvlBNf3jKntADv/HyGsSwZ1YFSk0Kxd4ml/EVkbrSRH8
         WbhraS3xJt+llu8AK2cgx9QqLvCqTFdWHnNZCteYRodIXDvHfOo9xx7yvbPg1acZJ9A8
         n+pGoqiYChbt2J6/E7XNAP2LUzHSSs1h/4WJSMG04HUk6Bx6+IBrRBuq97Owy/ajrgGq
         dCN671Fh2xbzzZyJQucQ3Dw6GoO1mF29/p95w9HymrXJbTmQPLYZhsGgONZ6wwyekeCX
         Lczqfjq6vfoVM5FVUclBBb+sJXU59EtVLQXKqKcxVVEVjuqWQtZhpeNyOy0J+mhRyAZW
         oCUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722343904; x=1722948704;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=o8545QigfXVaF1KsEMarV5g9cqBKF88cQWB2WemE7S4=;
        b=A5DG87IF6rAiFewuiNmlKh8d6pygU1+djEDTe1LZ80dTzH2xw+0eiDUyXOoub7yJlw
         cMqqzV90nD35I9wemmEQUkUwF/hteWWF2y7Bas0pLyF3GYYeLFvZF/8bbetlNyObcjYI
         qqyF19xWOzcXSN42fT2zX9Ish+wSINhNFwRYKc6lmzaOjzGhCH6gQXz9OTv/xmmWBGG2
         eMW+Mtxd6oNtv0ipvL7oh1qoxqgvAkbj8KgPBcV14koMFE9YDIKrIm4eSe7e10vag0m/
         VSknCqXXptlGqyiRkKadppbjN1QA4j7dBNshLtyhaENho7rEkQRfi7uOxJSghaTKKnzv
         oRgg==
X-Gm-Message-State: AOJu0YwDyQkBf02EUxpEaziferVVITRIQ5br8jz6H/OcI7198KD9CqJB
	j6NcB5wQ+Fxzet94RVzWJt0oezh/mHogRqNeeqL1DwtKVIhw5aCOyCPnzBuLEw==
X-Google-Smtp-Source: AGHT+IEgS2i0UR+EovQjDxGklbjM5NMRlUmTJdDr7LuIpCHCL/afAcfgI+p2wP7D7rhRemUvTcpl2g==
X-Received: by 2002:a05:6512:68e:b0:52d:3ada:4b6b with SMTP id 2adb3069b0e04-5309b269a7fmr11197903e87.1.1722343904050;
        Tue, 30 Jul 2024 05:51:44 -0700 (PDT)
Message-ID: <ece36e0f-da36-410d-b785-ee80399097e2@suse.com>
Date: Tue, 30 Jul 2024 14:51:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] SUPPORT.md: split XSM from Flask
To: Daniel Smith <dpsmith@apertussolutions.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <d7289554-258b-4f75-858b-64005e9ae9be@suse.com>
 <191036ec4af.b419d861552194.691516900344490021@apertussolutions.com>
 <67f1bcb7-8924-413f-a8ec-6a01f90e7836@suse.com>
 <191039f639c.eee6b8a8560183.5020758529681496430@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: <191039f639c.eee6b8a8560183.5020758529681496430@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.07.2024 14:31, Daniel Smith wrote:
> ---- On Tue, 30 Jul 2024 08:04:09 -0400 Jan Beulich  wrote ---
> 
>  > On 30.07.2024 13:37, Daniel Smith wrote: 
>  > > ---- On Tue, 30 Jul 2024 06:57:08 -0400 Jan Beulich  wrote --- 
>  > > 
>  > >  > XSM is a generic framework, which in particular is also used by SILO. 
>  > >  > With this it can't really be experimental: Arm enables SILO by default. 
>  > >  > 
>  > >  > Signed-off-by: Jan Beulich jbeulich@suse.com> 
>  > >  > 
>  > >  > --- a/SUPPORT.md 
>  > >  > +++ b/SUPPORT.md 
>  > >  > @@ -768,13 +768,20 @@ Compile time disabled for ARM by default 
>  > >  > 
>  > >  >  Status, x86: Supported, not security supported 
>  > >  > 
>  > >  > -### XSM & FLASK 
>  > >  > +### XSM 
>  > >  > + 
>  > >  > +    Status: Supported 
>  > >  > + 
>  > >  > +See below for use with FLASK and SILO.  The dummy implementation is covered here 
>  > >  > +as well. 
>  > >  > + 
>  > >  > +### XSM + FLASK 
>  > > 
>  > > To me it would make more sense to say XSM FLASK Policy than XSM + FLASK. 
>  >  
>  > I thought about using "policy", but then deemed that wrong. The "Flask 
>  > policy" is what you load into Flask. Whereas here we're talking about the 
>  > code actually carrying out what such a policy says. 
>  
> The main issue I have is the "+", so I checked how the different security models/policies are referenced under LSM. The documentation I reviwed lists them as modules or security modules, e.g. AppArmor module. How about one of these combinations, FLASK Module, XSM FLASK Module, or FLASK XSM Module?

Either of the latter two are fine(ish) by me. My (smaller) concern there is
that the M in XSM also stands for Module.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 12:58:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 12:58:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767754.1178451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYmQa-0006lM-9s; Tue, 30 Jul 2024 12:58:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767754.1178451; Tue, 30 Jul 2024 12:58:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYmQa-0006lF-6j; Tue, 30 Jul 2024 12:58:08 +0000
Received: by outflank-mailman (input) for mailman id 767754;
 Tue, 30 Jul 2024 12: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYmQY-0006jF-P3
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 12:58: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 5c5a2a0a-4e73-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 14:58:05 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5a1f9bc80e3so3786860a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 05:58: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
 4fb4d7f45d1cf-5afa605d81bsm5637348a12.74.2024.07.30.05.58.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 05:58: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: 5c5a2a0a-4e73-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722344284; x=1722949084; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0hdNllN7iOT2NDvpdFgYwr6O7OzPMHgwqprJyYYGcxY=;
        b=VjfJxgRTMu64WvMM2b9V5ElJNkW/G4kTSxsDJwntatkuJRim8b+5Ofg6QiCkwupChS
         ArF4sSVENCrwbfcLDy+enAJ4J08pide8Zsg768Z3m5wYkwb2dz+PMmC4YdnEGRDY2n6a
         aX91/gTftKy/c7LBjZdS6iQcj+TR1UqHzLr3esBwIhfKOHx+f0imWW4hazMhiee4FO+O
         Si6UDMhZWlbpl1WpBdUJ2TdIlU1l6Ovperc8maD8PgzVnLy8pUnhTwaBb+MO1gJNImrM
         VvApgcxNfSy8pF0mL85fOi269c8wT97coYkj5QwNUX7TuiZyfNDwBp3vvBBIkkQmfKlk
         5w+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722344284; x=1722949084;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0hdNllN7iOT2NDvpdFgYwr6O7OzPMHgwqprJyYYGcxY=;
        b=dEcySfsphJPi3MICUSVUyqbrZEFsxUcH+ujEH4WefnFwc/QJ5YjcST8tR2J3l+DaF/
         /H0KJm9kiylJwVeADhv/y81u7jhESGjlHp1xBgIX8RskcjzbPvt6UN+VP4V6/CVt+sHH
         2zIx45Rv5XeCj1c4xUbd8L2dwhyCLVCtaDPe+meEPgKCvJZqpxw5BAxvlqqW9ehN9zto
         Y08qWTSXB71yvlu277WmmyhKQYoJkAfXdSDwVv/QtZ43m3PfKtnSh2YJWUQzMSh+eEg9
         Wx7JsxtSxx/89P3MIo+wKlbQmA2zUI36m60Gc1QOuHALKPh29TPGzewFJDg8o5GVaPym
         /Lvg==
X-Forwarded-Encrypted: i=1; AJvYcCVKK8gPK/+I7eJzk1uaU7PTWiqateW2AzO4E3yXhXgIv4qdXCQIUqnVLPO69jYEAcswOod7XY/b3UG/85IqSX9LowNEZ5rTjIQ2BRec9xE=
X-Gm-Message-State: AOJu0YwXDWjHdoKoNH/twnhF4DBD2YW8oEbFbpAEyrSx9Drou+7ReeEN
	QFBA7vQ7V+2zzXOSaVsGNg940oRkEabI/te1BQFiI9pdgWb/mz1tymSsSYCqMA==
X-Google-Smtp-Source: AGHT+IGRTTP8OWA2xAAkR9O/VUWfCb1kEdw+Sm3b8hsA4kOwJmnwGhSnziUlFKuRgudLvEMoYBCF4Q==
X-Received: by 2002:a50:d5c1:0:b0:59f:bf77:80d4 with SMTP id 4fb4d7f45d1cf-5b021190877mr8570630a12.6.1722344284339;
        Tue, 30 Jul 2024 05:58:04 -0700 (PDT)
Message-ID: <220ebc7e-36eb-40af-9fa0-133bb458dfd5@suse.com>
Date: Tue, 30 Jul 2024 14:58:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] SUPPORT.md: split XSM from Flask
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Daniel Smith <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <d7289554-258b-4f75-858b-64005e9ae9be@suse.com>
 <ef4b21d8-a5a9-4d24-bf18-908b5ee067db@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: <ef4b21d8-a5a9-4d24-bf18-908b5ee067db@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.07.2024 14:35, Andrew Cooper wrote:
> On 30/07/2024 11:57 am, Jan Beulich wrote:
>> XSM is a generic framework, which in particular is also used by SILO.
>> With this it can't really be experimental: Arm enables SILO by default.
> 
> It's stronger than this.
> 
> XSA-295 makes SILO the only security supported configuration for ARM.

Okay, switched to "Arm mandates SILO for having a security supported
configuration."

>> --- a/SUPPORT.md
>> +++ b/SUPPORT.md
>> @@ -768,13 +768,20 @@ Compile time disabled for ARM by default
>>  
>>      Status, x86: Supported, not security supported
>>  
>> -### XSM & FLASK
>> +### XSM
>> +
>> +    Status: Supported
>> +
>> +See below for use with FLASK and SILO.  The dummy implementation is covered here
>> +as well.
> 
> This feels weird, although I can't suggest a better option.
> 
> XSM isn't optional; it can't be compiled out,

How can it not be? There's an "XSM" Kconfig control.

> nor can the dummy policy,

In a way. Yet how the dummy policy is instantiated is quite different
between XSM=y and XSM=n.

> so it's weird to call out what literally cannot have a statement
> different to the rest of Xen.
> 
> Combined with ...
> 
>> +
>> +### XSM + FLASK
> 
> ... this wanting to say "Flask (XSM module/policy)" IMO, maybe what we
> really want is:
> 
> ---%<---
> ### XSM (Xen Security Modules)
> 
> Base XSM is a security policy framework used in Xen.  The dummy policy
> implements a basic "dom0 all powerful, domUs all unprivileged" policy".
> ---%<---
> 
> intentionally without giving a Status.

As per above, imo XSM=y wants security status named. That's, after all,
part of what was missing / ambiguous so far.

> Then, the two blocks below are clearly alternative modules which have
> optionality and different support statuses.

I'll change the wording there some, to be closer to what you and also
Daniel ask for.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 13:03:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 13:03:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767763.1178463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYmVj-0000ZI-U0; Tue, 30 Jul 2024 13:03:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767763.1178463; Tue, 30 Jul 2024 13: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 1sYmVj-0000ZB-PM; Tue, 30 Jul 2024 13:03:27 +0000
Received: by outflank-mailman (input) for mailman id 767763;
 Tue, 30 Jul 2024 13:03: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=f/bP=O6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYmVj-0000Z5-9A
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 13:03:27 +0000
Received: from mail-qv1-xf2b.google.com (mail-qv1-xf2b.google.com
 [2607:f8b0:4864:20::f2b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b5eb896-4e74-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 15:03:26 +0200 (CEST)
Received: by mail-qv1-xf2b.google.com with SMTP id
 6a1803df08f44-6bb5a4668faso20969646d6.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 06:03:26 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fa94ca6sm62808196d6.93.2024.07.30.06.03.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 06:03: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: 1b5eb896-4e74-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722344605; x=1722949405; 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=/QmYZ0eF/uEyrjSlgiXTSl5fZqKsXtWLNlfbJ6q6uUQ=;
        b=R57n/DfhDi2f2qKtJ4ngMmprmdOPuVcQDKIGVTvPSLiUBNVAXJWUdscwjNZnPF8afl
         xSvgFLQg4gH2qos0dn8MWj28qnGbXBJIh+nTZT5ctRmnJAQwbwiSiXCW8G36FDlzsJ71
         Y5x4PoqkXCkBj3r+IF6BoBXv8LawWPZRVEdqA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722344605; x=1722949405;
        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=/QmYZ0eF/uEyrjSlgiXTSl5fZqKsXtWLNlfbJ6q6uUQ=;
        b=c2WVH+iFjm7zNSeYjDOcW625ZjtESwMQecdc9ZhqBiOBC2T5IZh93u/QfbSlmQCFLa
         SDOZOzWQuiKrClqLZfJ1qgpVI/qs597qXN8Tuu3plTahZR/N9a7xBcgtQEuzFOZa8UBV
         pkWifNFmM8gaqUimgMAWg4/pl8vda+tcqw4+ipG87Mq11RuunI2Adh7Jl+NEzrgzrXS5
         d7zBxFsiHs6rtxwZu1y0FTEydUw77B6/c/8CPU7dUmrl5ukfk6qN9oyyajT4JvNy/H+t
         8HDHakZMfaPMHGQZSIf2M0Vf0K7vz9PaAJbwZSWQfpSzadtCP594Pj55GH9bPrS9PZ/G
         DaEA==
X-Forwarded-Encrypted: i=1; AJvYcCXjFdbZ2gTc5N/4XVJ3ctEyR3PArJHAXHjp9/HfRiKJcwNf3PnSzjHK12tB34es/4nVx2l/XqeZ2YxtBSdc/yL9zoeaWLgNX1LBKg0+0G4=
X-Gm-Message-State: AOJu0YzyAjaDBypjs0asY/QNrHrvAZrTeslKaI3ZhKXtLUV1sfakgJax
	8c8J1BBB50EhcDvdFfwaTU1q1MAfW0kF5RE13IWPsuEWqUiOiOQLOmhlRKQa8Ig=
X-Google-Smtp-Source: AGHT+IFN05jLHWMjDldHmjQA20iuXvaDQLRlxqqEAqyjl5p6F2Z9bR840j698EJP16FomLt4CQVXvg==
X-Received: by 2002:a05:6214:2629:b0:6b0:6400:3b6f with SMTP id 6a1803df08f44-6bb559f9ba2mr143736426d6.8.1722344604115;
        Tue, 30 Jul 2024 06:03:24 -0700 (PDT)
Date: Tue, 30 Jul 2024 15:03:20 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, alejandro.vallejo@cloud.com,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 03/22] x86/dom0: only disable SMAP for the PV dom0 build
Message-ID: <ZqjkmLZ9TLtqwQnV@macbook>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-4-roger.pau@citrix.com>
 <b1918f51-1ac0-40f8-9174-d8161b2681dd@suse.com>
 <5aad5f48-e32e-4a59-bcef-05adec0ecbec@citrix.com>
 <ZqfA714LUFgZOYqw@macbook>
 <542807c8-425b-481f-b02f-dd657c12ef5d@citrix.com>
 <ZqjGs2NLTbatrQS9@macbook>
 <9aa68e23-8c9c-4596-b847-6b1d34e57004@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <9aa68e23-8c9c-4596-b847-6b1d34e57004@citrix.com>

On Tue, Jul 30, 2024 at 12:06:45PM +0100, Andrew Cooper wrote:
> On 30/07/2024 11:55 am, Roger Pau Monné wrote:
> > On Mon, Jul 29, 2024 at 06:51:31PM +0100, Andrew Cooper wrote:
> >> On 29/07/2024 5:18 pm, Roger Pau Monné wrote:
> >>> On Mon, Jul 29, 2024 at 04:52:22PM +0100, Andrew Cooper wrote:
> >>>> On 29/07/2024 12:53 pm, Jan Beulich wrote:
> >>>>> On 26.07.2024 17:21, Roger Pau Monne wrote:
> >>>>>> The PVH dom0 builder doesn't switch page tables and has no need to run with
> >>>>>> SMAP disabled.
> >>>>>>
> >>>>>> Put the SMAP disabling close to the code region where it's necessary, as it
> >>>>>> then becomes obvious why switch_cr3_cr4() is required instead of
> >>>>>> write_ptbase().
> >>>>>>
> >>>>>> Note removing SMAP from cr4_pv32_mask is not required, as we never jump into
> >>>>>> guest context, and hence updating the value of cr4_pv32_mask is not relevant.
> >>>>> I'm okay-ish with that being dropped, but iirc the goal was to keep the
> >>>>> variable in sync with CPU state.
> >>>> Removing SMAP from cr4_pv32_mask is necessary.
> >>>>
> >>>> Otherwise IST vectors will reactive SMAP behind the back of the dombuilder.
> >>>>
> >>>> This will probably only manifest in practice in a CONFIG_PV32=y build,
> >>> Sorry, I'm possibly missing some context here.  When running the dom0
> >>> builder we switch to the guest page-tables, but not to the guest vCPU,
> >>> (iow: current == idle) and hence the context is always the Xen
> >>> context.
> >> Correct.
> >>
> >>> Why would the return path of the IST use cr4_pv32_mask when the
> >>> context in which the IST happened was the Xen one, and the current
> >>> vCPU is the idle one (a 64bit PV guest from Xen's PoV).
> >>>
> >>> My understanding is that cr4_pv32_mask should only be used when the
> >>> current context is running a 32bit PV vCPU.
> >> This logic is evil to follow, because you need to look at both
> >> cr4_pv32_mask and XEN_CR4_PV32_BITS to see both halves of it.
> >>
> >> Notice how cr4_pv32_restore() only ever OR's cr4_pv32_mask into %cr4?
> >>
> >> CR4_PV32_RESTORE is called from every entry path which *might* have come
> >> from a 32bit PV guest, and it always results in Xen having SMEP/SMAP
> >> active (as applicable).  This includes NMI.
> >>
> >> The change is only undone in compat_restore_all_guest(), where
> >> XEN_CR4_PV32_BITS is cleared from %cr4 iff returning to Ring1/2.  This
> >> is logic cunningly disguised in the use of the Parity flag.
> >>
> >>
> >> Because the NMI handler does reactive SMEP/SMAP (based on the value in
> >> cr4_pv32_mask), and returning to Xen does not pass through
> >> compat_restore_all_guest(), taking an NMI in the middle of of the
> >> dombuilder will reactive SMAP behind your back.
> > After further conversations with Andrew we believe the current
> > disabling of X86_CR4_SMAP in %cr4 during dom0 build is not safe.
> >
> > Regardless of whether cr4_pv32_mask is properly adjusted return to Xen
> > context from interrupt would be done with SMAP enabled if
> > X86_FEATURE_XEN_SMAP is set.
> 
> Sorry - that's not what I intended to convey.
> 
> The logic prior to this patch is safe.  SMAP is cleared from
> cr4_pv32_mask before clearing CR4.SMAP, and reinstated in the opposite
> order.  Therefore, an NMI hitting the region won't reactivate SMAP
> because it's not (instantaniously) set in cr4_pv32_mask.

My bad, I was getting confused with the `clac` instructions in the
event entry points.

I think with my proposed change we would also hit the BUG in
cr4_pv32_restore on debug builds if Xen got an interrupt in the middle
of the SMAP disabled dom0 build region if SMEP is enabled, as
cr4_pv32_mask would differ from the current %cr4 value (not all bits
intended would be actually set).

> Arguably it wants some barrier()'s for clarity, and an explanation of
> why this works.
> 
> The problem your patch has is that by not clearing SMAP from
> cr4_pv32_mask, it becomes unsafe iff an NMI/#MC/#DB hits the region.

Won't such issue also affect common_interrupt, and hence not be
limited to NMI/#MC/#DB only?

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 13:05:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 13:05:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767770.1178472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYmXK-00015v-73; Tue, 30 Jul 2024 13:05:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767770.1178472; Tue, 30 Jul 2024 13:05:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYmXK-00015o-3U; Tue, 30 Jul 2024 13:05:06 +0000
Received: by outflank-mailman (input) for mailman id 767770;
 Tue, 30 Jul 2024 13: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=P4le=O6=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1sYmXI-00015g-OK
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 13:05: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 545490b7-4e74-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 15:05:02 +0200 (CEST)
Received: from mail.zoho.com by mx.zohomail.com
 with SMTP id 1722344692790545.1457244313797;
 Tue, 30 Jul 2024 06:04: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: 545490b7-4e74-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; t=1722344698; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=i9I8YiHxqEMhTLbBc5hIGgEQM5GnxIhu7aI46qF1LzafDHb83wHERKp765P6S/2DVzppKmhkdyV4wK9beGgJSXaZwJaKs/SC+lVnqD9sDCUlaZm9lnKI4h492D1jlh5dp+RyqsONHsgflEhE9hEEJITMrZt0jweOhiCg8a58z18=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1722344698; 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=LG6hTwZMBajHC9FvMj4T2Cg++P96TzpsiyX7lAr8+CI=; 
	b=GwRK5IH9be8c9XnH8Bgt1/58FwirTUXYxH0bd6T9tBPdHhwTwXKEGKaqBm5AVFQsuiS/Xb3WiWc7pXzrIZt+MlcaHkpzrpB6dXksBe7ExHNddfQBvFN8rup7dvkqstZn77XSnCsz2rkmkbbB5/0bJgHoN6sM0XHjz4uUsYNQNjo=
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=1722344698;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Date:Date:From:From:To:To:Cc:Cc:Message-ID:In-Reply-To:References:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=LG6hTwZMBajHC9FvMj4T2Cg++P96TzpsiyX7lAr8+CI=;
	b=hIFRHseDm4L7A++hjO7iawG6BvIt+nv2aDZzAW6XujotDFoYQ2Q/9DZmO11R8CCM
	o650Iw2CnXJevF4e9sTBAZfg3WsKbd686rdA6KsbU40TrKuFmp+zX0S9VzYcD05pZVM
	Ku+d0FkuWGvkm1Cuy42/f7I47oXCsNSS+JBH6K6k=
Date: Tue, 30 Jul 2024 09:04:52 -0400
From: Daniel Smith <dpsmith@apertussolutions.com>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Julien Grall" <julien@xen.org>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <19103be5c1e.1009d7316565959.1812404802621701586@apertussolutions.com>
In-Reply-To: <220ebc7e-36eb-40af-9fa0-133bb458dfd5@suse.com>
References: <d7289554-258b-4f75-858b-64005e9ae9be@suse.com>
 <ef4b21d8-a5a9-4d24-bf18-908b5ee067db@citrix.com> <220ebc7e-36eb-40af-9fa0-133bb458dfd5@suse.com>
Subject: Re: [PATCH] SUPPORT.md: split XSM from Flask
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Importance: Medium
User-Agent: Zoho Mail
X-Mailer: Zoho Mail

---- On Tue, 30 Jul 2024 08:58:03 -0400 Jan Beulich  wrote ---

 > On 30.07.2024 14:35, Andrew Cooper wrote:=20
 > > On 30/07/2024 11:57 am, Jan Beulich wrote:=20
 > >> XSM is a generic framework, which in particular is also used by SILO.=
=20
 > >> With this it can't really be experimental: Arm enables SILO by defaul=
t.=20
 > >=20
 > > It's stronger than this.=20
 > >=20
 > > XSA-295 makes SILO the only security supported configuration for ARM.=
=20
 > =20
 > Okay, switched to "Arm mandates SILO for having a security supported=20
 > configuration."=20
 > =20
 > >> --- a/SUPPORT.md=20
 > >> +++ b/SUPPORT.md=20
 > >> @@ -768,13 +768,20 @@ Compile time disabled for ARM by default=20
 > >>=20
 > >>      Status, x86: Supported, not security supported=20
 > >>=20
 > >> -### XSM & FLASK=20
 > >> +### XSM=20
 > >> +=20
 > >> +    Status: Supported=20
 > >> +=20
 > >> +See below for use with FLASK and SILO.  The dummy implementation is =
covered here=20
 > >> +as well.=20
 > >=20
 > > This feels weird, although I can't suggest a better option.=20
 > >=20
 > > XSM isn't optional; it can't be compiled out,=20
 > =20
 > How can it not be? There's an "XSM" Kconfig control.=20
 > =20
 > > nor can the dummy policy,=20
 > =20
 > In a way. Yet how the dummy policy is instantiated is quite different=20
 > between XSM=3Dy and XSM=3Dn.=20

I have pointed this out a few times, the difference between XSM=3Dy vs XSM=
=3Dn determines how the dummy policy is embedded into the hypervisor. XSM=
=3Dn, causes the dummy policy hooks to be included directly for the xsm_* h=
ooks. When XSM=3Dy, then the callback wrapper functions are used for the xs=
m_* hooks with dummy policy set for the callbacks.

 > > so it's weird to call out what literally cannot have a statement=20
 > > different to the rest of Xen.=20
 > >=20
 > > Combined with ...=20
 > >=20
 > >> +=20
 > >> +### XSM + FLASK=20
 > >=20
 > > ... this wanting to say "Flask (XSM module/policy)" IMO, maybe what we=
=20
 > > really want is:=20
 > >=20
 > > ---%<---=20
 > > ### XSM (Xen Security Modules)=20
 > >=20
 > > Base XSM is a security policy framework used in Xen.=C2=A0 The dummy p=
olicy=20
 > > implements a basic "dom0 all powerful, domUs all unprivileged" policy"=
.=20
 > > ---%<---=20
 > >=20
 > > intentionally without giving a Status.=20
 > =20
 > As per above, imo XSM=3Dy wants security status named. That's, after all=
,=20
 > part of what was missing / ambiguous so far.=20
 > =20
 > > Then, the two blocks below are clearly alternative modules which have=
=20
 > > optionality and different support statuses.=20
 > =20
 > I'll change the wording there some, to be closer to what you and also=20
 > Daniel ask for.=20

Thank you.

dps


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 13:09:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 13:09:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767779.1178482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYmbM-0002nS-Ss; Tue, 30 Jul 2024 13:09:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767779.1178482; Tue, 30 Jul 2024 13:09: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 1sYmbM-0002nL-O9; Tue, 30 Jul 2024 13:09:16 +0000
Received: by outflank-mailman (input) for mailman id 767779;
 Tue, 30 Jul 2024 13: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=3jiA=O6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYmbL-0002mL-AZ
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 13:09:15 +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 ea9cea48-4e74-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 15:09:13 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7ac449a0e6so352691966b.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 06:09:13 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acadafd9asm641983766b.187.2024.07.30.06.09.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 06: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: ea9cea48-4e74-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722344953; x=1722949753; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ro6z/9e5/hibNUVt5SiBLw+J/XDQ+lsrMmENtFUih+g=;
        b=ug4meu1bV1a5Pu40aV8LoYI4d3tjFXWgZOpVt+Cg5Qr6Gcg+xZ9mmTd3aY8VZGxlVI
         8riXMjFD1qFyK/1jRWHWO2Zm5Chh2jZaujUNUsDgphcgcRGtl+e3lj6r9hMenFYt/kof
         bf19ie51nbkz+GvP37Dw283Nyj3AKyc/jyXn8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722344953; x=1722949753;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ro6z/9e5/hibNUVt5SiBLw+J/XDQ+lsrMmENtFUih+g=;
        b=WeFRPiB/+dtVULVxp9/3K6+Uy6x9W2a0h8Kxd8CpxT0VsGWQskHqGzE0vVe7QhVMcS
         nrg1BybYRUyxIW6wOB4K9DSoMCt3uSbPyxRl83WJmc9tWbBEO1njtGMgSltNrlaFuj8M
         dPCdwzOQClndB7qZ1GpxckmfO0UgwHHkRADbVqoYOrYFxMLJ9bpNivVo71gbFrENqwDI
         GoRnV5pzag6lcxaIbJSmL9N5uEvTbMmPIY7AyZJvxMsSZaZL+Qyk61j7b2+IG/ACCjA1
         xKoh9lY/HFcYZr93Y7ScxmazWxHfhRurxW1vvANevksitWw7IQGRX+GQejmrjNfoBqpF
         jDEQ==
X-Forwarded-Encrypted: i=1; AJvYcCWRvsLnHNpi0Lmc2jK2ljCAohl4Lvcm8VLj3giy+zuoht8KZO8CDH0iasP9/HXP6QJh9vujehWY5JUWuUGHK46n5yv6FQoz7GxxLwiifDI=
X-Gm-Message-State: AOJu0YyXo4683ThWIQQYr+Wx5hjnoXUG/7Ltwry5tDjesvEADPylncRj
	HwIW+VUqaaU0ERxU6Bqqfk6Tloh/OyPCQ2SXMlUIfQPHQcZ1ziFE/cYwZbm5b5E=
X-Google-Smtp-Source: AGHT+IHZQ1MOB74cxyrTx6qGUyB1K8dRWzf9dhjFGCH93K5aY4Wxuv/N+Kr5mpdhUpeQvwSSafVFfQ==
X-Received: by 2002:a17:907:86a2:b0:a7a:d093:f843 with SMTP id a640c23a62f3a-a7d401605afmr709876966b.63.1722344952608;
        Tue, 30 Jul 2024 06:09:12 -0700 (PDT)
Message-ID: <d08179b1-a114-4ae9-a6da-e907f2c027c3@citrix.com>
Date: Tue, 30 Jul 2024 14:09:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
To: Jiqian Chen <Jiqian.Chen@amd.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <ray.huang@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240708114124.407797-3-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/07/2024 12:41 pm, Jiqian Chen wrote:
> If run Xen with PVH dom0 and hvm domU, hvm will map a pirq for
> a passthrough device by using gsi, see qemu code
> xen_pt_realize->xc_physdev_map_pirq and libxl code
> pci_add_dm_done->xc_physdev_map_pirq. Then xc_physdev_map_pirq
> will call into Xen, but in hvm_physdev_op, PHYSDEVOP_map_pirq
> is not allowed because currd is PVH dom0 and PVH has no
> X86_EMU_USE_PIRQ flag, it will fail at has_pirq check.
>
> So, allow PHYSDEVOP_map_pirq when dom0 is PVH and also allow
> PHYSDEVOP_unmap_pirq for the removal device path to unmap pirq.
> And add a new check to prevent (un)map when the subject domain
> doesn't have a notion of PIRQ.
>
> So that the interrupt of a passthrough device can be
> successfully mapped to pirq for domU with a notion of PIRQ
> when dom0 is PVH
>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
>  xen/arch/x86/hvm/hypercall.c |  6 ++++++
>  xen/arch/x86/physdev.c       | 12 ++++++++++--
>  2 files changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
> index 0fab670a4871..03ada3c880bd 100644
> --- a/xen/arch/x86/hvm/hypercall.c
> +++ b/xen/arch/x86/hvm/hypercall.c
> @@ -71,8 +71,14 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>  
>      switch ( cmd )
>      {
> +        /*
> +        * Only being permitted for management of other domains.
> +        * Further restrictions are enforced in do_physdev_op.
> +        */
>      case PHYSDEVOP_map_pirq:
>      case PHYSDEVOP_unmap_pirq:
> +        break;
> +
>      case PHYSDEVOP_eoi:
>      case PHYSDEVOP_irq_status_query:
>      case PHYSDEVOP_get_free_pirq:
> diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
> index d6dd622952a9..9f30a8c63a06 100644
> --- a/xen/arch/x86/physdev.c
> +++ b/xen/arch/x86/physdev.c
> @@ -323,7 +323,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          if ( !d )
>              break;
>  
> -        ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
> +        /* Only mapping when the subject domain has a notion of PIRQ */
> +        if ( !is_hvm_domain(d) || has_pirq(d) )
> +            ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
> +        else
> +            ret = -EOPNOTSUPP;
>  
>          rcu_unlock_domain(d);
>  
> @@ -346,7 +350,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          if ( !d )
>              break;
>  
> -        ret = physdev_unmap_pirq(d, unmap.pirq);
> +        /* Only unmapping when the subject domain has a notion of PIRQ */
> +        if ( !is_hvm_domain(d) || has_pirq(d) )
> +            ret = physdev_unmap_pirq(d, unmap.pirq);
> +        else
> +            ret = -EOPNOTSUPP;
>  
>          rcu_unlock_domain(d);
>  

Gitlab is displeased with your offering.

https://gitlab.com/xen-project/xen/-/pipelines/1393459622

This breaks both {adl,zen3p}-pci-hvm-x86-64-gcc-debug, and given the:

(XEN) [    8.150305] HVM restore d1: CPU 0
libxl: error: libxl_pci.c:1491:pci_add_dm_done: Domain
1:xc_physdev_map_pirq irq=18 (error=-1): Not supported
libxl: error: libxl_pci.c:1809:device_pci_add_done: Domain
1:libxl__device_pci_add failed for PCI device 0:3:0.0 (rc -3)
libxl: error: libxl_create.c:1962:domcreate_attach_devices: Domain
1:unable to add pci devices
libxl: error: libxl_xshelp.c:206:libxl__xs_read_mandatory: xenstore read
failed: `/libxl/1/type': No such file or directory
libxl: warning: libxl_dom.c:49:libxl__domain_type: unable to get domain
type for domid=1, assuming HVM
libxl: error: libxl_domain.c:1616:domain_destroy_domid_cb: Domain
1:xc_domain_destroy failed: No such process

I'd say that we're hitting the newly introduced -EOPNOTSUPP path.

In the test scenario, dom0 is PV, and it's an HVM domU which is breaking.

The sibling *-pci-pv-* tests (a PV domU) are working fine.

Either way, I'm going to revert this for now because clearly the "the
subject domain has a notion of PIRQ" hasn't been reasoned about
correctly, and it's important to keep Gitlab CI green across the board.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 13:12:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 13:12:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767789.1178493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYmeK-0004OX-AT; Tue, 30 Jul 2024 13:12:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767789.1178493; Tue, 30 Jul 2024 13: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 1sYmeK-0004OQ-5f; Tue, 30 Jul 2024 13:12:20 +0000
Received: by outflank-mailman (input) for mailman id 767789;
 Tue, 30 Jul 2024 13:12:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3jiA=O6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYmeI-0004OH-VE
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 13:12:18 +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 5830f3c2-4e75-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 15:12:17 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a7aac70e30dso580074066b.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 06:12:17 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab23624sm641859666b.20.2024.07.30.06.12.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 06:12: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: 5830f3c2-4e75-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722345136; x=1722949936; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KsxmzrXmscH7pLf1c73qcFKnQolQ2MpK/FVjF32399M=;
        b=bOQzklgTTZrIkRtPhtc2vwX8/ZFRt0Y5XovLPmR/aF51u4McOiX55p2QZw2YChRKl0
         OiyZcB9v+0LoN/CplhJnCC/6nbsk1Gudrpi1nyzJ+HYaacUHDQuy9X0vI8XyvTBodD+9
         D10xzsuac+6dWO8LUqgUZFbWpo3NKZQO+oDQc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722345136; x=1722949936;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KsxmzrXmscH7pLf1c73qcFKnQolQ2MpK/FVjF32399M=;
        b=IkpW7Dh/KuQT5k9/DHAMiOi2vtSyKJvp2Ui6H49Ya9rDpDLziiZ7QMVxqx00pFft+n
         0jkOh9EHhJxToULf4iC2HO3a0kIdmwDn1V/VXI6cekw5rFyBS4gx2Ex9JBwJYN8131Yx
         q+twGrqYBLzfPU0GDdrJCOb5o6HbzlMyP1NLouasTvO0vjtp7WDcMuKCxcVMLnp9JbWY
         ymzpr5LwtYZG33NmUnkSqYEWFJtvg+MMwNYQ5KZwwBGdh2/s3DvRs7k7Rrw1A5eqQNJl
         sQ70aBQBxckoP1hSVVUzXG9EIDDO6KRrRlSDW2SO7t3aglC7xEc/PgkPpOLfE9ccOY2E
         L3/w==
X-Forwarded-Encrypted: i=1; AJvYcCXLpc2Qk6aSCgan7aVpKEcTfXveqmCT78ob0dLEg8E7Wpnuco717kTb86Z12RpWCYZTe0SCGGnarYaCPONT1zQGK+LhaAlmqvpF+dEXSPA=
X-Gm-Message-State: AOJu0YxbA/ys8yKrcOGPo3yq13i7EQcBiHkndAZoRuk4MF4tCGbXrM4p
	x2RAvZ1LY5l0rqBmjIu6ObsoB2j9D1xEPTJHO1P8Q5j39zRUhyT8mA/RNPvqBTo=
X-Google-Smtp-Source: AGHT+IEvoFLJ8O4g26XpJUpRSa2dyoV7YoZX5yzJx4sOr/AokwnzLpTCil1OL7P3RdhS4qmOEhbFHA==
X-Received: by 2002:a17:907:6d01:b0:a7a:9ca6:524 with SMTP id a640c23a62f3a-a7d3fdb66b3mr740793566b.14.1722345136307;
        Tue, 30 Jul 2024 06:12:16 -0700 (PDT)
Message-ID: <a73aaad8-aa70-43de-8ef6-7d03a53dbd34@citrix.com>
Date: Tue, 30 Jul 2024 14:12:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/22] x86/mm: make virt_to_xen_l1e() static
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com, Jan Beulich <jbeulich@suse.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-6-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240726152206.28411-6-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/07/2024 4:21 pm, Roger Pau Monne wrote:
> There are no callers outside the translation unit where it's defined, so make
> the function static.
>
> No functional change intended.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 13:16:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 13:16:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767795.1178501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYmii-0005CQ-PO; Tue, 30 Jul 2024 13:16:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767795.1178501; Tue, 30 Jul 2024 13: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 1sYmii-0005CJ-Ml; Tue, 30 Jul 2024 13:16:52 +0000
Received: by outflank-mailman (input) for mailman id 767795;
 Tue, 30 Jul 2024 13:16:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYmih-0005C9-6w; Tue, 30 Jul 2024 13:16:51 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYmih-00058i-0M; Tue, 30 Jul 2024 13:16:51 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYmig-0004ya-Fn; Tue, 30 Jul 2024 13:16:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYmig-0004Yr-FE; Tue, 30 Jul 2024 13:16: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Uj+72bZUTzW8rbrydwRR+rVq+TOHb5Ee4tWTzzQMGM0=; b=v/TBnf5160F69gRUjBEKRie97A
	Ci9Wf6Cl/Wq3ctHkTLPUiX3H8+PdjHmhjUPfKfFkh0O1vmZ4lTQIuZUTtRqfYbCXb0ZKP6z72eQ1g
	XpTPkTx/wy/ZXbIbwBhOo4nemcfa+j+Vl/uEe3u/AAsy81vKQWSRO+E4JFzHAgpJm7ME=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187055-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187055: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=91a822749a6664dcaf0f67a837dcf0cd05783d17
X-Osstest-Versions-That:
    ovmf=621a30c676d55bfe0049f65e98f65104528218db
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 13:16:50 +0000

flight 187055 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187055/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 91a822749a6664dcaf0f67a837dcf0cd05783d17
baseline version:
 ovmf                 621a30c676d55bfe0049f65e98f65104528218db

Last test of basis   187052  2024-07-30 05:45:33 Z    0 days
Testing same since   187055  2024-07-30 11:41:31 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  wilson_chen <wilson_chen@phoenix.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   621a30c676..91a822749a  91a822749a6664dcaf0f67a837dcf0cd05783d17 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 13:20:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 13:20:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767807.1178518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYmlp-0007ZQ-Ct; Tue, 30 Jul 2024 13:20:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767807.1178518; Tue, 30 Jul 2024 13: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 1sYmlp-0007ZJ-7d; Tue, 30 Jul 2024 13:20:05 +0000
Received: by outflank-mailman (input) for mailman id 767807;
 Tue, 30 Jul 2024 13:20: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=3jiA=O6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYmln-0007Hd-Vf
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 13:20:03 +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 6d589847-4e76-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 15:20:02 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5a3b866ebc9so6434286a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 06:20:02 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad41616sm644128466b.137.2024.07.30.06.20.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 06:20: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: 6d589847-4e76-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722345601; x=1722950401; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UtL5QRZdTSkiyNE0y/GzgCPgJO0iz1GkS5XdnmeZgg4=;
        b=mn2+8aN3PSyJBQV0Oy5pycu0lGlarizCyhQHGFO6q5K6JdTYyTOz9cthUzqWIBpuHJ
         q06wQ6zzcx8WRWpwXq1GMELK8y/moSkB280l/7dB8NqfRfbzDrNyy3nc6XBFOU7KJbLy
         WefI4K6zMbGehn7Z24AquvJxK9jXn4+6DyzD0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722345601; x=1722950401;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UtL5QRZdTSkiyNE0y/GzgCPgJO0iz1GkS5XdnmeZgg4=;
        b=ouj62U4kqZGs4JS/o0HMQe9hjGjYhFS/gR8hReg4cerCzK+EmdKnZlvalYPxVsvQ0l
         akn+n2zyWFMx4iLZs94Grcbq3NLuK1D17dVqH8WmlmPQHkq/+LIZhXLrwIcrjReF0f/W
         h6kRgiBKSALcvPaFQqotPKiy3+LMHCGvm3zU+UMy4WyqEY2z5RGzdINMg0XAQiUUonJj
         KldlMlcEpFd5uXQrKXDngx42+PEfya5JgxtiDupm4sSROZLgVTybkiOrinnsom4u8GWS
         nnG4ouH8gXG7VFzUiX7IJD88SU7SUQW8dwJpip3F3L7N6FY5VWB14hjCxNg1zyJWq0N4
         yL9Q==
X-Forwarded-Encrypted: i=1; AJvYcCU5XbwF2b8CI5SPd2hsWAROAkZKyFpSLqgvcEWMI2V1gZCxR1woQ1wq6JHAl1TojUwp8N+ql0nNQLIx/hn24I7HqZEKIsZNWm4m2/Aj26k=
X-Gm-Message-State: AOJu0YxsNbceUCR8V28yMdiYDr/+QvOVAseUXIoLHqdMqbEs3EtJYJYu
	+3SqTuEhzC0Zn0i+Yh9myaGQe55XS6ZBwCsMI3tdFyXPcA/N2JhYNtxVNwilFF03H6SMMeAknvB
	b
X-Google-Smtp-Source: AGHT+IH8hnQn1np81PIAZwXDsCCD30Tb00oXty0XyPtW8/nvd3ihzQtKy/q6qaKRLSRcgWdm/21k9Q==
X-Received: by 2002:a17:906:99c2:b0:a7a:ba59:3172 with SMTP id a640c23a62f3a-a7d4005cef8mr886718566b.38.1722345601423;
        Tue, 30 Jul 2024 06:20:01 -0700 (PDT)
Message-ID: <f764a059-7b6b-45ad-aa12-ebe0acc06ab1@citrix.com>
Date: Tue, 30 Jul 2024 14:19:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/22] x86/mm: introduce a local domain variable to
 write_ptbase()
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: alejandro.vallejo@cloud.com, Jan Beulich <jbeulich@suse.com>
References: <20240726152206.28411-1-roger.pau@citrix.com>
 <20240726152206.28411-7-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240726152206.28411-7-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/07/2024 4:21 pm, Roger Pau Monne wrote:
> This reduces the repeated accessing of v->domain.
>
> No functional change intended.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 13:47:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 13:47:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767820.1178528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYnBk-0004WE-9r; Tue, 30 Jul 2024 13:46:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767820.1178528; Tue, 30 Jul 2024 13:46: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 1sYnBk-0004W7-7H; Tue, 30 Jul 2024 13:46:52 +0000
Received: by outflank-mailman (input) for mailman id 767820;
 Tue, 30 Jul 2024 13:46: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=VcTV=O6=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sYnBj-0004Vl-Dw
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 13:46:51 +0000
Received: from fhigh6-smtp.messagingengine.com
 (fhigh6-smtp.messagingengine.com [103.168.172.157])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 29e9afec-4e7a-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 15:46:48 +0200 (CEST)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 2187311400FB;
 Tue, 30 Jul 2024 09:46:44 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute2.internal (MEProxy); Tue, 30 Jul 2024 09:46:44 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 30 Jul 2024 09:46: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: 29e9afec-4e7a-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1722347204;
	 x=1722433604; bh=q9ARzUbkCi3KwhQgJhpiDDsPjoLnU55CcaOs5n2E7fA=; b=
	trjFRrLHYplRSCKuxPLBZMLZTodWf45H1tNH//P8briGlt4NByxZa/A29j8TplL3
	9O9pa40ghUr3dFNx7RNvuOKRowKe4Q9tBdkiosX4bNDdPJdtOBGJDS6PF48lgMPV
	wjHdfYZdZ1BMc44qQBT8VkSag3YdYgbjScJyzRISEQlzIR5gR/CdupFlAzOmpoGc
	QTkIulk3NJfZxoEZOrS10aHc0zajJCxapxjd1kkDS0mw8jTTWufWImv6XniqQ7td
	Pz9DeodBjGwt1yEpQ0j0y4b8Ofe1pM21w8gyyR/FFOD5CQR1IbRTTZgqWsowYB5k
	R/7OxWb2ewDFfaSS10Rq9Q==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1722347204; x=1722433604; bh=q9ARzUbkCi3KwhQgJhpiDDsPjoLn
	U55CcaOs5n2E7fA=; b=fk8Kk8PEZmtyK/CEHl/pvCmhydndBitB9Ask3hlFlGf+
	qs5uh2tsk2nfWDEJrHkFSjnt3S1UShd0mpmfLin3u2AxbDrLcD5gvw4YcOHnQWUH
	ph7zlpESwMsWi6OpoW5JbP3sNXjwXPx9ddITAeQzErQESVhG9C+Zx89wwVbFXkjf
	cEFT5E6STfd2aADoa+f8WECtpQlU1mNufT6c631Fg/bjjfLIXLfDUNaQdWYBKw2f
	yILYgYmC2WU8jF0D01vOys6SUzls5uyElDEwdRLV4TKB0aKFgewYvWPkitDCxKJT
	54BCI2znImNeKEsT5F0Zg/qIHHxxcvuEiSGcHlLoeA==
X-ME-Sender: <xms:w-6oZnvIcA9gBBjzOmLIuRHupnD48r_58cWmKrYGccqaCC8NvPDBXw>
    <xme:w-6oZof6faqyjXNikeTFU3gHR73RTFPvAuuoViFV-wapRMUC8vdtURF4yx5XJgFO-
    I0mc9DjGxyHhw>
X-ME-Received: <xmr:w-6oZqxNjcQ54e1TEwCmCqdcvJTD4IAFYimmjEb7wClyHNqaQJ7zYo4nZjoELFrEDq3YGwXUsGc-6cQcx60jsIZkZCxYycSlXg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrjeeggdeilecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeevueej
    teegleelteduueevhfetgfffjeevtddvgfeiveehteehleegueelvdejveenucffohhmrg
    hinhepghhithhlrggsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghm
    pehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslh
    grsgdrtghomhdpnhgspghrtghpthhtoheptd
X-ME-Proxy: <xmx:w-6oZmMGZquZ-oFTRYCSBq80ZVi7SySEsL3JYEAETCTkRIIAcIU-cA>
    <xmx:w-6oZn9utZ01mJ6bwY-QA9Q0TshvNnSfAkLXyw6NOPQ2Yj9oZEb5aA>
    <xmx:w-6oZmXCgKcJ9jTk3MDj4sYFEcE4WpC6eQuP6UBNpk-fRgZtZvhnKg>
    <xmx:w-6oZocUMz5cu9_OqLcaFvTgB5dsJNCbu5Mswb3AKwzSMT3ZWeZJ5A>
    <xmx:xO6oZqYvl0kFW4ZdWLEMu6FMZqq-q__SSwEOuxyKO3tVVYQVibepVlCW>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 30 Jul 2024 15:46:38 +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.cooper3@citrix.com,
	cardoe@cardoe.com
Subject: Re: [PATCH v2] automation: upgrade Yocto to scarthgap
Message-ID: <ZqjuvjUtmNU7Ud8g@mail-itl>
References: <alpine.DEB.2.22.394.2407261639190.4857@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="/kuNONbh+hsUL5z8"
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2407261639190.4857@ubuntu-linux-20-04-desktop>


--/kuNONbh+hsUL5z8
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 30 Jul 2024 15:46:38 +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.cooper3@citrix.com,
	cardoe@cardoe.com
Subject: Re: [PATCH v2] automation: upgrade Yocto to scarthgap

On Fri, Jul 26, 2024 at 05:19:42PM -0700, Stefano Stabellini wrote:
> Upgrade Yocto to a newer version. Use ext4 as image format for testing
> with QEMU on ARM and ARM64 as the default is WIC and it is not available
> for our xen-image-minimal target.
>=20
> Also update the tar.bz2 filename for the rootfs.
>=20
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

> ---
>=20
> all yocto tests pass:
> https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1390081=
173
>=20
> Changes in v2:
> - s/EXT4/IMAGE_FMT/
> - set IMAGE_FMT before the call to project_build
> - also update the filename xen-image-minimal-qemuarm.rootfs.tar.bz2
> ---
>  automation/build/yocto/build-yocto.sh       | 15 ++++++++++++---
>  automation/build/yocto/yocto.inc            |  4 ++--
>  automation/gitlab-ci/build.yaml             |  2 +-
>  automation/scripts/qemu-smoke-dom0-arm32.sh |  2 +-
>  4 files changed, 16 insertions(+), 7 deletions(-)
>=20
> diff --git a/automation/build/yocto/build-yocto.sh b/automation/build/yoc=
to/build-yocto.sh
> index 93ce81ce82..e1e69f2bb5 100755
> --- a/automation/build/yocto/build-yocto.sh
> +++ b/automation/build/yocto/build-yocto.sh
> @@ -25,6 +25,7 @@ TARGET_SUPPORTED=3D"qemuarm qemuarm64 qemux86-64"
>  VERBOSE=3D"n"
>  TARGETLIST=3D""
>  BUILDJOBS=3D"8"
> +IMAGE_FMT=3D""
> =20
>  # actions to do
>  do_clean=3D"n"
> @@ -38,8 +39,9 @@ build_result=3D0
>  # layers to include in the project
>  build_layerlist=3D"poky/meta poky/meta-poky poky/meta-yocto-bsp \
>                   meta-openembedded/meta-oe meta-openembedded/meta-python=
 \
> +                 meta-openembedded/meta-networking \
>                   meta-openembedded/meta-filesystems \
> -                 meta-openembedded/meta-networking meta-virtualization"
> +                 meta-virtualization"
> =20
>  # yocto image to build
>  build_image=3D"xen-image-minimal"
> @@ -175,7 +177,7 @@ function project_build() {
>                  mkdir -p $OUTPUTDIR
>                  cp $BUILDDIR/tmp/deploy/images/qemuarm/zImage $OUTPUTDIR
>                  cp $BUILDDIR/tmp/deploy/images/qemuarm/xen-qemuarm $OUTP=
UTDIR
> -                cp $BUILDDIR/tmp/deploy/images/qemuarm/xen-image-minimal=
-qemuarm.tar.bz2 $OUTPUTDIR
> +                cp $BUILDDIR/tmp/deploy/images/qemuarm/xen-image-minimal=
-qemuarm.rootfs.tar.bz2 $OUTPUTDIR
>              fi
>          fi
>      ) || return 1
> @@ -196,7 +198,7 @@ function project_run() {
> =20
>          /usr/bin/expect <<EOF
>  set timeout 1000
> -spawn bash -c "runqemu serialstdio nographic slirp"
> +spawn bash -c "runqemu serialstdio nographic slirp ${IMAGE_FMT}"
> =20
>  expect_after {
>      -re "(.*)\r" {
> @@ -356,6 +358,13 @@ for f in ${TARGETLIST}; do
>          run_task project_create "${f}"
>      fi
>      if [ -f "${BUILDDIR}/${f}/conf/local.conf" ]; then
> +        # Set the right image target
> +        if [ "$f" =3D "qemux86-64" ]; then
> +            IMAGE_FMT=3D""
> +        else
> +            IMAGE_FMT=3D"ext4"
> +        fi
> +
>          if [ "${do_build}" =3D "y" ]; then
>              run_task project_build "${f}"
>          fi
> diff --git a/automation/build/yocto/yocto.inc b/automation/build/yocto/yo=
cto.inc
> index 2f3b1a5b2a..209df7dde9 100644
> --- a/automation/build/yocto/yocto.inc
> +++ b/automation/build/yocto/yocto.inc
> @@ -6,10 +6,10 @@
>  # YOCTOVERSION-TARGET for x86_64 hosts
>  # YOCTOVERSION-TARGET-arm64v8 for arm64 hosts
>  # For example you can build an arm64 container with the following comman=
d:
> -# make yocto/kirkstone-qemuarm64-arm64v8
> +# make yocto/scarthgap-qemuarm64-arm64v8
> =20
>  # Yocto versions we are currently using.
> -YOCTO_VERSION =3D kirkstone
> +YOCTO_VERSION =3D scarthgap
> =20
>  # Yocto BSPs we want to build for.
>  YOCTO_TARGETS =3D qemuarm64 qemuarm qemux86-64
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build=
=2Eyaml
> index 7ce88d38e7..32045cef0c 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -212,7 +212,7 @@
>    script:
>      - ./automation/build/yocto/build-yocto.sh -v --log-dir=3D./logs --xe=
n-dir=3D`pwd` ${YOCTO_BOARD} ${YOCTO_OUTPUT}
>    variables:
> -    YOCTO_VERSION: kirkstone
> +    YOCTO_VERSION: scarthgap
>      CONTAINER: yocto:${YOCTO_VERSION}-${YOCTO_BOARD}${YOCTO_HOST}
>    artifacts:
>      paths:
> diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scr=
ipts/qemu-smoke-dom0-arm32.sh
> index 31c05cc840..eaaea5a982 100755
> --- a/automation/scripts/qemu-smoke-dom0-arm32.sh
> +++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
> @@ -8,7 +8,7 @@ cd binaries
> =20
>  mkdir rootfs
>  cd rootfs
> -tar xvf ../xen-image-minimal-qemuarm.tar.bz2
> +tar xvf ../xen-image-minimal-qemuarm.rootfs.tar.bz2
>  mkdir -p ./root
>  echo "name=3D\"test\"
>  memory=3D400
> --=20
> 2.25.1
>=20

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

--/kuNONbh+hsUL5z8
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmao7r4ACgkQ24/THMrX
1yycYAf5ATKu2X7fLU/bblQOfrX6KcSzmQkcqQ5hJAjFpXnoXcMswAO5Xossb+uq
y2GJP3+bjNOTwkBrk6plkUy7da7jXhO4lAJ6vRfbgKmlhWO5xvD0ZIP/5TocyPzr
vh/mzY2+gFp49SgmLx93g2yWo4VU3YjR6XmQwpKi/eJ8WStOYrgk66FVvHyptKGI
eloZxm1gxUvL8lujr5EOvyMzPN28kvxRzRHftu//3+OKWOdwQ2HLjN9gvdZTOaB5
0XR07S7qGZnTzzwZM7xRj4szgnCA9N2egiz38qBLAACJWCkjPPLkJATyvVFhuUvc
S8GMW51XzjsCbF4vkjVOgQmkLmHOvw==
=q3Pf
-----END PGP SIGNATURE-----

--/kuNONbh+hsUL5z8--


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 14:02:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 14:02:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767831.1178538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYnQP-00083S-K2; Tue, 30 Jul 2024 14:02:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767831.1178538; Tue, 30 Jul 2024 14: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 1sYnQP-00083L-Gk; Tue, 30 Jul 2024 14:02:01 +0000
Received: by outflank-mailman (input) for mailman id 767831;
 Tue, 30 Jul 2024 14: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=3jiA=O6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYnQO-00083F-IF
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 14:02:00 +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 480b1f8c-4e7c-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 16:01:56 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5a10835487fso6952130a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 07:01:56 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5b145c8320esm4245430a12.17.2024.07.30.07.01.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 07: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: 480b1f8c-4e7c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722348116; x=1722952916; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IGB8eLC9bdP8jeFB5QfwBiVpfxxwhj0c4rqidGJwCZ0=;
        b=G+a1OPIvw7Iaol7+2w3ZEjWmJ40lQ/ET+xCaPNvlVq5aWn0KF1cqtWjzlA7wo+zYlG
         gCk6imfAsMV1U0m6UHmOE5JQibgfJN+eG8TMOFJBETVhyXVEDVdVHz5o2Mc/03ljTiaz
         ofLim3Zb8I+E7Ed6Xg7jQZ7/JyRVKgVBDOhNM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722348116; x=1722952916;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IGB8eLC9bdP8jeFB5QfwBiVpfxxwhj0c4rqidGJwCZ0=;
        b=F71SVJwE/wC9uUg9Icn7PA31ew/yilFUWOxAkC1jaUhNrWvjyQGafQ6qwSfijf9qdc
         qcadFcKsNVF3k0mIH1wR6jnCYrg6GESfJ9a787gsGTezlChlSjdTELBtO4S9BywVkSlE
         MKvi1o4EvM5649TGGy6gC4f6O+nT0mwinm9Okzya2j6FPgyhmOwKexkadIXcutWc1sj0
         18uxPD64W1N+W7VZVmZ/t/9HifMs3gwz+08Oc+SKO4ehoZdpSfc3QoAKmQWWCvHXUkzu
         2GvRp0LXZ+B/MUlzpLGuWVGpPHGoAfUH6VRoRPQ31Gq9ISnIRkdINto2PW/5nSSOa6JW
         DVTA==
X-Gm-Message-State: AOJu0YwmDWeSc4MlumI65VcyTy83U2R6rJ2cvAKEmMvgvEE3v1K7R8vK
	VYwbTvLmSReibrJnVlGvYrCNVkQNJae6clJ4UTJql8K5zcRWW/2+QN4iUbU8jRjO4lchmhpudMw
	1
X-Google-Smtp-Source: AGHT+IECMotJFoT1YK29u23e6XLy3R0uY80PqAMsBMB+oXNnwe8s5suUCnl9mm7ZwTZy0QTb0+XhTA==
X-Received: by 2002:a50:d5d4:0:b0:5a0:c332:3959 with SMTP id 4fb4d7f45d1cf-5b0206d2482mr7967981a12.14.1722348114161;
        Tue, 30 Jul 2024 07:01:54 -0700 (PDT)
Message-ID: <9be4e130-c202-459d-bd58-d589b72af1c2@citrix.com>
Date: Tue, 30 Jul 2024 15:01:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] automation: upgrade Yocto to scarthgap
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, cardoe@cardoe.com
References: <alpine.DEB.2.22.394.2407261639190.4857@ubuntu-linux-20-04-desktop>
 <ZqjuvjUtmNU7Ud8g@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZqjuvjUtmNU7Ud8g@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/07/2024 2:46 pm, Marek Marczykowski-Górecki wrote:
> On Fri, Jul 26, 2024 at 05:19:42PM -0700, Stefano Stabellini wrote:
>> Upgrade Yocto to a newer version. Use ext4 as image format for testing
>> with QEMU on ARM and ARM64 as the default is WIC and it is not available
>> for our xen-image-minimal target.
>>
>> Also update the tar.bz2 filename for the rootfs.
>>
>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>
>> ---
>>
>> all yocto tests pass:
>> https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1390081173

That test ran on gitlab-docker-pug, not qubes-ambrosia, so doesn't
confirm the fix to the xattr issue.

Seeing as I'm going to need to rebuild the container anyway, I'll see
about forcing this and double checking.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 14:07:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 14:07:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767838.1178548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYnVs-0000kN-6x; Tue, 30 Jul 2024 14:07:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767838.1178548; Tue, 30 Jul 2024 14:07: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 1sYnVs-0000kG-3b; Tue, 30 Jul 2024 14:07:40 +0000
Received: by outflank-mailman (input) for mailman id 767838;
 Tue, 30 Jul 2024 14: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=VcTV=O6=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1sYnVq-0000kA-A0
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 14:07:38 +0000
Received: from fhigh6-smtp.messagingengine.com
 (fhigh6-smtp.messagingengine.com [103.168.172.157])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1155433b-4e7d-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 16:07:35 +0200 (CEST)
Received: from compute7.internal (compute7.nyi.internal [10.202.2.48])
 by mailfhigh.nyi.internal (Postfix) with ESMTP id 2D0091140263;
 Tue, 30 Jul 2024 10:07:32 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute7.internal (MEProxy); Tue, 30 Jul 2024 10:07:32 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 30 Jul 2024 10:07: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: 1155433b-4e7d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1722348452;
	 x=1722434852; bh=uKHshXpn6NI2xQebeGvvJ2qkNlgLstN4wWpO+I1oe5Y=; b=
	CE1z8s1OVNoJEeHC8qEfdNfwyFjN+t34BmQhcwQUOD3XmI1hb8gaOSwHkfOu/9F5
	O+MfEmSA0xccTGcRiM9NdDrBVbWyM7bCX+M3n/O5a87x9KAp8PhMf8X1uDP8OX4C
	2zUB1ZBMzdrkHtTcpD3gO9LWmghGdz7Hidca+SEfdWHd+QKugzqDlXq759mfUyzx
	vXwh5wNJs/ThcDBFvrg932R1flOMCodRvvwxMzVJP3Qwoc80RB/ugMx6xos1qUZn
	0MIAaiYc8MJR/3tm4XTW/GTo9BeTvbxf5qh7q2kmh25A/Wr+17wcgBQvv0bxyGX/
	FvUzMYWpUY0NmbEGVvL6oQ==
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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1722348452; x=1722434852; bh=uKHshXpn6NI2xQebeGvvJ2qkNlgL
	stN4wWpO+I1oe5Y=; b=SyNw5hoTnpbJYmrvxCH0lufctfHBzBv2PgW1VHtulfTX
	0xOEv2Sh6Zy9iLdnZf4wWmhfk8LmN3gDmMC/mtdyo8ImaOCEZWOLepHKKHxNM3dD
	oqQZwc84eUnJUvoX58KLwI0gGnCB1HbUD5OdeEf7lkSNuqG2zbYbb+cPSuPsZDN3
	UD0xnkI5/jM89fHUB8sH9ByeZTm12gC2ADdgTXboCoJDE2VQsgiwFfVrgtJgVpbL
	zs7YOZM5EYpYsN5Q19mkoo0546Ax84IS/DojPjHpZ87Ph3hYD04uqfCBFpWC9VYT
	eARROWrlLNTGJ730OES938chgqdmzpjUP+qXK16WDQ==
X-ME-Sender: <xms:o_OoZj_ppMlTcaUROxrn08fz_cWWzEMym8G9ES9yhc75kH1Q9bPYxA>
    <xme:o_OoZvsF0PRh_mxudqBximuqUCAKoT9cy8LhoTNSKymZA1I7VtcsomW54wuVemcOo
    YydZ-Pol9uEJA>
X-ME-Received: <xmr:o_OoZhBmtkZuIOErBr2agpnmDgG_V12p2RfGW2oyoWAZ3b9uKkgDkjEWV44O4wS4kx5jKkIhmVKPAv8r8fitEQeqEEvXdLTNpw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrjeeggdejfecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
    fjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeevueej
    teegleelteduueevhfetgfffjeevtddvgfeiveehteehleegueelvdejveenucffohhmrg
    hinhepghhithhlrggsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghm
    pehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslh
    grsgdrtghomhdpnhgspghrtghpthhtoheptd
X-ME-Proxy: <xmx:o_OoZvdA_zb4nPsPabJ7sJ5rJeMK5JGN6lscsp_PT_T-Ys0MeCy6bA>
    <xmx:o_OoZoNXBBEdqvU7HlEULMvd8MzfNPGb01uDHwzSuYwQeBwJe_erHQ>
    <xmx:o_OoZhmRI-24yNqskyvXQfXfq5VOWv1IxWZTMc7vaWOVKjMHgymtGQ>
    <xmx:o_OoZivPKtAaBVuZlf_x_0aYsX7-1wLxKHL0vyORY4cirKfTAirG_Q>
    <xmx:pPOoZtqg-Q1O1lchTHv_hW8MMW5-4dzgD93Oa9IOjhY-339GXUdhbrhb>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 30 Jul 2024 16:07:27 +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@lists.xenproject.org, cardoe@cardoe.com
Subject: Re: [PATCH v2] automation: upgrade Yocto to scarthgap
Message-ID: <Zqjzn5eM0z0njNF2@mail-itl>
References: <alpine.DEB.2.22.394.2407261639190.4857@ubuntu-linux-20-04-desktop>
 <ZqjuvjUtmNU7Ud8g@mail-itl>
 <9be4e130-c202-459d-bd58-d589b72af1c2@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="iJ85oLtDO3yPPPYw"
Content-Disposition: inline
In-Reply-To: <9be4e130-c202-459d-bd58-d589b72af1c2@citrix.com>


--iJ85oLtDO3yPPPYw
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 30 Jul 2024 16:07:27 +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@lists.xenproject.org, cardoe@cardoe.com
Subject: Re: [PATCH v2] automation: upgrade Yocto to scarthgap

On Tue, Jul 30, 2024 at 03:01:52PM +0100, Andrew Cooper wrote:
> On 30/07/2024 2:46 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > On Fri, Jul 26, 2024 at 05:19:42PM -0700, Stefano Stabellini wrote:
> >> Upgrade Yocto to a newer version. Use ext4 as image format for testing
> >> with QEMU on ARM and ARM64 as the default is WIC and it is not availab=
le
> >> for our xen-image-minimal target.
> >>
> >> Also update the tar.bz2 filename for the rootfs.
> >>
> >> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> > Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>
> >
> >> ---
> >>
> >> all yocto tests pass:
> >> https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1390=
081173
>=20
> That test ran on gitlab-docker-pug, not qubes-ambrosia, so doesn't
> confirm the fix to the xattr issue.

There is one on ambrosia too:
https://gitlab.com/xen-project/people/sstabellini/xen/-/jobs/7423043016

> Seeing as I'm going to need to rebuild the container anyway, I'll see
> about forcing this and double checking.

But double-checking is a good idea anyway.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmao858ACgkQ24/THMrX
1ywOfwf9HQDr0RUjsWdj4LEIzd4NYO37W909+DWxhXxUgjZi7TOYOsLsGviQin4w
uX2F3galFDT3XOtTc7+0/jP6Jn+hsI+AlICa2DFnocitP2MF2VUSAZLh9dWNJCO8
gdFmWw3E0ss1Yg8WZdTbg8TQ4QhNP4w8kA/zV/qBviQDv1m2xxf2E0RGCKytUNot
bnej+Ehk3DQGx+wu/AUVfCwyPjX0i4cOCJDTr77Y37ZpXKXknmdfDSJjtM7KB/kW
Tu3kDXh1jLyJ7FOM24USU6KaQkp6PIlEN5AsWTXzQTPMtjBquijtayBHz7lFH491
QhLZ/0ki6lJJG/jC7xW80zHS9GH0Bw==
=oVTx
-----END PGP SIGNATURE-----

--iJ85oLtDO3yPPPYw--


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 14:23:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 14:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767848.1178557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYnkl-00044z-Ay; Tue, 30 Jul 2024 14:23:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767848.1178557; Tue, 30 Jul 2024 14: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 1sYnkl-00044s-89; Tue, 30 Jul 2024 14:23:03 +0000
Received: by outflank-mailman (input) for mailman id 767848;
 Tue, 30 Jul 2024 14:23: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYnkj-00044m-To
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 14:23:02 +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 38c4ffbf-4e7f-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 16:22:59 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a7a9cf7d3f3so548057266b.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 07:22: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
 a640c23a62f3a-a7acab23f21sm650995966b.37.2024.07.30.07.22.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 07:22: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: 38c4ffbf-4e7f-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722349379; x=1722954179; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7oemiqal2hU/msX9CgwkFk7D5dDNsBoFU2W9tsKJdmY=;
        b=ftooaS1mPOCI+vF4z7Bod9Ef3g5Z97fTv1xBo017SzOCYhEVvlpCTkIddEqAUUvnaH
         qCFXQipr7/dppU8T8aAVJAQXYVx9IOFfIU3QQ+ObvjwMAu0dp8xXjj8K6GDp/h9Vu/Nf
         3ZzFVck0559I6ZyxsxC2tQAG5AvyhtlnIo2Y6zV/U0GnEx81RVnjij4+2ZCSXKsI1QK3
         JiifyTvI7nRKamSWaPApNdPYnwIxugq/5fqCfffQWn2+vBwLQch91UnZQRN+RjCHcTIr
         fIJwa5NbkU+jcM8OhexZ2uMTZ/ITC382LKDr8IIyL3+yG8M1tHJ6rkhFSEEVOQv5y1TL
         ZtFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722349379; x=1722954179;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7oemiqal2hU/msX9CgwkFk7D5dDNsBoFU2W9tsKJdmY=;
        b=wIZGlkx1GvD90Zw/QqFnwEdbFIMxkrhnfJaqZ8XU8c9Lgk5QB/o6hGlPwLscSITSQD
         B8H0bE3gdmqsu6BfbQs5vbRcuypxw03H/hXLHjAiV4p/mQHu3p7ouqgrW2hhzV4s8dEQ
         ZblkpA2TzCAHa0wObhg8lDeIrkkVWws6yEJ0jd1FEr9/ZhlWs1gbc0TqlezFxeaa2cJI
         yoTPM0FIxa7oM1Kj8j4MLGhAAw40UymrWucPtPB36o35XxOGgjNqI12TJuLZUxFN2twN
         MWpCwa/SLnHhrSZjOXkCR1XPuOq/+vHuaGMA/ysTXe5I3GsR/nLd82c+9sQumnXhlPO8
         iSQQ==
X-Forwarded-Encrypted: i=1; AJvYcCXXyMeKExpYP6wptHcIirdNdGqFBQYS2whUVHCbH2NweupG6+8NvRnzcfOak9nnMYY/frYHhrXmtsgieD1E6Qj1MqT0pYPSGMtuovbDOIw=
X-Gm-Message-State: AOJu0YzxNYCfRUxXLrDPzsSkFjRQyf9/sDVqBQcTzr7/0RorCV92xKsg
	WyUMXPQhJXLjvPKjQf+pLfiZ6+8dOZCcVDn13hEQr8d6XnzRdmkTQ/b8ByvMIg==
X-Google-Smtp-Source: AGHT+IFCn8VjrE31dTTb3cyzMWsiINYx9sj7xybMzWC/iluICmteL15QFL2oqLUBBDcrGabkh5WWAQ==
X-Received: by 2002:a17:907:998a:b0:a7a:8cb9:7491 with SMTP id a640c23a62f3a-a7d4014a685mr637097266b.54.1722349378366;
        Tue, 30 Jul 2024 07:22:58 -0700 (PDT)
Message-ID: <c2496115-5c42-4cbb-8dde-686a97259609@suse.com>
Date: Tue, 30 Jul 2024 16:22:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 8/9] xen/riscv: page table handling
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <595c7b6736d6f718bafc7a677fb13881584ce4dc.1721834549.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: <595c7b6736d6f718bafc7a677fb13881584ce4dc.1721834549.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 17:31, Oleksii Kurochko wrote:
> Introduces an implementation of map_pages_to_xen() which requires multiple
> functions to work with page tables/entries:
> - xen_pt_update()
> - xen_pt_mapping_level()
> - xen_pt_update_entry()
> - xen_pt_next_level()
> - xen_pt_check_entry()

I question the need for xen_ prefixes here.

> During the mentioned above function it is necessary to create Xen tables
> or map/unmap them. For that it were introduced the following functions:

You start the description with "Introduces ..." (yet better would be
"Introduce ..."), just to switch back to past tense here again. You
want to get used to describing what a patch does in imperative form.
That'll make it easier to tell those parts from parts describing
present / past behavior. (A patch description does specifically not
describe what you did prior to submitting the patch; it describes
what the patch itself does.)

> - create_xen_table()
> - xen_map_table()
> - xen_unmap_table()
> 
> Also it was introduced various internal macros for convience started with
> _PAGE_* which almost duplicate the bits in PTE except _PAGE_BLOCK which
> actually doesn't present in PTE which indicates that page larger then 4k
> is needed. RISC-V doesn't have a specific bit in PTE and it detect if it
> is a superpage or not only by using pte.x and pte.r. From the RISC-V spec:
> ```
>   ...
>   4. Otherwise, the PTE is valid. If pte.r = 1 or pte.x = 1, go to step 5.
>      Otherwise, this PTE is a pointer to the next level of the page table.
>      ... .
>   5. A leaf PTE has been found.
>      ...
>   ...
> ```
> 
> Except that it was introduced flush_xen_tlb_range_va() for TLB flushing
> accross CPUs when PTE for requested mapping was properly updated.

On top of what I said above, I think here you mean "In addition ..." or
"Additionally ...".

> --- 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_PT
>  	select HAS_DEVICE_TREE
>  	select HAS_PMAP

Stray leftover?

> @@ -27,6 +29,19 @@ static inline void flush_xen_tlb_range_va_local(vaddr_t va,
>      }
>  }
>  
> +/*
> + * Flush a range of VA's hypervisor mappings from the TLB of all
> + * processors in the inner-shareable domain.
> + */
> +static inline void flush_xen_tlb_range_va(vaddr_t va,
> +                                          unsigned long size)
> +{
> +    if ( sbi_has_rfence() )
> +        sbi_remote_sfence_vma(NULL, va, size);
> +    else
> +        BUG_ON("IPI support is need for remote TLB flush");
> +}

static inline void flush_xen_tlb_range_va(vaddr_t va,
                                          size_t size)
{
    BUG_ON(!sbi_has_rfence());
    sbi_remote_sfence_vma(NULL, va, size);
}

? Plus once again I'm uncertain about the usefulness of the "xen" infix.

> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -42,6 +42,8 @@ static inline void *maddr_to_virt(paddr_t ma)
>  #define virt_to_mfn(va)     __virt_to_mfn(va)
>  #define mfn_to_virt(mfn)    __mfn_to_virt(mfn)
>  
> +#define pte_get_mfn(pte) maddr_to_mfn(pte_to_paddr(pte))

Along the lines of the naming remark elsewhere: mfn_from_pte()?
pte_to_paddr() is ambiguous, too: What paddr is it that the construct
obtains? The one matching the address of the PTE (which may be of
interest when accessing page tables), or the one encoded in the PTE?
Imo paddr_from_pte() or pte_get_paddr() would again better express
what is being done. You may want to take a look at x86's page.h.

> --- a/xen/arch/riscv/include/asm/page-bits.h
> +++ b/xen/arch/riscv/include/asm/page-bits.h
> @@ -3,6 +3,42 @@
>  #ifndef __RISCV_PAGE_BITS_H__
>  #define __RISCV_PAGE_BITS_H__
>  
> +/*
> + * PTE format:
> + * | XLEN-1  10 | 9             8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
> + *       PFN      reserved for SW   D   A   G   U   X   W   R   V
> + */
> +
> +#define _PAGE_PRESENT   BIT(0, UL)

The acronym being V, would _PAGE_VALID maybe be a better name? Just
like it's PTE_VALID? Speaking of which: Why do you need both PTE_*
and _PAGE_*? How will one determine which one to use where? Plus imo
page-bits.h is the wrong header to put these in. In fact I notice
abuse of this header has already proliferated: Both PPC and RISC-V
include this header explicitly, when it was introduced for just
xen/page-size.h to include directly (and the definitions to put there
are solely ones related to what xen/page-size.h needs / provides).
The underlying idea what to simplify header dependencies. With what
PPC and RISC-V do, that's being undermined.

> +#define _PAGE_READ      BIT(1, UL)    /* Readable */
> +#define _PAGE_WRITE     BIT(2, UL)    /* Writable */
> +#define _PAGE_EXEC      BIT(3, UL)    /* Executable */
> +#define _PAGE_USER      BIT(4, UL)    /* User */
> +#define _PAGE_GLOBAL    BIT(5, UL)    /* Global */
> +#define _PAGE_ACCESSED  BIT(6, UL)    /* Set by hardware on any access */
> +#define _PAGE_DIRTY     BIT(7, UL)    /* Set by hardware on any write */
> +#define _PAGE_SOFT      BIT(8, UL)    /* Reserved for software */

The diagram says that's two bits.

> +/*
> + * There is no such bits in PTE format for RISC-V.
> + *
> + * _PAGE_BLOCK was introduced to have ability to tell that superpage
> + * should be allocated.
> + */
> +#define _PAGE_BLOCK         BIT(9, UL)

Imo, like on x86, super-page mappings should be the default whenever possible.
Callers _not_ wanting such can request so - see x86'es MAP_SMALL_PAGES.

> +#define _PAGE_W_BIT     2
> +#define _PAGE_XN_BIT    3
> +#define _PAGE_RO_BIT    1
> +
> +/* TODO: move to somewhere generic part/header ? */
> +#define _PAGE_XN        (1U << _PAGE_XN_BIT)
> +#define _PAGE_RO        (1U << _PAGE_RO_BIT)
> +#define _PAGE_W         (1U << _PAGE_W_BIT)
> +#define PAGE_XN_MASK(x) (((x) >> _PAGE_XN_BIT) & 0x1U)
> +#define PAGE_RO_MASK(x) (((x) >> _PAGE_RO_BIT) & 0x1U)
> +#define PAGE_W_MASK(x)  (((x) >> _PAGE_W_BIT) & 0x1U)

What are all of these about? Why PAGE_XN when you have a positive X bit in the
PTEs? And why 0x1U when plain 1 would do? All the PAGE_*_MASK ones are also
badly named. Constructs of that name should extract the bit in its position
(i.e. not shifted to bit 0), or be the name of a constant to use to do so.

> --- a/xen/arch/riscv/include/asm/page.h
> +++ b/xen/arch/riscv/include/asm/page.h
> @@ -34,6 +34,7 @@
>  #define PTE_LEAF_DEFAULT            (PTE_VALID | PTE_READABLE | PTE_WRITABLE)
>  #define PTE_TABLE                   (PTE_VALID)
>  
> +#define PAGE_HYPERVISOR_RO          (PTE_VALID | PTE_READABLE)
>  #define PAGE_HYPERVISOR_RW          (PTE_VALID | PTE_READABLE | PTE_WRITABLE)

No PAGE_HYPERVISOR_RX?

> @@ -43,13 +44,68 @@
>  
>  #define pt_index(lvl, va) (pt_linear_offset((lvl), (va)) & VPN_MASK)
>  
> -/* Page Table entry */
> +#define FIRST_SIZE (XEN_PT_LEVEL_SIZE(2))
> +
> +#define TABLE_OFFSET(offs) (_AT(unsigned int, offs) & ((_AC(1, U) << PAGETABLE_ORDER) - 1))
> +
> +#if RV_STAGE1_MODE > SATP_MODE_SV48
> +#error "need to to update DECLARE_OFFSETS macros"
> +#else
> +
> +#define l0_table_offset(va) TABLE_OFFSET(pt_linear_offset(0, va))
> +#define l1_table_offset(va) TABLE_OFFSET(pt_linear_offset(1, va))
> +#define l2_table_offset(va) TABLE_OFFSET(pt_linear_offset(2, va))
> +#define l3_table_offset(va) TABLE_OFFSET(pt_linear_offset(3, va))
> +
> +/* Generate an array @var containing the offset for each level from @addr */
> +#define DECLARE_OFFSETS(var, addr)          \
> +    const unsigned int var[4] = {           \
> +        l0_table_offset(addr),              \
> +        l1_table_offset(addr),              \
> +        l2_table_offset(addr),              \
> +        l3_table_offset(addr)               \
> +    }

Why would this need to have 4 entries in SV39 mode?

> +#endif
> +
>  typedef struct {
> +    unsigned long v:1;
> +    unsigned long r:1;
> +    unsigned long w:1;
> +    unsigned long x:1;
> +    unsigned long u:1;
> +    unsigned long g:1;
> +    unsigned long a:1;
> +    unsigned long d:1;

bool for all of these?

> +    unsigned long rsw:2;
> +#if RV_STAGE1_MODE == SATP_MODE_SV39
> +    unsigned long ppn0:9;
> +    unsigned long ppn1:9;
> +    unsigned long ppn2:26;
> +    unsigned long rsw2:7;

"rsw" above appear to mean "reserved for software use". What does "rsw" here
mean? Should this field be "rsv"?

> +    unsigned long pbmt:2;
> +    unsigned long n:1;
> +#elif RV_STAGE1_MODE == SATP_MODE_SV48
> +    unsigned long ppn0:9;
> +    unsigned long ppn1:9;
> +    unsigned long ppn2:9;
> +    unsigned long ppn3:17;
> +    unsigned long rsw2:7;
> +    unsigned long pbmt:2;
> +    unsigned long n:1;
> +#else
> +#error "Add proper bits for SATP_MODE"
> +#endif
> +} pt_t;

I can't spot a use anywhere of e.g. ppn0. Would be nice to understand in
what contexts these bitfields are going to be used. I notice you specifically
don't use them in e.g. pte_is_table().

> +/* Page Table entry */
> +typedef union {
>  #ifdef CONFIG_RISCV_64
>      uint64_t pte;
>  #else
>      uint32_t pte;
>  #endif
> +pt_t bits;
>  } pte_t;

Struct field want indenting.

> @@ -70,6 +126,21 @@ static inline bool pte_is_valid(pte_t p)
>      return p.pte & PTE_VALID;
>  }
>  
> +inline bool pte_is_table(const pte_t p, unsigned int level)
> +{
> +    (void) level;
> +
> +    return (((p.pte) & (PTE_VALID

No need to parenthesize p.pte.

> +                       | PTE_READABLE
> +                       | PTE_WRITABLE
> +                       | PTE_EXECUTABLE)) == PTE_VALID);

Indentation of these lines looks to be off by 1.

> +}
> +
> +static inline bool pte_is_mapping(const pte_t pte, unsigned int level)
> +{
> +    return !pte_is_table(pte, level);
> +}

Don't you mean V=1 and (R=1 or X=1) here?

> --- /dev/null
> +++ b/xen/arch/riscv/pt.c
> @@ -0,0 +1,410 @@
> +#include <xen/bug.h>
> +#include <xen/domain_page.h>
> +#include <xen/errno.h>
> +#include <xen/mm.h>
> +#include <xen/mm-frame.h>
> +#include <xen/pmap.h>
> +#include <xen/spinlock.h>
> +
> +#include <asm/flushtlb.h>
> +#include <asm/page.h>
> +
> +static inline const mfn_t get_root_page(void)
> +{
> +    unsigned long root_maddr = csr_read(CSR_SATP) << PAGE_SHIFT;

You want to isolate the PPN part of the register before shifting.

> +    return maddr_to_mfn(root_maddr);
> +}
> +
> +static inline void set_pte_permissions(pte_t *pte, unsigned int flags)
> +{
> +    pte->bits.r = PAGE_RO_MASK(flags);
> +    pte->bits.x = ~PAGE_XN_MASK(flags);
> +    pte->bits.w = PAGE_W_MASK(flags);
> +
> +    pte->pte |= PTE_ACCESSED | PTE_DIRTY;
> +}

As indicated elsewhere, imo objects of type pte_t should not be floating
around in the system without having permissions set on them. The helper
creating a pte_t should take both MFN and (permission) flags.

Further, with "flags" suitably arranged, all you need to do is to OR them
into the shifted PPN; there's no need for a whapping 4 assignments, even
if maybe the compiler can fold some of this.

> +/* Sanity check of the entry */
> +static bool xen_pt_check_entry(pte_t entry, mfn_t mfn, unsigned int level,
> +                               unsigned int flags)

The comment wants extending to indicate what the parameters mean wrt what
is going to be checked. For example, ...

> +{
> +    /* Sanity check when modifying an entry. */
> +    if ( mfn_eq(mfn, INVALID_MFN) )

... it's unclear to me why incoming INVALID_MFN would indicate modification
of an entry, whereas further down _PAGE_PRESENT supposedly indicates
insertion.

> +    {
> +        /* We don't allow modifying an invalid entry. */
> +        if ( !pte_is_valid(entry) )
> +        {
> +            printk("Modifying invalid entry is not allowed.\n");
> +            return false;
> +        }
> +
> +        /* We don't allow modifying a table entry */
> +        if ( !pte_is_mapping(entry, level) )

With what the comment say, why not pte_is_table()?

> +        {
> +            printk("Modifying a table entry is not allowed.\n");
> +            return false;
> +        }
> +    }
> +    /* Sanity check when inserting a mapping */
> +    else if ( flags & _PAGE_PRESENT )
> +    {
> +        /* We should be here with a valid MFN. */
> +        ASSERT(!mfn_eq(mfn, INVALID_MFN));
> +
> +        /*
> +         * We don't allow replacing any valid entry.
> +         *
> +         * Note that the function xen_pt_update() relies on this
> +         * assumption and will skip the TLB flush. The function will need
> +         * to be updated if the check is relaxed.
> +         */
> +        if ( pte_is_valid(entry) )
> +        {
> +            if ( pte_is_mapping(entry, level) )
> +                printk("Changing MFN for a valid entry is not allowed (%#"PRI_mfn" -> %#"PRI_mfn").\n",
> +                          mfn_x(pte_get_mfn(entry)), mfn_x(mfn));

Nit: Indentation. (I'm once again worried by all of these printk()s anyway.)

> +#define XEN_TABLE_MAP_FAILED 0
> +#define XEN_TABLE_SUPER_PAGE 1
> +#define XEN_TABLE_NORMAL_PAGE 2
> +
> +/*
> + * Take the currently mapped table, find the corresponding entry,
> + * and map the next table, if available.
> + *
> + * The read_only parameters indicates whether intermediate tables should
> + * be allocated when not present.

"read_only" would have a different meaning to me. Maybe use inverted sense
with a name like "alloc"?

> + * Return values:
> + *  XEN_TABLE_MAP_FAILED: Either read_only was set and the entry
> + *  was empty, or allocating a new page failed.
> + *  XEN_TABLE_NORMAL_PAGE: next level mapped normally
> + *  XEN_TABLE_SUPER_PAGE: The next entry points to a superpage.
> + */
> +static int xen_pt_next_level(bool read_only, unsigned int level,
> +                             pte_t **table, unsigned int offset)
> +{
> +    pte_t *entry;
> +    int ret;
> +    mfn_t mfn;
> +
> +    entry = *table + offset;
> +
> +    if ( !pte_is_valid(*entry) )
> +    {
> +        if ( read_only )
> +            return XEN_TABLE_MAP_FAILED;
> +
> +        ret = create_xen_table(entry);
> +        if ( ret )
> +            return XEN_TABLE_MAP_FAILED;
> +    }
> +
> +    if ( pte_is_mapping(*entry, level) )
> +    {
> +        return XEN_TABLE_SUPER_PAGE;
> +    }

Please be consistent with braces around single statements.

> +    mfn = pte_get_mfn(*entry);
> +
> +    xen_unmap_table(*table);
> +    *table = xen_map_table(mfn);
> +
> +    return XEN_TABLE_NORMAL_PAGE;
> +}

Normal page? Not normal table?

> +/* Update an entry at the level @target. */
> +static int xen_pt_update_entry(mfn_t root, unsigned long virt,
> +                               mfn_t mfn, unsigned int arch_target,
> +                               unsigned int flags)
> +{
> +    int rc;
> +    unsigned int level = HYP_PT_ROOT_LEVEL;
> +    unsigned int arch_level = level;

Why two level variables?

> +    unsigned int target = arch_target;
> +    pte_t *table;
> +    /*
> +     * The intermediate page tables are read-only when the MFN is not valid
> +     * This means we either modify permissions or remove an entry.
> +     */
> +    bool read_only = mfn_eq(mfn, INVALID_MFN);

I'm afraid I can't make a connection between the incoming MFN being
INVALID_MFN and intermediate tables being intended to remain unaltered.

> +    pte_t pte, *entry;
> +
> +    /* convenience aliases */
> +    DECLARE_OFFSETS(offsets, (paddr_t)virt);

Unless for a mode where translation is disabled, I don't think virtual
addresses should ever be converted to paddr_t.

> +    table = xen_map_table(root);
> +    for ( ; level > target; level--, arch_level = level )
> +    {
> +        rc = xen_pt_next_level(read_only, arch_level, &table, offsets[arch_level]);
> +        if ( rc == XEN_TABLE_MAP_FAILED )
> +        {
> +            /*
> +             * We are here because xen_pt_next_level has failed to map
> +             * the intermediate page table (e.g the table does not exist
> +             * and the pt is read-only). It is a valid case when
> +             * removing a mapping as it may not exist in the page table.
> +             * In this case, just ignore it.
> +             */
> +            if ( flags & _PAGE_PRESENT )
> +            {
> +                printk("%s: Unable to map level %u\n", __func__, arch_level);
> +                rc = -ENOENT;
> +                goto out;
> +            }
> +            else
> +            {
> +                rc = 0;
> +                goto out;
> +            }

Please pull out such identical "goto out".

> +        }
> +        else if ( rc != XEN_TABLE_NORMAL_PAGE ) {

Nit: Brace placement. Initially I was wondering how this would have
compiled for you, until I spotted the opening brace ...

> +            break;
> +        }

... matching this closing one (both of which are really unnecessary).

> +    }
> +
> +    if ( arch_level != arch_target )
> +    {
> +        printk("%s: Shattering superpage is not supported\n", __func__);
> +        rc = -EOPNOTSUPP;
> +        goto out;
> +    }
> +
> +    entry = table + offsets[arch_level];
> +
> +    rc = -EINVAL;
> +    if ( !xen_pt_check_entry(*entry, mfn, arch_level, flags) )
> +        goto out;
> +
> +    /* We are removing the page */
> +    if ( !(flags & _PAGE_PRESENT) )
> +        memset(&pte, 0x00, sizeof(pte));
> +    else
> +    {
> +        /* We are inserting a mapping => Create new pte. */
> +        if ( !mfn_eq(mfn, INVALID_MFN) )
> +        {
> +            pte = mfn_to_xen_entry(mfn, PTE_VALID);
> +        }
> +        else /* We are updating the permission => Copy the current pte. */
> +            pte = *entry;
> +
> +        set_pte_permissions(&pte, flags);
> +    }
> +
> +    write_pte(entry, pte);
> +
> +    rc = 0;
> +
> +out:

Nit: Style (label needs indenting).

> +    xen_unmap_table(table);
> +
> +    return rc;
> +}
> +
> +static DEFINE_SPINLOCK(xen_pt_lock);
> +
> +/* Return the level where mapping should be done */
> +static int xen_pt_mapping_level(unsigned long vfn, mfn_t mfn, unsigned long nr,
> +                                unsigned int flags)
> +{
> +    unsigned int level = 0;
> +    unsigned long mask;
> +    int i;

unsigned int?

> +    /*
> +     * Don't take into account the MFN when removing mapping (i.e
> +     * MFN_INVALID) to calculate the correct target order.
> +     *
> +     * `vfn` and `mfn` must be both superpage aligned.
> +     * They are or-ed together and then checked against the size of
> +     * each level.
> +     *
> +     * `left` is not included and checked separately to allow
> +     * superpage mapping even if it is not properly aligned (the
> +     * user may have asked to map 2MB + 4k).
> +     */
> +    mask = !mfn_eq(mfn, INVALID_MFN) ? mfn_x(mfn) : 0;
> +    mask |= vfn;
> +
> +    /*
> +     * Always use level 0 ( 4k mapping ) mapping unless the caller request
> +     * block mapping.
> +     */
> +    if ( likely(!(flags & _PAGE_BLOCK)) )
> +        return level;

This is independent of the calculation of "mask" and hence can move up.

> +    for ( i = HYP_PT_ROOT_LEVEL; i > 0; i-- )
> +    {
> +        if ( !(mask & (BIT(XEN_PT_LEVEL_ORDER(i), UL) - 1)) &&
> +            (nr >= BIT(XEN_PT_LEVEL_ORDER(i), UL)) )

Nit: Indentation again.

> +        {
> +            level = i;
> +            break;
> +        }
> +    }
> +
> +    return level;
> +}
> +
> +static int xen_pt_update(unsigned long virt,
> +                         mfn_t mfn,
> +                         /* const on purpose as it is used for TLB flush */
> +                         const unsigned long nr_mfns,

I'm afraid I don't see what the comment is actually trying to tell me.
If this is about you wanting to make sure the function arguments aren't
altered prematurely, then why would the same not apply to virt, mfn,
and flags (all of which matter at the time the TLB flush is initiated)?

> +                         unsigned int flags)
> +{
> +    int rc = 0;
> +    unsigned long vfn = virt >> PAGE_SHIFT;
> +    unsigned long left = nr_mfns;
> +
> +    const mfn_t root = get_root_page();
> +
> +    /*
> +     * It is bad idea to have mapping both writeable and
> +     * executable.
> +     * When modifying/creating mapping (i.e _PAGE_PRESENT is set),
> +     * prevent any update if this happen.
> +     */
> +    if ( (flags & _PAGE_PRESENT) && !PAGE_RO_MASK(flags) &&
> +         !PAGE_XN_MASK(flags) )
> +    {
> +        printk("Mappings should not be both Writeable and Executable.\n");
> +        return -EINVAL;
> +    }
> +
> +    if ( !IS_ALIGNED(virt, PAGE_SIZE) )
> +    {
> +        printk("The virtual address is not aligned to the page-size.\n");
> +        return -EINVAL;
> +    }
> +
> +    spin_lock(&xen_pt_lock);
> +
> +    while ( left )
> +    {
> +        unsigned int order, level;
> +
> +        level = xen_pt_mapping_level(vfn, mfn, left, flags);
> +        order = XEN_PT_LEVEL_ORDER(level);
> +
> +        ASSERT(left >= BIT(order, UL));
> +
> +        rc = xen_pt_update_entry(root, vfn << PAGE_SHIFT, mfn, level,
> +                                    flags);
> +        if ( rc )
> +            break;
> +
> +        vfn += 1U << order;
> +        if ( !mfn_eq(mfn, INVALID_MFN) )
> +            mfn = mfn_add(mfn, 1U << order);
> +
> +        left -= (1U << order);
> +
> +        if ( rc )
> +            break;
> +    }
> +
> +    /*
> +     * The TLBs flush can be safely skipped when a mapping is inserted
> +     * as we don't allow mapping replacement (see xen_pt_check_entry()).
> +     *
> +     * For all the other cases, the TLBs will be flushed unconditionally
> +     * even if the mapping has failed. This is because we may have
> +     * partially modified the PT. This will prevent any unexpected
> +     * behavior afterwards.
> +     */
> +    if ( !((flags & _PAGE_PRESENT) && !mfn_eq(mfn, INVALID_MFN)) )
> +        flush_xen_tlb_range_va(virt, PAGE_SIZE * nr_mfns);

See my comments elsewhere towards TLB behavior on RISC-V. The indicated
skipping of a flush is safe only if not-present entries cannot be put
in the TLB.

> +    spin_unlock(&xen_pt_lock);
> +
> +    return rc;
> +}
> +
> +int map_pages_to_xen(unsigned long virt,
> +                     mfn_t mfn,
> +                     unsigned long nr_mfns,
> +                     unsigned int flags)
> +{
> +    return xen_pt_update(virt, mfn, nr_mfns, flags);
> +}

Why this wrapping of two functions taking identical arguments?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 14:32:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 14:32:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767865.1178571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYntp-0006Kc-BD; Tue, 30 Jul 2024 14:32:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767865.1178571; Tue, 30 Jul 2024 14:32:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYntp-0006KV-8i; Tue, 30 Jul 2024 14:32:25 +0000
Received: by outflank-mailman (input) for mailman id 767865;
 Tue, 30 Jul 2024 14:32: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYnto-0006K5-EI
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 14:32: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 88ad5064-4e80-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 16:32:22 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5a79df5af51so11904352a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 07:32: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-5ac63b59ca1sm7384226a12.52.2024.07.30.07.32.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 07:32: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: 88ad5064-4e80-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722349942; x=1722954742; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QycotWozVnk298RKfDDGMGGnE2GxMZJvY9TCAU+JQBU=;
        b=UgWB8esbb2EroBgemedm+TLXQ5p4faS7dpyCVVhyOoXwIHEcGudqr5AVZrwJo00seV
         Zh7gveN0bV7/eCBmY3hNpzWSjk3cajUM6bSSMZr7GmZfLVjufsxsxnItrvBfVuYiIgoy
         iaAHGDvNrTjB9PPym/dxoje1zfyDdvLqTemp5NDJlCejOAPoWaUH6BWznFsF0koF/Lew
         9aPpbHTDPCqbNCX9IxcVZK4CXL375ZEXT3gM41AZdIzlSEH4OQDqGnR+scmfymKNDkMw
         MzrA+HI6n3kWnRQZUza7p/u8moBkfWNVwwxcMjejHf+JedT9Q/d4C1JRMD+nxw9sma2Q
         TsNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722349942; x=1722954742;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QycotWozVnk298RKfDDGMGGnE2GxMZJvY9TCAU+JQBU=;
        b=EgDy0IsTpQj8S2YX8WmfEKOQOnFZdIuATwcEYCXDQLMYDz4VL4H0mb5wp6zp4+/AE9
         L8XHVDDn7j8SzWeWMUCFDdjcTD/5zDPHnwzb+KbKvoigoZGdNTFVf3BsBeWysmnEdoHs
         noGPaY+iPzvbO8eEvOvWt+wz2gn4yXxcndCHVS7XNeKNxV+EHyMXfEo308Bhtl+ysf0P
         TiAg8B4SGKFP5ceM9XzW0QoUZekLSSX9jmqtd7yOfv5AfccEjpE2WMY7oGH5+iWbilqk
         SocBHcXtMKRJSCT3mxVUY9Mq/DmUsVs6Fia2oyq9Fu1BAIAd0o7rp/usxUccVxR/e97m
         bGKg==
X-Forwarded-Encrypted: i=1; AJvYcCXM7VICkwioGuoNIcQeABZgjdh887i+Hv3KQk+5HXOc1EL/VruzE+2rWQUpMZJS4iIhyRUT+BsdZIjrzx6iMhI3yTXHsUrmQib6v5Pfl3Q=
X-Gm-Message-State: AOJu0Yy/iyj+vM4PdB7BP1nKVQQTyEETcJpAzXt40rJlFEpZ0yfSzGkh
	7a5ACeKKkVl+UK0TiRx7mF/1ud1+nabpq3xXZrk6Bc+DaZjvrBWuM/6APHErzw==
X-Google-Smtp-Source: AGHT+IGzTmiGYdQsZirL4EDm6drEzdMI6e4DqHJz+XvVU5FWNPlxG0ZtrgyOeei653i9nj2kc+OYfA==
X-Received: by 2002:a50:cd52:0:b0:57d:40e3:2a71 with SMTP id 4fb4d7f45d1cf-5b46ba87630mr2503611a12.6.1722349942078;
        Tue, 30 Jul 2024 07:32:22 -0700 (PDT)
Message-ID: <61d4dccc-f349-4c40-8a7f-e8d1c0437918@suse.com>
Date: Tue, 30 Jul 2024 16:32:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] SUPPORT.md: split XSM from Flask
To: Daniel Smith <dpsmith@apertussolutions.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <d7289554-258b-4f75-858b-64005e9ae9be@suse.com>
 <ef4b21d8-a5a9-4d24-bf18-908b5ee067db@citrix.com>
 <220ebc7e-36eb-40af-9fa0-133bb458dfd5@suse.com>
 <19103be5c1e.1009d7316565959.1812404802621701586@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: <19103be5c1e.1009d7316565959.1812404802621701586@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.07.2024 15:04, Daniel Smith wrote:
> ---- On Tue, 30 Jul 2024 08:58:03 -0400 Jan Beulich  wrote ---
> 
>  > On 30.07.2024 14:35, Andrew Cooper wrote: 
>  > > On 30/07/2024 11:57 am, Jan Beulich wrote: 
>  > >> XSM is a generic framework, which in particular is also used by SILO. 
>  > >> With this it can't really be experimental: Arm enables SILO by default. 
>  > > 
>  > > It's stronger than this. 
>  > > 
>  > > XSA-295 makes SILO the only security supported configuration for ARM. 
>  >  
>  > Okay, switched to "Arm mandates SILO for having a security supported 
>  > configuration." 
>  >  
>  > >> --- a/SUPPORT.md 
>  > >> +++ b/SUPPORT.md 
>  > >> @@ -768,13 +768,20 @@ Compile time disabled for ARM by default 
>  > >> 
>  > >>      Status, x86: Supported, not security supported 
>  > >> 
>  > >> -### XSM & FLASK 
>  > >> +### XSM 
>  > >> + 
>  > >> +    Status: Supported 
>  > >> + 
>  > >> +See below for use with FLASK and SILO.  The dummy implementation is covered here 
>  > >> +as well. 
>  > > 
>  > > This feels weird, although I can't suggest a better option. 
>  > > 
>  > > XSM isn't optional; it can't be compiled out, 
>  >  
>  > How can it not be? There's an "XSM" Kconfig control. 
>  >  
>  > > nor can the dummy policy, 
>  >  
>  > In a way. Yet how the dummy policy is instantiated is quite different 
>  > between XSM=y and XSM=n. 
> 
> I have pointed this out a few times, the difference between XSM=y vs XSM=n determines how the dummy policy is embedded into the hypervisor. XSM=n, causes the dummy policy hooks to be included directly for the xsm_* hooks. When XSM=y, then the callback wrapper functions are used for the xsm_* hooks with dummy policy set for the callbacks.

I wonder what you're trying to tell me. According to my reading that's what
I said, just in far fewer words.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 14:35:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 14:35:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767886.1178586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYnxD-0006yH-TH; Tue, 30 Jul 2024 14:35:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767886.1178586; Tue, 30 Jul 2024 14: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 1sYnxD-0006yA-Q9; Tue, 30 Jul 2024 14:35:55 +0000
Received: by outflank-mailman (input) for mailman id 767886;
 Tue, 30 Jul 2024 14:35:54 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYnxC-0006y0-QU; Tue, 30 Jul 2024 14:35:54 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYnxC-0006al-LD; Tue, 30 Jul 2024 14:35:54 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYnxC-0007Bv-57; Tue, 30 Jul 2024 14:35:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYnxC-0000i8-4X; Tue, 30 Jul 2024 14:35: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=2+gM/6f0MDNWoAhFrewR7nF5hOblejW6XVzt5OYZRx8=; b=fP3RjeyuNuaaiFPFyIAj5riizL
	mbrQl8X3+9zvMOC23xS/85XqMIRYmdGBN+U3FjgpGaqe+7pTK5NDb9Xo5mRj/6VPUn5JUe7zd5SVk
	yh0HawtfimTtb8Niv/Re4DTt7N0wIKOTpf7whIM25u+Ekump7QWAdB6a1+nTVB+Sn/bo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187054-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 187054: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=303d3ff85c90ee4af4bad4e3b1d4932fa2634d64
X-Osstest-Versions-That:
    xen=8b5016e28737f140926619b14b8ca291dc4c5e62
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 14:35:54 +0000

flight 187054 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187054/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  303d3ff85c90ee4af4bad4e3b1d4932fa2634d64
baseline version:
 xen                  8b5016e28737f140926619b14b8ca291dc4c5e62

Last test of basis   187043  2024-07-29 16:02:08 Z    0 days
Testing same since   187054  2024-07-30 10:02:18 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alejandro Vallejo <alejandro.vallejo@cloud.com>
  Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Huang Rui <ray.huang@amd.com>
  Jan Beulich <jbeulich@suse.com>
  Jiqian Chen <Jiqian.Chen@amd.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Ross Lagerwall <ross.lagerwall@citrix.com>
  Simone Ballarin <simone.ballarin@bugseng.com>
  Stefano Stabellini <sstabellini@kernel.org>
  Stewart Hildebrand <stewart.hildebrand@amd.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   8b5016e287..303d3ff85c  303d3ff85c90ee4af4bad4e3b1d4932fa2634d64 -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 14:36:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 14:36:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767890.1178596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYnxN-0007FY-3z; Tue, 30 Jul 2024 14:36:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767890.1178596; Tue, 30 Jul 2024 14:36:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYnxN-0007FQ-18; Tue, 30 Jul 2024 14:36:05 +0000
Received: by outflank-mailman (input) for mailman id 767890;
 Tue, 30 Jul 2024 14:36: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=fTg3=O6=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1sYnxM-0006se-0x
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 14:36:04 +0000
Received: from sender3-op-o17.zoho.com (sender3-op-o17.zoho.com
 [136.143.184.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ae3800f-4e81-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 16:36:02 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1722350157300640.2217030234874;
 Tue, 30 Jul 2024 07:35:57 -0700 (PDT)
Received: by mail-yw1-f172.google.com with SMTP id
 00721157ae682-64b417e1511so34461977b3.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 07:35: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: 0ae3800f-4e81-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; t=1722350159; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=hfCuvxWjoiiZ59yTIS/+pCEnZVhZFIjM8aPkjTWr1uW8sldNF7KLBAHZDlMeOXnHfmLCZuGoQDwocAr+YEUTZHejpwVUPxbWSKydMk8EVAZftB7/9MWTAcz/3x7mK5KLdN01B5o3aktZE9W4d8SkMSxiDH1vvBICV1FWqAXBf8E=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1722350159; 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=D1ebpLyx8gR86eeQvtJ6wU+dy9ju+XdkIf9IVMlzmQo=; 
	b=IWQTTMtKgJiM4J0eiFhshBJLWZe0rQNAeiMKhosaib/P8l4ExCJQi9xUWyY7SoJDXUEoP6liB3DxjLCUFqemPS3T3FILMChF9gV5I76nkJewYbfk6lEZ/rz3cRivaXM3jKt3V3vJfMwBDeloZwDf8WtFHllzxpbmDilY7z7gQt4=
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=1722350159;
	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=D1ebpLyx8gR86eeQvtJ6wU+dy9ju+XdkIf9IVMlzmQo=;
	b=SSOCsHId9pGL9VADvmBIofwfaPf+ej8y2A72njtlmmMDw9Ij/CHwxZq37KroEccu
	Pnuyi9IhHZPudERwjZ53N3UpdXnWWn5ha4G92J9Jdy2PejmFviiSN9WcJYjGda/expN
	xVe5j+8VhD2nXIMDyr/au6hAdbY3xbdj4w5U9uwc=
X-Gm-Message-State: AOJu0YwBSH/yCRTB+dg0fKqsCjTnFZ0GilmC2JaXINYh13v65177//1D
	7SrHI6Woo+gazohbKE0xYdQtFAdR8hV83z9xXHbKglYFZ3Fi8QV3XWu0z4l0ITFJ//1aSMMSXeG
	ADhxY9dbqnD/qASQQPS8qjr8HL2I=
X-Google-Smtp-Source: AGHT+IHIDQK94uXMQIslV+V0IpD1u6rhrvHxBU2KJjq7fSO/uzmi6beaomz9Nz2PlokD6uPkIgAA5EcTiCicGUDllNE=
X-Received: by 2002:a05:6902:2807:b0:e0b:28ce:6156 with SMTP id
 3f1490d57ef6-e0b5466b3bbmr11505415276.55.1722350156536; Tue, 30 Jul 2024
 07:35:56 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com> <b0292af6629ad483dd0a437960585cf5aa3a03cd.1722333634.git.Sergiy_Kibrik@epam.com>
In-Reply-To: <b0292af6629ad483dd0a437960585cf5aa3a03cd.1722333634.git.Sergiy_Kibrik@epam.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Tue, 30 Jul 2024 10:35:19 -0400
X-Gmail-Original-Message-ID: <CABfawhn_qiPGe75a1nKJYop45zN3uMdN_u7ok8wmwaRFSCGH4Q@mail.gmail.com>
Message-ID: <CABfawhn_qiPGe75a1nKJYop45zN3uMdN_u7ok8wmwaRFSCGH4Q@mail.gmail.com>
Subject: Re: [XEN PATCH v5 02/13] x86/monitor: guard altp2m usage
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: xen-devel@lists.xenproject.org, Alexandru Isaila <aisaila@bitdefender.com>, 
	Petre Pircalabu <ppircalabu@bitdefender.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Jan Beulich <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Jul 30, 2024 at 6:18=E2=80=AFAM Sergiy Kibrik <Sergiy_Kibrik@epam.c=
om> wrote:
>
> Explicitly check whether altp2m is on for domain when getting altp2m inde=
x.
> If explicit call to altp2m_active() always returns false, DCE will remove
> call to altp2m_vcpu_idx().
>
> p2m_get_mem_access() expects 0 as altp2m_idx parameter when altp2m not ac=
tive
> or not supported, so 0 is a fallback value then.
>
> The puspose of that is later to be able to disable altp2m support and

"purpose" misspelled here

> exclude its code from the build completely, when not supported by target
> platform (as of now it's supported for VT-d only).

Probably wanted to say "VT-x only" here

>
> Also all other calls to altp2m_vcpu_idx() are guarded by altp2m_active(),=
 so
> this change puts usage of this routine in line with the rest of code.
>
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>

With the commit message fixed (probably could be done when applied):
Acked-by: Tamas K Lengyel <tamas@tklengyel.com>


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 15:00:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 15:00:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767908.1178605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYoKe-0004X1-0F; Tue, 30 Jul 2024 15:00:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767908.1178605; Tue, 30 Jul 2024 15:00:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYoKd-0004Wu-U0; Tue, 30 Jul 2024 15:00:07 +0000
Received: by outflank-mailman (input) for mailman id 767908;
 Tue, 30 Jul 2024 15:00: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=hr/k=O6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sYoKc-0003mk-7q
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 15:00:06 +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 671a3e06-4e84-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 17:00:04 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a7ac469e4c4so917801666b.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 08:00: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
 a640c23a62f3a-a7acad9101dsm659011766b.176.2024.07.30.08.00.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 08:00: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: 671a3e06-4e84-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722351604; x=1722956404; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4zTznF0DGycIcUBkxkOh13hpTTRPBbN/qrUzfNOmm8A=;
        b=NpiVIK1PorhXG4HREbwsQgSGMMZA/iO2XmmKpW1i0EthkxRPJaFdZTFBv9K1UJr9Ul
         N9Ec/74yVfvW+lUmdmM+5CT1EPB8IZXPr1l+IzUeSeORnBQ0uGwibRToEn58jCjnnBXU
         F+upbNvEUqSYHg2KJf3dRE/XsvH3JaR/aNGNruUE2zjwdv9ppmadsJKNlmMBpHyc181b
         v9fOkCXmyfCL/ssvDCoZgsAv7cNMRnopr2c7qISaiHy8Mp+teuafZnm1iy0SZFagRP/A
         SVvlwmNqLeiFpcHktH+8CAOJY9lpQv4MKH4YQXXn4k+x81E72ILwtlQYluzODoI+MK1F
         IcKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722351604; x=1722956404;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4zTznF0DGycIcUBkxkOh13hpTTRPBbN/qrUzfNOmm8A=;
        b=P7arilksX6e3NSNeFchPXBg+eobhCH4+4HalOGr+h4afe29U+YsM1Os4L5UujVRiEy
         65m1HzMWiCW+J2o+qbqxKfpXmqss7KVrxRXAha2WU3l83BGvbSQJdAI8CcftCxZLTb7N
         C13xttlWOuS/EYWZsni7uxL45tDI49+8uFX8OlGUBS2hfSX4rSRe9iG1BWVlPhRRUvrG
         pOl+dPREfFCMwcQNYG/T/oi/pun5xMhr5jodQt/ugkGHrQr1MGaFg7bf73vN5yQa4N2O
         +ArNTYt3g6L6QUJaFTbgXtm2zDOCroQ3Tvpc6BCQIM2OZNTStyI6kRCRdSSA1WybvccU
         7FrQ==
X-Forwarded-Encrypted: i=1; AJvYcCXPcvUw06aRjCZE0yKVZGfXsXfvROSDqbcgr4xL0jykccONEnYn2E4ejbQrIgvc02Uzj3eft8UbAQK28FW++VgPimhkZcpVFq7f+dAvJ4g=
X-Gm-Message-State: AOJu0Yz2Vv/mmbn5Q/uJVWueZyOCD7+OOpu2ZkZbIetWsGaEdi75JiRB
	Mv/COm2dsz/JtKkyQ3iGHvfJlDUXnqbu5HQ9HiziUe3oy030wLuVdZ5ntThB1w==
X-Google-Smtp-Source: AGHT+IFQZENJCmlK8hK2mOASGnJyj98+m/qnWmlLWGu55QaL2ZHv7KuSbXdd4NUydGI1roYbO5neCw==
X-Received: by 2002:a17:907:6d07:b0:a7a:a138:dbc6 with SMTP id a640c23a62f3a-a7d8590dd7dmr236414066b.8.1722351603622;
        Tue, 30 Jul 2024 08:00:03 -0700 (PDT)
Message-ID: <8f595761-dd71-40bb-aac7-01bc5f17b7de@suse.com>
Date: Tue, 30 Jul 2024 17:00:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 9/9] xen/riscv: introduce early_fdt_map()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
 <9b1d88b2ad6ba81e925fb4a560a2a2899b5e0b36.1721834549.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: <9b1d88b2ad6ba81e925fb4a560a2a2899b5e0b36.1721834549.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2024 17:31, Oleksii Kurochko wrote:
> Introduce function which allows to map FDT to Xen.
> 
> Also, initialization of device_tree_flattened happens using early_fdt_map.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

> @@ -64,6 +65,14 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>  
>      setup_fixmap_mappings();
>  
> +    device_tree_flattened = early_fdt_map(dtb_addr);
> +    if ( !device_tree_flattened )
> +        panic("Invalid device tree blob at physical address %#lx.\n"
> +              "The DTB must be 8-byte aligned and must not exceed %lld "
> +              "bytes in size.\n\n"

... these two lines unwrapped, such that grep-ing for any part of the
message line will always produce a hit. Line length restrictions don't
apply in such situation, for this very reason.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 15:29:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 15:29:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767916.1178624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYomt-0000XC-Ls; Tue, 30 Jul 2024 15:29:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767916.1178624; Tue, 30 Jul 2024 15: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 1sYomt-0000Va-FW; Tue, 30 Jul 2024 15:29:19 +0000
Received: by outflank-mailman (input) for mailman id 767916;
 Tue, 30 Jul 2024 15:29: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=f/bP=O6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYoms-0000QI-N2
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 15:29:18 +0000
Received: from mail-qt1-x830.google.com (mail-qt1-x830.google.com
 [2607:f8b0:4864:20::830])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 795a58af-4e88-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 17:29:13 +0200 (CEST)
Received: by mail-qt1-x830.google.com with SMTP id
 d75a77b69052e-44fe9aa3bfaso27469771cf.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 08:29:13 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe8416381sm50588551cf.93.2024.07.30.08.29.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 08: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: 795a58af-4e88-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722353352; x=1722958152; 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=PqyKilccxUy2jU3Ab/ptPA12NAzfuMx58vq0oTSlKKE=;
        b=IIlIS96k6VeVMizy9rUCdxEdywu3dQ7HBbLQdxAfW/dSzREmOjmcnk9BZDbeYGxoMq
         fxpd4rDTVf6VxxSGVGCv3fW4osGKHj59T/hl/TfJaoivWVHaMmiKDZmpUXxykr5JWEJl
         1k92Ea9PZ/aTUEinettSCpPIljCvMt2hRC++c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722353352; x=1722958152;
        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=PqyKilccxUy2jU3Ab/ptPA12NAzfuMx58vq0oTSlKKE=;
        b=GKNtNgNr0VGXPgpvR5zOBqnew1fsfY9KNRoVZMkcwKQz6SxRhUi+RjLFEE4z8vG1G8
         5MC5g81vIkM7iqJM6FJ7hJ4km+F0V0mJOk3y4h5Mxb9Bk3/OYrrdpVnIFd2wrCuUAAeA
         gPjCPRROlmgpnu6rN8HDmgJGQdpQidK8VOjn75+tWiUqifE9zETiK78p+bgzx37xxGj8
         hIFo6He+NRC/5nC/u4TtLTgO2JoNlPrT/C+bvE50qjLFLmqVf+3zoSbPYhfpYOHui4o/
         aiHt02oLsNVRpOqcIhG+fFHp+YtfaItbeLsfpLpKvlCAQtZxgJcBdO+saBT2BRYOS13S
         E4JQ==
X-Gm-Message-State: AOJu0Yz+GMJAcYJD2AqccYwvpLxJEN98qmnP084BMGWVZRB1a4B0H5sE
	DahbeCURrHDiAczqx9hGQhpB96hNrz6sMAvBS8nbS/RA2a770PNh+XGfpqpaiZ8ptQsTRKjAmqb
	c
X-Google-Smtp-Source: AGHT+IFNWjblZqOrrPj0qXysM/Ynv14JREriGYcDNMLU6GXhH5tV66V7uQu3XcwYuDBVWtqpvfCGtg==
X-Received: by 2002:a05:622a:1347:b0:446:3927:5a9 with SMTP id d75a77b69052e-45004d6bacemr165696611cf.10.1722353352012;
        Tue, 30 Jul 2024 08:29:12 -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 0/2] x86/dom0: miscellaneous fixes for PV dom0 builder
Date: Tue, 30 Jul 2024 17:28:53 +0200
Message-ID: <20240730152855.48745-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

One fix to correctly restore the context on an error path, and another
fix to limit SMAP disabling to PV dom0 builder.  Previously part of the
Address Space Isolation series, now split for ease of review.

Thanks, Roger.

Roger Pau Monne (2):
  x86/dom0: fix restoring %cr3 and the mapcache override on PV build
    error
  x86/dom0: only disable SMAP for the PV dom0 build

 xen/arch/x86/pv/dom0_build.c | 15 +++++++++++++++
 xen/arch/x86/setup.c         | 17 -----------------
 2 files changed, 15 insertions(+), 17 deletions(-)

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 15:29:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 15:29:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767915.1178616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYomt-0000Qb-7c; Tue, 30 Jul 2024 15:29:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767915.1178616; Tue, 30 Jul 2024 15: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 1sYomt-0000QU-4U; Tue, 30 Jul 2024 15:29:19 +0000
Received: by outflank-mailman (input) for mailman id 767915;
 Tue, 30 Jul 2024 15: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=f/bP=O6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYomr-0000QJ-H1
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 15:29:17 +0000
Received: from mail-vs1-xe32.google.com (mail-vs1-xe32.google.com
 [2607:f8b0:4864:20::e32])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ab31b12-4e88-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 17:29:16 +0200 (CEST)
Received: by mail-vs1-xe32.google.com with SMTP id
 ada2fe7eead31-492aae5fd78so1114742137.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 08:29:15 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d7435577sm651787085a.96.2024.07.30.08.29.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 08:29: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: 7ab31b12-4e88-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722353354; x=1722958154; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0jXomYbaE8u0KFR+xvRRy2AxaxaX7PmTtwsEZkUj+38=;
        b=EWCXYL733fq8vbh0vqqzDM3w960C9oWV15tvovDGbUH/KG3Rj+ExmJcec9q2GuRHRn
         5Xin/5qkVrwfdttYfdDOmGL3M6TjCcJmtkm/XrXXw0wmzu6LMgy4f2vLOkIFqjPrAX8T
         JQLaXPPG+S63FwcZSaSRGfraVmw+cTDToL+wI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722353354; x=1722958154;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0jXomYbaE8u0KFR+xvRRy2AxaxaX7PmTtwsEZkUj+38=;
        b=iYopWiJ01z0AHQO64XvN2JRmZK6erryNh6Sd/PVNnfVrEEm5hsaoA6etG0a5wXg08y
         PYNadc9Ta9khdrqm8ArYuSt4dSNQxB5ax73r3WiBr5RFhrx1MGfNVZOaaDk2jMe29z/L
         GRPslsMTtUYkqhiGO9q0yftfX/Q0y44jNdja5srAK8qe7rm3MwbM6FyO5n5eNyvKXnN3
         GSawrACfatTjZEj+85dqFkU+SgdvVo8XykUHSuE5uB/Gdb3grsrG+KG620bFySjUT3MD
         8vGkyn2My2zlIDf+zqY7jTAzp8xm6rcVgGkgZtrkM1lh2ynrBPOSIn4gKW/jr0RtD/kA
         klHQ==
X-Gm-Message-State: AOJu0YzYGfW67h123KV01mY1wYq4SNwAGs0hiOG3/LhW4gQF3qacdeuG
	Qv0N9oyDO4G0fyXcNVTuQhPBLPvEueljn/Yp/WeEPsiMtYNr/YVK8mB5Wi6f8w/V2KChw5/C4R0
	E
X-Google-Smtp-Source: AGHT+IG3qG4KX8gBOaTMf1dqfWFiaaPHVkikXVXnKiQA5hYLP73G2UP0tseY0EDRaD5ahxaZXSBfEA==
X-Received: by 2002:a05:6102:3f48:b0:48f:eb5f:84d8 with SMTP id ada2fe7eead31-493fad8baacmr14788749137.27.1722353354249;
        Tue, 30 Jul 2024 08:29: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>
Subject: [PATCH v2 1/2] x86/dom0: fix restoring %cr3 and the mapcache override on PV build error
Date: Tue, 30 Jul 2024 17:28:54 +0200
Message-ID: <20240730152855.48745-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240730152855.48745-1-roger.pau@citrix.com>
References: <20240730152855.48745-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

One of the error paths in the PV dom0 builder section that runs on the guest
page-tables wasn't restoring the Xen value of %cr3, neither removing the
mapcache override.

Fixes: 079ff2d32c3d ('libelf-loader: introduce elf_load_image')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/pv/dom0_build.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index d8043fa58a27..57e58a02e707 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -825,6 +825,8 @@ int __init dom0_construct_pv(struct domain *d,
     rc = elf_load_binary(&elf);
     if ( rc < 0 )
     {
+        mapcache_override_current(NULL);
+        switch_cr3_cr4(current->arch.cr3, read_cr4());
         printk("Failed to load the kernel binary\n");
         goto out;
     }
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 15:29:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 15:29:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767917.1178635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYomu-0000tN-Qd; Tue, 30 Jul 2024 15:29:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767917.1178635; Tue, 30 Jul 2024 15: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 1sYomu-0000tE-O1; Tue, 30 Jul 2024 15:29:20 +0000
Received: by outflank-mailman (input) for mailman id 767917;
 Tue, 30 Jul 2024 15:29:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/bP=O6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYomt-0000QI-L7
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 15:29:19 +0000
Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com
 [2607:f8b0:4864:20::72f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7bff84ab-4e88-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 17:29:18 +0200 (CEST)
Received: by mail-qk1-x72f.google.com with SMTP id
 af79cd13be357-7a1d984ed52so268811985a.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 08:29:18 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d73f02c3sm648548585a.65.2024.07.30.08.29.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 08:29: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: 7bff84ab-4e88-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722353356; x=1722958156; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JtQmftLEOdtLH2V6E+Hq3v1vIUbIDceo54pfaSIr49o=;
        b=F2Gti1weZ1dUrZZnD0PqFzeO1jWTtgE70w20IRZe5Me5+jxVWruvukd8qF30xJPC13
         JqP2UeV1EWWRdVuMv3f7yjzz9uz4/5OH6aT/7YuwclyNXd1AR51wSDtWbl7xrskb837V
         QWn+dqtwfS8yMvhzxFYcaLWEVG7+G9VndPl2c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722353356; x=1722958156;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=JtQmftLEOdtLH2V6E+Hq3v1vIUbIDceo54pfaSIr49o=;
        b=Re2YMzHBMdJwPmCcmXiRtB/jHQJAc9p+DwdTZ6Px2AVZwaYRtc9a5o0UUpiJZjQkkH
         I17F1x+3409Fm7eHFxUF3Mwj37+QB0fMKznT32TyhJnBEn+5E4QdnSwg3Ar97JV2VOSl
         gPmSD1bwLbEc0+YgElI0+6xF79+VT+HlJemhQsk7wc9Fv2RBoSC1w2t0jbm2NI081H2M
         HZNArrC2cSFSKLREJOfnENlJ66b3g0ms+9pJePxN83GyJ8AolbbFD3JxmBG5iTTgRCKO
         aDb2k+uuQpvb/Tt46O5ScyhP3DWfitZBFFGcJwhN5FsM9bD/qu5egQJzJXknxwI99eSs
         tKZg==
X-Gm-Message-State: AOJu0YxOl9iqlb4Zt+Rj0KT0hD82L4yiJmjN83CIqhOkJe9JeJFShxyT
	6Ybenx3KfH+FJt1U8+e3FyG1cnSolioB9J2JKhpUme8MyMG+0s0UtXPe1B8/f9Sto2buJqDumg9
	H
X-Google-Smtp-Source: AGHT+IF1vhiX0bHt0QDKWOTu8thL174Hy1f8FI3H1gtt+C+j2KvGTzfJI0H2UL7f50u/sWUuLCuM3Q==
X-Received: by 2002:a05:620a:17a0:b0:79f:8a7:eb87 with SMTP id af79cd13be357-7a1e526c191mr1098115585a.42.1722353356332;
        Tue, 30 Jul 2024 08:29: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>
Subject: [PATCH v2 2/2] x86/dom0: only disable SMAP for the PV dom0 build
Date: Tue, 30 Jul 2024 17:28:55 +0200
Message-ID: <20240730152855.48745-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20240730152855.48745-1-roger.pau@citrix.com>
References: <20240730152855.48745-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The PVH dom0 builder doesn't switch page tables and has no need to run with
SMAP disabled.

Use stac() and clac(), as that's safe to use even if events would hit in the
middle of the region with SMAP disabled.  Nesting stac() and clac() calls is
not safe, so the stac() call is done strictly after elf_load_binary() because
that uses raw_{copy_to,clear}_guest() accessors which toggle SMAP.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/pv/dom0_build.c | 13 +++++++++++++
 xen/arch/x86/setup.c         | 17 -----------------
 2 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 57e58a02e707..ad804579cb6f 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -830,6 +830,15 @@ int __init dom0_construct_pv(struct domain *d,
         printk("Failed to load the kernel binary\n");
         goto out;
     }
+
+    /*
+     * Disable SMAP to allow user-accesses when running on dom0 page-tables.
+     * Note this must be done after elf_load_binary(), as such helper uses
+     * raw_{copy_to,clear}_guest() helpers which internally call stac()/clac()
+     * and those calls would otherwise nest with the ones here.
+     */
+    stac();
+
     bootstrap_map(NULL);
 
     if ( UNSET_ADDR != parms.virt_hypercall )
@@ -837,6 +846,7 @@ int __init dom0_construct_pv(struct domain *d,
         if ( (parms.virt_hypercall < v_start) ||
              (parms.virt_hypercall >= v_end) )
         {
+            clac();
             mapcache_override_current(NULL);
             switch_cr3_cr4(current->arch.cr3, read_cr4());
             printk("Invalid HYPERCALL_PAGE field in ELF notes.\n");
@@ -978,6 +988,9 @@ int __init dom0_construct_pv(struct domain *d,
                                     : XLAT_start_info_console_dom0);
 #endif
 
+    /* Possibly re-enable SMAP. */
+    clac();
+
     /* Return to idle domain's page tables. */
     mapcache_override_current(NULL);
     switch_cr3_cr4(current->arch.cr3, read_cr4());
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index eee20bb1753c..bc387d96b519 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -955,26 +955,9 @@ static struct domain *__init create_dom0(const module_t *image,
         }
     }
 
-    /*
-     * Temporarily clear SMAP in CR4 to allow user-accesses in construct_dom0().
-     * This saves a large number of corner cases interactions with
-     * copy_from_user().
-     */
-    if ( cpu_has_smap )
-    {
-        cr4_pv32_mask &= ~X86_CR4_SMAP;
-        write_cr4(read_cr4() & ~X86_CR4_SMAP);
-    }
-
     if ( construct_dom0(d, image, headroom, initrd, cmdline) != 0 )
         panic("Could not construct domain 0\n");
 
-    if ( cpu_has_smap )
-    {
-        write_cr4(read_cr4() | X86_CR4_SMAP);
-        cr4_pv32_mask |= X86_CR4_SMAP;
-    }
-
     return d;
 }
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 15:53:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 15:53:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767943.1178645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpA6-00068u-Ll; Tue, 30 Jul 2024 15:53:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767943.1178645; Tue, 30 Jul 2024 15:53:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpA6-00068n-J5; Tue, 30 Jul 2024 15:53:18 +0000
Received: by outflank-mailman (input) for mailman id 767943;
 Tue, 30 Jul 2024 15:53: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=f/bP=O6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sYpA4-00068f-U4
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 15:53:16 +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 d45a0a4d-4e8b-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 17:53:14 +0200 (CEST)
Received: by mail-qk1-x731.google.com with SMTP id
 af79cd13be357-7a1dac7f0b7so294669085a.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 08:53:14 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d73f02c3sm650988685a.65.2024.07.30.08.53.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 30 Jul 2024 08:53: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: d45a0a4d-4e8b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722354793; x=1722959593; 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=x26zs6CcCUyr+tPboAGAeAUd3pUjBBOwMMI7r116+WM=;
        b=PoSjQwE/5MPbE4n+dB85GaoVk+xWdlRzDSCwFXGo30kQkghUTeFSyWHVKv8ZeYXFvs
         rf7N/scWGPhYi9D41PbFmmlYg1S7XGxJKbe6bh7NemL9qEQGG6F95hCX8FLL/R1n6Aob
         edDrPqS4xVZZBPOoBO+Da4O9PB/Kbi8EF9UGY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722354793; x=1722959593;
        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=x26zs6CcCUyr+tPboAGAeAUd3pUjBBOwMMI7r116+WM=;
        b=WVECc7Ofzy8c8Xkn8plDIpHAXfZlkYUhbmwZMXshgIuGtpc/xqYMTcKRLzKyhYoXOZ
         IG+TP50IOI9kBaFiZOz2p++wDXFc+CbeShlB0RulFEFUwkpeDCDxoZOYmhTZPNPZQLiJ
         7/otAADVoQXFV9OZ0VyLBMCJHfdErDmmoXVlg8d7rw8CwJadBW4d3bWLYcVXQ17gs6k/
         mZjUqTn2lDM46T4G4lv3xBsGAxn3AL+ywnQy4ysihB2SvWxzidSXh0lETZLFUUDLnOk1
         zRJ2wSdukpYgASG+auJiF9OO+4DNsCDFrF/scPjDozQa8D3HKiZXn9ZQLGAS/TeT/C5k
         bBfw==
X-Gm-Message-State: AOJu0YydD9jG6GnrmfXJeVeJnRXUf2SoQssRLgbGkfeCEc/nMFwi0Evy
	cRLPKMH2WYUeK4BeCkAC9A/bkfPKObnN96ZI6GBXfFCMjQIG39MpKCf0YOuZP2vLEHGutqCdxdx
	t
X-Google-Smtp-Source: AGHT+IHubYDM1jWP1FzmnMgVKszWkQ06DP81wrJB5eS3p+W/05GelQVrROvze/bdNo0U5zN2GtHEdw==
X-Received: by 2002:a05:620a:4721:b0:79f:1f6:ab9f with SMTP id af79cd13be357-7a1e525e6bamr1102989485a.29.1722354793040;
        Tue, 30 Jul 2024 08:53:13 -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>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v3] x86/altcall: further refine clang workaround
Date: Tue, 30 Jul 2024 17:53:05 +0200
Message-ID: <20240730155305.49172-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current code in ALT_CALL_ARG() won't successfully workaround the clang
code-generation issue if the arg parameter has a size that's not a power of 2.
While there are no such sized parameters at the moment, improve the workaround
to also be effective when such sizes are used.

Instead of using a union with a long use an unsigned long that's first
initialized to 0 and afterwards set to the argument value.

Reported-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Suggested-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v2:
 - Fix indentation and style issues.
 - Adjust comment to match the new workaround.
---
 xen/arch/x86/include/asm/alternative.h | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)

diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index e63b45927643..c5fa242e76b3 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -169,27 +169,25 @@ extern void alternative_branches(void);
 
 #ifdef CONFIG_CC_IS_CLANG
 /*
- * Use a union with an unsigned long in order to prevent clang from
- * skipping a possible truncation of the value.  By using the union any
- * truncation is carried before the call instruction, in turn covering
- * for ABI-non-compliance in that the necessary clipping / extension of
- * the value is supposed to be carried out in the callee.
+ * 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.
  *
- * Note this behavior is not mandated by the standard, and hence could
- * stop being a viable workaround, or worse, could cause a different set
- * of code-generation issues in future clang versions.
+ * 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 union {                                                    \
-        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
-        unsigned long r;                                                \
-    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
-        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
-    }
+    register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
+        unsigned long tmp = 0;                                          \
+        *(typeof(arg) *)&tmp = (arg);                                   \
+        BUILD_BUG_ON(sizeof(arg) > sizeof(unsigned long));              \
+        tmp;                                                            \
+    })
 #else
 #define ALT_CALL_ARG(arg, n) \
     register typeof(arg) a ## n ## _ asm ( ALT_CALL_arg ## n ) = \
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 15:53:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 15:53:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767946.1178655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpAY-0006Wp-V5; Tue, 30 Jul 2024 15:53:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767946.1178655; Tue, 30 Jul 2024 15:53:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpAY-0006Wi-SY; Tue, 30 Jul 2024 15:53:46 +0000
Received: by outflank-mailman (input) for mailman id 767946;
 Tue, 30 Jul 2024 15:53:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYpAX-0006WJ-LY; Tue, 30 Jul 2024 15:53:45 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYpAX-00081c-EF; Tue, 30 Jul 2024 15:53:45 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYpAX-0001A7-1z; Tue, 30 Jul 2024 15:53:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYpAX-0000QC-1Y; Tue, 30 Jul 2024 15:53: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dr/RiovMZx48WZz9SL8y11L6kJdZnL9JNltxd8bup8g=; b=kd+KhH811MzQk9Yx5gnodoGveG
	gUcQx8Xd+HuK06f/FintKYgaod8hX721NoqEqakvkN79OcBf38clX/Ki73Oi9PiOTYR0d4pFosSxB
	WRSk1iOHEzm0oOHZJul5tkHJqgh/WGTe/q/MSiVVHZ9TGyUjiMLLOsr50um+DhS8f4ko=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187058-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187058: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=5b08df03f8193261e4837ed4e91ff81fa7d17e4d
X-Osstest-Versions-That:
    ovmf=91a822749a6664dcaf0f67a837dcf0cd05783d17
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 15:53:45 +0000

flight 187058 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187058/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 5b08df03f8193261e4837ed4e91ff81fa7d17e4d
baseline version:
 ovmf                 91a822749a6664dcaf0f67a837dcf0cd05783d17

Last test of basis   187055  2024-07-30 11:41:31 Z    0 days
Testing same since   187058  2024-07-30 14:13:07 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Awiral Shrivastava <awiral.shrivastava@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   91a822749a..5b08df03f8  5b08df03f8193261e4837ed4e91ff81fa7d17e4d -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 15:55:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 15:55:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767960.1178666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpCQ-0007D3-BA; Tue, 30 Jul 2024 15:55:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767960.1178666; Tue, 30 Jul 2024 15: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 1sYpCQ-0007Cr-89; Tue, 30 Jul 2024 15:55:42 +0000
Received: by outflank-mailman (input) for mailman id 767960;
 Tue, 30 Jul 2024 15:55: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=0AIz=O6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sYpCP-0007CN-Af
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 15:55:41 +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 2a561ceb-4e8c-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 17:55:39 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 9854A61FF9;
 Tue, 30 Jul 2024 15:55:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 801B9C32782;
 Tue, 30 Jul 2024 15:55: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: 2a561ceb-4e8c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722354937;
	bh=n4C2aHMSzMnnREBkTjbXutmDjlS0h6LYfba/Y+C1zok=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Ql/CG1sqOr3vNTAwWKWLiZ3cUnNrrSlBE+zdNDxteSYuq1VbiDDsUj4fBzR3OrMj4
	 ZR+NDDsIXXv/M5Rj9ypqWAgPhY730sW7aRFsxkCQoAbFpxh8k4PZP0SGN1t6MFclYN
	 E4uZyfbiBTFCz36BQGXCe+LapyJzalYIvUUHF7Sto/czP6+K1e9erAorAbFCzvgHPL
	 A8kPErBprnWuFTHbUZt3bdM7z9FszK7ETRkrpaCiI5F0JZansONrGjRr0vshWgJrZN
	 hnyjLtyB14leZMripKZPh/kBIgemvIyYR4kzQ69MoLFaxeFL/SF+wpbun8ibKGA0o+
	 UTB5km9lY92Kg==
Date: Tue, 30 Jul 2024 08:55:35 -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: Andrew Cooper <andrew.cooper3@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, cardoe@cardoe.com
Subject: Re: [PATCH v2] automation: upgrade Yocto to scarthgap
In-Reply-To: <Zqjzn5eM0z0njNF2@mail-itl>
Message-ID: <alpine.DEB.2.22.394.2407300851390.4857@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2407261639190.4857@ubuntu-linux-20-04-desktop> <ZqjuvjUtmNU7Ud8g@mail-itl> <9be4e130-c202-459d-bd58-d589b72af1c2@citrix.com> <Zqjzn5eM0z0njNF2@mail-itl>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1649060210-1722354791=:4857"
Content-ID: <alpine.DEB.2.22.394.2407300853391.4857@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-1649060210-1722354791=:4857
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2407300853392.4857@ubuntu-linux-20-04-desktop>

On Tue, 30 Jul 2024, Marek Marczykowski-Górecki wrote:
> On Tue, Jul 30, 2024 at 03:01:52PM +0100, Andrew Cooper wrote:
> > On 30/07/2024 2:46 pm, Marek Marczykowski-Górecki wrote:
> > > On Fri, Jul 26, 2024 at 05:19:42PM -0700, Stefano Stabellini wrote:
> > >> Upgrade Yocto to a newer version. Use ext4 as image format for testing
> > >> with QEMU on ARM and ARM64 as the default is WIC and it is not available
> > >> for our xen-image-minimal target.
> > >>
> > >> Also update the tar.bz2 filename for the rootfs.
> > >>
> > >> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> > > Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> > >
> > >> ---
> > >>
> > >> all yocto tests pass:
> > >> https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1390081173
> > 
> > That test ran on gitlab-docker-pug, not qubes-ambrosia, so doesn't
> > confirm the fix to the xattr issue.
> 
> There is one on ambrosia too:
> https://gitlab.com/xen-project/people/sstabellini/xen/-/jobs/7423043016

Yes indeed: I tested it in a previous run. The last test I let it run
without additional constraints. But as far as I can tell the patch is
100% tested.


> > Seeing as I'm going to need to rebuild the container anyway, I'll see
> > about forcing this and double checking.
> 
> But double-checking is a good idea anyway.

I did update the x86, arm64 and arm32 containers. Feel free to rebuild
any of them.

I'll commit the patch this afternoon if you don't get to it sooner :-)
--8323329-1649060210-1722354791=:4857--


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 16:11:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 16:11:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767971.1178675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpRg-0002zm-J4; Tue, 30 Jul 2024 16:11:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767971.1178675; Tue, 30 Jul 2024 16:11:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpRg-0002zf-GN; Tue, 30 Jul 2024 16:11:28 +0000
Received: by outflank-mailman (input) for mailman id 767971;
 Tue, 30 Jul 2024 16:11:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3jiA=O6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYpRf-0002zZ-9E
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 16:11:27 +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 5e792a51-4e8e-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 18:11:25 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a7aa4ca9d72so608322766b.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 09:11:25 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad9ef91sm656648066b.183.2024.07.30.09.11.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 09:11: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: 5e792a51-4e8e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722355884; x=1722960684; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xQVQkKbp49zQfbKbZiSHRrf5rKdLrdFURpTxprBZC8c=;
        b=NNSAdjrkcvAaiRdbFKCjYmx3axlflZjmDxyLL80bx4Kf6bDRSMKkg64+3x4HPEcNPv
         HVuHM25i1HH9bGjFBkVZqfvKIAnMKSCwvPy8qhfE1v1wqbjg4VJZ0gNc94s2dP5NUr5i
         TPG7lofrwKtK/wsNBZ3KlLTTB5zP+yGTH+goA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722355884; x=1722960684;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xQVQkKbp49zQfbKbZiSHRrf5rKdLrdFURpTxprBZC8c=;
        b=qwi3x2hpuvzOklMlD05ytQuq1eN6QDu+lynWfv6D7xTDY0pvkvpSsxVm19VWKASC2f
         zsYArOfckBt8/zMaw5pPeZbFQjT3ygiuycIJ2M6dmrgaPZKLWobA08TMLeRrWdmzNDL1
         +mAjG4h3K9YAb3i1WxG1pwzYZP6o/Bbi4H9i0aJDxqI8t7qKXdfD9cS3Gp22Cp/lgfNp
         kg6tflTryXpijwzPrHY16EONYuoozH/tLWzsk47b2aWync9rKuuGuOWu/ZO+WEedoTXr
         gvKuxyRgDtnPU8Ay3hqByg8O12PUlGErL20OCBPCVzq5YVNyeFmJJvwibxjCK7muhi8M
         dh1w==
X-Gm-Message-State: AOJu0Yw3VM25OjuZbl3byfki+v5A61RFtdYDXn2PscAS8e3tgzHPBAWM
	R/7b8XSzfLxCmA7emEiUC2j4rh/KCuEdYu+74nkxlxmf8asrDeei+GJp7boUAfU=
X-Google-Smtp-Source: AGHT+IHhvKBo0ZZxDqESrM2vDo4lHvhQ4mlnrZ7X79hN1VA2rtipBfNGF81PKock2xc9f8Rxk0X2vg==
X-Received: by 2002:a17:907:9694:b0:a7a:ba59:3164 with SMTP id a640c23a62f3a-a7d40160f08mr880836566b.53.1722355884429;
        Tue, 30 Jul 2024 09:11:24 -0700 (PDT)
Message-ID: <e9230d77-24f0-42a1-8728-e9d6478a071e@citrix.com>
Date: Tue, 30 Jul 2024 17:11:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] automation: upgrade Yocto to scarthgap
To: Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, cardoe@cardoe.com
References: <alpine.DEB.2.22.394.2407261639190.4857@ubuntu-linux-20-04-desktop>
 <ZqjuvjUtmNU7Ud8g@mail-itl> <9be4e130-c202-459d-bd58-d589b72af1c2@citrix.com>
 <Zqjzn5eM0z0njNF2@mail-itl>
 <alpine.DEB.2.22.394.2407300851390.4857@ubuntu-linux-20-04-desktop>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <alpine.DEB.2.22.394.2407300851390.4857@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/07/2024 4:55 pm, Stefano Stabellini wrote:
> On Tue, 30 Jul 2024, Marek Marczykowski-Górecki wrote:
>> On Tue, Jul 30, 2024 at 03:01:52PM +0100, Andrew Cooper wrote:
>>> On 30/07/2024 2:46 pm, Marek Marczykowski-Górecki wrote:
>>>> On Fri, Jul 26, 2024 at 05:19:42PM -0700, Stefano Stabellini wrote:
>>>>> Upgrade Yocto to a newer version. Use ext4 as image format for testing
>>>>> with QEMU on ARM and ARM64 as the default is WIC and it is not available
>>>>> for our xen-image-minimal target.
>>>>>
>>>>> Also update the tar.bz2 filename for the rootfs.
>>>>>
>>>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>>> Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>>>>
>>>>> ---
>>>>>
>>>>> all yocto tests pass:
>>>>> https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1390081173
>>> That test ran on gitlab-docker-pug, not qubes-ambrosia, so doesn't
>>> confirm the fix to the xattr issue.
>> There is one on ambrosia too:
>> https://gitlab.com/xen-project/people/sstabellini/xen/-/jobs/7423043016
> Yes indeed: I tested it in a previous run. The last test I let it run
> without additional constraints. But as far as I can tell the patch is
> 100% tested.
>
>
>>> Seeing as I'm going to need to rebuild the container anyway, I'll see
>>> about forcing this and double checking.
>> But double-checking is a good idea anyway.
> I did update the x86, arm64 and arm32 containers. Feel free to rebuild
> any of them.
>
> I'll commit the patch this afternoon if you don't get to it sooner :-)

Just the x86 container rebuild has been going on for the entirety of the
MISRA meeting...

If you've got one to hand already, please deploy it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 16:39:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 16:39:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767982.1178685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpsd-00076D-RR; Tue, 30 Jul 2024 16:39:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767982.1178685; Tue, 30 Jul 2024 16:39:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpsd-000766-Os; Tue, 30 Jul 2024 16:39:19 +0000
Received: by outflank-mailman (input) for mailman id 767982;
 Tue, 30 Jul 2024 16:39:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYpsc-00075v-Go; Tue, 30 Jul 2024 16:39:18 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYpsc-0000ws-AB; Tue, 30 Jul 2024 16:39:18 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYpsb-0002dn-QZ; Tue, 30 Jul 2024 16:39:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYpsb-0005Xr-Pu; Tue, 30 Jul 2024 16:39: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=qzXgXpzdGtA8IN1zkDmfMlp4fJNH2U5Qv1FtKL7dtN0=; b=yIh5qBGnriv71Pjk6inlE4Fm8j
	kCw5Kz5NMxUMATfZnQYv7bwcPyYPicC6CnSlCxY6kDJTzMgmgj81DEUE1GJr6vMLJQn/mEYQ4VV+e
	ndOMBxhMMVrFLfgQOgUkilnaGtCt+BiNlf14adnzNZP8IckdJQBBUMXx/ro+Yn9OMO5w=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187048-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.19-testing test] 187048: regressions - FAIL
X-Osstest-Failures:
    xen-4.19-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:regression
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-4.19-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=026c9fa29716b0ff0f8b7c687908e71ba29cf239
X-Osstest-Versions-That:
    xen=fe84f5392d8c96d7d73c0cf02413eeff0ef2a40e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 16:39:17 +0000

flight 187048 xen-4.19-testing real [real]
flight 187060 xen-4.19-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/187048/
http://logs.test-lab.xenproject.org/osstest/logs/187060/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop       fail REGR. vs. 187044

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 187060-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 187044
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 187044
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 187044
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 187044
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 187044
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  026c9fa29716b0ff0f8b7c687908e71ba29cf239
baseline version:
 xen                  fe84f5392d8c96d7d73c0cf02413eeff0ef2a40e

Last test of basis   187044  2024-07-29 16:07:22 Z    1 days
Testing same since   187048  2024-07-30 01:41:30 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 026c9fa29716b0ff0f8b7c687908e71ba29cf239
Author: Julien Grall <jgrall@amazon.com>
Date:   Mon Jul 29 18:20:45 2024 +0100

    Set 4.19 version
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>

commit df9b8a649f0424e0a949c0f9a7961724bbe8ea70
Author: Julien Grall <jgrall@amazon.com>
Date:   Mon Jul 29 18:20:08 2024 +0100

    README: make heading say 4.19
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>

commit b2d2878ab2686b92fcdd7bbca4ff4c312a42bc11
Author: Julien Grall <jgrall@amazon.com>
Date:   Mon Jul 29 18:18:01 2024 +0100

    Config.mk: Bump tags to 4.19.0 final
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 16:41:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 16:41:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767991.1178696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpv0-0000HO-7m; Tue, 30 Jul 2024 16:41:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767991.1178696; Tue, 30 Jul 2024 16: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 1sYpv0-0000H9-4j; Tue, 30 Jul 2024 16:41:46 +0000
Received: by outflank-mailman (input) for mailman id 767991;
 Tue, 30 Jul 2024 16: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=0AIz=O6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sYpuy-0000H0-Ch
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 16:41:44 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 98a4d667-4e92-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 18:41:42 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id F16FECE10CA;
 Tue, 30 Jul 2024 16:41:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B74CC4AF0C;
 Tue, 30 Jul 2024 16:41: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: 98a4d667-4e92-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722357694;
	bh=K1c8SiNmSZPoF32cfEUeisu352p6Y7h9pCU+ay/GViQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=MQ0SOcUlXOfoAoggAHkCAjomYx/3hNOTXFq/yfNTZ/Kg20TjBAG2KYQ26GQNjJuzP
	 ctuuI/HytvVf4jmzVPW6wPBd9+PwcWuPVrhqMl7Xr3DJ+rs/HQssIibN/jPUOuoV/t
	 L8GEkRva/CQWDXW1rC5icdhzxAMWhn+unRqs/rmGyq44UNggp/rYuvnuGVr7qt3SHO
	 Ijn+Nh2HFn7WUur20w3by8kD95GqKyGUqbwU9s8WcGJn6NGjOIpagQiMKov0d50jYP
	 HE3GR5y4uJzxhlc2oAmzXYRnuHQ3afk0hRo8htO3WMEcfxhu0lgu20IUszHpfamHJW
	 h/oAPqpc0DSBw==
Date: Tue, 30 Jul 2024 09:41:31 -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>, 
    =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
    xen-devel@lists.xenproject.org, cardoe@cardoe.com
Subject: Re: [PATCH v2] automation: upgrade Yocto to scarthgap
In-Reply-To: <e9230d77-24f0-42a1-8728-e9d6478a071e@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2407300941090.4857@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2407261639190.4857@ubuntu-linux-20-04-desktop> <ZqjuvjUtmNU7Ud8g@mail-itl> <9be4e130-c202-459d-bd58-d589b72af1c2@citrix.com> <Zqjzn5eM0z0njNF2@mail-itl> <alpine.DEB.2.22.394.2407300851390.4857@ubuntu-linux-20-04-desktop>
 <e9230d77-24f0-42a1-8728-e9d6478a071e@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-444777817-1722357694=:4857"

  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-444777817-1722357694=:4857
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 30 Jul 2024, Andrew Cooper wrote:
> On 30/07/2024 4:55 pm, Stefano Stabellini wrote:
> > On Tue, 30 Jul 2024, Marek Marczykowski-Górecki wrote:
> >> On Tue, Jul 30, 2024 at 03:01:52PM +0100, Andrew Cooper wrote:
> >>> On 30/07/2024 2:46 pm, Marek Marczykowski-Górecki wrote:
> >>>> On Fri, Jul 26, 2024 at 05:19:42PM -0700, Stefano Stabellini wrote:
> >>>>> Upgrade Yocto to a newer version. Use ext4 as image format for testing
> >>>>> with QEMU on ARM and ARM64 as the default is WIC and it is not available
> >>>>> for our xen-image-minimal target.
> >>>>>
> >>>>> Also update the tar.bz2 filename for the rootfs.
> >>>>>
> >>>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> >>>> Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> >>>>
> >>>>> ---
> >>>>>
> >>>>> all yocto tests pass:
> >>>>> https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1390081173
> >>> That test ran on gitlab-docker-pug, not qubes-ambrosia, so doesn't
> >>> confirm the fix to the xattr issue.
> >> There is one on ambrosia too:
> >> https://gitlab.com/xen-project/people/sstabellini/xen/-/jobs/7423043016
> > Yes indeed: I tested it in a previous run. The last test I let it run
> > without additional constraints. But as far as I can tell the patch is
> > 100% tested.
> >
> >
> >>> Seeing as I'm going to need to rebuild the container anyway, I'll see
> >>> about forcing this and double checking.
> >> But double-checking is a good idea anyway.
> > I did update the x86, arm64 and arm32 containers. Feel free to rebuild
> > any of them.
> >
> > I'll commit the patch this afternoon if you don't get to it sooner :-)
> 
> Just the x86 container rebuild has been going on for the entirety of the
> MISRA meeting...
> 
> If you've got one to hand already, please deploy it.

I deployed the three yocto containers
--8323329-444777817-1722357694=:4857--


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 16:44:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 16:44:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.767998.1178706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpxd-0000sw-KV; Tue, 30 Jul 2024 16:44:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 767998.1178706; Tue, 30 Jul 2024 16:44:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYpxd-0000sp-HA; Tue, 30 Jul 2024 16:44:29 +0000
Received: by outflank-mailman (input) for mailman id 767998;
 Tue, 30 Jul 2024 16:44:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3jiA=O6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYpxb-0000sj-VX
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 16:44:27 +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 fbd20528-4e92-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 18:44:27 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5a10835487fso7151215a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 09:44:27 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad41976sm668445866b.130.2024.07.30.09.44.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 09:44: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: fbd20528-4e92-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722357866; x=1722962666; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hM3DsFd38ntSTkDA5L78v6ccx4vFyTizHyByugxhPFo=;
        b=MaTDmAIgdFgp6RlI1C+D781fXRq4UuqvwwEEDaW9vUCpxApLpSrS/ojKWjkXvvn7A8
         Fafhopl/1AMh7ynNlhZxJc5HvJL0oHNBQNacBKUGcYoSguPPvvao3o+N8q1WYgMu39Ng
         +RvMtRZUM+lcdbRyy9dyYYLKDDtHoVduFINVk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722357866; x=1722962666;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hM3DsFd38ntSTkDA5L78v6ccx4vFyTizHyByugxhPFo=;
        b=tXB4SXdZjjGsKUUITwpB1EDKkbbUNQ+k3eihaNF697XC3HIsFs7b5Gr8+Bn1G3lFlF
         WCtNJTVG9rMlRFhTJLFV93auXEpNtwb2BXmaS4DjiA2R92v81D1sgAJ6/QUzpIaJXczJ
         nduqERTv+32cjcfhZwdI0jFwHDyjDD0XH4CgdzhHYjVhp0E9KebniCdUqjoSHzNTiHai
         4oTZlVbrHeCGdq3zQPxk1fKcy1mRoCh8gmaQZz43dHeFCJuLXMdfVXYeST3EQSEj44AZ
         KrLJ0LHkYWGpw1INDpga2+rI941ik0BjrrjiK4xZ32u290OASf6ZHB7qKq0x9Nk3+uB8
         Ov3A==
X-Forwarded-Encrypted: i=1; AJvYcCXk2gCVF4n3zsCymfJl6okDkI1bxxK5InzP0f2JrW2guQ90qsI2hUu+cOwRuV39jUz9sHdOJQ9SY3cTZkH+CgXOREPCr5JADravG/qzEhY=
X-Gm-Message-State: AOJu0Yw4PG/8Kq9CkWmLgTIrsLqHZ8cSl0MRmTlvC7d2HXuAilDxbf3H
	yuGT3f8QuxfxBrscErAequk2hOQoYueDm8naY1QWE+yv2Mx95ABhOmgrU9n5aqhNlHHH9PjDZM1
	y
X-Google-Smtp-Source: AGHT+IHnlQF2mBmMRZW4i/5VTTOzrMBo4xhpexWZ8lpd/x7yhXZHWE6Zbiv8Icj0ghpCsxRpGpZU/w==
X-Received: by 2002:a17:907:7d86:b0:a6f:4fc8:2665 with SMTP id a640c23a62f3a-a7d40150b58mr844429066b.50.1722357866301;
        Tue, 30 Jul 2024 09:44:26 -0700 (PDT)
Message-ID: <4b376f89-e56b-4706-a8c8-0b3a4c0f6f73@citrix.com>
Date: Tue, 30 Jul 2024 17:44:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] automation: upgrade Yocto to scarthgap
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org,
 cardoe@cardoe.com
References: <alpine.DEB.2.22.394.2407261639190.4857@ubuntu-linux-20-04-desktop>
 <ZqjuvjUtmNU7Ud8g@mail-itl> <9be4e130-c202-459d-bd58-d589b72af1c2@citrix.com>
 <Zqjzn5eM0z0njNF2@mail-itl>
 <alpine.DEB.2.22.394.2407300851390.4857@ubuntu-linux-20-04-desktop>
 <e9230d77-24f0-42a1-8728-e9d6478a071e@citrix.com>
 <alpine.DEB.2.22.394.2407300941090.4857@ubuntu-linux-20-04-desktop>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <alpine.DEB.2.22.394.2407300941090.4857@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/07/2024 5:41 pm, Stefano Stabellini wrote:
> On Tue, 30 Jul 2024, Andrew Cooper wrote:
>> On 30/07/2024 4:55 pm, Stefano Stabellini wrote:
>>> On Tue, 30 Jul 2024, Marek Marczykowski-Górecki wrote:
>>>> On Tue, Jul 30, 2024 at 03:01:52PM +0100, Andrew Cooper wrote:
>>>>> On 30/07/2024 2:46 pm, Marek Marczykowski-Górecki wrote:
>>>>>> On Fri, Jul 26, 2024 at 05:19:42PM -0700, Stefano Stabellini wrote:
>>>>>>> Upgrade Yocto to a newer version. Use ext4 as image format for testing
>>>>>>> with QEMU on ARM and ARM64 as the default is WIC and it is not available
>>>>>>> for our xen-image-minimal target.
>>>>>>>
>>>>>>> Also update the tar.bz2 filename for the rootfs.
>>>>>>>
>>>>>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>>>>> Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>>>>>>
>>>>>>> ---
>>>>>>>
>>>>>>> all yocto tests pass:
>>>>>>> https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1390081173
>>>>> That test ran on gitlab-docker-pug, not qubes-ambrosia, so doesn't
>>>>> confirm the fix to the xattr issue.
>>>> There is one on ambrosia too:
>>>> https://gitlab.com/xen-project/people/sstabellini/xen/-/jobs/7423043016
>>> Yes indeed: I tested it in a previous run. The last test I let it run
>>> without additional constraints. But as far as I can tell the patch is
>>> 100% tested.
>>>
>>>
>>>>> Seeing as I'm going to need to rebuild the container anyway, I'll see
>>>>> about forcing this and double checking.
>>>> But double-checking is a good idea anyway.
>>> I did update the x86, arm64 and arm32 containers. Feel free to rebuild
>>> any of them.
>>>
>>> I'll commit the patch this afternoon if you don't get to it sooner :-)
>> Just the x86 container rebuild has been going on for the entirety of the
>> MISRA meeting...
>>
>> If you've got one to hand already, please deploy it.
> I deployed the three yocto containers

Ok, I'll include this patch in my commit sweep

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 17:01:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 17:01:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768010.1178719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYqEQ-0004ZQ-4s; Tue, 30 Jul 2024 17:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768010.1178719; Tue, 30 Jul 2024 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 1sYqEQ-0004ZJ-0y; Tue, 30 Jul 2024 17:01:50 +0000
Received: by outflank-mailman (input) for mailman id 768010;
 Tue, 30 Jul 2024 17:01:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYqEO-0004Z9-W8; Tue, 30 Jul 2024 17:01:49 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYqEO-0001ae-LV; Tue, 30 Jul 2024 17:01:48 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYqEO-0003CX-Bg; Tue, 30 Jul 2024 17:01:48 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYqEO-0000bG-B3; Tue, 30 Jul 2024 17:01: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=o18t/a3xFH4dMY32nxqKIo+jnCHGfh8p1Yw0R0VeEwM=; b=QqKgYI+wURr2IU7SAOmEjVGBFR
	w0+CshQvuPIM4eVvcC3xQHnBHbHOl+NJCsd8c0gWLWEA15fERWq7+DQf6OWUFHxqTuuFxD6g3YyCr
	aEJUi6TZ/5dEcRG2HJuKcxJFg4oK9SYcFoot+LnA3POOfmKG/EF/uZ3vp6sRiGVj9I8A=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187050-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 187050: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=7428738597306dbb03bffc9db1cf8ea1fc063d50
X-Osstest-Versions-That:
    libvirt=bd11c753f3f947d91ae0c8d2ba965e5661e25080
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 17:01:48 +0000

flight 187050 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187050/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 187013
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              7428738597306dbb03bffc9db1cf8ea1fc063d50
baseline version:
 libvirt              bd11c753f3f947d91ae0c8d2ba965e5661e25080

Last test of basis   187013  2024-07-26 04:20:39 Z    4 days
Testing same since   187050  2024-07-30 04:18:47 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andi Chandler <andi@gowling.com>
  Göran Uddeborg <goeran@uddeborg.se>
  Jiri Denemark <jdenemar@redhat.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   bd11c753f3..7428738597  7428738597306dbb03bffc9db1cf8ea1fc063d50 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 17:53:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 17:53:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768021.1178729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYr25-0003xu-SB; Tue, 30 Jul 2024 17:53:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768021.1178729; Tue, 30 Jul 2024 17:53: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 1sYr25-0003xn-On; Tue, 30 Jul 2024 17:53:09 +0000
Received: by outflank-mailman (input) for mailman id 768021;
 Tue, 30 Jul 2024 17: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=v2aj=O6=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1sYr24-0003xf-N5
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 17:53:08 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2081.outbound.protection.outlook.com [40.107.243.81])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91aab818-4e9c-11ef-8776-851b0ebba9a2;
 Tue, 30 Jul 2024 19:53:04 +0200 (CEST)
Received: from BL0PR01CA0013.prod.exchangelabs.com (2603:10b6:208:71::26) by
 CY8PR12MB8362.namprd12.prod.outlook.com (2603:10b6:930:7e::19) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7828.21; Tue, 30 Jul 2024 17:50:58 +0000
Received: from BL6PEPF00022575.namprd02.prod.outlook.com
 (2603:10b6:208:71:cafe::40) by BL0PR01CA0013.outlook.office365.com
 (2603:10b6:208:71::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.35 via Frontend
 Transport; Tue, 30 Jul 2024 17:50:58 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00022575.mail.protection.outlook.com (10.167.249.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7828.19 via Frontend Transport; Tue, 30 Jul 2024 17:50:58 +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, 30 Jul
 2024 12:50:56 -0500
Received: from [172.28.183.80] (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, 30 Jul 2024 12:50: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: 91aab818-4e9c-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WTZ/YHBR7BtlaajUU+I4XgZwcH57G7Pk+nLCXzviMSzxSMFpCa76bJKHOGZRcfreSzoUMq27fXHJDJ47d94rGIT5iOXU2h1ZSiya+ljZvIlUF0amC6X5KU3cN9FDdsP+AVTWH23tbNc2S3Gc7siHUxY6KlaSzD+ed7vKbFrbylGssdirqFRaBLwWq5AtBFcLlicWm4SpnlspC9Vnz5QMaZR4lFTYN+6DUPf9gPRnVjjTCOTi+Y7FRGPDrih6WhC4yL3RCYmDBQJh+D9ffibzh6c1IIptINfl2wjX9TtoqS2iXOQ6/2A3RVuy0frLytPsIDo0Pjw5T2lDSSsPSFnoOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=q1sZYy2x2M/nreP3j2hTURzEWb5eWeFCapNjQTgj+pU=;
 b=Wa4kS8HWLobUmFN793wSLfQMUVKE1uAZeZyZ2XYyaLJ+xuf77PxDPIO0fgEGuPjaBV3TK9o1jlJgwtiQlShxl39Vvc6MJduiZcGiufku8QCvfJKKRDNzFvcR5xY/RcaKPa5oVQwiiFo+oNII8rgYb4liAsmVTmZTZ/xx9OfPlMCs9v2sbI40ViDnslcaZyHJJuofltoA8N4M6/JDR1D7Uy6hDUaomySqNurMKX6AeFZOdS2kCtu1qqUbYMgCGpVXErftaGZ1cuwgNHDkR1ZDdnYW+svzacMQ/b/kyAL+p9yijSmc7q3cezmxIeVRIwNIQN22webWTtl5I/0iH06KZQ==
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=q1sZYy2x2M/nreP3j2hTURzEWb5eWeFCapNjQTgj+pU=;
 b=af+ZEXwY35zyQc7glxw5mlcGNyO5Tvo9RpdTU/7gQmaWS6z8HyQVobBqx/SxLPyg/Edpt38bawXidZTNWGIFYMYWcmpixc1mC62j3fMIRKxNEz21X8U+M+xZeruvs5O/EalaBHcqOJAmXTuhotgiqbeYXY7aNmsrOXN0fax0vks=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <23fe4756-4e5c-47f8-b9cc-101b7b8d116f@amd.com>
Date: Tue, 30 Jul 2024 13:50:54 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xen/arm: stack check instrumentation
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>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-4-stewart.hildebrand@amd.com>
 <d313f39a-f5aa-4611-975e-bc64759bbd01@xen.org>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <d313f39a-f5aa-4611-975e-bc64759bbd01@xen.org>
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: BL6PEPF00022575:EE_|CY8PR12MB8362:EE_
X-MS-Office365-Filtering-Correlation-Id: 804672a3-39d4-435e-b0e5-08dcb0c02b18
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?TjRFWWhVNDBqTWp4OGFzdXFGVGw3WWQ3aTAvdHNlcDQwYnlQY2lIZnIwdUdo?=
 =?utf-8?B?Smlzc3Q2Kzh0U1lkUFlyeDFISTdEU2VlNW9jaG1ldG82eWV2ckhPNFVEOVRO?=
 =?utf-8?B?Rk0xOFpnZHRSaEFqOEhIckNQLzFKRkg4MjBSU0RLRWtLMGlwdmtHZis2RE5a?=
 =?utf-8?B?Q0hYZkVUbzAwdjFvZEVrejdmSjYwZnFxT1BlNTJTaVRsRnkyMFNFN3ZsalBW?=
 =?utf-8?B?S3l0MEhvYUxESDZaOExVbTlUTWw4Vkdma3I5TkNPM01aYTFMOTN4ZnhhWGw5?=
 =?utf-8?B?WmFsLzEwdlZtcDJHYkIxUnk5MFZzWVhoMUpJRWFva21qOVJtTkJJeDFuQTRx?=
 =?utf-8?B?dEhadWcxVkVwSS9OQjUwR0N3U09jQ0JtWlBKZTFFNzlCYWg4QjdhOStDVUNt?=
 =?utf-8?B?WnFxaVh1TWxVMk1zU1lBR1Jydjg0eVN3VklRUHlJVHFlR0JUY0hoZWFzOGtp?=
 =?utf-8?B?UUhqUU5QNUVHNC8rUmcyUVJrK1VST05OYzFra2hSZU93bFB2LzZHS2REb1Ax?=
 =?utf-8?B?ckl4WDFtS28xTDd5bUJ5QjRmUWtTZ2dxQ0dnRG9mVGJxSFFWelpkYU9JVlFu?=
 =?utf-8?B?NTNnNVhYZnVjcWNiWE9TUVdkcHJocG1UcjYyM0wybmprdkhVWUFqdUNWOG5T?=
 =?utf-8?B?WE0rbXozY3N3ckMwb1M0MCs4RDIzZGRwQ3Q1WXNvTVdOMUI4d2VSQWhDUzE3?=
 =?utf-8?B?aXZpdGlQa0pHaHhYekRIaCtkMDdjazJKbzZadkJHbzg5N3NkMUFOdWgvOG5X?=
 =?utf-8?B?S2VMMy9xZWMzdCtHNkRhcUxaYU1jVkozUTB6U0pNMGxzbmVhWjVlWlJaeDU4?=
 =?utf-8?B?UnJkZG9IOFkwZi9lZmZHRFF6MDQ4SXE2eUY4WFR1aHc1WlFrelhTV3ZlQVRS?=
 =?utf-8?B?NG1QTzdRSlA5Rkd5Q2hBWnVwZnBOTTJWVWhDaTlTK3JuL05vZXBTMlhNYjFU?=
 =?utf-8?B?aDNNSW1RVVdoNWIxQit6b1VXY3Fka0xpaHpyMVhBd1Zoa2pRTzZpUW9BdnZq?=
 =?utf-8?B?T1VDdnk3ak1kM0tNczdGTmo5T0VhZmlDY0RxSE82dDVtcFh6QnV1N0R3WHBh?=
 =?utf-8?B?c05BYW1lejVUNkluMDZGOW9wcGNyTE9SejUzQy9MNVljMUdEMHpQQnZqYTc3?=
 =?utf-8?B?a2dubHJiVWNicDBHd3BtVjBNWSs2ZUZGQ3hNMThTTWduZXpVSnBoOFJUTk1Y?=
 =?utf-8?B?QUF4cDdvZzM1TTZ0c2hyczJXdmh4bVRSeGhwckg1VjdXaWg3YlhGQ2Vab3FI?=
 =?utf-8?B?SUtCMmxYa1pObnVyQ2pWWVNHa0VZNCtQOHRyNDdKeXdOUlJES2Q5RVA4ZjJQ?=
 =?utf-8?B?WmEzUjA3SEZ1eGFVcUR4MndSc2JnUVU4RTU3M0dCdGlYTmxSeldBd2xmSGdk?=
 =?utf-8?B?bisrVTlVcDE3alVlb1NMMldnWnQ4TVJFTWtldGdneVo3WDI1ak9mWjNkN0JN?=
 =?utf-8?B?enlQbkRjdGZjZTVEM1RCNmZLT2NxdDlncW9YYlV5TlFkSTJnandGRnJmUjZl?=
 =?utf-8?B?MEx6QWV1aEpybndhb20vTWltK0FGUE9BSHJaaTMxT1labjQ2bDJESHZydUda?=
 =?utf-8?B?aGxxamhscnBsYUxEcUM3ZHZ4RElXUHArWXlWTHluOWVWVzBWZjljZkIvdTBF?=
 =?utf-8?B?WWtNVWx6cStiSkpHeVYrdmREYUFxY245MVhjQU12bVk1aEllcGpLQ3QzY1hy?=
 =?utf-8?B?Vk11MkFlVnRjRUJNTUtUbCtXOTVmY2FRZ1N4bnFUbTFZaEtnejZ6MEFYMVJm?=
 =?utf-8?B?d0ptMzJWK0psSitmYlZ5UmFJSHErVzlUbUdwNkgrdnpnRWRwNnpJK3YySnRu?=
 =?utf-8?B?MWxXRzdzaDR3Y2JZT0t3V3FXa0Y4OXg2VjQ5OVdlMVY1ZWFLMk5DN2NzMlpi?=
 =?utf-8?B?L0dWUkFtMlRmRzAyeldGL0h3NytjSTVxMUlwcHp5Y0pURU1maUs3azMyQUt5?=
 =?utf-8?Q?J0ElHtckXKGOT4wdXOSbUld6nMEu/rIb?=
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: 30 Jul 2024 17:50:58.2378
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 804672a3-39d4-435e-b0e5-08dcb0c02b18
X-MS-Exchange-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:
	BL6PEPF00022575.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8362

On 7/29/24 14:36, Julien Grall wrote:
> Hi Stewart,
> 
> On 29/07/2024 15:24, Stewart Hildebrand wrote:
>> Use the -finstrument-functions option to check that the stack pointer is
> 
> Is the feature supported by both clang and GCC?

Yes, I tested both.

> If so, which from versions?

gcc since at least 1998, not sure what version specifically.

clang since v2.8 (2010)

> 
> From README, this is what we currently support.
> 
>       - For ARM 32-bit:
>         - GCC 4.9 or later
>         - GNU Binutils 2.24 or later
>       - For ARM 64-bit:
>         - GCC 5.1 or later
>         - GNU Binutils 2.24 or later
> 
> We don't mention Clang, but I would expect a clang from 4-5 years should still be Arm (not cross-compile as we never fully added the support).

There is a way cross compile with clang today, but still using gnu
linker and such. Here's my clang build rune:

make -j $(nproc) \
    clang=y \
    CC="clang --target=aarch64-none-linux-gnu -march=armv8a+nocrypto" \
    CXX="clang++ --target=aarch64-none-linux-gnu -march=armv8a+nocrypto" \
    HOSTCC=clang \
    HOSTCXX=clang++ \
    XEN_TARGET_ARCH=arm64 \
    CROSS_COMPILE=aarch64-none-linux-gnu- \
    dist-xen

> 
> 
>> valid upon each function entry. Only enable it for debug builds due to
>> the overhead introduced.
> 
> How much overhead is it? We use debug builds during the dev cycle, so we need to make sure this is not noticeable.

Xen binary size without instrumentation: 1.3M
Xen binary size with instrumentation: 1.9M

Subjectively, the Xen boot time on ZCU102 hardware seems comparable.

On qemu-system-aarch64, unfortunately, I'm seeing about a 7x slowdown in
Xen boot time. It seems page allocation operations are particularly
affected.

> 
> In any case, it would be better if this new option is under its own kconfig options. We can separately decide whether it is on or off by default when CONFIG_DEBUG=y.

Will do. Given the significant overhead when running on qemu, I think I
must reluctantly suggest that it be off by default. For CI runs with
real hardware, we could turn it on.

> 
>>
>> Use per-cpu variables to store the stack base and nesting level. The
>> nesting level is used to avoid invoking __cyg_profile_func_enter
>> recursively.
>>
>> A check is added for whether per-cpu data has been initialized. Since
>> TPIDR_EL2 resets to an unknown value, initialize it to an invalid value.
>>
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>> ---
>> RFC: I only tested this on arm64. I still need to test with arm32.
>>
>> RFC: Should we put this under its own config option instead of reusing
>>       CONFIG_DEBUG?
> 
> See above.
> 
>>
>> RFC: Is there a better value for INVALID_PER_CPU_OFFSET? We can't use 0
>>       because 0 is a valid value for get_per_cpu_offset().
> 
> I would consider to use ~0 because this is very unlikely to be used as an offset (at least on arm64).

Yep, ~0 works, will do.

> 
>> ---
>>   xen/arch/arm/arch.mk             |  1 +
>>   xen/arch/arm/arm64/head.S        |  4 +++
>>   xen/arch/arm/domain.c            |  3 +++
>>   xen/arch/arm/include/asm/page.h  |  2 ++
>>   xen/arch/arm/include/asm/traps.h |  8 ++++++
>>   xen/arch/arm/setup.c             |  4 +++
>>   xen/arch/arm/smpboot.c           |  3 +++
>>   xen/arch/arm/traps.c             | 45 ++++++++++++++++++++++++++++++++
>>   8 files changed, 70 insertions(+)
>>
>> diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
>> index 022dcda19224..c39cb65d183d 100644
>> --- a/xen/arch/arm/arch.mk
>> +++ b/xen/arch/arm/arch.mk
>> @@ -12,6 +12,7 @@ CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access
>>   CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
>>   CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
>>   $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
>> +CFLAGS-$(CONFIG_DEBUG) += -finstrument-functions
>>     ifneq ($(filter command line environment,$(origin CONFIG_EARLY_PRINTK)),)
>>       $(error You must use 'make menuconfig' to enable/disable early printk now)
>> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
>> index 2fa07dc3a04b..4a332b9cbc7c 100644
>> --- a/xen/arch/arm/arm64/head.S
>> +++ b/xen/arch/arm/arm64/head.S
>> @@ -399,6 +399,10 @@ FUNC_LOCAL(cpu_init)
>>            * than SP_EL0.
>>            */
>>           msr spsel, #1
>> +
> 
> I would add a comment explaining what we are doing.

Will do.

> 
>> +        ldr   x0, =INVALID_PER_CPU_OFFSET
>> +        msr   tpidr_el2, x0
>> +
>>           ret
>>   END(cpu_init)
>>   diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>> index 7cfcefd27944..93ebe6e5f8af 100644
>> --- a/xen/arch/arm/domain.c
>> +++ b/xen/arch/arm/domain.c
>> @@ -26,6 +26,7 @@
>>   #include <asm/procinfo.h>
>>   #include <asm/regs.h>
>>   #include <asm/tee/tee.h>
>> +#include <asm/traps.h>
>>   #include <asm/vfp.h>
>>   #include <asm/vgic.h>
>>   #include <asm/vtimer.h>
>> @@ -328,6 +329,8 @@ void context_switch(struct vcpu *prev, struct vcpu *next)
>>         set_current(next);
>>   +    stack_set(next->arch.stack);
>> +
>>       prev = __context_switch(prev, next);
>>         schedule_tail(prev);
>> diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
>> index 69f817d1e68a..6b5aaf1eb3ff 100644
>> --- a/xen/arch/arm/include/asm/page.h
>> +++ b/xen/arch/arm/include/asm/page.h
>> @@ -7,6 +7,8 @@
>>   #include <asm/lpae.h>
>>   #include <asm/sysregs.h>
>>   +#define INVALID_PER_CPU_OFFSET            _AC(0x1, UL)
>> +
>>   /* Shareability values for the LPAE entries */
>>   #define LPAE_SH_NON_SHAREABLE 0x0
>>   #define LPAE_SH_UNPREDICTALE  0x1
>> diff --git a/xen/arch/arm/include/asm/traps.h b/xen/arch/arm/include/asm/traps.h
>> index 9a60dbf70e5b..13e6997c2643 100644
>> --- a/xen/arch/arm/include/asm/traps.h
>> +++ b/xen/arch/arm/include/asm/traps.h
>> @@ -118,6 +118,14 @@ static inline register_t sign_extend(const struct hsr_dabt dabt, register_t r)
>>     void finalize_instr_emulation(const struct instr_details *instr);
>>   +#ifdef CONFIG_DEBUG
>> +void stack_check_init(void);
>> +void stack_set(unsigned char *base);
>> +#else
>> +static inline void stack_check_init(void) { }
>> +static inline void stack_set(unsigned char *base) { }
>> +#endif
>> +
>>   #endif /* __ASM_ARM_TRAPS__ */
>>   /*
>>    * Local variables:
>> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
>> index 0c2fdaceaf21..07d07feff602 100644
>> --- a/xen/arch/arm/setup.c
>> +++ b/xen/arch/arm/setup.c
>> @@ -47,6 +47,7 @@
>>   #include <asm/setup.h>
>>   #include <xsm/xsm.h>
>>   #include <asm/acpi.h>
>> +#include <asm/traps.h>
>>     struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
>>   @@ -733,6 +734,8 @@ void asmlinkage __init start_xen(unsigned long boot_phys_offset,
>>       percpu_init_areas();
>>       set_processor_id(0); /* needed early, for smp_processor_id() */
>>   +    stack_check_init();
>> +
>>       /* Initialize traps early allow us to get backtrace when an error occurred */
>>       init_traps();
>>   @@ -924,6 +927,7 @@ void asmlinkage __init start_xen(unsigned long boot_phys_offset,
>>        * since the static one we're running on is about to be freed. */
>>       memcpy(idle_vcpu[0]->arch.cpu_info, get_cpu_info(),
>>              sizeof(struct cpu_info));
>> +    stack_set(idle_vcpu[0]->arch.stack);
>>       switch_stack_and_jump(idle_vcpu[0]->arch.cpu_info, init_done);
>>   }
>>   diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
>> index 04e363088d60..1c689f2caed7 100644
>> --- a/xen/arch/arm/smpboot.c
>> +++ b/xen/arch/arm/smpboot.c
>> @@ -30,6 +30,7 @@
>>   #include <asm/psci.h>
>>   #include <asm/acpi.h>
>>   #include <asm/tee/tee.h>
>> +#include <asm/traps.h>
>>     /* Override macros from asm/page.h to make them work with mfn_t */
>>   #undef virt_to_mfn
>> @@ -329,6 +330,8 @@ void asmlinkage start_secondary(void)
>>         set_processor_id(cpuid);
>>   +    stack_check_init();
>> +
>>       identify_cpu(&current_cpu_data);
>>       processor_setup();
>>   diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
>> index aac6c599f878..b4890eec7ec4 100644
>> --- a/xen/arch/arm/traps.c
>> +++ b/xen/arch/arm/traps.c
>> @@ -2325,6 +2325,51 @@ void asmlinkage leave_hypervisor_to_guest(void)
>>           arm_smccc_1_1_smc(ARM_SMCCC_ARCH_WORKAROUND_2_FID, 0, NULL);
>>   }
>>   +#ifdef CONFIG_DEBUG
> 
> Loooking at the code below. Aside the stack pointer part, nothing seems specific to Arm. So maybe this could be moved to common code?

Yes, I suppose so.

> 
>> +DEFINE_PER_CPU(unsigned int, stack_check_nesting);
>> +DEFINE_PER_CPU(unsigned char *, stack_base);
> 
> I think this could be "const unsigned char *" as the stack should not be modified directly.

Every time there's a vcpu context switch we will have a new stack.

> 
>> +
>> +void __attribute__((no_instrument_function)) stack_set(unsigned char *base)
>> +{
>> +    this_cpu(stack_base) = base;
>> +}
>> +
>> +void __init __attribute__((no_instrument_function)) stack_check_init(void)
>> +{
>> +    this_cpu(stack_check_nesting) = 0;
>> +    stack_set(init_data.stack);
>> +}
>> +
>> +__attribute__((no_instrument_function))
>> +void __cyg_profile_func_enter(void *this_fn, void *call_site)
>> +{
>> +    unsigned char *sp;
>> +
>> +    if ( get_per_cpu_offset() == INVALID_PER_CPU_OFFSET )
>> +        return;
>> +
>> +    asm volatile ("mov %0, sp" : "=r" (sp) );
>> +
>> +    if ( sp < this_cpu(stack_base) ||
>> +         sp > (this_cpu(stack_base) + STACK_SIZE) )
> 
> The top of the stack is used to store struct cpu_info. So you want to substract its size (see arch_vcpu_create()).

Will do.

> 
>> +    {
>> +        if ( this_cpu(stack_check_nesting) )
>> +            return;
>> +
>> +        this_cpu(stack_check_nesting)++;
> 
> Looking at the use, it only seems to be used as "print/panic once". So maybe use a bool to avoid any overflow.

It will only ever be incremented once. I'll still change it to a bool,
this should make it more obvious.

> 
>> +        printk("CPU %d stack pointer out of bounds (sp %#lx, stack base %#lx)\n",
>> +               smp_processor_id(), (uintptr_t)sp,
>> +               (uintptr_t)this_cpu(stack_base));
>> +        BUG();
> 
> I would consider to call panic().

panic() alone doesn't show the stack trace / call trace.

> But is it safe to call any of this if we blew the stack?

Nope, it sure isn't!

> IOW, should we have a buffer?

Yes. After some experimentation, I found that this printk and a WARN
(similar to BUG, but resumes execution and allows me to collect these
metrics) uses approximately 1632 bytes of stack. Assuming BUG uses a
similar amount of stack as WARN, and adding in a comfortable margin for
error, I'll add a 4096 byte buffer (i.e. invoke the print/BUG with 4096
bytes remaining on the stack).


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 18:00:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 18:00:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768039.1178779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYr9J-0006P9-0o; Tue, 30 Jul 2024 18:00:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768039.1178779; Tue, 30 Jul 2024 18:00: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 1sYr9I-0006P2-UN; Tue, 30 Jul 2024 18:00:36 +0000
Received: by outflank-mailman (input) for mailman id 768039;
 Tue, 30 Jul 2024 18:00: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=v2aj=O6=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1sYr9H-0006Ou-Kw
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 18:00:35 +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 9d8f0f37-4e9d-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 20:00:34 +0200 (CEST)
Received: from BL0PR01CA0018.prod.exchangelabs.com (2603:10b6:208:71::31) by
 DM6PR12MB4419.namprd12.prod.outlook.com (2603:10b6:5:2aa::20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7828.21; Tue, 30 Jul 2024 17:59:27 +0000
Received: from BL6PEPF0001AB50.namprd04.prod.outlook.com
 (2603:10b6:208:71:cafe::11) by BL0PR01CA0018.outlook.office365.com
 (2603:10b6:208:71::31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.34 via Frontend
 Transport; Tue, 30 Jul 2024 17:59:27 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF0001AB50.mail.protection.outlook.com (10.167.242.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7828.19 via Frontend Transport; Tue, 30 Jul 2024 17:59:27 +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, 30 Jul
 2024 12:59:22 -0500
Received: from [172.28.183.80] (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, 30 Jul 2024 12: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: 9d8f0f37-4e9d-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eKWP3MxQ1RH3t67j9YehFdOVCD3XXWjPqA5AQR+/kDgxW5La5+nNWF1o05UaKaSkT/SWaokybcoUCaXHMERHrVrotf56H58VvkJgb6w7yGI94Zd6k+8WqIeCCqXv66T/tQfv8KuVUt5o1X4B4ffayVlFf8JNCHmiUgfB/CEZ7x/s1Gx+/AnUR+jPU8Gf08/Jy+z4sQsRLKAIDT2j1roBkHOV+3wVSaTIGfeEf+dw2f+NVJn9KRiSyr8PFr2v5xfLKpPtDPPY0Ne330CivYiGNtinejZo8Oz7nSTJif95C42U2oUs9c/qIQta1y/zymwnl+3oQM3OHifVIrqLadaF5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2hLBkBNp6xGIMHq5CfzoN6NZid8uO2Qk/Xnt+K4+0/E=;
 b=QFnMsHCXKJQJLibVIKT9k6XGC5PtZbgJIlH9MaF7c6p7WvU47IMPn0RhRqU2TnGrOKgUrEdkU3D33GZiu2IyvRSzOsSHrT2TFFWlr1NlygZe04u+oIQsIts5qozLG/HpdHRto8i0MWx2GYxyi11MXFch/ty6oCgMUT8Qtq6VNMCga89S9bTH+QKQUOSmv2vokZ2OBpTHkmo5xwYkmUrwkM2eaj5Iaen9LKV4RbBkA/G+GlUICIWkVuJBSdMeQtY9TiasNdBYJK8A/Bi9zVFSamHIHfah/IxbcHRmZcl99/24jjxJnfFwv/OdKdN5xSCi/G1vRmt499T8TQev+Y/wEA==
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=2hLBkBNp6xGIMHq5CfzoN6NZid8uO2Qk/Xnt+K4+0/E=;
 b=ZMb9jBqUWF+cOPpAiqoyrCCJn5Dq24SyzXNaWVRQW9xxOUZ1vQlRc9E+Mbp592TMLzHLfO/sFJEdHKu83pC883f/ZU0605PB4O+4VJI6fzWYWKiMGIE3rhkKAffwuGH5oogC4vNhXgzSoEz+dfizlGEq6MqFnO2rlNHFEuvQ+dI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <0af03558-d6ec-4a5b-92bc-f088fd5697c7@amd.com>
Date: Tue, 30 Jul 2024 13:59:20 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH 3/3] xen/arm: stack check instrumentation
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>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-4-stewart.hildebrand@amd.com>
 <e49e00d0-0986-4382-a8c9-1934417eaffc@xen.org>
 <1cf7f9d4-9df8-423b-a033-8c93acb3cfce@amd.com>
 <8c013f47-56c9-4b43-8ec2-79230897fedb@xen.org>
Content-Language: en-US
In-Reply-To: <8c013f47-56c9-4b43-8ec2-79230897fedb@xen.org>
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: BL6PEPF0001AB50:EE_|DM6PR12MB4419:EE_
X-MS-Office365-Filtering-Correlation-Id: 975c9453-d3f2-42ae-6a88-08dcb0c15a5f
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?OGNpT2dGNWJHcjd5MDZ1eHhONVJzdXJkWFBGZkFMLzNZNjVoR0dnWHgySjJw?=
 =?utf-8?B?UkhiK0FKQlNFQjV3aTFNZkkrdzRRYkFjbFYwU3MzODBodHBNMHJmSS9PbW9s?=
 =?utf-8?B?eFVmK2hDei9tZUVXYm9EYlVCZkEyRHM4RXVqbDUreGtkMWVRSjlTY1JUcXRB?=
 =?utf-8?B?VzZzSVppVlpXL2tkWUMvNitldXR0ZGhHTkRXNG8veVV3elpoOXcrRzBFa09E?=
 =?utf-8?B?Y0hDVEk2UUNybXZEa2txOW9la0JXUFU1bktUZVJJYmI4MFFueVozTlZZK2pL?=
 =?utf-8?B?UDZ4Y1hIUWJlQ3RGMmM0MU5FWTZqanc0OXJVYk1PWnRnMVlvaUdBdWFJRXlF?=
 =?utf-8?B?NzM2Mko3WkxMekltTUdHcW80bmV4RkxGcVJGT050U1dLYVg2VGtDL01XTHBr?=
 =?utf-8?B?RG5YdCtJMk5HVWZtRHJmRnVrS20vMkdMb3ptaWlCb0QwRGdFejZDZlgzOEVn?=
 =?utf-8?B?QTFtVHJMVWF0enIxcFdOcTZJTDhDbko3amxpeFo3aDRTRDJHaWpTYXJHK1F1?=
 =?utf-8?B?VkJOZkcranVCK05mOVVQQlljU3RNNGpVd041S0FnaDhlTVNTcTBQVlByRnJz?=
 =?utf-8?B?WEtRU2dBVlV0YStETkY0ZjJIbFhhNElUaEFvRTJiVnp1OGpsaytZcHNkS0xT?=
 =?utf-8?B?a0RsWk9MK29haWszQ0dNMFVuRmxJcjN4SThsK2tnUVdHRWhUWWJpQjJzL2Jk?=
 =?utf-8?B?UlFRVUZiL1VIRXk2aTYzdVFzSmZpVFg0QjdiN2NZTFl2bDN6UFhiM1lSRXVD?=
 =?utf-8?B?SC9zNzdibkhmd0pxeHllT0E2ZU9pVlFOTGJTTEtTd1F6LzJpeG8zbDh4RnBk?=
 =?utf-8?B?Tnh3TnJnOUR2RTRuOXRyYUQzTHM0bElUM05lZnRuTnlCQnlCZCt3RHFzZ2xD?=
 =?utf-8?B?RVgxVHRWY3l3SVVrYk9VQkRsVFRjcHNUUmtCdVZQSTIzSmJLb1VUTjdLUWRk?=
 =?utf-8?B?NEQ3SzEwWThDWGQ4cWFKSDcwc1ZoUkNjMFlueDlkTStLWGRheHR0bTM3dkpm?=
 =?utf-8?B?cXBUcU9KQ3ozMUIvam5qUU9CalpUcDZGN3FDVHZqVlJ1Tzg0RjVrM1ZhVGd2?=
 =?utf-8?B?dUEycXpkekw3V3A5bWR5bDFMVW8xWDRJYUZzaWttL1JKRHBVNm5vRXVBa3Rk?=
 =?utf-8?B?cTdReHUvSU94NU1ONS9tRkZKUFlMVCs2eWRCd3pGQkRsME9tVWRNZ0JjM2pV?=
 =?utf-8?B?RFh0T0pPWFJ1WEEzajVKU0RReitaOU5mSyt4QlpiSmFtT0orSWpKVEh0SWxP?=
 =?utf-8?B?Sjlubk90VVV0bGZpUFJNZXlNdmJiNE1KRWNwVVFYQ29BMGJzRHIzMlFTa2dR?=
 =?utf-8?B?M3NianV1cDNFenBIYmJLMUtNYVdOK0tZeW8rbnl5aE45N2pMbTRHbmROWDlV?=
 =?utf-8?B?aHB4NjhGRmdlbzUxL2gwb1d6ZXZ5TEhkbFZZQXNHMlQ2YTBFZFBVRXB6cEds?=
 =?utf-8?B?VThySHFVeU01K1dIMXhJWEdxT0NsZ0FUaUQxQit5Y1pSOGppR05naUk2ei9q?=
 =?utf-8?B?aTNGOFhOamNtM0Z2Y0M2V3d6anpPdXdBVG1JWnFyY0tCaVlseDFiV0szQ0Rz?=
 =?utf-8?B?Y1VxTmViQ2tncEY2a1hmZDVrbGZNS1JpRFRDelI4cDRRa2tLL2RFR2FMQjFk?=
 =?utf-8?B?TzEvTnlGNXd5MkxFU05wVkMvMmRLVnBQSHRkVGpKZFVzZzlFNldGbWw2ZEwz?=
 =?utf-8?B?em1hbjl3ODFqdzR3Z1RONm9FeXJaanZxdm9LYzgyZmcwSE1QamNCeG41VlVD?=
 =?utf-8?B?bnNoakpML1E4Q1RCL21NQU9pMStqTG95aWRpenRXKzNsM3plTFd3enVZaldZ?=
 =?utf-8?B?ejk2ZnQ5bVNuMmk5MVkrTzZIR2J2eGc3eWZoc2dLNlYyMTFmdmVZMndKTjMy?=
 =?utf-8?B?akNaQ3NPRU1UNWxCWldUSXJuVkZBVjNzVmdKWHV6bm1nSWFmM3pBU1FQc0Z0?=
 =?utf-8?Q?9/rnOoFSn6mZGI4mnHasoL8ckRCEUbbJ?=
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: 30 Jul 2024 17:59:27.0522
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 975c9453-d3f2-42ae-6a88-08dcb0c15a5f
X-MS-Exchange-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:
	BL6PEPF0001AB50.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4419

On 7/29/24 16:37, Julien Grall wrote:
> Hi,
> 
> On 29/07/2024 20:40, Stewart Hildebrand wrote:
>> On 7/29/24 14:50, Julien Grall wrote:
>>> Hi again,
>>>
>>> On 29/07/2024 15:24, Stewart Hildebrand wrote:
>>>> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
>>>> index aac6c599f878..b4890eec7ec4 100644
>>>> --- a/xen/arch/arm/traps.c
>>>> +++ b/xen/arch/arm/traps.c
>>>> @@ -2325,6 +2325,51 @@ void asmlinkage leave_hypervisor_to_guest(void)
>>>>            arm_smccc_1_1_smc(ARM_SMCCC_ARCH_WORKAROUND_2_FID, 0, NULL);
>>>>    }
>>>>    +#ifdef CONFIG_DEBUG
>>>> +DEFINE_PER_CPU(unsigned int, stack_check_nesting);
>>>> +DEFINE_PER_CPU(unsigned char *, stack_base);
>>>
>>> While looking at the code, I just realized that this should be equivalent to current->arch.base.
>>
>> current->arch.stack
>>
>> That's true only after the idle vcpu stacks have been allocated.
>>
>>> So do we actually need stack_base?
>>
>> This is a way to enable stack instrumentation much earlier during boot
>> when we are still using the static boot stack.
> 
> Sure. But we are only partially checking the static boot stack.

The stack checking begins just a few lines into C world, after the
percpu_init_areas(), set_processor_id(), and stack_check_init() calls in
arch/arm/setup.c:start_xen().

> I am not entirely sure if there is any value for that because at that point the stack would be barely used.

The entirety of start_xen() uses the boot stack, and it makes plenty of
device tree parsing calls (where there is recursion) and performs domain
creation, which hits the stack significantly.

arch/arm/dom0less-build.c: In function ‘construct_domU’:
arch/arm/dom0less-build.c:742:19: warning: stack usage is 7824 bytes [-Wstack-usage=]
  742 | static int __init construct_domU(struct domain *d,
      |                   ^~~~~~~~~~~~~~

arch/arm/domain_build.c: In function ‘make_memory_node’:
arch/arm/domain_build.c:788:12: warning: stack usage is 4720 bytes [-Wstack-usage=]
  788 | int __init make_memory_node(const struct kernel_info *kinfo, int addrcells,
      |            ^~~~~~~~~~~~~~~~

arch/arm/domain_build.c: In function ‘construct_dom0’:
arch/arm/domain_build.c:2120:19: warning: stack usage is 7776 bytes [-Wstack-usage=]
 2120 | static int __init construct_dom0(struct domain *d)
      |                   ^~~~~~~~~~~~~~

> 
> Anyway, this is only for debug build so far, so I am ok to keep it.
> 
> Cheers,
> 



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 18:07:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 18:07:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768048.1178789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYrGM-0007OG-Rm; Tue, 30 Jul 2024 18:07:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768048.1178789; Tue, 30 Jul 2024 18: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 1sYrGM-0007O9-Ov; Tue, 30 Jul 2024 18:07:54 +0000
Received: by outflank-mailman (input) for mailman id 768048;
 Tue, 30 Jul 2024 18:07:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1sYrGL-0007Nk-LF
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 18:07:53 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYrGK-0002s5-RG; Tue, 30 Jul 2024 18:07:52 +0000
Received: from [15.248.2.25] (helo=[10.24.67.29])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1sYrGK-0002Pk-KF; Tue, 30 Jul 2024 18:07:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=q+uEIXsYah8wV9Ej7qUYbl4VVaqhYo56k3Bk1ndEEJA=; b=a3d6Me8FxoErkTCsS06CI1CL6I
	M3rkw2224C7db9lJQFaeMwZTJwNmShJ1WZNaz1CNjxYy4st7ImuyYypUCHy0LDa1IwRit7vGgIwi9
	dnzcl6uaDx2sKjJUK1QIoxcixqV5eX0WHHSU6Izi656jS6clGvH2fLkYmD/yPLhbMpzI=;
Message-ID: <6a71cff1-feac-44cd-9233-9ed474e871e4@xen.org>
Date: Tue, 30 Jul 2024 19:07:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xen/arm: stack check instrumentation
Content-Language: en-GB
To: Stewart Hildebrand <stewart.hildebrand@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: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-4-stewart.hildebrand@amd.com>
 <d313f39a-f5aa-4611-975e-bc64759bbd01@xen.org>
 <23fe4756-4e5c-47f8-b9cc-101b7b8d116f@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <23fe4756-4e5c-47f8-b9cc-101b7b8d116f@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 30/07/2024 18:50, Stewart Hildebrand wrote:
> On 7/29/24 14:36, Julien Grall wrote:
>> Hi Stewart,
>>
>> On 29/07/2024 15:24, Stewart Hildebrand wrote:
>>> Use the -finstrument-functions option to check that the stack pointer is
>>
>> Is the feature supported by both clang and GCC?
> 
> Yes, I tested both.
> 
>> If so, which from versions?
> 
> gcc since at least 1998, not sure what version specifically.
> 
> clang since v2.8 (2010)

That's quite old :). Thanks for checking.

>>
>> In any case, it would be better if this new option is under its own kconfig options. We can separately decide whether it is on or off by default when CONFIG_DEBUG=y.
> 
> Will do. Given the significant overhead when running on qemu, I think I
> must reluctantly suggest that it be off by default. For CI runs with
> real hardware, we could turn it on.

That makes sense.

>>> Use per-cpu variables to store the stack base and nesting level. The
>>> nesting level is used to avoid invoking __cyg_profile_func_enter
>>> recursively.
>>>
>>> A check is added for whether per-cpu data has been initialized. Since
>>> TPIDR_EL2 resets to an unknown value, initialize it to an invalid value.
>>>
>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>> ---
>>> RFC: I only tested this on arm64. I still need to test with arm32.
>>>
>>> RFC: Should we put this under its own config option instead of reusing
>>>        CONFIG_DEBUG?
>>
>> See above.
>>
>>>
>>> RFC: Is there a better value for INVALID_PER_CPU_OFFSET? We can't use 0
>>>        because 0 is a valid value for get_per_cpu_offset().
>>
>> I would consider to use ~0 because this is very unlikely to be used as an offset (at least on arm64).
> 
> Yep, ~0 works, will do.
> 
>>
>>> ---
>>>    xen/arch/arm/arch.mk             |  1 +
>>>    xen/arch/arm/arm64/head.S        |  4 +++
>>>    xen/arch/arm/domain.c            |  3 +++
>>>    xen/arch/arm/include/asm/page.h  |  2 ++
>>>    xen/arch/arm/include/asm/traps.h |  8 ++++++
>>>    xen/arch/arm/setup.c             |  4 +++
>>>    xen/arch/arm/smpboot.c           |  3 +++
>>>    xen/arch/arm/traps.c             | 45 ++++++++++++++++++++++++++++++++
>>>    8 files changed, 70 insertions(+)
>>>
>>> diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
>>> index 022dcda19224..c39cb65d183d 100644
>>> --- a/xen/arch/arm/arch.mk
>>> +++ b/xen/arch/arm/arch.mk
>>> @@ -12,6 +12,7 @@ CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access
>>>    CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
>>>    CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
>>>    $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)
>>> +CFLAGS-$(CONFIG_DEBUG) += -finstrument-functions
>>>      ifneq ($(filter command line environment,$(origin CONFIG_EARLY_PRINTK)),)
>>>        $(error You must use 'make menuconfig' to enable/disable early printk now)
>>> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
>>> index 2fa07dc3a04b..4a332b9cbc7c 100644
>>> --- a/xen/arch/arm/arm64/head.S
>>> +++ b/xen/arch/arm/arm64/head.S
>>> @@ -399,6 +399,10 @@ FUNC_LOCAL(cpu_init)
>>>             * than SP_EL0.
>>>             */
>>>            msr spsel, #1
>>> +
>>
>> I would add a comment explaining what we are doing.
> 
> Will do.
> 
>>
>>> +        ldr   x0, =INVALID_PER_CPU_OFFSET
>>> +        msr   tpidr_el2, x0
>>> +
>>>            ret
>>>    END(cpu_init)
>>>    diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>>> index 7cfcefd27944..93ebe6e5f8af 100644
>>> --- a/xen/arch/arm/domain.c
>>> +++ b/xen/arch/arm/domain.c
>>> @@ -26,6 +26,7 @@
>>>    #include <asm/procinfo.h>
>>>    #include <asm/regs.h>
>>>    #include <asm/tee/tee.h>
>>> +#include <asm/traps.h>
>>>    #include <asm/vfp.h>
>>>    #include <asm/vgic.h>
>>>    #include <asm/vtimer.h>
>>> @@ -328,6 +329,8 @@ void context_switch(struct vcpu *prev, struct vcpu *next)
>>>          set_current(next);
>>>    +    stack_set(next->arch.stack);
>>> +
>>>        prev = __context_switch(prev, next);
>>>          schedule_tail(prev);
>>> diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
>>> index 69f817d1e68a..6b5aaf1eb3ff 100644
>>> --- a/xen/arch/arm/include/asm/page.h
>>> +++ b/xen/arch/arm/include/asm/page.h
>>> @@ -7,6 +7,8 @@
>>>    #include <asm/lpae.h>
>>>    #include <asm/sysregs.h>
>>>    +#define INVALID_PER_CPU_OFFSET            _AC(0x1, UL)
>>> +
>>>    /* Shareability values for the LPAE entries */
>>>    #define LPAE_SH_NON_SHAREABLE 0x0
>>>    #define LPAE_SH_UNPREDICTALE  0x1
>>> diff --git a/xen/arch/arm/include/asm/traps.h b/xen/arch/arm/include/asm/traps.h
>>> index 9a60dbf70e5b..13e6997c2643 100644
>>> --- a/xen/arch/arm/include/asm/traps.h
>>> +++ b/xen/arch/arm/include/asm/traps.h
>>> @@ -118,6 +118,14 @@ static inline register_t sign_extend(const struct hsr_dabt dabt, register_t r)
>>>      void finalize_instr_emulation(const struct instr_details *instr);
>>>    +#ifdef CONFIG_DEBUG
>>> +void stack_check_init(void);
>>> +void stack_set(unsigned char *base);
>>> +#else
>>> +static inline void stack_check_init(void) { }
>>> +static inline void stack_set(unsigned char *base) { }
>>> +#endif
>>> +
>>>    #endif /* __ASM_ARM_TRAPS__ */
>>>    /*
>>>     * Local variables:
>>> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
>>> index 0c2fdaceaf21..07d07feff602 100644
>>> --- a/xen/arch/arm/setup.c
>>> +++ b/xen/arch/arm/setup.c
>>> @@ -47,6 +47,7 @@
>>>    #include <asm/setup.h>
>>>    #include <xsm/xsm.h>
>>>    #include <asm/acpi.h>
>>> +#include <asm/traps.h>
>>>      struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
>>>    @@ -733,6 +734,8 @@ void asmlinkage __init start_xen(unsigned long boot_phys_offset,
>>>        percpu_init_areas();
>>>        set_processor_id(0); /* needed early, for smp_processor_id() */
>>>    +    stack_check_init();
>>> +
>>>        /* Initialize traps early allow us to get backtrace when an error occurred */
>>>        init_traps();
>>>    @@ -924,6 +927,7 @@ void asmlinkage __init start_xen(unsigned long boot_phys_offset,
>>>         * since the static one we're running on is about to be freed. */
>>>        memcpy(idle_vcpu[0]->arch.cpu_info, get_cpu_info(),
>>>               sizeof(struct cpu_info));
>>> +    stack_set(idle_vcpu[0]->arch.stack);
>>>        switch_stack_and_jump(idle_vcpu[0]->arch.cpu_info, init_done);
>>>    }
>>>    diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
>>> index 04e363088d60..1c689f2caed7 100644
>>> --- a/xen/arch/arm/smpboot.c
>>> +++ b/xen/arch/arm/smpboot.c
>>> @@ -30,6 +30,7 @@
>>>    #include <asm/psci.h>
>>>    #include <asm/acpi.h>
>>>    #include <asm/tee/tee.h>
>>> +#include <asm/traps.h>
>>>      /* Override macros from asm/page.h to make them work with mfn_t */
>>>    #undef virt_to_mfn
>>> @@ -329,6 +330,8 @@ void asmlinkage start_secondary(void)
>>>          set_processor_id(cpuid);
>>>    +    stack_check_init();
>>> +
>>>        identify_cpu(&current_cpu_data);
>>>        processor_setup();
>>>    diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
>>> index aac6c599f878..b4890eec7ec4 100644
>>> --- a/xen/arch/arm/traps.c
>>> +++ b/xen/arch/arm/traps.c
>>> @@ -2325,6 +2325,51 @@ void asmlinkage leave_hypervisor_to_guest(void)
>>>            arm_smccc_1_1_smc(ARM_SMCCC_ARCH_WORKAROUND_2_FID, 0, NULL);
>>>    }
>>>    +#ifdef CONFIG_DEBUG
>>
>> Loooking at the code below. Aside the stack pointer part, nothing seems specific to Arm. So maybe this could be moved to common code?
> 
> Yes, I suppose so.
> 
>>
>>> +DEFINE_PER_CPU(unsigned int, stack_check_nesting);
>>> +DEFINE_PER_CPU(unsigned char *, stack_base);
>>
>> I think this could be "const unsigned char *" as the stack should not be modified directly.
> 
> Every time there's a vcpu context switch we will have a new stack.

I am not sure I follow. "const unsigned char *" should still allow you 
to update stack_base. It will just prevent anyone to try to write to 
modify the stack via stack_base.

> 
>>
>>> +
>>> +void __attribute__((no_instrument_function)) stack_set(unsigned char *base)
>>> +{
>>> +    this_cpu(stack_base) = base;
>>> +}
>>> +
>>> +void __init __attribute__((no_instrument_function)) stack_check_init(void)
>>> +{
>>> +    this_cpu(stack_check_nesting) = 0;
>>> +    stack_set(init_data.stack);
>>> +}
>>> +
>>> +__attribute__((no_instrument_function))
>>> +void __cyg_profile_func_enter(void *this_fn, void *call_site)
>>> +{
>>> +    unsigned char *sp;
>>> +
>>> +    if ( get_per_cpu_offset() == INVALID_PER_CPU_OFFSET )
>>> +        return;
>>> +
>>> +    asm volatile ("mov %0, sp" : "=r" (sp) );
>>> +
>>> +    if ( sp < this_cpu(stack_base) ||
>>> +         sp > (this_cpu(stack_base) + STACK_SIZE) )
>>
>> The top of the stack is used to store struct cpu_info. So you want to substract its size (see arch_vcpu_create()).
> 
> Will do.
> 
>>
>>> +    {
>>> +        if ( this_cpu(stack_check_nesting) )
>>> +            return;
>>> +
>>> +        this_cpu(stack_check_nesting)++;
>>
>> Looking at the use, it only seems to be used as "print/panic once". So maybe use a bool to avoid any overflow.
> 
> It will only ever be incremented once. I'll still change it to a bool,
> this should make it more obvious.
> 
>>
>>> +        printk("CPU %d stack pointer out of bounds (sp %#lx, stack base %#lx)\n",
>>> +               smp_processor_id(), (uintptr_t)sp,
>>> +               (uintptr_t)this_cpu(stack_base));
>>> +        BUG();
>>
>> I would consider to call panic().
> 
> panic() alone doesn't show the stack trace / call trace.

Ah good point. But TBH, I have never really understood why panic() 
didn't return a call stack. There are a few places where I found 
beneficial when debugging.

Anyway, I guess this could be handled separately.

> 
>> But is it safe to call any of this if we blew the stack?
> 
> Nope, it sure isn't!
> 
>> IOW, should we have a buffer?
> 
> Yes. After some experimentation, I found that this printk and a WARN
> (similar to BUG, but resumes execution and allows me to collect these
> metrics) uses approximately 1632 bytes of stack. Assuming BUG uses a
> similar amount of stack as WARN, and adding in a comfortable margin for
> error, I'll add a 4096 byte buffer (i.e. invoke the print/BUG with 4096
> bytes remaining on the stack).

AFAICT, the stack on Arm is 32KB. So we 1/8 of the stack as a buffer. Do 
you know the current stack use in a normal setup (e.g. boot a guest)?

Anyway, so long the feature is not enabled in production, then it might 
be ok to steal 4KB. We could increase the stack if we see any issue.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 20:12:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 20:12:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768061.1178801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYtCq-0008OW-FC; Tue, 30 Jul 2024 20:12:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768061.1178801; Tue, 30 Jul 2024 20:12:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYtCq-0008OP-Bz; Tue, 30 Jul 2024 20:12:24 +0000
Received: by outflank-mailman (input) for mailman id 768061;
 Tue, 30 Jul 2024 20:12: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=v2aj=O6=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1sYtCo-0008OJ-Ve
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 20:12:23 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20601.outbound.protection.outlook.com
 [2a01:111:f403:2409::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05fb38c7-4eb0-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 22:12:20 +0200 (CEST)
Received: from SA9PR13CA0127.namprd13.prod.outlook.com (2603:10b6:806:27::12)
 by CH3PR12MB7572.namprd12.prod.outlook.com (2603:10b6:610:144::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.28; Tue, 30 Jul
 2024 20:12:15 +0000
Received: from SN1PEPF000252A4.namprd05.prod.outlook.com
 (2603:10b6:806:27:cafe::54) by SA9PR13CA0127.outlook.office365.com
 (2603:10b6:806:27::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.19 via Frontend
 Transport; Tue, 30 Jul 2024 20:12:15 +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.7828.19 via Frontend Transport; Tue, 30 Jul 2024 20:12:14 +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, 30 Jul
 2024 15:12:14 -0500
Received: from [172.28.183.80] (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, 30 Jul 2024 15: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: 05fb38c7-4eb0-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R97Rpde0bUQylQbPiBJDWnNxXGjp9ul8tvSIG4xqKOyjJRyqT70ixG2/VVCbf0SJa9O/kORveiUDT0rOPQc3xAREZsfELOQfAiLTK71wz9plRpy72qxBv7v2lVjSFYCTQNU0qoM5rsYMvyin3ik3N6Xiy9CJkEJbBfkGMVpMGP/c75GwyKdQCMrA+udZyJe1xuE7b/Ep9xZuv7755mi3OuCcRj6605k7QQtvlQRJjRhBlRL8z0fHheVDmG0pCeW1SqUrtD1BVxA6537xMraqji6FKQg1LTqpMUcxUol/sHwxVEHc6n102bmyiL9ZVn3UDBzG/GcSSAi8ZOYAFygcag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fc33GMnABJISCtJcK0V6+XTh3zwvOnqOkgapOFYlwIo=;
 b=J02dY8lxHq0CiqDlX9V0wlhNqVpGb6+dyeXbEbZ5E4kZoE4joguzyua67FgtCLkzXWlWMCl7/ulw2SIp2s5XX+ht54X6zqQTYweajJZqjhee0qBEkmumBhm1W87a7D3OFSGYVrEplRhl/7UBk3ieJbi2YrI1S9j9wBsuhng+gzjpiF1IWD5G4qaRR4NFEsc1xU4BL6tozOqb268Bw8L4HFba9pzI/ww3liZ3nWz6TCYOabc7cmmJnJkuxG8QEpay6kixeiaU23c4dMujdS5gtBkA1wDFH4ktiWvsJkhe4S/ejl5eY/wj08G3dtVW8gB6c7ZRUgjNhuEFqbwRyfUlBA==
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=fc33GMnABJISCtJcK0V6+XTh3zwvOnqOkgapOFYlwIo=;
 b=ZTCWPth7p2e76QlDlkqCtpoyIu3CEHTMYWd3XGFTBzBlPmbdIXS/shAZVLxoaosE7xe9OOaq0tfg8vA56+506zbJZr/Hs3hrv4qm7LyN5SUwXBR7GqQVS6TaYVgwGI3PVZtyOiYN/2h2B9IusM0JvQrsZyIVyhaB5Aq9bi7lRS0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <a3dd3ed1-ba8c-4776-b9b5-926e30651e5d@amd.com>
Date: Tue, 30 Jul 2024 16:12:07 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xen/arm: stack check instrumentation
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>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <20240729142421.137283-4-stewart.hildebrand@amd.com>
 <d313f39a-f5aa-4611-975e-bc64759bbd01@xen.org>
 <23fe4756-4e5c-47f8-b9cc-101b7b8d116f@amd.com>
 <6a71cff1-feac-44cd-9233-9ed474e871e4@xen.org>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <6a71cff1-feac-44cd-9233-9ed474e871e4@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000252A4:EE_|CH3PR12MB7572:EE_
X-MS-Office365-Filtering-Correlation-Id: 772767dc-d73d-4ebc-8f21-08dcb0d3e78c
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?SGM5OEJsZldQWVd4ZGg1OVkxZDJaQS9WeDFJdGUveHAxbnd5ZGYxY0M5QzRP?=
 =?utf-8?B?Ui9hZGdtQm1zNkNQQkdoS1VybEZFbHN0Zm1MY3F4WTc5L2d1VjdmMUwxR2p3?=
 =?utf-8?B?U0NPVVE1bHJtQUwwaGFiaHg4YXQwZ2crWWtzaXNRUTJUeldDb1ZVWmJsLytM?=
 =?utf-8?B?U0U4SlFNRnhjb25veDdpUUhBVzhGZTE1MkZkdE9pT0VwWTdqOUpEV0RMc3NW?=
 =?utf-8?B?MnRVN3dLTWNsYWNRSnFyOHd3b1JEOUFjNERwVm4rRUVoYWJiTE00ditFdERz?=
 =?utf-8?B?aGg5dXBvbGhQS2hiTUpEL3VCbXJTUGhXVEZaR0FyTVhDanE2RnN1OU9TTGR0?=
 =?utf-8?B?dW1HUWVVcDZkSFZUUm82eUpvci9XNVRDRHdKTmF1QnZOMHZ6TFpuN3dhNUpW?=
 =?utf-8?B?SmZITEppSEI0TTZNb0l3WS9jVndxSTBhYmY4Tkdva3lueU50blJlVUNIemow?=
 =?utf-8?B?RG5mMlBGWkd3NE1mZDFubmFVeWhnMnlXcG95a2tOT29Nd0dGbTFmNmdhTHRt?=
 =?utf-8?B?VVBIVTI5RGNROVJrWG9oTkVSYWlzcVRVQy81eDhkNzZDWUxEM0U0WjdnKzlt?=
 =?utf-8?B?TzNwWGRYWjlPSVM2elJDUm1nOTUzVENHc2lrRm9FaDRSajRsaHMwS09ObEc2?=
 =?utf-8?B?YXB2S1pXUjhtbkVsa0JvUTZvaW0za0V3OG85MUxQbkIzdHAxQWpxY3g3L2dY?=
 =?utf-8?B?T3pmaXBXSUhJdFNoc0t4UmtuWEFBMW9meEdUNXo2VGZMejdaUEJQeWZCbytB?=
 =?utf-8?B?emJUTmVCRU4xRFhCSm81ZGZxUmhZL0FWWjlaVGs1R0xCdDFXQ3kyT0xCRDYy?=
 =?utf-8?B?cHE4WXdwbFYxem5yOHUyUnNrNXAzMG9iUEhaNW9hdHljWklRRUM5SzErQWNC?=
 =?utf-8?B?OFZ5VlhhanhGWHJmblV0RW5rZGFvY1piV242VDJieEdOY1ZsRkRjTGQ3WW1V?=
 =?utf-8?B?SnV0TEovS2R5SVZyQjk1aDZKc3RUWlN6QlJndk9ldng5Z0lSbzRUSHpTQTAy?=
 =?utf-8?B?UzJFVno0K3hOYnY2SndsVUszeHFlYlpsWHJqQkozUVM3ZGhzM2lWQ3Bobk9T?=
 =?utf-8?B?OGlhL3V1SVN6aTV3aE13cWJGNWNZU1VkTXg3NnM3VUN4alpYc05DSFRHbjFB?=
 =?utf-8?B?c1B1NmdLT3hldVJYNVNHUjV5aWVrSEZnRmd5bCtiOUZHTld5K2FXQXhLa1BX?=
 =?utf-8?B?SVlBWFdTWmRkcFl5MGFsb1BONHdxVDVQL3RuN3JnWkhlejFGWmQ3eWRrcm9v?=
 =?utf-8?B?T1lyVGRNNjNOYlJVQmxnNjgwWUFEYWwzSUQ2c1oyRXIwTm5YS0dOVjNqVmlC?=
 =?utf-8?B?ck12SUd3M1BxRXhFdkdwcTRpRmFSZDl4bVBDSE1pZUdlREszT2kxMzV6c0x2?=
 =?utf-8?B?RHRQUit6QjBNc2J6Y3lSOXpiQkdQd3RZNjJDdEZuaXlKbVVkamVGM2hRVktt?=
 =?utf-8?B?TXhzeWxiSEZvMmJGNWFkN0FSRTA2b0laaXdiYU96UVdxeHlhR3E3VmR0UFJp?=
 =?utf-8?B?aHVvUDVMZzQ1TklDdXRsS3JMTTE5WXhnek0vOFFVZlQ1eVVSeXB0VVB6cjNG?=
 =?utf-8?B?NmduT29HN0ZwdXdGeGh0Y1hGbzJIOXVqcGw3MlBKVi9JN0lHZ1NMZGFvRnQ2?=
 =?utf-8?B?M1g1eThpVDVhNVpjSUgyaWMzRWRMbmx2TmlpVVgrakhtWVdKbUZDTnAvL1RF?=
 =?utf-8?B?UVJTTk43SFVWMnBWS215VHVadFJkRHdnckQvZnF4bXkySjJZcDBFcTNqdFhi?=
 =?utf-8?B?NFBLMVhDaHB0aThNZk1qcWRrK3dKeHJpdjJpTTNxY1JzWEFIemtFcE40Umh3?=
 =?utf-8?B?R3liU1BQOWJleWJ4ODYvQ2VSWjlIQUpZaHFqdWpleTBaL2MyRzhyaXFvaENi?=
 =?utf-8?B?bmlUSmFkekVyT0pBQ3hpWHQ5cHBJUGdLRE55TnA5ZGxFS2JaeHJQV1lTY1NE?=
 =?utf-8?Q?F7UmENZTvXRhdQqiKDCzbUIrfOR0m1eI?=
X-Forefront-Antispam-Report:
	CIP:165.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: 30 Jul 2024 20:12:14.8323
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 772767dc-d73d-4ebc-8f21-08dcb0d3e78c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: CH3PR12MB7572

On 7/30/24 14:07, Julien Grall wrote:
> Hi,
> 
> On 30/07/2024 18:50, Stewart Hildebrand wrote:
>> On 7/29/24 14:36, Julien Grall wrote:
>>> Hi Stewart,
>>>
>>> On 29/07/2024 15:24, Stewart Hildebrand wrote:
>>>> +DEFINE_PER_CPU(unsigned int, stack_check_nesting);
>>>> +DEFINE_PER_CPU(unsigned char *, stack_base);
>>>
>>> I think this could be "const unsigned char *" as the stack should not be modified directly.
>>
>> Every time there's a vcpu context switch we will have a new stack.
> 
> I am not sure I follow. "const unsigned char *" should still allow you to update stack_base. It will just prevent anyone to try to write to modify the stack via stack_base.

Ah, of course. You're right. I'll change it to "const unsigned char *".

> 
>>
>>>
>>>> +
>>>> +void __attribute__((no_instrument_function)) stack_set(unsigned char *base)
>>>> +{
>>>> +    this_cpu(stack_base) = base;
>>>> +}
>>>> +
>>>> +void __init __attribute__((no_instrument_function)) stack_check_init(void)
>>>> +{
>>>> +    this_cpu(stack_check_nesting) = 0;
>>>> +    stack_set(init_data.stack);
>>>> +}
>>>> +
>>>> +__attribute__((no_instrument_function))
>>>> +void __cyg_profile_func_enter(void *this_fn, void *call_site)
>>>> +{
>>>> +    unsigned char *sp;
>>>> +
>>>> +    if ( get_per_cpu_offset() == INVALID_PER_CPU_OFFSET )
>>>> +        return;
>>>> +
>>>> +    asm volatile ("mov %0, sp" : "=r" (sp) );
>>>> +
>>>> +    if ( sp < this_cpu(stack_base) ||
>>>> +         sp > (this_cpu(stack_base) + STACK_SIZE) )
>>>
>>> The top of the stack is used to store struct cpu_info. So you want to substract its size (see arch_vcpu_create()).
>>
>> Will do.
>>
>>>
>>>> +    {
>>>> +        if ( this_cpu(stack_check_nesting) )
>>>> +            return;
>>>> +
>>>> +        this_cpu(stack_check_nesting)++;
>>>
>>> Looking at the use, it only seems to be used as "print/panic once". So maybe use a bool to avoid any overflow.
>>
>> It will only ever be incremented once. I'll still change it to a bool,
>> this should make it more obvious.
>>
>>>
>>>> +        printk("CPU %d stack pointer out of bounds (sp %#lx, stack base %#lx)\n",
>>>> +               smp_processor_id(), (uintptr_t)sp,
>>>> +               (uintptr_t)this_cpu(stack_base));
>>>> +        BUG();
>>>
>>> I would consider to call panic().
>>
>> panic() alone doesn't show the stack trace / call trace.
> 
> Ah good point. But TBH, I have never really understood why panic() didn't return a call stack. There are a few places where I found beneficial when debugging.
> 
> Anyway, I guess this could be handled separately.
> 
>>
>>> But is it safe to call any of this if we blew the stack?
>>
>> Nope, it sure isn't!
>>
>>> IOW, should we have a buffer?
>>
>> Yes. After some experimentation, I found that this printk and a WARN
>> (similar to BUG, but resumes execution and allows me to collect these
>> metrics) uses approximately 1632 bytes of stack. Assuming BUG uses a
>> similar amount of stack as WARN, and adding in a comfortable margin for
>> error, I'll add a 4096 byte buffer (i.e. invoke the print/BUG with 4096
>> bytes remaining on the stack).
> 
> AFAICT, the stack on Arm is 32KB. So we 1/8 of the stack as a buffer. Do you know the current stack use in a normal setup (e.g. boot a guest)?

In my particular test case simply booting a dom0, it uses about 14k of
stack. Of course this could vary with booting dom0less domUs, complexity
of device tree parsing, etc.

> 
> Anyway, so long the feature is not enabled in production, then it might be ok to steal 4KB. We could increase the stack if we see any issue.
> 
> Cheers,
> 



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 20:40:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 20:40:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768069.1178812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYteC-0004TC-Jr; Tue, 30 Jul 2024 20:40:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768069.1178812; Tue, 30 Jul 2024 20: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 1sYteC-0004T5-Gv; Tue, 30 Jul 2024 20:40:40 +0000
Received: by outflank-mailman (input) for mailman id 768069;
 Tue, 30 Jul 2024 20: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=3jiA=O6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sYteB-0004Sz-DI
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 20:40:39 +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 fa5dc8a8-4eb3-11ef-bc01-fd08da9f4363;
 Tue, 30 Jul 2024 22:40:38 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4281e3b2f72so21481145e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 13:40:38 -0700 (PDT)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-427fb7bdfa0sm258990045e9.14.2024.07.30.13.40.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 13:40: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: fa5dc8a8-4eb3-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722372037; x=1722976837; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bydnm9uuY6+8KZl9W1OMHbSauv6isBLhyHeiQbRtl6M=;
        b=TWNjOMdQxLfMmSaaI2wX19DS3jJA6IGNnfh0E/BR10dtcA0n1vU5FoptB7Ro5eX0UB
         ruzywSWQb83GIUJLb4J+uBFoWLlB+skY5ia4/NUYXT7HtDLYiItTOSIStSCr6siH0ZvD
         K6cPhtUIzTtqa6DweWoVVAS4cPGU9SEdSlhRc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722372037; x=1722976837;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bydnm9uuY6+8KZl9W1OMHbSauv6isBLhyHeiQbRtl6M=;
        b=iqGdquSkHdyZObEWjSXPjlG39Mh0SOJFu+wSsNF6SxV9ks80vtOfGWL6MdSQqFjYdT
         xNvN+gR61btpAOYyZXFAhQbsh8MaczvNau2T3Nl/Ptela8E5zde1Y14mnOPT+11ngMHl
         C7EHo77QU93J0UnF3t/Pi4lK5JBga+q7XNPjlNmcAHXk6CoQp5WiLnxGclsku37ry9DB
         ztjhIT1wfKacoGGDVyrW5GrDkgoysQ4CRmxIBxQZj6DEuf8t/h5TG83exOowrC2wRu40
         mH2LjMNXdDz62wnB6B5LdurEIg1GoJYcHvECUs/RtbYo2ppEiXKw5HdfQTyTjaRdZAdW
         ZlHA==
X-Gm-Message-State: AOJu0YwzCHeNty/W3kEHyTSTwtgXKtr1uMV6XIHQxIyjvYp1m6QUgDGj
	ZXcleGdUiZL4NntkkEBaH+CrBezZqyQmnMAqjCHkkXjk2gpUcvhTj5S+x6PAQ28=
X-Google-Smtp-Source: AGHT+IG1gAQ/x30HKttfGCBofvDFLaxaZ25sup/tBnpi1+9ORE4uT0Zxkm/xDNrN4IVaiktrxhB+Bw==
X-Received: by 2002:a05:600c:a49:b0:426:623f:34ae with SMTP id 5b1f17b1804b1-42811d8a865mr81576545e9.16.1722372037333;
        Tue, 30 Jul 2024 13:40:37 -0700 (PDT)
Message-ID: <dceb52ce-407f-4c41-924e-9e122a0eaf3a@citrix.com>
Date: Tue, 30 Jul 2024 21:40:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/3] Stack checking on Arm
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>
References: <20240729142421.137283-1-stewart.hildebrand@amd.com>
 <2cfb4a5c-dff8-4202-80dd-c546d5d6bc6d@xen.org>
 <alpine.DEB.2.22.394.2407291333550.4857@ubuntu-linux-20-04-desktop>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <alpine.DEB.2.22.394.2407291333550.4857@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/07/2024 10:37 pm, Stefano Stabellini wrote:
> On Mon, 29 Jul 2024, Julien Grall wrote:
>> Hi,
>>
>> On 29/07/2024 15:24, Stewart Hildebrand wrote:
>>> This series introduces stack check instrumentation on Arm. This is
>>> helpful for safety certification efforts. I'm sending this in an RFC
>>> state because I wanted to gather opinions on the approach of using
>>> -finstrument-functions.
>> This looks ok for an initial approach. I wonder if longer term we want to
>> implement stack guards on Arm. We would need to allocate an extra "virtual"
>> page per stack that would be unmapped.
>>
>> The advantage is this could be used also in production and doesn't rely on any
>> support from the processor.
>>
>> Any thoughts?
> I think we need both. We should implement stack guards on Arm. In
> addition, it is also beneficial to have -finstrument-functions for
> profiling, debugging, and also so that we can retrieve detailed call
> graphs from execution runs. As an example, -finstrument-functions can
> help with offline analysis to prove that we don't have unbounded
> recursion, on both arm and x86 too. On the other hand, stack guards help
> with protecting the stack in production.

x86 unconditionally has stack guards.  It was easier doing it this way
than to have conditional stack guards and conditional shadow stacks
(hardware CET stacks).

In most cases, the #DF handler will recognise hitting a guard page and
panic() with information about the stack overflow.

The one case where this wont happen is on AMD hardware in HVM(SVM)
context, because the SVM designers and the AMD64 designers didn't talk
to each other when developing the respective features[1]...

In this case, Xen will take a clean[2] triple fault and reset on stack
overflow.

~Andrew

[1] The Task Register isn't switched on VMRUN, and while this was fine
in 32bit CPUs, it wasn't fine when 64bit CPUs replaced Task Switches
with the Interrupt Stack Table mechanism.  It should be fixed when AMD
implement FRED support.  For current CPUs, we can in principle fix this,
but at added latency to vmentry/exit, which is why we've not done so. 
If someone feels like adding a debug mode for it, I'm sure that would be
acceptable.

[2] If you can call such a thing "clean", but it won't execute off into
the weeds.

[3] (tangent from another thread).  14k of stack!?!.  x86 has 8k and
we've only ever hit that in error cases...


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 22:09:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 22:09:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768079.1178822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYv1l-0007Ir-Pv; Tue, 30 Jul 2024 22:09:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768079.1178822; Tue, 30 Jul 2024 22:09: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 1sYv1l-0007Ik-Lx; Tue, 30 Jul 2024 22:09:05 +0000
Received: by outflank-mailman (input) for mailman id 768079;
 Tue, 30 Jul 2024 22:09:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYv1k-0007Ia-Ee; Tue, 30 Jul 2024 22:09:04 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYv1k-00079c-5w; Tue, 30 Jul 2024 22:09:04 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYv1j-0006aT-Kd; Tue, 30 Jul 2024 22:09:03 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYv1j-0007OT-KC; Tue, 30 Jul 2024 22:09:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=0hVqTGa6ngcycVrycqm8u/aXmltcmMgJ86ejL+FS600=; b=fje2lT84BjPgzPTsy3kcdnhoeu
	11Wmf54j8/KJx0NlHXiq+qIszJzSc1ouh5uTXaFV8EYsPyMyzUY72AlYAWKpIWMBfxuFIrTcPFUxM
	9a91MUgirJzI1MdDWseBWdWDtsClk6KqhUA9ZkQqMXBIrFLAUelNeBWkvmSXEcLgZ4iU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187051-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 187051: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl:host-ping-check-xen:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=8b5016e28737f140926619b14b8ca291dc4c5e62
X-Osstest-Versions-That:
    xen=8b5016e28737f140926619b14b8ca291dc4c5e62
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 22:09:03 +0000

flight 187051 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187051/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl          10 host-ping-check-xen        fail pass in 187045

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl         15 migrate-support-check fail in 187045 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 187045 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 187045
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 187045
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 187045
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 187045
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 187045
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 187045
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  8b5016e28737f140926619b14b8ca291dc4c5e62
baseline version:
 xen                  8b5016e28737f140926619b14b8ca291dc4c5e62

Last test of basis   187051  2024-07-30 04:47:55 Z    0 days
Testing same since                          (not found)         0 attempts

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 22:15:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 22:15:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768090.1178832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYv7u-0000Xe-FU; Tue, 30 Jul 2024 22:15:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768090.1178832; Tue, 30 Jul 2024 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 1sYv7u-0000XX-CE; Tue, 30 Jul 2024 22:15:26 +0000
Received: by outflank-mailman (input) for mailman id 768090;
 Tue, 30 Jul 2024 22:15:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYv7t-0000XM-2n; Tue, 30 Jul 2024 22:15:25 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYv7s-0007Fx-W4; Tue, 30 Jul 2024 22:15:24 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYv7s-0006l8-KY; Tue, 30 Jul 2024 22:15:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYv7s-0004V4-KA; Tue, 30 Jul 2024 22:15: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=z4qNnwFL9nBY+TFSAEda3HK8UWkWwEhsEgi4dpp3uTk=; b=X4x3kKBI2Dshut/8zHMgiNq2X/
	G+hv8eECiHRrc0A/gzJtnuxW67m9R7bk6W+CJ/VBggIDQmp+XrCMrFeZf3uE9rf4UGbGcqxDSvEUy
	1mWolitEW2Bg9mYPFmA0fHXTRxYg+YLDvYNadLy1cexKv+xdUSUORS2MxKiG995htHT0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187065-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 187065: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=a18b50614d97ecb488479829dcd5ad963bf691e3
X-Osstest-Versions-That:
    xen=303d3ff85c90ee4af4bad4e3b1d4932fa2634d64
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 22:15:24 +0000

flight 187065 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187065/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  a18b50614d97ecb488479829dcd5ad963bf691e3
baseline version:
 xen                  303d3ff85c90ee4af4bad4e3b1d4932fa2634d64

Last test of basis   187054  2024-07-30 10:02:18 Z    0 days
Testing same since   187065  2024-07-30 18:02:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Daniel P. Smith <dpsmith@apertussolutions.com>
  Jason Andryuk <jandryuk@gmail.com>
  Jason Andryuk <jason.andryuk@amd.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Stefano Stabellini <sstabellini@kernel.org>
  Stefano Stabellini <stefano.stabellini@amd.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   303d3ff85c..a18b50614d  a18b50614d97ecb488479829dcd5ad963bf691e3 -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 22:30:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 22:30:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768100.1178843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYvM1-0002ig-Po; Tue, 30 Jul 2024 22:30:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768100.1178843; Tue, 30 Jul 2024 22:30:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYvM1-0002iU-K1; Tue, 30 Jul 2024 22:30:01 +0000
Received: by outflank-mailman (input) for mailman id 768100;
 Tue, 30 Jul 2024 22:30: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=0AIz=O6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sYvM0-0002e2-Iy
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 22:30:00 +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 408cf509-4ec3-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 00:29: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 AD36B62114;
 Tue, 30 Jul 2024 22:29:57 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 733B4C32782;
 Tue, 30 Jul 2024 22:29: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: 408cf509-4ec3-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722378597;
	bh=iXwmhYCCcyRDw2DJIPfqL2B2J9LqKdHICiKlj40dCDM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=VsnXh0cIy6MwRgYVov2Hu44Q4Oy3vb1WSweVdDxDaI97QumUZaMY8yvnIJ4nu3tdK
	 Qcah3xymNH1R6+gerYm9S2QtrUOH9w2EPp3hX0mLAcrTv5LEGF06PE/2BiHqakmqgR
	 oFfBFMVKfzS3GviRUTLV1g7i4AMqQMSgAGsE0gCWdxZwVJT1BJQ4CU6OrJlLpKoTbZ
	 YR95RfkHdzuAGmUh+mbn1vlQ5MkgdYiO0M0uz/m/fPVLkT/gzSGlgR5r/ymXcsHq3Y
	 bQv0u7POqU54AT+PkRoxBl5UNZ55ocumaEAdfM1yzfaMR+zvEkGgVAgyBp/NOH3BAB
	 vNr9zJ9isCXKg==
Date: Tue, 30 Jul 2024 15:29:54 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Amneesh Singh <a-singh21@ti.com>, mst@redhat.com
cc: sstabellini@kernel.org, boris.ostrovsky@oracle.com, hch@infradead.org, 
    iommu@lists.linux-foundation.org, jasowang@redhat.com, jgross@suse.com, 
    konrad.wilk@oracle.com, linux-arm-kernel@lists.infradead.org, 
    linux-imx@nxp.com, linux-kernel@vger.kernel.org, peng.fan@nxp.com, 
    virtualization@lists.linux-foundation.org, x86@kernel.org, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen: introduce xen_vring_use_dma
In-Reply-To: <20240730105910.443753-1-a-singh21@ti.com>
Message-ID: <alpine.DEB.2.22.394.2407301519330.4857@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.21.2007151001140.4124@sstabellini-ThinkPad-T480s> <20240730105910.443753-1-a-singh21@ti.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 30 Jul 2024, Amneesh Singh wrote:
> Hi Stefano,
> 
> First off, apologies for bumping this dead thread.
> 
> I came across this patch signed off by you recently
> https://github.com/Xilinx/linux-xlnx/commit/72cb5514953be3aa2ac00c57c9eaa100ecc67176
> 
> and was wondering if a patch replacing xen_domain() with xen_pv_domain() in
> vring_use_dma_api() can be sent upstream? If not, is there a reason why?

Hi Amneesh,

Yes this patch is still required for Xen on ARM and it fixes a real bug.
Unfortunately the upstreaming process stalled so we had to keep the fix
in our Xilinx Linux branch. Here is the link to the start of this
conversation and to the last message:

https://marc.info/?i=20200624091732.23944-1-peng.fan%40nxp.com
https://marc.info/?i=alpine.DEB.2.21.2007151001140.4124%40sstabellini-ThinkPad-T480s


Hi Michael, I see you are CCed to this email. Would you be open to
acking this patch now that a 3rd independent engineer from a different
company (NXP first, then AMD/Xilinx, now TI) has reported this as a bug
fix?




From xen-devel-bounces@lists.xenproject.org Tue Jul 30 22:54:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 22:54:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768107.1178853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYvjm-0006jn-LN; Tue, 30 Jul 2024 22:54:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768107.1178853; Tue, 30 Jul 2024 22:54:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYvjm-0006jg-GN; Tue, 30 Jul 2024 22:54:34 +0000
Received: by outflank-mailman (input) for mailman id 768107;
 Tue, 30 Jul 2024 22:54:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYvjl-0006jW-Le; Tue, 30 Jul 2024 22:54:33 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYvjl-00006e-8I; Tue, 30 Jul 2024 22:54:33 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYvjk-0007ne-V9; Tue, 30 Jul 2024 22:54:33 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYvjk-00015N-Ud; Tue, 30 Jul 2024 22:54: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=EPcK4VCO+NsIBVAU/bO4P5Fgx9aVgJg5H/JUJGfbZy8=; b=FWD5LlEq7GjhSiPg5ErGvWERgr
	zvI1JYl/oHzHfkFxBaZho9HLlX5UKY0SO/QcWgNtCqTufGOFpJ8IXqQDUcuKoalgKqyZVMe8S21uM
	8voXTUzPXn6WlGE2S5H09PMd4krgwt0ZcTGQSh6T4AdMDtDCKNE5XxoYVrxHrUakOE60=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187066-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187066: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=f8f34edd9db82882fd70f14cb97ab28e9bb0b9a3
X-Osstest-Versions-That:
    ovmf=5b08df03f8193261e4837ed4e91ff81fa7d17e4d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 30 Jul 2024 22:54:32 +0000

flight 187066 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187066/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 f8f34edd9db82882fd70f14cb97ab28e9bb0b9a3
baseline version:
 ovmf                 5b08df03f8193261e4837ed4e91ff81fa7d17e4d

Last test of basis   187058  2024-07-30 14:13:07 Z    0 days
Testing same since   187066  2024-07-30 21:13:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jason1 Lin <jason1.lin@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   5b08df03f8..f8f34edd9d  f8f34edd9db82882fd70f14cb97ab28e9bb0b9a3 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 23:30:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 23:30:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768119.1178865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYwIP-0003z5-DT; Tue, 30 Jul 2024 23:30:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768119.1178865; Tue, 30 Jul 2024 23: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 1sYwIP-0003yy-AP; Tue, 30 Jul 2024 23:30:21 +0000
Received: by outflank-mailman (input) for mailman id 768119;
 Tue, 30 Jul 2024 23:30: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=0AIz=O6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sYwIN-0003ys-Kz
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 23:30: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 ad7bd759-4ecb-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 01:30: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 58E246212D;
 Tue, 30 Jul 2024 23:30:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2DC28C32782;
 Tue, 30 Jul 2024 23:30: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: ad7bd759-4ecb-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722382216;
	bh=G/NerJrxdmHr6YCYnARbwwuhXFGRVodoUT5YVoxt9zU=;
	h=Date:From:To:cc:Subject:From;
	b=dJuFl8/UZ74yJAjck0tL/AU6WgzC5aD5dAEb62p/rq/FsfoYJy3Yqk+c4Tn3k9kzI
	 46/AQK90zpma4IfzOC6ea9ifS8NbksB9zHiUryZsQgOObqokroGmxGEhREENrHQJ2v
	 4E4aMCIbf7leEJknKhU88unB3DVeBFFoCDLhOsUTEfNJ5RmrmKMERz1FTxjG0qNRmI
	 y5OrMT/BC1laX2AP/2wliBkiPteNy7aPLWYUDnwQFkTtcmX87ifyCibbTYGFatNChZ
	 Uh+GsqT8BzF8JiUVzZDjaFdivaAW02IlEayFGAznk2gFjofD8/cfKgE6yPu/aJteXp
	 wYCylZ7WprreQ==
Date: Tue, 30 Jul 2024 16:30:14 -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>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Julien Grall <julien@xen.org>
Subject: [PATCH] docs/misra: add R13.2 and R18.2 to rules.rst
Message-ID: <alpine.DEB.2.22.394.2407301626460.4857@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

Add MISRA C rules 13.2 and 18.2 to rules.rst. Both rules have zero
violations reported by Eclair but they have some cautions. We accept
both rules and for now we'll enable scanning for them in Eclair but only
violations will cause the Gitlab CI job to fail (cautions will not.)

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 7b366edb07..ef60e9a455 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -462,6 +462,15 @@ maintainers if you want to suggest a change.
      - Initializer lists shall not contain persistent side effects
      -
 
+   * - `Rule 13.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_13_02.c>`_
+     - Required
+     - The value of an expression and its persistent side-effects shall
+       be the same under all permitted evaluation orders
+     - Be aware that the static analysis tool Eclair might report
+       several findings for Rule 13.2 of type "caution". These are
+       instances where Eclair is unable to verify that the code is valid
+       in regard to Rule 13.2. Caution reports are not violations.
+
    * - `Rule 13.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_13_06.c>`_
      - Required
      - The operand of the sizeof operator shall not contain any
@@ -583,6 +592,15 @@ maintainers if you want to suggest a change.
        submitting new patches please try to decrease the number of
        violations when possible.
 
+   * - `Rule 18.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_02.c>`_
+     - Required
+     - Subtraction between pointers shall only be applied to pointers
+       that address elements of the same array
+     - Be aware that the static analysis tool Eclair might report
+       several findings for Rule 18.2 of type "caution". These are
+       instances where Eclair is unable to verify that the code is valid
+       in regard to Rule 18.2. Caution reports are not violations.
+
    * - `Rule 18.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_03.c>`_
      - Required
      - The relational operators > >= < and <= shall not be applied to objects of pointer type except where they point into the same object


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 23:43:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 23:43:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768127.1178875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYwV1-0005qj-HH; Tue, 30 Jul 2024 23:43:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768127.1178875; Tue, 30 Jul 2024 23: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 1sYwV1-0005qc-D5; Tue, 30 Jul 2024 23:43:23 +0000
Received: by outflank-mailman (input) for mailman id 768127;
 Tue, 30 Jul 2024 23:43: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=0AIz=O6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sYwV0-0005qW-SJ
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 23:43:22 +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 807df673-4ecd-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 01:43: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 B6D2262073;
 Tue, 30 Jul 2024 23:43:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2F689C32782;
 Tue, 30 Jul 2024 23:43: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: 807df673-4ecd-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722382999;
	bh=3U99pWFxGmrkh10YKk6+a7HEtgs3LnIGuf4tdxvVCFc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ghL7eAq2uZDtGUM6zFU0SXAyG5YW0HJj/5869U8n2T49tgr3uQ+x+HDVhMp0pFY/X
	 BXyQjy9x3B6v1C2LmusA3Fu2BXYTbqW9w5aGtDf24XBWBA2biAEaaRsh5b11Vl7AVw
	 yzk9c1ZvvlpQEsXaw+oxQxYC0APVHyML0hyN+qx1vM/uLM+S2zPVOWJ2bjnMcRvnsj
	 YYWmoMiY1+X3EK2JdLNyQwajLN7wEImrSdokjhCdTQRnZ9wXIVWNPhVyXBOOLjuB5A
	 TWKahBvJTwuYTCU8HeE4I76iyPZ2KiM+HRl+uT+m0Mrhs4I2uaSJBbl5KChCFlnZ0h
	 tXqbuBe5x5Dfg==
Date: Tue, 30 Jul 2024 16:43:17 -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>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH 1/4] xen/domain: Introduce arch_init_idle_domain()
In-Reply-To: <20240718215744.3892072-2-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2407301638580.4857@ubuntu-linux-20-04-desktop>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com> <20240718215744.3892072-2-andrew.cooper3@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1256561900-1722382746=:4857"
Content-ID: <alpine.DEB.2.22.394.2407301643160.4857@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-1256561900-1722382746=:4857
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2407301643161.4857@ubuntu-linux-20-04-desktop>

On Thu, 18 Jul 2024, Andrew Cooper wrote:
> The idle domain causes a large amount of complexity in domain_create() because
> of x86's need to initialise d->arch.ctxt_switch in arch_domain_create().
> 
> In order to address this, introduce an optional hook to perform extra
> initialisation of the idle domain.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  xen/common/domain.c     | 3 +++
>  xen/include/xen/sched.h | 5 +++++
>  2 files changed, 8 insertions(+)
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index fb262dcec919..e312c820d641 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -685,6 +685,9 @@ struct domain *domain_create(domid_t domid,
>  
>      rangeset_domain_initialise(d);
>  
> +    if ( is_idle_domain(d) )
> +        arch_init_idle_domain(d);
> +
>      /* DOMID_{XEN,IO,etc} (other than IDLE) are sufficiently constructed. */
>      if ( is_system_domain(d) && !is_idle_domain(d) )
>          return d;
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 2dcd1d1a4f8a..90666576c2f8 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -728,6 +728,11 @@ struct domain *domain_create(domid_t domid,
>                               struct xen_domctl_createdomain *config,
>                               unsigned int flags);
>  
> +#ifndef arch_init_idle_domain
> +/* Optional, if there's any construction necessary for DOMID_IDLE */
> +static inline void arch_init_idle_domain(struct domain *d) {}
> +#endif
> +
>  /*
>   * rcu_lock_domain_by_id() is more efficient than get_domain_by_id().
>   * This is the preferred function if the returned domain reference
> -- 
> 2.39.2
> 
--8323329-1256561900-1722382746=:4857--


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 23:44:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 23:44:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768134.1178885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYwWS-0006NB-PZ; Tue, 30 Jul 2024 23:44:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768134.1178885; Tue, 30 Jul 2024 23:44:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYwWS-0006N4-N4; Tue, 30 Jul 2024 23:44:52 +0000
Received: by outflank-mailman (input) for mailman id 768134;
 Tue, 30 Jul 2024 23:44:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0AIz=O6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sYwWR-0006My-LR
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 23:44:51 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4665d58-4ecd-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 01:44:49 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 19294CE1253;
 Tue, 30 Jul 2024 23:44:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1DB6AC32782;
 Tue, 30 Jul 2024 23:44:42 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4665d58-4ecd-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722383083;
	bh=OMHNSgZBtWBrQop4ouE3v2EtFpYm+SwSdtozfRcIG2c=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=a5TMHzTLGm+84uJEV6T8dbLvO9ADdMlsyprlJG2mKjV75VSIpa3FnAl/K0MPV3gYS
	 DEJq1roMPb9AcbejVCn8ZGQlFhlJVo15J5uI0+TdCaVmDB0IvkmjqOv81ooDwEkGQw
	 ePOalJIP//7TUcLRbeFXeSuhFYfKqsRo4jxucvrBM8+j5Xktnj6ynT8zc2h4+Mk013
	 pkipQSFgPCfUXIEa7ceMms8u3z4zLHZ+RAEqG+2lyorPufw40LcEZHWBv0KCvIQU07
	 db3qgnIXH/fqoBdakRCUrsR3rQZFE+zOowLsuA0xiwPP4VYtF9XkwOHIR+8ketLsDC
	 MYKzb0D0JXqBw==
Date: Tue, 30 Jul 2024 16:44:41 -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>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH 2/4] x86/domain: Implement arch_init_idle_domain()
In-Reply-To: <20240718215744.3892072-3-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2407301639090.4857@ubuntu-linux-20-04-desktop>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com> <20240718215744.3892072-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-714823234-1722382791=:4857"
Content-ID: <alpine.DEB.2.22.394.2407301643220.4857@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-714823234-1722382791=:4857
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2407301643221.4857@ubuntu-linux-20-04-desktop>

On Thu, 18 Jul 2024, Andrew Cooper wrote:
> The idle domain needs d->arch.ctxt_switch initialised on x86.  Implement the
> new arch_init_idle_domain() in order to do this.
> 
> Right now this double-initalises the ctxt_switch pointer, but it's safe and
> will stop happening when domain_create() is cleaned up as a consequence.
> 
> No practical change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  xen/arch/x86/domain.c             | 19 ++++++++++++-------
>  xen/arch/x86/include/asm/domain.h |  3 +++
>  2 files changed, 15 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index ccadfe0c9e70..eff905c6c6e5 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -768,6 +768,17 @@ static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
>      return true;
>  }
>  
> +void __init arch_init_idle_domain(struct domain *d)
> +{
> +    static const struct arch_csw idle_csw = {
> +        .from = paravirt_ctxt_switch_from,
> +        .to   = paravirt_ctxt_switch_to,
> +        .tail = idle_loop,
> +    };
> +
> +    d->arch.ctxt_switch = &idle_csw;
> +}
> +
>  int arch_domain_create(struct domain *d,
>                         struct xen_domctl_createdomain *config,
>                         unsigned int flags)
> @@ -783,13 +794,7 @@ int arch_domain_create(struct domain *d,
>      /* Minimal initialisation for the idle domain. */
>      if ( unlikely(is_idle_domain(d)) )
>      {
> -        static const struct arch_csw idle_csw = {
> -            .from = paravirt_ctxt_switch_from,
> -            .to   = paravirt_ctxt_switch_to,
> -            .tail = idle_loop,
> -        };
> -
> -        d->arch.ctxt_switch = &idle_csw;
> +        arch_init_idle_domain(d);

I don't understand why you need this call to arch_init_idle_domain(d)
here given the other call to arch_init_idle_domain added by patch #1.

Also I am not sure why you didn't move the line below (cpu_policy =
ZERO_BLOCK_PTR) to arch_init_idle_domain as well but I admit I don't
know this code

I realize you are removing all this code in patch #4... but still why
the line below is not needed anymore? And why do we need to add an extra
call to arch_init_idle_domain temporarily in this patch?


>          d->arch.cpu_policy = ZERO_BLOCK_PTR; /* Catch stray misuses. */
>  
> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
> index f5daeb182baa..bca3258d69ac 100644
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -779,6 +779,9 @@ struct arch_vcpu_io {
>  /* Maxphysaddr supportable by the paging infrastructure. */
>  unsigned int domain_max_paddr_bits(const struct domain *d);
>  
> +#define arch_init_idle_domain arch_init_idle_domain
> +void arch_init_idle_domain(struct domain *d);
> +
>  #endif /* __ASM_DOMAIN_H__ */
>  
>  /*
> -- 
> 2.39.2
> 
--8323329-714823234-1722382791=:4857--


From xen-devel-bounces@lists.xenproject.org Tue Jul 30 23:45:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 23:45:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768138.1178895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYwWo-0006oR-1n; Tue, 30 Jul 2024 23:45:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768138.1178895; Tue, 30 Jul 2024 23:45:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYwWn-0006oI-Uq; Tue, 30 Jul 2024 23:45:13 +0000
Received: by outflank-mailman (input) for mailman id 768138;
 Tue, 30 Jul 2024 23:45: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=0AIz=O6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sYwWm-0006My-N6
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 23:45:12 +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 c1f08adb-4ecd-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 01:45: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 BB8F1620D4;
 Tue, 30 Jul 2024 23:45:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3F288C32782;
 Tue, 30 Jul 2024 23:45: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: c1f08adb-4ecd-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722383109;
	bh=a+vHT8Nm+k0WX4XnQot8QkxL0cHiny+p2cpRNMPAlwU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Fxb6Vz0GzYCzJfCPH9eNRDRmb8snVdo2W3uKaksQyUZ9t1KDtDWmwhcyN5BPsYnBK
	 x6RS2+lM/ifYT/MLuYdKAdFFf8NJcMxu5Orr9pA57LM+dSrrvLEQ4yh8VT+BQumV7f
	 oLrV4XR3Xwlv9J+EdOnXxjfXZHTSFb4wgdbCe+35fLMEaWfWXuSjUiADWhuWrcnb9L
	 IyYkT+pMY27Szxs4QK96K2m+AQrD4AK6xk1BcPgu31HczWRn0VbD4ym2e0WY++/Xr4
	 IrTaudUqj7JN9KeLf9x5qPQkiU0lXzgiVhP7hLi8EmF5okEfF2/l5DcbBvph2R4wOS
	 fDLm6XrTU1eyw==
Date: Tue, 30 Jul 2024 16:45:08 -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>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH 3/4] xen/domain: Simpliy domain_create() now the idle
 domain is complete earlier
In-Reply-To: <20240718215744.3892072-4-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2407301644480.4857@ubuntu-linux-20-04-desktop>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com> <20240718215744.3892072-4-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 Thu, 18 Jul 2024, Andrew Cooper wrote:
> With x86 implementing arch_init_idle_domain(), there is no longer any need to
> call arch_domain_create() with the idle domain.
> 
> Have the idle domain exit early with all other system domains.  Move the
> static-analysis ASSERT() earlier.  Then, remove the !is_idle_domain()
> protections around the majority of domain_create() and remove one level of
> indentation.
> 
> No practical change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Jul 30 23:45:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Jul 2024 23:45:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768147.1178905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYwXQ-0007Nj-AW; Tue, 30 Jul 2024 23:45:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768147.1178905; Tue, 30 Jul 2024 23:45:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYwXQ-0007Nc-76; Tue, 30 Jul 2024 23:45:52 +0000
Received: by outflank-mailman (input) for mailman id 768147;
 Tue, 30 Jul 2024 23:45:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0AIz=O6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sYwXO-0006My-Cm
 for xen-devel@lists.xenproject.org; Tue, 30 Jul 2024 23:45:50 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d7b2a533-4ecd-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 01:45:48 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id F0B33CE1271;
 Tue, 30 Jul 2024 23:45:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE7FFC32782;
 Tue, 30 Jul 2024 23:45: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: d7b2a533-4ecd-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722383145;
	bh=QCQqh1HC5tqUsvhhd7FdV6HvQWl7j49M/hokcPh+vJE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=HADbsH1u0KtHINDVLESCv5LlG5dFGn3lnjs+TAZCxRHe9/2SxjYCT8pCVQL0QNw3l
	 GDSsAVra8tRY4ZZMtDOsEr2IOemi7M48JGpJOavxeJBz9uV9gpHovTpVlYsn7Jd36z
	 X6iha3Qft7m4k8sA1yq7fNzzZhWlV/7SKFKp1lffZzEZ/1N8W2rjpH9J+rcYvo1YsO
	 V9/T9C7qGMSdZgRWl9HsAoYlQPfHQ1lGRUSkVn5cUpzsTDwVsQwKjO6YX3iFuhrjSB
	 LhRsZzb2vZbV6+VdC+QLt2oC7jSwzgNIZt9LVuGy+1aQST3+nq3YogpKLpVecmfQi8
	 DC4uAKaBJZQrA==
Date: Tue, 30 Jul 2024 16:45:42 -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>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH 4/4] arch/domain: Clean up the idle domain remnants in
 arch_domain_create()
In-Reply-To: <20240718215744.3892072-5-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2407301645130.4857@ubuntu-linux-20-04-desktop>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com> <20240718215744.3892072-5-andrew.cooper3@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-2034107233-1722383145=:4857"

  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-2034107233-1722383145=:4857
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 18 Jul 2024, Andrew Cooper wrote:
> With arch_domain_create() no longer being called with the idle domain, drop
> the last remaining logic.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

but one question below


> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  xen/arch/arm/domain.c |  6 ------
>  xen/arch/x86/domain.c | 17 -----------------
>  2 files changed, 23 deletions(-)
> 
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 7cfcefd27944..3ba959f86633 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -706,12 +706,6 @@ int arch_domain_create(struct domain *d,
>  
>      BUILD_BUG_ON(GUEST_MAX_VCPUS < MAX_VIRT_CPUS);
>  
> -    /* Idle domains do not need this setup */
> -    if ( is_idle_domain(d) )
> -        return 0;
> -
> -    ASSERT(config != NULL);
> -
>  #ifdef CONFIG_IOREQ_SERVER
>      ioreq_domain_init(d);
>  #endif
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index eff905c6c6e5..c71b9023cb1a 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -791,23 +791,6 @@ int arch_domain_create(struct domain *d,
>  
>      spin_lock_init(&d->arch.e820_lock);
>  
> -    /* Minimal initialisation for the idle domain. */
> -    if ( unlikely(is_idle_domain(d)) )
> -    {
> -        arch_init_idle_domain(d);
> -
> -        d->arch.cpu_policy = ZERO_BLOCK_PTR; /* Catch stray misuses. */

Are you sure you don't want to keep it?


> -        return 0;
> -    }
> -
> -    if ( !config )
> -    {
> -        /* Only IDLE is allowed with no config. */
> -        ASSERT_UNREACHABLE();
> -        return -EINVAL;
> -    }
> -
>      if ( d->domain_id && cpu_has_amd_erratum(&boot_cpu_data, AMD_ERRATUM_121) )
>      {
>          if ( !opt_allow_unsafe )
> -- 
> 2.39.2
> 
--8323329-2034107233-1722383145=:4857--


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 01:48:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 01:48:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768173.1178935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYyRd-00032V-JW; Wed, 31 Jul 2024 01:48:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768173.1178935; Wed, 31 Jul 2024 01: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 1sYyRd-00032O-Go; Wed, 31 Jul 2024 01:48:01 +0000
Received: by outflank-mailman (input) for mailman id 768173;
 Wed, 31 Jul 2024 01: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=kMgj=O7=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sYyRc-00032I-OE
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 01:48:00 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20612.outbound.protection.outlook.com
 [2a01:111:f403:2408::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e8ddeb49-4ede-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 03:47:57 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by SA1PR12MB9245.namprd12.prod.outlook.com (2603:10b6:806:3a7::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.28; Wed, 31 Jul
 2024 01:47:53 +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.7807.026; Wed, 31 Jul 2024
 01: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: e8ddeb49-4ede-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IG36TsH5WHWQ1kf5T4OdDY7kemCS99smSRcMyTAxvgBGV3cmTP5tohVeUKx2dsDo4TYoLi201YwIdsHrqO0ie22Dy2fPBHNJa374P/azY6irdVtF0fy1+rziD3Z9GZPDiMQEnvJ4yc2cv/jQFWF3+FvdlKjUz5k+CwYTMVYKMetNV0BA4BqXIAXTHKyqBxjPjfCWzQyo3v8hSfRhPvj89/1wj28ko6xp2zGbVg4rl/CLRd9dyudG13OTdeMqke9fTqWAltZ1enYhLVGB3zBhJGeZdGYaKVwU+RQrJ3XXI9CoNrmUmTlrXwEm97jaFAosnYyTEOMWvLxxC2v2VQ+RKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m9XE2AgI7PaHqCwa5ZCiJVV3ZLcsfMI4K5n7SsLc6TY=;
 b=hIJBzYB2KCEfXUl72vi+OydthSEcXLeQ3r6WKwZqNJ0Fs4D8Pgy9bA+Oy/GxEjq9ggldJztnLoN17T4rLyQ7MrUCMUbO/P2hXf0oFC7R90vzTGe5XHuncHVY8SpSJLIlsh39Ji5LlRGzwU5htZYvgSOnys4BOJ7zaykNPIcgCURQ0LyHPUxnc6tvDh/pLymmrJQN/PyYV4HD5t0QOojbw0E3pfF+dzh7jTJwPJWfQ6skPSaHDzHd3yD6HjbBkc9svXMJKSIsgjJ6Gl2vGKVJd6YKqot4c7oSydBAaUYHrrXw2CzZpDuwgWlq1XYoujb4D4r8LSshAyvRZuvFlpWByA==
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=m9XE2AgI7PaHqCwa5ZCiJVV3ZLcsfMI4K5n7SsLc6TY=;
 b=Go16JNJeRujVTBB3QRqcy59wnypyh37wbxzy5rk8dACiPJyro+21TsF9DSD/0+z4bq3Of0Voeo8nGb3UN8EzFTWHoqTIvgr62GHdq/IX3SSmrlCDScDvSjxyoCSdD71qcHAtZOfyyo4XjTHxPA+0pA1S7NPNahBSA81hl6qhOXs=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Topic: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Index: AQHa0SvUYCKIEvNO4Ei/mjm7Qit34LIPYP0AgAFZpYA=
Date: Wed, 31 Jul 2024 01:47:52 +0000
Message-ID:
 <BL1PR12MB5849623140E6DD40EDB598C5E7B12@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com>
 <d08179b1-a114-4ae9-a6da-e907f2c027c3@citrix.com>
In-Reply-To: <d08179b1-a114-4ae9-a6da-e907f2c027c3@citrix.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.7807.009)
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_|SA1PR12MB9245:EE_
x-ms-office365-filtering-correlation-id: 3f86800d-687f-4fbf-02af-08dcb102cab7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?OGNlRld2dEg5ajhmd0p5QURsQlNrMkh1S3lLWFhDQ1NRa29XT2Rsa2RQbS9z?=
 =?utf-8?B?azFFMHJvS2QrMmkrOVV5L2RnM1M1V2tPbnp1NzVFMDRFSnFrb2ZiSlpvNnJN?=
 =?utf-8?B?VjE3L1M4L1VPMU5uczhFWVJ2aFEvUmc1cUgrb2lva2lwVUE4ZFBIaklPY0VK?=
 =?utf-8?B?YzRINk5PbURRVzc3V3d5L3YvNEpWVXMxS2l3Mk9FYlJyN2F6SFRxajlUY0xO?=
 =?utf-8?B?TE9OTit2b3ZGS1NIdU15Q21ScVhwaWtOeFk3RUZNbXdQL3djWFAxVmZLUjZ0?=
 =?utf-8?B?dmtEeUEvOWc5Q05WTi83ak4yK1YvbkZLYXVUei85eDNBaWR3SHArdE5haktv?=
 =?utf-8?B?SHdiZTFmUW5tNnd6ODF1dGZJTXNJOWFsU1oxaEVEZTc1N0xqd3JiTCtyREdC?=
 =?utf-8?B?QndGYjh1ai9TV2N5a05NbWtnK3NKT0xiK1p3K1N3RURSc0REUnhlQWJoWDFK?=
 =?utf-8?B?K2psR3B4a09SRkU0WlVrOENjRjNTZGRmZHIreERxVUdXVlM3T0Y3QW1RTWRX?=
 =?utf-8?B?cXBrN3VNOENLVEJaNnZPVno0OWtHelU1MFVBWnV0YXY2YStyei9ZV1JPYWpR?=
 =?utf-8?B?UHJhZnAyODVRZzFnUlk1QzBET2ZPR1o1NzJ6OXBnYUxNYU90V011OUJOTkVa?=
 =?utf-8?B?c3NUR2QxOTN3bFQxdkJOZWhsK2VZcTkrUndFUnVzL3VQazZEM1QyR3JjK2NH?=
 =?utf-8?B?QVY5Yld1V2VrSUFTN1FOV3VyQ3cwcE5QaENlam5IK05maFVBbHpvSy9xZG11?=
 =?utf-8?B?bDdqZmxPOHp3L0k2NmlIc0NhWTd2OWN5cGFmd1o1S3R6bjU2TjJKTzFwRkdu?=
 =?utf-8?B?c1M3KzJtWFMrbW5JbnVKZEFvVDRrNUltV1M2RE5yWHN0TTlyVDVtU0dZTUFU?=
 =?utf-8?B?eVZHMUVHVUVqandhdzJEdit0MWQzUFZDem1MRGFVUmI5bWVyWlV6Q2JWTHR5?=
 =?utf-8?B?eUdGc3JNcEJybFprSUFLdUdjUThWeFA1S0xSTVpCblgvWkYycy9pMEh2SGtq?=
 =?utf-8?B?TlpQT1JMRWVZR0I4TElUMStFQkcvVjB4YnlXc0dXbjFWd2JtQ1FRTHFicGEw?=
 =?utf-8?B?dnpPVW5pMmFaL1hiQmdLNlpPYkp5ZERNUVBvT2RzUFNMaEtuemNaek9QMnlx?=
 =?utf-8?B?RlRycG9hUldoaklzTG9lU1RJN3pjSXVHb2F1UGRkQk12VjVxSHpGMS9IUDkx?=
 =?utf-8?B?QWZSOHp6bEYwNVpyZ0NrMjcxMDVSaDQ2ZlpsVU9aZTRmY0xlQjMvQnp3TkhE?=
 =?utf-8?B?K2kreHRTVmFadVlsNlI4dnFSdjY3M0VwZ3RaSGhZRURSemhRYnJzQVVhaFpK?=
 =?utf-8?B?VEVzLzdTREI1ZDE5VWdtQ1psRk1TNjA4eTZrRE90OTNQY3h0SEZvUVdGc3dV?=
 =?utf-8?B?NFhNd3lBbkN6NUZ1bWluNkNuZzVGc1FlK0p5cU1LOHhmRWhnM1k2UThHUzZF?=
 =?utf-8?B?SjE4aG1wVVl4d0tqM0REV09PbGJNZ2h2MGhWRmllOThLUkhQc2FxWGxxU0pa?=
 =?utf-8?B?d25kblJXSDZZaXNBTmdZbkNpdVpKbnI1eG1NNEZjUFMwaStoOVIzeXhOZXhj?=
 =?utf-8?B?RkR1VFpFd3kwWTROcmgxWk5vZTBUTmNYc0RTdXk4bFd5b09DdXlKQjk1U0Jl?=
 =?utf-8?B?WVFVcjlzNEpoSEtDS2xXb0QyckYxV1M1Nk1FVTlPM1d6ci9JQUNWTmxWcmlS?=
 =?utf-8?B?bVJ0QkJRYmJmV3NhcWdaSkhqdmFYL2lQNTRMMzRXbGExajRYRnlUVlNSSkxm?=
 =?utf-8?B?RWtCOERldWNvWCttRHVrTDI4MWI2bjVCaW1HRTlBL21HM0JUU1p6NFdpRzR2?=
 =?utf-8?Q?6xD4tUgpitxse5Eip4rti/bzlxXgMRsPQxhX8=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)(7416014)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dEsrQkp2dVExSEo4QzNLM09EOXh0MGtGL3FiZEcvZ1VYcjIxMVMyUHFHd0Ns?=
 =?utf-8?B?MHFHNTJKTWtZckMvSVllVk40TkxGWkdxNEJHbmVFRnhoWTQ3WnNCQ0MrNFVP?=
 =?utf-8?B?ZDhGOGdLUE5ndUhEZ1VVMktWaStPMUV6UHdwZ2EzdEF5RUQxRmk0aUdQV25U?=
 =?utf-8?B?OThVVk1KKzkwdTE4U3ltcEwrRDdTUmQvclQ1VlhKS0RwaHk1bDNLV21INUFD?=
 =?utf-8?B?UnJNR1B6YWVDcEdRRzBjUy9lVzY1N3ovMFBrcFZzci9yUHl0QzJDN1ovaFNC?=
 =?utf-8?B?OTVOVC9wR3VETTBNRlF1elg1ZElNcjRoamJ2UDYzYm45VlNHcUppeVRlalgy?=
 =?utf-8?B?SDVXaXd1OHhNaEZoZUNFRVk3bWJDK1pzN3o1Z2N5R2ZWcUh2ZTFkN3Q0RWNU?=
 =?utf-8?B?blNMQUFoemVtUWp3SFQvTUZPZjhKb1dFNnprVEJieE0zZ1hSU1FmbEpsaGJ1?=
 =?utf-8?B?L3Q5cWk4TnVseEMwTE4wS0wzU2RuTjh1L1NYRXpYM2lhTlVWcUZhM2RMTzVr?=
 =?utf-8?B?Zmc5MzVTMHJnZUdnelJBVWs2TDNZNmI4YjF5VTh1VjQ4RXlzTGpmdDVyOUZk?=
 =?utf-8?B?L2ZGSjVWdTBDaU9KM0RjWGFOZHVUbldqdXpWalI3SENKN29NNGZmckthc3Jq?=
 =?utf-8?B?cnNubXNGZ3MvbUNkaDkwWFlnR3Q2NEdPSlJxQjdJVHVMeGVuQjdDcFNlVU9Z?=
 =?utf-8?B?MzN4TkRVelZjamVkd05Sci9ZL3NwdEpDeVI1UEQxZGU5YW13RWpyL0o4SWlE?=
 =?utf-8?B?NGZsbk1OYXJsRDQ0L29PNTRzaTl0WDd4dE1aNXZ6d1k4WVBzUHpiYlNYb3FU?=
 =?utf-8?B?UTJxZFZoY0x1UytPcnNERExqMUVidVM4NjlWR2ltU0ZLa2tNWDFXbDYzcHVi?=
 =?utf-8?B?VmxUL1ZvbWxaTmVUS0hpY09DR1U2aDJjRGFpUlpQeXlqdm9nR2VOY3VaUC85?=
 =?utf-8?B?elV1WlVlNHUwcjlwTEJ6VXJobkJUYTB3aGxNZmFIMWxiMTN5UHhwRlBoSFJn?=
 =?utf-8?B?L0RYbTJMUVBMVVlma1Zab3NJUFdKcm1rdEFnR3NhWXhkbVN2K0lMM3RzRnpD?=
 =?utf-8?B?TENzQTlhTk5nLzFpeHk5VG5nNXg1K0FuWE96SVd5dEN0REdtK3hNeTB2UGJh?=
 =?utf-8?B?ZnZiV1phSk5Wdm1uS3BSdHBiUHFzWlI5WjBSTTNNQzNEQzNBUlZLYU8yR0Zo?=
 =?utf-8?B?Y3A5MDBnbUhRWnF2Q0IwK0VJencyRmdTVmN0QU1WZjNNQWFmTG83cXl1c2t5?=
 =?utf-8?B?Ykh1b2xkem1KRlVhaW1FMEh0ZElwaWFIQWV5NXVoM2xXbGM1Yy84cVZ4UHpZ?=
 =?utf-8?B?ZVp0WEtGeWVlczd0YjQydDRkMHpCUE1scFdnNEJPcU1iQzBXSm5WUXBha2dB?=
 =?utf-8?B?SnhHM2dNNGY5Z0Z1a1NScDNaRlpjNWtmSzBweEd0NlVEdUx6TGc2VEU4cWZB?=
 =?utf-8?B?c0p2VHA4TXIra1hxQi9KWWpSVUNvV294bWF1MWl6aG1ERlJ5WEVmR01xcUJn?=
 =?utf-8?B?RG5FQVhQbzNWRFRBQkVoTC9hRTk3ODFPaktUaHQ2ZkpIL2pFclM3SER3NU4r?=
 =?utf-8?B?bEJxNHMxZmI5ejNZcCt5U2lvZUt2UmloNG44SHFINExLVlJUNnlyVG5CMk1U?=
 =?utf-8?B?RXU2QmM5enhYb0tFQTkwM2lxZW1TZExxSlM4UldTZFBkWTM3Vk04d2I3QkVU?=
 =?utf-8?B?ZlY0TittaWwxdHpoNWVjdThsUEx6QWhPR0JoT0E2NFlJTTI4a1NqWlFmWU11?=
 =?utf-8?B?ME1KOTdiSXpGWU16MDc5VEgwd1hrN2FFVzV6ZHZmMGpjMDVkNFdaNXBadjJC?=
 =?utf-8?B?clhGVFg5NUF5Qi8raHh3Sk9WMXhuOWRlZEJOOTA0OHlsenZXT0E3ZGkxUlU1?=
 =?utf-8?B?MGVkdFdTY29DNEVBbzZhcWRPdmxZSlpQZlVMVXRoNVpVVlk3R2RjTlBCZk4y?=
 =?utf-8?B?bXhCV3FMQkk0VWFjUTlJVmgvRk0xZnRZNlV3V2pUSlhELzU5UCt3Wms0Witx?=
 =?utf-8?B?WTJrR3BFMS9rdkx3YWNURys0K0xaSFZsbGtXRTdWa0xxYUVZR1JIMUVvU056?=
 =?utf-8?B?TXk0V2xXbUY0NUFuNlI0ZnhrT3ZCdnZmYXFWTEt2b21lK3NOSHBvMjV1Z2JC?=
 =?utf-8?Q?/L8Y=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <64C7C84F6DB92049B95E287023989749@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: 3f86800d-687f-4fbf-02af-08dcb102cab7
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jul 2024 01:47:52.8343
 (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: fq9BBl8/R9gvxIXoiID2QA3zWrS5PR0KqXvQIUdQc+88YUgIHK1AFyxukpISeCsvx3xopveVohA9YBl6GXVrZA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9245

SGkgQW5kcmV3LA0KDQpPbiAyMDI0LzcvMzAgMjE6MDksIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+
IE9uIDA4LzA3LzIwMjQgMTI6NDEgcG0sIEppcWlhbiBDaGVuIHdyb3RlOg0KPj4gSWYgcnVuIFhl
biB3aXRoIFBWSCBkb20wIGFuZCBodm0gZG9tVSwgaHZtIHdpbGwgbWFwIGEgcGlycSBmb3INCj4+
IGEgcGFzc3Rocm91Z2ggZGV2aWNlIGJ5IHVzaW5nIGdzaSwgc2VlIHFlbXUgY29kZQ0KPj4geGVu
X3B0X3JlYWxpemUtPnhjX3BoeXNkZXZfbWFwX3BpcnEgYW5kIGxpYnhsIGNvZGUNCj4+IHBjaV9h
ZGRfZG1fZG9uZS0+eGNfcGh5c2Rldl9tYXBfcGlycS4gVGhlbiB4Y19waHlzZGV2X21hcF9waXJx
DQo+PiB3aWxsIGNhbGwgaW50byBYZW4sIGJ1dCBpbiBodm1fcGh5c2Rldl9vcCwgUEhZU0RFVk9Q
X21hcF9waXJxDQo+PiBpcyBub3QgYWxsb3dlZCBiZWNhdXNlIGN1cnJkIGlzIFBWSCBkb20wIGFu
ZCBQVkggaGFzIG5vDQo+PiBYODZfRU1VX1VTRV9QSVJRIGZsYWcsIGl0IHdpbGwgZmFpbCBhdCBo
YXNfcGlycSBjaGVjay4NCj4+DQo+PiBTbywgYWxsb3cgUEhZU0RFVk9QX21hcF9waXJxIHdoZW4g
ZG9tMCBpcyBQVkggYW5kIGFsc28gYWxsb3cNCj4+IFBIWVNERVZPUF91bm1hcF9waXJxIGZvciB0
aGUgcmVtb3ZhbCBkZXZpY2UgcGF0aCB0byB1bm1hcCBwaXJxLg0KPj4gQW5kIGFkZCBhIG5ldyBj
aGVjayB0byBwcmV2ZW50ICh1biltYXAgd2hlbiB0aGUgc3ViamVjdCBkb21haW4NCj4+IGRvZXNu
J3QgaGF2ZSBhIG5vdGlvbiBvZiBQSVJRLg0KPj4NCj4+IFNvIHRoYXQgdGhlIGludGVycnVwdCBv
ZiBhIHBhc3N0aHJvdWdoIGRldmljZSBjYW4gYmUNCj4+IHN1Y2Nlc3NmdWxseSBtYXBwZWQgdG8g
cGlycSBmb3IgZG9tVSB3aXRoIGEgbm90aW9uIG9mIFBJUlENCj4+IHdoZW4gZG9tMCBpcyBQVkgN
Cj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4N
Cj4+IFNpZ25lZC1vZmYtYnk6IEh1YW5nIFJ1aSA8cmF5Lmh1YW5nQGFtZC5jb20+DQo+PiBTaWdu
ZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4+IC0tLQ0KPj4g
IHhlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMgfCAgNiArKysrKysNCj4+ICB4ZW4vYXJjaC94
ODYvcGh5c2Rldi5jICAgICAgIHwgMTIgKysrKysrKysrKy0tDQo+PiAgMiBmaWxlcyBjaGFuZ2Vk
LCAxNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS94
ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jIGIveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwu
Yw0KPj4gaW5kZXggMGZhYjY3MGE0ODcxLi4wM2FkYTNjODgwYmQgMTAwNjQ0DQo+PiAtLS0gYS94
ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jDQo+PiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2h5
cGVyY2FsbC5jDQo+PiBAQCAtNzEsOCArNzEsMTQgQEAgbG9uZyBodm1fcGh5c2Rldl9vcChpbnQg
Y21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykNCj4+ICANCj4+ICAgICAgc3dp
dGNoICggY21kICkNCj4+ICAgICAgew0KPj4gKyAgICAgICAgLyoNCj4+ICsgICAgICAgICogT25s
eSBiZWluZyBwZXJtaXR0ZWQgZm9yIG1hbmFnZW1lbnQgb2Ygb3RoZXIgZG9tYWlucy4NCj4+ICsg
ICAgICAgICogRnVydGhlciByZXN0cmljdGlvbnMgYXJlIGVuZm9yY2VkIGluIGRvX3BoeXNkZXZf
b3AuDQo+PiArICAgICAgICAqLw0KPj4gICAgICBjYXNlIFBIWVNERVZPUF9tYXBfcGlycToNCj4+
ICAgICAgY2FzZSBQSFlTREVWT1BfdW5tYXBfcGlycToNCj4+ICsgICAgICAgIGJyZWFrOw0KPj4g
Kw0KPj4gICAgICBjYXNlIFBIWVNERVZPUF9lb2k6DQo+PiAgICAgIGNhc2UgUEhZU0RFVk9QX2ly
cV9zdGF0dXNfcXVlcnk6DQo+PiAgICAgIGNhc2UgUEhZU0RFVk9QX2dldF9mcmVlX3BpcnE6DQo+
PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3BoeXNkZXYuYyBiL3hlbi9hcmNoL3g4Ni9waHlz
ZGV2LmMNCj4+IGluZGV4IGQ2ZGQ2MjI5NTJhOS4uOWYzMGE4YzYzYTA2IDEwMDY0NA0KPj4gLS0t
IGEveGVuL2FyY2gveDg2L3BoeXNkZXYuYw0KPj4gKysrIGIveGVuL2FyY2gveDg2L3BoeXNkZXYu
Yw0KPj4gQEAgLTMyMyw3ICszMjMsMTEgQEAgcmV0X3QgZG9fcGh5c2Rldl9vcChpbnQgY21kLCBY
RU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykNCj4+ICAgICAgICAgIGlmICggIWQgKQ0K
Pj4gICAgICAgICAgICAgIGJyZWFrOw0KPj4gIA0KPj4gLSAgICAgICAgcmV0ID0gcGh5c2Rldl9t
YXBfcGlycShkLCBtYXAudHlwZSwgJm1hcC5pbmRleCwgJm1hcC5waXJxLCAmbXNpKTsNCj4+ICsg
ICAgICAgIC8qIE9ubHkgbWFwcGluZyB3aGVuIHRoZSBzdWJqZWN0IGRvbWFpbiBoYXMgYSBub3Rp
b24gb2YgUElSUSAqLw0KPj4gKyAgICAgICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSB8fCBoYXNf
cGlycShkKSApDQo+PiArICAgICAgICAgICAgcmV0ID0gcGh5c2Rldl9tYXBfcGlycShkLCBtYXAu
dHlwZSwgJm1hcC5pbmRleCwgJm1hcC5waXJxLCAmbXNpKTsNCj4+ICsgICAgICAgIGVsc2UNCj4+
ICsgICAgICAgICAgICByZXQgPSAtRU9QTk9UU1VQUDsNCj4+ICANCj4+ICAgICAgICAgIHJjdV91
bmxvY2tfZG9tYWluKGQpOw0KPj4gIA0KPj4gQEAgLTM0Niw3ICszNTAsMTEgQEAgcmV0X3QgZG9f
cGh5c2Rldl9vcChpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykNCj4+
ICAgICAgICAgIGlmICggIWQgKQ0KPj4gICAgICAgICAgICAgIGJyZWFrOw0KPj4gIA0KPj4gLSAg
ICAgICAgcmV0ID0gcGh5c2Rldl91bm1hcF9waXJxKGQsIHVubWFwLnBpcnEpOw0KPj4gKyAgICAg
ICAgLyogT25seSB1bm1hcHBpbmcgd2hlbiB0aGUgc3ViamVjdCBkb21haW4gaGFzIGEgbm90aW9u
IG9mIFBJUlEgKi8NCj4+ICsgICAgICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgfHwgaGFzX3Bp
cnEoZCkgKQ0KPj4gKyAgICAgICAgICAgIHJldCA9IHBoeXNkZXZfdW5tYXBfcGlycShkLCB1bm1h
cC5waXJxKTsNCj4+ICsgICAgICAgIGVsc2UNCj4+ICsgICAgICAgICAgICByZXQgPSAtRU9QTk9U
U1VQUDsNCj4+ICANCj4+ICAgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOw0KPj4gIA0KPiAN
Cj4gR2l0bGFiIGlzIGRpc3BsZWFzZWQgd2l0aCB5b3VyIG9mZmVyaW5nLg0KPiANCj4gaHR0cHM6
Ly9naXRsYWIuY29tL3hlbi1wcm9qZWN0L3hlbi8tL3BpcGVsaW5lcy8xMzkzNDU5NjIyDQo+IA0K
PiBUaGlzIGJyZWFrcyBib3RoIHthZGwsemVuM3B9LXBjaS1odm0teDg2LTY0LWdjYy1kZWJ1Zywg
YW5kIGdpdmVuIHRoZToNCj4gDQo+IChYRU4pIFvCoMKgwqAgOC4xNTAzMDVdIEhWTSByZXN0b3Jl
IGQxOiBDUFUgMA0KPiBsaWJ4bDogZXJyb3I6IGxpYnhsX3BjaS5jOjE0OTE6cGNpX2FkZF9kbV9k
b25lOiBEb21haW4NCj4gMTp4Y19waHlzZGV2X21hcF9waXJxIGlycT0xOCAoZXJyb3I9LTEpOiBO
b3Qgc3VwcG9ydGVkDQo+IGxpYnhsOiBlcnJvcjogbGlieGxfcGNpLmM6MTgwOTpkZXZpY2VfcGNp
X2FkZF9kb25lOiBEb21haW4NCj4gMTpsaWJ4bF9fZGV2aWNlX3BjaV9hZGQgZmFpbGVkIGZvciBQ
Q0kgZGV2aWNlIDA6MzowLjAgKHJjIC0zKQ0KPiBsaWJ4bDogZXJyb3I6IGxpYnhsX2NyZWF0ZS5j
OjE5NjI6ZG9tY3JlYXRlX2F0dGFjaF9kZXZpY2VzOiBEb21haW4NCj4gMTp1bmFibGUgdG8gYWRk
IHBjaSBkZXZpY2VzDQo+IGxpYnhsOiBlcnJvcjogbGlieGxfeHNoZWxwLmM6MjA2OmxpYnhsX194
c19yZWFkX21hbmRhdG9yeTogeGVuc3RvcmUgcmVhZA0KPiBmYWlsZWQ6IGAvbGlieGwvMS90eXBl
JzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQ0KPiBsaWJ4bDogd2FybmluZzogbGlieGxfZG9t
LmM6NDk6bGlieGxfX2RvbWFpbl90eXBlOiB1bmFibGUgdG8gZ2V0IGRvbWFpbg0KPiB0eXBlIGZv
ciBkb21pZD0xLCBhc3N1bWluZyBIVk0NCj4gbGlieGw6IGVycm9yOiBsaWJ4bF9kb21haW4uYzox
NjE2OmRvbWFpbl9kZXN0cm95X2RvbWlkX2NiOiBEb21haW4NCj4gMTp4Y19kb21haW5fZGVzdHJv
eSBmYWlsZWQ6IE5vIHN1Y2ggcHJvY2Vzcw0KPiANCj4gSSdkIHNheSB0aGF0IHdlJ3JlIGhpdHRp
bmcgdGhlIG5ld2x5IGludHJvZHVjZWQgLUVPUE5PVFNVUFAgcGF0aC4NCj4gDQo+IEluIHRoZSB0
ZXN0IHNjZW5hcmlvLCBkb20wIGlzIFBWLCBhbmQgaXQncyBhbiBIVk0gZG9tVSB3aGljaCBpcyBi
cmVha2luZy4NCj4gDQo+IFRoZSBzaWJsaW5nICotcGNpLXB2LSogdGVzdHMgKGEgUFYgZG9tVSkg
YXJlIHdvcmtpbmcgZmluZS4NCj4gDQo+IEVpdGhlciB3YXksIEknbSBnb2luZyB0byByZXZlcnQg
dGhpcyBmb3Igbm93IGJlY2F1c2UgY2xlYXJseSB0aGUgInRoZQ0KPiBzdWJqZWN0IGRvbWFpbiBo
YXMgYSBub3Rpb24gb2YgUElSUSIgaGFzbid0IGJlZW4gcmVhc29uZWQgYWJvdXQNCj4gY29ycmVj
dGx5LCBhbmQgaXQncyBpbXBvcnRhbnQgdG8ga2VlcCBHaXRsYWIgQ0kgZ3JlZW4gYWNyb3NzIHRo
ZSBib2FyZC4NCg0KT0ssIEkgd2lsbCB0cnkgdG8gcmVwcm9kdWNlIGFuZCBpbnZlc3RpZ2F0ZSB0
aGlzIGlzc3VlLCB0aGFua3MuDQoNCj4gDQo+IH5BbmRyZXcNCg0KLS0gDQpCZXN0IHJlZ2FyZHMs
DQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 02:16:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 02:16:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768183.1178945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sYysu-0007iV-R0; Wed, 31 Jul 2024 02:16:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768183.1178945; Wed, 31 Jul 2024 02: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 1sYysu-0007hy-O7; Wed, 31 Jul 2024 02:16:12 +0000
Received: by outflank-mailman (input) for mailman id 768183;
 Wed, 31 Jul 2024 02:16:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYyst-0007XG-2o; Wed, 31 Jul 2024 02:16:11 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYyss-0007sD-Td; Wed, 31 Jul 2024 02:16:10 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sYyss-0007IK-ET; Wed, 31 Jul 2024 02:16:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sYyss-0000zq-Du; Wed, 31 Jul 2024 02:16:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Sm9Z94Z2s7yn4VYTAaAJOjZ3Yfizj9pd6vfKliZe6ZU=; b=IHt0zCmAIPYITwMf8VQQ0Yx0US
	TC9eaWAIqGVBbLFh/RjVPp/Rt1Ni5ueVuEgPCfznpNVgZ+5FPqs8njLoCeNpMCWwp4hXVpTMbEeFF
	GNSxxFgcJCqBH8AJh9dATQq6W2pyJzPJMv/3noXCCdQMDv7rQWomTuMb2Efd/87qQWEM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187053-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187053: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-armhf-armhf-xl-raw:debian-di-install:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=94ede2a3e9135764736221c080ac7c0ad993dc2d
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 02:16:10 +0000

flight 187053 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187053/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827
 test-armhf-armhf-xl-raw      12 debian-di-install        fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                94ede2a3e9135764736221c080ac7c0ad993dc2d
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   14 days
Failing since        186925  2024-07-20 09:44:52 Z   10 days   25 attempts
Testing same since   187053  2024-07-30 08:49:44 Z    0 days    1 attempts

------------------------------------------------------------
2003 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 223636 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 04:58:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 04:58:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768194.1178955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ1Px-0003VR-Rl; Wed, 31 Jul 2024 04:58:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768194.1178955; Wed, 31 Jul 2024 04:58: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 1sZ1Px-0003VK-Os; Wed, 31 Jul 2024 04:58:29 +0000
Received: by outflank-mailman (input) for mailman id 768194;
 Wed, 31 Jul 2024 04:58:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ1Pw-0003VA-Cc; Wed, 31 Jul 2024 04:58:28 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ1Pw-0002Ow-3D; Wed, 31 Jul 2024 04:58:28 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ1Pv-0006D0-Mm; Wed, 31 Jul 2024 04:58:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ1Pv-00041D-MG; Wed, 31 Jul 2024 04:58: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ENuHFD4wVrsyilhoA2erT/AEaevs0Q378H+K12L5/JQ=; b=xfxXu5MZYnrXY2NQi3lR8q5sWH
	KCSGLr+0+hsyy8TBprs1kNOXDvLRxOee9m5/67PRP95fxY//RcbgpJmojjZ8bmTLJzh5JsaDaWJ9s
	nwJ85dE8qe0Z25ZqEfP9/GVzjckApjwcCY+o91eGfjVWvi9tRRQL2vQHe4UuiZ6rus8E=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187068-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 187068: tolerable all pass - PUSHED
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=6979e17b3f8a18d2ba5dbd4f0623c4061dae0dfc
X-Osstest-Versions-That:
    xen=a18b50614d97ecb488479829dcd5ad963bf691e3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 04:58:27 +0000

flight 187068 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187068/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  6979e17b3f8a18d2ba5dbd4f0623c4061dae0dfc
baseline version:
 xen                  a18b50614d97ecb488479829dcd5ad963bf691e3

Last test of basis   187065  2024-07-30 18:02:12 Z    0 days
Testing same since   187068  2024-07-31 02:02:09 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  Bertrand Marquis <bertrand.marquis@arm.com>
  Jan Beulich <jbeulich@suse.com>
  Stefano Stabellini <sstabellini@kernel.org>
  Stefano Stabellini <stefano.stabellini@amd.com>
  Victor Lira <victorm.lira@amd.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   a18b50614d..6979e17b3f  6979e17b3f8a18d2ba5dbd4f0623c4061dae0dfc -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 06:11:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 06:11:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768206.1178965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ2Xt-0005UR-0m; Wed, 31 Jul 2024 06:10:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768206.1178965; Wed, 31 Jul 2024 06: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 1sZ2Xs-0005UK-U8; Wed, 31 Jul 2024 06:10:44 +0000
Received: by outflank-mailman (input) for mailman id 768206;
 Wed, 31 Jul 2024 06:10:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ2Xr-0005UA-NG; Wed, 31 Jul 2024 06:10:43 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ2Xr-0003yz-FJ; Wed, 31 Jul 2024 06:10:43 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ2Xr-0000Oq-2i; Wed, 31 Jul 2024 06:10:43 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ2Xr-0000vO-2L; Wed, 31 Jul 2024 06:10: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=uCwTUPpLIRE37sZIq2ubMAmQpbPpIDu40XY9CfrD9MM=; b=RH1Oz0jYJRN2LB5WLnNuYNdwiX
	CjM1oKkZYDdAQcJ8tSee0hgz0p0D2Sp2knm5/7D5I/+4fowiFUWlwwYPkromoOJmG7uHgH/etr3C6
	Co3CIplA1drPBf3hjBWap/etVfBAhA1IPTB3TVEij3jYLnbO1/U5HVEFW1qka9RAY99E=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187070-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187070: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=9df400fd4d75831e02428e9ccb3dcfce85ceab82
X-Osstest-Versions-That:
    ovmf=f8f34edd9db82882fd70f14cb97ab28e9bb0b9a3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 06:10:43 +0000

flight 187070 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187070/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 9df400fd4d75831e02428e9ccb3dcfce85ceab82
baseline version:
 ovmf                 f8f34edd9db82882fd70f14cb97ab28e9bb0b9a3

Last test of basis   187066  2024-07-30 21:13:14 Z    0 days
Testing same since   187070  2024-07-31 04:13:22 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Oliver Smith-Denny <osde@linux.microsoft.com>
  Sean Brogan <sean.brogan@microsoft.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   f8f34edd9d..9df400fd4d  9df400fd4d75831e02428e9ccb3dcfce85ceab82 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 06:15:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 06:15:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768215.1178975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ2cQ-00064i-K8; Wed, 31 Jul 2024 06:15:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768215.1178975; Wed, 31 Jul 2024 06: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 1sZ2cQ-00064b-Gb; Wed, 31 Jul 2024 06:15:26 +0000
Received: by outflank-mailman (input) for mailman id 768215;
 Wed, 31 Jul 2024 06: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ2cP-00064Q-Cu
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 06:15:25 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45cf6c56-4f04-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 08:15:24 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52f01afa11cso8132498e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 23:15: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
 4fb4d7f45d1cf-5ac631b038asm8234518a12.14.2024.07.30.23.15.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 23:15: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: 45cf6c56-4f04-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722406523; x=1723011323; 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=5ys6FqoieUc/FnSCJUr7GlkOcH3+qNt5xtQnIMfsFec=;
        b=B+liiK+kilVW9SzYlXpAY0g0iizTQFCwRtu4yUKcrWp8uow43I6lHVw3DqFiUdcPOW
         DXbGeVbS3Z/HahT7DLOC/FTwIEwFILNEunBdqWdHsW9o71UGkZsKgrOno4wBISfHX2Uh
         g8l7MP8NSMVbFy3b/GyMmj14FQXT0gD1mylJoRbMhHHFaP62/NRplza2bOywBsb5YlAc
         lrwabwLzYk0VJudVOq0p/KeyvEgA5y70xv1fvqOqePeZBCOi3tBhiAxcJFBITmDyiI2I
         s5r5EZC8BRgNUM85KGHpVsNk3drqOUCR6vLF8GZyZlaJYPaLWRm5DqSr5Zs0jwnuIohx
         XEww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722406523; x=1723011323;
        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=5ys6FqoieUc/FnSCJUr7GlkOcH3+qNt5xtQnIMfsFec=;
        b=K7ZNKPrufG+5dtdQILNw7aydQ96wYpxEyNAWfMYnkcF/R8V0Gafe3mZSBvbCJFLv2X
         Qrax/JsrpVRdpnHfbba948QliQD6zwfYr96sUyU5U2Q3xrG4UWCNRTaaA502H3Xh/sCv
         lrOv8oLgLfuz8CdHcvjqZfq7faUHXmWKovTsAhpIk2aFFgy0oAPVXbN8ohmD76DdwXRh
         W7cNPeEPAojC3gw0kr73TH3e2ir6Tq7oNOGIGmnPjNudVdNil7a6lLg2z6GBPI4ttsQQ
         Vbsxha/W3zIR4INOe8D19x9fsqjUYulcEAf+k6aaeZz68UZcHdwQZQG0nU1qD+FC14Xp
         416w==
X-Forwarded-Encrypted: i=1; AJvYcCVJzuJCGpvRYCIf45yHVJSN8GUmhd+Y5JuTf3fy0pEazZY1wHJNiIH+U1sapoqj4rByNQMlGq70I6DxZW7OAqADY0dqlXF4jNp0bTRsdIo=
X-Gm-Message-State: AOJu0Yzi8b1khCvMeGeRVKLtyUsj0dF7lfppkX8ssssKn63QtgilwecU
	DEFfrsPUkejiWjrm5151JytXDiVPZDjhjtKMIzGw9Xv3gH8EVSrjKleBRS11tGzWqNpY5W90bWQ
	=
X-Google-Smtp-Source: AGHT+IEymhTSugDHCvWEirRSc8G+Kz++rlq2S6msvuMCFQv/4ODsJ52+4Um7zL3juw/0EVJbhaf5kg==
X-Received: by 2002:a05:6512:3490:b0:52b:bf8e:ffea with SMTP id 2adb3069b0e04-5309b2c2adbmr6980393e87.40.1722406523580;
        Tue, 30 Jul 2024 23:15:23 -0700 (PDT)
Message-ID: <560a1207-2721-42cd-bd39-c83edca42c17@suse.com>
Date: Wed, 31 Jul 2024 08:15:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] xen/event: address violation of MISRA C Rule 13.6
From: Jan Beulich <jbeulich@suse.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org,
 Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
References: <cover.1719308599.git.alessandro.zucchelli@bugseng.com>
 <d48b73a3c5c569f95da424fe9e14a7690b1c69f8.1719308599.git.alessandro.zucchelli@bugseng.com>
 <6e4b7711-5017-49a8-9f7d-e20c497f2561@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: <6e4b7711-5017-49a8-9f7d-e20c497f2561@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.07.2024 10:16, Jan Beulich wrote:
> On 25.06.2024 12:14, Alessandro Zucchelli wrote:
>> --- a/xen/include/xen/event.h
>> +++ b/xen/include/xen/event.h
>> @@ -183,13 +183,14 @@ static bool evtchn_usable(const struct evtchn *evtchn)
>>  /* Wait on a Xen-attached event channel. */
>>  #define wait_on_xen_event_channel(port, condition)                      \
>>      do {                                                                \
>> +        struct vcpu *v = current;                                       \
> 
> First: As recently indicated elsewhere, any new latching of "current" into
> a local var should use "curr" or something derived from it (see below), not
> "v".
> 
> Second: Macro local variables are at (certain) risk of colliding with outer
> scope variables. Therefore the common thing we do is add an underscore.
> Disagreement continues to exist for whether to prefix them or have them be
> suffixes. An affirmative statement as to Misra's take on underscore-prefixed
> variables in situations like these would be appreciated. Sadly what the C
> standard has is somewhat tied to the C library, and hence leaves room for
> interpretation (and hence for disagreement).

Why was this patch committed unchanged, considering the comments above?

Jan



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 06:23:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 06:23:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768224.1178985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ2k8-0007x1-ES; Wed, 31 Jul 2024 06:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768224.1178985; Wed, 31 Jul 2024 06: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 1sZ2k8-0007wu-Bu; Wed, 31 Jul 2024 06:23:24 +0000
Received: by outflank-mailman (input) for mailman id 768224;
 Wed, 31 Jul 2024 06: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ2k6-0007wo-Pm
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 06:23:22 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6252931a-4f05-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 08:23:21 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7abf92f57bso687642666b.2
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 23:23: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-a7acac61218sm734782966b.94.2024.07.30.23.23.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 23:23: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: 6252931a-4f05-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722407001; x=1723011801; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=j34XI5wjhTwlsln1V0zSLuppoKI1G8c1DTFaIjYrNj0=;
        b=d3pgNYKmIcEEs+AWPQ35XKGFSCC2xreI2bVn4NXAEK+73xvQhl267CzUvwoaUt3a2R
         xLDE0d0gT4J6h/54YjKwiYqIDd/kPNqiOAdfsyWv4nkvseFFukPpA8cI7PMpcoyWHTdr
         7azdo2fwAQDj3rcYjByfETm7mbEXcRjGsdMTkAUCtWO/DonezenxWjsTnD3RONk5uhC+
         gYhwH2xCuHQxIzel57G6BBwO5Y6Mnv8Y3NNfoP7Wihd+Nh9+cEc322/eiFDgDkMd2NCB
         zpnvRQnPtdBebh6uvaYIYpCyOvl83xRcQRZR55L8GW+ppTWj7nL3ux1AmDsjY419Yv24
         3WdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722407001; x=1723011801;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j34XI5wjhTwlsln1V0zSLuppoKI1G8c1DTFaIjYrNj0=;
        b=i+QvjB4gUGVoi0tlZO0OwmQojBMr0KYywFexgIDie4FcHtykuveeRlh7VCx15UCblR
         C+89xx7Bf+pLBKcv2juXLk6AwbsHPnO1wYFkqhjAe7qTssL16uKQrmiHhhA5YNa9AA22
         UVaCMmS0LT61bTDmJTAt0gXNHlXd6cfYbysKbS90MCXdSc4D8L7muvZYvguqZoJidp1D
         zGHuJwGEPuiBemZAC4uPGVz6JN4fbSuJsRLA42UyeP0UUvG2E/tShJqKK3gaN04MYbj5
         RprmvpDXLtwuauOS+VaGMcTRmpvzQ0SnG1J3w09AX47yztKQ1Xj0QkT/iO9jOS8I2WDw
         E0uA==
X-Forwarded-Encrypted: i=1; AJvYcCXAOGPeu3FnrXb997EZ8/TAGeR0o3kec9FvYMdus84R6/04gmMIr6eH+9ml9UQvc3+j7bqjRQIdNHc6aC1EhmfgqoXlwvueTpTdUL2SBd8=
X-Gm-Message-State: AOJu0YxtcB49spaO4iAyY+njamF5VBB2Oo0au59jrusljBzXFKnN5TaJ
	8Htwvz2VcZLI9+3+FhzV0pDV2IfvGcFCajw47Sxy8safQfV7/PwVPshsGmi5bg==
X-Google-Smtp-Source: AGHT+IGS/qoqQh/c4wxfFeIlv5o8HUrBBaPAu1RWRHNX8AXx3wnyoeM+MrDpOSiZCL8th1ufdTjcYA==
X-Received: by 2002:a17:907:7e9d:b0:a77:aa6d:e0c7 with SMTP id a640c23a62f3a-a7d3fff5d65mr932785966b.30.1722407000890;
        Tue, 30 Jul 2024 23:23:20 -0700 (PDT)
Message-ID: <6575beb5-645a-470a-89a1-8485adeace60@suse.com>
Date: Wed, 31 Jul 2024 08:23:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/misra: add R13.2 and R18.2 to rules.rst
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>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2407301626460.4857@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.2407301626460.4857@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2024 01:30, Stefano Stabellini wrote:
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -462,6 +462,15 @@ maintainers if you want to suggest a change.
>       - Initializer lists shall not contain persistent side effects
>       -
>  
> +   * - `Rule 13.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_13_02.c>`_
> +     - Required
> +     - The value of an expression and its persistent side-effects shall
> +       be the same under all permitted evaluation orders
> +     - Be aware that the static analysis tool Eclair might report
> +       several findings for Rule 13.2 of type "caution". These are
> +       instances where Eclair is unable to verify that the code is valid
> +       in regard to Rule 13.2. Caution reports are not violations.

Which doesn't make clear what our take is towards new code people may
submit.

> @@ -583,6 +592,15 @@ maintainers if you want to suggest a change.
>         submitting new patches please try to decrease the number of
>         violations when possible.
>  
> +   * - `Rule 18.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_02.c>`_
> +     - Required
> +     - Subtraction between pointers shall only be applied to pointers
> +       that address elements of the same array
> +     - Be aware that the static analysis tool Eclair might report
> +       several findings for Rule 18.2 of type "caution". These are
> +       instances where Eclair is unable to verify that the code is valid
> +       in regard to Rule 18.2. Caution reports are not violations.

And while the same wording is used here, I think it is pretty clear for
this that we'd reject changes where bad subtractions are used. IOW even
more so important to clarify the (possibly different) positions on what
is going to be added into the code base.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 06:26:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 06:26:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768231.1178995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ2mk-0000Ox-SG; Wed, 31 Jul 2024 06:26:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768231.1178995; Wed, 31 Jul 2024 06:26: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 1sZ2mk-0000Oq-PG; Wed, 31 Jul 2024 06:26:06 +0000
Received: by outflank-mailman (input) for mailman id 768231;
 Wed, 31 Jul 2024 06:26: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ2mj-0000Ob-Ex
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 06:26:05 +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 c31d69fc-4f05-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 08:26:04 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a7a9a7af0d0so697965966b.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 23:26: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
 a640c23a62f3a-a7acab23f62sm736170366b.16.2024.07.30.23.26.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 23:26:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c31d69fc-4f05-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722407163; x=1723011963; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JrjF6L5WcSMM40/SdRL6ldbH43TXBjMIj6JkVAnEW9Y=;
        b=Vdry2fXbWb/rY1AFnTqylOqu9LTnha3wQinWR3hY1FB+Hq5JmSNJDUQM/vBKqXHuqy
         ws9r5+qhr0eYgeohlTH7OAUlfCls6rhxhvT+evbPb6Tmgxn+B4fmaKv+UcJ2BCsyhAEo
         GBrx3at1QbXIpt8lRxrnpFVe/ycpXJgmoCFJTY+NItOcCM/ks/gTcHCwrMVDtL/BwUxB
         xnVISYjYFOW+5CZDKsh8sWjlRo5QYwvRR24XWo7YPf72T1Qg9gIDxou5qHxK4YJnLTvf
         /uoYh8fJF0qXuZai+dk0gWdmMus27zWXNHAT5LqogVzMZS11daChKsubxNn+ylamqWLP
         4I9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722407163; x=1723011963;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JrjF6L5WcSMM40/SdRL6ldbH43TXBjMIj6JkVAnEW9Y=;
        b=Wf42dKVwcUWjU7ELOprIqYdQZ5l2Q1TRao/VlMpkmQx/GK2JqtWNWjCnDBsviwTN7W
         84wNi/hWQnJnO8ZanHYkI1JwTc/hXQ0UhAyiBqPKUEPmeLj28fYu3Ia24KzgpeKbBvmM
         m0BUz6QMmG95BorLcIBdCaDS45hIvL3cupwzL/p2OcPeKmjRju8oNFyOjwIyZCj5vjoO
         1YkVP5Y+MtW3Jl0fsm9qKXalx+B4UDoF3VcqvEEplKKUXb+GXz/imIh4mYog+8KKTBl1
         VCSXbUmdlmaK2lKcZ2zE6vVRvg7dZSB559V5Lw4pW9HaHjjrFrJ9DWb+UTABDL5IxZqP
         odXw==
X-Forwarded-Encrypted: i=1; AJvYcCUBpbx3AiMWPdu0gKOmaIHge9efepvPZ/1thDEcMx8sYUakCXb1izk17u604XkoNDHyq7BAZQm/AcDdOaTrPQmUbHp0DiJQkGvLoUCpKAQ=
X-Gm-Message-State: AOJu0YwY8A/baSD/GklT8ln0XZ7UAUV+RawM+E+mgQ9IhoMltcPCgQLc
	9eNLQv3YNrJBu1fSVfyaKr0t7L9617BAuOTZOeFH8rPP0DnHPuUQWVyw2tglVA==
X-Google-Smtp-Source: AGHT+IF/0hlhY07Af7abz7YRJFgToHhWyzX+ZkWoyoDi/zHTP6shIpX9qepIwUQT6wkYt7eQxhXXCg==
X-Received: by 2002:a17:906:dc8b:b0:a7a:a4be:2f98 with SMTP id a640c23a62f3a-a7d3ff7bceamr1011136466b.10.1722407163367;
        Tue, 30 Jul 2024 23:26:03 -0700 (PDT)
Message-ID: <8701cfdf-a44c-4bec-8190-7d38e8267a78@suse.com>
Date: Wed, 31 Jul 2024 08:26:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] x86/altcall: further refine clang workaround
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org
References: <20240730155305.49172-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: <20240730155305.49172-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.07.2024 17:53, Roger Pau Monne wrote:
> The current code in ALT_CALL_ARG() won't successfully workaround the clang
> code-generation issue if the arg parameter has a size that's not a power of 2.
> While there are no such sized parameters at the moment, improve the workaround
> to also be effective when such sizes are used.
> 
> Instead of using a union with a long use an unsigned long that's first
> initialized to 0 and afterwards set to the argument value.
> 
> Reported-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> Suggested-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
Albeit if you don't mind ...

> --- a/xen/arch/x86/include/asm/alternative.h
> +++ b/xen/arch/x86/include/asm/alternative.h
> @@ -169,27 +169,25 @@ extern void alternative_branches(void);
>  
>  #ifdef CONFIG_CC_IS_CLANG
>  /*
> - * Use a union with an unsigned long in order to prevent clang from
> - * skipping a possible truncation of the value.  By using the union any
> - * truncation is carried before the call instruction, in turn covering
> - * for ABI-non-compliance in that the necessary clipping / extension of
> - * the value is supposed to be carried out in the callee.
> + * 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.
>   *
> - * Note this behavior is not mandated by the standard, and hence could
> - * stop being a viable workaround, or worse, could cause a different set
> - * of code-generation issues in future clang versions.
> + * 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 union {                                                    \
> -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> -        unsigned long r;                                                \
> -    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
> -        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> -    }
> +    register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
> +        unsigned long tmp = 0;                                          \
> +        *(typeof(arg) *)&tmp = (arg);                                   \
> +        BUILD_BUG_ON(sizeof(arg) > sizeof(unsigned long));              \

... I'd like to switch around these two lines while committing.

Jan

> +        tmp;                                                            \
> +    })
>  #else
>  #define ALT_CALL_ARG(arg, n) \
>      register typeof(arg) a ## n ## _ asm ( ALT_CALL_arg ## n ) = \



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 06:32:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 06:32:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768240.1179006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ2sa-0002MN-H6; Wed, 31 Jul 2024 06:32:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768240.1179006; Wed, 31 Jul 2024 06:32: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 1sZ2sa-0002MG-Cr; Wed, 31 Jul 2024 06:32:08 +0000
Received: by outflank-mailman (input) for mailman id 768240;
 Wed, 31 Jul 2024 06:32: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ2sZ-0002MA-8d
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 06:32:07 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a72d72b-4f06-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 08:32:05 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-52efbb55d24so8111247e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 23:32: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
 a640c23a62f3a-a7acad9ef91sm725867466b.183.2024.07.30.23.32.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 23:32: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: 9a72d72b-4f06-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722407524; x=1723012324; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1GSKa4f7XN86eBIV5WX+6+lIGbwbj1hfTVZhfLjj3KE=;
        b=guhB5A1yX6mHV0jU3cxe+uErqreW+c36QxpBDO/gkJxPBR+DzjG8blqMaYxMJTIJmY
         IV42Y1T9NX88nOsraZ1QbW1EPxrWegRUssuns9fOCNactAp4mUznXoOF/5PhnoGsBCCD
         u2YwYX2N657+f/3TAwhEB5EVOC/GsO9nav54P+TuJndLZIbAo1Hr0BuSnMTydUvrfJwj
         5s+04t/wRe3WlCxNCEae0gCX/rq6ulMrQGqgrWGlpd0QFNMEEHpntLrPKpDoZoIJQPv/
         t8anOGd+Qbv8x/S4Sh7cvjvGNnpTlXmGtof29eBtXW06BplJSYyjUyq8Am3YKE7BcjgF
         04jQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722407524; x=1723012324;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1GSKa4f7XN86eBIV5WX+6+lIGbwbj1hfTVZhfLjj3KE=;
        b=Ts1Kn3VFJ4ynMZGp+RTThJ/22qA+GVuagHSmN6GN7FSmE2RQYhakqHhWovwiI0I78V
         fimDLGDI/tcWVkmOAwHXEnXrfIB7HxNgVIvrdpmye4rDxgMUUF9ykLKIgkv8e0XYlAli
         jb8pR45kvZWqHm9PnQVgVRxBpcst5FfUIkQ+2bpWFfw7b1Iy6d8phuci9+bLaqCyyv1Q
         Mlbd/iDuYJeDhcfqUiWJPUS0H6X18y0wgSg5yngvl3yrmJdXCN30BgcMJFudB/7U6LAN
         sENVwE3NBLtlCrPRgh4OexAQguHhfPJEamTjZPK82XxFQkNkhNG0aS6qjLXtWOsIS6f9
         yA0A==
X-Forwarded-Encrypted: i=1; AJvYcCXax7iyVN0Nyk7zUEpCHqbLOFObmpdzH+WwnVjPSz2smyd74MN+Phs2wUND7LHEebjQ5DAvOwqRarcaWa4A/MwoKTGGN6mgVht0Fqjcms8=
X-Gm-Message-State: AOJu0YycaKnscRtuW5k22RfTCRcjIC3yHk+xwT/q6peN3l/+ERWANEJq
	vA9jsB1hgDv7fsMUkL26JlX1ckh1Wfd+OcpNPM1DQT7j3pyKlfqhKYGhAbeH/DbvnuOr1HfRbwk
	=
X-Google-Smtp-Source: AGHT+IECMvpSA2Nyszr3un5OB4MbrF+mBEBQnrLSh5NP640+6p0DdOpbbl36uDZ5TV23tE2z9tjj8g==
X-Received: by 2002:a05:6512:2527:b0:530:ac41:4cb with SMTP id 2adb3069b0e04-530ac410765mr3989736e87.3.1722407524364;
        Tue, 30 Jul 2024 23:32:04 -0700 (PDT)
Message-ID: <5e5cc6b2-cdf3-4670-a2dc-2e23dc22d520@suse.com>
Date: Wed, 31 Jul 2024 08:32:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] x86/dom0: fix restoring %cr3 and the mapcache
 override on PV build error
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20240730152855.48745-1-roger.pau@citrix.com>
 <20240730152855.48745-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: <20240730152855.48745-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.07.2024 17:28, Roger Pau Monne wrote:
> One of the error paths in the PV dom0 builder section that runs on the guest
> page-tables wasn't restoring the Xen value of %cr3, neither removing the
> mapcache override.

s/neither/nor/ ?

> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -825,6 +825,8 @@ int __init dom0_construct_pv(struct domain *d,
>      rc = elf_load_binary(&elf);
>      if ( rc < 0 )
>      {
> +        mapcache_override_current(NULL);
> +        switch_cr3_cr4(current->arch.cr3, read_cr4());
>          printk("Failed to load the kernel binary\n");
>          goto out;
>      }

Just below here we have

    bootstrap_map(NULL);

This too is wanted in the error case aiui. Happy to move it up immediately
ahead of the if() while committing, so long as you agree. Then:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 06:44:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 06:44:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768249.1179014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ34t-0004S1-Hx; Wed, 31 Jul 2024 06:44:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768249.1179014; Wed, 31 Jul 2024 06:44: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 1sZ34t-0004Ru-FV; Wed, 31 Jul 2024 06:44:51 +0000
Received: by outflank-mailman (input) for mailman id 768249;
 Wed, 31 Jul 2024 06:44: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ34s-0004Rd-CW
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 06:44:50 +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 61844ffd-4f08-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 08:44:48 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5a3b866ebc9so7441542a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 30 Jul 2024 23:44: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
 a640c23a62f3a-a7acad92ffbsm739347166b.171.2024.07.30.23.44.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 30 Jul 2024 23:44: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: 61844ffd-4f08-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722408288; x=1723013088; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LhroYgtrHmoaNenjWMxK/tFHgoPEfidNBY64i/Togs4=;
        b=LZmEpP7sb3VTlDU9WFUEvVtdETbQUsBiDsEpgCNqCRt6DzL2rrs5v+NdCd+V1oa99f
         rcHP+5B9ZDyVOQrgysqfmDaKTA5/mbUPnDR5JeN0aGN4S1t1dnrt2JSsS4QApTRc1eZa
         4PBpueovH80359yHLsarI52CHQO5EcPJlI017ALgwEY09Am9taMehGmE9erzUat161Y3
         lur+W76do50YfxZpgXh/j1jhSPT2skUn0mAYuxOecN8AhoE3Sqy66wMU6Xzjvaz1+Te0
         6TkA301CXyBQSva5XKGGk3gf6XjK2IfxrjXpaGiDYkD4AUNq+R4X/Ibhgh5T55fdGsoJ
         Az+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722408288; x=1723013088;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LhroYgtrHmoaNenjWMxK/tFHgoPEfidNBY64i/Togs4=;
        b=UM8KddOuj8hfG/vVqE6fGzyaIERDcQFoq4pHYEMcQSddGeoy9IK8TYQsIy3Th+Zz0/
         rBdnG0eHD65cFdtVndwXQnWoXf1IEET+FDQ4WLzxQsVNTn2IIgctB52OEpIzScjslEOv
         P+wbrWP/+nAUH0kayB2EOmkhCh8oDuiVlVkHz5St8elgZeC/ZGIgielt/9Rqwsmkfs5p
         +KJHB16OVrswEkxKOc41V4sjWJeflwPqTylVSoCjOZmnVYz4LtKtpAojehmgUz73VSyi
         sezglLP1/yooPlXjQ8fdjiB2FeWRaPZSKaE5HCkFSWscJPhL9g3/WXiq5RoCl8pz76lA
         frVw==
X-Forwarded-Encrypted: i=1; AJvYcCWWANsWGhTatadO9Z+Req4yXcejRb44YMCfpmfTJ6JIIs1Dett0YgNSEQWYC4No+f6UCHhFFg9ydMisEkDarG8dtC6RapZJsknJQsT+dEk=
X-Gm-Message-State: AOJu0YzjAZFRrjRnyiMrdSJIn16kqHyJkDzbJ408Z4tyO1k9vih8GlqX
	buMMmMAf7u+x26oVtXyzrPMnCrh4FRe0owiaUG1xiIffKjOqi5knFFFWydpebvFLaTn6sEWN/gw
	=
X-Google-Smtp-Source: AGHT+IGMhpKo/iAjO4bUmjREmYWg0UXJa9Yy3ff6iD25x6fjI81wdnPhfFaj3scLmrqK7E33GFRmdw==
X-Received: by 2002:a17:906:f59f:b0:a7d:3617:b5f5 with SMTP id a640c23a62f3a-a7d401290d9mr881599966b.42.1722408288013;
        Tue, 30 Jul 2024 23:44:48 -0700 (PDT)
Message-ID: <3918b171-b908-4962-8fdf-5236056902f8@suse.com>
Date: Wed, 31 Jul 2024 08:44:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] x86/dom0: only disable SMAP for the PV dom0 build
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20240730152855.48745-1-roger.pau@citrix.com>
 <20240730152855.48745-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: <20240730152855.48745-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.07.2024 17:28, Roger Pau Monne wrote:
> The PVH dom0 builder doesn't switch page tables and has no need to run with
> SMAP disabled.
> 
> Use stac() and clac(), as that's safe to use even if events would hit in the
> middle of the region with SMAP disabled.  Nesting stac() and clac() calls is
> not safe, so the stac() call is done strictly after elf_load_binary() because
> that uses raw_{copy_to,clear}_guest() accessors which toggle SMAP.

And that was the main concern causing the CR4.SMAP override to be used instead,
iirc. While I'm sure you've properly audited all code paths, how can we be sure
there's not going to be another stac() or clac() added somewhere? Or setting of
EFLAGS as a whole, clearing EFLAGS.AC without that being explicit? I think we'd
be better off sticking to the fiddling with CR4.

> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Considering the bug Andrew pointed out on the code you remove from setup.c,
don't we want a Fixes: tag as well?

> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -830,6 +830,15 @@ int __init dom0_construct_pv(struct domain *d,
>          printk("Failed to load the kernel binary\n");
>          goto out;
>      }
> +
> +    /*
> +     * Disable SMAP to allow user-accesses when running on dom0 page-tables.
> +     * Note this must be done after elf_load_binary(), as such helper uses
> +     * raw_{copy_to,clear}_guest() helpers which internally call stac()/clac()
> +     * and those calls would otherwise nest with the ones here.

Just in case you and Andrew would outvote me on which approach to take:
I'm okay with "helpers" here, but the earlier "such helper" reads a little
odd to me. Imo using "that" or "it" instead would be better. Not the least
because personally a function like elf_load_binary() goes beyond what I'd
call a mere "helper" (in that case dom0_construct_pv() toos could be deemed
a helper, etc).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 07:50:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 07:50:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768258.1179024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ46T-0006Bn-8Q; Wed, 31 Jul 2024 07:50:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768258.1179024; Wed, 31 Jul 2024 07:50:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ46T-0006Bg-5S; Wed, 31 Jul 2024 07:50:33 +0000
Received: by outflank-mailman (input) for mailman id 768258;
 Wed, 31 Jul 2024 07:50: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=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZ46S-0006Ba-Ht
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 07:50:32 +0000
Received: from mail-qv1-xf2f.google.com (mail-qv1-xf2f.google.com
 [2607:f8b0:4864:20::f2f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8eeb18e3-4f11-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 09:50:30 +0200 (CEST)
Received: by mail-qv1-xf2f.google.com with SMTP id
 6a1803df08f44-6b97097f7fdso34106006d6.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 00:50:30 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3faf453esm71481326d6.131.2024.07.31.00.50.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 00:50: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: 8eeb18e3-4f11-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722412230; x=1723017030; 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=DXT14CdfpoGU7FzQLw0XkRt6FSOWSaAp0XKFGX7Sucw=;
        b=mghieoNvfksv0XPP2cltWQzqPWAcxbYQEdKDoRa4tbXy5JJoqH6D1V5mUPPXRa94RP
         D0Ip40AR9yo6lejMzeEdCrQkf2JppdytWOcNjXnIko/hewXt+chqiBMbeSTf6Yu17SB+
         /yrQWyi8JMN32nny4ugNcfFmgx/rykbyN3azk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722412230; x=1723017030;
        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=DXT14CdfpoGU7FzQLw0XkRt6FSOWSaAp0XKFGX7Sucw=;
        b=SiN+bDOlXw4+60IC7c5QS2O1eARgKHXYSBm5q1jvvf62brshTEqvzfDKQZnA1Ox7hb
         dXTLouTILu5K1YFdmPHmxkMwQHM5lqxEKrlA4SlucQjb4ItSBhsz8CfslmL0717s2YuR
         mV9fcey8KhzWTf2ItrA+eGVpqmbJAdd1Q8SY9HvG6zk+xz8AhdUDIdO2fZFvLNZBOc+z
         iMQyuuCrBZporT5PerP8j4S0fWB1dyYUUKFA3DquvDGNVGHOfdwxQSVHhrxBhSAb1EiX
         QJKZdMyUaYdnjLIJXfBN+s+2J3PmiGQ+6fLcAnPdJVMqRVNL8ez1v1xmrqXi/PaCnSHW
         bCEA==
X-Gm-Message-State: AOJu0YzZDOOwM4/vUSwToiCBF3XFfmVQ8fotM+wck0PEVZokt9kB/6do
	o08r7EvM6jt93jwK900tWX/UzrZz4WWrSc5QXn5hqw/I9BEWObMCe9ug17SnCj0=
X-Google-Smtp-Source: AGHT+IED3v6dpu2H30Wa/dLq0yWRyEaCgFCNe7dx7/R9Qu746b+AK0hmlAHQQKKjTy3KtWrq1SYX5g==
X-Received: by 2002:ad4:5ce3:0:b0:6b5:e9f9:f1b2 with SMTP id 6a1803df08f44-6bb559b7304mr222360496d6.13.1722412229518;
        Wed, 31 Jul 2024 00:50:29 -0700 (PDT)
Date: Wed, 31 Jul 2024 09:50:26 +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, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Juergen Gross <jgross@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Huang Rui <ray.huang@amd.com>
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Message-ID: <Zqnswi7ihOhMxPsi@macbook>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20240708114124.407797-3-Jiqian.Chen@amd.com>

On Mon, Jul 08, 2024 at 07:41:19PM +0800, Jiqian Chen wrote:
> If run Xen with PVH dom0 and hvm domU, hvm will map a pirq for
> a passthrough device by using gsi, see qemu code
> xen_pt_realize->xc_physdev_map_pirq and libxl code
> pci_add_dm_done->xc_physdev_map_pirq. Then xc_physdev_map_pirq
> will call into Xen, but in hvm_physdev_op, PHYSDEVOP_map_pirq
> is not allowed because currd is PVH dom0 and PVH has no
> X86_EMU_USE_PIRQ flag, it will fail at has_pirq check.
> 
> So, allow PHYSDEVOP_map_pirq when dom0 is PVH and also allow
> PHYSDEVOP_unmap_pirq for the removal device path to unmap pirq.
> And add a new check to prevent (un)map when the subject domain
> doesn't have a notion of PIRQ.
> 
> So that the interrupt of a passthrough device can be
> successfully mapped to pirq for domU with a notion of PIRQ
> when dom0 is PVH
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
>  xen/arch/x86/hvm/hypercall.c |  6 ++++++
>  xen/arch/x86/physdev.c       | 12 ++++++++++--
>  2 files changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
> index 0fab670a4871..03ada3c880bd 100644
> --- a/xen/arch/x86/hvm/hypercall.c
> +++ b/xen/arch/x86/hvm/hypercall.c
> @@ -71,8 +71,14 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>  
>      switch ( cmd )
>      {
> +        /*
> +        * Only being permitted for management of other domains.
> +        * Further restrictions are enforced in do_physdev_op.
> +        */
>      case PHYSDEVOP_map_pirq:
>      case PHYSDEVOP_unmap_pirq:
> +        break;
> +
>      case PHYSDEVOP_eoi:
>      case PHYSDEVOP_irq_status_query:
>      case PHYSDEVOP_get_free_pirq:
> diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
> index d6dd622952a9..9f30a8c63a06 100644
> --- a/xen/arch/x86/physdev.c
> +++ b/xen/arch/x86/physdev.c
> @@ -323,7 +323,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          if ( !d )
>              break;
>  
> -        ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
> +        /* Only mapping when the subject domain has a notion of PIRQ */
> +        if ( !is_hvm_domain(d) || has_pirq(d) )

I'm afraid this is not true.  It's fine to map interrupts to HVM
domains that don't have XENFEAT_hvm_pirqs enabled.  has_pirq() simply
allow HVM domains to route interrupts from devices (either emulated or
passed through) over event channels.

It might have worked in the past (when using a version of Xen < 4.19)
because XENFEAT_hvm_pirqs was enabled by default for HVM guests.

physdev_map_pirq() will work fine when used against domains that don't
have XENFEAT_hvm_pirqs enabled, and it needs to be kept this way.

I think you want to allow PHYSDEVOP_{,un}map_pirq for HVM domains, but
keep the code in do_physdev_op() as-is.  You will have to check
whether the current paths in do_physdev_op() are not making
assumptions about XENFEAT_hvm_pirqs being enabled when the calling
domain is of HVM type.  I don't think that's the case, but better
check.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 07:51:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 07:51:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768264.1179035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ478-0006di-Gh; Wed, 31 Jul 2024 07:51:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768264.1179035; Wed, 31 Jul 2024 07:51: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 1sZ478-0006db-Dm; Wed, 31 Jul 2024 07:51:14 +0000
Received: by outflank-mailman (input) for mailman id 768264;
 Wed, 31 Jul 2024 07: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=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZ477-0006aj-AT
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 07:51:13 +0000
Received: from mail-qk1-x729.google.com (mail-qk1-x729.google.com
 [2607:f8b0:4864:20::729])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a7483903-4f11-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 09:51:11 +0200 (CEST)
Received: by mail-qk1-x729.google.com with SMTP id
 af79cd13be357-7a1d81dc0beso358083685a.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 00:51:11 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d73ed3bcsm715182085a.66.2024.07.31.00.51.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 00: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: a7483903-4f11-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722412270; x=1723017070; 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=W41FKG0eJpfBp07OcAZAH7z7XQnNYMVmuK2H2q8/PV8=;
        b=ibSRyyErIPhBgAuYIAegv4xnzZDGKEm6yv+E8Rru1xWbgbyEtXTeaGJRj6b8x7dkx7
         zrupykDQRyje0jUP3+bhiEiL+Nq1o1c2XQ0iKTPkQvwgAjBKq/uq91MujEV95vhcDUvc
         g5AuscSE/DJlax5fOvzGa48s4QtuHsMAekrOU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722412270; x=1723017070;
        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=W41FKG0eJpfBp07OcAZAH7z7XQnNYMVmuK2H2q8/PV8=;
        b=eHlBxqhfX+rdFU1NJHtfyZMysM2yOqn3C9k3Qv6Ugtonfs2ZDtwdFB6oyzYvCAMmFc
         ZGxL/tteL0Ch8v4qF6QQsIh4TpZ62EntkgorBz4pX535/B2mYt4bFmRLrUvAJkIUi8cX
         J4AUsabBPMAdFd7eHcdpvHdGZ/6+/PW53HgPVUxcu4/0bdTo7C0+7aqRZ5SQosrzs51B
         US+U5qj5ZOh7W7K6lPiSQpxGAkhETNYH2U424fFQFdKDclcjJ85+Z/CiQ/p8hOMNvEwi
         lmyJ4cE/h0ehFb5Xfm0fEuRLspUMZ+C54Q+lf4eo0n+IYQlmHf5mUBPQrDUqAajuBI7c
         AvEw==
X-Forwarded-Encrypted: i=1; AJvYcCUIynWAWxrURT+D2tcHoHCYXxq087xhBZnlS92CFUNGSKdofAO+WQCdauBP9RqYVo1GdLS3bOkpdrNLVgzSEHXyJ/o1KARPtakouY9Lhq0=
X-Gm-Message-State: AOJu0YyiBPMUCj6m2om2MyiCxfgXYylHQ4+EyYSsN2Gq1y2PaI1NanDR
	WSiib7RUzjiU3SIA5gIf7KqToZ72IYhRiU2m7XBEr2keugIVBVxYMPmin1ztxL0=
X-Google-Smtp-Source: AGHT+IHpNd2Soql1f+iSAU7znMFM3w69VfT0DeUQ/M+GLLn3ifJV1tXylV9lLzltZ0T5XQfOAB5X5Q==
X-Received: by 2002:a05:620a:4093:b0:7a1:e0ed:dd1b with SMTP id af79cd13be357-7a1e524732cmr1747552085a.19.1722412270407;
        Wed, 31 Jul 2024 00:51:10 -0700 (PDT)
Date: Wed, 31 Jul 2024 09:51:08 +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>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3] x86/altcall: further refine clang workaround
Message-ID: <Zqns7Pf3uCikjScZ@macbook>
References: <20240730155305.49172-1-roger.pau@citrix.com>
 <8701cfdf-a44c-4bec-8190-7d38e8267a78@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8701cfdf-a44c-4bec-8190-7d38e8267a78@suse.com>

On Wed, Jul 31, 2024 at 08:26:02AM +0200, Jan Beulich wrote:
> On 30.07.2024 17:53, Roger Pau Monne wrote:
> > The current code in ALT_CALL_ARG() won't successfully workaround the clang
> > code-generation issue if the arg parameter has a size that's not a power of 2.
> > While there are no such sized parameters at the moment, improve the workaround
> > to also be effective when such sizes are used.
> > 
> > Instead of using a union with a long use an unsigned long that's first
> > initialized to 0 and afterwards set to the argument value.
> > 
> > Reported-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> > Suggested-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> Albeit if you don't mind ...
> 
> > --- a/xen/arch/x86/include/asm/alternative.h
> > +++ b/xen/arch/x86/include/asm/alternative.h
> > @@ -169,27 +169,25 @@ extern void alternative_branches(void);
> >  
> >  #ifdef CONFIG_CC_IS_CLANG
> >  /*
> > - * Use a union with an unsigned long in order to prevent clang from
> > - * skipping a possible truncation of the value.  By using the union any
> > - * truncation is carried before the call instruction, in turn covering
> > - * for ABI-non-compliance in that the necessary clipping / extension of
> > - * the value is supposed to be carried out in the callee.
> > + * 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.
> >   *
> > - * Note this behavior is not mandated by the standard, and hence could
> > - * stop being a viable workaround, or worse, could cause a different set
> > - * of code-generation issues in future clang versions.
> > + * 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 union {                                                    \
> > -        typeof(arg) e[sizeof(long) / sizeof(arg)];                      \
> > -        unsigned long r;                                                \
> > -    } a ## n ## _ asm ( ALT_CALL_arg ## n ) = {                         \
> > -        .e[0] = ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })\
> > -    }
> > +    register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
> > +        unsigned long tmp = 0;                                          \
> > +        *(typeof(arg) *)&tmp = (arg);                                   \
> > +        BUILD_BUG_ON(sizeof(arg) > sizeof(unsigned long));              \
> 
> ... I'd like to switch around these two lines while committing.

Sure, feel free to swap them.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 07:52:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 07:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768273.1179045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ48J-0007EX-Qd; Wed, 31 Jul 2024 07:52:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768273.1179045; Wed, 31 Jul 2024 07: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 1sZ48J-0007EQ-NR; Wed, 31 Jul 2024 07:52:27 +0000
Received: by outflank-mailman (input) for mailman id 768273;
 Wed, 31 Jul 2024 07:52:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ48H-0007EA-V7; Wed, 31 Jul 2024 07:52:25 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ48H-0005rd-Id; Wed, 31 Jul 2024 07:52:25 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ48H-0003gM-4o; Wed, 31 Jul 2024 07:52:25 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ48H-0003VS-4H; Wed, 31 Jul 2024 07:52: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=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=6c59tJPI2tqclPmM6t/ZqZhaOawaqooXlC1/xcJ1/sc=; b=2Nb8CciFygC8waNAzUPpoTRlZD
	fgpBAddtJt7ktNwF4zCgLkkCX1klrmlt9VvIQOJ26UjVdbrCpPglx6z2XAs9UlwO0wicuxejBph+P
	TMnGkJpDzpl8hgxTqxpOs2HfoteJ7YPYtY8AueGyVDgTWaxiJLMugVAotk0N498Ci+vo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187063-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.19-testing test] 187063: regressions - FAIL
X-Osstest-Failures:
    xen-4.19-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:regression
    xen-4.19-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.19-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=026c9fa29716b0ff0f8b7c687908e71ba29cf239
X-Osstest-Versions-That:
    xen=fe84f5392d8c96d7d73c0cf02413eeff0ef2a40e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 07:52:25 +0000

flight 187063 xen-4.19-testing real [real]
flight 187072 xen-4.19-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/187063/
http://logs.test-lab.xenproject.org/osstest/logs/187072/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop       fail REGR. vs. 187044

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 187044
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 187044
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 187044
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 187044
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 187044
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  026c9fa29716b0ff0f8b7c687908e71ba29cf239
baseline version:
 xen                  fe84f5392d8c96d7d73c0cf02413eeff0ef2a40e

Last test of basis   187044  2024-07-29 16:07:22 Z    1 days
Testing same since   187048  2024-07-30 01:41:30 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 026c9fa29716b0ff0f8b7c687908e71ba29cf239
Author: Julien Grall <jgrall@amazon.com>
Date:   Mon Jul 29 18:20:45 2024 +0100

    Set 4.19 version
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>

commit df9b8a649f0424e0a949c0f9a7961724bbe8ea70
Author: Julien Grall <jgrall@amazon.com>
Date:   Mon Jul 29 18:20:08 2024 +0100

    README: make heading say 4.19
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>

commit b2d2878ab2686b92fcdd7bbca4ff4c312a42bc11
Author: Julien Grall <jgrall@amazon.com>
Date:   Mon Jul 29 18:18:01 2024 +0100

    Config.mk: Bump tags to 4.19.0 final
    
    Signed-off-by: Julien Grall <jgrall@amazon.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 07:58:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 07:58:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768287.1179054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ4Dk-0008MU-Hc; Wed, 31 Jul 2024 07:58:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768287.1179054; Wed, 31 Jul 2024 07:58: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 1sZ4Dk-0008MN-F6; Wed, 31 Jul 2024 07:58:04 +0000
Received: by outflank-mailman (input) for mailman id 768287;
 Wed, 31 Jul 2024 07:58: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=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZ4Di-0008Ly-Uz
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 07:58:02 +0000
Received: from mail-qk1-x72b.google.com (mail-qk1-x72b.google.com
 [2607:f8b0:4864:20::72b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b491229-4f12-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 09:58:01 +0200 (CEST)
Received: by mail-qk1-x72b.google.com with SMTP id
 af79cd13be357-7a1d436c95fso328619385a.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 00:58:01 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d73ef379sm710828085a.62.2024.07.31.00.57.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 00: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: 9b491229-4f12-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722412680; x=1723017480; 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=yqmKcKoW4Us5c+lnaqQaHWzQFFIntAsQwx6O25/I1KE=;
        b=VH+OWtXnniFx2cNqna6/RMSrXbL1Rcc9BRj+nGa0xOA8tbPo8DAB0BGilZFoF1cKjA
         JpQp0YeP02YMC9YLfD86CBBlo+UKQuPEJMnDfcphKGMQsqYiB1cJNGI1OgwMYlQS8wBZ
         m5JSQzw/LV+u+aS3vFARln7IClJY+zp2e+Rhs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722412680; x=1723017480;
        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=yqmKcKoW4Us5c+lnaqQaHWzQFFIntAsQwx6O25/I1KE=;
        b=HB5ID9566FLr5bF3gFTw/OGVCiPuS5R7u/Hi5lDEZQOeE6PwYF+MU930GzTQESxrU1
         xjyAK0BpJcDto8KcdGIkJG5BOmiPdfi4k86wY5GbGxCeS0Ghxx04j9Y5xY0pruvAVrKi
         mtPbZe2PzwfRuwM806n6f3jXxYFZZ42n8y7Uk2WfyUQocAj8xPc5aNFaZyiXdGZ9XaQL
         6I9geZNf/7Kk+qtKVof9+kOcqWLlfAd9A5bz8dA2juAqSKrS5ka1BKp4KL+fY0dK6ykT
         3Yagmr7dSoXCfKAzo2YcTe6wi73r04Ss2EQBpiX26gAn9m+iC4yE8N8JCOwafcccFLZP
         Y7/w==
X-Forwarded-Encrypted: i=1; AJvYcCWJJzQLlzJOu+YpnQI+hMY8ddex6l+oLoxYlajGVCRFIdSE8kpZZaN4jLHqtd5v6jzfepC6PyZEd2JnEKPDKH6wgpkt+D68+dEfU3Eb2l4=
X-Gm-Message-State: AOJu0YyJf8rgjBrtYpYH8Hld5RPqrfeClUCUHbzq2ECP9X5RHlKGJewv
	n+vGPxJAMxVfasg4hn7w8anA/dw2urdJoaAMHFEuLI16vykm176yks9Gu2sXDT7tTdzCFWToYKZ
	j
X-Google-Smtp-Source: AGHT+IGsaWuMQvHs6e5UKZuVpI23gICyhl5CDawMXyHObB/KFk/VtPdimb4QPX5eirwr7GiJXywNrw==
X-Received: by 2002:a05:620a:244c:b0:79e:f932:7ca8 with SMTP id af79cd13be357-7a1e52fccccmr1661056185a.64.1722412679900;
        Wed, 31 Jul 2024 00:57:59 -0700 (PDT)
Date: Wed, 31 Jul 2024 09:57:56 +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 1/2] x86/dom0: fix restoring %cr3 and the mapcache
 override on PV build error
Message-ID: <ZqnuhBkM9hpSbSw1@macbook>
References: <20240730152855.48745-1-roger.pau@citrix.com>
 <20240730152855.48745-2-roger.pau@citrix.com>
 <5e5cc6b2-cdf3-4670-a2dc-2e23dc22d520@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <5e5cc6b2-cdf3-4670-a2dc-2e23dc22d520@suse.com>

On Wed, Jul 31, 2024 at 08:32:03AM +0200, Jan Beulich wrote:
> On 30.07.2024 17:28, Roger Pau Monne wrote:
> > One of the error paths in the PV dom0 builder section that runs on the guest
> > page-tables wasn't restoring the Xen value of %cr3, neither removing the
> > mapcache override.
> 
> s/neither/nor/ ?
> 
> > --- a/xen/arch/x86/pv/dom0_build.c
> > +++ b/xen/arch/x86/pv/dom0_build.c
> > @@ -825,6 +825,8 @@ int __init dom0_construct_pv(struct domain *d,
> >      rc = elf_load_binary(&elf);
> >      if ( rc < 0 )
> >      {
> > +        mapcache_override_current(NULL);
> > +        switch_cr3_cr4(current->arch.cr3, read_cr4());
> >          printk("Failed to load the kernel binary\n");
> >          goto out;
> >      }
> 
> Just below here we have
> 
>     bootstrap_map(NULL);
> 
> This too is wanted in the error case aiui. Happy to move it up immediately
> ahead of the if() while committing, so long as you agree. Then:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

I'm happy with this, but note there are further instances of error
paths above this one that already don't remove the bootstrap mappings.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 07:58:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 07:58:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768294.1179066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ4EC-0000N3-RW; Wed, 31 Jul 2024 07:58:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768294.1179066; Wed, 31 Jul 2024 07: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 1sZ4EC-0000Mw-Mw; Wed, 31 Jul 2024 07:58:32 +0000
Received: by outflank-mailman (input) for mailman id 768294;
 Wed, 31 Jul 2024 07: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ4EB-0000G2-RN
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 07:58:31 +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 ad73adc4-4f12-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 09:58:31 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7abf92f57bso699372366b.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 00:58: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
 a640c23a62f3a-a7acadb80c3sm736491466b.197.2024.07.31.00.58.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 00: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: ad73adc4-4f12-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722412710; x=1723017510; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mU1CcASOro9RK3Zq/mQFtcDdPcZIsk5HQAQqSy6H0EY=;
        b=belRqHHXj6NMdYf8BjIO5bDflftm8kda3PUhu473Q6GngPfNWJU192g3u49j+AC/aP
         bM0cgbxg2JMWAf6YXDG5ZtM4QizfjU41cxJ8r2KD383i9wCvb8+38PK83Zxb2p+AKuG7
         x76w+OaEJZyPnSKnC74Weuvh8KfPgTDkBMopZGZ6FHvwZNOQaGLFI8THGrR2CJiY8pLJ
         ECmfcdMxKR0TdLWjF58jc8DdN3p2vLbSBy0QvFPZgalueyW8+rprcsIMVZPg1pAPwEVt
         Q/HSZkg0jfobLBzsn1QSqtPc1gYEirJUWTMjiT6AN/JPUngwb0yDKpL1wFi9jLVoHQlV
         5vJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722412710; x=1723017510;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mU1CcASOro9RK3Zq/mQFtcDdPcZIsk5HQAQqSy6H0EY=;
        b=htlxPGhe0arirEAuC2gv+a9a8zV5MFj+p/53SK2OxsfAtXgMHibLpymLhwjRTLG+I/
         SCaUyoNeYMf1I6bWWftshYHLZSJmbQTVtkGUdINqrkRukfY4lJAz7dTpC8pxkM50sH1R
         PEmkifAq4MQF9HUJvT062h5AT8B1ofxxvLMhug3WyVAuReHxj89sjs49QV4mhUvtV8l1
         0WAfFrj6pFCBbHC7QX1SXQl4NyhdH40CCqdSRPMqRijqxf91M/jCbNrhQ1OEL9JK0ZCu
         Dxz988DC1Il8gIAdqAOazvAk42VDtWgtpS+Lym98CT6p5a87gzk4HhxdcjAv9CNi7CNt
         JKMg==
X-Gm-Message-State: AOJu0Yw4x4tdsV4jf6n/sL9lnY/zjQ7SDv8g1GQR6sUXYC77VgFU+Ahy
	+1ea2H38fbnP+t+JoU75R3tupLMm/E+D/Jg/Vypo8lUNIZfO45bn7N/5wVv5cg==
X-Google-Smtp-Source: AGHT+IF6kzjzEWRb0xWV+Cjmj+vUT0L4EfCXNRTGCAKVACpx6KQful5ZHF2lqOQRbIRQhwZbNEW7qw==
X-Received: by 2002:a17:907:72ce:b0:a75:1069:5b94 with SMTP id a640c23a62f3a-a7d3ffa3052mr1023665366b.21.1722412710369;
        Wed, 31 Jul 2024 00:58:30 -0700 (PDT)
Message-ID: <0aa0982a-30b3-43cd-9a9e-4542d7cb583f@suse.com>
Date: Wed, 31 Jul 2024 09:58:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com> <Zqnswi7ihOhMxPsi@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Zqnswi7ihOhMxPsi@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 09:50, Roger Pau Monné wrote:
> On Mon, Jul 08, 2024 at 07:41:19PM +0800, Jiqian Chen wrote:
>> --- a/xen/arch/x86/physdev.c
>> +++ b/xen/arch/x86/physdev.c
>> @@ -323,7 +323,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>          if ( !d )
>>              break;
>>  
>> -        ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
>> +        /* Only mapping when the subject domain has a notion of PIRQ */
>> +        if ( !is_hvm_domain(d) || has_pirq(d) )
> 
> I'm afraid this is not true.  It's fine to map interrupts to HVM
> domains that don't have XENFEAT_hvm_pirqs enabled.  has_pirq() simply
> allow HVM domains to route interrupts from devices (either emulated or
> passed through) over event channels.
> 
> It might have worked in the past (when using a version of Xen < 4.19)
> because XENFEAT_hvm_pirqs was enabled by default for HVM guests.
> 
> physdev_map_pirq() will work fine when used against domains that don't
> have XENFEAT_hvm_pirqs enabled, and it needs to be kept this way.
> 
> I think you want to allow PHYSDEVOP_{,un}map_pirq for HVM domains, but
> keep the code in do_physdev_op() as-is.  You will have to check
> whether the current paths in do_physdev_op() are not making
> assumptions about XENFEAT_hvm_pirqs being enabled when the calling
> domain is of HVM type.  I don't think that's the case, but better
> check.

Yet the goal is to disallow mapping into PVH domains. The use of
has_pirq() was aiming at that. If that predicate can't be used (anymore)
for this purpose, which one is appropriate now?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 08:02:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 08:02:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768304.1179074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ4Hm-0002S3-9s; Wed, 31 Jul 2024 08:02:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768304.1179074; Wed, 31 Jul 2024 08: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 1sZ4Hm-0002Rw-7F; Wed, 31 Jul 2024 08:02:14 +0000
Received: by outflank-mailman (input) for mailman id 768304;
 Wed, 31 Jul 2024 08: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ4Hl-0002Rq-Jd
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 08:02:13 +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 30fdb2e5-4f13-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 10:02:11 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5a79df5af51so1245982a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 01:02: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-a7acadb80c3sm736808166b.197.2024.07.31.01.02.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 01: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: 30fdb2e5-4f13-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722412931; x=1723017731; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ks4vOAYP+psPxcMsr0VFWwkCJ0sUggPF4HxzEbFTtes=;
        b=f/dSHpXO4JfG/mmUpeDu3eN31lPlJRoG46qZtvdETRkZen25Futcs3l+Se9F4L8YlA
         2h71sH2KWsUqojw+rdBdfQJzvlOg5m2Sd2kupclUiwoP39obB/jduPXWW1dv2kU+SbqN
         zKh7mJpwY+mxK/mUGYrBSTCswB66RjYO9i0sN6RpwBXbokkORXw1si5ZekXDKKurjKd/
         GO51vUN4jMve1olJOAeIVUo+xBkv795ZoHMhljl6+1TFqxv1Vob+BCRpS6nGpL1Vq+dn
         eiGh8EG023lGvgoPG/jUkG/rmCyUis+ra9QDDaDU+LO5M9fbkc0QFJroTzcXLq8O9485
         sqtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722412931; x=1723017731;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ks4vOAYP+psPxcMsr0VFWwkCJ0sUggPF4HxzEbFTtes=;
        b=Q2VZfvbQHl993rpC5ODM13G6rN6V89l6/2/WNzvrDoTuJFwfgNoLiHqq5tGMyweIIJ
         7hIXQ3e/GRCfhHokSvFCtwzwD/dCr814n1J3e+01LxhzOINGCcNTJF6+5k1fDuR23HJh
         kq6AV6I7WP6KC1CI+/yfVkgUVPxWd9sk9lzaVoyOGapWdtyx19ifylr98Q4P0fo+xD2j
         aTSQhLlPEWIob0ATvPClsbQRYVD5ZZXifbROIQuFLQVxLGYMApoPfu/YurbT6FsnZ6q3
         L1Le0vZ3Gw2smlKPLYEsqAcooOPUP3XY4LIAKCb/EqLjuxuvftHnrXO/eP+Y68+D2aXV
         C1PQ==
X-Forwarded-Encrypted: i=1; AJvYcCV/mxB5QmDNkSPcoXUSfLTn9ZVwMWp1GPc7lnYNwxLQi9P1tn/eNZwvrIsoA+osPo9pvS/piHlEv8/GTha8K3YdHhcJefaNIdeh+SS2HcM=
X-Gm-Message-State: AOJu0YwYiY4ZCz7qRE3Agidgf9Fu3krlpV3+1AB093qEjKPsaRSstSEB
	0Rm2kZ6A2pHaxvZ5DFm6X40i4f3D4AwcCoJXA6IR5lOFuAOYeNwhsNL9UR+GKw==
X-Google-Smtp-Source: AGHT+IGUbNRg630Coyd3CF7XZhW0LX3oS9KngjA6LsGRJGzd2lRe105axRScO8mP+XDDOcd911/WQg==
X-Received: by 2002:a17:907:7e97:b0:a72:7a71:7f4f with SMTP id a640c23a62f3a-a7d858b3d6cmr399153866b.7.1722412931088;
        Wed, 31 Jul 2024 01:02:11 -0700 (PDT)
Message-ID: <cb785319-ab42-44d6-b2df-5777fe829eae@suse.com>
Date: Wed, 31 Jul 2024 10:02:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] x86/dom0: fix restoring %cr3 and the mapcache
 override on PV build error
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: <20240730152855.48745-1-roger.pau@citrix.com>
 <20240730152855.48745-2-roger.pau@citrix.com>
 <5e5cc6b2-cdf3-4670-a2dc-2e23dc22d520@suse.com> <ZqnuhBkM9hpSbSw1@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZqnuhBkM9hpSbSw1@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 09:57, Roger Pau Monné wrote:
> On Wed, Jul 31, 2024 at 08:32:03AM +0200, Jan Beulich wrote:
>> On 30.07.2024 17:28, Roger Pau Monne wrote:
>>> --- a/xen/arch/x86/pv/dom0_build.c
>>> +++ b/xen/arch/x86/pv/dom0_build.c
>>> @@ -825,6 +825,8 @@ int __init dom0_construct_pv(struct domain *d,
>>>      rc = elf_load_binary(&elf);
>>>      if ( rc < 0 )
>>>      {
>>> +        mapcache_override_current(NULL);
>>> +        switch_cr3_cr4(current->arch.cr3, read_cr4());
>>>          printk("Failed to load the kernel binary\n");
>>>          goto out;
>>>      }
>>
>> Just below here we have
>>
>>     bootstrap_map(NULL);
>>
>> This too is wanted in the error case aiui. Happy to move it up immediately
>> ahead of the if() while committing, so long as you agree. Then:
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> I'm happy with this, but note there are further instances of error
> paths above this one that already don't remove the bootstrap mappings.

Hmm, you're right. I'll leave that untouched then.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 08:25:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 08:25:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768327.1179089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ4dq-0006GL-1a; Wed, 31 Jul 2024 08:25:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768327.1179089; Wed, 31 Jul 2024 08:25: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 1sZ4dp-0006GE-Uw; Wed, 31 Jul 2024 08:25:01 +0000
Received: by outflank-mailman (input) for mailman id 768327;
 Wed, 31 Jul 2024 08:25:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZ4dp-0006G8-4Y
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 08:25:01 +0000
Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com
 [2607:f8b0:4864:20::72f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5fa057b2-4f16-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 10:24:59 +0200 (CEST)
Received: by mail-qk1-x72f.google.com with SMTP id
 af79cd13be357-7a1dac7f0b7so343344485a.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 01:24:59 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1d73b46b4sm710216885a.53.2024.07.31.01.24.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 01:24: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: 5fa057b2-4f16-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722414298; x=1723019098; 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=aFmD+9qFxifgdMS/MAeVrQLxD634+tJpYhYKO71zBAA=;
        b=F2aWzszYOlEcTvTfPTZmlYIjrs5jc57kLZ4K0T2FBsDcPc5fnJIHkwJeEYHiKdXSGX
         SIqnuiAbbRVuQbS7fL+xYUOTvJVBRCzDpx18v1ez4FB1ZIsw/j7ICdpP7OPDcBtm0CwP
         bgrBIEQ6wyfGYeHpArJce+2AxImU8Lcin2VZE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722414298; x=1723019098;
        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=aFmD+9qFxifgdMS/MAeVrQLxD634+tJpYhYKO71zBAA=;
        b=RdXtk9QgVoJFEBUMf7XR9yJqoFJluKtJ7J/gvTDFAhNDBIuoc7mViBQ4L8sINojZaL
         8Z1iiAFL+GgRd4jZ2aez6iT1LVBn1Qe4vZnZESVOk8nYCkTWXX93z6t/Kt5hcvs0JGmS
         S2EP+NvUnUncm53WeGz3kvee0if/n7iksf31+s0L/Z3K8qNRypFHp8lmC+P1dN3UCTq9
         l//2neg4NO4IWZizgd6fpdyNhgMKXhzeDD11Tj21aVt3bJ0TrPjLkv6NZDFaWVjzuyPZ
         EWvs3KQtSMOsIv0w/yf4WNfFRHHTN86R8Qy8IJjjXGdRaL9s0HGa7y12aZLmhHwmZc7X
         Fgzw==
X-Gm-Message-State: AOJu0Yw3Okf2vnM4lsTgL9OvQ6qWcgajjOJ5KOhjKk5si7wHVwLZFone
	J1rem/p0XABg/0IkkAGrEgegsAD9npDCPGgyVMAIii06n8oauls/esvGL+ME5ds=
X-Google-Smtp-Source: AGHT+IF7Az4aWmSYGyC+LG9P+ilEz7w9jTlEfvOkDzBw+M8OiKEtY3/WWHmRr/75+mCexVevy/NQ1g==
X-Received: by 2002:a05:620a:4488:b0:79d:7a40:1bea with SMTP id af79cd13be357-7a1e522a3c6mr1718557285a.7.1722414297669;
        Wed, 31 Jul 2024 01:24:57 -0700 (PDT)
Date: Wed, 31 Jul 2024 10:24:55 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Juergen Gross <jgross@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Message-ID: <Zqn014wCEfWhyo1-@macbook>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com>
 <Zqnswi7ihOhMxPsi@macbook>
 <0aa0982a-30b3-43cd-9a9e-4542d7cb583f@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0aa0982a-30b3-43cd-9a9e-4542d7cb583f@suse.com>

On Wed, Jul 31, 2024 at 09:58:28AM +0200, Jan Beulich wrote:
> On 31.07.2024 09:50, Roger Pau Monné wrote:
> > On Mon, Jul 08, 2024 at 07:41:19PM +0800, Jiqian Chen wrote:
> >> --- a/xen/arch/x86/physdev.c
> >> +++ b/xen/arch/x86/physdev.c
> >> @@ -323,7 +323,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
> >>          if ( !d )
> >>              break;
> >>  
> >> -        ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
> >> +        /* Only mapping when the subject domain has a notion of PIRQ */
> >> +        if ( !is_hvm_domain(d) || has_pirq(d) )
> > 
> > I'm afraid this is not true.  It's fine to map interrupts to HVM
> > domains that don't have XENFEAT_hvm_pirqs enabled.  has_pirq() simply
> > allow HVM domains to route interrupts from devices (either emulated or
> > passed through) over event channels.
> > 
> > It might have worked in the past (when using a version of Xen < 4.19)
> > because XENFEAT_hvm_pirqs was enabled by default for HVM guests.
> > 
> > physdev_map_pirq() will work fine when used against domains that don't
> > have XENFEAT_hvm_pirqs enabled, and it needs to be kept this way.
> > 
> > I think you want to allow PHYSDEVOP_{,un}map_pirq for HVM domains, but
> > keep the code in do_physdev_op() as-is.  You will have to check
> > whether the current paths in do_physdev_op() are not making
> > assumptions about XENFEAT_hvm_pirqs being enabled when the calling
> > domain is of HVM type.  I don't think that's the case, but better
> > check.
> 
> Yet the goal is to disallow mapping into PVH domains. The use of
> has_pirq() was aiming at that. If that predicate can't be used (anymore)
> for this purpose, which one is appropriate now?

Why do you want to add such restriction now, when it's not currently
present?

It was already the case that a PV dom0 could issue
PHYSDEVOP_{,un}map_pirq operations against a PVH domU, whatever the
result of such operation be.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 08:32:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 08:32:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768335.1179099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ4kj-0008JQ-OG; Wed, 31 Jul 2024 08:32:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768335.1179099; Wed, 31 Jul 2024 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 1sZ4kj-0008JJ-LC; Wed, 31 Jul 2024 08:32:09 +0000
Received: by outflank-mailman (input) for mailman id 768335;
 Wed, 31 Jul 2024 08:32: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=kMgj=O7=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sZ4kh-0008JB-Q3
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 08:32:07 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20610.outbound.protection.outlook.com
 [2a01:111:f403:200a::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5cf466eb-4f17-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 10:32:05 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH7PR12MB5805.namprd12.prod.outlook.com (2603:10b6:510:1d1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.21; Wed, 31 Jul
 2024 08:31: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.7807.026; Wed, 31 Jul 2024
 08:31: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: 5cf466eb-4f17-11ef-8776-851b0ebba9a2
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iRYMwxY5+P4dPJc+nEYHwk8sHTUbsjxMJCdMZKHYRGO9JE8RxRvs3ep6PFWe15W/LyfvuruUB4XkOBHlaHMFIIAiam56FQXnDCXgNWdUTlI1ZT2r19IFibRih7ayk7U24zeX9ex42mZGtBCdM95BL2UIB+/rmfrCB7bzitfYQFMm3A+jQZZIRIUGSJEblVKJMl28eg5JES7E4/A45Zl+gTjMrpiUatYQUjjhvOKzXJ/VY3dLBiGdtsD5WuHB4oQUIaQ5lPP5nsiDDnOA4vuUXrckax2U3irFmNJXQF0zMehIk2qL8b3vN2+tl1J/5L9TAfmryGeluXjphfvvqv0KNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=USIo22zCjQIt4T+cOOzqhiUP0n8Gxbp9ZoO2bCwHbqE=;
 b=VsHC716e0VPuiiUpoBiG1kAxO5FrXtqYkUGdYsZ03hEJxUB4fQm9f7QqyzXlVmePFAlEDEytYOfhBa7RRBdYs06XdHWjvKUFj2pTzTDWgiSYbrElBLcbiWura9E9TE/pjxDTZurEc0yJzgaTCpDzBPdDYs1lcCaejXQjtGSGKCoLrkYKf6hEJu/8ZcgKjKQiiLQ3ZdbkU2/FBLOL5T12iLk4gJGXhDJ9XEhee7q0CUaIjCtikgp/x2CwRfldzcqbBqQZP85RcIsPMj1F+AOW7BQPCWZYZevA53X0Hx0ltlCf7InNu0glnkSu4GDnwnsdefivWZlaOgYgmX/ZSA7nsQ==
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=USIo22zCjQIt4T+cOOzqhiUP0n8Gxbp9ZoO2bCwHbqE=;
 b=xXszlJjWyX1zBTyUSl1Jn6wjfrQcv0nH4cslHCwgG0DWUuTDXzcrHF7/bYEYASEJ198iCz+YhkF1Sm7yRFxbbOnoxW7pJlT+vr/W757B+o/Q2FNMtQut21XvrkrWvxXhsOl/kT0HtZh+Z/3l+TpAeJKw/Zokk4QAnyXm1HYNjq8=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Wei Liu
	<wl@xen.org>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, Juergen
 Gross <jgross@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Topic: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Index: AQHa0SvUYCKIEvNO4Ei/mjm7Qit34LIPYP0AgAHFpIA=
Date: Wed, 31 Jul 2024 08:31:59 +0000
Message-ID:
 <BL1PR12MB584905C225BE759A633DEAAEE7B12@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com>
 <d08179b1-a114-4ae9-a6da-e907f2c027c3@citrix.com>
In-Reply-To: <d08179b1-a114-4ae9-a6da-e907f2c027c3@citrix.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.7807.009)
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_|PH7PR12MB5805:EE_
x-ms-office365-filtering-correlation-id: e351ae33-bb50-44e4-3245-08dcb13b3ed9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?U0Z1T3JUOXpvclVRWnNzbEtpcGcrTHR0Q0RmbllsRmdYS281dVlnTzY1QnNm?=
 =?utf-8?B?Nk5lbFFoakJJcFB6K3htWEgxSzdCUkRNbktLYk81QXdqbGxXbHNEYXhQTjJa?=
 =?utf-8?B?RnNKdlVJcS9FcmF4MjhwZlA5ZjA2dUdYY09BcGJVR0hpSzh0N2lDQkl6dEUr?=
 =?utf-8?B?akFwamt1dGprYmJuenlZOTYzbDh1dWlEV1RiaVhtSjU2b1BpRHR1REx3dmkx?=
 =?utf-8?B?N3BEVzMvMDNxZ3dzRm5VL1JFRTFzSFNoVkdMbjllcXh6NEViQnBLUFJpYnM3?=
 =?utf-8?B?OGg2b1h3RXgxL1N6ZlA0MmdBUmQ1Vjg5T1E4dXY3YjYycktJT2tvMHYrVW5J?=
 =?utf-8?B?R0NNaWJFR0gwM21QbTJLczJwRlZra2xHbWxzSldONm1jWDBCZ0RXVEdLdW82?=
 =?utf-8?B?MWxZR3dDQ1FtV0hsb1VnM0VPTTV6UkpOVGRvUEpUb3krOEo1d05qcUlJY0w1?=
 =?utf-8?B?QWpMRkZTSjlTWXZiOWVGQW9wTHdoWkNNSlFrcnpaV2o4b1Q1MytOOFMwZHZj?=
 =?utf-8?B?MFBnNVI5SktTKytnR2JjakN1YUs3Y3JSTUwyeURlV2IwTkNPbkVRZWdZd3Fu?=
 =?utf-8?B?V1ZGSVU3UE1IOStzUEpXbjFXdDYyWXEyUGJjVUNsaWhTem9Jd3ZlSDZEeXRj?=
 =?utf-8?B?anpqY3BkMjZTVGt3NU9mejg4ZzRkV3ltb2xERHQvdU9kQ0p4dmdBYU9PeW05?=
 =?utf-8?B?ZzYyZ2xOKzFhZXFvbWJtY2s1TUx0MS80REdWZHh4ZW5TWFdhazRPek9iVXpn?=
 =?utf-8?B?Qm5VNnBhcEh2eGlXcGV5ZUtlMzNrUXMvYkNGRDR1VXAvUjJ0TjJTUHpqS0VI?=
 =?utf-8?B?MVJRZWJlakp0bzBJNU1CSDRQeTZzVTgwTTZCZzNVQ0NTOVU4U09BRDFiZWZB?=
 =?utf-8?B?L2RVMWdVMUZpODFseW9tRUQvMlc2TEtncDBacmhORERtMUt1WkUxSmRHTjFz?=
 =?utf-8?B?by9JejJZcU1GTEtManFGSU5sTHhtSDRKM25tTVhzc0FVSjIyWE9wZUc4em9r?=
 =?utf-8?B?RmRvRm9BYm5oOHg5MndjMW45UkN2OHZGM2FSY2QzT2VQRTdBNEpiODFQeGRE?=
 =?utf-8?B?K1duYXA4Zk13WTZ6UEs3RWNOVzRLSFZpSUNHc04yVk9tZGQ5T2hLbW9hamVl?=
 =?utf-8?B?SGxEdGltZE9Kd3pPckx0dXpJY09LTTRoVXpNaGVORW0zOHZteXFRbWlGZVNH?=
 =?utf-8?B?YzhTa2RjbDd6NmNlbXVQVW9JMmdPK0NodEJidWVZOHZQSFVpQy9UejNCZTNQ?=
 =?utf-8?B?eWZxYzZQK29wSnlLK08zWEVacFBpL2FDclQyUGJ6aFZ0SUxxQmpaVUJoTHVT?=
 =?utf-8?B?TUNyQ1hEWDFzeWxkTHhkTi9rVmlhVXluMHpWMmhwck1TaEZyK3N0L0tkaHFO?=
 =?utf-8?B?UUZBZ284MWY3UVNWYkorZU0wYjFnazVFTzFQbUh5d3FtQVdNcWFtaDVXc3R0?=
 =?utf-8?B?UHNBTHNScnJ2U25GZUczS0FmRlp0Wnl1YTRRaVFrZlBQSVZuS0tVeEEzeU1T?=
 =?utf-8?B?Z2dKTnE2aVJWa1o2ZjMyMHhNRWZPYk1SVE81VGJsRk1Tcjh1b1FXVUVSRTky?=
 =?utf-8?B?YjM3R3BOdVVYeDZaWmM1VEVzNnhFaTdQZUNobFZ6dHB1QWZvVU1oaGhENzN6?=
 =?utf-8?B?M2E5dFZsSXg0WXlMVFlPQ3VvUnlEK2F2bXVyc1pUNXg3Mys3WDBORjNEUlBs?=
 =?utf-8?B?NkFiNmFWMlc3QlNJdTRsSGpNbGRLU21CaTBCVUxBdkdQVUUxcE02bW96UmMr?=
 =?utf-8?B?Skd0WitXS1FKeEVjWHJZa2JQU0JJYlI4NHo2Ympqa0Jlb1ZHemREOG5XVTBO?=
 =?utf-8?Q?x8CjEWIRZBQXKEHowGzvWWbgtmn5ipqkQkl1E=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cTh5ZXFZOStjMWRZV0w3UzE4eEU3bEs2UXBsOUkrYSsva0I5UnROdmhyWFo2?=
 =?utf-8?B?K2tKeVBmOWtadmJXUW5yS2c4ZVNKamd4eGlhdmRqNDlkWUxuYU01WEVadHdV?=
 =?utf-8?B?dlFEMVVFS0dOSmdSV1luc0xhZzlucWU1SHBUN3NnQ08zZlVjbnF2djJBVkly?=
 =?utf-8?B?VFo1YVZzbE9MMldJMkpjZy80SmxKQ1o2NEJ3dzF6cGNzYmpFV2lsZHJxbWIx?=
 =?utf-8?B?Rk1maGtFc2dCWExram5YYWgwQnJNbUNDdDVaQWMxSEkranhjR2k3bWlNdm9h?=
 =?utf-8?B?cDZWT2lENWZZUWMxc2l6M0I2WFkraGI4aGpxUGZGOXV0TmJkWndCQ2tZem85?=
 =?utf-8?B?dmxTZXJDTFlTSzNJcGt0NG12SWRvUDZMTWdHVkJLZGM5WFdRZnJySVhSUExu?=
 =?utf-8?B?bzRsekFxck04QytJY2wybE1sYmZodjRiaG56aHhjVmRUSEZDNkJ0blNtZWlX?=
 =?utf-8?B?aDh3WGMyanAvN25LK2lZOU1FbjJ5Ry9PWjA4bkxsK2ZYMWh0VFNvMzVlTkt6?=
 =?utf-8?B?TmR2RHJnc20rdlpGcFl6NFVDUjdMeUdWbHBVNkY0ak4wTmllVVkrSG1tQkl0?=
 =?utf-8?B?d1ZlVEFpUVFIZEVNSWU0aEZLWHhQZkR3QSs4dVdFci9wcWRNbm1pdldMMjNO?=
 =?utf-8?B?dCs1amlFTG5FWFo2R3VIdzJZcE5wbk1kRjFNNHo2cXh2K3VsZWZRYkNjd3Aw?=
 =?utf-8?B?UlRuOGpJVkFYK1JJSUNOTjY0cDRmdEM3MnVUYjZmT2NUeCtJMXpmb2cxLzZS?=
 =?utf-8?B?eXpkYml5K2dmWkcxVzQ5QTM5NElrbkRISG0rZjBLTVFwM1d2V0JFVFB4eVVH?=
 =?utf-8?B?VkFVM1BaNnJRTWR6cDRldE43dGtPMjRodktleko2cVFhOTdDUWNnelQ4Zk1n?=
 =?utf-8?B?RllNclJ2Z3dMd2x4QUhQMFdDQXhQdVI5NWJrdnZEejk2VTAvcEhsVmFlL1I4?=
 =?utf-8?B?NUY0VU51UnRocFVvV3RWczZ6TXI2RHBFbHhtV0pxbGdKRzhiRDNyQ1lpcWF3?=
 =?utf-8?B?OFlsWWdvSldaZ29SYzNWdVB0TVBFenk4RDNsVlVjK0xOMXMyKy96MTJVY0FP?=
 =?utf-8?B?NGQ1RVdIWWtxT0hnTkhtZXFsRUJKMGRXY0JLVVVCVWx3VFlwTHMxNDJkMlVl?=
 =?utf-8?B?eS9PYytWbWJRcE5YcWltSTd0WG41ZTZZWHYvc2RQYWh1c0dJcGZVcVpmcVRn?=
 =?utf-8?B?aksyTnVEeFI0aE02MGpKYjNPQjdFdnZvdE9PTjNjWWRJWFRwSFpmYW1LUDJN?=
 =?utf-8?B?b0s5aUpVSXRSYXdnZmx2WS9mMG9mcGRvWmhDMzdWQ0hxWTRTRi81dit5SnY0?=
 =?utf-8?B?TXpVVXlESHdSdlVkalY4ZDVCdEpEUkNTV0tmV1ltNWloam1wVGdEUGZ1azFI?=
 =?utf-8?B?cnIxZ2tqQllZb2x4b216RnBHR0tqZHVGQzB5bzlUV1lyR1VRckxOS3h5bThv?=
 =?utf-8?B?dndRZ2x1YWVmdzhoTEZCSEhNbFdsbm1RVW5MTktmczJsTEI4N3lSSEpVYTd6?=
 =?utf-8?B?YlhNejN3N2t2WFFCTTdqdk5kZy9BazNUcVErb09RSTBmV0R5bjN2bk9HbjY4?=
 =?utf-8?B?RU1VYUZjSlU3SDdWZHhiMlNSbk9jMkdqcXNLTTg0bDZrekF1aEVpaElBVTdw?=
 =?utf-8?B?WGFOZ0tPUFFXcXJDMFcwUkx6Q205RkxRajA4aXMwZythYzdrblRLbXZxQUha?=
 =?utf-8?B?cE5zNUJOUFVJMTdwd0xvZlNlaXhFZzJMNXlUOUozcFFkSnpxbVdnNks0cEg5?=
 =?utf-8?B?SzUzajFKZEN0OVNLSDQzRDBaV0ExUkNCTUV0VW44VHhjUTRvc0F3djIwS01q?=
 =?utf-8?B?NmFiNzRreE1LNGxSUC9Iem1OZHh2MlRvTnk1N3AzellXb25Ldmx5YzhQQ1VL?=
 =?utf-8?B?YnZsR2EzeDlQZkE2T3NPMlZrNVViSng3YjVqaXN0Z3ZvMEVGOXhNN0pCWlJ6?=
 =?utf-8?B?SENjTWQwQkY2OUpEZ2NoQlBvTzlQek9kSnc5Ukd1N1lzVlg0cGltZGJpWUZP?=
 =?utf-8?B?MjhqU0ZHWFZFeWN5a3U2aEdCcTdtMGpGckRKeVhROFhVdGNXSEJZbTc1L3M4?=
 =?utf-8?B?MG9Ddys5ejBHTHNHUkFEVE14UnJCa2MyKzFSTDVmMVRpdEZ0WEpqYTcvNmZ3?=
 =?utf-8?Q?G6/M=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <C69EDBAB7AECC24D82E87BB3AD186DEC@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: e351ae33-bb50-44e4-3245-08dcb13b3ed9
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jul 2024 08:31:59.4832
 (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: y81EKa/zo6NGbXLCHsKGowMbZ0qlij9WFQcyG/8/t2Lycq3YfqXNS7Olerj4UJ1p88BzPdQ+SSHqnRm1yVlyvw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5805

T24gMjAyNC83LzMwIDIxOjA5LCBBbmRyZXcgQ29vcGVyIHdyb3RlOg0KPiBPbiAwOC8wNy8yMDI0
IDEyOjQxIHBtLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IElmIHJ1biBYZW4gd2l0aCBQVkggZG9t
MCBhbmQgaHZtIGRvbVUsIGh2bSB3aWxsIG1hcCBhIHBpcnEgZm9yDQo+PiBhIHBhc3N0aHJvdWdo
IGRldmljZSBieSB1c2luZyBnc2ksIHNlZSBxZW11IGNvZGUNCj4+IHhlbl9wdF9yZWFsaXplLT54
Y19waHlzZGV2X21hcF9waXJxIGFuZCBsaWJ4bCBjb2RlDQo+PiBwY2lfYWRkX2RtX2RvbmUtPnhj
X3BoeXNkZXZfbWFwX3BpcnEuIFRoZW4geGNfcGh5c2Rldl9tYXBfcGlycQ0KPj4gd2lsbCBjYWxs
IGludG8gWGVuLCBidXQgaW4gaHZtX3BoeXNkZXZfb3AsIFBIWVNERVZPUF9tYXBfcGlycQ0KPj4g
aXMgbm90IGFsbG93ZWQgYmVjYXVzZSBjdXJyZCBpcyBQVkggZG9tMCBhbmQgUFZIIGhhcyBubw0K
Pj4gWDg2X0VNVV9VU0VfUElSUSBmbGFnLCBpdCB3aWxsIGZhaWwgYXQgaGFzX3BpcnEgY2hlY2su
DQo+Pg0KPj4gU28sIGFsbG93IFBIWVNERVZPUF9tYXBfcGlycSB3aGVuIGRvbTAgaXMgUFZIIGFu
ZCBhbHNvIGFsbG93DQo+PiBQSFlTREVWT1BfdW5tYXBfcGlycSBmb3IgdGhlIHJlbW92YWwgZGV2
aWNlIHBhdGggdG8gdW5tYXAgcGlycS4NCj4+IEFuZCBhZGQgYSBuZXcgY2hlY2sgdG8gcHJldmVu
dCAodW4pbWFwIHdoZW4gdGhlIHN1YmplY3QgZG9tYWluDQo+PiBkb2Vzbid0IGhhdmUgYSBub3Rp
b24gb2YgUElSUS4NCj4+DQo+PiBTbyB0aGF0IHRoZSBpbnRlcnJ1cHQgb2YgYSBwYXNzdGhyb3Vn
aCBkZXZpY2UgY2FuIGJlDQo+PiBzdWNjZXNzZnVsbHkgbWFwcGVkIHRvIHBpcnEgZm9yIGRvbVUg
d2l0aCBhIG5vdGlvbiBvZiBQSVJRDQo+PiB3aGVuIGRvbTAgaXMgUFZIDQo+Pg0KPj4gU2lnbmVk
LW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+PiBTaWduZWQtb2Zm
LWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogSmlx
aWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+PiAtLS0NCj4+ICB4ZW4vYXJjaC94ODYv
aHZtL2h5cGVyY2FsbC5jIHwgIDYgKysrKysrDQo+PiAgeGVuL2FyY2gveDg2L3BoeXNkZXYuYyAg
ICAgICB8IDEyICsrKysrKysrKystLQ0KPj4gIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9u
cygrKSwgMiBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2
bS9oeXBlcmNhbGwuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMNCj4+IGluZGV4IDBm
YWI2NzBhNDg3MS4uMDNhZGEzYzg4MGJkIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gveDg2L2h2
bS9oeXBlcmNhbGwuYw0KPj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYw0KPj4g
QEAgLTcxLDggKzcxLDE0IEBAIGxvbmcgaHZtX3BoeXNkZXZfb3AoaW50IGNtZCwgWEVOX0dVRVNU
X0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpDQo+PiAgDQo+PiAgICAgIHN3aXRjaCAoIGNtZCApDQo+
PiAgICAgIHsNCj4+ICsgICAgICAgIC8qDQo+PiArICAgICAgICAqIE9ubHkgYmVpbmcgcGVybWl0
dGVkIGZvciBtYW5hZ2VtZW50IG9mIG90aGVyIGRvbWFpbnMuDQo+PiArICAgICAgICAqIEZ1cnRo
ZXIgcmVzdHJpY3Rpb25zIGFyZSBlbmZvcmNlZCBpbiBkb19waHlzZGV2X29wLg0KPj4gKyAgICAg
ICAgKi8NCj4+ICAgICAgY2FzZSBQSFlTREVWT1BfbWFwX3BpcnE6DQo+PiAgICAgIGNhc2UgUEhZ
U0RFVk9QX3VubWFwX3BpcnE6DQo+PiArICAgICAgICBicmVhazsNCj4+ICsNCj4+ICAgICAgY2Fz
ZSBQSFlTREVWT1BfZW9pOg0KPj4gICAgICBjYXNlIFBIWVNERVZPUF9pcnFfc3RhdHVzX3F1ZXJ5
Og0KPj4gICAgICBjYXNlIFBIWVNERVZPUF9nZXRfZnJlZV9waXJxOg0KPj4gZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMgYi94ZW4vYXJjaC94ODYvcGh5c2Rldi5jDQo+PiBpbmRl
eCBkNmRkNjIyOTUyYTkuLjlmMzBhOGM2M2EwNiAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL3g4
Ni9waHlzZGV2LmMNCj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMNCj4+IEBAIC0zMjMs
NyArMzIzLDExIEBAIHJldF90IGRvX3BoeXNkZXZfb3AoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRM
RV9QQVJBTSh2b2lkKSBhcmcpDQo+PiAgICAgICAgICBpZiAoICFkICkNCj4+ICAgICAgICAgICAg
ICBicmVhazsNCj4+ICANCj4+IC0gICAgICAgIHJldCA9IHBoeXNkZXZfbWFwX3BpcnEoZCwgbWFw
LnR5cGUsICZtYXAuaW5kZXgsICZtYXAucGlycSwgJm1zaSk7DQo+PiArICAgICAgICAvKiBPbmx5
IG1hcHBpbmcgd2hlbiB0aGUgc3ViamVjdCBkb21haW4gaGFzIGEgbm90aW9uIG9mIFBJUlEgKi8N
Cj4+ICsgICAgICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgfHwgaGFzX3BpcnEoZCkgKQ0KPj4g
KyAgICAgICAgICAgIHJldCA9IHBoeXNkZXZfbWFwX3BpcnEoZCwgbWFwLnR5cGUsICZtYXAuaW5k
ZXgsICZtYXAucGlycSwgJm1zaSk7DQo+PiArICAgICAgICBlbHNlDQo+PiArICAgICAgICAgICAg
cmV0ID0gLUVPUE5PVFNVUFA7DQo+PiAgDQo+PiAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihk
KTsNCj4+ICANCj4+IEBAIC0zNDYsNyArMzUwLDExIEBAIHJldF90IGRvX3BoeXNkZXZfb3AoaW50
IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpDQo+PiAgICAgICAgICBpZiAo
ICFkICkNCj4+ICAgICAgICAgICAgICBicmVhazsNCj4+ICANCj4+IC0gICAgICAgIHJldCA9IHBo
eXNkZXZfdW5tYXBfcGlycShkLCB1bm1hcC5waXJxKTsNCj4+ICsgICAgICAgIC8qIE9ubHkgdW5t
YXBwaW5nIHdoZW4gdGhlIHN1YmplY3QgZG9tYWluIGhhcyBhIG5vdGlvbiBvZiBQSVJRICovDQo+
PiArICAgICAgICBpZiAoICFpc19odm1fZG9tYWluKGQpIHx8IGhhc19waXJxKGQpICkNCj4+ICsg
ICAgICAgICAgICByZXQgPSBwaHlzZGV2X3VubWFwX3BpcnEoZCwgdW5tYXAucGlycSk7DQo+PiAr
ICAgICAgICBlbHNlDQo+PiArICAgICAgICAgICAgcmV0ID0gLUVPUE5PVFNVUFA7DQo+PiAgDQo+
PiAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsNCj4+ICANCj4gDQo+IEdpdGxhYiBpcyBk
aXNwbGVhc2VkIHdpdGggeW91ciBvZmZlcmluZy4NCj4gDQo+IGh0dHBzOi8vZ2l0bGFiLmNvbS94
ZW4tcHJvamVjdC94ZW4vLS9waXBlbGluZXMvMTM5MzQ1OTYyMg0KPiANCj4gVGhpcyBicmVha3Mg
Ym90aCB7YWRsLHplbjNwfS1wY2ktaHZtLXg4Ni02NC1nY2MtZGVidWcsIGFuZCBnaXZlbiB0aGU6
DQo+IA0KPiAoWEVOKSBbwqDCoMKgIDguMTUwMzA1XSBIVk0gcmVzdG9yZSBkMTogQ1BVIDANCj4g
bGlieGw6IGVycm9yOiBsaWJ4bF9wY2kuYzoxNDkxOnBjaV9hZGRfZG1fZG9uZTogRG9tYWluDQo+
IDE6eGNfcGh5c2Rldl9tYXBfcGlycSBpcnE9MTggKGVycm9yPS0xKTogTm90IHN1cHBvcnRlZA0K
PiBsaWJ4bDogZXJyb3I6IGxpYnhsX3BjaS5jOjE4MDk6ZGV2aWNlX3BjaV9hZGRfZG9uZTogRG9t
YWluDQo+IDE6bGlieGxfX2RldmljZV9wY2lfYWRkIGZhaWxlZCBmb3IgUENJIGRldmljZSAwOjM6
MC4wIChyYyAtMykNCj4gbGlieGw6IGVycm9yOiBsaWJ4bF9jcmVhdGUuYzoxOTYyOmRvbWNyZWF0
ZV9hdHRhY2hfZGV2aWNlczogRG9tYWluDQo+IDE6dW5hYmxlIHRvIGFkZCBwY2kgZGV2aWNlcw0K
PiBsaWJ4bDogZXJyb3I6IGxpYnhsX3hzaGVscC5jOjIwNjpsaWJ4bF9feHNfcmVhZF9tYW5kYXRv
cnk6IHhlbnN0b3JlIHJlYWQNCj4gZmFpbGVkOiBgL2xpYnhsLzEvdHlwZSc6IE5vIHN1Y2ggZmls
ZSBvciBkaXJlY3RvcnkNCj4gbGlieGw6IHdhcm5pbmc6IGxpYnhsX2RvbS5jOjQ5OmxpYnhsX19k
b21haW5fdHlwZTogdW5hYmxlIHRvIGdldCBkb21haW4NCj4gdHlwZSBmb3IgZG9taWQ9MSwgYXNz
dW1pbmcgSFZNDQo+IGxpYnhsOiBlcnJvcjogbGlieGxfZG9tYWluLmM6MTYxNjpkb21haW5fZGVz
dHJveV9kb21pZF9jYjogRG9tYWluDQo+IDE6eGNfZG9tYWluX2Rlc3Ryb3kgZmFpbGVkOiBObyBz
dWNoIHByb2Nlc3MNCg0KU29ycnkgdG8gZm9yZ2V0IHRvIHZhbGlkYXRlIHRoZSBzY2VuYXJpbyBv
ZiAiaHZtX3BpcnE9MCIgZm9yIEhWTSBndWVzdCBzaW5jZSBWMTAtPlYxMShyZW1vdmUgdGhlIHNl
bGYtY2hlY2sgImQgPT0gY3VycmQiKS4NCg0KVjEwIHZlcnNpb246DQorICAgICAgICAvKiBQcmV2
ZW50IHNlbGYtbWFwIHdoZW4gY3VycmQgaGFzIG5vIFg4Nl9FTVVfVVNFX1BJUlEgZmxhZyAqLw0K
KyAgICAgICAgaWYgKCBpc19odm1fZG9tYWluKGQpICYmICFoYXNfcGlycShkKSAmJiBkID09IGN1
cnJkICkNCisgICAgICAgIHsNCisgICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsNCisg
ICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQorICAgICAgICB9DQoNClYxMSB2ZXJzaW9u
Og0KKyAgICAgICAgLyogUHJldmVudCBtYXBwaW5nIHdoZW4gdGhlIHN1YmplY3QgZG9tYWluIGhh
cyBubyBYODZfRU1VX1VTRV9QSVJRICovDQorICAgICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkg
JiYgIWhhc19waXJxKGQpICkNCisgICAgICAgIHsNCisgICAgICAgICAgICByY3VfdW5sb2NrX2Rv
bWFpbihkKTsNCisgICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQorICAgICAgICB9DQoN
ClYxMCBpcyBmaW5lIGZvciB3aGVuIGh2bV9waXJxIGlzIGVuYWJsZSBvciBkaXNhYmxlLiANClRo
aXMgaXNzdWUgaXMgZnJvbSBWMTEsIHRoZSBjYXVzZSBpcyB0aGF0IHdoZW4gcGFzcyAiaHZtX3Bp
cnE9MCIgdG8gSFZNIGd1ZXN0LCB0aGVuIGhhc19waXJxKCkgaXMgZmFsc2UsIGJ1dCBpdCBzdGls
bCB1c2VzIHRoZSBwaXJxIHRvIHJvdXRlIHRoZSBpbnRlcnJ1cHQgb2YgcGFzc3Rocm91Z2ggZGV2
aWNlcy4NClNvLCBpdCBzdGlsbCBkb2VzIHhjX3BoeXNkZXZfKHVuKW1hcF9waXJxLCB0aGVuIGZh
aWxzIGF0IHRoZSBoYXNfcGlycSgpIGNoZWNrLg0KDQpIaSBKYW4sDQpTaG91bGQgSSBuZWVkIHRv
IGNoYW5nZSB0byBWMTAgdG8gb25seSBwcmV2ZW50IHRoZSBzZWxmLW1hcHBpbmcgd2hlbiB0aGUg
c3ViamVjdCBkb21haW4gaGFzIG5vIFBJUlE/DQpTbyB0aGF0IGl0IGNhbiBhbGxvdyBQSFlTREVW
T1BfbWFwX3BpcnEgZm9yIGZvcmVpZ24gbWFwcGluZywgbm8gbWF0dGVyIHRoZSBkb20wIG9yIHRo
ZSBkb21VIGhhcyBQSVJRIG9yIG5vdD8NCg0KPiANCj4gSSdkIHNheSB0aGF0IHdlJ3JlIGhpdHRp
bmcgdGhlIG5ld2x5IGludHJvZHVjZWQgLUVPUE5PVFNVUFAgcGF0aC4NCj4gDQo+IEluIHRoZSB0
ZXN0IHNjZW5hcmlvLCBkb20wIGlzIFBWLCBhbmQgaXQncyBhbiBIVk0gZG9tVSB3aGljaCBpcyBi
cmVha2luZy4NCj4gDQo+IFRoZSBzaWJsaW5nICotcGNpLXB2LSogdGVzdHMgKGEgUFYgZG9tVSkg
YXJlIHdvcmtpbmcgZmluZS4NCj4gDQo+IEVpdGhlciB3YXksIEknbSBnb2luZyB0byByZXZlcnQg
dGhpcyBmb3Igbm93IGJlY2F1c2UgY2xlYXJseSB0aGUgInRoZQ0KPiBzdWJqZWN0IGRvbWFpbiBo
YXMgYSBub3Rpb24gb2YgUElSUSIgaGFzbid0IGJlZW4gcmVhc29uZWQgYWJvdXQNCj4gY29ycmVj
dGx5LCBhbmQgaXQncyBpbXBvcnRhbnQgdG8ga2VlcCBHaXRsYWIgQ0kgZ3JlZW4gYWNyb3NzIHRo
ZSBib2FyZC4NCj4gDQo+IH5BbmRyZXcNCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hl
bi4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 08:39:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 08:39:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768343.1179108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ4s2-0001EY-IO; Wed, 31 Jul 2024 08:39:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768343.1179108; Wed, 31 Jul 2024 08:39: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 1sZ4s2-0001ER-Fm; Wed, 31 Jul 2024 08:39:42 +0000
Received: by outflank-mailman (input) for mailman id 768343;
 Wed, 31 Jul 2024 08:39: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=kMgj=O7=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1sZ4s0-0001EH-Mx
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 08:39:40 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20604.outbound.protection.outlook.com
 [2a01:111:f400:7ea9::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6cc9a224-4f18-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 10:39:39 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 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.7807.28; Wed, 31 Jul
 2024 08:39:35 +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.7807.026; Wed, 31 Jul 2024
 08:39: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: 6cc9a224-4f18-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UFIG7JIcJnv2BLLljkP0yfrYqSpuw8f97B6Io38y+UsXH3nO/FOYvllvKLK6TvmJDFDXE0cEDap8CsQRkVWaG+KH7ld9k6C3Z/OuUvowpCRSIuXaRECOmsB96uFI6k4/Ypk8IT+kByNiiq9gox09l4tkc6wqGPpzlhvxyXHUJ7Gu7Fa4VvMFkiPOAGIcG7x2+TKv6WP7Wexmz1h4QKSUxH49yzatouvSHO2WsRXtWpnt0XEyCd9fLjSvomaZVIS6nwE5qebxYZDYc06bUtX6uf60ljD2QGimtOSzJde67hUiTNHTH1l6in45gAG3ZC4ZF3pjowXDiakDL75/efWKsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wvSbUFtu1E3Q5FoKpksFbmD/nt1tE8MtC0SXFNBIjM4=;
 b=DVllcCqWvPuJot8kDSg9O8+nOyFyd3GAzQDRXgS97M48hSaaQ+Klh7Mke3iEi5Kf8wNeA9yJvV2M35xw8aMB1+nDFzUMbpIXRP6K8gIn++Ke5vDlALh/FFs/Bs9oMhLDa71bOaO76bx4kTQx/QJ9OZG7SLOJJSfTH+vEX3SZA/Spj0VTgXkc39r9NipMHSnhWx0NfZnCJUieGyRKv/+58X3DEVge/pW5AUR2Zqzuf3+5ARKb2BlJmkfpl/lUOBPvKvv84i7GREXKgYJA0qyBD/BpAwtKObHMDVYDrqcio8JyKp5BAu0jNmVIv0mH6GOARrw294h+fqYl5n0Fe63DhQ==
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=wvSbUFtu1E3Q5FoKpksFbmD/nt1tE8MtC0SXFNBIjM4=;
 b=ZcFT8vvZko3ETyfbsNRGWrrjKXI/yaOitfqafaotuN1KxN480Vun0XO4egkXQDUqonYmjL4S62j4ZymbK7tU0PdYJyodeY7qatYjrDhMpRJRHCALRAnXD9ZtOXnprvMqzCZJRls16gn4jgFNh9gzFfOpltt58j6sA5wvgKLpngo=
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>, Jan
 Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Wei
 Liu <wl@xen.org>, George Dunlap <gwd@xenproject.org>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Juergen Gross <jgross@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Topic: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Thread-Index: AQHa0SvUYCKIEvNO4Ei/mjm7Qit34LIQmkQAgACSt4A=
Date: Wed, 31 Jul 2024 08:39:35 +0000
Message-ID:
 <BL1PR12MB584963452314C3B6B8E8A5B7E7B12@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com> <Zqnswi7ihOhMxPsi@macbook>
In-Reply-To: <Zqnswi7ihOhMxPsi@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.7807.009)
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_|PH7PR12MB6563:EE_
x-ms-office365-filtering-correlation-id: daf94622-2576-4795-4caf-08dcb13c4e82
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?OUZ5dERXUnNtd0NFdjRmTlZHdzhRSmFaaTd4R1BOdFFqYVk5SHJxYWFPdWxO?=
 =?utf-8?B?ZFA2K0M3cGFseitkRUcydG9BdzJxZTFqc0h4bTVHb3VyTFR1eVpjdTdvZlJv?=
 =?utf-8?B?YnVkbk5QeDZoWjhRYXEwQVhjU0hNNHN6OU9yV3BtS0ZxMnVpZ0F5MTNCR0ts?=
 =?utf-8?B?ODBGWU5hQlI4Y253Yk4wQ3EvMzRtZSt0eEdqUzJyYS8zNU1PUjJaTzdKWEM0?=
 =?utf-8?B?V0txa3VmVFJVRCttM2JvbXh4NmI0bjhlRGJoQjdHM0dsNFdZRU84eDhrLzYv?=
 =?utf-8?B?TmJaNHZOTy80RDZWWWVXUHRtdnBmTFlnak1Lelcya3liVGNuWkZjenpMZmw0?=
 =?utf-8?B?T3h0M2VvZHdhOGo0NUhBNkNVZWh3K3VQSzNram5qMFl1dm53RlB4NXdOMGxK?=
 =?utf-8?B?c0RjekplNEdxS3o5dUxvMEx4QWdnVmVBTG1KNXJSZWcvdytmcGF5VFppMVY2?=
 =?utf-8?B?SXU2aFJsSkhPZEplSnVhK1BnWDFxUUJ6MmQ5cnFsYWcwNFAwRDk3NW5ObzhL?=
 =?utf-8?B?SzdkbGorWi9jOGlhN0tWcUtRbGpxRHVteEpLdTJXY2lkWi9RK1IzQUIybkZ0?=
 =?utf-8?B?RFB2UGJ3LyttbHhndU41c1lhMWw4dXl5U09BWm9iVkRUL2pFTThlMFBjRy81?=
 =?utf-8?B?S25kWlhRTXhkWlU5QkZYMGZnZXpJVDF1clAvVEF1RnhqZExxMmw3NWdKdTdK?=
 =?utf-8?B?WURITFZJejNWUVZNYjQ0M3FxRWZQVjFTN3ptNnVpQTI2STM0Ylk0YkdDRFJE?=
 =?utf-8?B?YXJDaVFzcFJISE14M2Zha2lyeHJUeHJzTkxJOWw1REFGNjg0Vm4yclhPaVlq?=
 =?utf-8?B?SDgzRjY1bmJmTTBNbm13ZklRQ1ZSKzVxV3R1VmVJUHQvRkxTTkgyaHRhc0ZD?=
 =?utf-8?B?MjdvNzlJaFM0Qm0vUFZudi81azJDdXFqV3BKTCs5cXo0UHh4QVcvd1FuRnhP?=
 =?utf-8?B?UlZBQ2cwUXlrSzVpQTY2VW05b0Fwd24vZmJLSlA4TzhoaFRwem1ndUZBU2dG?=
 =?utf-8?B?ZUhJM3JJSUIvNG1VbFQvMU4rKzgzUzIwMjdQVyt6ZlQ2clNKUHhLU1RjMFN5?=
 =?utf-8?B?SDhVR1pvME5FaTlRcEJ0aE1MWlRWMmdnOFVTNWNuTytyT1hqVWIvKy9GNEx5?=
 =?utf-8?B?d0RhWCt6TU9PdERjdTdxTkpZUVcra1BwSVRFTnloMmtoT2JyTHVRVXBCdzhX?=
 =?utf-8?B?VjRSVnB1bkQ5WFhyRXdyOTU5TzROR05uMHNGOWZnSjBHUnVUZ0ZJMEpZN2J6?=
 =?utf-8?B?M3M3ZDJBOUs3L2hTZU40UnJ0UjZLSnRXMEFXaVp2Z2FrRHpSdTFqQ3FMajNl?=
 =?utf-8?B?M0NRZXYyUTRyaGN0ZEhYR0JVNnpNaWJ2WjZGaTlGa3Q2bGZEN09KZlpUQVdH?=
 =?utf-8?B?RFV5WWdOUlpYRmNJaWt6T2tXR0xzY3MraWlEanVTN3Z0M3YySE9rWGZIMUVP?=
 =?utf-8?B?MFZDVk1NNFJYV1NuekJ1M1RlY201WlFxVlA5QXJCNSs1VTZQeVhla3FYd25n?=
 =?utf-8?B?eExUYU4wQ1ZuQnZKbTEvdjRFdmJ4K0pNRlB1MXozZ2wweG0rZi9lMDVFMXFN?=
 =?utf-8?B?ejdBMVFBSjNIREl3OUVQK2VNWmVzempXcDBvTVpndDRiYVRWSDhxUXRrYlVP?=
 =?utf-8?B?UlhjYmoxeFR3VmgxS1M5KzJwSFlrcmUwdmdoYlAvdDd4Vy9LdUI5bHJQTncr?=
 =?utf-8?B?ZlQ1SXFxYVBZV0NORXZmL1ZQcFJGdW5kQTRVWXpaTFRsaGZJaWt2Sks5WHZF?=
 =?utf-8?B?NGhIVHV4Qm8rekVSdjh6OGNkTDJZbTliVVc4ZUQ5MmxnYTJSRXptOWViNEVO?=
 =?utf-8?B?dlgvN3R3T2dvZFpGdnhGWkdWV2M4MExTb0wvMkRUOW5aUFhWc3k1MTQ3QlBH?=
 =?utf-8?B?cm5HZXBGOEpaZFVheXAycXdURzBrWjZLK1A3N3Iwd0VuTHc9PQ==?=
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)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?SXNzSnIrUStLMEpxUlF3M0wxMm5wWWNCT3dKczNCZ0NVOFJlYWlmOFdoQmhj?=
 =?utf-8?B?bzJFNUErdmJtSkxnMU96N1RBWjVhK1Nqd2VpZWpoTFkvUFJjeUVLS1ZJQndW?=
 =?utf-8?B?cVVscDQwN2JhZlFSV0ZYSWFIY09xY3k1Vk1aVFdBWG5Sa1BWdk5GZ2R1b2xY?=
 =?utf-8?B?UjhxdG5wdTJXNnkwZEZvWkkwdHRnSFVqSzVyLzd0Q2c4c21VWUJpcHQ2MkFR?=
 =?utf-8?B?Zk5icUI0bmRpQWZ1eHNuMFFtVnpDUW54MXc4N21qU0pONzY3Tk5QK0tzdmcw?=
 =?utf-8?B?YW43Z1NNQnUvOEJXV3ErTzFreXliSG9ENHgxVGRCZUJWKzgwNEl2R1MzTjJJ?=
 =?utf-8?B?SWF4dFp3V3NEaWFpdUcvYXhqZ2x1N1REMG9ML3JQeUdXL3Arc3ROV1ZSV0t1?=
 =?utf-8?B?TXN0eG00UTN1RmNDYXNTclVYdkZyRVhYazl2a3VCK1BBT3F3SGR0eGJYeWxP?=
 =?utf-8?B?bkIyNCtjMEMzNkJMTU1DRndFUk8xRkR6VlpKRjR2ZEpEMGl0TUl4akZIejZw?=
 =?utf-8?B?NzV0WXdETXFxdG5KRHR3MXF1NmQ2elBVcldESnVmYTBOdzJjUHVBTWQ0bk90?=
 =?utf-8?B?SHJEVVoyc1o3N0VqUFZoNHNwVDRSdzZNMDY2aU1VY1dSNEdQdE9OS1NjZnN3?=
 =?utf-8?B?eGtFL3pVdjQ4dkRsUnE3c0VXQnFOcm5lMnptTU5tZHp4VExUNHdYVmZOYk5q?=
 =?utf-8?B?NXFsSzEvem9KOWY5T0QvZytmYmNVRmdlVDZzY1FjOHd0d1RmTmQ0Z0RjUUl2?=
 =?utf-8?B?Mm1iWHpJYUpkR1dUR25udW8xZUFvVmtqaUpjZW52MWNJV1ZTVS9vbmtXdWNl?=
 =?utf-8?B?dTdFYU5DeXIvTU9DYlZpUFBPbkdkQnZjZDNwbmE5NDhCM1owNlptMC9TRTZJ?=
 =?utf-8?B?SlRsOU90c2NzdmFGTHBISEN2ZkFoYnRRSWV2V1hVRG1pWm45MHJZS3hjRlcx?=
 =?utf-8?B?d1g3NW9MUTJnZlZrc2c1K2d2bk5NS2Z5OG1IUm96Q3Brbm56L0krZVQ3L0p5?=
 =?utf-8?B?aGl2QXJqYmFQNG9RYW9keG96bEN4bnV3VHBtakJGcDRCaE43U08rRjhmcGMr?=
 =?utf-8?B?TmNCcTdZYk14dFBJbVkxWmR3a3NNZmF1cE1sRUhYMWsvZEVMRXFRU0w3S2tu?=
 =?utf-8?B?UHZYSUxNbGh4S1BlcWR4eFQwOVlmQUpyaCtaMzVlZk1JNWZGeXBPcVJ3OHpm?=
 =?utf-8?B?ZURndHRsVXI4dk1sNGwxV29FNE9GakYrSXlhbTd5Zk4zNC80VXVkbUlPQmI4?=
 =?utf-8?B?bWNSL2cvZExpbHVNSXUrclQ3b0QzNldFb2k1OHFQdVNqT29xZHlhbVpMcGZa?=
 =?utf-8?B?Mmh5YlBKeTFCUUFCS0o4Z0I2VFFjSFlWSU5UdkwybWxZRGxhQUh2REQ4cmxD?=
 =?utf-8?B?M1lyNzZ5STNwWC9BRzFtMVlNTG9SMlhTaHNaTzVHLzFtRlFXZjNtbjk5d0Y0?=
 =?utf-8?B?Nm43SHM2RnE4VWpJNTIrNFZBL0d5d01TM3k0MzFXNUtDaU5LUUgxMHZhZUhh?=
 =?utf-8?B?NWd0UkRNSVBZVzc2a3JEYjBhN3FGM1FoMWZ2cXBHVDR2Q0ViaWEvSkJSZmVY?=
 =?utf-8?B?VXZJVnIzZitxTmlocnNlVkgzMkx2R0d4Q0JiYVJQSFJBcytKbWUwTDJ4a2Nh?=
 =?utf-8?B?LzVvREZ3MUVYOEVyZWVrUXN2M1l0dmlpMnMrMUpvY2FnZzBlQ0ExT2hURXdl?=
 =?utf-8?B?RWFKc1dqcE1uNkcyTERQcjd0QllISytvd0M3U0ZaM3owZ2dzNHVLVW5Sa093?=
 =?utf-8?B?djdORDUvRHprb01GSzhpblE3d0JmQXNuTVFvNldOUVlnRmp1dGNQMVVXbDQ0?=
 =?utf-8?B?Yk9EMWE5UWRJT0dsckVlcWI3YytWV01PYUhoK1loNXJCVmVybERCRUkydHAv?=
 =?utf-8?B?SzJmZ3NoQmlXZzlacU9CdXFKZTVsV2x6Z1lUdjNyWG9nMjlnN3BobEh1U3Q3?=
 =?utf-8?B?eUIwM0FnajFKVkd0eDlJYkZCWldRUTFsNUY0SGRjMGlrbU9SdDd5YXQ4dDgw?=
 =?utf-8?B?clgyc1hFUXpPNVRrV2xwQk9NN3ZYWXpSS1BIN2dpU29UOGtUc08vaGM2T1Q5?=
 =?utf-8?B?aXdKRHgyanNveGNNRzhaSVRtRnl4N0J2NGt6dmozenZud1dWNUtKNjlRaFEv?=
 =?utf-8?Q?YpNc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7A96C549BFD46A41B333E0077D24FA76@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: daf94622-2576-4795-4caf-08dcb13c4e82
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jul 2024 08:39:35.3029
 (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: M7RHEqFKdeV9TSbsUbMDgKoQMpFCSddnrBLVvRTiaHI0J7BcvuTOlrVwCu8vwMmnco8Ls7U0ux1zPrVGT3yO4Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6563

T24gMjAyNC83LzMxIDE1OjUwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBNb24sIEp1
bCAwOCwgMjAyNCBhdCAwNzo0MToxOVBNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IElm
IHJ1biBYZW4gd2l0aCBQVkggZG9tMCBhbmQgaHZtIGRvbVUsIGh2bSB3aWxsIG1hcCBhIHBpcnEg
Zm9yDQo+PiBhIHBhc3N0aHJvdWdoIGRldmljZSBieSB1c2luZyBnc2ksIHNlZSBxZW11IGNvZGUN
Cj4+IHhlbl9wdF9yZWFsaXplLT54Y19waHlzZGV2X21hcF9waXJxIGFuZCBsaWJ4bCBjb2RlDQo+
PiBwY2lfYWRkX2RtX2RvbmUtPnhjX3BoeXNkZXZfbWFwX3BpcnEuIFRoZW4geGNfcGh5c2Rldl9t
YXBfcGlycQ0KPj4gd2lsbCBjYWxsIGludG8gWGVuLCBidXQgaW4gaHZtX3BoeXNkZXZfb3AsIFBI
WVNERVZPUF9tYXBfcGlycQ0KPj4gaXMgbm90IGFsbG93ZWQgYmVjYXVzZSBjdXJyZCBpcyBQVkgg
ZG9tMCBhbmQgUFZIIGhhcyBubw0KPj4gWDg2X0VNVV9VU0VfUElSUSBmbGFnLCBpdCB3aWxsIGZh
aWwgYXQgaGFzX3BpcnEgY2hlY2suDQo+Pg0KPj4gU28sIGFsbG93IFBIWVNERVZPUF9tYXBfcGly
cSB3aGVuIGRvbTAgaXMgUFZIIGFuZCBhbHNvIGFsbG93DQo+PiBQSFlTREVWT1BfdW5tYXBfcGly
cSBmb3IgdGhlIHJlbW92YWwgZGV2aWNlIHBhdGggdG8gdW5tYXAgcGlycS4NCj4+IEFuZCBhZGQg
YSBuZXcgY2hlY2sgdG8gcHJldmVudCAodW4pbWFwIHdoZW4gdGhlIHN1YmplY3QgZG9tYWluDQo+
PiBkb2Vzbid0IGhhdmUgYSBub3Rpb24gb2YgUElSUS4NCj4+DQo+PiBTbyB0aGF0IHRoZSBpbnRl
cnJ1cHQgb2YgYSBwYXNzdGhyb3VnaCBkZXZpY2UgY2FuIGJlDQo+PiBzdWNjZXNzZnVsbHkgbWFw
cGVkIHRvIHBpcnEgZm9yIGRvbVUgd2l0aCBhIG5vdGlvbiBvZiBQSVJRDQo+PiB3aGVuIGRvbTAg
aXMgUFZIDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFt
ZC5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPg0K
Pj4gU2lnbmVkLW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+PiAt
LS0NCj4+ICB4ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jIHwgIDYgKysrKysrDQo+PiAgeGVu
L2FyY2gveDg2L3BoeXNkZXYuYyAgICAgICB8IDEyICsrKysrKysrKystLQ0KPj4gIDIgZmlsZXMg
Y2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHlw
ZXJjYWxsLmMNCj4+IGluZGV4IDBmYWI2NzBhNDg3MS4uMDNhZGEzYzg4MGJkIDEwMDY0NA0KPj4g
LS0tIGEveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYw0KPj4gKysrIGIveGVuL2FyY2gveDg2
L2h2bS9oeXBlcmNhbGwuYw0KPj4gQEAgLTcxLDggKzcxLDE0IEBAIGxvbmcgaHZtX3BoeXNkZXZf
b3AoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpDQo+PiAgDQo+PiAg
ICAgIHN3aXRjaCAoIGNtZCApDQo+PiAgICAgIHsNCj4+ICsgICAgICAgIC8qDQo+PiArICAgICAg
ICAqIE9ubHkgYmVpbmcgcGVybWl0dGVkIGZvciBtYW5hZ2VtZW50IG9mIG90aGVyIGRvbWFpbnMu
DQo+PiArICAgICAgICAqIEZ1cnRoZXIgcmVzdHJpY3Rpb25zIGFyZSBlbmZvcmNlZCBpbiBkb19w
aHlzZGV2X29wLg0KPj4gKyAgICAgICAgKi8NCj4+ICAgICAgY2FzZSBQSFlTREVWT1BfbWFwX3Bp
cnE6DQo+PiAgICAgIGNhc2UgUEhZU0RFVk9QX3VubWFwX3BpcnE6DQo+PiArICAgICAgICBicmVh
azsNCj4+ICsNCj4+ICAgICAgY2FzZSBQSFlTREVWT1BfZW9pOg0KPj4gICAgICBjYXNlIFBIWVNE
RVZPUF9pcnFfc3RhdHVzX3F1ZXJ5Og0KPj4gICAgICBjYXNlIFBIWVNERVZPUF9nZXRfZnJlZV9w
aXJxOg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMgYi94ZW4vYXJjaC94
ODYvcGh5c2Rldi5jDQo+PiBpbmRleCBkNmRkNjIyOTUyYTkuLjlmMzBhOGM2M2EwNiAxMDA2NDQN
Cj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMNCj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9w
aHlzZGV2LmMNCj4+IEBAIC0zMjMsNyArMzIzLDExIEBAIHJldF90IGRvX3BoeXNkZXZfb3AoaW50
IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpDQo+PiAgICAgICAgICBpZiAo
ICFkICkNCj4+ICAgICAgICAgICAgICBicmVhazsNCj4+ICANCj4+IC0gICAgICAgIHJldCA9IHBo
eXNkZXZfbWFwX3BpcnEoZCwgbWFwLnR5cGUsICZtYXAuaW5kZXgsICZtYXAucGlycSwgJm1zaSk7
DQo+PiArICAgICAgICAvKiBPbmx5IG1hcHBpbmcgd2hlbiB0aGUgc3ViamVjdCBkb21haW4gaGFz
IGEgbm90aW9uIG9mIFBJUlEgKi8NCj4+ICsgICAgICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkg
fHwgaGFzX3BpcnEoZCkgKQ0KPiANCj4gSSdtIGFmcmFpZCB0aGlzIGlzIG5vdCB0cnVlLiAgSXQn
cyBmaW5lIHRvIG1hcCBpbnRlcnJ1cHRzIHRvIEhWTQ0KPiBkb21haW5zIHRoYXQgZG9uJ3QgaGF2
ZSBYRU5GRUFUX2h2bV9waXJxcyBlbmFibGVkLiAgaGFzX3BpcnEoKSBzaW1wbHkNCj4gYWxsb3cg
SFZNIGRvbWFpbnMgdG8gcm91dGUgaW50ZXJydXB0cyBmcm9tIGRldmljZXMgKGVpdGhlciBlbXVs
YXRlZCBvcg0KPiBwYXNzZWQgdGhyb3VnaCkgb3ZlciBldmVudCBjaGFubmVscy4NCj4gDQo+IEl0
IG1pZ2h0IGhhdmUgd29ya2VkIGluIHRoZSBwYXN0ICh3aGVuIHVzaW5nIGEgdmVyc2lvbiBvZiBY
ZW4gPCA0LjE5KQ0KPiBiZWNhdXNlIFhFTkZFQVRfaHZtX3BpcnFzIHdhcyBlbmFibGVkIGJ5IGRl
ZmF1bHQgZm9yIEhWTSBndWVzdHMuDQo+IA0KPiBwaHlzZGV2X21hcF9waXJxKCkgd2lsbCB3b3Jr
IGZpbmUgd2hlbiB1c2VkIGFnYWluc3QgZG9tYWlucyB0aGF0IGRvbid0DQo+IGhhdmUgWEVORkVB
VF9odm1fcGlycXMgZW5hYmxlZCwgYW5kIGl0IG5lZWRzIHRvIGJlIGtlcHQgdGhpcyB3YXkuDQo+
IA0KPiBJIHRoaW5rIHlvdSB3YW50IHRvIGFsbG93IFBIWVNERVZPUF97LHVufW1hcF9waXJxIGZv
ciBIVk0gZG9tYWlucywgYnV0DQo+IGtlZXAgdGhlIGNvZGUgaW4gZG9fcGh5c2Rldl9vcCgpIGFz
LWlzLiAgWW91IHdpbGwgaGF2ZSB0byBjaGVjaw0KPiB3aGV0aGVyIHRoZSBjdXJyZW50IHBhdGhz
IGluIGRvX3BoeXNkZXZfb3AoKSBhcmUgbm90IG1ha2luZw0KPiBhc3N1bXB0aW9ucyBhYm91dCBY
RU5GRUFUX2h2bV9waXJxcyBiZWluZyBlbmFibGVkIHdoZW4gdGhlIGNhbGxpbmcNCj4gZG9tYWlu
IGlzIG9mIEhWTSB0eXBlLiAgSSBkb24ndCB0aGluayB0aGF0J3MgdGhlIGNhc2UsIGJ1dCBiZXR0
ZXINCj4gY2hlY2suDQpJZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCB5b3UgYWxzbyB0YWxrZWQg
YWJvdXQgcHJldmVudGluZyBzZWxmLW1hcHBpbmcgd2hlbiB0aGUgZG9tYWluIGlzIEhWTSB0eXBl
IGFuZCBkb2Vzbid0IGhhcyBYRU5GRUFUX2h2bV9waXJxcy4NCkNoYW5nZSB0byB0aGlzPw0KICAg
ICAgICBpZiAoICFpc19odm1fZG9tYWluKGQpIHx8IGhhc19waXJxKGQpIHx8IGQgIT0gY3VycmQg
KQ0KICAgICAgICAgICAgcmV0ID0gcGh5c2Rldl9tYXBfcGlycShkLCBtYXAudHlwZSwgJm1hcC5p
bmRleCwgJm1hcC5waXJxLCAmbXNpKTsNCiAgICAgICAgZWxzZQ0KICAgICAgICAgICAgcmV0ID0g
LUVPUE5PVFNVUFA7DQoNCj4gDQo+IFRoYW5rcywgUm9nZXIuDQoNCi0tIA0KQmVzdCByZWdhcmRz
LA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 08:40:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 08:40:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768350.1179118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ4t8-0002dE-RR; Wed, 31 Jul 2024 08:40:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768350.1179118; Wed, 31 Jul 2024 08: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 1sZ4t8-0002d7-Ou; Wed, 31 Jul 2024 08:40:50 +0000
Received: by outflank-mailman (input) for mailman id 768350;
 Wed, 31 Jul 2024 08: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ4t7-0002cz-N1
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 08:40:49 +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 95d6c928-4f18-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 10:40:48 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5ab2baf13d9so7869404a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 01:40: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
 a640c23a62f3a-a7acad426aasm739247666b.105.2024.07.31.01.40.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 01:40: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: 95d6c928-4f18-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722415248; x=1723020048; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=st3uwd8QzOr0xOoPY7vy9sq3Tagd7aCi0LWl1MM9P/E=;
        b=FuyVqHwR9+o5AJs0lvj5fbqhv3IlpzaNX2GrH1KNEyYRz1yWOPdn65T10C4H5t31Uk
         zAbr2cSHd8kY5/R/a4nIfyx+t5j2fq8oVMIc5ERnep6yrAuiAs0sqMQ1+kD0nJNBL7GY
         46zz7uZ8sGAlfypjEaHnJvwM+NxOZsO0X7c8wAO7vflaFJ19pqP7dx0yIWe9PcubW2zS
         XEvFIb77ALwJMejoFeADsnWMbz+5LMHQFhuZr80aLbFuzbhFAURYODtLSq75BqZV7Qfz
         c5ERRfvBRmBmAoCvjJmgE9NA/KtVpUAOYwyPWtL4QfUdnxuLxgM3ytheN5/dOS+cfgRS
         UztQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722415248; x=1723020048;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=st3uwd8QzOr0xOoPY7vy9sq3Tagd7aCi0LWl1MM9P/E=;
        b=Bixv2201Wi8ZmRC9Eb3BL2UVdToCVu5kIRL51Gnz2Uwy/lBwPtlJ4wTGuyEBUhHq9B
         /U+MGRbnq3SOdqCUddow2dAoFU6kvCmyZ7HvtccXhxpniHKRYvdHFANOU2YmC+qO39Ow
         085+a6L0bBsgKZU9ZjkJnIiAV9yKrmmgA+WH4igiwc42rZwhaizxmK3LD5S8RjzIwdtx
         +PFpXVtDlri8DddCTqyuERRzsbPB7Ef/1ue/lwSZTETXqZRnkGhK9M2Ri+cBGNYWonmo
         XySUS3dTHZV/7IupYRT2v21LOsgnJd02X4gpd9dLNFqqIRks5JzeUDMEVArYHr+or2KK
         3fuw==
X-Gm-Message-State: AOJu0YzAq9rLgFAoH+dpguH/NZ2KH9k7Llysc3hWuhWpBBIUghkd9jYO
	JKQqwigr6EavspYkwNe+7UIfBlaA0lrL1LmiNFtvm5cXSkKuQLCb3ATQxGK/0w==
X-Google-Smtp-Source: AGHT+IH6tviFtadzufiNTmSDbTmiyPl4w0+4rDWiFZh4sqIXM3WcKFNpIiF4bHhKOKzesWgqhEEmGw==
X-Received: by 2002:a17:907:9720:b0:a7a:97ca:3056 with SMTP id a640c23a62f3a-a7d3fff8d5fmr1067951666b.16.1722415247810;
        Wed, 31 Jul 2024 01:40:47 -0700 (PDT)
Message-ID: <8ff685a6-0cbd-45cd-a818-4535a040c478@suse.com>
Date: Wed, 31 Jul 2024 10:40:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com> <Zqnswi7ihOhMxPsi@macbook>
 <0aa0982a-30b3-43cd-9a9e-4542d7cb583f@suse.com> <Zqn014wCEfWhyo1-@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Zqn014wCEfWhyo1-@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 10:24, Roger Pau Monné wrote:
> On Wed, Jul 31, 2024 at 09:58:28AM +0200, Jan Beulich wrote:
>> On 31.07.2024 09:50, Roger Pau Monné wrote:
>>> On Mon, Jul 08, 2024 at 07:41:19PM +0800, Jiqian Chen wrote:
>>>> --- a/xen/arch/x86/physdev.c
>>>> +++ b/xen/arch/x86/physdev.c
>>>> @@ -323,7 +323,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>>          if ( !d )
>>>>              break;
>>>>  
>>>> -        ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
>>>> +        /* Only mapping when the subject domain has a notion of PIRQ */
>>>> +        if ( !is_hvm_domain(d) || has_pirq(d) )
>>>
>>> I'm afraid this is not true.  It's fine to map interrupts to HVM
>>> domains that don't have XENFEAT_hvm_pirqs enabled.  has_pirq() simply
>>> allow HVM domains to route interrupts from devices (either emulated or
>>> passed through) over event channels.
>>>
>>> It might have worked in the past (when using a version of Xen < 4.19)
>>> because XENFEAT_hvm_pirqs was enabled by default for HVM guests.
>>>
>>> physdev_map_pirq() will work fine when used against domains that don't
>>> have XENFEAT_hvm_pirqs enabled, and it needs to be kept this way.
>>>
>>> I think you want to allow PHYSDEVOP_{,un}map_pirq for HVM domains, but
>>> keep the code in do_physdev_op() as-is.  You will have to check
>>> whether the current paths in do_physdev_op() are not making
>>> assumptions about XENFEAT_hvm_pirqs being enabled when the calling
>>> domain is of HVM type.  I don't think that's the case, but better
>>> check.
>>
>> Yet the goal is to disallow mapping into PVH domains. The use of
>> has_pirq() was aiming at that. If that predicate can't be used (anymore)
>> for this purpose, which one is appropriate now?
> 
> Why do you want to add such restriction now, when it's not currently
> present?
> 
> It was already the case that a PV dom0 could issue
> PHYSDEVOP_{,un}map_pirq operations against a PVH domU, whatever the
> result of such operation be.

Because (a) that was wrong and (b) we'd suddenly permit a PVH DomU to
issue such for itself.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 08:42:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 08:42:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768358.1179129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ4uh-0003EJ-5d; Wed, 31 Jul 2024 08:42:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768358.1179129; Wed, 31 Jul 2024 08:42: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 1sZ4uh-0003EC-2W; Wed, 31 Jul 2024 08:42:27 +0000
Received: by outflank-mailman (input) for mailman id 768358;
 Wed, 31 Jul 2024 08:42: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ4ug-0003E6-8l
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 08:42:26 +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 cee095a1-4f18-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 10:42:24 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a7ac449a0e6so432702366b.1
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 01: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
 a640c23a62f3a-a7acad92cd7sm751377066b.179.2024.07.31.01.42.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 01: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: cee095a1-4f18-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722415344; x=1723020144; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VQ4db3DPtRbnbT66oPVaHUGVueoF1qyqImupOtp+U7s=;
        b=HNcdfbQWyVxpk+5MjehWI3kGsKOPb1QB1zx/zqjWIcYG6NJndPIBdnrI32hE0UApST
         ry007EBhUPejiXE7jMDuFjBPQgqcos/xK+M7vM/0JB59ulp0jWhukcpoNfhhm+T4n6UL
         C7F7Q4p0o/6VaAtKFWXh0wS62DW6MkKVtrMTKRdxowi2MRiErMcpDpFcspAy4unbVzTv
         fUzHZoyQefLAKObyC5iZ+i7ojqLBdQvJtYUN6TITVGDsvVmu/5YpYhynpTktDaionY9W
         9L07aS28W3A6YMreq8AjhEx8oOIzjy/od3q5IHmEXYvgXC4QADIEF4s9GqFkVS87lzAl
         Mf3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722415344; x=1723020144;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VQ4db3DPtRbnbT66oPVaHUGVueoF1qyqImupOtp+U7s=;
        b=M6gSYYWTDjldF0/znDCykiC7H/oKLcDOMsOwPyxCVh2KFyGe3pxcXo6MsEsgz4A+Es
         CUDdJnUS1aJd482oy74V4z59PsK601XjUbDZhlTs1UABycE4wzpoN8wWGTkZJgqxTjx9
         pfcC/nb7FpQBTD08MQVd92Cu0zKn1vXMgPBJCBmxb6Bt825+frvYX8IkNxxXDpj68ZPS
         8pzBJnabQvcfCQ+mNzbmy5F//Q8/tcbQVgLLrGTvlT2RPa060KITlZDhtT1R8Oj17Yz1
         Gc4ERKtNfX8HwWbnyhMeaKaw+O0mdMRuP1invE8QalTP7mUwC6Q2qqjtUE8mITEiMTDk
         hIGA==
X-Gm-Message-State: AOJu0YyZCBR8TQcCjujjtXNHVl4+ucV+6P7KF4BlbvB8iYh0ZLpGmehl
	m2oei+XLzwOEbVFV7p6LjbwHrKa+M0Kmz+gujVlrY5QBjztw6naF8jBRuuWeOw==
X-Google-Smtp-Source: AGHT+IFWP5G163EGfjSDIl+FfE0bi8BJnVghsI/q5Vhm3J5F9tpmtTzNJH+Uvm+3gZ89twWWPQW2eQ==
X-Received: by 2002:a17:907:c00f:b0:a77:c827:2cb2 with SMTP id a640c23a62f3a-a7d40138f7emr604305966b.44.1722415343434;
        Wed, 31 Jul 2024 01:42:23 -0700 (PDT)
Message-ID: <e0ef652b-3651-4b25-a6b0-debb7fc3604a@suse.com>
Date: Wed, 31 Jul 2024 10:42:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com>
 <d08179b1-a114-4ae9-a6da-e907f2c027c3@citrix.com>
 <BL1PR12MB584905C225BE759A633DEAAEE7B12@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: <BL1PR12MB584905C225BE759A633DEAAEE7B12@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 10:31, Chen, Jiqian wrote:
> On 2024/7/30 21:09, Andrew Cooper wrote:
>> On 08/07/2024 12:41 pm, Jiqian Chen wrote:
>>> If run Xen with PVH dom0 and hvm domU, hvm will map a pirq for
>>> a passthrough device by using gsi, see qemu code
>>> xen_pt_realize->xc_physdev_map_pirq and libxl code
>>> pci_add_dm_done->xc_physdev_map_pirq. Then xc_physdev_map_pirq
>>> will call into Xen, but in hvm_physdev_op, PHYSDEVOP_map_pirq
>>> is not allowed because currd is PVH dom0 and PVH has no
>>> X86_EMU_USE_PIRQ flag, it will fail at has_pirq check.
>>>
>>> So, allow PHYSDEVOP_map_pirq when dom0 is PVH and also allow
>>> PHYSDEVOP_unmap_pirq for the removal device path to unmap pirq.
>>> And add a new check to prevent (un)map when the subject domain
>>> doesn't have a notion of PIRQ.
>>>
>>> So that the interrupt of a passthrough device can be
>>> successfully mapped to pirq for domU with a notion of PIRQ
>>> when dom0 is PVH
>>>
>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>>> Signed-off-by: Huang Rui <ray.huang@amd.com>
>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>>> ---
>>>  xen/arch/x86/hvm/hypercall.c |  6 ++++++
>>>  xen/arch/x86/physdev.c       | 12 ++++++++++--
>>>  2 files changed, 16 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
>>> index 0fab670a4871..03ada3c880bd 100644
>>> --- a/xen/arch/x86/hvm/hypercall.c
>>> +++ b/xen/arch/x86/hvm/hypercall.c
>>> @@ -71,8 +71,14 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>  
>>>      switch ( cmd )
>>>      {
>>> +        /*
>>> +        * Only being permitted for management of other domains.
>>> +        * Further restrictions are enforced in do_physdev_op.
>>> +        */
>>>      case PHYSDEVOP_map_pirq:
>>>      case PHYSDEVOP_unmap_pirq:
>>> +        break;
>>> +
>>>      case PHYSDEVOP_eoi:
>>>      case PHYSDEVOP_irq_status_query:
>>>      case PHYSDEVOP_get_free_pirq:
>>> diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
>>> index d6dd622952a9..9f30a8c63a06 100644
>>> --- a/xen/arch/x86/physdev.c
>>> +++ b/xen/arch/x86/physdev.c
>>> @@ -323,7 +323,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>          if ( !d )
>>>              break;
>>>  
>>> -        ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
>>> +        /* Only mapping when the subject domain has a notion of PIRQ */
>>> +        if ( !is_hvm_domain(d) || has_pirq(d) )
>>> +            ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
>>> +        else
>>> +            ret = -EOPNOTSUPP;
>>>  
>>>          rcu_unlock_domain(d);
>>>  
>>> @@ -346,7 +350,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>          if ( !d )
>>>              break;
>>>  
>>> -        ret = physdev_unmap_pirq(d, unmap.pirq);
>>> +        /* Only unmapping when the subject domain has a notion of PIRQ */
>>> +        if ( !is_hvm_domain(d) || has_pirq(d) )
>>> +            ret = physdev_unmap_pirq(d, unmap.pirq);
>>> +        else
>>> +            ret = -EOPNOTSUPP;
>>>  
>>>          rcu_unlock_domain(d);
>>>  
>>
>> Gitlab is displeased with your offering.
>>
>> https://gitlab.com/xen-project/xen/-/pipelines/1393459622
>>
>> This breaks both {adl,zen3p}-pci-hvm-x86-64-gcc-debug, and given the:
>>
>> (XEN) [    8.150305] HVM restore d1: CPU 0
>> libxl: error: libxl_pci.c:1491:pci_add_dm_done: Domain
>> 1:xc_physdev_map_pirq irq=18 (error=-1): Not supported
>> libxl: error: libxl_pci.c:1809:device_pci_add_done: Domain
>> 1:libxl__device_pci_add failed for PCI device 0:3:0.0 (rc -3)
>> libxl: error: libxl_create.c:1962:domcreate_attach_devices: Domain
>> 1:unable to add pci devices
>> libxl: error: libxl_xshelp.c:206:libxl__xs_read_mandatory: xenstore read
>> failed: `/libxl/1/type': No such file or directory
>> libxl: warning: libxl_dom.c:49:libxl__domain_type: unable to get domain
>> type for domid=1, assuming HVM
>> libxl: error: libxl_domain.c:1616:domain_destroy_domid_cb: Domain
>> 1:xc_domain_destroy failed: No such process
> 
> Sorry to forget to validate the scenario of "hvm_pirq=0" for HVM guest since V10->V11(remove the self-check "d == currd").
> 
> V10 version:
> +        /* Prevent self-map when currd has no X86_EMU_USE_PIRQ flag */
> +        if ( is_hvm_domain(d) && !has_pirq(d) && d == currd )
> +        {
> +            rcu_unlock_domain(d);
> +            return -EOPNOTSUPP;
> +        }
> 
> V11 version:
> +        /* Prevent mapping when the subject domain has no X86_EMU_USE_PIRQ */
> +        if ( is_hvm_domain(d) && !has_pirq(d) )
> +        {
> +            rcu_unlock_domain(d);
> +            return -EOPNOTSUPP;
> +        }
> 
> V10 is fine for when hvm_pirq is enable or disable. 
> This issue is from V11, the cause is that when pass "hvm_pirq=0" to HVM guest, then has_pirq() is false, but it still uses the pirq to route the interrupt of passthrough devices.
> So, it still does xc_physdev_(un)map_pirq, then fails at the has_pirq() check.
> 
> Hi Jan,
> Should I need to change to V10 to only prevent the self-mapping when the subject domain has no PIRQ?
> So that it can allow PHYSDEVOP_map_pirq for foreign mapping, no matter the dom0 or the domU has PIRQ or not?

No, my position there hasn't changed. I continue to view it as wrong to
have any d == currd checks here.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 08:52:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 08:52:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768370.1179140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ53l-0005YT-5k; Wed, 31 Jul 2024 08:51:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768370.1179140; Wed, 31 Jul 2024 08:51:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ53l-0005YM-1H; Wed, 31 Jul 2024 08:51:49 +0000
Received: by outflank-mailman (input) for mailman id 768370;
 Wed, 31 Jul 2024 08: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=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZ53j-0005YG-8n
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 08:51:47 +0000
Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com
 [2607:f8b0:4864:20::72d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d2fbe92-4f1a-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 10:51:45 +0200 (CEST)
Received: by mail-qk1-x72d.google.com with SMTP id
 af79cd13be357-7a1dac7f0b7so344730385a.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 01:51:45 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fae79d9sm71507006d6.125.2024.07.31.01.51.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 01:51: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: 1d2fbe92-4f1a-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722415904; x=1723020704; 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=ulR44O/BCkVle3MfM+faGf1y99Kxlb/+j+KMixW829E=;
        b=R0ym/hPpOJ9pnTsPyqQkWPW5ZsxS4sb2ICHVMHiItDLKiXIQ72x9b7A1jrtfforwSO
         ljZDBwN1Rqs9dXdve4EhrciDsG22jWaBpSDnJ6sVKqSVr+moeR3BMxAjZhwC516lZ3bv
         GEvWBL6R6X9CpVRKRcZfBploVXNcSFdiHxCHQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722415904; x=1723020704;
        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=ulR44O/BCkVle3MfM+faGf1y99Kxlb/+j+KMixW829E=;
        b=m1HX7g4ZDLixrzBcyr4PqvesZaWKgEzmMH+WDsRmbcZEnsEnl7PSD8DKgrR+hC1xqa
         uuzghAZ8V9W8PT8X9zYwyWf6Cb+atanfkBQTcnzCecOs+qzaOyl+OzcVfS6qV8VF77hN
         nA0iJXn8NKGVMA/HUX7XqnhpMBQht9JnagLYn5C22zaGwmA3Jhjmojh+tSfWmc1BTP2Y
         Jb808jD1845zLPs1JkEHzzeLJ+MTp/xRqJ5qqnJLpZJWuOaHdqUV7lcXbYGjvezSs0Hg
         dkJzb5oUQlKoO6/zof7FIR952Xsigq07P9kFrav54oR/mYkOIlW/9teVbTXmaANQa4YA
         3EQA==
X-Gm-Message-State: AOJu0Yzf2Blz0SCWV7spUFDOtQ0ZAZP3o2khxH2ptYao+9PYB3ssGp3t
	3qsq69FKZH1F1IR48QR5g7lGUcrdAVSEJGVkWCPKTpXbq+A0ty7NMCGzv4jvM1A=
X-Google-Smtp-Source: AGHT+IHqTs+HZr+9lMFE++xp4jEh7IfsXIBE0B79UQ/33TBM3jrqOeWfUf23B3GfrDH5t0YSjp7EoQ==
X-Received: by 2002:a05:6214:29ce:b0:6b7:aeb2:e796 with SMTP id 6a1803df08f44-6bb55a1367amr181312226d6.33.1722415904263;
        Wed, 31 Jul 2024 01:51:44 -0700 (PDT)
Date: Wed, 31 Jul 2024 10:51:40 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Juergen Gross <jgross@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Message-ID: <Zqn7HEuooChgRCuf@macbook>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com>
 <Zqnswi7ihOhMxPsi@macbook>
 <0aa0982a-30b3-43cd-9a9e-4542d7cb583f@suse.com>
 <Zqn014wCEfWhyo1-@macbook>
 <8ff685a6-0cbd-45cd-a818-4535a040c478@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8ff685a6-0cbd-45cd-a818-4535a040c478@suse.com>

On Wed, Jul 31, 2024 at 10:40:46AM +0200, Jan Beulich wrote:
> On 31.07.2024 10:24, Roger Pau Monné wrote:
> > On Wed, Jul 31, 2024 at 09:58:28AM +0200, Jan Beulich wrote:
> >> On 31.07.2024 09:50, Roger Pau Monné wrote:
> >>> On Mon, Jul 08, 2024 at 07:41:19PM +0800, Jiqian Chen wrote:
> >>>> --- a/xen/arch/x86/physdev.c
> >>>> +++ b/xen/arch/x86/physdev.c
> >>>> @@ -323,7 +323,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
> >>>>          if ( !d )
> >>>>              break;
> >>>>  
> >>>> -        ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
> >>>> +        /* Only mapping when the subject domain has a notion of PIRQ */
> >>>> +        if ( !is_hvm_domain(d) || has_pirq(d) )
> >>>
> >>> I'm afraid this is not true.  It's fine to map interrupts to HVM
> >>> domains that don't have XENFEAT_hvm_pirqs enabled.  has_pirq() simply
> >>> allow HVM domains to route interrupts from devices (either emulated or
> >>> passed through) over event channels.
> >>>
> >>> It might have worked in the past (when using a version of Xen < 4.19)
> >>> because XENFEAT_hvm_pirqs was enabled by default for HVM guests.
> >>>
> >>> physdev_map_pirq() will work fine when used against domains that don't
> >>> have XENFEAT_hvm_pirqs enabled, and it needs to be kept this way.
> >>>
> >>> I think you want to allow PHYSDEVOP_{,un}map_pirq for HVM domains, but
> >>> keep the code in do_physdev_op() as-is.  You will have to check
> >>> whether the current paths in do_physdev_op() are not making
> >>> assumptions about XENFEAT_hvm_pirqs being enabled when the calling
> >>> domain is of HVM type.  I don't think that's the case, but better
> >>> check.
> >>
> >> Yet the goal is to disallow mapping into PVH domains. The use of
> >> has_pirq() was aiming at that. If that predicate can't be used (anymore)
> >> for this purpose, which one is appropriate now?
> > 
> > Why do you want to add such restriction now, when it's not currently
> > present?
> > 
> > It was already the case that a PV dom0 could issue
> > PHYSDEVOP_{,un}map_pirq operations against a PVH domU, whatever the
> > result of such operation be.
> 
> Because (a) that was wrong and (b) we'd suddenly permit a PVH DomU to
> issue such for itself.

Regarding (b) a PVH domU issuing such operations would fail at the
xsm_map_domain_pirq() check in physdev_map_pirq().

I agree with (a), but I don't think enabling PVH dom0 usage of the
hypercalls should be gated on this.  As said a PV dom0 is already
capable of issuing PHYSDEVOP_{,un}map_pirq operations against a PVH
domU.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 09:02:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 09:02:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768379.1179148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ5Dj-0007vx-1O; Wed, 31 Jul 2024 09:02:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768379.1179148; Wed, 31 Jul 2024 09:02: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 1sZ5Di-0007vq-V5; Wed, 31 Jul 2024 09:02:06 +0000
Received: by outflank-mailman (input) for mailman id 768379;
 Wed, 31 Jul 2024 09:02: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ5Dh-0007vg-4i
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 09:02:05 +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 8da92e36-4f1b-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 11:02:03 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a7aabb71bb2so753996266b.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 02:02: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
 a640c23a62f3a-a7acad90486sm740983866b.150.2024.07.31.02.02.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 02:02: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: 8da92e36-4f1b-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722416523; x=1723021323; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aJzNeH57RQ05sxtKkArxkc+GM/7CT4Dx4VMM1khlzJk=;
        b=cMvRfKbxLM1yV/Zi0Du5greE4S7v3OONKhyUdNheAtNvxv9VOxDc1xTfPF9X0j6mTy
         GzE72koD/buHC7KCE9+89LMOS8vp72YuQhJqqsMdIWD87ww1WibNdaStdoBan5K2kXMK
         AxMffF9UVpyYofSBdbzp0Dz7mvIZyNDiOV/ynP1vEHexeKQhowE6jGEozPN+p9lT+j0n
         jUXfM8AjQpjZ7p6ObsuW65z3oERFMQ7qEbGk1pmJ1hj9oq/8mIzGpb72V6fxPj+M2BlX
         GqS/on1wZ09sDUy4IVEvqPGRjBihbS/OZvFcN72+U5WrVnCXcxIynVFsgXf79w69x1c7
         LMqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722416523; x=1723021323;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aJzNeH57RQ05sxtKkArxkc+GM/7CT4Dx4VMM1khlzJk=;
        b=De1ArKN1+47UoWBi815KOS7Nrl5ZO1VSKFmV/+sLWrDUC4qS240r+xv6SaAYZYyt4R
         wXPC9eMnipXjFiwFrLUiWkUk7pF/kYp1PgaSt2J+66KOBemKkwjVyhzLEcUwx31ELxEy
         7zzLWE/Z7zsQnLvi7SuJu6dEEyNzJujLRS4usGlK2GMfz1OoZoVGKYVWaALkmyigt1uL
         g+luqsKEjDBmVzejrhdMMTa1B4Pv736G4v1iVyUSbHia66Cr2gZQA9FnL28up3hxCX2C
         lOCle2wDkhwqOLXVPq9m0VBfM8xRcmPVPOH3WT7dl5USLl8kho+bpIGLY1RLF1DwFHUd
         TQPg==
X-Gm-Message-State: AOJu0YwJ0ReITmqasMK9pfg3mDp4jwNwl9xqmSHFruOwiFAHD5rlWejv
	pBbn6By88x3DABxYjZ5WRFrzgpQdvExk6qCENaFxJfotaFLJYpr0sreW76uqCQ==
X-Google-Smtp-Source: AGHT+IG5UoHoRMnszgQeXPuI7oU9idLjD5iRnnBOyJbB5LatJnkw8c1v2y3bjvoevSLWBIVVzrExWw==
X-Received: by 2002:a17:907:6d13:b0:a72:69e8:f039 with SMTP id a640c23a62f3a-a7d3ffc064bmr1058371066b.12.1722416522620;
        Wed, 31 Jul 2024 02:02:02 -0700 (PDT)
Message-ID: <d65ae152-22ee-4a57-8ff4-43ef0c234f5f@suse.com>
Date: Wed, 31 Jul 2024 11:02:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com> <Zqnswi7ihOhMxPsi@macbook>
 <0aa0982a-30b3-43cd-9a9e-4542d7cb583f@suse.com> <Zqn014wCEfWhyo1-@macbook>
 <8ff685a6-0cbd-45cd-a818-4535a040c478@suse.com> <Zqn7HEuooChgRCuf@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Zqn7HEuooChgRCuf@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 10:51, Roger Pau Monné wrote:
> On Wed, Jul 31, 2024 at 10:40:46AM +0200, Jan Beulich wrote:
>> On 31.07.2024 10:24, Roger Pau Monné wrote:
>>> On Wed, Jul 31, 2024 at 09:58:28AM +0200, Jan Beulich wrote:
>>>> On 31.07.2024 09:50, Roger Pau Monné wrote:
>>>>> On Mon, Jul 08, 2024 at 07:41:19PM +0800, Jiqian Chen wrote:
>>>>>> --- a/xen/arch/x86/physdev.c
>>>>>> +++ b/xen/arch/x86/physdev.c
>>>>>> @@ -323,7 +323,11 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>>>>          if ( !d )
>>>>>>              break;
>>>>>>  
>>>>>> -        ret = physdev_map_pirq(d, map.type, &map.index, &map.pirq, &msi);
>>>>>> +        /* Only mapping when the subject domain has a notion of PIRQ */
>>>>>> +        if ( !is_hvm_domain(d) || has_pirq(d) )
>>>>>
>>>>> I'm afraid this is not true.  It's fine to map interrupts to HVM
>>>>> domains that don't have XENFEAT_hvm_pirqs enabled.  has_pirq() simply
>>>>> allow HVM domains to route interrupts from devices (either emulated or
>>>>> passed through) over event channels.
>>>>>
>>>>> It might have worked in the past (when using a version of Xen < 4.19)
>>>>> because XENFEAT_hvm_pirqs was enabled by default for HVM guests.
>>>>>
>>>>> physdev_map_pirq() will work fine when used against domains that don't
>>>>> have XENFEAT_hvm_pirqs enabled, and it needs to be kept this way.
>>>>>
>>>>> I think you want to allow PHYSDEVOP_{,un}map_pirq for HVM domains, but
>>>>> keep the code in do_physdev_op() as-is.  You will have to check
>>>>> whether the current paths in do_physdev_op() are not making
>>>>> assumptions about XENFEAT_hvm_pirqs being enabled when the calling
>>>>> domain is of HVM type.  I don't think that's the case, but better
>>>>> check.
>>>>
>>>> Yet the goal is to disallow mapping into PVH domains. The use of
>>>> has_pirq() was aiming at that. If that predicate can't be used (anymore)
>>>> for this purpose, which one is appropriate now?
>>>
>>> Why do you want to add such restriction now, when it's not currently
>>> present?
>>>
>>> It was already the case that a PV dom0 could issue
>>> PHYSDEVOP_{,un}map_pirq operations against a PVH domU, whatever the
>>> result of such operation be.
>>
>> Because (a) that was wrong and (b) we'd suddenly permit a PVH DomU to
>> issue such for itself.
> 
> Regarding (b) a PVH domU issuing such operations would fail at the
> xsm_map_domain_pirq() check in physdev_map_pirq().

Hmm, yes, fair point.

> I agree with (a), but I don't think enabling PVH dom0 usage of the
> hypercalls should be gated on this.  As said a PV dom0 is already
> capable of issuing PHYSDEVOP_{,un}map_pirq operations against a PVH
> domU.

Okay, I can accept that as an intermediate position. We ought to deny
such requests at some point though for PVH domains, the latest in the
course of making vPCI work there.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 09:37:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 09:37:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768389.1179162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ5mG-0005Yf-NW; Wed, 31 Jul 2024 09:37:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768389.1179162; Wed, 31 Jul 2024 09:37:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ5mG-0005YY-Kt; Wed, 31 Jul 2024 09:37:48 +0000
Received: by outflank-mailman (input) for mailman id 768389;
 Wed, 31 Jul 2024 09:37: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=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZ5mG-0005YS-05
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 09:37:48 +0000
Received: from mail-vk1-xa32.google.com (mail-vk1-xa32.google.com
 [2607:f8b0:4864:20::a32])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b0a31e9-4f20-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 11:37:46 +0200 (CEST)
Received: by mail-vk1-xa32.google.com with SMTP id
 71dfb90a1353d-4f6e9fc29b7so1528178e0c.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 02:37:46 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1ee464348sm397774585a.90.2024.07.31.02.37.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 02:37: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: 8b0a31e9-4f20-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722418665; x=1723023465; 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=gBYNCiEYD5dFw9i2uWH5352DjikYHrHRN3LeDQJSbsg=;
        b=KHmReE8kKrDr9R4BuLvpDUrMKrFEEDrez+DmsOhCtrJ3f8JbL8CFBM2O0bcKzusf+e
         EMIrpvS4QNNxCVU788DjLfkD+zBoBD9JasIGnN3eIDC7Igc9RCr6Fa/fVCYjKmc5ABIQ
         ztuWi4IX2UrVO1aNFmyeeaWpRl7wDLEO+s+G4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722418665; x=1723023465;
        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=gBYNCiEYD5dFw9i2uWH5352DjikYHrHRN3LeDQJSbsg=;
        b=I2UV+ANBejq2rsjybHtnLrWTFMY8Hm4V2jptQZ3uZ95/uSN0txAyKlC0YXn62g26GG
         T/2uX2PtOR2dLBXHH+3PqDUa1otOTa9qxKm2Ly3HIUUj14swDTCEMazrStOF9IiXUJ0g
         4PDcxd3kVbdu7vbXdQB2Y97vMwf7zOofzeN86XsgyLBhNHFyuplpZvHg8sFOpd2JF6+j
         OVcE/Sp1CZ65PsEScID3SrryWcZ72nz0lVxuJssoxU/4CezhLu4xoFGdKeMRQi7FsZXL
         j54Bsi+cAQ+MW6DfJBtW17P16EqueOV2TxQQImNrhaq33JwlS7vmT8eWIEM7wkXrpJ70
         dgVg==
X-Gm-Message-State: AOJu0Yx9vYyyWn9MaR27IN2ecieyUMjAggVSuh2FcnuDPqqUl5s/WFW4
	+TUZMXweDstxABQNo+rKkhKUs63P0rgIajKEhy28FE2Kmsbwm/UbfM2wQGKzSNg=
X-Google-Smtp-Source: AGHT+IE68Km61+o4bZHIm7S6Jh3zDtozian/U96wM+oTo+kGFiYCfIViMUwW822bVaF5wqKRSn1CUg==
X-Received: by 2002:a05:6122:1828:b0:4f5:27ac:ce6e with SMTP id 71dfb90a1353d-4f6e68ef18bmr14983229e0c.7.1722418665376;
        Wed, 31 Jul 2024 02:37:45 -0700 (PDT)
Date: Wed, 31 Jul 2024 11:37:43 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Juergen Gross <jgross@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Message-ID: <ZqoF55yapMxGN_WM@macbook>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com>
 <Zqnswi7ihOhMxPsi@macbook>
 <0aa0982a-30b3-43cd-9a9e-4542d7cb583f@suse.com>
 <Zqn014wCEfWhyo1-@macbook>
 <8ff685a6-0cbd-45cd-a818-4535a040c478@suse.com>
 <Zqn7HEuooChgRCuf@macbook>
 <d65ae152-22ee-4a57-8ff4-43ef0c234f5f@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d65ae152-22ee-4a57-8ff4-43ef0c234f5f@suse.com>

On Wed, Jul 31, 2024 at 11:02:01AM +0200, Jan Beulich wrote:
> On 31.07.2024 10:51, Roger Pau Monné wrote:
> > I agree with (a), but I don't think enabling PVH dom0 usage of the
> > hypercalls should be gated on this.  As said a PV dom0 is already
> > capable of issuing PHYSDEVOP_{,un}map_pirq operations against a PVH
> > domU.
> 
> Okay, I can accept that as an intermediate position. We ought to deny
> such requests at some point though for PVH domains, the latest in the
> course of making vPCI work there.

Hm, once physdev_map_pirq() works as intended against PVH domains, I
don't see why we would prevent the usage of PHYSDEVOP_{,un}map_pirq
against such domains.

Granted using vPCI for plain PCI passthrough is the best option, but I
also don't think we should limit it in the hypervisor.  Some kind of
passthrough (like when using vfio/mdev) will still need something akin
to a device model I would expect.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 09:47:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 09:47:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768396.1179171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ5vc-0007Y1-Jj; Wed, 31 Jul 2024 09:47:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768396.1179171; Wed, 31 Jul 2024 09: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 1sZ5vc-0007Xu-HB; Wed, 31 Jul 2024 09:47:28 +0000
Received: by outflank-mailman (input) for mailman id 768396;
 Wed, 31 Jul 2024 09:47:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8n5P=O7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sZ5vb-0007Xo-PC
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 09:47:27 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e489c3d4-4f21-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 11:47:25 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-52efef496ccso762498e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 02:47:25 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52fd5c1963asm2164424e87.184.2024.07.31.02.47.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 02:47: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: e489c3d4-4f21-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722419245; x=1723024045; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=uHOcoRi7Su31WKQf7Ah9HT2//AChQFb3VGh1rZXuZUA=;
        b=gT5jXf+vWXSiXGywZKnRrj5CI6wmLMvwZ72UczpOmzdUFsxv4DBrVZE4gwHgVFURWP
         q6mmRIbXXUlhfPIfaPuhrOD+C5ffL9n8lMmHon7QiQ7hnFJdmkvsTK4Te8gyMKutAAsk
         UFgPfTn/JkfLbJESVLMpnhMkAFd+N+AczYMwNR3gKnXpgCDKLN7C9xjeSf+MAVhuVSu2
         OLmbt9xZotQz4MR7+4V1m3iVILrfqzDKU6C7NHBlut6U4TJ1REl4yfVhN7SLZ4hDEslH
         ny8uBL+MAgv0zCZoNwLBmTk8JUlep48WHKJ62vMnqfuF1yYBFNrm0+I0GvH1dM0sFkkY
         tAFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722419245; x=1723024045;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=uHOcoRi7Su31WKQf7Ah9HT2//AChQFb3VGh1rZXuZUA=;
        b=ejdipSh1Tiq3yRIJd+MEYBZj0THsPbJspKP+BCAcSaR6fpboSLwg2jgL7iF1wpY74J
         UsbP4ySaTkQMuneAkJZTmzwab+lWD5Jm4Ra7BZY+ho0eSr1bDWJLvEGKjJnnbnThTgqr
         D7lVCq/RbJL49ZTw8KkOyqpvoUNcWb5jVX+qf5/7O1pPQNxgx56/GUnXXQHH+dCzZdUw
         j7cl6gNpatlOC+FuQh65Yp9M4EbZJoKUCcwLIxtvdthQLsda9haRob4bSpai6s+lWSdU
         9A5sUmSuBKZOZloXRTF+2B2aUMZ+kYzqXDFS4GyVq01r8YZ1GGVp3Ydev4qFJSH5YzF2
         jSGA==
X-Forwarded-Encrypted: i=1; AJvYcCWLxzBFrTpnEOQLYcY/H3YaoRKVTlKpV0qbPJ7Ya5UsX4/4M8kVIF30HqnHEHvntNe2gadxmwwHe56y+324u8GOlAzWtk0dBhXzkgdZw4w=
X-Gm-Message-State: AOJu0Yy398sSq1dPYIde65YEku+2/ROwKSoG3FFSO5RkWTQu9zDkNhAv
	AfNiBAGBZ+bQddgjwi2Z3hPuQPP/3O/feiB7Wk2VDL595SxUluuN
X-Google-Smtp-Source: AGHT+IGMpuFfiqDNzk67R1EhjfHzWaaz2qq/lUEe8VKLtv2gPnlE0lsjJ6YouTtaG2p8RNsXlj6YVg==
X-Received: by 2002:a05:6512:340d:b0:52f:30d:526c with SMTP id 2adb3069b0e04-530aa83f553mr1640793e87.5.1722419244843;
        Wed, 31 Jul 2024 02:47:24 -0700 (PDT)
Message-ID: <bfb102170aa7100d7b32dba77d1263853112b060.camel@gmail.com>
Subject: Re: [PATCH v3 4/9] xen/riscv: setup fixmap mapping
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
 <michal.orzel@amd.com>
Date: Wed, 31 Jul 2024 11:47:23 +0200
In-Reply-To: <9ed45d6d-5fdc-4754-908c-1d29b66b850a@suse.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
	 <04576976b82b97442f645b83b3d62475d144af8e.1721834549.git.oleksii.kurochko@gmail.com>
	 <917cc521-c0c4-49e8-bc40-948679398bc6@suse.com>
	 <28d646ba3d95da2eaf40869e1c07d950a0f3f203.camel@gmail.com>
	 <8b8b0304-9f6f-4ded-a451-edc8fdd0e52a@suse.com>
	 <2803670c49bdce4ef5982e7d149c77dda0701a31.camel@gmail.com>
	 <9ed45d6d-5fdc-4754-908c-1d29b66b850a@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-30 at 14:11 +0200, Jan Beulich wrote:
> On 30.07.2024 13:25, oleksii.kurochko@gmail.com=C2=A0wrote:
> > On Tue, 2024-07-30 at 09:49 +0200, Jan Beulich wrote:
> > > On 29.07.2024 18:11, oleksii.kurochko@gmail.com=C2=A0wrote:
> > > > On Mon, 2024-07-29 at 15:35 +0200, Jan Beulich wrote:
> > > > > On 24.07.2024 17:31, Oleksii Kurochko wrote:
> > > > > > @@ -81,6 +82,14 @@ static inline void
> > > > > > flush_page_to_ram(unsigned
> > > > > > long mfn, bool sync_icache)
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 BUG_ON("unimplemented");
> > > > > > =C2=A0}
> > > > > > =C2=A0
> > > > > > +/* Write a pagetable entry. */
> > > > > > +static inline void write_pte(pte_t *p, pte_t pte)
> > > > > > +{
> > > > > > +=C2=A0=C2=A0=C2=A0 RISCV_FENCE(rw, rw);
> > > > > > +=C2=A0=C2=A0=C2=A0 *p =3D pte;
> > > > > > +=C2=A0=C2=A0=C2=A0 RISCV_FENCE(rw, rw);
> > > > > > +}
> > > > >=20
> > > > > Why the first of the two fences?=C2=A0
> > > > To ensure that writes have completed with the old mapping.
> > >=20
> > > Wait: There can certainly be uncompleted writes, but those must
> > > have
> > > walked the page tables already, or else a (synchronous) fault
> > > could
> > > not be delivered on the originating store instruction. Or am I
> > > misunderstanding how paging (and associated faults) work on RISC-
> > > V?
> > I am not sure that I correctly understand the part regarding (
> > synchronous ) fault. Could you please come up with an example?
> >=20
> > If something during page table walk will go wrong then a fault will
> > be
> > raised.
>=20
> On the very insn, with subsequent insns not having started executing
> (from an architectural perspective, i.e. leaving aside speculation).
> That is what my use of "synchronous" meant.
>=20
> > My initial intension was to be sure if I will be writing to an
> > actively
> > in-use page table that other cores can see at the time then fences
> > above are required. It is not the case for now as we have only one
> > CPUs
> > but I assume that it will be a case when SMP will be enabled and
> > more
> > then one CPU will be able to work with the same page table.
>=20
> Would that first fence really help there? The other CPU could use
> the page tables in the window between the fence and the write. My
> understanding of the need for fences is for them to be used at times
> where ordering of memory accesses matters. For the moment I don't
> see this as an aspect for the 1st fence here, but I may be
> overlooking something.
AFAIU there are cases when we need the first fence, i.e. when superpage
breakup is happening and IIUC in this case we would first do a fence (
assuming pages are already allocated ), one fence between each
superpage breakup and its PTE, and one after each regular PTE write.
But in this case the first fence could be outside write_pte() function.

So we could eliminate the first fence in write_pte() and place it
outside the function ( if it will be needed for some cases ), thus
eliminating double fences.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 09:55:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 09:55:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768403.1179183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ63Z-0000bm-Ev; Wed, 31 Jul 2024 09:55:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768403.1179183; Wed, 31 Jul 2024 09: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 1sZ63Z-0000bf-A3; Wed, 31 Jul 2024 09:55:41 +0000
Received: by outflank-mailman (input) for mailman id 768403;
 Wed, 31 Jul 2024 09: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ63Y-0000bZ-6R
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 09:55:40 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09fd9d10-4f23-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 11:55:38 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-52efbb55d24so8405603e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 02:55: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
 a640c23a62f3a-a7acadb9c8esm750630666b.215.2024.07.31.02.55.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 02:55: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: 09fd9d10-4f23-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722419738; x=1723024538; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ed7ceqhXLf+okB69zEuFjo6faUVVDojR05FW0aXJBIc=;
        b=NKfZkyy1t6rcUulc99k+Z4rttIpdTDzzeuzVVVK475Cg3Ggjuc1DOfVhrUH8XuEi44
         6ybB3rIbCFm8M+OawMNkn+B/rZLgv+pvSXdaMRFmpPu6hsaHYef2Sb9f3xMRAB+N8kOt
         /6HoqUHWIcaQ7oYVotHENwiTswveHff0cbNNpuf31kf+h8V/t5KyDH++Td2VqXOL/FmN
         eMgZGzA63NbVP1SNr8rg3wvug5OzCM5+mpZhfjVuIqFAgum0haJP55llROir2ko2N/+r
         8i9G7vM1bekY67X10f+tSeB5RqxLGsaBuSlBXKXra8NIRb97KqdzTKxPwbUfH8Id3xk1
         DIUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722419738; x=1723024538;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ed7ceqhXLf+okB69zEuFjo6faUVVDojR05FW0aXJBIc=;
        b=XfL8Wh+Bf3t0LVfmaFfuZSxM1qDyOQPiD0k3qC5oV1t9pzozCxron0WoTZxp6AwUlu
         jpKXctnxoVloK2woxQY5Bu5j9FXIeJA2NGyoyx/61Ub26dVVVClliM8bHR6FXPmUUgMZ
         X/gp0YJuVSx8GGkc0XznSPo3lzukZnvpYqJY5S3IOfl/LZNp6kr6KXZucSJi02517hNV
         MApDPtbT/5aAY1DtAZb5SXmfeZYveEtbx5mkG7O13ZPG1doq6LmNJys3wtNhgevY5p9/
         oe6aNnLyYxd4nLey1DFqCO/500c+Y5xp3FTPJSN9JS7vCygJ/OlhJ3t4dNKg1WbsRyVe
         VnkQ==
X-Gm-Message-State: AOJu0YxDj73GilTYdV96a/kufaN6n09hZgMoUQ4zDCaheVuKh9yWpwMQ
	gTVRYLWoYrQrjEziaSYvv0xUo+rWsNruxbbiDWFlxtEdy8DSULb2FXWefuQpNw==
X-Google-Smtp-Source: AGHT+IHmK3kmRG9sh7ggSH2FTdEkGMUZyLHHJRoPLWmeaV/r17jS5IBNs7pIBLVQQnTq5/mUF3iX2Q==
X-Received: by 2002:ac2:51c4:0:b0:52c:e119:7f1 with SMTP id 2adb3069b0e04-5309b2d83bemr14988173e87.51.1722419737457;
        Wed, 31 Jul 2024 02:55:37 -0700 (PDT)
Message-ID: <fa33fbf8-32b6-48dc-a30c-dd76b021a76d@suse.com>
Date: Wed, 31 Jul 2024 11:55:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com> <Zqnswi7ihOhMxPsi@macbook>
 <0aa0982a-30b3-43cd-9a9e-4542d7cb583f@suse.com> <Zqn014wCEfWhyo1-@macbook>
 <8ff685a6-0cbd-45cd-a818-4535a040c478@suse.com> <Zqn7HEuooChgRCuf@macbook>
 <d65ae152-22ee-4a57-8ff4-43ef0c234f5f@suse.com> <ZqoF55yapMxGN_WM@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZqoF55yapMxGN_WM@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 11:37, Roger Pau Monné wrote:
> On Wed, Jul 31, 2024 at 11:02:01AM +0200, Jan Beulich wrote:
>> On 31.07.2024 10:51, Roger Pau Monné wrote:
>>> I agree with (a), but I don't think enabling PVH dom0 usage of the
>>> hypercalls should be gated on this.  As said a PV dom0 is already
>>> capable of issuing PHYSDEVOP_{,un}map_pirq operations against a PVH
>>> domU.
>>
>> Okay, I can accept that as an intermediate position. We ought to deny
>> such requests at some point though for PVH domains, the latest in the
>> course of making vPCI work there.
> 
> Hm, once physdev_map_pirq() works as intended against PVH domains, I
> don't see why we would prevent the usage of PHYSDEVOP_{,un}map_pirq
> against such domains.

Well. If it can be made work as intended, then I certainly agree. However,
without even the concept of pIRQ in PVH I'm having a hard time seeing how
it can be made work. Iirc you were advocating for us to not introduce pIRQ
into PVH.

Maybe you're thinking of re-using the sub-ops, requiring PVH domains to
pass in GSIs? I think I suggested something along these lines also to
Jiqian, yet with the now intended exposure to !has_pirq() domains I'm
not sure this could be made work reliably.

Which reminds me of another question I had: What meaning does the pirq
field have right now, if Dom0 would issue the request against a PVH DomU?
What meaning will it have for a !has_pirq() HVM domain?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 10:00:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 10:00:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768412.1179192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ67v-0002ji-2H; Wed, 31 Jul 2024 10:00:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768412.1179192; Wed, 31 Jul 2024 10:00: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 1sZ67u-0002jb-V3; Wed, 31 Jul 2024 10:00:10 +0000
Received: by outflank-mailman (input) for mailman id 768412;
 Wed, 31 Jul 2024 10:00:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F/qb=O7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sZ67t-0002jV-3b
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 10:00:09 +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 aacf9467-4f23-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 12:00:08 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a7a8e73b29cso429553066b.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 03:00:08 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad9104csm743557166b.157.2024.07.31.03.00.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 03:00: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: aacf9467-4f23-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722420007; x=1723024807; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=csPwqZFUDIbIq7pJu++5710iiX0xYNXRduInit1JAV8=;
        b=hupgXDgrUqLZaHAoEOm/G0uqvlbfhLZ00k49XRt9gxxy60kLkkr9TFAv3rKQyGezKz
         yoQxfN5R4NvLtRGnd9E/z7axQPgHk7uAk6XHIIaVmlZJTXpocISxAnv+JxBpKxXQh6KJ
         ofSVG4VO+4MQQBEWmxTdLkAqx4kw9CX6QMSuw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722420007; x=1723024807;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=csPwqZFUDIbIq7pJu++5710iiX0xYNXRduInit1JAV8=;
        b=cI0L5Pg3Hg6Rh1gMWbTD8BnzibEjRKmDRcnr+vd/V2c4ojHgKk8D9HzI8uBablt8V0
         yp9b/9HnjfAxDrF6jE31LZpUeP52lddvZqB3UrpTIHCnUFlA0XkbqbLvt25mXbVSoFy4
         a/I04OCvfx61CBs70iseByA3kjZtB3anOothcNFj1MZhoyWsTkDRCyZn0Zd4IhelW2MM
         ElM7Ng8Y9Ak6ayHogoNgCGXA93dBwv8cxYaM/9Ja8LtywdudYU1R+VkXpvQvxkB5Ogw8
         UdgojEAjDvQrQpVkVJWLPIkkuBreqJPNCMBMaoz1b3ZEC6C+lQK2/hodjjdpyj7s4NcP
         rLWA==
X-Gm-Message-State: AOJu0YwmmL7SS9u191i+9AcP5hCNaapd8rVrPno97BnsebIuce+R9ETN
	k6oVzjUDXdkalpqZptk58q0IUywPgiWrNr3Tmodp+NDUsyUnCaUIdgQNKCSUIAw=
X-Google-Smtp-Source: AGHT+IHBUTFJrU+ck3zXCHktqcoBbuDNrnCZ1z4a57j4U8TKDtP4AREhXf6P8nX19ehq5KdW/V+tIA==
X-Received: by 2002:a17:907:72ce:b0:a75:1069:5b94 with SMTP id a640c23a62f3a-a7d3ffa3052mr1051313466b.21.1722420007412;
        Wed, 31 Jul 2024 03:00:07 -0700 (PDT)
Message-ID: <c65c17c4-f003-415d-b69e-fc1ec82c038d@citrix.com>
Date: Wed, 31 Jul 2024 11:00:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] x86/domain: Implement arch_init_idle_domain()
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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20240718215744.3892072-1-andrew.cooper3@citrix.com>
 <20240718215744.3892072-3-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2407301639090.4857@ubuntu-linux-20-04-desktop>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <alpine.DEB.2.22.394.2407301639090.4857@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31/07/2024 12:44 am, Stefano Stabellini wrote:
> On Thu, 18 Jul 2024, Andrew Cooper wrote:
>> The idle domain needs d->arch.ctxt_switch initialised on x86.  Implement the
>> new arch_init_idle_domain() in order to do this.
>>
>> Right now this double-initalises the ctxt_switch pointer, but it's safe and
>> will stop happening when domain_create() is cleaned up as a consequence.
>>
>> No practical change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Julien Grall <julien@xen.org>
>> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
>> CC: Bertrand Marquis <bertrand.marquis@arm.com>
>> CC: Michal Orzel <michal.orzel@amd.com>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>>  xen/arch/x86/domain.c             | 19 ++++++++++++-------
>>  xen/arch/x86/include/asm/domain.h |  3 +++
>>  2 files changed, 15 insertions(+), 7 deletions(-)
>>
>> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
>> index ccadfe0c9e70..eff905c6c6e5 100644
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -768,6 +768,17 @@ static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
>>      return true;
>>  }
>>  
>> +void __init arch_init_idle_domain(struct domain *d)
>> +{
>> +    static const struct arch_csw idle_csw = {
>> +        .from = paravirt_ctxt_switch_from,
>> +        .to   = paravirt_ctxt_switch_to,
>> +        .tail = idle_loop,
>> +    };
>> +
>> +    d->arch.ctxt_switch = &idle_csw;
>> +}
>> +
>>  int arch_domain_create(struct domain *d,
>>                         struct xen_domctl_createdomain *config,
>>                         unsigned int flags)
>> @@ -783,13 +794,7 @@ int arch_domain_create(struct domain *d,
>>      /* Minimal initialisation for the idle domain. */
>>      if ( unlikely(is_idle_domain(d)) )
>>      {
>> -        static const struct arch_csw idle_csw = {
>> -            .from = paravirt_ctxt_switch_from,
>> -            .to   = paravirt_ctxt_switch_to,
>> -            .tail = idle_loop,
>> -        };
>> -
>> -        d->arch.ctxt_switch = &idle_csw;
>> +        arch_init_idle_domain(d);
> I don't understand why you need this call to arch_init_idle_domain(d)
> here given the other call to arch_init_idle_domain added by patch #1.

It's stale from an older version of the series.  I'll drop it, which
will reduce the churn in this as well as patch 4.

> Also I am not sure why you didn't move the line below (cpu_policy =
> ZERO_BLOCK_PTR) to arch_init_idle_domain as well but I admit I don't
> know this code.

See the thread on patch 4 with Jan.  It's intentional.

This was a safety check which is dubious (it's not special enough to
warrant it on its own), and has never tripped.

I'll note it's intentional omission in the commit message.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 10:00:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 10:00:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768418.1179201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ68N-0003AB-9c; Wed, 31 Jul 2024 10:00:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768418.1179201; Wed, 31 Jul 2024 10:00: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 1sZ68N-0003A4-75; Wed, 31 Jul 2024 10:00:39 +0000
Received: by outflank-mailman (input) for mailman id 768418;
 Wed, 31 Jul 2024 10:00:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8n5P=O7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sZ68M-00036h-9b
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 10:00:38 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bbdae474-4f23-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 12:00:36 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-52f04b3cb33so12337194e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 03:00:36 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52fd5c19dc4sm2150406e87.221.2024.07.31.03.00.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 03:00: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: bbdae474-4f23-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722420036; x=1723024836; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=lflpAgmWCCSwIrZR6/0U2fHK01ooOxuX985VkJBiB3U=;
        b=eO3lf/2N2qJ2/Ox2OOZUYLRdxPDeZdm3x7N08lmJIJJD/upEn2F3sDT+1LhhSiC288
         yaacdc0wvd5S92/7fUPKT444qA4mZndgcdoFqseveDWds9W6SSmzG04KO1HCl+2Ynt9i
         YMue8Dsm5mYQEqwZ8poeGcLMQ4JsueAEiPzEufIVMatybry2s4PuLHg6t9k1q66qylyk
         bTi/kedtyaaPgYa4iJDNivTSji+UDbFNC8t4OG2gy7whs9vteu1Ulzz7NkmhMyK9nKFh
         srHiwiQvDdScPZKf1toEmBd3FvDjbuCZb69NVdVMhetS7ImDYuUYnTr9GDaC6MdNGsfn
         VFQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722420036; x=1723024836;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=lflpAgmWCCSwIrZR6/0U2fHK01ooOxuX985VkJBiB3U=;
        b=ZSWjczYTLHX7ddTn0GXFn31hbkwIViQC1BLFlu13zjM/cpqpUB03xVNXv/AGbyxPJc
         pV+tMGeL5P5oc2k5Hgbsa2sEbJkJHUI20PPPcJ85CXPp20eLSJDkDSf6NLA69m33a5aV
         d9AbGwYZIAbWd36StLMIa6/ddTSizVNDu5zuPH0IkoJRtnGhj3zM2icUVn8h0W6VY3NV
         P949wdisRk7VOQNfsO82D/bRC5GyawL4zJDxR7BtXdldbn21cG8B/1asmL5YtzPDGJIH
         NpM9C1ZxpebiVpm4nqoKtTz35fQzA+nH/Ykn14BM98TT9z5BDmOUJUCirh9ZnmaXcK63
         pQ9A==
X-Forwarded-Encrypted: i=1; AJvYcCXAr3GFWoPsF9rK2TVhksY8JiCYLoN7ZPLd5qjGI0GW4QtfqXjKaGfh/Nejabz6R60WrWsz0hsFLH5PJRfFonPpQPkkUZr8ydqxarIJjOY=
X-Gm-Message-State: AOJu0YwjqrJ10ZTxGFSrbivScf6NXxURBEhezrFtxIT55wkTINoBhd9S
	2fxkTy5VQeMdBFoGgnW3XCsQTuUvrz2R7s5xlKGTPF2vIGs4e1ho
X-Google-Smtp-Source: AGHT+IEeGfamhHQCI8DmVBCEqIgWHQw3MPX50YVhl+cNsuhuKr7pm+jmhUu6ohtHMSGAyG2JAvKQ5Q==
X-Received: by 2002:ac2:43d2:0:b0:52f:cd03:a823 with SMTP id 2adb3069b0e04-5309b2cac8cmr11622466e87.45.1722420035589;
        Wed, 31 Jul 2024 03:00:35 -0700 (PDT)
Message-ID: <60d1fbab4c94feb7e0bf88d0a3b2499f2f8baca4.camel@gmail.com>
Subject: Re: [PATCH v3 5/9] xen/riscv: introduce asm/pmap.h header
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Wed, 31 Jul 2024 12:00:34 +0200
In-Reply-To: <36944f26-1180-4eaa-aa5d-3186e65faeb8@suse.com>
References: <cover.1721834549.git.oleksii.kurochko@gmail.com>
	 <11b5487659a9c76793e520c108cd92c6c84b908d.1721834549.git.oleksii.kurochko@gmail.com>
	 <3359e37e-eaae-49ca-80a5-2bf70b9b46c7@suse.com>
	 <78effb178b1ffe7ccb1714a13157e94f5e816b01.camel@gmail.com>
	 <6c2ebc9e-cc0d-4139-80a2-4d7025989a9e@suse.com>
	 <035f836a53966194048df5b720b94a78b0a490ae.camel@gmail.com>
	 <36944f26-1180-4eaa-aa5d-3186e65faeb8@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

On Tue, 2024-07-30 at 14:15 +0200, Jan Beulich wrote:
> On 30.07.2024 13:39, oleksii.kurochko@gmail.com=C2=A0wrote:
> > On Tue, 2024-07-30 at 09:56 +0200, Jan Beulich wrote:
> > > On 29.07.2024 18:22, oleksii.kurochko@gmail.com=C2=A0wrote:
> > > > On Mon, 2024-07-29 at 16:29 +0200, Jan Beulich wrote:
> > > > > On 24.07.2024 17:31, Oleksii Kurochko wrote:
> > > > > > --- /dev/null
> > > > > > +++ b/xen/arch/riscv/include/asm/pmap.h
> > > > > > @@ -0,0 +1,33 @@
> > > > > > +/* SPDX-License-Identifier: GPL-2.0 */
> > > > > > +#ifndef ASM_PMAP_H
> > > > > > +#define ASM_PMAP_H
> > > > > > +
> > > > > > +#include <xen/bug.h>
> > > > > > +#include <xen/mm.h>
> > > > > > +#include <xen/page-size.h>
> > > > > > +
> > > > > > +#include <asm/fixmap.h>
> > > > > > +#include <asm/flushtlb.h>
> > > > > > +#include <asm/system.h>
> > > > > > +
> > > > > > +static inline void arch_pmap_map(unsigned int slot, mfn_t
> > > > > > mfn)
> > > > > > +{
> > > > > > +=C2=A0=C2=A0=C2=A0 pte_t *entry =3D &xen_fixmap[slot];
> > > > > > +=C2=A0=C2=A0=C2=A0 pte_t pte;
> > > > > > +
> > > > > > +=C2=A0=C2=A0=C2=A0 ASSERT(!pte_is_valid(*entry));
> > > > > > +
> > > > > > +=C2=A0=C2=A0=C2=A0 pte =3D mfn_to_xen_entry(mfn, PAGE_HYPERVIS=
OR_RW);
> > > > > > +=C2=A0=C2=A0=C2=A0 write_pte(entry, pte);
> > > > > > +}
> > > > >=20
> > > > > Perhaps add a comment to clarify why it's safe to omit a TLB
> > > > > flush
> > > > > here.
> > > > > Note that arch_pmap_unmap() having one is a necessary but not
> > > > > sufficient
> > > > > condition to that. In principle hardware may also cache
> > > > > "negative"
> > > > > TLB
> > > > > entries; I have no idea how RISC-V behaves in this regard, or
> > > > > whether
> > > > > that aspect is actually left to implementations.
> > > > what do you mean by "negative" TLB? an old TLB entry which
> > > > should
> > > > be
> > > > invalidated?
> > >=20
> > > No, I mean TLB entries saying "no valid translation here". I.e.
> > > avoiding
> > > recurring walks of something that was once found to have no
> > > translation.
> > But we can't modify an existent entry because we have
> > "ASSERT(!pte_is_valid(*entry))" in pmap_map() function and we are
> > doing
> > TLB flush during pmap_unmap().
>=20
> You _always_ modify an existing entry. That may be a not-present one,
> but
> that's still an entry. And that's part of why I think you still
> didn't
> understand what I said. A particular implementation, if permitted by
> the
> spec, may very well put in place a TLB entry when the result of a
> page
> walk was a non-present entry. So ...
>=20
> > So when we will be in pmap_map() we are
> > sure that there is no TLB entry for the new pte.
>=20
> ..., can you point me at the part of the spec saying that such
> "negative"
> TLB entries are not permitted?
I double-checked the spec and it seems to me you are right and it could
be an issue. Absense of "negative" TLB entrues will be guaranted only
in the case when Svvptc extension is present (
https://github.com/riscv/riscv-svvptc/blob/main/svvptc.adoc?plain=3D1#L85
):
   Depending on the microarchitecture, some possible ways to facilitate
   implementation of Svvptc include: not having any address-translation
   caches, not
   storing Invalid PTEs in the address-translation caches, automatically
   evicting
   Invalid PTEs using a bounded timer, or making address-translation
   caches
   coherent with store instructions that modify PTEs.

If the mentioned above extension isn't present. Also there is the
following words in the spec=20
(=C2=A0https://github.com/riscv/riscv-isa-manual/blob/main/src/supervisor.a=
doc?plain=3D1#L1213
):
   For the special cases of increasing the permissions on a leaf PTE and
   changing an invalid
   PTE to a valid leaf, software may choose to execute the SFENCE.VMA
   lazily. After
   modifying the PTE but before executing SFENCE.VMA, either the new or
   old permissions
   will be used. In the latter case, a page-fault exception might occur,
   at which point software
   should execute SFENCE.VMA in accordance with the previous bullet point.

Probably in the future we will need also similar to work Linux kernel
does:
https://patchwork.kernel.org/project/linux-mips/cover/20240131155929.169961=
-1-alexghiti@rivosinc.com/

So I'll add flush_xen_tlb_range_va_local(FIXMAP_ADDR(slot), PAGE_SIZE)
in arch_pmap_map.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 10:04:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 10:04:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768432.1179211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ6Bn-0003sj-Qg; Wed, 31 Jul 2024 10:04:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768432.1179211; Wed, 31 Jul 2024 10:04:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ6Bn-0003sc-Nx; Wed, 31 Jul 2024 10:04:11 +0000
Received: by outflank-mailman (input) for mailman id 768432;
 Wed, 31 Jul 2024 10:04: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=1P6D=O7=ti.com=a-singh21@srs-se1.protection.inumbo.net>)
 id 1sZ6Bn-0003sW-4p
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 10:04:11 +0000
Received: from lelv0143.ext.ti.com (lelv0143.ext.ti.com [198.47.23.248])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 399dd98a-4f24-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 12:04:09 +0200 (CEST)
Received: from fllv0035.itg.ti.com ([10.64.41.0])
 by lelv0143.ext.ti.com (8.15.2/8.15.2) with ESMTP id 46VA47X5108472
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 05:04:07 -0500
Received: from DFLE103.ent.ti.com (dfle103.ent.ti.com [10.64.6.24])
 by fllv0035.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 46VA47Kh129332
 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL)
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 05:04:07 -0500
Received: from DFLE100.ent.ti.com (10.64.6.21) by DFLE103.ent.ti.com
 (10.64.6.24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Wed, 31
 Jul 2024 05:04:06 -0500
Received: from lelvsmtp5.itg.ti.com (10.180.75.250) by DFLE100.ent.ti.com
 (10.64.6.21) 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; Wed, 31 Jul 2024 05:04:07 -0500
Received: from localhost (nightbug.dhcp.ti.com [10.24.68.118])
 by lelvsmtp5.itg.ti.com (8.15.2/8.15.2) with ESMTP id 46VA46mK024241
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 05:04: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: 399dd98a-4f24-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com;
	s=ti-com-17Q1; t=1722420247;
	bh=AKGEMl/NUIeH61GG+rVpI1xAlBultmbj4AGBqYgGqkc=;
	h=From:To:Subject:Date;
	b=biDHhhmqCBa9ccAaVOrsHm4eKV3A21LIzbjxXoSjB2kLm+RIfzxR/59OMT7QHw46+
	 VQgWWvOcoWIbxRzgyEc9+HubqZP/MQgmZian3/SetmWCLGyjUu07oLax/5Hy5kqmhL
	 8lboCSZRPrw07rQS0Iml3xsVS4q20PM0pEOppM+I=
From: Amneesh Singh <a-singh21@ti.com>
To: <xen-devel@lists.xenproject.org>
Subject: init-dom0less: Weird use of cpupool in xl dominfo
Date: Wed, 31 Jul 2024 15:33:59 +0530
Message-ID: <20240731100359.529751-1-a-singh21@ti.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180

Hello, I was going through the source code for init-dom0less as I was
facing some issue after applying this patchset. Feel free to ignore it
however, as it seems unrelated to the issue I am encountering.

https://lists.xenproject.org/archives/html/xen-devel/2024-05/msg01825.html

One peculiar thing I noticed was that the "cpupool" field is being used
as a bitfield to check individual vCPUs. However afaik, "cpupool" is
supposed to be the cpupool *ID*. That matches the fact that the cpupool
value for all my VMs is 0, as I only have a single cpupool (id = 0). Am
I overlooking something, or am I correct? Here is the relevant code:

https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=tools/helpers/init-dom0less.c;h=fee93459c4b9da59446a2f8dfcf5cbfc4d95aeab;hb=HEAD#l176

Regards
Amneesh


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 10:08:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 10:08:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768440.1179222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ6G3-0004zi-BB; Wed, 31 Jul 2024 10:08:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768440.1179222; Wed, 31 Jul 2024 10:08: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 1sZ6G3-0004zb-7x; Wed, 31 Jul 2024 10:08:35 +0000
Received: by outflank-mailman (input) for mailman id 768440;
 Wed, 31 Jul 2024 10:08: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=F/qb=O7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sZ6G1-0004zV-Oa
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 10:08: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 d70d24d9-4f24-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 12:08:31 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5af326eddb2so1362440a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 03:08:31 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acadb8039sm739117966b.200.2024.07.31.03.08.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 03: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: d70d24d9-4f24-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722420511; x=1723025311; 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=Q0bkKBbZiwjP7hq21Qyqw1jG2N410q+6W1j0I7SaVDY=;
        b=XAIw58TPOWQJzvQOtO3WthFzgD6jdMEDWZk5JcG3mOEHJVCsoWRikb9y1Pt7kIT/F3
         X6coa+deX1Y2rbK+bVgKvQq9/QT/sMT24YCFV9Q8u40q+5tVCBB/JQbdB2uLhWFWwIg1
         suNFDZ949VkbBRaZq8HTvRnZRNTzyURIzNjxs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722420511; x=1723025311;
        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=Q0bkKBbZiwjP7hq21Qyqw1jG2N410q+6W1j0I7SaVDY=;
        b=G6sLd2n+jC4f5oBORqV9yy5fS6msrM9mRWrGmFDCP9J9yCDMewqxJpIYY/xVAWyGq1
         Y8dL/4rndCzNcGxhYWRcmKgXgxDfO7mZRfPbVrhemVrmsnjEMeby5Ec3VanqEqEbfyjq
         EMeQK4qcTToC/YI9PuIO2G7iZ6AcxQV4fIa5sPs2BxCy+JBQG9FDPRyyXIyi1acHbfkF
         /gXpnNaP9nHji2CJkxWCKtc7brj7judI5nDihtpwYRk8ZJVz7/HnIT5FH4CBLi3JEfsk
         75imCxATrQzlp+6gVIpLk8MsBgqg5x2FmPFyTQC5YfpBGjj6XVnIK/toS4V/Y7RVecVp
         LaoA==
X-Gm-Message-State: AOJu0YyzMUYxkCS2NI0M+MPF66JV53D4zo+4ET/pfwRLb7ImgMok8Glq
	JS7tO+LbSbuZ33HK54V4kDYs2az5QhpRUcy377uzetW9vCHeHxdimjL0QjZUXhpEXgeXJAoBe2j
	V
X-Google-Smtp-Source: AGHT+IEAdfbAGTSL8qlfuGa6P4XNUPUK8uVgy9GdE3tSu8yW192QbiYYWjCzZPISkzDSE4peRtTvCQ==
X-Received: by 2002:a17:907:31ca:b0:a77:ca3b:996c with SMTP id a640c23a62f3a-a7d85963ecdmr522618566b.16.1722420510491;
        Wed, 31 Jul 2024 03:08:30 -0700 (PDT)
Message-ID: <3ca84670-9201-49a5-9643-1cfbcaefb830@citrix.com>
Date: Wed, 31 Jul 2024 11:08:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: init-dom0less: Weird use of cpupool in xl dominfo
To: xen-devel@lists.xenproject.org
References: <20240731100359.529751-1-a-singh21@ti.com>
Content-Language: en-GB
Cc: Juergen Gross <jgross@suse.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240731100359.529751-1-a-singh21@ti.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31/07/2024 11:03 am, Amneesh Singh wrote:
> Hello, I was going through the source code for init-dom0less as I was
> facing some issue after applying this patchset. Feel free to ignore it
> however, as it seems unrelated to the issue I am encountering.
>
> https://lists.xenproject.org/archives/html/xen-devel/2024-05/msg01825.html
>
> One peculiar thing I noticed was that the "cpupool" field is being used
> as a bitfield to check individual vCPUs. However afaik, "cpupool" is
> supposed to be the cpupool *ID*. That matches the fact that the cpupool
> value for all my VMs is 0, as I only have a single cpupool (id = 0). Am
> I overlooking something, or am I correct? Here is the relevant code:
>
> https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=tools/helpers/init-dom0less.c;h=fee93459c4b9da59446a2f8dfcf5cbfc4d95aeab;hb=HEAD#l176

CC'ing relevant people.

But yes - that looks distinctly wrong.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 11:30:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 11:30:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768483.1179306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ7We-0000bW-Rs; Wed, 31 Jul 2024 11:29:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768483.1179306; Wed, 31 Jul 2024 11:29:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ7We-0000bP-OQ; Wed, 31 Jul 2024 11:29:48 +0000
Received: by outflank-mailman (input) for mailman id 768483;
 Wed, 31 Jul 2024 11:29:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZ7Wd-0000bJ-QZ
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 11:29:47 +0000
Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com
 [2607:f8b0:4864:20::836])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2cd83a6f-4f30-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 13:29:40 +0200 (CEST)
Received: by mail-qt1-x836.google.com with SMTP id
 d75a77b69052e-44fedc06c03so28684611cf.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 04:29:45 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3faedcbasm72667786d6.124.2024.07.31.04.29.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 04:29: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: 2cd83a6f-4f30-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722425384; x=1723030184; 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=+mfjVkKzoK5YbrZBfFB9sf+nRfQTAY5ljtT5uPPCyv8=;
        b=WYEfRiYo0zEu0AIa2M4i56mbGwgm5PyZF6grLGc7zMnUZVyWXY2Jq0fKwGn1YAXOxJ
         JEy9OlKateM6r1uhnOwFrQ/Y/MfS234z6s0H/Yv2bdi1l4ecHc0fvVylZLDojxzcbDMe
         JLsq9N9kQkJMU6SWBb9J2XmrJTnMbVm3hQI28=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722425384; x=1723030184;
        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=+mfjVkKzoK5YbrZBfFB9sf+nRfQTAY5ljtT5uPPCyv8=;
        b=C5cGbd7cBWGIXzWty4sD1Td0rgjZvM8JQ+qPE5S/fVNjU++8uRwE8BVxC1n2Gawzh4
         L3tla66a8SfHUWB42OCWQ2bfuFHjYgO4Wu2nYNm5/b4eN4IeGJxnhxUfVHePKQeTotJT
         O8UOZMtH6WKWSrHAhIZMBE5nKnSpDAXMtcktdiKARDr6//oXV3KAlYXHzu0LaWzwrejL
         tAbsQbkboIF2yeCeNA+1kVaDPClx4JQYgxYov/tcp1do1L1FuRTtInhicDWQKgBjSKHj
         xlLqC0XtAgLXr0g3m0NVPXW9/XeHymVzoUgMW+9a3MlKuh+iMi1+3FD5MHNtR7RkXh/Z
         +zpQ==
X-Gm-Message-State: AOJu0YySp/hROtIxD+XSDPeYD3U/jJPueBsBfWq48QIr065rjIvC/imP
	JJfCVUmJieIEKd+hkmleRpLyaavplmIiYGsdI1Ca1LapfHxXzdr+ZFOuiB6Vr+g=
X-Google-Smtp-Source: AGHT+IFNHtCILnmRagpKPlogs0xGFLDHP9CwWo6gzywias2XBguZKk2qhHIvPOB69mPjWKHm31dslg==
X-Received: by 2002:a05:6214:5014:b0:6b7:99f6:98b0 with SMTP id 6a1803df08f44-6bb559d535dmr157429376d6.17.1722425383699;
        Wed, 31 Jul 2024 04:29:43 -0700 (PDT)
Date: Wed, 31 Jul 2024 13:29:41 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Juergen Gross <jgross@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Message-ID: <ZqogJVHV36ytYVP1@macbook>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com>
 <Zqnswi7ihOhMxPsi@macbook>
 <0aa0982a-30b3-43cd-9a9e-4542d7cb583f@suse.com>
 <Zqn014wCEfWhyo1-@macbook>
 <8ff685a6-0cbd-45cd-a818-4535a040c478@suse.com>
 <Zqn7HEuooChgRCuf@macbook>
 <d65ae152-22ee-4a57-8ff4-43ef0c234f5f@suse.com>
 <ZqoF55yapMxGN_WM@macbook>
 <fa33fbf8-32b6-48dc-a30c-dd76b021a76d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <fa33fbf8-32b6-48dc-a30c-dd76b021a76d@suse.com>

On Wed, Jul 31, 2024 at 11:55:35AM +0200, Jan Beulich wrote:
> On 31.07.2024 11:37, Roger Pau Monné wrote:
> > On Wed, Jul 31, 2024 at 11:02:01AM +0200, Jan Beulich wrote:
> >> On 31.07.2024 10:51, Roger Pau Monné wrote:
> >>> I agree with (a), but I don't think enabling PVH dom0 usage of the
> >>> hypercalls should be gated on this.  As said a PV dom0 is already
> >>> capable of issuing PHYSDEVOP_{,un}map_pirq operations against a PVH
> >>> domU.
> >>
> >> Okay, I can accept that as an intermediate position. We ought to deny
> >> such requests at some point though for PVH domains, the latest in the
> >> course of making vPCI work there.
> > 
> > Hm, once physdev_map_pirq() works as intended against PVH domains, I
> > don't see why we would prevent the usage of PHYSDEVOP_{,un}map_pirq
> > against such domains.
> 
> Well. If it can be made work as intended, then I certainly agree. However,
> without even the concept of pIRQ in PVH I'm having a hard time seeing how
> it can be made work. Iirc you were advocating for us to not introduce pIRQ
> into PVH.

>From what I'm seeing here the intention is to expose
PHYSDEVOP_{,un}map_pirq to PVH dom0, so there must be some notion of
pIRQs or akin in a PVH dom0?  Even if only for passthrough needs.

> Maybe you're thinking of re-using the sub-ops, requiring PVH domains to
> pass in GSIs?

I think that was one my proposals, to either introduce a new
hypercall that takes a GSI, or to modify the PHYSDEVOP_{,un}map_pirq
in an ABI compatible way so that semantically the field could be a GSI
rather than a pIRQ.  We however would also need a way to reference an
MSI entry.

My main concern is not with pIRQs by itself, pIRQs are just an
abstract way to reference interrupts, my concern and what I wanted to
avoid on PVH is being able to route pIRQs over event channels.  IOW:
have interrupts from physical devices delivered over event channels.

> I think I suggested something along these lines also to
> Jiqian, yet with the now intended exposure to !has_pirq() domains I'm
> not sure this could be made work reliably.

I'm afraid I've been lacking behind on reviewing those series.

> Which reminds me of another question I had: What meaning does the pirq
> field have right now, if Dom0 would issue the request against a PVH DomU?
> What meaning will it have for a !has_pirq() HVM domain?

The pirq field could be a way to reference an interrupt.  It doesn't
need to be exposed to the PVH domU at all, but it's a way for the
device model to identify which interrupt should be mapped to which
domain.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 11:39:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 11:39:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768491.1179316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ7gI-0002N6-LN; Wed, 31 Jul 2024 11:39:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768491.1179316; Wed, 31 Jul 2024 11: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 1sZ7gI-0002Mz-Iq; Wed, 31 Jul 2024 11:39:46 +0000
Received: by outflank-mailman (input) for mailman id 768491;
 Wed, 31 Jul 2024 11:39:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ7gG-0002Mt-TU
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 11:39:44 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 918c537d-4f31-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 13:39:38 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-530ae4ef29dso1756671e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 04:39: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
 a640c23a62f3a-a7acad411b1sm756039866b.125.2024.07.31.04.39.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 04:39: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: 918c537d-4f31-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722425982; x=1723030782; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+6fYC5mahefV2YP5/svw79TEY+oy9eFPkzq2UWAj5js=;
        b=BsV83/FCIHmryP/UmUByjaQ8jeXEzLJtsFmS83vQDfSEGoAiSxRTL6kXTdaluK3hoB
         7+vOdwIvjsxDfq+vKrkK9bCc5pTi6sQItYRKuGbKLAfLQkFZYmF2ZNQzjUVmHi+vsxTy
         f8BIg75Xjn021b5l7zspDvfDOl5fa8liIQNFQkY3ewM1V7rk2D4Ktb3ASTYSKCNSxTad
         0SguSQsKBGq9WLA1K5hulB9XPiWaKpIHU0zUFDt9RSzoE5aQ7VD5vz8MNzXCGND2KQdS
         rWLrL0IV19qYjmJaqNphVo0ZJEth+xMX8EGfaPLgR5XeKzd+VEjpSzSNaCADedggYQ3T
         Zs6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722425982; x=1723030782;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+6fYC5mahefV2YP5/svw79TEY+oy9eFPkzq2UWAj5js=;
        b=cCtz4VOsyr/cbIyUpSRwfdJGE3wUimCaTf/WPQxXuDRsNbJ5Wa42ZcNQlBK125n2Le
         VwsDHf3rhW6086zMy8/NqBwl757uat7Lg6J6k5Khv88Z7pku9U/mvt1SJjXb+HhbD7In
         uH+8yT7SH5b7H0WhqCayMl8d+an4mWBvOd5CCjr6ytinH4yMUVefCmCBuZHQNVhorxJN
         Nx4Xbk4nHM1uxN9jRijQjdzdH6q6Sow3F6+zRRhbARKLzyFf6HSFvreEsJNdC8rD/Ab9
         271o7kZjJ3m8xJzuU6eAPezt6AnSt5WN30XMQxkJDwPju4ydnqPgQaQ++/2Y2oTCLeje
         M7Nw==
X-Gm-Message-State: AOJu0YzhRtCKWC0j6pNu6uSIDjrxZAjYrd06pC+/B8hQfdtat+CVP4qR
	wP+o6DNl3OOqYZ9na61YvGZj82nVuyfbPo+GZraRhK5izUCg22OUq7C7N40w6g==
X-Google-Smtp-Source: AGHT+IFeGk326gQ6y1oKRHJu69G9C+oq4q/dmxLIvjld7UKG/8Vhr3bjsZjHy9fg5YnSjUKehIEWgg==
X-Received: by 2002:ac2:43d2:0:b0:52f:cd03:a823 with SMTP id 2adb3069b0e04-5309b2cac8cmr11855108e87.45.1722425982261;
        Wed, 31 Jul 2024 04:39:42 -0700 (PDT)
Message-ID: <ff922c7a-aa66-4b23-8b9f-63b0b403ff14@suse.com>
Date: Wed, 31 Jul 2024 13:39:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-3-Jiqian.Chen@amd.com> <Zqnswi7ihOhMxPsi@macbook>
 <0aa0982a-30b3-43cd-9a9e-4542d7cb583f@suse.com> <Zqn014wCEfWhyo1-@macbook>
 <8ff685a6-0cbd-45cd-a818-4535a040c478@suse.com> <Zqn7HEuooChgRCuf@macbook>
 <d65ae152-22ee-4a57-8ff4-43ef0c234f5f@suse.com> <ZqoF55yapMxGN_WM@macbook>
 <fa33fbf8-32b6-48dc-a30c-dd76b021a76d@suse.com> <ZqogJVHV36ytYVP1@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZqogJVHV36ytYVP1@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 13:29, Roger Pau Monné wrote:
> On Wed, Jul 31, 2024 at 11:55:35AM +0200, Jan Beulich wrote:
>> On 31.07.2024 11:37, Roger Pau Monné wrote:
>>> On Wed, Jul 31, 2024 at 11:02:01AM +0200, Jan Beulich wrote:
>>>> On 31.07.2024 10:51, Roger Pau Monné wrote:
>>>>> I agree with (a), but I don't think enabling PVH dom0 usage of the
>>>>> hypercalls should be gated on this.  As said a PV dom0 is already
>>>>> capable of issuing PHYSDEVOP_{,un}map_pirq operations against a PVH
>>>>> domU.
>>>>
>>>> Okay, I can accept that as an intermediate position. We ought to deny
>>>> such requests at some point though for PVH domains, the latest in the
>>>> course of making vPCI work there.
>>>
>>> Hm, once physdev_map_pirq() works as intended against PVH domains, I
>>> don't see why we would prevent the usage of PHYSDEVOP_{,un}map_pirq
>>> against such domains.
>>
>> Well. If it can be made work as intended, then I certainly agree. However,
>> without even the concept of pIRQ in PVH I'm having a hard time seeing how
>> it can be made work. Iirc you were advocating for us to not introduce pIRQ
>> into PVH.
> 
> From what I'm seeing here the intention is to expose
> PHYSDEVOP_{,un}map_pirq to PVH dom0, so there must be some notion of
> pIRQs or akin in a PVH dom0?  Even if only for passthrough needs.

Only in so far as it is an abstract, handle-like value pertaining solely
to the target domain.

>> Maybe you're thinking of re-using the sub-ops, requiring PVH domains to
>> pass in GSIs?
> 
> I think that was one my proposals, to either introduce a new
> hypercall that takes a GSI, or to modify the PHYSDEVOP_{,un}map_pirq
> in an ABI compatible way so that semantically the field could be a GSI
> rather than a pIRQ.  We however would also need a way to reference an
> MSI entry.

Of course.

> My main concern is not with pIRQs by itself, pIRQs are just an
> abstract way to reference interrupts, my concern and what I wanted to
> avoid on PVH is being able to route pIRQs over event channels.  IOW:
> have interrupts from physical devices delivered over event channels.

Oh, I might have slightly misunderstood your intentions then.

>> I think I suggested something along these lines also to
>> Jiqian, yet with the now intended exposure to !has_pirq() domains I'm
>> not sure this could be made work reliably.
> 
> I'm afraid I've been lacking behind on reviewing those series.
> 
>> Which reminds me of another question I had: What meaning does the pirq
>> field have right now, if Dom0 would issue the request against a PVH DomU?
>> What meaning will it have for a !has_pirq() HVM domain?
> 
> The pirq field could be a way to reference an interrupt.  It doesn't
> need to be exposed to the PVH domU at all, but it's a way for the
> device model to identify which interrupt should be mapped to which
> domain.

Since pIRQ-s are per-domain, _that_ kind of association won't be
helped. But yes, as per above it could serve as an abstract handle-
like value.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 11:47:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 11:47:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768499.1179326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ7o4-000494-CL; Wed, 31 Jul 2024 11:47:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768499.1179326; Wed, 31 Jul 2024 11:47:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ7o4-00048x-9t; Wed, 31 Jul 2024 11:47:48 +0000
Received: by outflank-mailman (input) for mailman id 768499;
 Wed, 31 Jul 2024 11:47:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ7o3-00048n-4j; Wed, 31 Jul 2024 11:47:47 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ7o2-0002GJ-ET; Wed, 31 Jul 2024 11:47:46 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ7o1-0004W3-Qs; Wed, 31 Jul 2024 11:47:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ7o1-0006QY-QS; Wed, 31 Jul 2024 11:47: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=o32WeyScDgwpWFTMmCxVdIe+IhNX3Vw/PyhN30lzK/I=; b=x1LJdsh5V2Gh8ePoyEI8YTlDnG
	YnAuL7MuAaezO+zKKUnvb53RZSYS9MjmawxNdfyQd/47AdWvHilEDg+NtKghTssEJEgftwex7iGHC
	6PaNvYnPVwJH6rn0F9DfsKWCsHj6fWQ61Mt38uGdBIn4B0y605whDUA7OAvr3ugm4cC0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187074-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187074: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=03f49e44096fc25c33f96a11b3da93abc93dad34
X-Osstest-Versions-That:
    ovmf=9df400fd4d75831e02428e9ccb3dcfce85ceab82
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 11:47:45 +0000

flight 187074 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187074/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 03f49e44096fc25c33f96a11b3da93abc93dad34
baseline version:
 ovmf                 9df400fd4d75831e02428e9ccb3dcfce85ceab82

Last test of basis   187070  2024-07-31 04:13:22 Z    0 days
Testing same since   187074  2024-07-31 09:13:16 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Leif Lindholm <quic_llindhol@quicinc.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   9df400fd4d..03f49e4409  03f49e44096fc25c33f96a11b3da93abc93dad34 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 11:50:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 11:50:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768508.1179336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ7qn-0005Zl-QY; Wed, 31 Jul 2024 11:50:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768508.1179336; Wed, 31 Jul 2024 11: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 1sZ7qn-0005Ze-O5; Wed, 31 Jul 2024 11:50:37 +0000
Received: by outflank-mailman (input) for mailman id 768508;
 Wed, 31 Jul 2024 11: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=Q60C=O7=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sZ7qm-0005ZY-18
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 11:50:36 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 15aad5b0-4f33-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 13:50:29 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a7aa212c1c9so757264666b.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 04:50:34 -0700 (PDT)
Received: from ?IPV6:2003:e5:8729:4000:29eb:6d9d:3214:39d2?
 (p200300e58729400029eb6d9d321439d2.dip0.t-ipconnect.de.
 [2003:e5:8729:4000:29eb:6d9d:3214:39d2])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab23132sm761589166b.27.2024.07.31.04.50.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 04:50: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: 15aad5b0-4f33-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722426633; x=1723031433; 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=as6cTdAxPWJdN3y1dR34Y3IW8D8JvbJT3/8CyOZ9NMM=;
        b=Rsob2xuNOUwGaQYEDEzssR4IlupG6r4PTqU5dkUzCUybxxkW/KIcLsVBZXBjsgjYlX
         Tr2/febxQd6c3e8O/c0lQkS3ofSx8IAGibTCMqtK5h8AgHbEMYrYTCp8oD1BxV3l/25r
         bEy0kAC6brBtN8lCucEJn5JX32/WmXPRpwD/6aQimx4iVnoMKJVW+od9G0cCiRbRhsKf
         In5n3ZD2aEXgEi/bw31c19+CSp1m2Le4Se4Q8pWjVpGLrFEIORPjLSPgO5TPE8cdFj4H
         eTomubrCburOpVexgJFzvi3gR51MW++UHRXlbYtgc6JMAzQ4lOsDXAktLqU9c5TR8Ujg
         G0IA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722426633; x=1723031433;
        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=as6cTdAxPWJdN3y1dR34Y3IW8D8JvbJT3/8CyOZ9NMM=;
        b=QznPDRb+Mqw2f70Wg4gkRL0fWjLOZGeryjeOBwJmwSnXlm8/03bdaZoF/XgRpDTgJV
         mXHWAHPnh7XPTciz6NPop3ziShziJ5mOyR6MNf5RKMaiYevrZ69Pp8AfWpGOqk8zvzcX
         luE8Qujrz6vBkOTCLaHQ/TEeg0hF60KI0gdegNU6me4pQRt6Y4ab13Gl93fLXTGIBn6O
         ocyYENdAjZykRbVgsjV+rKdXF3wNb0kN5kxSq79r65AZFh6QsCXIFF/WX2NLMgQxG3cn
         Tj5G8UaH1qkvZl3FxyQsanyS4gNgJYCYxW5l6qvtjkVH36X7qlECTA2wKei0dzjGKC2g
         KPXA==
X-Forwarded-Encrypted: i=1; AJvYcCWbJdm4iNVr8Y4UbysZryTE/8FYJgTvPM8U1wr4EcbivBRqoZKO08NL35jY8vXyuNJU6Qa/jhXU0mU72I/5DTyE3VnT0m6fFRc20NpQNmc=
X-Gm-Message-State: AOJu0YyIzrUJL11WaxdGnMw0WwWsmiEoWhb6BvBfIObOtw/sASytDkEK
	Tx5iGN1Y6KwH9x2nssh6oM1ahz5fPXbxdrGkYnFMc8SNrJeaNm8g15pVzV7F/Gc=
X-Google-Smtp-Source: AGHT+IGn1I/u+qhM8cgPbHZbTeCjje78dxVLrPXK57TYteliLT6GwiMOsqob2MlVT9TLmW/uCcUdsw==
X-Received: by 2002:a17:907:d17:b0:a7a:9ca6:528 with SMTP id a640c23a62f3a-a7d3ffa4f39mr963806866b.11.1722426633327;
        Wed, 31 Jul 2024 04:50:33 -0700 (PDT)
Message-ID: <a397829f-a190-435e-b6d1-8734800939ce@suse.com>
Date: Wed, 31 Jul 2024 13:50:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: init-dom0less: Weird use of cpupool in xl dominfo
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20240731100359.529751-1-a-singh21@ti.com>
 <3ca84670-9201-49a5-9643-1cfbcaefb830@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <3ca84670-9201-49a5-9643-1cfbcaefb830@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31.07.24 12:08, Andrew Cooper wrote:
> On 31/07/2024 11:03 am, Amneesh Singh wrote:
>> Hello, I was going through the source code for init-dom0less as I was
>> facing some issue after applying this patchset. Feel free to ignore it
>> however, as it seems unrelated to the issue I am encountering.
>>
>> https://lists.xenproject.org/archives/html/xen-devel/2024-05/msg01825.html
>>
>> One peculiar thing I noticed was that the "cpupool" field is being used
>> as a bitfield to check individual vCPUs. However afaik, "cpupool" is
>> supposed to be the cpupool *ID*. That matches the fact that the cpupool
>> value for all my VMs is 0, as I only have a single cpupool (id = 0). Am
>> I overlooking something, or am I correct? Here is the relevant code:
>>
>> https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=tools/helpers/init-dom0less.c;h=fee93459c4b9da59446a2f8dfcf5cbfc4d95aeab;hb=HEAD#l176
> 
> CC'ing relevant people.
> 
> But yes - that looks distinctly wrong.

It _is_ wrong.


Juergen



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 12:04:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 12:04:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768521.1179346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ83y-0007cs-59; Wed, 31 Jul 2024 12:04:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768521.1179346; Wed, 31 Jul 2024 12:04:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ83y-0007cl-2U; Wed, 31 Jul 2024 12:04:14 +0000
Received: by outflank-mailman (input) for mailman id 768521;
 Wed, 31 Jul 2024 12:04:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F/qb=O7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sZ83w-0007cf-Ti
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 12:04:12 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc9007d1-4f34-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 14:04:06 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2ef248ab2aeso84862501fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 05:04:11 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acadb98dbsm760514766b.216.2024.07.31.05.04.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 05:04: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: fc9007d1-4f34-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722427450; x=1723032250; 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=X0gbgRWc2cl9Mm9yDqSZuShUHfl8oIG76nyaAhdJolY=;
        b=r3GXqEAtBCFcibr9O43xBuWIQwvyk7cnJ7wVCSIQk1NWhru8FTZRck3EBs+0b/wfNI
         bgtAizIqxihfXH9+nZ9xcp7jOCh4gsZ6u59raJznEnav4zmHGURkaXxyS5Ir/JuacOwU
         vjdmrKHCO/xIjb1jxApp/11lKLxshzZaUfCUQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722427450; x=1723032250;
        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=X0gbgRWc2cl9Mm9yDqSZuShUHfl8oIG76nyaAhdJolY=;
        b=ZpXT+bXUHSV8vqtHZwH158GoZFHnsXDL+gtp9SUFCyeB/4HNtiouUMVr8UVrfNYcVy
         kCFw1EWBHjUDhNcLtv2tbxJ/wYLjF4ACQLBqfLxB/x9rFgXWGGivlDWnmlY8AYDMVLju
         yhM+I5WIgF9fChZVsQycaw55Fc7i80cdoBZIYctDPMgBUvSn4GWpJIDWGInitB+2x7zT
         eMN5ezyyNf1APu0Wxbd5nCPKkVNpSxA9EMeBZfpopCdla+trNmGL5brCGqvD+kri0wDm
         wFyEzQ1NwkHUfj6hCgJtF1klHUDE3jRIgNY23MKHWqsXcVOLYuFqsZbj5aet46/sYiny
         ZvUA==
X-Gm-Message-State: AOJu0YxoaSODGfi8H+pT9hZYigWnv1HycEUns4Og1wKhspD8kHtDHIjK
	/Mk7yqXrfhpfXqQFqvljhSTbY9Eo7pDCeZwioAuH9zJ+Ek7/+R0QBnRR07mQvnOu9oMJ6QMaJpt
	A
X-Google-Smtp-Source: AGHT+IHfjkJFEQUtisi7OhG3DBCoi73hFYBAuUD5RurOriQYn7NUH6qhEhW43aB3N+amHwVk2MSDVw==
X-Received: by 2002:a2e:8250:0:b0:2ef:2226:2317 with SMTP id 38308e7fff4ca-2f12ee12fe6mr120989151fa.20.1722427449595;
        Wed, 31 Jul 2024 05:04: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>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH] xen/domain: Factor domlist_{insert,remove}() out of domain_{create,destroy}()
Date: Wed, 31 Jul 2024 13:04:06 +0100
Message-Id: <20240731120406.3429430-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

These are opencoded linked list and hashtable manipulations.  Factor them out
into static inline helpers, and discuss the consequence for the domain.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>

Calling domain_hash a hash is rather disingenuous... It's technically true,
but it has terrible scaling.
---
 xen/common/domain.c | 80 +++++++++++++++++++++++++++++++--------------
 1 file changed, 55 insertions(+), 25 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 256660473861..fc0a56673449 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -64,6 +64,57 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
 static struct domain *domain_hash[DOMAIN_HASH_SIZE];
 struct domain *domain_list;
 
+/*
+ * 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.
+ */
+static void domlist_insert(struct domain *d)
+{
+    struct domain **pd;
+
+    spin_lock(&domlist_update_lock);
+
+    /* domain_list is maintained in domid order. */
+    pd = &domain_list;
+    for ( ; *pd != NULL; pd = &(*pd)->next_in_list )
+        if ( (*pd)->domain_id > d->domain_id )
+            break;
+
+    d->next_in_list = *pd;
+    d->next_in_hashbucket = domain_hash[DOMAIN_HASH(d->domain_id)];
+    rcu_assign_pointer(*pd, d);
+    rcu_assign_pointer(domain_hash[DOMAIN_HASH(d->domain_id)], d);
+
+    spin_unlock(&domlist_update_lock);
+}
+
+/*
+ * Remove a domain from the domlist/hash.  This means the domain can no longer
+ * be looked up by domid, and therefore can no longer be the subject of
+ * *subsequent* hypercalls/etc.  In-progress hypercalls/etc can still operate
+ * on the domain.
+ */
+static void domlist_remove(struct domain *d)
+{
+    struct domain **pd = &domain_list;
+
+    spin_lock(&domlist_update_lock);
+
+    pd = &domain_list;
+    while ( *pd != d )
+        pd = &(*pd)->next_in_list;
+
+    rcu_assign_pointer(*pd, d->next_in_list);
+
+    pd = &domain_hash[DOMAIN_HASH(d->domain_id)];
+    while ( *pd != d )
+        pd = &(*pd)->next_in_hashbucket;
+
+    rcu_assign_pointer(*pd, d->next_in_hashbucket);
+
+    spin_unlock(&domlist_update_lock);
+}
+
 struct domain *hardware_domain __read_mostly;
 
 #ifdef CONFIG_LATE_HWDOM
@@ -589,7 +640,7 @@ struct domain *domain_create(domid_t domid,
                              struct xen_domctl_createdomain *config,
                              unsigned int flags)
 {
-    struct domain *d, **pd, *old_hwdom = NULL;
+    struct domain *d, *old_hwdom = NULL;
     enum { INIT_watchdog = 1u<<1,
            INIT_evtchn = 1u<<3, INIT_gnttab = 1u<<4, INIT_arch = 1u<<5 };
     int err, init_status = 0;
@@ -758,17 +809,7 @@ struct domain *domain_create(domid_t domid,
      * Must not fail beyond this point, as our caller doesn't know whether
      * the domain has been entered into domain_list or not.
      */
-
-    spin_lock(&domlist_update_lock);
-    pd = &domain_list; /* NB. domain_list maintained in order of domid. */
-    for ( pd = &domain_list; *pd != NULL; pd = &(*pd)->next_in_list )
-        if ( (*pd)->domain_id > d->domain_id )
-            break;
-    d->next_in_list = *pd;
-    d->next_in_hashbucket = domain_hash[DOMAIN_HASH(domid)];
-    rcu_assign_pointer(*pd, d);
-    rcu_assign_pointer(domain_hash[DOMAIN_HASH(domid)], d);
-    spin_unlock(&domlist_update_lock);
+    domlist_insert(d);
 
     memcpy(d->handle, config->handle, sizeof(d->handle));
 
@@ -1232,8 +1273,6 @@ static void cf_check complete_domain_destroy(struct rcu_head *head)
 /* Release resources belonging to task @p. */
 void domain_destroy(struct domain *d)
 {
-    struct domain **pd;
-
     BUG_ON(!d->is_dying);
 
     /* May be already destroyed, or get_domain() can race us. */
@@ -1242,17 +1281,8 @@ void domain_destroy(struct domain *d)
 
     TRACE_TIME(TRC_DOM0_DOM_REM, d->domain_id);
 
-    /* Delete from task list and task hashtable. */
-    spin_lock(&domlist_update_lock);
-    pd = &domain_list;
-    while ( *pd != d ) 
-        pd = &(*pd)->next_in_list;
-    rcu_assign_pointer(*pd, d->next_in_list);
-    pd = &domain_hash[DOMAIN_HASH(d->domain_id)];
-    while ( *pd != d ) 
-        pd = &(*pd)->next_in_hashbucket;
-    rcu_assign_pointer(*pd, d->next_in_hashbucket);
-    spin_unlock(&domlist_update_lock);
+    /* Remove from the domlist/hash. */
+    domlist_remove(d);
 
     /* Schedule RCU asynchronous completion of domain destroy. */
     call_rcu(&d->rcu, complete_domain_destroy);

base-commit: 561cba38ff551383a628dc93e64ab0691cfc92bf
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 12:14:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 12:14:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768530.1179356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8E9-000157-2X; Wed, 31 Jul 2024 12:14:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768530.1179356; Wed, 31 Jul 2024 12: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 1sZ8E8-000150-Vp; Wed, 31 Jul 2024 12:14:44 +0000
Received: by outflank-mailman (input) for mailman id 768530;
 Wed, 31 Jul 2024 12: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ8E7-00014u-Ng
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 12:14:43 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77876909-4f36-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 14:14:42 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5a10835487fso8244649a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 05:14: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
 4fb4d7f45d1cf-5ac631b03a0sm8697508a12.2.2024.07.31.05.14.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 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: 77876909-4f36-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722428082; x=1723032882; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=n2h2kIRU4A4fL9+3qfAXXgYBMuZB+dVtUhe1Z8YY1HM=;
        b=gvCi7LVRtfS6QBgKFa6ZroKJaOD90NxT/n+4aSghcpO9QJdbxbpZ5QWX14mW2lQIUv
         9NRq5ZrwhTd8oy2GBtQaYAGwxiFIwjo/gNzKshmJp8gaee7BUK/zPZ03Lv1JVxRMA+3E
         YPB1cegQYsgIwrHFyZGvqBV9mM/6v41YOivzn12WlFQZtX/C8EPBrrXUDOU42sKDHu7N
         jPqfaJShbFbbIZ8v3VNsk6SU+JPzKOaV4xTF2iOsAbxj89pPJwNGp5wClFZF9irsTLFV
         bOXcIc3HyBD1cJMcyeBJLg7eRr7cQTAEyA8mXY/Ay3zJ+4Wm+fiIPnOiLz5VO1S8RxPD
         rMxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722428082; x=1723032882;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n2h2kIRU4A4fL9+3qfAXXgYBMuZB+dVtUhe1Z8YY1HM=;
        b=BPBPTGiEFor61/sXlzoWAyhqrekqFdGHYbHA07xTUeo8J2G1jhlMfhp5U9tHgqkqst
         CpMpwHseKXfTJvxu3IWiAVvZMC7Uft2JdmvYJXvCMS76VSAgZ4HpooWJkB12mtgkemQx
         r+h7uaZinOyxVa+U99gEEGMhWbtUzMIEc65Ha+D/DYEHzLHBfF0D/Cgy8mtYOk7liDmh
         +Hi5N7gbCZWG/jtvKBGolfXudAWW+CGEXMN1rYuiPvDDRxGvm1v9vvqbD8aK+ddpt1TP
         FfF6GnM4JiIa3XP/fqWvYYy+lloGXWnCDFSSzJlRb+k3VnZ+o48LqMeNkS2qqCX4PvyC
         D+DQ==
X-Forwarded-Encrypted: i=1; AJvYcCV68qgi33ejtmo3L5w2+YztkoEUEPjNwpphSQgRuaXlQOTzgQvKbJn6+pwLiI7jdTaufmjnZMd09FacLTrdfm83bIBFLMj8jp3mfF+jdtY=
X-Gm-Message-State: AOJu0YySZGo+szyaht43m5sXrfothUnaTSNNFt6nRN+0CVfBqR+1DE/9
	rWRkLhdSM2d1G003yvBNlpYOiIu+dQeQQ7/TsR+QxqBu2l5A2nOXl/N0qjDhhyci5luOjPf9eRM
	=
X-Google-Smtp-Source: AGHT+IF6piW/5duYTi6cuQzY8jDKxZCaCteHTwGraI7V4uusak1GgVZ65MYa/qUBL6t8qRN+Jc3mlQ==
X-Received: by 2002:a50:aa8d:0:b0:5a7:d986:6e4 with SMTP id 4fb4d7f45d1cf-5b021f0c48bmr9747845a12.28.1722428074905;
        Wed, 31 Jul 2024 05:14:34 -0700 (PDT)
Message-ID: <33cde4c7-e00a-47e0-b752-82e514df99d3@suse.com>
Date: Wed, 31 Jul 2024 14:14:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/domain: Factor domlist_{insert,remove}() out of
 domain_{create,destroy}()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20240731120406.3429430-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: <20240731120406.3429430-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2024 14:04, Andrew Cooper wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -64,6 +64,57 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
>  static struct domain *domain_hash[DOMAIN_HASH_SIZE];
>  struct domain *domain_list;
>  
> +/*
> + * 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.
> + */
> +static void domlist_insert(struct domain *d)
> +{
> +    struct domain **pd;
> +
> +    spin_lock(&domlist_update_lock);
> +
> +    /* domain_list is maintained in domid order. */
> +    pd = &domain_list;

Make this the initializer of the variable, if ...

> +    for ( ; *pd != NULL; pd = &(*pd)->next_in_list )

... isn't to be the starting clause of the for()?

> +        if ( (*pd)->domain_id > d->domain_id )
> +            break;
> +
> +    d->next_in_list = *pd;
> +    d->next_in_hashbucket = domain_hash[DOMAIN_HASH(d->domain_id)];
> +    rcu_assign_pointer(*pd, d);
> +    rcu_assign_pointer(domain_hash[DOMAIN_HASH(d->domain_id)], d);

Maybe worth putting the hash in a local variable?

> +    spin_unlock(&domlist_update_lock);
> +}
> +
> +/*
> + * Remove a domain from the domlist/hash.  This means the domain can no longer
> + * be looked up by domid, and therefore can no longer be the subject of
> + * *subsequent* hypercalls/etc.  In-progress hypercalls/etc can still operate
> + * on the domain.
> + */
> +static void domlist_remove(struct domain *d)
> +{
> +    struct domain **pd = &domain_list;
> +
> +    spin_lock(&domlist_update_lock);
> +
> +    pd = &domain_list;

pd already has an initializer.

With at least the pd related adjustments
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 12:24:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 12:24:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768538.1179367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8N7-00032z-U9; Wed, 31 Jul 2024 12:24:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768538.1179367; Wed, 31 Jul 2024 12: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 1sZ8N7-00032s-QT; Wed, 31 Jul 2024 12:24:01 +0000
Received: by outflank-mailman (input) for mailman id 768538;
 Wed, 31 Jul 2024 12:24: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ8N6-00032m-96
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 12:24:00 +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 c03a5755-4f37-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 14:23:54 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5a15c2dc569so4934197a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 05:23: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
 4fb4d7f45d1cf-5ac64eb3146sm8641705a12.66.2024.07.31.05.23.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 05: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: c03a5755-4f37-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722428638; x=1723033438; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=B27pjRdnhyBOcqpeMg3qCW584FZBVzYWW63ojgafWRc=;
        b=NO53XN4dQsm2Bhij61PBj1GbD+PX5c3vAf4xkLXpwd5qlEF2muqTAdA2HRhSaT29b6
         cygOj+xG97yY+cCPf3Bbc+korDdCx7OyCY+wuVwt2NfbnNEwQuH5nlqSsLlNnN8mDeQJ
         yqS/pVYrroQOdtUl33jEKK3Ng2Qm6dkh7z8vKyzLpTKqVu68tUw1G4IDcPOCSTEEXiKy
         bBwfhk7C7n3IDKNRrLWL1iVkes9mTGXRU13pRNwKupp0ZWdPvHvuX4/vNeQmqCTgOp6c
         HhmNNjjDE8QNYJe4RYuJnfy884wsRxtxVBg9X/pPbRDGmo44aojOHfDtAALhgdzMy1JG
         iGUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722428638; x=1723033438;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B27pjRdnhyBOcqpeMg3qCW584FZBVzYWW63ojgafWRc=;
        b=Vs2DhvzM3/eQDWYYpZdd432RsvjOYPDIr2B6/N/J5WDoVovBoVTcT8IelKI4afD8xn
         4g1mTKhKt0ogw8/d8PSMeXCMtKdEYHJ6+gJwh7/AWD8Mu6BSbxEtLfubi1Y8kCyUY4on
         3E7AzXxfLVYl4cxUvZ9VYinQ4WcEAAJJtFFMKkL6PiKE5nZLK+TonEfdIK6qTtpwEDQM
         IwTe3E/Nk34v/sT76pAUNzj5jdqF+wzam7pGNsm/uiDH4j4OjpZdVOBY3F/bl5FrvVBr
         QJ8Gqh7FhFGUJef25E5ACCs9b35Owui+u46twl/NdC73oYa1G2HY4SguRDhw150lHzT5
         37wQ==
X-Forwarded-Encrypted: i=1; AJvYcCVsWORWJrVY3Rge8KC6IZkXrDG37vQyeysx7ecAor8miZ0Fa9f7f9YeQ1x3BQmNIbT2ndr54eYB6AAlMqvf5/CLzUnh9SCU5ABIOLyghvk=
X-Gm-Message-State: AOJu0YxvC9DaO1HiyQj1MbLJ9YwftFlmk2Ggqzw6hkGWUtsRJcHKCpcW
	fcoBIeI33h9EdhKofDheFfeYYMv5ayvCjhwM22Y+3imTZ1ojGmvT1Gz1zUNekg==
X-Google-Smtp-Source: AGHT+IFjp9VYsbonbw0qpeyzwQawhNsXpu87dYyAY9QyRmNs1wLikLNvEdYY/RXm83Bd3F2Mm7fI0A==
X-Received: by 2002:a50:9ee6:0:b0:5a7:464a:abf with SMTP id 4fb4d7f45d1cf-5b02317d025mr11413672a12.24.1722428637734;
        Wed, 31 Jul 2024 05:23:57 -0700 (PDT)
Message-ID: <cc92ed50-89f7-48c9-b0e1-cd61a020001c@suse.com>
Date: Wed, 31 Jul 2024 14:23:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 09/13] x86/vmx: guard access to cpu_has_vmx_* in
 common code
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Paul Durrant <paul@xen.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
 <c2961c8b67041883ce5a5f6d0511a31dc7fbe22d.1722333634.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c2961c8b67041883ce5a5f6d0511a31dc7fbe22d.1722333634.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.07.2024 12:33, Sergiy Kibrik wrote:
> There're several places in common code, outside of arch/x86/hvm/vmx,
> where cpu_has_vmx_* get accessed without checking whether VMX supported first.
> These macros rely on global variables defined in vmx code, so when VMX support
> is disabled accesses to these variables turn into build failures.
> 
> To overcome these failures, build-time check is done before accessing global
> variables, so that DCE would remove these variables.
> 
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> Acked-by: Paul Durrant <paul@xen.org>
> CC: Andrew Cooper <andrew.cooper3@citrix.com>
> CC: Jan Beulich <jbeulich@suse.com>
> ---
> changes in v5:
>  - change kconfig option name VMX -> INTEL_VMX
>  - do not change .c files, only modify macros in vmcs.h

Better, yet still not going far enough, as indicated earlier:

> --- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
> @@ -300,13 +300,15 @@ extern u64 vmx_ept_vpid_cap;
>  #define cpu_has_wbinvd_exiting \
>      (vmx_secondary_exec_control & SECONDARY_EXEC_WBINVD_EXITING)
>  #define cpu_has_vmx_virtualize_apic_accesses \
> -    (vmx_secondary_exec_control & SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES)
> +    (IS_ENABLED(CONFIG_INTEL_VMX) && \
> +     vmx_secondary_exec_control & SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES)

Why does this change but the earlier cpu_has_wbinvd_exiting or ...

>  #define cpu_has_vmx_tpr_shadow \
>      (vmx_cpu_based_exec_control & CPU_BASED_TPR_SHADOW)
>  #define cpu_has_vmx_vnmi \
>      (vmx_pin_based_exec_control & PIN_BASED_VIRTUAL_NMIS)

... these two (and several more elsewhere) don't?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 12:30:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 12:30:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768547.1179376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8Ss-00048T-GL; Wed, 31 Jul 2024 12:29:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768547.1179376; Wed, 31 Jul 2024 12: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 1sZ8Ss-00048M-Do; Wed, 31 Jul 2024 12:29:58 +0000
Received: by outflank-mailman (input) for mailman id 768547;
 Wed, 31 Jul 2024 12:29: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ8Sq-00048G-UH
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 12:29:56 +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 93b2127a-4f38-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 14:29:48 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a7a9e25008aso751612266b.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 05:29: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-a7acadb8356sm757962266b.206.2024.07.31.05.29.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 05: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: 93b2127a-4f38-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722428992; x=1723033792; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DpP4bzy/tFgSNC6PJ1fGRQr9x7zr6c4o4Hjki5lXEJk=;
        b=epsWy2rBrOc6peOdhzlhgwCpM5Wl8gzxIEzlCryqWIZtZehNjx8C/bfwlLuae0+8Ee
         Rpq6LZxhn+unXPld5S3veacHvGSgFfgkaz4g/xAQ1l0enGMbHb8J0CIrSvggsMLeuiyV
         LQs/dH5z+nIGTzWFXgDfxGhuwvu3LSk1deF+MhR/Ppc2kU/Ku7SX+8cuIbPVOoypr570
         IhCsBDxpspvu9ob/CXnAwfVz03b9yA0SAiDOEvGGBhovDUIZY2Pdxa5oMtZwiIk4+uWL
         l5mpwp4DK1zGuPBwxkqgCr1XNSd/6Hv0wB6quGWBO9TxpPfDc0OjKk9ixnTDVT+kkDCO
         3UGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722428992; x=1723033792;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DpP4bzy/tFgSNC6PJ1fGRQr9x7zr6c4o4Hjki5lXEJk=;
        b=q84HbktP3AW3KKb8qUNrVGmGSlkC9nloz6ud2JhP395nJZdSoX5a7gB16AmPyYsVQJ
         494be2FVdFGMJ6tf7n+JQyP+xmdsU+qj2/eRtiSB+pGqAJ0BhBhl9aJpOL6opVJH4wWJ
         ynLYR/lz69zg8qw+Wvs+laL01OOdEEjt4vyzqii3hMJ6GvX8elSdsuglrEyXZyfmktuJ
         8JhOKw67jA6/SHkRhOjhHkOoc3qswrRfurolSRftIaA7h+Y3/H+fmn8cD5JZ2g+A8ylB
         6PC7/n/ZWVISR1vvZsDOynD78zFp9fbCM65ci9fjYVOS+BfMYz0ZZ5KgsIa1HVSig/Uc
         a3Lw==
X-Forwarded-Encrypted: i=1; AJvYcCUB0X1YZuA0LEiEa9144S3w4e8iOk8VyojGFXNbR0tyQDI9jbcaFKwt08mDPNBlpnLtYUjYWhhw2RwWudHk/+vEkGDgbTtZOkp6ZDd8eu8=
X-Gm-Message-State: AOJu0Ywr7J+/ciTLDJRmBBl5ywjlf+DnxSO5emoe8QHsDZ5PAMMGrzxn
	qjWLs7VAGBnDIa55w5HLJE5F79tEIhxnSiN9iDU1syJ/lA/cBlJbkrX/H0myug==
X-Google-Smtp-Source: AGHT+IFs+mCSVRmgLdtjvq8X7A4P0gvmr1q0/2GwlHQs/X6R2HHGutF9mWFLFRoDs2BZASrHFgblEw==
X-Received: by 2002:a17:906:f58c:b0:a7a:9144:e254 with SMTP id a640c23a62f3a-a7d3ffdbe12mr975966466b.10.1722428992441;
        Wed, 31 Jul 2024 05:29:52 -0700 (PDT)
Message-ID: <1494c80d-9056-4922-a5e1-33cfdb1e41cf@suse.com>
Date: Wed, 31 Jul 2024 14:29:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 10/13] x86/vpmu: guard calls to vmx/svm functions
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
 <fda81012adec8c4993acd83076f1a46f2d71d668.1722333634.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fda81012adec8c4993acd83076f1a46f2d71d668.1722333634.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.07.2024 12:35, Sergiy Kibrik wrote:
> @@ -266,10 +268,10 @@ static inline void __core2_vpmu_save(struct vcpu *v)
>          rdmsrl(MSR_P6_EVNTSEL(i), xen_pmu_cntr_pair[i].control);
>      }
>  
> -    if ( !is_hvm_vcpu(v) )
> +    if ( !is_vmx_vcpu(v) )

With this ...

>          rdmsrl(MSR_CORE_PERF_GLOBAL_STATUS, core2_vpmu_cxt->global_status);
>      /* Save MSR to private context to make it fork-friendly */
> -    else if ( mem_sharing_enabled(v->domain) )
> +    else if ( is_vmx_vcpu(v) && mem_sharing_enabled(v->domain) )

... why this further change?

> @@ -326,14 +328,14 @@ static inline void __core2_vpmu_load(struct vcpu *v)
>      if ( vpmu_is_set(vcpu_vpmu(v), VPMU_CPU_HAS_DS) )
>          wrmsrl(MSR_IA32_DS_AREA, core2_vpmu_cxt->ds_area);
>  
> -    if ( !is_hvm_vcpu(v) )
> +    if ( !is_vmx_vcpu(v) )
>      {
>          wrmsrl(MSR_CORE_PERF_GLOBAL_OVF_CTRL, core2_vpmu_cxt->global_ovf_ctrl);
>          core2_vpmu_cxt->global_ovf_ctrl = 0;
>          wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, core2_vpmu_cxt->global_ctrl);
>      }
>      /* Restore MSR from context when used with a fork */
> -    else if ( mem_sharing_is_fork(v->domain) )
> +    else if ( is_vmx_vcpu(v) && mem_sharing_is_fork(v->domain) )
>          vmx_write_guest_msr(v, MSR_CORE_PERF_GLOBAL_CTRL,
>                              core2_vpmu_cxt->global_ctrl);
>  }

Same here. With those dropped (I could do so while committing, as long as you
agree):
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 12:39:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 12:39:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768557.1179386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8bu-0006EM-FC; Wed, 31 Jul 2024 12:39:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768557.1179386; Wed, 31 Jul 2024 12:39:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8bu-0006EF-Cd; Wed, 31 Jul 2024 12:39:18 +0000
Received: by outflank-mailman (input) for mailman id 768557;
 Wed, 31 Jul 2024 12:39: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ8bt-0006E9-A4
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 12:39:17 +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 e5e87d93-4f39-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 14:39:16 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5a2ffc3447fso7793621a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 05:39: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-5ac63b59c86sm8743210a12.42.2024.07.31.05.39.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 05:39: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: e5e87d93-4f39-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722429556; x=1723034356; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ilo0We2UUzxTihmdsjHnXM2CuRI/Mof14DEhXu9v5TM=;
        b=RFKmVwTeN+TqKqxOnxZed1THJtYf0cTcDDhDwXq2ZP5rkN+f1VZhQGUksnN6n3UtBD
         UCf9tzo70OHSlVoc3M35iBPwGpkeVsUc6mSTlTTt/SHg4TZTdvgtd6Fi4UVlEKOC6tGX
         xk/dr66KU5pZyZtKUu/xbjYq75vhO52ahsaXpAHsv1ot9X3nqJZBKY3xk85hdHY9AhX1
         xCD5+T50cP06XXZWoPudixoigmEsUunJ+nYlw5XTUvbgHKYuGEpoK0bjXaBR8zHq94/K
         8L2sK2KZErYmHYk2ftWKmVY2TN2Fqu7t2chrGCDtByHs37tl0j9LhUgrue2Dha8V5Qc/
         r5xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722429556; x=1723034356;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ilo0We2UUzxTihmdsjHnXM2CuRI/Mof14DEhXu9v5TM=;
        b=mg8Lrl3tmnkZ9Oa67HWIy2q1qL4TQt4jKP+HklGJZp4j+Ho8pZE6yVk/2Fbrr3bZnl
         JwoN+w1qHdUPXUJpdpS/XoAFlhezLOnBLmQGc+9l/NGvVU+OJ/kmD5ILlUIZpmABYnmq
         0jm/jxYOD464k8mQLRSMcE+/rXeG1ou1FKByzkba2qeUNprH/al0kRCsFpZCUuZBUqTo
         bNNoqjxTnm0sqTrlQ+vxO67Owg4o203k54hptvaVhC9jkJZ5NOGx2GiCM8d879E5i/a+
         jTb80uF766iccWDcyq6pFdg0+v8YQrHKWRSUti5mQSusctsIEsFfiT+1hv4RWazZ6028
         Dqtw==
X-Forwarded-Encrypted: i=1; AJvYcCXb3pPZon0lXxvP8SWCW31WMxg6TJH8VF+J77M8IOrgKbo3QJ1uI2ZTCLy8GxAfs8kJr8iY2Z3+vsE8WVzAm1Qyh1JiBBWHFjhunw1xW9Q=
X-Gm-Message-State: AOJu0YwNyTU+/1feXlcqDlKmCODSa4W+NQorsvabW/OFSXQ7QPJPlb5q
	7uDT4BhoUQXrEYuu+AsIP1yLM64yuhPgdkMGvbbnHanzDm8hc9v7zsoQkuU3yg==
X-Google-Smtp-Source: AGHT+IG4BIgRSxrc2PyQFYSGP/LXgaTUw/eLhp5qmEIuxUFjugUtVMWWEOYFZtLh5CvMYhUlG5kdEA==
X-Received: by 2002:a50:aa9e:0:b0:58b:2d93:ad83 with SMTP id 4fb4d7f45d1cf-5b020ba82cfmr9285262a12.21.1722429555637;
        Wed, 31 Jul 2024 05:39:15 -0700 (PDT)
Message-ID: <19f3a14c-33ab-4381-8b6c-707db41b48fb@suse.com>
Date: Wed, 31 Jul 2024 14:39:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v5 11/13] ioreq: do not build
 arch_vcpu_ioreq_completion() for non-VMX configurations
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Xenia Ragiadakou <burzalodowa@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 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>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1722333634.git.Sergiy_Kibrik@epam.com>
 <67f143c15bece937d7b5c0739b14cc53b0c8c13d.1722333634.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <67f143c15bece937d7b5c0739b14cc53b0c8c13d.1722333634.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.07.2024 12:37, Sergiy Kibrik wrote:
> From: Xenia Ragiadakou <burzalodowa@gmail.com>
> 
> VIO_realmode_completion is specific to vmx realmode and thus the function
> arch_vcpu_ioreq_completion() has actual handling work only in VMX-enabled build,
> as for the rest x86 and ARM build configurations it is basically a stub.
> 
> Here a separate configuration option ARCH_IOREQ_COMPLETION introduced that tells
> whether the platform we're building for requires any specific ioreq completion
> handling. As of now only VMX has such requirement, so the option is selected
> by INTEL_VMX, for other configurations a generic default stub is provided
> (it is ARM's version of arch_vcpu_ioreq_completion() moved to common header).
> 
> Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> CC: Julien Grall <julien@xen.org>
> CC: Jan Beulich <jbeulich@suse.com>
> ---
> changes in v5:
>  - introduce ARCH_IOREQ_COMPLETION option & put arch_vcpu_ioreq_completion() under it
>  - description changed

I'm worried by this naming inconsistency: We also have arch_ioreq_complete_mmio(),
and who know what else we'll gain. I think the Kconfig identifier wants to equally
include VCPU.

> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -95,4 +95,7 @@ config LTO
>  config ARCH_SUPPORTS_INT128
>  	bool
>  
> +config ARCH_IOREQ_COMPLETION
> +	bool

Please maintain alphabetic sorting with the other ARCH_*.

> --- a/xen/include/xen/ioreq.h
> +++ b/xen/include/xen/ioreq.h
> @@ -111,7 +111,17 @@ void ioreq_domain_init(struct domain *d);
>  int ioreq_server_dm_op(struct xen_dm_op *op, struct domain *d, bool *const_op);
>  
>  bool arch_ioreq_complete_mmio(void);
> +
> +#ifdef CONFIG_ARCH_IOREQ_COMPLETION
>  bool arch_vcpu_ioreq_completion(enum vio_completion completion);
> +#else
> +static inline bool arch_vcpu_ioreq_completion(enum vio_completion completion)
> +{
> +    ASSERT_UNREACHABLE();
> +    return true;
> +}

I understand this is how the Arm stub had it, but is "true" really appropriate
here? Looking at the sole vcpu_ioreq_handle_completion() call site in x86 code,
I'm inclined to say "false" would be better: We shouldn't resume a vCPU when
such an (internal) error has been encountered.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 12:42:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 12:42:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768564.1179396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8eV-0007e9-Ry; Wed, 31 Jul 2024 12:41:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768564.1179396; Wed, 31 Jul 2024 12:41: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 1sZ8eV-0007e2-PR; Wed, 31 Jul 2024 12:41:59 +0000
Received: by outflank-mailman (input) for mailman id 768564;
 Wed, 31 Jul 2024 12:41: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=Ap7E=O7=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1sZ8eU-0007du-Pz
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 12:41:58 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4607791d-4f3a-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 14:41:57 +0200 (CEST)
Received: from nico.bugseng.com (unknown [46.228.253.214])
 by support.bugseng.com (Postfix) with ESMTPSA id 619684EE0760;
 Wed, 31 Jul 2024 14:41: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: 4607791d-4f3a-11ef-bc01-fd08da9f4363
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>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [XEN PATCH] automation/eclair_analysis: add Rule 18.6 to the clean guidelines
Date: Wed, 31 Jul 2024 14:41:52 +0200
Message-Id: <c4dddc9468224e037f42ef77eb8407ba9a71207e.1722429655.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C Rule 18.6 states: "The address of an object with automatic
storage shall not be copied to another object that persists after
the first object has ceased to exist."

The rule is set as monitored and tagged clean, in order to block
the CI on any violations that may arise, allowing the presence
of cautions (currently there are no violations).

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 automation/eclair_analysis/ECLAIR/monitored.ecl | 1 +
 automation/eclair_analysis/ECLAIR/tagging.ecl   | 1 +
 2 files changed, 2 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/monitored.ecl b/automation/eclair_analysis/ECLAIR/monitored.ecl
index 9ffaebbdc378..8a7e3f3ceaa9 100644
--- a/automation/eclair_analysis/ECLAIR/monitored.ecl
+++ b/automation/eclair_analysis/ECLAIR/monitored.ecl
@@ -32,6 +32,7 @@
 -enable=MC3R1.R17.4
 -enable=MC3R1.R17.5
 -enable=MC3R1.R17.6
+-enable=MC3R1.R18.6
 -enable=MC3R1.R19.1
 -enable=MC3R1.R20.12
 -enable=MC3R1.R20.13
diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index b829655ca0bc..e7b32773e60e 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -67,6 +67,7 @@ MC3R1.R17.3||
 MC3R1.R17.4||
 MC3R1.R17.5||
 MC3R1.R17.6||
+MC3R1.R18.6||
 MC3R1.R18.8||
 MC3R1.R20.2||
 MC3R1.R20.3||
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 13:00:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 13:00:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768584.1179426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8wB-0002yN-Jl; Wed, 31 Jul 2024 13:00:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768584.1179426; Wed, 31 Jul 2024 13: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 1sZ8wB-0002yG-HD; Wed, 31 Jul 2024 13:00:15 +0000
Received: by outflank-mailman (input) for mailman id 768584;
 Wed, 31 Jul 2024 13:00:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ8wA-0002xy-0n; Wed, 31 Jul 2024 13:00:14 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ8w9-0003ba-VN; Wed, 31 Jul 2024 13:00:14 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ8w9-0006OJ-Fh; Wed, 31 Jul 2024 13:00:13 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZ8w9-00014z-F8; Wed, 31 Jul 2024 13:00:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=gof1WfGczkjTbADo9LggOWRWol3lII0PV/mNznz9RjA=; b=WPCnBI+WHX6xzwE9OIowI7IInu
	qBdN11iqU+h1MPQIzKBeCytdySNkJVmfLtiBMWcQHRRcQlZN3CgVpdirGAhDfo8fA8IHn8bFFsZdE
	oqEHxeeYw3EZR+VGhguH1PDPeJ1zEOWvXAwJj7fVvysHh/J8RCxma83hBJMQ5tOm/buo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187067-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 187067: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt:debian-fixup:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=a18b50614d97ecb488479829dcd5ad963bf691e3
X-Osstest-Versions-That:
    xen=8b5016e28737f140926619b14b8ca291dc4c5e62
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 13:00:13 +0000

flight 187067 xen-unstable real [real]
flight 187078 xen-unstable real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/187067/
http://logs.test-lab.xenproject.org/osstest/logs/187078/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt     13 debian-fixup        fail pass in 187078-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 187078 like 187051
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 187078 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 187051
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 187051
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 187051
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 187051
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 187051
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  a18b50614d97ecb488479829dcd5ad963bf691e3
baseline version:
 xen                  8b5016e28737f140926619b14b8ca291dc4c5e62

Last test of basis   187051  2024-07-30 04:47:55 Z    1 days
Testing same since   187067  2024-07-30 22:39:01 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alejandro Vallejo <alejandro.vallejo@cloud.com>
  Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  Daniel P. Smith <dpsmith@apertussolutions.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Huang Rui <ray.huang@amd.com>
  Jan Beulich <jbeulich@suse.com>
  Jason Andryuk <jandryuk@gmail.com>
  Jason Andryuk <jason.andryuk@amd.com>
  Jiqian Chen <Jiqian.Chen@amd.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Ross Lagerwall <ross.lagerwall@citrix.com>
  Simone Ballarin <simone.ballarin@bugseng.com>
  Stefano Stabellini <sstabellini@kernel.org>
  Stefano Stabellini <stefano.stabellini@amd.com>
  Stewart Hildebrand <stewart.hildebrand@amd.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     fail    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/xen.git
   8b5016e287..a18b50614d  a18b50614d97ecb488479829dcd5ad963bf691e3 -> master


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 13:00:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 13:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768589.1179445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8wS-0003Ly-9e; Wed, 31 Jul 2024 13:00:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768589.1179445; Wed, 31 Jul 2024 13: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 1sZ8wS-0003LU-36; Wed, 31 Jul 2024 13:00:32 +0000
Received: by outflank-mailman (input) for mailman id 768589;
 Wed, 31 Jul 2024 13:00: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=Q60C=O7=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sZ8wR-0003KO-LW
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 13:00:31 +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 dcc4e5f0-4f3c-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 15:00:30 +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 DBC041F833;
 Wed, 31 Jul 2024 13:00: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 9DB0B13297;
 Wed, 31 Jul 2024 13:00: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 y+qaJGw1qmbeWAAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 31 Jul 2024 13:00: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: dcc4e5f0-4f3c-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1722430828; 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=hpSSf1738sWC9fHR0jGFAPQBcPotnWSurDV4E82jGpw=;
	b=LNR88QzGSLEUWV0lDQUE5eUCmpS/11RQ6N4GenYLFjD4PoLHARip/vjkbaDasmuO/jwEfm
	qB1joTOj6HD3a5jOw/u+o3Q8G92J9xnHLrL0b1hkE3LzA+I7WkfF6yc9iVDBvAhXi3MzZI
	9qO99E9I2pWnV3Oe7aKMjK8TLfStB28=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=LNR88QzG
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1722430828; 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=hpSSf1738sWC9fHR0jGFAPQBcPotnWSurDV4E82jGpw=;
	b=LNR88QzGSLEUWV0lDQUE5eUCmpS/11RQ6N4GenYLFjD4PoLHARip/vjkbaDasmuO/jwEfm
	qB1joTOj6HD3a5jOw/u+o3Q8G92J9xnHLrL0b1hkE3LzA+I7WkfF6yc9iVDBvAhXi3MzZI
	9qO99E9I2pWnV3Oe7aKMjK8TLfStB28=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 0/3] mini-os: mm: use a generic page table walker
Date: Wed, 31 Jul 2024 15:00:23 +0200
Message-ID: <20240731130026.8467-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-4.81 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	DWL_DNSWL_MED(-2.00)[suse.com:dkim];
	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];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	TO_DN_SOME(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -4.81
X-Rspamd-Queue-Id: DBC041F833

Instead of open coding a page table walk multiple times, use a generic
page table walker instead.

This new page table walker will be used later for kexec support, too.

Juergen Gross (3):
  mini-os: mm: introduce generic page table walk function
  mini-os: mm: switch need_pgt() to use walk_pt()
  mini-os: mm: convert set_readonly() to use walk_pt()

 arch/x86/mm.c | 337 ++++++++++++++++++++++++++++----------------------
 1 file changed, 187 insertions(+), 150 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 13:00:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 13:00:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768593.1179463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8wX-0003iz-He; Wed, 31 Jul 2024 13:00:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768593.1179463; Wed, 31 Jul 2024 13:00: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 1sZ8wX-0003is-ES; Wed, 31 Jul 2024 13:00:37 +0000
Received: by outflank-mailman (input) for mailman id 768593;
 Wed, 31 Jul 2024 13:00: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=Q60C=O7=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sZ8wW-0003KO-NH
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 13:00:36 +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 e00e31cd-4f3c-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 15:00: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-out1.suse.de (Postfix) with ESMTPS id 7BCA621B69;
 Wed, 31 Jul 2024 13:00: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 49EB613297;
 Wed, 31 Jul 2024 13:00: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 z9SVEHI1qmbmWAAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 31 Jul 2024 13:00: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: e00e31cd-4f3c-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1722430834; 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=xFjXc7amrrMo+tzrt8XBmjjdTdsuxev2jTdhps3xh1w=;
	b=jB3dnJKbZKbnGEvuYJzIOGjksnvbL5bH40lwZN2/ZQcufdeCpsN7YPb4tsxDnyegrdMRef
	HiOyHmpSphiqH0wzgBTkc2niE3d4Bo9LgtVCiyRnSAq7EOqprBSLFIirzBUKLd6ugYesIY
	aoyM65PcQUam0CyzxIAEJr3iutjkdLI=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1722430834; 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=xFjXc7amrrMo+tzrt8XBmjjdTdsuxev2jTdhps3xh1w=;
	b=jB3dnJKbZKbnGEvuYJzIOGjksnvbL5bH40lwZN2/ZQcufdeCpsN7YPb4tsxDnyegrdMRef
	HiOyHmpSphiqH0wzgBTkc2niE3d4Bo9LgtVCiyRnSAq7EOqprBSLFIirzBUKLd6ugYesIY
	aoyM65PcQUam0CyzxIAEJr3iutjkdLI=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 1/3] mini-os: mm: introduce generic page table walk function
Date: Wed, 31 Jul 2024 15:00:24 +0200
Message-ID: <20240731130026.8467-2-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240731130026.8467-1-jgross@suse.com>
References: <20240731130026.8467-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.60 / 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)[];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	FROM_EQ_ENVFROM(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,imap1.dmz-prg2.suse.org:helo];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Flag: NO
X-Spam-Score: -2.60

In x86 mm code there are multiple instances of page table walks for
different purposes.

Introduce a generic page table walker being able to cover the current
use cases. It will be used for other cases in future, too.

The page table walker needs some per-level data, so add a table for
that data. Merge it with the already existing pt_prot[] array.

Rewrite get_pgt() to use the new walker.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/mm.c | 152 +++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 113 insertions(+), 39 deletions(-)

diff --git a/arch/x86/mm.c b/arch/x86/mm.c
index 7ddf16e4..cc4d41e9 100644
--- a/arch/x86/mm.c
+++ b/arch/x86/mm.c
@@ -125,20 +125,25 @@ void arch_mm_preinit(void *p)
 }
 #endif
 
+static const struct {
+    unsigned int shift;
+    unsigned int entries;
+    pgentry_t prot;
+} ptdata[PAGETABLE_LEVELS + 1] = {
+    { 0, 0, 0 },
+    { L1_PAGETABLE_SHIFT, L1_PAGETABLE_ENTRIES, L1_PROT },
+    { L2_PAGETABLE_SHIFT, L2_PAGETABLE_ENTRIES, L2_PROT },
+    { L3_PAGETABLE_SHIFT, L3_PAGETABLE_ENTRIES, L3_PROT },
+#if defined(__x86_64__)
+    { L4_PAGETABLE_SHIFT, L4_PAGETABLE_ENTRIES, L4_PROT },
+#endif
+};
+
 /*
  * Make pt_pfn a new 'level' page table frame and hook it into the page
  * table at offset in previous level MFN (pref_l_mfn). pt_pfn is a guest
  * PFN.
  */
-static pgentry_t pt_prot[PAGETABLE_LEVELS] = {
-    L1_PROT,
-    L2_PROT,
-    L3_PROT,
-#if defined(__x86_64__)
-    L4_PROT,
-#endif
-};
-
 static void new_pt_frame(unsigned long *pt_pfn, unsigned long prev_l_mfn, 
                          unsigned long offset, unsigned long level)
 {   
@@ -170,7 +175,7 @@ static void new_pt_frame(unsigned long *pt_pfn, unsigned long prev_l_mfn,
     mmu_updates[0].ptr = (tab[l2_table_offset(pt_page)] & PAGE_MASK) + 
         sizeof(pgentry_t) * l1_table_offset(pt_page);
     mmu_updates[0].val = (pgentry_t)pfn_to_mfn(*pt_pfn) << PAGE_SHIFT | 
-        (pt_prot[level - 1] & ~_PAGE_RW);
+        (ptdata[level].prot & ~_PAGE_RW);
     
     if ( (rc = HYPERVISOR_mmu_update(mmu_updates, 1, NULL, DOMID_SELF)) < 0 )
     {
@@ -183,7 +188,7 @@ static void new_pt_frame(unsigned long *pt_pfn, unsigned long prev_l_mfn,
     mmu_updates[0].ptr =
         ((pgentry_t)prev_l_mfn << PAGE_SHIFT) + sizeof(pgentry_t) * offset;
     mmu_updates[0].val = (pgentry_t)pfn_to_mfn(*pt_pfn) << PAGE_SHIFT |
-        pt_prot[level];
+        ptdata[level + 1].prot;
 
     if ( (rc = HYPERVISOR_mmu_update(mmu_updates, 1, NULL, DOMID_SELF)) < 0 ) 
     {
@@ -192,7 +197,7 @@ static void new_pt_frame(unsigned long *pt_pfn, unsigned long prev_l_mfn,
     }
 #else
     tab = mfn_to_virt(prev_l_mfn);
-    tab[offset] = (*pt_pfn << PAGE_SHIFT) | pt_prot[level];
+    tab[offset] = (*pt_pfn << PAGE_SHIFT) | ptdata[level + 1].prot;
 #endif
 
     *pt_pfn += 1;
@@ -202,6 +207,82 @@ static void new_pt_frame(unsigned long *pt_pfn, unsigned long prev_l_mfn,
 static mmu_update_t mmu_updates[L1_PAGETABLE_ENTRIES + 1];
 #endif
 
+/*
+ * Walk recursively through all PTEs calling a specified function. The function
+ * is allowed to change the PTE, the walker will follow the new value.
+ * The walk will cover the virtual address range [from_va .. to_va].
+ * The supplied function will be called with the following parameters:
+ * va: base virtual address of the area covered by the current PTE
+ * lvl: page table level of the PTE (1 = lowest level, PAGETABLE_LEVELS =
+ *      PTE in page table addressed by %cr3)
+ * is_leaf: true if PTE doesn't address another page table
+ * pte: address of the PTE
+ * par: parameter, passed to walk_pt() by caller
+ * Return value of func() being non-zero will terminate walk_pt(), walk_pt()
+ * will return that value in this case, zero else.
+ */
+static int walk_pt(unsigned long from_va, unsigned long to_va,
+                   int (func)(unsigned long va, unsigned int lvl,
+                              bool is_leaf, pgentry_t *pte, void *par),
+                   void *par)
+{
+    unsigned int lvl = PAGETABLE_LEVELS;
+    unsigned int ptindex[PAGETABLE_LEVELS + 1];
+    unsigned long va = round_pgdown(from_va);
+    unsigned long va_lvl;
+    pgentry_t *tab[PAGETABLE_LEVELS + 1];
+    pgentry_t *pte;
+    bool is_leaf;
+    int ret;
+
+    /* Start at top level page table. */
+    tab[lvl] = pt_base;
+    ptindex[lvl] = (va >> ptdata[lvl].shift) & (ptdata[lvl].entries - 1);
+
+    while ( va < (to_va | (PAGE_SIZE - 1)) )
+    {
+        pte = tab[lvl] + ptindex[lvl];
+        is_leaf = (lvl == L1_FRAME) || (*pte & _PAGE_PSE) ||
+                  !(*pte & _PAGE_PRESENT);
+        va_lvl = va & ~((1UL << ptdata[lvl].shift) - 1);
+        ret = func(va_lvl, lvl, is_leaf, pte, par);
+        if ( ret )
+            return ret;
+
+        /* PTE might have been modified by func(), reevaluate leaf state. */
+        is_leaf = (lvl == L1_FRAME) || (*pte & _PAGE_PSE) ||
+                  !(*pte & _PAGE_PRESENT);
+
+        if ( is_leaf )
+        {
+            /* Reached a leaf PTE. Advance to next page. */
+            va += 1UL << ptdata[lvl].shift;
+            ptindex[lvl]++;
+
+            /* Check for the need to traverse up again. */
+            while ( ptindex[lvl] == ptdata[lvl].entries )
+            {
+                /* End of virtual address space? */
+                if ( lvl == PAGETABLE_LEVELS )
+                    return 0;
+                /* Reached end of current page table, one level up. */
+                lvl++;
+                ptindex[lvl]++;
+            }
+        }
+        else
+        {
+            /* Not a leaf, walk one level down. */
+            lvl--;
+            tab[lvl] = mfn_to_virt(pte_to_mfn(*pte));
+            ptindex[lvl] = (va >> ptdata[lvl].shift) &
+                           (ptdata[lvl].entries - 1);
+        }
+    }
+
+    return 0;
+}
+
 /*
  * Build the initial pagetable.
  */
@@ -407,36 +488,29 @@ static void set_readonly(void *text, void *etext)
 /*
  * get the PTE for virtual address va if it exists. Otherwise NULL.
  */
-static pgentry_t *get_pgt(unsigned long va)
+static int get_pgt_func(unsigned long va, unsigned int lvl, bool is_leaf,
+                        pgentry_t *pte, void *par)
 {
-    unsigned long mfn;
-    pgentry_t *tab;
-    unsigned offset;
+    pgentry_t **result;
 
-    tab = pt_base;
-    mfn = virt_to_mfn(pt_base);
+    if ( !(*pte & _PAGE_PRESENT) && lvl > L1_FRAME )
+        return -1;
 
-#if defined(__x86_64__)
-    offset = l4_table_offset(va);
-    if ( !(tab[offset] & _PAGE_PRESENT) )
-        return NULL;
-    mfn = pte_to_mfn(tab[offset]);
-    tab = mfn_to_virt(mfn);
-#endif
-    offset = l3_table_offset(va);
-    if ( !(tab[offset] & _PAGE_PRESENT) )
-        return NULL;
-    mfn = pte_to_mfn(tab[offset]);
-    tab = mfn_to_virt(mfn);
-    offset = l2_table_offset(va);
-    if ( !(tab[offset] & _PAGE_PRESENT) )
-        return NULL;
-    if ( tab[offset] & _PAGE_PSE )
-        return &tab[offset];
-    mfn = pte_to_mfn(tab[offset]);
-    tab = mfn_to_virt(mfn);
-    offset = l1_table_offset(va);
-    return &tab[offset];
+    if ( lvl > L1_FRAME && !(*pte & _PAGE_PSE) )
+        return 0;
+
+    result = par;
+    *result = pte;
+
+    return 0;
+}
+
+static pgentry_t *get_pgt(unsigned long va)
+{
+    pgentry_t *tab = NULL;
+
+    walk_pt(va, va, get_pgt_func, &tab);
+    return tab;
 }
 
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 13:00:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 13:00:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768595.1179473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8wc-00044V-Pt; Wed, 31 Jul 2024 13:00:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768595.1179473; Wed, 31 Jul 2024 13: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 1sZ8wc-00044M-MT; Wed, 31 Jul 2024 13:00:42 +0000
Received: by outflank-mailman (input) for mailman id 768595;
 Wed, 31 Jul 2024 13:00: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=Q60C=O7=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sZ8wb-0003KO-4j
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 13:00: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 e35a8783-4f3c-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 15:00: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 16A1921B61;
 Wed, 31 Jul 2024 13:00: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 DA8ED13297;
 Wed, 31 Jul 2024 13:00: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 MN3LM3c1qmb5WAAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 31 Jul 2024 13:00: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: e35a8783-4f3c-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1722430840; 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=YykKbfS2IJgdkLFFy5acGGcdbHS6FrMXXxAPIolzhxo=;
	b=kda6Ht6lVqFoJ4aXkKYbYjrHIHDfJufboK/HmgvGZMikS/y3QTjMtOYt8GD/q2mJ5gCKPz
	Vfqy3lygv1CAqPI7Xx+n3rSw3Bssy4VJHhEmy3zqfxbvMFFRp8G917U5bk+EYMmtwsViCH
	4YQo/5C/eXy43bpjCoOTnyBarwyQ3NM=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1722430840; 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=YykKbfS2IJgdkLFFy5acGGcdbHS6FrMXXxAPIolzhxo=;
	b=kda6Ht6lVqFoJ4aXkKYbYjrHIHDfJufboK/HmgvGZMikS/y3QTjMtOYt8GD/q2mJ5gCKPz
	Vfqy3lygv1CAqPI7Xx+n3rSw3Bssy4VJHhEmy3zqfxbvMFFRp8G917U5bk+EYMmtwsViCH
	4YQo/5C/eXy43bpjCoOTnyBarwyQ3NM=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 2/3] mini-os: mm: switch need_pgt() to use walk_pt()
Date: Wed, 31 Jul 2024 15:00:25 +0200
Message-ID: <20240731130026.8467-3-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240731130026.8467-1-jgross@suse.com>
References: <20240731130026.8467-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-2.60 / 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)[];
	MIME_GOOD(-0.10)[text/plain];
	ARC_NA(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO
X-Spam-Score: -2.60

Instead of open coding a page table walk, use walk_pt() in need_pgt().

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/mm.c | 66 +++++++++++++++++++--------------------------------
 1 file changed, 24 insertions(+), 42 deletions(-)

diff --git a/arch/x86/mm.c b/arch/x86/mm.c
index cc4d41e9..accde291 100644
--- a/arch/x86/mm.c
+++ b/arch/x86/mm.c
@@ -518,57 +518,39 @@ static pgentry_t *get_pgt(unsigned long va)
  * return a valid PTE for a given virtual address. If PTE does not exist,
  * allocate page-table pages.
  */
-pgentry_t *need_pgt(unsigned long va)
+static int need_pgt_func(unsigned long va, unsigned int lvl, bool is_leaf,
+                         pgentry_t *pte, void *par)
 {
+    pgentry_t **result = par;
     unsigned long pt_mfn;
-    pgentry_t *tab;
     unsigned long pt_pfn;
-    unsigned offset;
+    unsigned int idx;
 
-    tab = pt_base;
-    pt_mfn = virt_to_mfn(pt_base);
+    if ( !is_leaf )
+        return 0;
 
-#if defined(__x86_64__)
-    offset = l4_table_offset(va);
-    if ( !(tab[offset] & _PAGE_PRESENT) )
-    {
-        pt_pfn = virt_to_pfn(alloc_page());
-        if ( !pt_pfn )
-            return NULL;
-        new_pt_frame(&pt_pfn, pt_mfn, offset, L3_FRAME);
-    }
-    ASSERT(tab[offset] & _PAGE_PRESENT);
-    pt_mfn = pte_to_mfn(tab[offset]);
-    tab = mfn_to_virt(pt_mfn);
-#endif
-    offset = l3_table_offset(va);
-    if ( !(tab[offset] & _PAGE_PRESENT) ) 
-    {
-        pt_pfn = virt_to_pfn(alloc_page());
-        if ( !pt_pfn )
-            return NULL;
-        new_pt_frame(&pt_pfn, pt_mfn, offset, L2_FRAME);
-    }
-    ASSERT(tab[offset] & _PAGE_PRESENT);
-    pt_mfn = pte_to_mfn(tab[offset]);
-    tab = mfn_to_virt(pt_mfn);
-    offset = l2_table_offset(va);
-    if ( !(tab[offset] & _PAGE_PRESENT) )
+    if ( lvl == L1_FRAME || (*pte & _PAGE_PRESENT) )
     {
-        pt_pfn = virt_to_pfn(alloc_page());
-        if ( !pt_pfn )
-            return NULL;
-        new_pt_frame(&pt_pfn, pt_mfn, offset, L1_FRAME);
+        *result = pte;
+        return 1;
     }
-    ASSERT(tab[offset] & _PAGE_PRESENT);
-    if ( tab[offset] & _PAGE_PSE )
-        return &tab[offset];
 
-    pt_mfn = pte_to_mfn(tab[offset]);
-    tab = mfn_to_virt(pt_mfn);
+    pt_mfn = virt_to_mfn(pte);
+    pt_pfn = virt_to_pfn(alloc_page());
+    if ( !pt_pfn )
+        return -1;
+    idx = (va >> ptdata[lvl].shift) & (ptdata[lvl].entries - 1);
+    new_pt_frame(&pt_pfn, pt_mfn, idx, lvl - 1);
 
-    offset = l1_table_offset(va);
-    return &tab[offset];
+    return 0;
+}
+
+pgentry_t *need_pgt(unsigned long va)
+{
+    pgentry_t *tab = NULL;
+
+    walk_pt(va, va, need_pgt_func, &tab);
+    return tab;
 }
 EXPORT_SYMBOL(need_pgt);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 13:00:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 13:00:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768602.1179495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8wm-0004f4-7g; Wed, 31 Jul 2024 13:00:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768602.1179495; Wed, 31 Jul 2024 13:00:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8wm-0004eu-2j; Wed, 31 Jul 2024 13:00:52 +0000
Received: by outflank-mailman (input) for mailman id 768602;
 Wed, 31 Jul 2024 13:00:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Q60C=O7=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sZ8wk-0003df-AV
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 13:00:50 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e423661e-4f3c-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 15:00:42 +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 AC44B21B78;
 Wed, 31 Jul 2024 13:00:45 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 78D3213297;
 Wed, 31 Jul 2024 13:00: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 MBYPHH01qmYAWQAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 31 Jul 2024 13:00: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: e423661e-4f3c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1722430845; 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=tSF1mgyyRozqIhqSscGGgmQznHAJUWT1VxHYxdygHx8=;
	b=AHTTS6nCUZ7FhXGl14JRg8q5Vm0NskVBAKF2Soyes8jqrhNIxBqB4rkOO4WDgPt3HRzlH4
	jO5Y6gq+0kY//GsR2cfd6F0IdKzpAcg8UtKzru7NhXdvUTDnAUiYj73i7eUbp8hExOYVEk
	FOECsX7c4KBY/lHS+A8dlA2Ip83QIRU=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1722430845; 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=tSF1mgyyRozqIhqSscGGgmQznHAJUWT1VxHYxdygHx8=;
	b=AHTTS6nCUZ7FhXGl14JRg8q5Vm0NskVBAKF2Soyes8jqrhNIxBqB4rkOO4WDgPt3HRzlH4
	jO5Y6gq+0kY//GsR2cfd6F0IdKzpAcg8UtKzru7NhXdvUTDnAUiYj73i7eUbp8hExOYVEk
	FOECsX7c4KBY/lHS+A8dlA2Ip83QIRU=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	wl@xen.org,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 3/3] mini-os: mm: convert set_readonly() to use walk_pt()
Date: Wed, 31 Jul 2024 15:00:26 +0200
Message-ID: <20240731130026.8467-4-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240731130026.8467-1-jgross@suse.com>
References: <20240731130026.8467-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.60 / 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)[];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	FROM_EQ_ENVFROM(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:email];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Flag: NO
X-Spam-Score: -2.60

Instead of having another copy of a page table walk in set_readonly(),
just use walk_pt().

As it will be needed later anyway, split out the TLB flushing into a
dedicated function.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/mm.c | 119 +++++++++++++++++++++-----------------------------
 1 file changed, 50 insertions(+), 69 deletions(-)

diff --git a/arch/x86/mm.c b/arch/x86/mm.c
index accde291..90992068 100644
--- a/arch/x86/mm.c
+++ b/arch/x86/mm.c
@@ -397,92 +397,73 @@ static void build_pagetable(unsigned long *start_pfn, unsigned long *max_pfn)
  * Mark portion of the address space read only.
  */
 extern struct shared_info shared_info;
-static void set_readonly(void *text, void *etext)
-{
-    unsigned long start_address =
-        ((unsigned long) text + PAGE_SIZE - 1) & PAGE_MASK;
-    unsigned long end_address = (unsigned long) etext;
-    pgentry_t *tab = pt_base, page;
-    unsigned long mfn = pfn_to_mfn(virt_to_pfn(pt_base));
-    unsigned long offset;
-    unsigned long page_size = PAGE_SIZE;
+
+struct set_readonly_par {
+    unsigned long etext;
 #ifdef CONFIG_PARAVIRT
-    int count = 0;
-    int rc;
+    unsigned int count;
 #endif
+};
 
-    printk("setting %p-%p readonly\n", text, etext);
+static int set_readonly_func(unsigned long va, unsigned int lvl, bool is_leaf,
+                             pgentry_t *pte, void *par)
+{
+    struct set_readonly_par *ro = par;
 
-    while ( start_address + page_size <= end_address )
-    {
-        tab = pt_base;
-        mfn = pfn_to_mfn(virt_to_pfn(pt_base));
+    if ( !is_leaf )
+        return 0;
 
-#if defined(__x86_64__)
-        offset = l4_table_offset(start_address);
-        page = tab[offset];
-        mfn = pte_to_mfn(page);
-        tab = to_virt(mfn_to_pfn(mfn) << PAGE_SHIFT);
-#endif
-        offset = l3_table_offset(start_address);
-        page = tab[offset];
-        mfn = pte_to_mfn(page);
-        tab = to_virt(mfn_to_pfn(mfn) << PAGE_SHIFT);
-        offset = l2_table_offset(start_address);        
-        if ( !(tab[offset] & _PAGE_PSE) )
-        {
-            page = tab[offset];
-            mfn = pte_to_mfn(page);
-            tab = to_virt(mfn_to_pfn(mfn) << PAGE_SHIFT);
+    if ( va + (1UL << ptdata[lvl].shift) > ro->etext )
+        return 1;
 
-            offset = l1_table_offset(start_address);
-        }
+    if ( va == (unsigned long)&shared_info )
+    {
+        printk("skipped %lx\n", va);
+        return 0;
+    }
 
-        if ( start_address != (unsigned long)&shared_info )
-        {
 #ifdef CONFIG_PARAVIRT
-            mmu_updates[count].ptr = 
-                ((pgentry_t)mfn << PAGE_SHIFT) + sizeof(pgentry_t) * offset;
-            mmu_updates[count].val = tab[offset] & ~_PAGE_RW;
-            count++;
+    mmu_updates[ro->count].ptr = virt_to_mach(pte);
+    mmu_updates[ro->count].val = *pte & ~_PAGE_RW;
+    ro->count++;
+
+    if ( (ro->count == L1_PAGETABLE_ENTRIES ||
+          va + 2 * PAGE_SIZE > ro->etext) &&
+         HYPERVISOR_mmu_update(mmu_updates, ro->count, NULL, DOMID_SELF) < 0 )
+    {
+        printk("ERROR: set_readonly(): PTE could not be updated\n");
+        do_exit();
+    }
 #else
-            tab[offset] &= ~_PAGE_RW;
+    *pte &= ~_PAGE_RW;
 #endif
-        }
-        else
-            printk("skipped %lx\n", start_address);
 
-        start_address += page_size;
+    return 0;
+}
 
 #ifdef CONFIG_PARAVIRT
-        if ( count == L1_PAGETABLE_ENTRIES || 
-             start_address + page_size > end_address )
-        {
-            rc = HYPERVISOR_mmu_update(mmu_updates, count, NULL, DOMID_SELF);
-            if ( rc < 0 )
-            {
-                printk("ERROR: set_readonly(): PTE could not be updated\n");
-                do_exit();
-            }
-            count = 0;
-        }
-#else
-        if ( start_address == (1UL << L2_PAGETABLE_SHIFT) )
-            page_size = 1UL << L2_PAGETABLE_SHIFT;
-#endif
-    }
+static void tlb_flush(void)
+{
+    mmuext_op_t op = { .cmd = MMUEXT_TLB_FLUSH_ALL };
+    int count;
 
-#ifdef CONFIG_PARAVIRT
-    {
-        mmuext_op_t op = {
-            .cmd = MMUEXT_TLB_FLUSH_ALL,
-        };
-        int count;
-        HYPERVISOR_mmuext_op(&op, 1, &count, DOMID_SELF);
-    }
+    HYPERVISOR_mmuext_op(&op, 1, &count, DOMID_SELF);
+}
 #else
+static void tlb_flush(void)
+{
     write_cr3((unsigned long)pt_base);
+}
 #endif
+
+static void set_readonly(void *text, void *etext)
+{
+    struct set_readonly_par setro = { .etext = (unsigned long)etext };
+    unsigned long start_address = PAGE_ALIGN((unsigned long)text);
+
+    printk("setting %p-%p readonly\n", text, etext);
+    walk_pt(start_address, setro.etext, set_readonly_func, &setro);
+    tlb_flush();
 }
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 13:03:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 13:03:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768652.1179573 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ8zl-0006yI-G0; Wed, 31 Jul 2024 13:03:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768652.1179573; Wed, 31 Jul 2024 13: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 1sZ8zl-0006yB-DR; Wed, 31 Jul 2024 13:03:57 +0000
Received: by outflank-mailman (input) for mailman id 768652;
 Wed, 31 Jul 2024 13:03:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZ8zj-0006y1-OX
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 13:03:55 +0000
Received: from mail-qk1-x731.google.com (mail-qk1-x731.google.com
 [2607:f8b0:4864:20::731])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 56e5af3e-4f3d-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 15:03:54 +0200 (CEST)
Received: by mail-qk1-x731.google.com with SMTP id
 af79cd13be357-7a1d024f775so364550485a.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 06:03:54 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7a1fc0a04a3sm223399185a.18.2024.07.31.06.03.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 06:03: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: 56e5af3e-4f3d-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722431033; x=1723035833; 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=TAVdmlTYZ1Uk4pYSOcVvTJTpIhudSsftIlI6WZ/jnGk=;
        b=FTKCr9BXuXXOSfEk/HgMatcWMfPV/85hqzQDND0MJ3vPZtXPzroImfrABCIuudz1J6
         X0a9r7V4CNGgyAEo8zWISl07ResO+h/YSpsBbxWl3ecZRs82I8YyMRrFsy8z1K5A08F8
         ZAaeOteRBdktYhWyLhpHVHG/zKmyt9mw+58Ic=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722431033; x=1723035833;
        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=TAVdmlTYZ1Uk4pYSOcVvTJTpIhudSsftIlI6WZ/jnGk=;
        b=VihiOerC3IkzCoORLLgr+6CFThMdqUNcISCRZ+Ldtx5Vjt/oxhsl3848rtnorgcp1v
         7jBrK6smxfQgtzUfN6jnbzv2G2/zaj6Ph+uXM5nSGDzvabDNW0lIjLf28BvrbFU0GPld
         doxZMnvyaF32aeBeLLQZ4qPfBQ4R5Qzy2s61w5MQJH+tQVyR2DFQYyW3iBdeo/u+DD9y
         lU5xkpeaNdkc+6I+dbaprh9tY2C35X6MN15nAxPf4J8CTIJqwgPrV594DLpd4tSpLNe6
         w9L3gmssJfNpfLjBpMFeqT14PMti/HZFfVSIri08cWDjaK9eBwHqqSwQCK4StB4ZId/M
         WhTQ==
X-Gm-Message-State: AOJu0Yw9yQrA3hewsmJ35RNH5DsaYBuENUK99fs9uOuJfMnSesXiv7fO
	yFIvU+EMmfLSaJsy8RPCuXx7Fjcu/L4+NXNdcj2kDZSYakWe1OX1gfnZUV37b8A=
X-Google-Smtp-Source: AGHT+IE7Key7ukTATcE5lzwiGcjjRzus4ikYMQXkQoAaDZLf1wNhNWgEJTJIYgQxBemmqc4F4hKcug==
X-Received: by 2002:a05:620a:4310:b0:79f:12e9:1e6e with SMTP id af79cd13be357-7a1e522a534mr1543690785a.12.1722431033387;
        Wed, 31 Jul 2024 06:03:53 -0700 (PDT)
Date: Wed, 31 Jul 2024 15:03:51 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Juergen Gross <jgross@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 2/7] x86/pvh: Allow (un)map_pirq when dom0 is PVH
Message-ID: <Zqo2N7CDshL7ZoMK@macbook>
References: <Zqnswi7ihOhMxPsi@macbook>
 <0aa0982a-30b3-43cd-9a9e-4542d7cb583f@suse.com>
 <Zqn014wCEfWhyo1-@macbook>
 <8ff685a6-0cbd-45cd-a818-4535a040c478@suse.com>
 <Zqn7HEuooChgRCuf@macbook>
 <d65ae152-22ee-4a57-8ff4-43ef0c234f5f@suse.com>
 <ZqoF55yapMxGN_WM@macbook>
 <fa33fbf8-32b6-48dc-a30c-dd76b021a76d@suse.com>
 <ZqogJVHV36ytYVP1@macbook>
 <ff922c7a-aa66-4b23-8b9f-63b0b403ff14@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ff922c7a-aa66-4b23-8b9f-63b0b403ff14@suse.com>

On Wed, Jul 31, 2024 at 01:39:40PM +0200, Jan Beulich wrote:
> On 31.07.2024 13:29, Roger Pau Monné wrote:
> > On Wed, Jul 31, 2024 at 11:55:35AM +0200, Jan Beulich wrote:
> >> On 31.07.2024 11:37, Roger Pau Monné wrote:
> >>> On Wed, Jul 31, 2024 at 11:02:01AM +0200, Jan Beulich wrote:
> >>>> On 31.07.2024 10:51, Roger Pau Monné wrote:
> >>>>> I agree with (a), but I don't think enabling PVH dom0 usage of the
> >>>>> hypercalls should be gated on this.  As said a PV dom0 is already
> >>>>> capable of issuing PHYSDEVOP_{,un}map_pirq operations against a PVH
> >>>>> domU.
> >>>>
> >>>> Okay, I can accept that as an intermediate position. We ought to deny
> >>>> such requests at some point though for PVH domains, the latest in the
> >>>> course of making vPCI work there.
> >>>
> >>> Hm, once physdev_map_pirq() works as intended against PVH domains, I
> >>> don't see why we would prevent the usage of PHYSDEVOP_{,un}map_pirq
> >>> against such domains.
> >>
> >> Well. If it can be made work as intended, then I certainly agree. However,
> >> without even the concept of pIRQ in PVH I'm having a hard time seeing how
> >> it can be made work. Iirc you were advocating for us to not introduce pIRQ
> >> into PVH.
> > 
> > From what I'm seeing here the intention is to expose
> > PHYSDEVOP_{,un}map_pirq to PVH dom0, so there must be some notion of
> > pIRQs or akin in a PVH dom0?  Even if only for passthrough needs.
> 
> Only in so far as it is an abstract, handle-like value pertaining solely
> to the target domain.
> 
> >> Maybe you're thinking of re-using the sub-ops, requiring PVH domains to
> >> pass in GSIs?
> > 
> > I think that was one my proposals, to either introduce a new
> > hypercall that takes a GSI, or to modify the PHYSDEVOP_{,un}map_pirq
> > in an ABI compatible way so that semantically the field could be a GSI
> > rather than a pIRQ.  We however would also need a way to reference an
> > MSI entry.
> 
> Of course.
> 
> > My main concern is not with pIRQs by itself, pIRQs are just an
> > abstract way to reference interrupts, my concern and what I wanted to
> > avoid on PVH is being able to route pIRQs over event channels.  IOW:
> > have interrupts from physical devices delivered over event channels.
> 
> Oh, I might have slightly misunderstood your intentions then.

My intention would be to not even use pIRQs at all, in order to avoid
the temptation of the guest itself managing interrupts using
hypercalls, hence I would have preferred that abstract interface to be
something else.

Maybe we could even expose the Xen IRQ space directly, and just use
that as interrupt handles, but since I'm not the one doing the work
I'm not sure it's fair to ask for something that would require more
changes internally to Xen.

> >> I think I suggested something along these lines also to
> >> Jiqian, yet with the now intended exposure to !has_pirq() domains I'm
> >> not sure this could be made work reliably.
> > 
> > I'm afraid I've been lacking behind on reviewing those series.
> > 
> >> Which reminds me of another question I had: What meaning does the pirq
> >> field have right now, if Dom0 would issue the request against a PVH DomU?
> >> What meaning will it have for a !has_pirq() HVM domain?
> > 
> > The pirq field could be a way to reference an interrupt.  It doesn't
> > need to be exposed to the PVH domU at all, but it's a way for the
> > device model to identify which interrupt should be mapped to which
> > domain.
> 
> Since pIRQ-s are per-domain, _that_ kind of association won't be
> helped. But yes, as per above it could serve as an abstract handle-
> like value.

I would be fine with doing the interrupt bindings based on IRQs
instead of pIRQs, but I'm afraid that would require more changes to
hypercalls and Xen internals.

At some point I need to work on a new interface to do passthrough, so
that we can remove the usage of domctls from QEMU.  That might be a
good opportunity to switch from using pIRQs.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 13:25:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 13:25:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768687.1179583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ9Kc-0002Vz-33; Wed, 31 Jul 2024 13:25:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768687.1179583; Wed, 31 Jul 2024 13:25:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ9Kc-0002Vs-0N; Wed, 31 Jul 2024 13:25:30 +0000
Received: by outflank-mailman (input) for mailman id 768687;
 Wed, 31 Jul 2024 13: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=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZ9Ka-0002Vm-1q
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 13:25:28 +0000
Received: from mail-qv1-xf30.google.com (mail-qv1-xf30.google.com
 [2607:f8b0:4864:20::f30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 590444a0-4f40-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 15:25:26 +0200 (CEST)
Received: by mail-qv1-xf30.google.com with SMTP id
 6a1803df08f44-6b7a8cada97so29268586d6.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 06:25:26 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fac3b21sm74088186d6.114.2024.07.31.06.25.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 06: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: 590444a0-4f40-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722432325; x=1723037125; 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=70XqCmaInfFNNxORb/iEciO5LxyKeRJ1WuhMAdYK01o=;
        b=OrOl7sHGzKWl/QpoyWX2Vr/vNHwdicJPKNh0xSKkrVypdlEV9zwSL3vh4g52kXk1pp
         kD7OhkNrWERP78bNU07+lS7XNA04Ka99sAixPx3V7vGlyY2B0F1CK6JhsgnhrGH8O9aC
         mUf8Hco4LwCVyWD7b41aS0iZJbulBV/GlHN9c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722432325; x=1723037125;
        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=70XqCmaInfFNNxORb/iEciO5LxyKeRJ1WuhMAdYK01o=;
        b=rp4E2A/ARkpvPiGdwtfQVtdktBSL5xMubmWp6E4aUoFKXEZQmmdPj9Q3H591h4YXwT
         OHxeSwjzabkRWpJEiaPSFfap73H3wbx5OgyKnrGR8Bc0HQzmBCBw6RCU/GDBudCjFFJt
         4mqmgM1v3OjOThIw3RbACVEpV0hA6A6skfh10LulXHPoYTMpVXlHlVP4XL0SeVkpT139
         dhxA5/lw07gJKbJmzzwEtg/myPxy5hPqthKEpxoEHbOb02vaUnkgxNY77SpKW7PCiGsw
         5iN9RoWQi/S/PF5efS8bn9TrVaKPenoqO2cyYUrHOIfPu1pho2SaYqU0EaZ53pcCFTai
         DXZg==
X-Forwarded-Encrypted: i=1; AJvYcCVKdK+Me9jU1z4b3nxZ+KvLS2xYKv0RrRk1L5i6JVXIWJ8s1eTIR47WUBGBBHGWmeHXBRNMpaecMI2R9N+Hruv/WSmMiOp4WcgtCRFkduQ=
X-Gm-Message-State: AOJu0YzXjnrrvzxvaGloQGBLqNvhWnmgZQYIySSAZipMVpOHhGCnI7hq
	4C2N33QsYkHVl87uFaT2XR4p13UNXpX1oJQCU/1vR01NYUWZrHce8qzHe1yI4xo=
X-Google-Smtp-Source: AGHT+IG2sbLvB9CEyBcRBHfGghLRDEQVt0pSDjBmM/AOANswuzzg/ulNdaWB+aFIG4BK7h4l6KvO+A==
X-Received: by 2002:ad4:5ca9:0:b0:6b5:4125:415d with SMTP id 6a1803df08f44-6bb55a17157mr176782736d6.13.1722432325453;
        Wed, 31 Jul 2024 06:25:25 -0700 (PDT)
Date: Wed, 31 Jul 2024 15:25:23 +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/2] x86/dom0: only disable SMAP for the PV dom0 build
Message-ID: <Zqo7Q-leDNCXs4Fr@macbook>
References: <20240730152855.48745-1-roger.pau@citrix.com>
 <20240730152855.48745-3-roger.pau@citrix.com>
 <3918b171-b908-4962-8fdf-5236056902f8@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3918b171-b908-4962-8fdf-5236056902f8@suse.com>

On Wed, Jul 31, 2024 at 08:44:46AM +0200, Jan Beulich wrote:
> On 30.07.2024 17:28, Roger Pau Monne wrote:
> > The PVH dom0 builder doesn't switch page tables and has no need to run with
> > SMAP disabled.
> > 
> > Use stac() and clac(), as that's safe to use even if events would hit in the
> > middle of the region with SMAP disabled.  Nesting stac() and clac() calls is
> > not safe, so the stac() call is done strictly after elf_load_binary() because
> > that uses raw_{copy_to,clear}_guest() accessors which toggle SMAP.
> 
> And that was the main concern causing the CR4.SMAP override to be used instead,
> iirc. While I'm sure you've properly audited all code paths, how can we be sure
> there's not going to be another stac() or clac() added somewhere? Or setting of
> EFLAGS as a whole, clearing EFLAGS.AC without that being explicit? I think we'd
> be better off sticking to the fiddling with CR4.

On approach I didn't test would be to add ASSERTs in stac/clac
functions to ensure that the state is as intended.  IOW: for stac we
would assert that the AC flag is not set, while for clac we would do
the opposite and assert that it's set before clearing it.

That should detect nesting.

> 
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Considering the bug Andrew pointed out on the code you remove from setup.c,
> don't we want a Fixes: tag as well?

No, I think the current code is correct, it was my change that was
incorrect.

> > --- a/xen/arch/x86/pv/dom0_build.c
> > +++ b/xen/arch/x86/pv/dom0_build.c
> > @@ -830,6 +830,15 @@ int __init dom0_construct_pv(struct domain *d,
> >          printk("Failed to load the kernel binary\n");
> >          goto out;
> >      }
> > +
> > +    /*
> > +     * Disable SMAP to allow user-accesses when running on dom0 page-tables.
> > +     * Note this must be done after elf_load_binary(), as such helper uses
> > +     * raw_{copy_to,clear}_guest() helpers which internally call stac()/clac()
> > +     * and those calls would otherwise nest with the ones here.
> 
> Just in case you and Andrew would outvote me on which approach to take:
> I'm okay with "helpers" here, but the earlier "such helper" reads a little
> odd to me. Imo using "that" or "it" instead would be better. Not the least
> because personally a function like elf_load_binary() goes beyond what I'd
> call a mere "helper" (in that case dom0_construct_pv() toos could be deemed
> a helper, etc).

Hm, yes, would be better to reword that.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 13:39:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 13:39:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768698.1179593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ9YJ-0005Il-Cb; Wed, 31 Jul 2024 13:39:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768698.1179593; Wed, 31 Jul 2024 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 1sZ9YJ-0005Ie-9g; Wed, 31 Jul 2024 13:39:39 +0000
Received: by outflank-mailman (input) for mailman id 768698;
 Wed, 31 Jul 2024 13: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ9YI-0005IY-Mr
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 13:39:38 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 549354d8-4f42-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 15:39:37 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-52efba36802so9784413e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 06:39: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
 4fb4d7f45d1cf-5ac63590ac3sm8712046a12.34.2024.07.31.06.39.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 06:39: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: 549354d8-4f42-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722433177; x=1723037977; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YPmQGys78WoobwcUYkzm2HbBm2KhdLxvtkUmqOwLnwo=;
        b=gH7DiHGJ8UkdQWWi2jWzFWVVUs8tRTo9xz4U2EcRVvZ89JwMMIxegk0UP3TmWVVdMZ
         5uwTvg7YNjF0wN6la1yPXrVMsBmU3tF1VFgijMd4qAUxlWT/BM/ebKstcNlzhvCmeTtz
         C6Ogq/6ppb54UaRtKKWU0kiWdshIQqI/rYaFgCME/uMguJKSWPRoGZB/r1OiPh06x5Q7
         E08hE80kaZuCrfKrIiauT41UGdB6p6xlgHNxI+Jbz415Yugj8Ds615SyUun7LnVxX8r+
         bpqqDEoM4gvZxNzb5C2WOhc0ucf8KhypFcrXsAbmZUfjEEm6O4tLT4mzvqhTrSIqsCGp
         ZAbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722433177; x=1723037977;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YPmQGys78WoobwcUYkzm2HbBm2KhdLxvtkUmqOwLnwo=;
        b=JDjyYiLquVq2gBgnr2N3RFOXzN2TBbPvIOcBPTonQjnvehYFIldI13kmv6m4KOey1I
         TD1V1Ip4Bm85gHTzskwBv6IUu28FAt86kZTW5EdaRNpBAMoiAWPzHRvGYE6n3OGAxFP2
         7zcM+9eOHdvjJdldiTRooHn3/XMiYOPLoJx315f0Zgoc8fpQ+9Nh6Y3a2G6tmzkBebA7
         ptYoVvSmwBT6tOfphxSAipbOEgimDxmCPCdzflJmx3f0M1bHOHLegkLdrYD4Kr2XmIU0
         rQPhbGNtb3bfvHy78P57eJSMdFH/Y2NKH4ExMjyGruW52Su/w6x8o+OWsCvojKyM60ke
         5W2Q==
X-Forwarded-Encrypted: i=1; AJvYcCXi8kB9uz6LbRt7fKJobhAd2vK1vc0Lz1+KV2Iwn5X7zbBaXF3735GpzkgCwRaxke7fS1CI+J+DnA3GJV34Ts7EYd0yD5HKRTHGUeYAI0Y=
X-Gm-Message-State: AOJu0YyHRc5hvmNO3F7padwvqkoC+F2tqz+BcGLppnwcHJ3Wkb0sLb7P
	ZY12SHqYs6uE84MwH6Yb9uhZcMuQ6pPy5vTR4Jz4VtzshjtvsO1w6QI+clrMZA==
X-Google-Smtp-Source: AGHT+IHzuEYztUel96dLWhjp5Adc8xezMWuCWWaPhL+UcK4zms8MwgOI0NveH12gKkVg87eCK6JXNg==
X-Received: by 2002:a05:6512:2c08:b0:530:ad8b:de11 with SMTP id 2adb3069b0e04-530ad8bdf6emr2393141e87.9.1722433177021;
        Wed, 31 Jul 2024 06:39:37 -0700 (PDT)
Message-ID: <e0000e62-5b00-4a00-85fe-8a6c8e7281b9@suse.com>
Date: Wed, 31 Jul 2024 15:39:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] x86/dom0: only disable SMAP for the PV dom0 build
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: <20240730152855.48745-1-roger.pau@citrix.com>
 <20240730152855.48745-3-roger.pau@citrix.com>
 <3918b171-b908-4962-8fdf-5236056902f8@suse.com> <Zqo7Q-leDNCXs4Fr@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Zqo7Q-leDNCXs4Fr@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 15:25, Roger Pau Monné wrote:
> On Wed, Jul 31, 2024 at 08:44:46AM +0200, Jan Beulich wrote:
>> On 30.07.2024 17:28, Roger Pau Monne wrote:
>>> The PVH dom0 builder doesn't switch page tables and has no need to run with
>>> SMAP disabled.
>>>
>>> Use stac() and clac(), as that's safe to use even if events would hit in the
>>> middle of the region with SMAP disabled.  Nesting stac() and clac() calls is
>>> not safe, so the stac() call is done strictly after elf_load_binary() because
>>> that uses raw_{copy_to,clear}_guest() accessors which toggle SMAP.
>>
>> And that was the main concern causing the CR4.SMAP override to be used instead,
>> iirc. While I'm sure you've properly audited all code paths, how can we be sure
>> there's not going to be another stac() or clac() added somewhere? Or setting of
>> EFLAGS as a whole, clearing EFLAGS.AC without that being explicit? I think we'd
>> be better off sticking to the fiddling with CR4.
> 
> On approach I didn't test would be to add ASSERTs in stac/clac
> functions to ensure that the state is as intended.  IOW: for stac we
> would assert that the AC flag is not set, while for clac we would do
> the opposite and assert that it's set before clearing it.
> 
> That should detect nesting.

Yet it would also refuse non-paired uses which are in principle okay.
Plus is requires respective code paths to be taken for such assertions
to trigger.

>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>
>> Considering the bug Andrew pointed out on the code you remove from setup.c,
>> don't we want a Fixes: tag as well?
> 
> No, I think the current code is correct, it was my change that was
> incorrect.

Hmm, no I think there was an issue also before, from the cpu_has_smap
use in the restore-CR4 conditional: We'd enable SMAP there even if on
the command line there was "smap=hvm". While we clear FEATURE_SMAP
when "smap=off", we keep the feature available when "smap=hvm". Thus
we'd pointlessly write CR4 in the first if() and then enable SMAP in
the second one, even though it wasn't enabled earlier on.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 13:43:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 13:43:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768705.1179603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ9bs-0006mI-SH; Wed, 31 Jul 2024 13:43:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768705.1179603; Wed, 31 Jul 2024 13: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 1sZ9bs-0006mB-ON; Wed, 31 Jul 2024 13:43:20 +0000
Received: by outflank-mailman (input) for mailman id 768705;
 Wed, 31 Jul 2024 13:43: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=8n5P=O7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sZ9br-0006m0-9d
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 13:43:19 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7727ff8-4f42-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 15:43:18 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-52f04c29588so10228243e87.3; 
 Wed, 31 Jul 2024 06:43:17 -0700 (PDT)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-52fd5c19ac4sm2253412e87.192.2024.07.31.06.43.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 06:43: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: d7727ff8-4f42-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722433397; x=1723038197; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=r718cEIdkop+N07k1ZNX/53J6gUGA7u7PilJxZxkD8I=;
        b=lFzF8gmdPC40bCkUJhy1/yVk5kIie5IOGwc3tXPwFJQl1GYtWmaODQJeRX8gEChtSR
         5IkmIRQ154u3vZHBXFRrmkjgLBxNGKiSiGBD/eEPBc/GL4aIWWj3hFFlCNiTtqDBoUfP
         JzOZeTpk8iY86dcLzz3TA/2CoCuBCaAIjxMRUT8Gy1JYe59XEv1JbXRO19VO97pGMKil
         WIkeZviJt2IEoI2Ym77QVc9PzCO8XpvjcHXbLvQUB94vAqNtlPbemie47pScOY+w4ZmH
         OKYk9lb2bdRpwsoT87XMQA65Fx7d1EWgVHwdjEMVL8ibfehQgyiM9oVjuCNUwgWsSm2p
         j+LQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722433397; x=1723038197;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=r718cEIdkop+N07k1ZNX/53J6gUGA7u7PilJxZxkD8I=;
        b=qHkv2AwXZaiLYsN8gVdPrP74AEJyWp1npzLpaBb1CUQcwYY53431+b5c/LwF4HVFCk
         UvpgCSi9U+c6DgeDnzhLyYibIGXw/Bq57bbpUA3ovkD41y3tnWolbGVEF/Xikx9LlQNM
         wRzSlRuvItgpdLIuu34W5/lriwAs/52YM8OMHk+IGZVmMMo+8Aer56UpWTjaQXZc6iIr
         c5nMCHVIwGCvXso8jigEjwkdhBvDBnEIvWUdvscEWg6M81QK6D6Spirs5tfhoYC/EeK0
         3oEPxQQ1o9R1ep1aUT2Uvaxl5ndsCKvNl44cHCRpB3g11yLYuUiZs+SPhJrwbWPGDTpr
         Q8tg==
X-Forwarded-Encrypted: i=1; AJvYcCVuSF7Y1TTuSBbKUX+y0q1xuY3CzqiD65cEw8WLyCJ3JIICiSnUWHTSHU7UWCzN9qQ0KtqJ1joYCMHmGh5naU/fGjIUkdNYBEIe2kZ1gEa25bGqLuRj9Ul0p6kDbrQjl8opEIjm15vi77j3QMeSsYM0xMfyrfAeZvDIvUybH5VcPuONpAvT9zYZSvIfrDTgG9hQ9kjLgXA=
X-Gm-Message-State: AOJu0Yyi0GqyMlne0vMYvD1mlG2Br6Fs4s1yDPygJT6+kCOzo5nugose
	BGz3ffAKGNOLrpv9JKbCp2AM0Hrn/0MpG1a6U8I9a3v8rfMVdHniJ0nnHQ==
X-Google-Smtp-Source: AGHT+IGZFF3mk7oJ3pIj23gs7Hb0BVkYb1S67I6Cja7HRi41SZjz6dqZjEMXc/TAhT5BD/iKe7oKjw==
X-Received: by 2002:a05:6512:3ed:b0:52c:e17c:3741 with SMTP id 2adb3069b0e04-5309b269b87mr8479716e87.5.1722433396139;
        Wed, 31 Jul 2024 06:43:16 -0700 (PDT)
Message-ID: <4dc6a46b72e75d4bdd9a40916ed3bf05460146bd.camel@gmail.com>
Subject: Xen Project Releases Version 4.19
From: oleksii.kurochko@gmail.com
To: xen-devel@lists.xenproject.org, xen-users@lists.xenproject.org, 
	xen-announce@lists.xenproject.org, advisory-board@lists.xenproject.org
Cc: Kelly Choi <kelly.choi@cloud.com>
Date: Wed, 31 Jul 2024 15:43:15 +0200
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.52.3 (3.52.3-1.fc40app2) 
MIME-Version: 1.0

Hello everyone,

It's with great pleasure that I announce our 4.19 PR release.

I want to thank the whole community for their efforts in getting this
release published!

*Please find the PR article attached here
<https://www.linuxfoundation.org/press/xen-project-announces-performance-an=
d-security-advancements-with-release-of-4.19?utm_content=3D302230092&utm_me=
dium=3Dsocial&utm_source=3Dtwitter&hss_channel=3Dtw-14706299
>*

Please find the tarball and its signature at:
   https://downloads.xenproject.org/release/xen/4.19.0/

You can also check out the tag in xen.git:
   git://xenbits.xen.org/xen.git RELEASE-4.19.0

Git checkout and build instructions can be found at:
   https://wiki.xenproject.org/wiki/Xen_Project_4.19_Release_Notes#Build_Re=
quirements

Release notes can be found at:
   https://wiki.xenproject.org/wiki/Xen_Project_4.19_Release_Notes

A summary for 4.19 release documents can be found at:
   https://wiki.xenproject.org/wiki/Category:Xen_4.19

*Some notable features:*
  - *Security Enhancements:*
    - Published 13 new Xen Security Advisories (XSAs) to mitigate =20
vulnerabilities.
    - Adoption of additional MISRA-C rules for improved code quality.
 =20
  - *Arm*
    - Introduction of dynamic node programming using overlay dtbo.
    - FF-A notification support

  - *x86 Architecture:*
    - Introduce a new x2APIC driver that uses Cluster Logical     =20
addressing mode for IPIs and physical addressing mode for     =20
external interrupts.
    - Deprecate support for XeonPhi in 4.19, with the firm plan to   =20
remove support in 4.20.
   *PVH:*
     - PVH dom0 has now moved to "supported with caveats" status=E2=80=8B=
=E2=80=8B=E2=80=8B=E2=80=8B=E2=80=8B=E2=80=8B=E2=80=8B
     - PVH/HVM can now map foreign pages, which should for example   =20
allow QEMU stubdomains to run as PVH
     - Boot time speedup due to the IOMMU changes
     - Don't expose pIRQ support to HVM guests by default.  The feature
(XENFEAT_hvm_pirqs) can now be enabled on a per-domain basis

   *Other updates:*
     - Add a new 9pfs backend running as a daemon in dom0. First user=20
is Xenstore-stubdom now being able to support full Xenstore      =20
trace capability.=20
     - libxl support for backendtype=3Dtap with tapback.
     - Increase the maximum number of CPUs Xen can be built for from =20
4095 to 16383.
     - When building with Systemd support (./configure --enable-     =20
systemd), remove libsystemd as a build dependency. Systemd           =20
Notify support is retained, now using a standalone library      =20
implementation.
     - xenalyze no longer requires `--svm-mode` when analyzing traces=20
generated on AMD CPUs.
     - Code symbol annotations and MISRA compliance improvements.

   *CI updates:*
     - Minimum fixes to rebuild the containers, following the HEREDOC=20
problems.
     - Rebuild containers to have testing with up-to-date LTS distros.
     - Few build system checks, and strip the obsolete contents of the
build containers.

Aside from the updates mentioned, I would also like to note that we are
still actively working on the PPC and RISC-V ports.

Best regards,
 Oleksii

Come join the conversation on Matrix:

XenProject: https://matrix.to/#/#XenProject:matrix.org

XenDevel: https://matrix.to/#/#XenDevel:matrix.org

XenSocial: https://matrix.to/#/#XenSocial:matrix.org


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 14:07:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 14:07:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768781.1179663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ9zB-0005Vt-Qs; Wed, 31 Jul 2024 14:07:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768781.1179663; Wed, 31 Jul 2024 14:07: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 1sZ9zB-0005VI-MV; Wed, 31 Jul 2024 14:07:25 +0000
Received: by outflank-mailman (input) for mailman id 768781;
 Wed, 31 Jul 2024 14:07: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=F/qb=O7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sZ9zA-0005TA-Op
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 14:07:24 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3584e31e-4f46-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 16:07:23 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a7a94aa5080so681794066b.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 07:07:23 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad91075sm771904466b.168.2024.07.31.07.07.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 07:07: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: 3584e31e-4f46-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722434843; x=1723039643; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FjZ4zKrTVE02CIFl2QtucXqR067v1+j3M5J1TjNg8Q8=;
        b=mSkN5R9WbULwFmO2bHQf4LTWxNwD7mcxuK6dKyomEsabC5w4YWKR9yw+zWYwxPX8YC
         OMPCqs3MC10eqV+EEjACtXlI9IdD9gqWBA56Dutz7VGSz/VLYQy+gaCbLOdCo4A0tGHc
         gkaTAx0VZwv++2ztIi1SAtwAqvQEv3sDSjfDg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722434843; x=1723039643;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FjZ4zKrTVE02CIFl2QtucXqR067v1+j3M5J1TjNg8Q8=;
        b=xGLc6WIxPhqXxw84svY4AeiLt3F7QssQEg6lbu1i3D3tPVaXmJYT2CpUAfn4ulcDzA
         SQyUri/Ncv/H46HiSHQE/2oNivXb910o68Eo9yqQ1jGNT69acQIhFrSoW8+iz4K/h5Om
         lq6Utm0IBqkEGRRYe6TA/j85VLIisvfBNb/5s0WWhmNKxklPZiOl7UjhgB3WBfm3ZmoP
         hPRdyU7iFG0uUZ5LIE90WLouo5HxbvARb9rGOll1dP9jdP4jAZ2TW3fH8KbZ0rmZcZ3C
         jb5XNoVSdMyp5hcTBHFnpjCJMWZGqBwyD5t6RXybazjpus9GXOaSyYIAmgOQi+kQ+uZF
         QvpQ==
X-Forwarded-Encrypted: i=1; AJvYcCVUr17GseyU7umteAKID9hYmdgDfrVRHWY4VzwCHA0+6WF9sBe8MYTQ97baMe3MotZ0iIumj27nYjpeKq34XXfkhBSyTDkHaW+SR156K1U=
X-Gm-Message-State: AOJu0YwKtjlDWoepfvm17pcH8MwmcQyfsMV/EAgNuFrwh9uTl8M1zL4a
	d9QqKTwPoJPCaVb/bpfe/h/kTuO+571NNgCmSrxCLEB6tuSxrtuPvf+9fQunhz4=
X-Google-Smtp-Source: AGHT+IHZJmvN1E0sOAAKnui0Q+ECvK+XvDKk8E1oqGOmoWBcKE9PAtY73zMigkOkxGKdpeMevGvILg==
X-Received: by 2002:a17:907:968e:b0:a7a:9144:e251 with SMTP id a640c23a62f3a-a7d3fdb7e94mr1200381766b.11.1722434842939;
        Wed, 31 Jul 2024 07:07:22 -0700 (PDT)
Message-ID: <1de0e761-0c87-4a7f-a7a9-3c468489c410@citrix.com>
Date: Wed, 31 Jul 2024 15:07:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/domain: Factor domlist_{insert,remove}() out of
 domain_{create,destroy}()
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20240731120406.3429430-1-andrew.cooper3@citrix.com>
 <33cde4c7-e00a-47e0-b752-82e514df99d3@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <33cde4c7-e00a-47e0-b752-82e514df99d3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31/07/2024 1:14 pm, Jan Beulich wrote:
> On 31.07.2024 14:04, Andrew Cooper wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -64,6 +64,57 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
>>  static struct domain *domain_hash[DOMAIN_HASH_SIZE];
>>  struct domain *domain_list;
>>  
>> +/*
>> + * 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.
>> + */
>> +static void domlist_insert(struct domain *d)
>> +{
>> +    struct domain **pd;
>> +
>> +    spin_lock(&domlist_update_lock);
>> +
>> +    /* domain_list is maintained in domid order. */
>> +    pd = &domain_list;
> Make this the initializer of the variable, if ...
>
>> +    for ( ; *pd != NULL; pd = &(*pd)->next_in_list )
> ... isn't to be the starting clause of the for()?

Ok.

>
>> +        if ( (*pd)->domain_id > d->domain_id )
>> +            break;
>> +
>> +    d->next_in_list = *pd;
>> +    d->next_in_hashbucket = domain_hash[DOMAIN_HASH(d->domain_id)];
>> +    rcu_assign_pointer(*pd, d);
>> +    rcu_assign_pointer(domain_hash[DOMAIN_HASH(d->domain_id)], d);
> Maybe worth putting the hash in a local variable?

Ok.

>
>> +    spin_unlock(&domlist_update_lock);
>> +}
>> +
>> +/*
>> + * Remove a domain from the domlist/hash.  This means the domain can no longer
>> + * be looked up by domid, and therefore can no longer be the subject of
>> + * *subsequent* hypercalls/etc.  In-progress hypercalls/etc can still operate
>> + * on the domain.
>> + */
>> +static void domlist_remove(struct domain *d)
>> +{
>> +    struct domain **pd = &domain_list;
>> +
>> +    spin_lock(&domlist_update_lock);
>> +
>> +    pd = &domain_list;
> pd already has an initializer.

Ah - that was a copy&paste error of mine.  I'll drop the initialiser.

The code I copied from strictly initialises *pd with the update lock
held.  As we're only taking the address of pointer, I think it's safe to
be outside, but its also just an LEA so also not interesting to
initialise outside.

> With at least the pd related adjustments
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 14:08:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 14:08:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768795.1179672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ9zt-00068K-1i; Wed, 31 Jul 2024 14:08:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768795.1179672; Wed, 31 Jul 2024 14:08: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 1sZ9zs-00068D-V5; Wed, 31 Jul 2024 14:08:08 +0000
Received: by outflank-mailman (input) for mailman id 768795;
 Wed, 31 Jul 2024 14:08:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZ9zr-0005TA-Na
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 14:08:07 +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 4f5a0aa7-4f46-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 16:08:07 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7aabb71bb2so793885966b.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 07: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-a7acab23624sm772721566b.20.2024.07.31.07.08.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 07:08: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: 4f5a0aa7-4f46-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722434886; x=1723039686; 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=dPXSZqJ8yk928aHe6rbbdaBvgu8SQOV2lncKvnzF5ok=;
        b=EtqXWsTrwHZTyjuiXETFKZjCqag4hUbqH0GdiGMc0VU6mpDoXNYUCvbB0Xst5X7oev
         Qd8Aqjijhjczbs77tw09faJn1WyToidsfizVdsT14KmabjLimkKCq3jZXS6hU3Or7i8y
         abqAllh15N4j7kbCBIuqJxoypw2h/oj3g98W79cpeFqQjXr0A8ouEZVy6aVmSo2zBSSq
         jVuCAQHcElLMDm31rLkGVv90JyVuGa0lUqrSMOO90sVhZ3wgVVifN3l+5nSIzyJw7DIS
         26/HezM4oR63ZIsb7Cz6OGJ9U0f9Jwoy1GNC4uU+B0AuuZuc8OAfSM15MXDxs846qPUu
         xeHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722434886; x=1723039686;
        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=dPXSZqJ8yk928aHe6rbbdaBvgu8SQOV2lncKvnzF5ok=;
        b=lIpk5RJzGyCEu6YyV26vI/Uz2B5HFW1vBxKXOjosmvy1aEboQyjiQi/n4Te9zswsSE
         9m0VnIDc8ZKnyrvwfpkur1KyIodgfbK32dOg0kRC0XXgstRtqe1pYkotiZpdFRxtvjGl
         rRIMkhtvSsRZgNuKo+rl6cXMYtXAJu4cAaJnEQgat8v2qP0Ju5ymhjOEWlcPW2Crqcnv
         hOXgL4Lgu6kU1IAAWMbC/LbCM9HMRK5dlRpCdYuNWOcMu3pbFguMSpYSLS8nBfc/jSyx
         r4y58KaYzTZCgrdgzCHzSWdNq+NRZo5r4/UOCz8knIXeP1MTGPCjTvGeSnh+xw6AbJk8
         qI+w==
X-Gm-Message-State: AOJu0YxNUBg1Dyy6xJcIyKvnFr9sZyODxn4xhxd/nZUeglsG/w7pXvWY
	FgMB/GJTN0zmG0CdV5cdeHVOH6RwPmeeLUsYnqu3VIMrutJhjWYG5VN3OTrYTQ==
X-Google-Smtp-Source: AGHT+IG8057NJb8USd5SRxHAvYz4rr1/OHWdGgZibzAH9kqrkayqrqUvqUKTnMLgzBBzotekNYoxsw==
X-Received: by 2002:a17:907:3faa:b0:a7a:be06:d8e7 with SMTP id a640c23a62f3a-a7d40160a63mr1186298566b.44.1722434886363;
        Wed, 31 Jul 2024 07:08:06 -0700 (PDT)
Message-ID: <8bf194db-c3fe-42fc-b33f-7085602d8f88@suse.com>
Date: Wed, 31 Jul 2024 16:08:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH WIP 07/14] xen/hvm: Don't skip MSR_READ trace record
To: George Dunlap <gwd@xenproject.org>
References: <20240626133853.4150731-1-george.dunlap@cloud.com>
 <20240626133853.4150731-8-george.dunlap@cloud.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: <20240626133853.4150731-8-george.dunlap@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.06.2024 15:38, George Dunlap wrote:
> Commit 37f074a3383 ("x86/msr: introduce guest_rdmsr()") introduced a
> function to combine the MSR_READ handling between PV and HVM.
> Unfortunately, by returning directly, it skipped the trace generation,
> leading to gaps in the trace record, as well as xenalyze errors like
> this:
> 
> hvm_generic_postprocess: d2v0 Strange, exit 7c(VMEXIT_MSR) missing a handler
> 
> Replace the `return` with `goto out`.
> 
> Fixes: 37f074a3383 ("x86/msr: introduce guest_rdmsr()")
> Signed-off-by: George Dunlap <george.dunlap@cloud.com>

Noticed only now that there's a bug fix hidden in this series.

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

Jan



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 14:08:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 14:08:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768796.1179682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZ9zz-0006Pb-8C; Wed, 31 Jul 2024 14:08:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768796.1179682; Wed, 31 Jul 2024 14: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 1sZ9zz-0006PU-5V; Wed, 31 Jul 2024 14:08:15 +0000
Received: by outflank-mailman (input) for mailman id 768796;
 Wed, 31 Jul 2024 14:08:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mMq9=O7=bounce.vates.tech=bounce-md_30504962.66aa454a.v1-20e20903defe45c494398ed9f0ea75b3@srs-se1.protection.inumbo.net>)
 id 1sZ9zx-000654-PV
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 14:08:13 +0000
Received: from mail177-18.suw61.mandrillapp.com
 (mail177-18.suw61.mandrillapp.com [198.2.177.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51c0e75a-4f46-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 16:08:11 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-18.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4WYv7t38mszCf9KZf
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 14:08:10 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 20e20903defe45c494398ed9f0ea75b3; Wed, 31 Jul 2024 14:08: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: 51c0e75a-4f46-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1722434890; x=1722695390;
	bh=d5hMzHk4pWAM1gLVjbKxtNNqDiNqO+f+fnX3raXvsl0=;
	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=RyDngBKYZrlySa+JmI9GqrQKNeWNulnOOYVS6oMFRD7iTqUXbYzEXGBbYNXRnT6jW
	 NSUL88OwZfeh4wmOSbfT+OfyFBe2WqOWAPqciIiP2IAkwJmCkFqMDWCk2OnQvIj3Y8
	 SS7Foke6RK3GaksHOlyDLGH53pmERyp3EVoJeSUxD6LEUMGeNQJ//f4gZMX9VlV2+V
	 wHe2Naqtb17gp/4bnoBRQGW3kA3Ev9Xo5cqWRi+f4ZTvB3eq4GIkJNT6DXa17fwndO
	 xQ5F7Y90oYlhvGLueRA6wD3ab2IS/YrrYQ82qQbjfyvCTozYgPm7Ua4uwNAFE2tROJ
	 aXFPxKa4btczQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1722434890; x=1722695390; i=anthony.perard@vates.tech;
	bh=d5hMzHk4pWAM1gLVjbKxtNNqDiNqO+f+fnX3raXvsl0=;
	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=l+KHbg9QGYbjNM9rW3I9XWFhm8jzFSu00RGvwrYWfFR5J/LJe6NikETSQUaRV03y6
	 S5GSuVuKtnvt3eJ2LvhxswKLj0oPIhYbI1FKRiZ256cQ0RzAzAAfS2vINRscasNKCE
	 F5NNsKcFe2kFM9o/s7xWq+vqWSsgK2qk1tWOmMcedVJZuy7NKhlfHFPTeLvlL7utq/
	 ZFwFWlyLjVhF1EZF5/S7Y+FLb/ORCT/VXAH3s+W4Q2K+6+/JU8H6BLgYOIRzuY9M2u
	 5wJlCkPj3KFo5familWAzS8xO5YIDg6XpvjYKCG8utdiqT6rN1rm9cqOtPA086VBI7
	 yFsnM6nm7+gww==
From: Anthony PERARD <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[OSSTEST=20PATCH]=20preseed=5Fbase:=20Use=20"keep"=20NIC=20NamePolicy=20when=20"force-mac-address"?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1722434889236
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>, Jan Beulich <jbeulich@suse.com>, Roger Pau Monne <roger.pau@citrix.com>
Message-Id: <ZqpFSCzWTMl8gxBS@l14>
References: <20240617144051.29547-1-anthony@xenproject.org> <a65a83be-1236-4699-8124-c0bd809c4b97@citrix.com> <ZnFXFjeakYBmBHSB@l14> <bb768c00-0a91-4e47-91b4-21ec31a71f13@citrix.com>
In-Reply-To: <bb768c00-0a91-4e47-91b4-21ec31a71f13@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.20e20903defe45c494398ed9f0ea75b3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20240731:md
Date: Wed, 31 Jul 2024 14:08:10 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Jun 18, 2024 at 12:04:05PM +0100, Andrew Cooper wrote:
> On 18/06/2024 10:44 am, Anthony PERARD wrote:
> > On Mon, Jun 17, 2024 at 04:34:09PM +0100, Andrew Cooper wrote:
> >> On 17/06/2024 3:40 pm, Anthony PERARD wrote:
> >>> diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
> >>> index 3545f3fd..d974fea5 100644
> >>> --- a/Osstest/Debian.pm
> >>> +++ b/Osstest/Debian.pm
> >>> @@ -972,7 +972,19 @@ END
> >>>          # is going to be added to dom0's initrd, which is used by so=
me guests
> >>>          # (created with ts-debian-install).
> >>>          preseed_hook_installscript($ho, $sfx,
> >>> -            '/usr/lib/base-installer.d/', '05ifnamepolicy', <<'END')=
;
> >>> +            '/usr/lib/base-installer.d/', '05ifnamepolicy',
> >>> +            $ho->{Flags}{'force-mac-address'} ? <<'END' : <<'END');
> >> The conditional looks suspicious if both options are <<'END'.
> > That works fine, this pattern is already used in few places in osstest,
> > like here:
> > https://xenbits.xen.org/gitweb/?p=3Dosstest.git;a=3Dblob;f=3Dts-host-in=
stall;h=3D0b6aaeeae228551064618abfa624321992a2eb2d;hb=3DHEAD#l240
> >     >  $ho->{Flags}{'force-mac-address'} ? <<END : <<END);
> >
> > Or even here:
> > https://xenbits.xen.org/gitweb/?p=3Dosstest.git;a=3Dblob;f=3Dts-xen-bui=
ld;h=3Dc294a51eafc26e53b5417529b943224902870acf;hb=3DHEAD#l173
> >     > buildcmd_stamped_logged(600, 'xen', 'configure', <<END,<<END,<<EN=
D);
> >
> >> Doesn't this just write 70-eth-keep-policy.link unconditionally?
> > I've check that, on a different host, and the "mac" name policy is used
> > as expected, so the file "70-eth-keep-policy.link" isn't created on tha=
t
> > host.
> 
> This is horrifying.=C2=A0 Given a construct which specifically lets you
> choose a semantically meaningful name, using END for all options is rude.
> 
> Despite the pre-existing antipatterns, it would be better to turn this
> one into:
> 
> $ho->{Flags}{'force-mac-address'} ? <<'END_KEEP' : <<'END_MAC');

I've push the patch with this change.

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 14:10:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 14:10:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768810.1179693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZA20-00088G-K4; Wed, 31 Jul 2024 14:10:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768810.1179693; Wed, 31 Jul 2024 14: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 1sZA20-000889-GK; Wed, 31 Jul 2024 14:10:20 +0000
Received: by outflank-mailman (input) for mailman id 768810;
 Wed, 31 Jul 2024 14: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=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZA1y-000881-Ee
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 14:10:18 +0000
Received: from mail-qv1-xf2e.google.com (mail-qv1-xf2e.google.com
 [2607:f8b0:4864:20::f2e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c01941b-4f46-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 16:10:16 +0200 (CEST)
Received: by mail-qv1-xf2e.google.com with SMTP id
 6a1803df08f44-6b7b28442f9so64691356d6.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 07:10:16 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fb07bf7sm74278626d6.137.2024.07.31.07.10.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 07:10: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: 9c01941b-4f46-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722435015; x=1723039815; 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=GMZrjJE3ANwP3wPaNAJgY84KzcpUhc121LUvBj00zl8=;
        b=LabitAz0V4Bur/2hCncThGVnSC+0tjcng8ZH/ZQ6AmOVEVw62GaC+sKw1eQzbuASOC
         cITxg9UNyg8iMBsqzWJPI/maDGYLGhgkfHTGSV56bYt8SbS1hVzkz89LxN7f0hDGj9yl
         cK6/36kvqYRDGHvxzg2HWjmOvyHlUTvSMdLE4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722435015; x=1723039815;
        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=GMZrjJE3ANwP3wPaNAJgY84KzcpUhc121LUvBj00zl8=;
        b=Ww3icFHbBeszOfmU9LfVRS6LqxJT0OSm47xziaV83PStljysMFhPkXclvd53Ug2MpW
         Cckpg9n10OVHzfh/lXLaFCzJExMtEC1ryZkAzXx0X8quvQnySRmTDxm81BLHDf7GgN00
         1lP4+XWVp7BCa8o32WbrTSogV37p0cHiUHBwn8SZbpclXmpJDo6Z/0y7Iv5RtmaB2hPV
         Ipk/MyPn01nrVZaHvWcm+0YS+JK7JWIlSY/u4u+eiMKCio/X/P5z7jFju+w+ZbiyFZa9
         HbIgDypY+vsRlVcyKWmvyhnmvhctgDTG+J7p6fUrfk0FW4B/m2+8lnSZyw9GuKfgUlzr
         IKVg==
X-Forwarded-Encrypted: i=1; AJvYcCWYTpMdv6EN3HwUSaXJ8P8j79TR1ARqEpPWTRqA3R+ttp9GZqqGmDrxdCYDW0cwmsaE89mIR3DqfVDkDuSC9gLyZeARfyWGq9t3QfOdc8g=
X-Gm-Message-State: AOJu0YxRttvFRPb4w1XqnrMVp+eqbLG5p4uYL6tULYvwrurZGV9ehLcS
	Jg6W2TYKU1/FTMehxoW6CxhWHfek2nkhoOfZGMIeGuXWFoIWhFnb8Wbo8EqGBQCGTIPoWU7zb8u
	G
X-Google-Smtp-Source: AGHT+IF+zQEYiBqChA4GxhRz8d1E6ZdiAh9jMJIkJv5wou13gjxJCRCMyc1v3q+2+ACIv6DNYve7BQ==
X-Received: by 2002:a05:6214:19ee:b0:6b0:729c:5efc with SMTP id 6a1803df08f44-6bb55b156d4mr180870316d6.56.1722435014820;
        Wed, 31 Jul 2024 07:10:14 -0700 (PDT)
Date: Wed, 31 Jul 2024 16:10: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 v2 2/2] x86/dom0: only disable SMAP for the PV dom0 build
Message-ID: <ZqpFxHxA0g0KrCC-@macbook>
References: <20240730152855.48745-1-roger.pau@citrix.com>
 <20240730152855.48745-3-roger.pau@citrix.com>
 <3918b171-b908-4962-8fdf-5236056902f8@suse.com>
 <Zqo7Q-leDNCXs4Fr@macbook>
 <e0000e62-5b00-4a00-85fe-8a6c8e7281b9@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <e0000e62-5b00-4a00-85fe-8a6c8e7281b9@suse.com>

On Wed, Jul 31, 2024 at 03:39:35PM +0200, Jan Beulich wrote:
> On 31.07.2024 15:25, Roger Pau Monné wrote:
> > On Wed, Jul 31, 2024 at 08:44:46AM +0200, Jan Beulich wrote:
> >> On 30.07.2024 17:28, Roger Pau Monne wrote:
> >>> The PVH dom0 builder doesn't switch page tables and has no need to run with
> >>> SMAP disabled.
> >>>
> >>> Use stac() and clac(), as that's safe to use even if events would hit in the
> >>> middle of the region with SMAP disabled.  Nesting stac() and clac() calls is
> >>> not safe, so the stac() call is done strictly after elf_load_binary() because
> >>> that uses raw_{copy_to,clear}_guest() accessors which toggle SMAP.
> >>
> >> And that was the main concern causing the CR4.SMAP override to be used instead,
> >> iirc. While I'm sure you've properly audited all code paths, how can we be sure
> >> there's not going to be another stac() or clac() added somewhere? Or setting of
> >> EFLAGS as a whole, clearing EFLAGS.AC without that being explicit? I think we'd
> >> be better off sticking to the fiddling with CR4.
> > 
> > On approach I didn't test would be to add ASSERTs in stac/clac
> > functions to ensure that the state is as intended.  IOW: for stac we
> > would assert that the AC flag is not set, while for clac we would do
> > the opposite and assert that it's set before clearing it.
> > 
> > That should detect nesting.
> 
> Yet it would also refuse non-paired uses which are in principle okay.

While such non-paired uses could be fine, it would seem to point to
other issues, as I would expect stac/clac to always be paired unless
it's a non-return path (a panic or similar).

> Plus is requires respective code paths to be taken for such assertions
> to trigger.

It does.  It seems more reliable to me to use stac/clac, rather than
fiddling with %cr4, however there's the nesting issue.  I think we
need to reach consensus as to which approach is to be used.

> >>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >>
> >> Considering the bug Andrew pointed out on the code you remove from setup.c,
> >> don't we want a Fixes: tag as well?
> > 
> > No, I think the current code is correct, it was my change that was
> > incorrect.
> 
> Hmm, no I think there was an issue also before, from the cpu_has_smap
> use in the restore-CR4 conditional: We'd enable SMAP there even if on
> the command line there was "smap=hvm". While we clear FEATURE_SMAP
> when "smap=off", we keep the feature available when "smap=hvm". Thus
> we'd pointlessly write CR4 in the first if() and then enable SMAP in
> the second one, even though it wasn't enabled earlier on.

Oh yes, that one.  I was thinking about the one related to IST and
cr4_pv32_mask.  I will add the fixes tag.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 14:12:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 14:12:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768817.1179703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZA44-0000Gg-Uo; Wed, 31 Jul 2024 14:12:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768817.1179703; Wed, 31 Jul 2024 14:12: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 1sZA44-0000GZ-S6; Wed, 31 Jul 2024 14:12:28 +0000
Received: by outflank-mailman (input) for mailman id 768817;
 Wed, 31 Jul 2024 14: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZA44-0000GT-AF
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 14:12:28 +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 e9e928d5-4f46-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 16:12:26 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a7a8e73b29cso459797766b.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 07:12: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-a7acab22ff1sm773816666b.35.2024.07.31.07.12.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 07:12: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: e9e928d5-4f46-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722435146; x=1723039946; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+TAyoyIqnH8cIcRiaj90o1rkWu+glJGqWkl7UmKVSYk=;
        b=dYqOOO19Fkr8UfLmxVnFnxNjeE+Mk5/xbIm6Qfwmdp8VpLWcTa2vL3vGEqcmRU7JXk
         RnBeeibHXCjtvLAacRSAhiGf8PDhZC2zW20TmqBP8PGzrbf7JHFj9vvcRdilHXBcX2Ye
         lkSSgmIsH+U5F0sqYcrTv2LsY5PKsYU9c/LR6adoH/4hwy+XJfZ/4LEInyhK9zPenoJv
         7WatANrK997XezEIXO3Et4PKXAAkT0Gt0rxm8auZAOamdtbR6Lv0SjO4AJ8cnPs4YQLg
         TAA28mF7vqoT9juEXi2Rc9kXbzFlHDjDkydLZBAkivo8rotO/RgkKci1dluRvze3vK2T
         kwDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722435146; x=1723039946;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+TAyoyIqnH8cIcRiaj90o1rkWu+glJGqWkl7UmKVSYk=;
        b=rrpsLSOAf+fbQV+lbCoOR4x+JOZhmwK9RR8FnD76V4s3cHUvxmFcokhybzHXRZ+6ED
         ojTPK7r9BAIISSvNe5IvYbJ7jbTML8aBIwOGEvTgCb9KadMMAn9HuVeD7d9CMjYe+k+3
         clF4GWqgOXSuWbiFOyjsO9g/1CU2bbz6vPTSqF1QcwKPS1XYqFtuUBD/0O6XrYlaCa7n
         t44lUTAUifXYlZdzP2bJp8lzipSSgLJnJvPUKZ0HC1qwV9TxdiSgXuPkwD1V4FCFlTfV
         +w6UN/hC1geHbe8DodrdexwlHesWLPSJS3RsAmNyOp9/P27117RNLEGeHrPX3hvHkHRa
         DbkA==
X-Forwarded-Encrypted: i=1; AJvYcCWbzraLRCQtl4Ec7HfMRUhIzLX6dv+l0hL7pGShxdSEIXxoWiaUTkpmoi+CwxpJnXx28INHoYKAp+AmbTgE/h5KC1PtegaU8VFi1JPDBtk=
X-Gm-Message-State: AOJu0YwO16bbl/bA5liJuNdJUgCMmZrIaq7i0W0qYVatwI9lXh8wcy3x
	ZPE0BJ0OuwDL5U/URHEE0VgFmAgRprRC/1tuur7eHpYZY7ETA5yGJ4XEaDg43w==
X-Google-Smtp-Source: AGHT+IEoBJG07FJFs0E2E+6MRXcncvCLdmCFO8+GxQXun7W8mz7i86soTcFZrRWTaP1fILO70zslaw==
X-Received: by 2002:a17:907:9483:b0:a7a:83f8:cfd5 with SMTP id a640c23a62f3a-a7d3ff9f2f8mr989134366b.18.1722435145567;
        Wed, 31 Jul 2024 07:12:25 -0700 (PDT)
Message-ID: <67896aad-8cec-4bb7-a9dd-c244aae61c85@suse.com>
Date: Wed, 31 Jul 2024 16:12:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/domain: Factor domlist_{insert,remove}() out of
 domain_{create,destroy}()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20240731120406.3429430-1-andrew.cooper3@citrix.com>
 <33cde4c7-e00a-47e0-b752-82e514df99d3@suse.com>
 <1de0e761-0c87-4a7f-a7a9-3c468489c410@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: <1de0e761-0c87-4a7f-a7a9-3c468489c410@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 16:07, Andrew Cooper wrote:
> On 31/07/2024 1:14 pm, Jan Beulich wrote:
>> On 31.07.2024 14:04, Andrew Cooper wrote:
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -64,6 +64,57 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
>>>  static struct domain *domain_hash[DOMAIN_HASH_SIZE];
>>>  struct domain *domain_list;
>>>  
>>> +/*
>>> + * 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.
>>> + */
>>> +static void domlist_insert(struct domain *d)
>>> +{
>>> +    struct domain **pd;
>>> +
>>> +    spin_lock(&domlist_update_lock);
>>> +
>>> +    /* domain_list is maintained in domid order. */
>>> +    pd = &domain_list;
>> Make this the initializer of the variable, if ...
>>
>>> +    for ( ; *pd != NULL; pd = &(*pd)->next_in_list )
>> ... isn't to be the starting clause of the for()?
> 
> Ok.
> 
>>
>>> +        if ( (*pd)->domain_id > d->domain_id )
>>> +            break;
>>> +
>>> +    d->next_in_list = *pd;
>>> +    d->next_in_hashbucket = domain_hash[DOMAIN_HASH(d->domain_id)];
>>> +    rcu_assign_pointer(*pd, d);
>>> +    rcu_assign_pointer(domain_hash[DOMAIN_HASH(d->domain_id)], d);
>> Maybe worth putting the hash in a local variable?
> 
> Ok.
> 
>>
>>> +    spin_unlock(&domlist_update_lock);
>>> +}
>>> +
>>> +/*
>>> + * Remove a domain from the domlist/hash.  This means the domain can no longer
>>> + * be looked up by domid, and therefore can no longer be the subject of
>>> + * *subsequent* hypercalls/etc.  In-progress hypercalls/etc can still operate
>>> + * on the domain.
>>> + */
>>> +static void domlist_remove(struct domain *d)
>>> +{
>>> +    struct domain **pd = &domain_list;
>>> +
>>> +    spin_lock(&domlist_update_lock);
>>> +
>>> +    pd = &domain_list;
>> pd already has an initializer.
> 
> Ah - that was a copy&paste error of mine.  I'll drop the initialiser.

The initializer? Then please also don't switch to making it the initializer
in domlist_insert(), but rather move it into the for(). I think the two
functions want to remain in sync in this regard.

> The code I copied from strictly initialises *pd with the update lock
> held.  As we're only taking the address of pointer, I think it's safe to
> be outside, but its also just an LEA so also not interesting to
> initialise outside.

One can really view it both ways, I suppose. The compiler is also free to
move it, even across the spin_lock(), aiui.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 14:16:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 14:16:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768827.1179713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZA80-00017D-IF; Wed, 31 Jul 2024 14:16:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768827.1179713; Wed, 31 Jul 2024 14:16:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZA80-000176-F9; Wed, 31 Jul 2024 14:16:32 +0000
Received: by outflank-mailman (input) for mailman id 768827;
 Wed, 31 Jul 2024 14:16:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZA7z-00016w-5P; Wed, 31 Jul 2024 14:16:31 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZA7z-000594-1c; Wed, 31 Jul 2024 14:16:31 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZA7y-00013m-MB; Wed, 31 Jul 2024 14:16:30 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZA7y-0006V2-Lm; Wed, 31 Jul 2024 14:16:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=hidMlXK2fNY0jW6fAwowcqpfjG5I369i3BSgKjjtOIM=; b=Kpfl5pGoWJVm+D4CQ37WYkBoba
	2JmpXnxO6Mk3L8zy2sN7F2HWTK0PO8mmHDS3902ep3vhu67QCeZUlup/hpgmLIWuaQ2RqSk1vHCtq
	hypGa/n1Uj3gCmPescTmJIPn8wdRavQHqiOclpIYy/172g+QagWywlA5eI0pPeA89NOU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187079-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187079: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=02f7ecbbb2da356585f5c4df4a5e7aa64a6b985d
X-Osstest-Versions-That:
    ovmf=03f49e44096fc25c33f96a11b3da93abc93dad34
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 14:16:30 +0000

flight 187079 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187079/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 02f7ecbbb2da356585f5c4df4a5e7aa64a6b985d
baseline version:
 ovmf                 03f49e44096fc25c33f96a11b3da93abc93dad34

Last test of basis   187074  2024-07-31 09:13:16 Z    0 days
Testing same since   187079  2024-07-31 12:11:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ard Biesheuvel <ardb@kernel.org>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   03f49e4409..02f7ecbbb2  02f7ecbbb2da356585f5c4df4a5e7aa64a6b985d -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 14:19:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 14:19:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768842.1179724 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZAB2-0002Zh-2F; Wed, 31 Jul 2024 14:19:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768842.1179724; Wed, 31 Jul 2024 14: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 1sZAB1-0002Za-U9; Wed, 31 Jul 2024 14:19:39 +0000
Received: by outflank-mailman (input) for mailman id 768842;
 Wed, 31 Jul 2024 14: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=F/qb=O7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sZAB0-0002ZU-Bb
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 14:19:38 +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 eade39c2-4f47-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 16:19:37 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52f04c29588so10301237e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 07:19:37 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acadb9d9asm777498066b.219.2024.07.31.07.19.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 07: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: eade39c2-4f47-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722435576; x=1723040376; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ijyBmU4maUrCxHoQhqzhCbe9tU7fdMzzUQEWgOmkkew=;
        b=hs1D0avyhKZm9g6iVxhGBmvA2AosnBodnNKFaHQotsCeoyGh7aejXsoidLua8rXmWe
         +eX32vZuqyGH4nN0FzpRgC2pKx35EM98Y8mgK9LitH5GhGvWbvsTPRMC0r4azddK1vDh
         3/QETM0bS7JnXWkFS91D3MakYS3lh4/jBOg9g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722435576; x=1723040376;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ijyBmU4maUrCxHoQhqzhCbe9tU7fdMzzUQEWgOmkkew=;
        b=KEztMfh8QT4rbwEWwXbg4CxRo3LjyAjaYU7iOfDhESOwydBkTgykCLxy4aYSz1JWfD
         MchW2gnx23aUhaBUMtGV3utF8iPqwSmrWcwWg4u+EtNN8ei6ttitwPbPoYsRsGq6OkPq
         FWSc3etaqXoNte0HmlNXBLfYReaplRj4shuX++I95TzF7GIToVxi90iSLHhm85/8UIkZ
         v6WMU6Ao+h03cawjEQ7mvZvOboULRVTB56po9Dz+21iPR1WgbbSp7KYcj2JnvSP84IOI
         ObC8EY2R6xuOSpJinuprkCTKT/BgWJnCzEbsIAQA57vF1wA0JueOTkG32VqxLI9y0kCF
         vsHg==
X-Gm-Message-State: AOJu0YwTt/IPpgeFCN7IovNppJxanZcT9gN1qWSAOYDFWi4sFSs6mgTw
	K14vKowQqZyjh4mjvItdivFIBsr56IEzOI+dWt0Kp+4RCq3dq00JhAdBQLxgxXqdqUnX1HaHQZ2
	1
X-Google-Smtp-Source: AGHT+IGFdqdMXhw7v1J/I5gpbqpAMPq61s9CnEhfx/SKAF32NJS7dslXYaiRUGp5xhfoHyHtJzVb4Q==
X-Received: by 2002:ac2:58ed:0:b0:52e:a008:8f55 with SMTP id 2adb3069b0e04-5309b2c39c5mr8994722e87.41.1722435576448;
        Wed, 31 Jul 2024 07:19:36 -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>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH v2] xen/domain: Factor domlist_{insert,remove}() out of domain_{create,destroy}()
Date: Wed, 31 Jul 2024 15:19:33 +0100
Message-Id: <20240731141933.3488244-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240731120406.3429430-1-andrew.cooper3@citrix.com>
References: <20240731120406.3429430-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

These are opencoded linked list and hashtable manipulations.  Factor them out
into static inline helpers, and discuss the consequence for the domain.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>

v2:
 * Factor out the hash bucket calculation
 * Drop double initilaisation of pd in domlist_remove()
---
 xen/common/domain.c | 81 +++++++++++++++++++++++++++++++--------------
 1 file changed, 56 insertions(+), 25 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 256660473861..8d8f40ccb245 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -64,6 +64,58 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
 static struct domain *domain_hash[DOMAIN_HASH_SIZE];
 struct domain *domain_list;
 
+/*
+ * 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.
+ */
+static void domlist_insert(struct domain *d)
+{
+    struct domain **pd, *bucket;
+
+    spin_lock(&domlist_update_lock);
+
+    /* domain_list is maintained in domid order. */
+    for ( pd = &domain_list; *pd != NULL; pd = &(*pd)->next_in_list )
+        if ( (*pd)->domain_id > d->domain_id )
+            break;
+
+    bucket = domain_hash[DOMAIN_HASH(d->domain_id)];
+
+    d->next_in_list = *pd;
+    d->next_in_hashbucket = bucket;
+    rcu_assign_pointer(*pd, d);
+    rcu_assign_pointer(bucket, d);
+
+    spin_unlock(&domlist_update_lock);
+}
+
+/*
+ * Remove a domain from the domlist/hash.  This means the domain can no longer
+ * be looked up by domid, and therefore can no longer be the subject of
+ * *subsequent* hypercalls/etc.  In-progress hypercalls/etc can still operate
+ * on the domain.
+ */
+static void domlist_remove(struct domain *d)
+{
+    struct domain **pd;
+
+    spin_lock(&domlist_update_lock);
+
+    pd = &domain_list;
+    while ( *pd != d )
+        pd = &(*pd)->next_in_list;
+
+    rcu_assign_pointer(*pd, d->next_in_list);
+
+    pd = &domain_hash[DOMAIN_HASH(d->domain_id)];
+    while ( *pd != d )
+        pd = &(*pd)->next_in_hashbucket;
+
+    rcu_assign_pointer(*pd, d->next_in_hashbucket);
+
+    spin_unlock(&domlist_update_lock);
+}
+
 struct domain *hardware_domain __read_mostly;
 
 #ifdef CONFIG_LATE_HWDOM
@@ -589,7 +641,7 @@ struct domain *domain_create(domid_t domid,
                              struct xen_domctl_createdomain *config,
                              unsigned int flags)
 {
-    struct domain *d, **pd, *old_hwdom = NULL;
+    struct domain *d, *old_hwdom = NULL;
     enum { INIT_watchdog = 1u<<1,
            INIT_evtchn = 1u<<3, INIT_gnttab = 1u<<4, INIT_arch = 1u<<5 };
     int err, init_status = 0;
@@ -758,17 +810,7 @@ struct domain *domain_create(domid_t domid,
      * Must not fail beyond this point, as our caller doesn't know whether
      * the domain has been entered into domain_list or not.
      */
-
-    spin_lock(&domlist_update_lock);
-    pd = &domain_list; /* NB. domain_list maintained in order of domid. */
-    for ( pd = &domain_list; *pd != NULL; pd = &(*pd)->next_in_list )
-        if ( (*pd)->domain_id > d->domain_id )
-            break;
-    d->next_in_list = *pd;
-    d->next_in_hashbucket = domain_hash[DOMAIN_HASH(domid)];
-    rcu_assign_pointer(*pd, d);
-    rcu_assign_pointer(domain_hash[DOMAIN_HASH(domid)], d);
-    spin_unlock(&domlist_update_lock);
+    domlist_insert(d);
 
     memcpy(d->handle, config->handle, sizeof(d->handle));
 
@@ -1232,8 +1274,6 @@ static void cf_check complete_domain_destroy(struct rcu_head *head)
 /* Release resources belonging to task @p. */
 void domain_destroy(struct domain *d)
 {
-    struct domain **pd;
-
     BUG_ON(!d->is_dying);
 
     /* May be already destroyed, or get_domain() can race us. */
@@ -1242,17 +1282,8 @@ void domain_destroy(struct domain *d)
 
     TRACE_TIME(TRC_DOM0_DOM_REM, d->domain_id);
 
-    /* Delete from task list and task hashtable. */
-    spin_lock(&domlist_update_lock);
-    pd = &domain_list;
-    while ( *pd != d ) 
-        pd = &(*pd)->next_in_list;
-    rcu_assign_pointer(*pd, d->next_in_list);
-    pd = &domain_hash[DOMAIN_HASH(d->domain_id)];
-    while ( *pd != d ) 
-        pd = &(*pd)->next_in_hashbucket;
-    rcu_assign_pointer(*pd, d->next_in_hashbucket);
-    spin_unlock(&domlist_update_lock);
+    /* Remove from the domlist/hash. */
+    domlist_remove(d);
 
     /* Schedule RCU asynchronous completion of domain destroy. */
     call_rcu(&d->rcu, complete_domain_destroy);

base-commit: d2b91faec4d905acebbc80aaec4def825e2f7280
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 14:22:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 14:22:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768850.1179733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZADN-00040L-Dh; Wed, 31 Jul 2024 14:22:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768850.1179733; Wed, 31 Jul 2024 14:22: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 1sZADN-00040E-9i; Wed, 31 Jul 2024 14:22:05 +0000
Received: by outflank-mailman (input) for mailman id 768850;
 Wed, 31 Jul 2024 14:22: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=Q60C=O7=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1sZADL-000408-BW
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 14:22:03 +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 40c91def-4f48-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 16:22:01 +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 A65E121A76;
 Wed, 31 Jul 2024 14:22:00 +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 2D11113297;
 Wed, 31 Jul 2024 14:22:00 +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 IMCIBohIqmYUcgAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 31 Jul 2024 14:22: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: 40c91def-4f48-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1722435720; 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=7mEV6FBKDKSqt9G6779eXwv4cL6V1HZ0tJ+9CBxn9dI=;
	b=IjsCMi24La/xL2+ceJ7UkiXOBzTOXmiWACUeDV+DTKQhAoE089aFAqxalZ7R5HfBZuHDGz
	v3njT4eb0tjfkDYwi12niYSWl5UfNoZbioluOpx64yVmjUj+5O30YrWbZjPUgfy/SZxzG9
	dEuupQQqo0OE/YownjBXEatcy2RkYHM=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=IjsCMi24
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1722435720; 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=7mEV6FBKDKSqt9G6779eXwv4cL6V1HZ0tJ+9CBxn9dI=;
	b=IjsCMi24La/xL2+ceJ7UkiXOBzTOXmiWACUeDV+DTKQhAoE089aFAqxalZ7R5HfBZuHDGz
	v3njT4eb0tjfkDYwi12niYSWl5UfNoZbioluOpx64yVmjUj+5O30YrWbZjPUgfy/SZxzG9
	dEuupQQqo0OE/YownjBXEatcy2RkYHM=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH] tools/xenstored: switch stubdom live update to use file for state
Date: Wed, 31 Jul 2024 16:21:56 +0200
Message-ID: <20240731142156.10723-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [0.19 / 50.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];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	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)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FROM_HAS_DN(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	SPAMHAUS_XBL(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];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_TLS_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:dkim]
X-Spamd-Bar: /
X-Rspamd-Queue-Id: A65E121A76
X-Spam-Level: 
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: 0.19

With the introduction of 9pfs for Xenstore-stubdom it is now possible
to use a file for saving the state when doing live update.

This allows to move some environment specific actions back to the
common source file lu.c.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/lu.c        | 75 ++++++++++++++++++++++++++++++++++++-
 tools/xenstored/lu.h        | 19 +---------
 tools/xenstored/lu_daemon.c | 72 -----------------------------------
 tools/xenstored/lu_minios.c | 49 ------------------------
 4 files changed, 75 insertions(+), 140 deletions(-)

diff --git a/tools/xenstored/lu.c b/tools/xenstored/lu.c
index 2f41d10c95..bec2a84e10 100644
--- a/tools/xenstored/lu.c
+++ b/tools/xenstored/lu.c
@@ -11,6 +11,8 @@
 #include <stdlib.h>
 #include <syslog.h>
 #include <time.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
 
 #include "talloc.h"
 #include "core.h"
@@ -19,11 +21,18 @@
 #include "watch.h"
 
 #ifndef NO_LIVE_UPDATE
+
+struct lu_dump_state {
+	void *buf;
+	unsigned int size;
+	int fd;
+	char *filename;
+};
+
 struct live_update *lu_status;
 
 static int lu_destroy(void *data)
 {
-	lu_destroy_arch(data);
 	lu_status = NULL;
 
 	return 0;
@@ -70,6 +79,48 @@ bool lu_is_pending(void)
 	return lu_status != NULL;
 }
 
+static void lu_get_dump_state(struct lu_dump_state *state)
+{
+	struct stat statbuf;
+
+	state->size = 0;
+
+	state->filename = talloc_asprintf(NULL, "%s/state_dump",
+					  xenstore_rundir());
+	if (!state->filename)
+		barf("Allocation failure");
+
+	state->fd = open(state->filename, O_RDONLY);
+	if (state->fd < 0)
+		return;
+	if (fstat(state->fd, &statbuf) != 0)
+		goto out_close;
+	state->size = statbuf.st_size;
+
+	state->buf = mmap(NULL, state->size, PROT_READ, MAP_PRIVATE,
+			  state->fd, 0);
+	if (state->buf == MAP_FAILED) {
+		state->size = 0;
+		goto out_close;
+	}
+
+	return;
+
+ out_close:
+	close(state->fd);
+}
+
+static void lu_close_dump_state(struct lu_dump_state *state)
+{
+	assert(state->filename != NULL);
+
+	munmap(state->buf, state->size);
+	close(state->fd);
+
+	unlink(state->filename);
+	talloc_free(state->filename);
+}
+
 void lu_read_state(void)
 {
 	struct lu_dump_state state = {};
@@ -197,6 +248,28 @@ static const char *lu_reject_reason(const void *ctx)
 	return ret ? (const char *)ret : "Overlapping transactions";
 }
 
+static FILE *lu_dump_open(const void *ctx)
+{
+	char *filename;
+	int fd;
+
+	filename = talloc_asprintf(ctx, "%s/state_dump",
+				   xenstore_rundir());
+	if (!filename)
+		return NULL;
+
+	fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
+	if (fd < 0)
+		return NULL;
+
+	return fdopen(fd, "w");
+}
+
+static void lu_dump_close(FILE *fp)
+{
+	fclose(fp);
+}
+
 static const char *lu_dump_state(const void *ctx, struct connection *conn)
 {
 	FILE *fp;
diff --git a/tools/xenstored/lu.h b/tools/xenstored/lu.h
index ac3c572ca8..dacc9b6e42 100644
--- a/tools/xenstored/lu.h
+++ b/tools/xenstored/lu.h
@@ -18,12 +18,9 @@ struct live_update {
 	unsigned int kernel_size;
 	unsigned int kernel_off;
 
-	void *dump_state;
-	unsigned long dump_size;
-#else
-	char *filename;
 #endif
 
+	char *filename;
 	char *cmdline;
 
 	/* Start parameters. */
@@ -32,15 +29,6 @@ struct live_update {
 	time_t started_at;
 };
 
-struct lu_dump_state {
-	void *buf;
-	unsigned int size;
-#ifndef __MINIOS__
-	int fd;
-	char *filename;
-#endif
-};
-
 extern struct live_update *lu_status;
 
 struct connection *lu_get_connection(void);
@@ -54,15 +42,10 @@ int do_control_lu(const void *ctx, struct connection *conn, const char **vec,
 		  int num);
 
 /* Live update private interfaces. */
-void lu_get_dump_state(struct lu_dump_state *state);
-void lu_close_dump_state(struct lu_dump_state *state);
-FILE *lu_dump_open(const void *ctx);
-void lu_dump_close(FILE *fp);
 char *lu_exec(const void *ctx, int argc, char **argv);
 const char *lu_arch(const void *ctx, struct connection *conn, const char **vec,
 		    int num);
 const char *lu_begin(struct connection *conn);
-void lu_destroy_arch(void *data);
 #else
 static inline struct connection *lu_get_connection(void)
 {
diff --git a/tools/xenstored/lu_daemon.c b/tools/xenstored/lu_daemon.c
index 6351111ab0..6df6c80a2a 100644
--- a/tools/xenstored/lu_daemon.c
+++ b/tools/xenstored/lu_daemon.c
@@ -5,82 +5,14 @@
  * Copyright (C) 2022 Juergen Gross, SUSE LLC
  */
 
-#include <assert.h>
-#include <stdio.h>
 #include <syslog.h>
 #include <sys/stat.h>
-#include <sys/mman.h>
-#include <xen-tools/xenstore-common.h>
 
 #include "talloc.h"
 #include "core.h"
 #include "lu.h"
 
 #ifndef NO_LIVE_UPDATE
-void lu_get_dump_state(struct lu_dump_state *state)
-{
-	struct stat statbuf;
-
-	state->size = 0;
-
-	state->filename = talloc_asprintf(NULL, "%s/state_dump",
-					  xenstore_rundir());
-	if (!state->filename)
-		barf("Allocation failure");
-
-	state->fd = open(state->filename, O_RDONLY);
-	if (state->fd < 0)
-		return;
-	if (fstat(state->fd, &statbuf) != 0)
-		goto out_close;
-	state->size = statbuf.st_size;
-
-	state->buf = mmap(NULL, state->size, PROT_READ, MAP_PRIVATE,
-			  state->fd, 0);
-	if (state->buf == MAP_FAILED) {
-		state->size = 0;
-		goto out_close;
-	}
-
-	return;
-
- out_close:
-	close(state->fd);
-}
-
-void lu_close_dump_state(struct lu_dump_state *state)
-{
-	assert(state->filename != NULL);
-
-	munmap(state->buf, state->size);
-	close(state->fd);
-
-	unlink(state->filename);
-	talloc_free(state->filename);
-}
-
-FILE *lu_dump_open(const void *ctx)
-{
-	char *filename;
-	int fd;
-
-	filename = talloc_asprintf(ctx, "%s/state_dump",
-				   xenstore_rundir());
-	if (!filename)
-		return NULL;
-
-	fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
-	if (fd < 0)
-		return NULL;
-
-	return fdopen(fd, "w");
-}
-
-void lu_dump_close(FILE *fp)
-{
-	fclose(fp);
-}
-
 char *lu_exec(const void *ctx, int argc, char **argv)
 {
 	argv[0] = lu_status->filename;
@@ -89,10 +21,6 @@ char *lu_exec(const void *ctx, int argc, char **argv)
 	return "Error activating new binary.";
 }
 
-void lu_destroy_arch(void *data)
-{
-}
-
 static const char *lu_binary(const void *ctx, struct connection *conn,
 			     const char *filename)
 {
diff --git a/tools/xenstored/lu_minios.c b/tools/xenstored/lu_minios.c
index ede8b4dd47..b14a0b29d5 100644
--- a/tools/xenstored/lu_minios.c
+++ b/tools/xenstored/lu_minios.c
@@ -5,67 +5,18 @@
  * Copyright (C) 2022 Juergen Gross, SUSE LLC
  */
 
-#include <stdbool.h>
-#include <stdio.h>
 #include <stdlib.h>
 #include <syslog.h>
-#include <sys/mman.h>
-#include <xenctrl.h>
-#include <xen-tools/common-macros.h>
 
 #include "talloc.h"
 #include "lu.h"
 
-/* Mini-OS only knows about MAP_ANON. */
-#ifndef MAP_ANONYMOUS
-#define MAP_ANONYMOUS MAP_ANON
-#endif
-
 #ifndef NO_LIVE_UPDATE
-void lu_get_dump_state(struct lu_dump_state *state)
-{
-}
-
-void lu_close_dump_state(struct lu_dump_state *state)
-{
-}
-
-FILE *lu_dump_open(const void *ctx)
-{
-	lu_status->dump_size = ROUNDUP(talloc_total_size(NULL) * 2,
-				       XC_PAGE_SHIFT);
-	lu_status->dump_state = mmap(NULL, lu_status->dump_size,
-				     PROT_READ | PROT_WRITE,
-				     MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-	if (lu_status->dump_state == MAP_FAILED)
-		return NULL;
-
-	return fmemopen(lu_status->dump_state, lu_status->dump_size, "w");
-}
-
-void lu_dump_close(FILE *fp)
-{
-	size_t size;
-
-	size = ftell(fp);
-	size = ROUNDUP(size, XC_PAGE_SHIFT);
-	munmap(lu_status->dump_state + size, lu_status->dump_size - size);
-	lu_status->dump_size = size;
-
-	fclose(fp);
-}
-
 char *lu_exec(const void *ctx, int argc, char **argv)
 {
 	return "NYI";
 }
 
-void lu_destroy_arch(void *data)
-{
-	if (lu_status->dump_state)
-		munmap(lu_status->dump_state, lu_status->dump_size);
-}
-
 static const char *lu_binary_alloc(const void *ctx, struct connection *conn,
 				   unsigned long size)
 {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 14:28:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 14:28:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768861.1179742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZAJE-0004fa-1I; Wed, 31 Jul 2024 14:28:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768861.1179742; Wed, 31 Jul 2024 14:28: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 1sZAJD-0004fT-Up; Wed, 31 Jul 2024 14:28:07 +0000
Received: by outflank-mailman (input) for mailman id 768861;
 Wed, 31 Jul 2024 14:28: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZAJC-0004f0-Ke
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 14:28:06 +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 193b185c-4f49-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 16:28:04 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a7a8caef11fso655104866b.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 07:28: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
 a640c23a62f3a-a7acab52c95sm774594066b.76.2024.07.31.07.28.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 07:28: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: 193b185c-4f49-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722436084; x=1723040884; 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=vEJQNnvugDIBbizdVNG78IQrq1DoSEm7TicYeRhT4V8=;
        b=MJT0/j5Tu0xLjuhvZitcZH0P/zMZi4ze9Yrfz1nEaBDGq0qBkpxlaEEIHNDQsPS6gI
         mE3WW24XXaiF8nx6hspRHPOm6h884iAeo1pEKb1cva/7maLsU3VT2Hmd9K762Vj2hZGx
         FMoR5YAaOw1WfDtx5XudxirUCFgI6WDRmf8arPkURYm6vmaO3VH2A+6kTS+KAG/+7P+J
         8E9+JmmngLzoVS5aF1QuYXOtiGLV7vFl6nFEiXvNQBFMW5BkgLgfXITt/TQJ/BJcQN7u
         qAPMhn0od+0NDTIEDsSa6XdO7KNqZPngO6sb4ytu8KtPZreytzQajPrcWrEorXuk0QeW
         P8Xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722436084; x=1723040884;
        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=vEJQNnvugDIBbizdVNG78IQrq1DoSEm7TicYeRhT4V8=;
        b=h6CfCXaSI7bsCW1OK8oETvR555xRkuB3E0pJW83avOHhF2BI0M3zYD3Xx/e6o3MjOH
         /BbGNvLoP6Mqy7xnxg/Oil4W0z38x/e324r90LIhH3ZYI8XrKNtLjcDzvPu3Xhz84/HF
         TRV4hKMZFN4+0OYyWpidfbkv47kJpZNLeczy42xNNp3dZh5AjnSuHUQGB9wQmucuNmOe
         7ZaGzZt6FrnLI+W3iRR+vmG03NqpPAk30nAxL6bUoGYm/ZUnz0DxbpRT/J51gCKgD5gE
         LODExoUDULR2Kimys5ieoDvV76ZK3YEl8TspD30JHFefan+JWSlAx15V3iGZoBeXG8tY
         c5BQ==
X-Gm-Message-State: AOJu0YzTGeD1IUKvbPnu7wF4uicnuoLX1MDI8qYcqUiOJVuEN8dvpPc4
	R6+Flo92pPkbzQ+rVyuCSnOSfi/PUT7jPmM/rjKnpIzNBF7Kk+uq6mM9ZG8zO6O1yDp+25L66go
	=
X-Google-Smtp-Source: AGHT+IEeI/4nFxu5/v/TDoKV1giWwgu8vj21rwCEXgrVu6+Up32Hjx100MSq6hvtsyi3Ddwp9dju5g==
X-Received: by 2002:a17:907:940e:b0:a77:cc6f:e791 with SMTP id a640c23a62f3a-a7d400ad907mr972663766b.38.1722436084099;
        Wed, 31 Jul 2024 07:28:04 -0700 (PDT)
Message-ID: <121c2612-c255-4051-8d7c-315df6b3d348@suse.com>
Date: Wed, 31 Jul 2024 16:28:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] SUPPORT.md: split XSM from Flask
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>,
 Daniel Smith <dpsmith@apertussolutions.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

XSM is a generic framework, which in particular is also used by SILO.
With this it can't really be experimental: Arm mandates SILO for having
a security supported configuration.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Terminology adjustments. Stronger description.

--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -768,13 +768,20 @@ Compile time disabled for ARM by default
 
     Status, x86: Supported, not security supported
 
-### XSM & FLASK
+### XSM (Xen Security Module)
+
+    Status: Supported
+
+See below for use with FLASK and SILO.  The dummy implementation is covered here
+as well.
+
+### FLASK XSM Module
 
     Status: Experimental
 
 Compile time disabled by default.
 
-Also note that using XSM
+Also note that using FLASK
 to delegate various domain control hypercalls
 to particular other domains, rather than only permitting use by dom0,
 is also specifically excluded from security support for many hypercalls.
@@ -787,6 +794,10 @@ Please see XSA-77 for more details.
 The default policy includes FLASK labels and roles for a "typical" Xen-based system
 with dom0, driver domains, stub domains, domUs, and so on.
 
+### SILO XSM Module
+
+    Status: Supported
+
 ## Virtual Hardware, Hypervisor
 
 ### x86/Nested PV


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 14:59:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 14:59:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768874.1179758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZAnP-0003WA-E8; Wed, 31 Jul 2024 14:59:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768874.1179758; Wed, 31 Jul 2024 14: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 1sZAnP-0003W3-9Z; Wed, 31 Jul 2024 14:59:19 +0000
Received: by outflank-mailman (input) for mailman id 768874;
 Wed, 31 Jul 2024 14:59:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F/qb=O7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sZAnO-0003Vx-So
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 14:59:18 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7431da83-4f4d-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 16:59:15 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a7a8a4f21aeso770130566b.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 07:59:15 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acadb7facsm775073766b.195.2024.07.31.07.59.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 07: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: 7431da83-4f4d-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722437955; x=1723042755; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+vfztZMCpFUklOzh3u0/K/3jT1trQRjOaapgsV0NwWY=;
        b=dPthSfBtupFCbimyqYEvgcnj1eUNJ8hvU3WKMOmpvvvIVu0zvcF8hrIfwfCgvpXZ7n
         8LrXEQtbJJIkxX1nZQORhcypjvoibgr4WtW5/G8o2Q0l8UB9IBUiIInZYRphYiA/7SBY
         RdyW8IsExuSQQ/FqyUx7k4Ew6+uyWBgXvOKzA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722437955; x=1723042755;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+vfztZMCpFUklOzh3u0/K/3jT1trQRjOaapgsV0NwWY=;
        b=UnYWYPA9+Gx5th0eKwhDLmaZSX1nn1UA5QR6JPDbNPmWtQuvZczKtoFR9R/DKs5tl+
         zH1xejPnskSxDjWlQXcy1iJ9JgcWT2cQX1K/eiX28JlrtC2rqGUuY9f9DdN9FvzcBEwa
         vswCik+3y/8HXW1znyf7EY1p4eDH9y9Il7Z4ZvTj2lXUS8j94lyKFxFYvj/aEk1bDwPw
         UkHCL/mRCMaojH9BCPawXA0kQFJK0t2xBYhILg6QWRc8UvwytZ6C7zFRsTKz0DpEb+XO
         1yCLWFxgbwHTMmBFWTocB31lXxRy+O8ZqG58X9kUuX5WK55XessA5MwKBxQRdJ+YDdje
         HDxg==
X-Forwarded-Encrypted: i=1; AJvYcCXlSrf3nlKHaNansiVP1HraBg1OL9HxzvZjt0yv2By1XRM8YE2KkNXf0v41pT9oeLtjmXS1lSYrw3RBofTZk2OyedhOOnor4DnrGuvgYcc=
X-Gm-Message-State: AOJu0Ywjs9c6dR7TEp9CDLDHpAK4Oaia6dpsoQ+VMHHuZS8rfMlSWYhb
	pe6FabQmlyxvUdzic9fwqyd+JX2bilHE4RoKowt9PKyn6NjgY3M2wzbbjZGbWrA=
X-Google-Smtp-Source: AGHT+IFngYfPSIqHPEDsqZIYO0eCUS65ct9KBoAf5Scvx4ZzL6n1qwEgRKFMpe3EWreklSQBZO6LAQ==
X-Received: by 2002:a17:907:3182:b0:a7d:3ce8:131c with SMTP id a640c23a62f3a-a7d4015fd1amr1005401266b.62.1722437954765;
        Wed, 31 Jul 2024 07:59:14 -0700 (PDT)
Message-ID: <a1fc969a-aa91-4daa-92ff-931a2c5c8f37@citrix.com>
Date: Wed, 31 Jul 2024 15:59:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] SUPPORT.md: split XSM from Flask
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>, Daniel Smith <dpsmith@apertussolutions.com>
References: <121c2612-c255-4051-8d7c-315df6b3d348@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: <121c2612-c255-4051-8d7c-315df6b3d348@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31/07/2024 3:28 pm, Jan Beulich wrote:
> XSM is a generic framework, which in particular is also used by SILO.
> With this it can't really be experimental: Arm mandates SILO for having
> a security supported configuration.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v2: Terminology adjustments. Stronger description.
>
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -768,13 +768,20 @@ Compile time disabled for ARM by default
>  
>      Status, x86: Supported, not security supported
>  
> -### XSM & FLASK
> +### XSM (Xen Security Module)

I'd suggest using Modules (plural) here.

> +
> +    Status: Supported
> +
> +See below for use with FLASK and SILO.  The dummy implementation is covered here
> +as well.

I still think we want a one-line description of what "dummy" is.

"XSM is a security policy framework.  The dummy implementation is
covered by this statement, and implements a policy whereby dom0 is all
powerful.  See below for alternative modules (FLASK, SILO)."

?


> +
> +### FLASK XSM Module
>  
>      Status: Experimental
>  
>  Compile time disabled by default.
>  
> -Also note that using XSM
> +Also note that using FLASK
>  to delegate various domain control hypercalls
>  to particular other domains, rather than only permitting use by dom0,
>  is also specifically excluded from security support for many hypercalls.
> @@ -787,6 +794,10 @@ Please see XSA-77 for more details.
>  The default policy includes FLASK labels and roles for a "typical" Xen-based system
>  with dom0, driver domains, stub domains, domUs, and so on.
>  
> +### SILO XSM Module
> +
> +    Status: Supported

"SILO implements a policy whereby domUs can only communicate with dom0,
and not with each other"

?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 15:07:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 15:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768883.1179768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZAvC-0005lS-7a; Wed, 31 Jul 2024 15:07:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768883.1179768; Wed, 31 Jul 2024 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 1sZAvC-0005lL-3C; Wed, 31 Jul 2024 15:07:22 +0000
Received: by outflank-mailman (input) for mailman id 768883;
 Wed, 31 Jul 2024 15:07: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=8n5P=O7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1sZAvB-0005lF-AJ
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 15:07:21 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94c25375-4f4e-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 17:07:19 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2ee920b0781so64563391fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 08:07:19 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2f03cf30a53sm19367471fa.36.2024.07.31.08.07.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 08: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: 94c25375-4f4e-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1722438439; x=1723043239; 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=JFTPpkUXnHw26frZhG98sBSbGhl3tzyrEalE9FXQgcM=;
        b=e0RIF7KgnioOK9c4aL5lAX0YRTpUVIQGhGL/59cPvW5sPGxEJ6tkO45okJ7KofCri9
         v4eY2Wgij4bDYTgl1cYmQGzGw/9tkxmiJUe9tfJh1ySt3g8ctA1tWsiXFrvWfhj2QDen
         Fc0vify29zkUsWwwfTwuScQvi6pXVE+7gD2PKCnanWbfAOa0kGqWc8z+aoXLiDZWqRwh
         Zm9RkcR3I7rSIohnWnlRkGHWOlyETcQS+sr/kupfFJ68KT0UHlsmzroSAB2+yfgYcn1W
         lKdZzU3yAKhpBiO8XKSNG9MYWzq0ehRx6CTrlv38/Ru8P9pUOq3bUpoTysDyB1/rhtXa
         j7ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722438439; x=1723043239;
        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=JFTPpkUXnHw26frZhG98sBSbGhl3tzyrEalE9FXQgcM=;
        b=MmdqyX2dFSPf3ciVNtuHEtXO/CSVqysD9jzHKng5WBoaNK0YMtZaC8dr9g5tjhHMTY
         Dgrff4S8cv9LArG6kWXiYOcZVe5wsRD7C5KkcD1HCRYbHluE+mMQmSNRHwyk6htUOJns
         OpSiFVPxz7VfJT82x940XiXSaa88hCdkkoJYrIgIGlj8aSSJte8Wkzc9/x/eZtEwbrv8
         eP9IBOV2bjc7AaClUY4vnUCwUb1yqgKcQlt5ZGO1ME8V0TrZaah+flU7VB74+BADUeCf
         nTGWLXYm00bO5QSYMG5KAvcEPqJz7zb2X6CCe/0e/L0Cc4tHjhSLfjPQy/FfkKcTdHBu
         Uxdg==
X-Gm-Message-State: AOJu0YwroWvya9y/4x0XeFK07goe9J1+x4HvyHqixZ8cqrSHwGpPIoID
	XgrXANz4ElunpCHPlBAQ4zlGCBQvdoPrAW+wXjMh3s3+hrRBPHmPrg1Egg==
X-Google-Smtp-Source: AGHT+IHT0nkuXrf3hGWqeRSHxDcD4LzIvu4eolwxHG/7xM/qFi6MVc3u0jxtz8BGGksHY7MQ2gVGtA==
X-Received: by 2002:a2e:91d4:0:b0:2ef:1f68:eae1 with SMTP id 38308e7fff4ca-2f12ee077famr97272921fa.17.1722438438207;
        Wed, 31 Jul 2024 08:07:18 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/riscv: fix build issue for bullseye-riscv64 container
Date: Wed, 31 Jul 2024 17:07:08 +0200
Message-ID: <20240731150708.122778-1-oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Address compilation error on bullseye-riscv64 container:
   undefined reference to `guest_physmap_remove_page`

Since there is no current implementation of `guest_physmap_remove_page()`,
a stub function has been added.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
 xen/arch/riscv/stubs.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index b67d99729f..3285d18899 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -381,6 +381,12 @@ 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)
+{
+    BUG_ON("unimplemented");
+}
+
 /* delay.c */
 
 void udelay(unsigned long usecs)
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 15:15:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 15:15:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768892.1179776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZB2X-0007Fq-TA; Wed, 31 Jul 2024 15:14:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768892.1179776; Wed, 31 Jul 2024 15:14:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZB2X-0007Fj-Qc; Wed, 31 Jul 2024 15:14:57 +0000
Received: by outflank-mailman (input) for mailman id 768892;
 Wed, 31 Jul 2024 15: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZB2W-0007FS-6G
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 15:14:56 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4a849a9-4f4f-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 17:14:55 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2eecd2c6432so89582661fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 08:14: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-a7acad9026fsm793433866b.145.2024.07.31.08.14.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 08:14: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: a4a849a9-4f4f-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722438895; x=1723043695; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Bz7HXKxvOUNkM7HKYp9Io9e7HY+vg8LQ0/8P7swjnBA=;
        b=f27KhloMSK8mVSjLC0T1LKPS5ib2LHGpXhoM9ejigzn3FGFMhhf84n28hrHRx/bJmm
         AqHeOknsiRu0sAbHKzlmluzbidpktm0WEEQsTtNz9Wjt85yTtNdQbLzFR9iivxxHePeT
         hql8QmtFtJemeulyfODolGD25IdZZOyky25VevgZXB/ZPpRrFORp4kveE5o2HHM0qHQF
         dmmeeKGdZR4YEtwCgC9cOt4eygvgtMMMgjpmElOkKB/QdUhwvAVbRhWwJ9pUewXqtlu8
         sFRfkahp0/ZzRkdDH0QccblEAFngi8MqIVE8F3pTzdNw0cIC/H2K6/LUWm+t1+n1waYt
         vyew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722438895; x=1723043695;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bz7HXKxvOUNkM7HKYp9Io9e7HY+vg8LQ0/8P7swjnBA=;
        b=xNJV8dmodFNerGmMWQoWLtpu6riedoSB7TzB9SlQWNsM45RrVy/CSPe0hGk8N1gRxy
         DuCQDI0QO7GonSoU5hTeRAZQqrzEsrZjah9qJJ6yNZGJf/caQUpTiqrsSRdNrqP4MaFj
         Yd9l7M1xtFfa5SEY40IKg6P3q97aBqznsofnhxKzpeSGHWwhU88WQrsQ9y6mMZQK9LYm
         JCRkv3JN+TR/LMqEUK8yGkiO8N8reGXwolQktBTiErANNASzfa6CmaWT08OxgX3prbTV
         6shRT00urSxq4v510NqNYeYiu1PVszAH7KRXGQBOZBxmNVQMNJnKrYqN2tFV697IVQzv
         TIYg==
X-Forwarded-Encrypted: i=1; AJvYcCW+HB+OFep6YPsmn0pP1ZObbSxORzI9GExJX7+oQaRvVwAURXdICbxVurKRKOuqpqO4d8OajNK9HI8KMCE1msEhZs7cdTa0So98Oad6UXg=
X-Gm-Message-State: AOJu0YyK3jEULNiSIia21eCgleA9QEwX73OoK5S+wB5DCjs0uOn3hjOB
	YnDUkPc4iuceroIPDEV/rUC31KXDaXrbABdsDH8+5GHfmCkusubaUWzELW70Nw==
X-Google-Smtp-Source: AGHT+IFWpzKoJDxLHUMe1ZUgd2B0+1UXwjaGZmJjDoDrssDgIlZ5/o7l9HCclftUQZ3a4qunZNoxzw==
X-Received: by 2002:a2e:3a17:0:b0:2ef:22ef:a24a with SMTP id 38308e7fff4ca-2f12ee57c24mr117902251fa.31.1722438894745;
        Wed, 31 Jul 2024 08:14:54 -0700 (PDT)
Message-ID: <36cee24e-e9c3-4a22-a2f7-cec6c3ffcf74@suse.com>
Date: Wed, 31 Jul 2024 17:14:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] SUPPORT.md: split XSM from Flask
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Daniel Smith <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <121c2612-c255-4051-8d7c-315df6b3d348@suse.com>
 <a1fc969a-aa91-4daa-92ff-931a2c5c8f37@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: <a1fc969a-aa91-4daa-92ff-931a2c5c8f37@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 16:59, Andrew Cooper wrote:
> On 31/07/2024 3:28 pm, Jan Beulich wrote:
>> XSM is a generic framework, which in particular is also used by SILO.
>> With this it can't really be experimental: Arm mandates SILO for having
>> a security supported configuration.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> v2: Terminology adjustments. Stronger description.
>>
>> --- a/SUPPORT.md
>> +++ b/SUPPORT.md
>> @@ -768,13 +768,20 @@ Compile time disabled for ARM by default
>>  
>>      Status, x86: Supported, not security supported
>>  
>> -### XSM & FLASK
>> +### XSM (Xen Security Module)
> 
> I'd suggest using Modules (plural) here.

But XSM itself is just one thing?

>> +
>> +    Status: Supported
>> +
>> +See below for use with FLASK and SILO.  The dummy implementation is covered here
>> +as well.
> 
> I still think we want a one-line description of what "dummy" is.
> 
> "XSM is a security policy framework.  The dummy implementation is
> covered by this statement, and implements a policy whereby dom0 is all
> powerful.  See below for alternative modules (FLASK, SILO)."
> 
> ?

Hmm, can do. Looking around in some cases we indeed have such explanations.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 15:19:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 15:19:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768902.1179787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZB7N-0007qX-Ef; Wed, 31 Jul 2024 15:19:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768902.1179787; Wed, 31 Jul 2024 15: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 1sZB7N-0007qQ-Bb; Wed, 31 Jul 2024 15:19:57 +0000
Received: by outflank-mailman (input) for mailman id 768902;
 Wed, 31 Jul 2024 15:19: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZB7M-0007qK-1F
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 15:19:56 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 572fe8bb-4f50-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 17:19:55 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-52efbb55d24so9021789e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 08:19: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-a7acadb82e7sm780166366b.208.2024.07.31.08.19.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 08:19: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: 572fe8bb-4f50-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722439194; x=1723043994; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/1lUWIL+edaBpysgiGZ67saAxLjMFNlM7sI0uabuQZE=;
        b=Vyle27g5Q0dxY17YnrRM9+IusPdqjtaqsWM7T3mwNAfNC9/yVYiWz8Q69FoSlQm518
         kPuH0coQntitHGmCntefg0Qjju6aAlPjDMgNdgW+DeP18mtHeHSpMc+b6lARdYuzcuyl
         jiWEM2IK0Qqiwq6NcQHN3axGh92e2o9AYyhkoArJC3vsUIv6s1BoLvr+RoT67brdbh+t
         HEmbF6AqdwIRMWeg8Ss1yK2bKEruokv9dfV41Kf9joReWasV8H8gT1P0WoT2/lsL9G6T
         inPNJnyuJ9THOsklsE8ML/Z9kI+DF/44V5bzUtdBd0A3+LtIRodlppgxIBUFGU7yGxgU
         BrCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722439194; x=1723043994;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/1lUWIL+edaBpysgiGZ67saAxLjMFNlM7sI0uabuQZE=;
        b=uR/famtgzJ/Co4iAOWEkRM0GmXmXHmbcu07OZ1fftNS+sLQoCgEjcGEzm8PT2sSj0x
         iTDBKj/T1Cu5JMBcB/WruQJ2ou33+Xn5djOwCFzhZr75Y4Gywb1lYVgm7Jh7/jQG/InT
         jvTuw1IOAo0yyfBZKPXJqQWQgPRUzOIq8ay6TxrIqB1YeHyGSez4XS8XHyyAFkQn7uGC
         XgMztdxqCJUZ/YqQmnWSSa3A2fwsqM1DXTfpwxX4iQpzhYkH2GCkSr4L5YIYff7QjBYV
         hA7fgP3CW0I+EZFd6aHwhXtYvPP2t7XbNTFRND7gT2iVAJ8fgpySDZNL4j4pScZg+zqW
         Zq0A==
X-Forwarded-Encrypted: i=1; AJvYcCU+Fz0srnYVvAAW7CF0puenijunCCOjSW63ggbQzFurvbJPUlXscbjwGtcGJbDl5IUFoc60hFCDtS3pKSgVF6kAw3LIKtJAD2Q9OYmCIC0=
X-Gm-Message-State: AOJu0Yyo5I0M5htdtHXnjIUO6MpA0HWGTuUx2cBNUwn31OmRIGs+9ltX
	gxJerTIjtOXp4Lwg2W+Hw+ZMyz+x1gBchDGslApip++wkBWJ5T/KwHmDRIR5Vw==
X-Google-Smtp-Source: AGHT+IGOKk755PdBc4BcYq/N9PHafIjTiVTY9Wg/UUw0FYaIsSfoAH/g+7mJbUj+ktY4I6atSnKSvA==
X-Received: by 2002:a05:6512:1d2:b0:52e:d0f8:2d43 with SMTP id 2adb3069b0e04-5309b27a1demr11437457e87.17.1722439194496;
        Wed, 31 Jul 2024 08:19:54 -0700 (PDT)
Message-ID: <575d4796-deea-45b1-a7a2-94e662408fbf@suse.com>
Date: Wed, 31 Jul 2024 17:19:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/riscv: fix build issue for bullseye-riscv64 container
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20240731150708.122778-1-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: <20240731150708.122778-1-oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2024 17:07, Oleksii Kurochko wrote:
> Address compilation error on bullseye-riscv64 container:
>    undefined reference to `guest_physmap_remove_page`
> 
> Since there is no current implementation of `guest_physmap_remove_page()`,
> a stub function has been added.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

I'll commit this with the description unchanged, just the tags switched
around. But really I think sooner or later I'm simply not going to
comment on patches anymore when you repeat the same patterns over and
over again, despite having been given clear guidelines on how to write
patch descriptions (and there are ample of good examples to pick from
the list).

I'm sorry for the rant, Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 15:38:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 15:38:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768910.1179801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZBOt-0003Rk-Sg; Wed, 31 Jul 2024 15:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768910.1179801; Wed, 31 Jul 2024 15:38:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZBOt-0003Rd-Q3; Wed, 31 Jul 2024 15:38:03 +0000
Received: by outflank-mailman (input) for mailman id 768910;
 Wed, 31 Jul 2024 15:38:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F/qb=O7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sZBOs-0003RX-6p
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 15:38:02 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de7c65fb-4f52-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 17:38:01 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-52f025ab3a7so9048721e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 08:38:01 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab4de64sm777402766b.48.2024.07.31.08.37.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 08:37: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: de7c65fb-4f52-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722440280; x=1723045080; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SBfzS50dKd+VmOO0lahQTkjnzdhJcM7TL/xugaKDhVs=;
        b=C8h9L5E/2aaJG9Zc5CdlUrXLETLEVxnaRV4dfk3Ruu7k1PuhD6Lsrspv+yiAdWePY7
         cEzl8hHy5u3K3Z6LNu/vZbow6h1kSy9OEKnV3mltf6fgok9VIaQ31lt3l0doEwNo7NCa
         Cl52mb2lxE5rYOTeWA+Vj9r8rmlTzDoEhJdQI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722440280; x=1723045080;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SBfzS50dKd+VmOO0lahQTkjnzdhJcM7TL/xugaKDhVs=;
        b=jlAUQr9xiFofasNF1Vzx1DT+aJMWswYtMkikO+7aoLJCDNWyQbeoII2TczkKfjLzRb
         gw1WgbySrgPPZwQvBJSrhA7YrOP0Uq2FD089DlzfyrKdGi4S0xQPzbruipYHBSCCvWGJ
         YOHBFmuk9sMRbjbKYp1+zs2f44Rg5oqsRvcxihg2RL1mGjpkqfa/lmn6uWvTKE4T1pyM
         34SxM6i3msvHz8rX3RoFR5TxbYy9ug9Sh5y6zNMILYUQDE6OoaCVMovr4oxJ0IGgeXpw
         zmV1VFAKFnV5c3Tl2jB6ZypX39P2POBc70qQ9XP27bvzkRFBkc4zoqiGy5fqOpssUoXA
         xV8Q==
X-Forwarded-Encrypted: i=1; AJvYcCWpjEVMx5SMfULV6qo7uN8TBQ4wIr1Gjb724qBY4kor7TVcaUlVmCh0evWJl1TDH//qSSIpSx8B/abQ2UV2hZqYlDVUJInX1viQqkOI1QA=
X-Gm-Message-State: AOJu0YypFEtQk/VWnWYZ1eV5XZ3ux8LvK2oWhPB1tkoGOggC/CseGaIb
	ar/tu4n/BUctmMYi7cBpzwvp/1Z6YMj2Ha9W8B++QbCSkbFFiGXQQ0WhUk+9AW8=
X-Google-Smtp-Source: AGHT+IHHhZoIEmJSaHClje9opgeTsi7ATxS4RI67k6k2apfn6M0HzH3pITZgnDVxhZ5Si7dcCgigCA==
X-Received: by 2002:a05:6512:108b:b0:52c:8a39:83d7 with SMTP id 2adb3069b0e04-5309b2e04e5mr11317840e87.52.1722440280154;
        Wed, 31 Jul 2024 08:38:00 -0700 (PDT)
Message-ID: <46b16a0d-b6f3-4a1c-aae6-c42d7e365e6f@citrix.com>
Date: Wed, 31 Jul 2024 16:37:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/riscv: fix build issue for bullseye-riscv64 container
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <20240731150708.122778-1-oleksii.kurochko@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240731150708.122778-1-oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31/07/2024 4:07 pm, Oleksii Kurochko wrote:
> Address compilation error on bullseye-riscv64 container:
>    undefined reference to `guest_physmap_remove_page`
>
> Since there is no current implementation of `guest_physmap_remove_page()`,
> a stub function has been added.
>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>

Usually we do Fixes/Reported-by tags first.  (We try to do tags in
chronological/logical order).

I've confirmed this fixes the issue, so Acked-by: Andrew Cooper
<andrew.cooper3@citrix.com>

Having tried a different approach,

user@3c393ef3b4c0:/build/xen$ make
  UPD     include/xen/compile.h
Xen 4.20-unstable
make[1]: Nothing to be done for 'include'.
make[1]: 'arch/riscv/include/asm/asm-offsets.h' is up to date.
  CC      common/version.o
  LD      common/built_in.o
  CC      arch/riscv/setup.o
  LD      arch/riscv/built_in.o
  LD      prelink.o
  LDS     arch/riscv/xen.lds
riscv64-linux-gnu-ld      -T arch/riscv/xen.lds -N prelink.o \
    ./common/symbols-dummy.o -o ./.xen-syms.0
riscv64-linux-gnu-ld: prelink.o: in function `register_keyhandler':
/build/xen/common/keyhandler.c:106: undefined reference to
`guest_physmap_remove_page'
riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol
`guest_physmap_remove_page' isn't defined
riscv64-linux-gnu-ld: final link failed: bad value
make[2]: *** [arch/riscv/Makefile:15: xen-syms] Error 1
make[1]: *** [build.mk:90: xen] Error 2
make: *** [Makefile:610: xen] Error 2
user@3c393ef3b4c0:/build/xen$ find . -name \*.o | while read F; do nm $F
| grep guest_physmap_remove_page && echo $F; done
                 U guest_physmap_remove_page
./common/memory.o
                 U guest_physmap_remove_page
./common/built_in.o
                 U guest_physmap_remove_page
./prelink.o


despite the linker fingering keyhandler.c (very likely a toolchain bug),
it's memory.o which has the undefined reference.

Looking at memory.i, there are calls in guest_remove_page(),
memory_exchange(), and do_memory_op(), and no obvious way to DCE any of
them.

However, with bookworm, while memory.i does still have the same calls,
the resulting object file has no undefined references, so clearly
something has DCE'd them.


Looking at both memory.o's, bookwork really does have no reference,
while bullseye's reference is in memory_exchange().

So I guess there is something complicated there which bookworm can DCE
but bullseye can't.

Either way, this is the right fix, so lets not worry any more.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 15:44:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 15:44:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768919.1179811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZBUk-0005Vt-Hu; Wed, 31 Jul 2024 15:44:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768919.1179811; Wed, 31 Jul 2024 15:44:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZBUk-0005Vm-FI; Wed, 31 Jul 2024 15:44:06 +0000
Received: by outflank-mailman (input) for mailman id 768919;
 Wed, 31 Jul 2024 15:44: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZBUj-0005Vg-7u
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 15:44:05 +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 b6d7db63-4f53-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 17:44:04 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a728f74c23dso783832966b.1
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 08:44: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
 a640c23a62f3a-a7acad4148fsm788933166b.121.2024.07.31.08.44.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 08:44: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: b6d7db63-4f53-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722440643; x=1723045443; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LgTIFZOHRUbrMCKnO5D/cbVRsie+VUmcQ4aJx/ncCMg=;
        b=PFQ4EuQFAcZsw8If9H3aDVjsZT+QuhQakw2sX1b05h4B9XopafykMLvXC5ZqyUR+3C
         vBuMOcWyYhzV3Lf5NUFMHfnFw1BzPauePE4pYqSo2y4lXhqVa6ptj5bhMRiCwh34uGKq
         HO15aI5Cps0zqOGdQ24hXuPMGuaYN0hEkeq3JKMYusR/YUneX5JQa5ixdcou3n8gCNV+
         bH1xNm6Fv5ONaKaWf2C2yfLOwFTG2vNyF5Y3/+tBMR/YUO+kN/ccHxeQuhI31GMetfBZ
         YhFEGh0+3FE7Nc0v7MO9YIqoDG4tgnAvNLnejhh1s2RcexYXEQm5VTNUnw9yml3GuBtB
         u2fA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722440643; x=1723045443;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LgTIFZOHRUbrMCKnO5D/cbVRsie+VUmcQ4aJx/ncCMg=;
        b=k1cFGBZYvf8uYy6J1YAdlAP1SOJC1Og8XuxrHhkqt5k4bFP21vMbLlN4C/nmlhniu5
         DreEUnjI503XHinZjoC4KMCnuS0XDZDvrqiuqbtPr6RFdK/ER3bMiuFlc0JTo8ygoFHA
         MeCiXB38GfzJZif1bj8YLW1rUxq87vRAgvNrZAFrAtRzH03z+mbbOZbU8pxGk73HQjNf
         eiz8c6RJ/xT3yESfD/w1p130olymDR575PAY+kV/GEp/1VDMTKYLVTaBgb91Y3nBMJhS
         SjSX0KlgPGGxjHnOOlsRGyx1rzmPrmQQoiGcAnuhtKiDSUCwoJKKZqfr/+KnTN/0KWIZ
         Bgxw==
X-Forwarded-Encrypted: i=1; AJvYcCV+KL0FXVTB+br0LZE5ntKPz70iI2FKklDa1V7sQyfQNExQdOiFqQ5vRtYprGxkDp973p46O0MJcTjaiYDRal3nWQWyfVE2shSYbUdYLzA=
X-Gm-Message-State: AOJu0YwezmRhL78nioTIN1qMSdMzA9gJHAkT5NHwEMl7lBJRmv75tTWF
	lDra4vIxY04Mh9f6CV0UcegTxianUI2FehDhSvlB3TcmQ8rUigiJ7vLPInlFfQ==
X-Google-Smtp-Source: AGHT+IE9lStrC5aFJrk4ikT9NskQIGOp+AKHvA4j91J64OnLRP7JRcrHfSaXGUSYTkByQZ+LCcgZCA==
X-Received: by 2002:a17:907:3f1e:b0:a7a:be06:d8dc with SMTP id a640c23a62f3a-a7d40165fcemr1215930366b.48.1722440643593;
        Wed, 31 Jul 2024 08:44:03 -0700 (PDT)
Message-ID: <01ba1e6c-f609-47ef-9fb0-8bf77a6cb68b@suse.com>
Date: Wed, 31 Jul 2024 17:44:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/riscv: fix build issue for bullseye-riscv64 container
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <20240731150708.122778-1-oleksii.kurochko@gmail.com>
 <46b16a0d-b6f3-4a1c-aae6-c42d7e365e6f@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: <46b16a0d-b6f3-4a1c-aae6-c42d7e365e6f@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 17:37, Andrew Cooper wrote:
> On 31/07/2024 4:07 pm, Oleksii Kurochko wrote:
>> Address compilation error on bullseye-riscv64 container:
>>    undefined reference to `guest_physmap_remove_page`
>>
>> Since there is no current implementation of `guest_physmap_remove_page()`,
>> a stub function has been added.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> Usually we do Fixes/Reported-by tags first.  (We try to do tags in
> chronological/logical order).
> 
> I've confirmed this fixes the issue, so Acked-by: Andrew Cooper
> <andrew.cooper3@citrix.com>
> 
> Having tried a different approach,
> 
> user@3c393ef3b4c0:/build/xen$ make
>   UPD     include/xen/compile.h
> Xen 4.20-unstable
> make[1]: Nothing to be done for 'include'.
> make[1]: 'arch/riscv/include/asm/asm-offsets.h' is up to date.
>   CC      common/version.o
>   LD      common/built_in.o
>   CC      arch/riscv/setup.o
>   LD      arch/riscv/built_in.o
>   LD      prelink.o
>   LDS     arch/riscv/xen.lds
> riscv64-linux-gnu-ld      -T arch/riscv/xen.lds -N prelink.o \
>     ./common/symbols-dummy.o -o ./.xen-syms.0
> riscv64-linux-gnu-ld: prelink.o: in function `register_keyhandler':
> /build/xen/common/keyhandler.c:106: undefined reference to
> `guest_physmap_remove_page'
> riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol
> `guest_physmap_remove_page' isn't defined
> riscv64-linux-gnu-ld: final link failed: bad value
> make[2]: *** [arch/riscv/Makefile:15: xen-syms] Error 1
> make[1]: *** [build.mk:90: xen] Error 2
> make: *** [Makefile:610: xen] Error 2
> user@3c393ef3b4c0:/build/xen$ find . -name \*.o | while read F; do nm $F
> | grep guest_physmap_remove_page && echo $F; done
>                  U guest_physmap_remove_page
> ./common/memory.o
>                  U guest_physmap_remove_page
> ./common/built_in.o
>                  U guest_physmap_remove_page
> ./prelink.o
> 
> 
> despite the linker fingering keyhandler.c (very likely a toolchain bug),
> it's memory.o which has the undefined reference.
> 
> Looking at memory.i, there are calls in guest_remove_page(),
> memory_exchange(), and do_memory_op(), and no obvious way to DCE any of
> them.
> 
> However, with bookworm, while memory.i does still have the same calls,
> the resulting object file has no undefined references, so clearly
> something has DCE'd them.

The many stubs that have just BUG() in them result in a lot of DCE
according to my checking (many functions or basic blocks end - somewhat
confusingly - in a function call leading to such a stub). But apparently
not enough with the older compiler version.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 15:56:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 15:56:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768927.1179821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZBgI-0007jV-IL; Wed, 31 Jul 2024 15:56:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768927.1179821; Wed, 31 Jul 2024 15: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 1sZBgI-0007jO-FS; Wed, 31 Jul 2024 15:56:02 +0000
Received: by outflank-mailman (input) for mailman id 768927;
 Wed, 31 Jul 2024 15: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=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZBgH-0007jI-0W
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 15:56:01 +0000
Received: from mail-ot1-x332.google.com (mail-ot1-x332.google.com
 [2607:f8b0:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6068ef03-4f55-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 17:55:58 +0200 (CEST)
Received: by mail-ot1-x332.google.com with SMTP id
 46e09a7af769-7093472356dso3428842a34.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 08:55:58 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6bb3fa97575sm74868576d6.102.2024.07.31.08.55.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 08:55: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: 6068ef03-4f55-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722441357; x=1723046157; 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=vULipYFs0hyxWvwRw3dkVbCvPcWrYDc4nf6yTLUzABk=;
        b=ZsMthHxQq/gBcYFpq6R/4Zmy93G178fM8HrXHehsohCFV30RZpouInmjaGkqAZCfp+
         76IQK/t1aYuvN6ph+d9d6e2tTYRmXs/A8lEfQp/VDr0ZiwbdlDsxwjkH3i4R6SVP1jS+
         k6cdOU/EEwL78yKkYm7+Pex73B//YFA8m3zq8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722441357; x=1723046157;
        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=vULipYFs0hyxWvwRw3dkVbCvPcWrYDc4nf6yTLUzABk=;
        b=VmUX6k4Od7g8c8TgVfDJ68L8hiTyxBi4yIl8BW76YLIGO+gMyciDhOzGdE4RP/tcAi
         GhKC+ZCgqZIa4OP6buVdvQ+KLL1h2nERiJxJTY+B1XrYkgL1a7pjwzIg2gc+/UrA8zAH
         e54zabUFPWtXWkgb/lSfQDGmGMK3LZRS1z8qUMso/E5CJyszuiUJJCYVbcW88rBBW4UK
         vc5fs7lUnQbKhMqISzBTtuPJAsZk3cR2eXwq1kOktFLivTIF9feUzUVGRmjzKrMY+Grk
         BYO/JcRJ+CQzfHNltybs/qGcOgGb6zRYCdZep8UdoBYDU7RF2QsEq8CM3SzqYOIlbwvG
         Qc9Q==
X-Gm-Message-State: AOJu0YxQZHXkvT0vxIHGaDy0Dm2Z934JJXULBD1Hhzmpe+6Dl5LjSOof
	BaKEvAPeHdrYC8IFUMTkbqWTQRNOx6qdAJUVHwQaypFyKdCohJk3IrY5A9IvAxg=
X-Google-Smtp-Source: AGHT+IEIBWHnUV1G1fXevRhxALfU58UH0I1lQ01udtQ222LLYJs3uq7e0Blu39X3CJJ3MxV1r+yqkA==
X-Received: by 2002:a05:6358:724c:b0:1ac:549b:ce02 with SMTP id e5c5f4694b2df-1adce48337fmr1892492755d.28.1722441357153;
        Wed, 31 Jul 2024 08:55:57 -0700 (PDT)
Date: Wed, 31 Jul 2024 17:55:53 +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, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Juergen Gross <jgross@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Huang Rui <ray.huang@amd.com>
Subject: Re: [XEN PATCH v12 1/7] xen/pci: Add hypercall to support reset of
 pcidev
Message-ID: <ZqpeiWhuqPXiTeRZ@macbook>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-2-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20240708114124.407797-2-Jiqian.Chen@amd.com>

On Mon, Jul 08, 2024 at 07:41:18PM +0800, Jiqian Chen wrote:
> When a device has been reset on dom0 side, the Xen hypervisor
> doesn't get notification, so the cached state in vpci is all
> out of date compare with the real device state.
> 
> To solve that problem, add a new hypercall to support the reset
> of pcidev and clear the vpci state of device. So that once the
> state of device is reset on dom0 side, dom0 can call this
> hypercall to notify hypervisor.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks, just a couple of nits.

This is missing a changelog between versions, and I haven't been
following all the versions, so some of my questions might have been
answered in previous revisions.

> ---
>  xen/arch/x86/hvm/hypercall.c |  1 +
>  xen/drivers/pci/physdev.c    | 52 ++++++++++++++++++++++++++++++++++++
>  xen/drivers/vpci/vpci.c      | 10 +++++++
>  xen/include/public/physdev.h | 16 +++++++++++
>  xen/include/xen/vpci.h       |  8 ++++++
>  5 files changed, 87 insertions(+)
> 
> diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
> index 7fb3136f0c7c..0fab670a4871 100644
> --- a/xen/arch/x86/hvm/hypercall.c
> +++ b/xen/arch/x86/hvm/hypercall.c
> @@ -83,6 +83,7 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>      case PHYSDEVOP_pci_mmcfg_reserved:
>      case PHYSDEVOP_pci_device_add:
>      case PHYSDEVOP_pci_device_remove:
> +    case PHYSDEVOP_pci_device_state_reset:
>      case PHYSDEVOP_dbgp_op:
>          if ( !is_hardware_domain(currd) )
>              return -ENOSYS;
> diff --git a/xen/drivers/pci/physdev.c b/xen/drivers/pci/physdev.c
> index 42db3e6d133c..c0f47945d955 100644
> --- a/xen/drivers/pci/physdev.c
> +++ b/xen/drivers/pci/physdev.c
> @@ -2,6 +2,7 @@
>  #include <xen/guest_access.h>
>  #include <xen/hypercall.h>
>  #include <xen/init.h>
> +#include <xen/vpci.h>
>  
>  #ifndef COMPAT
>  typedef long ret_t;
> @@ -67,6 +68,57 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          break;
>      }
>  
> +    case PHYSDEVOP_pci_device_state_reset:
> +    {
> +        struct pci_device_state_reset dev_reset;
> +        struct pci_dev *pdev;
> +        pci_sbdf_t sbdf;
> +
> +        ret = -EOPNOTSUPP;
> +        if ( !is_pci_passthrough_enabled() )
> +            break;
> +
> +        ret = -EFAULT;
> +        if ( copy_from_guest(&dev_reset, arg, 1) != 0 )
> +            break;
> +
> +        sbdf = PCI_SBDF(dev_reset.dev.seg,
> +                        dev_reset.dev.bus,
> +                        dev_reset.dev.devfn);
> +
> +        ret = xsm_resource_setup_pci(XSM_PRIV, sbdf.sbdf);
> +        if ( ret )
> +            break;
> +
> +        pcidevs_lock();
> +        pdev = pci_get_pdev(NULL, sbdf);
> +        if ( !pdev )
> +        {
> +            pcidevs_unlock();
> +            ret = -ENODEV;
> +            break;
> +        }
> +
> +        write_lock(&pdev->domain->pci_lock);
> +        pcidevs_unlock();
> +        switch ( dev_reset.reset_type )
> +        {
> +        case PCI_DEVICE_STATE_RESET_COLD:
> +        case PCI_DEVICE_STATE_RESET_WARM:
> +        case PCI_DEVICE_STATE_RESET_HOT:
> +        case PCI_DEVICE_STATE_RESET_FLR:
> +            ret = vpci_reset_device_state(pdev, dev_reset.reset_type);
> +            break;
> +
> +        default:
> +            ret = -EOPNOTSUPP;
> +            break;
> +        }
> +        write_unlock(&pdev->domain->pci_lock);
> +
> +        break;
> +    }
> +
>      default:
>          ret = -ENOSYS;
>          break;
> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
> index 1e6aa5d799b9..7e914d1eff9f 100644
> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -172,6 +172,16 @@ int vpci_assign_device(struct pci_dev *pdev)
>  
>      return rc;
>  }
> +
> +int vpci_reset_device_state(struct pci_dev *pdev,
> +                            uint32_t reset_type)

There's probably no use in passing reset_type to
vpci_reset_device_state() if it's ignored?

> +{
> +    ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
> +
> +    vpci_deassign_device(pdev);
> +    return vpci_assign_device(pdev);
> +}
> +
>  #endif /* __XEN__ */
>  
>  static int vpci_register_cmp(const struct vpci_register *r1,
> diff --git a/xen/include/public/physdev.h b/xen/include/public/physdev.h
> index f0c0d4727c0b..3cfde3fd2389 100644
> --- a/xen/include/public/physdev.h
> +++ b/xen/include/public/physdev.h
> @@ -296,6 +296,13 @@ DEFINE_XEN_GUEST_HANDLE(physdev_pci_device_add_t);
>   */
>  #define PHYSDEVOP_prepare_msix          30
>  #define PHYSDEVOP_release_msix          31
> +/*
> + * Notify the hypervisor that a PCI device has been reset, so that any
> + * internally cached state is regenerated.  Should be called after any
> + * device reset performed by the hardware domain.
> + */
> +#define PHYSDEVOP_pci_device_state_reset 32
> +
>  struct physdev_pci_device {
>      /* IN */
>      uint16_t seg;
> @@ -305,6 +312,15 @@ struct physdev_pci_device {
>  typedef struct physdev_pci_device physdev_pci_device_t;
>  DEFINE_XEN_GUEST_HANDLE(physdev_pci_device_t);
>  
> +struct pci_device_state_reset {
> +    physdev_pci_device_t dev;
> +#define PCI_DEVICE_STATE_RESET_COLD 0
> +#define PCI_DEVICE_STATE_RESET_WARM 1
> +#define PCI_DEVICE_STATE_RESET_HOT  2
> +#define PCI_DEVICE_STATE_RESET_FLR  3
> +    uint32_t reset_type;

This might want to be a flags field, with the low 2 bits (or maybe 3
bits to cope if more rest modes are added in the future) being used to
signal the reset type.  We can always do that later if flags need to
be added.

Seeing as reset_type has no impact on the hypercall, I would like to
ask for some reasoning for it's presence to be added to the commit
message, otherwise it feels like pointless code churn.

> +};
> +
>  #define PHYSDEVOP_DBGP_RESET_PREPARE    1
>  #define PHYSDEVOP_DBGP_RESET_DONE       2
>  
> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> index da8d0f41e6f4..6be812dbc04a 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -38,6 +38,8 @@ int __must_check vpci_assign_device(struct pci_dev *pdev);
>  
>  /* Remove all handlers and free vpci related structures. */
>  void vpci_deassign_device(struct pci_dev *pdev);
> +int __must_check vpci_reset_device_state(struct pci_dev *pdev,
> +                                         uint32_t reset_type);
>  
>  /* Add/remove a register handler. */
>  int __must_check vpci_add_register_mask(struct vpci *vpci,
> @@ -282,6 +284,12 @@ static inline int vpci_assign_device(struct pci_dev *pdev)
>  
>  static inline void vpci_deassign_device(struct pci_dev *pdev) { }
>  
> +static inline int __must_check vpci_reset_device_state(struct pci_dev *pdev,
> +                                                       uint32_t reset_type)
> +{
> +    return 0;
> +}
> +

Maybe it turns out to be more complicated than the current approach,
but vpci_reset_device_state() could be an static inline function in
vpci.h defined regardless of whether CONFIG_HAS_VPCI is selected or
not, as the underlying functions vpci_{de}assign_device() are always
defined.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 15:59:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 15:59:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768935.1179830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZBj8-0000Rv-Vj; Wed, 31 Jul 2024 15:58:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768935.1179830; Wed, 31 Jul 2024 15:58: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 1sZBj8-0000Ro-TE; Wed, 31 Jul 2024 15:58:58 +0000
Received: by outflank-mailman (input) for mailman id 768935;
 Wed, 31 Jul 2024 15:58: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=9TNE=O7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1sZBj7-0000Rg-RS
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 15:58:57 +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 cb078dcd-4f55-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 17:58:57 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a7ab5fc975dso517468466b.1
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 08:58: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-a7da0b63b09sm76882466b.85.2024.07.31.08.58.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 08:58: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: cb078dcd-4f55-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1722441536; x=1723046336; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=y+Sm02097p/BKvvYL5YYjFMBiN7m9Nifumcg6FpdQwg=;
        b=FQNbIvG72MwJ2ztFXnb7TaNjYK0y6SY7D4iWVn4uo7JchvADfUsnaB2LS5jLsYqg/r
         TTt7ZIm3I6cNzQGDeXxeptv7oTmmYH4K4nNqIs4tqPqtiZuwHcXI9VUBt6N1tTgLfH11
         QdYdB62ZvOkx/aumQgWIKwTLXFG6sLzMzBy2oZxkqOsA2yMKqrv6//EGdjrQjoGtosDi
         ETQDuQjcbevOvmWQwsS17vg8fkIFQV3ciW36GtNx2SHuigec/99+S69WJCqPgy4ASw+9
         CBx9SyLTzmmDDWvOXXE7THkXQJQ9zAhWWUT0ZlVQ5BZmDrsj2I/CANacmWEdauadfbJb
         JlCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722441536; x=1723046336;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y+Sm02097p/BKvvYL5YYjFMBiN7m9Nifumcg6FpdQwg=;
        b=NaugLqVr0cebMS0qI0UyZq0KP5KWNR23sb0E5F/H8p1AuK4fuollrFr1TI3+5Q23ya
         4VW4e+ORPP4c5hPCnpMzc9+QLC9Ajy1ret+qNL8IPvf/Z82VfMEkLit0CTp7JXm5pNSh
         UyN+HHvIm84IFYxLsNcCB21EL+BKW4vUHYz0xYGVMYbvCof4517zZ3CZrP2zBQqYsTGF
         YVUwquaIOSP1IXSUwYUEYKXfBJyFLQlx7YST15OI/EyTpi7/0H8nuA8dLwitHF3+SFLq
         /2+12YbHcZp6t7v3qx4O7GakHaNXeHkdteMoCoK0a+LcTPIFf8j6afUo9XAkMtnsDRer
         SCtQ==
X-Gm-Message-State: AOJu0YyRqYOkMlXjy5ks16Jd3nQVDNNKrkDcSA0iQv9GQJmRCsaFx0dJ
	2gPXAm/0NePHQBTVN6tNk8cTfsnCmp/QAugLrtCGpXYFdJOjljP7SgJ7noH/4w==
X-Google-Smtp-Source: AGHT+IGLAqb/AEsoci8UAK5uJoUXye8GlERH1hoOKM/B8XD38CRkKGtrzXaBOLcls0lKS8T4zJQ1ig==
X-Received: by 2002:a17:906:6a2a:b0:a7a:8da1:eb00 with SMTP id a640c23a62f3a-a7d3ffc24ecmr1269678666b.7.1722441536266;
        Wed, 31 Jul 2024 08:58:56 -0700 (PDT)
Message-ID: <23730906-f6c7-4a9a-bb2f-2969625c741e@suse.com>
Date: Wed, 31 Jul 2024 17:58:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v12 1/7] xen/pci: Add hypercall to support reset of
 pcidev
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-2-Jiqian.Chen@amd.com> <ZqpeiWhuqPXiTeRZ@macbook>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZqpeiWhuqPXiTeRZ@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2024 17:55, Roger Pau Monné wrote:
> On Mon, Jul 08, 2024 at 07:41:18PM +0800, Jiqian Chen wrote:
>> --- a/xen/drivers/vpci/vpci.c
>> +++ b/xen/drivers/vpci/vpci.c
>> @@ -172,6 +172,16 @@ int vpci_assign_device(struct pci_dev *pdev)
>>  
>>      return rc;
>>  }
>> +
>> +int vpci_reset_device_state(struct pci_dev *pdev,
>> +                            uint32_t reset_type)
> 
> There's probably no use in passing reset_type to
> vpci_reset_device_state() if it's ignored?

I consider this forward-looking. It seems rather unlikely that in the
longer run the reset type doesn't matter.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 16:13:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 16:13:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768943.1179840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZBww-00048M-5f; Wed, 31 Jul 2024 16:13:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768943.1179840; Wed, 31 Jul 2024 16: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 1sZBww-00048F-31; Wed, 31 Jul 2024 16:13:14 +0000
Received: by outflank-mailman (input) for mailman id 768943;
 Wed, 31 Jul 2024 16: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=F/qb=O7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sZBwu-000488-2v
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 16:13:12 +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 c78b1ea0-4f57-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 18:13:10 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5b5b67d0024so1548402a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 09:13:10 -0700 (PDT)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5ac631b0395sm8943235a12.20.2024.07.31.09.13.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 09: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: c78b1ea0-4f57-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722442389; x=1723047189; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rlJnHfoCOtaelGswhuvwpdXnULtdno4aU6oFyup1k8k=;
        b=CBskI7aMOeUq0ttPislLVis/82LVq5zgVRYuNyfBUeWRv6tsy7v1O/+CkgP0mM+QtX
         MEZoEC/FJC2Nv76etccG6YxDEKjmxhXx54agr6dWg251A8+0HS+mLHSQvEa3Gg/s2qHI
         YS+Cmd+k2loFQONPJiq3qrhv7S6pnJmBvPx+4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722442389; x=1723047189;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rlJnHfoCOtaelGswhuvwpdXnULtdno4aU6oFyup1k8k=;
        b=ukTE1eUrBo26i+KbPCd+UmdtHQSYzbYv0y7EePp4qEXKV+FJcaWuKBqR6EmKMEK9Rd
         WhhAq8iKmqmiILPcvKWwExi9W7S9M6Tuzutz+2B0MUBc3P5mCgPI8kzOCfjM4WmmW4z9
         CWEDS8TdiMZU2rF7jWOc5JM4+I86L6jGDVLNoDQ69ggpmPHf6sSdfaF8urGhkrehaanI
         99XfqLMmQyOCEd/wKXYz4oWSwB5ZNouc2QLt5DpY3ClR/YdMaTSlLNqwc7l2aOj6Pjgj
         UgIXhkDoowRTDHMzmQzlLfDLdTf48nYWiX/mXI9EQobaz6rIIG7HDInWUMNF8AqvpzIS
         mj2w==
X-Forwarded-Encrypted: i=1; AJvYcCUzRlZuHzCuJFUg9wU1qLiD2s6qZ/kITjVX82N2CQY6VpxBYuwgZ/O+ZLK24J7MFu1sLT5nUqpUtU9NIEM69LZeOjDxn7GyLqGOXDnYTNs=
X-Gm-Message-State: AOJu0YwzgmhEeVecCYwwBQLaQgJtkd9kepJN2G9SLzT1xjm5/r3bmEPv
	IcfZt8jTeYFQYFYCDU4qHAtxQaTY8sfK9RZ/WB11YXspbYFjGgJdtYHcsu/rmzTAECQuQZiQ6TY
	9
X-Google-Smtp-Source: AGHT+IGgYhGverrck+rLjbbsiwhk+dTy7TIpnpMQF2kfvg0mKrcC/Re2NhlE+MXRdQVR+heWRj94fQ==
X-Received: by 2002:a50:f69a:0:b0:5a2:87d3:6ee6 with SMTP id 4fb4d7f45d1cf-5b0224cf4b3mr9093841a12.32.1722442389543;
        Wed, 31 Jul 2024 09:13:09 -0700 (PDT)
Message-ID: <762756f0-1bb1-4c76-bce9-710dbe85c49f@citrix.com>
Date: Wed, 31 Jul 2024 17:13:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] SUPPORT.md: split XSM from Flask
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Daniel Smith <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <121c2612-c255-4051-8d7c-315df6b3d348@suse.com>
 <a1fc969a-aa91-4daa-92ff-931a2c5c8f37@citrix.com>
 <36cee24e-e9c3-4a22-a2f7-cec6c3ffcf74@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <36cee24e-e9c3-4a22-a2f7-cec6c3ffcf74@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31/07/2024 4:14 pm, Jan Beulich wrote:
> On 31.07.2024 16:59, Andrew Cooper wrote:
>> On 31/07/2024 3:28 pm, Jan Beulich wrote:
>>> XSM is a generic framework, which in particular is also used by SILO.
>>> With this it can't really be experimental: Arm mandates SILO for having
>>> a security supported configuration.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> v2: Terminology adjustments. Stronger description.
>>>
>>> --- a/SUPPORT.md
>>> +++ b/SUPPORT.md
>>> @@ -768,13 +768,20 @@ Compile time disabled for ARM by default
>>>  
>>>      Status, x86: Supported, not security supported
>>>  
>>> -### XSM & FLASK
>>> +### XSM (Xen Security Module)
>> I'd suggest using Modules (plural) here.
> But XSM itself is just one thing?

In which case "XSM (Xen Security Module) Framework" ?

>
>>> +
>>> +    Status: Supported
>>> +
>>> +See below for use with FLASK and SILO.  The dummy implementation is covered here
>>> +as well.
>> I still think we want a one-line description of what "dummy" is.
>>
>> "XSM is a security policy framework.  The dummy implementation is
>> covered by this statement, and implements a policy whereby dom0 is all
>> powerful.  See below for alternative modules (FLASK, SILO)."
>>
>> ?
> Hmm, can do. Looking around in some cases we indeed have such explanations.

Everything which isn't entirely obvious should come with a oneliner
explanation.  Otherwise, SUPPORT.md is useless to non-Xen developers.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 16:13:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 16:13:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768950.1179851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZBxf-0004fL-J6; Wed, 31 Jul 2024 16:13:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768950.1179851; Wed, 31 Jul 2024 16: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 1sZBxf-0004fE-FL; Wed, 31 Jul 2024 16:13:59 +0000
Received: by outflank-mailman (input) for mailman id 768950;
 Wed, 31 Jul 2024 16:13: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=d79+=O7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1sZBxe-000488-J4
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 16:13:58 +0000
Received: from mail-qt1-x82b.google.com (mail-qt1-x82b.google.com
 [2607:f8b0:4864:20::82b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e336ab21-4f57-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 18:13:57 +0200 (CEST)
Received: by mail-qt1-x82b.google.com with SMTP id
 d75a77b69052e-44fea2d40adso37014071cf.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 09:13:57 -0700 (PDT)
Received: from localhost ([213.195.124.163]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-44fe8146433sm61422801cf.24.2024.07.31.09.13.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 09:13: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: e336ab21-4f57-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722442436; x=1723047236; 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=AtWFqaKv1xcsRRHaiwFqHRyFtqixqohERUwesB8CFzk=;
        b=snA6zCoJ1FYFCRbVXnzjPiYmo9RfniRd1K1nkpIiuL909B4jAt/wReP7zO05YB7QJf
         bTthuL0Fdp6lFKj0ntOisYSf9fAr4frwF7dVgERPkzmRY+cVi9oh2vYon1O423a2R+fy
         TACETg+s5t5Tmlh3UbpYHJGLOi2vNGcSXmZHM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722442436; x=1723047236;
        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=AtWFqaKv1xcsRRHaiwFqHRyFtqixqohERUwesB8CFzk=;
        b=u1zOPsoOq0R94N1Eo52kGQtWZr1lnSGtNunB1o5FdpS+eLXTOjMWg5h8y2nwH0czIG
         +cEsg626QYtfEmlIeyQrMy07kgxjdKrAj+A+qFwDLaRIt+xAyH3NhVPdFT+d1e6Tq34C
         hr9P+66eRDqGdtlZNUlITs/k5Wbv1rL1JIqyEMJngOMYZJODLemX/dBLv/09nf0FRcpA
         wF3tho9ZJ3qqefxEDuoXJexuOfWThwUIA00O+txRS1OYPaP1slV7Sd3KzA+8gUMgBWms
         4E1Glme9/JbP4gLG53PR6wKGBgOTtpCMTj41H/+j6u4g6ckgJhUSDgijgouzFhKrIDzs
         IIRg==
X-Gm-Message-State: AOJu0YwHQYHxSiP+ZUg4iM+ZeS8U3CZm7o0csnIrXZXtOuSNWoDfRd1O
	8vhwVV8V6tO6S3DCW2LYuLlxHMwET5pSuwVWXzvkLrf9+bmAI/Nokoppj3/8gwE=
X-Google-Smtp-Source: AGHT+IESVuW14UvxTWDkzria5K6FVn2aX4mM8Afr1v7vKdJIRwwzkhkJNuKtWPL2kWbh3sSaeGiXdw==
X-Received: by 2002:a05:622a:5499:b0:44f:efa3:2a4b with SMTP id d75a77b69052e-45004dacde5mr173168201cf.32.1722442435764;
        Wed, 31 Jul 2024 09:13:55 -0700 (PDT)
Date: Wed, 31 Jul 2024 18:13:46 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Juergen Gross <jgross@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
Subject: Re: [XEN PATCH v12 1/7] xen/pci: Add hypercall to support reset of
 pcidev
Message-ID: <ZqpiulPi3FbdpDoF@macbook>
References: <20240708114124.407797-1-Jiqian.Chen@amd.com>
 <20240708114124.407797-2-Jiqian.Chen@amd.com>
 <ZqpeiWhuqPXiTeRZ@macbook>
 <23730906-f6c7-4a9a-bb2f-2969625c741e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <23730906-f6c7-4a9a-bb2f-2969625c741e@suse.com>

On Wed, Jul 31, 2024 at 05:58:54PM +0200, Jan Beulich wrote:
> On 31.07.2024 17:55, Roger Pau Monné wrote:
> > On Mon, Jul 08, 2024 at 07:41:18PM +0800, Jiqian Chen wrote:
> >> --- a/xen/drivers/vpci/vpci.c
> >> +++ b/xen/drivers/vpci/vpci.c
> >> @@ -172,6 +172,16 @@ int vpci_assign_device(struct pci_dev *pdev)
> >>  
> >>      return rc;
> >>  }
> >> +
> >> +int vpci_reset_device_state(struct pci_dev *pdev,
> >> +                            uint32_t reset_type)
> > 
> > There's probably no use in passing reset_type to
> > vpci_reset_device_state() if it's ignored?
> 
> I consider this forward-looking. It seems rather unlikely that in the
> longer run the reset type doesn't matter.

I'm fine with having it in the hypercall interface, but passing it to
vpci_reset_device_state() can be done once there's a purpose for it,
and it won't change any public facing interface.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 16:15:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 16:15:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768956.1179861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZBz5-0005EG-Sc; Wed, 31 Jul 2024 16:15:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768956.1179861; Wed, 31 Jul 2024 16:15: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 1sZBz5-0005E9-Op; Wed, 31 Jul 2024 16:15:27 +0000
Received: by outflank-mailman (input) for mailman id 768956;
 Wed, 31 Jul 2024 16:15:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZBz5-0005Dx-43; Wed, 31 Jul 2024 16:15:27 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZBz4-0007lr-Fl; Wed, 31 Jul 2024 16:15:26 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZBz4-0006O9-20; Wed, 31 Jul 2024 16:15:26 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZBz4-0004un-1W; Wed, 31 Jul 2024 16:15:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=7mWcDMA/B/AdpYyDDhyKjyDXxTdobQOExwifYd+vEBs=; b=m+QGLW8iMk6B9GXgyeUTp5he93
	f+VZs9D3y815xs+NSeD6+M5uIvhihI+hw1TAQlhl/f7PJ+XxJWdbPD6hz55/Y0Wz+h7/UBLCavTJH
	mEDvWMAWRlzzdIBy09mulc8ga3KZ0uY3/Ohn+I27uoRnM6aHTkYHd3Oyru89RLjrpR8s=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187085-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187085: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=1fc55a3933b0d17430c2857629ee54abefaad7eb
X-Osstest-Versions-That:
    ovmf=02f7ecbbb2da356585f5c4df4a5e7aa64a6b985d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 16:15:26 +0000

flight 187085 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187085/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 1fc55a3933b0d17430c2857629ee54abefaad7eb
baseline version:
 ovmf                 02f7ecbbb2da356585f5c4df4a5e7aa64a6b985d

Last test of basis   187079  2024-07-31 12:11:29 Z    0 days
Testing same since   187085  2024-07-31 14:43:21 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Sami Mujawar <sami.mujawar@arm.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   02f7ecbbb2..1fc55a3933  1fc55a3933b0d17430c2857629ee54abefaad7eb -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 16:19:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 16:19:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768968.1179871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZC2X-0006X8-A3; Wed, 31 Jul 2024 16:19:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768968.1179871; Wed, 31 Jul 2024 16:19:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZC2X-0006X1-7U; Wed, 31 Jul 2024 16:19:01 +0000
Received: by outflank-mailman (input) for mailman id 768968;
 Wed, 31 Jul 2024 16:19: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=61WP=O7=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1sZC2W-0006Wv-3l
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 16:19:00 +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 97227334-4f58-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 18:18:59 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a7a83a968ddso824180066b.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 09:18:59 -0700 (PDT)
Received: from EMEAENGAAD91498.citrite.net ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acad9068esm782937566b.153.2024.07.31.09.18.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 09:18: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: 97227334-4f58-11ef-bc01-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1722442738; x=1723047538; 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=5zC3HPEws4IIYtj9rD2QA6iPL+Fvw6yU8Hh17lmetT8=;
        b=SNyfUnAM/AV6uOb+GzjzglyT7lOjd6PVY3GbgxB0wOoy5pJB8+tzdrBfbd41qNHx8F
         Q2+0W5jMeowRECYYWW9DfTM48uuawSbSMjkd1yEtbaypSfN2FBCwF3wsi+RxtO49g2VD
         xW+1zJuXRR7CwpRAIqTaFQ6wB9PRusVzDcnrc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722442738; x=1723047538;
        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=5zC3HPEws4IIYtj9rD2QA6iPL+Fvw6yU8Hh17lmetT8=;
        b=m/TdJt7gBnCPqk9Ye/2FBJ+6oATOOcgS3Y8K/RA6+6tUg2GeiVqsXtSbj3L+jilM3D
         HzNDBAZ9LooskPonrZvcyhn4XgHvbL4+cmM0JOYfOOfmuJDWP0Vlzv36GQ/VgvhEf08T
         qYBVN0OpyloQspo/WXZtCl5Dfyu8CgtLpCpoc1hSoDe9+1AUGuNTzIeSbrySGnBmrqIe
         E5PUsn2l7o2NwUNrJTtimbhBitVKIwmao0477coxf6Kk00SlVa7HVHX7yPvVnIeLNshh
         W3WmkPHTn5tN4NtdcgcfeitmJmzbMaQ7jfbr0nKwsdAerE7SbzzydH76UwT4HrJ7+5dI
         l3gQ==
X-Gm-Message-State: AOJu0YxUiaXLBq8EZDTfQv0pUapWi0+w2aUMBnmwPq+j9iRaFGQ8ri7m
	YMY7K5TQZbLXwpkMey/oaG+QEF34DYDA3DmpuP/iXX4f+aWU4XbehRUUiUfTYI5gge8kASDc3Xb
	A
X-Google-Smtp-Source: AGHT+IFjv/4LBO10IXmqnvFnYNmlumiMtnHFjHZgiuyxzbbjLnpE0xQP4sqUCHBHZ8Yd3VynDr/cbA==
X-Received: by 2002:a17:906:ee85:b0:a72:9d25:8ad3 with SMTP id a640c23a62f3a-a7d3ff58047mr934361666b.9.1722442737377;
        Wed, 31 Jul 2024 09:18:57 -0700 (PDT)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v7] tools/lsevtchn: Use errno macro to handle hypercall error cases
Date: Wed, 31 Jul 2024 17:18:44 +0100
Message-Id: <1240a14dea2f75d2e5b8d8e8bb685fac956629c6.1722442563.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Bcc: Matthew Barnes <matthew.barnes@cloud.com>
Content-Transfer-Encoding: 8bit

Currently, lsevtchn aborts its event channel enumeration when it hits
an event channel that is owned by Xen.

lsevtchn does not distinguish between different hypercall errors, which
results in lsevtchn missing potential relevant event channels with
higher port numbers.

Use the errno macro to distinguish between hypercall errors, and
continue event channel enumeration if the hypercall error is not
critical to enumeration.

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
Changes in v7:
- All error paths return error code 1 from lsevtchn
- Simplify perror message to failing function "xc_evtchn_status"

Changes in v6:
- Add blank space before label

Changes in v5:
- Code style changes to switch statement

Changes in v4:
- Catch non-critical errors and fail on everything else, instead of
  catching few known critical errors and ignoring everything else
- Use 'perror' to describe miscellaneous critical errors
- Return appropriate error code from lsevtchn tool
- Tweak commit description
---
 tools/xcutils/lsevtchn.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/tools/xcutils/lsevtchn.c b/tools/xcutils/lsevtchn.c
index d1710613ddc5..30c8d847b814 100644
--- a/tools/xcutils/lsevtchn.c
+++ b/tools/xcutils/lsevtchn.c
@@ -3,6 +3,7 @@
 #include <stdint.h>
 #include <string.h>
 #include <stdio.h>
+#include <errno.h>
 
 #include <xenctrl.h>
 
@@ -24,7 +25,23 @@ int main(int argc, char **argv)
         status.port = port;
         rc = xc_evtchn_status(xch, &status);
         if ( rc < 0 )
-            break;
+        {
+            switch ( errno )
+            {
+            case EACCES: /* Xen-owned evtchn */
+                continue;
+
+            case EINVAL: /* Port enumeration has ended */
+                rc = 0;
+                break;
+
+            default:
+                perror("xc_evtchn_status");
+                rc = 1;
+                break;
+            }
+            goto out;
+        }
 
         if ( status.status == EVTCHNSTAT_closed )
             continue;
@@ -58,7 +75,8 @@ int main(int argc, char **argv)
         printf("\n");
     }
 
+ out:
     xc_interface_close(xch);
 
-    return 0;
+    return rc;
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 16:19:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 16:19:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768974.1179880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZC3A-00070N-He; Wed, 31 Jul 2024 16:19:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768974.1179880; Wed, 31 Jul 2024 16: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 1sZC3A-00070G-Eq; Wed, 31 Jul 2024 16:19:40 +0000
Received: by outflank-mailman (input) for mailman id 768974;
 Wed, 31 Jul 2024 16:19:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZC39-000700-JH; Wed, 31 Jul 2024 16:19:39 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZC39-0007r5-HR; Wed, 31 Jul 2024 16:19:39 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZC39-0006Xv-3k; Wed, 31 Jul 2024 16:19:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZC39-0006SM-3G; Wed, 31 Jul 2024 16:19:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=I8MkkhkkTZ+P4kiGt78GRN/A2iHkeFJCldF5WEIAKzg=; b=QPKeK6BO96OiPLvlNg58Mui6oN
	ntk0KpHYNN0nxOTB2vAOyko6RShf0UVgv+aLo6TEVKP8N1YH8mZW1yHBfeoBEr1KU8RX90OGw9CKg
	tIjalOda9BHX96pN+juDcDL04KnsKa47SWeIwSs6GXtaPCnD3Kj8njWx0yzvH5uImdEM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187075-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 187075: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-armhf-armhf-xl:xen-boot:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=561cba38ff551383a628dc93e64ab0691cfc92bf
X-Osstest-Versions-That:
    xen=6979e17b3f8a18d2ba5dbd4f0623c4061dae0dfc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 16:19:39 +0000

flight 187075 xen-unstable-smoke real [real]
flight 187086 xen-unstable-smoke real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/187075/
http://logs.test-lab.xenproject.org/osstest/logs/187086/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 187068

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      16 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  561cba38ff551383a628dc93e64ab0691cfc92bf
baseline version:
 xen                  6979e17b3f8a18d2ba5dbd4f0623c4061dae0dfc

Last test of basis   187068  2024-07-31 02:02:09 Z    0 days
Testing same since   187075  2024-07-31 11:02:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>
  Roger Pau Monné <roger.pau@citrix.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-libvirt                                     pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

------------------------------------------------------------
commit 561cba38ff551383a628dc93e64ab0691cfc92bf
Author: Roger Pau Monné <roger.pau@citrix.com>
Date:   Wed Jul 31 12:41:22 2024 +0200

    x86/altcall: further refine clang workaround
    
    The current code in ALT_CALL_ARG() won't successfully workaround the clang
    code-generation issue if the arg parameter has a size that's not a power of 2.
    While there are no such sized parameters at the moment, improve the workaround
    to also be effective when such sizes are used.
    
    Instead of using a union with a long use an unsigned long that's first
    initialized to 0 and afterwards set to the argument value.
    
    Reported-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
    Suggested-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
    Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>

commit 1fc3f77113dd43b14fa7ef5936dcdba120c0b63f
Author: Roger Pau Monné <roger.pau@citrix.com>
Date:   Wed Jul 31 12:41:02 2024 +0200

    x86/dom0: fix restoring %cr3 and the mapcache override on PV build error
    
    One of the error paths in the PV dom0 builder section that runs on the guest
    page-tables wasn't restoring the Xen value of %cr3, neither removing the
    mapcache override.
    
    Fixes: 079ff2d32c3d ('libelf-loader: introduce elf_load_image')
    Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>

commit 157c693e9a488fe125ffe7adfb807b783a7d1757
Author: Jan Beulich <jbeulich@suse.com>
Date:   Wed Jul 31 12:40:19 2024 +0200

    x86/HVM: get_pat_flags() is needed only by shadow code
    
    Therefore with SHADOW_PAGING=n this is better compiled out, to avoid
    leaving around unreachable/dead code.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

commit ce6c6a697edf40763a8512369672a399821b17bf
Author: Jan Beulich <jbeulich@suse.com>
Date:   Wed Jul 31 12:39:35 2024 +0200

    public/x86: don't include common xen.h from arch-specific one
    
    No other arch-*.h does so, and arch-x86/xen.h really just takes the role
    of arch-x86_32.h and arch-x86_64.h (by those two forwarding there). With
    xen.h itself including the per-arch headers, doing so is also kind of
    backwards anyway, and just calling for problems. There's exactly one
    place where arch-x86/xen.h is included when really xen.h is meant (for
    wanting XEN_GUEST_HANDLE_64() to be made available, the default
    definition of which lives in the common xen.h).
    
    This then addresses a violation of Misra C:2012 Directive 4.10
    ("Precautions shall be taken in order to prevent the contents of a
    header file being included more than once").
    
    Reported-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

commit 96f35de69e593a9d9c348ae33ba17cf3cc5a9a79
Author: Jan Beulich <jbeulich@suse.com>
Date:   Wed Jul 31 12:36:14 2024 +0200

    x86+Arm: drop (rename) __virt_to_maddr() / __maddr_to_virt()
    
    There's no use of them anymore except in the definitions of the non-
    underscore-prefixed aliases.
    
    On Arm convert the (renamed) inline function to a macro.
    
    On x86 rename the inline functions, adjust the virt_to_maddr() #define,
    and purge the maddr_to_virt() one, thus eliminating a bogus cast which
    would have allowed the passing of a pointer type variable into
    maddr_to_virt() to go silently.
    
    No functional change intended.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
    Acked-by: Julien Grall <jgrall@amazon.com>

commit a5b8e72e9e2e59941cc76978725bb9ee04eba722
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Jul 18 21:22:41 2024 +0100

    arch/domain: Clean up the idle domain remnants in arch_domain_create()
    
    With arch_domain_create() no longer being called with the idle domain, drop
    the last remaining logic.
    
    No functional change.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

commit a259a658f203e3b17734c42f2ca6e75344e2de22
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Jul 18 21:20:52 2024 +0100

    xen/domain: Simpliy domain_create() now the idle domain is complete earlier
    
    With x86 implementing arch_init_idle_domain(), there is no longer any need to
    call arch_domain_create() with the idle domain.
    
    Have the idle domain exit early with all other system domains.  Move the
    static-analysis ASSERT() earlier.  Then, remove the !is_idle_domain()
    protections around the majority of domain_create() and remove one level of
    indentation.
    
    No practical change.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

commit fdb4d76ff3c44752d067fe598c0c021389030c63
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Jul 18 21:12:31 2024 +0100

    x86/domain: Implement arch_init_idle_domain()
    
    The idle domain needs d->arch.ctxt_switch initialised on x86.  Implement the
    new arch_init_idle_domain() in order to do this.
    
    Intentionally remove cpu_policy's initialisation to ZERO_BLOCK_PTR.  It has
    never tripped since it's introduction, and is weird to have in isolation
    without a similar approach on other pointers.
    
    No practical change.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>

commit 694ce812e7cb643236e8e677aca763c5f2aa4f4b
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Jul 18 20:54:05 2024 +0100

    xen/domain: Introduce arch_init_idle_domain()
    
    The idle domain causes a large amount of complexity in domain_create() because
    of x86's need to initialise d->arch.ctxt_switch in arch_domain_create().
    
    In order to address this, introduce an optional hook to perform extra
    initialisation of the idle domain.
    
    No functional change.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 16:36:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 16:36:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768987.1179891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZCJY-0001sZ-T5; Wed, 31 Jul 2024 16:36:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768987.1179891; Wed, 31 Jul 2024 16:36:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZCJY-0001sS-QK; Wed, 31 Jul 2024 16:36:36 +0000
Received: by outflank-mailman (input) for mailman id 768987;
 Wed, 31 Jul 2024 16:36: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=HDmI=O7=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1sZCJX-0001qR-Ih
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 16:36:35 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20603.outbound.protection.outlook.com
 [2a01:111:f403:2412::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c014a20-4f5b-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 18:36:35 +0200 (CEST)
Received: from SJ0PR13CA0056.namprd13.prod.outlook.com (2603:10b6:a03:2c2::31)
 by SA3PR12MB7857.namprd12.prod.outlook.com (2603:10b6:806:31e::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.28; Wed, 31 Jul
 2024 16:36:30 +0000
Received: from SA2PEPF000015C6.namprd03.prod.outlook.com
 (2603:10b6:a03:2c2:cafe::d) by SJ0PR13CA0056.outlook.office365.com
 (2603:10b6:a03:2c2::31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.19 via Frontend
 Transport; Wed, 31 Jul 2024 16:36:29 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015C6.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.7828.19 via Frontend Transport; Wed, 31 Jul 2024 16:36:29 +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, 31 Jul
 2024 11:36:28 -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; Wed, 31 Jul 2024 11:36: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: 0c014a20-4f5b-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sCtj+J6IUh7krBJtSCQ4LNE50Bmk3wEAiJw0fyVSYH+bG24beJu4K9Up5qAoe/10IgDfV2wM/H+L9hj0IYH0wPb3nOf/s7N6ktIL0puGwiMnPTL9Vx38872NvzCGb6cm25o+64QgpN2KmSrpWCANqy+ue8OTEcYk1hf2ZGIkiO084mIfV0eclVbmu9JXGnYhxE3z+mZb5QlgxymfPAlCWFPjsHEogOmXYhS0mFiiQrUTTYFbjLTwSDpfROuPuXB41OXIq2v05/BPOsk7j3MKPNGwERPZWxkKe5N3TcBGkJbNi+ms7aUy1wzKNLFS5d7ZowLHnDA6gFwlwvLBZXvGpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+ffrGBbLcJc5IQXajyY7EObPHfcG5RNWDF6/K1mPvA=;
 b=JwbRGLJxTpOIFSZX6VzPd0XFgE33Vv+sQ5q3K0Bcn5VUW45toO/Lm9KG2FgN+dJNrwlHW7E8JhtV+KUFryblovEHJtFVUkL17I1cxzncuE5YFgeGguhlSts1oc5gkzr16ZFoeN4Ah0D/msMmCS8ePmllo8qJdf6xQLli/D4rK4C0VVHcrmGH7rsBX+oCSmM/TeZsAIEgt+Uj6kkjrDjxUDhXvI6/OxAIWRA05/h120o6esLpYwGMR23IYVW8mbCP6vZpSUeOP2mesOZtFzEDoQSbB+ekDXMOmF59HKCRyvZSF//4N5aGmPK8PZTswsEvi+hUQc139h/CMIrxSRRXAw==
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=j+ffrGBbLcJc5IQXajyY7EObPHfcG5RNWDF6/K1mPvA=;
 b=XpSUUgzjAEaTPl8eqoyRlS2ciVbm8YqnMwuuxC1vL4CG0/7EYnKT9yetnmr5HyqalYrWu1AFcGbmwmx9QnfabSoTLv5Pxq3rNfRT5p8JqsfMPH2gCBjf1hK0BjOudB84GGrPI2BQAIoDgJL1pZQ9TCZYNVzSW9D3L12TEwnYzVk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <sstabellini@kernel.org>, <bertrand.marquis@arm.com>,
	<michal.orzel@amd.com>, <ayan.kumar.halder@amd.com>,
	<artem_mygaiev@epam.com>, <julien@xen.org>
CC: <xen-devel@lists.xenproject.org>
Subject: [PATCH 0/2] Introduce functional safety related documents
Date: Wed, 31 Jul 2024 17:36:12 +0100
Message-ID: <20240731163614.616162-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: SA2PEPF000015C6:EE_|SA3PR12MB7857:EE_
X-MS-Office365-Filtering-Correlation-Id: 85328614-d98a-42bc-5c9f-08dcb17eedf0
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?Rt4TtxBaV5KDT2ZIpYKc1i+LKu7PYRnNN31zjrVzs5FJdd2gE95zHxgHJ7wZ?=
 =?us-ascii?Q?TOMWrS4DDIcTcmkYRYgTlrXbQXprU/JDCbchkQzvSh29OEtsQrvljN2iwHBt?=
 =?us-ascii?Q?huUkL1S6dBpBzrWq0A0QPoMtOct0w1gVOELC54rUyA7PwqWbyQ2pLwOO6PTl?=
 =?us-ascii?Q?GJneM5dHJCFsLaoCjm440Z6eGEjxZqJ47B+KlifkWRs3I7dCI+Z+jMlFqfP9?=
 =?us-ascii?Q?akuR38X97RTAanOqWbZkvObgHRYJgK8YSm8Ryc65cstJPxFrTeuB0HAre3Yy?=
 =?us-ascii?Q?1j3FGy0MpGLnQjdDcub8tl/I9KMhQwbnBmffSTJKalYKRlISRat4E/S4X/Dw?=
 =?us-ascii?Q?2cU18BORl+tXQEXHXZUO/Tip2Ii3hW5rTBh4hm3ubmE8BI/Tfc1NTi2m+5rn?=
 =?us-ascii?Q?9NjFOTG/qFF5LZXfaCb6cj+636coJ3WmqCI4dVvyQweb23bksrekXpSzz75u?=
 =?us-ascii?Q?500jTgGJUROA9HBKC3nIYY9fqNtFd+9/mLRkNE0U3PUXAxAOXvOcdTshUE3q?=
 =?us-ascii?Q?/G2HwKM9U48QfZyVvRT1lj2RMTvdEEOQSti2IH+WQtjUuMn3lnfvpX9p4YxA?=
 =?us-ascii?Q?R63Dg7sPZe+MVpnb7pBFoOjxg68By3oXhrRGIJrwR/iDfFe94zC4T18LM49+?=
 =?us-ascii?Q?B7NAhlGkcJRtrV84u0P62MV0efA19NEYFl3KeuTZCAX3gzL/M+dHhMKtRo5m?=
 =?us-ascii?Q?F3Azgck0MATJG9XOt1O9WDoQhqzVeMcdOpwdJkld4br5igW76rE4jqINhNDg?=
 =?us-ascii?Q?NG2WqEaUuu0HsCpwEE9m9wP35C0mZaCksw8yXLtLHbp7RQoLIKYz4TQ9Zs2q?=
 =?us-ascii?Q?6TSiCfmIzhsfUDnsluVZUXOIdwd6dgYNXP2gPLZxtXaxNYHviFNuv5lfb/rE?=
 =?us-ascii?Q?ml8I2IUdZK6mcYH5TgKYjY0HIxmOjMdjWayDo6Eh3pwtcX+9NEXGLhJjuppo?=
 =?us-ascii?Q?bQDaTnvU417349ndIVYXSlKIbWDy4nKZfLqtCTE21bevyv5Adzu96X+e/yuH?=
 =?us-ascii?Q?+IEq1dr2t6/ZV7RsSliwW7DmSgzsAjUNaXT7pJX4ePvtG+OLN6AI64Na8jpO?=
 =?us-ascii?Q?A7cCXcvFuz6rogMO3LzEi7sJmOSzMIoPqZFspGTMyZa2LjLY1nxFYgIANbkg?=
 =?us-ascii?Q?//yHQGkogAxLV5w+zCJKdHWv1Dt/Jw3RizSj9zzeucJIgM+uppNgPcCdwGed?=
 =?us-ascii?Q?9pbHEld0teLizsOMW/xOGyqV8jf33yjEgsu73Pmma2aNUopZbdljsjEC5MKU?=
 =?us-ascii?Q?HvpcAbXiff1iIabZ8oX+/i6spoXn37lgQdDmtDlnkp2QWVLYU+VHU4XKtCNL?=
 =?us-ascii?Q?FevGXHKuB0STpR3Tf9ogyRXvsoNBTWXnHxmb40GWy5Cf3bcj0cBUDrq7CHUa?=
 =?us-ascii?Q?TiKFZQtP2HXkG/9532FjLnTFbI3i?=
X-Forefront-Antispam-Report:
	CIP:165.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: 31 Jul 2024 16:36:29.4778
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 85328614-d98a-42bc-5c9f-08dcb17eedf0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015C6.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7857

Hi,

In the Xen summit, we presented an update on Xen Functional Safety. For
details, please refer to 
https://youtu.be/eFRTHSGDMfQ?si=sYOdYfDI7qsgkcjE  ("Xen Functional
Safety - an Update - Ayan Kumar Halder & Michal Orzel, AMD")
 
We wish to start with upstreaming the requirements.

This patches illustrate how we are writing the requirements and provides
some examples.
The support level is experimental and it will be maintained on a best
effort basis.

Ayan Kumar Halder (2):
  docs: Introduce Fusa Requirement and define maintainers
  docs: fusa : reqs: Added a sample of requirements [DO_NOT_MERGE]

 MAINTAINERS                                   |   9 +
 docs/fusa/reqs/README.md                      |  75 ++++++
 .../reqs/design_reqs/arm64/emulated_uart.rst  | 240 ++++++++++++++++++
 .../reqs/design_reqs/arm64/generic_timer.rst  | 146 +++++++++++
 docs/fusa/reqs/design_reqs/xen_version.rst    | 207 +++++++++++++++
 docs/fusa/reqs/market_reqs/reqs.rst           |  77 ++++++
 docs/fusa/reqs/product_reqs/reqs.rst          |  64 +++++
 7 files changed, 818 insertions(+)
 create mode 100644 docs/fusa/reqs/README.md
 create mode 100644 docs/fusa/reqs/design_reqs/arm64/emulated_uart.rst
 create mode 100644 docs/fusa/reqs/design_reqs/arm64/generic_timer.rst
 create mode 100644 docs/fusa/reqs/design_reqs/xen_version.rst
 create mode 100644 docs/fusa/reqs/market_reqs/reqs.rst
 create mode 100644 docs/fusa/reqs/product_reqs/reqs.rst

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 16:36:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 16:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768990.1179901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZCJj-0002Cf-88; Wed, 31 Jul 2024 16:36:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768990.1179901; Wed, 31 Jul 2024 16: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 1sZCJj-0002CW-5Z; Wed, 31 Jul 2024 16:36:47 +0000
Received: by outflank-mailman (input) for mailman id 768990;
 Wed, 31 Jul 2024 16:36:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HDmI=O7=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1sZCJi-0001qR-KW
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 16:36:46 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20608.outbound.protection.outlook.com
 [2a01:111:f403:200a::608])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1288490f-4f5b-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 18:36:45 +0200 (CEST)
Received: from CH0PR04CA0014.namprd04.prod.outlook.com (2603:10b6:610:76::19)
 by CH3PR12MB7692.namprd12.prod.outlook.com (2603:10b6:610:145::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.27; Wed, 31 Jul
 2024 16:36:40 +0000
Received: from CH2PEPF00000148.namprd02.prod.outlook.com
 (2603:10b6:610:76:cafe::a5) by CH0PR04CA0014.outlook.office365.com
 (2603:10b6:610:76::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.34 via Frontend
 Transport; Wed, 31 Jul 2024 16:36:40 +0000
Received: from SATLEXMB03.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.7828.19 via Frontend Transport; Wed, 31 Jul 2024 16:36:40 +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, 31 Jul
 2024 11:36:40 -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; Wed, 31 Jul 2024 11:36: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: 1288490f-4f5b-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YicorYbtaks/ukoBzVpqtPHninXMG6ZAUdCNh54vyzUdQHkcKI/iW7wvaUbJVm9yacJDfxlPDU9dKBcpgpr6RUxv0C9tdNnsvEETZbn6zl/bpdwEFscgTNgigbzTbzIAhCSRXMTjre8unRgZsGeC6au6abHZTwQRJgLPcurBfTT2f/kcpiETt++aQQ4HIwoh99ySxD4HucKv+Y3WZEKupy3YKzJf+o4Zm/hdkgk9ZGPfgBP6BOwdecG4TlW7OD32zkWWbCGaK9/+CSOHU9cn54a2ilxm91Lp1glr220GX6zJt3d7meNChHlGRyPYPrOdpF9RXhL+TsIq0Ls2Fsj3dQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dLp/88EN95cYWxifMrQBqlXRYpvzetOqFDwk8kg/LxI=;
 b=uIMfox6F4afM157fLYN7W12VtI+cqhbP0ipUDblz7JfcJdwCTeJFq/emUhyawb9bmSHHsIUap7tbNQF8/NRiJz3E6PBgbEHSO9nHBguVKv0F74xFwFRIRkBZCteZ+2lXtdFmYZSMn0uLxsDZgFL6FxgiCx7yDzRFDlobgBeoXb4qZcPKt0fWs23SLnzDvAtpzD2ed8M0rKfierqmz5bT3C1/56W2p46hNKnGb+tXB0MGKLzzZOTb8wifj9OcXuFTeqYRrYpXo6jZ9Huuy92DMqxf+L0j3nX6p0htPvLQBaEFiA+lGbgYSTePM1aT9lY+I96rdekKJ0nFLxDG/gDHFg==
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=dLp/88EN95cYWxifMrQBqlXRYpvzetOqFDwk8kg/LxI=;
 b=xtIFvuDpodWKp+DJdyEheKqJvbn+BE+vywiK9yX4wcLxJcwpU2ck5ab1e1vvyuIOzMQVWnJID6KHxtU3s1Xs16igUebgTCZnEne74sK9wx9XbpoFmgWEGeTAfqlmR/lhF/qElRG/KMlYv2wnZz+StMmX2RpcnbnoXKmJiyvzdWg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <sstabellini@kernel.org>, <bertrand.marquis@arm.com>,
	<michal.orzel@amd.com>, <ayan.kumar.halder@amd.com>,
	<artem_mygaiev@epam.com>, <julien@xen.org>
CC: <xen-devel@lists.xenproject.org>
Subject: [PATCH 1/2] docs: Introduce Fusa Requirement and define maintainers
Date: Wed, 31 Jul 2024 17:36:13 +0100
Message-ID: <20240731163614.616162-2-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20240731163614.616162-1-ayan.kumar.halder@amd.com>
References: <20240731163614.616162-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: CH2PEPF00000148:EE_|CH3PR12MB7692:EE_
X-MS-Office365-Filtering-Correlation-Id: b2bceec7-1d19-4732-d76a-08dcb17ef499
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?5WIQpQT6fs6caSaOS7X3uOQNsfyggOBkOv82tFRu9rBdeEiNUiQU9AQjAXSd?=
 =?us-ascii?Q?YrPpRXKeCYmuvVyQGgaJ3dCSEl5pFclWq3r+x9RONuhjBpMVQnrtNMv+4lRL?=
 =?us-ascii?Q?iNbPl9zTAPpKBnmc7u4bWb161m04KSIjIB8slPQ9Ttd1Jv8ULBUlUzAZkP6O?=
 =?us-ascii?Q?Qs9VU+dRj9YiokH57V75yn9HZ95pPYjC4CbltNvi9P9LKNZLVJwEj1RnYCBi?=
 =?us-ascii?Q?oM5AQTyjSgRMeAtkqiDglY1hE9cUvgBwbQdaLeSracs46N7858MVfsPT3SEe?=
 =?us-ascii?Q?O/c+a4aSCJ0dmOR6UbrV0MTxkgoJ0n1v0BBeub8X6qT1weI1pxbwJ9gXOG63?=
 =?us-ascii?Q?bdbnrgotfbVgxRrN90V19sN0u/PxU7phZ/1CtlKG7Dt4pSwPp38/xWI4jaal?=
 =?us-ascii?Q?Lltgw1xHbRLNBLgqWFW4BRALiZszxjlwAZxmFJ0H9DRH3VRyZxi4N4OsozFb?=
 =?us-ascii?Q?RK4y473T3Ak97Mcy4S+0zCXLOKVbjJmMdl5i9RfLeZQF2UDZiEK+covHsSOe?=
 =?us-ascii?Q?jZ6XzoUkxBSPinw41RpGYTubYG2SBsqe/LyJnNJF09EoTdWYX6UJhPlmRo4S?=
 =?us-ascii?Q?MDsSok7IZ3PZgjrC9rTkEBeWIj/ZQcCrB1IrlJU+mRj0psuE1Xno/SshsYmH?=
 =?us-ascii?Q?VGcO1q4LN/h8VnDUtK7sOzTchj8tPB1x42ld31kKPeOkyYTsR1vHVI0iDhS9?=
 =?us-ascii?Q?+IuyPSaysNAv9kqmLQKUeL6vpWB19ds309TYcLr48Z9AuMHTGXYzAno369SF?=
 =?us-ascii?Q?kqNPu0Wh6M/lk9uXOAmtKl9dQ8uYYsXvW3q4qU6RmnXXPCb8NE7IOzbKeSFp?=
 =?us-ascii?Q?PsTmcERuXioSY9tAXRXxCHsfz35fr/GBxn2fsF1xV850nXmjAU20ymUm+hGT?=
 =?us-ascii?Q?huvUyQ7X3Cxt5orVIrnaYUPAyWpLWnCNi3EMdfR/iBGrd7sTxP15vN+sMhAs?=
 =?us-ascii?Q?WeTehfOH1qJWAwZ1h+Wjm4E0q5rugiPSts2d0gaowG6V280YlAPNoSUWdBYE?=
 =?us-ascii?Q?gHIdbD+TJvT8f6tMrtA9haQEnqY6i1vdcaJQUixKRMDIYs/A2qcSxOGPlRY6?=
 =?us-ascii?Q?rUL0FVW8F9NL1lL6z//JmGorZ9LMzkqTTwY/k6JjFSs49Ixtk1Narn7WKCJR?=
 =?us-ascii?Q?niH8uKaSLAFq4VrKHT9xXHeaWoIp6MfF6fAeeJ/Ilm7MTciifYjqsXkRQxKr?=
 =?us-ascii?Q?kqVmbEJITkGZxf9G9zeadZrYa53LLKUbjT17mXxB3Rh1p/OI4arEESP6MSdj?=
 =?us-ascii?Q?8P+JHw0USm40lQy7fvqcFmyh2PQGa0yoV+Z+OXoz/mH+17/bw8NSAujb6PqN?=
 =?us-ascii?Q?JR+9Gr+gDWoa557bsulAIG8o1sqBXNswrdjrK2jG1hskYP0OnogGz6QfgJ1t?=
 =?us-ascii?Q?RwUFcel6/5GyzwqfqzdijsB1zupggd+iD0SdaGH+pzYzMtOcMQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2024 16:36:40.6705
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b2bceec7-1d19-4732-d76a-08dcb17ef499
X-MS-Exchange-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:
	CH2PEPF00000148.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7692

The FUSA folder is expected to contain requirements and other documents
to enable safety certification of Xen hypervisor.
Added a README to explain how the requirements are categorized, written
and their supported status.

Added maintainers for the same.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 MAINTAINERS              |  9 +++++
 docs/fusa/reqs/README.md | 75 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 84 insertions(+)
 create mode 100644 docs/fusa/reqs/README.md

diff --git a/MAINTAINERS b/MAINTAINERS
index 7c524a8a93..0d328e065c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -314,6 +314,15 @@ F:	xen/arch/x86/include/asm/x86_*/efi*.h
 F:	xen/common/efi/
 F:	xen/include/efi/
 
+FUSA
+M:	Stefano Stabellini <sstabellini@kernel.org>
+M:	Bertrand Marquis <bertrand.marquis@arm.com>
+M:	Michal Orzel <michal.orzel@amd.com>
+M:	Ayan Kumar Halder <ayan.kumar.halder@amd.com>
+M:	Artem Mygaiev <artem_mygaiev@epam.com>
+S:	Supported
+F:	docs/fusa/
+
 GDBSX DEBUGGER
 M:	Elena Ufimtseva <elena.ufimtseva@oracle.com>
 S:	Supported
diff --git a/docs/fusa/reqs/README.md b/docs/fusa/reqs/README.md
new file mode 100644
index 0000000000..69b8d3a5c8
--- /dev/null
+++ b/docs/fusa/reqs/README.md
@@ -0,0 +1,75 @@
+This folder contains a set of requirements describing Xen and its implementation
+in a form suitable for a safety certification process.
+The status is experimental and it is maintained on a best effort basis.
+
+The requirements writing style is inspired from the ANSI/IEEE guide to Software
+Requirements Standard 830-1984.
+
+The requirements are categorized as follows :-
+
+1. Market requirements - They define the high level functionalities of the
+hypervisor without going into concepts specific to Xen. Those should allow a
+system architect to understand wether Xen is providing the functionalities it
+needs for its system. This is the top level of the requirements.
+
+2. Product requirements - They define the Xen specific concepts and interfaces
+provided by Xen without going into implementation details. One or several of
+those requirements are linked to each market requirement. An Architect can use
+them understand how Xen fulfils a market need and design how Xen should be used
+in his system.
+
+3. Design requirements - They describe what the software implementation is doing
+from a technical point of view. One or several design requirement together
+define how product requirements are fulfilled technically and are linked to
+them. An implementer can use them to know how to write or understand the Xen
+code.
+
+The requirements are linked using OpenFastTrace
+(https://github.com/itsallcode/openfasttrace/blob/main/doc/user_guide.md).
+OpenFastTrace parses through the requirements and generates a traceability
+report.
+
+The following is the skeleton for a requirement.
+
+Title  /* Title of the requirement */
+-----
+
+`unique_tag`
+/*
+ * Each requirement needs to have a unique tag associated. The format is
+ * req_type~name~revision.
+ *
+ * Thus, it consists of three components :-
+ * requirement type - This denotes the category of requirement. Thus, it shall
+ * be 'XenMkt', 'XenProd' or 'XenSwdgn' to denote market, product or design
+ * requirement.
+ * name - This denotes name of the requirement. In case of architecture specific
+ * requirements, this starts with the architecture type (ie x86_64, arm64).
+ * revision number - This gets incremented each time the requirement is modified.
+ */
+
+Description:
+This shall describe the requirement in a definitive tone. In other words,
+the requirement begins with 'Xen shall ...'. Further, the description is
+expected to be unambiguous and consistent.
+
+Rationale:
+This describes a rationale explaining the reason of the presence of the
+requirement when this can help the reader. This field can be left blank.
+
+Comments:
+This describes the use cases for the requirement when this can help the
+reader. This field can be left blank as well.
+
+Covers:
+This denotes the unique_tag of the parent. This field is non existent for the
+market requirement as it is the top level.
+
+Needs:
+This denotes the requirement type of its children. This field is non existent
+for the design requirements as there are no subsequent requirements linked to
+them.
+
+
+The requirements are expected to the technically correct and follow the above
+guidelines.
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 16:36:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 16:36:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.768991.1179911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZCJo-0002ZN-Hv; Wed, 31 Jul 2024 16:36:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 768991.1179911; Wed, 31 Jul 2024 16: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 1sZCJo-0002ZF-Ek; Wed, 31 Jul 2024 16:36:52 +0000
Received: by outflank-mailman (input) for mailman id 768991;
 Wed, 31 Jul 2024 16:36: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=HDmI=O7=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1sZCJm-0001qR-V8
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 16:36:51 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20601.outbound.protection.outlook.com
 [2a01:111:f403:2415::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 150f12a4-4f5b-11ef-bc01-fd08da9f4363;
 Wed, 31 Jul 2024 18:36:49 +0200 (CEST)
Received: from SA9P223CA0018.NAMP223.PROD.OUTLOOK.COM (2603:10b6:806:26::23)
 by SN7PR12MB8103.namprd12.prod.outlook.com (2603:10b6:806:355::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.21; Wed, 31 Jul
 2024 16:36:45 +0000
Received: from SA2PEPF000015C7.namprd03.prod.outlook.com
 (2603:10b6:806:26:cafe::a2) by SA9P223CA0018.outlook.office365.com
 (2603:10b6:806:26::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.35 via Frontend
 Transport; Wed, 31 Jul 2024 16:36:45 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015C7.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.7828.19 via Frontend Transport; Wed, 31 Jul 2024 16:36:44 +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, 31 Jul
 2024 11:36:43 -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; Wed, 31 Jul 2024 11:36: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: 150f12a4-4f5b-11ef-bc01-fd08da9f4363
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TqyquOu/LGLT1qOOi9KmBSKD8OP+zPLS9CMvXfX98yo2v6OTIpPqZT8oqYxEj/5cgi6ibGueO+O3NUvwanKvCuyB/+sBToRMMw6vzb2PAGyZfOMX31/hGfKy8hhys5d8jiHp30A2rKAxgPdLGsjPWJXypnWNWCwLkQPq3j/qxPMe7UF0cfnx5CnCPMGyFjNJQ5gTlB7M+9QW+C2fT0PLBVlZ1kx74FbywwOZkAJfS6VA8D/ZKD715469CFkR8JmBAixwxYODKrDGtGGkQYjnVI7hDuZMxgoQtDqCK6EajlKRVN8vByIbgPMz0uNMqJnSRa/dIjDLtHaJ2RmuFZxY/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=kBXgRjh5xjfF1yHaJmzjGnCzrgVZE3+PjGkwDH+2Dl4=;
 b=w93eKxLsIdqjc5BtnXHRcHgo+qzWo2Co1HxuhuMPjZCTJoVXfRhVChwSZMMASOK8fb+wENiKNyqQTIS0yBaYvSRvs1DW6MeMjR0fJ+hCqqEdWsIjCoA6aYFDMC4cMoKrhIJUlny8k/Mb/4Vu1OO7HQ6LKGZHFu+KqS3qvCAYZ8SssQcZJ6QOJGMG9gQPF8RrCIJm+1JRqUL/RiafQvfYmbiBQTE9w9oFfZBr0J4+ENo/vC4SrpPwKKBetRN7NhIpScplF9Ix4o1jkVmlUTlwPcevKOgJVUCg6jmAiNJKe0lW+e9Rxw+rLJvfTxOMPveETDbnTqi8rq2R0pngV5Zrsg==
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=kBXgRjh5xjfF1yHaJmzjGnCzrgVZE3+PjGkwDH+2Dl4=;
 b=CTWTmMxfJAGDe3iFCSaV/68BF4oRh0KzFPc5rt3CWKCaktaVlvupnJa7ygjyUdf3w6jihN66FkaMuMSFY+TNXenHihBQfCBTXxrEhNWLbF0oEh62D16NWcbrtWmDCzZmeOCxPOyFaJJGj4ttf0KCZTukrEh3uFUhKKA+JKeAuZQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <sstabellini@kernel.org>, <bertrand.marquis@arm.com>,
	<michal.orzel@amd.com>, <ayan.kumar.halder@amd.com>,
	<artem_mygaiev@epam.com>, <julien@xen.org>
CC: <xen-devel@lists.xenproject.org>
Subject: [PATCH 2/2] docs: fusa : reqs: Added a sample of requirements [DO_NOT_MERGE]
Date: Wed, 31 Jul 2024 17:36:14 +0100
Message-ID: <20240731163614.616162-3-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20240731163614.616162-1-ayan.kumar.halder@amd.com>
References: <20240731163614.616162-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: SA2PEPF000015C7:EE_|SN7PR12MB8103:EE_
X-MS-Office365-Filtering-Correlation-Id: ec1766cf-156e-4fde-e843-08dcb17ef6f7
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?ODm7aVhC/tFpzc5B12fuWIQrAUmD3AmK+26dqo2sDfZm0nEG2nNQnBrejuKc?=
 =?us-ascii?Q?3zEgupH+zZ2ZkDpcyoJGFE3Is9RqIJjwz0ugA+xOiRT8aVMQPadJh2fhS4ZQ?=
 =?us-ascii?Q?xwwq8y5L1MtxeKpkhHbLiVxlugzIp+4C5Y5wQOewzQjV7GP7lJ9kUAXEf3At?=
 =?us-ascii?Q?IEV3pqvE/cxRY+HQN627n9B51Tt9K4xyt30Q5zwLWXLKZsnPBOUJOrc4RXs6?=
 =?us-ascii?Q?UBdG9+Nn9zZrvRwNviISPMxnXZdSvaeP+uv5ipm/VFhY6tM+uIke2N9SVW0X?=
 =?us-ascii?Q?6Mr1QGQz0YjXh9hvOKkRZORJnEFKwPpGrRojpsvVqusXvPpqUDgD4TrSMJAl?=
 =?us-ascii?Q?R5j+ydttRBqyxvvRgXqzi1IYIM7c0Olfzi/YAd8B9dkzZPtIwrP0QV+geSAf?=
 =?us-ascii?Q?WDl2h+34bDXVWy0D+raqsddev53UxZMScwIk3R993LjcpJQip8p1aRwl9HaA?=
 =?us-ascii?Q?FllqcamtGIr+us2drT9QMjT3CyXacVonSgnL7fvQe7jLCoEdimdXLxZGclms?=
 =?us-ascii?Q?tPNDCrN7v5mU78by5+HW4g+T+anYdN1hgo4aJs/MesK6ZLS25DNKRk5sKFF1?=
 =?us-ascii?Q?PEyu9g8O0MF+bVjIjXpD1h0gfsGTbk+jXtYYmyA4C6nO/54Uf+y926HurjG+?=
 =?us-ascii?Q?T47YZ9WX+VCrWMc8I5q4A0rOEBOiK44nnIsWVs3WanTX0DaJcefjUDUoqPMk?=
 =?us-ascii?Q?qBtF6t3iCApOF6qk0Uh/Gm7DE7NFMfB+YSM3zMlwtkR/WdPELVxaUzVIUTlJ?=
 =?us-ascii?Q?qcYKiPrUaz9+s56Nio/OPhfor28qtc+n3YUS3YBWUwRy6bjk1sJSg+XsQsVV?=
 =?us-ascii?Q?J+56ZNfY4/6TViLIEDKeF7zhdhi+a9rhf/fCsPhu/BZBCRM0Vju2UJ4Egv0I?=
 =?us-ascii?Q?6vqGTAeBxI+sPwxelyq3CXozoeDyoWtMf5Re+5xc/lAmsiYGLecPl4kTSOq2?=
 =?us-ascii?Q?xKFsJn5kLQj0Wj3JLiIdg1YYTx5zs8TLSY85oOcD4t46JgVAeQhe7sHP39F8?=
 =?us-ascii?Q?NMcpm74Cevm/NLIkXD+MvpdhaaNe+7ZcjXgCYUtX6CrAu5EKU7B9tzOjgVsd?=
 =?us-ascii?Q?fwH8nVZcYFkXIcvjsesTfwWcMK8lnx1K5KVDRlHv99UFEmQvhSzmScoFU4k8?=
 =?us-ascii?Q?d+2m4Xo84PBmwElH+sJCNnTWgWD02DRw+mt3Sw59a5XGShtOOjsczRuaVvWV?=
 =?us-ascii?Q?9uKEIJfEhJHVXIHGlcHna1J9kvZHxkuJq/S7ZOvBk5QMqkS5yiyXtwUhvh6H?=
 =?us-ascii?Q?hQgh5wShDZ11KiEQq5plflxiLTSlOA57jM1IK6rVFyTJfD60+RIyw47J/tjX?=
 =?us-ascii?Q?s73anBCLWQZLXhQIb+pyfWqnt7nLp3WcuhRn7C/G23b0oe5KBdWKRo7uUbq3?=
 =?us-ascii?Q?8SKH9MuR8FQJtDpE83tr2kYFszTF?=
X-Forefront-Antispam-Report:
	CIP:165.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: 31 Jul 2024 16:36:44.6267
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ec1766cf-156e-4fde-e843-08dcb17ef6f7
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015C7.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8103

Added a sample of market, product and design requirements. This is to
help explain how we are writing the requirements and understand the
context of the first patch.
We will be sending these requirements for review in the subsequent
patches.

Please do not merge this patch.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 .../reqs/design_reqs/arm64/emulated_uart.rst  | 240 ++++++++++++++++++
 .../reqs/design_reqs/arm64/generic_timer.rst  | 146 +++++++++++
 docs/fusa/reqs/design_reqs/xen_version.rst    | 207 +++++++++++++++
 docs/fusa/reqs/market_reqs/reqs.rst           |  77 ++++++
 docs/fusa/reqs/product_reqs/reqs.rst          |  64 +++++
 5 files changed, 734 insertions(+)
 create mode 100644 docs/fusa/reqs/design_reqs/arm64/emulated_uart.rst
 create mode 100644 docs/fusa/reqs/design_reqs/arm64/generic_timer.rst
 create mode 100644 docs/fusa/reqs/design_reqs/xen_version.rst
 create mode 100644 docs/fusa/reqs/market_reqs/reqs.rst
 create mode 100644 docs/fusa/reqs/product_reqs/reqs.rst

diff --git a/docs/fusa/reqs/design_reqs/arm64/emulated_uart.rst b/docs/fusa/reqs/design_reqs/arm64/emulated_uart.rst
new file mode 100644
index 0000000000..483db92fa8
--- /dev/null
+++ b/docs/fusa/reqs/design_reqs/arm64/emulated_uart.rst
@@ -0,0 +1,240 @@
+UART
+====
+
+The following are the requirements related to SBSA UART [1] emulated and
+exposed by Xen to Arm64 domains.
+
+Probe the UART device tree node
+-------------------------------
+
+`XenSwdgn~arm64_uart_probe_dt_node~1`
+
+Description:
+Xen shall generate a device tree node for the SBSA UART (in accordance to Arm
+SBSA UART device tree binding [2]) to allow domains to probe it.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Transmit data in software polling mode
+--------------------------------------
+
+`XenSwdgn~arm64_uart_transmit_data_poll_mode~1`
+
+Description:
+Domain shall transmit data in polling mode (i.e. without involving interrupts).
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Transmit data in interrupt driven mode
+--------------------------------------
+
+`XenSwdgn~arm64_uart_transmit_data_irq_mode~1`
+
+Description:
+Domain shall transmit data in interrupt driven mode.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Receive data in software polling mode
+-------------------------------------
+
+`XenSwdgn~arm64_uart_receive_data_polling_mode~1`
+
+Description:
+Domain shall receive data in polling mode (i.e. without involving interrupts).
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Receive data in interrupt driven mode
+-------------------------------------
+
+`XenSwdgn~arm64_uart_receive_data_interrupt_driven_mode~1`
+
+Description:
+Domain shall receive data in interrupt driven mode.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Access UART data register
+-------------------------
+
+`XenSwdgn~arm64_uart_access_data_register~1`
+
+Description:
+Domain shall access (read/write) UART data register.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Access UART receive status register
+-----------------------------------
+
+`XenSwdgn~arm64_uart_access_receive_status_register~1`
+
+Description:
+Domain shall access (read/write) UART receive status register.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Access UART flag register
+-------------------------
+
+`XenSwdgn~arm64_uart_access_flag_register~1`
+
+Description:
+Domain shall access (read only) UART flag register.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Access UART mask set/clear register
+-----------------------------------
+
+`XenSwdgn~arm64_uart_access_mask_register~1`
+
+Description:
+Domain shall access (read/write) UART mask set/clear register.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Access UART raw interrupt status register
+-----------------------------------------
+
+`XenSwdgn~arm64_uart_access_raw_interrupt_status_register~1`
+
+Description:
+Domain shall access (read only) UART raw interrupt status register.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Access UART masked interrupt status register
+--------------------------------------------
+
+`XenSwdgn~arm64_uart_access_mask_irq_status_register~1`
+
+Description:
+Domain shall access (read only) UART masked interrupt status register.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Access UART interrupt clear register
+------------------------------------
+
+`XenSwdgn~arm64_uart_access_irq_clear_register~1`
+
+Description:
+Domain shall access (write only) UART interrupt clear register.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Receive UART TX interrupt
+-------------------------
+
+`XenSwdgn~arm64_uart_receive_tx_irq~1`
+
+Description:
+Domain shall receive UART TX interrupt
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Receive UART RX interrupt reception
+-----------------------------------
+
+`XenSwdgn~arm64_uart_receive_rx_irq~1`
+
+Description:
+Domain shall receive UART RX interrupt
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+Initial State
+=============
+
+Access UART in an initial (reset) state
+---------------------------------------
+
+`XenSwdgn~arm64_uart_access_reset_state~1`
+
+Description:
+Domain shall be given the access to the UART in a state, where all registers
+hold the reset value according to the specification [3] (only for registers
+implemented as part of SBSA UART).
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_uart~1`
+
+| [1] Arm Base System Architecture, chapter B
+| [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/serial/arm_sbsa_uart.txt
+| [3] PrimeCell UART (PL011)
diff --git a/docs/fusa/reqs/design_reqs/arm64/generic_timer.rst b/docs/fusa/reqs/design_reqs/arm64/generic_timer.rst
new file mode 100644
index 0000000000..00228448a3
--- /dev/null
+++ b/docs/fusa/reqs/design_reqs/arm64/generic_timer.rst
@@ -0,0 +1,146 @@
+Generic Timer
+=============
+
+The following are the requirements related to ARM Generic Timer [1] interface
+exposed by Xen to Arm64 domains.
+
+Probe the Generic Timer device tree node from a domain
+------------------------------------------------------
+
+`XenSwdgn~arm64_probe_generic_timer_dt~1`
+
+Description:
+Xen shall generate a device tree node for the Generic Timer (in accordance to
+ARM architected timer device tree binding [2]) to allow domains to probe it.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_timer~1`
+
+Read system counter frequency
+-----------------------------
+
+`XenSwdgn~arm64_read_system_counter_freq~1`
+
+Description:
+Domain shall read the frequency of the system counter (either via CNTFRQ_EL0
+register or "clock-frequency" device tree property if present).
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_timer~1`
+
+Access CNTKCTL_EL1 system register from a domain
+------------------------------------------------
+
+`XenSwdgn~arm64_access_cntkctl_el1_system_register~1`
+
+Description:
+Domain shall access the counter-timer kernel control register to allow
+controlling the access to the timer from userspace (EL0).
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_timer~1`
+
+Access virtual timer from a domain
+----------------------------------
+
+`XenSwdgn~arm64_access_virtual_timer~1`
+
+Description:
+Domain shall access and make use of the virtual timer by accessing the following
+system registers:
+CNTVCT_EL0,
+CNTV_CTL_EL0,
+CNTV_CVAL_EL0,
+CNTV_TVAL_EL0.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_timer~1`
+
+Access physical timer from a domain
+-----------------------------------
+
+`XenSwdgn~arm64_access_physical_timer~1`
+
+Description:
+Domain shall access and make use of the physical timer by accessing the
+following system registers:
+CNTPCT_EL0,
+CNTP_CTL_EL0,
+CNTP_CVAL_EL0,
+CNTP_TVAL_EL0.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_timer~1`
+
+Trigger the virtual timer interrupt from a domain
+-------------------------------------------------
+
+`XenSwdgn~arm64_trigger_virtual_timer_interrupt~1`
+
+Description:
+Domain shall program the virtual timer to generate the interrupt when the
+asserted condition is met.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_timer~1`
+
+Trigger the physical timer interrupt from a domain
+--------------------------------------------------
+
+`XenSwdgn~arm64_trigger_physical_timer_interrupt~1`
+
+Description:
+Domain shall program the physical timer to generate the interrupt when the
+asserted condition is met.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_timer~1`
+
+Assumption of Use on the Firmware
+=================================
+
+Expose system timer frequency
+-----------------------------
+
+`XenSwdgn~arm64_program_cntfrq_el0_or_dt_prop_system_timer_freq~1`
+
+Description:
+Underlying firmware shall program CNTFRQ_EL0 with the system timer frequency.
+As an alternative, "clock-frequency" dt property (in the host device tree) can
+also be used to specify the system timer frequency. This helps in case of buggy
+firmware when CNTFRQ_EL0 is programmed incorrectly or not programmed at all.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~emulated_timer~1`
diff --git a/docs/fusa/reqs/design_reqs/xen_version.rst b/docs/fusa/reqs/design_reqs/xen_version.rst
new file mode 100644
index 0000000000..c5c58bb2df
--- /dev/null
+++ b/docs/fusa/reqs/design_reqs/xen_version.rst
@@ -0,0 +1,207 @@
+Hypercall xen_version
+=====================
+
+The following are the requirements related to __HYPERVISOR_xen_version hypercall
+[1] exposed by Xen to Arm64 and AMD64 PVH domains.
+
+Access hypercall __HYPERVISOR_xen_version for getting xen version
+-----------------------------------------------------------------
+
+`XenSwdgn~access_hyp_xen_version_read_ver~1`
+
+Description:
+Domain shall access __HYPERVISOR_xen_version passing XENVER_version
+as a command.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+Validate the xen version returned by the XENVER_version command
+---------------------------------------------------------------
+
+`XenSwdgn~validate_version_hyp_xen_version~1`
+
+Description:
+The xen version returned should correspond to 4.18.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+Access hypercall __HYPERVISOR_xen_version for getting xen extraversion
+----------------------------------------------------------------------
+
+`XenSwdgn~access_hyp_xen_version_get_extraversion~1`
+
+Description:
+Domain shall access __HYPERVISOR_xen_version passing XENVER_extraversion as a
+command.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+Access hypercall __HYPERVISOR_xen_version for getting compile information
+-------------------------------------------------------------------------
+
+`XenSwdgn~access_hyp_xen_version_get_compile_info~1`
+
+Description:
+Domain shall access __HYPERVISOR_xen_version passing XENVER_compile_info as a
+command.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+Access hypercall __HYPERVISOR_xen_version for getting capabilities
+------------------------------------------------------------------
+
+`XenSwdgn~access_hyp_xen_version_get_capabilities~1`
+
+Description:
+Domain shall access __HYPERVISOR_xen_version passing XENVER_capabilities as a
+command.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+Validate the capabilities returned by XENVER_capabilities command
+-----------------------------------------------------------------
+
+`XenSwdgn~validate_cap_return_xenver_capabilities~1`
+
+Description:
+For Arm64, the capabilities returned should be xen-*-aarch64 string.
+For AMD64 PVH, the capabilities returned should be hvm-*-x86_64 string.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+Access hypercall __HYPERVISOR_xen_version for getting changeset
+---------------------------------------------------------------
+
+`XenSwdgn~access_hyp_xen_version_get_changeset~1`
+
+Description:
+Domain shall access __HYPERVISOR_xen_version passing XENVER_changeset
+as a command.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+Access hypercall __HYPERVISOR_xen_version for getting features
+--------------------------------------------------------------
+
+`XenSwdgn~access_hyp_xen_version_get_features~1`
+
+Description:
+Domain shall access __HYPERVISOR_xen_version passing XENVER_get_features as a
+command.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+Check supported features returned by the XENVER_get_features command when the submap index passed is 0
+------------------------------------------------------------------------------------------------------
+
+`XenSwdgn~check_supported_features_xenver_get_features~1`
+
+Description:
+For Arm64, the bit position corresponding to the supported features should be 1.
+Examples of Arm64 supported features:
+
+ * XENFEAT_ARM_SMCCC_supported
+
+For AMD64 PVH, the bit positions corresponding to the supported features should
+be 1.
+Examples of AMD64 PVH supported features:
+
+ * XENFEAT_memory_op_vnode_supported
+ * XENFEAT_vcpu_time_phys_area
+ * XENFEAT_runstate_phys_area
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+Access hypercall __HYPERVISOR_xen_version for getting guest handle
+------------------------------------------------------------------
+
+`XenSwdgn~access_hyp_xen_version_get_guest_handle~1`
+
+Description:
+Domain shall access __HYPERVISOR_xen_version passing XENVER_guest_handle as a
+command.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+Access hypercall __HYPERVISOR_xen_version for getting xen pagesize
+------------------------------------------------------------------
+
+`XenSwdgn~access_hyp_xen_version_get_xen_pagesize~1`
+
+Description:
+Domain shall access __HYPERVISOR_xen_version passing XENVER_pagesize
+as a command and NULL as the guest handle.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+Validate the page size returned by XENVER_pagesize command
+----------------------------------------------------------
+
+`XenSwdgn~validate_page_size_xenver_pagesize_cmd~1`
+
+Description:
+The returned page size should be 4KB.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hypercall~1`
+
+| [1] https://xenbits.xenproject.org/gitweb/?p=xen.git;a=blob;f=xen/include/public/version.h;hb=HEAD
diff --git a/docs/fusa/reqs/market_reqs/reqs.rst b/docs/fusa/reqs/market_reqs/reqs.rst
new file mode 100644
index 0000000000..a3f84cd503
--- /dev/null
+++ b/docs/fusa/reqs/market_reqs/reqs.rst
@@ -0,0 +1,77 @@
+Functional Requirements
+=======================
+
+Run Arm64 VMs
+-------------
+
+`XenMkt~run_arm64_vms~1`
+
+Description:
+Xen shall run Arm64 VMs.
+
+Rationale:
+
+Comments:
+
+Needs:
+ - XenProd
+
+Run AMD-x86 VMs
+---------------
+
+`XenMkt~run_x86_vms~1`
+
+Description:
+Xen shall run AMD-x86 VMs.
+
+Rationale:
+
+Comments:
+
+Needs:
+ - XenProd
+
+Support non paravirtualised VMs
+-------------------------------
+
+`XenMkt~non_pv_vms_support~1`
+
+Description:
+Xen shall support running guests which are not virtualisation aware.
+
+Rationale:
+
+Comments:
+
+Needs:
+ - XenProd
+
+Provide console to the VMs
+--------------------------
+
+`XenMkt~provide_console_vms~1`
+
+Description:
+Xen shall provide a console to a VM.
+
+Rationale:
+
+Comments:
+
+Needs:
+ - XenProd
+
+Provide timer to the VMs
+------------------------
+
+`XenMkt~provide_timer_vms~1`
+
+Description:
+Xen shall provide a timer to a VM.
+
+Rationale:
+
+Comments:
+
+Needs:
+ - XenProd
diff --git a/docs/fusa/reqs/product_reqs/reqs.rst b/docs/fusa/reqs/product_reqs/reqs.rst
new file mode 100644
index 0000000000..9954b7532a
--- /dev/null
+++ b/docs/fusa/reqs/product_reqs/reqs.rst
@@ -0,0 +1,64 @@
+Domain Creation And Runtime
+===========================
+
+Emulated UART
+-------------
+
+`XenProd~emulated_uart~1`
+
+Description:
+Xen shall emulate Arm SBSA UART on behalf of the domains.
+
+Rationale:
+
+Comments:
+The domains can use it to write/read to/from the console.
+
+Covers:
+ - `XenMkt~run_arm64_vms~1`
+ - `XenMkt~non_pv_vms_support~1`
+ - `XenMkt~provide_console_vms~1`
+
+Needs:
+ - XenSwdgn
+
+Emulated Timer
+--------------
+
+`XenProd~emulated_timer~1`
+
+Description:
+Xen shall emulate Arm Generic Timer timer on behalf of domains.
+
+Rationale:
+
+Comments:
+The domains can use it for e.g. scheduling.
+
+Covers:
+ - `XenMkt~run_arm64_vms~1`
+ - `XenMkt~non_pv_vms_support~1`
+ - `XenMkt~provide_timer_vms~1`
+
+Needs:
+ - XenSwdgn
+
+Version Hypercall
+-----------------
+
+`XenProd~version_hypercall~1`
+
+Description:
+Xen shall provide an interface to expose Xen version, type and compile
+information.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenMkt~run_arm64_vms~1`
+ - `XenMkt~run_x86_vms~1`
+
+Needs:
+ - XenSwdgn
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 16:47:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 16:47:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769019.1179923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZCTh-0005NY-H6; Wed, 31 Jul 2024 16:47:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769019.1179923; Wed, 31 Jul 2024 16: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 1sZCTh-0005NR-ET; Wed, 31 Jul 2024 16:47:05 +0000
Received: by outflank-mailman (input) for mailman id 769019;
 Wed, 31 Jul 2024 16: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=F/qb=O7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sZCTf-0005BK-N9
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 16:47:03 +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 8293bb66-4f5c-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 18:47:02 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a7aabb71bb2so816321466b.2
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 09:47:02 -0700 (PDT)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab536cesm786447566b.84.2024.07.31.09.47.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 31 Jul 2024 09: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: 8293bb66-4f5c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722444421; x=1723049221; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=X7GvT4JakZHIAsuI/+PcazpFhy1evIsVaV/HmXZwsuY=;
        b=UPIyV1NP92hSLYZDnirqrXdHgov/qRJTgiWWLPWXHdwDoCcr6rEzZWEJekFRUkj4Cg
         qSrL7t4HmVMM4w6Um/dHXuKjVBfAlVZYTRJW2a2/Z/mz2ezzEmQA2KF3ebVjayOu/JtD
         v+AskMUEPhpUVWQefhdJoXrrjQTTRmc+LAS4g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722444421; x=1723049221;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X7GvT4JakZHIAsuI/+PcazpFhy1evIsVaV/HmXZwsuY=;
        b=APYkxdjHpZdMNPsTQ5N0UWXFE93a4J4nVkIeIFRx0OWpaGi4CfZaQFuY2bsUcoECcX
         +UKhgd/gOZpsZPgzQ9/7SvYe2vI0GfYmfnvTOiz/j6tCzlb1airONG/y/21ND22AkkJs
         aKy9bRi5hOGwfUi9AEXCnKDn+eRk4Xs0f4W0M9moX0l3+260fhEB9dxNWts4xdIV5m5p
         +bLvdzvDwm4gFDyn9e/Xf7YFTVbzVH6lRxNvprsjCDPTfRcUXl6jH9aTCIbPoljaCntc
         o/YfMKezVABCbL9n0ucmKC3bt9KgrjGFE2w0bJLUl34N96hShjqg+owUiO2FUKhGkO51
         qnAw==
X-Forwarded-Encrypted: i=1; AJvYcCV4SgKBwQlRzhjk2JLb4NqFHjveWGcffeB4fErJQqMWv+H8NkYv1yK0jpLdzqDOUvCa8wttt8yKK1pFm+oYg6crQvXmNomNoTgMyTih2FI=
X-Gm-Message-State: AOJu0Yx4s8k2rL/8mbau8c4KVR7Sils7PWdr3YdWdvNsS0zNUFjFMb6B
	S2nKT3bIeJRPjbUIVJb+FC6oDtJUjv8MvGabcaFR90pPF+fcRHNGiTF2VLFxgME=
X-Google-Smtp-Source: AGHT+IEGdSnD+oYgAbwL1NaAtJmeYpj7IFthJ7cQLrcUNYR2Kh++n8GnJUwFQidVHlBAuZ82DlOVVA==
X-Received: by 2002:a17:907:18c6:b0:a7d:a080:bb3 with SMTP id a640c23a62f3a-a7da0800e94mr134395366b.33.1722444421263;
        Wed, 31 Jul 2024 09:47:01 -0700 (PDT)
Message-ID: <e560b170-b00f-415c-9e45-3c287ffd3b3b@citrix.com>
Date: Wed, 31 Jul 2024 17:47:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] x86/dom0: only disable SMAP for the PV dom0 build
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20240730152855.48745-1-roger.pau@citrix.com>
 <20240730152855.48745-3-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20240730152855.48745-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/07/2024 4:28 pm, Roger Pau Monne wrote:
> The PVH dom0 builder doesn't switch page tables and has no need to run with
> SMAP disabled.
>
> Use stac() and clac(), as that's safe to use even if events would hit in the
> middle of the region with SMAP disabled.  Nesting stac() and clac() calls is
> not safe, so the stac() call is done strictly after elf_load_binary() because
> that uses raw_{copy_to,clear}_guest() accessors which toggle SMAP.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Summarising a discussion on Matrix.

There are 3 options.

1) Simply reposition the write_cr4()/cr4_pv32_mask adjustments.
2) This form (use stac/clac instead of playing with cr4).
3) Delay the original set_in_cr4(SMAP).

As proved by the confusion thus far, cr4_pv32_mask adjustments are
fragile and can go unnoticed in the general case (need a lucky watchdog
NMI hit to trigger).  Hence I'd prefer to remove the adjustments.

Using stac()/clac() is much easier.  It is fragile because of nesting
(no AC save/restore infrastructure), but any mistake here will be picked
up reliably in Gitlab CI because both adl-* and zen3p-* support SMAP.

Personally I think option 2 is better than 1, hence why I suggested it. 
It's got a fragile corner case but will be spotted reliably.

However, it occurs to me that option 3 exists as well... just delay
setting SMAP until after dom0 is made.  We have form now with only
activating CET-SS on the way out of __start_xen().

Furthermore, option 3 would allow us to move the cr4_pv32_mask
adjustment into set_in_cr4() and never need to opencode it.

(Although this is a bit tricky given the current code layout. 
cr4_pv32_mask also wants to be __ro_after_init and non-existent in a
!PV32 build.)

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 17:25:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 17:25:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769032.1179936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZD4Z-0003QV-6B; Wed, 31 Jul 2024 17:25:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769032.1179936; Wed, 31 Jul 2024 17:25: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 1sZD4Z-0003QO-3Z; Wed, 31 Jul 2024 17:25:11 +0000
Received: by outflank-mailman (input) for mailman id 769032;
 Wed, 31 Jul 2024 17:25:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZD4X-0003QE-Of; Wed, 31 Jul 2024 17:25:09 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZD4X-0000gZ-Fi; Wed, 31 Jul 2024 17:25:09 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZD4X-00026K-0A; Wed, 31 Jul 2024 17:25:09 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZD4W-0005sC-Vr; Wed, 31 Jul 2024 17:25:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=7xlau0uEs/8pjcqteJ47mdx7TQO7cgOG8sbGGUPfK0c=; b=eFVE0rmPofxAITdF6AXzwrt/0w
	qSdBL/lwjUcZqtXt5X7sT47bu325piv4yM18Y/MDUovRALgGXMjOUDPeJZq3PNlK4etCKfRpM1py9
	8MloSx8JagqTd7YMihMHRuUOPgyufjjxdX9FGHdNCc/TqH3+rM6cnDuSSTb0QF9wAwYQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187069-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 187069: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-arm64-arm64-examine:reboot:fail:regression
    linux-linus:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit2:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-credit1:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-thunderx:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-raw:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl-vhd:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-libvirt-xsm:xen-boot:fail:regression
    linux-linus:test-arm64-arm64-xl:xen-boot:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-raw:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c91a7dee0555f6f9d3702d86312382e4c4729d0a
X-Osstest-Versions-That:
    linux=f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 17:25:08 +0000

flight 187069 linux-linus real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187069/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine      8 reboot                   fail REGR. vs. 186827
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit2   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-credit1   8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-thunderx  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-raw  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl-vhd       8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-libvirt-xsm  8 xen-boot                 fail REGR. vs. 186827
 test-arm64-arm64-xl           8 xen-boot                 fail REGR. vs. 186827

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 186827
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 186827
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 186827
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 186827
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-qcow2    15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-raw      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-raw      15 saverestore-support-check    fail   never pass

version targeted for testing:
 linux                c91a7dee0555f6f9d3702d86312382e4c4729d0a
baseline version:
 linux                f83e38fc9f1092f8a7a65ff2ea6a1ea6502efaf0

Last test of basis   186827  2024-07-16 19:43:06 Z   14 days
Failing since        186925  2024-07-20 09:44:52 Z   11 days   26 attempts
Testing same since   187069  2024-07-31 02:19:36 Z    0 days    1 attempts

------------------------------------------------------------
2004 people touched revisions under test,
not listing them all

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          fail    
 test-armhf-armhf-xl                                          pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-qemuu-freebsd11-amd64                       pass    
 test-amd64-amd64-qemuu-freebsd12-amd64                       pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  fail    
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     fail    
 test-armhf-armhf-examine                                     pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-xl-qcow2                                    pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 fail    
 test-amd64-amd64-xl-raw                                      pass    
 test-armhf-armhf-xl-raw                                      pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 223741 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 19:54:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 19:54:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769055.1179946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZFOu-0006CM-5Y; Wed, 31 Jul 2024 19:54:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769055.1179946; Wed, 31 Jul 2024 19: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 1sZFOu-0006CF-37; Wed, 31 Jul 2024 19:54:20 +0000
Received: by outflank-mailman (input) for mailman id 769055;
 Wed, 31 Jul 2024 19:54:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZFOt-0006C5-D9; Wed, 31 Jul 2024 19:54:19 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZFOt-0003Kd-7H; Wed, 31 Jul 2024 19:54:19 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZFOs-0000yL-Ni; Wed, 31 Jul 2024 19:54:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZFOs-0006Wb-ND; Wed, 31 Jul 2024 19:54:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kg7xTE35oBUiQ7MbJmJpwOKQY2iRoCBpikcj+zil6R4=; b=LlikNVKdcnTt/nfr1j1JmlikEe
	veBpFj93o6q99o4Y/w1Hw0dg8y2uQKnA1V9USAhbh92C2hXRsbkKM1ZHiAp2v5GqDLoeXby+Ohbs3
	h9vQgjjerTzYx+rN3gS54pzW00CymxdMo/sGcOK5c2+bxrm/8yrfHyaggP8LNe1afygo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187071-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 187071: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=3033a9380fa67754c9be050949ebf09a0cdee6d6
X-Osstest-Versions-That:
    libvirt=7428738597306dbb03bffc9db1cf8ea1fc063d50
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 19:54:18 +0000

flight 187071 libvirt real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187071/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 187050
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt     16 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-arm64-arm64-libvirt-qcow2 15 saverestore-support-check    fail never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-vhd 15 saverestore-support-check    fail   never pass

version targeted for testing:
 libvirt              3033a9380fa67754c9be050949ebf09a0cdee6d6
baseline version:
 libvirt              7428738597306dbb03bffc9db1cf8ea1fc063d50

Last test of basis   187050  2024-07-30 04:18:47 Z    1 days
Testing same since   187071  2024-07-31 04:18:50 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  Göran Uddeborg <goeran@uddeborg.se>
  Michal Privoznik <mprivozn@redhat.com>
  Weblate <noreply@weblate.org>
  김인수 <simmon@nplob.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-amd64-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-libvirt-vhd                                 pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   7428738597..3033a9380f  3033a9380fa67754c9be050949ebf09a0cdee6d6 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 20:34:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 20:34:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769073.1179963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZG1M-0003Q0-89; Wed, 31 Jul 2024 20:34:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769073.1179963; Wed, 31 Jul 2024 20: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 1sZG1M-0003Pt-5f; Wed, 31 Jul 2024 20:34:04 +0000
Received: by outflank-mailman (input) for mailman id 769073;
 Wed, 31 Jul 2024 20: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=F/qb=O7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1sZG1L-0003Pn-3B
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 20:34:03 +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 375f8396-4f7c-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 22:33:59 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a7a83a968ddso859901066b.0
 for <xen-devel@lists.xenproject.org>; Wed, 31 Jul 2024 13:33:59 -0700 (PDT)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a7acab4ddb4sm804820366b.69.2024.07.31.13.33.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 31 Jul 2024 13:33: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: 375f8396-4f7c-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1722458039; x=1723062839; 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=qZAgm+BEE4HVbbBTkzbht3GB6CaD8+68+119ANrOrXI=;
        b=lvin6LvhF/4jIYlTIvHuaZ79JncdsRgHbGHEd88tgsJ/RQCoruIi0CvJGly8wEyQT+
         /tur7uZOGjr3DJRB8pLjDxSJnecn9dPMe43lnHd2WZiY8ajgVu7pNL/I6HS3/6WPgTma
         Tz3aMNK27sOxHpGHhsWmqaUQjCJ91i3Ucgoo0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1722458039; x=1723062839;
        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=qZAgm+BEE4HVbbBTkzbht3GB6CaD8+68+119ANrOrXI=;
        b=RIrjK4TsXaxc+Mkmk2UobfwRHagh6/cEKE/upHUpTMYA5ogo9FmBZ0412sMezFCvtM
         sh9OFsPh94YmsHE5vxCMc7QSOdXRXRHybWc+ZUU9/1+h+Nf1OKKYZXjsRnvplvkK34D3
         gucHCq5H/eZ4kTaeIFSGnkKXPLSjCwnp91HzuoFUkXnQuGwP5JwbKgb7VQdOG0uyddil
         fwxWjH0QshX72TAQvZU0qWi8BMK9ZrQ0lCcTmR9aJi00xALlgRI8RgRevE/DlGnKP80W
         KzQ0pfMj7/QFeDI4+ZLkcK/PI2n7mkLwK1LPPBGsRtt9AlsqWH7ZdnbhGGLg9hqlfLM3
         2AbQ==
X-Gm-Message-State: AOJu0YxGzMos1e+b+o8DJibygq10I6JYOYXondsKa8NL9QJmhw+aw/M1
	1i9KM9Rx3Hu+EZoaZztW9pkVinF4SU+Qhr/gaW3u6HWXhb81pzpvkxoYjDX5hy5AmH1YT13MhVC
	i
X-Google-Smtp-Source: AGHT+IFFr3GKYehPbPQj3wP+jhqOSAVHkt8HMfV1NSK5khxISP7/pRSqWiwh0xwzJyrux3PaVk+6Ig==
X-Received: by 2002:a17:907:7e8a:b0:a7a:9144:e23a with SMTP id a640c23a62f3a-a7daf659c0cmr23077866b.43.1722458038561;
        Wed, 31 Jul 2024 13:33:58 -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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH] x86/domain: Fix domlist_insert() updating the domain hash
Date: Wed, 31 Jul 2024 21:33:55 +0100
Message-Id: <20240731203355.3652182-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

A last minute review request was to dedup the expression calculating the
domain hash bucket.

While the code reads correctly, it is buggy because rcu_assign_pointer() is a
criminally stupid API assigning by name not value, and - contrary to it's name
- does not hide an indirection.

Therefore, rcu_assign_pointer(bucket, d); updates the local bucket variable on
the stack, not domain_hash[], causing all subsequent domid lookups to fail.

Rework the logic to use pd in the same way that domlist_remove() does.

Fixes: 19995bc70cc6 ("xen/domain: Factor domlist_{insert,remove}() out of domain_{create,destroy}()")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1395978459
---
 xen/common/domain.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 8d8f40ccb245..92263a4fbdc5 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -70,7 +70,7 @@ struct domain *domain_list;
  */
 static void domlist_insert(struct domain *d)
 {
-    struct domain **pd, *bucket;
+    struct domain **pd;
 
     spin_lock(&domlist_update_lock);
 
@@ -79,12 +79,12 @@ static void domlist_insert(struct domain *d)
         if ( (*pd)->domain_id > d->domain_id )
             break;
 
-    bucket = domain_hash[DOMAIN_HASH(d->domain_id)];
-
     d->next_in_list = *pd;
-    d->next_in_hashbucket = bucket;
     rcu_assign_pointer(*pd, d);
-    rcu_assign_pointer(bucket, d);
+
+    pd = &domain_hash[DOMAIN_HASH(d->domain_id)];
+    d->next_in_hashbucket = *pd;
+    rcu_assign_pointer(*pd, d);
 
     spin_unlock(&domlist_update_lock);
 }
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Wed Jul 31 21:26:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 21:26:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769089.1179973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZGpq-00023d-2P; Wed, 31 Jul 2024 21:26:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769089.1179973; Wed, 31 Jul 2024 21:26:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZGpp-00023W-Va; Wed, 31 Jul 2024 21:26:13 +0000
Received: by outflank-mailman (input) for mailman id 769089;
 Wed, 31 Jul 2024 21:26:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZGpo-00023L-HL; Wed, 31 Jul 2024 21:26:12 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZGpo-0004yL-D2; Wed, 31 Jul 2024 21:26:12 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZGpn-0004bP-UM; Wed, 31 Jul 2024 21:26:12 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZGpn-0005mR-Tu; Wed, 31 Jul 2024 21:26: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4+9Nl8CbQqOaz8rsMA2pCnu3jR5rmYrMKl7Q8/+9j60=; b=YiUe8SnFDHCo2JBDDcADfwCpO3
	gi1dE4td7PD246KWHblcrmfk5+CketVjPU2r85XxUihRsxj3gXS2OrqIpk8jCnez3WkFmxEsoQNS/
	0SkPWsIpK3n8GklMKeTH9LlNbVrs6H7SQuANWBTAxyYoGE0ttYuHz+5A1JhsQM2dKneU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187088-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 187088: regressions - FAIL
X-Osstest-Failures:
    xen-unstable-smoke:test-amd64-amd64-xl-qemuu-debianhvm-amd64:xen-boot:fail:regression
    xen-unstable-smoke:test-amd64-amd64-libvirt:xen-boot:fail:regression
    xen-unstable-smoke:test-arm64-arm64-xl-xsm:xen-boot:fail:regression
    xen-unstable-smoke:test-armhf-armhf-xl:xen-boot:fail:regression
X-Osstest-Versions-This:
    xen=e05e3cedb6dbe50e43b1d6a647c16a47219fde1d
X-Osstest-Versions-That:
    xen=6979e17b3f8a18d2ba5dbd4f0623c4061dae0dfc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 21:26:11 +0000

flight 187088 xen-unstable-smoke real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187088/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-debianhvm-amd64  8 xen-boot    fail REGR. vs. 187068
 test-amd64-amd64-libvirt      8 xen-boot                 fail REGR. vs. 187068
 test-arm64-arm64-xl-xsm       8 xen-boot                 fail REGR. vs. 187068
 test-armhf-armhf-xl           8 xen-boot                 fail REGR. vs. 187068

version targeted for testing:
 xen                  e05e3cedb6dbe50e43b1d6a647c16a47219fde1d
baseline version:
 xen                  6979e17b3f8a18d2ba5dbd4f0623c4061dae0dfc

Last test of basis   187068  2024-07-31 02:02:09 Z    0 days
Failing since        187075  2024-07-31 11:02:13 Z    0 days    2 attempts
Testing same since   187088  2024-07-31 17:00:43 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Fouad Hilly <fouad.hilly@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
  Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>
  Roger Pau Monné <roger.pau@citrix.com>
  Simone Ballarin  <simone.ballarin@bugseng.com>

jobs:
 build-arm64-xsm                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-amd64-libvirt                                          pass    
 test-armhf-armhf-xl                                          fail    
 test-arm64-arm64-xl-xsm                                      fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    fail    
 test-amd64-amd64-libvirt                                     fail    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 383 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 21:27:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 21:27:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769099.1179983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZGrV-0002np-Ch; Wed, 31 Jul 2024 21:27:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769099.1179983; Wed, 31 Jul 2024 21:27: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 1sZGrV-0002ni-A0; Wed, 31 Jul 2024 21:27:57 +0000
Received: by outflank-mailman (input) for mailman id 769099;
 Wed, 31 Jul 2024 21:27: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=8eAs=O7=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sZGrU-0002nc-US
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 21:27:56 +0000
Received: from sonata.ens-lyon.org (sonata.ens-lyon.org [140.77.166.138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bef3cc30-4f83-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 23:27:53 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 5335FA02F7;
 Wed, 31 Jul 2024 23:27:53 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 6Iz8zjDtMuoK; Wed, 31 Jul 2024 23:27:53 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id 16AB0A02F3;
 Wed, 31 Jul 2024 23:27:53 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sZGrQ-0000000AtAZ-2sPc; Wed, 31 Jul 2024 23:27:52 +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: bef3cc30-4f83-11ef-8776-851b0ebba9a2
Date: Wed, 31 Jul 2024 23:27:52 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 2/3] mini-os: mm: switch need_pgt() to use walk_pt()
Message-ID: <20240731212752.zd5njpd7kgoc433d@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240731130026.8467-1-jgross@suse.com>
 <20240731130026.8467-3-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240731130026.8467-3-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Hello,

Juergen Gross, le mer. 31 juil. 2024 15:00:25 +0200, a ecrit:
> -pgentry_t *need_pgt(unsigned long va)
> +static int need_pgt_func(unsigned long va, unsigned int lvl, bool is_leaf,
> +                         pgentry_t *pte, void *par)
>  {
[...]
> +    if ( lvl == L1_FRAME || (*pte & _PAGE_PRESENT) )

Did you mean (*pte & _PAGE_PSE)?

>      {
> +        *result = pte;
> +        return 1;
>      }

Samuel


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 21:33:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 21:33:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769113.1180001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZGwf-0004Or-38; Wed, 31 Jul 2024 21:33:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769113.1180001; Wed, 31 Jul 2024 21:33: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 1sZGwe-0004Ok-WC; Wed, 31 Jul 2024 21:33:16 +0000
Received: by outflank-mailman (input) for mailman id 769113;
 Wed, 31 Jul 2024 21:33: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=8eAs=O7=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sZGwd-0004MN-QJ
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 21:33:15 +0000
Received: from sonata.ens-lyon.org (sonata.ens-lyon.org [140.77.166.138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d9b6987-4f84-11ef-bc02-fd08da9f4363;
 Wed, 31 Jul 2024 23:33:13 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 2F66CA02F7;
 Wed, 31 Jul 2024 23:33:13 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id L05rIJDNHBTv; Wed, 31 Jul 2024 23:33:13 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id 1106FA02F3;
 Wed, 31 Jul 2024 23:33:13 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sZGwa-0000000B7TN-2lLh; Wed, 31 Jul 2024 23:33:12 +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: 7d9b6987-4f84-11ef-bc02-fd08da9f4363
Date: Wed, 31 Jul 2024 23:33:12 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 1/3] mini-os: mm: introduce generic page table walk
 function
Message-ID: <20240731213312.7qztj2qwv7g4if5e@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240731130026.8467-1-jgross@suse.com>
 <20240731130026.8467-2-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240731130026.8467-2-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le mer. 31 juil. 2024 15:00:24 +0200, a ecrit:
> +            ptindex[lvl] = (va >> ptdata[lvl].shift) &
> +                           (ptdata[lvl].entries - 1);

It seems that this kind of va+lvl-to-index computation happens several
times? It's probably worth making it a macro.

Samuel


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 21:38:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 21:38:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769125.1180015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZH1E-0005Hm-NA; Wed, 31 Jul 2024 21:38:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769125.1180015; Wed, 31 Jul 2024 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 1sZH1E-0005HV-I1; Wed, 31 Jul 2024 21:38:00 +0000
Received: by outflank-mailman (input) for mailman id 769125;
 Wed, 31 Jul 2024 21:37: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=8eAs=O7=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1sZH1D-0005H6-2T
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 21:37:59 +0000
Received: from sonata.ens-lyon.org (sonata.ens-lyon.org [140.77.166.138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24e76c74-4f85-11ef-8776-851b0ebba9a2;
 Wed, 31 Jul 2024 23:37:54 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id E80C2A02F7;
 Wed, 31 Jul 2024 23:37:53 +0200 (CEST)
Received: from sonata.ens-lyon.org ([127.0.0.1])
 by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id rg-Yh-7p8FpE; Wed, 31 Jul 2024 23:37:53 +0200 (CEST)
Received: from begin (aamiens-653-1-111-57.w83-192.abo.wanadoo.fr
 [83.192.234.57])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest
 SHA256) (No client certificate requested)
 by sonata.ens-lyon.org (Postfix) with ESMTPSA id CC3F4A02F3;
 Wed, 31 Jul 2024 23:37:53 +0200 (CEST)
Received: from samy by begin with local (Exim 4.98)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1sZH17-0000000BKFG-1iMz; Wed, 31 Jul 2024 23:37:53 +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: 24e76c74-4f85-11ef-8776-851b0ebba9a2
Date: Wed, 31 Jul 2024 23:37:53 +0200
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Juergen Gross <jgross@suse.com>
Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org,
	wl@xen.org
Subject: Re: [PATCH 3/3] mini-os: mm: convert set_readonly() to use walk_pt()
Message-ID: <20240731213753.hduimhyf56bf7yr4@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org, wl@xen.org
References: <20240731130026.8467-1-jgross@suse.com>
 <20240731130026.8467-4-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20240731130026.8467-4-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le mer. 31 juil. 2024 15:00:26 +0200, a ecrit:
> +static int set_readonly_func(unsigned long va, unsigned int lvl, bool is_leaf,
> +                             pgentry_t *pte, void *par)
> +{
> +    struct set_readonly_par *ro = par;
>  
> +    mmu_updates[ro->count].ptr = virt_to_mach(pte);
> +    mmu_updates[ro->count].val = *pte & ~_PAGE_RW;
> +    ro->count++;
> +
> +    if ( (ro->count == L1_PAGETABLE_ENTRIES ||
> +          va + 2 * PAGE_SIZE > ro->etext) &&
> +         HYPERVISOR_mmu_update(mmu_updates, ro->count, NULL, DOMID_SELF) < 0 )
> +    {
> +        printk("ERROR: set_readonly(): PTE could not be updated\n");
> +        do_exit();
> +    }

Don't we also want to set ro->count to 0?
And assert that it is 0 after calling walk_pt in set_readonly, to make
sure the va + 2 * PAGE_SIZE > ro->etext test did work properly
(personally I would have rather made set_readonly call a last
HYPERVISOR_mmu_update in case ro->count is not 0, which looks more
robust that a quite magic-looking va + 2 * PAGE_SIZE > ro->etext test)

Samuel


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 21:46:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 21:46:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769137.1180025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZH98-0006r6-Cz; Wed, 31 Jul 2024 21:46:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769137.1180025; Wed, 31 Jul 2024 21:46:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZH98-0006qz-9M; Wed, 31 Jul 2024 21:46:10 +0000
Received: by outflank-mailman (input) for mailman id 769137;
 Wed, 31 Jul 2024 21:46:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZH96-0006qp-7P; Wed, 31 Jul 2024 21:46:08 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZH95-0005Jf-Vj; Wed, 31 Jul 2024 21:46:07 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1sZH95-0005D7-NQ; Wed, 31 Jul 2024 21:46:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1sZH95-0003uu-Mw; Wed, 31 Jul 2024 21:46: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=k1lCB5aot4UzVptA2u6cK9ofja0gHKWkfj/I2Itqj9E=; b=o/01X63gUfKdyLsEDCBHP31DQQ
	S04eJE6vNYZxBFuh3dxZXPJKn0eRiekhWYVRi8EfVJHtQwskMiXSAlqYN58hcq6kHPfuPV4rdEP++
	AC34490prZCHhuYDjCQTHKafB5dAQMNqS+9+b7p4PzF9SE49mkj/V9byapOw2KEkA0mU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-187090-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 187090: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=a9158fe9a670cebbb9d361a1b7fc3075fdf33393
X-Osstest-Versions-That:
    ovmf=1fc55a3933b0d17430c2857629ee54abefaad7eb
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 31 Jul 2024 21:46:07 +0000

flight 187090 ovmf real [real]
http://logs.test-lab.xenproject.org/osstest/logs/187090/

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 a9158fe9a670cebbb9d361a1b7fc3075fdf33393
baseline version:
 ovmf                 1fc55a3933b0d17430c2857629ee54abefaad7eb

Last test of basis   187085  2024-07-31 14:43:21 Z    0 days
Testing same since   187090  2024-07-31 20:15:41 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  xieyuanh <yuanhao.xie@intel.com>
  Yuanhao Xie <yuanhao.xie@intel.com>

jobs:
 build-amd64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
    http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
    http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


Pushing revision :

To xenbits.xen.org:/home/xen/git/osstest/ovmf.git
   1fc55a3933..a9158fe9a6  a9158fe9a670cebbb9d361a1b7fc3075fdf33393 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 22:07:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 22:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769147.1180035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZHU4-0001lK-44; Wed, 31 Jul 2024 22:07:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769147.1180035; Wed, 31 Jul 2024 22: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 1sZHU4-0001lD-0R; Wed, 31 Jul 2024 22:07:48 +0000
Received: by outflank-mailman (input) for mailman id 769147;
 Wed, 31 Jul 2024 22:07:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gQnf=O7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sZHU2-0001l7-Rp
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 22:07:46 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org
 [2604:1380:40e1:4800::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4fb55370-4f89-11ef-bc02-fd08da9f4363;
 Thu, 01 Aug 2024 00:07:45 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id DA4B4CE16B7;
 Wed, 31 Jul 2024 22:07:42 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 876A6C116B1;
 Wed, 31 Jul 2024 22:07: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: 4fb55370-4f89-11ef-bc02-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722463662;
	bh=lPcHPtCyt/+swhJML+l071bNUYE+IlYVfGp36N9DWN4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=tG8fCcdvWStSHmOgY3X0q5CiF1SLqP50eDCNknrlPdujwYoJEp/O7tdyi04OjQh8v
	 CHRe9H6hXzoxO2HHEz8X8QLBotSlXP6BX6YZWCh5D1pF93W6vY7y3E9WXY5wbjwD1a
	 e0bW1j2JkvpIT7IYHVibKY8uRFgDpUEX7CMdbnGMq+y173NozuBLYbWJVQ4v/dfSca
	 eY/L0N3fCNk8Zbtt6fTipRZ1DBdqfu3k0FwaKaCVl25D7wGr33ehmal7v17HB9Jgu0
	 y+AGwSxQejlrdqOGzOFK95ZWO4HGsKDsDQ8MQwgl3sUakflQQYiDumi7a2+fULPJQL
	 rO6/a4CQrKO3A==
Date: Wed, 31 Jul 2024 15:07:41 -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>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH] x86/domain: Fix domlist_insert() updating the domain
 hash
In-Reply-To: <20240731203355.3652182-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2407311507240.4857@ubuntu-linux-20-04-desktop>
References: <20240731203355.3652182-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 Wed, 31 Jul 2024, Andrew Cooper wrote:
> A last minute review request was to dedup the expression calculating the
> domain hash bucket.
> 
> While the code reads correctly, it is buggy because rcu_assign_pointer() is a
> criminally stupid API assigning by name not value, and - contrary to it's name
> - does not hide an indirection.
> 
> Therefore, rcu_assign_pointer(bucket, d); updates the local bucket variable on
> the stack, not domain_hash[], causing all subsequent domid lookups to fail.
> 
> Rework the logic to use pd in the same way that domlist_remove() does.
> 
> Fixes: 19995bc70cc6 ("xen/domain: Factor domlist_{insert,remove}() out of domain_{create,destroy}()")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>


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


> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> 
> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1395978459
> ---
>  xen/common/domain.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 8d8f40ccb245..92263a4fbdc5 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -70,7 +70,7 @@ struct domain *domain_list;
>   */
>  static void domlist_insert(struct domain *d)
>  {
> -    struct domain **pd, *bucket;
> +    struct domain **pd;
>  
>      spin_lock(&domlist_update_lock);
>  
> @@ -79,12 +79,12 @@ static void domlist_insert(struct domain *d)
>          if ( (*pd)->domain_id > d->domain_id )
>              break;
>  
> -    bucket = domain_hash[DOMAIN_HASH(d->domain_id)];
> -
>      d->next_in_list = *pd;
> -    d->next_in_hashbucket = bucket;
>      rcu_assign_pointer(*pd, d);
> -    rcu_assign_pointer(bucket, d);
> +
> +    pd = &domain_hash[DOMAIN_HASH(d->domain_id)];
> +    d->next_in_hashbucket = *pd;
> +    rcu_assign_pointer(*pd, d);
>  
>      spin_unlock(&domlist_update_lock);
>  }
> -- 
> 2.39.2
> 


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 23:03:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 23:03:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769163.1180048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZIM0-0001Tp-5L; Wed, 31 Jul 2024 23:03:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769163.1180048; Wed, 31 Jul 2024 23: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 1sZIM0-0001Ti-2i; Wed, 31 Jul 2024 23:03:32 +0000
Received: by outflank-mailman (input) for mailman id 769163;
 Wed, 31 Jul 2024 23:03: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=gQnf=O7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sZILy-0001Tc-SC
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 23:03:30 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18d73c4a-4f91-11ef-8776-851b0ebba9a2;
 Thu, 01 Aug 2024 01:03: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 3202962603;
 Wed, 31 Jul 2024 23:03:27 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BDE8DC116B1;
 Wed, 31 Jul 2024 23:03: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: 18d73c4a-4f91-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722467006;
	bh=wAtVXMIt1HCt202CvoVAR17kHrD+uQxKCEpiwXwDrQ8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Q6CvsIFhsSaQ8iwxDug52Mz/Z78MH7lGEus1XnG+/gk03ar3Y5Lafm4nfJpbeXUaR
	 Ny5nyB/0UpUKfwg53TBIM//qXGxrZ0z5Gh5E0jmrfhagN6kFndNe00sehbV65mm0Mm
	 Ize9/iCMyhZN23wA+KJzeO/XAgtUoJ1SdFGoq2OuOqCW/61frv0+m8x+LHtjHZUuHV
	 i9ZCt2lECBKVeYdy8yscW9kAO3GrTMLNrjcQXwSMoDFXN00dFxij2dNFZC8NLqgdHf
	 Eu6ejRLvaejrfzpLW82xBwVTHcYLn/eaiIDKaTrcwz7VIVzp/jyYPqalyF2l9FUP43
	 PLLQzTAz3GZvg==
Date: Wed, 31 Jul 2024 16:03:24 -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, Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH] automation/eclair_analysis: add Rule 18.6 to the
 clean guidelines
In-Reply-To: <c4dddc9468224e037f42ef77eb8407ba9a71207e.1722429655.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2407311603020.4857@ubuntu-linux-20-04-desktop>
References: <c4dddc9468224e037f42ef77eb8407ba9a71207e.1722429655.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, 31 Jul 2024, Nicola Vetrini wrote:
> MISRA C Rule 18.6 states: "The address of an object with automatic
> storage shall not be copied to another object that persists after
> the first object has ceased to exist."
> 
> The rule is set as monitored and tagged clean, in order to block
> the CI on any violations that may arise, allowing the presence
> of cautions (currently there are no violations).
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


> ---
>  automation/eclair_analysis/ECLAIR/monitored.ecl | 1 +
>  automation/eclair_analysis/ECLAIR/tagging.ecl   | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/monitored.ecl b/automation/eclair_analysis/ECLAIR/monitored.ecl
> index 9ffaebbdc378..8a7e3f3ceaa9 100644
> --- a/automation/eclair_analysis/ECLAIR/monitored.ecl
> +++ b/automation/eclair_analysis/ECLAIR/monitored.ecl
> @@ -32,6 +32,7 @@
>  -enable=MC3R1.R17.4
>  -enable=MC3R1.R17.5
>  -enable=MC3R1.R17.6
> +-enable=MC3R1.R18.6
>  -enable=MC3R1.R19.1
>  -enable=MC3R1.R20.12
>  -enable=MC3R1.R20.13
> diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
> index b829655ca0bc..e7b32773e60e 100644
> --- a/automation/eclair_analysis/ECLAIR/tagging.ecl
> +++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
> @@ -67,6 +67,7 @@ MC3R1.R17.3||
>  MC3R1.R17.4||
>  MC3R1.R17.5||
>  MC3R1.R17.6||
> +MC3R1.R18.6||
>  MC3R1.R18.8||
>  MC3R1.R20.2||
>  MC3R1.R20.3||
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 23:06:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 23:06:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769171.1180059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZIPH-0002Lu-Jt; Wed, 31 Jul 2024 23:06:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769171.1180059; Wed, 31 Jul 2024 23: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 1sZIPH-0002Ln-GY; Wed, 31 Jul 2024 23:06:55 +0000
Received: by outflank-mailman (input) for mailman id 769171;
 Wed, 31 Jul 2024 23:06: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=gQnf=O7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sZIPG-0002Lh-N6
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 23:06:54 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92e72a6e-4f91-11ef-bc02-fd08da9f4363;
 Thu, 01 Aug 2024 01:06:53 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 372A162610;
 Wed, 31 Jul 2024 23:06:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DF27DC116B1;
 Wed, 31 Jul 2024 23:06: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: 92e72a6e-4f91-11ef-bc02-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722467211;
	bh=PkOc8I9izLpcBJQqDY2qVZGR8u1EN713/KAElmBIXJA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ZnnT0Fy5hLQfGzorz4XufywR9RfUZELWb01UvzobzpZ387wAwvSvhYjy+WlJFkDTh
	 rjs50dLlxTUdqAhs4XeqEbs0R5KcUojnF1LScHsvkCLQDvvzG+NdNgL91UGYbXOZQV
	 FSwktlemCCH0e6XgSxTTrmAQ7dF9I3yKe6QFAaLM+tBHbOHH/+vlcljmKY3rsXusdy
	 MdpSWszMz9+8qPKBqNiF9VHV/BtMzQH5+CnVU3j/j+gpTk1BFHL4Yeexw0za8qi0kI
	 Qj2CdEOvWMtGzhKLv7yw10j4fjIbHRX/nQKEOQyZ07eBLd7c6nl17F9td9O0EmV6BJ
	 Zoa7y3gxHyieg==
Date: Wed, 31 Jul 2024 16:06:50 -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>, consulting@bugseng.com, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
    xen-devel@lists.xenproject.org, 
    Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Subject: Re: [PATCH 2/3] xen/event: address violation of MISRA C Rule 13.6
In-Reply-To: <560a1207-2721-42cd-bd39-c83edca42c17@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407311603500.4857@ubuntu-linux-20-04-desktop>
References: <cover.1719308599.git.alessandro.zucchelli@bugseng.com> <d48b73a3c5c569f95da424fe9e14a7690b1c69f8.1719308599.git.alessandro.zucchelli@bugseng.com> <6e4b7711-5017-49a8-9f7d-e20c497f2561@suse.com> <560a1207-2721-42cd-bd39-c83edca42c17@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, 31 Jul 2024, Jan Beulich wrote:
> On 01.07.2024 10:16, Jan Beulich wrote:
> > On 25.06.2024 12:14, Alessandro Zucchelli wrote:
> >> --- a/xen/include/xen/event.h
> >> +++ b/xen/include/xen/event.h
> >> @@ -183,13 +183,14 @@ static bool evtchn_usable(const struct evtchn *evtchn)
> >>  /* Wait on a Xen-attached event channel. */
> >>  #define wait_on_xen_event_channel(port, condition)                      \
> >>      do {                                                                \
> >> +        struct vcpu *v = current;                                       \
> > 
> > First: As recently indicated elsewhere, any new latching of "current" into
> > a local var should use "curr" or something derived from it (see below), not
> > "v".
> > 
> > Second: Macro local variables are at (certain) risk of colliding with outer
> > scope variables. Therefore the common thing we do is add an underscore.
> > Disagreement continues to exist for whether to prefix them or have them be
> > suffixes. An affirmative statement as to Misra's take on underscore-prefixed
> > variables in situations like these would be appreciated. Sadly what the C
> > standard has is somewhat tied to the C library, and hence leaves room for
> > interpretation (and hence for disagreement).
> 
> Why was this patch committed unchanged, considering the comments above?

Sorry, Jan. I didn't do it on purpose. Due to the code freeze, I added
this patch to my for-4.19 queue after acking it. Later, when you
provided your review comments, I forgot to remove the patch from my
for-4.19 queue.

If you want it can be reverted but it is easier if you send a small
incremental patch with your suggestion and I'll ack it straight away.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 23:47:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 23:47:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769183.1180069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZJ1w-0008Fr-HV; Wed, 31 Jul 2024 23:46:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769183.1180069; Wed, 31 Jul 2024 23:46: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 1sZJ1w-0008Fk-Ef; Wed, 31 Jul 2024 23:46:52 +0000
Received: by outflank-mailman (input) for mailman id 769183;
 Wed, 31 Jul 2024 23:46: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=gQnf=O7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sZJ1v-0008Fe-9t
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 23:46:51 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 261495d4-4f97-11ef-8776-851b0ebba9a2;
 Thu, 01 Aug 2024 01:46:48 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id D0079CE1847;
 Wed, 31 Jul 2024 23:46:43 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3FFB0C116B1;
 Wed, 31 Jul 2024 23:46:42 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 261495d4-4f97-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722469603;
	bh=AC0JgQP8y+qfpdID5AphXitvMlcdAlEYB891zOwDFpE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LEyEJiR/wuzChYWtvQrSIU1V8pO2tLXeIOAzniaC9wMk65iEyLMrb4DbYhEdCKRH8
	 WwZgO0l1PSHyzxG2CSZbKK6WW24STSqKr35rjFQanVETuZ6KKgUw903ImbtQHweZU9
	 KUe9wywkoFGreBh/GYLv3BW1aFIKLsSaZBfxS+BkkLZfnbQskBX8BP8YgW9LqAOP/6
	 3JtPE0k8Ua7hldQdoF22aS5XgHfj6L1Y0a0klpes5LmSq3POnj6iOzJU/ulNmLL/bo
	 ou/jnVPh0FLoMVSejN+ixtgPmgsIifHWVip9gUXmG46lY4czIn8lGu8DHQBm1CeTOl
	 ugCu+Aw5ZT9Xg==
Date: Wed, 31 Jul 2024 16:46:41 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
cc: sstabellini@kernel.org, bertrand.marquis@arm.com, michal.orzel@amd.com, 
    artem_mygaiev@epam.com, julien@xen.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/2] docs: Introduce Fusa Requirement and define
 maintainers
In-Reply-To: <20240731163614.616162-2-ayan.kumar.halder@amd.com>
Message-ID: <alpine.DEB.2.22.394.2407311517480.4857@ubuntu-linux-20-04-desktop>
References: <20240731163614.616162-1-ayan.kumar.halder@amd.com> <20240731163614.616162-2-ayan.kumar.halder@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, 31 Jul 2024, Ayan Kumar Halder wrote:
> The FUSA folder is expected to contain requirements and other documents
> to enable safety certification of Xen hypervisor.
> Added a README to explain how the requirements are categorized, written
> and their supported status.
> 
> Added maintainers for the same.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
>  MAINTAINERS              |  9 +++++
>  docs/fusa/reqs/README.md | 75 ++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 84 insertions(+)
>  create mode 100644 docs/fusa/reqs/README.md
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 7c524a8a93..0d328e065c 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -314,6 +314,15 @@ F:	xen/arch/x86/include/asm/x86_*/efi*.h
>  F:	xen/common/efi/
>  F:	xen/include/efi/
>  
> +FUSA
> +M:	Stefano Stabellini <sstabellini@kernel.org>
> +M:	Bertrand Marquis <bertrand.marquis@arm.com>
> +M:	Michal Orzel <michal.orzel@amd.com>
> +M:	Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> +M:	Artem Mygaiev <artem_mygaiev@epam.com>
> +S:	Supported
> +F:	docs/fusa/
> +
>  GDBSX DEBUGGER
>  M:	Elena Ufimtseva <elena.ufimtseva@oracle.com>
>  S:	Supported
> diff --git a/docs/fusa/reqs/README.md b/docs/fusa/reqs/README.md
> new file mode 100644
> index 0000000000..69b8d3a5c8
> --- /dev/null
> +++ b/docs/fusa/reqs/README.md
> @@ -0,0 +1,75 @@
> +This folder contains a set of requirements describing Xen and its implementation
> +in a form suitable for a safety certification process.
> +The status is experimental and it is maintained on a best effort basis.
> +
> +The requirements writing style is inspired from the ANSI/IEEE guide to Software
> +Requirements Standard 830-1984.


I think it would be helpful to mention that they are currently
experimental and may be slightly out of sync with the code. We are
actively working on a process to keep them updated, more details to
follow.


> +The requirements are categorized as follows :-
> +
> +1. Market requirements - They define the high level functionalities of the
> +hypervisor without going into concepts specific to Xen. Those should allow a
> +system architect to understand wether Xen is providing the functionalities it
> +needs for its system. This is the top level of the requirements.
> +
> +2. Product requirements - They define the Xen specific concepts and interfaces
> +provided by Xen without going into implementation details. One or several of
> +those requirements are linked to each market requirement. An Architect can use
> +them understand how Xen fulfils a market need and design how Xen should be used
> +in his system.
> +
> +3. Design requirements - They describe what the software implementation is doing
> +from a technical point of view. One or several design requirement together
> +define how product requirements are fulfilled technically and are linked to
> +them. An implementer can use them to know how to write or understand the Xen
> +code.
> +
> +The requirements are linked using OpenFastTrace
> +(https://github.com/itsallcode/openfasttrace/blob/main/doc/user_guide.md).
> +OpenFastTrace parses through the requirements and generates a traceability
> +report.
> +
> +The following is the skeleton for a requirement.
> +
> +Title  /* Title of the requirement */
> +-----
> +
> +`unique_tag`
> +/*
> + * Each requirement needs to have a unique tag associated. The format is
> + * req_type~name~revision.
> + *
> + * Thus, it consists of three components :-
> + * requirement type - This denotes the category of requirement. Thus, it shall
> + * be 'XenMkt', 'XenProd' or 'XenSwdgn' to denote market, product or design
> + * requirement.
> + * name - This denotes name of the requirement. In case of architecture specific
> + * requirements, this starts with the architecture type (ie x86_64, arm64).
> + * revision number - This gets incremented each time the requirement is modified.
> + */
> +
> +Description:
> +This shall describe the requirement in a definitive tone. In other words,
> +the requirement begins with 'Xen shall ...'. Further, the description is
> +expected to be unambiguous and consistent.
> +
> +Rationale:
> +This describes a rationale explaining the reason of the presence of the
> +requirement when this can help the reader. This field can be left blank.
> +
> +Comments:
> +This describes the use cases for the requirement when this can help the
> +reader. This field can be left blank as well.
> +
> +Covers:
> +This denotes the unique_tag of the parent. This field is non existent for the
> +market requirement as it is the top level.
> +
> +Needs:
> +This denotes the requirement type of its children. This field is non existent
> +for the design requirements as there are no subsequent requirements linked to
> +them.
> +
> +
> +The requirements are expected to the technically correct and follow the above
> +guidelines.
> -- 
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 23:50:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 23:50:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769190.1180079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZJ5V-0001HV-06; Wed, 31 Jul 2024 23:50:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769190.1180079; Wed, 31 Jul 2024 23:50:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZJ5U-0001HO-TW; Wed, 31 Jul 2024 23:50:32 +0000
Received: by outflank-mailman (input) for mailman id 769190;
 Wed, 31 Jul 2024 23:50:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gQnf=O7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sZJ5T-0001HI-9o
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 23:50:31 +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 aa3f56c7-4f97-11ef-bc02-fd08da9f4363;
 Thu, 01 Aug 2024 01:50:29 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 44D896258C;
 Wed, 31 Jul 2024 23:50:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14A69C116B1;
 Wed, 31 Jul 2024 23:50: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: aa3f56c7-4f97-11ef-bc02-fd08da9f4363
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722469828;
	bh=3OWwBdL1Ybs3HeunaI06xAEPucJ9zvpO+S7OZuXuDBk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Ro17kujiE8CS464t/m9sFziv5KH5aDIzBfSi8uajkKoJzCk9qh7c6XpOzxm2sUzNQ
	 ENYQx2FbDcQVYfT0BFWo6zWDjUTvbpwtOaw9pv9yPFk64N96CAyps02hBVOgavkQjL
	 3TVuIpungq3RWaafN4V4jD+E0PA0c0HLnnib090Wq/DiCIF8WMlzhTnu3HNPud6R/X
	 0bo+whQ8lg2XXki9wVECG80tWCf+ohGoDsfhkWd+jNIiM95KEtIupumqU8gyomGum2
	 tFwnKTYFod6Br+29IN460eZo4bZsfU2x5OEw1lLq/KBTKgFFQ5xrc67VrDRy8SnJLa
	 1tXWbS5vGPnDw==
Date: Wed, 31 Jul 2024 16:50:26 -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>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Julien Grall <julien@xen.org>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH] docs/misra: add R13.2 and R18.2 to rules.rst
In-Reply-To: <6575beb5-645a-470a-89a1-8485adeace60@suse.com>
Message-ID: <alpine.DEB.2.22.394.2407311647170.4857@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2407301626460.4857@ubuntu-linux-20-04-desktop> <6575beb5-645a-470a-89a1-8485adeace60@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, 31 Jul 2024, Jan Beulich wrote:
> On 31.07.2024 01:30, Stefano Stabellini wrote:
> > --- a/docs/misra/rules.rst
> > +++ b/docs/misra/rules.rst
> > @@ -462,6 +462,15 @@ maintainers if you want to suggest a change.
> >       - Initializer lists shall not contain persistent side effects
> >       -
> >  
> > +   * - `Rule 13.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_13_02.c>`_
> > +     - Required
> > +     - The value of an expression and its persistent side-effects shall
> > +       be the same under all permitted evaluation orders
> > +     - Be aware that the static analysis tool Eclair might report
> > +       several findings for Rule 13.2 of type "caution". These are
> > +       instances where Eclair is unable to verify that the code is valid
> > +       in regard to Rule 13.2. Caution reports are not violations.
> 
> Which doesn't make clear what our take is towards new code people may
> submit.

Good point, see my comment below


> > @@ -583,6 +592,15 @@ maintainers if you want to suggest a change.
> >         submitting new patches please try to decrease the number of
> >         violations when possible.
> >  
> > +   * - `Rule 18.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_02.c>`_
> > +     - Required
> > +     - Subtraction between pointers shall only be applied to pointers
> > +       that address elements of the same array
> > +     - Be aware that the static analysis tool Eclair might report
> > +       several findings for Rule 18.2 of type "caution". These are
> > +       instances where Eclair is unable to verify that the code is valid
> > +       in regard to Rule 18.2. Caution reports are not violations.
> 
> And while the same wording is used here, I think it is pretty clear for
> this that we'd reject changes where bad subtractions are used. IOW even
> more so important to clarify the (possibly different) positions on what
> is going to be added into the code base.

In both of these cases, we would reject code that doesn't follow R13.2
and R18.2. I'll change it to the following:


Be aware that the static analysis tool Eclair might report several
findings for Rule 18.2 of type "caution". These are instances where
Eclair is unable to verify that the code is valid in regard to Rule
18.2. Caution reports are not violations. Regardless, new code is
expected to follow this rule.


From xen-devel-bounces@lists.xenproject.org Wed Jul 31 23:53:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Jul 2024 23:53:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.769197.1180089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZJ8f-0001qx-EL; Wed, 31 Jul 2024 23:53:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 769197.1180089; Wed, 31 Jul 2024 23:53:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1sZJ8f-0001qq-AR; Wed, 31 Jul 2024 23:53:49 +0000
Received: by outflank-mailman (input) for mailman id 769197;
 Wed, 31 Jul 2024 23:53: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=gQnf=O7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1sZJ8e-0001qk-58
 for xen-devel@lists.xenproject.org; Wed, 31 Jul 2024 23:53:48 +0000
Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1eaf1627-4f98-11ef-8776-851b0ebba9a2;
 Thu, 01 Aug 2024 01:53:45 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 9F346CE181A;
 Wed, 31 Jul 2024 23:53:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1BCF4C32786;
 Wed, 31 Jul 2024 23:53: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: 1eaf1627-4f98-11ef-8776-851b0ebba9a2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1722470021;
	bh=W5Xjc3f81/8zpLfadiBQWMMWFR0WYUWYDLWwkWYb7Vk=;
	h=Date:From:To:cc:Subject:From;
	b=D50QSJ9hyF4I7RHJAYIZnhkfDxuBOgQhk3zSyDSp8m+Dojby002qKLOhscOVUJ5TT
	 YDw1grkxioSh7Pi51pmQeheR6tizXhXnfvnjKGWuZVqzdC+Uqd8vrXOScmrI+OGfif
	 7dsFVG8rJ06st447LKcpnp5+cxPIso82d/99okUxWxsBmjmD+yuVfKEKKfp+sy7xSa
	 Wrgzi++fNncOA6gE7TrZhCAlENmHhkNVA2ETG17UGKeIHxfJKzIZmHUn/KlmzeHbHZ
	 rx9PIEpR1FktjX4L9TQ1UQC5Xr3/Bt5KhStoHiDU/SN0Y7Zo0o/XlcUU8lkrlBxcSt
	 E3MZutYF1RwWw==
Date: Wed, 31 Jul 2024 16:53: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, Jan Beulich <jbeulich@suse.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Julien Grall <julien@xen.org>
Subject: [PATCH v2] docs/misra: add R13.2 and R18.2 to rules.rst
Message-ID: <alpine.DEB.2.22.394.2407311652320.4857@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

Add MISRA C rules 13.2 and 18.2 to rules.rst. Both rules have zero
violations reported by Eclair but they have some cautions. We accept
both rules and for now we'll enable scanning for them in Eclair but only
violations will cause the Gitlab CI job to fail (cautions will not.)

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v2:
- clarify that new code is expected to follow the rule
---
 docs/misra/rules.rst | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 7b366edb07..3c2c5e5ac1 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -462,6 +462,16 @@ maintainers if you want to suggest a change.
      - Initializer lists shall not contain persistent side effects
      -
 
+   * - `Rule 13.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_13_02.c>`_
+     - Required
+     - The value of an expression and its persistent side-effects shall
+       be the same under all permitted evaluation orders
+     - Be aware that the static analysis tool Eclair might report
+       several findings for Rule 13.2 of type "caution". These are
+       instances where Eclair is unable to verify that the code is valid
+       in regard to Rule 13.2. Caution reports are not violations.
+       Regardless, new code is expected to follow this rule.
+
    * - `Rule 13.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_13_06.c>`_
      - Required
      - The operand of the sizeof operator shall not contain any
@@ -583,6 +593,16 @@ maintainers if you want to suggest a change.
        submitting new patches please try to decrease the number of
        violations when possible.
 
+   * - `Rule 18.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_02.c>`_
+     - Required
+     - Subtraction between pointers shall only be applied to pointers
+       that address elements of the same array
+     - Be aware that the static analysis tool Eclair might report
+       several findings for Rule 18.2 of type "caution". These are
+       instances where Eclair is unable to verify that the code is valid
+       in regard to Rule 18.2. Caution reports are not violations.
+       Regardless, new code is expected to follow this rule.
+
    * - `Rule 18.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_03.c>`_
      - Required
      - The relational operators > >= < and <= shall not be applied to objects of pointer type except where they point into the same object
-- 
2.25.1



